@alpic-ai/api 0.0.0-staging.28a2783 → 0.0.0-staging.29dafd1
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 +224 -3
- package/dist/index.mjs +147 -16
- 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,6 +220,7 @@ 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>;
|
|
120
224
|
}, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
121
225
|
NOT_FOUND: {};
|
|
122
226
|
BAD_REQUEST: {};
|
|
@@ -124,6 +228,84 @@ declare const contract: {
|
|
|
124
228
|
};
|
|
125
229
|
};
|
|
126
230
|
projects: {
|
|
231
|
+
update: {
|
|
232
|
+
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
233
|
+
projectId: z.ZodString;
|
|
234
|
+
name: z.ZodOptional<z.ZodString>;
|
|
235
|
+
sourceRepository: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
236
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
237
|
+
id: z.ZodString;
|
|
238
|
+
name: z.ZodString;
|
|
239
|
+
teamId: z.ZodString;
|
|
240
|
+
sourceRepository: z.ZodNullable<z.ZodString>;
|
|
241
|
+
runtime: z.ZodEnum<{
|
|
242
|
+
"python3.13": "python3.13";
|
|
243
|
+
"python3.14": "python3.14";
|
|
244
|
+
node22: "node22";
|
|
245
|
+
node24: "node24";
|
|
246
|
+
}>;
|
|
247
|
+
transport: z.ZodNullable<z.ZodEnum<{
|
|
248
|
+
stdio: "stdio";
|
|
249
|
+
sse: "sse";
|
|
250
|
+
streamablehttp: "streamablehttp";
|
|
251
|
+
}>>;
|
|
252
|
+
rootDirectory: z.ZodNullable<z.ZodString>;
|
|
253
|
+
buildCommand: z.ZodNullable<z.ZodString>;
|
|
254
|
+
buildOutputDir: z.ZodNullable<z.ZodString>;
|
|
255
|
+
installCommand: z.ZodNullable<z.ZodString>;
|
|
256
|
+
startCommand: z.ZodNullable<z.ZodString>;
|
|
257
|
+
createdAt: z.ZodCoercedDate<unknown>;
|
|
258
|
+
productionEnvironment: z.ZodNullable<z.ZodObject<{
|
|
259
|
+
id: z.ZodString;
|
|
260
|
+
name: z.ZodString;
|
|
261
|
+
mcpServerUrl: z.ZodString;
|
|
262
|
+
domains: z.ZodArray<z.ZodObject<{
|
|
263
|
+
domain: z.ZodString;
|
|
264
|
+
status: z.ZodEnum<{
|
|
265
|
+
ongoing: "ongoing";
|
|
266
|
+
deployed: "deployed";
|
|
267
|
+
failed: "failed";
|
|
268
|
+
}>;
|
|
269
|
+
createdAt: z.ZodCoercedDate<unknown>;
|
|
270
|
+
}, z.core.$strip>>;
|
|
271
|
+
latestDeployment: z.ZodNullable<z.ZodObject<{
|
|
272
|
+
id: z.ZodString;
|
|
273
|
+
status: z.ZodEnum<{
|
|
274
|
+
ongoing: "ongoing";
|
|
275
|
+
deployed: "deployed";
|
|
276
|
+
failed: "failed";
|
|
277
|
+
canceled: "canceled";
|
|
278
|
+
}>;
|
|
279
|
+
sourceCommitId: z.ZodNullable<z.ZodString>;
|
|
280
|
+
sourceCommitMessage: z.ZodNullable<z.ZodString>;
|
|
281
|
+
completedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
|
|
282
|
+
}, z.core.$strip>>;
|
|
283
|
+
}, z.core.$strip>>;
|
|
284
|
+
environments: z.ZodArray<z.ZodObject<{
|
|
285
|
+
id: z.ZodString;
|
|
286
|
+
name: z.ZodString;
|
|
287
|
+
sourceBranch: z.ZodNullable<z.ZodString>;
|
|
288
|
+
mcpServerUrl: z.ZodString;
|
|
289
|
+
createdAt: z.ZodCoercedDate<unknown>;
|
|
290
|
+
projectId: z.ZodString;
|
|
291
|
+
latestDeployment: z.ZodNullable<z.ZodObject<{
|
|
292
|
+
id: z.ZodString;
|
|
293
|
+
status: z.ZodEnum<{
|
|
294
|
+
ongoing: "ongoing";
|
|
295
|
+
deployed: "deployed";
|
|
296
|
+
failed: "failed";
|
|
297
|
+
canceled: "canceled";
|
|
298
|
+
}>;
|
|
299
|
+
sourceCommitId: z.ZodNullable<z.ZodString>;
|
|
300
|
+
sourceCommitMessage: z.ZodNullable<z.ZodString>;
|
|
301
|
+
completedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
|
|
302
|
+
}, z.core.$strip>>;
|
|
303
|
+
}, z.core.$strip>>;
|
|
304
|
+
}, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
305
|
+
NOT_FOUND: {};
|
|
306
|
+
BAD_REQUEST: {};
|
|
307
|
+
}>, Record<never, never>>;
|
|
308
|
+
};
|
|
127
309
|
get: {
|
|
128
310
|
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
129
311
|
projectId: z.ZodString;
|
|
@@ -153,6 +335,15 @@ declare const contract: {
|
|
|
153
335
|
id: z.ZodString;
|
|
154
336
|
name: z.ZodString;
|
|
155
337
|
mcpServerUrl: z.ZodString;
|
|
338
|
+
domains: z.ZodArray<z.ZodObject<{
|
|
339
|
+
domain: z.ZodString;
|
|
340
|
+
status: z.ZodEnum<{
|
|
341
|
+
ongoing: "ongoing";
|
|
342
|
+
deployed: "deployed";
|
|
343
|
+
failed: "failed";
|
|
344
|
+
}>;
|
|
345
|
+
createdAt: z.ZodCoercedDate<unknown>;
|
|
346
|
+
}, z.core.$strip>>;
|
|
156
347
|
latestDeployment: z.ZodNullable<z.ZodObject<{
|
|
157
348
|
id: z.ZodString;
|
|
158
349
|
status: z.ZodEnum<{
|
|
@@ -191,7 +382,9 @@ declare const contract: {
|
|
|
191
382
|
}>, Record<never, never>>;
|
|
192
383
|
};
|
|
193
384
|
list: {
|
|
194
|
-
v1: _orpc_contract0.
|
|
385
|
+
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodOptional<z.ZodObject<{
|
|
386
|
+
teamId: z.ZodOptional<z.ZodString>;
|
|
387
|
+
}, z.core.$strip>>, z.ZodArray<z.ZodObject<{
|
|
195
388
|
id: z.ZodString;
|
|
196
389
|
name: z.ZodString;
|
|
197
390
|
teamId: z.ZodString;
|
|
@@ -217,6 +410,15 @@ declare const contract: {
|
|
|
217
410
|
id: z.ZodString;
|
|
218
411
|
name: z.ZodString;
|
|
219
412
|
mcpServerUrl: z.ZodString;
|
|
413
|
+
domains: z.ZodArray<z.ZodObject<{
|
|
414
|
+
domain: z.ZodString;
|
|
415
|
+
status: z.ZodEnum<{
|
|
416
|
+
ongoing: "ongoing";
|
|
417
|
+
deployed: "deployed";
|
|
418
|
+
failed: "failed";
|
|
419
|
+
}>;
|
|
420
|
+
createdAt: z.ZodCoercedDate<unknown>;
|
|
421
|
+
}, z.core.$strip>>;
|
|
220
422
|
latestDeployment: z.ZodNullable<z.ZodObject<{
|
|
221
423
|
id: z.ZodString;
|
|
222
424
|
status: z.ZodEnum<{
|
|
@@ -254,6 +456,7 @@ declare const contract: {
|
|
|
254
456
|
};
|
|
255
457
|
create: {
|
|
256
458
|
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
459
|
+
teamId: z.ZodOptional<z.ZodString>;
|
|
257
460
|
name: z.ZodString;
|
|
258
461
|
sourceRepository: z.ZodOptional<z.ZodString>;
|
|
259
462
|
branchName: z.ZodOptional<z.ZodString>;
|
|
@@ -315,6 +518,24 @@ declare const contract: {
|
|
|
315
518
|
BAD_REQUEST: {};
|
|
316
519
|
}>, Record<never, never>>;
|
|
317
520
|
};
|
|
521
|
+
delete: {
|
|
522
|
+
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
523
|
+
projectId: z.ZodString;
|
|
524
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
525
|
+
success: z.ZodLiteral<true>;
|
|
526
|
+
}, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
527
|
+
NOT_FOUND: {};
|
|
528
|
+
}>, Record<never, never>>;
|
|
529
|
+
};
|
|
530
|
+
};
|
|
531
|
+
tunnels: {
|
|
532
|
+
getTicket: {
|
|
533
|
+
v1: _orpc_contract0.ContractProcedureBuilderWithOutput<_orpc_contract0.Schema<unknown, unknown>, z.ZodObject<{
|
|
534
|
+
subdomain: z.ZodString;
|
|
535
|
+
ticket: z.ZodString;
|
|
536
|
+
tunnelHost: z.ZodString;
|
|
537
|
+
}, z.core.$strip>, Record<never, never>, Record<never, never>>;
|
|
538
|
+
};
|
|
318
539
|
};
|
|
319
540
|
};
|
|
320
541
|
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",
|
|
@@ -55,7 +58,6 @@ const transportSchema = z.enum([
|
|
|
55
58
|
"sse",
|
|
56
59
|
"streamablehttp"
|
|
57
60
|
]);
|
|
58
|
-
|
|
59
61
|
//#endregion
|
|
60
62
|
//#region src/api.contract.ts
|
|
61
63
|
const deploymentStatusSchema = z.enum([
|
|
@@ -82,6 +84,7 @@ const deploymentSchema = z.object({
|
|
|
82
84
|
startedAt: z.coerce.date().nullable(),
|
|
83
85
|
completedAt: z.coerce.date().nullable()
|
|
84
86
|
});
|
|
87
|
+
const deploymentWithPageUrlSchema = deploymentSchema.extend({ deploymentPageUrl: z.url().nullable() });
|
|
85
88
|
const createEnvironmentContractV1 = oc.route({
|
|
86
89
|
path: "/v1/environments",
|
|
87
90
|
method: "POST",
|
|
@@ -106,7 +109,7 @@ const createEnvironmentContractV1 = oc.route({
|
|
|
106
109
|
projectId: z.string().describe("The ID of the project the environment belongs to")
|
|
107
110
|
}));
|
|
108
111
|
const getEnvironmentContractV1 = oc.route({
|
|
109
|
-
path: "/v1/environments
|
|
112
|
+
path: "/v1/environments/{environmentId}",
|
|
110
113
|
method: "GET",
|
|
111
114
|
summary: "Get an environment",
|
|
112
115
|
description: "Get an environment by ID",
|
|
@@ -121,10 +124,20 @@ const getEnvironmentContractV1 = oc.route({
|
|
|
121
124
|
createdAt: z.coerce.date(),
|
|
122
125
|
projectId: z.string()
|
|
123
126
|
}));
|
|
127
|
+
const domainSchema = z.object({
|
|
128
|
+
domain: z.string(),
|
|
129
|
+
status: z.enum([
|
|
130
|
+
"ongoing",
|
|
131
|
+
"deployed",
|
|
132
|
+
"failed"
|
|
133
|
+
]),
|
|
134
|
+
createdAt: z.coerce.date()
|
|
135
|
+
});
|
|
124
136
|
const productionEnvironmentSchema = z.object({
|
|
125
137
|
id: z.string(),
|
|
126
138
|
name: z.string(),
|
|
127
139
|
mcpServerUrl: z.string(),
|
|
140
|
+
domains: z.array(domainSchema),
|
|
128
141
|
latestDeployment: latestDeploymentSchema.nullable()
|
|
129
142
|
});
|
|
130
143
|
const environmentSchema = z.object({
|
|
@@ -153,7 +166,7 @@ const projectOutputSchema = z.object({
|
|
|
153
166
|
environments: z.array(environmentSchema)
|
|
154
167
|
});
|
|
155
168
|
const getProjectContractV1 = oc.route({
|
|
156
|
-
path: "/v1/projects
|
|
169
|
+
path: "/v1/projects/{projectId}",
|
|
157
170
|
method: "GET",
|
|
158
171
|
summary: "Get a project",
|
|
159
172
|
description: "Get a project by ID",
|
|
@@ -167,7 +180,7 @@ const listProjectsContractV1 = oc.route({
|
|
|
167
180
|
description: "List all projects for a team",
|
|
168
181
|
tags: ["projects"],
|
|
169
182
|
successDescription: "The list of projects"
|
|
170
|
-
}).output(z.array(projectOutputSchema));
|
|
183
|
+
}).input(z.object({ teamId: z.string().optional() }).optional()).output(z.array(projectOutputSchema));
|
|
171
184
|
const createProjectContractV1 = oc.route({
|
|
172
185
|
path: "/v1/projects",
|
|
173
186
|
method: "POST",
|
|
@@ -179,7 +192,8 @@ const createProjectContractV1 = oc.route({
|
|
|
179
192
|
NOT_FOUND: {},
|
|
180
193
|
BAD_REQUEST: {}
|
|
181
194
|
}).input(z.object({
|
|
182
|
-
|
|
195
|
+
teamId: z.string().optional(),
|
|
196
|
+
name: z.string().trim().min(1).max(100),
|
|
183
197
|
sourceRepository: z.string().optional(),
|
|
184
198
|
branchName: z.string().min(1).optional(),
|
|
185
199
|
runtime: runtimeSchema,
|
|
@@ -209,8 +223,31 @@ const createProjectContractV1 = oc.route({
|
|
|
209
223
|
startCommand: z.string().nullable(),
|
|
210
224
|
createdAt: z.coerce.date()
|
|
211
225
|
}));
|
|
226
|
+
const deleteProjectContractV1 = oc.route({
|
|
227
|
+
path: "/v1/projects/:projectId",
|
|
228
|
+
method: "DELETE",
|
|
229
|
+
summary: "Delete a project",
|
|
230
|
+
description: "Delete a project and all its environments",
|
|
231
|
+
tags: ["projects"],
|
|
232
|
+
successDescription: "The project has been deleted successfully"
|
|
233
|
+
}).errors({ NOT_FOUND: {} }).input(z.object({ projectId: z.string().describe("The ID of the project") })).output(z.object({ success: z.literal(true) }));
|
|
234
|
+
const updateProjectContractV1 = oc.route({
|
|
235
|
+
path: "/v1/projects/{projectId}",
|
|
236
|
+
method: "PATCH",
|
|
237
|
+
summary: "Update a project",
|
|
238
|
+
description: "Update project settings",
|
|
239
|
+
tags: ["projects"],
|
|
240
|
+
successDescription: "The project has been updated successfully"
|
|
241
|
+
}).errors({
|
|
242
|
+
NOT_FOUND: {},
|
|
243
|
+
BAD_REQUEST: {}
|
|
244
|
+
}).input(z.object({
|
|
245
|
+
projectId: z.string().describe("The ID of the project"),
|
|
246
|
+
name: z.string().min(1).max(100).optional().describe("The new name for the project"),
|
|
247
|
+
sourceRepository: z.string().nullable().optional().describe("The source repository to connect to the project")
|
|
248
|
+
})).output(projectOutputSchema);
|
|
212
249
|
const deployEnvironmentContractV1 = oc.route({
|
|
213
|
-
path: "/v1/environments
|
|
250
|
+
path: "/v1/environments/{environmentId}/deploy",
|
|
214
251
|
method: "POST",
|
|
215
252
|
summary: "Deploy an environment",
|
|
216
253
|
description: "Deploy an environment",
|
|
@@ -222,7 +259,7 @@ const deployEnvironmentContractV1 = oc.route({
|
|
|
222
259
|
}).input(z.object({
|
|
223
260
|
environmentId: z.string().describe("The ID of the environment to deploy"),
|
|
224
261
|
token: z.string().describe("The token to identify the source archive").optional()
|
|
225
|
-
})).output(
|
|
262
|
+
})).output(deploymentWithPageUrlSchema);
|
|
226
263
|
const uploadDeploymentArtifactContractV1 = oc.route({
|
|
227
264
|
path: "/v1/deployments/upload",
|
|
228
265
|
method: "POST",
|
|
@@ -230,23 +267,115 @@ const uploadDeploymentArtifactContractV1 = oc.route({
|
|
|
230
267
|
description: "Return a presigned S3 URL to upload a deployment artifact",
|
|
231
268
|
tags: ["deployments"],
|
|
232
269
|
successDescription: "The presigned upload URL has been generated successfully"
|
|
233
|
-
}).output(z.object({
|
|
270
|
+
}).input(z.object({ teamId: z.string().optional() }).optional()).output(z.object({
|
|
234
271
|
uploadUrl: z.string().url().describe("Presigned S3 URL to upload the source archive with HTTP PUT"),
|
|
235
272
|
token: z.string().describe("Token to identify the source archive"),
|
|
236
273
|
expiresAt: z.coerce.date().describe("Expiration date of the presigned URL")
|
|
237
274
|
}));
|
|
275
|
+
const listProjectDeploymentsContractV1 = oc.route({
|
|
276
|
+
path: "/v1/projects/{projectId}/deployments",
|
|
277
|
+
method: "GET",
|
|
278
|
+
summary: "List project deployments",
|
|
279
|
+
description: "List all deployments for a project",
|
|
280
|
+
tags: ["deployments"],
|
|
281
|
+
successDescription: "The list of deployments"
|
|
282
|
+
}).errors({ NOT_FOUND: {} }).input(z.object({ projectId: z.string().describe("The ID of the project") })).output(z.array(deploymentSchema.extend({
|
|
283
|
+
isCurrent: z.boolean(),
|
|
284
|
+
environmentId: z.string()
|
|
285
|
+
})));
|
|
238
286
|
const getDeploymentContractV1 = oc.route({
|
|
239
|
-
path: "/v1/deployments
|
|
287
|
+
path: "/v1/deployments/{deploymentId}",
|
|
240
288
|
method: "GET",
|
|
241
289
|
summary: "Get a deployment",
|
|
242
290
|
description: "Get a deployment by ID",
|
|
243
291
|
tags: ["deployments"],
|
|
244
292
|
successDescription: "The deployment details"
|
|
245
|
-
}).errors({ NOT_FOUND: {} }).input(z.object({ deploymentId: z.string().describe("The ID of the deployment") })).output(
|
|
293
|
+
}).errors({ NOT_FOUND: {} }).input(z.object({ deploymentId: z.string().describe("The ID of the deployment") })).output(deploymentWithPageUrlSchema);
|
|
294
|
+
const getDeploymentLogsContractV1 = oc.route({
|
|
295
|
+
path: "/v1/deployments/{deploymentId}/logs",
|
|
296
|
+
method: "GET",
|
|
297
|
+
summary: "Get deployment logs",
|
|
298
|
+
description: "Get the logs for a deployment",
|
|
299
|
+
tags: ["deployments"],
|
|
300
|
+
successDescription: "The deployment logs"
|
|
301
|
+
}).errors({ NOT_FOUND: {} }).input(z.object({ deploymentId: z.string().describe("The ID of the deployment") })).output(z.object({
|
|
302
|
+
logs: z.array(z.object({
|
|
303
|
+
timestamp: z.coerce.date().optional(),
|
|
304
|
+
content: z.string().optional()
|
|
305
|
+
})),
|
|
306
|
+
hasMoreLogs: z.boolean()
|
|
307
|
+
}));
|
|
308
|
+
const analyticsDataPointSchema = z.object({
|
|
309
|
+
timestamp: z.number(),
|
|
310
|
+
categories: z.record(z.string(), z.unknown())
|
|
311
|
+
});
|
|
312
|
+
const analyticsTimeSeriesSchema = z.object({
|
|
313
|
+
sessions_count: z.array(analyticsDataPointSchema),
|
|
314
|
+
requests_count: z.array(analyticsDataPointSchema),
|
|
315
|
+
requests_latency_mean: z.array(analyticsDataPointSchema),
|
|
316
|
+
tool_errors: z.array(analyticsDataPointSchema),
|
|
317
|
+
mcp_errors: z.array(analyticsDataPointSchema),
|
|
318
|
+
output_token_mean: z.array(analyticsDataPointSchema),
|
|
319
|
+
task_count: z.array(analyticsDataPointSchema)
|
|
320
|
+
});
|
|
321
|
+
const getProjectAnalyticsContractV1 = oc.route({
|
|
322
|
+
path: "/v1/analytics/{projectId}",
|
|
323
|
+
method: "GET",
|
|
324
|
+
summary: "Get project analytics",
|
|
325
|
+
description: "Get analytics data for a project over a time range",
|
|
326
|
+
tags: ["analytics"],
|
|
327
|
+
successDescription: "The project analytics data"
|
|
328
|
+
}).errors({
|
|
329
|
+
NOT_FOUND: {},
|
|
330
|
+
BAD_REQUEST: {}
|
|
331
|
+
}).input(z.object({
|
|
332
|
+
projectId: z.string().describe("The ID of the project"),
|
|
333
|
+
startTimestamp: z.coerce.number().describe("Start timestamp in milliseconds"),
|
|
334
|
+
endTimestamp: z.coerce.number().describe("End timestamp in milliseconds"),
|
|
335
|
+
timeZone: z.string().describe("IANA timezone (e.g. Europe/Paris)")
|
|
336
|
+
}).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({
|
|
337
|
+
metadata: z.object({
|
|
338
|
+
startTimestamp: z.number(),
|
|
339
|
+
endTimestamp: z.number(),
|
|
340
|
+
timeZone: z.string(),
|
|
341
|
+
startDate: z.coerce.date(),
|
|
342
|
+
interval: z.string()
|
|
343
|
+
}),
|
|
344
|
+
timeSeries: analyticsTimeSeriesSchema
|
|
345
|
+
}));
|
|
346
|
+
const listTeamsContractV1 = oc.route({
|
|
347
|
+
path: "/v1/teams",
|
|
348
|
+
method: "GET",
|
|
349
|
+
summary: "List teams",
|
|
350
|
+
description: "List all teams for the authenticated user",
|
|
351
|
+
tags: ["teams"],
|
|
352
|
+
successDescription: "The list of teams"
|
|
353
|
+
}).output(z.array(z.object({
|
|
354
|
+
id: z.string(),
|
|
355
|
+
name: z.string(),
|
|
356
|
+
createdAt: z.coerce.date(),
|
|
357
|
+
hasStripeAccount: z.boolean()
|
|
358
|
+
})));
|
|
359
|
+
const getTunnelTicketContractV1 = oc.route({
|
|
360
|
+
path: "/v1/tunnels/ticket",
|
|
361
|
+
method: "GET",
|
|
362
|
+
summary: "Get a tunnel ticket",
|
|
363
|
+
description: "Get a signed ticket for establishing a tunnel connection. Requires user authentication (API keys are not supported).",
|
|
364
|
+
tags: ["tunnels"],
|
|
365
|
+
successDescription: "The tunnel ticket"
|
|
366
|
+
}).output(z.object({
|
|
367
|
+
subdomain: z.string().describe("The subdomain assigned to the user"),
|
|
368
|
+
ticket: z.string().describe("The signed tunnel ticket"),
|
|
369
|
+
tunnelHost: z.string().describe("The tunnel host to connect to")
|
|
370
|
+
}));
|
|
246
371
|
const contract = {
|
|
372
|
+
teams: { list: { v1: listTeamsContractV1 } },
|
|
373
|
+
analytics: { get: { v1: getProjectAnalyticsContractV1 } },
|
|
247
374
|
deployments: {
|
|
375
|
+
list: { v1: listProjectDeploymentsContractV1 },
|
|
248
376
|
get: { v1: getDeploymentContractV1 },
|
|
249
|
-
uploadArtifact: { v1: uploadDeploymentArtifactContractV1 }
|
|
377
|
+
uploadArtifact: { v1: uploadDeploymentArtifactContractV1 },
|
|
378
|
+
getLogs: { v1: getDeploymentLogsContractV1 }
|
|
250
379
|
},
|
|
251
380
|
environments: {
|
|
252
381
|
create: { v1: createEnvironmentContractV1 },
|
|
@@ -254,11 +383,13 @@ const contract = {
|
|
|
254
383
|
deploy: { v1: deployEnvironmentContractV1 }
|
|
255
384
|
},
|
|
256
385
|
projects: {
|
|
386
|
+
update: { v1: updateProjectContractV1 },
|
|
257
387
|
get: { v1: getProjectContractV1 },
|
|
258
388
|
list: { v1: listProjectsContractV1 },
|
|
259
|
-
create: { v1: createProjectContractV1 }
|
|
260
|
-
|
|
389
|
+
create: { v1: createProjectContractV1 },
|
|
390
|
+
delete: { v1: deleteProjectContractV1 }
|
|
391
|
+
},
|
|
392
|
+
tunnels: { getTicket: { v1: getTunnelTicketContractV1 } }
|
|
261
393
|
};
|
|
262
|
-
|
|
263
394
|
//#endregion
|
|
264
|
-
export { buildSettingsSchema, contract, createEnvironmentContractV1, environmentVariableSchema, environmentVariablesSchema, runtimeSchema, transportSchema };
|
|
395
|
+
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.29dafd1",
|
|
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
|
},
|