@blyp/core 0.1.21 → 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 (242) hide show
  1. package/README.md +217 -11
  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 +618 -4519
  32. package/dist/astro.mjs +618 -4491
  33. package/dist/client.js +1 -1139
  34. package/dist/client.mjs +1 -1132
  35. package/dist/connectors/betterstack.js +9 -1532
  36. package/dist/connectors/betterstack.mjs +9 -1507
  37. package/dist/connectors/databuddy.js +9 -1456
  38. package/dist/connectors/databuddy.mjs +9 -1451
  39. package/dist/connectors/delivery/backoff.d.ts +2 -0
  40. package/dist/connectors/delivery/manager.d.ts +44 -0
  41. package/dist/connectors/delivery/queue-path.d.ts +1 -0
  42. package/dist/connectors/delivery/sqlite-adapter-bun.d.ts +1 -0
  43. package/dist/connectors/delivery/sqlite-adapter-node.d.ts +1 -0
  44. package/dist/connectors/delivery/sqlite-client.d.ts +37 -0
  45. package/dist/connectors/delivery/sqlite-worker.d.ts +1 -0
  46. package/dist/connectors/delivery/studio-queue.d.ts +12 -0
  47. package/dist/connectors/delivery/types.d.ts +98 -0
  48. package/dist/connectors/otlp/index.d.ts +1 -0
  49. package/dist/connectors/otlp.js +9 -1371
  50. package/dist/connectors/otlp.mjs +9 -1368
  51. package/dist/connectors/posthog/properties.d.ts +4 -0
  52. package/dist/connectors/posthog/sender.d.ts +0 -1
  53. package/dist/connectors/posthog.js +10 -1527
  54. package/dist/connectors/posthog.mjs +10 -1522
  55. package/dist/connectors/sentry.js +9 -1380
  56. package/dist/connectors/sentry.mjs +9 -1357
  57. package/dist/core/config.d.ts +7 -2
  58. package/dist/core/log-record.d.ts +5 -4
  59. package/dist/core/logger.d.ts +2 -0
  60. package/dist/core/optional-module.d.ts +1 -0
  61. package/dist/core/pino-pretty-loader.d.ts +4 -0
  62. package/dist/database.js +1 -24
  63. package/dist/database.mjs +1 -21
  64. package/dist/elysia.js +613 -4517
  65. package/dist/elysia.mjs +615 -4491
  66. package/dist/expo.js +1 -726
  67. package/dist/expo.mjs +1 -724
  68. package/dist/express.js +613 -4507
  69. package/dist/express.mjs +615 -4480
  70. package/dist/fastify.js +615 -4526
  71. package/dist/fastify.mjs +617 -4499
  72. package/dist/frameworks/elysia/index.d.ts +1 -1
  73. package/dist/frameworks/elysia/logger.d.ts +2 -35
  74. package/dist/frameworks/nestjs/helpers.d.ts +2 -0
  75. package/dist/frameworks/shared/http.d.ts +3 -2
  76. package/dist/frameworks/shared/index.d.ts +2 -1
  77. package/dist/frameworks/shared/logger.d.ts +2 -0
  78. package/dist/frameworks/shared/request-context.d.ts +2 -0
  79. package/dist/frameworks/shared/trace.d.ts +6 -0
  80. package/dist/hono.js +616 -4496
  81. package/dist/hono.mjs +618 -4470
  82. package/dist/index.d.ts +49 -19
  83. package/dist/index.js +615 -7557
  84. package/dist/index.mjs +618 -7465
  85. package/dist/nestjs.js +626 -4999
  86. package/dist/nestjs.mjs +621 -4966
  87. package/dist/nextjs.js +618 -4525
  88. package/dist/nextjs.mjs +620 -4499
  89. package/dist/nitro.js +617 -4642
  90. package/dist/nitro.mjs +619 -4616
  91. package/dist/nuxt.js +617 -4649
  92. package/dist/nuxt.mjs +619 -4623
  93. package/dist/react-router.js +616 -4559
  94. package/dist/react-router.mjs +618 -4533
  95. package/dist/shared/redaction.d.ts +17 -0
  96. package/dist/standalone.js +606 -3628
  97. package/dist/standalone.mjs +610 -3603
  98. package/dist/sveltekit.js +617 -4523
  99. package/dist/sveltekit.mjs +619 -4497
  100. package/dist/tanstack-start.js +616 -4522
  101. package/dist/tanstack-start.mjs +618 -4496
  102. package/dist/types/core/config.d.ts +57 -0
  103. package/dist/types/core/logger.d.ts +3 -0
  104. package/dist/types/core/structured-log.d.ts +2 -0
  105. package/dist/types/database.d.ts +1 -0
  106. package/dist/types/frameworks/astro.d.ts +1 -0
  107. package/dist/types/frameworks/client.d.ts +2 -0
  108. package/dist/types/frameworks/elysia.d.ts +2 -0
  109. package/dist/types/frameworks/express.d.ts +1 -0
  110. package/dist/types/frameworks/fastify.d.ts +1 -0
  111. package/dist/types/frameworks/hono.d.ts +1 -0
  112. package/dist/types/frameworks/http.d.ts +1 -0
  113. package/dist/types/frameworks/nestjs.d.ts +2 -0
  114. package/dist/types/frameworks/nextjs.d.ts +1 -0
  115. package/dist/types/frameworks/nitro.d.ts +1 -0
  116. package/dist/types/frameworks/react-router.d.ts +2 -0
  117. package/dist/types/frameworks/request-context.d.ts +1 -0
  118. package/dist/types/frameworks/shared.d.ts +4 -1
  119. package/dist/types/frameworks/standalone.d.ts +3 -2
  120. package/dist/types/frameworks/sveltekit.d.ts +1 -0
  121. package/dist/types/frameworks/tanstack-start.d.ts +9 -3
  122. package/dist/types/frameworks/workers.d.ts +3 -0
  123. package/dist/types/shared/client-log.d.ts +1 -0
  124. package/dist/workers.js +2 -626
  125. package/dist/workers.mjs +2 -623
  126. package/package.json +246 -173
  127. package/dist/astro.js.map +0 -1
  128. package/dist/astro.mjs.map +0 -1
  129. package/dist/client.js.map +0 -1
  130. package/dist/client.mjs.map +0 -1
  131. package/dist/connectors/betterstack.js.map +0 -1
  132. package/dist/connectors/betterstack.mjs.map +0 -1
  133. package/dist/connectors/databuddy.js.map +0 -1
  134. package/dist/connectors/databuddy.mjs.map +0 -1
  135. package/dist/connectors/otlp.js.map +0 -1
  136. package/dist/connectors/otlp.mjs.map +0 -1
  137. package/dist/connectors/posthog.js.map +0 -1
  138. package/dist/connectors/posthog.mjs.map +0 -1
  139. package/dist/connectors/sentry.js.map +0 -1
  140. package/dist/connectors/sentry.mjs.map +0 -1
  141. package/dist/database.js.map +0 -1
  142. package/dist/database.mjs.map +0 -1
  143. package/dist/elysia.js.map +0 -1
  144. package/dist/elysia.mjs.map +0 -1
  145. package/dist/expo.js.map +0 -1
  146. package/dist/expo.mjs.map +0 -1
  147. package/dist/express.js.map +0 -1
  148. package/dist/express.mjs.map +0 -1
  149. package/dist/fastify.js.map +0 -1
  150. package/dist/fastify.mjs.map +0 -1
  151. package/dist/hono.js.map +0 -1
  152. package/dist/hono.mjs.map +0 -1
  153. package/dist/index.js.map +0 -1
  154. package/dist/index.mjs.map +0 -1
  155. package/dist/nestjs.js.map +0 -1
  156. package/dist/nestjs.mjs.map +0 -1
  157. package/dist/nextjs.js.map +0 -1
  158. package/dist/nextjs.mjs.map +0 -1
  159. package/dist/nitro.js.map +0 -1
  160. package/dist/nitro.mjs.map +0 -1
  161. package/dist/nuxt.js.map +0 -1
  162. package/dist/nuxt.mjs.map +0 -1
  163. package/dist/react-router.js.map +0 -1
  164. package/dist/react-router.mjs.map +0 -1
  165. package/dist/standalone.js.map +0 -1
  166. package/dist/standalone.mjs.map +0 -1
  167. package/dist/sveltekit.js.map +0 -1
  168. package/dist/sveltekit.mjs.map +0 -1
  169. package/dist/tanstack-start.js.map +0 -1
  170. package/dist/tanstack-start.mjs.map +0 -1
  171. package/dist/workers.js.map +0 -1
  172. package/dist/workers.mjs.map +0 -1
  173. package/exports/client.js +0 -3
  174. package/exports/client.mjs +0 -3
  175. package/exports/connectors/betterstack.js +0 -1
  176. package/exports/connectors/betterstack.mjs +0 -1
  177. package/exports/connectors/databuddy.js +0 -1
  178. package/exports/connectors/databuddy.mjs +0 -1
  179. package/exports/connectors/otlp.js +0 -1
  180. package/exports/connectors/otlp.mjs +0 -1
  181. package/exports/connectors/posthog.js +0 -1
  182. package/exports/connectors/posthog.mjs +0 -1
  183. package/exports/connectors/sentry.js +0 -1
  184. package/exports/connectors/sentry.mjs +0 -1
  185. package/exports/database.js +0 -1
  186. package/exports/database.mjs +0 -1
  187. package/exports/expo.js +0 -1
  188. package/exports/expo.mjs +0 -1
  189. package/exports/frameworks/astro.js +0 -1
  190. package/exports/frameworks/astro.mjs +0 -1
  191. package/exports/frameworks/elysia.js +0 -1
  192. package/exports/frameworks/elysia.mjs +0 -1
  193. package/exports/frameworks/express.js +0 -1
  194. package/exports/frameworks/express.mjs +0 -1
  195. package/exports/frameworks/fastify.js +0 -1
  196. package/exports/frameworks/fastify.mjs +0 -1
  197. package/exports/frameworks/hono.js +0 -1
  198. package/exports/frameworks/hono.mjs +0 -1
  199. package/exports/frameworks/nestjs.js +0 -1
  200. package/exports/frameworks/nestjs.mjs +0 -1
  201. package/exports/frameworks/nextjs.js +0 -1
  202. package/exports/frameworks/nextjs.mjs +0 -1
  203. package/exports/frameworks/nitro.js +0 -1
  204. package/exports/frameworks/nitro.mjs +0 -1
  205. package/exports/frameworks/nuxt.js +0 -1
  206. package/exports/frameworks/nuxt.mjs +0 -1
  207. package/exports/frameworks/react-router.js +0 -1
  208. package/exports/frameworks/react-router.mjs +0 -1
  209. package/exports/frameworks/standalone.js +0 -1
  210. package/exports/frameworks/standalone.mjs +0 -1
  211. package/exports/frameworks/sveltekit.js +0 -1
  212. package/exports/frameworks/sveltekit.mjs +0 -1
  213. package/exports/frameworks/tanstack-start.js +0 -1
  214. package/exports/frameworks/tanstack-start.mjs +0 -1
  215. package/exports/workers.js +0 -1
  216. package/exports/workers.mjs +0 -1
  217. package/types/client.d.ts +0 -34
  218. package/types/connectors/betterstack.d.ts +0 -1
  219. package/types/connectors/databuddy.d.ts +0 -1
  220. package/types/connectors/otlp.d.ts +0 -1
  221. package/types/connectors/posthog.d.ts +0 -1
  222. package/types/connectors/sentry.d.ts +0 -1
  223. package/types/database.d.ts +0 -1
  224. package/types/expo.d.ts +0 -17
  225. package/types/frameworks/astro.d.ts +0 -1
  226. package/types/frameworks/client.d.ts +0 -160
  227. package/types/frameworks/elysia.d.ts +0 -1
  228. package/types/frameworks/expo.d.ts +0 -50
  229. package/types/frameworks/express.d.ts +0 -1
  230. package/types/frameworks/fastify.d.ts +0 -1
  231. package/types/frameworks/hono.d.ts +0 -1
  232. package/types/frameworks/nestjs.d.ts +0 -1
  233. package/types/frameworks/nextjs.d.ts +0 -1
  234. package/types/frameworks/nitro.d.ts +0 -1
  235. package/types/frameworks/nuxt.d.ts +0 -1
  236. package/types/frameworks/react-router.d.ts +0 -1
  237. package/types/frameworks/standalone.d.ts +0 -1
  238. package/types/frameworks/sveltekit.d.ts +0 -1
  239. package/types/frameworks/tanstack-start.d.ts +0 -1
  240. package/types/frameworks/workers.d.ts +0 -115
  241. package/types/index.d.ts +0 -1
  242. 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;