@alpic-ai/api 0.0.0-dev.fdab6ef → 0.0.0-dev.fdd8a62
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 +118 -10
- package/package.json +2 -3
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
|
@@ -82,6 +82,7 @@ const deploymentSchema = z.object({
|
|
|
82
82
|
startedAt: z.coerce.date().nullable(),
|
|
83
83
|
completedAt: z.coerce.date().nullable()
|
|
84
84
|
});
|
|
85
|
+
const deploymentWithPageUrlSchema = deploymentSchema.extend({ deploymentPageUrl: z.url().nullable() });
|
|
85
86
|
const createEnvironmentContractV1 = oc.route({
|
|
86
87
|
path: "/v1/environments",
|
|
87
88
|
method: "POST",
|
|
@@ -106,7 +107,7 @@ const createEnvironmentContractV1 = oc.route({
|
|
|
106
107
|
projectId: z.string().describe("The ID of the project the environment belongs to")
|
|
107
108
|
}));
|
|
108
109
|
const getEnvironmentContractV1 = oc.route({
|
|
109
|
-
path: "/v1/environments
|
|
110
|
+
path: "/v1/environments/{environmentId}",
|
|
110
111
|
method: "GET",
|
|
111
112
|
summary: "Get an environment",
|
|
112
113
|
description: "Get an environment by ID",
|
|
@@ -153,7 +154,7 @@ const projectOutputSchema = z.object({
|
|
|
153
154
|
environments: z.array(environmentSchema)
|
|
154
155
|
});
|
|
155
156
|
const getProjectContractV1 = oc.route({
|
|
156
|
-
path: "/v1/projects
|
|
157
|
+
path: "/v1/projects/{projectId}",
|
|
157
158
|
method: "GET",
|
|
158
159
|
summary: "Get a project",
|
|
159
160
|
description: "Get a project by ID",
|
|
@@ -167,7 +168,7 @@ const listProjectsContractV1 = oc.route({
|
|
|
167
168
|
description: "List all projects for a team",
|
|
168
169
|
tags: ["projects"],
|
|
169
170
|
successDescription: "The list of projects"
|
|
170
|
-
}).output(z.array(projectOutputSchema));
|
|
171
|
+
}).input(z.object({ teamId: z.string().optional() }).optional()).output(z.array(projectOutputSchema));
|
|
171
172
|
const createProjectContractV1 = oc.route({
|
|
172
173
|
path: "/v1/projects",
|
|
173
174
|
method: "POST",
|
|
@@ -179,6 +180,7 @@ const createProjectContractV1 = oc.route({
|
|
|
179
180
|
NOT_FOUND: {},
|
|
180
181
|
BAD_REQUEST: {}
|
|
181
182
|
}).input(z.object({
|
|
183
|
+
teamId: z.string().optional(),
|
|
182
184
|
name: z.string().min(1).max(100),
|
|
183
185
|
sourceRepository: z.string().optional(),
|
|
184
186
|
branchName: z.string().min(1).optional(),
|
|
@@ -209,8 +211,31 @@ const createProjectContractV1 = oc.route({
|
|
|
209
211
|
startCommand: z.string().nullable(),
|
|
210
212
|
createdAt: z.coerce.date()
|
|
211
213
|
}));
|
|
214
|
+
const deleteProjectContractV1 = oc.route({
|
|
215
|
+
path: "/v1/projects/:projectId",
|
|
216
|
+
method: "DELETE",
|
|
217
|
+
summary: "Delete a project",
|
|
218
|
+
description: "Delete a project and all its environments",
|
|
219
|
+
tags: ["projects"],
|
|
220
|
+
successDescription: "The project has been deleted successfully"
|
|
221
|
+
}).errors({ NOT_FOUND: {} }).input(z.object({ projectId: z.string().describe("The ID of the project") })).output(z.object({ success: z.literal(true) }));
|
|
222
|
+
const updateProjectContractV1 = oc.route({
|
|
223
|
+
path: "/v1/projects/{projectId}",
|
|
224
|
+
method: "PATCH",
|
|
225
|
+
summary: "Update a project",
|
|
226
|
+
description: "Update project settings",
|
|
227
|
+
tags: ["projects"],
|
|
228
|
+
successDescription: "The project has been updated successfully"
|
|
229
|
+
}).errors({
|
|
230
|
+
NOT_FOUND: {},
|
|
231
|
+
BAD_REQUEST: {}
|
|
232
|
+
}).input(z.object({
|
|
233
|
+
projectId: z.string().describe("The ID of the project"),
|
|
234
|
+
name: z.string().min(1).max(100).optional().describe("The new name for the project"),
|
|
235
|
+
sourceRepository: z.string().nullable().optional().describe("The source repository to connect to the project")
|
|
236
|
+
})).output(projectOutputSchema);
|
|
212
237
|
const deployEnvironmentContractV1 = oc.route({
|
|
213
|
-
path: "/v1/environments
|
|
238
|
+
path: "/v1/environments/{environmentId}/deploy",
|
|
214
239
|
method: "POST",
|
|
215
240
|
summary: "Deploy an environment",
|
|
216
241
|
description: "Deploy an environment",
|
|
@@ -222,7 +247,7 @@ const deployEnvironmentContractV1 = oc.route({
|
|
|
222
247
|
}).input(z.object({
|
|
223
248
|
environmentId: z.string().describe("The ID of the environment to deploy"),
|
|
224
249
|
token: z.string().describe("The token to identify the source archive").optional()
|
|
225
|
-
})).output(
|
|
250
|
+
})).output(deploymentWithPageUrlSchema);
|
|
226
251
|
const uploadDeploymentArtifactContractV1 = oc.route({
|
|
227
252
|
path: "/v1/deployments/upload",
|
|
228
253
|
method: "POST",
|
|
@@ -230,23 +255,104 @@ const uploadDeploymentArtifactContractV1 = oc.route({
|
|
|
230
255
|
description: "Return a presigned S3 URL to upload a deployment artifact",
|
|
231
256
|
tags: ["deployments"],
|
|
232
257
|
successDescription: "The presigned upload URL has been generated successfully"
|
|
233
|
-
}).output(z.object({
|
|
258
|
+
}).input(z.object({ teamId: z.string().optional() }).optional()).output(z.object({
|
|
234
259
|
uploadUrl: z.string().url().describe("Presigned S3 URL to upload the source archive with HTTP PUT"),
|
|
235
260
|
token: z.string().describe("Token to identify the source archive"),
|
|
236
261
|
expiresAt: z.coerce.date().describe("Expiration date of the presigned URL")
|
|
237
262
|
}));
|
|
263
|
+
const listProjectDeploymentsContractV1 = oc.route({
|
|
264
|
+
path: "/v1/projects/{projectId}/deployments",
|
|
265
|
+
method: "GET",
|
|
266
|
+
summary: "List project deployments",
|
|
267
|
+
description: "List all deployments for a project",
|
|
268
|
+
tags: ["deployments"],
|
|
269
|
+
successDescription: "The list of deployments"
|
|
270
|
+
}).errors({ NOT_FOUND: {} }).input(z.object({ projectId: z.string().describe("The ID of the project") })).output(z.array(deploymentSchema.extend({
|
|
271
|
+
isCurrent: z.boolean(),
|
|
272
|
+
environmentId: z.string()
|
|
273
|
+
})));
|
|
238
274
|
const getDeploymentContractV1 = oc.route({
|
|
239
|
-
path: "/v1/deployments
|
|
275
|
+
path: "/v1/deployments/{deploymentId}",
|
|
240
276
|
method: "GET",
|
|
241
277
|
summary: "Get a deployment",
|
|
242
278
|
description: "Get a deployment by ID",
|
|
243
279
|
tags: ["deployments"],
|
|
244
280
|
successDescription: "The deployment details"
|
|
245
|
-
}).errors({ NOT_FOUND: {} }).input(z.object({ deploymentId: z.string().describe("The ID of the deployment") })).output(
|
|
281
|
+
}).errors({ NOT_FOUND: {} }).input(z.object({ deploymentId: z.string().describe("The ID of the deployment") })).output(deploymentWithPageUrlSchema);
|
|
282
|
+
const getDeploymentLogsContractV1 = oc.route({
|
|
283
|
+
path: "/v1/deployments/{deploymentId}/logs",
|
|
284
|
+
method: "GET",
|
|
285
|
+
summary: "Get deployment logs",
|
|
286
|
+
description: "Get the logs for a deployment",
|
|
287
|
+
tags: ["deployments"],
|
|
288
|
+
successDescription: "The deployment logs"
|
|
289
|
+
}).errors({ NOT_FOUND: {} }).input(z.object({ deploymentId: z.string().describe("The ID of the deployment") })).output(z.object({
|
|
290
|
+
logs: z.array(z.object({
|
|
291
|
+
timestamp: z.coerce.date().optional(),
|
|
292
|
+
content: z.string().optional()
|
|
293
|
+
})),
|
|
294
|
+
hasMoreLogs: z.boolean()
|
|
295
|
+
}));
|
|
296
|
+
const analyticsDataPointSchema = z.object({
|
|
297
|
+
timestamp: z.number(),
|
|
298
|
+
categories: z.record(z.string(), z.unknown())
|
|
299
|
+
});
|
|
300
|
+
const analyticsTimeSeriesSchema = z.object({
|
|
301
|
+
sessions_count: z.array(analyticsDataPointSchema),
|
|
302
|
+
requests_count: z.array(analyticsDataPointSchema),
|
|
303
|
+
requests_latency_mean: z.array(analyticsDataPointSchema),
|
|
304
|
+
tool_errors: z.array(analyticsDataPointSchema),
|
|
305
|
+
mcp_errors: z.array(analyticsDataPointSchema),
|
|
306
|
+
output_token_mean: z.array(analyticsDataPointSchema),
|
|
307
|
+
task_count: z.array(analyticsDataPointSchema)
|
|
308
|
+
});
|
|
309
|
+
const getProjectAnalyticsContractV1 = oc.route({
|
|
310
|
+
path: "/v1/analytics/{projectId}",
|
|
311
|
+
method: "GET",
|
|
312
|
+
summary: "Get project analytics",
|
|
313
|
+
description: "Get analytics data for a project over a time range",
|
|
314
|
+
tags: ["analytics"],
|
|
315
|
+
successDescription: "The project analytics data"
|
|
316
|
+
}).errors({
|
|
317
|
+
NOT_FOUND: {},
|
|
318
|
+
BAD_REQUEST: {}
|
|
319
|
+
}).input(z.object({
|
|
320
|
+
projectId: z.string().describe("The ID of the project"),
|
|
321
|
+
startTimestamp: z.coerce.number().describe("Start timestamp in milliseconds"),
|
|
322
|
+
endTimestamp: z.coerce.number().describe("End timestamp in milliseconds"),
|
|
323
|
+
timeZone: z.string().describe("IANA timezone (e.g. Europe/Paris)")
|
|
324
|
+
}).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({
|
|
325
|
+
metadata: z.object({
|
|
326
|
+
startTimestamp: z.number(),
|
|
327
|
+
endTimestamp: z.number(),
|
|
328
|
+
timeZone: z.string(),
|
|
329
|
+
startDate: z.coerce.date(),
|
|
330
|
+
interval: z.string()
|
|
331
|
+
}),
|
|
332
|
+
timeSeries: analyticsTimeSeriesSchema
|
|
333
|
+
}));
|
|
334
|
+
const listTeamsContractV1 = oc.route({
|
|
335
|
+
path: "/v1/teams",
|
|
336
|
+
method: "GET",
|
|
337
|
+
summary: "List teams",
|
|
338
|
+
description: "List all teams for the authenticated user",
|
|
339
|
+
tags: ["teams"],
|
|
340
|
+
successDescription: "The list of teams"
|
|
341
|
+
}).output(z.array(z.object({
|
|
342
|
+
id: z.string(),
|
|
343
|
+
name: z.string(),
|
|
344
|
+
createdAt: z.coerce.date(),
|
|
345
|
+
hasStripeAccount: z.boolean(),
|
|
346
|
+
hasActiveSubscription: z.boolean()
|
|
347
|
+
})));
|
|
246
348
|
const contract = {
|
|
349
|
+
teams: { list: { v1: listTeamsContractV1 } },
|
|
350
|
+
analytics: { get: { v1: getProjectAnalyticsContractV1 } },
|
|
247
351
|
deployments: {
|
|
352
|
+
list: { v1: listProjectDeploymentsContractV1 },
|
|
248
353
|
get: { v1: getDeploymentContractV1 },
|
|
249
|
-
uploadArtifact: { v1: uploadDeploymentArtifactContractV1 }
|
|
354
|
+
uploadArtifact: { v1: uploadDeploymentArtifactContractV1 },
|
|
355
|
+
getLogs: { v1: getDeploymentLogsContractV1 }
|
|
250
356
|
},
|
|
251
357
|
environments: {
|
|
252
358
|
create: { v1: createEnvironmentContractV1 },
|
|
@@ -254,9 +360,11 @@ const contract = {
|
|
|
254
360
|
deploy: { v1: deployEnvironmentContractV1 }
|
|
255
361
|
},
|
|
256
362
|
projects: {
|
|
363
|
+
update: { v1: updateProjectContractV1 },
|
|
257
364
|
get: { v1: getProjectContractV1 },
|
|
258
365
|
list: { v1: listProjectsContractV1 },
|
|
259
|
-
create: { v1: createProjectContractV1 }
|
|
366
|
+
create: { v1: createProjectContractV1 },
|
|
367
|
+
delete: { v1: deleteProjectContractV1 }
|
|
260
368
|
}
|
|
261
369
|
};
|
|
262
370
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alpic-ai/api",
|
|
3
|
-
"version": "0.0.0-dev.
|
|
3
|
+
"version": "0.0.0-dev.fdd8a62",
|
|
4
4
|
"description": "Contract for the Alpic API",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.mjs",
|
|
@@ -17,12 +17,11 @@
|
|
|
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
26
|
"tsdown": "^0.20.3",
|
|
28
27
|
"typescript": "^5.9.3",
|