@blyp/core 0.1.2 → 0.1.22

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 (230) hide show
  1. package/README.md +273 -14
  2. package/STABILITY.md +56 -0
  3. package/dist/ai/anthropic/index.d.ts +3 -0
  4. package/dist/ai/anthropic/normalize.d.ts +9 -0
  5. package/dist/ai/anthropic/stream.d.ts +3 -0
  6. package/dist/ai/anthropic/wrap.d.ts +13 -0
  7. package/dist/ai/anthropic.js +701 -0
  8. package/dist/ai/anthropic.mjs +701 -0
  9. package/dist/ai/fetch.js +701 -0
  10. package/dist/ai/fetch.mjs +701 -0
  11. package/dist/ai/openai/index.d.ts +3 -0
  12. package/dist/ai/openai/normalize.d.ts +10 -0
  13. package/dist/ai/openai/stream.d.ts +3 -0
  14. package/dist/ai/openai/wrap.d.ts +24 -0
  15. package/dist/ai/openai.js +701 -0
  16. package/dist/ai/openai.mjs +701 -0
  17. package/dist/ai/shared/fetch.d.ts +5 -0
  18. package/dist/ai/shared/index.d.ts +2 -0
  19. package/dist/ai/shared/normalize.d.ts +17 -0
  20. package/dist/ai/shared/redaction.d.ts +6 -0
  21. package/dist/ai/shared/stream.d.ts +7 -0
  22. package/dist/ai/shared/trace.d.ts +116 -0
  23. package/dist/ai/shared/types.d.ts +161 -0
  24. package/dist/ai/shared.js +701 -0
  25. package/dist/ai/shared.mjs +701 -0
  26. package/dist/ai/vercel/index.d.ts +3 -0
  27. package/dist/ai/vercel/middleware.d.ts +3 -0
  28. package/dist/ai/vercel/model.d.ts +3 -0
  29. package/dist/ai/vercel.js +701 -0
  30. package/dist/ai/vercel.mjs +701 -0
  31. package/dist/astro.js +701 -0
  32. package/dist/astro.mjs +701 -0
  33. package/dist/client.js +1 -1132
  34. package/dist/client.mjs +1 -1125
  35. package/dist/connectors/betterstack.js +9 -1508
  36. package/dist/connectors/betterstack.mjs +9 -1483
  37. package/dist/connectors/databuddy/index.d.ts +7 -0
  38. package/dist/connectors/databuddy/sender.d.ts +5 -0
  39. package/dist/connectors/databuddy.js +9 -0
  40. package/dist/connectors/databuddy.mjs +9 -0
  41. package/dist/connectors/delivery/backoff.d.ts +2 -0
  42. package/dist/connectors/delivery/manager.d.ts +44 -0
  43. package/dist/connectors/delivery/queue-path.d.ts +1 -0
  44. package/dist/connectors/delivery/sqlite-adapter-bun.d.ts +1 -0
  45. package/dist/connectors/delivery/sqlite-adapter-node.d.ts +1 -0
  46. package/dist/connectors/delivery/sqlite-client.d.ts +37 -0
  47. package/dist/connectors/delivery/sqlite-worker.d.ts +1 -0
  48. package/dist/connectors/delivery/studio-queue.d.ts +12 -0
  49. package/dist/connectors/delivery/types.d.ts +98 -0
  50. package/dist/connectors/otlp/index.d.ts +1 -0
  51. package/dist/connectors/otlp.js +9 -1347
  52. package/dist/connectors/otlp.mjs +9 -1344
  53. package/dist/connectors/posthog/properties.d.ts +4 -0
  54. package/dist/connectors/posthog/sender.d.ts +0 -1
  55. package/dist/connectors/posthog.js +10 -1503
  56. package/dist/connectors/posthog.mjs +10 -1498
  57. package/dist/connectors/sentry.js +9 -1356
  58. package/dist/connectors/sentry.mjs +9 -1333
  59. package/dist/core/config.d.ts +7 -2
  60. package/dist/core/log-record.d.ts +5 -4
  61. package/dist/core/logger.d.ts +5 -0
  62. package/dist/core/optional-module.d.ts +1 -0
  63. package/dist/core/pino-pretty-loader.d.ts +4 -0
  64. package/dist/database.js +1 -24
  65. package/dist/database.mjs +1 -21
  66. package/dist/elysia.js +621 -4100
  67. package/dist/elysia.mjs +622 -4073
  68. package/dist/expo.js +1 -719
  69. package/dist/expo.mjs +1 -717
  70. package/dist/express.js +616 -4085
  71. package/dist/express.mjs +616 -4056
  72. package/dist/fastify.js +618 -4104
  73. package/dist/fastify.mjs +618 -4075
  74. package/dist/frameworks/astro/index.d.ts +2 -0
  75. package/dist/frameworks/astro/logger.d.ts +3 -0
  76. package/dist/frameworks/elysia/index.d.ts +1 -1
  77. package/dist/frameworks/elysia/logger.d.ts +2 -35
  78. package/dist/frameworks/nestjs/helpers.d.ts +2 -0
  79. package/dist/frameworks/nitro/index.d.ts +2 -0
  80. package/dist/frameworks/nitro/logger.d.ts +6 -0
  81. package/dist/frameworks/nuxt/index.d.ts +2 -0
  82. package/dist/frameworks/nuxt/logger.d.ts +3 -0
  83. package/dist/frameworks/react-router/index.d.ts +2 -0
  84. package/dist/frameworks/react-router/logger.d.ts +3 -0
  85. package/dist/frameworks/shared/h3.d.ts +19 -0
  86. package/dist/frameworks/shared/http.d.ts +3 -2
  87. package/dist/frameworks/shared/index.d.ts +2 -1
  88. package/dist/frameworks/shared/logger.d.ts +2 -0
  89. package/dist/frameworks/shared/request-context.d.ts +2 -0
  90. package/dist/frameworks/shared/trace.d.ts +6 -0
  91. package/dist/hono.js +624 -4079
  92. package/dist/hono.mjs +626 -4053
  93. package/dist/index.d.ts +57 -17
  94. package/dist/index.js +616 -6494
  95. package/dist/index.mjs +619 -6410
  96. package/dist/nestjs.js +626 -4574
  97. package/dist/nestjs.mjs +622 -4542
  98. package/dist/nextjs.js +625 -4107
  99. package/dist/nextjs.mjs +627 -4081
  100. package/dist/nitro.js +701 -0
  101. package/dist/nitro.mjs +701 -0
  102. package/dist/nuxt.js +701 -0
  103. package/dist/nuxt.mjs +701 -0
  104. package/dist/react-router.js +701 -0
  105. package/dist/react-router.mjs +701 -0
  106. package/dist/shared/redaction.d.ts +17 -0
  107. package/dist/standalone.js +606 -3258
  108. package/dist/standalone.mjs +611 -3234
  109. package/dist/sveltekit.js +625 -4106
  110. package/dist/sveltekit.mjs +626 -4079
  111. package/dist/tanstack-start.js +624 -4105
  112. package/dist/tanstack-start.mjs +626 -4079
  113. package/dist/types/connectors/databuddy.d.ts +52 -0
  114. package/dist/types/core/config.d.ts +89 -0
  115. package/dist/types/core/logger.d.ts +5 -0
  116. package/dist/types/core/structured-log.d.ts +2 -0
  117. package/dist/types/database.d.ts +1 -0
  118. package/dist/types/frameworks/astro.d.ts +33 -0
  119. package/dist/types/frameworks/client.d.ts +2 -0
  120. package/dist/types/frameworks/elysia.d.ts +2 -0
  121. package/dist/types/frameworks/express.d.ts +1 -0
  122. package/dist/types/frameworks/fastify.d.ts +1 -0
  123. package/dist/types/frameworks/hono.d.ts +1 -0
  124. package/dist/types/frameworks/http.d.ts +1 -0
  125. package/dist/types/frameworks/nestjs.d.ts +2 -0
  126. package/dist/types/frameworks/nextjs.d.ts +1 -0
  127. package/dist/types/frameworks/nitro.d.ts +63 -0
  128. package/dist/types/frameworks/nuxt.d.ts +12 -0
  129. package/dist/types/frameworks/react-router.d.ts +35 -0
  130. package/dist/types/frameworks/request-context.d.ts +1 -0
  131. package/dist/types/frameworks/shared.d.ts +28 -1
  132. package/dist/types/frameworks/standalone.d.ts +3 -2
  133. package/dist/types/frameworks/sveltekit.d.ts +1 -0
  134. package/dist/types/frameworks/tanstack-start.d.ts +9 -3
  135. package/dist/types/frameworks/workers.d.ts +3 -0
  136. package/dist/types/shared/client-log.d.ts +2 -1
  137. package/dist/workers.js +2 -626
  138. package/dist/workers.mjs +2 -623
  139. package/package.json +273 -143
  140. package/dist/client.js.map +0 -1
  141. package/dist/client.mjs.map +0 -1
  142. package/dist/connectors/betterstack.js.map +0 -1
  143. package/dist/connectors/betterstack.mjs.map +0 -1
  144. package/dist/connectors/otlp.js.map +0 -1
  145. package/dist/connectors/otlp.mjs.map +0 -1
  146. package/dist/connectors/posthog.js.map +0 -1
  147. package/dist/connectors/posthog.mjs.map +0 -1
  148. package/dist/connectors/sentry.js.map +0 -1
  149. package/dist/connectors/sentry.mjs.map +0 -1
  150. package/dist/database.js.map +0 -1
  151. package/dist/database.mjs.map +0 -1
  152. package/dist/elysia.js.map +0 -1
  153. package/dist/elysia.mjs.map +0 -1
  154. package/dist/expo.js.map +0 -1
  155. package/dist/expo.mjs.map +0 -1
  156. package/dist/express.js.map +0 -1
  157. package/dist/express.mjs.map +0 -1
  158. package/dist/fastify.js.map +0 -1
  159. package/dist/fastify.mjs.map +0 -1
  160. package/dist/hono.js.map +0 -1
  161. package/dist/hono.mjs.map +0 -1
  162. package/dist/index.js.map +0 -1
  163. package/dist/index.mjs.map +0 -1
  164. package/dist/nestjs.js.map +0 -1
  165. package/dist/nestjs.mjs.map +0 -1
  166. package/dist/nextjs.js.map +0 -1
  167. package/dist/nextjs.mjs.map +0 -1
  168. package/dist/standalone.js.map +0 -1
  169. package/dist/standalone.mjs.map +0 -1
  170. package/dist/sveltekit.js.map +0 -1
  171. package/dist/sveltekit.mjs.map +0 -1
  172. package/dist/tanstack-start.js.map +0 -1
  173. package/dist/tanstack-start.mjs.map +0 -1
  174. package/dist/workers.js.map +0 -1
  175. package/dist/workers.mjs.map +0 -1
  176. package/exports/client.js +0 -3
  177. package/exports/client.mjs +0 -3
  178. package/exports/connectors/betterstack.js +0 -1
  179. package/exports/connectors/betterstack.mjs +0 -1
  180. package/exports/connectors/otlp.js +0 -1
  181. package/exports/connectors/otlp.mjs +0 -1
  182. package/exports/connectors/posthog.js +0 -1
  183. package/exports/connectors/posthog.mjs +0 -1
  184. package/exports/connectors/sentry.js +0 -1
  185. package/exports/connectors/sentry.mjs +0 -1
  186. package/exports/database.js +0 -1
  187. package/exports/database.mjs +0 -1
  188. package/exports/expo.js +0 -1
  189. package/exports/expo.mjs +0 -1
  190. package/exports/frameworks/elysia.js +0 -1
  191. package/exports/frameworks/elysia.mjs +0 -1
  192. package/exports/frameworks/express.js +0 -1
  193. package/exports/frameworks/express.mjs +0 -1
  194. package/exports/frameworks/fastify.js +0 -1
  195. package/exports/frameworks/fastify.mjs +0 -1
  196. package/exports/frameworks/hono.js +0 -1
  197. package/exports/frameworks/hono.mjs +0 -1
  198. package/exports/frameworks/nestjs.js +0 -1
  199. package/exports/frameworks/nestjs.mjs +0 -1
  200. package/exports/frameworks/nextjs.js +0 -1
  201. package/exports/frameworks/nextjs.mjs +0 -1
  202. package/exports/frameworks/standalone.js +0 -1
  203. package/exports/frameworks/standalone.mjs +0 -1
  204. package/exports/frameworks/sveltekit.js +0 -1
  205. package/exports/frameworks/sveltekit.mjs +0 -1
  206. package/exports/frameworks/tanstack-start.js +0 -1
  207. package/exports/frameworks/tanstack-start.mjs +0 -1
  208. package/exports/workers.js +0 -1
  209. package/exports/workers.mjs +0 -1
  210. package/types/client.d.ts +0 -34
  211. package/types/connectors/betterstack.d.ts +0 -1
  212. package/types/connectors/otlp.d.ts +0 -1
  213. package/types/connectors/posthog.d.ts +0 -1
  214. package/types/connectors/sentry.d.ts +0 -1
  215. package/types/database.d.ts +0 -1
  216. package/types/expo.d.ts +0 -17
  217. package/types/frameworks/client.d.ts +0 -160
  218. package/types/frameworks/elysia.d.ts +0 -1
  219. package/types/frameworks/expo.d.ts +0 -50
  220. package/types/frameworks/express.d.ts +0 -1
  221. package/types/frameworks/fastify.d.ts +0 -1
  222. package/types/frameworks/hono.d.ts +0 -1
  223. package/types/frameworks/nestjs.d.ts +0 -1
  224. package/types/frameworks/nextjs.d.ts +0 -1
  225. package/types/frameworks/standalone.d.ts +0 -1
  226. package/types/frameworks/sveltekit.d.ts +0 -1
  227. package/types/frameworks/tanstack-start.d.ts +0 -1
  228. package/types/frameworks/workers.d.ts +0 -115
  229. package/types/index.d.ts +0 -1
  230. package/types/workers.d.ts +0 -13
@@ -0,0 +1,5 @@
1
+ import type { BlypProviderOptions } from './types';
2
+ export type BlypFetchOptions = Pick<BlypProviderOptions, 'logger' | 'metadata' | 'limits' | 'exclude'> & {
3
+ inspectJsonBody?: boolean;
4
+ };
5
+ export declare function blypFetch(fetchImpl: typeof fetch, options?: BlypFetchOptions): typeof fetch;
@@ -0,0 +1,2 @@
1
+ export { blypFetch } from './fetch';
2
+ export type { AIToolCallRecord, BlypAIProvider, BlypAISDK, BlypCaptureOptions, BlypExcludeOptions, BlypLimitOptions, BlypLLMEventPart, BlypLLMTrace, BlypProviderOptions, BlypSDKContext, BlypTraceEvent, } from './types';
@@ -0,0 +1,17 @@
1
+ import type { AIToolCallRecord } from './types';
2
+ export type BlypNormalizedUsage = {
3
+ inputTokens?: number;
4
+ outputTokens?: number;
5
+ totalTokens?: number;
6
+ reasoningTokens?: number;
7
+ cachedInputTokens?: number;
8
+ };
9
+ export declare function normalizeTokenUsage(usage?: Partial<BlypNormalizedUsage>): BlypNormalizedUsage | undefined;
10
+ export declare function normalizeFinishReason(value: unknown): string | undefined;
11
+ export declare function safeJsonParse(value: unknown): unknown;
12
+ export declare function toToolEventData(toolCall: AIToolCallRecord): Record<string, unknown>;
13
+ export declare function safeErrorSummary(error: unknown): {
14
+ errorType?: string;
15
+ errorCode?: string | number;
16
+ };
17
+ export declare function toProviderPayload(value: unknown): unknown;
@@ -0,0 +1,6 @@
1
+ export declare function toLoggableValue(value: unknown, seen?: WeakSet<object>): unknown;
2
+ export declare function omitPaths(value: Record<string, unknown>, paths: string[]): Record<string, unknown>;
3
+ export declare function truncateValue(value: unknown, maxBytes: number): {
4
+ value: unknown;
5
+ truncated: boolean;
6
+ };
@@ -0,0 +1,7 @@
1
+ export type AsyncIterableLike<T> = AsyncIterable<T> | AsyncIterator<T>;
2
+ export declare function isAsyncIterable<T = unknown>(value: unknown): value is AsyncIterable<T>;
3
+ export declare function wrapAsyncIterable<T>(iterable: AsyncIterable<T>, options: {
4
+ onChunk?: (chunk: T) => void | Promise<void>;
5
+ onReturn?: () => void | Promise<void>;
6
+ onError?: (error: unknown) => void | Promise<void>;
7
+ }): AsyncIterable<T>;
@@ -0,0 +1,116 @@
1
+ import type { LanguageModelV3CallOptions, LanguageModelV3GenerateResult, LanguageModelV3StreamPart, LanguageModelV3 } from '@ai-sdk/provider';
2
+ import type { BlypLogger } from '../../core/logger';
3
+ import type { AIToolCallRecord, BlypAIProvider, BlypAISDK, BlypProviderOptions, BlypSDKContext, BlypMiddlewareContext, BlypModelOptions, BlypResolvedModelOptions, BlypTraceEvent } from './types';
4
+ type MutableTrace = {
5
+ traceId: string;
6
+ provider: string;
7
+ model: string;
8
+ callType: 'generate' | 'stream';
9
+ logger: BlypLogger;
10
+ params: LanguageModelV3CallOptions;
11
+ options: BlypResolvedModelOptions;
12
+ operation: string;
13
+ metadata: Record<string, unknown>;
14
+ startedAt: string;
15
+ startedAtMs: number;
16
+ firstChunkAtMs?: number;
17
+ finishReason?: string;
18
+ usage?: BlypMiddlewareContext['usage'];
19
+ outputText?: string;
20
+ streamedText?: string;
21
+ reasoningText?: string;
22
+ toolCalls: AIToolCallRecord[];
23
+ toolCallMap: Map<string, AIToolCallRecord>;
24
+ events: BlypTraceEvent[];
25
+ streamChunks: unknown[];
26
+ truncated: boolean;
27
+ error?: unknown;
28
+ capture: Required<BlypResolvedModelOptions['capture']>;
29
+ input?: unknown;
30
+ output?: unknown;
31
+ reasoning?: unknown;
32
+ };
33
+ export declare function resolveBlypModelOptions(options?: BlypModelOptions): BlypResolvedModelOptions;
34
+ type MutableSDKTrace = {
35
+ traceId: string;
36
+ provider: BlypAIProvider;
37
+ sdk: Exclude<BlypAISDK, 'ai-sdk'>;
38
+ operation: string;
39
+ method: string;
40
+ model: string;
41
+ logger: BlypLogger;
42
+ metadata: Record<string, unknown>;
43
+ request: unknown;
44
+ response?: unknown;
45
+ usage?: BlypSDKContext['usage'];
46
+ finishReason?: string;
47
+ input?: unknown;
48
+ output?: unknown;
49
+ toolCalls: AIToolCallRecord[];
50
+ events: BlypTraceEvent[];
51
+ error?: unknown;
52
+ startedAt: string;
53
+ endedAt?: string;
54
+ startedAtMs: number;
55
+ firstChunkAt?: string;
56
+ firstChunkAtMs?: number;
57
+ options: BlypResolvedModelOptions;
58
+ capture: Required<BlypResolvedModelOptions['capture']>;
59
+ streamed: boolean;
60
+ rawProviderPayload?: unknown;
61
+ emitted?: boolean;
62
+ truncated: boolean;
63
+ };
64
+ export declare function resolveBlypProviderOptions(options?: BlypProviderOptions): BlypResolvedModelOptions;
65
+ export declare function createSDKTraceState(options: {
66
+ provider: BlypAIProvider;
67
+ sdk: Exclude<BlypAISDK, 'ai-sdk'>;
68
+ operation?: string;
69
+ method: string;
70
+ model: string;
71
+ request: unknown;
72
+ streamed: boolean;
73
+ config: BlypResolvedModelOptions;
74
+ }): {
75
+ state: MutableSDKTrace;
76
+ context: BlypSDKContext;
77
+ };
78
+ export declare function recordSDKUsage(state: MutableSDKTrace, usage?: Partial<NonNullable<BlypSDKContext['usage']>>): void;
79
+ export declare function recordSDKFinishReason(state: MutableSDKTrace, reason: unknown): void;
80
+ export declare function setSDKResponse(state: MutableSDKTrace, response: unknown): void;
81
+ export declare function setSDKInput(state: MutableSDKTrace, input: unknown): void;
82
+ export declare function setSDKOutput(state: MutableSDKTrace, output: unknown): void;
83
+ export declare function setSDKRawProviderPayload(state: MutableSDKTrace, payload: unknown): void;
84
+ export declare function markSDKFirstChunk(state: MutableSDKTrace, context: BlypSDKContext): Promise<void>;
85
+ export declare function addSDKChunkEvent(state: MutableSDKTrace, context: BlypSDKContext, data: Record<string, unknown>): Promise<void>;
86
+ export declare function upsertSDKToolCall(state: MutableSDKTrace, toolCall: AIToolCallRecord): void;
87
+ export declare function emitSDKToolStart(state: MutableSDKTrace, context: BlypSDKContext, toolCall: AIToolCallRecord): Promise<void>;
88
+ export declare function emitSDKToolResult(state: MutableSDKTrace, context: BlypSDKContext, toolCall: AIToolCallRecord): Promise<void>;
89
+ export declare function finalizeSDKTrace(state: MutableSDKTrace, context: BlypSDKContext, options?: {
90
+ error?: unknown;
91
+ }): Promise<void>;
92
+ export declare function createTraceState(options: {
93
+ model: LanguageModelV3;
94
+ params: LanguageModelV3CallOptions;
95
+ callType: 'generate' | 'stream';
96
+ config: BlypResolvedModelOptions;
97
+ }): {
98
+ state: MutableTrace;
99
+ context: BlypMiddlewareContext;
100
+ };
101
+ export declare function runHookSafely(hook: ((...args: any[]) => void | Promise<void>) | undefined, args: unknown[]): Promise<void>;
102
+ export declare function addTraceEvent(state: MutableTrace, context: BlypMiddlewareContext, event: Omit<BlypTraceEvent, 'timestamp'> & {
103
+ timestamp?: string;
104
+ }): Promise<void>;
105
+ export declare function captureValue(value: unknown, maxContentBytes: number): {
106
+ value: unknown;
107
+ truncated: boolean;
108
+ };
109
+ export declare function sanitizeInput(params: LanguageModelV3CallOptions, state: MutableTrace): unknown;
110
+ export declare function recordGenerateResult(state: MutableTrace, result: LanguageModelV3GenerateResult): void;
111
+ export declare function upsertToolCall(state: MutableTrace, toolCall: AIToolCallRecord): void;
112
+ export declare function consumeStreamPart(state: MutableTrace, context: BlypMiddlewareContext, part: LanguageModelV3StreamPart): Promise<void>;
113
+ export declare function finalizeTrace(state: MutableTrace, context: BlypMiddlewareContext, options?: {
114
+ error?: unknown;
115
+ }): Promise<void>;
116
+ export {};
@@ -0,0 +1,161 @@
1
+ import type { LanguageModelMiddleware } from 'ai';
2
+ import type { LanguageModelV3 } from '@ai-sdk/provider';
3
+ import type { BlypLogger } from '../../core/logger';
4
+ export type BlypAIProvider = 'openai' | 'anthropic' | 'openrouter';
5
+ export type BlypAISDK = 'ai-sdk' | 'openai-sdk' | 'anthropic-sdk';
6
+ export type BlypTraceEvent = {
7
+ type: 'ai.start' | 'ai.first_chunk' | 'ai.chunk' | 'ai.tool_call.start' | 'ai.tool_call.result' | 'ai.finish' | 'ai.error';
8
+ timestamp: string;
9
+ data?: Record<string, unknown>;
10
+ };
11
+ export type AIToolCallRecord = {
12
+ id?: string;
13
+ name: string;
14
+ input?: unknown;
15
+ output?: unknown;
16
+ providerFormat?: unknown;
17
+ startedAt?: string;
18
+ finishedAt?: string;
19
+ durationMs?: number;
20
+ status: 'started' | 'completed' | 'failed';
21
+ error?: unknown;
22
+ };
23
+ export type BlypCaptureOptions = {
24
+ input?: boolean;
25
+ output?: boolean;
26
+ toolInputs?: boolean;
27
+ toolOutputs?: boolean;
28
+ reasoning?: boolean;
29
+ streamEvents?: boolean;
30
+ streamChunks?: boolean;
31
+ rawProviderPayload?: boolean;
32
+ };
33
+ export type BlypExcludeOptions = {
34
+ providerOptions?: boolean;
35
+ requestPaths?: string[];
36
+ responsePaths?: string[];
37
+ metadataPaths?: string[];
38
+ toolNames?: string[];
39
+ };
40
+ export type BlypLimitOptions = {
41
+ maxContentBytes?: number;
42
+ maxEvents?: number;
43
+ maxToolCalls?: number;
44
+ };
45
+ export type BlypMiddlewareContext = {
46
+ traceId: string;
47
+ operation: string;
48
+ provider: string;
49
+ model: string;
50
+ callType: 'generate' | 'stream';
51
+ logger: BlypLogger;
52
+ params: unknown;
53
+ metadata: Record<string, unknown>;
54
+ startedAt: string;
55
+ usage?: {
56
+ inputTokens?: number;
57
+ outputTokens?: number;
58
+ totalTokens?: number;
59
+ reasoningTokens?: number;
60
+ cachedInputTokens?: number;
61
+ };
62
+ finishReason?: string;
63
+ streamedText?: string;
64
+ outputText?: string;
65
+ toolCalls?: AIToolCallRecord[];
66
+ error?: unknown;
67
+ setMetadata(extra: Record<string, unknown>): void;
68
+ disableCapture(field: 'input' | 'output' | 'toolInputs' | 'toolOutputs' | 'reasoning'): void;
69
+ };
70
+ export type BlypProviderOptions = {
71
+ logger?: BlypLogger;
72
+ provider?: BlypAIProvider;
73
+ operation?: string;
74
+ metadata?: Record<string, unknown>;
75
+ capture?: BlypCaptureOptions;
76
+ exclude?: BlypExcludeOptions;
77
+ limits?: BlypLimitOptions;
78
+ hooks?: {
79
+ onStart?: (context: BlypSDKContext) => void | Promise<void>;
80
+ onFinish?: (context: BlypSDKContext) => void | Promise<void>;
81
+ onError?: (context: BlypSDKContext) => void | Promise<void>;
82
+ onEvent?: (event: BlypLLMEventPart, context: BlypSDKContext) => void | Promise<void>;
83
+ };
84
+ };
85
+ export type BlypSDKContext = {
86
+ traceId: string;
87
+ provider: BlypAIProvider;
88
+ sdk: Exclude<BlypAISDK, 'ai-sdk'>;
89
+ operation: string;
90
+ method: string;
91
+ logger: BlypLogger;
92
+ metadata: Record<string, unknown>;
93
+ request: unknown;
94
+ response?: unknown;
95
+ usage?: {
96
+ inputTokens?: number;
97
+ outputTokens?: number;
98
+ totalTokens?: number;
99
+ reasoningTokens?: number;
100
+ cachedInputTokens?: number;
101
+ };
102
+ finishReason?: string;
103
+ input?: unknown;
104
+ output?: unknown;
105
+ toolCalls?: AIToolCallRecord[];
106
+ startedAt: string;
107
+ firstChunkAt?: string;
108
+ endedAt?: string;
109
+ error?: unknown;
110
+ setMetadata(extra: Record<string, unknown>): void;
111
+ disableCapture(field: 'input' | 'output' | 'toolInputs' | 'toolOutputs' | 'reasoning' | 'rawProviderPayload'): void;
112
+ };
113
+ export type BlypLLMTrace = {
114
+ provider: BlypAIProvider;
115
+ sdk: Exclude<BlypAISDK, 'ai-sdk'>;
116
+ model: string;
117
+ operation: string;
118
+ method: string;
119
+ streamed: boolean;
120
+ usage?: {
121
+ inputTokens?: number;
122
+ outputTokens?: number;
123
+ totalTokens?: number;
124
+ reasoningTokens?: number;
125
+ cachedInputTokens?: number;
126
+ };
127
+ finishReason?: string;
128
+ tools?: Array<{
129
+ id?: string;
130
+ name: string;
131
+ input?: unknown;
132
+ output?: unknown;
133
+ providerFormat?: unknown;
134
+ status: 'started' | 'completed' | 'failed';
135
+ }>;
136
+ input?: unknown;
137
+ output?: unknown;
138
+ timing: {
139
+ startedAt: string;
140
+ firstChunkAt?: string;
141
+ endedAt: string;
142
+ durationMs: number;
143
+ msToFirstChunk?: number;
144
+ };
145
+ metadata?: Record<string, unknown>;
146
+ rawProviderPayload?: unknown;
147
+ };
148
+ export type BlypLLMEventPart = BlypTraceEvent;
149
+ export type BlypModelOptions = BlypProviderOptions;
150
+ export type BlypResolvedModelOptions = {
151
+ logger?: BlypLogger;
152
+ provider?: BlypAIProvider;
153
+ operation?: string;
154
+ metadata: Record<string, unknown>;
155
+ capture: Required<BlypCaptureOptions>;
156
+ exclude: Required<BlypExcludeOptions>;
157
+ limits: Required<BlypLimitOptions>;
158
+ hooks: NonNullable<BlypModelOptions['hooks']>;
159
+ };
160
+ export type BlypLanguageModel = LanguageModelV3;
161
+ export type BlypLanguageModelMiddleware = LanguageModelMiddleware;