@usagetap/sdk 1.2.0 → 1.3.2
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.
- package/README.md +710 -735
- package/dist/adapters/anthropic.cjs +1609 -5
- package/dist/adapters/anthropic.cjs.map +1 -1
- package/dist/adapters/anthropic.d.cts +30 -2
- package/dist/adapters/anthropic.d.ts +30 -2
- package/dist/adapters/anthropic.mjs +1608 -6
- package/dist/adapters/anthropic.mjs.map +1 -1
- package/dist/adapters/openai.cjs +1659 -5
- package/dist/adapters/openai.cjs.map +1 -1
- package/dist/adapters/openai.d.cts +37 -2
- package/dist/adapters/openai.d.ts +37 -2
- package/dist/adapters/openai.mjs +1658 -6
- package/dist/adapters/openai.mjs.map +1 -1
- package/dist/adapters/openrouter.cjs.map +1 -1
- package/dist/adapters/openrouter.d.cts +1 -1
- package/dist/adapters/openrouter.d.ts +1 -1
- package/dist/adapters/openrouter.mjs.map +1 -1
- package/dist/anthropic/index.cjs +1609 -5
- package/dist/anthropic/index.cjs.map +1 -1
- package/dist/anthropic/index.d.cts +2 -2
- package/dist/anthropic/index.d.ts +2 -2
- package/dist/anthropic/index.mjs +1608 -6
- package/dist/anthropic/index.mjs.map +1 -1
- package/dist/{client-EMXt9_fA.d.cts → client-BD8O2J8Z.d.cts} +30 -4
- package/dist/{client-EMXt9_fA.d.ts → client-BD8O2J8Z.d.ts} +30 -4
- package/dist/express/index.cjs +19 -0
- package/dist/express/index.cjs.map +1 -1
- package/dist/express/index.d.cts +1 -1
- package/dist/express/index.d.ts +1 -1
- package/dist/express/index.mjs +19 -0
- package/dist/express/index.mjs.map +1 -1
- package/dist/index.cjs +48 -19
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.mjs +48 -20
- package/dist/index.mjs.map +1 -1
- package/dist/openai/index.cjs +1659 -5
- package/dist/openai/index.cjs.map +1 -1
- package/dist/openai/index.d.cts +2 -2
- package/dist/openai/index.d.ts +2 -2
- package/dist/openai/index.mjs +1658 -6
- package/dist/openai/index.mjs.map +1 -1
- package/dist/openrouter/index.cjs +3024 -0
- package/dist/openrouter/index.cjs.map +1 -0
- package/dist/openrouter/index.d.cts +4 -0
- package/dist/openrouter/index.d.ts +4 -0
- package/dist/openrouter/index.mjs +3019 -0
- package/dist/openrouter/index.mjs.map +1 -0
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.mjs.map +1 -1
- package/package.json +182 -124
|
@@ -310,8 +310,14 @@ interface UsageTapLogEntry {
|
|
|
310
310
|
error?: unknown;
|
|
311
311
|
}
|
|
312
312
|
interface UsageTapClientOptions {
|
|
313
|
-
|
|
314
|
-
|
|
313
|
+
/**
|
|
314
|
+
* UsageTap API key. Defaults to the server-side USAGETAP_API_KEY environment variable.
|
|
315
|
+
*/
|
|
316
|
+
apiKey?: string;
|
|
317
|
+
/**
|
|
318
|
+
* UsageTap API base URL. Defaults to USAGETAP_BASE_URL, then https://api.usagetap.com.
|
|
319
|
+
*/
|
|
320
|
+
baseUrl?: string;
|
|
315
321
|
defaultFeature?: string;
|
|
316
322
|
defaultTags?: string[];
|
|
317
323
|
fetchImpl?: typeof fetch;
|
|
@@ -587,6 +593,14 @@ declare function compressPromptToon<TInput = unknown>(input: TInput): PromptComp
|
|
|
587
593
|
declare function compressPromptMessages<TInput = unknown>(options: PromptCompressionMessagesInput<TInput>): Promise<PromptCompressionResult<TInput>>;
|
|
588
594
|
declare function estimatePromptTokens(input: unknown): number;
|
|
589
595
|
|
|
596
|
+
type UsageTapCompressOptions = Omit<PromptCompressionStandaloneOptions, "provider">;
|
|
597
|
+
type UsageTapCompressResult = Omit<PromptCompressionResult<string>, "compressedInput"> & {
|
|
598
|
+
/** The compressed text, ready to pass to an LLM. */
|
|
599
|
+
output: string;
|
|
600
|
+
/** Alias retained for consistency with the lower-level compression APIs. */
|
|
601
|
+
compressedInput: string;
|
|
602
|
+
};
|
|
603
|
+
type MeterRequest = string | BeginCallRequest;
|
|
590
604
|
declare class UsageTapClient {
|
|
591
605
|
private readonly apiKey;
|
|
592
606
|
private readonly baseUrl;
|
|
@@ -612,12 +626,19 @@ declare class UsageTapClient {
|
|
|
612
626
|
private readonly usageTapCompressionMessagesEndpoint?;
|
|
613
627
|
private readonly usageTapCompressionModel?;
|
|
614
628
|
private readonly usageTapCompressionAggressiveness?;
|
|
615
|
-
constructor(options
|
|
629
|
+
constructor(options?: UsageTapClientOptions);
|
|
616
630
|
beginCall(request: BeginCallRequest, options?: BeginCallOptions): Promise<UsageTapSuccessResponse<BeginCallResponseBody>>;
|
|
617
631
|
promptCompress(request: PromptCompressionRequest, options?: PromptCompressionOptions): Promise<PromptCompressionResult & {
|
|
618
632
|
callId: string;
|
|
619
633
|
}>;
|
|
620
634
|
compressPromptInput<TInput = unknown>(input: TInput, options?: PromptCompressionStandaloneOptions): Promise<PromptCompressionResult<TInput>>;
|
|
635
|
+
/**
|
|
636
|
+
* Compress text with UsageTap's hosted compression service.
|
|
637
|
+
*
|
|
638
|
+
* This is the short, standalone path. It does not create a metered call and
|
|
639
|
+
* fails open to the original text unless failOpen is explicitly disabled.
|
|
640
|
+
*/
|
|
641
|
+
compress(text: string, options?: UsageTapCompressOptions): Promise<UsageTapCompressResult>;
|
|
621
642
|
compressPromptMessages<TInput = unknown>(input: TInput, options?: PromptCompressionMessagesOptions): Promise<PromptCompressionResult<TInput>>;
|
|
622
643
|
recordPromptCompression(request: RecordPromptCompressionRequest, options?: PromptCompressionOptions): Promise<UsageTapSuccessResponse<PromptCompressionResponseBody>>;
|
|
623
644
|
endCall(request: EndCallRequest, options?: EndCallOptions): Promise<UsageTapSuccessResponse<EndCallResponseBody>>;
|
|
@@ -626,6 +647,11 @@ declare class UsageTapClient {
|
|
|
626
647
|
changePlan(request: ChangePlanRequest, options?: ChangePlanOptions): Promise<UsageTapSuccessResponse<ChangePlanResponseBody>>;
|
|
627
648
|
incrementCustomMeter(request: IncrementCustomMeterRequest, options?: IncrementCustomMeterOptions): Promise<UsageTapSuccessResponse<IncrementCustomMeterResponseBody>>;
|
|
628
649
|
withUsage<T>(beginRequest: BeginCallRequest, handler: (context: WithUsageContext) => Promise<T>, options?: WithUsageOptions): Promise<T>;
|
|
650
|
+
/**
|
|
651
|
+
* Meter one operation. Pass only a customer ID for the common path, or the
|
|
652
|
+
* existing begin-call request object when feature, tags, or entitlements are needed.
|
|
653
|
+
*/
|
|
654
|
+
meter<T>(request: MeterRequest, handler: (context: WithUsageContext) => Promise<T>, options?: WithUsageOptions): Promise<T>;
|
|
629
655
|
private toPromptCompressionTelemetry;
|
|
630
656
|
private request;
|
|
631
657
|
private requestGet;
|
|
@@ -639,4 +665,4 @@ declare class UsageTapClient {
|
|
|
639
665
|
private toApiError;
|
|
640
666
|
}
|
|
641
667
|
|
|
642
|
-
export { type
|
|
668
|
+
export { type PlanSummary as $, type CheckUsageOptions as A, type BeginCallRequest as B, type CreateCustomerOptions as C, type CheckUsageRequest as D, type EndCallRequest as E, type CheckUsageResponseBody as F, type ChangePlanOptions as G, type ChangePlanRequest as H, type ChangePlanResponseBody as I, type ChangePlanStrategy as J, type IncrementCustomMeterOptions as K, type IncrementCustomMeterRequest as L, type MeterRequest as M, type IncrementCustomMeterResponseBody as N, type CustomMeterSlot as O, type PromptCompressionProvider as P, type EndCallOptions as Q, type RecordPromptCompressionRequest as R, type EndCallResponseBody as S, type BalanceSummary as T, UsageTapClient as U, type VendorHints as V, type WithUsageOptions as W, type SpendVelocitySnapshot as X, type SpendVelocityWindow as Y, type SpendVelocityWindowKey as Z, type EntitlementHints as _, type PromptCompressionTelemetry as a, type MeterSummary as a0, type MeterSnapshot as a1, type MeteredUsage as a2, type RateLimitsSnapshot as a3, type RemainingRatios as a4, type RollingCallsRateLimitState as a5, type RequestedEntitlements as a6, type AllowedEntitlements as a7, type RetryOptions as a8, type UsageTapClientOptions as a9, type UsageTapErrorResponse as aa, type UsageTapResultEnvelope as ab, type UsageTapResultStatus as ac, type UsageTapLogEntry as ad, type WithUsageContext as ae, type LimitType as af, type SubscriptionSnapshot as ag, type ModelHints as ah, type IdempotencyMetadata as ai, type UsageMetricEvent as aj, type UsageTapSuccessResponse as b, type BeginCallResponseBody as c, type UsageTapCompressOptions as d, type UsageTapCompressResult as e, compressPrompt as f, compressPromptMessages as g, compressPromptHeuristic as h, compressPromptToon as i, estimatePromptTokens as j, protectPromptText as k, type PromptCompressionInput as l, type PromptCompressionMessagesAggressiveness as m, type PromptCompressionMessagesInput as n, type PromptCompressionMessageRole as o, protect as p, type PromptCompressionResult as q, type PromptCompressionRoleAggressiveness as r, type BeginCallOptions as s, type PromptCompressionRequest as t, type PromptCompressionOptions as u, type PromptCompressionMessagesOptions as v, type PromptCompressionResponseBody as w, type PromptCompressionStandaloneOptions as x, type CreateCustomerRequest as y, type CreateCustomerResponseBody as z };
|
|
@@ -310,8 +310,14 @@ interface UsageTapLogEntry {
|
|
|
310
310
|
error?: unknown;
|
|
311
311
|
}
|
|
312
312
|
interface UsageTapClientOptions {
|
|
313
|
-
|
|
314
|
-
|
|
313
|
+
/**
|
|
314
|
+
* UsageTap API key. Defaults to the server-side USAGETAP_API_KEY environment variable.
|
|
315
|
+
*/
|
|
316
|
+
apiKey?: string;
|
|
317
|
+
/**
|
|
318
|
+
* UsageTap API base URL. Defaults to USAGETAP_BASE_URL, then https://api.usagetap.com.
|
|
319
|
+
*/
|
|
320
|
+
baseUrl?: string;
|
|
315
321
|
defaultFeature?: string;
|
|
316
322
|
defaultTags?: string[];
|
|
317
323
|
fetchImpl?: typeof fetch;
|
|
@@ -587,6 +593,14 @@ declare function compressPromptToon<TInput = unknown>(input: TInput): PromptComp
|
|
|
587
593
|
declare function compressPromptMessages<TInput = unknown>(options: PromptCompressionMessagesInput<TInput>): Promise<PromptCompressionResult<TInput>>;
|
|
588
594
|
declare function estimatePromptTokens(input: unknown): number;
|
|
589
595
|
|
|
596
|
+
type UsageTapCompressOptions = Omit<PromptCompressionStandaloneOptions, "provider">;
|
|
597
|
+
type UsageTapCompressResult = Omit<PromptCompressionResult<string>, "compressedInput"> & {
|
|
598
|
+
/** The compressed text, ready to pass to an LLM. */
|
|
599
|
+
output: string;
|
|
600
|
+
/** Alias retained for consistency with the lower-level compression APIs. */
|
|
601
|
+
compressedInput: string;
|
|
602
|
+
};
|
|
603
|
+
type MeterRequest = string | BeginCallRequest;
|
|
590
604
|
declare class UsageTapClient {
|
|
591
605
|
private readonly apiKey;
|
|
592
606
|
private readonly baseUrl;
|
|
@@ -612,12 +626,19 @@ declare class UsageTapClient {
|
|
|
612
626
|
private readonly usageTapCompressionMessagesEndpoint?;
|
|
613
627
|
private readonly usageTapCompressionModel?;
|
|
614
628
|
private readonly usageTapCompressionAggressiveness?;
|
|
615
|
-
constructor(options
|
|
629
|
+
constructor(options?: UsageTapClientOptions);
|
|
616
630
|
beginCall(request: BeginCallRequest, options?: BeginCallOptions): Promise<UsageTapSuccessResponse<BeginCallResponseBody>>;
|
|
617
631
|
promptCompress(request: PromptCompressionRequest, options?: PromptCompressionOptions): Promise<PromptCompressionResult & {
|
|
618
632
|
callId: string;
|
|
619
633
|
}>;
|
|
620
634
|
compressPromptInput<TInput = unknown>(input: TInput, options?: PromptCompressionStandaloneOptions): Promise<PromptCompressionResult<TInput>>;
|
|
635
|
+
/**
|
|
636
|
+
* Compress text with UsageTap's hosted compression service.
|
|
637
|
+
*
|
|
638
|
+
* This is the short, standalone path. It does not create a metered call and
|
|
639
|
+
* fails open to the original text unless failOpen is explicitly disabled.
|
|
640
|
+
*/
|
|
641
|
+
compress(text: string, options?: UsageTapCompressOptions): Promise<UsageTapCompressResult>;
|
|
621
642
|
compressPromptMessages<TInput = unknown>(input: TInput, options?: PromptCompressionMessagesOptions): Promise<PromptCompressionResult<TInput>>;
|
|
622
643
|
recordPromptCompression(request: RecordPromptCompressionRequest, options?: PromptCompressionOptions): Promise<UsageTapSuccessResponse<PromptCompressionResponseBody>>;
|
|
623
644
|
endCall(request: EndCallRequest, options?: EndCallOptions): Promise<UsageTapSuccessResponse<EndCallResponseBody>>;
|
|
@@ -626,6 +647,11 @@ declare class UsageTapClient {
|
|
|
626
647
|
changePlan(request: ChangePlanRequest, options?: ChangePlanOptions): Promise<UsageTapSuccessResponse<ChangePlanResponseBody>>;
|
|
627
648
|
incrementCustomMeter(request: IncrementCustomMeterRequest, options?: IncrementCustomMeterOptions): Promise<UsageTapSuccessResponse<IncrementCustomMeterResponseBody>>;
|
|
628
649
|
withUsage<T>(beginRequest: BeginCallRequest, handler: (context: WithUsageContext) => Promise<T>, options?: WithUsageOptions): Promise<T>;
|
|
650
|
+
/**
|
|
651
|
+
* Meter one operation. Pass only a customer ID for the common path, or the
|
|
652
|
+
* existing begin-call request object when feature, tags, or entitlements are needed.
|
|
653
|
+
*/
|
|
654
|
+
meter<T>(request: MeterRequest, handler: (context: WithUsageContext) => Promise<T>, options?: WithUsageOptions): Promise<T>;
|
|
629
655
|
private toPromptCompressionTelemetry;
|
|
630
656
|
private request;
|
|
631
657
|
private requestGet;
|
|
@@ -639,4 +665,4 @@ declare class UsageTapClient {
|
|
|
639
665
|
private toApiError;
|
|
640
666
|
}
|
|
641
667
|
|
|
642
|
-
export { type
|
|
668
|
+
export { type PlanSummary as $, type CheckUsageOptions as A, type BeginCallRequest as B, type CreateCustomerOptions as C, type CheckUsageRequest as D, type EndCallRequest as E, type CheckUsageResponseBody as F, type ChangePlanOptions as G, type ChangePlanRequest as H, type ChangePlanResponseBody as I, type ChangePlanStrategy as J, type IncrementCustomMeterOptions as K, type IncrementCustomMeterRequest as L, type MeterRequest as M, type IncrementCustomMeterResponseBody as N, type CustomMeterSlot as O, type PromptCompressionProvider as P, type EndCallOptions as Q, type RecordPromptCompressionRequest as R, type EndCallResponseBody as S, type BalanceSummary as T, UsageTapClient as U, type VendorHints as V, type WithUsageOptions as W, type SpendVelocitySnapshot as X, type SpendVelocityWindow as Y, type SpendVelocityWindowKey as Z, type EntitlementHints as _, type PromptCompressionTelemetry as a, type MeterSummary as a0, type MeterSnapshot as a1, type MeteredUsage as a2, type RateLimitsSnapshot as a3, type RemainingRatios as a4, type RollingCallsRateLimitState as a5, type RequestedEntitlements as a6, type AllowedEntitlements as a7, type RetryOptions as a8, type UsageTapClientOptions as a9, type UsageTapErrorResponse as aa, type UsageTapResultEnvelope as ab, type UsageTapResultStatus as ac, type UsageTapLogEntry as ad, type WithUsageContext as ae, type LimitType as af, type SubscriptionSnapshot as ag, type ModelHints as ah, type IdempotencyMetadata as ai, type UsageMetricEvent as aj, type UsageTapSuccessResponse as b, type BeginCallResponseBody as c, type UsageTapCompressOptions as d, type UsageTapCompressResult as e, compressPrompt as f, compressPromptMessages as g, compressPromptHeuristic as h, compressPromptToon as i, estimatePromptTokens as j, protectPromptText as k, type PromptCompressionInput as l, type PromptCompressionMessagesAggressiveness as m, type PromptCompressionMessagesInput as n, type PromptCompressionMessageRole as o, protect as p, type PromptCompressionResult as q, type PromptCompressionRoleAggressiveness as r, type BeginCallOptions as s, type PromptCompressionRequest as t, type PromptCompressionOptions as u, type PromptCompressionMessagesOptions as v, type PromptCompressionResponseBody as w, type PromptCompressionStandaloneOptions as x, type CreateCustomerRequest as y, type CreateCustomerResponseBody as z };
|
package/dist/express/index.cjs
CHANGED
|
@@ -495,6 +495,12 @@ async function compressChatParams(params, usageTap, compression, signal) {
|
|
|
495
495
|
if (!messages) {
|
|
496
496
|
return { params, segments: [] };
|
|
497
497
|
}
|
|
498
|
+
if (isBelowMinContextTokens(
|
|
499
|
+
{ messages, tools: source.tools },
|
|
500
|
+
compression.minContextTokens
|
|
501
|
+
)) {
|
|
502
|
+
return { params, segments: [] };
|
|
503
|
+
}
|
|
498
504
|
if (shouldUseUsageTapMessageEndpoint(compression)) {
|
|
499
505
|
const result = await usageTap.compressPromptMessages(source, {
|
|
500
506
|
provider: "usagetap",
|
|
@@ -526,6 +532,16 @@ async function compressResponsesParams(params, usageTap, compression, signal) {
|
|
|
526
532
|
}
|
|
527
533
|
const source = cloneRecord(params);
|
|
528
534
|
const segments = [];
|
|
535
|
+
if (isBelowMinContextTokens(
|
|
536
|
+
{
|
|
537
|
+
instructions: source.instructions,
|
|
538
|
+
input: source.input,
|
|
539
|
+
tools: source.tools
|
|
540
|
+
},
|
|
541
|
+
compression.minContextTokens
|
|
542
|
+
)) {
|
|
543
|
+
return { params, segments };
|
|
544
|
+
}
|
|
529
545
|
if (typeof source.instructions === "string") {
|
|
530
546
|
const compressed = await compressTextForRole(
|
|
531
547
|
source.instructions,
|
|
@@ -755,6 +771,9 @@ function normalizePromptCompressionOptions(options) {
|
|
|
755
771
|
}
|
|
756
772
|
return options;
|
|
757
773
|
}
|
|
774
|
+
function isBelowMinContextTokens(context, minContextTokens) {
|
|
775
|
+
return typeof minContextTokens === "number" && estimatePromptTokens(context) < Math.max(0, minContextTokens);
|
|
776
|
+
}
|
|
758
777
|
function resolveEffectivePromptCompressionOptions(defaults, override) {
|
|
759
778
|
if (override === false) {
|
|
760
779
|
return void 0;
|