@marinoscar/platform-api 0.1.0-next.5 → 0.1.0-next.6
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/CHANGELOG.md +12 -0
- package/dist/ai/core/ai-error.d.ts +15 -158
- package/dist/ai/core/ai-error.d.ts.map +1 -1
- package/dist/ai/core/ai-error.js +58 -221
- package/dist/ai/core/ai-error.js.map +1 -1
- package/dist/ai/core/capabilities.d.ts +3 -126
- package/dist/ai/core/capabilities.d.ts.map +1 -1
- package/dist/ai/core/capabilities.js +13 -109
- package/dist/ai/core/capabilities.js.map +1 -1
- package/dist/ai/core/conversation.d.ts +2 -15
- package/dist/ai/core/conversation.d.ts.map +1 -1
- package/dist/ai/core/conversation.js +9 -54
- package/dist/ai/core/conversation.js.map +1 -1
- package/dist/ai/core/hosted-tools.d.ts +3 -172
- package/dist/ai/core/hosted-tools.d.ts.map +1 -1
- package/dist/ai/core/hosted-tools.js +20 -286
- package/dist/ai/core/hosted-tools.js.map +1 -1
- package/dist/ai/core/provider-adapter.interface.d.ts +3 -260
- package/dist/ai/core/provider-adapter.interface.d.ts.map +1 -1
- package/dist/ai/core/provider-adapter.interface.js +7 -29
- package/dist/ai/core/provider-adapter.interface.js.map +1 -1
- package/dist/ai/core/structured-output.d.ts +3 -49
- package/dist/ai/core/structured-output.d.ts.map +1 -1
- package/dist/ai/core/structured-output.js +9 -80
- package/dist/ai/core/structured-output.js.map +1 -1
- package/dist/ai/core/tools.d.ts +3 -93
- package/dist/ai/core/tools.d.ts.map +1 -1
- package/dist/ai/core/tools.js +9 -73
- package/dist/ai/core/tools.js.map +1 -1
- package/dist/ai/core/types/file-inputs.types.d.ts +3 -102
- package/dist/ai/core/types/file-inputs.types.d.ts.map +1 -1
- package/dist/ai/core/types/file-inputs.types.js +14 -78
- package/dist/ai/core/types/file-inputs.types.js.map +1 -1
- package/dist/ai/core/types/media.types.d.ts +3 -616
- package/dist/ai/core/types/media.types.d.ts.map +1 -1
- package/dist/ai/core/types/media.types.js +33 -203
- package/dist/ai/core/types/media.types.js.map +1 -1
- package/dist/ai/core/types/responses.types.d.ts +3 -619
- package/dist/ai/core/types/responses.types.d.ts.map +1 -1
- package/dist/ai/core/types/responses.types.js +9 -57
- package/dist/ai/core/types/responses.types.js.map +1 -1
- package/dist/ai/http/dto/ai-images.dto.d.ts +4 -4
- package/dist/ai/index.d.ts +1 -1
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +3 -3
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/providers/anthropic/anthropic-client.factory.d.ts +13 -15
- package/dist/ai/providers/anthropic/anthropic-client.factory.d.ts.map +1 -1
- package/dist/ai/providers/anthropic/anthropic-client.factory.js +23 -52
- package/dist/ai/providers/anthropic/anthropic-client.factory.js.map +1 -1
- package/dist/ai/providers/anthropic/anthropic.adapter.d.ts +15 -51
- package/dist/ai/providers/anthropic/anthropic.adapter.d.ts.map +1 -1
- package/dist/ai/providers/anthropic/anthropic.adapter.js +29 -293
- package/dist/ai/providers/anthropic/anthropic.adapter.js.map +1 -1
- package/dist/ai/providers/azure-openai/azure-openai-client.factory.d.ts +10 -14
- package/dist/ai/providers/azure-openai/azure-openai-client.factory.d.ts.map +1 -1
- package/dist/ai/providers/azure-openai/azure-openai-client.factory.js +20 -53
- package/dist/ai/providers/azure-openai/azure-openai-client.factory.js.map +1 -1
- package/dist/ai/providers/azure-openai/azure-openai.adapter.d.ts +14 -31
- package/dist/ai/providers/azure-openai/azure-openai.adapter.d.ts.map +1 -1
- package/dist/ai/providers/azure-openai/azure-openai.adapter.js +25 -170
- package/dist/ai/providers/azure-openai/azure-openai.adapter.js.map +1 -1
- package/dist/ai/providers/gemini/gemini-client.factory.d.ts +13 -18
- package/dist/ai/providers/gemini/gemini-client.factory.d.ts.map +1 -1
- package/dist/ai/providers/gemini/gemini-client.factory.js +24 -68
- package/dist/ai/providers/gemini/gemini-client.factory.js.map +1 -1
- package/dist/ai/providers/gemini/gemini.adapter.d.ts +15 -58
- package/dist/ai/providers/gemini/gemini.adapter.d.ts.map +1 -1
- package/dist/ai/providers/gemini/gemini.adapter.js +29 -348
- package/dist/ai/providers/gemini/gemini.adapter.js.map +1 -1
- package/dist/ai/providers/openai/openai-client.factory.d.ts +13 -35
- package/dist/ai/providers/openai/openai-client.factory.d.ts.map +1 -1
- package/dist/ai/providers/openai/openai-client.factory.js +25 -64
- package/dist/ai/providers/openai/openai-client.factory.js.map +1 -1
- package/dist/ai/providers/openai/openai.adapter.d.ts +15 -48
- package/dist/ai/providers/openai/openai.adapter.d.ts.map +1 -1
- package/dist/ai/providers/openai/openai.adapter.js +27 -206
- package/dist/ai/providers/openai/openai.adapter.js.map +1 -1
- package/dist/ai/providers/openai-compatible/openai-compatible-client.factory.d.ts +11 -11
- package/dist/ai/providers/openai-compatible/openai-compatible-client.factory.d.ts.map +1 -1
- package/dist/ai/providers/openai-compatible/openai-compatible-client.factory.js +18 -41
- package/dist/ai/providers/openai-compatible/openai-compatible-client.factory.js.map +1 -1
- package/dist/ai/providers/openai-compatible/openai-compatible.adapter.d.ts +14 -32
- package/dist/ai/providers/openai-compatible/openai-compatible.adapter.d.ts.map +1 -1
- package/dist/ai/providers/openai-compatible/openai-compatible.adapter.js +25 -149
- package/dist/ai/providers/openai-compatible/openai-compatible.adapter.js.map +1 -1
- package/dist/ai/providers/platform-ai-tracer.d.ts +4 -0
- package/dist/ai/providers/platform-ai-tracer.d.ts.map +1 -0
- package/dist/ai/providers/platform-ai-tracer.js +20 -0
- package/dist/ai/providers/platform-ai-tracer.js.map +1 -0
- package/dist/ai/runtime/ai-image-run-request.d.ts +1 -1
- package/dist/ai/testing/conformance/ai-no-sdk-leak.suite.d.ts +28 -5
- package/dist/ai/testing/conformance/ai-no-sdk-leak.suite.d.ts.map +1 -1
- package/dist/ai/testing/conformance/ai-no-sdk-leak.suite.js +54 -9
- package/dist/ai/testing/conformance/ai-no-sdk-leak.suite.js.map +1 -1
- package/dist/ai/testing/index.d.ts +1 -1
- package/dist/ai/testing/index.d.ts.map +1 -1
- package/dist/ai/testing/index.js +2 -1
- package/dist/ai/testing/index.js.map +1 -1
- package/dist/jobs/rate-limit.error.d.ts +2 -26
- package/dist/jobs/rate-limit.error.d.ts.map +1 -1
- package/dist/jobs/rate-limit.error.js +4 -52
- package/dist/jobs/rate-limit.error.js.map +1 -1
- package/dist/storage/config/storage-config.controller.d.ts +1 -1
- package/package.json +3 -2
- package/dist/ai/providers/anthropic/anthropic-errors.d.ts +0 -16
- package/dist/ai/providers/anthropic/anthropic-errors.d.ts.map +0 -1
- package/dist/ai/providers/anthropic/anthropic-errors.js +0 -156
- package/dist/ai/providers/anthropic/anthropic-errors.js.map +0 -1
- package/dist/ai/providers/anthropic/anthropic-messages.mapper.d.ts +0 -80
- package/dist/ai/providers/anthropic/anthropic-messages.mapper.d.ts.map +0 -1
- package/dist/ai/providers/anthropic/anthropic-messages.mapper.js +0 -536
- package/dist/ai/providers/anthropic/anthropic-messages.mapper.js.map +0 -1
- package/dist/ai/providers/anthropic/anthropic-model-catalog.d.ts +0 -49
- package/dist/ai/providers/anthropic/anthropic-model-catalog.d.ts.map +0 -1
- package/dist/ai/providers/anthropic/anthropic-model-catalog.js +0 -198
- package/dist/ai/providers/anthropic/anthropic-model-catalog.js.map +0 -1
- package/dist/ai/providers/anthropic/anthropic-stream.mapper.d.ts +0 -35
- package/dist/ai/providers/anthropic/anthropic-stream.mapper.d.ts.map +0 -1
- package/dist/ai/providers/anthropic/anthropic-stream.mapper.js +0 -203
- package/dist/ai/providers/anthropic/anthropic-stream.mapper.js.map +0 -1
- package/dist/ai/providers/anthropic/testing/anthropic-fixtures.d.ts +0 -18
- package/dist/ai/providers/anthropic/testing/anthropic-fixtures.d.ts.map +0 -1
- package/dist/ai/providers/anthropic/testing/anthropic-fixtures.js +0 -120
- package/dist/ai/providers/anthropic/testing/anthropic-fixtures.js.map +0 -1
- package/dist/ai/providers/anthropic/testing/anthropic-mock-transport.d.ts +0 -59
- package/dist/ai/providers/anthropic/testing/anthropic-mock-transport.d.ts.map +0 -1
- package/dist/ai/providers/anthropic/testing/anthropic-mock-transport.js +0 -206
- package/dist/ai/providers/anthropic/testing/anthropic-mock-transport.js.map +0 -1
- package/dist/ai/providers/azure-openai/azure-openai-settings.d.ts +0 -23
- package/dist/ai/providers/azure-openai/azure-openai-settings.d.ts.map +0 -1
- package/dist/ai/providers/azure-openai/azure-openai-settings.js +0 -54
- package/dist/ai/providers/azure-openai/azure-openai-settings.js.map +0 -1
- package/dist/ai/providers/gemini/gemini-content.mapper.d.ts +0 -98
- package/dist/ai/providers/gemini/gemini-content.mapper.d.ts.map +0 -1
- package/dist/ai/providers/gemini/gemini-content.mapper.js +0 -665
- package/dist/ai/providers/gemini/gemini-content.mapper.js.map +0 -1
- package/dist/ai/providers/gemini/gemini-embeddings.mapper.d.ts +0 -13
- package/dist/ai/providers/gemini/gemini-embeddings.mapper.d.ts.map +0 -1
- package/dist/ai/providers/gemini/gemini-embeddings.mapper.js +0 -78
- package/dist/ai/providers/gemini/gemini-embeddings.mapper.js.map +0 -1
- package/dist/ai/providers/gemini/gemini-errors.d.ts +0 -32
- package/dist/ai/providers/gemini/gemini-errors.d.ts.map +0 -1
- package/dist/ai/providers/gemini/gemini-errors.js +0 -191
- package/dist/ai/providers/gemini/gemini-errors.js.map +0 -1
- package/dist/ai/providers/gemini/gemini-model-catalog.d.ts +0 -45
- package/dist/ai/providers/gemini/gemini-model-catalog.d.ts.map +0 -1
- package/dist/ai/providers/gemini/gemini-model-catalog.js +0 -264
- package/dist/ai/providers/gemini/gemini-model-catalog.js.map +0 -1
- package/dist/ai/providers/gemini/gemini-stream.mapper.d.ts +0 -31
- package/dist/ai/providers/gemini/gemini-stream.mapper.d.ts.map +0 -1
- package/dist/ai/providers/gemini/gemini-stream.mapper.js +0 -118
- package/dist/ai/providers/gemini/gemini-stream.mapper.js.map +0 -1
- package/dist/ai/providers/gemini/testing/gemini-fixtures.d.ts +0 -80
- package/dist/ai/providers/gemini/testing/gemini-fixtures.d.ts.map +0 -1
- package/dist/ai/providers/gemini/testing/gemini-fixtures.js +0 -118
- package/dist/ai/providers/gemini/testing/gemini-fixtures.js.map +0 -1
- package/dist/ai/providers/gemini/testing/gemini-mock-transport.d.ts +0 -82
- package/dist/ai/providers/gemini/testing/gemini-mock-transport.d.ts.map +0 -1
- package/dist/ai/providers/gemini/testing/gemini-mock-transport.js +0 -342
- package/dist/ai/providers/gemini/testing/gemini-mock-transport.js.map +0 -1
- package/dist/ai/providers/openai/openai-audio.mapper.d.ts +0 -42
- package/dist/ai/providers/openai/openai-audio.mapper.d.ts.map +0 -1
- package/dist/ai/providers/openai/openai-audio.mapper.js +0 -266
- package/dist/ai/providers/openai/openai-audio.mapper.js.map +0 -1
- package/dist/ai/providers/openai/openai-call-telemetry.d.ts +0 -25
- package/dist/ai/providers/openai/openai-call-telemetry.d.ts.map +0 -1
- package/dist/ai/providers/openai/openai-call-telemetry.js +0 -93
- package/dist/ai/providers/openai/openai-call-telemetry.js.map +0 -1
- package/dist/ai/providers/openai/openai-chat-completions-stream.mapper.d.ts +0 -41
- package/dist/ai/providers/openai/openai-chat-completions-stream.mapper.d.ts.map +0 -1
- package/dist/ai/providers/openai/openai-chat-completions-stream.mapper.js +0 -173
- package/dist/ai/providers/openai/openai-chat-completions-stream.mapper.js.map +0 -1
- package/dist/ai/providers/openai/openai-chat-completions.engine.d.ts +0 -33
- package/dist/ai/providers/openai/openai-chat-completions.engine.d.ts.map +0 -1
- package/dist/ai/providers/openai/openai-chat-completions.engine.js +0 -165
- package/dist/ai/providers/openai/openai-chat-completions.engine.js.map +0 -1
- package/dist/ai/providers/openai/openai-chat-completions.mapper.d.ts +0 -42
- package/dist/ai/providers/openai/openai-chat-completions.mapper.d.ts.map +0 -1
- package/dist/ai/providers/openai/openai-chat-completions.mapper.js +0 -304
- package/dist/ai/providers/openai/openai-chat-completions.mapper.js.map +0 -1
- package/dist/ai/providers/openai/openai-embeddings.mapper.d.ts +0 -25
- package/dist/ai/providers/openai/openai-embeddings.mapper.d.ts.map +0 -1
- package/dist/ai/providers/openai/openai-embeddings.mapper.js +0 -81
- package/dist/ai/providers/openai/openai-embeddings.mapper.js.map +0 -1
- package/dist/ai/providers/openai/openai-errors.d.ts +0 -45
- package/dist/ai/providers/openai/openai-errors.d.ts.map +0 -1
- package/dist/ai/providers/openai/openai-errors.js +0 -247
- package/dist/ai/providers/openai/openai-errors.js.map +0 -1
- package/dist/ai/providers/openai/openai-family-guards.d.ts +0 -4
- package/dist/ai/providers/openai/openai-family-guards.d.ts.map +0 -1
- package/dist/ai/providers/openai/openai-family-guards.js +0 -19
- package/dist/ai/providers/openai/openai-family-guards.js.map +0 -1
- package/dist/ai/providers/openai/openai-images.mapper.d.ts +0 -23
- package/dist/ai/providers/openai/openai-images.mapper.d.ts.map +0 -1
- package/dist/ai/providers/openai/openai-images.mapper.js +0 -164
- package/dist/ai/providers/openai/openai-images.mapper.js.map +0 -1
- package/dist/ai/providers/openai/openai-model-catalog.d.ts +0 -36
- package/dist/ai/providers/openai/openai-model-catalog.d.ts.map +0 -1
- package/dist/ai/providers/openai/openai-model-catalog.js +0 -209
- package/dist/ai/providers/openai/openai-model-catalog.js.map +0 -1
- package/dist/ai/providers/openai/openai-realtime.mapper.d.ts +0 -18
- package/dist/ai/providers/openai/openai-realtime.mapper.d.ts.map +0 -1
- package/dist/ai/providers/openai/openai-realtime.mapper.js +0 -159
- package/dist/ai/providers/openai/openai-realtime.mapper.js.map +0 -1
- package/dist/ai/providers/openai/openai-redirect-guard.d.ts +0 -9
- package/dist/ai/providers/openai/openai-redirect-guard.d.ts.map +0 -1
- package/dist/ai/providers/openai/openai-redirect-guard.js +0 -61
- package/dist/ai/providers/openai/openai-redirect-guard.js.map +0 -1
- package/dist/ai/providers/openai/openai-responses.engine.d.ts +0 -50
- package/dist/ai/providers/openai/openai-responses.engine.d.ts.map +0 -1
- package/dist/ai/providers/openai/openai-responses.engine.js +0 -206
- package/dist/ai/providers/openai/openai-responses.engine.js.map +0 -1
- package/dist/ai/providers/openai/openai-responses.mapper.d.ts +0 -64
- package/dist/ai/providers/openai/openai-responses.mapper.d.ts.map +0 -1
- package/dist/ai/providers/openai/openai-responses.mapper.js +0 -580
- package/dist/ai/providers/openai/openai-responses.mapper.js.map +0 -1
- package/dist/ai/providers/openai/openai-stream.mapper.d.ts +0 -28
- package/dist/ai/providers/openai/openai-stream.mapper.d.ts.map +0 -1
- package/dist/ai/providers/openai/openai-stream.mapper.js +0 -139
- package/dist/ai/providers/openai/openai-stream.mapper.js.map +0 -1
- package/dist/ai/providers/openai/testing/chat-completions-fixtures.d.ts +0 -24
- package/dist/ai/providers/openai/testing/chat-completions-fixtures.d.ts.map +0 -1
- package/dist/ai/providers/openai/testing/chat-completions-fixtures.js +0 -72
- package/dist/ai/providers/openai/testing/chat-completions-fixtures.js.map +0 -1
- package/dist/ai/providers/openai/testing/conformance-responders.d.ts +0 -7
- package/dist/ai/providers/openai/testing/conformance-responders.d.ts.map +0 -1
- package/dist/ai/providers/openai/testing/conformance-responders.js +0 -64
- package/dist/ai/providers/openai/testing/conformance-responders.js.map +0 -1
- package/dist/ai/providers/openai/testing/openai-fixtures.d.ts +0 -52
- package/dist/ai/providers/openai/testing/openai-fixtures.d.ts.map +0 -1
- package/dist/ai/providers/openai/testing/openai-fixtures.js +0 -208
- package/dist/ai/providers/openai/testing/openai-fixtures.js.map +0 -1
- package/dist/ai/providers/openai/testing/openai-mock-transport.d.ts +0 -242
- package/dist/ai/providers/openai/testing/openai-mock-transport.d.ts.map +0 -1
- package/dist/ai/providers/openai/testing/openai-mock-transport.js +0 -523
- package/dist/ai/providers/openai/testing/openai-mock-transport.js.map +0 -1
- package/dist/ai/providers/openai-compatible/openai-compatible-settings.d.ts +0 -13
- package/dist/ai/providers/openai-compatible/openai-compatible-settings.d.ts.map +0 -1
- package/dist/ai/providers/openai-compatible/openai-compatible-settings.js +0 -29
- package/dist/ai/providers/openai-compatible/openai-compatible-settings.js.map +0 -1
|
@@ -1,242 +0,0 @@
|
|
|
1
|
-
import type { Response as OpenAiSdkResponse, ResponseStreamEvent } from 'openai/resources/responses/responses';
|
|
2
|
-
import type { ChatCompletion } from 'openai/resources/chat/completions/completions';
|
|
3
|
-
import type { OpenAiFetch } from '../openai-client.factory';
|
|
4
|
-
export interface MockSseFrame {
|
|
5
|
-
/** SSE `event:` name; OpenAI names every frame after its `type`. */
|
|
6
|
-
event?: string;
|
|
7
|
-
data: unknown;
|
|
8
|
-
}
|
|
9
|
-
export type MockReply = {
|
|
10
|
-
kind: 'response';
|
|
11
|
-
response: OpenAiSdkResponse;
|
|
12
|
-
chunkSize?: number;
|
|
13
|
-
} | {
|
|
14
|
-
kind: 'error';
|
|
15
|
-
status: number;
|
|
16
|
-
error: Record<string, unknown>;
|
|
17
|
-
headers?: Record<string, string>;
|
|
18
|
-
} | {
|
|
19
|
-
kind: 'network';
|
|
20
|
-
}
|
|
21
|
-
/** A hand-written SSE script. `hang` keeps the connection open after the last frame until aborted. */
|
|
22
|
-
| {
|
|
23
|
-
kind: 'sse';
|
|
24
|
-
frames: MockSseFrame[];
|
|
25
|
-
hang?: boolean;
|
|
26
|
-
};
|
|
27
|
-
export type MockChatReply = {
|
|
28
|
-
kind: 'completion';
|
|
29
|
-
completion: ChatCompletion;
|
|
30
|
-
chunkSize?: number;
|
|
31
|
-
} | {
|
|
32
|
-
kind: 'error';
|
|
33
|
-
status: number;
|
|
34
|
-
error: Record<string, unknown>;
|
|
35
|
-
headers?: Record<string, string>;
|
|
36
|
-
} | {
|
|
37
|
-
kind: 'network';
|
|
38
|
-
}
|
|
39
|
-
/** A hand-written SSE script (`data:` frames only, as Chat Completions sends). */
|
|
40
|
-
| {
|
|
41
|
-
kind: 'sse';
|
|
42
|
-
frames: MockSseFrame[];
|
|
43
|
-
hang?: boolean;
|
|
44
|
-
};
|
|
45
|
-
export type MockEmbeddingReply =
|
|
46
|
-
/** A `/v1/embeddings` JSON body, sent as-is (so a test can make it malformed). */
|
|
47
|
-
{
|
|
48
|
-
kind: 'embeddings';
|
|
49
|
-
body: Record<string, unknown>;
|
|
50
|
-
} | {
|
|
51
|
-
kind: 'error';
|
|
52
|
-
status: number;
|
|
53
|
-
error: Record<string, unknown>;
|
|
54
|
-
headers?: Record<string, string>;
|
|
55
|
-
} | {
|
|
56
|
-
kind: 'network';
|
|
57
|
-
};
|
|
58
|
-
export type MockImagesReply =
|
|
59
|
-
/** A `/v1/images/*` JSON body, sent as-is (so a test can make it malformed). */
|
|
60
|
-
{
|
|
61
|
-
kind: 'images';
|
|
62
|
-
body: Record<string, unknown>;
|
|
63
|
-
} | {
|
|
64
|
-
kind: 'error';
|
|
65
|
-
status: number;
|
|
66
|
-
error: Record<string, unknown>;
|
|
67
|
-
headers?: Record<string, string>;
|
|
68
|
-
} | {
|
|
69
|
-
kind: 'network';
|
|
70
|
-
};
|
|
71
|
-
/** A `/v1/files` failure to inject, or `undefined` to answer normally. */
|
|
72
|
-
export type MockFilesReply = {
|
|
73
|
-
kind: 'error';
|
|
74
|
-
status: number;
|
|
75
|
-
error: Record<string, unknown>;
|
|
76
|
-
} | {
|
|
77
|
-
kind: 'network';
|
|
78
|
-
} | undefined;
|
|
79
|
-
/** Which files operation a request made. */
|
|
80
|
-
export type MockFilesOperation = 'upload' | 'delete';
|
|
81
|
-
/** A file the mock holds: what the multipart body carried. */
|
|
82
|
-
export interface MockStoredFile {
|
|
83
|
-
id: string;
|
|
84
|
-
filename: string;
|
|
85
|
-
type: string;
|
|
86
|
-
bytes: number;
|
|
87
|
-
purpose: string;
|
|
88
|
-
}
|
|
89
|
-
export type MockTranscriptionReply =
|
|
90
|
-
/** A `/v1/audio/transcriptions` body: JSON when an object, `text/plain` when a string. */
|
|
91
|
-
{
|
|
92
|
-
kind: 'transcription';
|
|
93
|
-
body: Record<string, unknown> | string;
|
|
94
|
-
} | {
|
|
95
|
-
kind: 'error';
|
|
96
|
-
status: number;
|
|
97
|
-
error: Record<string, unknown>;
|
|
98
|
-
headers?: Record<string, string>;
|
|
99
|
-
} | {
|
|
100
|
-
kind: 'network';
|
|
101
|
-
};
|
|
102
|
-
/** The transcript every default mock transcription answers with. */
|
|
103
|
-
export declare const MOCK_TRANSCRIPT = "Hello from the mock transcription.";
|
|
104
|
-
/**
|
|
105
|
-
* The default `/v1/audio/transcriptions` answer for `body`, shaped by its
|
|
106
|
-
* `response_format` exactly as OpenAI shapes it: a bare string for `text`,
|
|
107
|
-
* `{ text, usage }` for `json` (tokens for the GPT-4o family, a duration for
|
|
108
|
-
* Whisper), and the verbose object — language, duration, segments, and
|
|
109
|
-
* words when asked — for `verbose_json`.
|
|
110
|
-
*/
|
|
111
|
-
export declare function mockTranscriptionBody(body: Record<string, unknown>): Record<string, unknown> | string;
|
|
112
|
-
export type MockSpeechReply =
|
|
113
|
-
/** The audio bytes, sent as a binary body. */
|
|
114
|
-
{
|
|
115
|
-
kind: 'speech';
|
|
116
|
-
bytes: Buffer;
|
|
117
|
-
contentType?: string;
|
|
118
|
-
} | {
|
|
119
|
-
kind: 'error';
|
|
120
|
-
status: number;
|
|
121
|
-
error: Record<string, unknown>;
|
|
122
|
-
headers?: Record<string, string>;
|
|
123
|
-
} | {
|
|
124
|
-
kind: 'network';
|
|
125
|
-
};
|
|
126
|
-
/** The default `/v1/audio/speech` bytes for `body`: deterministic, format- and input-dependent. */
|
|
127
|
-
export declare function mockSpeechBytes(body: Record<string, unknown>): Buffer;
|
|
128
|
-
export type MockRealtimeReply =
|
|
129
|
-
/** The `client_secrets` answer body. */
|
|
130
|
-
{
|
|
131
|
-
kind: 'client_secret';
|
|
132
|
-
body: Record<string, unknown>;
|
|
133
|
-
} | {
|
|
134
|
-
kind: 'error';
|
|
135
|
-
status: number;
|
|
136
|
-
error: Record<string, unknown>;
|
|
137
|
-
headers?: Record<string, string>;
|
|
138
|
-
} | {
|
|
139
|
-
kind: 'network';
|
|
140
|
-
};
|
|
141
|
-
/** Every ephemeral secret the mock mints starts with this. */
|
|
142
|
-
export declare const MOCK_REALTIME_SECRET_PREFIX = "ek_mock_";
|
|
143
|
-
/**
|
|
144
|
-
* The default `/v1/realtime/client_secrets` answer for `body`: a fresh
|
|
145
|
-
* ephemeral secret, `expires_at` from `expires_after.seconds` (600 when
|
|
146
|
-
* omitted, the SDK-documented default), and the effective session echoed.
|
|
147
|
-
*/
|
|
148
|
-
export declare function mockClientSecretBody(body: Record<string, unknown>, counter: number): Record<string, unknown>;
|
|
149
|
-
/** Which images endpoint a request hit. */
|
|
150
|
-
export type MockImagesOperation = 'generations' | 'edits';
|
|
151
|
-
/** A real, 1x1 transparent PNG — what the mock "generates". */
|
|
152
|
-
export declare const MOCK_PNG_BASE64 = "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==";
|
|
153
|
-
/** The default `/v1/images/*` answer for `body`: `n` PNGs (1 by default), with token usage. */
|
|
154
|
-
export declare function mockImagesBody(body: Record<string, unknown>): Record<string, unknown>;
|
|
155
|
-
/** The native vector length the mock gives an embedding model. */
|
|
156
|
-
export declare function mockEmbeddingLength(model: string): number;
|
|
157
|
-
/** A deterministic, input-dependent vector — equal texts embed equally. */
|
|
158
|
-
export declare function mockEmbeddingVector(text: string, length: number): number[];
|
|
159
|
-
/** The default `/v1/embeddings` answer for `body`. */
|
|
160
|
-
export declare function mockEmbeddingsBody(body: Record<string, unknown>): Record<string, unknown>;
|
|
161
|
-
export interface RecordedRequest {
|
|
162
|
-
method: string;
|
|
163
|
-
path: string;
|
|
164
|
-
/** The full URL, query string included (Azure's `api-version`). */
|
|
165
|
-
url: URL;
|
|
166
|
-
apiKey: string | null;
|
|
167
|
-
headers: Headers;
|
|
168
|
-
body: Record<string, unknown> | undefined;
|
|
169
|
-
signal: AbortSignal | undefined;
|
|
170
|
-
}
|
|
171
|
-
export interface OpenAiMockServerOptions {
|
|
172
|
-
validKeys: string[];
|
|
173
|
-
models?: string[];
|
|
174
|
-
respond?(body: Record<string, unknown>): MockReply;
|
|
175
|
-
/** `/chat/completions` responder (#448). Defaults to a network failure. */
|
|
176
|
-
chat?(body: Record<string, unknown>): MockChatReply;
|
|
177
|
-
/** Which header carries the key: OpenAI's bearer token (default) or Azure's `api-key`. */
|
|
178
|
-
auth?: 'bearer' | 'api-key';
|
|
179
|
-
/** Accept a request that carries no key at all (a keyless compatible server). */
|
|
180
|
-
allowAnonymous?: boolean;
|
|
181
|
-
/** `/embeddings` responder. Defaults to `mockEmbeddingsBody`. */
|
|
182
|
-
embed?(body: Record<string, unknown>): MockEmbeddingReply;
|
|
183
|
-
/** `/images/*` responder. Defaults to `mockImagesBody`. */
|
|
184
|
-
images?(operation: MockImagesOperation, body: Record<string, unknown>): MockImagesReply;
|
|
185
|
-
/** `/audio/transcriptions` responder. Defaults to `mockTranscriptionBody`. */
|
|
186
|
-
transcribe?(body: Record<string, unknown>): MockTranscriptionReply;
|
|
187
|
-
/** `/audio/speech` responder. Defaults to `mockSpeechBytes`. */
|
|
188
|
-
speech?(body: Record<string, unknown>): MockSpeechReply;
|
|
189
|
-
/** `/realtime/client_secrets` responder. Defaults to `mockClientSecretBody`. */
|
|
190
|
-
realtime?(body: Record<string, unknown>): MockRealtimeReply;
|
|
191
|
-
}
|
|
192
|
-
/** Frames for a Responses API event list, named the way OpenAI names them. */
|
|
193
|
-
export declare function framesFor(events: ResponseStreamEvent[]): MockSseFrame[];
|
|
194
|
-
export declare class OpenAiMockServer {
|
|
195
|
-
readonly requests: RecordedRequest[];
|
|
196
|
-
/** The bytes of every uploaded file part, in order (images, audio). */
|
|
197
|
-
readonly uploads: Buffer[];
|
|
198
|
-
private readonly validKeys;
|
|
199
|
-
private readonly models;
|
|
200
|
-
private readonly issuedResponseIds;
|
|
201
|
-
private requestCounter;
|
|
202
|
-
private respondFn;
|
|
203
|
-
private chatFn;
|
|
204
|
-
private readonly auth;
|
|
205
|
-
private readonly allowAnonymous;
|
|
206
|
-
private readonly queued;
|
|
207
|
-
private embedFn;
|
|
208
|
-
private imagesFn;
|
|
209
|
-
private filesFn;
|
|
210
|
-
private fileCounter;
|
|
211
|
-
/** Files uploaded and not (yet) deleted, by id. */
|
|
212
|
-
readonly files: Map<string, MockStoredFile>;
|
|
213
|
-
/** Ids of every file deleted, in order. */
|
|
214
|
-
readonly deletedFileIds: string[];
|
|
215
|
-
private transcribeFn;
|
|
216
|
-
private speechFn;
|
|
217
|
-
private realtimeFn;
|
|
218
|
-
private secretCounter;
|
|
219
|
-
constructor(opts: OpenAiMockServerOptions);
|
|
220
|
-
/** Replaces the `/realtime/client_secrets` responder. */
|
|
221
|
-
realtimeWith(fn: (body: Record<string, unknown>) => MockRealtimeReply): void;
|
|
222
|
-
/** Replaces the `/audio/speech` responder. */
|
|
223
|
-
speechWith(fn: (body: Record<string, unknown>) => MockSpeechReply): void;
|
|
224
|
-
/** Replaces the `/audio/transcriptions` responder. */
|
|
225
|
-
transcribeWith(fn: (body: Record<string, unknown>) => MockTranscriptionReply): void;
|
|
226
|
-
/** Replaces the `/images/*` responder. */
|
|
227
|
-
imagesWith(fn: (operation: MockImagesOperation, body: Record<string, unknown>) => MockImagesReply): void;
|
|
228
|
-
/** Injects a `/files` failure (return `undefined` to answer normally). */
|
|
229
|
-
filesWith(fn: (operation: MockFilesOperation, fileId?: string) => MockFilesReply): void;
|
|
230
|
-
/** Replaces the `/embeddings` responder. */
|
|
231
|
-
embedWith(fn: (body: Record<string, unknown>) => MockEmbeddingReply): void;
|
|
232
|
-
/** Replaces the `/chat/completions` responder. */
|
|
233
|
-
chatWith(fn: (body: Record<string, unknown>) => MockChatReply): void;
|
|
234
|
-
/** Replaces the `/responses` responder. */
|
|
235
|
-
respondWith(fn: (body: Record<string, unknown>) => MockReply): void;
|
|
236
|
-
/** Answers the next `/responses` call with `reply`, ahead of the responder. */
|
|
237
|
-
enqueue(reply: MockReply): void;
|
|
238
|
-
/** Requests made to `path` (e.g. `/v1/responses`). */
|
|
239
|
-
requestsTo(path: string): RecordedRequest[];
|
|
240
|
-
readonly fetch: OpenAiFetch;
|
|
241
|
-
}
|
|
242
|
-
//# sourceMappingURL=openai-mock-transport.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openai-mock-transport.d.ts","sourceRoot":"","sources":["../../../../../src/ai/providers/openai/testing/openai-mock-transport.ts"],"names":[],"mappings":"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"}
|