@mate-academy/llm-gateway 7.7.0 → 7.8.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 (52) hide show
  1. package/README.md +39 -27
  2. package/dist/LLMGateway.d.ts +30 -0
  3. package/dist/LLMGateway.js +56 -0
  4. package/dist/LLMGateway.js.map +1 -0
  5. package/dist/LLMGateway.typedefs.d.ts +5 -0
  6. package/dist/{initLLMGateway.typedefs.js → LLMGateway.typedefs.js} +1 -1
  7. package/dist/LLMGateway.typedefs.js.map +1 -0
  8. package/dist/LLMService.typedefs.d.ts +9 -6
  9. package/dist/LLMService.typedefs.js.map +1 -1
  10. package/dist/index.d.ts +2 -2
  11. package/dist/index.js +2 -2
  12. package/dist/index.js.map +1 -1
  13. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.js +39 -10
  14. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.js.map +1 -1
  15. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAICompletion.service.js +39 -9
  16. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAICompletion.service.js.map +1 -1
  17. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAISpeechToText.service.js +19 -4
  18. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAISpeechToText.service.js.map +1 -1
  19. package/dist/providers/LLMAPI/services/LLMAPIAssistance.service.js +39 -10
  20. package/dist/providers/LLMAPI/services/LLMAPIAssistance.service.js.map +1 -1
  21. package/dist/providers/OpenAI/services/OpenAIAssistance.service.js +39 -10
  22. package/dist/providers/OpenAI/services/OpenAIAssistance.service.js.map +1 -1
  23. package/dist/providers/OpenAICompatible/OpenAICompatibleSpeechToText.service.js +19 -4
  24. package/dist/providers/OpenAICompatible/OpenAICompatibleSpeechToText.service.js.map +1 -1
  25. package/dist/services/LLMBaseService.abstract.d.ts +12 -8
  26. package/dist/services/LLMBaseService.abstract.js +29 -14
  27. package/dist/services/LLMBaseService.abstract.js.map +1 -1
  28. package/dist/utilities/llmTracing/index.d.ts +2 -3
  29. package/dist/utilities/llmTracing/index.js +2 -6
  30. package/dist/utilities/llmTracing/index.js.map +1 -1
  31. package/dist/utilities/llmTracing/llmTracing.constants.d.ts +6 -0
  32. package/dist/utilities/llmTracing/llmTracing.constants.js +10 -0
  33. package/dist/utilities/llmTracing/llmTracing.constants.js.map +1 -0
  34. package/dist/utilities/llmTracing/llmTracing.typedefs.d.ts +48 -0
  35. package/dist/utilities/llmTracing/noopLLMTracing.d.ts +3 -0
  36. package/dist/utilities/llmTracing/noopLLMTracing.js +30 -0
  37. package/dist/utilities/llmTracing/noopLLMTracing.js.map +1 -0
  38. package/package.json +1 -2
  39. package/dist/initLLMGateway.d.ts +0 -15
  40. package/dist/initLLMGateway.js +0 -21
  41. package/dist/initLLMGateway.js.map +0 -1
  42. package/dist/initLLMGateway.typedefs.d.ts +0 -9
  43. package/dist/initLLMGateway.typedefs.js.map +0 -1
  44. package/dist/utilities/llmTracing/activeLLMTracer.d.ts +0 -12
  45. package/dist/utilities/llmTracing/activeLLMTracer.js +0 -37
  46. package/dist/utilities/llmTracing/activeLLMTracer.js.map +0 -1
  47. package/dist/utilities/llmTracing/fallbackMetric.d.ts +0 -21
  48. package/dist/utilities/llmTracing/fallbackMetric.js +0 -24
  49. package/dist/utilities/llmTracing/fallbackMetric.js.map +0 -1
  50. package/dist/utilities/llmTracing/withLLMTrace.d.ts +0 -12
  51. package/dist/utilities/llmTracing/withLLMTrace.js +0 -21
  52. package/dist/utilities/llmTracing/withLLMTrace.js.map +0 -1
package/README.md CHANGED
@@ -59,7 +59,7 @@ npm install @mate-academy/llm-gateway
59
59
  ## Features
60
60
 
61
61
  - Support for multiple LLM providers (OpenAI, Google Generative AI)
62
- - **Tracing port**: The gateway defines an `LLMGatewayTracer` port and captures generations, tool observations, usage, and cost automatically at every LLM call; fire-and-forget so a tracing failure never blocks or fails one. `@mate-academy/llm-tracer` provides the Langfuse-backed implementation; the gateway itself carries no tracing SDK. Omitting a tracer at `initLLMGateway` leaves a no-op active.
62
+ - **Tracing port**: The gateway defines an `LLMGatewayTracer` port and captures generations, tool observations, usage, and cost automatically at every LLM call; fire-and-forget so a tracing failure never blocks or fails one. `@mate-academy/llm-tracer` provides the Langfuse-backed implementation; the gateway itself carries no tracing SDK. Tracing is opt-in per `LLMGateway` instance `LLMServiceFactory` keeps working untraced.
63
63
  - **Structured Output**: Type-safe JSON responses with schema validation
64
64
  - **Extensible Schema Architecture**: Driver pattern with provider-specific adapters
65
65
  - **LLM Metrics & Reporting**: Comprehensive metrics collection with automatic cost calculation
@@ -82,64 +82,76 @@ npm install @mate-academy/llm-gateway
82
82
 
83
83
  ### Tracing
84
84
 
85
- The gateway defines the tracer port (`LLMGatewayTracer`) and the process-level
86
- composition entry point (`initLLMGateway`); it carries no tracing SDK of its
87
- own. `@mate-academy/llm-tracer` provides `createLangfuseTracer`, the
88
- Langfuse-backed implementation of that port. Compose them once per process at
89
- the composition root (the consumer's DI container / serverless core) feature
90
- code never touches Langfuse credentials:
85
+ The gateway defines the tracer port (`LLMGatewayTracer`) but carries no tracing
86
+ SDK of its own. `@mate-academy/llm-tracer` provides `createLangfuseTracer`, the
87
+ Langfuse-backed implementation of that port. Build an `LLMGateway` with it at
88
+ the composition root (the consumer's DI container / serverless core) and take
89
+ every traced service from that instance feature code never touches Langfuse
90
+ credentials, and the package installs no process-wide state:
91
91
 
92
92
  ```typescript
93
- import { initLLMGateway, withLLMTrace, flushLLMTraces } from '@mate-academy/llm-gateway';
93
+ import { LLMGateway } from '@mate-academy/llm-gateway';
94
94
  import { createLangfuseTracer } from '@mate-academy/llm-tracer';
95
95
 
96
- // Once per process, at the composition root:
97
96
  const tracer = createLangfuseTracer({
98
97
  baseUrl: process.env.LANGFUSE_BASE_URL,
99
98
  publicKey: process.env.LANGFUSE_PUBLIC_KEY,
100
99
  secretKey: process.env.LANGFUSE_SECRET_KEY,
101
- environment: process.env.LANGFUSE_ENVIRONMENT,
100
+ environment: process.env.APP_ENV,
102
101
  // 'batched' for long-running processes, 'immediate' for Lambda
103
102
  exportMode: 'batched',
104
103
  });
105
104
 
106
- initLLMGateway({ tracer });
105
+ const llmGateway = new LLMGateway({ tracer });
106
+
107
+ const completionService = llmGateway.getCompletionService({
108
+ provider: LLMProviders.OpenAI,
109
+ logger,
110
+ reporter,
111
+ });
107
112
  ```
108
113
 
109
- Omitting `tracer` (or never calling `initLLMGateway` at all) leaves a no-op
110
- tracer active, so nothing breaks before rollout `createLangfuseTracer` itself
111
- also falls back to a no-op when credentials are missing.
114
+ `LLMServiceFactory`'s static methods stay available and stay untraced, so call
115
+ sites that know nothing about tracing keep working unchanged. Building
116
+ `new LLMGateway()` without a tracer is equally valid — it hands out services
117
+ wired to the no-op tracer, so nothing breaks before rollout.
118
+ `createLangfuseTracer` likewise falls back to a no-op when credentials are
119
+ missing.
112
120
 
113
- Once registered, every gateway completion / assistance call emits a
121
+ Every completion / assistance call made through a gateway-built service emits a
114
122
  `generation` observation (full prompt/completion content, model, params, usage,
115
123
  cost) at the same success/error points the metrics reporter already wraps;
116
124
  assistance tool loops emit a child `tool` observation per tool call. All of this
117
125
  is fire-and-forget — a tracing failure never blocks or fails an LLM call.
118
126
 
119
- For code outside a traced base class, wrap work in a trace so nested gateway
120
- calls attach to it automatically:
127
+ To group several calls under one trace, wrap the work so nested gateway calls
128
+ attach to it automatically:
121
129
 
122
130
  ```typescript
123
- await withLLMTrace('my-operation', { feature: 'city-prediction' }, async () => {
124
- // gateway calls here nest under the trace via the active tracer
125
- });
131
+ await llmGateway.withTrace(
132
+ 'my-operation',
133
+ { metadata: { feature: 'city-prediction' } },
134
+ async () => {
135
+ // gateway calls here nest under the trace
136
+ },
137
+ );
126
138
  ```
127
139
 
128
140
  Short-lived processes (Lambdas, scripts) must flush before exit, since buffered
129
141
  events are lost otherwise:
130
142
 
131
143
  ```typescript
132
- await flushLLMTraces(); // delegates to the active tracer's flush; safe no-op when disabled
144
+ await llmGateway.flush(); // safe no-op when tracing is disabled
133
145
  ```
134
146
 
135
147
  The CloudWatch fallback-serving metric (`LangfuseFallbackServed`, namespace
136
- `LLMGateway`) is exposed via `emitLangfuseFallbackServed`; inject a real emitter
137
- with `setFallbackMetricEmitter` at the composition root (defaults to a no-op so
138
- the package carries no AWS dependency).
148
+ `LLMGateway`) is emitted through `llmGateway.emitFallbackServed(...)`; pass a
149
+ real emitter as `fallbackMetricEmitter` when building the gateway (it defaults
150
+ to a no-op so the package carries no AWS dependency).
139
151
 
140
- To assert emitted observations in tests, register a test double implementing
141
- `LLMGatewayTracer` via `initLLMGateway({ tracer })` and assert what it captured
142
- (see `@mate-academy/llm-tracer`'s README for asserting real Langfuse spans).
152
+ To assert emitted observations in tests, build the gateway with a test double
153
+ implementing `LLMGatewayTracer` and assert what it captured (see
154
+ `@mate-academy/llm-tracer`'s README for asserting real Langfuse spans).
143
155
 
144
156
  ### Logger Interface
145
157
 
@@ -0,0 +1,30 @@
1
+ import { type LLMProviders, type LLMPurposes, type LLMServiceByPurpose, type LLMServiceOptions } from './LLMService.typedefs';
2
+ import { type LLMGatewayOptions } from './LLMGateway.typedefs';
3
+ import { type LLMReporterInterface } from './utilities/reporter';
4
+ import { type LangfuseFallbackMetricDimensions, type LLMGatewayTracer, type LLMTraceContext } from './utilities/llmTracing';
5
+ /**
6
+ * An explicitly constructed gateway: every service it hands out is wired to the
7
+ * tracer this instance was built with. `LLMServiceFactory` stays available for
8
+ * call sites that want no tracing, so nothing depends on process-wide state.
9
+ */
10
+ export declare class LLMGateway {
11
+ private readonly tracer;
12
+ private readonly fallbackMetricEmitter;
13
+ constructor(options?: LLMGatewayOptions);
14
+ getCompletionService<Provider extends LLMProviders, Reporter extends LLMReporterInterface<any> | undefined = undefined>(options: LLMServiceOptions<Provider, Reporter>): LLMServiceByPurpose<Provider, Reporter>[LLMPurposes.Completion];
15
+ getAssistanceService<Provider extends LLMProviders, Reporter extends LLMReporterInterface<any> | undefined>(options: LLMServiceOptions<Provider, Reporter>): LLMServiceByPurpose<Provider, Reporter>[LLMPurposes.Assistance];
16
+ getSpeechToTextService<Provider extends LLMProviders, Reporter extends LLMReporterInterface<any> | undefined>(options: LLMServiceOptions<Provider, Reporter>): LLMServiceByPurpose<Provider, Reporter>[LLMPurposes.SpeechToText];
17
+ getTextToSpeechService<Provider extends LLMProviders, Reporter extends LLMReporterInterface<any> | undefined>(options: LLMServiceOptions<Provider, Reporter>): LLMServiceByPurpose<Provider, Reporter>[LLMPurposes.TextToSpeech];
18
+ getTracer(): LLMGatewayTracer;
19
+ /**
20
+ * Starts a trace around `fn`; every gateway call inside nests into it.
21
+ */
22
+ withTrace<Result>(name: string, context: LLMTraceContext, fn: () => Promise<Result>): Promise<Result>;
23
+ /**
24
+ * Flushes buffered traces. Serverless handlers call this on completion; the
25
+ * long-running API calls it from its shutdown hook only.
26
+ */
27
+ flush(): Promise<void>;
28
+ emitFallbackServed(dimensions: LangfuseFallbackMetricDimensions): void;
29
+ private traced;
30
+ }
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LLMGateway = void 0;
4
+ const LLMService_factory_1 = require("./LLMService.factory");
5
+ const llmTracing_1 = require("./utilities/llmTracing");
6
+ /**
7
+ * An explicitly constructed gateway: every service it hands out is wired to the
8
+ * tracer this instance was built with. `LLMServiceFactory` stays available for
9
+ * call sites that want no tracing, so nothing depends on process-wide state.
10
+ */
11
+ class LLMGateway {
12
+ tracer;
13
+ fallbackMetricEmitter;
14
+ constructor(options = {}) {
15
+ this.tracer = options.tracer ?? llmTracing_1.noopLLMGatewayTracer;
16
+ this.fallbackMetricEmitter
17
+ = options.fallbackMetricEmitter ?? llmTracing_1.noopFallbackMetricEmitter;
18
+ }
19
+ getCompletionService(options) {
20
+ return this.traced(LLMService_factory_1.LLMServiceFactory.getCompletionService(options));
21
+ }
22
+ getAssistanceService(options) {
23
+ return this.traced(LLMService_factory_1.LLMServiceFactory.getAssistanceService(options));
24
+ }
25
+ getSpeechToTextService(options) {
26
+ return this.traced(LLMService_factory_1.LLMServiceFactory.getSpeechToTextService(options));
27
+ }
28
+ getTextToSpeechService(options) {
29
+ return this.traced(LLMService_factory_1.LLMServiceFactory.getTextToSpeechService(options));
30
+ }
31
+ getTracer() {
32
+ return this.tracer;
33
+ }
34
+ /**
35
+ * Starts a trace around `fn`; every gateway call inside nests into it.
36
+ */
37
+ withTrace(name, context, fn) {
38
+ return this.tracer.withTrace(name, context, fn);
39
+ }
40
+ /**
41
+ * Flushes buffered traces. Serverless handlers call this on completion; the
42
+ * long-running API calls it from its shutdown hook only.
43
+ */
44
+ flush() {
45
+ return this.tracer.flush();
46
+ }
47
+ emitFallbackServed(dimensions) {
48
+ this.fallbackMetricEmitter(dimensions);
49
+ }
50
+ traced(service) {
51
+ service.initTracer(this.tracer);
52
+ return service;
53
+ }
54
+ }
55
+ exports.LLMGateway = LLMGateway;
56
+ //# sourceMappingURL=LLMGateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LLMGateway.js","sourceRoot":"","sources":["../src/LLMGateway.ts"],"names":[],"mappings":";;;AAMA,6DAAyD;AAGzD,uDAOgC;AAMhC;;;;GAIG;AACH,MAAa,UAAU;IACJ,MAAM,CAAmB;IAEzB,qBAAqB,CAAgC;IAEtE,YAAY,UAA6B,EAAE;QACzC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,iCAAoB,CAAC;QACrD,IAAI,CAAC,qBAAqB;cACtB,OAAO,CAAC,qBAAqB,IAAI,sCAAyB,CAAC;IACjE,CAAC;IAED,oBAAoB,CAIlB,OAA8C;QAE9C,OAAO,IAAI,CAAC,MAAM,CAAC,sCAAiB,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,oBAAoB,CAIlB,OAA8C;QAE9C,OAAO,IAAI,CAAC,MAAM,CAAC,sCAAiB,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,sBAAsB,CAIpB,OAA8C;QAE9C,OAAO,IAAI,CAAC,MAAM,CAAC,sCAAiB,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,sBAAsB,CAIpB,OAA8C;QAE9C,OAAO,IAAI,CAAC,MAAM,CAAC,sCAAiB,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,SAAS,CACP,IAAY,EACZ,OAAwB,EACxB,EAAyB;QAEzB,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IAClD,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED,kBAAkB,CAAC,UAA4C;QAC7D,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC;IAEO,MAAM,CAAmC,OAAgB;QAC/D,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEhC,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AA/ED,gCA+EC"}
@@ -0,0 +1,5 @@
1
+ import { type LangfuseFallbackMetricEmitter, type LLMGatewayTracer } from './utilities/llmTracing';
2
+ export interface LLMGatewayOptions {
3
+ tracer?: LLMGatewayTracer;
4
+ fallbackMetricEmitter?: LangfuseFallbackMetricEmitter;
5
+ }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=initLLMGateway.typedefs.js.map
3
+ //# sourceMappingURL=LLMGateway.typedefs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LLMGateway.typedefs.js","sourceRoot":"","sources":["../src/LLMGateway.typedefs.ts"],"names":[],"mappings":""}
@@ -5,6 +5,7 @@ import type { LLMCompletionService, LLMAssistanceService, LLMSpeechToTextService
5
5
  import type { LLMLoggerInterface } from './utilities/logger';
6
6
  import type { LLMReporterInterface } from './utilities/reporter';
7
7
  import type { LLMSchemaInterface, InferSchema } from './utilities/schema';
8
+ import type { LLMTracedPrompt } from './utilities/llmTracing/llmTracing.typedefs';
8
9
  /**
9
10
  * Enum of supported LLM providers.
10
11
  */
@@ -271,10 +272,6 @@ export type LLMCompletionResult = LLMRequestResult<{
271
272
  */
272
273
  export type LLMMethodBaseOptions<Reporter extends LLMReporterInterface<any> | undefined> = {
273
274
  abortSignal?: AbortSignal;
274
- /**
275
- * Per-call Langfuse trace context. The prompt name (PR2) names the generation
276
- * observation; absent it, the base service falls back to `<service>/<method>`.
277
- */
278
275
  traceContext?: LLMCallTraceContext;
279
276
  } & (Reporter extends LLMReporterInterface<infer R> ? R extends undefined ? {
280
277
  reporterContext?: never;
@@ -284,10 +281,16 @@ export type LLMMethodBaseOptions<Reporter extends LLMReporterInterface<any> | un
284
281
  reporterContext?: never;
285
282
  });
286
283
  /**
287
- * Per-call trace context threaded into a single gateway call. PR2 supplies the
288
- * prompt name; PR1 only wires the threading.
284
+ * Per-call trace context threaded into a single gateway call. When a prompt is
285
+ * present it names the observation instead of `<service>/<method>` and links
286
+ * the observation to its managed prompt version.
289
287
  */
290
288
  export type LLMCallTraceContext = {
289
+ prompt?: LLMTracedPrompt;
290
+ /**
291
+ * @deprecated Use `prompt`. Kept on 7.8 for compatibility; still names the
292
+ * observation when `prompt` is absent.
293
+ */
291
294
  promptName?: string;
292
295
  metadata?: Record<string, string | number | boolean>;
293
296
  };
@@ -1 +1 @@
1
- {"version":3,"file":"LLMService.typedefs.js","sourceRoot":"","sources":["../src/LLMService.typedefs.ts"],"names":[],"mappings":";;;AAkCA;;GAEG;AACH,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,iCAAiB,CAAA;IACjB,yDAAyC,CAAA;IACzC,iCAAiB,CAAA;AACnB,CAAC,EAJW,YAAY,4BAAZ,YAAY,QAIvB;AAoBD;;GAEG;AACH,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,wCAAyB,CAAA;IACzB,wCAAyB,CAAA;IACzB,8CAA+B,CAAA;IAC/B,8CAA+B,CAAA;AACjC,CAAC,EALW,WAAW,2BAAX,WAAW,QAKtB;AAiLD;;GAEG;AACH,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,yBAAa,CAAA;IACb,mCAAuB,CAAA;AACzB,CAAC,EAHW,QAAQ,wBAAR,QAAQ,QAGnB;AAED;;GAEG;AACH,IAAY,qBAIX;AAJD,WAAY,qBAAqB;IAC/B,sCAAa,CAAA;IACb,gDAAuB,CAAA;IACvB,kDAAyB,CAAA;AAC3B,CAAC,EAJW,qBAAqB,qCAArB,qBAAqB,QAIhC;AA8KD;;GAEG;AACH,IAAY,sBAeX;AAfD,WAAY,sBAAsB;IAChC,iDAAuB,CAAA;IACvB,mDAAyB,CAAA;IACzB,iDAAuB,CAAA;IACvB,iDAAuB,CAAA;IACvB,mDAAyB,CAAA;IACzB,yDAA+B,CAAA;IAC/B,iDAAuB,CAAA;IACvB,mDAAyB,CAAA;IACzB,oDAA0B,CAAA;IAC1B,iDAAuB,CAAA;IACvB,mDAAyB,CAAA;IACzB,iDAAuB,CAAA;IACvB,mDAAyB,CAAA;IACzB,iDAAuB,CAAA;AACzB,CAAC,EAfW,sBAAsB,sCAAtB,sBAAsB,QAejC"}
1
+ {"version":3,"file":"LLMService.typedefs.js","sourceRoot":"","sources":["../src/LLMService.typedefs.ts"],"names":[],"mappings":";;;AAmCA;;GAEG;AACH,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,iCAAiB,CAAA;IACjB,yDAAyC,CAAA;IACzC,iCAAiB,CAAA;AACnB,CAAC,EAJW,YAAY,4BAAZ,YAAY,QAIvB;AAoBD;;GAEG;AACH,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,wCAAyB,CAAA;IACzB,wCAAyB,CAAA;IACzB,8CAA+B,CAAA;IAC/B,8CAA+B,CAAA;AACjC,CAAC,EALW,WAAW,2BAAX,WAAW,QAKtB;AAiLD;;GAEG;AACH,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,yBAAa,CAAA;IACb,mCAAuB,CAAA;AACzB,CAAC,EAHW,QAAQ,wBAAR,QAAQ,QAGnB;AAED;;GAEG;AACH,IAAY,qBAIX;AAJD,WAAY,qBAAqB;IAC/B,sCAAa,CAAA;IACb,gDAAuB,CAAA;IACvB,kDAAyB,CAAA;AAC3B,CAAC,EAJW,qBAAqB,qCAArB,qBAAqB,QAIhC;AAgLD;;GAEG;AACH,IAAY,sBAeX;AAfD,WAAY,sBAAsB;IAChC,iDAAuB,CAAA;IACvB,mDAAyB,CAAA;IACzB,iDAAuB,CAAA;IACvB,iDAAuB,CAAA;IACvB,mDAAyB,CAAA;IACzB,yDAA+B,CAAA;IAC/B,iDAAuB,CAAA;IACvB,mDAAyB,CAAA;IACzB,oDAA0B,CAAA;IAC1B,iDAAuB,CAAA;IACvB,mDAAyB,CAAA;IACzB,iDAAuB,CAAA;IACvB,mDAAyB,CAAA;IACzB,iDAAuB,CAAA;AACzB,CAAC,EAfW,sBAAsB,sCAAtB,sBAAsB,QAejC"}
package/dist/index.d.ts CHANGED
@@ -2,8 +2,8 @@ export * from './LLMError';
2
2
  export * from './LLMService.constants';
3
3
  export * from './LLMService.factory';
4
4
  export * from './LLMService.typedefs';
5
- export * from './initLLMGateway';
6
- export * from './initLLMGateway.typedefs';
5
+ export * from './LLMGateway';
6
+ export * from './LLMGateway.typedefs';
7
7
  export * from './providers';
8
8
  export * from './services';
9
9
  export * from './utilities';
package/dist/index.js CHANGED
@@ -18,8 +18,8 @@ __exportStar(require("./LLMError"), exports);
18
18
  __exportStar(require("./LLMService.constants"), exports);
19
19
  __exportStar(require("./LLMService.factory"), exports);
20
20
  __exportStar(require("./LLMService.typedefs"), exports);
21
- __exportStar(require("./initLLMGateway"), exports);
22
- __exportStar(require("./initLLMGateway.typedefs"), exports);
21
+ __exportStar(require("./LLMGateway"), exports);
22
+ __exportStar(require("./LLMGateway.typedefs"), exports);
23
23
  __exportStar(require("./providers"), exports);
24
24
  __exportStar(require("./services"), exports);
25
25
  __exportStar(require("./utilities"), exports);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,yDAAuC;AACvC,uDAAqC;AACrC,wDAAsC;AACtC,mDAAiC;AACjC,4DAA0C;AAC1C,8CAA4B;AAC5B,6CAA2B;AAC3B,8CAA4B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,yDAAuC;AACvC,uDAAqC;AACrC,wDAAsC;AACtC,+CAA6B;AAC7B,wDAAsC;AACtC,8CAA4B;AAC5B,6CAA2B;AAC3B,8CAA4B"}
@@ -5,7 +5,6 @@ const uuid_1 = require("uuid");
5
5
  const genai_1 = require("@google/genai");
6
6
  const LLMService_typedefs_1 = require("../../../LLMService.typedefs");
7
7
  const serializeError_1 = require("../../../utilities/serializeError");
8
- const llmTracing_1 = require("../../../utilities/llmTracing");
9
8
  const tools_1 = require("../../../utilities/tools");
10
9
  const services_1 = require("../../../services");
11
10
  const GoogleGenerativeAI_typedefs_1 = require("../../../providers/GoogleGenerativeAI/GoogleGenerativeAI.typedefs");
@@ -270,8 +269,9 @@ class GoogleGenerativeAIAssistanceService extends services_1.LLMAssistanceServic
270
269
  return GoogleGenerativeAI_entity_1.GoogleGenerativeAIEntity.getFileDataParts(uncachedFiles);
271
270
  }
272
271
  async assistInChatText(options) {
273
- const { model, reporterContext, abortSignal, } = options;
272
+ const { model, reporterContext, abortSignal, traceContext, } = options;
274
273
  const writeMetrics = this.reporter?.initWriter(reporterContext);
274
+ const method = this.getMethodName(this.assistInChatText);
275
275
  try {
276
276
  const { chatSession, messageParts, sendMessageConfig, } = await this.prepareChatMessage({
277
277
  chatId: options.chatId,
@@ -299,7 +299,7 @@ class GoogleGenerativeAIAssistanceService extends services_1.LLMAssistanceServic
299
299
  const { totalUsage } = toolLoopResult;
300
300
  const regularInputTokens = totalUsage.promptTokens - totalUsage.cachedTokens;
301
301
  await this.writeSuccessMetrics({
302
- method: this.getMethodName(this.assistInChatText),
302
+ method,
303
303
  model,
304
304
  usage: {
305
305
  inputTextTokens: regularInputTokens,
@@ -307,6 +307,13 @@ class GoogleGenerativeAIAssistanceService extends services_1.LLMAssistanceServic
307
307
  outputTextTokens: totalUsage.candidatesTokens,
308
308
  },
309
309
  writeMetrics,
310
+ generationTrace: this.buildGenerationTrace({
311
+ method,
312
+ traceContext,
313
+ input: options.message,
314
+ output: responseText,
315
+ modelParameters: model.config,
316
+ }),
310
317
  });
311
318
  return {
312
319
  text: responseText,
@@ -318,13 +325,20 @@ class GoogleGenerativeAIAssistanceService extends services_1.LLMAssistanceServic
318
325
  }
319
326
  catch (error) {
320
327
  await this.writeErrorMetrics({
321
- method: this.getMethodName(this.assistInChatText),
328
+ method,
322
329
  model,
323
330
  isAborted: abortSignal?.aborted,
324
331
  writeMetrics,
332
+ error,
333
+ generationTrace: this.buildGenerationTrace({
334
+ method,
335
+ traceContext,
336
+ input: options.message,
337
+ modelParameters: model.config,
338
+ }),
325
339
  });
326
340
  this.logRequestFailure({
327
- method: this.getMethodName(this.assistInChatText),
341
+ method,
328
342
  message: 'Error assisting in chat',
329
343
  error,
330
344
  isAborted: abortSignal?.aborted,
@@ -334,8 +348,9 @@ class GoogleGenerativeAIAssistanceService extends services_1.LLMAssistanceServic
334
348
  }
335
349
  }
336
350
  async assistInChatStructured(options) {
337
- const { model, abortSignal, schema, reporterContext, } = options;
351
+ const { model, abortSignal, schema, reporterContext, traceContext, } = options;
338
352
  const writeMetrics = this.reporter?.initWriter(reporterContext);
353
+ const method = this.getMethodName(this.assistInChatStructured);
339
354
  try {
340
355
  const googleSchema = schema._toProviderSchema(LLMService_typedefs_1.LLMProviders.GoogleGenerativeAI);
341
356
  const { chatSession, messageParts, sendMessageConfig, } = await this.prepareChatMessage({
@@ -394,7 +409,7 @@ class GoogleGenerativeAIAssistanceService extends services_1.LLMAssistanceServic
394
409
  const regularInputTokens = totalUsage.promptTokens
395
410
  - totalUsage.cachedTokens;
396
411
  await this.writeSuccessMetrics({
397
- method: this.getMethodName(this.assistInChatStructured),
412
+ method,
398
413
  model,
399
414
  usage: {
400
415
  inputTextTokens: regularInputTokens,
@@ -402,6 +417,13 @@ class GoogleGenerativeAIAssistanceService extends services_1.LLMAssistanceServic
402
417
  outputTextTokens: totalUsage.candidatesTokens,
403
418
  },
404
419
  writeMetrics,
420
+ generationTrace: this.buildGenerationTrace({
421
+ method,
422
+ traceContext,
423
+ input: options.message,
424
+ output: finalResponseText,
425
+ modelParameters: model.config,
426
+ }),
405
427
  });
406
428
  const structuredFollowUpRoundTrips = options.tools?.length ? 1 : 0;
407
429
  return {
@@ -427,13 +449,20 @@ class GoogleGenerativeAIAssistanceService extends services_1.LLMAssistanceServic
427
449
  }
428
450
  catch (error) {
429
451
  await this.writeErrorMetrics({
430
- method: this.getMethodName(this.assistInChatStructured),
452
+ method,
431
453
  model,
432
454
  isAborted: abortSignal?.aborted,
433
455
  writeMetrics,
456
+ error,
457
+ generationTrace: this.buildGenerationTrace({
458
+ method,
459
+ traceContext,
460
+ input: options.message,
461
+ modelParameters: model.config,
462
+ }),
434
463
  });
435
464
  this.logRequestFailure({
436
- method: this.getMethodName(this.assistInChatStructured),
465
+ method,
437
466
  message: 'Error assisting in chat with structured output',
438
467
  error,
439
468
  isAborted: abortSignal?.aborted,
@@ -601,7 +630,7 @@ class GoogleGenerativeAIAssistanceService extends services_1.LLMAssistanceServic
601
630
  };
602
631
  }
603
632
  try {
604
- const rawResult = await (0, llmTracing_1.getActiveLLMTracer)().withToolObservation(`${this.serviceName}/tool:${call.name}`, call.args, () => Promise.resolve(matchingTool.execute(call.args)));
633
+ const rawResult = await this.getTracer().withToolObservation(`${this.serviceName}/tool:${call.name}`, call.args, () => Promise.resolve(matchingTool.execute(call.args)));
605
634
  return {
606
635
  name: call.name,
607
636
  result: (0, tools_1.normalizeToolResult)(rawResult),
@@ -1 +1 @@
1
- {"version":3,"file":"GoogleGenerativeAIAssistance.service.js","sourceRoot":"","sources":["../../../../src/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GoogleGenerativeAIAssistance.service.js","sourceRoot":"","sources":["../../../../src/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.ts"],"names":[],"mappings":"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"}