@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,406 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LLMClientEngine = void 0;
4
+ const LLMService_typedefs_1 = require("../LLMService.typedefs");
5
+ const LLMAgent_1 = require("../client/LLMAgent");
6
+ const agentRunner_1 = require("../client/agentRunner");
7
+ const plainMessages_1 = require("../client/plainMessages");
8
+ const coerceToolResult_1 = require("../client/coerceToolResult");
9
+ const promptVariables_1 = require("../client/promptVariables");
10
+ const errors_1 = require("../client/errors");
11
+ /**
12
+ * The client's single implementation. `createLLMClient` owns its construction
13
+ * and exposes only the `LLMClient` surface, so every call path — `generate`,
14
+ * `countTokens`, `runAgent`, `describePrompt` — shares one prompt resolution,
15
+ * one credentials lookup, one reporter/trace context, and one error taxonomy.
16
+ */
17
+ class LLMClientEngine {
18
+ gateway;
19
+ registry;
20
+ runtime;
21
+ credentials;
22
+ reporter;
23
+ buildReporterContextFor;
24
+ logger;
25
+ staticContext;
26
+ mode;
27
+ toolResultNormalizer;
28
+ agentRunner;
29
+ constructor(config) {
30
+ this.gateway = config.gateway;
31
+ this.registry = config.registry;
32
+ this.runtime = config.runtime;
33
+ this.credentials = config.credentials;
34
+ this.reporter = config.reporter;
35
+ this.buildReporterContextFor = config.buildReporterContext;
36
+ this.logger = config.logger;
37
+ this.staticContext = config.staticContext;
38
+ this.mode = config.mode;
39
+ this.toolResultNormalizer = config.normalizeToolResult;
40
+ this.agentRunner = new agentRunner_1.LLMAgentRunner(this, config.logger);
41
+ }
42
+ async generate(prompt, options) {
43
+ const promptName = String(prompt);
44
+ const binding = this.registry[prompt];
45
+ const schema = options.schema ?? binding.schema;
46
+ this.assertOverridesAllowed(promptName, options.overrides);
47
+ const resolved = await this.resolvePrompt(promptName, binding, options.variables, {
48
+ purpose: LLMService_typedefs_1.LLMPurposes.Completion,
49
+ overrides: options.overrides,
50
+ });
51
+ return this.runCompletion(resolved, schema, options);
52
+ }
53
+ defineAgent(definition) {
54
+ return new LLMAgent_1.LLMAgent(definition);
55
+ }
56
+ async runAgent(promptOrAgent, options) {
57
+ const agent = promptOrAgent instanceof LLMAgent_1.LLMAgent ? promptOrAgent : undefined;
58
+ const promptKey = (agent ? agent.prompt : promptOrAgent);
59
+ const promptName = String(promptKey);
60
+ const binding = this.registry[promptKey];
61
+ this.assertOverridesAllowed(promptName, options.overrides);
62
+ const runResult = await this.agentRunner.run({
63
+ agentName: agent?.name ?? promptName,
64
+ promptName,
65
+ binding,
66
+ variables: { ...agent?.variables, ...options.variables },
67
+ input: options.input,
68
+ history: options.history,
69
+ tools: agent ? agent.tools : options.tools,
70
+ subagents: (agent ? agent.subagents : options.subagents),
71
+ maxToolIterations: agent
72
+ ? agent.maxToolIterations
73
+ : options.maxToolIterations,
74
+ context: options.context,
75
+ sessionId: options.sessionId,
76
+ traceTags: options.traceTags,
77
+ abortSignal: options.abortSignal,
78
+ overrides: options.overrides,
79
+ onEvent: options.onEvent,
80
+ });
81
+ return runResult;
82
+ }
83
+ async countTokens(prompt, options) {
84
+ const promptName = String(prompt);
85
+ const binding = this.registry[prompt];
86
+ const resolved = await this.resolvePrompt(promptName, binding, options.variables, { purpose: LLMService_typedefs_1.LLMPurposes.Completion });
87
+ const service = await this.buildCompletionService({
88
+ resolved,
89
+ callContext: undefined,
90
+ });
91
+ const envelope = this.buildMessageEnvelope(resolved, options.history);
92
+ return service.countTokens([...envelope.history, envelope.message], resolved.model);
93
+ }
94
+ async describePrompt(prompt) {
95
+ const promptName = String(prompt);
96
+ const binding = this.registry[prompt];
97
+ const metadata = await this.runtime.describe({
98
+ name: promptName,
99
+ kind: binding.kind === 'chat' ? 'chat' : 'text',
100
+ requires: binding.requires ?? [],
101
+ purpose: LLMService_typedefs_1.LLMPurposes.Completion,
102
+ });
103
+ if (!metadata) {
104
+ throw new errors_1.LLMConfigError(`unable to resolve routing metadata for "${promptName}" (live and `
105
+ + 'fallback both unusable)', { promptName });
106
+ }
107
+ return {
108
+ provider: metadata.provider,
109
+ model: metadata.model,
110
+ promptVersion: metadata.promptVersion,
111
+ isFallback: metadata.isFallback,
112
+ };
113
+ }
114
+ async resolvePrompt(promptName, binding, variables, call) {
115
+ const resolved = await this.runtime.resolve({
116
+ name: promptName,
117
+ kind: binding.kind === 'chat' ? 'chat' : 'text',
118
+ variables: (0, promptVariables_1.stringifyPromptVariables)(variables),
119
+ requires: [
120
+ ...(binding.requires ?? []),
121
+ ...(call.additionalRequires ?? []),
122
+ ],
123
+ purpose: call.purpose,
124
+ versionOverride: call.overrides?.promptVersion,
125
+ labelOverride: call.overrides?.promptLabel,
126
+ });
127
+ if (!resolved) {
128
+ throw new errors_1.LLMConfigError(`unable to resolve a valid prompt for "${promptName}" (live and fallback unusable)`, { promptName });
129
+ }
130
+ return resolved;
131
+ }
132
+ /**
133
+ * The single place a tool's return value becomes what the model reads. The
134
+ * package's own coercion always runs first, so a client-supplied normalizer
135
+ * never sees a malformed value and cannot reintroduce one.
136
+ */
137
+ normalizeToolResult(context) {
138
+ const coerced = (0, coerceToolResult_1.coerceToolResult)(context.result);
139
+ if (!this.toolResultNormalizer) {
140
+ return coerced;
141
+ }
142
+ return (0, coerceToolResult_1.coerceToolResult)(this.toolResultNormalizer({ ...context, result: coerced }));
143
+ }
144
+ withAgentObservation(name, input, fn) {
145
+ return this.gateway.getTracer().withAgentObservation(name, input, fn);
146
+ }
147
+ async runCompletion(resolved, schema, options) {
148
+ const service = await this.buildCompletionService({
149
+ resolved,
150
+ callContext: options.context,
151
+ });
152
+ const envelope = this.buildMessageEnvelope(resolved, options.history);
153
+ const reporterContext = this.buildReporterContext(resolved, options.context);
154
+ const traceContext = this.buildTraceContext({
155
+ resolved,
156
+ callContext: options.context,
157
+ sessionId: options.sessionId,
158
+ traceTags: options.traceTags,
159
+ });
160
+ const sendResult = await this.callProvider(() => (schema
161
+ ? service.sendMessage({
162
+ message: envelope.message,
163
+ model: resolved.model,
164
+ history: envelope.history,
165
+ instructions: envelope.instructions,
166
+ schema,
167
+ abortSignal: options.abortSignal,
168
+ reporterContext,
169
+ traceContext,
170
+ })
171
+ : service.sendMessage({
172
+ message: envelope.message,
173
+ model: resolved.model,
174
+ history: envelope.history,
175
+ instructions: envelope.instructions,
176
+ abortSignal: options.abortSignal,
177
+ reporterContext,
178
+ traceContext,
179
+ })), resolved, options.abortSignal);
180
+ return this.unwrapResult(resolved, schema, sendResult);
181
+ }
182
+ /**
183
+ * Builds the provider message envelope from the resolved prompt. A `text`
184
+ * prompt is one user message. A `chat` prompt preserves the structure the
185
+ * prompt declares: a leading `system` message maps to `instructions`, the final
186
+ * `user` message is the request, and any messages between them join the
187
+ * call-supplied history in order.
188
+ */
189
+ buildMessageEnvelope(resolved, callHistory) {
190
+ if (resolved.kind !== 'chat') {
191
+ return {
192
+ message: this.buildUserMessage(resolved.text),
193
+ history: this.buildHistory(callHistory),
194
+ instructions: undefined,
195
+ };
196
+ }
197
+ const systemMessage = resolved.messages.find((message) => message.role === 'system');
198
+ const conversation = resolved.messages.filter((message) => message.role !== 'system');
199
+ const lastUserIndex = this.findLastUserIndex(conversation);
200
+ const promptHistory = conversation
201
+ .filter((_, index) => index !== lastUserIndex)
202
+ .map((message) => this.toCompletionMessage(message.role, message.content));
203
+ const requestText = lastUserIndex >= 0
204
+ ? conversation[lastUserIndex].content
205
+ : resolved.text;
206
+ return {
207
+ message: this.buildUserMessage(requestText),
208
+ history: [...promptHistory, ...this.buildHistory(callHistory)],
209
+ instructions: systemMessage?.content,
210
+ };
211
+ }
212
+ findLastUserIndex(messages) {
213
+ for (let index = messages.length - 1; index >= 0; index -= 1) {
214
+ if (messages[index].role === 'user') {
215
+ return index;
216
+ }
217
+ }
218
+ return -1;
219
+ }
220
+ async callProvider(send, resolved, abortSignal) {
221
+ try {
222
+ const result = await send();
223
+ if (result && typeof result === 'object' && 'error' in result) {
224
+ throw result.error;
225
+ }
226
+ return result;
227
+ }
228
+ catch (error) {
229
+ throw this.toTaxonomyError(error, resolved, abortSignal);
230
+ }
231
+ }
232
+ unwrapResult(resolved, schema, sendResult) {
233
+ if (!schema) {
234
+ return sendResult.text ?? '';
235
+ }
236
+ if (sendResult.parseError || sendResult.data === undefined) {
237
+ throw new errors_1.LLMSchemaValidationError(`structured output for "${resolved.name}" failed schema validation`, {
238
+ promptName: resolved.name,
239
+ provider: resolved.config.provider,
240
+ model: resolved.config.model,
241
+ rawText: sendResult.text ?? '',
242
+ parseDetails: sendResult.parseError ?? 'no data returned',
243
+ });
244
+ }
245
+ return sendResult.data;
246
+ }
247
+ toTaxonomyError(error, resolved, abortSignal) {
248
+ const context = {
249
+ promptName: resolved.name,
250
+ provider: resolved.config.provider,
251
+ model: resolved.config.model,
252
+ cause: error,
253
+ };
254
+ if (abortSignal?.aborted) {
255
+ return new errors_1.LLMAbortedError('LLM call aborted', context);
256
+ }
257
+ const status = this.extractStatus(error);
258
+ return new errors_1.LLMProviderError(error instanceof Error ? error.message : String(error), { ...context, retryable: this.isRetryableStatus(status), status });
259
+ }
260
+ async buildAssistanceService(options) {
261
+ const providerOptions = await this.resolveProviderOptions(options);
262
+ const { resolved } = options;
263
+ return this.gateway.getAssistanceService({
264
+ provider: resolved.config.provider,
265
+ options: providerOptions,
266
+ logger: this.logger,
267
+ reporter: this.reporter,
268
+ });
269
+ }
270
+ getBinding(promptName) {
271
+ return this.registry[promptName];
272
+ }
273
+ async buildCompletionService(options) {
274
+ const providerOptions = await this.resolveProviderOptions(options);
275
+ const { resolved } = options;
276
+ return this.gateway.getCompletionService({
277
+ provider: resolved.config.provider,
278
+ options: providerOptions,
279
+ logger: this.logger,
280
+ reporter: this.reporter,
281
+ });
282
+ }
283
+ /**
284
+ * Resolves credentials for the product this call belongs to. The per-call
285
+ * context wins over the static one: the client is built once per process, so
286
+ * its static product is only ever the one its builder knew, while a call site
287
+ * that resolves the product from its own subject knows better.
288
+ */
289
+ async resolveProviderOptions(options) {
290
+ const { resolved, callContext } = options;
291
+ return this.credentials({
292
+ provider: resolved.config.provider,
293
+ promptName: resolved.name,
294
+ product: typeof callContext?.product === 'string'
295
+ ? callContext.product
296
+ : this.staticContext.product,
297
+ });
298
+ }
299
+ buildUserMessage(text) {
300
+ return this.toCompletionMessage('user', text);
301
+ }
302
+ buildHistory(history) {
303
+ return (0, plainMessages_1.plainMessagesToContentMessages)(history);
304
+ }
305
+ toCompletionMessage(role, text) {
306
+ return {
307
+ role: role === 'assistant' ? LLMService_typedefs_1.LLMRoles.Assistant : LLMService_typedefs_1.LLMRoles.User,
308
+ content: [{ type: LLMService_typedefs_1.LLMMessageContentType.TEXT, text }],
309
+ };
310
+ }
311
+ /**
312
+ * Delegates the reporter's payload to the composition root. The gateway never
313
+ * shapes it: those fields are a downstream contract (DWH columns and the
314
+ * dashboards built on their exact values), so inventing a key or a string
315
+ * here would silently break analytics rather than fail a build.
316
+ *
317
+ * The active trace scope's context travels along as `scopeContext`, so the
318
+ * composition root can fall back to what the surrounding operation declared
319
+ * when the call itself names nothing.
320
+ */
321
+ buildReporterContext(resolved, callContext) {
322
+ if (!this.reporter || !this.buildReporterContextFor) {
323
+ return undefined;
324
+ }
325
+ return this.buildReporterContextFor({
326
+ promptName: resolved.name,
327
+ promptVersion: resolved.version,
328
+ callContext,
329
+ staticContext: this.staticContext,
330
+ scopeContext: this.gateway.getTracer().getActiveTraceContext(),
331
+ });
332
+ }
333
+ /**
334
+ * Builds the per-call trace context every client path threads into the gateway
335
+ * service. The structural `prompt` names the observation and carries the
336
+ * managed prompt version, so the generation the service records on success and
337
+ * on error is the single one Langfuse links to that prompt — the client never
338
+ * records a second observation of its own.
339
+ *
340
+ * `userId`, `sessionId` and `tags` travel as typed trace fields and never
341
+ * through `serializeCallContext`, which is the metadata path. The user
342
+ * therefore appears twice — typed here and, as it always has, inside the
343
+ * metadata bag the existing dashboards read.
344
+ */
345
+ buildTraceContext(scope) {
346
+ const { resolved, callContext, sessionId, traceTags, } = scope;
347
+ return {
348
+ prompt: {
349
+ name: resolved.name,
350
+ version: resolved.version,
351
+ isFallback: resolved.isFallback,
352
+ },
353
+ userId: this.toTraceUserId(callContext?.userId),
354
+ sessionId,
355
+ tags: traceTags,
356
+ metadata: {
357
+ ...this.serializeCallContext(callContext),
358
+ promptVersion: resolved.version,
359
+ isFallback: resolved.isFallback,
360
+ },
361
+ };
362
+ }
363
+ /**
364
+ * The call context holds the user as whatever the application uses for its
365
+ * own ids, while Langfuse holds it as a string. Absent stays absent, so a
366
+ * call that names no user leaves the trace's user field for the scope to fill.
367
+ */
368
+ toTraceUserId(userId) {
369
+ if (userId === null || userId === undefined) {
370
+ return undefined;
371
+ }
372
+ return String(userId);
373
+ }
374
+ assertOverridesAllowed(promptName, overrides) {
375
+ if (this.mode === 'experiment' || !overrides) {
376
+ return;
377
+ }
378
+ const hasOverride = Object.values(overrides).some((value) => value !== undefined);
379
+ if (hasOverride) {
380
+ throw new errors_1.LLMConfigError(`per-call overrides are rejected by a production-mode client for "${promptName}"`, { promptName });
381
+ }
382
+ }
383
+ serializeCallContext(callContext) {
384
+ if (!callContext) {
385
+ return {};
386
+ }
387
+ return Object.fromEntries(Object.entries(callContext).filter((entry) => (entry[1] !== undefined && entry[1] !== null)));
388
+ }
389
+ extractStatus(error) {
390
+ if (error
391
+ && typeof error === 'object'
392
+ && 'status' in error
393
+ && typeof error.status === 'number') {
394
+ return error.status;
395
+ }
396
+ return null;
397
+ }
398
+ isRetryableStatus(status) {
399
+ if (status === null) {
400
+ return true;
401
+ }
402
+ return status === 429 || status >= 500;
403
+ }
404
+ }
405
+ exports.LLMClientEngine = LLMClientEngine;
406
+ //# sourceMappingURL=LLMClientEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LLMClientEngine.js","sourceRoot":"","sources":["../../src/client/LLMClientEngine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,200 @@
1
+ import { type LLMToolDefinition, type LLMToolResult, type LLMTerminalToolOutcome, type LLMToolLoopStopReasons } from '../LLMService.typedefs';
2
+ import { type LLMPromptRegistry } from '../client/defineLLMPrompts';
3
+ import { type LLMVariableValue } from '../client/promptSnapshot.typedefs';
4
+ import { type LLMCallOverrides, type LLMClientCallContext, type LLMPlainMessage } from '../client/llmClient.typedefs';
5
+ import { type LLMAgentSubagent } from '../client/LLMAgent';
6
+ /**
7
+ * Structured progress events an agent run emits while it works. They exist for
8
+ * two consumers with different needs: live UI updates (publish each event over
9
+ * a subscription/WS channel) and durable run history (persist each event as it
10
+ * arrives). Events are observability output, not control flow — a listener
11
+ * failure never affects the run.
12
+ */
13
+ export declare enum LLMAgentEventTypes {
14
+ AgentStarted = "agent_started",
15
+ AgentMessage = "agent_message",
16
+ AgentCompleted = "agent_completed",
17
+ AgentFailed = "agent_failed",
18
+ ToolCallStarted = "tool_call_started",
19
+ ToolCallCompleted = "tool_call_completed",
20
+ ToolCallFailed = "tool_call_failed",
21
+ ToolCallDenied = "tool_call_denied",
22
+ SubagentStarted = "subagent_started",
23
+ SubagentCompleted = "subagent_completed",
24
+ SubagentFailed = "subagent_failed"
25
+ }
26
+ /**
27
+ * `agent` names the run that emitted the event: the prompt name for the root
28
+ * run, the subagent's `name` for a delegated run. `runId` identifies that run
29
+ * uniquely within the root run's event stream (ids come from one sequence
30
+ * spanning the whole tree), so a flat listener can rebuild the run tree even
31
+ * when the same subagent runs twice or tools execute in parallel.
32
+ */
33
+ interface LLMAgentEventBase {
34
+ agent: string;
35
+ runId: number;
36
+ }
37
+ /** Correlates the started/completed/failed events of one tool invocation. */
38
+ interface LLMAgentInvocationEventBase extends LLMAgentEventBase {
39
+ invocationId: number;
40
+ }
41
+ /**
42
+ * `subagentRunId` is the `runId` carried by the delegated run's own events,
43
+ * linking a Subagent* event to the nested Agent* events it produced.
44
+ */
45
+ interface LLMAgentSubagentEventBase extends LLMAgentInvocationEventBase {
46
+ subagent: string;
47
+ subagentRunId: number;
48
+ }
49
+ export interface LLMAgentStartedEvent extends LLMAgentEventBase {
50
+ type: LLMAgentEventTypes.AgentStarted;
51
+ input: string;
52
+ }
53
+ /**
54
+ * Visible assistant text the model produced in a tool-calling round that will
55
+ * continue the loop — narration emitted alongside tool calls, before those
56
+ * tools run. The final round's answer is never sent here (it is
57
+ * `LLMAgentCompletedEvent.output`); reasoning/thinking content and
58
+ * empty/whitespace-only text are never sent either. `agent`/`runId` identify
59
+ * the emitting run, so a subagent's narration is attributed to the subagent.
60
+ */
61
+ export interface LLMAgentMessageEvent extends LLMAgentEventBase {
62
+ type: LLMAgentEventTypes.AgentMessage;
63
+ text: string;
64
+ }
65
+ export interface LLMAgentCompletedEvent extends LLMAgentEventBase {
66
+ type: LLMAgentEventTypes.AgentCompleted;
67
+ output: string;
68
+ durationMs: number;
69
+ }
70
+ export interface LLMAgentFailedEvent extends LLMAgentEventBase {
71
+ type: LLMAgentEventTypes.AgentFailed;
72
+ error: string;
73
+ durationMs: number;
74
+ }
75
+ export interface LLMAgentToolCallStartedEvent extends LLMAgentInvocationEventBase {
76
+ type: LLMAgentEventTypes.ToolCallStarted;
77
+ tool: string;
78
+ input: unknown;
79
+ }
80
+ export interface LLMAgentToolCallCompletedEvent extends LLMAgentInvocationEventBase {
81
+ type: LLMAgentEventTypes.ToolCallCompleted;
82
+ tool: string;
83
+ output: LLMToolResult;
84
+ durationMs: number;
85
+ }
86
+ export interface LLMAgentToolCallFailedEvent extends LLMAgentInvocationEventBase {
87
+ type: LLMAgentEventTypes.ToolCallFailed;
88
+ tool: string;
89
+ error: string;
90
+ durationMs: number;
91
+ }
92
+ /**
93
+ * A call the model made that never ran: the tool's `canExecute` precondition
94
+ * refused it. It replaces the `tool_call_completed` of that invocation (the
95
+ * `tool_call_started` before it shares the `invocationId`), and the run
96
+ * continues — the `reason` goes back to the model as the call's result. A
97
+ * refused delegation reports here too, with `tool` naming the subagent; the
98
+ * `subagent_started` that precedes it has no nested run because the subagent
99
+ * never started.
100
+ */
101
+ export interface LLMAgentToolCallDeniedEvent extends LLMAgentInvocationEventBase {
102
+ type: LLMAgentEventTypes.ToolCallDenied;
103
+ tool: string;
104
+ reason: string;
105
+ }
106
+ export interface LLMAgentSubagentStartedEvent extends LLMAgentSubagentEventBase {
107
+ type: LLMAgentEventTypes.SubagentStarted;
108
+ input: string;
109
+ }
110
+ export interface LLMAgentSubagentCompletedEvent extends LLMAgentSubagentEventBase {
111
+ type: LLMAgentEventTypes.SubagentCompleted;
112
+ output: LLMToolResult;
113
+ durationMs: number;
114
+ }
115
+ export interface LLMAgentSubagentFailedEvent extends LLMAgentSubagentEventBase {
116
+ type: LLMAgentEventTypes.SubagentFailed;
117
+ error: string;
118
+ durationMs: number;
119
+ }
120
+ export type LLMAgentEvent = LLMAgentStartedEvent | LLMAgentMessageEvent | LLMAgentCompletedEvent | LLMAgentFailedEvent | LLMAgentToolCallStartedEvent | LLMAgentToolCallCompletedEvent | LLMAgentToolCallFailedEvent | LLMAgentToolCallDeniedEvent | LLMAgentSubagentStartedEvent | LLMAgentSubagentCompletedEvent | LLMAgentSubagentFailedEvent;
121
+ /**
122
+ * May be async: a returned promise's rejection is caught and logged, so a
123
+ * failing listener (WS publish, DB persist) never affects the agent run.
124
+ */
125
+ export type LLMAgentEventListener = (event: LLMAgentEvent) => void | Promise<void>;
126
+ /**
127
+ * A turn that produced a model answer: either the model finished on its own
128
+ * (`Completed`) or the loop hit `maxToolIterations` (`MaxIterations`). `output`
129
+ * is the bound schema's type, or the final assistant text when no schema is
130
+ * bound — exactly what `generate` returns.
131
+ */
132
+ export interface LLMAgentAnsweredRunResult<Output> {
133
+ stopReason: Exclude<LLMToolLoopStopReasons, LLMToolLoopStopReasons.TerminalTool>;
134
+ output: Output;
135
+ /** Visible assistant text of the final round. */
136
+ text: string;
137
+ terminalTool?: undefined;
138
+ }
139
+ /**
140
+ * A turn ended by a tool declaring `terminal` (for example an `ask_user` tool).
141
+ * The model produced no final answer — the round ran in full, its results were
142
+ * not fed back, and no further model round started — so the turn's outcome is
143
+ * `terminalTool`, which the application handles before resuming the agent.
144
+ */
145
+ export interface LLMAgentTerminalToolRunResult {
146
+ stopReason: LLMToolLoopStopReasons.TerminalTool;
147
+ terminalTool: LLMTerminalToolOutcome;
148
+ /** Visible assistant text of the terminating round; often empty. */
149
+ text: string;
150
+ output?: undefined;
151
+ }
152
+ /**
153
+ * What one agent run produced. Discriminate on `stopReason` (or on the presence
154
+ * of `terminalTool`) to tell an answered turn from one handed back to the
155
+ * application by a terminal tool.
156
+ */
157
+ export type LLMAgentRunResult<Output> = LLMAgentAnsweredRunResult<Output> | LLMAgentTerminalToolRunResult;
158
+ /**
159
+ * Per-run inputs shared by both `runAgent` forms. When running an `LLMAgent`
160
+ * instance these are the only options — the agent already carries its tools,
161
+ * subagents, and iteration bound.
162
+ */
163
+ export interface LLMAgentRunOptions<Variables extends Record<string, LLMVariableValue>> {
164
+ /** Variables compiled into the agent's instructions prompt. */
165
+ variables: Variables;
166
+ /** The user request the agent works on this run. */
167
+ input: string;
168
+ /** Prior conversation restored from persisted session state. */
169
+ history?: LLMPlainMessage[];
170
+ context?: LLMClientCallContext;
171
+ /**
172
+ * Groups the traces of one conversation, review, or agent run into a single
173
+ * Langfuse session, subagent runs included. It is a typed Langfuse trace
174
+ * field, not metadata, so it never reaches the reporter's payload. Top level
175
+ * rather than nested under a trace object because a session is understandable
176
+ * without knowing what a trace is. Keep the anchor stable — changing it
177
+ * splits a session's history in two.
178
+ */
179
+ sessionId?: string;
180
+ /**
181
+ * Langfuse trace tags. Typed Langfuse trace fields, not metadata. The `trace`
182
+ * prefix is deliberate: a bare `tags` says nothing about which system reads
183
+ * them.
184
+ */
185
+ traceTags?: string[];
186
+ abortSignal?: AbortSignal;
187
+ overrides?: LLMCallOverrides;
188
+ onEvent?: LLMAgentEventListener;
189
+ }
190
+ /**
191
+ * Options for the prompt-key form of `runAgent`, where the agent shape is
192
+ * declared inline instead of via an `LLMAgent` instance.
193
+ */
194
+ export interface LLMAgentInlineRunOptions<Variables extends Record<string, LLMVariableValue>, Registry extends LLMPromptRegistry, VariableMap extends Record<keyof Registry, string>> extends LLMAgentRunOptions<Variables> {
195
+ /** Executable tools available to the agent. */
196
+ tools?: LLMToolDefinition[];
197
+ subagents?: LLMAgentSubagent<Registry, VariableMap>[];
198
+ maxToolIterations?: number;
199
+ }
200
+ export {};
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LLMAgentEventTypes = void 0;
4
+ /**
5
+ * Structured progress events an agent run emits while it works. They exist for
6
+ * two consumers with different needs: live UI updates (publish each event over
7
+ * a subscription/WS channel) and durable run history (persist each event as it
8
+ * arrives). Events are observability output, not control flow — a listener
9
+ * failure never affects the run.
10
+ */
11
+ var LLMAgentEventTypes;
12
+ (function (LLMAgentEventTypes) {
13
+ LLMAgentEventTypes["AgentStarted"] = "agent_started";
14
+ LLMAgentEventTypes["AgentMessage"] = "agent_message";
15
+ LLMAgentEventTypes["AgentCompleted"] = "agent_completed";
16
+ LLMAgentEventTypes["AgentFailed"] = "agent_failed";
17
+ LLMAgentEventTypes["ToolCallStarted"] = "tool_call_started";
18
+ LLMAgentEventTypes["ToolCallCompleted"] = "tool_call_completed";
19
+ LLMAgentEventTypes["ToolCallFailed"] = "tool_call_failed";
20
+ LLMAgentEventTypes["ToolCallDenied"] = "tool_call_denied";
21
+ LLMAgentEventTypes["SubagentStarted"] = "subagent_started";
22
+ LLMAgentEventTypes["SubagentCompleted"] = "subagent_completed";
23
+ LLMAgentEventTypes["SubagentFailed"] = "subagent_failed";
24
+ })(LLMAgentEventTypes || (exports.LLMAgentEventTypes = LLMAgentEventTypes = {}));
25
+ //# sourceMappingURL=agentRun.typedefs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentRun.typedefs.js","sourceRoot":"","sources":["../../src/client/agentRun.typedefs.ts"],"names":[],"mappings":";;;AAeA;;;;;;GAMG;AACH,IAAY,kBAYX;AAZD,WAAY,kBAAkB;IAC5B,oDAA8B,CAAA;IAC9B,oDAA8B,CAAA;IAC9B,wDAAkC,CAAA;IAClC,kDAA4B,CAAA;IAC5B,2DAAqC,CAAA;IACrC,+DAAyC,CAAA;IACzC,yDAAmC,CAAA;IACnC,yDAAmC,CAAA;IACnC,0DAAoC,CAAA;IACpC,8DAAwC,CAAA;IACxC,wDAAkC,CAAA;AACpC,CAAC,EAZW,kBAAkB,kCAAlB,kBAAkB,QAY7B"}