@omnicross/core 0.1.8 → 0.1.10

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 (113) hide show
  1. package/dist/auth/GeminiCodeAssistProjectResolver.cjs +5 -3
  2. package/dist/auth/GeminiCodeAssistProjectResolver.js +4 -2
  3. package/dist/{chunk-N5T4M4GU.js → chunk-2UTGX6FM.js} +2 -2
  4. package/dist/{chunk-32O35CIF.js → chunk-45FHEOKW.js} +22 -7
  5. package/dist/{chunk-LVUCAWMK.js → chunk-55FMGZ3L.js} +13 -5
  6. package/dist/{chunk-OF3BECU2.cjs → chunk-56QD3YW6.cjs} +18 -5
  7. package/dist/{chunk-V4TXMEJS.cjs → chunk-5LNYGCIW.cjs} +15 -7
  8. package/dist/{chunk-EPN67EGP.cjs → chunk-5UK3KLE2.cjs} +9 -1
  9. package/dist/chunk-6D4W22P4.js +150 -0
  10. package/dist/chunk-77USGNRW.cjs +37 -0
  11. package/dist/chunk-AOFWNWLT.cjs +203 -0
  12. package/dist/{chunk-UAPBLNN2.js → chunk-AQDON6MB.js} +8 -0
  13. package/dist/{chunk-LB6EBS6Y.js → chunk-CCVRRJOX.js} +17 -4
  14. package/dist/{chunk-OVQBNVSV.cjs → chunk-CMVXX7ON.cjs} +42 -27
  15. package/dist/{chunk-QYC54PMG.js → chunk-FEBAQI5A.js} +255 -92
  16. package/dist/{chunk-7C7DET6S.js → chunk-GXEZ2R3E.js} +156 -1
  17. package/dist/{chunk-PEGTIPB3.js → chunk-HKB656B4.js} +37 -43
  18. package/dist/chunk-N2EIM2XJ.js +203 -0
  19. package/dist/{chunk-MYYR3HZL.js → chunk-NGYOO5TO.js} +5 -5
  20. package/dist/{chunk-OKMJLEXX.cjs → chunk-OC6DOOFX.cjs} +5 -5
  21. package/dist/{chunk-2Z4XM3H5.cjs → chunk-P7EM6BND.cjs} +10 -10
  22. package/dist/chunk-QUSEZNYS.cjs +150 -0
  23. package/dist/{chunk-KBM2W6UY.cjs → chunk-RICPANBY.cjs} +41 -24
  24. package/dist/{chunk-TOVPMMHM.js → chunk-S3DYFEBE.js} +37 -20
  25. package/dist/{chunk-26K6T2YS.cjs → chunk-TIT74RIL.cjs} +407 -244
  26. package/dist/{chunk-XPIOJQS2.cjs → chunk-UWDW6PN3.cjs} +159 -4
  27. package/dist/chunk-WYVGULTQ.js +37 -0
  28. package/dist/{chunk-OXHNSZ53.cjs → chunk-ZQQUD66M.cjs} +54 -60
  29. package/dist/completion/CompletionService.cjs +15 -13
  30. package/dist/completion/CompletionService.js +14 -12
  31. package/dist/completion.cjs +15 -13
  32. package/dist/completion.js +14 -12
  33. package/dist/index.cjs +15 -13
  34. package/dist/index.d.cts +2 -2
  35. package/dist/index.d.ts +2 -2
  36. package/dist/index.js +14 -12
  37. package/dist/outbound-api/auditCapture.cjs +2 -2
  38. package/dist/outbound-api/auditCapture.d.cts +6 -0
  39. package/dist/outbound-api/auditCapture.d.ts +6 -0
  40. package/dist/outbound-api/auditCapture.js +1 -1
  41. package/dist/outbound-api/routeResolver.d.cts +1 -1
  42. package/dist/outbound-api/routeResolver.d.ts +1 -1
  43. package/dist/outbound-api/types.d.cts +1 -1
  44. package/dist/outbound-api/types.d.ts +1 -1
  45. package/dist/outbound-api.cjs +15 -13
  46. package/dist/outbound-api.d.cts +3 -2
  47. package/dist/outbound-api.d.ts +3 -2
  48. package/dist/outbound-api.js +14 -12
  49. package/dist/pipeline/AccountAllowanceScheduling.d.cts +1 -1
  50. package/dist/pipeline/AccountAllowanceScheduling.d.ts +1 -1
  51. package/dist/pipeline/executeProviderCall.d.cts +2 -0
  52. package/dist/pipeline/executeProviderCall.d.ts +2 -0
  53. package/dist/pipeline/resolveProviderChain.d.cts +1 -0
  54. package/dist/pipeline/resolveProviderChain.d.ts +1 -0
  55. package/dist/pipeline/resolveSubscriptionChain.d.cts +2 -0
  56. package/dist/pipeline/resolveSubscriptionChain.d.ts +2 -0
  57. package/dist/ports/provider-config-source.d.cts +1 -0
  58. package/dist/ports/provider-config-source.d.ts +1 -0
  59. package/dist/ports.d.cts +1 -1
  60. package/dist/ports.d.ts +1 -1
  61. package/dist/provider-proxy/ProviderProxy.cjs +15 -13
  62. package/dist/provider-proxy/ProviderProxy.js +14 -12
  63. package/dist/provider-proxy/ingress/providerProxyShared.cjs +15 -13
  64. package/dist/provider-proxy/ingress/providerProxyShared.js +14 -12
  65. package/dist/provider-proxy.cjs +15 -13
  66. package/dist/provider-proxy.js +14 -12
  67. package/dist/transformer/TransformerChainExecutor.d.cts +2 -0
  68. package/dist/transformer/TransformerChainExecutor.d.ts +2 -0
  69. package/dist/transformer/TransformerService.d.cts +2 -0
  70. package/dist/transformer/TransformerService.d.ts +2 -0
  71. package/dist/transformer/transformers/AnthropicTransformer.cjs +4 -2
  72. package/dist/transformer/transformers/AnthropicTransformer.d.cts +7 -2
  73. package/dist/transformer/transformers/AnthropicTransformer.d.ts +7 -2
  74. package/dist/transformer/transformers/AnthropicTransformer.js +3 -1
  75. package/dist/transformer/transformers/GeminiCodeAssistTransformer.cjs +5 -3
  76. package/dist/transformer/transformers/GeminiCodeAssistTransformer.d.cts +2 -0
  77. package/dist/transformer/transformers/GeminiCodeAssistTransformer.d.ts +2 -0
  78. package/dist/transformer/transformers/GeminiCodeAssistTransformer.js +4 -2
  79. package/dist/transformer/transformers/GeminiTransformer.cjs +5 -3
  80. package/dist/transformer/transformers/GeminiTransformer.d.cts +4 -2
  81. package/dist/transformer/transformers/GeminiTransformer.d.ts +4 -2
  82. package/dist/transformer/transformers/GeminiTransformer.js +4 -2
  83. package/dist/transformer/transformers/OpenAIResponseTransformer.cjs +3 -2
  84. package/dist/transformer/transformers/OpenAIResponseTransformer.d.cts +4 -2
  85. package/dist/transformer/transformers/OpenAIResponseTransformer.d.ts +4 -2
  86. package/dist/transformer/transformers/OpenAIResponseTransformer.js +2 -1
  87. package/dist/transformer/transformers/OpenAITransformer.cjs +3 -2
  88. package/dist/transformer/transformers/OpenAITransformer.d.cts +3 -1
  89. package/dist/transformer/transformers/OpenAITransformer.d.ts +3 -1
  90. package/dist/transformer/transformers/OpenAITransformer.js +2 -1
  91. package/dist/transformer/transformers.cjs +10 -8
  92. package/dist/transformer/transformers.d.cts +2 -0
  93. package/dist/transformer/transformers.d.ts +2 -0
  94. package/dist/transformer/transformers.js +9 -7
  95. package/dist/transformer/types.d.cts +16 -5
  96. package/dist/transformer/types.d.ts +16 -5
  97. package/dist/transformer.cjs +28 -9
  98. package/dist/transformer.d.cts +76 -1
  99. package/dist/transformer.d.ts +76 -1
  100. package/dist/transformer.js +28 -9
  101. package/dist/usage/usage-recorder.cjs +2 -2
  102. package/dist/usage/usage-recorder.d.cts +12 -2
  103. package/dist/usage/usage-recorder.d.ts +12 -2
  104. package/dist/usage/usage-recorder.js +1 -1
  105. package/dist/usage.cjs +20 -3
  106. package/dist/usage.d.cts +149 -0
  107. package/dist/usage.d.ts +149 -0
  108. package/dist/usage.js +20 -3
  109. package/package.json +2 -2
  110. package/dist/chunk-7VU7V2E4.js +0 -0
  111. package/dist/chunk-FZ46M34D.cjs +0 -1
  112. /package/dist/{chunk-EYZYXJTJ.cjs → chunk-QVOB2DNX.cjs} +0 -0
  113. /package/dist/{chunk-46RLHI7D.js → chunk-WTQMX2Q6.js} +0 -0
@@ -1,4 +1,6 @@
1
1
  import { Transformer, TransformerLogger, LLMProvider, TransformerContext, UnifiedChatRequest } from '../types.cjs';
2
+ import '@omnicross/contracts/llm-config';
3
+ import '@omnicross/contracts/completion-types';
2
4
 
3
5
  /**
4
6
  * OpenAIResponseTransformer - Transformer for OpenAI Responses API
@@ -35,11 +37,11 @@ declare class OpenAIResponseTransformer implements Transformer {
35
37
  /**
36
38
  * Transform unified request → Response API format
37
39
  */
38
- transformRequestIn(request: UnifiedChatRequest, provider: LLMProvider, _context: TransformerContext): Promise<Record<string, unknown>>;
40
+ transformRequestIn(request: UnifiedChatRequest, provider: LLMProvider, context: TransformerContext): Promise<Record<string, unknown>>;
39
41
  /**
40
42
  * Transform Response API request → unified format
41
43
  */
42
- transformRequestOut(request: unknown, _context: TransformerContext): Promise<UnifiedChatRequest>;
44
+ transformRequestOut(request: unknown, context: TransformerContext): Promise<UnifiedChatRequest>;
43
45
  /**
44
46
  * Transform Response API response → unified (OpenAI CC) format
45
47
  */
@@ -1,4 +1,6 @@
1
1
  import { Transformer, TransformerLogger, LLMProvider, TransformerContext, UnifiedChatRequest } from '../types.js';
2
+ import '@omnicross/contracts/llm-config';
3
+ import '@omnicross/contracts/completion-types';
2
4
 
3
5
  /**
4
6
  * OpenAIResponseTransformer - Transformer for OpenAI Responses API
@@ -35,11 +37,11 @@ declare class OpenAIResponseTransformer implements Transformer {
35
37
  /**
36
38
  * Transform unified request → Response API format
37
39
  */
38
- transformRequestIn(request: UnifiedChatRequest, provider: LLMProvider, _context: TransformerContext): Promise<Record<string, unknown>>;
40
+ transformRequestIn(request: UnifiedChatRequest, provider: LLMProvider, context: TransformerContext): Promise<Record<string, unknown>>;
39
41
  /**
40
42
  * Transform Response API request → unified format
41
43
  */
42
- transformRequestOut(request: unknown, _context: TransformerContext): Promise<UnifiedChatRequest>;
44
+ transformRequestOut(request: unknown, context: TransformerContext): Promise<UnifiedChatRequest>;
43
45
  /**
44
46
  * Transform Response API response → unified (OpenAI CC) format
45
47
  */
@@ -1,7 +1,8 @@
1
1
  import {
2
2
  OpenAIResponseTransformer
3
- } from "../../chunk-32O35CIF.js";
3
+ } from "../../chunk-45FHEOKW.js";
4
4
  import "../../chunk-FU7EAR73.js";
5
+ import "../../chunk-N2EIM2XJ.js";
5
6
  export {
6
7
  OpenAIResponseTransformer
7
8
  };
@@ -1,6 +1,7 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkOF3BECU2cjs = require('../../chunk-OF3BECU2.cjs');
3
+ var _chunk56QD3YW6cjs = require('../../chunk-56QD3YW6.cjs');
4
+ require('../../chunk-AOFWNWLT.cjs');
4
5
 
5
6
 
6
- exports.OpenAITransformer = _chunkOF3BECU2cjs.OpenAITransformer;
7
+ exports.OpenAITransformer = _chunk56QD3YW6cjs.OpenAITransformer;
@@ -1,4 +1,6 @@
1
1
  import { Transformer, TransformerLogger, UnifiedChatRequest, LLMProvider, TransformerContext } from '../types.cjs';
2
+ import '@omnicross/contracts/llm-config';
3
+ import '@omnicross/contracts/completion-types';
2
4
 
3
5
  /**
4
6
  * OpenAITransformer — the format-axis encoder for OpenAI Chat Completions
@@ -57,7 +59,7 @@ declare class OpenAITransformer implements Transformer {
57
59
  /**
58
60
  * Unified → OpenAI Chat Completions.
59
61
  */
60
- transformRequestIn(request: UnifiedChatRequest, _provider: LLMProvider, _context: TransformerContext): Promise<Record<string, unknown>>;
62
+ transformRequestIn(request: UnifiedChatRequest, provider: LLMProvider, _context: TransformerContext): Promise<Record<string, unknown>>;
61
63
  /**
62
64
  * OpenAI Chat Completions → Unified. Identity — see the module JSDoc for why
63
65
  * `reasoning_content` is NOT rewritten here.
@@ -1,4 +1,6 @@
1
1
  import { Transformer, TransformerLogger, UnifiedChatRequest, LLMProvider, TransformerContext } from '../types.js';
2
+ import '@omnicross/contracts/llm-config';
3
+ import '@omnicross/contracts/completion-types';
2
4
 
3
5
  /**
4
6
  * OpenAITransformer — the format-axis encoder for OpenAI Chat Completions
@@ -57,7 +59,7 @@ declare class OpenAITransformer implements Transformer {
57
59
  /**
58
60
  * Unified → OpenAI Chat Completions.
59
61
  */
60
- transformRequestIn(request: UnifiedChatRequest, _provider: LLMProvider, _context: TransformerContext): Promise<Record<string, unknown>>;
62
+ transformRequestIn(request: UnifiedChatRequest, provider: LLMProvider, _context: TransformerContext): Promise<Record<string, unknown>>;
61
63
  /**
62
64
  * OpenAI Chat Completions → Unified. Identity — see the module JSDoc for why
63
65
  * `reasoning_content` is NOT rewritten here.
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  OpenAITransformer
3
- } from "../../chunk-LB6EBS6Y.js";
3
+ } from "../../chunk-CCVRRJOX.js";
4
+ import "../../chunk-N2EIM2XJ.js";
4
5
  export {
5
6
  OpenAITransformer
6
7
  };
@@ -3,24 +3,26 @@
3
3
 
4
4
 
5
5
 
6
- var _chunk2Z4XM3H5cjs = require('../chunk-2Z4XM3H5.cjs');
6
+ var _chunkP7EM6BNDcjs = require('../chunk-P7EM6BND.cjs');
7
7
 
8
8
 
9
- var _chunkOXHNSZ53cjs = require('../chunk-OXHNSZ53.cjs');
9
+ var _chunkZQQUD66Mcjs = require('../chunk-ZQQUD66M.cjs');
10
10
 
11
11
 
12
- var _chunkV4TXMEJScjs = require('../chunk-V4TXMEJS.cjs');
12
+ var _chunk5LNYGCIWcjs = require('../chunk-5LNYGCIW.cjs');
13
13
 
14
14
 
15
- var _chunkOVQBNVSVcjs = require('../chunk-OVQBNVSV.cjs');
15
+ var _chunkCMVXX7ONcjs = require('../chunk-CMVXX7ON.cjs');
16
16
  require('../chunk-5RSZYQJH.cjs');
17
17
 
18
18
 
19
- var _chunkOF3BECU2cjs = require('../chunk-OF3BECU2.cjs');
19
+ var _chunk56QD3YW6cjs = require('../chunk-56QD3YW6.cjs');
20
20
 
21
21
 
22
- var _chunkOKMJLEXXcjs = require('../chunk-OKMJLEXX.cjs');
23
- require('../chunk-KBM2W6UY.cjs');
22
+ var _chunkOC6DOOFXcjs = require('../chunk-OC6DOOFX.cjs');
23
+ require('../chunk-RICPANBY.cjs');
24
+ require('../chunk-77USGNRW.cjs');
25
+ require('../chunk-AOFWNWLT.cjs');
24
26
 
25
27
 
26
28
 
@@ -31,4 +33,4 @@ require('../chunk-KBM2W6UY.cjs');
31
33
 
32
34
 
33
35
 
34
- exports.AnthropicTransformer = _chunkOXHNSZ53cjs.AnthropicTransformer; exports.BUILTIN_TRANSFORMER_NAMES = _chunk2Z4XM3H5cjs.BUILTIN_TRANSFORMER_NAMES; exports.BuiltinTransformers = _chunk2Z4XM3H5cjs.BuiltinTransformers; exports.GeminiCodeAssistTransformer = _chunkOKMJLEXXcjs.GeminiCodeAssistTransformer; exports.GeminiTransformer = _chunkV4TXMEJScjs.GeminiTransformer; exports.OpenAIResponseTransformer = _chunkOVQBNVSVcjs.OpenAIResponseTransformer; exports.OpenAITransformer = _chunkOF3BECU2cjs.OpenAITransformer; exports.getBuiltinTransformers = _chunk2Z4XM3H5cjs.getBuiltinTransformers; exports.registerBuiltinTransformers = _chunk2Z4XM3H5cjs.registerBuiltinTransformers;
36
+ exports.AnthropicTransformer = _chunkZQQUD66Mcjs.AnthropicTransformer; exports.BUILTIN_TRANSFORMER_NAMES = _chunkP7EM6BNDcjs.BUILTIN_TRANSFORMER_NAMES; exports.BuiltinTransformers = _chunkP7EM6BNDcjs.BuiltinTransformers; exports.GeminiCodeAssistTransformer = _chunkOC6DOOFXcjs.GeminiCodeAssistTransformer; exports.GeminiTransformer = _chunk5LNYGCIWcjs.GeminiTransformer; exports.OpenAIResponseTransformer = _chunkCMVXX7ONcjs.OpenAIResponseTransformer; exports.OpenAITransformer = _chunk56QD3YW6cjs.OpenAITransformer; exports.getBuiltinTransformers = _chunkP7EM6BNDcjs.getBuiltinTransformers; exports.registerBuiltinTransformers = _chunkP7EM6BNDcjs.registerBuiltinTransformers;
@@ -5,6 +5,8 @@ import { GeminiTransformer } from './transformers/GeminiTransformer.cjs';
5
5
  import { OpenAIResponseTransformer } from './transformers/OpenAIResponseTransformer.cjs';
6
6
  import { OpenAITransformer } from './transformers/OpenAITransformer.cjs';
7
7
  import './types.cjs';
8
+ import '@omnicross/contracts/llm-config';
9
+ import '@omnicross/contracts/completion-types';
8
10
 
9
11
  /**
10
12
  * Transformer Registry
@@ -5,6 +5,8 @@ import { GeminiTransformer } from './transformers/GeminiTransformer.js';
5
5
  import { OpenAIResponseTransformer } from './transformers/OpenAIResponseTransformer.js';
6
6
  import { OpenAITransformer } from './transformers/OpenAITransformer.js';
7
7
  import './types.js';
8
+ import '@omnicross/contracts/llm-config';
9
+ import '@omnicross/contracts/completion-types';
8
10
 
9
11
  /**
10
12
  * Transformer Registry
@@ -3,24 +3,26 @@ import {
3
3
  BuiltinTransformers,
4
4
  getBuiltinTransformers,
5
5
  registerBuiltinTransformers
6
- } from "../chunk-MYYR3HZL.js";
6
+ } from "../chunk-NGYOO5TO.js";
7
7
  import {
8
8
  AnthropicTransformer
9
- } from "../chunk-PEGTIPB3.js";
9
+ } from "../chunk-HKB656B4.js";
10
10
  import {
11
11
  GeminiTransformer
12
- } from "../chunk-LVUCAWMK.js";
12
+ } from "../chunk-55FMGZ3L.js";
13
13
  import {
14
14
  OpenAIResponseTransformer
15
- } from "../chunk-32O35CIF.js";
15
+ } from "../chunk-45FHEOKW.js";
16
16
  import "../chunk-FU7EAR73.js";
17
17
  import {
18
18
  OpenAITransformer
19
- } from "../chunk-LB6EBS6Y.js";
19
+ } from "../chunk-CCVRRJOX.js";
20
20
  import {
21
21
  GeminiCodeAssistTransformer
22
- } from "../chunk-N5T4M4GU.js";
23
- import "../chunk-TOVPMMHM.js";
22
+ } from "../chunk-2UTGX6FM.js";
23
+ import "../chunk-S3DYFEBE.js";
24
+ import "../chunk-WYVGULTQ.js";
25
+ import "../chunk-N2EIM2XJ.js";
24
26
  export {
25
27
  AnthropicTransformer,
26
28
  BUILTIN_TRANSFORMER_NAMES,
@@ -1,3 +1,7 @@
1
+ import { ModelConfig } from '@omnicross/contracts/llm-config';
2
+ import { ThinkLevel } from '@omnicross/contracts/completion-types';
3
+ export { ThinkLevel } from '@omnicross/contracts/completion-types';
4
+
1
5
  /**
2
6
  * TransformerService Types
3
7
  *
@@ -6,10 +10,7 @@
6
10
  *
7
11
  * @module transformer/types
8
12
  */
9
- /**
10
- * Thinking effort level for reasoning models
11
- */
12
- type ThinkLevel = 'none' | 'low' | 'medium' | 'high';
13
+
13
14
  /**
14
15
  * Thinking content with optional signature for extended context
15
16
  */
@@ -118,6 +119,8 @@ interface UnifiedChatRequest {
118
119
  tools?: UnifiedTool[];
119
120
  tool_choice?: ToolChoice;
120
121
  reasoning?: ReasoningConfig;
122
+ /** Native OpenAI Chat field retained by the identity-shaped ingress. */
123
+ reasoning_effort?: string;
121
124
  /**
122
125
  * Internal-only routing metadata. Populated by callers (CompletionService /
123
126
  * the host's engine adapters and proxy servers) so the usage-capture hook can attribute
@@ -255,6 +258,8 @@ interface LLMProvider {
255
258
  baseUrl: string;
256
259
  apiKey: string;
257
260
  models: string[];
261
+ /** Effective per-model capability overrides used by target encoders. */
262
+ modelConfigs?: Array<Pick<ModelConfig, 'id'> & Partial<ModelConfig>>;
258
263
  transformer?: TransformerChainConfig;
259
264
  /**
260
265
  * Resolved Google **Code Assist** project id, threaded onto the transformer
@@ -298,6 +303,12 @@ interface TransformerContext {
298
303
  logger?: TransformerLogger;
299
304
  /** Provider name */
300
305
  providerName?: string;
306
+ /**
307
+ * Native request format that supplied a recognized reasoning effort.
308
+ * Target encoders use this provenance to preserve same-format values while
309
+ * continuing to negotiate genuine cross-format conversions.
310
+ */
311
+ reasoningSourceFormat?: string;
301
312
  /** Additional context data */
302
313
  [key: string]: unknown;
303
314
  }
@@ -419,4 +430,4 @@ interface TransformerServiceConfig {
419
430
  transformers?: TransformerConfigEntry[];
420
431
  }
421
432
 
422
- export type { Annotation, ImageContent, LLMProvider, MessageContent, ModelRoute, ModelTransformerConfig, ReasoningConfig, RequestConfig, RequestRouteInfo, ResolvedTransformerChain, StreamChunk, TextContent, ThinkLevel, ThinkingContent, ToolCall, ToolChoice, ToolParameterSchema, TransformRequestResult, Transformer, TransformerChainConfig, TransformerConfigEntry, TransformerConstructor, TransformerContext, TransformerLogger, TransformerOptions, TransformerReference, TransformerServiceConfig, UnifiedChatRequest, UnifiedChatRequestMeta, UnifiedChatResponse, UnifiedMessage, UnifiedTool, UrlCitation };
433
+ export type { Annotation, ImageContent, LLMProvider, MessageContent, ModelRoute, ModelTransformerConfig, ReasoningConfig, RequestConfig, RequestRouteInfo, ResolvedTransformerChain, StreamChunk, TextContent, ThinkingContent, ToolCall, ToolChoice, ToolParameterSchema, TransformRequestResult, Transformer, TransformerChainConfig, TransformerConfigEntry, TransformerConstructor, TransformerContext, TransformerLogger, TransformerOptions, TransformerReference, TransformerServiceConfig, UnifiedChatRequest, UnifiedChatRequestMeta, UnifiedChatResponse, UnifiedMessage, UnifiedTool, UrlCitation };
@@ -1,3 +1,7 @@
1
+ import { ModelConfig } from '@omnicross/contracts/llm-config';
2
+ import { ThinkLevel } from '@omnicross/contracts/completion-types';
3
+ export { ThinkLevel } from '@omnicross/contracts/completion-types';
4
+
1
5
  /**
2
6
  * TransformerService Types
3
7
  *
@@ -6,10 +10,7 @@
6
10
  *
7
11
  * @module transformer/types
8
12
  */
9
- /**
10
- * Thinking effort level for reasoning models
11
- */
12
- type ThinkLevel = 'none' | 'low' | 'medium' | 'high';
13
+
13
14
  /**
14
15
  * Thinking content with optional signature for extended context
15
16
  */
@@ -118,6 +119,8 @@ interface UnifiedChatRequest {
118
119
  tools?: UnifiedTool[];
119
120
  tool_choice?: ToolChoice;
120
121
  reasoning?: ReasoningConfig;
122
+ /** Native OpenAI Chat field retained by the identity-shaped ingress. */
123
+ reasoning_effort?: string;
121
124
  /**
122
125
  * Internal-only routing metadata. Populated by callers (CompletionService /
123
126
  * the host's engine adapters and proxy servers) so the usage-capture hook can attribute
@@ -255,6 +258,8 @@ interface LLMProvider {
255
258
  baseUrl: string;
256
259
  apiKey: string;
257
260
  models: string[];
261
+ /** Effective per-model capability overrides used by target encoders. */
262
+ modelConfigs?: Array<Pick<ModelConfig, 'id'> & Partial<ModelConfig>>;
258
263
  transformer?: TransformerChainConfig;
259
264
  /**
260
265
  * Resolved Google **Code Assist** project id, threaded onto the transformer
@@ -298,6 +303,12 @@ interface TransformerContext {
298
303
  logger?: TransformerLogger;
299
304
  /** Provider name */
300
305
  providerName?: string;
306
+ /**
307
+ * Native request format that supplied a recognized reasoning effort.
308
+ * Target encoders use this provenance to preserve same-format values while
309
+ * continuing to negotiate genuine cross-format conversions.
310
+ */
311
+ reasoningSourceFormat?: string;
301
312
  /** Additional context data */
302
313
  [key: string]: unknown;
303
314
  }
@@ -419,4 +430,4 @@ interface TransformerServiceConfig {
419
430
  transformers?: TransformerConfigEntry[];
420
431
  }
421
432
 
422
- export type { Annotation, ImageContent, LLMProvider, MessageContent, ModelRoute, ModelTransformerConfig, ReasoningConfig, RequestConfig, RequestRouteInfo, ResolvedTransformerChain, StreamChunk, TextContent, ThinkLevel, ThinkingContent, ToolCall, ToolChoice, ToolParameterSchema, TransformRequestResult, Transformer, TransformerChainConfig, TransformerConfigEntry, TransformerConstructor, TransformerContext, TransformerLogger, TransformerOptions, TransformerReference, TransformerServiceConfig, UnifiedChatRequest, UnifiedChatRequestMeta, UnifiedChatResponse, UnifiedMessage, UnifiedTool, UrlCitation };
433
+ export type { Annotation, ImageContent, LLMProvider, MessageContent, ModelRoute, ModelTransformerConfig, ReasoningConfig, RequestConfig, RequestRouteInfo, ResolvedTransformerChain, StreamChunk, TextContent, ThinkingContent, ToolCall, ToolChoice, ToolParameterSchema, TransformRequestResult, Transformer, TransformerChainConfig, TransformerConfigEntry, TransformerConstructor, TransformerContext, TransformerLogger, TransformerOptions, TransformerReference, TransformerServiceConfig, UnifiedChatRequest, UnifiedChatRequestMeta, UnifiedChatResponse, UnifiedMessage, UnifiedTool, UrlCitation };
@@ -1,12 +1,12 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-FZ46M34D.cjs');
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-QVOB2DNX.cjs');
2
2
 
3
3
 
4
- var _chunk2Z4XM3H5cjs = require('./chunk-2Z4XM3H5.cjs');
5
- require('./chunk-OXHNSZ53.cjs');
6
- require('./chunk-V4TXMEJS.cjs');
7
- require('./chunk-OVQBNVSV.cjs');
4
+ var _chunkP7EM6BNDcjs = require('./chunk-P7EM6BND.cjs');
5
+ require('./chunk-ZQQUD66M.cjs');
6
+ require('./chunk-5LNYGCIW.cjs');
7
+ require('./chunk-CMVXX7ON.cjs');
8
8
  require('./chunk-5RSZYQJH.cjs');
9
- require('./chunk-OF3BECU2.cjs');
9
+ require('./chunk-56QD3YW6.cjs');
10
10
 
11
11
 
12
12
  var _chunkIIRPUVPHcjs = require('./chunk-IIRPUVPH.cjs');
@@ -14,10 +14,29 @@ require('./chunk-GBHYAGX3.cjs');
14
14
 
15
15
 
16
16
  var _chunk3OPYJG76cjs = require('./chunk-3OPYJG76.cjs');
17
- require('./chunk-OKMJLEXX.cjs');
18
- require('./chunk-KBM2W6UY.cjs');
17
+ require('./chunk-OC6DOOFX.cjs');
18
+ require('./chunk-RICPANBY.cjs');
19
+ require('./chunk-77USGNRW.cjs');
19
20
 
20
21
 
21
22
 
22
23
 
23
- exports.TransformerChainExecutor = _chunkIIRPUVPHcjs.TransformerChainExecutor; exports.TransformerService = _chunk3OPYJG76cjs.TransformerService; exports.registerBuiltinTransformers = _chunk2Z4XM3H5cjs.registerBuiltinTransformers;
24
+
25
+
26
+
27
+
28
+
29
+ var _chunkAOFWNWLTcjs = require('./chunk-AOFWNWLT.cjs');
30
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
+
42
+ exports.THINK_LEVELS = _chunkAOFWNWLTcjs.THINK_LEVELS; exports.TransformerChainExecutor = _chunkIIRPUVPHcjs.TransformerChainExecutor; exports.TransformerService = _chunk3OPYJG76cjs.TransformerService; exports.extractReasoningIntent = _chunkAOFWNWLTcjs.extractReasoningIntent; exports.normalizeThinkLevel = _chunkAOFWNWLTcjs.normalizeThinkLevel; exports.registerBuiltinTransformers = _chunkP7EM6BNDcjs.registerBuiltinTransformers; exports.resolveReasoningEffort = _chunkAOFWNWLTcjs.resolveReasoningEffort; exports.resolveReasoningPlan = _chunkAOFWNWLTcjs.resolveReasoningPlan; exports.resolveReasoningTokenLimit = _chunkAOFWNWLTcjs.resolveReasoningTokenLimit; exports.resolveRequestReasoning = _chunkAOFWNWLTcjs.resolveRequestReasoning; exports.resolveTargetModelCapabilities = _chunkAOFWNWLTcjs.resolveTargetModelCapabilities;
@@ -1,9 +1,84 @@
1
1
  export { ChainExecutionOptions, TransformerChainExecutor } from './transformer/TransformerChainExecutor.cjs';
2
2
  export { TransformerService } from './transformer/TransformerService.cjs';
3
3
  export { registerBuiltinTransformers } from './transformer/transformers.cjs';
4
- export { Annotation, ImageContent, LLMProvider, MessageContent, ModelRoute, ModelTransformerConfig, ReasoningConfig, RequestConfig, RequestRouteInfo, ResolvedTransformerChain, StreamChunk, TextContent, ThinkLevel, ThinkingContent, ToolCall, ToolChoice, ToolParameterSchema, TransformRequestResult, Transformer, TransformerChainConfig, TransformerConfigEntry, TransformerConstructor, TransformerContext, TransformerLogger, TransformerOptions, TransformerReference, TransformerServiceConfig, UnifiedChatRequest, UnifiedChatResponse, UnifiedMessage, UnifiedTool, UrlCitation } from './transformer/types.cjs';
4
+ import { ResolvedModelCapabilities } from '@omnicross/contracts/canonical-models';
5
+ import { ThinkLevel } from '@omnicross/contracts/completion-types';
6
+ export { ThinkLevel } from '@omnicross/contracts/completion-types';
7
+ import { ModelConfig } from '@omnicross/contracts/llm-config';
8
+ export { Annotation, ImageContent, LLMProvider, MessageContent, ModelRoute, ModelTransformerConfig, ReasoningConfig, RequestConfig, RequestRouteInfo, ResolvedTransformerChain, StreamChunk, TextContent, ThinkingContent, ToolCall, ToolChoice, ToolParameterSchema, TransformRequestResult, Transformer, TransformerChainConfig, TransformerConfigEntry, TransformerConstructor, TransformerContext, TransformerLogger, TransformerOptions, TransformerReference, TransformerServiceConfig, UnifiedChatRequest, UnifiedChatResponse, UnifiedMessage, UnifiedTool, UrlCitation } from './transformer/types.cjs';
5
9
  import './transformer/transformers/AnthropicTransformer.cjs';
6
10
  import './transformer/transformers/GeminiCodeAssistTransformer.cjs';
7
11
  import './transformer/transformers/GeminiTransformer.cjs';
8
12
  import './transformer/transformers/OpenAIResponseTransformer.cjs';
9
13
  import './transformer/transformers/OpenAITransformer.cjs';
14
+
15
+ declare const THINK_LEVELS: readonly ["none", "minimal", "low", "medium", "high", "xhigh", "max"];
16
+ type ReasoningTarget = 'openai-chat' | 'openai-responses' | 'anthropic' | 'gemini';
17
+ interface ReasoningIntent {
18
+ effort?: ThinkLevel;
19
+ enabled?: boolean;
20
+ /** Explicit reasoning budget from a normalized request. */
21
+ max_tokens?: number;
22
+ }
23
+ type ReasoningPlan = {
24
+ kind: 'off';
25
+ } | {
26
+ kind: 'level';
27
+ effort: ThinkLevel;
28
+ enabled: boolean;
29
+ } | {
30
+ kind: 'budget';
31
+ effort: ThinkLevel;
32
+ enabled: boolean;
33
+ budgetTokens: number;
34
+ };
35
+ interface ResolveReasoningPlanInput {
36
+ intent?: ReasoningIntent;
37
+ model: string;
38
+ provider?: ReasoningProvider;
39
+ target: ReasoningTarget;
40
+ /** Caller-visible bound used by legacy token-budget APIs. */
41
+ requestMaxTokens?: number;
42
+ /** Preserve a recognized native effort on a same-format round trip. */
43
+ preserveNativeEffort?: boolean;
44
+ }
45
+ interface ReasoningRequestLike {
46
+ model: string;
47
+ reasoning?: ReasoningIntent;
48
+ reasoning_effort?: unknown;
49
+ }
50
+ interface ResolveRequestReasoningOptions {
51
+ preserveNativeEffort?: boolean;
52
+ }
53
+ interface ReasoningProvider {
54
+ modelConfigs?: Array<Pick<ModelConfig, 'id'> & Partial<ModelConfig>>;
55
+ }
56
+ type TokenLimit = {
57
+ min: number;
58
+ max: number;
59
+ };
60
+ /** Normalize an untrusted wire value onto the shared seven-level domain. */
61
+ declare function normalizeThinkLevel(value: unknown): ThinkLevel | undefined;
62
+ /** Read normalized reasoning intent without mutating the request. */
63
+ declare function extractReasoningIntent(request: ReasoningRequestLike): ReasoningIntent | undefined;
64
+ /** Merge canonical metadata with the matching provider-row override. */
65
+ declare function resolveTargetModelCapabilities(targetModel: string, provider?: ReasoningProvider): ResolvedModelCapabilities;
66
+ /** Resolve an enabled effort to the nearest level supported by the target. */
67
+ declare function resolveReasoningEffort(requested: ThinkLevel, targetModel: string, provider?: ReasoningProvider): ThinkLevel;
68
+ /**
69
+ * Resolve token limits in provider-row → canonical → legacy regex → protocol
70
+ * fallback order. OpenAI discrete targets have no protocol budget fallback.
71
+ */
72
+ declare function resolveReasoningTokenLimit(model: string, provider: ReasoningProvider | undefined, target: ReasoningTarget): TokenLimit | undefined;
73
+ /**
74
+ * Resolve normalized reasoning intent into one semantic plan. Protocol adapters
75
+ * consume this result and only encode its wire shape.
76
+ */
77
+ declare function resolveReasoningPlan(input: ResolveReasoningPlanInput): ReasoningPlan | undefined;
78
+ /**
79
+ * Compatibility facade for callers that still consume a negotiated
80
+ * ReasoningIntent. New request builders should consume `resolveReasoningPlan`.
81
+ */
82
+ declare function resolveRequestReasoning(request: ReasoningRequestLike, provider?: ReasoningProvider, options?: ResolveRequestReasoningOptions): ReasoningIntent | undefined;
83
+
84
+ export { type ReasoningIntent, type ReasoningPlan, type ReasoningProvider, type ReasoningTarget, type ResolveReasoningPlanInput, THINK_LEVELS, extractReasoningIntent, normalizeThinkLevel, resolveReasoningEffort, resolveReasoningPlan, resolveReasoningTokenLimit, resolveRequestReasoning, resolveTargetModelCapabilities };
@@ -1,9 +1,84 @@
1
1
  export { ChainExecutionOptions, TransformerChainExecutor } from './transformer/TransformerChainExecutor.js';
2
2
  export { TransformerService } from './transformer/TransformerService.js';
3
3
  export { registerBuiltinTransformers } from './transformer/transformers.js';
4
- export { Annotation, ImageContent, LLMProvider, MessageContent, ModelRoute, ModelTransformerConfig, ReasoningConfig, RequestConfig, RequestRouteInfo, ResolvedTransformerChain, StreamChunk, TextContent, ThinkLevel, ThinkingContent, ToolCall, ToolChoice, ToolParameterSchema, TransformRequestResult, Transformer, TransformerChainConfig, TransformerConfigEntry, TransformerConstructor, TransformerContext, TransformerLogger, TransformerOptions, TransformerReference, TransformerServiceConfig, UnifiedChatRequest, UnifiedChatResponse, UnifiedMessage, UnifiedTool, UrlCitation } from './transformer/types.js';
4
+ import { ResolvedModelCapabilities } from '@omnicross/contracts/canonical-models';
5
+ import { ThinkLevel } from '@omnicross/contracts/completion-types';
6
+ export { ThinkLevel } from '@omnicross/contracts/completion-types';
7
+ import { ModelConfig } from '@omnicross/contracts/llm-config';
8
+ export { Annotation, ImageContent, LLMProvider, MessageContent, ModelRoute, ModelTransformerConfig, ReasoningConfig, RequestConfig, RequestRouteInfo, ResolvedTransformerChain, StreamChunk, TextContent, ThinkingContent, ToolCall, ToolChoice, ToolParameterSchema, TransformRequestResult, Transformer, TransformerChainConfig, TransformerConfigEntry, TransformerConstructor, TransformerContext, TransformerLogger, TransformerOptions, TransformerReference, TransformerServiceConfig, UnifiedChatRequest, UnifiedChatResponse, UnifiedMessage, UnifiedTool, UrlCitation } from './transformer/types.js';
5
9
  import './transformer/transformers/AnthropicTransformer.js';
6
10
  import './transformer/transformers/GeminiCodeAssistTransformer.js';
7
11
  import './transformer/transformers/GeminiTransformer.js';
8
12
  import './transformer/transformers/OpenAIResponseTransformer.js';
9
13
  import './transformer/transformers/OpenAITransformer.js';
14
+
15
+ declare const THINK_LEVELS: readonly ["none", "minimal", "low", "medium", "high", "xhigh", "max"];
16
+ type ReasoningTarget = 'openai-chat' | 'openai-responses' | 'anthropic' | 'gemini';
17
+ interface ReasoningIntent {
18
+ effort?: ThinkLevel;
19
+ enabled?: boolean;
20
+ /** Explicit reasoning budget from a normalized request. */
21
+ max_tokens?: number;
22
+ }
23
+ type ReasoningPlan = {
24
+ kind: 'off';
25
+ } | {
26
+ kind: 'level';
27
+ effort: ThinkLevel;
28
+ enabled: boolean;
29
+ } | {
30
+ kind: 'budget';
31
+ effort: ThinkLevel;
32
+ enabled: boolean;
33
+ budgetTokens: number;
34
+ };
35
+ interface ResolveReasoningPlanInput {
36
+ intent?: ReasoningIntent;
37
+ model: string;
38
+ provider?: ReasoningProvider;
39
+ target: ReasoningTarget;
40
+ /** Caller-visible bound used by legacy token-budget APIs. */
41
+ requestMaxTokens?: number;
42
+ /** Preserve a recognized native effort on a same-format round trip. */
43
+ preserveNativeEffort?: boolean;
44
+ }
45
+ interface ReasoningRequestLike {
46
+ model: string;
47
+ reasoning?: ReasoningIntent;
48
+ reasoning_effort?: unknown;
49
+ }
50
+ interface ResolveRequestReasoningOptions {
51
+ preserveNativeEffort?: boolean;
52
+ }
53
+ interface ReasoningProvider {
54
+ modelConfigs?: Array<Pick<ModelConfig, 'id'> & Partial<ModelConfig>>;
55
+ }
56
+ type TokenLimit = {
57
+ min: number;
58
+ max: number;
59
+ };
60
+ /** Normalize an untrusted wire value onto the shared seven-level domain. */
61
+ declare function normalizeThinkLevel(value: unknown): ThinkLevel | undefined;
62
+ /** Read normalized reasoning intent without mutating the request. */
63
+ declare function extractReasoningIntent(request: ReasoningRequestLike): ReasoningIntent | undefined;
64
+ /** Merge canonical metadata with the matching provider-row override. */
65
+ declare function resolveTargetModelCapabilities(targetModel: string, provider?: ReasoningProvider): ResolvedModelCapabilities;
66
+ /** Resolve an enabled effort to the nearest level supported by the target. */
67
+ declare function resolveReasoningEffort(requested: ThinkLevel, targetModel: string, provider?: ReasoningProvider): ThinkLevel;
68
+ /**
69
+ * Resolve token limits in provider-row → canonical → legacy regex → protocol
70
+ * fallback order. OpenAI discrete targets have no protocol budget fallback.
71
+ */
72
+ declare function resolveReasoningTokenLimit(model: string, provider: ReasoningProvider | undefined, target: ReasoningTarget): TokenLimit | undefined;
73
+ /**
74
+ * Resolve normalized reasoning intent into one semantic plan. Protocol adapters
75
+ * consume this result and only encode its wire shape.
76
+ */
77
+ declare function resolveReasoningPlan(input: ResolveReasoningPlanInput): ReasoningPlan | undefined;
78
+ /**
79
+ * Compatibility facade for callers that still consume a negotiated
80
+ * ReasoningIntent. New request builders should consume `resolveReasoningPlan`.
81
+ */
82
+ declare function resolveRequestReasoning(request: ReasoningRequestLike, provider?: ReasoningProvider, options?: ResolveRequestReasoningOptions): ReasoningIntent | undefined;
83
+
84
+ export { type ReasoningIntent, type ReasoningPlan, type ReasoningProvider, type ReasoningTarget, type ResolveReasoningPlanInput, THINK_LEVELS, extractReasoningIntent, normalizeThinkLevel, resolveReasoningEffort, resolveReasoningPlan, resolveReasoningTokenLimit, resolveRequestReasoning, resolveTargetModelCapabilities };
@@ -1,12 +1,12 @@
1
- import "./chunk-46RLHI7D.js";
1
+ import "./chunk-WTQMX2Q6.js";
2
2
  import {
3
3
  registerBuiltinTransformers
4
- } from "./chunk-MYYR3HZL.js";
5
- import "./chunk-PEGTIPB3.js";
6
- import "./chunk-LVUCAWMK.js";
7
- import "./chunk-32O35CIF.js";
4
+ } from "./chunk-NGYOO5TO.js";
5
+ import "./chunk-HKB656B4.js";
6
+ import "./chunk-55FMGZ3L.js";
7
+ import "./chunk-45FHEOKW.js";
8
8
  import "./chunk-FU7EAR73.js";
9
- import "./chunk-LB6EBS6Y.js";
9
+ import "./chunk-CCVRRJOX.js";
10
10
  import {
11
11
  TransformerChainExecutor
12
12
  } from "./chunk-WNKWAEUR.js";
@@ -14,10 +14,29 @@ import "./chunk-MZNPGW5Q.js";
14
14
  import {
15
15
  TransformerService
16
16
  } from "./chunk-DK4A7DLE.js";
17
- import "./chunk-N5T4M4GU.js";
18
- import "./chunk-TOVPMMHM.js";
17
+ import "./chunk-2UTGX6FM.js";
18
+ import "./chunk-S3DYFEBE.js";
19
+ import "./chunk-WYVGULTQ.js";
20
+ import {
21
+ THINK_LEVELS,
22
+ extractReasoningIntent,
23
+ normalizeThinkLevel,
24
+ resolveReasoningEffort,
25
+ resolveReasoningPlan,
26
+ resolveReasoningTokenLimit,
27
+ resolveRequestReasoning,
28
+ resolveTargetModelCapabilities
29
+ } from "./chunk-N2EIM2XJ.js";
19
30
  export {
31
+ THINK_LEVELS,
20
32
  TransformerChainExecutor,
21
33
  TransformerService,
22
- registerBuiltinTransformers
34
+ extractReasoningIntent,
35
+ normalizeThinkLevel,
36
+ registerBuiltinTransformers,
37
+ resolveReasoningEffort,
38
+ resolveReasoningPlan,
39
+ resolveReasoningTokenLimit,
40
+ resolveRequestReasoning,
41
+ resolveTargetModelCapabilities
23
42
  };
@@ -1,7 +1,7 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkEPN67EGPcjs = require('../chunk-EPN67EGP.cjs');
3
+ var _chunk5UK3KLE2cjs = require('../chunk-5UK3KLE2.cjs');
4
4
  require('../chunk-XSVNC2UD.cjs');
5
5
 
6
6
 
7
- exports.UsageRecorder = _chunkEPN67EGPcjs.UsageRecorder;
7
+ exports.UsageRecorder = _chunk5UK3KLE2cjs.UsageRecorder;
@@ -1,8 +1,8 @@
1
- import { PricingEngine } from './pricing-engine.cjs';
2
- import { UsageCacheKeySource, UsageDateRange, UsageTotals, ModelUsageRow, ApiKeyUsageRow, UsageTimeBucket, UsageTimeSeriesBucket, MessageUsageRow, SessionCacheStats } from '@omnicross/contracts/usage-stats-types';
1
+ import { UsageCacheKeySource, UsageEventInput, UsageDateRange, UsageTotals, ModelUsageRow, ApiKeyUsageRow, UsageTimeBucket, UsageTimeSeriesBucket, MessageUsageRow, SessionCacheStats } from '@omnicross/contracts/usage-stats-types';
3
2
  import { UsageEngineOrigin, UsageTokens } from '@omnicross/contracts/usage-types';
4
3
  import { L as Logger } from '../logger-4GvQNzhE.cjs';
5
4
  import { UsageEventStore } from '../ports/usage-event-store.cjs';
5
+ import { PricingEngine } from './pricing-engine.cjs';
6
6
  import '@omnicross/contracts/pricing-types';
7
7
  import '../ports/pricing-store.cjs';
8
8
 
@@ -69,6 +69,15 @@ interface UsageRecorderOptions {
69
69
  * Absent ⇒ no-op (byte-identical for hosts/tests that do not wire it).
70
70
  */
71
71
  onRecord?: (apiKeyId: string, costUsd: number, now: number) => void;
72
+ /**
73
+ * OPTIONAL per-request hook (live-throughput). Called synchronously with the
74
+ * FINISHED row, immediately before the store insert, for EVERY recorded
75
+ * request — attributed or not. Distinct from `onRecord`, which is gated on
76
+ * `apiKeyId` and carries only the cost: a rate metric must see subscription-
77
+ * account traffic too, and needs the token counts. Absent ⇒ no-op
78
+ * (byte-identical for hosts/tests that do not wire it).
79
+ */
80
+ onEvent?: (row: UsageEventInput, at: number) => void;
72
81
  }
73
82
  declare class UsageRecorder {
74
83
  private store;
@@ -76,6 +85,7 @@ declare class UsageRecorder {
76
85
  private logger;
77
86
  private defer;
78
87
  private onRecord?;
88
+ private onEvent?;
79
89
  constructor(store: UsageEventStore, pricing: PricingEngine, logger: Logger, options?: UsageRecorderOptions);
80
90
  /**
81
91
  * Record one LLM request. Returns immediately — the actual store insert is