ysk-omni 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 (1140) hide show
  1. package/.env.example +80 -0
  2. package/LICENSE +21 -0
  3. package/README-ZH.md +51 -0
  4. package/README.md +41 -0
  5. package/dist/app.d.ts +3 -0
  6. package/dist/app.d.ts.map +1 -0
  7. package/dist/app.js +277 -0
  8. package/dist/app.js.map +1 -0
  9. package/dist/catalog/curated.d.ts +14 -0
  10. package/dist/catalog/curated.d.ts.map +1 -0
  11. package/dist/catalog/curated.js +30 -0
  12. package/dist/catalog/curated.js.map +1 -0
  13. package/dist/cli/commands/admin-otp.d.ts +10 -0
  14. package/dist/cli/commands/admin-otp.d.ts.map +1 -0
  15. package/dist/cli/commands/admin-otp.js +82 -0
  16. package/dist/cli/commands/admin-otp.js.map +1 -0
  17. package/dist/cli/commands/admin-panel.d.ts +13 -0
  18. package/dist/cli/commands/admin-panel.d.ts.map +1 -0
  19. package/dist/cli/commands/admin-panel.js +98 -0
  20. package/dist/cli/commands/admin-panel.js.map +1 -0
  21. package/dist/cli/commands/admin-sessions.d.ts +6 -0
  22. package/dist/cli/commands/admin-sessions.d.ts.map +1 -0
  23. package/dist/cli/commands/admin-sessions.js +62 -0
  24. package/dist/cli/commands/admin-sessions.js.map +1 -0
  25. package/dist/cli/commands/api-features.d.ts +8 -0
  26. package/dist/cli/commands/api-features.d.ts.map +1 -0
  27. package/dist/cli/commands/api-features.js +136 -0
  28. package/dist/cli/commands/api-features.js.map +1 -0
  29. package/dist/cli/commands/audit.d.ts +7 -0
  30. package/dist/cli/commands/audit.d.ts.map +1 -0
  31. package/dist/cli/commands/audit.js +48 -0
  32. package/dist/cli/commands/audit.js.map +1 -0
  33. package/dist/cli/commands/catalog.d.ts +26 -0
  34. package/dist/cli/commands/catalog.d.ts.map +1 -0
  35. package/dist/cli/commands/catalog.js +223 -0
  36. package/dist/cli/commands/catalog.js.map +1 -0
  37. package/dist/cli/commands/chats.d.ts +10 -0
  38. package/dist/cli/commands/chats.d.ts.map +1 -0
  39. package/dist/cli/commands/chats.js +97 -0
  40. package/dist/cli/commands/chats.js.map +1 -0
  41. package/dist/cli/commands/conversations.d.ts +10 -0
  42. package/dist/cli/commands/conversations.d.ts.map +1 -0
  43. package/dist/cli/commands/conversations.js +68 -0
  44. package/dist/cli/commands/conversations.js.map +1 -0
  45. package/dist/cli/commands/ddos.d.ts +18 -0
  46. package/dist/cli/commands/ddos.d.ts.map +1 -0
  47. package/dist/cli/commands/ddos.js +298 -0
  48. package/dist/cli/commands/ddos.js.map +1 -0
  49. package/dist/cli/commands/docs.d.ts +13 -0
  50. package/dist/cli/commands/docs.d.ts.map +1 -0
  51. package/dist/cli/commands/docs.js +104 -0
  52. package/dist/cli/commands/docs.js.map +1 -0
  53. package/dist/cli/commands/doctor.d.ts +6 -0
  54. package/dist/cli/commands/doctor.d.ts.map +1 -0
  55. package/dist/cli/commands/doctor.js +207 -0
  56. package/dist/cli/commands/doctor.js.map +1 -0
  57. package/dist/cli/commands/key.d.ts +42 -0
  58. package/dist/cli/commands/key.d.ts.map +1 -0
  59. package/dist/cli/commands/key.js +192 -0
  60. package/dist/cli/commands/key.js.map +1 -0
  61. package/dist/cli/commands/logs.d.ts +19 -0
  62. package/dist/cli/commands/logs.d.ts.map +1 -0
  63. package/dist/cli/commands/logs.js +104 -0
  64. package/dist/cli/commands/logs.js.map +1 -0
  65. package/dist/cli/commands/migrate.d.ts +5 -0
  66. package/dist/cli/commands/migrate.d.ts.map +1 -0
  67. package/dist/cli/commands/migrate.js +25 -0
  68. package/dist/cli/commands/migrate.js.map +1 -0
  69. package/dist/cli/commands/models.d.ts +5 -0
  70. package/dist/cli/commands/models.d.ts.map +1 -0
  71. package/dist/cli/commands/models.js +68 -0
  72. package/dist/cli/commands/models.js.map +1 -0
  73. package/dist/cli/commands/open.d.ts +7 -0
  74. package/dist/cli/commands/open.d.ts.map +1 -0
  75. package/dist/cli/commands/open.js +24 -0
  76. package/dist/cli/commands/open.js.map +1 -0
  77. package/dist/cli/commands/queue.d.ts +33 -0
  78. package/dist/cli/commands/queue.d.ts.map +1 -0
  79. package/dist/cli/commands/queue.js +467 -0
  80. package/dist/cli/commands/queue.js.map +1 -0
  81. package/dist/cli/commands/restart.d.ts +8 -0
  82. package/dist/cli/commands/restart.d.ts.map +1 -0
  83. package/dist/cli/commands/restart.js +36 -0
  84. package/dist/cli/commands/restart.js.map +1 -0
  85. package/dist/cli/commands/runtimes.d.ts +9 -0
  86. package/dist/cli/commands/runtimes.d.ts.map +1 -0
  87. package/dist/cli/commands/runtimes.js +87 -0
  88. package/dist/cli/commands/runtimes.js.map +1 -0
  89. package/dist/cli/commands/seed.d.ts +5 -0
  90. package/dist/cli/commands/seed.d.ts.map +1 -0
  91. package/dist/cli/commands/seed.js +22 -0
  92. package/dist/cli/commands/seed.js.map +1 -0
  93. package/dist/cli/commands/settings.d.ts +13 -0
  94. package/dist/cli/commands/settings.d.ts.map +1 -0
  95. package/dist/cli/commands/settings.js +182 -0
  96. package/dist/cli/commands/settings.js.map +1 -0
  97. package/dist/cli/commands/setup.d.ts +6 -0
  98. package/dist/cli/commands/setup.d.ts.map +1 -0
  99. package/dist/cli/commands/setup.js +70 -0
  100. package/dist/cli/commands/setup.js.map +1 -0
  101. package/dist/cli/commands/start.d.ts +9 -0
  102. package/dist/cli/commands/start.d.ts.map +1 -0
  103. package/dist/cli/commands/start.js +140 -0
  104. package/dist/cli/commands/start.js.map +1 -0
  105. package/dist/cli/commands/stats.d.ts +3 -0
  106. package/dist/cli/commands/stats.d.ts.map +1 -0
  107. package/dist/cli/commands/stats.js +83 -0
  108. package/dist/cli/commands/stats.js.map +1 -0
  109. package/dist/cli/commands/status.d.ts +6 -0
  110. package/dist/cli/commands/status.d.ts.map +1 -0
  111. package/dist/cli/commands/status.js +70 -0
  112. package/dist/cli/commands/status.js.map +1 -0
  113. package/dist/cli/commands/stop.d.ts +11 -0
  114. package/dist/cli/commands/stop.d.ts.map +1 -0
  115. package/dist/cli/commands/stop.js +51 -0
  116. package/dist/cli/commands/stop.js.map +1 -0
  117. package/dist/cli/commands/update.d.ts +9 -0
  118. package/dist/cli/commands/update.d.ts.map +1 -0
  119. package/dist/cli/commands/update.js +182 -0
  120. package/dist/cli/commands/update.js.map +1 -0
  121. package/dist/cli/commands/version.d.ts +2 -0
  122. package/dist/cli/commands/version.d.ts.map +1 -0
  123. package/dist/cli/commands/version.js +16 -0
  124. package/dist/cli/commands/version.js.map +1 -0
  125. package/dist/cli/index.d.ts +3 -0
  126. package/dist/cli/index.d.ts.map +1 -0
  127. package/dist/cli/index.js +835 -0
  128. package/dist/cli/index.js.map +1 -0
  129. package/dist/cli/lib/auto-migrate.d.ts +14 -0
  130. package/dist/cli/lib/auto-migrate.d.ts.map +1 -0
  131. package/dist/cli/lib/auto-migrate.js +42 -0
  132. package/dist/cli/lib/auto-migrate.js.map +1 -0
  133. package/dist/cli/lib/db-keys.d.ts +51 -0
  134. package/dist/cli/lib/db-keys.d.ts.map +1 -0
  135. package/dist/cli/lib/db-keys.js +207 -0
  136. package/dist/cli/lib/db-keys.js.map +1 -0
  137. package/dist/cli/lib/env-file.d.ts +14 -0
  138. package/dist/cli/lib/env-file.d.ts.map +1 -0
  139. package/dist/cli/lib/env-file.js +143 -0
  140. package/dist/cli/lib/env-file.js.map +1 -0
  141. package/dist/cli/lib/paths.d.ts +27 -0
  142. package/dist/cli/lib/paths.d.ts.map +1 -0
  143. package/dist/cli/lib/paths.js +87 -0
  144. package/dist/cli/lib/paths.js.map +1 -0
  145. package/dist/cli/lib/pm2-runner.d.ts +14 -0
  146. package/dist/cli/lib/pm2-runner.d.ts.map +1 -0
  147. package/dist/cli/lib/pm2-runner.js +179 -0
  148. package/dist/cli/lib/pm2-runner.js.map +1 -0
  149. package/dist/cli/lib/print-table.d.ts +3 -0
  150. package/dist/cli/lib/print-table.d.ts.map +1 -0
  151. package/dist/cli/lib/print-table.js +29 -0
  152. package/dist/cli/lib/print-table.js.map +1 -0
  153. package/dist/cli/lib/print.d.ts +10 -0
  154. package/dist/cli/lib/print.d.ts.map +1 -0
  155. package/dist/cli/lib/print.js +28 -0
  156. package/dist/cli/lib/print.js.map +1 -0
  157. package/dist/cli/lib/process-mgr.d.ts +23 -0
  158. package/dist/cli/lib/process-mgr.d.ts.map +1 -0
  159. package/dist/cli/lib/process-mgr.js +207 -0
  160. package/dist/cli/lib/process-mgr.js.map +1 -0
  161. package/dist/cli/lib/run-prisma.d.ts +13 -0
  162. package/dist/cli/lib/run-prisma.d.ts.map +1 -0
  163. package/dist/cli/lib/run-prisma.js +99 -0
  164. package/dist/cli/lib/run-prisma.js.map +1 -0
  165. package/dist/cli/lib/runner-info.d.ts +20 -0
  166. package/dist/cli/lib/runner-info.d.ts.map +1 -0
  167. package/dist/cli/lib/runner-info.js +120 -0
  168. package/dist/cli/lib/runner-info.js.map +1 -0
  169. package/dist/cli/lib/runtime-context.d.ts +23 -0
  170. package/dist/cli/lib/runtime-context.d.ts.map +1 -0
  171. package/dist/cli/lib/runtime-context.js +60 -0
  172. package/dist/cli/lib/runtime-context.js.map +1 -0
  173. package/dist/cli/lib/seed-admin.d.ts +17 -0
  174. package/dist/cli/lib/seed-admin.d.ts.map +1 -0
  175. package/dist/cli/lib/seed-admin.js +80 -0
  176. package/dist/cli/lib/seed-admin.js.map +1 -0
  177. package/dist/cli/lib/spinner.d.ts +20 -0
  178. package/dist/cli/lib/spinner.d.ts.map +1 -0
  179. package/dist/cli/lib/spinner.js +72 -0
  180. package/dist/cli/lib/spinner.js.map +1 -0
  181. package/dist/config/constants.d.ts +143 -0
  182. package/dist/config/constants.d.ts.map +1 -0
  183. package/dist/config/constants.js +355 -0
  184. package/dist/config/constants.js.map +1 -0
  185. package/dist/config/cors.d.ts +3 -0
  186. package/dist/config/cors.d.ts.map +1 -0
  187. package/dist/config/cors.js +30 -0
  188. package/dist/config/cors.js.map +1 -0
  189. package/dist/config/database.d.ts +4 -0
  190. package/dist/config/database.d.ts.map +1 -0
  191. package/dist/config/database.js +18 -0
  192. package/dist/config/database.js.map +1 -0
  193. package/dist/config/env.d.ts +48 -0
  194. package/dist/config/env.d.ts.map +1 -0
  195. package/dist/config/env.js +163 -0
  196. package/dist/config/env.js.map +1 -0
  197. package/dist/config/omni-home.d.ts +3 -0
  198. package/dist/config/omni-home.d.ts.map +1 -0
  199. package/dist/config/omni-home.js +16 -0
  200. package/dist/config/omni-home.js.map +1 -0
  201. package/dist/controllers/admin/api-features.handlers.d.ts +6 -0
  202. package/dist/controllers/admin/api-features.handlers.d.ts.map +1 -0
  203. package/dist/controllers/admin/api-features.handlers.js +62 -0
  204. package/dist/controllers/admin/api-features.handlers.js.map +1 -0
  205. package/dist/controllers/admin/audit.handlers.d.ts +5 -0
  206. package/dist/controllers/admin/audit.handlers.d.ts.map +1 -0
  207. package/dist/controllers/admin/audit.handlers.js +79 -0
  208. package/dist/controllers/admin/audit.handlers.js.map +1 -0
  209. package/dist/controllers/admin/auth.handlers.d.ts +8 -0
  210. package/dist/controllers/admin/auth.handlers.d.ts.map +1 -0
  211. package/dist/controllers/admin/auth.handlers.js +56 -0
  212. package/dist/controllers/admin/auth.handlers.js.map +1 -0
  213. package/dist/controllers/admin/catalog.handlers.d.ts +10 -0
  214. package/dist/controllers/admin/catalog.handlers.d.ts.map +1 -0
  215. package/dist/controllers/admin/catalog.handlers.js +170 -0
  216. package/dist/controllers/admin/catalog.handlers.js.map +1 -0
  217. package/dist/controllers/admin/chats.handlers.d.ts +6 -0
  218. package/dist/controllers/admin/chats.handlers.d.ts.map +1 -0
  219. package/dist/controllers/admin/chats.handlers.js +22 -0
  220. package/dist/controllers/admin/chats.handlers.js.map +1 -0
  221. package/dist/controllers/admin/conversations.handlers.d.ts +9 -0
  222. package/dist/controllers/admin/conversations.handlers.d.ts.map +1 -0
  223. package/dist/controllers/admin/conversations.handlers.js +70 -0
  224. package/dist/controllers/admin/conversations.handlers.js.map +1 -0
  225. package/dist/controllers/admin/core.handlers.d.ts +13 -0
  226. package/dist/controllers/admin/core.handlers.d.ts.map +1 -0
  227. package/dist/controllers/admin/core.handlers.js +201 -0
  228. package/dist/controllers/admin/core.handlers.js.map +1 -0
  229. package/dist/controllers/admin/ddos.handlers.d.ts +13 -0
  230. package/dist/controllers/admin/ddos.handlers.d.ts.map +1 -0
  231. package/dist/controllers/admin/ddos.handlers.js +178 -0
  232. package/dist/controllers/admin/ddos.handlers.js.map +1 -0
  233. package/dist/controllers/admin/documents.handlers.d.ts +8 -0
  234. package/dist/controllers/admin/documents.handlers.d.ts.map +1 -0
  235. package/dist/controllers/admin/documents.handlers.js +207 -0
  236. package/dist/controllers/admin/documents.handlers.js.map +1 -0
  237. package/dist/controllers/admin/keys.handlers.d.ts +8 -0
  238. package/dist/controllers/admin/keys.handlers.d.ts.map +1 -0
  239. package/dist/controllers/admin/keys.handlers.js +84 -0
  240. package/dist/controllers/admin/keys.handlers.js.map +1 -0
  241. package/dist/controllers/admin/media.handlers.d.ts +27 -0
  242. package/dist/controllers/admin/media.handlers.d.ts.map +1 -0
  243. package/dist/controllers/admin/media.handlers.js +637 -0
  244. package/dist/controllers/admin/media.handlers.js.map +1 -0
  245. package/dist/controllers/admin/playground.handlers.d.ts +6 -0
  246. package/dist/controllers/admin/playground.handlers.d.ts.map +1 -0
  247. package/dist/controllers/admin/playground.handlers.js +76 -0
  248. package/dist/controllers/admin/playground.handlers.js.map +1 -0
  249. package/dist/controllers/admin/pm2.handlers.d.ts +15 -0
  250. package/dist/controllers/admin/pm2.handlers.d.ts.map +1 -0
  251. package/dist/controllers/admin/pm2.handlers.js +161 -0
  252. package/dist/controllers/admin/pm2.handlers.js.map +1 -0
  253. package/dist/controllers/admin/queue.handlers.d.ts +16 -0
  254. package/dist/controllers/admin/queue.handlers.d.ts.map +1 -0
  255. package/dist/controllers/admin/queue.handlers.js +159 -0
  256. package/dist/controllers/admin/queue.handlers.js.map +1 -0
  257. package/dist/controllers/admin/runtimes.handlers.d.ts +6 -0
  258. package/dist/controllers/admin/runtimes.handlers.d.ts.map +1 -0
  259. package/dist/controllers/admin/runtimes.handlers.js +54 -0
  260. package/dist/controllers/admin/runtimes.handlers.js.map +1 -0
  261. package/dist/controllers/admin/types.d.ts +7 -0
  262. package/dist/controllers/admin/types.d.ts.map +1 -0
  263. package/dist/controllers/admin/types.js +3 -0
  264. package/dist/controllers/admin/types.js.map +1 -0
  265. package/dist/controllers/admin.controller.d.ts +87 -0
  266. package/dist/controllers/admin.controller.d.ts.map +1 -0
  267. package/dist/controllers/admin.controller.js +58 -0
  268. package/dist/controllers/admin.controller.js.map +1 -0
  269. package/dist/controllers/anthropic.controller.d.ts +5 -0
  270. package/dist/controllers/anthropic.controller.d.ts.map +1 -0
  271. package/dist/controllers/anthropic.controller.js +37 -0
  272. package/dist/controllers/anthropic.controller.js.map +1 -0
  273. package/dist/controllers/api-key.controller.d.ts +7 -0
  274. package/dist/controllers/api-key.controller.d.ts.map +1 -0
  275. package/dist/controllers/api-key.controller.js +51 -0
  276. package/dist/controllers/api-key.controller.js.map +1 -0
  277. package/dist/controllers/assistants.controller.d.ts +13 -0
  278. package/dist/controllers/assistants.controller.d.ts.map +1 -0
  279. package/dist/controllers/assistants.controller.js +75 -0
  280. package/dist/controllers/assistants.controller.js.map +1 -0
  281. package/dist/controllers/audio.controller.d.ts +10 -0
  282. package/dist/controllers/audio.controller.d.ts.map +1 -0
  283. package/dist/controllers/audio.controller.js +43 -0
  284. package/dist/controllers/audio.controller.js.map +1 -0
  285. package/dist/controllers/chat.controller.d.ts +5 -0
  286. package/dist/controllers/chat.controller.d.ts.map +1 -0
  287. package/dist/controllers/chat.controller.js +34 -0
  288. package/dist/controllers/chat.controller.js.map +1 -0
  289. package/dist/controllers/document.controller.d.ts +8 -0
  290. package/dist/controllers/document.controller.d.ts.map +1 -0
  291. package/dist/controllers/document.controller.js +54 -0
  292. package/dist/controllers/document.controller.js.map +1 -0
  293. package/dist/controllers/files.controller.d.ts +12 -0
  294. package/dist/controllers/files.controller.d.ts.map +1 -0
  295. package/dist/controllers/files.controller.js +144 -0
  296. package/dist/controllers/files.controller.js.map +1 -0
  297. package/dist/controllers/health.controller.d.ts +6 -0
  298. package/dist/controllers/health.controller.d.ts.map +1 -0
  299. package/dist/controllers/health.controller.js +39 -0
  300. package/dist/controllers/health.controller.js.map +1 -0
  301. package/dist/controllers/images.controller.d.ts +6 -0
  302. package/dist/controllers/images.controller.d.ts.map +1 -0
  303. package/dist/controllers/images.controller.js +66 -0
  304. package/dist/controllers/images.controller.js.map +1 -0
  305. package/dist/controllers/media-assets.controller.d.ts +6 -0
  306. package/dist/controllers/media-assets.controller.d.ts.map +1 -0
  307. package/dist/controllers/media-assets.controller.js +51 -0
  308. package/dist/controllers/media-assets.controller.js.map +1 -0
  309. package/dist/controllers/models.controller.d.ts +7 -0
  310. package/dist/controllers/models.controller.d.ts.map +1 -0
  311. package/dist/controllers/models.controller.js +44 -0
  312. package/dist/controllers/models.controller.js.map +1 -0
  313. package/dist/controllers/responses.controller.d.ts +7 -0
  314. package/dist/controllers/responses.controller.d.ts.map +1 -0
  315. package/dist/controllers/responses.controller.js +83 -0
  316. package/dist/controllers/responses.controller.js.map +1 -0
  317. package/dist/controllers/videos.controller.d.ts +7 -0
  318. package/dist/controllers/videos.controller.d.ts.map +1 -0
  319. package/dist/controllers/videos.controller.js +46 -0
  320. package/dist/controllers/videos.controller.js.map +1 -0
  321. package/dist/dto/admin-auth.dto.d.ts +10 -0
  322. package/dist/dto/admin-auth.dto.d.ts.map +1 -0
  323. package/dist/dto/admin-auth.dto.js +12 -0
  324. package/dist/dto/admin-auth.dto.js.map +1 -0
  325. package/dist/dto/admin.dto.d.ts +153 -0
  326. package/dist/dto/admin.dto.d.ts.map +1 -0
  327. package/dist/dto/admin.dto.js +78 -0
  328. package/dist/dto/admin.dto.js.map +1 -0
  329. package/dist/dto/anthropic-messages.dto.d.ts +77 -0
  330. package/dist/dto/anthropic-messages.dto.d.ts.map +1 -0
  331. package/dist/dto/anthropic-messages.dto.js +65 -0
  332. package/dist/dto/anthropic-messages.dto.js.map +1 -0
  333. package/dist/dto/api-key.dto.d.ts +27 -0
  334. package/dist/dto/api-key.dto.d.ts.map +1 -0
  335. package/dist/dto/api-key.dto.js +15 -0
  336. package/dist/dto/api-key.dto.js.map +1 -0
  337. package/dist/dto/audio.dto.d.ts +64 -0
  338. package/dist/dto/audio.dto.d.ts.map +1 -0
  339. package/dist/dto/audio.dto.js +29 -0
  340. package/dist/dto/audio.dto.js.map +1 -0
  341. package/dist/dto/chat.dto.d.ts +451 -0
  342. package/dist/dto/chat.dto.d.ts.map +1 -0
  343. package/dist/dto/chat.dto.js +116 -0
  344. package/dist/dto/chat.dto.js.map +1 -0
  345. package/dist/dto/conversation.dto.d.ts +286 -0
  346. package/dist/dto/conversation.dto.d.ts.map +1 -0
  347. package/dist/dto/conversation.dto.js +78 -0
  348. package/dist/dto/conversation.dto.js.map +1 -0
  349. package/dist/dto/ddos.dto.d.ts +191 -0
  350. package/dist/dto/ddos.dto.d.ts.map +1 -0
  351. package/dist/dto/ddos.dto.js +57 -0
  352. package/dist/dto/ddos.dto.js.map +1 -0
  353. package/dist/dto/document.dto.d.ts +21 -0
  354. package/dist/dto/document.dto.d.ts.map +1 -0
  355. package/dist/dto/document.dto.js +12 -0
  356. package/dist/dto/document.dto.js.map +1 -0
  357. package/dist/dto/files.dto.d.ts +17 -0
  358. package/dist/dto/files.dto.d.ts.map +1 -0
  359. package/dist/dto/files.dto.js +21 -0
  360. package/dist/dto/files.dto.js.map +1 -0
  361. package/dist/dto/images.dto.d.ts +68 -0
  362. package/dist/dto/images.dto.d.ts.map +1 -0
  363. package/dist/dto/images.dto.js +40 -0
  364. package/dist/dto/images.dto.js.map +1 -0
  365. package/dist/dto/index.d.ts +13 -0
  366. package/dist/dto/index.d.ts.map +1 -0
  367. package/dist/dto/index.js +44 -0
  368. package/dist/dto/index.js.map +1 -0
  369. package/dist/dto/queue.dto.d.ts +126 -0
  370. package/dist/dto/queue.dto.d.ts.map +1 -0
  371. package/dist/dto/queue.dto.js +33 -0
  372. package/dist/dto/queue.dto.js.map +1 -0
  373. package/dist/dto/responses.dto.d.ts +76 -0
  374. package/dist/dto/responses.dto.d.ts.map +1 -0
  375. package/dist/dto/responses.dto.js +139 -0
  376. package/dist/dto/responses.dto.js.map +1 -0
  377. package/dist/dto/videos.dto.d.ts +46 -0
  378. package/dist/dto/videos.dto.d.ts.map +1 -0
  379. package/dist/dto/videos.dto.js +38 -0
  380. package/dist/dto/videos.dto.js.map +1 -0
  381. package/dist/entities/api-key-created.entity.d.ts +6 -0
  382. package/dist/entities/api-key-created.entity.d.ts.map +1 -0
  383. package/dist/entities/api-key-created.entity.js +3 -0
  384. package/dist/entities/api-key-created.entity.js.map +1 -0
  385. package/dist/entities/api-key-public.entity.d.ts +20 -0
  386. package/dist/entities/api-key-public.entity.d.ts.map +1 -0
  387. package/dist/entities/api-key-public.entity.js +3 -0
  388. package/dist/entities/api-key-public.entity.js.map +1 -0
  389. package/dist/entities/api-key.entity.d.ts +21 -0
  390. package/dist/entities/api-key.entity.d.ts.map +1 -0
  391. package/dist/entities/api-key.entity.js +3 -0
  392. package/dist/entities/api-key.entity.js.map +1 -0
  393. package/dist/entities/audit-log-create-input.entity.d.ts +9 -0
  394. package/dist/entities/audit-log-create-input.entity.d.ts.map +1 -0
  395. package/dist/entities/audit-log-create-input.entity.js +3 -0
  396. package/dist/entities/audit-log-create-input.entity.js.map +1 -0
  397. package/dist/entities/audit-log.entity.d.ts +12 -0
  398. package/dist/entities/audit-log.entity.d.ts.map +1 -0
  399. package/dist/entities/audit-log.entity.js +3 -0
  400. package/dist/entities/audit-log.entity.js.map +1 -0
  401. package/dist/entities/chat-request-status.type.d.ts +2 -0
  402. package/dist/entities/chat-request-status.type.d.ts.map +1 -0
  403. package/dist/entities/chat-request-status.type.js +3 -0
  404. package/dist/entities/chat-request-status.type.js.map +1 -0
  405. package/dist/entities/chat-request.entity.d.ts +18 -0
  406. package/dist/entities/chat-request.entity.d.ts.map +1 -0
  407. package/dist/entities/chat-request.entity.js +3 -0
  408. package/dist/entities/chat-request.entity.js.map +1 -0
  409. package/dist/entities/document-public.entity.d.ts +9 -0
  410. package/dist/entities/document-public.entity.d.ts.map +1 -0
  411. package/dist/entities/document-public.entity.js +3 -0
  412. package/dist/entities/document-public.entity.js.map +1 -0
  413. package/dist/entities/document-storage-type.type.d.ts +2 -0
  414. package/dist/entities/document-storage-type.type.d.ts.map +1 -0
  415. package/dist/entities/document-storage-type.type.js +3 -0
  416. package/dist/entities/document-storage-type.type.js.map +1 -0
  417. package/dist/entities/document.entity.d.ts +16 -0
  418. package/dist/entities/document.entity.d.ts.map +1 -0
  419. package/dist/entities/document.entity.js +3 -0
  420. package/dist/entities/document.entity.js.map +1 -0
  421. package/dist/entities/encrypted-payload.entity.d.ts +6 -0
  422. package/dist/entities/encrypted-payload.entity.d.ts.map +1 -0
  423. package/dist/entities/encrypted-payload.entity.js +3 -0
  424. package/dist/entities/encrypted-payload.entity.js.map +1 -0
  425. package/dist/entities/index.d.ts +12 -0
  426. package/dist/entities/index.d.ts.map +1 -0
  427. package/dist/entities/index.js +3 -0
  428. package/dist/entities/index.js.map +1 -0
  429. package/dist/exceptions/error-codes.d.ts +30 -0
  430. package/dist/exceptions/error-codes.d.ts.map +1 -0
  431. package/dist/exceptions/error-codes.js +32 -0
  432. package/dist/exceptions/error-codes.js.map +1 -0
  433. package/dist/exceptions/exception.factory.d.ts +33 -0
  434. package/dist/exceptions/exception.factory.d.ts.map +1 -0
  435. package/dist/exceptions/exception.factory.js +90 -0
  436. package/dist/exceptions/exception.factory.js.map +1 -0
  437. package/dist/exceptions/http.exception.d.ts +28 -0
  438. package/dist/exceptions/http.exception.d.ts.map +1 -0
  439. package/dist/exceptions/http.exception.js +75 -0
  440. package/dist/exceptions/http.exception.js.map +1 -0
  441. package/dist/interfaces/anthropic-message.interface.d.ts +27 -0
  442. package/dist/interfaces/anthropic-message.interface.d.ts.map +1 -0
  443. package/dist/interfaces/anthropic-message.interface.js +4 -0
  444. package/dist/interfaces/anthropic-message.interface.js.map +1 -0
  445. package/dist/interfaces/api-features.type.d.ts +45 -0
  446. package/dist/interfaces/api-features.type.d.ts.map +1 -0
  447. package/dist/interfaces/api-features.type.js +61 -0
  448. package/dist/interfaces/api-features.type.js.map +1 -0
  449. package/dist/interfaces/api-key-mode.type.d.ts +8 -0
  450. package/dist/interfaces/api-key-mode.type.d.ts.map +1 -0
  451. package/dist/interfaces/api-key-mode.type.js +3 -0
  452. package/dist/interfaces/api-key-mode.type.js.map +1 -0
  453. package/dist/interfaces/api-key-role.type.d.ts +3 -0
  454. package/dist/interfaces/api-key-role.type.d.ts.map +1 -0
  455. package/dist/interfaces/api-key-role.type.js +3 -0
  456. package/dist/interfaces/api-key-role.type.js.map +1 -0
  457. package/dist/interfaces/app-settings.type.d.ts +10 -0
  458. package/dist/interfaces/app-settings.type.d.ts.map +1 -0
  459. package/dist/interfaces/app-settings.type.js +3 -0
  460. package/dist/interfaces/app-settings.type.js.map +1 -0
  461. package/dist/interfaces/auth.interface.d.ts +5 -0
  462. package/dist/interfaces/auth.interface.d.ts.map +1 -0
  463. package/dist/interfaces/auth.interface.js +3 -0
  464. package/dist/interfaces/auth.interface.js.map +1 -0
  465. package/dist/interfaces/authenticated-api-key.interface.d.ts +18 -0
  466. package/dist/interfaces/authenticated-api-key.interface.d.ts.map +1 -0
  467. package/dist/interfaces/authenticated-api-key.interface.js +3 -0
  468. package/dist/interfaces/authenticated-api-key.interface.js.map +1 -0
  469. package/dist/interfaces/auto-ban-event.interface.d.ts +11 -0
  470. package/dist/interfaces/auto-ban-event.interface.d.ts.map +1 -0
  471. package/dist/interfaces/auto-ban-event.interface.js +3 -0
  472. package/dist/interfaces/auto-ban-event.interface.js.map +1 -0
  473. package/dist/interfaces/built-engine-request.interface.d.ts +19 -0
  474. package/dist/interfaces/built-engine-request.interface.d.ts.map +1 -0
  475. package/dist/interfaces/built-engine-request.interface.js +3 -0
  476. package/dist/interfaces/built-engine-request.interface.js.map +1 -0
  477. package/dist/interfaces/chat-context.interface.d.ts +9 -0
  478. package/dist/interfaces/chat-context.interface.d.ts.map +1 -0
  479. package/dist/interfaces/chat-context.interface.js +3 -0
  480. package/dist/interfaces/chat-context.interface.js.map +1 -0
  481. package/dist/interfaces/chat-job-payload.interface.d.ts +28 -0
  482. package/dist/interfaces/chat-job-payload.interface.d.ts.map +1 -0
  483. package/dist/interfaces/chat-job-payload.interface.js +3 -0
  484. package/dist/interfaces/chat-job-payload.interface.js.map +1 -0
  485. package/dist/interfaces/chat-list-query.interface.d.ts +16 -0
  486. package/dist/interfaces/chat-list-query.interface.d.ts.map +1 -0
  487. package/dist/interfaces/chat-list-query.interface.js +3 -0
  488. package/dist/interfaces/chat-list-query.interface.js.map +1 -0
  489. package/dist/interfaces/document-context-result.interface.d.ts +7 -0
  490. package/dist/interfaces/document-context-result.interface.d.ts.map +1 -0
  491. package/dist/interfaces/document-context-result.interface.js +3 -0
  492. package/dist/interfaces/document-context-result.interface.js.map +1 -0
  493. package/dist/interfaces/engine-collected-output.interface.d.ts +33 -0
  494. package/dist/interfaces/engine-collected-output.interface.d.ts.map +1 -0
  495. package/dist/interfaces/engine-collected-output.interface.js +3 -0
  496. package/dist/interfaces/engine-collected-output.interface.js.map +1 -0
  497. package/dist/interfaces/engine-json-result.interface.d.ts +7 -0
  498. package/dist/interfaces/engine-json-result.interface.d.ts.map +1 -0
  499. package/dist/interfaces/engine-json-result.interface.js +3 -0
  500. package/dist/interfaces/engine-json-result.interface.js.map +1 -0
  501. package/dist/interfaces/engine-response-meta.interface.d.ts +14 -0
  502. package/dist/interfaces/engine-response-meta.interface.d.ts.map +1 -0
  503. package/dist/interfaces/engine-response-meta.interface.js +3 -0
  504. package/dist/interfaces/engine-response-meta.interface.js.map +1 -0
  505. package/dist/interfaces/engine-run-options.interface.d.ts +66 -0
  506. package/dist/interfaces/engine-run-options.interface.d.ts.map +1 -0
  507. package/dist/interfaces/engine-run-options.interface.js +3 -0
  508. package/dist/interfaces/engine-run-options.interface.js.map +1 -0
  509. package/dist/interfaces/engine-run-result.interface.d.ts +8 -0
  510. package/dist/interfaces/engine-run-result.interface.d.ts.map +1 -0
  511. package/dist/interfaces/engine-run-result.interface.js +3 -0
  512. package/dist/interfaces/engine-run-result.interface.js.map +1 -0
  513. package/dist/interfaces/engine-stream-event.type.d.ts +20 -0
  514. package/dist/interfaces/engine-stream-event.type.d.ts.map +1 -0
  515. package/dist/interfaces/engine-stream-event.type.js +3 -0
  516. package/dist/interfaces/engine-stream-event.type.js.map +1 -0
  517. package/dist/interfaces/engine.interface.d.ts +6 -0
  518. package/dist/interfaces/engine.interface.d.ts.map +1 -0
  519. package/dist/interfaces/engine.interface.js +3 -0
  520. package/dist/interfaces/engine.interface.js.map +1 -0
  521. package/dist/interfaces/execute-completion-options.interface.d.ts +17 -0
  522. package/dist/interfaces/execute-completion-options.interface.d.ts.map +1 -0
  523. package/dist/interfaces/execute-completion-options.interface.js +3 -0
  524. package/dist/interfaces/execute-completion-options.interface.js.map +1 -0
  525. package/dist/interfaces/express.interface.d.ts +13 -0
  526. package/dist/interfaces/express.interface.d.ts.map +1 -0
  527. package/dist/interfaces/express.interface.js +3 -0
  528. package/dist/interfaces/express.interface.js.map +1 -0
  529. package/dist/interfaces/index.d.ts +47 -0
  530. package/dist/interfaces/index.d.ts.map +1 -0
  531. package/dist/interfaces/index.js +7 -0
  532. package/dist/interfaces/index.js.map +1 -0
  533. package/dist/interfaces/install-channel.type.d.ts +2 -0
  534. package/dist/interfaces/install-channel.type.d.ts.map +1 -0
  535. package/dist/interfaces/install-channel.type.js +3 -0
  536. package/dist/interfaces/install-channel.type.js.map +1 -0
  537. package/dist/interfaces/map-completion-options.interface.d.ts +20 -0
  538. package/dist/interfaces/map-completion-options.interface.d.ts.map +1 -0
  539. package/dist/interfaces/map-completion-options.interface.js +3 -0
  540. package/dist/interfaces/map-completion-options.interface.js.map +1 -0
  541. package/dist/interfaces/materialized-document.interface.d.ts +10 -0
  542. package/dist/interfaces/materialized-document.interface.d.ts.map +1 -0
  543. package/dist/interfaces/materialized-document.interface.js +3 -0
  544. package/dist/interfaces/materialized-document.interface.js.map +1 -0
  545. package/dist/interfaces/open-ai-chat-completion-choice.interface.d.ts +25 -0
  546. package/dist/interfaces/open-ai-chat-completion-choice.interface.d.ts.map +1 -0
  547. package/dist/interfaces/open-ai-chat-completion-choice.interface.js +3 -0
  548. package/dist/interfaces/open-ai-chat-completion-choice.interface.js.map +1 -0
  549. package/dist/interfaces/open-ai-chat-completion-chunk.interface.d.ts +51 -0
  550. package/dist/interfaces/open-ai-chat-completion-chunk.interface.d.ts.map +1 -0
  551. package/dist/interfaces/open-ai-chat-completion-chunk.interface.js +3 -0
  552. package/dist/interfaces/open-ai-chat-completion-chunk.interface.js.map +1 -0
  553. package/dist/interfaces/open-ai-chat-completion-request.interface.d.ts +55 -0
  554. package/dist/interfaces/open-ai-chat-completion-request.interface.d.ts.map +1 -0
  555. package/dist/interfaces/open-ai-chat-completion-request.interface.js +3 -0
  556. package/dist/interfaces/open-ai-chat-completion-request.interface.js.map +1 -0
  557. package/dist/interfaces/open-ai-chat-completion.interface.d.ts +21 -0
  558. package/dist/interfaces/open-ai-chat-completion.interface.d.ts.map +1 -0
  559. package/dist/interfaces/open-ai-chat-completion.interface.js +3 -0
  560. package/dist/interfaces/open-ai-chat-completion.interface.js.map +1 -0
  561. package/dist/interfaces/open-ai-chat-message.interface.d.ts +9 -0
  562. package/dist/interfaces/open-ai-chat-message.interface.d.ts.map +1 -0
  563. package/dist/interfaces/open-ai-chat-message.interface.js +3 -0
  564. package/dist/interfaces/open-ai-chat-message.interface.js.map +1 -0
  565. package/dist/interfaces/open-ai-model-list.interface.d.ts +6 -0
  566. package/dist/interfaces/open-ai-model-list.interface.d.ts.map +1 -0
  567. package/dist/interfaces/open-ai-model-list.interface.js +3 -0
  568. package/dist/interfaces/open-ai-model-list.interface.js.map +1 -0
  569. package/dist/interfaces/open-ai-model.interface.d.ts +10 -0
  570. package/dist/interfaces/open-ai-model.interface.d.ts.map +1 -0
  571. package/dist/interfaces/open-ai-model.interface.js +3 -0
  572. package/dist/interfaces/open-ai-model.interface.js.map +1 -0
  573. package/dist/interfaces/open-ai-response.interface.d.ts +32 -0
  574. package/dist/interfaces/open-ai-response.interface.d.ts.map +1 -0
  575. package/dist/interfaces/open-ai-response.interface.js +3 -0
  576. package/dist/interfaces/open-ai-response.interface.js.map +1 -0
  577. package/dist/interfaces/open-ai-role.type.d.ts +2 -0
  578. package/dist/interfaces/open-ai-role.type.d.ts.map +1 -0
  579. package/dist/interfaces/open-ai-role.type.js +3 -0
  580. package/dist/interfaces/open-ai-role.type.js.map +1 -0
  581. package/dist/interfaces/openai.interface.d.ts +11 -0
  582. package/dist/interfaces/openai.interface.d.ts.map +1 -0
  583. package/dist/interfaces/openai.interface.js +3 -0
  584. package/dist/interfaces/openai.interface.js.map +1 -0
  585. package/dist/interfaces/pm2-runtime-config.interface.d.ts +24 -0
  586. package/dist/interfaces/pm2-runtime-config.interface.d.ts.map +1 -0
  587. package/dist/interfaces/pm2-runtime-config.interface.js +3 -0
  588. package/dist/interfaces/pm2-runtime-config.interface.js.map +1 -0
  589. package/dist/interfaces/proxy-ip-config.interface.d.ts +12 -0
  590. package/dist/interfaces/proxy-ip-config.interface.d.ts.map +1 -0
  591. package/dist/interfaces/proxy-ip-config.interface.js +3 -0
  592. package/dist/interfaces/proxy-ip-config.interface.js.map +1 -0
  593. package/dist/interfaces/proxy-ip-source.type.d.ts +7 -0
  594. package/dist/interfaces/proxy-ip-source.type.d.ts.map +1 -0
  595. package/dist/interfaces/proxy-ip-source.type.js +3 -0
  596. package/dist/interfaces/proxy-ip-source.type.js.map +1 -0
  597. package/dist/interfaces/resolved-policy.interface.d.ts +15 -0
  598. package/dist/interfaces/resolved-policy.interface.d.ts.map +1 -0
  599. package/dist/interfaces/resolved-policy.interface.js +3 -0
  600. package/dist/interfaces/resolved-policy.interface.js.map +1 -0
  601. package/dist/interfaces/runner-mode.type.d.ts +2 -0
  602. package/dist/interfaces/runner-mode.type.d.ts.map +1 -0
  603. package/dist/interfaces/runner-mode.type.js +3 -0
  604. package/dist/interfaces/runner-mode.type.js.map +1 -0
  605. package/dist/interfaces/software-check.interface.d.ts +14 -0
  606. package/dist/interfaces/software-check.interface.d.ts.map +1 -0
  607. package/dist/interfaces/software-check.interface.js +3 -0
  608. package/dist/interfaces/software-check.interface.js.map +1 -0
  609. package/dist/interfaces/software-id.type.d.ts +2 -0
  610. package/dist/interfaces/software-id.type.d.ts.map +1 -0
  611. package/dist/interfaces/software-id.type.js +3 -0
  612. package/dist/interfaces/software-id.type.js.map +1 -0
  613. package/dist/interfaces/software-level.type.d.ts +2 -0
  614. package/dist/interfaces/software-level.type.d.ts.map +1 -0
  615. package/dist/interfaces/software-level.type.js +3 -0
  616. package/dist/interfaces/software-level.type.js.map +1 -0
  617. package/dist/interfaces/system-software-report.interface.d.ts +6 -0
  618. package/dist/interfaces/system-software-report.interface.d.ts.map +1 -0
  619. package/dist/interfaces/system-software-report.interface.js +3 -0
  620. package/dist/interfaces/system-software-report.interface.js.map +1 -0
  621. package/dist/interfaces/tracked-connection.interface.d.ts +16 -0
  622. package/dist/interfaces/tracked-connection.interface.d.ts.map +1 -0
  623. package/dist/interfaces/tracked-connection.interface.js +3 -0
  624. package/dist/interfaces/tracked-connection.interface.js.map +1 -0
  625. package/dist/interfaces/update-progress.type.d.ts +16 -0
  626. package/dist/interfaces/update-progress.type.d.ts.map +1 -0
  627. package/dist/interfaces/update-progress.type.js +3 -0
  628. package/dist/interfaces/update-progress.type.js.map +1 -0
  629. package/dist/interfaces/update-result.interface.d.ts +11 -0
  630. package/dist/interfaces/update-result.interface.d.ts.map +1 -0
  631. package/dist/interfaces/update-result.interface.js +3 -0
  632. package/dist/interfaces/update-result.interface.js.map +1 -0
  633. package/dist/interfaces/version-info.interface.d.ts +21 -0
  634. package/dist/interfaces/version-info.interface.d.ts.map +1 -0
  635. package/dist/interfaces/version-info.interface.js +3 -0
  636. package/dist/interfaces/version-info.interface.js.map +1 -0
  637. package/dist/interfaces/version-status.type.d.ts +3 -0
  638. package/dist/interfaces/version-status.type.d.ts.map +1 -0
  639. package/dist/interfaces/version-status.type.js +3 -0
  640. package/dist/interfaces/version-status.type.js.map +1 -0
  641. package/dist/middlewares/auth.middleware.d.ts +13 -0
  642. package/dist/middlewares/auth.middleware.d.ts.map +1 -0
  643. package/dist/middlewares/auth.middleware.js +147 -0
  644. package/dist/middlewares/auth.middleware.js.map +1 -0
  645. package/dist/middlewares/client-ip.middleware.d.ts +11 -0
  646. package/dist/middlewares/client-ip.middleware.d.ts.map +1 -0
  647. package/dist/middlewares/client-ip.middleware.js +19 -0
  648. package/dist/middlewares/client-ip.middleware.js.map +1 -0
  649. package/dist/middlewares/concurrency.middleware.d.ts +6 -0
  650. package/dist/middlewares/concurrency.middleware.d.ts.map +1 -0
  651. package/dist/middlewares/concurrency.middleware.js +16 -0
  652. package/dist/middlewares/concurrency.middleware.js.map +1 -0
  653. package/dist/middlewares/connection-tracker.middleware.d.ts +33 -0
  654. package/dist/middlewares/connection-tracker.middleware.d.ts.map +1 -0
  655. package/dist/middlewares/connection-tracker.middleware.js +99 -0
  656. package/dist/middlewares/connection-tracker.middleware.js.map +1 -0
  657. package/dist/middlewares/error.middleware.d.ts +4 -0
  658. package/dist/middlewares/error.middleware.d.ts.map +1 -0
  659. package/dist/middlewares/error.middleware.js +42 -0
  660. package/dist/middlewares/error.middleware.js.map +1 -0
  661. package/dist/middlewares/index.d.ts +11 -0
  662. package/dist/middlewares/index.d.ts.map +1 -0
  663. package/dist/middlewares/index.js +35 -0
  664. package/dist/middlewares/index.js.map +1 -0
  665. package/dist/middlewares/rate-limit.middleware.d.ts +11 -0
  666. package/dist/middlewares/rate-limit.middleware.d.ts.map +1 -0
  667. package/dist/middlewares/rate-limit.middleware.js +152 -0
  668. package/dist/middlewares/rate-limit.middleware.js.map +1 -0
  669. package/dist/middlewares/request-id.middleware.d.ts +3 -0
  670. package/dist/middlewares/request-id.middleware.d.ts.map +1 -0
  671. package/dist/middlewares/request-id.middleware.js +12 -0
  672. package/dist/middlewares/request-id.middleware.js.map +1 -0
  673. package/dist/middlewares/upload-images.middleware.d.ts +3 -0
  674. package/dist/middlewares/upload-images.middleware.d.ts.map +1 -0
  675. package/dist/middlewares/upload-images.middleware.js +29 -0
  676. package/dist/middlewares/upload-images.middleware.js.map +1 -0
  677. package/dist/middlewares/upload.middleware.d.ts +2 -0
  678. package/dist/middlewares/upload.middleware.d.ts.map +1 -0
  679. package/dist/middlewares/upload.middleware.js +26 -0
  680. package/dist/middlewares/upload.middleware.js.map +1 -0
  681. package/dist/middlewares/validate.middleware.d.ts +6 -0
  682. package/dist/middlewares/validate.middleware.d.ts.map +1 -0
  683. package/dist/middlewares/validate.middleware.js +40 -0
  684. package/dist/middlewares/validate.middleware.js.map +1 -0
  685. package/dist/routes/admin.routes.d.ts +3 -0
  686. package/dist/routes/admin.routes.d.ts.map +1 -0
  687. package/dist/routes/admin.routes.js +136 -0
  688. package/dist/routes/admin.routes.js.map +1 -0
  689. package/dist/routes/index.d.ts +3 -0
  690. package/dist/routes/index.d.ts.map +1 -0
  691. package/dist/routes/index.js +46 -0
  692. package/dist/routes/index.js.map +1 -0
  693. package/dist/routes/v1/api-keys.routes.d.ts +3 -0
  694. package/dist/routes/v1/api-keys.routes.d.ts.map +1 -0
  695. package/dist/routes/v1/api-keys.routes.js +13 -0
  696. package/dist/routes/v1/api-keys.routes.js.map +1 -0
  697. package/dist/routes/v1/assistants.routes.d.ts +3 -0
  698. package/dist/routes/v1/assistants.routes.d.ts.map +1 -0
  699. package/dist/routes/v1/assistants.routes.js +13 -0
  700. package/dist/routes/v1/assistants.routes.js.map +1 -0
  701. package/dist/routes/v1/audio.routes.d.ts +3 -0
  702. package/dist/routes/v1/audio.routes.d.ts.map +1 -0
  703. package/dist/routes/v1/audio.routes.js +14 -0
  704. package/dist/routes/v1/audio.routes.js.map +1 -0
  705. package/dist/routes/v1/chat.routes.d.ts +3 -0
  706. package/dist/routes/v1/chat.routes.d.ts.map +1 -0
  707. package/dist/routes/v1/chat.routes.js +13 -0
  708. package/dist/routes/v1/chat.routes.js.map +1 -0
  709. package/dist/routes/v1/documents.routes.d.ts +3 -0
  710. package/dist/routes/v1/documents.routes.d.ts.map +1 -0
  711. package/dist/routes/v1/documents.routes.js +15 -0
  712. package/dist/routes/v1/documents.routes.js.map +1 -0
  713. package/dist/routes/v1/files.routes.d.ts +3 -0
  714. package/dist/routes/v1/files.routes.d.ts.map +1 -0
  715. package/dist/routes/v1/files.routes.js +16 -0
  716. package/dist/routes/v1/files.routes.js.map +1 -0
  717. package/dist/routes/v1/images.routes.d.ts +3 -0
  718. package/dist/routes/v1/images.routes.d.ts.map +1 -0
  719. package/dist/routes/v1/images.routes.js +14 -0
  720. package/dist/routes/v1/images.routes.js.map +1 -0
  721. package/dist/routes/v1/media-assets.routes.d.ts +3 -0
  722. package/dist/routes/v1/media-assets.routes.d.ts.map +1 -0
  723. package/dist/routes/v1/media-assets.routes.js +12 -0
  724. package/dist/routes/v1/media-assets.routes.js.map +1 -0
  725. package/dist/routes/v1/messages.routes.d.ts +3 -0
  726. package/dist/routes/v1/messages.routes.d.ts.map +1 -0
  727. package/dist/routes/v1/messages.routes.js +13 -0
  728. package/dist/routes/v1/messages.routes.js.map +1 -0
  729. package/dist/routes/v1/models.routes.d.ts +3 -0
  730. package/dist/routes/v1/models.routes.d.ts.map +1 -0
  731. package/dist/routes/v1/models.routes.js +11 -0
  732. package/dist/routes/v1/models.routes.js.map +1 -0
  733. package/dist/routes/v1/responses.routes.d.ts +3 -0
  734. package/dist/routes/v1/responses.routes.d.ts.map +1 -0
  735. package/dist/routes/v1/responses.routes.js +15 -0
  736. package/dist/routes/v1/responses.routes.js.map +1 -0
  737. package/dist/routes/v1/threads.routes.d.ts +3 -0
  738. package/dist/routes/v1/threads.routes.d.ts.map +1 -0
  739. package/dist/routes/v1/threads.routes.js +15 -0
  740. package/dist/routes/v1/threads.routes.js.map +1 -0
  741. package/dist/routes/v1/videos.routes.d.ts +3 -0
  742. package/dist/routes/v1/videos.routes.d.ts.map +1 -0
  743. package/dist/routes/v1/videos.routes.js +14 -0
  744. package/dist/routes/v1/videos.routes.js.map +1 -0
  745. package/dist/server.d.ts +2 -0
  746. package/dist/server.d.ts.map +1 -0
  747. package/dist/server.js +121 -0
  748. package/dist/server.js.map +1 -0
  749. package/dist/services/abuse-guard.service.d.ts +19 -0
  750. package/dist/services/abuse-guard.service.d.ts.map +1 -0
  751. package/dist/services/abuse-guard.service.js +243 -0
  752. package/dist/services/abuse-guard.service.js.map +1 -0
  753. package/dist/services/admin-auth.service.d.ts +32 -0
  754. package/dist/services/admin-auth.service.d.ts.map +1 -0
  755. package/dist/services/admin-auth.service.js +202 -0
  756. package/dist/services/admin-auth.service.js.map +1 -0
  757. package/dist/services/api-features.service.d.ts +15 -0
  758. package/dist/services/api-features.service.d.ts.map +1 -0
  759. package/dist/services/api-features.service.js +92 -0
  760. package/dist/services/api-features.service.js.map +1 -0
  761. package/dist/services/api-key.service.d.ts +52 -0
  762. package/dist/services/api-key.service.d.ts.map +1 -0
  763. package/dist/services/api-key.service.js +296 -0
  764. package/dist/services/api-key.service.js.map +1 -0
  765. package/dist/services/assistants.service.d.ts +130 -0
  766. package/dist/services/assistants.service.d.ts.map +1 -0
  767. package/dist/services/assistants.service.js +329 -0
  768. package/dist/services/assistants.service.js.map +1 -0
  769. package/dist/services/audit.service.d.ts +10 -0
  770. package/dist/services/audit.service.d.ts.map +1 -0
  771. package/dist/services/audit.service.js +38 -0
  772. package/dist/services/audit.service.js.map +1 -0
  773. package/dist/services/chat-admin.service.d.ts +76 -0
  774. package/dist/services/chat-admin.service.d.ts.map +1 -0
  775. package/dist/services/chat-admin.service.js +220 -0
  776. package/dist/services/chat-admin.service.js.map +1 -0
  777. package/dist/services/chat-request-builder.service.d.ts +23 -0
  778. package/dist/services/chat-request-builder.service.d.ts.map +1 -0
  779. package/dist/services/chat-request-builder.service.js +325 -0
  780. package/dist/services/chat-request-builder.service.js.map +1 -0
  781. package/dist/services/chat.service.d.ts +27 -0
  782. package/dist/services/chat.service.d.ts.map +1 -0
  783. package/dist/services/chat.service.js +1088 -0
  784. package/dist/services/chat.service.js.map +1 -0
  785. package/dist/services/conversation.service.d.ts +104 -0
  786. package/dist/services/conversation.service.d.ts.map +1 -0
  787. package/dist/services/conversation.service.js +254 -0
  788. package/dist/services/conversation.service.js.map +1 -0
  789. package/dist/services/ddos-policy.service.d.ts +41 -0
  790. package/dist/services/ddos-policy.service.d.ts.map +1 -0
  791. package/dist/services/ddos-policy.service.js +263 -0
  792. package/dist/services/ddos-policy.service.js.map +1 -0
  793. package/dist/services/document.service.d.ts +62 -0
  794. package/dist/services/document.service.d.ts.map +1 -0
  795. package/dist/services/document.service.js +344 -0
  796. package/dist/services/document.service.js.map +1 -0
  797. package/dist/services/encryption.service.d.ts +8 -0
  798. package/dist/services/encryption.service.d.ts.map +1 -0
  799. package/dist/services/encryption.service.js +34 -0
  800. package/dist/services/encryption.service.js.map +1 -0
  801. package/dist/services/engine-session-map.service.d.ts +11 -0
  802. package/dist/services/engine-session-map.service.d.ts.map +1 -0
  803. package/dist/services/engine-session-map.service.js +59 -0
  804. package/dist/services/engine-session-map.service.js.map +1 -0
  805. package/dist/services/engine-slot.service.d.ts +21 -0
  806. package/dist/services/engine-slot.service.d.ts.map +1 -0
  807. package/dist/services/engine-slot.service.js +55 -0
  808. package/dist/services/engine-slot.service.js.map +1 -0
  809. package/dist/services/hf/client.d.ts +18 -0
  810. package/dist/services/hf/client.d.ts.map +1 -0
  811. package/dist/services/hf/client.js +202 -0
  812. package/dist/services/hf/client.js.map +1 -0
  813. package/dist/services/hf/delete-local.d.ts +5 -0
  814. package/dist/services/hf/delete-local.d.ts.map +1 -0
  815. package/dist/services/hf/delete-local.js +46 -0
  816. package/dist/services/hf/delete-local.js.map +1 -0
  817. package/dist/services/hf/hub-search.d.ts +66 -0
  818. package/dist/services/hf/hub-search.d.ts.map +1 -0
  819. package/dist/services/hf/hub-search.js +272 -0
  820. package/dist/services/hf/hub-search.js.map +1 -0
  821. package/dist/services/hf/record-pull.d.ts +6 -0
  822. package/dist/services/hf/record-pull.d.ts.map +1 -0
  823. package/dist/services/hf/record-pull.js +80 -0
  824. package/dist/services/hf/record-pull.js.map +1 -0
  825. package/dist/services/hf/registry.d.ts +27 -0
  826. package/dist/services/hf/registry.d.ts.map +1 -0
  827. package/dist/services/hf/registry.js +77 -0
  828. package/dist/services/hf/registry.js.map +1 -0
  829. package/dist/services/hf/spec.d.ts +33 -0
  830. package/dist/services/hf/spec.d.ts.map +1 -0
  831. package/dist/services/hf/spec.js +175 -0
  832. package/dist/services/hf/spec.js.map +1 -0
  833. package/dist/services/ip-blacklist.service.d.ts +44 -0
  834. package/dist/services/ip-blacklist.service.d.ts.map +1 -0
  835. package/dist/services/ip-blacklist.service.js +145 -0
  836. package/dist/services/ip-blacklist.service.js.map +1 -0
  837. package/dist/services/media/audio-worker.d.ts +23 -0
  838. package/dist/services/media/audio-worker.d.ts.map +1 -0
  839. package/dist/services/media/audio-worker.js +81 -0
  840. package/dist/services/media/audio-worker.js.map +1 -0
  841. package/dist/services/media/format-convert.d.ts +37 -0
  842. package/dist/services/media/format-convert.d.ts.map +1 -0
  843. package/dist/services/media/format-convert.js +215 -0
  844. package/dist/services/media/format-convert.js.map +1 -0
  845. package/dist/services/media/media-jobs.service.d.ts +46 -0
  846. package/dist/services/media/media-jobs.service.d.ts.map +1 -0
  847. package/dist/services/media/media-jobs.service.js +193 -0
  848. package/dist/services/media/media-jobs.service.js.map +1 -0
  849. package/dist/services/media/media-orchestrator.service.d.ts +53 -0
  850. package/dist/services/media/media-orchestrator.service.d.ts.map +1 -0
  851. package/dist/services/media/media-orchestrator.service.js +228 -0
  852. package/dist/services/media/media-orchestrator.service.js.map +1 -0
  853. package/dist/services/media/media-store.service.d.ts +39 -0
  854. package/dist/services/media/media-store.service.d.ts.map +1 -0
  855. package/dist/services/media/media-store.service.js +154 -0
  856. package/dist/services/media/media-store.service.js.map +1 -0
  857. package/dist/services/media/providers/http-worker.provider.d.ts +9 -0
  858. package/dist/services/media/providers/http-worker.provider.d.ts.map +1 -0
  859. package/dist/services/media/providers/http-worker.provider.js +73 -0
  860. package/dist/services/media/providers/http-worker.provider.js.map +1 -0
  861. package/dist/services/media/providers/media-provider.interface.d.ts +44 -0
  862. package/dist/services/media/providers/media-provider.interface.d.ts.map +1 -0
  863. package/dist/services/media/providers/media-provider.interface.js +4 -0
  864. package/dist/services/media/providers/media-provider.interface.js.map +1 -0
  865. package/dist/services/media/providers/mock.provider.d.ts +8 -0
  866. package/dist/services/media/providers/mock.provider.d.ts.map +1 -0
  867. package/dist/services/media/providers/mock.provider.js +43 -0
  868. package/dist/services/media/providers/mock.provider.js.map +1 -0
  869. package/dist/services/media/providers/stub.provider.d.ts +8 -0
  870. package/dist/services/media/providers/stub.provider.d.ts.map +1 -0
  871. package/dist/services/media/providers/stub.provider.js +14 -0
  872. package/dist/services/media/providers/stub.provider.js.map +1 -0
  873. package/dist/services/media/video-fixture.d.ts +3 -0
  874. package/dist/services/media/video-fixture.d.ts.map +1 -0
  875. package/dist/services/media/video-fixture.js +40 -0
  876. package/dist/services/media/video-fixture.js.map +1 -0
  877. package/dist/services/models.service.d.ts +49 -0
  878. package/dist/services/models.service.d.ts.map +1 -0
  879. package/dist/services/models.service.js +162 -0
  880. package/dist/services/models.service.js.map +1 -0
  881. package/dist/services/pm2-config.d.ts +12 -0
  882. package/dist/services/pm2-config.d.ts.map +1 -0
  883. package/dist/services/pm2-config.js +156 -0
  884. package/dist/services/pm2-config.js.map +1 -0
  885. package/dist/services/pm2.service.d.ts +207 -0
  886. package/dist/services/pm2.service.d.ts.map +1 -0
  887. package/dist/services/pm2.service.js +789 -0
  888. package/dist/services/pm2.service.js.map +1 -0
  889. package/dist/services/policy.service.d.ts +8 -0
  890. package/dist/services/policy.service.d.ts.map +1 -0
  891. package/dist/services/policy.service.js +112 -0
  892. package/dist/services/policy.service.js.map +1 -0
  893. package/dist/services/queue/chat-queue.service.d.ts +107 -0
  894. package/dist/services/queue/chat-queue.service.d.ts.map +1 -0
  895. package/dist/services/queue/chat-queue.service.js +557 -0
  896. package/dist/services/queue/chat-queue.service.js.map +1 -0
  897. package/dist/services/queue/chat-worker.service.d.ts +12 -0
  898. package/dist/services/queue/chat-worker.service.d.ts.map +1 -0
  899. package/dist/services/queue/chat-worker.service.js +136 -0
  900. package/dist/services/queue/chat-worker.service.js.map +1 -0
  901. package/dist/services/queue/fair-claim.d.ts +41 -0
  902. package/dist/services/queue/fair-claim.d.ts.map +1 -0
  903. package/dist/services/queue/fair-claim.js +54 -0
  904. package/dist/services/queue/fair-claim.js.map +1 -0
  905. package/dist/services/queue/job-waiter.d.ts +40 -0
  906. package/dist/services/queue/job-waiter.d.ts.map +1 -0
  907. package/dist/services/queue/job-waiter.js +77 -0
  908. package/dist/services/queue/job-waiter.js.map +1 -0
  909. package/dist/services/queue/queue-backend.factory.d.ts +12 -0
  910. package/dist/services/queue/queue-backend.factory.d.ts.map +1 -0
  911. package/dist/services/queue/queue-backend.factory.js +41 -0
  912. package/dist/services/queue/queue-backend.factory.js.map +1 -0
  913. package/dist/services/queue/queue-backend.interface.d.ts +67 -0
  914. package/dist/services/queue/queue-backend.interface.d.ts.map +1 -0
  915. package/dist/services/queue/queue-backend.interface.js +19 -0
  916. package/dist/services/queue/queue-backend.interface.js.map +1 -0
  917. package/dist/services/queue/queue-policy.service.d.ts +19 -0
  918. package/dist/services/queue/queue-policy.service.d.ts.map +1 -0
  919. package/dist/services/queue/queue-policy.service.js +99 -0
  920. package/dist/services/queue/queue-policy.service.js.map +1 -0
  921. package/dist/services/response-store.service.d.ts +14 -0
  922. package/dist/services/response-store.service.d.ts.map +1 -0
  923. package/dist/services/response-store.service.js +77 -0
  924. package/dist/services/response-store.service.js.map +1 -0
  925. package/dist/services/role-normalize.service.d.ts +5 -0
  926. package/dist/services/role-normalize.service.d.ts.map +1 -0
  927. package/dist/services/role-normalize.service.js +22 -0
  928. package/dist/services/role-normalize.service.js.map +1 -0
  929. package/dist/services/runtimes/echo.d.ts +17 -0
  930. package/dist/services/runtimes/echo.d.ts.map +1 -0
  931. package/dist/services/runtimes/echo.js +40 -0
  932. package/dist/services/runtimes/echo.js.map +1 -0
  933. package/dist/services/runtimes/engine-manager.d.ts +47 -0
  934. package/dist/services/runtimes/engine-manager.d.ts.map +1 -0
  935. package/dist/services/runtimes/engine-manager.js +191 -0
  936. package/dist/services/runtimes/engine-manager.js.map +1 -0
  937. package/dist/services/runtimes/llama-server.d.ts +37 -0
  938. package/dist/services/runtimes/llama-server.d.ts.map +1 -0
  939. package/dist/services/runtimes/llama-server.js +153 -0
  940. package/dist/services/runtimes/llama-server.js.map +1 -0
  941. package/dist/services/runtimes/runtime-catalog.d.ts +49 -0
  942. package/dist/services/runtimes/runtime-catalog.d.ts.map +1 -0
  943. package/dist/services/runtimes/runtime-catalog.js +510 -0
  944. package/dist/services/runtimes/runtime-catalog.js.map +1 -0
  945. package/dist/services/runtimes/runtime-install.d.ts +45 -0
  946. package/dist/services/runtimes/runtime-install.d.ts.map +1 -0
  947. package/dist/services/runtimes/runtime-install.js +159 -0
  948. package/dist/services/runtimes/runtime-install.js.map +1 -0
  949. package/dist/services/runtimes/vllm.d.ts +14 -0
  950. package/dist/services/runtimes/vllm.d.ts.map +1 -0
  951. package/dist/services/runtimes/vllm.js +105 -0
  952. package/dist/services/runtimes/vllm.js.map +1 -0
  953. package/dist/services/settings.service.d.ts +7 -0
  954. package/dist/services/settings.service.d.ts.map +1 -0
  955. package/dist/services/settings.service.js +87 -0
  956. package/dist/services/settings.service.js.map +1 -0
  957. package/dist/services/stats.service.d.ts +104 -0
  958. package/dist/services/stats.service.d.ts.map +1 -0
  959. package/dist/services/stats.service.js +218 -0
  960. package/dist/services/stats.service.js.map +1 -0
  961. package/dist/services/system-health.service.d.ts +15 -0
  962. package/dist/services/system-health.service.d.ts.map +1 -0
  963. package/dist/services/system-health.service.js +259 -0
  964. package/dist/services/system-health.service.js.map +1 -0
  965. package/dist/services/update.service.d.ts +35 -0
  966. package/dist/services/update.service.d.ts.map +1 -0
  967. package/dist/services/update.service.js +449 -0
  968. package/dist/services/update.service.js.map +1 -0
  969. package/dist/services/usage.service.d.ts +49 -0
  970. package/dist/services/usage.service.d.ts.map +1 -0
  971. package/dist/services/usage.service.js +175 -0
  972. package/dist/services/usage.service.js.map +1 -0
  973. package/dist/services/vram-scheduler.d.ts +39 -0
  974. package/dist/services/vram-scheduler.d.ts.map +1 -0
  975. package/dist/services/vram-scheduler.js +84 -0
  976. package/dist/services/vram-scheduler.js.map +1 -0
  977. package/dist/utils/anthropic-mapper.d.ts +20 -0
  978. package/dist/utils/anthropic-mapper.d.ts.map +1 -0
  979. package/dist/utils/anthropic-mapper.js +254 -0
  980. package/dist/utils/anthropic-mapper.js.map +1 -0
  981. package/dist/utils/api-key-crypto.d.ts +10 -0
  982. package/dist/utils/api-key-crypto.d.ts.map +1 -0
  983. package/dist/utils/api-key-crypto.js +52 -0
  984. package/dist/utils/api-key-crypto.js.map +1 -0
  985. package/dist/utils/api-key-id.d.ts +13 -0
  986. package/dist/utils/api-key-id.d.ts.map +1 -0
  987. package/dist/utils/api-key-id.js +51 -0
  988. package/dist/utils/api-key-id.js.map +1 -0
  989. package/dist/utils/async-handler.d.ts +5 -0
  990. package/dist/utils/async-handler.d.ts.map +1 -0
  991. package/dist/utils/async-handler.js +9 -0
  992. package/dist/utils/async-handler.js.map +1 -0
  993. package/dist/utils/client-ip.d.ts +28 -0
  994. package/dist/utils/client-ip.d.ts.map +1 -0
  995. package/dist/utils/client-ip.js +184 -0
  996. package/dist/utils/client-ip.js.map +1 -0
  997. package/dist/utils/engine-event-parse.d.ts +24 -0
  998. package/dist/utils/engine-event-parse.d.ts.map +1 -0
  999. package/dist/utils/engine-event-parse.js +192 -0
  1000. package/dist/utils/engine-event-parse.js.map +1 -0
  1001. package/dist/utils/engine-session.d.ts +25 -0
  1002. package/dist/utils/engine-session.d.ts.map +1 -0
  1003. package/dist/utils/engine-session.js +80 -0
  1004. package/dist/utils/engine-session.js.map +1 -0
  1005. package/dist/utils/file-sniff.d.ts +16 -0
  1006. package/dist/utils/file-sniff.d.ts.map +1 -0
  1007. package/dist/utils/file-sniff.js +151 -0
  1008. package/dist/utils/file-sniff.js.map +1 -0
  1009. package/dist/utils/fs-safe.d.ts +5 -0
  1010. package/dist/utils/fs-safe.d.ts.map +1 -0
  1011. package/dist/utils/fs-safe.js +26 -0
  1012. package/dist/utils/fs-safe.js.map +1 -0
  1013. package/dist/utils/id.d.ts +7 -0
  1014. package/dist/utils/id.d.ts.map +1 -0
  1015. package/dist/utils/id.js +28 -0
  1016. package/dist/utils/id.js.map +1 -0
  1017. package/dist/utils/index.d.ts +14 -0
  1018. package/dist/utils/index.d.ts.map +1 -0
  1019. package/dist/utils/index.js +56 -0
  1020. package/dist/utils/index.js.map +1 -0
  1021. package/dist/utils/ip-match.d.ts +15 -0
  1022. package/dist/utils/ip-match.d.ts.map +1 -0
  1023. package/dist/utils/ip-match.js +133 -0
  1024. package/dist/utils/ip-match.js.map +1 -0
  1025. package/dist/utils/list-sort.d.ts +14 -0
  1026. package/dist/utils/list-sort.d.ts.map +1 -0
  1027. package/dist/utils/list-sort.js +58 -0
  1028. package/dist/utils/list-sort.js.map +1 -0
  1029. package/dist/utils/logger.d.ts +3 -0
  1030. package/dist/utils/logger.d.ts.map +1 -0
  1031. package/dist/utils/logger.js +38 -0
  1032. package/dist/utils/logger.js.map +1 -0
  1033. package/dist/utils/message-content.d.ts +24 -0
  1034. package/dist/utils/message-content.d.ts.map +1 -0
  1035. package/dist/utils/message-content.js +68 -0
  1036. package/dist/utils/message-content.js.map +1 -0
  1037. package/dist/utils/model-allowlist.d.ts +14 -0
  1038. package/dist/utils/model-allowlist.d.ts.map +1 -0
  1039. package/dist/utils/model-allowlist.js +84 -0
  1040. package/dist/utils/model-allowlist.js.map +1 -0
  1041. package/dist/utils/openai-mapper.d.ts +19 -0
  1042. package/dist/utils/openai-mapper.d.ts.map +1 -0
  1043. package/dist/utils/openai-mapper.js +182 -0
  1044. package/dist/utils/openai-mapper.js.map +1 -0
  1045. package/dist/utils/path-safe.d.ts +4 -0
  1046. package/dist/utils/path-safe.d.ts.map +1 -0
  1047. package/dist/utils/path-safe.js +49 -0
  1048. package/dist/utils/path-safe.js.map +1 -0
  1049. package/dist/utils/prisma-bytes.d.ts +8 -0
  1050. package/dist/utils/prisma-bytes.d.ts.map +1 -0
  1051. package/dist/utils/prisma-bytes.js +14 -0
  1052. package/dist/utils/prisma-bytes.js.map +1 -0
  1053. package/dist/utils/request-meta.d.ts +12 -0
  1054. package/dist/utils/request-meta.d.ts.map +1 -0
  1055. package/dist/utils/request-meta.js +26 -0
  1056. package/dist/utils/request-meta.js.map +1 -0
  1057. package/dist/utils/responses-mapper.d.ts +9 -0
  1058. package/dist/utils/responses-mapper.d.ts.map +1 -0
  1059. package/dist/utils/responses-mapper.js +56 -0
  1060. package/dist/utils/responses-mapper.js.map +1 -0
  1061. package/dist/utils/role-normalize.d.ts +9 -0
  1062. package/dist/utils/role-normalize.d.ts.map +1 -0
  1063. package/dist/utils/role-normalize.js +29 -0
  1064. package/dist/utils/role-normalize.js.map +1 -0
  1065. package/dist/utils/ssrf.d.ts +11 -0
  1066. package/dist/utils/ssrf.d.ts.map +1 -0
  1067. package/dist/utils/ssrf.js +114 -0
  1068. package/dist/utils/ssrf.js.map +1 -0
  1069. package/dist/utils/stream.d.ts +7 -0
  1070. package/dist/utils/stream.d.ts.map +1 -0
  1071. package/dist/utils/stream.js +70 -0
  1072. package/dist/utils/stream.js.map +1 -0
  1073. package/dist/utils/vision-remote.d.ts +28 -0
  1074. package/dist/utils/vision-remote.d.ts.map +1 -0
  1075. package/dist/utils/vision-remote.js +206 -0
  1076. package/dist/utils/vision-remote.js.map +1 -0
  1077. package/docs/en/README.md +25 -0
  1078. package/docs/en/admin.md +44 -0
  1079. package/docs/en/api.md +78 -0
  1080. package/docs/en/architecture.md +44 -0
  1081. package/docs/en/catalog.md +30 -0
  1082. package/docs/en/cli.md +180 -0
  1083. package/docs/en/configuration.md +52 -0
  1084. package/docs/en/development.md +49 -0
  1085. package/docs/en/getting-started.md +64 -0
  1086. package/docs/en/keys.md +30 -0
  1087. package/docs/en/media.md +38 -0
  1088. package/docs/en/operations.md +40 -0
  1089. package/docs/en/runtimes.md +20 -0
  1090. package/docs/zh/README.md +25 -0
  1091. package/docs/zh/admin.md +44 -0
  1092. package/docs/zh/api.md +78 -0
  1093. package/docs/zh/architecture.md +44 -0
  1094. package/docs/zh/catalog.md +30 -0
  1095. package/docs/zh/cli.md +180 -0
  1096. package/docs/zh/configuration.md +52 -0
  1097. package/docs/zh/development.md +49 -0
  1098. package/docs/zh/getting-started.md +62 -0
  1099. package/docs/zh/keys.md +30 -0
  1100. package/docs/zh/media.md +38 -0
  1101. package/docs/zh/operations.md +40 -0
  1102. package/docs/zh/runtimes.md +20 -0
  1103. package/package.json +108 -0
  1104. package/prisma/migrations/20260714084159_init_sqlite/migration.sql +106 -0
  1105. package/prisma/migrations/20260714090338_safe_mode_admin/migration.sql +36 -0
  1106. package/prisma/migrations/20260714120000_ip_whitelist_blacklist/migration.sql +19 -0
  1107. package/prisma/migrations/20260714220000_chat_conversations/migration.sql +22 -0
  1108. package/prisma/migrations/20260714230000_conversation_context/migration.sql +6 -0
  1109. package/prisma/migrations/20260715140000_admin_otp_session/migration.sql +29 -0
  1110. package/prisma/migrations/20260715150000_chat_jobs/migration.sql +33 -0
  1111. package/prisma/migrations/20260715161921_api_responses_assistants/migration.sql +80 -0
  1112. package/prisma/migrations/20260716060000_media_assets/migration.sql +25 -0
  1113. package/prisma/migrations/20260716070000_media_jobs/migration.sql +17 -0
  1114. package/prisma/migrations/20260813160000_grok_session_aliases/migration.sql +14 -0
  1115. package/prisma/migrations/20260924180000_api_key_allowed_models/migration.sql +2 -0
  1116. package/prisma/migrations/20260924190000_rename_grok_session_columns/migration.sql +5 -0
  1117. package/prisma/migrations/migration_lock.toml +3 -0
  1118. package/prisma/schema.prisma +391 -0
  1119. package/prisma/seed.ts +71 -0
  1120. package/public/admin/allowed-extensions.js +41 -0
  1121. package/public/admin/app.js +9980 -0
  1122. package/public/admin/assets/logo.svg +37 -0
  1123. package/public/admin/boot.js +2551 -0
  1124. package/public/admin/boot.js.map +1 -0
  1125. package/public/admin/disabled.html +131 -0
  1126. package/public/admin/i18n.js +2442 -0
  1127. package/public/admin/index.html +26 -0
  1128. package/public/admin/styles.css +5764 -0
  1129. package/public/admin/vendor/marked.min.js +6 -0
  1130. package/public/admin/vendor/purify.min.js +3 -0
  1131. package/scripts/api-audit-run.sh +52 -0
  1132. package/scripts/cli-audit-run.sh +214 -0
  1133. package/scripts/generate-allowed-extensions.cjs +23 -0
  1134. package/scripts/install.sh +34 -0
  1135. package/scripts/omni-openai-worker.mjs +144 -0
  1136. package/scripts/postinstall.cjs +5 -0
  1137. package/scripts/prepare.cjs +102 -0
  1138. package/scripts/smoke.sh +32 -0
  1139. package/scripts/start-tiny-media-worker.sh +14 -0
  1140. package/scripts/tiny-media-worker.py +491 -0
@@ -0,0 +1,1088 @@
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 __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.chatService = exports.ChatService = void 0;
40
+ const node_fs_1 = require("node:fs");
41
+ const node_path_1 = __importDefault(require("node:path"));
42
+ const database_1 = require("../config/database");
43
+ const constants_1 = require("../config/constants");
44
+ const exception_factory_1 = require("../exceptions/exception.factory");
45
+ const model_allowlist_1 = require("../utils/model-allowlist");
46
+ const http_exception_1 = require("../exceptions/http.exception");
47
+ const id_1 = require("../utils/id");
48
+ const fs_safe_1 = require("../utils/fs-safe");
49
+ const prisma_bytes_1 = require("../utils/prisma-bytes");
50
+ const openai_mapper_1 = require("../utils/openai-mapper");
51
+ const stream_1 = require("../utils/stream");
52
+ const logger_1 = require("../utils/logger");
53
+ const audit_service_1 = require("./audit.service");
54
+ const document_service_1 = require("./document.service");
55
+ const encryption_service_1 = require("./encryption.service");
56
+ const engine_slot_service_1 = require("./engine-slot.service");
57
+ const echo_1 = require("./runtimes/echo");
58
+ const engine_manager_1 = require("./runtimes/engine-manager");
59
+ const llama_server_1 = require("./runtimes/llama-server");
60
+ const vllm_1 = require("./runtimes/vllm");
61
+ const registry_1 = require("./hf/registry");
62
+ const engine_session_map_service_1 = require("./engine-session-map.service");
63
+ const policy_service_1 = require("./policy.service");
64
+ const settings_service_1 = require("./settings.service");
65
+ const chat_queue_service_1 = require("./queue/chat-queue.service");
66
+ const job_waiter_1 = require("./queue/job-waiter");
67
+ const queue_policy_service_1 = require("./queue/queue-policy.service");
68
+ const anthropic_mapper_1 = require("../utils/anthropic-mapper");
69
+ const api_features_service_1 = require("./api-features.service");
70
+ const chat_request_builder_service_1 = require("./chat-request-builder.service");
71
+ const message_content_1 = require("../utils/message-content");
72
+ const vision_remote_1 = require("../utils/vision-remote");
73
+ function policyToRunOpts(policy, base) {
74
+ return {
75
+ ...(base.extra || {}),
76
+ prompt: base.prompt,
77
+ model: base.model,
78
+ stream: base.stream,
79
+ sessionId: base.sessionId,
80
+ promptJson: base.promptJson,
81
+ jsonSchema: base.jsonSchema,
82
+ toolsAllowlist: base.toolsAllowlist ?? policy.toolsAllowlist,
83
+ toolsDenylist: base.toolsDenylist ?? policy.toolsDenylist,
84
+ // Policy always wins — client extra must not override jail / approve.
85
+ cwd: policy.cwd,
86
+ timeoutMs: policy.timeoutMs,
87
+ alwaysApprove: policy.alwaysApprove,
88
+ maxTurns: policy.maxTurns,
89
+ };
90
+ }
91
+ class ChatService {
92
+ /**
93
+ * Public entry: enqueue when queue enabled, else run immediately.
94
+ */
95
+ async createCompletion(dto, ctx, res, options) {
96
+ if (options?.fromQueue) {
97
+ return this.executeCompletion(dto, ctx, res, options);
98
+ }
99
+ const qPolicy = await queue_policy_service_1.queuePolicyService.get();
100
+ if (qPolicy.enabled) {
101
+ return this.createCompletionQueued(dto, ctx, res, options?.source || 'v1', options?.idempotencyKey, options);
102
+ }
103
+ return this.executeCompletion(dto, ctx, res, options);
104
+ }
105
+ /** Enqueue + wait (stream holds SSE until worker finishes). */
106
+ async createCompletionQueued(dto, ctx, res, source = 'v1', idempotencyKey, options) {
107
+ const stream = Boolean(dto.stream);
108
+ const wireFormat = options?.wireFormat || 'openai';
109
+ const suppressQueue = options?.suppressQueueEvents || wireFormat !== 'openai';
110
+ const enq = await chat_queue_service_1.chatQueueService.enqueue({
111
+ dto,
112
+ ctx,
113
+ source,
114
+ idempotencyKey,
115
+ wireFormat,
116
+ });
117
+ const { jobId, position, policy } = enq;
118
+ if (enq.alreadyDone) {
119
+ // Idempotent replay: do not re-run. Stream clients get a terminal queue event.
120
+ if (stream && res) {
121
+ if (!res.headersSent)
122
+ (0, stream_1.initSse)(res);
123
+ if (!suppressQueue) {
124
+ (0, stream_1.writeSseData)(res, {
125
+ object: 'gog.queue',
126
+ status: 'succeeded',
127
+ job_id: jobId,
128
+ result_chat_request_id: enq.resultChatRequestId ?? null,
129
+ message: 'Idempotent replay: job already completed',
130
+ });
131
+ (0, stream_1.writeSseDone)(res);
132
+ }
133
+ else {
134
+ // Protocol-native clients cannot consume gog.queue — fail clearly
135
+ (0, stream_1.writeSseEvent)(res, 'error', {
136
+ type: 'error',
137
+ error: {
138
+ type: 'invalid_request_error',
139
+ message: 'Idempotent request already completed; omit Idempotency-Key to start a new job',
140
+ },
141
+ });
142
+ }
143
+ res.end();
144
+ return;
145
+ }
146
+ throw exception_factory_1.ExceptionFactory.validation('Idempotent request already completed; omit Idempotency-Key to start a new job');
147
+ }
148
+ const ee = job_waiter_1.jobWaiterRegistry.register(jobId, res);
149
+ if (stream) {
150
+ if (!res)
151
+ throw exception_factory_1.ExceptionFactory.internal('Streaming requires Response');
152
+ if (!res.headersSent) {
153
+ (0, stream_1.initSse)(res);
154
+ }
155
+ if (!suppressQueue) {
156
+ (0, stream_1.writeSseData)(res, {
157
+ object: 'gog.queue',
158
+ status: 'queued',
159
+ job_id: jobId,
160
+ position,
161
+ message: `Queued (position ${position})`,
162
+ });
163
+ ee.on('queue', (ev) => {
164
+ if (!res.writableEnded) {
165
+ (0, stream_1.writeSseData)(res, {
166
+ object: 'gog.queue',
167
+ status: 'queued',
168
+ job_id: jobId,
169
+ position: ev.position,
170
+ });
171
+ }
172
+ });
173
+ }
174
+ }
175
+ // Position updates while waiting
176
+ const posTimer = setInterval(() => {
177
+ void chat_queue_service_1.chatQueueService.estimatePosition(jobId).then((p) => {
178
+ if (p > 0)
179
+ job_waiter_1.jobWaiterRegistry.emitQueue(jobId, p);
180
+ });
181
+ }, 2000);
182
+ const maxWait = policy.maxWaitMs;
183
+ try {
184
+ const result = await new Promise((resolve, reject) => {
185
+ const timer = setTimeout(() => {
186
+ reject(exception_factory_1.ExceptionFactory.queueTimeout());
187
+ }, maxWait);
188
+ const onAbort = () => {
189
+ void chat_queue_service_1.chatQueueService.requestCancel(jobId);
190
+ };
191
+ res?.on('close', onAbort);
192
+ ee.once('done', (ev) => {
193
+ clearTimeout(timer);
194
+ res?.off('close', onAbort);
195
+ resolve(ev.result);
196
+ });
197
+ ee.once('error', (ev) => {
198
+ clearTimeout(timer);
199
+ res?.off('close', onAbort);
200
+ reject(ev.error);
201
+ });
202
+ });
203
+ return result;
204
+ }
205
+ catch (err) {
206
+ if (stream && res && !res.writableEnded) {
207
+ const message = err instanceof Error ? err.message : 'Queue error';
208
+ (0, stream_1.writeSseData)(res, {
209
+ error: {
210
+ message,
211
+ type: 'server_error',
212
+ code: err instanceof http_exception_1.HttpException ? err.code : 'queue_error',
213
+ },
214
+ });
215
+ (0, stream_1.writeSseDone)(res);
216
+ res.end();
217
+ }
218
+ throw err;
219
+ }
220
+ finally {
221
+ clearInterval(posTimer);
222
+ job_waiter_1.jobWaiterRegistry.cleanup(jobId);
223
+ }
224
+ }
225
+ /**
226
+ * Run completion (worker or direct). Does not enqueue.
227
+ */
228
+ async executeCompletion(dto, ctx, res, options) {
229
+ const settings = await settings_service_1.settingsService.getAll();
230
+ const features = await api_features_service_1.apiFeaturesService.get();
231
+ const model = dto.model || settings.defaultModel || echo_1.ECHO_MODEL_ID;
232
+ (0, model_allowlist_1.assertModelAllowed)(ctx.apiKey, model);
233
+ const stream = Boolean(dto.stream);
234
+ if ((0, echo_1.isEchoModel)(model)) {
235
+ return this.executeEchoCompletion(dto, ctx, res, model, stream);
236
+ }
237
+ const gguf = (0, registry_1.findEntry)(model);
238
+ const wantsLlama = Boolean(gguf?.path?.toLowerCase().endsWith('.gguf')) ||
239
+ gguf?.runtime === 'llamacpp';
240
+ const wantsVllm = gguf?.runtime === 'vllm' || (Boolean(gguf) && !wantsLlama);
241
+ if (wantsLlama || wantsVllm) {
242
+ if (wantsLlama && !(0, llama_server_1.llamaServerBin)()) {
243
+ throw exception_factory_1.ExceptionFactory.engineUnconfigured(`llama-server is not on PATH; cannot serve ${model}. Install llama.cpp or use model=echo`);
244
+ }
245
+ if (wantsVllm && !wantsLlama && !(0, vllm_1.vllmAvailable)()) {
246
+ throw exception_factory_1.ExceptionFactory.engineUnconfigured(`vllm is not on PATH; cannot serve ${model}. Install vLLM or use model=echo`);
247
+ }
248
+ if (stream && res) {
249
+ return this.executeLlamaStream(dto, ctx, res, model);
250
+ }
251
+ const completion = await engine_manager_1.engineManager.chatJson(model, dto.messages || []);
252
+ return this.executeLocalCompletion(dto, ctx, res, model, stream, completion);
253
+ }
254
+ // OTP sessions use synthetic ids — ChatRequest.apiKeyId requires a real key row
255
+ const { toPersistentApiKeyId } = await Promise.resolve().then(() => __importStar(require('../utils/api-key-id')));
256
+ const ownerApiKeyId = await toPersistentApiKeyId(ctx.apiKey.id);
257
+ const includeReasoning = dto.include_reasoning !== false;
258
+ const policy = await policy_service_1.policyService.resolve(ctx.apiKey, dto.cwd);
259
+ // Feature gates + feature mapping (tools, vision, schema, effort, …)
260
+ const hasRemoteImages = dto.messages.some((m) => (0, message_content_1.messageHasImageParts)(m.content));
261
+ if (hasRemoteImages && features.vision) {
262
+ dto.messages = await (0, vision_remote_1.inlineRemoteImageUrls)(dto.messages);
263
+ }
264
+ const builtReq = (0, chat_request_builder_service_1.buildEngineRequestFromChatDto)(dto, policy, features);
265
+ const documentIds = [
266
+ ...new Set((dto.document_ids ?? []).filter((id) => typeof id === 'string' && id)),
267
+ ];
268
+ // Materialize under policy.cwd/attachments so tools use relative paths only
269
+ // (avoids absolute host paths in the prompt). Cleaned up after the request.
270
+ const requestSlug = (ctx.requestId || (0, id_1.createId)()).replace(/[^a-zA-Z0-9_-]/g, '');
271
+ const attachRel = node_path_1.default.join('attachments', requestSlug);
272
+ const visionFiles = builtReq.visionFiles ?? [];
273
+ const attachDir = documentIds.length > 0 || visionFiles.length > 0
274
+ ? node_path_1.default.join(policy.cwd, attachRel)
275
+ : '';
276
+ let docContext = '';
277
+ let materializedCount = 0;
278
+ try {
279
+ if (documentIds.length > 0) {
280
+ await (0, fs_safe_1.ensureDir)(attachDir);
281
+ // Use persistent owner id (same mapping as upload) so OTP session
282
+ // synthetic ids can still attach documents they just uploaded.
283
+ const built = await document_service_1.documentService.buildContextFromDocuments(ownerApiKeyId, documentIds, constants_1.MAX_DOCUMENT_CONTEXT_CHARS, {
284
+ materializeDir: attachDir,
285
+ pathPrefix: attachRel,
286
+ });
287
+ docContext = built.context;
288
+ materializedCount = built.files.length;
289
+ logger_1.logger.info({
290
+ requestId: ctx.requestId,
291
+ apiKeyId: ctx.apiKey.id,
292
+ documentCount: documentIds.length,
293
+ materializedCount,
294
+ contextChars: docContext.length,
295
+ attachDir: attachRel,
296
+ }, 'Document context prepared for local engine');
297
+ }
298
+ if (visionFiles.length > 0) {
299
+ await (0, fs_safe_1.ensureDir)(attachDir);
300
+ for (const file of visionFiles) {
301
+ await node_fs_1.promises.writeFile(node_path_1.default.join(attachDir, file.filename), file.bytes, {
302
+ mode: 0o600,
303
+ });
304
+ }
305
+ }
306
+ let prompt = builtReq.prompt;
307
+ if (docContext) {
308
+ prompt =
309
+ `The user has attached the following documents for this request. ` +
310
+ `Use their contents (and on-disk paths when tools allow) when answering.\n\n${docContext}\n\n` +
311
+ prompt;
312
+ }
313
+ if (visionFiles.length > 0 && !builtReq.promptJson) {
314
+ const listed = visionFiles
315
+ .map((f) => `${attachRel}/${f.filename}`)
316
+ .join(', ');
317
+ prompt =
318
+ `The user attached image file(s) at: ${listed}. Read those files when answering.\n\n` +
319
+ prompt;
320
+ }
321
+ if (prompt.length > constants_1.MAX_TOTAL_PROMPT_CHARS) {
322
+ throw exception_factory_1.ExceptionFactory.validation(`Total prompt exceeds ${constants_1.MAX_TOTAL_PROMPT_CHARS} characters`);
323
+ }
324
+ const extra = { ...builtReq.extra };
325
+ // Never pass raw client resume / OS-global --continue (cross-tenant).
326
+ extra.continueSession = false;
327
+ const sessionHint = dto.session_id?.trim() || extra.resumeSessionId || '';
328
+ extra.resumeSessionId = undefined;
329
+ extra.sessionId = extra.sessionId;
330
+ extra.forkSession = Boolean(extra.forkSession && sessionHint);
331
+ if (sessionHint) {
332
+ const binding = await engine_session_map_service_1.engineSessionMapService.resolve(ctx.apiKey.id, sessionHint);
333
+ if (binding.mode === 'resume') {
334
+ extra.resumeSessionId = binding.engineSessionId;
335
+ extra.sessionId = undefined;
336
+ }
337
+ else {
338
+ extra.sessionId = binding.engineSessionId;
339
+ }
340
+ }
341
+ const runBase = {
342
+ prompt,
343
+ model,
344
+ stream: true,
345
+ sessionId: extra.sessionId,
346
+ apiKeyId: ctx.apiKey.id,
347
+ toolsAllowlist: builtReq.toolsAllowlist,
348
+ toolsDenylist: builtReq.toolsDenylist,
349
+ promptJson: builtReq.promptJson,
350
+ jsonSchema: builtReq.jsonSchema,
351
+ extra,
352
+ };
353
+ // Queue worker already limits concurrency; direct mode still uses in-process slots
354
+ const fromQueue = Boolean(options?.fromQueue);
355
+ if (!fromQueue && !engine_slot_service_1.engineSlotService.tryAcquire()) {
356
+ throw exception_factory_1.ExceptionFactory.concurrencyLimit();
357
+ }
358
+ if (fromQueue) {
359
+ // Soft acquire so stats still reflect load (best-effort)
360
+ engine_slot_service_1.engineSlotService.tryAcquire();
361
+ }
362
+ const chatRequestDbId = (0, id_1.createId)();
363
+ const completionId = (0, id_1.createChatCompletionId)();
364
+ const promptEnc = encryption_service_1.encryptionService.encrypt(prompt);
365
+ const started = Date.now();
366
+ await database_1.prisma.chatRequest.create({
367
+ data: {
368
+ id: chatRequestDbId,
369
+ requestId: ctx.requestId,
370
+ apiKeyId: ownerApiKeyId,
371
+ model,
372
+ stream,
373
+ status: constants_1.CHAT_STATUS.PENDING,
374
+ promptCiphertext: (0, prisma_bytes_1.toBytes)(promptEnc.ciphertext),
375
+ promptIv: (0, prisma_bytes_1.toBytes)(promptEnc.iv),
376
+ promptTag: (0, prisma_bytes_1.toBytes)(promptEnc.tag),
377
+ ip: ctx.ip,
378
+ userAgent: ctx.userAgent,
379
+ policyMode: policy.mode,
380
+ documents: {
381
+ create: documentIds.map((documentId) => ({ documentId })),
382
+ },
383
+ },
384
+ });
385
+ try {
386
+ // Stream only when we still have a live HTTP Response (client connected).
387
+ // Queue workers often lose `res` after client disconnect, process restart,
388
+ // or multi-instance reclaim — never DLQ those; complete offline instead.
389
+ const canStreamToClient = Boolean(stream && res && !res.writableEnded && !res.destroyed);
390
+ if (stream && !canStreamToClient) {
391
+ if (!options?.fromQueue && !res) {
392
+ throw exception_factory_1.ExceptionFactory.internal('Streaming requires Response');
393
+ }
394
+ logger_1.logger.warn({
395
+ requestId: ctx.requestId,
396
+ jobId: options?.jobId,
397
+ fromQueue: Boolean(options?.fromQueue),
398
+ hasRes: Boolean(res),
399
+ writableEnded: res?.writableEnded,
400
+ destroyed: res?.destroyed,
401
+ }, 'Stream completion without live Response — collecting offline');
402
+ }
403
+ if (canStreamToClient && res) {
404
+ await this.runStream({
405
+ dto,
406
+ ctx,
407
+ res,
408
+ model,
409
+ policy,
410
+ prompt,
411
+ completionId,
412
+ chatRequestDbId,
413
+ started,
414
+ includeReasoning,
415
+ skipRoleChunk: Boolean(options?.sseAlreadyInit),
416
+ jobId: options?.jobId,
417
+ wireFormat: options?.wireFormat || 'openai',
418
+ suppressQueueEvents: Boolean(options?.suppressQueueEvents),
419
+ runOpts: policyToRunOpts(policy, runBase),
420
+ usageEstimate: features.usageEstimate,
421
+ estimatedPromptTokens: builtReq.estimatedPromptTokens,
422
+ });
423
+ return;
424
+ }
425
+ const collected = await this.collectFromEngineStream(policyToRunOpts(policy, runBase));
426
+ await this.rememberEngineSession(ctx.apiKey.id, dto.session_id, collected.sessionId);
427
+ const auditPayload = this.buildAuditPayload(collected, includeReasoning);
428
+ const responseEnc = encryption_service_1.encryptionService.encrypt(auditPayload);
429
+ const durationMs = Date.now() - started;
430
+ await database_1.prisma.chatRequest.update({
431
+ where: { id: chatRequestDbId },
432
+ data: {
433
+ status: constants_1.CHAT_STATUS.SUCCESS,
434
+ durationMs,
435
+ engineSessionId: collected.sessionId ?? null,
436
+ responseCiphertext: (0, prisma_bytes_1.toBytes)(responseEnc.ciphertext),
437
+ responseIv: (0, prisma_bytes_1.toBytes)(responseEnc.iv),
438
+ responseTag: (0, prisma_bytes_1.toBytes)(responseEnc.tag),
439
+ },
440
+ });
441
+ await audit_service_1.auditService.log({
442
+ apiKeyId: ctx.apiKey.id,
443
+ action: constants_1.AUDIT_ACTIONS.CHAT_CREATE,
444
+ resource: 'chat_request',
445
+ resourceId: chatRequestDbId,
446
+ meta: {
447
+ requestId: ctx.requestId,
448
+ model,
449
+ stream: false,
450
+ durationMs,
451
+ documentCount: documentIds.length,
452
+ includeReasoning,
453
+ hasReasoning: collected.reasoning.length > 0,
454
+ policyMode: policy.mode,
455
+ },
456
+ ip: ctx.ip,
457
+ });
458
+ const { usageToOpenAi, engineUsageToMetaCost } = await Promise.resolve().then(() => __importStar(require('../utils/engine-event-parse')));
459
+ let usage = usageToOpenAi(collected.usage);
460
+ let usageEstimated = false;
461
+ if (!collected.usage &&
462
+ features.usageEstimate) {
463
+ const outTok = (0, chat_request_builder_service_1.estimateCompletionTokens)(collected.text);
464
+ usage = {
465
+ prompt_tokens: builtReq.estimatedPromptTokens,
466
+ completion_tokens: outTok,
467
+ total_tokens: builtReq.estimatedPromptTokens + outTok,
468
+ };
469
+ usageEstimated = true;
470
+ }
471
+ const completion = (0, openai_mapper_1.mapEngineToChatCompletion)(model, {
472
+ text: collected.text,
473
+ stopReason: collected.stopReason,
474
+ sessionId: collected.sessionId,
475
+ requestId: collected.requestId,
476
+ }, {
477
+ completionId,
478
+ reasoningContent: collected.reasoning || null,
479
+ includeReasoning,
480
+ usage,
481
+ toolCalls: collected.toolCalls,
482
+ omni: {
483
+ sessionId: collected.sessionId,
484
+ stopReason: collected.stopReason,
485
+ requestId: collected.requestId,
486
+ numTurns: collected.numTurns,
487
+ cost: engineUsageToMetaCost(collected.usage),
488
+ },
489
+ });
490
+ if (usageEstimated) {
491
+ completion.usage_estimated = true;
492
+ }
493
+ return completion;
494
+ }
495
+ catch (err) {
496
+ await this.markFailed(chatRequestDbId, started, err);
497
+ throw err;
498
+ }
499
+ finally {
500
+ engine_slot_service_1.engineSlotService.release();
501
+ }
502
+ }
503
+ finally {
504
+ if (attachDir) {
505
+ await (0, fs_safe_1.rmSafe)(attachDir);
506
+ }
507
+ }
508
+ }
509
+ async executeEchoCompletion(dto, ctx, res, model, stream) {
510
+ return this.executeLocalCompletion(dto, ctx, res, model, stream, (0, echo_1.echoCompletion)(model, dto.messages || []));
511
+ }
512
+ async executeLocalCompletion(dto, ctx, res, model, stream, completion) {
513
+ const { toPersistentApiKeyId } = await Promise.resolve().then(() => __importStar(require('../utils/api-key-id')));
514
+ const ownerApiKeyId = await toPersistentApiKeyId(ctx.apiKey.id);
515
+ const chatRequestDbId = (0, id_1.createId)();
516
+ const started = Date.now();
517
+ const promptEnc = encryption_service_1.encryptionService.encrypt(JSON.stringify(dto.messages || []));
518
+ await database_1.prisma.chatRequest.create({
519
+ data: {
520
+ id: chatRequestDbId,
521
+ requestId: ctx.requestId,
522
+ apiKeyId: ownerApiKeyId,
523
+ model,
524
+ stream,
525
+ status: constants_1.CHAT_STATUS.PENDING,
526
+ promptCiphertext: (0, prisma_bytes_1.toBytes)(promptEnc.ciphertext),
527
+ promptIv: (0, prisma_bytes_1.toBytes)(promptEnc.iv),
528
+ promptTag: (0, prisma_bytes_1.toBytes)(promptEnc.tag),
529
+ ip: ctx.ip,
530
+ userAgent: ctx.userAgent,
531
+ policyMode: 'safe',
532
+ },
533
+ });
534
+ const responseEnc = encryption_service_1.encryptionService.encrypt(completion.choices[0]?.message?.content || '');
535
+ await database_1.prisma.chatRequest.update({
536
+ where: { id: chatRequestDbId },
537
+ data: {
538
+ status: constants_1.CHAT_STATUS.SUCCESS,
539
+ durationMs: Date.now() - started,
540
+ responseCiphertext: (0, prisma_bytes_1.toBytes)(responseEnc.ciphertext),
541
+ responseIv: (0, prisma_bytes_1.toBytes)(responseEnc.iv),
542
+ responseTag: (0, prisma_bytes_1.toBytes)(responseEnc.tag),
543
+ },
544
+ });
545
+ if (stream && res) {
546
+ (0, stream_1.initSse)(res);
547
+ const text = String(completion.choices[0]?.message?.content || '');
548
+ const id = completion.id;
549
+ const created = completion.created;
550
+ (0, stream_1.writeSseData)(res, (0, openai_mapper_1.mapRoleChunk)(model, id, created));
551
+ (0, stream_1.writeSseData)(res, (0, openai_mapper_1.mapTextDeltaChunk)(model, text, id, created));
552
+ (0, stream_1.writeSseDone)(res);
553
+ res.end();
554
+ return;
555
+ }
556
+ return completion;
557
+ }
558
+ async executeLlamaStream(dto, ctx, res, model) {
559
+ const { toPersistentApiKeyId } = await Promise.resolve().then(() => __importStar(require('../utils/api-key-id')));
560
+ const ownerApiKeyId = await toPersistentApiKeyId(ctx.apiKey.id);
561
+ const chatRequestDbId = (0, id_1.createId)();
562
+ const promptEnc = encryption_service_1.encryptionService.encrypt(JSON.stringify(dto.messages || []));
563
+ await database_1.prisma.chatRequest.create({
564
+ data: {
565
+ id: chatRequestDbId,
566
+ requestId: ctx.requestId,
567
+ apiKeyId: ownerApiKeyId,
568
+ model,
569
+ stream: true,
570
+ status: constants_1.CHAT_STATUS.PENDING,
571
+ promptCiphertext: (0, prisma_bytes_1.toBytes)(promptEnc.ciphertext),
572
+ promptIv: (0, prisma_bytes_1.toBytes)(promptEnc.iv),
573
+ promptTag: (0, prisma_bytes_1.toBytes)(promptEnc.tag),
574
+ ip: ctx.ip,
575
+ userAgent: ctx.userAgent,
576
+ policyMode: 'safe',
577
+ },
578
+ });
579
+ const upstream = await engine_manager_1.engineManager.chatStream(model, dto.messages || []);
580
+ if (!res.headersSent)
581
+ (0, stream_1.initSse)(res);
582
+ const reader = upstream.body?.getReader();
583
+ if (!reader) {
584
+ throw exception_factory_1.ExceptionFactory.engineUnconfigured('llama-server returned an empty stream');
585
+ }
586
+ const decoder = new TextDecoder();
587
+ let raw = '';
588
+ for (;;) {
589
+ const { done, value } = await reader.read();
590
+ if (done)
591
+ break;
592
+ const chunk = typeof value === 'string' ? value : decoder.decode(value, { stream: true });
593
+ raw += chunk;
594
+ res.write(chunk);
595
+ }
596
+ if (!res.writableEnded)
597
+ res.end();
598
+ const responseEnc = encryption_service_1.encryptionService.encrypt(raw.slice(0, 8000));
599
+ await database_1.prisma.chatRequest.update({
600
+ where: { id: chatRequestDbId },
601
+ data: {
602
+ status: constants_1.CHAT_STATUS.SUCCESS,
603
+ durationMs: 0,
604
+ responseCiphertext: (0, prisma_bytes_1.toBytes)(responseEnc.ciphertext),
605
+ responseIv: (0, prisma_bytes_1.toBytes)(responseEnc.iv),
606
+ responseTag: (0, prisma_bytes_1.toBytes)(responseEnc.tag),
607
+ },
608
+ });
609
+ }
610
+ async rememberEngineSession(apiKeyId, clientSessionId, engineSessionId) {
611
+ if (!clientSessionId?.trim() || !engineSessionId)
612
+ return;
613
+ try {
614
+ await engine_session_map_service_1.engineSessionMapService.remember(apiKeyId, clientSessionId, engineSessionId);
615
+ }
616
+ catch (err) {
617
+ logger_1.logger.warn({ err, apiKeyId }, 'Failed to persist engine session alias');
618
+ }
619
+ }
620
+ async collectFromEngineStream(options) {
621
+ const textParts = [];
622
+ const reasoningParts = [];
623
+ const toolCalls = [];
624
+ let sessionId;
625
+ let stopReason;
626
+ let requestId;
627
+ let usage;
628
+ let numTurns;
629
+ const { parseEngineUsage, parseEngineToolCallEvent } = await Promise.resolve().then(() => __importStar(require('../utils/engine-event-parse')));
630
+ for await (const event of engine_slot_service_1.engineSlotService.stream({ ...options, stream: true })) {
631
+ if (event.type === 'thought' && typeof event.data === 'string') {
632
+ reasoningParts.push(event.data);
633
+ }
634
+ else if (event.type === 'text' && typeof event.data === 'string') {
635
+ textParts.push(event.data);
636
+ }
637
+ else if (event.type === 'end') {
638
+ if (typeof event.stopReason === 'string')
639
+ stopReason = event.stopReason;
640
+ if (typeof event.sessionId === 'string')
641
+ sessionId = event.sessionId;
642
+ if (typeof event.requestId === 'string')
643
+ requestId = event.requestId;
644
+ if (event.usage)
645
+ usage = parseEngineUsage(event.usage);
646
+ if (typeof event.num_turns === 'number')
647
+ numTurns = event.num_turns;
648
+ }
649
+ else {
650
+ toolCalls.push(...parseEngineToolCallEvent(event));
651
+ }
652
+ }
653
+ return {
654
+ text: textParts.join(''),
655
+ reasoning: reasoningParts.join(''),
656
+ sessionId,
657
+ stopReason,
658
+ requestId,
659
+ usage,
660
+ numTurns,
661
+ toolCalls: toolCalls.length ? toolCalls : undefined,
662
+ };
663
+ }
664
+ buildAuditPayload(collected, includeReasoning) {
665
+ if (!includeReasoning || !collected.reasoning) {
666
+ return collected.text;
667
+ }
668
+ return JSON.stringify({
669
+ content: collected.text,
670
+ reasoning_content: collected.reasoning,
671
+ });
672
+ }
673
+ async runStream(args) {
674
+ const { dto, ctx, res, model, policy, prompt, completionId, chatRequestDbId, started, includeReasoning, skipRoleChunk, jobId, wireFormat = 'openai', suppressQueueEvents = false, runOpts, } = args;
675
+ const created = Math.floor(Date.now() / 1000);
676
+ const textParts = [];
677
+ const reasoningParts = [];
678
+ const toolCalls = [];
679
+ let engineSessionId;
680
+ let stopReason;
681
+ let engineRequestId;
682
+ let streamUsage;
683
+ let clientClosed = false;
684
+ const msgId = (0, id_1.createMessageId)();
685
+ const respId = (0, id_1.createResponseId)();
686
+ const outputItemId = `msg_${(0, id_1.createId)().replace(/-/g, '').slice(0, 20)}`;
687
+ const { parseEngineUsage, parseEngineToolCallEvent, usageToOpenAi, engineUsageToMetaCost, } = await Promise.resolve().then(() => __importStar(require('../utils/engine-event-parse')));
688
+ res.on('close', () => {
689
+ clientClosed = true;
690
+ if (jobId)
691
+ void chat_queue_service_1.chatQueueService.requestCancel(jobId);
692
+ });
693
+ if (!res.headersSent) {
694
+ (0, stream_1.initSse)(res);
695
+ }
696
+ if (wireFormat === 'openai') {
697
+ if (!skipRoleChunk) {
698
+ (0, stream_1.writeSseData)(res, (0, openai_mapper_1.mapRoleChunk)(model, completionId, created));
699
+ }
700
+ else {
701
+ (0, stream_1.writeSseData)(res, (0, openai_mapper_1.mapRoleChunk)(model, completionId, created));
702
+ if (!suppressQueueEvents) {
703
+ (0, stream_1.writeSseData)(res, {
704
+ object: 'gog.queue',
705
+ status: 'running',
706
+ job_id: jobId,
707
+ });
708
+ }
709
+ }
710
+ }
711
+ else if (wireFormat === 'anthropic') {
712
+ (0, stream_1.writeSseEvent)(res, 'message_start', {
713
+ type: 'message_start',
714
+ message: {
715
+ id: msgId,
716
+ type: 'message',
717
+ role: 'assistant',
718
+ content: [],
719
+ model,
720
+ stop_reason: null,
721
+ stop_sequence: null,
722
+ usage: { input_tokens: 0, output_tokens: 0 },
723
+ },
724
+ });
725
+ (0, stream_1.writeSseEvent)(res, 'content_block_start', {
726
+ type: 'content_block_start',
727
+ index: 0,
728
+ content_block: { type: 'text', text: '' },
729
+ });
730
+ }
731
+ else if (wireFormat === 'responses') {
732
+ (0, stream_1.writeSseEvent)(res, 'response.created', {
733
+ type: 'response.created',
734
+ response: {
735
+ id: respId,
736
+ object: 'response',
737
+ created_at: created,
738
+ status: 'in_progress',
739
+ model,
740
+ output: [],
741
+ },
742
+ });
743
+ (0, stream_1.writeSseEvent)(res, 'response.output_item.added', {
744
+ type: 'response.output_item.added',
745
+ output_index: 0,
746
+ item: {
747
+ type: 'message',
748
+ id: outputItemId,
749
+ status: 'in_progress',
750
+ role: 'assistant',
751
+ content: [],
752
+ },
753
+ });
754
+ (0, stream_1.writeSseEvent)(res, 'response.content_part.added', {
755
+ type: 'response.content_part.added',
756
+ output_index: 0,
757
+ content_index: 0,
758
+ part: { type: 'output_text', text: '', annotations: [] },
759
+ });
760
+ }
761
+ const streamOpts = runOpts ||
762
+ policyToRunOpts(policy, {
763
+ prompt,
764
+ model,
765
+ stream: true,
766
+ sessionId: dto.session_id,
767
+ apiKeyId: ctx.apiKey.id,
768
+ });
769
+ try {
770
+ for await (const event of engine_slot_service_1.engineSlotService.stream(streamOpts)) {
771
+ if (clientClosed)
772
+ break;
773
+ if (event.type === 'thought' && typeof event.data === 'string') {
774
+ reasoningParts.push(event.data);
775
+ if (includeReasoning && wireFormat === 'openai') {
776
+ (0, stream_1.writeSseData)(res, (0, openai_mapper_1.mapReasoningDeltaChunk)(model, event.data, completionId, created, true));
777
+ }
778
+ }
779
+ else if (event.type === 'text' && typeof event.data === 'string') {
780
+ textParts.push(event.data);
781
+ if (wireFormat === 'openai') {
782
+ (0, stream_1.writeSseData)(res, (0, openai_mapper_1.mapTextDeltaChunk)(model, event.data, completionId, created));
783
+ }
784
+ else if (wireFormat === 'anthropic') {
785
+ (0, stream_1.writeSseEvent)(res, 'content_block_delta', {
786
+ type: 'content_block_delta',
787
+ index: 0,
788
+ delta: { type: 'text_delta', text: event.data },
789
+ });
790
+ }
791
+ else if (wireFormat === 'responses') {
792
+ (0, stream_1.writeSseEvent)(res, 'response.output_text.delta', {
793
+ type: 'response.output_text.delta',
794
+ output_index: 0,
795
+ content_index: 0,
796
+ delta: event.data,
797
+ });
798
+ }
799
+ }
800
+ else if (event.type === 'end') {
801
+ if (typeof event.stopReason === 'string')
802
+ stopReason = event.stopReason;
803
+ if (typeof event.sessionId === 'string')
804
+ engineSessionId = event.sessionId;
805
+ if (typeof event.requestId === 'string')
806
+ engineRequestId = event.requestId;
807
+ if (event.usage)
808
+ streamUsage = parseEngineUsage(event.usage);
809
+ }
810
+ else {
811
+ const evType = String(event.type || '');
812
+ if (wireFormat === 'openai' &&
813
+ (evType === 'tool_call' ||
814
+ evType === 'tool_call_update' ||
815
+ evType === 'plan')) {
816
+ const rec = event;
817
+ (0, stream_1.writeSseData)(res, {
818
+ id: completionId,
819
+ object: 'chat.completion.chunk',
820
+ created,
821
+ model,
822
+ choices: [{ index: 0, delta: {}, finish_reason: null }],
823
+ omni_event: {
824
+ type: evType,
825
+ toolCallId: typeof rec.toolCallId === 'string'
826
+ ? rec.toolCallId
827
+ : undefined,
828
+ toolName: typeof rec.toolName === 'string' ? rec.toolName : undefined,
829
+ status: typeof rec.status === 'string' ? rec.status : undefined,
830
+ kind: typeof rec.kind === 'string' ? rec.kind : undefined,
831
+ title: typeof rec.title === 'string' ? rec.title : undefined,
832
+ rawInput: rec.rawInput,
833
+ entries: rec.entries,
834
+ },
835
+ });
836
+ }
837
+ const tcs = parseEngineToolCallEvent(event);
838
+ if (tcs.length && wireFormat === 'openai') {
839
+ for (let i = 0; i < tcs.length; i++) {
840
+ const tc = tcs[i];
841
+ toolCalls.push(tc);
842
+ (0, stream_1.writeSseData)(res, {
843
+ id: completionId,
844
+ object: 'chat.completion.chunk',
845
+ created,
846
+ model,
847
+ choices: [
848
+ {
849
+ index: 0,
850
+ delta: {
851
+ tool_calls: [
852
+ {
853
+ index: toolCalls.length - 1,
854
+ id: tc.id,
855
+ type: 'function',
856
+ function: {
857
+ name: tc.function.name,
858
+ arguments: tc.function.arguments,
859
+ },
860
+ },
861
+ ],
862
+ },
863
+ finish_reason: null,
864
+ },
865
+ ],
866
+ });
867
+ }
868
+ }
869
+ else {
870
+ toolCalls.push(...tcs);
871
+ }
872
+ }
873
+ }
874
+ if (!clientClosed) {
875
+ if (wireFormat === 'openai') {
876
+ const engineMeta = {
877
+ sessionId: engineSessionId,
878
+ stopReason,
879
+ requestId: engineRequestId,
880
+ cost: engineUsageToMetaCost(streamUsage),
881
+ };
882
+ const finishChunk = (0, openai_mapper_1.mapFinishChunk)(model, completionId, created, toolCalls.length && !textParts.join('').trim()
883
+ ? 'tool_calls'
884
+ : stopReason, engineMeta);
885
+ if (streamUsage || args.usageEstimate) {
886
+ finishChunk.usage = streamUsage
887
+ ? usageToOpenAi(streamUsage)
888
+ : {
889
+ prompt_tokens: args.estimatedPromptTokens || 0,
890
+ completion_tokens: (0, chat_request_builder_service_1.estimateCompletionTokens)(textParts.join('')),
891
+ total_tokens: (args.estimatedPromptTokens || 0) +
892
+ (0, chat_request_builder_service_1.estimateCompletionTokens)(textParts.join('')),
893
+ };
894
+ }
895
+ (0, stream_1.writeSseData)(res, finishChunk);
896
+ (0, stream_1.writeSseDone)(res);
897
+ }
898
+ else if (wireFormat === 'anthropic') {
899
+ (0, stream_1.writeSseEvent)(res, 'content_block_stop', {
900
+ type: 'content_block_stop',
901
+ index: 0,
902
+ });
903
+ // Emit tool_use content blocks when the engine surfaced tool calls
904
+ let blockIndex = 1;
905
+ for (const tc of toolCalls) {
906
+ let input = {};
907
+ try {
908
+ input = JSON.parse(tc.function.arguments || '{}');
909
+ }
910
+ catch {
911
+ input = { raw: tc.function.arguments };
912
+ }
913
+ (0, stream_1.writeSseEvent)(res, 'content_block_start', {
914
+ type: 'content_block_start',
915
+ index: blockIndex,
916
+ content_block: {
917
+ type: 'tool_use',
918
+ id: tc.id,
919
+ name: tc.function.name,
920
+ input: {},
921
+ },
922
+ });
923
+ (0, stream_1.writeSseEvent)(res, 'content_block_delta', {
924
+ type: 'content_block_delta',
925
+ index: blockIndex,
926
+ delta: {
927
+ type: 'input_json_delta',
928
+ partial_json: tc.function.arguments || '{}',
929
+ },
930
+ });
931
+ (0, stream_1.writeSseEvent)(res, 'content_block_stop', {
932
+ type: 'content_block_stop',
933
+ index: blockIndex,
934
+ });
935
+ void input;
936
+ blockIndex += 1;
937
+ }
938
+ const anthropicStop = toolCalls.length && !textParts.join('').trim()
939
+ ? 'tool_use'
940
+ : (0, anthropic_mapper_1.mapAnthropicStopReason)(stopReason);
941
+ (0, stream_1.writeSseEvent)(res, 'message_delta', {
942
+ type: 'message_delta',
943
+ delta: {
944
+ stop_reason: anthropicStop,
945
+ stop_sequence: null,
946
+ },
947
+ usage: {
948
+ output_tokens: (0, chat_request_builder_service_1.estimateCompletionTokens)(textParts.join('')),
949
+ },
950
+ });
951
+ (0, stream_1.writeSseEvent)(res, 'message_stop', { type: 'message_stop' });
952
+ }
953
+ else if (wireFormat === 'responses') {
954
+ const fullText = textParts.join('');
955
+ (0, stream_1.writeSseEvent)(res, 'response.output_text.done', {
956
+ type: 'response.output_text.done',
957
+ output_index: 0,
958
+ content_index: 0,
959
+ text: fullText,
960
+ });
961
+ (0, stream_1.writeSseEvent)(res, 'response.content_part.done', {
962
+ type: 'response.content_part.done',
963
+ output_index: 0,
964
+ content_index: 0,
965
+ part: { type: 'output_text', text: fullText, annotations: [] },
966
+ });
967
+ (0, stream_1.writeSseEvent)(res, 'response.output_item.done', {
968
+ type: 'response.output_item.done',
969
+ output_index: 0,
970
+ item: {
971
+ type: 'message',
972
+ id: outputItemId,
973
+ status: 'completed',
974
+ role: 'assistant',
975
+ content: [
976
+ { type: 'output_text', text: fullText, annotations: [] },
977
+ ],
978
+ },
979
+ });
980
+ (0, stream_1.writeSseEvent)(res, 'response.completed', {
981
+ type: 'response.completed',
982
+ response: {
983
+ id: respId,
984
+ object: 'response',
985
+ created_at: created,
986
+ status: 'completed',
987
+ model,
988
+ output: [
989
+ {
990
+ type: 'message',
991
+ id: outputItemId,
992
+ status: 'completed',
993
+ role: 'assistant',
994
+ content: [
995
+ { type: 'output_text', text: fullText, annotations: [] },
996
+ ],
997
+ },
998
+ ],
999
+ usage: {
1000
+ input_tokens: 0,
1001
+ output_tokens: 0,
1002
+ total_tokens: 0,
1003
+ },
1004
+ },
1005
+ });
1006
+ }
1007
+ res.end();
1008
+ }
1009
+ const collected = {
1010
+ text: textParts.join(''),
1011
+ reasoning: reasoningParts.join(''),
1012
+ sessionId: engineSessionId,
1013
+ stopReason,
1014
+ requestId: engineRequestId,
1015
+ };
1016
+ await this.rememberEngineSession(ctx.apiKey.id, dto.session_id, engineSessionId);
1017
+ const auditPayload = this.buildAuditPayload(collected, includeReasoning);
1018
+ const responseEnc = encryption_service_1.encryptionService.encrypt(auditPayload);
1019
+ const durationMs = Date.now() - started;
1020
+ await database_1.prisma.chatRequest.update({
1021
+ where: { id: chatRequestDbId },
1022
+ data: {
1023
+ status: clientClosed ? constants_1.CHAT_STATUS.CANCELLED : constants_1.CHAT_STATUS.SUCCESS,
1024
+ durationMs,
1025
+ engineSessionId: engineSessionId ?? null,
1026
+ responseCiphertext: (0, prisma_bytes_1.toBytes)(responseEnc.ciphertext),
1027
+ responseIv: (0, prisma_bytes_1.toBytes)(responseEnc.iv),
1028
+ responseTag: (0, prisma_bytes_1.toBytes)(responseEnc.tag),
1029
+ errorMessage: clientClosed ? 'Client disconnected' : null,
1030
+ },
1031
+ });
1032
+ await audit_service_1.auditService.log({
1033
+ apiKeyId: ctx.apiKey.id,
1034
+ action: constants_1.AUDIT_ACTIONS.CHAT_CREATE,
1035
+ resource: 'chat_request',
1036
+ resourceId: chatRequestDbId,
1037
+ meta: {
1038
+ requestId: ctx.requestId,
1039
+ model,
1040
+ stream: true,
1041
+ durationMs,
1042
+ documentCount: (dto.document_ids ?? []).length,
1043
+ includeReasoning,
1044
+ hasReasoning: reasoningParts.length > 0,
1045
+ policyMode: policy.mode,
1046
+ cancelled: clientClosed,
1047
+ },
1048
+ ip: ctx.ip,
1049
+ });
1050
+ }
1051
+ catch (err) {
1052
+ if (!clientClosed && !res.writableEnded) {
1053
+ const message = err instanceof Error ? err.message : 'Stream error';
1054
+ (0, stream_1.writeSseData)(res, {
1055
+ error: {
1056
+ message,
1057
+ type: 'server_error',
1058
+ code: err instanceof http_exception_1.HttpException ? err.code : 'internal_error',
1059
+ },
1060
+ });
1061
+ (0, stream_1.writeSseDone)(res);
1062
+ res.end();
1063
+ }
1064
+ throw err;
1065
+ }
1066
+ }
1067
+ async markFailed(chatRequestDbId, started, err) {
1068
+ const durationMs = Date.now() - started;
1069
+ const message = err instanceof Error ? err.message : 'Unknown error';
1070
+ const isTimeout = err instanceof http_exception_1.HttpException && err.code === 'engine_timeout';
1071
+ try {
1072
+ await database_1.prisma.chatRequest.update({
1073
+ where: { id: chatRequestDbId },
1074
+ data: {
1075
+ status: isTimeout ? constants_1.CHAT_STATUS.TIMEOUT : constants_1.CHAT_STATUS.ERROR,
1076
+ durationMs,
1077
+ errorMessage: message.slice(0, 4000),
1078
+ },
1079
+ });
1080
+ }
1081
+ catch (updateErr) {
1082
+ logger_1.logger.error({ updateErr }, 'Failed to mark chat request as failed');
1083
+ }
1084
+ }
1085
+ }
1086
+ exports.ChatService = ChatService;
1087
+ exports.chatService = new ChatService();
1088
+ //# sourceMappingURL=chat.service.js.map