@mate-academy/llm-gateway 7.3.0-canary.0 → 7.4.0

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 (74) hide show
  1. package/README.md +31 -0
  2. package/dist/LLMService.constants.d.ts +3463 -2279
  3. package/dist/LLMService.typedefs.d.ts +44 -17
  4. package/dist/LLMService.typedefs.js.map +1 -1
  5. package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.constants.d.ts +44 -0
  6. package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.constants.js +17 -8
  7. package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.constants.js.map +1 -1
  8. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.d.ts +15 -0
  9. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.js +116 -25
  10. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.js.map +1 -1
  11. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAICompletion.service.d.ts +1 -2
  12. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAICompletion.service.js +0 -55
  13. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAICompletion.service.js.map +1 -1
  14. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAITextToSpeech.service.d.ts +1 -2
  15. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAITextToSpeech.service.js +0 -51
  16. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAITextToSpeech.service.js.map +1 -1
  17. package/dist/providers/LLMAPI/LLMAPI.constants.d.ts +6714 -4992
  18. package/dist/providers/LLMAPI/LLMAPI.constants.js +162 -5
  19. package/dist/providers/LLMAPI/LLMAPI.constants.js.map +1 -1
  20. package/dist/providers/LLMAPI/LLMAPI.typedefs.d.ts +23 -1
  21. package/dist/providers/LLMAPI/LLMAPI.typedefs.js +21 -0
  22. package/dist/providers/LLMAPI/LLMAPI.typedefs.js.map +1 -1
  23. package/dist/providers/LLMAPI/LLMAPI.voices.d.ts +344 -0
  24. package/dist/providers/LLMAPI/LLMAPI.voices.js +697 -0
  25. package/dist/providers/LLMAPI/LLMAPI.voices.js.map +1 -0
  26. package/dist/providers/LLMAPI/index.d.ts +1 -0
  27. package/dist/providers/LLMAPI/index.js +1 -0
  28. package/dist/providers/LLMAPI/index.js.map +1 -1
  29. package/dist/providers/LLMAPI/services/LLMAPIAssistance.service.d.ts +7 -0
  30. package/dist/providers/LLMAPI/services/LLMAPIAssistance.service.js +57 -15
  31. package/dist/providers/LLMAPI/services/LLMAPIAssistance.service.js.map +1 -1
  32. package/dist/providers/LLMAPI/services/LLMAPISpeechToText.service.d.ts +17 -0
  33. package/dist/providers/LLMAPI/services/LLMAPISpeechToText.service.js +34 -0
  34. package/dist/providers/LLMAPI/services/LLMAPISpeechToText.service.js.map +1 -0
  35. package/dist/providers/LLMAPI/services/LLMAPITextToSpeech.service.d.ts +20 -0
  36. package/dist/providers/LLMAPI/services/LLMAPITextToSpeech.service.js +36 -0
  37. package/dist/providers/LLMAPI/services/LLMAPITextToSpeech.service.js.map +1 -0
  38. package/dist/providers/LLMAPI/services/index.d.ts +2 -0
  39. package/dist/providers/LLMAPI/services/index.js +2 -0
  40. package/dist/providers/LLMAPI/services/index.js.map +1 -1
  41. package/dist/providers/OpenAI/OpenAI.constants.d.ts +20 -30
  42. package/dist/providers/OpenAI/OpenAI.constants.js +6 -12
  43. package/dist/providers/OpenAI/OpenAI.constants.js.map +1 -1
  44. package/dist/providers/OpenAI/services/OpenAIAssistance.service.d.ts +1 -0
  45. package/dist/providers/OpenAI/services/OpenAIAssistance.service.js +16 -1
  46. package/dist/providers/OpenAI/services/OpenAIAssistance.service.js.map +1 -1
  47. package/dist/providers/OpenAI/services/OpenAISpeechToText.service.d.ts +11 -4
  48. package/dist/providers/OpenAI/services/OpenAISpeechToText.service.js +24 -70
  49. package/dist/providers/OpenAI/services/OpenAISpeechToText.service.js.map +1 -1
  50. package/dist/providers/OpenAI/services/OpenAITextToSpeech.service.d.ts +7 -5
  51. package/dist/providers/OpenAI/services/OpenAITextToSpeech.service.js +15 -111
  52. package/dist/providers/OpenAI/services/OpenAITextToSpeech.service.js.map +1 -1
  53. package/dist/providers/OpenAICompatible/OpenAICompatibleCompletion.service.d.ts +1 -2
  54. package/dist/providers/OpenAICompatible/OpenAICompatibleCompletion.service.js +0 -51
  55. package/dist/providers/OpenAICompatible/OpenAICompatibleCompletion.service.js.map +1 -1
  56. package/dist/providers/OpenAICompatible/OpenAICompatibleSpeechToText.service.d.ts +22 -0
  57. package/dist/providers/OpenAICompatible/OpenAICompatibleSpeechToText.service.js +79 -0
  58. package/dist/providers/OpenAICompatible/OpenAICompatibleSpeechToText.service.js.map +1 -0
  59. package/dist/providers/OpenAICompatible/OpenAICompatibleTextToSpeech.service.d.ts +22 -0
  60. package/dist/providers/OpenAICompatible/OpenAICompatibleTextToSpeech.service.js +67 -0
  61. package/dist/providers/OpenAICompatible/OpenAICompatibleTextToSpeech.service.js.map +1 -0
  62. package/dist/services/LLMCompletionService.abstract.d.ts +1 -2
  63. package/dist/services/LLMCompletionService.abstract.js.map +1 -1
  64. package/dist/services/LLMTextToSpeechService.abstract.d.ts +1 -2
  65. package/dist/services/LLMTextToSpeechService.abstract.js.map +1 -1
  66. package/dist/utilities/tools/LLMTool.d.ts +2 -2
  67. package/dist/utilities/tools/LLMTool.js.map +1 -1
  68. package/dist/utilities/tools/index.d.ts +1 -0
  69. package/dist/utilities/tools/index.js +3 -1
  70. package/dist/utilities/tools/index.js.map +1 -1
  71. package/dist/utilities/tools/normalizeToolResult.d.ts +15 -0
  72. package/dist/utilities/tools/normalizeToolResult.js +18 -0
  73. package/dist/utilities/tools/normalizeToolResult.js.map +1 -0
  74. package/package.json +1 -1
package/README.md CHANGED
@@ -943,9 +943,40 @@ Interface for chat/assistance services with file handling capabilities.
943
943
  - `chatId`: The ID of the chat to send the message to
944
944
  - `storageId`: Optional storage ID to use for file context
945
945
  - `schema`: Optional schema for structured output (supports type-safe JSON responses)
946
+ - `tools`: Optional array of tool definitions (built with `LLMTool.create`) the model may call during the turn
947
+ - `maxToolIterations`: Optional cap on the number of tool-call rounds
946
948
  - `reporterContext`: Context data passed to reporter for metrics tracking (required if reporter is configured with a defined context type)
947
949
  - `countTokens(messages, model)`: Count tokens in messages for context management
948
950
 
951
+ #### Tool-returned Images
952
+
953
+ A tool's `execute` may return either a plain `string` (text-only, the legacy
954
+ behavior) or an `LLMStructuredToolResult` to surface images the model can
955
+ actually see:
956
+
957
+ ```typescript
958
+ const screenshotTool = LLMTool.create({
959
+ name: 'get_node_screenshot',
960
+ description: 'Renders a screenshot of a design node.',
961
+ parameters: LLMSchema.object({ nodeId: LLMSchema.string() }),
962
+ execute: async ({ nodeId }) => ({
963
+ content: `Rendered a screenshot of node ${nodeId}.`,
964
+ images: [{ url: imageUrl, detail: 'high', label: `Node ${nodeId}` }],
965
+ }),
966
+ });
967
+ ```
968
+
969
+ `content` always becomes the tool/function-result message. Each provider
970
+ then surfaces `images` the way its API allows:
971
+
972
+ - **OpenAI** (Responses API) and **Gemini 3** (`multimodalToolResults`
973
+ capability) embed the images natively in the function-result message.
974
+ - **LLMAPI** (Chat Completions) and **Gemini 2.5** cannot carry images in a
975
+ tool-result message, so the gateway appends the images as a separate user
976
+ message right after the tool results.
977
+
978
+ `LLMToolResultImage.url` accepts an `https` URL or a base64 `data:` URL.
979
+
949
980
  ### LLMSpeechToTextService
950
981
 
951
982
  Interface for converting speech audio to text.