@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.
- package/README.md +217 -11
- package/STABILITY.md +56 -0
- package/dist/ai/anthropic/index.d.ts +3 -0
- package/dist/ai/anthropic/normalize.d.ts +9 -0
- package/dist/ai/anthropic/stream.d.ts +3 -0
- package/dist/ai/anthropic/wrap.d.ts +13 -0
- package/dist/ai/anthropic.js +701 -0
- package/dist/ai/anthropic.mjs +701 -0
- package/dist/ai/fetch.js +701 -0
- package/dist/ai/fetch.mjs +701 -0
- package/dist/ai/openai/index.d.ts +3 -0
- package/dist/ai/openai/normalize.d.ts +10 -0
- package/dist/ai/openai/stream.d.ts +3 -0
- package/dist/ai/openai/wrap.d.ts +24 -0
- package/dist/ai/openai.js +701 -0
- package/dist/ai/openai.mjs +701 -0
- package/dist/ai/shared/fetch.d.ts +5 -0
- package/dist/ai/shared/index.d.ts +2 -0
- package/dist/ai/shared/normalize.d.ts +17 -0
- package/dist/ai/shared/redaction.d.ts +6 -0
- package/dist/ai/shared/stream.d.ts +7 -0
- package/dist/ai/shared/trace.d.ts +116 -0
- package/dist/ai/shared/types.d.ts +161 -0
- package/dist/ai/shared.js +701 -0
- package/dist/ai/shared.mjs +701 -0
- package/dist/ai/vercel/index.d.ts +3 -0
- package/dist/ai/vercel/middleware.d.ts +3 -0
- package/dist/ai/vercel/model.d.ts +3 -0
- package/dist/ai/vercel.js +701 -0
- package/dist/ai/vercel.mjs +701 -0
- package/dist/astro.js +618 -4519
- package/dist/astro.mjs +618 -4491
- package/dist/client.js +1 -1139
- package/dist/client.mjs +1 -1132
- package/dist/connectors/betterstack.js +9 -1532
- package/dist/connectors/betterstack.mjs +9 -1507
- package/dist/connectors/databuddy.js +9 -1456
- package/dist/connectors/databuddy.mjs +9 -1451
- package/dist/connectors/delivery/backoff.d.ts +2 -0
- package/dist/connectors/delivery/manager.d.ts +44 -0
- package/dist/connectors/delivery/queue-path.d.ts +1 -0
- package/dist/connectors/delivery/sqlite-adapter-bun.d.ts +1 -0
- package/dist/connectors/delivery/sqlite-adapter-node.d.ts +1 -0
- package/dist/connectors/delivery/sqlite-client.d.ts +37 -0
- package/dist/connectors/delivery/sqlite-worker.d.ts +1 -0
- package/dist/connectors/delivery/studio-queue.d.ts +12 -0
- package/dist/connectors/delivery/types.d.ts +98 -0
- package/dist/connectors/otlp/index.d.ts +1 -0
- package/dist/connectors/otlp.js +9 -1371
- package/dist/connectors/otlp.mjs +9 -1368
- package/dist/connectors/posthog/properties.d.ts +4 -0
- package/dist/connectors/posthog/sender.d.ts +0 -1
- package/dist/connectors/posthog.js +10 -1527
- package/dist/connectors/posthog.mjs +10 -1522
- package/dist/connectors/sentry.js +9 -1380
- package/dist/connectors/sentry.mjs +9 -1357
- package/dist/core/config.d.ts +7 -2
- package/dist/core/log-record.d.ts +5 -4
- package/dist/core/logger.d.ts +2 -0
- package/dist/core/optional-module.d.ts +1 -0
- package/dist/core/pino-pretty-loader.d.ts +4 -0
- package/dist/database.js +1 -24
- package/dist/database.mjs +1 -21
- package/dist/elysia.js +613 -4517
- package/dist/elysia.mjs +615 -4491
- package/dist/expo.js +1 -726
- package/dist/expo.mjs +1 -724
- package/dist/express.js +613 -4507
- package/dist/express.mjs +615 -4480
- package/dist/fastify.js +615 -4526
- package/dist/fastify.mjs +617 -4499
- package/dist/frameworks/elysia/index.d.ts +1 -1
- package/dist/frameworks/elysia/logger.d.ts +2 -35
- package/dist/frameworks/nestjs/helpers.d.ts +2 -0
- package/dist/frameworks/shared/http.d.ts +3 -2
- package/dist/frameworks/shared/index.d.ts +2 -1
- package/dist/frameworks/shared/logger.d.ts +2 -0
- package/dist/frameworks/shared/request-context.d.ts +2 -0
- package/dist/frameworks/shared/trace.d.ts +6 -0
- package/dist/hono.js +616 -4496
- package/dist/hono.mjs +618 -4470
- package/dist/index.d.ts +49 -19
- package/dist/index.js +615 -7557
- package/dist/index.mjs +618 -7465
- package/dist/nestjs.js +626 -4999
- package/dist/nestjs.mjs +621 -4966
- package/dist/nextjs.js +618 -4525
- package/dist/nextjs.mjs +620 -4499
- package/dist/nitro.js +617 -4642
- package/dist/nitro.mjs +619 -4616
- package/dist/nuxt.js +617 -4649
- package/dist/nuxt.mjs +619 -4623
- package/dist/react-router.js +616 -4559
- package/dist/react-router.mjs +618 -4533
- package/dist/shared/redaction.d.ts +17 -0
- package/dist/standalone.js +606 -3628
- package/dist/standalone.mjs +610 -3603
- package/dist/sveltekit.js +617 -4523
- package/dist/sveltekit.mjs +619 -4497
- package/dist/tanstack-start.js +616 -4522
- package/dist/tanstack-start.mjs +618 -4496
- package/dist/types/core/config.d.ts +57 -0
- package/dist/types/core/logger.d.ts +3 -0
- package/dist/types/core/structured-log.d.ts +2 -0
- package/dist/types/database.d.ts +1 -0
- package/dist/types/frameworks/astro.d.ts +1 -0
- package/dist/types/frameworks/client.d.ts +2 -0
- package/dist/types/frameworks/elysia.d.ts +2 -0
- package/dist/types/frameworks/express.d.ts +1 -0
- package/dist/types/frameworks/fastify.d.ts +1 -0
- package/dist/types/frameworks/hono.d.ts +1 -0
- package/dist/types/frameworks/http.d.ts +1 -0
- package/dist/types/frameworks/nestjs.d.ts +2 -0
- package/dist/types/frameworks/nextjs.d.ts +1 -0
- package/dist/types/frameworks/nitro.d.ts +1 -0
- package/dist/types/frameworks/react-router.d.ts +2 -0
- package/dist/types/frameworks/request-context.d.ts +1 -0
- package/dist/types/frameworks/shared.d.ts +4 -1
- package/dist/types/frameworks/standalone.d.ts +3 -2
- package/dist/types/frameworks/sveltekit.d.ts +1 -0
- package/dist/types/frameworks/tanstack-start.d.ts +9 -3
- package/dist/types/frameworks/workers.d.ts +3 -0
- package/dist/types/shared/client-log.d.ts +1 -0
- package/dist/workers.js +2 -626
- package/dist/workers.mjs +2 -623
- package/package.json +246 -173
- package/dist/astro.js.map +0 -1
- package/dist/astro.mjs.map +0 -1
- package/dist/client.js.map +0 -1
- package/dist/client.mjs.map +0 -1
- package/dist/connectors/betterstack.js.map +0 -1
- package/dist/connectors/betterstack.mjs.map +0 -1
- package/dist/connectors/databuddy.js.map +0 -1
- package/dist/connectors/databuddy.mjs.map +0 -1
- package/dist/connectors/otlp.js.map +0 -1
- package/dist/connectors/otlp.mjs.map +0 -1
- package/dist/connectors/posthog.js.map +0 -1
- package/dist/connectors/posthog.mjs.map +0 -1
- package/dist/connectors/sentry.js.map +0 -1
- package/dist/connectors/sentry.mjs.map +0 -1
- package/dist/database.js.map +0 -1
- package/dist/database.mjs.map +0 -1
- package/dist/elysia.js.map +0 -1
- package/dist/elysia.mjs.map +0 -1
- package/dist/expo.js.map +0 -1
- package/dist/expo.mjs.map +0 -1
- package/dist/express.js.map +0 -1
- package/dist/express.mjs.map +0 -1
- package/dist/fastify.js.map +0 -1
- package/dist/fastify.mjs.map +0 -1
- package/dist/hono.js.map +0 -1
- package/dist/hono.mjs.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/dist/nestjs.js.map +0 -1
- package/dist/nestjs.mjs.map +0 -1
- package/dist/nextjs.js.map +0 -1
- package/dist/nextjs.mjs.map +0 -1
- package/dist/nitro.js.map +0 -1
- package/dist/nitro.mjs.map +0 -1
- package/dist/nuxt.js.map +0 -1
- package/dist/nuxt.mjs.map +0 -1
- package/dist/react-router.js.map +0 -1
- package/dist/react-router.mjs.map +0 -1
- package/dist/standalone.js.map +0 -1
- package/dist/standalone.mjs.map +0 -1
- package/dist/sveltekit.js.map +0 -1
- package/dist/sveltekit.mjs.map +0 -1
- package/dist/tanstack-start.js.map +0 -1
- package/dist/tanstack-start.mjs.map +0 -1
- package/dist/workers.js.map +0 -1
- package/dist/workers.mjs.map +0 -1
- package/exports/client.js +0 -3
- package/exports/client.mjs +0 -3
- package/exports/connectors/betterstack.js +0 -1
- package/exports/connectors/betterstack.mjs +0 -1
- package/exports/connectors/databuddy.js +0 -1
- package/exports/connectors/databuddy.mjs +0 -1
- package/exports/connectors/otlp.js +0 -1
- package/exports/connectors/otlp.mjs +0 -1
- package/exports/connectors/posthog.js +0 -1
- package/exports/connectors/posthog.mjs +0 -1
- package/exports/connectors/sentry.js +0 -1
- package/exports/connectors/sentry.mjs +0 -1
- package/exports/database.js +0 -1
- package/exports/database.mjs +0 -1
- package/exports/expo.js +0 -1
- package/exports/expo.mjs +0 -1
- package/exports/frameworks/astro.js +0 -1
- package/exports/frameworks/astro.mjs +0 -1
- package/exports/frameworks/elysia.js +0 -1
- package/exports/frameworks/elysia.mjs +0 -1
- package/exports/frameworks/express.js +0 -1
- package/exports/frameworks/express.mjs +0 -1
- package/exports/frameworks/fastify.js +0 -1
- package/exports/frameworks/fastify.mjs +0 -1
- package/exports/frameworks/hono.js +0 -1
- package/exports/frameworks/hono.mjs +0 -1
- package/exports/frameworks/nestjs.js +0 -1
- package/exports/frameworks/nestjs.mjs +0 -1
- package/exports/frameworks/nextjs.js +0 -1
- package/exports/frameworks/nextjs.mjs +0 -1
- package/exports/frameworks/nitro.js +0 -1
- package/exports/frameworks/nitro.mjs +0 -1
- package/exports/frameworks/nuxt.js +0 -1
- package/exports/frameworks/nuxt.mjs +0 -1
- package/exports/frameworks/react-router.js +0 -1
- package/exports/frameworks/react-router.mjs +0 -1
- package/exports/frameworks/standalone.js +0 -1
- package/exports/frameworks/standalone.mjs +0 -1
- package/exports/frameworks/sveltekit.js +0 -1
- package/exports/frameworks/sveltekit.mjs +0 -1
- package/exports/frameworks/tanstack-start.js +0 -1
- package/exports/frameworks/tanstack-start.mjs +0 -1
- package/exports/workers.js +0 -1
- package/exports/workers.mjs +0 -1
- package/types/client.d.ts +0 -34
- package/types/connectors/betterstack.d.ts +0 -1
- package/types/connectors/databuddy.d.ts +0 -1
- package/types/connectors/otlp.d.ts +0 -1
- package/types/connectors/posthog.d.ts +0 -1
- package/types/connectors/sentry.d.ts +0 -1
- package/types/database.d.ts +0 -1
- package/types/expo.d.ts +0 -17
- package/types/frameworks/astro.d.ts +0 -1
- package/types/frameworks/client.d.ts +0 -160
- package/types/frameworks/elysia.d.ts +0 -1
- package/types/frameworks/expo.d.ts +0 -50
- package/types/frameworks/express.d.ts +0 -1
- package/types/frameworks/fastify.d.ts +0 -1
- package/types/frameworks/hono.d.ts +0 -1
- package/types/frameworks/nestjs.d.ts +0 -1
- package/types/frameworks/nextjs.d.ts +0 -1
- package/types/frameworks/nitro.d.ts +0 -1
- package/types/frameworks/nuxt.d.ts +0 -1
- package/types/frameworks/react-router.d.ts +0 -1
- package/types/frameworks/standalone.d.ts +0 -1
- package/types/frameworks/sveltekit.d.ts +0 -1
- package/types/frameworks/tanstack-start.d.ts +0 -1
- package/types/frameworks/workers.d.ts +0 -115
- package/types/index.d.ts +0 -1
- 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,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;
|