grok-cli-to-openai-compatible 1.4.0 → 1.5.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 (787) hide show
  1. package/.env.example +5 -0
  2. package/README-ZH.md +220 -55
  3. package/README.md +289 -58
  4. package/dist/app.d.ts.map +1 -1
  5. package/dist/app.js +16 -4
  6. package/dist/app.js.map +1 -1
  7. package/dist/cli/commands/admin-otp.d.ts +10 -0
  8. package/dist/cli/commands/admin-otp.d.ts.map +1 -0
  9. package/dist/cli/commands/admin-otp.js +82 -0
  10. package/dist/cli/commands/admin-otp.js.map +1 -0
  11. package/dist/cli/commands/admin-sessions.d.ts +6 -0
  12. package/dist/cli/commands/admin-sessions.d.ts.map +1 -0
  13. package/dist/cli/commands/admin-sessions.js +62 -0
  14. package/dist/cli/commands/admin-sessions.js.map +1 -0
  15. package/dist/cli/commands/api-features.d.ts +8 -0
  16. package/dist/cli/commands/api-features.d.ts.map +1 -0
  17. package/dist/cli/commands/api-features.js +136 -0
  18. package/dist/cli/commands/api-features.js.map +1 -0
  19. package/dist/cli/commands/audit.d.ts +7 -0
  20. package/dist/cli/commands/audit.d.ts.map +1 -0
  21. package/dist/cli/commands/audit.js +48 -0
  22. package/dist/cli/commands/audit.js.map +1 -0
  23. package/dist/cli/commands/chats.d.ts +10 -0
  24. package/dist/cli/commands/chats.d.ts.map +1 -0
  25. package/dist/cli/commands/chats.js +97 -0
  26. package/dist/cli/commands/chats.js.map +1 -0
  27. package/dist/cli/commands/conversations.d.ts +10 -0
  28. package/dist/cli/commands/conversations.d.ts.map +1 -0
  29. package/dist/cli/commands/conversations.js +68 -0
  30. package/dist/cli/commands/conversations.js.map +1 -0
  31. package/dist/cli/commands/ddos.d.ts +18 -0
  32. package/dist/cli/commands/ddos.d.ts.map +1 -0
  33. package/dist/cli/commands/ddos.js +298 -0
  34. package/dist/cli/commands/ddos.js.map +1 -0
  35. package/dist/cli/commands/docs.d.ts +13 -0
  36. package/dist/cli/commands/docs.d.ts.map +1 -0
  37. package/dist/cli/commands/docs.js +104 -0
  38. package/dist/cli/commands/docs.js.map +1 -0
  39. package/dist/cli/commands/doctor.d.ts.map +1 -1
  40. package/dist/cli/commands/doctor.js +3 -1
  41. package/dist/cli/commands/doctor.js.map +1 -1
  42. package/dist/cli/commands/key.d.ts +22 -0
  43. package/dist/cli/commands/key.d.ts.map +1 -1
  44. package/dist/cli/commands/key.js +101 -1
  45. package/dist/cli/commands/key.js.map +1 -1
  46. package/dist/cli/commands/logs.d.ts +9 -0
  47. package/dist/cli/commands/logs.d.ts.map +1 -1
  48. package/dist/cli/commands/logs.js +29 -8
  49. package/dist/cli/commands/logs.js.map +1 -1
  50. package/dist/cli/commands/models.d.ts +5 -0
  51. package/dist/cli/commands/models.d.ts.map +1 -0
  52. package/dist/cli/commands/models.js +68 -0
  53. package/dist/cli/commands/models.js.map +1 -0
  54. package/dist/cli/commands/queue.d.ts +33 -0
  55. package/dist/cli/commands/queue.d.ts.map +1 -0
  56. package/dist/cli/commands/queue.js +467 -0
  57. package/dist/cli/commands/queue.js.map +1 -0
  58. package/dist/cli/commands/restart.d.ts.map +1 -1
  59. package/dist/cli/commands/restart.js +3 -1
  60. package/dist/cli/commands/restart.js.map +1 -1
  61. package/dist/cli/commands/settings.d.ts +13 -0
  62. package/dist/cli/commands/settings.d.ts.map +1 -0
  63. package/dist/cli/commands/settings.js +182 -0
  64. package/dist/cli/commands/settings.js.map +1 -0
  65. package/dist/cli/commands/stats.d.ts +3 -0
  66. package/dist/cli/commands/stats.d.ts.map +1 -0
  67. package/dist/cli/commands/stats.js +83 -0
  68. package/dist/cli/commands/stats.js.map +1 -0
  69. package/dist/cli/commands/stop.d.ts +5 -0
  70. package/dist/cli/commands/stop.d.ts.map +1 -1
  71. package/dist/cli/commands/stop.js +5 -0
  72. package/dist/cli/commands/stop.js.map +1 -1
  73. package/dist/cli/commands/update.js +0 -1
  74. package/dist/cli/commands/update.js.map +1 -1
  75. package/dist/cli/index.js +524 -3
  76. package/dist/cli/index.js.map +1 -1
  77. package/dist/cli/lib/db-keys.d.ts +20 -6
  78. package/dist/cli/lib/db-keys.d.ts.map +1 -1
  79. package/dist/cli/lib/db-keys.js +119 -18
  80. package/dist/cli/lib/db-keys.js.map +1 -1
  81. package/dist/cli/lib/print-table.d.ts +3 -0
  82. package/dist/cli/lib/print-table.d.ts.map +1 -0
  83. package/dist/cli/lib/print-table.js +29 -0
  84. package/dist/cli/lib/print-table.js.map +1 -0
  85. package/dist/cli/lib/runtime-context.d.ts +23 -0
  86. package/dist/cli/lib/runtime-context.d.ts.map +1 -0
  87. package/dist/cli/lib/runtime-context.js +60 -0
  88. package/dist/cli/lib/runtime-context.js.map +1 -0
  89. package/dist/cli/lib/seed-admin.d.ts.map +1 -1
  90. package/dist/cli/lib/seed-admin.js +4 -12
  91. package/dist/cli/lib/seed-admin.js.map +1 -1
  92. package/dist/config/constants.d.ts +50 -3
  93. package/dist/config/constants.d.ts.map +1 -1
  94. package/dist/config/constants.js +118 -3
  95. package/dist/config/constants.js.map +1 -1
  96. package/dist/config/env.d.ts +1 -0
  97. package/dist/config/env.d.ts.map +1 -1
  98. package/dist/config/env.js +6 -0
  99. package/dist/config/env.js.map +1 -1
  100. package/dist/controllers/admin/api-features.handlers.d.ts +6 -0
  101. package/dist/controllers/admin/api-features.handlers.d.ts.map +1 -0
  102. package/dist/controllers/admin/api-features.handlers.js +62 -0
  103. package/dist/controllers/admin/api-features.handlers.js.map +1 -0
  104. package/dist/controllers/admin/audit.handlers.d.ts +5 -0
  105. package/dist/controllers/admin/audit.handlers.d.ts.map +1 -0
  106. package/dist/controllers/admin/audit.handlers.js +71 -0
  107. package/dist/controllers/admin/audit.handlers.js.map +1 -0
  108. package/dist/controllers/admin/auth.handlers.d.ts +8 -0
  109. package/dist/controllers/admin/auth.handlers.d.ts.map +1 -0
  110. package/dist/controllers/admin/auth.handlers.js +48 -0
  111. package/dist/controllers/admin/auth.handlers.js.map +1 -0
  112. package/dist/controllers/admin/chats.handlers.d.ts +6 -0
  113. package/dist/controllers/admin/chats.handlers.d.ts.map +1 -0
  114. package/dist/controllers/admin/chats.handlers.js +22 -0
  115. package/dist/controllers/admin/chats.handlers.js.map +1 -0
  116. package/dist/controllers/admin/conversations.handlers.d.ts +9 -0
  117. package/dist/controllers/admin/conversations.handlers.d.ts.map +1 -0
  118. package/dist/controllers/admin/conversations.handlers.js +70 -0
  119. package/dist/controllers/admin/conversations.handlers.js.map +1 -0
  120. package/dist/controllers/admin/core.handlers.d.ts +13 -0
  121. package/dist/controllers/admin/core.handlers.d.ts.map +1 -0
  122. package/dist/controllers/admin/core.handlers.js +184 -0
  123. package/dist/controllers/admin/core.handlers.js.map +1 -0
  124. package/dist/controllers/admin/ddos.handlers.d.ts +13 -0
  125. package/dist/controllers/admin/ddos.handlers.d.ts.map +1 -0
  126. package/dist/controllers/admin/ddos.handlers.js +142 -0
  127. package/dist/controllers/admin/ddos.handlers.js.map +1 -0
  128. package/dist/controllers/admin/documents.handlers.d.ts +8 -0
  129. package/dist/controllers/admin/documents.handlers.d.ts.map +1 -0
  130. package/dist/controllers/admin/documents.handlers.js +198 -0
  131. package/dist/controllers/admin/documents.handlers.js.map +1 -0
  132. package/dist/controllers/admin/keys.handlers.d.ts +8 -0
  133. package/dist/controllers/admin/keys.handlers.d.ts.map +1 -0
  134. package/dist/controllers/admin/keys.handlers.js +80 -0
  135. package/dist/controllers/admin/keys.handlers.js.map +1 -0
  136. package/dist/controllers/admin/media.handlers.d.ts +25 -0
  137. package/dist/controllers/admin/media.handlers.d.ts.map +1 -0
  138. package/dist/controllers/admin/media.handlers.js +453 -0
  139. package/dist/controllers/admin/media.handlers.js.map +1 -0
  140. package/dist/controllers/admin/playground.handlers.d.ts +6 -0
  141. package/dist/controllers/admin/playground.handlers.d.ts.map +1 -0
  142. package/dist/controllers/admin/playground.handlers.js +76 -0
  143. package/dist/controllers/admin/playground.handlers.js.map +1 -0
  144. package/dist/controllers/admin/pm2.handlers.d.ts +15 -0
  145. package/dist/controllers/admin/pm2.handlers.d.ts.map +1 -0
  146. package/dist/controllers/admin/pm2.handlers.js +161 -0
  147. package/dist/controllers/admin/pm2.handlers.js.map +1 -0
  148. package/dist/controllers/admin/queue.handlers.d.ts +16 -0
  149. package/dist/controllers/admin/queue.handlers.d.ts.map +1 -0
  150. package/dist/controllers/admin/queue.handlers.js +159 -0
  151. package/dist/controllers/admin/queue.handlers.js.map +1 -0
  152. package/dist/controllers/admin/types.d.ts +7 -0
  153. package/dist/controllers/admin/types.d.ts.map +1 -0
  154. package/dist/controllers/admin/types.js +3 -0
  155. package/dist/controllers/admin/types.js.map +1 -0
  156. package/dist/controllers/admin.controller.d.ts +58 -39
  157. package/dist/controllers/admin.controller.d.ts.map +1 -1
  158. package/dist/controllers/admin.controller.js +43 -893
  159. package/dist/controllers/admin.controller.js.map +1 -1
  160. package/dist/controllers/anthropic.controller.d.ts +5 -0
  161. package/dist/controllers/anthropic.controller.d.ts.map +1 -0
  162. package/dist/controllers/anthropic.controller.js +37 -0
  163. package/dist/controllers/anthropic.controller.js.map +1 -0
  164. package/dist/controllers/api-key.controller.d.ts.map +1 -1
  165. package/dist/controllers/api-key.controller.js +4 -2
  166. package/dist/controllers/api-key.controller.js.map +1 -1
  167. package/dist/controllers/assistants.controller.d.ts +13 -0
  168. package/dist/controllers/assistants.controller.d.ts.map +1 -0
  169. package/dist/controllers/assistants.controller.js +75 -0
  170. package/dist/controllers/assistants.controller.js.map +1 -0
  171. package/dist/controllers/audio.controller.d.ts +10 -0
  172. package/dist/controllers/audio.controller.d.ts.map +1 -0
  173. package/dist/controllers/audio.controller.js +61 -0
  174. package/dist/controllers/audio.controller.js.map +1 -0
  175. package/dist/controllers/chat.controller.d.ts.map +1 -1
  176. package/dist/controllers/chat.controller.js +7 -1
  177. package/dist/controllers/chat.controller.js.map +1 -1
  178. package/dist/controllers/files.controller.d.ts +12 -0
  179. package/dist/controllers/files.controller.d.ts.map +1 -0
  180. package/dist/controllers/files.controller.js +144 -0
  181. package/dist/controllers/files.controller.js.map +1 -0
  182. package/dist/controllers/images.controller.d.ts +6 -0
  183. package/dist/controllers/images.controller.d.ts.map +1 -0
  184. package/dist/controllers/images.controller.js +65 -0
  185. package/dist/controllers/images.controller.js.map +1 -0
  186. package/dist/controllers/media-assets.controller.d.ts +6 -0
  187. package/dist/controllers/media-assets.controller.d.ts.map +1 -0
  188. package/dist/controllers/media-assets.controller.js +51 -0
  189. package/dist/controllers/media-assets.controller.js.map +1 -0
  190. package/dist/controllers/responses.controller.d.ts +7 -0
  191. package/dist/controllers/responses.controller.d.ts.map +1 -0
  192. package/dist/controllers/responses.controller.js +83 -0
  193. package/dist/controllers/responses.controller.js.map +1 -0
  194. package/dist/controllers/videos.controller.d.ts +7 -0
  195. package/dist/controllers/videos.controller.d.ts.map +1 -0
  196. package/dist/controllers/videos.controller.js +42 -0
  197. package/dist/controllers/videos.controller.js.map +1 -0
  198. package/dist/dto/admin-auth.dto.d.ts +10 -0
  199. package/dist/dto/admin-auth.dto.d.ts.map +1 -0
  200. package/dist/dto/admin-auth.dto.js +12 -0
  201. package/dist/dto/admin-auth.dto.js.map +1 -0
  202. package/dist/dto/admin.dto.d.ts +1 -1
  203. package/dist/dto/anthropic-messages.dto.d.ts +77 -0
  204. package/dist/dto/anthropic-messages.dto.d.ts.map +1 -0
  205. package/dist/dto/anthropic-messages.dto.js +65 -0
  206. package/dist/dto/anthropic-messages.dto.js.map +1 -0
  207. package/dist/dto/audio.dto.d.ts +22 -0
  208. package/dist/dto/audio.dto.d.ts.map +1 -0
  209. package/dist/dto/audio.dto.js +16 -0
  210. package/dist/dto/audio.dto.js.map +1 -0
  211. package/dist/dto/chat.dto.d.ts +371 -63
  212. package/dist/dto/chat.dto.d.ts.map +1 -1
  213. package/dist/dto/chat.dto.js +94 -31
  214. package/dist/dto/chat.dto.js.map +1 -1
  215. package/dist/dto/conversation.dto.d.ts +6 -6
  216. package/dist/dto/conversation.dto.d.ts.map +1 -1
  217. package/dist/dto/conversation.dto.js +18 -2
  218. package/dist/dto/conversation.dto.js.map +1 -1
  219. package/dist/dto/files.dto.d.ts +17 -0
  220. package/dist/dto/files.dto.d.ts.map +1 -0
  221. package/dist/dto/files.dto.js +21 -0
  222. package/dist/dto/files.dto.js.map +1 -0
  223. package/dist/dto/images.dto.d.ts +65 -0
  224. package/dist/dto/images.dto.d.ts.map +1 -0
  225. package/dist/dto/images.dto.js +39 -0
  226. package/dist/dto/images.dto.js.map +1 -0
  227. package/dist/dto/index.d.ts +13 -0
  228. package/dist/dto/index.d.ts.map +1 -0
  229. package/dist/dto/index.js +44 -0
  230. package/dist/dto/index.js.map +1 -0
  231. package/dist/dto/queue.dto.d.ts +120 -0
  232. package/dist/dto/queue.dto.d.ts.map +1 -0
  233. package/dist/dto/queue.dto.js +31 -0
  234. package/dist/dto/queue.dto.js.map +1 -0
  235. package/dist/dto/responses.dto.d.ts +76 -0
  236. package/dist/dto/responses.dto.d.ts.map +1 -0
  237. package/dist/dto/responses.dto.js +139 -0
  238. package/dist/dto/responses.dto.js.map +1 -0
  239. package/dist/dto/videos.dto.d.ts +35 -0
  240. package/dist/dto/videos.dto.d.ts.map +1 -0
  241. package/dist/dto/videos.dto.js +30 -0
  242. package/dist/dto/videos.dto.js.map +1 -0
  243. package/dist/entities/api-key-created.entity.d.ts +6 -0
  244. package/dist/entities/api-key-created.entity.d.ts.map +1 -0
  245. package/dist/entities/api-key-created.entity.js +3 -0
  246. package/dist/entities/api-key-created.entity.js.map +1 -0
  247. package/dist/entities/api-key-public.entity.d.ts +18 -0
  248. package/dist/entities/api-key-public.entity.d.ts.map +1 -0
  249. package/dist/entities/api-key-public.entity.js +3 -0
  250. package/dist/entities/api-key-public.entity.js.map +1 -0
  251. package/dist/entities/api-key.entity.d.ts +4 -20
  252. package/dist/entities/api-key.entity.d.ts.map +1 -1
  253. package/dist/entities/audit-log-create-input.entity.d.ts +9 -0
  254. package/dist/entities/audit-log-create-input.entity.d.ts.map +1 -0
  255. package/dist/entities/audit-log-create-input.entity.js +3 -0
  256. package/dist/entities/audit-log-create-input.entity.js.map +1 -0
  257. package/dist/entities/audit-log.entity.d.ts +1 -8
  258. package/dist/entities/audit-log.entity.d.ts.map +1 -1
  259. package/dist/entities/chat-request-status.type.d.ts +2 -0
  260. package/dist/entities/chat-request-status.type.d.ts.map +1 -0
  261. package/dist/entities/chat-request-status.type.js +3 -0
  262. package/dist/entities/chat-request-status.type.js.map +1 -0
  263. package/dist/entities/chat-request.entity.d.ts +3 -6
  264. package/dist/entities/chat-request.entity.d.ts.map +1 -1
  265. package/dist/entities/document-public.entity.d.ts +9 -0
  266. package/dist/entities/document-public.entity.d.ts.map +1 -0
  267. package/dist/entities/document-public.entity.js +3 -0
  268. package/dist/entities/document-public.entity.js.map +1 -0
  269. package/dist/entities/document-storage-type.type.d.ts +2 -0
  270. package/dist/entities/document-storage-type.type.d.ts.map +1 -0
  271. package/dist/entities/document-storage-type.type.js +3 -0
  272. package/dist/entities/document-storage-type.type.js.map +1 -0
  273. package/dist/entities/document.entity.d.ts +3 -9
  274. package/dist/entities/document.entity.d.ts.map +1 -1
  275. package/dist/entities/encrypted-payload.entity.d.ts +6 -0
  276. package/dist/entities/encrypted-payload.entity.d.ts.map +1 -0
  277. package/dist/entities/encrypted-payload.entity.js +3 -0
  278. package/dist/entities/encrypted-payload.entity.js.map +1 -0
  279. package/dist/entities/index.d.ts +12 -0
  280. package/dist/entities/index.d.ts.map +1 -0
  281. package/dist/entities/index.js +3 -0
  282. package/dist/entities/index.js.map +1 -0
  283. package/dist/exceptions/error-codes.d.ts +10 -0
  284. package/dist/exceptions/error-codes.d.ts.map +1 -1
  285. package/dist/exceptions/error-codes.js +10 -0
  286. package/dist/exceptions/error-codes.js.map +1 -1
  287. package/dist/exceptions/exception.factory.d.ts +13 -0
  288. package/dist/exceptions/exception.factory.d.ts.map +1 -1
  289. package/dist/exceptions/exception.factory.js +31 -0
  290. package/dist/exceptions/exception.factory.js.map +1 -1
  291. package/dist/exceptions/http.exception.d.ts +10 -0
  292. package/dist/exceptions/http.exception.d.ts.map +1 -1
  293. package/dist/exceptions/http.exception.js +30 -0
  294. package/dist/exceptions/http.exception.js.map +1 -1
  295. package/dist/interfaces/anthropic-message.interface.d.ts +27 -0
  296. package/dist/interfaces/anthropic-message.interface.d.ts.map +1 -0
  297. package/dist/interfaces/anthropic-message.interface.js +4 -0
  298. package/dist/interfaces/anthropic-message.interface.js.map +1 -0
  299. package/dist/interfaces/api-features.type.d.ts +45 -0
  300. package/dist/interfaces/api-features.type.d.ts.map +1 -0
  301. package/dist/interfaces/api-features.type.js +58 -0
  302. package/dist/interfaces/api-features.type.js.map +1 -0
  303. package/dist/interfaces/api-key-mode.type.d.ts +8 -0
  304. package/dist/interfaces/api-key-mode.type.d.ts.map +1 -0
  305. package/dist/interfaces/api-key-mode.type.js +3 -0
  306. package/dist/interfaces/api-key-mode.type.js.map +1 -0
  307. package/dist/interfaces/api-key-role.type.d.ts +3 -0
  308. package/dist/interfaces/api-key-role.type.d.ts.map +1 -0
  309. package/dist/interfaces/api-key-role.type.js +3 -0
  310. package/dist/interfaces/api-key-role.type.js.map +1 -0
  311. package/dist/interfaces/app-settings.type.d.ts +10 -0
  312. package/dist/interfaces/app-settings.type.d.ts.map +1 -0
  313. package/dist/interfaces/app-settings.type.js +3 -0
  314. package/dist/interfaces/app-settings.type.js.map +1 -0
  315. package/dist/interfaces/auth.interface.d.ts +4 -14
  316. package/dist/interfaces/auth.interface.d.ts.map +1 -1
  317. package/dist/interfaces/authenticated-api-key.interface.d.ts +16 -0
  318. package/dist/interfaces/authenticated-api-key.interface.d.ts.map +1 -0
  319. package/dist/interfaces/authenticated-api-key.interface.js +3 -0
  320. package/dist/interfaces/authenticated-api-key.interface.js.map +1 -0
  321. package/dist/interfaces/auto-ban-event.interface.d.ts +11 -0
  322. package/dist/interfaces/auto-ban-event.interface.d.ts.map +1 -0
  323. package/dist/interfaces/auto-ban-event.interface.js +3 -0
  324. package/dist/interfaces/auto-ban-event.interface.js.map +1 -0
  325. package/dist/interfaces/built-grok-request.interface.d.ts +12 -0
  326. package/dist/interfaces/built-grok-request.interface.d.ts.map +1 -0
  327. package/dist/interfaces/built-grok-request.interface.js +3 -0
  328. package/dist/interfaces/built-grok-request.interface.js.map +1 -0
  329. package/dist/interfaces/chat-context.interface.d.ts +9 -0
  330. package/dist/interfaces/chat-context.interface.d.ts.map +1 -0
  331. package/dist/interfaces/chat-context.interface.js +3 -0
  332. package/dist/interfaces/chat-context.interface.js.map +1 -0
  333. package/dist/interfaces/chat-job-payload.interface.d.ts +27 -0
  334. package/dist/interfaces/chat-job-payload.interface.d.ts.map +1 -0
  335. package/dist/interfaces/chat-job-payload.interface.js +3 -0
  336. package/dist/interfaces/chat-job-payload.interface.js.map +1 -0
  337. package/dist/interfaces/chat-list-query.interface.d.ts +14 -0
  338. package/dist/interfaces/chat-list-query.interface.d.ts.map +1 -0
  339. package/dist/interfaces/chat-list-query.interface.js +3 -0
  340. package/dist/interfaces/chat-list-query.interface.js.map +1 -0
  341. package/dist/interfaces/document-context-result.interface.d.ts +7 -0
  342. package/dist/interfaces/document-context-result.interface.d.ts.map +1 -0
  343. package/dist/interfaces/document-context-result.interface.js +3 -0
  344. package/dist/interfaces/document-context-result.interface.js.map +1 -0
  345. package/dist/interfaces/execute-completion-options.interface.d.ts +17 -0
  346. package/dist/interfaces/execute-completion-options.interface.d.ts.map +1 -0
  347. package/dist/interfaces/execute-completion-options.interface.js +3 -0
  348. package/dist/interfaces/execute-completion-options.interface.js.map +1 -0
  349. package/dist/interfaces/express.interface.d.ts +1 -1
  350. package/dist/interfaces/express.interface.d.ts.map +1 -1
  351. package/dist/interfaces/grok-collected-output.interface.d.ts +28 -0
  352. package/dist/interfaces/grok-collected-output.interface.d.ts.map +1 -0
  353. package/dist/interfaces/grok-collected-output.interface.js +3 -0
  354. package/dist/interfaces/grok-collected-output.interface.js.map +1 -0
  355. package/dist/interfaces/grok-json-result.interface.d.ts +7 -0
  356. package/dist/interfaces/grok-json-result.interface.d.ts.map +1 -0
  357. package/dist/interfaces/grok-json-result.interface.js +3 -0
  358. package/dist/interfaces/grok-json-result.interface.js.map +1 -0
  359. package/dist/interfaces/grok-response-meta.interface.d.ts +8 -0
  360. package/dist/interfaces/grok-response-meta.interface.d.ts.map +1 -0
  361. package/dist/interfaces/grok-response-meta.interface.js +3 -0
  362. package/dist/interfaces/grok-response-meta.interface.js.map +1 -0
  363. package/dist/interfaces/grok-run-options.interface.d.ts +58 -0
  364. package/dist/interfaces/grok-run-options.interface.d.ts.map +1 -0
  365. package/dist/interfaces/grok-run-options.interface.js +3 -0
  366. package/dist/interfaces/grok-run-options.interface.js.map +1 -0
  367. package/dist/interfaces/grok-run-result.interface.d.ts +8 -0
  368. package/dist/interfaces/grok-run-result.interface.d.ts.map +1 -0
  369. package/dist/interfaces/grok-run-result.interface.js +3 -0
  370. package/dist/interfaces/grok-run-result.interface.js.map +1 -0
  371. package/dist/interfaces/grok-stream-event.type.d.ts +20 -0
  372. package/dist/interfaces/grok-stream-event.type.d.ts.map +1 -0
  373. package/dist/interfaces/grok-stream-event.type.js +3 -0
  374. package/dist/interfaces/grok-stream-event.type.js.map +1 -0
  375. package/dist/interfaces/grok.interface.d.ts +5 -40
  376. package/dist/interfaces/grok.interface.d.ts.map +1 -1
  377. package/dist/interfaces/index.d.ts +47 -0
  378. package/dist/interfaces/index.d.ts.map +1 -0
  379. package/dist/interfaces/index.js +7 -0
  380. package/dist/interfaces/index.js.map +1 -0
  381. package/dist/interfaces/install-channel.type.d.ts +2 -0
  382. package/dist/interfaces/install-channel.type.d.ts.map +1 -0
  383. package/dist/interfaces/install-channel.type.js +3 -0
  384. package/dist/interfaces/install-channel.type.js.map +1 -0
  385. package/dist/interfaces/map-completion-options.interface.d.ts +16 -0
  386. package/dist/interfaces/map-completion-options.interface.d.ts.map +1 -0
  387. package/dist/interfaces/map-completion-options.interface.js +3 -0
  388. package/dist/interfaces/map-completion-options.interface.js.map +1 -0
  389. package/dist/interfaces/materialized-document.interface.d.ts +10 -0
  390. package/dist/interfaces/materialized-document.interface.d.ts.map +1 -0
  391. package/dist/interfaces/materialized-document.interface.js +3 -0
  392. package/dist/interfaces/materialized-document.interface.js.map +1 -0
  393. package/dist/interfaces/open-ai-chat-completion-choice.interface.d.ts +25 -0
  394. package/dist/interfaces/open-ai-chat-completion-choice.interface.d.ts.map +1 -0
  395. package/dist/interfaces/open-ai-chat-completion-choice.interface.js +3 -0
  396. package/dist/interfaces/open-ai-chat-completion-choice.interface.js.map +1 -0
  397. package/dist/interfaces/open-ai-chat-completion-chunk.interface.d.ts +36 -0
  398. package/dist/interfaces/open-ai-chat-completion-chunk.interface.d.ts.map +1 -0
  399. package/dist/interfaces/open-ai-chat-completion-chunk.interface.js +3 -0
  400. package/dist/interfaces/open-ai-chat-completion-chunk.interface.js.map +1 -0
  401. package/dist/interfaces/open-ai-chat-completion-request.interface.d.ts +55 -0
  402. package/dist/interfaces/open-ai-chat-completion-request.interface.d.ts.map +1 -0
  403. package/dist/interfaces/open-ai-chat-completion-request.interface.js +3 -0
  404. package/dist/interfaces/open-ai-chat-completion-request.interface.js.map +1 -0
  405. package/dist/interfaces/open-ai-chat-completion.interface.d.ts +17 -0
  406. package/dist/interfaces/open-ai-chat-completion.interface.d.ts.map +1 -0
  407. package/dist/interfaces/open-ai-chat-completion.interface.js +3 -0
  408. package/dist/interfaces/open-ai-chat-completion.interface.js.map +1 -0
  409. package/dist/interfaces/open-ai-chat-message.interface.d.ts +9 -0
  410. package/dist/interfaces/open-ai-chat-message.interface.d.ts.map +1 -0
  411. package/dist/interfaces/open-ai-chat-message.interface.js +3 -0
  412. package/dist/interfaces/open-ai-chat-message.interface.js.map +1 -0
  413. package/dist/interfaces/open-ai-model-list.interface.d.ts +6 -0
  414. package/dist/interfaces/open-ai-model-list.interface.d.ts.map +1 -0
  415. package/dist/interfaces/open-ai-model-list.interface.js +3 -0
  416. package/dist/interfaces/open-ai-model-list.interface.js.map +1 -0
  417. package/dist/interfaces/open-ai-model.interface.d.ts +7 -0
  418. package/dist/interfaces/open-ai-model.interface.d.ts.map +1 -0
  419. package/dist/interfaces/open-ai-model.interface.js +3 -0
  420. package/dist/interfaces/open-ai-model.interface.js.map +1 -0
  421. package/dist/interfaces/open-ai-response.interface.d.ts +32 -0
  422. package/dist/interfaces/open-ai-response.interface.d.ts.map +1 -0
  423. package/dist/interfaces/open-ai-response.interface.js +3 -0
  424. package/dist/interfaces/open-ai-response.interface.js.map +1 -0
  425. package/dist/interfaces/open-ai-role.type.d.ts +2 -0
  426. package/dist/interfaces/open-ai-role.type.d.ts.map +1 -0
  427. package/dist/interfaces/open-ai-role.type.js +3 -0
  428. package/dist/interfaces/open-ai-role.type.js.map +1 -0
  429. package/dist/interfaces/openai.interface.d.ts +10 -96
  430. package/dist/interfaces/openai.interface.d.ts.map +1 -1
  431. package/dist/interfaces/pm2-runtime-config.interface.d.ts +24 -0
  432. package/dist/interfaces/pm2-runtime-config.interface.d.ts.map +1 -0
  433. package/dist/interfaces/pm2-runtime-config.interface.js +3 -0
  434. package/dist/interfaces/pm2-runtime-config.interface.js.map +1 -0
  435. package/dist/interfaces/proxy-ip-config.interface.d.ts +12 -0
  436. package/dist/interfaces/proxy-ip-config.interface.d.ts.map +1 -0
  437. package/dist/interfaces/proxy-ip-config.interface.js +3 -0
  438. package/dist/interfaces/proxy-ip-config.interface.js.map +1 -0
  439. package/dist/interfaces/proxy-ip-source.type.d.ts +7 -0
  440. package/dist/interfaces/proxy-ip-source.type.d.ts.map +1 -0
  441. package/dist/interfaces/proxy-ip-source.type.js +3 -0
  442. package/dist/interfaces/proxy-ip-source.type.js.map +1 -0
  443. package/dist/interfaces/resolved-policy.interface.d.ts +15 -0
  444. package/dist/interfaces/resolved-policy.interface.d.ts.map +1 -0
  445. package/dist/interfaces/resolved-policy.interface.js +3 -0
  446. package/dist/interfaces/resolved-policy.interface.js.map +1 -0
  447. package/dist/interfaces/runner-mode.type.d.ts +2 -0
  448. package/dist/interfaces/runner-mode.type.d.ts.map +1 -0
  449. package/dist/interfaces/runner-mode.type.js +3 -0
  450. package/dist/interfaces/runner-mode.type.js.map +1 -0
  451. package/dist/interfaces/software-check.interface.d.ts +14 -0
  452. package/dist/interfaces/software-check.interface.d.ts.map +1 -0
  453. package/dist/interfaces/software-check.interface.js +3 -0
  454. package/dist/interfaces/software-check.interface.js.map +1 -0
  455. package/dist/interfaces/software-id.type.d.ts +2 -0
  456. package/dist/interfaces/software-id.type.d.ts.map +1 -0
  457. package/dist/interfaces/software-id.type.js +3 -0
  458. package/dist/interfaces/software-id.type.js.map +1 -0
  459. package/dist/interfaces/software-level.type.d.ts +2 -0
  460. package/dist/interfaces/software-level.type.d.ts.map +1 -0
  461. package/dist/interfaces/software-level.type.js +3 -0
  462. package/dist/interfaces/software-level.type.js.map +1 -0
  463. package/dist/interfaces/system-software-report.interface.d.ts +6 -0
  464. package/dist/interfaces/system-software-report.interface.d.ts.map +1 -0
  465. package/dist/interfaces/system-software-report.interface.js +3 -0
  466. package/dist/interfaces/system-software-report.interface.js.map +1 -0
  467. package/dist/interfaces/tracked-connection.interface.d.ts +16 -0
  468. package/dist/interfaces/tracked-connection.interface.d.ts.map +1 -0
  469. package/dist/interfaces/tracked-connection.interface.js +3 -0
  470. package/dist/interfaces/tracked-connection.interface.js.map +1 -0
  471. package/dist/interfaces/update-progress.type.d.ts +16 -0
  472. package/dist/interfaces/update-progress.type.d.ts.map +1 -0
  473. package/dist/interfaces/update-progress.type.js +3 -0
  474. package/dist/interfaces/update-progress.type.js.map +1 -0
  475. package/dist/interfaces/update-result.interface.d.ts +11 -0
  476. package/dist/interfaces/update-result.interface.d.ts.map +1 -0
  477. package/dist/interfaces/update-result.interface.js +3 -0
  478. package/dist/interfaces/update-result.interface.js.map +1 -0
  479. package/dist/interfaces/version-info.interface.d.ts +21 -0
  480. package/dist/interfaces/version-info.interface.d.ts.map +1 -0
  481. package/dist/interfaces/version-info.interface.js +3 -0
  482. package/dist/interfaces/version-info.interface.js.map +1 -0
  483. package/dist/interfaces/version-status.type.d.ts +3 -0
  484. package/dist/interfaces/version-status.type.d.ts.map +1 -0
  485. package/dist/interfaces/version-status.type.js +3 -0
  486. package/dist/interfaces/version-status.type.js.map +1 -0
  487. package/dist/middlewares/auth.middleware.d.ts +10 -2
  488. package/dist/middlewares/auth.middleware.d.ts.map +1 -1
  489. package/dist/middlewares/auth.middleware.js +93 -13
  490. package/dist/middlewares/auth.middleware.js.map +1 -1
  491. package/dist/middlewares/connection-tracker.d.ts +2 -15
  492. package/dist/middlewares/connection-tracker.d.ts.map +1 -1
  493. package/dist/middlewares/connection-tracker.js.map +1 -1
  494. package/dist/middlewares/connection-tracker.middleware.d.ts +33 -0
  495. package/dist/middlewares/connection-tracker.middleware.d.ts.map +1 -0
  496. package/dist/middlewares/connection-tracker.middleware.js +99 -0
  497. package/dist/middlewares/connection-tracker.middleware.js.map +1 -0
  498. package/dist/middlewares/error.middleware.d.ts.map +1 -1
  499. package/dist/middlewares/error.middleware.js +7 -3
  500. package/dist/middlewares/error.middleware.js.map +1 -1
  501. package/dist/middlewares/index.d.ts +11 -0
  502. package/dist/middlewares/index.d.ts.map +1 -0
  503. package/dist/middlewares/index.js +35 -0
  504. package/dist/middlewares/index.js.map +1 -0
  505. package/dist/middlewares/rate-limit.middleware.d.ts.map +1 -1
  506. package/dist/middlewares/rate-limit.middleware.js +9 -0
  507. package/dist/middlewares/rate-limit.middleware.js.map +1 -1
  508. package/dist/middlewares/request-id.middleware.js +1 -1
  509. package/dist/middlewares/request-id.middleware.js.map +1 -1
  510. package/dist/middlewares/upload-images.middleware.d.ts +3 -0
  511. package/dist/middlewares/upload-images.middleware.d.ts.map +1 -0
  512. package/dist/middlewares/upload-images.middleware.js +29 -0
  513. package/dist/middlewares/upload-images.middleware.js.map +1 -0
  514. package/dist/middlewares/validate.middleware.d.ts.map +1 -1
  515. package/dist/middlewares/validate.middleware.js +21 -2
  516. package/dist/middlewares/validate.middleware.js.map +1 -1
  517. package/dist/routes/admin.routes.d.ts.map +1 -1
  518. package/dist/routes/admin.routes.js +42 -2
  519. package/dist/routes/admin.routes.js.map +1 -1
  520. package/dist/routes/index.d.ts.map +1 -1
  521. package/dist/routes/index.js +26 -0
  522. package/dist/routes/index.js.map +1 -1
  523. package/dist/routes/v1/assistants.routes.d.ts +3 -0
  524. package/dist/routes/v1/assistants.routes.d.ts.map +1 -0
  525. package/dist/routes/v1/assistants.routes.js +13 -0
  526. package/dist/routes/v1/assistants.routes.js.map +1 -0
  527. package/dist/routes/v1/audio.routes.d.ts +3 -0
  528. package/dist/routes/v1/audio.routes.d.ts.map +1 -0
  529. package/dist/routes/v1/audio.routes.js +14 -0
  530. package/dist/routes/v1/audio.routes.js.map +1 -0
  531. package/dist/routes/v1/chat.routes.d.ts.map +1 -1
  532. package/dist/routes/v1/chat.routes.js +2 -2
  533. package/dist/routes/v1/chat.routes.js.map +1 -1
  534. package/dist/routes/v1/files.routes.d.ts +3 -0
  535. package/dist/routes/v1/files.routes.d.ts.map +1 -0
  536. package/dist/routes/v1/files.routes.js +16 -0
  537. package/dist/routes/v1/files.routes.js.map +1 -0
  538. package/dist/routes/v1/images.routes.d.ts +3 -0
  539. package/dist/routes/v1/images.routes.d.ts.map +1 -0
  540. package/dist/routes/v1/images.routes.js +14 -0
  541. package/dist/routes/v1/images.routes.js.map +1 -0
  542. package/dist/routes/v1/media-assets.routes.d.ts +3 -0
  543. package/dist/routes/v1/media-assets.routes.d.ts.map +1 -0
  544. package/dist/routes/v1/media-assets.routes.js +12 -0
  545. package/dist/routes/v1/media-assets.routes.js.map +1 -0
  546. package/dist/routes/v1/messages.routes.d.ts +3 -0
  547. package/dist/routes/v1/messages.routes.d.ts.map +1 -0
  548. package/dist/routes/v1/messages.routes.js +13 -0
  549. package/dist/routes/v1/messages.routes.js.map +1 -0
  550. package/dist/routes/v1/responses.routes.d.ts +3 -0
  551. package/dist/routes/v1/responses.routes.d.ts.map +1 -0
  552. package/dist/routes/v1/responses.routes.js +15 -0
  553. package/dist/routes/v1/responses.routes.js.map +1 -0
  554. package/dist/routes/v1/threads.routes.d.ts +3 -0
  555. package/dist/routes/v1/threads.routes.d.ts.map +1 -0
  556. package/dist/routes/v1/threads.routes.js +15 -0
  557. package/dist/routes/v1/threads.routes.js.map +1 -0
  558. package/dist/routes/v1/videos.routes.d.ts +3 -0
  559. package/dist/routes/v1/videos.routes.d.ts.map +1 -0
  560. package/dist/routes/v1/videos.routes.js +14 -0
  561. package/dist/routes/v1/videos.routes.js.map +1 -0
  562. package/dist/server.js +17 -0
  563. package/dist/server.js.map +1 -1
  564. package/dist/services/abuse-guard.service.d.ts +1 -9
  565. package/dist/services/abuse-guard.service.d.ts.map +1 -1
  566. package/dist/services/abuse-guard.service.js.map +1 -1
  567. package/dist/services/admin-auth.service.d.ts +32 -0
  568. package/dist/services/admin-auth.service.d.ts.map +1 -0
  569. package/dist/services/admin-auth.service.js +197 -0
  570. package/dist/services/admin-auth.service.js.map +1 -0
  571. package/dist/services/api-features.service.d.ts +15 -0
  572. package/dist/services/api-features.service.d.ts.map +1 -0
  573. package/dist/services/api-features.service.js +92 -0
  574. package/dist/services/api-features.service.js.map +1 -0
  575. package/dist/services/api-key.service.d.ts +4 -6
  576. package/dist/services/api-key.service.d.ts.map +1 -1
  577. package/dist/services/api-key.service.js +61 -46
  578. package/dist/services/api-key.service.js.map +1 -1
  579. package/dist/services/assistants.service.d.ts +130 -0
  580. package/dist/services/assistants.service.d.ts.map +1 -0
  581. package/dist/services/assistants.service.js +329 -0
  582. package/dist/services/assistants.service.js.map +1 -0
  583. package/dist/services/audit.service.d.ts +5 -1
  584. package/dist/services/audit.service.d.ts.map +1 -1
  585. package/dist/services/audit.service.js +26 -9
  586. package/dist/services/audit.service.js.map +1 -1
  587. package/dist/services/chat-admin.service.d.ts +1 -12
  588. package/dist/services/chat-admin.service.d.ts.map +1 -1
  589. package/dist/services/chat-admin.service.js.map +1 -1
  590. package/dist/services/chat.service.d.ts +13 -9
  591. package/dist/services/chat.service.d.ts.map +1 -1
  592. package/dist/services/chat.service.js +683 -131
  593. package/dist/services/chat.service.js.map +1 -1
  594. package/dist/services/conversation.service.d.ts.map +1 -1
  595. package/dist/services/conversation.service.js +36 -14
  596. package/dist/services/conversation.service.js.map +1 -1
  597. package/dist/services/ddos-policy.service.d.ts +1 -0
  598. package/dist/services/ddos-policy.service.d.ts.map +1 -1
  599. package/dist/services/ddos-policy.service.js +7 -1
  600. package/dist/services/ddos-policy.service.js.map +1 -1
  601. package/dist/services/document.service.d.ts +27 -2
  602. package/dist/services/document.service.d.ts.map +1 -1
  603. package/dist/services/document.service.js +164 -36
  604. package/dist/services/document.service.js.map +1 -1
  605. package/dist/services/encryption.service.d.ts +1 -1
  606. package/dist/services/encryption.service.d.ts.map +1 -1
  607. package/dist/services/grok-cli.service.d.ts +14 -3
  608. package/dist/services/grok-cli.service.d.ts.map +1 -1
  609. package/dist/services/grok-cli.service.js +124 -13
  610. package/dist/services/grok-cli.service.js.map +1 -1
  611. package/dist/services/grok-request-builder.service.d.ts +10 -0
  612. package/dist/services/grok-request-builder.service.d.ts.map +1 -0
  613. package/dist/services/grok-request-builder.service.js +233 -0
  614. package/dist/services/grok-request-builder.service.js.map +1 -0
  615. package/dist/services/ip-blacklist.service.d.ts +3 -2
  616. package/dist/services/ip-blacklist.service.d.ts.map +1 -1
  617. package/dist/services/ip-blacklist.service.js +13 -3
  618. package/dist/services/ip-blacklist.service.js.map +1 -1
  619. package/dist/services/media/media-jobs.service.d.ts +40 -0
  620. package/dist/services/media/media-jobs.service.d.ts.map +1 -0
  621. package/dist/services/media/media-jobs.service.js +276 -0
  622. package/dist/services/media/media-jobs.service.js.map +1 -0
  623. package/dist/services/media/media-orchestrator.service.d.ts +52 -0
  624. package/dist/services/media/media-orchestrator.service.d.ts.map +1 -0
  625. package/dist/services/media/media-orchestrator.service.js +209 -0
  626. package/dist/services/media/media-orchestrator.service.js.map +1 -0
  627. package/dist/services/media/media-store.service.d.ts +38 -0
  628. package/dist/services/media/media-store.service.d.ts.map +1 -0
  629. package/dist/services/media/media-store.service.js +121 -0
  630. package/dist/services/media/media-store.service.js.map +1 -0
  631. package/dist/services/media/providers/grok-tools.provider.d.ts +29 -0
  632. package/dist/services/media/providers/grok-tools.provider.d.ts.map +1 -0
  633. package/dist/services/media/providers/grok-tools.provider.js +224 -0
  634. package/dist/services/media/providers/grok-tools.provider.js.map +1 -0
  635. package/dist/services/media/providers/media-provider.interface.d.ts +44 -0
  636. package/dist/services/media/providers/media-provider.interface.d.ts.map +1 -0
  637. package/dist/services/media/providers/media-provider.interface.js +4 -0
  638. package/dist/services/media/providers/media-provider.interface.js.map +1 -0
  639. package/dist/services/media/providers/mock.provider.d.ts +8 -0
  640. package/dist/services/media/providers/mock.provider.d.ts.map +1 -0
  641. package/dist/services/media/providers/mock.provider.js +43 -0
  642. package/dist/services/media/providers/mock.provider.js.map +1 -0
  643. package/dist/services/media/providers/stub.provider.d.ts +8 -0
  644. package/dist/services/media/providers/stub.provider.d.ts.map +1 -0
  645. package/dist/services/media/providers/stub.provider.js +14 -0
  646. package/dist/services/media/providers/stub.provider.js.map +1 -0
  647. package/dist/services/models.service.d.ts +1 -1
  648. package/dist/services/models.service.d.ts.map +1 -1
  649. package/dist/services/pm2-config.d.ts +1 -23
  650. package/dist/services/pm2-config.d.ts.map +1 -1
  651. package/dist/services/pm2-config.js.map +1 -1
  652. package/dist/services/pm2.service.d.ts +12 -2
  653. package/dist/services/pm2.service.d.ts.map +1 -1
  654. package/dist/services/pm2.service.js +19 -6
  655. package/dist/services/pm2.service.js.map +1 -1
  656. package/dist/services/policy.service.d.ts +2 -14
  657. package/dist/services/policy.service.d.ts.map +1 -1
  658. package/dist/services/policy.service.js +48 -2
  659. package/dist/services/policy.service.js.map +1 -1
  660. package/dist/services/queue/chat-queue.service.d.ts +100 -0
  661. package/dist/services/queue/chat-queue.service.d.ts.map +1 -0
  662. package/dist/services/queue/chat-queue.service.js +535 -0
  663. package/dist/services/queue/chat-queue.service.js.map +1 -0
  664. package/dist/services/queue/chat-worker.service.d.ts +12 -0
  665. package/dist/services/queue/chat-worker.service.d.ts.map +1 -0
  666. package/dist/services/queue/chat-worker.service.js +135 -0
  667. package/dist/services/queue/chat-worker.service.js.map +1 -0
  668. package/dist/services/queue/fair-claim.d.ts +41 -0
  669. package/dist/services/queue/fair-claim.d.ts.map +1 -0
  670. package/dist/services/queue/fair-claim.js +54 -0
  671. package/dist/services/queue/fair-claim.js.map +1 -0
  672. package/dist/services/queue/job-waiter.d.ts +40 -0
  673. package/dist/services/queue/job-waiter.d.ts.map +1 -0
  674. package/dist/services/queue/job-waiter.js +77 -0
  675. package/dist/services/queue/job-waiter.js.map +1 -0
  676. package/dist/services/queue/queue-backend.factory.d.ts +12 -0
  677. package/dist/services/queue/queue-backend.factory.d.ts.map +1 -0
  678. package/dist/services/queue/queue-backend.factory.js +41 -0
  679. package/dist/services/queue/queue-backend.factory.js.map +1 -0
  680. package/dist/services/queue/queue-backend.interface.d.ts +67 -0
  681. package/dist/services/queue/queue-backend.interface.d.ts.map +1 -0
  682. package/dist/services/queue/queue-backend.interface.js +19 -0
  683. package/dist/services/queue/queue-backend.interface.js.map +1 -0
  684. package/dist/services/queue/queue-policy.service.d.ts +19 -0
  685. package/dist/services/queue/queue-policy.service.d.ts.map +1 -0
  686. package/dist/services/queue/queue-policy.service.js +99 -0
  687. package/dist/services/queue/queue-policy.service.js.map +1 -0
  688. package/dist/services/response-store.service.d.ts +14 -0
  689. package/dist/services/response-store.service.d.ts.map +1 -0
  690. package/dist/services/response-store.service.js +77 -0
  691. package/dist/services/response-store.service.js.map +1 -0
  692. package/dist/services/role-normalize.service.d.ts +5 -0
  693. package/dist/services/role-normalize.service.d.ts.map +1 -0
  694. package/dist/services/role-normalize.service.js +22 -0
  695. package/dist/services/role-normalize.service.js.map +1 -0
  696. package/dist/services/settings.service.d.ts +1 -8
  697. package/dist/services/settings.service.d.ts.map +1 -1
  698. package/dist/services/settings.service.js +3 -2
  699. package/dist/services/settings.service.js.map +1 -1
  700. package/dist/services/stats.service.d.ts +33 -0
  701. package/dist/services/stats.service.d.ts.map +1 -1
  702. package/dist/services/stats.service.js +98 -4
  703. package/dist/services/stats.service.js.map +1 -1
  704. package/dist/services/system-health.service.d.ts +1 -17
  705. package/dist/services/system-health.service.d.ts.map +1 -1
  706. package/dist/services/system-health.service.js.map +1 -1
  707. package/dist/services/update.service.d.ts +4 -45
  708. package/dist/services/update.service.d.ts.map +1 -1
  709. package/dist/services/update.service.js.map +1 -1
  710. package/dist/utils/anthropic-mapper.d.ts +20 -0
  711. package/dist/utils/anthropic-mapper.d.ts.map +1 -0
  712. package/dist/utils/anthropic-mapper.js +254 -0
  713. package/dist/utils/anthropic-mapper.js.map +1 -0
  714. package/dist/utils/api-key-crypto.d.ts +10 -0
  715. package/dist/utils/api-key-crypto.d.ts.map +1 -0
  716. package/dist/utils/api-key-crypto.js +52 -0
  717. package/dist/utils/api-key-crypto.js.map +1 -0
  718. package/dist/utils/api-key-id.d.ts +13 -0
  719. package/dist/utils/api-key-id.d.ts.map +1 -0
  720. package/dist/utils/api-key-id.js +58 -0
  721. package/dist/utils/api-key-id.js.map +1 -0
  722. package/dist/utils/client-ip.d.ts +3 -16
  723. package/dist/utils/client-ip.d.ts.map +1 -1
  724. package/dist/utils/client-ip.js +10 -1
  725. package/dist/utils/client-ip.js.map +1 -1
  726. package/dist/utils/fs-safe.d.ts +5 -0
  727. package/dist/utils/fs-safe.d.ts.map +1 -0
  728. package/dist/utils/fs-safe.js +26 -0
  729. package/dist/utils/fs-safe.js.map +1 -0
  730. package/dist/utils/grok-event-parse.d.ts +18 -0
  731. package/dist/utils/grok-event-parse.d.ts.map +1 -0
  732. package/dist/utils/grok-event-parse.js +123 -0
  733. package/dist/utils/grok-event-parse.js.map +1 -0
  734. package/dist/utils/id.d.ts +3 -2
  735. package/dist/utils/id.d.ts.map +1 -1
  736. package/dist/utils/id.js +10 -6
  737. package/dist/utils/id.js.map +1 -1
  738. package/dist/utils/index.d.ts +14 -0
  739. package/dist/utils/index.d.ts.map +1 -0
  740. package/dist/utils/index.js +56 -0
  741. package/dist/utils/index.js.map +1 -0
  742. package/dist/utils/message-content.d.ts +24 -0
  743. package/dist/utils/message-content.d.ts.map +1 -0
  744. package/dist/utils/message-content.js +68 -0
  745. package/dist/utils/message-content.js.map +1 -0
  746. package/dist/utils/openai-mapper.d.ts +8 -19
  747. package/dist/utils/openai-mapper.d.ts.map +1 -1
  748. package/dist/utils/openai-mapper.js +26 -27
  749. package/dist/utils/openai-mapper.js.map +1 -1
  750. package/dist/utils/prisma-bytes.d.ts +8 -0
  751. package/dist/utils/prisma-bytes.d.ts.map +1 -0
  752. package/dist/utils/prisma-bytes.js +14 -0
  753. package/dist/utils/prisma-bytes.js.map +1 -0
  754. package/dist/utils/request-meta.d.ts +12 -0
  755. package/dist/utils/request-meta.d.ts.map +1 -0
  756. package/dist/utils/request-meta.js +26 -0
  757. package/dist/utils/request-meta.js.map +1 -0
  758. package/dist/utils/responses-mapper.d.ts +9 -0
  759. package/dist/utils/responses-mapper.d.ts.map +1 -0
  760. package/dist/utils/responses-mapper.js +56 -0
  761. package/dist/utils/responses-mapper.js.map +1 -0
  762. package/dist/utils/role-normalize.d.ts +9 -0
  763. package/dist/utils/role-normalize.d.ts.map +1 -0
  764. package/dist/utils/role-normalize.js +29 -0
  765. package/dist/utils/role-normalize.js.map +1 -0
  766. package/dist/utils/stream.d.ts +2 -0
  767. package/dist/utils/stream.d.ts.map +1 -1
  768. package/dist/utils/stream.js +9 -0
  769. package/dist/utils/stream.js.map +1 -1
  770. package/package.json +21 -3
  771. package/prisma/migrations/20260715140000_admin_otp_session/migration.sql +29 -0
  772. package/prisma/migrations/20260715150000_chat_jobs/migration.sql +33 -0
  773. package/prisma/migrations/20260715161921_api_responses_assistants/migration.sql +80 -0
  774. package/prisma/migrations/20260716060000_media_assets/migration.sql +25 -0
  775. package/prisma/migrations/20260716070000_media_jobs/migration.sql +17 -0
  776. package/prisma/migrations/migration_lock.toml +1 -1
  777. package/prisma/schema.prisma +205 -0
  778. package/public/admin/allowed-extensions.js +41 -0
  779. package/public/admin/app.js +7245 -3339
  780. package/public/admin/boot.js +2106 -3
  781. package/public/admin/boot.js.map +1 -0
  782. package/public/admin/boot.legacy.js +3 -0
  783. package/public/admin/i18n.js +955 -95
  784. package/public/admin/styles.css +1133 -106
  785. package/scripts/api-audit-run.sh +52 -0
  786. package/scripts/cli-audit-run.sh +214 -0
  787. package/scripts/generate-allowed-extensions.cjs +23 -0
package/.env.example CHANGED
@@ -61,3 +61,8 @@ LOG_LEVEL=info
61
61
  TRUST_PROXY=1
62
62
  # auto | cloudflare | nginx | x-forwarded-for | socket
63
63
  PROXY_IP_SOURCE=auto
64
+
65
+ # Durable chat work-queue backend (every conversation is enqueued then consumed)
66
+ # sqlite = ChatJob table + in-process worker (default, production-ready)
67
+ # redis / kafka = reserved for multi-node (not implemented yet)
68
+ QUEUE_BACKEND=sqlite
package/README-ZH.md CHANGED
@@ -19,13 +19,37 @@
19
19
 
20
20
  **主要能力**
21
21
 
22
- - OpenAI 相容 `POST /v1/chat/completions`(stream / 非 stream)
22
+ - OpenAI 相容 `POST /v1/chat/completions` + **`POST /v1/responses`**(文字子集)+ Anthropic 相容 **`POST /v1/messages`**(stream / 非 stream)
23
23
  - Thinking / `reasoning_content`(DeepSeek 風格 + Grok `thought`)
24
24
  - 每把 key 的 **safe** / **agent** 政策 + 全域安全覆寫
25
25
  - AES-256-GCM 加密 + 完整 chat 稽核
26
- - **Admin Panel** — 儀表板、對話、金鑰、文件、稽核、用量、**DDoS 中心**、PM2、系統更新
26
+ - **Admin Panel** — OTP 登入(`gctoac admin otp`)、儀表板、對話、金鑰、文件、稽核、用量、**媒體庫**、**對話佇列**、**DDoS 中心**、安全設定、**API 能力**、PM2、系統更新;各頁統一 **KPI + 分 tab** 版面
27
+ - **媒體庫** — 工作室(生成/編輯/圖生影片)、資產與工作列表、瀏覽器預覽 lightbox(圖/片/聲/PDF/文字)
28
+ - **持久化對話佇列** — 每個對話先入隊(租約認領)再由進程內 worker 消費;Admin 可暫停/排空/取消/死信;可選 `Idempotency-Key`;無 live Response 時離線收集串流結果
27
29
  - **DDoS/防濫用** — 可配置限流、多規則自動封鎖、反向代理真實客戶端 IP(nginx / Cloudflare)
28
- - 控制 CLI:setup、start/stop/restart、status、doctor、logs、update、keysadmin on/off
30
+ - 控制 CLI:生命週期 + **settings / api features / queue / ddos / keys / docs / chats / stats / models / admin sessions**(與 Admin 對齊,見下方 CLI 表)
31
+ - **API features**(Admin 分 tab + `gctoac api features`):協議與 Grok 能力閘(tools / vision / schema / effort…)
32
+
33
+ ### Grok CLI 能力對齊(產品「100%」定義)
34
+
35
+ | 能力 | Chat | Responses | Anthropic Messages | Admin 開關 |
36
+ |------|:----:|:---------:|:------------------:|------------|
37
+ | 文字 + stream | ✅ | ✅ | ✅ | 協議開關 |
38
+ | Vision / 圖片 | ✅ | ✅ | ✅ | `vision` |
39
+ | Images `/v1/images/generations` + `/edits` | ✅ | — | — | `imagesApi` + agent key |
40
+ | Files `/v1/files` | ✅ | — | — | `filesOpenAiAlias` |
41
+ | Videos `/v1/videos`(async job) | ✅ mock | — | — | `videoApi` |
42
+ | Audio speech / transcriptions | ✅ mock 或 503 | — | — | `audioApi` + provider env |
43
+ | Tools | ✅ | ✅ | ✅(含 `tool_use`/`tool_result`) | `tools` |
44
+ | 回應 tool_calls | ✅* | 文字 | ✅ `tool_use` | `tools` |
45
+ | JSON schema | ✅ | ✅ | 可透傳 | `structuredOutput` |
46
+ | Reasoning effort | ✅ | ✅ | thinking→effort | `reasoningEffort` |
47
+ | Assistants-lite | — | — | — | `assistantsEmulation` |
48
+ | temperature 等採樣 | 接受† | 接受† | 接受† | `strictSampling` |
49
+
50
+ \* 視 Grok stream 是否發出 tool 事件。
51
+ † Grok CLI 無採樣旋鈕;`strictSampling` 可改為拒絕。
52
+ **不宣稱** 官方雲端 100%(embeddings / realtime 等需獨立後端)。
29
53
 
30
54
  ```text
31
55
  Client (OpenAI SDK / curl / Open WebUI)
@@ -33,11 +57,15 @@ Client (OpenAI SDK / curl / Open WebUI)
33
57
 
34
58
  Express Gateway :3847
35
59
  · 認證 · 限流 · safe/agent
60
+ · 入隊 ChatJob(AES-GCM payload)· SSE 以 gog.queue 佔位
36
61
  · 代理感知 Client IP · 自動封鎖
37
- · 加密稽核 · Admin /admin
62
+ · 加密稽核 · Admin /admin(佇列控制)
38
63
  · gctoac start | stop | status | update
39
64
 
40
65
 
66
+ 進程內 worker(租約 / 公平輪詢 / 併發)
67
+
68
+
41
69
  grok -p … (本機 Grok CLI)
42
70
  ```
43
71
 
@@ -67,16 +95,22 @@ gctoac start # http://127.0.0.1:3847
67
95
  gctoac status # runner、port、proxy、health
68
96
  ```
69
97
 
70
- 開啟 Admin(貼上 **admin API key**):
98
+ 開啟 Admin(OTP 登入 — **不會**在瀏覽器長期保存 API key):
99
+
100
+ ```bash
101
+ gctoac admin otp # 產生一次性登入碼(5 分鐘、單次使用)
102
+ ```
71
103
 
72
104
  ```text
73
105
  http://127.0.0.1:3847/admin/
74
106
  ```
75
107
 
76
- 若遺失 setup 時的 key:
108
+ 在登入頁貼上 OTP。**每次登入都要新碼**(session 12 小時)。
109
+
110
+ **API** 存取(OpenAI client/腳本)請用 `gk_live_…` key:
77
111
 
78
112
  ```bash
79
- gctoac key create # 明文只顯示一次
113
+ gctoac key create # 明文只顯示一次(預設 role: admin)
80
114
  gctoac key list # 只顯示 prefix(明文不會存庫)
81
115
  ```
82
116
 
@@ -174,38 +208,89 @@ PORT=4000
174
208
 
175
209
  ## CLI(`gctoac` / `gcoa`)
176
210
 
177
- 全域選項:`--home <path>`、`--port <n>`(預設 **3847**)。
211
+ 全域選項:`--home <path>`、`--port <n>`(預設 **3847**)、`--json`(支援的指令輸出 JSON)。
212
+
213
+ 多數控制指令**直連本機 DB**(與 gateway 同一 `DATABASE_URL`),政策類變更約 **2–5 秒**內被執行中進程重載,**無需重啟**。
214
+
215
+ ### 生命週期與維運
178
216
 
179
217
  | 指令 | 說明 |
180
218
  |------|------|
181
219
  | `gctoac setup` | 建目錄、`.env`、migrate、seed admin key,盡量安裝 pm2 |
182
- | `gctoac start` | 背景啟動 gateway(detached gctoac) |
183
- | `gctoac start -f` | 前景啟動 |
184
- | `gctoac start --pm2` | PM2 啟動 |
185
- | `gctoac stop` | 停止 gctoac + PM2 app + 清 port 佔用 |
186
- | `gctoac restart` | 重啟;跟從 **preferred runner**(上次用 PM2 則用 PM2) |
187
- | `gctoac restart --pm2` | 強制用 PM2 重啟 |
188
- | `gctoac status` | Runner、NODE_ENV、port、trust proxy/IP 來源、health |
189
- | `gctoac doctor` | 全面檢查(代理、雙 runner、port 衝突、log 大小) |
190
- | `gctoac logs` / `logs show` | 查看 pm2 + gctoac 日誌 |
191
- | `gctoac logs clear` | 清空日誌(與 Admin 清除一致) |
192
- | `gctoac admin status` | Admin 面板開關狀態 |
193
- | `gctoac admin on` / `off` | 開關 Admin(DB;**只能用 CLI `on` 重開**) |
194
- | `gctoac migrate` | Prisma migrate deploy |
195
- | `gctoac seed` | 產生 admin API key(若未有) |
196
- | `gctoac key` / `key create` | 建立 API key(明文只顯示一次) |
197
- | `gctoac key list` | 列出 keys(只有 prefix) |
198
- | `gctoac key revoke <id>` | 撤銷 key |
199
- | `gctoac update` | 自我更新後重啟 |
200
- | `gctoac update --check` | 只檢查有無新版本 |
201
- | `gctoac update --no-restart` | 更新但不重啟 |
202
- | `gctoac open` | 印出 API / Admin URL |
203
- | `gctoac version` | 顯示版本 |
220
+ | `gctoac start` / `start -f` / `start --pm2` | 啟動 gateway |
221
+ | `gctoac stop` / `restart` | 停止/重啟 |
222
+ | `gctoac status` | Runner、port、proxy、health |
223
+ | `gctoac doctor` | 環境全面檢查 |
224
+ | `gctoac logs` / `logs clear` | 日誌 |
225
+ | `gctoac migrate` / `seed` | DB migrate/seed |
226
+ | `gctoac update` / `update --check` | 自我更新 |
227
+ | `gctoac open` / `version` | URL/版本 |
228
+
229
+ ### Admin 登入與面板
230
+
231
+ | 指令 | 說明 |
232
+ |------|------|
233
+ | `gctoac admin status` / `on` / `off` | 面板開關(**只能用 CLI `on` 重開**) |
234
+ | `gctoac admin otp` | 一次性 SPA 登入碼(5 分鐘、單次) |
235
+ | `gctoac admin sessions` | 列出有效 OTP session |
236
+ | `gctoac admin sessions revoke <id\|all\|all-expired>` | 撤銷 session |
237
+
238
+ ### 金鑰
239
+
240
+ | 指令 | 說明 |
241
+ |------|------|
242
+ | `gctoac key create` / `list` / `show <id>` | 建立/列表/詳情 |
243
+ | `gctoac key update <id> --name … --mode safe\|agent --rate-limit n --active on\|off` | 更新 |
244
+ | `gctoac key revoke <id>` / `activate <id>` | 撤銷/重新啟用 |
245
+
246
+ ### 安全設定(Safety)
247
+
248
+ | 指令 | 說明 |
249
+ |------|------|
250
+ | `gctoac settings` / `settings get` | 顯示全域 safe、tools、turns、timeout、model |
251
+ | `gctoac settings set --global-safe on\|off --tools none\|readonly --max-turns n --timeout-ms n --default-model …` | 寫入 |
252
+ | `gctoac settings preset local\|prod\|code\|read\|chat\|long` | 套用建議預設並儲存 |
253
+
254
+ ### 對話佇列
255
+
256
+ | 指令 | 說明 |
257
+ |------|------|
258
+ | `gctoac queue` / `queue stats` | 深度與各狀態計數 |
259
+ | `gctoac queue policy get\|set\|preset relaxed\|balanced\|strict` | 政策 |
260
+ | `gctoac queue pause` / `resume` / `drain` / `undrain` | 暫停/恢復/排空 |
261
+ | `gctoac queue jobs` / `queue job <id>` | 列表/詳情 |
262
+ | `gctoac queue cancel\|requeue\|priority <id> …` | 作業操作 |
263
+ | `gctoac queue purge-dead --yes` | 清死信/失敗/取消 |
264
+
265
+ ### DDoS/黑名單
266
+
267
+ | 指令 | 說明 |
268
+ |------|------|
269
+ | `gctoac ddos` | 政策摘要 + 黑名單 |
270
+ | `gctoac ddos policy get\|set\|preset\|reset` | 政策 |
271
+ | `gctoac ddos ban <ip> [--ttl 3600] [--reason …]` | 封鎖 |
272
+ | `gctoac ddos unban <ip>` / `blacklist` | 解封/列表 |
273
+
274
+ ### 觀測與資料
275
+
276
+ | 指令 | 說明 |
277
+ |------|------|
278
+ | `gctoac stats` | 儀表板式摘要 |
279
+ | `gctoac models [--refresh]` | 本機 Grok 模型列表 |
280
+ | `gctoac docs list\|show\|delete` | 文件(delete 需 `--yes`) |
281
+ | `gctoac chats list\|show` | API 對話請求(meta) |
282
+ | `gctoac conversations list\|delete` | Playground 線程 |
283
+ | `gctoac audit list [--action …]` | 稽核日誌 |
204
284
 
205
285
  ```bash
206
286
  gctoac --home ~/.gctoac-alt setup
207
287
  gctoac --port 3847 start
208
288
  gctoac status
289
+ gctoac admin otp
290
+ gctoac settings preset prod
291
+ gctoac queue pause
292
+ gctoac ddos ban 203.0.113.10 --ttl 3600 --reason abuse
293
+ gctoac stats --json
209
294
  gctoac logs clear
210
295
  ```
211
296
 
@@ -215,16 +300,20 @@ gctoac logs clear
215
300
 
216
301
  | 功能 | 說明 |
217
302
  |------|------|
218
- | OpenAI API | `POST /v1/chat/completions`(stream / 非 stream)、`GET /v1/models` |
303
+ | OpenAI API | `POST /v1/chat/completions`、`POST /v1/responses`(文字)、`GET /v1/models` |
304
+ | Anthropic API | `POST /v1/messages`(Bearer 或 `x-api-key`) |
219
305
  | Thinking | `reasoning_content` + Grok `thought` + `grok.*` |
220
306
  | 文件 | 類型嗅探上傳、加密儲存(DB 或檔案系統)、下載 |
221
307
  | Safe / Agent | 每 key 政策;可全域強制 safe |
222
308
  | 加密 | AES-256-GCM 加密 prompt、response、檔案 |
223
309
  | 對話歷史 | 多輪對話、上下文模式(full / summary / recent) |
224
- | Admin Panel | 儀表板、對話、金鑰、文件、稽核、用量、DDoS、PM2、系統 |
225
- | DDoS 中心 | 即時連線、黑名單、自動封鎖、可配置策略與預設檔 |
310
+ | Admin Panel | OTP session 登入;**分 tab** 頁面(佇列/媒體/系統/PM2/DDoS/API 能力);精簡 EN/繁中文案 |
311
+ | 媒體庫 | 工作室(生成/編輯/影片)、資產與工作、多格式預覽 lightbox(`blob:` CSP 安全) |
312
+ | 對話佇列 | 持久化 SQLite 工作、公平輪詢、暫停/排空、死信、Idempotency-Key、`QUEUE_BACKEND`、離線串流 fallback |
313
+ | DDoS 中心 | 即時連線、黑名單、自動封鎖、可配置策略與預設檔(分 tab) |
226
314
  | 反向代理 | 信任層數 + CF / nginx / X-Forwarded-For 真實 IP |
227
- | CLI | 生命週期、preferred runner、日誌、自我更新 |
315
+ | 認證 | API key:**scrypt** hash(舊 SHA-256 登入時自動升級);Admin SPA:OTP → session |
316
+ | CLI | 生命週期、preferred runner、日誌、自我更新、`admin otp` |
228
317
  | 運維 | SQLite、PM2、日誌自動裁剪(>5 MB)、GitHub Actions CI |
229
318
 
230
319
  ---
@@ -239,10 +328,13 @@ Authorization: Bearer gk_live_...
239
328
 
240
329
  ### Chat(stream)
241
330
 
331
+ 佇列啟用時(預設),stream 可能先出現 `gog.queue` 排隊事件,再是一般 OpenAI chunk。
332
+
242
333
  ```bash
243
334
  curl -sN http://127.0.0.1:3847/v1/chat/completions \
244
335
  -H "Authorization: Bearer $API_KEY" \
245
336
  -H "Content-Type: application/json" \
337
+ -H "Idempotency-Key: my-client-req-001" \
246
338
  -d '{
247
339
  "model": "grok-4.5",
248
340
  "stream": true,
@@ -251,6 +343,8 @@ curl -sN http://127.0.0.1:3847/v1/chat/completions \
251
343
  }'
252
344
  ```
253
345
 
346
+ `Idempotency-Key` 可選(依 API key 隔離)。同一 key 在 job 進行中可安全重試。
347
+
254
348
  ### OpenAI SDK
255
349
 
256
350
  ```ts
@@ -297,6 +391,42 @@ console.log(res.choices[0].message.content);
297
391
  | `text` | `content` / `delta.content` | — |
298
392
  | `end` | `finish_reason` | `grok.sessionId`、`grok.stopReason` |
299
393
 
394
+ ### 持久化對話佇列
395
+
396
+ 佇列政策**啟用**時(預設),每個 `POST /v1/chat/completions` 會寫入 `ChatJob` 表,再由進程內 worker 以租約/心跳/開機回收語意消費。
397
+
398
+ | 主題 | 行為 |
399
+ |------|------|
400
+ | **語意** | At-least-once;claim 時 visibility timeout(lease);重啟回收 in-flight |
401
+ | **公平** | 預設依 API key **加權輪詢**,或全域 FIFO;每 key + 全域併發上限 |
402
+ | **Stream** | 連線保持;先收到 `object: "gog.queue"` 排隊事件,再是一般 OpenAI chunk |
403
+ | **背壓** | `maxQueueDepth` / `maxQueueDepthPerKey` → **429** `queue_full`;drain/停用 → **503** `queue_draining`;等待逾時 → **504**;取消 → **409** |
404
+ | **冪等** | 可選 `Idempotency-Key`(依 API key 隔離)。進行中重用;成功回 already-done;失敗/死信/取消後可重試 |
405
+ | **後端** | `QUEUE_BACKEND=sqlite`(預設、可上線)。`redis`/`kafka` 預留給多機(尚未實作 — 選用會啟動失敗) |
406
+ | **Payload** | Job 內容以 AES-GCM 加密存於 `ChatJob` |
407
+ | **Admin** | **佇列**頁:KPI、暫停/排空、政策、狀態篩選(含死信/`active`)、取消/重新入隊/優先級/清理已完成(24h+) |
408
+
409
+ Stream 預覽:
410
+
411
+ ```text
412
+ data: {"object":"gog.queue","status":"queued","job_id":"…","position":2}
413
+ data: {"object":"gog.queue","status":"queued","job_id":"…","position":1}
414
+ data: {"id":"chatcmpl-…","object":"chat.completion.chunk",…}
415
+ ```
416
+
417
+ Admin 操作(OTP **session** token 或 admin API key):
418
+
419
+ ```http
420
+ GET /admin/api/queue/stats
421
+ GET /admin/api/queue/jobs?status=dead
422
+ GET /admin/api/queue/jobs?status=active
423
+ POST /admin/api/queue/pause | /resume | /drain | /undrain
424
+ PUT /admin/api/queue/policy
425
+ POST /admin/api/queue/jobs/:id/cancel | /requeue
426
+ POST /admin/api/queue/jobs/:id/priority # body: {"priority":0-1000}
427
+ POST /admin/api/queue/purge-dead
428
+ ```
429
+
300
430
  ### 端點
301
431
 
302
432
  | Method | Path | 說明 |
@@ -304,11 +434,15 @@ console.log(res.choices[0].message.content);
304
434
  | GET | `/health` | 存活 |
305
435
  | GET | `/ready` | DB + Grok 檢查 |
306
436
  | GET | `/v1/models` | 模型列表 |
307
- | POST | `/v1/chat/completions` | 對話 |
437
+ | POST | `/v1/chat/completions` | OpenAI Chat(佇列;可選 `Idempotency-Key`) |
438
+ | POST | `/v1/responses` | OpenAI Responses 文字子集 |
439
+ | POST | `/v1/messages` | Anthropic Messages(Bearer 或 `x-api-key`) |
308
440
  | POST | `/v1/documents` | 上傳(欄位 `file`) |
309
441
  | GET/DELETE | `/v1/documents`… | 列表 / 軟刪除 |
310
442
  | POST/GET/DELETE | `/v1/api-keys`… | Admin 管理 key |
311
- | * | `/admin/api/*` | Admin JSON API(需 `role=admin`) |
443
+ | POST | `/admin/api/auth/login` | OTP session token(公開,有限流) |
444
+ | POST | `/admin/api/auth/logout` | 撤銷 session |
445
+ | * | `/admin/api/*` | Admin JSON API(OTP session **或** `role=admin` API key) |
312
446
 
313
447
  ---
314
448
 
@@ -331,21 +465,41 @@ console.log(res.choices[0].message.content);
331
465
  http://127.0.0.1:3847/admin/
332
466
  ```
333
467
 
468
+ ### 登入(OTP)
469
+
470
+ Admin **SPA 不會接受長期 API key**。請產生一次性登入碼:
471
+
472
+ ```bash
473
+ gctoac admin otp # 別名:gctoac admin login-code
474
+ ```
475
+
476
+ - 有效 **5 分鐘**、**單次使用**
477
+ - Session token 存於 `sessionStorage`(約 **12 小時**)
478
+ - 登出/逾時/換瀏覽器後需重新取碼
479
+
480
+ Admin **JSON API**(`/admin/api/*`)可用:
481
+
482
+ - `Authorization: Bearer gog_sess_…`(OTP session),或
483
+ - `Authorization: Bearer gk_live_…`(`role=admin`)
484
+
334
485
  | 頁面 | 功能 |
335
486
  |------|------|
336
- | **儀表板** | 24h KPI、成功率、防護摘要、模型用量、運行狀態(port/加密) |
337
- | **對話** | 多輪 playground、歷史、上下文模式、附件 |
487
+ | **儀表板** | 24h KPI、成功率、**佇列深度**、防護摘要、模型用量、運行狀態(port/加密) |
488
+ | **對話** | 多輪 playground、歷史、上下文模式、附件(佇列啟用時同樣先入隊) |
338
489
  | **對話記錄** | 搜尋/篩選/分頁;**完整解密** prompt/reasoning/response |
339
490
  | **API 金鑰** | 建立/編輯 mode/role/限流/IP 白名單;撤銷 |
340
491
  | **文件** | 搜尋/篩選/分頁;預覽、下載、刪除;DB 與檔案系統儲存 |
341
492
  | **稽核日誌** | 搜尋/篩選/分頁;可讀動作標籤 |
342
493
  | **用量與防護** | 24h 統計、按模型/按金鑰分 tab、限流摘要 |
343
- | **DDoS 中心** | 即時連線、黑名單、自動封鎖事件、**可配置防護策略**(寬鬆/均衡/嚴格/自訂)、反向代理 IP |
344
- | **安全設定** | 全域 safe、tools、timeout |
345
- | **PM2** | Runner 切換(gctoac PM2)、**監聽連接埠**(預設 3847)、設定、**清除日誌** + 自動裁剪 |
346
- | **系統狀態** | 健康、軟體檢查、一鍵更新並重啟 |
494
+ | **媒體庫** | **分 tab:** 工作室 · 資產 · 工作。KPI 條。工作室模式:生成/編輯/圖生影片(Grok 長寬比)。素材庫選取 + 拖放來源。預覽 lightbox(圖/片/聲/PDF/文字) |
495
+ | **佇列** | **分 tab:** 總覽 · 工作列表 · 政策。KPI 條(自動 soft-refresh)。暫停/排空、死信篩選、取消/重新入隊/優先級/清理、併發與公平預設 |
496
+ | **DDoS 中心** | **分 tab:** 政策 · 流量 · 黑名單 · 事件。KPI 條。即時連線、最近請求、自動封鎖事件、熱門 IP、**運行時防護策略**(寬鬆/均衡/嚴格/自訂)、反向代理 IP |
497
+ | **安全設定** | 全域 safe、工具/turns/timeout、預設模型、精簡預設方案、關閉 Admin 面板(只能用 CLI 重開) |
498
+ | **API 能力** | **分 tab:** 協議 · 媒體 · 能力 · 模擬。KPI 啟用計數。預設:開放/鎖定/開發 |
499
+ | **PM2** | **分 tab:** 運行方式 · 連接埠 · 設定 · 日誌。KPI 進程條。Runner 切換(gctoac ↔ PM2)、監聽 port(預設 3847)、設定、清除日誌 + 自動裁剪 |
500
+ | **系統狀態** | **分 tab:** 軟件 · 套件 · 環境。KPI 運行條(DB/Grok CLI/併發/加密)。一鍵更新並重啟 |
347
501
 
348
- Admin API 前綴:`/admin/api/*`(需要 `role=admin`)。
502
+ Admin 共用 UX:分段 tab + 頂部 KPI 卡片、精簡正式 EN/繁中文案、table 操作按鈕置中;僅需運維刷新的頁面保留右上角 **重新整理**(儀表板/用量/DDoS/PM2)。
349
503
 
350
504
  ### DDoS/防濫用(運行時)
351
505
 
@@ -394,14 +548,19 @@ proxy_set_header X-Forwarded-Proto $scheme;
394
548
  |------|------|
395
549
  | `NODE_ENV` | 預設 **`production`**。本機開發才設 `development`(美化日誌) |
396
550
  | `PORT` | 預設 **`3847`**(亦可在 Admin → PM2 修改) |
551
+ | `HOST` | 監聽位址(預設 `0.0.0.0`) |
397
552
  | `DATABASE_URL` | SQLite,例如 `file:../data/gateway.db`(相對 `prisma/`) |
398
553
  | `ENCRYPTION_KEY` | 32-byte key:`openssl rand -base64 32` |
554
+ | `ADMIN_BOOTSTRAP_KEY` | 可選;首次 setup 用此字串作 admin key |
399
555
  | `GROK_BIN` | 預設 `grok` |
400
556
  | `GROK_DEFAULT_MODEL` | 預設模型 |
401
557
  | `GROK_DEFAULT_CWD` / `GROK_CWD_ALLOWLIST` | Agent cwd 政策 |
558
+ | `GROK_TIMEOUT_MS` | Agent 預設 timeout(ms) |
402
559
  | `GROK_ALWAYS_APPROVE` | 只對 agent;safe 一律關閉 |
403
560
  | `GROK_SAFE_MODE` | 強制全部 key 用 safe |
404
- | `GROK_MAX_CONCURRENT` | 最多並行 Grok 進程 |
561
+ | `GROK_SAFE_MAX_TURNS` / `GROK_SAFE_TIMEOUT_MS` | Safe 模式預設(亦可在 Admin → 安全設定改) |
562
+ | `GROK_MAX_CONCURRENT` | 最多並行 Grok 進程(亦作佇列全域併發預設種子) |
563
+ | `QUEUE_BACKEND` | 對話佇列後端:**`sqlite`**(預設)。`redis`/`kafka` 預留(尚未實作) |
405
564
  | `ADMIN_PANEL_ENABLED` | 硬關 `/admin`(env,需重啟)。運行時:`gctoac admin on\|off` |
406
565
  | `PM2_ADMIN_ENABLED` | 允許 Admin 控制 PM2 |
407
566
  | `CORS_ORIGINS` | 逗號分隔 origins(改 `PORT` 時請一併更新) |
@@ -411,9 +570,13 @@ proxy_set_header X-Forwarded-Proto $scheme;
411
570
  | `GCTOAC_HOME` | CLI 資料目錄(預設 `~/.gctoac`) |
412
571
  | `STORAGE_DIR` | 加密大檔 + sandbox |
413
572
  | `UPLOAD_MAX_BYTES` / `DOCUMENT_DB_MAX_BYTES` | 上傳上限/DB 與檔案系統分界 |
573
+ | `BODY_LIMIT` | JSON body 大小上限(預設 `1mb`) |
574
+ | `LOG_LEVEL` | `fatal` \| `error` \| `warn` \| `info` \| `debug` \| `trace` |
414
575
 
415
576
  **請備份 `ENCRYPTION_KEY`。** 遺失後歷史資料無法解密。
416
577
 
578
+ 運行時佇列政策(併發、公平、暫停/排空、深度)存於 DB(`queue_policy`),在 **Admin → 佇列** 編輯 — 不只靠 env。
579
+
417
580
  ---
418
581
 
419
582
  ## 生產環境
@@ -459,12 +622,13 @@ gctoac doctor # 會標示 mixed runners
459
622
  ## 專案結構
460
623
 
461
624
  ```text
462
- src/ TypeScript 原始碼(app、routes、services、cli)
463
- public/admin/ Admin SPA
464
- prisma/ Schema、migrations、seed
465
- dist/ 編譯後 JS(gitignore;npm run build / prepublishOnly 產生)
466
- scripts/ prepare、install.sh
467
- tests/ Vitest
625
+ src/ TypeScript 原始碼(app、routes、services、cli)
626
+ src/services/queue/ 持久化對話佇列(政策、ChatJob、worker、backend 介面)
627
+ public/admin/ Admin SPA(OTP 登入 + 各頁)
628
+ prisma/ Schema、migrations(含 chat_jobs)、seed
629
+ dist/ 編譯後 JS(gitignore;npm run build / prepublishOnly 產生)
630
+ scripts/ prepare、install.sh
631
+ tests/ Vitest(單元 + 整合)
468
632
  ```
469
633
 
470
634
  ---
@@ -493,14 +657,15 @@ npm publish --access public --otp=<2FA六位碼>
493
657
 
494
658
  ## 安全注意
495
659
 
496
- - API key 只存 **SHA-256 hash**
497
- - Chat prompt/response 與文件以 **AES-256-GCM** 靜態加密
660
+ - API key **scrypt** hash(`scrypt$salt$hash`);舊 **SHA-256** 列在驗證時會自動升級
661
+ - Chat prompt/response、文件與 **佇列 job payload** 以 **AES-256-GCM** 靜態加密
498
662
  - 對外 client 請用 **`safe`** mode
663
+ - **Admin SPA:** 只用 OTP(`gctoac admin otp`)→ 短時 session 存 `sessionStorage`(XSS = 在 session 有效期內完全接管)
499
664
  - **客戶端 IP:** 只有 **可信代理列表** 內的 TCP peer(預設 `127.0.0.1`)先會採信 `CF-Connecting-IP`/`X-Real-IP`/`XFF`。直連客戶**無法偽造 header** 繞過限流或 ban 他人。遠端 nginx 請把其 IP 加進 Admin → DDoS → 可信代理。
500
- - Admin 只應開喺本機/VPN;admin key 存 `sessionStorage`(XSS = 完全接管)
501
- - 不要 commit `.env`,不要外洩 admin key
665
+ - Admin 只應開喺本機/VPN
666
+ - 不要 commit `.env`,不要外洩 admin key/OTP
502
667
  - 可完全關閉 Admin:`gctoac admin off`(只能用 `gctoac admin on` 重開)
503
- - 一鍵更新/PM2/改 port 需 admin(視 admin key 為 root)
668
+ - 一鍵更新/PM2/改 port 需 admin(視 admin key/OTP session 為 root)
504
669
 
505
670
  ---
506
671