briyah 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (354) hide show
  1. package/.prettierrc +7 -0
  2. package/dist/ai/LLM/anthropic.module.d.ts +2 -0
  3. package/dist/ai/LLM/anthropic.module.js +21 -0
  4. package/dist/ai/LLM/anthropic.service.d.ts +27 -0
  5. package/dist/ai/LLM/anthropic.service.js +329 -0
  6. package/dist/ai/LLM/base-ai.service.d.ts +45 -0
  7. package/dist/ai/LLM/base-ai.service.js +409 -0
  8. package/dist/ai/LLM/deepseek.module.d.ts +2 -0
  9. package/dist/ai/LLM/deepseek.module.js +21 -0
  10. package/dist/ai/LLM/deepseek.service.d.ts +15 -0
  11. package/dist/ai/LLM/deepseek.service.js +279 -0
  12. package/dist/ai/LLM/fal.module.d.ts +2 -0
  13. package/dist/ai/LLM/fal.module.js +21 -0
  14. package/dist/ai/LLM/fal.service.d.ts +17 -0
  15. package/dist/ai/LLM/fal.service.js +314 -0
  16. package/dist/ai/LLM/googleai.module.d.ts +2 -0
  17. package/dist/ai/LLM/googleai.module.js +21 -0
  18. package/dist/ai/LLM/googleai.service.d.ts +20 -0
  19. package/dist/ai/LLM/googleai.service.js +271 -0
  20. package/dist/ai/LLM/grok.module.d.ts +2 -0
  21. package/dist/ai/LLM/grok.module.js +21 -0
  22. package/dist/ai/LLM/grok.service.d.ts +14 -0
  23. package/dist/ai/LLM/grok.service.js +263 -0
  24. package/dist/ai/LLM/mock.module.d.ts +2 -0
  25. package/dist/ai/LLM/mock.module.js +21 -0
  26. package/dist/ai/LLM/mock.service.d.ts +13 -0
  27. package/dist/ai/LLM/mock.service.js +194 -0
  28. package/dist/ai/LLM/openai.module.d.ts +2 -0
  29. package/dist/ai/LLM/openai.module.js +21 -0
  30. package/dist/ai/LLM/openai.service.d.ts +21 -0
  31. package/dist/ai/LLM/openai.service.js +421 -0
  32. package/dist/ai/LLM/together.module.d.ts +2 -0
  33. package/dist/ai/LLM/together.module.js +21 -0
  34. package/dist/ai/LLM/together.service.d.ts +18 -0
  35. package/dist/ai/LLM/together.service.js +285 -0
  36. package/dist/ai/LLM/vertexai.module.d.ts +2 -0
  37. package/dist/ai/LLM/vertexai.module.js +21 -0
  38. package/dist/ai/LLM/vertexai.service.d.ts +17 -0
  39. package/dist/ai/LLM/vertexai.service.js +323 -0
  40. package/dist/ai/agent-config.d.ts +32 -0
  41. package/dist/ai/agent-config.js +2 -0
  42. package/dist/ai/agent-factory.d.ts +15 -0
  43. package/dist/ai/agent-factory.js +24 -0
  44. package/dist/ai/agent-message.service.d.ts +9 -0
  45. package/dist/ai/agent-message.service.js +56 -0
  46. package/dist/ai/agent-store.module.d.ts +2 -0
  47. package/dist/ai/agent-store.module.js +21 -0
  48. package/dist/ai/agent-store.service.d.ts +31 -0
  49. package/dist/ai/agent-store.service.js +352 -0
  50. package/dist/ai/agent.d.ts +75 -0
  51. package/dist/ai/agent.js +174 -0
  52. package/dist/ai/ai-factory.module.d.ts +2 -0
  53. package/dist/ai/ai-factory.module.js +40 -0
  54. package/dist/ai/ai-factory.service.d.ts +24 -0
  55. package/dist/ai/ai-factory.service.js +94 -0
  56. package/dist/ai/artifact.module.d.ts +2 -0
  57. package/dist/ai/artifact.module.js +22 -0
  58. package/dist/ai/artifact.service.d.ts +21 -0
  59. package/dist/ai/artifact.service.js +239 -0
  60. package/dist/ai/attached-file.module.d.ts +2 -0
  61. package/dist/ai/attached-file.module.js +22 -0
  62. package/dist/ai/attached-file.service.d.ts +35 -0
  63. package/dist/ai/attached-file.service.js +253 -0
  64. package/dist/ai/model_prices.d.ts +2 -0
  65. package/dist/ai/model_prices.js +54 -0
  66. package/dist/ai/published-agents.service.d.ts +13 -0
  67. package/dist/ai/published-agents.service.js +118 -0
  68. package/dist/app/balance-message.service.d.ts +8 -0
  69. package/dist/app/balance-message.service.js +45 -0
  70. package/dist/app/balance.module.d.ts +2 -0
  71. package/dist/app/balance.module.js +20 -0
  72. package/dist/app/balance.service.d.ts +18 -0
  73. package/dist/app/balance.service.js +158 -0
  74. package/dist/app/stripe.controller.d.ts +31 -0
  75. package/dist/app/stripe.controller.js +150 -0
  76. package/dist/app/stripe.module.d.ts +2 -0
  77. package/dist/app/stripe.module.js +22 -0
  78. package/dist/app/stripe.service.d.ts +28 -0
  79. package/dist/app/stripe.service.js +198 -0
  80. package/dist/app/transaction.service.d.ts +15 -0
  81. package/dist/app/transaction.service.js +139 -0
  82. package/dist/app/user-service-factory.d.ts +21 -0
  83. package/dist/app/user-service-factory.js +81 -0
  84. package/dist/app/user-service-manager.d.ts +28 -0
  85. package/dist/app/user-service-manager.js +102 -0
  86. package/dist/app.controller.d.ts +232 -0
  87. package/dist/app.controller.js +2536 -0
  88. package/dist/app.module.d.ts +2 -0
  89. package/dist/app.module.js +45 -0
  90. package/dist/app.service.d.ts +186 -0
  91. package/dist/app.service.js +1334 -0
  92. package/dist/auth/agent-access.decorator.d.ts +2 -0
  93. package/dist/auth/agent-access.decorator.js +10 -0
  94. package/dist/auth/auth.controller.d.ts +38 -0
  95. package/dist/auth/auth.controller.js +356 -0
  96. package/dist/auth/auth.module.d.ts +2 -0
  97. package/dist/auth/auth.module.js +55 -0
  98. package/dist/auth/auth.service.d.ts +14 -0
  99. package/dist/auth/auth.service.js +84 -0
  100. package/dist/auth/dto/bot-login.dto.d.ts +4 -0
  101. package/dist/auth/dto/bot-login.dto.js +2 -0
  102. package/dist/auth/dto/password-reset.dto.d.ts +11 -0
  103. package/dist/auth/dto/password-reset.dto.js +2 -0
  104. package/dist/auth/dto/phone-login.dto.d.ts +8 -0
  105. package/dist/auth/dto/phone-login.dto.js +2 -0
  106. package/dist/auth/dto/phone-verification.dto.d.ts +9 -0
  107. package/dist/auth/dto/phone-verification.dto.js +2 -0
  108. package/dist/auth/jwt-auth.guard.d.ts +13 -0
  109. package/dist/auth/jwt-auth.guard.js +143 -0
  110. package/dist/auth/jwt.strategy.d.ts +17 -0
  111. package/dist/auth/jwt.strategy.js +45 -0
  112. package/dist/auth/phone-validation.service.d.ts +7 -0
  113. package/dist/auth/phone-validation.service.js +50 -0
  114. package/dist/auth/public.decorator.d.ts +2 -0
  115. package/dist/auth/public.decorator.js +7 -0
  116. package/dist/auth/rate-limit.service.d.ts +16 -0
  117. package/dist/auth/rate-limit.service.js +84 -0
  118. package/dist/auth/room-access.decorator.d.ts +2 -0
  119. package/dist/auth/room-access.decorator.js +10 -0
  120. package/dist/auth/scopes.decorator.d.ts +2 -0
  121. package/dist/auth/scopes.decorator.js +7 -0
  122. package/dist/auth/scopes.guard.d.ts +9 -0
  123. package/dist/auth/scopes.guard.js +82 -0
  124. package/dist/auth/session.guard.d.ts +7 -0
  125. package/dist/auth/session.guard.js +55 -0
  126. package/dist/auth/twilio.service.d.ts +15 -0
  127. package/dist/auth/twilio.service.js +139 -0
  128. package/dist/auth/users.service.d.ts +24 -0
  129. package/dist/auth/users.service.js +149 -0
  130. package/dist/common/errors.d.ts +12 -0
  131. package/dist/common/errors.js +43 -0
  132. package/dist/config/configuration.module.d.ts +2 -0
  133. package/dist/config/configuration.module.js +20 -0
  134. package/dist/config/configuration.service.d.ts +26 -0
  135. package/dist/config/configuration.service.js +131 -0
  136. package/dist/main.js +15749 -0
  137. package/dist/room/artifact-store.service.d.ts +15 -0
  138. package/dist/room/artifact-store.service.js +226 -0
  139. package/dist/room/artifact.d.ts +6 -0
  140. package/dist/room/artifact.js +2 -0
  141. package/dist/room/message.d.ts +19 -0
  142. package/dist/room/message.js +70 -0
  143. package/dist/room/published-rooms.service.d.ts +12 -0
  144. package/dist/room/published-rooms.service.js +108 -0
  145. package/dist/room/room-config.d.ts +12 -0
  146. package/dist/room/room-config.js +2 -0
  147. package/dist/room/room-factory.d.ts +7 -0
  148. package/dist/room/room-factory.js +16 -0
  149. package/dist/room/room-message.module.d.ts +2 -0
  150. package/dist/room/room-message.module.js +21 -0
  151. package/dist/room/room-message.service.d.ts +8 -0
  152. package/dist/room/room-message.service.js +44 -0
  153. package/dist/room/room-store.module.d.ts +2 -0
  154. package/dist/room/room-store.module.js +25 -0
  155. package/dist/room/room-store.service.d.ts +38 -0
  156. package/dist/room/room-store.service.js +353 -0
  157. package/dist/room/room.d.ts +107 -0
  158. package/dist/room/room.js +833 -0
  159. package/dist/sdk/briyah-config.d.ts +13 -0
  160. package/dist/sdk/briyah-config.js +32 -0
  161. package/dist/sdk/briyah.d.ts +36 -0
  162. package/dist/sdk/briyah.js +122 -0
  163. package/dist/sdk/index.d.ts +6 -0
  164. package/dist/sdk/index.js +11 -0
  165. package/dist/server/src/ai/LLM/anthropic.module.d.ts +2 -0
  166. package/dist/server/src/ai/LLM/anthropic.module.js +21 -0
  167. package/dist/server/src/ai/LLM/anthropic.service.d.ts +27 -0
  168. package/dist/server/src/ai/LLM/anthropic.service.js +329 -0
  169. package/dist/server/src/ai/LLM/base-ai.service.d.ts +45 -0
  170. package/dist/server/src/ai/LLM/base-ai.service.js +409 -0
  171. package/dist/server/src/ai/LLM/deepseek.module.d.ts +2 -0
  172. package/dist/server/src/ai/LLM/deepseek.module.js +21 -0
  173. package/dist/server/src/ai/LLM/deepseek.service.d.ts +15 -0
  174. package/dist/server/src/ai/LLM/deepseek.service.js +279 -0
  175. package/dist/server/src/ai/LLM/fal.module.d.ts +2 -0
  176. package/dist/server/src/ai/LLM/fal.module.js +21 -0
  177. package/dist/server/src/ai/LLM/fal.service.d.ts +17 -0
  178. package/dist/server/src/ai/LLM/fal.service.js +314 -0
  179. package/dist/server/src/ai/LLM/googleai.module.d.ts +2 -0
  180. package/dist/server/src/ai/LLM/googleai.module.js +21 -0
  181. package/dist/server/src/ai/LLM/googleai.service.d.ts +20 -0
  182. package/dist/server/src/ai/LLM/googleai.service.js +271 -0
  183. package/dist/server/src/ai/LLM/grok.module.d.ts +2 -0
  184. package/dist/server/src/ai/LLM/grok.module.js +21 -0
  185. package/dist/server/src/ai/LLM/grok.service.d.ts +14 -0
  186. package/dist/server/src/ai/LLM/grok.service.js +263 -0
  187. package/dist/server/src/ai/LLM/mock.module.d.ts +2 -0
  188. package/dist/server/src/ai/LLM/mock.module.js +21 -0
  189. package/dist/server/src/ai/LLM/mock.service.d.ts +13 -0
  190. package/dist/server/src/ai/LLM/mock.service.js +194 -0
  191. package/dist/server/src/ai/LLM/openai.module.d.ts +2 -0
  192. package/dist/server/src/ai/LLM/openai.module.js +21 -0
  193. package/dist/server/src/ai/LLM/openai.service.d.ts +21 -0
  194. package/dist/server/src/ai/LLM/openai.service.js +421 -0
  195. package/dist/server/src/ai/LLM/together.module.d.ts +2 -0
  196. package/dist/server/src/ai/LLM/together.module.js +21 -0
  197. package/dist/server/src/ai/LLM/together.service.d.ts +18 -0
  198. package/dist/server/src/ai/LLM/together.service.js +285 -0
  199. package/dist/server/src/ai/LLM/vertexai.module.d.ts +2 -0
  200. package/dist/server/src/ai/LLM/vertexai.module.js +21 -0
  201. package/dist/server/src/ai/LLM/vertexai.service.d.ts +17 -0
  202. package/dist/server/src/ai/LLM/vertexai.service.js +323 -0
  203. package/dist/server/src/ai/agent-config.d.ts +32 -0
  204. package/dist/server/src/ai/agent-config.js +2 -0
  205. package/dist/server/src/ai/agent-factory.d.ts +15 -0
  206. package/dist/server/src/ai/agent-factory.js +24 -0
  207. package/dist/server/src/ai/agent-message.service.d.ts +9 -0
  208. package/dist/server/src/ai/agent-message.service.js +56 -0
  209. package/dist/server/src/ai/agent-store.module.d.ts +2 -0
  210. package/dist/server/src/ai/agent-store.module.js +21 -0
  211. package/dist/server/src/ai/agent-store.service.d.ts +31 -0
  212. package/dist/server/src/ai/agent-store.service.js +352 -0
  213. package/dist/server/src/ai/agent.d.ts +75 -0
  214. package/dist/server/src/ai/agent.js +174 -0
  215. package/dist/server/src/ai/ai-factory.module.d.ts +2 -0
  216. package/dist/server/src/ai/ai-factory.module.js +40 -0
  217. package/dist/server/src/ai/ai-factory.service.d.ts +24 -0
  218. package/dist/server/src/ai/ai-factory.service.js +94 -0
  219. package/dist/server/src/ai/artifact.module.d.ts +2 -0
  220. package/dist/server/src/ai/artifact.module.js +22 -0
  221. package/dist/server/src/ai/artifact.service.d.ts +21 -0
  222. package/dist/server/src/ai/artifact.service.js +239 -0
  223. package/dist/server/src/ai/attached-file.module.d.ts +2 -0
  224. package/dist/server/src/ai/attached-file.module.js +22 -0
  225. package/dist/server/src/ai/attached-file.service.d.ts +35 -0
  226. package/dist/server/src/ai/attached-file.service.js +253 -0
  227. package/dist/server/src/ai/model_prices.d.ts +2 -0
  228. package/dist/server/src/ai/model_prices.js +54 -0
  229. package/dist/server/src/ai/published-agents.service.d.ts +13 -0
  230. package/dist/server/src/ai/published-agents.service.js +118 -0
  231. package/dist/server/src/app/balance-message.service.d.ts +8 -0
  232. package/dist/server/src/app/balance-message.service.js +45 -0
  233. package/dist/server/src/app/balance.module.d.ts +2 -0
  234. package/dist/server/src/app/balance.module.js +20 -0
  235. package/dist/server/src/app/balance.service.d.ts +18 -0
  236. package/dist/server/src/app/balance.service.js +158 -0
  237. package/dist/server/src/app/stripe.controller.d.ts +31 -0
  238. package/dist/server/src/app/stripe.controller.js +148 -0
  239. package/dist/server/src/app/stripe.module.d.ts +2 -0
  240. package/dist/server/src/app/stripe.module.js +22 -0
  241. package/dist/server/src/app/stripe.service.d.ts +28 -0
  242. package/dist/server/src/app/stripe.service.js +198 -0
  243. package/dist/server/src/app/transaction.service.d.ts +15 -0
  244. package/dist/server/src/app/transaction.service.js +139 -0
  245. package/dist/server/src/app/user-service-factory.d.ts +21 -0
  246. package/dist/server/src/app/user-service-factory.js +81 -0
  247. package/dist/server/src/app/user-service-manager.d.ts +28 -0
  248. package/dist/server/src/app/user-service-manager.js +102 -0
  249. package/dist/server/src/app.controller.d.ts +232 -0
  250. package/dist/server/src/app.controller.js +2534 -0
  251. package/dist/server/src/app.module.d.ts +2 -0
  252. package/dist/server/src/app.module.js +45 -0
  253. package/dist/server/src/app.service.d.ts +186 -0
  254. package/dist/server/src/app.service.js +1334 -0
  255. package/dist/server/src/auth/agent-access.decorator.d.ts +2 -0
  256. package/dist/server/src/auth/agent-access.decorator.js +10 -0
  257. package/dist/server/src/auth/auth.controller.d.ts +38 -0
  258. package/dist/server/src/auth/auth.controller.js +356 -0
  259. package/dist/server/src/auth/auth.module.d.ts +2 -0
  260. package/dist/server/src/auth/auth.module.js +55 -0
  261. package/dist/server/src/auth/auth.service.d.ts +14 -0
  262. package/dist/server/src/auth/auth.service.js +84 -0
  263. package/dist/server/src/auth/dto/bot-login.dto.d.ts +4 -0
  264. package/dist/server/src/auth/dto/bot-login.dto.js +2 -0
  265. package/dist/server/src/auth/dto/password-reset.dto.d.ts +11 -0
  266. package/dist/server/src/auth/dto/password-reset.dto.js +2 -0
  267. package/dist/server/src/auth/dto/phone-login.dto.d.ts +8 -0
  268. package/dist/server/src/auth/dto/phone-login.dto.js +2 -0
  269. package/dist/server/src/auth/dto/phone-verification.dto.d.ts +9 -0
  270. package/dist/server/src/auth/dto/phone-verification.dto.js +2 -0
  271. package/dist/server/src/auth/jwt-auth.guard.d.ts +13 -0
  272. package/dist/server/src/auth/jwt-auth.guard.js +143 -0
  273. package/dist/server/src/auth/jwt.strategy.d.ts +17 -0
  274. package/dist/server/src/auth/jwt.strategy.js +45 -0
  275. package/dist/server/src/auth/phone-validation.service.d.ts +7 -0
  276. package/dist/server/src/auth/phone-validation.service.js +50 -0
  277. package/dist/server/src/auth/public.decorator.d.ts +2 -0
  278. package/dist/server/src/auth/public.decorator.js +7 -0
  279. package/dist/server/src/auth/rate-limit.service.d.ts +16 -0
  280. package/dist/server/src/auth/rate-limit.service.js +84 -0
  281. package/dist/server/src/auth/room-access.decorator.d.ts +2 -0
  282. package/dist/server/src/auth/room-access.decorator.js +10 -0
  283. package/dist/server/src/auth/scopes.decorator.d.ts +2 -0
  284. package/dist/server/src/auth/scopes.decorator.js +7 -0
  285. package/dist/server/src/auth/scopes.guard.d.ts +9 -0
  286. package/dist/server/src/auth/scopes.guard.js +82 -0
  287. package/dist/server/src/auth/session.guard.d.ts +7 -0
  288. package/dist/server/src/auth/session.guard.js +55 -0
  289. package/dist/server/src/auth/twilio.service.d.ts +15 -0
  290. package/dist/server/src/auth/twilio.service.js +139 -0
  291. package/dist/server/src/auth/users.service.d.ts +24 -0
  292. package/dist/server/src/auth/users.service.js +149 -0
  293. package/dist/server/src/common/errors.d.ts +12 -0
  294. package/dist/server/src/common/errors.js +43 -0
  295. package/dist/server/src/config/configuration.module.d.ts +2 -0
  296. package/dist/server/src/config/configuration.module.js +20 -0
  297. package/dist/server/src/config/configuration.service.d.ts +26 -0
  298. package/dist/server/src/config/configuration.service.js +131 -0
  299. package/dist/server/src/room/artifact-store.service.d.ts +15 -0
  300. package/dist/server/src/room/artifact-store.service.js +226 -0
  301. package/dist/server/src/room/artifact.d.ts +6 -0
  302. package/dist/server/src/room/artifact.js +2 -0
  303. package/dist/server/src/room/message.d.ts +19 -0
  304. package/dist/server/src/room/message.js +70 -0
  305. package/dist/server/src/room/published-rooms.service.d.ts +12 -0
  306. package/dist/server/src/room/published-rooms.service.js +108 -0
  307. package/dist/server/src/room/room-config.d.ts +12 -0
  308. package/dist/server/src/room/room-config.js +2 -0
  309. package/dist/server/src/room/room-factory.d.ts +7 -0
  310. package/dist/server/src/room/room-factory.js +16 -0
  311. package/dist/server/src/room/room-message.module.d.ts +2 -0
  312. package/dist/server/src/room/room-message.module.js +21 -0
  313. package/dist/server/src/room/room-message.service.d.ts +8 -0
  314. package/dist/server/src/room/room-message.service.js +44 -0
  315. package/dist/server/src/room/room-store.module.d.ts +2 -0
  316. package/dist/server/src/room/room-store.module.js +25 -0
  317. package/dist/server/src/room/room-store.service.d.ts +38 -0
  318. package/dist/server/src/room/room-store.service.js +353 -0
  319. package/dist/server/src/room/room.d.ts +107 -0
  320. package/dist/server/src/room/room.js +833 -0
  321. package/dist/server/src/sdk/briyah-config.d.ts +13 -0
  322. package/dist/server/src/sdk/briyah-config.js +32 -0
  323. package/dist/server/src/sdk/briyah.d.ts +36 -0
  324. package/dist/server/src/sdk/briyah.js +122 -0
  325. package/dist/server/src/sdk/index.d.ts +6 -0
  326. package/dist/server/src/sdk/index.js +11 -0
  327. package/dist/server/src/shared/shared.module.d.ts +2 -0
  328. package/dist/server/src/shared/shared.module.js +46 -0
  329. package/dist/server/src/story/story-message.service.d.ts +10 -0
  330. package/dist/server/src/story/story-message.service.js +57 -0
  331. package/dist/server/src/story/story-progress.service.d.ts +8 -0
  332. package/dist/server/src/story/story-progress.service.js +44 -0
  333. package/dist/server/src/story/story-store.module.d.ts +2 -0
  334. package/dist/server/src/story/story-store.module.js +22 -0
  335. package/dist/server/src/story/story-store.service.d.ts +23 -0
  336. package/dist/server/src/story/story-store.service.js +392 -0
  337. package/dist/server/src/story/story.service.d.ts +94 -0
  338. package/dist/server/src/story/story.service.js +1797 -0
  339. package/dist/shared/shared.module.d.ts +2 -0
  340. package/dist/shared/shared.module.js +46 -0
  341. package/dist/shared/types/app.types.d.ts +296 -0
  342. package/dist/shared/types/app.types.js +17 -0
  343. package/dist/story/story-message.service.d.ts +10 -0
  344. package/dist/story/story-message.service.js +57 -0
  345. package/dist/story/story-progress.service.d.ts +8 -0
  346. package/dist/story/story-progress.service.js +44 -0
  347. package/dist/story/story-store.module.d.ts +2 -0
  348. package/dist/story/story-store.module.js +22 -0
  349. package/dist/story/story-store.service.d.ts +23 -0
  350. package/dist/story/story-store.service.js +392 -0
  351. package/dist/story/story.service.d.ts +94 -0
  352. package/dist/story/story.service.js +1797 -0
  353. package/eslint.config.js +29 -0
  354. package/package.json +125 -0
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ var __metadata = (this && this.__metadata) || function (k, v) {
42
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
43
+ };
44
+ var __importDefault = (this && this.__importDefault) || function (mod) {
45
+ return (mod && mod.__esModule) ? mod : { "default": mod };
46
+ };
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ exports.MockAiService = void 0;
49
+ const common_1 = require("@nestjs/common");
50
+ const base_ai_service_1 = require("./base-ai.service");
51
+ const fs = __importStar(require("fs"));
52
+ const model_prices_1 = __importDefault(require("../model_prices"));
53
+ let MockAiService = class MockAiService extends base_ai_service_1.BaseAiService {
54
+ constructor() {
55
+ super();
56
+ this._isAvailable = true;
57
+ }
58
+ getServiceName() {
59
+ return 'Mock';
60
+ }
61
+ async fetchModelsFromApi() {
62
+ let name = 'mock-fast-v1';
63
+ return [
64
+ {
65
+ name: name,
66
+ description: name,
67
+ model: name,
68
+ service: 'Mock',
69
+ },
70
+ ];
71
+ }
72
+ async preparedPrompt(agent, promptFileName, variables, saveResponse = true, _cacheConfig = null) {
73
+ const mockFile = this.findPromptFile(agent, promptFileName, '.mock');
74
+ if (!mockFile) {
75
+ console.warn(`Mock file '${promptFileName}.mock' not found for agent '${agent.agentName}'. Using generic response.`);
76
+ const preparedPrompt = this.getPreparedPrompt(agent, promptFileName, variables);
77
+ const jsonSchema = this.getPreparedSchema(agent, promptFileName);
78
+ return this.textPrompt(agent, preparedPrompt, jsonSchema, saveResponse);
79
+ }
80
+ const mockResponse = fs.readFileSync(mockFile).toString('utf8');
81
+ const jsonSchema = this.getPreparedSchema(agent, promptFileName);
82
+ const preparedPrompt = this.getPreparedPrompt(agent, promptFileName, variables);
83
+ await this.trackMockCosts(agent, preparedPrompt, mockResponse);
84
+ if (jsonSchema) {
85
+ try {
86
+ const parsedResponse = JSON.parse(mockResponse);
87
+ if (saveResponse) {
88
+ agent.addToConversationHistory(preparedPrompt, false);
89
+ agent.addToConversationHistory(mockResponse, true);
90
+ }
91
+ return parsedResponse;
92
+ }
93
+ catch (error) {
94
+ console.error(`Error parsing mock JSON response from ${mockFile}:`, error);
95
+ throw new Error(`Invalid JSON in mock file: ${mockFile}`);
96
+ }
97
+ }
98
+ else {
99
+ if (saveResponse) {
100
+ agent.addToConversationHistory(preparedPrompt, false);
101
+ agent.addToConversationHistory(mockResponse, true);
102
+ }
103
+ return mockResponse;
104
+ }
105
+ }
106
+ getMockFile(promptFileName, prompt, variables) {
107
+ let mockFileName = promptFileName;
108
+ if (promptFileName === 'moderate') {
109
+ const senderMatch = prompt.match(/^Sender:\s*(.*)$/m);
110
+ const sender = senderMatch ? senderMatch[1].trim() : null;
111
+ const targetMatch = prompt.match(/, \s(.*)\?/m);
112
+ const target = targetMatch ? targetMatch[1].trim() : null;
113
+ const agents = variables.agents;
114
+ const targetAgent = agents.find((agent) => agent.agentName === target);
115
+ if (targetAgent)
116
+ mockFileName = `moderate_to_${targetAgent.agentName}`;
117
+ else if (sender === variables.humanAgentName || sender === 'system')
118
+ mockFileName = 'moderate';
119
+ else
120
+ mockFileName = 'moderate_to_alice';
121
+ }
122
+ return mockFileName;
123
+ }
124
+ async instructedPrompt(agent, prompt = null, promptFileName, variables = {}, saveResponse = true, cacheConfig = null) {
125
+ const mockFileBaseName = this.getMockFile(promptFileName, prompt, variables);
126
+ const mockFile = this.findPromptFile(agent, mockFileBaseName, '.mock');
127
+ if (!mockFile) {
128
+ console.warn(`Mock file '${mockFile}' not found for agent '${agent.agentName}'. Using generic response.`);
129
+ return this.textPrompt(agent, prompt || 'Mock prompt', null, saveResponse, cacheConfig);
130
+ }
131
+ const mockResponse = fs.readFileSync(mockFile).toString('utf8');
132
+ const jsonSchema = this.getPreparedSchema(agent, promptFileName);
133
+ await this.trackMockCosts(agent, prompt || mockResponse, mockResponse);
134
+ if (jsonSchema) {
135
+ try {
136
+ const parsedResponse = JSON.parse(mockResponse);
137
+ if (saveResponse) {
138
+ agent.addToConversationHistory(prompt || 'Mock prompt', false);
139
+ agent.addToConversationHistory(mockResponse, true);
140
+ }
141
+ return parsedResponse;
142
+ }
143
+ catch (error) {
144
+ console.error(`Error parsing mock JSON response from ${mockFile}:`, error);
145
+ throw new Error(`Invalid JSON in mock file: ${mockFile}`);
146
+ }
147
+ }
148
+ else {
149
+ if (saveResponse) {
150
+ agent.addToConversationHistory(prompt || 'Mock prompt', false);
151
+ agent.addToConversationHistory(mockResponse, true);
152
+ }
153
+ return mockResponse;
154
+ }
155
+ }
156
+ async textPrompt(agent, prompt, jsonSchema = null, saveResponse = true, _promptInstructions = null, _cacheConfig = null, maxOutputChars = 0) {
157
+ const mockResponse = jsonSchema
158
+ ? { action: 'SPEAK', content: 'Generic mock response' }
159
+ : 'Generic mock response';
160
+ const responseText = typeof mockResponse === 'string' ? mockResponse : JSON.stringify(mockResponse, null, 2);
161
+ await this.trackMockCosts(agent, prompt, responseText);
162
+ if (saveResponse) {
163
+ agent.addToConversationHistory(prompt, false);
164
+ agent.addToConversationHistory(responseText, true);
165
+ }
166
+ return mockResponse;
167
+ }
168
+ async trackMockCosts(agent, prompt, response) {
169
+ const inputTokens = Math.max(100, Math.floor(prompt.length / 4));
170
+ const outputTokens = Math.max(50, Math.floor(response.length / 4));
171
+ const modelInfo = model_prices_1.default['mock-fast-v1'];
172
+ if (!modelInfo) {
173
+ console.warn('Mock model pricing not found in model_prices.ts');
174
+ return;
175
+ }
176
+ const inputCost = inputTokens * modelInfo.input_cost_per_token;
177
+ const outputCost = outputTokens * modelInfo.output_cost_per_token;
178
+ const markup = outputCost * agent.markupRate;
179
+ const totalCost = inputCost + outputCost + markup;
180
+ agent.totalCost += totalCost;
181
+ agent.totalInputTokens += inputTokens;
182
+ agent.totalOutputTokens += outputTokens;
183
+ agent.totalMarkup += markup;
184
+ console.log(`Cost for ${agent.agentName} message: ${totalCost} (markup: ${markup.toFixed(4)})`);
185
+ if (agent.balanceService) {
186
+ await agent.balanceService.decrementBalance(totalCost, markup);
187
+ }
188
+ }
189
+ };
190
+ exports.MockAiService = MockAiService;
191
+ exports.MockAiService = MockAiService = __decorate([
192
+ (0, common_1.Injectable)(),
193
+ __metadata("design:paramtypes", [])
194
+ ], MockAiService);
@@ -0,0 +1,2 @@
1
+ export declare class OpenAiModule {
2
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.OpenAiModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const openai_service_1 = require("./openai.service");
12
+ let OpenAiModule = class OpenAiModule {
13
+ };
14
+ exports.OpenAiModule = OpenAiModule;
15
+ exports.OpenAiModule = OpenAiModule = __decorate([
16
+ (0, common_1.Module)({
17
+ imports: [],
18
+ providers: [openai_service_1.OpenAiService],
19
+ exports: [openai_service_1.OpenAiService],
20
+ })
21
+ ], OpenAiModule);
@@ -0,0 +1,21 @@
1
+ import { Agent } from '../agent';
2
+ import { BaseAiService } from './base-ai.service';
3
+ import { ModelInfo } from '@shared/types/app.types';
4
+ export declare class OpenAiService extends BaseAiService {
5
+ private openai;
6
+ constructor();
7
+ getServiceName(): string;
8
+ supportsImageGeneration(): boolean;
9
+ supportsPromptCaching(): boolean;
10
+ fetchModelsFromApi(): Promise<ModelInfo[]>;
11
+ finishAgent(agent: Agent): Promise<void>;
12
+ textPrompt(agent: Agent, prompt: string, jsonSchema?: any, saveResponse?: boolean, promptInstructions?: string, _cacheConfig?: any, maxOutputChars?: number): Promise<any>;
13
+ attachDocument(agent: Agent, fileName: string, fileData: Uint8Array): Promise<string>;
14
+ addToConversationHistory(agent: Agent, message: string, fromSelf?: boolean, developer?: boolean): void;
15
+ private computeMessageCost;
16
+ private computeImageCost;
17
+ generateImage(agent: Agent, prompt: string, width: number, height: number, quality: string, referenceImageArtifactIds?: string[]): Promise<{
18
+ artifactId?: string;
19
+ error?: any;
20
+ }>;
21
+ }
@@ -0,0 +1,421 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.OpenAiService = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const openai_1 = require("openai");
18
+ const base_ai_service_1 = require("./base-ai.service");
19
+ const openai_2 = require("openai");
20
+ const model_prices_1 = __importDefault(require("../model_prices"));
21
+ const errors_1 = require("../../common/errors");
22
+ let OpenAiService = class OpenAiService extends base_ai_service_1.BaseAiService {
23
+ openai;
24
+ constructor() {
25
+ super();
26
+ try {
27
+ const apiKey = process.env['OPENAI_API_KEY'];
28
+ if (!apiKey) {
29
+ console.warn('OPENAI_API_KEY environment variable not set. OpenAI service will not be available.');
30
+ this._isAvailable = false;
31
+ return;
32
+ }
33
+ const options = {
34
+ apiKey: apiKey,
35
+ timeout: 600000,
36
+ maxRetries: 3,
37
+ };
38
+ if (process.env.OPENAI_ORGANIZATION_ID) {
39
+ options.organization = process.env.OPENAI_ORGANIZATION_ID;
40
+ }
41
+ this.openai = new openai_2.OpenAI(options);
42
+ }
43
+ catch (error) {
44
+ console.error('Error initializing OpenAI service:', error);
45
+ this._isAvailable = false;
46
+ }
47
+ }
48
+ getServiceName() {
49
+ return 'OpenAI';
50
+ }
51
+ supportsImageGeneration() {
52
+ return true;
53
+ }
54
+ supportsPromptCaching() {
55
+ return false;
56
+ }
57
+ async fetchModelsFromApi() {
58
+ const models = await this.openai.models.list();
59
+ return models.data.map((model) => {
60
+ return {
61
+ name: model.id,
62
+ description: model.id,
63
+ model: model.id,
64
+ service: 'OpenAI',
65
+ };
66
+ });
67
+ }
68
+ async finishAgent(agent) {
69
+ if (!agent)
70
+ return;
71
+ if (agent.vectorStore) {
72
+ try {
73
+ await this.openai.vectorStores.delete(agent.vectorStore.id);
74
+ console.log(`Deleted vector store for agent ${agent.id}`);
75
+ }
76
+ catch (error) {
77
+ console.error(`Error deleting vector store for agent ${agent.id}:`, error);
78
+ }
79
+ }
80
+ for (const metadata of agent.attachedFiles) {
81
+ if (metadata.serviceMetadata?.serviceName === this.getServiceName() &&
82
+ metadata.serviceMetadata?.resourceId) {
83
+ try {
84
+ await this.openai.files.delete(metadata.serviceMetadata.resourceId);
85
+ console.log(`Deleted OpenAI file ${metadata.serviceMetadata.resourceId} for agent ${agent.id}`);
86
+ }
87
+ catch (error) {
88
+ console.error(`Error deleting OpenAI file ${metadata.serviceMetadata.resourceId}:`, error);
89
+ }
90
+ }
91
+ }
92
+ }
93
+ async textPrompt(agent, prompt, jsonSchema = null, saveResponse = true, promptInstructions = null, _cacheConfig = null, maxOutputChars = 0) {
94
+ if (agent.balanceService && !agent.disableBalanceCheck) {
95
+ const hasSufficientBalance = agent.balanceService.hasSufficientBalance();
96
+ if (!hasSufficientBalance) {
97
+ throw new errors_1.InsufficientBalanceError('Insufficient balance. Please add funds to continue using AI services.');
98
+ }
99
+ }
100
+ const identity = `Your agent identity is ${agent.agentName}: ${agent.description}`;
101
+ const messages = [{ role: 'user', content: identity }];
102
+ let hasVectorStoreFiles = false;
103
+ if (agent.attachedFiles && agent.attachedFiles.length > 0) {
104
+ for (const file of agent.attachedFiles) {
105
+ if (file.serviceMetadata?.serviceName === this.getServiceName() &&
106
+ file.serviceMetadata?.resourceId) {
107
+ hasVectorStoreFiles = true;
108
+ }
109
+ else if (file.serviceMetadata?.fileData) {
110
+ const fileData = new Uint8Array(file.serviceMetadata.fileData);
111
+ const textContent = Buffer.from(fileData).toString('utf-8');
112
+ messages.push({
113
+ role: 'user',
114
+ content: `File "${file.fileName}":\n\n${textContent}`,
115
+ });
116
+ }
117
+ }
118
+ if (hasVectorStoreFiles) {
119
+ const vectorStoreFileNames = agent.attachedFiles
120
+ .filter((f) => f.serviceMetadata?.serviceName === this.getServiceName() &&
121
+ f.serviceMetadata?.resourceId)
122
+ .map((f) => f.fileName)
123
+ .join(', ');
124
+ messages.push({
125
+ role: 'user',
126
+ content: `The following files are available in your vector store and can be searched using the file_search tool: ${vectorStoreFileNames}`,
127
+ });
128
+ }
129
+ }
130
+ if (agent.attachedArtifacts && agent.attachedArtifacts.length > 0) {
131
+ for (const artifactId of agent.attachedArtifacts) {
132
+ const content = agent.artifactService.getArtifact(artifactId);
133
+ if (content && typeof content === 'string') {
134
+ const metadata = agent.artifactService.getArtifactMetadata(artifactId);
135
+ const fileName = metadata ? `${metadata.name}.md` : 'artifact.md';
136
+ messages.push({
137
+ role: 'user',
138
+ content: `Attached document: ${fileName}\n\n${content}`,
139
+ });
140
+ }
141
+ }
142
+ }
143
+ messages.push(...agent.history);
144
+ if (prompt) {
145
+ messages.push({ role: 'user', content: prompt });
146
+ }
147
+ let vectorStore = agent.vectorStore;
148
+ let tools = [];
149
+ if (vectorStore && hasVectorStoreFiles) {
150
+ tools.push({
151
+ type: 'file_search',
152
+ vector_store_ids: [vectorStore.id],
153
+ });
154
+ }
155
+ let format = jsonSchema
156
+ ? {
157
+ type: 'json_schema',
158
+ name: jsonSchema['name'],
159
+ schema: jsonSchema,
160
+ description: jsonSchema['description'],
161
+ }
162
+ : {
163
+ type: 'text',
164
+ };
165
+ let instructions = promptInstructions || agent.systemInstruction;
166
+ let response = null;
167
+ let responseText;
168
+ try {
169
+ response = await this.openai.responses.create({
170
+ model: agent.modelName,
171
+ reasoning: { effort: agent.reasoningEffort },
172
+ input: messages,
173
+ instructions: instructions,
174
+ store: false,
175
+ text: {
176
+ format: format,
177
+ },
178
+ tools: tools,
179
+ });
180
+ if (jsonSchema) {
181
+ responseText = this.trimToJson(response.output_text);
182
+ responseText = this.sanitizeJsonString(responseText);
183
+ }
184
+ else {
185
+ responseText = response.output_text;
186
+ }
187
+ if (response.usage) {
188
+ this.computeMessageCost(agent, response.usage);
189
+ }
190
+ }
191
+ catch (error) {
192
+ console.error(error);
193
+ throw error;
194
+ }
195
+ if (saveResponse) {
196
+ this.addToConversationHistory(agent, prompt, false);
197
+ this.addToConversationHistory(agent, responseText, true);
198
+ }
199
+ if (jsonSchema)
200
+ return JSON.parse(responseText);
201
+ return responseText;
202
+ }
203
+ async attachDocument(agent, fileName, fileData) {
204
+ if (agent.fullContextFiles) {
205
+ return super.attachDocument(agent, fileName, fileData);
206
+ }
207
+ let resultText = '';
208
+ let vectorStore = agent.vectorStore;
209
+ if (!agent.vectorStore) {
210
+ try {
211
+ let vectorStoresPage = await this.openai.vectorStores.list();
212
+ let vectorStoreList = vectorStoresPage.data;
213
+ let foundVs = vectorStoreList.find((vs) => vs.name === agent.agentName);
214
+ if (!foundVs || foundVs.status === 'expired') {
215
+ agent.vectorStore = await this.openai.vectorStores.create({
216
+ name: agent.agentName,
217
+ expires_after: { anchor: 'last_active_at', days: 1 },
218
+ });
219
+ resultText += `Created new vector store (${agent.agentName}). `;
220
+ }
221
+ else {
222
+ agent.vectorStore = foundVs;
223
+ resultText += `Found existing vector store (${agent.agentName}). `;
224
+ }
225
+ }
226
+ catch (error) {
227
+ agent.vectorStore = null;
228
+ }
229
+ vectorStore = agent.vectorStore;
230
+ }
231
+ if (!vectorStore)
232
+ throw new Error('No vector store could be created for this agent.');
233
+ const existingMetadata = agent.attachedFiles.find((f) => f.fileName === fileName && f.serviceMetadata?.serviceName === this.getServiceName());
234
+ if (existingMetadata?.serviceMetadata?.resourceId) {
235
+ const fileId = existingMetadata.serviceMetadata.resourceId;
236
+ const vectorStoresFilePage = await this.openai.vectorStores.files.list(vectorStore.id);
237
+ let vectorStoresFiles = vectorStoresFilePage.data;
238
+ let vectorStoresFileFound = vectorStoresFiles.find((f) => f.id === fileId);
239
+ if (vectorStoresFileFound) {
240
+ return (resultText +
241
+ ` -- File found in vector store ${vectorStore.name} with file id: ${fileId}`);
242
+ }
243
+ else {
244
+ await this.openai.vectorStores.files.createAndPoll(vectorStore.id, {
245
+ file_id: fileId,
246
+ });
247
+ return (resultText +
248
+ ` -- Adding existing file to vector store ${vectorStore.name} with file id: ${fileId}`);
249
+ }
250
+ }
251
+ let fileInput = fileData;
252
+ let fileToUpload = await (0, openai_1.toFile)(fileInput, fileName);
253
+ const fileObject = await this.openai.files.create({
254
+ file: fileToUpload,
255
+ purpose: 'assistants',
256
+ });
257
+ await this.openai.vectorStores.files.createAndPoll(vectorStore.id, {
258
+ file_id: fileObject.id,
259
+ });
260
+ const additionalMetadata = {
261
+ serviceMetadata: {
262
+ serviceName: this.getServiceName(),
263
+ resourceId: fileObject.id,
264
+ vectorStoreId: vectorStore.id,
265
+ },
266
+ };
267
+ const fileMetadataIndex = agent.attachedFiles.findIndex((f) => f.fileName === fileName);
268
+ if (fileMetadataIndex >= 0) {
269
+ agent.attachedFiles[fileMetadataIndex] = {
270
+ ...agent.attachedFiles[fileMetadataIndex],
271
+ ...additionalMetadata,
272
+ };
273
+ }
274
+ return (resultText +
275
+ ` -- Uploaded new file to vector store ${vectorStore.name} with file id: ${fileObject.id}`);
276
+ }
277
+ addToConversationHistory(agent, message, fromSelf = false, developer = false) {
278
+ if (!agent.history) {
279
+ agent.history = [];
280
+ }
281
+ if (!message)
282
+ return;
283
+ let role = fromSelf ? 'assistant' : 'user';
284
+ if (developer)
285
+ role = 'developer';
286
+ agent.history.push({
287
+ role: role,
288
+ content: message,
289
+ });
290
+ agent.trimHistoryIfNeeded();
291
+ }
292
+ computeMessageCost(agent, usage) {
293
+ const totalInputTokens = usage.input_tokens || 0;
294
+ const cachedTokens = usage.input_tokens_details?.cached_tokens || 0;
295
+ const uncachedInputTokens = totalInputTokens - cachedTokens;
296
+ const outputTokens = usage.output_tokens || 0;
297
+ const modelInfo = model_prices_1.default[agent.modelName];
298
+ if (!modelInfo) {
299
+ console.error(`No price info found for model ${agent.modelName}`);
300
+ return;
301
+ }
302
+ const uncachedCost = uncachedInputTokens * modelInfo.input_cost_per_token;
303
+ const cachedCost = cachedTokens *
304
+ (modelInfo.cache_read_input_token_cost || modelInfo.input_cost_per_token * 0.5);
305
+ const outputCost = outputTokens * modelInfo.output_cost_per_token;
306
+ const markup = agent.disableMarkup ? 0 : outputCost * agent.markupRate;
307
+ const cost = uncachedCost + cachedCost + outputCost + markup;
308
+ agent.totalInputTokens += totalInputTokens;
309
+ agent.totalOutputTokens += outputTokens;
310
+ agent.totalCost += cost;
311
+ agent.totalMarkup += markup;
312
+ console.log(`Cost for ${agent.agentName} message: ${cost} (markup: ${markup.toFixed(4)})`);
313
+ if (cachedTokens > 0) {
314
+ console.log(`Cache metrics for ${agent.agentName}: cached=${cachedTokens}, uncached=${uncachedInputTokens}`);
315
+ }
316
+ if (agent.balanceService && cost > 0) {
317
+ agent.balanceService.decrementBalance(cost, markup);
318
+ }
319
+ }
320
+ computeImageCost(agent, usage) {
321
+ const modelInfo = model_prices_1.default[agent.modelName];
322
+ if (!modelInfo) {
323
+ console.error(`No price info found for model ${agent.modelName}`);
324
+ return;
325
+ }
326
+ const inputImageTokens = usage.input_tokens_details?.image_tokens || 0;
327
+ const inputTextTokens = usage.input_tokens_details?.text_tokens || 0;
328
+ const outputImageTokens = usage.output_tokens_details?.image_tokens || 0;
329
+ const outputTextTokens = usage.output_tokens_details?.text_tokens || 0;
330
+ const totalInputTokens = usage.input_tokens || 0;
331
+ const totalOutputTokens = usage.output_tokens || 0;
332
+ agent.totalInputTokens += totalInputTokens;
333
+ agent.totalOutputTokens += totalOutputTokens;
334
+ let inputCost = 0;
335
+ if (inputImageTokens > 0) {
336
+ const cachedImageTokens = usage.input_tokens_details?.cached_image_tokens || 0;
337
+ const uncachedImageTokens = inputImageTokens - cachedImageTokens;
338
+ inputCost += uncachedImageTokens * (modelInfo.input_cost_per_image_token || 0);
339
+ if (cachedImageTokens > 0) {
340
+ inputCost +=
341
+ cachedImageTokens *
342
+ (modelInfo.cache_read_input_image_token_cost ||
343
+ modelInfo.input_cost_per_image_token * 0.5);
344
+ }
345
+ }
346
+ if (inputTextTokens > 0) {
347
+ const cachedTextTokens = usage.input_tokens_details?.cached_text_tokens || 0;
348
+ const uncachedTextTokens = inputTextTokens - cachedTextTokens;
349
+ inputCost += uncachedTextTokens * (modelInfo.input_cost_per_token || 0);
350
+ if (cachedTextTokens > 0) {
351
+ inputCost +=
352
+ cachedTextTokens *
353
+ (modelInfo.cache_read_input_text_token_cost ||
354
+ modelInfo.input_cost_per_token * 0.5);
355
+ }
356
+ }
357
+ let outputCost = 0;
358
+ if (outputImageTokens > 0) {
359
+ outputCost += outputImageTokens * (modelInfo.output_cost_per_image_token || 0);
360
+ }
361
+ if (outputTextTokens > 0) {
362
+ outputCost += outputTextTokens * (modelInfo.output_cost_per_token || 0);
363
+ }
364
+ const markup = outputCost * 0;
365
+ const cost = inputCost + outputCost + markup;
366
+ agent.totalCost += cost;
367
+ agent.totalMarkup += markup;
368
+ console.log(`Cost for image generation: ${cost} (markup: ${markup.toFixed(4)})`);
369
+ if (agent.balanceService && cost > 0) {
370
+ agent.balanceService.decrementBalance(cost, markup);
371
+ }
372
+ }
373
+ async generateImage(agent, prompt, width, height, quality, referenceImageArtifactIds) {
374
+ if (agent.balanceService) {
375
+ const hasSufficientBalance = agent.balanceService.hasSufficientBalance();
376
+ if (!hasSufficientBalance) {
377
+ throw new errors_1.InsufficientBalanceError('Insufficient balance for image generation. Please add funds to continue.');
378
+ }
379
+ }
380
+ try {
381
+ let imageResponse;
382
+ const size = `${width}x${height}`;
383
+ if (referenceImageArtifactIds && referenceImageArtifactIds.length > 0) {
384
+ const referenceImages = await this.loadReferenceImages(agent, referenceImageArtifactIds);
385
+ imageResponse = await this.openai.images.edit({
386
+ model: agent.modelName,
387
+ prompt: prompt,
388
+ image: referenceImages.length === 1 ? referenceImages[0] : referenceImages,
389
+ size: size,
390
+ n: 1,
391
+ });
392
+ }
393
+ else {
394
+ imageResponse = await this.openai.images.generate({
395
+ model: agent.modelName,
396
+ prompt: prompt,
397
+ n: 1,
398
+ size: size,
399
+ quality: quality || 'auto',
400
+ moderation: 'low',
401
+ });
402
+ }
403
+ if (imageResponse.usage) {
404
+ this.computeImageCost(agent, imageResponse.usage);
405
+ }
406
+ const base64Data = imageResponse.data[0].b64_json;
407
+ const artifactId = await this.saveImageAsArtifact(agent, base64Data, prompt);
408
+ return { artifactId };
409
+ }
410
+ catch (error) {
411
+ console.error('Error generating image:', error);
412
+ console.log(prompt);
413
+ return { error };
414
+ }
415
+ }
416
+ };
417
+ exports.OpenAiService = OpenAiService;
418
+ exports.OpenAiService = OpenAiService = __decorate([
419
+ (0, common_1.Injectable)(),
420
+ __metadata("design:paramtypes", [])
421
+ ], OpenAiService);
@@ -0,0 +1,2 @@
1
+ export declare class TogetherAiModule {
2
+ }