@propio-ai/providers 0.3.0 → 0.4.0

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 (62) hide show
  1. package/README.md +18 -0
  2. package/dist/index.d.ts +1 -1
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/internal/baseProvider.d.ts +1 -1
  5. package/dist/internal/baseProvider.d.ts.map +1 -1
  6. package/dist/internal/baseProvider.js +2 -1
  7. package/dist/internal/baseProvider.js.map +1 -1
  8. package/dist/internal/openAiCompatibleProvider.d.ts +1 -1
  9. package/dist/internal/openAiCompatibleProvider.d.ts.map +1 -1
  10. package/dist/internal/openAiCompatibleProvider.js +2 -1
  11. package/dist/internal/openAiCompatibleProvider.js.map +1 -1
  12. package/dist/internal/openAiResponsesProvider.d.ts +4 -0
  13. package/dist/internal/openAiResponsesProvider.d.ts.map +1 -1
  14. package/dist/internal/openAiResponsesProvider.js +60 -17
  15. package/dist/internal/openAiResponsesProvider.js.map +1 -1
  16. package/dist/internal/openAiStream.d.ts +6 -1
  17. package/dist/internal/openAiStream.d.ts.map +1 -1
  18. package/dist/internal/openAiStream.js +14 -2
  19. package/dist/internal/openAiStream.js.map +1 -1
  20. package/dist/internal/providerMeasurements.d.ts +73 -0
  21. package/dist/internal/providerMeasurements.d.ts.map +1 -0
  22. package/dist/internal/providerMeasurements.js +92 -0
  23. package/dist/internal/providerMeasurements.js.map +1 -0
  24. package/dist/internal/shared.d.ts +1 -0
  25. package/dist/internal/shared.d.ts.map +1 -1
  26. package/dist/internal/shared.js +1 -0
  27. package/dist/internal/shared.js.map +1 -1
  28. package/dist/internal/withRetry.d.ts +7 -1
  29. package/dist/internal/withRetry.d.ts.map +1 -1
  30. package/dist/internal/withRetry.js +10 -3
  31. package/dist/internal/withRetry.js.map +1 -1
  32. package/dist/providers/anthropic.d.ts +5 -0
  33. package/dist/providers/anthropic.d.ts.map +1 -1
  34. package/dist/providers/anthropic.js +54 -2
  35. package/dist/providers/anthropic.js.map +1 -1
  36. package/dist/providers/bedrock.d.ts +1 -0
  37. package/dist/providers/bedrock.d.ts.map +1 -1
  38. package/dist/providers/bedrock.js +35 -2
  39. package/dist/providers/bedrock.js.map +1 -1
  40. package/dist/providers/cloudflare.d.ts.map +1 -1
  41. package/dist/providers/cloudflare.js +6 -2
  42. package/dist/providers/cloudflare.js.map +1 -1
  43. package/dist/providers/gemini.d.ts +1 -0
  44. package/dist/providers/gemini.d.ts.map +1 -1
  45. package/dist/providers/gemini.js +31 -2
  46. package/dist/providers/gemini.js.map +1 -1
  47. package/dist/providers/ollama.d.ts +1 -0
  48. package/dist/providers/ollama.d.ts.map +1 -1
  49. package/dist/providers/ollama.js +27 -1
  50. package/dist/providers/ollama.js.map +1 -1
  51. package/dist/providers/openrouter.d.ts.map +1 -1
  52. package/dist/providers/openrouter.js +20 -2
  53. package/dist/providers/openrouter.js.map +1 -1
  54. package/dist/providers/xai.d.ts +7 -4
  55. package/dist/providers/xai.d.ts.map +1 -1
  56. package/dist/providers/xai.js +149 -58
  57. package/dist/providers/xai.js.map +1 -1
  58. package/dist/trace.d.ts +64 -11
  59. package/dist/trace.d.ts.map +1 -1
  60. package/dist/trace.js +218 -61
  61. package/dist/trace.js.map +1 -1
  62. package/package.json +1 -1
@@ -1,8 +1,9 @@
1
- import { ProviderError, ProviderAuthenticationError, } from "../types.js";
1
+ import { ProviderError, ProviderAuthenticationError, ProviderCapacityError, } from "../types.js";
2
2
  import { withRetry } from "../internal/withRetry.js";
3
3
  import { buildOpenAIChatCompletionRequestBody, createResponsesFunctionTool, expandToolResultMessages, parseJsonMaybe, parseOpenAIStreamToolCallArguments, readSseDataLines, serializeToolArguments, } from "../internal/shared.js";
4
4
  import { consumeOpenAiChatCompletionsStream } from "../internal/openAiStream.js";
5
5
  import { OpenAiCompatibleProvider, } from "../internal/openAiCompatibleProvider.js";
6
+ import { emitOpenAiCompatibleTrace } from "../internal/providerMeasurements.js";
6
7
  const XAI_CHAT_COMPLETIONS_API_URLS = [
7
8
  "https://api.x.ai/v1/chat/completions",
8
9
  "https://us-east-1.api.x.ai/v1/chat/completions",
@@ -20,6 +21,7 @@ export class XaiProvider extends OpenAiCompatibleProvider {
20
21
  constructor(options) {
21
22
  super();
22
23
  this.name = "xai";
24
+ this.endpointFallbackErrors = new WeakSet();
23
25
  const apiKey = options.apiKey ?? process.env.XAI_API_KEY ?? "";
24
26
  if (!apiKey || apiKey.trim() === "") {
25
27
  throw new ProviderAuthenticationError("xAI API key is required. Set XAI_API_KEY or pass apiKey in options.");
@@ -30,16 +32,6 @@ export class XaiProvider extends OpenAiCompatibleProvider {
30
32
  this.configureCapabilities(options.contextWindowTokens);
31
33
  this.apiKey = apiKey;
32
34
  }
33
- shouldRetryEndpoint(status) {
34
- return status !== undefined && status >= 500 && status < 600;
35
- }
36
- isAbortError(translated) {
37
- return (translated.message === "Request cancelled" ||
38
- translated.originalError?.name === "AbortError");
39
- }
40
- shouldContinueToNextEndpoint(error, translated) {
41
- return !(error instanceof ProviderError) && !this.isAbortError(translated);
42
- }
43
35
  async createEndpointResponseError(response) {
44
36
  let errorBody = "";
45
37
  try {
@@ -48,45 +40,41 @@ export class XaiProvider extends OpenAiCompatibleProvider {
48
40
  catch {
49
41
  // ignore read failures
50
42
  }
51
- return {
52
- translated: this.translateError(new Error(errorBody || `HTTP ${response.status}`), response),
53
- retryable: this.shouldRetryEndpoint(response.status),
54
- };
43
+ const originalError = new Error(errorBody || `HTTP ${response.status}`);
44
+ const error = response.status === 529
45
+ ? new ProviderCapacityError(errorBody
46
+ ? `xAI capacity exceeded: ${errorBody}`
47
+ : "xAI capacity exceeded", originalError)
48
+ : this.translateError(originalError, response);
49
+ if (response.status >= 500 && response.status < 600) {
50
+ this.endpointFallbackErrors.add(error);
51
+ }
52
+ return error;
55
53
  }
56
- getContinuationError(error) {
57
- const translated = error instanceof ProviderError ? error : this.translateError(error);
58
- if (!this.shouldContinueToNextEndpoint(error, translated)) {
59
- throw translated;
54
+ async createPostResponse(apiUrl, body, signal) {
55
+ let response;
56
+ try {
57
+ response = await fetch(apiUrl, {
58
+ method: "POST",
59
+ headers: {
60
+ Authorization: `Bearer ${this.apiKey}`,
61
+ "Content-Type": "application/json",
62
+ },
63
+ body: JSON.stringify(body),
64
+ signal,
65
+ });
60
66
  }
61
- return translated;
62
- }
63
- async createPostResponse(apiUrls, body, signal) {
64
- let lastError = null;
65
- for (const apiUrl of apiUrls) {
66
- try {
67
- const response = await fetch(apiUrl, {
68
- method: "POST",
69
- headers: {
70
- Authorization: `Bearer ${this.apiKey}`,
71
- "Content-Type": "application/json",
72
- },
73
- body: JSON.stringify(body),
74
- signal,
75
- });
76
- if (response.ok) {
77
- return response;
78
- }
79
- const { translated, retryable } = await this.createEndpointResponseError(response);
80
- if (!retryable) {
81
- throw translated;
82
- }
83
- lastError = translated;
84
- }
85
- catch (error) {
86
- lastError = this.getContinuationError(error);
67
+ catch (error) {
68
+ const translated = error instanceof ProviderError ? error : this.translateError(error);
69
+ if (!(error instanceof ProviderError) &&
70
+ !this.isCancellation(translated)) {
71
+ this.endpointFallbackErrors.add(translated);
87
72
  }
73
+ throw translated;
88
74
  }
89
- throw lastError ?? new ProviderError("xAI request failed");
75
+ if (!response.ok)
76
+ throw await this.createEndpointResponseError(response);
77
+ return response;
90
78
  }
91
79
  async *streamChat(request) {
92
80
  try {
@@ -95,9 +83,9 @@ export class XaiProvider extends OpenAiCompatibleProvider {
95
83
  return;
96
84
  }
97
85
  const body = this.createChatCompletionRequestBody(request);
98
- const reader = await this.postStreamReader(request, XAI_CHAT_COMPLETIONS_API_URLS, body);
86
+ const { reader, endpointClass } = await this.postStreamReader(request, XAI_CHAT_COMPLETIONS_API_URLS, body);
99
87
  const toolCallsByIndex = new Map();
100
- yield* this.consumeChatCompletionsStream(reader, toolCallsByIndex);
88
+ yield* this.consumeChatCompletionsStream(reader, toolCallsByIndex, request, endpointClass);
101
89
  }
102
90
  catch (error) {
103
91
  if (error instanceof ProviderError)
@@ -107,16 +95,94 @@ export class XaiProvider extends OpenAiCompatibleProvider {
107
95
  }
108
96
  async *streamResponsesChat(request) {
109
97
  const body = this.createResponsesRequestBody(request);
110
- const reader = await this.postStreamReader(request, XAI_RESPONSES_API_URLS, body);
111
- yield* this.consumeResponsesStream(reader);
98
+ const { reader, endpointClass } = await this.postStreamReader(request, XAI_RESPONSES_API_URLS, body);
99
+ yield* this.consumeResponsesStream(reader, request, endpointClass);
112
100
  }
113
101
  async postStreamReader(request, apiUrls, body) {
114
- const response = await withRetry(() => this.createPostResponse(apiUrls, body, request.signal), this.buildRetryOptions(request, this.model, this.retryConfig, this.onDiagnosticEvent));
102
+ const retryState = {
103
+ endpointIndex: 0,
104
+ logicalRetryCount: 0,
105
+ nextRetry: "logical_retry",
106
+ };
107
+ let endpointClass = this.xaiEndpointClass(apiUrls[0]);
108
+ const response = await withRetry(() => {
109
+ const apiUrl = apiUrls[retryState.endpointIndex];
110
+ endpointClass = this.xaiEndpointClass(apiUrl);
111
+ return this.createPostResponse(apiUrl, body, request.signal);
112
+ }, this.buildEndpointRetryOptions(request, apiUrls, retryState));
115
113
  const reader = this.getResponseReader(response);
116
114
  if (!reader) {
117
115
  throw this.translateError(new Error("No response body"));
118
116
  }
119
- return reader;
117
+ return { reader, endpointClass };
118
+ }
119
+ buildEndpointRetryOptions(request, apiUrls, state) {
120
+ const configuredRetries = this.retryConfig?.maxRetries ?? 3;
121
+ const base = this.buildRetryOptions(request, this.model, this.endpointRetryConfig(apiUrls.length), this.onDiagnosticEvent, () => this.xaiEndpointClass(apiUrls[state.endpointIndex]));
122
+ const baseOnRetry = base.onRetry;
123
+ return {
124
+ ...base,
125
+ isRetryable: (error) => {
126
+ if (this.isCancellation(error) || !base.isRetryable(error)) {
127
+ return false;
128
+ }
129
+ if (this.isEndpointFallbackError(error) &&
130
+ state.endpointIndex < apiUrls.length - 1) {
131
+ state.nextRetry = "endpoint_fallback";
132
+ return true;
133
+ }
134
+ state.nextRetry = "logical_retry";
135
+ return state.logicalRetryCount < configuredRetries;
136
+ },
137
+ getBackoffAttempt: () => state.nextRetry === "endpoint_fallback"
138
+ ? null
139
+ : state.logicalRetryCount,
140
+ onRetry: (context) => {
141
+ baseOnRetry?.(context);
142
+ if (state.nextRetry === "endpoint_fallback") {
143
+ state.endpointIndex += 1;
144
+ }
145
+ else {
146
+ state.endpointIndex = 0;
147
+ state.logicalRetryCount += 1;
148
+ }
149
+ },
150
+ };
151
+ }
152
+ isEndpointFallbackError(error) {
153
+ return typeof error === "object" && error !== null
154
+ ? this.endpointFallbackErrors.has(error)
155
+ : false;
156
+ }
157
+ isCancellation(error) {
158
+ return (error instanceof Error &&
159
+ (error.name === "AbortError" ||
160
+ error.message === "Request cancelled" ||
161
+ (error instanceof ProviderError &&
162
+ error.originalError?.name === "AbortError")));
163
+ }
164
+ endpointRetryConfig(endpointCount) {
165
+ const configuredRetries = this.retryConfig?.maxRetries ?? 3;
166
+ return {
167
+ // withRetry now observes each physical endpoint call. Convert both
168
+ // configured limits from complete regional sweeps to physical attempts.
169
+ maxRetries: (configuredRetries + 1) * endpointCount - 1,
170
+ consecutive529Limit: (this.retryConfig?.consecutive529Limit ?? 3) * endpointCount,
171
+ ...(this.retryConfig?.baseDelayMs !== undefined
172
+ ? { baseDelayMs: this.retryConfig.baseDelayMs }
173
+ : {}),
174
+ };
175
+ }
176
+ xaiEndpointClass(apiUrl) {
177
+ const api = apiUrl.includes("/responses")
178
+ ? "responses"
179
+ : "chat_completions";
180
+ const region = apiUrl.includes("us-east-1")
181
+ ? "us_east_1"
182
+ : apiUrl.includes("eu-west-1")
183
+ ? "eu_west_1"
184
+ : "global";
185
+ return `${api}:${region}`;
120
186
  }
121
187
  createResponsesRequestBody(request) {
122
188
  const body = {
@@ -186,20 +252,23 @@ export class XaiProvider extends OpenAiCompatibleProvider {
186
252
  });
187
253
  }
188
254
  }
189
- async *consumeResponsesStream(reader) {
255
+ async *consumeResponsesStream(reader, request, endpointClass) {
190
256
  const state = {
191
257
  functionCallsByOutputIndex: new Map(),
192
258
  hasFunctionCall: false,
193
259
  };
194
260
  let stopReason = "end_turn";
261
+ let rawProviderReason;
262
+ const measurementState = { responseMetadataObserved: false };
195
263
  for await (const data of readSseDataLines(reader)) {
196
- const result = this.parseResponsesStreamLine(data, state);
264
+ const result = this.parseResponsesStreamLine(data, state, request, endpointClass, measurementState);
197
265
  if (result.stopReason) {
198
266
  stopReason = result.stopReason;
267
+ rawProviderReason = result.rawProviderReason;
199
268
  }
200
269
  yield* result.events;
201
270
  }
202
- yield { type: "terminal", stopReason };
271
+ yield { type: "terminal", stopReason, rawProviderReason };
203
272
  }
204
273
  createChatCompletionRequestBody(request) {
205
274
  return buildOpenAIChatCompletionRequestBody({
@@ -212,8 +281,12 @@ export class XaiProvider extends OpenAiCompatibleProvider {
212
281
  getResponseReader(response) {
213
282
  return response.body?.getReader() ?? null;
214
283
  }
215
- async *consumeChatCompletionsStream(reader, toolCallsByIndex) {
216
- yield* consumeOpenAiChatCompletionsStream(reader, toolCallsByIndex);
284
+ async *consumeChatCompletionsStream(reader, toolCallsByIndex, request, endpointClass) {
285
+ yield* consumeOpenAiChatCompletionsStream(reader, toolCallsByIndex, {
286
+ provider: this.name,
287
+ request,
288
+ endpointClass,
289
+ });
217
290
  }
218
291
  mapXaiResponsesStopReason(status, hasFunctionCall) {
219
292
  if (hasFunctionCall) {
@@ -244,7 +317,7 @@ export class XaiProvider extends OpenAiCompatibleProvider {
244
317
  ];
245
318
  return { type: "tool_calls", toolCalls };
246
319
  }
247
- parseResponsesStreamLine(data, state) {
320
+ parseResponsesStreamLine(data, state, request, endpointClass, measurementState) {
248
321
  if (data === "[DONE]") {
249
322
  return { events: [] };
250
323
  }
@@ -252,8 +325,25 @@ export class XaiProvider extends OpenAiCompatibleProvider {
252
325
  if (!event?.type) {
253
326
  return { events: [] };
254
327
  }
328
+ this.captureResponsesTrace(event, request, endpointClass, measurementState);
255
329
  return this.handleResponsesStreamEvent(event, state);
256
330
  }
331
+ captureResponsesTrace(event, request, endpointClass, state) {
332
+ const response = event.response;
333
+ if (!response)
334
+ return;
335
+ emitOpenAiCompatibleTrace({
336
+ provider: this.name,
337
+ request,
338
+ endpointClass,
339
+ responseId: response.id,
340
+ actualModel: response.model,
341
+ usage: response.usage,
342
+ includeResponseMetadata: !state.responseMetadataObserved,
343
+ });
344
+ if (response.id || response.model)
345
+ state.responseMetadataObserved = true;
346
+ }
257
347
  // fallow-ignore-next-line complexity
258
348
  handleResponsesStreamEvent(event, state) {
259
349
  switch (event.type) {
@@ -341,6 +431,7 @@ export class XaiProvider extends OpenAiCompatibleProvider {
341
431
  return {
342
432
  events: [],
343
433
  stopReason: this.mapXaiResponsesStopReason(status, state.hasFunctionCall),
434
+ rawProviderReason: status,
344
435
  };
345
436
  }
346
437
  translateError(error, response, _responseBody) {
@@ -1 +1 @@
1
- {"version":3,"file":"xai.js","sourceRoot":"","sources":["../../src/providers/xai.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,aAAa,EACb,2BAA2B,GAE5B,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EACL,oCAAoC,EACpC,2BAA2B,EAC3B,wBAAwB,EACxB,cAAc,EACd,kCAAkC,EAClC,gBAAgB,EAChB,sBAAsB,GAEvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kCAAkC,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EACL,wBAAwB,GAEzB,MAAM,yCAAyC,CAAC;AAEjD,MAAM,6BAA6B,GAAG;IACpC,sCAAsC;IACtC,gDAAgD;IAChD,gDAAgD;CACxC,CAAC;AAEX,MAAM,sBAAsB,GAAG;IAC7B,+BAA+B;IAC/B,yCAAyC;IACzC,yCAAyC;CACjC,CAAC;AAEX;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,wBAAwB;IAUvD,YAAY,OAAwC;QAClD,KAAK,EAAE,CAAC;QAVD,SAAI,GAAG,KAAK,CAAC;QAWpB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;QAC/D,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACpC,MAAM,IAAI,2BAA2B,CACnC,qEAAqE,CACtE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QACnD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEO,mBAAmB,CAAC,MAAe;QACzC,OAAO,MAAM,KAAK,SAAS,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,CAAC;IAC/D,CAAC;IAEO,YAAY,CAAC,UAAyB;QAC5C,OAAO,CACL,UAAU,CAAC,OAAO,KAAK,mBAAmB;YAC1C,UAAU,CAAC,aAAa,EAAE,IAAI,KAAK,YAAY,CAChD,CAAC;IACJ,CAAC;IAEO,4BAA4B,CAClC,KAAc,EACd,UAAyB;QAEzB,OAAO,CAAC,CAAC,KAAK,YAAY,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IAC7E,CAAC;IAEO,KAAK,CAAC,2BAA2B,CAAC,QAAkB;QAI1D,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACP,uBAAuB;QACzB,CAAC;QAED,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,cAAc,CAC7B,IAAI,KAAK,CAAC,SAAS,IAAI,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC,EACjD,QAAQ,CACT;YACD,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,MAAM,CAAC;SACrD,CAAC;IACJ,CAAC;IAEO,oBAAoB,CAAC,KAAc;QACzC,MAAM,UAAU,GACd,KAAK,YAAY,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC;YAC1D,MAAM,UAAU,CAAC;QACnB,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC9B,OAA0B,EAC1B,IAA6B,EAC7B,MAAoB;QAEpB,IAAI,SAAS,GAAyB,IAAI,CAAC;QAE3C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE;oBACnC,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE;wBACP,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;wBACtC,cAAc,EAAE,kBAAkB;qBACnC;oBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;oBAC1B,MAAM;iBACP,CAAC,CAAC;gBAEH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;oBAChB,OAAO,QAAQ,CAAC;gBAClB,CAAC;gBAED,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAC7B,MAAM,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAC;gBACnD,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,MAAM,UAAU,CAAC;gBACnB,CAAC;gBACD,SAAS,GAAG,UAAU,CAAC;YACzB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,MAAM,SAAS,IAAI,IAAI,aAAa,CAAC,oBAAoB,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,CAAC,UAAU,CAAC,OAAoB;QACpC,IAAI,CAAC;YACH,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;gBAC7B,KAAK,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;gBACzC,OAAO;YACT,CAAC;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,+BAA+B,CAAC,OAAO,CAAC,CAAC;YAC3D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CACxC,OAAO,EACP,6BAA6B,EAC7B,IAAI,CACL,CAAC;YACF,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAG7B,CAAC;YACJ,KAAK,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;QACrE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,aAAa;gBAAE,MAAM,KAAK,CAAC;YAChD,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,CAAC,mBAAmB,CAChC,OAAoB;QAEpB,MAAM,IAAI,GAAG,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CACxC,OAAO,EACP,sBAAsB,EACtB,IAAI,CACL,CAAC;QAEF,KAAK,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAC5B,OAAoB,EACpB,OAA0B,EAC1B,IAA6B;QAE7B,MAAM,QAAQ,GAAG,MAAM,SAAS,CAC9B,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,EAC5D,IAAI,CAAC,iBAAiB,CACpB,OAAO,EACP,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,iBAAiB,CACvB,CACF,CAAC;QAEF,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,0BAA0B,CAChC,OAAoB;QAEpB,MAAM,IAAI,GAA4B;YACpC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK;YAClC,KAAK,EAAE,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,QAAQ,CAAC;YAC1D,MAAM,EAAE,IAAI;SACb,CAAC;QAEF,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,4BAA4B,CAClC,QAAuB;QAEvB,MAAM,KAAK,GAA8B,EAAE,CAAC;QAE5C,KAAK,MAAM,GAAG,IAAI,wBAAwB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrD,IAAI,CAAC,2BAA2B,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,2BAA2B,CACjC,GAAgB,EAChB,KAAgC;QAEhC,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC;YAC3D,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACxB,IAAI,CAAC,0BAA0B,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC7B,IAAI,CAAC,+BAA+B,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACjD,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YAC1C,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,sBAAsB;gBAC5B,OAAO,EAAE,GAAG,CAAC,UAAU;gBACvB,MAAM,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE;aAC1B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,0BAA0B,CAChC,GAAgB,EAChB,KAAgC;QAEhC,MAAM,OAAO,GAA8B,EAAE,CAAC;QAC9C,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,MAAM;YACZ,OAAO,EACL,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;SACpE,CAAC,CAAC;IACL,CAAC;IAEO,+BAA+B,CACrC,GAAgB,EAChB,KAAgC;QAEhC,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YACrC,MAAM,MAAM,GACV,QAAQ,CAAC,EAAE,IAAI,QAAQ,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YAClE,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,eAAe;gBACrB,EAAE,EAAE,MAAM;gBACV,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI;gBAC5B,SAAS,EAAE,sBAAsB,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAC9D,MAAM,EAAE,WAAW;aACpB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,CAAC,sBAAsB,CACnC,MAA+C;QAE/C,MAAM,KAAK,GAA4B;YACrC,0BAA0B,EAAE,IAAI,GAAG,EAAE;YACrC,eAAe,EAAE,KAAK;SACvB,CAAC;QACF,IAAI,UAAU,GAAe,UAAU,CAAC;QAExC,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,MAAM,MAAM,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC1D,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACtB,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;YACjC,CAAC;YACD,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;QACvB,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;IACzC,CAAC;IAEO,+BAA+B,CACrC,OAAoB;QAEpB,OAAO,oCAAoC,CAAC;YAC1C,OAAO;YACP,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC;YACzD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;SACnD,CAAC,CAAC;IACL,CAAC;IAEO,iBAAiB,CACvB,QAAkB;QAElB,OAAO,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC;IAC5C,CAAC;IAEO,KAAK,CAAC,CAAC,4BAA4B,CACzC,MAA+C,EAC/C,gBAA8D;QAE9D,KAAK,CAAC,CAAC,kCAAkC,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACtE,CAAC;IAEO,yBAAyB,CAC/B,MAA0B,EAC1B,eAAwB;QAExB,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;YAC5B,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;YAClD,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,4BAA4B,CAClC,QAA+B;QAE/B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;QACnE,MAAM,SAAS,GAAmB;YAChC;gBACE,EAAE,EAAE,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,EAAE;gBACnC,QAAQ,EAAE;oBACR,IAAI;oBACJ,SAAS,EAAE,kCAAkC,CAAC,UAAU,CAAC;iBAC1D;aACF;SACF,CAAC;QAEF,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;IAC3C,CAAC;IAEO,wBAAwB,CAC9B,IAAY,EACZ,KAA8B;QAE9B,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACxB,CAAC;QAED,MAAM,KAAK,GAAG,cAAc,CAA0B,IAAI,CAAC,CAAC;QAC5D,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;YACjB,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACxB,CAAC;QAED,OAAO,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC;IAED,qCAAqC;IAC7B,0BAA0B,CAChC,KAA8B,EAC9B,KAA8B;QAE9B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,uCAAuC,CAAC;YAC7C,KAAK,+BAA+B;gBAClC,OAAO,IAAI,CAAC,6BAA6B,CAAC,KAAK,CAAC,CAAC;YACnD,KAAK,4BAA4B;gBAC/B,OAAO,IAAI,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC;YACpD,KAAK,4BAA4B;gBAC/B,OAAO,IAAI,CAAC,8BAA8B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC3D,KAAK,wCAAwC;gBAC3C,OAAO,IAAI,CAAC,yCAAyC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACtE,KAAK,2BAA2B;gBAC9B,OAAO,IAAI,CAAC,6BAA6B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC1D,KAAK,oBAAoB,CAAC;YAC1B,KAAK,eAAe,CAAC;YACrB,KAAK,qBAAqB;gBACxB,OAAO,IAAI,CAAC,4BAA4B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACzD,KAAK,iBAAiB;gBACpB,OAAO;oBACL,MAAM,EAAE,EAAE;oBACV,UAAU,EAAE,IAAI,CAAC,yBAAyB,CAAC,QAAQ,EAAE,KAAK,CAAC;iBAC5D,CAAC;YACJ;gBACE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAEO,6BAA6B,CACnC,KAA8B;QAE9B,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACjB,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACxB,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;IACtE,CAAC;IAEO,8BAA8B,CACpC,KAA8B;QAE9B,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACjB,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACxB,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;IACtE,CAAC;IAEO,8BAA8B,CACpC,KAA8B,EAC9B,KAA8B;QAE9B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAI,IAAI,EAAE,IAAI,KAAK,eAAe,EAAE,CAAC;YACnC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACxB,CAAC;QAED,MAAM,WAAW,GAAG,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;QAC5C,KAAK,CAAC,0BAA0B,CAAC,GAAG,CAAC,WAAW,EAAE;YAChD,EAAE,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,EAAE;YAC3B,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;YACrB,UAAU,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;SACjC,CAAC,CAAC;QACH,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACxB,CAAC;IAEO,yCAAyC,CAC/C,KAA8B,EAC9B,KAA8B;QAE9B,MAAM,WAAW,GAAG,KAAK,CAAC,0BAA0B,CAAC,GAAG,CACtD,KAAK,CAAC,YAAY,IAAI,CAAC,CACxB,CAAC;QACF,IAAI,WAAW,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC/B,WAAW,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC;QACxC,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACxB,CAAC;IAED,qCAAqC;IAC7B,6BAA6B,CACnC,KAA8B,EAC9B,KAA8B;QAE9B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAI,IAAI,EAAE,IAAI,KAAK,eAAe,EAAE,CAAC;YACnC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACxB,CAAC;QAED,MAAM,WAAW,GAAG,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;QAC5C,MAAM,WAAW,GAAG,KAAK,CAAC,0BAA0B,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACtE,MAAM,cAAc,GAAG,IAAI,CAAC,4BAA4B,CAAC;YACvD,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,WAAW,EAAE,EAAE;YACxC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,WAAW,EAAE,IAAI;YACpC,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,WAAW,EAAE,UAAU;SACrD,CAAC,CAAC;QACH,KAAK,CAAC,0BAA0B,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACrD,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACxB,CAAC;QAED,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC;QAC7B,OAAO,EAAE,MAAM,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC;IACtC,CAAC;IAEO,4BAA4B,CAClC,KAA8B,EAC9B,KAA8B;QAE9B,MAAM,MAAM,GACV,KAAK,CAAC,IAAI,KAAK,qBAAqB;YAClC,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC7B,OAAO;YACL,MAAM,EAAE,EAAE;YACV,UAAU,EAAE,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,KAAK,CAAC,eAAe,CAAC;SAC1E,CAAC;IACJ,CAAC;IAES,cAAc,CACtB,KAAc,EACd,QAAmB,EACnB,aAAsB;QAEtB,OAAO,IAAI,CAAC,4BAA4B,CAAC,KAAK,EAAE,QAAQ,EAAE;YACxD,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,qBAAqB,EAAE,qBAAqB;YAC5C,gBAAgB,EAAE,yBAAyB;YAC3C,mBAAmB,EAAE,mBAAmB;YACxC,sBAAsB,EAAE,8BAA8B;YACtD,oBAAoB,EAAE,oBAAoB;SAC3C,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"xai.js","sourceRoot":"","sources":["../../src/providers/xai.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,aAAa,EACb,2BAA2B,EAC3B,qBAAqB,GAEtB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,SAAS,EAAyB,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EACL,oCAAoC,EACpC,2BAA2B,EAC3B,wBAAwB,EACxB,cAAc,EACd,kCAAkC,EAClC,gBAAgB,EAChB,sBAAsB,GAEvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kCAAkC,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EACL,wBAAwB,GAGzB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAEhF,MAAM,6BAA6B,GAAG;IACpC,sCAAsC;IACtC,gDAAgD;IAChD,gDAAgD;CACxC,CAAC;AAEX,MAAM,sBAAsB,GAAG;IAC7B,+BAA+B;IAC/B,yCAAyC;IACzC,yCAAyC;CACjC,CAAC;AAEX;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,wBAAwB;IAQvD,YAAY,OAAwC;QAClD,KAAK,EAAE,CAAC;QARD,SAAI,GAAG,KAAK,CAAC;QAKL,2BAAsB,GAAG,IAAI,OAAO,EAAU,CAAC;QAI9D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;QAC/D,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACpC,MAAM,IAAI,2BAA2B,CACnC,qEAAqE,CACtE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QACnD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEO,KAAK,CAAC,2BAA2B,CACvC,QAAkB;QAElB,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACP,uBAAuB;QACzB,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,KAAK,CAAC,SAAS,IAAI,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACxE,MAAM,KAAK,GACT,QAAQ,CAAC,MAAM,KAAK,GAAG;YACrB,CAAC,CAAC,IAAI,qBAAqB,CACvB,SAAS;gBACP,CAAC,CAAC,0BAA0B,SAAS,EAAE;gBACvC,CAAC,CAAC,uBAAuB,EAC3B,aAAa,CACd;YACH,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QACnD,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YACpD,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC9B,MAAc,EACd,IAA6B,EAC7B,MAAoB;QAEpB,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE;gBAC7B,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;oBACtC,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC1B,MAAM;aACP,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,UAAU,GACd,KAAK,YAAY,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACtE,IACE,CAAC,CAAC,KAAK,YAAY,aAAa,CAAC;gBACjC,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAChC,CAAC;gBACD,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC9C,CAAC;YACD,MAAM,UAAU,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,MAAM,MAAM,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAC;QACzE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,CAAC,UAAU,CAAC,OAAoB;QACpC,IAAI,CAAC;YACH,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;gBAC7B,KAAK,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;gBACzC,OAAO;YACT,CAAC;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,+BAA+B,CAAC,OAAO,CAAC,CAAC;YAC3D,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAC3D,OAAO,EACP,6BAA6B,EAC7B,IAAI,CACL,CAAC;YACF,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAG7B,CAAC;YACJ,KAAK,CAAC,CAAC,IAAI,CAAC,4BAA4B,CACtC,MAAM,EACN,gBAAgB,EAChB,OAAO,EACP,aAAa,CACd,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,aAAa;gBAAE,MAAM,KAAK,CAAC;YAChD,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,CAAC,mBAAmB,CAChC,OAAoB;QAEpB,MAAM,IAAI,GAAG,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAC3D,OAAO,EACP,sBAAsB,EACtB,IAAI,CACL,CAAC;QAEF,KAAK,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;IACrE,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAC5B,OAAoB,EACpB,OAA0B,EAC1B,IAA6B;QAK7B,MAAM,UAAU,GAA0B;YACxC,aAAa,EAAE,CAAC;YAChB,iBAAiB,EAAE,CAAC;YACpB,SAAS,EAAE,eAAe;SAC3B,CAAC;QACF,IAAI,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,MAAM,SAAS,CAC9B,GAAG,EAAE;YACH,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,aAAa,CAAE,CAAC;YAClD,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAC9C,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/D,CAAC,EACD,IAAI,CAAC,yBAAyB,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAC7D,CAAC;QAEF,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IACnC,CAAC;IAEO,yBAAyB,CAC/B,OAAoB,EACpB,OAA0B,EAC1B,KAA4B;QAE5B,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,IAAI,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CACjC,OAAO,EACP,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,EACxC,IAAI,CAAC,iBAAiB,EACtB,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAE,CAAC,CAC3D,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;QAEjC,OAAO;YACL,GAAG,IAAI;YACP,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE;gBACrB,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC3D,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,IACE,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;oBACnC,KAAK,CAAC,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EACxC,CAAC;oBACD,KAAK,CAAC,SAAS,GAAG,mBAAmB,CAAC;oBACtC,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,KAAK,CAAC,SAAS,GAAG,eAAe,CAAC;gBAClC,OAAO,KAAK,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;YACrD,CAAC;YACD,iBAAiB,EAAE,GAAG,EAAE,CACtB,KAAK,CAAC,SAAS,KAAK,mBAAmB;gBACrC,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,KAAK,CAAC,iBAAiB;YAC7B,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE;gBACnB,WAAW,EAAE,CAAC,OAAO,CAAC,CAAC;gBACvB,IAAI,KAAK,CAAC,SAAS,KAAK,mBAAmB,EAAE,CAAC;oBAC5C,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC;gBAC3B,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC;oBACxB,KAAK,CAAC,iBAAiB,IAAI,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;IAEO,uBAAuB,CAAC,KAAc;QAC5C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;YAChD,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC;YACxC,CAAC,CAAC,KAAK,CAAC;IACZ,CAAC;IAEO,cAAc,CAAC,KAAc;QACnC,OAAO,CACL,KAAK,YAAY,KAAK;YACtB,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY;gBAC1B,KAAK,CAAC,OAAO,KAAK,mBAAmB;gBACrC,CAAC,KAAK,YAAY,aAAa;oBAC7B,KAAK,CAAC,aAAa,EAAE,IAAI,KAAK,YAAY,CAAC,CAAC,CACjD,CAAC;IACJ,CAAC;IAEO,mBAAmB,CAAC,aAAqB;QAK/C,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,IAAI,CAAC,CAAC;QAC5D,OAAO;YACL,mEAAmE;YACnE,wEAAwE;YACxE,UAAU,EAAE,CAAC,iBAAiB,GAAG,CAAC,CAAC,GAAG,aAAa,GAAG,CAAC;YACvD,mBAAmB,EACjB,CAAC,IAAI,CAAC,WAAW,EAAE,mBAAmB,IAAI,CAAC,CAAC,GAAG,aAAa;YAC9D,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,KAAK,SAAS;gBAC7C,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;gBAC/C,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC;IAEO,gBAAgB,CAAC,MAAc;QACrC,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC;YACvC,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,kBAAkB,CAAC;QACvB,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;YACzC,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;gBAC5B,CAAC,CAAC,WAAW;gBACb,CAAC,CAAC,QAAQ,CAAC;QACf,OAAO,GAAG,GAAG,IAAI,MAAM,EAAE,CAAC;IAC5B,CAAC;IAEO,0BAA0B,CAChC,OAAoB;QAEpB,MAAM,IAAI,GAA4B;YACpC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK;YAClC,KAAK,EAAE,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,QAAQ,CAAC;YAC1D,MAAM,EAAE,IAAI;SACb,CAAC;QAEF,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,4BAA4B,CAClC,QAAuB;QAEvB,MAAM,KAAK,GAA8B,EAAE,CAAC;QAE5C,KAAK,MAAM,GAAG,IAAI,wBAAwB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrD,IAAI,CAAC,2BAA2B,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,2BAA2B,CACjC,GAAgB,EAChB,KAAgC;QAEhC,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC;YAC3D,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACxB,IAAI,CAAC,0BAA0B,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC7B,IAAI,CAAC,+BAA+B,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACjD,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YAC1C,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,sBAAsB;gBAC5B,OAAO,EAAE,GAAG,CAAC,UAAU;gBACvB,MAAM,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE;aAC1B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,0BAA0B,CAChC,GAAgB,EAChB,KAAgC;QAEhC,MAAM,OAAO,GAA8B,EAAE,CAAC;QAC9C,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,MAAM;YACZ,OAAO,EACL,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;SACpE,CAAC,CAAC;IACL,CAAC;IAEO,+BAA+B,CACrC,GAAgB,EAChB,KAAgC;QAEhC,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YACrC,MAAM,MAAM,GACV,QAAQ,CAAC,EAAE,IAAI,QAAQ,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YAClE,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,eAAe;gBACrB,EAAE,EAAE,MAAM;gBACV,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI;gBAC5B,SAAS,EAAE,sBAAsB,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAC9D,MAAM,EAAE,WAAW;aACpB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,CAAC,sBAAsB,CACnC,MAA+C,EAC/C,OAAoB,EACpB,aAAqB;QAErB,MAAM,KAAK,GAA4B;YACrC,0BAA0B,EAAE,IAAI,GAAG,EAAE;YACrC,eAAe,EAAE,KAAK;SACvB,CAAC;QACF,IAAI,UAAU,GAAe,UAAU,CAAC;QACxC,IAAI,iBAAqC,CAAC;QAC1C,MAAM,gBAAgB,GAAG,EAAE,wBAAwB,EAAE,KAAK,EAAE,CAAC;QAE7D,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,MAAM,MAAM,GAAG,IAAI,CAAC,wBAAwB,CAC1C,IAAI,EACJ,KAAK,EACL,OAAO,EACP,aAAa,EACb,gBAAgB,CACjB,CAAC;YACF,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACtB,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;gBAC/B,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;YAC/C,CAAC;YACD,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;QACvB,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAC5D,CAAC;IAEO,+BAA+B,CACrC,OAAoB;QAEpB,OAAO,oCAAoC,CAAC;YAC1C,OAAO;YACP,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC;YACzD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;SACnD,CAAC,CAAC;IACL,CAAC;IAEO,iBAAiB,CACvB,QAAkB;QAElB,OAAO,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC;IAC5C,CAAC;IAEO,KAAK,CAAC,CAAC,4BAA4B,CACzC,MAA+C,EAC/C,gBAA8D,EAC9D,OAAoB,EACpB,aAAqB;QAErB,KAAK,CAAC,CAAC,kCAAkC,CAAC,MAAM,EAAE,gBAAgB,EAAE;YAClE,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,OAAO;YACP,aAAa;SACd,CAAC,CAAC;IACL,CAAC;IAEO,yBAAyB,CAC/B,MAA0B,EAC1B,eAAwB;QAExB,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;YAC5B,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;YAClD,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,4BAA4B,CAClC,QAA+B;QAE/B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;QACnE,MAAM,SAAS,GAAmB;YAChC;gBACE,EAAE,EAAE,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,EAAE;gBACnC,QAAQ,EAAE;oBACR,IAAI;oBACJ,SAAS,EAAE,kCAAkC,CAAC,UAAU,CAAC;iBAC1D;aACF;SACF,CAAC;QAEF,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;IAC3C,CAAC;IAEO,wBAAwB,CAC9B,IAAY,EACZ,KAA8B,EAC9B,OAAoB,EACpB,aAAqB,EACrB,gBAAuD;QAEvD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACxB,CAAC;QAED,MAAM,KAAK,GAAG,cAAc,CAA0B,IAAI,CAAC,CAAC;QAC5D,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;YACjB,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACxB,CAAC;QAED,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAC;QAE5E,OAAO,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC;IAEO,qBAAqB,CAC3B,KAA8B,EAC9B,OAAoB,EACpB,aAAqB,EACrB,KAA4C;QAE5C,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,yBAAyB,CAAC;YACxB,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,OAAO;YACP,aAAa;YACb,UAAU,EAAE,QAAQ,CAAC,EAAE;YACvB,WAAW,EAAE,QAAQ,CAAC,KAAK;YAC3B,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,uBAAuB,EAAE,CAAC,KAAK,CAAC,wBAAwB;SACzD,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,KAAK;YAAE,KAAK,CAAC,wBAAwB,GAAG,IAAI,CAAC;IAC3E,CAAC;IAED,qCAAqC;IAC7B,0BAA0B,CAChC,KAA8B,EAC9B,KAA8B;QAE9B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,uCAAuC,CAAC;YAC7C,KAAK,+BAA+B;gBAClC,OAAO,IAAI,CAAC,6BAA6B,CAAC,KAAK,CAAC,CAAC;YACnD,KAAK,4BAA4B;gBAC/B,OAAO,IAAI,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC;YACpD,KAAK,4BAA4B;gBAC/B,OAAO,IAAI,CAAC,8BAA8B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC3D,KAAK,wCAAwC;gBAC3C,OAAO,IAAI,CAAC,yCAAyC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACtE,KAAK,2BAA2B;gBAC9B,OAAO,IAAI,CAAC,6BAA6B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC1D,KAAK,oBAAoB,CAAC;YAC1B,KAAK,eAAe,CAAC;YACrB,KAAK,qBAAqB;gBACxB,OAAO,IAAI,CAAC,4BAA4B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACzD,KAAK,iBAAiB;gBACpB,OAAO;oBACL,MAAM,EAAE,EAAE;oBACV,UAAU,EAAE,IAAI,CAAC,yBAAyB,CAAC,QAAQ,EAAE,KAAK,CAAC;iBAC5D,CAAC;YACJ;gBACE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAEO,6BAA6B,CACnC,KAA8B;QAE9B,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACjB,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACxB,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;IACtE,CAAC;IAEO,8BAA8B,CACpC,KAA8B;QAE9B,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACjB,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACxB,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;IACtE,CAAC;IAEO,8BAA8B,CACpC,KAA8B,EAC9B,KAA8B;QAE9B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAI,IAAI,EAAE,IAAI,KAAK,eAAe,EAAE,CAAC;YACnC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACxB,CAAC;QAED,MAAM,WAAW,GAAG,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;QAC5C,KAAK,CAAC,0BAA0B,CAAC,GAAG,CAAC,WAAW,EAAE;YAChD,EAAE,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,EAAE;YAC3B,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;YACrB,UAAU,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;SACjC,CAAC,CAAC;QACH,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACxB,CAAC;IAEO,yCAAyC,CAC/C,KAA8B,EAC9B,KAA8B;QAE9B,MAAM,WAAW,GAAG,KAAK,CAAC,0BAA0B,CAAC,GAAG,CACtD,KAAK,CAAC,YAAY,IAAI,CAAC,CACxB,CAAC;QACF,IAAI,WAAW,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC/B,WAAW,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC;QACxC,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACxB,CAAC;IAED,qCAAqC;IAC7B,6BAA6B,CACnC,KAA8B,EAC9B,KAA8B;QAE9B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAI,IAAI,EAAE,IAAI,KAAK,eAAe,EAAE,CAAC;YACnC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACxB,CAAC;QAED,MAAM,WAAW,GAAG,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;QAC5C,MAAM,WAAW,GAAG,KAAK,CAAC,0BAA0B,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACtE,MAAM,cAAc,GAAG,IAAI,CAAC,4BAA4B,CAAC;YACvD,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,WAAW,EAAE,EAAE;YACxC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,WAAW,EAAE,IAAI;YACpC,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,WAAW,EAAE,UAAU;SACrD,CAAC,CAAC;QACH,KAAK,CAAC,0BAA0B,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACrD,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACxB,CAAC;QAED,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC;QAC7B,OAAO,EAAE,MAAM,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC;IACtC,CAAC;IAEO,4BAA4B,CAClC,KAA8B,EAC9B,KAA8B;QAE9B,MAAM,MAAM,GACV,KAAK,CAAC,IAAI,KAAK,qBAAqB;YAClC,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC7B,OAAO;YACL,MAAM,EAAE,EAAE;YACV,UAAU,EAAE,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,KAAK,CAAC,eAAe,CAAC;YACzE,iBAAiB,EAAE,MAAM;SAC1B,CAAC;IACJ,CAAC;IAES,cAAc,CACtB,KAAc,EACd,QAAmB,EACnB,aAAsB;QAEtB,OAAO,IAAI,CAAC,4BAA4B,CAAC,KAAK,EAAE,QAAQ,EAAE;YACxD,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,qBAAqB,EAAE,qBAAqB;YAC5C,gBAAgB,EAAE,yBAAyB;YAC3C,mBAAmB,EAAE,mBAAmB;YACxC,sBAAsB,EAAE,8BAA8B;YACtD,oBAAoB,EAAE,oBAAoB;SAC3C,CAAC,CAAC;IACL,CAAC;CACF"}
package/dist/trace.d.ts CHANGED
@@ -21,6 +21,25 @@ interface ProviderTraceEventBase {
21
21
  readonly requestedModel: string;
22
22
  readonly trace: ProviderTraceContext;
23
23
  }
24
+ export interface ProviderTokenUsage {
25
+ readonly inputTokens?: number;
26
+ readonly outputTokens?: number;
27
+ readonly cacheReadInputTokens?: number;
28
+ readonly cacheWriteInputTokens?: number;
29
+ /** Included in outputTokens when the provider documents it that way. */
30
+ readonly reasoningTokens?: number;
31
+ readonly totalTokens?: number;
32
+ }
33
+ export interface ProviderReportedCost {
34
+ readonly amount: number;
35
+ readonly currency?: string;
36
+ }
37
+ export type ProviderUsageAvailability = "reported" | "partial" | "unavailable";
38
+ interface ProviderAttemptIdentity {
39
+ readonly attemptId: string;
40
+ readonly attemptNumber: number;
41
+ readonly endpointClass?: string;
42
+ }
24
43
  export type ProviderTraceEvent = (ProviderTraceEventBase & {
25
44
  readonly type: "provider_request_started";
26
45
  readonly messageCount: number;
@@ -37,26 +56,43 @@ export type ProviderTraceEvent = (ProviderTraceEventBase & {
37
56
  readonly message: string;
38
57
  }) | (ProviderTraceEventBase & {
39
58
  readonly type: "provider_attempt_started";
40
- readonly attemptId: string;
41
- readonly attemptNumber: number;
42
- }) | (ProviderTraceEventBase & {
59
+ } & ProviderAttemptIdentity) | (ProviderTraceEventBase & {
43
60
  readonly type: "provider_attempt_connected";
44
- readonly attemptId: string;
45
- readonly attemptNumber: number;
46
61
  readonly durationMs: number;
47
- }) | (ProviderTraceEventBase & {
62
+ } & ProviderAttemptIdentity) | (ProviderTraceEventBase & {
48
63
  readonly type: "provider_attempt_failed";
49
- readonly attemptId: string;
50
- readonly attemptNumber: number;
51
64
  readonly durationMs: number;
52
65
  readonly errorName: string;
53
66
  readonly message: string;
54
- }) | (ProviderTraceEventBase & {
67
+ } & ProviderAttemptIdentity) | (ProviderTraceEventBase & {
55
68
  readonly type: "provider_retry_wait";
56
- readonly attemptId: string;
57
- readonly attemptNumber: number;
58
69
  readonly delayMs: number;
59
70
  readonly reason: string;
71
+ } & ProviderAttemptIdentity) | (ProviderTraceEventBase & {
72
+ readonly type: "provider_attempt_first_output";
73
+ readonly durationMs: number;
74
+ readonly outputType: "assistant_text" | "thinking" | "tool_call";
75
+ } & ProviderAttemptIdentity) | (ProviderTraceEventBase & {
76
+ readonly type: "provider_attempt_completed";
77
+ readonly durationMs: number;
78
+ readonly stopReason?: StopReason;
79
+ readonly rawProviderReason?: string;
80
+ } & ProviderAttemptIdentity) | (ProviderTraceEventBase & {
81
+ readonly type: "provider_response_metadata";
82
+ readonly attemptId?: string;
83
+ readonly attemptNumber?: number;
84
+ readonly endpointClass?: string;
85
+ readonly upstreamRequestId?: string;
86
+ readonly actualModel?: string;
87
+ }) | (ProviderTraceEventBase & {
88
+ readonly type: "provider_usage_reported";
89
+ readonly attemptId?: string;
90
+ readonly attemptNumber?: number;
91
+ readonly endpointClass?: string;
92
+ readonly availability: ProviderUsageAvailability;
93
+ readonly reportKind?: "delta" | "cumulative";
94
+ readonly usage?: ProviderTokenUsage;
95
+ readonly providerReportedCost?: ProviderReportedCost;
60
96
  }) | (ProviderTraceEventBase & {
61
97
  readonly type: "provider_request_mutated";
62
98
  readonly mutation: "tools_removed";
@@ -67,7 +103,24 @@ export type ProviderTraceObserver = (event: ProviderTraceEvent) => void;
67
103
  export declare function createProviderAttemptTraceHooks(options: {
68
104
  readonly provider: string;
69
105
  readonly request: ChatRequest;
106
+ readonly endpointClass?: string | ((attemptNumber: number) => string);
70
107
  }): Pick<import("./internal/withRetry.js").WithRetryOptions, "onAttemptStart" | "onAttemptSuccess" | "onAttemptFailure" | "onRetry">;
108
+ export declare function emitProviderResponseMetadata(options: {
109
+ readonly provider: string;
110
+ readonly request: ChatRequest;
111
+ readonly upstreamRequestId?: string;
112
+ readonly actualModel?: string;
113
+ readonly endpointClass?: string;
114
+ }): void;
115
+ export declare function emitProviderUsage(options: {
116
+ readonly provider: string;
117
+ readonly request: ChatRequest;
118
+ readonly availability: Exclude<ProviderUsageAvailability, "unavailable">;
119
+ readonly reportKind: "delta" | "cumulative";
120
+ readonly usage: ProviderTokenUsage;
121
+ readonly providerReportedCost?: ProviderReportedCost;
122
+ readonly endpointClass?: string;
123
+ }): void;
71
124
  export declare function emitProviderRequestMutation(options: {
72
125
  readonly provider: string;
73
126
  readonly request: ChatRequest;
@@ -1 +1 @@
1
- {"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../src/trace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../src/trace.ts"],"names":[],"mappings":"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"}