@llm4ts/core 0.6.2 → 0.7.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.
@@ -6,6 +6,7 @@ import { type CliConnectorShape } from "../Connector.ts";
6
6
  import type { CliConnectorConfig } from "../ConnectorConfig.ts";
7
7
  import { type LlmError } from "../Errors.ts";
8
8
  import { type LlmConfig } from "../Models.ts";
9
+ import { type JsonValue } from "./CliSupport.ts";
9
10
  declare const GeminiCliLogLine_base: Schema.Class<GeminiCliLogLine, Schema.TaggedStruct<"LogLine", {
10
11
  readonly line: Schema.String;
11
12
  }>, {}>;
@@ -100,6 +101,22 @@ export type GeminiResponseExtraction = {
100
101
  export declare const isGeminiPreambleLine: (line: string) => boolean;
101
102
  export declare const isKnownGeminiStderrNoise: (line: string) => boolean;
102
103
  export declare const extractGeminiCliResponse: (output: string) => GeminiResponseExtraction;
104
+ /**
105
+ * Token counts from a `result` event's `stats`.
106
+ *
107
+ * The Gemini CLI reports per-model session metrics, not flat totals:
108
+ * `stats.models["<model>"].tokens` carries `prompt`, `input` (prompt minus
109
+ * cached), `candidates` (the answer), `thoughts` (thinking, billed as
110
+ * output), `cached`, and `total`. Counts are summed across every model a run
111
+ * touched, because one run can span models (a quota fallback from pro to
112
+ * flash reports both). `prompt` maps to the UNCACHED input so it lines up
113
+ * with the pricing table, which bills `cached` separately at its own rate.
114
+ *
115
+ * A flat `{total_tokens, input_tokens, output_tokens, cached}` shape is still
116
+ * accepted: it is the contract this parser shipped with, and dropping it
117
+ * would silently stop reporting usage for anything already emitting it.
118
+ */
119
+ export declare const parseGeminiStreamStats: (stats: JsonValue | undefined) => GeminiStreamStats | undefined;
103
120
  export declare const parseGeminiCliStreamEvent: (line: string) => GeminiCliStreamEvent;
104
121
  export declare const makeGeminiCliProvider: (config: LlmConfig, executor: GeminiCliExecutorShape, executionContext?: GeminiCliExecutionContext) => CliConnectorShape;
105
122
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"GeminiCliProvider.d.ts","sourceRoot":"","sources":["../../src/providers/GeminiCliProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GeminiCliProvider.d.ts","sourceRoot":"","sources":["../../src/providers/GeminiCliProvider.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ import { InvalidRequestError, ParseError, ProviderError, TurnLimitError } from "
9
9
  import { ConnectorIds, HealthStatus, LlmChunk, TokenUsage } from "../Models.js";
10
10
  import { collect } from "../Streaming.js";
11
11
  import { jsonCandidates, parseFromText, withSchemaHint } from "../StructuredOutput.js";
12
- import { failClassifiedCliError, jsonField, jsonIntField, jsonStringField, jsonText, parseJsonLine } from "./CliSupport.js";
12
+ import { failClassifiedCliError, jsonField, jsonIntField, jsonObjectEntries, jsonStringField, jsonText, parseJsonLine } from "./CliSupport.js";
13
13
  export class GeminiCliLogLine extends Schema.TaggedClass()("LogLine", {
14
14
  line: Schema.String
15
15
  }) {
@@ -313,6 +313,65 @@ export const extractGeminiCliResponse = (output) => {
313
313
  value: content
314
314
  };
315
315
  };
316
+ /**
317
+ * Token counts from a `result` event's `stats`.
318
+ *
319
+ * The Gemini CLI reports per-model session metrics, not flat totals:
320
+ * `stats.models["<model>"].tokens` carries `prompt`, `input` (prompt minus
321
+ * cached), `candidates` (the answer), `thoughts` (thinking, billed as
322
+ * output), `cached`, and `total`. Counts are summed across every model a run
323
+ * touched, because one run can span models (a quota fallback from pro to
324
+ * flash reports both). `prompt` maps to the UNCACHED input so it lines up
325
+ * with the pricing table, which bills `cached` separately at its own rate.
326
+ *
327
+ * A flat `{total_tokens, input_tokens, output_tokens, cached}` shape is still
328
+ * accepted: it is the contract this parser shipped with, and dropping it
329
+ * would silently stop reporting usage for anything already emitting it.
330
+ */
331
+ export const parseGeminiStreamStats = (stats) => {
332
+ if (stats === undefined) {
333
+ return undefined;
334
+ }
335
+ let prompt = 0;
336
+ let completion = 0;
337
+ let total = 0;
338
+ let cached = 0;
339
+ let sawModelTokens = false;
340
+ for (const [, metrics] of jsonObjectEntries(jsonField(stats, "models"))) {
341
+ const tokens = jsonField(metrics, "tokens");
342
+ if (tokens === undefined) {
343
+ continue;
344
+ }
345
+ sawModelTokens = true;
346
+ const modelCached = jsonIntField(tokens, "cached") ?? 0;
347
+ const modelPrompt = jsonIntField(tokens, "prompt") ?? 0;
348
+ prompt += jsonIntField(tokens, "input") ?? Math.max(modelPrompt - modelCached, 0);
349
+ completion +=
350
+ (jsonIntField(tokens, "candidates") ?? 0) + (jsonIntField(tokens, "thoughts") ?? 0);
351
+ total += jsonIntField(tokens, "total") ?? 0;
352
+ cached += modelCached;
353
+ }
354
+ if (sawModelTokens) {
355
+ return GeminiStreamStats.make({
356
+ inputTokens: prompt,
357
+ outputTokens: completion,
358
+ totalTokens: total > 0 ? total : prompt + completion + cached,
359
+ ...(cached === 0 ? {} : { cached })
360
+ });
361
+ }
362
+ const flat = {
363
+ totalTokens: jsonIntField(stats, "total_tokens"),
364
+ inputTokens: jsonIntField(stats, "input_tokens"),
365
+ outputTokens: jsonIntField(stats, "output_tokens"),
366
+ cached: jsonIntField(stats, "cached")
367
+ };
368
+ return GeminiStreamStats.make({
369
+ ...(flat.totalTokens === undefined ? {} : { totalTokens: flat.totalTokens }),
370
+ ...(flat.inputTokens === undefined ? {} : { inputTokens: flat.inputTokens }),
371
+ ...(flat.outputTokens === undefined ? {} : { outputTokens: flat.outputTokens }),
372
+ ...(flat.cached === undefined ? {} : { cached: flat.cached })
373
+ });
374
+ };
316
375
  export const parseGeminiCliStreamEvent = (line) => {
317
376
  const trimmed = line.trim();
318
377
  const json = parseJsonLine(trimmed);
@@ -380,23 +439,7 @@ export const parseGeminiCliStreamEvent = (line) => {
380
439
  });
381
440
  }
382
441
  case "result": {
383
- const stats = jsonField(json, "stats");
384
- const decodedStats = stats === undefined
385
- ? undefined
386
- : GeminiStreamStats.make({
387
- ...(jsonIntField(stats, "total_tokens") === undefined
388
- ? {}
389
- : { totalTokens: jsonIntField(stats, "total_tokens") ?? 0 }),
390
- ...(jsonIntField(stats, "input_tokens") === undefined
391
- ? {}
392
- : { inputTokens: jsonIntField(stats, "input_tokens") ?? 0 }),
393
- ...(jsonIntField(stats, "output_tokens") === undefined
394
- ? {}
395
- : { outputTokens: jsonIntField(stats, "output_tokens") ?? 0 }),
396
- ...(jsonIntField(stats, "cached") === undefined
397
- ? {}
398
- : { cached: jsonIntField(stats, "cached") ?? 0 })
399
- });
442
+ const decodedStats = parseGeminiStreamStats(jsonField(json, "stats"));
400
443
  return GeminiCliResult.make({
401
444
  ...(jsonStringField(json, "status") === undefined
402
445
  ? {}
@@ -413,16 +456,24 @@ export const parseGeminiCliStreamEvent = (line) => {
413
456
  return GeminiCliLogLine.make({ line });
414
457
  }
415
458
  };
416
- const geminiUsage = (stats) => stats?.inputTokens === undefined ||
417
- stats.outputTokens === undefined ||
418
- stats.totalTokens === undefined
419
- ? undefined
420
- : TokenUsage.make({
421
- prompt: stats.inputTokens,
422
- completion: stats.outputTokens,
423
- total: stats.totalTokens,
459
+ // Any reported count is worth surfacing: dropping partial stats is what
460
+ // leaves a run reporting "no usage reported" despite the CLI counting tokens.
461
+ const geminiUsage = (stats) => {
462
+ if (stats === undefined ||
463
+ (stats.inputTokens === undefined &&
464
+ stats.outputTokens === undefined &&
465
+ stats.totalTokens === undefined)) {
466
+ return undefined;
467
+ }
468
+ const prompt = stats.inputTokens ?? 0;
469
+ const completion = stats.outputTokens ?? 0;
470
+ return TokenUsage.make({
471
+ prompt,
472
+ completion,
473
+ total: stats.totalTokens ?? prompt + completion + (stats.cached ?? 0),
424
474
  ...(stats.cached === undefined ? {} : { cached: stats.cached })
425
475
  });
476
+ };
426
477
  const formatGeminiHistory = (messages) => {
427
478
  const system = messages.filter((message) => message.role === "System");
428
479
  const turns = messages.filter((message) => message.role !== "System");
@@ -1 +1 @@
1
- {"version":3,"file":"GeminiCliProvider.js","sourceRoot":"","sources":["../../src/providers/GeminiCliProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GeminiCliProvider.js","sourceRoot":"","sources":["../../src/providers/GeminiCliProvider.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@llm4ts/core",
3
- "version": "0.6.2",
3
+ "version": "0.7.0",
4
4
  "description": "Effect-native LLM contracts, providers, tools, evaluation, and observability",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -29,9 +29,11 @@ import {
29
29
  failClassifiedCliError,
30
30
  jsonField,
31
31
  jsonIntField,
32
+ jsonObjectEntries,
32
33
  jsonStringField,
33
34
  jsonText,
34
- parseJsonLine
35
+ parseJsonLine,
36
+ type JsonValue
35
37
  } from "./CliSupport.ts"
36
38
 
37
39
  export class GeminiCliLogLine extends Schema.TaggedClass<GeminiCliLogLine>()("LogLine", {
@@ -433,6 +435,70 @@ export const extractGeminiCliResponse = (output: string): GeminiResponseExtracti
433
435
  }
434
436
  }
435
437
 
438
+ /**
439
+ * Token counts from a `result` event's `stats`.
440
+ *
441
+ * The Gemini CLI reports per-model session metrics, not flat totals:
442
+ * `stats.models["<model>"].tokens` carries `prompt`, `input` (prompt minus
443
+ * cached), `candidates` (the answer), `thoughts` (thinking, billed as
444
+ * output), `cached`, and `total`. Counts are summed across every model a run
445
+ * touched, because one run can span models (a quota fallback from pro to
446
+ * flash reports both). `prompt` maps to the UNCACHED input so it lines up
447
+ * with the pricing table, which bills `cached` separately at its own rate.
448
+ *
449
+ * A flat `{total_tokens, input_tokens, output_tokens, cached}` shape is still
450
+ * accepted: it is the contract this parser shipped with, and dropping it
451
+ * would silently stop reporting usage for anything already emitting it.
452
+ */
453
+ export const parseGeminiStreamStats = (
454
+ stats: JsonValue | undefined
455
+ ): GeminiStreamStats | undefined => {
456
+ if (stats === undefined) {
457
+ return undefined
458
+ }
459
+
460
+ let prompt = 0
461
+ let completion = 0
462
+ let total = 0
463
+ let cached = 0
464
+ let sawModelTokens = false
465
+ for (const [, metrics] of jsonObjectEntries(jsonField(stats, "models"))) {
466
+ const tokens = jsonField(metrics, "tokens")
467
+ if (tokens === undefined) {
468
+ continue
469
+ }
470
+ sawModelTokens = true
471
+ const modelCached = jsonIntField(tokens, "cached") ?? 0
472
+ const modelPrompt = jsonIntField(tokens, "prompt") ?? 0
473
+ prompt += jsonIntField(tokens, "input") ?? Math.max(modelPrompt - modelCached, 0)
474
+ completion +=
475
+ (jsonIntField(tokens, "candidates") ?? 0) + (jsonIntField(tokens, "thoughts") ?? 0)
476
+ total += jsonIntField(tokens, "total") ?? 0
477
+ cached += modelCached
478
+ }
479
+ if (sawModelTokens) {
480
+ return GeminiStreamStats.make({
481
+ inputTokens: prompt,
482
+ outputTokens: completion,
483
+ totalTokens: total > 0 ? total : prompt + completion + cached,
484
+ ...(cached === 0 ? {} : { cached })
485
+ })
486
+ }
487
+
488
+ const flat = {
489
+ totalTokens: jsonIntField(stats, "total_tokens"),
490
+ inputTokens: jsonIntField(stats, "input_tokens"),
491
+ outputTokens: jsonIntField(stats, "output_tokens"),
492
+ cached: jsonIntField(stats, "cached")
493
+ }
494
+ return GeminiStreamStats.make({
495
+ ...(flat.totalTokens === undefined ? {} : { totalTokens: flat.totalTokens }),
496
+ ...(flat.inputTokens === undefined ? {} : { inputTokens: flat.inputTokens }),
497
+ ...(flat.outputTokens === undefined ? {} : { outputTokens: flat.outputTokens }),
498
+ ...(flat.cached === undefined ? {} : { cached: flat.cached })
499
+ })
500
+ }
501
+
436
502
  export const parseGeminiCliStreamEvent = (line: string): GeminiCliStreamEvent => {
437
503
  const trimmed = line.trim()
438
504
  const json = parseJsonLine(trimmed)
@@ -502,24 +568,7 @@ export const parseGeminiCliStreamEvent = (line: string): GeminiCliStreamEvent =>
502
568
  })
503
569
  }
504
570
  case "result": {
505
- const stats = jsonField(json, "stats")
506
- const decodedStats =
507
- stats === undefined
508
- ? undefined
509
- : GeminiStreamStats.make({
510
- ...(jsonIntField(stats, "total_tokens") === undefined
511
- ? {}
512
- : { totalTokens: jsonIntField(stats, "total_tokens") ?? 0 }),
513
- ...(jsonIntField(stats, "input_tokens") === undefined
514
- ? {}
515
- : { inputTokens: jsonIntField(stats, "input_tokens") ?? 0 }),
516
- ...(jsonIntField(stats, "output_tokens") === undefined
517
- ? {}
518
- : { outputTokens: jsonIntField(stats, "output_tokens") ?? 0 }),
519
- ...(jsonIntField(stats, "cached") === undefined
520
- ? {}
521
- : { cached: jsonIntField(stats, "cached") ?? 0 })
522
- })
571
+ const decodedStats = parseGeminiStreamStats(jsonField(json, "stats"))
523
572
  return GeminiCliResult.make({
524
573
  ...(jsonStringField(json, "status") === undefined
525
574
  ? {}
@@ -537,17 +586,26 @@ export const parseGeminiCliStreamEvent = (line: string): GeminiCliStreamEvent =>
537
586
  }
538
587
  }
539
588
 
540
- const geminiUsage = (stats: GeminiStreamStats | undefined): TokenUsage | undefined =>
541
- stats?.inputTokens === undefined ||
542
- stats.outputTokens === undefined ||
543
- stats.totalTokens === undefined
544
- ? undefined
545
- : TokenUsage.make({
546
- prompt: stats.inputTokens,
547
- completion: stats.outputTokens,
548
- total: stats.totalTokens,
549
- ...(stats.cached === undefined ? {} : { cached: stats.cached })
550
- })
589
+ // Any reported count is worth surfacing: dropping partial stats is what
590
+ // leaves a run reporting "no usage reported" despite the CLI counting tokens.
591
+ const geminiUsage = (stats: GeminiStreamStats | undefined): TokenUsage | undefined => {
592
+ if (
593
+ stats === undefined ||
594
+ (stats.inputTokens === undefined &&
595
+ stats.outputTokens === undefined &&
596
+ stats.totalTokens === undefined)
597
+ ) {
598
+ return undefined
599
+ }
600
+ const prompt = stats.inputTokens ?? 0
601
+ const completion = stats.outputTokens ?? 0
602
+ return TokenUsage.make({
603
+ prompt,
604
+ completion,
605
+ total: stats.totalTokens ?? prompt + completion + (stats.cached ?? 0),
606
+ ...(stats.cached === undefined ? {} : { cached: stats.cached })
607
+ })
608
+ }
551
609
 
552
610
  const formatGeminiHistory = (
553
611
  messages: ReadonlyArray<Message>