@alpic-ai/api 0.0.0-dev.fdab6ef → 0.0.0-dev.fe594dc
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 +184 -2
- package/dist/index.mjs +117 -9
- package/package.json +2 -2
package/dist/index.d.mts
CHANGED
|
@@ -5,7 +5,7 @@ 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
9
|
};
|
|
10
10
|
};
|
|
11
11
|
declare const createEnvironmentContractV1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
@@ -29,7 +29,93 @@ declare const createEnvironmentContractV1: _orpc_contract0.ContractProcedureBuil
|
|
|
29
29
|
BAD_REQUEST: {};
|
|
30
30
|
}>, Record<never, never>>;
|
|
31
31
|
declare const contract: {
|
|
32
|
+
teams: {
|
|
33
|
+
list: {
|
|
34
|
+
v1: _orpc_contract0.ContractProcedureBuilderWithOutput<_orpc_contract0.Schema<unknown, unknown>, z.ZodArray<z.ZodObject<{
|
|
35
|
+
id: z.ZodString;
|
|
36
|
+
name: z.ZodString;
|
|
37
|
+
createdAt: z.ZodCoercedDate<unknown>;
|
|
38
|
+
hasStripeAccount: z.ZodBoolean;
|
|
39
|
+
hasActiveSubscription: z.ZodBoolean;
|
|
40
|
+
}, z.core.$strip>>, Record<never, never>, Record<never, never>>;
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
analytics: {
|
|
44
|
+
get: {
|
|
45
|
+
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
46
|
+
projectId: z.ZodString;
|
|
47
|
+
startTimestamp: z.ZodCoercedNumber<unknown>;
|
|
48
|
+
endTimestamp: z.ZodCoercedNumber<unknown>;
|
|
49
|
+
timeZone: z.ZodString;
|
|
50
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
51
|
+
metadata: z.ZodObject<{
|
|
52
|
+
startTimestamp: z.ZodNumber;
|
|
53
|
+
endTimestamp: z.ZodNumber;
|
|
54
|
+
timeZone: z.ZodString;
|
|
55
|
+
startDate: z.ZodCoercedDate<unknown>;
|
|
56
|
+
interval: z.ZodString;
|
|
57
|
+
}, z.core.$strip>;
|
|
58
|
+
timeSeries: z.ZodObject<{
|
|
59
|
+
sessions_count: z.ZodArray<z.ZodObject<{
|
|
60
|
+
timestamp: z.ZodNumber;
|
|
61
|
+
categories: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
62
|
+
}, z.core.$strip>>;
|
|
63
|
+
requests_count: z.ZodArray<z.ZodObject<{
|
|
64
|
+
timestamp: z.ZodNumber;
|
|
65
|
+
categories: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
66
|
+
}, z.core.$strip>>;
|
|
67
|
+
requests_latency_mean: z.ZodArray<z.ZodObject<{
|
|
68
|
+
timestamp: z.ZodNumber;
|
|
69
|
+
categories: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
70
|
+
}, z.core.$strip>>;
|
|
71
|
+
tool_errors: z.ZodArray<z.ZodObject<{
|
|
72
|
+
timestamp: z.ZodNumber;
|
|
73
|
+
categories: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
74
|
+
}, z.core.$strip>>;
|
|
75
|
+
mcp_errors: z.ZodArray<z.ZodObject<{
|
|
76
|
+
timestamp: z.ZodNumber;
|
|
77
|
+
categories: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
78
|
+
}, z.core.$strip>>;
|
|
79
|
+
output_token_mean: z.ZodArray<z.ZodObject<{
|
|
80
|
+
timestamp: z.ZodNumber;
|
|
81
|
+
categories: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
82
|
+
}, z.core.$strip>>;
|
|
83
|
+
task_count: z.ZodArray<z.ZodObject<{
|
|
84
|
+
timestamp: z.ZodNumber;
|
|
85
|
+
categories: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
86
|
+
}, z.core.$strip>>;
|
|
87
|
+
}, z.core.$strip>;
|
|
88
|
+
}, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
89
|
+
NOT_FOUND: {};
|
|
90
|
+
BAD_REQUEST: {};
|
|
91
|
+
}>, Record<never, never>>;
|
|
92
|
+
};
|
|
93
|
+
};
|
|
32
94
|
deployments: {
|
|
95
|
+
list: {
|
|
96
|
+
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
97
|
+
projectId: z.ZodString;
|
|
98
|
+
}, z.core.$strip>, z.ZodArray<z.ZodObject<{
|
|
99
|
+
id: z.ZodString;
|
|
100
|
+
status: z.ZodEnum<{
|
|
101
|
+
ongoing: "ongoing";
|
|
102
|
+
deployed: "deployed";
|
|
103
|
+
failed: "failed";
|
|
104
|
+
canceled: "canceled";
|
|
105
|
+
}>;
|
|
106
|
+
sourceRef: z.ZodNullable<z.ZodString>;
|
|
107
|
+
sourceCommitId: z.ZodNullable<z.ZodString>;
|
|
108
|
+
sourceCommitMessage: z.ZodNullable<z.ZodString>;
|
|
109
|
+
authorUsername: z.ZodNullable<z.ZodString>;
|
|
110
|
+
authorAvatarUrl: z.ZodNullable<z.ZodString>;
|
|
111
|
+
startedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
|
|
112
|
+
completedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
|
|
113
|
+
isCurrent: z.ZodBoolean;
|
|
114
|
+
environmentId: z.ZodString;
|
|
115
|
+
}, z.core.$strip>>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
116
|
+
NOT_FOUND: {};
|
|
117
|
+
}>, Record<never, never>>;
|
|
118
|
+
};
|
|
33
119
|
get: {
|
|
34
120
|
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
35
121
|
deploymentId: z.ZodString;
|
|
@@ -48,17 +134,33 @@ declare const contract: {
|
|
|
48
134
|
authorAvatarUrl: z.ZodNullable<z.ZodString>;
|
|
49
135
|
startedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
|
|
50
136
|
completedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
|
|
137
|
+
deploymentPageUrl: z.ZodNullable<z.ZodURL>;
|
|
51
138
|
}, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
52
139
|
NOT_FOUND: {};
|
|
53
140
|
}>, Record<never, never>>;
|
|
54
141
|
};
|
|
55
142
|
uploadArtifact: {
|
|
56
|
-
v1: _orpc_contract0.
|
|
143
|
+
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodOptional<z.ZodObject<{
|
|
144
|
+
teamId: z.ZodOptional<z.ZodString>;
|
|
145
|
+
}, z.core.$strip>>, z.ZodObject<{
|
|
57
146
|
uploadUrl: z.ZodString;
|
|
58
147
|
token: z.ZodString;
|
|
59
148
|
expiresAt: z.ZodCoercedDate<unknown>;
|
|
60
149
|
}, z.core.$strip>, Record<never, never>, Record<never, never>>;
|
|
61
150
|
};
|
|
151
|
+
getLogs: {
|
|
152
|
+
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
153
|
+
deploymentId: z.ZodString;
|
|
154
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
155
|
+
logs: z.ZodArray<z.ZodObject<{
|
|
156
|
+
timestamp: z.ZodOptional<z.ZodCoercedDate<unknown>>;
|
|
157
|
+
content: z.ZodOptional<z.ZodString>;
|
|
158
|
+
}, z.core.$strip>>;
|
|
159
|
+
hasMoreLogs: z.ZodBoolean;
|
|
160
|
+
}, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
161
|
+
NOT_FOUND: {};
|
|
162
|
+
}>, Record<never, never>>;
|
|
163
|
+
};
|
|
62
164
|
};
|
|
63
165
|
environments: {
|
|
64
166
|
create: {
|
|
@@ -117,6 +219,7 @@ declare const contract: {
|
|
|
117
219
|
authorAvatarUrl: z.ZodNullable<z.ZodString>;
|
|
118
220
|
startedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
|
|
119
221
|
completedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
|
|
222
|
+
deploymentPageUrl: z.ZodNullable<z.ZodURL>;
|
|
120
223
|
}, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
121
224
|
NOT_FOUND: {};
|
|
122
225
|
BAD_REQUEST: {};
|
|
@@ -124,6 +227,75 @@ declare const contract: {
|
|
|
124
227
|
};
|
|
125
228
|
};
|
|
126
229
|
projects: {
|
|
230
|
+
update: {
|
|
231
|
+
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
232
|
+
projectId: z.ZodString;
|
|
233
|
+
name: z.ZodOptional<z.ZodString>;
|
|
234
|
+
sourceRepository: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
235
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
236
|
+
id: z.ZodString;
|
|
237
|
+
name: z.ZodString;
|
|
238
|
+
teamId: z.ZodString;
|
|
239
|
+
sourceRepository: z.ZodNullable<z.ZodString>;
|
|
240
|
+
runtime: z.ZodEnum<{
|
|
241
|
+
"python3.13": "python3.13";
|
|
242
|
+
"python3.14": "python3.14";
|
|
243
|
+
node22: "node22";
|
|
244
|
+
node24: "node24";
|
|
245
|
+
}>;
|
|
246
|
+
transport: z.ZodNullable<z.ZodEnum<{
|
|
247
|
+
stdio: "stdio";
|
|
248
|
+
sse: "sse";
|
|
249
|
+
streamablehttp: "streamablehttp";
|
|
250
|
+
}>>;
|
|
251
|
+
rootDirectory: z.ZodNullable<z.ZodString>;
|
|
252
|
+
buildCommand: z.ZodNullable<z.ZodString>;
|
|
253
|
+
buildOutputDir: z.ZodNullable<z.ZodString>;
|
|
254
|
+
installCommand: z.ZodNullable<z.ZodString>;
|
|
255
|
+
startCommand: z.ZodNullable<z.ZodString>;
|
|
256
|
+
createdAt: z.ZodCoercedDate<unknown>;
|
|
257
|
+
productionEnvironment: z.ZodNullable<z.ZodObject<{
|
|
258
|
+
id: z.ZodString;
|
|
259
|
+
name: z.ZodString;
|
|
260
|
+
mcpServerUrl: z.ZodString;
|
|
261
|
+
latestDeployment: z.ZodNullable<z.ZodObject<{
|
|
262
|
+
id: z.ZodString;
|
|
263
|
+
status: z.ZodEnum<{
|
|
264
|
+
ongoing: "ongoing";
|
|
265
|
+
deployed: "deployed";
|
|
266
|
+
failed: "failed";
|
|
267
|
+
canceled: "canceled";
|
|
268
|
+
}>;
|
|
269
|
+
sourceCommitId: z.ZodNullable<z.ZodString>;
|
|
270
|
+
sourceCommitMessage: z.ZodNullable<z.ZodString>;
|
|
271
|
+
completedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
|
|
272
|
+
}, z.core.$strip>>;
|
|
273
|
+
}, z.core.$strip>>;
|
|
274
|
+
environments: z.ZodArray<z.ZodObject<{
|
|
275
|
+
id: z.ZodString;
|
|
276
|
+
name: z.ZodString;
|
|
277
|
+
sourceBranch: z.ZodNullable<z.ZodString>;
|
|
278
|
+
mcpServerUrl: z.ZodString;
|
|
279
|
+
createdAt: z.ZodCoercedDate<unknown>;
|
|
280
|
+
projectId: z.ZodString;
|
|
281
|
+
latestDeployment: z.ZodNullable<z.ZodObject<{
|
|
282
|
+
id: z.ZodString;
|
|
283
|
+
status: z.ZodEnum<{
|
|
284
|
+
ongoing: "ongoing";
|
|
285
|
+
deployed: "deployed";
|
|
286
|
+
failed: "failed";
|
|
287
|
+
canceled: "canceled";
|
|
288
|
+
}>;
|
|
289
|
+
sourceCommitId: z.ZodNullable<z.ZodString>;
|
|
290
|
+
sourceCommitMessage: z.ZodNullable<z.ZodString>;
|
|
291
|
+
completedAt: z.ZodNullable<z.ZodCoercedDate<unknown>>;
|
|
292
|
+
}, z.core.$strip>>;
|
|
293
|
+
}, z.core.$strip>>;
|
|
294
|
+
}, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
295
|
+
NOT_FOUND: {};
|
|
296
|
+
BAD_REQUEST: {};
|
|
297
|
+
}>, Record<never, never>>;
|
|
298
|
+
};
|
|
127
299
|
get: {
|
|
128
300
|
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
129
301
|
projectId: z.ZodString;
|
|
@@ -254,6 +426,7 @@ declare const contract: {
|
|
|
254
426
|
};
|
|
255
427
|
create: {
|
|
256
428
|
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
429
|
+
teamId: z.ZodOptional<z.ZodString>;
|
|
257
430
|
name: z.ZodString;
|
|
258
431
|
sourceRepository: z.ZodOptional<z.ZodString>;
|
|
259
432
|
branchName: z.ZodOptional<z.ZodString>;
|
|
@@ -315,6 +488,15 @@ declare const contract: {
|
|
|
315
488
|
BAD_REQUEST: {};
|
|
316
489
|
}>, Record<never, never>>;
|
|
317
490
|
};
|
|
491
|
+
delete: {
|
|
492
|
+
v1: _orpc_contract0.ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
493
|
+
projectId: z.ZodString;
|
|
494
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
495
|
+
success: z.ZodLiteral<true>;
|
|
496
|
+
}, z.core.$strip>, _orpc_contract0.MergedErrorMap<Record<never, never>, {
|
|
497
|
+
NOT_FOUND: {};
|
|
498
|
+
}>, Record<never, never>>;
|
|
499
|
+
};
|
|
318
500
|
};
|
|
319
501
|
};
|
|
320
502
|
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",
|
|
@@ -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.fe594dc",
|
|
4
4
|
"description": "Contract for the Alpic API",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.mjs",
|
|
@@ -17,7 +17,7 @@
|
|
|
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": {
|