@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.
Files changed (241) hide show
  1. package/CHANGELOG.md +12 -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,580 +0,0 @@
1
- "use strict";
2
- // =============================================================================
3
- // Our Responses types <-> OpenAI Responses API (issue #426, epic #419)
4
- // =============================================================================
5
- //
6
- // Pure functions, no I/O: `toOpenAiRequest` builds the SDK request body from
7
- // an `AiResponseRequest`, `fromOpenAiResponse` turns the SDK's `Response`
8
- // back into an `AiResponse`. The stream mapper reuses both, so a streamed
9
- // and a non-streamed call cannot disagree about what a response means.
10
- //
11
- // STORAGE-OBJECT PARTS (#441). A part naming a `storageObjectId` is mapped
12
- // from `storage` — what the adapter DELIVERED for it (a presigned URL, a
13
- // Files API `file_id`, or an inline `data:` URL) — by the object's MODALITY,
14
- // not the part's type: a stored image is an `input_image` even in a `file`
15
- // part. A storage part with no delivery is AI_INVALID_REQUEST (only the
16
- // runtime resolves storage objects; a direct caller cannot).
17
- //
18
- // REFUSED (AI_CAPABILITY_UNSUPPORTED):
19
- // - a reasoning `effort` for a model the classifier KNOWS does not reason
20
- // (or an effort it does not offer). An unclassified model (`null`) is
21
- // passed through — an administrator may have enabled it knowing more
22
- // than this table does, and OpenAI's own 400 is then the answer.
23
- //
24
- // HOSTED TOOLS (#442) map one-to-one onto OpenAI's tool entries (`web_search`,
25
- // `file_search`, `code_interpreter`, `image_generation`, `mcp`); their output
26
- // items come back as typed `hosted_tool_call`s, and a message's
27
- // `url_citation` annotations as `citations`. Whether a tool may be used at
28
- // all (model capability, admin switch, MCP host allowlist) is the FACADE's
29
- // gate, not this file's. An MCP tool's `headers` are copied into the body and
30
- // nowhere else — this file never logs or echoes them.
31
- //
32
- // A malformed request (a media part with neither `url` nor
33
- // `storageObjectId`, a non-text part in an assistant message) is
34
- // AI_INVALID_REQUEST instead: nothing a later story adds would make it valid.
35
- // =============================================================================
36
- Object.defineProperty(exports, "__esModule", { value: true });
37
- exports.storageObjectIdsOf = storageObjectIdsOf;
38
- exports.toOpenAiHostedTool = toOpenAiHostedTool;
39
- exports.toOpenAiRequest = toOpenAiRequest;
40
- exports.fromOpenAiOutputItem = fromOpenAiOutputItem;
41
- exports.fromOpenAiResponse = fromOpenAiResponse;
42
- const ai_error_1 = require("../../core/ai-error");
43
- const structured_output_1 = require("../../core/structured-output");
44
- const openai_errors_1 = require("./openai-errors");
45
- /**
46
- * The provider id stamped on the errors this file raises. Set for the
47
- * duration of one synchronous `toOpenAiRequest` call (#448) — every helper
48
- * below is synchronous, so no other call can observe it — rather than
49
- * threaded through a dozen signatures.
50
- */
51
- let currentProviderId = openai_errors_1.OPENAI_FAMILY.providerId;
52
- function unsupported(message, details) {
53
- return new ai_error_1.AiError('AI_CAPABILITY_UNSUPPORTED', message, {
54
- details: { provider: currentProviderId, ...details },
55
- });
56
- }
57
- function invalid(message, details = {}) {
58
- return new ai_error_1.AiError('AI_INVALID_REQUEST', message, {
59
- details: { provider: currentProviderId, ...details },
60
- });
61
- }
62
- // ---- request ----------------------------------------------------------------
63
- /** `data:` URLs carry inline bytes; OpenAI takes those as `file_data`, not `file_url`. */
64
- function isDataUrl(url) {
65
- return url.startsWith('data:');
66
- }
67
- function toFileContent(url, filename) {
68
- return isDataUrl(url)
69
- ? { type: 'input_file', file_data: url, filename: filename ?? 'file' }
70
- : { type: 'input_file', file_url: url, ...(filename ? { filename } : {}) };
71
- }
72
- /** A storage-object part, from what the adapter delivered for it. */
73
- function toStorageContentPart(part, storage) {
74
- const delivered = storage?.get(part.storageObjectId);
75
- if (!delivered || (!delivered.url && !delivered.fileId)) {
76
- throw invalid('A storage-object input was not resolved by the runtime.', { part: part.type });
77
- }
78
- const filename = (part.type === 'file' ? part.filename : undefined) ?? delivered.filename;
79
- if (delivered.modality === 'image') {
80
- const detail = (part.type === 'image' ? part.detail : undefined) ?? 'auto';
81
- return delivered.fileId
82
- ? { type: 'input_image', file_id: delivered.fileId, detail }
83
- : { type: 'input_image', image_url: delivered.url, detail };
84
- }
85
- return delivered.fileId
86
- ? { type: 'input_file', file_id: delivered.fileId }
87
- : toFileContent(delivered.url, filename);
88
- }
89
- function toContentPart(part, storage) {
90
- switch (part.type) {
91
- case 'text':
92
- return { type: 'input_text', text: part.text };
93
- case 'image':
94
- if (part.url) {
95
- return { type: 'input_image', image_url: part.url, detail: part.detail ?? 'auto' };
96
- }
97
- if (part.storageObjectId) {
98
- return toStorageContentPart({ ...part, storageObjectId: part.storageObjectId }, storage);
99
- }
100
- throw invalid('An image part needs a url or a storageObjectId.', { part: 'image' });
101
- case 'file':
102
- if (part.url) {
103
- return toFileContent(part.url, part.filename);
104
- }
105
- if (part.storageObjectId) {
106
- return toStorageContentPart({ ...part, storageObjectId: part.storageObjectId }, storage);
107
- }
108
- throw invalid('A file part needs a url or a storageObjectId.', { part: 'file' });
109
- }
110
- }
111
- /** Every storage object id `req` names, in order, each once. */
112
- function storageObjectIdsOf(req) {
113
- if (!Array.isArray(req.input))
114
- return [];
115
- const ids = new Set();
116
- for (const item of req.input) {
117
- if (item.type !== 'message')
118
- continue;
119
- for (const part of item.content) {
120
- if (part.type !== 'text' && !part.url && part.storageObjectId)
121
- ids.add(part.storageObjectId);
122
- }
123
- }
124
- return [...ids];
125
- }
126
- function toInputItem(item, storage) {
127
- if (item.type === 'function_call_output') {
128
- return { type: 'function_call_output', call_id: item.callId, output: item.output };
129
- }
130
- // A replayed call (#446) — the Responses API accepts the model's own
131
- // `function_call` items as input, so a full-history conversation works here
132
- // too, not only a chained one.
133
- if (item.type === 'function_call') {
134
- return { type: 'function_call', call_id: item.callId, name: item.name, arguments: item.arguments };
135
- }
136
- // A replayed reasoning item cannot be sent back: OpenAI needs its own item
137
- // id (and encrypted content), which the neutral contract does not carry. It
138
- // is dropped; chaining with `previous_response_id` is how OpenAI keeps its
139
- // reasoning across turns.
140
- if (item.type === 'reasoning') {
141
- return null;
142
- }
143
- // The Responses API reads an assistant turn as OUTPUT text, so it cannot
144
- // carry `input_*` parts; the string form is the one it accepts.
145
- if (item.role === 'assistant') {
146
- if (item.content.some((part) => part.type !== 'text')) {
147
- throw invalid('An assistant message may contain only text parts.', { role: 'assistant' });
148
- }
149
- const message = {
150
- type: 'message',
151
- role: 'assistant',
152
- content: item.content.map((part) => (part.type === 'text' ? part.text : '')).join(''),
153
- };
154
- return message;
155
- }
156
- const message = {
157
- type: 'message',
158
- role: item.role,
159
- content: item.content.map((part) => toContentPart(part, storage)),
160
- };
161
- return message;
162
- }
163
- /** One of our hosted tools as OpenAI's tool entry. */
164
- function toOpenAiHostedTool(tool) {
165
- switch (tool.type) {
166
- case 'web_search':
167
- return {
168
- type: 'web_search',
169
- ...(tool.searchContextSize ? { search_context_size: tool.searchContextSize } : {}),
170
- ...(tool.userLocation
171
- ? {
172
- user_location: {
173
- type: 'approximate',
174
- ...(tool.userLocation.country ? { country: tool.userLocation.country.toUpperCase() } : {}),
175
- ...(tool.userLocation.city ? { city: tool.userLocation.city } : {}),
176
- },
177
- }
178
- : {}),
179
- };
180
- case 'file_search':
181
- return {
182
- type: 'file_search',
183
- vector_store_ids: tool.vectorStoreIds,
184
- ...(tool.maxResults !== undefined ? { max_num_results: tool.maxResults } : {}),
185
- };
186
- case 'code_interpreter':
187
- // OpenAI requires a container; `auto` (a managed one per call) is the only kind modelled.
188
- return { type: 'code_interpreter', container: { type: 'auto' } };
189
- case 'image_generation':
190
- return {
191
- type: 'image_generation',
192
- ...(tool.size ? { size: tool.size } : {}),
193
- ...(tool.quality ? { quality: tool.quality } : {}),
194
- };
195
- case 'mcp':
196
- return {
197
- type: 'mcp',
198
- server_label: tool.serverLabel,
199
- server_url: tool.serverUrl,
200
- ...(tool.allowedTools ? { allowed_tools: tool.allowedTools } : {}),
201
- ...(tool.requireApproval ? { require_approval: tool.requireApproval } : {}),
202
- ...(tool.headers && Object.keys(tool.headers).length > 0 ? { headers: tool.headers } : {}),
203
- };
204
- default: {
205
- const unknown = tool;
206
- throw unsupported(`Hosted tool "${unknown.type}" is not supported.`, { tool: unknown.type });
207
- }
208
- }
209
- }
210
- function toTool(tool) {
211
- if (tool.type !== 'function') {
212
- return toOpenAiHostedTool(tool);
213
- }
214
- return {
215
- type: 'function',
216
- name: tool.name,
217
- description: tool.description,
218
- parameters: (0, structured_output_1.toJsonSchema)(tool.parameters),
219
- strict: tool.strict ?? true,
220
- };
221
- }
222
- function toToolChoice(choice) {
223
- return typeof choice === 'string' ? choice : { type: 'function', name: choice.name };
224
- }
225
- function toReasoning(req, caps) {
226
- const reasoning = req.reasoning;
227
- if (!reasoning || (reasoning.effort === undefined && reasoning.summary === undefined)) {
228
- return undefined;
229
- }
230
- const known = caps !== null;
231
- const reasons = !known || caps.capabilities.includes('reasoning');
232
- if (!reasons) {
233
- // Not a reasoning model: a summary is a harmless no-op, an effort is not.
234
- if (reasoning.effort !== undefined) {
235
- throw unsupported(`Model "${req.model}" does not support reasoning effort.`, {
236
- model: req.model,
237
- capability: 'reasoning',
238
- });
239
- }
240
- return undefined;
241
- }
242
- if (reasoning.effort !== undefined &&
243
- known &&
244
- caps.reasoningEfforts &&
245
- !caps.reasoningEfforts.includes(reasoning.effort)) {
246
- throw unsupported(`Model "${req.model}" does not offer reasoning effort "${reasoning.effort}".`, {
247
- model: req.model,
248
- capability: 'reasoning',
249
- effort: reasoning.effort,
250
- });
251
- }
252
- return {
253
- ...(reasoning.effort !== undefined ? { effort: reasoning.effort } : {}),
254
- ...(reasoning.summary !== undefined ? { summary: reasoning.summary } : {}),
255
- };
256
- }
257
- /**
258
- * Builds the OpenAI request body for `req`.
259
- *
260
- * `caps` is the model's capabilities as classified (or `null` when
261
- * unclassified); it only gates `reasoning`. `storage` is what the adapter
262
- * delivered for each storage-object part (#441). `providerOptions.openai` is
263
- * shallow-merged LAST — the escape hatch for `background`, `store`,
264
- * `service_tier`, ... — except `stream`, which belongs to the port.
265
- *
266
- * Throws `AiError` (never an SDK error): see the file header.
267
- */
268
- function toOpenAiRequest(req, caps, storage, family = openai_errors_1.OPENAI_FAMILY) {
269
- const previous = currentProviderId;
270
- currentProviderId = family.providerId;
271
- try {
272
- return buildOpenAiRequest(req, caps, storage, family);
273
- }
274
- finally {
275
- currentProviderId = previous;
276
- }
277
- }
278
- function buildOpenAiRequest(req, caps, storage, family) {
279
- const body = {
280
- model: req.model,
281
- input: typeof req.input === 'string'
282
- ? req.input
283
- : req.input
284
- .map((item) => toInputItem(item, storage))
285
- .filter((item) => item !== null),
286
- };
287
- if (req.instructions !== undefined)
288
- body.instructions = req.instructions;
289
- if (req.tools && req.tools.length > 0)
290
- body.tools = req.tools.map(toTool);
291
- if (req.toolChoice !== undefined)
292
- body.tool_choice = toToolChoice(req.toolChoice);
293
- if (req.structuredOutput) {
294
- body.text = {
295
- format: {
296
- type: 'json_schema',
297
- name: req.structuredOutput.name,
298
- schema: (0, structured_output_1.toJsonSchema)(req.structuredOutput.schema),
299
- strict: req.structuredOutput.strict ?? true,
300
- },
301
- };
302
- }
303
- const reasoning = toReasoning(req, caps);
304
- if (reasoning)
305
- body.reasoning = reasoning;
306
- if (req.maxOutputTokens !== undefined)
307
- body.max_output_tokens = req.maxOutputTokens;
308
- if (req.temperature !== undefined)
309
- body.temperature = req.temperature;
310
- if (req.previousResponseId !== undefined)
311
- body.previous_response_id = req.previousResponseId;
312
- if (req.metadata !== undefined)
313
- body.metadata = req.metadata;
314
- const { stream: _stream, ...escapeHatch } = req.providerOptions?.[family.providerId] ?? {};
315
- const merged = { ...body, ...escapeHatch };
316
- // Without this `include`, OpenAI omits `action.sources` from every
317
- // `web_search_call`, so the hosted call reports no sources at all.
318
- // Merged AFTER the escape hatch so a caller's own `include` adds to it
319
- // rather than silently dropping it.
320
- if (req.tools?.some((tool) => tool.type === 'web_search')) {
321
- merged.include = withInclude(merged.include, WEB_SEARCH_SOURCES_INCLUDE);
322
- }
323
- return merged;
324
- }
325
- const WEB_SEARCH_SOURCES_INCLUDE = 'web_search_call.action.sources';
326
- /** `existing` plus `entry`, deduplicated, order kept. */
327
- function withInclude(existing, entry) {
328
- const list = Array.isArray(existing) ? existing : [];
329
- return list.includes(entry) ? [...list] : [...list, entry];
330
- }
331
- // ---- response ---------------------------------------------------------------
332
- /** A message item: its text parts concatenated, and their url citations re-based onto that text. */
333
- function fromOpenAiMessage(item) {
334
- let text = '';
335
- const citations = [];
336
- for (const part of item.content) {
337
- if (part.type !== 'output_text')
338
- continue;
339
- const offset = text.length;
340
- for (const annotation of part.annotations ?? []) {
341
- if (annotation.type !== 'url_citation')
342
- continue;
343
- citations.push({
344
- url: annotation.url,
345
- title: annotation.title,
346
- startIndex: annotation.start_index + offset,
347
- endIndex: annotation.end_index + offset,
348
- });
349
- }
350
- text += part.text;
351
- }
352
- return citations.length > 0 ? { type: 'message', text, citations } : { type: 'message', text };
353
- }
354
- const IMAGE_MIME = { png: 'image/png', jpeg: 'image/jpeg', webp: 'image/webp' };
355
- /** An MCP error, as one line: its kind and code — a server's own message may echo request detail. */
356
- function mcpError(error) {
357
- if (!error)
358
- return null;
359
- if (typeof error === 'string')
360
- return error;
361
- const { type, code } = error;
362
- return [typeof type === 'string' ? type : 'mcp_error', typeof code === 'number' ? String(code) : '']
363
- .filter(Boolean)
364
- .join(' ');
365
- }
366
- function withId(item, id) {
367
- return typeof id === 'string' && id ? { ...item, id } : item;
368
- }
369
- /**
370
- * The URLs a `web_search_call` actually returned: a `search` action's
371
- * `sources` (present only when the request asked for
372
- * `web_search_call.action.sources`), and an `open_page` action's `url` — a
373
- * page the tool opened is one the search surfaced. An entry without a string
374
- * `url` is skipped, never guessed at.
375
- */
376
- function webSearchSources(action) {
377
- if (!action)
378
- return [];
379
- const urls = [];
380
- if (Array.isArray(action.sources)) {
381
- for (const source of action.sources) {
382
- const url = source?.url;
383
- if (typeof url === 'string' && url.length > 0)
384
- urls.push(url);
385
- }
386
- }
387
- if (action.type === 'open_page' && typeof action.url === 'string' && action.url.length > 0) {
388
- urls.push(action.url);
389
- }
390
- return [...new Set(urls)].map((url) => ({ url }));
391
- }
392
- /**
393
- * Maps one SDK output item. `null` for an item type this contract does not
394
- * model (it is dropped, never guessed at).
395
- *
396
- * An `image_generation_call`'s base64 `result` is decoded into BYTES here
397
- * (`result.image`); the facade's hosted-output seam removes them before the
398
- * response leaves the runtime (see `AiImageGenerationCallResult`).
399
- */
400
- function fromOpenAiOutputItem(item) {
401
- switch (item.type) {
402
- case 'message':
403
- return fromOpenAiMessage(item);
404
- case 'reasoning':
405
- return { type: 'reasoning', summary: item.summary.map((part) => part.text) };
406
- case 'function_call':
407
- return {
408
- type: 'function_call',
409
- callId: item.call_id,
410
- name: item.name,
411
- arguments: item.arguments,
412
- };
413
- case 'web_search_call': {
414
- const action = item.action;
415
- const queries = action?.queries ?? (action?.query ? [action.query] : []);
416
- return withId({
417
- type: 'hosted_tool_call',
418
- tool: 'web_search',
419
- status: item.status,
420
- result: { queries, sources: webSearchSources(action) },
421
- }, item.id);
422
- }
423
- case 'file_search_call':
424
- return withId({
425
- type: 'hosted_tool_call',
426
- tool: 'file_search',
427
- status: item.status,
428
- result: {
429
- queries: item.queries ?? [],
430
- results: (item.results ?? []).map((hit) => ({
431
- ...(hit.file_id ? { fileId: hit.file_id } : {}),
432
- ...(hit.filename ? { filename: hit.filename } : {}),
433
- ...(typeof hit.score === 'number' ? { score: hit.score } : {}),
434
- ...(hit.text ? { text: hit.text } : {}),
435
- })),
436
- },
437
- }, item.id);
438
- case 'code_interpreter_call':
439
- return withId({
440
- type: 'hosted_tool_call',
441
- tool: 'code_interpreter',
442
- status: item.status,
443
- result: {
444
- code: item.code ?? null,
445
- containerId: item.container_id,
446
- outputs: (item.outputs ?? []).map((output) => output.type === 'logs'
447
- ? { type: 'logs', logs: output.logs }
448
- : { type: 'image', url: output.url }),
449
- },
450
- }, item.id);
451
- case 'image_generation_call': {
452
- const format = item.output_format ?? 'png';
453
- const mimeType = IMAGE_MIME[format] ?? 'image/png';
454
- return withId({
455
- type: 'hosted_tool_call',
456
- tool: 'image_generation',
457
- status: item.status,
458
- result: {
459
- storageObjectId: null,
460
- mimeType,
461
- ...(item.revised_prompt ? { revisedPrompt: item.revised_prompt } : {}),
462
- ...(item.size ? { size: item.size } : {}),
463
- ...(item.quality ? { quality: item.quality } : {}),
464
- ...(item.result
465
- ? { image: { data: new Uint8Array(Buffer.from(item.result, 'base64')), mimeType } }
466
- : {}),
467
- },
468
- }, item.id);
469
- }
470
- case 'mcp_call':
471
- case 'mcp_list_tools':
472
- case 'mcp_approval_request': {
473
- let result;
474
- if (item.type === 'mcp_call') {
475
- result = {
476
- kind: 'call',
477
- serverLabel: item.server_label,
478
- name: item.name,
479
- arguments: item.arguments,
480
- output: item.output ?? null,
481
- error: mcpError(item.error),
482
- };
483
- }
484
- else if (item.type === 'mcp_list_tools') {
485
- result = {
486
- kind: 'list_tools',
487
- serverLabel: item.server_label,
488
- tools: item.tools.map((tool) => ({
489
- name: tool.name,
490
- ...(tool.description ? { description: tool.description } : {}),
491
- })),
492
- error: item.error ?? null,
493
- };
494
- }
495
- else {
496
- result = { kind: 'approval_request', serverLabel: item.server_label, name: item.name, arguments: item.arguments };
497
- }
498
- const status = item.type === 'mcp_call'
499
- ? item.status ?? (item.error ? 'failed' : 'completed')
500
- : item.type === 'mcp_list_tools'
501
- ? item.error
502
- ? 'failed'
503
- : 'completed'
504
- : 'awaiting_approval';
505
- return withId({ type: 'hosted_tool_call', tool: 'mcp', status, result }, item.id);
506
- }
507
- default:
508
- return null;
509
- }
510
- }
511
- function hasRefusal(output) {
512
- return output.some((item) => item.type === 'message' && item.content.some((part) => part.type === 'refusal'));
513
- }
514
- function finishReasonOf(resp, output) {
515
- if (resp.status === 'failed' || resp.status === 'cancelled')
516
- return 'error';
517
- if (resp.status === 'incomplete') {
518
- return resp.incomplete_details?.reason === 'content_filter' ? 'content_filter' : 'length';
519
- }
520
- if (hasRefusal(resp.output))
521
- return 'content_filter';
522
- if (output.some((item) => item.type === 'function_call'))
523
- return 'tool_calls';
524
- return 'stop';
525
- }
526
- function usageOf(resp) {
527
- const usage = resp.usage;
528
- if (!usage)
529
- return {};
530
- const out = {
531
- inputTokens: usage.input_tokens,
532
- outputTokens: usage.output_tokens,
533
- };
534
- const reasoning = usage.output_tokens_details?.reasoning_tokens;
535
- const cached = usage.input_tokens_details?.cached_tokens;
536
- if (typeof reasoning === 'number')
537
- out.reasoningTokens = reasoning;
538
- if (typeof cached === 'number')
539
- out.cachedInputTokens = cached;
540
- return out;
541
- }
542
- /**
543
- * Maps a finished SDK `Response` to an `AiResponse`.
544
- *
545
- * A `failed` response is an error, not a result: it throws the `AiError` its
546
- * body's error code means. When the request asked for structured output and
547
- * the model finished its turn (no pending tool call), the text is validated
548
- * with `parseStructured` — invalid JSON or a schema mismatch throws
549
- * `AI_STRUCTURED_OUTPUT_INVALID`.
550
- */
551
- function fromOpenAiResponse(resp, opts) {
552
- const providerRequestId = opts.providerRequestId ?? undefined;
553
- const family = opts.family ?? openai_errors_1.OPENAI_FAMILY;
554
- if (resp.status === 'failed') {
555
- throw (0, openai_errors_1.mapOpenAiResponseFailure)(resp.error, providerRequestId, family);
556
- }
557
- const output = resp.output
558
- .map(fromOpenAiOutputItem)
559
- .filter((item) => item !== null);
560
- const outputText = output
561
- .map((item) => (item.type === 'message' ? item.text : ''))
562
- .join('');
563
- const finishReason = finishReasonOf(resp, output);
564
- const result = {
565
- id: resp.id,
566
- provider: family.providerId,
567
- model: resp.model,
568
- output,
569
- outputText,
570
- usage: usageOf(resp),
571
- finishReason,
572
- };
573
- if (providerRequestId)
574
- result.providerRequestId = providerRequestId;
575
- if (opts.request.structuredOutput && finishReason !== 'tool_calls') {
576
- result.parsed = (0, structured_output_1.parseStructured)(opts.request.structuredOutput.schema, outputText);
577
- }
578
- return result;
579
- }
580
- //# sourceMappingURL=openai-responses.mapper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openai-responses.mapper.js","sourceRoot":"","sources":["../../../../src/ai/providers/openai/openai-responses.mapper.ts"],"names":[],"mappings":"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"}
@@ -1,28 +0,0 @@
1
- import type { ResponseStreamEvent } from 'openai/resources/responses/responses';
2
- import { AiError } from '../../core/ai-error';
3
- import type { AiResponseRequest, AiStreamEvent } from '../../core/types/responses.types';
4
- import { type OpenAiFamily } from './openai-errors';
5
- export interface OpenAiStreamMapperOptions {
6
- request: AiResponseRequest;
7
- providerRequestId?: string | null;
8
- /** Which OpenAI-family provider is streaming (#448); OpenAI by default. */
9
- family?: OpenAiFamily;
10
- }
11
- export declare class OpenAiStreamMapper {
12
- private readonly opts;
13
- private readonly callIds;
14
- private startedFlag;
15
- private terminalFlag;
16
- constructor(opts: OpenAiStreamMapperOptions);
17
- private get family();
18
- /** Whether `response.created` has been emitted. */
19
- get started(): boolean;
20
- /** Whether a terminal event (`response.completed` or `error`) has been emitted. */
21
- get terminated(): boolean;
22
- /** Maps one SDK event to zero or more of ours. Nothing is emitted after a terminal event. */
23
- map(event: ResponseStreamEvent): AiStreamEvent[];
24
- /** Ends the stream with an `error` event for `err` (idempotent). */
25
- fail(err: AiError): AiStreamEvent[];
26
- private complete;
27
- }
28
- //# sourceMappingURL=openai-stream.mapper.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openai-stream.mapper.d.ts","sourceRoot":"","sources":["../../../../src/ai/providers/openai/openai-stream.mapper.ts"],"names":[],"mappings":"AAyCA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAEhF,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACzF,OAAO,EAIL,KAAK,YAAY,EAElB,MAAM,iBAAiB,CAAC;AAGzB,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,2EAA2E;IAC3E,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAMD,qBAAa,kBAAkB;IAKjB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAJjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IACrD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAS;gBAEA,IAAI,EAAE,yBAAyB;IAE5D,OAAO,KAAK,MAAM,GAEjB;IAED,mDAAmD;IACnD,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,mFAAmF;IACnF,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,6FAA6F;IAC7F,GAAG,CAAC,KAAK,EAAE,mBAAmB,GAAG,aAAa,EAAE;IA8DhD,oEAAoE;IACpE,IAAI,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,EAAE;IAOnC,OAAO,CAAC,QAAQ;CAiBjB"}