@usagetap/sdk 1.4.0 → 1.7.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 (52) hide show
  1. package/README.md +156 -18
  2. package/dist/adapters/anthropic.cjs +195 -235
  3. package/dist/adapters/anthropic.cjs.map +1 -1
  4. package/dist/adapters/anthropic.d.cts +1 -1
  5. package/dist/adapters/anthropic.d.ts +1 -1
  6. package/dist/adapters/anthropic.mjs +195 -235
  7. package/dist/adapters/anthropic.mjs.map +1 -1
  8. package/dist/adapters/openai.cjs +256 -274
  9. package/dist/adapters/openai.cjs.map +1 -1
  10. package/dist/adapters/openai.d.cts +1 -1
  11. package/dist/adapters/openai.d.ts +1 -1
  12. package/dist/adapters/openai.mjs +256 -274
  13. package/dist/adapters/openai.mjs.map +1 -1
  14. package/dist/adapters/openrouter.cjs +256 -274
  15. package/dist/adapters/openrouter.cjs.map +1 -1
  16. package/dist/adapters/openrouter.d.cts +1 -1
  17. package/dist/adapters/openrouter.d.ts +1 -1
  18. package/dist/adapters/openrouter.mjs +256 -274
  19. package/dist/adapters/openrouter.mjs.map +1 -1
  20. package/dist/anthropic/index.cjs +195 -235
  21. package/dist/anthropic/index.cjs.map +1 -1
  22. package/dist/anthropic/index.d.cts +1 -1
  23. package/dist/anthropic/index.d.ts +1 -1
  24. package/dist/anthropic/index.mjs +195 -235
  25. package/dist/anthropic/index.mjs.map +1 -1
  26. package/dist/{client-CExQ8e1T.d.cts → client-C0UiaqVB.d.cts} +141 -61
  27. package/dist/{client-CExQ8e1T.d.ts → client-C0UiaqVB.d.ts} +141 -61
  28. package/dist/express/index.cjs +189 -246
  29. package/dist/express/index.cjs.map +1 -1
  30. package/dist/express/index.d.cts +1 -1
  31. package/dist/express/index.d.ts +1 -1
  32. package/dist/express/index.mjs +189 -246
  33. package/dist/express/index.mjs.map +1 -1
  34. package/dist/index.cjs +391 -175
  35. package/dist/index.cjs.map +1 -1
  36. package/dist/index.d.cts +13 -4
  37. package/dist/index.d.ts +13 -4
  38. package/dist/index.mjs +391 -175
  39. package/dist/index.mjs.map +1 -1
  40. package/dist/openai/index.cjs +256 -274
  41. package/dist/openai/index.cjs.map +1 -1
  42. package/dist/openai/index.d.cts +1 -1
  43. package/dist/openai/index.d.ts +1 -1
  44. package/dist/openai/index.mjs +256 -274
  45. package/dist/openai/index.mjs.map +1 -1
  46. package/dist/openrouter/index.cjs +256 -274
  47. package/dist/openrouter/index.cjs.map +1 -1
  48. package/dist/openrouter/index.d.cts +1 -1
  49. package/dist/openrouter/index.d.ts +1 -1
  50. package/dist/openrouter/index.mjs +256 -274
  51. package/dist/openrouter/index.mjs.map +1 -1
  52. package/package.json +2 -2
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { U as UsageTapClient, B as BeginCallRequest } from './client-CExQ8e1T.cjs';
2
- export { av as AllowedEntitlements, ai as BalanceSummary, X as BeginCallOptions, d as BeginCallResponseBody, aN as CaptureSampleOptions, aM as CaptureSampleRequest, aO as CaptureSampleResponseBody, a8 as ChangePlanOptions, a9 as ChangePlanRequest, aa as ChangePlanResponseBody, ab as ChangePlanStrategy, a5 as CheckUsageOptions, a6 as CheckUsageRequest, a7 as CheckUsageResponseBody, aV as CircuitBreakerDecision, aU as CircuitBreakerOptions, a2 as CreateCustomerOptions, a3 as CreateCustomerRequest, a4 as CreateCustomerResponseBody, af as CustomMeterSlot, ag as EndCallOptions, E as EndCallRequest, ah as EndCallResponseBody, am as EntitlementHints, G as GatewayBatch, g as GatewayBatchCreateParams, h as GatewayBatchRequest, i as GatewayBatchResult, j as GatewayBatchStatus, k as GatewayChatCompletion, l as GatewayChatCompletionCreateParams, m as GatewayChatMessage, n as GatewayModel, o as GatewayModelList, aQ as GetSamplingSettingsOptions, aJ as IdempotencyMetadata, ac as IncrementCustomMeterOptions, ad as IncrementCustomMeterRequest, ae as IncrementCustomMeterResponseBody, aG as LimitType, M as MeterRequest, ap as MeterSnapshot, ao as MeterSummary, aq as MeteredUsage, aI as ModelHints, an as PlanSummary, K as PromptCompressionInput, O as PromptCompressionMessageRole, L as PromptCompressionMessagesAggressiveness, N as PromptCompressionMessagesInput, _ as PromptCompressionMessagesOptions, a as PromptCompressionMode, Z as PromptCompressionOptions, P as PromptCompressionProvider, Y as PromptCompressionRequest, $ as PromptCompressionResponseBody, Q as PromptCompressionResult, T as PromptCompressionRoleAggressiveness, a0 as PromptCompressionStandaloneOptions, b as PromptCompressionTelemetry, ar as RateLimitsSnapshot, ax as ReasoningEffort, ay as ReasoningEffortSource, aw as ReasoningLevel, a1 as RecordPromptCompressionRequest, as as RemainingRatios, au as RequestedEntitlements, R as ResourceRequestOptions, az as RetryOptions, at as RollingCallsRateLimitState, aL as SamplingDecisionInput, aT as SamplingDecisionOptions, aR as SamplingDecisionRequest, aS as SamplingDecisionResponseBody, S as SamplingOptions, aP as SamplingSettings, aj as SpendVelocitySnapshot, ak as SpendVelocityWindow, al as SpendVelocityWindowKey, aH as SubscriptionSnapshot, p as SummarizationBatch, q as SummarizationBatchCreateParams, r as SummarizationBatchJob, s as SummarizationContext, t as SummarizationCreateParams, u as SummarizationJob, v as SummarizationMeasurement, w as SummarizationMeasurementCreateParams, x as SummarizationProfile, y as SummarizationStatus, aK as UsageMetricEvent, aA as UsageTapClientOptions, e as UsageTapCompressOptions, f as UsageTapCompressResult, aB as UsageTapErrorResponse, aE as UsageTapLogEntry, aC as UsageTapResultEnvelope, aD as UsageTapResultStatus, c as UsageTapSuccessResponse, V as VendorHints, z as WaitOptions, aF as WithUsageContext, W as WithUsageOptions, A as compressPrompt, D as compressPromptHeuristic, C as compressPromptMessages, F as compressPromptToon, H as estimatePromptTokens, I as protect, J as protectPromptText } from './client-CExQ8e1T.cjs';
1
+ import { U as UsageTapClient, B as BeginCallRequest } from './client-C0UiaqVB.cjs';
2
+ export { aF as AllowedEntitlements, as as BalanceSummary, a5 as BeginCallOptions, d as BeginCallResponseBody, aX as CaptureSampleOptions, aW as CaptureSampleRequest, aY as CaptureSampleResponseBody, ai as ChangePlanOptions, aj as ChangePlanRequest, ak as ChangePlanResponseBody, al as ChangePlanStrategy, af as CheckUsageOptions, ag as CheckUsageRequest, ah as CheckUsageResponseBody, b3 as CircuitBreakerDecision, b2 as CircuitBreakerOptions, ac as CreateCustomerOptions, ad as CreateCustomerRequest, ae as CreateCustomerResponseBody, ap as CustomMeterSlot, aq as EndCallOptions, E as EndCallRequest, ar as EndCallResponseBody, aw as EntitlementHints, G as GatewayBatch, g as GatewayBatchCreateParams, h as GatewayBatchRequest, i as GatewayBatchResult, j as GatewayBatchStatus, k as GatewayChatCompletion, l as GatewayChatCompletionCreateParams, m as GatewayChatMessage, x as GatewayModel, y as GatewayModelList, n as GatewayPromptCacheBreakpoint, o as GatewayResponse, p as GatewayResponseCreateParams, q as GatewayResponseInputItem, r as GatewayResponseInputMessage, s as GatewayResponseInputText, t as GatewayResponsePromptCacheOptions, u as GatewayResponseTextConfig, v as GatewayResponseTextFormat, w as GatewayResponseVerbosity, a_ as GetSamplingSettingsOptions, aT as IdempotencyMetadata, am as IncrementCustomMeterOptions, an as IncrementCustomMeterRequest, ao as IncrementCustomMeterResponseBody, aQ as LimitType, M as MeterRequest, az as MeterSnapshot, ay as MeterSummary, aA as MeteredUsage, aS as ModelHints, ax as PlanSummary, $ as PromptCompressionInput, a2 as PromptCompressionMessageRole, a0 as PromptCompressionMessagesAggressiveness, a1 as PromptCompressionMessagesInput, a8 as PromptCompressionMessagesOptions, a as PromptCompressionMode, a7 as PromptCompressionOptions, P as PromptCompressionProvider, a6 as PromptCompressionRequest, a9 as PromptCompressionResponseBody, a3 as PromptCompressionResult, a4 as PromptCompressionRoleAggressiveness, aa as PromptCompressionStandaloneOptions, b as PromptCompressionTelemetry, aB as RateLimitsSnapshot, aH as ReasoningEffort, aI as ReasoningEffortSource, aG as ReasoningLevel, ab as RecordPromptCompressionRequest, aC as RemainingRatios, aE as RequestedEntitlements, R as ResourceRequestOptions, aJ as RetryOptions, aD as RollingCallsRateLimitState, aV as SamplingDecisionInput, b1 as SamplingDecisionOptions, a$ as SamplingDecisionRequest, b0 as SamplingDecisionResponseBody, S as SamplingOptions, aZ as SamplingSettings, at as SpendVelocitySnapshot, au as SpendVelocityWindow, av as SpendVelocityWindowKey, aR as SubscriptionSnapshot, z as SummarizationBatch, A as SummarizationBatchCreateParams, C as SummarizationBatchJob, D as SummarizationContext, F as SummarizationCreateParams, H as SummarizationJob, I as SummarizationMeasurement, J as SummarizationMeasurementCreateParams, K as SummarizationProfile, L as SummarizationStatus, aU as UsageMetricEvent, aK as UsageTapClientOptions, e as UsageTapCompressOptions, f as UsageTapCompressResult, aL as UsageTapErrorResponse, aO as UsageTapLogEntry, aM as UsageTapResultEnvelope, aN as UsageTapResultStatus, c as UsageTapSuccessResponse, V as VendorHints, N as WaitOptions, aP as WithUsageContext, W as WithUsageOptions, O as compressPrompt, T as compressPromptHeuristic, Q as compressPromptMessages, X as compressPromptToon, Y as estimatePromptTokens, Z as protect, _ as protectPromptText } from './client-C0UiaqVB.cjs';
3
3
 
4
4
  type UsageTapErrorCode = "USAGETAP_BROWSER_RUNTIME" | "USAGETAP_AUTH_ERROR" | "USAGETAP_BAD_REQUEST" | "USAGETAP_INVALID_RESPONSE" | "USAGETAP_NETWORK_ERROR" | "USAGETAP_RATE_LIMITED" | "USAGETAP_CIRCUIT_OPEN" | "USAGETAP_SERVER_ERROR" | "USAGETAP_RETRY_EXHAUSTED" | "USAGETAP_END_CALL_ERROR";
5
5
  interface UsageTapErrorInit {
@@ -43,9 +43,18 @@ interface WrapFetchOptions {
43
43
  autoIdempotency?: boolean;
44
44
  /**
45
45
  * Detect OpenAI-compatible endpoints by URL pattern.
46
- * Default: detects /v1/chat/completions and /v1/responses
46
+ * Default: detects /v1/chat/completions, /v1/responses, and /v1/embeddings
47
47
  */
48
48
  isOpenAIEndpoint?: (url: string) => boolean;
49
+ /** Receive request parsing or begin/end failures after client retries. */
50
+ onMeteringError?: (event: WrapFetchMeteringError) => void | Promise<void>;
51
+ /** Throw metering failures instead of allowing the vendor response through. */
52
+ strictMetering?: boolean;
53
+ }
54
+ interface WrapFetchMeteringError {
55
+ stage: "request" | "begin" | "end";
56
+ callId?: string;
57
+ error: unknown;
49
58
  }
50
59
  /**
51
60
  * Wraps a fetch implementation to automatically instrument OpenAI API calls
@@ -67,4 +76,4 @@ declare function wrapFetch(usageTap: UsageTapClient, options: WrapFetchOptions):
67
76
 
68
77
  declare function createIdempotencyKey(): string;
69
78
 
70
- export { BeginCallRequest, UsageTapClient as UsageTap, UsageTapClient, UsageTapError, type UsageTapErrorCode, type UsageTapErrorInit, type WrapFetchContext, type WrapFetchOptions, createIdempotencyKey, isUsageTapError, wrapFetch };
79
+ export { BeginCallRequest, UsageTapClient as UsageTap, UsageTapClient, UsageTapError, type UsageTapErrorCode, type UsageTapErrorInit, type WrapFetchContext, type WrapFetchMeteringError, type WrapFetchOptions, createIdempotencyKey, isUsageTapError, wrapFetch };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { U as UsageTapClient, B as BeginCallRequest } from './client-CExQ8e1T.js';
2
- export { av as AllowedEntitlements, ai as BalanceSummary, X as BeginCallOptions, d as BeginCallResponseBody, aN as CaptureSampleOptions, aM as CaptureSampleRequest, aO as CaptureSampleResponseBody, a8 as ChangePlanOptions, a9 as ChangePlanRequest, aa as ChangePlanResponseBody, ab as ChangePlanStrategy, a5 as CheckUsageOptions, a6 as CheckUsageRequest, a7 as CheckUsageResponseBody, aV as CircuitBreakerDecision, aU as CircuitBreakerOptions, a2 as CreateCustomerOptions, a3 as CreateCustomerRequest, a4 as CreateCustomerResponseBody, af as CustomMeterSlot, ag as EndCallOptions, E as EndCallRequest, ah as EndCallResponseBody, am as EntitlementHints, G as GatewayBatch, g as GatewayBatchCreateParams, h as GatewayBatchRequest, i as GatewayBatchResult, j as GatewayBatchStatus, k as GatewayChatCompletion, l as GatewayChatCompletionCreateParams, m as GatewayChatMessage, n as GatewayModel, o as GatewayModelList, aQ as GetSamplingSettingsOptions, aJ as IdempotencyMetadata, ac as IncrementCustomMeterOptions, ad as IncrementCustomMeterRequest, ae as IncrementCustomMeterResponseBody, aG as LimitType, M as MeterRequest, ap as MeterSnapshot, ao as MeterSummary, aq as MeteredUsage, aI as ModelHints, an as PlanSummary, K as PromptCompressionInput, O as PromptCompressionMessageRole, L as PromptCompressionMessagesAggressiveness, N as PromptCompressionMessagesInput, _ as PromptCompressionMessagesOptions, a as PromptCompressionMode, Z as PromptCompressionOptions, P as PromptCompressionProvider, Y as PromptCompressionRequest, $ as PromptCompressionResponseBody, Q as PromptCompressionResult, T as PromptCompressionRoleAggressiveness, a0 as PromptCompressionStandaloneOptions, b as PromptCompressionTelemetry, ar as RateLimitsSnapshot, ax as ReasoningEffort, ay as ReasoningEffortSource, aw as ReasoningLevel, a1 as RecordPromptCompressionRequest, as as RemainingRatios, au as RequestedEntitlements, R as ResourceRequestOptions, az as RetryOptions, at as RollingCallsRateLimitState, aL as SamplingDecisionInput, aT as SamplingDecisionOptions, aR as SamplingDecisionRequest, aS as SamplingDecisionResponseBody, S as SamplingOptions, aP as SamplingSettings, aj as SpendVelocitySnapshot, ak as SpendVelocityWindow, al as SpendVelocityWindowKey, aH as SubscriptionSnapshot, p as SummarizationBatch, q as SummarizationBatchCreateParams, r as SummarizationBatchJob, s as SummarizationContext, t as SummarizationCreateParams, u as SummarizationJob, v as SummarizationMeasurement, w as SummarizationMeasurementCreateParams, x as SummarizationProfile, y as SummarizationStatus, aK as UsageMetricEvent, aA as UsageTapClientOptions, e as UsageTapCompressOptions, f as UsageTapCompressResult, aB as UsageTapErrorResponse, aE as UsageTapLogEntry, aC as UsageTapResultEnvelope, aD as UsageTapResultStatus, c as UsageTapSuccessResponse, V as VendorHints, z as WaitOptions, aF as WithUsageContext, W as WithUsageOptions, A as compressPrompt, D as compressPromptHeuristic, C as compressPromptMessages, F as compressPromptToon, H as estimatePromptTokens, I as protect, J as protectPromptText } from './client-CExQ8e1T.js';
1
+ import { U as UsageTapClient, B as BeginCallRequest } from './client-C0UiaqVB.js';
2
+ export { aF as AllowedEntitlements, as as BalanceSummary, a5 as BeginCallOptions, d as BeginCallResponseBody, aX as CaptureSampleOptions, aW as CaptureSampleRequest, aY as CaptureSampleResponseBody, ai as ChangePlanOptions, aj as ChangePlanRequest, ak as ChangePlanResponseBody, al as ChangePlanStrategy, af as CheckUsageOptions, ag as CheckUsageRequest, ah as CheckUsageResponseBody, b3 as CircuitBreakerDecision, b2 as CircuitBreakerOptions, ac as CreateCustomerOptions, ad as CreateCustomerRequest, ae as CreateCustomerResponseBody, ap as CustomMeterSlot, aq as EndCallOptions, E as EndCallRequest, ar as EndCallResponseBody, aw as EntitlementHints, G as GatewayBatch, g as GatewayBatchCreateParams, h as GatewayBatchRequest, i as GatewayBatchResult, j as GatewayBatchStatus, k as GatewayChatCompletion, l as GatewayChatCompletionCreateParams, m as GatewayChatMessage, x as GatewayModel, y as GatewayModelList, n as GatewayPromptCacheBreakpoint, o as GatewayResponse, p as GatewayResponseCreateParams, q as GatewayResponseInputItem, r as GatewayResponseInputMessage, s as GatewayResponseInputText, t as GatewayResponsePromptCacheOptions, u as GatewayResponseTextConfig, v as GatewayResponseTextFormat, w as GatewayResponseVerbosity, a_ as GetSamplingSettingsOptions, aT as IdempotencyMetadata, am as IncrementCustomMeterOptions, an as IncrementCustomMeterRequest, ao as IncrementCustomMeterResponseBody, aQ as LimitType, M as MeterRequest, az as MeterSnapshot, ay as MeterSummary, aA as MeteredUsage, aS as ModelHints, ax as PlanSummary, $ as PromptCompressionInput, a2 as PromptCompressionMessageRole, a0 as PromptCompressionMessagesAggressiveness, a1 as PromptCompressionMessagesInput, a8 as PromptCompressionMessagesOptions, a as PromptCompressionMode, a7 as PromptCompressionOptions, P as PromptCompressionProvider, a6 as PromptCompressionRequest, a9 as PromptCompressionResponseBody, a3 as PromptCompressionResult, a4 as PromptCompressionRoleAggressiveness, aa as PromptCompressionStandaloneOptions, b as PromptCompressionTelemetry, aB as RateLimitsSnapshot, aH as ReasoningEffort, aI as ReasoningEffortSource, aG as ReasoningLevel, ab as RecordPromptCompressionRequest, aC as RemainingRatios, aE as RequestedEntitlements, R as ResourceRequestOptions, aJ as RetryOptions, aD as RollingCallsRateLimitState, aV as SamplingDecisionInput, b1 as SamplingDecisionOptions, a$ as SamplingDecisionRequest, b0 as SamplingDecisionResponseBody, S as SamplingOptions, aZ as SamplingSettings, at as SpendVelocitySnapshot, au as SpendVelocityWindow, av as SpendVelocityWindowKey, aR as SubscriptionSnapshot, z as SummarizationBatch, A as SummarizationBatchCreateParams, C as SummarizationBatchJob, D as SummarizationContext, F as SummarizationCreateParams, H as SummarizationJob, I as SummarizationMeasurement, J as SummarizationMeasurementCreateParams, K as SummarizationProfile, L as SummarizationStatus, aU as UsageMetricEvent, aK as UsageTapClientOptions, e as UsageTapCompressOptions, f as UsageTapCompressResult, aL as UsageTapErrorResponse, aO as UsageTapLogEntry, aM as UsageTapResultEnvelope, aN as UsageTapResultStatus, c as UsageTapSuccessResponse, V as VendorHints, N as WaitOptions, aP as WithUsageContext, W as WithUsageOptions, O as compressPrompt, T as compressPromptHeuristic, Q as compressPromptMessages, X as compressPromptToon, Y as estimatePromptTokens, Z as protect, _ as protectPromptText } from './client-C0UiaqVB.js';
3
3
 
4
4
  type UsageTapErrorCode = "USAGETAP_BROWSER_RUNTIME" | "USAGETAP_AUTH_ERROR" | "USAGETAP_BAD_REQUEST" | "USAGETAP_INVALID_RESPONSE" | "USAGETAP_NETWORK_ERROR" | "USAGETAP_RATE_LIMITED" | "USAGETAP_CIRCUIT_OPEN" | "USAGETAP_SERVER_ERROR" | "USAGETAP_RETRY_EXHAUSTED" | "USAGETAP_END_CALL_ERROR";
5
5
  interface UsageTapErrorInit {
@@ -43,9 +43,18 @@ interface WrapFetchOptions {
43
43
  autoIdempotency?: boolean;
44
44
  /**
45
45
  * Detect OpenAI-compatible endpoints by URL pattern.
46
- * Default: detects /v1/chat/completions and /v1/responses
46
+ * Default: detects /v1/chat/completions, /v1/responses, and /v1/embeddings
47
47
  */
48
48
  isOpenAIEndpoint?: (url: string) => boolean;
49
+ /** Receive request parsing or begin/end failures after client retries. */
50
+ onMeteringError?: (event: WrapFetchMeteringError) => void | Promise<void>;
51
+ /** Throw metering failures instead of allowing the vendor response through. */
52
+ strictMetering?: boolean;
53
+ }
54
+ interface WrapFetchMeteringError {
55
+ stage: "request" | "begin" | "end";
56
+ callId?: string;
57
+ error: unknown;
49
58
  }
50
59
  /**
51
60
  * Wraps a fetch implementation to automatically instrument OpenAI API calls
@@ -67,4 +76,4 @@ declare function wrapFetch(usageTap: UsageTapClient, options: WrapFetchOptions):
67
76
 
68
77
  declare function createIdempotencyKey(): string;
69
78
 
70
- export { BeginCallRequest, UsageTapClient as UsageTap, UsageTapClient, UsageTapError, type UsageTapErrorCode, type UsageTapErrorInit, type WrapFetchContext, type WrapFetchOptions, createIdempotencyKey, isUsageTapError, wrapFetch };
79
+ export { BeginCallRequest, UsageTapClient as UsageTap, UsageTapClient, UsageTapError, type UsageTapErrorCode, type UsageTapErrorInit, type WrapFetchContext, type WrapFetchMeteringError, type WrapFetchOptions, createIdempotencyKey, isUsageTapError, wrapFetch };