@usagetap/sdk 1.1.0 → 1.3.1
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 +200 -201
- package/dist/adapters/anthropic.cjs +1676 -6
- package/dist/adapters/anthropic.cjs.map +1 -1
- package/dist/adapters/anthropic.d.cts +39 -2
- package/dist/adapters/anthropic.d.ts +39 -2
- package/dist/adapters/anthropic.mjs +1675 -7
- package/dist/adapters/anthropic.mjs.map +1 -1
- package/dist/adapters/openai.cjs +1726 -6
- package/dist/adapters/openai.cjs.map +1 -1
- package/dist/adapters/openai.d.cts +46 -2
- package/dist/adapters/openai.d.ts +46 -2
- package/dist/adapters/openai.mjs +1725 -7
- 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 +1676 -6
- 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 +1675 -7
- package/dist/anthropic/index.mjs.map +1 -1
- package/dist/{client-BA-QlnRq.d.cts → client-BD8O2J8Z.d.cts} +106 -11
- package/dist/{client-BA-QlnRq.d.ts → client-BD8O2J8Z.d.ts} +106 -11
- package/dist/express/index.cjs +86 -1
- 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 +86 -1
- package/dist/express/index.mjs.map +1 -1
- package/dist/index.cjs +263 -39
- 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 +262 -40
- package/dist/index.mjs.map +1 -1
- package/dist/openai/index.cjs +1726 -6
- 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 +1725 -7
- 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/package.json +102 -44
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import OpenAI from 'openai';
|
|
2
|
-
import { B as BeginCallRequest, P as PromptCompressionProvider, U as UsageTapClient, W as WithUsageOptions, a as PromptCompressionTelemetry, V as VendorHints, b as UsageTapSuccessResponse, c as BeginCallResponseBody, E as EndCallRequest } from '../client-
|
|
2
|
+
import { B as BeginCallRequest, P as PromptCompressionProvider, U as UsageTapClient, W as WithUsageOptions, a as PromptCompressionTelemetry, V as VendorHints, b as UsageTapSuccessResponse, c as BeginCallResponseBody, E as EndCallRequest } from '../client-BD8O2J8Z.cjs';
|
|
3
3
|
|
|
4
4
|
interface OpenAIAdapterInit {
|
|
5
5
|
client: OpenAI;
|
|
@@ -46,18 +46,33 @@ interface OpenAIPromptCompressionRoleOptions {
|
|
|
46
46
|
enabled?: boolean;
|
|
47
47
|
provider?: PromptCompressionProvider;
|
|
48
48
|
minTokens?: number;
|
|
49
|
+
aggressiveness?: number;
|
|
50
|
+
/** @deprecated Use aggressiveness instead. */
|
|
49
51
|
tokenCompanyAggressiveness?: number;
|
|
52
|
+
/** @deprecated Use aggressiveness instead. */
|
|
53
|
+
usageTapCompressionAggressiveness?: number;
|
|
50
54
|
}
|
|
51
55
|
type OpenAIPromptCompressionRoleSetting = boolean | OpenAIPromptCompressionRoleOptions;
|
|
52
56
|
interface OpenAIPromptCompressionOptions {
|
|
53
57
|
enabled?: boolean;
|
|
54
58
|
provider?: PromptCompressionProvider;
|
|
55
59
|
roles?: Partial<Record<OpenAIPromptCompressionRole, OpenAIPromptCompressionRoleSetting>>;
|
|
60
|
+
/**
|
|
61
|
+
* Skip compression when the combined request context is estimated below this
|
|
62
|
+
* many tokens. `withCompression` defaults to 1,000; set to 0 to always try.
|
|
63
|
+
*/
|
|
64
|
+
minContextTokens?: number;
|
|
65
|
+
/** Minimum estimated tokens for each individual text segment. */
|
|
56
66
|
minTokens?: number;
|
|
57
67
|
failOpen?: boolean;
|
|
58
68
|
tokenCompanyModel?: string;
|
|
69
|
+
aggressiveness?: number | Partial<Record<OpenAIPromptCompressionRole, number>>;
|
|
70
|
+
/** @deprecated Use aggressiveness instead. */
|
|
59
71
|
tokenCompanyAggressiveness?: number | Partial<Record<OpenAIPromptCompressionRole, number>>;
|
|
60
72
|
tokenCompanyAppId?: string;
|
|
73
|
+
usageTapCompressionModel?: string;
|
|
74
|
+
/** @deprecated Use aggressiveness instead. */
|
|
75
|
+
usageTapCompressionAggressiveness?: number | Partial<Record<OpenAIPromptCompressionRole, number>>;
|
|
61
76
|
}
|
|
62
77
|
interface OpenAIPromptCompressionTurnStats extends PromptCompressionTelemetry {
|
|
63
78
|
callId: string;
|
|
@@ -94,6 +109,24 @@ interface WrapOpenAIOptions {
|
|
|
94
109
|
applyVendorHints?: boolean;
|
|
95
110
|
promptCompression?: boolean | OpenAIPromptCompressionOptions;
|
|
96
111
|
}
|
|
112
|
+
interface OpenAICompressionOptions extends OpenAIPromptCompressionOptions {
|
|
113
|
+
/** UsageTap API key. Defaults to USAGETAP_API_KEY. */
|
|
114
|
+
apiKey?: string;
|
|
115
|
+
/** Reuse an existing client when custom transport or endpoints are configured. */
|
|
116
|
+
usageTapClient?: UsageTapClient;
|
|
117
|
+
}
|
|
118
|
+
type CompressionWrappedOpenAI = OpenAI & {
|
|
119
|
+
/** Return the original, unwrapped OpenAI-compatible client. */
|
|
120
|
+
unwrap: () => OpenAI;
|
|
121
|
+
};
|
|
122
|
+
type WithMeteringOpenAIOptions = BeginCallRequest & {
|
|
123
|
+
/** UsageTap API key. Defaults to USAGETAP_API_KEY. */
|
|
124
|
+
apiKey?: string;
|
|
125
|
+
/** Reuse an existing client when custom transport or endpoints are configured. */
|
|
126
|
+
usageTapClient?: UsageTapClient;
|
|
127
|
+
applyVendorHints?: boolean;
|
|
128
|
+
promptCompression?: boolean | OpenAIPromptCompressionOptions;
|
|
129
|
+
};
|
|
97
130
|
type ChatCompletionsResource = OpenAI["chat"]["completions"];
|
|
98
131
|
type ChatCompletionCreate = ChatCompletionsResource["create"];
|
|
99
132
|
type ChatCompletionCreateParams = Parameters<ChatCompletionCreate>[0];
|
|
@@ -175,6 +208,17 @@ type UsageTapStream<T> = AsyncIterable<T> & {
|
|
|
175
208
|
};
|
|
176
209
|
declare function toNextResponse<T>(stream: UsageTapStream<T>, options?: StreamToResponseOptions): Response;
|
|
177
210
|
declare function pipeToResponse<T>(stream: UsageTapStream<T>, res: NodeResponseLike, options?: StreamToResponseOptions): Promise<void>;
|
|
211
|
+
/**
|
|
212
|
+
* Add hosted prompt compression to an OpenAI-compatible client without
|
|
213
|
+
* changing any of its call sites. Works with OpenAI and OpenRouter clients.
|
|
214
|
+
*/
|
|
215
|
+
declare function withCompression(client: OpenAI, options?: OpenAICompressionOptions): CompressionWrappedOpenAI;
|
|
216
|
+
/**
|
|
217
|
+
* Add UsageTap metering to an OpenAI-compatible client. The string form is the
|
|
218
|
+
* shortest path; pass an object when feature, tags, entitlements, or compression
|
|
219
|
+
* are also needed.
|
|
220
|
+
*/
|
|
221
|
+
declare function withMetering(client: OpenAI, customer: string | WithMeteringOpenAIOptions): WrappedOpenAI;
|
|
178
222
|
declare function wrapOpenAI(client: OpenAI, usageTap: UsageTapClient, options?: WrapOpenAIOptions): WrappedOpenAI;
|
|
179
223
|
declare function streamOpenAIRoute(usageTap: UsageTapClient, openai: OpenAI, options: StreamOpenAIRouteOptions): (req: Request) => Promise<Response>;
|
|
180
224
|
interface NodeResponseLike {
|
|
@@ -187,4 +231,4 @@ interface NodeResponseLike {
|
|
|
187
231
|
flush?(): void;
|
|
188
232
|
}
|
|
189
233
|
|
|
190
|
-
export { type NodeResponseLike, type OpenAIAdapter, type OpenAIAdapterInit, type OpenAIInvokeParams, type OpenAIInvokeResult, type OpenAIPromptCompressionFailure, type OpenAIPromptCompressionOptions, type OpenAIPromptCompressionRole, type OpenAIPromptCompressionRoleOptions, type OpenAIPromptCompressionRoleSetting, OpenAIPromptCompressionStats, type OpenAIPromptCompressionTurnStats, type OpenAIRequestContext, type OpenAIStreamCallResult, type OpenAIStreamParams, type OpenAIStreamResult, type StreamMode, type StreamOpenAIRouteOptions, type StreamToResponseOptions, type UsageTapStream, type WrapOpenAICallOptions, type WrapOpenAIContext, type WrapOpenAIOptions, type WrapOpenAIResponseCallOptions, type WrappedOpenAI, createOpenAIAdapter, pipeToResponse, streamOpenAIRoute, toNextResponse, wrapOpenAI };
|
|
234
|
+
export { type CompressionWrappedOpenAI, type NodeResponseLike, type OpenAIAdapter, type OpenAIAdapterInit, type OpenAICompressionOptions, type OpenAIInvokeParams, type OpenAIInvokeResult, type OpenAIPromptCompressionFailure, type OpenAIPromptCompressionOptions, type OpenAIPromptCompressionRole, type OpenAIPromptCompressionRoleOptions, type OpenAIPromptCompressionRoleSetting, OpenAIPromptCompressionStats, type OpenAIPromptCompressionTurnStats, type OpenAIRequestContext, type OpenAIStreamCallResult, type OpenAIStreamParams, type OpenAIStreamResult, type StreamMode, type StreamOpenAIRouteOptions, type StreamToResponseOptions, type UsageTapStream, type WithMeteringOpenAIOptions, type WrapOpenAICallOptions, type WrapOpenAIContext, type WrapOpenAIOptions, type WrapOpenAIResponseCallOptions, type WrappedOpenAI, createOpenAIAdapter, pipeToResponse, streamOpenAIRoute, toNextResponse, withCompression, withMetering, wrapOpenAI };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import OpenAI from 'openai';
|
|
2
|
-
import { B as BeginCallRequest, P as PromptCompressionProvider, U as UsageTapClient, W as WithUsageOptions, a as PromptCompressionTelemetry, V as VendorHints, b as UsageTapSuccessResponse, c as BeginCallResponseBody, E as EndCallRequest } from '../client-
|
|
2
|
+
import { B as BeginCallRequest, P as PromptCompressionProvider, U as UsageTapClient, W as WithUsageOptions, a as PromptCompressionTelemetry, V as VendorHints, b as UsageTapSuccessResponse, c as BeginCallResponseBody, E as EndCallRequest } from '../client-BD8O2J8Z.js';
|
|
3
3
|
|
|
4
4
|
interface OpenAIAdapterInit {
|
|
5
5
|
client: OpenAI;
|
|
@@ -46,18 +46,33 @@ interface OpenAIPromptCompressionRoleOptions {
|
|
|
46
46
|
enabled?: boolean;
|
|
47
47
|
provider?: PromptCompressionProvider;
|
|
48
48
|
minTokens?: number;
|
|
49
|
+
aggressiveness?: number;
|
|
50
|
+
/** @deprecated Use aggressiveness instead. */
|
|
49
51
|
tokenCompanyAggressiveness?: number;
|
|
52
|
+
/** @deprecated Use aggressiveness instead. */
|
|
53
|
+
usageTapCompressionAggressiveness?: number;
|
|
50
54
|
}
|
|
51
55
|
type OpenAIPromptCompressionRoleSetting = boolean | OpenAIPromptCompressionRoleOptions;
|
|
52
56
|
interface OpenAIPromptCompressionOptions {
|
|
53
57
|
enabled?: boolean;
|
|
54
58
|
provider?: PromptCompressionProvider;
|
|
55
59
|
roles?: Partial<Record<OpenAIPromptCompressionRole, OpenAIPromptCompressionRoleSetting>>;
|
|
60
|
+
/**
|
|
61
|
+
* Skip compression when the combined request context is estimated below this
|
|
62
|
+
* many tokens. `withCompression` defaults to 1,000; set to 0 to always try.
|
|
63
|
+
*/
|
|
64
|
+
minContextTokens?: number;
|
|
65
|
+
/** Minimum estimated tokens for each individual text segment. */
|
|
56
66
|
minTokens?: number;
|
|
57
67
|
failOpen?: boolean;
|
|
58
68
|
tokenCompanyModel?: string;
|
|
69
|
+
aggressiveness?: number | Partial<Record<OpenAIPromptCompressionRole, number>>;
|
|
70
|
+
/** @deprecated Use aggressiveness instead. */
|
|
59
71
|
tokenCompanyAggressiveness?: number | Partial<Record<OpenAIPromptCompressionRole, number>>;
|
|
60
72
|
tokenCompanyAppId?: string;
|
|
73
|
+
usageTapCompressionModel?: string;
|
|
74
|
+
/** @deprecated Use aggressiveness instead. */
|
|
75
|
+
usageTapCompressionAggressiveness?: number | Partial<Record<OpenAIPromptCompressionRole, number>>;
|
|
61
76
|
}
|
|
62
77
|
interface OpenAIPromptCompressionTurnStats extends PromptCompressionTelemetry {
|
|
63
78
|
callId: string;
|
|
@@ -94,6 +109,24 @@ interface WrapOpenAIOptions {
|
|
|
94
109
|
applyVendorHints?: boolean;
|
|
95
110
|
promptCompression?: boolean | OpenAIPromptCompressionOptions;
|
|
96
111
|
}
|
|
112
|
+
interface OpenAICompressionOptions extends OpenAIPromptCompressionOptions {
|
|
113
|
+
/** UsageTap API key. Defaults to USAGETAP_API_KEY. */
|
|
114
|
+
apiKey?: string;
|
|
115
|
+
/** Reuse an existing client when custom transport or endpoints are configured. */
|
|
116
|
+
usageTapClient?: UsageTapClient;
|
|
117
|
+
}
|
|
118
|
+
type CompressionWrappedOpenAI = OpenAI & {
|
|
119
|
+
/** Return the original, unwrapped OpenAI-compatible client. */
|
|
120
|
+
unwrap: () => OpenAI;
|
|
121
|
+
};
|
|
122
|
+
type WithMeteringOpenAIOptions = BeginCallRequest & {
|
|
123
|
+
/** UsageTap API key. Defaults to USAGETAP_API_KEY. */
|
|
124
|
+
apiKey?: string;
|
|
125
|
+
/** Reuse an existing client when custom transport or endpoints are configured. */
|
|
126
|
+
usageTapClient?: UsageTapClient;
|
|
127
|
+
applyVendorHints?: boolean;
|
|
128
|
+
promptCompression?: boolean | OpenAIPromptCompressionOptions;
|
|
129
|
+
};
|
|
97
130
|
type ChatCompletionsResource = OpenAI["chat"]["completions"];
|
|
98
131
|
type ChatCompletionCreate = ChatCompletionsResource["create"];
|
|
99
132
|
type ChatCompletionCreateParams = Parameters<ChatCompletionCreate>[0];
|
|
@@ -175,6 +208,17 @@ type UsageTapStream<T> = AsyncIterable<T> & {
|
|
|
175
208
|
};
|
|
176
209
|
declare function toNextResponse<T>(stream: UsageTapStream<T>, options?: StreamToResponseOptions): Response;
|
|
177
210
|
declare function pipeToResponse<T>(stream: UsageTapStream<T>, res: NodeResponseLike, options?: StreamToResponseOptions): Promise<void>;
|
|
211
|
+
/**
|
|
212
|
+
* Add hosted prompt compression to an OpenAI-compatible client without
|
|
213
|
+
* changing any of its call sites. Works with OpenAI and OpenRouter clients.
|
|
214
|
+
*/
|
|
215
|
+
declare function withCompression(client: OpenAI, options?: OpenAICompressionOptions): CompressionWrappedOpenAI;
|
|
216
|
+
/**
|
|
217
|
+
* Add UsageTap metering to an OpenAI-compatible client. The string form is the
|
|
218
|
+
* shortest path; pass an object when feature, tags, entitlements, or compression
|
|
219
|
+
* are also needed.
|
|
220
|
+
*/
|
|
221
|
+
declare function withMetering(client: OpenAI, customer: string | WithMeteringOpenAIOptions): WrappedOpenAI;
|
|
178
222
|
declare function wrapOpenAI(client: OpenAI, usageTap: UsageTapClient, options?: WrapOpenAIOptions): WrappedOpenAI;
|
|
179
223
|
declare function streamOpenAIRoute(usageTap: UsageTapClient, openai: OpenAI, options: StreamOpenAIRouteOptions): (req: Request) => Promise<Response>;
|
|
180
224
|
interface NodeResponseLike {
|
|
@@ -187,4 +231,4 @@ interface NodeResponseLike {
|
|
|
187
231
|
flush?(): void;
|
|
188
232
|
}
|
|
189
233
|
|
|
190
|
-
export { type NodeResponseLike, type OpenAIAdapter, type OpenAIAdapterInit, type OpenAIInvokeParams, type OpenAIInvokeResult, type OpenAIPromptCompressionFailure, type OpenAIPromptCompressionOptions, type OpenAIPromptCompressionRole, type OpenAIPromptCompressionRoleOptions, type OpenAIPromptCompressionRoleSetting, OpenAIPromptCompressionStats, type OpenAIPromptCompressionTurnStats, type OpenAIRequestContext, type OpenAIStreamCallResult, type OpenAIStreamParams, type OpenAIStreamResult, type StreamMode, type StreamOpenAIRouteOptions, type StreamToResponseOptions, type UsageTapStream, type WrapOpenAICallOptions, type WrapOpenAIContext, type WrapOpenAIOptions, type WrapOpenAIResponseCallOptions, type WrappedOpenAI, createOpenAIAdapter, pipeToResponse, streamOpenAIRoute, toNextResponse, wrapOpenAI };
|
|
234
|
+
export { type CompressionWrappedOpenAI, type NodeResponseLike, type OpenAIAdapter, type OpenAIAdapterInit, type OpenAICompressionOptions, type OpenAIInvokeParams, type OpenAIInvokeResult, type OpenAIPromptCompressionFailure, type OpenAIPromptCompressionOptions, type OpenAIPromptCompressionRole, type OpenAIPromptCompressionRoleOptions, type OpenAIPromptCompressionRoleSetting, OpenAIPromptCompressionStats, type OpenAIPromptCompressionTurnStats, type OpenAIRequestContext, type OpenAIStreamCallResult, type OpenAIStreamParams, type OpenAIStreamResult, type StreamMode, type StreamOpenAIRouteOptions, type StreamToResponseOptions, type UsageTapStream, type WithMeteringOpenAIOptions, type WrapOpenAICallOptions, type WrapOpenAIContext, type WrapOpenAIOptions, type WrapOpenAIResponseCallOptions, type WrappedOpenAI, createOpenAIAdapter, pipeToResponse, streamOpenAIRoute, toNextResponse, withCompression, withMetering, wrapOpenAI };
|