@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,206 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// =============================================================================
|
|
3
|
-
// The Responses API call path, shared by the OpenAI family (#426, extracted #448)
|
|
4
|
-
// =============================================================================
|
|
5
|
-
//
|
|
6
|
-
// `create` and `stream` against `POST /responses`, including the #441
|
|
7
|
-
// storage-object delivery (presigned URL, Files API upload + delete, inline
|
|
8
|
-
// `data:` URL). Extracted from `openai.adapter.ts` unchanged so the Azure
|
|
9
|
-
// OpenAI adapter and the generic OpenAI-compatible adapter — both of which
|
|
10
|
-
// can speak the Responses API — run exactly the code OpenAI runs, differing
|
|
11
|
-
// only in their `OpenAiFamily` (provider id and message label), their client
|
|
12
|
-
// (endpoint, auth header) and, for Azure, the `model` put on the wire (a
|
|
13
|
-
// deployment name rather than the model id).
|
|
14
|
-
//
|
|
15
|
-
// STREAMING CONTRACT. A failure BEFORE `response.created` (a rejected key, a
|
|
16
|
-
// 429, an unsupported request) is thrown as an `AiError`; once the stream has
|
|
17
|
-
// started, a failure ends it with exactly one `error` event, so a consumer
|
|
18
|
-
// that has begun rendering always sees a terminal event. `ctx.signal` aborts
|
|
19
|
-
// the SDK request; a consumer that stops iterating (`break`) aborts it too.
|
|
20
|
-
// =============================================================================
|
|
21
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.OpenAiResponsesEngine = void 0;
|
|
23
|
-
const openai_1 = require("openai");
|
|
24
|
-
const ai_error_1 = require("../../core/ai-error");
|
|
25
|
-
const openai_errors_1 = require("./openai-errors");
|
|
26
|
-
const openai_responses_mapper_1 = require("./openai-responses.mapper");
|
|
27
|
-
const openai_stream_mapper_1 = require("./openai-stream.mapper");
|
|
28
|
-
class OpenAiResponsesEngine {
|
|
29
|
-
deps;
|
|
30
|
-
constructor(deps) {
|
|
31
|
-
this.deps = deps;
|
|
32
|
-
}
|
|
33
|
-
get providerId() {
|
|
34
|
-
return this.deps.family.providerId;
|
|
35
|
-
}
|
|
36
|
-
body(req, storage, opts) {
|
|
37
|
-
const body = (0, openai_responses_mapper_1.toOpenAiRequest)(req, this.deps.classify(req.model), storage, this.deps.family);
|
|
38
|
-
return opts.wireModel ? { ...body, model: opts.wireModel } : body;
|
|
39
|
-
}
|
|
40
|
-
create(req, ctx, opts = {}) {
|
|
41
|
-
return this.deps.telemetry.call('responses.create', req.model, ctx, async () => {
|
|
42
|
-
const uploaded = [];
|
|
43
|
-
let client;
|
|
44
|
-
const lazyClient = () => (client ??= this.deps.client(ctx));
|
|
45
|
-
try {
|
|
46
|
-
const storage = await this.deliverStorageInputs(req, ctx, lazyClient, uploaded);
|
|
47
|
-
const body = this.body(req, storage, opts);
|
|
48
|
-
const { data, request_id } = await lazyClient()
|
|
49
|
-
.responses.create({ ...body, stream: false }, { signal: ctx.signal })
|
|
50
|
-
.withResponse();
|
|
51
|
-
if (data.status === 'cancelled') {
|
|
52
|
-
throw new ai_error_1.AiError('AI_PROVIDER_UNAVAILABLE', `The ${this.deps.family.label} response was cancelled.`, {
|
|
53
|
-
details: { provider: this.providerId, ...(request_id ? { providerRequestId: request_id } : {}) },
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
return (0, openai_responses_mapper_1.fromOpenAiResponse)(data, { request: req, providerRequestId: request_id, family: this.deps.family });
|
|
57
|
-
}
|
|
58
|
-
finally {
|
|
59
|
-
await this.deleteUploaded(client, uploaded, ctx);
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
/** Streams one response — see the file header for the contract. */
|
|
64
|
-
async *stream(req, ctx, opts = {}) {
|
|
65
|
-
const { telemetry, family } = this.deps;
|
|
66
|
-
const started = Date.now();
|
|
67
|
-
const span = telemetry.startSpan('responses.stream', req.model);
|
|
68
|
-
let status = 'ok';
|
|
69
|
-
let providerRequestId = null;
|
|
70
|
-
let sdkStream;
|
|
71
|
-
let terminated = false;
|
|
72
|
-
const uploaded = [];
|
|
73
|
-
let client;
|
|
74
|
-
const lazyClient = () => (client ??= this.deps.client(ctx));
|
|
75
|
-
try {
|
|
76
|
-
const storage = await this.deliverStorageInputs(req, ctx, lazyClient, uploaded);
|
|
77
|
-
const body = this.body(req, storage, opts);
|
|
78
|
-
try {
|
|
79
|
-
const { data, request_id } = await lazyClient().responses
|
|
80
|
-
.create({ ...body, stream: true }, { signal: ctx.signal })
|
|
81
|
-
.withResponse();
|
|
82
|
-
sdkStream = data;
|
|
83
|
-
providerRequestId = request_id;
|
|
84
|
-
}
|
|
85
|
-
catch (err) {
|
|
86
|
-
throw (0, openai_errors_1.mapOpenAiError)(err, family);
|
|
87
|
-
}
|
|
88
|
-
const mapper = new openai_stream_mapper_1.OpenAiStreamMapper({ request: req, providerRequestId, family });
|
|
89
|
-
try {
|
|
90
|
-
for await (const event of sdkStream) {
|
|
91
|
-
for (const out of mapper.map(event)) {
|
|
92
|
-
if (out.type === 'error')
|
|
93
|
-
status = out.code;
|
|
94
|
-
yield out;
|
|
95
|
-
}
|
|
96
|
-
if (mapper.terminated)
|
|
97
|
-
break;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
catch (err) {
|
|
101
|
-
const mapped = (0, openai_errors_1.mapOpenAiError)(err, family);
|
|
102
|
-
if (!mapper.started)
|
|
103
|
-
throw mapped;
|
|
104
|
-
status = mapped.code;
|
|
105
|
-
yield* mapper.fail(mapped);
|
|
106
|
-
}
|
|
107
|
-
terminated = mapper.terminated;
|
|
108
|
-
if (!terminated) {
|
|
109
|
-
if (ctx.signal?.aborted) {
|
|
110
|
-
throw new ai_error_1.AiError('AI_PROVIDER_UNAVAILABLE', 'The AI request was cancelled.', {
|
|
111
|
-
details: { provider: this.providerId, aborted: true },
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
const truncated = new ai_error_1.AiError('AI_PROVIDER_UNAVAILABLE', `The ${family.label} stream ended before the response completed.`, { details: { provider: this.providerId } });
|
|
115
|
-
if (!mapper.started)
|
|
116
|
-
throw truncated;
|
|
117
|
-
status = truncated.code;
|
|
118
|
-
terminated = true;
|
|
119
|
-
yield* mapper.fail(truncated);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
catch (err) {
|
|
123
|
-
const mapped = (0, openai_errors_1.mapOpenAiError)(err, family);
|
|
124
|
-
status = mapped.code;
|
|
125
|
-
throw mapped;
|
|
126
|
-
}
|
|
127
|
-
finally {
|
|
128
|
-
// A consumer that stopped early leaves the HTTP stream open: close it.
|
|
129
|
-
if (!terminated)
|
|
130
|
-
sdkStream?.controller.abort();
|
|
131
|
-
await this.deleteUploaded(client, uploaded, ctx);
|
|
132
|
-
telemetry.endSpan(span, status);
|
|
133
|
-
telemetry.logCall('responses.stream', req.model, ctx, status, started, providerRequestId);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
// ---- storage-object inputs (#441) ------------------------------------------
|
|
137
|
-
/**
|
|
138
|
-
* What each storage-object part of `req` becomes on the wire, by the
|
|
139
|
-
* strategy the runtime prepared it for: a presigned (or inline `data:`)
|
|
140
|
-
* URL, or a Files API id — uploaded here, with the call's own key, and
|
|
141
|
-
* pushed onto `uploaded` so the caller deletes it whatever happens next.
|
|
142
|
-
* `undefined` when the request names no storage object.
|
|
143
|
-
*/
|
|
144
|
-
async deliverStorageInputs(req, ctx, client, uploaded) {
|
|
145
|
-
const ids = (0, openai_responses_mapper_1.storageObjectIdsOf)(req);
|
|
146
|
-
if (ids.length === 0)
|
|
147
|
-
return undefined;
|
|
148
|
-
const deliveries = new Map();
|
|
149
|
-
for (const id of ids) {
|
|
150
|
-
const input = ctx.storageInputs?.get(id);
|
|
151
|
-
if (!input) {
|
|
152
|
-
throw new ai_error_1.AiError('AI_INVALID_REQUEST', 'A storage-object input was not resolved by the runtime.', {
|
|
153
|
-
details: { provider: this.providerId },
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
const base = { modality: input.modality, filename: input.filename };
|
|
157
|
-
if (input.strategy === 'presigned_url' && input.url) {
|
|
158
|
-
deliveries.set(id, { ...base, url: input.url });
|
|
159
|
-
}
|
|
160
|
-
else if (input.strategy === 'upload' && input.open) {
|
|
161
|
-
const file = await (0, openai_1.toFile)(await input.open(), input.filename, { type: input.mimeType });
|
|
162
|
-
const created = await client().files.create({ file, purpose: 'user_data' }, { signal: ctx.signal });
|
|
163
|
-
uploaded.push(created.id);
|
|
164
|
-
deliveries.set(id, { ...base, fileId: created.id });
|
|
165
|
-
}
|
|
166
|
-
else if (input.strategy === 'inline' && input.read) {
|
|
167
|
-
const payload = await input.read();
|
|
168
|
-
const data = Buffer.from(payload.data).toString('base64');
|
|
169
|
-
deliveries.set(id, { ...base, url: `data:${input.mimeType};base64,${data}` });
|
|
170
|
-
}
|
|
171
|
-
else {
|
|
172
|
-
throw new ai_error_1.AiError('AI_INVALID_REQUEST', 'A storage-object input was not prepared for delivery.', {
|
|
173
|
-
details: { provider: this.providerId, strategy: input.strategy },
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
return deliveries;
|
|
178
|
-
}
|
|
179
|
-
/**
|
|
180
|
-
* Deletes the provider-side copies of this call's uploaded inputs. Best
|
|
181
|
-
* effort: a failure is logged (file id and outcome only — never the key)
|
|
182
|
-
* and never replaces the call's own result. Deliberately not bound to
|
|
183
|
-
* `ctx.signal`: a cancelled call still cleans up.
|
|
184
|
-
*/
|
|
185
|
-
async deleteUploaded(client, uploaded, ctx) {
|
|
186
|
-
if (!client)
|
|
187
|
-
return;
|
|
188
|
-
for (const fileId of uploaded.splice(0)) {
|
|
189
|
-
try {
|
|
190
|
-
await client.files.delete(fileId);
|
|
191
|
-
this.deps.logger.debug({ msg: 'AI input file deleted', provider: this.providerId, fileId, requestId: ctx.requestId });
|
|
192
|
-
}
|
|
193
|
-
catch (err) {
|
|
194
|
-
this.deps.logger.warn({
|
|
195
|
-
msg: 'Could not delete an AI input file from the provider',
|
|
196
|
-
provider: this.providerId,
|
|
197
|
-
fileId,
|
|
198
|
-
requestId: ctx.requestId,
|
|
199
|
-
status: (0, openai_errors_1.mapOpenAiError)(err, this.deps.family).code,
|
|
200
|
-
});
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
exports.OpenAiResponsesEngine = OpenAiResponsesEngine;
|
|
206
|
-
//# sourceMappingURL=openai-responses.engine.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openai-responses.engine.js","sourceRoot":"","sources":["../../../../src/ai/providers/openai/openai-responses.engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import type { Tool as OpenAiTool, Response as OpenAiSdkResponse, ResponseCreateParamsBase, ResponseOutputItem } from 'openai/resources/responses/responses';
|
|
2
|
-
import type { AiModelCapabilities } from '../../core/capabilities';
|
|
3
|
-
import type { AiStorageInputModality } from '../../core/types/file-inputs.types';
|
|
4
|
-
import type { AiHostedTool, AiOutputItem, AiResponse, AiResponseRequest } from '../../core/types/responses.types';
|
|
5
|
-
import { type OpenAiFamily } from './openai-errors';
|
|
6
|
-
/** The request body minus `stream`, which the port sets. */
|
|
7
|
-
export type OpenAiRequestBody = Omit<ResponseCreateParamsBase, 'stream'>;
|
|
8
|
-
/**
|
|
9
|
-
* How one storage-object input reached OpenAI (#441): a URL OpenAI fetches
|
|
10
|
-
* (presigned, or an inline `data:` URL) or a Files API id. ⚠ `url` may be a
|
|
11
|
-
* presigned URL — it goes into the request body and nowhere else.
|
|
12
|
-
*/
|
|
13
|
-
export interface OpenAiStorageDelivery {
|
|
14
|
-
modality: AiStorageInputModality;
|
|
15
|
-
filename: string;
|
|
16
|
-
url?: string;
|
|
17
|
-
fileId?: string;
|
|
18
|
-
}
|
|
19
|
-
/** Deliveries keyed by storage object id. */
|
|
20
|
-
export type OpenAiStorageDeliveries = ReadonlyMap<string, OpenAiStorageDelivery>;
|
|
21
|
-
/** Every storage object id `req` names, in order, each once. */
|
|
22
|
-
export declare function storageObjectIdsOf(req: AiResponseRequest): string[];
|
|
23
|
-
/** One of our hosted tools as OpenAI's tool entry. */
|
|
24
|
-
export declare function toOpenAiHostedTool(tool: AiHostedTool): OpenAiTool;
|
|
25
|
-
/**
|
|
26
|
-
* Builds the OpenAI request body for `req`.
|
|
27
|
-
*
|
|
28
|
-
* `caps` is the model's capabilities as classified (or `null` when
|
|
29
|
-
* unclassified); it only gates `reasoning`. `storage` is what the adapter
|
|
30
|
-
* delivered for each storage-object part (#441). `providerOptions.openai` is
|
|
31
|
-
* shallow-merged LAST — the escape hatch for `background`, `store`,
|
|
32
|
-
* `service_tier`, ... — except `stream`, which belongs to the port.
|
|
33
|
-
*
|
|
34
|
-
* Throws `AiError` (never an SDK error): see the file header.
|
|
35
|
-
*/
|
|
36
|
-
export declare function toOpenAiRequest(req: AiResponseRequest, caps: AiModelCapabilities | null, storage?: OpenAiStorageDeliveries, family?: OpenAiFamily): OpenAiRequestBody;
|
|
37
|
-
/**
|
|
38
|
-
* Maps one SDK output item. `null` for an item type this contract does not
|
|
39
|
-
* model (it is dropped, never guessed at).
|
|
40
|
-
*
|
|
41
|
-
* An `image_generation_call`'s base64 `result` is decoded into BYTES here
|
|
42
|
-
* (`result.image`); the facade's hosted-output seam removes them before the
|
|
43
|
-
* response leaves the runtime (see `AiImageGenerationCallResult`).
|
|
44
|
-
*/
|
|
45
|
-
export declare function fromOpenAiOutputItem(item: ResponseOutputItem): AiOutputItem | null;
|
|
46
|
-
export interface FromOpenAiResponseOptions {
|
|
47
|
-
/** The originating request; its `structuredOutput` drives `parsed`. */
|
|
48
|
-
request: AiResponseRequest;
|
|
49
|
-
/** The `x-request-id` OpenAI answered with. */
|
|
50
|
-
providerRequestId?: string | null;
|
|
51
|
-
/** Which OpenAI-family provider answered (#448); OpenAI by default. */
|
|
52
|
-
family?: OpenAiFamily;
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Maps a finished SDK `Response` to an `AiResponse`.
|
|
56
|
-
*
|
|
57
|
-
* A `failed` response is an error, not a result: it throws the `AiError` its
|
|
58
|
-
* body's error code means. When the request asked for structured output and
|
|
59
|
-
* the model finished its turn (no pending tool call), the text is validated
|
|
60
|
-
* with `parseStructured` — invalid JSON or a schema mismatch throws
|
|
61
|
-
* `AI_STRUCTURED_OUTPUT_INVALID`.
|
|
62
|
-
*/
|
|
63
|
-
export declare function fromOpenAiResponse(resp: OpenAiSdkResponse, opts: FromOpenAiResponseOptions): AiResponse;
|
|
64
|
-
//# sourceMappingURL=openai-responses.mapper.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openai-responses.mapper.d.ts","sourceRoot":"","sources":["../../../../src/ai/providers/openai/openai-responses.mapper.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAIV,IAAI,IAAI,UAAU,EAClB,QAAQ,IAAI,iBAAiB,EAC7B,wBAAwB,EAGxB,kBAAkB,EAGnB,MAAM,sCAAsC,CAAC;AAG9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAEjF,OAAO,KAAK,EAGV,YAAY,EAKZ,YAAY,EACZ,UAAU,EACV,iBAAiB,EAKlB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAA2C,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE7F,4DAA4D;AAC5D,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAEzE;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,sBAAsB,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,6CAA6C;AAC7C,MAAM,MAAM,uBAAuB,GAAG,WAAW,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;AAsFjF,gEAAgE;AAChE,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAcnE;AA+CD,sDAAsD;AACtD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,UAAU,CAmDjE;AAgED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,iBAAiB,EACtB,IAAI,EAAE,mBAAmB,GAAG,IAAI,EAChC,OAAO,CAAC,EAAE,uBAAuB,EACjC,MAAM,GAAE,YAA4B,GACnC,iBAAiB,CAUnB;AA4ID;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,kBAAkB,GAAG,YAAY,GAAG,IAAI,CA0IlF;AAwCD,MAAM,WAAW,yBAAyB;IACxC,uEAAuE;IACvE,OAAO,EAAE,iBAAiB,CAAC;IAC3B,+CAA+C;IAC/C,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,uEAAuE;IACvE,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,iBAAiB,EACvB,IAAI,EAAE,yBAAyB,GAC9B,UAAU,CAmCZ"}
|