@marinoscar/platform-api 0.1.0-next.5 → 0.1.0-next.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (241) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/ai/core/ai-error.d.ts +15 -158
  3. package/dist/ai/core/ai-error.d.ts.map +1 -1
  4. package/dist/ai/core/ai-error.js +58 -221
  5. package/dist/ai/core/ai-error.js.map +1 -1
  6. package/dist/ai/core/capabilities.d.ts +3 -126
  7. package/dist/ai/core/capabilities.d.ts.map +1 -1
  8. package/dist/ai/core/capabilities.js +13 -109
  9. package/dist/ai/core/capabilities.js.map +1 -1
  10. package/dist/ai/core/conversation.d.ts +2 -15
  11. package/dist/ai/core/conversation.d.ts.map +1 -1
  12. package/dist/ai/core/conversation.js +9 -54
  13. package/dist/ai/core/conversation.js.map +1 -1
  14. package/dist/ai/core/hosted-tools.d.ts +3 -172
  15. package/dist/ai/core/hosted-tools.d.ts.map +1 -1
  16. package/dist/ai/core/hosted-tools.js +20 -286
  17. package/dist/ai/core/hosted-tools.js.map +1 -1
  18. package/dist/ai/core/provider-adapter.interface.d.ts +3 -260
  19. package/dist/ai/core/provider-adapter.interface.d.ts.map +1 -1
  20. package/dist/ai/core/provider-adapter.interface.js +7 -29
  21. package/dist/ai/core/provider-adapter.interface.js.map +1 -1
  22. package/dist/ai/core/structured-output.d.ts +3 -49
  23. package/dist/ai/core/structured-output.d.ts.map +1 -1
  24. package/dist/ai/core/structured-output.js +9 -80
  25. package/dist/ai/core/structured-output.js.map +1 -1
  26. package/dist/ai/core/tools.d.ts +3 -93
  27. package/dist/ai/core/tools.d.ts.map +1 -1
  28. package/dist/ai/core/tools.js +9 -73
  29. package/dist/ai/core/tools.js.map +1 -1
  30. package/dist/ai/core/types/file-inputs.types.d.ts +3 -102
  31. package/dist/ai/core/types/file-inputs.types.d.ts.map +1 -1
  32. package/dist/ai/core/types/file-inputs.types.js +14 -78
  33. package/dist/ai/core/types/file-inputs.types.js.map +1 -1
  34. package/dist/ai/core/types/media.types.d.ts +3 -616
  35. package/dist/ai/core/types/media.types.d.ts.map +1 -1
  36. package/dist/ai/core/types/media.types.js +33 -203
  37. package/dist/ai/core/types/media.types.js.map +1 -1
  38. package/dist/ai/core/types/responses.types.d.ts +3 -619
  39. package/dist/ai/core/types/responses.types.d.ts.map +1 -1
  40. package/dist/ai/core/types/responses.types.js +9 -57
  41. package/dist/ai/core/types/responses.types.js.map +1 -1
  42. package/dist/ai/http/dto/ai-images.dto.d.ts +4 -4
  43. package/dist/ai/index.d.ts +1 -1
  44. package/dist/ai/index.d.ts.map +1 -1
  45. package/dist/ai/index.js +3 -3
  46. package/dist/ai/index.js.map +1 -1
  47. package/dist/ai/providers/anthropic/anthropic-client.factory.d.ts +13 -15
  48. package/dist/ai/providers/anthropic/anthropic-client.factory.d.ts.map +1 -1
  49. package/dist/ai/providers/anthropic/anthropic-client.factory.js +23 -52
  50. package/dist/ai/providers/anthropic/anthropic-client.factory.js.map +1 -1
  51. package/dist/ai/providers/anthropic/anthropic.adapter.d.ts +15 -51
  52. package/dist/ai/providers/anthropic/anthropic.adapter.d.ts.map +1 -1
  53. package/dist/ai/providers/anthropic/anthropic.adapter.js +29 -293
  54. package/dist/ai/providers/anthropic/anthropic.adapter.js.map +1 -1
  55. package/dist/ai/providers/azure-openai/azure-openai-client.factory.d.ts +10 -14
  56. package/dist/ai/providers/azure-openai/azure-openai-client.factory.d.ts.map +1 -1
  57. package/dist/ai/providers/azure-openai/azure-openai-client.factory.js +20 -53
  58. package/dist/ai/providers/azure-openai/azure-openai-client.factory.js.map +1 -1
  59. package/dist/ai/providers/azure-openai/azure-openai.adapter.d.ts +14 -31
  60. package/dist/ai/providers/azure-openai/azure-openai.adapter.d.ts.map +1 -1
  61. package/dist/ai/providers/azure-openai/azure-openai.adapter.js +25 -170
  62. package/dist/ai/providers/azure-openai/azure-openai.adapter.js.map +1 -1
  63. package/dist/ai/providers/gemini/gemini-client.factory.d.ts +13 -18
  64. package/dist/ai/providers/gemini/gemini-client.factory.d.ts.map +1 -1
  65. package/dist/ai/providers/gemini/gemini-client.factory.js +24 -68
  66. package/dist/ai/providers/gemini/gemini-client.factory.js.map +1 -1
  67. package/dist/ai/providers/gemini/gemini.adapter.d.ts +15 -58
  68. package/dist/ai/providers/gemini/gemini.adapter.d.ts.map +1 -1
  69. package/dist/ai/providers/gemini/gemini.adapter.js +29 -348
  70. package/dist/ai/providers/gemini/gemini.adapter.js.map +1 -1
  71. package/dist/ai/providers/openai/openai-client.factory.d.ts +13 -35
  72. package/dist/ai/providers/openai/openai-client.factory.d.ts.map +1 -1
  73. package/dist/ai/providers/openai/openai-client.factory.js +25 -64
  74. package/dist/ai/providers/openai/openai-client.factory.js.map +1 -1
  75. package/dist/ai/providers/openai/openai.adapter.d.ts +15 -48
  76. package/dist/ai/providers/openai/openai.adapter.d.ts.map +1 -1
  77. package/dist/ai/providers/openai/openai.adapter.js +27 -206
  78. package/dist/ai/providers/openai/openai.adapter.js.map +1 -1
  79. package/dist/ai/providers/openai-compatible/openai-compatible-client.factory.d.ts +11 -11
  80. package/dist/ai/providers/openai-compatible/openai-compatible-client.factory.d.ts.map +1 -1
  81. package/dist/ai/providers/openai-compatible/openai-compatible-client.factory.js +18 -41
  82. package/dist/ai/providers/openai-compatible/openai-compatible-client.factory.js.map +1 -1
  83. package/dist/ai/providers/openai-compatible/openai-compatible.adapter.d.ts +14 -32
  84. package/dist/ai/providers/openai-compatible/openai-compatible.adapter.d.ts.map +1 -1
  85. package/dist/ai/providers/openai-compatible/openai-compatible.adapter.js +25 -149
  86. package/dist/ai/providers/openai-compatible/openai-compatible.adapter.js.map +1 -1
  87. package/dist/ai/providers/platform-ai-tracer.d.ts +4 -0
  88. package/dist/ai/providers/platform-ai-tracer.d.ts.map +1 -0
  89. package/dist/ai/providers/platform-ai-tracer.js +20 -0
  90. package/dist/ai/providers/platform-ai-tracer.js.map +1 -0
  91. package/dist/ai/runtime/ai-image-run-request.d.ts +1 -1
  92. package/dist/ai/testing/conformance/ai-no-sdk-leak.suite.d.ts +28 -5
  93. package/dist/ai/testing/conformance/ai-no-sdk-leak.suite.d.ts.map +1 -1
  94. package/dist/ai/testing/conformance/ai-no-sdk-leak.suite.js +54 -9
  95. package/dist/ai/testing/conformance/ai-no-sdk-leak.suite.js.map +1 -1
  96. package/dist/ai/testing/index.d.ts +1 -1
  97. package/dist/ai/testing/index.d.ts.map +1 -1
  98. package/dist/ai/testing/index.js +2 -1
  99. package/dist/ai/testing/index.js.map +1 -1
  100. package/dist/jobs/rate-limit.error.d.ts +2 -26
  101. package/dist/jobs/rate-limit.error.d.ts.map +1 -1
  102. package/dist/jobs/rate-limit.error.js +4 -52
  103. package/dist/jobs/rate-limit.error.js.map +1 -1
  104. package/dist/storage/config/storage-config.controller.d.ts +1 -1
  105. package/package.json +3 -2
  106. package/dist/ai/providers/anthropic/anthropic-errors.d.ts +0 -16
  107. package/dist/ai/providers/anthropic/anthropic-errors.d.ts.map +0 -1
  108. package/dist/ai/providers/anthropic/anthropic-errors.js +0 -156
  109. package/dist/ai/providers/anthropic/anthropic-errors.js.map +0 -1
  110. package/dist/ai/providers/anthropic/anthropic-messages.mapper.d.ts +0 -80
  111. package/dist/ai/providers/anthropic/anthropic-messages.mapper.d.ts.map +0 -1
  112. package/dist/ai/providers/anthropic/anthropic-messages.mapper.js +0 -536
  113. package/dist/ai/providers/anthropic/anthropic-messages.mapper.js.map +0 -1
  114. package/dist/ai/providers/anthropic/anthropic-model-catalog.d.ts +0 -49
  115. package/dist/ai/providers/anthropic/anthropic-model-catalog.d.ts.map +0 -1
  116. package/dist/ai/providers/anthropic/anthropic-model-catalog.js +0 -198
  117. package/dist/ai/providers/anthropic/anthropic-model-catalog.js.map +0 -1
  118. package/dist/ai/providers/anthropic/anthropic-stream.mapper.d.ts +0 -35
  119. package/dist/ai/providers/anthropic/anthropic-stream.mapper.d.ts.map +0 -1
  120. package/dist/ai/providers/anthropic/anthropic-stream.mapper.js +0 -203
  121. package/dist/ai/providers/anthropic/anthropic-stream.mapper.js.map +0 -1
  122. package/dist/ai/providers/anthropic/testing/anthropic-fixtures.d.ts +0 -18
  123. package/dist/ai/providers/anthropic/testing/anthropic-fixtures.d.ts.map +0 -1
  124. package/dist/ai/providers/anthropic/testing/anthropic-fixtures.js +0 -120
  125. package/dist/ai/providers/anthropic/testing/anthropic-fixtures.js.map +0 -1
  126. package/dist/ai/providers/anthropic/testing/anthropic-mock-transport.d.ts +0 -59
  127. package/dist/ai/providers/anthropic/testing/anthropic-mock-transport.d.ts.map +0 -1
  128. package/dist/ai/providers/anthropic/testing/anthropic-mock-transport.js +0 -206
  129. package/dist/ai/providers/anthropic/testing/anthropic-mock-transport.js.map +0 -1
  130. package/dist/ai/providers/azure-openai/azure-openai-settings.d.ts +0 -23
  131. package/dist/ai/providers/azure-openai/azure-openai-settings.d.ts.map +0 -1
  132. package/dist/ai/providers/azure-openai/azure-openai-settings.js +0 -54
  133. package/dist/ai/providers/azure-openai/azure-openai-settings.js.map +0 -1
  134. package/dist/ai/providers/gemini/gemini-content.mapper.d.ts +0 -98
  135. package/dist/ai/providers/gemini/gemini-content.mapper.d.ts.map +0 -1
  136. package/dist/ai/providers/gemini/gemini-content.mapper.js +0 -665
  137. package/dist/ai/providers/gemini/gemini-content.mapper.js.map +0 -1
  138. package/dist/ai/providers/gemini/gemini-embeddings.mapper.d.ts +0 -13
  139. package/dist/ai/providers/gemini/gemini-embeddings.mapper.d.ts.map +0 -1
  140. package/dist/ai/providers/gemini/gemini-embeddings.mapper.js +0 -78
  141. package/dist/ai/providers/gemini/gemini-embeddings.mapper.js.map +0 -1
  142. package/dist/ai/providers/gemini/gemini-errors.d.ts +0 -32
  143. package/dist/ai/providers/gemini/gemini-errors.d.ts.map +0 -1
  144. package/dist/ai/providers/gemini/gemini-errors.js +0 -191
  145. package/dist/ai/providers/gemini/gemini-errors.js.map +0 -1
  146. package/dist/ai/providers/gemini/gemini-model-catalog.d.ts +0 -45
  147. package/dist/ai/providers/gemini/gemini-model-catalog.d.ts.map +0 -1
  148. package/dist/ai/providers/gemini/gemini-model-catalog.js +0 -264
  149. package/dist/ai/providers/gemini/gemini-model-catalog.js.map +0 -1
  150. package/dist/ai/providers/gemini/gemini-stream.mapper.d.ts +0 -31
  151. package/dist/ai/providers/gemini/gemini-stream.mapper.d.ts.map +0 -1
  152. package/dist/ai/providers/gemini/gemini-stream.mapper.js +0 -118
  153. package/dist/ai/providers/gemini/gemini-stream.mapper.js.map +0 -1
  154. package/dist/ai/providers/gemini/testing/gemini-fixtures.d.ts +0 -80
  155. package/dist/ai/providers/gemini/testing/gemini-fixtures.d.ts.map +0 -1
  156. package/dist/ai/providers/gemini/testing/gemini-fixtures.js +0 -118
  157. package/dist/ai/providers/gemini/testing/gemini-fixtures.js.map +0 -1
  158. package/dist/ai/providers/gemini/testing/gemini-mock-transport.d.ts +0 -82
  159. package/dist/ai/providers/gemini/testing/gemini-mock-transport.d.ts.map +0 -1
  160. package/dist/ai/providers/gemini/testing/gemini-mock-transport.js +0 -342
  161. package/dist/ai/providers/gemini/testing/gemini-mock-transport.js.map +0 -1
  162. package/dist/ai/providers/openai/openai-audio.mapper.d.ts +0 -42
  163. package/dist/ai/providers/openai/openai-audio.mapper.d.ts.map +0 -1
  164. package/dist/ai/providers/openai/openai-audio.mapper.js +0 -266
  165. package/dist/ai/providers/openai/openai-audio.mapper.js.map +0 -1
  166. package/dist/ai/providers/openai/openai-call-telemetry.d.ts +0 -25
  167. package/dist/ai/providers/openai/openai-call-telemetry.d.ts.map +0 -1
  168. package/dist/ai/providers/openai/openai-call-telemetry.js +0 -93
  169. package/dist/ai/providers/openai/openai-call-telemetry.js.map +0 -1
  170. package/dist/ai/providers/openai/openai-chat-completions-stream.mapper.d.ts +0 -41
  171. package/dist/ai/providers/openai/openai-chat-completions-stream.mapper.d.ts.map +0 -1
  172. package/dist/ai/providers/openai/openai-chat-completions-stream.mapper.js +0 -173
  173. package/dist/ai/providers/openai/openai-chat-completions-stream.mapper.js.map +0 -1
  174. package/dist/ai/providers/openai/openai-chat-completions.engine.d.ts +0 -33
  175. package/dist/ai/providers/openai/openai-chat-completions.engine.d.ts.map +0 -1
  176. package/dist/ai/providers/openai/openai-chat-completions.engine.js +0 -165
  177. package/dist/ai/providers/openai/openai-chat-completions.engine.js.map +0 -1
  178. package/dist/ai/providers/openai/openai-chat-completions.mapper.d.ts +0 -42
  179. package/dist/ai/providers/openai/openai-chat-completions.mapper.d.ts.map +0 -1
  180. package/dist/ai/providers/openai/openai-chat-completions.mapper.js +0 -304
  181. package/dist/ai/providers/openai/openai-chat-completions.mapper.js.map +0 -1
  182. package/dist/ai/providers/openai/openai-embeddings.mapper.d.ts +0 -25
  183. package/dist/ai/providers/openai/openai-embeddings.mapper.d.ts.map +0 -1
  184. package/dist/ai/providers/openai/openai-embeddings.mapper.js +0 -81
  185. package/dist/ai/providers/openai/openai-embeddings.mapper.js.map +0 -1
  186. package/dist/ai/providers/openai/openai-errors.d.ts +0 -45
  187. package/dist/ai/providers/openai/openai-errors.d.ts.map +0 -1
  188. package/dist/ai/providers/openai/openai-errors.js +0 -247
  189. package/dist/ai/providers/openai/openai-errors.js.map +0 -1
  190. package/dist/ai/providers/openai/openai-family-guards.d.ts +0 -4
  191. package/dist/ai/providers/openai/openai-family-guards.d.ts.map +0 -1
  192. package/dist/ai/providers/openai/openai-family-guards.js +0 -19
  193. package/dist/ai/providers/openai/openai-family-guards.js.map +0 -1
  194. package/dist/ai/providers/openai/openai-images.mapper.d.ts +0 -23
  195. package/dist/ai/providers/openai/openai-images.mapper.d.ts.map +0 -1
  196. package/dist/ai/providers/openai/openai-images.mapper.js +0 -164
  197. package/dist/ai/providers/openai/openai-images.mapper.js.map +0 -1
  198. package/dist/ai/providers/openai/openai-model-catalog.d.ts +0 -36
  199. package/dist/ai/providers/openai/openai-model-catalog.d.ts.map +0 -1
  200. package/dist/ai/providers/openai/openai-model-catalog.js +0 -209
  201. package/dist/ai/providers/openai/openai-model-catalog.js.map +0 -1
  202. package/dist/ai/providers/openai/openai-realtime.mapper.d.ts +0 -18
  203. package/dist/ai/providers/openai/openai-realtime.mapper.d.ts.map +0 -1
  204. package/dist/ai/providers/openai/openai-realtime.mapper.js +0 -159
  205. package/dist/ai/providers/openai/openai-realtime.mapper.js.map +0 -1
  206. package/dist/ai/providers/openai/openai-redirect-guard.d.ts +0 -9
  207. package/dist/ai/providers/openai/openai-redirect-guard.d.ts.map +0 -1
  208. package/dist/ai/providers/openai/openai-redirect-guard.js +0 -61
  209. package/dist/ai/providers/openai/openai-redirect-guard.js.map +0 -1
  210. package/dist/ai/providers/openai/openai-responses.engine.d.ts +0 -50
  211. package/dist/ai/providers/openai/openai-responses.engine.d.ts.map +0 -1
  212. package/dist/ai/providers/openai/openai-responses.engine.js +0 -206
  213. package/dist/ai/providers/openai/openai-responses.engine.js.map +0 -1
  214. package/dist/ai/providers/openai/openai-responses.mapper.d.ts +0 -64
  215. package/dist/ai/providers/openai/openai-responses.mapper.d.ts.map +0 -1
  216. package/dist/ai/providers/openai/openai-responses.mapper.js +0 -580
  217. package/dist/ai/providers/openai/openai-responses.mapper.js.map +0 -1
  218. package/dist/ai/providers/openai/openai-stream.mapper.d.ts +0 -28
  219. package/dist/ai/providers/openai/openai-stream.mapper.d.ts.map +0 -1
  220. package/dist/ai/providers/openai/openai-stream.mapper.js +0 -139
  221. package/dist/ai/providers/openai/openai-stream.mapper.js.map +0 -1
  222. package/dist/ai/providers/openai/testing/chat-completions-fixtures.d.ts +0 -24
  223. package/dist/ai/providers/openai/testing/chat-completions-fixtures.d.ts.map +0 -1
  224. package/dist/ai/providers/openai/testing/chat-completions-fixtures.js +0 -72
  225. package/dist/ai/providers/openai/testing/chat-completions-fixtures.js.map +0 -1
  226. package/dist/ai/providers/openai/testing/conformance-responders.d.ts +0 -7
  227. package/dist/ai/providers/openai/testing/conformance-responders.d.ts.map +0 -1
  228. package/dist/ai/providers/openai/testing/conformance-responders.js +0 -64
  229. package/dist/ai/providers/openai/testing/conformance-responders.js.map +0 -1
  230. package/dist/ai/providers/openai/testing/openai-fixtures.d.ts +0 -52
  231. package/dist/ai/providers/openai/testing/openai-fixtures.d.ts.map +0 -1
  232. package/dist/ai/providers/openai/testing/openai-fixtures.js +0 -208
  233. package/dist/ai/providers/openai/testing/openai-fixtures.js.map +0 -1
  234. package/dist/ai/providers/openai/testing/openai-mock-transport.d.ts +0 -242
  235. package/dist/ai/providers/openai/testing/openai-mock-transport.d.ts.map +0 -1
  236. package/dist/ai/providers/openai/testing/openai-mock-transport.js +0 -523
  237. package/dist/ai/providers/openai/testing/openai-mock-transport.js.map +0 -1
  238. package/dist/ai/providers/openai-compatible/openai-compatible-settings.d.ts +0 -13
  239. package/dist/ai/providers/openai-compatible/openai-compatible-settings.d.ts.map +0 -1
  240. package/dist/ai/providers/openai-compatible/openai-compatible-settings.js +0 -29
  241. 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"}