@zuplo/runtime 6.70.61 → 6.70.63

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.
@@ -176,6 +176,22 @@ export declare class AIGatewayMeteringInboundPolicy extends InboundPolicy<AIGate
176
176
  increments: AIGatewayMeterIncrements
177
177
  ): void;
178
178
  static getIncrements(context: ZuploContext): AIGatewayMeterIncrements;
179
+ /**
180
+ * Record the global quota fallback models for the current request. Set by the
181
+ * metering policy when a quota is exceeded and a fallback is configured; read
182
+ * by the LLM translation handler, which routes to the capability-appropriate
183
+ * model instead of the (over-budget) primary.
184
+ *
185
+ * @param context - The ZuploContext
186
+ * @param quotaFallback - The validated quota fallback models.
187
+ */
188
+ static setQuotaFallback(
189
+ context: ZuploContext,
190
+ quotaFallback: QuotaFallbackModels
191
+ ): void;
192
+ static getQuotaFallback(
193
+ context: ZuploContext
194
+ ): QuotaFallbackModels | undefined;
179
195
  constructor(
180
196
  options: AIGatewayMeteringInboundPolicyOptions,
181
197
  policyName: string
@@ -185,6 +201,23 @@ export declare class AIGatewayMeteringInboundPolicy extends InboundPolicy<AIGate
185
201
  context: ZuploContext
186
202
  ): Promise<Response | ZuploRequest<RequestGeneric_2>>;
187
203
  private fetchCurrentMeters;
204
+ /**
205
+ * The capability a request targets, derived from its path, or `undefined` for
206
+ * paths that do not support quota fallback (e.g. `/v1/responses`, which the LLM
207
+ * handler serves without the fallback chain). Used to decide whether a quota
208
+ * fallback actually applies to *this* request.
209
+ */
210
+ private requestCapability;
211
+ /**
212
+ * Validate and return the configured quota fallback when it applies to *this*
213
+ * request's capability, or `undefined` otherwise (no config, malformed config,
214
+ * an unsupported path, or no model configured for the request's capability).
215
+ * Returning `undefined` blocks the request with a 429 — so a fallback is only
216
+ * counted and applied when the handler can actually serve the request with it.
217
+ * The config is customer-authored and reaches us through an `unknown` cast, so
218
+ * we validate it through Zod before acting on it.
219
+ */
220
+ private resolveQuotaFallback;
188
221
  private checkHierarchicalQuotaLimits;
189
222
  /**
190
223
  * Increment meters via API. Can be used by providers for streaming responses.
@@ -2969,6 +3002,7 @@ declare const EventType: {
2969
3002
  readonly AI_GATEWAY_LATENCY_HISTOGRAM: "ai_gateway_latency_histogram";
2970
3003
  readonly AI_GATEWAY_WARNING_COUNT: "ai_gateway_warning_count";
2971
3004
  readonly AI_GATEWAY_BLOCKED_COUNT: "ai_gateway_blocked_count";
3005
+ readonly AI_GATEWAY_FALLBACK_COUNT: "ai_gateway_fallback_count";
2972
3006
  readonly MCP_REQUEST_RECEIVED: "mcp_request_received";
2973
3007
  readonly MCP_REQUEST_COMPLETED: "mcp_request_completed";
2974
3008
  readonly MCP_REQUEST_REJECTED: "mcp_request_rejected";
@@ -2995,6 +3029,7 @@ declare const EventType: {
2995
3029
  readonly MCP_AUTH_UPSTREAM_CREDENTIAL_RESOLVED: "mcp_auth_upstream_credential_resolved";
2996
3030
  readonly MCP_AUTH_UPSTREAM_CREDENTIAL_MISSING: "mcp_auth_upstream_credential_missing";
2997
3031
  readonly MCP_AUTH_UPSTREAM_RECONSENT_REQUIRED: "mcp_auth_upstream_reconsent_required";
3032
+ readonly GRAPHQL_OPERATION: "graphql_operation";
2998
3033
  };
2999
3034
 
3000
3035
  declare type EventType = (typeof EventType)[keyof typeof EventType];
@@ -6843,6 +6878,12 @@ export declare interface MockApiInboundOptions {
6843
6878
  */
6844
6879
  export declare const MockApiInboundPolicy: InboundPolicyHandler<MockApiInboundOptions>;
6845
6880
 
6881
+ declare interface ModelConfiguration {
6882
+ environmentVariable: string;
6883
+ model: string;
6884
+ provider: string;
6885
+ }
6886
+
6846
6887
  declare type Modify<T, R> = Omit<T, keyof R> & R;
6847
6888
 
6848
6889
  declare interface MoesifContext {
@@ -8666,6 +8707,15 @@ export declare interface QuotaDetail {
8666
8707
  };
8667
8708
  }
8668
8709
 
8710
+ /**
8711
+ * Global quota fallback models, keyed by capability. Applied whenever any
8712
+ * configured quota limit (any meter/period) is exceeded.
8713
+ */
8714
+ declare interface QuotaFallbackModels {
8715
+ completions?: ModelConfiguration;
8716
+ embeddings?: ModelConfiguration;
8717
+ }
8718
+
8669
8719
  /**
8670
8720
  * The Quota policy enables you to set monthly, weekly, daily or hourly quotas on your API.
8671
8721
  *
@@ -11211,7 +11261,8 @@ declare interface ZuploAnalyticsContext {
11211
11261
  value: number,
11212
11262
  eventType: EventType,
11213
11263
  metadata: JsonObject,
11214
- unit?: string
11264
+ unit?: string,
11265
+ eventId?: string
11215
11266
  ): void;
11216
11267
  flushAnalyticsEvents(): ZuploAnalyticsEvent[];
11217
11268
  getAnalyticsEvents(): ZuploAnalyticsEvent[];
@@ -103,6 +103,7 @@ declare const EventType: {
103
103
  readonly AI_GATEWAY_LATENCY_HISTOGRAM: "ai_gateway_latency_histogram";
104
104
  readonly AI_GATEWAY_WARNING_COUNT: "ai_gateway_warning_count";
105
105
  readonly AI_GATEWAY_BLOCKED_COUNT: "ai_gateway_blocked_count";
106
+ readonly AI_GATEWAY_FALLBACK_COUNT: "ai_gateway_fallback_count";
106
107
  readonly MCP_REQUEST_RECEIVED: "mcp_request_received";
107
108
  readonly MCP_REQUEST_COMPLETED: "mcp_request_completed";
108
109
  readonly MCP_REQUEST_REJECTED: "mcp_request_rejected";
@@ -129,6 +130,7 @@ declare const EventType: {
129
130
  readonly MCP_AUTH_UPSTREAM_CREDENTIAL_RESOLVED: "mcp_auth_upstream_credential_resolved";
130
131
  readonly MCP_AUTH_UPSTREAM_CREDENTIAL_MISSING: "mcp_auth_upstream_credential_missing";
131
132
  readonly MCP_AUTH_UPSTREAM_RECONSENT_REQUIRED: "mcp_auth_upstream_reconsent_required";
133
+ readonly GRAPHQL_OPERATION: "graphql_operation";
132
134
  };
133
135
 
134
136
  declare type EventType = (typeof EventType)[keyof typeof EventType];
@@ -3277,7 +3279,8 @@ declare interface ZuploAnalyticsContext {
3277
3279
  value: number,
3278
3280
  eventType: EventType,
3279
3281
  metadata: JsonObject,
3280
- unit?: string
3282
+ unit?: string,
3283
+ eventId?: string
3281
3284
  ): void;
3282
3285
  flushAnalyticsEvents(): ZuploAnalyticsEvent[];
3283
3286
  getAnalyticsEvents(): ZuploAnalyticsEvent[];
@@ -84,6 +84,7 @@ declare const EventType: {
84
84
  readonly AI_GATEWAY_LATENCY_HISTOGRAM: "ai_gateway_latency_histogram";
85
85
  readonly AI_GATEWAY_WARNING_COUNT: "ai_gateway_warning_count";
86
86
  readonly AI_GATEWAY_BLOCKED_COUNT: "ai_gateway_blocked_count";
87
+ readonly AI_GATEWAY_FALLBACK_COUNT: "ai_gateway_fallback_count";
87
88
  readonly MCP_REQUEST_RECEIVED: "mcp_request_received";
88
89
  readonly MCP_REQUEST_COMPLETED: "mcp_request_completed";
89
90
  readonly MCP_REQUEST_REJECTED: "mcp_request_rejected";
@@ -110,6 +111,7 @@ declare const EventType: {
110
111
  readonly MCP_AUTH_UPSTREAM_CREDENTIAL_RESOLVED: "mcp_auth_upstream_credential_resolved";
111
112
  readonly MCP_AUTH_UPSTREAM_CREDENTIAL_MISSING: "mcp_auth_upstream_credential_missing";
112
113
  readonly MCP_AUTH_UPSTREAM_RECONSENT_REQUIRED: "mcp_auth_upstream_reconsent_required";
114
+ readonly GRAPHQL_OPERATION: "graphql_operation";
113
115
  };
114
116
 
115
117
  declare type EventType = (typeof EventType)[keyof typeof EventType];
@@ -1621,7 +1623,8 @@ declare interface ZuploAnalyticsContext {
1621
1623
  value: number,
1622
1624
  eventType: EventType,
1623
1625
  metadata: JsonObject,
1624
- unit?: string
1626
+ unit?: string,
1627
+ eventId?: string
1625
1628
  ): void;
1626
1629
  flushAnalyticsEvents(): ZuploAnalyticsEvent[];
1627
1630
  getAnalyticsEvents(): ZuploAnalyticsEvent[];
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@zuplo/runtime",
3
3
  "type": "module",
4
- "version": "6.70.61",
4
+ "version": "6.70.63",
5
5
  "repository": "https://github.com/zuplo/zuplo",
6
6
  "author": "Zuplo, Inc.",
7
7
  "exports": {
@@ -1,26 +0,0 @@
1
-
2
- /*---------------------------------------------------------------------------------------------
3
- * Copyright (c) Zuplo, Inc. All rights reserved.
4
- *
5
- * This software and associated documentation files (the "Software") is intended to be used
6
- * only by Zuplo customers solely to develop and test applications that will be deployed
7
- * to Zuplo hosted services. You and others in your organization may use these files on your
8
- * Development Devices solely for the above stated purpose.
9
- *
10
- * Outside of uses stated above, no license is granted for any other purpose including
11
- * without limitation the rights to use, copy, modify, merge, publish, distribute,
12
- * sublicense, host, and/or sell copies of the Software.
13
- *
14
- * The software may include third party components with separate legal notices or governed by
15
- * other agreements, as described in licenses either embedded in or accompanying the Software.
16
- *
17
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
18
- * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
19
- * PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
20
- * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
21
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22
- * DEALINGS IN THE SOFTWARE.
23
- *--------------------------------------------------------------------------------------------*/
24
-
25
- import{a as E,ca as _}from"./chunk-ZIKV2LUM.js";var t={AI_GATEWAY_COST_SUM:"ai_gateway_cost_sum",AI_GATEWAY_REQUEST_COUNT:"ai_gateway_request_count",AI_GATEWAY_TOKEN_SUM:"ai_gateway_token_sum",AI_GATEWAY_LATENCY_HISTOGRAM:"ai_gateway_latency_histogram",AI_GATEWAY_WARNING_COUNT:"ai_gateway_warning_count",AI_GATEWAY_BLOCKED_COUNT:"ai_gateway_blocked_count",MCP_REQUEST_RECEIVED:"mcp_request_received",MCP_REQUEST_COMPLETED:"mcp_request_completed",MCP_REQUEST_REJECTED:"mcp_request_rejected",MCP_INITIALIZE_NEGOTIATED:"mcp_initialize_negotiated",MCP_CLIENT_UNSUPPORTED_BEHAVIOR:"mcp_client_unsupported_behavior",MCP_CAPABILITY_LISTED:"mcp_capability_listed",MCP_CAPABILITY_INVOKED:"mcp_capability_invoked",MCP_CAPABILITY_COMPLETED:"mcp_capability_completed",MCP_CAPABILITY_FAILED:"mcp_capability_failed",MCP_CAPABILITY_CONNECT_REQUIRED:"mcp_capability_connect_required",MCP_AUTH_DOWNSTREAM_TOKEN_VALIDATED:"mcp_auth_downstream_token_validated",MCP_AUTH_DOWNSTREAM_TOKEN_REJECTED:"mcp_auth_downstream_token_rejected",MCP_OAUTH_CLIENT_REGISTERED:"mcp_oauth_client_registered",MCP_OAUTH_AUTHORIZE_STARTED:"mcp_oauth_authorize_started",MCP_OAUTH_AUTHORIZE_AWAITING_SETUP:"mcp_oauth_authorize_awaiting_setup",MCP_OAUTH_TOKEN_ISSUED:"mcp_oauth_token_issued",MCP_OAUTH_TOKEN_REFRESH_ROTATED:"mcp_oauth_token_refresh_rotated",MCP_OAUTH_TOKEN_REVOKED:"mcp_oauth_token_revoked",MCP_AUTH_UPSTREAM_CONNECT_REQUIRED:"mcp_auth_upstream_connect_required",MCP_AUTH_UPSTREAM_CONNECT_STARTED:"mcp_auth_upstream_connect_started",MCP_AUTH_UPSTREAM_CALLBACK_RECEIVED:"mcp_auth_upstream_callback_received",MCP_AUTH_UPSTREAM_TOKEN_EXCHANGE_SUCCEEDED:"mcp_auth_upstream_token_exchange_succeeded",MCP_AUTH_UPSTREAM_TOKEN_EXCHANGE_FAILED:"mcp_auth_upstream_token_exchange_failed",MCP_AUTH_UPSTREAM_CREDENTIAL_RESOLVED:"mcp_auth_upstream_credential_resolved",MCP_AUTH_UPSTREAM_CREDENTIAL_MISSING:"mcp_auth_upstream_credential_missing",MCP_AUTH_UPSTREAM_RECONSENT_REQUIRED:"mcp_auth_upstream_reconsent_required"};var i=class{static{E(this,"BaseAnalyticsEvent")}eventId;requestId;timestamp;accountName;projectName;deploymentName;unit;value;constructor(e){this.eventId=e.eventId,this.requestId=e.requestId,this.timestamp=e.timestamp??new Date,this.accountName=e.accountName,this.projectName=e.projectName,this.deploymentName=e.deploymentName,this.unit=e.unit,this.value=e.value}};var o=class extends i{static{E(this,"AiGatewayBlockedCountEvent")}eventType=t.AI_GATEWAY_BLOCKED_COUNT;metadata;constructor(e){super(e),this.metadata=e.metadata,(!this.metadata.type||!this.metadata.type.trim())&&(this.metadata.type="unknown"),(!this.metadata.configId||!this.metadata.configId.trim())&&(this.metadata.configId="unknown")}};var T=class extends i{static{E(this,"AiGatewayCostSumEvent")}eventType=t.AI_GATEWAY_COST_SUM;metadata;constructor(e){super(e),this.metadata=e.metadata,(!this.metadata.model||!this.metadata.model.trim())&&(this.metadata.model="unknown"),(!this.metadata.provider||!this.metadata.provider.trim())&&(this.metadata.provider="unknown"),(!this.metadata.configId||!this.metadata.configId.trim())&&(this.metadata.configId="unknown")}};var s=class extends i{static{E(this,"AiGatewayLatencyHistogramEvent")}eventType=t.AI_GATEWAY_LATENCY_HISTOGRAM;metadata;constructor(e){super(e),this.metadata=e.metadata,(!this.metadata.model||!this.metadata.model.trim())&&(this.metadata.model="unknown"),(!this.metadata.provider||!this.metadata.provider.trim())&&(this.metadata.provider="unknown"),(!this.metadata.configId||!this.metadata.configId.trim())&&(this.metadata.configId="unknown")}};var p=class extends i{static{E(this,"AiGatewayRequestCountEvent")}eventType=t.AI_GATEWAY_REQUEST_COUNT;metadata;constructor(e){super(e),this.metadata=e.metadata,(!this.metadata.model||!this.metadata.model.trim())&&(this.metadata.model="unknown"),(!this.metadata.provider||!this.metadata.provider.trim())&&(this.metadata.provider="unknown"),(!this.metadata.configId||!this.metadata.configId.trim())&&(this.metadata.configId="unknown")}};var l=class extends i{static{E(this,"AiGatewayTokenSumEvent")}eventType=t.AI_GATEWAY_TOKEN_SUM;metadata;constructor(e){super(e),this.metadata=e.metadata,(!this.metadata.model||!this.metadata.model.trim())&&(this.metadata.model="unknown"),(!this.metadata.provider||!this.metadata.provider.trim())&&(this.metadata.provider="unknown"),(!this.metadata.configId||!this.metadata.configId.trim())&&(this.metadata.configId="unknown")}};var A=class extends i{static{E(this,"AiGatewayWarningCountEvent")}eventType=t.AI_GATEWAY_WARNING_COUNT;metadata;constructor(e){super(e),this.metadata=e.metadata,(!this.metadata.type||!this.metadata.type.trim())&&(this.metadata.type="unknown"),(!this.metadata.configId||!this.metadata.configId.trim())&&(this.metadata.configId="unknown")}};var u=class extends i{static{E(this,"McpEvent")}eventType;metadata;constructor(e){super(e),this.eventType=e.eventType,this.metadata=e.metadata}};var n=E(a=>e=>new u({...e,eventType:a}),"buildMcpEvent"),M={[t.AI_GATEWAY_COST_SUM]:a=>new T(a),[t.AI_GATEWAY_REQUEST_COUNT]:a=>new p(a),[t.AI_GATEWAY_TOKEN_SUM]:a=>new l(a),[t.AI_GATEWAY_LATENCY_HISTOGRAM]:a=>new s(a),[t.AI_GATEWAY_WARNING_COUNT]:a=>new A(a),[t.AI_GATEWAY_BLOCKED_COUNT]:a=>new o(a),[t.MCP_REQUEST_RECEIVED]:n(t.MCP_REQUEST_RECEIVED),[t.MCP_REQUEST_COMPLETED]:n(t.MCP_REQUEST_COMPLETED),[t.MCP_REQUEST_REJECTED]:n(t.MCP_REQUEST_REJECTED),[t.MCP_INITIALIZE_NEGOTIATED]:n(t.MCP_INITIALIZE_NEGOTIATED),[t.MCP_CLIENT_UNSUPPORTED_BEHAVIOR]:n(t.MCP_CLIENT_UNSUPPORTED_BEHAVIOR),[t.MCP_CAPABILITY_LISTED]:n(t.MCP_CAPABILITY_LISTED),[t.MCP_CAPABILITY_INVOKED]:n(t.MCP_CAPABILITY_INVOKED),[t.MCP_CAPABILITY_COMPLETED]:n(t.MCP_CAPABILITY_COMPLETED),[t.MCP_CAPABILITY_FAILED]:n(t.MCP_CAPABILITY_FAILED),[t.MCP_CAPABILITY_CONNECT_REQUIRED]:n(t.MCP_CAPABILITY_CONNECT_REQUIRED),[t.MCP_AUTH_DOWNSTREAM_TOKEN_VALIDATED]:n(t.MCP_AUTH_DOWNSTREAM_TOKEN_VALIDATED),[t.MCP_AUTH_DOWNSTREAM_TOKEN_REJECTED]:n(t.MCP_AUTH_DOWNSTREAM_TOKEN_REJECTED),[t.MCP_OAUTH_CLIENT_REGISTERED]:n(t.MCP_OAUTH_CLIENT_REGISTERED),[t.MCP_OAUTH_AUTHORIZE_STARTED]:n(t.MCP_OAUTH_AUTHORIZE_STARTED),[t.MCP_OAUTH_AUTHORIZE_AWAITING_SETUP]:n(t.MCP_OAUTH_AUTHORIZE_AWAITING_SETUP),[t.MCP_OAUTH_TOKEN_ISSUED]:n(t.MCP_OAUTH_TOKEN_ISSUED),[t.MCP_OAUTH_TOKEN_REFRESH_ROTATED]:n(t.MCP_OAUTH_TOKEN_REFRESH_ROTATED),[t.MCP_OAUTH_TOKEN_REVOKED]:n(t.MCP_OAUTH_TOKEN_REVOKED),[t.MCP_AUTH_UPSTREAM_CONNECT_REQUIRED]:n(t.MCP_AUTH_UPSTREAM_CONNECT_REQUIRED),[t.MCP_AUTH_UPSTREAM_CONNECT_STARTED]:n(t.MCP_AUTH_UPSTREAM_CONNECT_STARTED),[t.MCP_AUTH_UPSTREAM_CALLBACK_RECEIVED]:n(t.MCP_AUTH_UPSTREAM_CALLBACK_RECEIVED),[t.MCP_AUTH_UPSTREAM_TOKEN_EXCHANGE_SUCCEEDED]:n(t.MCP_AUTH_UPSTREAM_TOKEN_EXCHANGE_SUCCEEDED),[t.MCP_AUTH_UPSTREAM_TOKEN_EXCHANGE_FAILED]:n(t.MCP_AUTH_UPSTREAM_TOKEN_EXCHANGE_FAILED),[t.MCP_AUTH_UPSTREAM_CREDENTIAL_RESOLVED]:n(t.MCP_AUTH_UPSTREAM_CREDENTIAL_RESOLVED),[t.MCP_AUTH_UPSTREAM_CREDENTIAL_MISSING]:n(t.MCP_AUTH_UPSTREAM_CREDENTIAL_MISSING),[t.MCP_AUTH_UPSTREAM_RECONSENT_REQUIRED]:n(t.MCP_AUTH_UPSTREAM_RECONSENT_REQUIRED)};function d(a,e){let r=M[a];return r(e)}E(d,"createAnalyticsEvent");var C=class{static{E(this,"ZuploGatewayAnalyticsContext")}#t;#e;constructor(e){this.#t=[],this.#e=e}addAnalyticsEvent(e,r,m,c){let y=this.createAnalyticsEvent(e,r,m,c);this.#t.push(y)}flushAnalyticsEvents(){let e=[...this.#t];return this.#t.length=0,e}getAnalyticsEvents(){return[...this.#t]}createAnalyticsEvent(e,r,m,c){return d(r,{eventId:crypto.randomUUID(),requestId:this.#e,accountName:_.instance.build.ACCOUNT_NAME??"unknown",projectName:_.instance.build.PROJECT_NAME??"unknown",deploymentName:_.instance.deploymentName??"unknown",metadata:m,unit:c,value:e})}};export{t as a,C as b};
26
- //# sourceMappingURL=chunk-4SACVMDH.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["@zuplo/runtime/metrics/v2/interfaces.ts","@zuplo/runtime/metrics/v2/events/base-analytics-event.ts","@zuplo/runtime/metrics/v2/events/ai-gateway-blocked-count.ts","@zuplo/runtime/metrics/v2/events/ai-gateway-cost-sum.ts","@zuplo/runtime/metrics/v2/events/ai-gateway-latency-histogram.ts","@zuplo/runtime/metrics/v2/events/ai-gateway-request-count.ts","@zuplo/runtime/metrics/v2/events/ai-gateway-token-sum.ts","@zuplo/runtime/metrics/v2/events/ai-gateway-warning-count.ts","@zuplo/runtime/metrics/v2/events/mcp-event.ts","@zuplo/runtime/metrics/v2/create-events.ts","@zuplo/runtime/metrics/v2/analytics-context.ts"],"mappings":"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","names":["EventType","BaseAnalyticsEvent","__name","options","AiGatewayBlockedCountEvent","BaseAnalyticsEvent","__name","EventType","options","AiGatewayCostSumEvent","BaseAnalyticsEvent","__name","EventType","options","AiGatewayLatencyHistogramEvent","BaseAnalyticsEvent","__name","EventType","options","AiGatewayRequestCountEvent","BaseAnalyticsEvent","__name","EventType","options","AiGatewayTokenSumEvent","BaseAnalyticsEvent","__name","EventType","options","AiGatewayWarningCountEvent","BaseAnalyticsEvent","__name","EventType","options","McpEvent","BaseAnalyticsEvent","__name","options","buildMcpEvent","__name","eventType","options","McpEvent","eventBuilders","EventType","AiGatewayCostSumEvent","AiGatewayRequestCountEvent","AiGatewayTokenSumEvent","AiGatewayLatencyHistogramEvent","AiGatewayWarningCountEvent","AiGatewayBlockedCountEvent","createAnalyticsEvent","builder","ZuploGatewayAnalyticsContext","__name","#events","#requestId","requestId","value","eventType","metadata","unit","event","events","createAnalyticsEvent","Environment"]}