thursday-agent 0.9.0 → 0.11.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 (320) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +0 -1
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/routes-manifest.json +0 -6
  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 +2 -2
  16. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  17. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  18. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  19. package/.next/server/app/api/artifact/route.js.nft.json +1 -1
  20. package/.next/server/app/api/bot/keep-working/route.js.nft.json +1 -1
  21. package/.next/server/app/api/bot/memory/files/route.js.nft.json +1 -1
  22. package/.next/server/app/api/bot/memory/route.js.nft.json +1 -1
  23. package/.next/server/app/api/bot/route.js.nft.json +1 -1
  24. package/.next/server/app/api/bot/thread/[id]/route.js.nft.json +1 -1
  25. package/.next/server/app/api/bot/thread/route.js.nft.json +1 -1
  26. package/.next/server/app/api/config/route.js.nft.json +1 -1
  27. package/.next/server/app/api/events/route.js.nft.json +1 -1
  28. package/.next/server/app/api/favicon/[host]/route.js.nft.json +1 -1
  29. package/.next/server/app/api/file/[...path]/route.js.nft.json +1 -1
  30. package/.next/server/app/api/llm-model/catalog/route.js.nft.json +1 -1
  31. package/.next/server/app/api/llm-model/credits/route.js.nft.json +1 -1
  32. package/.next/server/app/api/llm-model/route.js.nft.json +1 -1
  33. package/.next/server/app/api/llm-model/subscription/route.js.nft.json +1 -1
  34. package/.next/server/app/api/mcp/[name]/route.js.nft.json +1 -1
  35. package/.next/server/app/api/mcp/oauth/callback/route.js.nft.json +1 -1
  36. package/.next/server/app/api/mcp/route.js.nft.json +1 -1
  37. package/.next/server/app/api/mcp/tools/route.js.nft.json +1 -1
  38. package/.next/server/app/api/memory/edit/route.js.nft.json +1 -1
  39. package/.next/server/app/api/memory/route.js.nft.json +1 -1
  40. package/.next/server/app/api/reach/route.js +13 -13
  41. package/.next/server/app/api/reach/route.js.nft.json +1 -1
  42. package/.next/server/app/api/routine/route.js.nft.json +1 -1
  43. package/.next/server/app/api/signins/route.js +1 -1
  44. package/.next/server/app/api/signins/route.js.nft.json +1 -1
  45. package/.next/server/app/api/skills/[source]/[name]/route.js.nft.json +1 -1
  46. package/.next/server/app/api/skills/route.js.nft.json +1 -1
  47. package/.next/server/app/api/thursday/call/route.js.nft.json +1 -1
  48. package/.next/server/app/api/thursday/skills/route.js.nft.json +1 -1
  49. package/.next/server/app/api/thursday/text/route.js.nft.json +1 -1
  50. package/.next/server/app/api/thursday/tool-call/route.js +14 -15
  51. package/.next/server/app/api/thursday/tool-call/route.js.nft.json +1 -1
  52. package/.next/server/app/api/workspace/files/route.js.nft.json +1 -1
  53. package/.next/server/app/api/workspace/route.js.nft.json +1 -1
  54. package/.next/server/app/artifact/[...path]/page/server-reference-manifest.json +1 -1
  55. package/.next/server/app/artifact/[...path]/page.js.nft.json +1 -1
  56. package/.next/server/app/artifact/[...path]/page_client-reference-manifest.js +1 -1
  57. package/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  58. package/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  59. package/.next/server/app/page/server-reference-manifest.json +56 -56
  60. package/.next/server/app/page.js +4 -4
  61. package/.next/server/app/page.js.nft.json +1 -1
  62. package/.next/server/app/page_client-reference-manifest.js +1 -1
  63. package/.next/server/app-paths-manifest.json +0 -1
  64. package/.next/server/chunks/[root-of-the-server]__014ydvq._.js +2 -2
  65. package/.next/server/chunks/[root-of-the-server]__0209ah4._.js +7 -5
  66. package/.next/server/chunks/[root-of-the-server]__04r4h-2._.js +4 -2
  67. package/.next/server/chunks/[root-of-the-server]__0542v_d._.js +3 -0
  68. package/.next/server/chunks/[root-of-the-server]__0gewdg9._.js +2 -2
  69. package/.next/server/chunks/[root-of-the-server]__0mrk2it._.js +1 -1
  70. package/.next/server/chunks/[root-of-the-server]__1-swlkw._.js +2 -2
  71. package/.next/server/chunks/[root-of-the-server]__12iddfq._.js +1 -1
  72. package/.next/server/chunks/[root-of-the-server]__1ai5lme._.js +3 -3
  73. package/.next/server/chunks/[root-of-the-server]__1cjxw0-._.js +2 -2
  74. package/.next/server/chunks/{[root-of-the-server]__1fy2g82._.js → [root-of-the-server]__1k3j52n._.js} +1 -1
  75. package/.next/server/chunks/[root-of-the-server]__1kyjt5m._.js +3 -3
  76. package/.next/server/chunks/[root-of-the-server]__1ygplx1._.js +1 -1
  77. package/.next/server/chunks/_05v8k21._.js +3 -1
  78. package/.next/server/chunks/_0awtznl._.js +1 -1
  79. package/.next/server/chunks/_0na2fj1._.js +1 -1
  80. package/.next/server/chunks/_0x-ej3f._.js +17 -17
  81. package/.next/server/chunks/_12-amdu._.js +2 -2
  82. package/.next/server/chunks/_15740dw._.js +60 -0
  83. package/.next/server/chunks/_1dc_d1q._.js +3 -3
  84. package/.next/server/chunks/_1i350l5._.js +3 -1
  85. package/.next/server/chunks/_1jc5g4p._.js +2 -2
  86. package/.next/server/chunks/_1jn-aep._.js +4 -4
  87. package/.next/server/chunks/_1m88lkh._.js +11 -11
  88. package/.next/server/chunks/_1ogqovh._.js +4 -4
  89. package/.next/server/chunks/_1uuucy-._.js +1 -1
  90. package/.next/server/chunks/_1zxp-p6._.js +1 -1
  91. package/.next/server/chunks/features_0rfvely._.js +5 -3
  92. package/.next/server/chunks/ssr/{[root-of-the-server]__1se25x0._.js → [root-of-the-server]__0hpp3nw._.js} +29 -13
  93. package/.next/server/chunks/ssr/[root-of-the-server]__0m7u9j-._.js +3 -0
  94. package/.next/server/chunks/ssr/[root-of-the-server]__0tzekbl._.js +24 -60
  95. package/.next/server/chunks/ssr/[root-of-the-server]__1cz2rz5._.js +3 -0
  96. package/.next/server/chunks/ssr/{[root-of-the-server]__0tvavy9._.js → [root-of-the-server]__1iwyp1e._.js} +1 -1
  97. package/.next/server/chunks/ssr/[root-of-the-server]__1w9hqq8._.js +1 -1
  98. package/.next/server/chunks/ssr/_097-ljd._.js +1 -1
  99. package/.next/server/chunks/ssr/{_1tmu8z-._.js → _0btzccu._.js} +2 -2
  100. package/.next/server/chunks/ssr/_0fqhhwi._.js +1 -1
  101. package/.next/server/chunks/ssr/_0hjzb5o._.js +3 -0
  102. package/.next/server/chunks/ssr/_0ld9_qq._.js +1 -1
  103. package/.next/server/chunks/ssr/{_0urj3mc._.js → _0ouzu9f._.js} +2 -2
  104. package/.next/server/chunks/ssr/{_1-zyvdb._.js → _0u7ko71._.js} +2 -2
  105. package/.next/server/chunks/ssr/{_0ltz2q5._.js → _0wd_o8-._.js} +2 -2
  106. package/.next/server/chunks/ssr/_0ya0cb0._.js +3 -0
  107. package/.next/server/chunks/ssr/_10yyqtk._.js +67 -0
  108. package/.next/server/chunks/ssr/{_1uy0xom._.js → _12eyown._.js} +3 -3
  109. package/.next/server/chunks/ssr/_12mijol._.js +11 -11
  110. package/.next/server/chunks/ssr/_132qkfz._.js +1 -1
  111. package/.next/server/chunks/ssr/_184327j._.js +1 -1
  112. package/.next/server/chunks/ssr/{_1z74dmq._.js → _19ps4p3._.js} +7 -7
  113. package/.next/server/chunks/ssr/{_1flbs77._.js → _1bhy4yg._.js} +2 -2
  114. package/.next/server/chunks/ssr/_1d423aj._.js +7 -5
  115. package/.next/server/chunks/ssr/{_1a-nuxx._.js → _1kd843u._.js} +2 -2
  116. package/.next/server/chunks/ssr/{_0ital-2._.js → _1kq2ye_._.js} +2 -2
  117. package/.next/server/chunks/ssr/_1mqn9mc._.js +1 -1
  118. package/.next/server/chunks/ssr/_1neoj22._.js +1 -1
  119. package/.next/server/chunks/ssr/_1p8xorg._.js +3 -0
  120. package/.next/server/chunks/ssr/{_1x-kojb._.js → _1q683w8._.js} +3 -3
  121. package/.next/server/chunks/ssr/_1tawxu2._.js +3 -0
  122. package/.next/server/chunks/ssr/{_0scf7xy._.js → _1w2oba6._.js} +2 -2
  123. package/.next/server/chunks/ssr/_1xoch6f._.js +1 -1
  124. package/.next/server/chunks/ssr/{_0kjj5ts._.js → _1ybo1hd._.js} +3 -3
  125. package/.next/server/chunks/ssr/features_bot_0s11m4r._.js +3 -0
  126. package/.next/server/chunks/ssr/features_connectors_components_mcp-setting_tsx_0jmbgvp._.js +1 -1
  127. package/.next/server/chunks/ssr/features_memory_components_memory-setting_tsx_0oa43sw._.js +1 -1
  128. package/.next/server/chunks/ssr/features_routine_components_routine-setting_tsx_055fknz._.js +1 -1
  129. package/.next/server/chunks/ssr/features_workspace_00jz2hu._.js +1 -1
  130. package/.next/server/chunks/ssr/{node_modules_1af3w91._.js → node_modules_00pocul._.js} +1 -1
  131. package/.next/server/chunks/ssr/{node_modules_0th357h._.js → node_modules_02zt4az._.js} +1 -1
  132. package/.next/server/chunks/ssr/{node_modules_0jljel9._.js → node_modules_05ojmcl._.js} +1 -1
  133. package/.next/server/chunks/ssr/{node_modules_0wnlddw._.js → node_modules_06i6bli._.js} +1 -1
  134. package/.next/server/chunks/ssr/{node_modules_06bb4q8._.js → node_modules_09dj429._.js} +1 -1
  135. package/.next/server/chunks/ssr/{node_modules_068ws5v._.js → node_modules_0auzgvx._.js} +1 -1
  136. package/.next/server/chunks/ssr/{node_modules_1ogczzz._.js → node_modules_0evjwh1._.js} +1 -1
  137. package/.next/server/chunks/ssr/{node_modules_13kwejm._.js → node_modules_0gmdur8._.js} +1 -1
  138. package/.next/server/chunks/ssr/{node_modules_1s-gb-1._.js → node_modules_0j3te-1._.js} +1 -1
  139. package/.next/server/chunks/ssr/{node_modules_1bucjlk._.js → node_modules_0rbaymq._.js} +1 -1
  140. package/.next/server/chunks/ssr/{node_modules_1wbkzl9._.js → node_modules_0tf8_1e._.js} +1 -1
  141. package/.next/server/chunks/ssr/{node_modules_12et8d5._.js → node_modules_0yqy-0b._.js} +1 -1
  142. package/.next/server/chunks/ssr/{node_modules_1lkix61._.js → node_modules_1-53ebx._.js} +1 -1
  143. package/.next/server/chunks/ssr/{node_modules_03d0rfz._.js → node_modules_1-y9aho._.js} +1 -1
  144. package/.next/server/chunks/ssr/{node_modules_0x630an._.js → node_modules_11bltzp._.js} +1 -1
  145. package/.next/server/chunks/ssr/{node_modules_0uyh_vb._.js → node_modules_18jn2qo._.js} +1 -1
  146. package/.next/server/chunks/ssr/{node_modules_0dzm4um._.js → node_modules_1_te3bu._.js} +1 -1
  147. package/.next/server/chunks/ssr/{node_modules_07rs_p2._.js → node_modules_1c0pg3k._.js} +1 -1
  148. package/.next/server/chunks/ssr/{node_modules_0sgy-dc._.js → node_modules_1en2jx5._.js} +1 -1
  149. package/.next/server/chunks/ssr/{node_modules_0ubdtk-._.js → node_modules_1p-c8cr._.js} +1 -1
  150. package/.next/server/chunks/ssr/{node_modules_1z1lrbk._.js → node_modules_1qe-oxg._.js} +1 -1
  151. package/.next/server/chunks/ssr/{node_modules_04_sbbc._.js → node_modules_1rjt833._.js} +1 -1
  152. package/.next/server/chunks/ssr/{node_modules_0yvz9e0._.js → node_modules_1tzw5sn._.js} +1 -1
  153. package/.next/server/chunks/ssr/{node_modules_1uwg-gz._.js → node_modules_1x6uwvn._.js} +1 -1
  154. package/.next/server/chunks/ssr/{node_modules_0t_ez6-._.js → node_modules_1zqddke._.js} +1 -1
  155. package/.next/server/chunks/ssr/{node_modules_05ybmta._.js → node_modules_211zgim._.js} +1 -1
  156. package/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0r443fh._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0y51bqj._.js} +1 -1
  157. package/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_10wnlbk._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_1sc114e._.js} +1 -1
  158. package/.next/server/middleware-build-manifest.js +3 -3
  159. package/.next/server/pages/404.html +1 -1
  160. package/.next/server/pages/500.html +1 -1
  161. package/.next/server/server-reference-manifest.js +1 -1
  162. package/.next/server/server-reference-manifest.json +57 -57
  163. package/.next/static/chunks/{13ixzheqw7o-w.js → 03-724sj0nk_z.js} +2 -2
  164. package/.next/static/chunks/03bhu4mk8en2q.js +1 -0
  165. package/.next/static/chunks/{3h2e-xv1zxh_f.js → 04imzjhvzw65d.js} +2 -2
  166. package/.next/static/chunks/{27tvv1i-smrck.js → 0gljzv9fz1g7d.js} +1 -1
  167. package/.next/static/chunks/{37j27b3e1gt7r.js → 0h0lythv1ql93.js} +1 -1
  168. package/.next/static/chunks/{2o4dndk0d68do.js → 0hzbj7f48cmx0.js} +1 -1
  169. package/.next/static/chunks/0lwunwbl7u7pt.js +1 -0
  170. package/.next/static/chunks/{0u9ae9k_2g7k3.js → 0r6nwxg4dv83t.js} +1 -1
  171. package/.next/static/chunks/0rn9nbg6aif9f.js +17 -0
  172. package/.next/static/chunks/{3bbzsitgiltnt.js → 0x_w4shtvrrfg.js} +1 -1
  173. package/.next/static/chunks/{2sdwbfs1x5skp.js → 0ympuji_ufypd.js} +1 -1
  174. package/.next/static/chunks/{3t9huugh-5_ps.js → 0zmrz4zfzm4dt.js} +1 -1
  175. package/.next/static/chunks/{0qmd8n52hp-6v.js → 11tlxkr7a_rpc.js} +1 -1
  176. package/.next/static/chunks/{2c64drdevdla3.js → 12scesro428m7.js} +2 -2
  177. package/.next/static/chunks/16s2fx3890_jd.js +65 -0
  178. package/.next/static/chunks/{0oyz95sujd2c7.js → 1qzfgplyo18tc.js} +1 -1
  179. package/.next/static/chunks/{04e-e--5lk26x.js → 1r4zajz14jp9-.js} +1 -1
  180. package/.next/static/chunks/1s6m4cmbn7htf.js +1 -0
  181. package/.next/static/chunks/1wl9t1-3i-q8p.css +1 -0
  182. package/.next/static/chunks/2-asot3p1j3yg.js +1 -0
  183. package/.next/static/chunks/{0u3ktztrzu1fa.js → 2-jn4xscbm-i2.js} +1 -1
  184. package/.next/static/chunks/22h9gvclqtx_2.js +1 -0
  185. package/.next/static/chunks/{337g9g_ux2gj-.js → 26-eblxwnykck.js} +1 -1
  186. package/.next/static/chunks/{43q9cgbuw8krx.js → 2kzwhbuobpkw3.js} +2 -2
  187. package/.next/static/chunks/2m6jd3586ijb-.js +1 -0
  188. package/.next/static/chunks/{0_awn8tucznxc.js → 304q9p54tcgm1.js} +1 -1
  189. package/.next/static/chunks/{1u5i-jti87jbo.js → 35wdx3wt7cg4a.js} +1 -1
  190. package/.next/static/chunks/37unh9460im7v.js +18 -0
  191. package/.next/static/chunks/{01xjer0i_e5z5.js → 39gj5vxz1zpm_.js} +1 -1
  192. package/.next/static/chunks/{427qsc6kahxyo.js → 39vrqy1r_00jc.js} +1 -1
  193. package/.next/static/chunks/{245hb85nsy6j4.js → 3dipmu0mptqum.js} +1 -1
  194. package/.next/static/chunks/3gki-squw28yu.js +1 -0
  195. package/.next/static/chunks/{3obf9n3cxj99k.js → 3jvldk2wvwbge.js} +1 -1
  196. package/.next/static/chunks/{38301ji-85i30.js → 3nnzdl_te20hv.js} +1 -1
  197. package/.next/static/chunks/{2m267diam_vib.js → 3tz4dr0_8pq1-.js} +1 -1
  198. package/.next/static/chunks/{2gocl3dq0_h1s.js → 3x6pggb-2kyrk.js} +1 -1
  199. package/.next/static/chunks/{025bmrgeukcb2.js → 4440mws9jz3mt.js} +1 -1
  200. package/README.md +4 -0
  201. package/app/api/thursday/tool-call/route.ts +1 -15
  202. package/components/ui/radio-group.tsx +2 -2
  203. package/docs/images/demo-still.jpg +0 -0
  204. package/docs/live-calls.md +19 -11
  205. package/features/ai/prompts/live.prompt.ts +51 -26
  206. package/features/ai/prompts/prompt-helper.ts +1 -9
  207. package/features/ai/prompts/thursday.prompt.ts +8 -2
  208. package/features/bot/bot.run.ts +9 -3
  209. package/features/bot/bot.seed.ts +35 -91
  210. package/features/bot/components/bot-room.tsx +0 -6
  211. package/features/bot/components/bot-setting.tsx +4 -4
  212. package/features/bot/components/room-pill.tsx +4 -2
  213. package/features/bot/seed-bots.ts +2 -2
  214. package/features/intro/components/intro.tsx +2 -3
  215. package/features/reach/reach.ts +2 -2
  216. package/features/routine/components/routine-setting.tsx +1 -1
  217. package/features/signins/signins.query.ts +66 -1
  218. package/features/thursday/components/side-captions.tsx +31 -8
  219. package/features/thursday/components/thursday-setting.tsx +5 -5
  220. package/features/thursday/components/thursday.tsx +97 -39
  221. package/features/thursday/components/write-line.tsx +28 -17
  222. package/features/thursday/thursday.action.ts +4 -20
  223. package/features/thursday/thursday.schema.ts +0 -9
  224. package/features/thursday/thursday.store.ts +11 -15
  225. package/features/thursday/thursday.text.ts +10 -8
  226. package/features/thursday/tool-line.ts +17 -6
  227. package/features/thursday/use-call-ring.ts +1 -5
  228. package/features/thursday/use-text-call.ts +37 -21
  229. package/features/thursday/use-thursday.ts +14 -44
  230. package/features/workspace/workspace.ts +4 -2
  231. package/guide/bots.md +13 -3
  232. package/guide/calls.md +7 -5
  233. package/knip.json +1 -0
  234. package/lib/live/live.session.ts +0 -39
  235. package/package.json +1 -1
  236. package/scripts/live-session.test.mts +19 -26
  237. package/seed-skills/analyst/README.md +18 -0
  238. package/seed-skills/analyst/data-report/SKILL.md +60 -0
  239. package/seed-skills/analyst/data-report/references/brief.md +31 -0
  240. package/seed-skills/analyst/data-report/references/company.md +41 -0
  241. package/seed-skills/analyst/data-report/references/comparison.md +42 -0
  242. package/seed-skills/analyst/data-report/references/decision.md +28 -0
  243. package/seed-skills/analyst/data-report/references/market-size.md +49 -0
  244. package/seed-skills/analyst/data-report/references/price-check.md +33 -0
  245. package/seed-skills/analyst/data-report/references/sources.md +51 -0
  246. package/seed-skills/analyst/data-report/references/trend.md +39 -0
  247. package/seed-skills/analyst/data-report/scripts/fetch.mjs +521 -0
  248. package/seed-skills/insta/instagram/SKILL.md +36 -0
  249. package/seed-skills/insta/instagram/references/dm.md +49 -0
  250. package/seed-skills/insta/instagram/references/post.md +74 -0
  251. package/seed-skills/insta/instagram/scripts/compose.mjs +333 -0
  252. package/seed-skills/insta/instagram/scripts/inbox.mjs +163 -0
  253. package/seed-skills/insta/instagram/scripts/lib.mjs +33 -0
  254. package/seed-skills/insta/instagram/scripts/media.mjs +104 -0
  255. package/seed-skills/insta/instagram/scripts/profile.mjs +143 -0
  256. package/seed-skills/insta/instagram/scripts/read.mjs +244 -0
  257. package/seed-skills/insta/instagram/scripts/search.mjs +137 -0
  258. package/seed-skills/insta/instagram/scripts/selectors.mjs +56 -0
  259. package/seed-skills/insta/instagram/scripts/sheet.mjs +43 -0
  260. package/seed-skills/insta/instagram/templates/carousel.html +62 -0
  261. package/seed-skills/marketer/README.md +6 -4
  262. package/seed-skills/marketer/copywriting/SKILL.md +1 -1
  263. package/seed-skills/marketer/emails/SKILL.md +1 -1
  264. package/seed-skills/marketer/launch/SKILL.md +1 -1
  265. package/seed-skills/marketer/product-marketing/SKILL.md +5 -5
  266. package/seed-skills/marketer/seo-audit/SKILL.md +1 -1
  267. package/seed-skills/marketer/social/SKILL.md +1 -1
  268. package/seed-skills/tutor/picture-book/SKILL.md +16 -0
  269. package/seed-skills/tutor/picture-book/book/book.css +181 -0
  270. package/seed-skills/tutor/picture-book/book/book.html +33 -0
  271. package/seed-skills/tutor/picture-book/book/book.js +60 -0
  272. package/seed-skills/tutor/picture-book/references/picture-book.md +104 -0
  273. package/seed-skills/tutor/picture-book/scripts/book-video.mjs +177 -0
  274. package/seed-skills/tutor/picture-book/scripts/book.mjs +98 -0
  275. package/skills/browser/SKILL.md +13 -4
  276. package/skills/browser/references/scripts.md +55 -0
  277. package/skills/browser/scripts/image-size.mjs +30 -0
  278. package/skills/browser/scripts/render.mjs +126 -0
  279. package/skills/browser/scripts/session.mjs +105 -0
  280. package/skills/browser/scripts/sheet.mjs +97 -0
  281. package/skills/browser/scripts/webimage.mjs +105 -0
  282. package/skills/interactive-page/SKILL.md +4 -3
  283. package/skills/interactive-page/scripts/chart.mjs +679 -0
  284. package/skills/interactive-page/scripts/page.mjs +1 -0
  285. package/.next/server/app/api/probe/route/app-paths-manifest.json +0 -3
  286. package/.next/server/app/api/probe/route/build-manifest.json +0 -12
  287. package/.next/server/app/api/probe/route/server-reference-manifest.json +0 -4
  288. package/.next/server/app/api/probe/route.js +0 -10
  289. package/.next/server/app/api/probe/route.js.map +0 -5
  290. package/.next/server/app/api/probe/route.js.nft.json +0 -1
  291. package/.next/server/app/api/probe/route_client-reference-manifest.js +0 -3
  292. package/.next/server/chunks/[root-of-the-server]__012s2o8._.js +0 -3
  293. package/.next/server/chunks/[root-of-the-server]__0z0hc1f._.js +0 -4
  294. package/.next/server/chunks/[root-of-the-server]__1v7-zke._.js +0 -5
  295. package/.next/server/chunks/_0whlpyi._.js +0 -4
  296. package/.next/server/chunks/_next-internal_server_app_api_probe_route_actions_0cqd30j.js +0 -3
  297. package/.next/server/chunks/ssr/[root-of-the-server]__0oo-wlv._.js +0 -103
  298. package/.next/server/chunks/ssr/[root-of-the-server]__0zuns7e._.js +0 -3
  299. package/.next/server/chunks/ssr/_070nv1_._.js +0 -3
  300. package/.next/server/chunks/ssr/_0dshsh4._.js +0 -3
  301. package/.next/server/chunks/ssr/_0l_mcfz._.js +0 -3
  302. package/.next/server/chunks/ssr/_0u5xv6g._.js +0 -3
  303. package/.next/server/chunks/ssr/_157yfrk._.js +0 -3
  304. package/.next/server/chunks/ssr/features_bot_1nr94ks._.js +0 -3
  305. package/.next/static/chunks/06nt9tatr-dug.js +0 -1
  306. package/.next/static/chunks/0ge-hx0ed83a1.js +0 -1
  307. package/.next/static/chunks/0pda_vf-abwvx.js +0 -1
  308. package/.next/static/chunks/0rowp9rx3qbxu.js +0 -18
  309. package/.next/static/chunks/1grkt5gr8pbg1.js +0 -17
  310. package/.next/static/chunks/1yugpvvi8qrbu.js +0 -101
  311. package/.next/static/chunks/27lkanxvtdn09.js +0 -1
  312. package/.next/static/chunks/3fec-aeteddr-.js +0 -1
  313. package/.next/static/chunks/3go3hwp1z2_h2.css +0 -1
  314. package/.next/static/chunks/3h2bun3hcggg8.js +0 -1
  315. package/.next/static/chunks/3j1y335o95mj7.js +0 -1
  316. package/lib/probe.server.ts +0 -17
  317. package/lib/probe.ts +0 -55
  318. /package/.next/static/{u8kJqShUAa49vY7BxAWsw → En1vUPazxcYjPjnnahcN5}/_buildManifest.js +0 -0
  319. /package/.next/static/{u8kJqShUAa49vY7BxAWsw → En1vUPazxcYjPjnnahcN5}/_clientMiddlewareManifest.js +0 -0
  320. /package/.next/static/{u8kJqShUAa49vY7BxAWsw → En1vUPazxcYjPjnnahcN5}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
- module.exports=[418520,a=>a.a(async(b,c)=>{try{var d=await a.y("@libsql/client-6da938047d5fc1cd");a.n(d),c()}catch(a){c(a)}},!0),500874,(a,b,c)=>{b.exports=a.x("buffer",()=>require("buffer"))},233405,(a,b,c)=>{b.exports=a.x("child_process",()=>require("child_process"))},522734,(a,b,c)=>{b.exports=a.x("fs",()=>require("fs"))},874533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},666680,(a,b,c)=>{b.exports=a.x("node:crypto",()=>require("node:crypto"))},902157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},912714,(a,b,c)=>{b.exports=a.x("node:fs/promises",()=>require("node:fs/promises"))},347299,(a,b,c)=>{b.exports=a.x("node:http",()=>require("node:http"))},660526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},750227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},59639,(a,b,c)=>{b.exports=a.x("node:process",()=>require("node:process"))},136340,(a,b,c)=>{b.exports=a.x("node:timers/promises",()=>require("node:timers/promises"))},509656,(a,b,c)=>{b.exports=a.x("node:tty",()=>require("node:tty"))},812057,(a,b,c)=>{b.exports=a.x("node:util",()=>require("node:util"))},446786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},605365,(a,b,c)=>{b.exports=a.x("process",()=>require("process"))},636616,a=>{"use strict";var b=a.i(569572),c=a.i(762008),d=a.i(446957);let e=[{name:"Jarvis",description:"Anything nobody else is for — orders, bookings, forms, the web, this computer",hint:"Takes whatever nobody else is for",recommended:!0,systemPrompt:""},{name:"Planner",description:"Any job that needs a team — decides what done means, assigns the parts, checks them, signs off",hint:"Runs the job: assigns, checks, decides",systemPrompt:`You run the team the way a chief executive runs a company: accountable for the result, not the one who produces it. A job comes in as a request and goes out as one finished result. Between the two you decide what done means, give each part to whoever on Bots is best placed for it, hold every part to what it was asked for, and make the calls nobody else can. A part is yours only when nobody on Bots fits it.
1
+ module.exports=[418520,a=>a.a(async(b,c)=>{try{var d=await a.y("@libsql/client-6da938047d5fc1cd");a.n(d),c()}catch(a){c(a)}},!0),500874,(a,b,c)=>{b.exports=a.x("buffer",()=>require("buffer"))},233405,(a,b,c)=>{b.exports=a.x("child_process",()=>require("child_process"))},522734,(a,b,c)=>{b.exports=a.x("fs",()=>require("fs"))},874533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},666680,(a,b,c)=>{b.exports=a.x("node:crypto",()=>require("node:crypto"))},902157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},912714,(a,b,c)=>{b.exports=a.x("node:fs/promises",()=>require("node:fs/promises"))},347299,(a,b,c)=>{b.exports=a.x("node:http",()=>require("node:http"))},660526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},750227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},59639,(a,b,c)=>{b.exports=a.x("node:process",()=>require("node:process"))},136340,(a,b,c)=>{b.exports=a.x("node:timers/promises",()=>require("node:timers/promises"))},509656,(a,b,c)=>{b.exports=a.x("node:tty",()=>require("node:tty"))},812057,(a,b,c)=>{b.exports=a.x("node:util",()=>require("node:util"))},446786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},605365,(a,b,c)=>{b.exports=a.x("process",()=>require("process"))},636616,a=>{"use strict";var b=a.i(569572),c=a.i(762008),d=a.i(446957);let e=[{name:"Jarvis",description:"Anything nobody else is for — orders, bookings, forms, the web, this computer",hint:"Takes whatever nobody else is for",systemPrompt:""},{name:"Planner",description:"Any job that needs a team — decides what done means, assigns the parts, checks them, signs off",hint:"Runs the job: assigns, checks, decides",systemPrompt:`You run the team the way a chief executive runs a company: accountable for the result, not the one who produces it. A job comes in as a request and goes out as one finished result. Between the two you decide what done means, give each part to whoever on Bots is best placed for it, hold every part to what it was asked for, and make the calls nobody else can. A part is yours only when nobody on Bots fits it.
2
2
 
3
3
  **Decide what done means, first.** Before anything is handed out, send Thursday one \`${c.TOOL_NAMES.send_message}\` question holding everything only the user can decide — which one, how much, by when, in what form — with options where they fit. What you can find out, or the request already says, is not asked. After that, a doubt a reasonable choice settles is yours: decide, write \`Ruling: <what> — <why>\` in the plan, and keep going. Only what cannot be undone goes back to Thursday.
4
4
 
@@ -12,31 +12,31 @@ module.exports=[418520,a=>a.a(async(b,c)=>{try{var d=await a.y("@libsql/client-6
12
12
 
13
13
  **Your memory is how the team gets better.** Keep a file for each: which bot did which kind of part well or badly; briefs that worked; jobs that come back and where their results live. Date each line, merge rather than add, delete what proved wrong. Never a job's contents — those stay in its files. The team changes: a bot you remember may be gone, so staff from Bots as it is now.
14
14
 
15
- **Sign off on one result.** Put the deliverable together from the part files. Your final text says what was done, where it is, who did which part, the rulings you made, and what is unverified and why.`},{name:"Analyst",description:"Research with numbers — prices, markets, trends and comparisons, as tables and charts with sources",hint:"Finds the numbers and draws them",recommended:!0,systemPrompt:`Questions answered with numbers are yours — a market, prices, a comparison, a trend, a budget, what changed and by how much.
15
+ **Sign off on one result.** Put the deliverable together from the part files. Your final text says what was done, where it is, who did which part, the rulings you made, and what is unverified and why.`},{name:"Analyst",description:"Answers with numbers — costs, markets, trends, companies, which to pick — cited and charted",hint:"Finds the numbers and draws them",systemPrompt:`Questions answered with numbers are yours — what something costs, how big a market is, how a figure moved and why, how a company is doing, which option to pick, whether to buy now or wait.
16
16
 
17
- **Size the answer to the ask.** A few numbers are your final text and nothing more. Anything longer is one self-contained page in your folder under \`artifacts/\`, written by hand in minutes: the finding first, then the charts, the tables and the rows behind them, every figure with where it came from — one file the user opens, never a report beside a chart beside a spreadsheet. A built page, with controls that keep state, is only for a reader who will work the numbers themselves.
17
+ **Answer first.** Whoever asked reads your first lines and may stop there, so they hold the answer and the two or three numbers behind it; everything after supports them. A title says the finding ("Rent rose faster than pay"), not the topic.
18
18
 
19
- **Get the real numbers.** Take them from where they are published — a page, an API, a file you were given — never from memory, and take a trend as the series from its source, not one value from today. The rows you used go inside the page, as a table or a download, so every number can be checked.
19
+ **Size the answer to the ask.** A few numbers are your final text and nothing more. A trend, a comparison, or more rows than a few lines hold is one self-contained page in your folder under \`artifacts/\`, written in minutes: the finding, then the charts and tables, every figure with where it came from — one file, never a report beside a chart beside a spreadsheet. A built page, with controls that keep state, is only for a reader who will work the numbers themselves.
20
20
 
21
- **Show, then say.** A trend or a comparison is a chart, many values are a table, one figure is a sentence. Title a chart with what it shows. Inline svg and a little script are enough.
21
+ **Work by a skill.** Before collecting anything, load the method on your Skills list for reports with numbers: it holds the form each kind of question wants, and scripts that fetch series and draw charts, so a chart or a data table is never typed by hand. When nothing there fits the kind of work — a statistical test, a valuation model — find one to install.
22
22
 
23
- **Work by a skill when one fits.** Earnings and financial statements, comparing companies, market sizing, statistics on a dataset — when your Skills list holds a method for the kind of work, load it before you start. Install one only when this job needs it.
23
+ **Get the real numbers.** From where they are published — a filing, an official statistic, the seller's own page, a file you were given — never from memory or an article quoting them, and a trend as the series from its source, not one value from today. Compare like with like: the same period, definition and currency, with the rate and its date when you convert.
24
24
 
25
- **Mark what is not solid.** A figure you could not confirm, a source older than the question, an estimate: say so beside it.
25
+ **Show your working.** A number you derive — a share, a growth rate, a market size — shows its arithmetic; an estimate is a range, with the input it depends on most.
26
26
 
27
- Your final text gives the two or three numbers that answer the question, and the page's path when there is one.`},{name:"Lambda",description:"Turns work that repeats into scripts anyone can run, and runs them on a schedule when allowed",hint:"Makes a job a script and runs it again",recommended:!0,systemPrompt:`Work that will be done again is yours to turn into code — a report pulled every morning, files converted the same way each time, a check run over a list, one value read off a page. Do the job once, then leave a script anyone here can run with one command, and hand that command back.
27
+ **Mark what is not solid.** A figure you could not confirm, a source older than the question, two sources that disagree: say so beside it.
28
28
 
29
- **Read your map first.** Your memory holds one file listing every script you keep: its name, the one line it does, the command that runs it, and the day it last ran clean. Read it before building anything. When something close already exists, run or improve that one and answer with its command — a second script for the same job is how the shelf rots.
29
+ **One bash call per step.** Fetch every series in one call, draw every chart in the next.
30
30
 
31
- **One folder per script**, under \`projects/\`, named for what it does: the script itself, whatever it needs installed beside it (a virtualenv, packages), and a \`README.md\` holding the one-line command and its options. Inputs are arguments, never questions; results go in your folder under \`artifacts/\`. A job that needs three scripts gets three folders, not one folder of loose files. Write the simplest version that gives the right result.
31
+ Your final text gives the answer with its numbers, what is not solid, and the page's path when there is one.`},{name:"Tutor",description:"Explains anything simply, as a picture book — a picture and a line or two a page — or a video of it",hint:"Explains anything like a picture book",systemPrompt:`Explaining is yours — anything someone wants to understand, told so that a person who knows nothing about it follows every step. It ends as a picture book in your folder under \`artifacts/\`: one picture and a line or two a page, as a page to swipe through, a PDF, or a video that reads itself aloud. Load your own \`picture-book\` skill before any step: it holds how a page is written, where each picture comes from, and the scripts that print and voice the book.
32
32
 
33
- **Done means it ran.** Run it on the real input and check what it wrote before you report; a non-zero exit or an empty result is not done. When you change a script, change only what the job needs, and run it again.
33
+ **Ask which one, once.** When the request does not say a page, a PDF or a video, send Thursday one \`${c.TOOL_NAMES.send_message}\` question before writing anything, with the options \`A page\`, \`A PDF\` and \`A video that reads itself\`. A video spends a speech model on every page.
34
34
 
35
- **A schedule is the user's to allow.** When a script should run on its own — every morning, every hour — ask Thursday one \`${c.TOOL_NAMES.send_message}\` question with the command, when it runs and where its output goes. Add it to this machine's scheduler only on a yes, and say how to remove it.
35
+ **Simple, never wrong.** Read what you explain from where it is stated — the official page, a textbook, the thing itself — before the first page. A picture that simplifies still shows how it really works; a comparison that would mislead is left out.
36
36
 
37
- **Keep the map current** as you go: add the line when a script is born, fix it when the command changes, drop it when the folder is gone. A skill is a different thing — every bot carries one in its prompt for as long as it exists — so make a skill only when the user asks for one.
37
+ **Start where they are.** Your memory keeps what the user already knows and how they liked being taught: the level, a picture style, how many pages. Read it before the story, and after a book keep what this one showed, dated.
38
38
 
39
- Your final text gives the command, what it produced this run, and where.`},{name:"Marketer",description:"Marketing — positioning, copy, launch plans, posts, ads, emails, SEO and competitor reviews",hint:"Works out what to say, to whom, and where",systemPrompt:`Marketing work is yours — positioning, page copy, a launch plan, posts, ads, emails, an SEO or competitor review — and it ends as the thing itself in your folder under \`artifacts/\`, ready to paste, post or send.
39
+ Your final text gives the path, and in one sentence the idea the book leaves them with.`},{name:"Marketer",description:"Marketing — positioning, copy, launch plans, posts, ads, emails, SEO and competitor reviews",hint:"Works out what to say, to whom, and where",systemPrompt:`Marketing work is yours — positioning, page copy, a launch plan, posts, ads, emails, an SEO or competitor review — and it ends as the thing itself in your folder under \`artifacts/\`, ready to paste, post or send.
40
40
 
41
41
  **Work by a skill.** Copy, SEO, launches, social posts, ads, emails, competitors and pricing each have written methods worth following. Start from the closest one on your Skills list and load it; only when nothing there fits, find one to install, then load it and follow it. Install only what this job needs.
42
42
 
@@ -44,61 +44,25 @@ Your final text gives the command, what it produced this run, and where.`},{name
44
44
 
45
45
  **Hand off what is not marketing work.** Posting, publishing and sending belong to whoever on Bots does that; when nobody does, deliver it ready to post and say where it goes.
46
46
 
47
- Your final text gives the file's path, the angle you would lead with, and what to test first.`},{name:"Shorts",description:"Vertical short videos — writes the script, draws the scenes, voices them, and builds the mp4",hint:"Turns an idea into a short video",requires:["image","speech"],systemPrompt:`A short is a vertical video watched with the sound off and still followed — it ends as one mp4 in your folder under \`artifacts/\`, 1080x1920.
47
+ Your final text gives the file's path, the angle you would lead with, and what to test first.`},{name:"Insta",description:"Instagram end to end — studies accounts that work, builds posts like theirs, posts them, reads DMs",hint:"Posts like the best in a niche, reads DMs",systemPrompt:`Instagram is yours end to end — find what works in a niche, build the post the same way, put it up, and read the account's messages. Load the \`${b.BROWSER_SKILL}\` skill and your own \`instagram\` skill before any step: its scripts read Instagram in a few lines where a snapshot costs twenty thousand characters, so run them first, chain them in one bash call, and snapshot only when a script says the page changed.
48
48
 
49
- **Check the tools before you plan.** \`${c.TOOL_NAMES.tool_search}\` with \`server: "${b.STUDIO_SERVER}"\` and \`tools: ["${c.STUDIO_TOOLS.generate_image}", "${c.STUDIO_TOOLS.generate_speech}"]\`. A name that does not come back means nobody picked that model; a call that answers that the model cannot make this kind means the wrong one is picked. Either way the tool is not yours to use: send Thursday a \`${c.TOOL_NAMES.send_message}\` question saying to pick an image (or speech) model in Settings › Models, and end your turn before anything else. Never work around it.
49
+ Sign in once, and into an account made for this rather than their own — the session is kept and every later job posts as whoever it is. \`${c.TOOL_NAMES.sign_in_use}\` with \`instagram.com\` before anything else; the login page is \`https://www.instagram.com/accounts/login/\` when nothing is kept.
50
50
 
51
- **Write the script as lines, one line per scene.** Each line is one spoken sentence, short enough to read at a glance. The first line has to earn the next three seconds.
51
+ Settle a post in one question. Ask only what the request leaves open — the topic, how many slides — in a single \`${c.TOOL_NAMES.send_message}\` question to Thursday. Told to decide yourself: \`${c.TOOL_NAMES.web_search}\` for what is current on the topic. Never ask twice for one round.
52
52
 
53
- **Make the voice first, and let it set the timing.** Generate speech for each line on its own, then read each file's duration — that is that scene's length. Never guess it, and never transcribe your own audio to find it.
53
+ **Copy what already works.** Before building for a niche you hold no pattern for, find three or four accounts in it with many followers and study how they post: ratio and slide count, the cover's hook and type, text over the picture, how the background is treated, the caption's shape and hashtag count. Keep that pattern in your memory with the accounts and the date, and build every post in that niche to it until the user says otherwise.
54
54
 
55
- **Draw one picture per scene**, \`aspectRatio: "9:16"\`. Put the whole picture in \`prompt\` — subject, framing, light, palette — the image model sees nothing of this job, and repeat the same look in every prompt or the scenes come back in different hands.
55
+ **A picture tells the truth about what it is.** A post about something that happened uses the real picture — the person in the story, the article's own image, a frame from the source — with the source named on the slide. A post about an idea or a mood can use a drawn one: \`${c.STUDIO_TOOLS.generate_image}\` through \`${c.TOOL_NAMES.tool_call}\` on \`${b.STUDIO_SERVER}\`, the whole picture in \`prompt\` and the same look repeated in each. A drawn picture is never passed off as the event, and one that looks real goes up with the AI label. \`${c.STUDIO_TOOLS.generate_image}\` not coming back from \`${c.TOOL_NAMES.tool_search}\`, or a call answering that the model cannot make images, means there is no image model: go on when real pictures make the post; when it needs a drawn one, send Thursday a \`${c.TOOL_NAMES.send_message}\` question saying to pick an image model in Settings › Models, and end your turn.
56
56
 
57
- **Frames are HTML, not a video filter.** ffmpeg cannot be trusted to draw text: a build may carry no text filter and a machine may carry no font for the language. So build each scene as one HTML file — picture, caption, layout — then \`resize 1080 1920\`, serve it and open it the way the \`${b.BROWSER_SKILL}\` skill does, and \`screenshot\`. Load that skill before any of it. A picture need not fill the frame: it can sit in the middle over a blurred copy of itself, or above a caption card, or a line can be a title card with no picture at all. Keep the caption large and out of the bottom sixth, where a player's own buttons sit.
57
+ **Every slide is HTML rendered at the post's exact size**, one size for the whole carousel: that is how text comes out right and nothing is cut. Look at the finished slides once, side by side, before they go anywhere.
58
58
 
59
- **Assemble with ffmpeg, and expect it to be missing.** Look for it first; when it is absent install a portable build into your project folder rather than onto the machine. Stills and audio joined into an mp4 work in every build — a slow zoom is worth having, a cross-fade only where the build has one. h264 and yuv420p, or phones refuse to play it.
59
+ Write the caption to be read: what this is, in the user's voice, no invented facts, hashtags as the pattern has them.
60
60
 
61
- **Keep the toolchain, not just the video.** Every short is assembled the same way, so leave that as a script under \`projects/\` with a README holding its one command and the shape of the scene list it reads. The next job edits the scene list and runs it. Play what you wrote before you report it.
61
+ **Ask before it goes up.** Fill the composer to its last screen and leave it there; send Thursday a \`${c.TOOL_NAMES.send_message}\` question with the caption as written and the slide paths, options \`Post it\` / \`Change something\`, and press Share only on the first. When the user has said you may post without asking, keep that in your memory with the date and their words, and post. Once it is up, check it went up at the ratio you built; a cut one is deleted and posted again.
62
62
 
63
- **A video model is not the default.** It bills by the second and returns 2-10 seconds a call, so a short cut from clips costs many times one cut from stills. Use it when the user asks for real motion, and then for one scene, not all of them.
63
+ Messages are read without being opened: list the inbox first and open only the threads the job is about, since opening one marks it seen. A reply goes out only when the user asked for one.
64
64
 
65
- Your final text gives the mp4's path, how long it runs, and the opening line.`},{name:"Mail",description:"The user's mail — what arrived, what it needs, what it says, and the reply that goes back",hint:"Reads the inbox and writes the replies",systemPrompt:`Mail is yours — what arrived, what it says, what it needs, and the reply that goes back. The user's mail lives on the web, so this is browser work: load the \`${b.BROWSER_SKILL}\` skill before any step.
66
-
67
- **Sign in once, then never again.** Ask for the kept sign-in first: \`${c.TOOL_NAMES.sign_in_use}\` with the mail site. Nothing kept: the browser they already have open carries their session and meets no robot check; otherwise open the mail site headed and ask Thursday to sign in. Hand it over with \`${c.TOOL_NAMES.sign_in_keep}\` the moment you are in.
68
-
69
- **Reading a web app costs tokens. Work like it does.**
70
- - **Filter in the url.** Put the query there — unread, a sender, a date range, a label, what to leave out — so twenty rows come back rather than five hundred. Scrolling a list to find something is the expensive way.
71
- - **Extract, never snapshot, to read a list.** \`--raw eval\` returns one compact line per message — sender, subject, date, its link — and nothing else. A snapshot of a busy mail page runs near 20,000 characters, far past what one run shows: you get its head and tail, the rows you wanted sit in the middle, and all of it is paid for.
72
- - **One bash call, not five.** Chain the steps of a look with \`&&\`: load the state, go, extract. A turn per command is where the minutes go.
73
- - **Long text goes to a file.** Redirect a body or a thread into the job's scratch folder and read back only what you need with \`grep\` or \`sed\`. A file costs nothing until it is read.
74
-
75
- **Keep the recipe, not the result.** A mail site's class names are generated and they change, so the selector that worked is worth more than any answer it gave. Keep one memory file holding the url shapes for the inbox and for a search, the \`--raw eval\` one-liner that lists messages, the one that reads an open message, and the date each was last seen working. Read that file before you open anything and work from it: the first job pays for a snapshot, the ones after it should not.
76
-
77
- **An empty extract means the page changed, not that there is no mail.** Then, and only then, snapshot once, work out the new one-liner, replace that line with today's date, and carry on. Never run a recipe twice after it has come back empty.
78
-
79
- Send Thursday a \`${c.TOOL_NAMES.send_message}\` question when a reply turns on a fact only they have, or when the decision is theirs rather than yours.
80
-
81
- Your final text says what is waiting, what you did about it, and the path of anything you wrote.`},{name:"Insta",description:"Instagram end to end — settles what the post is, builds the slides, writes it, and puts it up",hint:"Builds the slides, writes the caption, posts it",systemPrompt:`One job takes a post from nothing to live on instagram.com — settle what it is, sign in, build it, write it, put it up. Load the \`${b.BROWSER_SKILL}\` skill before any browser step.
82
-
83
- Settle it in one question. Ask only for what the request leaves open, in a single \`${c.TOOL_NAMES.send_message}\` question to Thursday: the topic, how many slides, and whether they name the music or you pick. A request that already says its topic is not asked for it again. Told to decide yourself: \`${c.TOOL_NAMES.web_search}\` for what is current on that topic, a cover and three slides, and a recent track from Instagram's own list. Never ask twice for one round.
84
-
85
- Sign in once, and into an account made for this rather than their own — the session is kept and every later job posts as whoever it is. The app keeps it: \`${c.TOOL_NAMES.sign_in_use}\` with \`instagram.com\` before anything else, the login page is \`https://www.instagram.com/accounts/login/\` when nothing is kept, and the skill carries the rest.
86
-
87
- Anything covering the screen is closed before you read what is under it. It is in the way, not a sign-in problem.
88
-
89
- **A slide is built, not drawn.** Every slide is one HTML file screenshotted at its exact size — \`resize\`, serve it and open it the way the skill does, \`screenshot\`. That is how text comes out right, since image models mangle it, and how every slide lands on one size, which a carousel needs: Instagram crops the rest to the first. Feed is 1080x1350 (4:5) or 1080x1080 (1:1), a story or reel 1080x1920. Pick one for the post and build every slide at it.
90
-
91
- **A picture goes inside a slide**, as its background with \`object-fit: cover\`, and never stands in for one: the image model has no 4:5, so what it returns is never the right size alone. Draw it when the post is an idea or a mood — \`${c.STUDIO_TOOLS.generate_image}\` through \`${c.TOOL_NAMES.tool_call}\` on \`${b.STUDIO_SERVER}\`, the whole picture in \`prompt\` (subject, framing, light, palette; the model sees nothing of this job) and the same look repeated in each. Take the real one off the web when the post is about something that happened, since a drawn picture passed off as the event is a lie: open the page, \`curl -o\` its image url into your folder, and name the source. Blur or darken a photo under text until the text reads. A slide can also be text alone.
92
-
93
- \`${c.STUDIO_TOOLS.generate_image}\` not coming back from \`${c.TOOL_NAMES.tool_search}\`, or a call answering that the model cannot make images, both mean there is no image model — calling again changes nothing. When real pictures and text make the post, go on without it. When the post needs a drawn one, send Thursday a \`${c.TOOL_NAMES.send_message}\` question saying to pick an image model in Settings › Models, and end your turn.
94
-
95
- Write the caption to be read: what this is, in the user's voice, no invented facts, no wall of tags.
96
-
97
- The composer is the one part not to memorise. Its refs change on every snapshot, so take a fresh one at each step and read what is actually there: Create, the files, crop and edit, music, caption — and stop on the last screen, before Share. **The crop step starts at square**, whatever you uploaded: set it to your slides' ratio before going on, or they go up cut. Music: search the name they gave, or take a current one that fits. No music step on this format means there is none.
98
-
99
- Ask before it goes up: a \`${c.TOOL_NAMES.send_message}\` question to Thursday with the caption as written, the slide paths and the track; options \`Post it\` / \`Change something\`, and Share only on the first. When the user has said you may post without asking, keep that in your memory with the date and their words, and post.
100
-
101
- Once it is up, open the post and check its image is the size you built; a cut one is deleted and posted again. Answer with the post's url and the file paths.`}];a.s(["findBotSeed",0,a=>e.find(b=>b.name===a)??null,"rollSeedIcons",0,()=>(0,d.randomBotIcons)(e.length)])},451208,a=>{"use strict";var b=a.i(137936),c=a.i(569572),d=a.i(821415),e=a.i(941981),f=a.i(225689),g=a.i(293480),h=a.i(874533),i=a.i(912714),j=a.i(812057);let k={darwin:a=>["open",[a]],win32:a=>["cmd.exe",["/c","start","",a]],linux:a=>["xdg-open",[a]]};async function l(a){await (0,i.access)(a);let b=k[process.platform]?.(a);if(!b)throw Error(`Opening files is not wired up on ${process.platform}.`);let[c,d]=b;await (0,j.promisify)(h.execFile)(c,d,{windowsHide:!0})}var m=a.i(182248),n=a.i(713095);let o=(0,f.serverAction)(async a=>{let b=a.trim();b||(0,g.publicError)("Which file?");let c=(await (0,d.openWorkspace)()).resolve(b);try{await l(c)}catch(a){(0,g.publicError)(`Could not open ${b}: ${(0,m.errorToString)(a)}`)}}),p=(0,f.serverAction)(async a=>{let b=a.trim();b||(0,g.publicError)("Which file?"),await (0,e.deleteWorkspaceFile)(b)}),q=(0,f.serverAction)(async()=>(0,e.emptyScratch)()),r=(0,f.serverAction)(async a=>{a instanceof FormData||(0,g.publicError)("No files came with that.");let b=a.getAll("file").filter(a=>a instanceof File&&a.size>0);b.length||(0,g.publicError)("No files came with that."),b.length>c.GIVEN_FILES.perMessage&&(0,g.publicError)(`At most ${c.GIVEN_FILES.perMessage} files at a time.`);let d=b.find(a=>a.size>c.GIVEN_FILES.maxBytes);return d&&(0,g.publicError)(`${d.name} is larger than ${Math.round(c.GIVEN_FILES.maxBytes/1024/1024)} MB.`),(0,e.keepGivenFiles)(b)});(0,n.ensureServerEntryExports)([o,p,q,r]),(0,b.registerServerReference)(o,"7f284980eddf0dc50d6dc014ce41f10d9aaa77294a",null),(0,b.registerServerReference)(p,"7f386fcb5dafb367fade673d0783e6ab91d1cb713f",null),(0,b.registerServerReference)(q,"7fc68b7e34326b980091695084d6ee2298e41557f2",null),(0,b.registerServerReference)(r,"7fe2d70a70024f0fa498ebfe3c0e167bd1c00b608e",null),a.s(["deleteWorkspaceFileAction",0,p,"emptyScratchAction",0,q,"giveFilesAction",0,r,"openFileAction",0,o],451208)},941981,a=>{"use strict";var b=a.i(912714),c=a.i(750227),d=a.i(569572),e=a.i(293480);a.i(684321);var f=a.i(821415);async function g(a){let e=await (0,f.openWorkspace)(),g=new Set(await (0,b.readdir)((0,c.join)(f.WORKSPACE,d.GIVEN_FILES.dir)).catch(()=>[])),h=[];for(let b of a){let a=b.name.normalize("NFC").replace(/[^\p{L}\p{N}._-]+/gu,"-").replace(/^[-.]+|-+$/g,"")||"file",c=a.lastIndexOf("."),f=c>0?a.slice(0,c):a,i=c>0?a.slice(c):"",j=a;for(let a=2;g.has(j);a++)j=`${f}-${a}${i}`;g.add(j);let k=`${d.GIVEN_FILES.dir}/${j}`;await e.writeFile(k,Buffer.from(await b.arrayBuffer())),h.push(k)}return h}async function h(a){let c=await (0,f.insideWorkspace)(a);c||(0,e.publicError)("Outside the workspace");let d=await (0,b.stat)(c).catch(()=>null);d||(0,e.publicError)("File not found"),d.isFile()||(0,e.publicError)("That is a folder, not a file"),await (0,b.rm)(c)}async function i(){let a=(0,c.join)(f.WORKSPACE,d.PATHS.scratch);for(let d of(await (0,b.readdir)(a).catch(()=>[])))await (0,b.rm)((0,c.join)(a,d),{recursive:!0,force:!0})}a.s(["deleteWorkspaceFile",0,h,"emptyScratch",0,i,"keepGivenFiles",0,g])},225689,a=>{"use strict";a.i(570396);var b=a.i(673727),c=a.i(975160),d=a.i(176668),e=a.i(293480);let f=a=>!!a&&"object"==typeof a&&(!0===a.$ok||!1===a.$ok),g=a=>f(a)&&a.$ok,h=a=>({$ok:!0,data:a}),i=a=>({$ok:!1,message:a});async function j(a){try{let b=h(await a());for(;g(b)&&f(b.data);)b=b.data;return b}catch(a){if((0,b.unstable_rethrow)(a),(0,e.isPublicError)(a))return i(a.message);if(a instanceof c.ZodError)return i(a.issues[0]?.message);if(f(a)&&!a.$ok)return a;return d.logger.error(a),i()}}a.s(["serverAction",0,a=>(...b)=>j(()=>a(...b))],225689)},293480,a=>{"use strict";class b extends Error{message;constructor(a){super(a),this.message=a}}a.s(["isPublicError",0,a=>a instanceof b,"publicError",0,function(a){throw new b(a)}])},484261,(a,b,c)=>{"use strict";var d=Object.create,e=Object.defineProperty,f=Object.getOwnPropertyDescriptor,g=Object.getOwnPropertyNames,h=Object.getPrototypeOf,i=Object.prototype.hasOwnProperty,j=(a,b,c,d)=>{if(b&&"object"==typeof b||"function"==typeof b)for(let h of g(b))i.call(a,h)||h===c||e(a,h,{get:()=>b[h],enumerable:!(d=f(b,h))||d.enumerable});return a},k=(a,b,c)=>(c=null!=a?d(h(a)):{},j(!b&&a&&a.__esModule?c:e(c,"default",{value:a,enumerable:!0}),a)),l={},m={isValidAccessToken:()=>u,readAuthConfig:()=>s,writeAuthConfig:()=>t};for(var n in m)e(l,n,{get:m[n],enumerable:!0});b.exports=j(e({},"__esModule",{value:!0}),l);var o=k(a.r(522734)),p=k(a.r(814747)),q=a.r(72918);function r(){let a=(0,q.getVercelDataDir)();if(!a)throw Error(`Unable to find Vercel CLI data directory. Your platform: ${process.platform}. Supported: darwin, linux, win32.`);return p.join(a,"auth.json")}function s(){try{let a=r();if(!o.existsSync(a))return null;let b=o.readFileSync(a,"utf8");if(!b)return null;return JSON.parse(b)}catch(a){return null}}function t(a){let b=r(),c=p.dirname(b);o.existsSync(c)||o.mkdirSync(c,{mode:504,recursive:!0}),o.writeFileSync(b,JSON.stringify(a,null,2),{mode:384})}function u(a,b=0){if(!a.token)return!1;if("number"!=typeof a.expiresAt)return!0;let c=Math.floor(Date.now()/1e3);return a.expiresAt>=c+b/1e3}},351275,(a,b,c)=>{"use strict";var d=Object.defineProperty,e=Object.getOwnPropertyDescriptor,f=Object.getOwnPropertyNames,g=Object.prototype.hasOwnProperty,h={},i={AccessTokenMissingError:()=>k,RefreshAccessTokenFailedError:()=>l};for(var j in i)d(h,j,{get:i[j],enumerable:!0});b.exports=((a,b,c)=>{if(b&&"object"==typeof b||"function"==typeof b)for(let h of f(b))g.call(a,h)||void 0===h||d(a,h,{get:()=>b[h],enumerable:!(c=e(b,h))||c.enumerable});return a})(d({},"__esModule",{value:!0}),h);class k extends Error{constructor(){super("No authentication found. Please log in with the Vercel CLI (vercel login)."),this.name="AccessTokenMissingError"}}class l extends Error{constructor(a){super("Failed to refresh authentication token.",{cause:a}),this.name="RefreshAccessTokenFailedError"}}},719472,(a,b,c)=>{"use strict";var d=Object.defineProperty,e=Object.getOwnPropertyDescriptor,f=Object.getOwnPropertyNames,g=Object.prototype.hasOwnProperty,h={},i={processTokenResponse:()=>p,refreshTokenRequest:()=>o};for(var j in i)d(h,j,{get:i[j],enumerable:!0});b.exports=((a,b,c)=>{if(b&&"object"==typeof b||"function"==typeof b)for(let h of f(b))g.call(a,h)||void 0===h||d(a,h,{get:()=>b[h],enumerable:!(c=e(b,h))||c.enumerable});return a})(d({},"__esModule",{value:!0}),h);var k=a.r(446786);let l=`@vercel/oidc node-${process.version} ${(0,k.platform)()} (${(0,k.arch)()}) ${(0,k.hostname)()}`,m=null;async function n(){if(m)return m;let a=await fetch("https://vercel.com/.well-known/openid-configuration",{headers:{"user-agent":l}});if(!a.ok)throw Error("Failed to discover OAuth endpoints");let b=await a.json();if(!b||"string"!=typeof b.token_endpoint)throw Error("Invalid OAuth discovery response");let c=b.token_endpoint;return m=c,c}async function o(a){let b=await n();return await fetch(b,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded","user-agent":l},body:new URLSearchParams({client_id:"cl_HYyOPBNtFMfHhaUn9L4QPfTZz6TP47bp",grant_type:"refresh_token",...a})})}async function p(a){let b=await a.json();return a.ok?"object"!=typeof b||null===b?[Error("Invalid token response")]:"string"!=typeof b.access_token?[Error("Missing access_token in response")]:"Bearer"!==b.token_type?[Error("Invalid token_type in response")]:"number"!=typeof b.expires_in?[Error("Missing expires_in in response")]:[null,b]:[Error("object"==typeof b&&b&&"error"in b?String(b.error):"Token refresh failed")]}},580949,(a,b,c)=>{"use strict";var d=Object.defineProperty,e=Object.getOwnPropertyDescriptor,f=Object.getOwnPropertyNames,g=Object.prototype.hasOwnProperty,h={},i={VercelOidcTokenError:()=>k};for(var j in i)d(h,j,{get:i[j],enumerable:!0});b.exports=((a,b,c)=>{if(b&&"object"==typeof b||"function"==typeof b)for(let h of f(b))g.call(a,h)||void 0===h||d(a,h,{get:()=>b[h],enumerable:!(c=e(b,h))||c.enumerable});return a})(d({},"__esModule",{value:!0}),h);class k extends Error{constructor(a,b){super(a),this.name="VercelOidcTokenError",this.cause=b}toString(){return this.cause?`${this.name}: ${this.message}: ${this.cause}`:`${this.name}: ${this.message}`}}},50067,(a,b,c)=>{"use strict";var d=Object.create,e=Object.defineProperty,f=Object.getOwnPropertyDescriptor,g=Object.getOwnPropertyNames,h=Object.getPrototypeOf,i=Object.prototype.hasOwnProperty,j=(a,b,c,d)=>{if(b&&"object"==typeof b||"function"==typeof b)for(let h of g(b))i.call(a,h)||h===c||e(a,h,{get:()=>b[h],enumerable:!(d=f(b,h))||d.enumerable});return a},k=(a,b,c)=>(c=null!=a?d(h(a)):{},j(!b&&a&&a.__esModule?c:e(c,"default",{value:a,enumerable:!0}),a)),l={},m={findRootDir:()=>s,getUserDataDir:()=>t};for(var n in m)e(l,n,{get:m[n],enumerable:!0});b.exports=j(e({},"__esModule",{value:!0}),l);var o=k(a.r(814747)),p=k(a.r(522734)),q=k(a.r(446786)),r=a.r(580949);function s(){try{let a=process.cwd();for(;a!==o.default.dirname(a);){let b=o.default.join(a,".vercel");if(p.default.existsSync(b))return a;a=o.default.dirname(a)}}catch(a){throw new r.VercelOidcTokenError("Token refresh only supported in node server environments")}return null}function t(){if(process.env.XDG_DATA_HOME)return process.env.XDG_DATA_HOME;switch(q.default.platform()){case"darwin":return o.default.join(q.default.homedir(),"Library/Application Support");case"linux":return o.default.join(q.default.homedir(),".local/share");case"win32":if(process.env.LOCALAPPDATA)return process.env.LOCALAPPDATA;return null;default:return null}}},72918,(a,b,c)=>{"use strict";var d=Object.create,e=Object.defineProperty,f=Object.getOwnPropertyDescriptor,g=Object.getOwnPropertyNames,h=Object.getPrototypeOf,i=Object.prototype.hasOwnProperty,j=(a,b,c,d)=>{if(b&&"object"==typeof b||"function"==typeof b)for(let h of g(b))i.call(a,h)||h===c||e(a,h,{get:()=>b[h],enumerable:!(d=f(b,h))||d.enumerable});return a},k=(a,b,c)=>(c=null!=a?d(h(a)):{},j(!b&&a&&a.__esModule?c:e(c,"default",{value:a,enumerable:!0}),a)),l={},m={assertVercelOidcTokenResponse:()=>y,findProjectInfo:()=>z,getTokenPayload:()=>C,getVercelDataDir:()=>v,getVercelOidcToken:()=>x,getVercelToken:()=>w,isExpired:()=>D,loadToken:()=>B,saveToken:()=>A};for(var n in m)e(l,n,{get:m[n],enumerable:!0});b.exports=j(e({},"__esModule",{value:!0}),l);var o=k(a.r(814747)),p=k(a.r(522734)),q=a.r(580949),r=a.r(50067),s=a.r(484261),t=a.r(719472),u=a.r(351275);function v(){let a=(0,r.getUserDataDir)();return a?o.join(a,"com.vercel.cli"):null}async function w(a){let b=(0,s.readAuthConfig)();if(!b?.token)throw new u.AccessTokenMissingError;if((0,s.isValidAccessToken)(b,a?.expirationBufferMs))return b.token;if(!b.refreshToken)throw(0,s.writeAuthConfig)({}),new u.RefreshAccessTokenFailedError("No refresh token available");try{let a=await (0,t.refreshTokenRequest)({refresh_token:b.refreshToken}),[c,d]=await (0,t.processTokenResponse)(a);if(c||!d)throw(0,s.writeAuthConfig)({}),new u.RefreshAccessTokenFailedError(c);let e={token:d.access_token,expiresAt:Math.floor(Date.now()/1e3)+d.expires_in};return d.refresh_token&&(e.refreshToken=d.refresh_token),(0,s.writeAuthConfig)(e),e.token}catch(a){if((0,s.writeAuthConfig)({}),a instanceof u.AccessTokenMissingError||a instanceof u.RefreshAccessTokenFailedError)throw a;throw new u.RefreshAccessTokenFailedError(a)}}async function x(a,b,c){let d=`https://api.vercel.com/v1/projects/${b}/token?source=vercel-oidc-refresh${c?`&teamId=${c}`:""}`,e=await fetch(d,{method:"POST",headers:{Authorization:`Bearer ${a}`}});if(!e.ok)throw new q.VercelOidcTokenError(`Failed to refresh OIDC token: ${e.statusText}`);let f=await e.json();return y(f),f}function y(a){if(!a||"object"!=typeof a)throw TypeError("Vercel OIDC token is malformed. Expected an object. Please run `vc env pull` and try again");if(!("token"in a)||"string"!=typeof a.token)throw TypeError("Vercel OIDC token is malformed. Expected a string-valued token property. Please run `vc env pull` and try again")}function z(){let a=(0,r.findRootDir)();if(!a)throw new q.VercelOidcTokenError("Unable to find project root directory. Have you linked your project with `vc link?`");let b=o.join(a,".vercel","project.json");if(!p.existsSync(b))throw new q.VercelOidcTokenError("project.json not found, have you linked your project with `vc link?`");let c=JSON.parse(p.readFileSync(b,"utf8"));if("string"!=typeof c.projectId&&"string"!=typeof c.orgId)throw TypeError("Expected a string-valued projectId property. Try running `vc link` to re-link your project.");return{projectId:c.projectId,teamId:c.orgId}}function A(a,b){let c=(0,r.getUserDataDir)();if(!c)throw new q.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let d=o.join(c,"com.vercel.token",`${b}.json`),e=JSON.stringify(a);p.mkdirSync(o.dirname(d),{mode:504,recursive:!0}),p.writeFileSync(d,e),p.chmodSync(d,432)}function B(a){let b=(0,r.getUserDataDir)();if(!b)throw new q.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let c=o.join(b,"com.vercel.token",`${a}.json`);if(!p.existsSync(c))return null;let d=JSON.parse(p.readFileSync(c,"utf8"));return y(d),d}function C(a){let b=a.split(".");if(3!==b.length)throw new q.VercelOidcTokenError("Invalid token. Please run `vc env pull` and try again");let c=b[1].replace(/-/g,"+").replace(/_/g,"/"),d=c.padEnd(c.length+(4-c.length%4)%4,"=");return JSON.parse(Buffer.from(d,"base64").toString("utf8"))}function D(a,b=0){return 1e3*a.exp<Date.now()+b}},713095,(a,b,c)=>{"use strict";function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
65
+ Answer with the post's url and the file paths, or with what the messages say and what they need.`}];a.s(["findBotSeed",0,a=>e.find(b=>b.name===a)??null,"rollSeedIcons",0,()=>(0,d.randomBotIcons)(e.length)])},451208,a=>{"use strict";var b=a.i(137936),c=a.i(569572),d=a.i(821415),e=a.i(941981),f=a.i(225689),g=a.i(293480),h=a.i(874533),i=a.i(912714),j=a.i(812057);let k={darwin:a=>["open",[a]],win32:a=>["cmd.exe",["/c","start","",a]],linux:a=>["xdg-open",[a]]};async function l(a){await (0,i.access)(a);let b=k[process.platform]?.(a);if(!b)throw Error(`Opening files is not wired up on ${process.platform}.`);let[c,d]=b;await (0,j.promisify)(h.execFile)(c,d,{windowsHide:!0})}var m=a.i(182248),n=a.i(713095);let o=(0,f.serverAction)(async a=>{let b=a.trim();b||(0,g.publicError)("Which file?");let c=(await (0,d.openWorkspace)()).resolve(b);try{await l(c)}catch(a){(0,g.publicError)(`Could not open ${b}: ${(0,m.errorToString)(a)}`)}}),p=(0,f.serverAction)(async a=>{let b=a.trim();b||(0,g.publicError)("Which file?"),await (0,e.deleteWorkspaceFile)(b)}),q=(0,f.serverAction)(async()=>(0,e.emptyScratch)()),r=(0,f.serverAction)(async a=>{a instanceof FormData||(0,g.publicError)("No files came with that.");let b=a.getAll("file").filter(a=>a instanceof File&&a.size>0);b.length||(0,g.publicError)("No files came with that."),b.length>c.GIVEN_FILES.perMessage&&(0,g.publicError)(`At most ${c.GIVEN_FILES.perMessage} files at a time.`);let d=b.find(a=>a.size>c.GIVEN_FILES.maxBytes);return d&&(0,g.publicError)(`${d.name} is larger than ${Math.round(c.GIVEN_FILES.maxBytes/1024/1024)} MB.`),(0,e.keepGivenFiles)(b)});(0,n.ensureServerEntryExports)([o,p,q,r]),(0,b.registerServerReference)(o,"7f8d58bd1288271da847b9deff4bb67295444fd389",null),(0,b.registerServerReference)(p,"7f018e766e37c74d20596a96676bff15026135e01b",null),(0,b.registerServerReference)(q,"7f621cca3daf8c0930d78dcfd588de1da610762acd",null),(0,b.registerServerReference)(r,"7f3eea94981f7506ef292d2f74a1b89d2278978bf3",null),a.s(["deleteWorkspaceFileAction",0,p,"emptyScratchAction",0,q,"giveFilesAction",0,r,"openFileAction",0,o],451208)},941981,a=>{"use strict";var b=a.i(912714),c=a.i(750227),d=a.i(569572),e=a.i(293480);a.i(684321);var f=a.i(821415);async function g(a){let e=await (0,f.openWorkspace)(),g=new Set(await (0,b.readdir)((0,c.join)(f.WORKSPACE,d.GIVEN_FILES.dir)).catch(()=>[])),h=[];for(let b of a){let a=b.name.normalize("NFC").replace(/[^\p{L}\p{N}._-]+/gu,"-").replace(/^[-.]+|-+$/g,"")||"file",c=a.lastIndexOf("."),f=c>0?a.slice(0,c):a,i=c>0?a.slice(c):"",j=a;for(let a=2;g.has(j);a++)j=`${f}-${a}${i}`;g.add(j);let k=`${d.GIVEN_FILES.dir}/${j}`;await e.writeFile(k,Buffer.from(await b.arrayBuffer())),h.push(k)}return h}async function h(a){let c=await (0,f.insideWorkspace)(a);c||(0,e.publicError)("Outside the workspace");let d=await (0,b.stat)(c).catch(()=>null);d||(0,e.publicError)("File not found"),d.isFile()||(0,e.publicError)("That is a folder, not a file"),await (0,b.rm)(c)}async function i(){let a=(0,c.join)(f.WORKSPACE,d.PATHS.scratch);for(let d of(await (0,b.readdir)(a).catch(()=>[])))await (0,b.rm)((0,c.join)(a,d),{recursive:!0,force:!0})}a.s(["deleteWorkspaceFile",0,h,"emptyScratch",0,i,"keepGivenFiles",0,g])},225689,a=>{"use strict";a.i(570396);var b=a.i(673727),c=a.i(975160),d=a.i(176668),e=a.i(293480);let f=a=>!!a&&"object"==typeof a&&(!0===a.$ok||!1===a.$ok),g=a=>f(a)&&a.$ok,h=a=>({$ok:!0,data:a}),i=a=>({$ok:!1,message:a});async function j(a){try{let b=h(await a());for(;g(b)&&f(b.data);)b=b.data;return b}catch(a){if((0,b.unstable_rethrow)(a),(0,e.isPublicError)(a))return i(a.message);if(a instanceof c.ZodError)return i(a.issues[0]?.message);if(f(a)&&!a.$ok)return a;return d.logger.error(a),i()}}a.s(["serverAction",0,a=>(...b)=>j(()=>a(...b))],225689)},293480,a=>{"use strict";class b extends Error{message;constructor(a){super(a),this.message=a}}a.s(["isPublicError",0,a=>a instanceof b,"publicError",0,function(a){throw new b(a)}])},484261,(a,b,c)=>{"use strict";var d=Object.create,e=Object.defineProperty,f=Object.getOwnPropertyDescriptor,g=Object.getOwnPropertyNames,h=Object.getPrototypeOf,i=Object.prototype.hasOwnProperty,j=(a,b,c,d)=>{if(b&&"object"==typeof b||"function"==typeof b)for(let h of g(b))i.call(a,h)||h===c||e(a,h,{get:()=>b[h],enumerable:!(d=f(b,h))||d.enumerable});return a},k=(a,b,c)=>(c=null!=a?d(h(a)):{},j(!b&&a&&a.__esModule?c:e(c,"default",{value:a,enumerable:!0}),a)),l={},m={isValidAccessToken:()=>u,readAuthConfig:()=>s,writeAuthConfig:()=>t};for(var n in m)e(l,n,{get:m[n],enumerable:!0});b.exports=j(e({},"__esModule",{value:!0}),l);var o=k(a.r(522734)),p=k(a.r(814747)),q=a.r(72918);function r(){let a=(0,q.getVercelDataDir)();if(!a)throw Error(`Unable to find Vercel CLI data directory. Your platform: ${process.platform}. Supported: darwin, linux, win32.`);return p.join(a,"auth.json")}function s(){try{let a=r();if(!o.existsSync(a))return null;let b=o.readFileSync(a,"utf8");if(!b)return null;return JSON.parse(b)}catch(a){return null}}function t(a){let b=r(),c=p.dirname(b);o.existsSync(c)||o.mkdirSync(c,{mode:504,recursive:!0}),o.writeFileSync(b,JSON.stringify(a,null,2),{mode:384})}function u(a,b=0){if(!a.token)return!1;if("number"!=typeof a.expiresAt)return!0;let c=Math.floor(Date.now()/1e3);return a.expiresAt>=c+b/1e3}},351275,(a,b,c)=>{"use strict";var d=Object.defineProperty,e=Object.getOwnPropertyDescriptor,f=Object.getOwnPropertyNames,g=Object.prototype.hasOwnProperty,h={},i={AccessTokenMissingError:()=>k,RefreshAccessTokenFailedError:()=>l};for(var j in i)d(h,j,{get:i[j],enumerable:!0});b.exports=((a,b,c)=>{if(b&&"object"==typeof b||"function"==typeof b)for(let h of f(b))g.call(a,h)||void 0===h||d(a,h,{get:()=>b[h],enumerable:!(c=e(b,h))||c.enumerable});return a})(d({},"__esModule",{value:!0}),h);class k extends Error{constructor(){super("No authentication found. Please log in with the Vercel CLI (vercel login)."),this.name="AccessTokenMissingError"}}class l extends Error{constructor(a){super("Failed to refresh authentication token.",{cause:a}),this.name="RefreshAccessTokenFailedError"}}},719472,(a,b,c)=>{"use strict";var d=Object.defineProperty,e=Object.getOwnPropertyDescriptor,f=Object.getOwnPropertyNames,g=Object.prototype.hasOwnProperty,h={},i={processTokenResponse:()=>p,refreshTokenRequest:()=>o};for(var j in i)d(h,j,{get:i[j],enumerable:!0});b.exports=((a,b,c)=>{if(b&&"object"==typeof b||"function"==typeof b)for(let h of f(b))g.call(a,h)||void 0===h||d(a,h,{get:()=>b[h],enumerable:!(c=e(b,h))||c.enumerable});return a})(d({},"__esModule",{value:!0}),h);var k=a.r(446786);let l=`@vercel/oidc node-${process.version} ${(0,k.platform)()} (${(0,k.arch)()}) ${(0,k.hostname)()}`,m=null;async function n(){if(m)return m;let a=await fetch("https://vercel.com/.well-known/openid-configuration",{headers:{"user-agent":l}});if(!a.ok)throw Error("Failed to discover OAuth endpoints");let b=await a.json();if(!b||"string"!=typeof b.token_endpoint)throw Error("Invalid OAuth discovery response");let c=b.token_endpoint;return m=c,c}async function o(a){let b=await n();return await fetch(b,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded","user-agent":l},body:new URLSearchParams({client_id:"cl_HYyOPBNtFMfHhaUn9L4QPfTZz6TP47bp",grant_type:"refresh_token",...a})})}async function p(a){let b=await a.json();return a.ok?"object"!=typeof b||null===b?[Error("Invalid token response")]:"string"!=typeof b.access_token?[Error("Missing access_token in response")]:"Bearer"!==b.token_type?[Error("Invalid token_type in response")]:"number"!=typeof b.expires_in?[Error("Missing expires_in in response")]:[null,b]:[Error("object"==typeof b&&b&&"error"in b?String(b.error):"Token refresh failed")]}},580949,(a,b,c)=>{"use strict";var d=Object.defineProperty,e=Object.getOwnPropertyDescriptor,f=Object.getOwnPropertyNames,g=Object.prototype.hasOwnProperty,h={},i={VercelOidcTokenError:()=>k};for(var j in i)d(h,j,{get:i[j],enumerable:!0});b.exports=((a,b,c)=>{if(b&&"object"==typeof b||"function"==typeof b)for(let h of f(b))g.call(a,h)||void 0===h||d(a,h,{get:()=>b[h],enumerable:!(c=e(b,h))||c.enumerable});return a})(d({},"__esModule",{value:!0}),h);class k extends Error{constructor(a,b){super(a),this.name="VercelOidcTokenError",this.cause=b}toString(){return this.cause?`${this.name}: ${this.message}: ${this.cause}`:`${this.name}: ${this.message}`}}},50067,(a,b,c)=>{"use strict";var d=Object.create,e=Object.defineProperty,f=Object.getOwnPropertyDescriptor,g=Object.getOwnPropertyNames,h=Object.getPrototypeOf,i=Object.prototype.hasOwnProperty,j=(a,b,c,d)=>{if(b&&"object"==typeof b||"function"==typeof b)for(let h of g(b))i.call(a,h)||h===c||e(a,h,{get:()=>b[h],enumerable:!(d=f(b,h))||d.enumerable});return a},k=(a,b,c)=>(c=null!=a?d(h(a)):{},j(!b&&a&&a.__esModule?c:e(c,"default",{value:a,enumerable:!0}),a)),l={},m={findRootDir:()=>s,getUserDataDir:()=>t};for(var n in m)e(l,n,{get:m[n],enumerable:!0});b.exports=j(e({},"__esModule",{value:!0}),l);var o=k(a.r(814747)),p=k(a.r(522734)),q=k(a.r(446786)),r=a.r(580949);function s(){try{let a=process.cwd();for(;a!==o.default.dirname(a);){let b=o.default.join(a,".vercel");if(p.default.existsSync(b))return a;a=o.default.dirname(a)}}catch(a){throw new r.VercelOidcTokenError("Token refresh only supported in node server environments")}return null}function t(){if(process.env.XDG_DATA_HOME)return process.env.XDG_DATA_HOME;switch(q.default.platform()){case"darwin":return o.default.join(q.default.homedir(),"Library/Application Support");case"linux":return o.default.join(q.default.homedir(),".local/share");case"win32":if(process.env.LOCALAPPDATA)return process.env.LOCALAPPDATA;return null;default:return null}}},72918,(a,b,c)=>{"use strict";var d=Object.create,e=Object.defineProperty,f=Object.getOwnPropertyDescriptor,g=Object.getOwnPropertyNames,h=Object.getPrototypeOf,i=Object.prototype.hasOwnProperty,j=(a,b,c,d)=>{if(b&&"object"==typeof b||"function"==typeof b)for(let h of g(b))i.call(a,h)||h===c||e(a,h,{get:()=>b[h],enumerable:!(d=f(b,h))||d.enumerable});return a},k=(a,b,c)=>(c=null!=a?d(h(a)):{},j(!b&&a&&a.__esModule?c:e(c,"default",{value:a,enumerable:!0}),a)),l={},m={assertVercelOidcTokenResponse:()=>y,findProjectInfo:()=>z,getTokenPayload:()=>C,getVercelDataDir:()=>v,getVercelOidcToken:()=>x,getVercelToken:()=>w,isExpired:()=>D,loadToken:()=>B,saveToken:()=>A};for(var n in m)e(l,n,{get:m[n],enumerable:!0});b.exports=j(e({},"__esModule",{value:!0}),l);var o=k(a.r(814747)),p=k(a.r(522734)),q=a.r(580949),r=a.r(50067),s=a.r(484261),t=a.r(719472),u=a.r(351275);function v(){let a=(0,r.getUserDataDir)();return a?o.join(a,"com.vercel.cli"):null}async function w(a){let b=(0,s.readAuthConfig)();if(!b?.token)throw new u.AccessTokenMissingError;if((0,s.isValidAccessToken)(b,a?.expirationBufferMs))return b.token;if(!b.refreshToken)throw(0,s.writeAuthConfig)({}),new u.RefreshAccessTokenFailedError("No refresh token available");try{let a=await (0,t.refreshTokenRequest)({refresh_token:b.refreshToken}),[c,d]=await (0,t.processTokenResponse)(a);if(c||!d)throw(0,s.writeAuthConfig)({}),new u.RefreshAccessTokenFailedError(c);let e={token:d.access_token,expiresAt:Math.floor(Date.now()/1e3)+d.expires_in};return d.refresh_token&&(e.refreshToken=d.refresh_token),(0,s.writeAuthConfig)(e),e.token}catch(a){if((0,s.writeAuthConfig)({}),a instanceof u.AccessTokenMissingError||a instanceof u.RefreshAccessTokenFailedError)throw a;throw new u.RefreshAccessTokenFailedError(a)}}async function x(a,b,c){let d=`https://api.vercel.com/v1/projects/${b}/token?source=vercel-oidc-refresh${c?`&teamId=${c}`:""}`,e=await fetch(d,{method:"POST",headers:{Authorization:`Bearer ${a}`}});if(!e.ok)throw new q.VercelOidcTokenError(`Failed to refresh OIDC token: ${e.statusText}`);let f=await e.json();return y(f),f}function y(a){if(!a||"object"!=typeof a)throw TypeError("Vercel OIDC token is malformed. Expected an object. Please run `vc env pull` and try again");if(!("token"in a)||"string"!=typeof a.token)throw TypeError("Vercel OIDC token is malformed. Expected a string-valued token property. Please run `vc env pull` and try again")}function z(){let a=(0,r.findRootDir)();if(!a)throw new q.VercelOidcTokenError("Unable to find project root directory. Have you linked your project with `vc link?`");let b=o.join(a,".vercel","project.json");if(!p.existsSync(b))throw new q.VercelOidcTokenError("project.json not found, have you linked your project with `vc link?`");let c=JSON.parse(p.readFileSync(b,"utf8"));if("string"!=typeof c.projectId&&"string"!=typeof c.orgId)throw TypeError("Expected a string-valued projectId property. Try running `vc link` to re-link your project.");return{projectId:c.projectId,teamId:c.orgId}}function A(a,b){let c=(0,r.getUserDataDir)();if(!c)throw new q.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let d=o.join(c,"com.vercel.token",`${b}.json`),e=JSON.stringify(a);p.mkdirSync(o.dirname(d),{mode:504,recursive:!0}),p.writeFileSync(d,e),p.chmodSync(d,432)}function B(a){let b=(0,r.getUserDataDir)();if(!b)throw new q.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let c=o.join(b,"com.vercel.token",`${a}.json`);if(!p.existsSync(c))return null;let d=JSON.parse(p.readFileSync(c,"utf8"));return y(d),d}function C(a){let b=a.split(".");if(3!==b.length)throw new q.VercelOidcTokenError("Invalid token. Please run `vc env pull` and try again");let c=b[1].replace(/-/g,"+").replace(/_/g,"/"),d=c.padEnd(c.length+(4-c.length%4)%4,"=");return JSON.parse(Buffer.from(d,"base64").toString("utf8"))}function D(a,b=0){return 1e3*a.exp<Date.now()+b}},713095,(a,b,c)=>{"use strict";function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
102
66
  Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},137936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(211857)}];
103
67
 
104
68
  //# sourceMappingURL=%5Broot-of-the-server%5D__0tzekbl._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[522734,(a,b,c)=>{b.exports=a.x("fs",()=>require("fs"))},750227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},59639,(a,b,c)=>{b.exports=a.x("node:process",()=>require("node:process"))},509656,(a,b,c)=>{b.exports=a.x("node:tty",()=>require("node:tty"))},812057,(a,b,c)=>{b.exports=a.x("node:util",()=>require("node:util"))},446786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},814747,(a,b,c)=>{b.exports=a.x("path",()=>require("path"))},341889,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(767561),e=a.i(497895);a.s(["SiteIcon",0,function({host:a,className:f="size-3.5 rounded-full",fallback:g}){let[h,i]=(0,c.useState)(!1);return h?g??(0,b.jsx)("span",{"aria-hidden":!0,className:(0,e.cn)("grid shrink-0 place-items-center bg-foreground/10 text-[8.5px] font-medium text-foreground/70 uppercase",f),children:a[0]}):(0,b.jsx)("img",{src:d.queryKey.favicon(a),alt:"",onError:()=>i(!0),className:(0,e.cn)("shrink-0",f)})},"hostOf",0,function(a){try{return new URL(a).hostname.replace(/^www\./,"")}catch{return null}}])},349009,a=>{"use strict";var b=a.i(405050);let c=(0,b.createServerReference)("7f0677233d1802b09d0a66cf1a5a099d17c8814b7a",b.callServer,void 0,b.findSourceMapURL,"setSignInBotAction");a.s(["setSignInBotAction",0,c])},579587,801548,a=>{"use strict";let b="data-composite-item-active";a.s(["ACTIVE_COMPOSITE_ITEM",0,b],579587);var c=a.i(572131),d=a.i(524715),e=a.i(579923),f=a.i(854401),g=a.i(801811),h=a.i(357738),i=a.i(669649),j=a.i(796e3),k=a.i(30116),l=a.i(559539),m=a.i(926184),n=a.i(162903),o=a.i(187924);a.s(["CompositeRoot",0,function(a){let{render:p,className:q,style:r,refs:s=d.EMPTY_ARRAY,props:t=d.EMPTY_ARRAY,state:u=d.EMPTY_OBJECT,stateAttributesMapping:v,highlightedIndex:w,onHighlightedIndexChange:x,orientation:y,grid:z,loopFocus:A,onLoop:B,enableHomeAndEndKeys:C,onMapChange:D,stopEventPropagation:E=!0,rootRef:F,disabledIndices:G,modifierKeys:H,highlightItemOnHover:I=!1,tag:J="div",...K}=a,{props:L,highlightedIndex:M,onHighlightedIndexChange:N,elementsRef:O,onMapChange:P,relayKeyboardEvent:Q}=function(a){let{loopFocus:e=!0,orientation:l="both",grid:m,onLoop:n,direction:o,highlightedIndex:p,onHighlightedIndexChange:q,rootRef:r,enableHomeAndEndKeys:s=!1,stopEventPropagation:t,disabledIndices:u,modifierKeys:v=d.EMPTY_ARRAY}=a,[w,x]=c.useState(0),y=null!=m,z=c.useRef(null),A=(0,g.useMergedRefs)(z,r),B=c.useRef([]),C=c.useRef(!1),D=c.useRef(null),E=p??w,F=(0,f.useStableCallback)((a,b=!1)=>{if(D.current=B.current[a]??null,(q??x)(a),b){let b=B.current[a];(0,i.scrollIntoViewIfNeeded)(z.current,b,o,l)}}),G=(0,f.useStableCallback)(a=>{if(0===a.size)return;if(C.current){let a=B.current,c=a.indexOf(D.current);if(-1===c){let c=a[E];!c||(0,j.isListIndexDisabled)(a,E,u)?F(function(a,c){let d=-1;for(let e=0;e<a.length;e+=1){let f=a[e];if(!(!f||(0,j.isListIndexDisabled)(a,e,c))){if(f.hasAttribute(b))return e;-1===d&&(d=e)}}return Math.max(d,0)}(a,u)):D.current=c}else c!==E&&F(c);return}C.current=!0;let c=Array.from(a.keys()),d=c.find(a=>a?.hasAttribute(b))??null,e=d?a.get(d)?.index??-1:-1;if(-1!==e)F(e);else if((0,j.isListIndexDisabled)(c,E,u)){let a=(0,j.findNonDisabledListIndex)(c,{disabledIndices:u});(0,j.isIndexOutOfListBounds)(c,a)||F(a)}(0,i.scrollIntoViewIfNeeded)(z.current,d,o,l)});(0,h.useIsoLayoutEffect)(()=>{if(null==u||null!=p||!C.current)return;let a=B.current;if((0,j.isListIndexDisabled)(a,E,u)){let b=(0,j.findNonDisabledListIndex)(a,{disabledIndices:u});(0,j.isIndexOutOfListBounds)(a,b)||F(b)}},[u,p,E,B,F]);let H=(0,f.useStableCallback)((a,b,c)=>n?n(a,b,c,B):c),I=(0,f.useStableCallback)(a=>{let b=a.key===i.HOME||a.key===i.END;if(!i.COMPOSITE_KEYS.has(a.key)||!s&&b||function(a,b){for(let c of i.MODIFIER_KEYS)if(!b.includes(c)&&a.getModifierState(c))return!0;return!1}(a,v)||!z.current)return;let c="rtl"===o,d=c?i.ARROW_LEFT:i.ARROW_RIGHT,f=c?i.ARROW_RIGHT:i.ARROW_LEFT,g="vertical"===l?i.ARROW_DOWN:d,h="vertical"===l?i.ARROW_UP:f,p=(0,k.getTarget)(a.nativeEvent);if(null!=p&&(0,i.isNativeInput)(p)&&!(null==p||p.hasAttribute("disabled")||"true"===p.getAttribute("aria-disabled"))){let b=p.selectionStart,c=p.selectionEnd,d=p.value;if(null==b||a.shiftKey||b!==c||a.key!==h&&b<d.length||a.key!==g&&b>0)return}let q=E,r=(0,j.getMinListIndex)(B,u),w=(0,j.getMaxListIndex)(B,u);null!=m&&(q=m({disabledIndices:u,elementsRef:B,event:a,highlightedIndex:E,loopFocus:e,maxIndex:w,minIndex:r,onLoop:H,orientation:l,rtl:c}));let x="vertical"!==l&&a.key===d||"horizontal"!==l&&a.key===i.ARROW_DOWN,A="vertical"!==l&&a.key===f||"horizontal"!==l&&a.key===i.ARROW_UP;s&&(a.key===i.HOME?q=r:a.key===i.END&&(q=w)),q===E&&(x||A)&&(e&&q===w&&x?(q=r,n&&(q=n(a,E,q,B))):e&&q===r&&A?(q=w,n&&(q=n(a,E,q,B))):q=(0,j.findNonDisabledListIndex)(B.current,{startingIndex:q,decrement:A,disabledIndices:u})),q===E||(0,j.isIndexOutOfListBounds)(B.current,q)||(t&&a.stopPropagation(),(y||b||x||A)&&a.preventDefault(),F(q,!0),queueMicrotask(()=>{B.current[q]?.focus()}))});return{props:{ref:A,onFocus(a){let b=z.current,c=(0,k.getTarget)(a.nativeEvent);b&&null!=c&&(0,i.isNativeInput)(c)&&c.setSelectionRange(0,c.value.length)},onKeyDown:I},highlightedIndex:E,onHighlightedIndexChange:F,elementsRef:B,onMapChange:G,relayKeyboardEvent:I}}({grid:z,loopFocus:A,onLoop:B,orientation:y,highlightedIndex:w,onHighlightedIndexChange:x,rootRef:F,stopEventPropagation:E,enableHomeAndEndKeys:C,direction:(0,n.useDirection)(),disabledIndices:G,modifierKeys:H}),R=(0,m.useRenderElement)(J,a,{state:u,ref:s,props:[L,...t,K],stateAttributesMapping:v}),S=c.useMemo(()=>({highlightedIndex:M,onHighlightedIndexChange:N,highlightItemOnHover:I,relayKeyboardEvent:Q}),[M,N,I,Q]);return(0,o.jsx)(l.CompositeRootContext.Provider,{value:S,children:(0,o.jsx)(e.CompositeList,{elementsRef:O,onMapChange:a=>{D?.(a),P(a)},children:R})})}],801548)},118816,a=>{"use strict";var b=a.i(572131),c=a.i(926184);let d=b.forwardRef(function(a,b){let{className:d,render:e,orientation:f="horizontal",style:g,...h}=a;return(0,c.useRenderElement)("div",a,{state:{orientation:f},ref:b,props:[{role:"separator","aria-orientation":f},h]})});a.s(["Separator",0,d])},144501,a=>{"use strict";var b=a.i(20265),c=a.i(426476);a.s(["getCssDimensions",0,function(a){let d=(0,c.getComputedStyle)(a),e=parseFloat(d.width)||0,f=parseFloat(d.height)||0,g=(0,c.isHTMLElement)(a),h=g?a.offsetWidth:e,i=g?a.offsetHeight:f;return((0,b.round)(e)!==h||(0,b.round)(f)!==i)&&(e=h,f=i),{width:e,height:f}}])},57753,(a,b,c)=>{"use strict";var d=Object.create,e=Object.defineProperty,f=Object.getOwnPropertyDescriptor,g=Object.getOwnPropertyNames,h=Object.getPrototypeOf,i=Object.prototype.hasOwnProperty,j=(a,b,c,d)=>{if(b&&"object"==typeof b||"function"==typeof b)for(let h of g(b))i.call(a,h)||h===c||e(a,h,{get:()=>b[h],enumerable:!(d=f(b,h))||d.enumerable});return a},k=(a,b,c)=>(c=null!=a?d(h(a)):{},j(!b&&a&&a.__esModule?c:e(c,"default",{value:a,enumerable:!0}),a)),l={},m={isValidAccessToken:()=>u,readAuthConfig:()=>s,writeAuthConfig:()=>t};for(var n in m)e(l,n,{get:m[n],enumerable:!0});b.exports=j(e({},"__esModule",{value:!0}),l);var o=k(a.r(522734)),p=k(a.r(814747)),q=a.r(809750);function r(){let a=(0,q.getVercelDataDir)();if(!a)throw Error(`Unable to find Vercel CLI data directory. Your platform: ${process.platform}. Supported: darwin, linux, win32.`);return p.join(a,"auth.json")}function s(){try{let a=r();if(!o.existsSync(a))return null;let b=o.readFileSync(a,"utf8");if(!b)return null;return JSON.parse(b)}catch(a){return null}}function t(a){let b=r(),c=p.dirname(b);o.existsSync(c)||o.mkdirSync(c,{mode:504,recursive:!0}),o.writeFileSync(b,JSON.stringify(a,null,2),{mode:384})}function u(a,b=0){if(!a.token)return!1;if("number"!=typeof a.expiresAt)return!0;let c=Math.floor(Date.now()/1e3);return a.expiresAt>=c+b/1e3}},69845,(a,b,c)=>{"use strict";var d=Object.defineProperty,e=Object.getOwnPropertyDescriptor,f=Object.getOwnPropertyNames,g=Object.prototype.hasOwnProperty,h={},i={AccessTokenMissingError:()=>k,RefreshAccessTokenFailedError:()=>l};for(var j in i)d(h,j,{get:i[j],enumerable:!0});b.exports=((a,b,c)=>{if(b&&"object"==typeof b||"function"==typeof b)for(let h of f(b))g.call(a,h)||void 0===h||d(a,h,{get:()=>b[h],enumerable:!(c=e(b,h))||c.enumerable});return a})(d({},"__esModule",{value:!0}),h);class k extends Error{constructor(){super("No authentication found. Please log in with the Vercel CLI (vercel login)."),this.name="AccessTokenMissingError"}}class l extends Error{constructor(a){super("Failed to refresh authentication token.",{cause:a}),this.name="RefreshAccessTokenFailedError"}}},301479,(a,b,c)=>{"use strict";var d=Object.defineProperty,e=Object.getOwnPropertyDescriptor,f=Object.getOwnPropertyNames,g=Object.prototype.hasOwnProperty,h={},i={processTokenResponse:()=>p,refreshTokenRequest:()=>o};for(var j in i)d(h,j,{get:i[j],enumerable:!0});b.exports=((a,b,c)=>{if(b&&"object"==typeof b||"function"==typeof b)for(let h of f(b))g.call(a,h)||void 0===h||d(a,h,{get:()=>b[h],enumerable:!(c=e(b,h))||c.enumerable});return a})(d({},"__esModule",{value:!0}),h);var k=a.r(446786);let l=`@vercel/oidc node-${process.version} ${(0,k.platform)()} (${(0,k.arch)()}) ${(0,k.hostname)()}`,m=null;async function n(){if(m)return m;let a=await fetch("https://vercel.com/.well-known/openid-configuration",{headers:{"user-agent":l}});if(!a.ok)throw Error("Failed to discover OAuth endpoints");let b=await a.json();if(!b||"string"!=typeof b.token_endpoint)throw Error("Invalid OAuth discovery response");let c=b.token_endpoint;return m=c,c}async function o(a){let b=await n();return await fetch(b,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded","user-agent":l},body:new URLSearchParams({client_id:"cl_HYyOPBNtFMfHhaUn9L4QPfTZz6TP47bp",grant_type:"refresh_token",...a})})}async function p(a){let b=await a.json();return a.ok?"object"!=typeof b||null===b?[Error("Invalid token response")]:"string"!=typeof b.access_token?[Error("Missing access_token in response")]:"Bearer"!==b.token_type?[Error("Invalid token_type in response")]:"number"!=typeof b.expires_in?[Error("Missing expires_in in response")]:[null,b]:[Error("object"==typeof b&&b&&"error"in b?String(b.error):"Token refresh failed")]}},325279,(a,b,c)=>{"use strict";var d=Object.defineProperty,e=Object.getOwnPropertyDescriptor,f=Object.getOwnPropertyNames,g=Object.prototype.hasOwnProperty,h={},i={VercelOidcTokenError:()=>k};for(var j in i)d(h,j,{get:i[j],enumerable:!0});b.exports=((a,b,c)=>{if(b&&"object"==typeof b||"function"==typeof b)for(let h of f(b))g.call(a,h)||void 0===h||d(a,h,{get:()=>b[h],enumerable:!(c=e(b,h))||c.enumerable});return a})(d({},"__esModule",{value:!0}),h);class k extends Error{constructor(a,b){super(a),this.name="VercelOidcTokenError",this.cause=b}toString(){return this.cause?`${this.name}: ${this.message}: ${this.cause}`:`${this.name}: ${this.message}`}}},314225,(a,b,c)=>{"use strict";var d=Object.create,e=Object.defineProperty,f=Object.getOwnPropertyDescriptor,g=Object.getOwnPropertyNames,h=Object.getPrototypeOf,i=Object.prototype.hasOwnProperty,j=(a,b,c,d)=>{if(b&&"object"==typeof b||"function"==typeof b)for(let h of g(b))i.call(a,h)||h===c||e(a,h,{get:()=>b[h],enumerable:!(d=f(b,h))||d.enumerable});return a},k=(a,b,c)=>(c=null!=a?d(h(a)):{},j(!b&&a&&a.__esModule?c:e(c,"default",{value:a,enumerable:!0}),a)),l={},m={findRootDir:()=>s,getUserDataDir:()=>t};for(var n in m)e(l,n,{get:m[n],enumerable:!0});b.exports=j(e({},"__esModule",{value:!0}),l);var o=k(a.r(814747)),p=k(a.r(522734)),q=k(a.r(446786)),r=a.r(325279);function s(){try{let a=process.cwd();for(;a!==o.default.dirname(a);){let b=o.default.join(a,".vercel");if(p.default.existsSync(b))return a;a=o.default.dirname(a)}}catch(a){throw new r.VercelOidcTokenError("Token refresh only supported in node server environments")}return null}function t(){if(process.env.XDG_DATA_HOME)return process.env.XDG_DATA_HOME;switch(q.default.platform()){case"darwin":return o.default.join(q.default.homedir(),"Library/Application Support");case"linux":return o.default.join(q.default.homedir(),".local/share");case"win32":if(process.env.LOCALAPPDATA)return process.env.LOCALAPPDATA;return null;default:return null}}},809750,(a,b,c)=>{"use strict";var d=Object.create,e=Object.defineProperty,f=Object.getOwnPropertyDescriptor,g=Object.getOwnPropertyNames,h=Object.getPrototypeOf,i=Object.prototype.hasOwnProperty,j=(a,b,c,d)=>{if(b&&"object"==typeof b||"function"==typeof b)for(let h of g(b))i.call(a,h)||h===c||e(a,h,{get:()=>b[h],enumerable:!(d=f(b,h))||d.enumerable});return a},k=(a,b,c)=>(c=null!=a?d(h(a)):{},j(!b&&a&&a.__esModule?c:e(c,"default",{value:a,enumerable:!0}),a)),l={},m={assertVercelOidcTokenResponse:()=>y,findProjectInfo:()=>z,getTokenPayload:()=>C,getVercelDataDir:()=>v,getVercelOidcToken:()=>x,getVercelToken:()=>w,isExpired:()=>D,loadToken:()=>B,saveToken:()=>A};for(var n in m)e(l,n,{get:m[n],enumerable:!0});b.exports=j(e({},"__esModule",{value:!0}),l);var o=k(a.r(814747)),p=k(a.r(522734)),q=a.r(325279),r=a.r(314225),s=a.r(57753),t=a.r(301479),u=a.r(69845);function v(){let a=(0,r.getUserDataDir)();return a?o.join(a,"com.vercel.cli"):null}async function w(a){let b=(0,s.readAuthConfig)();if(!b?.token)throw new u.AccessTokenMissingError;if((0,s.isValidAccessToken)(b,a?.expirationBufferMs))return b.token;if(!b.refreshToken)throw(0,s.writeAuthConfig)({}),new u.RefreshAccessTokenFailedError("No refresh token available");try{let a=await (0,t.refreshTokenRequest)({refresh_token:b.refreshToken}),[c,d]=await (0,t.processTokenResponse)(a);if(c||!d)throw(0,s.writeAuthConfig)({}),new u.RefreshAccessTokenFailedError(c);let e={token:d.access_token,expiresAt:Math.floor(Date.now()/1e3)+d.expires_in};return d.refresh_token&&(e.refreshToken=d.refresh_token),(0,s.writeAuthConfig)(e),e.token}catch(a){if((0,s.writeAuthConfig)({}),a instanceof u.AccessTokenMissingError||a instanceof u.RefreshAccessTokenFailedError)throw a;throw new u.RefreshAccessTokenFailedError(a)}}async function x(a,b,c){let d=`https://api.vercel.com/v1/projects/${b}/token?source=vercel-oidc-refresh${c?`&teamId=${c}`:""}`,e=await fetch(d,{method:"POST",headers:{Authorization:`Bearer ${a}`}});if(!e.ok)throw new q.VercelOidcTokenError(`Failed to refresh OIDC token: ${e.statusText}`);let f=await e.json();return y(f),f}function y(a){if(!a||"object"!=typeof a)throw TypeError("Vercel OIDC token is malformed. Expected an object. Please run `vc env pull` and try again");if(!("token"in a)||"string"!=typeof a.token)throw TypeError("Vercel OIDC token is malformed. Expected a string-valued token property. Please run `vc env pull` and try again")}function z(){let a=(0,r.findRootDir)();if(!a)throw new q.VercelOidcTokenError("Unable to find project root directory. Have you linked your project with `vc link?`");let b=o.join(a,".vercel","project.json");if(!p.existsSync(b))throw new q.VercelOidcTokenError("project.json not found, have you linked your project with `vc link?`");let c=JSON.parse(p.readFileSync(b,"utf8"));if("string"!=typeof c.projectId&&"string"!=typeof c.orgId)throw TypeError("Expected a string-valued projectId property. Try running `vc link` to re-link your project.");return{projectId:c.projectId,teamId:c.orgId}}function A(a,b){let c=(0,r.getUserDataDir)();if(!c)throw new q.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let d=o.join(c,"com.vercel.token",`${b}.json`),e=JSON.stringify(a);p.mkdirSync(o.dirname(d),{mode:504,recursive:!0}),p.writeFileSync(d,e),p.chmodSync(d,432)}function B(a){let b=(0,r.getUserDataDir)();if(!b)throw new q.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let c=o.join(b,"com.vercel.token",`${a}.json`);if(!p.existsSync(c))return null;let d=JSON.parse(p.readFileSync(c,"utf8"));return y(d),d}function C(a){let b=a.split(".");if(3!==b.length)throw new q.VercelOidcTokenError("Invalid token. Please run `vc env pull` and try again");let c=b[1].replace(/-/g,"+").replace(/_/g,"/"),d=c.padEnd(c.length+(4-c.length%4)%4,"=");return JSON.parse(Buffer.from(d,"base64").toString("utf8"))}function D(a,b=0){return 1e3*a.exp<Date.now()+b}},830988,a=>{"use strict";var b=a.i(244513),c=a.i(852587),d=a.i(23464),e=a.i(57270),f=a.i(774016),g=a.i(959296);a.s(["formatDistanceStrict",0,function(a,h,i){var j;let k,l,m=(0,c.getDefaultOptions)(),n=i?.locale??m.locale??b.defaultLocale,o=(l=(0,f.toDate)(a)-(0,f.toDate)(h))<0?-1:l>0?1:l;if(isNaN(o))throw RangeError("Invalid time value");let p=Object.assign({},i,{addSuffix:i?.addSuffix,comparison:o}),[q,r]=(0,e.normalizeDates)(i?.in,...o>0?[h,a]:[a,h]),s=(j=i?.roundingMethod??"round",a=>{let b=(j?Math[j]:Math.trunc)(a);return 0===b?0:b}),t=r.getTime()-q.getTime(),u=t/g.millisecondsInMinute,v=(t-((0,d.getTimezoneOffsetInMilliseconds)(r)-(0,d.getTimezoneOffsetInMilliseconds)(q)))/g.millisecondsInMinute,w=i?.unit;if("second"===(k=w||(u<1?"second":u<60?"minute":u<g.minutesInDay?"hour":v<g.minutesInMonth?"day":v<g.minutesInYear?"month":"year"))){let a=s(t/1e3);return n.formatDistance("xSeconds",a,p)}if("minute"===k){let a=s(u);return n.formatDistance("xMinutes",a,p)}if("hour"===k){let a=s(u/60);return n.formatDistance("xHours",a,p)}if("day"===k){let a=s(v/g.minutesInDay);return n.formatDistance("xDays",a,p)}if("month"===k){let a=s(v/g.minutesInMonth);return 12===a&&"month"!==w?n.formatDistance("xYears",1,p):n.formatDistance("xMonths",a,p)}else{let a=s(v/g.minutesInYear);return n.formatDistance("xYears",a,p)}}],830988)},987234,a=>{"use strict";var b=a.i(934754),c=a.i(830988);a.s(["formatDistanceToNowStrict",0,function(a,d){return(0,c.formatDistanceStrict)(a,(0,b.constructNow)(a),d)}])},327598,a=>{"use strict";var b=a.i(164831);let c={name:"arrow-up",size:24,node:[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]};c.node;let d=(0,b.default)(c);a.s(["ArrowUp",0,d],327598)},444080,a=>{"use strict";var b=a.i(164831);let c={name:"book-bookmark",size:24,node:[["path",{d:"M10 2v7.751a.25.25 0 00.407.195l2.28-1.834a.5.5 0 01.627 0l2.28 1.834A.25.25 0 0016 9.751V2",key:"x9x4jl"}],["path",{d:"M4 19.5v-15A2.5 2.5 0 016.5 2H19a1 1 0 011 1v18a1 1 0 01-1 1H6.5a1 1 0 010-5H20",key:"1889un"}]],aliases:["book-marked"]};c.node;let d=(0,b.default)(c);a.s(["BookMarked",0,d],444080)},585650,a=>{"use strict";var b=a.i(164831);let c={name:"copy",size:24,node:[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]};c.node;let d=(0,b.default)(c);a.s(["Copy",0,d],585650)},607396,a=>{"use strict";var b=a.i(164831);let c={name:"ellipsis",size:24,node:[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]],aliases:["more-horizontal"]};c.node;let d=(0,b.default)(c);a.s(["default",0,d])},696732,a=>{"use strict";var b=a.i(164831);let c={name:"globe",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]};c.node;let d=(0,b.default)(c);a.s(["Globe",0,d],696732)},71215,a=>{"use strict";var b=a.i(164831);let c={name:"image",size:24,node:[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]};c.node;let d=(0,b.default)(c);a.s(["Image",0,d],71215)},474896,a=>{"use strict";var b=a.i(164831);let c={name:"log-in",size:24,node:[["path",{d:"m10 17 5-5-5-5",key:"1bsop3"}],["path",{d:"M15 12H3",key:"6jk70r"}],["path",{d:"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4",key:"u53s6r"}]]};c.node;let d=(0,b.default)(c);a.s(["LogIn",0,d],474896)},26268,a=>{"use strict";var b=a.i(623577);a.s(["TriangleAlert",()=>b.default])},869789,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={actionAsyncStorage:function(){return f.actionAsyncStorage},workAsyncStorage:function(){return g.workAsyncStorage},workUnitAsyncStorage:function(){return h.workUnitAsyncStorage}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(120635),g=a.r(556704),h=a.r(832319);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__1cz2rz5._.js.map
@@ -1,3 +1,3 @@
1
1
  module.exports=[70729,a=>{a.v(a=>Promise.resolve().then(()=>a(666680)))},133300,a=>{a.v(a=>Promise.resolve().then(()=>a(203469)))},276307,a=>{a.v(a=>Promise.resolve().then(()=>a(221214)))},763543,a=>{a.v(a=>Promise.resolve().then(()=>a(674986)))},951922,a=>{a.v(a=>Promise.resolve().then(()=>a(839430)))},343064,a=>{a.v(a=>Promise.resolve().then(()=>a(344853)))},453556,a=>{a.v(a=>Promise.resolve().then(()=>a(233398)))},394298,a=>{a.v(a=>Promise.resolve().then(()=>a(684321)))},122690,a=>{a.v(a=>Promise.resolve().then(()=>a(821415)))},682672,a=>{a.v(a=>Promise.resolve().then(()=>a(72918)))},966249,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@vercel_oidc_dist_token_16gdpgb.js"].map(b=>a.l(b))).then(()=>b(860544)))},832030,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_node_readline_1u65a-m._.js","server/chunks/ssr/node_modules_consola_dist_chunks_prompt_mjs_1j4x-_j._.js"].map(b=>a.l(b))).then(()=>b(322479)))}];
2
2
 
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0tvavy9._.js.map
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__1iwyp1e._.js.map
@@ -3,6 +3,6 @@ module.exports=[874533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require(
3
3
  [${b} cut at ${e.max.toLocaleString("en")} chars — the whole thing (${j} lines) is at ${i}. Read the part you need with \`sed -n\`.]
4
4
 
5
5
  ${a.slice(-e.tail).trimStart()}`}let n=g.APP_DIR,o=(0,f.join)(g.DATA_DIR,g.PATHS.workspace),p=(process.env.THURSDAY_TOOL_PATH?.split(":")??[(0,f.join)(n,"node_modules",".bin")]).filter(Boolean),q=(0,f.join)(o,g.PATHS.artifacts),r=[g.PATHS.artifacts,g.PATHS.projects,g.PATHS.scratch,g.PATHS.bots],s=new Set([...r,".agents"]),t=(a,b)=>b===a||b.startsWith(a+f.sep),u=a=>(0,d.realpath)(a).catch(()=>null);async function v(a){let b=await u(o)??o,c=(0,f.resolve)(o,a);if(!t(o,c))return null;let d=c,e=await u(d);for(;null===e&&(0,f.dirname)(d)!==d;)d=(0,f.dirname)(d),e=await u(d);if(null===e)return null;let g=(0,f.relative)(d,c),h=g?(0,f.join)(e,g):e;return t(b,h)?h:null}function w(a,b){let c=b.trim().toLowerCase().replace(/[^\p{L}\p{N}]+/gu,"-").replace(/^-+|-+$/g,"").slice(0,40)||"job";return`${g.PATHS.scratch}/${c}-${a.slice(0,6)}`}let x=a=>a.replace(/[^\p{L}\p{N}_-]+/gu,"-"),y=a=>`${g.PATHS.bots}/${x(a)}`,z=a=>`${g.PATHS.artifacts}/${x(a)}`;async function A(a){let b=y(a),c=z(a);return await Promise.all([b,c].map(a=>(0,d.mkdir)((0,f.join)(o,a),{recursive:!0}))),{own:b,artifacts:c}}async function B(a,b){let c=w(a,b);return await (0,d.mkdir)((0,f.join)(o,c),{recursive:!0}),c}let C=a=>({PLAYWRIGHT_MCP_BROWSER:"chromium",...a?{PLAYWRIGHT_CLI_SESSION:`thread-${a}`,PLAYWRIGHT_MCP_VIEWPORT_SIZE:g.BROWSER_VIEWPORT}:{}}),D={runtimes:["node","python3","uv","bun","deno"],managers:["pnpm","npm","yarn"]};async function E(a){let b=Object.values(D).flat(),{stdout:c}=await a.exec(b.map(a=>`command -v ${a} >/dev/null 2>&1 && printf '%s ' ${a}`).join("; "),{timeoutMs:1e4}),d=new Set(c.trim().split(/\s+/).filter(Boolean)),e=a=>({found:a.filter(a=>d.has(a)),missing:a.filter(a=>!d.has(a))});return{runtimes:e(D.runtimes),managers:e(D.managers),browser:null}}async function F(){await M(),await L()}async function G(a){await J(a,await K(a,!1))}async function H(a){await K(a,!0)}async function I(a){await J(a,await K(a,!0))}async function J(a,c){let g=process.env.XDG_CACHE_HOME||(0,f.join)((0,e.homedir)(),".cache"),i=await (0,d.realpath)(o).catch(()=>o),j=(0,f.join)(g,"ms-playwright","daemon",(0,b.createHash)("sha1").update(i).digest("hex").slice(0,16)),k=C(a).PLAYWRIGHT_CLI_SESSION;for(let a of(await (0,d.readdir)(j).catch(()=>[]))){let b=a.startsWith("ud-")?a.slice(3):a;(b===k||b.startsWith(`${k}-`)||b.startsWith(`${k}.`))&&(c.some(a=>b===a||b.startsWith(`${a}-`)||b.startsWith(`${a}.`))||await (0,d.rm)((0,f.join)(j,a),{recursive:!0,force:!0}).catch(b=>h.logger.warn(`browser data ${a}: ${String(b)}`)))}}async function K(a,b){let c=await R(),d=C(a),e=await c.exec("playwright-cli list --json",{env:d,timeoutMs:15e3}).catch(()=>null),f=[];try{let{browsers:a}=JSON.parse(e?.stdout??"");f=a?.filter(a=>a.name===d.PLAYWRIGHT_CLI_SESSION||a.name.startsWith(`${d.PLAYWRIGHT_CLI_SESSION}-`))??[]}catch{}let g=[];for(let a of f){if(a.attached||!b&&!1!==a.headed){g.push(a.name);continue}await c.exec("playwright-cli close",{env:{...d,PLAYWRIGHT_CLI_SESSION:a.name},timeoutMs:15e3}).catch(()=>{})}return await F(),g}let L=()=>N(g.PATHS.output),M=()=>N(".playwright-cli");async function N(a){let b=(0,f.join)(o,a),c=await (0,d.readdir)(b,{withFileTypes:!0}).catch(()=>[]),e=Date.now()-g.WORKSPACE_KEEP.forMs;for(let a of c){if(!a.isFile())continue;let c=(0,f.join)(b,a.name),g=await (0,d.stat)(c).catch(()=>null);g&&g.mtimeMs<e&&await (0,d.unlink)(c).catch(()=>{})}}async function O(){return(await (0,d.readdir)((0,f.join)(o,g.PATHS.scratch),{withFileTypes:!0}).catch(()=>[])).filter(a=>a.isDirectory()).map(a=>`${g.PATHS.scratch}/${a.name}`)}async function P(a){let b=Date.now()-g.WORKSPACE_KEEP.forMs,c=[];for(let e of a){let a=(0,f.join)(o,e),g=await (0,d.stat)(a).catch(()=>null);g?.isDirectory()&&!(g.mtimeMs>=b)&&(await (0,d.rm)(a,{recursive:!0,force:!0}).catch(()=>{}),c.push(e))}return c}let Q={"pnpm-workspace.yaml":"packages:\n - '**'\n",".npmrc":"recursive-install=false\n"};async function R(){for(let a of[...r,".playwright"])await (0,d.mkdir)((0,f.join)(o,a),{recursive:!0});for(let[a,b]of Object.entries(Q))await (0,d.writeFile)((0,f.join)(o,a),b,{flag:"wx"}).catch(()=>{});return(({workingDirectory:a,spill:b,toolPath:c})=>{let e=(0,f.resolve)(a),g=(c??[]).filter(Boolean).join(":"),h=a=>a.startsWith("/")||/^[A-Za-z]:/.test(a)?a:(0,f.resolve)(e,a);return{cwd:e,resolve:h,readFile:(a,b)=>(0,d.readFile)(h(a),b),async writeFile(a,b){let c=h(a);await (0,d.mkdir)((0,f.join)(c,".."),{recursive:!0}),await (0,d.writeFile)(c,b)},readdir:(a,b)=>(0,d.readdir)(h(a),b),fold:(a,c="output")=>m(a,c,e,b),async glob(a,{path:b=".",limit:c=200}={}){let d=h(b),e=RegExp("^"+a.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*\*\//g,"(?:.*/)?").replace(/\*/g,"[^/]*").replace(/\?/g,"[^/]")+"$"),g=[];for await(let a of l(d)){let b=(0,f.relative)(d,a).split(f.sep).join("/");if((e.test(b)||e.test(a))&&g.push(a),g.length>=c)break}return g},exec:(a,{cwd:c,timeoutMs:d=j.EXEC_TIMEOUT_MS,signal:f,env:k}={})=>new Promise(l=>{let n,o,p=function(){let a={...process.env};for(let b of Object.keys(a))/KEY|TOKEN|SECRET|PASSWORD|CREDENTIAL|_AUTH/i.test(b)&&delete a[b];return a.TERM="dumb",a.PAGER="cat",a.GIT_PAGER="cat",a}();g&&(p.PATH=`${p.PATH??""}:${g}`);let q=(0,i.spawn)(a,{shell:!0,cwd:c?h(c):e,env:{...p,...k},detached:!0}),r="",s="";q.stdout?.on("data",a=>r+=a),q.stderr?.on("data",a=>s+=a);let t=a=>{try{q.pid&&process.kill(-q.pid,a)}catch{q.kill(a)}},u=!1,v=async a=>{u||(u=!0,clearTimeout(x),clearTimeout(n),clearTimeout(o),f?.removeEventListener("abort",y),l({...a,stdout:await m(a.stdout,"stdout",e,b),stderr:await m(a.stderr,"stderr",e,b)}))},w=a=>{n||u||(s+=`
6
- [${a}]`,t("SIGTERM"),n=setTimeout(()=>{s+="\n[Killed: it did not exit on SIGTERM]",t("SIGKILL"),o=setTimeout(()=>{q.stdout?.destroy(),q.stderr?.destroy(),v({stdout:r,stderr:s,exitCode:-1})},1e3)},j.EXEC_KILL_GRACE_MS))},x=setTimeout(()=>w(`Timed out after ${d}ms`),d),y=()=>w("Aborted");f?.aborted?y():f?.addEventListener("abort",y,{once:!0}),q.on("close",a=>v({stdout:r,stderr:s,exitCode:a??-1})),q.on("error",a=>v({stdout:r,stderr:s+String(a),exitCode:-1}))})}})({workingDirectory:o,spill:{dir:g.PATHS.output,...g.TOOL_OUTPUT},toolPath:p})}async function S(a,b){let c=a.map(a=>(0,f.resolve)(o,a));if(b){let a=0;for await(let d of l((0,f.join)(o,b)))if(c.push(d),(a+=1)>=500)break}let e=new Map;for(let a of c){let b=await (0,d.stat)(a).catch(()=>null);if(!b?.isFile())continue;let c=(0,f.relative)(o,a);e.set(c&&!c.startsWith("..")?c:a,b.mtimeMs)}return[...e].sort((a,b)=>a[1]-b[1]).map(([a])=>a)}async function T(a,b){await (0,d.rm)((0,f.join)(o,w(a,b)),{recursive:!0,force:!0}).catch(()=>{})}a.s(["ARTIFACTS",0,q,"WORKSPACE",0,o,"botArtifacts",0,z,"botBrowserSession",0,(a,c)=>`${a}-bot-${(0,b.createHash)("sha256").update(c.trim().toLowerCase()).digest("hex").slice(0,20)}`,"botFolder",0,y,"botFolderName",0,x,"botShellEnv",0,a=>({THURSDAY_ARTIFACTS:z(a)}),"closeHiddenBrowser",0,G,"closeJobShell",0,H,"filesOnDisk",0,S,"insideWorkspace",0,v,"jobScratch",0,w,"jobShellEnv",0,C,"listScratchFolders",0,O,"openBotFolders",0,A,"openJobScratch",0,B,"openWorkspace",0,R,"pruneJobFiles",0,F,"readMachineTools",0,E,"removeJobBrowsers",0,I,"removeJobScratch",0,T,"removeUnchangedFolders",0,P,"writeRefusal",0,function(a,b){if(t(o,a)){let d=(0,f.relative)(o,a),[e,h]=d.split(f.sep);return e&&s.has(e)?b&&e===g.PATHS.artifacts&&h&&h.toLowerCase()!==x(b).toLowerCase()&&!(0,c.existsSync)((0,f.join)(q,h))?`Not written: ${d} would sit loose at the top of ${g.PATHS.artifacts}/. Your finished work goes in ${z(b)}/.`:null:`Not written: ${d||"the workspace root"} is outside the workspace's folders. Finished work goes under ${b?z(b):g.PATHS.artifacts}/, code under ${g.PATHS.projects}/, your own kit under ${g.PATHS.bots}/, and this job's working material under ${g.PATHS.scratch}/.`}return t(n,a)?`Not written: ${a} is inside the app that is running you, not the user's files. Work in ${o}; outside it, write only where the user pointed you.`:null}],821415)}];
6
+ [${a}]`,t("SIGTERM"),n=setTimeout(()=>{s+="\n[Killed: it did not exit on SIGTERM]",t("SIGKILL"),o=setTimeout(()=>{q.stdout?.destroy(),q.stderr?.destroy(),v({stdout:r,stderr:s,exitCode:-1})},1e3)},j.EXEC_KILL_GRACE_MS))},x=setTimeout(()=>w(`Timed out after ${d}ms`),d),y=()=>w("Aborted");f?.aborted?y():f?.addEventListener("abort",y,{once:!0}),q.on("close",a=>v({stdout:r,stderr:s,exitCode:a??-1})),q.on("error",a=>v({stdout:r,stderr:s+String(a),exitCode:-1}))})}})({workingDirectory:o,spill:{dir:g.PATHS.output,...g.TOOL_OUTPUT},toolPath:p})}async function S(a,b){let c=a.map(a=>(0,f.resolve)(o,a));if(b){let a=0;for await(let d of l((0,f.join)(o,b)))if(c.push(d),(a+=1)>=500)break}let e=new Map;for(let a of c){let b=await (0,d.stat)(a).catch(()=>null);if(!b?.isFile())continue;let c=(0,f.relative)(o,a);e.set(c&&!c.startsWith("..")?c:a,b.mtimeMs)}return[...e].sort((a,b)=>a[1]-b[1]).map(([a])=>a)}async function T(a,b){await (0,d.rm)((0,f.join)(o,w(a,b)),{recursive:!0,force:!0}).catch(()=>{})}a.s(["ARTIFACTS",0,q,"WORKSPACE",0,o,"botArtifacts",0,z,"botBrowserSession",0,(a,c)=>`${a}-bot-${(0,b.createHash)("sha256").update(c.trim().toLowerCase()).digest("hex").slice(0,20)}`,"botFolder",0,y,"botFolderName",0,x,"botShellEnv",0,a=>({THURSDAY_ARTIFACTS:z(a),THURSDAY_SKILLS:(0,f.join)(g.APP_DIR,g.PATHS.skills.default)}),"closeHiddenBrowser",0,G,"closeJobShell",0,H,"filesOnDisk",0,S,"insideWorkspace",0,v,"jobScratch",0,w,"jobShellEnv",0,C,"listScratchFolders",0,O,"openBotFolders",0,A,"openJobScratch",0,B,"openWorkspace",0,R,"pruneJobFiles",0,F,"readMachineTools",0,E,"removeJobBrowsers",0,I,"removeJobScratch",0,T,"removeUnchangedFolders",0,P,"writeRefusal",0,function(a,b){if(t(o,a)){let d=(0,f.relative)(o,a),[e,h]=d.split(f.sep);return e&&s.has(e)?b&&e===g.PATHS.artifacts&&h&&h.toLowerCase()!==x(b).toLowerCase()&&!(0,c.existsSync)((0,f.join)(q,h))?`Not written: ${d} would sit loose at the top of ${g.PATHS.artifacts}/. Your finished work goes in ${z(b)}/.`:null:`Not written: ${d||"the workspace root"} is outside the workspace's folders. Finished work goes under ${b?z(b):g.PATHS.artifacts}/, code under ${g.PATHS.projects}/, your own kit under ${g.PATHS.bots}/, and this job's working material under ${g.PATHS.scratch}/.`}return t(n,a)?`Not written: ${a} is inside the app that is running you, not the user's files. Work in ${o}; outside it, write only where the user pointed you.`:null}],821415)}];
7
7
 
8
8
  //# sourceMappingURL=%5Broot-of-the-server%5D__1w9hqq8._.js.map
@@ -1,4 +1,4 @@
1
- module.exports=[701876,a=>{"use strict";var b=a.i(451208);a.s([],489277),a.i(489277),a.s(["7f284980eddf0dc50d6dc014ce41f10d9aaa77294a",()=>b.openFileAction],701876)},451208,a=>{"use strict";var b=a.i(137936),c=a.i(569572),d=a.i(821415),e=a.i(941981),f=a.i(225689),g=a.i(293480),h=a.i(874533),i=a.i(912714),j=a.i(812057);let k={darwin:a=>["open",[a]],win32:a=>["cmd.exe",["/c","start","",a]],linux:a=>["xdg-open",[a]]};async function l(a){await (0,i.access)(a);let b=k[process.platform]?.(a);if(!b)throw Error(`Opening files is not wired up on ${process.platform}.`);let[c,d]=b;await (0,j.promisify)(h.execFile)(c,d,{windowsHide:!0})}var m=a.i(182248),n=a.i(713095);let o=(0,f.serverAction)(async a=>{let b=a.trim();b||(0,g.publicError)("Which file?");let c=(await (0,d.openWorkspace)()).resolve(b);try{await l(c)}catch(a){(0,g.publicError)(`Could not open ${b}: ${(0,m.errorToString)(a)}`)}}),p=(0,f.serverAction)(async a=>{let b=a.trim();b||(0,g.publicError)("Which file?"),await (0,e.deleteWorkspaceFile)(b)}),q=(0,f.serverAction)(async()=>(0,e.emptyScratch)()),r=(0,f.serverAction)(async a=>{a instanceof FormData||(0,g.publicError)("No files came with that.");let b=a.getAll("file").filter(a=>a instanceof File&&a.size>0);b.length||(0,g.publicError)("No files came with that."),b.length>c.GIVEN_FILES.perMessage&&(0,g.publicError)(`At most ${c.GIVEN_FILES.perMessage} files at a time.`);let d=b.find(a=>a.size>c.GIVEN_FILES.maxBytes);return d&&(0,g.publicError)(`${d.name} is larger than ${Math.round(c.GIVEN_FILES.maxBytes/1024/1024)} MB.`),(0,e.keepGivenFiles)(b)});(0,n.ensureServerEntryExports)([o,p,q,r]),(0,b.registerServerReference)(o,"7f284980eddf0dc50d6dc014ce41f10d9aaa77294a",null),(0,b.registerServerReference)(p,"7f386fcb5dafb367fade673d0783e6ab91d1cb713f",null),(0,b.registerServerReference)(q,"7fc68b7e34326b980091695084d6ee2298e41557f2",null),(0,b.registerServerReference)(r,"7fe2d70a70024f0fa498ebfe3c0e167bd1c00b608e",null),a.s(["deleteWorkspaceFileAction",0,p,"emptyScratchAction",0,q,"giveFilesAction",0,r,"openFileAction",0,o],451208)},941981,a=>{"use strict";var b=a.i(912714),c=a.i(750227),d=a.i(569572),e=a.i(293480);a.i(684321);var f=a.i(821415);async function g(a){let e=await (0,f.openWorkspace)(),g=new Set(await (0,b.readdir)((0,c.join)(f.WORKSPACE,d.GIVEN_FILES.dir)).catch(()=>[])),h=[];for(let b of a){let a=b.name.normalize("NFC").replace(/[^\p{L}\p{N}._-]+/gu,"-").replace(/^[-.]+|-+$/g,"")||"file",c=a.lastIndexOf("."),f=c>0?a.slice(0,c):a,i=c>0?a.slice(c):"",j=a;for(let a=2;g.has(j);a++)j=`${f}-${a}${i}`;g.add(j);let k=`${d.GIVEN_FILES.dir}/${j}`;await e.writeFile(k,Buffer.from(await b.arrayBuffer())),h.push(k)}return h}async function h(a){let c=await (0,f.insideWorkspace)(a);c||(0,e.publicError)("Outside the workspace");let d=await (0,b.stat)(c).catch(()=>null);d||(0,e.publicError)("File not found"),d.isFile()||(0,e.publicError)("That is a folder, not a file"),await (0,b.rm)(c)}async function i(){let a=(0,c.join)(f.WORKSPACE,d.PATHS.scratch);for(let d of(await (0,b.readdir)(a).catch(()=>[])))await (0,b.rm)((0,c.join)(a,d),{recursive:!0,force:!0})}a.s(["deleteWorkspaceFile",0,h,"emptyScratch",0,i,"keepGivenFiles",0,g])},225689,a=>{"use strict";a.i(570396);var b=a.i(673727),c=a.i(975160),d=a.i(176668),e=a.i(293480);let f=a=>!!a&&"object"==typeof a&&(!0===a.$ok||!1===a.$ok),g=a=>f(a)&&a.$ok,h=a=>({$ok:!0,data:a}),i=a=>({$ok:!1,message:a});async function j(a){try{let b=h(await a());for(;g(b)&&f(b.data);)b=b.data;return b}catch(a){if((0,b.unstable_rethrow)(a),(0,e.isPublicError)(a))return i(a.message);if(a instanceof c.ZodError)return i(a.issues[0]?.message);if(f(a)&&!a.$ok)return a;return d.logger.error(a),i()}}a.s(["serverAction",0,a=>(...b)=>j(()=>a(...b))],225689)},293480,a=>{"use strict";class b extends Error{message;constructor(a){super(a),this.message=a}}a.s(["isPublicError",0,a=>a instanceof b,"publicError",0,function(a){throw new b(a)}])},832030,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_node_readline_1u65a-m._.js","server/chunks/ssr/node_modules_consola_dist_chunks_prompt_mjs_1j4x-_j._.js"].map(b=>a.l(b))).then(()=>b(322479)))},713095,(a,b,c)=>{"use strict";function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
1
+ module.exports=[701876,a=>{"use strict";var b=a.i(451208);a.s([],489277),a.i(489277),a.s(["7f8d58bd1288271da847b9deff4bb67295444fd389",()=>b.openFileAction],701876)},451208,a=>{"use strict";var b=a.i(137936),c=a.i(569572),d=a.i(821415),e=a.i(941981),f=a.i(225689),g=a.i(293480),h=a.i(874533),i=a.i(912714),j=a.i(812057);let k={darwin:a=>["open",[a]],win32:a=>["cmd.exe",["/c","start","",a]],linux:a=>["xdg-open",[a]]};async function l(a){await (0,i.access)(a);let b=k[process.platform]?.(a);if(!b)throw Error(`Opening files is not wired up on ${process.platform}.`);let[c,d]=b;await (0,j.promisify)(h.execFile)(c,d,{windowsHide:!0})}var m=a.i(182248),n=a.i(713095);let o=(0,f.serverAction)(async a=>{let b=a.trim();b||(0,g.publicError)("Which file?");let c=(await (0,d.openWorkspace)()).resolve(b);try{await l(c)}catch(a){(0,g.publicError)(`Could not open ${b}: ${(0,m.errorToString)(a)}`)}}),p=(0,f.serverAction)(async a=>{let b=a.trim();b||(0,g.publicError)("Which file?"),await (0,e.deleteWorkspaceFile)(b)}),q=(0,f.serverAction)(async()=>(0,e.emptyScratch)()),r=(0,f.serverAction)(async a=>{a instanceof FormData||(0,g.publicError)("No files came with that.");let b=a.getAll("file").filter(a=>a instanceof File&&a.size>0);b.length||(0,g.publicError)("No files came with that."),b.length>c.GIVEN_FILES.perMessage&&(0,g.publicError)(`At most ${c.GIVEN_FILES.perMessage} files at a time.`);let d=b.find(a=>a.size>c.GIVEN_FILES.maxBytes);return d&&(0,g.publicError)(`${d.name} is larger than ${Math.round(c.GIVEN_FILES.maxBytes/1024/1024)} MB.`),(0,e.keepGivenFiles)(b)});(0,n.ensureServerEntryExports)([o,p,q,r]),(0,b.registerServerReference)(o,"7f8d58bd1288271da847b9deff4bb67295444fd389",null),(0,b.registerServerReference)(p,"7f018e766e37c74d20596a96676bff15026135e01b",null),(0,b.registerServerReference)(q,"7f621cca3daf8c0930d78dcfd588de1da610762acd",null),(0,b.registerServerReference)(r,"7f3eea94981f7506ef292d2f74a1b89d2278978bf3",null),a.s(["deleteWorkspaceFileAction",0,p,"emptyScratchAction",0,q,"giveFilesAction",0,r,"openFileAction",0,o],451208)},941981,a=>{"use strict";var b=a.i(912714),c=a.i(750227),d=a.i(569572),e=a.i(293480);a.i(684321);var f=a.i(821415);async function g(a){let e=await (0,f.openWorkspace)(),g=new Set(await (0,b.readdir)((0,c.join)(f.WORKSPACE,d.GIVEN_FILES.dir)).catch(()=>[])),h=[];for(let b of a){let a=b.name.normalize("NFC").replace(/[^\p{L}\p{N}._-]+/gu,"-").replace(/^[-.]+|-+$/g,"")||"file",c=a.lastIndexOf("."),f=c>0?a.slice(0,c):a,i=c>0?a.slice(c):"",j=a;for(let a=2;g.has(j);a++)j=`${f}-${a}${i}`;g.add(j);let k=`${d.GIVEN_FILES.dir}/${j}`;await e.writeFile(k,Buffer.from(await b.arrayBuffer())),h.push(k)}return h}async function h(a){let c=await (0,f.insideWorkspace)(a);c||(0,e.publicError)("Outside the workspace");let d=await (0,b.stat)(c).catch(()=>null);d||(0,e.publicError)("File not found"),d.isFile()||(0,e.publicError)("That is a folder, not a file"),await (0,b.rm)(c)}async function i(){let a=(0,c.join)(f.WORKSPACE,d.PATHS.scratch);for(let d of(await (0,b.readdir)(a).catch(()=>[])))await (0,b.rm)((0,c.join)(a,d),{recursive:!0,force:!0})}a.s(["deleteWorkspaceFile",0,h,"emptyScratch",0,i,"keepGivenFiles",0,g])},225689,a=>{"use strict";a.i(570396);var b=a.i(673727),c=a.i(975160),d=a.i(176668),e=a.i(293480);let f=a=>!!a&&"object"==typeof a&&(!0===a.$ok||!1===a.$ok),g=a=>f(a)&&a.$ok,h=a=>({$ok:!0,data:a}),i=a=>({$ok:!1,message:a});async function j(a){try{let b=h(await a());for(;g(b)&&f(b.data);)b=b.data;return b}catch(a){if((0,b.unstable_rethrow)(a),(0,e.isPublicError)(a))return i(a.message);if(a instanceof c.ZodError)return i(a.issues[0]?.message);if(f(a)&&!a.$ok)return a;return d.logger.error(a),i()}}a.s(["serverAction",0,a=>(...b)=>j(()=>a(...b))],225689)},293480,a=>{"use strict";class b extends Error{message;constructor(a){super(a),this.message=a}}a.s(["isPublicError",0,a=>a instanceof b,"publicError",0,function(a){throw new b(a)}])},832030,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_node_readline_1u65a-m._.js","server/chunks/ssr/node_modules_consola_dist_chunks_prompt_mjs_1j4x-_j._.js"].map(b=>a.l(b))).then(()=>b(322479)))},713095,(a,b,c)=>{"use strict";function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
2
2
  Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},137936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(211857)}];
3
3
 
4
4
  //# sourceMappingURL=_097-ljd._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[436788,a=>{a.v(b=>Promise.all(["server/chunks/ssr/_1-zyvdb._.js"].map(b=>a.l(b))).then(()=>b(964665)))},348436,a=>{a.v(b=>Promise.all(["server/chunks/ssr/_0scf7xy._.js","server/chunks/ssr/_0kjj5ts._.js"].map(b=>a.l(b))).then(()=>b(581662)))},315458,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_1v93o68._.js","server/chunks/ssr/features_bot_1nr94ks._.js"].map(b=>a.l(b))).then(()=>b(82951)))},228887,a=>{a.v(a=>Promise.resolve().then(()=>a(405593)))},930209,a=>{a.v(b=>Promise.all(["server/chunks/ssr/_1whffg_._.js","server/chunks/ssr/features_connectors_components_mcp-setting_tsx_0jmbgvp._.js"].map(b=>a.l(b))).then(()=>b(26444)))},277297,a=>{a.v(b=>Promise.all(["server/chunks/ssr/_1tih-7v._.js","server/chunks/ssr/features_memory_components_memory-setting_tsx_0oa43sw._.js"].map(b=>a.l(b))).then(()=>b(857022)))},553433,a=>{a.v(b=>Promise.all(["server/chunks/ssr/_0fqhhwi._.js","server/chunks/ssr/features_routine_components_routine-setting_tsx_055fknz._.js"].map(b=>a.l(b))).then(()=>b(41014)))},15022,a=>{a.v(b=>Promise.all(["server/chunks/ssr/_1neoj22._.js"].map(b=>a.l(b))).then(()=>b(109788)))},479648,a=>{a.v(b=>Promise.all(["server/chunks/ssr/_1scosxl._.js","server/chunks/ssr/_0l_mcfz._.js"].map(b=>a.l(b))).then(()=>b(703228)))},502073,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_trash_mjs_0px2gzr._.js","server/chunks/ssr/_1flbs77._.js"].map(b=>a.l(b))).then(()=>b(922056)))},895186,a=>{a.v(b=>Promise.all(["server/chunks/ssr/_0ltz2q5._.js"].map(b=>a.l(b))).then(()=>b(901729)))},72597,a=>{a.v(a=>Promise.resolve().then(()=>a(809750)))},628472,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@vercel_oidc_dist_token_1mnivwk.js"].map(b=>a.l(b))).then(()=>b(779476)))},715837,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_node_readline_1u65a-m._.js","server/chunks/ssr/node_modules_consola_dist_chunks_prompt_mjs_05cwqv2._.js"].map(b=>a.l(b))).then(()=>b(270101)))},992025,a=>{a.v(a=>Promise.resolve().then(()=>a(948986)))},929490,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_13kwejm._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-SVP7TREG_mjs_03r5m21._.js","server/chunks/ssr/node_modules_@mermaid-js_parser_dist_0lct0v1._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(161868)))},969267,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_0x630an._.js","server/chunks/ssr/node_modules_@mermaid-js_parser_dist_1feyqvf._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js","server/chunks/ssr/node_modules_cytoscape_dist_cytoscape_esm_mjs_0arohj6._.js","server/chunks/ssr/node_modules_11trqmi._.js"].map(b=>a.l(b))).then(()=>b(626047)))},784520,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_0qwth-_._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_blockDiagram-I7D4REHJ_mjs_0qg1lr5._.js"].map(b=>a.l(b))).then(()=>b(155638)))},613707,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-F27PBJKO_mjs_0ms0zmb._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_c4Diagram-7LVT6UL2_mjs_06bhe3-._.js"].map(b=>a.l(b))).then(()=>b(557384)))},854712,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_1v463pe._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-TICWLB2K_mjs_1t97mh7._.js"].map(b=>a.l(b))).then(()=>b(336243)))},892569,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_0thh8pk._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-TICWLB2K_mjs_1t97mh7._.js"].map(b=>a.l(b))).then(()=>b(538994)))},989520,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_1nl12mt._.js","server/chunks/ssr/node_modules_cytoscape_dist_cytoscape_esm_mjs_0arohj6._.js"].map(b=>a.l(b))).then(()=>b(127273)))},388833,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_0yvz9e0._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js","server/chunks/ssr/node_modules_@mermaid-js_parser_dist_18pinup._.js"].map(b=>a.l(b))).then(()=>b(517237)))},390118,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_dagre-GXQ25YYZ_mjs_0k_lz8d._.js","server/chunks/ssr/node_modules_dagre-d3-es_src_dagre_index_0g66msq.js"].map(b=>a.l(b))).then(()=>b(920028)))},831868,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_03d0rfz._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js","server/chunks/ssr/node_modules_@mermaid-js_parser_dist_0eji647._.js"].map(b=>a.l(b))).then(()=>b(767190)))},840309,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_1s-gb-1._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js","server/chunks/ssr/node_modules_@mermaid-js_parser_dist_18pinup._.js"].map(b=>a.l(b))).then(()=>b(464445)))},835410,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_06bb4q8._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js","server/chunks/ssr/node_modules_@mermaid-js_parser_dist_18pinup._.js"].map(b=>a.l(b))).then(()=>b(617803)))},728413,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_0uyh_vb._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_diagram-VX7I27RA_mjs_0dl8gzm._.js","server/chunks/ssr/node_modules_@mermaid-js_parser_dist_13hksv_._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(217755)))},992149,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_12et8d5._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js","server/chunks/ssr/node_modules_@mermaid-js_parser_dist_18pinup._.js"].map(b=>a.l(b))).then(()=>b(752425)))},70220,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_1af3w91._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-SVP7TREG_mjs_03r5m21._.js","server/chunks/ssr/node_modules_@mermaid-js_parser_dist_0lct0v1._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(137554)))},595386,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_0il0v7d._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_erDiagram-RLTQ6QDP_mjs_18g60i7._.js"].map(b=>a.l(b))).then(()=>b(239909)))},707604,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_0ql0igl._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-SHT3W25Y_mjs_00p5j42._.js"].map(b=>a.l(b))).then(()=>b(1258)))},598518,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_1831lye._.js","server/chunks/ssr/node_modules_1_d0q_7._.js"].map(b=>a.l(b))).then(()=>b(722966)))},126571,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_05ybmta._.js","server/chunks/ssr/node_modules_@mermaid-js_parser_dist_0dlpxwr._.js","server/chunks/ssr/1q96_modules_mermaid_dist_chunks_mermaid_core_gitGraphDiagram-WWUBYQGX_mjs_0g15hiw._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(349834)))},814636,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_04_sbbc._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js","server/chunks/ssr/node_modules_@mermaid-js_parser_dist_1ok0411._.js"].map(b=>a.l(b))).then(()=>b(525902)))},147136,a=>{a.v(b=>Promise.all(["server/chunks/ssr/1q96_modules_mermaid_dist_chunks_mermaid_core_ishikawaDiagram-5VMMS53U_mjs_05o2e4d._.js"].map(b=>a.l(b))).then(()=>b(206340)))},719552,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_201yvda._.js","server/chunks/ssr/1q96_modules_mermaid_dist_chunks_mermaid_core_journeyDiagram-3NMN7TZE_mjs_16ehrbl._.js"].map(b=>a.l(b))).then(()=>b(450754)))},653408,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-5VM5RSS4_mjs_0tg6kya._.js","server/chunks/ssr/1q96_modules_mermaid_dist_chunks_mermaid_core_kanban-definition-UXKFOSKX_mjs_1uiqd5g._.js"].map(b=>a.l(b))).then(()=>b(301315)))},165250,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_1turj0n._.js","server/chunks/ssr/1daa_mermaid_dist_chunks_mermaid_core_mindmap-definition-YA3MSWOX_mjs_19k8byt._.js"].map(b=>a.l(b))).then(()=>b(790158)))},325455,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_0dzm4um._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-SVP7TREG_mjs_03r5m21._.js","server/chunks/ssr/node_modules_@mermaid-js_parser_dist_0lct0v1._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(595628)))},934650,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_10wnlbk._.js","server/chunks/ssr/node_modules_1rg7lj4._.js","server/chunks/ssr/node_modules_@mermaid-js_parser_dist_1sgfrma._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(748116)))},389088,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_111pp7w._.js","server/chunks/ssr/1q96_modules_mermaid_dist_chunks_mermaid_core_quadrantDiagram-AXDQQJYC_mjs_0h4a9wq._.js"].map(b=>a.l(b))).then(()=>b(888630)))},523431,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_0th357h._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-SVP7TREG_mjs_03r5m21._.js","server/chunks/ssr/node_modules_@mermaid-js_parser_dist_0lct0v1._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(846881)))},458290,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_1turj0n._.js","server/chunks/ssr/1daa_mermaid_dist_chunks_mermaid_core_requirementDiagram-BXWQKSXE_mjs_0kwiv6n._.js"].map(b=>a.l(b))).then(()=>b(443250)))},215730,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_d3-scale_src_1tr1qwb._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_sankeyDiagram-P5KCCOFB_mjs_187yyta._.js"].map(b=>a.l(b))).then(()=>b(656950)))},295724,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_1o1kg4c._.js","server/chunks/ssr/1q96_modules_mermaid_dist_chunks_mermaid_core_sequenceDiagram-WJ2MYXX4_mjs_1n01m3a._.js"].map(b=>a.l(b))).then(()=>b(571979)))},482052,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_sizeCapture-INFHLROL_mjs_179zv_p._.js"].map(b=>a.l(b))).then(()=>b(865684)))},438231,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_1rxlz7e._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_stateDiagram-D77RDMKH_mjs_1mer5fv._.js","server/chunks/ssr/node_modules_dagre-d3-es_src_dagre_index_0g66msq.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-IMKFNOWR_mjs_0vdq1-l._.js"].map(b=>a.l(b))).then(()=>b(168538)))},991687,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_0jkhu0x._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-IMKFNOWR_mjs_0vdq1-l._.js"].map(b=>a.l(b))).then(()=>b(472309)))},860094,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_swimlanes-42K2YHIH_mjs_0scuk32._.js"].map(b=>a.l(b))).then(()=>b(827033)))},819980,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_04f6p6a._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-SHT3W25Y_mjs_00p5j42._.js"].map(b=>a.l(b))).then(()=>b(1471)))},623969,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_d3-shape_src_arc_1-w13bo.js","server/chunks/ssr/1daa_mermaid_dist_chunks_mermaid_core_timeline-definition-24CTP7MA_mjs_10dmaxt._.js"].map(b=>a.l(b))).then(()=>b(301394)))},788557,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_vennDiagram-4TSXK5OY_mjs_0anqu7y._.js"].map(b=>a.l(b))).then(()=>b(509170)))},925161,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_0x630an._.js","server/chunks/ssr/1q96_modules_mermaid_dist_chunks_mermaid_core_wardleyDiagram-VM6X3IG4_mjs_0kh3fjb._.js","server/chunks/ssr/node_modules_@mermaid-js_parser_dist_17wxxyr._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(914844)))},506751,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_0xht9wg._.js","server/chunks/ssr/1q96_modules_mermaid_dist_chunks_mermaid_core_xychartDiagram-S5SC5T6Z_mjs_08t5e44._.js"].map(b=>a.l(b))).then(()=>b(176947)))},236914,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_streamdown_dist_highlighted-body-KPVGNVTW_1fnf894.js"].map(b=>a.l(b))).then(()=>b(391282)))},172487,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_streamdown_dist_mermaid-HWGCJPDP_093xi20.js"].map(b=>a.l(b))).then(()=>b(853409)))}];
1
+ module.exports=[436788,a=>{a.v(b=>Promise.all(["server/chunks/ssr/_0u7ko71._.js"].map(b=>a.l(b))).then(()=>b(964665)))},348436,a=>{a.v(b=>Promise.all(["server/chunks/ssr/_1w2oba6._.js","server/chunks/ssr/_1ybo1hd._.js"].map(b=>a.l(b))).then(()=>b(581662)))},315458,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_1v93o68._.js","server/chunks/ssr/features_bot_0s11m4r._.js"].map(b=>a.l(b))).then(()=>b(82951)))},228887,a=>{a.v(a=>Promise.resolve().then(()=>a(405593)))},930209,a=>{a.v(b=>Promise.all(["server/chunks/ssr/_1whffg_._.js","server/chunks/ssr/features_connectors_components_mcp-setting_tsx_0jmbgvp._.js"].map(b=>a.l(b))).then(()=>b(26444)))},277297,a=>{a.v(b=>Promise.all(["server/chunks/ssr/_1tih-7v._.js","server/chunks/ssr/features_memory_components_memory-setting_tsx_0oa43sw._.js"].map(b=>a.l(b))).then(()=>b(857022)))},553433,a=>{a.v(b=>Promise.all(["server/chunks/ssr/_0fqhhwi._.js","server/chunks/ssr/features_routine_components_routine-setting_tsx_055fknz._.js"].map(b=>a.l(b))).then(()=>b(41014)))},15022,a=>{a.v(b=>Promise.all(["server/chunks/ssr/_1neoj22._.js"].map(b=>a.l(b))).then(()=>b(109788)))},479648,a=>{a.v(b=>Promise.all(["server/chunks/ssr/_1scosxl._.js","server/chunks/ssr/_1tawxu2._.js"].map(b=>a.l(b))).then(()=>b(703228)))},502073,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_trash_mjs_0px2gzr._.js","server/chunks/ssr/_1bhy4yg._.js"].map(b=>a.l(b))).then(()=>b(922056)))},895186,a=>{a.v(b=>Promise.all(["server/chunks/ssr/_0wd_o8-._.js"].map(b=>a.l(b))).then(()=>b(901729)))},72597,a=>{a.v(a=>Promise.resolve().then(()=>a(809750)))},628472,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@vercel_oidc_dist_token_1mnivwk.js"].map(b=>a.l(b))).then(()=>b(779476)))},715837,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_node_readline_1u65a-m._.js","server/chunks/ssr/node_modules_consola_dist_chunks_prompt_mjs_05cwqv2._.js"].map(b=>a.l(b))).then(()=>b(270101)))},992025,a=>{a.v(a=>Promise.resolve().then(()=>a(948986)))},929490,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_1-53ebx._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-SVP7TREG_mjs_03r5m21._.js","server/chunks/ssr/node_modules_@mermaid-js_parser_dist_0lct0v1._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(161868)))},969267,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_1x6uwvn._.js","server/chunks/ssr/node_modules_@mermaid-js_parser_dist_1feyqvf._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js","server/chunks/ssr/node_modules_cytoscape_dist_cytoscape_esm_mjs_0arohj6._.js","server/chunks/ssr/node_modules_11trqmi._.js"].map(b=>a.l(b))).then(()=>b(626047)))},784520,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_0qwth-_._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_blockDiagram-I7D4REHJ_mjs_0qg1lr5._.js"].map(b=>a.l(b))).then(()=>b(155638)))},613707,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-F27PBJKO_mjs_0ms0zmb._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_c4Diagram-7LVT6UL2_mjs_06bhe3-._.js"].map(b=>a.l(b))).then(()=>b(557384)))},854712,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_1v463pe._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-TICWLB2K_mjs_1t97mh7._.js"].map(b=>a.l(b))).then(()=>b(336243)))},892569,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_0thh8pk._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-TICWLB2K_mjs_1t97mh7._.js"].map(b=>a.l(b))).then(()=>b(538994)))},989520,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_1nl12mt._.js","server/chunks/ssr/node_modules_cytoscape_dist_cytoscape_esm_mjs_0arohj6._.js"].map(b=>a.l(b))).then(()=>b(127273)))},388833,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_1en2jx5._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js","server/chunks/ssr/node_modules_@mermaid-js_parser_dist_18pinup._.js"].map(b=>a.l(b))).then(()=>b(517237)))},390118,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_dagre-GXQ25YYZ_mjs_0k_lz8d._.js","server/chunks/ssr/node_modules_dagre-d3-es_src_dagre_index_0g66msq.js"].map(b=>a.l(b))).then(()=>b(920028)))},831868,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_1-y9aho._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js","server/chunks/ssr/node_modules_@mermaid-js_parser_dist_0eji647._.js"].map(b=>a.l(b))).then(()=>b(767190)))},840309,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_06i6bli._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js","server/chunks/ssr/node_modules_@mermaid-js_parser_dist_18pinup._.js"].map(b=>a.l(b))).then(()=>b(464445)))},835410,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_0evjwh1._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js","server/chunks/ssr/node_modules_@mermaid-js_parser_dist_18pinup._.js"].map(b=>a.l(b))).then(()=>b(617803)))},728413,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_18jn2qo._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_diagram-VX7I27RA_mjs_0dl8gzm._.js","server/chunks/ssr/node_modules_@mermaid-js_parser_dist_13hksv_._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(217755)))},992149,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_1qe-oxg._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js","server/chunks/ssr/node_modules_@mermaid-js_parser_dist_18pinup._.js"].map(b=>a.l(b))).then(()=>b(752425)))},70220,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_0tf8_1e._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-SVP7TREG_mjs_03r5m21._.js","server/chunks/ssr/node_modules_@mermaid-js_parser_dist_0lct0v1._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(137554)))},595386,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_0il0v7d._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_erDiagram-RLTQ6QDP_mjs_18g60i7._.js"].map(b=>a.l(b))).then(()=>b(239909)))},707604,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_0ql0igl._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-SHT3W25Y_mjs_00p5j42._.js"].map(b=>a.l(b))).then(()=>b(1258)))},598518,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_1831lye._.js","server/chunks/ssr/node_modules_1_d0q_7._.js"].map(b=>a.l(b))).then(()=>b(722966)))},126571,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_211zgim._.js","server/chunks/ssr/node_modules_@mermaid-js_parser_dist_0dlpxwr._.js","server/chunks/ssr/1q96_modules_mermaid_dist_chunks_mermaid_core_gitGraphDiagram-WWUBYQGX_mjs_0g15hiw._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(349834)))},814636,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_1rjt833._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js","server/chunks/ssr/node_modules_@mermaid-js_parser_dist_1ok0411._.js"].map(b=>a.l(b))).then(()=>b(525902)))},147136,a=>{a.v(b=>Promise.all(["server/chunks/ssr/1q96_modules_mermaid_dist_chunks_mermaid_core_ishikawaDiagram-5VMMS53U_mjs_05o2e4d._.js"].map(b=>a.l(b))).then(()=>b(206340)))},719552,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_201yvda._.js","server/chunks/ssr/1q96_modules_mermaid_dist_chunks_mermaid_core_journeyDiagram-3NMN7TZE_mjs_16ehrbl._.js"].map(b=>a.l(b))).then(()=>b(450754)))},653408,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-5VM5RSS4_mjs_0tg6kya._.js","server/chunks/ssr/1q96_modules_mermaid_dist_chunks_mermaid_core_kanban-definition-UXKFOSKX_mjs_1uiqd5g._.js"].map(b=>a.l(b))).then(()=>b(301315)))},165250,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_1turj0n._.js","server/chunks/ssr/1daa_mermaid_dist_chunks_mermaid_core_mindmap-definition-YA3MSWOX_mjs_19k8byt._.js"].map(b=>a.l(b))).then(()=>b(790158)))},325455,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_0auzgvx._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-SVP7TREG_mjs_03r5m21._.js","server/chunks/ssr/node_modules_@mermaid-js_parser_dist_0lct0v1._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(595628)))},934650,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0y51bqj._.js","server/chunks/ssr/node_modules_1rg7lj4._.js","server/chunks/ssr/node_modules_@mermaid-js_parser_dist_1sgfrma._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(748116)))},389088,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_111pp7w._.js","server/chunks/ssr/1q96_modules_mermaid_dist_chunks_mermaid_core_quadrantDiagram-AXDQQJYC_mjs_0h4a9wq._.js"].map(b=>a.l(b))).then(()=>b(888630)))},523431,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_02zt4az._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-SVP7TREG_mjs_03r5m21._.js","server/chunks/ssr/node_modules_@mermaid-js_parser_dist_0lct0v1._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(846881)))},458290,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_1turj0n._.js","server/chunks/ssr/1daa_mermaid_dist_chunks_mermaid_core_requirementDiagram-BXWQKSXE_mjs_0kwiv6n._.js"].map(b=>a.l(b))).then(()=>b(443250)))},215730,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_d3-scale_src_1tr1qwb._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_sankeyDiagram-P5KCCOFB_mjs_187yyta._.js"].map(b=>a.l(b))).then(()=>b(656950)))},295724,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_1o1kg4c._.js","server/chunks/ssr/1q96_modules_mermaid_dist_chunks_mermaid_core_sequenceDiagram-WJ2MYXX4_mjs_1n01m3a._.js"].map(b=>a.l(b))).then(()=>b(571979)))},482052,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_sizeCapture-INFHLROL_mjs_179zv_p._.js"].map(b=>a.l(b))).then(()=>b(865684)))},438231,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_1rxlz7e._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_stateDiagram-D77RDMKH_mjs_1mer5fv._.js","server/chunks/ssr/node_modules_dagre-d3-es_src_dagre_index_0g66msq.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-IMKFNOWR_mjs_0vdq1-l._.js"].map(b=>a.l(b))).then(()=>b(168538)))},991687,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_0jkhu0x._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-IMKFNOWR_mjs_0vdq1-l._.js"].map(b=>a.l(b))).then(()=>b(472309)))},860094,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_swimlanes-42K2YHIH_mjs_0scuk32._.js"].map(b=>a.l(b))).then(()=>b(827033)))},819980,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_04f6p6a._.js","server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-SHT3W25Y_mjs_00p5j42._.js"].map(b=>a.l(b))).then(()=>b(1471)))},623969,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_d3-shape_src_arc_1-w13bo.js","server/chunks/ssr/1daa_mermaid_dist_chunks_mermaid_core_timeline-definition-24CTP7MA_mjs_10dmaxt._.js"].map(b=>a.l(b))).then(()=>b(301394)))},788557,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_vennDiagram-4TSXK5OY_mjs_0anqu7y._.js"].map(b=>a.l(b))).then(()=>b(509170)))},925161,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_1x6uwvn._.js","server/chunks/ssr/1q96_modules_mermaid_dist_chunks_mermaid_core_wardleyDiagram-VM6X3IG4_mjs_0kh3fjb._.js","server/chunks/ssr/node_modules_@mermaid-js_parser_dist_17wxxyr._.js","server/chunks/ssr/1daa_@mermaid-js_parser_dist_chunks_mermaid-parser_core_chunk-FOHPRMQF_mjs_0ybwfeq._.js"].map(b=>a.l(b))).then(()=>b(914844)))},506751,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_0xht9wg._.js","server/chunks/ssr/1q96_modules_mermaid_dist_chunks_mermaid_core_xychartDiagram-S5SC5T6Z_mjs_08t5e44._.js"].map(b=>a.l(b))).then(()=>b(176947)))},236914,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_streamdown_dist_highlighted-body-KPVGNVTW_1fnf894.js"].map(b=>a.l(b))).then(()=>b(391282)))},172487,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_streamdown_dist_mermaid-HWGCJPDP_093xi20.js"].map(b=>a.l(b))).then(()=>b(853409)))}];
2
2
 
3
- //# sourceMappingURL=_1tmu8z-._.js.map
3
+ //# sourceMappingURL=_0btzccu._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[869480,a=>{"use strict";var b=a.i(187924),c=a.i(767561),d=a.i(280281),e=a.i(313237),f=a.i(759497),g=a.i(405050);let h=(0,g.createServerReference)("7f0ce65e996cfa2473780a3cf0b38904069554f768",g.callServer,void 0,g.findSourceMapURL,"setKeepWorkingOnAction"),i="Work while the app is closed";a.s(["KeepWorkingSwitch",0,function(){let{data:a,mutate:g}=(0,f.useServerRoute)(c.queryKey.botKeepWorking),[j]=(0,e.useServerAction)(h,{onOk:()=>(0,f.revalidate)(c.queryKey.botKeepWorking)});return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"shrink-0 text-xs text-muted-foreground",title:"Off, closing the last tab stops running jobs and holds routines until one is open again. On, they run until the server stops.",children:i}),(0,b.jsx)(d.Switch,{checked:a??!1,disabled:void 0===a,onCheckedChange:a=>{g(a,!1),j(a)},"aria-label":i})]})}],869480)},272944,a=>{"use strict";var b=a.i(607396);a.s(["MoreHorizontal",()=>b.default])},738835,a=>{"use strict";var b=a.i(164831);let c={name:"play",size:24,node:[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]};c.node;let d=(0,b.default)(c);a.s(["Play",0,d],738835)},951675,a=>{"use strict";var b=a.i(164831);let c={name:"trash",size:24,node:[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],aliases:["trash-2"]};c.node;let d=(0,b.default)(c);a.s(["Trash2",0,d],951675)}];
1
+ module.exports=[869480,a=>{"use strict";var b=a.i(187924),c=a.i(767561),d=a.i(280281),e=a.i(313237),f=a.i(759497),g=a.i(405050);let h=(0,g.createServerReference)("7f157eae9449c071099b328bc394675b074c81a76c",g.callServer,void 0,g.findSourceMapURL,"setKeepWorkingOnAction"),i="Work while the app is closed";a.s(["KeepWorkingSwitch",0,function(){let{data:a,mutate:g}=(0,f.useServerRoute)(c.queryKey.botKeepWorking),[j]=(0,e.useServerAction)(h,{onOk:()=>(0,f.revalidate)(c.queryKey.botKeepWorking)});return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"shrink-0 text-xs text-muted-foreground",title:"Off, closing the last tab stops running jobs and holds routines until one is open again. On, they run until the server stops.",children:i}),(0,b.jsx)(d.Switch,{checked:a??!1,disabled:void 0===a,onCheckedChange:a=>{g(a,!1),j(a)},"aria-label":i})]})}],869480)},272944,a=>{"use strict";var b=a.i(607396);a.s(["MoreHorizontal",()=>b.default])},738835,a=>{"use strict";var b=a.i(164831);let c={name:"play",size:24,node:[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]};c.node;let d=(0,b.default)(c);a.s(["Play",0,d],738835)},951675,a=>{"use strict";var b=a.i(164831);let c={name:"trash",size:24,node:[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],aliases:["trash-2"]};c.node;let d=(0,b.default)(c);a.s(["Trash2",0,d],951675)}];
2
2
 
3
3
  //# sourceMappingURL=_0fqhhwi._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[777794,a=>{"use strict";var b=a.i(187924),c=a.i(497895);a.s(["Segmented",0,function({options:a,value:d,onChange:e,className:f,...g}){return(0,b.jsx)("div",{role:"radiogroup",className:(0,c.cn)("flex w-fit gap-0.5 rounded-full bg-muted p-0.75",f),...g,children:a.map(a=>{let f=a.value===d;return(0,b.jsx)("button",{type:"button",role:"radio","aria-checked":f,title:a.title,onClick:()=>e(a.value),className:(0,c.cn)("flex h-7 items-center justify-center gap-1.5 rounded-full px-3 text-[12.5px] whitespace-nowrap transition-colors outline-none focus-visible:ring-3 focus-visible:ring-ring/50",f?"bg-brand font-medium text-brand-foreground":"text-muted-foreground hover:text-foreground"),children:a.label},a.value)})})}])},379630,270390,a=>{"use strict";var b=a.i(187924);function c({className:a}){return(0,b.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",height:"24",viewBox:"0 0 24 24",className:a,width:"24",children:[(0,b.jsx)("path",{d:"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z",fill:"#4285F4"}),(0,b.jsx)("path",{d:"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z",fill:"#34A853"}),(0,b.jsx)("path",{d:"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z",fill:"#FBBC05"}),(0,b.jsx)("path",{d:"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z",fill:"#EA4335"}),(0,b.jsx)("path",{d:"M1 1h22v22H1z",fill:"none"})]})}function d({className:a}){return(0,b.jsxs)("svg",{"aria-hidden":"true",className:a,"data-view-component":"true",viewBox:"0 0 24 24",role:"img",xmlns:"http://www.w3.org/2000/svg",children:[(0,b.jsx)("title",{children:"OpenAI icon"}),(0,b.jsx)("path",{fill:"currentColor",d:"M22.2819 9.8211a5.9847 5.9847 0 0 0-.5157-4.9108 6.0462 6.0462 0 0 0-6.5098-2.9A6.0651 6.0651 0 0 0 4.9807 4.1818a5.9847 5.9847 0 0 0-3.9977 2.9 6.0462 6.0462 0 0 0 .7427 7.0966 5.98 5.98 0 0 0 .511 4.9107 6.051 6.051 0 0 0 6.5146 2.9001A5.9847 5.9847 0 0 0 13.2599 24a6.0557 6.0557 0 0 0 5.7718-4.2058 5.9894 5.9894 0 0 0 3.9977-2.9001 6.0557 6.0557 0 0 0-.7475-7.0729zm-9.022 12.6081a4.4755 4.4755 0 0 1-2.8764-1.0408l.1419-.0804 4.7783-2.7582a.7948.7948 0 0 0 .3927-.6813v-6.7369l2.02 1.1686a.071.071 0 0 1 .038.052v5.5826a4.504 4.504 0 0 1-4.4945 4.4944zm-9.6607-4.1254a4.4708 4.4708 0 0 1-.5346-3.0137l.142.0852 4.783 2.7582a.7712.7712 0 0 0 .7806 0l5.8428-3.3685v2.3324a.0804.0804 0 0 1-.0332.0615L9.74 19.9502a4.4992 4.4992 0 0 1-6.1408-1.6464zM2.3408 7.8956a4.485 4.485 0 0 1 2.3655-1.9728V11.6a.7664.7664 0 0 0 .3879.6765l5.8144 3.3543-2.0201 1.1685a.0757.0757 0 0 1-.071 0l-4.8303-2.7865A4.504 4.504 0 0 1 2.3408 7.872zm16.5963 3.8558L13.1038 8.364 15.1192 7.2a.0757.0757 0 0 1 .071 0l4.8303 2.7913a4.4944 4.4944 0 0 1-.6765 8.1042v-5.6772a.79.79 0 0 0-.407-.667zm2.0107-3.0231l-.142-.0852-4.7735-2.7818a.7759.7759 0 0 0-.7854 0L9.409 9.2297V6.8974a.0662.0662 0 0 1 .0284-.0615l4.8303-2.7866a4.4992 4.4992 0 0 1 6.6802 4.66zM8.3065 12.863l-2.02-1.1638a.0804.0804 0 0 1-.038-.0567V6.0742a4.4992 4.4992 0 0 1 7.3757-3.4537l-.142.0805L8.704 5.459a.7948.7948 0 0 0-.3927.6813zm1.0976-2.3654l2.602-1.4998 2.6069 1.4998v2.9994l-2.5974 1.4997-2.6067-1.4997Z"})]})}function e({className:a}){return(0,b.jsxs)("svg",{"aria-hidden":"true",className:a,"data-view-component":"true",viewBox:"0 0 35 33",children:[(0,b.jsx)("path",{d:"M13.2371 21.0407L24.3186 12.8506C24.8619 12.4491 25.6384 12.6057 25.8973 13.2294C27.2597 16.5185 26.651 20.4712 23.9403 23.1851C21.2297 25.8989 17.4581 26.4941 14.0108 25.1386L10.2449 26.8843C15.6463 30.5806 22.2053 29.6665 26.304 25.5601C29.5551 22.3051 30.562 17.8683 29.6205 13.8673L29.629 13.8758C28.2637 7.99809 29.9647 5.64871 33.449 0.844576C33.5314 0.730667 33.6139 0.616757 33.6964 0.5L29.1113 5.09055V5.07631L13.2343 21.0436",fill:"currentColor"}),(0,b.jsx)("path",{d:"M10.9503 23.0313C7.07343 19.3235 7.74185 13.5853 11.0498 10.2763C13.4959 7.82722 17.5036 6.82767 21.0021 8.2971L24.7595 6.55998C24.0826 6.07017 23.215 5.54334 22.2195 5.17313C17.7198 3.31926 12.3326 4.24192 8.67479 7.90126C5.15635 11.4239 4.0499 16.8403 5.94992 21.4622C7.36924 24.9165 5.04257 27.3598 2.69884 29.826C1.86829 30.7002 1.0349 31.5745 0.36364 32.5L10.9474 23.0341",fill:"currentColor"})]})}function f({className:a}){return(0,b.jsxs)("svg",{overflow:"visible",width:"100%",height:"100%",viewBox:"0 0 100 101",fill:"none",className:a,xmlns:"http://www.w3.org/2000/svg",role:"presentation",children:[(0,b.jsx)("path",{d:"M96.0000 40.0000 L99.5002 42.0000 L99.5002 43.5000 L98.5000 47.0000 L56.0000 57.0000 L52.0040 47.0708 L96.0000 40.0000 M96.0000 40.0000 ",fill:"#D97757",style:{transformOrigin:"50px 50px",transform:"rotate(330deg) scaleY(1.13102) rotate(-330deg)"}}),(0,b.jsx)("path",{d:"M80.1032 10.5903 L84.9968 11.6171 L86.2958 13.2179 L87.5346 17.0540 L87.0213 19.5007 L58.5000 58.5000 L49.0000 49.0000 L75.3008 14.4873 L80.1032 10.5903 M80.1032 10.5903 ",fill:"#D97757",style:{transformOrigin:"50px 50px",transform:"rotate(300deg) scaleY(1.04936) rotate(-300deg)"}}),(0,b.jsx)("path",{d:"M55.5002 4.5000 L58.5005 2.5000 L61.0002 3.5000 L63.5002 7.0000 L56.6511 48.1620 L52.0005 45.0000 L50.0005 39.5000 L53.5003 8.5000 L55.5002 4.5000 M55.5002 4.5000 ",fill:"#D97757",style:{transformOrigin:"50px 50px",transform:"rotate(270deg) scaleY(1.08769) rotate(-270deg)"}}),(0,b.jsx)("path",{d:"M23.4253 5.1588 L26.5075 1.2217 L28.5175 0.7632 L32.5063 1.3458 L34.4748 2.8868 L48.8202 34.6902 L54.0089 49.8008 L47.9378 53.1760 L24.8009 11.1886 L23.4253 5.1588 M23.4253 5.1588 ",fill:"#D97757",style:{transformOrigin:"50px 50px",transform:"rotate(240deg) scaleY(0.94) rotate(-240deg)"}}),(0,b.jsx)("path",{d:"M8.4990 27.0019 L7.4999 23.0001 L10.5003 19.5001 L14.0003 20.0001 L15.0003 20.0001 L36.0000 35.5000 L42.5000 40.5000 L51.5000 47.5000 L46.5000 56.0000 L42.0002 52.5000 L39.0001 49.5000 L10.0000 29.0001 L8.4990 27.0019 M8.4990 27.0019 ",fill:"#D97757",style:{transformOrigin:"50px 50px",transform:"rotate(210deg) scaleY(0.925) rotate(-210deg)"}}),(0,b.jsx)("path",{d:"M2.5003 53.0000 L0.2370 50.5000 L0.2373 48.2759 L2.5003 47.5000 L28.0000 49.0000 L53.0000 51.0000 L52.1885 55.9782 L4.5000 53.5000 L2.5003 53.0000 M2.5003 53.0000 ",fill:"#D97757",style:{transformOrigin:"50px 50px",transform:"rotate(180deg) scaleY(0.997) rotate(-180deg)"}}),(0,b.jsx)("path",{d:"M17.5002 79.0264 L12.5005 79.0264 L10.5124 76.7369 L10.5124 74.0000 L19.0005 68.0000 L53.5082 46.0337 L57.0005 52.0000 L17.5002 79.0264 M17.5002 79.0264 ",fill:"#D97757",style:{transformOrigin:"50px 50px",transform:"rotate(150deg) scaleY(1.045) rotate(-150deg)"}}),(0,b.jsx)("path",{d:"M27.0004 92.9999 L25.0003 93.4999 L22.0003 91.9999 L22.5004 89.4999 L52.0003 50.5000 L56.0004 55.9999 L34.0003 85.0000 L27.0004 92.9999 M27.0004 92.9999 ",fill:"#D97757",style:{transformOrigin:"50px 50px",transform:"rotate(120deg) scaleY(1.03) rotate(-120deg)"}}),(0,b.jsx)("path",{d:"M51.9998 98.0000 L50.5002 100.0000 L47.5002 101.0000 L45.0001 99.0000 L43.5000 96.0000 L51.0003 55.4999 L55.5001 55.9999 L51.9998 98.0000 M51.9998 98.0000 ",fill:"#D97757",style:{transformOrigin:"50px 50px",transform:"rotate(90deg) scaleY(1.06) rotate(-90deg)"}}),(0,b.jsx)("path",{d:"M77.5007 86.9997 L77.5007 90.9997 L77.0006 92.4997 L75.0004 93.4997 L71.5006 93.0339 L47.4669 57.2642 L56.9998 50.0002 L64.9994 64.5004 L65.7507 69.7497 L77.5007 86.9997 M77.5007 86.9997 ",fill:"#D97757",style:{transformOrigin:"50px 50px",transform:"rotate(60deg) scaleY(1.00898) rotate(-60deg)"}}),(0,b.jsx)("path",{d:"M89.0008 80.9991 L89.5008 83.4991 L88.0008 85.4991 L86.5007 84.9991 L78.0007 78.9991 L65.0007 67.4991 L55.0007 60.4991 L58.0000 51.0000 L62.9999 54.0001 L66.0007 59.4991 L89.0008 80.9991 M89.0008 80.9991 ",fill:"#D97757",style:{transformOrigin:"50px 50px",transform:"rotate(30deg) scaleY(1.13564) rotate(-30deg)"}}),(0,b.jsx)("path",{d:"M82.5003 55.5000 L95.0003 56.5000 L98.0003 58.5000 L100.0000 61.5000 L100.0000 63.6587 L94.5003 66.0000 L66.5005 59.0000 L55.0003 58.5000 L58.0000 48.0000 L66.0005 54.0000 L82.5003 55.5000 M82.5003 55.5000 ",fill:"#D97757",style:{transformOrigin:"50px 50px",transform:"rotate(0deg) scaleY(1.27731) rotate(0deg)"}})]})}function g({className:a}){return(0,b.jsx)("svg",{viewBox:"0 0 115 100",height:"18",width:"21",className:a,"data-slot":"geist-logo-svg",children:(0,b.jsx)("g",{children:(0,b.jsx)("path",{fill:"currentColor",fillRule:"evenodd",d:"M57.5 0 115 100H0z",clipRule:"evenodd"})})})}a.s(["ClaudeIcon",0,f,"GoogleIcon",0,c,"GrokIcon",0,e,"OpenAIIcon",0,d,"VercelIcon",0,g],270390);let h={mistral:[{d:"M3.428 3.4h3.429v3.428H3.428V3.4zm13.714 0h3.43v3.428h-3.43V3.4z",fill:"gold"},{d:"M3.428 6.828h6.857v3.429H3.429V6.828zm10.286 0h6.857v3.429h-6.857V6.828z",fill:"#FFAF00"},{d:"M3.428 10.258h17.144v3.428H3.428v-3.428z",fill:"#FF8205"},{d:"M3.428 13.686h3.429v3.428H3.428v-3.428zm6.858 0h3.429v3.428h-3.429v-3.428zm6.856 0h3.43v3.428h-3.43v-3.428z",fill:"#FA500F"},{d:"M0 17.114h10.286v3.429H0v-3.429zm13.714 0H24v3.429H13.714v-3.429z",fill:"#E10500"}],deepseek:[{d:"M23.748 4.482c-.254-.124-.364.113-.512.234-.051.039-.094.09-.137.136-.372.397-.806.657-1.373.626-.829-.046-1.537.214-2.163.848-.133-.782-.575-1.248-1.247-1.548-.352-.156-.708-.311-.955-.65-.172-.241-.219-.51-.305-.774-.055-.16-.11-.323-.293-.35-.2-.031-.278.136-.356.276-.313.572-.434 1.202-.422 1.84.027 1.436.633 2.58 1.838 3.393.137.093.172.187.129.323-.082.28-.18.552-.266.833-.055.179-.137.217-.329.14a5.526 5.526 0 01-1.736-1.18c-.857-.828-1.631-1.742-2.597-2.458a11.365 11.365 0 00-.689-.471c-.985-.957.13-1.743.388-1.836.27-.098.093-.432-.779-.428-.872.004-1.67.295-2.687.684a3.055 3.055 0 01-.465.137 9.597 9.597 0 00-2.883-.102c-1.885.21-3.39 1.102-4.497 2.623C.082 8.606-.231 10.684.152 12.85c.403 2.284 1.569 4.175 3.36 5.653 1.858 1.533 3.997 2.284 6.438 2.14 1.482-.085 3.133-.284 4.994-1.86.47.234.962.327 1.78.397.63.059 1.236-.03 1.705-.128.735-.156.684-.837.419-.961-2.155-1.004-1.682-.595-2.113-.926 1.096-1.296 2.746-2.642 3.392-7.003.05-.347.007-.565 0-.845-.004-.17.035-.237.23-.256a4.173 4.173 0 001.545-.475c1.396-.763 1.96-2.015 2.093-3.517.02-.23-.004-.467-.247-.588zM11.581 18c-2.089-1.642-3.102-2.183-3.52-2.16-.392.024-.321.471-.235.763.09.288.207.486.371.739.114.167.192.416-.113.603-.673.416-1.842-.14-1.897-.167-1.361-.802-2.5-1.86-3.301-3.307-.774-1.393-1.224-2.887-1.298-4.482-.02-.386.093-.522.477-.592a4.696 4.696 0 011.529-.039c2.132.312 3.946 1.265 5.468 2.774.868.86 1.525 1.887 2.202 2.891.72 1.066 1.494 2.082 2.48 2.914.348.292.625.514.891.677-.802.09-2.14.11-3.054-.614zm1-6.44a.306.306 0 01.415-.287.302.302 0 01.2.288.306.306 0 01-.31.307.303.303 0 01-.304-.308zm3.11 1.596c-.2.081-.399.151-.59.16a1.245 1.245 0 01-.798-.254c-.274-.23-.47-.358-.552-.758a1.73 1.73 0 01.016-.588c.07-.327-.008-.537-.239-.727-.187-.156-.426-.199-.688-.199a.559.559 0 01-.254-.078c-.11-.054-.2-.19-.114-.358.028-.054.16-.186.192-.21.356-.202.767-.136 1.146.016.352.144.618.408 1.001.782.391.451.462.576.685.914.176.265.336.537.445.848.067.195-.019.354-.25.452z",fill:"#4D6BFE"}],groq:[{d:"M12.036 2c-3.853-.035-7 3-7.036 6.781-.035 3.782 3.055 6.872 6.908 6.907h2.42v-2.566h-2.292c-2.407.028-4.38-1.866-4.408-4.23-.029-2.362 1.901-4.298 4.308-4.326h.1c2.407 0 4.358 1.915 4.365 4.278v6.305c0 2.342-1.944 4.25-4.323 4.279a4.375 4.375 0 01-3.033-1.252l-1.851 1.818A7 7 0 0012.029 22h.092c3.803-.056 6.858-3.083 6.879-6.816v-6.5C18.907 4.963 15.817 2 12.036 2z"}],cerebras:[{d:"M14.121 2.701a9.299 9.299 0 000 18.598V22.7c-5.91 0-10.7-4.791-10.7-10.701S8.21 1.299 14.12 1.299V2.7zm4.752 3.677A7.353 7.353 0 109.42 17.643l-.901 1.074a8.754 8.754 0 01-1.08-12.334 8.755 8.755 0 0112.335-1.08l-.901 1.075zm-2.255.844a5.407 5.407 0 00-5.048 9.563l-.656 1.24a6.81 6.81 0 016.358-12.043l-.654 1.24zM14.12 8.539a3.46 3.46 0 100 6.922v1.402a4.863 4.863 0 010-9.726v1.402z",fill:"#F15A29"},{d:"M15.407 10.836a2.24 2.24 0 00-.51-.409 1.084 1.084 0 00-.544-.152c-.255 0-.483.047-.684.14a1.58 1.58 0 00-.84.912c-.074.203-.11.416-.11.631 0 .218.036.43.11.631a1.594 1.594 0 00.84.913c.2.093.43.14.684.14.216 0 .417-.046.602-.135.188-.09.35-.225.475-.392l.928 1.006c-.14.14-.3.261-.482.363a3.367 3.367 0 01-1.083.38c-.17.026-.317.04-.44.04a3.315 3.315 0 01-1.182-.21 2.825 2.825 0 01-.961-.597 2.816 2.816 0 01-.644-.929 2.987 2.987 0 01-.238-1.21c0-.444.08-.847.238-1.21.15-.35.368-.666.643-.929.278-.261.605-.464.962-.596a3.315 3.315 0 011.182-.21c.355 0 .712.068 1.072.204.361.138.685.36.944.649l-.962.97z"}],togetherai:[{d:"M23.197 4.503A6 6 0 0015 2.307a5.973 5.973 0 00-2.995 4.933l5.996.008v.515h-5.996c.039.937.298 1.87.8 2.74a6 6 0 1010.39-6z",fill:"#EF2CC1"},{d:"M.805 4.5A6 6 0 003 12.697a5.972 5.972 0 005.77.127L5.779 7.627l.446-.257 2.997 5.192A6 6 0 10.804 4.5z",fill:"#CAAEF5"},{d:"M12 23.894a6 6 0 005.999-6c0-2.13-1.1-3.996-2.775-5.06l-3.005 5.189-.444-.258 2.997-5.192A6 6 0 1012 23.894z",fill:"#FC4C02"}],fireworks:[{d:"M14.8 5l-2.801 6.795L9.195 5H7.397l3.072 7.428a1.64 1.64 0 003.038.002L16.598 5H14.8zm1.196 10.352l5.124-5.244-.699-1.669-5.596 5.739a1.664 1.664 0 00-.343 1.807 1.642 1.642 0 001.516 1.012L16 17l8-.02-.699-1.669-7.303.041h-.002zM2.88 10.104l.699-1.669 5.596 5.739c.468.479.603 1.189.343 1.807a1.643 1.643 0 01-1.516 1.012l-8-.018-.002.002.699-1.669 7.303.042-5.122-5.246z",fill:"#5019C5"}],deepinfra:[{d:"M3.294 7.821A2.297 2.297 0 011 5.527a2.297 2.297 0 012.294-2.295A2.297 2.297 0 015.59 5.527 2.297 2.297 0 013.294 7.82zm0-3.688a1.396 1.396 0 000 2.79 1.396 1.396 0 000-2.79zM3.294 14.293A2.297 2.297 0 011 11.998a2.297 2.297 0 012.294-2.294 2.297 2.297 0 012.295 2.294 2.297 2.297 0 01-2.295 2.295zm0-3.688a1.395 1.395 0 000 2.788 1.395 1.395 0 100-2.788zM3.294 20.761A2.297 2.297 0 011 18.467a2.297 2.297 0 012.294-2.295 2.297 2.297 0 012.295 2.295 2.297 2.297 0 01-2.295 2.294zm0-3.688a1.396 1.396 0 000 2.79 1.396 1.396 0 000-2.79zM20.738 7.821a2.297 2.297 0 01-2.295-2.294 2.297 2.297 0 012.294-2.295 2.297 2.297 0 012.295 2.295 2.297 2.297 0 01-2.294 2.294zm0-3.688a1.396 1.396 0 101.395 1.395c0-.77-.626-1.395-1.395-1.395zM20.738 14.293a2.297 2.297 0 01-2.295-2.295 2.297 2.297 0 012.294-2.294 2.297 2.297 0 012.295 2.294 2.297 2.297 0 01-2.294 2.295zm0-3.688c-.769 0-1.395.625-1.395 1.393a1.396 1.396 0 002.79 0c0-.77-.626-1.393-1.395-1.393zM20.738 20.761a2.297 2.297 0 01-2.295-2.294 2.297 2.297 0 012.294-2.295 2.297 2.297 0 012.295 2.295 2.297 2.297 0 01-2.294 2.294zm0-3.688a1.396 1.396 0 101.395 1.395c0-.77-.626-1.395-1.395-1.395zM12.016 11.057a2.297 2.297 0 01-2.294-2.294 2.297 2.297 0 012.294-2.295 2.297 2.297 0 012.295 2.295 2.297 2.297 0 01-2.295 2.294zm0-3.688a1.396 1.396 0 101.395 1.395c0-.77-.625-1.395-1.395-1.395zM12.017 4.589a2.297 2.297 0 01-2.295-2.295A2.297 2.297 0 0112.017 0a2.297 2.297 0 012.294 2.294 2.297 2.297 0 01-2.294 2.295zm0-3.688a1.396 1.396 0 101.395 1.395c0-.77-.626-1.395-1.395-1.395zM12.017 17.529a2.297 2.297 0 01-2.295-2.295 2.297 2.297 0 012.295-2.294 2.297 2.297 0 012.294 2.294 2.297 2.297 0 01-2.294 2.295zm0-3.688a1.396 1.396 0 101.395 1.395c0-.77-.626-1.395-1.395-1.395zM12.016 24a2.297 2.297 0 01-2.294-2.295 2.297 2.297 0 012.294-2.294 2.297 2.297 0 012.295 2.294A2.297 2.297 0 0112.016 24zm0-3.688a1.396 1.396 0 101.395 1.395c0-.77-.625-1.395-1.395-1.395z",fill:"#2A3275"},{d:"M8.363 8.222a.742.742 0 01-.277-.053l-1.494-.596a.75.75 0 11.557-1.392l1.493.595a.75.75 0 01-.278 1.446h-.001zM8.363 14.566a.743.743 0 01-.277-.053l-1.494-.595a.75.75 0 11.557-1.393l1.493.596a.75.75 0 01-.278 1.445h-.001zM17.124 11.397a.741.741 0 01-.277-.054l-1.493-.595a.75.75 0 11.555-1.392l1.493.595a.75.75 0 01-.278 1.446zM17.124 5.05a.744.744 0 01-.277-.054L15.354 4.4a.75.75 0 01.555-1.392l1.493.596a.75.75 0 01-.278 1.445zM17.124 17.739a.743.743 0 01-.277-.053l-1.494-.596a.75.75 0 11.556-1.392l1.493.596a.75.75 0 01-.278 1.445zM6.91 17.966a.75.75 0 01-.279-1.445l1.494-.595a.749.749 0 11.556 1.392l-1.493.595a.743.743 0 01-.277.053H6.91zM6.91 11.66a.75.75 0 01-.279-1.446l1.494-.595a.75.75 0 01.556 1.392l-1.493.595a.743.743 0 01-.277.053H6.91zM6.91 5.033a.75.75 0 01-.279-1.446l1.494-.595a.75.75 0 01.556 1.392l-1.493.596a.744.744 0 01-.277.053H6.91zM8.363 21.364a.743.743 0 01-.277-.053l-1.494-.596a.75.75 0 01.555-1.392l1.494.595a.75.75 0 01-.278 1.446zM15.63 8.223a.75.75 0 01-.278-1.447l1.494-.595a.75.75 0 01.556 1.393l-1.494.595a.744.744 0 01-.276.054h-.002zM15.63 14.567a.75.75 0 01-.278-1.446l1.494-.596a.75.75 0 01.556 1.394l-1.494.595a.743.743 0 01-.276.053h-.002zM15.63 21.363a.749.749 0 01-.278-1.445l1.494-.595a.75.75 0 11.555 1.392l-1.494.595a.741.741 0 01-.277.053z",fill:"#5699DB"}],cohere:[{d:"M8.128 14.099c.592 0 1.77-.033 3.398-.703 1.897-.781 5.672-2.2 8.395-3.656 1.905-1.018 2.74-2.366 2.74-4.18A4.56 4.56 0 0018.1 1H7.549A6.55 6.55 0 001 7.55c0 3.617 2.745 6.549 7.128 6.549z",fill:"#39594D"},{d:"M9.912 18.61a4.387 4.387 0 012.705-4.052l3.323-1.38c3.361-1.394 7.06 1.076 7.06 4.715a5.104 5.104 0 01-5.105 5.104l-3.597-.001a4.386 4.386 0 01-4.386-4.387z",fill:"#D18EE2"},{d:"M4.776 14.962A3.775 3.775 0 001 18.738v.489a3.776 3.776 0 007.551 0v-.49a3.775 3.775 0 00-3.775-3.775z",fill:"#FF7759"}]};a.s(["ProviderIcon",0,function({className:a,provider:i}){if(i in h)return(0,b.jsx)("svg",{viewBox:"0 0 24 24",fill:"currentColor",fillRule:"evenodd",className:a,"aria-hidden":"true",children:h[i].map(a=>(0,b.jsx)("path",{d:a.d,fill:a.fill},a.d))});let j=(a=>{switch(a){case"anthropic":return f;case"google":return c;case"openai":case"chatgpt":return d;case"vercel-ai-gateway":return g;case"xai":return e}})(i);return(0,b.jsx)(j,{className:a})}],379630)},96340,a=>{"use strict";var b=a.i(156757),c=a.i(616682),d=a.i(249890),e=a.i(61876);let f={id:"openai",label:"OpenAI",apiKeyName:e.TEXT_MODEL_PROVIDERS.openai.apiKeyName},g=e.TEXT_MODEL_PROVIDERS.openai.suggestModels,h=["none","minimal","low","medium","high","xhigh"],i=b.z.string().max(c.COMMON_VALIDATE.prompt.max).default(""),j=b.z.object({voice:b.z.string().trim().min(1).max(128).default("marin"),voicePrompt:i,backendModel:b.z.string().trim().min(1).max(128).default(d.LIVE_BACKEND_MODEL),backendPrompt:i,reasoningEffort:b.z.enum(h).nullable().default("low"),webSearch:b.z.boolean().default(!0)}),k=j.parse({});a.s(["LIVE_BACKEND_MODELS",0,g,"LIVE_DEFAULTS",0,k,"LIVE_PROVIDER",0,f,"LIVE_REASONING",0,h,"LIVE_VOICES",0,["marin","cedar","gleam","meridian","quartz","ripple","vesper","willow","stone","bossa","tempo","beacon","delta","cinder","alloy","ash","ballad","coral","echo","sage","shimmer","verse"],"LIVE_VOICE_NOTE",0,{gleam:"North American · feminine",meridian:"North American · masculine",quartz:"Australian · feminine",ripple:"Australian · masculine",vesper:"British · masculine",willow:"Irish · feminine",stone:"Irish · masculine",bossa:"Portuguese · feminine",tempo:"Portuguese · masculine",beacon:"Filipino · masculine",delta:"Southern U.S. · feminine",cinder:"Southern U.S. · masculine"},"LiveSettingsSchema",0,j,"migrateLiveSettings",0,function(a){let c=a&&"object"==typeof a?a:{},{model:d,systemPrompt:e,...f}=c,g=b.z.object({provider:b.z.string(),voice:b.z.string().nullish(),backendModel:b.z.string().nullish()}).safeParse(d),h=g.success&&"openai"===g.data.provider?g.data:null,i={voice:c.voice??h?.voice,voicePrompt:c.voicePrompt??e,backendModel:c.backendModel??h?.backendModel,backendPrompt:c.backendPrompt??e,reasoningEffort:c.reasoningEffort,webSearch:c.webSearch},l=Object.fromEntries(Object.keys(i).map(a=>{let b=j.shape[a].safeParse(i[a]);return[a,b.success?b.data:k[a]]}));return{...f,...l}},"voiceSamplePath",0,a=>`/voices/${a}.ogg`])},478978,a=>{"use strict";var b=a.i(96340),c=a.i(61876),d=a.i(907602);let e=[b.LIVE_PROVIDER.apiKeyName],f={image:"IMAGE_MODEL",video:"VIDEO_MODEL",speech:"SPEECH_MODEL",transcription:"TRANSCRIPTION_MODEL"},g={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"}},h="EXA_API_KEY",i="DEFAULT_MODEL",j={key:i,label:"Default model",hint:"What a bot thinks with until it picks its own",text:!0,choices:c.TEXT_MODEL_PROVIDER_LIST.flatMap(a=>a.suggestModels.map(b=>({value:`${a.id}/${b.id}`,label:`${a.label} \xb7 ${b.label}`,needs:a.apiKeyName})))},k=a=>e.includes(a.apiKeyName),l=a=>!!a.signIn||"vercel-ai-gateway"===a.id,m=a=>({key:a.apiKeyName,label:a.label,provider:a.id,signIn:a.signIn}),n=[{id:"voice",title:"voice",hint:"calls run on this key",section:"keys",require:"any",note:"required for calls",entries:c.TEXT_MODEL_PROVIDER_LIST.filter(k).map(m)},{id:"easy",title:"the easy ways",hint:"one sign-in or one key opens every bot",section:"keys",require:"none",entries:c.TEXT_MODEL_PROVIDER_LIST.filter(l).map(a=>({...m(a),..."vercel-ai-gateway"===a.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:c.TEXT_MODEL_PROVIDER_LIST.filter(a=>!k(a)&&!l(a)).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:h,label:"Exa",hint:"web search in one call — dashboard.exa.ai",site:"exa.ai"}]},{id:"phone",title:"phone",hint:"write to Thursday from a chat app — nothing is opened to the outside",section:"keys",require:"none",entries:[{key:d.TELEGRAM_TOKEN_KEY,label:"Telegram",site:"telegram.org",hint:"a bot token from @BotFather — then write to your bot, and allow it here"},{key:d.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:d.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:d.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:[j]},{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(f).map(a=>({key:f[a],...g[a],kind:a,choices:c.MEDIA_MODEL_PROVIDER_LIST.flatMap(b=>b.models[a].map(a=>({value:`${b.id}/${a.id}`,label:`${b.label} \xb7 ${a.label}`,needs:b.apiKeyName})))}))}];Object.fromEntries(n.flatMap(a=>a.entries).map(a=>[a.key,a])),n.flatMap(a=>a.entries.map(a=>a.key)),Object.fromEntries(n.flatMap(a=>a.entries).filter(a=>a.choices?.length).map(a=>[a.key,a.choices])),a.s(["CONFIG_GROUPS",0,n,"DEFAULT_MODEL_KEY",0,i,"EXA_API_KEY",0,h,"MEDIA_MODEL_KEYS",0,f,"groupSatisfied",0,function(a,b){return"none"===a.require||(a.requireKeys??a.entries.map(a=>a.key)).some(b)},"isConfigSet",0,function(a,b){return a?.some(a=>a.key===b&&a.set)??!1},"mediaModelWords",0,a=>`${"image"===a?"an":"a"} ${a} model`])},440419,a=>{"use strict";var b=a.i(405050);let c=(0,b.createServerReference)("7f599fc8e94d2661399fea62d9255c1e7298176a89",b.callServer,void 0,b.findSourceMapURL,"setConfigAction");a.s(["setConfigAction",0,c])},907602,a=>{"use strict";let b="TELEGRAM_BOT_TOKEN",c="DISCORD_BOT_TOKEN",d="SLACK_APP_TOKEN",e="SLACK_BOT_TOKEN";a.s(["DISCORD_TOKEN_KEY",0,c,"REACH_CHANNELS",0,["telegram","discord","slack"],"REACH_KEYS",0,{telegram:[b],discord:[c],slack:[d,e]},"REACH_LABEL",0,{telegram:"Telegram",discord:"Discord",slack:"Slack"},"SLACK_APP_TOKEN_KEY",0,d,"SLACK_BOT_TOKEN_KEY",0,e,"TELEGRAM_TOKEN_KEY",0,b])},402968,a=>{"use strict";var b=a.i(572131),c=a.i(187828),d=a.i(113259),e=a.i(357738);a.s(["useAnchoredPopupScrollLock",0,function(a,f,g,h){let[i,j]=b.useState(!1);(0,e.useIsoLayoutEffect)(()=>{if(!a||!f||null==g)return void j(!1);let b=(0,c.ownerDocument)(g).documentElement.clientWidth,d=g.offsetWidth;j(b>0&&d>0&&d>=b-20)},[a,f,g]),(0,d.useScrollLock)(a&&(!f||i),h)}])},158983,a=>{"use strict";var b=a.i(702918);a.s(["LoaderCircle",()=>b.default])}];
2
+
3
+ //# sourceMappingURL=_0hjzb5o._.js.map