@usagetap/sdk 1.1.0 → 1.2.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 (44) hide show
  1. package/README.md +25 -1
  2. package/dist/adapters/anthropic.cjs +67 -1
  3. package/dist/adapters/anthropic.cjs.map +1 -1
  4. package/dist/adapters/anthropic.d.cts +10 -1
  5. package/dist/adapters/anthropic.d.ts +10 -1
  6. package/dist/adapters/anthropic.mjs +67 -1
  7. package/dist/adapters/anthropic.mjs.map +1 -1
  8. package/dist/adapters/openai.cjs +67 -1
  9. package/dist/adapters/openai.cjs.map +1 -1
  10. package/dist/adapters/openai.d.cts +10 -1
  11. package/dist/adapters/openai.d.ts +10 -1
  12. package/dist/adapters/openai.mjs +67 -1
  13. package/dist/adapters/openai.mjs.map +1 -1
  14. package/dist/adapters/openrouter.cjs.map +1 -1
  15. package/dist/adapters/openrouter.d.cts +1 -1
  16. package/dist/adapters/openrouter.d.ts +1 -1
  17. package/dist/adapters/openrouter.mjs.map +1 -1
  18. package/dist/anthropic/index.cjs +67 -1
  19. package/dist/anthropic/index.cjs.map +1 -1
  20. package/dist/anthropic/index.d.cts +1 -1
  21. package/dist/anthropic/index.d.ts +1 -1
  22. package/dist/anthropic/index.mjs +67 -1
  23. package/dist/anthropic/index.mjs.map +1 -1
  24. package/dist/{client-BA-QlnRq.d.cts → client-EMXt9_fA.d.cts} +77 -8
  25. package/dist/{client-BA-QlnRq.d.ts → client-EMXt9_fA.d.ts} +77 -8
  26. package/dist/express/index.cjs +67 -1
  27. package/dist/express/index.cjs.map +1 -1
  28. package/dist/express/index.d.cts +1 -1
  29. package/dist/express/index.d.ts +1 -1
  30. package/dist/express/index.mjs +67 -1
  31. package/dist/express/index.mjs.map +1 -1
  32. package/dist/index.cjs +217 -22
  33. package/dist/index.cjs.map +1 -1
  34. package/dist/index.d.cts +2 -2
  35. package/dist/index.d.ts +2 -2
  36. package/dist/index.mjs +217 -23
  37. package/dist/index.mjs.map +1 -1
  38. package/dist/openai/index.cjs +67 -1
  39. package/dist/openai/index.cjs.map +1 -1
  40. package/dist/openai/index.d.cts +1 -1
  41. package/dist/openai/index.d.ts +1 -1
  42. package/dist/openai/index.mjs +67 -1
  43. package/dist/openai/index.mjs.map +1 -1
  44. package/package.json +1 -1
@@ -83,14 +83,22 @@ interface VendorHints {
83
83
  }
84
84
  interface PromptCompressionRequest {
85
85
  callId: string;
86
- input: unknown;
87
- provider?: "heuristic" | "toon" | "thetokencompany";
86
+ input?: unknown;
87
+ text?: string;
88
+ provider?: "heuristic" | "toon" | "thetokencompany" | "usagetap";
89
+ model?: string;
88
90
  tokenCompanyModel?: string;
91
+ /** Provider-neutral compression aggressiveness from 0.0 to 1.0. */
92
+ aggressiveness?: number;
93
+ /** @deprecated Use aggressiveness instead. */
89
94
  tokenCompanyAggressiveness?: number;
90
95
  tokenCompanyAppId?: string;
96
+ usageTapCompressionModel?: string;
97
+ /** @deprecated Use aggressiveness instead. */
98
+ usageTapCompressionAggressiveness?: number;
91
99
  }
92
100
  interface PromptCompressionTelemetry {
93
- provider: "heuristic" | "toon" | "thetokencompany";
101
+ provider: "heuristic" | "toon" | "thetokencompany" | "usagetap";
94
102
  originalCharacters: number;
95
103
  compressedCharacters: number;
96
104
  savedCharacters: number;
@@ -334,11 +342,24 @@ interface UsageTapClientOptions {
334
342
  /** Override endpoint for The Token Company compatible compression APIs. */
335
343
  tokenCompanyEndpoint?: string;
336
344
  /** Default model for The Token Company compression. */
345
+ model?: string;
337
346
  tokenCompanyModel?: string;
338
- /** Default aggressiveness for The Token Company compression, from 0.0 to 1.0. */
347
+ /** Default compression aggressiveness, from 0.0 to 1.0. */
348
+ aggressiveness?: number;
349
+ /** @deprecated Use aggressiveness instead. */
339
350
  tokenCompanyAggressiveness?: number;
340
351
  /** Optional application identifier sent to The Token Company. */
341
352
  tokenCompanyAppId?: string;
353
+ /** API key for UsageTap prompt compression. Defaults to apiKey when omitted. */
354
+ usageTapCompressionApiKey?: string;
355
+ /** Override endpoint for UsageTap-compatible prompt compression APIs. */
356
+ usageTapCompressionEndpoint?: string;
357
+ /** Override endpoint for UsageTap-compatible message/request compression APIs. */
358
+ usageTapCompressionMessagesEndpoint?: string;
359
+ /** Default model for UsageTap prompt compression. */
360
+ usageTapCompressionModel?: string;
361
+ /** @deprecated Use aggressiveness instead. */
362
+ usageTapCompressionAggressiveness?: number;
342
363
  }
343
364
  interface RequestOptions {
344
365
  signal?: AbortSignal;
@@ -347,11 +368,29 @@ interface RequestOptions {
347
368
  }
348
369
  interface PromptCompressionStandaloneOptions {
349
370
  signal?: AbortSignal;
350
- provider?: "heuristic" | "toon" | "thetokencompany";
371
+ provider?: "heuristic" | "toon" | "thetokencompany" | "usagetap";
351
372
  failOpen?: boolean;
373
+ model?: string;
352
374
  tokenCompanyModel?: string;
375
+ /** Provider-neutral compression aggressiveness from 0.0 to 1.0. */
376
+ aggressiveness?: number;
377
+ /** @deprecated Use aggressiveness instead. */
353
378
  tokenCompanyAggressiveness?: number;
354
379
  tokenCompanyAppId?: string;
380
+ usageTapCompressionModel?: string;
381
+ /** @deprecated Use aggressiveness instead. */
382
+ usageTapCompressionAggressiveness?: number;
383
+ }
384
+ type PromptCompressionMessageRole$1 = "system" | "user" | "tool" | "assistant";
385
+ type PromptCompressionRoleAggressiveness$1 = Partial<Record<PromptCompressionMessageRole$1, number>>;
386
+ type PromptCompressionMessagesAggressiveness$1 = number | PromptCompressionRoleAggressiveness$1;
387
+ interface PromptCompressionMessagesOptions extends RequestOptions {
388
+ provider?: "usagetap";
389
+ failOpen?: boolean;
390
+ /** Provider-neutral scalar or per-role compression aggressiveness. */
391
+ aggressiveness?: PromptCompressionMessagesAggressiveness$1;
392
+ /** @deprecated Use aggressiveness instead. */
393
+ usageTapCompressionAggressiveness?: PromptCompressionMessagesAggressiveness$1;
355
394
  }
356
395
  interface RecordPromptCompressionRequest {
357
396
  callId: string;
@@ -492,15 +531,36 @@ interface UsageMetricEvent {
492
531
  correlationId?: string;
493
532
  }
494
533
 
495
- type PromptCompressionProvider = "heuristic" | "toon" | "thetokencompany";
534
+ type PromptCompressionProvider = "heuristic" | "toon" | "thetokencompany" | "usagetap";
535
+ type PromptCompressionMessageRole = "system" | "user" | "tool" | "assistant";
536
+ type PromptCompressionRoleAggressiveness = Partial<Record<PromptCompressionMessageRole, number>>;
537
+ type PromptCompressionMessagesAggressiveness = number | PromptCompressionRoleAggressiveness;
496
538
  interface PromptCompressionInput {
497
- input: unknown;
539
+ input?: unknown;
540
+ text?: string;
498
541
  provider?: PromptCompressionProvider;
499
542
  tokenCompanyApiKey?: string;
500
543
  tokenCompanyEndpoint?: string;
544
+ model?: string;
501
545
  tokenCompanyModel?: string;
546
+ aggressiveness?: number;
502
547
  tokenCompanyAggressiveness?: number;
503
548
  tokenCompanyAppId?: string;
549
+ usageTapCompressionApiKey?: string;
550
+ usageTapCompressionEndpoint?: string;
551
+ usageTapCompressionModel?: string;
552
+ usageTapCompressionAggressiveness?: number;
553
+ fetchImpl?: typeof fetch;
554
+ signal?: AbortSignal;
555
+ failOpen?: boolean;
556
+ }
557
+ interface PromptCompressionMessagesInput<TInput = unknown> {
558
+ input: TInput;
559
+ provider?: Extract<PromptCompressionProvider, "usagetap">;
560
+ usageTapCompressionApiKey?: string;
561
+ usageTapCompressionMessagesEndpoint?: string;
562
+ aggressiveness?: PromptCompressionMessagesAggressiveness;
563
+ usageTapCompressionAggressiveness?: PromptCompressionMessagesAggressiveness;
504
564
  fetchImpl?: typeof fetch;
505
565
  signal?: AbortSignal;
506
566
  failOpen?: boolean;
@@ -524,6 +584,7 @@ declare const protect: typeof protectPromptText;
524
584
  declare function compressPrompt<TInput = unknown>(options: PromptCompressionInput): Promise<PromptCompressionResult<TInput>>;
525
585
  declare function compressPromptHeuristic<TInput = unknown>(input: TInput): PromptCompressionResult<TInput>;
526
586
  declare function compressPromptToon<TInput = unknown>(input: TInput): PromptCompressionResult<TInput>;
587
+ declare function compressPromptMessages<TInput = unknown>(options: PromptCompressionMessagesInput<TInput>): Promise<PromptCompressionResult<TInput>>;
527
588
  declare function estimatePromptTokens(input: unknown): number;
528
589
 
529
590
  declare class UsageTapClient {
@@ -541,15 +602,23 @@ declare class UsageTapClient {
541
602
  private readonly autoIdempotency;
542
603
  private readonly tokenCompanyApiKey?;
543
604
  private readonly tokenCompanyEndpoint?;
605
+ private readonly model?;
544
606
  private readonly tokenCompanyModel?;
607
+ private readonly aggressiveness?;
545
608
  private readonly tokenCompanyAggressiveness?;
546
609
  private readonly tokenCompanyAppId?;
610
+ private readonly usageTapCompressionApiKey?;
611
+ private readonly usageTapCompressionEndpoint?;
612
+ private readonly usageTapCompressionMessagesEndpoint?;
613
+ private readonly usageTapCompressionModel?;
614
+ private readonly usageTapCompressionAggressiveness?;
547
615
  constructor(options: UsageTapClientOptions);
548
616
  beginCall(request: BeginCallRequest, options?: BeginCallOptions): Promise<UsageTapSuccessResponse<BeginCallResponseBody>>;
549
617
  promptCompress(request: PromptCompressionRequest, options?: PromptCompressionOptions): Promise<PromptCompressionResult & {
550
618
  callId: string;
551
619
  }>;
552
620
  compressPromptInput<TInput = unknown>(input: TInput, options?: PromptCompressionStandaloneOptions): Promise<PromptCompressionResult<TInput>>;
621
+ compressPromptMessages<TInput = unknown>(input: TInput, options?: PromptCompressionMessagesOptions): Promise<PromptCompressionResult<TInput>>;
553
622
  recordPromptCompression(request: RecordPromptCompressionRequest, options?: PromptCompressionOptions): Promise<UsageTapSuccessResponse<PromptCompressionResponseBody>>;
554
623
  endCall(request: EndCallRequest, options?: EndCallOptions): Promise<UsageTapSuccessResponse<EndCallResponseBody>>;
555
624
  checkUsage(request: CheckUsageRequest, options?: CheckUsageOptions): Promise<UsageTapSuccessResponse<CheckUsageResponseBody>>;
@@ -570,4 +639,4 @@ declare class UsageTapClient {
570
639
  private toApiError;
571
640
  }
572
641
 
573
- export { type RetryOptions as $, type IncrementCustomMeterResponseBody as A, type BeginCallRequest as B, type CreateCustomerOptions as C, type CustomMeterSlot as D, type EndCallRequest as E, type EndCallOptions as F, type EndCallResponseBody as G, type BalanceSummary as H, type IncrementCustomMeterOptions as I, type SpendVelocityWindow as J, type SpendVelocityWindowKey as K, type EntitlementHints as L, type PlanSummary as M, type MeterSummary as N, type MeterSnapshot as O, type PromptCompressionProvider as P, type MeteredUsage as Q, type RecordPromptCompressionRequest as R, type SpendVelocitySnapshot as S, type RateLimitsSnapshot as T, UsageTapClient as U, type VendorHints as V, type WithUsageOptions as W, type RemainingRatios as X, type RollingCallsRateLimitState as Y, type RequestedEntitlements as Z, type AllowedEntitlements as _, type PromptCompressionTelemetry as a, type UsageTapClientOptions as a0, type UsageTapErrorResponse as a1, type UsageTapResultEnvelope as a2, type UsageTapResultStatus as a3, type UsageTapLogEntry as a4, type WithUsageContext as a5, type LimitType as a6, type SubscriptionSnapshot as a7, type ModelHints as a8, type IdempotencyMetadata as a9, type UsageMetricEvent as aa, type UsageTapSuccessResponse as b, type BeginCallResponseBody as c, compressPrompt as d, compressPromptHeuristic as e, compressPromptToon as f, estimatePromptTokens as g, protectPromptText as h, type PromptCompressionInput as i, type PromptCompressionResult as j, type BeginCallOptions as k, type PromptCompressionRequest as l, type PromptCompressionOptions as m, type PromptCompressionResponseBody as n, type PromptCompressionStandaloneOptions as o, protect as p, type CreateCustomerRequest as q, type CreateCustomerResponseBody as r, type CheckUsageOptions as s, type CheckUsageRequest as t, type CheckUsageResponseBody as u, type ChangePlanOptions as v, type ChangePlanRequest as w, type ChangePlanResponseBody as x, type ChangePlanStrategy as y, type IncrementCustomMeterRequest as z };
642
+ export { type MeteredUsage as $, type CheckUsageResponseBody as A, type BeginCallRequest as B, type CreateCustomerOptions as C, type ChangePlanOptions as D, type EndCallRequest as E, type ChangePlanRequest as F, type ChangePlanResponseBody as G, type ChangePlanStrategy as H, type IncrementCustomMeterOptions as I, type IncrementCustomMeterRequest as J, type IncrementCustomMeterResponseBody as K, type CustomMeterSlot as L, type EndCallOptions as M, type EndCallResponseBody as N, type BalanceSummary as O, type PromptCompressionProvider as P, type SpendVelocityWindow as Q, type RecordPromptCompressionRequest as R, type SpendVelocitySnapshot as S, type SpendVelocityWindowKey as T, UsageTapClient as U, type VendorHints as V, type WithUsageOptions as W, type EntitlementHints as X, type PlanSummary as Y, type MeterSummary as Z, type MeterSnapshot as _, type PromptCompressionTelemetry as a, type RateLimitsSnapshot as a0, type RemainingRatios as a1, type RollingCallsRateLimitState as a2, type RequestedEntitlements as a3, type AllowedEntitlements as a4, type RetryOptions as a5, type UsageTapClientOptions as a6, type UsageTapErrorResponse as a7, type UsageTapResultEnvelope as a8, type UsageTapResultStatus as a9, type UsageTapLogEntry as aa, type WithUsageContext as ab, type LimitType as ac, type SubscriptionSnapshot as ad, type ModelHints as ae, type IdempotencyMetadata as af, type UsageMetricEvent as ag, type UsageTapSuccessResponse as b, type BeginCallResponseBody as c, compressPrompt as d, compressPromptMessages as e, compressPromptHeuristic as f, compressPromptToon as g, estimatePromptTokens as h, protectPromptText as i, type PromptCompressionInput as j, type PromptCompressionMessagesAggressiveness as k, type PromptCompressionMessagesInput as l, type PromptCompressionMessageRole as m, type PromptCompressionResult as n, type PromptCompressionRoleAggressiveness as o, protect as p, type BeginCallOptions as q, type PromptCompressionRequest as r, type PromptCompressionOptions as s, type PromptCompressionMessagesOptions as t, type PromptCompressionResponseBody as u, type PromptCompressionStandaloneOptions as v, type CreateCustomerRequest as w, type CreateCustomerResponseBody as x, type CheckUsageOptions as y, type CheckUsageRequest as z };
@@ -83,14 +83,22 @@ interface VendorHints {
83
83
  }
84
84
  interface PromptCompressionRequest {
85
85
  callId: string;
86
- input: unknown;
87
- provider?: "heuristic" | "toon" | "thetokencompany";
86
+ input?: unknown;
87
+ text?: string;
88
+ provider?: "heuristic" | "toon" | "thetokencompany" | "usagetap";
89
+ model?: string;
88
90
  tokenCompanyModel?: string;
91
+ /** Provider-neutral compression aggressiveness from 0.0 to 1.0. */
92
+ aggressiveness?: number;
93
+ /** @deprecated Use aggressiveness instead. */
89
94
  tokenCompanyAggressiveness?: number;
90
95
  tokenCompanyAppId?: string;
96
+ usageTapCompressionModel?: string;
97
+ /** @deprecated Use aggressiveness instead. */
98
+ usageTapCompressionAggressiveness?: number;
91
99
  }
92
100
  interface PromptCompressionTelemetry {
93
- provider: "heuristic" | "toon" | "thetokencompany";
101
+ provider: "heuristic" | "toon" | "thetokencompany" | "usagetap";
94
102
  originalCharacters: number;
95
103
  compressedCharacters: number;
96
104
  savedCharacters: number;
@@ -334,11 +342,24 @@ interface UsageTapClientOptions {
334
342
  /** Override endpoint for The Token Company compatible compression APIs. */
335
343
  tokenCompanyEndpoint?: string;
336
344
  /** Default model for The Token Company compression. */
345
+ model?: string;
337
346
  tokenCompanyModel?: string;
338
- /** Default aggressiveness for The Token Company compression, from 0.0 to 1.0. */
347
+ /** Default compression aggressiveness, from 0.0 to 1.0. */
348
+ aggressiveness?: number;
349
+ /** @deprecated Use aggressiveness instead. */
339
350
  tokenCompanyAggressiveness?: number;
340
351
  /** Optional application identifier sent to The Token Company. */
341
352
  tokenCompanyAppId?: string;
353
+ /** API key for UsageTap prompt compression. Defaults to apiKey when omitted. */
354
+ usageTapCompressionApiKey?: string;
355
+ /** Override endpoint for UsageTap-compatible prompt compression APIs. */
356
+ usageTapCompressionEndpoint?: string;
357
+ /** Override endpoint for UsageTap-compatible message/request compression APIs. */
358
+ usageTapCompressionMessagesEndpoint?: string;
359
+ /** Default model for UsageTap prompt compression. */
360
+ usageTapCompressionModel?: string;
361
+ /** @deprecated Use aggressiveness instead. */
362
+ usageTapCompressionAggressiveness?: number;
342
363
  }
343
364
  interface RequestOptions {
344
365
  signal?: AbortSignal;
@@ -347,11 +368,29 @@ interface RequestOptions {
347
368
  }
348
369
  interface PromptCompressionStandaloneOptions {
349
370
  signal?: AbortSignal;
350
- provider?: "heuristic" | "toon" | "thetokencompany";
371
+ provider?: "heuristic" | "toon" | "thetokencompany" | "usagetap";
351
372
  failOpen?: boolean;
373
+ model?: string;
352
374
  tokenCompanyModel?: string;
375
+ /** Provider-neutral compression aggressiveness from 0.0 to 1.0. */
376
+ aggressiveness?: number;
377
+ /** @deprecated Use aggressiveness instead. */
353
378
  tokenCompanyAggressiveness?: number;
354
379
  tokenCompanyAppId?: string;
380
+ usageTapCompressionModel?: string;
381
+ /** @deprecated Use aggressiveness instead. */
382
+ usageTapCompressionAggressiveness?: number;
383
+ }
384
+ type PromptCompressionMessageRole$1 = "system" | "user" | "tool" | "assistant";
385
+ type PromptCompressionRoleAggressiveness$1 = Partial<Record<PromptCompressionMessageRole$1, number>>;
386
+ type PromptCompressionMessagesAggressiveness$1 = number | PromptCompressionRoleAggressiveness$1;
387
+ interface PromptCompressionMessagesOptions extends RequestOptions {
388
+ provider?: "usagetap";
389
+ failOpen?: boolean;
390
+ /** Provider-neutral scalar or per-role compression aggressiveness. */
391
+ aggressiveness?: PromptCompressionMessagesAggressiveness$1;
392
+ /** @deprecated Use aggressiveness instead. */
393
+ usageTapCompressionAggressiveness?: PromptCompressionMessagesAggressiveness$1;
355
394
  }
356
395
  interface RecordPromptCompressionRequest {
357
396
  callId: string;
@@ -492,15 +531,36 @@ interface UsageMetricEvent {
492
531
  correlationId?: string;
493
532
  }
494
533
 
495
- type PromptCompressionProvider = "heuristic" | "toon" | "thetokencompany";
534
+ type PromptCompressionProvider = "heuristic" | "toon" | "thetokencompany" | "usagetap";
535
+ type PromptCompressionMessageRole = "system" | "user" | "tool" | "assistant";
536
+ type PromptCompressionRoleAggressiveness = Partial<Record<PromptCompressionMessageRole, number>>;
537
+ type PromptCompressionMessagesAggressiveness = number | PromptCompressionRoleAggressiveness;
496
538
  interface PromptCompressionInput {
497
- input: unknown;
539
+ input?: unknown;
540
+ text?: string;
498
541
  provider?: PromptCompressionProvider;
499
542
  tokenCompanyApiKey?: string;
500
543
  tokenCompanyEndpoint?: string;
544
+ model?: string;
501
545
  tokenCompanyModel?: string;
546
+ aggressiveness?: number;
502
547
  tokenCompanyAggressiveness?: number;
503
548
  tokenCompanyAppId?: string;
549
+ usageTapCompressionApiKey?: string;
550
+ usageTapCompressionEndpoint?: string;
551
+ usageTapCompressionModel?: string;
552
+ usageTapCompressionAggressiveness?: number;
553
+ fetchImpl?: typeof fetch;
554
+ signal?: AbortSignal;
555
+ failOpen?: boolean;
556
+ }
557
+ interface PromptCompressionMessagesInput<TInput = unknown> {
558
+ input: TInput;
559
+ provider?: Extract<PromptCompressionProvider, "usagetap">;
560
+ usageTapCompressionApiKey?: string;
561
+ usageTapCompressionMessagesEndpoint?: string;
562
+ aggressiveness?: PromptCompressionMessagesAggressiveness;
563
+ usageTapCompressionAggressiveness?: PromptCompressionMessagesAggressiveness;
504
564
  fetchImpl?: typeof fetch;
505
565
  signal?: AbortSignal;
506
566
  failOpen?: boolean;
@@ -524,6 +584,7 @@ declare const protect: typeof protectPromptText;
524
584
  declare function compressPrompt<TInput = unknown>(options: PromptCompressionInput): Promise<PromptCompressionResult<TInput>>;
525
585
  declare function compressPromptHeuristic<TInput = unknown>(input: TInput): PromptCompressionResult<TInput>;
526
586
  declare function compressPromptToon<TInput = unknown>(input: TInput): PromptCompressionResult<TInput>;
587
+ declare function compressPromptMessages<TInput = unknown>(options: PromptCompressionMessagesInput<TInput>): Promise<PromptCompressionResult<TInput>>;
527
588
  declare function estimatePromptTokens(input: unknown): number;
528
589
 
529
590
  declare class UsageTapClient {
@@ -541,15 +602,23 @@ declare class UsageTapClient {
541
602
  private readonly autoIdempotency;
542
603
  private readonly tokenCompanyApiKey?;
543
604
  private readonly tokenCompanyEndpoint?;
605
+ private readonly model?;
544
606
  private readonly tokenCompanyModel?;
607
+ private readonly aggressiveness?;
545
608
  private readonly tokenCompanyAggressiveness?;
546
609
  private readonly tokenCompanyAppId?;
610
+ private readonly usageTapCompressionApiKey?;
611
+ private readonly usageTapCompressionEndpoint?;
612
+ private readonly usageTapCompressionMessagesEndpoint?;
613
+ private readonly usageTapCompressionModel?;
614
+ private readonly usageTapCompressionAggressiveness?;
547
615
  constructor(options: UsageTapClientOptions);
548
616
  beginCall(request: BeginCallRequest, options?: BeginCallOptions): Promise<UsageTapSuccessResponse<BeginCallResponseBody>>;
549
617
  promptCompress(request: PromptCompressionRequest, options?: PromptCompressionOptions): Promise<PromptCompressionResult & {
550
618
  callId: string;
551
619
  }>;
552
620
  compressPromptInput<TInput = unknown>(input: TInput, options?: PromptCompressionStandaloneOptions): Promise<PromptCompressionResult<TInput>>;
621
+ compressPromptMessages<TInput = unknown>(input: TInput, options?: PromptCompressionMessagesOptions): Promise<PromptCompressionResult<TInput>>;
553
622
  recordPromptCompression(request: RecordPromptCompressionRequest, options?: PromptCompressionOptions): Promise<UsageTapSuccessResponse<PromptCompressionResponseBody>>;
554
623
  endCall(request: EndCallRequest, options?: EndCallOptions): Promise<UsageTapSuccessResponse<EndCallResponseBody>>;
555
624
  checkUsage(request: CheckUsageRequest, options?: CheckUsageOptions): Promise<UsageTapSuccessResponse<CheckUsageResponseBody>>;
@@ -570,4 +639,4 @@ declare class UsageTapClient {
570
639
  private toApiError;
571
640
  }
572
641
 
573
- export { type RetryOptions as $, type IncrementCustomMeterResponseBody as A, type BeginCallRequest as B, type CreateCustomerOptions as C, type CustomMeterSlot as D, type EndCallRequest as E, type EndCallOptions as F, type EndCallResponseBody as G, type BalanceSummary as H, type IncrementCustomMeterOptions as I, type SpendVelocityWindow as J, type SpendVelocityWindowKey as K, type EntitlementHints as L, type PlanSummary as M, type MeterSummary as N, type MeterSnapshot as O, type PromptCompressionProvider as P, type MeteredUsage as Q, type RecordPromptCompressionRequest as R, type SpendVelocitySnapshot as S, type RateLimitsSnapshot as T, UsageTapClient as U, type VendorHints as V, type WithUsageOptions as W, type RemainingRatios as X, type RollingCallsRateLimitState as Y, type RequestedEntitlements as Z, type AllowedEntitlements as _, type PromptCompressionTelemetry as a, type UsageTapClientOptions as a0, type UsageTapErrorResponse as a1, type UsageTapResultEnvelope as a2, type UsageTapResultStatus as a3, type UsageTapLogEntry as a4, type WithUsageContext as a5, type LimitType as a6, type SubscriptionSnapshot as a7, type ModelHints as a8, type IdempotencyMetadata as a9, type UsageMetricEvent as aa, type UsageTapSuccessResponse as b, type BeginCallResponseBody as c, compressPrompt as d, compressPromptHeuristic as e, compressPromptToon as f, estimatePromptTokens as g, protectPromptText as h, type PromptCompressionInput as i, type PromptCompressionResult as j, type BeginCallOptions as k, type PromptCompressionRequest as l, type PromptCompressionOptions as m, type PromptCompressionResponseBody as n, type PromptCompressionStandaloneOptions as o, protect as p, type CreateCustomerRequest as q, type CreateCustomerResponseBody as r, type CheckUsageOptions as s, type CheckUsageRequest as t, type CheckUsageResponseBody as u, type ChangePlanOptions as v, type ChangePlanRequest as w, type ChangePlanResponseBody as x, type ChangePlanStrategy as y, type IncrementCustomMeterRequest as z };
642
+ export { type MeteredUsage as $, type CheckUsageResponseBody as A, type BeginCallRequest as B, type CreateCustomerOptions as C, type ChangePlanOptions as D, type EndCallRequest as E, type ChangePlanRequest as F, type ChangePlanResponseBody as G, type ChangePlanStrategy as H, type IncrementCustomMeterOptions as I, type IncrementCustomMeterRequest as J, type IncrementCustomMeterResponseBody as K, type CustomMeterSlot as L, type EndCallOptions as M, type EndCallResponseBody as N, type BalanceSummary as O, type PromptCompressionProvider as P, type SpendVelocityWindow as Q, type RecordPromptCompressionRequest as R, type SpendVelocitySnapshot as S, type SpendVelocityWindowKey as T, UsageTapClient as U, type VendorHints as V, type WithUsageOptions as W, type EntitlementHints as X, type PlanSummary as Y, type MeterSummary as Z, type MeterSnapshot as _, type PromptCompressionTelemetry as a, type RateLimitsSnapshot as a0, type RemainingRatios as a1, type RollingCallsRateLimitState as a2, type RequestedEntitlements as a3, type AllowedEntitlements as a4, type RetryOptions as a5, type UsageTapClientOptions as a6, type UsageTapErrorResponse as a7, type UsageTapResultEnvelope as a8, type UsageTapResultStatus as a9, type UsageTapLogEntry as aa, type WithUsageContext as ab, type LimitType as ac, type SubscriptionSnapshot as ad, type ModelHints as ae, type IdempotencyMetadata as af, type UsageMetricEvent as ag, type UsageTapSuccessResponse as b, type BeginCallResponseBody as c, compressPrompt as d, compressPromptMessages as e, compressPromptHeuristic as f, compressPromptToon as g, estimatePromptTokens as h, protectPromptText as i, type PromptCompressionInput as j, type PromptCompressionMessagesAggressiveness as k, type PromptCompressionMessagesInput as l, type PromptCompressionMessageRole as m, type PromptCompressionResult as n, type PromptCompressionRoleAggressiveness as o, protect as p, type BeginCallOptions as q, type PromptCompressionRequest as r, type PromptCompressionOptions as s, type PromptCompressionMessagesOptions as t, type PromptCompressionResponseBody as u, type PromptCompressionStandaloneOptions as v, type CreateCustomerRequest as w, type CreateCustomerResponseBody as x, type CheckUsageOptions as y, type CheckUsageRequest as z };
@@ -495,6 +495,18 @@ async function compressChatParams(params, usageTap, compression, signal) {
495
495
  if (!messages) {
496
496
  return { params, segments: [] };
497
497
  }
498
+ if (shouldUseUsageTapMessageEndpoint(compression)) {
499
+ const result = await usageTap.compressPromptMessages(source, {
500
+ provider: "usagetap",
501
+ failOpen: compression.failOpen,
502
+ aggressiveness: resolveMessageEndpointAggressiveness(compression),
503
+ signal
504
+ });
505
+ return {
506
+ params: result.compressedInput,
507
+ segments: [{ role: "user", result }]
508
+ };
509
+ }
498
510
  const messageResults = await Promise.all(
499
511
  messages.map(
500
512
  (message) => compressOpenAIMessage(message, usageTap, compression, signal)
@@ -718,8 +730,11 @@ async function compressTextForRole(text, role, usageTap, compression, signal) {
718
730
  provider: roleOptions.provider,
719
731
  failOpen: roleOptions.failOpen,
720
732
  tokenCompanyModel: roleOptions.tokenCompanyModel,
733
+ aggressiveness: roleOptions.aggressiveness,
721
734
  tokenCompanyAggressiveness: roleOptions.tokenCompanyAggressiveness,
722
735
  tokenCompanyAppId: roleOptions.tokenCompanyAppId,
736
+ usageTapCompressionModel: roleOptions.usageTapCompressionModel,
737
+ usageTapCompressionAggressiveness: roleOptions.usageTapCompressionAggressiveness,
723
738
  signal
724
739
  });
725
740
  const compressedText = typeof result.compressedInput === "string" ? result.compressedInput : String(result.compressedInput);
@@ -778,16 +793,67 @@ function resolveRoleCompressionOptions(compression, role) {
778
793
  minTokens: roleOptions?.minTokens ?? compression.minTokens,
779
794
  failOpen: compression.failOpen,
780
795
  tokenCompanyModel: compression.tokenCompanyModel,
796
+ aggressiveness: roleOptions?.aggressiveness ?? resolveAggressiveness(compression, role),
781
797
  tokenCompanyAggressiveness: roleOptions?.tokenCompanyAggressiveness ?? resolveTokenCompanyAggressiveness(compression, role),
782
- tokenCompanyAppId: compression.tokenCompanyAppId
798
+ tokenCompanyAppId: compression.tokenCompanyAppId,
799
+ usageTapCompressionModel: compression.usageTapCompressionModel,
800
+ usageTapCompressionAggressiveness: roleOptions?.usageTapCompressionAggressiveness ?? resolveUsageTapCompressionAggressiveness(compression, role)
783
801
  };
784
802
  }
803
+ function resolveAggressiveness(compression, role) {
804
+ if (typeof compression.aggressiveness === "number") {
805
+ return compression.aggressiveness;
806
+ }
807
+ return compression.aggressiveness?.[role];
808
+ }
785
809
  function resolveTokenCompanyAggressiveness(compression, role) {
786
810
  if (typeof compression.tokenCompanyAggressiveness === "number") {
787
811
  return compression.tokenCompanyAggressiveness;
788
812
  }
789
813
  return compression.tokenCompanyAggressiveness?.[role];
790
814
  }
815
+ function resolveUsageTapCompressionAggressiveness(compression, role) {
816
+ if (typeof compression.usageTapCompressionAggressiveness === "number") {
817
+ return compression.usageTapCompressionAggressiveness;
818
+ }
819
+ return compression.usageTapCompressionAggressiveness?.[role];
820
+ }
821
+ function shouldUseUsageTapMessageEndpoint(compression) {
822
+ if (compression.provider !== "usagetap") {
823
+ return false;
824
+ }
825
+ return Object.values(compression.roles ?? {}).every((setting) => {
826
+ if (typeof setting !== "object" || setting === null) {
827
+ return true;
828
+ }
829
+ return setting.provider === void 0 || setting.provider === "usagetap";
830
+ });
831
+ }
832
+ function resolveMessageEndpointAggressiveness(compression) {
833
+ const base = compression.aggressiveness ?? compression.usageTapCompressionAggressiveness ?? compression.tokenCompanyAggressiveness;
834
+ if (typeof base === "number" || base === void 0) {
835
+ return hasExplicitEnabledRoles(compression) ? buildRoleAggressiveness(compression, base) : base;
836
+ }
837
+ return buildRoleAggressiveness(compression, void 0, base);
838
+ }
839
+ function hasExplicitEnabledRoles(compression) {
840
+ return Object.values(compression.roles ?? {}).some((setting) => setting !== false);
841
+ }
842
+ function buildRoleAggressiveness(compression, fallback, base = {}) {
843
+ const roles = ["system", "user", "tool", "assistant"];
844
+ const result = {};
845
+ for (const role of roles) {
846
+ const roleOptions = resolveRoleCompressionOptions(compression, role);
847
+ if (!roleOptions) {
848
+ continue;
849
+ }
850
+ const roleAggressiveness = roleOptions.aggressiveness ?? roleOptions.usageTapCompressionAggressiveness ?? roleOptions.tokenCompanyAggressiveness ?? base[role] ?? fallback;
851
+ if (roleAggressiveness !== void 0) {
852
+ result[role] = roleAggressiveness;
853
+ }
854
+ }
855
+ return result;
856
+ }
791
857
  function buildPromptCompressionTelemetry(segments) {
792
858
  if (!segments.length) {
793
859
  return void 0;