@alpic-ai/api 0.0.0-staging.bd5000e → 0.0.0-staging.bdeff30
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 +276 -3
- package/dist/index.mjs +208 -17
- package/package.json +3 -4
package/dist/index.d.mts
CHANGED
|
@@ -5,7 +5,9 @@ import { z } from "zod";
|
|
|
5
5
|
//#region src/api.contract.d.ts
|
|
6
6
|
type ApiContext = {
|
|
7
7
|
request: Request & {
|
|
8
|
-
|
|
8
|
+
teamIds: string[];
|
|
9
|
+
defaultTeamId: string | undefined;
|
|
10
|
+
awsCognitoUserSub: string | undefined;
|
|
9
11
|
};
|
|
10
12
|
};
|
|
11
13
|
declare const createEnvironmentContractV1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
@@ -29,7 +31,92 @@ declare const createEnvironmentContractV1: _orpc_contract0.ContractProcedureBuil
|
|
|
29
31
|
BAD_REQUEST: {};
|
|
30
32
|
}>, Record<never, never>>;
|
|
31
33
|
declare const contract: {
|
|
34
|
+
teams: {
|
|
35
|
+
list: {
|
|
36
|
+
v1: _orpc_contract0.ContractProcedureBuilderWithOutput<_orpc_contract0.Schema<unknown, unknown>, z.ZodArray<z.ZodObject<{
|
|
37
|
+
id: z.ZodString;
|
|
38
|
+
name: z.ZodString;
|
|
39
|
+
createdAt: z.ZodCoercedDate<unknown>;
|
|
40
|
+
hasStripeAccount: z.ZodBoolean;
|
|
41
|
+
}, z.core.$strip>>, Record<never, never>, Record<never, never>>;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
analytics: {
|
|
45
|
+
get: {
|
|
46
|
+
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
47
|
+
projectId: z.ZodString;
|
|
48
|
+
startTimestamp: z.ZodCoercedNumber<unknown>;
|
|
49
|
+
endTimestamp: z.ZodCoercedNumber<unknown>;
|
|
50
|
+
timeZone: z.ZodString;
|
|
51
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
52
|
+
metadata: z.ZodObject<{
|
|
53
|
+
startTimestamp: z.ZodNumber;
|
|
54
|
+
endTimestamp: z.ZodNumber;
|
|
55
|
+
timeZone: z.ZodString;
|
|
56
|
+
startDate: z.ZodCoercedDate<unknown>;
|
|
57
|
+
interval: z.ZodString;
|
|
58
|
+
}, z.core.$strip>;
|
|
59
|
+
timeSeries: z.ZodObject<{
|
|
60
|
+
sessions_count: z.ZodArray<z.ZodObject<{
|
|
61
|
+
timestamp: z.ZodNumber;
|
|
62
|
+
categories: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
63
|
+
}, z.core.$strip>>;
|
|
64
|
+
requests_count: z.ZodArray<z.ZodObject<{
|
|
65
|
+
timestamp: z.ZodNumber;
|
|
66
|
+
categories: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
67
|
+
}, z.core.$strip>>;
|
|
68
|
+
requests_latency_mean: z.ZodArray<z.ZodObject<{
|
|
69
|
+
timestamp: z.ZodNumber;
|
|
70
|
+
categories: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
71
|
+
}, z.core.$strip>>;
|
|
72
|
+
tool_errors: z.ZodArray<z.ZodObject<{
|
|
73
|
+
timestamp: z.ZodNumber;
|
|
74
|
+
categories: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
75
|
+
}, z.core.$strip>>;
|
|
76
|
+
mcp_errors: z.ZodArray<z.ZodObject<{
|
|
77
|
+
timestamp: z.ZodNumber;
|
|
78
|
+
categories: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
79
|
+
}, z.core.$strip>>;
|
|
80
|
+
output_token_mean: z.ZodArray<z.ZodObject<{
|
|
81
|
+
timestamp: z.ZodNumber;
|
|
82
|
+
categories: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
83
|
+
}, z.core.$strip>>;
|
|
84
|
+
task_count: z.ZodArray<z.ZodObject<{
|
|
85
|
+
timestamp: z.ZodNumber;
|
|
86
|
+
categories: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
87
|
+
}, z.core.$strip>>;
|
|
88
|
+
}, z.core.$strip>;
|
|
89
|
+
}, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
90
|
+
NOT_FOUND: {};
|
|
91
|
+
BAD_REQUEST: {};
|
|
92
|
+
}>, Record<never, never>>;
|
|
93
|
+
};
|
|
94
|
+
};
|
|
32
95
|
deployments: {
|
|
96
|
+
list: {
|
|
97
|
+
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
98
|
+
projectId: z.ZodString;
|
|
99
|
+
}, z.core.$strip>, z.ZodArray<z.ZodObject<{
|
|
100
|
+
id: z.ZodString;
|
|
101
|
+
status: z.ZodEnum<{
|
|
102
|
+
ongoing: "ongoing";
|
|
103
|
+
deployed: "deployed";
|
|
104
|
+
failed: "failed";
|
|
105
|
+
canceled: "canceled";
|
|
106
|
+
}>;
|
|
107
|
+
sourceRef: z.ZodNullable<z.ZodString>;
|
|
108
|
+
sourceCommitId: z.ZodNullable<z.ZodString>;
|
|
109
|
+
sourceCommitMessage: z.ZodNullable<z.ZodString>;
|
|
110
|
+
authorUsername: z.ZodNullable<z.ZodString>;
|
|
111
|
+
authorAvatarUrl: z.ZodNullable<z.ZodString>;
|
|
112
|
+
startedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
|
|
113
|
+
completedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
|
|
114
|
+
isCurrent: z.ZodBoolean;
|
|
115
|
+
environmentId: z.ZodString;
|
|
116
|
+
}, z.core.$strip>>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
117
|
+
NOT_FOUND: {};
|
|
118
|
+
}>, Record<never, never>>;
|
|
119
|
+
};
|
|
33
120
|
get: {
|
|
34
121
|
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
35
122
|
deploymentId: z.ZodString;
|
|
@@ -48,17 +135,33 @@ declare const contract: {
|
|
|
48
135
|
authorAvatarUrl: z.ZodNullable<z.ZodString>;
|
|
49
136
|
startedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
|
|
50
137
|
completedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
|
|
138
|
+
deploymentPageUrl: z.ZodNullable<z.ZodURL>;
|
|
51
139
|
}, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
52
140
|
NOT_FOUND: {};
|
|
53
141
|
}>, Record<never, never>>;
|
|
54
142
|
};
|
|
55
143
|
uploadArtifact: {
|
|
56
|
-
v1: _orpc_contract0.
|
|
144
|
+
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodOptional<z.ZodObject<{
|
|
145
|
+
teamId: z.ZodOptional<z.ZodString>;
|
|
146
|
+
}, z.core.$strip>>, z.ZodObject<{
|
|
57
147
|
uploadUrl: z.ZodString;
|
|
58
148
|
token: z.ZodString;
|
|
59
149
|
expiresAt: z.ZodCoercedDate<unknown>;
|
|
60
150
|
}, z.core.$strip>, Record<never, never>, Record<never, never>>;
|
|
61
151
|
};
|
|
152
|
+
getLogs: {
|
|
153
|
+
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
154
|
+
deploymentId: z.ZodString;
|
|
155
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
156
|
+
logs: z.ZodArray<z.ZodObject<{
|
|
157
|
+
timestamp: z.ZodOptional<z.ZodCoercedDate<unknown>>;
|
|
158
|
+
content: z.ZodOptional<z.ZodString>;
|
|
159
|
+
}, z.core.$strip>>;
|
|
160
|
+
hasMoreLogs: z.ZodBoolean;
|
|
161
|
+
}, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
162
|
+
NOT_FOUND: {};
|
|
163
|
+
}>, Record<never, never>>;
|
|
164
|
+
};
|
|
62
165
|
};
|
|
63
166
|
environments: {
|
|
64
167
|
create: {
|
|
@@ -117,13 +220,144 @@ declare const contract: {
|
|
|
117
220
|
authorAvatarUrl: z.ZodNullable<z.ZodString>;
|
|
118
221
|
startedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
|
|
119
222
|
completedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
|
|
223
|
+
deploymentPageUrl: z.ZodNullable<z.ZodURL>;
|
|
224
|
+
}, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
225
|
+
NOT_FOUND: {};
|
|
226
|
+
BAD_REQUEST: {};
|
|
227
|
+
}>, Record<never, never>>;
|
|
228
|
+
};
|
|
229
|
+
};
|
|
230
|
+
environmentVariables: {
|
|
231
|
+
list: {
|
|
232
|
+
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
233
|
+
environmentId: z.ZodString;
|
|
234
|
+
}, z.core.$strip>, z.ZodArray<z.ZodObject<{
|
|
235
|
+
id: z.ZodString;
|
|
236
|
+
key: z.ZodString;
|
|
237
|
+
value: z.ZodString;
|
|
238
|
+
isSecret: z.ZodBoolean;
|
|
239
|
+
createdAt: z.ZodCoercedDate<unknown>;
|
|
240
|
+
}, z.core.$strip>>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
241
|
+
NOT_FOUND: {};
|
|
242
|
+
}>, Record<never, never>>;
|
|
243
|
+
};
|
|
244
|
+
create: {
|
|
245
|
+
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
246
|
+
environmentId: z.ZodString;
|
|
247
|
+
environmentVariables: z.ZodArray<z.ZodObject<{
|
|
248
|
+
key: z.ZodString;
|
|
249
|
+
value: z.ZodString;
|
|
250
|
+
isSecret: z.ZodDefault<z.ZodBoolean>;
|
|
251
|
+
}, z.core.$strip>>;
|
|
252
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
253
|
+
success: z.ZodLiteral<true>;
|
|
120
254
|
}, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
121
255
|
NOT_FOUND: {};
|
|
122
256
|
BAD_REQUEST: {};
|
|
123
257
|
}>, Record<never, never>>;
|
|
124
258
|
};
|
|
259
|
+
update: {
|
|
260
|
+
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
261
|
+
environmentVariableId: z.ZodString;
|
|
262
|
+
key: z.ZodString;
|
|
263
|
+
value: z.ZodOptional<z.ZodString>;
|
|
264
|
+
isSecret: z.ZodDefault<z.ZodBoolean>;
|
|
265
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
266
|
+
success: z.ZodLiteral<true>;
|
|
267
|
+
}, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
268
|
+
NOT_FOUND: {};
|
|
269
|
+
BAD_REQUEST: {};
|
|
270
|
+
}>, Record<never, never>>;
|
|
271
|
+
};
|
|
272
|
+
delete: {
|
|
273
|
+
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
274
|
+
environmentVariableId: z.ZodString;
|
|
275
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
276
|
+
success: z.ZodLiteral<true>;
|
|
277
|
+
}, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
278
|
+
NOT_FOUND: {};
|
|
279
|
+
}>, Record<never, never>>;
|
|
280
|
+
};
|
|
125
281
|
};
|
|
126
282
|
projects: {
|
|
283
|
+
update: {
|
|
284
|
+
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
285
|
+
projectId: z.ZodString;
|
|
286
|
+
name: z.ZodOptional<z.ZodString>;
|
|
287
|
+
sourceRepository: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
288
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
289
|
+
id: z.ZodString;
|
|
290
|
+
name: z.ZodString;
|
|
291
|
+
teamId: z.ZodString;
|
|
292
|
+
sourceRepository: z.ZodNullable<z.ZodString>;
|
|
293
|
+
runtime: z.ZodEnum<{
|
|
294
|
+
"python3.13": "python3.13";
|
|
295
|
+
"python3.14": "python3.14";
|
|
296
|
+
node22: "node22";
|
|
297
|
+
node24: "node24";
|
|
298
|
+
}>;
|
|
299
|
+
transport: z.ZodNullable<z.ZodEnum<{
|
|
300
|
+
stdio: "stdio";
|
|
301
|
+
sse: "sse";
|
|
302
|
+
streamablehttp: "streamablehttp";
|
|
303
|
+
}>>;
|
|
304
|
+
rootDirectory: z.ZodNullable<z.ZodString>;
|
|
305
|
+
buildCommand: z.ZodNullable<z.ZodString>;
|
|
306
|
+
buildOutputDir: z.ZodNullable<z.ZodString>;
|
|
307
|
+
installCommand: z.ZodNullable<z.ZodString>;
|
|
308
|
+
startCommand: z.ZodNullable<z.ZodString>;
|
|
309
|
+
createdAt: z.ZodCoercedDate<unknown>;
|
|
310
|
+
productionEnvironment: z.ZodNullable<z.ZodObject<{
|
|
311
|
+
id: z.ZodString;
|
|
312
|
+
name: z.ZodString;
|
|
313
|
+
mcpServerUrl: z.ZodString;
|
|
314
|
+
domains: z.ZodArray<z.ZodObject<{
|
|
315
|
+
domain: z.ZodString;
|
|
316
|
+
status: z.ZodEnum<{
|
|
317
|
+
ongoing: "ongoing";
|
|
318
|
+
deployed: "deployed";
|
|
319
|
+
failed: "failed";
|
|
320
|
+
}>;
|
|
321
|
+
createdAt: z.ZodCoercedDate<unknown>;
|
|
322
|
+
}, z.core.$strip>>;
|
|
323
|
+
latestDeployment: z.ZodNullable<z.ZodObject<{
|
|
324
|
+
id: z.ZodString;
|
|
325
|
+
status: z.ZodEnum<{
|
|
326
|
+
ongoing: "ongoing";
|
|
327
|
+
deployed: "deployed";
|
|
328
|
+
failed: "failed";
|
|
329
|
+
canceled: "canceled";
|
|
330
|
+
}>;
|
|
331
|
+
sourceCommitId: z.ZodNullable<z.ZodString>;
|
|
332
|
+
sourceCommitMessage: z.ZodNullable<z.ZodString>;
|
|
333
|
+
completedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
|
|
334
|
+
}, z.core.$strip>>;
|
|
335
|
+
}, z.core.$strip>>;
|
|
336
|
+
environments: z.ZodArray<z.ZodObject<{
|
|
337
|
+
id: z.ZodString;
|
|
338
|
+
name: z.ZodString;
|
|
339
|
+
sourceBranch: z.ZodNullable<z.ZodString>;
|
|
340
|
+
mcpServerUrl: z.ZodString;
|
|
341
|
+
createdAt: z.ZodCoercedDate<unknown>;
|
|
342
|
+
projectId: z.ZodString;
|
|
343
|
+
latestDeployment: z.ZodNullable<z.ZodObject<{
|
|
344
|
+
id: z.ZodString;
|
|
345
|
+
status: z.ZodEnum<{
|
|
346
|
+
ongoing: "ongoing";
|
|
347
|
+
deployed: "deployed";
|
|
348
|
+
failed: "failed";
|
|
349
|
+
canceled: "canceled";
|
|
350
|
+
}>;
|
|
351
|
+
sourceCommitId: z.ZodNullable<z.ZodString>;
|
|
352
|
+
sourceCommitMessage: z.ZodNullable<z.ZodString>;
|
|
353
|
+
completedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
|
|
354
|
+
}, z.core.$strip>>;
|
|
355
|
+
}, z.core.$strip>>;
|
|
356
|
+
}, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
357
|
+
NOT_FOUND: {};
|
|
358
|
+
BAD_REQUEST: {};
|
|
359
|
+
}>, Record<never, never>>;
|
|
360
|
+
};
|
|
127
361
|
get: {
|
|
128
362
|
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
129
363
|
projectId: z.ZodString;
|
|
@@ -153,6 +387,15 @@ declare const contract: {
|
|
|
153
387
|
id: z.ZodString;
|
|
154
388
|
name: z.ZodString;
|
|
155
389
|
mcpServerUrl: z.ZodString;
|
|
390
|
+
domains: z.ZodArray<z.ZodObject<{
|
|
391
|
+
domain: z.ZodString;
|
|
392
|
+
status: z.ZodEnum<{
|
|
393
|
+
ongoing: "ongoing";
|
|
394
|
+
deployed: "deployed";
|
|
395
|
+
failed: "failed";
|
|
396
|
+
}>;
|
|
397
|
+
createdAt: z.ZodCoercedDate<unknown>;
|
|
398
|
+
}, z.core.$strip>>;
|
|
156
399
|
latestDeployment: z.ZodNullable<z.ZodObject<{
|
|
157
400
|
id: z.ZodString;
|
|
158
401
|
status: z.ZodEnum<{
|
|
@@ -191,7 +434,9 @@ declare const contract: {
|
|
|
191
434
|
}>, Record<never, never>>;
|
|
192
435
|
};
|
|
193
436
|
list: {
|
|
194
|
-
v1: _orpc_contract0.
|
|
437
|
+
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodOptional<z.ZodObject<{
|
|
438
|
+
teamId: z.ZodOptional<z.ZodString>;
|
|
439
|
+
}, z.core.$strip>>, z.ZodArray<z.ZodObject<{
|
|
195
440
|
id: z.ZodString;
|
|
196
441
|
name: z.ZodString;
|
|
197
442
|
teamId: z.ZodString;
|
|
@@ -217,6 +462,15 @@ declare const contract: {
|
|
|
217
462
|
id: z.ZodString;
|
|
218
463
|
name: z.ZodString;
|
|
219
464
|
mcpServerUrl: z.ZodString;
|
|
465
|
+
domains: z.ZodArray<z.ZodObject<{
|
|
466
|
+
domain: z.ZodString;
|
|
467
|
+
status: z.ZodEnum<{
|
|
468
|
+
ongoing: "ongoing";
|
|
469
|
+
deployed: "deployed";
|
|
470
|
+
failed: "failed";
|
|
471
|
+
}>;
|
|
472
|
+
createdAt: z.ZodCoercedDate<unknown>;
|
|
473
|
+
}, z.core.$strip>>;
|
|
220
474
|
latestDeployment: z.ZodNullable<z.ZodObject<{
|
|
221
475
|
id: z.ZodString;
|
|
222
476
|
status: z.ZodEnum<{
|
|
@@ -254,6 +508,7 @@ declare const contract: {
|
|
|
254
508
|
};
|
|
255
509
|
create: {
|
|
256
510
|
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
511
|
+
teamId: z.ZodOptional<z.ZodString>;
|
|
257
512
|
name: z.ZodString;
|
|
258
513
|
sourceRepository: z.ZodOptional<z.ZodString>;
|
|
259
514
|
branchName: z.ZodOptional<z.ZodString>;
|
|
@@ -315,6 +570,24 @@ declare const contract: {
|
|
|
315
570
|
BAD_REQUEST: {};
|
|
316
571
|
}>, Record<never, never>>;
|
|
317
572
|
};
|
|
573
|
+
delete: {
|
|
574
|
+
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
575
|
+
projectId: z.ZodString;
|
|
576
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
577
|
+
success: z.ZodLiteral<true>;
|
|
578
|
+
}, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
579
|
+
NOT_FOUND: {};
|
|
580
|
+
}>, Record<never, never>>;
|
|
581
|
+
};
|
|
582
|
+
};
|
|
583
|
+
tunnels: {
|
|
584
|
+
getTicket: {
|
|
585
|
+
v1: _orpc_contract0.ContractProcedureBuilderWithOutput<_orpc_contract0.Schema<unknown, unknown>, z.ZodObject<{
|
|
586
|
+
subdomain: z.ZodString;
|
|
587
|
+
ticket: z.ZodString;
|
|
588
|
+
tunnelHost: z.ZodString;
|
|
589
|
+
}, z.core.$strip>, Record<never, never>, Record<never, never>>;
|
|
590
|
+
};
|
|
318
591
|
};
|
|
319
592
|
};
|
|
320
593
|
type RouterInput = InferContractRouterInputs<typeof contract>;
|
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { oc } from "@orpc/contract";
|
|
2
2
|
import { z } from "zod";
|
|
3
|
-
|
|
4
3
|
//#region src/schemas.ts
|
|
5
4
|
const RESERVED_KEYS = [
|
|
6
5
|
"_HANDLER",
|
|
@@ -13,7 +12,11 @@ const RESERVED_KEYS = [
|
|
|
13
12
|
"AWS_LAMBDA_FUNCTION_VERSION",
|
|
14
13
|
"AWS_LAMBDA_INITIALIZATION_TYPE",
|
|
15
14
|
"AWS_LAMBDA_LOG_GROUP_NAME",
|
|
15
|
+
"AWS_LAMBDA_LOG_STREAM_NAME",
|
|
16
16
|
"AWS_ACCESS_KEY",
|
|
17
|
+
"AWS_ACCESS_KEY_ID",
|
|
18
|
+
"AWS_SECRET_ACCESS_KEY",
|
|
19
|
+
"AWS_SESSION_TOKEN",
|
|
17
20
|
"AWS_LAMBDA_RUNTIME_API",
|
|
18
21
|
"LAMBDA_TASK_ROOT",
|
|
19
22
|
"LAMBDA_RUNTIME_DIR",
|
|
@@ -30,7 +33,8 @@ const RESERVED_KEYS = [
|
|
|
30
33
|
"BUILD_ARG_BUILD_COMMAND",
|
|
31
34
|
"BUILD_ARG_BUILD_OUTPUT_DIR",
|
|
32
35
|
"BUILD_ARG_START_COMMAND",
|
|
33
|
-
"ALPIC_HOST"
|
|
36
|
+
"ALPIC_HOST",
|
|
37
|
+
"ALPIC_CUSTOM_DOMAINS"
|
|
34
38
|
];
|
|
35
39
|
const environmentVariableSchema = z.object({
|
|
36
40
|
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"),
|
|
@@ -55,7 +59,6 @@ const transportSchema = z.enum([
|
|
|
55
59
|
"sse",
|
|
56
60
|
"streamablehttp"
|
|
57
61
|
]);
|
|
58
|
-
|
|
59
62
|
//#endregion
|
|
60
63
|
//#region src/api.contract.ts
|
|
61
64
|
const deploymentStatusSchema = z.enum([
|
|
@@ -82,6 +85,7 @@ const deploymentSchema = z.object({
|
|
|
82
85
|
startedAt: z.coerce.date().nullable(),
|
|
83
86
|
completedAt: z.coerce.date().nullable()
|
|
84
87
|
});
|
|
88
|
+
const deploymentWithPageUrlSchema = deploymentSchema.extend({ deploymentPageUrl: z.url().nullable() });
|
|
85
89
|
const createEnvironmentContractV1 = oc.route({
|
|
86
90
|
path: "/v1/environments",
|
|
87
91
|
method: "POST",
|
|
@@ -106,7 +110,7 @@ const createEnvironmentContractV1 = oc.route({
|
|
|
106
110
|
projectId: z.string().describe("The ID of the project the environment belongs to")
|
|
107
111
|
}));
|
|
108
112
|
const getEnvironmentContractV1 = oc.route({
|
|
109
|
-
path: "/v1/environments
|
|
113
|
+
path: "/v1/environments/{environmentId}",
|
|
110
114
|
method: "GET",
|
|
111
115
|
summary: "Get an environment",
|
|
112
116
|
description: "Get an environment by ID",
|
|
@@ -121,10 +125,20 @@ const getEnvironmentContractV1 = oc.route({
|
|
|
121
125
|
createdAt: z.coerce.date(),
|
|
122
126
|
projectId: z.string()
|
|
123
127
|
}));
|
|
128
|
+
const domainSchema = z.object({
|
|
129
|
+
domain: z.string(),
|
|
130
|
+
status: z.enum([
|
|
131
|
+
"ongoing",
|
|
132
|
+
"deployed",
|
|
133
|
+
"failed"
|
|
134
|
+
]),
|
|
135
|
+
createdAt: z.coerce.date()
|
|
136
|
+
});
|
|
124
137
|
const productionEnvironmentSchema = z.object({
|
|
125
138
|
id: z.string(),
|
|
126
139
|
name: z.string(),
|
|
127
140
|
mcpServerUrl: z.string(),
|
|
141
|
+
domains: z.array(domainSchema),
|
|
128
142
|
latestDeployment: latestDeploymentSchema.nullable()
|
|
129
143
|
});
|
|
130
144
|
const environmentSchema = z.object({
|
|
@@ -153,7 +167,7 @@ const projectOutputSchema = z.object({
|
|
|
153
167
|
environments: z.array(environmentSchema)
|
|
154
168
|
});
|
|
155
169
|
const getProjectContractV1 = oc.route({
|
|
156
|
-
path: "/v1/projects
|
|
170
|
+
path: "/v1/projects/{projectId}",
|
|
157
171
|
method: "GET",
|
|
158
172
|
summary: "Get a project",
|
|
159
173
|
description: "Get a project by ID",
|
|
@@ -167,7 +181,7 @@ const listProjectsContractV1 = oc.route({
|
|
|
167
181
|
description: "List all projects for a team",
|
|
168
182
|
tags: ["projects"],
|
|
169
183
|
successDescription: "The list of projects"
|
|
170
|
-
}).output(z.array(projectOutputSchema));
|
|
184
|
+
}).input(z.object({ teamId: z.string().optional() }).optional()).output(z.array(projectOutputSchema));
|
|
171
185
|
const createProjectContractV1 = oc.route({
|
|
172
186
|
path: "/v1/projects",
|
|
173
187
|
method: "POST",
|
|
@@ -179,7 +193,8 @@ const createProjectContractV1 = oc.route({
|
|
|
179
193
|
NOT_FOUND: {},
|
|
180
194
|
BAD_REQUEST: {}
|
|
181
195
|
}).input(z.object({
|
|
182
|
-
|
|
196
|
+
teamId: z.string().optional(),
|
|
197
|
+
name: z.string().trim().min(1).max(100),
|
|
183
198
|
sourceRepository: z.string().optional(),
|
|
184
199
|
branchName: z.string().min(1).optional(),
|
|
185
200
|
runtime: runtimeSchema,
|
|
@@ -209,8 +224,84 @@ const createProjectContractV1 = oc.route({
|
|
|
209
224
|
startCommand: z.string().nullable(),
|
|
210
225
|
createdAt: z.coerce.date()
|
|
211
226
|
}));
|
|
227
|
+
const environmentVariableOutputSchema = z.object({
|
|
228
|
+
id: z.string(),
|
|
229
|
+
key: z.string(),
|
|
230
|
+
value: z.string(),
|
|
231
|
+
isSecret: z.boolean(),
|
|
232
|
+
createdAt: z.coerce.date()
|
|
233
|
+
});
|
|
234
|
+
const listEnvironmentVariablesContractV1 = oc.route({
|
|
235
|
+
path: "/v1/environments/{environmentId}/environment-variables",
|
|
236
|
+
method: "GET",
|
|
237
|
+
summary: "List environment variables",
|
|
238
|
+
description: "List all environment variables for an environment",
|
|
239
|
+
tags: ["environments"],
|
|
240
|
+
successDescription: "The list of environment variables"
|
|
241
|
+
}).errors({ NOT_FOUND: {} }).input(z.object({ environmentId: z.string().describe("The ID of the environment") })).output(z.array(environmentVariableOutputSchema));
|
|
242
|
+
const createEnvironmentVariablesContractV1 = oc.route({
|
|
243
|
+
path: "/v1/environments/{environmentId}/environment-variables",
|
|
244
|
+
method: "POST",
|
|
245
|
+
summary: "Add environment variables",
|
|
246
|
+
description: "Add one or more environment variables to an environment",
|
|
247
|
+
tags: ["environments"],
|
|
248
|
+
successDescription: "The environment variables have been added successfully"
|
|
249
|
+
}).errors({
|
|
250
|
+
NOT_FOUND: {},
|
|
251
|
+
BAD_REQUEST: {}
|
|
252
|
+
}).input(z.object({
|
|
253
|
+
environmentId: z.string().describe("The ID of the environment"),
|
|
254
|
+
environmentVariables: environmentVariablesSchema
|
|
255
|
+
})).output(z.object({ success: z.literal(true) }));
|
|
256
|
+
const updateEnvironmentVariableContractV1 = oc.route({
|
|
257
|
+
path: "/v1/environment-variables/{environmentVariableId}",
|
|
258
|
+
method: "PATCH",
|
|
259
|
+
summary: "Update an environment variable",
|
|
260
|
+
description: "Update an environment variable by ID",
|
|
261
|
+
tags: ["environments"],
|
|
262
|
+
successDescription: "The environment variable has been updated successfully"
|
|
263
|
+
}).errors({
|
|
264
|
+
NOT_FOUND: {},
|
|
265
|
+
BAD_REQUEST: {}
|
|
266
|
+
}).input(z.object({
|
|
267
|
+
environmentVariableId: z.string().describe("The ID of the environment variable"),
|
|
268
|
+
key: environmentVariableSchema.shape.key,
|
|
269
|
+
value: environmentVariableSchema.shape.value.optional(),
|
|
270
|
+
isSecret: environmentVariableSchema.shape.isSecret
|
|
271
|
+
})).output(z.object({ success: z.literal(true) }));
|
|
272
|
+
const deleteEnvironmentVariableContractV1 = oc.route({
|
|
273
|
+
path: "/v1/environment-variables/{environmentVariableId}",
|
|
274
|
+
method: "DELETE",
|
|
275
|
+
summary: "Delete an environment variable",
|
|
276
|
+
description: "Delete an environment variable by ID",
|
|
277
|
+
tags: ["environments"],
|
|
278
|
+
successDescription: "The environment variable has been deleted successfully"
|
|
279
|
+
}).errors({ NOT_FOUND: {} }).input(z.object({ environmentVariableId: z.string().describe("The ID of the environment variable") })).output(z.object({ success: z.literal(true) }));
|
|
280
|
+
const deleteProjectContractV1 = oc.route({
|
|
281
|
+
path: "/v1/projects/:projectId",
|
|
282
|
+
method: "DELETE",
|
|
283
|
+
summary: "Delete a project",
|
|
284
|
+
description: "Delete a project and all its environments",
|
|
285
|
+
tags: ["projects"],
|
|
286
|
+
successDescription: "The project has been deleted successfully"
|
|
287
|
+
}).errors({ NOT_FOUND: {} }).input(z.object({ projectId: z.string().describe("The ID of the project") })).output(z.object({ success: z.literal(true) }));
|
|
288
|
+
const updateProjectContractV1 = oc.route({
|
|
289
|
+
path: "/v1/projects/{projectId}",
|
|
290
|
+
method: "PATCH",
|
|
291
|
+
summary: "Update a project",
|
|
292
|
+
description: "Update project settings",
|
|
293
|
+
tags: ["projects"],
|
|
294
|
+
successDescription: "The project has been updated successfully"
|
|
295
|
+
}).errors({
|
|
296
|
+
NOT_FOUND: {},
|
|
297
|
+
BAD_REQUEST: {}
|
|
298
|
+
}).input(z.object({
|
|
299
|
+
projectId: z.string().describe("The ID of the project"),
|
|
300
|
+
name: z.string().min(1).max(100).optional().describe("The new name for the project"),
|
|
301
|
+
sourceRepository: z.string().nullable().optional().describe("The source repository to connect to the project")
|
|
302
|
+
})).output(projectOutputSchema);
|
|
212
303
|
const deployEnvironmentContractV1 = oc.route({
|
|
213
|
-
path: "/v1/environments
|
|
304
|
+
path: "/v1/environments/{environmentId}/deploy",
|
|
214
305
|
method: "POST",
|
|
215
306
|
summary: "Deploy an environment",
|
|
216
307
|
description: "Deploy an environment",
|
|
@@ -222,7 +313,7 @@ const deployEnvironmentContractV1 = oc.route({
|
|
|
222
313
|
}).input(z.object({
|
|
223
314
|
environmentId: z.string().describe("The ID of the environment to deploy"),
|
|
224
315
|
token: z.string().describe("The token to identify the source archive").optional()
|
|
225
|
-
})).output(
|
|
316
|
+
})).output(deploymentWithPageUrlSchema);
|
|
226
317
|
const uploadDeploymentArtifactContractV1 = oc.route({
|
|
227
318
|
path: "/v1/deployments/upload",
|
|
228
319
|
method: "POST",
|
|
@@ -230,35 +321,135 @@ const uploadDeploymentArtifactContractV1 = oc.route({
|
|
|
230
321
|
description: "Return a presigned S3 URL to upload a deployment artifact",
|
|
231
322
|
tags: ["deployments"],
|
|
232
323
|
successDescription: "The presigned upload URL has been generated successfully"
|
|
233
|
-
}).output(z.object({
|
|
324
|
+
}).input(z.object({ teamId: z.string().optional() }).optional()).output(z.object({
|
|
234
325
|
uploadUrl: z.string().url().describe("Presigned S3 URL to upload the source archive with HTTP PUT"),
|
|
235
326
|
token: z.string().describe("Token to identify the source archive"),
|
|
236
327
|
expiresAt: z.coerce.date().describe("Expiration date of the presigned URL")
|
|
237
328
|
}));
|
|
329
|
+
const listProjectDeploymentsContractV1 = oc.route({
|
|
330
|
+
path: "/v1/projects/{projectId}/deployments",
|
|
331
|
+
method: "GET",
|
|
332
|
+
summary: "List project deployments",
|
|
333
|
+
description: "List all deployments for a project",
|
|
334
|
+
tags: ["deployments"],
|
|
335
|
+
successDescription: "The list of deployments"
|
|
336
|
+
}).errors({ NOT_FOUND: {} }).input(z.object({ projectId: z.string().describe("The ID of the project") })).output(z.array(deploymentSchema.extend({
|
|
337
|
+
isCurrent: z.boolean(),
|
|
338
|
+
environmentId: z.string()
|
|
339
|
+
})));
|
|
238
340
|
const getDeploymentContractV1 = oc.route({
|
|
239
|
-
path: "/v1/deployments
|
|
341
|
+
path: "/v1/deployments/{deploymentId}",
|
|
240
342
|
method: "GET",
|
|
241
343
|
summary: "Get a deployment",
|
|
242
344
|
description: "Get a deployment by ID",
|
|
243
345
|
tags: ["deployments"],
|
|
244
346
|
successDescription: "The deployment details"
|
|
245
|
-
}).errors({ NOT_FOUND: {} }).input(z.object({ deploymentId: z.string().describe("The ID of the deployment") })).output(
|
|
347
|
+
}).errors({ NOT_FOUND: {} }).input(z.object({ deploymentId: z.string().describe("The ID of the deployment") })).output(deploymentWithPageUrlSchema);
|
|
348
|
+
const getDeploymentLogsContractV1 = oc.route({
|
|
349
|
+
path: "/v1/deployments/{deploymentId}/logs",
|
|
350
|
+
method: "GET",
|
|
351
|
+
summary: "Get deployment logs",
|
|
352
|
+
description: "Get the logs for a deployment",
|
|
353
|
+
tags: ["deployments"],
|
|
354
|
+
successDescription: "The deployment logs"
|
|
355
|
+
}).errors({ NOT_FOUND: {} }).input(z.object({ deploymentId: z.string().describe("The ID of the deployment") })).output(z.object({
|
|
356
|
+
logs: z.array(z.object({
|
|
357
|
+
timestamp: z.coerce.date().optional(),
|
|
358
|
+
content: z.string().optional()
|
|
359
|
+
})),
|
|
360
|
+
hasMoreLogs: z.boolean()
|
|
361
|
+
}));
|
|
362
|
+
const analyticsDataPointSchema = z.object({
|
|
363
|
+
timestamp: z.number(),
|
|
364
|
+
categories: z.record(z.string(), z.unknown())
|
|
365
|
+
});
|
|
366
|
+
const analyticsTimeSeriesSchema = z.object({
|
|
367
|
+
sessions_count: z.array(analyticsDataPointSchema),
|
|
368
|
+
requests_count: z.array(analyticsDataPointSchema),
|
|
369
|
+
requests_latency_mean: z.array(analyticsDataPointSchema),
|
|
370
|
+
tool_errors: z.array(analyticsDataPointSchema),
|
|
371
|
+
mcp_errors: z.array(analyticsDataPointSchema),
|
|
372
|
+
output_token_mean: z.array(analyticsDataPointSchema),
|
|
373
|
+
task_count: z.array(analyticsDataPointSchema)
|
|
374
|
+
});
|
|
375
|
+
const getProjectAnalyticsContractV1 = oc.route({
|
|
376
|
+
path: "/v1/analytics/{projectId}",
|
|
377
|
+
method: "GET",
|
|
378
|
+
summary: "Get project analytics",
|
|
379
|
+
description: "Get analytics data for a project over a time range",
|
|
380
|
+
tags: ["analytics"],
|
|
381
|
+
successDescription: "The project analytics data"
|
|
382
|
+
}).errors({
|
|
383
|
+
NOT_FOUND: {},
|
|
384
|
+
BAD_REQUEST: {}
|
|
385
|
+
}).input(z.object({
|
|
386
|
+
projectId: z.string().describe("The ID of the project"),
|
|
387
|
+
startTimestamp: z.coerce.number().describe("Start timestamp in milliseconds"),
|
|
388
|
+
endTimestamp: z.coerce.number().describe("End timestamp in milliseconds"),
|
|
389
|
+
timeZone: z.string().describe("IANA timezone (e.g. Europe/Paris)")
|
|
390
|
+
}).refine(({ startTimestamp, endTimestamp }) => endTimestamp - startTimestamp > 0, { message: "End date must be after start date" }).refine(({ startTimestamp, endTimestamp }) => endTimestamp - startTimestamp <= 744 * 60 * 60 * 1e3, { message: "Date range must be less than 1 month" }).refine(({ timeZone }) => Intl.supportedValuesOf("timeZone").includes(timeZone), { message: "Time zone must be a valid IANA timezone" })).output(z.object({
|
|
391
|
+
metadata: z.object({
|
|
392
|
+
startTimestamp: z.number(),
|
|
393
|
+
endTimestamp: z.number(),
|
|
394
|
+
timeZone: z.string(),
|
|
395
|
+
startDate: z.coerce.date(),
|
|
396
|
+
interval: z.string()
|
|
397
|
+
}),
|
|
398
|
+
timeSeries: analyticsTimeSeriesSchema
|
|
399
|
+
}));
|
|
400
|
+
const listTeamsContractV1 = oc.route({
|
|
401
|
+
path: "/v1/teams",
|
|
402
|
+
method: "GET",
|
|
403
|
+
summary: "List teams",
|
|
404
|
+
description: "List all teams for the authenticated user",
|
|
405
|
+
tags: ["teams"],
|
|
406
|
+
successDescription: "The list of teams"
|
|
407
|
+
}).output(z.array(z.object({
|
|
408
|
+
id: z.string(),
|
|
409
|
+
name: z.string(),
|
|
410
|
+
createdAt: z.coerce.date(),
|
|
411
|
+
hasStripeAccount: z.boolean()
|
|
412
|
+
})));
|
|
413
|
+
const getTunnelTicketContractV1 = oc.route({
|
|
414
|
+
path: "/v1/tunnels/ticket",
|
|
415
|
+
method: "GET",
|
|
416
|
+
summary: "Get a tunnel ticket",
|
|
417
|
+
description: "Get a signed ticket for establishing a tunnel connection. Requires user authentication (API keys are not supported).",
|
|
418
|
+
tags: ["tunnels"],
|
|
419
|
+
successDescription: "The tunnel ticket"
|
|
420
|
+
}).output(z.object({
|
|
421
|
+
subdomain: z.string().describe("The subdomain assigned to the user"),
|
|
422
|
+
ticket: z.string().describe("The signed tunnel ticket"),
|
|
423
|
+
tunnelHost: z.string().describe("The tunnel host to connect to")
|
|
424
|
+
}));
|
|
246
425
|
const contract = {
|
|
426
|
+
teams: { list: { v1: listTeamsContractV1 } },
|
|
427
|
+
analytics: { get: { v1: getProjectAnalyticsContractV1 } },
|
|
247
428
|
deployments: {
|
|
429
|
+
list: { v1: listProjectDeploymentsContractV1 },
|
|
248
430
|
get: { v1: getDeploymentContractV1 },
|
|
249
|
-
uploadArtifact: { v1: uploadDeploymentArtifactContractV1 }
|
|
431
|
+
uploadArtifact: { v1: uploadDeploymentArtifactContractV1 },
|
|
432
|
+
getLogs: { v1: getDeploymentLogsContractV1 }
|
|
250
433
|
},
|
|
251
434
|
environments: {
|
|
252
435
|
create: { v1: createEnvironmentContractV1 },
|
|
253
436
|
get: { v1: getEnvironmentContractV1 },
|
|
254
437
|
deploy: { v1: deployEnvironmentContractV1 }
|
|
255
438
|
},
|
|
439
|
+
environmentVariables: {
|
|
440
|
+
list: { v1: listEnvironmentVariablesContractV1 },
|
|
441
|
+
create: { v1: createEnvironmentVariablesContractV1 },
|
|
442
|
+
update: { v1: updateEnvironmentVariableContractV1 },
|
|
443
|
+
delete: { v1: deleteEnvironmentVariableContractV1 }
|
|
444
|
+
},
|
|
256
445
|
projects: {
|
|
446
|
+
update: { v1: updateProjectContractV1 },
|
|
257
447
|
get: { v1: getProjectContractV1 },
|
|
258
448
|
list: { v1: listProjectsContractV1 },
|
|
259
|
-
create: { v1: createProjectContractV1 }
|
|
260
|
-
|
|
449
|
+
create: { v1: createProjectContractV1 },
|
|
450
|
+
delete: { v1: deleteProjectContractV1 }
|
|
451
|
+
},
|
|
452
|
+
tunnels: { getTicket: { v1: getTunnelTicketContractV1 } }
|
|
261
453
|
};
|
|
262
|
-
|
|
263
454
|
//#endregion
|
|
264
|
-
export { buildSettingsSchema, contract, createEnvironmentContractV1, environmentVariableSchema, environmentVariablesSchema, runtimeSchema, transportSchema };
|
|
455
|
+
export { buildSettingsSchema, contract, createEnvironmentContractV1, environmentVariableSchema, environmentVariablesSchema, runtimeSchema, transportSchema };
|
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.bdeff30",
|
|
4
4
|
"description": "Contract for the Alpic API",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.mjs",
|
|
@@ -17,14 +17,13 @@
|
|
|
17
17
|
"author": "Alpic",
|
|
18
18
|
"license": "ISC",
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@orpc/contract": "^1.13.
|
|
20
|
+
"@orpc/contract": "^1.13.6",
|
|
21
21
|
"zod": "^4.3.6"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
24
|
"@total-typescript/tsconfig": "^1.0.4",
|
|
25
|
-
"biome": "^0.3.3",
|
|
26
25
|
"shx": "^0.4.0",
|
|
27
|
-
"tsdown": "^0.
|
|
26
|
+
"tsdown": "^0.21.1",
|
|
28
27
|
"typescript": "^5.9.3",
|
|
29
28
|
"vitest": "^4.0.18"
|
|
30
29
|
},
|