@mate-academy/llm-gateway 8.8.2 → 8.8.3

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 (352) hide show
  1. package/dist/LLMError.d.ts +12 -0
  2. package/dist/LLMError.js +36 -0
  3. package/dist/LLMError.js.map +1 -0
  4. package/dist/LLMGateway.d.ts +30 -0
  5. package/dist/LLMGateway.js +56 -0
  6. package/dist/LLMGateway.js.map +1 -0
  7. package/dist/LLMGateway.typedefs.d.ts +5 -0
  8. package/dist/LLMGateway.typedefs.js +3 -0
  9. package/dist/LLMGateway.typedefs.js.map +1 -0
  10. package/dist/LLMService.constants.d.ts +26309 -0
  11. package/dist/LLMService.constants.js +35 -0
  12. package/dist/LLMService.constants.js.map +1 -0
  13. package/dist/LLMService.factory.d.ts +71 -0
  14. package/dist/LLMService.factory.js +102 -0
  15. package/dist/LLMService.factory.js.map +1 -0
  16. package/dist/LLMService.typedefs.d.ts +655 -0
  17. package/dist/LLMService.typedefs.js +72 -0
  18. package/dist/LLMService.typedefs.js.map +1 -0
  19. package/dist/advanced.d.ts +11 -0
  20. package/dist/advanced.js +32 -0
  21. package/dist/advanced.js.map +1 -0
  22. package/dist/client/LLMAgent.d.ts +76 -0
  23. package/dist/client/LLMAgent.js +36 -0
  24. package/dist/client/LLMAgent.js.map +1 -0
  25. package/dist/client/LLMClientEngine.d.ts +110 -0
  26. package/dist/client/LLMClientEngine.js +406 -0
  27. package/dist/client/LLMClientEngine.js.map +1 -0
  28. package/dist/client/agentRun.typedefs.d.ts +200 -0
  29. package/dist/client/agentRun.typedefs.js +25 -0
  30. package/dist/client/agentRun.typedefs.js.map +1 -0
  31. package/dist/client/agentRunner.d.ts +161 -0
  32. package/dist/client/agentRunner.js +517 -0
  33. package/dist/client/agentRunner.js.map +1 -0
  34. package/dist/client/codegen/fetchPromptRecords.d.ts +14 -0
  35. package/dist/client/codegen/fetchPromptRecords.js +90 -0
  36. package/dist/client/codegen/fetchPromptRecords.js.map +1 -0
  37. package/dist/client/codegen/generateSnapshot.d.ts +19 -0
  38. package/dist/client/codegen/generateSnapshot.js +28 -0
  39. package/dist/client/codegen/generateSnapshot.js.map +1 -0
  40. package/dist/client/codegen/index.d.ts +6 -0
  41. package/dist/client/codegen/index.js +23 -0
  42. package/dist/client/codegen/index.js.map +1 -0
  43. package/dist/client/codegen/promptCatalog.typedefs.d.ts +51 -0
  44. package/dist/client/codegen/promptCatalog.typedefs.js +3 -0
  45. package/dist/client/codegen/promptCatalog.typedefs.js.map +1 -0
  46. package/dist/client/codegen/promptName.d.ts +8 -0
  47. package/dist/client/codegen/promptName.js +21 -0
  48. package/dist/client/codegen/promptName.js.map +1 -0
  49. package/dist/client/codegen/renderSnapshot.constants.d.ts +7 -0
  50. package/dist/client/codegen/renderSnapshot.constants.js +16 -0
  51. package/dist/client/codegen/renderSnapshot.constants.js.map +1 -0
  52. package/dist/client/codegen/renderSnapshot.d.ts +9 -0
  53. package/dist/client/codegen/renderSnapshot.js +109 -0
  54. package/dist/client/codegen/renderSnapshot.js.map +1 -0
  55. package/dist/client/codegen/renderSnapshot.typedefs.d.ts +19 -0
  56. package/dist/client/codegen/renderSnapshot.typedefs.js +3 -0
  57. package/dist/client/codegen/renderSnapshot.typedefs.js.map +1 -0
  58. package/dist/client/coerceToolResult.d.ts +10 -0
  59. package/dist/client/coerceToolResult.js +38 -0
  60. package/dist/client/coerceToolResult.js.map +1 -0
  61. package/dist/client/createLLMClient.d.ts +10 -0
  62. package/dist/client/createLLMClient.js +47 -0
  63. package/dist/client/createLLMClient.js.map +1 -0
  64. package/dist/client/defineLLMPrompts.d.ts +34 -0
  65. package/dist/client/defineLLMPrompts.js +13 -0
  66. package/dist/client/defineLLMPrompts.js.map +1 -0
  67. package/dist/client/errors.d.ts +57 -0
  68. package/dist/client/errors.js +70 -0
  69. package/dist/client/errors.js.map +1 -0
  70. package/dist/client/index.d.ts +13 -0
  71. package/dist/client/index.js +30 -0
  72. package/dist/client/index.js.map +1 -0
  73. package/dist/client/llmClient.typedefs.d.ts +265 -0
  74. package/dist/client/llmClient.typedefs.js +11 -0
  75. package/dist/client/llmClient.typedefs.js.map +1 -0
  76. package/dist/client/llmConfig.schema.d.ts +53 -0
  77. package/dist/client/llmConfig.schema.js +49 -0
  78. package/dist/client/llmConfig.schema.js.map +1 -0
  79. package/dist/client/plainMessages.d.ts +12 -0
  80. package/dist/client/plainMessages.js +19 -0
  81. package/dist/client/plainMessages.js.map +1 -0
  82. package/dist/client/promptClientPort.typedefs.d.ts +60 -0
  83. package/dist/client/promptClientPort.typedefs.js +3 -0
  84. package/dist/client/promptClientPort.typedefs.js.map +1 -0
  85. package/dist/client/promptRegistry.runtime.d.ts +121 -0
  86. package/dist/client/promptRegistry.runtime.js +264 -0
  87. package/dist/client/promptRegistry.runtime.js.map +1 -0
  88. package/dist/client/promptSnapshot.typedefs.d.ts +55 -0
  89. package/dist/client/promptSnapshot.typedefs.js +3 -0
  90. package/dist/client/promptSnapshot.typedefs.js.map +1 -0
  91. package/dist/client/promptVariables.d.ts +7 -0
  92. package/dist/client/promptVariables.js +13 -0
  93. package/dist/client/promptVariables.js.map +1 -0
  94. package/dist/client/snapshotRuntime.d.ts +17 -0
  95. package/dist/client/snapshotRuntime.js +42 -0
  96. package/dist/client/snapshotRuntime.js.map +1 -0
  97. package/dist/client/snapshotRuntime.typedefs.d.ts +13 -0
  98. package/dist/client/snapshotRuntime.typedefs.js +3 -0
  99. package/dist/client/snapshotRuntime.typedefs.js.map +1 -0
  100. package/dist/client/validationGate.d.ts +24 -0
  101. package/dist/client/validationGate.js +54 -0
  102. package/dist/client/validationGate.js.map +1 -0
  103. package/dist/codegen.d.ts +6 -0
  104. package/dist/codegen.js +23 -0
  105. package/dist/codegen.js.map +1 -0
  106. package/dist/index.d.ts +10 -0
  107. package/dist/index.js +27 -0
  108. package/dist/index.js.map +1 -0
  109. package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.constants.d.ts +873 -0
  110. package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.constants.js +269 -0
  111. package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.constants.js.map +1 -0
  112. package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.entity.d.ts +24 -0
  113. package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.entity.js +210 -0
  114. package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.entity.js.map +1 -0
  115. package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.typedefs.d.ts +22 -0
  116. package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.typedefs.js +20 -0
  117. package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.typedefs.js.map +1 -0
  118. package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAIService.factory.d.ts +6 -0
  119. package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAIService.factory.js +18 -0
  120. package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAIService.factory.js.map +1 -0
  121. package/dist/providers/GoogleGenerativeAI/index.d.ts +5 -0
  122. package/dist/providers/GoogleGenerativeAI/index.js +22 -0
  123. package/dist/providers/GoogleGenerativeAI/index.js.map +1 -0
  124. package/dist/providers/GoogleGenerativeAI/schemas/GoogleSchemaAdapter.d.ts +12 -0
  125. package/dist/providers/GoogleGenerativeAI/schemas/GoogleSchemaAdapter.js +72 -0
  126. package/dist/providers/GoogleGenerativeAI/schemas/GoogleSchemaAdapter.js.map +1 -0
  127. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.d.ts +71 -0
  128. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.js +876 -0
  129. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.js.map +1 -0
  130. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAICompletion.service.d.ts +25 -0
  131. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAICompletion.service.js +216 -0
  132. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAICompletion.service.js.map +1 -0
  133. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAISpeechToText.service.d.ts +10 -0
  134. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAISpeechToText.service.js +136 -0
  135. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAISpeechToText.service.js.map +1 -0
  136. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAITextToSpeech.service.d.ts +11 -0
  137. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAITextToSpeech.service.js +97 -0
  138. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAITextToSpeech.service.js.map +1 -0
  139. package/dist/providers/GoogleGenerativeAI/services/index.d.ts +4 -0
  140. package/dist/providers/GoogleGenerativeAI/services/index.js +21 -0
  141. package/dist/providers/GoogleGenerativeAI/services/index.js.map +1 -0
  142. package/dist/providers/LLMAPI/LLMAPI.constants.d.ts +35832 -0
  143. package/dist/providers/LLMAPI/LLMAPI.constants.js +8601 -0
  144. package/dist/providers/LLMAPI/LLMAPI.constants.js.map +1 -0
  145. package/dist/providers/LLMAPI/LLMAPI.entity.d.ts +6 -0
  146. package/dist/providers/LLMAPI/LLMAPI.entity.js +48 -0
  147. package/dist/providers/LLMAPI/LLMAPI.entity.js.map +1 -0
  148. package/dist/providers/LLMAPI/LLMAPI.typedefs.d.ts +516 -0
  149. package/dist/providers/LLMAPI/LLMAPI.typedefs.js +564 -0
  150. package/dist/providers/LLMAPI/LLMAPI.typedefs.js.map +1 -0
  151. package/dist/providers/LLMAPI/LLMAPI.voices.d.ts +376 -0
  152. package/dist/providers/LLMAPI/LLMAPI.voices.js +739 -0
  153. package/dist/providers/LLMAPI/LLMAPI.voices.js.map +1 -0
  154. package/dist/providers/LLMAPI/LLMAPIService.factory.d.ts +6 -0
  155. package/dist/providers/LLMAPI/LLMAPIService.factory.js +19 -0
  156. package/dist/providers/LLMAPI/LLMAPIService.factory.js.map +1 -0
  157. package/dist/providers/LLMAPI/index.d.ts +7 -0
  158. package/dist/providers/LLMAPI/index.js +24 -0
  159. package/dist/providers/LLMAPI/index.js.map +1 -0
  160. package/dist/providers/LLMAPI/schemas/LLMAPISchemaAdapter.d.ts +3 -0
  161. package/dist/providers/LLMAPI/schemas/LLMAPISchemaAdapter.js +8 -0
  162. package/dist/providers/LLMAPI/schemas/LLMAPISchemaAdapter.js.map +1 -0
  163. package/dist/providers/LLMAPI/services/LLMAPIAssistance.service.d.ts +76 -0
  164. package/dist/providers/LLMAPI/services/LLMAPIAssistance.service.js +825 -0
  165. package/dist/providers/LLMAPI/services/LLMAPIAssistance.service.js.map +1 -0
  166. package/dist/providers/LLMAPI/services/LLMAPICompletion.service.d.ts +25 -0
  167. package/dist/providers/LLMAPI/services/LLMAPICompletion.service.js +177 -0
  168. package/dist/providers/LLMAPI/services/LLMAPICompletion.service.js.map +1 -0
  169. package/dist/providers/LLMAPI/services/LLMAPISpeechToText.service.d.ts +17 -0
  170. package/dist/providers/LLMAPI/services/LLMAPISpeechToText.service.js +34 -0
  171. package/dist/providers/LLMAPI/services/LLMAPISpeechToText.service.js.map +1 -0
  172. package/dist/providers/LLMAPI/services/LLMAPITextToSpeech.service.d.ts +20 -0
  173. package/dist/providers/LLMAPI/services/LLMAPITextToSpeech.service.js +36 -0
  174. package/dist/providers/LLMAPI/services/LLMAPITextToSpeech.service.js.map +1 -0
  175. package/dist/providers/LLMAPI/services/index.d.ts +4 -0
  176. package/dist/providers/LLMAPI/services/index.js +21 -0
  177. package/dist/providers/LLMAPI/services/index.js.map +1 -0
  178. package/dist/providers/LLMAPI/utilities/index.d.ts +4 -0
  179. package/dist/providers/LLMAPI/utilities/index.js +13 -0
  180. package/dist/providers/LLMAPI/utilities/index.js.map +1 -0
  181. package/dist/providers/LLMAPI/utilities/parseXmlToolCalls.d.ts +7 -0
  182. package/dist/providers/LLMAPI/utilities/parseXmlToolCalls.js +35 -0
  183. package/dist/providers/LLMAPI/utilities/parseXmlToolCalls.js.map +1 -0
  184. package/dist/providers/LLMAPI/utilities/stripThinkingTags.d.ts +1 -0
  185. package/dist/providers/LLMAPI/utilities/stripThinkingTags.js +7 -0
  186. package/dist/providers/LLMAPI/utilities/stripThinkingTags.js.map +1 -0
  187. package/dist/providers/LLMAPI/utilities/structuredOutput.d.ts +13 -0
  188. package/dist/providers/LLMAPI/utilities/structuredOutput.js +29 -0
  189. package/dist/providers/LLMAPI/utilities/structuredOutput.js.map +1 -0
  190. package/dist/providers/LLMAPI/utilities/validateStructuredResponse.d.ts +10 -0
  191. package/dist/providers/LLMAPI/utilities/validateStructuredResponse.js +21 -0
  192. package/dist/providers/LLMAPI/utilities/validateStructuredResponse.js.map +1 -0
  193. package/dist/providers/OpenAI/OpenAI.constants.d.ts +1664 -0
  194. package/dist/providers/OpenAI/OpenAI.constants.js +310 -0
  195. package/dist/providers/OpenAI/OpenAI.constants.js.map +1 -0
  196. package/dist/providers/OpenAI/OpenAI.entity.d.ts +15 -0
  197. package/dist/providers/OpenAI/OpenAI.entity.js +162 -0
  198. package/dist/providers/OpenAI/OpenAI.entity.js.map +1 -0
  199. package/dist/providers/OpenAI/OpenAI.typedefs.d.ts +61 -0
  200. package/dist/providers/OpenAI/OpenAI.typedefs.js +39 -0
  201. package/dist/providers/OpenAI/OpenAI.typedefs.js.map +1 -0
  202. package/dist/providers/OpenAI/OpenAIService.factory.d.ts +6 -0
  203. package/dist/providers/OpenAI/OpenAIService.factory.js +18 -0
  204. package/dist/providers/OpenAI/OpenAIService.factory.js.map +1 -0
  205. package/dist/providers/OpenAI/index.d.ts +5 -0
  206. package/dist/providers/OpenAI/index.js +22 -0
  207. package/dist/providers/OpenAI/index.js.map +1 -0
  208. package/dist/providers/OpenAI/schemas/OpenAISchemaAdapter.d.ts +14 -0
  209. package/dist/providers/OpenAI/schemas/OpenAISchemaAdapter.js +87 -0
  210. package/dist/providers/OpenAI/schemas/OpenAISchemaAdapter.js.map +1 -0
  211. package/dist/providers/OpenAI/services/OpenAIAssistance.service.d.ts +42 -0
  212. package/dist/providers/OpenAI/services/OpenAIAssistance.service.js +712 -0
  213. package/dist/providers/OpenAI/services/OpenAIAssistance.service.js.map +1 -0
  214. package/dist/providers/OpenAI/services/OpenAICompletion.service.d.ts +7 -0
  215. package/dist/providers/OpenAI/services/OpenAICompletion.service.js +12 -0
  216. package/dist/providers/OpenAI/services/OpenAICompletion.service.js.map +1 -0
  217. package/dist/providers/OpenAI/services/OpenAISpeechToText.service.d.ts +17 -0
  218. package/dist/providers/OpenAI/services/OpenAISpeechToText.service.js +40 -0
  219. package/dist/providers/OpenAI/services/OpenAISpeechToText.service.js.map +1 -0
  220. package/dist/providers/OpenAI/services/OpenAITextToSpeech.service.d.ts +13 -0
  221. package/dist/providers/OpenAI/services/OpenAITextToSpeech.service.js +32 -0
  222. package/dist/providers/OpenAI/services/OpenAITextToSpeech.service.js.map +1 -0
  223. package/dist/providers/OpenAI/services/buildFunctionCallOutput.d.ts +3 -0
  224. package/dist/providers/OpenAI/services/buildFunctionCallOutput.js +19 -0
  225. package/dist/providers/OpenAI/services/buildFunctionCallOutput.js.map +1 -0
  226. package/dist/providers/OpenAI/services/index.d.ts +4 -0
  227. package/dist/providers/OpenAI/services/index.js +21 -0
  228. package/dist/providers/OpenAI/services/index.js.map +1 -0
  229. package/dist/providers/OpenAICompatible/OpenAICompatibleCompletion.service.d.ts +30 -0
  230. package/dist/providers/OpenAICompatible/OpenAICompatibleCompletion.service.js +233 -0
  231. package/dist/providers/OpenAICompatible/OpenAICompatibleCompletion.service.js.map +1 -0
  232. package/dist/providers/OpenAICompatible/OpenAICompatibleSpeechToText.service.d.ts +22 -0
  233. package/dist/providers/OpenAICompatible/OpenAICompatibleSpeechToText.service.js +98 -0
  234. package/dist/providers/OpenAICompatible/OpenAICompatibleSpeechToText.service.js.map +1 -0
  235. package/dist/providers/OpenAICompatible/OpenAICompatibleTextToSpeech.service.d.ts +22 -0
  236. package/dist/providers/OpenAICompatible/OpenAICompatibleTextToSpeech.service.js +67 -0
  237. package/dist/providers/OpenAICompatible/OpenAICompatibleTextToSpeech.service.js.map +1 -0
  238. package/dist/providers/index.d.ts +3 -0
  239. package/dist/providers/index.js +20 -0
  240. package/dist/providers/index.js.map +1 -0
  241. package/dist/services/LLMAssistanceService.abstract.d.ts +39 -0
  242. package/dist/services/LLMAssistanceService.abstract.js +101 -0
  243. package/dist/services/LLMAssistanceService.abstract.js.map +1 -0
  244. package/dist/services/LLMBaseService.abstract.d.ts +161 -0
  245. package/dist/services/LLMBaseService.abstract.js +392 -0
  246. package/dist/services/LLMBaseService.abstract.js.map +1 -0
  247. package/dist/services/LLMCompletionService.abstract.d.ts +16 -0
  248. package/dist/services/LLMCompletionService.abstract.js +12 -0
  249. package/dist/services/LLMCompletionService.abstract.js.map +1 -0
  250. package/dist/services/LLMServicePurposeFactory.abstract.d.ts +12 -0
  251. package/dist/services/LLMServicePurposeFactory.abstract.js +7 -0
  252. package/dist/services/LLMServicePurposeFactory.abstract.js.map +1 -0
  253. package/dist/services/LLMSpeechToTextService.abstract.d.ts +8 -0
  254. package/dist/services/LLMSpeechToTextService.abstract.js +12 -0
  255. package/dist/services/LLMSpeechToTextService.abstract.js.map +1 -0
  256. package/dist/services/LLMTextToSpeechService.abstract.d.ts +8 -0
  257. package/dist/services/LLMTextToSpeechService.abstract.js +12 -0
  258. package/dist/services/LLMTextToSpeechService.abstract.js.map +1 -0
  259. package/dist/services/agentRounds/LLMAgentRounds.d.ts +32 -0
  260. package/dist/services/agentRounds/LLMAgentRounds.js +77 -0
  261. package/dist/services/agentRounds/LLMAgentRounds.js.map +1 -0
  262. package/dist/services/agentRounds/agentRounds.typedefs.d.ts +48 -0
  263. package/dist/services/agentRounds/agentRounds.typedefs.js +3 -0
  264. package/dist/services/agentRounds/agentRounds.typedefs.js.map +1 -0
  265. package/dist/services/agentRounds/index.d.ts +2 -0
  266. package/dist/services/agentRounds/index.js +19 -0
  267. package/dist/services/agentRounds/index.js.map +1 -0
  268. package/dist/services/chatState/CompletionsChatState.d.ts +35 -0
  269. package/dist/services/chatState/CompletionsChatState.js +118 -0
  270. package/dist/services/chatState/CompletionsChatState.js.map +1 -0
  271. package/dist/services/chatState/index.d.ts +1 -0
  272. package/dist/services/chatState/index.js +6 -0
  273. package/dist/services/chatState/index.js.map +1 -0
  274. package/dist/services/fileStorage/FileStorageToolExecutor.d.ts +15 -0
  275. package/dist/services/fileStorage/FileStorageToolExecutor.js +172 -0
  276. package/dist/services/fileStorage/FileStorageToolExecutor.js.map +1 -0
  277. package/dist/services/fileStorage/InMemoryFileStorage.d.ts +20 -0
  278. package/dist/services/fileStorage/InMemoryFileStorage.js +67 -0
  279. package/dist/services/fileStorage/InMemoryFileStorage.js.map +1 -0
  280. package/dist/services/fileStorage/fileStorageTools.d.ts +26 -0
  281. package/dist/services/fileStorage/fileStorageTools.js +68 -0
  282. package/dist/services/fileStorage/fileStorageTools.js.map +1 -0
  283. package/dist/services/fileStorage/index.d.ts +4 -0
  284. package/dist/services/fileStorage/index.js +11 -0
  285. package/dist/services/fileStorage/index.js.map +1 -0
  286. package/dist/services/index.d.ts +7 -0
  287. package/dist/services/index.js +24 -0
  288. package/dist/services/index.js.map +1 -0
  289. package/dist/utilities/calculateCosts.d.ts +4 -0
  290. package/dist/utilities/calculateCosts.js +56 -0
  291. package/dist/utilities/calculateCosts.js.map +1 -0
  292. package/dist/utilities/functional.utils.d.ts +1 -0
  293. package/dist/utilities/functional.utils.js +9 -0
  294. package/dist/utilities/functional.utils.js.map +1 -0
  295. package/dist/utilities/index.d.ts +9 -0
  296. package/dist/utilities/index.js +26 -0
  297. package/dist/utilities/index.js.map +1 -0
  298. package/dist/utilities/llmTracing/index.d.ts +3 -0
  299. package/dist/utilities/llmTracing/index.js +20 -0
  300. package/dist/utilities/llmTracing/index.js.map +1 -0
  301. package/dist/utilities/llmTracing/llmTracing.constants.d.ts +7 -0
  302. package/dist/utilities/llmTracing/llmTracing.constants.js +11 -0
  303. package/dist/utilities/llmTracing/llmTracing.constants.js.map +1 -0
  304. package/dist/utilities/llmTracing/llmTracing.typedefs.d.ts +126 -0
  305. package/dist/utilities/llmTracing/llmTracing.typedefs.js +3 -0
  306. package/dist/utilities/llmTracing/llmTracing.typedefs.js.map +1 -0
  307. package/dist/utilities/llmTracing/noopLLMTracing.d.ts +3 -0
  308. package/dist/utilities/llmTracing/noopLLMTracing.js +36 -0
  309. package/dist/utilities/llmTracing/noopLLMTracing.js.map +1 -0
  310. package/dist/utilities/logger/LLMLoggerInterface.d.ts +36 -0
  311. package/dist/utilities/logger/LLMLoggerInterface.js +3 -0
  312. package/dist/utilities/logger/LLMLoggerInterface.js.map +1 -0
  313. package/dist/utilities/logger/index.d.ts +1 -0
  314. package/dist/utilities/logger/index.js +18 -0
  315. package/dist/utilities/logger/index.js.map +1 -0
  316. package/dist/utilities/promptBuilder.d.ts +58 -0
  317. package/dist/utilities/promptBuilder.js +92 -0
  318. package/dist/utilities/promptBuilder.js.map +1 -0
  319. package/dist/utilities/reporter/LLMReporterInterface.d.ts +46 -0
  320. package/dist/utilities/reporter/LLMReporterInterface.js +3 -0
  321. package/dist/utilities/reporter/LLMReporterInterface.js.map +1 -0
  322. package/dist/utilities/reporter/index.d.ts +1 -0
  323. package/dist/utilities/reporter/index.js +18 -0
  324. package/dist/utilities/reporter/index.js.map +1 -0
  325. package/dist/utilities/schema/LLMSchema.d.ts +112 -0
  326. package/dist/utilities/schema/LLMSchema.js +223 -0
  327. package/dist/utilities/schema/LLMSchema.js.map +1 -0
  328. package/dist/utilities/schema/LLMSchema.typedefs.d.ts +55 -0
  329. package/dist/utilities/schema/LLMSchema.typedefs.js +3 -0
  330. package/dist/utilities/schema/LLMSchema.typedefs.js.map +1 -0
  331. package/dist/utilities/schema/SchemaAdapterRegistry.d.ts +26 -0
  332. package/dist/utilities/schema/SchemaAdapterRegistry.js +32 -0
  333. package/dist/utilities/schema/SchemaAdapterRegistry.js.map +1 -0
  334. package/dist/utilities/schema/index.d.ts +2 -0
  335. package/dist/utilities/schema/index.js +19 -0
  336. package/dist/utilities/schema/index.js.map +1 -0
  337. package/dist/utilities/serializeError.d.ts +9 -0
  338. package/dist/utilities/serializeError.js +69 -0
  339. package/dist/utilities/serializeError.js.map +1 -0
  340. package/dist/utilities/tokenizer.d.ts +4 -0
  341. package/dist/utilities/tokenizer.js +14 -0
  342. package/dist/utilities/tokenizer.js.map +1 -0
  343. package/dist/utilities/tools/LLMTool.d.ts +5 -0
  344. package/dist/utilities/tools/LLMTool.js +10 -0
  345. package/dist/utilities/tools/LLMTool.js.map +1 -0
  346. package/dist/utilities/tools/index.d.ts +2 -0
  347. package/dist/utilities/tools/index.js +8 -0
  348. package/dist/utilities/tools/index.js.map +1 -0
  349. package/dist/utilities/tools/normalizeToolResult.d.ts +15 -0
  350. package/dist/utilities/tools/normalizeToolResult.js +18 -0
  351. package/dist/utilities/tools/normalizeToolResult.js.map +1 -0
  352. package/package.json +1 -1
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.OpenAICompatibleSpeechToTextService = void 0;
7
+ const fs_1 = require("fs");
8
+ const openai_1 = require("openai");
9
+ const utilities_1 = require("../../utilities");
10
+ const services_1 = require("../../services");
11
+ const OpenAI_entity_1 = require("../../providers/OpenAI/OpenAI.entity");
12
+ const mime_types_1 = __importDefault(require("mime-types"));
13
+ class OpenAICompatibleSpeechToTextService extends services_1.LLMSpeechToTextService {
14
+ constructor(provider, logger, reporter, options) {
15
+ super(provider, logger, reporter, options);
16
+ }
17
+ get instance() {
18
+ return this.getOrCreateInstance(() => new openai_1.OpenAI(this.options));
19
+ }
20
+ get transcribeLimits() {
21
+ return OpenAI_entity_1.OpenAIEntity.transcribeLimits;
22
+ }
23
+ buildTranscriptionParams(options, audioFileStream) {
24
+ return {
25
+ model: options.model.name,
26
+ file: audioFileStream,
27
+ response_format: 'json',
28
+ prompt: options.instructions,
29
+ };
30
+ }
31
+ async transcribe(options) {
32
+ const { model, pathToAudio, mimeType, instructions, abortSignal, reporterContext, traceContext, } = options;
33
+ const writeMetrics = this.reporter?.initWriter(reporterContext);
34
+ const method = this.getMethodName(this.transcribe);
35
+ const generationStartedAt = Date.now();
36
+ try {
37
+ abortSignal?.throwIfAborted();
38
+ const { maxFileSize, supportedMimeTypes, } = this.transcribeLimits;
39
+ const fileSize = (0, fs_1.statSync)(pathToAudio).size;
40
+ if (fileSize > maxFileSize) {
41
+ throw new Error(`File size exceeds the limit of ${maxFileSize} bytes`);
42
+ }
43
+ const resolvedMimeType = mimeType ?? mime_types_1.default.lookup(pathToAudio);
44
+ if (!resolvedMimeType || !supportedMimeTypes.includes(resolvedMimeType)) {
45
+ throw new Error(`Unsupported audio file type: ${resolvedMimeType}. Supported types are: ${supportedMimeTypes.join(', ')}`);
46
+ }
47
+ const audioFileStream = (0, fs_1.createReadStream)(pathToAudio, { signal: abortSignal });
48
+ abortSignal?.throwIfAborted();
49
+ const params = this.buildTranscriptionParams(options, audioFileStream);
50
+ const response = await this.instance.audio.transcriptions.create(params, {
51
+ signal: abortSignal,
52
+ });
53
+ abortSignal?.throwIfAborted();
54
+ const usage = this.extractUsage(response, fileSize);
55
+ await this.writeSuccessMetrics({
56
+ method,
57
+ model,
58
+ usage,
59
+ writeMetrics,
60
+ generationTrace: this.buildGenerationTrace({
61
+ method,
62
+ traceContext,
63
+ input: { pathToAudio, instructions },
64
+ output: response.text,
65
+ modelParameters: model.config,
66
+ startedAt: generationStartedAt,
67
+ }),
68
+ });
69
+ return { text: response.text, usage, cost: (0, utilities_1.calculateCosts)(model, usage) };
70
+ }
71
+ catch (error) {
72
+ await this.writeErrorMetrics({
73
+ method,
74
+ model,
75
+ isAborted: abortSignal?.aborted,
76
+ writeMetrics,
77
+ error,
78
+ generationTrace: this.buildGenerationTrace({
79
+ method,
80
+ traceContext,
81
+ input: { pathToAudio, instructions },
82
+ modelParameters: model.config,
83
+ startedAt: generationStartedAt,
84
+ }),
85
+ });
86
+ this.logRequestFailure({
87
+ method,
88
+ message: 'Error transcribing audio',
89
+ error,
90
+ isAborted: abortSignal?.aborted,
91
+ meta: { options },
92
+ });
93
+ return { error };
94
+ }
95
+ }
96
+ }
97
+ exports.OpenAICompatibleSpeechToTextService = OpenAICompatibleSpeechToTextService;
98
+ //# sourceMappingURL=OpenAICompatibleSpeechToText.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenAICompatibleSpeechToText.service.js","sourceRoot":"","sources":["../../../src/providers/OpenAICompatible/OpenAICompatibleSpeechToText.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { OpenAI } from 'openai';
2
+ import { type LLMProviders, type LLMCreateSpeechOptions, type LLMCreateSpeechResult, type LLMInstanceOptions, type LLMModel } from '../../LLMService.typedefs';
3
+ import { type LLMLoggerInterface } from '../../utilities/logger';
4
+ import { type LLMReporterInterface } from '../../utilities/reporter';
5
+ import { LLMTextToSpeechService } from '../../services';
6
+ type OpenAICompatibleTTSProvider = LLMProviders.OpenAI | LLMProviders.LLMAPI;
7
+ interface SpeechUsage {
8
+ inputTextTokens: number;
9
+ outputAudioTokens: number;
10
+ }
11
+ export declare abstract class OpenAICompatibleTextToSpeechService<Provider extends OpenAICompatibleTTSProvider, Reporter extends LLMReporterInterface<any> | undefined> extends LLMTextToSpeechService<Provider, Reporter> {
12
+ constructor(provider: Provider, logger: LLMLoggerInterface | undefined, reporter: Reporter, options?: LLMInstanceOptions[Provider]);
13
+ get instance(): OpenAI;
14
+ protected getDefaultVoice(_modelName: string): string;
15
+ protected getRequestOptions(abortSignal?: AbortSignal): {
16
+ signal?: AbortSignal;
17
+ headers?: Record<string, string>;
18
+ };
19
+ protected abstract extractUsage(audioBuffer: Buffer, text: string, model: LLMModel<Provider>): Promise<SpeechUsage> | SpeechUsage;
20
+ createSpeech(options: LLMCreateSpeechOptions<typeof this.provider, Reporter>): Promise<LLMCreateSpeechResult>;
21
+ }
22
+ export {};
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpenAICompatibleTextToSpeechService = void 0;
4
+ const openai_1 = require("openai");
5
+ const services_1 = require("../../services");
6
+ class OpenAICompatibleTextToSpeechService extends services_1.LLMTextToSpeechService {
7
+ constructor(provider, logger, reporter, options) {
8
+ super(provider, logger, reporter, options);
9
+ }
10
+ get instance() {
11
+ return this.getOrCreateInstance(() => new openai_1.OpenAI(this.options));
12
+ }
13
+ getDefaultVoice(_modelName) {
14
+ return 'alloy';
15
+ }
16
+ getRequestOptions(abortSignal) {
17
+ return { signal: abortSignal };
18
+ }
19
+ async createSpeech(options) {
20
+ const { text, model, instructions, speechOptions, abortSignal, reporterContext, } = options;
21
+ const writeMetrics = this.reporter?.initWriter(reporterContext);
22
+ try {
23
+ abortSignal?.throwIfAborted();
24
+ const audioResponse = await this.instance.audio.speech.create({
25
+ model: model.name,
26
+ input: text,
27
+ instructions,
28
+ voice: speechOptions?.voice ?? this.getDefaultVoice(model.name),
29
+ response_format: speechOptions?.response_format,
30
+ speed: speechOptions?.speed,
31
+ }, this.getRequestOptions(abortSignal));
32
+ abortSignal?.throwIfAborted();
33
+ const audioArrayBuffer = await audioResponse.arrayBuffer();
34
+ const audioBuffer = Buffer.from(audioArrayBuffer);
35
+ abortSignal?.throwIfAborted();
36
+ const usage = await this.extractUsage(audioBuffer, text, model);
37
+ await this.writeSuccessMetrics({
38
+ method: this.getMethodName(this.createSpeech),
39
+ model,
40
+ usage,
41
+ writeMetrics,
42
+ });
43
+ return {
44
+ audio: audioBuffer,
45
+ mimeType: audioResponse.headers.get('Content-Type'),
46
+ };
47
+ }
48
+ catch (error) {
49
+ await this.writeErrorMetrics({
50
+ method: this.getMethodName(this.createSpeech),
51
+ model,
52
+ isAborted: abortSignal?.aborted,
53
+ writeMetrics,
54
+ });
55
+ this.logRequestFailure({
56
+ method: this.getMethodName(this.createSpeech),
57
+ message: 'Error creating speech',
58
+ error,
59
+ isAborted: abortSignal?.aborted,
60
+ meta: { options },
61
+ });
62
+ return { error };
63
+ }
64
+ }
65
+ }
66
+ exports.OpenAICompatibleTextToSpeechService = OpenAICompatibleTextToSpeechService;
67
+ //# sourceMappingURL=OpenAICompatibleTextToSpeech.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenAICompatibleTextToSpeech.service.js","sourceRoot":"","sources":["../../../src/providers/OpenAICompatible/OpenAICompatibleTextToSpeech.service.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAUhC,yCAAoD;AASpD,MAAsB,mCAGpB,SAAQ,iCAA0C;IAClD,YACE,QAAkB,EAClB,MAAsC,EACtC,QAAkB,EAClB,OAAsC;QAEtC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,mBAAmB,CAC7B,GAAG,EAAE,CAAC,IAAI,eAAM,CAAC,IAAI,CAAC,OAAO,CAAsB,CACpD,CAAC;IACJ,CAAC;IAES,eAAe,CAAC,UAAkB;QAC1C,OAAO,OAAO,CAAC;IACjB,CAAC;IAES,iBAAiB,CAAC,WAAyB;QACnD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IACjC,CAAC;IAQD,KAAK,CAAC,YAAY,CAChB,OAA+D;QAE/D,MAAM,EACJ,IAAI,EACJ,KAAK,EACL,YAAY,EACZ,aAAa,EACb,WAAW,EACX,eAAe,GAChB,GAAG,OAAO,CAAC;QAEZ,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;QAEhE,IAAI,CAAC;YACH,WAAW,EAAE,cAAc,EAAE,CAAC;YAE9B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;gBAC5D,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,KAAK,EAAE,IAAI;gBACX,YAAY;gBACZ,KAAK,EAAE,aAAa,EAAE,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC/D,eAAe,EAAE,aAAa,EAAE,eAAsB;gBACtD,KAAK,EAAE,aAAa,EAAE,KAAK;aAC5B,EAAE,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC;YAExC,WAAW,EAAE,cAAc,EAAE,CAAC;YAE9B,MAAM,gBAAgB,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,CAAC;YAC3D,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAElD,WAAW,EAAE,cAAc,EAAE,CAAC;YAE9B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAEhE,MAAM,IAAI,CAAC,mBAAmB,CAAC;gBAC7B,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC;gBAC7C,KAAK;gBACL,KAAK;gBACL,YAAY;aACb,CAAC,CAAC;YAEH,OAAO;gBACL,KAAK,EAAE,WAAW;gBAClB,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;aACpD,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,iBAAiB,CAAC;gBAC3B,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC;gBAC7C,KAAK;gBACL,SAAS,EAAE,WAAW,EAAE,OAAO;gBAC/B,YAAY;aACb,CAAC,CAAC;YAEH,IAAI,CAAC,iBAAiB,CAAC;gBACrB,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC;gBAC7C,OAAO,EAAE,uBAAuB;gBAChC,KAAK;gBACL,SAAS,EAAE,WAAW,EAAE,OAAO;gBAC/B,IAAI,EAAE,EAAE,OAAO,EAAE;aAClB,CAAC,CAAC;YAEH,OAAO,EAAE,KAAK,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;CACF;AAlGD,kFAkGC"}
@@ -0,0 +1,3 @@
1
+ export * from './OpenAI';
2
+ export * from './GoogleGenerativeAI';
3
+ export * from './LLMAPI';
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./OpenAI"), exports);
18
+ __exportStar(require("./GoogleGenerativeAI"), exports);
19
+ __exportStar(require("./LLMAPI"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,uDAAqC;AACrC,2CAAyB"}
@@ -0,0 +1,39 @@
1
+ import { type LLMAssistInNewChatOptions, type LLMAssistanceOptions, type LLMAssistanceResult, type LLMAssistanceMessage, type LLMToolDefinition, type LLMCreateChatOptions, type LLMCreateChatResult, type LLMCreateFileStorageOptions, type LLMCreateFileStorageResult, type LLMInstanceOptions, type LLMModel, type LLMProviders, LLMPurposes, type LLMUploadFileOptions, type LLMUploadFileResult, type LLMStructuredResult, type LLMUploadedFile, type LLMTerminalToolOutcome, LLMToolLoopStopReasons } from '../LLMService.typedefs';
2
+ import { type LLMLoggerInterface } from '../utilities/logger';
3
+ import { type LLMReporterInterface } from '../utilities/reporter';
4
+ import { LLMBaseService } from '../services';
5
+ import { type LLMSchemaInterface, type InferSchema } from '../utilities/schema';
6
+ export declare abstract class LLMAssistanceService<Provider extends LLMProviders, Reporter extends LLMReporterInterface<any> | undefined> extends LLMBaseService<LLMPurposes.Assistance, Provider, Reporter> {
7
+ constructor(provider: Provider, logger: LLMLoggerInterface | undefined, reporter: Reporter, options?: LLMInstanceOptions[Provider]);
8
+ /**
9
+ * Classifies why a tool loop stopped. A terminal tool outranks exhaustion:
10
+ * the loop broke on purpose before the iteration budget mattered.
11
+ */
12
+ protected resolveToolLoopStopReason(params: {
13
+ terminalTool: LLMTerminalToolOutcome | undefined;
14
+ toolIterationsExhausted: boolean;
15
+ }): LLMToolLoopStopReasons;
16
+ protected validateToolDefinitions(tools: LLMToolDefinition[]): void;
17
+ abstract uploadFile(options: LLMUploadFileOptions<Reporter>): Promise<LLMUploadFileResult>;
18
+ abstract getFile(path: string): Promise<LLMUploadedFile | null>;
19
+ abstract deleteFile(fileId: string): Promise<void>;
20
+ abstract createFileStorage(options: LLMCreateFileStorageOptions<Provider, Reporter>): Promise<LLMCreateFileStorageResult>;
21
+ abstract deleteFileStorage(fileStorageId: string): Promise<void>;
22
+ abstract createChat(options: LLMCreateChatOptions<Provider, Reporter>): Promise<LLMCreateChatResult>;
23
+ abstract deleteChat(chatId: string): Promise<void>;
24
+ assistInChat<Schema extends LLMSchemaInterface>(options: LLMAssistanceOptions<Provider, Reporter> & {
25
+ schema: Schema;
26
+ }): Promise<LLMStructuredResult<InferSchema<Schema>>>;
27
+ assistInChat(options: LLMAssistanceOptions<Provider, Reporter>): Promise<LLMAssistanceResult>;
28
+ private runAgentObservation;
29
+ private getAssistanceFailure;
30
+ protected abstract assistInChatText(options: LLMAssistanceOptions<Provider, Reporter>): Promise<LLMAssistanceResult>;
31
+ protected abstract assistInChatStructured(options: LLMAssistanceOptions<Provider, Reporter> & {
32
+ schema: LLMSchemaInterface;
33
+ }): Promise<LLMStructuredResult>;
34
+ assistInNewChat<Schema extends LLMSchemaInterface>(options: LLMAssistInNewChatOptions<Provider, Reporter> & {
35
+ schema: Schema;
36
+ }): Promise<LLMStructuredResult<InferSchema<Schema>>>;
37
+ assistInNewChat(options: LLMAssistInNewChatOptions<Provider, Reporter>): Promise<LLMAssistanceResult>;
38
+ abstract countTokens(messages: LLMAssistanceMessage[], model: LLMModel<Provider>): Promise<number>;
39
+ }
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LLMAssistanceService = void 0;
4
+ const LLMService_typedefs_1 = require("../LLMService.typedefs");
5
+ const services_1 = require("../services");
6
+ class LLMAssistanceFailureError extends Error {
7
+ assistanceResult;
8
+ constructor(message, assistanceResult) {
9
+ super(message);
10
+ this.assistanceResult = assistanceResult;
11
+ this.name = LLMAssistanceFailureError.name;
12
+ }
13
+ }
14
+ class LLMAssistanceService extends services_1.LLMBaseService {
15
+ constructor(provider, logger, reporter, options) {
16
+ super(provider, 'AssistanceService', LLMService_typedefs_1.LLMPurposes.Assistance, logger, reporter, options);
17
+ }
18
+ /**
19
+ * Classifies why a tool loop stopped. A terminal tool outranks exhaustion:
20
+ * the loop broke on purpose before the iteration budget mattered.
21
+ */
22
+ resolveToolLoopStopReason(params) {
23
+ if (params.terminalTool) {
24
+ return LLMService_typedefs_1.LLMToolLoopStopReasons.TerminalTool;
25
+ }
26
+ if (params.toolIterationsExhausted) {
27
+ return LLMService_typedefs_1.LLMToolLoopStopReasons.MaxIterations;
28
+ }
29
+ return LLMService_typedefs_1.LLMToolLoopStopReasons.Completed;
30
+ }
31
+ validateToolDefinitions(tools) {
32
+ const namePattern = /^[a-zA-Z0-9_-]+$/;
33
+ const names = new Set();
34
+ for (const tool of tools) {
35
+ if (!namePattern.test(tool.name)) {
36
+ throw new Error(`Invalid tool name "${tool.name}":`
37
+ + ' must match [a-zA-Z0-9_-]+');
38
+ }
39
+ if (names.has(tool.name)) {
40
+ throw new Error(`Duplicate tool name "${tool.name}"`);
41
+ }
42
+ names.add(tool.name);
43
+ }
44
+ }
45
+ assistInChat(options) {
46
+ if (options.schema) {
47
+ return this.runAgentObservation(options, () => this.assistInChatStructured(options));
48
+ }
49
+ return this.runAgentObservation(options, () => this.assistInChatText(options));
50
+ }
51
+ async runAgentObservation(options, operation) {
52
+ if (!options.agentName) {
53
+ return operation();
54
+ }
55
+ try {
56
+ return await this.getTracer().withAgentObservation(options.agentName, options.message, async () => {
57
+ const assistanceResult = await operation();
58
+ const failureMessage = this.getAssistanceFailure(assistanceResult);
59
+ if (failureMessage !== undefined) {
60
+ throw new LLMAssistanceFailureError(failureMessage, assistanceResult);
61
+ }
62
+ return assistanceResult;
63
+ });
64
+ }
65
+ catch (error) {
66
+ if (error instanceof LLMAssistanceFailureError) {
67
+ return error.assistanceResult;
68
+ }
69
+ throw error;
70
+ }
71
+ }
72
+ getAssistanceFailure(assistanceResult) {
73
+ if ('error' in assistanceResult) {
74
+ return assistanceResult.error.message;
75
+ }
76
+ return 'parseError' in assistanceResult
77
+ ? assistanceResult.parseError || undefined
78
+ : undefined;
79
+ }
80
+ async assistInNewChat(options) {
81
+ const chatResult = await this.createChat(options);
82
+ if ('error' in chatResult) {
83
+ return chatResult;
84
+ }
85
+ const message = {
86
+ role: LLMService_typedefs_1.LLMRoles.User,
87
+ content: [{
88
+ type: LLMService_typedefs_1.LLMMessageContentType.TEXT,
89
+ text: options.prompt,
90
+ }],
91
+ };
92
+ // @ts-expect-error conditional Reporter type prevents direct assignment
93
+ return this.assistInChat({
94
+ ...options,
95
+ chatId: chatResult.chatId,
96
+ message,
97
+ });
98
+ }
99
+ }
100
+ exports.LLMAssistanceService = LLMAssistanceService;
101
+ //# sourceMappingURL=LLMAssistanceService.abstract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LLMAssistanceService.abstract.js","sourceRoot":"","sources":["../../src/services/LLMAssistanceService.abstract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,161 @@
1
+ import { type LLMCallTraceContext, type LLMInstanceOptions, type LLMInstances, type LLMProviders, type LLMPurposes, type LLMProviderModelsByPurpose } from '../LLMService.typedefs';
2
+ import { type LLMLoggerInterface } from '../utilities/logger';
3
+ import { type LLMReporterInterface, type LLMMetricsWriter } from '../utilities/reporter';
4
+ import { type LLMModel } from '../LLMService.typedefs';
5
+ import { type LLMGatewayTracer, type LLMGenerationTrace, type LLMModelUsage } from '../utilities';
6
+ import { LLMAgentRounds } from './agentRounds';
7
+ export declare abstract class LLMBaseService<Purpose extends LLMPurposes, Provider extends LLMProviders, Reporter extends LLMReporterInterface<any> | undefined> {
8
+ readonly provider: Provider;
9
+ readonly serviceName: string;
10
+ readonly purpose: Purpose;
11
+ logger: LLMLoggerInterface | undefined;
12
+ reporter: Reporter;
13
+ options?: LLMInstanceOptions[Provider] | undefined;
14
+ private static readonly sharedInstanceCache;
15
+ private tracer;
16
+ constructor(provider: Provider, serviceName: string, purpose: Purpose, logger: LLMLoggerInterface | undefined, reporter: Reporter, options?: LLMInstanceOptions[Provider] | undefined);
17
+ /**
18
+ * Wires the tracer the service reports generations and tool calls to. Called
19
+ * by `LLMGateway` right after construction; services built through
20
+ * `LLMServiceFactory` keep the no-op tracer.
21
+ */
22
+ initTracer(tracer: LLMGatewayTracer): void;
23
+ protected getTracer(): LLMGatewayTracer;
24
+ /**
25
+ * The LLM instance for the current provider.
26
+ */
27
+ abstract get instance(): LLMInstances[Provider];
28
+ /**
29
+ * Available models for the current provider and purpose.
30
+ */
31
+ get models(): LLMProviderModelsByPurpose<Purpose, Provider>[Purpose];
32
+ /**
33
+ * Initialize the logger by creating a child logger with the provider and service name.
34
+ */
35
+ protected initLogger(): void;
36
+ /**
37
+ * Inject method names into class methods for better logging and reporting.
38
+ */
39
+ private injectMethodNames;
40
+ /**
41
+ * Get the method name from a function.
42
+ * If the method name is not available, return 'unknown'.
43
+ */
44
+ protected getMethodName(func: Function & {
45
+ methodName?: string;
46
+ }): string;
47
+ /**
48
+ * Generate a cache key from credentials/options.
49
+ * Includes provider to ensure cache isolation between different providers.
50
+ * Note: Different purposes (Completion, Assistance, etc.) for the same provider
51
+ * share the same underlying client instance.
52
+ */
53
+ protected getCredentialsCacheKey(options: LLMInstanceOptions[Provider] | undefined): string;
54
+ /**
55
+ * Get or create cached instance for current credentials.
56
+ * This method implements LRU caching to bound memory usage across all service types.
57
+ * @throws {Error} If options are not provided (required for instance creation)
58
+ */
59
+ protected getOrCreateInstance(factory: () => LLMInstances[Provider]): LLMInstances[Provider];
60
+ /**
61
+ * Evict least recently used instance from the shared cache.
62
+ */
63
+ private evictLeastRecentlyUsed;
64
+ /**
65
+ * Set new options for the LLM service instance.
66
+ * The instance will be lazily recreated with new credentials on next access.
67
+ */
68
+ setOptions(options: LLMInstanceOptions[Provider]): void;
69
+ /**
70
+ * Get the current options for the LLM service instance.
71
+ */
72
+ getOptions(): LLMInstanceOptions[Provider] | undefined;
73
+ /**
74
+ * Clear all cached instances from the shared cache.
75
+ * Useful for testing and manual resource cleanup.
76
+ */
77
+ clearInstanceCache(): void;
78
+ protected getDefaultTraceName(method: string): string;
79
+ /**
80
+ * Builds the per-call generation trace from the standard method options.
81
+ * Returns `undefined` when tracing is disabled, so providers skip the work.
82
+ */
83
+ protected buildGenerationTrace(params: {
84
+ method: string;
85
+ traceContext?: LLMCallTraceContext;
86
+ input: unknown;
87
+ output?: unknown;
88
+ modelParameters?: Record<string, unknown>;
89
+ startedAt: number;
90
+ }): LLMGenerationTrace | undefined;
91
+ /**
92
+ * Opens the per-round generation stream of an agent tool loop. Every model
93
+ * round the loop runs is traced through the returned recorder, so the run
94
+ * renders as one role-labelled transcript per round instead of a single
95
+ * generation covering the whole loop. The run's aggregate metrics point is
96
+ * written separately by `writeSuccessMetrics` and is unaffected.
97
+ */
98
+ protected openAgentRounds(params: {
99
+ method: string;
100
+ model: LLMModel<Provider> | null;
101
+ traceContext?: LLMCallTraceContext;
102
+ modelParameters?: Record<string, unknown>;
103
+ }): LLMAgentRounds;
104
+ /**
105
+ * The generation a failed agent run falls back to when it never reached its
106
+ * first model round: a run that throws while assembling the request would
107
+ * otherwise trace nothing at all. Once a round has been recorded the
108
+ * transcript is already there, and no second observation is emitted for it.
109
+ */
110
+ protected buildUnstartedRunTrace(params: {
111
+ rounds: LLMAgentRounds;
112
+ method: string;
113
+ traceContext?: LLMCallTraceContext;
114
+ input: unknown;
115
+ modelParameters?: Record<string, unknown>;
116
+ startedAt: number;
117
+ }): LLMGenerationTrace | undefined;
118
+ /**
119
+ * Write success metrics for a specific method, and emit the matching
120
+ * generation observation when per-call trace context is provided.
121
+ */
122
+ protected writeSuccessMetrics<TModel extends LLMModel<Provider>>(params: {
123
+ method: string;
124
+ model: TModel | null;
125
+ usage: LLMModelUsage;
126
+ writeMetrics: LLMMetricsWriter | undefined;
127
+ generationTrace?: LLMGenerationTrace;
128
+ }): Promise<void>;
129
+ /**
130
+ * Token totals and costs of one accounted call, in the shape both the metrics
131
+ * writer and a generation observation take.
132
+ */
133
+ private buildGenerationAccounting;
134
+ /**
135
+ * Write error metrics for a specific method, and emit the matching generation
136
+ * observation (level ERROR) when per-call trace context is given.
137
+ */
138
+ protected writeErrorMetrics<TModel extends LLMModel<Provider>>(params: {
139
+ method: string;
140
+ model: TModel | null;
141
+ isAborted?: boolean;
142
+ writeMetrics: LLMMetricsWriter | undefined;
143
+ generationTrace?: LLMGenerationTrace;
144
+ error?: unknown;
145
+ }): Promise<void>;
146
+ /**
147
+ * Log a request failure at a severity matching whether it was an
148
+ * intentional cancellation (isAborted) or a genuine provider/network error.
149
+ * An aborted request is expected behaviour, not an operational failure, so
150
+ * it is logged as a warning rather than an error.
151
+ */
152
+ protected logRequestFailure(params: {
153
+ method: string;
154
+ message: string;
155
+ error: unknown;
156
+ isAborted?: boolean;
157
+ meta?: Record<string, unknown>;
158
+ }): void;
159
+ private recordGenerationTrace;
160
+ private describeError;
161
+ }