@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,33 +0,0 @@
|
|
|
1
|
-
import type { OpenAI } from 'openai';
|
|
2
|
-
import type { AiCallContext } from '../../core/provider-adapter.interface';
|
|
3
|
-
import type { AiResponse, AiResponseRequest, AiStreamEvent } from '../../core/types/responses.types';
|
|
4
|
-
import type { OpenAiCallTelemetry } from './openai-call-telemetry';
|
|
5
|
-
import { type ChatCompletionsTokenParameter } from './openai-chat-completions.mapper';
|
|
6
|
-
import { type OpenAiFamily } from './openai-errors';
|
|
7
|
-
export interface OpenAiChatCompletionsEngineDeps {
|
|
8
|
-
family: OpenAiFamily;
|
|
9
|
-
telemetry: OpenAiCallTelemetry;
|
|
10
|
-
/** The SDK client for one call. */
|
|
11
|
-
client(ctx: AiCallContext): OpenAI;
|
|
12
|
-
/** Which body field carries the output-token limit. */
|
|
13
|
-
tokenParameter: ChatCompletionsTokenParameter;
|
|
14
|
-
}
|
|
15
|
-
export interface OpenAiChatCompletionsCallOptions {
|
|
16
|
-
/** The `model` to send when it differs from `req.model` (an Azure deployment). */
|
|
17
|
-
wireModel?: string;
|
|
18
|
-
}
|
|
19
|
-
export declare class OpenAiChatCompletionsEngine {
|
|
20
|
-
private readonly deps;
|
|
21
|
-
constructor(deps: OpenAiChatCompletionsEngineDeps);
|
|
22
|
-
private get providerId();
|
|
23
|
-
private body;
|
|
24
|
-
create(req: AiResponseRequest, ctx: AiCallContext, opts?: OpenAiChatCompletionsCallOptions): Promise<AiResponse>;
|
|
25
|
-
/** Streams one response — see the file header for the contract. */
|
|
26
|
-
stream(req: AiResponseRequest, ctx: AiCallContext, opts?: OpenAiChatCompletionsCallOptions): AsyncGenerator<AiStreamEvent>;
|
|
27
|
-
/**
|
|
28
|
-
* What each storage-object part becomes on the wire: its presigned URL, or
|
|
29
|
-
* its bytes as a `data:` URL. `undefined` when the request names none.
|
|
30
|
-
*/
|
|
31
|
-
private deliverStorageInputs;
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=openai-chat-completions.engine.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openai-chat-completions.engine.d.ts","sourceRoot":"","sources":["../../../../src/ai/providers/openai/openai-chat-completions.engine.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACrG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,OAAO,EACL,KAAK,6BAA6B,EAGnC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAOpE,MAAM,WAAW,+BAA+B;IAC9C,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,mBAAmB,CAAC;IAC/B,mCAAmC;IACnC,MAAM,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAAC;IACnC,uDAAuD;IACvD,cAAc,EAAE,6BAA6B,CAAC;CAC/C;AAED,MAAM,WAAW,gCAAgC;IAC/C,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,2BAA2B;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,+BAA+B;IAElE,OAAO,KAAK,UAAU,GAErB;YAEa,IAAI;IAUlB,MAAM,CAAC,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,GAAE,gCAAqC,GAAG,OAAO,CAAC,UAAU,CAAC;IAapH,mEAAmE;IAC5D,MAAM,CACX,GAAG,EAAE,iBAAiB,EACtB,GAAG,EAAE,aAAa,EAClB,IAAI,GAAE,gCAAqC,GAC1C,cAAc,CAAC,aAAa,CAAC;IAsFhC;;;OAGG;YACW,oBAAoB;CAqCnC"}
|
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// =============================================================================
|
|
3
|
-
// The Chat Completions call path of the OpenAI family (issue #448, epic #421)
|
|
4
|
-
// =============================================================================
|
|
5
|
-
//
|
|
6
|
-
// `create` and `stream` against `POST /chat/completions`, the counterpart of
|
|
7
|
-
// `openai-responses.engine.ts` for servers (and Azure deployments) that do not
|
|
8
|
-
// serve the Responses API. Same contracts, same telemetry:
|
|
9
|
-
//
|
|
10
|
-
// - every call runs in one `ai.provider.call` span (operations
|
|
11
|
-
// `chat.completions.create` / `chat.completions.stream`);
|
|
12
|
-
// - a failure BEFORE the first chunk is thrown as an `AiError`; once the
|
|
13
|
-
// stream has started, a failure ends it with exactly one `error` event;
|
|
14
|
-
// - `ctx.signal` aborts the request, and a consumer that stops iterating
|
|
15
|
-
// aborts it too.
|
|
16
|
-
//
|
|
17
|
-
// Streaming asks for `stream_options: { include_usage: true }` so the final
|
|
18
|
-
// (choice-less) chunk carries token usage — without it every streamed call
|
|
19
|
-
// would record zero tokens.
|
|
20
|
-
//
|
|
21
|
-
// STORAGE-OBJECT INPUTS (#441). Chat Completions has no file store worth
|
|
22
|
-
// uploading to for a call, so only the `presigned_url` and `inline`
|
|
23
|
-
// strategies are delivered (an image as its URL or a `data:` URL, a file as
|
|
24
|
-
// inline `file_data`); an `upload` strategy is refused. The adapters using
|
|
25
|
-
// this engine declare their `fileInputStrategy` accordingly.
|
|
26
|
-
// =============================================================================
|
|
27
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
-
exports.OpenAiChatCompletionsEngine = void 0;
|
|
29
|
-
const ai_error_1 = require("../../core/ai-error");
|
|
30
|
-
const openai_chat_completions_stream_mapper_1 = require("./openai-chat-completions-stream.mapper");
|
|
31
|
-
const openai_chat_completions_mapper_1 = require("./openai-chat-completions.mapper");
|
|
32
|
-
const openai_errors_1 = require("./openai-errors");
|
|
33
|
-
const openai_responses_mapper_1 = require("./openai-responses.mapper");
|
|
34
|
-
class OpenAiChatCompletionsEngine {
|
|
35
|
-
deps;
|
|
36
|
-
constructor(deps) {
|
|
37
|
-
this.deps = deps;
|
|
38
|
-
}
|
|
39
|
-
get providerId() {
|
|
40
|
-
return this.deps.family.providerId;
|
|
41
|
-
}
|
|
42
|
-
async body(req, ctx, opts) {
|
|
43
|
-
const body = (0, openai_chat_completions_mapper_1.toChatCompletionsRequest)(req, {
|
|
44
|
-
family: this.deps.family,
|
|
45
|
-
storage: await this.deliverStorageInputs(req, ctx),
|
|
46
|
-
tokenParameter: this.deps.tokenParameter,
|
|
47
|
-
});
|
|
48
|
-
return opts.wireModel ? { ...body, model: opts.wireModel } : body;
|
|
49
|
-
}
|
|
50
|
-
create(req, ctx, opts = {}) {
|
|
51
|
-
return this.deps.telemetry.call('chat.completions.create', req.model, ctx, async () => {
|
|
52
|
-
const body = await this.body(req, ctx, opts);
|
|
53
|
-
const { data, request_id } = await this.deps
|
|
54
|
-
.client(ctx)
|
|
55
|
-
.chat.completions.create({ ...body, stream: false }, { signal: ctx.signal })
|
|
56
|
-
.withResponse();
|
|
57
|
-
return (0, openai_chat_completions_mapper_1.fromChatCompletion)(data, { request: req, providerRequestId: request_id, family: this.deps.family });
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
/** Streams one response — see the file header for the contract. */
|
|
61
|
-
async *stream(req, ctx, opts = {}) {
|
|
62
|
-
const { telemetry, family } = this.deps;
|
|
63
|
-
const operation = 'chat.completions.stream';
|
|
64
|
-
const started = Date.now();
|
|
65
|
-
const span = telemetry.startSpan(operation, req.model);
|
|
66
|
-
let status = 'ok';
|
|
67
|
-
let providerRequestId = null;
|
|
68
|
-
let sdkStream;
|
|
69
|
-
let terminated = false;
|
|
70
|
-
try {
|
|
71
|
-
const body = await this.body(req, ctx, opts);
|
|
72
|
-
try {
|
|
73
|
-
const { data, request_id } = await this.deps
|
|
74
|
-
.client(ctx)
|
|
75
|
-
.chat.completions.create({ ...body, stream: true, stream_options: { include_usage: true } }, { signal: ctx.signal })
|
|
76
|
-
.withResponse();
|
|
77
|
-
sdkStream = data;
|
|
78
|
-
providerRequestId = request_id;
|
|
79
|
-
}
|
|
80
|
-
catch (err) {
|
|
81
|
-
throw (0, openai_errors_1.mapOpenAiError)(err, family);
|
|
82
|
-
}
|
|
83
|
-
const mapper = new openai_chat_completions_stream_mapper_1.ChatCompletionsStreamMapper({ request: req, providerRequestId, family });
|
|
84
|
-
try {
|
|
85
|
-
for await (const chunk of sdkStream) {
|
|
86
|
-
for (const out of mapper.map(chunk))
|
|
87
|
-
yield out;
|
|
88
|
-
}
|
|
89
|
-
for (const out of mapper.finish()) {
|
|
90
|
-
if (out.type === 'error')
|
|
91
|
-
status = out.code;
|
|
92
|
-
yield out;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
catch (err) {
|
|
96
|
-
const mapped = (0, openai_errors_1.mapOpenAiError)(err, family);
|
|
97
|
-
if (!mapper.started)
|
|
98
|
-
throw mapped;
|
|
99
|
-
status = mapped.code;
|
|
100
|
-
yield* mapper.fail(mapped);
|
|
101
|
-
}
|
|
102
|
-
terminated = mapper.terminated;
|
|
103
|
-
if (!terminated) {
|
|
104
|
-
if (ctx.signal?.aborted) {
|
|
105
|
-
throw new ai_error_1.AiError('AI_PROVIDER_UNAVAILABLE', 'The AI request was cancelled.', {
|
|
106
|
-
details: { provider: this.providerId, aborted: true },
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
const truncated = new ai_error_1.AiError('AI_PROVIDER_UNAVAILABLE', `The ${family.label} stream ended before the response completed.`, { details: { provider: this.providerId } });
|
|
110
|
-
if (!mapper.started)
|
|
111
|
-
throw truncated;
|
|
112
|
-
status = truncated.code;
|
|
113
|
-
terminated = true;
|
|
114
|
-
yield* mapper.fail(truncated);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
catch (err) {
|
|
118
|
-
const mapped = (0, openai_errors_1.mapOpenAiError)(err, family);
|
|
119
|
-
status = mapped.code;
|
|
120
|
-
throw mapped;
|
|
121
|
-
}
|
|
122
|
-
finally {
|
|
123
|
-
// A consumer that stopped early leaves the HTTP stream open: close it.
|
|
124
|
-
if (!terminated)
|
|
125
|
-
sdkStream?.controller.abort();
|
|
126
|
-
telemetry.endSpan(span, status);
|
|
127
|
-
telemetry.logCall(operation, req.model, ctx, status, started, providerRequestId);
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* What each storage-object part becomes on the wire: its presigned URL, or
|
|
132
|
-
* its bytes as a `data:` URL. `undefined` when the request names none.
|
|
133
|
-
*/
|
|
134
|
-
async deliverStorageInputs(req, ctx) {
|
|
135
|
-
const ids = (0, openai_responses_mapper_1.storageObjectIdsOf)(req);
|
|
136
|
-
if (ids.length === 0)
|
|
137
|
-
return undefined;
|
|
138
|
-
const deliveries = new Map();
|
|
139
|
-
for (const id of ids) {
|
|
140
|
-
const input = ctx.storageInputs?.get(id);
|
|
141
|
-
if (!input) {
|
|
142
|
-
throw new ai_error_1.AiError('AI_INVALID_REQUEST', 'A storage-object input was not resolved by the runtime.', {
|
|
143
|
-
details: { provider: this.providerId },
|
|
144
|
-
});
|
|
145
|
-
}
|
|
146
|
-
const base = { modality: input.modality, filename: input.filename };
|
|
147
|
-
if (input.strategy === 'presigned_url' && input.url) {
|
|
148
|
-
deliveries.set(id, { ...base, url: input.url });
|
|
149
|
-
}
|
|
150
|
-
else if (input.strategy === 'inline' && input.read) {
|
|
151
|
-
const payload = await input.read();
|
|
152
|
-
const data = Buffer.from(payload.data).toString('base64');
|
|
153
|
-
deliveries.set(id, { ...base, url: `data:${input.mimeType};base64,${data}` });
|
|
154
|
-
}
|
|
155
|
-
else {
|
|
156
|
-
throw new ai_error_1.AiError('AI_INVALID_REQUEST', 'A storage-object input was not prepared for delivery.', {
|
|
157
|
-
details: { provider: this.providerId, strategy: input.strategy },
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
return deliveries;
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
exports.OpenAiChatCompletionsEngine = OpenAiChatCompletionsEngine;
|
|
165
|
-
//# sourceMappingURL=openai-chat-completions.engine.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openai-chat-completions.engine.js","sourceRoot":"","sources":["../../../../src/ai/providers/openai/openai-chat-completions.engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import type { ChatCompletion, ChatCompletionCreateParamsBase } from 'openai/resources/chat/completions/completions';
|
|
2
|
-
import type { AiResponse, AiResponseRequest } from '../../core/types/responses.types';
|
|
3
|
-
import { type OpenAiFamily } from './openai-errors';
|
|
4
|
-
import type { OpenAiStorageDeliveries } from './openai-responses.mapper';
|
|
5
|
-
/** The request body minus `stream`/`stream_options`, which the engine sets. */
|
|
6
|
-
export type ChatCompletionsRequestBody = Omit<ChatCompletionCreateParamsBase, 'stream' | 'stream_options'>;
|
|
7
|
-
/**
|
|
8
|
-
* Which body field carries the output-token limit. `max_completion_tokens` is
|
|
9
|
-
* OpenAI's (and Azure's) current name and the only one reasoning models
|
|
10
|
-
* accept; `max_tokens` is the one every OpenAI-compatible server understands.
|
|
11
|
-
*/
|
|
12
|
-
export type ChatCompletionsTokenParameter = 'max_tokens' | 'max_completion_tokens';
|
|
13
|
-
export interface ToChatCompletionsOptions {
|
|
14
|
-
family?: OpenAiFamily;
|
|
15
|
-
storage?: OpenAiStorageDeliveries;
|
|
16
|
-
tokenParameter?: ChatCompletionsTokenParameter;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Builds the Chat Completions body for `req`. `providerOptions[<provider id>]`
|
|
20
|
-
* is shallow-merged LAST — the escape hatch for server-specific fields
|
|
21
|
-
* (`top_p`, `seed`, Ollama's `keep_alive`, ...) — except `stream` and
|
|
22
|
-
* `stream_options`, which belong to the engine.
|
|
23
|
-
*
|
|
24
|
-
* Throws `AiError` (never an SDK error): see the file header.
|
|
25
|
-
*/
|
|
26
|
-
export declare function toChatCompletionsRequest(req: AiResponseRequest, opts?: ToChatCompletionsOptions): ChatCompletionsRequestBody;
|
|
27
|
-
export interface FromChatCompletionOptions {
|
|
28
|
-
/** The originating request; its `structuredOutput` drives `parsed`. */
|
|
29
|
-
request: AiResponseRequest;
|
|
30
|
-
providerRequestId?: string | null;
|
|
31
|
-
family?: OpenAiFamily;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Maps a finished `ChatCompletion` to an `AiResponse`. Only the first choice
|
|
35
|
-
* is read (the request never asks for more). A completion with no choice at
|
|
36
|
-
* all is a provider fault. When structured output was requested and the turn
|
|
37
|
-
* finished (no pending tool call), the text is validated with
|
|
38
|
-
* `parseStructured` — invalid JSON or a schema mismatch throws
|
|
39
|
-
* `AI_STRUCTURED_OUTPUT_INVALID`.
|
|
40
|
-
*/
|
|
41
|
-
export declare function fromChatCompletion(completion: ChatCompletion, opts: FromChatCompletionOptions): AiResponse;
|
|
42
|
-
//# sourceMappingURL=openai-chat-completions.mapper.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openai-chat-completions.mapper.d.ts","sourceRoot":"","sources":["../../../../src/ai/providers/openai/openai-chat-completions.mapper.ts"],"names":[],"mappings":"AA4CA,OAAO,KAAK,EACV,cAAc,EAGd,8BAA8B,EAK/B,MAAM,+CAA+C,CAAC;AAIvD,OAAO,KAAK,EAKV,UAAU,EACV,iBAAiB,EAIlB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEzE,+EAA+E;AAC/E,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAAC,8BAA8B,EAAE,QAAQ,GAAG,gBAAgB,CAAC,CAAC;AAE3G;;;;GAIG;AACH,MAAM,MAAM,6BAA6B,GAAG,YAAY,GAAG,uBAAuB,CAAC;AAEnF,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,EAAE,uBAAuB,CAAC;IAClC,cAAc,CAAC,EAAE,6BAA6B,CAAC;CAChD;AA6LD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,iBAAiB,EACtB,IAAI,GAAE,wBAA6B,GAClC,0BAA0B,CAgD5B;AAyBD,MAAM,WAAW,yBAAyB;IACxC,uEAAuE;IACvE,OAAO,EAAE,iBAAiB,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE,yBAAyB,GAAG,UAAU,CAgD1G"}
|
|
@@ -1,304 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// =============================================================================
|
|
3
|
-
// Our Responses types <-> OpenAI Chat Completions (issue #448, epic #421)
|
|
4
|
-
// =============================================================================
|
|
5
|
-
//
|
|
6
|
-
// The graceful-degradation path of the OpenAI wire family. Most
|
|
7
|
-
// OpenAI-compatible servers (Ollama, vLLM, LM Studio) and every Azure OpenAI
|
|
8
|
-
// api-version serve `POST /chat/completions`, while only some serve the
|
|
9
|
-
// Responses API. Pure functions, no I/O — `toChatCompletionsRequest` builds
|
|
10
|
-
// the body, `fromChatCompletion` reads the answer, and the stream mapper
|
|
11
|
-
// (`openai-chat-completions-stream.mapper.ts`) ends by building a synthetic
|
|
12
|
-
// `ChatCompletion` and handing it to `fromChatCompletion`, so a streamed and
|
|
13
|
-
// a non-streamed call cannot disagree about what a response means.
|
|
14
|
-
//
|
|
15
|
-
// MAPPING
|
|
16
|
-
// instructions -> a leading `system` message
|
|
17
|
-
// message user/system/developer -> `user` / `system` (developer is sent as
|
|
18
|
-
// system: compatible servers rarely know it)
|
|
19
|
-
// message assistant -> `assistant` (text only)
|
|
20
|
-
// function_call (replayed) -> `tool_calls` on the preceding assistant turn
|
|
21
|
-
// function_call_output -> a `tool` message
|
|
22
|
-
// reasoning (replayed) -> dropped: Chat Completions has nowhere to put it
|
|
23
|
-
// image part -> `image_url` (URL, presigned URL or data: URL)
|
|
24
|
-
// file part -> `file` with `file_data` (inline data: URL) or
|
|
25
|
-
// `file_id`; a remote file URL is refused
|
|
26
|
-
// function tools -> `tools[].function` (JSON Schema from Zod)
|
|
27
|
-
// structuredOutput -> `response_format: { type: 'json_schema' }`,
|
|
28
|
-
// then `parseStructured` on the text
|
|
29
|
-
// maxOutputTokens -> `max_tokens` or `max_completion_tokens`, as
|
|
30
|
-
// the adapter declares (`tokenParameter`)
|
|
31
|
-
//
|
|
32
|
-
// REFUSED (AI_CAPABILITY_UNSUPPORTED):
|
|
33
|
-
// - a reasoning EFFORT: Chat Completions has no reasoning summaries, and the
|
|
34
|
-
// compatible servers this path exists for have no effort knob (a summary
|
|
35
|
-
// request alone is a harmless no-op, as for a non-reasoning OpenAI model);
|
|
36
|
-
// - `previousResponseId`: the API is stateless — send the history instead;
|
|
37
|
-
// - any hosted tool (#442): Chat Completions runs function tools only;
|
|
38
|
-
// - a remote file URL: only inline bytes or an uploaded file id are accepted.
|
|
39
|
-
//
|
|
40
|
-
// `metadata` is not forwarded: OpenAI only accepts it on stored completions,
|
|
41
|
-
// and compatible servers reject unknown fields inconsistently.
|
|
42
|
-
// =============================================================================
|
|
43
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
44
|
-
exports.toChatCompletionsRequest = toChatCompletionsRequest;
|
|
45
|
-
exports.fromChatCompletion = fromChatCompletion;
|
|
46
|
-
const node_crypto_1 = require("node:crypto");
|
|
47
|
-
const ai_error_1 = require("../../core/ai-error");
|
|
48
|
-
const structured_output_1 = require("../../core/structured-output");
|
|
49
|
-
const openai_errors_1 = require("./openai-errors");
|
|
50
|
-
function unsupported(family, message, details) {
|
|
51
|
-
return new ai_error_1.AiError('AI_CAPABILITY_UNSUPPORTED', message, { details: { provider: family.providerId, ...details } });
|
|
52
|
-
}
|
|
53
|
-
function invalid(family, message, details = {}) {
|
|
54
|
-
return new ai_error_1.AiError('AI_INVALID_REQUEST', message, { details: { provider: family.providerId, ...details } });
|
|
55
|
-
}
|
|
56
|
-
// ---- request ----------------------------------------------------------------
|
|
57
|
-
function toImagePart(url, detail) {
|
|
58
|
-
return { type: 'image_url', image_url: { url, detail: detail ?? 'auto' } };
|
|
59
|
-
}
|
|
60
|
-
function toFilePart(family, source, filename) {
|
|
61
|
-
if (source.fileId) {
|
|
62
|
-
return { type: 'file', file: { file_id: source.fileId } };
|
|
63
|
-
}
|
|
64
|
-
if (source.url?.startsWith('data:')) {
|
|
65
|
-
return { type: 'file', file: { file_data: source.url, filename: filename ?? 'file' } };
|
|
66
|
-
}
|
|
67
|
-
throw unsupported(family, 'Chat Completions accepts file inputs only as inline data or an uploaded file id.', {
|
|
68
|
-
part: 'file',
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
function toContentPart(part, family, storage) {
|
|
72
|
-
if (part.type === 'text') {
|
|
73
|
-
return { type: 'text', text: part.text };
|
|
74
|
-
}
|
|
75
|
-
if (part.url) {
|
|
76
|
-
return part.type === 'image' ? toImagePart(part.url, part.detail) : toFilePart(family, { url: part.url }, part.filename);
|
|
77
|
-
}
|
|
78
|
-
if (!part.storageObjectId) {
|
|
79
|
-
throw invalid(family, `An ${part.type} part needs a url or a storageObjectId.`, { part: part.type });
|
|
80
|
-
}
|
|
81
|
-
const delivered = storage?.get(part.storageObjectId);
|
|
82
|
-
if (!delivered || (!delivered.url && !delivered.fileId)) {
|
|
83
|
-
throw invalid(family, 'A storage-object input was not resolved by the runtime.', { part: part.type });
|
|
84
|
-
}
|
|
85
|
-
// By the stored object's modality, not the part's type (#441).
|
|
86
|
-
if (delivered.modality === 'image') {
|
|
87
|
-
if (!delivered.url) {
|
|
88
|
-
throw unsupported(family, 'Chat Completions accepts images only by URL.', { part: part.type });
|
|
89
|
-
}
|
|
90
|
-
return toImagePart(delivered.url, part.type === 'image' ? part.detail : undefined);
|
|
91
|
-
}
|
|
92
|
-
return toFilePart(family, delivered, (part.type === 'file' ? part.filename : undefined) ?? delivered.filename);
|
|
93
|
-
}
|
|
94
|
-
function textOnly(family, content, role) {
|
|
95
|
-
if (content.some((part) => part.type !== 'text')) {
|
|
96
|
-
throw invalid(family, `A ${role} message may contain only text parts.`, { role });
|
|
97
|
-
}
|
|
98
|
-
return content.map((part) => (part.type === 'text' ? part.text : '')).join('');
|
|
99
|
-
}
|
|
100
|
-
function toMessages(req, family, storage) {
|
|
101
|
-
const messages = [];
|
|
102
|
-
if (req.instructions !== undefined) {
|
|
103
|
-
messages.push({ role: 'system', content: req.instructions });
|
|
104
|
-
}
|
|
105
|
-
if (typeof req.input === 'string') {
|
|
106
|
-
messages.push({ role: 'user', content: req.input });
|
|
107
|
-
return messages;
|
|
108
|
-
}
|
|
109
|
-
for (const item of req.input) {
|
|
110
|
-
appendItem(messages, item, family, storage);
|
|
111
|
-
}
|
|
112
|
-
return messages;
|
|
113
|
-
}
|
|
114
|
-
function appendItem(messages, item, family, storage) {
|
|
115
|
-
switch (item.type) {
|
|
116
|
-
case 'reasoning':
|
|
117
|
-
// Chat Completions has no reasoning items to replay.
|
|
118
|
-
return;
|
|
119
|
-
case 'function_call_output':
|
|
120
|
-
messages.push({ role: 'tool', tool_call_id: item.callId, content: item.output });
|
|
121
|
-
return;
|
|
122
|
-
case 'function_call': {
|
|
123
|
-
// A replayed call belongs to the assistant turn that made it: the one
|
|
124
|
-
// just before it when that turn is an assistant message, else a new one.
|
|
125
|
-
const call = {
|
|
126
|
-
id: item.callId,
|
|
127
|
-
type: 'function',
|
|
128
|
-
function: { name: item.name, arguments: item.arguments },
|
|
129
|
-
};
|
|
130
|
-
const last = messages[messages.length - 1];
|
|
131
|
-
if (last?.role === 'assistant') {
|
|
132
|
-
last.tool_calls = [...(last.tool_calls ?? []), call];
|
|
133
|
-
}
|
|
134
|
-
else {
|
|
135
|
-
const assistant = { role: 'assistant', content: null, tool_calls: [call] };
|
|
136
|
-
messages.push(assistant);
|
|
137
|
-
}
|
|
138
|
-
return;
|
|
139
|
-
}
|
|
140
|
-
case 'message':
|
|
141
|
-
break;
|
|
142
|
-
}
|
|
143
|
-
switch (item.role) {
|
|
144
|
-
case 'assistant':
|
|
145
|
-
messages.push({ role: 'assistant', content: textOnly(family, item.content, 'assistant') });
|
|
146
|
-
return;
|
|
147
|
-
case 'system':
|
|
148
|
-
case 'developer':
|
|
149
|
-
messages.push({ role: 'system', content: textOnly(family, item.content, item.role) });
|
|
150
|
-
return;
|
|
151
|
-
case 'user': {
|
|
152
|
-
// Text-only turns travel as a plain string — the one shape every
|
|
153
|
-
// compatible server accepts.
|
|
154
|
-
const plain = item.content.every((part) => part.type === 'text');
|
|
155
|
-
messages.push({
|
|
156
|
-
role: 'user',
|
|
157
|
-
content: plain
|
|
158
|
-
? item.content.map((part) => (part.type === 'text' ? part.text : '')).join('')
|
|
159
|
-
: item.content.map((part) => toContentPart(part, family, storage)),
|
|
160
|
-
});
|
|
161
|
-
return;
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
function toTool(tool, family) {
|
|
166
|
-
if (tool.type !== 'function') {
|
|
167
|
-
throw unsupported(family, `Hosted tool "${tool.type}" is not supported over Chat Completions.`, {
|
|
168
|
-
tool: tool.type,
|
|
169
|
-
capability: 'hosted_tools',
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
|
-
return {
|
|
173
|
-
type: 'function',
|
|
174
|
-
function: {
|
|
175
|
-
name: tool.name,
|
|
176
|
-
description: tool.description,
|
|
177
|
-
parameters: (0, structured_output_1.toJsonSchema)(tool.parameters),
|
|
178
|
-
strict: tool.strict ?? true,
|
|
179
|
-
},
|
|
180
|
-
};
|
|
181
|
-
}
|
|
182
|
-
function toToolChoice(choice) {
|
|
183
|
-
return typeof choice === 'string' ? choice : { type: 'function', function: { name: choice.name } };
|
|
184
|
-
}
|
|
185
|
-
/**
|
|
186
|
-
* Builds the Chat Completions body for `req`. `providerOptions[<provider id>]`
|
|
187
|
-
* is shallow-merged LAST — the escape hatch for server-specific fields
|
|
188
|
-
* (`top_p`, `seed`, Ollama's `keep_alive`, ...) — except `stream` and
|
|
189
|
-
* `stream_options`, which belong to the engine.
|
|
190
|
-
*
|
|
191
|
-
* Throws `AiError` (never an SDK error): see the file header.
|
|
192
|
-
*/
|
|
193
|
-
function toChatCompletionsRequest(req, opts = {}) {
|
|
194
|
-
const family = opts.family ?? openai_errors_1.OPENAI_FAMILY;
|
|
195
|
-
if (req.previousResponseId !== undefined) {
|
|
196
|
-
throw unsupported(family, 'Chat Completions stores no responses; send the conversation as input instead.', {
|
|
197
|
-
capability: 'previous_response_id',
|
|
198
|
-
});
|
|
199
|
-
}
|
|
200
|
-
if (req.reasoning?.effort !== undefined) {
|
|
201
|
-
throw unsupported(family, `Model "${req.model}" does not support reasoning effort over Chat Completions.`, {
|
|
202
|
-
model: req.model,
|
|
203
|
-
capability: 'reasoning',
|
|
204
|
-
});
|
|
205
|
-
}
|
|
206
|
-
const body = {
|
|
207
|
-
model: req.model,
|
|
208
|
-
messages: toMessages(req, family, opts.storage),
|
|
209
|
-
};
|
|
210
|
-
if (req.tools && req.tools.length > 0)
|
|
211
|
-
body.tools = req.tools.map((tool) => toTool(tool, family));
|
|
212
|
-
if (req.toolChoice !== undefined)
|
|
213
|
-
body.tool_choice = toToolChoice(req.toolChoice);
|
|
214
|
-
if (req.structuredOutput) {
|
|
215
|
-
body.response_format = {
|
|
216
|
-
type: 'json_schema',
|
|
217
|
-
json_schema: {
|
|
218
|
-
name: req.structuredOutput.name,
|
|
219
|
-
schema: (0, structured_output_1.toJsonSchema)(req.structuredOutput.schema),
|
|
220
|
-
strict: req.structuredOutput.strict ?? true,
|
|
221
|
-
},
|
|
222
|
-
};
|
|
223
|
-
}
|
|
224
|
-
if (req.maxOutputTokens !== undefined) {
|
|
225
|
-
body[opts.tokenParameter ?? 'max_completion_tokens'] = req.maxOutputTokens;
|
|
226
|
-
}
|
|
227
|
-
if (req.temperature !== undefined)
|
|
228
|
-
body.temperature = req.temperature;
|
|
229
|
-
const { stream: _stream, stream_options: _streamOptions, ...escapeHatch } = (req.providerOptions?.[family.providerId] ?? {});
|
|
230
|
-
return { ...body, ...escapeHatch };
|
|
231
|
-
}
|
|
232
|
-
// ---- response ---------------------------------------------------------------
|
|
233
|
-
function finishReasonOf(raw, output, refused) {
|
|
234
|
-
if (refused || raw === 'content_filter')
|
|
235
|
-
return 'content_filter';
|
|
236
|
-
if (output.some((item) => item.type === 'function_call'))
|
|
237
|
-
return 'tool_calls';
|
|
238
|
-
if (raw === 'length')
|
|
239
|
-
return 'length';
|
|
240
|
-
return 'stop';
|
|
241
|
-
}
|
|
242
|
-
function usageOf(usage) {
|
|
243
|
-
if (!usage)
|
|
244
|
-
return {};
|
|
245
|
-
const out = { inputTokens: usage.prompt_tokens, outputTokens: usage.completion_tokens };
|
|
246
|
-
const reasoning = usage.completion_tokens_details?.reasoning_tokens;
|
|
247
|
-
const cached = usage.prompt_tokens_details?.cached_tokens;
|
|
248
|
-
if (typeof reasoning === 'number')
|
|
249
|
-
out.reasoningTokens = reasoning;
|
|
250
|
-
if (typeof cached === 'number')
|
|
251
|
-
out.cachedInputTokens = cached;
|
|
252
|
-
return out;
|
|
253
|
-
}
|
|
254
|
-
/**
|
|
255
|
-
* Maps a finished `ChatCompletion` to an `AiResponse`. Only the first choice
|
|
256
|
-
* is read (the request never asks for more). A completion with no choice at
|
|
257
|
-
* all is a provider fault. When structured output was requested and the turn
|
|
258
|
-
* finished (no pending tool call), the text is validated with
|
|
259
|
-
* `parseStructured` — invalid JSON or a schema mismatch throws
|
|
260
|
-
* `AI_STRUCTURED_OUTPUT_INVALID`.
|
|
261
|
-
*/
|
|
262
|
-
function fromChatCompletion(completion, opts) {
|
|
263
|
-
const family = opts.family ?? openai_errors_1.OPENAI_FAMILY;
|
|
264
|
-
const providerRequestId = opts.providerRequestId ?? undefined;
|
|
265
|
-
const choice = completion.choices?.[0];
|
|
266
|
-
if (!choice) {
|
|
267
|
-
throw new ai_error_1.AiError('AI_PROVIDER_UNAVAILABLE', `${family.label} returned a completion with no choices.`, {
|
|
268
|
-
details: { provider: family.providerId, ...(providerRequestId ? { providerRequestId } : {}) },
|
|
269
|
-
});
|
|
270
|
-
}
|
|
271
|
-
const output = [];
|
|
272
|
-
const text = typeof choice.message?.content === 'string' ? choice.message.content : '';
|
|
273
|
-
if (text.length > 0)
|
|
274
|
-
output.push({ type: 'message', text });
|
|
275
|
-
for (const call of choice.message?.tool_calls ?? []) {
|
|
276
|
-
if (call.type !== 'function')
|
|
277
|
-
continue;
|
|
278
|
-
output.push({
|
|
279
|
-
type: 'function_call',
|
|
280
|
-
callId: call.id,
|
|
281
|
-
name: call.function.name,
|
|
282
|
-
arguments: call.function.arguments ?? '',
|
|
283
|
-
});
|
|
284
|
-
}
|
|
285
|
-
const refused = typeof choice.message?.refusal === 'string' && choice.message.refusal.length > 0;
|
|
286
|
-
const finishReason = finishReasonOf(choice.finish_reason, output, refused);
|
|
287
|
-
const result = {
|
|
288
|
-
// Some compatible servers omit the id; the neutral contract needs one.
|
|
289
|
-
id: completion.id || `chatcmpl-${(0, node_crypto_1.randomUUID)()}`,
|
|
290
|
-
provider: family.providerId,
|
|
291
|
-
model: completion.model || opts.request.model,
|
|
292
|
-
output,
|
|
293
|
-
outputText: text,
|
|
294
|
-
usage: usageOf(completion.usage),
|
|
295
|
-
finishReason,
|
|
296
|
-
};
|
|
297
|
-
if (providerRequestId)
|
|
298
|
-
result.providerRequestId = providerRequestId;
|
|
299
|
-
if (opts.request.structuredOutput && finishReason !== 'tool_calls') {
|
|
300
|
-
result.parsed = (0, structured_output_1.parseStructured)(opts.request.structuredOutput.schema, text);
|
|
301
|
-
}
|
|
302
|
-
return result;
|
|
303
|
-
}
|
|
304
|
-
//# sourceMappingURL=openai-chat-completions.mapper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openai-chat-completions.mapper.js","sourceRoot":"","sources":["../../../../src/ai/providers/openai/openai-chat-completions.mapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import type { CreateEmbeddingResponse, EmbeddingCreateParams } from 'openai/resources/embeddings';
|
|
2
|
-
import type { AiEmbeddingRequest, AiEmbeddingResult } from '../../core/types/media.types';
|
|
3
|
-
import { type OpenAiFamily } from './openai-errors';
|
|
4
|
-
/** Whether OpenAI model `modelId` accepts the `dimensions` parameter. */
|
|
5
|
-
export declare function openAiEmbeddingSupportsDimensions(modelId: string): boolean;
|
|
6
|
-
export type OpenAiEmbeddingBody = EmbeddingCreateParams & {
|
|
7
|
-
encoding_format: 'float';
|
|
8
|
-
};
|
|
9
|
-
/** The `/v1/embeddings` body for `req`. `providerOptions.openai` merges first; the port's own fields win. */
|
|
10
|
-
export declare function toOpenAiEmbeddingRequest(req: AiEmbeddingRequest, family?: OpenAiFamily): OpenAiEmbeddingBody;
|
|
11
|
-
export interface FromOpenAiEmbeddingOptions {
|
|
12
|
-
request: AiEmbeddingRequest;
|
|
13
|
-
providerRequestId?: string | null;
|
|
14
|
-
/** Which OpenAI-family provider answered (#448); OpenAI by default. */
|
|
15
|
-
family?: OpenAiFamily;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* The neutral result. Vectors are ordered by OpenAI's `index` (never trusted
|
|
19
|
-
* to already be in order), and the answer must hold exactly one vector per
|
|
20
|
-
* input, all the same length — anything else is a provider fault
|
|
21
|
-
* (`AI_PROVIDER_UNAVAILABLE`), not something to hand a caller who will store
|
|
22
|
-
* it next to a row.
|
|
23
|
-
*/
|
|
24
|
-
export declare function fromOpenAiEmbeddingResponse(data: CreateEmbeddingResponse, opts: FromOpenAiEmbeddingOptions): AiEmbeddingResult;
|
|
25
|
-
//# sourceMappingURL=openai-embeddings.mapper.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openai-embeddings.mapper.d.ts","sourceRoot":"","sources":["../../../../src/ai/providers/openai/openai-embeddings.mapper.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGlG,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAC1F,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAKnE,yEAAyE;AACzE,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE1E;AAED,MAAM,MAAM,mBAAmB,GAAG,qBAAqB,GAAG;IAAE,eAAe,EAAE,OAAO,CAAA;CAAE,CAAC;AAEvF,6GAA6G;AAC7G,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,kBAAkB,EACvB,MAAM,GAAE,YAA4B,GACnC,mBAAmB,CAkBrB;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,uEAAuE;IACvE,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,uBAAuB,EAC7B,IAAI,EAAE,0BAA0B,GAC/B,iBAAiB,CA+BnB"}
|