@alpic-ai/api 0.0.0-staging.05f123d → 0.0.0-staging.076ee72
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 +183 -1
- package/dist/index.mjs +117 -10
- package/package.json +2 -3
package/dist/index.d.mts
CHANGED
|
@@ -6,6 +6,7 @@ import { z } from "zod";
|
|
|
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,6 +135,7 @@ 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>>;
|
|
@@ -61,6 +149,19 @@ declare const contract: {
|
|
|
61
149
|
expiresAt: z.ZodCoercedDate<unknown>;
|
|
62
150
|
}, z.core.$strip>, Record<never, never>, Record<never, never>>;
|
|
63
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
|
+
};
|
|
64
165
|
};
|
|
65
166
|
environments: {
|
|
66
167
|
create: {
|
|
@@ -119,6 +220,7 @@ declare const contract: {
|
|
|
119
220
|
authorAvatarUrl: z.ZodNullable<z.ZodString>;
|
|
120
221
|
startedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
|
|
121
222
|
completedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
|
|
223
|
+
deploymentPageUrl: z.ZodNullable<z.ZodURL>;
|
|
122
224
|
}, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
123
225
|
NOT_FOUND: {};
|
|
124
226
|
BAD_REQUEST: {};
|
|
@@ -126,6 +228,75 @@ declare const contract: {
|
|
|
126
228
|
};
|
|
127
229
|
};
|
|
128
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
|
+
};
|
|
129
300
|
get: {
|
|
130
301
|
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
131
302
|
projectId: z.ZodString;
|
|
@@ -193,7 +364,9 @@ declare const contract: {
|
|
|
193
364
|
}>, Record<never, never>>;
|
|
194
365
|
};
|
|
195
366
|
list: {
|
|
196
|
-
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<{
|
|
197
370
|
id: z.ZodString;
|
|
198
371
|
name: z.ZodString;
|
|
199
372
|
teamId: z.ZodString;
|
|
@@ -318,6 +491,15 @@ declare const contract: {
|
|
|
318
491
|
BAD_REQUEST: {};
|
|
319
492
|
}>, Record<never, never>>;
|
|
320
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
|
+
};
|
|
321
503
|
};
|
|
322
504
|
};
|
|
323
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",
|
|
@@ -180,7 +181,7 @@ const createProjectContractV1 = oc.route({
|
|
|
180
181
|
BAD_REQUEST: {}
|
|
181
182
|
}).input(z.object({
|
|
182
183
|
teamId: z.string().optional(),
|
|
183
|
-
name: z.string().min(1).max(100),
|
|
184
|
+
name: z.string().trim().min(1).max(100),
|
|
184
185
|
sourceRepository: z.string().optional(),
|
|
185
186
|
branchName: z.string().min(1).optional(),
|
|
186
187
|
runtime: runtimeSchema,
|
|
@@ -210,8 +211,31 @@ const createProjectContractV1 = oc.route({
|
|
|
210
211
|
startCommand: z.string().nullable(),
|
|
211
212
|
createdAt: z.coerce.date()
|
|
212
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);
|
|
213
237
|
const deployEnvironmentContractV1 = oc.route({
|
|
214
|
-
path: "/v1/environments
|
|
238
|
+
path: "/v1/environments/{environmentId}/deploy",
|
|
215
239
|
method: "POST",
|
|
216
240
|
summary: "Deploy an environment",
|
|
217
241
|
description: "Deploy an environment",
|
|
@@ -223,7 +247,7 @@ const deployEnvironmentContractV1 = oc.route({
|
|
|
223
247
|
}).input(z.object({
|
|
224
248
|
environmentId: z.string().describe("The ID of the environment to deploy"),
|
|
225
249
|
token: z.string().describe("The token to identify the source archive").optional()
|
|
226
|
-
})).output(
|
|
250
|
+
})).output(deploymentWithPageUrlSchema);
|
|
227
251
|
const uploadDeploymentArtifactContractV1 = oc.route({
|
|
228
252
|
path: "/v1/deployments/upload",
|
|
229
253
|
method: "POST",
|
|
@@ -236,18 +260,99 @@ const uploadDeploymentArtifactContractV1 = oc.route({
|
|
|
236
260
|
token: z.string().describe("Token to identify the source archive"),
|
|
237
261
|
expiresAt: z.coerce.date().describe("Expiration date of the presigned URL")
|
|
238
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
|
+
})));
|
|
239
274
|
const getDeploymentContractV1 = oc.route({
|
|
240
|
-
path: "/v1/deployments
|
|
275
|
+
path: "/v1/deployments/{deploymentId}",
|
|
241
276
|
method: "GET",
|
|
242
277
|
summary: "Get a deployment",
|
|
243
278
|
description: "Get a deployment by ID",
|
|
244
279
|
tags: ["deployments"],
|
|
245
280
|
successDescription: "The deployment details"
|
|
246
|
-
}).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
|
+
})));
|
|
247
348
|
const contract = {
|
|
349
|
+
teams: { list: { v1: listTeamsContractV1 } },
|
|
350
|
+
analytics: { get: { v1: getProjectAnalyticsContractV1 } },
|
|
248
351
|
deployments: {
|
|
352
|
+
list: { v1: listProjectDeploymentsContractV1 },
|
|
249
353
|
get: { v1: getDeploymentContractV1 },
|
|
250
|
-
uploadArtifact: { v1: uploadDeploymentArtifactContractV1 }
|
|
354
|
+
uploadArtifact: { v1: uploadDeploymentArtifactContractV1 },
|
|
355
|
+
getLogs: { v1: getDeploymentLogsContractV1 }
|
|
251
356
|
},
|
|
252
357
|
environments: {
|
|
253
358
|
create: { v1: createEnvironmentContractV1 },
|
|
@@ -255,9 +360,11 @@ const contract = {
|
|
|
255
360
|
deploy: { v1: deployEnvironmentContractV1 }
|
|
256
361
|
},
|
|
257
362
|
projects: {
|
|
363
|
+
update: { v1: updateProjectContractV1 },
|
|
258
364
|
get: { v1: getProjectContractV1 },
|
|
259
365
|
list: { v1: listProjectsContractV1 },
|
|
260
|
-
create: { v1: createProjectContractV1 }
|
|
366
|
+
create: { v1: createProjectContractV1 },
|
|
367
|
+
delete: { v1: deleteProjectContractV1 }
|
|
261
368
|
}
|
|
262
369
|
};
|
|
263
370
|
|
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.076ee72",
|
|
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",
|