@alpic-ai/api 0.0.0-dev.gee433d6 → 0.0.0-dev.gee57ae6
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 +12 -1
- package/dist/index.mjs +81 -44
- package/package.json +7 -7
package/dist/index.d.mts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { InferContractRouterInputs, InferContractRouterOutputs } from "@orpc/contract";
|
|
3
|
-
|
|
4
3
|
//#region src/api.contract.d.ts
|
|
5
4
|
type ApiContext = {
|
|
6
5
|
request: Request & {
|
|
@@ -225,6 +224,17 @@ declare const contract: {
|
|
|
225
224
|
v1: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
226
225
|
environmentId: z.ZodString;
|
|
227
226
|
token: z.ZodOptional<z.ZodString>;
|
|
227
|
+
settings: z.ZodOptional<z.ZodObject<{
|
|
228
|
+
installCommand: z.ZodOptional<z.ZodString>;
|
|
229
|
+
buildCommand: z.ZodOptional<z.ZodString>;
|
|
230
|
+
buildOutputDir: z.ZodOptional<z.ZodString>;
|
|
231
|
+
startCommand: z.ZodOptional<z.ZodString>;
|
|
232
|
+
transport: z.ZodEnum<{
|
|
233
|
+
stdio: "stdio";
|
|
234
|
+
sse: "sse";
|
|
235
|
+
streamablehttp: "streamablehttp";
|
|
236
|
+
}>;
|
|
237
|
+
}, z.core.$strip>>;
|
|
228
238
|
}, z.core.$strip>, z.ZodObject<{
|
|
229
239
|
id: z.ZodString;
|
|
230
240
|
status: z.ZodEnum<{
|
|
@@ -247,6 +257,7 @@ declare const contract: {
|
|
|
247
257
|
}, z.core.$strip>, import("@orpc/contract").MergedErrorMap<Record<never, never>, {
|
|
248
258
|
NOT_FOUND: {};
|
|
249
259
|
BAD_REQUEST: {};
|
|
260
|
+
CONFLICT: {};
|
|
250
261
|
}>, Record<never, never>>;
|
|
251
262
|
};
|
|
252
263
|
getLogs: {
|
package/dist/index.mjs
CHANGED
|
@@ -2,7 +2,7 @@ import { z } from "zod";
|
|
|
2
2
|
import * as z$1 from "zod/v4";
|
|
3
3
|
import { oc } from "@orpc/contract";
|
|
4
4
|
import ms from "ms";
|
|
5
|
-
//#region ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.29.0_zod@4.4.3/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/auth.js
|
|
5
|
+
//#region ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.29.0_supports-color@7.2.0_zod@4.4.3/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/auth.js
|
|
6
6
|
/**
|
|
7
7
|
* Reusable URL validation that disallows javascript: scheme
|
|
8
8
|
*/
|
|
@@ -169,11 +169,21 @@ z$1.object({
|
|
|
169
169
|
token: z$1.string(),
|
|
170
170
|
token_type_hint: z$1.string().optional()
|
|
171
171
|
}).strip();
|
|
172
|
-
|
|
172
|
+
//#endregion
|
|
173
|
+
//#region ../domains/dist/index.mjs
|
|
174
|
+
const AI_PLATFORMS = ["chatgpt", "claudeai"];
|
|
175
|
+
const platformSchema = z.enum(AI_PLATFORMS);
|
|
173
176
|
const PLATFORM_LABELS = {
|
|
174
177
|
chatgpt: "ChatGPT",
|
|
175
178
|
claudeai: "Claude.ai"
|
|
176
179
|
};
|
|
180
|
+
const WAF_PLATFORMS = [
|
|
181
|
+
"akamai",
|
|
182
|
+
"cloudflare",
|
|
183
|
+
"fastly"
|
|
184
|
+
];
|
|
185
|
+
const ALLOWED_PLATFORMS = [...AI_PLATFORMS, ...WAF_PLATFORMS];
|
|
186
|
+
const allowedPlatformSchema = z.enum(ALLOWED_PLATFORMS);
|
|
177
187
|
const auditStatusSchema = z.enum([
|
|
178
188
|
"pending",
|
|
179
189
|
"partial",
|
|
@@ -276,11 +286,11 @@ const deploymentSummarySchema = z.object({
|
|
|
276
286
|
/**
|
|
277
287
|
* Public environment
|
|
278
288
|
*
|
|
279
|
-
*
|
|
289
|
+
* Answers anonymously and exposes no OAuth metadata.
|
|
280
290
|
*/
|
|
281
291
|
const publicEnvironmentSchema = z.object({
|
|
282
|
-
|
|
283
|
-
oAuthMetadata: z.
|
|
292
|
+
allowsAnonymous: z.literal(true),
|
|
293
|
+
oAuthMetadata: z.strictObject({})
|
|
284
294
|
});
|
|
285
295
|
/**
|
|
286
296
|
* Protected environment with an external resource metadata URL
|
|
@@ -289,7 +299,7 @@ const publicEnvironmentSchema = z.object({
|
|
|
289
299
|
* Everything that follows is handled outside of the MCP server scope.
|
|
290
300
|
*/
|
|
291
301
|
const externalResourceMetadataEnvironmentSchema = z.object({
|
|
292
|
-
|
|
302
|
+
allowsAnonymous: z.boolean(),
|
|
293
303
|
oAuthMetadata: z.object({ externalResourceMetadataUrl: z.url() }),
|
|
294
304
|
scope: z.string().optional()
|
|
295
305
|
});
|
|
@@ -301,7 +311,7 @@ const externalResourceMetadataEnvironmentSchema = z.object({
|
|
|
301
311
|
* Everything that follows is handled outside of the MCP server scope.
|
|
302
312
|
*/
|
|
303
313
|
const externalAuthorizationServerEnvironmentSchema = z.object({
|
|
304
|
-
|
|
314
|
+
allowsAnonymous: z.boolean(),
|
|
305
315
|
oAuthMetadata: z.object({
|
|
306
316
|
externalAuthorizationServerUrl: z.url(),
|
|
307
317
|
resourceMetadata: OAuthProtectedResourceMetadataSchema.optional()
|
|
@@ -315,7 +325,7 @@ const externalAuthorizationServerEnvironmentSchema = z.object({
|
|
|
315
325
|
* The server itself exposes the /.well-known/oauth-authorization-server endpoint.
|
|
316
326
|
*/
|
|
317
327
|
const standaloneEnvironmentSchema = z.object({
|
|
318
|
-
|
|
328
|
+
allowsAnonymous: z.boolean(),
|
|
319
329
|
oAuthMetadata: z.object({
|
|
320
330
|
authorizationServerMetadata: z.union([OAuthMetadataSchema, OpenIdProviderDiscoveryMetadataSchema]),
|
|
321
331
|
resourceMetadata: OAuthProtectedResourceMetadataSchema.optional()
|
|
@@ -330,6 +340,36 @@ const standaloneEnvironmentSchema = z.object({
|
|
|
330
340
|
* are advertised. Clients must obtain credentials out-of-band.
|
|
331
341
|
*/
|
|
332
342
|
const protectedWithoutDiscoveryEnvironmentSchema = z.object({
|
|
343
|
+
allowsAnonymous: z.literal(false),
|
|
344
|
+
oAuthMetadata: z.strictObject({}),
|
|
345
|
+
scope: z.string().optional()
|
|
346
|
+
});
|
|
347
|
+
const legacyPublicEnvironmentSchema = z.object({
|
|
348
|
+
isPublic: z.literal(true),
|
|
349
|
+
oAuthMetadata: z.undefined().optional()
|
|
350
|
+
});
|
|
351
|
+
const legacyExternalResourceMetadataEnvironmentSchema = z.object({
|
|
352
|
+
isPublic: z.literal(false),
|
|
353
|
+
oAuthMetadata: z.object({ externalResourceMetadataUrl: z.url() }),
|
|
354
|
+
scope: z.string().optional()
|
|
355
|
+
});
|
|
356
|
+
const legacyExternalAuthorizationServerEnvironmentSchema = z.object({
|
|
357
|
+
isPublic: z.literal(false),
|
|
358
|
+
oAuthMetadata: z.object({
|
|
359
|
+
externalAuthorizationServerUrl: z.url(),
|
|
360
|
+
resourceMetadata: OAuthProtectedResourceMetadataSchema.optional()
|
|
361
|
+
}),
|
|
362
|
+
scope: z.string().optional()
|
|
363
|
+
});
|
|
364
|
+
const legacyStandaloneEnvironmentSchema = z.object({
|
|
365
|
+
isPublic: z.literal(false),
|
|
366
|
+
oAuthMetadata: z.object({
|
|
367
|
+
authorizationServerMetadata: z.union([OAuthMetadataSchema, OpenIdProviderDiscoveryMetadataSchema]),
|
|
368
|
+
resourceMetadata: OAuthProtectedResourceMetadataSchema.optional()
|
|
369
|
+
}),
|
|
370
|
+
scope: z.string().optional()
|
|
371
|
+
});
|
|
372
|
+
const legacyProtectedWithoutDiscoveryEnvironmentSchema = z.object({
|
|
333
373
|
isPublic: z.literal(false),
|
|
334
374
|
oAuthMetadata: z.strictObject({}),
|
|
335
375
|
scope: z.string().optional()
|
|
@@ -339,9 +379,13 @@ z.union([
|
|
|
339
379
|
externalResourceMetadataEnvironmentSchema,
|
|
340
380
|
externalAuthorizationServerEnvironmentSchema,
|
|
341
381
|
standaloneEnvironmentSchema,
|
|
342
|
-
protectedWithoutDiscoveryEnvironmentSchema
|
|
382
|
+
protectedWithoutDiscoveryEnvironmentSchema,
|
|
383
|
+
legacyPublicEnvironmentSchema,
|
|
384
|
+
legacyExternalResourceMetadataEnvironmentSchema,
|
|
385
|
+
legacyExternalAuthorizationServerEnvironmentSchema,
|
|
386
|
+
legacyStandaloneEnvironmentSchema,
|
|
387
|
+
legacyProtectedWithoutDiscoveryEnvironmentSchema
|
|
343
388
|
]);
|
|
344
|
-
const allowedPlatformSchema = platformSchema;
|
|
345
389
|
const playgroundModelSchema = z.enum([
|
|
346
390
|
"global.anthropic.claude-haiku-4-5-20251001-v1:0",
|
|
347
391
|
"global.anthropic.claude-sonnet-4-5-20250929-v1:0",
|
|
@@ -381,7 +425,8 @@ z.object({
|
|
|
381
425
|
collectRequestPayload: z.boolean(),
|
|
382
426
|
collectResponsePayload: z.boolean(),
|
|
383
427
|
collectErrorMessage: z.boolean(),
|
|
384
|
-
collectUserData: z.boolean()
|
|
428
|
+
collectUserData: z.boolean(),
|
|
429
|
+
identityTraitKey: z.string().min(1).max(200).nullable()
|
|
385
430
|
});
|
|
386
431
|
z.object({
|
|
387
432
|
id: z.string(),
|
|
@@ -1225,7 +1270,10 @@ const RESERVED_KEYS = [
|
|
|
1225
1270
|
"BUILD_ARG_START_COMMAND",
|
|
1226
1271
|
"ALPIC_HOST",
|
|
1227
1272
|
"ALPIC_CUSTOM_DOMAINS",
|
|
1228
|
-
"ALPIC_INTENT_META_KEY"
|
|
1273
|
+
"ALPIC_INTENT_META_KEY",
|
|
1274
|
+
"ALPIC_FEEDBACK_META_KEY",
|
|
1275
|
+
"ALPIC_EVENTS_META_KEY",
|
|
1276
|
+
"ALPIC_IDENTIFY_META_KEY"
|
|
1229
1277
|
];
|
|
1230
1278
|
const environmentVariableSchema = z.object({
|
|
1231
1279
|
key: z.string().min(2, "Key must be at least 2 characters").regex(/^[a-zA-Z]([a-zA-Z0-9_])+$/, "Key must start with a letter and contain only letters, numbers, and underscores").refine((key) => !RESERVED_KEYS.includes(key), "This key is reserved and cannot be used as an environment variable key"),
|
|
@@ -1541,10 +1589,12 @@ const deployEnvironmentContractV1 = oc.route({
|
|
|
1541
1589
|
successDescription: "The environment has been deployed successfully"
|
|
1542
1590
|
}).errors({
|
|
1543
1591
|
NOT_FOUND: {},
|
|
1544
|
-
BAD_REQUEST: {}
|
|
1592
|
+
BAD_REQUEST: {},
|
|
1593
|
+
CONFLICT: {}
|
|
1545
1594
|
}).input(z.object({
|
|
1546
1595
|
environmentId: z.string().describe("The ID of the environment to deploy"),
|
|
1547
|
-
token: z.string().describe("The token to identify the source archive").optional()
|
|
1596
|
+
token: z.string().describe("The token to identify the source archive").optional(),
|
|
1597
|
+
settings: buildSettingsSchema.extend({ transport: transportSchema }).optional().describe("Project settings detected by the client from the source. When provided, the server skips downloading and extracting the source archive to detect them.")
|
|
1548
1598
|
})).output(deploymentSchema);
|
|
1549
1599
|
const uploadDeploymentArtifactContractV1 = oc.route({
|
|
1550
1600
|
path: "/v1/deployments/upload",
|
|
@@ -1581,6 +1631,21 @@ const getDeploymentContractV1 = oc.route({
|
|
|
1581
1631
|
tags: ["deployments"],
|
|
1582
1632
|
successDescription: "The deployment details"
|
|
1583
1633
|
}).errors({ NOT_FOUND: {} }).input(z.object({ deploymentId: z.string().describe("The ID of the deployment") })).output(deploymentSchema);
|
|
1634
|
+
const logEntrySchema = z.object({
|
|
1635
|
+
timestamp: z.coerce.date(),
|
|
1636
|
+
type: z.enum([
|
|
1637
|
+
"START",
|
|
1638
|
+
"END",
|
|
1639
|
+
"INFO",
|
|
1640
|
+
"ERROR",
|
|
1641
|
+
"WARNING",
|
|
1642
|
+
"DEBUG"
|
|
1643
|
+
]),
|
|
1644
|
+
requestId: z.string(),
|
|
1645
|
+
content: z.string().optional(),
|
|
1646
|
+
method: z.string().optional(),
|
|
1647
|
+
durationInMs: z.number().optional()
|
|
1648
|
+
});
|
|
1584
1649
|
const getLogsContractV1 = oc.route({
|
|
1585
1650
|
path: "/v1/environments/{environmentId}/logs",
|
|
1586
1651
|
method: "GET",
|
|
@@ -1605,21 +1670,7 @@ const getLogsContractV1 = oc.route({
|
|
|
1605
1670
|
search: z.string().optional().describe("Filter pattern to search for in log content"),
|
|
1606
1671
|
nextToken: z.string().optional().describe("Pagination token from a previous response")
|
|
1607
1672
|
})).output(z.object({
|
|
1608
|
-
logs: z.array(
|
|
1609
|
-
timestamp: z.coerce.date(),
|
|
1610
|
-
type: z.enum([
|
|
1611
|
-
"START",
|
|
1612
|
-
"END",
|
|
1613
|
-
"INFO",
|
|
1614
|
-
"ERROR",
|
|
1615
|
-
"WARNING",
|
|
1616
|
-
"DEBUG"
|
|
1617
|
-
]),
|
|
1618
|
-
requestId: z.string(),
|
|
1619
|
-
content: z.string().optional(),
|
|
1620
|
-
method: z.string().optional(),
|
|
1621
|
-
durationInMs: z.number().optional()
|
|
1622
|
-
})),
|
|
1673
|
+
logs: z.array(logEntrySchema),
|
|
1623
1674
|
nextToken: z.string().nullable()
|
|
1624
1675
|
}));
|
|
1625
1676
|
const getLatestLogsContractV1 = oc.route({
|
|
@@ -1642,21 +1693,7 @@ const getLatestLogsContractV1 = oc.route({
|
|
|
1642
1693
|
"DEBUG"
|
|
1643
1694
|
])).optional().describe("Filter by log level"),
|
|
1644
1695
|
search: z.string().optional().describe("Filter pattern to search for in log content")
|
|
1645
|
-
})).output(z.object({ logs: z.array(
|
|
1646
|
-
timestamp: z.coerce.date(),
|
|
1647
|
-
type: z.enum([
|
|
1648
|
-
"START",
|
|
1649
|
-
"END",
|
|
1650
|
-
"INFO",
|
|
1651
|
-
"ERROR",
|
|
1652
|
-
"WARNING",
|
|
1653
|
-
"DEBUG"
|
|
1654
|
-
]),
|
|
1655
|
-
requestId: z.string(),
|
|
1656
|
-
content: z.string().optional(),
|
|
1657
|
-
method: z.string().optional(),
|
|
1658
|
-
durationInMs: z.number().optional()
|
|
1659
|
-
})) }));
|
|
1696
|
+
})).output(z.object({ logs: z.array(logEntrySchema) }));
|
|
1660
1697
|
const getDeploymentLogsContractV1 = oc.route({
|
|
1661
1698
|
path: "/v1/deployments/{deploymentId}/logs",
|
|
1662
1699
|
method: "GET",
|
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.gee57ae6",
|
|
4
4
|
"description": "Contract for the Alpic API",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.mjs",
|
|
@@ -33,19 +33,19 @@
|
|
|
33
33
|
"author": "Alpic",
|
|
34
34
|
"license": "ISC",
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@orpc/contract": "^1.14.
|
|
36
|
+
"@orpc/contract": "^1.14.10",
|
|
37
37
|
"ms": "^2.1.3",
|
|
38
38
|
"zod": "^4.4.3"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"@orpc/openapi": "^1.14.
|
|
42
|
-
"@orpc/zod": "^1.14.
|
|
41
|
+
"@orpc/openapi": "^1.14.10",
|
|
42
|
+
"@orpc/zod": "^1.14.10",
|
|
43
43
|
"@total-typescript/tsconfig": "^1.0.4",
|
|
44
44
|
"@types/ms": "^2.1.0",
|
|
45
45
|
"shx": "^0.4.0",
|
|
46
|
-
"tsdown": "^0.22.
|
|
46
|
+
"tsdown": "^0.22.14",
|
|
47
47
|
"typescript": "^6.0.3",
|
|
48
|
-
"vitest": "^4.1.
|
|
48
|
+
"vitest": "^4.1.10",
|
|
49
49
|
"@alpic-ai/domains": "0.0.0"
|
|
50
50
|
},
|
|
51
51
|
"scripts": {
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"test": "pnpm run test:unit && pnpm run test:type && pnpm run test:format",
|
|
55
55
|
"test:unit": "vitest run",
|
|
56
56
|
"test:format": "biome check --error-on-warnings .",
|
|
57
|
-
"test:type": "
|
|
57
|
+
"test:type": "tsgo --noEmit",
|
|
58
58
|
"publish:npm": "pnpm publish --tag \"${NPM_TAG}\" --access public --no-git-checks"
|
|
59
59
|
}
|
|
60
60
|
}
|