@alpic-ai/api 0.0.0-staging.g8741979 → 0.0.0-staging.g877ac94

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.
Files changed (2) hide show
  1. package/dist/index.mjs +98 -8
  2. package/package.json +1 -1
package/dist/index.mjs CHANGED
@@ -179,6 +179,7 @@ const PLATFORM_LABELS = {
179
179
  };
180
180
  const WAF_PLATFORMS = [
181
181
  "akamai",
182
+ "cato",
182
183
  "cloudflare",
183
184
  "fastly"
184
185
  ];
@@ -256,6 +257,25 @@ z.object({
256
257
  clientSecret: z.string(),
257
258
  clientScopes: z.array(z.string())
258
259
  });
260
+ const creditEntryReasonSchema = z.enum([
261
+ "free_seed",
262
+ "paid_conversion_floor",
263
+ "top_up",
264
+ "usage",
265
+ "admin_adjustment"
266
+ ]);
267
+ z.enum(["playground"]);
268
+ z.number().int().min(500);
269
+ const creditActivityEntrySchema = z.object({
270
+ reason: creditEntryReasonSchema,
271
+ day: z.number(),
272
+ amountInNanoUSD: z.number(),
273
+ messageCount: z.number().nullable()
274
+ });
275
+ z.object({
276
+ balanceInNanoUSD: z.number(),
277
+ recentActivity: z.array(creditActivityEntrySchema)
278
+ });
259
279
  const deploymentStatusSchema$1 = z.enum([
260
280
  "ongoing",
261
281
  "deployed",
@@ -503,6 +523,16 @@ z.object({
503
523
  createdAt: z.coerce.date(),
504
524
  updatedAt: z.coerce.date()
505
525
  });
526
+ const alpicMcpRequestLogSchema = z.object({
527
+ type: z.literal("mcp_request"),
528
+ method: z.string()
529
+ });
530
+ const alpicMcpErrorLogSchema = z.object({
531
+ type: z.literal("mcp_error"),
532
+ method: z.string(),
533
+ error: z.string()
534
+ });
535
+ z.union([alpicMcpRequestLogSchema, alpicMcpErrorLogSchema]);
506
536
  z.enum([
507
537
  "INFO",
508
538
  "WARNING",
@@ -1414,18 +1444,70 @@ const customerCreditsSchema = z.object({
1414
1444
  expiresAt: z.number().nullable(),
1415
1445
  currency: z.string()
1416
1446
  });
1417
- const customerUsageSchema = z.object({
1418
- amountInCents: z.number(),
1419
- currency: z.string(),
1420
- periodEnd: z.number()
1421
- });
1422
1447
  const partnerDiscountSchema = z.object({ endsAt: z.number() });
1423
- z.object({ balanceInNanoUSD: z.number() });
1424
1448
  z.object({
1425
1449
  customerCredits: customerCreditsSchema.nullable(),
1426
- customerUsage: customerUsageSchema.nullable(),
1427
1450
  partnerDiscount: partnerDiscountSchema.nullable()
1428
1451
  });
1452
+ const metricsQueueEventSchema = z.object({
1453
+ ts: z.number().int(),
1454
+ method: z.string(),
1455
+ tool: z.string().nullable(),
1456
+ client: z.string(),
1457
+ sessionId: z.string().nullable(),
1458
+ durationMs: z.number().int(),
1459
+ outputTokens: z.number().int().nullable(),
1460
+ errorType: z.enum([
1461
+ "mcp_error",
1462
+ "tool_error",
1463
+ "timeout"
1464
+ ]).nullable(),
1465
+ errorCode: z.number().int().nullable()
1466
+ });
1467
+ z.object({
1468
+ v: z.literal(1),
1469
+ envId: z.string(),
1470
+ events: z.array(metricsQueueEventSchema)
1471
+ });
1472
+ z.object({ v: z.number() });
1473
+ const telemetrySignalSchema = z.enum([
1474
+ "logs",
1475
+ "metrics",
1476
+ "traces"
1477
+ ]);
1478
+ const otlpProtocolSchema = z.enum(["http/protobuf", "http/json"]);
1479
+ const otlpEndpointSchema = z.string().trim().min(1).max(2048);
1480
+ const OTLP_HEADER_VALUE_MAX_LENGTH = 2048;
1481
+ const otlpHeaderNameSchema = z.string().trim().min(1, "Enter a header name").max(128).regex(/^[A-Za-z0-9!#$%&'*+\-.^_`|~]+$/, "Use letters, digits and !#$%&'*+-.^_`|~ only");
1482
+ const otlpHeaderValueSchema = z.string().trim().max(OTLP_HEADER_VALUE_MAX_LENGTH).refine((value) => !/[\r\n]/.test(value), "Line breaks are not allowed in a header value");
1483
+ const telemetryDestinationHeaderSchema = z.object({
1484
+ id: z.string(),
1485
+ name: otlpHeaderNameSchema,
1486
+ value: otlpHeaderValueSchema,
1487
+ isSecret: z.boolean()
1488
+ });
1489
+ const otlpPushFailureReasonSchema = z.enum([
1490
+ "credentials",
1491
+ "wrong-path",
1492
+ "wrong-protocol",
1493
+ "invalid-payload",
1494
+ "partial-rejection",
1495
+ "blocked-target",
1496
+ "timeout",
1497
+ "unreachable",
1498
+ "receiver-error",
1499
+ "unexpected-status"
1500
+ ]);
1501
+ const telemetryDestinationStatusSchema = z.enum(["active", "suspended"]);
1502
+ z.object({
1503
+ id: z.string(),
1504
+ signal: telemetrySignalSchema,
1505
+ endpoint: otlpEndpointSchema,
1506
+ protocol: otlpProtocolSchema,
1507
+ headers: z.array(telemetryDestinationHeaderSchema),
1508
+ status: telemetryDestinationStatusSchema,
1509
+ lastFailureReason: otlpPushFailureReasonSchema.nullable()
1510
+ });
1429
1511
  //#endregion
1430
1512
  //#region src/auth-scope.ts
1431
1513
  /** Accepts an API key or OAuth access token (default for most routes). */
@@ -1524,6 +1606,14 @@ const serverFieldsSchema = z.object({
1524
1606
  });
1525
1607
  //#endregion
1526
1608
  //#region src/api.contract.ts
1609
+ const isValidIanaTimeZone = (timeZone) => {
1610
+ try {
1611
+ new Intl.DateTimeFormat("en-US", { timeZone });
1612
+ return true;
1613
+ } catch {
1614
+ return false;
1615
+ }
1616
+ };
1527
1617
  const deploymentStatusSchema = z.enum([
1528
1618
  "ongoing",
1529
1619
  "deployed",
@@ -1906,7 +1996,7 @@ const getProjectAnalyticsContractV1 = base.route({
1906
1996
  startTimestamp: z.coerce.number().describe("Start timestamp in milliseconds"),
1907
1997
  endTimestamp: z.coerce.number().describe("End timestamp in milliseconds"),
1908
1998
  timeZone: z.string().describe("IANA timezone (e.g. Europe/Paris)")
1909
- }).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({
1999
+ }).refine(({ startTimestamp, endTimestamp }) => endTimestamp - startTimestamp > 0, { message: "End date must be after start date" }).refine(({ startTimestamp, endTimestamp }) => endTimestamp - startTimestamp <= 26784e5, { message: "Date range must be less than 1 month" }).refine(({ timeZone }) => isValidIanaTimeZone(timeZone), { message: "Time zone must be a valid IANA timezone" })).output(z.object({
1910
2000
  metadata: z.object({
1911
2001
  startTimestamp: z.number(),
1912
2002
  endTimestamp: z.number(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alpic-ai/api",
3
- "version": "0.0.0-staging.g8741979",
3
+ "version": "0.0.0-staging.g877ac94",
4
4
  "description": "Contract for the Alpic API",
5
5
  "type": "module",
6
6
  "main": "./dist/index.mjs",