@alpic-ai/api 0.0.0-dev.fe6851f → 0.0.0-staging.032f439
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 +188 -3
- package/dist/index.mjs +123 -11
- package/package.json +3 -4
package/dist/index.d.mts
CHANGED
|
@@ -5,7 +5,8 @@ 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;
|
|
9
10
|
};
|
|
10
11
|
};
|
|
11
12
|
declare const createEnvironmentContractV1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
@@ -29,7 +30,93 @@ declare const createEnvironmentContractV1: _orpc_contract0.ContractProcedureBuil
|
|
|
29
30
|
BAD_REQUEST: {};
|
|
30
31
|
}>, Record<never, never>>;
|
|
31
32
|
declare const contract: {
|
|
33
|
+
teams: {
|
|
34
|
+
list: {
|
|
35
|
+
v1: _orpc_contract0.ContractProcedureBuilderWithOutput<_orpc_contract0.Schema<unknown, unknown>, z.ZodArray<z.ZodObject<{
|
|
36
|
+
id: z.ZodString;
|
|
37
|
+
name: z.ZodString;
|
|
38
|
+
createdAt: z.ZodCoercedDate<unknown>;
|
|
39
|
+
hasStripeAccount: z.ZodBoolean;
|
|
40
|
+
hasActiveSubscription: 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,75 @@ 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
|
+
latestDeployment: z.ZodNullable<z.ZodObject<{
|
|
263
|
+
id: z.ZodString;
|
|
264
|
+
status: z.ZodEnum<{
|
|
265
|
+
ongoing: "ongoing";
|
|
266
|
+
deployed: "deployed";
|
|
267
|
+
failed: "failed";
|
|
268
|
+
canceled: "canceled";
|
|
269
|
+
}>;
|
|
270
|
+
sourceCommitId: z.ZodNullable<z.ZodString>;
|
|
271
|
+
sourceCommitMessage: z.ZodNullable<z.ZodString>;
|
|
272
|
+
completedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
|
|
273
|
+
}, z.core.$strip>>;
|
|
274
|
+
}, z.core.$strip>>;
|
|
275
|
+
environments: z.ZodArray<z.ZodObject<{
|
|
276
|
+
id: z.ZodString;
|
|
277
|
+
name: z.ZodString;
|
|
278
|
+
sourceBranch: z.ZodNullable<z.ZodString>;
|
|
279
|
+
mcpServerUrl: z.ZodString;
|
|
280
|
+
createdAt: z.ZodCoercedDate<unknown>;
|
|
281
|
+
projectId: z.ZodString;
|
|
282
|
+
latestDeployment: z.ZodNullable<z.ZodObject<{
|
|
283
|
+
id: z.ZodString;
|
|
284
|
+
status: z.ZodEnum<{
|
|
285
|
+
ongoing: "ongoing";
|
|
286
|
+
deployed: "deployed";
|
|
287
|
+
failed: "failed";
|
|
288
|
+
canceled: "canceled";
|
|
289
|
+
}>;
|
|
290
|
+
sourceCommitId: z.ZodNullable<z.ZodString>;
|
|
291
|
+
sourceCommitMessage: z.ZodNullable<z.ZodString>;
|
|
292
|
+
completedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
|
|
293
|
+
}, z.core.$strip>>;
|
|
294
|
+
}, z.core.$strip>>;
|
|
295
|
+
}, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
296
|
+
NOT_FOUND: {};
|
|
297
|
+
BAD_REQUEST: {};
|
|
298
|
+
}>, Record<never, never>>;
|
|
299
|
+
};
|
|
127
300
|
get: {
|
|
128
301
|
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
129
302
|
projectId: z.ZodString;
|
|
@@ -191,7 +364,9 @@ declare const contract: {
|
|
|
191
364
|
}>, Record<never, never>>;
|
|
192
365
|
};
|
|
193
366
|
list: {
|
|
194
|
-
v1: _orpc_contract0.
|
|
367
|
+
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodOptional<z.ZodObject<{
|
|
368
|
+
teamId: z.ZodOptional<z.ZodString>;
|
|
369
|
+
}, z.core.$strip>>, z.ZodArray<z.ZodObject<{
|
|
195
370
|
id: z.ZodString;
|
|
196
371
|
name: z.ZodString;
|
|
197
372
|
teamId: z.ZodString;
|
|
@@ -254,6 +429,7 @@ declare const contract: {
|
|
|
254
429
|
};
|
|
255
430
|
create: {
|
|
256
431
|
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
432
|
+
teamId: z.ZodOptional<z.ZodString>;
|
|
257
433
|
name: z.ZodString;
|
|
258
434
|
sourceRepository: z.ZodOptional<z.ZodString>;
|
|
259
435
|
branchName: z.ZodOptional<z.ZodString>;
|
|
@@ -315,6 +491,15 @@ declare const contract: {
|
|
|
315
491
|
BAD_REQUEST: {};
|
|
316
492
|
}>, Record<never, never>>;
|
|
317
493
|
};
|
|
494
|
+
delete: {
|
|
495
|
+
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
496
|
+
projectId: z.ZodString;
|
|
497
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
498
|
+
success: z.ZodLiteral<true>;
|
|
499
|
+
}, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
500
|
+
NOT_FOUND: {};
|
|
501
|
+
}>, Record<never, never>>;
|
|
502
|
+
};
|
|
318
503
|
};
|
|
319
504
|
};
|
|
320
505
|
type RouterInput = InferContractRouterInputs<typeof contract>;
|
package/dist/index.mjs
CHANGED
|
@@ -13,7 +13,11 @@ const RESERVED_KEYS = [
|
|
|
13
13
|
"AWS_LAMBDA_FUNCTION_VERSION",
|
|
14
14
|
"AWS_LAMBDA_INITIALIZATION_TYPE",
|
|
15
15
|
"AWS_LAMBDA_LOG_GROUP_NAME",
|
|
16
|
+
"AWS_LAMBDA_LOG_STREAM_NAME",
|
|
16
17
|
"AWS_ACCESS_KEY",
|
|
18
|
+
"AWS_ACCESS_KEY_ID",
|
|
19
|
+
"AWS_SECRET_ACCESS_KEY",
|
|
20
|
+
"AWS_SESSION_TOKEN",
|
|
17
21
|
"AWS_LAMBDA_RUNTIME_API",
|
|
18
22
|
"LAMBDA_TASK_ROOT",
|
|
19
23
|
"LAMBDA_RUNTIME_DIR",
|
|
@@ -82,6 +86,7 @@ const deploymentSchema = z.object({
|
|
|
82
86
|
startedAt: z.coerce.date().nullable(),
|
|
83
87
|
completedAt: z.coerce.date().nullable()
|
|
84
88
|
});
|
|
89
|
+
const deploymentWithPageUrlSchema = deploymentSchema.extend({ deploymentPageUrl: z.url().nullable() });
|
|
85
90
|
const createEnvironmentContractV1 = oc.route({
|
|
86
91
|
path: "/v1/environments",
|
|
87
92
|
method: "POST",
|
|
@@ -106,7 +111,7 @@ const createEnvironmentContractV1 = oc.route({
|
|
|
106
111
|
projectId: z.string().describe("The ID of the project the environment belongs to")
|
|
107
112
|
}));
|
|
108
113
|
const getEnvironmentContractV1 = oc.route({
|
|
109
|
-
path: "/v1/environments
|
|
114
|
+
path: "/v1/environments/{environmentId}",
|
|
110
115
|
method: "GET",
|
|
111
116
|
summary: "Get an environment",
|
|
112
117
|
description: "Get an environment by ID",
|
|
@@ -153,7 +158,7 @@ const projectOutputSchema = z.object({
|
|
|
153
158
|
environments: z.array(environmentSchema)
|
|
154
159
|
});
|
|
155
160
|
const getProjectContractV1 = oc.route({
|
|
156
|
-
path: "/v1/projects
|
|
161
|
+
path: "/v1/projects/{projectId}",
|
|
157
162
|
method: "GET",
|
|
158
163
|
summary: "Get a project",
|
|
159
164
|
description: "Get a project by ID",
|
|
@@ -167,7 +172,7 @@ const listProjectsContractV1 = oc.route({
|
|
|
167
172
|
description: "List all projects for a team",
|
|
168
173
|
tags: ["projects"],
|
|
169
174
|
successDescription: "The list of projects"
|
|
170
|
-
}).output(z.array(projectOutputSchema));
|
|
175
|
+
}).input(z.object({ teamId: z.string().optional() }).optional()).output(z.array(projectOutputSchema));
|
|
171
176
|
const createProjectContractV1 = oc.route({
|
|
172
177
|
path: "/v1/projects",
|
|
173
178
|
method: "POST",
|
|
@@ -179,7 +184,8 @@ const createProjectContractV1 = oc.route({
|
|
|
179
184
|
NOT_FOUND: {},
|
|
180
185
|
BAD_REQUEST: {}
|
|
181
186
|
}).input(z.object({
|
|
182
|
-
|
|
187
|
+
teamId: z.string().optional(),
|
|
188
|
+
name: z.string().trim().min(1).max(100),
|
|
183
189
|
sourceRepository: z.string().optional(),
|
|
184
190
|
branchName: z.string().min(1).optional(),
|
|
185
191
|
runtime: runtimeSchema,
|
|
@@ -209,8 +215,31 @@ const createProjectContractV1 = oc.route({
|
|
|
209
215
|
startCommand: z.string().nullable(),
|
|
210
216
|
createdAt: z.coerce.date()
|
|
211
217
|
}));
|
|
218
|
+
const deleteProjectContractV1 = oc.route({
|
|
219
|
+
path: "/v1/projects/:projectId",
|
|
220
|
+
method: "DELETE",
|
|
221
|
+
summary: "Delete a project",
|
|
222
|
+
description: "Delete a project and all its environments",
|
|
223
|
+
tags: ["projects"],
|
|
224
|
+
successDescription: "The project has been deleted successfully"
|
|
225
|
+
}).errors({ NOT_FOUND: {} }).input(z.object({ projectId: z.string().describe("The ID of the project") })).output(z.object({ success: z.literal(true) }));
|
|
226
|
+
const updateProjectContractV1 = oc.route({
|
|
227
|
+
path: "/v1/projects/{projectId}",
|
|
228
|
+
method: "PATCH",
|
|
229
|
+
summary: "Update a project",
|
|
230
|
+
description: "Update project settings",
|
|
231
|
+
tags: ["projects"],
|
|
232
|
+
successDescription: "The project has been updated successfully"
|
|
233
|
+
}).errors({
|
|
234
|
+
NOT_FOUND: {},
|
|
235
|
+
BAD_REQUEST: {}
|
|
236
|
+
}).input(z.object({
|
|
237
|
+
projectId: z.string().describe("The ID of the project"),
|
|
238
|
+
name: z.string().min(1).max(100).optional().describe("The new name for the project"),
|
|
239
|
+
sourceRepository: z.string().nullable().optional().describe("The source repository to connect to the project")
|
|
240
|
+
})).output(projectOutputSchema);
|
|
212
241
|
const deployEnvironmentContractV1 = oc.route({
|
|
213
|
-
path: "/v1/environments
|
|
242
|
+
path: "/v1/environments/{environmentId}/deploy",
|
|
214
243
|
method: "POST",
|
|
215
244
|
summary: "Deploy an environment",
|
|
216
245
|
description: "Deploy an environment",
|
|
@@ -222,7 +251,7 @@ const deployEnvironmentContractV1 = oc.route({
|
|
|
222
251
|
}).input(z.object({
|
|
223
252
|
environmentId: z.string().describe("The ID of the environment to deploy"),
|
|
224
253
|
token: z.string().describe("The token to identify the source archive").optional()
|
|
225
|
-
})).output(
|
|
254
|
+
})).output(deploymentWithPageUrlSchema);
|
|
226
255
|
const uploadDeploymentArtifactContractV1 = oc.route({
|
|
227
256
|
path: "/v1/deployments/upload",
|
|
228
257
|
method: "POST",
|
|
@@ -230,23 +259,104 @@ const uploadDeploymentArtifactContractV1 = oc.route({
|
|
|
230
259
|
description: "Return a presigned S3 URL to upload a deployment artifact",
|
|
231
260
|
tags: ["deployments"],
|
|
232
261
|
successDescription: "The presigned upload URL has been generated successfully"
|
|
233
|
-
}).output(z.object({
|
|
262
|
+
}).input(z.object({ teamId: z.string().optional() }).optional()).output(z.object({
|
|
234
263
|
uploadUrl: z.string().url().describe("Presigned S3 URL to upload the source archive with HTTP PUT"),
|
|
235
264
|
token: z.string().describe("Token to identify the source archive"),
|
|
236
265
|
expiresAt: z.coerce.date().describe("Expiration date of the presigned URL")
|
|
237
266
|
}));
|
|
267
|
+
const listProjectDeploymentsContractV1 = oc.route({
|
|
268
|
+
path: "/v1/projects/{projectId}/deployments",
|
|
269
|
+
method: "GET",
|
|
270
|
+
summary: "List project deployments",
|
|
271
|
+
description: "List all deployments for a project",
|
|
272
|
+
tags: ["deployments"],
|
|
273
|
+
successDescription: "The list of deployments"
|
|
274
|
+
}).errors({ NOT_FOUND: {} }).input(z.object({ projectId: z.string().describe("The ID of the project") })).output(z.array(deploymentSchema.extend({
|
|
275
|
+
isCurrent: z.boolean(),
|
|
276
|
+
environmentId: z.string()
|
|
277
|
+
})));
|
|
238
278
|
const getDeploymentContractV1 = oc.route({
|
|
239
|
-
path: "/v1/deployments
|
|
279
|
+
path: "/v1/deployments/{deploymentId}",
|
|
240
280
|
method: "GET",
|
|
241
281
|
summary: "Get a deployment",
|
|
242
282
|
description: "Get a deployment by ID",
|
|
243
283
|
tags: ["deployments"],
|
|
244
284
|
successDescription: "The deployment details"
|
|
245
|
-
}).errors({ NOT_FOUND: {} }).input(z.object({ deploymentId: z.string().describe("The ID of the deployment") })).output(
|
|
285
|
+
}).errors({ NOT_FOUND: {} }).input(z.object({ deploymentId: z.string().describe("The ID of the deployment") })).output(deploymentWithPageUrlSchema);
|
|
286
|
+
const getDeploymentLogsContractV1 = oc.route({
|
|
287
|
+
path: "/v1/deployments/{deploymentId}/logs",
|
|
288
|
+
method: "GET",
|
|
289
|
+
summary: "Get deployment logs",
|
|
290
|
+
description: "Get the logs for a deployment",
|
|
291
|
+
tags: ["deployments"],
|
|
292
|
+
successDescription: "The deployment logs"
|
|
293
|
+
}).errors({ NOT_FOUND: {} }).input(z.object({ deploymentId: z.string().describe("The ID of the deployment") })).output(z.object({
|
|
294
|
+
logs: z.array(z.object({
|
|
295
|
+
timestamp: z.coerce.date().optional(),
|
|
296
|
+
content: z.string().optional()
|
|
297
|
+
})),
|
|
298
|
+
hasMoreLogs: z.boolean()
|
|
299
|
+
}));
|
|
300
|
+
const analyticsDataPointSchema = z.object({
|
|
301
|
+
timestamp: z.number(),
|
|
302
|
+
categories: z.record(z.string(), z.unknown())
|
|
303
|
+
});
|
|
304
|
+
const analyticsTimeSeriesSchema = z.object({
|
|
305
|
+
sessions_count: z.array(analyticsDataPointSchema),
|
|
306
|
+
requests_count: z.array(analyticsDataPointSchema),
|
|
307
|
+
requests_latency_mean: z.array(analyticsDataPointSchema),
|
|
308
|
+
tool_errors: z.array(analyticsDataPointSchema),
|
|
309
|
+
mcp_errors: z.array(analyticsDataPointSchema),
|
|
310
|
+
output_token_mean: z.array(analyticsDataPointSchema),
|
|
311
|
+
task_count: z.array(analyticsDataPointSchema)
|
|
312
|
+
});
|
|
313
|
+
const getProjectAnalyticsContractV1 = oc.route({
|
|
314
|
+
path: "/v1/analytics/{projectId}",
|
|
315
|
+
method: "GET",
|
|
316
|
+
summary: "Get project analytics",
|
|
317
|
+
description: "Get analytics data for a project over a time range",
|
|
318
|
+
tags: ["analytics"],
|
|
319
|
+
successDescription: "The project analytics data"
|
|
320
|
+
}).errors({
|
|
321
|
+
NOT_FOUND: {},
|
|
322
|
+
BAD_REQUEST: {}
|
|
323
|
+
}).input(z.object({
|
|
324
|
+
projectId: z.string().describe("The ID of the project"),
|
|
325
|
+
startTimestamp: z.coerce.number().describe("Start timestamp in milliseconds"),
|
|
326
|
+
endTimestamp: z.coerce.number().describe("End timestamp in milliseconds"),
|
|
327
|
+
timeZone: z.string().describe("IANA timezone (e.g. Europe/Paris)")
|
|
328
|
+
}).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({
|
|
329
|
+
metadata: z.object({
|
|
330
|
+
startTimestamp: z.number(),
|
|
331
|
+
endTimestamp: z.number(),
|
|
332
|
+
timeZone: z.string(),
|
|
333
|
+
startDate: z.coerce.date(),
|
|
334
|
+
interval: z.string()
|
|
335
|
+
}),
|
|
336
|
+
timeSeries: analyticsTimeSeriesSchema
|
|
337
|
+
}));
|
|
338
|
+
const listTeamsContractV1 = oc.route({
|
|
339
|
+
path: "/v1/teams",
|
|
340
|
+
method: "GET",
|
|
341
|
+
summary: "List teams",
|
|
342
|
+
description: "List all teams for the authenticated user",
|
|
343
|
+
tags: ["teams"],
|
|
344
|
+
successDescription: "The list of teams"
|
|
345
|
+
}).output(z.array(z.object({
|
|
346
|
+
id: z.string(),
|
|
347
|
+
name: z.string(),
|
|
348
|
+
createdAt: z.coerce.date(),
|
|
349
|
+
hasStripeAccount: z.boolean(),
|
|
350
|
+
hasActiveSubscription: z.boolean()
|
|
351
|
+
})));
|
|
246
352
|
const contract = {
|
|
353
|
+
teams: { list: { v1: listTeamsContractV1 } },
|
|
354
|
+
analytics: { get: { v1: getProjectAnalyticsContractV1 } },
|
|
247
355
|
deployments: {
|
|
356
|
+
list: { v1: listProjectDeploymentsContractV1 },
|
|
248
357
|
get: { v1: getDeploymentContractV1 },
|
|
249
|
-
uploadArtifact: { v1: uploadDeploymentArtifactContractV1 }
|
|
358
|
+
uploadArtifact: { v1: uploadDeploymentArtifactContractV1 },
|
|
359
|
+
getLogs: { v1: getDeploymentLogsContractV1 }
|
|
250
360
|
},
|
|
251
361
|
environments: {
|
|
252
362
|
create: { v1: createEnvironmentContractV1 },
|
|
@@ -254,9 +364,11 @@ const contract = {
|
|
|
254
364
|
deploy: { v1: deployEnvironmentContractV1 }
|
|
255
365
|
},
|
|
256
366
|
projects: {
|
|
367
|
+
update: { v1: updateProjectContractV1 },
|
|
257
368
|
get: { v1: getProjectContractV1 },
|
|
258
369
|
list: { v1: listProjectsContractV1 },
|
|
259
|
-
create: { v1: createProjectContractV1 }
|
|
370
|
+
create: { v1: createProjectContractV1 },
|
|
371
|
+
delete: { v1: deleteProjectContractV1 }
|
|
260
372
|
}
|
|
261
373
|
};
|
|
262
374
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alpic-ai/api",
|
|
3
|
-
"version": "0.0.0-
|
|
3
|
+
"version": "0.0.0-staging.032f439",
|
|
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.5",
|
|
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.20.
|
|
26
|
+
"tsdown": "^0.20.3",
|
|
28
27
|
"typescript": "^5.9.3",
|
|
29
28
|
"vitest": "^4.0.18"
|
|
30
29
|
},
|