thursday-agent 0.14.0 → 0.15.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 (920) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +3 -3
  3. package/.next/prerender-manifest.json +4 -4
  4. package/.next/server/app/_global-error/page.js.nft.json +1 -1
  5. package/.next/server/app/_global-error.html +1 -1
  6. package/.next/server/app/_global-error.rsc +1 -1
  7. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  8. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  10. package/.next/server/app/_not-found/page/next-font-manifest.json +1 -2
  11. package/.next/server/app/_not-found/page.js +1 -1
  12. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  13. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  14. package/.next/server/app/_not-found.html +1 -1
  15. package/.next/server/app/_not-found.rsc +12 -13
  16. package/.next/server/app/_not-found.segments/_full.segment.rsc +12 -13
  17. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +11 -12
  18. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -3
  19. package/.next/server/app/api/artifact/route.js +10 -9
  20. package/.next/server/app/api/artifact/route.js.nft.json +1 -1
  21. package/.next/server/app/api/bot/memory/files/route.js +4 -3
  22. package/.next/server/app/api/bot/memory/files/route.js.nft.json +1 -1
  23. package/.next/server/app/api/bot/memory/route.js +10 -9
  24. package/.next/server/app/api/bot/memory/route.js.nft.json +1 -1
  25. package/.next/server/app/api/bot/route.js +10 -9
  26. package/.next/server/app/api/bot/route.js.nft.json +1 -1
  27. package/.next/server/app/api/bot/thread/[id]/route.js +8 -7
  28. package/.next/server/app/api/bot/thread/[id]/route.js.nft.json +1 -1
  29. package/.next/server/app/api/bot/thread/route.js +8 -7
  30. package/.next/server/app/api/bot/thread/route.js.nft.json +1 -1
  31. package/.next/server/app/api/config/route.js +7 -6
  32. package/.next/server/app/api/config/route.js.nft.json +1 -1
  33. package/.next/server/app/api/events/route.js +1 -1
  34. package/.next/server/app/api/events/route.js.nft.json +1 -1
  35. package/.next/server/app/api/favicon/[host]/route.js +1 -1
  36. package/.next/server/app/api/favicon/[host]/route.js.nft.json +1 -1
  37. package/.next/server/app/api/file/[...path]/route.js +5 -4
  38. package/.next/server/app/api/file/[...path]/route.js.nft.json +1 -1
  39. package/.next/server/app/api/llm-model/catalog/route.js +10 -9
  40. package/.next/server/app/api/llm-model/catalog/route.js.nft.json +1 -1
  41. package/.next/server/app/api/llm-model/credits/route.js +10 -9
  42. package/.next/server/app/api/llm-model/credits/route.js.nft.json +1 -1
  43. package/.next/server/app/api/llm-model/route.js +8 -7
  44. package/.next/server/app/api/llm-model/route.js.nft.json +1 -1
  45. package/.next/server/app/api/llm-model/subscription/route.js +8 -7
  46. package/.next/server/app/api/llm-model/subscription/route.js.nft.json +1 -1
  47. package/.next/server/app/api/mcp/[name]/route.js +6 -5
  48. package/.next/server/app/api/mcp/[name]/route.js.nft.json +1 -1
  49. package/.next/server/app/api/mcp/oauth/callback/route.js +6 -6
  50. package/.next/server/app/api/mcp/oauth/callback/route.js.nft.json +1 -1
  51. package/.next/server/app/api/mcp/route.js +6 -5
  52. package/.next/server/app/api/mcp/route.js.nft.json +1 -1
  53. package/.next/server/app/api/mcp/tools/route.js +6 -5
  54. package/.next/server/app/api/mcp/tools/route.js.nft.json +1 -1
  55. package/.next/server/app/api/memory/edit/route.js +17 -15
  56. package/.next/server/app/api/memory/edit/route.js.nft.json +1 -1
  57. package/.next/server/app/api/memory/route.js +4 -4
  58. package/.next/server/app/api/memory/route.js.nft.json +1 -1
  59. package/.next/server/app/api/reach/route.js +18 -16
  60. package/.next/server/app/api/reach/route.js.nft.json +1 -1
  61. package/.next/server/app/api/routine/route.js +11 -10
  62. package/.next/server/app/api/routine/route.js.nft.json +1 -1
  63. package/.next/server/app/api/signins/route.js +5 -5
  64. package/.next/server/app/api/signins/route.js.nft.json +1 -1
  65. package/.next/server/app/api/skills/[source]/[name]/route.js +6 -5
  66. package/.next/server/app/api/skills/[source]/[name]/route.js.nft.json +1 -1
  67. package/.next/server/app/api/skills/route.js +6 -5
  68. package/.next/server/app/api/skills/route.js.nft.json +1 -1
  69. package/.next/server/app/api/thursday/call/route.js +8 -7
  70. package/.next/server/app/api/thursday/call/route.js.nft.json +1 -1
  71. package/.next/server/app/api/thursday/settings/route.js +9 -8
  72. package/.next/server/app/api/thursday/settings/route.js.nft.json +1 -1
  73. package/.next/server/app/api/thursday/text/route.js +17 -15
  74. package/.next/server/app/api/thursday/text/route.js.nft.json +1 -1
  75. package/.next/server/app/api/thursday/tool-call/route.js +16 -13
  76. package/.next/server/app/api/thursday/tool-call/route.js.nft.json +1 -1
  77. package/.next/server/app/api/workspace/files/route.js +9 -9
  78. package/.next/server/app/api/workspace/files/route.js.nft.json +1 -1
  79. package/.next/server/app/api/workspace/route.js +10 -10
  80. package/.next/server/app/api/workspace/route.js.nft.json +1 -1
  81. package/.next/server/app/artifact/[...path]/page/next-font-manifest.json +1 -2
  82. package/.next/server/app/artifact/[...path]/page/server-reference-manifest.json +3 -3
  83. package/.next/server/app/artifact/[...path]/page.js +7 -7
  84. package/.next/server/app/artifact/[...path]/page.js.nft.json +1 -1
  85. package/.next/server/app/artifact/[...path]/page_client-reference-manifest.js +1 -1
  86. package/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  87. package/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  88. package/.next/server/app/page/next-font-manifest.json +1 -2
  89. package/.next/server/app/page/server-reference-manifest.json +146 -135
  90. package/.next/server/app/page.js +11 -12
  91. package/.next/server/app/page.js.nft.json +1 -1
  92. package/.next/server/app/page_client-reference-manifest.js +1 -1
  93. package/.next/server/chunks/{[root-of-the-server]__0zk1--q._.js → [root-of-the-server]__0132c27._.js} +1 -1
  94. package/.next/server/chunks/[root-of-the-server]__02mohhb._.js +3 -0
  95. package/.next/server/chunks/[root-of-the-server]__0876r42._.js +3 -0
  96. package/.next/server/chunks/[root-of-the-server]__0adz-25._.js +3 -0
  97. package/.next/server/chunks/[root-of-the-server]__0aijj66._.js +3 -0
  98. package/.next/server/chunks/[root-of-the-server]__0brcw76._.js +3 -0
  99. package/.next/server/chunks/[root-of-the-server]__0c_j_qe._.js +3 -0
  100. package/.next/server/chunks/{[root-of-the-server]__1_zttdh._.js → [root-of-the-server]__0ei2xnb._.js} +1 -1
  101. package/.next/server/chunks/[root-of-the-server]__0g67-oo._.js +3 -0
  102. package/.next/server/chunks/[root-of-the-server]__0grmfwp._.js +5 -0
  103. package/.next/server/chunks/[root-of-the-server]__0kv916d._.js +3 -0
  104. package/.next/server/chunks/[root-of-the-server]__0liwkmx._.js +1 -1
  105. package/.next/server/chunks/[root-of-the-server]__0ljizgj._.js +5 -0
  106. package/.next/server/chunks/[root-of-the-server]__0mrk2it._.js +1 -1
  107. package/.next/server/chunks/{[root-of-the-server]__1lw1s41._.js → [root-of-the-server]__0o-w4t4._.js} +1 -1
  108. package/.next/server/chunks/[root-of-the-server]__0sm5xvm._.js +1 -1
  109. package/.next/server/chunks/[root-of-the-server]__0tkqhnc._.js +3 -0
  110. package/.next/server/chunks/[root-of-the-server]__0tvoct-._.js +3 -0
  111. package/.next/server/chunks/[root-of-the-server]__0vffrja._.js +5 -0
  112. package/.next/server/chunks/[root-of-the-server]__0vn91fr._.js +5 -0
  113. package/.next/server/chunks/[root-of-the-server]__0vxvcj4._.js +3 -0
  114. package/.next/server/chunks/[root-of-the-server]__0zbo906._.js +5 -0
  115. package/.next/server/chunks/[root-of-the-server]__10ep3hy._.js +3 -0
  116. package/.next/server/chunks/[root-of-the-server]__10iry08._.js +3 -0
  117. package/.next/server/chunks/[root-of-the-server]__118qjk_._.js +7 -0
  118. package/.next/server/chunks/[root-of-the-server]__11d0tvc._.js +5 -0
  119. package/.next/server/chunks/[root-of-the-server]__13hng6h._.js +3 -0
  120. package/.next/server/chunks/[root-of-the-server]__19sv9or._.js +5 -0
  121. package/.next/server/chunks/[root-of-the-server]__1_04mcf._.js +2 -2
  122. package/.next/server/chunks/[root-of-the-server]__1_1zysn._.js +3 -0
  123. package/.next/server/chunks/[root-of-the-server]__1ceammd._.js +1 -1
  124. package/.next/server/chunks/[root-of-the-server]__1e0f7he._.js +7 -0
  125. package/.next/server/chunks/[root-of-the-server]__1fdpwcm._.js +3 -0
  126. package/.next/server/chunks/[root-of-the-server]__1gzcbda._.js +3 -0
  127. package/.next/server/chunks/[root-of-the-server]__1hgdkzg._.js +11 -0
  128. package/.next/server/chunks/[root-of-the-server]__1l_nubj._.js +3 -0
  129. package/.next/server/chunks/[root-of-the-server]__1ndi14y._.js +1 -1
  130. package/.next/server/chunks/[root-of-the-server]__1p47fbb._.js +5 -0
  131. package/.next/server/chunks/[root-of-the-server]__1pmsv_6._.js +3 -0
  132. package/.next/server/chunks/[root-of-the-server]__1qcn1ti._.js +7 -0
  133. package/.next/server/chunks/[root-of-the-server]__1tdudkf._.js +5 -0
  134. package/.next/server/chunks/[root-of-the-server]__1vlxv19._.js +5 -0
  135. package/.next/server/chunks/[root-of-the-server]__1y_f1xd._.js +3 -0
  136. package/.next/server/chunks/[root-of-the-server]__1ygplx1._.js +1 -1
  137. package/.next/server/chunks/[root-of-the-server]__20tvhdf._.js +3 -0
  138. package/.next/server/chunks/{_0gaxljx._.js → _01c32w9._.js} +10 -10
  139. package/.next/server/chunks/_01dop1r._.js +3 -0
  140. package/.next/server/chunks/_01t8da9._.js +3 -0
  141. package/.next/server/chunks/{_05lrrzj._.js → _02bov6_._.js} +10 -10
  142. package/.next/server/chunks/_02lipqs._.js +5 -0
  143. package/.next/server/chunks/_034lk-r._.js +1 -1
  144. package/.next/server/chunks/_03niwml._.js +3 -0
  145. package/.next/server/chunks/{_1alh90r._.js → _04ynt0z._.js} +24 -23
  146. package/.next/server/chunks/_05gl-xy._.js +73 -0
  147. package/.next/server/chunks/{_10tkr26._.js → _05sa7xl._.js} +2 -2
  148. package/.next/server/chunks/_06u9yo-._.js +1 -1
  149. package/.next/server/chunks/{_07qjruw._.js → _08s4vft._.js} +10 -10
  150. package/.next/server/chunks/{_12vfryl._.js → _09c4we8._.js} +1 -1
  151. package/.next/server/chunks/{_0f6ts7z._.js → _0caua_s._.js} +2 -2
  152. package/.next/server/chunks/_0ejoy4d._.js +3 -0
  153. package/.next/server/chunks/{_0athsow._.js → _0fb6dvr._.js} +10 -10
  154. package/.next/server/chunks/{_0khihjk._.js → _0hin38_._.js} +4 -4
  155. package/.next/server/chunks/_0iw19ig._.js +75 -0
  156. package/.next/server/chunks/_0nn99o2._.js +3 -0
  157. package/.next/server/chunks/_0ol42w-._.js +3 -0
  158. package/.next/server/chunks/_0poi1t2._.js +75 -0
  159. package/.next/server/chunks/_0srlnvd._.js +1 -1
  160. package/.next/server/chunks/{_00uct_h._.js → _0t_7gji._.js} +2 -2
  161. package/.next/server/chunks/{_1e48czp._.js → _0uet1h6._.js} +4 -4
  162. package/.next/server/chunks/_0uir6hb._.js +1 -1
  163. package/.next/server/chunks/_0xm040x._.js +3 -0
  164. package/.next/server/chunks/_0xx3ryc._.js +7 -0
  165. package/.next/server/chunks/{_1kg70wc._.js → _10qam6o._.js} +4 -4
  166. package/.next/server/chunks/_136j09a._.js +1 -1
  167. package/.next/server/chunks/_146mcip._.js +3 -0
  168. package/.next/server/chunks/_171rt-v._.js +20 -19
  169. package/.next/server/chunks/_17esum5._.js +5 -0
  170. package/.next/server/chunks/_19kea1l._.js +285 -0
  171. package/.next/server/chunks/_1d5zmy8._.js +1 -1
  172. package/.next/server/chunks/_1d7og_q._.js +75 -0
  173. package/.next/server/chunks/_1gn2r2q._.js +11 -11
  174. package/.next/server/chunks/_1gxankq._.js +5 -0
  175. package/.next/server/chunks/_1hfg52r._.js +3 -0
  176. package/.next/server/chunks/_1ic3bew._.js +1 -1
  177. package/.next/server/chunks/_1m88lkh._.js +15 -15
  178. package/.next/server/chunks/_1nc0eui._.js +3 -3
  179. package/.next/server/chunks/{_1hiv69j._.js → _1p8rzg_._.js} +24 -23
  180. package/.next/server/chunks/_1q6e56i._.js +11 -11
  181. package/.next/server/chunks/_1qgix-j._.js +1 -1
  182. package/.next/server/chunks/{_0a7e633._.js → _1rg5bfd._.js} +1 -1
  183. package/.next/server/chunks/{_1ry6afh._.js → _1skgy7b._.js} +4 -4
  184. package/.next/server/chunks/_1v5g4kx._.js +3 -0
  185. package/.next/server/chunks/_1vxrw1q._.js +5 -0
  186. package/.next/server/chunks/_1wl2g8_._.js +3 -3
  187. package/.next/server/chunks/{_0lezxmm._.js → _1wwl_7o._.js} +2 -2
  188. package/.next/server/chunks/_1y8w80a._.js +1 -1
  189. package/.next/server/chunks/_1zfxb7j._.js +3 -0
  190. package/.next/server/chunks/{_1n04_a9._.js → _211dn2c._.js} +2 -2
  191. package/.next/server/chunks/config_ts_1g4sz5o._.js +1 -1
  192. package/.next/server/chunks/features_0-cnt0l._.js +2 -2
  193. package/.next/server/chunks/features_0hdaci0._.js +2 -2
  194. package/.next/server/chunks/features_0p85gv6._.js +3 -0
  195. package/.next/server/chunks/features_memory_0__61kl._.js +3 -0
  196. package/.next/server/chunks/features_memory_1uqvksn._.js +2 -2
  197. package/.next/server/chunks/features_workspace_workspace_ts_13h82gv._.js +8 -0
  198. package/.next/server/chunks/features_workspace_workspace_ts_1iyjroj._.js +8 -0
  199. package/.next/server/chunks/node_modules_1821h5r._.js +3 -0
  200. package/.next/server/chunks/node_modules_1bfhxob._.js +3 -0
  201. package/.next/server/chunks/node_modules_1i11kg5._.js +3 -0
  202. package/.next/server/chunks/node_modules_1osf6vs._.js +3 -0
  203. package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_0_mnb04._.js → node_modules_consola_dist_chunks_prompt_mjs_01gltp5._.js} +1 -1
  204. package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_0o9zv5h._.js → node_modules_consola_dist_chunks_prompt_mjs_035jiu9._.js} +1 -1
  205. package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_0qilmwb._.js → node_modules_consola_dist_chunks_prompt_mjs_05hnk0t._.js} +1 -1
  206. package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_0zw4yp2._.js → node_modules_consola_dist_chunks_prompt_mjs_0736s17._.js} +1 -1
  207. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_07szfwb._.js +3 -0
  208. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_0cux6zt._.js +3 -0
  209. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_0rzuf5j._.js +3 -0
  210. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_0ta6hsy._.js +3 -0
  211. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_0tok7g7._.js +3 -0
  212. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_0w32bqh._.js +3 -0
  213. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_187uwe9._.js +3 -0
  214. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1_03xmt._.js +3 -0
  215. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1clmnaj._.js +3 -0
  216. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1cu9mam._.js +3 -0
  217. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1g1et-d._.js +3 -0
  218. package/.next/server/chunks/ssr/[root-of-the-server]__00ro8qe._.js +5 -0
  219. package/.next/server/chunks/ssr/[root-of-the-server]__04upd5v._.js +1 -1
  220. package/.next/server/chunks/ssr/[root-of-the-server]__0670az2._.js +37 -0
  221. package/.next/server/chunks/ssr/[root-of-the-server]__0ihvne0._.js +3 -0
  222. package/.next/server/chunks/ssr/[root-of-the-server]__11hcjwx._.js +3 -0
  223. package/.next/server/chunks/ssr/[root-of-the-server]__17h1ggo._.js +44 -0
  224. package/.next/server/chunks/ssr/[root-of-the-server]__1867koj._.js +3 -0
  225. package/.next/server/chunks/ssr/[root-of-the-server]__1d7usu0._.js +6 -0
  226. package/.next/server/chunks/ssr/[root-of-the-server]__20floom._.js +112 -0
  227. package/.next/server/chunks/ssr/{_07_5zzt._.js → _018vrx-._.js} +2 -2
  228. package/.next/server/chunks/ssr/_02u485c._.js +1 -1
  229. package/.next/server/chunks/ssr/_06m66w8._.js +4 -0
  230. package/.next/server/chunks/ssr/{_1xryfja._.js → _074hv3s._.js} +2 -2
  231. package/.next/server/chunks/ssr/_0afqubz._.js +162 -0
  232. package/.next/server/chunks/ssr/_0ayihi5._.js +3 -0
  233. package/.next/server/chunks/ssr/{_0ep88v7._.js → _0c1h0l9._.js} +2 -2
  234. package/.next/server/chunks/ssr/_0cd6g3l._.js +137 -0
  235. package/.next/server/chunks/ssr/_0cv9tmv._.js +3 -0
  236. package/.next/server/chunks/ssr/_0gv5wzb._.js +3 -0
  237. package/.next/server/chunks/ssr/_0kkdx7t._.js +1 -1
  238. package/.next/server/chunks/ssr/_0qsmpcu._.js +3 -0
  239. package/.next/server/chunks/ssr/{_0fo4552._.js → _0trt3zp._.js} +27 -24
  240. package/.next/server/chunks/ssr/_0x8ophf._.js +1 -1
  241. package/.next/server/chunks/ssr/_0yjztzi._.js +3 -0
  242. package/.next/server/chunks/ssr/{_13uus9r._.js → _0z0scn4._.js} +3 -3
  243. package/.next/server/chunks/ssr/_0z38nha._.js +1 -1
  244. package/.next/server/chunks/ssr/{_08-43_b._.js → _0ze-0vs._.js} +6 -6
  245. package/.next/server/chunks/ssr/_14fdswx._.js +3 -0
  246. package/.next/server/chunks/ssr/_168tvri._.js +3 -0
  247. package/.next/server/chunks/ssr/_19jez1a._.js +1 -1
  248. package/.next/server/chunks/ssr/_1_n8qpv._.js +1 -1
  249. package/.next/server/chunks/ssr/_1ajl6hf._.js +5 -0
  250. package/.next/server/chunks/ssr/_1neoj22._.js +1 -1
  251. package/.next/server/chunks/ssr/_1o_i8-d._.js +7 -0
  252. package/.next/server/chunks/ssr/_1ou5sj0._.js +1 -1
  253. package/.next/server/chunks/ssr/{_1cph7zw._.js → _1r0tx3q._.js} +2 -2
  254. package/.next/server/chunks/ssr/_1ri-y7z._.js +4 -0
  255. package/.next/server/chunks/ssr/{_0p65a26._.js → _1rxpx-u._.js} +2 -2
  256. package/.next/server/chunks/ssr/_1whffg_._.js +1 -1
  257. package/.next/server/chunks/ssr/{_0opi3ai._.js → _1xq-4on._.js} +2 -2
  258. package/.next/server/chunks/ssr/_1zdizo8._.js +3 -0
  259. package/.next/server/chunks/ssr/_20gq_24._.js +3 -0
  260. package/.next/server/chunks/ssr/{_0eui8dq._.js → _20lwjif._.js} +2 -2
  261. package/.next/server/chunks/ssr/features_0ctqq63._.js +4 -0
  262. package/.next/server/chunks/ssr/features_bot_0v6r-lh._.js +3 -0
  263. package/.next/server/chunks/ssr/features_bot_1s_-2vj._.js +1 -1
  264. package/.next/server/chunks/ssr/features_config_13cg2cx._.js +20 -0
  265. package/.next/server/chunks/ssr/features_connectors_components_mcp-setting_tsx_0jmbgvp._.js +2 -2
  266. package/.next/server/chunks/ssr/features_memory_components_memory-setting_tsx_0oa43sw._.js +2 -2
  267. package/.next/server/chunks/ssr/features_routine_components_routine-setting_tsx_055fknz._.js +1 -1
  268. package/.next/server/chunks/ssr/features_workspace_workspace_ts_1wc7_u_._.js +8 -0
  269. package/.next/server/chunks/ssr/lib_utils_ts_0_f1xvm._.js +1 -1
  270. package/.next/server/chunks/ssr/{node_modules_0xftcxt._.js → node_modules_01uutx9._.js} +1 -1
  271. package/.next/server/chunks/ssr/{node_modules_0zyqek3._.js → node_modules_03hfcze._.js} +1 -1
  272. package/.next/server/chunks/ssr/{node_modules_0blkvf2._.js → node_modules_09eqoqr._.js} +1 -1
  273. package/.next/server/chunks/ssr/{node_modules_0tdcxph._.js → node_modules_0den7sw._.js} +1 -1
  274. package/.next/server/chunks/ssr/{node_modules_1o28j08._.js → node_modules_0h3dnyw._.js} +1 -1
  275. package/.next/server/chunks/ssr/{node_modules_1kxlc0o._.js → node_modules_0r6leyg._.js} +1 -1
  276. package/.next/server/chunks/ssr/{node_modules_02zb7e5._.js → node_modules_0t93862._.js} +1 -1
  277. package/.next/server/chunks/ssr/{node_modules_03xt-td._.js → node_modules_0v6s4c8._.js} +1 -1
  278. package/.next/server/chunks/ssr/{node_modules_1a3nqmx._.js → node_modules_0yslr-j._.js} +1 -1
  279. package/.next/server/chunks/ssr/{node_modules_0s4_bk5._.js → node_modules_1-20i0r._.js} +1 -1
  280. package/.next/server/chunks/ssr/{node_modules_1wdmchx._.js → node_modules_10t4pbm._.js} +1 -1
  281. package/.next/server/chunks/ssr/{node_modules_01asgpw._.js → node_modules_15ksxpk._.js} +1 -1
  282. package/.next/server/chunks/ssr/{node_modules_1iqhhrb._.js → node_modules_16oefzh._.js} +1 -1
  283. package/.next/server/chunks/ssr/{node_modules_1bxx681._.js → node_modules_16op-wf._.js} +1 -1
  284. package/.next/server/chunks/ssr/{node_modules_1co3ch3._.js → node_modules_19d6gup._.js} +1 -1
  285. package/.next/server/chunks/ssr/{node_modules_0kjl6sj._.js → node_modules_1_gizvz._.js} +1 -1
  286. package/.next/server/chunks/ssr/{node_modules_0v42ww1._.js → node_modules_1gdff1c._.js} +1 -1
  287. package/.next/server/chunks/ssr/{node_modules_0dq91_l._.js → node_modules_1j59xrt._.js} +1 -1
  288. package/.next/server/chunks/ssr/{node_modules_1z66r5a._.js → node_modules_1lmv1ux._.js} +1 -1
  289. package/.next/server/chunks/ssr/{node_modules_0e6x7_y._.js → node_modules_1ngj__4._.js} +1 -1
  290. package/.next/server/chunks/ssr/{node_modules_1i36glj._.js → node_modules_1uil5qp._.js} +1 -1
  291. package/.next/server/chunks/ssr/{node_modules_0pe6s8m._.js → node_modules_1us2bdc._.js} +1 -1
  292. package/.next/server/chunks/ssr/{node_modules_09o_wl7._.js → node_modules_1vx7yq2._.js} +1 -1
  293. package/.next/server/chunks/ssr/{node_modules_0098ngm._.js → node_modules_1x2-bh1._.js} +1 -1
  294. package/.next/server/chunks/ssr/{node_modules_0rsdila._.js → node_modules_20d3gsv._.js} +1 -1
  295. package/.next/server/chunks/ssr/{node_modules_1sbnw4n._.js → node_modules_218nu70._.js} +1 -1
  296. package/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_1jl46uo._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0wbgrv5._.js} +1 -1
  297. package/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_1tu6_ue._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_15680yt._.js} +1 -1
  298. package/.next/server/middleware-build-manifest.js +3 -3
  299. package/.next/server/next-font-manifest.js +1 -1
  300. package/.next/server/next-font-manifest.json +3 -6
  301. package/.next/server/pages/404.html +1 -1
  302. package/.next/server/pages/500.html +1 -1
  303. package/.next/server/server-reference-manifest.js +1 -1
  304. package/.next/server/server-reference-manifest.json +162 -151
  305. package/.next/static/chunks/{1l0skdxxj2kcd.js → 0j8_qql4enu93.js} +1 -1
  306. package/.next/static/chunks/{2oyabd-1mfoxe.js → 0mr03ivl4_fxd.js} +1 -1
  307. package/.next/static/chunks/0mtfu8adz57qz.js +1 -0
  308. package/.next/static/chunks/13qwyo9-jd5kw.js +1 -0
  309. package/.next/static/chunks/17_b97pj_av_t.js +1 -0
  310. package/.next/static/chunks/{2sfkl2p-u-gnt.js → 18id2dgl_39_1.js} +3 -3
  311. package/.next/static/chunks/{3qei-1n1f9f8j.js → 1iezy4u4v9kl7.js} +1 -1
  312. package/.next/static/chunks/1ln0zczby868j.js +18 -0
  313. package/.next/static/chunks/{08cmi4exadn9_.js → 1rjn_x_ty28qc.js} +2 -2
  314. package/.next/static/chunks/1wkrzv0y4qx48.js +141 -0
  315. package/.next/static/chunks/2-9ybn1k9el1e.js +1 -0
  316. package/.next/static/chunks/22djpz2dakws5.js +1 -0
  317. package/.next/static/chunks/249i2g6ele3t2.js +1 -0
  318. package/.next/static/chunks/{0n6rdrjpwcyya.js → 249vc_qrje_7w.js} +18 -18
  319. package/.next/static/chunks/{2d856gvp5z9i-.js → 249wisxmxrwa9.js} +1 -1
  320. package/.next/static/chunks/27dovttmtqjhi.js +15 -0
  321. package/.next/static/chunks/{1yvqyrgp3fz_w.js → 2k1rwhz_x2lej.js} +1 -1
  322. package/.next/static/chunks/2lhc74urf3acr.js +1 -0
  323. package/.next/static/chunks/2q33y6q5_4yxf.js +1 -0
  324. package/.next/static/chunks/30_2pay06oou4.js +3 -0
  325. package/.next/static/chunks/34-6gj9kheq74.js +2 -0
  326. package/.next/static/chunks/38srd01ofppmn.css +1 -0
  327. package/.next/static/chunks/3a29oqdmvp25o.js +35 -0
  328. package/.next/static/chunks/3c_bgfr_z4peu.js +1 -0
  329. package/.next/static/chunks/3gyqds2iodotb.js +1 -0
  330. package/.next/static/chunks/{3i78cjzzklabs.js → 3hxors_gsfsut.js} +1 -1
  331. package/.next/static/chunks/3kj0pri2oc1g1.js +1 -0
  332. package/.next/static/chunks/3q-3lu8gpr4-h.js +1 -0
  333. package/.next/static/chunks/3qkm3p4g4ajku.js +3 -0
  334. package/.next/static/chunks/3r1p-za3kwq6b.js +1 -0
  335. package/.next/static/chunks/3w3mgbz8nuug2.js +1 -0
  336. package/.next/static/chunks/3w3v100tg-tun.js +1 -0
  337. package/app/api/events/app-event.server.ts +7 -7
  338. package/app/api/query-key.ts +4 -3
  339. package/app/api/thursday/tool-call/route.ts +3 -2
  340. package/bin/thursday.mjs +4 -2
  341. package/biome.json +2 -2
  342. package/components/ui/folded-text.tsx +1 -1
  343. package/components/ui/site-icon.tsx +0 -9
  344. package/components/ui/source-chips.tsx +2 -2
  345. package/database/migrations/20260925015759_bot_own_line/migration.sql +1 -0
  346. package/database/migrations/20260925015759_bot_own_line/snapshot.json +1929 -0
  347. package/docs/how-it-works.md +1 -1
  348. package/features/ai/components/chatgpt-sign-in.tsx +3 -3
  349. package/features/ai/components/effort-switch.tsx +11 -2
  350. package/features/ai/components/gateway-mark.tsx +5 -16
  351. package/features/ai/components/model-picker.tsx +2 -1
  352. package/features/ai/live.schema.ts +11 -2
  353. package/features/ai/load-tools.ts +16 -7
  354. package/features/ai/model.schema.ts +15 -0
  355. package/features/ai/model.ts +25 -20
  356. package/features/ai/prompts/bot.prompt.ts +18 -7
  357. package/features/ai/prompts/live.prompt.ts +7 -4
  358. package/features/ai/prompts/prompt-helper.ts +5 -10
  359. package/features/ai/prompts/thursday.prompt.ts +3 -3
  360. package/features/ai/tools/mcp.tool.ts +5 -7
  361. package/features/ai/tools/routine.tool.ts +5 -3
  362. package/features/ai/tools/self.tool.ts +29 -28
  363. package/features/ai/tools/studio.tool.ts +3 -7
  364. package/features/artifact/artifact.query.ts +9 -3
  365. package/features/artifact/components/artifact-setting.tsx +1 -12
  366. package/features/bot/bot.action.ts +14 -3
  367. package/features/bot/bot.query.ts +48 -15
  368. package/features/bot/bot.run.ts +6 -8
  369. package/features/bot/bot.runner.ts +2 -0
  370. package/features/bot/bot.schema.ts +38 -12
  371. package/features/bot/bot.seed.ts +8 -8
  372. package/features/bot/components/bot-badge.tsx +2 -2
  373. package/features/bot/components/bot-mark.tsx +69 -23
  374. package/features/bot/components/bot-room.tsx +8 -4
  375. package/features/bot/components/bot-setting.tsx +129 -51
  376. package/features/bot/components/bot-tool.tsx +5 -5
  377. package/features/bot/components/room-conversation.tsx +3 -3
  378. package/features/bot/components/room-list.tsx +5 -12
  379. package/features/bot/components/room-pill.tsx +7 -2
  380. package/features/bot/components/thread-badge.tsx +9 -6
  381. package/features/bot/components/thread-reply.tsx +6 -6
  382. package/features/bot/components/thread-setting.tsx +11 -15
  383. package/features/bot/components/write-orb.tsx +4 -2
  384. package/features/bot/room.query.ts +3 -4
  385. package/features/bot/room.schema.ts +10 -1
  386. package/features/bot/thread.query.ts +3 -4
  387. package/features/bot/thread.store.ts +27 -7
  388. package/features/config/components/config-badge.tsx +2 -2
  389. package/features/config/components/config-setting.tsx +3 -2
  390. package/features/config/components/models-badge.tsx +3 -4
  391. package/features/config/components/voice-key.tsx +1 -3
  392. package/features/config/config.action.ts +3 -2
  393. package/features/connectors/components/mcp-setting.tsx +1 -0
  394. package/features/connectors/mcp.const.ts +1 -2
  395. package/features/connectors/mcp.manager.ts +2 -8
  396. package/features/intro/components/intro.tsx +6 -5
  397. package/features/intro/intro-voice.ts +2 -0
  398. package/features/memory/components/memory-setting.tsx +8 -2
  399. package/features/memory/memory.edit.ts +7 -23
  400. package/features/memory/memory.query.ts +83 -97
  401. package/features/memory/memory.schema.ts +6 -5
  402. package/features/reach/channel.ts +62 -9
  403. package/features/reach/chat-text.ts +364 -0
  404. package/features/reach/components/reach-ask.tsx +64 -16
  405. package/features/reach/components/reach-badge.tsx +22 -0
  406. package/features/reach/components/reach-guide.tsx +189 -97
  407. package/features/reach/discord.ts +85 -28
  408. package/features/reach/reach.action.ts +11 -5
  409. package/features/reach/reach.schema.ts +24 -4
  410. package/features/reach/reach.ts +351 -174
  411. package/features/reach/slack.ts +103 -40
  412. package/features/reach/socket.ts +32 -24
  413. package/features/reach/telegram.ts +137 -66
  414. package/features/routine/components/routine-setting.tsx +9 -21
  415. package/features/routine/routine.schema.ts +2 -1
  416. package/features/settings/components/setting-ui.tsx +5 -5
  417. package/features/settings/components/settings.tsx +4 -1
  418. package/features/settings/settings.alert.ts +12 -10
  419. package/features/signins/components/signins-setting.tsx +4 -19
  420. package/features/skills/components/skills-setting.tsx +16 -22
  421. package/features/skills/skills.action.ts +11 -8
  422. package/features/skills/skills.query.ts +20 -11
  423. package/features/skills/skills.schema.ts +10 -8
  424. package/features/thursday/components/ascii-orb.tsx +60 -23
  425. package/features/thursday/components/call-log.tsx +2 -2
  426. package/features/thursday/components/caption-words.tsx +117 -0
  427. package/features/thursday/components/connect-wave.tsx +5 -3
  428. package/features/thursday/components/side-captions.tsx +6 -7
  429. package/features/thursday/components/tab-state.tsx +1 -1
  430. package/features/thursday/components/thursday-setting.tsx +6 -8
  431. package/features/thursday/components/thursday.tsx +32 -12
  432. package/features/thursday/components/write-line.tsx +6 -8
  433. package/features/thursday/expressions.ts +23 -4
  434. package/features/thursday/silent-voice.ts +3 -1
  435. package/features/thursday/thursday.action.ts +2 -2
  436. package/features/thursday/thursday.query.ts +1 -1
  437. package/features/thursday/thursday.text.ts +7 -21
  438. package/features/thursday/tool-line.ts +22 -13
  439. package/features/thursday/use-call-ring.ts +3 -0
  440. package/features/thursday/use-text-call.ts +20 -11
  441. package/features/thursday/use-thursday.ts +30 -36
  442. package/features/workspace/components/artifact-view.tsx +12 -6
  443. package/features/workspace/components/file-view.tsx +11 -13
  444. package/features/workspace/file-kind.ts +5 -29
  445. package/features/workspace/workspace.ts +16 -19
  446. package/guide/bots.md +16 -9
  447. package/guide/calls.md +5 -1
  448. package/guide/phone.md +59 -24
  449. package/guide/setup.md +12 -9
  450. package/guide/trouble.md +4 -1
  451. package/hooks/use-draft.ts +2 -1
  452. package/hooks/use-hotkey.ts +15 -4
  453. package/hooks/use-object-state.ts +6 -35
  454. package/lib/live/live.server.ts +12 -4
  455. package/lib/protocol/to-result.ts +20 -0
  456. package/lib/protocol/use-server-action.ts +6 -2
  457. package/lib/protocol/use-server-pages.ts +10 -9
  458. package/lib/protocol/use-server-route.ts +1 -1
  459. package/lib/utils.ts +69 -0
  460. package/package.json +1 -1
  461. package/public/voices/intro/style-cb6fa4f7.ogg +0 -0
  462. package/scripts/artifact-paths.test.mts +9 -9
  463. package/scripts/bot-context.test.mts +99 -15
  464. package/scripts/live-session.test.mts +42 -17
  465. package/scripts/page-edits.test.mts +114 -0
  466. package/scripts/reach-channels.test.mts +205 -4
  467. package/scripts/skill-files.test.mts +23 -9
  468. package/scripts/text-call.test.mts +13 -0
  469. package/seed-skills/concierge/travel/SKILL.md +61 -0
  470. package/{skills → seed-skills/concierge}/travel/page/itinerary.css +0 -3
  471. package/{skills → seed-skills/concierge}/travel/references/book.md +11 -10
  472. package/seed-skills/concierge/travel/references/itinerary.md +83 -0
  473. package/{skills → seed-skills/concierge}/travel/references/plan.md +29 -20
  474. package/{skills → seed-skills/concierge}/travel/scripts/itinerary.mjs +36 -23
  475. package/seed-skills/concierge/travel/scripts/lib.mjs +32 -0
  476. package/seed-skills/marketer/marketing/references/social-reverse-engineering.md +7 -4
  477. package/seed-skills/marketer/marketing/references/social.md +1 -1
  478. package/skills/README.md +25 -22
  479. package/skills/artifact/LICENSE.txt +25 -0
  480. package/skills/artifact/SKILL.md +34 -12
  481. package/skills/{interactive-page/references/page.md → artifact/references/app.md} +18 -10
  482. package/skills/artifact/references/book.md +1 -1
  483. package/skills/{interactive-page → artifact}/references/diagram.md +2 -2
  484. package/skills/artifact/references/document.md +3 -3
  485. package/skills/artifact/runtime/book/book.css +1 -1
  486. package/skills/artifact/runtime/canvas/canvas.css +1 -8
  487. package/skills/artifact/runtime/canvas/canvas.js +19 -5
  488. package/skills/artifact/runtime/deck/deck.css +2 -5
  489. package/skills/artifact/runtime/deck/deck.mjs +6 -18
  490. package/skills/artifact/runtime/document/markdown.mjs +57 -2
  491. package/skills/artifact/runtime/document/pages/blank.html +0 -1
  492. package/skills/artifact/runtime/document/quick.css +1 -8
  493. package/skills/artifact/runtime/render.mjs +17 -50
  494. package/skills/artifact/runtime/shell/put.mjs +4 -4
  495. package/skills/artifact/runtime/shell/shell.css +5 -8
  496. package/skills/artifact/runtime/shell/workspace.mjs +41 -0
  497. package/skills/{interactive-page → artifact}/scripts/app.mjs +10 -24
  498. package/skills/artifact/scripts/book-pdf.mjs +16 -52
  499. package/skills/artifact/scripts/book-video.mjs +4 -4
  500. package/skills/artifact/scripts/book.mjs +9 -25
  501. package/skills/artifact/scripts/canvas.mjs +11 -50
  502. package/skills/artifact/scripts/chart.mjs +768 -0
  503. package/skills/artifact/scripts/document.mjs +11 -38
  504. package/skills/artifact/templates/boards/app.html +1 -1
  505. package/skills/artifact/templates/boards/direction.html +1 -1
  506. package/skills/artifact/templates/boards/form.html +1 -1
  507. package/skills/artifact/templates/boards/landing.html +1 -1
  508. package/skills/artifact/templates/boards/phone.html +1 -1
  509. package/skills/artifact/templates/boards/post.html +1 -1
  510. package/skills/artifact/templates/boards/poster.html +1 -1
  511. package/skills/artifact/templates/boards/wireframe.html +1 -1
  512. package/skills/browser/SKILL.md +21 -13
  513. package/skills/browser/references/scripts.md +1 -4
  514. package/skills/browser/scripts/serve.mjs +98 -0
  515. package/skills/browser/scripts/session.mjs +1 -9
  516. package/skills/browser/scripts/webimage.mjs +73 -37
  517. package/skills/daily-brief/SKILL.md +6 -5
  518. package/skills/daily-brief/page/brief.css +1 -3
  519. package/skills/daily-brief/references/brief.md +7 -5
  520. package/skills/daily-brief/references/preferences.md +9 -3
  521. package/skills/daily-brief/scripts/glance.mjs +83 -43
  522. package/skills/daily-brief/scripts/lib.mjs +8 -22
  523. package/skills/daily-brief/scripts/news.mjs +40 -68
  524. package/skills/daily-brief/scripts/page.mjs +1 -0
  525. package/skills/daily-brief/scripts/story.mjs +32 -26
  526. package/skills/data-report/SKILL.md +16 -6
  527. package/skills/data-report/references/brief.md +2 -2
  528. package/skills/data-report/references/company.md +8 -6
  529. package/skills/data-report/references/comparison.md +2 -2
  530. package/skills/data-report/references/decision.md +2 -2
  531. package/skills/data-report/references/market-size.md +5 -5
  532. package/skills/data-report/references/price-check.md +3 -3
  533. package/skills/data-report/references/sources.md +24 -19
  534. package/skills/data-report/scripts/fetch.mjs +12 -124
  535. package/skills/{travel → data-report}/scripts/fx.mjs +2 -2
  536. package/skills/{travel → data-report}/scripts/lib.mjs +1 -10
  537. package/skills/{travel → data-report}/scripts/weather.mjs +3 -3
  538. package/skills/find-skills/SKILL.md +26 -17
  539. package/skills/interactive-page/scripts/chart.mjs +3 -742
  540. package/skills/media-digest/SKILL.md +2 -2
  541. package/skills/media-digest/references/page.md +2 -1
  542. package/skills/media-digest/references/reading.md +3 -1
  543. package/skills/media-digest/scripts/digest.mjs +27 -19
  544. package/skills/media-digest/scripts/lib.mjs +8 -5
  545. package/skills/media-digest/scripts/yt.mjs +75 -63
  546. package/skills/skill-creator/SKILL.md +9 -7
  547. package/tsconfig.json +1 -1
  548. package/.next/server/chunks/[root-of-the-server]__01c00ji._.js +0 -5
  549. package/.next/server/chunks/[root-of-the-server]__0ay_0v1._.js +0 -3
  550. package/.next/server/chunks/[root-of-the-server]__0bqs_9a._.js +0 -8
  551. package/.next/server/chunks/[root-of-the-server]__0bszc4-._.js +0 -10
  552. package/.next/server/chunks/[root-of-the-server]__0dr9_ae._.js +0 -10
  553. package/.next/server/chunks/[root-of-the-server]__0ev82uj._.js +0 -7
  554. package/.next/server/chunks/[root-of-the-server]__0h_x6q6._.js +0 -5
  555. package/.next/server/chunks/[root-of-the-server]__0j1mlup._.js +0 -5
  556. package/.next/server/chunks/[root-of-the-server]__0qog7sm._.js +0 -8
  557. package/.next/server/chunks/[root-of-the-server]__0uk3dnq._.js +0 -5
  558. package/.next/server/chunks/[root-of-the-server]__0v7nplh._.js +0 -10
  559. package/.next/server/chunks/[root-of-the-server]__0w1ikz2._.js +0 -5
  560. package/.next/server/chunks/[root-of-the-server]__0wgrj46._.js +0 -8
  561. package/.next/server/chunks/[root-of-the-server]__0xb7rm3._.js +0 -8
  562. package/.next/server/chunks/[root-of-the-server]__0xuuwuz._.js +0 -5
  563. package/.next/server/chunks/[root-of-the-server]__1-swlkw._.js +0 -10
  564. package/.next/server/chunks/[root-of-the-server]__11v89xa._.js +0 -3
  565. package/.next/server/chunks/[root-of-the-server]__13prxn7._.js +0 -5
  566. package/.next/server/chunks/[root-of-the-server]__17bezp7._.js +0 -8
  567. package/.next/server/chunks/[root-of-the-server]__17ses32._.js +0 -3
  568. package/.next/server/chunks/[root-of-the-server]__19aqyg-._.js +0 -3
  569. package/.next/server/chunks/[root-of-the-server]__1_9jgy9._.js +0 -5
  570. package/.next/server/chunks/[root-of-the-server]__1ayuyj_._.js +0 -3
  571. package/.next/server/chunks/[root-of-the-server]__1bgik8z._.js +0 -3
  572. package/.next/server/chunks/[root-of-the-server]__1d1z4ie._.js +0 -5
  573. package/.next/server/chunks/[root-of-the-server]__1j0l3jb._.js +0 -5
  574. package/.next/server/chunks/[root-of-the-server]__1j97q_v._.js +0 -5
  575. package/.next/server/chunks/[root-of-the-server]__1kyjt5m._.js +0 -8
  576. package/.next/server/chunks/[root-of-the-server]__1n25or9._.js +0 -5
  577. package/.next/server/chunks/[root-of-the-server]__1oezhkc._.js +0 -5
  578. package/.next/server/chunks/[root-of-the-server]__1orn-5b._.js +0 -11
  579. package/.next/server/chunks/[root-of-the-server]__1r-eikq._.js +0 -3
  580. package/.next/server/chunks/[root-of-the-server]__1xglb2u._.js +0 -3
  581. package/.next/server/chunks/[root-of-the-server]__20t2o2p._.js +0 -5
  582. package/.next/server/chunks/_0-s6-em._.js +0 -5
  583. package/.next/server/chunks/_05h2cii._.js +0 -3
  584. package/.next/server/chunks/_0941o_i._.js +0 -3
  585. package/.next/server/chunks/_09oyap7._.js +0 -3
  586. package/.next/server/chunks/_0b4fp65._.js +0 -3
  587. package/.next/server/chunks/_0bpybvt._.js +0 -3
  588. package/.next/server/chunks/_0d92-06._.js +0 -3
  589. package/.next/server/chunks/_0hzgbsf._.js +0 -3
  590. package/.next/server/chunks/_0iu_und._.js +0 -3
  591. package/.next/server/chunks/_0je3imj._.js +0 -5
  592. package/.next/server/chunks/_0nj2e61._.js +0 -75
  593. package/.next/server/chunks/_0of23o2._.js +0 -3
  594. package/.next/server/chunks/_0ov9f_8._.js +0 -3
  595. package/.next/server/chunks/_11829pa._.js +0 -5
  596. package/.next/server/chunks/_12gqi4h._.js +0 -3
  597. package/.next/server/chunks/_15_osem._.js +0 -3
  598. package/.next/server/chunks/_18effyv._.js +0 -3
  599. package/.next/server/chunks/_1d_enhu._.js +0 -3
  600. package/.next/server/chunks/_1ee8e2a._.js +0 -3
  601. package/.next/server/chunks/_1fjkx-l._.js +0 -3
  602. package/.next/server/chunks/_1g8njc7._.js +0 -75
  603. package/.next/server/chunks/_1hyvcgk._.js +0 -5
  604. package/.next/server/chunks/_1i350l5._.js +0 -5
  605. package/.next/server/chunks/_1i8gare._.js +0 -75
  606. package/.next/server/chunks/_1ic60v0._.js +0 -75
  607. package/.next/server/chunks/_1nfr-75._.js +0 -3
  608. package/.next/server/chunks/_1p6p549._.js +0 -3
  609. package/.next/server/chunks/_1qckb8-._.js +0 -69
  610. package/.next/server/chunks/_1r59bui._.js +0 -7
  611. package/.next/server/chunks/features_0rfvely._.js +0 -10
  612. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_14jdi_3._.js +0 -3
  613. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1lwq773._.js +0 -3
  614. package/.next/server/chunks/ssr/[root-of-the-server]__0l93lgv._.js +0 -112
  615. package/.next/server/chunks/ssr/[root-of-the-server]__0tif9ri._.js +0 -44
  616. package/.next/server/chunks/ssr/[root-of-the-server]__0z122e5._.js +0 -3
  617. package/.next/server/chunks/ssr/[root-of-the-server]__1c2a2og._.js +0 -6
  618. package/.next/server/chunks/ssr/[root-of-the-server]__1dolm51._.js +0 -3
  619. package/.next/server/chunks/ssr/[root-of-the-server]__1p00tgw._.js +0 -3
  620. package/.next/server/chunks/ssr/[root-of-the-server]__1rdnn5b._.js +0 -6
  621. package/.next/server/chunks/ssr/[root-of-the-server]__1u_ry86._.js +0 -3
  622. package/.next/server/chunks/ssr/_02vrvn5._.js +0 -5
  623. package/.next/server/chunks/ssr/_03nl1ug._.js +0 -69
  624. package/.next/server/chunks/ssr/_03vhvgx._.js +0 -5
  625. package/.next/server/chunks/ssr/_05o_a3a._.js +0 -5
  626. package/.next/server/chunks/ssr/_0874e-t._.js +0 -3
  627. package/.next/server/chunks/ssr/_0ft6dx5._.js +0 -3
  628. package/.next/server/chunks/ssr/_0gvuxm5._.js +0 -3
  629. package/.next/server/chunks/ssr/_0lufvw7._.js +0 -40
  630. package/.next/server/chunks/ssr/_0n2g17w._.js +0 -3
  631. package/.next/server/chunks/ssr/_0nnpw20._.js +0 -162
  632. package/.next/server/chunks/ssr/_0nqxc6a._.js +0 -3
  633. package/.next/server/chunks/ssr/_0q5l3vn._.js +0 -3
  634. package/.next/server/chunks/ssr/_0qbg712._.js +0 -3
  635. package/.next/server/chunks/ssr/_0qznihg._.js +0 -8
  636. package/.next/server/chunks/ssr/_0ze_7h_._.js +0 -3
  637. package/.next/server/chunks/ssr/_16xo5q_._.js +0 -3
  638. package/.next/server/chunks/ssr/_1i95bl8._.js +0 -3
  639. package/.next/server/chunks/ssr/_1rgtxhr._.js +0 -5
  640. package/.next/server/chunks/ssr/_1w4l00e._.js +0 -3
  641. package/.next/server/chunks/ssr/features_bot_0o_0pus._.js +0 -3
  642. package/.next/server/chunks/ssr/features_bot_thread_query_ts_023eklt._.js +0 -4
  643. package/.next/server/chunks/ssr/features_config_1xd8jbr._.js +0 -20
  644. package/.next/static/chunks/01xwke9b8l19s.js +0 -3
  645. package/.next/static/chunks/02omaqvvszea3.css +0 -1
  646. package/.next/static/chunks/05pod3cctc91e.js +0 -35
  647. package/.next/static/chunks/06c1o06llj7yb.js +0 -1
  648. package/.next/static/chunks/0cpzig203vyaf.css +0 -1
  649. package/.next/static/chunks/0h9awif8nb7u1.js +0 -15
  650. package/.next/static/chunks/0sw0e8oydgb2i.js +0 -1
  651. package/.next/static/chunks/0wfbplaey6aci.js +0 -141
  652. package/.next/static/chunks/0z2n4roovyul1.js +0 -2
  653. package/.next/static/chunks/0zcxthn04h2ie.js +0 -1
  654. package/.next/static/chunks/1d4mityk3l2n1.js +0 -1
  655. package/.next/static/chunks/1j2jpbjbxf8_z.js +0 -1
  656. package/.next/static/chunks/1s51nav9vksqn.js +0 -1
  657. package/.next/static/chunks/1y5g2bh8zs-dt.js +0 -1
  658. package/.next/static/chunks/2244-cat2jlvd.js +0 -1
  659. package/.next/static/chunks/2ep5hjstgeebt.js +0 -1
  660. package/.next/static/chunks/2o0i48pg49fwm.js +0 -1
  661. package/.next/static/chunks/34mhyr-iphc37.js +0 -1
  662. package/.next/static/chunks/3asfk3jrwfcfj.js +0 -1
  663. package/.next/static/chunks/3gw6javhgrj-0.js +0 -1
  664. package/.next/static/chunks/3j9c0fywjobx6.js +0 -3
  665. package/.next/static/chunks/3v0ckejuv683b.js +0 -1
  666. package/.next/static/chunks/3vi-up3bdtkoi.js +0 -18
  667. package/.next/static/chunks/447b68rp2suds.js +0 -1
  668. package/.next/static/media/0106a56b0bb88f50-s.443erqii2__5m.woff2 +0 -0
  669. package/.next/static/media/014bbe2d27735a42-s.2hto45bnkx1r-.woff2 +0 -0
  670. package/.next/static/media/0210d3af6e4ae027-s.14tr9uwg_tiub.woff2 +0 -0
  671. package/.next/static/media/038c4321d5a6e250-s.0v2q-me7wmel3.woff2 +0 -0
  672. package/.next/static/media/0438ae48de8d590a-s.21iornbi780r0.woff2 +0 -0
  673. package/.next/static/media/04830de593b66c5d-s.111bv38_pklfq.woff2 +0 -0
  674. package/.next/static/media/093098304a5ac2dd-s.23wm9ohbd3tnz.woff2 +0 -0
  675. package/.next/static/media/162db325b36bd808-s.0-xy7w9x012j0.woff2 +0 -0
  676. package/.next/static/media/166adff9cb65b3de-s.00wz22ol8wj9o.woff2 +0 -0
  677. package/.next/static/media/16e80bd5f170758b-s.2uwlhd5womvl6.woff2 +0 -0
  678. package/.next/static/media/1da4e25296370467-s.41mrek9qaen-g.woff2 +0 -0
  679. package/.next/static/media/21105a037c4158a7-s.3l3qmtpr7uo8w.woff2 +0 -0
  680. package/.next/static/media/2206cbe4f1f4c69d-s.3mum7y3d7rws7.woff2 +0 -0
  681. package/.next/static/media/230221e76bed2da2-s.147gc22y8gru7.woff2 +0 -0
  682. package/.next/static/media/232141b8ecbbcd47-s.0fhk9hx719lig.woff2 +0 -0
  683. package/.next/static/media/233d853b0359349f-s.2r5e-ejhv2bh3.woff2 +0 -0
  684. package/.next/static/media/26491089e50f509b-s.24l_ddcsmlf69.woff2 +0 -0
  685. package/.next/static/media/2d8bc45d72d4c3b1-s.0pqmgn-6n3cm0.woff2 +0 -0
  686. package/.next/static/media/2da3330aae3ccdce-s.12pzoz1kdijzr.woff2 +0 -0
  687. package/.next/static/media/2da868b477e86450-s.3c2e1i3y_5zke.woff2 +0 -0
  688. package/.next/static/media/2de8b0344c3001db-s.12c7n8vwdiqbo.woff2 +0 -0
  689. package/.next/static/media/2ea9328f7c652dae-s.2_zjfs_06xy5e.woff2 +0 -0
  690. package/.next/static/media/30c382c6626da783-s.1z6b-7u737no3.woff2 +0 -0
  691. package/.next/static/media/30c6f26662e6e9d5-s.3rbm4b04akqwn.woff2 +0 -0
  692. package/.next/static/media/3473c266598a9a86-s.0w6m-paikcw2f.woff2 +0 -0
  693. package/.next/static/media/387141d10a2ad297-s.43gx62iq9dvut.woff2 +0 -0
  694. package/.next/static/media/39a97c867d67ea84-s.0xrf5k_0v8y2f.woff2 +0 -0
  695. package/.next/static/media/3c2c930d4f7fa5d6-s.34ma-3dojt09_.woff2 +0 -0
  696. package/.next/static/media/3d1e2499e2849b4b-s.3xjk7q0kp-qnn.woff2 +0 -0
  697. package/.next/static/media/3e58cc94f6abecf3-s.3h7ju1_su0p8i.woff2 +0 -0
  698. package/.next/static/media/4210b1b34541ed9f-s.1qc8mwehnxa2j.woff2 +0 -0
  699. package/.next/static/media/4535b59975288ec4-s.41kbibkw06hao.woff2 +0 -0
  700. package/.next/static/media/49b68f237c121e15-s.3kupyo2hn06ez.woff2 +0 -0
  701. package/.next/static/media/4bc8b3ec18572797-s.1vl7i5hvz_oyi.woff2 +0 -0
  702. package/.next/static/media/50146ac5faa900c7-s.2oktnj8978dw5.woff2 +0 -0
  703. package/.next/static/media/511c660e27dcb0fb-s.3chjd1-p26p11.woff2 +0 -0
  704. package/.next/static/media/52a9acaea1c3a991-s.1yu3kqpp7hjph.woff2 +0 -0
  705. package/.next/static/media/538226305f5a3ad5-s.1q92pi8h-ffes.woff2 +0 -0
  706. package/.next/static/media/53894bbb9f8c681a-s.1_yuxz858zlnb.woff2 +0 -0
  707. package/.next/static/media/55f6cad3babd214a-s.081dwevu6d7xk.woff2 +0 -0
  708. package/.next/static/media/5882eb9fe44d78e2-s.2zlo_5j6rno3q.woff2 +0 -0
  709. package/.next/static/media/5969366ba767d8d4-s.2zmpg-3r1_mtl.woff2 +0 -0
  710. package/.next/static/media/5989c81e7a9c7e38-s.2isa_l1o5587j.woff2 +0 -0
  711. package/.next/static/media/5b9884e6066abdd6-s.3o8_r4znw9x3x.woff2 +0 -0
  712. package/.next/static/media/5c5f30cb264955bd-s.0zj2_87wady_x.woff2 +0 -0
  713. package/.next/static/media/5e24574941401d5b-s.3wc_ngckfpfms.woff2 +0 -0
  714. package/.next/static/media/5ed35f6cd72e795a-s.0j67rumwa89lb.woff2 +0 -0
  715. package/.next/static/media/601bb783025ae30c-s.3ku7bj7isbklh.woff2 +0 -0
  716. package/.next/static/media/61241cac24c2a0e2-s.40y9ukb8wxzut.woff2 +0 -0
  717. package/.next/static/media/6859d3e35c35debe-s.2q2tmkb1shqnb.woff2 +0 -0
  718. package/.next/static/media/6ac1a01e63235878-s.0wmvo4c4vth-i.woff2 +0 -0
  719. package/.next/static/media/6c77187342e37cf9-s.07hmemvzf4-u9.woff2 +0 -0
  720. package/.next/static/media/6ce4106ec5f685fa-s.44f14wqbmmyd-.woff2 +0 -0
  721. package/.next/static/media/6d7dc66bf95c6217-s.1lkes07qi5uib.woff2 +0 -0
  722. package/.next/static/media/6dfe7f3176c62da9-s.3kw6kzlsm7v_q.woff2 +0 -0
  723. package/.next/static/media/6eac4fb20e551c63-s.3wd8htrc9uzfn.woff2 +0 -0
  724. package/.next/static/media/71c14456d24a4b84-s.0z9hutkde_u05.woff2 +0 -0
  725. package/.next/static/media/737da98c47c55d2b-s.1rom4qqc2fww-.woff2 +0 -0
  726. package/.next/static/media/746030a283d8cec6-s.2p6zerspiyk_f.woff2 +0 -0
  727. package/.next/static/media/74ef58acabb27d5e-s.2y-ai5lz7_pdp.woff2 +0 -0
  728. package/.next/static/media/77e4f8467adb922e-s.2efyyrc7lv9di.woff2 +0 -0
  729. package/.next/static/media/787fa398b9c5f7af-s.32_407h6tidfg.woff2 +0 -0
  730. package/.next/static/media/7d4b17216ae7593d-s.2k3o7_e1yxxpo.woff2 +0 -0
  731. package/.next/static/media/7ea3631c3cde394b-s.0vf3wnf2h_7vf.woff2 +0 -0
  732. package/.next/static/media/7f442fde2b8bf319-s.1u02ohez81q4q.woff2 +0 -0
  733. package/.next/static/media/8172b85f33df40a0-s.0fj6a9b_hfxs6.woff2 +0 -0
  734. package/.next/static/media/82b806285508c439-s.0ee4xf7dp_wp-.woff2 +0 -0
  735. package/.next/static/media/85b877b536693704-s.0peu9pq9_cb1d.woff2 +0 -0
  736. package/.next/static/media/8a497761829c8748-s.2rajdhyr9w-z4.woff2 +0 -0
  737. package/.next/static/media/8cfd26c5716ced24-s.3gytc7yl73wfy.woff2 +0 -0
  738. package/.next/static/media/8f8ce4796c61bc37-s.0w2_2bry-jqwc.woff2 +0 -0
  739. package/.next/static/media/902f1f16e05e52f0-s.1qjf6iu2x9uar.woff2 +0 -0
  740. package/.next/static/media/91fa2e66ac7b6c46-s.0puvrlt93d43c.woff2 +0 -0
  741. package/.next/static/media/966601d4e7423616-s.11mizgexxr83t.woff2 +0 -0
  742. package/.next/static/media/a0231ac2ae18238f-s.2dovq3ky55l90.woff2 +0 -0
  743. package/.next/static/media/a059630bbac55a21-s.3fuazp11r748g.woff2 +0 -0
  744. package/.next/static/media/a22e313bb7a8a39e-s.3cz8luvnln_pz.woff2 +0 -0
  745. package/.next/static/media/a24e7152b23ee8c5-s.3qwsfb3pmz-6g.woff2 +0 -0
  746. package/.next/static/media/a65c59c841f0caf6-s.0wi60avg23rks.woff2 +0 -0
  747. package/.next/static/media/a69bc4ab5c26984c-s.3vv7ley8ilwo6.woff2 +0 -0
  748. package/.next/static/media/ab4360ebe64d599e-s.2zb49fx1--n0s.woff2 +0 -0
  749. package/.next/static/media/ad9ebc3e998670d6-s.2ml65d13do6c9.woff2 +0 -0
  750. package/.next/static/media/aefb5cabebaf0ab0-s.25xnyaa-mdcdf.woff2 +0 -0
  751. package/.next/static/media/b8f2ea139fcb9e08-s.1vov2senidair.woff2 +0 -0
  752. package/.next/static/media/bbcdeacad47993cf-s.1zch8ig3-ls5a.woff2 +0 -0
  753. package/.next/static/media/bbd67860f10e7ae6-s.18kj4w_mbyf-v.woff2 +0 -0
  754. package/.next/static/media/bc0c26ceee8973fc-s.026_hgx-k9pos.woff2 +0 -0
  755. package/.next/static/media/bcd96d037c9ce916-s.1l1g2d518ofv_.woff2 +0 -0
  756. package/.next/static/media/be017bc808fc0923-s.1g8qtp3aadqtg.woff2 +0 -0
  757. package/.next/static/media/c1b4884f16601f25-s.3yo_k-01b5mp-.woff2 +0 -0
  758. package/.next/static/media/c1d5edb1b0d5947a-s.2-qt79arcvocj.woff2 +0 -0
  759. package/.next/static/media/c5b7cd88b6c9be21-s.3oolga7zi7cdd.woff2 +0 -0
  760. package/.next/static/media/c5b80dd9e78c69ed-s.0b7dfcw_p8bha.woff2 +0 -0
  761. package/.next/static/media/caff87e5dd90d2f0-s.0_gj25zzrai0z.woff2 +0 -0
  762. package/.next/static/media/cd5265b8407b46e4-s.3rxgksbv0az-w.woff2 +0 -0
  763. package/.next/static/media/d129f5e62d2fe237-s.3-drdqz-sr23d.woff2 +0 -0
  764. package/.next/static/media/d13b20078e6ea518-s.1cmr700hzb92m.woff2 +0 -0
  765. package/.next/static/media/d1edecf0304c3507-s.28z1aq1dzje_-.woff2 +0 -0
  766. package/.next/static/media/d1f85459c5eebde3-s.2rtc0vzra0ky4.woff2 +0 -0
  767. package/.next/static/media/d2991efcbcf9b9c8-s.3_lce71n7tjxo.woff2 +0 -0
  768. package/.next/static/media/d551aeff366c5bbf-s.33k1htekscxlo.woff2 +0 -0
  769. package/.next/static/media/d894db0c1734b67d-s.0rxv1dhbbo3hu.woff2 +0 -0
  770. package/.next/static/media/d8cd782fa9ae3d4d-s.1p2lizfg81idc.woff2 +0 -0
  771. package/.next/static/media/da9d1e1185543afb-s.0sxvmcy_fb5b8.woff2 +0 -0
  772. package/.next/static/media/db4adabfce0a709b-s.3nn391clgw0rh.woff2 +0 -0
  773. package/.next/static/media/dd17065f31ae9563-s.284rmhope_27v.woff2 +0 -0
  774. package/.next/static/media/df3bca3378220a91-s.25gm6w3trnllb.woff2 +0 -0
  775. package/.next/static/media/dff3f3b699b25d3a-s.09rblah1qvccr.woff2 +0 -0
  776. package/.next/static/media/e22fed6528437c7d-s.3e18xpinmwoya.woff2 +0 -0
  777. package/.next/static/media/e310e24a00c850da-s.0a6xhwd1n-twr.woff2 +0 -0
  778. package/.next/static/media/e46336d0fe4d243f-s.1ihe76kx1l647.woff2 +0 -0
  779. package/.next/static/media/e7cf9e1733816630-s.0il5p5r7h227w.woff2 +0 -0
  780. package/.next/static/media/ea9222944074facb-s.2h1j9zscm3tmq.woff2 +0 -0
  781. package/.next/static/media/eb20be49cdafd162-s.3jcdswtqj--m6.woff2 +0 -0
  782. package/.next/static/media/eed4a9de3f1e8316-s.3ily5e0u1sha_.woff2 +0 -0
  783. package/.next/static/media/f07b9573fd58c87a-s.1ct97vx6w445c.woff2 +0 -0
  784. package/.next/static/media/f221a5c8cde4c418-s.1ybp9b_glcxqu.woff2 +0 -0
  785. package/.next/static/media/f51dd025c1ebaf3b-s.0u0alay1t56iu.woff2 +0 -0
  786. package/.next/static/media/fabba9ec6e164a6d-s.2pa5l-obo-umo.woff2 +0 -0
  787. package/.next/static/media/fadd147cd39e517b-s.10f1_okhfbooa.woff2 +0 -0
  788. package/.next/static/media/fca78c2ee6cec166-s.p.1sn26-iqxrgtp.woff2 +0 -0
  789. package/.next/static/media/fcc4b7a0a2f8f14f-s.2a3fimcti-np3.woff2 +0 -0
  790. package/.next/static/media/fd17b469642c95d2-s.28na5vkwooaza.woff2 +0 -0
  791. package/.next/static/media/ff64329746d3c5f4-s.39f462kzq7srk.woff2 +0 -0
  792. package/lib/limits.ts +0 -14
  793. package/skills/interactive-page/LICENSE.txt +0 -202
  794. package/skills/interactive-page/SKILL.md +0 -28
  795. package/skills/travel/SKILL.md +0 -47
  796. package/skills/travel/references/itinerary.md +0 -79
  797. /package/.next/static/{h3SUQd7uns3G7kJUukaX4 → 0yrnAMu4F_o69_DY3W-ho}/_buildManifest.js +0 -0
  798. /package/.next/static/{h3SUQd7uns3G7kJUukaX4 → 0yrnAMu4F_o69_DY3W-ho}/_clientMiddlewareManifest.js +0 -0
  799. /package/.next/static/{h3SUQd7uns3G7kJUukaX4 → 0yrnAMu4F_o69_DY3W-ho}/_ssgManifest.js +0 -0
  800. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/components.json +0 -0
  801. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/package-lock.json +0 -0
  802. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/package.json +0 -0
  803. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/postcss.config.js +0 -0
  804. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/accordion.tsx +0 -0
  805. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/alert.tsx +0 -0
  806. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/aspect-ratio.tsx +0 -0
  807. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/avatar.tsx +0 -0
  808. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/badge.tsx +0 -0
  809. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/breadcrumb.tsx +0 -0
  810. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/button.tsx +0 -0
  811. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/calendar.tsx +0 -0
  812. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/card.tsx +0 -0
  813. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/carousel.tsx +0 -0
  814. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/checkbox.tsx +0 -0
  815. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/collapsible.tsx +0 -0
  816. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/command.tsx +0 -0
  817. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/context-menu.tsx +0 -0
  818. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/dialog.tsx +0 -0
  819. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/drawer.tsx +0 -0
  820. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/dropdown-menu.tsx +0 -0
  821. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/form.tsx +0 -0
  822. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/hover-card.tsx +0 -0
  823. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/input.tsx +0 -0
  824. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/label.tsx +0 -0
  825. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/menubar.tsx +0 -0
  826. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/navigation-menu.tsx +0 -0
  827. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/popover.tsx +0 -0
  828. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/progress.tsx +0 -0
  829. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/radio-group.tsx +0 -0
  830. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/resizable.tsx +0 -0
  831. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/scroll-area.tsx +0 -0
  832. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/select.tsx +0 -0
  833. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/separator.tsx +0 -0
  834. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/sheet.tsx +0 -0
  835. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/skeleton.tsx +0 -0
  836. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/slider.tsx +0 -0
  837. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/sonner.tsx +0 -0
  838. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/switch.tsx +0 -0
  839. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/table.tsx +0 -0
  840. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/tabs.tsx +0 -0
  841. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/textarea.tsx +0 -0
  842. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/toast.tsx +0 -0
  843. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/toaster.tsx +0 -0
  844. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/toggle-group.tsx +0 -0
  845. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/toggle.tsx +0 -0
  846. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/components/ui/tooltip.tsx +0 -0
  847. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/hooks/use-toast.ts +0 -0
  848. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/index.css +0 -0
  849. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/src/lib/utils.ts +0 -0
  850. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/tailwind.config.js +0 -0
  851. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/tsconfig.json +0 -0
  852. /package/skills/{interactive-page/runtime → artifact/runtime/app}/kit/vite.config.ts +0 -0
  853. /package/skills/{interactive-page/runtime → artifact/runtime/app}/page/index.html +0 -0
  854. /package/skills/{interactive-page/runtime → artifact/runtime/app}/page/src/App.tsx +0 -0
  855. /package/skills/{interactive-page/runtime → artifact/runtime/app}/page/src/main.tsx +0 -0
  856. /package/skills/{interactive-page → artifact}/scripts/archify/LICENSE +0 -0
  857. /package/skills/{interactive-page → artifact}/scripts/archify/README.md +0 -0
  858. /package/skills/{interactive-page → artifact}/scripts/archify/assets/JetBrainsMono-OFL.txt +0 -0
  859. /package/skills/{interactive-page → artifact}/scripts/archify/assets/template.html +0 -0
  860. /package/skills/{interactive-page → artifact}/scripts/archify/bin/archify.mjs +0 -0
  861. /package/skills/{interactive-page → artifact}/scripts/archify/bin/open-artifact.mjs +0 -0
  862. /package/skills/{interactive-page → artifact}/scripts/archify/bin/preview.mjs +0 -0
  863. /package/skills/{interactive-page → artifact}/scripts/archify/bin/visual-check.mjs +0 -0
  864. /package/skills/{interactive-page → artifact}/scripts/archify/delta/architecture-delta.mjs +0 -0
  865. /package/skills/{interactive-page → artifact}/scripts/archify/examples/agent-run.lifecycle.json +0 -0
  866. /package/skills/{interactive-page → artifact}/scripts/archify/examples/agent-tool-call.workflow.json +0 -0
  867. /package/skills/{interactive-page → artifact}/scripts/archify/examples/async-job-roundtrip.sequence.json +0 -0
  868. /package/skills/{interactive-page → artifact}/scripts/archify/examples/cache-miss-request.sequence.json +0 -0
  869. /package/skills/{interactive-page → artifact}/scripts/archify/examples/checkout-platform.base.architecture.json +0 -0
  870. /package/skills/{interactive-page → artifact}/scripts/archify/examples/checkout-platform.head.architecture.json +0 -0
  871. /package/skills/{interactive-page → artifact}/scripts/archify/examples/deployment-release.lifecycle.json +0 -0
  872. /package/skills/{interactive-page → artifact}/scripts/archify/examples/event-stream.dataflow.json +0 -0
  873. /package/skills/{interactive-page → artifact}/scripts/archify/examples/incident-response.workflow.json +0 -0
  874. /package/skills/{interactive-page → artifact}/scripts/archify/examples/product-analytics.dataflow.json +0 -0
  875. /package/skills/{interactive-page → artifact}/scripts/archify/examples/production-deployment.architecture.json +0 -0
  876. /package/skills/{interactive-page → artifact}/scripts/archify/examples/release-delivery.workflow.json +0 -0
  877. /package/skills/{interactive-page → artifact}/scripts/archify/examples/web-app.architecture.json +0 -0
  878. /package/skills/{interactive-page → artifact}/scripts/archify/migrations/workflow-v2.mjs +0 -0
  879. /package/skills/{interactive-page → artifact}/scripts/archify/recipes/scenarios.mjs +0 -0
  880. /package/skills/{interactive-page → artifact}/scripts/archify/references/authoring-contract.md +0 -0
  881. /package/skills/{interactive-page → artifact}/scripts/archify/references/delivery-contract.md +0 -0
  882. /package/skills/{interactive-page → artifact}/scripts/archify/references/viewer-runtime.md +0 -0
  883. /package/skills/{interactive-page → artifact}/scripts/archify/renderers/architecture/grid.mjs +0 -0
  884. /package/skills/{interactive-page → artifact}/scripts/archify/renderers/architecture/render-architecture.mjs +0 -0
  885. /package/skills/{interactive-page → artifact}/scripts/archify/renderers/dataflow/README.md +0 -0
  886. /package/skills/{interactive-page → artifact}/scripts/archify/renderers/dataflow/render-dataflow.mjs +0 -0
  887. /package/skills/{interactive-page → artifact}/scripts/archify/renderers/lifecycle/README.md +0 -0
  888. /package/skills/{interactive-page → artifact}/scripts/archify/renderers/lifecycle/render-lifecycle.mjs +0 -0
  889. /package/skills/{interactive-page → artifact}/scripts/archify/renderers/sequence/README.md +0 -0
  890. /package/skills/{interactive-page → artifact}/scripts/archify/renderers/sequence/render-sequence.mjs +0 -0
  891. /package/skills/{interactive-page → artifact}/scripts/archify/renderers/shared/brand-marks.mjs +0 -0
  892. /package/skills/{interactive-page → artifact}/scripts/archify/renderers/shared/cli.mjs +0 -0
  893. /package/skills/{interactive-page → artifact}/scripts/archify/renderers/shared/desktop-readability.mjs +0 -0
  894. /package/skills/{interactive-page → artifact}/scripts/archify/renderers/shared/diagnostics.mjs +0 -0
  895. /package/skills/{interactive-page → artifact}/scripts/archify/renderers/shared/engineering-profiles.mjs +0 -0
  896. /package/skills/{interactive-page → artifact}/scripts/archify/renderers/shared/generated-brand-marks.mjs +0 -0
  897. /package/skills/{interactive-page → artifact}/scripts/archify/renderers/shared/generated-validators.mjs +0 -0
  898. /package/skills/{interactive-page → artifact}/scripts/archify/renderers/shared/geometry.mjs +0 -0
  899. /package/skills/{interactive-page → artifact}/scripts/archify/renderers/shared/i18n.mjs +0 -0
  900. /package/skills/{interactive-page → artifact}/scripts/archify/renderers/shared/layout-report.mjs +0 -0
  901. /package/skills/{interactive-page → artifact}/scripts/archify/renderers/shared/legend.mjs +0 -0
  902. /package/skills/{interactive-page → artifact}/scripts/archify/renderers/shared/output-path.mjs +0 -0
  903. /package/skills/{interactive-page → artifact}/scripts/archify/renderers/shared/repository-evidence.mjs +0 -0
  904. /package/skills/{interactive-page → artifact}/scripts/archify/renderers/shared/repository-location.mjs +0 -0
  905. /package/skills/{interactive-page → artifact}/scripts/archify/renderers/shared/text-fit.mjs +0 -0
  906. /package/skills/{interactive-page → artifact}/scripts/archify/renderers/shared/utils.mjs +0 -0
  907. /package/skills/{interactive-page → artifact}/scripts/archify/renderers/shared/validator.mjs +0 -0
  908. /package/skills/{interactive-page → artifact}/scripts/archify/renderers/workflow/README.md +0 -0
  909. /package/skills/{interactive-page → artifact}/scripts/archify/renderers/workflow/render-workflow.mjs +0 -0
  910. /package/skills/{interactive-page → artifact}/scripts/archify/renderers/workflow/workflow-compiler.mjs +0 -0
  911. /package/skills/{interactive-page → artifact}/scripts/archify/renderers/workflow/workflow-migration-geometry.mjs +0 -0
  912. /package/skills/{interactive-page → artifact}/scripts/archify/schemas/README.md +0 -0
  913. /package/skills/{interactive-page → artifact}/scripts/archify/schemas/architecture.schema.json +0 -0
  914. /package/skills/{interactive-page → artifact}/scripts/archify/schemas/common.schema.json +0 -0
  915. /package/skills/{interactive-page → artifact}/scripts/archify/schemas/dataflow.schema.json +0 -0
  916. /package/skills/{interactive-page → artifact}/scripts/archify/schemas/lifecycle.schema.json +0 -0
  917. /package/skills/{interactive-page → artifact}/scripts/archify/schemas/sequence.schema.json +0 -0
  918. /package/skills/{interactive-page → artifact}/scripts/archify/schemas/workflow.schema.json +0 -0
  919. /package/skills/{interactive-page → artifact}/scripts/archify/scripts/check-render-output.mjs +0 -0
  920. /package/skills/{interactive-page → artifact}/scripts/archify/scripts/render-examples.mjs +0 -0
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,107941,e=>{"use strict";var t=e.i(843476),n=e.i(24071),i=e.i(867927),s=e.i(482022),r=e.i(829600),a=e.i(456420);let o={name:"file-code-corner",size:24,node:[["path",{d:"M4 12.15V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-3.35",key:"1wthlu"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"m5 16-3 3 3 3",key:"331omg"}],["path",{d:"m9 22 3-3-3-3",key:"lsp7cz"}]],aliases:["file-code-2"]};o.node;let l=(0,a.default)(o);var d=e.i(905015),c=e.i(226091),u=e.i(726067),m=e.i(569644),x=e.i(815170),f=e.i(51921);let h={name:"sheet",size:24,node:[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["line",{x1:"3",x2:"21",y1:"9",y2:"9",key:"1vqk6q"}],["line",{x1:"3",x2:"21",y1:"15",y2:"15",key:"o2sbyz"}],["line",{x1:"9",x2:"9",y1:"9",y2:"21",key:"1ib60c"}],["line",{x1:"15",x2:"15",y1:"9",y2:"21",key:"1n26ft"}]]};h.node;let p=(0,a.default)(h);var g=e.i(759659),v=e.i(438583),y=e.i(271645),k=e.i(798120),j=e.i(167881),b=e.i(917162),w=e.i(41533),N=e.i(895836),S=e.i(621285),F=e.i(970028),A=e.i(95187);let C=(0,A.createServerReference)("7f6dce5ee1f64c42523b2fea1777286186eb40f2f8",A.callServer,void 0,A.findSourceMapURL,"emptyScratchAction");var R=e.i(929438),z=e.i(245629),E=e.i(609856),$=e.i(283653),P=e.i(647163);let M={markdown:c.FileText,csv:p,json:d.FileJson,text:c.FileText,frame:l,image:x.Image,audio:f.Music,video:v.Video,none:r.File};function W({label:e,rows:n,children:i}){return 0===n.length?null:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"px-3 pt-3 pb-1 font-mono text-[10px] text-muted-foreground/60",children:e}),i]})}function O({entry:e,active:n,onPick:s}){let r="dir"===e.kind?u.Folder:M[e.view];return(0,t.jsxs)("button",{type:"button",onClick:s,title:"file"===e.kind?`${e.name} \xb7 ${(0,z.shortAgo)(e.at)}`:e.name,className:(0,P.cn)("mx-2 flex items-center gap-2 rounded-md px-2 py-1.5 text-left text-[13px] outline-none focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-inset",n?(0,P.cn)(N.PICKED_ROW,"font-medium"):"text-muted-foreground hover:bg-muted/60 hover:text-foreground"),children:[(0,t.jsx)(r,{className:"size-3.5 shrink-0 opacity-70"}),(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate",children:e.name}),"file"===e.kind?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"shrink-0 font-mono text-[11px] text-muted-foreground/75",children:(0,P.formatBytes)(e.bytes)}),(0,t.jsx)("span",{className:"w-3.5 shrink-0"})]}):(0,t.jsx)(i.ChevronRight,{className:"size-3.5 shrink-0 text-muted-foreground/50"})]})}function K({empty:e}){return(0,t.jsx)("div",{className:"space-y-4 p-8",children:e?(0,t.jsxs)("p",{className:"max-w-lg text-sm leading-relaxed text-muted-foreground",children:["Nothing here yet. What a bot writes during a call lands in"," ",(0,t.jsx)("span",{className:"font-mono text-[13px] text-foreground",children:"artifacts/"})," ","— a page, a table, a picture — and shows up here to open."]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:"text-sm leading-relaxed text-muted-foreground",children:"Pick a file on the left."}),(0,t.jsx)("p",{className:"max-w-lg text-sm leading-relaxed text-muted-foreground",children:"Only what the app can open is listed — a page, a table, a picture, a note. Installed packages and tool leftovers are left out, and no folder is measured, so a folder opens as fast as it lists. Reveal folder, at the foot, opens everything else."})]})})}function T({file:e,onGone:n}){let i=e.path,[r]=(0,E.useServerAction)(R.revealFileAction),[a,o]=(0,E.useServerAction)(F.deleteWorkspaceFileAction,{okMessage:"File deleted",onOk:()=>{(0,$.revalidate)(k.queryKey.workspace),n()}}),l=async()=>{await b.notify.confirm({title:`Delete ${i.split("/").pop()}?`,description:"It is deleted from disk for good.",okText:"Delete",destructive:!0})&&a(i)};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-3 border-b border-border/60 px-6 py-2",children:[(0,t.jsx)(B,{path:i}),(0,t.jsxs)("span",{className:"shrink-0 font-mono text-[11px] text-muted-foreground/70",children:[(0,P.formatBytes)(e.bytes)," · ",(0,z.shortAgo)(e.at)]}),(0,t.jsx)("a",{href:k.queryKey.fileView(i),target:"_blank",rel:"noreferrer","aria-label":"Open in a new tab",className:"grid size-7 shrink-0 place-items-center rounded-md text-muted-foreground outline-none transition-colors hover:bg-muted/60 hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",children:(0,t.jsx)(s.ExternalLink,{className:"size-4"})}),(0,t.jsx)(j.Button,{size:"icon-sm",variant:"ghost","aria-label":"Reveal in the file manager",className:"text-muted-foreground",onClick:()=>r(i),children:(0,t.jsx)(m.FolderOpen,{})}),(0,t.jsx)(j.Button,{size:"icon-sm",variant:"ghost","aria-label":"Delete",loading:o,className:"text-muted-foreground",onClick:l,children:(0,t.jsx)(g.Trash2,{})})]}),(0,t.jsx)("div",{className:"min-h-0 flex-1 overflow-auto",children:(0,t.jsx)(S.FilePreview,{path:i,bytes:e.bytes})})]})}function B({path:e}){let n=["workspace",...e.split("/").filter(Boolean)];return(0,t.jsx)("span",{className:"flex min-w-0 flex-1 items-center gap-1 font-mono text-[11px] text-muted-foreground",children:n.map((e,s)=>(0,t.jsxs)("span",{className:"flex min-w-0 items-center gap-1",children:[s>0&&(0,t.jsx)(i.ChevronRight,{className:"size-3 shrink-0 opacity-50"}),(0,t.jsx)("span",{className:(0,P.cn)("truncate",s===n.length-1&&"text-foreground"),children:e})]},`${s}-${e}`))})}e.s(["WorkspaceSetting",0,function(){let[e,i]=(0,y.useState)(""),[s,r]=(0,y.useState)(w.WORKSPACE_VIEW.rows),[a,o]=(0,y.useState)(null),[l,d]=(0,y.useState)(""),{data:c,isLoading:u,error:x}=(0,$.useServerRoute)(k.queryKey.workspaceFolder(e,s),{keepPreviousData:!0}),f=e=>{i(e),r(w.WORKSPACE_VIEW.rows)},[h,p]=(0,E.useServerAction)(C,{okMessage:"Scratch emptied",onOk:()=>(0,$.revalidate)(k.queryKey.workspace)}),[g]=(0,E.useServerAction)(R.revealFileAction),v=async()=>{await b.notify.confirm({title:"Empty scratch?",description:"Everything under scratch/ is deleted for good. artifacts/ and projects/ are untouched.",okText:"Empty",destructive:!0})&&h()};if(u)return(0,t.jsx)(N.SettingPanesSkeleton,{});if(x)return(0,t.jsx)(N.SettingError,{message:x.message});let S=c?.entries??[],F=c?.total??0,A=l.trim().toLowerCase(),z=A?S.filter(e=>e.name.toLowerCase().includes(A)):S,P=z.filter(e=>"dir"===e.kind),M=z.filter(e=>"file"===e.kind),B=""!==e||S.some(e=>"dir"===e.kind&&e.name===w.PATHS.scratch),V=S.find(e=>"file"===e.kind&&e.path===a?.path)??a;return(0,t.jsx)(N.SettingPanes,{footer:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(N.SettingRailNote,{children:(0,t.jsxs)("span",{className:"font-mono",children:[(0,t.jsx)("span",{className:"font-medium text-foreground",children:`.ai-workspace${e?`/${e}`:""}`}),` \xb7 ${function(e,t){let n=e.filter(e=>"dir"===e.kind).length,i=e.length-n,s=[n&&`${n} ${1===n?"folder":"folders"}`,i&&`${i} ${1===i?"file":"files"}`].filter(Boolean);if(!s.length)return"empty";let r=s.join(" · ");return t>e.length?`${r} of ${t.toLocaleString("en")}`:r}(S,F)}`]})}),(0,t.jsxs)(j.Button,{variant:"outline",size:"sm",onClick:()=>g(e||"."),children:[(0,t.jsx)(m.FolderOpen,{}),"Reveal folder"]}),B&&(0,t.jsx)(j.Button,{variant:"outline",size:"sm",loading:p,onClick:v,className:"text-destructive hover:text-destructive",children:"Empty scratch"})]}),left:(0,t.jsxs)("div",{className:"flex flex-col py-2",children:[(0,t.jsx)(N.SettingFilter,{value:l,onChange:d,placeholder:"Filter this folder",className:"mx-2 mb-1.5 w-auto"}),e&&(0,t.jsxs)("button",{type:"button",onClick:()=>f(e.split("/").slice(0,-1).join("/")),className:"mx-2 mb-1 flex items-center gap-1 rounded-md px-2 py-1 text-left font-mono text-[11px] text-muted-foreground outline-none hover:bg-muted/60 hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-inset",children:[(0,t.jsx)(n.ChevronLeft,{className:"size-3 shrink-0"}),(0,t.jsx)("span",{className:"truncate",children:e.split("/").slice(0,-1).pop()??"workspace"})]}),0===z.length?(0,t.jsx)("p",{className:"px-4 py-3 text-xs text-muted-foreground/60",children:A?"Nothing matches":"Empty folder"}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(W,{label:"folders",rows:P,children:P.map(e=>(0,t.jsx)(O,{entry:e,onPick:()=>f(e.path)},e.path))}),(0,t.jsx)(W,{label:"files",rows:M,children:M.map(e=>(0,t.jsx)(O,{entry:e,active:e.path===a?.path,onPick:()=>"file"===e.kind&&o(e)},e.path))})]}),F>S.length&&(0,t.jsx)("button",{type:"button",onClick:()=>r(s+w.WORKSPACE_VIEW.rows),className:"mx-2 mt-2 rounded-md px-2 py-1.5 text-left font-mono text-[11px] text-muted-foreground outline-none hover:bg-muted/60 hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-inset",children:`Show ${Math.min(w.WORKSPACE_VIEW.rows,F-S.length)} more of ${F.toLocaleString("en")}`})]}),right:V?.kind==="file"?(0,t.jsx)(T,{file:V,onGone:()=>o(null)},V.path):(0,t.jsx)(K,{empty:!e&&0===S.length})})}],107941)},970028,e=>{"use strict";var t=e.i(95187);let n=(0,t.createServerReference)("7f91a6c9364cc8cd1428342c1fe5a7422806ed2424",t.callServer,void 0,t.findSourceMapURL,"deleteWorkspaceFileAction");e.s(["deleteWorkspaceFileAction",0,n])},726067,e=>{"use strict";var t=e.i(456420);let n={name:"folder",size:24,node:[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]};n.node;let i=(0,t.default)(n);e.s(["Folder",0,i],726067)},759659,e=>{"use strict";var t=e.i(456420);let n={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"]};n.node;let i=(0,t.default)(n);e.s(["Trash2",0,i],759659)}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,107941,e=>{"use strict";var t=e.i(843476),n=e.i(24071),i=e.i(867927),s=e.i(482022),r=e.i(829600),a=e.i(456420);let o={name:"file-code-corner",size:24,node:[["path",{d:"M4 12.15V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-3.35",key:"1wthlu"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"m5 16-3 3 3 3",key:"331omg"}],["path",{d:"m9 22 3-3-3-3",key:"lsp7cz"}]],aliases:["file-code-2"]};o.node;let l=(0,a.default)(o);var d=e.i(905015),c=e.i(226091),u=e.i(726067),m=e.i(569644),x=e.i(815170),f=e.i(51921);let h={name:"sheet",size:24,node:[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["line",{x1:"3",x2:"21",y1:"9",y2:"9",key:"1vqk6q"}],["line",{x1:"3",x2:"21",y1:"15",y2:"15",key:"o2sbyz"}],["line",{x1:"9",x2:"9",y1:"9",y2:"21",key:"1ib60c"}],["line",{x1:"15",x2:"15",y1:"9",y2:"21",key:"1n26ft"}]]};h.node;let p=(0,a.default)(h);var g=e.i(759659),v=e.i(438583),y=e.i(271645),k=e.i(798120),j=e.i(167881),b=e.i(917162),w=e.i(41533),N=e.i(895836),S=e.i(621285),F=e.i(783283),A=e.i(95187);let C=(0,A.createServerReference)("7f578763644745e9f26b43f778cd5fe24f1b6835a0",A.callServer,void 0,A.findSourceMapURL,"emptyScratchAction");var R=e.i(896128),z=e.i(245629),E=e.i(609856),$=e.i(283653),P=e.i(647163);let M={markdown:c.FileText,csv:p,json:d.FileJson,text:c.FileText,frame:l,image:x.Image,audio:f.Music,video:v.Video,none:r.File};function W({label:e,rows:n,children:i}){return 0===n.length?null:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"px-3 pt-3 pb-1 font-mono text-[10px] text-muted-foreground/60",children:e}),i]})}function O({entry:e,active:n,onPick:s}){let r="dir"===e.kind?u.Folder:M[e.view];return(0,t.jsxs)("button",{type:"button",onClick:s,title:"file"===e.kind?`${e.name} \xb7 ${(0,z.shortAgo)(e.at)}`:e.name,className:(0,P.cn)("mx-2 flex items-center gap-2 rounded-md px-2 py-1.5 text-left text-[13px] outline-none focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-inset",n?(0,P.cn)(N.PICKED_ROW,"font-medium"):"text-muted-foreground hover:bg-muted/60 hover:text-foreground"),children:[(0,t.jsx)(r,{className:"size-3.5 shrink-0 opacity-70"}),(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate",children:e.name}),"file"===e.kind?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"shrink-0 font-mono text-[11px] text-muted-foreground/75",children:(0,P.formatBytes)(e.bytes)}),(0,t.jsx)("span",{className:"w-3.5 shrink-0"})]}):(0,t.jsx)(i.ChevronRight,{className:"size-3.5 shrink-0 text-muted-foreground/50"})]})}function K({empty:e}){return(0,t.jsx)("div",{className:"space-y-4 p-8",children:e?(0,t.jsxs)("p",{className:"max-w-lg text-sm leading-relaxed text-muted-foreground",children:["Nothing here yet. What a bot writes during a call lands in"," ",(0,t.jsx)("span",{className:"font-mono text-[13px] text-foreground",children:"artifacts/"})," ","— a page, a table, a picture — and shows up here to open."]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:"text-sm leading-relaxed text-muted-foreground",children:"Pick a file on the left."}),(0,t.jsx)("p",{className:"max-w-lg text-sm leading-relaxed text-muted-foreground",children:"Only what the app can open is listed — a page, a table, a picture, a note. Installed packages and tool leftovers are left out, and no folder is measured, so a folder opens as fast as it lists. Reveal folder, at the foot, opens everything else."})]})})}function T({file:e,onGone:n}){let i=e.path,[r]=(0,E.useServerAction)(R.revealFileAction),[a,o]=(0,E.useServerAction)(F.deleteWorkspaceFileAction,{okMessage:"File deleted",onOk:()=>{(0,$.revalidate)(k.queryKey.workspace),n()}}),l=async()=>{await b.notify.confirm({title:`Delete ${i.split("/").pop()}?`,description:"It is deleted from disk for good.",okText:"Delete",destructive:!0})&&a(i)};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-3 border-b border-border/60 px-6 py-2",children:[(0,t.jsx)(B,{path:i}),(0,t.jsxs)("span",{className:"shrink-0 font-mono text-[11px] text-muted-foreground/70",children:[(0,P.formatBytes)(e.bytes)," · ",(0,z.shortAgo)(e.at)]}),(0,t.jsx)("a",{href:k.queryKey.fileView(i),target:"_blank",rel:"noreferrer","aria-label":"Open in a new tab",className:"grid size-7 shrink-0 place-items-center rounded-md text-muted-foreground outline-none transition-colors hover:bg-muted/60 hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",children:(0,t.jsx)(s.ExternalLink,{className:"size-4"})}),(0,t.jsx)(j.Button,{size:"icon-sm",variant:"ghost","aria-label":"Reveal in the file manager",className:"text-muted-foreground",onClick:()=>r(i),children:(0,t.jsx)(m.FolderOpen,{})}),(0,t.jsx)(j.Button,{size:"icon-sm",variant:"ghost","aria-label":"Delete",loading:o,className:"text-muted-foreground",onClick:l,children:(0,t.jsx)(g.Trash2,{})})]}),(0,t.jsx)("div",{className:"min-h-0 flex-1 overflow-auto",children:(0,t.jsx)(S.FilePreview,{path:i,bytes:e.bytes})})]})}function B({path:e}){let n=["workspace",...e.split("/").filter(Boolean)];return(0,t.jsx)("span",{className:"flex min-w-0 flex-1 items-center gap-1 font-mono text-[11px] text-muted-foreground",children:n.map((e,s)=>(0,t.jsxs)("span",{className:"flex min-w-0 items-center gap-1",children:[s>0&&(0,t.jsx)(i.ChevronRight,{className:"size-3 shrink-0 opacity-50"}),(0,t.jsx)("span",{className:(0,P.cn)("truncate",s===n.length-1&&"text-foreground"),children:e})]},`${s}-${e}`))})}e.s(["WorkspaceSetting",0,function(){let[e,i]=(0,y.useState)(""),[s,r]=(0,y.useState)(w.WORKSPACE_VIEW.rows),[a,o]=(0,y.useState)(null),[l,d]=(0,y.useState)(""),{data:c,isLoading:u,error:x}=(0,$.useServerRoute)(k.queryKey.workspaceFolder(e,s),{keepPreviousData:!0}),f=e=>{i(e),r(w.WORKSPACE_VIEW.rows)},[h,p]=(0,E.useServerAction)(C,{okMessage:"Scratch emptied",onOk:()=>(0,$.revalidate)(k.queryKey.workspace)}),[g]=(0,E.useServerAction)(R.revealFileAction),v=async()=>{await b.notify.confirm({title:"Empty scratch?",description:"Everything under scratch/ is deleted for good. artifacts/ and projects/ are untouched.",okText:"Empty",destructive:!0})&&h()};if(u)return(0,t.jsx)(N.SettingPanesSkeleton,{});if(x)return(0,t.jsx)(N.SettingError,{message:x.message});let S=c?.entries??[],F=c?.total??0,A=l.trim().toLowerCase(),z=A?S.filter(e=>e.name.toLowerCase().includes(A)):S,P=z.filter(e=>"dir"===e.kind),M=z.filter(e=>"file"===e.kind),B=""!==e||S.some(e=>"dir"===e.kind&&e.name===w.PATHS.scratch),V=S.find(e=>"file"===e.kind&&e.path===a?.path)??a;return(0,t.jsx)(N.SettingPanes,{footer:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(N.SettingRailNote,{children:(0,t.jsxs)("span",{className:"font-mono",children:[(0,t.jsx)("span",{className:"font-medium text-foreground",children:`.ai-workspace${e?`/${e}`:""}`}),` \xb7 ${function(e,t){let n=e.filter(e=>"dir"===e.kind).length,i=e.length-n,s=[n&&`${n} ${1===n?"folder":"folders"}`,i&&`${i} ${1===i?"file":"files"}`].filter(Boolean);if(!s.length)return"empty";let r=s.join(" · ");return t>e.length?`${r} of ${t.toLocaleString("en")}`:r}(S,F)}`]})}),(0,t.jsxs)(j.Button,{variant:"outline",size:"sm",onClick:()=>g(e||"."),children:[(0,t.jsx)(m.FolderOpen,{}),"Reveal folder"]}),B&&(0,t.jsx)(j.Button,{variant:"outline",size:"sm",loading:p,onClick:v,className:"text-destructive hover:text-destructive",children:"Empty scratch"})]}),left:(0,t.jsxs)("div",{className:"flex flex-col py-2",children:[(0,t.jsx)(N.SettingFilter,{value:l,onChange:d,placeholder:"Filter this folder",className:"mx-2 mb-1.5 w-auto"}),e&&(0,t.jsxs)("button",{type:"button",onClick:()=>f(e.split("/").slice(0,-1).join("/")),className:"mx-2 mb-1 flex items-center gap-1 rounded-md px-2 py-1 text-left font-mono text-[11px] text-muted-foreground outline-none hover:bg-muted/60 hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-inset",children:[(0,t.jsx)(n.ChevronLeft,{className:"size-3 shrink-0"}),(0,t.jsx)("span",{className:"truncate",children:e.split("/").slice(0,-1).pop()??"workspace"})]}),0===z.length?(0,t.jsx)("p",{className:"px-4 py-3 text-xs text-muted-foreground/60",children:A?"Nothing matches":"Empty folder"}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(W,{label:"folders",rows:P,children:P.map(e=>(0,t.jsx)(O,{entry:e,onPick:()=>f(e.path)},e.path))}),(0,t.jsx)(W,{label:"files",rows:M,children:M.map(e=>(0,t.jsx)(O,{entry:e,active:e.path===a?.path,onPick:()=>"file"===e.kind&&o(e)},e.path))})]}),F>S.length&&(0,t.jsx)("button",{type:"button",onClick:()=>r(s+w.WORKSPACE_VIEW.rows),className:"mx-2 mt-2 rounded-md px-2 py-1.5 text-left font-mono text-[11px] text-muted-foreground outline-none hover:bg-muted/60 hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-inset",children:`Show ${Math.min(w.WORKSPACE_VIEW.rows,F-S.length)} more of ${F.toLocaleString("en")}`})]}),right:V?.kind==="file"?(0,t.jsx)(T,{file:V,onGone:()=>o(null)},V.path):(0,t.jsx)(K,{empty:!e&&0===S.length})})}],107941)},783283,e=>{"use strict";var t=e.i(95187);let n=(0,t.createServerReference)("7f60440108f0b28d31df9c6811d658032c9be60136",t.callServer,void 0,t.findSourceMapURL,"deleteWorkspaceFileAction");e.s(["deleteWorkspaceFileAction",0,n])},726067,e=>{"use strict";var t=e.i(456420);let n={name:"folder",size:24,node:[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]};n.node;let i=(0,t.default)(n);e.s(["Folder",0,i],726067)},759659,e=>{"use strict";var t=e.i(456420);let n={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"]};n.node;let i=(0,t.default)(n);e.s(["Trash2",0,i],759659)}]);
@@ -0,0 +1,15 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,302707,e=>{"use strict";var t=e.i(843476),n=e.i(689664),r=e.i(24071),s=e.i(867927),a=e.i(638292),l=e.i(456420);let i={name:"volume-2",size:24,node:[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["path",{d:"M16 9a5 5 0 0 1 0 6",key:"1q6k2b"}],["path",{d:"M19.364 18.364a9 9 0 0 0 0-12.728",key:"ijwkga"}]]};i.node;let o=(0,l.default)(i),u={name:"volume-x",size:24,node:[["path",{d:"M11 4.702a.7.7 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.7.7 0 0 0 11 19.298z",key:"1p7khw"}],["path",{d:"m16.5 14.5 5-5",key:"cul3yw"}],["path",{d:"m16.5 9.5 5 5",key:"1akey5"}]]};u.node;let c=(0,l.default)(u);var d=e.i(618566),h=e.i(271645),p=e.i(798120),m=e.i(167881),f=e.i(660302),g=e.i(319036),x=e.i(728231),y=e.i(146538),w=e.i(265402),b=e.i(609507),k=e.i(463625),v=e.i(635963),j=e.i(747985),S=e.i(805995),N=e.i(616816),T=e.i(605908),E=e.i(470982),A=e.i(992112),M=e.i(567334),_=e.i(387758),C=e.i(377090),L=e.i(732061),I=e.i(298293),R=e.i(922521);let O=[{radii:5,px:64,density:1.05},{radii:3.2,px:40,density:1.1},{radii:2.1,px:26,density:1.2},{radii:1.45,px:16,density:1.3}],D=[.2,1.6,2.5,3.1,3.55],P=[2,3,1],F=[[],["🤍"],["🤍","☁️"],["☁️","🤍"],["☁️","🕊️"],["🕊️","☁️"],["🕊️","🦢"],["🦢","🕊️","☁️"],["🦢","🤍"],["🤍","⚪","🦢"],["🤍","⚪"],["⚪","🤍"]],z=[[],["🤍","⚪"],["🤍","⚪","🦢"],["🦢","🤍","🕊️"],["🦢","🕊️","☁️"],["🕊️","🦢","☁️"],["🕊️","☁️"],["☁️","🕊️"],["☁️","🖤"],["⚫","🖤","☁️"],["🖤","⚫"],["🖤","⚫"]],$=O[0].px;function B({anchor:e,charset:n,onArrive:r,onHello:s,onDone:a}){let l=(0,h.useRef)(null),i="dark"===(0,R.useResolvedTheme)(),o=(0,h.useRef)({charset:n,dark:i,onArrive:r,onHello:s,onDone:a});return o.current={charset:n,dark:i,onArrive:r,onHello:s,onDone:a},(0,h.useEffect)(()=>{let t=l.current,n=e.current,r={arrive:!1,hello:!1,done:!1},s=e=>{r[e]||(r[e]=!0,"arrive"===e?o.current.onArrive():"hello"===e?o.current.onHello():o.current.onDone())};if(!t||!n||window.matchMedia("(prefers-reduced-motion: reduce)").matches){s("arrive"),s("hello"),s("done");return}let a=t.getContext("2d");if(!a){s("arrive"),s("hello"),s("done");return}let i=D.map((e,t)=>e+(t>0?(Math.random()-.5)*.12:0)),u=50*Math.random(),c=Math.min(2,window.devicePixelRatio||1),d=function(e,t){let n=Math.round($*t),r=Math.ceil(1.3*n),s=document.createElement("canvas");s.width=12*r,s.height=r*Math.ceil(e.length/12);let a=s.getContext("2d");if(!a)return null;a.textAlign="center",a.textBaseline="middle",a.font=(0,_.GLYPH_FONT)(n);let l=new Map;return e.forEach((e,t)=>{l.set(e,t),a.fillText(e,t%12*r+r/2,Math.floor(t/12)*r+r/2)}),{canvas:s,at:l,slot:r,scale:r/t/$}}([...new Set([...M.EMOJI_POOL,...F.flat(),...z.flat(),...P.flatMap(e=>I.WASH_SETS[e-1].emoji)])],c),h=M.RAMP.length-1,p=[],m=null,f=()=>{let e=window.innerWidth,r=window.innerHeight;t.width=Math.round(e*c),t.height=Math.round(r*c),a.setTransform(c,0,0,c,0,0),a.textAlign="center",a.textBaseline="middle",m=null;let s=n.getBoundingClientRect(),l=Number.parseFloat(getComputedStyle(n).getPropertyValue("--face-bleed"))/100||0,i=s.width*(1+2*l),o=s.left+s.width/2,d=s.top+s.height/2,f=_.DESIGN/i;p=O.map((t,n)=>{let s=.95*t.px/t.density,a=1.25*t.px/t.density,l=.12*n,i=Math.cos(l),c=Math.sin(l),p=70+26*n,m=[];for(let l=0;l*a<r;l++)for(let r=0;r*s<e;r++){let e=r*s+s/2,h=l*a+a/2,g=(e-o)*f,x=(h-d)*f,y=(g*i-x*c)/_.REST_R/t.radii,w=(g*c+x*i)/_.REST_R/t.radii,b=Math.hypot(y,w);if(b>2.6)continue;let k=Math.floor((Math.atan2(w,y)+Math.PI)/(2*Math.PI)*p),v=(0,M.hash)(k+13*n,3.1+u),j=(0,M.hash)(1.3*k,11.1+u);m.push({x:e,y:h,r:b,dx:y*_.REST_R,dy:w*_.REST_R,drift:.02+.14*v*v,go:.15+.9*(0,M.hash)(k,7.7+n),carry:j<.13?P[Math.floor(23*j)%P.length]:0,nx:g*(8/t.px)*.05,ny:x*(8/t.px)*.05,seed:(0,M.hash)(r+101*n,l),grain:(0,M.hash)(5.7*r+19+n,2.3*l+53),gap:.05+.3*(0,M.hash)(7.3*r+11,3.1*l+5+n),roll:(0,M.hash)(2.7*r+31,5.9*l+17+n)})}let g=m.length;return{px:t.px,cells:m,fast:new Float32Array(g),slow:new Float32Array(g),wasLevel:new Int8Array(g).fill(-9),turn:new Int32Array(g).fill(-9),pick:new Int32Array(g),pool:new Int8Array(g),poolFor:new Float32Array(g),ascii:Array.from({length:h+1},()=>new Int32Array(g)),emoji:Array.from({length:h+1},()=>new Int32Array(g)),asciiN:new Int32Array(h+1),emojiN:new Int32Array(h+1),glyph:Array(g),over:!1}})};f(),window.addEventListener("resize",f);let g=(0,L.createSmoke)(),x=90*Math.random(),y={dx:0,dy:0,dist:0},w=performance.now(),b=w,k=0,v=0,j=e=>{let n=(e-w)/1e3,r=Math.min(.05,Math.max(0,(e-b)/1e3));b=e,k+=r;let{charset:l,dark:u}=o.current,f="emojiOnly"===l,S=f?_.CHURN_EMOJI:_.CHURN_ASCII,N=u?F:z;m!==u&&(m=u,a.fillStyle=getComputedStyle(t).color),(0,L.stepSmoke)(g,k,r,0,0,-1);let T=(0,C.windAt)(k,x),E=Math.exp(-r/_.TRAIL_FAST),A=Math.exp(-r/1.4);a.clearRect(0,0,t.width/c,t.height/c);let R=0;if(p.forEach((e,t)=>{let s=i[t],o=i[t+1];if(e.over||n<s)return;let u=n-o,c=u<=0?(0,M.smoothstep)(0,1,(n-s)/(0===t?1.2:.35)):1,p=u>0?(0,M.smoothstep)(0,.3,u):0,m=u>.05,x=k+31*t;e.asciiN.fill(0),e.emojiN.fill(0);let w=0,b=e.cells;for(let t=0;t<b.length;t++){let n=b[t],s=0,a=0;if(u<=0)c>0&&n.r<2.6&&(y.dx=n.dx,y.dy=n.dy,y.dist=n.r*_.REST_R,s=(0,L.restValue)(y,x,0,_.REST_R,c,g,T));else{let e=n.r-n.drift*u**.8,t=(1+(1.5*((0,M.smoothstep)(.6,.88,Math.abs(e))*(1-(0,M.smoothstep)(1.2,1.55,Math.abs(e))))-1)*p)*(1-(0,M.smoothstep)(n.go,n.go+.4,u));if(t>0){let r=n.r>0?e/n.r:0;y.dx=n.dx*r,y.dy=n.dy*r,y.dist=Math.abs(e)*_.REST_R,(s=(0,L.restValue)(y,x,0,_.REST_R,1,g,T)*t)>.04&&p>.5&&(a=n.carry)}}(s*=(.66+.72*n.grain)*(.8+.4*(0,M.hash)(Math.floor(n.nx+.5*k),Math.floor(n.ny-.3*k))))>.3&&(0,M.hash)(31.7*Math.floor(1.6*k),613*n.seed)>.992&&(s=Math.max(s,.9)),a?(e.pool[t]=a,e.poolFor[t]=.35*(.5+n.grain)):e.poolFor[t]>0?(e.poolFor[t]-=r,e.poolFor[t]<=0&&(e.pool[t]=0)):e.pool[t]=0;let i=e.fast[t]=s>e.fast[t]*E?s:e.fast[t]*E,o=e.slow[t]=s>e.slow[t]*A?s:e.slow[t]*A;if((s=i>.55*o?i:.55*o)<n.gap+.05*Math.sin(.28*k+6.283*n.seed))continue;let v=(s>1?1:s)*h|0;if(0===v)continue;w++;let j=k*S+7*n.seed|0;(j!==e.turn[t]||v-e.wasLevel[t]>=2||e.wasLevel[t]-v>=2)&&(e.turn[t]=j,e.wasLevel[t]=v,e.pick[t]=(997*n.seed|0)+j+v);let C=e.pick[t],R=e.pool[t]?I.WASH_SETS[e.pool[t]-1]:null;if((f||"emoji"===l&&(null!==R||n.roll<M.EMOJI_RATIO&&v>=M.EMOJI_MIN_LEVEL))&&d){let n=R?R.emoji:m?N[v]:M.EMOJI_POOL;e.glyph[t]=n[C%n.length],e.emoji[v][e.emojiN[v]++]=t}else{let n=R?R.ascii:M.RAMP[v];e.glyph[t]=n[C%n.length],e.ascii[v][e.asciiN[v]++]=t}}R+=w,u>1.45&&0===w&&(e.over=!0),a.font=(0,_.GLYPH_FONT)(e.px);for(let t=1;t<=h;t++){let n=e.asciiN[t];if(0===n)continue;a.globalAlpha=M.ALPHA_TOP*(t/h);let r=e.ascii[t];for(let t=0;t<n;t++){let n=b[r[t]];a.fillText(e.glyph[r[t]],n.x,n.y)}}if(d)for(let t=1;t<=h;t++){let n=e.emojiN[t];if(0===n)continue;a.globalAlpha=(0,M.emojiAlpha)(t,h,f);let r=e.px*d.scale*(f?.5+.5*(0,M.emojiWeight)(t,h):1),s=e.emoji[t];for(let t=0;t<n;t++){let n=b[s[t]],l=d.at.get(e.glyph[s[t]])??0;a.drawImage(d.canvas,l%12*d.slot,Math.floor(l/12)*d.slot,d.slot,d.slot,n.x-r/2,n.y-r/2,r,r)}}}),a.globalAlpha=1,n>=i[4]&&s("arrive"),n>=4.7&&s("hello"),n>i[4]+1.6&&0===R){a.clearRect(0,0,t.width/c,t.height/c),s("done");return}v=requestAnimationFrame(j)};return v=requestAnimationFrame(j),()=>{cancelAnimationFrame(v),window.removeEventListener("resize",f)}},[e]),(0,t.jsx)("canvas",{ref:l,"aria-hidden":!0,className:"pointer-events-none absolute inset-0 size-full text-foreground"})}var q=e.i(218080);let U={hello:"Hi, I'm Thursday. One thing first: this is a recording. You'll hear my real voice on our first call.",key:"My real voice comes from OpenAI, and it needs a key — think of it as a password. Paste one in, and I wake up. Don't have one yet? No problem, skip ahead. I'll ask again later.",awake:"There we go — I'm awake. That key is all a call needs. The rest is quick: your microphone, who does the work for you, and what they think with.",mic:"Now let me hear you. Your browser will ask before it turns the microphone on. Say yes, then say anything — and watch the line under me move. It's only on during a call, unless you ask for more.",heard:"I hear you — that line is your voice. If you'd rather wake me by saying my name instead of tapping, switch that on here and give it a try.",bots:"Big jobs go to my helper bots, so you and I can keep talking while they work. They work right here on your computer, with a browser and your files. Signing in and paying always stay with you.",models:"Every bot runs on an A.I. model that you pick. Start small: a small one is fast and cheap, and you can move any bot up later. Your OpenAI key already covers it. A GPT subscription, or a Vercel key, opens up a lot more.",style:"One more, and it's the fun one: who I am to you. There are ten of me, and the only difference is how I talk. Pick whoever sounds like someone you'd call — you can change your mind anytime.",call:"That's everything. Call me, tell me what to call you, and ask for one thing — anything you'd ask someone sitting next to you. From here on, it's my real voice. I'll show you the rest as we go.",asleep:"I still don't have a voice of my own, so no calls yet — but everything else works. Have a look around. When you have a key, tap me, and I'll take it from there."},K=Array(q.SPECTRUM_BANDS).fill(0),H="thursday.intro.muted";var W=e.i(745747),V=e.i(333495),Y=e.i(435135),G=e.i(692888),J=e.i(762074),X=e.i(114923),Z=e.i(234916),Q=e.i(67045),ee=e.i(297825),et=e.i(895499),en=e.i(656572),er=e.i(609856),es=e.i(283653),ea=e.i(647163);let el=["key","mic","bots","models","style","call"];function ei({children:e}){return(0,t.jsxs)("p",{className:"text-[17px] leading-[1.675] tracking-[0.3px]",children:[(0,t.jsx)("span",{className:"mr-4 inline-block size-2.5 rounded-full bg-foreground align-middle opacity-55"}),e]})}let eo=({children:e})=>(0,t.jsx)("p",{className:"font-mono text-[11px] leading-relaxed text-pretty text-muted-foreground/70",children:e});function eu({children:e,tail:r}){return(0,t.jsxs)("p",{className:"flex items-center gap-2.5 text-sm",children:[(0,t.jsx)("span",{className:"grid size-5 shrink-0 animate-in place-items-center rounded-full bg-primary text-primary-foreground duration-300 zoom-in-50",children:(0,t.jsx)(n.Check,{className:"size-3"})}),(0,t.jsx)("span",{className:"animate-in delay-150 duration-300 fill-mode-backwards fade-in slide-in-from-left-1",children:e}),r&&(0,t.jsx)("span",{className:"truncate font-mono text-[11px] text-muted-foreground/70",children:r})]})}function ec({keyed:e,onSaved:n}){return e?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(eu,{children:"OpenAI key saved"}),(0,t.jsx)(eo,{children:"Change it any time in Settings › API keys."})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(ei,{children:"Paste your OpenAI API key"}),(0,t.jsx)(N.VoiceKeys,{dense:!0,plain:!0,autoFocus:!0,onSaved:n}),(0,t.jsx)(N.GetKeyLink,{}),(0,t.jsx)("ol",{className:"flex flex-col gap-1.75 text-[13px] text-muted-foreground",children:["Sign in, or make an account","Create new secret key, and copy it","Paste it here"].map((e,n)=>(0,t.jsxs)("li",{className:"flex items-center gap-2.5",children:[(0,t.jsx)("span",{className:"grid size-4.5 shrink-0 place-items-center rounded font-mono text-[10px] text-foreground bg-secondary",children:n+1}),e]},e))}),(0,t.jsx)(eo,{children:"OpenAI bills it by the minute of call, separately from ChatGPT."})]})}function ed({mic:e}){let r=(0,Q.useThursdayStore)(e=>e.wake),s=(0,Q.useThursdayStore)(e=>e.patch),[l,i]=(0,h.useState)(!1),[o,u]=(0,h.useState)(null);return((0,en.useWakeWord)({enabled:e.on&&r.enabled&&!o,phrases:[r.phrase],onWake:()=>i(!0),onError:u}),e.on)?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(eu,{children:"Microphone is on"}),(0,t.jsxs)("label",{className:"mt-1.5 flex cursor-pointer items-start gap-3",children:[(0,t.jsxs)("span",{className:"flex flex-1 flex-col gap-0.75",children:[(0,t.jsx)("span",{className:"text-sm",children:"Wake her by voice"}),(0,t.jsxs)(eo,{children:["Say ",(0,t.jsxs)("span",{className:"text-foreground",children:['"',r.phrase,'"']})," and she picks up. The microphone stays open for as long as this tab is."]}),r.enabled&&!o&&(l?(0,t.jsxs)("span",{className:"mt-1.5 flex items-center gap-2 text-[13px]",children:[(0,t.jsx)("span",{className:"grid size-5 shrink-0 animate-in place-items-center rounded-full bg-foreground text-background duration-300 zoom-in-50",children:(0,t.jsx)(n.Check,{className:"size-3"})}),"Heard you. That is how you call her."]}):(0,t.jsxs)("span",{className:"mt-1.5 flex items-center gap-2 text-[13px]",children:[(0,t.jsx)(a.Mic,{className:"size-4 shrink-0"}),(0,t.jsx)(f.ShinyText,{text:`Try it now: say "${r.phrase}"`,speed:2.2})]})),o&&(0,t.jsx)(eo,{children:o})]}),(0,t.jsx)(g.Switch,{checked:r.enabled,onCheckedChange:e=>s({wake:{...r,enabled:e}})})]})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(ei,{children:"Turn on the microphone"}),(0,t.jsxs)(m.Button,{onClick:()=>void e.turnOn(),className:"h-11 self-start rounded-full px-5 pl-4 text-sm",children:[(0,t.jsx)(a.Mic,{className:""}),"Turn it on"]}),e.blocked?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:(0,ea.cn)("text-[13px] leading-normal",ea.WAITING_INK),children:"This page is not allowed the microphone yet."}),(0,t.jsx)(eo,{children:"The icon at the left of the address bar opens the site's settings: set Microphone to Allow and come back. Or just go on."})]}):(0,t.jsx)(eo,{children:"Used on a call, and nowhere else unless you switch on waking her by voice."})]})}function eh({picked:e,face:n,onToggle:r}){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(ei,{children:"Pick who comes along"}),(0,t.jsx)("div",{className:"flex flex-col",children:k.BOT_SEEDS.map(s=>{let a=!!e[s.name];return(0,t.jsxs)("label",{className:"flex h-9.5 cursor-pointer items-center gap-2.75",children:[(0,t.jsx)(v.BotMark,{size:24,seed:s.name,...n(s),notify:!1,className:(0,ea.cn)("shrink-0 transition-opacity",!a&&"opacity-40")}),(0,t.jsx)("span",{className:(0,ea.cn)("w-17.5 shrink-0 text-[13.5px] font-medium",!a&&"text-muted-foreground"),children:s.name}),(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate text-xs text-muted-foreground",children:s.hint}),(0,t.jsx)(g.Switch,{checked:a,onCheckedChange:()=>r(s.name)})]},s.name)})}),(0,t.jsx)(eo,{children:"Every one comes along. Switch off any you will not use: Settings › Bots has them all, and you can make your own."})]})}function ep(){let{settings:e,patch:n}=(0,ee.useLiveSettings)(),r=Math.max(0,b.PERSONAS.findIndex(t=>t.id===e?.persona)),s=b.PERSONAS[r],a=e=>n({persona:b.PERSONAS[(r+e+b.PERSONAS.length)%b.PERSONAS.length].id});return(0,t.jsxs)("div",{className:"flex w-full max-w-md flex-col gap-4",children:[(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("div",{className:"text-2xl font-semibold",children:s.label}),(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:s.about})]}),(0,t.jsx)("p",{className:"min-h-20 text-left text-sm leading-relaxed text-foreground/80",children:s.lines}),(0,t.jsxs)("div",{className:"flex items-center justify-center gap-2",children:[(0,t.jsx)(m.Button,{variant:"outline",size:"sm",onClick:()=>a(-1),children:"Someone else"}),(0,t.jsx)(m.Button,{variant:"outline",size:"sm",onClick:()=>a(1),children:"Next"})]}),(0,t.jsx)("div",{className:"flex justify-center gap-1.5",children:b.PERSONAS.map((e,n)=>(0,t.jsx)("span",{className:(0,ea.cn)("h-0.5 w-5 rounded-full",n===r?"bg-foreground":"bg-border")},e.id))})]})}function em(){let{data:e}=(0,es.useServerRoute)(p.queryKey.config),n=(0,w.parseTextModel)(e?.find(e=>e.key===A.DEFAULT_MODEL_KEY)?.value),[r,s]=(0,h.useState)(null),[a]=(0,er.useServerAction)(E.setConfigAction,{onOk:()=>(0,es.revalidate)(p.queryKey.config)}),[l]=(0,er.useServerAction)(T.removeConfigAction,{onOk:()=>(0,es.revalidate)(p.queryKey.config)});return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(ei,{children:"Pick what they think with"}),(0,t.jsx)(S.AccountsSetup,{withoutVoice:!0}),(0,t.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,t.jsx)("span",{className:"shrink-0 text-[13px] text-muted-foreground",children:"Bots think with"}),(0,t.jsx)("div",{className:"min-w-0 flex-1",children:(0,t.jsx)(y.ModelPicker,{provider:r??n?.provider??null,model:r?"":n?.model??"",unset:"Automatic",onChange:e=>{if(!e.model.trim())return s(e.provider);s(null),a(A.DEFAULT_MODEL_KEY,`${e.provider}/${e.model.trim()}`)},onUnset:()=>{s(null),n&&l(A.DEFAULT_MODEL_KEY)}})})]})]})}function ef({mic:e,bots:r}){let s=["voice",e?"microphone":null,r>0?`${r} ${1===r?"bot":"bots"}`:null].filter(e=>null!==e);return(0,t.jsx)("span",{className:"flex items-center gap-2 text-xs",children:s.map((e,r)=>(0,t.jsxs)("span",{style:{animationDelay:`${300+260*r}ms`},className:"flex animate-in items-center gap-2 duration-300 fill-mode-backwards fade-in slide-in-from-bottom-1",children:[r>0&&(0,t.jsx)("span",{className:"text-muted-foreground/40",children:"·"}),(0,t.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,t.jsx)(n.Check,{className:"size-3.25"}),e]})]},e))})}let eg={threadId:"demo",label:"Osaka flights, October",bot:"Concierge",words:"Three fares from ₩296,000 out of Incheon. The Tuesday morning one is the pick: direct, and the cheapest by a little.",paths:[]};function ex({stage:e,icons:n}){return(0,t.jsxs)(t.Fragment,{children:["landed"===e&&(0,t.jsx)("div",{className:"pointer-events-none absolute bottom-5 left-5 w-90 text-left",children:(0,t.jsx)(et.FinishedCard,{row:eg,bot:{icon:n[k.BOT_SEEDS.findIndex(e=>e.name===eg.bot)]},onOpen:()=>{},onClose:()=>{}})}),(0,t.jsxs)("div",{className:"absolute right-5 bottom-5 flex h-10 items-center gap-2.5 rounded-full bg-background pr-3.5 pl-2.5 ring-1 ring-border",children:[(0,t.jsx)("span",{className:"flex",children:k.BOT_SEEDS.map((r,s)=>(0,t.jsx)(v.BotMark,{size:22,seed:r.name,...n[s],state:"working"===e&&"Concierge"===r.name?"thinking":"idle",notify:!1,className:(0,ea.cn)("shrink-0",s>0&&"-ml-1.5")},r.name))}),(0,t.jsx)("span",{className:"w-40 truncate text-left text-[13px] text-muted-foreground",children:"working"===e?"Concierge · reading fares":"landed"===e?"Concierge finished":"Need a hand?"})]})]})}e.s(["Intro",0,function({ready:e,firstRun:n,forced:a,icons:l}){let i=n||a,u=(0,d.useRouter)(),p=(0,J.useThursdayFace)(),[f,g]=(0,h.useState)("hello"),[y,w]=(0,h.useState)(!1),[b,v]=(0,h.useState)(!1),[S,N]=(0,h.useState)(e),[T,E]=(0,h.useState)(null),[A,M]=(0,h.useState)(()=>Object.fromEntries(k.BOT_SEEDS.map(e=>[e.name,!0]))),[_,C]=(0,h.useState)("echoes"),L="hello"===_||"over"===_,I=(0,h.useRef)(null),R=function(e){let[t,n]=(0,h.useState)("off"),[r,s]=(0,h.useState)(!1),[a,l]=(0,h.useState)(""),i=(0,h.useRef)(null),o=(0,h.useRef)(null),u=(0,h.useCallback)(()=>{for(let e of o.current?.getTracks()??[])e.stop();o.current=null},[]);return(0,h.useEffect)(()=>{e||(u(),n(e=>"on"===e?"off":e))},[e,u]),(0,h.useEffect)(()=>u,[u]),{on:"on"===t,blocked:"blocked"===t,allowed:r,label:a,turnOn:(0,h.useCallback)(async()=>{try{let e=await navigator.mediaDevices.getUserMedia({audio:!0});o.current=e,i.current??=(0,q.createAudioTap)(),i.current.open(),i.current.hear?.(e),l(e.getAudioTracks()[0]?.label??""),n("on"),s(!0)}catch{n("blocked")}},[]),spectrum:(0,h.useCallback)(()=>i.current?.readMic()??[],[])}}("mic"===f&&!y),O=function(e){let[t,n]=(0,h.useState)(0);(0,h.useEffect)(()=>{if(!e)return;let t=performance.now(),r=setInterval(()=>n((performance.now()-t)%16e3),120);return()=>clearInterval(r)},[e]);let r=(e,t,n)=>({id:e,role:t,text:n}),s=[];t>900&&s.push(r("ask","user","Find me flights to Osaka in October.")),t>4700&&s.push(r("onIt","assistant","On it. Concierge is looking. Keep talking, I will say when it is back.")),t>11500&&s.push(r("back","assistant","Concierge is back. From ₩296,000, out of Incheon. The page is on your screen."));let a=t>4700&&t<8300||t>11500&&t<14500;return{turns:s,status:a?"speaking":t>900&&t<4700?"listening":"idle",stage:t>9600?"landed":t>5400?"working":t>900?"asked":"rest",saying:a,voice:Z.silentVoice}}("hello"===f&&i&&!y&&L),D=i&&!y;(0,h.useEffect)(()=>(W.callSignal.hold(D),()=>W.callSignal.hold(!1)),[D]),(0,h.useEffect)(()=>{if(!y)return;let e=setTimeout(()=>v(!0),700);return()=>clearTimeout(e)},[y]);let P=el.indexOf(f),F=(0,h.useMemo)(()=>{var e,t,n;let r,s;return e=f,t=S,n=R.on,r=(e,t)=>({id:e,role:"assistant",text:t}),s=[],"hello"===e||(s.push(r("key","I am Thursday. My voice comes from OpenAI, so the first thing I need is a key: paste one and I wake up. No key yet? Go on without it, and I will ask again when you call.")),t&&s.push(r("awake","There, I am awake, and that key is everything a call needs. From here on it is quick: your microphone, who works for you, and what they think with.")),"key"===e||(s.push(r("mic","Now let me hear you. Your browser asks before it opens the microphone: say yes, then say anything at all and watch the line under me move. It is only open on a call, unless you ask for more.")),n&&s.push(r("heard","I hear you: that line is your voice. If you would rather wake me by saying my name than by tapping me, switch it on here and try it once.")),"mic"===e||(s.push(r("bots","Long work goes to bots, so we can keep talking while they are at it. They work on this computer, with a shell, a browser and your files, and signing in or paying always stays with you.")),"bots"===e||(s.push(r("models","Bots think with a model you choose. Start small: a small model is quick and costs little, and any bot can move up later. An OpenAI key already covers it; a GPT subscription or one Vercel key opens far more.")),"models"===e||(s.push(r("style","One more, and it is the fun one: who I am to you. Ten of them, and the only difference is how I talk — pick whoever sounds like someone you would call, and change your mind whenever you like.")),"style"===e||s.push(t?r("call","That is everything I need. Call me, tell me what to call you, and ask for one thing, anything you would ask a person at the next desk. I will show you the rest as we go."):r("asleep","I still have no voice of my own, so there is no call yet, but everything else works. Look around; tap me whenever you have a key and I will take it from there."))))))),s},[f,S,R.on]),z="hello"===f?O.turns:F,$=(0,Y.useTurnFocus)(z,!0),Q=function(e){let t=(0,h.useRef)(null),n=(0,h.useRef)(new Set),r=(0,h.useRef)([]),s=(0,h.useRef)(!1),[a,l]=(0,h.useState)(!1),[i,o]=(0,h.useState)(!1),u=(0,h.useRef)(!1);(0,h.useEffect)(()=>{try{let e="1"===window.localStorage.getItem(H);u.current=e,o(e)}catch{}},[]);let c=(0,h.useCallback)(()=>{r.current=[],t.current?.audio.pause()},[]),d=(0,h.useCallback)(()=>{let e=r.current.shift();if(!e||!t.current)return;let{audio:n,clip:s}=t.current;s.resume(),n.src=`/voices/intro/${e}-${function(e){let t=0x811c9dc5;for(let n of`marin|${e}`)t^=n.codePointAt(0)??0,t=Math.imul(t,0x1000193);return(t>>>0).toString(16).padStart(8,"0")}(U[e])}.ogg`,n.play().catch(()=>{})},[]),p=(0,h.useCallback)((...e)=>{let a=e.filter(e=>!n.current.has(e));if(!u.current&&a.length){if(!t.current){let e=new Audio,n=e=>()=>{s.current=e,l(e)};for(let t of(e.addEventListener("playing",n(!0)),["pause","ended","error"]))e.addEventListener(t,n(!1));e.addEventListener("ended",d),e.addEventListener("error",d),t.current={audio:e,clip:(0,q.createClipTap)(e)}}for(let e of a)n.current.add(e);r.current=a,d()}},[d]);(0,h.useEffect)(()=>{e&&t.current&&p(e)},[e,p]),(0,h.useEffect)(()=>()=>{t.current?.audio.pause(),t.current?.clip.close(),t.current=null},[]);let m=(0,h.useCallback)(()=>{let t=!u.current;u.current=t,o(t);try{window.localStorage.setItem(H,t?"1":"0")}catch{}if(t)return c();e&&(n.current.delete(e),p(e))},[c,e,p]);return{say:p,hush:c,speaking:a,muted:i,toggle:m,spectrum:(0,h.useCallback)(()=>t.current&&s.current?t.current.clip.read():K,[])}}(y?null:F.at(-1)?.id??null);if(b||!i)return null;let ee=e=>l[k.BOT_SEEDS.indexOf(e)],et=e=>{Q.hush(),w(!0),S&&(0,j.installSeedBots)(k.BOT_SEEDS.filter(e=>A[e.name]).map(e=>({name:e.name,icon:ee(e)}))),e&&W.callSignal.place(),u.replace("/"),u.refresh()},en="hello"===f?O.status:Q.speaking?"speaking":"mic"===f&&R.on?"listening":"idle",er="call"===f;return(0,t.jsxs)("div",{className:(0,ea.cn)("fixed inset-0 z-40 bg-background transition-opacity duration-700",y&&"pointer-events-none opacity-0"),children:["over"!==_&&(0,t.jsx)(B,{anchor:I,charset:p.charset,onArrive:()=>C("her"),onHello:()=>C("hello"),onDone:()=>C("over")}),L&&(0,t.jsx)(x.TooltipProvider,{children:(0,t.jsxs)(x.Tooltip,{children:[(0,t.jsx)(x.TooltipTrigger,{render:(0,t.jsx)(m.Button,{size:"icon",variant:"ghost",onClick:Q.toggle,"aria-label":Q.muted?"Let her speak":"Mute her","aria-pressed":Q.muted,className:"absolute top-5 right-5 z-10 text-muted-foreground hover:text-foreground"}),children:Q.muted?(0,t.jsx)(c,{}):(0,t.jsx)(o,{})}),(0,t.jsx)(x.TooltipContent,{side:"bottom",children:Q.muted?"Let her speak":"Mute her voice"})]})}),(0,t.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-5 pt-[7vh]",children:[(0,t.jsxs)("div",{ref:I,className:"relative w-[min(20rem,52vw,37.5vh)] [--face-bleed:19.5%]",children:[(0,t.jsx)("button",{type:"button",disabled:!er||!S,onClick:()=>et(!0),"aria-label":er&&S?"Call Thursday":void 0,className:(0,ea.cn)("block w-full rounded-full outline-none transition-all duration-700 ease-out focus-visible:ring-3 focus-visible:ring-ring/50","hello"!==f&&!S&&"opacity-35"),children:"echoes"!==_?(0,t.jsx)(V.Face,{look:p,status:en,failed:!1,word:T,getSpectrum:"hello"===f?O.voice:Q.spectrum,waking:!0,className:"-m-(--face-bleed) w-[calc(100%+2*var(--face-bleed))] max-w-none"}):(0,t.jsx)("div",{className:"aspect-square w-full"})}),(0,t.jsx)(Y.SideCaptions,{turns:z,pinned:$.pinned,live:"hello"===f?O.saying:Q.speaking,onPick:$.pick}),"hello"!==f&&(0,t.jsxs)("div",{className:"absolute top-1/2 left-full ml-[calc(var(--face-bleed)+0.375rem)] flex w-[min(22rem,26vw)] -translate-y-1/2 animate-in flex-col gap-4 text-left fade-in slide-in-from-bottom-1 duration-300",children:["key"===f&&(0,t.jsx)(ec,{keyed:S,onSaved:()=>{N(!0),E((0,X.awake)())}}),"mic"===f&&(0,t.jsx)(ed,{mic:R}),"bots"===f&&(0,t.jsx)(eh,{picked:A,face:ee,onToggle:e=>M(t=>({...t,[e]:!t[e]}))}),"models"===f&&(0,t.jsx)(em,{}),"style"===f&&(0,t.jsx)(ep,{})]},f)]}),(0,t.jsxs)("div",{className:"flex w-full max-w-3xl flex-col items-center gap-4 px-6 text-center",children:[(0,t.jsx)("div",{className:"flex h-14 items-center gap-2 text-[13px] text-muted-foreground",children:"hello"===f?L&&(0,t.jsx)("p",{className:"max-w-130 animate-in text-[20px] leading-[1.5] text-balance text-foreground duration-700 fill-mode-backwards fade-in slide-in-from-bottom-2",children:"Just talk to her. She gets it done on this computer, and tells you when it is ready."}):"mic"===f&&R.on?(0,t.jsx)(G.Ear,{live:!0,getMicSpectrum:R.spectrum}):S?er?(0,t.jsx)(ef,{mic:R.allowed,bots:k.BOT_SEEDS.filter(e=>A[e.name]).length}):null:"Asleep"}),"hello"!==f||L?(0,t.jsxs)(m.Button,{variant:"brand",onClick:()=>{"hello"===f?(Q.say("hello",S?"awake":"key"),g("key")):er?et(S):g(el[P+1])},className:(0,ea.cn)("h-12 px-7 pl-8 text-[15px]","hello"===f&&"animate-in delay-300 duration-700 fill-mode-backwards fade-in slide-in-from-bottom-2"),children:["hello"===f?"Start":er?S?"Call her":"Look around":"Continue",(0,t.jsx)(s.ChevronRight,{})]}):(0,t.jsx)("div",{className:"h-12"}),(0,t.jsx)("p",{className:"h-4 font-mono text-[11px] text-muted-foreground/70",children:"hello"===f?L&&(0,t.jsx)("span",{className:"block animate-in delay-500 duration-700 fill-mode-backwards fade-in",children:"two minutes · every step can wait"}):"key"!==f||S?"mic"!==f||R.on?er&&S?"or tap her":"":"or allow it when the first call asks":"no key is fine — it can go in from the call screen"})]})]}),"hello"===f?L&&(0,t.jsx)(ex,{stage:O.stage,icons:l}):(0,t.jsxs)("div",{className:"absolute inset-x-0 bottom-6 grid grid-cols-[1fr_auto_1fr] items-center gap-4.5 font-mono text-[11px] text-muted-foreground/70 [@media(max-height:720px)]:bottom-3",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>g(P>0?el[P-1]:"hello"),className:"flex items-center gap-1 justify-self-end rounded-md outline-none hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",children:[(0,t.jsx)(r.ChevronLeft,{className:"size-3"}),"Back"]}),(0,t.jsxs)("span",{className:"flex items-center gap-4.5",children:[(0,t.jsx)("span",{className:"flex items-center gap-1.75",children:el.map((e,n)=>(0,t.jsx)("span",{className:(0,ea.cn)("h-1.75 rounded-full transition-all duration-300",n===P?"w-5.5 bg-foreground":"w-1.75",n<P&&"bg-foreground/40",n>P&&"bg-border")},e))}),(0,t.jsxs)("span",{children:[P+1," of ",el.length]})]}),er&&!S?(0,t.jsx)("span",{}):(0,t.jsx)("button",{type:"button",onClick:()=>et(!1),className:(0,ea.cn)("justify-self-start rounded-md outline-none hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",er&&"text-muted-foreground"),children:er?"Look around first":"Skip all"})]})]})}],302707)},756958,e=>{"use strict";var t=e.i(843476),n=e.i(271645),r=e.i(511769),s=e.i(798120),a=e.i(917162),l=e.i(6799),i=e.i(393080),o=e.i(283653),u=e.i(647163),c=e.i(95187);let d=(0,c.createServerReference)("7f5b8766ef434d0a5208cae38ab0cc7bdf0ac3deb9",c.callServer,void 0,c.findSourceMapURL,"allowReachAction"),h=(0,c.createServerReference)("7f2dcdb3d20b98429a2273b74f29a22462d36fc77e",c.callServer,void 0,c.findSourceMapURL,"declineReachAction");var p=e.i(36174);e.s(["ReachAsk",0,function(){let{data:e}=(0,o.useServerRoute)(s.queryKey.reach);(0,r.useAppEvent)({reach:()=>void(0,o.revalidate)(s.queryKey.reach)});let c=(0,n.useRef)(null),m=e?.channels.find(e=>e.asking)??null,f=m?.asking??null,g=m?.name??null,x=f&&g?`${g}:${f.chat}:${f.code}`:null;return(0,n.useEffect)(()=>{if(c.current?.key===x||(c.current?.close.abort(),c.current=null,!x||!f||!g))return;let e=new AbortController;c.current={key:x,close:e};let n={chat:f.chat,code:f.code};a.notify.confirm({title:`Let ${f.name} reach Thursday from a phone?`,description:(0,t.jsxs)("span",{className:"line-clamp-2",children:[[p.REACH_LABEL[g],f.name,f.handle].filter(Boolean).join(" · "),f.said&&` wrote “${f.said}”`]}),body:(0,t.jsxs)("div",{className:"grid gap-4",children:[(0,t.jsxs)("div",{className:"grid place-items-center gap-1.5 rounded-lg bg-muted p-4",children:[(0,t.jsx)("span",{className:"pl-[0.32em] font-mono text-3xl font-medium tracking-[0.32em]",children:f.code}),(0,t.jsx)("span",{className:"font-mono text-[11px] text-muted-foreground",children:"the code their phone was sent"})]}),(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"Allow only if the phone in your hand shows this code. Whoever you let in can talk to Thursday from there — and through her, start work on this computer."})]}),okText:"Allow",cancelText:"Not them",cautious:!0,signal:e.signal}).then(t=>{if(!e.signal.aborted)return(t?d(g,n):h(g,n)).then(i.unwrapResult).catch(e=>l.toast.add({type:"error",title:t?`Could not let ${f.name} in`:`Could not turn ${f.name} away`,description:(0,u.errorToString)(e)}))})},[x,f,g]),null}],756958)},252284,e=>{"use strict";var t=e.i(843476),n=e.i(271645);e.s(["Boot",0,function(){let[e,r]=(0,n.useState)(!1);return((0,n.useEffect)(()=>r(!0),[]),e)?null:(0,t.jsx)("p",{"aria-hidden":!0,className:"pointer-events-none fixed inset-x-0 bottom-16 z-50 animate-stalled text-center text-[13px] text-muted-foreground opacity-0",children:"The page did not start. Reload it."})}])},692888,747985,234916,895499,656572,745747,114923,435135,e=>{"use strict";var t,n,r=e.i(843476),s=e.i(989366),a=e.i(716327),l=e.i(456420);let i={name:"chevron-up",size:24,node:[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]};i.node;let o=(0,l.default)(i),u={name:"flag",size:24,node:[["path",{d:"M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528",key:"1jaruq"}]]};u.node;let c=(0,l.default)(u);var d=e.i(638292);let h={name:"mic-off",size:24,node:[["path",{d:"M12 19v3",key:"npa21l"}],["path",{d:"M15 9.34V5a3 3 0 0 0-5.68-1.33",key:"1gzdoj"}],["path",{d:"M16.95 16.95A7 7 0 0 1 5 12v-2",key:"cqa7eg"}],["path",{d:"M18.89 13.23A7 7 0 0 0 19 12v-2",key:"16hl24"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M9 9v3a3 3 0 0 0 5.12 2.12",key:"r2i35w"}]]};h.node;let p=(0,l.default)(h),m={name:"phone-missed",size:24,node:[["path",{d:"m16 2 6 6",key:"1gw87d"}],["path",{d:"m22 2-6 6",key:"6f0sa0"}],["path",{d:"M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384",key:"9njp5v"}]]};m.node;let f=(0,l.default)(m),g={name:"settings-2",size:24,node:[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]]};g.node;let x=(0,l.default)(g);var y=e.i(263676),w=e.i(271645),b=e.i(798120),k=e.i(167881),v=e.i(225913),j=e.i(647163);let S=(0,v.cva)("flex w-fit items-stretch has-[>[data-slot=button-group]]:gap-1.5 [&>*]:relative [&>*]:focus-visible:z-10",{variants:{orientation:{horizontal:"[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none",vertical:"flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none"}},defaultVariants:{orientation:"horizontal"}});function N({className:e,orientation:t="horizontal",...n}){return(0,r.jsx)("div",{"data-slot":"button-group","data-orientation":t,role:"group",className:(0,j.cn)(S({orientation:t}),e),...n})}let T=new Intl.Segmenter(void 0,{granularity:"grapheme"});function E({text:e,wraps:t=[]}){let n=(0,w.useMemo)(()=>Array.from(T.segment(e),e=>e.segment),[e]),s=(0,w.useRef)([]),a=0;for(;a<n.length&&n[a]===s.current[a];)a++;(0,w.useEffect)(()=>{s.current=n},[n]);let l=e=>(0,r.jsx)(A,{wait:25*Math.max(0,e-a),children:n[e]},`${n[e]}${e}`),i=[];for(let e=0;e<n.length;){let s=t.find(t=>t.from===e&&t.to>e);if(!s){i.push(l(e)),e+=1;continue}let a=Math.min(s.to,n.length),o=[];for(let t=e;t<a;t++)o.push(l(t));i.push((0,r.jsx)(w.Fragment,{children:s.render(o)},`wrap${e}`)),e=a}return(0,r.jsx)("span",{children:i})}function A({wait:e,children:t}){let[n]=(0,w.useState)(e);return(0,r.jsx)("span",{style:{animationDelay:`${n}ms`},className:"animate-letter motion-reduce:animate-none",children:t})}var M=e.i(660302),_=e.i(633669),C=e.i(728231),L=e.i(41533),I=e.i(149666),R=e.i(265402),O=e.i(451888),D=e.i(635963);let P={name:"arrow-right",size:24,node:[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]};P.node;let F=(0,l.default)(P);var z=e.i(511769);let $={wave:740,done:740,ask:820,took:740,give:900,take:520,stop:1150,read:560},B={wave:{body:"animate-crew-hop",shape:"animate-crew-hop-shape"},took:{body:"animate-crew-hop",shape:"animate-crew-hop-shape"},done:{body:"animate-crew-hop",shape:"animate-crew-hop-shape",turn:"animate-crew-spin"},ask:{body:"animate-crew-hop",shape:"animate-crew-hop-shape",turn:"animate-crew-ask-turn"},give:{turn:"animate-crew-give"},take:{body:"animate-crew-take",shape:"animate-crew-take-shape"},stop:{body:"animate-crew-sink",shape:"animate-crew-sink-shape"},read:{body:"animate-crew-nod",shape:"animate-crew-nod-shape"}},q={key:0,body:"",shape:"animate-crew-breath",turn:"",delayMs:0};var U=e.i(399512),K=e.i(256604),H=e.i(319841),W=e.i(245629),V=e.i(661504),Y=e.i(283653),G=e.i(978411),J=e.i(351866),X=e.i(401851),Z=e.i(677241),Q=e.i(24708),ee=e.i(845110),et=e.i(980797),en=e.i(383482),er=e.i(24071),es=e.i(931619),ea=e.i(632781),el=e.i(671428),ei=e.i(127341),eo=e.i(835878),eu=e.i(431594);function ec(){let e=(0,G.useBotThreads)(),t=(0,G.useRingingThreads)();return(0,w.useMemo)(()=>[...e].reverse().filter(e=>!t.includes(e.id)&&(0,O.needsThreadReply)(e)),[e,t])}function ed({tab:e,current:t,onTab:n,onClose:s}){return(0,r.jsxs)("div",{className:"flex items-center gap-2 pt-3 pr-3.5 pb-1.5 pl-2.5",children:[(0,r.jsx)(ei.Tabs,{value:e,onValueChange:e=>n(e),className:"gap-0",children:(0,r.jsxs)(ei.TabsList,{className:"gap-1 rounded-none bg-transparent p-0 group-data-horizontal/tabs:h-auto",children:[(0,r.jsxs)(ei.TabsTrigger,{value:"now",className:J.TAB,children:["Now",t>0&&(0,r.jsx)("span",{className:"font-mono text-[10px] font-normal text-muted-foreground tabular-nums",children:t})]}),(0,r.jsx)(ei.TabsTrigger,{value:"history",className:J.TAB,children:"History"})]})}),(0,r.jsx)("span",{className:"flex-1"}),(0,r.jsx)(J.FoldButton,{onClick:s})]})}function eh({bots:e}){return(0,r.jsx)("p",{className:"px-6 pt-4 pb-5 text-center text-[12px] text-muted-foreground",children:e?.length?"Nothing handed over yet — ask for something that takes a while.":`Thursday hands work to ${O.DEFAULT_BOT.name} until you make bots of your own in Settings › Bots.`})}function ep(){return(0,r.jsx)("p",{className:"px-6 pt-4 pb-5 text-center text-[12px] text-muted-foreground",children:"Nothing running or waiting."})}function em({pages:e,threads:t,scroll:n,onPick:s}){let a=(0,w.useCallback)(e=>{e&&(e.scrollTop=n.current)},[n]),l=[];for(let e of t){let t=function(e){let t=(0,W.toDate)(e);return(0,et.isToday)(t)?"today":(0,en.isYesterday)(t)?"yesterday":(0,X.format)(t,function(e,t){let[n,r]=(0,ee.normalizeDates)(void 0,e,t);return n.getFullYear()===r.getFullYear()}((0,Z.constructFrom)(t,t),(0,Q.constructNow)(t))?"MMM d":"MMM d, yyyy").toLowerCase()}(e.updatedAt),n=l.at(-1);n?.day===t?n.rows.push(e):l.push({day:t,rows:[e]})}return(0,r.jsx)("div",{ref:a,onScroll:e=>{n.current=e.currentTarget.scrollTop},className:"flex max-h-[50vh] min-h-0 flex-1 flex-col gap-0.5 overflow-y-auto px-2 pt-1 pb-2 scrollbar-none",children:e.error?(0,r.jsx)("p",{className:"px-2.5 py-3 text-[12px] text-destructive",children:e.error.message}):e.isLoading?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"flex h-6 items-center px-2.5 pt-1",children:(0,r.jsx)(el.Skeleton,{className:"h-2.5 w-16"})}),(0,r.jsx)(eg,{})]}):(0,r.jsxs)(r.Fragment,{children:[l.map((e,t)=>(0,r.jsxs)(w.Fragment,{children:[(0,r.jsxs)("p",{className:(0,j.cn)("px-2.5 pb-1 font-mono text-[10px] text-muted-foreground",0===t?"pt-1":"pt-3"),children:[e.day," · ",e.rows.length]}),e.rows.map(e=>(0,r.jsx)(ew,{thread:e,onPick:()=>s(e.id)},e.id))]},e.day)),e.hasMore?(0,r.jsx)("div",{ref:e.sentinelRef,children:(0,r.jsx)(eg,{})}):0===l.length&&(0,r.jsx)("p",{className:"px-6 pt-3 pb-4 text-center text-[12px] text-muted-foreground",children:"Nothing has ended yet."})]})})}function ef({onBack:e,onClose:t}){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 px-3 pt-3 pb-1",children:[(0,r.jsx)("button",{type:"button",onClick:e,"aria-label":"Back to the list",className:"shrink-0 rounded-md p-1 text-muted-foreground outline-none transition-colors hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",children:(0,r.jsx)(er.ChevronLeft,{className:"size-4"})}),(0,r.jsx)(el.Skeleton,{className:"size-5.5 shrink-0 rounded-md"}),(0,r.jsx)("span",{className:"flex min-w-0 flex-1",children:(0,r.jsx)(el.Skeleton,{className:"h-3.5 w-2/5"})}),(0,r.jsx)(J.FoldButton,{onClick:t})]}),(0,r.jsxs)("div",{className:"flex flex-col gap-2 px-4 py-4",children:[(0,r.jsx)(el.Skeleton,{className:"h-3 w-4/5"}),(0,r.jsx)(el.Skeleton,{className:"h-3 w-3/5"}),(0,r.jsx)(el.Skeleton,{className:"h-3 w-2/3"})]})]})}function eg(){return(0,r.jsxs)("div",{className:"flex items-center gap-2.5 px-2 py-1.5",children:[(0,r.jsx)(el.Skeleton,{className:"size-8 shrink-0 rounded-[10px]"}),(0,r.jsxs)("span",{className:"flex h-9 min-w-0 flex-1 flex-col justify-center gap-1.5",children:[(0,r.jsx)(el.Skeleton,{className:"h-3.5 w-2/5"}),(0,r.jsx)(el.Skeleton,{className:"h-2.5 w-3/5"})]})]})}let ex=[{id:"needsYou",label:"needs you"},{id:"working",label:"working"}];function ey({threads:e,onPick:t}){let n=new Map;for(let t of e){let e=(0,O.standOf)(t),r=n.get(e);r?r.push(t):n.set(e,[t])}return(0,r.jsx)("div",{className:"flex max-h-[50vh] min-h-0 flex-1 flex-col gap-0.5 overflow-y-auto px-2 pt-1 pb-1 scrollbar-none",children:ex.map((e,s)=>{let a=n.get(e.id)??[];return a.length?(0,r.jsxs)(w.Fragment,{children:[(0,r.jsxs)("p",{className:(0,j.cn)("px-2.5 pb-1 font-mono text-[10px] text-muted-foreground",0===s?"pt-1":"pt-3"),children:[e.label," · ",a.length]}),a.map(e=>(0,r.jsx)(ew,{thread:e,onPick:()=>t(e.id)},e.id))]},e.id):null})})}function ew({thread:e,onPick:t,lines:n=1}){let s=(0,O.needsThreadReply)(e),a=e.lines.at(-1),l=(0,w.useMemo)(()=>(function(e){let t=e.room.questions[0];if(t)return{text:(0,j.plainText)(t.text),tone:"text-foreground"};if("waiting"===e.status&&e.ask)return{text:(0,O.isAppStop)(e.ask)?(0,j.plainText)(e.outcome??e.ask.question):e.ask.question,tone:j.WAITING_INK};let n=e.seen;if("cancelled"===e.status)return{text:"Stopped",tone:"text-muted-foreground"};if("done"===e.status)return{text:(0,j.plainText)(e.outcome??"Done"),tone:n?"text-muted-foreground":"text-foreground"};let r=(0,G.lastSaid)(e);return r?{text:"tool"===r.kind&&r.tool?r.tool.note??`${r.tool.name} \xb7 ${r.tool.input}`:r.text,tone:"text-muted-foreground"}:{text:`${e.bot.name} is taking it on…`,tone:"text-muted-foreground italic"}})(e),[e.status,e.outcome,e.seen,e.ask,e.room.questions,a?.id]),[i,o]=(0,U.useAnswerThread)(),[u,c]=(0,w.useState)(null),d=e.room.questions[0],h=d?d.options??[]:"waiting"===e.status&&(0,O.isAppStop)(e.ask)?e.ask?.options??[]:[];return(0,r.jsxs)("div",{className:"rounded-xl transition-colors hover:bg-muted/60",children:[(0,r.jsxs)("button",{type:"button",onClick:t,className:"flex w-full items-center gap-2.5 rounded-xl px-2 py-1.5 text-left outline-none focus-visible:ring-3 focus-visible:ring-ring/50",children:[(0,r.jsx)("span",{className:"relative flex size-8 shrink-0 items-center justify-center overflow-visible",title:e.bot.name,children:(0,r.jsx)(D.BotMark,{size:32,seed:e.bot.name,color:e.bot.icon?.color,shape:e.bot.icon?.shape,outline:e.bot.icon?.outline,paint:e.bot.icon?.paint,state:"working"===e.status?"thinking":"idle",notify:s||(0,O.isUnread)(e),crossed:"cancelled"===e.status})}),(0,r.jsxs)("span",{className:"min-w-0 flex-1",children:[s&&!d&&(0,O.isAppStop)(e.ask)&&(0,r.jsx)("span",{className:"block font-mono text-[10px] tracking-wide text-muted-foreground",children:"Paused"}),(0,r.jsxs)("span",{className:"flex items-center justify-between gap-2",children:[(0,r.jsx)("span",{className:(0,j.cn)("min-w-0 truncate text-[14px] leading-5 tracking-[-0.15px]",s?"text-foreground":"text-foreground/80",(s||(0,O.isUnread)(e))&&"font-medium"),children:e.label}),e.routineId&&(0,r.jsx)("span",{title:"Started by a routine",className:"shrink-0",children:(0,r.jsx)(eu.RoutineMark,{className:"size-3 text-muted-foreground/80"})}),(0,r.jsx)(eo.BotRoster,{bots:e.roster}),(0,r.jsx)("span",{className:"flex-1"}),(0,r.jsx)("span",{className:"shrink-0 font-mono text-[11px] leading-4 text-muted-foreground/70 tabular-nums",children:(0,W.shortAgo)(e.updatedAt)})]}),(0,r.jsxs)("span",{className:(0,j.cn)("mt-px flex items-center gap-1.5",1===n&&"h-4"),children:["working"===e.status&&(0,r.jsx)(ea.Loader2,{className:"size-3 shrink-0 animate-spin text-muted-foreground/70"}),"working"===e.status||d?(0,r.jsx)(M.ShinyText,{text:l.text,speed:d?3.4:2.2,tone:d?"reading":void 0,className:(0,j.cn)("min-w-0 flex-1 text-[12px] leading-4",1===n?"truncate":"line-clamp-2",l.tone.includes("italic")&&"italic")}):(0,r.jsx)("span",{className:(0,j.cn)("min-w-0 flex-1 text-[12px] leading-4",1===n?"truncate":"line-clamp-2",l.tone),children:l.text})]})]})]}),h.length>0&&(0,r.jsx)("div",{className:"flex flex-wrap gap-1.5 pt-0.5 pr-2 pb-2 pl-12.5",children:h.map(t=>(0,r.jsxs)(k.Button,{size:"sm",variant:"secondary",loading:u===t,disabled:o,onClick:async()=>{c(t),await i(e,t,d?.bot,d?.id),c(null)},className:"h-7 gap-1.5 rounded-full px-3 text-[12px]",children:[t===O.THREAD_CONTINUE&&(0,r.jsx)(es.ChevronsRight,{className:"size-3.5"}),t]},t))})]})}var eb=e.i(689664);let ek={name:"circle-pause",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"10",x2:"10",y1:"15",y2:"9",key:"c1nkhi"}],["line",{x1:"14",x2:"14",y1:"15",y2:"9",key:"h65svq"}]],aliases:["pause-circle"]};ek.node;let ev=(0,l.default)(ek);var ej=e.i(51481),eS=e.i(77071),eN=e.i(825398);function eT({bot:e,icon:t,line:n,children:s}){return(0,r.jsxs)(C.Tooltip,{children:[(0,r.jsx)(C.TooltipTrigger,{render:(0,r.jsx)("span",{}),children:s}),(0,r.jsxs)(C.TooltipContent,{className:"flex items-center gap-2 py-1 pr-2.5 pl-1",children:[(0,r.jsxs)("span",{className:"flex items-center gap-1.5 rounded-full bg-background/15 py-0.5 pr-2 pl-1",children:[(0,r.jsx)(D.BotMark,{size:15,seed:e,color:t?.color,shape:t?.shape,outline:t?.outline,paint:t?.paint}),(0,r.jsx)("span",{className:"font-medium text-[11px]",children:e})]}),n&&(0,r.jsx)("span",{className:"text-[11.5px] opacity-80",children:n})]})]})}let eE=[[0,[21,117,208]],[.4,[90,157,222]],[.75,[179,210,239]],[1,[252,252,254]]],eA=eE[0][1],eM=[{pace:.075,wide:.75,tall:1.15,seed:3.1,gustWide:.4,gustTall:.2,sky:1},{pace:.16,wide:1.3,tall:2.2,seed:11.7,gustWide:0,gustTall:0,sky:1},{pace:.3,wide:2.4,tall:4,seed:19.3,gustWide:0,gustTall:0,sky:1},{pace:.21,wide:1.65,tall:2.9,seed:27.7,gustWide:0,gustTall:0,sky:1.3}],e_=(e,t,n)=>e<t?t:e>n?n:e,eC=e=>e*e*(3-2*e),eL=(e,t,n)=>eC(e_((n-e)/(t-e),0,1)),eI=(e,t)=>{let n=0x165667b1*e+0x27d4eb2f*t|0;return(((n=(n^n>>>13)*0x4bf19f61)^n>>>16)>>>0)/0xffffffff},eR=(e,t)=>{let n=Math.floor(e),r=Math.floor(t),s=eC(e-n),a=eC(t-r);return(eI(n,r)*(1-s)+eI(n+1,r)*s)*(1-a)+(eI(n,r+1)*(1-s)+eI(n+1,r+1)*s)*a},eO=(e,t,n)=>.74*eR(e+n,t+.7*n)+.26*eR(2.2*e+n,2.2*t+1.3*n);function eD({on:e,className:t}){let n=(0,w.useRef)(null),[s,a]=(0,w.useState)(e),[l,i]=(0,w.useState)(!1);return((0,w.useEffect)(()=>{if(e){a(!0);let e=requestAnimationFrame(()=>i(!0));return()=>cancelAnimationFrame(e)}i(!1);let t=setTimeout(()=>a(!1),200);return()=>clearTimeout(t)},[e]),(0,w.useEffect)(()=>{let e=n.current,t=e?.getContext("2d");if(!e||!t)return;e.width=48,e.height=48;let r=t.createImageData(48,48),s=r.data,a=[0,0,0],l=900*Math.random(),i=400*Math.random(),o=e=>{let n=e+l,o=n+1.7*Math.sin(.33*n),u=(.5+.5*Math.sin(.27*n))**2*.72+(.5+.5*Math.sin(.41*n+2.1))**3*.28,c=.1*Math.sin(.19*n),d=eM.map(e=>({seed:e.seed,shift:o*e.pace,wide:e.wide*(1-e.gustWide*u),tall:e.tall*(1+e.gustTall*u),sky:i*e.sky})),h=0;for(let e=0;e<48;e+=1){let t=(e+.5)/48*2-1;for(let e=0;e<48;e+=1,h+=4){let r=(e+.5)/48*2-1,l=eR(.55*r+.03*n,.55*t+i)-.5,o=eR(.55*r+9.1+i,.55*t-.024*n)-.5,u=r+1.15*l,p=t+ +o+c,[m,f,g,x]=d.map(e=>eO((u-e.shift)*e.wide+e.sky,p*e.tall,e.seed)),y=e_((.52-m)/.34,0,1);y*=.7+.6*e_((.56-f)/.4,0,1);let w=.97-.92*(y=e_(y+(.5-g)*.42,0,1))**1.2-.1*e_((.5-g)/.6,0,1)+(x-.5)*.38,b=Math.sqrt(r*r+t*t);!function(e,t){let n=e_(e,0,1),r=1;for(;r<eE.length-1&&n>eE[r][0];)r+=1;let[s,a]=eE[r-1],[l,i]=eE[r],o=(n-s)/(l-s);t[0]=a[0]+(i[0]-a[0])*o,t[1]=a[1]+(i[1]-a[1])*o,t[2]=a[2]+(i[2]-a[2])*o}(w+=.16*e_(1-Math.hypot(r+.42,t+.48)/1.5,0,1)+eL(.84,1,b)*e_(.15+.85*(.8*t+.45*r),0,1)*.45,a);let k=e_(b,0,1)**2.4*.26;s[h]=a[0]+(eA[0]-a[0])*k,s[h+1]=a[1]+(eA[1]-a[1])*k,s[h+2]=a[2]+(eA[2]-a[2])*k,s[h+3]=255*(1-eL(.94,1,b))}}t.putImageData(r,0,0)},u=performance.now();if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return void o(6);let c=0,d=0,h=e=>{c=requestAnimationFrame(h),e-d<33||(d=e,o((e-u)/1e3))};return c=requestAnimationFrame(h),()=>cancelAnimationFrame(c)},[s]),s)?(0,r.jsx)("canvas",{ref:n,"aria-hidden":!0,className:(0,j.cn)("pointer-events-none absolute inset-0 size-full transition-opacity",l?"opacity-100":"opacity-0",t),style:{transitionDuration:"200ms"}}):null}var eP=e.i(864723);let eF={done:eb.Check,cancelled:y.X,question:ej.CircleQuestionMark,stopped:ev,resumed:eN.RotateCw},ez={question:j.WAITING_INK,stopped:j.WAITING_INK},e$=e=>{let t=(0,j.plainText)(e).replace(/\s+/g," ").trim();return t.length>28?`${t.slice(0,27)}…`:t};function eB({crew:e,more:t,bubble:n,rows:s,count:a,busy:l,pending:i,playing:o,onPick:u,onOpen:c}){let d=(0,G.useWriteLineUp)(),h=s.length>0&&!d;return(0,r.jsxs)("div",{className:(0,j.cn)("pointer-events-auto w-fit max-w-full bg-background/78 ring-1 ring-border/50 backdrop-blur-md transition-shadow duration-300",h?"w-132 rounded-3xl shadow-lg shadow-black/8":"rounded-full shadow-sm shadow-black/3"),children:[(0,r.jsx)("div",{className:(0,j.cn)("grid overflow-hidden contain-inline-size transition-[grid-template-rows] duration-300 ease-out",h?"grid-rows-[1fr]":"grid-rows-[0fr]"),children:(0,r.jsxs)("div",{className:"min-h-0 overflow-hidden",inert:!h,children:[(0,r.jsxs)("p",{className:"px-3 py-2 font-mono text-[10px] tracking-wide text-muted-foreground",children:[i," ",1===i?"needs":"need"," a reply"]}),(0,r.jsx)("div",{className:"max-h-[34vh] overflow-y-auto px-1.5 pb-2",children:(0,r.jsx)("div",{children:s.map((e,t)=>(0,r.jsx)("div",{style:{animationDelay:`${120+60*t}ms`},className:"animate-in duration-300 fill-mode-backwards fade-in slide-in-from-bottom-1",children:(0,r.jsx)(ew,{thread:e,onPick:()=>u(e.id)})},e.id))},String(h))}),(0,r.jsx)("span",{className:"block h-1.5"})]})}),(0,r.jsx)(eq,{crew:e,more:t,bubble:h?null:n,label:a?`Threads (${a})`:"Bots",onClick:c,playing:o,side:(0,r.jsx)(eU,{busy:l,pending:i,grown:h}),onWrite:G.writeLine.open,writing:d})]})}function eq({crew:e,more:t,bubble:n,playing:s,side:a,label:l,onClick:i,onWrite:o,writing:u}){return(0,r.jsxs)("div",{className:"flex shrink-0 items-center gap-2 py-1.5 pr-3 pl-1.5",children:[(0,r.jsxs)(C.Tooltip,{children:[(0,r.jsxs)(C.TooltipTrigger,{render:(0,r.jsx)("button",{type:"button",onClick:o,"aria-label":"Write to Thursday or a bot","aria-pressed":u,className:(0,j.cn)("relative grid size-7 shrink-0 place-items-center overflow-hidden rounded-full outline-none transition-[background-color,box-shadow] duration-300 focus-visible:ring-3 focus-visible:ring-ring/50",u?"shadow-[0_6px_14px_-7px_color-mix(in_oklab,var(--brand)_60%,transparent)]":"bg-muted text-foreground hover:bg-accent")}),children:[(0,r.jsx)(eD,{on:!!u}),(0,r.jsx)(eS.Plus,{className:(0,j.cn)("size-3.5 transition-opacity duration-200",u?"opacity-0":"opacity-100")})]}),(0,r.jsxs)(C.TooltipContent,{children:["Write to Thursday or a bot",(0,r.jsx)("kbd",{"data-slot":"kbd",className:"bg-background/20 px-1.5 font-mono text-[10px]",children:"/"})]})]}),(0,r.jsxs)("button",{type:"button",onClick:i,"aria-label":l,className:"flex min-w-0 flex-1 items-center gap-2 rounded-full text-left outline-none focus-visible:ring-3 focus-visible:ring-ring/50",children:[(0,r.jsx)(eH,{crew:e,more:t,bubble:n,playing:s}),a]})]})}function eU(e){let t=function({busy:e,pending:t,grown:n}){return t>0?{text:1===t?"waiting on you":`${t} waiting on you`,shine:!0}:e>0?{text:"working",shine:!0,spin:!0}:n?null:{text:"Need a hand?",shine:!1}}(e);return t?(0,r.jsxs)("span",{className:"ml-auto flex h-7 min-w-0 shrink items-center gap-1.5",children:[t.shine?(0,r.jsx)(M.ShinyText,{text:t.text,speed:2.6,className:"block truncate text-[14px] leading-5 tracking-[-0.15px]"}):(0,r.jsx)("span",{className:"block animate-in truncate text-[14px] leading-5 tracking-[-0.15px] text-muted-foreground fade-in duration-300",children:t.text},t.text),t.spin&&(0,r.jsx)(ea.Loader2,{className:"size-4 shrink-0 animate-spin text-muted-foreground/70"})]}):null}let eK=["alto","brio","cinder","delta"].map((e,t)=>({name:e,icon:{color:eP.MARK_PALETTE[Math.floor(t*eP.MARK_PALETTE.length/4)],shape:eP.MARK_SHAPES[t%eP.MARK_SHAPES.length]},awake:!1,waiting:!1,unread:!1,word:null,standIn:!0}));function eH({crew:e,more:t,bubble:n,playing:s}){return(0,r.jsxs)("span",{className:"flex min-w-0 shrink items-center",children:[e.map((t,a)=>(0,r.jsxs)(w.Fragment,{children:[(0,r.jsxs)("span",{className:(0,j.cn)("relative shrink-0 transition-[margin] duration-500 ease-out",a>0&&!e[a-1].word&&"-ml-2",t.standIn&&"opacity-35"),style:{zIndex:e.length-a},children:[(0,r.jsx)(eT,{bot:t.name,icon:t.icon,line:t.standIn?"No bots yet":t.waiting?"Waiting on you":t.word?t.word:t.unread?"Left you a result":t.awake?"Working":"Idle",children:(0,r.jsx)("span",{className:(0,j.cn)("flex transition-transform duration-500 ease-out",t.awake&&"-translate-y-0.5 scale-110"),children:(0,r.jsx)(eW,{face:t,motion:function(e,t){if(!e)return{...q,delayMs:-370*t};let n=B[e.gesture];return{key:e.id,body:n.body??"",shape:n.shape??"animate-crew-breath",turn:n.turn??"",delayMs:"wave"===e.gesture?70*t:0}}(s.get(t.name),a)})})}),n?.at===t.name&&(0,r.jsx)(eY,{handoff:n})]}),t.word&&(0,r.jsx)("span",{className:"mx-2.5 min-w-0 shrink truncate",children:(0,r.jsx)(M.ShinyText,{text:t.word,speed:2.6,className:"truncate text-[13px] leading-5 tracking-[-0.1px]"})})]},t.name)),t>0&&(0,r.jsx)("span",{className:"ml-2 flex h-[18px] shrink-0 items-center rounded-full bg-brand/10 px-2 font-mono text-[10.5px] leading-none font-medium text-brand",title:`${t} more`,children:"+"})]})}function eW({face:e,motion:t}){let n=t.delayMs?{animationDelay:`${t.delayMs}ms`}:void 0;return(0,r.jsx)("span",{"data-crew-motion":!0,className:(0,j.cn)("flex",t.body),style:n,children:(0,r.jsx)("span",{"data-crew-motion":!0,className:(0,j.cn)("flex origin-bottom",t.shape),style:n,children:(0,r.jsx)("span",{"data-crew-motion":!0,className:(0,j.cn)("flex",t.turn),style:n,children:(0,r.jsx)(eV,{face:e})})})},t.key)}function eV({face:e}){return(0,r.jsx)(D.BotMark,{size:28,seed:e.name,color:e.icon?.color,shape:e.icon?.shape,outline:e.icon?.outline,paint:e.icon?.paint,notify:e.waiting||e.unread})}function eY({handoff:e}){return(0,r.jsxs)("span",{className:"pointer-events-none absolute bottom-[calc(100%+10px)] left-1/2 flex w-max -translate-x-1/2 animate-in flex-col items-center fade-in zoom-in-95 duration-200",children:[(0,r.jsx)("span",{className:"flex rounded-full bg-background py-2 pr-3.5 pl-2.5 shadow-lg shadow-black/10 ring-1 ring-border",children:(0,r.jsx)(eJ,{handoff:e})}),(0,r.jsx)("span",{className:"-mt-px size-0 border-x-[6px] border-t-[7px] border-x-transparent border-t-border"}),(0,r.jsx)("span",{className:"-mt-[7.5px] size-0 border-x-[6px] border-t-[7px] border-x-transparent border-t-background"})]})}function eG({handoff:e}){return(0,r.jsx)("span",{className:"ml-auto flex h-7 min-w-0 shrink animate-in items-center pl-4 fade-in duration-200",children:(0,r.jsx)(eJ,{handoff:e})})}function eJ({handoff:e}){let t=e.sign?eF[e.sign]:null,n=e.sign?ez[e.sign]:void 0;return(0,r.jsxs)("span",{className:(0,j.cn)("flex min-w-0 items-center gap-2 text-[13px] leading-[18px] tracking-[-0.1px] whitespace-nowrap",n),children:[(0,r.jsx)(eX,{from:e.from,to:e.to}),t&&(0,r.jsx)(t,{className:(0,j.cn)("size-3.5 shrink-0",!n&&"text-muted-foreground/70")}),e.shine?(0,r.jsx)(M.ShinyText,{text:e.text,speed:2.2,className:"min-w-0 truncate"}):(0,r.jsx)("span",{className:"min-w-0 truncate",children:e.text})]})}function eX({from:e,to:t}){let n=[e,...t];return(0,r.jsx)("span",{className:"flex shrink-0 items-center",children:n.map((e,t)=>(0,r.jsx)("span",{className:(0,j.cn)("relative flex",t>0&&"-ml-1.25"),style:{zIndex:n.length-t},children:(0,r.jsx)(eZ,{bot:e})},e.name))})}function eZ({bot:e}){return e.name===J.THURSDAY.name?(0,r.jsx)(K.ThursdayMark,{size:18,className:"shrink-0"}):(0,r.jsx)(D.BotMark,{size:18,seed:e.name,color:e.icon?.color,shape:e.icon?.shape,outline:e.icon?.outline,paint:e.icon?.paint,notify:!1,className:"shrink-0"})}let eQ=(0,w.memo)(function(){let e=(0,G.useBotThreads)(),t=ec(),{data:n}=(0,Y.useServerRoute)(b.queryKey.bot),[s,a]=(0,w.useState)(!1),[l,i]=(0,w.useState)(null),o=s&&null!==l;(0,w.useEffect)(()=>(G.roomOpen.set(s?o?"thread":"list":null),()=>G.roomOpen.set(null)),[s,o]);let[u,c]=(0,w.useState)({}),[d,h]=(0,w.useState)("now"),p=(0,w.useRef)(0),m=[...e].reverse(),f=m.filter(e=>"finished"!==(0,O.standOf)(e)),g=s&&"history"===d,x=(0,V.useServerPages)({key:(e,t)=>{if(!g)return null;if(0===e)return b.queryKey.threadHistory(null);let n=t?.at(-1);return n?b.queryKey.threadHistory((0,W.toDate)(n.updatedAt).toISOString()):null},size:L.PAGE_SIZE}),{refresh:y}=x,k=(0,w.useRef)(!1);k.current=x.items.length>0,(0,w.useEffect)(()=>{g&&k.current&&y()},[g,y]);let v=(0,w.useMemo)(()=>x.items.filter(e=>"done"===e.status||"cancelled"===e.status).map(e=>(0,G.threadFromRow)(e,n)),[x.items,n]),S=l?m.find(e=>e.id===l)??v.find(e=>e.id===l)??null:null,{data:N,isLoading:T}=(0,Y.useServerRoute)(l?b.queryKey.thread(l):null),E=(0,w.useMemo)(()=>N&&N.id===l?(0,G.threadFromRow)(N,n):null,[N,l,n])??(S?.lines.length?S:null),[A,M]=function(){let[e,t]=(0,w.useState)(null),n=(0,w.useRef)(null);return(0,w.useEffect)(()=>()=>{n.current&&clearTimeout(n.current)},[]),[e,(0,w.useCallback)(e=>{t(e),n.current&&clearTimeout(n.current),n.current=setTimeout(()=>{n.current=null,t(null)},3400)},[])]}(),_=(0,w.useMemo)(()=>A??function(e,t){for(let n of e){if("working"!==n.status)continue;let e=n.room.deliveries.find(e=>!e.delivered&&n.room.participants.some(t=>t.bot===e.bot&&"running"===t.state));if(e)return{at:e.bot,from:t(e.bot),to:[],text:"Step-in · waits for its next step",shine:!0}}return null}(e,e=>({name:e,icon:n?.find(t=>t.name===e)?.icon??null})),[A,e,n]),{crew:C,more:I}=(0,w.useMemo)(()=>(function(e,t){let n=new Set(t.filter(O.isUnread).map(e=>e.bot.name)),r=function(e){let t=new Map;for(let r of e){let e=new Set(r.room.questions.map(e=>e.bot));for(let s of("waiting"!==r.status||e.size||e.add(r.bot.name),r.room.participants)){var n;if(e.has(s.bot)){t.set(s.bot,{waiting:!0,word:null});continue}if(t.get(s.bot)?.waiting||"running"!==s.state&&"queued"!==s.state)continue;let a="running"===s.state?r.lines.findLast(e=>e.bot.name===s.bot&&"user"!==e.kind&&"note"!==e.kind&&"stop"!==e.kind):null;t.set(s.bot,{waiting:!1,word:(n=a??null,n?.kind==="tool"||n?.kind==="say"?e$((0,J.stepOf)(n)):null)})}}return t}(t),s=new Map;for(let t of e??[])s.set(t.name,{name:t.name,icon:t.icon,awake:r.has(t.name),waiting:r.get(t.name)?.waiting??!1,unread:n.has(t.name),word:r.get(t.name)?.word??null});for(let[e,t]of r)s.has(e)||s.set(e,{name:e,icon:null,awake:!0,waiting:t.waiting,unread:n.has(e),word:t.word});let a=[...s.values()];if(!a.length)return{crew:eK.slice(0,3),more:0};for(let e of eK){if(a.length>=3)break;s.has(e.name)||a.push(e)}let l=e=>e.waiting?0:e.awake?1:e.unread?2:e.standIn?4:3,i=a.map((e,t)=>({face:e,at:t})).sort((e,t)=>l(e.face)-l(t.face)||e.at-t.at).map(e=>e.face);return{crew:i.slice(0,14),more:Math.max(0,i.length-14)}})(n,e),[n,e]),[R,D]=function(){let[e,t]=(0,w.useState)(new Map),n=(0,w.useRef)(new Map),r=(0,w.useRef)(0);return(0,w.useEffect)(()=>{let e=n.current;return()=>{for(let t of e.values())clearTimeout(t);e.clear()}},[]),[e,(0,w.useCallback)(e=>{e.length&&t(s=>{let a=new Map(s);for(let{bot:s,gesture:l}of e){r.current+=1,a.set(s,{gesture:l,id:r.current});let e=n.current.get(s);e&&clearTimeout(e),n.current.set(s,setTimeout(()=>{n.current.delete(s),t(e=>{let t=new Map(e);return t.delete(s),t})},$[l]+1400*("wave"===l)))}return a})},[])]}(),P=(0,w.useRef)(!1);(0,w.useEffect)(()=>{!P.current&&n?.length&&(P.current=!0,D(n.map(e=>({bot:e.name,gesture:"wave"}))))},[n,D]);let F=(0,w.useRef)(null),B=(0,w.useRef)(new Map),q=(0,w.useRef)(new Set);(0,w.useEffect)(()=>{if(!G.botThreads.primed())return;let t=F.current;F.current=new Map(e.map(e=>[e.id,e.status]));let n=B.current;B.current=function(e){let t=new Map;for(let n of e)for(let e of n.room.participants)t.set(`${n.id}
2
+ ${e.bot}`,e.state);return t}(e);let r=q.current;if(q.current=new Set(e.flatMap(e=>e.lines.map(e=>e.id))),!t)return;let s=null,a=[];for(let l of e){let{moments:e,gestures:i}=function(e,t,n,r,s){let a=e.bot,l=[];if(!t)return"working"===e.status?{moments:[{rank:1,at:a.name,from:J.THURSDAY,to:[a],text:`took on “${e$(e.label)}”`}],gestures:[{bot:a.name,gesture:"took"}]}:{moments:[],gestures:[]};let i=[],o=e.lines.filter(e=>!n.has(e.id)),u=new Map;for(let e of o)"user"===e.kind?(e.steppedIn?l.push({bot:e.bot.name,gesture:"read"}):l.push({bot:e.bot.name,gesture:"took"}),i.push(e.steppedIn?{rank:1,at:e.bot.name,from:e.bot,to:[],text:"Step-in · read"}:{rank:1,at:e.bot.name,from:J.THURSDAY,to:[e.bot],text:e$(e.text)})):"stop"===e.kind?(l.push({bot:e.bot.name,gesture:"stop"}),i.push({rank:3,at:e.bot.name,from:e.bot,to:[],sign:"stopped",text:(0,J.leadOf)(e.text)})):"ask"===e.kind&&e.to?.name===J.THURSDAY.name?(e.question&&l.push({bot:e.bot.name,gesture:"ask"}),i.push(e.question?{rank:4,at:e.bot.name,from:e.bot,to:[],sign:"question",text:`asks you \xb7 ${e$(e.text)}`}:{rank:2,at:e.bot.name,from:e.bot,to:[J.THURSDAY],text:e$(e.text)})):"ask"===e.kind&&e.to&&u.set(e.bot.name,[...u.get(e.bot.name)??[],e]);for(let[e,t]of u){let n=new Map;for(let e of t)e.to&&n.set(e.to.name,e.to);for(let t of(l.push({bot:e,gesture:"give"}),n.values()))l.push({bot:t.name,gesture:"take"});i.push({rank:2,at:e,from:t[0].bot,to:[...n.values()],text:1===t.length?e$(t[0].text):`sent ${t.length} parts out`})}for(let t of e.roster){let n=`${e.id}
3
+ ${t.name}`;t.name===a.name||"running"!==r.get(n)||"done"!==s.get(n)||o.some(e=>e.bot.name===t.name&&("ask"===e.kind||"say"===e.kind))||(l.push({bot:t.name,gesture:"done"}),i.push({rank:1,at:t.name,from:t,to:[],sign:"done",text:"finished its part"}))}if(t===e.status)return{moments:i,gestures:l};let c=e$(e.label);return"cancelled"===e.status?(l.push({bot:a.name,gesture:"stop"}),i.push({rank:3,at:a.name,from:a,to:[],sign:"cancelled",text:`stopped \xb7 ${c}`})):"done"===e.status?l.push({bot:a.name,gesture:"done"}):"working"===e.status?o.some(e=>"user"===e.kind)||(l.push({bot:a.name,gesture:"took"}),i.push({rank:1,at:a.name,from:a,to:[],sign:"resumed",text:"picked it back up"})):(0,O.isAppStop)(e.ask)&&!i.some(e=>"question"===e.sign||"stopped"===e.sign)&&(l.push({bot:a.name,gesture:"stop"}),i.push({rank:3,at:a.name,from:a,to:[],sign:"stopped",text:"paused"})),{moments:i,gestures:l}}(l,t.get(l.id),r,n,B.current);for(let t of(a.push(...i),e))(!s||t.rank>=s.rank)&&(s=t)}s&&M(s),D(a)},[e,M,D]),(0,G.useSeenOnDetail)(s?E:null),(0,z.useAppEvent)({showThread:e=>{i(e.threadId),a(!0)}}),(0,w.useEffect)(()=>G.roomOpens.subscribe(e=>{i(e),h("now"),a(!0)}),[]);let K=e.filter(e=>"working"===e.status).length,X=m.filter(O.needsThreadReply).length,Z=(0,w.useMemo)(()=>C.map(e=>({...e,word:null})),[C]),Q=()=>{a(!1),i(null),h("now"),p.current=0},ee=(0,G.useCallWaits)();(0,H.useEscape)(s,()=>o?i(null):Q());let et=(0,w.useRef)(Q);et.current=Q,(0,w.useEffect)(()=>G.writeLine.subscribe(()=>et.current()),[]);let en=(0,w.useRef)(null);return(0,w.useEffect)(()=>{if(!o)return;let e=e=>{if("/"!==e.key||e.metaKey||e.ctrlKey||e.altKey||!(0,H.windowKey)(e))return;let t=en.current?.querySelector("textarea:not(:disabled)");t&&(e.preventDefault(),t.focus())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[o]),(0,r.jsx)("div",{className:(0,j.cn)("pointer-events-none flex min-h-0 items-end justify-end",s?"col-span-3 row-start-1 self-stretch":"col-span-3 row-start-2"),children:s?(0,r.jsxs)("div",{ref:en,"data-room":!0,className:"pointer-events-auto flex max-h-full w-160 max-w-full animate-in flex-col overflow-hidden rounded-3xl bg-background/75 shadow-2xl shadow-black/6 ring-1 ring-border/50 backdrop-blur-xl fade-in slide-in-from-bottom-1 duration-200",children:[ee&&(0,r.jsx)(e0,{onBack:Q}),!E&&l&&T?(0,r.jsx)(ef,{onBack:()=>i(null),onClose:Q}):E?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(J.ThreadHeader,{thread:E,onBack:()=>i(null),onClose:Q}),(0,r.jsx)(J.Conversation,{thread:E,tab:u[E.id]??null,onTab:e=>c(t=>({...t,[E.id]:e})),className:"min-h-0 flex-1"}),(0,r.jsx)(U.ThreadReply,{thread:{id:E.id,label:E.label,bot:E.bot.name,ask:E.ask,room:E.room},status:"working"===E.status?"running":E.status,faces:E.roster,to:u[E.id]??E.bot.name,className:"mx-3 mb-2 shrink-0"})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(ed,{tab:d,current:f.length,onTab:h,onClose:Q}),"history"===d?(0,r.jsx)(em,{pages:x,threads:v,scroll:p,onPick:i}):f.length?(0,r.jsx)(ey,{threads:f,onPick:i}):m.length?(0,r.jsx)(ep,{}):(0,r.jsx)(eh,{bots:n}),(0,r.jsx)(eq,{crew:Z,more:I,bubble:null,playing:R,label:"Fold the room away",onClick:Q,onWrite:G.writeLine.open,side:_?(0,r.jsx)(eG,{handoff:_}):(0,r.jsx)(eU,{busy:K,pending:X,grown:!0})})]})]}):(0,r.jsx)(eB,{crew:C,more:I,bubble:_,playing:R,rows:t,count:e.length,busy:K,pending:X,onPick:e=>{i(e),a(!0)},onOpen:()=>a(!0)})})});function e0({onBack:e}){return(0,r.jsxs)("button",{type:"button",onClick:e,className:"group/waits flex shrink-0 items-center gap-2.5 bg-brand/8 py-2.5 pr-3 pl-4 text-left outline-none transition-colors hover:bg-brand/12 focus-visible:ring-3 focus-visible:ring-ring/50 dark:bg-brand/14 dark:hover:bg-brand/20",children:[(0,r.jsx)(K.ThursdayMark,{size:22,className:"shrink-0"}),(0,r.jsxs)("span",{className:"min-w-0 flex-1 text-[13px] leading-5",children:[(0,r.jsx)("span",{className:"font-medium",children:"Thursday is still on the line"}),(0,r.jsxs)("span",{className:"text-muted-foreground",children:[" ","— in writing. She is here when this closes."]})]}),(0,r.jsxs)("span",{className:"flex h-7 shrink-0 items-center gap-1 rounded-full px-2.5 font-medium text-[12.5px] text-brand ring-1 ring-brand/40 transition-colors group-hover/waits:bg-brand/10",children:["Back to her",(0,r.jsx)(F,{className:"size-3.5"})]})]})}var e1=e.i(222055),e2=e.i(6799),e5=e.i(393080),e3=e.i(389082),e4=e.i(463625);function e6(e){let t=e??e4.BOT_SEEDS.map(e=>({name:e.name}));t.length&&(0,e3.createSeedBotsAction)(t).then(e5.unwrapResult).then(()=>(0,Y.revalidate)(b.queryKey.bot)).catch(e=>e2.toast.add({type:"warning",title:"Could not set up the bots",description:(0,j.errorToString)(e)}))}e.s(["installSeedBots",0,e6],747985);var e7=e.i(616816),e9=e.i(992112);let e8={name:"app-window-mac",size:24,node:[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"M6 8h.01",key:"x9i8wu"}],["path",{d:"M10 8h.01",key:"1r9ogq"}],["path",{d:"M14 8h.01",key:"1primd"}]]};e8.node;let te=(0,l.default)(e8);var tt=e.i(375775);let tn="thursday.install-asked",tr=null,ts=new Set,ta=()=>{for(let e of ts)e()};function tl(){return(0,w.useSyncExternalStore)(e=>(ts.add(e),()=>ts.delete(e)),()=>tr,()=>null)}async function ti(){let e=tr;e&&(tr=null,ta(),await e.prompt(),await e.userChoice.catch(()=>void 0))}function to({hidden:e}){let t=null!==tl(),[n,s]=(0,w.useState)(!0);if((0,w.useEffect)(()=>{try{s(null!==window.localStorage.getItem(tn))}catch{}},[]),!t||n||e)return null;let a=()=>{s(!0);try{window.localStorage.setItem(tn,"1")}catch{}};return(0,r.jsxs)("div",{className:"flex w-76 animate-in items-start gap-3 rounded-2xl bg-background p-3.5 shadow-[0_22px_44px_-20px_rgb(0_0_0/0.22)] ring-1 ring-border duration-300 fade-in slide-in-from-top-1",children:[(0,r.jsx)("span",{className:"grid size-8 shrink-0 place-items-center rounded-lg bg-muted",children:(0,r.jsx)(te,{className:"size-4"})}),(0,r.jsxs)("div",{className:"min-w-0 flex-1 space-y-2.5",children:[(0,r.jsxs)("p",{className:"text-[13px] leading-snug",children:[(0,r.jsx)("span",{className:"block font-medium",children:"Keep her in her own window"}),(0,r.jsx)("span",{className:"block text-muted-foreground",children:"Install Thursday as an app, with its own icon. A closed tab no longer takes her calls with it."})]}),(0,r.jsxs)("div",{className:"flex gap-1.5",children:[(0,r.jsx)(k.Button,{size:"sm",className:"rounded-full px-3.5",onClick:()=>{a(),ti()},children:"Install"}),(0,r.jsx)(k.Button,{size:"sm",variant:"ghost",className:"rounded-full px-3 text-muted-foreground",onClick:a,children:"Not now"})]})]})]})}function tu(){return null===tl()?null:(0,r.jsx)("button",{type:"button",onClick:()=>void ti(),className:"group/install flex w-full items-start gap-2.5 rounded-xl px-3 py-2.5 text-left outline-none transition-colors hover:bg-muted focus-visible:ring-3 focus-visible:ring-ring/50",children:(0,r.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,r.jsxs)("span",{className:"flex items-center gap-1 text-sm font-medium",children:["Install app",(0,r.jsx)(tt.ArrowUpRight,{className:"ml-auto size-3.5 text-muted-foreground transition-transform group-hover/install:translate-x-px group-hover/install:-translate-y-px"})]}),(0,r.jsx)("span",{className:"block text-xs leading-snug text-muted-foreground",children:"Its own window, apart from your tabs"})]})})}window.addEventListener("beforeinstallprompt",e=>{e.preventDefault(),tr=e,ta()}),window.addEventListener("appinstalled",()=>{tr=null,ta()});let tc={name:"aperture",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m14.31 8 5.74 9.94",key:"1y6ab4"}],["path",{d:"M9.69 8h11.48",key:"1wxppr"}],["path",{d:"m7.38 12 5.74-9.94",key:"1grp0k"}],["path",{d:"M9.69 16 3.95 6.06",key:"libnyf"}],["path",{d:"M14.31 16H2.83",key:"x5fava"}],["path",{d:"m16.62 12-5.74 9.94",key:"1vwawt"}]]};tc.node;let td=(0,l.default)(tc);var th=e.i(758925),tp=e.i(218964),tm=e.i(97923);let tf={name:"monitor",size:24,node:[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]};tf.node;let tg=(0,l.default)(tf),tx={name:"moon",size:24,node:[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]};tx.node;let ty=(0,l.default)(tx),tw={name:"smartphone",size:24,node:[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12 18h.01",key:"mhygvu"}]]};tw.node;let tb=(0,l.default)(tw),tk={name:"sun",size:24,node:[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]};tk.node;let tv=(0,l.default)(tk);var tj=e.i(770703),tS=e.i(630374),tN=e.i(421429),tT=e.i(895836);function tE(){let{data:e}=(0,Y.useServerRoute)(b.queryKey.bot);return e&&0===e.length?"waiting":null}function tA(){let{data:e}=(0,Y.useServerRoute)(b.queryKey.threads);return{owed:(e??[]).filter(e=>(0,O.needsThreadReply)(e)||(0,O.isUnread)(e)).length}}function tM(){let{data:e,isLoading:t}=(0,Y.useServerRoute)(b.queryKey.config);if(t)return null;let n=t=>(0,e9.isConfigSet)(e,t);return e9.CONFIG_GROUPS.some(e=>"keys"===e.section&&!(0,e9.groupSatisfied)(e,n))?"waiting":null}let t_=e9.CONFIG_GROUPS.filter(e=>"models"===e.section).flatMap(e=>e.entries.filter(e=>e.kind).map(e=>e.key));function tC(){let{data:e,isLoading:t}=(0,Y.useServerRoute)(b.queryKey.config);return t||!e?null:t_.every(t=>!(0,e9.isConfigSet)(e,t))?"waiting":null}function tL(){let{data:e}=(0,Y.useServerRoute)(b.queryKey.mcp);return e?.some(e=>e.lastError)?"red":null}var tI=e.i(991322),tR=e.i(852116);function tO(){let{data:e}=(0,Y.useServerRoute)(b.queryKey.reach);return e?.channels.some(e=>e.refused)?"red":null}var tD=e.i(589128);let tP=e.i(569644).FolderOpen;var tF=e.i(922521),tz=e.i(734080),t$=e.i(989409),tB=tT;let tq=(e,t=tB.SettingSkeleton)=>(0,tj.default)(e,{loading:()=>(0,r.jsx)(t,{})}),tU=tq(()=>e.A(48663).then(e=>({default:e.MemorySetting}))),tK=tq(()=>e.A(959484).then(e=>({default:e.BotSetting})),tB.SettingPanesSkeleton),tH=tq(()=>e.A(954404).then(e=>({default:e.ThreadSetting}))),tW=tq(()=>e.A(483782).then(e=>({default:e.RoutineSetting}))),tV=tq(()=>e.A(711454).then(e=>({default:e.ModelsSetting}))),tY=tq(()=>e.A(711454).then(e=>({default:e.KeysSetting}))),tG=tq(()=>e.A(711454).then(e=>({default:e.PhoneSetting}))),tJ=tq(()=>e.A(17613).then(e=>({default:e.ThursdaySetting}))),tX=tq(()=>e.A(706108).then(e=>({default:e.ArtifactSetting})),tB.SettingPanesSkeleton),tZ=tq(()=>e.A(194379).then(e=>({default:e.WorkspaceSetting})),tB.SettingPanesSkeleton),tQ=tq(()=>e.A(832663).then(e=>({default:e.SkillsSetting}))),t0=tq(()=>e.A(959108).then(e=>({default:e.McpSetting}))),t1=tq(()=>e.A(663973).then(e=>({default:e.SignInsSetting})));function t2({tabs:e}){let[t,n]=(0,w.useState)(0),s=e[t].Component;return(0,r.jsxs)("div",{className:"flex h-full min-h-0 flex-col",children:[(0,r.jsx)("div",{className:"shrink-0 px-8 pt-5",children:(0,r.jsx)(tB.SettingColumn,{children:(0,r.jsx)(tN.Segmented,{view:!0,"aria-label":"Screens of this section",options:e.map((e,t)=>({value:String(t),label:e.label})),value:String(t),onChange:e=>n(Number(e))})})}),(0,r.jsx)("div",{className:"min-h-0 flex-1",children:(0,r.jsx)(s,{})})]})}let t5=[{label:"Finished",Component:tX},{label:"All files",Component:tZ}],t3=["call","work","app"],t4=[{id:"thursday",label:"Thursday",group:"call",hint:"Her face, models, and how a call starts",icon:K.ThursdayMark,Component:tJ},{id:"memory",label:"Memory",group:"call",hint:"What Thursday remembers about you",icon:tR.MemoryMark,Component:tU},{id:"bot",label:"Bots",group:"work",hint:"Who Thursday hands work to",icon:D.BotsMark,Component:tK,Badge:function(){return tE()?(0,r.jsx)(tT.NavBadge,{tone:"waiting"}):null}},{id:"threads",label:"Threads",group:"work",hint:"Work the bots were handed",icon:tp.ListChecks,Component:tH,Badge:function(){return(0,r.jsx)(tT.NavBadge,{tone:"waiting",count:tA().owed})}},{id:"routines",label:"Routines",group:"work",hint:"Work that starts by itself, on a schedule",icon:eu.RoutineMark,Component:tW},{id:"files",label:"Files",group:"work",hint:"What the bots finished, and everything else they wrote",icon:tP,Component:()=>(0,r.jsx)(t2,{tabs:t5})},{id:"skills",label:"Skills",group:"work",hint:"Instructions the bots load on demand",icon:tD.SkillsMark,Component:tQ},{id:"mcp",label:"Connectors",group:"work",hint:"Apps the bots can use, from MCP servers",icon:tI.McpMark,Component:t0,Badge:function(){return tL()?(0,r.jsx)(tT.NavBadge,{tone:"red"}):null}},{id:"signins",label:"Sign-ins",group:"work",hint:"The sites you signed in to, and the bots that may use each",icon:tm.LogIn,Component:t1},{id:"models",label:"Models",group:"app",hint:"What bots think with, and what they draw, film and speak with",icon:td,Component:tV,Badge:function(){return tC()?(0,r.jsx)(tT.NavBadge,{tone:"waiting"}):null}},{id:"keys",label:"API keys",group:"app",hint:"The accounts the app runs on",icon:th.KeyRound,Component:tY,Badge:function(){return tM()?(0,r.jsx)(tT.NavBadge,{tone:"waiting"}):null}},{id:"phone",label:"Phone",group:"app",hint:"Write to Thursday from a chat app",icon:tb,Component:tG,Badge:function(){return tO()?(0,r.jsx)(tT.NavBadge,{tone:"red"}):null}}],t6={system:{label:"System",icon:tg},light:{label:"Light",icon:tv},dark:{label:"Dark",icon:ty}};function t7(){let e=(0,tF.useTheme)();return(0,r.jsx)(tN.Segmented,{"aria-label":"Theme",className:"w-full gap-0.5 *:flex-1 *:py-1.5",options:tz.THEMES.map(e=>{let{label:t,icon:n}=t6[e];return{value:e,title:t,label:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n,{className:"size-3.5"}),(0,r.jsx)("span",{className:"sr-only",children:t})]})}}),value:e,onChange:tF.setTheme})}function t9({children:e}){let t=(0,t$.useSettingsStore)(e=>e.open),n=(0,t$.useSettingsStore)(e=>e.section),s=(0,t$.useSettingsStore)(e=>e.show),a=(0,t$.useSettingsStore)(e=>e.hide),l=(0,t$.useSettingsStore)(e=>e.pick),i=(0,w.useRef)(null),o=t4.find(e=>e.id===n)??t4[0];return(0,w.useEffect)(()=>{if(!t)return;let e=e=>{if(!e.metaKey&&!e.ctrlKey)return;if("k"===e.key){let t=i.current?.querySelector("[data-setting-filter]");if(!t)return;e.preventDefault(),t.focus(),t.select();return}let t=Number(e.key);Number.isInteger(t)&&t>=1&&t<=t4.length&&(e.preventDefault(),l(t4[t-1].id))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[t,l]),(0,r.jsxs)(tS.Dialog,{open:t,onOpenChange:e=>e?s():a(),children:[e&&(0,r.jsx)(tS.DialogTrigger,{render:e}),(0,r.jsxs)(tS.DialogContent,{className:"block h-[min(52rem,calc(100vh-3rem))] overflow-hidden p-0 sm:max-w-[min(80rem,calc(100vw-3rem))]",children:[(0,r.jsx)(tS.DialogTitle,{className:"sr-only",children:"Settings"}),(0,r.jsxs)("div",{className:"flex h-full min-h-0",children:[(0,r.jsxs)("nav",{"aria-label":"Settings sections",onKeyDown:e=>{let t,r="ArrowDown"===e.key?1:"ArrowUp"===e.key?-1:0;if(!r)return;e.preventDefault();let s=(t=(t4.findIndex(e=>e.id===n)+r+t4.length)%t4.length,t4[t].id);l(s),e.currentTarget.querySelector(`[data-section="${s}"]`)?.focus()},className:"flex w-52 shrink-0 flex-col gap-0.5 border-r border-border/60 bg-muted/30 p-3",children:[t3.map(e=>(0,r.jsxs)(w.Fragment,{children:[(0,r.jsx)("span",{className:"px-3 pt-3 pb-1 font-mono text-[10px] text-muted-foreground/60",children:e}),t4.filter(t=>t.group===e).map(e=>(0,r.jsxs)(k.Button,{"data-section":e.id,onClick:()=>l(e.id),variant:e.id===n?"secondary":"ghost",className:(0,j.cn)("justify-start",e.id===n?"text-foreground bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)]":"text-muted-foreground"),children:[(0,r.jsx)(e.icon,{className:(0,j.cn)("mr-1")}),(0,r.jsx)("span",{className:"truncate text-sm",children:e.label}),e.Badge&&(0,r.jsx)("span",{className:"ml-auto flex items-center",children:(0,r.jsx)(e.Badge,{})})]},e.id))]},e)),(0,r.jsxs)("div",{className:"mt-auto flex flex-col gap-2 pt-3",children:[(0,r.jsx)(tu,{}),(0,r.jsx)("div",{className:"px-1",children:(0,r.jsx)(t7,{})})]})]}),(0,r.jsxs)("div",{className:"flex min-h-0 min-w-0 flex-1 flex-col",children:[(0,r.jsx)("div",{className:"shrink-0 px-8 pt-10",children:(0,r.jsxs)(tB.SettingColumn,{className:"animate-in space-y-0.5 fade-in slide-in-from-bottom-1 duration-300",children:[(0,r.jsx)("p",{className:"truncate text-2xl font-semibold",children:o.label}),(0,r.jsx)("p",{className:"truncate text-xs text-muted-foreground",children:o.hint})]},o.id)}),(0,r.jsx)("div",{ref:i,className:"min-h-0 min-w-0 flex-1",children:(0,r.jsx)(o.Component,{})})]})]})]})]})}function t8(e){return e.includes("red")?"red":e.includes("waiting")?"waiting":null}function ne(){let e=tE(),t=tA().owed>0?"waiting":null,n=tL(),r=tM();return{bot:e,threads:t,mcp:n,keys:r,models:tC(),phone:tO()}}var nt=e.i(762074),nn=e.i(218080);function nr(){let e=performance.now()/1e3;return Array.from({length:nn.SPECTRUM_BANDS},(t,n)=>.18+.16*Math.sin(e*(5+.9*n)+1.7*n)**2)}e.s(["silentVoice",0,nr],234916);var ns=e.i(671228),na=e.i(67045),nl=e.i(297825),ni=e.i(670097),no=e.i(640262),nu=e.i(213377),nc=e.i(95187);let nd=(0,nc.createServerReference)("7f0b0aaf0ea75e3fa28aad8ee7f5fdc9bc3d59a298",nc.callServer,void 0,nc.findSourceMapURL,"acceptThreadRelaysAction");var nh=e.i(609856);let np=new Set,nm=e=>new Set(ny(e).filter(e=>"question"!==e.kind).map(e=>e.key)),nf={message:"says",question:"asks",report:"reports",interrupted:"was cut off"},ng={question:0,stopped:1,done:2,progress:3};function nx(e){let t=e.trim();if(t.length<=L.CALL_RELAY.chars)return t;let n=t.slice(0,L.CALL_RELAY.chars),r=Math.max(n.lastIndexOf("\n\n"),n.lastIndexOf(". "),n.lastIndexOf(".\n"),n.lastIndexOf("。")),s=(r>L.CALL_RELAY.chars/3?n.slice(0,r+1):n).trim();return`${s}
4
+ [The message goes on; the rest is in its thread on screen.]`}function ny(e){let t=[];for(let n of e){let{relays:e,questions:r}=n.room,s=(0,W.toDate)(n.updatedAt).getTime(),a=(e,t)=>`[${e} → Thursday, thread "${n.label}" (${n.id}), ${t}.]`,l=(e,t)=>({kind:"relay",name:n.label,line:t,done:!0,bot:e});for(let s of r){let r=s.options?.length?` Options: ${s.options.join(" / ")}.`:"";t.push({rank:ng.question,key:`question:${s.id}`,kind:"question",line:`${a(s.bot,"question")}
5
+ ${nx(s.text)}${r}`,relayIds:e.filter(e=>e.messageId===s.id).map(e=>e.id),threadId:n.id,text:s.text,show:l(s.bot,`${s.bot} asks`)})}let i=e.filter(e=>!r.some(t=>t.id===e.messageId)),o="done"===n.status,u="waiting"===n.status&&(0,O.isAppStop)(n.ask);if(o||u){if(n.seen)continue;let e=u?"stopped":"done",r=(u?n.ask?.question:null)??n.outcome??"",o="stopped"===e?`It stopped before finishing. Where it got to: ${nx(r)}`:`Done. Its answer: ${nx(r)}`;t.push({rank:ng[e],key:`${e}:${n.id}@${s}`,kind:"ending",line:`${a(n.bot,e)}
6
+ ${o}`,relayIds:i.map(e=>e.id),threadId:n.id,text:r,show:l(n.bot,"stopped"===e?`${n.bot} stopped`:`${n.bot} finished`)});continue}for(let e of i)t.push({rank:ng.progress,key:`progress:${e.id}`,kind:"progress",line:`${a(e.bot,e.kind)}
7
+ ${nx(e.text)}`,relayIds:[e.id],threadId:n.id,text:e.text,show:l(e.bot,`${e.bot} ${nf[e.kind]}`)})}return t.sort((e,t)=>e.rank-t.rank)}function nw(e){return"answered"===e.kind?`The user sent a message on screen to ${e.recipient??"the coordinator"} in thread "${e.label}" (${e.id})${e.replyTo?`, replying to ${e.replyTo}`:""}: ${e.answer}. It has reached that participant.`:"stopped"===e.kind?`The user stopped thread "${e.label}" on screen. It is no longer running.`:`The user put ${1===e.paths.length?"a file":`${e.paths.length} files`} down on screen, kept on this computer at ${e.paths.join(", ")}.`}let nb=(0,nc.createServerReference)("7f329b9bfb0374803660ba436c14daad68a72ca791",nc.callServer,void 0,nc.findSourceMapURL,"endCallAction"),nk=(0,nc.createServerReference)("7fda7de020239c1dbc7480f7709ee92f621e08bb93",nc.callServer,void 0,nc.findSourceMapURL,"openTextCallAction"),nv=(0,nc.createServerReference)("7ff42eb07f5c5852c4c10c7343793f9d4d17fbe808",nc.callServer,void 0,nc.findSourceMapURL,"tellTextCallAction");var nj=e.i(561540);let nS=new no.DefaultChatTransport({api:b.queryKey.textCall}),nN=()=>na.useThursdayStore.getState().textModel,nT=e=>({type:`data-${ns.TEXT_CALL_NOTE}`,id:e.id,data:e}),nE=e=>e.type===`data-${ns.TEXT_CALL_NOTE}`?e.data:null,nA=e=>e.flatMap(e=>e.parts.flatMap(e=>{let t=nE(e);return t?[t]:[]}));async function nM(e,t,n,r){try{let s=await fetch(b.queryKey.toolCall,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({toolCallId:t.id,callId:e,...n,name:t.name,input:t.arguments?JSON.parse(t.arguments):{}}),signal:r}),{output:a}=(0,e5.unwrapResult)(await s.json());return"string"==typeof a?a:JSON.stringify(a??null)}catch(e){return`Error: ${(0,j.errorToString)(e)}`}}var n_=e.i(506316),nC=e.i(807038),nL=e.i(83928),nI=e.i(616172),nR=e.i(621285);function nO(){return(0,r.jsx)(nR.FileViewer,{children:(0,r.jsx)(nq,{})})}let nD={2:"grid-cols-2",3:"grid-cols-3",4:"grid-cols-4"},nP="thursday.corner-dismissed";function nF(){try{let e=JSON.parse(window.localStorage.getItem(nP)??"[]");return Array.isArray(e)?e:[]}catch{return[]}}function nz(e){try{let t=[...e,...nF().filter(t=>!e.includes(t))].slice(0,50);window.localStorage.setItem(nP,JSON.stringify(t))}catch{}}function n$(){"u"<typeof Notification||"default"===Notification.permission&&Notification.requestPermission().catch(()=>void 0)}function nB(e){let t=(0,nI.pathsIn)(e.outcome??""),n=t.findIndex(nI.opensOnFinish);return{threadId:e.id,label:e.label,bot:e.bot.name,words:(0,j.plainText)(e.outcome??"").slice(0,L.FINISHED_NOTICE.words),paths:n>0?[t[n],...t.filter((e,t)=>t!==n)]:t}}function nq(){let[e,t]=(0,w.useState)([]),{data:n}=(0,Y.useServerRoute)(b.queryKey.bot),s=(0,G.useBotThreads)(),a=(0,nR.useOpenFile)();(0,w.useEffect)(()=>G.fileOpens.subscribe(e=>{a(e)}),[a]),(0,z.useAppEvent)({showFile:e=>a(e.paths[0],e.paths.filter(e=>"image"===(0,nI.viewKindOf)(e)),!0),finished:e=>{!function(e,t,n){if(!("u"<typeof Notification)&&"granted"===Notification.permission&&!("visible"===document.visibilityState&&document.hasFocus()))try{let r=new Notification(t,{body:n,tag:e,icon:"/icon.svg"});r.onclick=()=>{window.focus(),r.close()}}catch{}}(e.threadId,e.label,e.words),t(t=>[{threadId:e.threadId,label:e.label,bot:e.bot,words:e.words,paths:e.paths},...t.filter(t=>t.threadId!==e.threadId)].slice(0,L.FINISHED_NOTICE.rows))}});let l=(0,w.useRef)(new Set);(0,w.useEffect)(()=>{if(!G.botThreads.primed())return;for(let e of s)("done"===e.status||"cancelled"===e.status)&&l.current.add(e.id);let e=new Set(nF()),n=s.filter(t=>(0,O.isUnread)(t)&&!e.has(t.id)).sort((e,t)=>(0,W.toDate)(t.updatedAt).getTime()-(0,W.toDate)(e.updatedAt).getTime()),r=new Set(n.map(e=>e.id));t(e=>{let t=e.filter(e=>!l.current.has(e.threadId)||r.has(e.threadId)),s=[...n.filter(e=>!t.some(t=>t.threadId===e.id)).map(nB),...t].slice(0,L.FINISHED_NOTICE.rows);return s.length===e.length&&s.every((t,n)=>t.threadId===e[n].threadId)?e:s})},[s]);let i=e=>{nz([e]),t(t=>t.filter(t=>t.threadId!==e))};if(!e.length)return null;let o=e.slice(0,L.FINISHED_NOTICE.shown),u=e.slice(L.FINISHED_NOTICE.shown),c=e=>{nz(e),t(t=>t.filter(t=>!e.includes(t.threadId))),(0,n_.markSeenAction)(e).then(e5.unwrapResult).then(()=>(0,Y.revalidate)(b.queryKey.threads)).catch(t=>e2.toast.add({type:"error",title:e.length>1?"Could not mark the threads as read":"Could not mark the thread as read",description:(0,j.errorToString)(t)}))};return(0,r.jsx)("div",{className:"pointer-events-none relative col-start-1 row-start-2 w-82 max-w-full",children:(0,r.jsxs)("div",{className:"pointer-events-auto absolute bottom-0 left-0 -m-2 flex max-h-[80vh] w-82 max-w-full flex-col-reverse gap-2 overflow-y-auto p-2 scrollbar-none",children:[o.map(e=>(0,r.jsx)(nK,{row:e,bot:n?.find(t=>t.name===e.bot),onOpen:t=>{t?(a(t,e.paths.filter(e=>"image"===(0,nI.viewKindOf)(e))),c([e.threadId])):(G.roomOpens.open(e.threadId),i(e.threadId))},onClose:()=>i(e.threadId)},e.threadId)),u.map(e=>(0,r.jsx)(nU,{row:e,bot:n?.find(t=>t.name===e.bot),onOpen:()=>{G.roomOpens.open(e.threadId),i(e.threadId)},onClose:()=>i(e.threadId)},e.threadId)),e.length>1&&(0,r.jsxs)("p",{className:"flex shrink-0 items-center gap-2 px-1.5 font-mono text-[10px] text-muted-foreground",children:[(0,r.jsxs)("span",{children:[e.length," new"]}),(0,r.jsx)("span",{className:"flex-1"}),(0,r.jsx)("button",{type:"button",onClick:()=>c(e.map(e=>e.threadId)),className:"rounded-md px-1 font-sans text-[11px] outline-none hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",children:"Clear all"})]})]})})}function nU({row:e,bot:t,onOpen:n,onClose:s}){let a=e.paths.length-3;return(0,r.jsxs)("div",{className:"flex shrink-0 animate-in items-center gap-2 rounded-2xl bg-background py-1.5 pr-1.5 pl-2.5 shadow-black/8 shadow-md ring-1 ring-border fade-in slide-in-from-bottom-1 duration-300",children:[(0,r.jsxs)("button",{type:"button",onClick:n,className:"flex min-w-0 flex-1 items-center gap-2 rounded-lg text-left outline-none focus-visible:ring-3 focus-visible:ring-ring/50",children:[(0,r.jsx)(D.BotMark,{size:18,seed:e.bot,color:t?.icon?.color,shape:t?.icon?.shape,outline:t?.icon?.outline,paint:t?.icon?.paint,notify:!1,className:"shrink-0"}),(0,r.jsx)("span",{className:"min-w-0 flex-1 truncate text-[12.5px] leading-5",children:e.label}),e.paths.length>0&&(0,r.jsxs)("span",{className:"flex shrink-0 items-center gap-1",children:[e.paths.slice(0,3).map(e=>(0,r.jsx)(nL.FileThumb,{path:e,glyph:"size-2.5",className:"size-5 rounded-[6px] ring-1 ring-border"},e)),a>0&&(0,r.jsxs)("span",{className:"font-mono text-[10px] text-muted-foreground",children:["+",a]})]})]}),(0,r.jsx)(k.Button,{variant:"ghost",size:"icon-sm","aria-label":"Dismiss",onClick:s,className:"shrink-0 text-muted-foreground",children:(0,r.jsx)(y.X,{})})]})}function nK({row:e,bot:t,onOpen:n,onClose:s}){let a,l=(a=e.paths.length)<=2?2:3===a?3:4,i=e.paths.slice(0,l),o=e.paths.length-i.length;return(0,r.jsxs)("div",{className:"flex shrink-0 animate-in gap-2.5 rounded-[20px] bg-background py-2.5 pr-2 pl-2.5 shadow-black/10 shadow-lg ring-1 ring-border fade-in slide-in-from-bottom-2 duration-300",children:[(0,r.jsx)(D.BotMark,{size:32,seed:e.bot,color:t?.icon?.color,shape:t?.icon?.shape,outline:t?.icon?.outline,paint:t?.icon?.paint,notify:!1,className:"shrink-0"}),(0,r.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col gap-1.5",children:[(0,r.jsxs)("div",{className:"flex items-start gap-1",children:[(0,r.jsxs)("button",{type:"button",onClick:()=>n(e.paths[0]??null),className:"flex min-w-0 flex-1 flex-col gap-1.5 rounded-lg text-left outline-none focus-visible:ring-3 focus-visible:ring-ring/50",children:[(0,r.jsxs)("span",{className:"flex min-h-8 flex-col justify-center",children:[(0,r.jsx)("span",{className:"truncate font-medium text-[14px] leading-5 tracking-[-0.15px]",children:e.label}),(0,r.jsx)("span",{className:"truncate font-mono text-[10px] leading-[13px] text-muted-foreground",children:e.bot})]}),e.words&&(0,r.jsx)("span",{className:"line-clamp-2 break-keep wrap-anywhere text-[12.5px] leading-normal text-muted-foreground",children:(0,nC.shortenPaths)(e.words)})]}),(0,r.jsx)(k.Button,{variant:"ghost",size:"icon-sm","aria-label":"Dismiss",onClick:s,className:"shrink-0 text-muted-foreground",children:(0,r.jsx)(y.X,{})})]}),i.length>0&&(0,r.jsx)("div",{className:(0,j.cn)("grid gap-1.5 pt-0.5",nD[l]),children:i.map((e,t)=>(0,r.jsxs)("button",{type:"button",title:e.split("/").pop(),onClick:()=>n(e),className:"relative rounded-[10px] outline-none focus-visible:ring-3 focus-visible:ring-ring/50",children:[(0,r.jsx)(nL.FileThumb,{path:e,glyph:2===l?"size-6":"size-4",className:"aspect-square w-full rounded-[10px] ring-1 ring-border"}),o>0&&t===i.length-1&&(0,r.jsxs)("span",{className:"absolute inset-0 grid place-items-center rounded-[10px] bg-black/45 font-medium text-[14px] text-white",children:["+",o]})]},e))})]})]})}e.s(["ArtifactView",0,nO,"FinishedCard",0,nK,"askToNotify",0,n$],895499);let nH={"not-allowed":"The microphone is not allowed","service-not-allowed":"The microphone is not allowed","audio-capture":"There is no microphone","language-not-supported":"This browser cannot listen in that language"},nW=e=>e.toLowerCase().replace(/[^a-z0-9 ]/g,"").split(/\s+/).filter(Boolean),nV=(e,t,n)=>Math.abs(e.length-t.length)<=n&&function(e,t){let n=Array.from({length:e.length+1},(e,t)=>t),r=Array(e.length+1).fill(0);for(let s=1;s<=t.length;s++){r[0]=s;for(let a=1;a<=e.length;a++){let l=n[a-1]+ +(t[s-1]!==e[a-1]);r[a]=Math.min(l,n[a]+1,r[a-1]+1)}[n,r]=[r,n]}return n[e.length]}(e,t)<=n;function nY({enabled:e,onWake:t,phrases:n,lang:r="en-US",tolerance:s=.34,onError:a}){let l=(0,w.useRef)({onWake:t,onError:a,phrases:n,tolerance:s});l.current={onWake:t,onError:a,phrases:n,tolerance:s},(0,w.useEffect)(()=>{if(!e)return;let t=window,n=t.SpeechRecognition??t.webkitSpeechRecognition;if(!n)return void l.current.onError?.("This browser cannot listen for a wake word");let s=new n,a=!0,i=!0,o=null,u=300;s.lang=r,s.continuous=!0,s.interimResults=!0,s.maxAlternatives=3;let c=()=>{if(a){i=!0;try{s.start()}catch{}}};return s.onresult=({resultIndex:e,results:t})=>{if(!a||!i)return;u=300;let{phrases:n,tolerance:r,onWake:o}=l.current,c=n.map(nW).filter(e=>e.length);for(let n=e;n<t.length;n++){let e=t[n];for(let t=0;t<e.length;t++){let n=e[t].transcript,a=nW(n);if(c.some(e=>(function(e,t,n){for(let r=0;r<e.length;r++)if(function e(t,n,r,s,a){if(s===r.length)return!0;if(n>=t.length)return!1;let l=r[s],i=Math.max(1,Math.round(l.length*a));return!!(nV(t[n],l,i)&&e(t,n+1,r,s+1,a))||n+1<t.length&&nV(t[n]+t[n+1],l,i)&&e(t,n+2,r,s+1,a)}(e,r,t,0,n))return!0;return!1})(a,e,r))){i=!1,s.abort(),o(n.trim());return}}}},s.onerror=({error:e})=>{let t=nH[e];t?(a=!1,l.current.onError?.(t)):"network"===e&&(u=Math.min(2*u,1e4))},s.onend=()=>{a&&(o=setTimeout(c,u))},c(),()=>{a=!1,o&&clearTimeout(o),s.onresult=null,s.onerror=null,s.onend=null,s.abort()}},[e,r])}e.s(["useWakeWord",0,nY],656572);let nG={silent:{level:-1},fatal:{level:0},error:{level:0},warn:{level:1},log:{level:2},info:{level:3},success:{level:3},fail:{level:3},ready:{level:3},start:{level:3},box:{level:3},debug:{level:4},trace:{level:5},verbose:{level:1/0}};function nJ(e){if(null===e||"object"!=typeof e)return!1;let t=Object.getPrototypeOf(e);return(null===t||t===Object.prototype||null===Object.getPrototypeOf(t))&&!(Symbol.iterator in e)&&(!(Symbol.toStringTag in e)||"[object Module]"===Object.prototype.toString.call(e))}let nX=!1,nZ=[];class nQ{options;_lastLog;_mockFn;constructor(e={}){const t=e.types||nG;for(const n in this.options=((...e)=>e.reduce((e,t)=>(function e(t,n,r=".",s){if(!nJ(n))return e(t,{},r,s);let a=Object.assign({},n);for(let n in t){if("__proto__"===n||"constructor"===n)continue;let l=t[n];null!=l&&(s&&s(a,n,l,r)||(Array.isArray(l)&&Array.isArray(a[n])?a[n]=[...l,...a[n]]:nJ(l)&&nJ(a[n])?a[n]=e(l,a[n],(r?`${r}.`:"")+n.toString(),s):a[n]=l))}return a})(e,t,"",void 0),{}))({...e,defaults:{...e.defaults},level:n0(e.level,t),reporters:[...e.reporters||[]]},{types:nG,throttle:1e3,throttleMin:5,formatOptions:{date:!0,colors:!1,compact:!0}}),t){const e={type:n,...this.options.defaults,...t[n]};this[n]=this._wrapLogFn(e),this[n].raw=this._wrapLogFn(e,!0)}this.options.mockFn&&this.mockTypes(),this._lastLog={}}get level(){return this.options.level}set level(e){this.options.level=n0(e,this.options.types,this.options.level)}prompt(e,t){if(!this.options.prompt)throw Error("prompt is not supported!");return this.options.prompt(e,t)}create(e){let t=new nQ({...this.options,...e});return this._mockFn&&t.mockTypes(this._mockFn),t}withDefaults(e){return this.create({...this.options,defaults:{...this.options.defaults,...e}})}withTag(e){return this.withDefaults({tag:this.options.defaults.tag?this.options.defaults.tag+":"+e:e})}addReporter(e){return this.options.reporters.push(e),this}removeReporter(e){if(e){let t=this.options.reporters.indexOf(e);if(-1!==t)return this.options.reporters.splice(t,1)}else this.options.reporters.splice(0);return this}setReporters(e){return this.options.reporters=Array.isArray(e)?e:[e],this}wrapAll(){this.wrapConsole(),this.wrapStd()}restoreAll(){this.restoreConsole(),this.restoreStd()}wrapConsole(){for(let e in this.options.types)console["__"+e]||(console["__"+e]=console[e]),console[e]=this[e].raw}restoreConsole(){for(let e in this.options.types)console["__"+e]&&(console[e]=console["__"+e],delete console["__"+e])}wrapStd(){this._wrapStream(this.options.stdout,"log"),this._wrapStream(this.options.stderr,"log")}_wrapStream(e,t){e&&(e.__write||(e.__write=e.write),e.write=e=>{this[t].raw(String(e).trim())})}restoreStd(){this._restoreStream(this.options.stdout),this._restoreStream(this.options.stderr)}_restoreStream(e){e&&e.__write&&(e.write=e.__write,delete e.__write)}pauseLogs(){nX=!0}resumeLogs(){for(let e of(nX=!1,nZ.splice(0)))e[0]._logFn(e[1],e[2])}mockTypes(e){let t=e||this.options.mockFn;if(this._mockFn=t,"function"==typeof t)for(let e in this.options.types)this[e]=t(e,this.options.types[e])||this[e],this[e].raw=this[e]}_wrapLogFn(e,t){return(...n)=>nX?void nZ.push([this,e,n,t]):this._logFn(e,n,t)}_logFn(e,t,n){var r,s;if((e.level||0)>this.level)return!1;let a={date:new Date,args:[],...e,level:n0(e.level,this.options.types)};n||1!==t.length||+(s=r=t[0],"[object Object]"!==Object.prototype.toString.call(s)||!r.message&&!r.args||!!r.stack)?a.args=[...t]:Object.assign(a,t[0]),a.message&&(a.args.unshift(a.message),delete a.message),a.additional&&(Array.isArray(a.additional)||(a.additional=a.additional.split("\n")),a.args.push("\n"+a.additional.join("\n")),delete a.additional),a.type="string"==typeof a.type?a.type.toLowerCase():"log",a.tag="string"==typeof a.tag?a.tag:"";let l=(e=!1)=>{let t=(this._lastLog.count||0)-this.options.throttleMin;if(this._lastLog.object&&t>0){let e=[...this._lastLog.object.args];t>1&&e.push(`(repeated ${t} times)`),this._log({...this._lastLog.object,args:e}),this._lastLog.count=1}e&&(this._lastLog.object=a,this._log(a))};clearTimeout(this._lastLog.timeout);let i=this._lastLog.time&&a.date?a.date.getTime()-this._lastLog.time.getTime():0;if(this._lastLog.time=a.date,i<this.options.throttle)try{let e=JSON.stringify([a.type,a.tag,a.args]),t=this._lastLog.serialized===e;if(this._lastLog.serialized=e,t&&(this._lastLog.count=(this._lastLog.count||0)+1,this._lastLog.count>this.options.throttleMin)){this._lastLog.timeout=setTimeout(l,this.options.throttle);return}}catch{}l(!0)}_log(e){for(let t of this.options.reporters)t.log(e,{options:this.options})}}function n0(e,t={},n=3){return void 0===e?n:"number"==typeof e?e:t[e]&&void 0!==t[e].level?t[e].level:n}nQ.prototype.add=nQ.prototype.addReporter,nQ.prototype.remove=nQ.prototype.removeReporter,nQ.prototype.clear=nQ.prototype.removeReporter,nQ.prototype.withScope=nQ.prototype.withTag,nQ.prototype.mock=nQ.prototype.mockTypes,nQ.prototype.pause=nQ.prototype.pauseLogs,nQ.prototype.resume=nQ.prototype.resumeLogs;class n1{options;defaultColor;levelColorMap;typeColorMap;constructor(e){this.options={...e},this.defaultColor="#7f8c8d",this.levelColorMap={0:"#c0392b",1:"#f39c12",3:"#00BCD4"},this.typeColorMap={success:"#2ecc71"}}_getLogFn(e){return e<1?console.__error||console.error:1===e?console.__warn||console.warn:console.__log||console.log}log(e){let t=this._getLogFn(e.level),n="log"===e.type?"":e.type,r=e.tag||"",s=this.typeColorMap[e.type]||this.levelColorMap[e.level]||this.defaultColor,a=`
8
+ background: ${s};
9
+ border-radius: 0.5em;
10
+ color: white;
11
+ font-weight: bold;
12
+ padding: 2px 0.5em;
13
+ `,l=`%c${[r,n].filter(Boolean).join(":")}`;"string"==typeof e.args[0]?t(`${l}%c ${e.args[0]}`,a,"",...e.args.slice(1)):t(l,a,...e.args)}}function n2(e={}){return function(e={}){return new nQ(e)}({reporters:e.reporters||[new n1({})],prompt:(e,t={})=>"confirm"===t.type?Promise.resolve(confirm(e)):Promise.resolve(prompt(e)),...e})}n2();var n5=e.i(247167),n3=e.i(379227);let{env:n4={},argv:n6=[],platform:n7=""}=void 0===n5.default?{}:n5.default,n9="NO_COLOR"in n4||n6.includes("--no-color"),n8="FORCE_COLOR"in n4||n6.includes("--color"),re="dumb"===n4.TERM,rt=n3&&n3.isatty&&n3.isatty(1)&&n4.TERM&&!re,rn="CI"in n4&&("GITHUB_ACTIONS"in n4||"GITLAB_CI"in n4||"CIRCLECI"in n4),rr=!n9&&(n8||"win32"===n7&&!re||rt||rn);function rs(e,t,n){return function(e,t,n=e,r=e.length+1){return s=>{var a;return s||""!==s&&void 0!==s?(a=(""+s).indexOf(t,r),a<0?e+s+t:e+function e(t,n,r,s,a=n.slice(0,Math.max(0,t))+s,l=n.slice(Math.max(0,t+r.length)),i=l.indexOf(r)){return a+(i<0?l:e(i,l,r,s))}(a,s,t,n)+t):""}}(`\x1b[${e}m`,`\x1b[${t}m`,n)}let ra={reset:rs(0,0),bold:rs(1,22,"\x1b[22m\x1b[1m"),dim:rs(2,22,"\x1b[22m\x1b[2m"),italic:rs(3,23),underline:rs(4,24),inverse:rs(7,27),hidden:rs(8,28),strikethrough:rs(9,29),black:rs(30,39),red:rs(31,39),green:rs(32,39),yellow:rs(33,39),blue:rs(34,39),magenta:rs(35,39),cyan:rs(36,39),white:rs(37,39),gray:rs(90,39),bgBlack:rs(40,49),bgRed:rs(41,49),bgGreen:rs(42,49),bgYellow:rs(43,49),bgBlue:rs(44,49),bgMagenta:rs(45,49),bgCyan:rs(46,49),bgWhite:rs(47,49),blackBright:rs(90,39),redBright:rs(91,39),greenBright:rs(92,39),yellowBright:rs(93,39),blueBright:rs(94,39),magentaBright:rs(95,39),cyanBright:rs(96,39),whiteBright:rs(97,39),bgBlackBright:rs(100,49),bgRedBright:rs(101,49),bgGreenBright:rs(102,49),bgYellowBright:rs(103,49),bgBlueBright:rs(104,49),bgMagentaBright:rs(105,49),bgCyanBright:rs(106,49),bgWhiteBright:rs(107,49)},rl=function(e=rr){return e?ra:Object.fromEntries(Object.keys(ra).map(e=>[e,String]))}();[String.raw`[\u001B\u009B][[\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\d\/#&.:=?%@~_]+)*|[a-zA-Z\d]+(?:;[-a-zA-Z\d\/#&.:=?%@~_]*)*)?\u0007)`,String.raw`(?:(?:\d{1,4}(?:;\d{0,4})*)?[\dA-PR-TZcf-nq-uy=><~]))`].join("|");let ri=n2({level:L.IS_DEV?4:3}),ro=(t=L.APP_NAME,ri.withDefaults({message:(n=`${t}: `,(function(e,t="reset"){return rl[e]||rl[t]})("blackBright")(n))}));var ru=e.i(413168);let rc={echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0},rd=new TextEncoder;async function rh(e){let t=rp(e);try{return await t.connect(),t}catch(e){throw await t.close(),e}}let rp=({initialize:e,audio:t,on:n})=>{let r,s,a,l,i,o,u,c,d=!1,h=!1,p=!1,m=0,f=0,g="",x=[],y=new Set,w=new Set,b=new Set,k=new Map,v=!1,S=new Map,N=new Map,T=[],E=null,A=-1/0,M=()=>{for(let e of(clearTimeout(u),u=void 0,y))n.turn({...e.turn,fragments:[...e.fragments],done:!0});y.clear()},_=()=>{if(!p){for(let e of(p=!0,clearTimeout(i),clearTimeout(c),clearInterval(o),M(),E=null,T.splice(0)))e.settle(!1);z.close(),a?.()}},C=e=>{s?.(Error(e)),_(),d&&!h?n.failed(e):h&&n.warn(e)},I=-1/0,R=()=>{if(p||h)return;let e=performance.now(),r=t.levels?.();r&&r.output>.01&&(A=e);let s={speaking:e-A<300,working:[...k.values()].some(e=>!e.terminal)||N.size>0||e-I<5e3,tools:[...N.values()]},a=JSON.stringify(s);(a!==g||s.speaking||s.working)&&(g=a,n.activity(s))},O=()=>{if(!d||p||h||E||!T.length)return;let[e]=T;E=crypto.randomUUID(),z.send({type:`session.${e.kind}.append`,event_id:E,delegation_id:null,content:e.chunks[0]}),c=setTimeout(()=>{n.warn("Live did not acknowledge the conversation update; delivery is unknown."),D(!1)},L.LIVE_CALL.appendMs)},D=e=>{clearTimeout(c),E=null;let[t]=T;t&&(e&&t.chunks.shift(),e&&t.chunks.length||(T.shift(),t.settle(e)),O())},P=(e,t)=>{if(!e.delta||void 0===e.start_ms||void 0===e.end_ms)return;let r=e.start_ms,s=e.end_ms,a=x.findLast(e=>e.turn.role===t&&r>=e.turn.seq-L.LIVE_CALL.transcriptGapMs&&r<=e.end+L.LIVE_CALL.transcriptGapMs&&("user"===t||!x.some(t=>"user"===t.turn.role&&t.turn.seq>e.turn.seq&&t.turn.seq<r)));a||(a={turn:{id:`live-${f++}`,role:t,text:"",seq:r,done:!1},end:s,fragments:[]},x.push(a)),a.fragments.push({start:r,end:s,text:e.delta}),a.fragments.sort((e,t)=>e.start-t.start),a.end=Math.max(a.end,s),a.turn.text=a.fragments.map(e=>e.text).join(""),n.turn({...a.turn,done:!1}),y.add(a),u??=setTimeout(M,L.LIVE_CALL.transcriptSaveMs)},F=async e=>{e.terminal&&!e.continued&&e.calls.size&&(e.continued=!0,await Promise.all(e.calls.values()),h||p||(I=performance.now(),z.send({type:"response.create",event_id:crypto.randomUUID()})),R())},z=function({negotiate:e,audio:t,on:n}){let r,s,a=null,l=null,i=null,o=!1,u=!1,c=!1,d=e=>{for(let t of e?.getTracks()??[])t.stop()};return{async connect(){let h=new RTCPeerConnection;a=h;let p=h.createDataChannel("oai-events");l=p;let m=new Promise((e,t)=>{r=t;let s=e=>{o||c||(c=!0,u?n.dropped(e):t(Error(e)))};p.onopen=()=>{u=!0,e()},p.onclose=()=>s("The connection to OpenAI Live closed."),p.onerror=()=>s("The connection to OpenAI Live dropped."),h.onconnectionstatechange=()=>{["failed","closed"].includes(h.connectionState)&&s("Could not reach OpenAI Live.")}});m.catch(()=>{}),p.onmessage=({data:e})=>{let t;if(!o&&"string"==typeof e){try{t=JSON.parse(e)}catch{n.dropped("OpenAI Live sent an unreadable event.");return}n.event(t)}},h.ontrack=e=>{if(o)return;let n=e.streams[0]??new MediaStream([e.track]);t.element.srcObject=n,t.listen(n)};let f=await navigator.mediaDevices.getUserMedia({audio:rc});if(o)throw d(f),Error("The call closed before connecting.");for(let e of(i=f,t.hear?.(f),f.getAudioTracks()))h.addTrack(e,f);await h.setLocalDescription(await h.createOffer()),"complete"!==h.iceGatheringState&&await new Promise((e,t)=>{let n=n=>{clearTimeout(a),h.removeEventListener("icegatheringstatechange",r),s=void 0,n?t(n):e()},r=()=>{"complete"===h.iceGatheringState&&n()},a=setTimeout(()=>n(Error("ICE gathering timed out.")),1e4);s=()=>n(Error("The call closed before connecting.")),h.addEventListener("icegatheringstatechange",r),r()});let g=h.localDescription?.sdp;if(!g||o)throw Error("No live SDP offer is available.");let x=await e(g);if(o)throw Error("The call closed before connecting.");await h.setRemoteDescription({type:"answer",sdp:x}),await m},send(e){o||l?.readyState!=="open"||l.send(JSON.stringify(e))},close:()=>{o||(o=!0,r?.(Error("The call closed before connecting.")),s?.(),d(i),i=null,l?.close(),a?.close(),t.element.srcObject=null)}}}({audio:t,negotiate:async t=>{let n=await e(t);if(!n)throw Error("OpenAI Live returned no SDP answer.");return n},on:{event:e=>{if(!p){if(e.event_id){if(w.has(e.event_id))return;w.add(e.event_id)}switch(m=Math.max(m,e.offset_ms??0,e.end_ms??0),e.type){case"session.started":d=!0,r?.(),O();break;case"session.closed":n.finalized?.({reason:e.reason??"closed",seconds:e.usage?.seconds??null}),ro.info("Live session closed",{reason:e.reason,seconds:e.usage?.seconds}),s?.(Error("OpenAI Live closed before startup completed.")),_(),h||n.failed(`The Live call ended (${e.reason??"closed"}).`);break;case"session.input_transcript.delta":P(e,"user");break;case"session.output_transcript.delta":P(e,"assistant");break;case"session.instructions.appended":case"session.commentary.appended":case"session.thinking.appended":E&&e.client_event_id===E&&D(!0);break;case"error":{let t=e.error?.message??"OpenAI Live reported an error.";if(!d){C(t);break}n.warn(t),E&&e.error?.client_event_id===E&&D(!1);break}case"response.event":{let t=e.event;if(!t||h)break;"response.created"===t.type&&(I=-1/0),"response.created"===t.type&&t.response&&e.delegation_id&&S.set(e.delegation_id,t.response.id);let r=t.response?.id??t.response_id??(e.delegation_id?S.get(e.delegation_id):void 0);if(!r)break;let s=k.get(r);if(s||(s={calls:new Map,terminal:!1,continued:!1},k.set(r,s)),"response.reasoning_summary_text.done"===t.type&&n.reasoning?.({id:`${t.item_id}:${t.summary_index??0}`,text:t.text??"",seq:m}),("response.output_item.added"===t.type||"response.output_item.done"===t.type)&&t.item?.type===ru.LIVE_HOSTED_TOOLS.webSearch.item){let e=t.item,s="response.output_item.done"===t.type;s&&ro.debug("Live web search",e),n.search?.({id:e.id,responseId:r,query:(e.action?.query??e.action?.queries?.join(" · "))?.trim()||null,sources:[...new Set((e.action?.sources??[]).flatMap(e=>e.url?[e.url]:[]))].map(e=>({url:e})),done:s,seq:m})}if("response.output_item.done"===t.type&&t.item?.type==="message"){let e=function(e){let t=new Map;for(let n of e??[])for(let e of n.annotations??[])"url_citation"===e.type&&e.url&&!t.has(e.url)&&t.set(e.url,{url:e.url,...e.title?{title:e.title}:{}});return[...t.values()]}(t.item.content);e.length&&n.cited?.(r,e)}if("response.output_item.done"===t.type&&t.item?.type==="function_call"){let e=t.item;if(b.has(e.call_id))break;if(b.add(e.call_id),"incomplete"===e.status){s.terminal=!0,ro.warn("Live backend call cut off; not run",{responseId:r,name:e.name,arguments:e.arguments.slice(0,200)}),s.calls.size&&!v?(v=!0,F(s)):s.continued=!0;break}n.turn({id:e.id,role:"tool",tool:e.name,text:e.arguments,seq:m,done:!0}),M(),N.set(e.call_id,e.name);let a=Promise.resolve().then(()=>n.runTool({id:e.call_id,name:e.name,arguments:e.arguments,item:e.id})).catch(e=>`Error: ${(0,j.errorToString)(e)}`).then(t=>{N.delete(e.call_id),p||h||z.send({type:"response.item.create",event_id:crypto.randomUUID(),item:{type:"function_call_output",call_id:e.call_id,output:t}}),R()});s.calls.set(e.call_id,a),F(s)}["response.completed","response.failed","response.incomplete","response.cancelled"].includes(t.type)&&(s.terminal=!0,"response.completed"===t.type?(v=!1,ro.debug("Live backend usage",{responseId:r,usage:t.response?.usage}),F(s)):"response.incomplete"===t.type&&s.calls.size&&!v?(v=!0,ro.warn("Live backend response incomplete; continuing once",{responseId:r}),F(s)):(v=!1,s.continued=!0,n.warn(t.response?.error?.message??`The Live backend ${t.type.slice(9)}.`)))}}R()}},dropped:C}});return{async connect(){t.element.muted=!1;let e=new Promise((e,t)=>{r=e,s=t});e.catch(()=>{});let n=setTimeout(()=>C("OpenAI Live did not start in time."),L.LIVE_CALL.startupMs);try{if(await Promise.all([z.connect(),e]),p)throw Error("The Live call closed during startup.");o=setInterval(R,100)}catch(e){throw _(),e}finally{clearTimeout(n),s=void 0}},close:()=>l||(p?Promise.resolve():(h=!0,M(),d)?(l=new Promise(e=>{a=e}),i=setTimeout(()=>{n.warn("Live disconnected without confirming final session usage."),_()},L.LIVE_CALL.closeMs),t.element.muted=!0,z.send({type:"session.close",event_id:crypto.randomUUID()}),l):(_(),Promise.resolve())),append(e,t){let n=function(e){let t=[],n="",r=0,s=e=>{let s=rd.encode(e).length;if(r+s>480&&n&&(t.push(n),n="",r=0),s<=480){n+=e,r+=s;return}for(let s of e){let e=rd.encode(s).length;r+e>480&&(t.push(n),n="",r=0),n+=s,r+=e}};for(let t of e.split(/(?<=\s)/))s(t);return n&&t.push(n),t}(t);return p||h||!n.length?Promise.resolve(!1):new Promise(t=>{T.push({kind:e,chunks:n,settle:t}),O()})},brief(e){let t=e.trim();p||h||!t||z.send({type:"response.item.create",event_id:crypto.randomUUID(),item:{type:"message",role:"developer",content:[{type:"input_text",text:t}]}})}}};var rm=e.i(567334);let rf=!1,rg=new Set,rx=new Set,ry={hold(e){if(e!==rf)for(let t of(rf=e,rg))t()},place(){for(let e of rx)e()},onPlace:e=>(rx.add(e),()=>{rx.delete(e)})};function rw(){return(0,w.useSyncExternalStore)(e=>(rg.add(e),()=>rg.delete(e)),()=>rf,()=>!1)}e.s(["callSignal",0,ry,"useCallHeld",0,rw],745747);let rb=["NIGHT","G'NIGHT","NITE","SLEEP ♥","ZZZ","BYE"],rk=[[22,rb],[17,["BYE","SEE YA","LATER","SO LONG","BYE ♥","CIAO"]],[11,["BYE","SEE YA","LATER","CIAO","BYE BYE","PEACE"]],[5,["ENJOY!","SEE YA","BYE","LATER","CIAO"]],[0,rb]],rv=(e,t)=>({text:e,at:Date.now(),hold:t});function rj(e=new Date){let t,n=e.getHours();return rv((t=rk.find(([e])=>n>=e)?.[1]??["BYE"])[Math.floor(Math.random()*t.length)],1.6)}let rS=()=>rv("OK",1);e.s(["awake",0,()=>rv("HI",1.6),"finished",0,rS,"goodbye",0,rj],114923);let rN=(0,nc.createServerReference)("7f0f3fb174d7f62da3e08ad4143db0781367969da7",nc.callServer,void 0,nc.findSourceMapURL,"openCallAction"),rT=(0,nc.createServerReference)("7f6a37e89beba3ad06521a5f3accbc5734c52900b8",nc.callServer,void 0,nc.findSourceMapURL,"saveThoughtAction"),rE=(0,nc.createServerReference)("7fdd2b69ece113712d5efe788221fa84e70ac25530",nc.callServer,void 0,nc.findSourceMapURL,"saveTurnsAction"),rA=[620,775],rM=Array(nn.SPECTRUM_BANDS).fill(0),r_=!1;function rC(e){let t=e.replace(/\[[^\]]*\]?|\]/g,"").trim();return/[\p{L}\p{N}]/u.test(t)?t:""}function rL(e,t,n="This call is not being saved"){e.failures>=L.CALL_PAGE.saveFailures||t().then(e=>(0,e5.unwrapResult)(e)).catch(t=>{e.failures+=1,e.failures===L.CALL_PAGE.saveFailures&&e2.toast.add({type:"warning",title:n,description:(0,j.errorToString)(t)})})}var rI=e.i(191609),rR=e.i(492066);let rO=new Intl.Segmenter(void 0,{granularity:"grapheme"}),rD=e=>Array.from(rO.segment(e)).length;function rP({text:e,animate:t}){let{shown:n,links:s}=(0,w.useMemo)(()=>{let t=[],n="",r=0;for(let s of e.matchAll(j.MARKDOWN_LINK)){let a=rD(n+=e.slice(r,s.index));n+=s[1],t.push({from:a,to:rD(n),href:s[2]}),r=s.index+s[0].length}return{shown:n+e.slice(r),links:t}},[e]);if(t)return(0,r.jsx)(E,{text:n,wraps:s.map(e=>({from:e.from,to:e.to,render:t=>(0,r.jsx)(rz,{href:e.href,children:t})}))});let a=Array.from(rO.segment(n),e=>e.segment),l=[],i=0;for(let e of s)l.push(a.slice(i,e.from).join("")),l.push((0,r.jsx)(rz,{href:e.href,children:a.slice(e.from,e.to).join("")},e.from)),i=e.to;return l.push(a.slice(i).join("")),(0,r.jsx)(r.Fragment,{children:l})}let rF="pointer-events-auto underline decoration-current/35 underline-offset-4 transition-colors hover:decoration-current";function rz({href:e,children:t}){let[n]=(0,nh.useServerAction)(rR.openFileAction);if(/^https?:\/\//i.test(e))return(0,r.jsx)("a",{href:e,target:"_blank",rel:"noreferrer",className:rF,onClick:e=>e.stopPropagation(),children:t});let s=(0,nI.workspaceRelative)(e);return s?(0,r.jsx)("a",{href:b.queryKey.fileView(s),className:rF,onClick:t=>{t.preventDefault(),t.stopPropagation();let r=(0,nR.fileTarget)(e);"os"===r.how?n(e):G.fileOpens.open(r.path)||window.open(b.queryKey.fileView(r.path),"_blank")},children:t}):t}var r$=e.i(174080);let rB="700 9px ui-monospace, SFMono-Regular, Menlo, monospace",rq=Math.ceil(13.5);function rU(e){let t=document.createElement("canvas");t.width=rq*e.length,t.height=rq;let n=t.getContext("2d");return n?(n.textAlign="center",n.textBaseline="middle",n.font=rB,e.forEach((e,t)=>{n.fillText(e,t*rq+rq/2,rq/2)}),t):null}function rK({status:e,charset:t}){let n=(0,w.useRef)(null),s=(0,w.useRef)(null),a=(0,w.useRef)(e),[l,i]=(0,w.useState)(!1),o=(0,w.useRef)(null);return(0,w.useEffect)(()=>{o.current="ascii"===t?null:rU(rm.EMOJI_POOL)},[t]),(0,w.useEffect)(()=>{let t=a.current;a.current=e,"connecting"!==t||"connecting"===e||"idle"===e||"ending"===e||window.matchMedia("(prefers-reduced-motion: reduce)").matches||i(!0)},[e]),(0,w.useEffect)(()=>{let e=s.current,r=n.current?.getBoundingClientRect();if(!l||!e||!r)return;let a=window.innerWidth,u=window.innerHeight,c=r.left+r.width/2,d=r.top+r.height/2,h=Math.hypot(Math.max(c,a-c),Math.max(d,u-d)),p=Math.ceil(a/11),m=Math.ceil(u/11),f=[];for(let e=0;e<m;e++)for(let t=0;t<p;t++){if((0,rm.hash)(t+53,e+5)>.4)continue;let n=11*t+5.5,r=11*e+5.5,s=Math.atan2(r-d,n-c),a=(0,rm.hash)(t+31,e+17),l=Math.hypot(n-c,r-d)/h*(1+.1*Math.sin(3*s+1.3)+.05*Math.sin(7*s-.7)+(a-.5)*.1);l<.1||f.push({x:n,y:r,dd:l,seed:(0,rm.hash)(t,e),grain:a,speck:(0,rm.hash)(t+7,e+101),roll:(0,rm.hash)(t+211,e+89)})}f.sort((e,t)=>e.dd-t.dd);let g=e=>{let t=0,n=f.length;for(;t<n;){let r=t+n>>1;f[r].dd<e?t=r+1:n=r}return t};e.width=a,e.height=u;let x=e.getContext("2d"),y="ascii"===t?null:o.current??rU(rm.EMOJI_POOL);if(!x||"ascii"!==t&&!y)return;x.textAlign="center",x.textBaseline="middle",x.font=rB,x.fillStyle=getComputedStyle(e).color;let w=rm.RAMP.length-1,b=(e,n)=>"emojiOnly"===t||"emoji"===t&&e.roll<rm.EMOJI_RATIO&&n>=rm.EMOJI_MIN_LEVEL,k="emojiOnly"===t?rm.EMOJI_CHAR_RATE:rm.CHAR_RATE,v=rq/2,j=performance.now(),S=0,N=0,T=()=>{let e=(performance.now()-j)/1e3;if(e>1.9736842105263157)return i(!1);if(N=requestAnimationFrame(T),S++%2)return;let n=.95*e;x.clearRect(0,0,a,u);for(let r=g(n-.2-.475);r<f.length;r++){let s=f[r],a=n-s.dd;if(a<-.03)break;let l=(0,rm.smoothstep)(-.03,.02,a)*(1-(0,rm.smoothstep)(.02,.2,a))*(.72+.28*Math.sin(46*s.dd-7*e+6.283*s.seed));if(s.speck<.06){let e=.18+.32*s.grain,t=(a-.2)/.95;l=Math.max(l,(.3+.4*s.grain)*(1-(0,rm.smoothstep)(.4*e,e,t)))}let i=Math.round(l*w);if(i<1)continue;let o=Math.floor(e*k+10*s.seed);if(y&&b(s,i)){x.globalAlpha=(0,rm.emojiAlpha)(i,w,"emojiOnly"===t);let e=Math.floor((0,rm.hash)(97*s.seed,o)*rm.EMOJI_POOL.length);x.drawImage(y,e*rq,0,rq,rq,s.x-v,s.y-v,rq,rq);continue}x.globalAlpha=rm.ALPHA_TOP*(i/w);let u=rm.RAMP[i];x.fillText(u[Math.floor((0,rm.hash)(131*s.seed,o)*u.length)],s.x,s.y)}x.globalAlpha=1};return N=requestAnimationFrame(T),()=>cancelAnimationFrame(N)},[l,t]),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{ref:n,"aria-hidden":!0,className:"pointer-events-none absolute inset-0"}),l&&(0,r$.createPortal)((0,r.jsx)("canvas",{ref:s,"aria-hidden":!0,className:"pointer-events-none fixed inset-0 z-30 size-full text-foreground"}),document.body)]})}var rH=e.i(333495);function rW(e){let t=[];for(let n of e){let e=t.at(-1);e?.role!==n.role||n.fresh?t.push({id:n.id,role:n.role,text:n.text}):e.text=`${e.text} ${n.text}`}return t}let rV={assistant:null,user:null};function rY(e,t){let[n,r]=(0,w.useState)(rV);return(0,w.useEffect)(()=>{t||r(rV)},[t]),(0,w.useEffect)(()=>{if(!t)return;let e=e=>{"ArrowDown"!==e.key||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey||(0,H.windowKey)(e)&&(e.preventDefault(),r(rV))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[t]),{pinned:n,pick:(0,w.useCallback)((t,n)=>{let s=e.filter(e=>e.role===t).length-1;r(e=>({...e,[t]:n>=s?null:n}))},[e]),back:null!==n.assistant||null!==n.user}}let rG="(under)";function rJ({turns:e,pinned:t,live:n,onPick:s,under:a=null,ahead:l=!1,workOf:i,typed:o=!1}){let u=e.at(-1);return(0,r.jsx)(r.Fragment,{children:["assistant","user"].map(c=>(0,r.jsx)(rX,{role:c,turns:e.filter(e=>e.role===c),pinned:t[c],saying:n?u?.id:void 0,onPick:e=>s(c,e),under:"assistant"===c?a:null,ahead:"assistant"===c&&l,workOf:"assistant"===c?i:void 0,whole:o&&"user"===c},c))})}function rX({role:e,turns:t,pinned:n,saying:s,onPick:a,under:l,ahead:i,workOf:o,whole:u}){let c="user"===e,[d,h]=(0,w.useState)({}),p=(0,w.useRef)(null);(0,w.useEffect)(()=>()=>p.current?.disconnect(),[]);let m=(0,w.useCallback)(e=>{if(e)return p.current??=new ResizeObserver(e=>{h(t=>{let n=t;for(let r of e){let e=r.target,s=e.dataset.turn;s&&t[s]!==e.offsetHeight&&(n===t&&(n={...t}),n[s]=e.offsetHeight)}return n})}),p.current.observe(e),()=>p.current?.unobserve(e)},[]),f=t.length-1,g=null===n&&(i||!t.length)?t.length:Math.min(n??f,f),x=(0,w.useRef)(null);if((0,w.useEffect)(()=>{let e=x.current;e&&(e.scrollTop=e.scrollHeight)},[t[g]?.text]),!t.length&&!l)return null;let y=e=>1150/(1150+700*Math.abs(e-g)),b=e=>e===g?1:.78,k=e=>(d[t[e].id]??28.475)*y(e)*b(e),v=g===t.length?l:o?.(t[g].id)??null,S=Array(t.length+1).fill(0);S[g]=-28.475/2;for(let e=g-1;e>=0;e--)S[e]=S[e+1]-49-k(e);let N=v&&g<t.length?(d[rG]??0)+8:0;for(let e=g+1;e<t.length;e++)S[e]=S[e-1]+k(e-1)+49+(e-1===g?N:0);let T=v?g===t.length?S[g]:S[g]+(d[t[g].id]??28.475)+8:null;return(0,r.jsxs)("div",{className:(0,j.cn)("pointer-events-none absolute h-0 w-[min(21.25rem,24vw)]",c?"left-full ml-[calc(var(--face-bleed,0px)+0.375rem)] [perspective-origin:0_0]":"right-full mr-[calc(var(--face-bleed,0px)+0.375rem)] [perspective-origin:100%_0]"),style:{top:"calc(50% + -40px)",perspective:1150},children:[t.map((e,n)=>{let l=Math.abs(n-g),i=n<g?g-n<=2:n-g<=2,o=n===g,d=i?o?1:.56*.6**(l-1):0,h=i&&!o,p=14*l*(c?-1:1)/y(n),f=S[n]/y(n);return(0,r.jsx)("div",{ref:m,"data-turn":e.id,"aria-hidden":!i,onClick:h?()=>a(n):void 0,style:{transform:`translate(${p.toFixed(1)}px, ${f.toFixed(1)}px) translateZ(${-700*l}px) scale(${b(n)})`,"--ink":d,"--lift":Math.max(d,.9)},className:(0,j.cn)("group/turn absolute top-0 w-max max-w-full text-[17px] leading-[1.675] tracking-[0.3px] text-foreground transition-transform duration-[520ms] ease-[cubic-bezier(0.22,1,0.36,1)] motion-reduce:transition-none",u&&n===t.length-1&&"animate-in fade-in duration-200 motion-reduce:animate-none",c?"left-0 origin-top-left":"right-0 origin-top-right",!i&&"invisible",h&&"pointer-events-auto cursor-pointer",o&&"pointer-events-auto"),children:(0,r.jsxs)("p",{ref:o?x:void 0,className:(0,j.cn)("break-keep wrap-anywhere text-pretty whitespace-pre-line opacity-(--ink) transition-opacity duration-[520ms] motion-reduce:transition-none",!o&&"line-clamp-4",o&&"overflow-y-auto overscroll-contain scrollbar-none",h&&"group-hover/turn:opacity-(--lift)"),style:o?{maxHeight:284.75}:void 0,children:[o&&(0,r.jsx)("span",{className:(0,j.cn)("mr-4 inline-block size-2.5 rounded-full align-middle",e.id===s?"animate-pulse motion-reduce:animate-none":"opacity-55",c?"bg-foreground":"bg-brand")}),(0,r.jsx)(rP,{text:e.text,animate:n===t.length-1&&!u})]})},e.id)}),v&&(0,r.jsx)("div",{ref:m,"data-turn":rG,style:{transform:`translateY(${(T??0).toFixed(1)}px)`},className:"absolute inset-x-0 top-0 transition-transform duration-[520ms] ease-[cubic-bezier(0.22,1,0.36,1)] motion-reduce:transition-none",children:v})]})}e.s(["SideCaptions",0,rJ,"turnsOf",0,rW,"useTurnFocus",0,rY],435135);let rZ=["▁▄▇▄","▂▆▆▂","▄▇▄▁","▆▆▂▂","▇▄▁▄","▆▂▂▆","▄▁▄▇","▂▂▆▆"];function rQ({live:e,ringing:t}){let{owed:n}=tA(),r=t8(Object.values(ne()).map(e=>e??null)),s="waiting"===r?null:r;return(0,w.useEffect)(()=>{let r=t?`${L.APP_NAME} is calling`:L.APP_NAME,s=n>0?`(${n}) ${r}`:r;if(!e){document.title=s;return}let a=0;document.title=`${s} ${rZ[a]}`;let l=setInterval(()=>{a=(a+1)%rZ.length,document.title=`${s} ${rZ[a]}`},100);return()=>clearInterval(l)},[e,n,t]),(0,w.useEffect)(()=>{let e=document.head.querySelector("link[data-tab-icon]");e||((e=document.createElement("link")).rel="icon",e.type="image/svg+xml",e.setAttribute("sizes","any"),e.dataset.tabIcon="",document.head.append(e)),e.href=`data:image/svg+xml,${encodeURIComponent(function(e){let{head:t,eyes:n}=(0,D.markAtRest)(K.THURSDAY_SEED),r=e?`<circle cx="200" cy="200" r="${66}"/>`:"",s=e?`<circle class="${e}" cx="200" cy="200" r="46"/>`:"";return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="-6 -6 252 252"><style>.ink{fill:#0a0a0a}.amber{fill:#e17100}.red{fill:#e7000b}@media (prefers-color-scheme:dark){.ink{fill:#fafafa}.amber{fill:#ffb900}.red{fill:#ff6467}}</style><mask id="m" maskUnits="userSpaceOnUse"><path d="${t}" fill="#fff"/><path d="${n[0]}"/><path d="${n[1]}"/>${r}</mask><path class="ink" d="${t}" mask="url(#m)"/>${s}</svg>`}(s))}`},[s]),null}let r0={name:"arrow-down-to-line",size:24,node:[["path",{d:"M12 17V3",key:"1cwfxf"}],["path",{d:"m6 11 6 6 6-6",key:"12ii2o"}],["path",{d:"M19 21H5",key:"150jfl"}]]};r0.node;let r1=(0,l.default)(r0);var r2=e.i(96892),r5=e.i(64801),r3=e.i(59377),r4=e.i(184762),r6=e.i(146538);let r7=(0,nc.createServerReference)("7fcf506b6e444b96bd2256cb3d40dff7d5025d8862",nc.callServer,void 0,nc.findSourceMapURL,"startThreadAction");var r9=e.i(553429),r8=e.i(709190);let se={name:r9.ROOM_THURSDAY,description:"A call in writing — she answers here"},st="thursday.write.to",sn=e=>/^@(\S*)$/.exec(e.split(/\s/,1)[0]);function sr({written:e,onCall:t=!1}){let{data:n}=(0,Y.useServerRoute)(b.queryKey.bot),s=(0,w.useMemo)(()=>[...e?[se]:[],...n?.length?n.filter(e=>!e.disabled).map(({name:e,icon:t,description:n})=>({name:e,icon:t,description:n})):[O.DEFAULT_BOT]],[n,e]),[l,i]=(0,w.useState)(!1),[o,u]=(0,w.useState)(!1),[c,d]=(0,w.useState)(!1),[h,p]=(0,w.useState)(null),[m,f]=(0,w.useState)(""),g=(0,w.useRef)(t);g.current=t;let x=(0,r8.useGivenFiles)({onKept:e=>{if(g.current)return G.screenActs.announce({kind:"gave",paths:e}),"she knows it is here"}}),y=(0,w.useRef)(null),v=(0,w.useRef)(null);(0,w.useEffect)(()=>{try{p(window.localStorage.getItem(st))}catch{}},[]);let S=!!e?.on,[N,T]=(0,w.useState)(null);(0,w.useEffect)(()=>{S||T(null)},[S]);let E=S?s.find(e=>e.name===N)??se:s.find(e=>e.name===h)??s[0],A=E===se,M=rw(),_=(0,w.useCallback)(()=>{M||(i(!0),requestAnimationFrame(()=>y.current?.focus()))},[M]),C=(0,G.useRoomOpen)(),{take:L}=x,I=(0,w.useCallback)(e=>{G.writeLine.open(),L(e)},[L]);(0,w.useEffect)(()=>G.writeLine.subscribe(_),[_]),(0,w.useEffect)(()=>{if("thread"===C)return;let e=e=>{"/"!==e.key||e.metaKey||e.ctrlKey||e.altKey||(0,H.windowKey)(e)&&(e.preventDefault(),G.writeLine.open())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[C]),(0,w.useEffect)(()=>{if(M)return;let e=e=>!!e.dataTransfer?.types.includes("Files"),t=t=>{e(t)&&(t.preventDefault(),d(!0))},n=e=>{null===e.relatedTarget&&d(!1)},r=t=>{if(!e(t))return;t.preventDefault(),d(!1);let n=[...t.dataTransfer?.files??[]];r8.roomDrop.offer(t.target,n)||I(n)};return window.addEventListener("dragover",t),window.addEventListener("dragleave",n),window.addEventListener("drop",r),()=>{window.removeEventListener("dragover",t),window.removeEventListener("dragleave",n),window.removeEventListener("drop",r)}},[I,M]);let[R,D]=(0,nh.useServerAction)(r7,{onOk:({id:e})=>{(0,Y.revalidate)(b.queryKey.threads),f(""),x.clear(),i(!1),T(null),G.roomOpens.open(e)}}),[P,F]=(0,w.useState)(0),[z,$]=(0,w.useState)(!1),B=e=>{if(u(!1),f(e=>sn(e)?e.replace(/^@\S*\s?/,""):e),F(0),y.current?.focus(),S)return T(e.name===se.name?null:e.name);p(e.name);try{window.localStorage.setItem(st,e.name)}catch{}},q=z?null:sn(m),U=q?s.filter(e=>e.name.toLowerCase().startsWith(q[1].toLowerCase())):s,K=U.length?P%U.length:0,[W,V]=(0,w.useState)(!1),J=D||W,X=!!m.trim()&&!q&&!x.arriving&&!J&&!(A&&!e?.runsOn),Z=()=>{if(!X)return;let t=x.withPaths(m);A?e&&(V(!0),e.say(t).then(()=>{f(""),x.clear()}).catch(()=>{}).finally(()=>V(!1))):R(E.name,t)},Q=()=>{if(S&&!A)return T(null);S&&e?.end(),i(!1)},ee=(0,w.useRef)(t);(0,w.useEffect)(()=>{let e=t&&!ee.current;ee.current=t,!e||m.trim()||x.files.length||i(!1)},[t,m,x.files.length]);let et=(l||c||S)&&!C;(0,H.useEscape)(et,Q);let en=D||W;(0,w.useEffect)(()=>{et&&!en&&y.current?.focus()},[et,en]),(0,w.useEffect)(()=>(G.writeLine.shown(et),()=>G.writeLine.shown(!1)),[et]);let er=S&&!!C;(0,w.useEffect)(()=>(G.writeLine.waits(er),()=>G.writeLine.waits(!1)),[er]);let es=ec(),[ea,el]=(0,w.useState)(et);return((0,w.useEffect)(()=>{if(et)return void el(!0);let e=setTimeout(()=>el(!1),200);return()=>clearTimeout(e)},[et]),ea)?(0,r.jsxs)(r.Fragment,{children:[c&&(0,r.jsx)("div",{"aria-hidden":!0,className:"pointer-events-none fixed inset-0 bg-background/60",children:(0,r.jsx)("div",{className:"absolute inset-3 rounded-3xl border-[1.5px] border-dashed border-foreground/30"})}),(0,r.jsx)("div",{className:"col-start-2 row-start-1 flex min-w-0 items-end justify-center",children:(0,r.jsxs)("div",{className:(0,j.cn)("flex w-160 max-w-full flex-col gap-2",et?"pointer-events-auto animate-in duration-200 fade-in slide-in-from-bottom-2":"pointer-events-none animate-out duration-200 fade-out fill-mode-forwards slide-out-to-bottom-2"),children:[es.length>0&&(0,r.jsxs)("div",{className:"rounded-3xl bg-background/78 p-1.5 shadow-sm shadow-black/3 ring-1 ring-border/50 backdrop-blur-md",children:[(0,r.jsxs)("p",{className:"px-3 pt-1 pb-1 font-mono text-[10px] tracking-wide text-muted-foreground",children:[es.length," ",1===es.length?"needs":"need"," a reply"]}),(0,r.jsx)("div",{className:"max-h-[30vh] overflow-y-auto",children:es.map(e=>(0,r.jsx)(ew,{thread:e,lines:2,onPick:()=>G.roomOpens.open(e.id)},e.id))})]}),(0,r.jsxs)("div",{className:"flex flex-col gap-2 rounded-[26px] bg-background p-2 shadow-[0_22px_44px_-20px_rgb(0_0_0/0.22)] ring-1 ring-border",children:[(x.files.length>0||c)&&(0,r.jsx)(r8.GivenFiles,{files:x.files,onRemove:x.remove,className:"px-0.5 pt-0.5",children:c&&(0,r.jsxs)("span",{className:"flex h-13 items-center gap-2 rounded-[14px] border-[1.5px] border-dashed border-foreground/60 px-4 text-[13px]",children:[(0,r.jsx)(r1,{className:"size-4"}),"Let go — it waits here"]})}),(0,r.jsxs)("form",{onSubmit:e=>{e.preventDefault(),Z()},className:"flex items-end gap-2",children:[(0,r.jsxs)(r3.Popover,{open:o||!!q,onOpenChange:u,children:[(0,r.jsxs)(r3.PopoverTrigger,{render:(0,r.jsx)("button",{type:"button","aria-label":`To ${E.name}. Choose someone else`,className:"flex h-9 shrink-0 items-center gap-1.5 rounded-full bg-muted pr-2.5 pl-1.5 text-[13px] font-medium outline-none transition-colors hover:bg-accent focus-visible:ring-3 focus-visible:ring-ring/50"}),children:[(0,r.jsx)(si,{bot:E,size:22}),E.name,(0,r.jsx)(a.ChevronDown,{className:"size-3 text-muted-foreground"})]}),(0,r.jsxs)(r3.PopoverContent,{side:"top",align:"start",sideOffset:14,initialFocus:!q&&void 0,className:"w-90 gap-0 rounded-[18px] p-1.5",children:[(0,r.jsx)("p",{className:"px-2.5 pt-1.5 pb-1 font-mono text-[10px] text-muted-foreground",children:"to"}),U.map((e,t)=>(0,r.jsxs)("button",{type:"button",onClick:()=>B(e),className:(0,j.cn)("flex h-11.5 w-full items-center gap-2.5 rounded-xl px-2.5 text-left outline-none hover:bg-muted focus-visible:bg-muted",(q?t===K:e.name===E.name)&&"bg-muted"),children:[(0,r.jsx)(si,{bot:e,size:24}),(0,r.jsxs)("span",{className:"flex min-w-0 flex-1 flex-col",children:[(0,r.jsx)("span",{className:"text-[13.5px] leading-4.5 font-medium",children:e.name}),(0,r.jsx)("span",{className:"truncate text-xs leading-4 text-muted-foreground",children:e.description})]})]},e.name)),0===U.length&&(0,r.jsx)("p",{className:"px-2.5 py-2 text-[13px] text-muted-foreground",children:"Nobody by that name."})]})]}),(0,r.jsx)(r4.Textarea,{ref:y,value:m,rows:1,disabled:D||W,onChange:e=>{let t=e.target.value;f(t),F(0),sn(t)||$(!1)},onPaste:e=>{let t=[...e.clipboardData.files];t.length&&(e.preventDefault(),I(t))},onKeyDown:e=>{let t=(0,H.composing)(e);if("Escape"===e.key&&!t)return(e.preventDefault(),q)?$(!0):Q();let n="ArrowDown"===e.key||"ArrowUp"===e.key;if(q&&n&&!t){let t;return e.preventDefault(),t="ArrowDown"===e.key?1:-1,F(e=>U.length?(e+t+U.length)%U.length:0)}if("Enter"===e.key&&!e.shiftKey&&!t){if(e.preventDefault(),q){U[K]&&B(U[K]);return}Z()}},placeholder:x.files.length?"Say what to do with them":S&&A?"Write back":A?"Write to her instead of calling":`Say the whole job — ${E.name} cannot hear the call`,"aria-label":`Message for ${E.name}`,className:"max-h-36 min-h-9 flex-1 resize-none border-0 bg-transparent px-0 py-1.5 text-[15px] leading-6 shadow-none focus-visible:ring-0 dark:bg-transparent"}),(0,r.jsx)("input",{ref:v,type:"file",multiple:!0,hidden:!0,onChange:e=>{I([...e.target.files??[]]),e.target.value=""}}),(0,r.jsx)("button",{type:"button","aria-label":"Add files",onClick:()=>v.current?.click(),className:"grid size-9 shrink-0 place-items-center rounded-full text-muted-foreground outline-none transition-colors hover:bg-muted hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",children:(0,r.jsx)(r5.Paperclip,{className:"size-4"})}),(0,r.jsx)("button",{type:"submit","aria-label":"Send",disabled:!X,className:(0,j.cn)("grid size-9 shrink-0 place-items-center rounded-full outline-none transition-colors focus-visible:ring-3 focus-visible:ring-ring/50",X?"bg-primary text-primary-foreground hover:bg-primary/85":"bg-muted text-muted-foreground/40"),children:J?(0,r.jsx)("span",{className:"size-3.5 animate-spin rounded-full border-2 border-current/30 border-t-current"}):(0,r.jsx)(r2.ArrowUp,{className:"size-4"})})]})]}),A&&e?.error&&(0,r.jsx)("p",{className:"px-4 text-center text-xs leading-5 text-destructive",children:e.error}),A&&e?.error&&(0,r.jsxs)("div",{className:"flex items-center justify-center gap-3",children:[(0,r.jsxs)(k.Button,{type:"button",size:"sm",variant:"brand",disabled:e.busy,onClick:()=>{e.fallback&&na.useThursdayStore.getState().patch({textModel:e.fallback}),e.again()},children:[(0,r.jsx)(eN.RotateCw,{}),e.fallback?"Send it again on your OpenAI key":"Send it again"]}),(0,r.jsx)("span",{className:"font-mono text-[10.5px] text-muted-foreground/70",children:(0,r.jsx)(sl,{children:"API keys"})})]}),(0,r.jsx)("p",{className:"flex flex-wrap items-center justify-center gap-x-2 gap-y-1 font-mono text-[10.5px] text-muted-foreground/70",children:q?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(so,{children:"↑↓"})," walk",(0,r.jsx)(sa,{}),(0,r.jsx)(so,{children:"Enter"})," take",(0,r.jsx)(sa,{}),(0,r.jsx)(so,{children:"Esc"})," close the list"]}):(0,r.jsxs)(r.Fragment,{children:[A&&!e?.runsOn?(0,r.jsx)(ss,{runsOn:null}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(so,{children:"Enter"})," send",(0,r.jsx)(sa,{}),(0,r.jsx)(so,{children:"@"})," ",A?"a bot":"pick a bot",A&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(sa,{}),(0,r.jsx)(ss,{runsOn:e?.runsOn??null})]})]}),(0,r.jsx)(sa,{}),(0,r.jsx)(so,{children:"Esc"})," ",S?A?"to end":"back to her":"close"]})})]})})]}):null}function ss({runsOn:e}){let t=R.TEXT_MODEL_PROVIDERS.chatgpt.label,n=(0,r.jsx)(r6.ModelPicker,{compact:!0,provider:e?.provider??null,model:e?.model??"",unset:"pick a model",onChange:e=>na.useThursdayStore.getState().patch({textModel:e})});return e?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{children:"runs on"}),n]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("span",{children:["Writing to her needs a ",t,", an OpenAI key, or"]}),n,(0,r.jsx)(sa,{}),(0,r.jsx)(sl,{children:"API keys"})]})}let sa=()=>(0,r.jsx)("span",{className:"text-muted-foreground/40",children:"·"});function sl({children:e}){return(0,r.jsx)("button",{type:"button",onClick:()=>(0,t$.openSettings)("keys"),className:"rounded-sm text-foreground/80 underline underline-offset-3 outline-none hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",children:e})}function si({bot:e,size:t}){return e===se?(0,r.jsx)(K.ThursdayMark,{size:t,className:"shrink-0"}):(0,r.jsx)(D.BotMark,{size:t,seed:e.name,color:e.icon?.color,shape:e.icon?.shape,outline:e.icon?.outline,paint:e.icon?.paint,notify:!1,className:"shrink-0"})}function so({children:e}){return(0,r.jsx)("kbd",{className:"rounded-md border border-border bg-background px-1.5 py-0.5 font-mono text-[10px] text-foreground/80 shadow-[0_1px_0_var(--border)]",children:e})}function su({status:e,failed:t=!1,messages:n,tool:s,thinkingSince:a=null,thinkingTitle:l=null,ended:i=null,faceWord:o=null,onTap:u,ringing:c=null,onDecline:d,wakePhrase:h=null,hotkeyLabel:p=null,idleLeft:m=null,since:f=null,getSpectrum:g,getMicSpectrum:x,captionView:y="sides",face:b=ns.FACE_DEFAULT,callable:k=!0,written:v=null}){var S;let[N,T]=(0,w.useState)(!1),E=!k&&"idle"===e,A="connecting"===e||"ending"===e,M=!!v?.on,_="idle"!==e&&!A&&!M,C=n.findLast(e=>"assistant"===e.role)?.text??"",I=(S=sp,(0,w.useSyncExternalStore)(e=>{let t=window.matchMedia(`(min-width: ${S}px)`);return t.addEventListener("change",e),()=>t.removeEventListener("change",e)},()=>window.matchMedia(`(min-width: ${S}px)`).matches,()=>!0)),R="sides"===y&&"idle"!==e&&I,O=(0,w.useMemo)(()=>rW(n),[n]),D=rY(O,R),P=O.at(-1)?.role,F=function(e,t){let[n,r]=(0,w.useState)(e),s=(0,w.useRef)(e?[e]:[]),a=(0,w.useRef)(Date.now()),l=(0,w.useRef)(!1),i=(0,w.useRef)(null),o=(0,w.useCallback)(()=>{i.current&&clearTimeout(i.current),i.current=null,(s.current.length>1||l.current)&&s.current.length&&(i.current=setTimeout(()=>{s.current.shift(),a.current=Date.now(),r(s.current[0]??null),o()},Math.max(0,a.current+L.CALL_LINE.dwellMs-Date.now())))},[]);return(0,w.useEffect)(()=>{if(!e){l.current=!0,s.current.length<=1&&(s.current=[],r(null)),o();return}l.current=!1;let t=s.current.findIndex(t=>t.id===e.id);t>=0?(s.current[t]=e,0===t&&r(e)):(s.current=[...s.current.map((e,t)=>0===t?e:{...e,done:!0}),e],1===s.current.length&&(a.current=Date.now(),r(e))),o()},[e,o]),(0,w.useEffect)(()=>{if(!t)return;let e=s.current.at(-1);s.current=e&&!l.current?[e]:[],a.current=Date.now(),r(s.current[0]??null),o()},[t,o]),(0,w.useEffect)(()=>()=>{i.current&&clearTimeout(i.current)},[]),n}(s,"speaking"===e),z=function(e,t){let n=null!==e||t,[r,s]=(0,w.useState)([]),[a,l]=(0,w.useState)(n);return(0,w.useEffect)(()=>{s(t=>{let n=t.some(e=>!e.done)?t.map(e=>e.done?e:{...e,done:!0}):t;if(!e)return n;let r=t.findIndex(t=>sS(t)===sS(e));return r>=0?t.map((t,n)=>n===r?e:t):[...n,e].slice(-4)})},[e]),(0,w.useEffect)(()=>{if(n)return void l(!0);let e=setTimeout(()=>{l(!1),s([])},300);return()=>clearTimeout(e)},[n]),{lines:r,on:n,held:a}}(F,null!==a),[$,B]=(0,w.useState)(!1);(0,w.useEffect)(()=>{"user"!==P?B(!1):z.on&&B(!0)},[P,z.on]);let q=function(e,t,n){let[r,s]=(0,w.useState)(sN),a=e.findLast(e=>"assistant"===e.role),l=a?.id??null,i=a?`${a.id}:${a.text.length}`:null,o=!n&&e.at(-1)?.role==="assistant";(0,w.useEffect)(()=>{s(e=>{let n=e;for(let e of t){let t=sS(e),r=n.owner[t];if(void 0===r){let e=t in n.seen?n.seen[t]:i;if(t in n.seen||(n={...n,seen:{...n.seen,[t]:i}}),!l||e===i&&!o)continue;r=l,n={...n,owner:{...n.owner,[t]:r}}}let s=n.turns[r]??[],a=s.findIndex(e=>sS(e)===t);a>=0&&s[a]===e||(n={...n,turns:{...n.turns,[r]:a>=0?s.map((t,n)=>n===a?e:t):[...s,e]}})}return n})},[t,i,l,o]),(0,w.useEffect)(()=>{e.length||s(sN)},[e.length]);let u=(0,w.useMemo)(()=>t.filter(e=>void 0===r.owner[sS(e)]),[t,r.owner]);return{turns:r.turns,pending:u,latest:l}}(O,z.lines,z.on),U="assistant"===P&&"speaking"===e||"user"===P&&"listening"===e&&!M,K=null!==c&&null===c.missedAt,H=function(e){let[t,n]=(0,w.useState)(null);return(0,w.useEffect)(()=>{if(!e)return void n(null);let t=()=>n({...sE,at:Date.now()});t();let r=setInterval(t,2600);return()=>clearInterval(r)},[e]),t}(K);return(0,r.jsxs)("div",{className:"relative flex h-full flex-col",children:[(0,r.jsxs)("div",{className:"absolute top-5 right-5 z-10 flex flex-col items-end gap-3",children:[(0,r.jsx)(sm,{}),(0,r.jsx)(to,{hidden:"idle"!==e||null!==c||M})]}),(0,r.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col items-center justify-center gap-5 pt-[7vh]",children:[(0,r.jsxs)("div",{className:"relative w-[min(20rem,52vw,37.5vh)] [--face-bleed:19.5%]",children:[(0,r.jsx)("button",{type:"button",disabled:A,onClick:E?()=>T(!0):M&&!k?void 0:u,"aria-label":E?"Add a speech key":_?"End the call":K?"Answer Thursday":"Call Thursday",className:(0,j.cn)("block w-full rounded-full outline-none transition-all duration-700 ease-out focus-visible:ring-3 focus-visible:ring-ring/50 enabled:active:scale-[0.99] disabled:opacity-70",E&&"opacity-35"),children:(0,r.jsx)("span",{className:"block",children:(0,r.jsx)(rH.Face,{look:b,status:e,failed:t,word:H??o,getSpectrum:g,className:"-m-(--face-bleed) w-[calc(100%+2*var(--face-bleed))] max-w-none"})})}),(0,r.jsx)(rK,{status:e,charset:b.charset}),R&&(0,r.jsx)(rJ,{turns:O,pinned:D.pinned,live:U,onPick:D.pick,under:z.held&&q.pending.length>0?(0,r.jsx)(sT,{lines:q.pending,shown:z.on}):null,ahead:$&&z.held&&q.pending.length>0,typed:M,workOf:e=>{let t=[...q.turns[e]??[],...e===q.latest&&"assistant"===P?q.pending:[]];return t.length?(0,r.jsx)(sT,{lines:t,shown:!0}):null}})]}),(0,r.jsxs)("div",{className:"relative flex w-full max-w-3xl flex-col items-center gap-2 px-6 text-center",children:[c&&(0,r.jsx)(sM,{ringing:c,wakePhrase:h,onAnswer:u,onDecline:()=>d?.()}),(0,r.jsxs)("div",{className:(0,j.cn)("contents",c&&"*:invisible"),children:[(0,r.jsx)(sv,{tool:R?null:F,toolUp:null!==F,thinkingSince:a,thinkingTitle:l,listening:"listening"===e&&null===a&&!M,getMicSpectrum:x}),(0,r.jsx)(sf,{text:R||"idle"===e?"":C,fadeIn:!0,className:"w-full max-w-160 text-center text-base"}),(0,r.jsx)("div",{className:(0,j.cn)("flex flex-col items-center","idle"===e&&"order-first"),children:E?(0,r.jsx)(sz,{open:N,onOpen:()=>T(!0),onClose:()=>T(!1)}):M?(0,r.jsx)("span",{className:"h-6"}):(0,r.jsx)(sO,{status:e,idleLeft:m,since:f,ended:i,behind:R&&D.back,wakePhrase:h,hotkeyLabel:p})})]})]})]}),(0,r.jsxs)(sc,{children:[(0,r.jsx)(nO,{}),(0,r.jsx)(sr,{written:v,onCall:_}),(0,r.jsx)(eQ,{})]})]})}function sc({children:e}){return(0,r.jsx)("div",{className:"pointer-events-none absolute inset-0 z-10 grid grid-cols-[minmax(0,1fr)_auto_minmax(0,1fr)] grid-rows-[minmax(0,1fr)_auto] items-end gap-x-4 gap-y-2 p-5",children:e})}let sd=["thursday","memory","bot"];function sh({alert:e}){return e?(0,r.jsx)("span",{"aria-hidden":!0,className:(0,j.cn)("absolute top-0.5 right-0.5 size-1.5 rounded-full ring-2 ring-background","red"===e?"bg-destructive":"bg-waiting")}):null}let sp=1e3;function sm(){let e=ne(),t=t8(t4.filter(e=>!sd.includes(e.id)).map(t=>e[t.id]??null));return(0,r.jsxs)(C.TooltipProvider,{children:[(0,r.jsxs)(N,{className:"bg-background/75 backdrop-blur-md",children:[(0,r.jsx)(N,{children:sd.map(t=>{let n=t4.find(e=>e.id===t);return n?(0,r.jsxs)(C.Tooltip,{children:[(0,r.jsxs)(C.TooltipTrigger,{render:(0,r.jsx)(k.Button,{size:"icon",variant:"outline","aria-label":n.label,onClick:()=>(0,t$.openSettings)(t)}),children:[(0,r.jsx)(n.icon,{className:"text-muted-foreground"}),(0,r.jsx)(sh,{alert:e[t]??null})]}),(0,r.jsx)(C.TooltipContent,{side:"bottom",children:n.label})]},t):null})}),(0,r.jsx)(N,{children:(0,r.jsxs)(k.Button,{variant:"outline",onClick:()=>(0,t$.openSettings)(),className:"gap-1.5 px-2.5 text-[12.5px] font-normal",children:[(0,r.jsx)(x,{className:"text-muted-foreground"}),"Settings",(0,r.jsx)(sh,{alert:t})]})})]}),(0,r.jsx)(t9,{})]})}function sf({text:e,lines:t=3,fadeIn:n=!1,className:s}){let l=(0,w.useRef)(null),[i,u]=(0,w.useState)(t),[c,d]=(0,w.useState)(0);(0,w.useEffect)(()=>d(0),[e]),(0,w.useEffect)(()=>{let e=l.current;if(!e)return;let t=()=>{let t=Number.parseFloat(getComputedStyle(e).lineHeight);t&&u(Math.max(1,Math.round(e.scrollHeight/t)))};t();let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[e]);let h=Math.ceil(Math.max(0,i-t)/t),p=Math.max(0,i-t-Math.min(c,h)*t),m=`calc(${t} * 1.625em)`,f=(0,r.jsx)("p",{ref:l,style:{lineHeight:1.625,transform:`translateY(-${1.625*p}em)`},className:"break-keep wrap-anywhere whitespace-pre-line transition-transform duration-200",children:(0,r.jsx)(rP,{text:e,animate:n})});return(0,r.jsxs)("div",{className:"relative flex w-full justify-center",children:[(0,r.jsx)("div",{style:{height:m},onClick:h>0?()=>d(e=>e>=h?0:e+1):void 0,className:(0,j.cn)("overflow-hidden",h>0&&"cursor-pointer",s),children:f}),h>0&&(0,r.jsxs)("div",{className:"absolute top-1/2 right-0 flex -translate-y-1/2 flex-col items-center gap-0.5",children:[(0,r.jsx)(sg,{look:o,label:"Earlier lines",shown:c<h,onPick:()=>d(e=>Math.min(h,e+1))}),(0,r.jsx)(sg,{look:a.ChevronDown,label:"Later lines",shown:c>0,onPick:()=>d(e=>Math.max(0,e-1))})]})]})}function sg({look:e,label:t,shown:n,onPick:s}){return(0,r.jsx)("button",{type:"button","aria-label":t,"aria-hidden":!n,tabIndex:n?void 0:-1,onClick:e=>{e.stopPropagation(),s()},className:(0,j.cn)("grid size-7 place-items-center rounded-full text-muted-foreground/60 outline-none transition-colors hover:bg-muted hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",!n&&"invisible"),children:(0,r.jsx)(e,{className:"size-3.5"})})}let sx=[{id:"a",from:0,to:1,gain:.8},{id:"b",from:1,to:3,gain:1},{id:"c",from:3,to:5,gain:1.15},{id:"d",from:5,to:6,gain:1.35},{id:"e",from:6,to:8,gain:1.55}];function sy({live:e,getMicSpectrum:t}){let n=(0,w.useRef)({}),s=(0,w.useRef)(sx.map(()=>0));return(0,w.useEffect)(()=>{if(!e||!t)return;let r=requestAnimationFrame(function e(){let a=t();sx.forEach((e,t)=>{let r=0;for(let t=e.from;t<e.to;t++)r=Math.max(r,a[t]??0);let l=Math.min(1,(r*e.gain)**.8),i=s.current[t],o=i+(l-i)*(l>i?.6:.16);s.current[t]=o;let u=n.current[e.id];u&&(u.style.height=`${2+12*o}px`)}),r=requestAnimationFrame(e)});return()=>cancelAnimationFrame(r)},[e,t]),(0,r.jsx)("span",{"aria-hidden":!0,className:"flex h-3.5 w-[18px] shrink-0 items-center gap-0.5",children:sx.map(e=>(0,r.jsx)("span",{ref:t=>{n.current[e.id]=t},style:{height:2},className:"w-0.5 rounded-full bg-muted-foreground/70"},e.id))})}function sw({live:e,getMicSpectrum:t}){return(0,r.jsxs)("span",{className:"flex items-center gap-1.5 text-[13px] leading-5 text-muted-foreground",children:[(0,r.jsx)(sy,{live:e,getMicSpectrum:t}),"Listening"]})}function sb({tool:e}){let t="relay"===e.kind?c:(0,e1.toolIcon)(e.name),n=e.line??e.name,s=e.line?"min-w-0 truncate text-[13px] leading-5 break-keep":"min-w-0 truncate font-mono text-xs leading-5",a=(0,Y.useServerRoute)(b.queryKey.bot).data,l=e.bot?a?.find(t=>t.name===e.bot)??null:null;return(0,r.jsxs)("span",{className:"flex max-w-full items-center gap-1.5",children:[(0,r.jsxs)("span",{className:"relative grid size-[18px] shrink-0 place-items-center",children:[(0,r.jsx)(sk,{tool:e,bot:l,icon:t}),!e.done&&(0,r.jsx)("span",{className:"absolute inset-0 grid animate-ink place-items-center",children:(0,r.jsx)(sk,{tool:e,bot:l,icon:t,running:!0})})]}),e.done&&e.sources?.length?(0,r.jsx)(_.SourceChips,{sources:e.sources,limit:2,className:"flex-nowrap"}):e.done?(0,r.jsx)("span",{className:(0,j.cn)(s,"text-muted-foreground"),children:n}):(0,r.jsx)(M.ShinyText,{text:n,className:s})]})}function sk({tool:e,bot:t,icon:n,running:s}){return e.bot?(0,r.jsx)("span",{className:(0,j.cn)("flex",!s&&!e.done&&"opacity-40"),children:(0,r.jsx)(D.BotMark,{size:16,seed:e.bot,color:t?.icon?.color,shape:t?.icon?.shape,outline:t?.icon?.outline,paint:t?.icon?.paint,notify:!1})}):(0,r.jsx)(n,{className:(0,j.cn)("size-3.5",s?"text-foreground":"text-muted-foreground",!s&&!e.done&&"opacity-40")})}function sv({tool:e,toolUp:t,thinkingSince:n,thinkingTitle:s,listening:a,getMicSpectrum:l}){let[i,o]=(0,w.useState)(e);(0,w.useEffect)(()=>{e&&o(e)},[e]);let{thought:u,title:c}=function(e,t){let[n,r]=(0,w.useState)(null!==e),[s,a]=(0,w.useState)(t);return(0,w.useEffect)(()=>{null!==e&&(r(!0),a(t))},[e,t]),{thought:n,title:s}}(n,s),d=a&&!e;return(0,r.jsxs)("div",{className:"flex h-7 max-w-full items-center justify-center gap-2",children:[(0,r.jsxs)("div",{className:"grid min-w-0 items-center justify-items-center",children:[i&&(0,r.jsx)(sI,{at:"col-start-1 row-start-1 max-w-full",shown:null!==e,children:(0,r.jsx)(sb,{tool:i})}),u&&(0,r.jsx)(sI,{at:"col-start-1 row-start-1",shown:null!==n&&!t,children:(0,r.jsx)(s$,{title:c})}),(0,r.jsx)(sI,{at:"col-start-1 row-start-1",shown:d,children:(0,r.jsx)(sw,{live:d,getMicSpectrum:l})})]}),(0,r.jsx)(rI.WorkChip,{shown:null!==n})]})}let sj=[1,.7,.45],sS=e=>e.id??`${e.kind??"tool"}:${e.name}`,sN={turns:{},owner:{},seen:{}};function sT({lines:e,shown:t}){let n=Math.max(0,e.length-3),s=e.length-n;return(0,r.jsx)("div",{"aria-hidden":!t,className:(0,j.cn)("pointer-events-auto relative w-full transition-opacity duration-300 ease-out",!t&&"pointer-events-none opacity-0"),style:{height:26*s},children:e.map((t,s)=>{let a=s-n;return(0,r.jsx)("div",{style:{transform:`translateY(${26*a}px)`,opacity:a<0?0:sj[e.length-1-s],height:26},className:"absolute inset-x-0 top-0 flex items-center transition-[transform,opacity] duration-300 ease-out motion-reduce:transition-none",children:(0,r.jsx)("div",{className:"flex min-w-0 animate-in duration-300 fade-in slide-in-from-bottom-1 motion-reduce:animate-none",children:(0,r.jsx)(sb,{tool:t})})},sS(t))})})}let sE={text:"CALL",hold:1.5},sA="rounded-md border border-border bg-background px-1.5 py-0.5 font-mono text-[10px] text-foreground/80 shadow-[0_1px_0_var(--border)]";function sM({ringing:e,wakePhrase:t,onAnswer:n,onDecline:s}){let a=(0,Y.useServerRoute)(b.queryKey.bot).data,l=(e,t)=>{let n=a?.find(t=>t.name===e.bot)?.icon;return(0,r.jsx)(D.BotMark,{size:t,seed:e.bot,color:n?.color,shape:n?.shape,outline:n?.outline,paint:n?.paint,notify:!1,className:"shrink-0"})},{first:i,others:o,missedAt:u}=e,[c,d]=(0,U.useAnswerThread)(),[h,p]=(0,w.useState)(null);if(null!==u){let e=[i,...o];return(0,r.jsxs)("div",{className:"absolute inset-x-0 -top-20 z-10 flex animate-in flex-col items-center px-6 fade-in duration-300",children:[(0,r.jsxs)("div",{className:"flex w-full max-w-140 flex-col text-left",children:[(0,r.jsxs)("p",{className:"mb-1.5 flex items-center gap-2 font-mono text-[11px] text-muted-foreground",children:[(0,r.jsx)(f,{className:"size-3"}),(0,r.jsxs)("span",{children:["Missed · ",(0,r.jsx)(s_,{at:u})]}),(0,r.jsxs)("button",{type:"button",onClick:s,className:"ml-auto flex items-center gap-1.5 rounded-md outline-none hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",children:[(0,r.jsx)("kbd",{className:sA,children:"Esc"}),"clear"]})]}),e.slice(0,3).map(e=>(0,r.jsxs)("div",{className:"flex h-8.5 items-center gap-2.5",children:[l(e,20),(0,r.jsx)("span",{className:"w-32 shrink-0 truncate text-[13.5px]",children:e.label}),(0,r.jsx)("span",{className:"w-14 shrink-0 font-mono text-[10.5px] text-muted-foreground",children:sL[e.kind]}),(0,r.jsx)("span",{className:"min-w-0 flex-1 truncate text-[13px] text-muted-foreground",children:(0,j.plainText)(e.text)})]},e.id)),e.length>3&&(0,r.jsxs)("p",{className:"mt-1 font-mono text-[10.5px] text-muted-foreground/70",children:["+",e.length-3," more in the room"]})]}),(0,r.jsx)(k.Button,{variant:"brand",onClick:n,className:"mt-5 h-12 px-8 text-[15px]",children:"Call back"}),t&&(0,r.jsxs)("span",{className:"mt-3 flex items-center gap-1.5 font-mono text-[11px] text-muted-foreground/70",children:["or say ",(0,r.jsx)(sC,{phrase:t})]})]})}return(0,r.jsxs)("div",{className:"absolute inset-x-0 -top-20 z-10 flex animate-in flex-col items-center gap-3 px-6 fade-in duration-300",children:[(0,r.jsxs)("span",{className:"flex max-w-full items-center gap-2 text-sm",children:[l(i,18),(0,r.jsx)("span",{children:i.bot}),(0,r.jsx)("span",{className:"text-muted-foreground/40",children:"·"}),(0,r.jsx)("span",{className:"truncate text-muted-foreground",children:i.label})]}),(0,r.jsx)("p",{className:"line-clamp-3 max-w-150 text-base/relaxed text-pretty break-keep wrap-anywhere [@media(min-height:860px)]:line-clamp-5",children:(0,j.plainText)(i.text)}),i.options.length>0&&(0,r.jsx)("span",{className:"flex max-w-full flex-wrap justify-center gap-1.5",children:i.options.map(e=>(0,r.jsx)(k.Button,{size:"sm",variant:"secondary",loading:h===e,disabled:d,onClick:async()=>{p(e),await c(i,e,i.bot,i.questionId??void 0),p(null)},className:"h-7 max-w-60 rounded-full px-3 text-[12.5px]",children:(0,r.jsx)("span",{className:"truncate",children:e})},e))}),(0,r.jsx)(k.Button,{variant:"brand",onClick:n,className:"mt-3 h-12 px-8 text-[15px]",children:"Answer"}),o.length>0&&(0,r.jsxs)("span",{className:"flex max-w-full flex-wrap items-center justify-center gap-x-4.5 gap-y-1 text-[13px] text-muted-foreground",children:[o.slice(0,2).map(e=>(0,r.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5",children:[l(e,16),(0,r.jsx)("span",{className:"max-w-44 truncate text-foreground",children:e.label}),sL[e.kind]]},e.id)),o.length>2&&(0,r.jsxs)("span",{children:["+",o.length-2]})]}),(0,r.jsxs)("span",{className:"mt-1 flex items-center gap-3 font-mono text-[11px] text-muted-foreground/70",children:[t&&(0,r.jsxs)("span",{className:"flex items-center gap-1.5",children:["say ",(0,r.jsx)(sC,{phrase:t})," to answer"]}),(0,r.jsxs)("button",{type:"button",onClick:s,className:"flex items-center gap-2 rounded-md outline-none hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",children:[(0,r.jsx)("kbd",{className:sA,children:"Esc"}),"not now"]})]})]})}function s_({at:e}){let[t,n]=(0,w.useState)(()=>Date.now());return(0,w.useEffect)(()=>{let e=setInterval(()=>n(Date.now()),3e4);return()=>clearInterval(e)},[]),t-e<6e4?"just now":(0,s.formatDistanceStrict)(e,t,{addSuffix:!0})}function sC({phrase:e}){return(0,r.jsxs)("span",{className:"flex items-center gap-1 rounded-full bg-muted px-2 py-0.5 text-foreground/80",children:[(0,r.jsx)(d.Mic,{className:"size-3"}),e]})}let sL={question:"asks",done:"finished",stopped:"stopped"};function sI({at:e,shown:t,children:n}){return(0,r.jsx)("span",{"aria-hidden":!t,className:(0,j.cn)("flex transition-opacity duration-300 ease-out",e,t?"opacity-100":"pointer-events-none opacity-0"),children:n})}let sR={quiet:`${L.CALL_IDLE.hangUpMs/1e3}s of quiet`,hungUp:"Thursday hung up",closed:"Live closed the call",dropped:"the connection dropped"};function sO({status:e,idleLeft:t,since:n,ended:s,behind:a,wakePhrase:l,hotkeyLabel:i}){let o,u,c="connecting"===e||"ending"===e,d="idle"!==e&&!c;return c?(u=e,o=(0,r.jsx)(M.ShinyText,{text:"connecting"===e?"Connecting…":"Ending…",className:"text-muted-foreground/70"})):d&&null!==t?(u="quiet",o=`Quiet — ending in ${t}s. Say anything to stay.`):d?(u=a?"behind":"live",o=(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{children:"Tap Thursday to end"}),(0,r.jsx)("span",{className:"text-muted-foreground/40",children:"·"}),a?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("kbd",{className:sA,children:"↓"}),(0,r.jsx)("span",{children:"back to now"})]}):(0,r.jsx)(sB,{since:n})]})):s?(u=`ended:${s}`,o=(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("span",{children:["Ended — ",sR[s]]}),(0,r.jsx)("span",{className:"text-muted-foreground/40",children:"·"}),(0,r.jsx)("span",{children:"Tap to call again"})]})):l?(u=`wake:${l}`,o=(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(E,{text:"Tap Thursday, or say"}),(0,r.jsx)(sP,{at:500,children:(0,r.jsx)(sC,{phrase:l})}),(0,r.jsx)(sP,{at:sD,children:(0,r.jsx)(sF,{})})]})):i?(u=`key:${i}`,o=(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(E,{text:"Tap Thursday, or press"}),(0,r.jsx)(sP,{at:550,children:(0,r.jsx)("kbd",{className:sA,children:i})}),(0,r.jsx)(sP,{at:sD,children:(0,r.jsx)(sF,{})})]})):(u="tap",o=(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(E,{text:"Tap Thursday to talk"}),(0,r.jsx)(sP,{at:sD,children:(0,r.jsx)(sF,{})})]})),(0,r.jsx)("span",{className:"flex h-6 animate-in items-center gap-1.5 font-mono text-[11px] text-muted-foreground fade-in duration-700",children:o},u)}let sD=900;function sP({at:e,children:t}){return(0,r.jsx)("span",{style:{animationDelay:`${e}ms`},className:"flex animate-in items-center gap-1.5 duration-700 fill-mode-backwards fade-in",children:t})}function sF(){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"px-1.5 text-muted-foreground/30",children:"·"}),(0,r.jsx)("span",{className:"text-muted-foreground/70",children:"/ to write"})]})}function sz({open:e,onOpen:t,onClose:n}){return e?(0,r.jsxs)("div",{className:"w-[min(26rem,84vw)] animate-in space-y-2.5 rounded-2xl bg-background/80 p-3 ring-1 ring-border/60 backdrop-blur-md fade-in duration-300",children:[(0,r.jsxs)("div",{className:"flex h-6 items-center justify-between gap-2 pl-0.5",children:[(0,r.jsx)("span",{className:"text-[13px] font-medium",children:"Paste your OpenAI API key"}),(0,r.jsx)(k.Button,{type:"button",size:"icon",variant:"ghost","aria-label":"Not now",onClick:n,className:"-my-1 size-6",children:(0,r.jsx)(y.X,{className:"size-3.5"})})]}),(0,r.jsx)(e7.VoiceKeys,{dense:!0,plain:!0,autoFocus:!0,onSaved:()=>e6()}),(0,r.jsx)(e7.GetKeyLink,{})]}):(0,r.jsxs)("span",{className:"flex animate-in items-center gap-2 rounded-full bg-muted/60 py-1 pr-1 pl-1.5 ring-1 ring-border/60 fade-in duration-500",children:[(0,r.jsxs)("span",{className:"relative flex size-6 shrink-0 items-center justify-center",children:[(0,r.jsx)(D.BotMark,{size:24,seed:O.DEFAULT_BOT.name,color:O.DEFAULT_BOT.icon?.color,shape:O.DEFAULT_BOT.icon?.shape,outline:O.DEFAULT_BOT.icon?.outline,notify:!1}),(0,r.jsx)(p,{className:"absolute -right-0.5 -bottom-0.5 size-2.5 rounded-full bg-muted text-muted-foreground"})]}),(0,r.jsx)("span",{className:"text-[13px] text-muted-foreground break-keep wrap-anywhere",children:"Calls need one speech key. Everything else here already works."}),(0,r.jsx)(k.Button,{size:"sm",variant:"brand",onClick:t,className:"h-7 px-3.5",children:"Add key"})]})}function s$({title:e}){var t;let n=e?`Thinking about ${t=e,/^\p{Lu}\p{Lu}/u.test(t)?t:t.charAt(0).toLowerCase()+t.slice(1)}`:"Thinking…";return(0,r.jsx)("span",{className:"flex max-w-full items-center text-[13px] leading-5",children:(0,r.jsx)(M.ShinyText,{text:n,className:"min-w-0 animate-in truncate fade-in duration-300"},n)})}function sB({since:e}){let[t,n]=(0,w.useState)(()=>Date.now());if((0,w.useEffect)(()=>{if(null===e)return;let t=setInterval(()=>n(Date.now()),1e3);return()=>clearInterval(t)},[e]),null===e)return null;let s=Math.max(0,Math.floor((t-e)/1e3)),a=String(Math.floor(s/60)).padStart(2,"0"),l=String(s%60).padStart(2,"0");return(0,r.jsxs)("span",{className:"tabular-nums",children:[a,":",l]})}e.s(["Ear",0,sw,"Thursday",0,function({ready:e}){let t=function(){let[e,t]=(0,w.useState)(null),n=(0,w.useRef)(e);n.current=e;let r=(0,w.useRef)(new Set),[s]=(0,nh.useServerAction)(nk),a=(0,w.useRef)(null),l=(0,w.useRef)([]),[i,o]=(0,w.useState)([]),u=(0,w.useCallback)(e=>{l.current=e,o(e)},[]),c=(0,w.useRef)(new Map),d=(0,w.useRef)(0),[h,p]=(0,w.useState)(null),m=(0,w.useRef)(()=>{}),{messages:f,sendMessage:g,setMessages:x,status:y,stop:k,error:v,clearError:S}=(0,ni.useChat)({transport:nS,onFinish:e=>m.current(e)}),N="submitted"===y||"streaming"===y,T=(0,w.useRef)(f);T.current=f;let E=(0,w.useRef)(v);E.current=v;let A=(0,w.useRef)(""),M=(0,w.useCallback)(e=>{let t=n.current;if(!t)return;let r=l.current;u([]);let s=crypto.randomUUID();a.current=s;let i=nN();A.current=JSON.stringify(i??null);let o=[...r.map(nT),...e?[{type:"text",text:e}]:[]];g(o.length?{parts:o}:void 0,{body:{callId:t.callId,standing:t.standing,runsOn:i,turn:s}})},[g,u]),_=(0,w.useCallback)(()=>{let e=n.current;if(e){for(let e of(n.current=null,t(null),a.current=null,c.current.values()))np.delete(e.key);c.current.clear(),u([]),d.current=0,p(null),k(),x([]),S(),nb(e.callId).then(e5.unwrapResult).finally(()=>(0,Y.revalidate)(b.queryKey.callHistory(null)))}},[k,x,S,u]),C=(0,w.useRef)(_);C.current=_,(0,w.useEffect)(()=>()=>C.current(),[]);let I=(0,w.useCallback)(e=>{u([...l.current,e]);let t=n.current,r=a.current;t&&r&&nv(t.callId,r,e).then(e5.unwrapResult).catch(()=>{})},[u]);(0,w.useEffect)(()=>G.screenActs.subscribe(e=>{n.current&&I({id:crypto.randomUUID(),text:nw(e),said:!1})}),[I]);let R=(0,w.useCallback)(async e=>{let l=n.current;if(l||(n.current=l={...await s(nN()),at:Date.now()},r.current=nm(P.current??[]),t(l)),d.current=0,a.current)return I({id:crypto.randomUUID(),text:e,said:!0});S(),M(e)},[s,I,S,M]),O=(0,w.useCallback)(()=>{let e=T.current,t=e.at(-1);if(n.current&&t){if("assistant"===t.role){let n=A.current!==JSON.stringify(nN()??null)?-1:t.parts.findLastIndex(e=>(0,no.isToolUIPart)(e)&&!e.providerExecuted&&("output-available"===e.state||"output-error"===e.state));u([...nA([{...t,parts:t.parts.slice(n+1)}]),...l.current]),x(n<0?e.slice(0,-1):[...e.slice(0,-1),{...t,parts:t.parts.slice(0,n+1)}])}S(),M(null)}},[M,x,S,u]),{data:D}=(0,Y.useServerRoute)(b.queryKey.threads),P=(0,w.useRef)(D);P.current=D;let F=(0,w.useCallback)(()=>{if(!n.current||!P.current)return;let e=ny(P.current),t=new Set(e.map(e=>e.key)),s=l.current.filter(e=>{let n=c.current.get(e.id);return void 0!==n&&!t.has(n.key)});if(s.length){for(let e of s){let t=c.current.get(e.id);t&&np.delete(t.key),c.current.delete(e.id)}u(l.current.filter(e=>!s.includes(e)))}for(let t of e){if(np.has(t.key)||r.current.has(t.key))continue;np.add(t.key);let e={id:crypto.randomUUID(),text:t.line,said:!1};c.current.set(e.id,{key:t.key,rows:t.relayIds,show:t.show}),a.current&&p(t.show),I(e)}if(a.current||E.current||d.current>=L.TEXT_CALL.autoTurns)return;let i=l.current.filter(e=>c.current.has(e.id)),o=i.length?c.current.get(i[i.length-1].id):null;o&&(d.current+=1,p(o.show),M(null))},[u,I,M]),z=null!==e;(0,w.useEffect)(()=>{z&&D&&F()},[z,D,F]),m.current=({message:e,messages:t,isAbort:r,isError:s,isDisconnect:i})=>{if(r||!n.current)return;a.current=null;let o=new Set(nA([e]).map(e=>e.id));if(u(l.current.filter(e=>!o.has(e.id))),s||i)return;let d=new Set(nA(t).map(e=>e.id)),h=[];for(let[e,t]of c.current)d.has(e)&&(h.push(...t.rows),c.current.delete(e));if(h.length&&nd(h).then(e5.unwrapResult).catch(e=>e2.toast.add({type:"error",title:"Could not record relay delivery",description:(0,j.errorToString)(e)})),l.current.some(e=>e.said))return M(null);F()},(0,w.useEffect)(()=>{if(N||!h)return;let e=setTimeout(()=>p(null),L.CALL_LINE.lingerMs);return()=>clearTimeout(e)},[N,h]);let $=f.at(-1)?.role==="assistant"?f.at(-1):null,B=$?.parts??[],q=B.at(-1),U=(0,w.useMemo)(()=>{let e=[],t=!1,n=(n,r,s)=>{if(!s)return;let a=t&&"assistant"===r;"assistant"===r&&(t=!1),e.push({id:n,role:r,text:s,...a?{fresh:!0}:{}})};for(let e of f){if("system"===e.role)continue;let r=e.role,s=[],a=0,l=()=>{let t=s.join("\n\n").trim();s=[],n(`${e.id}:${a++}`,r,"assistant"===r?(0,j.captionText)(t):t)};for(let r of e.parts){"text"===r.type&&s.push(r.text);let e=nE(r);e&&(l(),e.said?n(e.id,"user",e.text):t=!0)}l()}let r=new Set(nA(f).map(e=>e.id));for(let e of i)e.said&&!r.has(e.id)&&n(e.id,"user",e.text);return e},[f,i]),K=[...B].reverse().find(no.isToolUIPart),H=K?.toolCallId??null,W=K?(0,no.getToolName)(K):null,V=K?.state==="output-available"||K?.state==="output-error",J=K?.output,X=(0,w.useMemo)(()=>V&&W===nu.TOOL_NAMES.web_search?(0,nj.searchSourcesOf)(JSON.stringify(J??null)):[],[V,W,J]),Z=J?.action?.query,Q=JSON.stringify({..."string"==typeof Z?{query:Z}:{},...K?.input??{}}),ee=W?(0,nj.toolBot)(W,Q,P.current,void 0===J?void 0:JSON.stringify(J)):null,et=W?(0,nj.toolLine)(W,Q,ee):null,en=q?.type==="text",er=(0,w.useMemo)(()=>H&&W&&(!en||X.length)?{id:H,name:W,line:et,bot:ee,done:V,...X.length?{sources:X}:{}}:null,[H,W,et,ee,V,X,en]),[es,ea]=(0,w.useState)(null),el=er?.done&&!er.sources?er.id:null;(0,w.useEffect)(()=>{if(!el)return;let e=setTimeout(()=>ea(el),L.CALL_LINE.lingerMs);return()=>clearTimeout(e)},[el]);let ei=er&&er.id!==es?er:h,eo=!!N&&q?.type!=="text"&&(!er||!!er.done),[eu,ec]=(0,w.useState)(null);(0,w.useEffect)(()=>{ec(eo?Date.now():null)},[eo]);let ed=[...B].reverse().find(e=>"reasoning"===e.type),eh=eo&&ed?.type==="reasoning"&&(0,nj.reasoningTitle)(ed.text)||null,ep=e?N?q?.type==="text"?"speaking":er&&!er.done&&er.name===nu.TOOL_NAMES.thread_start?"delegating":"working":"listening":"idle";return{on:null!==e,busy:N,status:ep,messages:U,tool:ei,thinkingSince:eu,thinkingTitle:eh,since:e?.at??null,error:v?v.message:null,say:R,again:O,end:_}}(),{status:n,failed:s,messages:a,tool:l,thinkingSince:i,thinkingTitle:o,ended:u,faceWord:c,idleLeft:d,since:h,call:p,ringing:m,decline:f,getSpectrum:g,getMicSpectrum:x,wakePhrase:y,hotkey:k}=function(e=!1){let t,n,r=(0,w.useRef)(null),s=(0,w.useRef)(null),a=(0,w.useRef)(null),[l,i]=(0,w.useState)("idle"),[o,u]=(0,w.useState)(!1),c=(0,w.useRef)(null),d=(0,w.useCallback)(e=>{c.current&&clearTimeout(c.current),c.current=e?setTimeout(()=>u(!1),6e3):null,u(e)},[]),[h,p]=(0,w.useState)([]),[m,f]=(0,w.useState)(null),[g,x]=(0,w.useState)(null),[y,k]=(0,w.useState)(null),[v,S]=(0,w.useState)(null),[N,T]=(0,w.useState)(null),[E,A]=(0,w.useState)(null),[M,_]=(0,w.useState)(null),C=(0,w.useRef)(null),R=(0,w.useRef)(null),O=(0,w.useRef)({on:!1,spoke:!1,giveUp:null}),D=(0,w.useRef)(null),P=(0,w.useRef)(0),F=(0,w.useRef)(null),$=(0,w.useRef)(!1),B=(0,w.useRef)(null),q=(0,w.useRef)(null),U=(0,w.useRef)(np),K=(0,w.useRef)(new Set),V=(0,w.useRef)(new Set),J=(0,w.useRef)([]),X=(0,w.useRef)([]),Z=(0,w.useRef)(0),Q=(0,w.useRef)(null),ee=(0,w.useRef)(0),et=(0,w.useRef)(!1),en=(0,w.useRef)(!1),er=(0,w.useRef)(void 0),es=(0,w.useRef)(null),ea=es.current??=(t=[],n=null,{send(e){n?n(e):t.push(e)},open(e){n=e;let r=t;for(let n of(t=[],r))e(n)},close(){n=null},clear(){let e=t;return t=[],e}}),el=(0,w.useRef)(!1),ei=(0,w.useRef)(!1),eo=(0,w.useRef)(!1),eu=(0,w.useRef)(0),ec=(0,w.useCallback)(e=>{F.current&&clearTimeout(F.current),$.current=!1;let t=(0,nj.toolBot)(e.name,e.arguments,er.current);f({id:e.id,name:e.name,line:(0,nj.toolLine)(e.name,e.arguments,t),bot:t,done:!1})},[]),ed=(0,w.useCallback)((e,t)=>{let n=(0,nj.toolBot)(e.name,e.arguments,er.current,t);n&&f(t=>t?.id===e.id&&t.bot!==n?{...t,bot:n,line:(0,nj.toolLine)(e.name,e.arguments,n)}:t)},[]),eh=(0,w.useCallback)(e=>{F.current&&clearTimeout(F.current),$.current=!0,f({...e,done:!1})},[]),ep=(0,w.useCallback)(e=>{f(t=>t?.id===e?{...t,done:!0}:t),F.current&&clearTimeout(F.current),F.current=setTimeout(()=>f(e=>e?.done?null:e),L.CALL_LINE.lingerMs)},[]),em=(0,w.useCallback)(()=>{if(O.current.giveUp&&clearTimeout(O.current.giveUp),O.current.spoke){for(let e of J.current)K.current.delete(e);let e=X.current;e.length&&nd(e).then(e5.unwrapResult).catch(e=>e2.toast.add({type:"error",title:"Could not record relay delivery",description:(0,j.errorToString)(e)}))}X.current=[],J.current=[],O.current={on:!1,spoke:!1,giveUp:null},$.current&&($.current=!1,f(e=>e?.kind==="relay"?{...e,done:!0}:e),F.current&&clearTimeout(F.current),F.current=setTimeout(()=>f(e=>e?.kind==="relay"?null:e),L.CALL_LINE.relayLingerMs))},[]),ef=(0,w.useCallback)(()=>{O.current.giveUp&&clearTimeout(O.current.giveUp),O.current={on:!0,spoke:!1,giveUp:setTimeout(em,L.CALL_RELAY.readMs)}},[em]),eg=(0,w.useCallback)(e=>{C.current=e,T(e),A(null)},[]),ex=(0,w.useCallback)((e,t)=>{let n=()=>{R.current&&clearTimeout(R.current),R.current=null};if(t){n(),null!==C.current&&eg(null);return}if(e){n(),null===C.current&&eg(Date.now());return}null===C.current||R.current||(R.current=setTimeout(()=>{R.current=null,eg(null)},L.CALL_LINE.thinkingTailMs))},[eg]),ey=(0,w.useCallback)(()=>{let e=r.current,t=er.current;if(!e||!t||O.current.on||en.current||null!==C.current||Q.current)return;let n=et.current;if(et.current=!1,!n&&Date.now()-ee.current<L.CALL_RELAY.quietMs)return;let s=ny(t).filter(e=>!U.current.has(e.key)&&!V.current.has(e.key)),a=s[0];if(!a)return;let l=s.filter(e=>e.kind===a.kind).slice(0,L.CALL_RELAY.perTurn),i=l.map(e=>e.line);for(let e of l)U.current.add(e.key),K.current.add(e.key);a.key.startsWith("done:")&&_(rS()),ef(),J.current=l.map(e=>e.key),X.current=l.flatMap(e=>e.relayIds),eh((l.at(-1)??a).show),e.append("commentary",1===i.length?i.join(""):`[${i.length} updates.]
14
+
15
+ ${i.join("\n\n")}`).then(e=>{e||(X.current=[],em())})},[ef,em,eh]),ew=(0,w.useRef)(l);(0,w.useEffect)(()=>{ew.current=l},[l]);let eb=(0,w.useRef)("listening"),ek=(0,w.useRef)(null),ev=(0,w.useCallback)(()=>{ek.current&&clearTimeout(ek.current),ek.current=null},[]),ej=(0,w.useCallback)(e=>{ew.current=e,i(e)},[]),eS=(0,w.useCallback)(e=>{eb.current=e;let t=ew.current;if("speaking"===e){ev(),ej(e);return}let n="working"===e||"delegating"===e;if(n&&("working"===t||"delegating"===t)){ev(),ej(e);return}n||"listening"!==t?ek.current||(ek.current=setTimeout(()=>{ek.current=null,ej(eb.current)},n?800:600)):ev()},[ev,ej]),eN="idle"!==l&&"connecting"!==l&&"ending"!==l,{data:eT}=(0,Y.useServerRoute)(b.queryKey.threads,{refreshInterval:L.INBOX_POLL_MS}),eE=(0,w.useRef)(!1);(0,z.useAppEvent)({hello:()=>{if(!eE.current){eE.current=!0;return}(0,Y.revalidateAll)()},threads:()=>void(0,Y.revalidate)(b.queryKey.threads),routines:()=>void(0,Y.revalidate)(b.queryKey.routines),memory:()=>void(0,Y.revalidate)(b.queryKey.memory),mcp:()=>{(0,Y.revalidate)(b.queryKey.mcp),(0,Y.revalidate)(b.queryKey.mcpTools)},config:()=>{(0,Y.revalidate)(b.queryKey.config),(0,Y.revalidate)(b.queryKey.llmModel)}});let{data:eA}=(0,Y.useServerRoute)(b.queryKey.bot);(0,w.useEffect)(()=>{eT&&G.botThreads.sync(eT,eA)},[eT,eA]),(0,w.useEffect)(()=>{er.current=eT},[eT]);let eM=function({threads:e,resting:t,writing:n}){let r=(0,w.useRef)(Date.now()),[s,a]=(0,w.useState)([]),[l,i]=(0,w.useState)(null),o=s.length>0,u=(0,na.useThursdayStore)(e=>e.callBack);(0,w.useEffect)(()=>{if(!e)return;let s=new Set(e.filter(e=>{let t,n;return t=e,"off"!==(n=u)&&!t.seen&&(t.room.questions.length>0||"any"===n&&"running"!==t.status)}).map(e=>e.id));if(a(e=>e.every(e=>s.has(e))?e:e.filter(e=>s.has(e))),!t||n)return;let l=r.current,o=e.filter(e=>s.has(e.id)&&(0,W.toDate)(e.updatedAt).getTime()>l);o.length&&(r.current=Math.max(...o.map(e=>(0,W.toDate)(e.updatedAt).getTime())),i(null),a(e=>[...e,...o.map(e=>e.id).filter(t=>!e.includes(t))]))},[e,u,t,n]),(0,w.useEffect)(()=>{n?(a([]),i(null)):r.current=Date.now()},[n]);let c=(0,w.useCallback)(()=>{a([]),i(null)},[]);(0,H.useEscape)(o,c),(0,w.useEffect)(()=>{if(!o||null!==l)return;let e=setTimeout(()=>i(Date.now()),L.CALL_BACK.ringMs);return()=>clearTimeout(e)},[o,l]),(0,w.useEffect)(()=>{let e,t,n,r;if(!o||null!==l)return;let s=(e=null,t=null,n=(e,t)=>{let n=e.createGain();for(let r of(n.gain.setValueAtTime(0,t),n.gain.linearRampToValueAtTime(.05,t+.03),n.gain.setValueAtTime(.05,t+.34-.08),n.gain.linearRampToValueAtTime(0,t+.34),n.connect(e.destination),rA)){let s=e.createOscillator();s.type="sine",s.frequency.value=r,s.connect(n),s.start(t),s.stop(t+.34)}},r=()=>{if(!e||"running"!==e.state)return;let t=e.currentTime+.02;n(e,t),n(e,t+.34+.16)},{start(){!t&&"u">typeof AudioContext&&((e??=new AudioContext).resume().then(r).catch(()=>{}),t=setInterval(r,2600))},stop(){t&&clearInterval(t),t=null,e?.close().catch(()=>{}),e=null}});return s.start(),()=>s.stop()},[o,l]);let d=(0,w.useMemo)(()=>{let[t,...n]=s.flatMap(t=>{let n=e?.find(e=>e.id===t);if(!n)return[];let r=n.room.questions[0];return[{id:n.id,bot:r?.bot??n.bot,kind:r?"question":"done"===n.status?"done":"stopped",label:n.label,text:r?.text??n.outcome??n.ask?.question??n.label,options:r?.options??[],questionId:r?.id??null}]});return t?{first:t,others:n,missedAt:l}:null},[s,e,l]);return(0,w.useEffect)(()=>{G.ringingThreads.set(s)},[s]),{ringing:d,isRinging:o,ringingFor:s,answered:(0,w.useCallback)(()=>{a([]),i(null)},[]),settle:(0,w.useCallback)(()=>{r.current=Date.now()},[]),decline:c}}({threads:eT,resting:"idle"===l,writing:e}),{answered:e_,settle:eC}=eM;(0,w.useEffect)(()=>G.screenActs.subscribe(e=>{el.current&&ea.send(nw(e))}),[ea]);let eL=(0,w.useCallback)(async(e=null)=>{if(eo.current)return;eo.current=!0,Q.current&&clearInterval(Q.current),Q.current=null,eu.current+=1;let t=r.current,n=q.current;for(let e of(r.current=null,q.current=null,el.current=!1,ei.current=!1,et.current=!1,K.current))U.current.delete(e);K.current.clear(),ea.close(),ea.clear(),B.current?.abort(),B.current=null,em(),F.current&&clearTimeout(F.current),ev(),eC(),k(null),x(null),i(t?"ending":"idle"),t&&_(rj()),p([]),f(null),eg(null),R.current&&clearTimeout(R.current),R.current=null,$.current=!1,await t?.close();let s=D.current;D.current=null,eo.current=!1,i("idle"),t&&S(e),n&&nb(n,s),t&&a.current&&(a.current.currentTime=0,a.current.play().catch(()=>{}))},[ea,ev,em,eg]);(0,w.useEffect)(()=>()=>{eu.current+=1,r.current?.close(),r.current=null;let e=q.current;for(let t of(q.current=null,el.current=!1,ei.current=!1,e&&nb(e),K.current))U.current.delete(t);K.current.clear(),B.current?.abort(),B.current=null,F.current&&clearTimeout(F.current),ek.current&&clearTimeout(ek.current),O.current.giveUp&&clearTimeout(O.current.giveUp),R.current&&clearTimeout(R.current),c.current&&clearTimeout(c.current),Q.current&&clearInterval(Q.current)},[]);let eI=(0,w.useCallback)(()=>{if(Q.current)return;let e=Date.now();Q.current=setInterval(()=>{let t=Date.now();((Z.current>e-L.CALL_END.unsaidMs?t-Math.max(Z.current,e)>=L.CALL_END.quietMs:t-e>=L.CALL_END.unsaidMs)||t-e>=L.CALL_END.maxMs)&&eL("hungUp")},100)},[eL]);(0,w.useEffect)(()=>{if(!eN)return;P.current=Date.now();let e=setInterval(()=>{if(!r.current)return;let e=L.CALL_IDLE.hangUpMs-(Date.now()-P.current);k(e<=L.CALL_IDLE.warnMs?Math.max(0,Math.ceil(e/1e3)):null),e<=0&&eL("quiet")},1e3);return()=>clearInterval(e)},[eN,eL]),(0,w.useEffect)(()=>{if(!eN)return;let e=setInterval(ey,1e3);return()=>clearInterval(e)},[eN,ey]);let eR=(0,w.useCallback)(async()=>{let e=eM.isRinging;if(ei.current||eo.current)return;if(el.current||"idle"!==l)return eL();e_(),n$(),i("connecting"),S(null),d(!1),ei.current=!0,el.current=!0,D.current=null,ea.clear(),eu.current+=1;let t=eu.current,n=()=>el.current&&eu.current===t;try{s.current??=(0,nn.createAudioTap)(),function(e){if("suspended"!==e.state||r_)return;r_=!0;let t=()=>{r_=!1,window.removeEventListener("pointerdown",t),window.removeEventListener("keydown",t),e.resume().catch(()=>{})};window.addEventListener("pointerdown",t),window.addEventListener("keydown",t),e2.toast.add({type:"warning",title:"Tap anywhere to hear her",description:"This call opened on its own, so the browser is holding the audio."})}(s.current.open().context);let t=new Audio("/sounds/start_voice.ogg");a.current??=new Audio("/sounds/end_voice.ogg");let l=new AbortController;B.current=l;let i={failures:0},o={failures:0},u={callId:"",opening:null,standing:null,opened:{webSearch:I.LIVE_DEFAULTS.webSearch,readSkills:I.LIVE_DEFAULTS.readSkills}},c=new Map,h=new Map,m=null,g=e=>{let t={query:e.query,sources:e.sources};return rL(i,()=>rE(u.callId,[{id:e.row,role:"tool",tool:nu.TOOL_NAMES.web_search,text:JSON.stringify(t),seq:Math.max(0,Math.round(e.seq)),fragments:null}])),!!e.sources.length&&m===e.id&&(F.current&&clearTimeout(F.current),f(n=>n&&n.id!==e.id?n:{id:e.id,name:nu.TOOL_NAMES.web_search,line:(0,nj.toolLine)(nu.TOOL_NAMES.web_search,JSON.stringify(t)),done:!0,bot:null,sources:e.sources}),!0)},y=await rh({initialize:async t=>{let r=(0,e5.unwrapResult)(await rN(t,e));if(!n())throw nb(r.callId),Error("The call closed during startup.");return q.current=r.callId,u.callId=r.callId,u.opening=r.opening,u.standing=r.standing,u.opened=r.opened,r.sdp},audio:s.current,on:{runTool:async e=>{if(e.name===nu.TOOL_NAMES.end_call)return eI(),"Ending the call.";if(e.name===nu.TOOL_NAMES.emote){let{word:t,reply:n}=function(e){let t="";try{let n=JSON.parse(e);n&&"object"==typeof n&&"text"in n&&(t=String(n.text??"").trim())}catch{t=""}let n=Array.from(t).length;if(!n)return{word:null,reply:"Nothing was shown: text is empty."};if(n>rm.FACE_WORD_MAX)return{word:null,reply:`Too long: ${n} characters, ${rm.FACE_WORD_MAX} at most. Nothing was shown.`};let r=(0,rm.undrawable)(t);return r?{word:null,reply:`Cannot draw "${r}"; use only the characters \`text\` lists. Nothing was shown.`}:{word:t.toUpperCase(),reply:"Shown."}}(e.arguments);return t&&_({text:t,at:Date.now()}),n}ec(e);let t=e.name===nu.TOOL_NAMES.web_search;t&&(m=e.id);let n=!1;try{let r=await nM(u.callId,e,u.opened,l.signal);return ed(e,r),t&&(n=g({id:e.id,row:e.item??e.id,query:(0,nj.searchQueryOf)(e.arguments),sources:(0,nj.searchSourcesOf)(r),seq:0})),r}finally{n||ep(e.id)}},search:e=>{if(!e.done){m=e.id,ec({id:e.id,name:nu.TOOL_NAMES.web_search,arguments:JSON.stringify({query:e.query})});return}let t={id:e.id,row:e.id,query:e.query,sources:e.sources,seq:e.seq};h.set(e.responseId,t),g(t)||ep(t.id)},cited:(e,t)=>{let n=h.get(e);if(!n)return;let r=new Set(n.sources.map(e=>e.url));n.sources=[...n.sources.map(e=>t.find(t=>t.url===e.url)??e),...t.filter(e=>!r.has(e.url))],g(n)},reasoning:e=>{let t=(0,nj.reasoningTitle)(e.text);t&&A(t),rL(o,()=>rT(u.callId,{...e,seq:Math.max(0,Math.round(e.seq))}),"The backend's thinking is not being saved")},turn:e=>{let t="tool"===e.role?"":rC(e.text),n=!!t&&t!==rC(c.get(e.id)?.text??"");if(n&&(ee.current=Date.now()),n&&"user"===e.role&&(P.current=Date.now(),m)){let e=m;m=null,f(t=>t?.id===e?null:t)}"tool"!==e.role&&q.current===u.callId&&(c.set(e.id,{seq:e.seq,id:e.id,role:e.role,text:e.text}),p([...c.values()].sort((e,t)=>e.seq-t.seq).slice(-L.CALL_PAGE.scrollback))),e.done&&rL(i,()=>rE(u.callId,[{id:e.id,role:e.role,tool:e.tool,text:e.text,seq:Math.max(0,Math.round(e.seq)),fragments:e.fragments??null}]))},activity:e=>{var t;eS((t=e).speaking?"speaking":t.working||t.tools.length?t.tools.includes(nu.TOOL_NAMES.thread_start)?"delegating":"working":"listening");let n=e.working||e.tools.length>0;en.current=n,ex(n,e.speaking),e.speaking&&(Z.current=Date.now()),(e.speaking&&!O.current.on||e.working||e.tools.length)&&(P.current=Date.now()),O.current.on&&(e.speaking?O.current.spoke=!0:O.current.spoke&&em())},finalized:e=>{D.current=e},warn:e=>e2.toast.add({type:"warning",title:"Call warning",description:e}),failed:e=>{e2.toast.add({type:"error",title:"Call failed",description:e}),d(!0),eL(D.current?"closed":"dropped")}}});if(!n())return void await y.close();r.current=y,ei.current=!1,et.current=e,V.current=e?new Set:nm(er.current??[]),ea.open(e=>void y.append("thinking",e)),ee.current=Date.now(),u.opening&&(ef(),y.append("instructions",u.opening).then(e=>{e||em()})),u.standing&&y.brief(u.standing),ej("listening"),x(Date.now()),t.play().catch(()=>{})}catch(e){if(n()&&(e2.toast.add({type:"error",title:"Could not start the call",description:(0,j.errorToString)(e)}),d(!0)),eu.current!==t)return;q.current&&nb(q.current),q.current=null,ei.current=!1,el.current=!1,B.current=null,ea.clear(),i("idle")}},[l,eL,ec,ed,ep,eS,ej,ea,ef,em,ex,d,eI,eM.isRinging,eM.ringingFor,e_]);(0,w.useEffect)(()=>{if(!v)return;let e=setTimeout(()=>S(null),L.CALL_ENDED_MS);return()=>clearTimeout(e)},[v]);let eO=(0,w.useCallback)(()=>s.current?.read()??rM,[]),eD=(0,w.useCallback)(()=>s.current?.readMic()??rM,[]),eP=(0,na.useThursdayStore)(e=>e.wake),[eF,ez]=(0,w.useState)(!1),e$=rw();(0,w.useEffect)(()=>ry.onPlace(()=>void eR()),[eR]),nY({enabled:"idle"===l&&eP.enabled&&!eF&&!e$,phrases:[eP.phrase],onWake:()=>void eR(),onError:e=>{ez(!0),e2.toast.add({type:"error",title:"Wake word off",description:e})}});let eB=(0,na.useThursdayStore)(e=>e.hotkey),eq="connecting"===l||"ending"===l;return(0,H.useHotkey)({enabled:eB.enabled&&!eq&&!e$,combo:eB.enabled&&(0,H.isCombo)(eB.combo)?eB.combo:null,onPress:()=>void eR()}),{status:l,failed:o,messages:h,tool:m,ended:v,thinkingSince:N,thinkingTitle:E,faceWord:M,idleLeft:y,since:g,call:eR,ringing:eM.ringing,decline:eM.decline,getSpectrum:eO,getMicSpectrum:eD,wakePhrase:eP.enabled&&!eF?eP.phrase:null,hotkey:eB.enabled&&(0,H.isCombo)(eB.combo)?eB.combo:null}}(t.on),v=(0,H.useHotkeyLabel)(k),S=(0,nt.useThursdayFace)(),N=(0,na.useThursdayStore)(e=>e.captionView),{data:T}=(0,Y.useServerRoute)(b.queryKey.config),E=T?(0,e9.isConfigSet)(T,I.LIVE_PROVIDER.apiKeyName):e,A="idle"!==n,M=t.end;(0,w.useEffect)(()=>{A&&t.on&&M()},[A,t.on,M]);let _=t.on&&!A,C=(0,na.useThursdayStore)(e=>e.textModel),{settings:O}=(0,nl.useLiveSettings)(),D=O?.backendModel??I.LIVE_DEFAULTS.backendModel,P=(0,w.useMemo)(()=>{let e=e=>(0,e9.isConfigSet)(T,e),n=(0,ns.textCallRunsOn)(e),r=C&&e(R.TEXT_MODEL_PROVIDERS[C.provider].apiKeyName)?C:n?{provider:n,model:D}:null;return{on:_,busy:t.busy,error:t.error,say:t.say,again:t.again,end:t.end,runsOn:r,fallback:r?.provider!=="openai"&&e(R.TEXT_MODEL_PROVIDERS.openai.apiKeyName)?{provider:"openai",model:D}:null}},[_,t.busy,t.error,t.say,t.again,t.end,T,C,D]);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(rQ,{live:"idle"!==n,ringing:null!==m}),(0,r.jsx)(su,{status:_?t.status:n,failed:_?null!==t.error:s,messages:_?t.messages:a,tool:_?t.tool:l,thinkingSince:_?t.thinkingSince:i,thinkingTitle:_?t.thinkingTitle:o,ended:u,faceWord:c,onTap:p,ringing:E?m:null,onDecline:f,wakePhrase:y,hotkeyLabel:v,idleLeft:d,since:h,getSpectrum:_?nr:g,getMicSpectrum:x,face:S,captionView:N,callable:E,written:A?null:P})]})}],692888)},379227,(e,t,n)=>{var r;"u">typeof __nccwpck_require__&&(__nccwpck_require__.ab="/ROOT/node_modules/next/dist/compiled/tty-browserify/"),(r={}).isatty=function(){return!1},r.ReadStream=function(){throw Error("tty.ReadStream is not implemented")},r.WriteStream=function(){throw Error("tty.WriteStream is not implemented")},t.exports=r},90317,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={bindSnapshot:function(){return u},createAsyncLocalStorage:function(){return o},createSnapshot:function(){return c}};for(var s in r)Object.defineProperty(n,s,{enumerable:!0,get:r[s]});let a=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class l{disable(){throw a}getStore(){}run(){throw a}exit(){throw a}enterWith(){throw a}static bind(e){return e}}let i="u">typeof globalThis&&globalThis.AsyncLocalStorage;function o(){return i?new i:new l}function u(e){return i?i.bind(e):l.bind(e)}function c(){return i?i.snapshot():function(e,...t){return e(...t)}}},242344,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"workAsyncStorageInstance",{enumerable:!0,get:function(){return r}});let r=(0,e.r(90317).createAsyncLocalStorage)()},563599,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"workAsyncStorage",{enumerable:!0,get:function(){return r.workAsyncStorageInstance}});let r=e.r(242344)},309885,(e,t,n)=>{"use strict";function r(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"encodeURIPath",{enumerable:!0,get:function(){return r}})},667585,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"BailoutToCSR",{enumerable:!0,get:function(){return s}});let r=e.r(132061);function s({reason:e,children:t}){if("u"<typeof window)throw Object.defineProperty(new r.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t}},652157,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"PreloadChunks",{enumerable:!0,get:function(){return o}});let r=e.r(843476),s=e.r(174080),a=e.r(563599),l=e.r(309885),i=e.r(543369);function o({moduleIds:e}){if("u">typeof window)return null;let t=a.workAsyncStorage.getStore();if(void 0===t)return null;let n=[];if(t.reactLoadableManifest&&e){let r=t.reactLoadableManifest;for(let t of e){if(!r[t])continue;let e=r[t].files;n.push(...e)}}if(0===n.length)return null;let u=(0,i.getAssetTokenQuery)();return(0,r.jsx)(r.Fragment,{children:n.map(e=>{let n=`${t.assetPrefix}/_next/${(0,l.encodeURIPath)(e)}${u}`;return e.endsWith(".css")?(0,r.jsx)("link",{precedence:"dynamic",href:n,rel:"stylesheet",as:"style",nonce:t.nonce},e):((0,s.preload)(n,{as:"script",fetchPriority:"low",nonce:t.nonce}),null)})})}},869093,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"default",{enumerable:!0,get:function(){return u}});let r=e.r(843476),s=e.r(271645),a=e.r(667585),l=e.r(652157);function i(e){return{default:e&&"default"in e?e.default:e}}let o={loader:()=>Promise.resolve(i(()=>null)),loading:null,ssr:!0},u=function(e){let t={...o,...e},n=(0,s.lazy)(()=>t.loader().then(i)),u=t.loading;function c(e){let i=u?(0,r.jsx)(u,{isLoading:!0,pastDelay:!0,error:null}):null,o=!t.ssr||!!t.loading,c=o?s.Suspense:s.Fragment,d=t.ssr?(0,r.jsxs)(r.Fragment,{children:["u"<typeof window?(0,r.jsx)(l.PreloadChunks,{moduleIds:t.modules}):null,(0,r.jsx)(n,{...e})]}):(0,r.jsx)(a.BailoutToCSR,{reason:"next/dynamic",children:(0,r.jsx)(n,{...e})});return(0,r.jsx)(c,{...o?{fallback:i}:{},children:d})}return c.displayName="LoadableComponent",c}},770703,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"default",{enumerable:!0,get:function(){return s}});let r=e.r(555682)._(e.r(869093));function s(e,t){let n={};"function"==typeof e&&(n.loader=e);let s={...n,...t};return(0,r.default)({...s,modules:s.loadableGenerated?.modules})}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},618566,(e,t,n)=>{t.exports=e.r(976562)}]);