@otto-assistant/bridge 0.4.92

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 (483) hide show
  1. package/bin.js +2 -0
  2. package/dist/agent-model.e2e.test.js +755 -0
  3. package/dist/ai-tool-to-genai.js +233 -0
  4. package/dist/ai-tool-to-genai.test.js +267 -0
  5. package/dist/ai-tool.js +6 -0
  6. package/dist/anthropic-auth-plugin.js +728 -0
  7. package/dist/anthropic-auth-plugin.test.js +125 -0
  8. package/dist/anthropic-auth-state.js +231 -0
  9. package/dist/bin.js +90 -0
  10. package/dist/channel-management.js +227 -0
  11. package/dist/cli-parsing.test.js +137 -0
  12. package/dist/cli-send-thread.e2e.test.js +356 -0
  13. package/dist/cli.js +3276 -0
  14. package/dist/commands/abort.js +65 -0
  15. package/dist/commands/action-buttons.js +245 -0
  16. package/dist/commands/add-project.js +113 -0
  17. package/dist/commands/agent.js +335 -0
  18. package/dist/commands/ask-question.js +274 -0
  19. package/dist/commands/btw.js +116 -0
  20. package/dist/commands/compact.js +120 -0
  21. package/dist/commands/context-usage.js +140 -0
  22. package/dist/commands/create-new-project.js +130 -0
  23. package/dist/commands/diff.js +63 -0
  24. package/dist/commands/file-upload.js +275 -0
  25. package/dist/commands/fork.js +220 -0
  26. package/dist/commands/gemini-apikey.js +70 -0
  27. package/dist/commands/login.js +885 -0
  28. package/dist/commands/mcp.js +239 -0
  29. package/dist/commands/memory-snapshot.js +24 -0
  30. package/dist/commands/mention-mode.js +44 -0
  31. package/dist/commands/merge-worktree.js +159 -0
  32. package/dist/commands/model-variant.js +364 -0
  33. package/dist/commands/model.js +776 -0
  34. package/dist/commands/new-worktree.js +366 -0
  35. package/dist/commands/paginated-select.js +57 -0
  36. package/dist/commands/permissions.js +274 -0
  37. package/dist/commands/queue.js +206 -0
  38. package/dist/commands/remove-project.js +115 -0
  39. package/dist/commands/restart-opencode-server.js +127 -0
  40. package/dist/commands/resume.js +149 -0
  41. package/dist/commands/run-command.js +79 -0
  42. package/dist/commands/screenshare.js +303 -0
  43. package/dist/commands/screenshare.test.js +20 -0
  44. package/dist/commands/session-id.js +78 -0
  45. package/dist/commands/session.js +176 -0
  46. package/dist/commands/share.js +80 -0
  47. package/dist/commands/tasks.js +205 -0
  48. package/dist/commands/types.js +2 -0
  49. package/dist/commands/undo-redo.js +305 -0
  50. package/dist/commands/unset-model.js +138 -0
  51. package/dist/commands/upgrade.js +42 -0
  52. package/dist/commands/user-command.js +155 -0
  53. package/dist/commands/verbosity.js +125 -0
  54. package/dist/commands/worktree-settings.js +43 -0
  55. package/dist/commands/worktrees.js +410 -0
  56. package/dist/condense-memory.js +33 -0
  57. package/dist/config.js +94 -0
  58. package/dist/context-awareness-plugin.js +363 -0
  59. package/dist/context-awareness-plugin.test.js +124 -0
  60. package/dist/critique-utils.js +95 -0
  61. package/dist/database.js +1310 -0
  62. package/dist/db.js +251 -0
  63. package/dist/db.test.js +138 -0
  64. package/dist/debounce-timeout.js +28 -0
  65. package/dist/debounced-process-flush.js +77 -0
  66. package/dist/discord-bot.js +1008 -0
  67. package/dist/discord-command-registration.js +524 -0
  68. package/dist/discord-urls.js +81 -0
  69. package/dist/discord-utils.js +591 -0
  70. package/dist/discord-utils.test.js +134 -0
  71. package/dist/errors.js +157 -0
  72. package/dist/escape-backticks.test.js +429 -0
  73. package/dist/event-stream-real-capture.e2e.test.js +533 -0
  74. package/dist/eventsource-parser.test.js +327 -0
  75. package/dist/exec-async.js +26 -0
  76. package/dist/external-opencode-sync.js +480 -0
  77. package/dist/format-tables.js +302 -0
  78. package/dist/format-tables.test.js +308 -0
  79. package/dist/forum-sync/config.js +79 -0
  80. package/dist/forum-sync/discord-operations.js +154 -0
  81. package/dist/forum-sync/index.js +5 -0
  82. package/dist/forum-sync/markdown.js +113 -0
  83. package/dist/forum-sync/sync-to-discord.js +417 -0
  84. package/dist/forum-sync/sync-to-files.js +190 -0
  85. package/dist/forum-sync/types.js +53 -0
  86. package/dist/forum-sync/watchers.js +307 -0
  87. package/dist/gateway-proxy-reconnect.e2e.test.js +394 -0
  88. package/dist/gateway-proxy.e2e.test.js +483 -0
  89. package/dist/genai-worker-wrapper.js +111 -0
  90. package/dist/genai-worker.js +311 -0
  91. package/dist/genai.js +232 -0
  92. package/dist/generated/browser.js +17 -0
  93. package/dist/generated/client.js +37 -0
  94. package/dist/generated/commonInputTypes.js +10 -0
  95. package/dist/generated/enums.js +52 -0
  96. package/dist/generated/internal/class.js +49 -0
  97. package/dist/generated/internal/prismaNamespace.js +253 -0
  98. package/dist/generated/internal/prismaNamespaceBrowser.js +223 -0
  99. package/dist/generated/models/bot_api_keys.js +1 -0
  100. package/dist/generated/models/bot_tokens.js +1 -0
  101. package/dist/generated/models/channel_agents.js +1 -0
  102. package/dist/generated/models/channel_directories.js +1 -0
  103. package/dist/generated/models/channel_mention_mode.js +1 -0
  104. package/dist/generated/models/channel_models.js +1 -0
  105. package/dist/generated/models/channel_verbosity.js +1 -0
  106. package/dist/generated/models/channel_worktrees.js +1 -0
  107. package/dist/generated/models/forum_sync_configs.js +1 -0
  108. package/dist/generated/models/global_models.js +1 -0
  109. package/dist/generated/models/ipc_requests.js +1 -0
  110. package/dist/generated/models/part_messages.js +1 -0
  111. package/dist/generated/models/scheduled_tasks.js +1 -0
  112. package/dist/generated/models/session_agents.js +1 -0
  113. package/dist/generated/models/session_events.js +1 -0
  114. package/dist/generated/models/session_models.js +1 -0
  115. package/dist/generated/models/session_start_sources.js +1 -0
  116. package/dist/generated/models/thread_sessions.js +1 -0
  117. package/dist/generated/models/thread_worktrees.js +1 -0
  118. package/dist/generated/models.js +1 -0
  119. package/dist/heap-monitor.js +122 -0
  120. package/dist/hrana-server.js +263 -0
  121. package/dist/hrana-server.test.js +370 -0
  122. package/dist/html-actions.js +123 -0
  123. package/dist/html-actions.test.js +70 -0
  124. package/dist/html-components.js +117 -0
  125. package/dist/html-components.test.js +34 -0
  126. package/dist/image-optimizer-plugin.js +153 -0
  127. package/dist/image-utils.js +112 -0
  128. package/dist/interaction-handler.js +397 -0
  129. package/dist/ipc-polling.js +252 -0
  130. package/dist/ipc-tools-plugin.js +193 -0
  131. package/dist/kimaki-digital-twin.e2e.test.js +161 -0
  132. package/dist/kimaki-opencode-plugin-loading.e2e.test.js +87 -0
  133. package/dist/kimaki-opencode-plugin.js +17 -0
  134. package/dist/kimaki-opencode-plugin.test.js +98 -0
  135. package/dist/limit-heading-depth.js +25 -0
  136. package/dist/limit-heading-depth.test.js +105 -0
  137. package/dist/logger.js +165 -0
  138. package/dist/markdown.js +342 -0
  139. package/dist/markdown.test.js +257 -0
  140. package/dist/message-finish-field.e2e.test.js +165 -0
  141. package/dist/message-formatting.js +413 -0
  142. package/dist/message-formatting.test.js +73 -0
  143. package/dist/message-preprocessing.js +330 -0
  144. package/dist/onboarding-tutorial.js +172 -0
  145. package/dist/onboarding-welcome.js +37 -0
  146. package/dist/openai-realtime.js +224 -0
  147. package/dist/opencode-command-detection.js +65 -0
  148. package/dist/opencode-command-detection.test.js +240 -0
  149. package/dist/opencode-command.js +129 -0
  150. package/dist/opencode-command.test.js +48 -0
  151. package/dist/opencode-interrupt-plugin.js +361 -0
  152. package/dist/opencode-interrupt-plugin.test.js +458 -0
  153. package/dist/opencode.js +861 -0
  154. package/dist/otto/branding.js +22 -0
  155. package/dist/otto/index.js +21 -0
  156. package/dist/parse-permission-rules.test.js +117 -0
  157. package/dist/patch-text-parser.js +97 -0
  158. package/dist/plugin-logger.js +59 -0
  159. package/dist/privacy-sanitizer.js +105 -0
  160. package/dist/queue-advanced-abort.e2e.test.js +293 -0
  161. package/dist/queue-advanced-action-buttons.e2e.test.js +206 -0
  162. package/dist/queue-advanced-e2e-setup.js +786 -0
  163. package/dist/queue-advanced-footer.e2e.test.js +472 -0
  164. package/dist/queue-advanced-model-switch.e2e.test.js +299 -0
  165. package/dist/queue-advanced-permissions-typing.e2e.test.js +180 -0
  166. package/dist/queue-advanced-question.e2e.test.js +261 -0
  167. package/dist/queue-advanced-typing-interrupt.e2e.test.js +114 -0
  168. package/dist/queue-advanced-typing.e2e.test.js +153 -0
  169. package/dist/queue-drain-after-interactive-ui.e2e.test.js +119 -0
  170. package/dist/queue-interrupt-drain.e2e.test.js +135 -0
  171. package/dist/queue-question-select-drain.e2e.test.js +120 -0
  172. package/dist/runtime-idle-sweeper.js +52 -0
  173. package/dist/runtime-lifecycle.e2e.test.js +508 -0
  174. package/dist/sentry.js +23 -0
  175. package/dist/session-handler/agent-utils.js +67 -0
  176. package/dist/session-handler/event-stream-state.js +420 -0
  177. package/dist/session-handler/event-stream-state.test.js +563 -0
  178. package/dist/session-handler/model-utils.js +124 -0
  179. package/dist/session-handler/opencode-session-event-log.js +94 -0
  180. package/dist/session-handler/thread-runtime-state.js +104 -0
  181. package/dist/session-handler/thread-session-runtime.js +3258 -0
  182. package/dist/session-handler.js +9 -0
  183. package/dist/session-search.js +100 -0
  184. package/dist/session-search.test.js +40 -0
  185. package/dist/session-title-rename.test.js +80 -0
  186. package/dist/startup-service.js +153 -0
  187. package/dist/startup-time.e2e.test.js +296 -0
  188. package/dist/store.js +17 -0
  189. package/dist/system-message.js +613 -0
  190. package/dist/system-message.test.js +602 -0
  191. package/dist/task-runner.js +295 -0
  192. package/dist/task-schedule.js +209 -0
  193. package/dist/task-schedule.test.js +71 -0
  194. package/dist/test-utils.js +299 -0
  195. package/dist/thinking-utils.js +35 -0
  196. package/dist/thread-message-queue.e2e.test.js +999 -0
  197. package/dist/tools.js +357 -0
  198. package/dist/undo-redo.e2e.test.js +161 -0
  199. package/dist/unnest-code-blocks.js +146 -0
  200. package/dist/unnest-code-blocks.test.js +673 -0
  201. package/dist/upgrade.js +114 -0
  202. package/dist/utils.js +144 -0
  203. package/dist/voice-attachment.js +34 -0
  204. package/dist/voice-handler.js +646 -0
  205. package/dist/voice-message.e2e.test.js +1021 -0
  206. package/dist/voice.js +447 -0
  207. package/dist/voice.test.js +235 -0
  208. package/dist/wait-session.js +94 -0
  209. package/dist/websockify.js +69 -0
  210. package/dist/worker-types.js +4 -0
  211. package/dist/worktree-lifecycle.e2e.test.js +308 -0
  212. package/dist/worktree-utils.js +3 -0
  213. package/dist/worktrees.js +929 -0
  214. package/dist/worktrees.test.js +189 -0
  215. package/dist/xml.js +92 -0
  216. package/dist/xml.test.js +32 -0
  217. package/package.json +98 -0
  218. package/schema.prisma +295 -0
  219. package/skills/batch/SKILL.md +87 -0
  220. package/skills/critique/SKILL.md +112 -0
  221. package/skills/egaki/SKILL.md +100 -0
  222. package/skills/errore/SKILL.md +647 -0
  223. package/skills/event-sourcing-state/SKILL.md +252 -0
  224. package/skills/gitchamber/SKILL.md +93 -0
  225. package/skills/goke/SKILL.md +644 -0
  226. package/skills/jitter/EDITOR.md +219 -0
  227. package/skills/jitter/EXPORT-INTERNALS.md +309 -0
  228. package/skills/jitter/SKILL.md +158 -0
  229. package/skills/jitter/jitter-clipboard.json +1042 -0
  230. package/skills/jitter/package.json +14 -0
  231. package/skills/jitter/tsconfig.json +15 -0
  232. package/skills/jitter/utils/actions.ts +212 -0
  233. package/skills/jitter/utils/export.ts +114 -0
  234. package/skills/jitter/utils/index.ts +141 -0
  235. package/skills/jitter/utils/snapshot.ts +154 -0
  236. package/skills/jitter/utils/traverse.ts +246 -0
  237. package/skills/jitter/utils/types.ts +279 -0
  238. package/skills/jitter/utils/wait.ts +133 -0
  239. package/skills/lintcn/SKILL.md +873 -0
  240. package/skills/new-skill/SKILL.md +211 -0
  241. package/skills/npm-package/SKILL.md +239 -0
  242. package/skills/playwriter/SKILL.md +35 -0
  243. package/skills/proxyman/SKILL.md +215 -0
  244. package/skills/security-review/SKILL.md +208 -0
  245. package/skills/simplify/SKILL.md +58 -0
  246. package/skills/spiceflow/SKILL.md +14 -0
  247. package/skills/termcast/SKILL.md +945 -0
  248. package/skills/tuistory/SKILL.md +250 -0
  249. package/skills/usecomputer/SKILL.md +264 -0
  250. package/skills/x-articles/SKILL.md +554 -0
  251. package/skills/zele/SKILL.md +112 -0
  252. package/skills/zustand-centralized-state/SKILL.md +1004 -0
  253. package/src/agent-model.e2e.test.ts +976 -0
  254. package/src/ai-tool-to-genai.test.ts +296 -0
  255. package/src/ai-tool-to-genai.ts +283 -0
  256. package/src/ai-tool.ts +39 -0
  257. package/src/anthropic-auth-plugin.test.ts +159 -0
  258. package/src/anthropic-auth-plugin.ts +861 -0
  259. package/src/anthropic-auth-state.ts +282 -0
  260. package/src/bin.ts +111 -0
  261. package/src/channel-management.ts +334 -0
  262. package/src/cli-parsing.test.ts +195 -0
  263. package/src/cli-send-thread.e2e.test.ts +464 -0
  264. package/src/cli.ts +4581 -0
  265. package/src/commands/abort.ts +89 -0
  266. package/src/commands/action-buttons.ts +364 -0
  267. package/src/commands/add-project.ts +149 -0
  268. package/src/commands/agent.ts +473 -0
  269. package/src/commands/ask-question.ts +390 -0
  270. package/src/commands/btw.ts +164 -0
  271. package/src/commands/compact.ts +157 -0
  272. package/src/commands/context-usage.ts +199 -0
  273. package/src/commands/create-new-project.ts +190 -0
  274. package/src/commands/diff.ts +91 -0
  275. package/src/commands/file-upload.ts +389 -0
  276. package/src/commands/fork.ts +321 -0
  277. package/src/commands/gemini-apikey.ts +104 -0
  278. package/src/commands/login.ts +1173 -0
  279. package/src/commands/mcp.ts +307 -0
  280. package/src/commands/memory-snapshot.ts +30 -0
  281. package/src/commands/mention-mode.ts +68 -0
  282. package/src/commands/merge-worktree.ts +223 -0
  283. package/src/commands/model-variant.ts +483 -0
  284. package/src/commands/model.ts +1053 -0
  285. package/src/commands/new-worktree.ts +510 -0
  286. package/src/commands/paginated-select.ts +81 -0
  287. package/src/commands/permissions.ts +397 -0
  288. package/src/commands/queue.ts +271 -0
  289. package/src/commands/remove-project.ts +155 -0
  290. package/src/commands/restart-opencode-server.ts +162 -0
  291. package/src/commands/resume.ts +230 -0
  292. package/src/commands/run-command.ts +123 -0
  293. package/src/commands/screenshare.test.ts +30 -0
  294. package/src/commands/screenshare.ts +366 -0
  295. package/src/commands/session-id.ts +109 -0
  296. package/src/commands/session.ts +227 -0
  297. package/src/commands/share.ts +106 -0
  298. package/src/commands/tasks.ts +293 -0
  299. package/src/commands/types.ts +25 -0
  300. package/src/commands/undo-redo.ts +386 -0
  301. package/src/commands/unset-model.ts +173 -0
  302. package/src/commands/upgrade.ts +52 -0
  303. package/src/commands/user-command.ts +198 -0
  304. package/src/commands/verbosity.ts +173 -0
  305. package/src/commands/worktree-settings.ts +70 -0
  306. package/src/commands/worktrees.ts +552 -0
  307. package/src/condense-memory.ts +36 -0
  308. package/src/config.ts +111 -0
  309. package/src/context-awareness-plugin.test.ts +142 -0
  310. package/src/context-awareness-plugin.ts +510 -0
  311. package/src/critique-utils.ts +139 -0
  312. package/src/database.ts +1876 -0
  313. package/src/db.test.ts +162 -0
  314. package/src/db.ts +286 -0
  315. package/src/debounce-timeout.ts +43 -0
  316. package/src/debounced-process-flush.ts +104 -0
  317. package/src/discord-bot.ts +1330 -0
  318. package/src/discord-command-registration.ts +693 -0
  319. package/src/discord-urls.ts +88 -0
  320. package/src/discord-utils.test.ts +153 -0
  321. package/src/discord-utils.ts +800 -0
  322. package/src/errors.ts +201 -0
  323. package/src/escape-backticks.test.ts +469 -0
  324. package/src/event-stream-real-capture.e2e.test.ts +692 -0
  325. package/src/eventsource-parser.test.ts +351 -0
  326. package/src/exec-async.ts +35 -0
  327. package/src/external-opencode-sync.ts +685 -0
  328. package/src/format-tables.test.ts +335 -0
  329. package/src/format-tables.ts +445 -0
  330. package/src/forum-sync/config.ts +92 -0
  331. package/src/forum-sync/discord-operations.ts +241 -0
  332. package/src/forum-sync/index.ts +9 -0
  333. package/src/forum-sync/markdown.ts +172 -0
  334. package/src/forum-sync/sync-to-discord.ts +595 -0
  335. package/src/forum-sync/sync-to-files.ts +294 -0
  336. package/src/forum-sync/types.ts +175 -0
  337. package/src/forum-sync/watchers.ts +454 -0
  338. package/src/gateway-proxy-reconnect.e2e.test.ts +523 -0
  339. package/src/gateway-proxy.e2e.test.ts +640 -0
  340. package/src/genai-worker-wrapper.ts +164 -0
  341. package/src/genai-worker.ts +386 -0
  342. package/src/genai.ts +321 -0
  343. package/src/generated/browser.ts +114 -0
  344. package/src/generated/client.ts +138 -0
  345. package/src/generated/commonInputTypes.ts +736 -0
  346. package/src/generated/enums.ts +88 -0
  347. package/src/generated/internal/class.ts +384 -0
  348. package/src/generated/internal/prismaNamespace.ts +2386 -0
  349. package/src/generated/internal/prismaNamespaceBrowser.ts +326 -0
  350. package/src/generated/models/bot_api_keys.ts +1288 -0
  351. package/src/generated/models/bot_tokens.ts +1656 -0
  352. package/src/generated/models/channel_agents.ts +1256 -0
  353. package/src/generated/models/channel_directories.ts +1859 -0
  354. package/src/generated/models/channel_mention_mode.ts +1300 -0
  355. package/src/generated/models/channel_models.ts +1288 -0
  356. package/src/generated/models/channel_verbosity.ts +1228 -0
  357. package/src/generated/models/channel_worktrees.ts +1300 -0
  358. package/src/generated/models/forum_sync_configs.ts +1452 -0
  359. package/src/generated/models/global_models.ts +1288 -0
  360. package/src/generated/models/ipc_requests.ts +1485 -0
  361. package/src/generated/models/part_messages.ts +1302 -0
  362. package/src/generated/models/scheduled_tasks.ts +2320 -0
  363. package/src/generated/models/session_agents.ts +1086 -0
  364. package/src/generated/models/session_events.ts +1439 -0
  365. package/src/generated/models/session_models.ts +1114 -0
  366. package/src/generated/models/session_start_sources.ts +1408 -0
  367. package/src/generated/models/thread_sessions.ts +1781 -0
  368. package/src/generated/models/thread_worktrees.ts +1356 -0
  369. package/src/generated/models.ts +30 -0
  370. package/src/heap-monitor.ts +152 -0
  371. package/src/hrana-server.test.ts +434 -0
  372. package/src/hrana-server.ts +314 -0
  373. package/src/html-actions.test.ts +87 -0
  374. package/src/html-actions.ts +174 -0
  375. package/src/html-components.test.ts +38 -0
  376. package/src/html-components.ts +181 -0
  377. package/src/image-optimizer-plugin.ts +194 -0
  378. package/src/image-utils.ts +149 -0
  379. package/src/interaction-handler.ts +576 -0
  380. package/src/ipc-polling.ts +326 -0
  381. package/src/ipc-tools-plugin.ts +236 -0
  382. package/src/kimaki-digital-twin.e2e.test.ts +199 -0
  383. package/src/kimaki-opencode-plugin-loading.e2e.test.ts +109 -0
  384. package/src/kimaki-opencode-plugin.test.ts +108 -0
  385. package/src/kimaki-opencode-plugin.ts +18 -0
  386. package/src/limit-heading-depth.test.ts +116 -0
  387. package/src/limit-heading-depth.ts +26 -0
  388. package/src/logger.ts +208 -0
  389. package/src/markdown.test.ts +308 -0
  390. package/src/markdown.ts +410 -0
  391. package/src/message-finish-field.e2e.test.ts +192 -0
  392. package/src/message-formatting.test.ts +81 -0
  393. package/src/message-formatting.ts +533 -0
  394. package/src/message-preprocessing.ts +455 -0
  395. package/src/onboarding-tutorial.ts +176 -0
  396. package/src/onboarding-welcome.ts +49 -0
  397. package/src/openai-realtime.ts +358 -0
  398. package/src/opencode-command-detection.test.ts +307 -0
  399. package/src/opencode-command-detection.ts +76 -0
  400. package/src/opencode-command.test.ts +70 -0
  401. package/src/opencode-command.ts +188 -0
  402. package/src/opencode-interrupt-plugin.test.ts +677 -0
  403. package/src/opencode-interrupt-plugin.ts +477 -0
  404. package/src/opencode.ts +1110 -0
  405. package/src/otto/branding.ts +23 -0
  406. package/src/otto/index.ts +22 -0
  407. package/src/parse-permission-rules.test.ts +127 -0
  408. package/src/patch-text-parser.ts +107 -0
  409. package/src/plugin-logger.ts +68 -0
  410. package/src/privacy-sanitizer.ts +142 -0
  411. package/src/queue-advanced-abort.e2e.test.ts +382 -0
  412. package/src/queue-advanced-action-buttons.e2e.test.ts +268 -0
  413. package/src/queue-advanced-e2e-setup.ts +873 -0
  414. package/src/queue-advanced-footer.e2e.test.ts +576 -0
  415. package/src/queue-advanced-model-switch.e2e.test.ts +383 -0
  416. package/src/queue-advanced-permissions-typing.e2e.test.ts +245 -0
  417. package/src/queue-advanced-question.e2e.test.ts +316 -0
  418. package/src/queue-advanced-typing-interrupt.e2e.test.ts +146 -0
  419. package/src/queue-advanced-typing.e2e.test.ts +199 -0
  420. package/src/queue-drain-after-interactive-ui.e2e.test.ts +151 -0
  421. package/src/queue-interrupt-drain.e2e.test.ts +166 -0
  422. package/src/queue-question-select-drain.e2e.test.ts +152 -0
  423. package/src/runtime-idle-sweeper.ts +76 -0
  424. package/src/runtime-lifecycle.e2e.test.ts +641 -0
  425. package/src/schema.sql +173 -0
  426. package/src/sentry.ts +26 -0
  427. package/src/session-handler/agent-utils.ts +97 -0
  428. package/src/session-handler/event-stream-fixtures/real-session-action-buttons.jsonl +45 -0
  429. package/src/session-handler/event-stream-fixtures/real-session-footer-suppressed-on-pre-idle-interrupt.jsonl +40 -0
  430. package/src/session-handler/event-stream-fixtures/real-session-permission-external-file.jsonl +23 -0
  431. package/src/session-handler/event-stream-fixtures/real-session-task-normal.jsonl +22 -0
  432. package/src/session-handler/event-stream-fixtures/real-session-task-three-parallel-sleeps.jsonl +277 -0
  433. package/src/session-handler/event-stream-fixtures/real-session-task-user-interruption.jsonl +46 -0
  434. package/src/session-handler/event-stream-fixtures/session-abort-after-idle-race.jsonl +21 -0
  435. package/src/session-handler/event-stream-fixtures/session-concurrent-messages-serialized.jsonl +56 -0
  436. package/src/session-handler/event-stream-fixtures/session-explicit-abort.jsonl +44 -0
  437. package/src/session-handler/event-stream-fixtures/session-normal-completion.jsonl +29 -0
  438. package/src/session-handler/event-stream-fixtures/session-tool-call-noisy-stream.jsonl +29 -0
  439. package/src/session-handler/event-stream-fixtures/session-two-completions-same-session.jsonl +50 -0
  440. package/src/session-handler/event-stream-fixtures/session-user-interruption.jsonl +59 -0
  441. package/src/session-handler/event-stream-fixtures/session-voice-queued-followup.jsonl +52 -0
  442. package/src/session-handler/event-stream-state.test.ts +645 -0
  443. package/src/session-handler/event-stream-state.ts +608 -0
  444. package/src/session-handler/model-utils.ts +183 -0
  445. package/src/session-handler/opencode-session-event-log.ts +130 -0
  446. package/src/session-handler/thread-runtime-state.ts +212 -0
  447. package/src/session-handler/thread-session-runtime.ts +4281 -0
  448. package/src/session-handler.ts +15 -0
  449. package/src/session-search.test.ts +50 -0
  450. package/src/session-search.ts +148 -0
  451. package/src/session-title-rename.test.ts +112 -0
  452. package/src/startup-service.ts +200 -0
  453. package/src/startup-time.e2e.test.ts +373 -0
  454. package/src/store.ts +122 -0
  455. package/src/system-message.test.ts +612 -0
  456. package/src/system-message.ts +723 -0
  457. package/src/task-runner.ts +421 -0
  458. package/src/task-schedule.test.ts +84 -0
  459. package/src/task-schedule.ts +311 -0
  460. package/src/test-utils.ts +435 -0
  461. package/src/thinking-utils.ts +61 -0
  462. package/src/thread-message-queue.e2e.test.ts +1219 -0
  463. package/src/tools.ts +430 -0
  464. package/src/undici.d.ts +12 -0
  465. package/src/undo-redo.e2e.test.ts +209 -0
  466. package/src/unnest-code-blocks.test.ts +713 -0
  467. package/src/unnest-code-blocks.ts +185 -0
  468. package/src/upgrade.ts +127 -0
  469. package/src/utils.ts +212 -0
  470. package/src/voice-attachment.ts +51 -0
  471. package/src/voice-handler.ts +908 -0
  472. package/src/voice-message.e2e.test.ts +1255 -0
  473. package/src/voice.test.ts +281 -0
  474. package/src/voice.ts +627 -0
  475. package/src/wait-session.ts +147 -0
  476. package/src/websockify.ts +101 -0
  477. package/src/worker-types.ts +64 -0
  478. package/src/worktree-lifecycle.e2e.test.ts +391 -0
  479. package/src/worktree-utils.ts +4 -0
  480. package/src/worktrees.test.ts +223 -0
  481. package/src/worktrees.ts +1294 -0
  482. package/src/xml.test.ts +38 -0
  483. package/src/xml.ts +121 -0
@@ -0,0 +1,1288 @@
1
+
2
+ /* !!! This is code generated by Prisma. Do not edit directly. !!! */
3
+ /* eslint-disable */
4
+ // biome-ignore-all lint: generated file
5
+ // @ts-nocheck
6
+ /*
7
+ * This file exports the `bot_api_keys` model and its related types.
8
+ *
9
+ * 🟢 You can import this file directly.
10
+ */
11
+ import type * as runtime from "@prisma/client/runtime/client"
12
+ import type * as $Enums from "../enums.js"
13
+ import type * as Prisma from "../internal/prismaNamespace.js"
14
+
15
+ /**
16
+ * Model bot_api_keys
17
+ *
18
+ */
19
+ export type bot_api_keysModel = runtime.Types.Result.DefaultSelection<Prisma.$bot_api_keysPayload>
20
+
21
+ export type AggregateBot_api_keys = {
22
+ _count: Bot_api_keysCountAggregateOutputType | null
23
+ _min: Bot_api_keysMinAggregateOutputType | null
24
+ _max: Bot_api_keysMaxAggregateOutputType | null
25
+ }
26
+
27
+ export type Bot_api_keysMinAggregateOutputType = {
28
+ app_id: string | null
29
+ gemini_api_key: string | null
30
+ openai_api_key: string | null
31
+ xai_api_key: string | null
32
+ created_at: Date | null
33
+ }
34
+
35
+ export type Bot_api_keysMaxAggregateOutputType = {
36
+ app_id: string | null
37
+ gemini_api_key: string | null
38
+ openai_api_key: string | null
39
+ xai_api_key: string | null
40
+ created_at: Date | null
41
+ }
42
+
43
+ export type Bot_api_keysCountAggregateOutputType = {
44
+ app_id: number
45
+ gemini_api_key: number
46
+ openai_api_key: number
47
+ xai_api_key: number
48
+ created_at: number
49
+ _all: number
50
+ }
51
+
52
+
53
+ export type Bot_api_keysMinAggregateInputType = {
54
+ app_id?: true
55
+ gemini_api_key?: true
56
+ openai_api_key?: true
57
+ xai_api_key?: true
58
+ created_at?: true
59
+ }
60
+
61
+ export type Bot_api_keysMaxAggregateInputType = {
62
+ app_id?: true
63
+ gemini_api_key?: true
64
+ openai_api_key?: true
65
+ xai_api_key?: true
66
+ created_at?: true
67
+ }
68
+
69
+ export type Bot_api_keysCountAggregateInputType = {
70
+ app_id?: true
71
+ gemini_api_key?: true
72
+ openai_api_key?: true
73
+ xai_api_key?: true
74
+ created_at?: true
75
+ _all?: true
76
+ }
77
+
78
+ export type Bot_api_keysAggregateArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
79
+ /**
80
+ * Filter which bot_api_keys to aggregate.
81
+ */
82
+ where?: Prisma.bot_api_keysWhereInput
83
+ /**
84
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
85
+ *
86
+ * Determine the order of bot_api_keys to fetch.
87
+ */
88
+ orderBy?: Prisma.bot_api_keysOrderByWithRelationInput | Prisma.bot_api_keysOrderByWithRelationInput[]
89
+ /**
90
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
91
+ *
92
+ * Sets the start position
93
+ */
94
+ cursor?: Prisma.bot_api_keysWhereUniqueInput
95
+ /**
96
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
97
+ *
98
+ * Take `±n` bot_api_keys from the position of the cursor.
99
+ */
100
+ take?: number
101
+ /**
102
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
103
+ *
104
+ * Skip the first `n` bot_api_keys.
105
+ */
106
+ skip?: number
107
+ /**
108
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
109
+ *
110
+ * Count returned bot_api_keys
111
+ **/
112
+ _count?: true | Bot_api_keysCountAggregateInputType
113
+ /**
114
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
115
+ *
116
+ * Select which fields to find the minimum value
117
+ **/
118
+ _min?: Bot_api_keysMinAggregateInputType
119
+ /**
120
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
121
+ *
122
+ * Select which fields to find the maximum value
123
+ **/
124
+ _max?: Bot_api_keysMaxAggregateInputType
125
+ }
126
+
127
+ export type GetBot_api_keysAggregateType<T extends Bot_api_keysAggregateArgs> = {
128
+ [P in keyof T & keyof AggregateBot_api_keys]: P extends '_count' | 'count'
129
+ ? T[P] extends true
130
+ ? number
131
+ : Prisma.GetScalarType<T[P], AggregateBot_api_keys[P]>
132
+ : Prisma.GetScalarType<T[P], AggregateBot_api_keys[P]>
133
+ }
134
+
135
+
136
+
137
+
138
+ export type bot_api_keysGroupByArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
139
+ where?: Prisma.bot_api_keysWhereInput
140
+ orderBy?: Prisma.bot_api_keysOrderByWithAggregationInput | Prisma.bot_api_keysOrderByWithAggregationInput[]
141
+ by: Prisma.Bot_api_keysScalarFieldEnum[] | Prisma.Bot_api_keysScalarFieldEnum
142
+ having?: Prisma.bot_api_keysScalarWhereWithAggregatesInput
143
+ take?: number
144
+ skip?: number
145
+ _count?: Bot_api_keysCountAggregateInputType | true
146
+ _min?: Bot_api_keysMinAggregateInputType
147
+ _max?: Bot_api_keysMaxAggregateInputType
148
+ }
149
+
150
+ export type Bot_api_keysGroupByOutputType = {
151
+ app_id: string
152
+ gemini_api_key: string | null
153
+ openai_api_key: string | null
154
+ xai_api_key: string | null
155
+ created_at: Date | null
156
+ _count: Bot_api_keysCountAggregateOutputType | null
157
+ _min: Bot_api_keysMinAggregateOutputType | null
158
+ _max: Bot_api_keysMaxAggregateOutputType | null
159
+ }
160
+
161
+ type GetBot_api_keysGroupByPayload<T extends bot_api_keysGroupByArgs> = Prisma.PrismaPromise<
162
+ Array<
163
+ Prisma.PickEnumerable<Bot_api_keysGroupByOutputType, T['by']> &
164
+ {
165
+ [P in ((keyof T) & (keyof Bot_api_keysGroupByOutputType))]: P extends '_count'
166
+ ? T[P] extends boolean
167
+ ? number
168
+ : Prisma.GetScalarType<T[P], Bot_api_keysGroupByOutputType[P]>
169
+ : Prisma.GetScalarType<T[P], Bot_api_keysGroupByOutputType[P]>
170
+ }
171
+ >
172
+ >
173
+
174
+
175
+
176
+ export type bot_api_keysWhereInput = {
177
+ AND?: Prisma.bot_api_keysWhereInput | Prisma.bot_api_keysWhereInput[]
178
+ OR?: Prisma.bot_api_keysWhereInput[]
179
+ NOT?: Prisma.bot_api_keysWhereInput | Prisma.bot_api_keysWhereInput[]
180
+ app_id?: Prisma.StringFilter<"bot_api_keys"> | string
181
+ gemini_api_key?: Prisma.StringNullableFilter<"bot_api_keys"> | string | null
182
+ openai_api_key?: Prisma.StringNullableFilter<"bot_api_keys"> | string | null
183
+ xai_api_key?: Prisma.StringNullableFilter<"bot_api_keys"> | string | null
184
+ created_at?: Prisma.DateTimeNullableFilter<"bot_api_keys"> | Date | string | null
185
+ bot?: Prisma.XOR<Prisma.Bot_tokensScalarRelationFilter, Prisma.bot_tokensWhereInput>
186
+ }
187
+
188
+ export type bot_api_keysOrderByWithRelationInput = {
189
+ app_id?: Prisma.SortOrder
190
+ gemini_api_key?: Prisma.SortOrderInput | Prisma.SortOrder
191
+ openai_api_key?: Prisma.SortOrderInput | Prisma.SortOrder
192
+ xai_api_key?: Prisma.SortOrderInput | Prisma.SortOrder
193
+ created_at?: Prisma.SortOrderInput | Prisma.SortOrder
194
+ bot?: Prisma.bot_tokensOrderByWithRelationInput
195
+ }
196
+
197
+ export type bot_api_keysWhereUniqueInput = Prisma.AtLeast<{
198
+ app_id?: string
199
+ AND?: Prisma.bot_api_keysWhereInput | Prisma.bot_api_keysWhereInput[]
200
+ OR?: Prisma.bot_api_keysWhereInput[]
201
+ NOT?: Prisma.bot_api_keysWhereInput | Prisma.bot_api_keysWhereInput[]
202
+ gemini_api_key?: Prisma.StringNullableFilter<"bot_api_keys"> | string | null
203
+ openai_api_key?: Prisma.StringNullableFilter<"bot_api_keys"> | string | null
204
+ xai_api_key?: Prisma.StringNullableFilter<"bot_api_keys"> | string | null
205
+ created_at?: Prisma.DateTimeNullableFilter<"bot_api_keys"> | Date | string | null
206
+ bot?: Prisma.XOR<Prisma.Bot_tokensScalarRelationFilter, Prisma.bot_tokensWhereInput>
207
+ }, "app_id">
208
+
209
+ export type bot_api_keysOrderByWithAggregationInput = {
210
+ app_id?: Prisma.SortOrder
211
+ gemini_api_key?: Prisma.SortOrderInput | Prisma.SortOrder
212
+ openai_api_key?: Prisma.SortOrderInput | Prisma.SortOrder
213
+ xai_api_key?: Prisma.SortOrderInput | Prisma.SortOrder
214
+ created_at?: Prisma.SortOrderInput | Prisma.SortOrder
215
+ _count?: Prisma.bot_api_keysCountOrderByAggregateInput
216
+ _max?: Prisma.bot_api_keysMaxOrderByAggregateInput
217
+ _min?: Prisma.bot_api_keysMinOrderByAggregateInput
218
+ }
219
+
220
+ export type bot_api_keysScalarWhereWithAggregatesInput = {
221
+ AND?: Prisma.bot_api_keysScalarWhereWithAggregatesInput | Prisma.bot_api_keysScalarWhereWithAggregatesInput[]
222
+ OR?: Prisma.bot_api_keysScalarWhereWithAggregatesInput[]
223
+ NOT?: Prisma.bot_api_keysScalarWhereWithAggregatesInput | Prisma.bot_api_keysScalarWhereWithAggregatesInput[]
224
+ app_id?: Prisma.StringWithAggregatesFilter<"bot_api_keys"> | string
225
+ gemini_api_key?: Prisma.StringNullableWithAggregatesFilter<"bot_api_keys"> | string | null
226
+ openai_api_key?: Prisma.StringNullableWithAggregatesFilter<"bot_api_keys"> | string | null
227
+ xai_api_key?: Prisma.StringNullableWithAggregatesFilter<"bot_api_keys"> | string | null
228
+ created_at?: Prisma.DateTimeNullableWithAggregatesFilter<"bot_api_keys"> | Date | string | null
229
+ }
230
+
231
+ export type bot_api_keysCreateInput = {
232
+ gemini_api_key?: string | null
233
+ openai_api_key?: string | null
234
+ xai_api_key?: string | null
235
+ created_at?: Date | string | null
236
+ bot: Prisma.bot_tokensCreateNestedOneWithoutApi_keysInput
237
+ }
238
+
239
+ export type bot_api_keysUncheckedCreateInput = {
240
+ app_id: string
241
+ gemini_api_key?: string | null
242
+ openai_api_key?: string | null
243
+ xai_api_key?: string | null
244
+ created_at?: Date | string | null
245
+ }
246
+
247
+ export type bot_api_keysUpdateInput = {
248
+ gemini_api_key?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
249
+ openai_api_key?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
250
+ xai_api_key?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
251
+ created_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
252
+ bot?: Prisma.bot_tokensUpdateOneRequiredWithoutApi_keysNestedInput
253
+ }
254
+
255
+ export type bot_api_keysUncheckedUpdateInput = {
256
+ app_id?: Prisma.StringFieldUpdateOperationsInput | string
257
+ gemini_api_key?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
258
+ openai_api_key?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
259
+ xai_api_key?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
260
+ created_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
261
+ }
262
+
263
+ export type bot_api_keysCreateManyInput = {
264
+ app_id: string
265
+ gemini_api_key?: string | null
266
+ openai_api_key?: string | null
267
+ xai_api_key?: string | null
268
+ created_at?: Date | string | null
269
+ }
270
+
271
+ export type bot_api_keysUpdateManyMutationInput = {
272
+ gemini_api_key?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
273
+ openai_api_key?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
274
+ xai_api_key?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
275
+ created_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
276
+ }
277
+
278
+ export type bot_api_keysUncheckedUpdateManyInput = {
279
+ app_id?: Prisma.StringFieldUpdateOperationsInput | string
280
+ gemini_api_key?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
281
+ openai_api_key?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
282
+ xai_api_key?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
283
+ created_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
284
+ }
285
+
286
+ export type Bot_api_keysNullableScalarRelationFilter = {
287
+ is?: Prisma.bot_api_keysWhereInput | null
288
+ isNot?: Prisma.bot_api_keysWhereInput | null
289
+ }
290
+
291
+ export type bot_api_keysCountOrderByAggregateInput = {
292
+ app_id?: Prisma.SortOrder
293
+ gemini_api_key?: Prisma.SortOrder
294
+ openai_api_key?: Prisma.SortOrder
295
+ xai_api_key?: Prisma.SortOrder
296
+ created_at?: Prisma.SortOrder
297
+ }
298
+
299
+ export type bot_api_keysMaxOrderByAggregateInput = {
300
+ app_id?: Prisma.SortOrder
301
+ gemini_api_key?: Prisma.SortOrder
302
+ openai_api_key?: Prisma.SortOrder
303
+ xai_api_key?: Prisma.SortOrder
304
+ created_at?: Prisma.SortOrder
305
+ }
306
+
307
+ export type bot_api_keysMinOrderByAggregateInput = {
308
+ app_id?: Prisma.SortOrder
309
+ gemini_api_key?: Prisma.SortOrder
310
+ openai_api_key?: Prisma.SortOrder
311
+ xai_api_key?: Prisma.SortOrder
312
+ created_at?: Prisma.SortOrder
313
+ }
314
+
315
+ export type bot_api_keysCreateNestedOneWithoutBotInput = {
316
+ create?: Prisma.XOR<Prisma.bot_api_keysCreateWithoutBotInput, Prisma.bot_api_keysUncheckedCreateWithoutBotInput>
317
+ connectOrCreate?: Prisma.bot_api_keysCreateOrConnectWithoutBotInput
318
+ connect?: Prisma.bot_api_keysWhereUniqueInput
319
+ }
320
+
321
+ export type bot_api_keysUncheckedCreateNestedOneWithoutBotInput = {
322
+ create?: Prisma.XOR<Prisma.bot_api_keysCreateWithoutBotInput, Prisma.bot_api_keysUncheckedCreateWithoutBotInput>
323
+ connectOrCreate?: Prisma.bot_api_keysCreateOrConnectWithoutBotInput
324
+ connect?: Prisma.bot_api_keysWhereUniqueInput
325
+ }
326
+
327
+ export type bot_api_keysUpdateOneWithoutBotNestedInput = {
328
+ create?: Prisma.XOR<Prisma.bot_api_keysCreateWithoutBotInput, Prisma.bot_api_keysUncheckedCreateWithoutBotInput>
329
+ connectOrCreate?: Prisma.bot_api_keysCreateOrConnectWithoutBotInput
330
+ upsert?: Prisma.bot_api_keysUpsertWithoutBotInput
331
+ disconnect?: Prisma.bot_api_keysWhereInput | boolean
332
+ delete?: Prisma.bot_api_keysWhereInput | boolean
333
+ connect?: Prisma.bot_api_keysWhereUniqueInput
334
+ update?: Prisma.XOR<Prisma.XOR<Prisma.bot_api_keysUpdateToOneWithWhereWithoutBotInput, Prisma.bot_api_keysUpdateWithoutBotInput>, Prisma.bot_api_keysUncheckedUpdateWithoutBotInput>
335
+ }
336
+
337
+ export type bot_api_keysUncheckedUpdateOneWithoutBotNestedInput = {
338
+ create?: Prisma.XOR<Prisma.bot_api_keysCreateWithoutBotInput, Prisma.bot_api_keysUncheckedCreateWithoutBotInput>
339
+ connectOrCreate?: Prisma.bot_api_keysCreateOrConnectWithoutBotInput
340
+ upsert?: Prisma.bot_api_keysUpsertWithoutBotInput
341
+ disconnect?: Prisma.bot_api_keysWhereInput | boolean
342
+ delete?: Prisma.bot_api_keysWhereInput | boolean
343
+ connect?: Prisma.bot_api_keysWhereUniqueInput
344
+ update?: Prisma.XOR<Prisma.XOR<Prisma.bot_api_keysUpdateToOneWithWhereWithoutBotInput, Prisma.bot_api_keysUpdateWithoutBotInput>, Prisma.bot_api_keysUncheckedUpdateWithoutBotInput>
345
+ }
346
+
347
+ export type bot_api_keysCreateWithoutBotInput = {
348
+ gemini_api_key?: string | null
349
+ openai_api_key?: string | null
350
+ xai_api_key?: string | null
351
+ created_at?: Date | string | null
352
+ }
353
+
354
+ export type bot_api_keysUncheckedCreateWithoutBotInput = {
355
+ gemini_api_key?: string | null
356
+ openai_api_key?: string | null
357
+ xai_api_key?: string | null
358
+ created_at?: Date | string | null
359
+ }
360
+
361
+ export type bot_api_keysCreateOrConnectWithoutBotInput = {
362
+ where: Prisma.bot_api_keysWhereUniqueInput
363
+ create: Prisma.XOR<Prisma.bot_api_keysCreateWithoutBotInput, Prisma.bot_api_keysUncheckedCreateWithoutBotInput>
364
+ }
365
+
366
+ export type bot_api_keysUpsertWithoutBotInput = {
367
+ update: Prisma.XOR<Prisma.bot_api_keysUpdateWithoutBotInput, Prisma.bot_api_keysUncheckedUpdateWithoutBotInput>
368
+ create: Prisma.XOR<Prisma.bot_api_keysCreateWithoutBotInput, Prisma.bot_api_keysUncheckedCreateWithoutBotInput>
369
+ where?: Prisma.bot_api_keysWhereInput
370
+ }
371
+
372
+ export type bot_api_keysUpdateToOneWithWhereWithoutBotInput = {
373
+ where?: Prisma.bot_api_keysWhereInput
374
+ data: Prisma.XOR<Prisma.bot_api_keysUpdateWithoutBotInput, Prisma.bot_api_keysUncheckedUpdateWithoutBotInput>
375
+ }
376
+
377
+ export type bot_api_keysUpdateWithoutBotInput = {
378
+ gemini_api_key?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
379
+ openai_api_key?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
380
+ xai_api_key?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
381
+ created_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
382
+ }
383
+
384
+ export type bot_api_keysUncheckedUpdateWithoutBotInput = {
385
+ gemini_api_key?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
386
+ openai_api_key?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
387
+ xai_api_key?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
388
+ created_at?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
389
+ }
390
+
391
+
392
+
393
+ export type bot_api_keysSelect<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{
394
+ app_id?: boolean
395
+ gemini_api_key?: boolean
396
+ openai_api_key?: boolean
397
+ xai_api_key?: boolean
398
+ created_at?: boolean
399
+ bot?: boolean | Prisma.bot_tokensDefaultArgs<ExtArgs>
400
+ }, ExtArgs["result"]["bot_api_keys"]>
401
+
402
+ export type bot_api_keysSelectCreateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{
403
+ app_id?: boolean
404
+ gemini_api_key?: boolean
405
+ openai_api_key?: boolean
406
+ xai_api_key?: boolean
407
+ created_at?: boolean
408
+ bot?: boolean | Prisma.bot_tokensDefaultArgs<ExtArgs>
409
+ }, ExtArgs["result"]["bot_api_keys"]>
410
+
411
+ export type bot_api_keysSelectUpdateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{
412
+ app_id?: boolean
413
+ gemini_api_key?: boolean
414
+ openai_api_key?: boolean
415
+ xai_api_key?: boolean
416
+ created_at?: boolean
417
+ bot?: boolean | Prisma.bot_tokensDefaultArgs<ExtArgs>
418
+ }, ExtArgs["result"]["bot_api_keys"]>
419
+
420
+ export type bot_api_keysSelectScalar = {
421
+ app_id?: boolean
422
+ gemini_api_key?: boolean
423
+ openai_api_key?: boolean
424
+ xai_api_key?: boolean
425
+ created_at?: boolean
426
+ }
427
+
428
+ export type bot_api_keysOmit<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetOmit<"app_id" | "gemini_api_key" | "openai_api_key" | "xai_api_key" | "created_at", ExtArgs["result"]["bot_api_keys"]>
429
+ export type bot_api_keysInclude<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
430
+ bot?: boolean | Prisma.bot_tokensDefaultArgs<ExtArgs>
431
+ }
432
+ export type bot_api_keysIncludeCreateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
433
+ bot?: boolean | Prisma.bot_tokensDefaultArgs<ExtArgs>
434
+ }
435
+ export type bot_api_keysIncludeUpdateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
436
+ bot?: boolean | Prisma.bot_tokensDefaultArgs<ExtArgs>
437
+ }
438
+
439
+ export type $bot_api_keysPayload<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
440
+ name: "bot_api_keys"
441
+ objects: {
442
+ bot: Prisma.$bot_tokensPayload<ExtArgs>
443
+ }
444
+ scalars: runtime.Types.Extensions.GetPayloadResult<{
445
+ app_id: string
446
+ gemini_api_key: string | null
447
+ openai_api_key: string | null
448
+ xai_api_key: string | null
449
+ created_at: Date | null
450
+ }, ExtArgs["result"]["bot_api_keys"]>
451
+ composites: {}
452
+ }
453
+
454
+ export type bot_api_keysGetPayload<S extends boolean | null | undefined | bot_api_keysDefaultArgs> = runtime.Types.Result.GetResult<Prisma.$bot_api_keysPayload, S>
455
+
456
+ export type bot_api_keysCountArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> =
457
+ Omit<bot_api_keysFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
458
+ select?: Bot_api_keysCountAggregateInputType | true
459
+ }
460
+
461
+ export interface bot_api_keysDelegate<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, GlobalOmitOptions = {}> {
462
+ [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['bot_api_keys'], meta: { name: 'bot_api_keys' } }
463
+ /**
464
+ * Find zero or one Bot_api_keys that matches the filter.
465
+ * @param {bot_api_keysFindUniqueArgs} args - Arguments to find a Bot_api_keys
466
+ * @example
467
+ * // Get one Bot_api_keys
468
+ * const bot_api_keys = await prisma.bot_api_keys.findUnique({
469
+ * where: {
470
+ * // ... provide filter here
471
+ * }
472
+ * })
473
+ */
474
+ findUnique<T extends bot_api_keysFindUniqueArgs>(args: Prisma.SelectSubset<T, bot_api_keysFindUniqueArgs<ExtArgs>>): Prisma.Prisma__bot_api_keysClient<runtime.Types.Result.GetResult<Prisma.$bot_api_keysPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
475
+
476
+ /**
477
+ * Find one Bot_api_keys that matches the filter or throw an error with `error.code='P2025'`
478
+ * if no matches were found.
479
+ * @param {bot_api_keysFindUniqueOrThrowArgs} args - Arguments to find a Bot_api_keys
480
+ * @example
481
+ * // Get one Bot_api_keys
482
+ * const bot_api_keys = await prisma.bot_api_keys.findUniqueOrThrow({
483
+ * where: {
484
+ * // ... provide filter here
485
+ * }
486
+ * })
487
+ */
488
+ findUniqueOrThrow<T extends bot_api_keysFindUniqueOrThrowArgs>(args: Prisma.SelectSubset<T, bot_api_keysFindUniqueOrThrowArgs<ExtArgs>>): Prisma.Prisma__bot_api_keysClient<runtime.Types.Result.GetResult<Prisma.$bot_api_keysPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>
489
+
490
+ /**
491
+ * Find the first Bot_api_keys that matches the filter.
492
+ * Note, that providing `undefined` is treated as the value not being there.
493
+ * Read more here: https://pris.ly/d/null-undefined
494
+ * @param {bot_api_keysFindFirstArgs} args - Arguments to find a Bot_api_keys
495
+ * @example
496
+ * // Get one Bot_api_keys
497
+ * const bot_api_keys = await prisma.bot_api_keys.findFirst({
498
+ * where: {
499
+ * // ... provide filter here
500
+ * }
501
+ * })
502
+ */
503
+ findFirst<T extends bot_api_keysFindFirstArgs>(args?: Prisma.SelectSubset<T, bot_api_keysFindFirstArgs<ExtArgs>>): Prisma.Prisma__bot_api_keysClient<runtime.Types.Result.GetResult<Prisma.$bot_api_keysPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
504
+
505
+ /**
506
+ * Find the first Bot_api_keys that matches the filter or
507
+ * throw `PrismaKnownClientError` with `P2025` code if no matches were found.
508
+ * Note, that providing `undefined` is treated as the value not being there.
509
+ * Read more here: https://pris.ly/d/null-undefined
510
+ * @param {bot_api_keysFindFirstOrThrowArgs} args - Arguments to find a Bot_api_keys
511
+ * @example
512
+ * // Get one Bot_api_keys
513
+ * const bot_api_keys = await prisma.bot_api_keys.findFirstOrThrow({
514
+ * where: {
515
+ * // ... provide filter here
516
+ * }
517
+ * })
518
+ */
519
+ findFirstOrThrow<T extends bot_api_keysFindFirstOrThrowArgs>(args?: Prisma.SelectSubset<T, bot_api_keysFindFirstOrThrowArgs<ExtArgs>>): Prisma.Prisma__bot_api_keysClient<runtime.Types.Result.GetResult<Prisma.$bot_api_keysPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>
520
+
521
+ /**
522
+ * Find zero or more Bot_api_keys that matches the filter.
523
+ * Note, that providing `undefined` is treated as the value not being there.
524
+ * Read more here: https://pris.ly/d/null-undefined
525
+ * @param {bot_api_keysFindManyArgs} args - Arguments to filter and select certain fields only.
526
+ * @example
527
+ * // Get all Bot_api_keys
528
+ * const bot_api_keys = await prisma.bot_api_keys.findMany()
529
+ *
530
+ * // Get first 10 Bot_api_keys
531
+ * const bot_api_keys = await prisma.bot_api_keys.findMany({ take: 10 })
532
+ *
533
+ * // Only select the `app_id`
534
+ * const bot_api_keysWithApp_idOnly = await prisma.bot_api_keys.findMany({ select: { app_id: true } })
535
+ *
536
+ */
537
+ findMany<T extends bot_api_keysFindManyArgs>(args?: Prisma.SelectSubset<T, bot_api_keysFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$bot_api_keysPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>
538
+
539
+ /**
540
+ * Create a Bot_api_keys.
541
+ * @param {bot_api_keysCreateArgs} args - Arguments to create a Bot_api_keys.
542
+ * @example
543
+ * // Create one Bot_api_keys
544
+ * const Bot_api_keys = await prisma.bot_api_keys.create({
545
+ * data: {
546
+ * // ... data to create a Bot_api_keys
547
+ * }
548
+ * })
549
+ *
550
+ */
551
+ create<T extends bot_api_keysCreateArgs>(args: Prisma.SelectSubset<T, bot_api_keysCreateArgs<ExtArgs>>): Prisma.Prisma__bot_api_keysClient<runtime.Types.Result.GetResult<Prisma.$bot_api_keysPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>
552
+
553
+ /**
554
+ * Create many Bot_api_keys.
555
+ * @param {bot_api_keysCreateManyArgs} args - Arguments to create many Bot_api_keys.
556
+ * @example
557
+ * // Create many Bot_api_keys
558
+ * const bot_api_keys = await prisma.bot_api_keys.createMany({
559
+ * data: [
560
+ * // ... provide data here
561
+ * ]
562
+ * })
563
+ *
564
+ */
565
+ createMany<T extends bot_api_keysCreateManyArgs>(args?: Prisma.SelectSubset<T, bot_api_keysCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<Prisma.BatchPayload>
566
+
567
+ /**
568
+ * Create many Bot_api_keys and returns the data saved in the database.
569
+ * @param {bot_api_keysCreateManyAndReturnArgs} args - Arguments to create many Bot_api_keys.
570
+ * @example
571
+ * // Create many Bot_api_keys
572
+ * const bot_api_keys = await prisma.bot_api_keys.createManyAndReturn({
573
+ * data: [
574
+ * // ... provide data here
575
+ * ]
576
+ * })
577
+ *
578
+ * // Create many Bot_api_keys and only return the `app_id`
579
+ * const bot_api_keysWithApp_idOnly = await prisma.bot_api_keys.createManyAndReturn({
580
+ * select: { app_id: true },
581
+ * data: [
582
+ * // ... provide data here
583
+ * ]
584
+ * })
585
+ * Note, that providing `undefined` is treated as the value not being there.
586
+ * Read more here: https://pris.ly/d/null-undefined
587
+ *
588
+ */
589
+ createManyAndReturn<T extends bot_api_keysCreateManyAndReturnArgs>(args?: Prisma.SelectSubset<T, bot_api_keysCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$bot_api_keysPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>
590
+
591
+ /**
592
+ * Delete a Bot_api_keys.
593
+ * @param {bot_api_keysDeleteArgs} args - Arguments to delete one Bot_api_keys.
594
+ * @example
595
+ * // Delete one Bot_api_keys
596
+ * const Bot_api_keys = await prisma.bot_api_keys.delete({
597
+ * where: {
598
+ * // ... filter to delete one Bot_api_keys
599
+ * }
600
+ * })
601
+ *
602
+ */
603
+ delete<T extends bot_api_keysDeleteArgs>(args: Prisma.SelectSubset<T, bot_api_keysDeleteArgs<ExtArgs>>): Prisma.Prisma__bot_api_keysClient<runtime.Types.Result.GetResult<Prisma.$bot_api_keysPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>
604
+
605
+ /**
606
+ * Update one Bot_api_keys.
607
+ * @param {bot_api_keysUpdateArgs} args - Arguments to update one Bot_api_keys.
608
+ * @example
609
+ * // Update one Bot_api_keys
610
+ * const bot_api_keys = await prisma.bot_api_keys.update({
611
+ * where: {
612
+ * // ... provide filter here
613
+ * },
614
+ * data: {
615
+ * // ... provide data here
616
+ * }
617
+ * })
618
+ *
619
+ */
620
+ update<T extends bot_api_keysUpdateArgs>(args: Prisma.SelectSubset<T, bot_api_keysUpdateArgs<ExtArgs>>): Prisma.Prisma__bot_api_keysClient<runtime.Types.Result.GetResult<Prisma.$bot_api_keysPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>
621
+
622
+ /**
623
+ * Delete zero or more Bot_api_keys.
624
+ * @param {bot_api_keysDeleteManyArgs} args - Arguments to filter Bot_api_keys to delete.
625
+ * @example
626
+ * // Delete a few Bot_api_keys
627
+ * const { count } = await prisma.bot_api_keys.deleteMany({
628
+ * where: {
629
+ * // ... provide filter here
630
+ * }
631
+ * })
632
+ *
633
+ */
634
+ deleteMany<T extends bot_api_keysDeleteManyArgs>(args?: Prisma.SelectSubset<T, bot_api_keysDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<Prisma.BatchPayload>
635
+
636
+ /**
637
+ * Update zero or more Bot_api_keys.
638
+ * Note, that providing `undefined` is treated as the value not being there.
639
+ * Read more here: https://pris.ly/d/null-undefined
640
+ * @param {bot_api_keysUpdateManyArgs} args - Arguments to update one or more rows.
641
+ * @example
642
+ * // Update many Bot_api_keys
643
+ * const bot_api_keys = await prisma.bot_api_keys.updateMany({
644
+ * where: {
645
+ * // ... provide filter here
646
+ * },
647
+ * data: {
648
+ * // ... provide data here
649
+ * }
650
+ * })
651
+ *
652
+ */
653
+ updateMany<T extends bot_api_keysUpdateManyArgs>(args: Prisma.SelectSubset<T, bot_api_keysUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<Prisma.BatchPayload>
654
+
655
+ /**
656
+ * Update zero or more Bot_api_keys and returns the data updated in the database.
657
+ * @param {bot_api_keysUpdateManyAndReturnArgs} args - Arguments to update many Bot_api_keys.
658
+ * @example
659
+ * // Update many Bot_api_keys
660
+ * const bot_api_keys = await prisma.bot_api_keys.updateManyAndReturn({
661
+ * where: {
662
+ * // ... provide filter here
663
+ * },
664
+ * data: [
665
+ * // ... provide data here
666
+ * ]
667
+ * })
668
+ *
669
+ * // Update zero or more Bot_api_keys and only return the `app_id`
670
+ * const bot_api_keysWithApp_idOnly = await prisma.bot_api_keys.updateManyAndReturn({
671
+ * select: { app_id: true },
672
+ * where: {
673
+ * // ... provide filter here
674
+ * },
675
+ * data: [
676
+ * // ... provide data here
677
+ * ]
678
+ * })
679
+ * Note, that providing `undefined` is treated as the value not being there.
680
+ * Read more here: https://pris.ly/d/null-undefined
681
+ *
682
+ */
683
+ updateManyAndReturn<T extends bot_api_keysUpdateManyAndReturnArgs>(args: Prisma.SelectSubset<T, bot_api_keysUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$bot_api_keysPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>
684
+
685
+ /**
686
+ * Create or update one Bot_api_keys.
687
+ * @param {bot_api_keysUpsertArgs} args - Arguments to update or create a Bot_api_keys.
688
+ * @example
689
+ * // Update or create a Bot_api_keys
690
+ * const bot_api_keys = await prisma.bot_api_keys.upsert({
691
+ * create: {
692
+ * // ... data to create a Bot_api_keys
693
+ * },
694
+ * update: {
695
+ * // ... in case it already exists, update
696
+ * },
697
+ * where: {
698
+ * // ... the filter for the Bot_api_keys we want to update
699
+ * }
700
+ * })
701
+ */
702
+ upsert<T extends bot_api_keysUpsertArgs>(args: Prisma.SelectSubset<T, bot_api_keysUpsertArgs<ExtArgs>>): Prisma.Prisma__bot_api_keysClient<runtime.Types.Result.GetResult<Prisma.$bot_api_keysPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>
703
+
704
+
705
+ /**
706
+ * Count the number of Bot_api_keys.
707
+ * Note, that providing `undefined` is treated as the value not being there.
708
+ * Read more here: https://pris.ly/d/null-undefined
709
+ * @param {bot_api_keysCountArgs} args - Arguments to filter Bot_api_keys to count.
710
+ * @example
711
+ * // Count the number of Bot_api_keys
712
+ * const count = await prisma.bot_api_keys.count({
713
+ * where: {
714
+ * // ... the filter for the Bot_api_keys we want to count
715
+ * }
716
+ * })
717
+ **/
718
+ count<T extends bot_api_keysCountArgs>(
719
+ args?: Prisma.Subset<T, bot_api_keysCountArgs>,
720
+ ): Prisma.PrismaPromise<
721
+ T extends runtime.Types.Utils.Record<'select', any>
722
+ ? T['select'] extends true
723
+ ? number
724
+ : Prisma.GetScalarType<T['select'], Bot_api_keysCountAggregateOutputType>
725
+ : number
726
+ >
727
+
728
+ /**
729
+ * Allows you to perform aggregations operations on a Bot_api_keys.
730
+ * Note, that providing `undefined` is treated as the value not being there.
731
+ * Read more here: https://pris.ly/d/null-undefined
732
+ * @param {Bot_api_keysAggregateArgs} args - Select which aggregations you would like to apply and on what fields.
733
+ * @example
734
+ * // Ordered by age ascending
735
+ * // Where email contains prisma.io
736
+ * // Limited to the 10 users
737
+ * const aggregations = await prisma.user.aggregate({
738
+ * _avg: {
739
+ * age: true,
740
+ * },
741
+ * where: {
742
+ * email: {
743
+ * contains: "prisma.io",
744
+ * },
745
+ * },
746
+ * orderBy: {
747
+ * age: "asc",
748
+ * },
749
+ * take: 10,
750
+ * })
751
+ **/
752
+ aggregate<T extends Bot_api_keysAggregateArgs>(args: Prisma.Subset<T, Bot_api_keysAggregateArgs>): Prisma.PrismaPromise<GetBot_api_keysAggregateType<T>>
753
+
754
+ /**
755
+ * Group by Bot_api_keys.
756
+ * Note, that providing `undefined` is treated as the value not being there.
757
+ * Read more here: https://pris.ly/d/null-undefined
758
+ * @param {bot_api_keysGroupByArgs} args - Group by arguments.
759
+ * @example
760
+ * // Group by city, order by createdAt, get count
761
+ * const result = await prisma.user.groupBy({
762
+ * by: ['city', 'createdAt'],
763
+ * orderBy: {
764
+ * createdAt: true
765
+ * },
766
+ * _count: {
767
+ * _all: true
768
+ * },
769
+ * })
770
+ *
771
+ **/
772
+ groupBy<
773
+ T extends bot_api_keysGroupByArgs,
774
+ HasSelectOrTake extends Prisma.Or<
775
+ Prisma.Extends<'skip', Prisma.Keys<T>>,
776
+ Prisma.Extends<'take', Prisma.Keys<T>>
777
+ >,
778
+ OrderByArg extends Prisma.True extends HasSelectOrTake
779
+ ? { orderBy: bot_api_keysGroupByArgs['orderBy'] }
780
+ : { orderBy?: bot_api_keysGroupByArgs['orderBy'] },
781
+ OrderFields extends Prisma.ExcludeUnderscoreKeys<Prisma.Keys<Prisma.MaybeTupleToUnion<T['orderBy']>>>,
782
+ ByFields extends Prisma.MaybeTupleToUnion<T['by']>,
783
+ ByValid extends Prisma.Has<ByFields, OrderFields>,
784
+ HavingFields extends Prisma.GetHavingFields<T['having']>,
785
+ HavingValid extends Prisma.Has<ByFields, HavingFields>,
786
+ ByEmpty extends T['by'] extends never[] ? Prisma.True : Prisma.False,
787
+ InputErrors extends ByEmpty extends Prisma.True
788
+ ? `Error: "by" must not be empty.`
789
+ : HavingValid extends Prisma.False
790
+ ? {
791
+ [P in HavingFields]: P extends ByFields
792
+ ? never
793
+ : P extends string
794
+ ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
795
+ : [
796
+ Error,
797
+ 'Field ',
798
+ P,
799
+ ` in "having" needs to be provided in "by"`,
800
+ ]
801
+ }[HavingFields]
802
+ : 'take' extends Prisma.Keys<T>
803
+ ? 'orderBy' extends Prisma.Keys<T>
804
+ ? ByValid extends Prisma.True
805
+ ? {}
806
+ : {
807
+ [P in OrderFields]: P extends ByFields
808
+ ? never
809
+ : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
810
+ }[OrderFields]
811
+ : 'Error: If you provide "take", you also need to provide "orderBy"'
812
+ : 'skip' extends Prisma.Keys<T>
813
+ ? 'orderBy' extends Prisma.Keys<T>
814
+ ? ByValid extends Prisma.True
815
+ ? {}
816
+ : {
817
+ [P in OrderFields]: P extends ByFields
818
+ ? never
819
+ : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
820
+ }[OrderFields]
821
+ : 'Error: If you provide "skip", you also need to provide "orderBy"'
822
+ : ByValid extends Prisma.True
823
+ ? {}
824
+ : {
825
+ [P in OrderFields]: P extends ByFields
826
+ ? never
827
+ : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
828
+ }[OrderFields]
829
+ >(args: Prisma.SubsetIntersection<T, bot_api_keysGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetBot_api_keysGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
830
+ /**
831
+ * Fields of the bot_api_keys model
832
+ */
833
+ readonly fields: bot_api_keysFieldRefs;
834
+ }
835
+
836
+ /**
837
+ * The delegate class that acts as a "Promise-like" for bot_api_keys.
838
+ * Why is this prefixed with `Prisma__`?
839
+ * Because we want to prevent naming conflicts as mentioned in
840
+ * https://github.com/prisma/prisma-client-js/issues/707
841
+ */
842
+ export interface Prisma__bot_api_keysClient<T, Null = never, ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
843
+ readonly [Symbol.toStringTag]: "PrismaPromise"
844
+ bot<T extends Prisma.bot_tokensDefaultArgs<ExtArgs> = {}>(args?: Prisma.Subset<T, Prisma.bot_tokensDefaultArgs<ExtArgs>>): Prisma.Prisma__bot_tokensClient<runtime.Types.Result.GetResult<Prisma.$bot_tokensPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
845
+ /**
846
+ * Attaches callbacks for the resolution and/or rejection of the Promise.
847
+ * @param onfulfilled The callback to execute when the Promise is resolved.
848
+ * @param onrejected The callback to execute when the Promise is rejected.
849
+ * @returns A Promise for the completion of which ever callback is executed.
850
+ */
851
+ then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): runtime.Types.Utils.JsPromise<TResult1 | TResult2>
852
+ /**
853
+ * Attaches a callback for only the rejection of the Promise.
854
+ * @param onrejected The callback to execute when the Promise is rejected.
855
+ * @returns A Promise for the completion of the callback.
856
+ */
857
+ catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): runtime.Types.Utils.JsPromise<T | TResult>
858
+ /**
859
+ * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
860
+ * resolved value cannot be modified from the callback.
861
+ * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
862
+ * @returns A Promise for the completion of the callback.
863
+ */
864
+ finally(onfinally?: (() => void) | undefined | null): runtime.Types.Utils.JsPromise<T>
865
+ }
866
+
867
+
868
+
869
+
870
+ /**
871
+ * Fields of the bot_api_keys model
872
+ */
873
+ export interface bot_api_keysFieldRefs {
874
+ readonly app_id: Prisma.FieldRef<"bot_api_keys", 'String'>
875
+ readonly gemini_api_key: Prisma.FieldRef<"bot_api_keys", 'String'>
876
+ readonly openai_api_key: Prisma.FieldRef<"bot_api_keys", 'String'>
877
+ readonly xai_api_key: Prisma.FieldRef<"bot_api_keys", 'String'>
878
+ readonly created_at: Prisma.FieldRef<"bot_api_keys", 'DateTime'>
879
+ }
880
+
881
+
882
+ // Custom InputTypes
883
+ /**
884
+ * bot_api_keys findUnique
885
+ */
886
+ export type bot_api_keysFindUniqueArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
887
+ /**
888
+ * Select specific fields to fetch from the bot_api_keys
889
+ */
890
+ select?: Prisma.bot_api_keysSelect<ExtArgs> | null
891
+ /**
892
+ * Omit specific fields from the bot_api_keys
893
+ */
894
+ omit?: Prisma.bot_api_keysOmit<ExtArgs> | null
895
+ /**
896
+ * Choose, which related nodes to fetch as well
897
+ */
898
+ include?: Prisma.bot_api_keysInclude<ExtArgs> | null
899
+ /**
900
+ * Filter, which bot_api_keys to fetch.
901
+ */
902
+ where: Prisma.bot_api_keysWhereUniqueInput
903
+ }
904
+
905
+ /**
906
+ * bot_api_keys findUniqueOrThrow
907
+ */
908
+ export type bot_api_keysFindUniqueOrThrowArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
909
+ /**
910
+ * Select specific fields to fetch from the bot_api_keys
911
+ */
912
+ select?: Prisma.bot_api_keysSelect<ExtArgs> | null
913
+ /**
914
+ * Omit specific fields from the bot_api_keys
915
+ */
916
+ omit?: Prisma.bot_api_keysOmit<ExtArgs> | null
917
+ /**
918
+ * Choose, which related nodes to fetch as well
919
+ */
920
+ include?: Prisma.bot_api_keysInclude<ExtArgs> | null
921
+ /**
922
+ * Filter, which bot_api_keys to fetch.
923
+ */
924
+ where: Prisma.bot_api_keysWhereUniqueInput
925
+ }
926
+
927
+ /**
928
+ * bot_api_keys findFirst
929
+ */
930
+ export type bot_api_keysFindFirstArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
931
+ /**
932
+ * Select specific fields to fetch from the bot_api_keys
933
+ */
934
+ select?: Prisma.bot_api_keysSelect<ExtArgs> | null
935
+ /**
936
+ * Omit specific fields from the bot_api_keys
937
+ */
938
+ omit?: Prisma.bot_api_keysOmit<ExtArgs> | null
939
+ /**
940
+ * Choose, which related nodes to fetch as well
941
+ */
942
+ include?: Prisma.bot_api_keysInclude<ExtArgs> | null
943
+ /**
944
+ * Filter, which bot_api_keys to fetch.
945
+ */
946
+ where?: Prisma.bot_api_keysWhereInput
947
+ /**
948
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
949
+ *
950
+ * Determine the order of bot_api_keys to fetch.
951
+ */
952
+ orderBy?: Prisma.bot_api_keysOrderByWithRelationInput | Prisma.bot_api_keysOrderByWithRelationInput[]
953
+ /**
954
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
955
+ *
956
+ * Sets the position for searching for bot_api_keys.
957
+ */
958
+ cursor?: Prisma.bot_api_keysWhereUniqueInput
959
+ /**
960
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
961
+ *
962
+ * Take `±n` bot_api_keys from the position of the cursor.
963
+ */
964
+ take?: number
965
+ /**
966
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
967
+ *
968
+ * Skip the first `n` bot_api_keys.
969
+ */
970
+ skip?: number
971
+ /**
972
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
973
+ *
974
+ * Filter by unique combinations of bot_api_keys.
975
+ */
976
+ distinct?: Prisma.Bot_api_keysScalarFieldEnum | Prisma.Bot_api_keysScalarFieldEnum[]
977
+ }
978
+
979
+ /**
980
+ * bot_api_keys findFirstOrThrow
981
+ */
982
+ export type bot_api_keysFindFirstOrThrowArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
983
+ /**
984
+ * Select specific fields to fetch from the bot_api_keys
985
+ */
986
+ select?: Prisma.bot_api_keysSelect<ExtArgs> | null
987
+ /**
988
+ * Omit specific fields from the bot_api_keys
989
+ */
990
+ omit?: Prisma.bot_api_keysOmit<ExtArgs> | null
991
+ /**
992
+ * Choose, which related nodes to fetch as well
993
+ */
994
+ include?: Prisma.bot_api_keysInclude<ExtArgs> | null
995
+ /**
996
+ * Filter, which bot_api_keys to fetch.
997
+ */
998
+ where?: Prisma.bot_api_keysWhereInput
999
+ /**
1000
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
1001
+ *
1002
+ * Determine the order of bot_api_keys to fetch.
1003
+ */
1004
+ orderBy?: Prisma.bot_api_keysOrderByWithRelationInput | Prisma.bot_api_keysOrderByWithRelationInput[]
1005
+ /**
1006
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
1007
+ *
1008
+ * Sets the position for searching for bot_api_keys.
1009
+ */
1010
+ cursor?: Prisma.bot_api_keysWhereUniqueInput
1011
+ /**
1012
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
1013
+ *
1014
+ * Take `±n` bot_api_keys from the position of the cursor.
1015
+ */
1016
+ take?: number
1017
+ /**
1018
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
1019
+ *
1020
+ * Skip the first `n` bot_api_keys.
1021
+ */
1022
+ skip?: number
1023
+ /**
1024
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
1025
+ *
1026
+ * Filter by unique combinations of bot_api_keys.
1027
+ */
1028
+ distinct?: Prisma.Bot_api_keysScalarFieldEnum | Prisma.Bot_api_keysScalarFieldEnum[]
1029
+ }
1030
+
1031
+ /**
1032
+ * bot_api_keys findMany
1033
+ */
1034
+ export type bot_api_keysFindManyArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
1035
+ /**
1036
+ * Select specific fields to fetch from the bot_api_keys
1037
+ */
1038
+ select?: Prisma.bot_api_keysSelect<ExtArgs> | null
1039
+ /**
1040
+ * Omit specific fields from the bot_api_keys
1041
+ */
1042
+ omit?: Prisma.bot_api_keysOmit<ExtArgs> | null
1043
+ /**
1044
+ * Choose, which related nodes to fetch as well
1045
+ */
1046
+ include?: Prisma.bot_api_keysInclude<ExtArgs> | null
1047
+ /**
1048
+ * Filter, which bot_api_keys to fetch.
1049
+ */
1050
+ where?: Prisma.bot_api_keysWhereInput
1051
+ /**
1052
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
1053
+ *
1054
+ * Determine the order of bot_api_keys to fetch.
1055
+ */
1056
+ orderBy?: Prisma.bot_api_keysOrderByWithRelationInput | Prisma.bot_api_keysOrderByWithRelationInput[]
1057
+ /**
1058
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
1059
+ *
1060
+ * Sets the position for listing bot_api_keys.
1061
+ */
1062
+ cursor?: Prisma.bot_api_keysWhereUniqueInput
1063
+ /**
1064
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
1065
+ *
1066
+ * Take `±n` bot_api_keys from the position of the cursor.
1067
+ */
1068
+ take?: number
1069
+ /**
1070
+ * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
1071
+ *
1072
+ * Skip the first `n` bot_api_keys.
1073
+ */
1074
+ skip?: number
1075
+ distinct?: Prisma.Bot_api_keysScalarFieldEnum | Prisma.Bot_api_keysScalarFieldEnum[]
1076
+ }
1077
+
1078
+ /**
1079
+ * bot_api_keys create
1080
+ */
1081
+ export type bot_api_keysCreateArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
1082
+ /**
1083
+ * Select specific fields to fetch from the bot_api_keys
1084
+ */
1085
+ select?: Prisma.bot_api_keysSelect<ExtArgs> | null
1086
+ /**
1087
+ * Omit specific fields from the bot_api_keys
1088
+ */
1089
+ omit?: Prisma.bot_api_keysOmit<ExtArgs> | null
1090
+ /**
1091
+ * Choose, which related nodes to fetch as well
1092
+ */
1093
+ include?: Prisma.bot_api_keysInclude<ExtArgs> | null
1094
+ /**
1095
+ * The data needed to create a bot_api_keys.
1096
+ */
1097
+ data: Prisma.XOR<Prisma.bot_api_keysCreateInput, Prisma.bot_api_keysUncheckedCreateInput>
1098
+ }
1099
+
1100
+ /**
1101
+ * bot_api_keys createMany
1102
+ */
1103
+ export type bot_api_keysCreateManyArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
1104
+ /**
1105
+ * The data used to create many bot_api_keys.
1106
+ */
1107
+ data: Prisma.bot_api_keysCreateManyInput | Prisma.bot_api_keysCreateManyInput[]
1108
+ }
1109
+
1110
+ /**
1111
+ * bot_api_keys createManyAndReturn
1112
+ */
1113
+ export type bot_api_keysCreateManyAndReturnArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
1114
+ /**
1115
+ * Select specific fields to fetch from the bot_api_keys
1116
+ */
1117
+ select?: Prisma.bot_api_keysSelectCreateManyAndReturn<ExtArgs> | null
1118
+ /**
1119
+ * Omit specific fields from the bot_api_keys
1120
+ */
1121
+ omit?: Prisma.bot_api_keysOmit<ExtArgs> | null
1122
+ /**
1123
+ * The data used to create many bot_api_keys.
1124
+ */
1125
+ data: Prisma.bot_api_keysCreateManyInput | Prisma.bot_api_keysCreateManyInput[]
1126
+ /**
1127
+ * Choose, which related nodes to fetch as well
1128
+ */
1129
+ include?: Prisma.bot_api_keysIncludeCreateManyAndReturn<ExtArgs> | null
1130
+ }
1131
+
1132
+ /**
1133
+ * bot_api_keys update
1134
+ */
1135
+ export type bot_api_keysUpdateArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
1136
+ /**
1137
+ * Select specific fields to fetch from the bot_api_keys
1138
+ */
1139
+ select?: Prisma.bot_api_keysSelect<ExtArgs> | null
1140
+ /**
1141
+ * Omit specific fields from the bot_api_keys
1142
+ */
1143
+ omit?: Prisma.bot_api_keysOmit<ExtArgs> | null
1144
+ /**
1145
+ * Choose, which related nodes to fetch as well
1146
+ */
1147
+ include?: Prisma.bot_api_keysInclude<ExtArgs> | null
1148
+ /**
1149
+ * The data needed to update a bot_api_keys.
1150
+ */
1151
+ data: Prisma.XOR<Prisma.bot_api_keysUpdateInput, Prisma.bot_api_keysUncheckedUpdateInput>
1152
+ /**
1153
+ * Choose, which bot_api_keys to update.
1154
+ */
1155
+ where: Prisma.bot_api_keysWhereUniqueInput
1156
+ }
1157
+
1158
+ /**
1159
+ * bot_api_keys updateMany
1160
+ */
1161
+ export type bot_api_keysUpdateManyArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
1162
+ /**
1163
+ * The data used to update bot_api_keys.
1164
+ */
1165
+ data: Prisma.XOR<Prisma.bot_api_keysUpdateManyMutationInput, Prisma.bot_api_keysUncheckedUpdateManyInput>
1166
+ /**
1167
+ * Filter which bot_api_keys to update
1168
+ */
1169
+ where?: Prisma.bot_api_keysWhereInput
1170
+ /**
1171
+ * Limit how many bot_api_keys to update.
1172
+ */
1173
+ limit?: number
1174
+ }
1175
+
1176
+ /**
1177
+ * bot_api_keys updateManyAndReturn
1178
+ */
1179
+ export type bot_api_keysUpdateManyAndReturnArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
1180
+ /**
1181
+ * Select specific fields to fetch from the bot_api_keys
1182
+ */
1183
+ select?: Prisma.bot_api_keysSelectUpdateManyAndReturn<ExtArgs> | null
1184
+ /**
1185
+ * Omit specific fields from the bot_api_keys
1186
+ */
1187
+ omit?: Prisma.bot_api_keysOmit<ExtArgs> | null
1188
+ /**
1189
+ * The data used to update bot_api_keys.
1190
+ */
1191
+ data: Prisma.XOR<Prisma.bot_api_keysUpdateManyMutationInput, Prisma.bot_api_keysUncheckedUpdateManyInput>
1192
+ /**
1193
+ * Filter which bot_api_keys to update
1194
+ */
1195
+ where?: Prisma.bot_api_keysWhereInput
1196
+ /**
1197
+ * Limit how many bot_api_keys to update.
1198
+ */
1199
+ limit?: number
1200
+ /**
1201
+ * Choose, which related nodes to fetch as well
1202
+ */
1203
+ include?: Prisma.bot_api_keysIncludeUpdateManyAndReturn<ExtArgs> | null
1204
+ }
1205
+
1206
+ /**
1207
+ * bot_api_keys upsert
1208
+ */
1209
+ export type bot_api_keysUpsertArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
1210
+ /**
1211
+ * Select specific fields to fetch from the bot_api_keys
1212
+ */
1213
+ select?: Prisma.bot_api_keysSelect<ExtArgs> | null
1214
+ /**
1215
+ * Omit specific fields from the bot_api_keys
1216
+ */
1217
+ omit?: Prisma.bot_api_keysOmit<ExtArgs> | null
1218
+ /**
1219
+ * Choose, which related nodes to fetch as well
1220
+ */
1221
+ include?: Prisma.bot_api_keysInclude<ExtArgs> | null
1222
+ /**
1223
+ * The filter to search for the bot_api_keys to update in case it exists.
1224
+ */
1225
+ where: Prisma.bot_api_keysWhereUniqueInput
1226
+ /**
1227
+ * In case the bot_api_keys found by the `where` argument doesn't exist, create a new bot_api_keys with this data.
1228
+ */
1229
+ create: Prisma.XOR<Prisma.bot_api_keysCreateInput, Prisma.bot_api_keysUncheckedCreateInput>
1230
+ /**
1231
+ * In case the bot_api_keys was found with the provided `where` argument, update it with this data.
1232
+ */
1233
+ update: Prisma.XOR<Prisma.bot_api_keysUpdateInput, Prisma.bot_api_keysUncheckedUpdateInput>
1234
+ }
1235
+
1236
+ /**
1237
+ * bot_api_keys delete
1238
+ */
1239
+ export type bot_api_keysDeleteArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
1240
+ /**
1241
+ * Select specific fields to fetch from the bot_api_keys
1242
+ */
1243
+ select?: Prisma.bot_api_keysSelect<ExtArgs> | null
1244
+ /**
1245
+ * Omit specific fields from the bot_api_keys
1246
+ */
1247
+ omit?: Prisma.bot_api_keysOmit<ExtArgs> | null
1248
+ /**
1249
+ * Choose, which related nodes to fetch as well
1250
+ */
1251
+ include?: Prisma.bot_api_keysInclude<ExtArgs> | null
1252
+ /**
1253
+ * Filter which bot_api_keys to delete.
1254
+ */
1255
+ where: Prisma.bot_api_keysWhereUniqueInput
1256
+ }
1257
+
1258
+ /**
1259
+ * bot_api_keys deleteMany
1260
+ */
1261
+ export type bot_api_keysDeleteManyArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
1262
+ /**
1263
+ * Filter which bot_api_keys to delete
1264
+ */
1265
+ where?: Prisma.bot_api_keysWhereInput
1266
+ /**
1267
+ * Limit how many bot_api_keys to delete.
1268
+ */
1269
+ limit?: number
1270
+ }
1271
+
1272
+ /**
1273
+ * bot_api_keys without action
1274
+ */
1275
+ export type bot_api_keysDefaultArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
1276
+ /**
1277
+ * Select specific fields to fetch from the bot_api_keys
1278
+ */
1279
+ select?: Prisma.bot_api_keysSelect<ExtArgs> | null
1280
+ /**
1281
+ * Omit specific fields from the bot_api_keys
1282
+ */
1283
+ omit?: Prisma.bot_api_keysOmit<ExtArgs> | null
1284
+ /**
1285
+ * Choose, which related nodes to fetch as well
1286
+ */
1287
+ include?: Prisma.bot_api_keysInclude<ExtArgs> | null
1288
+ }