@frugalco/frugal-sdk-node 0.3.0 → 0.5.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 (59) hide show
  1. package/README.md +73 -12
  2. package/dist/block-hash-lru.d.ts +8 -1
  3. package/dist/block-hash-lru.d.ts.map +1 -1
  4. package/dist/block-hash-lru.js +13 -4
  5. package/dist/block-hash-lru.js.map +1 -1
  6. package/dist/config.d.ts +33 -0
  7. package/dist/config.d.ts.map +1 -1
  8. package/dist/config.js +218 -27
  9. package/dist/config.js.map +1 -1
  10. package/dist/duplicate-filter.d.ts +46 -0
  11. package/dist/duplicate-filter.d.ts.map +1 -0
  12. package/dist/duplicate-filter.js +168 -0
  13. package/dist/duplicate-filter.js.map +1 -0
  14. package/dist/instrument.d.ts +33 -0
  15. package/dist/instrument.d.ts.map +1 -1
  16. package/dist/instrument.js +277 -21
  17. package/dist/instrument.js.map +1 -1
  18. package/dist/model-cap.d.ts +24 -0
  19. package/dist/model-cap.d.ts.map +1 -0
  20. package/dist/model-cap.js +72 -0
  21. package/dist/model-cap.js.map +1 -0
  22. package/dist/otel.d.ts +32 -3
  23. package/dist/otel.d.ts.map +1 -1
  24. package/dist/otel.js +203 -7
  25. package/dist/otel.js.map +1 -1
  26. package/dist/prompt-analyzer.d.ts +12 -1
  27. package/dist/prompt-analyzer.d.ts.map +1 -1
  28. package/dist/prompt-analyzer.js +185 -14
  29. package/dist/prompt-analyzer.js.map +1 -1
  30. package/dist/providers.d.ts +1 -0
  31. package/dist/providers.d.ts.map +1 -1
  32. package/dist/providers.js +4 -1
  33. package/dist/providers.js.map +1 -1
  34. package/dist/semconv.d.ts +14 -0
  35. package/dist/semconv.d.ts.map +1 -1
  36. package/dist/semconv.js +38 -2
  37. package/dist/semconv.js.map +1 -1
  38. package/dist/streams.d.ts.map +1 -1
  39. package/dist/streams.js +15 -2
  40. package/dist/streams.js.map +1 -1
  41. package/dist/track.d.ts +18 -0
  42. package/dist/track.d.ts.map +1 -1
  43. package/dist/track.js +4 -1
  44. package/dist/track.js.map +1 -1
  45. package/dist/wrappers/anthropic.d.ts.map +1 -1
  46. package/dist/wrappers/anthropic.js +9 -1
  47. package/dist/wrappers/anthropic.js.map +1 -1
  48. package/dist/wrappers/batch.d.ts +11 -0
  49. package/dist/wrappers/batch.d.ts.map +1 -0
  50. package/dist/wrappers/batch.js +338 -0
  51. package/dist/wrappers/batch.js.map +1 -0
  52. package/dist/wrappers/openai.d.ts.map +1 -1
  53. package/dist/wrappers/openai.js +37 -30
  54. package/dist/wrappers/openai.js.map +1 -1
  55. package/dist/wrappers/patching.d.ts +10 -0
  56. package/dist/wrappers/patching.d.ts.map +1 -0
  57. package/dist/wrappers/patching.js +38 -0
  58. package/dist/wrappers/patching.js.map +1 -0
  59. package/package.json +1 -1
@@ -0,0 +1,338 @@
1
+ // Provider batch-API instrumentation (OpenAI Batch API, Anthropic Message
2
+ // Batches). Emits the frugal.batched="true" side of the metric contract:
3
+ //
4
+ // - Submission (`batches.create` / `messages.batches.create`): the fanned-out
5
+ // request volume lands on frugal.gen_ai.calls. Anthropic submissions carry
6
+ // the requests array, so counts (and models) are exact per request; OpenAI
7
+ // submissions reference a pre-uploaded JSONL file the SDK never sees, so the
8
+ // count falls back to the server-reported request_counts.total when present,
9
+ // else one point per submission — a deliberate floor, never an overcount.
10
+ // - Results (Anthropic `messages.batches.results()` only): per-entry token
11
+ // usage, attributed to the call site that SUBMITTED the batch when the
12
+ // submission happened in this process (a bounded id → caller map), else to
13
+ // the results call site. OpenAI batch results live in an output file read
14
+ // through the generic files API, which is not intercepted.
15
+ //
16
+ // Submission errors ride the normal CallEmitter error path (calls + errors
17
+ // with batched=true), so a failing batch pipeline is as visible as a failing
18
+ // sync one.
19
+ import { resolveCaller } from "../caller.js";
20
+ import { emitLogOnce } from "../debug.js";
21
+ import { recordBatchedCalls, recordBatchedUsage, startCall, } from "../instrument.js";
22
+ import { getInstruments } from "../otel.js";
23
+ import { FRUGAL_CUSTOMER_ID, FRUGAL_PROJECT_ID, OP_CHAT, OP_EMBEDDINGS, OP_OTHER, OP_TEXT_COMPLETION, } from "../semconv.js";
24
+ import { installWrapped, resolveChain, unwrappedMethod } from "./patching.js";
25
+ // --- submission-site memory --------------------------------------------------
26
+ //
27
+ // Results retrieval usually runs far from the submission (a poll loop, another
28
+ // module), but the spend belongs to the site that decided to batch. Remember
29
+ // the resolved submission caller per batch id, bounded FIFO so a long-lived
30
+ // process submitting many batches cannot grow it without limit. A miss (other
31
+ // process, eviction, restart) falls back to the results call site.
32
+ const MAX_REMEMBERED_BATCHES = 1024;
33
+ const batchCallers = new Map();
34
+ function rememberBatchCaller(batchId, caller) {
35
+ if (batchCallers.size >= MAX_REMEMBERED_BATCHES && !batchCallers.has(batchId)) {
36
+ const oldest = batchCallers.keys().next();
37
+ if (!oldest.done)
38
+ batchCallers.delete(oldest.value);
39
+ }
40
+ batchCallers.set(batchId, caller);
41
+ }
42
+ function lookupBatchCaller(batchId) {
43
+ return batchCallers.get(batchId);
44
+ }
45
+ /** Test-only. */
46
+ export function resetBatchCallersForTests() {
47
+ batchCallers.clear();
48
+ }
49
+ // --- OpenAI -------------------------------------------------------------------
50
+ // The submission names the target endpoint; map it to the operation vocabulary
51
+ // so batched embeddings don't masquerade as chat. Unknown endpoints coerce to
52
+ // the "other" sentinel rather than polluting a real series.
53
+ const OPENAI_ENDPOINT_OPERATIONS = {
54
+ "/v1/chat/completions": OP_CHAT,
55
+ "/v1/completions": OP_TEXT_COMPLETION,
56
+ "/v1/embeddings": OP_EMBEDDINGS,
57
+ "/v1/responses": OP_CHAT,
58
+ };
59
+ function openAIEndpointOperation(endpoint) {
60
+ if (typeof endpoint !== "string")
61
+ return OP_OTHER;
62
+ return OPENAI_ENDPOINT_OPERATIONS[endpoint] ?? OP_OTHER;
63
+ }
64
+ export function patchOpenAIBatchCreate(client, opts) {
65
+ // Older openai clients have no `batches` surface — nothing to do.
66
+ const target = resolveChain(client, ["batches"]);
67
+ if (!target)
68
+ return;
69
+ const original = unwrappedMethod(target, "create");
70
+ if (!original)
71
+ return;
72
+ const bound = original.bind(target);
73
+ const wrapped = function (...args) {
74
+ let emit;
75
+ let operation;
76
+ try {
77
+ const params = (args[0] ?? {});
78
+ operation = openAIEndpointOperation(params.endpoint);
79
+ const ctx = {
80
+ system: opts.system,
81
+ operation,
82
+ // The per-request models live in the uploaded JSONL, not the
83
+ // submission params.
84
+ requestModel: "<unknown>",
85
+ skipPackageDirs: opts.skipDirs,
86
+ batched: true,
87
+ };
88
+ emit = startCall(opts.config, ctx);
89
+ }
90
+ catch (err) {
91
+ recordInternalError("setup_failed", err, opts.config);
92
+ return bound(...args);
93
+ }
94
+ return finishSubmission(bound, args, emit, (awaited) => {
95
+ const total = openAIRequestTotal(awaited);
96
+ recordBatchedCalls(opts.config, { system: opts.system, operation }, emit.caller, [{ requestModel: "<unknown>", count: total ?? 1 }]);
97
+ });
98
+ };
99
+ installWrapped(target, "create", wrapped);
100
+ }
101
+ function openAIRequestTotal(response) {
102
+ const counts = attr(response, "request_counts");
103
+ const total = attr(counts, "total");
104
+ return typeof total === "number" && total > 0 ? total : null;
105
+ }
106
+ // --- Anthropic ------------------------------------------------------------------
107
+ export function patchAnthropicBatches(client, opts) {
108
+ const target = resolveChain(client, ["messages", "batches"]);
109
+ if (!target)
110
+ return;
111
+ patchAnthropicBatchCreate(target, opts);
112
+ patchAnthropicBatchResults(target, opts);
113
+ }
114
+ function patchAnthropicBatchCreate(target, opts) {
115
+ const original = unwrappedMethod(target, "create");
116
+ if (!original)
117
+ return;
118
+ const bound = original.bind(target);
119
+ const wrapped = function (...args) {
120
+ let emit;
121
+ let groups;
122
+ try {
123
+ const params = (args[0] ?? {});
124
+ groups = anthropicRequestGroups(params.requests);
125
+ const ctx = {
126
+ system: opts.system,
127
+ operation: OP_CHAT,
128
+ requestModel: groups[0]?.requestModel ?? "<unknown>",
129
+ skipPackageDirs: opts.skipDirs,
130
+ batched: true,
131
+ };
132
+ emit = startCall(opts.config, ctx);
133
+ }
134
+ catch (err) {
135
+ recordInternalError("setup_failed", err, opts.config);
136
+ return bound(...args);
137
+ }
138
+ return finishSubmission(bound, args, emit, (awaited) => {
139
+ recordBatchedCalls(opts.config, { system: opts.system, operation: OP_CHAT }, emit.caller, groups);
140
+ const batchId = attr(awaited, "id");
141
+ if (typeof batchId === "string" && batchId) {
142
+ rememberBatchCaller(batchId, emit.caller);
143
+ }
144
+ });
145
+ };
146
+ installWrapped(target, "create", wrapped);
147
+ }
148
+ function anthropicRequestGroups(requests) {
149
+ if (!Array.isArray(requests) || requests.length === 0) {
150
+ return [{ requestModel: "<unknown>", count: 1 }];
151
+ }
152
+ const byModel = new Map();
153
+ for (const request of requests) {
154
+ const model = attr(attr(request, "params"), "model");
155
+ const key = typeof model === "string" && model ? model : "<unknown>";
156
+ byModel.set(key, (byModel.get(key) ?? 0) + 1);
157
+ }
158
+ return [...byModel.entries()].map(([requestModel, count]) => ({
159
+ requestModel,
160
+ count,
161
+ }));
162
+ }
163
+ function patchAnthropicBatchResults(target, opts) {
164
+ const original = unwrappedMethod(target, "results");
165
+ if (!original)
166
+ return;
167
+ const bound = original.bind(target);
168
+ const wrapped = function (...args) {
169
+ // Attribution only — the underlying call must pass through untouched on
170
+ // any internal failure, and results errors are the customer's to handle
171
+ // (no calls were counted here, so nothing needs an error metric).
172
+ let caller = null;
173
+ try {
174
+ const batchId = typeof args[0] === "string" ? args[0] : null;
175
+ caller =
176
+ (batchId ? lookupBatchCaller(batchId) : undefined) ??
177
+ resolveCaller({
178
+ skipPackageDirs: opts.skipDirs,
179
+ blockList: opts.config.pathBlockList,
180
+ repoRoot: opts.config.repoRoot,
181
+ maxCallSites: opts.config.maxCallSites,
182
+ skipFrames: 1,
183
+ });
184
+ }
185
+ catch {
186
+ caller = null;
187
+ }
188
+ const result = bound(...args);
189
+ if (caller === null)
190
+ return result;
191
+ const resolved = caller;
192
+ if (isPromiseLike(result)) {
193
+ return (async () => {
194
+ const awaited = await result;
195
+ return teeResults(awaited, opts, resolved);
196
+ })();
197
+ }
198
+ return teeResults(result, opts, resolved);
199
+ };
200
+ installWrapped(target, "results", wrapped);
201
+ }
202
+ // Tease off the async iterator of the results decoder and record each
203
+ // succeeded entry's usage as it is consumed — the decoder streams, so this is
204
+ // the only pass over the data. Everything else on the object passes through.
205
+ function teeResults(decoder, opts, caller) {
206
+ try {
207
+ if (decoder === null ||
208
+ typeof decoder !== "object" ||
209
+ typeof decoder[Symbol.asyncIterator] !==
210
+ "function") {
211
+ return decoder;
212
+ }
213
+ const iterable = decoder;
214
+ return new Proxy(iterable, {
215
+ get(proxyTarget, prop, receiver) {
216
+ if (prop === Symbol.asyncIterator) {
217
+ return () => teeIterator(iterable, opts, caller);
218
+ }
219
+ return Reflect.get(proxyTarget, prop, receiver);
220
+ },
221
+ });
222
+ }
223
+ catch (err) {
224
+ recordInternalError("stream_proxy_failed", err, opts.config);
225
+ return decoder;
226
+ }
227
+ }
228
+ async function* teeIterator(iterable, opts, caller) {
229
+ for await (const entry of iterable) {
230
+ try {
231
+ recordResultEntry(entry, opts, caller);
232
+ }
233
+ catch (err) {
234
+ recordInternalError("emission", err, opts.config);
235
+ }
236
+ yield entry;
237
+ }
238
+ }
239
+ function recordResultEntry(entry, opts, caller) {
240
+ const result = attr(entry, "result");
241
+ if (attr(result, "type") !== "succeeded")
242
+ return;
243
+ const message = attr(result, "message");
244
+ if (!message)
245
+ return;
246
+ const usage = attr(message, "usage");
247
+ const model = attr(message, "model");
248
+ const requestModel = typeof model === "string" && model ? model : "<unknown>";
249
+ recordBatchedUsage(opts.config, { system: opts.system, operation: OP_CHAT }, caller, requestModel, {
250
+ responseModel: typeof model === "string" ? model : null,
251
+ inputTokens: asNumber(attr(usage, "input_tokens")),
252
+ outputTokens: asNumber(attr(usage, "output_tokens")),
253
+ cacheReadTokens: asNumber(attr(usage, "cache_read_input_tokens")),
254
+ cacheWriteTokens: asNumber(attr(usage, "cache_creation_input_tokens")),
255
+ });
256
+ }
257
+ // --- shared plumbing ----------------------------------------------------------
258
+ // Run the bound submission call, wiring the emitter's error path and invoking
259
+ // `onSuccess` (guarded) with the awaited response. emit.success is deliberately
260
+ // never called: the submission's request volume is recorded via
261
+ // recordBatchedCalls, and a success() here would double-count one call.
262
+ function finishSubmission(bound, args, emit, onSuccess) {
263
+ let result;
264
+ try {
265
+ result = bound(...args);
266
+ }
267
+ catch (err) {
268
+ safe(() => emit.error(err));
269
+ throw err;
270
+ }
271
+ if (isPromiseLike(result)) {
272
+ return (async () => {
273
+ let awaited;
274
+ try {
275
+ awaited = await result;
276
+ }
277
+ catch (err) {
278
+ safe(() => emit.error(err));
279
+ throw err;
280
+ }
281
+ safe(() => onSuccess(awaited));
282
+ return awaited;
283
+ })();
284
+ }
285
+ safe(() => onSuccess(result));
286
+ return result;
287
+ }
288
+ function safe(fn) {
289
+ try {
290
+ fn();
291
+ }
292
+ catch (err) {
293
+ recordInternalError("emission", err, null);
294
+ }
295
+ }
296
+ function recordInternalError(stage, err, config) {
297
+ if (stage === "setup_failed") {
298
+ emitLogOnce("batch_setup_failed", "error", `batch wrapper setup failed: ${errorName(err)}`);
299
+ }
300
+ try {
301
+ if (!config)
302
+ return;
303
+ const instruments = getInstruments(config);
304
+ instruments.internalErrors.add(1, {
305
+ ...(config.customerId ? { [FRUGAL_CUSTOMER_ID]: config.customerId } : {}),
306
+ [FRUGAL_PROJECT_ID]: config.projectId,
307
+ "frugal.internal_error.stage": stage,
308
+ "frugal.internal_error.type": errorName(err),
309
+ });
310
+ }
311
+ catch {
312
+ // swallow — nothing left to try
313
+ }
314
+ }
315
+ function errorName(err) {
316
+ if (err && typeof err === "object" && "name" in err && typeof err.name === "string") {
317
+ return err.name;
318
+ }
319
+ if (err instanceof Error)
320
+ return err.constructor.name;
321
+ return "UnknownError";
322
+ }
323
+ function isPromiseLike(value) {
324
+ return (value !== null &&
325
+ typeof value === "object" &&
326
+ typeof value.then === "function");
327
+ }
328
+ function attr(obj, key) {
329
+ if (obj === null || obj === undefined)
330
+ return undefined;
331
+ if (typeof obj !== "object")
332
+ return undefined;
333
+ return obj[key];
334
+ }
335
+ function asNumber(v) {
336
+ return typeof v === "number" ? v : null;
337
+ }
338
+ //# sourceMappingURL=batch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../src/wrappers/batch.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/wrappers/openai.ts"],"names":[],"mappings":"AAoCA,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAyD1C"}
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/wrappers/openai.ts"],"names":[],"mappings":"AA0CA,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CA2D1C"}
@@ -10,7 +10,8 @@ import { getInstruments } from "../otel.js";
10
10
  import { startCall, } from "../instrument.js";
11
11
  import { FRUGAL_CUSTOMER_ID, FRUGAL_PROJECT_ID, OP_CHAT, OP_EMBEDDINGS, OP_TEXT_COMPLETION, SYSTEM_OPENAI, } from "../semconv.js";
12
12
  import { wrapStreamObject } from "../streams.js";
13
- const FRUGAL_MARK = "__frugalWrapped";
13
+ import { patchOpenAIBatchCreate } from "./batch.js";
14
+ import { FRUGAL_MARK, installWrapped, resolveChain, unwrappedMethod, } from "./patching.js";
14
15
  export function wrapOpenAI(client) {
15
16
  const config = loadConfig();
16
17
  if (config === null)
@@ -27,7 +28,7 @@ export function wrapOpenAI(client) {
27
28
  config,
28
29
  usageExtractor: chatUsage,
29
30
  streamHandler: chatStreamEvent,
30
- capturePayload: true,
31
+ capturePayload: captureOpenAIPayload,
31
32
  });
32
33
  patch(c, ["completions"], "create", {
33
34
  operation: OP_TEXT_COMPLETION,
@@ -36,7 +37,7 @@ export function wrapOpenAI(client) {
36
37
  config,
37
38
  usageExtractor: completionUsage,
38
39
  streamHandler: chatStreamEvent,
39
- capturePayload: true,
40
+ capturePayload: captureOpenAIPayload,
40
41
  });
41
42
  patch(c, ["embeddings"], "create", {
42
43
  operation: OP_EMBEDDINGS,
@@ -54,8 +55,10 @@ export function wrapOpenAI(client) {
54
55
  usageExtractor: responsesUsage,
55
56
  streamHandler: responsesStreamEvent,
56
57
  required: false,
57
- capturePayload: true,
58
+ capturePayload: captureResponsesPayload,
58
59
  });
60
+ // Batch API submissions get the frugal.batched="true" side of the contract.
61
+ patchOpenAIBatchCreate(c, { config, system, skipDirs });
59
62
  try {
60
63
  Object.defineProperty(c, FRUGAL_MARK, {
61
64
  value: true,
@@ -88,31 +91,14 @@ function buildSkipDirs() {
88
91
  return dirs;
89
92
  }
90
93
  function patch(client, chain, methodName, opts) {
91
- let target = client;
92
- for (const step of chain) {
93
- if (!target || typeof target !== "object") {
94
- target = undefined;
95
- break;
96
- }
97
- target = target[step];
98
- if (!target)
99
- break;
100
- }
94
+ const target = resolveChain(client, chain);
101
95
  if (!target)
102
96
  return;
103
- const original = target[methodName];
104
- if (typeof original !== "function")
105
- return;
106
- if (original[FRUGAL_MARK])
97
+ const original = unwrappedMethod(target, methodName);
98
+ if (!original)
107
99
  return;
108
100
  const wrapped = makeWrapper(original.bind(target), opts);
109
- wrapped[FRUGAL_MARK] = true;
110
- try {
111
- target[methodName] = wrapped;
112
- }
113
- catch {
114
- // ignore — nothing we can do if the property is non-writable
115
- }
101
+ installWrapped(target, methodName, wrapped);
116
102
  }
117
103
  function makeWrapper(original, opts) {
118
104
  return function wrapped(...args) {
@@ -132,7 +118,7 @@ function makeWrapper(original, opts) {
132
118
  requestModel: typeof params.model === "string" ? params.model : "<unknown>",
133
119
  skipPackageDirs: opts.skipDirs,
134
120
  batched: false,
135
- requestPayload: opts.capturePayload ? captureOpenAIPayload(params) : undefined,
121
+ requestPayload: opts.capturePayload ? opts.capturePayload(params) : undefined,
136
122
  };
137
123
  emit = startCall(opts.config, ctx);
138
124
  }
@@ -231,16 +217,37 @@ function isPromiseLike(value) {
231
217
  function captureOpenAIPayload(params) {
232
218
  const maxTokensRaw = params.max_tokens ?? params.max_completion_tokens;
233
219
  const maxTokens = typeof maxTokensRaw === "number" ? maxTokensRaw : null;
234
- // The Responses API uses `input` instead of `messages`. Treat both as messages
235
- // for analyzer purposes — they share the role/content shape.
236
- const messages = (params.messages ?? params.input);
237
220
  return {
238
- messages,
221
+ messages: params.messages,
239
222
  tools: params.tools,
240
223
  responseFormat: params.response_format,
241
224
  maxTokens,
242
225
  };
243
226
  }
227
+ // The Responses API spells everything differently from chat completions:
228
+ // `input` (array of role/content items OR a bare string), `instructions`
229
+ // (system prompt), `max_output_tokens`, and `text.format` (response_format).
230
+ // Each must be mapped, or two calls differing only in instructions/schema/cap
231
+ // would hash identically and fabricate repeat_seen. A bare-string input is the
232
+ // single-user-message form, so it is captured as exactly that — giving it the
233
+ // same duplicate/history signal as the array form instead of none.
234
+ function captureResponsesPayload(params) {
235
+ const input = params.input;
236
+ const messages = typeof input === "string" ? [{ role: "user", content: input }] : input;
237
+ const format = params.text && typeof params.text === "object"
238
+ ? params.text.format
239
+ : undefined;
240
+ return {
241
+ messages,
242
+ system: params.instructions,
243
+ tools: params.tools,
244
+ responseFormat: format,
245
+ maxTokens: typeof params.max_output_tokens === "number" ? params.max_output_tokens : null,
246
+ previousResponseId: typeof params.previous_response_id === "string"
247
+ ? params.previous_response_id
248
+ : null,
249
+ };
250
+ }
244
251
  // --- usage extractors ------------------------------------------------------
245
252
  function attr(obj, key) {
246
253
  if (obj === null || obj === undefined)
@@ -1 +1 @@
1
- {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/wrappers/openai.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/wrappers/openai.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,EAAE;AACF,8EAA8E;AAC9E,8EAA8E;AAC9E,oEAAoE;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAe,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EACL,SAAS,GAGV,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,OAAO,EACP,aAAa,EACb,kBAAkB,EAClB,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAA2B,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EACL,WAAW,EACX,cAAc,EACd,YAAY,EACZ,eAAe,GAChB,MAAM,eAAe,CAAC;AAWvB,MAAM,UAAU,UAAU,CAAI,MAAS;IACrC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAEnC,MAAM,CAAC,GAAG,MAA8B,CAAC;IACzC,IAAI,CAAC,CAAC,WAAW,CAAC;QAAE,OAAO,MAAM,CAAC;IAElC,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,aAAa,EAAE,CAAC;IAEjC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE;QAC1C,SAAS,EAAE,OAAO;QAClB,MAAM;QACN,QAAQ;QACR,MAAM;QACN,cAAc,EAAE,SAAS;QACzB,aAAa,EAAE,eAAe;QAC9B,cAAc,EAAE,oBAAoB;KACrC,CAAC,CAAC;IACH,KAAK,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE;QAClC,SAAS,EAAE,kBAAkB;QAC7B,MAAM;QACN,QAAQ;QACR,MAAM;QACN,cAAc,EAAE,eAAe;QAC/B,aAAa,EAAE,eAAe;QAC9B,cAAc,EAAE,oBAAoB;KACrC,CAAC,CAAC;IACH,KAAK,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE;QACjC,SAAS,EAAE,aAAa;QACxB,MAAM;QACN,QAAQ;QACR,MAAM;QACN,cAAc,EAAE,cAAc;QAC9B,aAAa,EAAE,IAAI;KACpB,CAAC,CAAC;IACH,KAAK,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE;QAChC,SAAS,EAAE,OAAO;QAClB,MAAM;QACN,QAAQ;QACR,MAAM;QACN,cAAc,EAAE,cAAc;QAC9B,aAAa,EAAE,oBAAoB;QACnC,QAAQ,EAAE,KAAK;QACf,cAAc,EAAE,uBAAuB;KACxC,CAAC,CAAC;IACH,4EAA4E;IAC5E,sBAAsB,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAExD,IAAI,CAAC;QACH,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,WAAW,EAAE;YACpC,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,KAAK;SAClB,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,SAAS;IACX,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CAAC,OAAgB;IACpC,4EAA4E;IAC5E,sDAAsD;IACtD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAS,aAAa;IACpB,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,wEAAwE;IACxE,2EAA2E;IAC3E,2EAA2E;IAC3E,wEAAwE;IACxE,4EAA4E;IAC5E,2EAA2E;IAC3E,4EAA4E;IAC5E,4EAA4E;IAC5E,eAAe;IACf,OAAO,IAAI,CAAC;AACd,CAAC;AAaD,SAAS,KAAK,CACZ,MAAiB,EACjB,KAAwB,EACxB,UAAkB,EAClB,IAAkB;IAElB,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACrD,IAAI,CAAC,QAAQ;QAAE,OAAO;IAEtB,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IACzD,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,WAAW,CAClB,QAAyC,EACzC,IAAkB;IAElB,OAAO,SAAS,OAAO,CAAC,GAAG,IAAe;QACxC,iEAAiE;QACjE,gEAAgE;QAChE,IAAI,IAAkC,CAAC;QACvC,IAAI,SAAkB,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAA4B,CAAC;YAC1D,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACnC,IAAI,SAAS,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;gBAC7C,OAAO,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;YAC3B,CAAC;YACD,MAAM,GAAG,GAAgB;gBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,YAAY,EAAE,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW;gBAC3E,eAAe,EAAE,IAAI,CAAC,QAAQ;gBAC9B,OAAO,EAAE,KAAK;gBACd,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;aAC9E,CAAC;YACF,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,mBAAmB,CAAC,cAAc,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACtD,OAAO,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5B,MAAM,GAAG,CAAC;QACZ,CAAC;QAED,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,KAAK,IAAI,EAAE;gBACjB,IAAI,OAAgB,CAAC;gBACrB,IAAI,CAAC;oBACH,OAAO,GAAG,MAAM,MAAM,CAAC;gBACzB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC5B,MAAM,GAAG,CAAC;gBACZ,CAAC;gBACD,IAAI,SAAS,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;oBAC7C,IAAI,CAAC;wBACH,OAAO,gBAAgB,CACrB,OAA0C,EAC1C,IAAI,EACJ,IAAI,CAAC,aAAa,CACnB,CAAC;oBACJ,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,mBAAmB,CAAC,qBAAqB,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;wBAC7D,OAAO,OAAO,CAAC;oBACjB,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACvD,OAAO,OAAO,CAAC;YACjB,CAAC,CAAC,EAAE,CAAC;QACP,CAAC;QAED,IAAI,SAAS,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;YAC7C,IAAI,CAAC;gBACH,OAAO,gBAAgB,CACrB,MAAyC,EACzC,IAAI,EACJ,IAAI,CAAC,aAAa,CACnB,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,mBAAmB,CAAC,qBAAqB,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC7D,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACtD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,IAAI,CAAC,EAAc;IAC1B,IAAI,CAAC;QACH,EAAE,EAAE,CAAC;IACP,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,mBAAmB,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAC1B,KAAa,EACb,GAAY,EACZ,MAAqB;IAErB,IAAI,KAAK,KAAK,cAAc,EAAE,CAAC;QAC7B,6EAA6E;QAC7E,2DAA2D;QAC3D,WAAW,CACT,qBAAqB,EACrB,OAAO,EACP,gCAAgC,SAAS,CAAC,GAAG,CAAC,EAAE,CACjD,CAAC;IACJ,CAAC;IACD,IAAI,CAAC;QACH,6EAA6E;QAC7E,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QAC3C,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE;YAChC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzE,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,SAAS;YACrC,6BAA6B,EAAE,KAAK;YACpC,4BAA4B,EAAE,SAAS,CAAC,GAAG,CAAC;SAC7C,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,gCAAgC;IAClC,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,GAAY;IAC7B,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpF,OAAO,GAAG,CAAC,IAAI,CAAC;IAClB,CAAC;IACD,IAAI,GAAG,YAAY,KAAK;QAAE,OAAO,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC;IACtD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,CACL,KAAK,KAAK,IAAI;QACd,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAQ,KAA4B,CAAC,IAAI,KAAK,UAAU,CACzD,CAAC;AACJ,CAAC;AAED,6EAA6E;AAE7E,SAAS,oBAAoB,CAAC,MAA+B;IAC3D,MAAM,YAAY,GACf,MAAM,CAAC,UAAsB,IAAK,MAAM,CAAC,qBAAiC,CAAC;IAC9E,MAAM,SAAS,GAAG,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;IACzE,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,cAAc,EAAE,MAAM,CAAC,eAAe;QACtC,SAAS;KACV,CAAC;AACJ,CAAC;AAED,yEAAyE;AACzE,yEAAyE;AACzE,6EAA6E;AAC7E,8EAA8E;AAC9E,+EAA+E;AAC/E,8EAA8E;AAC9E,mEAAmE;AACnE,SAAS,uBAAuB,CAAC,MAA+B;IAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC3B,MAAM,QAAQ,GACZ,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACzE,MAAM,MAAM,GACV,MAAM,CAAC,IAAI,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;QAC5C,CAAC,CAAE,MAAM,CAAC,IAAgC,CAAC,MAAM;QACjD,CAAC,CAAC,SAAS,CAAC;IAChB,OAAO;QACL,QAAQ;QACR,MAAM,EAAE,MAAM,CAAC,YAAY;QAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,cAAc,EAAE,MAAM;QACtB,SAAS,EACP,OAAO,MAAM,CAAC,iBAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI;QAChF,kBAAkB,EAChB,OAAO,MAAM,CAAC,oBAAoB,KAAK,QAAQ;YAC7C,CAAC,CAAC,MAAM,CAAC,oBAAoB;YAC7B,CAAC,CAAC,IAAI;KACX,CAAC;AACJ,CAAC;AAED,8EAA8E;AAE9E,SAAS,IAAI,CAAC,GAAY,EAAE,GAAW;IACrC,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACxD,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC9C,OAAQ,GAA+B,CAAC,GAAG,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,QAAQ,CAAC,CAAU;IAC1B,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1C,CAAC;AAED,SAAS,QAAQ,CAAC,CAAU;IAC1B,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1C,CAAC;AAED,SAAS,SAAS,CAAC,QAAiB;IAClC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,EAAE,2BAA2B,CAAC,CAAC;IAC7D,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;IAC3D,OAAO;QACL,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAChD,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QACnD,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;QACxD,eAAe,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAChE,eAAe,EAAE,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;KAChE,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,QAAiB;IACxC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACtC,OAAO;QACL,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAChD,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QACnD,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;KACzD,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,QAAiB;IACvC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACtC,OAAO;QACL,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAChD,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;KACpD,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,QAAiB;IACvC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;IACtD,OAAO;QACL,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAChD,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QAClD,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QACpD,eAAe,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;QAC/D,eAAe,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;KAC5D,CAAC;AACJ,CAAC;AAED,8EAA8E;AAE9E,SAAS,eAAe,CAAC,KAAc,EAAE,KAAkB;IACzD,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7C,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,aAAa;QAAE,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC;IAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACxC,IAAI,CAAC,UAAU;QAAE,OAAO;IACxB,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAC/D,IAAI,KAAK,KAAK,IAAI;QAAE,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;IAC9C,IAAI,MAAM,KAAK,IAAI;QAAE,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC;IACjD,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,2BAA2B,CAAC,CAAC;IAClE,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC,CAAC;QAClE,IAAI,SAAS,KAAK,IAAI;YAAE,KAAK,CAAC,eAAe,GAAG,SAAS,CAAC;IAC5D,CAAC;IACD,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,EAAE,uBAAuB,CAAC,CAAC;IAChE,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC;QAC9D,IAAI,MAAM,KAAK,IAAI;YAAE,KAAK,CAAC,eAAe,GAAG,MAAM,CAAC;IACtD,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc,EAAE,KAAkB;IAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IACzC,IAAI,CAAC,QAAQ;QAAE,OAAO;IACtB,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAChD,IAAI,KAAK;QAAE,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC;IACvC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC;IACvD,IAAI,KAAK,KAAK,IAAI;QAAE,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;IAC9C,IAAI,MAAM,KAAK,IAAI;QAAE,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC;IACjD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;IACzD,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC,CAAC;QACjE,IAAI,SAAS,KAAK,IAAI;YAAE,KAAK,CAAC,eAAe,GAAG,SAAS,CAAC;IAC5D,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IACvD,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC;QAC1D,IAAI,MAAM,KAAK,IAAI;YAAE,KAAK,CAAC,eAAe,GAAG,MAAM,CAAC;IACtD,CAAC;AACH,CAAC"}
@@ -0,0 +1,10 @@
1
+ export declare const FRUGAL_MARK = "__frugalWrapped";
2
+ type AnyRecord = Record<string, unknown>;
3
+ /** Walk `chain` from `root`, returning the final object or undefined. */
4
+ export declare function resolveChain(root: unknown, chain: readonly string[]): AnyRecord | undefined;
5
+ /** The named method of `target`, or undefined when absent / already wrapped. */
6
+ export declare function unwrappedMethod(target: AnyRecord, methodName: string): ((...args: unknown[]) => unknown) | undefined;
7
+ /** Mark `wrapped` and install it on `target`; failures are swallowed. */
8
+ export declare function installWrapped(target: AnyRecord, methodName: string, wrapped: (...args: unknown[]) => unknown): void;
9
+ export {};
10
+ //# sourceMappingURL=patching.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patching.d.ts","sourceRoot":"","sources":["../../src/wrappers/patching.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,WAAW,oBAAoB,CAAC;AAE7C,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEzC,yEAAyE;AACzE,wBAAgB,YAAY,CAC1B,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,SAAS,MAAM,EAAE,GACvB,SAAS,GAAG,SAAS,CAQvB;AAED,gFAAgF;AAChF,wBAAgB,eAAe,CAC7B,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,MAAM,GACjB,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,GAAG,SAAS,CAK/C;AAED,yEAAyE;AACzE,wBAAgB,cAAc,CAC5B,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,GACvC,IAAI,CAON"}
@@ -0,0 +1,38 @@
1
+ // Shared method-patching helpers for the provider wrappers.
2
+ //
3
+ // Every wrapper marks what it patched with the same non-enumerable flag so
4
+ // re-wrapping a client (or wrapping a client whose method was already wrapped
5
+ // through another path) is idempotent, and every wrapper walks attribute
6
+ // chains the same way so nested resources (chat.completions, messages.batches)
7
+ // are resolved with identical missing-attribute semantics.
8
+ export const FRUGAL_MARK = "__frugalWrapped";
9
+ /** Walk `chain` from `root`, returning the final object or undefined. */
10
+ export function resolveChain(root, chain) {
11
+ let target = root && typeof root === "object" ? root : undefined;
12
+ for (const step of chain) {
13
+ if (!target || typeof target !== "object")
14
+ return undefined;
15
+ target = target[step];
16
+ }
17
+ return target && typeof target === "object" ? target : undefined;
18
+ }
19
+ /** The named method of `target`, or undefined when absent / already wrapped. */
20
+ export function unwrappedMethod(target, methodName) {
21
+ const original = target[methodName];
22
+ if (typeof original !== "function")
23
+ return undefined;
24
+ if (original[FRUGAL_MARK])
25
+ return undefined;
26
+ return original;
27
+ }
28
+ /** Mark `wrapped` and install it on `target`; failures are swallowed. */
29
+ export function installWrapped(target, methodName, wrapped) {
30
+ wrapped[FRUGAL_MARK] = true;
31
+ try {
32
+ target[methodName] = wrapped;
33
+ }
34
+ catch {
35
+ // ignore — nothing we can do if the property is non-writable
36
+ }
37
+ }
38
+ //# sourceMappingURL=patching.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patching.js","sourceRoot":"","sources":["../../src/wrappers/patching.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,EAAE;AACF,2EAA2E;AAC3E,8EAA8E;AAC9E,yEAAyE;AACzE,+EAA+E;AAC/E,2DAA2D;AAE3D,MAAM,CAAC,MAAM,WAAW,GAAG,iBAAiB,CAAC;AAI7C,yEAAyE;AACzE,MAAM,UAAU,YAAY,CAC1B,IAAa,EACb,KAAwB;IAExB,IAAI,MAAM,GACR,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAE,IAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QAC5D,MAAM,GAAG,MAAM,CAAC,IAAI,CAA0B,CAAC;IACjD,CAAC;IACD,OAAO,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACnE,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,eAAe,CAC7B,MAAiB,EACjB,UAAkB;IAElB,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IACpC,IAAI,OAAO,QAAQ,KAAK,UAAU;QAAE,OAAO,SAAS,CAAC;IACrD,IAAK,QAAwC,CAAC,WAAW,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7E,OAAO,QAA2C,CAAC;AACrD,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,cAAc,CAC5B,MAAiB,EACjB,UAAkB,EAClB,OAAwC;IAEvC,OAAuC,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;IAC7D,IAAI,CAAC;QACH,MAAM,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,6DAA6D;IAC/D,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frugalco/frugal-sdk-node",
3
- "version": "0.3.0",
3
+ "version": "0.5.0",
4
4
  "description": "Instrumentation for Cost-to-Code attribution.",
5
5
  "homepage": "https://frugal.co",
6
6
  "license": "Apache-2.0",