@multiplayer-app/ai-agent-node 0.1.0-beta.8 → 0.1.0-beta.81

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 (338) hide show
  1. package/README.md +2 -2
  2. package/dist/cjs/config.cjs +88 -37
  3. package/dist/cjs/config.cjs.map +1 -1
  4. package/dist/cjs/config.d.ts +62 -23
  5. package/dist/cjs/config.d.ts.map +1 -1
  6. package/dist/cjs/helpers/AIHelper.cjs +134 -68
  7. package/dist/cjs/helpers/AIHelper.cjs.map +1 -1
  8. package/dist/cjs/helpers/AIHelper.d.ts +24 -16
  9. package/dist/cjs/helpers/AIHelper.d.ts.map +1 -1
  10. package/dist/cjs/helpers/AIHelper.test.cjs +22 -15
  11. package/dist/cjs/helpers/AIHelper.test.cjs.map +1 -1
  12. package/dist/cjs/helpers/ConfigHelper.cjs +15 -6
  13. package/dist/cjs/helpers/ConfigHelper.cjs.map +1 -1
  14. package/dist/cjs/helpers/ConfigHelper.d.ts.map +1 -1
  15. package/dist/cjs/helpers/FileHelper.cjs +131 -151
  16. package/dist/cjs/helpers/FileHelper.cjs.map +1 -1
  17. package/dist/cjs/helpers/FileHelper.d.ts +19 -25
  18. package/dist/cjs/helpers/FileHelper.d.ts.map +1 -1
  19. package/dist/cjs/helpers/index.cjs +0 -1
  20. package/dist/cjs/helpers/index.cjs.map +1 -1
  21. package/dist/cjs/helpers/index.d.ts +0 -1
  22. package/dist/cjs/helpers/index.d.ts.map +1 -1
  23. package/dist/cjs/index.cjs +125 -28
  24. package/dist/cjs/index.cjs.map +1 -1
  25. package/dist/cjs/index.d.ts +47 -11
  26. package/dist/cjs/index.d.ts.map +1 -1
  27. package/dist/cjs/libs/index.cjs +0 -1
  28. package/dist/cjs/libs/index.cjs.map +1 -1
  29. package/dist/cjs/libs/index.d.ts +0 -1
  30. package/dist/cjs/libs/index.d.ts.map +1 -1
  31. package/dist/cjs/libs/s3/index.cjs +3 -39
  32. package/dist/cjs/libs/s3/index.cjs.map +1 -1
  33. package/dist/cjs/libs/s3/index.d.ts +1 -2
  34. package/dist/cjs/libs/s3/index.d.ts.map +1 -1
  35. package/dist/cjs/libs/s3/s3.lib.cjs +173 -186
  36. package/dist/cjs/libs/s3/s3.lib.cjs.map +1 -1
  37. package/dist/cjs/libs/s3/s3.lib.d.ts +29 -22
  38. package/dist/cjs/libs/s3/s3.lib.d.ts.map +1 -1
  39. package/dist/cjs/processors/ActivityProcessor.cjs +53 -0
  40. package/dist/cjs/processors/ActivityProcessor.cjs.map +1 -0
  41. package/dist/cjs/processors/ActivityProcessor.d.ts +34 -0
  42. package/dist/cjs/processors/ActivityProcessor.d.ts.map +1 -0
  43. package/dist/cjs/processors/ActivityProcessor.test.cjs +139 -0
  44. package/dist/cjs/processors/ActivityProcessor.test.cjs.map +1 -0
  45. package/dist/cjs/processors/ActivityProcessor.test.d.ts +2 -0
  46. package/dist/cjs/processors/ActivityProcessor.test.d.ts.map +1 -0
  47. package/dist/cjs/processors/AgentProcessor.cjs +47 -0
  48. package/dist/cjs/processors/AgentProcessor.cjs.map +1 -0
  49. package/dist/cjs/processors/AgentProcessor.d.ts +25 -0
  50. package/dist/cjs/processors/AgentProcessor.d.ts.map +1 -0
  51. package/dist/cjs/processors/AgentProcessor.test.cjs +103 -0
  52. package/dist/cjs/processors/AgentProcessor.test.cjs.map +1 -0
  53. package/dist/cjs/processors/AgentProcessor.test.d.ts +2 -0
  54. package/dist/cjs/processors/AgentProcessor.test.d.ts.map +1 -0
  55. package/dist/cjs/processors/ChatProcessor.cjs +1029 -148
  56. package/dist/cjs/processors/ChatProcessor.cjs.map +1 -1
  57. package/dist/cjs/processors/ChatProcessor.d.ts +108 -12
  58. package/dist/cjs/processors/ChatProcessor.d.ts.map +1 -1
  59. package/dist/cjs/processors/ChatProcessor.test.cjs +803 -0
  60. package/dist/cjs/processors/ChatProcessor.test.cjs.map +1 -0
  61. package/dist/cjs/processors/ChatProcessor.test.d.ts +2 -0
  62. package/dist/cjs/processors/ChatProcessor.test.d.ts.map +1 -0
  63. package/dist/cjs/processors/index.cjs +2 -0
  64. package/dist/cjs/processors/index.cjs.map +1 -1
  65. package/dist/cjs/processors/index.d.ts +2 -0
  66. package/dist/cjs/processors/index.d.ts.map +1 -1
  67. package/dist/cjs/services/AIService.cjs +114 -68
  68. package/dist/cjs/services/AIService.cjs.map +1 -1
  69. package/dist/cjs/services/AIService.d.ts +34 -13
  70. package/dist/cjs/services/AIService.d.ts.map +1 -1
  71. package/dist/cjs/services/CredentialProvider.cjs +62 -0
  72. package/dist/cjs/services/CredentialProvider.cjs.map +1 -0
  73. package/dist/cjs/services/CredentialProvider.d.ts +20 -0
  74. package/dist/cjs/services/CredentialProvider.d.ts.map +1 -0
  75. package/dist/cjs/services/CredentialProvider.test.cjs +71 -0
  76. package/dist/cjs/services/CredentialProvider.test.cjs.map +1 -0
  77. package/dist/cjs/services/CredentialProvider.test.d.ts +2 -0
  78. package/dist/cjs/services/CredentialProvider.test.d.ts.map +1 -0
  79. package/dist/cjs/services/ExecutionContext.cjs +3 -0
  80. package/dist/cjs/services/ExecutionContext.cjs.map +1 -0
  81. package/dist/cjs/services/ExecutionContext.d.ts +4 -0
  82. package/dist/cjs/services/ExecutionContext.d.ts.map +1 -0
  83. package/dist/cjs/services/InternalEventsHandler.cjs +3 -3
  84. package/dist/cjs/services/InternalEventsHandler.cjs.map +1 -1
  85. package/dist/cjs/services/InternalEventsHandler.d.ts +3 -1
  86. package/dist/cjs/services/InternalEventsHandler.d.ts.map +1 -1
  87. package/dist/cjs/services/ModelAccessPolicy.cjs +24 -0
  88. package/dist/cjs/services/ModelAccessPolicy.cjs.map +1 -0
  89. package/dist/cjs/services/ModelAccessPolicy.d.ts +7 -0
  90. package/dist/cjs/services/ModelAccessPolicy.d.ts.map +1 -0
  91. package/dist/cjs/services/ModelFetcher.cjs +2 -8
  92. package/dist/cjs/services/ModelFetcher.cjs.map +1 -1
  93. package/dist/cjs/services/ModelFetcher.d.ts +2 -7
  94. package/dist/cjs/services/ModelFetcher.d.ts.map +1 -1
  95. package/dist/cjs/services/ProviderClientFactory.cjs +29 -0
  96. package/dist/cjs/services/ProviderClientFactory.cjs.map +1 -0
  97. package/dist/cjs/services/ProviderClientFactory.d.ts +9 -0
  98. package/dist/cjs/services/ProviderClientFactory.d.ts.map +1 -0
  99. package/dist/cjs/services/RedisService.cjs +20 -16
  100. package/dist/cjs/services/RedisService.cjs.map +1 -1
  101. package/dist/cjs/services/RedisService.d.ts +5 -2
  102. package/dist/cjs/services/RedisService.d.ts.map +1 -1
  103. package/dist/cjs/services/SocketService.cjs +8 -8
  104. package/dist/cjs/services/SocketService.cjs.map +1 -1
  105. package/dist/cjs/services/SocketService.d.ts +9 -6
  106. package/dist/cjs/services/SocketService.d.ts.map +1 -1
  107. package/dist/cjs/services/TenantCredentialResolver.cjs +136 -0
  108. package/dist/cjs/services/TenantCredentialResolver.cjs.map +1 -0
  109. package/dist/cjs/services/TenantCredentialResolver.d.ts +32 -0
  110. package/dist/cjs/services/TenantCredentialResolver.d.ts.map +1 -0
  111. package/dist/cjs/services/TenantCredentialResolver.test.cjs +113 -0
  112. package/dist/cjs/services/TenantCredentialResolver.test.cjs.map +1 -0
  113. package/dist/cjs/services/TenantCredentialResolver.test.d.ts +2 -0
  114. package/dist/cjs/services/TenantCredentialResolver.test.d.ts.map +1 -0
  115. package/dist/cjs/services/index.cjs +5 -1
  116. package/dist/cjs/services/index.cjs.map +1 -1
  117. package/dist/cjs/services/index.d.ts +5 -1
  118. package/dist/cjs/services/index.d.ts.map +1 -1
  119. package/dist/cjs/store/AgentStore.cjs +14 -4
  120. package/dist/cjs/store/AgentStore.cjs.map +1 -1
  121. package/dist/cjs/store/AgentStore.d.ts +3 -1
  122. package/dist/cjs/store/AgentStore.d.ts.map +1 -1
  123. package/dist/cjs/store/ConfigStore.cjs +14 -3
  124. package/dist/cjs/store/ConfigStore.cjs.map +1 -1
  125. package/dist/cjs/store/ConfigStore.d.ts +2 -0
  126. package/dist/cjs/store/ConfigStore.d.ts.map +1 -1
  127. package/dist/cjs/tools/generateChartTool.d.ts +2 -2
  128. package/dist/cjs/tools/proposeFormValuesTool.d.ts +2 -2
  129. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  130. package/dist/cjs/utils/utils.cjs +31 -0
  131. package/dist/cjs/utils/utils.cjs.map +1 -0
  132. package/dist/cjs/utils/utils.d.ts +5 -0
  133. package/dist/cjs/utils/utils.d.ts.map +1 -0
  134. package/dist/esm/config.d.ts +62 -23
  135. package/dist/esm/config.d.ts.map +1 -1
  136. package/dist/esm/config.js +88 -35
  137. package/dist/esm/config.js.map +1 -1
  138. package/dist/esm/helpers/AIHelper.d.ts +24 -16
  139. package/dist/esm/helpers/AIHelper.d.ts.map +1 -1
  140. package/dist/esm/helpers/AIHelper.js +141 -73
  141. package/dist/esm/helpers/AIHelper.js.map +1 -1
  142. package/dist/esm/helpers/AIHelper.test.js +22 -15
  143. package/dist/esm/helpers/AIHelper.test.js.map +1 -1
  144. package/dist/esm/helpers/ConfigHelper.d.ts.map +1 -1
  145. package/dist/esm/helpers/ConfigHelper.js +15 -6
  146. package/dist/esm/helpers/ConfigHelper.js.map +1 -1
  147. package/dist/esm/helpers/FileHelper.d.ts +19 -25
  148. package/dist/esm/helpers/FileHelper.d.ts.map +1 -1
  149. package/dist/esm/helpers/FileHelper.js +131 -146
  150. package/dist/esm/helpers/FileHelper.js.map +1 -1
  151. package/dist/esm/helpers/index.d.ts +0 -1
  152. package/dist/esm/helpers/index.d.ts.map +1 -1
  153. package/dist/esm/helpers/index.js +0 -1
  154. package/dist/esm/helpers/index.js.map +1 -1
  155. package/dist/esm/index.d.ts +47 -11
  156. package/dist/esm/index.d.ts.map +1 -1
  157. package/dist/esm/index.js +98 -11
  158. package/dist/esm/index.js.map +1 -1
  159. package/dist/esm/libs/index.d.ts +0 -1
  160. package/dist/esm/libs/index.d.ts.map +1 -1
  161. package/dist/esm/libs/index.js +0 -1
  162. package/dist/esm/libs/index.js.map +1 -1
  163. package/dist/esm/libs/s3/index.d.ts +1 -2
  164. package/dist/esm/libs/s3/index.d.ts.map +1 -1
  165. package/dist/esm/libs/s3/index.js +1 -2
  166. package/dist/esm/libs/s3/index.js.map +1 -1
  167. package/dist/esm/libs/s3/s3.lib.d.ts +29 -22
  168. package/dist/esm/libs/s3/s3.lib.d.ts.map +1 -1
  169. package/dist/esm/libs/s3/s3.lib.js +177 -172
  170. package/dist/esm/libs/s3/s3.lib.js.map +1 -1
  171. package/dist/esm/processors/ActivityProcessor.d.ts +34 -0
  172. package/dist/esm/processors/ActivityProcessor.d.ts.map +1 -0
  173. package/dist/esm/processors/ActivityProcessor.js +50 -0
  174. package/dist/esm/processors/ActivityProcessor.js.map +1 -0
  175. package/dist/esm/processors/ActivityProcessor.test.d.ts +2 -0
  176. package/dist/esm/processors/ActivityProcessor.test.d.ts.map +1 -0
  177. package/dist/esm/processors/ActivityProcessor.test.js +137 -0
  178. package/dist/esm/processors/ActivityProcessor.test.js.map +1 -0
  179. package/dist/esm/processors/AgentProcessor.d.ts +25 -0
  180. package/dist/esm/processors/AgentProcessor.d.ts.map +1 -0
  181. package/dist/esm/processors/AgentProcessor.js +44 -0
  182. package/dist/esm/processors/AgentProcessor.js.map +1 -0
  183. package/dist/esm/processors/AgentProcessor.test.d.ts +2 -0
  184. package/dist/esm/processors/AgentProcessor.test.d.ts.map +1 -0
  185. package/dist/esm/processors/AgentProcessor.test.js +101 -0
  186. package/dist/esm/processors/AgentProcessor.test.js.map +1 -0
  187. package/dist/esm/processors/ChatProcessor.d.ts +108 -12
  188. package/dist/esm/processors/ChatProcessor.d.ts.map +1 -1
  189. package/dist/esm/processors/ChatProcessor.js +1038 -150
  190. package/dist/esm/processors/ChatProcessor.js.map +1 -1
  191. package/dist/esm/processors/ChatProcessor.test.d.ts +2 -0
  192. package/dist/esm/processors/ChatProcessor.test.d.ts.map +1 -0
  193. package/dist/esm/processors/ChatProcessor.test.js +801 -0
  194. package/dist/esm/processors/ChatProcessor.test.js.map +1 -0
  195. package/dist/esm/processors/index.d.ts +2 -0
  196. package/dist/esm/processors/index.d.ts.map +1 -1
  197. package/dist/esm/processors/index.js +2 -0
  198. package/dist/esm/processors/index.js.map +1 -1
  199. package/dist/esm/services/AIService.d.ts +34 -13
  200. package/dist/esm/services/AIService.d.ts.map +1 -1
  201. package/dist/esm/services/AIService.js +118 -68
  202. package/dist/esm/services/AIService.js.map +1 -1
  203. package/dist/esm/services/CredentialProvider.d.ts +20 -0
  204. package/dist/esm/services/CredentialProvider.d.ts.map +1 -0
  205. package/dist/esm/services/CredentialProvider.js +60 -0
  206. package/dist/esm/services/CredentialProvider.js.map +1 -0
  207. package/dist/esm/services/CredentialProvider.test.d.ts +2 -0
  208. package/dist/esm/services/CredentialProvider.test.d.ts.map +1 -0
  209. package/dist/esm/services/CredentialProvider.test.js +69 -0
  210. package/dist/esm/services/CredentialProvider.test.js.map +1 -0
  211. package/dist/esm/services/ExecutionContext.d.ts +4 -0
  212. package/dist/esm/services/ExecutionContext.d.ts.map +1 -0
  213. package/dist/esm/services/ExecutionContext.js +2 -0
  214. package/dist/esm/services/ExecutionContext.js.map +1 -0
  215. package/dist/esm/services/InternalEventsHandler.d.ts +3 -1
  216. package/dist/esm/services/InternalEventsHandler.d.ts.map +1 -1
  217. package/dist/esm/services/InternalEventsHandler.js +4 -3
  218. package/dist/esm/services/InternalEventsHandler.js.map +1 -1
  219. package/dist/esm/services/ModelAccessPolicy.d.ts +7 -0
  220. package/dist/esm/services/ModelAccessPolicy.d.ts.map +1 -0
  221. package/dist/esm/services/ModelAccessPolicy.js +20 -0
  222. package/dist/esm/services/ModelAccessPolicy.js.map +1 -0
  223. package/dist/esm/services/ModelFetcher.d.ts +2 -7
  224. package/dist/esm/services/ModelFetcher.d.ts.map +1 -1
  225. package/dist/esm/services/ModelFetcher.js +2 -8
  226. package/dist/esm/services/ModelFetcher.js.map +1 -1
  227. package/dist/esm/services/ProviderClientFactory.d.ts +9 -0
  228. package/dist/esm/services/ProviderClientFactory.d.ts.map +1 -0
  229. package/dist/esm/services/ProviderClientFactory.js +25 -0
  230. package/dist/esm/services/ProviderClientFactory.js.map +1 -0
  231. package/dist/esm/services/RedisService.d.ts +5 -2
  232. package/dist/esm/services/RedisService.d.ts.map +1 -1
  233. package/dist/esm/services/RedisService.js +21 -14
  234. package/dist/esm/services/RedisService.js.map +1 -1
  235. package/dist/esm/services/SocketService.d.ts +9 -6
  236. package/dist/esm/services/SocketService.d.ts.map +1 -1
  237. package/dist/esm/services/SocketService.js +10 -6
  238. package/dist/esm/services/SocketService.js.map +1 -1
  239. package/dist/esm/services/TenantCredentialResolver.d.ts +32 -0
  240. package/dist/esm/services/TenantCredentialResolver.d.ts.map +1 -0
  241. package/dist/esm/services/TenantCredentialResolver.js +133 -0
  242. package/dist/esm/services/TenantCredentialResolver.js.map +1 -0
  243. package/dist/esm/services/TenantCredentialResolver.test.d.ts +2 -0
  244. package/dist/esm/services/TenantCredentialResolver.test.d.ts.map +1 -0
  245. package/dist/esm/services/TenantCredentialResolver.test.js +111 -0
  246. package/dist/esm/services/TenantCredentialResolver.test.js.map +1 -0
  247. package/dist/esm/services/index.d.ts +5 -1
  248. package/dist/esm/services/index.d.ts.map +1 -1
  249. package/dist/esm/services/index.js +5 -1
  250. package/dist/esm/services/index.js.map +1 -1
  251. package/dist/esm/store/AgentStore.d.ts +3 -1
  252. package/dist/esm/store/AgentStore.d.ts.map +1 -1
  253. package/dist/esm/store/AgentStore.js +15 -2
  254. package/dist/esm/store/AgentStore.js.map +1 -1
  255. package/dist/esm/store/ConfigStore.d.ts +2 -0
  256. package/dist/esm/store/ConfigStore.d.ts.map +1 -1
  257. package/dist/esm/store/ConfigStore.js +14 -3
  258. package/dist/esm/store/ConfigStore.js.map +1 -1
  259. package/dist/esm/tools/generateChartTool.d.ts +2 -2
  260. package/dist/esm/tools/proposeFormValuesTool.d.ts +2 -2
  261. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  262. package/dist/esm/utils/utils.d.ts +5 -0
  263. package/dist/esm/utils/utils.d.ts.map +1 -0
  264. package/dist/esm/utils/utils.js +26 -0
  265. package/dist/esm/utils/utils.js.map +1 -0
  266. package/package.json +7 -8
  267. package/dist/cjs/helpers/SetupHelper.cjs +0 -37
  268. package/dist/cjs/helpers/SetupHelper.cjs.map +0 -1
  269. package/dist/cjs/helpers/SetupHelper.d.ts +0 -5
  270. package/dist/cjs/helpers/SetupHelper.d.ts.map +0 -1
  271. package/dist/cjs/libs/kafka/config.cjs +0 -8
  272. package/dist/cjs/libs/kafka/config.cjs.map +0 -1
  273. package/dist/cjs/libs/kafka/config.d.ts +0 -5
  274. package/dist/cjs/libs/kafka/config.d.ts.map +0 -1
  275. package/dist/cjs/libs/kafka/consumer.cjs +0 -131
  276. package/dist/cjs/libs/kafka/consumer.cjs.map +0 -1
  277. package/dist/cjs/libs/kafka/consumer.d.ts +0 -16
  278. package/dist/cjs/libs/kafka/consumer.d.ts.map +0 -1
  279. package/dist/cjs/libs/kafka/index.cjs +0 -19
  280. package/dist/cjs/libs/kafka/index.cjs.map +0 -1
  281. package/dist/cjs/libs/kafka/index.d.ts +0 -3
  282. package/dist/cjs/libs/kafka/index.d.ts.map +0 -1
  283. package/dist/cjs/libs/kafka/kafka.cjs +0 -27
  284. package/dist/cjs/libs/kafka/kafka.cjs.map +0 -1
  285. package/dist/cjs/libs/kafka/kafka.d.ts +0 -3
  286. package/dist/cjs/libs/kafka/kafka.d.ts.map +0 -1
  287. package/dist/cjs/libs/kafka/producer.cjs +0 -48
  288. package/dist/cjs/libs/kafka/producer.cjs.map +0 -1
  289. package/dist/cjs/libs/kafka/producer.d.ts +0 -11
  290. package/dist/cjs/libs/kafka/producer.d.ts.map +0 -1
  291. package/dist/cjs/libs/logger/config.cjs +0 -8
  292. package/dist/cjs/libs/logger/config.cjs.map +0 -1
  293. package/dist/cjs/libs/logger/config.d.ts +0 -5
  294. package/dist/cjs/libs/logger/config.d.ts.map +0 -1
  295. package/dist/cjs/libs/s3/config.cjs +0 -10
  296. package/dist/cjs/libs/s3/config.cjs.map +0 -1
  297. package/dist/cjs/libs/s3/config.d.ts +0 -7
  298. package/dist/cjs/libs/s3/config.d.ts.map +0 -1
  299. package/dist/cjs/services/KafkaService.cjs +0 -122
  300. package/dist/cjs/services/KafkaService.cjs.map +0 -1
  301. package/dist/cjs/services/KafkaService.d.ts +0 -35
  302. package/dist/cjs/services/KafkaService.d.ts.map +0 -1
  303. package/dist/esm/helpers/SetupHelper.d.ts +0 -5
  304. package/dist/esm/helpers/SetupHelper.d.ts.map +0 -1
  305. package/dist/esm/helpers/SetupHelper.js +0 -32
  306. package/dist/esm/helpers/SetupHelper.js.map +0 -1
  307. package/dist/esm/libs/kafka/config.d.ts +0 -5
  308. package/dist/esm/libs/kafka/config.d.ts.map +0 -1
  309. package/dist/esm/libs/kafka/config.js +0 -5
  310. package/dist/esm/libs/kafka/config.js.map +0 -1
  311. package/dist/esm/libs/kafka/consumer.d.ts +0 -16
  312. package/dist/esm/libs/kafka/consumer.d.ts.map +0 -1
  313. package/dist/esm/libs/kafka/consumer.js +0 -125
  314. package/dist/esm/libs/kafka/consumer.js.map +0 -1
  315. package/dist/esm/libs/kafka/index.d.ts +0 -3
  316. package/dist/esm/libs/kafka/index.d.ts.map +0 -1
  317. package/dist/esm/libs/kafka/index.js +0 -3
  318. package/dist/esm/libs/kafka/index.js.map +0 -1
  319. package/dist/esm/libs/kafka/kafka.d.ts +0 -3
  320. package/dist/esm/libs/kafka/kafka.d.ts.map +0 -1
  321. package/dist/esm/libs/kafka/kafka.js +0 -24
  322. package/dist/esm/libs/kafka/kafka.js.map +0 -1
  323. package/dist/esm/libs/kafka/producer.d.ts +0 -11
  324. package/dist/esm/libs/kafka/producer.d.ts.map +0 -1
  325. package/dist/esm/libs/kafka/producer.js +0 -45
  326. package/dist/esm/libs/kafka/producer.js.map +0 -1
  327. package/dist/esm/libs/logger/config.d.ts +0 -5
  328. package/dist/esm/libs/logger/config.d.ts.map +0 -1
  329. package/dist/esm/libs/logger/config.js +0 -5
  330. package/dist/esm/libs/logger/config.js.map +0 -1
  331. package/dist/esm/libs/s3/config.d.ts +0 -7
  332. package/dist/esm/libs/s3/config.d.ts.map +0 -1
  333. package/dist/esm/libs/s3/config.js +0 -7
  334. package/dist/esm/libs/s3/config.js.map +0 -1
  335. package/dist/esm/services/KafkaService.d.ts +0 -35
  336. package/dist/esm/services/KafkaService.d.ts.map +0 -1
  337. package/dist/esm/services/KafkaService.js +0 -123
  338. package/dist/esm/services/KafkaService.js.map +0 -1
@@ -1,15 +1,47 @@
1
- import { AgentAttachmentType, MessageRole } from "@multiplayer-app/ai-agent-types";
2
- import { AIService } from "../services";
3
- import { ModelStore } from "../store";
4
- import { logger } from "../libs/logger";
5
- import { ConfigStore } from "../store";
6
- import { isImage, prepareImageForVisionAPI, extractTextFromDocument } from "./FileHelper";
1
+ import { AgentAttachmentType, MessageRole } from '@multiplayer-app/ai-agent-types';
2
+ import { AIService } from '../services';
3
+ import { ModelStore } from '../store';
4
+ import { logger } from '../libs/logger';
5
+ import { ConfigStore } from '../store';
6
+ import { getAgentToolName } from '../utils/utils';
7
7
  export class AIHelper {
8
- static async convertUserMessage(msg, ignoreFileAttachments) {
9
- const userContent = [{
10
- type: "text",
8
+ fileHelper;
9
+ aiService;
10
+ constructor(fileHelper, config, tenantCredentialResolver) {
11
+ this.fileHelper = fileHelper;
12
+ this.aiService = new AIService(ModelStore.getInstance(), config.ai, tenantCredentialResolver);
13
+ }
14
+ getLanguageModelId(modelId) {
15
+ const model = this.aiService.getLanguageModelId(modelId);
16
+ return model.id;
17
+ }
18
+ clip(value, max) {
19
+ if (value.length <= max)
20
+ return value;
21
+ return `${value.slice(0, max)}…`;
22
+ }
23
+ renderContextValue(value, limits) {
24
+ if (value === null || value === undefined)
25
+ return '';
26
+ if (typeof value === 'string')
27
+ return this.clip(value, limits.maxString);
28
+ if (typeof value === 'number' || typeof value === 'boolean')
29
+ return String(value);
30
+ try {
31
+ const json = JSON.stringify(value);
32
+ return this.clip(json, limits.maxJson);
33
+ }
34
+ catch {
35
+ return '';
36
+ }
37
+ }
38
+ async convertUserMessage(msg, ignoreFileAttachments) {
39
+ const userContent = [
40
+ {
41
+ type: 'text',
11
42
  text: msg.content
12
- }];
43
+ }
44
+ ];
13
45
  const atts = msg.attachments ?? [];
14
46
  if (!atts.length) {
15
47
  return userContent;
@@ -20,21 +52,21 @@ export class AIHelper {
20
52
  if (ignoreFileAttachments) {
21
53
  continue;
22
54
  }
23
- if (isImage(att)) {
24
- const image = await prepareImageForVisionAPI(att);
55
+ if (this.fileHelper.isImage(att)) {
56
+ const image = await this.fileHelper.prepareImageForVisionAPI(att);
25
57
  if (image) {
26
58
  userContent.push({
27
- type: "image",
59
+ type: 'image',
28
60
  image: image.image_url.url,
29
- mediaType: att.mimeType,
61
+ mediaType: att.mimeType
30
62
  });
31
63
  }
32
64
  }
33
65
  else {
34
- const fileText = await extractTextFromDocument(att);
66
+ const fileText = await this.fileHelper.extractTextFromDocument(att);
35
67
  if (fileText) {
36
68
  userContent.push({
37
- type: "text",
69
+ type: 'text',
38
70
  text: `${att.type}: ${att.name}(${att.mimeType})\n ${fileText}`
39
71
  });
40
72
  }
@@ -53,9 +85,8 @@ export class AIHelper {
53
85
  if (title)
54
86
  lines.push(` title: ${title}`);
55
87
  if (selectedText) {
56
- const clipped = selectedText.length > 4000 ? `${selectedText.slice(0, 4000)}…` : selectedText;
57
88
  lines.push(' BEGIN_UNTRUSTED_WEB_SNIPPET');
58
- lines.push(clipped);
89
+ lines.push(this.clip(selectedText, 4000));
59
90
  lines.push(' END_UNTRUSTED_WEB_SNIPPET');
60
91
  }
61
92
  continue;
@@ -64,7 +95,7 @@ export class AIHelper {
64
95
  const formId = typeof md?.formId === 'string' ? md.formId : undefined;
65
96
  const fieldName = typeof md?.fieldName === 'string' ? md.fieldName : undefined;
66
97
  const fieldLabel = typeof md?.fieldLabel === 'string' ? md.fieldLabel : undefined;
67
- const value = typeof md?.value === 'string' ? md.value : '';
98
+ const value = md?.value;
68
99
  const inputType = typeof md?.inputType === 'string' ? md.inputType : undefined;
69
100
  const options = Array.isArray(md?.options) ? md.options : [];
70
101
  if (formId)
@@ -81,15 +112,18 @@ export class AIHelper {
81
112
  const l = typeof o?.label === 'string' ? o.label : '';
82
113
  if (!v && !l)
83
114
  return '';
84
- return l && v ? `${l} (${v})` : (l || v);
115
+ return l && v ? `${l} (${v})` : l || v;
85
116
  })
86
117
  .filter(Boolean)
87
118
  .join(', ');
88
119
  if (rendered)
89
120
  lines.push(` options: ${rendered}${options.length > 30 ? '…' : ''}`);
90
121
  }
91
- if (value)
92
- lines.push(` value: ${value.length > 1000 ? `${value.slice(0, 1000)}…` : value}`);
122
+ if (value !== undefined) {
123
+ const rendered = this.renderContextValue(value, { maxString: 1000, maxJson: 2500 });
124
+ if (rendered)
125
+ lines.push(` value: ${rendered}`);
126
+ }
93
127
  continue;
94
128
  }
95
129
  if (kind === 'formSnapshot') {
@@ -104,17 +138,17 @@ export class AIHelper {
104
138
  for (const f of fields.slice(0, 50)) {
105
139
  const name = typeof f?.name === 'string' ? f.name : 'unknown';
106
140
  const label = typeof f?.label === 'string' ? f.label : undefined;
107
- const value = typeof f?.value === 'string' ? f.value : '';
141
+ const value = f?.value;
108
142
  const inputType = typeof f?.inputType === 'string' ? f.inputType : undefined;
109
143
  const options = Array.isArray(f?.options) ? f.options : [];
110
- const clipped = value.length > 1000 ? `${value.slice(0, 1000)}…` : value;
144
+ const clipped = this.renderContextValue(value, { maxString: 1000, maxJson: 2500 });
111
145
  const meta = [];
112
146
  if (inputType)
113
147
  meta.push(`type=${inputType}`);
114
148
  if ((inputType === 'select' || inputType === 'radio') && options.length) {
115
149
  const opts = options
116
150
  .slice(0, 20)
117
- .map((o) => typeof o?.value === 'string' ? o.value : '')
151
+ .map((o) => (typeof o?.value === 'string' ? o.value : ''))
118
152
  .filter(Boolean)
119
153
  .join('|');
120
154
  if (opts)
@@ -124,84 +158,122 @@ export class AIHelper {
124
158
  }
125
159
  continue;
126
160
  }
161
+ if (kind === 'pageContext') {
162
+ const url = typeof md?.source?.url === 'string' ? md.source.url : att.url;
163
+ const title = typeof md?.title === 'string' ? md.title : undefined;
164
+ const route = typeof md?.source?.route === 'string' ? md.source.route : undefined;
165
+ const data = md?.data;
166
+ if (url)
167
+ lines.push(` url: ${url}`);
168
+ if (title)
169
+ lines.push(` title: ${title}`);
170
+ if (route)
171
+ lines.push(` route: ${route}`);
172
+ if (data && typeof data === 'object') {
173
+ const entries = Object.entries(data)
174
+ .filter(([k]) => typeof k === 'string' && k.length > 0)
175
+ .sort(([a], [b]) => a.localeCompare(b));
176
+ if (entries.length) {
177
+ lines.push(' data:');
178
+ const limits = { maxString: 1000, maxJson: 1500 };
179
+ for (const [k, v] of entries.slice(0, 40)) {
180
+ const rendered = this.renderContextValue(v, limits);
181
+ if (!rendered)
182
+ continue;
183
+ lines.push(` - ${k}: ${rendered}`);
184
+ }
185
+ if (entries.length > 40) {
186
+ lines.push(` - … (${entries.length - 40} more keys)`);
187
+ }
188
+ }
189
+ }
190
+ else if (data !== undefined) {
191
+ const rendered = this.renderContextValue(data, { maxString: 1000, maxJson: 2000 });
192
+ if (rendered)
193
+ lines.push(` data: ${rendered}`);
194
+ }
195
+ continue;
196
+ }
127
197
  // Custom kind: prefer summary, fall back to minimal JSON.
128
198
  const title = typeof md?.title === 'string' ? md.title : undefined;
129
199
  const summary = typeof md?.summary === 'string' ? md.summary : undefined;
130
200
  if (title)
131
201
  lines.push(` title: ${title}`);
132
202
  if (summary) {
133
- lines.push(` summary: ${summary.length > 4000 ? `${summary.slice(0, 4000)}…` : summary}`);
203
+ lines.push(` summary: ${this.clip(summary, 4000)}`);
134
204
  continue;
135
205
  }
136
206
  if (md?.data !== undefined) {
137
- const json = JSON.stringify(md.data);
138
- lines.push(` data: ${json.length > 2000 ? `${json.slice(0, 2000)}…` : json}`);
207
+ const rendered = this.renderContextValue(md.data, { maxString: 2000, maxJson: 5000 });
208
+ if (rendered)
209
+ lines.push(` data: ${rendered}`);
139
210
  }
140
211
  }
141
212
  if (lines.length) {
142
213
  userContent.push({
143
- type: "text",
214
+ type: 'text',
144
215
  text: `Context attachments (non-authoritative; user message is primary):\n ${lines.join('\n')}`
145
216
  });
146
217
  }
147
218
  return userContent;
148
219
  }
149
- static getAgentConfigs(contextKey) {
220
+ getAgentConfigs(contextKey) {
150
221
  const agents = ConfigStore.getInstance().getAgentsForContext(contextKey);
151
222
  if (!agents.length) {
152
223
  throw new Error(`Agent configs not found for context key: ${contextKey}`);
153
224
  }
154
225
  return agents;
155
226
  }
156
- static async getAgentOptions(params, options = {}) {
157
- const { contextKey, messages, modelId, context, agentName } = params;
227
+ async getAgentOptions(params, options = {}) {
228
+ const { contextKey, messages, modelId, context, agentName, executionContext } = params;
158
229
  let agentConfig = ConfigStore.getInstance().getAgentConfigByName(agentName);
159
230
  if (contextKey && messages) {
160
- agentConfig = await AIHelper.selectAgentConfig(contextKey, messages);
231
+ agentConfig = await this.selectAgentConfig(contextKey, messages, options.onStepFinish, executionContext);
161
232
  }
162
- const aiService = new AIService(ModelStore.getInstance());
163
- const agentOptions = aiService.getAgentOptions(agentConfig, modelId, context);
233
+ const agentOptions = this.aiService.getAgentOptions(agentConfig, modelId, context);
164
234
  return {
165
235
  ...agentOptions,
166
- ...options,
236
+ ...options
167
237
  };
168
238
  }
169
- static async selectAgentConfig(contextKey, messages) {
170
- const configs = AIHelper.getAgentConfigs(contextKey);
239
+ getAgentOptionsFromConfig(agentConfig, context) {
240
+ return this.aiService.getAgentOptions(agentConfig, undefined, context);
241
+ }
242
+ async selectAgentConfig(contextKey, messages, onStepFinish, executionContext) {
243
+ const configs = this.getAgentConfigs(contextKey);
171
244
  if (configs.length === 1) {
172
245
  return configs[0];
173
246
  }
174
- const aiService = new AIService(ModelStore.getInstance());
175
- const systemPrompt = `Select the most appropriate agent for the given user prompt.
176
- Return only the agent name, no quotes or extra text.
177
- Available agents: ${JSON.stringify(configs.map(config => ({
247
+ const lastUsedAgent = messages.find((message) => message.agentName);
248
+ const systemPrompt = `Select the most appropriate agent for the given user message.
249
+ Return only the agent name, no quotes or extra text. ${lastUsedAgent ? `Latest Used agent: ${lastUsedAgent}` : ''}
250
+ Available agents: ${JSON.stringify(configs.map((config) => ({
178
251
  name: config.name,
179
252
  description: config.description,
180
- tools: config.tools.map(({ data }) => data.title)
253
+ tools: config.tools?.map(getAgentToolName)
181
254
  })))}`;
182
- const agentName = await aiService.generateText({
183
- messages,
255
+ const promptMessages = messages.length > 2 ? messages.slice(messages.length - 2) : messages;
256
+ const agentName = await this.aiService.generateText({
257
+ messages: await this.convertMessages(promptMessages, true),
184
258
  system: systemPrompt,
185
- temperature: 0.7,
186
- maxOutputTokens: 2000
259
+ temperature: 0.1,
260
+ maxOutputTokens: 2000,
261
+ onStepFinish,
262
+ executionContext
187
263
  });
188
- const agent = configs.find(config => config.name === agentName);
264
+ const agent = configs.find((config) => config.name === agentName);
189
265
  if (!agent) {
190
266
  // fallback, agent not found, grabbing first from the list
191
267
  return configs[0];
192
268
  }
193
269
  return agent;
194
270
  }
195
- static async getAssistantResponse(messages, signal, options = {}) {
271
+ async getAssistantResponse(messages, options = {}) {
196
272
  try {
197
- const aiService = new AIService(ModelStore.getInstance());
198
273
  const processedOptions = this.processToolChoice(options, messages);
199
- return aiService.generateText({
200
- temperature: 0.7,
201
- maxOutputTokens: 2000,
274
+ return this.aiService.generateText({
202
275
  ...processedOptions,
203
- messages: await AIHelper.convertMessages(messages),
204
- signal,
276
+ messages: await this.convertMessages(messages),
205
277
  });
206
278
  }
207
279
  catch (error) {
@@ -209,14 +281,12 @@ Available agents: ${JSON.stringify(configs.map(config => ({
209
281
  throw error;
210
282
  }
211
283
  }
212
- static processToolChoice(options, agentMessages) {
284
+ processToolChoice(options, agentMessages) {
213
285
  if (!options?.toolChoice) {
214
286
  return options || {};
215
287
  }
216
288
  // Find the latest assistant message
217
- const latestAssistantMessage = [...agentMessages]
218
- .reverse()
219
- .find(msg => msg.role === MessageRole.Assistant);
289
+ const latestAssistantMessage = [...agentMessages].reverse().find((msg) => msg.role === MessageRole.Assistant);
220
290
  // Handle 'required' toolChoice: if any tool was called, set to 'auto'
221
291
  if (options.toolChoice === 'required') {
222
292
  const anyToolWasCalled = (latestAssistantMessage?.toolCalls?.length ?? 0) > 0;
@@ -231,7 +301,7 @@ Available agents: ${JSON.stringify(configs.map(config => ({
231
301
  // Handle specific tool toolChoice: if that specific tool was called, set to 'auto'
232
302
  if (typeof options.toolChoice === 'object' && options.toolChoice.type === 'tool') {
233
303
  const toolName = options.toolChoice.toolName;
234
- const toolWasCalled = latestAssistantMessage?.toolCalls?.some(toolCall => toolCall.name === toolName) ?? false;
304
+ const toolWasCalled = latestAssistantMessage?.toolCalls?.some((toolCall) => toolCall.name === toolName) ?? false;
235
305
  if (toolWasCalled) {
236
306
  return {
237
307
  ...options,
@@ -241,19 +311,16 @@ Available agents: ${JSON.stringify(configs.map(config => ({
241
311
  }
242
312
  return options;
243
313
  }
244
- static async streamAssistantResponse(agentMessages, signal, options) {
245
- const aiService = new AIService(ModelStore.getInstance());
314
+ async streamAssistantResponse(agentMessages, signal, options) {
246
315
  const messages = await this.convertMessages(agentMessages);
247
316
  const processedOptions = this.processToolChoice(options, agentMessages);
248
- return aiService.streamText({
317
+ return this.aiService.streamText({
249
318
  messages,
250
- temperature: 0.7,
251
- maxOutputTokens: 2000,
252
319
  signal,
253
320
  ...processedOptions
254
321
  });
255
322
  }
256
- static async convertMessages(agentMessages, ignoreToolsAndAttachments = false) {
323
+ async convertMessages(agentMessages, ignoreToolsAndAttachments = false) {
257
324
  const result = [];
258
325
  for (const msg of agentMessages) {
259
326
  if (msg.role === MessageRole.User) {
@@ -276,12 +343,12 @@ Available agents: ${JSON.stringify(configs.map(config => ({
276
343
  };
277
344
  if (!ignoreToolsAndAttachments) {
278
345
  msg.toolCalls?.forEach((toolCall) => {
279
- if (toolCall.output) {
346
+ if (toolCall.output || toolCall.error) {
280
347
  assistantMessage.content.push({
281
348
  type: 'tool-call',
282
349
  toolCallId: toolCall.id,
283
350
  toolName: toolCall.name,
284
- input: toolCall.input
351
+ input: Object.keys(toolCall.input).length ? toolCall.input : { stub: 'stub' }, // todo: remove this workaround when openrouter will have new stable version(last tested: 2.2.3 has reasoning issues)
285
352
  });
286
353
  toolMessage.content.push({
287
354
  type: 'tool-result',
@@ -289,7 +356,7 @@ Available agents: ${JSON.stringify(configs.map(config => ({
289
356
  toolName: toolCall.name,
290
357
  output: {
291
358
  type: 'text',
292
- value: JSON.stringify(toolCall.output)
359
+ value: JSON.stringify(toolCall.output || { error: toolCall.error })
293
360
  }
294
361
  });
295
362
  }
@@ -305,13 +372,14 @@ Available agents: ${JSON.stringify(configs.map(config => ({
305
372
  }
306
373
  return result;
307
374
  }
308
- static async generateTitleForMessage(contextKey, messages) {
375
+ async generateTitleForMessage(contextKey, messages, onStepFinish, executionContext) {
309
376
  try {
310
- const aiService = new AIService(ModelStore.getInstance());
311
377
  const systemPrompt = `Generate descriptive title 5 words maximum for a chat conversation. Return only the title, no quotes or extra text. If user question is opaque, assume it is related to ${contextKey} topic.`;
312
- return aiService.generateText({
313
- messages: await AIHelper.convertMessages(messages, true),
378
+ return this.aiService.generateText({
379
+ messages: await this.convertMessages(messages, true),
314
380
  system: systemPrompt,
381
+ onStepFinish,
382
+ executionContext
315
383
  });
316
384
  }
317
385
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"AIHelper.js","sourceRoot":"","sources":["../../../src/helpers/AIHelper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AIHelper.js","sourceRoot":"","sources":["../../../src/helpers/AIHelper.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,23 @@
1
1
  import { describe, it, expect, beforeAll } from 'vitest';
2
2
  import { AIHelper } from './AIHelper';
3
+ import { FileHelper } from './FileHelper';
3
4
  import { ModelStore } from '../store/ModelStore';
5
+ import { ConfigProvider } from '../config';
6
+ import { S3Lib } from '../libs/s3';
4
7
  import { MessageRole, AgentToolCallStatus } from '@multiplayer-app/ai-agent-types';
5
8
  describe('AIHelper.getAssistantResponse', () => {
6
9
  let modelStore;
7
- let configStore;
10
+ let aiHelper;
8
11
  beforeAll(() => {
9
12
  // Setup real ModelStore instance
10
13
  modelStore = ModelStore.getInstance();
11
14
  modelStore.setModels([
12
15
  { id: 'openai/gpt-4o', label: 'GPT-4o Mini', provider: 'openrouter' }
13
16
  ]);
17
+ const config = ConfigProvider.getInstance().getConfig();
18
+ const s3Lib = new S3Lib(config.s3);
19
+ const fileHelper = new FileHelper(s3Lib, config);
20
+ aiHelper = new AIHelper(fileHelper, config);
14
21
  });
15
22
  describe('with tool approval responses', () => {
16
23
  it('should handle approved tool with successful execution', async () => {
@@ -36,7 +43,7 @@ describe('AIHelper.getAssistantResponse', () => {
36
43
  ]
37
44
  }
38
45
  ];
39
- const response = await AIHelper.getAssistantResponse(messages);
46
+ const response = await aiHelper.getAssistantResponse(messages);
40
47
  // Verify we get a response (actual model call)
41
48
  expect(response).toBeDefined();
42
49
  expect(typeof response).toBe('string');
@@ -60,7 +67,7 @@ describe('AIHelper.getAssistantResponse', () => {
60
67
  input: { param: 'value' },
61
68
  status: AgentToolCallStatus.Succeeded,
62
69
  approved: false,
63
- reason: 'User denied execution',
70
+ userResponse: 'User denied execution',
64
71
  output: {
65
72
  type: 'execution-denied',
66
73
  reason: 'User denied execution'
@@ -69,7 +76,7 @@ describe('AIHelper.getAssistantResponse', () => {
69
76
  ]
70
77
  }
71
78
  ];
72
- const response = await AIHelper.getAssistantResponse(messages);
79
+ const response = await aiHelper.getAssistantResponse(messages);
73
80
  // Verify we get a response acknowledging the denial
74
81
  expect(response).toBeDefined();
75
82
  expect(typeof response).toBe('string');
@@ -100,7 +107,7 @@ describe('AIHelper.getAssistantResponse', () => {
100
107
  input: { param: 'value2' },
101
108
  status: AgentToolCallStatus.Succeeded,
102
109
  approved: false,
103
- reason: 'Not allowed',
110
+ userResponse: 'Not allowed',
104
111
  output: {
105
112
  type: 'execution-denied',
106
113
  reason: 'Not allowed'
@@ -109,7 +116,7 @@ describe('AIHelper.getAssistantResponse', () => {
109
116
  ]
110
117
  }
111
118
  ];
112
- const response = await AIHelper.getAssistantResponse(messages);
119
+ const response = await aiHelper.getAssistantResponse(messages);
113
120
  // Verify we get a response handling both tool results
114
121
  expect(response).toBeDefined();
115
122
  expect(typeof response).toBe('string');
@@ -137,7 +144,7 @@ describe('AIHelper.getAssistantResponse', () => {
137
144
  ]
138
145
  }
139
146
  ];
140
- const response = await AIHelper.getAssistantResponse(messages);
147
+ const response = await aiHelper.getAssistantResponse(messages);
141
148
  // Verify we get a response even when tool execution failed
142
149
  expect(response).toBeDefined();
143
150
  expect(typeof response).toBe('string');
@@ -167,7 +174,7 @@ describe('AIHelper.getAssistantResponse', () => {
167
174
  ]
168
175
  }
169
176
  ];
170
- const response = await AIHelper.getAssistantResponse(messages);
177
+ const response = await aiHelper.getAssistantResponse(messages);
171
178
  // Verify we get a response when tool was not found
172
179
  expect(response).toBeDefined();
173
180
  expect(typeof response).toBe('string');
@@ -197,7 +204,7 @@ describe('AIHelper.getAssistantResponse', () => {
197
204
  ]
198
205
  }
199
206
  ];
200
- const response = await AIHelper.getAssistantResponse(messages);
207
+ const response = await aiHelper.getAssistantResponse(messages);
201
208
  // Verify we get a response when tool execution had an error
202
209
  expect(response).toBeDefined();
203
210
  expect(typeof response).toBe('string');
@@ -214,7 +221,7 @@ describe('AIHelper.getAssistantResponse', () => {
214
221
  content: 'I am doing well, thank you!'
215
222
  }
216
223
  ];
217
- const response = await AIHelper.getAssistantResponse(messages);
224
+ const response = await aiHelper.getAssistantResponse(messages);
218
225
  // Verify we get a response for normal conversation
219
226
  expect(response).toBeDefined();
220
227
  expect(typeof response).toBe('string');
@@ -241,7 +248,7 @@ describe('AIHelper.getAssistantResponse', () => {
241
248
  ]
242
249
  }
243
250
  ];
244
- const response = await AIHelper.getAssistantResponse(messages);
251
+ const response = await aiHelper.getAssistantResponse(messages);
245
252
  // Verify we get a response even when tool is pending approval
246
253
  // (tool calls without output should not include tool-result in messages)
247
254
  expect(response).toBeDefined();
@@ -278,7 +285,7 @@ describe('AIHelper.getAssistantResponse', () => {
278
285
  input: { step: 2 },
279
286
  status: AgentToolCallStatus.Succeeded,
280
287
  approved: false,
281
- reason: 'User denied',
288
+ userResponse: 'User denied',
282
289
  output: {
283
290
  type: 'execution-denied',
284
291
  reason: 'User denied'
@@ -287,7 +294,7 @@ describe('AIHelper.getAssistantResponse', () => {
287
294
  ]
288
295
  }
289
296
  ];
290
- const response = await AIHelper.getAssistantResponse(messages);
297
+ const response = await aiHelper.getAssistantResponse(messages);
291
298
  // Verify we get a response for sequential tool calls
292
299
  expect(response).toBeDefined();
293
300
  expect(typeof response).toBe('string');
@@ -301,7 +308,7 @@ describe('AIHelper.getAssistantResponse', () => {
301
308
  content: 'Test message'
302
309
  }
303
310
  ];
304
- const response = await AIHelper.getAssistantResponse(messages, undefined, {
311
+ const response = await aiHelper.getAssistantResponse(messages, {
305
312
  temperature: 0.9,
306
313
  maxOutputTokens: 1000
307
314
  });
@@ -320,7 +327,7 @@ describe('AIHelper.getAssistantResponse', () => {
320
327
  ];
321
328
  const abortController = new AbortController();
322
329
  const signal = abortController.signal;
323
- const response = await AIHelper.getAssistantResponse(messages, signal);
330
+ const response = await aiHelper.getAssistantResponse(messages, { signal });
324
331
  // Verify we get a response with abort signal passed through
325
332
  expect(response).toBeDefined();
326
333
  expect(typeof response).toBe('string');