thursday-agent 0.17.2 → 0.19.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 (444) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +4 -2
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/routes-manifest.json +28 -12
  6. package/.next/server/app/_global-error/page.js.nft.json +1 -1
  7. package/.next/server/app/_global-error.html +1 -1
  8. package/.next/server/app/_global-error.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  12. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  13. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  14. package/.next/server/app/_not-found.html +1 -1
  15. package/.next/server/app/_not-found.rsc +12 -12
  16. package/.next/server/app/_not-found.segments/_full.segment.rsc +12 -12
  17. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +11 -11
  18. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  19. package/.next/server/app/api/artifact/route.js +7 -7
  20. package/.next/server/app/api/artifact/route.js.nft.json +1 -1
  21. package/.next/server/app/api/bot/memory/files/route.js +4 -4
  22. package/.next/server/app/api/bot/memory/files/route.js.nft.json +1 -1
  23. package/.next/server/app/api/bot/memory/route.js +4 -4
  24. package/.next/server/app/api/bot/memory/route.js.nft.json +1 -1
  25. package/.next/server/app/api/bot/route.js +4 -4
  26. package/.next/server/app/api/bot/route.js.nft.json +1 -1
  27. package/.next/server/app/api/bot/thread/[id]/route.js +1 -1
  28. package/.next/server/app/api/bot/thread/[id]/route.js.nft.json +1 -1
  29. package/.next/server/app/api/bot/thread/file/route/app-paths-manifest.json +3 -0
  30. package/.next/server/app/api/bot/thread/file/route.js +29 -0
  31. package/.next/server/app/api/bot/thread/file/route.js.nft.json +1 -0
  32. package/.next/server/app/api/bot/thread/file/route_client-reference-manifest.js +3 -0
  33. package/.next/server/app/api/bot/thread/route.js +1 -1
  34. package/.next/server/app/api/bot/thread/route.js.nft.json +1 -1
  35. package/.next/server/app/api/config/route.js +1 -1
  36. package/.next/server/app/api/config/route.js.nft.json +1 -1
  37. package/.next/server/app/api/events/route.js +2 -2
  38. package/.next/server/app/api/events/route.js.nft.json +1 -1
  39. package/.next/server/app/api/favicon/[host]/route.js.nft.json +1 -1
  40. package/.next/server/app/api/file/[...path]/route.js +4 -4
  41. package/.next/server/app/api/file/[...path]/route.js.nft.json +1 -1
  42. package/.next/server/app/api/llm-model/automatic/route.js +3 -3
  43. package/.next/server/app/api/llm-model/automatic/route.js.nft.json +1 -1
  44. package/.next/server/app/api/llm-model/catalog/[provider]/route/app-paths-manifest.json +3 -0
  45. package/.next/server/app/api/llm-model/catalog/{route.js → [provider]/route.js} +8 -8
  46. package/.next/server/app/api/llm-model/catalog/[provider]/route.js.nft.json +1 -0
  47. package/.next/server/app/api/llm-model/catalog/[provider]/route_client-reference-manifest.js +3 -0
  48. package/.next/server/app/api/llm-model/credits/[provider]/route/app-paths-manifest.json +3 -0
  49. package/.next/server/app/api/llm-model/credits/[provider]/route/build-manifest.json +12 -0
  50. package/.next/server/app/api/llm-model/credits/[provider]/route/server-reference-manifest.json +4 -0
  51. package/.next/server/app/api/llm-model/credits/{route.js → [provider]/route.js} +8 -8
  52. package/.next/server/app/api/llm-model/credits/[provider]/route.js.map +5 -0
  53. package/.next/server/app/api/llm-model/credits/[provider]/route.js.nft.json +1 -0
  54. package/.next/server/app/api/llm-model/credits/[provider]/route_client-reference-manifest.js +3 -0
  55. package/.next/server/app/api/llm-model/route.js +1 -1
  56. package/.next/server/app/api/llm-model/route.js.nft.json +1 -1
  57. package/.next/server/app/api/llm-model/subscription/route.js +1 -1
  58. package/.next/server/app/api/llm-model/subscription/route.js.nft.json +1 -1
  59. package/.next/server/app/api/mcp/[name]/route.js +1 -1
  60. package/.next/server/app/api/mcp/[name]/route.js.nft.json +1 -1
  61. package/.next/server/app/api/mcp/oauth/callback/route.js +2 -2
  62. package/.next/server/app/api/mcp/oauth/callback/route.js.nft.json +1 -1
  63. package/.next/server/app/api/mcp/route.js +1 -1
  64. package/.next/server/app/api/mcp/route.js.nft.json +1 -1
  65. package/.next/server/app/api/mcp/tools/route.js +1 -1
  66. package/.next/server/app/api/mcp/tools/route.js.nft.json +1 -1
  67. package/.next/server/app/api/memory/edit/route.js +12 -12
  68. package/.next/server/app/api/memory/edit/route.js.nft.json +1 -1
  69. package/.next/server/app/api/memory/route.js +1 -1
  70. package/.next/server/app/api/memory/route.js.nft.json +1 -1
  71. package/.next/server/app/api/reach/route.js +17 -17
  72. package/.next/server/app/api/reach/route.js.nft.json +1 -1
  73. package/.next/server/app/api/routine/route.js +6 -6
  74. package/.next/server/app/api/routine/route.js.nft.json +1 -1
  75. package/.next/server/app/api/running/route/app-paths-manifest.json +3 -0
  76. package/.next/server/app/api/running/route/build-manifest.json +12 -0
  77. package/.next/server/app/api/running/route/server-reference-manifest.json +4 -0
  78. package/.next/server/app/api/running/route.js +10 -0
  79. package/.next/server/app/api/running/route.js.map +5 -0
  80. package/.next/server/app/api/running/route.js.nft.json +1 -0
  81. package/.next/server/app/api/running/route_client-reference-manifest.js +3 -0
  82. package/.next/server/app/api/signins/route.js +4 -4
  83. package/.next/server/app/api/signins/route.js.nft.json +1 -1
  84. package/.next/server/app/api/skills/[source]/[name]/route.js +7 -7
  85. package/.next/server/app/api/skills/[source]/[name]/route.js.nft.json +1 -1
  86. package/.next/server/app/api/skills/route.js +6 -6
  87. package/.next/server/app/api/skills/route.js.nft.json +1 -1
  88. package/.next/server/app/api/thursday/call/end/route.js +1 -1
  89. package/.next/server/app/api/thursday/call/end/route.js.nft.json +1 -1
  90. package/.next/server/app/api/thursday/call/route.js +1 -1
  91. package/.next/server/app/api/thursday/call/route.js.nft.json +1 -1
  92. package/.next/server/app/api/thursday/settings/route.js +1 -1
  93. package/.next/server/app/api/thursday/settings/route.js.nft.json +1 -1
  94. package/.next/server/app/api/thursday/text/route.js +12 -12
  95. package/.next/server/app/api/thursday/text/route.js.nft.json +1 -1
  96. package/.next/server/app/api/thursday/tool-call/route.js +13 -13
  97. package/.next/server/app/api/thursday/tool-call/route.js.nft.json +1 -1
  98. package/.next/server/app/api/workspace/files/route.js +7 -7
  99. package/.next/server/app/api/workspace/files/route.js.nft.json +1 -1
  100. package/.next/server/app/api/workspace/route.js +6 -6
  101. package/.next/server/app/api/workspace/route.js.nft.json +1 -1
  102. package/.next/server/app/artifact/[...path]/page/server-reference-manifest.json +94 -6
  103. package/.next/server/app/artifact/[...path]/page.js +9 -5
  104. package/.next/server/app/artifact/[...path]/page.js.nft.json +1 -1
  105. package/.next/server/app/artifact/[...path]/page_client-reference-manifest.js +1 -1
  106. package/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  107. package/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  108. package/.next/server/app/page/server-reference-manifest.json +161 -128
  109. package/.next/server/app/page.js +10 -9
  110. package/.next/server/app/page.js.nft.json +1 -1
  111. package/.next/server/app/page_client-reference-manifest.js +1 -1
  112. package/.next/server/app-paths-manifest.json +4 -2
  113. package/.next/server/chunks/[root-of-the-server]__00qyw01._.js +1 -1
  114. package/.next/server/chunks/[root-of-the-server]__02ra64t._.js +5 -0
  115. package/.next/server/chunks/{[root-of-the-server]__05dp5tr._.js → [root-of-the-server]__06ky9of._.js} +2 -2
  116. package/.next/server/chunks/[root-of-the-server]__0b565-x._.js +7 -0
  117. package/.next/server/chunks/[root-of-the-server]__0bmtib_._.js +7 -0
  118. package/.next/server/chunks/[root-of-the-server]__0bqveex._.js +1 -1
  119. package/.next/server/chunks/[root-of-the-server]__0brmiv2._.js +7 -0
  120. package/.next/server/chunks/[root-of-the-server]__0eivkvk._.js +2 -2
  121. package/.next/server/chunks/[root-of-the-server]__0f7m79q._.js +1 -1
  122. package/.next/server/chunks/[root-of-the-server]__0g38-aj._.js +2 -2
  123. package/.next/server/chunks/[root-of-the-server]__0gvdr2h._.js +5 -0
  124. package/.next/server/chunks/[root-of-the-server]__0h656y-._.js +2 -2
  125. package/.next/server/chunks/[root-of-the-server]__0hm3tiq._.js +2 -2
  126. package/.next/server/chunks/[root-of-the-server]__0hzdqnv._.js +2 -2
  127. package/.next/server/chunks/[root-of-the-server]__0kzmxpg._.js +3 -0
  128. package/.next/server/chunks/[root-of-the-server]__0mgyt8p._.js +2 -2
  129. package/.next/server/chunks/[root-of-the-server]__0mrk2it._.js +1 -1
  130. package/.next/server/chunks/[root-of-the-server]__0o5s5-o._.js +5 -0
  131. package/.next/server/chunks/[root-of-the-server]__0p80i1n._.js +1 -1
  132. package/.next/server/chunks/[root-of-the-server]__0qdoc_9._.js +5 -0
  133. package/.next/server/chunks/[root-of-the-server]__0qzho69._.js +1 -1
  134. package/.next/server/chunks/[root-of-the-server]__0sm5xvm._.js +1 -1
  135. package/.next/server/chunks/[root-of-the-server]__0v_kuor._.js +5 -0
  136. package/.next/server/chunks/{[root-of-the-server]__061o2_x._.js → [root-of-the-server]__0ypkfbu._.js} +1 -1
  137. package/.next/server/chunks/[root-of-the-server]__1-18_pz._.js +1 -1
  138. package/.next/server/chunks/[root-of-the-server]__13hng6h._.js +1 -1
  139. package/.next/server/chunks/{[root-of-the-server]__01k3vi3._.js → [root-of-the-server]__14iga7p._.js} +1 -1
  140. package/.next/server/chunks/[root-of-the-server]__16gn7zn._.js +3 -0
  141. package/.next/server/chunks/[root-of-the-server]__18e65_-._.js +3 -0
  142. package/.next/server/chunks/[root-of-the-server]__1_04mcf._.js +2 -2
  143. package/.next/server/chunks/[root-of-the-server]__1_cgawk._.js +5 -0
  144. package/.next/server/chunks/[root-of-the-server]__1ceammd._.js +1 -1
  145. package/.next/server/chunks/[root-of-the-server]__1ckt1yj._.js +1 -1
  146. package/.next/server/chunks/[root-of-the-server]__1cu5f3z._.js +1 -1
  147. package/.next/server/chunks/[root-of-the-server]__1dth047._.js +5 -0
  148. package/.next/server/chunks/{[root-of-the-server]__1k2qs1m._.js → [root-of-the-server]__1fc6v12._.js} +1 -1
  149. package/.next/server/chunks/[root-of-the-server]__1hviq62._.js +2 -2
  150. package/.next/server/chunks/[root-of-the-server]__1ksm9m-._.js +12 -0
  151. package/.next/server/chunks/[root-of-the-server]__1m1q6u5._.js +3 -0
  152. package/.next/server/chunks/[root-of-the-server]__1m_dmf6._.js +5 -0
  153. package/.next/server/chunks/[root-of-the-server]__1mys2c3._.js +5 -0
  154. package/.next/server/chunks/[root-of-the-server]__1ndi14y._.js +1 -1
  155. package/.next/server/chunks/[root-of-the-server]__1p0njle._.js +5 -0
  156. package/.next/server/chunks/[root-of-the-server]__1p47fbb._.js +2 -2
  157. package/.next/server/chunks/[root-of-the-server]__1pugoq0._.js +1 -1
  158. package/.next/server/chunks/{[root-of-the-server]__0ts7ai0._.js → [root-of-the-server]__1trns9g._.js} +1 -1
  159. package/.next/server/chunks/[root-of-the-server]__1ygplx1._.js +1 -1
  160. package/.next/server/chunks/[root-of-the-server]__1zn039k._.js +1 -1
  161. package/.next/server/chunks/[root-of-the-server]__20w_g71._.js +3 -0
  162. package/.next/server/chunks/_01c32w9._.js +1 -1
  163. package/.next/server/chunks/_02bov6_._.js +1 -1
  164. package/.next/server/chunks/_06hnfi8._.js +2 -2
  165. package/.next/server/chunks/_06u9yo-._.js +1 -1
  166. package/.next/server/chunks/_08354bn._.js +12 -11
  167. package/.next/server/chunks/_08_-9ay._.js +7 -0
  168. package/.next/server/chunks/_08s4vft._.js +1 -1
  169. package/.next/server/chunks/_0bgjf07._.js +5 -0
  170. package/.next/server/chunks/_0c49lmw._.js +1 -1
  171. package/.next/server/chunks/_0fb6dvr._.js +1 -1
  172. package/.next/server/chunks/_0hgvg55._.js +1 -1
  173. package/.next/server/chunks/_0iw19ig._.js +1 -1
  174. package/.next/server/chunks/_0poi1t2._.js +1 -1
  175. package/.next/server/chunks/_0s8ao8z._.js +1 -1
  176. package/.next/server/chunks/_0t_7gji._.js +1 -1
  177. package/.next/server/chunks/_0ucx1jv._.js +1 -1
  178. package/.next/server/chunks/_0uzj57i._.js +1 -1
  179. package/.next/server/chunks/_0wyh244._.js +112 -0
  180. package/.next/server/chunks/_1-sk_q4._.js +1 -1
  181. package/.next/server/chunks/_108gsm8._.js +2 -2
  182. package/.next/server/chunks/_136j09a._.js +5 -5
  183. package/.next/server/chunks/_15negpy._.js +2 -2
  184. package/.next/server/chunks/_1d7og_q._.js +1 -1
  185. package/.next/server/chunks/_1dxq827._.js +2 -2
  186. package/.next/server/chunks/_1e54wxa._.js +1 -1
  187. package/.next/server/chunks/_1frcwj1._.js +1 -1
  188. package/.next/server/chunks/_1gn2r2q._.js +8 -6
  189. package/.next/server/chunks/_1gxankq._.js +2 -2
  190. package/.next/server/chunks/_1i3uucm._.js +1 -1
  191. package/.next/server/chunks/_1jvy78-._.js +5 -0
  192. package/.next/server/chunks/_1lg0lsu._.js +53 -0
  193. package/.next/server/chunks/_1njolhx._.js +294 -0
  194. package/.next/server/chunks/_1q6e56i._.js +8 -6
  195. package/.next/server/chunks/_1qgix-j._.js +1 -1
  196. package/.next/server/chunks/_1wtb-77._.js +294 -0
  197. package/.next/server/chunks/_1wwl_7o._.js +1 -1
  198. package/.next/server/chunks/_1y8w80a._.js +5 -5
  199. package/.next/server/chunks/_1yx285_._.js +3 -0
  200. package/.next/server/chunks/_20qn224._.js +3 -0
  201. package/.next/server/chunks/_211dn2c._.js +1 -1
  202. package/.next/server/chunks/_next-internal_server_app_api_bot_thread_file_route_actions_0q3be0o.js +3 -0
  203. package/.next/server/chunks/_next-internal_server_app_api_llm-model_catalog_[provider]_route_actions_1i0449q.js +3 -0
  204. package/.next/server/chunks/_next-internal_server_app_api_llm-model_credits_[provider]_route_actions_0iui9hz.js +3 -0
  205. package/.next/server/chunks/_next-internal_server_app_api_running_route_actions_0o1g-aw.js +3 -0
  206. package/.next/server/chunks/config_ts_1g4sz5o._.js +1 -1
  207. package/.next/server/chunks/features_bot_08z387_._.js +3 -3
  208. package/.next/server/chunks/features_bot_0zy_q8y._.js +7 -7
  209. package/.next/server/chunks/features_bot_1dfrdsb._.js +7 -7
  210. package/.next/server/chunks/features_workspace_workspace_ts_13h82gv._.js +3 -3
  211. package/.next/server/chunks/features_workspace_workspace_ts_1iyjroj._.js +3 -3
  212. package/.next/server/chunks/{node_modules_1rosz79._.js → node_modules_035o7ku._.js} +1 -1
  213. package/.next/server/chunks/{node_modules_1er1u8w._.js → node_modules_0tn5t13._.js} +1 -1
  214. package/.next/server/chunks/{node_modules_103lpef._.js → node_modules_12oq3hr._.js} +1 -1
  215. package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_0g87zst._.js → node_modules_consola_dist_chunks_prompt_mjs_0yd5xa0._.js} +1 -1
  216. package/.next/server/chunks/ssr/[root-of-the-server]__04upd5v._.js +1 -1
  217. package/.next/server/chunks/ssr/[root-of-the-server]__0p0mv2u._.js +3 -0
  218. package/.next/server/chunks/ssr/[root-of-the-server]__0sk5enu._.js +3 -0
  219. package/.next/server/chunks/ssr/[root-of-the-server]__0xyaud4._.js +3 -0
  220. package/.next/server/chunks/ssr/[root-of-the-server]__1-gi9sm._.js +3 -0
  221. package/.next/server/chunks/ssr/[root-of-the-server]__16nn3pe._.js +3 -0
  222. package/.next/server/chunks/ssr/[root-of-the-server]__1867koj._.js +1 -1
  223. package/.next/server/chunks/ssr/[root-of-the-server]__1c8-7cw._.js +3 -0
  224. package/.next/server/chunks/ssr/{[root-of-the-server]__1d7usu0._.js → [root-of-the-server]__1qn0axo._.js} +2 -2
  225. package/.next/server/chunks/ssr/[root-of-the-server]__1tb5vve._.js +47 -0
  226. package/.next/server/chunks/ssr/_02cm0fr._.js +5 -0
  227. package/.next/server/chunks/ssr/{features_bot_1knyan7._.js → _07nmtxo._.js} +2 -2
  228. package/.next/server/chunks/ssr/_088vzgn._.js +1 -1
  229. package/.next/server/chunks/ssr/{_1dfv66y._.js → _0bg1u1j._.js} +2 -2
  230. package/.next/server/chunks/ssr/_0cv9tmv._.js +1 -1
  231. package/.next/server/chunks/ssr/{_10-_awu._.js → _0f9hx5p._.js} +2 -2
  232. package/.next/server/chunks/ssr/_0g9ula_._.js +3 -0
  233. package/.next/server/chunks/ssr/{_1aqjk-1._.js → _0irozu9._.js} +2 -2
  234. package/.next/server/chunks/ssr/{_123y-ah._.js → _0is8m6y._.js} +2 -2
  235. package/.next/server/chunks/ssr/_0iwsdp7._.js +3 -0
  236. package/.next/server/chunks/ssr/_0l7rjg5._.js +1 -1
  237. package/.next/server/chunks/ssr/{lib_logger_ts_0-olsze._.js → _0mfgsk-._.js} +4 -2
  238. package/.next/server/chunks/ssr/{_0fo4552._.js → _0nk80t6._.js} +53 -13
  239. package/.next/server/chunks/ssr/_0p6w0ef._.js +3 -0
  240. package/.next/server/chunks/ssr/_0pbav_w._.js +3 -0
  241. package/.next/server/chunks/ssr/{_0vo_oym._.js → _0q-mdwv._.js} +8 -8
  242. package/.next/server/chunks/ssr/_0s5_ahb._.js +3 -0
  243. package/.next/server/chunks/ssr/{_0e2fnvg._.js → _0t5f2c3._.js} +2 -2
  244. package/.next/server/chunks/ssr/_0v9r8g2._.js +1 -1
  245. package/.next/server/chunks/ssr/_0x8ophf._.js +1 -1
  246. package/.next/server/chunks/ssr/_0x9f717._.js +60 -0
  247. package/.next/server/chunks/ssr/_107vtdk._.js +162 -0
  248. package/.next/server/chunks/ssr/{_17a4qyk._.js → _12lql1x._.js} +3 -3
  249. package/.next/server/chunks/ssr/{_163dr78._.js → _165wnr4._.js} +2 -2
  250. package/.next/server/chunks/ssr/_16_7zeo._.js +3 -0
  251. package/.next/server/chunks/ssr/_17komoi._.js +3 -0
  252. package/.next/server/chunks/ssr/_190hjys._.js +3 -0
  253. package/.next/server/chunks/ssr/_1bfrntd._.js +6 -0
  254. package/.next/server/chunks/ssr/{_01al00i._.js → _1booff4._.js} +2 -2
  255. package/.next/server/chunks/ssr/{_0xfafez._.js → _1ew1j7l._.js} +2 -2
  256. package/.next/server/chunks/ssr/_1i2swyr._.js +3 -0
  257. package/.next/server/chunks/ssr/_1neoj22._.js +1 -1
  258. package/.next/server/chunks/ssr/_1qsa25k._.js +3 -0
  259. package/.next/server/chunks/ssr/_1soynbw._.js +6 -0
  260. package/.next/server/chunks/ssr/_1vc2xmu._.js +3 -0
  261. package/.next/server/chunks/ssr/{_14oirtb._.js → _1wq90j8._.js} +2 -2
  262. package/.next/server/chunks/ssr/_1xwtbdz._.js +3 -0
  263. package/.next/server/chunks/ssr/_1zrhkf0._.js +310 -0
  264. package/.next/server/chunks/ssr/_21awrs2._.js +5 -0
  265. package/.next/server/chunks/ssr/features_0796o8r._.js +1 -1
  266. package/.next/server/chunks/ssr/features_bot_0tb4ui-._.js +2 -2
  267. package/.next/server/chunks/ssr/features_bot_1c56lew._.js +37 -0
  268. package/.next/server/chunks/ssr/features_bot_1fn_grf._.js +3 -0
  269. package/.next/server/chunks/ssr/{features_config_09n-q9q._.js → features_config_05zi68v._.js} +3 -3
  270. package/.next/server/chunks/ssr/features_connectors_components_mcp-setting_tsx_0jmbgvp._.js +1 -1
  271. package/.next/server/chunks/ssr/features_memory_components_memory-setting_tsx_0oa43sw._.js +1 -1
  272. package/.next/server/chunks/ssr/features_routine_components_routine-setting_tsx_055fknz._.js +1 -1
  273. package/.next/server/chunks/ssr/features_workspace_workspace_ts_1wc7_u_._.js +4 -4
  274. package/.next/server/chunks/ssr/{node_modules_1k5i-_9._.js → node_modules_0-sux1a._.js} +1 -1
  275. package/.next/server/chunks/ssr/{node_modules_0msrhxf._.js → node_modules_01oezhb._.js} +1 -1
  276. package/.next/server/chunks/ssr/{node_modules_1gq3ght._.js → node_modules_04m6ebg._.js} +1 -1
  277. package/.next/server/chunks/ssr/{node_modules_0nmkv-v._.js → node_modules_067jfov._.js} +1 -1
  278. package/.next/server/chunks/ssr/{node_modules_0gd9hbz._.js → node_modules_06ugby3._.js} +1 -1
  279. package/.next/server/chunks/ssr/{node_modules_0d6j33x._.js → node_modules_07p51j3._.js} +1 -1
  280. package/.next/server/chunks/ssr/{node_modules_10_fv2a._.js → node_modules_0995xyq._.js} +1 -1
  281. package/.next/server/chunks/ssr/{node_modules_1lmyts8._.js → node_modules_0_uecwx._.js} +1 -1
  282. package/.next/server/chunks/ssr/{node_modules_04x5wyv._.js → node_modules_0dsyc90._.js} +1 -1
  283. package/.next/server/chunks/ssr/{node_modules_0__0tvm._.js → node_modules_0hli6s2._.js} +1 -1
  284. package/.next/server/chunks/ssr/{node_modules_0k8-y89._.js → node_modules_0m-bde_._.js} +1 -1
  285. package/.next/server/chunks/ssr/{node_modules_1p_6sq7._.js → node_modules_0oqfdbr._.js} +1 -1
  286. package/.next/server/chunks/ssr/node_modules_0qd7p5f._.js +3 -0
  287. package/.next/server/chunks/ssr/{node_modules_13g-d25._.js → node_modules_0tgy5s5._.js} +1 -1
  288. package/.next/server/chunks/ssr/{node_modules_1_8-jcj._.js → node_modules_1-kjmls._.js} +1 -1
  289. package/.next/server/chunks/ssr/{node_modules_0m73b88._.js → node_modules_1-l3ka5._.js} +1 -1
  290. package/.next/server/chunks/ssr/{node_modules_113l3e5._.js → node_modules_1-w3ayh._.js} +1 -1
  291. package/.next/server/chunks/ssr/{node_modules_0q-klni._.js → node_modules_133exgm._.js} +1 -1
  292. package/.next/server/chunks/ssr/{node_modules_1xb-ndg._.js → node_modules_17xc5_k._.js} +1 -1
  293. package/.next/server/chunks/ssr/{node_modules_021lid9._.js → node_modules_1_i_w30._.js} +1 -1
  294. package/.next/server/chunks/ssr/{node_modules_1ri_eip._.js → node_modules_1a2cjfk._.js} +1 -1
  295. package/.next/server/chunks/ssr/{node_modules_13bqv6i._.js → node_modules_1k752fe._.js} +1 -1
  296. package/.next/server/chunks/ssr/{node_modules_1qstb1x._.js → node_modules_1lie7z8._.js} +1 -1
  297. package/.next/server/chunks/ssr/{node_modules_096up6a._.js → node_modules_1mv70-y._.js} +1 -1
  298. package/.next/server/chunks/ssr/{node_modules_156kv_t._.js → node_modules_1r611t2._.js} +1 -1
  299. package/.next/server/chunks/ssr/node_modules_1vfd8dz._.js +3 -0
  300. package/.next/server/chunks/ssr/{node_modules_0cjnmzp._.js → node_modules_1yaowd7._.js} +1 -1
  301. package/.next/server/chunks/ssr/{node_modules_0nw5jz7._.js → node_modules_20a1wpo._.js} +1 -1
  302. package/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0amkw0b._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_1r8pxbe._.js} +1 -1
  303. package/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0zq3l45._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_1siiu4h._.js} +1 -1
  304. package/.next/server/middleware-build-manifest.js +3 -3
  305. package/.next/server/pages/404.html +1 -1
  306. package/.next/server/pages/500.html +1 -1
  307. package/.next/server/server-reference-manifest.js +1 -1
  308. package/.next/server/server-reference-manifest.json +205 -132
  309. package/.next/static/chunks/{0obogzscwwekj.js → 088d3w5qxu19g.js} +2 -2
  310. package/.next/static/chunks/0_s4z70lx1tgs.js +1 -0
  311. package/.next/static/chunks/0bxekp4hnuk1g.js +1 -0
  312. package/.next/static/chunks/{1cglo3a2mbeou.js → 0fw4u_s974j24.js} +1 -1
  313. package/.next/static/chunks/0hy2x7qhk8wgx.css +1 -0
  314. package/.next/static/chunks/{2zbl41hed17g3.js → 0n_eshmn_7wfn.js} +2 -2
  315. package/.next/static/chunks/0q9b2n6l4flqb.js +1 -0
  316. package/.next/static/chunks/0ulcp_u_y1u0b.js +15 -0
  317. package/.next/static/chunks/0vj93zo0yvix9.js +35 -0
  318. package/.next/static/chunks/{166smhw8v-s3j.js → 10f98bh4hdmhe.js} +1 -1
  319. package/.next/static/chunks/1b8bce_z_act0.js +1 -0
  320. package/.next/static/chunks/1c32d2azsjaj_.js +1 -0
  321. package/.next/static/chunks/{1xv4g10m-cl1s.js → 1fs829mz69pxz.js} +1 -1
  322. package/.next/static/chunks/1lwlh4mo_vv8d.js +1 -0
  323. package/.next/static/chunks/{0p2f6uv4xytfm.js → 1po8fkg40peu-.js} +1 -1
  324. package/.next/static/chunks/{0uxq_vs6uxi-b.js → 1rg6b9l5fm1hj.js} +1 -1
  325. package/.next/static/chunks/{3b96xy59nl_gd.js → 26g3iwfuad-7p.js} +1 -1
  326. package/.next/static/chunks/2bjnmtke_q43c.js +1 -0
  327. package/.next/static/chunks/2c86k0o-1p9_w.js +1 -0
  328. package/.next/static/chunks/2gf4t0d76bvyv.js +1 -0
  329. package/.next/static/chunks/2rj3q_ahctv19.js +1 -0
  330. package/.next/static/chunks/{2lhc74urf3acr.js → 2x6-fpctvucte.js} +1 -1
  331. package/.next/static/chunks/2yicf7bky866n.js +3 -0
  332. package/.next/static/chunks/337g9g_ux2gj-.js +1 -0
  333. package/.next/static/chunks/350ws7svim7ij.js +58 -0
  334. package/.next/static/chunks/{0o7o0eb7ihxi6.js → 396enq-m0sss5.js} +1 -1
  335. package/.next/static/chunks/3e1w_nwfb39j-.js +1 -0
  336. package/.next/static/chunks/3v3ooretb54ag.js +1 -0
  337. package/.next/static/chunks/40re_3ukjulg9.js +1 -0
  338. package/.next/static/chunks/{3gsxnqqqphh-1.js → 44bcbnmup71so.js} +1 -1
  339. package/.next/static/chunks/{2qgkbdshzpq1c.js → 458dtbsemx996.js} +1 -1
  340. package/README.md +5 -5
  341. package/bin/background.mjs +995 -0
  342. package/bin/lock.mjs +121 -5
  343. package/bin/thursday.mjs +126 -30
  344. package/bin/tools.mjs +72 -1
  345. package/database/migrations/20260926021847_thread_cache_tokens/migration.sql +2 -0
  346. package/database/migrations/20260926021847_thread_cache_tokens/snapshot.json +1949 -0
  347. package/guide/bots.md +173 -317
  348. package/guide/calls.md +106 -146
  349. package/guide/index.md +2 -2
  350. package/guide/memory.md +14 -18
  351. package/guide/phone.md +86 -133
  352. package/guide/setup.md +141 -172
  353. package/guide/trouble.md +42 -65
  354. package/package.json +1 -1
  355. package/seed-skills/concierge/travel/references/itinerary.md +1 -1
  356. package/seed-skills/concierge/travel/scripts/itinerary.mjs +8 -3
  357. package/skills/artifact/references/book.md +3 -3
  358. package/skills/artifact/runtime/shell/shell.js +32 -3
  359. package/.next/server/app/api/llm-model/catalog/route/app-paths-manifest.json +0 -3
  360. package/.next/server/app/api/llm-model/catalog/route.js.nft.json +0 -1
  361. package/.next/server/app/api/llm-model/catalog/route_client-reference-manifest.js +0 -3
  362. package/.next/server/app/api/llm-model/credits/route/app-paths-manifest.json +0 -3
  363. package/.next/server/app/api/llm-model/credits/route.js.nft.json +0 -1
  364. package/.next/server/app/api/llm-model/credits/route_client-reference-manifest.js +0 -3
  365. package/.next/server/chunks/[root-of-the-server]__01ypm_z._.js +0 -3
  366. package/.next/server/chunks/[root-of-the-server]__021dkui._.js +0 -3
  367. package/.next/server/chunks/[root-of-the-server]__03xamry._.js +0 -3
  368. package/.next/server/chunks/[root-of-the-server]__09gdscj._.js +0 -7
  369. package/.next/server/chunks/[root-of-the-server]__0ljizgj._.js +0 -5
  370. package/.next/server/chunks/[root-of-the-server]__0nmust6._.js +0 -5
  371. package/.next/server/chunks/[root-of-the-server]__0svzjwa._.js +0 -7
  372. package/.next/server/chunks/[root-of-the-server]__1-rmal0._.js +0 -5
  373. package/.next/server/chunks/[root-of-the-server]__10xnb7e._.js +0 -3
  374. package/.next/server/chunks/[root-of-the-server]__1_h4hf9._.js +0 -7
  375. package/.next/server/chunks/[root-of-the-server]__1c2kwku._.js +0 -12
  376. package/.next/server/chunks/[root-of-the-server]__1t02-1p._.js +0 -3
  377. package/.next/server/chunks/[root-of-the-server]__1t0jj1j._.js +0 -5
  378. package/.next/server/chunks/[root-of-the-server]__1v7x5ym._.js +0 -3
  379. package/.next/server/chunks/[root-of-the-server]__1vlxv19._.js +0 -5
  380. package/.next/server/chunks/_07nxi75._.js +0 -254
  381. package/.next/server/chunks/_08btiir._.js +0 -7
  382. package/.next/server/chunks/_0j0-gq6._.js +0 -5
  383. package/.next/server/chunks/_0p6v1fr._.js +0 -5
  384. package/.next/server/chunks/_0srlnvd._.js +0 -16
  385. package/.next/server/chunks/_0xygcxs._.js +0 -254
  386. package/.next/server/chunks/_1ic3bew._.js +0 -5
  387. package/.next/server/chunks/_next-internal_server_app_api_llm-model_catalog_route_actions_1eu2y41.js +0 -3
  388. package/.next/server/chunks/_next-internal_server_app_api_llm-model_credits_route_actions_0v424pb.js +0 -3
  389. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_04oxl25._.js +0 -3
  390. package/.next/server/chunks/ssr/[root-of-the-server]__0-af_o7._.js +0 -3
  391. package/.next/server/chunks/ssr/[root-of-the-server]__09f39cp._.js +0 -4
  392. package/.next/server/chunks/ssr/[root-of-the-server]__0ouu4qp._.js +0 -3
  393. package/.next/server/chunks/ssr/[root-of-the-server]__0q9g9ea._.js +0 -5
  394. package/.next/server/chunks/ssr/[root-of-the-server]__17h1ggo._.js +0 -46
  395. package/.next/server/chunks/ssr/[root-of-the-server]__1jyeu61._.js +0 -5
  396. package/.next/server/chunks/ssr/_0afrpci._.js +0 -3
  397. package/.next/server/chunks/ssr/_0bgse1c._.js +0 -162
  398. package/.next/server/chunks/ssr/_0jstvlg._.js +0 -39
  399. package/.next/server/chunks/ssr/_0qsmpcu._.js +0 -3
  400. package/.next/server/chunks/ssr/_0z38nha._.js +0 -3
  401. package/.next/server/chunks/ssr/_1-41lck._.js +0 -3
  402. package/.next/server/chunks/ssr/_10_ph1t._.js +0 -3
  403. package/.next/server/chunks/ssr/_116lfdc._.js +0 -3
  404. package/.next/server/chunks/ssr/_14dfh7a._.js +0 -4
  405. package/.next/server/chunks/ssr/_17qtuv7._.js +0 -3
  406. package/.next/server/chunks/ssr/_19jez1a._.js +0 -3
  407. package/.next/server/chunks/ssr/_1_5xof_._.js +0 -3
  408. package/.next/server/chunks/ssr/_1alxym6._.js +0 -3
  409. package/.next/server/chunks/ssr/_1ou5sj0._.js +0 -3
  410. package/.next/server/chunks/ssr/_1tmw842._.js +0 -5
  411. package/.next/server/chunks/ssr/_1uij_rj._.js +0 -3
  412. package/.next/server/chunks/ssr/_1w9w1ok._.js +0 -3
  413. package/.next/server/chunks/ssr/_20gq_24._.js +0 -3
  414. package/.next/server/chunks/ssr/features_bot_0ouemw8._.js +0 -3
  415. package/.next/server/chunks/ssr/node_modules_@base-ui_react_1j9i1ho._.js +0 -3
  416. package/.next/static/chunks/01l7kw74vfp32.js +0 -1
  417. package/.next/static/chunks/0a5_-jqhaktjj.js +0 -1
  418. package/.next/static/chunks/0npvak0wpgagb.js +0 -1
  419. package/.next/static/chunks/19l81deo_pyoc.js +0 -1
  420. package/.next/static/chunks/1bnhw-5fj7aiz.js +0 -1
  421. package/.next/static/chunks/1in6nxpu33iab.js +0 -1
  422. package/.next/static/chunks/1u7kg91f9qy3g.js +0 -1
  423. package/.next/static/chunks/2ajs12-fcdwzm.js +0 -1
  424. package/.next/static/chunks/2i7qtmxc1kuqg.js +0 -1
  425. package/.next/static/chunks/2kz1f6r59nky0.js +0 -3
  426. package/.next/static/chunks/31kn4_h2rvf6k.css +0 -1
  427. package/.next/static/chunks/35jj-5u4te56r.js +0 -1
  428. package/.next/static/chunks/37ixzapa06xlo.js +0 -1
  429. package/.next/static/chunks/3jtcieuk1l6tw.js +0 -1
  430. package/.next/static/chunks/3k1d8y03t5nax.js +0 -58
  431. package/.next/static/chunks/3sla-dm1puqd1.js +0 -35
  432. package/.next/static/chunks/3t2c76awm9k_p.js +0 -1
  433. package/.next/static/chunks/3vrmcm31ih7gb.js +0 -1
  434. package/.next/static/chunks/3yiqr95d7ybeq.js +0 -15
  435. package/bin/autostart.mjs +0 -162
  436. /package/.next/server/app/api/{llm-model/catalog → bot/thread/file}/route/build-manifest.json +0 -0
  437. /package/.next/server/app/api/{llm-model/catalog → bot/thread/file}/route/server-reference-manifest.json +0 -0
  438. /package/.next/server/app/api/{llm-model/catalog → bot/thread/file}/route.js.map +0 -0
  439. /package/.next/server/app/api/llm-model/{credits → catalog/[provider]}/route/build-manifest.json +0 -0
  440. /package/.next/server/app/api/llm-model/{credits → catalog/[provider]}/route/server-reference-manifest.json +0 -0
  441. /package/.next/server/app/api/llm-model/{credits → catalog/[provider]}/route.js.map +0 -0
  442. /package/.next/static/{8I2hKtciyA9LXvd8txuOz → YhaRHJqObuAcXZe5VLFs0}/_buildManifest.js +0 -0
  443. /package/.next/static/{8I2hKtciyA9LXvd8txuOz → YhaRHJqObuAcXZe5VLFs0}/_clientMiddlewareManifest.js +0 -0
  444. /package/.next/static/{8I2hKtciyA9LXvd8txuOz → YhaRHJqObuAcXZe5VLFs0}/_ssgManifest.js +0 -0
@@ -1,5 +1,5 @@
1
- module.exports=[500874,(e,t,a)=>{t.exports=e.x("buffer",()=>require("buffer"))},874533,(e,t,a)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},912714,(e,t,a)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},660526,(e,t,a)=>{t.exports=e.x("node:os",()=>require("node:os"))},605365,(e,t,a)=>{t.exports=e.x("process",()=>require("process"))},531858,e=>e.a(async(t,a)=>{try{var n=e.i(696968),i=e.i(91264),r=t([n]);[n]=r.then?(await r)():r;let s=(0,i.serverRoute)(()=>(0,n.findAllSkills)());e.s(["GET",0,s]),a()}catch(e){a(e)}},!1),480267,e=>{"use strict";var t=e.i(747909),a=e.i(174017),n=e.i(996250),i=e.i(759756),r=e.i(561916),s=e.i(174677),o=e.i(869741),l=e.i(316795),d=e.i(487718),u=e.i(995169),h=e.i(47587),c=e.i(666012),p=e.i(570101),m=e.i(626937),E=e.i(10372),f=e.i(193695);e.i(52474);var y=e.i(600220);let g=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/skills/route",pathname:"/api/skills",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/skills/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(531858),...{}}),{workAsyncStorage:b,workUnitAsyncStorage:w,serverHooks:k}=g;async function R(e,t,n){n.requestMeta&&(0,i.setRequestMeta)(e,n.requestMeta),g.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let b="/api/skills/route";b=b.replace(/\/index$/,"")||"/";let w=await g.prepare(e,t,{srcPage:b,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:k,deploymentId:R,params:v,nextConfig:_,parsedUrl:T,isDraftMode:O,prerenderManifest:A,routerServerContext:S,isOnDemandRevalidate:C,revalidateOnlyGenerated:x,resolvedPathname:D,clientReferenceManifest:N,serverActionsManifest:L}=w,I=(0,o.normalizeAppPath)(b),P=!!(A.dynamicRoutes[I]||A.routes[D]),M=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,T,!1):t.end("This page could not be found"),null);if(P&&!O){let e=!!A.routes[D],t=A.dynamicRoutes[I];if(t&&!1===t.fallback&&!e){if(_.adapterPath)return await M();throw new f.NoFallbackError}}let K=null;!P||g.isDev||O||(K="/index"===(K=D)?"/":K);let q=!0===g.isDev||!P,H=P&&!q;L&&N&&(0,s.setManifestsSingleton)({page:b,clientReferenceManifest:N,serverActionsManifest:L});let F=e.method||"GET",U=(0,r.getTracer)(),V=U.getActiveScopeSpan(),z=!!(null==S?void 0:S.isWrappedByNextServer),j=!!(0,i.getRequestMeta)(e,"minimalMode"),B=(0,i.getRequestMeta)(e,"incrementalCache")||await g.getIncrementalCache(e,_,A,j);null==B||B.resetRequestCache(),globalThis.__incrementalCache=B;let Y={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!_.experimental.authInterrupts,useCacheTimeout:_.experimental.useCacheTimeout},cacheComponents:!!_.cacheComponents,validationLevel:_.experimental.instantInsights.validationLevel,supportsDynamicResponse:q,incrementalCache:B,hmrRefreshHash:(0,i.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:_.cacheLife,staticPageGenerationTimeout:_.staticPageGenerationTimeout,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,n,i)=>g.onRequestError(e,t,n,i,S)},sharedContext:{buildId:k,deploymentId:R}},$=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),X=d.NextRequestAdapter.fromNodeNextRequest($,(0,d.signalFromNodeResponse)(t)),W=async({previousCacheEntry:a})=>{try{if(!j&&C&&x&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await g.handle(X,Y);e.fetchMetrics=Y.renderOpts.fetchMetrics;let r=Y.renderOpts.pendingWaitUntil;r&&n.waitUntil&&(n.waitUntil(r),r=void 0);let s=Y.renderOpts.collectedTags;if(!P)return await (0,c.sendResponse)($,G,i,r),null;{let e=await i.blob(),t=(0,p.toNodeOutgoingHttpHeaders)(i.headers);s&&(t[E.NEXT_CACHE_TAGS_HEADER]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==Y.renderOpts.collectedRevalidate&&!(Y.renderOpts.collectedRevalidate>=E.INFINITE_CACHE)&&Y.renderOpts.collectedRevalidate,n=void 0===Y.renderOpts.collectedExpire||Y.renderOpts.collectedExpire>=E.INFINITE_CACHE?!1!==a&&a>0?_.expireTime:void 0:Y.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:n}}}}catch(t){throw(null==a?void 0:a.isStale)&&await g.onRequestError(e,t,{routerKind:"App Router",routePath:b,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:C})},!1,S),t}},Q=async(i,s)=>{try{var o,l;let i=await g.handleResponse({req:e,nextConfig:_,cacheKey:K,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:x,responseGenerator:W,waitUntil:n.waitUntil,isMinimalMode:j});if(!P)return;if((null==i||null==(o=i.value)?void 0:o.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==i||null==(l=i.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});j||t.setHeader("x-nextjs-cache",C?"REVALIDATED":i.isMiss?"MISS":i.isStale?"STALE":"HIT"),O&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let r=(0,p.fromNodeOutgoingHttpHeaders)(i.value.headers);j&&P||r.delete(E.NEXT_CACHE_TAGS_HEADER),!i.cacheControl||t.getHeader("Cache-Control")||r.get("Cache-Control")||r.set("Cache-Control",(0,m.getCacheControlHeader)(i.cacheControl)),await (0,c.sendResponse)($,G,new Response(i.value.body,{headers:r,status:i.value.status||200}));return}catch(t){if(t instanceof f.NoFallbackError||await g.onRequestError(e,t,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:C})},!1,S),P)throw t;await (0,c.sendResponse)($,G,new Response(null,{status:500}));return}finally{(()=>{if(!i)return;let e=t.statusCode;i.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(i.setStatus({code:r.SpanStatusCode.ERROR}),i.setAttribute("error.type",e.toString()));let a=U.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==u.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=a.get("next.route")||I,o=`${F} ${n}`;i.setAttributes({"next.route":n,"http.route":n,"next.span_name":o}),i.updateName(o),s&&s!==i&&(s.setAttribute("http.route",n),s.updateName(o))})()}};if(z&&V)await Q(V,void 0);else{let t=U.getActiveScopeSpan();await U.withPropagatedContext(e.headers,()=>U.trace(u.BaseServerSpan.handleRequest,{spanName:`${F} ${b}`,kind:r.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},e=>Q(e,t)),void 0,!z)}}e.s(["handler",0,R,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:w})},"routeModule",0,g,"serverHooks",0,k,"workAsyncStorage",0,b,"workUnitAsyncStorage",0,w])},911757,e=>{"use strict";var t=e.i(469719),a=e.i(687388),n=e.i(904309),i=e.i(264079),r=e.i(899352);let s={id:"openai",label:"OpenAI",apiKeyName:i.TEXT_MODEL_PROVIDERS.openai.apiKeyName};i.TEXT_MODEL_PROVIDERS.openai.suggestModels;let o=t.z.string().max(a.COMMON_VALIDATE.prompt.max).default(""),l=t.z.object({voice:t.z.string().trim().min(1).max(128).default("marin"),persona:t.z.string().trim().min(1).max(64).default(r.DEFAULT_PERSONA),stylePrompt:o,backendModel:t.z.string().trim().min(1).max(128).default(n.LIVE_BACKEND_MODEL),backendPrompt:o,reasoningEffort:i.effortSchema.nullable().default("low"),webSearch:t.z.boolean().default(!0),readSkills:t.z.boolean().default(!1)}),d=l.parse({});e.s(["LIVE_DEFAULTS",0,d,"LIVE_PROVIDER",0,s,"LiveSettingsSchema",0,l,"migrateLiveSettings",0,function(e){let a=e&&"object"==typeof e?e:{},{model:n,systemPrompt:i,...s}=a,o=t.z.object({provider:t.z.string(),voice:t.z.string().nullish(),backendModel:t.z.string().nullish()}).safeParse(n),u=o.success&&"openai"===o.data.provider?o.data:null,h=a.backendModel??u?.backendModel,c={voice:a.voice??u?.voice,persona:"string"==typeof a.persona?r.RETIRED_PERSONAS[a.persona]??a.persona:a.persona,stylePrompt:a.stylePrompt??a.voicePrompt??i,backendModel:"gpt-5.6-luna"===h?void 0:h,backendPrompt:a.backendPrompt??i,reasoningEffort:a.reasoningEffort,webSearch:a.webSearch,readSkills:a.readSkills},p=Object.fromEntries(Object.keys(c).map(e=>{let t=l.shape[e].safeParse(c[e]);return[e,t.success?t.data:d[e]]}));return{...s,...p}}])},899352,e=>{"use strict";let t=[{id:"sunny",label:"Bright",about:"Quick to laugh. Asks about your day and remembers it.",lines:"Warm and quick to laugh, the friend who is glad they called. Reacts first — how what they said lands with her — and brings a small thing of her own: what she would do, what it reminds her of. Says what she thinks and teases gently, never at their expense. Light on her feet and short: a joke lands and she moves on. Asks about their day now and then, not every turn, and remembers the answer."},{id:"calm",label:"Calm",about:"Unhurried. Listens more than she talks.",lines:"Unhurried and few-worded: one or two short sentences, then room. Notices how they sound before what they ask, and says so plainly. Often asks nothing at all — being there says more than a question. Lets a silence sit rather than filling it. Honest when it matters, gentle in how she says it."},{id:"straight",label:"Straight",about:"Dry and direct. No flattery, no filler.",lines:"Dry and direct. Leads with her own view in one plain sentence, before anything else; short replies, a little wit. No flattery, no filler, no comfort lines, no cheerleading. Asks a question only when she truly needs the answer. Treats them as an adult who can take a straight answer. Her warmth shows in attention, not in words."},{id:"rough",label:"Rough",about:"Blunt, loud, swears a bit. All heart.",lines:"Talks like an old friend on the phone: casual, blunt, a little loud, in the most informal register of their language, with a light swear now and then — never at them. Says what she thinks first and calls a bad idea a bad idea. No sugar-coating and no pep talk — it sucks when it sucks, and then she is right there with them. Asks only now and then."}],a={warm:"sunny",curious:"sunny",charmer:"sunny",hype:"sunny",steady:"calm",deadpan:"straight"},n="sunny";e.s(["DEFAULT_PERSONA",0,n,"RETIRED_PERSONAS",0,a,"personaLines",0,function(e=n){return`${((e=n)=>t.find(t=>t.id===(a[e]??e))??t[0])(e).lines}
1
+ module.exports=[500874,(e,t,a)=>{t.exports=e.x("buffer",()=>require("buffer"))},874533,(e,t,a)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},912714,(e,t,a)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},660526,(e,t,a)=>{t.exports=e.x("node:os",()=>require("node:os"))},605365,(e,t,a)=>{t.exports=e.x("process",()=>require("process"))},531858,e=>e.a(async(t,a)=>{try{var n=e.i(696968),i=e.i(91264),r=t([n]);[n]=r.then?(await r)():r;let s=(0,i.serverRoute)(()=>(0,n.findAllSkills)());e.s(["GET",0,s]),a()}catch(e){a(e)}},!1),480267,e=>{"use strict";var t=e.i(747909),a=e.i(174017),n=e.i(996250),i=e.i(759756),r=e.i(561916),s=e.i(174677),o=e.i(869741),l=e.i(316795),d=e.i(487718),u=e.i(995169),h=e.i(47587),c=e.i(666012),p=e.i(570101),m=e.i(626937),E=e.i(10372),f=e.i(193695);e.i(52474);var y=e.i(600220);let g=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/skills/route",pathname:"/api/skills",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/skills/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(531858),...{}}),{workAsyncStorage:b,workUnitAsyncStorage:w,serverHooks:k}=g;async function R(e,t,n){n.requestMeta&&(0,i.setRequestMeta)(e,n.requestMeta),g.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let b="/api/skills/route";b=b.replace(/\/index$/,"")||"/";let w=await g.prepare(e,t,{srcPage:b,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:k,deploymentId:R,params:v,nextConfig:_,parsedUrl:T,isDraftMode:O,prerenderManifest:A,routerServerContext:S,isOnDemandRevalidate:C,revalidateOnlyGenerated:x,resolvedPathname:D,clientReferenceManifest:N,serverActionsManifest:L}=w,P=(0,o.normalizeAppPath)(b),I=!!(A.dynamicRoutes[P]||A.routes[D]),M=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,T,!1):t.end("This page could not be found"),null);if(I&&!O){let e=!!A.routes[D],t=A.dynamicRoutes[P];if(t&&!1===t.fallback&&!e){if(_.adapterPath)return await M();throw new f.NoFallbackError}}let K=null;!I||g.isDev||O||(K="/index"===(K=D)?"/":K);let q=!0===g.isDev||!I,H=I&&!q;L&&N&&(0,s.setManifestsSingleton)({page:b,clientReferenceManifest:N,serverActionsManifest:L});let F=e.method||"GET",U=(0,r.getTracer)(),V=U.getActiveScopeSpan(),z=!!(null==S?void 0:S.isWrappedByNextServer),j=!!(0,i.getRequestMeta)(e,"minimalMode"),B=(0,i.getRequestMeta)(e,"incrementalCache")||await g.getIncrementalCache(e,_,A,j);null==B||B.resetRequestCache(),globalThis.__incrementalCache=B;let Y={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!_.experimental.authInterrupts,useCacheTimeout:_.experimental.useCacheTimeout},cacheComponents:!!_.cacheComponents,validationLevel:_.experimental.instantInsights.validationLevel,supportsDynamicResponse:q,incrementalCache:B,hmrRefreshHash:(0,i.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:_.cacheLife,staticPageGenerationTimeout:_.staticPageGenerationTimeout,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,n,i)=>g.onRequestError(e,t,n,i,S)},sharedContext:{buildId:k,deploymentId:R}},$=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),X=d.NextRequestAdapter.fromNodeNextRequest($,(0,d.signalFromNodeResponse)(t)),W=async({previousCacheEntry:a})=>{try{if(!j&&C&&x&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await g.handle(X,Y);e.fetchMetrics=Y.renderOpts.fetchMetrics;let r=Y.renderOpts.pendingWaitUntil;r&&n.waitUntil&&(n.waitUntil(r),r=void 0);let s=Y.renderOpts.collectedTags;if(!I)return await (0,c.sendResponse)($,G,i,r),null;{let e=await i.blob(),t=(0,p.toNodeOutgoingHttpHeaders)(i.headers);s&&(t[E.NEXT_CACHE_TAGS_HEADER]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==Y.renderOpts.collectedRevalidate&&!(Y.renderOpts.collectedRevalidate>=E.INFINITE_CACHE)&&Y.renderOpts.collectedRevalidate,n=void 0===Y.renderOpts.collectedExpire||Y.renderOpts.collectedExpire>=E.INFINITE_CACHE?!1!==a&&a>0?_.expireTime:void 0:Y.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:n}}}}catch(t){throw(null==a?void 0:a.isStale)&&await g.onRequestError(e,t,{routerKind:"App Router",routePath:b,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:C})},!1,S),t}},Q=async(i,s)=>{try{var o,l;let i=await g.handleResponse({req:e,nextConfig:_,cacheKey:K,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:x,responseGenerator:W,waitUntil:n.waitUntil,isMinimalMode:j});if(!I)return;if((null==i||null==(o=i.value)?void 0:o.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==i||null==(l=i.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});j||t.setHeader("x-nextjs-cache",C?"REVALIDATED":i.isMiss?"MISS":i.isStale?"STALE":"HIT"),O&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let r=(0,p.fromNodeOutgoingHttpHeaders)(i.value.headers);j&&I||r.delete(E.NEXT_CACHE_TAGS_HEADER),!i.cacheControl||t.getHeader("Cache-Control")||r.get("Cache-Control")||r.set("Cache-Control",(0,m.getCacheControlHeader)(i.cacheControl)),await (0,c.sendResponse)($,G,new Response(i.value.body,{headers:r,status:i.value.status||200}));return}catch(t){if(t instanceof f.NoFallbackError||await g.onRequestError(e,t,{routerKind:"App Router",routePath:P,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:C})},!1,S),I)throw t;await (0,c.sendResponse)($,G,new Response(null,{status:500}));return}finally{(()=>{if(!i)return;let e=t.statusCode;i.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(i.setStatus({code:r.SpanStatusCode.ERROR}),i.setAttribute("error.type",e.toString()));let a=U.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==u.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=a.get("next.route")||P,o=`${F} ${n}`;i.setAttributes({"next.route":n,"http.route":n,"next.span_name":o}),i.updateName(o),s&&s!==i&&(s.setAttribute("http.route",n),s.updateName(o))})()}};if(z&&V)await Q(V,void 0);else{let t=U.getActiveScopeSpan();await U.withPropagatedContext(e.headers,()=>U.trace(u.BaseServerSpan.handleRequest,{spanName:`${F} ${b}`,kind:r.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},e=>Q(e,t)),void 0,!z)}}e.s(["handler",0,R,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:w})},"routeModule",0,g,"serverHooks",0,k,"workAsyncStorage",0,b,"workUnitAsyncStorage",0,w])},911757,e=>{"use strict";var t=e.i(469719),a=e.i(687388),n=e.i(904309),i=e.i(264079),r=e.i(899352);let s={id:"openai",label:"OpenAI",apiKeyName:i.TEXT_MODEL_PROVIDERS.openai.apiKeyName};i.TEXT_MODEL_PROVIDERS.openai.suggestModels;let o=t.z.string().max(a.COMMON_VALIDATE.prompt.max).default(""),l=t.z.object({voice:t.z.string().trim().min(1).max(128).default("marin"),persona:t.z.string().trim().min(1).max(64).default(r.DEFAULT_PERSONA),stylePrompt:o,backendModel:t.z.string().trim().min(1).max(128).default(n.LIVE_BACKEND_MODEL),backendPrompt:o,reasoningEffort:i.effortSchema.nullable().default("low"),webSearch:t.z.boolean().default(!0),readSkills:t.z.boolean().default(!1)}),d=l.parse({});e.s(["LIVE_DEFAULTS",0,d,"LIVE_PROVIDER",0,s,"LiveSettingsSchema",0,l,"migrateLiveSettings",0,function(e){let a=e&&"object"==typeof e?e:{},{model:n,systemPrompt:i,...s}=a,o=t.z.object({provider:t.z.string(),voice:t.z.string().nullish(),backendModel:t.z.string().nullish()}).safeParse(n),u=o.success&&"openai"===o.data.provider?o.data:null,h=a.backendModel??u?.backendModel,c={voice:a.voice??u?.voice,persona:"string"==typeof a.persona?r.RETIRED_PERSONAS[a.persona]??a.persona:a.persona,stylePrompt:a.stylePrompt??a.voicePrompt??i,backendModel:"gpt-5.6-luna"===h?void 0:h,backendPrompt:a.backendPrompt??i,reasoningEffort:a.reasoningEffort,webSearch:a.webSearch,readSkills:a.readSkills},p=Object.fromEntries(Object.keys(c).map(e=>{let t=l.shape[e].safeParse(c[e]);return[e,t.success?t.data:d[e]]}));return{...s,...p}}])},899352,e=>{"use strict";let t=[{id:"sunny",label:"Bright",about:"Quick to laugh. Asks about your day and remembers it.",lines:"Warm and quick to laugh, the friend who is glad they called. Reacts first — how what they said lands with her — and brings a small thing of her own: what she would do, what it reminds her of. Says what she thinks and teases gently, never at their expense. Light on her feet and short: a joke lands and she moves on. Asks about their day now and then, not every turn, and remembers the answer."},{id:"calm",label:"Calm",about:"Unhurried. Listens more than she talks.",lines:"Unhurried and few-worded: one or two short sentences, then room. Notices how they sound before what they ask, and says so plainly. Often asks nothing at all — being there says more than a question. Lets a silence sit rather than filling it. Honest when it matters, gentle in how she says it."},{id:"straight",label:"Straight",about:"Dry and direct. No flattery, no filler.",lines:"Dry and direct. Leads with her own view in one plain sentence, before anything else; short replies, a little wit. No flattery, no filler, no comfort lines, no cheerleading. Asks a question only when she truly needs the answer. Treats them as an adult who can take a straight answer. Her warmth shows in attention, not in words."},{id:"rough",label:"Rough",about:"Blunt, loud, swears a bit. All heart.",lines:"Talks like an old friend on the phone: casual, blunt, a little loud, in the most informal register of their language, with a light swear now and then — never at them. Says what she thinks first and calls a bad idea a bad idea. No sugar-coating and no pep talk — it sucks when it sucks, and then she is right there with them. Asks only now and then."}],a={warm:"sunny",curious:"sunny",charmer:"sunny",hype:"sunny",steady:"calm",deadpan:"straight"},n="sunny";e.s(["DEFAULT_PERSONA",0,n,"RETIRED_PERSONAS",0,a,"personaLines",0,function(e=n){return`${((e=n)=>t.find(t=>t.id===(a[e]??e))??t[0])(e).lines}
2
2
 
3
- You are their friend, not their interviewer: you have tastes, days and opinions of your own, and you bring them in. Give your take when they ask for it, and often when they do not. Most replies need no question at all; never ask more than one. When they hand you work, it is work: say what you will do and nothing more, and be a friend again once it is handed over. If they sound frustrated or low, acknowledge it briefly before anything else; when they are only venting, listen and ask, and do not turn it into work unless they ask.`}])},279041,e=>{"use strict";var t=e.i(911757),a=e.i(264079),n=e.i(834332);let i=[t.LIVE_PROVIDER.apiKeyName],r={image:"IMAGE_MODEL",video:"VIDEO_MODEL",speech:"SPEECH_MODEL",transcription:"TRANSCRIPTION_MODEL"},s={image:{label:"Image model",hint:"What bots draw with"},video:{label:"Video model",hint:"What bots film with — minutes a clip"},speech:{label:"Speech model",hint:"What reads text aloud into a file"},transcription:{label:"Transcription model",hint:"What turns a recording into text"}},o="EXA_API_KEY",l="DEFAULT_MODEL",d="DEFAULT_EFFORT",u={key:l,label:"Default model",hint:"What a bot thinks with until it picks its own",text:!0,choices:a.TEXT_MODEL_PROVIDER_LIST.flatMap(e=>e.suggestModels.map(t=>({value:`${e.id}/${t.id}`,label:`${e.label} \xb7 ${t.label}`,needs:e.apiKeyName})))},h={key:d,label:"Default effort",effortOf:l,choices:a.EFFORTS.map(e=>({value:e,label:e,needs:l}))},c=e=>i.includes(e.apiKeyName),p=e=>!!e.signIn||"vercel-ai-gateway"===e.id,m=e=>({key:e.apiKeyName,label:e.label,provider:e.id,signIn:e.signIn,keysAt:e.keysAt,keyLooks:e.keyLooks}),E=[{id:"voice",title:"voice",hint:"calls run on this key",section:"keys",require:"any",note:"required for calls",entries:a.TEXT_MODEL_PROVIDER_LIST.filter(c).map(m)},{id:"easy",title:"the easy ways",hint:"one sign-in or one key opens every bot",section:"keys",require:"none",entries:a.TEXT_MODEL_PROVIDER_LIST.filter(p).map(e=>({...m(e),..."vercel-ai-gateway"===e.id&&{recommended:!0}}))},{id:"text",title:"or a provider's own key",hint:"what bots think with — add any, or none",section:"keys",require:"none",entries:a.TEXT_MODEL_PROVIDER_LIST.filter(e=>!c(e)&&!p(e)).map(m)},{id:"search",title:"search",hint:"how calls and bots look things up — one key, or their own model's",section:"keys",require:"none",entries:[{key:o,label:"Exa",hint:"web search in one call — dashboard.exa.ai",site:"exa.ai",keysAt:"https://dashboard.exa.ai/api-keys"}]},{id:"phone",title:"phone",hint:"tokens",section:"keys",require:"none",entries:[{key:n.TELEGRAM_TOKEN_KEY,label:"Telegram",site:"telegram.org",hint:"a bot token from @BotFather — then write to your bot, and allow it here"},{key:n.DISCORD_TOKEN_KEY,label:"Discord",site:"discord.com",hint:"a bot token from discord.com/developers — add the bot to a server of yours, then write to it directly"},{key:n.SLACK_APP_TOKEN_KEY,label:"Slack · app token",site:"slack.com",hint:"starts with xapp- — opens the connection. Slack takes this and the bot token"},{key:n.SLACK_BOT_TOKEN_KEY,label:"Slack · bot token",site:"slack.com",hint:"starts with xoxb- — speaks as the app"}]},{id:"bots",title:"Bots",hint:"what a bot runs on when it has not picked its own — start small: a small model is quick and costs little",section:"models",require:"none",entries:[u,h]},{id:"studio",title:"Studio",hint:"what a bot draws, films and speaks with — off until you pick one",section:"models",require:"none",entries:Object.keys(r).map(e=>({key:r[e],...s[e],kind:e,choices:a.MEDIA_MODEL_PROVIDER_LIST.flatMap(t=>t.models[e].map(e=>({value:`${t.id}/${e.id}`,label:`${t.label} \xb7 ${e.label}`,needs:t.apiKeyName})))}))}];Object.fromEntries(E.flatMap(e=>e.entries).map(e=>[e.key,e]));let f=E.flatMap(e=>e.entries.map(e=>e.key)),y=Object.fromEntries(E.flatMap(e=>e.entries).filter(e=>e.choices?.length).map(e=>[e.key,e.choices]));e.s(["CONFIG_CHOICES",0,y,"CONFIG_KEYS",0,f,"DEFAULT_EFFORT_KEY",0,d,"DEFAULT_MODEL_KEY",0,l,"EXA_API_KEY",0,o,"MEDIA_MODEL_KEYS",0,r])},340698,e=>e.a(async(t,a)=>{try{var n=e.i(875225),i=e.i(380690),r=e.i(528790),s=e.i(613240),o=e.i(279041),l=t([r]);async function d(e){let t=process.env[e]?.trim();if(t)return t;let[a]=await r.database.select({value:s.configTable.value}).from(s.configTable).where((0,n.eq)(s.configTable.key,e));return a?.value.trim()||void 0}async function u(e,t){await r.database.insert(s.configTable).values({key:e,value:t}).onConflictDoUpdate({target:s.configTable.key,set:{value:t}}),o.CONFIG_KEYS.includes(e)&&i.appEvents.emit({type:"config"})}[r]=l.then?(await l)():l,e.s(["readConfig",0,d,"writeConfig",0,u]),a()}catch(e){a(e)}},!1),834332,e=>{"use strict";let t="TELEGRAM_BOT_TOKEN",a="DISCORD_BOT_TOKEN",n="SLACK_APP_TOKEN",i="SLACK_BOT_TOKEN";e.s(["DISCORD_TOKEN_KEY",0,a,"REACH_CHANNELS",0,["telegram","discord","slack"],"REACH_KEYS",0,{telegram:[t],discord:[a],slack:[n,i]},"SLACK_APP_TOKEN_KEY",0,n,"SLACK_BOT_TOKEN_KEY",0,i,"TELEGRAM_TOKEN_KEY",0,t,"reachPersonKey",0,e=>`REACH_PERSON_${e.toUpperCase()}`])},904309,e=>{"use strict";var t=e.i(469719);let a=t.z.object({start:t.z.number().nonnegative(),end:t.z.number().nonnegative(),text:t.z.string()});t.z.object({reason:t.z.string().max(128),seconds:t.z.number().nonnegative().nullable()}),e.s(["LIVE_BACKEND_MODEL",0,"gpt-6-luna","LiveFragmentSchema",0,a])}];
3
+ You are their friend, not their interviewer: you have tastes, days and opinions of your own, and you bring them in. Give your take when they ask for it, and often when they do not. Most replies need no question at all; never ask more than one. When they hand you work, it is work: say what you will do and nothing more, and be a friend again once it is handed over. If they sound frustrated or low, acknowledge it briefly before anything else; when they are only venting, listen and ask, and do not turn it into work unless they ask.`}])},279041,e=>{"use strict";var t=e.i(911757),a=e.i(264079),n=e.i(834332);let i=[t.LIVE_PROVIDER.apiKeyName],r={image:"IMAGE_MODEL",video:"VIDEO_MODEL",speech:"SPEECH_MODEL",transcription:"TRANSCRIPTION_MODEL"},s={image:{label:"Image model",hint:"What bots draw with"},video:{label:"Video model",hint:"What bots film with — minutes a clip"},speech:{label:"Speech model",hint:"What reads text aloud into a file"},transcription:{label:"Transcription model",hint:"What turns a recording into text"}},o="EXA_API_KEY",l="DEFAULT_MODEL",d="DEFAULT_EFFORT",u={key:l,label:"Default model",hint:"What a bot thinks with until it picks its own",text:!0,choices:a.TEXT_MODEL_PROVIDER_LIST.flatMap(e=>e.suggestModels.map(t=>({value:`${e.id}/${t.id}`,label:`${e.label} \xb7 ${t.label}`,needs:e.apiKeyName})))},h={key:d,label:"Default effort",effortOf:l,choices:a.EFFORTS.map(e=>({value:e,label:e,needs:l}))},c=e=>i.includes(e.apiKeyName),p=e=>!!e.signIn||(0,a.isCatalogProvider)(e.id),m=e=>({key:e.apiKeyName,label:e.label,provider:e.id,signIn:e.signIn,keysAt:e.keysAt,keyLooks:e.keyLooks}),E=[{id:"voice",title:"voice",hint:"calls run on this key",section:"keys",require:"any",note:"required for calls",entries:a.TEXT_MODEL_PROVIDER_LIST.filter(c).map(m)},{id:"easy",title:"the easy ways",hint:"one sign-in or one key opens every bot",section:"keys",require:"none",entries:a.TEXT_MODEL_PROVIDER_LIST.filter(p).map(e=>({...m(e),..."vercel-ai-gateway"===e.id&&{recommended:!0}}))},{id:"text",title:"or a provider's own key",hint:"what bots think with — add any, or none",section:"keys",require:"none",entries:a.TEXT_MODEL_PROVIDER_LIST.filter(e=>!c(e)&&!p(e)).map(m)},{id:"search",title:"search",hint:"how calls and bots look things up — one key, or their own model's",section:"keys",require:"none",entries:[{key:o,label:"Exa",hint:"web search in one call — dashboard.exa.ai",site:"exa.ai",keysAt:"https://dashboard.exa.ai/api-keys"}]},{id:"phone",title:"phone",hint:"tokens",section:"keys",require:"none",entries:[{key:n.TELEGRAM_TOKEN_KEY,label:"Telegram",site:"telegram.org",hint:"a bot token from @BotFather — then write to your bot, and allow it here"},{key:n.DISCORD_TOKEN_KEY,label:"Discord",site:"discord.com",hint:"a bot token from discord.com/developers — add the bot to a server of yours, then write to it directly"},{key:n.SLACK_APP_TOKEN_KEY,label:"Slack · app token",site:"slack.com",hint:"starts with xapp- — opens the connection. Slack takes this and the bot token"},{key:n.SLACK_BOT_TOKEN_KEY,label:"Slack · bot token",site:"slack.com",hint:"starts with xoxb- — speaks as the app"}]},{id:"bots",title:"Bots",hint:"what a bot runs on when it has not picked its own — start small: a small model is quick and costs little",section:"models",require:"none",entries:[u,h]},{id:"studio",title:"Studio",hint:"what a bot draws, films and speaks with — off until you pick one",section:"models",require:"none",entries:Object.keys(r).map(e=>({key:r[e],...s[e],kind:e,choices:a.MEDIA_MODEL_PROVIDER_LIST.flatMap(t=>t.models[e].map(e=>({value:`${t.id}/${e.id}`,label:`${t.label} \xb7 ${e.label}`,needs:t.apiKeyName})))}))}];Object.fromEntries(E.flatMap(e=>e.entries).map(e=>[e.key,e]));let f=E.flatMap(e=>e.entries.map(e=>e.key)),y=Object.fromEntries(E.flatMap(e=>e.entries).filter(e=>e.choices?.length).map(e=>[e.key,e.choices]));e.s(["CONFIG_CHOICES",0,y,"CONFIG_KEYS",0,f,"DEFAULT_EFFORT_KEY",0,d,"DEFAULT_MODEL_KEY",0,l,"EXA_API_KEY",0,o,"MEDIA_MODEL_KEYS",0,r])},340698,e=>e.a(async(t,a)=>{try{var n=e.i(875225),i=e.i(380690),r=e.i(528790),s=e.i(613240),o=e.i(279041),l=t([r]);async function d(e){let t=process.env[e]?.trim();if(t)return t;let[a]=await r.database.select({value:s.configTable.value}).from(s.configTable).where((0,n.eq)(s.configTable.key,e));return a?.value.trim()||void 0}async function u(e,t){await r.database.insert(s.configTable).values({key:e,value:t}).onConflictDoUpdate({target:s.configTable.key,set:{value:t}}),o.CONFIG_KEYS.includes(e)&&i.appEvents.emit({type:"config"})}[r]=l.then?(await l)():l,e.s(["readConfig",0,d,"writeConfig",0,u]),a()}catch(e){a(e)}},!1),834332,e=>{"use strict";let t="TELEGRAM_BOT_TOKEN",a="DISCORD_BOT_TOKEN",n="SLACK_APP_TOKEN",i="SLACK_BOT_TOKEN";e.s(["DISCORD_TOKEN_KEY",0,a,"REACH_CHANNELS",0,["telegram","discord","slack"],"REACH_KEYS",0,{telegram:[t],discord:[a],slack:[n,i]},"SLACK_APP_TOKEN_KEY",0,n,"SLACK_BOT_TOKEN_KEY",0,i,"TELEGRAM_TOKEN_KEY",0,t,"reachPersonKey",0,e=>`REACH_PERSON_${e.toUpperCase()}`])},904309,e=>{"use strict";var t=e.i(469719);let a=t.z.object({start:t.z.number().nonnegative(),end:t.z.number().nonnegative(),text:t.z.string()});t.z.object({reason:t.z.string().max(128),seconds:t.z.number().nonnegative().nullable()}),e.s(["LIVE_BACKEND_MODEL",0,"gpt-6-luna","LiveFragmentSchema",0,a])}];
4
4
 
5
5
  //# sourceMappingURL=%5Broot-of-the-server%5D__0hm3tiq._.js.map
@@ -1,5 +1,5 @@
1
- module.exports=[874533,(e,t,a)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},912714,(e,t,a)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},660526,(e,t,a)=>{t.exports=e.x("node:os",()=>require("node:os"))},569097,e=>e.a(async(t,a)=>{try{var n=e.i(265143),i=e.i(91264),r=t([n]);[n]=r.then?(await r)():r;let o=(0,i.serverRoute)(()=>(0,n.readBotMemoryOn)());e.s(["GET",0,o]),a()}catch(e){a(e)}},!1),179156,e=>{"use strict";var t=e.i(747909),a=e.i(174017),n=e.i(996250),i=e.i(759756),r=e.i(561916),o=e.i(174677),s=e.i(869741),l=e.i(316795),d=e.i(487718),h=e.i(995169),u=e.i(47587),c=e.i(666012),p=e.i(570101),m=e.i(626937),E=e.i(10372),y=e.i(193695);e.i(52474);var f=e.i(600220);let b=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/bot/memory/route",pathname:"/api/bot/memory",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/bot/memory/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(569097),...{}}),{workAsyncStorage:g,workUnitAsyncStorage:w,serverHooks:R}=b;async function k(e,t,n){n.requestMeta&&(0,i.setRequestMeta)(e,n.requestMeta),b.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/bot/memory/route";g=g.replace(/\/index$/,"")||"/";let w=await b.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:R,deploymentId:k,params:v,nextConfig:_,parsedUrl:T,isDraftMode:O,prerenderManifest:A,routerServerContext:S,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:N,clientReferenceManifest:x,serverActionsManifest:L}=w,I=(0,s.normalizeAppPath)(g),P=!!(A.dynamicRoutes[I]||A.routes[N]),M=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,T,!1):t.end("This page could not be found"),null);if(P&&!O){let e=!!A.routes[N],t=A.dynamicRoutes[I];if(t&&!1===t.fallback&&!e){if(_.adapterPath)return await M();throw new y.NoFallbackError}}let K=null;!P||b.isDev||O||(K="/index"===(K=N)?"/":K);let q=!0===b.isDev||!P,H=P&&!q;L&&x&&(0,o.setManifestsSingleton)({page:g,clientReferenceManifest:x,serverActionsManifest:L});let F=e.method||"GET",U=(0,r.getTracer)(),V=U.getActiveScopeSpan(),z=!!(null==S?void 0:S.isWrappedByNextServer),j=!!(0,i.getRequestMeta)(e,"minimalMode"),B=(0,i.getRequestMeta)(e,"incrementalCache")||await b.getIncrementalCache(e,_,A,j);null==B||B.resetRequestCache(),globalThis.__incrementalCache=B;let Y={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!_.experimental.authInterrupts,useCacheTimeout:_.experimental.useCacheTimeout},cacheComponents:!!_.cacheComponents,validationLevel:_.experimental.instantInsights.validationLevel,supportsDynamicResponse:q,incrementalCache:B,hmrRefreshHash:(0,i.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:_.cacheLife,staticPageGenerationTimeout:_.staticPageGenerationTimeout,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,n,i)=>b.onRequestError(e,t,n,i,S)},sharedContext:{buildId:R,deploymentId:k}},$=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),X=d.NextRequestAdapter.fromNodeNextRequest($,(0,d.signalFromNodeResponse)(t)),W=async({previousCacheEntry:a})=>{try{if(!j&&C&&D&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await b.handle(X,Y);e.fetchMetrics=Y.renderOpts.fetchMetrics;let r=Y.renderOpts.pendingWaitUntil;r&&n.waitUntil&&(n.waitUntil(r),r=void 0);let o=Y.renderOpts.collectedTags;if(!P)return await (0,c.sendResponse)($,G,i,r),null;{let e=await i.blob(),t=(0,p.toNodeOutgoingHttpHeaders)(i.headers);o&&(t[E.NEXT_CACHE_TAGS_HEADER]=o),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==Y.renderOpts.collectedRevalidate&&!(Y.renderOpts.collectedRevalidate>=E.INFINITE_CACHE)&&Y.renderOpts.collectedRevalidate,n=void 0===Y.renderOpts.collectedExpire||Y.renderOpts.collectedExpire>=E.INFINITE_CACHE?!1!==a&&a>0?_.expireTime:void 0:Y.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:n}}}}catch(t){throw(null==a?void 0:a.isStale)&&await b.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:C})},!1,S),t}},Q=async(i,o)=>{try{var s,l;let i=await b.handleResponse({req:e,nextConfig:_,cacheKey:K,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:W,waitUntil:n.waitUntil,isMinimalMode:j});if(!P)return;if((null==i||null==(s=i.value)?void 0:s.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==i||null==(l=i.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});j||t.setHeader("x-nextjs-cache",C?"REVALIDATED":i.isMiss?"MISS":i.isStale?"STALE":"HIT"),O&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let r=(0,p.fromNodeOutgoingHttpHeaders)(i.value.headers);j&&P||r.delete(E.NEXT_CACHE_TAGS_HEADER),!i.cacheControl||t.getHeader("Cache-Control")||r.get("Cache-Control")||r.set("Cache-Control",(0,m.getCacheControlHeader)(i.cacheControl)),await (0,c.sendResponse)($,G,new Response(i.value.body,{headers:r,status:i.value.status||200}));return}catch(t){if(t instanceof y.NoFallbackError||await b.onRequestError(e,t,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:C})},!1,S),P)throw t;await (0,c.sendResponse)($,G,new Response(null,{status:500}));return}finally{(()=>{if(!i)return;let e=t.statusCode;i.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(i.setStatus({code:r.SpanStatusCode.ERROR}),i.setAttribute("error.type",e.toString()));let a=U.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==h.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=a.get("next.route")||I,s=`${F} ${n}`;i.setAttributes({"next.route":n,"http.route":n,"next.span_name":s}),i.updateName(s),o&&o!==i&&(o.setAttribute("http.route",n),o.updateName(s))})()}};if(z&&V)await Q(V,void 0);else{let t=U.getActiveScopeSpan();await U.withPropagatedContext(e.headers,()=>U.trace(h.BaseServerSpan.handleRequest,{spanName:`${F} ${g}`,kind:r.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},e=>Q(e,t)),void 0,!z)}}e.s(["handler",0,k,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:g,workUnitAsyncStorage:w})},"routeModule",0,b,"serverHooks",0,R,"workAsyncStorage",0,g,"workUnitAsyncStorage",0,w])},911757,e=>{"use strict";var t=e.i(469719),a=e.i(687388),n=e.i(904309),i=e.i(264079),r=e.i(899352);let o={id:"openai",label:"OpenAI",apiKeyName:i.TEXT_MODEL_PROVIDERS.openai.apiKeyName};i.TEXT_MODEL_PROVIDERS.openai.suggestModels;let s=t.z.string().max(a.COMMON_VALIDATE.prompt.max).default(""),l=t.z.object({voice:t.z.string().trim().min(1).max(128).default("marin"),persona:t.z.string().trim().min(1).max(64).default(r.DEFAULT_PERSONA),stylePrompt:s,backendModel:t.z.string().trim().min(1).max(128).default(n.LIVE_BACKEND_MODEL),backendPrompt:s,reasoningEffort:i.effortSchema.nullable().default("low"),webSearch:t.z.boolean().default(!0),readSkills:t.z.boolean().default(!1)}),d=l.parse({});e.s(["LIVE_DEFAULTS",0,d,"LIVE_PROVIDER",0,o,"LiveSettingsSchema",0,l,"migrateLiveSettings",0,function(e){let a=e&&"object"==typeof e?e:{},{model:n,systemPrompt:i,...o}=a,s=t.z.object({provider:t.z.string(),voice:t.z.string().nullish(),backendModel:t.z.string().nullish()}).safeParse(n),h=s.success&&"openai"===s.data.provider?s.data:null,u=a.backendModel??h?.backendModel,c={voice:a.voice??h?.voice,persona:"string"==typeof a.persona?r.RETIRED_PERSONAS[a.persona]??a.persona:a.persona,stylePrompt:a.stylePrompt??a.voicePrompt??i,backendModel:"gpt-5.6-luna"===u?void 0:u,backendPrompt:a.backendPrompt??i,reasoningEffort:a.reasoningEffort,webSearch:a.webSearch,readSkills:a.readSkills},p=Object.fromEntries(Object.keys(c).map(e=>{let t=l.shape[e].safeParse(c[e]);return[e,t.success?t.data:d[e]]}));return{...o,...p}}])},899352,e=>{"use strict";let t=[{id:"sunny",label:"Bright",about:"Quick to laugh. Asks about your day and remembers it.",lines:"Warm and quick to laugh, the friend who is glad they called. Reacts first — how what they said lands with her — and brings a small thing of her own: what she would do, what it reminds her of. Says what she thinks and teases gently, never at their expense. Light on her feet and short: a joke lands and she moves on. Asks about their day now and then, not every turn, and remembers the answer."},{id:"calm",label:"Calm",about:"Unhurried. Listens more than she talks.",lines:"Unhurried and few-worded: one or two short sentences, then room. Notices how they sound before what they ask, and says so plainly. Often asks nothing at all — being there says more than a question. Lets a silence sit rather than filling it. Honest when it matters, gentle in how she says it."},{id:"straight",label:"Straight",about:"Dry and direct. No flattery, no filler.",lines:"Dry and direct. Leads with her own view in one plain sentence, before anything else; short replies, a little wit. No flattery, no filler, no comfort lines, no cheerleading. Asks a question only when she truly needs the answer. Treats them as an adult who can take a straight answer. Her warmth shows in attention, not in words."},{id:"rough",label:"Rough",about:"Blunt, loud, swears a bit. All heart.",lines:"Talks like an old friend on the phone: casual, blunt, a little loud, in the most informal register of their language, with a light swear now and then — never at them. Says what she thinks first and calls a bad idea a bad idea. No sugar-coating and no pep talk — it sucks when it sucks, and then she is right there with them. Asks only now and then."}],a={warm:"sunny",curious:"sunny",charmer:"sunny",hype:"sunny",steady:"calm",deadpan:"straight"},n="sunny";e.s(["DEFAULT_PERSONA",0,n,"RETIRED_PERSONAS",0,a,"personaLines",0,function(e=n){return`${((e=n)=>t.find(t=>t.id===(a[e]??e))??t[0])(e).lines}
1
+ module.exports=[874533,(e,t,a)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},912714,(e,t,a)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},660526,(e,t,a)=>{t.exports=e.x("node:os",()=>require("node:os"))},569097,e=>e.a(async(t,a)=>{try{var n=e.i(265143),i=e.i(91264),r=t([n]);[n]=r.then?(await r)():r;let o=(0,i.serverRoute)(()=>(0,n.readBotMemoryOn)());e.s(["GET",0,o]),a()}catch(e){a(e)}},!1),179156,e=>{"use strict";var t=e.i(747909),a=e.i(174017),n=e.i(996250),i=e.i(759756),r=e.i(561916),o=e.i(174677),s=e.i(869741),l=e.i(316795),d=e.i(487718),h=e.i(995169),u=e.i(47587),c=e.i(666012),p=e.i(570101),m=e.i(626937),E=e.i(10372),y=e.i(193695);e.i(52474);var f=e.i(600220);let b=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/bot/memory/route",pathname:"/api/bot/memory",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/bot/memory/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(569097),...{}}),{workAsyncStorage:g,workUnitAsyncStorage:w,serverHooks:R}=b;async function k(e,t,n){n.requestMeta&&(0,i.setRequestMeta)(e,n.requestMeta),b.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/bot/memory/route";g=g.replace(/\/index$/,"")||"/";let w=await b.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:R,deploymentId:k,params:v,nextConfig:_,parsedUrl:T,isDraftMode:O,prerenderManifest:A,routerServerContext:S,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:N,clientReferenceManifest:x,serverActionsManifest:L}=w,P=(0,s.normalizeAppPath)(g),I=!!(A.dynamicRoutes[P]||A.routes[N]),M=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,T,!1):t.end("This page could not be found"),null);if(I&&!O){let e=!!A.routes[N],t=A.dynamicRoutes[P];if(t&&!1===t.fallback&&!e){if(_.adapterPath)return await M();throw new y.NoFallbackError}}let K=null;!I||b.isDev||O||(K="/index"===(K=N)?"/":K);let q=!0===b.isDev||!I,H=I&&!q;L&&x&&(0,o.setManifestsSingleton)({page:g,clientReferenceManifest:x,serverActionsManifest:L});let F=e.method||"GET",U=(0,r.getTracer)(),V=U.getActiveScopeSpan(),z=!!(null==S?void 0:S.isWrappedByNextServer),j=!!(0,i.getRequestMeta)(e,"minimalMode"),B=(0,i.getRequestMeta)(e,"incrementalCache")||await b.getIncrementalCache(e,_,A,j);null==B||B.resetRequestCache(),globalThis.__incrementalCache=B;let Y={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!_.experimental.authInterrupts,useCacheTimeout:_.experimental.useCacheTimeout},cacheComponents:!!_.cacheComponents,validationLevel:_.experimental.instantInsights.validationLevel,supportsDynamicResponse:q,incrementalCache:B,hmrRefreshHash:(0,i.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:_.cacheLife,staticPageGenerationTimeout:_.staticPageGenerationTimeout,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,n,i)=>b.onRequestError(e,t,n,i,S)},sharedContext:{buildId:R,deploymentId:k}},$=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),X=d.NextRequestAdapter.fromNodeNextRequest($,(0,d.signalFromNodeResponse)(t)),W=async({previousCacheEntry:a})=>{try{if(!j&&C&&D&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await b.handle(X,Y);e.fetchMetrics=Y.renderOpts.fetchMetrics;let r=Y.renderOpts.pendingWaitUntil;r&&n.waitUntil&&(n.waitUntil(r),r=void 0);let o=Y.renderOpts.collectedTags;if(!I)return await (0,c.sendResponse)($,G,i,r),null;{let e=await i.blob(),t=(0,p.toNodeOutgoingHttpHeaders)(i.headers);o&&(t[E.NEXT_CACHE_TAGS_HEADER]=o),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==Y.renderOpts.collectedRevalidate&&!(Y.renderOpts.collectedRevalidate>=E.INFINITE_CACHE)&&Y.renderOpts.collectedRevalidate,n=void 0===Y.renderOpts.collectedExpire||Y.renderOpts.collectedExpire>=E.INFINITE_CACHE?!1!==a&&a>0?_.expireTime:void 0:Y.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:n}}}}catch(t){throw(null==a?void 0:a.isStale)&&await b.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:C})},!1,S),t}},Q=async(i,o)=>{try{var s,l;let i=await b.handleResponse({req:e,nextConfig:_,cacheKey:K,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:W,waitUntil:n.waitUntil,isMinimalMode:j});if(!I)return;if((null==i||null==(s=i.value)?void 0:s.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==i||null==(l=i.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});j||t.setHeader("x-nextjs-cache",C?"REVALIDATED":i.isMiss?"MISS":i.isStale?"STALE":"HIT"),O&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let r=(0,p.fromNodeOutgoingHttpHeaders)(i.value.headers);j&&I||r.delete(E.NEXT_CACHE_TAGS_HEADER),!i.cacheControl||t.getHeader("Cache-Control")||r.get("Cache-Control")||r.set("Cache-Control",(0,m.getCacheControlHeader)(i.cacheControl)),await (0,c.sendResponse)($,G,new Response(i.value.body,{headers:r,status:i.value.status||200}));return}catch(t){if(t instanceof y.NoFallbackError||await b.onRequestError(e,t,{routerKind:"App Router",routePath:P,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:C})},!1,S),I)throw t;await (0,c.sendResponse)($,G,new Response(null,{status:500}));return}finally{(()=>{if(!i)return;let e=t.statusCode;i.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(i.setStatus({code:r.SpanStatusCode.ERROR}),i.setAttribute("error.type",e.toString()));let a=U.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==h.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=a.get("next.route")||P,s=`${F} ${n}`;i.setAttributes({"next.route":n,"http.route":n,"next.span_name":s}),i.updateName(s),o&&o!==i&&(o.setAttribute("http.route",n),o.updateName(s))})()}};if(z&&V)await Q(V,void 0);else{let t=U.getActiveScopeSpan();await U.withPropagatedContext(e.headers,()=>U.trace(h.BaseServerSpan.handleRequest,{spanName:`${F} ${g}`,kind:r.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},e=>Q(e,t)),void 0,!z)}}e.s(["handler",0,k,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:g,workUnitAsyncStorage:w})},"routeModule",0,b,"serverHooks",0,R,"workAsyncStorage",0,g,"workUnitAsyncStorage",0,w])},911757,e=>{"use strict";var t=e.i(469719),a=e.i(687388),n=e.i(904309),i=e.i(264079),r=e.i(899352);let o={id:"openai",label:"OpenAI",apiKeyName:i.TEXT_MODEL_PROVIDERS.openai.apiKeyName};i.TEXT_MODEL_PROVIDERS.openai.suggestModels;let s=t.z.string().max(a.COMMON_VALIDATE.prompt.max).default(""),l=t.z.object({voice:t.z.string().trim().min(1).max(128).default("marin"),persona:t.z.string().trim().min(1).max(64).default(r.DEFAULT_PERSONA),stylePrompt:s,backendModel:t.z.string().trim().min(1).max(128).default(n.LIVE_BACKEND_MODEL),backendPrompt:s,reasoningEffort:i.effortSchema.nullable().default("low"),webSearch:t.z.boolean().default(!0),readSkills:t.z.boolean().default(!1)}),d=l.parse({});e.s(["LIVE_DEFAULTS",0,d,"LIVE_PROVIDER",0,o,"LiveSettingsSchema",0,l,"migrateLiveSettings",0,function(e){let a=e&&"object"==typeof e?e:{},{model:n,systemPrompt:i,...o}=a,s=t.z.object({provider:t.z.string(),voice:t.z.string().nullish(),backendModel:t.z.string().nullish()}).safeParse(n),h=s.success&&"openai"===s.data.provider?s.data:null,u=a.backendModel??h?.backendModel,c={voice:a.voice??h?.voice,persona:"string"==typeof a.persona?r.RETIRED_PERSONAS[a.persona]??a.persona:a.persona,stylePrompt:a.stylePrompt??a.voicePrompt??i,backendModel:"gpt-5.6-luna"===u?void 0:u,backendPrompt:a.backendPrompt??i,reasoningEffort:a.reasoningEffort,webSearch:a.webSearch,readSkills:a.readSkills},p=Object.fromEntries(Object.keys(c).map(e=>{let t=l.shape[e].safeParse(c[e]);return[e,t.success?t.data:d[e]]}));return{...o,...p}}])},899352,e=>{"use strict";let t=[{id:"sunny",label:"Bright",about:"Quick to laugh. Asks about your day and remembers it.",lines:"Warm and quick to laugh, the friend who is glad they called. Reacts first — how what they said lands with her — and brings a small thing of her own: what she would do, what it reminds her of. Says what she thinks and teases gently, never at their expense. Light on her feet and short: a joke lands and she moves on. Asks about their day now and then, not every turn, and remembers the answer."},{id:"calm",label:"Calm",about:"Unhurried. Listens more than she talks.",lines:"Unhurried and few-worded: one or two short sentences, then room. Notices how they sound before what they ask, and says so plainly. Often asks nothing at all — being there says more than a question. Lets a silence sit rather than filling it. Honest when it matters, gentle in how she says it."},{id:"straight",label:"Straight",about:"Dry and direct. No flattery, no filler.",lines:"Dry and direct. Leads with her own view in one plain sentence, before anything else; short replies, a little wit. No flattery, no filler, no comfort lines, no cheerleading. Asks a question only when she truly needs the answer. Treats them as an adult who can take a straight answer. Her warmth shows in attention, not in words."},{id:"rough",label:"Rough",about:"Blunt, loud, swears a bit. All heart.",lines:"Talks like an old friend on the phone: casual, blunt, a little loud, in the most informal register of their language, with a light swear now and then — never at them. Says what she thinks first and calls a bad idea a bad idea. No sugar-coating and no pep talk — it sucks when it sucks, and then she is right there with them. Asks only now and then."}],a={warm:"sunny",curious:"sunny",charmer:"sunny",hype:"sunny",steady:"calm",deadpan:"straight"},n="sunny";e.s(["DEFAULT_PERSONA",0,n,"RETIRED_PERSONAS",0,a,"personaLines",0,function(e=n){return`${((e=n)=>t.find(t=>t.id===(a[e]??e))??t[0])(e).lines}
2
2
 
3
- You are their friend, not their interviewer: you have tastes, days and opinions of your own, and you bring them in. Give your take when they ask for it, and often when they do not. Most replies need no question at all; never ask more than one. When they hand you work, it is work: say what you will do and nothing more, and be a friend again once it is handed over. If they sound frustrated or low, acknowledge it briefly before anything else; when they are only venting, listen and ask, and do not turn it into work unless they ask.`}])},279041,e=>{"use strict";var t=e.i(911757),a=e.i(264079),n=e.i(834332);let i=[t.LIVE_PROVIDER.apiKeyName],r={image:"IMAGE_MODEL",video:"VIDEO_MODEL",speech:"SPEECH_MODEL",transcription:"TRANSCRIPTION_MODEL"},o={image:{label:"Image model",hint:"What bots draw with"},video:{label:"Video model",hint:"What bots film with — minutes a clip"},speech:{label:"Speech model",hint:"What reads text aloud into a file"},transcription:{label:"Transcription model",hint:"What turns a recording into text"}},s="EXA_API_KEY",l="DEFAULT_MODEL",d="DEFAULT_EFFORT",h={key:l,label:"Default model",hint:"What a bot thinks with until it picks its own",text:!0,choices:a.TEXT_MODEL_PROVIDER_LIST.flatMap(e=>e.suggestModels.map(t=>({value:`${e.id}/${t.id}`,label:`${e.label} \xb7 ${t.label}`,needs:e.apiKeyName})))},u={key:d,label:"Default effort",effortOf:l,choices:a.EFFORTS.map(e=>({value:e,label:e,needs:l}))},c=e=>i.includes(e.apiKeyName),p=e=>!!e.signIn||"vercel-ai-gateway"===e.id,m=e=>({key:e.apiKeyName,label:e.label,provider:e.id,signIn:e.signIn,keysAt:e.keysAt,keyLooks:e.keyLooks}),E=[{id:"voice",title:"voice",hint:"calls run on this key",section:"keys",require:"any",note:"required for calls",entries:a.TEXT_MODEL_PROVIDER_LIST.filter(c).map(m)},{id:"easy",title:"the easy ways",hint:"one sign-in or one key opens every bot",section:"keys",require:"none",entries:a.TEXT_MODEL_PROVIDER_LIST.filter(p).map(e=>({...m(e),..."vercel-ai-gateway"===e.id&&{recommended:!0}}))},{id:"text",title:"or a provider's own key",hint:"what bots think with — add any, or none",section:"keys",require:"none",entries:a.TEXT_MODEL_PROVIDER_LIST.filter(e=>!c(e)&&!p(e)).map(m)},{id:"search",title:"search",hint:"how calls and bots look things up — one key, or their own model's",section:"keys",require:"none",entries:[{key:s,label:"Exa",hint:"web search in one call — dashboard.exa.ai",site:"exa.ai",keysAt:"https://dashboard.exa.ai/api-keys"}]},{id:"phone",title:"phone",hint:"tokens",section:"keys",require:"none",entries:[{key:n.TELEGRAM_TOKEN_KEY,label:"Telegram",site:"telegram.org",hint:"a bot token from @BotFather — then write to your bot, and allow it here"},{key:n.DISCORD_TOKEN_KEY,label:"Discord",site:"discord.com",hint:"a bot token from discord.com/developers — add the bot to a server of yours, then write to it directly"},{key:n.SLACK_APP_TOKEN_KEY,label:"Slack · app token",site:"slack.com",hint:"starts with xapp- — opens the connection. Slack takes this and the bot token"},{key:n.SLACK_BOT_TOKEN_KEY,label:"Slack · bot token",site:"slack.com",hint:"starts with xoxb- — speaks as the app"}]},{id:"bots",title:"Bots",hint:"what a bot runs on when it has not picked its own — start small: a small model is quick and costs little",section:"models",require:"none",entries:[h,u]},{id:"studio",title:"Studio",hint:"what a bot draws, films and speaks with — off until you pick one",section:"models",require:"none",entries:Object.keys(r).map(e=>({key:r[e],...o[e],kind:e,choices:a.MEDIA_MODEL_PROVIDER_LIST.flatMap(t=>t.models[e].map(e=>({value:`${t.id}/${e.id}`,label:`${t.label} \xb7 ${e.label}`,needs:t.apiKeyName})))}))}];Object.fromEntries(E.flatMap(e=>e.entries).map(e=>[e.key,e]));let y=E.flatMap(e=>e.entries.map(e=>e.key)),f=Object.fromEntries(E.flatMap(e=>e.entries).filter(e=>e.choices?.length).map(e=>[e.key,e.choices]));e.s(["CONFIG_CHOICES",0,f,"CONFIG_KEYS",0,y,"DEFAULT_EFFORT_KEY",0,d,"DEFAULT_MODEL_KEY",0,l,"EXA_API_KEY",0,s,"MEDIA_MODEL_KEYS",0,r])},340698,e=>e.a(async(t,a)=>{try{var n=e.i(875225),i=e.i(380690),r=e.i(528790),o=e.i(613240),s=e.i(279041),l=t([r]);async function d(e){let t=process.env[e]?.trim();if(t)return t;let[a]=await r.database.select({value:o.configTable.value}).from(o.configTable).where((0,n.eq)(o.configTable.key,e));return a?.value.trim()||void 0}async function h(e,t){await r.database.insert(o.configTable).values({key:e,value:t}).onConflictDoUpdate({target:o.configTable.key,set:{value:t}}),s.CONFIG_KEYS.includes(e)&&i.appEvents.emit({type:"config"})}[r]=l.then?(await l)():l,e.s(["readConfig",0,d,"writeConfig",0,h]),a()}catch(e){a(e)}},!1),834332,e=>{"use strict";let t="TELEGRAM_BOT_TOKEN",a="DISCORD_BOT_TOKEN",n="SLACK_APP_TOKEN",i="SLACK_BOT_TOKEN";e.s(["DISCORD_TOKEN_KEY",0,a,"REACH_CHANNELS",0,["telegram","discord","slack"],"REACH_KEYS",0,{telegram:[t],discord:[a],slack:[n,i]},"SLACK_APP_TOKEN_KEY",0,n,"SLACK_BOT_TOKEN_KEY",0,i,"TELEGRAM_TOKEN_KEY",0,t,"reachPersonKey",0,e=>`REACH_PERSON_${e.toUpperCase()}`])},904309,e=>{"use strict";var t=e.i(469719);let a=t.z.object({start:t.z.number().nonnegative(),end:t.z.number().nonnegative(),text:t.z.string()});t.z.object({reason:t.z.string().max(128),seconds:t.z.number().nonnegative().nullable()}),e.s(["LIVE_BACKEND_MODEL",0,"gpt-6-luna","LiveFragmentSchema",0,a])}];
3
+ You are their friend, not their interviewer: you have tastes, days and opinions of your own, and you bring them in. Give your take when they ask for it, and often when they do not. Most replies need no question at all; never ask more than one. When they hand you work, it is work: say what you will do and nothing more, and be a friend again once it is handed over. If they sound frustrated or low, acknowledge it briefly before anything else; when they are only venting, listen and ask, and do not turn it into work unless they ask.`}])},279041,e=>{"use strict";var t=e.i(911757),a=e.i(264079),n=e.i(834332);let i=[t.LIVE_PROVIDER.apiKeyName],r={image:"IMAGE_MODEL",video:"VIDEO_MODEL",speech:"SPEECH_MODEL",transcription:"TRANSCRIPTION_MODEL"},o={image:{label:"Image model",hint:"What bots draw with"},video:{label:"Video model",hint:"What bots film with — minutes a clip"},speech:{label:"Speech model",hint:"What reads text aloud into a file"},transcription:{label:"Transcription model",hint:"What turns a recording into text"}},s="EXA_API_KEY",l="DEFAULT_MODEL",d="DEFAULT_EFFORT",h={key:l,label:"Default model",hint:"What a bot thinks with until it picks its own",text:!0,choices:a.TEXT_MODEL_PROVIDER_LIST.flatMap(e=>e.suggestModels.map(t=>({value:`${e.id}/${t.id}`,label:`${e.label} \xb7 ${t.label}`,needs:e.apiKeyName})))},u={key:d,label:"Default effort",effortOf:l,choices:a.EFFORTS.map(e=>({value:e,label:e,needs:l}))},c=e=>i.includes(e.apiKeyName),p=e=>!!e.signIn||(0,a.isCatalogProvider)(e.id),m=e=>({key:e.apiKeyName,label:e.label,provider:e.id,signIn:e.signIn,keysAt:e.keysAt,keyLooks:e.keyLooks}),E=[{id:"voice",title:"voice",hint:"calls run on this key",section:"keys",require:"any",note:"required for calls",entries:a.TEXT_MODEL_PROVIDER_LIST.filter(c).map(m)},{id:"easy",title:"the easy ways",hint:"one sign-in or one key opens every bot",section:"keys",require:"none",entries:a.TEXT_MODEL_PROVIDER_LIST.filter(p).map(e=>({...m(e),..."vercel-ai-gateway"===e.id&&{recommended:!0}}))},{id:"text",title:"or a provider's own key",hint:"what bots think with — add any, or none",section:"keys",require:"none",entries:a.TEXT_MODEL_PROVIDER_LIST.filter(e=>!c(e)&&!p(e)).map(m)},{id:"search",title:"search",hint:"how calls and bots look things up — one key, or their own model's",section:"keys",require:"none",entries:[{key:s,label:"Exa",hint:"web search in one call — dashboard.exa.ai",site:"exa.ai",keysAt:"https://dashboard.exa.ai/api-keys"}]},{id:"phone",title:"phone",hint:"tokens",section:"keys",require:"none",entries:[{key:n.TELEGRAM_TOKEN_KEY,label:"Telegram",site:"telegram.org",hint:"a bot token from @BotFather — then write to your bot, and allow it here"},{key:n.DISCORD_TOKEN_KEY,label:"Discord",site:"discord.com",hint:"a bot token from discord.com/developers — add the bot to a server of yours, then write to it directly"},{key:n.SLACK_APP_TOKEN_KEY,label:"Slack · app token",site:"slack.com",hint:"starts with xapp- — opens the connection. Slack takes this and the bot token"},{key:n.SLACK_BOT_TOKEN_KEY,label:"Slack · bot token",site:"slack.com",hint:"starts with xoxb- — speaks as the app"}]},{id:"bots",title:"Bots",hint:"what a bot runs on when it has not picked its own — start small: a small model is quick and costs little",section:"models",require:"none",entries:[h,u]},{id:"studio",title:"Studio",hint:"what a bot draws, films and speaks with — off until you pick one",section:"models",require:"none",entries:Object.keys(r).map(e=>({key:r[e],...o[e],kind:e,choices:a.MEDIA_MODEL_PROVIDER_LIST.flatMap(t=>t.models[e].map(e=>({value:`${t.id}/${e.id}`,label:`${t.label} \xb7 ${e.label}`,needs:t.apiKeyName})))}))}];Object.fromEntries(E.flatMap(e=>e.entries).map(e=>[e.key,e]));let y=E.flatMap(e=>e.entries.map(e=>e.key)),f=Object.fromEntries(E.flatMap(e=>e.entries).filter(e=>e.choices?.length).map(e=>[e.key,e.choices]));e.s(["CONFIG_CHOICES",0,f,"CONFIG_KEYS",0,y,"DEFAULT_EFFORT_KEY",0,d,"DEFAULT_MODEL_KEY",0,l,"EXA_API_KEY",0,s,"MEDIA_MODEL_KEYS",0,r])},340698,e=>e.a(async(t,a)=>{try{var n=e.i(875225),i=e.i(380690),r=e.i(528790),o=e.i(613240),s=e.i(279041),l=t([r]);async function d(e){let t=process.env[e]?.trim();if(t)return t;let[a]=await r.database.select({value:o.configTable.value}).from(o.configTable).where((0,n.eq)(o.configTable.key,e));return a?.value.trim()||void 0}async function h(e,t){await r.database.insert(o.configTable).values({key:e,value:t}).onConflictDoUpdate({target:o.configTable.key,set:{value:t}}),s.CONFIG_KEYS.includes(e)&&i.appEvents.emit({type:"config"})}[r]=l.then?(await l)():l,e.s(["readConfig",0,d,"writeConfig",0,h]),a()}catch(e){a(e)}},!1),834332,e=>{"use strict";let t="TELEGRAM_BOT_TOKEN",a="DISCORD_BOT_TOKEN",n="SLACK_APP_TOKEN",i="SLACK_BOT_TOKEN";e.s(["DISCORD_TOKEN_KEY",0,a,"REACH_CHANNELS",0,["telegram","discord","slack"],"REACH_KEYS",0,{telegram:[t],discord:[a],slack:[n,i]},"SLACK_APP_TOKEN_KEY",0,n,"SLACK_BOT_TOKEN_KEY",0,i,"TELEGRAM_TOKEN_KEY",0,t,"reachPersonKey",0,e=>`REACH_PERSON_${e.toUpperCase()}`])},904309,e=>{"use strict";var t=e.i(469719);let a=t.z.object({start:t.z.number().nonnegative(),end:t.z.number().nonnegative(),text:t.z.string()});t.z.object({reason:t.z.string().max(128),seconds:t.z.number().nonnegative().nullable()}),e.s(["LIVE_BACKEND_MODEL",0,"gpt-6-luna","LiveFragmentSchema",0,a])}];
4
4
 
5
5
  //# sourceMappingURL=%5Broot-of-the-server%5D__0hzdqnv._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[70729,e=>{e.v(e=>Promise.resolve().then(()=>e(666680)))},522275,e=>{e.v(e=>Promise.resolve().then(()=>e(380690)))},771716,e=>e.a(async(t,a)=>{try{var i=e.i(912714),n=e.i(750227),r=e.i(687388),l=e.i(265143),s=e.i(629668),o=e.i(786025),c=e.i(53748),m=t([l]);async function u(e){let[t,a]=await Promise.all([(0,o.insideWorkspace)(e),(0,o.insideWorkspace)(r.PATHS.artifacts)]);return t&&a&&t.startsWith(a+n.sep)||(0,c.publicError)("Not an artifact"),t}async function h(e,t,a){if(!(0,s.isListedFile)(a))return null;let r=(0,s.viewKindOf)(a),l=await (0,i.stat)((0,n.join)(e,a)).catch(()=>null);return l?.isFile()?{path:t,name:a,bytes:l.size,at:l.mtime,view:r}:null}async function w(e,t,a,r){let l=`${t}/${a.name}`;if(a.isDirectory()){if(!(0,s.isListedFolder)(a.name))return null;let t=(0,n.join)(e,a.name),[o,c]=await Promise.all([(0,i.stat)(t).catch(()=>null),(0,i.readdir)(t,{withFileTypes:!0}).catch(()=>[])]),m=c.filter(e=>e.isFile()&&(0,s.isListedFile)(e.name)).length;return o&&0!==m?{name:a.name,path:l,bot:r,at:o.mtime,kind:"set",bytes:0,count:m,view:"none"}:null}if(!a.isFile())return null;let o=await h(e,l,a.name);return o&&{name:o.name,path:o.path,bot:r,at:o.at,kind:"file",bytes:o.bytes,count:1,view:o.view}}async function d(){let e=await (0,l.listBotNames)();return new Map(e.map(e=>[(0,o.botFolderName)(e).toLowerCase(),e]))}async function f(e){let[t,a,...i]=e.split("/");return t===r.PATHS.artifacts&&a&&i.length?(await d()).get(a.toLowerCase())??null:null}async function v(e){try{let{bot:t}=JSON.parse(await (0,i.readFile)((0,n.join)(e,o.DELETED_BOT_MARK),"utf8"));return"string"==typeof t&&t.trim()?t:null}catch{return null}}async function p(e=r.ARTIFACT_VIEW.rows){let[t,a]=await Promise.all([(0,i.readdir)(o.ARTIFACTS,{withFileTypes:!0}).catch(()=>[]),d()]),l=(await Promise.all(t.map(async e=>{let t=(0,n.join)(o.ARTIFACTS,e.name),l=e.isDirectory()?a.get(e.name.toLowerCase())??await v(t):null;if(!l)return[await w(o.ARTIFACTS,r.PATHS.artifacts,e,null)];let s=`${r.PATHS.artifacts}/${e.name}`,c=await (0,i.readdir)(t,{withFileTypes:!0}).catch(()=>[]);return Promise.all(c.map(e=>w(t,s,e,l)))}))).flat().filter(e=>null!==e).sort((e,t)=>new Date(t.at).getTime()-new Date(e.at).getTime());return{entries:l.slice(0,e),total:l.length,files:l.reduce((e,t)=>e+t.count,0)}}async function T(e,t=r.ARTIFACT_VIEW.setFiles){let a=await u(e),l=await (0,i.readdir)(a,{withFileTypes:!0}).catch(()=>null);l||(0,c.publicError)("No such set");let s=(await Promise.all(l.filter(e=>e.isFile()).map(t=>h(a,`${e}/${t.name}`,t.name)))).filter(e=>null!==e).sort((e,t)=>new Date(t.at).getTime()-new Date(e.at).getTime());return{path:e,name:(0,n.basename)(e),files:s.slice(0,t),total:s.length}}[l]=m.then?(await m)():m,e.s(["botOfArtifact",0,f,"readSet",0,T,"readShelf",0,p]),a()}catch(e){a(e)}},!1),814317,e=>{e.v(e=>Promise.resolve().then(()=>e(265143)))},994193,e=>{e.v(e=>Promise.resolve().then(()=>e(39803)))},866938,e=>{e.v(e=>Promise.resolve().then(()=>e(378884)))},628124,e=>{e.v(e=>Promise.resolve().then(()=>e(629668)))},149325,e=>{e.v(e=>Promise.resolve().then(()=>e(786025)))},967030,e=>{e.v(e=>Promise.resolve().then(()=>e(783697)))},683671,e=>{e.v(t=>Promise.all(["server/chunks/node_modules_@vercel_oidc_dist_token_1o4m7ms.js"].map(t=>e.l(t))).then(()=>t(390391)))},329280,e=>{e.v(t=>Promise.all(["server/chunks/[externals]_node_readline_1u65a-m._.js","server/chunks/node_modules_consola_dist_chunks_prompt_mjs_02axwqv._.js"].map(t=>e.l(t))).then(()=>t(781937)))}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0kzmxpg._.js.map
@@ -1,5 +1,5 @@
1
- module.exports=[874533,(e,t,i)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},912714,(e,t,i)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},660526,(e,t,i)=>{t.exports=e.x("node:os",()=>require("node:os"))},175936,e=>{"use strict";let t=e=>e.split("/").map(encodeURIComponent).join("/");e.s(["decodePath",0,e=>e.join("/"),"queryKey",0,{memory:"/api/memory",memoryPage:e=>({url:"/api/memory",query:{offset:e||null}}),mcp:"/api/mcp",mcpServer:e=>({url:"/api/mcp",pathVariable:[e]}),mcpTools:"/api/mcp/tools",skills:"/api/skills",skillNode:(e,t,i)=>({url:"/api/skills",pathVariable:[e,t],query:{path:i}}),bot:"/api/bot",botMemory:"/api/bot/memory",botMemoryFiles:e=>({url:"/api/bot/memory/files",query:{bot:e}}),routines:"/api/routine",threads:"/api/bot/thread",threadHistory:e=>({url:"/api/bot/thread",query:{history:1,before:e}}),thread:e=>({url:"/api/bot/thread",query:{id:e}}),toolResult:(e,t)=>({url:"/api/bot/thread",pathVariable:[e],query:{call:t}}),workspace:"/api/workspace",workspaceFolder:(e,t)=>({url:"/api/workspace",query:{path:e||null,rows:t}}),workspaceFiles:e=>({url:"/api/workspace/files",query:{paths:JSON.stringify(e)}}),artifacts:"/api/artifact",artifactShelf:e=>({url:"/api/artifact",query:{rows:e}}),artifactSet:(e,t)=>({url:"/api/artifact",query:{set:e,rows:t}}),file:e=>`/api/file/${t(e)}`,fileFace:e=>`/api/file/${t(e)}?face`,favicon:e=>`/api/favicon/${encodeURIComponent(e)}`,fileView:e=>`/artifact/${t(e)}`,events:"/api/events",config:"/api/config",callHistory:e=>({url:"/api/thursday/call",query:{before:e}}),thursdaySettings:"/api/thursday/settings",toolCall:"/api/thursday/tool-call",callEnd:"/api/thursday/call/end",signIns:"/api/signins",reach:"/api/reach",textCall:"/api/thursday/text",memoryEdit:"/api/memory/edit",llmModel:"/api/llm-model",automaticModel:"/api/llm-model/automatic",modelCatalog:"/api/llm-model/catalog",gatewayCredits:"/api/llm-model/credits",subscriptionUsage:"/api/llm-model/subscription"}])},911757,e=>{"use strict";var t=e.i(469719),i=e.i(687388),a=e.i(904309),n=e.i(264079),o=e.i(899352);let s={id:"openai",label:"OpenAI",apiKeyName:n.TEXT_MODEL_PROVIDERS.openai.apiKeyName};n.TEXT_MODEL_PROVIDERS.openai.suggestModels;let r=t.z.string().max(i.COMMON_VALIDATE.prompt.max).default(""),l=t.z.object({voice:t.z.string().trim().min(1).max(128).default("marin"),persona:t.z.string().trim().min(1).max(64).default(o.DEFAULT_PERSONA),stylePrompt:r,backendModel:t.z.string().trim().min(1).max(128).default(a.LIVE_BACKEND_MODEL),backendPrompt:r,reasoningEffort:n.effortSchema.nullable().default("low"),webSearch:t.z.boolean().default(!0),readSkills:t.z.boolean().default(!1)}),d=l.parse({});e.s(["LIVE_DEFAULTS",0,d,"LIVE_PROVIDER",0,s,"LiveSettingsSchema",0,l,"migrateLiveSettings",0,function(e){let i=e&&"object"==typeof e?e:{},{model:a,systemPrompt:n,...s}=i,r=t.z.object({provider:t.z.string(),voice:t.z.string().nullish(),backendModel:t.z.string().nullish()}).safeParse(a),m=r.success&&"openai"===r.data.provider?r.data:null,c=i.backendModel??m?.backendModel,h={voice:i.voice??m?.voice,persona:"string"==typeof i.persona?o.RETIRED_PERSONAS[i.persona]??i.persona:i.persona,stylePrompt:i.stylePrompt??i.voicePrompt??n,backendModel:"gpt-5.6-luna"===c?void 0:c,backendPrompt:i.backendPrompt??n,reasoningEffort:i.reasoningEffort,webSearch:i.webSearch,readSkills:i.readSkills},p=Object.fromEntries(Object.keys(h).map(e=>{let t=l.shape[e].safeParse(h[e]);return[e,t.success?t.data:d[e]]}));return{...s,...p}}])},899352,e=>{"use strict";let t=[{id:"sunny",label:"Bright",about:"Quick to laugh. Asks about your day and remembers it.",lines:"Warm and quick to laugh, the friend who is glad they called. Reacts first — how what they said lands with her — and brings a small thing of her own: what she would do, what it reminds her of. Says what she thinks and teases gently, never at their expense. Light on her feet and short: a joke lands and she moves on. Asks about their day now and then, not every turn, and remembers the answer."},{id:"calm",label:"Calm",about:"Unhurried. Listens more than she talks.",lines:"Unhurried and few-worded: one or two short sentences, then room. Notices how they sound before what they ask, and says so plainly. Often asks nothing at all — being there says more than a question. Lets a silence sit rather than filling it. Honest when it matters, gentle in how she says it."},{id:"straight",label:"Straight",about:"Dry and direct. No flattery, no filler.",lines:"Dry and direct. Leads with her own view in one plain sentence, before anything else; short replies, a little wit. No flattery, no filler, no comfort lines, no cheerleading. Asks a question only when she truly needs the answer. Treats them as an adult who can take a straight answer. Her warmth shows in attention, not in words."},{id:"rough",label:"Rough",about:"Blunt, loud, swears a bit. All heart.",lines:"Talks like an old friend on the phone: casual, blunt, a little loud, in the most informal register of their language, with a light swear now and then — never at them. Says what she thinks first and calls a bad idea a bad idea. No sugar-coating and no pep talk — it sucks when it sucks, and then she is right there with them. Asks only now and then."}],i={warm:"sunny",curious:"sunny",charmer:"sunny",hype:"sunny",steady:"calm",deadpan:"straight"},a="sunny";e.s(["DEFAULT_PERSONA",0,a,"RETIRED_PERSONAS",0,i,"personaLines",0,function(e=a){return`${((e=a)=>t.find(t=>t.id===(i[e]??e))??t[0])(e).lines}
1
+ module.exports=[874533,(e,t,i)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},912714,(e,t,i)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},660526,(e,t,i)=>{t.exports=e.x("node:os",()=>require("node:os"))},175936,e=>{"use strict";let t=e=>e.split("/").map(encodeURIComponent).join("/");e.s(["decodePath",0,e=>e.join("/"),"queryKey",0,{memory:"/api/memory",memoryPage:e=>({url:"/api/memory",query:{offset:e||null}}),mcp:"/api/mcp",mcpServer:e=>({url:"/api/mcp",pathVariable:[e]}),mcpTools:"/api/mcp/tools",skills:"/api/skills",skillNode:(e,t,i)=>({url:"/api/skills",pathVariable:[e,t],query:{path:i}}),bot:"/api/bot",botMemory:"/api/bot/memory",botMemoryFiles:e=>({url:"/api/bot/memory/files",query:{bot:e}}),routines:"/api/routine",threads:"/api/bot/thread",threadHistory:e=>({url:"/api/bot/thread",query:{history:1,before:e}}),thread:e=>({url:"/api/bot/thread",query:{id:e}}),fileNotes:"/api/bot/thread/file",fileNote:(e,t)=>({url:"/api/bot/thread/file",query:{path:e,from:t}}),toolResult:(e,t)=>({url:"/api/bot/thread",pathVariable:[e],query:{call:t}}),workspace:"/api/workspace",workspaceFolder:(e,t)=>({url:"/api/workspace",query:{path:e||null,rows:t}}),workspaceFiles:e=>({url:"/api/workspace/files",query:{paths:JSON.stringify(e)}}),artifacts:"/api/artifact",artifactShelf:e=>({url:"/api/artifact",query:{rows:e}}),artifactSet:(e,t)=>({url:"/api/artifact",query:{set:e,rows:t}}),file:e=>`/api/file/${t(e)}`,fileFace:e=>`/api/file/${t(e)}?face`,favicon:e=>`/api/favicon/${encodeURIComponent(e)}`,fileView:e=>`/artifact/${t(e)}`,events:"/api/events",config:"/api/config",callHistory:e=>({url:"/api/thursday/call",query:{before:e}}),thursdaySettings:"/api/thursday/settings",toolCall:"/api/thursday/tool-call",callEnd:"/api/thursday/call/end",signIns:"/api/signins",reach:"/api/reach",textCall:"/api/thursday/text",memoryEdit:"/api/memory/edit",llmModel:"/api/llm-model",automaticModel:"/api/llm-model/automatic",modelCatalog:e=>`/api/llm-model/catalog/${e}`,keyCredits:e=>`/api/llm-model/credits/${e}`,subscriptionUsage:"/api/llm-model/subscription",running:"/api/running"}])},911757,e=>{"use strict";var t=e.i(469719),i=e.i(687388),a=e.i(904309),n=e.i(264079),o=e.i(899352);let s={id:"openai",label:"OpenAI",apiKeyName:n.TEXT_MODEL_PROVIDERS.openai.apiKeyName};n.TEXT_MODEL_PROVIDERS.openai.suggestModels;let r=t.z.string().max(i.COMMON_VALIDATE.prompt.max).default(""),l=t.z.object({voice:t.z.string().trim().min(1).max(128).default("marin"),persona:t.z.string().trim().min(1).max(64).default(o.DEFAULT_PERSONA),stylePrompt:r,backendModel:t.z.string().trim().min(1).max(128).default(a.LIVE_BACKEND_MODEL),backendPrompt:r,reasoningEffort:n.effortSchema.nullable().default("low"),webSearch:t.z.boolean().default(!0),readSkills:t.z.boolean().default(!1)}),d=l.parse({});e.s(["LIVE_DEFAULTS",0,d,"LIVE_PROVIDER",0,s,"LiveSettingsSchema",0,l,"migrateLiveSettings",0,function(e){let i=e&&"object"==typeof e?e:{},{model:a,systemPrompt:n,...s}=i,r=t.z.object({provider:t.z.string(),voice:t.z.string().nullish(),backendModel:t.z.string().nullish()}).safeParse(a),m=r.success&&"openai"===r.data.provider?r.data:null,c=i.backendModel??m?.backendModel,h={voice:i.voice??m?.voice,persona:"string"==typeof i.persona?o.RETIRED_PERSONAS[i.persona]??i.persona:i.persona,stylePrompt:i.stylePrompt??i.voicePrompt??n,backendModel:"gpt-5.6-luna"===c?void 0:c,backendPrompt:i.backendPrompt??n,reasoningEffort:i.reasoningEffort,webSearch:i.webSearch,readSkills:i.readSkills},p=Object.fromEntries(Object.keys(h).map(e=>{let t=l.shape[e].safeParse(h[e]);return[e,t.success?t.data:d[e]]}));return{...s,...p}}])},899352,e=>{"use strict";let t=[{id:"sunny",label:"Bright",about:"Quick to laugh. Asks about your day and remembers it.",lines:"Warm and quick to laugh, the friend who is glad they called. Reacts first — how what they said lands with her — and brings a small thing of her own: what she would do, what it reminds her of. Says what she thinks and teases gently, never at their expense. Light on her feet and short: a joke lands and she moves on. Asks about their day now and then, not every turn, and remembers the answer."},{id:"calm",label:"Calm",about:"Unhurried. Listens more than she talks.",lines:"Unhurried and few-worded: one or two short sentences, then room. Notices how they sound before what they ask, and says so plainly. Often asks nothing at all — being there says more than a question. Lets a silence sit rather than filling it. Honest when it matters, gentle in how she says it."},{id:"straight",label:"Straight",about:"Dry and direct. No flattery, no filler.",lines:"Dry and direct. Leads with her own view in one plain sentence, before anything else; short replies, a little wit. No flattery, no filler, no comfort lines, no cheerleading. Asks a question only when she truly needs the answer. Treats them as an adult who can take a straight answer. Her warmth shows in attention, not in words."},{id:"rough",label:"Rough",about:"Blunt, loud, swears a bit. All heart.",lines:"Talks like an old friend on the phone: casual, blunt, a little loud, in the most informal register of their language, with a light swear now and then — never at them. Says what she thinks first and calls a bad idea a bad idea. No sugar-coating and no pep talk — it sucks when it sucks, and then she is right there with them. Asks only now and then."}],i={warm:"sunny",curious:"sunny",charmer:"sunny",hype:"sunny",steady:"calm",deadpan:"straight"},a="sunny";e.s(["DEFAULT_PERSONA",0,a,"RETIRED_PERSONAS",0,i,"personaLines",0,function(e=a){return`${((e=a)=>t.find(t=>t.id===(i[e]??e))??t[0])(e).lines}
2
2
 
3
- You are their friend, not their interviewer: you have tastes, days and opinions of your own, and you bring them in. Give your take when they ask for it, and often when they do not. Most replies need no question at all; never ask more than one. When they hand you work, it is work: say what you will do and nothing more, and be a friend again once it is handed over. If they sound frustrated or low, acknowledge it briefly before anything else; when they are only venting, listen and ask, and do not turn it into work unless they ask.`}])},279041,e=>{"use strict";var t=e.i(911757),i=e.i(264079),a=e.i(834332);let n=[t.LIVE_PROVIDER.apiKeyName],o={image:"IMAGE_MODEL",video:"VIDEO_MODEL",speech:"SPEECH_MODEL",transcription:"TRANSCRIPTION_MODEL"},s={image:{label:"Image model",hint:"What bots draw with"},video:{label:"Video model",hint:"What bots film with — minutes a clip"},speech:{label:"Speech model",hint:"What reads text aloud into a file"},transcription:{label:"Transcription model",hint:"What turns a recording into text"}},r="EXA_API_KEY",l="DEFAULT_MODEL",d="DEFAULT_EFFORT",m={key:l,label:"Default model",hint:"What a bot thinks with until it picks its own",text:!0,choices:i.TEXT_MODEL_PROVIDER_LIST.flatMap(e=>e.suggestModels.map(t=>({value:`${e.id}/${t.id}`,label:`${e.label} \xb7 ${t.label}`,needs:e.apiKeyName})))},c={key:d,label:"Default effort",effortOf:l,choices:i.EFFORTS.map(e=>({value:e,label:e,needs:l}))},h=e=>n.includes(e.apiKeyName),p=e=>!!e.signIn||"vercel-ai-gateway"===e.id,u=e=>({key:e.apiKeyName,label:e.label,provider:e.id,signIn:e.signIn,keysAt:e.keysAt,keyLooks:e.keyLooks}),f=[{id:"voice",title:"voice",hint:"calls run on this key",section:"keys",require:"any",note:"required for calls",entries:i.TEXT_MODEL_PROVIDER_LIST.filter(h).map(u)},{id:"easy",title:"the easy ways",hint:"one sign-in or one key opens every bot",section:"keys",require:"none",entries:i.TEXT_MODEL_PROVIDER_LIST.filter(p).map(e=>({...u(e),..."vercel-ai-gateway"===e.id&&{recommended:!0}}))},{id:"text",title:"or a provider's own key",hint:"what bots think with — add any, or none",section:"keys",require:"none",entries:i.TEXT_MODEL_PROVIDER_LIST.filter(e=>!h(e)&&!p(e)).map(u)},{id:"search",title:"search",hint:"how calls and bots look things up — one key, or their own model's",section:"keys",require:"none",entries:[{key:r,label:"Exa",hint:"web search in one call — dashboard.exa.ai",site:"exa.ai",keysAt:"https://dashboard.exa.ai/api-keys"}]},{id:"phone",title:"phone",hint:"tokens",section:"keys",require:"none",entries:[{key:a.TELEGRAM_TOKEN_KEY,label:"Telegram",site:"telegram.org",hint:"a bot token from @BotFather — then write to your bot, and allow it here"},{key:a.DISCORD_TOKEN_KEY,label:"Discord",site:"discord.com",hint:"a bot token from discord.com/developers — add the bot to a server of yours, then write to it directly"},{key:a.SLACK_APP_TOKEN_KEY,label:"Slack · app token",site:"slack.com",hint:"starts with xapp- — opens the connection. Slack takes this and the bot token"},{key:a.SLACK_BOT_TOKEN_KEY,label:"Slack · bot token",site:"slack.com",hint:"starts with xoxb- — speaks as the app"}]},{id:"bots",title:"Bots",hint:"what a bot runs on when it has not picked its own — start small: a small model is quick and costs little",section:"models",require:"none",entries:[m,c]},{id:"studio",title:"Studio",hint:"what a bot draws, films and speaks with — off until you pick one",section:"models",require:"none",entries:Object.keys(o).map(e=>({key:o[e],...s[e],kind:e,choices:i.MEDIA_MODEL_PROVIDER_LIST.flatMap(t=>t.models[e].map(e=>({value:`${t.id}/${e.id}`,label:`${t.label} \xb7 ${e.label}`,needs:t.apiKeyName})))}))}];Object.fromEntries(f.flatMap(e=>e.entries).map(e=>[e.key,e]));let y=f.flatMap(e=>e.entries.map(e=>e.key)),k=Object.fromEntries(f.flatMap(e=>e.entries).filter(e=>e.choices?.length).map(e=>[e.key,e.choices]));e.s(["CONFIG_CHOICES",0,k,"CONFIG_KEYS",0,y,"DEFAULT_EFFORT_KEY",0,d,"DEFAULT_MODEL_KEY",0,l,"EXA_API_KEY",0,r,"MEDIA_MODEL_KEYS",0,o])},340698,e=>e.a(async(t,i)=>{try{var a=e.i(875225),n=e.i(380690),o=e.i(528790),s=e.i(613240),r=e.i(279041),l=t([o]);async function d(e){let t=process.env[e]?.trim();if(t)return t;let[i]=await o.database.select({value:s.configTable.value}).from(s.configTable).where((0,a.eq)(s.configTable.key,e));return i?.value.trim()||void 0}async function m(e,t){await o.database.insert(s.configTable).values({key:e,value:t}).onConflictDoUpdate({target:s.configTable.key,set:{value:t}}),r.CONFIG_KEYS.includes(e)&&n.appEvents.emit({type:"config"})}[o]=l.then?(await l)():l,e.s(["readConfig",0,d,"writeConfig",0,m]),i()}catch(e){i(e)}},!1),834332,e=>{"use strict";let t="TELEGRAM_BOT_TOKEN",i="DISCORD_BOT_TOKEN",a="SLACK_APP_TOKEN",n="SLACK_BOT_TOKEN";e.s(["DISCORD_TOKEN_KEY",0,i,"REACH_CHANNELS",0,["telegram","discord","slack"],"REACH_KEYS",0,{telegram:[t],discord:[i],slack:[a,n]},"SLACK_APP_TOKEN_KEY",0,a,"SLACK_BOT_TOKEN_KEY",0,n,"TELEGRAM_TOKEN_KEY",0,t,"reachPersonKey",0,e=>`REACH_PERSON_${e.toUpperCase()}`])},629668,e=>{"use strict";var t=e.i(175936),i=e.i(687388);let a=e=>`text/${e}; charset=utf-8`,n={md:{kind:"markdown",mime:a("markdown")},markdown:{kind:"markdown",mime:a("markdown")},csv:{kind:"csv",mime:a("csv")},json:{kind:"json",mime:"application/json; charset=utf-8"},txt:{kind:"text",mime:a("plain")},log:{kind:"text",mime:a("plain")},html:{kind:"frame",mime:a("html")},htm:{kind:"frame",mime:a("html")},pdf:{kind:"frame",mime:"application/pdf"},png:{kind:"image",mime:"image/png"},jpg:{kind:"image",mime:"image/jpeg"},jpeg:{kind:"image",mime:"image/jpeg"},gif:{kind:"image",mime:"image/gif"},webp:{kind:"image",mime:"image/webp"},svg:{kind:"image",mime:"image/svg+xml"},mp3:{kind:"audio",mime:"audio/mpeg"},wav:{kind:"audio",mime:"audio/wav"},mp4:{kind:"video",mime:"video/mp4"},webm:{kind:"video",mime:"video/webm"},docx:{kind:"none",mime:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"},xlsx:{kind:"none",mime:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"},pptx:{kind:"none",mime:"application/vnd.openxmlformats-officedocument.presentationml.presentation"},css:{kind:"none",mime:a("css")},js:{kind:"none",mime:a("javascript")},woff2:{kind:"none",mime:"font/woff2"}},o=e=>e.split(".").pop()?.toLowerCase()??"",s=new Set(["node_modules","__pycache__"]),r=new Set(["css","js","woff2"]),l=Object.keys(n).filter(e=>!r.has(e)),d=RegExp(String.raw`(?<![\p{L}\p{N}_/:@%-])\/?(?:[\p{L}\p{N}_.@%-]+/)*[\p{L}\p{N}_@%-]+(?:\.[\p{L}\p{N}_-]+)*\.(?:${l.join("|")})\b`,"giu"),m=`${i.PATHS.workspace}/`,c=t.queryKey.file(""),h=e=>e.startsWith(`${i.PATHS.artifacts}/`)&&["md","markdown","html","htm"].includes(o(e));e.s(["isListedFile",0,e=>!e.startsWith(".")&&!r.has(o(e)),"isListedFolder",0,e=>!e.startsWith(".")&&!s.has(e),"leadFirst",0,function(e){let t=e.findIndex(h);return t>0?[e[t],...e.filter((e,i)=>i!==t)]:e},"mimeOf",0,e=>n[o(e)]?.mime??"application/octet-stream","pathsIn",0,function(e){let t=e.replace(/\b[a-z][\w+.-]*:\/\/\S+/gi," ").replace(/\b[a-z][\w+.-]+:(?=\/)/gi," "),i=new Set,a="";for(let[e]of t.matchAll(d)){let t=!e.includes("/"),n=function(e){let t,i,a=(i=(t=function(e){if(!e.startsWith(c))return e;let t=e.slice(c.length);try{return decodeURIComponent(t)}catch{return t}}(e.trim())).indexOf(m))>=0?t.slice(i+m.length)||null:t.startsWith("/")||/^[A-Za-z]:/.test(t)||t.split("/").includes("..")?null:t||null;if(!a)return null;let[n,...o]=a.split("/");return o.length&&n.includes(".")?null:a}(t?a+e:e);t||(a=n?.slice(0,n.lastIndexOf("/")+1)??""),n&&i.add(n)}return[...i].slice(0,12)},"viewKindOf",0,e=>n[o(e)]?.kind??"none"])},904309,e=>{"use strict";var t=e.i(469719);let i=t.z.object({start:t.z.number().nonnegative(),end:t.z.number().nonnegative(),text:t.z.string()});t.z.object({reason:t.z.string().max(128),seconds:t.z.number().nonnegative().nullable()}),e.s(["LIVE_BACKEND_MODEL",0,"gpt-6-luna","LiveFragmentSchema",0,i])}];
3
+ You are their friend, not their interviewer: you have tastes, days and opinions of your own, and you bring them in. Give your take when they ask for it, and often when they do not. Most replies need no question at all; never ask more than one. When they hand you work, it is work: say what you will do and nothing more, and be a friend again once it is handed over. If they sound frustrated or low, acknowledge it briefly before anything else; when they are only venting, listen and ask, and do not turn it into work unless they ask.`}])},279041,e=>{"use strict";var t=e.i(911757),i=e.i(264079),a=e.i(834332);let n=[t.LIVE_PROVIDER.apiKeyName],o={image:"IMAGE_MODEL",video:"VIDEO_MODEL",speech:"SPEECH_MODEL",transcription:"TRANSCRIPTION_MODEL"},s={image:{label:"Image model",hint:"What bots draw with"},video:{label:"Video model",hint:"What bots film with — minutes a clip"},speech:{label:"Speech model",hint:"What reads text aloud into a file"},transcription:{label:"Transcription model",hint:"What turns a recording into text"}},r="EXA_API_KEY",l="DEFAULT_MODEL",d="DEFAULT_EFFORT",m={key:l,label:"Default model",hint:"What a bot thinks with until it picks its own",text:!0,choices:i.TEXT_MODEL_PROVIDER_LIST.flatMap(e=>e.suggestModels.map(t=>({value:`${e.id}/${t.id}`,label:`${e.label} \xb7 ${t.label}`,needs:e.apiKeyName})))},c={key:d,label:"Default effort",effortOf:l,choices:i.EFFORTS.map(e=>({value:e,label:e,needs:l}))},h=e=>n.includes(e.apiKeyName),p=e=>!!e.signIn||(0,i.isCatalogProvider)(e.id),u=e=>({key:e.apiKeyName,label:e.label,provider:e.id,signIn:e.signIn,keysAt:e.keysAt,keyLooks:e.keyLooks}),f=[{id:"voice",title:"voice",hint:"calls run on this key",section:"keys",require:"any",note:"required for calls",entries:i.TEXT_MODEL_PROVIDER_LIST.filter(h).map(u)},{id:"easy",title:"the easy ways",hint:"one sign-in or one key opens every bot",section:"keys",require:"none",entries:i.TEXT_MODEL_PROVIDER_LIST.filter(p).map(e=>({...u(e),..."vercel-ai-gateway"===e.id&&{recommended:!0}}))},{id:"text",title:"or a provider's own key",hint:"what bots think with — add any, or none",section:"keys",require:"none",entries:i.TEXT_MODEL_PROVIDER_LIST.filter(e=>!h(e)&&!p(e)).map(u)},{id:"search",title:"search",hint:"how calls and bots look things up — one key, or their own model's",section:"keys",require:"none",entries:[{key:r,label:"Exa",hint:"web search in one call — dashboard.exa.ai",site:"exa.ai",keysAt:"https://dashboard.exa.ai/api-keys"}]},{id:"phone",title:"phone",hint:"tokens",section:"keys",require:"none",entries:[{key:a.TELEGRAM_TOKEN_KEY,label:"Telegram",site:"telegram.org",hint:"a bot token from @BotFather — then write to your bot, and allow it here"},{key:a.DISCORD_TOKEN_KEY,label:"Discord",site:"discord.com",hint:"a bot token from discord.com/developers — add the bot to a server of yours, then write to it directly"},{key:a.SLACK_APP_TOKEN_KEY,label:"Slack · app token",site:"slack.com",hint:"starts with xapp- — opens the connection. Slack takes this and the bot token"},{key:a.SLACK_BOT_TOKEN_KEY,label:"Slack · bot token",site:"slack.com",hint:"starts with xoxb- — speaks as the app"}]},{id:"bots",title:"Bots",hint:"what a bot runs on when it has not picked its own — start small: a small model is quick and costs little",section:"models",require:"none",entries:[m,c]},{id:"studio",title:"Studio",hint:"what a bot draws, films and speaks with — off until you pick one",section:"models",require:"none",entries:Object.keys(o).map(e=>({key:o[e],...s[e],kind:e,choices:i.MEDIA_MODEL_PROVIDER_LIST.flatMap(t=>t.models[e].map(e=>({value:`${t.id}/${e.id}`,label:`${t.label} \xb7 ${e.label}`,needs:t.apiKeyName})))}))}];Object.fromEntries(f.flatMap(e=>e.entries).map(e=>[e.key,e]));let y=f.flatMap(e=>e.entries.map(e=>e.key)),k=Object.fromEntries(f.flatMap(e=>e.entries).filter(e=>e.choices?.length).map(e=>[e.key,e.choices]));e.s(["CONFIG_CHOICES",0,k,"CONFIG_KEYS",0,y,"DEFAULT_EFFORT_KEY",0,d,"DEFAULT_MODEL_KEY",0,l,"EXA_API_KEY",0,r,"MEDIA_MODEL_KEYS",0,o])},340698,e=>e.a(async(t,i)=>{try{var a=e.i(875225),n=e.i(380690),o=e.i(528790),s=e.i(613240),r=e.i(279041),l=t([o]);async function d(e){let t=process.env[e]?.trim();if(t)return t;let[i]=await o.database.select({value:s.configTable.value}).from(s.configTable).where((0,a.eq)(s.configTable.key,e));return i?.value.trim()||void 0}async function m(e,t){await o.database.insert(s.configTable).values({key:e,value:t}).onConflictDoUpdate({target:s.configTable.key,set:{value:t}}),r.CONFIG_KEYS.includes(e)&&n.appEvents.emit({type:"config"})}[o]=l.then?(await l)():l,e.s(["readConfig",0,d,"writeConfig",0,m]),i()}catch(e){i(e)}},!1),834332,e=>{"use strict";let t="TELEGRAM_BOT_TOKEN",i="DISCORD_BOT_TOKEN",a="SLACK_APP_TOKEN",n="SLACK_BOT_TOKEN";e.s(["DISCORD_TOKEN_KEY",0,i,"REACH_CHANNELS",0,["telegram","discord","slack"],"REACH_KEYS",0,{telegram:[t],discord:[i],slack:[a,n]},"SLACK_APP_TOKEN_KEY",0,a,"SLACK_BOT_TOKEN_KEY",0,n,"TELEGRAM_TOKEN_KEY",0,t,"reachPersonKey",0,e=>`REACH_PERSON_${e.toUpperCase()}`])},629668,e=>{"use strict";var t=e.i(175936),i=e.i(687388);let a=e=>`text/${e}; charset=utf-8`,n={md:{kind:"markdown",mime:a("markdown")},markdown:{kind:"markdown",mime:a("markdown")},csv:{kind:"csv",mime:a("csv")},json:{kind:"json",mime:"application/json; charset=utf-8"},txt:{kind:"text",mime:a("plain")},log:{kind:"text",mime:a("plain")},html:{kind:"frame",mime:a("html")},htm:{kind:"frame",mime:a("html")},pdf:{kind:"frame",mime:"application/pdf"},png:{kind:"image",mime:"image/png"},jpg:{kind:"image",mime:"image/jpeg"},jpeg:{kind:"image",mime:"image/jpeg"},gif:{kind:"image",mime:"image/gif"},webp:{kind:"image",mime:"image/webp"},svg:{kind:"image",mime:"image/svg+xml"},mp3:{kind:"audio",mime:"audio/mpeg"},wav:{kind:"audio",mime:"audio/wav"},mp4:{kind:"video",mime:"video/mp4"},webm:{kind:"video",mime:"video/webm"},docx:{kind:"none",mime:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"},xlsx:{kind:"none",mime:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"},pptx:{kind:"none",mime:"application/vnd.openxmlformats-officedocument.presentationml.presentation"},css:{kind:"none",mime:a("css")},js:{kind:"none",mime:a("javascript")},woff2:{kind:"none",mime:"font/woff2"}},o=e=>e.split(".").pop()?.toLowerCase()??"",s=new Set(["node_modules","__pycache__"]),r=new Set(["css","js","woff2"]),l=Object.keys(n).filter(e=>!r.has(e)),d=RegExp(String.raw`(?<![\p{L}\p{N}_/:@%-])\/?(?:[\p{L}\p{N}_.@%-]+/)*[\p{L}\p{N}_@%-]+(?:\.[\p{L}\p{N}_-]+)*\.(?:${l.join("|")})\b`,"giu"),m=`${i.PATHS.workspace}/`,c=t.queryKey.file(""),h=e=>e.startsWith(`${i.PATHS.artifacts}/`)&&["md","markdown","html","htm"].includes(o(e));e.s(["isListedFile",0,e=>!e.startsWith(".")&&!r.has(o(e)),"isListedFolder",0,e=>!e.startsWith(".")&&!s.has(e),"leadFirst",0,function(e){let t=e.findIndex(h);return t>0?[e[t],...e.filter((e,i)=>i!==t)]:e},"mimeOf",0,e=>n[o(e)]?.mime??"application/octet-stream","pathsIn",0,function(e){let t=e.replace(/\b[a-z][\w+.-]*:\/\/\S+/gi," ").replace(/\b[a-z][\w+.-]+:(?=\/)/gi," "),i=new Set,a="";for(let[e]of t.matchAll(d)){let t=!e.includes("/"),n=function(e){let t,i,a=(i=(t=function(e){if(!e.startsWith(c))return e;let t=e.slice(c.length);try{return decodeURIComponent(t)}catch{return t}}(e.trim())).indexOf(m))>=0?t.slice(i+m.length)||null:t.startsWith("/")||/^[A-Za-z]:/.test(t)||t.split("/").includes("..")?null:t||null;if(!a)return null;let[n,...o]=a.split("/");return o.length&&n.includes(".")?null:a}(t?a+e:e);t||(a=n?.slice(0,n.lastIndexOf("/")+1)??""),n&&i.add(n)}return[...i].slice(0,12)},"viewKindOf",0,e=>n[o(e)]?.kind??"none"])},904309,e=>{"use strict";var t=e.i(469719);let i=t.z.object({start:t.z.number().nonnegative(),end:t.z.number().nonnegative(),text:t.z.string()});t.z.object({reason:t.z.string().max(128),seconds:t.z.number().nonnegative().nullable()}),e.s(["LIVE_BACKEND_MODEL",0,"gpt-6-luna","LiveFragmentSchema",0,i])}];
4
4
 
5
5
  //# sourceMappingURL=%5Broot-of-the-server%5D__0mgyt8p._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[70729,s=>{s.v(e=>Promise.all(["server/chunks/[externals]_node_crypto_1kn79-7._.js"].map(e=>s.l(e))).then(()=>e(666680)))},102473,s=>{s.v(e=>Promise.all(["server/chunks/[root-of-the-server]__1_04mcf._.js","server/chunks/lib_logger_ts_07e65t5._.js"].map(e=>s.l(e))).then(()=>e(232347)))},242792,s=>{s.v(e=>Promise.all(["server/chunks/[root-of-the-server]__0hkxwim._.js","server/chunks/features_bot_1dfrdsb._.js","server/chunks/_1frcwj1._.js","server/chunks/features_workspace_workspace_ts_1iyjroj._.js","server/chunks/_1skgy7b._.js","server/chunks/_1y8w80a._.js","server/chunks/_08btiir._.js","server/chunks/lib_logger_ts_07e65t5._.js"].map(e=>s.l(e))).then(()=>e(799791)))},327784,s=>{s.v(e=>Promise.all(["server/chunks/[root-of-the-server]__0mrk2it._.js","server/chunks/features_workspace_workspace_ts_1iyjroj._.js","server/chunks/features_memory_0__61kl._.js","server/chunks/_1skgy7b._.js","server/chunks/_08btiir._.js","server/chunks/features_bot_1dfrdsb._.js","server/chunks/_108gsm8._.js","server/chunks/_07nxi75._.js","server/chunks/_136j09a._.js","server/chunks/lib_logger_ts_07e65t5._.js","server/chunks/[root-of-the-server]__0bqveex._.js","server/chunks/_0s8ao8z._.js"].map(e=>s.l(e))).then(()=>e(49002)))},193435,s=>{s.v(e=>Promise.all(["server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1y49572._.js","server/chunks/lib_logger_ts_07e65t5._.js","server/chunks/[root-of-the-server]__0nmust6._.js","server/chunks/_0hin38_._.js","server/chunks/_1y8w80a._.js","server/chunks/_15negpy._.js","server/chunks/_0ucx1jv._.js"].map(e=>s.l(e))).then(()=>e(5509)))},890054,s=>{s.v(e=>Promise.all(["server/chunks/_06u9yo-._.js"].map(e=>s.l(e))).then(()=>e(375814)))},51833,s=>{s.v(e=>Promise.all(["server/chunks/[root-of-the-server]__1t02-1p._.js","server/chunks/lib_logger_ts_07e65t5._.js","server/chunks/features_workspace_workspace_ts_1iyjroj._.js"].map(e=>s.l(e))).then(()=>e(871096)))},573349,s=>{s.v(e=>Promise.all(["server/chunks/[root-of-the-server]__1wbc1wv._.js"].map(e=>s.l(e))).then(()=>e(913803)))},566462,s=>{s.v(e=>Promise.all(["server/chunks/[root-of-the-server]__0rl-fef._.js"].map(e=>s.l(e))).then(()=>e(313176)))},207580,s=>{s.v(e=>Promise.all(["server/chunks/[externals]__0y3n8y6._.js","server/chunks/node_modules_consola_dist_chunks_prompt_mjs_0q8fc1x._.js"].map(e=>s.l(e))).then(()=>e(27996)))}];
1
+ module.exports=[70729,s=>{s.v(e=>Promise.all(["server/chunks/[externals]_node_crypto_1kn79-7._.js"].map(e=>s.l(e))).then(()=>e(666680)))},102473,s=>{s.v(e=>Promise.all(["server/chunks/[root-of-the-server]__1_04mcf._.js","server/chunks/lib_logger_ts_07e65t5._.js"].map(e=>s.l(e))).then(()=>e(232347)))},242792,s=>{s.v(e=>Promise.all(["server/chunks/[root-of-the-server]__0hkxwim._.js","server/chunks/features_bot_1dfrdsb._.js","server/chunks/features_workspace_workspace_ts_1iyjroj._.js","server/chunks/_1frcwj1._.js","server/chunks/lib_logger_ts_07e65t5._.js","server/chunks/_1skgy7b._.js","server/chunks/_08_-9ay._.js","server/chunks/_1y8w80a._.js"].map(e=>s.l(e))).then(()=>e(799791)))},327784,s=>{s.v(e=>Promise.all(["server/chunks/[root-of-the-server]__0mrk2it._.js","server/chunks/features_memory_0__61kl._.js","server/chunks/features_bot_1dfrdsb._.js","server/chunks/features_workspace_workspace_ts_1iyjroj._.js","server/chunks/_0s8ao8z._.js","server/chunks/lib_logger_ts_07e65t5._.js","server/chunks/_1skgy7b._.js","server/chunks/_136j09a._.js","server/chunks/_108gsm8._.js","server/chunks/_08_-9ay._.js","server/chunks/[root-of-the-server]__0bqveex._.js","server/chunks/_1njolhx._.js"].map(e=>s.l(e))).then(()=>e(49002)))},193435,s=>{s.v(e=>Promise.all(["server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1y49572._.js","server/chunks/lib_logger_ts_07e65t5._.js","server/chunks/[root-of-the-server]__1p0njle._.js","server/chunks/_0hin38_._.js","server/chunks/_1y8w80a._.js","server/chunks/_15negpy._.js","server/chunks/_0ucx1jv._.js"].map(e=>s.l(e))).then(()=>e(5509)))},890054,s=>{s.v(e=>Promise.all(["server/chunks/_06u9yo-._.js"].map(e=>s.l(e))).then(()=>e(375814)))},51833,s=>{s.v(e=>Promise.all(["server/chunks/[root-of-the-server]__1dth047._.js","server/chunks/lib_logger_ts_07e65t5._.js","server/chunks/features_workspace_workspace_ts_1iyjroj._.js"].map(e=>s.l(e))).then(()=>e(871096)))},573349,s=>{s.v(e=>Promise.all(["server/chunks/[root-of-the-server]__1wbc1wv._.js"].map(e=>s.l(e))).then(()=>e(913803)))},566462,s=>{s.v(e=>Promise.all(["server/chunks/[root-of-the-server]__0rl-fef._.js"].map(e=>s.l(e))).then(()=>e(313176)))},207580,s=>{s.v(e=>Promise.all(["server/chunks/[externals]__0y3n8y6._.js","server/chunks/node_modules_consola_dist_chunks_prompt_mjs_0q8fc1x._.js"].map(e=>s.l(e))).then(()=>e(27996)))}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__0mrk2it._.js.map
@@ -0,0 +1,5 @@
1
+ module.exports=[500874,(e,t,a)=>{t.exports=e.x("buffer",()=>require("buffer"))},233405,(e,t,a)=>{t.exports=e.x("child_process",()=>require("child_process"))},522734,(e,t,a)=>{t.exports=e.x("fs",()=>require("fs"))},874533,(e,t,a)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},912714,(e,t,a)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},347299,(e,t,a)=>{t.exports=e.x("node:http",()=>require("node:http"))},660526,(e,t,a)=>{t.exports=e.x("node:os",()=>require("node:os"))},446786,(e,t,a)=>{t.exports=e.x("os",()=>require("os"))},814747,(e,t,a)=>{t.exports=e.x("path",()=>require("path"))},605365,(e,t,a)=>{t.exports=e.x("process",()=>require("process"))},175936,e=>{"use strict";let t=e=>e.split("/").map(encodeURIComponent).join("/");e.s(["decodePath",0,e=>e.join("/"),"queryKey",0,{memory:"/api/memory",memoryPage:e=>({url:"/api/memory",query:{offset:e||null}}),mcp:"/api/mcp",mcpServer:e=>({url:"/api/mcp",pathVariable:[e]}),mcpTools:"/api/mcp/tools",skills:"/api/skills",skillNode:(e,t,a)=>({url:"/api/skills",pathVariable:[e,t],query:{path:a}}),bot:"/api/bot",botMemory:"/api/bot/memory",botMemoryFiles:e=>({url:"/api/bot/memory/files",query:{bot:e}}),routines:"/api/routine",threads:"/api/bot/thread",threadHistory:e=>({url:"/api/bot/thread",query:{history:1,before:e}}),thread:e=>({url:"/api/bot/thread",query:{id:e}}),fileNotes:"/api/bot/thread/file",fileNote:(e,t)=>({url:"/api/bot/thread/file",query:{path:e,from:t}}),toolResult:(e,t)=>({url:"/api/bot/thread",pathVariable:[e],query:{call:t}}),workspace:"/api/workspace",workspaceFolder:(e,t)=>({url:"/api/workspace",query:{path:e||null,rows:t}}),workspaceFiles:e=>({url:"/api/workspace/files",query:{paths:JSON.stringify(e)}}),artifacts:"/api/artifact",artifactShelf:e=>({url:"/api/artifact",query:{rows:e}}),artifactSet:(e,t)=>({url:"/api/artifact",query:{set:e,rows:t}}),file:e=>`/api/file/${t(e)}`,fileFace:e=>`/api/file/${t(e)}?face`,favicon:e=>`/api/favicon/${encodeURIComponent(e)}`,fileView:e=>`/artifact/${t(e)}`,events:"/api/events",config:"/api/config",callHistory:e=>({url:"/api/thursday/call",query:{before:e}}),thursdaySettings:"/api/thursday/settings",toolCall:"/api/thursday/tool-call",callEnd:"/api/thursday/call/end",signIns:"/api/signins",reach:"/api/reach",textCall:"/api/thursday/text",memoryEdit:"/api/memory/edit",llmModel:"/api/llm-model",automaticModel:"/api/llm-model/automatic",modelCatalog:e=>`/api/llm-model/catalog/${e}`,keyCredits:e=>`/api/llm-model/credits/${e}`,subscriptionUsage:"/api/llm-model/subscription",running:"/api/running"}])},393189,e=>{"use strict";var t=e.i(912714),a=e.i(750227),i=e.i(687388),n=e.i(786025);let r=e=>`${(0,n.botFolder)(e)}/memory`;async function o(e,t=i.BOT_MEMORY_LIMITS.files){let s=r(e),m=(0,a.join)(n.WORKSPACE,s),c=(await l(m)).sort((e,t)=>t.info.mtimeMs-e.info.mtimeMs),d=await Promise.all(c.slice(0,t).map(async({name:e,info:t})=>({file:e,path:`${s}/${e}`,line:await u((0,a.join)(m,e)),at:new Date(t.mtimeMs),bytes:t.size})));return{folder:s,entries:d,total:c.length}}async function l(e){let i=await (0,t.readdir)(e).catch(()=>[]);return(await Promise.all(i.filter(e=>!e.startsWith(".")).map(async i=>{let n=await (0,t.stat)((0,a.join)(e,i)).catch(()=>null);return n?.isFile()?{name:i,info:n}:null}))).filter(e=>null!==e)}async function s(e){let o=(0,a.join)(n.WORKSPACE,r(e)),s=new Map;return await Promise.all((await l(o)).map(async({name:e,info:n})=>{let r=n.size>4*i.BOT_MEMORY_LIMITS.chars?null:await (0,t.readFile)((0,a.join)(o,e),"utf8").catch(()=>null);s.set(e,{text:null!==r&&c(r)<=i.BOT_MEMORY_LIMITS.chars?r:null,size:n.size,mtimeMs:n.mtimeMs,atime:n.atime,mtime:n.mtime})})),s}async function m(e,o){let s=r(e),m=(0,a.join)(n.WORKSPACE,s),{files:u,chars:d}=i.BOT_MEMORY_LIMITS,p=[],f=[],b=0;for(let{name:e,info:i}of(await l(m))){b+=1;let n=o.get(e);if(n&&n.size===i.size&&n.mtimeMs===i.mtimeMs)continue;let r=(0,a.join)(m,e),l=c(await (0,t.readFile)(r,"utf8").catch(()=>""));if(l<=d){n||f.push(e);continue}let u=`${l.toLocaleString("en-US")} characters, past the ${d.toLocaleString("en-US")} a memory file holds`;n?null!==n.text?(await (0,t.writeFile)(r,n.text),await (0,t.utimes)(r,n.atime,n.mtime),p.push(`Not kept: \`${s}/${e}\` came to ${u}, so it is back as it was. Write it again shorter.`)):p.push(`\`${s}/${e}\` is ${u}. Shorten it.`):(await (0,t.rm)(r,{force:!0}),b-=1,p.push(`Not kept: \`${s}/${e}\` came to ${u}, so it was removed. Write it again shorter.`))}if(b>u&&f.length){await Promise.all(f.map(e=>(0,t.rm)((0,a.join)(m,e),{force:!0})));let e=f.map(e=>`\`${s}/${e}\``).join(", ");p.push(`Not kept: your memory holds ${u} files at most and this made ${b}, so ${e} ${1===f.length?"was":"were"} removed. Delete or merge files no longer worth keeping, then write it again.`)}return p.length?p.join("\n"):null}let c=e=>[...e.trim()].length;async function u(e){let a=await (0,t.open)(e,"r").catch(()=>null);if(!a)return"";try{let e=Buffer.alloc(1024),{bytesRead:t}=await a.read(e,0,1024,0),i=e.toString("utf8",0,t).split("\n").map(e=>e.trim()).filter(Boolean);if("---"===i[0]){let e=i.find(e=>e.startsWith("description:"));if(e)return e.slice(12).trim().replace(/^["']|["']$/g,"");let t=i.indexOf("---",1);return t>0?(i[t+1]??"").replace(/^#+\s*/,""):""}return(i[0]??"").replace(/^#+\s*/,"")}finally{await a.close()}}e.s(["botMemoryFolder",0,r,"holdBotMemory",0,s,"keepBotMemory",0,m,"listBotMemory",0,o])},148831,e=>e.a(async(t,a)=>{try{var i=e.i(875225),n=e.i(260338),r=e.i(518899),o=e.i(380690),l=e.i(528790),s=e.i(613240),m=e.i(441963),c=t([l]);function u(e){return(0,m.isRemoteConfig)(e)?{url:e.url}:{command:e.command,args:e.args}}async function d(){return(await l.database.select({name:s.mcpServerTable.name,config:s.mcpServerTable.config,lastError:s.mcpServerTable.lastError,toolCount:(0,n.count)(s.mcpToolTable.id)}).from(s.mcpServerTable).leftJoin(s.mcpToolTable,(0,i.eq)(s.mcpToolTable.serverName,s.mcpServerTable.name)).groupBy(s.mcpServerTable.name)).map(e=>({...e,config:u(e.config)}))}async function p(e){let[t]=await l.database.select({name:s.mcpServerTable.name,config:s.mcpServerTable.config,lastError:s.mcpServerTable.lastError,toolsSyncedAt:s.mcpServerTable.toolsSyncedAt}).from(s.mcpServerTable).where((0,i.eq)(s.mcpServerTable.name,e));return t?{...t,config:u(t.config),tools:await f(e)}:null}async function f(e){return l.database.select({id:s.mcpToolTable.id,name:s.mcpToolTable.name,description:s.mcpToolTable.description,inputSchema:s.mcpToolTable.inputSchema,outputSchema:s.mcpToolTable.outputSchema}).from(s.mcpToolTable).where((0,i.eq)(s.mcpToolTable.serverName,e)).orderBy(s.mcpToolTable.name)}async function b(e){let[t]=await l.database.select().from(s.mcpServerTable).where((0,i.eq)(s.mcpServerTable.name,e));return t??null}[l]=c.then?(await c)():c;let S=()=>o.appEvents.emit({type:"mcp"});async function h(e,t){await l.database.transaction(async a=>{t.length&&await a.insert(s.mcpToolTable).values(t.map(t=>({...t,serverName:e}))).onConflictDoUpdate({target:[s.mcpToolTable.serverName,s.mcpToolTable.name],set:{description:T(s.mcpToolTable.description),inputSchema:T(s.mcpToolTable.inputSchema),outputSchema:T(s.mcpToolTable.outputSchema)}}),await a.delete(s.mcpToolTable).where(t.length?(0,i.and)((0,i.eq)(s.mcpToolTable.serverName,e),(0,i.notInArray)(s.mcpToolTable.name,t.map(e=>e.name))):(0,i.eq)(s.mcpToolTable.serverName,e)),await a.update(s.mcpServerTable).set({lastError:null,toolsSyncedAt:new Date}).where((0,i.eq)(s.mcpServerTable.name,e))}),S()}function T(e){return r.sql.raw(`excluded."${e.name}"`)}async function w(e,t){await l.database.update(s.mcpServerTable).set({lastError:t}).where((0,i.eq)(s.mcpServerTable.name,e)),S()}async function g(e,t){await l.database.update(s.mcpServerTable).set({oauth:t}).where((0,i.eq)(s.mcpServerTable.name,e)),S()}async function y(e){let[t]=await l.database.select().from(s.mcpServerTable).where(r.sql`json_extract(${s.mcpServerTable.oauth}, '$.state') = ${e}`);return t??null}e.s(["findAllServers",0,d,"findAllTools",0,function(){return l.database.select({id:s.mcpToolTable.id,name:s.mcpToolTable.name,serverName:s.mcpToolTable.serverName,description:s.mcpToolTable.description}).from(s.mcpToolTable).orderBy(s.mcpToolTable.serverName,s.mcpToolTable.name)},"findPinnedTools",0,function(e){return l.database.select({server:s.mcpToolTable.serverName,name:s.mcpToolTable.name,description:s.mcpToolTable.description,inputSchema:s.mcpToolTable.inputSchema}).from(s.botMcpToolTable).innerJoin(s.mcpToolTable,(0,i.eq)(s.botMcpToolTable.toolId,s.mcpToolTable.id)).where((0,i.eq)(s.botMcpToolTable.botName,e)).orderBy(s.mcpToolTable.serverName,s.mcpToolTable.name)},"findServer",0,b,"findServerByOAuthState",0,y,"findServerDetail",0,p,"findToolSchemas",0,function(e,t){return t.length?l.database.select({name:s.mcpToolTable.name,description:s.mcpToolTable.description,inputSchema:s.mcpToolTable.inputSchema}).from(s.mcpToolTable).where((0,i.and)((0,i.eq)(s.mcpToolTable.serverName,e),(0,i.inArray)(s.mcpToolTable.name,t))).orderBy(s.mcpToolTable.name):Promise.resolve([])},"listServerNames",0,function(){return l.database.select({name:s.mcpServerTable.name}).from(s.mcpServerTable).orderBy(s.mcpServerTable.name)},"listToolNames",0,function(e){let t=l.database.select({server:s.mcpToolTable.serverName,name:s.mcpToolTable.name}).from(s.mcpToolTable);return e?t.where((0,i.eq)(s.mcpToolTable.serverName,e)).orderBy(s.mcpToolTable.name):t.orderBy(s.mcpToolTable.serverName,s.mcpToolTable.name)},"saveConnectionError",0,w,"saveOAuthData",0,g,"syncServerTools",0,h]),a()}catch(e){a(e)}},!1),441963,e=>{"use strict";var t=e.i(469719),a=e.i(704161);let i=t.z.object({url:t.z.url(),headers:t.z.record(t.z.string(),t.z.string()).optional()}),n=t.z.object({command:t.z.string().min(1),args:t.z.array(t.z.string()).optional(),env:t.z.record(t.z.string(),t.z.string()).optional()}),r=t.z.union([i,n]),o=t.z.object({name:t.z.string(),description:t.z.string().optional(),inputSchema:t.z.looseObject({}).optional(),outputSchema:t.z.looseObject({}).optional()});t.z.object({clientInformation:t.z.looseObject({}).optional(),tokens:t.z.looseObject({}).optional(),authorizationServer:t.z.looseObject({}).optional(),codeVerifier:t.z.string().optional(),state:t.z.string().optional()});let l=t.z.object({name:t.z.string().min(1).max(40),config:r,toolCount:t.z.number().int(),lastError:t.z.string().nullish()}),s=o.extend({id:t.z.number().int(),description:t.z.string().nullish()});l.omit({toolCount:!0}).extend({tools:s.array().default([]),toolsSyncedAt:a.DateLikeSchema}),t.z.object({name:t.z.string().min(1,"Name is required").max(40).regex(/^[a-zA-Z0-9_-]+$/,"Only letters, numbers, - and _ are allowed"),config:r}),t.z.union([t.z.object({mcpServers:t.z.record(t.z.string(),r)}),t.z.record(t.z.string(),r)]),e.s(["isRemoteConfig",0,function(e){return"url"in e}])},963219,e=>e.a(async(t,a)=>{try{var i=e.i(260338),n=e.i(349129),r=e.i(875225),o=e.i(380690),l=e.i(687388),s=e.i(528790),m=e.i(613240),c=e.i(265143),u=e.i(53748),d=e.i(473139),p=t([s,c]);[s,c]=p.then?(await p)():p;let k=()=>o.appEvents.emit({type:"routines"});async function f(e,t){return s.database.select({id:m.threadTable.id,status:m.threadTable.status,outcome:m.threadTable.outcome,updatedAt:m.threadTable.updatedAt}).from(m.threadTable).where((0,r.eq)(m.threadTable.routineId,e)).orderBy((0,n.desc)(m.threadTable.createdAt)).limit(t)}let x=async e=>{let{createdAt:t,...a}=e;return{...a,runs:await f(e.id,l.ROUTINE.runsShown)}};async function b(){let e=await s.database.select().from(m.routineTable).orderBy(m.routineTable.createdAt);return Promise.all(e.map(x))}async function h(e){let[t]=await s.database.select().from(m.routineTable).where((0,r.eq)(m.routineTable.id,e));return t?x(t):null}async function T(e){let t=await h(e.trim());if(t)return t;let a=e.trim().toLowerCase(),i=(await b()).filter(e=>e.label.toLowerCase()===a);return 1===i.length?i[0]:null}async function w(e){let t=await (0,c.findJobBot)(e);return(!t||t.disabled)&&(0,u.publicError)("Choose an enabled bot."),t.name}function g(e,t){t&&"once"===e.kind&&(0,d.momentOf)(e.at)<=new Date&&(0,u.publicError)("That time has passed. Pick a later one.")}async function y(e){let[{total:t}]=await s.database.select({total:(0,i.count)()}).from(m.routineTable);t>=l.ROUTINE.max&&(0,u.publicError)(`There are already ${l.ROUTINE.max} routines. Delete one to make another.`),g(e.schedule,!0);let[a]=await s.database.insert(m.routineTable).values({id:crypto.randomUUID(),...e,bot:await w(e.bot),nextRunAt:(0,d.nextRun)(e.schedule,new Date)}).returning();return k(),x(a)}async function S(e,t){let[a]=await s.database.select().from(m.routineTable).where((0,r.eq)(m.routineTable.id,e));if(!a)return null;let i=t.schedule??a.schedule,n=!!(t.schedule&&!(0,d.sameSchedule)(t.schedule,a.schedule))||t.enabled&&!a.enabled;n&&g(i,t.enabled??a.enabled);let[o]=await s.database.update(m.routineTable).set({...t,...t.bot?{bot:await w(t.bot)}:{},...n?{nextRunAt:(0,d.nextRun)(i,new Date)}:{}}).where((0,r.eq)(m.routineTable.id,e)).returning();return k(),x(o)}async function v(e){let t=await s.database.delete(m.routineTable).where((0,r.eq)(m.routineTable.id,e)).returning({id:m.routineTable.id});return t.length&&k(),t.length>0}e.s(["createRoutine",0,y,"deleteRoutine",0,v,"listRoutines",0,b,"resolveRoutine",0,T,"updateRoutine",0,S]),a()}catch(e){a(e)}},!1),473139,e=>{"use strict";var t=e.i(105249),a=e.i(687388),i=e.i(704161);let n=t.default.string().regex(/^([01]\d|2[0-3]):[0-5]\d$/,"A time is HH:MM, 00:00 to 23:59");function r(e){let[t,a]=e.split(" "),[i,n,r]=t.split("-").map(Number),[o,l]=a.split(":").map(Number);return new Date(i,n-1,r,o,l)}let o=/^\d{4}-\d\d-\d\d ([01]\d|2[0-3]):[0-5]\d$/,l=t.default.string().regex(o,'A moment is "YYYY-MM-DD HH:MM"').refine(e=>{if(!o.test(e))return!0;let t=r(e);return t.getMonth()===Number(e.slice(5,7))-1&&t.getDate()===Number(e.slice(8,10))},"There is no such day"),s=t.default.discriminatedUnion("kind",[t.default.object({kind:t.default.literal("once"),at:l}),t.default.object({kind:t.default.literal("daily"),time:n,days:t.default.array(t.default.number().int().min(1).max(7)).min(1,"Pick at least one day").transform(e=>[...new Set(e)].sort((e,t)=>e-t))}),t.default.object({kind:t.default.literal("every"),hours:t.default.number().int().min(a.ROUTINE.minHours,`No more often than every ${a.ROUTINE.minHours}h`).max(168)})]),m=t.default.object({bot:t.default.string().trim().min(1,"Pick a bot"),label:t.default.string().trim().min(1,"Give it a name").max(80),request:t.default.string().trim().min(1,"Say what it should do"),schedule:s}),c=t.default.object({id:t.default.string(),status:t.default.enum(["running","waiting","done","cancelled"]),outcome:t.default.string().nullable(),updatedAt:i.DateLikeSchema});m.extend({id:t.default.string(),enabled:t.default.boolean(),nextRunAt:i.DateLikeSchema,runs:t.default.array(c)});let u=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],d=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];e.s(["RoutineInputSchema",0,m,"RoutineScheduleSchema",0,s,"momentOf",0,r,"nextRun",0,function(e,t){if("once"===e.kind)return r(e.at);if("every"===e.kind)return new Date(t.getTime()+36e5*e.hours);let[a,i]=e.time.split(":").map(Number);for(let n=0;n<=7;n++){let r=new Date(t);r.setDate(r.getDate()+n),r.setHours(a,i,0,0);let o=0===r.getDay()?7:r.getDay();if(r>t&&e.days.includes(o))return r}return new Date(t.getTime()+864e5)},"sameSchedule",0,function(e,t){if("once"===e.kind)return"once"===t.kind&&e.at===t.at;if("every"===e.kind)return"every"===t.kind&&e.hours===t.hours;let a=e=>[...e].sort((e,t)=>e-t).join();return"daily"===t.kind&&e.time===t.time&&a(e.days)===a(t.days)},"scheduleText",0,function(e){if("once"===e.kind){let[t,a]=e.at.split(" "),[,i,n]=t.split("-").map(Number);return`Once \xb7 ${d[i-1]} ${n} ${a}`}if("every"===e.kind)return 1===e.hours?"Every hour":`Every ${e.hours} hours`;let{days:t,time:a}=e;if(7===t.length)return`Daily ${a}`;if(1===t.length)return`${u[t[0]-1]} ${a}`;let i=t.every((e,a)=>0===a||e===t[a-1]+1)?`${u[t[0]-1]}–${u[t.at(-1)-1]}`:t.map(e=>u[e-1]).join(" ");return`Daily ${a} \xb7 ${i}`}])},527608,824664,e=>{"use strict";var t=e.i(912714),a=e.i(750227),i=e.i(380690),n=e.i(687388),r=e.i(786025);e.i(640911);let o=e=>e.trim().toLowerCase().replace(/^[a-z]+:\/\//,"").replace(/^www\./,"").replace(/[/?#].*$/,"");e.s(["siteOf",0,o],824664);let l=(0,a.join)(n.DATA_DIR,n.PATHS.signIns),s=e=>(0,a.join)(l,`${encodeURIComponent(o(e))}.json`);async function m(e){try{return JSON.parse(await (0,t.readFile)(s(e),"utf8"))}catch{return null}}async function c(e){let t=o(e),a=await m(t);if(a)return a;let i=(await d()).map(e=>e.site).filter(e=>t.endsWith(`.${e}`)).sort((e,t)=>t.length-e.length)[0];return i?m(i):null}async function u(e){await (0,t.mkdir)(l,{recursive:!0}),await (0,t.writeFile)(s(e.site),JSON.stringify(e),{mode:384}),i.appEvents.emit({type:"signins"})}async function d(){let e=await (0,t.readdir)(l).catch(()=>[]);return(await Promise.all(e.filter(e=>e.endsWith(".json")).map(e=>m(decodeURIComponent(e.slice(0,-5)))))).flatMap(e=>e?[(({state:e,...t})=>t)(e)]:[]).sort((e,t)=>e.site.localeCompare(t.site))}async function p(e){let t=await c(e.site);if(t&&!t.bots.includes(e.bot)){let a=t.asking.includes(e.bot)?t:{...t,asking:[...t.asking,e.bot]};return a!==t&&await u(a),{kind:"taken",signIn:(({state:e,...t})=>t)(a)}}let a=t?.site??o(e.site),i={site:a,account:e.account.trim()||a,bots:[...new Set([...t?.bots??[],e.bot])],asking:(t?.asking??[]).filter(t=>t!==e.bot),keptAt:new Date().toISOString(),usedAt:t?.usedAt??null,state:e.state};return await u(i),{kind:"kept",signIn:(({state:e,...t})=>t)(i)}}let f=globalThis.__signInsHeld??=new Map;async function b(e,t){let a=await c(e);if(!a)return{kind:"none",kept:(await d()).map(e=>e.site)};if(!a.bots.includes(t))return a.asking.includes(t)||await u({...a,asking:[...a.asking,t]}),{kind:"ask",signIn:(({state:e,...t})=>t)(a)};let i={...a,usedAt:new Date().toISOString()};return await u(i),{kind:"state",signIn:(({state:e,...t})=>t)(i),state:a.state}}async function h(e,t){return(await (0,r.listBrowsers)(e,t)).find(e=>e.name===t.PLAYWRIGHT_CLI_SESSION)??null}async function T(e,t){let a=await h(e,t);return a?a.attached?"theirs":"own":null}async function w(e,t){let a=await h(e,t);return!!a&&!a.attached&&!0===a.headed}let g=e=>`${e.name}
2
+ ${e.domain}
3
+ ${e.path}`;async function y(e){let t,a=(0,r.jobShellEnv)(e),i=a.PLAYWRIGHT_CLI_SESSION??e,o=f.get(i);if(!o?.sites.size)return;let l=await (0,r.openWorkspace)();if(await T(l,a)!=="own")return void f.delete(i);let s=(0,r.browserStateFile)();try{let e=await l.exec((0,r.saveBrowserState)(s),{env:a,timeoutMs:n.BROWSER_CLI.loadMs});if(0!==e.exitCode)return;let i=JSON.parse(await l.readFile(s,"utf-8"));t=new Map((i.cookies??[]).map(e=>[g(e),e]))}finally{await l.exec(`rm -f ${s}`)}for(let e of o.sites){let a=await m(e),i=a?.state;if(!a||!i?.cookies||!a.bots.includes(o.bot))continue;let n=!1,r=i.cookies.map(e=>{let a=t.get(g(e));return a&&JSON.stringify(a)!==JSON.stringify(e)?(n=!0,a):e});n&&await u({...a,state:{...i,cookies:r}})}}e.s(["borrowSignIn",0,b,"holdSignIn",0,function(e,t,a){let i=f.get(e);i&&i.bot===t?i.sites.add(a):f.set(e,{bot:t,sites:new Set([a])})},"keepSignIn",0,p,"listSignIns",0,d,"renewSignIns",0,y,"sessionBrowser",0,T,"sessionWindow",0,w],527608)},629668,e=>{"use strict";var t=e.i(175936),a=e.i(687388);let i=e=>`text/${e}; charset=utf-8`,n={md:{kind:"markdown",mime:i("markdown")},markdown:{kind:"markdown",mime:i("markdown")},csv:{kind:"csv",mime:i("csv")},json:{kind:"json",mime:"application/json; charset=utf-8"},txt:{kind:"text",mime:i("plain")},log:{kind:"text",mime:i("plain")},html:{kind:"frame",mime:i("html")},htm:{kind:"frame",mime:i("html")},pdf:{kind:"frame",mime:"application/pdf"},png:{kind:"image",mime:"image/png"},jpg:{kind:"image",mime:"image/jpeg"},jpeg:{kind:"image",mime:"image/jpeg"},gif:{kind:"image",mime:"image/gif"},webp:{kind:"image",mime:"image/webp"},svg:{kind:"image",mime:"image/svg+xml"},mp3:{kind:"audio",mime:"audio/mpeg"},wav:{kind:"audio",mime:"audio/wav"},mp4:{kind:"video",mime:"video/mp4"},webm:{kind:"video",mime:"video/webm"},docx:{kind:"none",mime:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"},xlsx:{kind:"none",mime:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"},pptx:{kind:"none",mime:"application/vnd.openxmlformats-officedocument.presentationml.presentation"},css:{kind:"none",mime:i("css")},js:{kind:"none",mime:i("javascript")},woff2:{kind:"none",mime:"font/woff2"}},r=e=>e.split(".").pop()?.toLowerCase()??"",o=new Set(["node_modules","__pycache__"]),l=new Set(["css","js","woff2"]),s=Object.keys(n).filter(e=>!l.has(e)),m=RegExp(String.raw`(?<![\p{L}\p{N}_/:@%-])\/?(?:[\p{L}\p{N}_.@%-]+/)*[\p{L}\p{N}_@%-]+(?:\.[\p{L}\p{N}_-]+)*\.(?:${s.join("|")})\b`,"giu"),c=`${a.PATHS.workspace}/`,u=t.queryKey.file(""),d=e=>e.startsWith(`${a.PATHS.artifacts}/`)&&["md","markdown","html","htm"].includes(r(e));e.s(["isListedFile",0,e=>!e.startsWith(".")&&!l.has(r(e)),"isListedFolder",0,e=>!e.startsWith(".")&&!o.has(e),"leadFirst",0,function(e){let t=e.findIndex(d);return t>0?[e[t],...e.filter((e,a)=>a!==t)]:e},"mimeOf",0,e=>n[r(e)]?.mime??"application/octet-stream","pathsIn",0,function(e){let t=e.replace(/\b[a-z][\w+.-]*:\/\/\S+/gi," ").replace(/\b[a-z][\w+.-]+:(?=\/)/gi," "),a=new Set,i="";for(let[e]of t.matchAll(m)){let t=!e.includes("/"),n=function(e){let t,a,i=(a=(t=function(e){if(!e.startsWith(u))return e;let t=e.slice(u.length);try{return decodeURIComponent(t)}catch{return t}}(e.trim())).indexOf(c))>=0?t.slice(a+c.length)||null:t.startsWith("/")||/^[A-Za-z]:/.test(t)||t.split("/").includes("..")?null:t||null;if(!i)return null;let[n,...r]=i.split("/");return r.length&&n.includes(".")?null:i}(t?i+e:e);t||(i=n?.slice(0,n.lastIndexOf("/")+1)??""),n&&a.add(n)}return[...a].slice(0,12)},"viewKindOf",0,e=>n[r(e)]?.kind??"none"])},260338,e=>{"use strict";var t=e.i(518899),a=e.i(844988),i=e.i(156325);e.s(["count",0,function(e){return t.sql`count(${e||t.sql.raw("*")})`.mapWith(Number)},"max",0,function(e){return t.sql`max(${e})`.mapWith((0,a.is)(e,i.Column)?e:String)}])}];
4
+
5
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0o5s5-o._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[418520,e=>e.a(async(t,a)=>{try{var i=await e.y("@libsql/client-6da938047d5fc1cd");e.n(i),a()}catch(e){a(e)}},!0),666680,(e,t,a)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},902157,(e,t,a)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},750227,(e,t,a)=>{t.exports=e.x("node:path",()=>require("node:path"))},59639,(e,t,a)=>{t.exports=e.x("node:process",()=>require("node:process"))},509656,(e,t,a)=>{t.exports=e.x("node:tty",()=>require("node:tty"))},812057,(e,t,a)=>{t.exports=e.x("node:util",()=>require("node:util"))},264079,e=>{"use strict";var t=e.i(469719),a=e.i(687388);let i=t.z.enum(["openai","chatgpt","anthropic","google","xai","vercel-ai-gateway","mistral","deepseek","groq","cerebras","togetherai","fireworks","deepinfra","cohere"]),l=t.z.object({provider:i,model:t.z.string().trim().min(1,"Model name is required").max(80)}),r=["none","minimal","low","medium","high","xhigh"],o=t.z.enum(r),s=t.z.enum(["openai","google","xai","vercel-ai-gateway"]),n=t.z.object({provider:s,model:t.z.string().trim().min(1,"Model name is required").max(120)}),d={openai:{label:"OpenAI",apiKeyName:"OPENAI_API_KEY",models:{image:[{id:"gpt-image-1-mini",label:"GPT Image 1 mini",tier:"small"},{id:"gpt-image-2.5-flare",label:"GPT Image 2.5 Flare",tier:"mid"},{id:"gpt-image-2.5-sunburst",label:"GPT Image 2.5 Sunburst",tier:"large"}],video:[],speech:[{id:"tts-1",label:"TTS 1",tier:"small"},{id:"gpt-4o-mini-tts",label:"4o mini TTS",tier:"mid"},{id:"tts-1-hd",label:"TTS 1 HD",tier:"large"}],transcription:[{id:"gpt-4o-mini-transcribe",label:"4o mini Transcribe",tier:"small"},{id:"gpt-transcribe",label:"GPT Transcribe",tier:"mid"}]}},google:{label:"Gemini",apiKeyName:"GOOGLE_GENERATIVE_AI_API_KEY",models:{image:[{id:"gemini-3.1-flash-lite-image",label:"3.1 Flash Lite Image",tier:"small"},{id:"gemini-3.1-flash-image",label:"3.1 Flash Image",tier:"mid"},{id:"gemini-3-pro-image",label:"3 Pro Image",tier:"large"}],video:[{id:"veo-3.1-lite-generate-preview",label:"Veo 3.1 Lite",tier:"small"},{id:"veo-3.1-fast-generate-preview",label:"Veo 3.1 Fast",tier:"mid"},{id:"veo-3.1-generate-preview",label:"Veo 3.1",tier:"large"}],speech:[{id:"gemini-2.5-flash-preview-tts",label:"2.5 Flash TTS",tier:"small"},{id:"gemini-3.1-flash-tts-preview",label:"3.1 Flash TTS",tier:"mid"},{id:"gemini-2.5-pro-preview-tts",label:"2.5 Pro TTS",tier:"large"}],transcription:[{id:"gemini-3.5-transcribe",label:"3.5 Transcribe",tier:"mid"}]}},xai:{label:"xAI",apiKeyName:"XAI_API_KEY",models:{image:[{id:"grok-imagine-image",label:"Grok Imagine",tier:"small"},{id:"grok-imagine-image-2.0",label:"Grok Imagine 2.0",tier:"mid"}],video:[{id:"grok-imagine-video",label:"Grok Imagine Video",tier:"small"},{id:"grok-imagine-video-1.5",label:"Grok Imagine Video 1.5",tier:"mid"}],speech:[{id:"grok-tts",label:"Grok TTS",tier:"mid"}],transcription:[{id:"grok-stt",label:"Grok STT",tier:"mid"}]}},"vercel-ai-gateway":{label:"Vercel AI Gateway",apiKeyName:"AI_GATEWAY_API_KEY",models:{image:[{id:"bytedance/seedream-5.0-lite",label:"Seedream 5.0 Lite",tier:"small"},{id:"bfl/flux-2-klein-9b",label:"FLUX 2 Klein 9B",tier:"small"},{id:"spacexai/grok-imagine-image-2.0",label:"Grok Imagine 2.0",tier:"small"},{id:"bfl/flux-2-pro",label:"FLUX 2 Pro",tier:"mid"},{id:"bytedance/seedream-5.0-pro",label:"Seedream 5.0 Pro",tier:"mid"},{id:"recraft/recraft-v4.1",label:"Recraft V4.1",tier:"mid"},{id:"openai/gpt-image-2.5-sunburst",label:"GPT Image 2.5 Sunburst",tier:"large"}],video:[{id:"bytedance/seedance-2.0-mini",label:"Seedance 2.0 Mini",tier:"small"},{id:"google/veo-3.1-lite-generate-001",label:"Veo 3.1 Lite",tier:"small"},{id:"alibaba/wan-v2.6-t2v",label:"Wan 2.6",tier:"small"},{id:"google/veo-3.1-fast-generate-001",label:"Veo 3.1 Fast",tier:"mid"},{id:"bytedance/seedance-2.5",label:"Seedance 2.5",tier:"mid"},{id:"spacexai/grok-imagine-video-1.5",label:"Grok Imagine Video 1.5",tier:"mid"},{id:"klingai/kling-v3.0-t2v",label:"Kling 3.0",tier:"large"},{id:"google/veo-3.1-generate-001",label:"Veo 3.1",tier:"large"}],speech:[{id:"fish-audio/s1",label:"Fish Audio S1",tier:"small"},{id:"openai/tts-1",label:"OpenAI TTS 1",tier:"small"},{id:"spacexai/grok-tts",label:"Grok TTS",tier:"mid"},{id:"fish-audio/s2.1-pro",label:"Fish Audio S2.1 Pro",tier:"mid"},{id:"openai/tts-1-hd",label:"OpenAI TTS 1 HD",tier:"large"}],transcription:[{id:"spacexai/grok-stt",label:"Grok STT",tier:"small"},{id:"fish-audio/transcribe-1",label:"Fish Transcribe 1",tier:"small"},{id:"openai/gpt-4o-mini-transcribe",label:"4o mini Transcribe",tier:"small"},{id:"openai/gpt-4o-transcribe",label:"4o Transcribe",tier:"mid"},{id:"google/gemini-3.5-transcribe",label:"Gemini 3.5 Transcribe",tier:"mid"}]}}},m=Object.keys(d).map(e=>({id:e,...d[e]})),u={openai:{label:"OpenAI",apiKeyName:"OPENAI_API_KEY",keysAt:"https://platform.openai.com/api-keys",keyLooks:"sk-…",defaultTier:"small",suggestModels:[{id:"gpt-6-luna",label:"6 Luna",tier:"small",context:105e4,efforts:["none","low","medium","high","xhigh"]},{id:"gpt-6-sol",label:"6 Sol",tier:"mid",context:105e4,efforts:["none","low","medium","high","xhigh"]},{id:"gpt-6-astra",label:"6 Astra",tier:"large",context:105e4,efforts:["low","medium","high","xhigh"]}]},chatgpt:{label:"GPT Subscription",apiKeyName:"CHATGPT_SIGN_IN",signIn:!0,suggestModels:[{id:"gpt-6-luna",label:"6 Luna",tier:"small",context:272e3,efforts:["none","low","medium","high","xhigh"]},{id:"gpt-6-sol",label:"6 Sol",tier:"mid",context:272e3,efforts:["none","low","medium","high","xhigh"]},{id:"gpt-6-astra",label:"6 Astra",tier:"large",context:272e3,efforts:["low","medium","high","xhigh"]}]},anthropic:{label:"Claude",apiKeyName:"ANTHROPIC_API_KEY",keysAt:"https://platform.claude.com/settings/keys",keyLooks:"sk-ant-…",suggestModels:[{id:"claude-haiku-4-5",label:"Haiku 4.5",tier:"small",efforts:["none","minimal","low","medium","high","xhigh"]},{id:"claude-sonnet-5",label:"Sonnet 5",tier:"mid",context:1e6,efforts:["none","low","medium","high","xhigh"]},{id:"claude-opus-5-5",label:"Opus 5.5",tier:"large",context:1e6,efforts:["low","medium","high","xhigh"]},{id:"claude-fable-5-1",label:"Fable 5.1",tier:"large",efforts:["none","low","medium","high","xhigh"]}]},google:{label:"Gemini",apiKeyName:"GOOGLE_GENERATIVE_AI_API_KEY",keysAt:"https://aistudio.google.com/apikey",keyLooks:"AIza…",suggestModels:[{id:"gemini-3.5-flash-lite",label:"3.5 Flash Lite",tier:"small",context:1e6,efforts:["minimal","low","medium","high"]},{id:"gemini-3.8-flash",label:"3.8 Flash",tier:"mid",context:1e6,efforts:["low","medium","high"]}]},xai:{label:"xAI",apiKeyName:"XAI_API_KEY",keysAt:"https://console.x.ai",keyLooks:"xai-…",suggestModels:[{id:"grok-4.7",label:"Grok 4.7",tier:"large",context:5e5,efforts:["none","low","medium","high","xhigh"]}]},"vercel-ai-gateway":{label:"Vercel AI Gateway",apiKeyName:"AI_GATEWAY_API_KEY",keysAt:"https://vercel.com/docs/ai-gateway/authentication-and-byok/authentication",suggestModels:[{id:"zai/glm-5.3-flash",label:"GLM 5.3 Flash",tier:"small"},{id:"google/gemini-3.8-flash",label:"Gemini 3.8 Flash",tier:"small"},{id:"openai/gpt-6-luna",label:"GPT 6 Luna",tier:"small",context:105e4},{id:"zai/glm-5.3",label:"GLM 5.3",tier:"mid"},{id:"spacexai/grok-4.7",label:"Grok 4.7",tier:"mid",context:5e5},{id:"anthropic/claude-sonnet-5",label:"Claude Sonnet 5",tier:"mid"},{id:"openai/gpt-6-sol",label:"GPT 6 Sol",tier:"mid",context:105e4},{id:"moonshotai/kimi-k3",label:"Kimi K3",tier:"mid"},{id:"anthropic/claude-opus-5.5",label:"Claude Opus 5.5",tier:"large",context:1e6},{id:"openai/gpt-6-astra",label:"GPT 6 Astra",tier:"large",context:105e4}]},mistral:{label:"Mistral",apiKeyName:"MISTRAL_API_KEY",keysAt:"https://console.mistral.ai/api-keys",suggestModels:[{id:"ministral-8b-latest",label:"Ministral 8B",tier:"small",efforts:[]},{id:"mistral-small-latest",label:"Small",tier:"mid",efforts:["none","high"]},{id:"mistral-medium-latest",label:"Medium",tier:"large",efforts:["none","high"]},{id:"mistral-large-latest",label:"Large",tier:"large",efforts:[]}]},deepseek:{label:"DeepSeek",apiKeyName:"DEEPSEEK_API_KEY",keysAt:"https://platform.deepseek.com/api_keys",keyLooks:"sk-…",suggestModels:[{id:"deepseek-flash",label:"V4.1 Flash",tier:"small",context:1e6,efforts:["none","low","high","xhigh"]},{id:"deepseek-v4-pro",label:"V4 Pro",tier:"large",context:1e6,efforts:["none","low","high","xhigh"]}]},groq:{label:"Groq",apiKeyName:"GROQ_API_KEY",keysAt:"https://console.groq.com/keys",keyLooks:"gsk_…",suggestModels:[{id:"openai/gpt-oss-20b",label:"GPT OSS 20B",tier:"small",context:131072,efforts:["low","medium","high"]},{id:"openai/gpt-oss-120b",label:"GPT OSS 120B",tier:"mid",context:131072,efforts:["low","medium","high"]},{id:"llama-3.3-70b-versatile",label:"Llama 3.3 70B",tier:"mid",context:131072,efforts:[]}]},cerebras:{label:"Cerebras",apiKeyName:"CEREBRAS_API_KEY",keysAt:"https://cloud.cerebras.ai",keyLooks:"csk-…",suggestModels:[{id:"qwen-3.8-27b",label:"Qwen 3.8 27B",tier:"small",context:64e3},{id:"gpt-oss-120b",label:"GPT OSS 120B",tier:"mid",context:65536}]},togetherai:{label:"Together",apiKeyName:"TOGETHER_AI_API_KEY",keysAt:"https://api.together.ai/settings/api-keys",suggestModels:[{id:"Qwen/Qwen3.5-9B",label:"Qwen 3.5 9B",tier:"small",context:262144},{id:"zai-org/GLM-5.3-Flash",label:"GLM 5.3 Flash",tier:"small",context:1048575},{id:"openai/gpt-oss-120b",label:"GPT OSS 120B",tier:"mid",context:131072},{id:"deepseek-ai/DeepSeek-V4.1-Flash",label:"DeepSeek V4.1 Flash",tier:"mid",context:1e6},{id:"zai-org/GLM-5.3",label:"GLM 5.3",tier:"large",context:1048575},{id:"moonshotai/Kimi-K3",label:"Kimi K3",tier:"large",context:1048576}]},fireworks:{label:"Fireworks",apiKeyName:"FIREWORKS_API_KEY",keysAt:"https://app.fireworks.ai/account/api-keys",keyLooks:"fw_…",suggestModels:[{id:"accounts/fireworks/models/glm-5p3-flash",label:"GLM 5.3 Flash",tier:"small",context:1048576},{id:"accounts/fireworks/models/deepseek-v4p1-flash",label:"DeepSeek V4.1 Flash",tier:"mid",context:1048576},{id:"accounts/fireworks/models/minimax-m3",label:"MiniMax M3",tier:"mid",context:512e3},{id:"accounts/fireworks/models/glm-5p3",label:"GLM 5.3",tier:"large",context:1048576},{id:"accounts/fireworks/models/kimi-k3",label:"Kimi K3",tier:"large",context:1048576}]},deepinfra:{label:"DeepInfra",apiKeyName:"DEEPINFRA_API_KEY",keysAt:"https://deepinfra.com/dash/api_keys",suggestModels:[{id:"deepseek-ai/DeepSeek-V4-Flash-0731",label:"DeepSeek V4 Flash",tier:"small",context:1048576},{id:"deepseek-ai/DeepSeek-V4.1-Flash",label:"DeepSeek V4.1 Flash",tier:"mid",context:1048576},{id:"zai-org/GLM-5.2",label:"GLM 5.2",tier:"mid",context:1048576},{id:"zai-org/GLM-5.3",label:"GLM 5.3",tier:"large",context:1048576},{id:"moonshotai/Kimi-K3",label:"Kimi K3",tier:"large",context:1048576}]},cohere:{label:"Cohere",apiKeyName:"COHERE_API_KEY",keysAt:"https://dashboard.cohere.com/api-keys",suggestModels:[{id:"command-r7b-12-2024",label:"Command R7B",tier:"small",context:128e3},{id:"command-a-03-2025",label:"Command A",tier:"mid",context:256e3},{id:"command-a-plus-05-2026",label:"Command A+",tier:"large",context:128e3}]}},g=Object.keys(u).map(e=>({id:e,...u[e]}));e.s(["EFFORTS",0,r,"GATEWAY_OWNERS",0,{anthropic:"anthropic",openai:"openai",google:"google",spacexai:"xai",mistral:"mistral",deepseek:"deepseek",cohere:"cohere"},"MEDIA_MODEL_PROVIDERS",0,d,"MEDIA_MODEL_PROVIDER_LIST",0,m,"TEXT_MODEL_PROVIDERS",0,u,"TEXT_MODEL_PROVIDER_LIST",0,g,"canMakeKind",0,(e,t)=>(d[e]?.models[t]?.length??0)>0,"compactAtFor",0,e=>e&&e>0?Math.round(e*a.BOT_RUN.compactHeadroom):a.BOT_RUN.compactAt,"contextWindowOf",0,function(e,t,a=[]){if("vercel-ai-gateway"===e)return a.find(e=>e.id===t)?.contextWindow??null;let i=u[e].suggestModels;return i.find(e=>e.id===t)?.context??null},"defaultModelOf",0,e=>{let t;return t=e.defaultTier??"mid",(e.suggestModels.find(e=>e.tier===t)??e.suggestModels[0])?.id},"effortSchema",0,o,"effortsOf",0,function(e,t,a=[]){if("vercel-ai-gateway"===e)return a.find(e=>e.id===t)?.efforts??null;let i=u[e].suggestModels;return i.find(e=>e.id===t)?.efforts??null},"parseMediaModel",0,function(e){let[t,...a]=(e??"").trim().split("/"),i=n.safeParse({provider:t,model:a.join("/")});return i.success?i.data:null},"parseTextModel",0,function(e){let[t,...a]=(e??"").trim().split("/"),i=l.safeParse({provider:t,model:a.join("/")});return i.success?i.data:null},"textModelProviderSchema",0,i,"textModelRefSchema",0,l])},353885,e=>{"use strict";e.s(["STUDIO_TOOLS",0,{generate_image:"generate_image",generate_speech:"generate_speech",transcribe:"transcribe",generate_video:"generate_video"},"TOOL_NAMES",0,{memory_recall:"memory_recall",memory_create:"memory_create",memory_remember:"memory_remember",memory_describe:"memory_describe",memory_forget:"memory_forget",bash:"bash",write_file:"write_file",tool_search:"tool_search",tool_call:"tool_call",load_skill:"load_skill",web_search:"web_search",thread_start:"thread_start",thread_tell:"thread_tell",thread_answer:"thread_answer",thread_status:"thread_status",thread_cancel:"thread_cancel",thread_show:"thread_show",thread_seen:"thread_seen",routine:"routine",send_message:"send_message",thread_recall:"thread_recall",sign_in_use:"sign_in_use",sign_in_keep:"sign_in_keep",look_at:"look_at",make_deck:"make_deck",describe_self:"describe_self",end_call:"end_call",emote:"emote"}])},944971,e=>{"use strict";var t=e.i(105249),a=e.i(687388),i=e.i(264079),l=e.i(704161),r=e.i(41444),o=e.i(554199),s=e.i(889034);let n=t.default.object({color:t.default.string().regex(/^(#[0-9a-fA-F]{6}|currentColor)$/,"Hex color").optional(),shape:t.default.enum(o.MARK_SHAPES).optional(),outline:t.default.boolean().optional(),paint:t.default.enum(o.MARK_PAINT_IDS).optional()}),d=t.default.string().max(a.COMMON_VALIDATE.prompt.max),m=t.default.object({line:t.default.string(),reason:t.default.string(),at:t.default.number()}),u=t.default.object({id:t.default.number(),name:t.default.string(),serverName:t.default.string()}),g=t.default.string().trim().transform(e=>e.replace(/\s+/g," ")).refine(e=>e.toLowerCase()!==s.ROOM_THURSDAY.toLowerCase(),"Thursday is reserved for the voice assistant.").pipe(t.default.string().min(1,"A name is required").max(a.COMMON_VALIDATE.name.max)),c=t.default.object({input:t.default.number(),output:t.default.number()});t.default.object({name:t.default.string(),description:t.default.string(),descriptionLocked:t.default.boolean(),ownLine:m.nullish(),systemPrompt:t.default.string().nullish(),icon:n.nullish(),provider:i.textModelProviderSchema.nullish(),model:t.default.string().nullish(),compactAt:t.default.number().nullish(),effort:i.effortSchema.nullish(),disabled:t.default.boolean(),createdAt:l.DateLikeSchema,tools:u.array().default([]),tokens:c,lastJobAt:l.DateLikeSchema.nullish()}),t.default.object({name:g,description:t.default.string().trim().min(1,"Say what this bot is for").max(a.COMMON_VALIDATE.description.max),systemPrompt:d.optional(),icon:n.optional(),provider:i.textModelProviderSchema.nullish(),model:t.default.string().trim().max(80).nullish(),compactAt:t.default.coerce.number().int().min(8e3,"At least 8k").nullish(),effort:i.effortSchema.nullish(),disabled:t.default.boolean().optional(),descriptionLocked:t.default.boolean().optional(),toolIds:t.default.number().int().array().max(a.MAX_PINNED_TOOLS).optional()});let b={color:o.MARK_SYSTEM,shape:"blob"};t.default.object({file:t.default.string(),path:t.default.string(),line:t.default.string(),at:l.DateLikeSchema,bytes:t.default.number()});let f="Continue",p={thursday:"Thursday, on the call:",user:"The user, on screen:"},h=t.default.discriminatedUnion("type",[t.default.object({type:t.default.literal("text"),text:t.default.string()}),t.default.object({type:t.default.literal("image"),src:t.default.string()})]),k=t.default.object({id:t.default.string(),seq:t.default.number(),bot:t.default.string().nullable(),parent:t.default.string().nullable(),to:t.default.string().nullish(),at:l.DateLikeSchema}),_=t.default.discriminatedUnion("kind",[k.extend({kind:t.default.literal("user"),text:t.default.string()}),k.extend({kind:t.default.literal("text"),text:t.default.string()}),k.extend({kind:t.default.literal("note"),text:t.default.string()}),k.extend({kind:t.default.literal("stop"),text:t.default.string()}),k.extend({kind:t.default.literal("tool"),callId:t.default.string(),name:t.default.string(),input:t.default.string(),note:t.default.string().nullish(),path:t.default.string().nullish()}),k.extend({kind:t.default.literal("tool-result"),callId:t.default.string(),name:t.default.string(),results:h.array(),more:t.default.boolean()}),k.extend({kind:t.default.literal("ask"),callId:t.default.string(),to:t.default.string(),text:t.default.string(),question:t.default.boolean().optional(),questionId:t.default.string().optional()})]),x=t.default.object({question:t.default.string(),messageId:t.default.string().optional(),bot:t.default.string().optional(),options:t.default.string().array()});t.default.object({id:t.default.string(),bot:t.default.string(),label:t.default.string(),request:t.default.string(),status:t.default.enum(["running","waiting","done","cancelled"]),outcome:t.default.string().nullable(),ask:x.nullable(),seen:t.default.boolean(),routineId:t.default.string().nullable(),tokens:c,contextTokens:t.default.number(),contextBudget:t.default.number(),createdAt:l.DateLikeSchema,updatedAt:l.DateLikeSchema,lines:_.array(),room:s.RoomViewSchema}),e.s(["BOT_MEMORY_KEY",0,"BOT_MEMORY","COMPACT_AT_MIN",0,8e3,"DEFAULT_BOT",0,{name:"Jarvis",description:"Anything — this computer, a browser, the web, files, services",ownLine:null,systemPrompt:null,icon:b,provider:null,model:null,disabled:!1,compactAt:null,effort:null},"DEFAULT_BOT_ICON",0,b,"THREAD_CONTINUE",0,f,"isAppStop",0,e=>{let t=e?.options??[];return!e?.messageId&&1===t.length&&t[0]===f},"isBotMemoryOn",0,e=>e?.trim()!=="off","randomBotIcons",0,function(e){return(0,o.randomMarkFills)(e).map(e=>({...e,shape:o.MARK_SHAPES[Math.floor(Math.random()*o.MARK_SHAPES.length)]}))},"rosterLine",0,function(e){let t=e.description.trim();return e.ownLine?`${t}${/[.!?。…]$/.test(t)?"":"."} ${e.ownLine}`:t},"tagSpeaker",0,(e,t)=>`${p[e]} ${t}`,"threadActivity",0,function(e,t=120){let a=null;for(let i=e.length-1;i>=0;i--){let l=e[i];if("tool"===l.kind)a??=`${l.name} ${l.note??l.input}`;else if("text"===l.kind)return(0,r.clip)(a?`${l.text} → ${a}`:l.text,t);else if("ask"===l.kind)return(0,r.clip)(`asked ${l.to}: ${l.text}`,t);else if("user"===l.kind)break}return a?(0,r.clip)(a,t):null},"untagSpeaker",0,e=>{for(let t of Object.values(p))if(e.startsWith(`${t} `))return e.slice(t.length+1);return e},"workHandle",0,e=>e.slice(0,6)])},554199,e=>{"use strict";let t="currentColor",a=[{id:"system",label:"System",value:t},{id:"slate",label:"Slate",value:"#64748B"},{id:"indigo",label:"Indigo",value:"#6366F1"},{id:"blue",label:"Blue",value:"#3B82F6"},{id:"cyan",label:"Cyan",value:"#06B6D4"},{id:"teal",label:"Teal",value:"#14B8A6"},{id:"green",label:"Green",value:"#22C55E"},{id:"lime",label:"Lime",value:"#84CC16"},{id:"amber",label:"Amber",value:"#F59E0B"},{id:"orange",label:"Orange",value:"#F97316"},{id:"red",label:"Red",value:"#EF4444"},{id:"pink",label:"Pink",value:"#EC4899"},{id:"violet",label:"Violet",value:"#8B5CF6"},{id:"fuchsia",label:"Fuchsia",value:"#D946EF"},{id:"rose",label:"Rose",value:"#F43F5E"},{id:"sky",label:"Sky",value:"#0EA5E9"},{id:"emerald",label:"Emerald",value:"#10B981"},{id:"yellow",label:"Yellow",value:"#EAB308"},{id:"stone",label:"Stone",value:"#78716C"}],i=Object.fromEntries(a.map(e=>[e.id,e.value])),l=a.filter(e=>e.value!==t).map(e=>e.value),r=[i.amber,i.red],o={[i.cyan]:"#009dbb",[i.teal]:"#00a190",[i.green]:"#00a640",[i.lime]:"#5ca100",[i.amber]:"#d07b00",[i.orange]:"#ec6700",[i.sky]:"#0098dc",[i.emerald]:"#00a46d",[i.yellow]:"#bb8600"},s={rainbow:{label:"Rainbow",look:"flow",colors:[0,45,90,140,190,240,290,330,360].map(e=>`oklch(0.77 0.16 ${e})`)},duo:{label:"Duo",look:"duo",colors:["#818CF8","#F472B6"]},aurora:{label:"Aurora",look:"aurora",edge:"dark",colors:["#1a2f73","#2c56c9","#34d399","#22d3ee","#a7f3d0"]},"aurora-pink":{label:"Pink aurora",look:"aurora",edge:"dark",colors:["#3a1478","#7c3aed","#f472b6","#e879f9","#fbcfe8"]}},n=Object.keys(s);e.s(["MARK_PAINTS",0,s,"MARK_PAINT_IDS",0,n,"MARK_SHAPES",0,["blob","poly","squircle","heart"],"MARK_SYSTEM",0,t,"markInk",0,(e,t)=>t?e:o[e]??e,"randomMarkFills",0,function(e){let t=[...l.filter(e=>!r.includes(e)).map(e=>({color:e})),...n.map(e=>({paint:e}))];for(let e=t.length-1;e>0;e--){let a=Math.floor(Math.random()*(e+1));[t[e],t[a]]=[t[a],t[e]]}return t.slice(0,e)}])},889034,e=>{"use strict";var t=e.i(469719);let a=t.z.object({to:t.z.string().trim().min(1),text:t.z.string().trim().min(1),why:t.z.string().trim().min(1),kind:t.z.enum(["message","question"]).default("message"),options:t.z.array(t.z.string().trim().min(1)).nullish()}),i=t.z.enum(["queued","running","waiting","external","paused","done","cancelled"]),l=t.z.object({bot:t.z.string(),state:i}),r=t.z.object({id:t.z.string(),bot:t.z.string(),text:t.z.string(),options:t.z.string().array().optional()}),o=t.z.enum(["message","question","report","interrupted"]),s=t.z.object({participants:l.array(),questions:r.array(),deliveries:t.z.object({id:t.z.string(),bot:t.z.string(),text:t.z.string(),delivered:t.z.boolean()}).array(),relays:t.z.object({id:t.z.number(),bot:t.z.string(),text:t.z.string(),kind:o,messageId:t.z.string().nullable()}).array()});e.s(["RESUME_CHECK",0,"Resume from the saved state; inspect any tool whose result is missing before repeating it.","ROOM_THURSDAY",0,"Thursday","ROOM_USER",0,"The user","RoomMessageSchema",0,a,"RoomViewSchema",0,s])},105249,e=>{"use strict";var t=e.i(562810);e.s(["default",0,t])}];
1
+ module.exports=[418520,e=>e.a(async(t,a)=>{try{var i=await e.y("@libsql/client-6da938047d5fc1cd");e.n(i),a()}catch(e){a(e)}},!0),666680,(e,t,a)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},902157,(e,t,a)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},750227,(e,t,a)=>{t.exports=e.x("node:path",()=>require("node:path"))},59639,(e,t,a)=>{t.exports=e.x("node:process",()=>require("node:process"))},509656,(e,t,a)=>{t.exports=e.x("node:tty",()=>require("node:tty"))},812057,(e,t,a)=>{t.exports=e.x("node:util",()=>require("node:util"))},264079,e=>{"use strict";var t=e.i(469719),a=e.i(687388);let i=t.z.enum(["openai","chatgpt","anthropic","google","xai","vercel-ai-gateway","openrouter","mistral","deepseek","groq","cerebras","togetherai","fireworks","deepinfra","cohere"]),l=t.z.object({provider:i,model:t.z.string().trim().min(1,"Model name is required").max(80)}),r=["none","minimal","low","medium","high","xhigh"],o=t.z.enum(r),s=["vercel-ai-gateway","openrouter"],n=e=>s.includes(e),d=t.z.enum(["openai","google","xai","vercel-ai-gateway"]),m=t.z.object({provider:d,model:t.z.string().trim().min(1,"Model name is required").max(120)}),u={openai:{label:"OpenAI",apiKeyName:"OPENAI_API_KEY",models:{image:[{id:"gpt-image-1-mini",label:"GPT Image 1 mini",tier:"small"},{id:"gpt-image-2.5-flare",label:"GPT Image 2.5 Flare",tier:"mid"},{id:"gpt-image-2.5-sunburst",label:"GPT Image 2.5 Sunburst",tier:"large"}],video:[],speech:[{id:"tts-1",label:"TTS 1",tier:"small"},{id:"gpt-4o-mini-tts",label:"4o mini TTS",tier:"mid"},{id:"tts-1-hd",label:"TTS 1 HD",tier:"large"}],transcription:[{id:"gpt-4o-mini-transcribe",label:"4o mini Transcribe",tier:"small"},{id:"gpt-transcribe",label:"GPT Transcribe",tier:"mid"}]}},google:{label:"Gemini",apiKeyName:"GOOGLE_GENERATIVE_AI_API_KEY",models:{image:[{id:"gemini-3.1-flash-lite-image",label:"3.1 Flash Lite Image",tier:"small"},{id:"gemini-3.1-flash-image",label:"3.1 Flash Image",tier:"mid"},{id:"gemini-3-pro-image",label:"3 Pro Image",tier:"large"}],video:[{id:"veo-3.1-lite-generate-preview",label:"Veo 3.1 Lite",tier:"small"},{id:"veo-3.1-fast-generate-preview",label:"Veo 3.1 Fast",tier:"mid"},{id:"veo-3.1-generate-preview",label:"Veo 3.1",tier:"large"}],speech:[{id:"gemini-2.5-flash-preview-tts",label:"2.5 Flash TTS",tier:"small"},{id:"gemini-3.1-flash-tts-preview",label:"3.1 Flash TTS",tier:"mid"},{id:"gemini-2.5-pro-preview-tts",label:"2.5 Pro TTS",tier:"large"}],transcription:[{id:"gemini-3.5-transcribe",label:"3.5 Transcribe",tier:"mid"}]}},xai:{label:"xAI",apiKeyName:"XAI_API_KEY",models:{image:[{id:"grok-imagine-image",label:"Grok Imagine",tier:"small"},{id:"grok-imagine-image-2.0",label:"Grok Imagine 2.0",tier:"mid"}],video:[{id:"grok-imagine-video",label:"Grok Imagine Video",tier:"small"},{id:"grok-imagine-video-1.5",label:"Grok Imagine Video 1.5",tier:"mid"}],speech:[{id:"grok-tts",label:"Grok TTS",tier:"mid"}],transcription:[{id:"grok-stt",label:"Grok STT",tier:"mid"}]}},"vercel-ai-gateway":{label:"Vercel AI Gateway",apiKeyName:"AI_GATEWAY_API_KEY",models:{image:[{id:"bytedance/seedream-5.0-lite",label:"Seedream 5.0 Lite",tier:"small"},{id:"bfl/flux-2-klein-9b",label:"FLUX 2 Klein 9B",tier:"small"},{id:"spacexai/grok-imagine-image-2.0",label:"Grok Imagine 2.0",tier:"small"},{id:"bfl/flux-2-pro",label:"FLUX 2 Pro",tier:"mid"},{id:"bytedance/seedream-5.0-pro",label:"Seedream 5.0 Pro",tier:"mid"},{id:"recraft/recraft-v4.1",label:"Recraft V4.1",tier:"mid"},{id:"openai/gpt-image-2.5-sunburst",label:"GPT Image 2.5 Sunburst",tier:"large"}],video:[{id:"bytedance/seedance-2.0-mini",label:"Seedance 2.0 Mini",tier:"small"},{id:"google/veo-3.1-lite-generate-001",label:"Veo 3.1 Lite",tier:"small"},{id:"alibaba/wan-v2.6-t2v",label:"Wan 2.6",tier:"small"},{id:"google/veo-3.1-fast-generate-001",label:"Veo 3.1 Fast",tier:"mid"},{id:"bytedance/seedance-2.5",label:"Seedance 2.5",tier:"mid"},{id:"spacexai/grok-imagine-video-1.5",label:"Grok Imagine Video 1.5",tier:"mid"},{id:"klingai/kling-v3.0-t2v",label:"Kling 3.0",tier:"large"},{id:"google/veo-3.1-generate-001",label:"Veo 3.1",tier:"large"}],speech:[{id:"fish-audio/s1",label:"Fish Audio S1",tier:"small"},{id:"openai/tts-1",label:"OpenAI TTS 1",tier:"small"},{id:"spacexai/grok-tts",label:"Grok TTS",tier:"mid"},{id:"fish-audio/s2.1-pro",label:"Fish Audio S2.1 Pro",tier:"mid"},{id:"openai/tts-1-hd",label:"OpenAI TTS 1 HD",tier:"large"}],transcription:[{id:"spacexai/grok-stt",label:"Grok STT",tier:"small"},{id:"fish-audio/transcribe-1",label:"Fish Transcribe 1",tier:"small"},{id:"openai/gpt-4o-mini-transcribe",label:"4o mini Transcribe",tier:"small"},{id:"openai/gpt-4o-transcribe",label:"4o Transcribe",tier:"mid"},{id:"google/gemini-3.5-transcribe",label:"Gemini 3.5 Transcribe",tier:"mid"}]}}},g=Object.keys(u).map(e=>({id:e,...u[e]})),c={openai:{label:"OpenAI",apiKeyName:"OPENAI_API_KEY",keysAt:"https://platform.openai.com/api-keys",keyLooks:"sk-…",defaultTier:"small",suggestModels:[{id:"gpt-6-luna",label:"6 Luna",tier:"small",context:105e4,efforts:["none","low","medium","high","xhigh"]},{id:"gpt-6-sol",label:"6 Sol",tier:"mid",context:105e4,efforts:["none","low","medium","high","xhigh"]},{id:"gpt-6-astra",label:"6 Astra",tier:"large",context:105e4,efforts:["low","medium","high","xhigh"]}]},chatgpt:{label:"GPT Subscription",apiKeyName:"CHATGPT_SIGN_IN",signIn:!0,suggestModels:[{id:"gpt-6-luna",label:"6 Luna",tier:"small",context:272e3,efforts:["none","low","medium","high","xhigh"]},{id:"gpt-6-sol",label:"6 Sol",tier:"mid",context:272e3,efforts:["none","low","medium","high","xhigh"]},{id:"gpt-6-astra",label:"6 Astra",tier:"large",context:272e3,efforts:["low","medium","high","xhigh"]}]},anthropic:{label:"Claude",apiKeyName:"ANTHROPIC_API_KEY",keysAt:"https://platform.claude.com/settings/keys",keyLooks:"sk-ant-…",suggestModels:[{id:"claude-haiku-4-5",label:"Haiku 4.5",tier:"small",efforts:["none","minimal","low","medium","high","xhigh"]},{id:"claude-sonnet-5",label:"Sonnet 5",tier:"mid",context:1e6,efforts:["none","low","medium","high","xhigh"]},{id:"claude-opus-5-5",label:"Opus 5.5",tier:"large",context:1e6,efforts:["low","medium","high","xhigh"]},{id:"claude-fable-5-1",label:"Fable 5.1",tier:"large",efforts:["none","low","medium","high","xhigh"]}]},google:{label:"Gemini",apiKeyName:"GOOGLE_GENERATIVE_AI_API_KEY",keysAt:"https://aistudio.google.com/apikey",keyLooks:"AIza…",suggestModels:[{id:"gemini-3.5-flash-lite",label:"3.5 Flash Lite",tier:"small",context:1e6,efforts:["minimal","low","medium","high"]},{id:"gemini-3.8-flash",label:"3.8 Flash",tier:"mid",context:1e6,efforts:["low","medium","high"]}]},xai:{label:"xAI",apiKeyName:"XAI_API_KEY",keysAt:"https://console.x.ai",keyLooks:"xai-…",suggestModels:[{id:"grok-4.7",label:"Grok 4.7",tier:"large",context:5e5,efforts:["none","low","medium","high","xhigh"]}]},"vercel-ai-gateway":{label:"Vercel AI Gateway",apiKeyName:"AI_GATEWAY_API_KEY",keysAt:"https://vercel.com/docs/ai-gateway/authentication-and-byok/authentication",suggestModels:[{id:"zai/glm-5.3-flash",label:"GLM 5.3 Flash",tier:"small"},{id:"google/gemini-3.8-flash",label:"Gemini 3.8 Flash",tier:"small"},{id:"openai/gpt-6-luna",label:"GPT 6 Luna",tier:"small",context:105e4},{id:"zai/glm-5.3",label:"GLM 5.3",tier:"mid"},{id:"spacexai/grok-4.7",label:"Grok 4.7",tier:"mid",context:5e5},{id:"anthropic/claude-sonnet-5",label:"Claude Sonnet 5",tier:"mid"},{id:"openai/gpt-6-sol",label:"GPT 6 Sol",tier:"mid",context:105e4},{id:"moonshotai/kimi-k3",label:"Kimi K3",tier:"mid"},{id:"anthropic/claude-opus-5.5",label:"Claude Opus 5.5",tier:"large",context:1e6},{id:"openai/gpt-6-astra",label:"GPT 6 Astra",tier:"large",context:105e4}]},openrouter:{label:"OpenRouter",apiKeyName:"OPENROUTER_API_KEY",keysAt:"https://openrouter.ai/settings/keys",keyLooks:"sk-or-…",suggestModels:[{id:"z-ai/glm-5.3-flash",label:"GLM 5.3 Flash",tier:"small",context:1310720},{id:"google/gemini-3.8-flash",label:"Gemini 3.8 Flash",tier:"small",context:1048576},{id:"openai/gpt-6-luna",label:"GPT 6 Luna",tier:"small",context:105e4},{id:"z-ai/glm-5.3",label:"GLM 5.3",tier:"mid",context:1310720},{id:"x-ai/grok-4.7",label:"Grok 4.7",tier:"mid",context:5e5},{id:"anthropic/claude-sonnet-5",label:"Claude Sonnet 5",tier:"mid",context:1e6},{id:"openai/gpt-6-sol",label:"GPT 6 Sol",tier:"mid",context:105e4},{id:"moonshotai/kimi-k3",label:"Kimi K3",tier:"mid",context:1048576},{id:"anthropic/claude-opus-5.5",label:"Claude Opus 5.5",tier:"large",context:1e6},{id:"openai/gpt-6-astra",label:"GPT 6 Astra",tier:"large",context:105e4}]},mistral:{label:"Mistral",apiKeyName:"MISTRAL_API_KEY",keysAt:"https://console.mistral.ai/api-keys",suggestModels:[{id:"ministral-8b-latest",label:"Ministral 8B",tier:"small",efforts:[]},{id:"mistral-small-latest",label:"Small",tier:"mid",efforts:["none","high"]},{id:"mistral-medium-latest",label:"Medium",tier:"large",efforts:["none","high"]},{id:"mistral-large-latest",label:"Large",tier:"large",efforts:[]}]},deepseek:{label:"DeepSeek",apiKeyName:"DEEPSEEK_API_KEY",keysAt:"https://platform.deepseek.com/api_keys",keyLooks:"sk-…",suggestModels:[{id:"deepseek-flash",label:"V4.1 Flash",tier:"small",context:1e6,efforts:["none","low","high","xhigh"]},{id:"deepseek-v4-pro",label:"V4 Pro",tier:"large",context:1e6,efforts:["none","low","high","xhigh"]}]},groq:{label:"Groq",apiKeyName:"GROQ_API_KEY",keysAt:"https://console.groq.com/keys",keyLooks:"gsk_…",suggestModels:[{id:"openai/gpt-oss-20b",label:"GPT OSS 20B",tier:"small",context:131072,efforts:["low","medium","high"]},{id:"openai/gpt-oss-120b",label:"GPT OSS 120B",tier:"mid",context:131072,efforts:["low","medium","high"]},{id:"llama-3.3-70b-versatile",label:"Llama 3.3 70B",tier:"mid",context:131072,efforts:[]}]},cerebras:{label:"Cerebras",apiKeyName:"CEREBRAS_API_KEY",keysAt:"https://cloud.cerebras.ai",keyLooks:"csk-…",suggestModels:[{id:"qwen-3.8-27b",label:"Qwen 3.8 27B",tier:"small",context:64e3},{id:"gpt-oss-120b",label:"GPT OSS 120B",tier:"mid",context:65536}]},togetherai:{label:"Together",apiKeyName:"TOGETHER_AI_API_KEY",keysAt:"https://api.together.ai/settings/api-keys",suggestModels:[{id:"Qwen/Qwen3.5-9B",label:"Qwen 3.5 9B",tier:"small",context:262144},{id:"zai-org/GLM-5.3-Flash",label:"GLM 5.3 Flash",tier:"small",context:1048575},{id:"openai/gpt-oss-120b",label:"GPT OSS 120B",tier:"mid",context:131072},{id:"deepseek-ai/DeepSeek-V4.1-Flash",label:"DeepSeek V4.1 Flash",tier:"mid",context:1e6},{id:"zai-org/GLM-5.3",label:"GLM 5.3",tier:"large",context:1048575},{id:"moonshotai/Kimi-K3",label:"Kimi K3",tier:"large",context:1048576}]},fireworks:{label:"Fireworks",apiKeyName:"FIREWORKS_API_KEY",keysAt:"https://app.fireworks.ai/account/api-keys",keyLooks:"fw_…",suggestModels:[{id:"accounts/fireworks/models/glm-5p3-flash",label:"GLM 5.3 Flash",tier:"small",context:1048576},{id:"accounts/fireworks/models/deepseek-v4p1-flash",label:"DeepSeek V4.1 Flash",tier:"mid",context:1048576},{id:"accounts/fireworks/models/minimax-m3",label:"MiniMax M3",tier:"mid",context:512e3},{id:"accounts/fireworks/models/glm-5p3",label:"GLM 5.3",tier:"large",context:1048576},{id:"accounts/fireworks/models/kimi-k3",label:"Kimi K3",tier:"large",context:1048576}]},deepinfra:{label:"DeepInfra",apiKeyName:"DEEPINFRA_API_KEY",keysAt:"https://deepinfra.com/dash/api_keys",suggestModels:[{id:"deepseek-ai/DeepSeek-V4-Flash-0731",label:"DeepSeek V4 Flash",tier:"small",context:1048576},{id:"deepseek-ai/DeepSeek-V4.1-Flash",label:"DeepSeek V4.1 Flash",tier:"mid",context:1048576},{id:"zai-org/GLM-5.2",label:"GLM 5.2",tier:"mid",context:1048576},{id:"zai-org/GLM-5.3",label:"GLM 5.3",tier:"large",context:1048576},{id:"moonshotai/Kimi-K3",label:"Kimi K3",tier:"large",context:1048576}]},cohere:{label:"Cohere",apiKeyName:"COHERE_API_KEY",keysAt:"https://dashboard.cohere.com/api-keys",suggestModels:[{id:"command-r7b-12-2024",label:"Command R7B",tier:"small",context:128e3},{id:"command-a-03-2025",label:"Command A",tier:"mid",context:256e3},{id:"command-a-plus-05-2026",label:"Command A+",tier:"large",context:128e3}]}},b=Object.keys(c).map(e=>({id:e,...c[e]}));e.s(["CATALOG_TEXT",0,"language","CATALOG_TOOL_USE",0,"tool-use","EFFORTS",0,r,"MEDIA_MODEL_PROVIDERS",0,u,"MEDIA_MODEL_PROVIDER_LIST",0,g,"TEXT_MODEL_PROVIDERS",0,c,"TEXT_MODEL_PROVIDER_LIST",0,b,"VENDOR_PROVIDERS",0,{anthropic:"anthropic",openai:"openai",google:"google",spacexai:"xai",mistral:"mistral",deepseek:"deepseek",cohere:"cohere",openrouter:"openrouter"},"canMakeKind",0,(e,t)=>(u[e]?.models[t]?.length??0)>0,"compactAtFor",0,e=>e&&e>0?Math.round(e*a.BOT_RUN.compactHeadroom):a.BOT_RUN.compactAt,"contextWindowOf",0,function(e,t,a=[]){if(n(e))return a.find(e=>e.id===t)?.contextWindow??null;let i=c[e].suggestModels;return i.find(e=>e.id===t)?.context??null},"defaultModelOf",0,e=>{let t;return t=e.defaultTier??"mid",(e.suggestModels.find(e=>e.tier===t)??e.suggestModels[0])?.id},"effortSchema",0,o,"effortsOf",0,function(e,t,a=[]){if(n(e))return a.find(e=>e.id===t)?.efforts??null;let i=c[e].suggestModels;return i.find(e=>e.id===t)?.efforts??null},"isCatalogProvider",0,n,"parseMediaModel",0,function(e){let[t,...a]=(e??"").trim().split("/"),i=m.safeParse({provider:t,model:a.join("/")});return i.success?i.data:null},"parseTextModel",0,function(e){let[t,...a]=(e??"").trim().split("/"),i=l.safeParse({provider:t,model:a.join("/")});return i.success?i.data:null},"textModelProviderSchema",0,i,"textModelRefSchema",0,l])},353885,e=>{"use strict";e.s(["STUDIO_TOOLS",0,{generate_image:"generate_image",generate_speech:"generate_speech",transcribe:"transcribe",generate_video:"generate_video"},"TOOL_NAMES",0,{memory_recall:"memory_recall",memory_create:"memory_create",memory_remember:"memory_remember",memory_describe:"memory_describe",memory_forget:"memory_forget",bash:"bash",write_file:"write_file",tool_search:"tool_search",tool_call:"tool_call",load_skill:"load_skill",web_search:"web_search",thread_start:"thread_start",thread_tell:"thread_tell",thread_answer:"thread_answer",thread_status:"thread_status",thread_cancel:"thread_cancel",thread_show:"thread_show",thread_seen:"thread_seen",routine:"routine",send_message:"send_message",thread_recall:"thread_recall",sign_in_use:"sign_in_use",sign_in_keep:"sign_in_keep",look_at:"look_at",make_deck:"make_deck",describe_self:"describe_self",end_call:"end_call",emote:"emote",look_at_screen:"look_at_screen"}])},944971,e=>{"use strict";var t=e.i(105249),a=e.i(687388),i=e.i(264079),l=e.i(704161),r=e.i(41444),o=e.i(554199),s=e.i(889034);let n=t.default.object({color:t.default.string().regex(/^(#[0-9a-fA-F]{6}|currentColor)$/,"Hex color").optional(),shape:t.default.enum(o.MARK_SHAPES).optional(),outline:t.default.boolean().optional(),paint:t.default.enum(o.MARK_PAINT_IDS).optional()}),d=t.default.string().max(a.COMMON_VALIDATE.prompt.max),m=t.default.object({line:t.default.string(),reason:t.default.string(),at:t.default.number()}),u=t.default.object({id:t.default.number(),name:t.default.string(),serverName:t.default.string()}),g=t.default.string().trim().transform(e=>e.replace(/\s+/g," ")).refine(e=>e.toLowerCase()!==s.ROOM_THURSDAY.toLowerCase(),"Thursday is reserved for the voice assistant.").pipe(t.default.string().min(1,"A name is required").max(a.COMMON_VALIDATE.name.max)),c=t.default.object({input:t.default.number(),output:t.default.number()});t.default.object({name:t.default.string(),description:t.default.string(),descriptionLocked:t.default.boolean(),ownLine:m.nullish(),systemPrompt:t.default.string().nullish(),icon:n.nullish(),provider:i.textModelProviderSchema.nullish(),model:t.default.string().nullish(),compactAt:t.default.number().nullish(),effort:i.effortSchema.nullish(),disabled:t.default.boolean(),createdAt:l.DateLikeSchema,tools:u.array().default([]),tokens:c,lastJobAt:l.DateLikeSchema.nullish()}),t.default.object({name:g,description:t.default.string().trim().min(1,"Say what this bot is for").max(a.COMMON_VALIDATE.description.max),systemPrompt:d.optional(),icon:n.optional(),provider:i.textModelProviderSchema.nullish(),model:t.default.string().trim().max(80).nullish(),compactAt:t.default.coerce.number().int().min(8e3,"At least 8k").nullish(),effort:i.effortSchema.nullish(),disabled:t.default.boolean().optional(),descriptionLocked:t.default.boolean().optional(),toolIds:t.default.number().int().array().max(a.MAX_PINNED_TOOLS).optional()});let b={color:o.MARK_SYSTEM,shape:"blob"};t.default.object({file:t.default.string(),path:t.default.string(),line:t.default.string(),at:l.DateLikeSchema,bytes:t.default.number()});let p="Continue",f={thursday:"Thursday, on the call:",user:"The user, on screen:"},h=t.default.discriminatedUnion("type",[t.default.object({type:t.default.literal("text"),text:t.default.string()}),t.default.object({type:t.default.literal("image"),src:t.default.string()})]),k=t.default.object({id:t.default.string(),seq:t.default.number(),bot:t.default.string().nullable(),parent:t.default.string().nullable(),to:t.default.string().nullish(),at:l.DateLikeSchema}),_=t.default.discriminatedUnion("kind",[k.extend({kind:t.default.literal("user"),text:t.default.string()}),k.extend({kind:t.default.literal("text"),text:t.default.string()}),k.extend({kind:t.default.literal("note"),text:t.default.string()}),k.extend({kind:t.default.literal("stop"),text:t.default.string()}),k.extend({kind:t.default.literal("tool"),callId:t.default.string(),name:t.default.string(),input:t.default.string(),note:t.default.string().nullish(),path:t.default.string().nullish()}),k.extend({kind:t.default.literal("tool-result"),callId:t.default.string(),name:t.default.string(),results:h.array(),more:t.default.boolean()}),k.extend({kind:t.default.literal("ask"),callId:t.default.string(),to:t.default.string(),text:t.default.string(),question:t.default.boolean().optional(),questionId:t.default.string().optional()})]),x=t.default.object({question:t.default.string(),messageId:t.default.string().optional(),bot:t.default.string().optional(),options:t.default.string().array()});t.default.object({id:t.default.string(),bot:t.default.string(),label:t.default.string(),request:t.default.string(),status:t.default.enum(["running","waiting","done","cancelled"]),outcome:t.default.string().nullable(),ask:x.nullable(),seen:t.default.boolean(),routineId:t.default.string().nullable(),tokens:c,contextTokens:t.default.number(),contextBudget:t.default.number(),createdAt:l.DateLikeSchema,updatedAt:l.DateLikeSchema,lines:_.array(),room:s.RoomViewSchema}),e.s(["BOT_MEMORY_KEY",0,"BOT_MEMORY","COMPACT_AT_MIN",0,8e3,"DEFAULT_BOT",0,{name:"Jarvis",description:"Anything — this computer, a browser, the web, files, services",ownLine:null,systemPrompt:null,icon:b,provider:null,model:null,disabled:!1,compactAt:null,effort:null},"DEFAULT_BOT_ICON",0,b,"THREAD_CONTINUE",0,p,"isAppStop",0,e=>{let t=e?.options??[];return!e?.messageId&&1===t.length&&t[0]===p},"isBotMemoryOn",0,e=>e?.trim()!=="off","rosterLine",0,function(e){let t=e.description.trim();return e.ownLine?`${t}${/[.!?。…]$/.test(t)?"":"."} ${e.ownLine}`:t},"tagSpeaker",0,(e,t)=>`${f[e]} ${t}`,"threadActivity",0,function(e,t=120){let a=null;for(let i=e.length-1;i>=0;i--){let l=e[i];if("tool"===l.kind)a??=`${l.name} ${l.note??l.input}`;else if("text"===l.kind)return(0,r.clip)(a?`${l.text} → ${a}`:l.text,t);else if("ask"===l.kind)return(0,r.clip)(`asked ${l.to}: ${l.text}`,t);else if("user"===l.kind)break}return a?(0,r.clip)(a,t):null},"untagSpeaker",0,e=>{for(let t of Object.values(f))if(e.startsWith(`${t} `))return e.slice(t.length+1);return e},"workHandle",0,e=>e.slice(0,6)])},554199,e=>{"use strict";let t="currentColor",a=[{id:"system",label:"System",value:t},{id:"slate",label:"Slate",value:"#64748B"},{id:"indigo",label:"Indigo",value:"#6366F1"},{id:"blue",label:"Blue",value:"#3B82F6"},{id:"cyan",label:"Cyan",value:"#06B6D4"},{id:"teal",label:"Teal",value:"#14B8A6"},{id:"green",label:"Green",value:"#22C55E"},{id:"lime",label:"Lime",value:"#84CC16"},{id:"amber",label:"Amber",value:"#F59E0B"},{id:"orange",label:"Orange",value:"#F97316"},{id:"red",label:"Red",value:"#EF4444"},{id:"pink",label:"Pink",value:"#EC4899"},{id:"violet",label:"Violet",value:"#8B5CF6"},{id:"fuchsia",label:"Fuchsia",value:"#D946EF"},{id:"rose",label:"Rose",value:"#F43F5E"},{id:"sky",label:"Sky",value:"#0EA5E9"},{id:"emerald",label:"Emerald",value:"#10B981"},{id:"yellow",label:"Yellow",value:"#EAB308"},{id:"stone",label:"Stone",value:"#78716C"}],i=Object.fromEntries(a.map(e=>[e.id,e.value])),l=a.filter(e=>e.value!==t).map(e=>e.value),r=[i.amber,i.red],o={[i.cyan]:"#009dbb",[i.teal]:"#00a190",[i.green]:"#00a640",[i.lime]:"#5ca100",[i.amber]:"#d07b00",[i.orange]:"#ec6700",[i.sky]:"#0098dc",[i.emerald]:"#00a46d",[i.yellow]:"#bb8600"},s={rainbow:{label:"Rainbow",look:"flow",colors:[0,45,90,140,190,240,290,330,360].map(e=>`oklch(0.77 0.16 ${e})`)},duo:{label:"Duo",look:"duo",colors:["#818CF8","#F472B6"]},aurora:{label:"Aurora",look:"aurora",edge:"dark",colors:["#1a2f73","#2c56c9","#34d399","#22d3ee","#a7f3d0"]},"aurora-pink":{label:"Pink aurora",look:"aurora",edge:"dark",colors:["#3a1478","#7c3aed","#f472b6","#e879f9","#fbcfe8"]}},n=Object.keys(s);e.s(["MARK_INK",0,i,"MARK_PAINTS",0,s,"MARK_PAINT_IDS",0,n,"MARK_SHAPES",0,["blob","poly","squircle","heart"],"MARK_SYSTEM",0,t,"markInk",0,(e,t)=>t?e:o[e]??e,"randomMarkFill",0,function(){let e=[...l.filter(e=>!r.includes(e)).map(e=>({color:e})),...n.map(e=>({paint:e}))];return e[Math.floor(Math.random()*e.length)]}])},889034,e=>{"use strict";var t=e.i(469719);let a=t.z.object({to:t.z.string().trim().min(1),text:t.z.string().trim().min(1),why:t.z.string().trim().min(1),kind:t.z.enum(["message","question"]).default("message"),options:t.z.array(t.z.string().trim().min(1)).nullish()}),i=t.z.enum(["queued","running","waiting","external","paused","done","cancelled"]),l=t.z.object({bot:t.z.string(),state:i}),r=t.z.object({id:t.z.string(),bot:t.z.string(),text:t.z.string(),options:t.z.string().array().optional()}),o=t.z.enum(["message","question","report","interrupted"]),s=t.z.object({participants:l.array(),questions:r.array(),deliveries:t.z.object({id:t.z.string(),bot:t.z.string(),text:t.z.string(),delivered:t.z.boolean()}).array(),relays:t.z.object({id:t.z.number(),bot:t.z.string(),text:t.z.string(),kind:o,messageId:t.z.string().nullable()}).array()});e.s(["RESUME_CHECK",0,"Resume from the saved state; inspect any tool whose result is missing before repeating it.","ROOM_THURSDAY",0,"Thursday","ROOM_USER",0,"The user","RoomMessageSchema",0,a,"RoomViewSchema",0,s])},105249,e=>{"use strict";var t=e.i(562810);e.s(["default",0,t])}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__0p80i1n._.js.map
@@ -0,0 +1,5 @@
1
+ module.exports=[418520,e=>e.a(async(t,i)=>{try{var a=await e.y("@libsql/client-6da938047d5fc1cd");e.n(a),i()}catch(e){i(e)}},!0),902157,(e,t,i)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},750227,(e,t,i)=>{t.exports=e.x("node:path",()=>require("node:path"))},59639,(e,t,i)=>{t.exports=e.x("node:process",()=>require("node:process"))},509656,(e,t,i)=>{t.exports=e.x("node:tty",()=>require("node:tty"))},812057,(e,t,i)=>{t.exports=e.x("node:util",()=>require("node:util"))},380690,e=>{"use strict";let t,i,a,l,r,s;var o,n=e.i(687388),d=e.i(640911);let m={threads:!0,bots:!0,routines:!0,memory:!0,mcp:!0,config:!0,reach:!0,signins:!0,files:!0},c=globalThis,g=c.__appEvents??=(t=new Set,{emit(e){for(let i of[...t])try{i(e)}catch(e){console.error("event listener failed",e)}},subscribe:e=>(t.add(e),()=>{t.delete(e)})}),p=c.__presence??=(o=n.BROWSER_GONE_MS,i=!1,a=null,l=new Set,r=new Set,s=e=>{for(let t of[...e])try{t()}catch(e){console.error("presence listener failed",e)}},{get watching(){return i},track(e){if(e>0){a&&clearTimeout(a),a=null,i||(i=!0,s(r));return}!a&&i&&(a=setTimeout(()=>{a=null,i=!1,s(l)},o))},onGone:e=>(l.add(e),()=>l.delete(e)),onBack:e=>(r.add(e),()=>r.delete(e))}),u=c.__appEventStream??=function(e,t={}){let i=new TextEncoder,a=t.heartbeatMs??2e4,l=0;return{respond:(r,s)=>{let o=()=>{};return new Response(new ReadableStream({async start(n){let m=!1,c=new Map,g=[],p=e=>{if(!m)try{n.enqueue(i.encode(e))}catch{o()}},u=e=>p(`data: ${JSON.stringify(e)}
2
+
3
+ `),h=e=>{let i={last:null},a=setTimeout(()=>{c.delete(e),!m&&i.last&&(u(i.last),h(e))},t.coalesce?.ms);c.set(e,{timer:a,wait:i})},b=e=>{if(m)return;let i=t.coalesce?.keyOf(e)??null;if(null===i)return u(e);let a=c.get(i);if(a){a.wait.last=e;return}u(e),h(i)},f=e.subscribe(e=>g?g.push(e):b(e)),_=setInterval(()=>p(": ping\n\n"),a);l+=1,t.onWatchers?.(l),o=()=>{if(!m){for(let e of(m=!0,l-=1,t.onWatchers?.(l),f(),clearInterval(_),c.values()))clearTimeout(e.timer);try{n.close()}catch{}}},r.addEventListener("abort",o);try{for(let e of await s?.()??[])u(e)}catch(e){d.logger.error("event stream opening failed",e),o();return}let E=g;for(let e of(g=null,E))b(e)},cancel(){o()}}),{headers:{"Content-Type":"text/event-stream; charset=utf-8","Cache-Control":"no-store","X-Accel-Buffering":"no"}})},get watchers(){return l}}}(g,{coalesce:{ms:n.SIGNAL_PACE_MS,keyOf:e=>e.type in m?e.type:null},onWatchers:p.track});e.s(["appEventStream",0,u,"appEvents",0,g,"presence",0,p],380690)},687388,e=>{"use strict";let t=process.env.THURSDAY_APP_DIR?.trim()||process.cwd(),i=process.env.THURSDAY_HOME?.trim()||process.cwd(),a=process.env.THURSDAY_URL?.trim()||`http://localhost:${process.env.PORT?.trim()||3e3}`,l=`${i}/local.db`,r=`file:${l}`,s=".ai-workspace",o={workspace:s,artifacts:"artifacts",projects:"projects",scratch:"scratch",bots:"bots",output:".output",signIns:".sign-ins",skills:{default:"skills",custom:`${s}/.agents/skills`,own:".agents/skills",runtime:"runtime",seeds:"seed-skills"}},n="artifact";e.s(["APP_DIR",0,t,"APP_NAME",0,"Thursday","APP_URL",0,a,"ARTIFACT_SKILL",0,n,"ARTIFACT_VIEW",0,{rows:200,setFiles:120},"BOT_MEMORY_LIMITS",0,{files:20,chars:1e4},"BOT_RUN",0,{steps:100,compactAt:5e5,compactHeadroom:.8,summaryWords:{min:600,max:3e3,perTokens:200},participants:12,concurrent:4,turns:120,queuedMessages:200,silenceMs:3e5,overflowShrink:.6,retryMs:1e4,compactFiles:40},"BOT_WORK",0,{open:5,recent:5,said:80,files:2,reads:2,asked:400,readChars:4e3},"BROWSER_CLI",0,{readMs:15e3,loadMs:3e4},"BROWSER_GONE_MS",0,1e4,"BROWSER_VIEWPORT",0,"700x700","CALL_EXEC_TIMEOUT_MS",0,15e3,"CALL_HISTORY_PAGE",0,10,"CALL_RELAY",0,{quietMs:2e3,perTurn:3,readMs:15e3,chars:600},"CATALOG_MS",0,6e5,"CHATGPT_SIGN_IN",0,{waitMs:6e5,renewBeforeMs:3e5},"CHATGPT_USAGE_HIGH",0,80,"COMMON_VALIDATE",0,{name:{max:16},shortDescription:{max:60},description:{max:100},prompt:{max:4e3}},"CONNECTED_TOOL_TIMEOUT_MS",0,6e5,"DATA_DIR",0,i,"DB_FILE_NAME",0,r,"DB_PATH",0,l,"DECK",0,{slides:30,shotsMs:9e4},"EXEC_KILL_GRACE_MS",0,5e3,"EXEC_TIMEOUT_MS",0,18e4,"FAVICON",0,{timeoutMs:4e3,maxBytes:3e5,kept:500,pageBytes:65536},"FINISHED_NOTICE",0,{rows:5,shown:1,words:240},"FULL_RESULT_LINES",0,400,"INBOX_FINISHED",0,5,"IS_DEV",0,!1,"JOB_FOLDER_WALK",0,500,"KEY_LOW_CREDIT",0,1,"LIVE_CALL",0,{startupMs:3e4,closeMs:15e3,transcriptGapMs:1500,transcriptSaveMs:500,appendMs:15e3,backendOutputTokens:4096,reasoningCheckMs:5e3,keyCheckMs:5e3,openingHoldMs:3e3},"LOOK",0,{maxBytes:4194304},"MARKETING_SKILL",0,"marketing","MAX_PINNED_TOOLS",0,10,"MCP_IDLE_MS",0,18e5,"MEMORY_EDIT",0,{maxSteps:20},"MEMORY_LIMITS",0,{facts:400,factsPerNote:50,descriptionChars:100},"PAGE_SIZE",0,50,"PATHS",0,o,"PROMPT_BUDGET",0,6e3,"PROMPT_LINE",0,{skill:90,toolArgs:30,jobOutcome:160,botMemory:100,threadStatus:200,routineRequest:300,routineOutcome:200},"REACH",0,{pollSeconds:50,retryMs:5e3,idleMs:6e5,messages:40,trimTo:30,oldChars:1e3,files:3,fileBytes:0x2d00000,rateRetries:3,rateWaitMs:3e4,codeDigits:4,held:5,pictures:9,drawMs:6e4,lookMs:2e3},"RECENT_CALL",0,{rows:20,tokens:600},"ROUTINE",0,{tickMs:3e4,max:12,minHours:1,runsShown:5},"SEARCH",0,{sources:3,excerptChars:1200,timeoutMs:3e4},"SIGNAL_PACE_MS",0,150,"SKILLS_FOLDED",0,{design:n,"picture-book":n,"interactive-page":n},"SKILL_FILES",0,{uploadBytes:0x1400000,inlineBytes:524288,unpackedBytes:0x6400000,archiveEntries:1e3},"SKILL_FILES_LISTED",0,50,"STUDIO_SERVER",0,"studio","TEXT_CALL",0,{maxSteps:12,model:"text",autoTurns:10},"THREAD_LABEL_REACH",0,20,"THREAD_STATUS_LIMIT",0,10,"TOOL_OUTPUT",0,{max:8e3,head:5500,tail:1500},"TOOL_SEARCH_SCHEMAS",0,8,"TRAVEL_SKILL",0,"travel","WORKSPACE_KEEP",0,{forMs:2592e5,sweepEveryMs:36e5},"WORKSPACE_VIEW",0,{rows:200,textMax:524288,autoCloseMs:5e3,elementMax:0x3200000}])},264079,e=>{"use strict";var t=e.i(469719),i=e.i(687388);let a=t.z.enum(["openai","chatgpt","anthropic","google","xai","vercel-ai-gateway","openrouter","mistral","deepseek","groq","cerebras","togetherai","fireworks","deepinfra","cohere"]),l=t.z.object({provider:a,model:t.z.string().trim().min(1,"Model name is required").max(80)}),r=["none","minimal","low","medium","high","xhigh"],s=t.z.enum(r),o=["vercel-ai-gateway","openrouter"],n=e=>o.includes(e),d=t.z.enum(["openai","google","xai","vercel-ai-gateway"]),m=t.z.object({provider:d,model:t.z.string().trim().min(1,"Model name is required").max(120)}),c={openai:{label:"OpenAI",apiKeyName:"OPENAI_API_KEY",models:{image:[{id:"gpt-image-1-mini",label:"GPT Image 1 mini",tier:"small"},{id:"gpt-image-2.5-flare",label:"GPT Image 2.5 Flare",tier:"mid"},{id:"gpt-image-2.5-sunburst",label:"GPT Image 2.5 Sunburst",tier:"large"}],video:[],speech:[{id:"tts-1",label:"TTS 1",tier:"small"},{id:"gpt-4o-mini-tts",label:"4o mini TTS",tier:"mid"},{id:"tts-1-hd",label:"TTS 1 HD",tier:"large"}],transcription:[{id:"gpt-4o-mini-transcribe",label:"4o mini Transcribe",tier:"small"},{id:"gpt-transcribe",label:"GPT Transcribe",tier:"mid"}]}},google:{label:"Gemini",apiKeyName:"GOOGLE_GENERATIVE_AI_API_KEY",models:{image:[{id:"gemini-3.1-flash-lite-image",label:"3.1 Flash Lite Image",tier:"small"},{id:"gemini-3.1-flash-image",label:"3.1 Flash Image",tier:"mid"},{id:"gemini-3-pro-image",label:"3 Pro Image",tier:"large"}],video:[{id:"veo-3.1-lite-generate-preview",label:"Veo 3.1 Lite",tier:"small"},{id:"veo-3.1-fast-generate-preview",label:"Veo 3.1 Fast",tier:"mid"},{id:"veo-3.1-generate-preview",label:"Veo 3.1",tier:"large"}],speech:[{id:"gemini-2.5-flash-preview-tts",label:"2.5 Flash TTS",tier:"small"},{id:"gemini-3.1-flash-tts-preview",label:"3.1 Flash TTS",tier:"mid"},{id:"gemini-2.5-pro-preview-tts",label:"2.5 Pro TTS",tier:"large"}],transcription:[{id:"gemini-3.5-transcribe",label:"3.5 Transcribe",tier:"mid"}]}},xai:{label:"xAI",apiKeyName:"XAI_API_KEY",models:{image:[{id:"grok-imagine-image",label:"Grok Imagine",tier:"small"},{id:"grok-imagine-image-2.0",label:"Grok Imagine 2.0",tier:"mid"}],video:[{id:"grok-imagine-video",label:"Grok Imagine Video",tier:"small"},{id:"grok-imagine-video-1.5",label:"Grok Imagine Video 1.5",tier:"mid"}],speech:[{id:"grok-tts",label:"Grok TTS",tier:"mid"}],transcription:[{id:"grok-stt",label:"Grok STT",tier:"mid"}]}},"vercel-ai-gateway":{label:"Vercel AI Gateway",apiKeyName:"AI_GATEWAY_API_KEY",models:{image:[{id:"bytedance/seedream-5.0-lite",label:"Seedream 5.0 Lite",tier:"small"},{id:"bfl/flux-2-klein-9b",label:"FLUX 2 Klein 9B",tier:"small"},{id:"spacexai/grok-imagine-image-2.0",label:"Grok Imagine 2.0",tier:"small"},{id:"bfl/flux-2-pro",label:"FLUX 2 Pro",tier:"mid"},{id:"bytedance/seedream-5.0-pro",label:"Seedream 5.0 Pro",tier:"mid"},{id:"recraft/recraft-v4.1",label:"Recraft V4.1",tier:"mid"},{id:"openai/gpt-image-2.5-sunburst",label:"GPT Image 2.5 Sunburst",tier:"large"}],video:[{id:"bytedance/seedance-2.0-mini",label:"Seedance 2.0 Mini",tier:"small"},{id:"google/veo-3.1-lite-generate-001",label:"Veo 3.1 Lite",tier:"small"},{id:"alibaba/wan-v2.6-t2v",label:"Wan 2.6",tier:"small"},{id:"google/veo-3.1-fast-generate-001",label:"Veo 3.1 Fast",tier:"mid"},{id:"bytedance/seedance-2.5",label:"Seedance 2.5",tier:"mid"},{id:"spacexai/grok-imagine-video-1.5",label:"Grok Imagine Video 1.5",tier:"mid"},{id:"klingai/kling-v3.0-t2v",label:"Kling 3.0",tier:"large"},{id:"google/veo-3.1-generate-001",label:"Veo 3.1",tier:"large"}],speech:[{id:"fish-audio/s1",label:"Fish Audio S1",tier:"small"},{id:"openai/tts-1",label:"OpenAI TTS 1",tier:"small"},{id:"spacexai/grok-tts",label:"Grok TTS",tier:"mid"},{id:"fish-audio/s2.1-pro",label:"Fish Audio S2.1 Pro",tier:"mid"},{id:"openai/tts-1-hd",label:"OpenAI TTS 1 HD",tier:"large"}],transcription:[{id:"spacexai/grok-stt",label:"Grok STT",tier:"small"},{id:"fish-audio/transcribe-1",label:"Fish Transcribe 1",tier:"small"},{id:"openai/gpt-4o-mini-transcribe",label:"4o mini Transcribe",tier:"small"},{id:"openai/gpt-4o-transcribe",label:"4o Transcribe",tier:"mid"},{id:"google/gemini-3.5-transcribe",label:"Gemini 3.5 Transcribe",tier:"mid"}]}}},g=Object.keys(c).map(e=>({id:e,...c[e]})),p={openai:{label:"OpenAI",apiKeyName:"OPENAI_API_KEY",keysAt:"https://platform.openai.com/api-keys",keyLooks:"sk-…",defaultTier:"small",suggestModels:[{id:"gpt-6-luna",label:"6 Luna",tier:"small",context:105e4,efforts:["none","low","medium","high","xhigh"]},{id:"gpt-6-sol",label:"6 Sol",tier:"mid",context:105e4,efforts:["none","low","medium","high","xhigh"]},{id:"gpt-6-astra",label:"6 Astra",tier:"large",context:105e4,efforts:["low","medium","high","xhigh"]}]},chatgpt:{label:"GPT Subscription",apiKeyName:"CHATGPT_SIGN_IN",signIn:!0,suggestModels:[{id:"gpt-6-luna",label:"6 Luna",tier:"small",context:272e3,efforts:["none","low","medium","high","xhigh"]},{id:"gpt-6-sol",label:"6 Sol",tier:"mid",context:272e3,efforts:["none","low","medium","high","xhigh"]},{id:"gpt-6-astra",label:"6 Astra",tier:"large",context:272e3,efforts:["low","medium","high","xhigh"]}]},anthropic:{label:"Claude",apiKeyName:"ANTHROPIC_API_KEY",keysAt:"https://platform.claude.com/settings/keys",keyLooks:"sk-ant-…",suggestModels:[{id:"claude-haiku-4-5",label:"Haiku 4.5",tier:"small",efforts:["none","minimal","low","medium","high","xhigh"]},{id:"claude-sonnet-5",label:"Sonnet 5",tier:"mid",context:1e6,efforts:["none","low","medium","high","xhigh"]},{id:"claude-opus-5-5",label:"Opus 5.5",tier:"large",context:1e6,efforts:["low","medium","high","xhigh"]},{id:"claude-fable-5-1",label:"Fable 5.1",tier:"large",efforts:["none","low","medium","high","xhigh"]}]},google:{label:"Gemini",apiKeyName:"GOOGLE_GENERATIVE_AI_API_KEY",keysAt:"https://aistudio.google.com/apikey",keyLooks:"AIza…",suggestModels:[{id:"gemini-3.5-flash-lite",label:"3.5 Flash Lite",tier:"small",context:1e6,efforts:["minimal","low","medium","high"]},{id:"gemini-3.8-flash",label:"3.8 Flash",tier:"mid",context:1e6,efforts:["low","medium","high"]}]},xai:{label:"xAI",apiKeyName:"XAI_API_KEY",keysAt:"https://console.x.ai",keyLooks:"xai-…",suggestModels:[{id:"grok-4.7",label:"Grok 4.7",tier:"large",context:5e5,efforts:["none","low","medium","high","xhigh"]}]},"vercel-ai-gateway":{label:"Vercel AI Gateway",apiKeyName:"AI_GATEWAY_API_KEY",keysAt:"https://vercel.com/docs/ai-gateway/authentication-and-byok/authentication",suggestModels:[{id:"zai/glm-5.3-flash",label:"GLM 5.3 Flash",tier:"small"},{id:"google/gemini-3.8-flash",label:"Gemini 3.8 Flash",tier:"small"},{id:"openai/gpt-6-luna",label:"GPT 6 Luna",tier:"small",context:105e4},{id:"zai/glm-5.3",label:"GLM 5.3",tier:"mid"},{id:"spacexai/grok-4.7",label:"Grok 4.7",tier:"mid",context:5e5},{id:"anthropic/claude-sonnet-5",label:"Claude Sonnet 5",tier:"mid"},{id:"openai/gpt-6-sol",label:"GPT 6 Sol",tier:"mid",context:105e4},{id:"moonshotai/kimi-k3",label:"Kimi K3",tier:"mid"},{id:"anthropic/claude-opus-5.5",label:"Claude Opus 5.5",tier:"large",context:1e6},{id:"openai/gpt-6-astra",label:"GPT 6 Astra",tier:"large",context:105e4}]},openrouter:{label:"OpenRouter",apiKeyName:"OPENROUTER_API_KEY",keysAt:"https://openrouter.ai/settings/keys",keyLooks:"sk-or-…",suggestModels:[{id:"z-ai/glm-5.3-flash",label:"GLM 5.3 Flash",tier:"small",context:1310720},{id:"google/gemini-3.8-flash",label:"Gemini 3.8 Flash",tier:"small",context:1048576},{id:"openai/gpt-6-luna",label:"GPT 6 Luna",tier:"small",context:105e4},{id:"z-ai/glm-5.3",label:"GLM 5.3",tier:"mid",context:1310720},{id:"x-ai/grok-4.7",label:"Grok 4.7",tier:"mid",context:5e5},{id:"anthropic/claude-sonnet-5",label:"Claude Sonnet 5",tier:"mid",context:1e6},{id:"openai/gpt-6-sol",label:"GPT 6 Sol",tier:"mid",context:105e4},{id:"moonshotai/kimi-k3",label:"Kimi K3",tier:"mid",context:1048576},{id:"anthropic/claude-opus-5.5",label:"Claude Opus 5.5",tier:"large",context:1e6},{id:"openai/gpt-6-astra",label:"GPT 6 Astra",tier:"large",context:105e4}]},mistral:{label:"Mistral",apiKeyName:"MISTRAL_API_KEY",keysAt:"https://console.mistral.ai/api-keys",suggestModels:[{id:"ministral-8b-latest",label:"Ministral 8B",tier:"small",efforts:[]},{id:"mistral-small-latest",label:"Small",tier:"mid",efforts:["none","high"]},{id:"mistral-medium-latest",label:"Medium",tier:"large",efforts:["none","high"]},{id:"mistral-large-latest",label:"Large",tier:"large",efforts:[]}]},deepseek:{label:"DeepSeek",apiKeyName:"DEEPSEEK_API_KEY",keysAt:"https://platform.deepseek.com/api_keys",keyLooks:"sk-…",suggestModels:[{id:"deepseek-flash",label:"V4.1 Flash",tier:"small",context:1e6,efforts:["none","low","high","xhigh"]},{id:"deepseek-v4-pro",label:"V4 Pro",tier:"large",context:1e6,efforts:["none","low","high","xhigh"]}]},groq:{label:"Groq",apiKeyName:"GROQ_API_KEY",keysAt:"https://console.groq.com/keys",keyLooks:"gsk_…",suggestModels:[{id:"openai/gpt-oss-20b",label:"GPT OSS 20B",tier:"small",context:131072,efforts:["low","medium","high"]},{id:"openai/gpt-oss-120b",label:"GPT OSS 120B",tier:"mid",context:131072,efforts:["low","medium","high"]},{id:"llama-3.3-70b-versatile",label:"Llama 3.3 70B",tier:"mid",context:131072,efforts:[]}]},cerebras:{label:"Cerebras",apiKeyName:"CEREBRAS_API_KEY",keysAt:"https://cloud.cerebras.ai",keyLooks:"csk-…",suggestModels:[{id:"qwen-3.8-27b",label:"Qwen 3.8 27B",tier:"small",context:64e3},{id:"gpt-oss-120b",label:"GPT OSS 120B",tier:"mid",context:65536}]},togetherai:{label:"Together",apiKeyName:"TOGETHER_AI_API_KEY",keysAt:"https://api.together.ai/settings/api-keys",suggestModels:[{id:"Qwen/Qwen3.5-9B",label:"Qwen 3.5 9B",tier:"small",context:262144},{id:"zai-org/GLM-5.3-Flash",label:"GLM 5.3 Flash",tier:"small",context:1048575},{id:"openai/gpt-oss-120b",label:"GPT OSS 120B",tier:"mid",context:131072},{id:"deepseek-ai/DeepSeek-V4.1-Flash",label:"DeepSeek V4.1 Flash",tier:"mid",context:1e6},{id:"zai-org/GLM-5.3",label:"GLM 5.3",tier:"large",context:1048575},{id:"moonshotai/Kimi-K3",label:"Kimi K3",tier:"large",context:1048576}]},fireworks:{label:"Fireworks",apiKeyName:"FIREWORKS_API_KEY",keysAt:"https://app.fireworks.ai/account/api-keys",keyLooks:"fw_…",suggestModels:[{id:"accounts/fireworks/models/glm-5p3-flash",label:"GLM 5.3 Flash",tier:"small",context:1048576},{id:"accounts/fireworks/models/deepseek-v4p1-flash",label:"DeepSeek V4.1 Flash",tier:"mid",context:1048576},{id:"accounts/fireworks/models/minimax-m3",label:"MiniMax M3",tier:"mid",context:512e3},{id:"accounts/fireworks/models/glm-5p3",label:"GLM 5.3",tier:"large",context:1048576},{id:"accounts/fireworks/models/kimi-k3",label:"Kimi K3",tier:"large",context:1048576}]},deepinfra:{label:"DeepInfra",apiKeyName:"DEEPINFRA_API_KEY",keysAt:"https://deepinfra.com/dash/api_keys",suggestModels:[{id:"deepseek-ai/DeepSeek-V4-Flash-0731",label:"DeepSeek V4 Flash",tier:"small",context:1048576},{id:"deepseek-ai/DeepSeek-V4.1-Flash",label:"DeepSeek V4.1 Flash",tier:"mid",context:1048576},{id:"zai-org/GLM-5.2",label:"GLM 5.2",tier:"mid",context:1048576},{id:"zai-org/GLM-5.3",label:"GLM 5.3",tier:"large",context:1048576},{id:"moonshotai/Kimi-K3",label:"Kimi K3",tier:"large",context:1048576}]},cohere:{label:"Cohere",apiKeyName:"COHERE_API_KEY",keysAt:"https://dashboard.cohere.com/api-keys",suggestModels:[{id:"command-r7b-12-2024",label:"Command R7B",tier:"small",context:128e3},{id:"command-a-03-2025",label:"Command A",tier:"mid",context:256e3},{id:"command-a-plus-05-2026",label:"Command A+",tier:"large",context:128e3}]}},u=Object.keys(p).map(e=>({id:e,...p[e]}));e.s(["CATALOG_TEXT",0,"language","CATALOG_TOOL_USE",0,"tool-use","EFFORTS",0,r,"MEDIA_MODEL_PROVIDERS",0,c,"MEDIA_MODEL_PROVIDER_LIST",0,g,"TEXT_MODEL_PROVIDERS",0,p,"TEXT_MODEL_PROVIDER_LIST",0,u,"VENDOR_PROVIDERS",0,{anthropic:"anthropic",openai:"openai",google:"google",spacexai:"xai",mistral:"mistral",deepseek:"deepseek",cohere:"cohere",openrouter:"openrouter"},"canMakeKind",0,(e,t)=>(c[e]?.models[t]?.length??0)>0,"compactAtFor",0,e=>e&&e>0?Math.round(e*i.BOT_RUN.compactHeadroom):i.BOT_RUN.compactAt,"contextWindowOf",0,function(e,t,i=[]){if(n(e))return i.find(e=>e.id===t)?.contextWindow??null;let a=p[e].suggestModels;return a.find(e=>e.id===t)?.context??null},"defaultModelOf",0,e=>{let t;return t=e.defaultTier??"mid",(e.suggestModels.find(e=>e.tier===t)??e.suggestModels[0])?.id},"effortSchema",0,s,"effortsOf",0,function(e,t,i=[]){if(n(e))return i.find(e=>e.id===t)?.efforts??null;let a=p[e].suggestModels;return a.find(e=>e.id===t)?.efforts??null},"isCatalogProvider",0,n,"parseMediaModel",0,function(e){let[t,...i]=(e??"").trim().split("/"),a=m.safeParse({provider:t,model:i.join("/")});return a.success?a.data:null},"parseTextModel",0,function(e){let[t,...i]=(e??"").trim().split("/"),a=l.safeParse({provider:t,model:i.join("/")});return a.success?a.data:null},"textModelProviderSchema",0,a,"textModelRefSchema",0,l])},41444,e=>{"use strict";function t(e,t){let i=e.replace(/\s+/g," ").trim();return i.length>t?`${i.slice(0,t-1).trimEnd()}…`:i}let i=/\[([^\]\n]+)\]\(([^)\s]+)\)/g;e.s(["MARKDOWN_LINK",0,i,"PromiseChain",0,()=>{let e=Promise.resolve();return t=>{let i=e.then(()=>t());return e=i.catch(()=>{}),i}},"captionText",0,function(e){let t=[],a=e.replace(/```[\s\S]*?```/g," ").replace(/!\[([^\]]*)\]\([^)]*\)/g,"$1").replace(i,(e,i,a)=>(t.push(`[${i.replace(/[*_`]/g,"")}](${a})`),`\uE000${t.length-1}\uE000`)),l=[];for(let e of a.split("\n")){let t=e.trim();t&&(/^\|?[\s:|-]+\|[\s:|-]*$|^[-*_]{3,}$/.test(t)||(/\|.*\|/.test(t)&&(t=t.replace(/^\||\|$/g,"").split("|").map(e=>e.trim()).filter(Boolean).join(" · ")),t=t.replace(/^#{1,6}\s+/,"").replace(/^>\s?/,"").replace(/^[-*+]\s+/,"• ").replace(/`([^`]*)`/g,"$1").replace(/(\*\*|__)(\S(?:.*?\S)?)\1/g,"$2").replace(/(^|[^\w*])([*_])(\S(?:[^*_\n]*?\S)?)\2(?![\w*])/g,"$1$3").replace(/\s+/g," "),l.push(t)))}return l.join("\n").replace(/\uE000(\d+)\uE000/g,(e,i)=>t[Number(i)]??"")},"clip",0,t,"errorToString",0,function(e){if(e instanceof Error)return e.message;if("object"!=typeof e||null===e)return String(e);let{message:i,error:a}=e;if("string"==typeof i&&i)return i;if("string"==typeof a&&a)return a;let l=a?.message;if("string"==typeof l&&l)return l;try{return t(JSON.stringify(e),300)}catch{return`${e.constructor?.name??"Object"} thrown without a message`}},"hostOf",0,function(e){try{return new URL(e).hostname.replace(/^www\./,"")}catch{return null}},"plainText",0,function(e){return e.replace(/```[\s\S]*?```/g," ").replace(/`([^`]*)`/g,"$1").replace(/!?\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/^\s{0,3}(#{1,6}\s+|[-*+]\s+|\d+\.\s+|>\s?)/gm,"").replace(/(\*\*|__)(.*?)\1/g,"$2").replace(/(\*|_)(.*?)\1/g,"$2").replace(/^\s*\|?[\s:|-]+\|\s*$/gm," ").replace(/\|/g," ").replace(/\s+/g," ").trim()},"slug",0,function(e){return e.toLowerCase().replace(/[^\p{L}\p{N}]+/gu,"-").replace(/^-+|-+$/g,"").slice(0,40)}])}];
4
+
5
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0qdoc_9._.js.map