@usagetap/sdk 1.0.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 +77 -16
  2. package/dist/adapters/anthropic.cjs +1009 -0
  3. package/dist/adapters/anthropic.cjs.map +1 -0
  4. package/dist/adapters/anthropic.d.cts +90 -0
  5. package/dist/adapters/anthropic.d.ts +90 -0
  6. package/dist/adapters/anthropic.mjs +1006 -0
  7. package/dist/adapters/anthropic.mjs.map +1 -0
  8. package/dist/adapters/openai.cjs +667 -17
  9. package/dist/adapters/openai.cjs.map +1 -1
  10. package/dist/adapters/openai.d.cts +66 -2
  11. package/dist/adapters/openai.d.ts +66 -2
  12. package/dist/adapters/openai.mjs +667 -18
  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 +1009 -0
  19. package/dist/anthropic/index.cjs.map +1 -0
  20. package/dist/anthropic/index.d.cts +2 -0
  21. package/dist/anthropic/index.d.ts +2 -0
  22. package/dist/anthropic/index.mjs +1006 -0
  23. package/dist/anthropic/index.mjs.map +1 -0
  24. package/dist/{client-BHNMYvlO.d.cts → client-EMXt9_fA.d.cts} +106 -6
  25. package/dist/{client-BHNMYvlO.d.ts → client-EMXt9_fA.d.ts} +106 -6
  26. package/dist/express/index.cjs +663 -17
  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 +663 -17
  31. package/dist/express/index.mjs.map +1 -1
  32. package/dist/index.cjs +287 -24
  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 +285 -25
  37. package/dist/index.mjs.map +1 -1
  38. package/dist/openai/index.cjs +667 -17
  39. package/dist/openai/index.cjs.map +1 -1
  40. package/dist/openai/index.d.cts +2 -2
  41. package/dist/openai/index.d.ts +2 -2
  42. package/dist/openai/index.mjs +667 -18
  43. package/dist/openai/index.mjs.map +1 -1
  44. package/package.json +21 -1
@@ -1,5 +1,5 @@
1
1
  import OpenAI from 'openai';
2
- import { B as BeginCallRequest, U as UsageTapClient, W as WithUsageOptions, V as VendorHints, a as UsageTapSuccessResponse, b as BeginCallResponseBody, E as EndCallRequest } from '../client-BHNMYvlO.cjs';
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-EMXt9_fA.cjs';
3
3
 
4
4
  interface OpenAIAdapterInit {
5
5
  client: OpenAI;
@@ -41,9 +41,67 @@ interface OpenAIAdapter {
41
41
  }
42
42
  type ReplaceProperty<T, K extends keyof T, V> = Omit<T, K> & Record<K, V>;
43
43
  type WrapOpenAIContext = BeginCallRequest;
44
+ type OpenAIPromptCompressionRole = "system" | "user" | "tool" | "assistant";
45
+ interface OpenAIPromptCompressionRoleOptions {
46
+ enabled?: boolean;
47
+ provider?: PromptCompressionProvider;
48
+ minTokens?: number;
49
+ aggressiveness?: number;
50
+ /** @deprecated Use aggressiveness instead. */
51
+ tokenCompanyAggressiveness?: number;
52
+ /** @deprecated Use aggressiveness instead. */
53
+ usageTapCompressionAggressiveness?: number;
54
+ }
55
+ type OpenAIPromptCompressionRoleSetting = boolean | OpenAIPromptCompressionRoleOptions;
56
+ interface OpenAIPromptCompressionOptions {
57
+ enabled?: boolean;
58
+ provider?: PromptCompressionProvider;
59
+ roles?: Partial<Record<OpenAIPromptCompressionRole, OpenAIPromptCompressionRoleSetting>>;
60
+ minTokens?: number;
61
+ failOpen?: boolean;
62
+ tokenCompanyModel?: string;
63
+ aggressiveness?: number | Partial<Record<OpenAIPromptCompressionRole, number>>;
64
+ /** @deprecated Use aggressiveness instead. */
65
+ tokenCompanyAggressiveness?: number | Partial<Record<OpenAIPromptCompressionRole, number>>;
66
+ tokenCompanyAppId?: string;
67
+ usageTapCompressionModel?: string;
68
+ /** @deprecated Use aggressiveness instead. */
69
+ usageTapCompressionAggressiveness?: number | Partial<Record<OpenAIPromptCompressionRole, number>>;
70
+ }
71
+ interface OpenAIPromptCompressionTurnStats extends PromptCompressionTelemetry {
72
+ callId: string;
73
+ operation: "chat.completions.create" | "chat.completions.stream" | "responses.create";
74
+ messagesCompressed: number;
75
+ timestamp: number;
76
+ }
77
+ interface OpenAIPromptCompressionFailure {
78
+ callId: string;
79
+ operation: OpenAIPromptCompressionTurnStats["operation"];
80
+ stage: "telemetry";
81
+ message: string;
82
+ timestamp: number;
83
+ }
84
+ declare class OpenAIPromptCompressionStats {
85
+ history: OpenAIPromptCompressionTurnStats[];
86
+ failures: OpenAIPromptCompressionFailure[];
87
+ _record(turn: OpenAIPromptCompressionTurnStats): void;
88
+ _recordFailure(failure: OpenAIPromptCompressionFailure): void;
89
+ get totalOriginalTokens(): number;
90
+ get totalCompressedTokens(): number;
91
+ get totalTokensSaved(): number;
92
+ get totalOriginalCharacters(): number;
93
+ get totalCompressedCharacters(): number;
94
+ get totalCharactersSaved(): number;
95
+ get calls(): number;
96
+ get telemetryFailures(): number;
97
+ get failOpenEvents(): number;
98
+ get tokenSavingsRatio(): number;
99
+ get savingsRatio(): number;
100
+ }
44
101
  interface WrapOpenAIOptions {
45
102
  defaultContext?: Partial<WrapOpenAIContext>;
46
103
  applyVendorHints?: boolean;
104
+ promptCompression?: boolean | OpenAIPromptCompressionOptions;
47
105
  }
48
106
  type ChatCompletionsResource = OpenAI["chat"]["completions"];
49
107
  type ChatCompletionCreate = ChatCompletionsResource["create"];
@@ -53,9 +111,11 @@ type ChatCompletionCreateReturn = ReturnType<ChatCompletionCreate>;
53
111
  type WrapOpenAICallOptions = (ChatCompletionCreateOptions extends undefined ? {
54
112
  usageTap?: Partial<WrapOpenAIContext>;
55
113
  withUsage?: WithUsageOptions;
114
+ promptCompression?: boolean | OpenAIPromptCompressionOptions;
56
115
  } : ChatCompletionCreateOptions & {
57
116
  usageTap?: Partial<WrapOpenAIContext>;
58
117
  withUsage?: WithUsageOptions;
118
+ promptCompression?: boolean | OpenAIPromptCompressionOptions;
59
119
  });
60
120
  interface WrappedChatCompletions extends Omit<ChatCompletionsResource, "create"> {
61
121
  create: (params: ChatCompletionCreateParams, options?: WrapOpenAICallOptions) => ChatCompletionCreateReturn;
@@ -72,9 +132,11 @@ type ResponsesCreateReturn = ResponsesCreate extends (...args: unknown[]) => inf
72
132
  type WrapOpenAIResponseCallOptions = (ResponsesCreateOptions extends undefined ? {
73
133
  usageTap?: Partial<WrapOpenAIContext>;
74
134
  withUsage?: WithUsageOptions;
135
+ promptCompression?: boolean | OpenAIPromptCompressionOptions;
75
136
  } : ResponsesCreateOptions & {
76
137
  usageTap?: Partial<WrapOpenAIContext>;
77
138
  withUsage?: WithUsageOptions;
139
+ promptCompression?: boolean | OpenAIPromptCompressionOptions;
78
140
  });
79
141
  type WrappedResponses = ResponsesResource extends undefined ? undefined : Omit<NonNullable<ResponsesResource>, "create"> & {
80
142
  create: (params: ResponsesCreateParams, options?: WrapOpenAIResponseCallOptions) => ResponsesCreateReturn;
@@ -88,6 +150,7 @@ type WrappedOpenAI = OpenAI & {
88
150
  }) & {
89
151
  toNextResponse: typeof toNextResponse;
90
152
  pipeToResponse: typeof pipeToResponse;
153
+ promptCompression: OpenAIPromptCompressionStats;
91
154
  unwrap: () => OpenAI;
92
155
  };
93
156
  interface StreamOpenAIRouteOptions {
@@ -95,6 +158,7 @@ interface StreamOpenAIRouteOptions {
95
158
  params: ChatCompletionCreateParams;
96
159
  usageTap?: Partial<WrapOpenAIContext>;
97
160
  withUsage?: WithUsageOptions;
161
+ promptCompression?: boolean | OpenAIPromptCompressionOptions;
98
162
  }>;
99
163
  wrapOptions?: WrapOpenAIOptions;
100
164
  defaultContext?: Partial<WrapOpenAIContext>;
@@ -132,4 +196,4 @@ interface NodeResponseLike {
132
196
  flush?(): void;
133
197
  }
134
198
 
135
- export { type NodeResponseLike, type OpenAIAdapter, type OpenAIAdapterInit, type OpenAIInvokeParams, type OpenAIInvokeResult, 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 };
199
+ 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 };
@@ -1,5 +1,5 @@
1
1
  import OpenAI from 'openai';
2
- import { B as BeginCallRequest, U as UsageTapClient, W as WithUsageOptions, V as VendorHints, a as UsageTapSuccessResponse, b as BeginCallResponseBody, E as EndCallRequest } from '../client-BHNMYvlO.js';
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-EMXt9_fA.js';
3
3
 
4
4
  interface OpenAIAdapterInit {
5
5
  client: OpenAI;
@@ -41,9 +41,67 @@ interface OpenAIAdapter {
41
41
  }
42
42
  type ReplaceProperty<T, K extends keyof T, V> = Omit<T, K> & Record<K, V>;
43
43
  type WrapOpenAIContext = BeginCallRequest;
44
+ type OpenAIPromptCompressionRole = "system" | "user" | "tool" | "assistant";
45
+ interface OpenAIPromptCompressionRoleOptions {
46
+ enabled?: boolean;
47
+ provider?: PromptCompressionProvider;
48
+ minTokens?: number;
49
+ aggressiveness?: number;
50
+ /** @deprecated Use aggressiveness instead. */
51
+ tokenCompanyAggressiveness?: number;
52
+ /** @deprecated Use aggressiveness instead. */
53
+ usageTapCompressionAggressiveness?: number;
54
+ }
55
+ type OpenAIPromptCompressionRoleSetting = boolean | OpenAIPromptCompressionRoleOptions;
56
+ interface OpenAIPromptCompressionOptions {
57
+ enabled?: boolean;
58
+ provider?: PromptCompressionProvider;
59
+ roles?: Partial<Record<OpenAIPromptCompressionRole, OpenAIPromptCompressionRoleSetting>>;
60
+ minTokens?: number;
61
+ failOpen?: boolean;
62
+ tokenCompanyModel?: string;
63
+ aggressiveness?: number | Partial<Record<OpenAIPromptCompressionRole, number>>;
64
+ /** @deprecated Use aggressiveness instead. */
65
+ tokenCompanyAggressiveness?: number | Partial<Record<OpenAIPromptCompressionRole, number>>;
66
+ tokenCompanyAppId?: string;
67
+ usageTapCompressionModel?: string;
68
+ /** @deprecated Use aggressiveness instead. */
69
+ usageTapCompressionAggressiveness?: number | Partial<Record<OpenAIPromptCompressionRole, number>>;
70
+ }
71
+ interface OpenAIPromptCompressionTurnStats extends PromptCompressionTelemetry {
72
+ callId: string;
73
+ operation: "chat.completions.create" | "chat.completions.stream" | "responses.create";
74
+ messagesCompressed: number;
75
+ timestamp: number;
76
+ }
77
+ interface OpenAIPromptCompressionFailure {
78
+ callId: string;
79
+ operation: OpenAIPromptCompressionTurnStats["operation"];
80
+ stage: "telemetry";
81
+ message: string;
82
+ timestamp: number;
83
+ }
84
+ declare class OpenAIPromptCompressionStats {
85
+ history: OpenAIPromptCompressionTurnStats[];
86
+ failures: OpenAIPromptCompressionFailure[];
87
+ _record(turn: OpenAIPromptCompressionTurnStats): void;
88
+ _recordFailure(failure: OpenAIPromptCompressionFailure): void;
89
+ get totalOriginalTokens(): number;
90
+ get totalCompressedTokens(): number;
91
+ get totalTokensSaved(): number;
92
+ get totalOriginalCharacters(): number;
93
+ get totalCompressedCharacters(): number;
94
+ get totalCharactersSaved(): number;
95
+ get calls(): number;
96
+ get telemetryFailures(): number;
97
+ get failOpenEvents(): number;
98
+ get tokenSavingsRatio(): number;
99
+ get savingsRatio(): number;
100
+ }
44
101
  interface WrapOpenAIOptions {
45
102
  defaultContext?: Partial<WrapOpenAIContext>;
46
103
  applyVendorHints?: boolean;
104
+ promptCompression?: boolean | OpenAIPromptCompressionOptions;
47
105
  }
48
106
  type ChatCompletionsResource = OpenAI["chat"]["completions"];
49
107
  type ChatCompletionCreate = ChatCompletionsResource["create"];
@@ -53,9 +111,11 @@ type ChatCompletionCreateReturn = ReturnType<ChatCompletionCreate>;
53
111
  type WrapOpenAICallOptions = (ChatCompletionCreateOptions extends undefined ? {
54
112
  usageTap?: Partial<WrapOpenAIContext>;
55
113
  withUsage?: WithUsageOptions;
114
+ promptCompression?: boolean | OpenAIPromptCompressionOptions;
56
115
  } : ChatCompletionCreateOptions & {
57
116
  usageTap?: Partial<WrapOpenAIContext>;
58
117
  withUsage?: WithUsageOptions;
118
+ promptCompression?: boolean | OpenAIPromptCompressionOptions;
59
119
  });
60
120
  interface WrappedChatCompletions extends Omit<ChatCompletionsResource, "create"> {
61
121
  create: (params: ChatCompletionCreateParams, options?: WrapOpenAICallOptions) => ChatCompletionCreateReturn;
@@ -72,9 +132,11 @@ type ResponsesCreateReturn = ResponsesCreate extends (...args: unknown[]) => inf
72
132
  type WrapOpenAIResponseCallOptions = (ResponsesCreateOptions extends undefined ? {
73
133
  usageTap?: Partial<WrapOpenAIContext>;
74
134
  withUsage?: WithUsageOptions;
135
+ promptCompression?: boolean | OpenAIPromptCompressionOptions;
75
136
  } : ResponsesCreateOptions & {
76
137
  usageTap?: Partial<WrapOpenAIContext>;
77
138
  withUsage?: WithUsageOptions;
139
+ promptCompression?: boolean | OpenAIPromptCompressionOptions;
78
140
  });
79
141
  type WrappedResponses = ResponsesResource extends undefined ? undefined : Omit<NonNullable<ResponsesResource>, "create"> & {
80
142
  create: (params: ResponsesCreateParams, options?: WrapOpenAIResponseCallOptions) => ResponsesCreateReturn;
@@ -88,6 +150,7 @@ type WrappedOpenAI = OpenAI & {
88
150
  }) & {
89
151
  toNextResponse: typeof toNextResponse;
90
152
  pipeToResponse: typeof pipeToResponse;
153
+ promptCompression: OpenAIPromptCompressionStats;
91
154
  unwrap: () => OpenAI;
92
155
  };
93
156
  interface StreamOpenAIRouteOptions {
@@ -95,6 +158,7 @@ interface StreamOpenAIRouteOptions {
95
158
  params: ChatCompletionCreateParams;
96
159
  usageTap?: Partial<WrapOpenAIContext>;
97
160
  withUsage?: WithUsageOptions;
161
+ promptCompression?: boolean | OpenAIPromptCompressionOptions;
98
162
  }>;
99
163
  wrapOptions?: WrapOpenAIOptions;
100
164
  defaultContext?: Partial<WrapOpenAIContext>;
@@ -132,4 +196,4 @@ interface NodeResponseLike {
132
196
  flush?(): void;
133
197
  }
134
198
 
135
- export { type NodeResponseLike, type OpenAIAdapter, type OpenAIAdapterInit, type OpenAIInvokeParams, type OpenAIInvokeResult, 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 };
199
+ 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 };