thursday-agent 0.22.0 → 0.23.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 (455) 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.js.nft.json +1 -1
  11. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  12. package/.next/server/app/_not-found.html +1 -1
  13. package/.next/server/app/_not-found.rsc +12 -12
  14. package/.next/server/app/_not-found.segments/_full.segment.rsc +12 -12
  15. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +11 -11
  16. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  17. package/.next/server/app/api/artifact/route.js +6 -6
  18. package/.next/server/app/api/artifact/route.js.nft.json +1 -1
  19. package/.next/server/app/api/bot/memory/files/route.js +5 -4
  20. package/.next/server/app/api/bot/memory/files/route.js.nft.json +1 -1
  21. package/.next/server/app/api/bot/memory/route.js +9 -9
  22. package/.next/server/app/api/bot/memory/route.js.nft.json +1 -1
  23. package/.next/server/app/api/bot/route.js +9 -9
  24. package/.next/server/app/api/bot/route.js.nft.json +1 -1
  25. package/.next/server/app/api/bot/thread/[id]/route.js +2 -2
  26. package/.next/server/app/api/bot/thread/[id]/route.js.nft.json +1 -1
  27. package/.next/server/app/api/bot/thread/file/route.js +12 -12
  28. package/.next/server/app/api/bot/thread/file/route.js.nft.json +1 -1
  29. package/.next/server/app/api/bot/thread/route.js +2 -2
  30. package/.next/server/app/api/bot/thread/route.js.nft.json +1 -1
  31. package/.next/server/app/api/config/route.js +2 -2
  32. package/.next/server/app/api/config/route.js.nft.json +1 -1
  33. package/.next/server/app/api/events/route.js.nft.json +1 -1
  34. package/.next/server/app/api/favicon/[host]/route.js.nft.json +1 -1
  35. package/.next/server/app/api/file/[...path]/route.js +3 -3
  36. package/.next/server/app/api/file/[...path]/route.js.nft.json +1 -1
  37. package/.next/server/app/api/llm-model/automatic/route.js.nft.json +1 -1
  38. package/.next/server/app/api/llm-model/catalog/[provider]/route.js.nft.json +1 -1
  39. package/.next/server/app/api/llm-model/credits/[provider]/route.js.nft.json +1 -1
  40. package/.next/server/app/api/llm-model/route.js.nft.json +1 -1
  41. package/.next/server/app/api/llm-model/subscription/route.js.nft.json +1 -1
  42. package/.next/server/app/api/mcp/[name]/route.js.nft.json +1 -1
  43. package/.next/server/app/api/mcp/oauth/callback/route.js +2 -2
  44. package/.next/server/app/api/mcp/oauth/callback/route.js.nft.json +1 -1
  45. package/.next/server/app/api/mcp/route.js.nft.json +1 -1
  46. package/.next/server/app/api/mcp/tools/route.js.nft.json +1 -1
  47. package/.next/server/app/api/memory/edit/route.js +13 -13
  48. package/.next/server/app/api/memory/edit/route.js.nft.json +1 -1
  49. package/.next/server/app/api/memory/route.js +1 -1
  50. package/.next/server/app/api/memory/route.js.nft.json +1 -1
  51. package/.next/server/app/api/reach/route.js +11 -11
  52. package/.next/server/app/api/reach/route.js.nft.json +1 -1
  53. package/.next/server/app/api/routine/route.js +9 -9
  54. package/.next/server/app/api/routine/route.js.nft.json +1 -1
  55. package/.next/server/app/api/running/route.js.nft.json +1 -1
  56. package/.next/server/app/api/signins/route.js +7 -6
  57. package/.next/server/app/api/signins/route.js.nft.json +1 -1
  58. package/.next/server/app/api/skills/[source]/[name]/route.js +8 -8
  59. package/.next/server/app/api/skills/[source]/[name]/route.js.nft.json +1 -1
  60. package/.next/server/app/api/skills/route.js +8 -8
  61. package/.next/server/app/api/skills/route.js.nft.json +1 -1
  62. package/.next/server/app/api/thursday/call/end/route.js +6 -6
  63. package/.next/server/app/api/thursday/call/end/route.js.nft.json +1 -1
  64. package/.next/server/app/api/thursday/call/plan/route.js +16 -16
  65. package/.next/server/app/api/thursday/call/plan/route.js.nft.json +1 -1
  66. package/.next/server/app/api/thursday/call/route.js +6 -6
  67. package/.next/server/app/api/thursday/call/route.js.nft.json +1 -1
  68. package/.next/server/app/api/thursday/settings/route.js +6 -6
  69. package/.next/server/app/api/thursday/settings/route.js.nft.json +1 -1
  70. package/.next/server/app/api/thursday/text/route.js +16 -16
  71. package/.next/server/app/api/thursday/text/route.js.nft.json +1 -1
  72. package/.next/server/app/api/thursday/tool-call/route.js +10 -10
  73. package/.next/server/app/api/thursday/tool-call/route.js.nft.json +1 -1
  74. package/.next/server/app/api/workspace/files/route.js +1 -1
  75. package/.next/server/app/api/workspace/files/route.js.nft.json +1 -1
  76. package/.next/server/app/api/workspace/route.js +1 -1
  77. package/.next/server/app/api/workspace/route.js.nft.json +1 -1
  78. package/.next/server/app/artifact/[...path]/page/server-reference-manifest.json +11 -11
  79. package/.next/server/app/artifact/[...path]/page.js +5 -5
  80. package/.next/server/app/artifact/[...path]/page.js.nft.json +1 -1
  81. package/.next/server/app/artifact/[...path]/page_client-reference-manifest.js +1 -1
  82. package/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  83. package/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  84. package/.next/server/app/page/react-loadable-manifest.json +2 -2
  85. package/.next/server/app/page/server-reference-manifest.json +162 -162
  86. package/.next/server/app/page.js +7 -7
  87. package/.next/server/app/page.js.nft.json +1 -1
  88. package/.next/server/app/page_client-reference-manifest.js +1 -1
  89. package/.next/server/chunks/[root-of-the-server]__019e1fy._.js +2 -2
  90. package/.next/server/chunks/[root-of-the-server]__01jpmcj._.js +2 -2
  91. package/.next/server/chunks/[root-of-the-server]__03bjojd._.js +2 -2
  92. package/.next/server/chunks/[root-of-the-server]__03vunn6._.js +1 -1
  93. package/.next/server/chunks/[root-of-the-server]__06kxzw-._.js +2 -2
  94. package/.next/server/chunks/[root-of-the-server]__0atwstu._.js +1 -1
  95. package/.next/server/chunks/{[root-of-the-server]__005onk_._.js → [root-of-the-server]__0cfv4rq._.js} +1 -1
  96. package/.next/server/chunks/[root-of-the-server]__0d-dfqm._.js +1 -1
  97. package/.next/server/chunks/{[root-of-the-server]__1-i6lgn._.js → [root-of-the-server]__0d00o4_._.js} +1 -1
  98. package/.next/server/chunks/{[root-of-the-server]__0itmdqy._.js → [root-of-the-server]__0e8y4ok._.js} +1 -1
  99. package/.next/server/chunks/{[root-of-the-server]__1tyftcr._.js → [root-of-the-server]__0eem_66._.js} +1 -1
  100. package/.next/server/chunks/{[root-of-the-server]__0xn7a8p._.js → [root-of-the-server]__0jn2qbf._.js} +1 -1
  101. package/.next/server/chunks/{[root-of-the-server]__08922kg._.js → [root-of-the-server]__0l563r8._.js} +1 -1
  102. package/.next/server/chunks/[root-of-the-server]__0mh1tgg._.js +1 -1
  103. package/.next/server/chunks/[root-of-the-server]__0mq0qmk._.js +3 -0
  104. package/.next/server/chunks/[root-of-the-server]__0ncs9uu._.js +1 -1
  105. package/.next/server/chunks/{[root-of-the-server]__1a7rgvy._.js → [root-of-the-server]__0pp2355._.js} +1 -1
  106. package/.next/server/chunks/{[root-of-the-server]__1g08s7l._.js → [root-of-the-server]__0r77huw._.js} +2 -2
  107. package/.next/server/chunks/[root-of-the-server]__10_v9ml._.js +3 -0
  108. package/.next/server/chunks/[root-of-the-server]__13hng6h._.js +1 -1
  109. package/.next/server/chunks/[root-of-the-server]__1478lu3._.js +1 -1
  110. package/.next/server/chunks/[root-of-the-server]__16xao_p._.js +5 -0
  111. package/.next/server/chunks/[root-of-the-server]__17kdjf6._.js +2 -2
  112. package/.next/server/chunks/[root-of-the-server]__17m7ag9._.js +1 -1
  113. package/.next/server/chunks/[root-of-the-server]__17yv6lg._.js +5 -0
  114. package/.next/server/chunks/[root-of-the-server]__19aqyg-._.js +1 -1
  115. package/.next/server/chunks/[root-of-the-server]__19imprr._.js +3 -0
  116. package/.next/server/chunks/[root-of-the-server]__1_04mcf._.js +2 -2
  117. package/.next/server/chunks/[root-of-the-server]__1ceammd._.js +1 -1
  118. package/.next/server/chunks/[root-of-the-server]__1fhule0._.js +3 -0
  119. package/.next/server/chunks/[root-of-the-server]__1hing45._.js +3 -0
  120. package/.next/server/chunks/{[root-of-the-server]__0mttntm._.js → [root-of-the-server]__1ivfglf._.js} +1 -1
  121. package/.next/server/chunks/[root-of-the-server]__1jcu_e9._.js +5 -0
  122. package/.next/server/chunks/{[root-of-the-server]__0m0qglo._.js → [root-of-the-server]__1kb-dkn._.js} +2 -2
  123. package/.next/server/chunks/{[root-of-the-server]__0eluax8._.js → [root-of-the-server]__1mowvzz._.js} +1 -1
  124. package/.next/server/chunks/[root-of-the-server]__1ndi14y._.js +1 -1
  125. package/.next/server/chunks/[root-of-the-server]__1o7z93z._.js +1 -1
  126. package/.next/server/chunks/[root-of-the-server]__1onvx8x._.js +1 -1
  127. package/.next/server/chunks/[root-of-the-server]__1q_d6dj._.js +3 -0
  128. package/.next/server/chunks/[root-of-the-server]__1u_6dhy._.js +1 -1
  129. package/.next/server/chunks/{[root-of-the-server]__1_wtn0q._.js → [root-of-the-server]__1yiqjfx._.js} +1 -1
  130. package/.next/server/chunks/[root-of-the-server]__1yr_vvq._.js +3 -0
  131. package/.next/server/chunks/_0-mqt2w._.js +3 -0
  132. package/.next/server/chunks/_0-qt5if._.js +1 -1
  133. package/.next/server/chunks/{_0fau3ya._.js → _00aztuo._.js} +2 -2
  134. package/.next/server/chunks/_021kabv._.js +53 -0
  135. package/.next/server/chunks/_032k4m6._.js +3 -0
  136. package/.next/server/chunks/_03p6r2-._.js +1 -1
  137. package/.next/server/chunks/_06b5b4-._.js +2 -2
  138. package/.next/server/chunks/_06u9yo-._.js +1 -1
  139. package/.next/server/chunks/_07mczew._.js +3 -0
  140. package/.next/server/chunks/_07pkeds._.js +1 -1
  141. package/.next/server/chunks/_08354bn._.js +22 -22
  142. package/.next/server/chunks/_083t_nr._.js +5 -0
  143. package/.next/server/chunks/_0c-s0ei._.js +3 -0
  144. package/.next/server/chunks/_0cq69mm._.js +1 -1
  145. package/.next/server/chunks/_0gifi_2._.js +7 -0
  146. package/.next/server/chunks/_0gxz_1b._.js +1 -1
  147. package/.next/server/chunks/{_1tjwvoz._.js → _0la8s6t._.js} +2 -2
  148. package/.next/server/chunks/_0p27in2._.js +1 -1
  149. package/.next/server/chunks/{_09rtyfn._.js → _0rn3c_0._.js} +24 -26
  150. package/.next/server/chunks/_0ue8nq-._.js +5 -1
  151. package/.next/server/chunks/{_1uu4wjr._.js → _0wkhub3._.js} +2 -2
  152. package/.next/server/chunks/_0wyh244._.js +22 -22
  153. package/.next/server/chunks/_0ynjnhl._.js +5 -0
  154. package/.next/server/chunks/_1-wp0r0._.js +1 -1
  155. package/.next/server/chunks/{_201k0ah._.js → _12-7atf._.js} +2 -2
  156. package/.next/server/chunks/{_02mn8d7._.js → _124q1p2._.js} +2 -2
  157. package/.next/server/chunks/{_14xuq46._.js → _13qoxq9._.js} +24 -26
  158. package/.next/server/chunks/{_11y8h29._.js → _15-_mie._.js} +2 -2
  159. package/.next/server/chunks/_1823_7a._.js +1 -1
  160. package/.next/server/chunks/{_0uir6hb._.js → _186uku9._.js} +2 -2
  161. package/.next/server/chunks/{_0ggqpiz._.js → _18sj4xf._.js} +2 -2
  162. package/.next/server/chunks/_19kea1l._.js +12 -12
  163. package/.next/server/chunks/_1ac33qw._.js +2 -2
  164. package/.next/server/chunks/{_18z965x._.js → _1chy-lk._.js} +2 -2
  165. package/.next/server/chunks/_1cw6-rv._.js +1 -1
  166. package/.next/server/chunks/_1evvnbp._.js +1 -1
  167. package/.next/server/chunks/_1f_x75d._.js +3 -0
  168. package/.next/server/chunks/_1gn2r2q._.js +7 -9
  169. package/.next/server/chunks/_1icgbi8._.js +1 -1
  170. package/.next/server/chunks/{_1ozcb6o._.js → _1k6bmez._.js} +2 -2
  171. package/.next/server/chunks/_1ko5shz._.js +1 -1
  172. package/.next/server/chunks/_1ksyu6r._.js +1 -1
  173. package/.next/server/chunks/_1kwmzab._.js +3 -0
  174. package/.next/server/chunks/_1lg0lsu._.js +1 -1
  175. package/.next/server/chunks/_1pv6xbq._.js +5 -0
  176. package/.next/server/chunks/_1q42187._.js +2 -2
  177. package/.next/server/chunks/_1q6e56i._.js +7 -9
  178. package/.next/server/chunks/_1t43w6q._.js +1 -1
  179. package/.next/server/chunks/_1t8fv7b._.js +1 -1
  180. package/.next/server/chunks/_1ufbxe1._.js +1 -1
  181. package/.next/server/chunks/_1wgae1c._.js +1 -1
  182. package/.next/server/chunks/_1xps4ob._.js +1 -1
  183. package/.next/server/chunks/_1znrlca._.js +3 -0
  184. package/.next/server/chunks/config_ts_1g4sz5o._.js +1 -1
  185. package/.next/server/chunks/features_14kex_m._.js +11 -11
  186. package/.next/server/chunks/features_bot_08z387_._.js +2 -2
  187. package/.next/server/chunks/features_bot_1d6ghh5._.js +41 -0
  188. package/.next/server/chunks/features_bot_1dfrdsb._.js +10 -6
  189. package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_0yd5xa0._.js → node_modules_consola_dist_chunks_prompt_mjs_0k--vqs._.js} +1 -1
  190. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_0ufuc3s._.js +3 -0
  191. package/.next/server/chunks/ssr/[root-of-the-server]__05qiosr._.js +3 -0
  192. package/.next/server/chunks/ssr/[root-of-the-server]__0y03pu0._.js +3 -0
  193. package/.next/server/chunks/ssr/[root-of-the-server]__0zt_au4._.js +3 -0
  194. package/.next/server/chunks/ssr/{[root-of-the-server]__0eloa6y._.js → [root-of-the-server]__17yeveo._.js} +5 -5
  195. package/.next/server/chunks/ssr/[root-of-the-server]__1867koj._.js +1 -1
  196. package/.next/server/chunks/ssr/[root-of-the-server]__1t38-p_._.js +3 -0
  197. package/.next/server/chunks/ssr/[root-of-the-server]__1u42eh0._.js +3 -0
  198. package/.next/server/chunks/ssr/[root-of-the-server]__203utm3._.js +1 -1
  199. package/.next/server/chunks/ssr/{_0xurp8n._.js → _0-s7ria._.js} +2 -2
  200. package/.next/server/chunks/ssr/_03vw3u5._.js +3 -0
  201. package/.next/server/chunks/ssr/_088qe9a._.js +162 -0
  202. package/.next/server/chunks/ssr/_09a6bpd._.js +1 -1
  203. package/.next/server/chunks/ssr/{_0u43zjx._.js → _0a_pedm._.js} +2 -2
  204. package/.next/server/chunks/ssr/_0ali_i8._.js +3 -0
  205. package/.next/server/chunks/ssr/_0cd6g3l._.js +3 -3
  206. package/.next/server/chunks/ssr/{_1nwey7a._.js → _0eprrig._.js} +2 -2
  207. package/.next/server/chunks/ssr/_0flnog5._.js +3 -0
  208. package/.next/server/chunks/ssr/_0iuvjnw._.js +1 -1
  209. package/.next/server/chunks/ssr/{_0t_e9rd._.js → _0k-gl8l._.js} +2 -2
  210. package/.next/server/chunks/ssr/_0kmldic._.js +41 -0
  211. package/.next/server/chunks/ssr/_0ks03l-._.js +3 -0
  212. package/.next/server/chunks/ssr/_0mng-y8._.js +6 -0
  213. package/.next/server/chunks/ssr/_0tg3o37._.js +1 -1
  214. package/.next/server/chunks/ssr/_0ugzm_0._.js +3 -0
  215. package/.next/server/chunks/ssr/{_0ntol64._.js → _0wnv6c0._.js} +2 -2
  216. package/.next/server/chunks/ssr/{_0-y08rv._.js → _0z9zkd-._.js} +2 -2
  217. package/.next/server/chunks/ssr/_11l9kc0._.js +1 -1
  218. package/.next/server/chunks/ssr/_12_ail7._.js +3 -0
  219. package/.next/server/chunks/ssr/_16_7zeo._.js +1 -1
  220. package/.next/server/chunks/ssr/_16wjbs2._.js +3 -0
  221. package/.next/server/chunks/ssr/{_16o81mn._.js → _18rmqqu._.js} +2 -2
  222. package/.next/server/chunks/ssr/_1bfrntd._.js +2 -2
  223. package/.next/server/chunks/ssr/{_0gn_i4s._.js → _1ckje8g._.js} +2 -2
  224. package/.next/server/chunks/ssr/_1crszf7._.js +1 -1
  225. package/.next/server/chunks/ssr/_1h3qetc._.js +3 -0
  226. package/.next/server/chunks/ssr/{_1gz4ov7._.js → _1kpvfmn._.js} +3 -3
  227. package/.next/server/chunks/ssr/{_12hdw8x._.js → _1l-3enz._.js} +26 -28
  228. package/.next/server/chunks/ssr/_1neoj22._.js +1 -1
  229. package/.next/server/chunks/ssr/_1soynbw._.js +2 -2
  230. package/.next/server/chunks/ssr/{_0ux4i2m._.js → _1v1pcoh._.js} +2 -2
  231. package/.next/server/chunks/ssr/features_ai_components_model-picker_tsx_0ucb1y9._.js +1 -1
  232. package/.next/server/chunks/ssr/{features_bot_06n7hmd._.js → features_bot_0-7flc-._.js} +2 -2
  233. package/.next/server/chunks/ssr/features_bot_0tb4ui-._.js +1 -1
  234. package/.next/server/chunks/ssr/features_bot_1stfytf._.js +41 -0
  235. package/.next/server/chunks/ssr/features_config_10xs4l1._.js +20 -0
  236. package/.next/server/chunks/ssr/features_connectors_components_mcp-setting_tsx_0jmbgvp._.js +1 -1
  237. package/.next/server/chunks/ssr/features_memory_components_memory-setting_tsx_0oa43sw._.js +1 -1
  238. package/.next/server/chunks/ssr/features_routine_components_routine-setting_tsx_055fknz._.js +1 -1
  239. package/.next/server/chunks/ssr/features_thursday_0cf9y0b._.js +1 -1
  240. package/.next/server/chunks/ssr/features_thursday_components_here-globe_tsx_055duhw._.js +1 -1
  241. package/.next/server/chunks/ssr/lib_utils_ts_0_f1xvm._.js +1 -1
  242. package/.next/server/chunks/ssr/{node_modules_1i-g3bz._.js → node_modules_00mh9o-._.js} +1 -1
  243. package/.next/server/chunks/ssr/{node_modules_1bvw77g._.js → node_modules_04f_uw2._.js} +1 -1
  244. package/.next/server/chunks/ssr/{node_modules_16tn8xu._.js → node_modules_07udd3z._.js} +1 -1
  245. package/.next/server/chunks/ssr/{node_modules_0ksqeyy._.js → node_modules_08-pj-2._.js} +1 -1
  246. package/.next/server/chunks/ssr/{node_modules_0e398ts._.js → node_modules_098h6h5._.js} +1 -1
  247. package/.next/server/chunks/ssr/{node_modules_19r9vjv._.js → node_modules_0_7yfem._.js} +1 -1
  248. package/.next/server/chunks/ssr/{node_modules_01v7ybp._.js → node_modules_0ayoorn._.js} +1 -1
  249. package/.next/server/chunks/ssr/{node_modules_0_zk6yd._.js → node_modules_0bp3vfu._.js} +1 -1
  250. package/.next/server/chunks/ssr/{node_modules_0m-dnm-._.js → node_modules_0ch5hqr._.js} +1 -1
  251. package/.next/server/chunks/ssr/{node_modules_0536cp2._.js → node_modules_0e-hyim._.js} +1 -1
  252. package/.next/server/chunks/ssr/{node_modules_0yn2z6s._.js → node_modules_0ffm9w3._.js} +1 -1
  253. package/.next/server/chunks/ssr/{node_modules_1jf8aik._.js → node_modules_0jzyuwk._.js} +1 -1
  254. package/.next/server/chunks/ssr/{node_modules_0m2oth3._.js → node_modules_0ln4iwf._.js} +1 -1
  255. package/.next/server/chunks/ssr/{node_modules_1dlue-g._.js → node_modules_0my2hph._.js} +1 -1
  256. package/.next/server/chunks/ssr/{node_modules_0cpegwf._.js → node_modules_0y_k4h5._.js} +1 -1
  257. package/.next/server/chunks/ssr/{node_modules_13dwal5._.js → node_modules_10bzndo._.js} +1 -1
  258. package/.next/server/chunks/ssr/{node_modules_1ctm_ju._.js → node_modules_1b5rxw5._.js} +1 -1
  259. package/.next/server/chunks/ssr/{node_modules_01fukqn._.js → node_modules_1b_h09q._.js} +1 -1
  260. package/.next/server/chunks/ssr/{node_modules_12hh0bx._.js → node_modules_1e83j9e._.js} +1 -1
  261. package/.next/server/chunks/ssr/{node_modules_08m1gvh._.js → node_modules_1e9ugfy._.js} +1 -1
  262. package/.next/server/chunks/ssr/{node_modules_06n6ruk._.js → node_modules_1hd66k0._.js} +1 -1
  263. package/.next/server/chunks/ssr/{node_modules_1zdz2zf._.js → node_modules_1inwr2m._.js} +1 -1
  264. package/.next/server/chunks/ssr/{node_modules_1zalmtr._.js → node_modules_1j9xx1k._.js} +1 -1
  265. package/.next/server/chunks/ssr/{node_modules_1kfbdfo._.js → node_modules_1k8kypa._.js} +1 -1
  266. package/.next/server/chunks/ssr/{node_modules_056xgci._.js → node_modules_1oeu85h._.js} +1 -1
  267. package/.next/server/chunks/ssr/{node_modules_0ie8g6a._.js → node_modules_1r2ghv5._.js} +2 -2
  268. package/.next/server/chunks/ssr/{node_modules_1fqgrh0._.js → node_modules_1ttpnib._.js} +1 -1
  269. package/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0nj1l8f._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0ir6p7s._.js} +1 -1
  270. package/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_17ok98u._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_1ejf5ye._.js} +1 -1
  271. package/.next/server/middleware-build-manifest.js +3 -3
  272. package/.next/server/pages/404.html +1 -1
  273. package/.next/server/pages/500.html +1 -1
  274. package/.next/server/server-reference-manifest.js +1 -1
  275. package/.next/server/server-reference-manifest.json +163 -163
  276. package/.next/static/chunks/02lze_e5sagjn.js +1 -0
  277. package/.next/static/chunks/{3866u-edsoyj3.js → 081kl7k8r6f8z.js} +1 -1
  278. package/.next/static/chunks/0_s4z70lx1tgs.js +1 -0
  279. package/.next/static/chunks/0fklfoj8o_msg.js +18 -0
  280. package/.next/static/chunks/0ve2gb0hw3wkq.js +1 -0
  281. package/.next/static/chunks/11c3uijgqik4m.js +39 -0
  282. package/.next/static/chunks/{0go5_9zqag7l0.js → 125lh2zzxk3r2.js} +1 -1
  283. package/.next/static/chunks/{3zv4wiqjl5kex.js → 166v36614ycsf.js} +1 -1
  284. package/.next/static/chunks/16np6727e61io.js +1 -0
  285. package/.next/static/chunks/18amidjlaqexf.js +1 -0
  286. package/.next/static/chunks/{35ehi-okrfot5.js → 1ettmta9iet7b.js} +1 -1
  287. package/.next/static/chunks/{1dy5xaxjdsy11.js → 1j4rndg17wgfk.js} +1 -1
  288. package/.next/static/chunks/{01r1uco3ikisc.js → 1mpz4epyg-7pz.js} +1 -1
  289. package/.next/static/chunks/{05blzta_1i7c2.js → 1oh4hbusfz97l.js} +1 -1
  290. package/.next/static/chunks/{3qfhjwd9yuijo.js → 1x1-44qmhu437.js} +1 -1
  291. package/.next/static/chunks/{0hpx0--bh7vld.js → 22jb4s3-8ckup.js} +1 -1
  292. package/.next/static/chunks/236le5kv_yj6a.css +1 -0
  293. package/.next/static/chunks/24op50z6sqi_5.js +1 -0
  294. package/.next/static/chunks/2eczs-lporqt6.js +1 -0
  295. package/.next/static/chunks/{2nbj2t9yp8ke9.js → 2sxclirl-c-um.js} +1 -1
  296. package/.next/static/chunks/2yfmmo4qr_f-m.js +1 -0
  297. package/.next/static/chunks/2z4sodeldj_86.js +1 -0
  298. package/.next/static/chunks/{3tyacy8fh5_18.js → 2zhiqxw61qowv.js} +2 -2
  299. package/.next/static/chunks/338dt83llhu5m.js +1 -0
  300. package/.next/static/chunks/3ezjz93yvzmop.js +4 -0
  301. package/.next/static/chunks/3h6rqjx92wva9.js +1 -0
  302. package/.next/static/chunks/3ph9u-51x6jhe.js +15 -0
  303. package/.next/static/chunks/{052u13mcoxt87.js → 3uf32hp_g9stz.js} +1 -1
  304. package/.next/static/chunks/3w7zt3xzyjn86.js +3 -0
  305. package/.next/static/chunks/3xkx7vqefm7on.js +2 -0
  306. package/.next/static/chunks/3ygk41pgsw7nv.js +1 -0
  307. package/.next/static/chunks/{3146sccz1j76i.js → 411uyd0is9u5s.js} +1 -1
  308. package/.next/static/chunks/4384atd5zerir.js +1 -0
  309. package/README.md +1 -1
  310. package/database/migrations/20260929121448_thread_started_by/migration.sql +1 -0
  311. package/database/migrations/20260929121448_thread_started_by/snapshot.json +1969 -0
  312. package/guide/bots.md +89 -44
  313. package/guide/calls.md +41 -25
  314. package/guide/index.md +5 -2
  315. package/guide/phone.md +7 -4
  316. package/guide/setup.md +12 -6
  317. package/guide/trouble.md +3 -2
  318. package/package.json +1 -1
  319. package/public/voices/intro/mic-b17ca82d.ogg +0 -0
  320. package/seed-skills/concierge/travel/SKILL.md +2 -1
  321. package/seed-skills/concierge/travel/page/itinerary.css +1009 -257
  322. package/seed-skills/concierge/travel/references/itinerary.md +95 -35
  323. package/seed-skills/concierge/travel/references/plan.md +11 -4
  324. package/seed-skills/concierge/travel/scripts/itinerary.mjs +754 -138
  325. package/skills/README.md +7 -4
  326. package/skills/artifact/SKILL.md +17 -13
  327. package/skills/artifact/references/canvas.md +4 -5
  328. package/skills/artifact/references/deck.md +93 -2
  329. package/skills/artifact/runtime/app/kit/src/index.css +35 -0
  330. package/skills/artifact/runtime/app/kit/tailwind.config.js +6 -0
  331. package/skills/artifact/runtime/deck/data.mjs +21 -0
  332. package/skills/artifact/runtime/deck/deck.css +254 -4
  333. package/skills/artifact/runtime/deck/deck.html +3 -0
  334. package/skills/artifact/runtime/deck/deck.js +88 -5
  335. package/skills/artifact/runtime/deck/deck.mjs +1 -17
  336. package/skills/artifact/runtime/document/quick.css +264 -89
  337. package/skills/artifact/runtime/document/quick.html +16 -7
  338. package/skills/artifact/runtime/document/quick.js +377 -98
  339. package/skills/artifact/runtime/render.mjs +52 -6
  340. package/skills/artifact/runtime/sheet/sheet.css +29 -21
  341. package/skills/artifact/runtime/shell/drafts.js +25 -0
  342. package/skills/artifact/runtime/shell/fonts/Geist-latin-ext.woff2 +0 -0
  343. package/skills/artifact/runtime/shell/fonts/Geist-latin.woff2 +0 -0
  344. package/skills/artifact/runtime/shell/fonts/GeistMono-latin-ext.woff2 +0 -0
  345. package/skills/artifact/runtime/shell/fonts/GeistMono-latin.woff2 +0 -0
  346. package/skills/artifact/runtime/shell/fonts/OFL.txt +93 -0
  347. package/skills/artifact/runtime/shell/head.html +27 -2
  348. package/skills/artifact/runtime/shell/shell.css +88 -8
  349. package/skills/artifact/runtime/shell/shell.js +318 -22
  350. package/skills/artifact/runtime/shell/wear.mjs +114 -12
  351. package/skills/artifact/scripts/app.mjs +5 -0
  352. package/skills/artifact/scripts/chart.mjs +20 -19
  353. package/skills/artifact/scripts/deck.mjs +276 -0
  354. package/skills/artifact/scripts/document.mjs +55 -2
  355. package/skills/artifact/scripts/media.mjs +1 -1
  356. package/skills/artifact/templates/boards/direction.html +55 -2
  357. package/skills/browser/SKILL.md +1 -1
  358. package/skills/browser/references/scripts.md +1 -1
  359. package/skills/daily-brief/SKILL.md +2 -0
  360. package/skills/daily-brief/page/brief.css +460 -302
  361. package/skills/daily-brief/references/brief.md +33 -7
  362. package/skills/daily-brief/scripts/page.mjs +241 -48
  363. package/skills/media-digest/SKILL.md +1 -0
  364. package/skills/media-digest/scripts/digest.mjs +57 -43
  365. package/.next/server/chunks/[root-of-the-server]__00f051a._.js +0 -7
  366. package/.next/server/chunks/[root-of-the-server]__0340k46._.js +0 -7
  367. package/.next/server/chunks/[root-of-the-server]__0ndw2yj._.js +0 -5
  368. package/.next/server/chunks/[root-of-the-server]__16y0k92._.js +0 -3
  369. package/.next/server/chunks/[root-of-the-server]__18e65_-._.js +0 -3
  370. package/.next/server/chunks/[root-of-the-server]__1a0xgyh._.js +0 -5
  371. package/.next/server/chunks/[root-of-the-server]__1dth047._.js +0 -5
  372. package/.next/server/chunks/[root-of-the-server]__1huywqp._.js +0 -5
  373. package/.next/server/chunks/[root-of-the-server]__1ij4h2a._.js +0 -3
  374. package/.next/server/chunks/[root-of-the-server]__1q1s4ls._.js +0 -3
  375. package/.next/server/chunks/[root-of-the-server]__1qa67zs._.js +0 -3
  376. package/.next/server/chunks/[root-of-the-server]__1t-mfa4._.js +0 -5
  377. package/.next/server/chunks/[root-of-the-server]__20ofm9t._.js +0 -3
  378. package/.next/server/chunks/_0483t_f._.js +0 -5
  379. package/.next/server/chunks/_0lcthk8._.js +0 -3
  380. package/.next/server/chunks/_0uv1gs1._.js +0 -3
  381. package/.next/server/chunks/_17fjc-7._.js +0 -5
  382. package/.next/server/chunks/_1dcbwn-._.js +0 -3
  383. package/.next/server/chunks/_1mgzs18._.js +0 -3
  384. package/.next/server/chunks/_20qn224._.js +0 -3
  385. package/.next/server/chunks/features_bot_0zy_q8y._.js +0 -37
  386. package/.next/server/chunks/ssr/[root-of-the-server]__04upd5v._.js +0 -3
  387. package/.next/server/chunks/ssr/[root-of-the-server]__0dy20eb._.js +0 -3
  388. package/.next/server/chunks/ssr/[root-of-the-server]__0yyxgt2._.js +0 -3
  389. package/.next/server/chunks/ssr/[root-of-the-server]__14j8gxy._.js +0 -3
  390. package/.next/server/chunks/ssr/[root-of-the-server]__20t_4l2._.js +0 -3
  391. package/.next/server/chunks/ssr/_00buy3i._.js +0 -162
  392. package/.next/server/chunks/ssr/_014_wjp._.js +0 -3
  393. package/.next/server/chunks/ssr/_07m4ii5._.js +0 -3
  394. package/.next/server/chunks/ssr/_0cv9tmv._.js +0 -3
  395. package/.next/server/chunks/ssr/_0j6rtjm._.js +0 -6
  396. package/.next/server/chunks/ssr/_0ogkeu-._.js +0 -3
  397. package/.next/server/chunks/ssr/_10sc7ab._.js +0 -3
  398. package/.next/server/chunks/ssr/_14nwim3._.js +0 -37
  399. package/.next/server/chunks/ssr/_1e01b-_._.js +0 -3
  400. package/.next/server/chunks/ssr/_1nfv27b._.js +0 -3
  401. package/.next/server/chunks/ssr/features_bot_1c56lew._.js +0 -37
  402. package/.next/server/chunks/ssr/features_bot_1knyan7._.js +0 -3
  403. package/.next/server/chunks/ssr/features_config_09wq1s9._.js +0 -20
  404. package/.next/static/chunks/01gkq9y6_xk4a.js +0 -1
  405. package/.next/static/chunks/09kwsjbmr_z1w.js +0 -1
  406. package/.next/static/chunks/0ynv7zu_bguve.js +0 -1
  407. package/.next/static/chunks/0zi59tghmg1lu.js +0 -18
  408. package/.next/static/chunks/1_ftsgxa-sia_.js +0 -1
  409. package/.next/static/chunks/1cg3torc90q5t.js +0 -1
  410. package/.next/static/chunks/1qnx1h5c8f93b.js +0 -1
  411. package/.next/static/chunks/1rwn3d9ji5w35.js +0 -1
  412. package/.next/static/chunks/1so3f5fi7e5g9.js +0 -35
  413. package/.next/static/chunks/1ya41wxfmp4s8.js +0 -1
  414. package/.next/static/chunks/27rwkfu7_xvs1.js +0 -4
  415. package/.next/static/chunks/2hueh8masqd91.js +0 -15
  416. package/.next/static/chunks/2jrt_752fqz2f.js +0 -1
  417. package/.next/static/chunks/2ogme4qydxnaq.js +0 -3
  418. package/.next/static/chunks/2r2tocw2rpvm2.js +0 -1
  419. package/.next/static/chunks/2t4kimg1lt-p7.js +0 -2
  420. package/.next/static/chunks/2w6y71o27my_z.js +0 -1
  421. package/.next/static/chunks/31_am8rtmk_tv.css +0 -1
  422. package/.next/static/chunks/337g9g_ux2gj-.js +0 -1
  423. package/public/voices/intro/heard-1f12cd45.ogg +0 -0
  424. package/public/voices/intro/mic-e561372a.ogg +0 -0
  425. package/skills/artifact/references/book.md +0 -163
  426. package/skills/artifact/runtime/book/book.css +0 -256
  427. package/skills/artifact/runtime/book/book.html +0 -38
  428. package/skills/artifact/runtime/book/book.js +0 -81
  429. package/skills/artifact/scripts/book-pdf.mjs +0 -73
  430. package/skills/artifact/scripts/book-video.mjs +0 -168
  431. package/skills/artifact/scripts/book.mjs +0 -291
  432. /package/.next/static/{8exfHAtcoebYtxjUC4ugl → 6tIYlzfG_5P4sIxxgmucO}/_buildManifest.js +0 -0
  433. /package/.next/static/{8exfHAtcoebYtxjUC4ugl → 6tIYlzfG_5P4sIxxgmucO}/_clientMiddlewareManifest.js +0 -0
  434. /package/.next/static/{8exfHAtcoebYtxjUC4ugl → 6tIYlzfG_5P4sIxxgmucO}/_ssgManifest.js +0 -0
  435. /package/seed-skills/{marketer → writer}/marketing/LICENSE +0 -0
  436. /package/seed-skills/{marketer → writer}/marketing/SKILL.md +0 -0
  437. /package/seed-skills/{marketer → writer}/marketing/references/copywriting-copy-frameworks.md +0 -0
  438. /package/seed-skills/{marketer → writer}/marketing/references/copywriting-natural-transitions.md +0 -0
  439. /package/seed-skills/{marketer → writer}/marketing/references/copywriting.md +0 -0
  440. /package/seed-skills/{marketer → writer}/marketing/references/emails-copy-guidelines.md +0 -0
  441. /package/seed-skills/{marketer → writer}/marketing/references/emails-email-types.md +0 -0
  442. /package/seed-skills/{marketer → writer}/marketing/references/emails-sequence-templates.md +0 -0
  443. /package/seed-skills/{marketer → writer}/marketing/references/emails.md +0 -0
  444. /package/seed-skills/{marketer → writer}/marketing/references/launch.md +0 -0
  445. /package/seed-skills/{marketer → writer}/marketing/references/product-marketing.md +0 -0
  446. /package/seed-skills/{marketer → writer}/marketing/references/seo-audit-ai-writing-detection.md +0 -0
  447. /package/seed-skills/{marketer → writer}/marketing/references/seo-audit-international-seo.md +0 -0
  448. /package/seed-skills/{marketer → writer}/marketing/references/seo-audit.md +0 -0
  449. /package/seed-skills/{marketer → writer}/marketing/references/social-carousel-frameworks.md +0 -0
  450. /package/seed-skills/{marketer → writer}/marketing/references/social-platform-limits.md +0 -0
  451. /package/seed-skills/{marketer → writer}/marketing/references/social-platforms.md +0 -0
  452. /package/seed-skills/{marketer → writer}/marketing/references/social-post-templates.md +0 -0
  453. /package/seed-skills/{marketer → writer}/marketing/references/social-reverse-engineering.md +0 -0
  454. /package/seed-skills/{marketer → writer}/marketing/references/social-short-form-video.md +0 -0
  455. /package/seed-skills/{marketer → writer}/marketing/references/social.md +0 -0
@@ -1,3 +1,7 @@
1
- module.exports=[237014,e=>e.a(async(t,a)=>{try{var n=e.i(105249),r=e.i(630368),i=e.i(91264),o=t([r]);[r]=o.then?(await o)():o;let s=e=>n.default.string().min(1).parse(new URL(e.url).searchParams.get("call")),l=(0,i.serverRoute)(async e=>(0,r.followPlanLine)(s(e),e.signal)),u=(0,i.serverRoute)(async e=>{let{events:t}=n.default.object({events:n.default.array(n.default.unknown()).min(1)}).parse(await e.json());(0,r.tellPlanLine)(s(e),t)});e.s(["GET",0,l,"POST",0,u]),a()}catch(e){a(e)}},!1),385993,e=>{"use strict";var t=e.i(747909),a=e.i(174017),n=e.i(996250),r=e.i(759756),i=e.i(561916),o=e.i(174677),s=e.i(869741),l=e.i(316795),u=e.i(487718),c=e.i(995169),p=e.i(47587),d=e.i(666012),h=e.i(570101),f=e.i(626937),v=e.i(10372),R=e.i(193695);e.i(52474);var g=e.i(600220);let m=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/thursday/call/plan/route",pathname:"/api/thursday/call/plan",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/thursday/call/plan/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(237014),...{}}),{workAsyncStorage:y,workUnitAsyncStorage:w,serverHooks:E}=m;async function x(e,t,n){n.requestMeta&&(0,r.setRequestMeta)(e,n.requestMeta),m.isDev&&(0,r.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/thursday/call/plan/route";y=y.replace(/\/index$/,"")||"/";let w=await m.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:E,deploymentId:x,params:_,nextConfig:C,parsedUrl:T,isDraftMode:b,prerenderManifest:A,routerServerContext:P,isOnDemandRevalidate:S,revalidateOnlyGenerated:N,resolvedPathname:O,clientReferenceManifest:q,serverActionsManifest:k}=w,H=(0,s.normalizeAppPath)(y),I=!!(A.dynamicRoutes[H]||A.routes[O]),M=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,T,!1):t.end("This page could not be found"),null);if(I&&!b){let e=!!A.routes[O],t=A.dynamicRoutes[H];if(t&&!1===t.fallback&&!e){if(C.adapterPath)return await M();throw new R.NoFallbackError}}let U=null;!I||m.isDev||b||(U="/index"===(U=O)?"/":U);let D=!0===m.isDev||!I,L=I&&!D;k&&q&&(0,o.setManifestsSingleton)({page:y,clientReferenceManifest:q,serverActionsManifest:k});let j=e.method||"GET",F=(0,i.getTracer)(),K=F.getActiveScopeSpan(),$=!!(null==P?void 0:P.isWrappedByNextServer),B=!!(0,r.getRequestMeta)(e,"minimalMode"),G=(0,r.getRequestMeta)(e,"incrementalCache")||await m.getIncrementalCache(e,C,A,B);null==G||G.resetRequestCache(),globalThis.__incrementalCache=G;let V={params:_,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts,useCacheTimeout:C.experimental.useCacheTimeout},cacheComponents:!!C.cacheComponents,validationLevel:C.experimental.instantInsights.validationLevel,supportsDynamicResponse:D,incrementalCache:G,hmrRefreshHash:(0,r.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:C.cacheLife,staticPageGenerationTimeout:C.staticPageGenerationTimeout,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,n,r)=>m.onRequestError(e,t,n,r,P)},sharedContext:{buildId:E,deploymentId:x}},W=new l.NodeNextRequest(e),X=new l.NodeNextResponse(t),z=u.NextRequestAdapter.fromNodeNextRequest(W,(0,u.signalFromNodeResponse)(t)),Z=async({previousCacheEntry:a})=>{try{if(!B&&S&&N&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let r=await m.handle(z,V);e.fetchMetrics=V.renderOpts.fetchMetrics;let i=V.renderOpts.pendingWaitUntil;i&&n.waitUntil&&(n.waitUntil(i),i=void 0);let o=V.renderOpts.collectedTags;if(!I)return await (0,d.sendResponse)(W,X,r,i),null;{let e=await r.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(r.headers);o&&(t[v.NEXT_CACHE_TAGS_HEADER]=o),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=v.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,n=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=v.INFINITE_CACHE?!1!==a&&a>0?C.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:r.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:n}}}}catch(t){throw(null==a?void 0:a.isStale)&&await m.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:S})},!1,P),t}},J=async(r,o)=>{try{var s,l;let r=await m.handleResponse({req:e,nextConfig:C,cacheKey:U,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:S,revalidateOnlyGenerated:N,responseGenerator:Z,waitUntil:n.waitUntil,isMinimalMode:B});if(!I)return;if((null==r||null==(s=r.value)?void 0:s.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==r||null==(l=r.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});B||t.setHeader("x-nextjs-cache",S?"REVALIDATED":r.isMiss?"MISS":r.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let i=(0,h.fromNodeOutgoingHttpHeaders)(r.value.headers);B&&I||i.delete(v.NEXT_CACHE_TAGS_HEADER),!r.cacheControl||t.getHeader("Cache-Control")||i.get("Cache-Control")||i.set("Cache-Control",(0,f.getCacheControlHeader)(r.cacheControl)),await (0,d.sendResponse)(W,X,new Response(r.value.body,{headers:i,status:r.value.status||200}));return}catch(t){if(t instanceof R.NoFallbackError||await m.onRequestError(e,t,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:S})},!1,P),I)throw t;await (0,d.sendResponse)(W,X,new Response(null,{status:500}));return}finally{(()=>{if(!r)return;let e=t.statusCode;r.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(r.setStatus({code:i.SpanStatusCode.ERROR}),r.setAttribute("error.type",e.toString()));let a=F.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==c.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=a.get("next.route")||H,s=`${j} ${n}`;r.setAttributes({"next.route":n,"http.route":n,"next.span_name":s}),r.updateName(s),o&&o!==r&&(o.setAttribute("http.route",n),o.updateName(s))})()}};if($&&K)await J(K,void 0);else{let t=F.getActiveScopeSpan();await F.withPropagatedContext(e.headers,()=>F.trace(c.BaseServerSpan.handleRequest,{spanName:`${j} ${y}`,kind:i.SpanKind.SERVER,attributes:{"http.method":j,"http.target":e.url}},e=>J(e,t)),void 0,!$)}}e.s(["handler",0,x,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:y,workUnitAsyncStorage:w})},"routeModule",0,m,"serverHooks",0,E,"workAsyncStorage",0,y,"workUnitAsyncStorage",0,w])},630368,e=>e.a(async(t,a)=>{try{e.i(666680),e.i(687388);var n=e.i(656446);e.i(911757);var r=e.i(159479),i=e.i(386075);e.i(279041);var o=e.i(340698);e.i(667503),e.i(904309),e.i(878498),e.i(640911);var s=e.i(850063),l=e.i(53748),u=t([n,r,i,o]);[n,r,i,o]=u.then?(await u)():u;let d=globalThis.__planLines??=new Map;function c(e,t){let a={...t,offset_ms:Date.now()-e.began};e.followed?e.bus.emit(a):e.outbox.push(a)}function p(e,t){e.over||(e.over=!0,clearTimeout(e.orphan),e.stop.abort(),e.next?.(),e.wire.close(),d.delete(e.id),c(e,{type:"session.closed",reason:t}))}e.s(["followPlanLine",0,function(e,t){let a=d.get(e);return(!a||a.over)&&(0,l.publicError)("That call is not open on the plan."),a.followed&&(0,l.publicError)("That call already has its page."),a.followed=!0,clearTimeout(a.orphan),(0,s.createEventStream)(a.bus,{onWatchers:e=>{0===e&&p(a,"connection_lost")}}).respond(t,()=>a.outbox.splice(0))},"tellPlanLine",0,function(e,t){let a=d.get(e);for(let e of(a||(0,l.publicError)("That call is not open on the plan."),t))!function(e,t){if(!e.over)switch(t.type){case"session.instructions.append":case"session.commentary.append":case"session.thinking.append":{let a=t.type.split(".")[1],n="string"==typeof t.content&&e.wire.say(t.content,"thinking"===a?"commentary":"speakable");c(e,n?{type:`session.${a}.appended`,client_event_id:t.event_id}:{type:"error",error:{message:"The call on the plan did not take that update.",client_event_id:t.event_id}});return}case"response.item.create":{let a=t.item;if(a?.type==="function_call_output"){"string"==typeof a.call_id&&e.outputs.set(a.call_id,"string"==typeof a.output?a.output:"");return}let n=a?.type==="message"?a.content??[]:[];if(a?.role==="user"){for(let t of n)"input_image"===t.type&&"string"==typeof t.image_url&&e.pictures.push(t.image_url);return}if(a?.role==="developer")for(let t of n)"input_text"===t.type&&"string"==typeof t.text&&e.facts.push(t.text);return}case"response.create":e.next?e.next():e.asked=!0;return;case"session.close":p(e,"close_requested");return}}(a,e??{})}]),a()}catch(e){a(e)}},!1)];
1
+ module.exports=[237014,e=>e.a(async(t,a)=>{try{var r=e.i(105249),n=e.i(630368),s=e.i(91264),o=t([n]);[n]=o.then?(await o)():o;let i=e=>r.default.string().min(1).parse(new URL(e.url).searchParams.get("call")),l=(0,s.serverRoute)(async e=>(0,n.followPlanLine)(i(e),e.signal)),u=(0,s.serverRoute)(async e=>{let{events:t}=r.default.object({events:r.default.array(r.default.unknown()).min(1)}).parse(await e.json());(0,n.tellPlanLine)(i(e),t)});e.s(["GET",0,l,"POST",0,u]),a()}catch(e){a(e)}},!1),385993,e=>{"use strict";var t=e.i(747909),a=e.i(174017),r=e.i(996250),n=e.i(759756),s=e.i(561916),o=e.i(174677),i=e.i(869741),l=e.i(316795),u=e.i(487718),p=e.i(995169),d=e.i(47587),c=e.i(666012),h=e.i(570101),f=e.i(626937),m=e.i(10372),g=e.i(193695);e.i(52474);var y=e.i(600220);let v=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/thursday/call/plan/route",pathname:"/api/thursday/call/plan",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/thursday/call/plan/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(237014),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:_,serverHooks:R}=v;async function x(e,t,r){r.requestMeta&&(0,n.setRequestMeta)(e,r.requestMeta),v.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/thursday/call/plan/route";w=w.replace(/\/index$/,"")||"/";let _=await v.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!_)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:R,deploymentId:x,params:b,nextConfig:C,parsedUrl:E,isDraftMode:T,prerenderManifest:A,routerServerContext:k,isOnDemandRevalidate:P,revalidateOnlyGenerated:S,resolvedPathname:N,clientReferenceManifest:I,serverActionsManifest:q}=_,O=(0,i.normalizeAppPath)(w),L=!!(A.dynamicRoutes[O]||A.routes[N]),M=async()=>((null==k?void 0:k.render404)?await k.render404(e,t,E,!1):t.end("This page could not be found"),null);if(L&&!T){let e=!!A.routes[N],t=A.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(C.adapterPath)return await M();throw new g.NoFallbackError}}let U=null;!L||v.isDev||T||(U="/index"===(U=N)?"/":U);let H=!0===v.isDev||!L,$=L&&!H;q&&I&&(0,o.setManifestsSingleton)({page:w,clientReferenceManifest:I,serverActionsManifest:q});let D=e.method||"GET",j=(0,s.getTracer)(),B=j.getActiveScopeSpan(),F=!!(null==k?void 0:k.isWrappedByNextServer),K=!!(0,n.getRequestMeta)(e,"minimalMode"),G=(0,n.getRequestMeta)(e,"incrementalCache")||await v.getIncrementalCache(e,C,A,K);null==G||G.resetRequestCache(),globalThis.__incrementalCache=G;let X={params:b,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts,useCacheTimeout:C.experimental.useCacheTimeout},cacheComponents:!!C.cacheComponents,validationLevel:C.experimental.instantInsights.validationLevel,supportsDynamicResponse:H,incrementalCache:G,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:C.cacheLife,staticPageGenerationTimeout:C.staticPageGenerationTimeout,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>v.onRequestError(e,t,r,n,k)},sharedContext:{buildId:R,deploymentId:x}},V=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),z=u.NextRequestAdapter.fromNodeNextRequest(V,(0,u.signalFromNodeResponse)(t)),J=async({previousCacheEntry:a})=>{try{if(!K&&P&&S&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await v.handle(z,X);e.fetchMetrics=X.renderOpts.fetchMetrics;let s=X.renderOpts.pendingWaitUntil;s&&r.waitUntil&&(r.waitUntil(s),s=void 0);let o=X.renderOpts.collectedTags;if(!L)return await (0,c.sendResponse)(V,W,n,s),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);o&&(t[m.NEXT_CACHE_TAGS_HEADER]=o),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,r=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=m.INFINITE_CACHE?!1!==a&&a>0?C.expireTime:void 0:X.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await v.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:P})},!1,k),t}},Z=async(n,o)=>{try{var i,l;let n=await v.handleResponse({req:e,nextConfig:C,cacheKey:U,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:S,responseGenerator:J,waitUntil:r.waitUntil,isMinimalMode:K});if(!L)return;if((null==n||null==(i=n.value)?void 0:i.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==n||null==(l=n.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});K||t.setHeader("x-nextjs-cache",P?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let s=(0,h.fromNodeOutgoingHttpHeaders)(n.value.headers);K&&L||s.delete(m.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||s.get("Cache-Control")||s.set("Cache-Control",(0,f.getCacheControlHeader)(n.cacheControl)),await (0,c.sendResponse)(V,W,new Response(n.value.body,{headers:s,status:n.value.status||200}));return}catch(t){if(t instanceof g.NoFallbackError||await v.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:P})},!1,k),L)throw t;await (0,c.sendResponse)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!n)return;let e=t.statusCode;n.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(n.setStatus({code:s.SpanStatusCode.ERROR}),n.setAttribute("error.type",e.toString()));let a=j.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==p.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route")||O,i=`${D} ${r}`;n.setAttributes({"next.route":r,"http.route":r,"next.span_name":i}),n.updateName(i),o&&o!==n&&(o.setAttribute("http.route",r),o.updateName(i))})()}};if(F&&B)await Z(B,void 0);else{let t=j.getActiveScopeSpan();await j.withPropagatedContext(e.headers,()=>j.trace(p.BaseServerSpan.handleRequest,{spanName:`${D} ${w}`,kind:s.SpanKind.SERVER,attributes:{"http.method":D,"http.target":e.url}},e=>Z(e,t)),void 0,!F)}}e.s(["handler",0,x,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:_})},"routeModule",0,v,"serverHooks",0,R,"workAsyncStorage",0,w,"workUnitAsyncStorage",0,_])},630368,e=>e.a(async(t,a)=>{try{var r=e.i(666680),n=e.i(68356),s=e.i(687388),o=e.i(656446);e.i(911757);var i=e.i(159479),l=e.i(386075);e.i(279041);var u=e.i(340698);e.i(667503),e.i(904309),e.i(878498);var p=e.i(640911),d=e.i(850063),c=e.i(53748),h=t([o,i,l,u]);[o,i,l,u]=h.then?(await h)():h;let R=globalThis.__planLines??=new Map;function f(e,t){let a={...t,offset_ms:Date.now()-e.began};e.followed?e.bus.emit(a):e.outbox.push(a)}async function m(e){if(!e.working){e.working=!0;try{for(let t=e.handed.shift();t&&!e.over;t=e.handed.shift())await y(e,t)}finally{e.working=!1}}}function g(e,t){let a=e.replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;");if(Buffer.byteLength(a)<=s.PLAN_CALL.delegationBytes)return a;let r=s.PLAN_CALL.delegationBytes-Buffer.byteLength("…"),n=Array.from(a);"end"===t&&n.reverse();let o=[];for(let e of n){if((r-=Buffer.byteLength(e))<0)break;o.push(e)}return"end"===t&&o.reverse(),"start"===t?`${o.join("")}…`:`…${o.join("")}`}async function y(e,t){var a;let n,o;if(null===t.id&&!e.facts.length&&!e.pictures.length)return;let i=a=>null===t.id?e.wire.say(a,"speakable"):e.wire.answer(t.id,a,"speakable"),l=e.talk.splice(0).map(e=>`${e.role}: ${e.text}`).join("\n");null===t.id&&l&&e.messages.push({role:"system",content:`Said since you last worked, as the voice's side transcribed it:
2
+ <transcript_delta>${g(l,"end")}</transcript_delta>`}),v(e),null!==t.id&&e.messages.push({role:"user",content:(a=t.text,n=g(a||l,"start"),o=l?`
3
+ <transcript_delta>${g(l,"end")}</transcript_delta>`:"",`<realtime_delegation>
4
+ <input>${n}</input>${o}
5
+ </realtime_delegation>`)});for(let a=0;a<s.TEXT_CALL.maxSteps&&!e.over;a+=1){let a=`resp_${(0,r.randomUUID)()}`,n=r=>f(e,{type:"response.event",delegation_id:t.id,event:{response_id:a,...r}});n({type:"response.created",response:{id:a}});let s=await w(e,n);if(e.over)return;if("failed"in s){n({type:"response.failed",response:{id:a,error:{message:s.failed}}}),i(`That failed: ${s.failed}`);return}if(e.calling=s.calls.map(e=>e.toolCallId),n({type:"response.completed",response:{id:a}}),!s.calls.length){if(s.invalid){v(e);continue}s.text&&i(s.text);return}if(e.asked||await new Promise(t=>{e.next=t}),e.next=null,e.asked=!1,e.calling=[],e.over)return;for(let t of(e.messages.push({role:"tool",content:s.calls.map(t=>({type:"tool-result",toolCallId:t.toolCallId,toolName:t.toolName,output:{type:"text",value:e.outputs.get(t.toolCallId)??"No output came back."}}))}),s.calls))e.outputs.delete(t.toolCallId);v(e)}e.over||i("That failed: it ran out of steps before it had an answer.")}function v(e){var t;let a;for(let t of e.facts.splice(0))e.messages.push({role:"system",content:t});(a=(t=e).pictures.splice(0)).length&&t.messages.push({role:"user",content:a})}async function w(e,t){let a=new Map,s=new Map;try{let o=(0,n.streamText)({model:e.backend.model,instructions:e.backend.system,messages:e.messages,allowSystemInMessages:!0,tools:e.backend.tools,providerOptions:e.backend.providerOptions,abortSignal:e.stop.signal});for await(let e of o.fullStream)switch(e.type){case"reasoning-delta":a.set(e.id,(a.get(e.id)??"")+e.text);break;case"reasoning-end":{let r=a.get(e.id)?.trim();r&&t({type:"response.reasoning_summary_text.done",item_id:e.id,summary_index:0,text:r});break}case"tool-call":if(e.invalid&&!e.providerExecuted)break;t(e.providerExecuted?{type:"response.output_item.added",item:{type:"web_search_call",id:e.toolCallId,action:{}}}:{type:"response.output_item.done",item:{type:"function_call",id:e.toolCallId,call_id:e.toolCallId,name:e.toolName,arguments:JSON.stringify(e.input??{}),status:"completed"}});break;case"tool-result":e.providerExecuted&&t({type:"response.output_item.done",item:{type:"web_search_call",id:e.toolCallId,action:function(e){let{action:t,sources:a}=e??{};return{..."string"==typeof t?.query?{query:t.query}:{},...Array.isArray(t?.queries)?{queries:t.queries}:{},sources:(a??[]).flatMap(e=>"string"==typeof e?.url?[{url:e.url}]:[])}}(e.output)}});break;case"source":"url"!==e.sourceType||s.has(e.url)||s.set(e.url,{url:e.url,...e.title?{title:e.title}:{}});break;case"error":throw e.error}let[i,l,u]=await Promise.all([o.toolCalls,o.text,o.response]);s.size&&t({type:"response.output_item.done",item:{type:"message",id:`msg_${(0,r.randomUUID)()}`,content:[{type:"output_text",annotations:[...s.values()].map(e=>({type:"url_citation",...e}))}]}}),e.messages.push(...u.messages);let p=i.filter(e=>!e.providerExecuted);return{calls:p.filter(e=>!e.invalid),invalid:p.some(e=>e.invalid),text:l.trim()}}catch(t){if(e.over)return{failed:"The call ended."};return p.logger.warn({cause:t},"plan call backend step failed"),{failed:(0,l.modelErrorToString)(t)}}}function _(e,t){e.over||(e.over=!0,clearTimeout(e.orphan),e.stop.abort(),e.next?.(),e.wire.close(),R.delete(e.id),f(e,{type:"session.closed",reason:t}))}e.s(["followPlanLine",0,function(e,t){let a=R.get(e);return(!a||a.over)&&(0,c.publicError)("That call is not open on the plan."),a.followed&&(0,c.publicError)("That call already has its page."),a.followed=!0,clearTimeout(a.orphan),(0,d.createEventStream)(a.bus,{onWatchers:e=>{0===e&&_(a,"connection_lost")}}).respond(t,()=>a.outbox.splice(0))},"tellPlanLine",0,function(e,t){let a=R.get(e);for(let e of(a||(0,c.publicError)("That call is not open on the plan."),t))!function(e,t){if(!e.over)switch(t.type){case"session.instructions.append":case"session.commentary.append":case"session.thinking.append":{let a=t.type.split(".")[1],r="string"==typeof t.content&&e.wire.say(t.content,"thinking"===a?"commentary":"speakable");f(e,r?{type:`session.${a}.appended`,client_event_id:t.event_id}:{type:"error",error:{message:"The call on the plan did not take that update.",client_event_id:t.event_id}});return}case"response.item.create":{let a=t.item;if(a?.type==="function_call_output"){"string"==typeof a.call_id&&e.outputs.set(a.call_id,"string"==typeof a.output?a.output:"");return}let r=a?.type==="message"?a.content??[]:[];if(a?.role==="user"){for(let t of r)"input_image"===t.type&&"string"==typeof t.image_url?e.pictures.push({type:"image",image:t.image_url}):"input_text"===t.type&&"string"==typeof t.text&&e.pictures.push({type:"text",text:t.text});return}if(a?.role==="developer")for(let t of r)"input_text"===t.type&&"string"==typeof t.text&&e.facts.push(t.text);return}case"response.create":e.calling.length&&e.calling.every(t=>e.outputs.has(t))?e.next?e.next():e.asked=!0:(e.handed.push({id:null}),m(e));return;case"session.close":_(e,"close_requested");return}}(a,e??{})}]),a()}catch(e){a(e)}},!1)];
2
6
 
3
7
  //# sourceMappingURL=_0ue8nq-._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[548368,e=>e.a(async(t,a)=>{try{var r=e.i(687388),n=e.i(22676),s=e.i(91264),i=t([n]);[n]=i.then?(await i)():i;let o=(0,s.serverRoute)(e=>{let t=new URL(e.url).searchParams.get("before"),a=t?new Date(t):null;return(0,n.listCallHistory)({before:a&&!Number.isNaN(a.getTime())?a:null,limit:r.CALL_HISTORY_PAGE})});e.s(["GET",0,o]),a()}catch(e){a(e)}},!1),252838,e=>{"use strict";var t=e.i(747909),a=e.i(174017),r=e.i(996250),n=e.i(759756),s=e.i(561916),i=e.i(174677),o=e.i(869741),l=e.i(316795),u=e.i(487718),d=e.i(995169),c=e.i(47587),p=e.i(666012),h=e.i(570101),R=e.i(626937),v=e.i(10372),m=e.i(193695);e.i(52474);var f=e.i(600220);let g=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/thursday/call/route",pathname:"/api/thursday/call",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/thursday/call/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(548368),...{}}),{workAsyncStorage:_,workUnitAsyncStorage:w,serverHooks:E}=g;async function C(e,t,r){r.requestMeta&&(0,n.setRequestMeta)(e,r.requestMeta),g.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let _="/api/thursday/call/route";_=_.replace(/\/index$/,"")||"/";let w=await g.prepare(e,t,{srcPage:_,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:E,deploymentId:C,params:x,nextConfig:y,parsedUrl:A,isDraftMode:T,prerenderManifest:P,routerServerContext:b,isOnDemandRevalidate:N,revalidateOnlyGenerated:S,resolvedPathname:O,clientReferenceManifest:k,serverActionsManifest:H}=w,q=(0,o.normalizeAppPath)(_),I=!!(P.dynamicRoutes[q]||P.routes[O]),M=async()=>((null==b?void 0:b.render404)?await b.render404(e,t,A,!1):t.end("This page could not be found"),null);if(I&&!T){let e=!!P.routes[O],t=P.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(y.adapterPath)return await M();throw new m.NoFallbackError}}let U=null;!I||g.isDev||T||(U="/index"===(U=O)?"/":U);let j=!0===g.isDev||!I,D=I&&!j;H&&k&&(0,i.setManifestsSingleton)({page:_,clientReferenceManifest:k,serverActionsManifest:H});let L=e.method||"GET",F=(0,s.getTracer)(),K=F.getActiveScopeSpan(),G=!!(null==b?void 0:b.isWrappedByNextServer),$=!!(0,n.getRequestMeta)(e,"minimalMode"),B=(0,n.getRequestMeta)(e,"incrementalCache")||await g.getIncrementalCache(e,y,P,$);null==B||B.resetRequestCache(),globalThis.__incrementalCache=B;let V={params:x,previewProps:P.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:j,incrementalCache:B,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>g.onRequestError(e,t,r,n,b)},sharedContext:{buildId:E,deploymentId:C}},X=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),z=u.NextRequestAdapter.fromNodeNextRequest(X,(0,u.signalFromNodeResponse)(t)),Y=async({previousCacheEntry:a})=>{try{if(!$&&N&&S&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await g.handle(z,V);e.fetchMetrics=V.renderOpts.fetchMetrics;let s=V.renderOpts.pendingWaitUntil;s&&r.waitUntil&&(r.waitUntil(s),s=void 0);let i=V.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(X,W,n,s),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);i&&(t[v.NEXT_CACHE_TAGS_HEADER]=i),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=v.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,r=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=v.INFINITE_CACHE?!1!==a&&a>0?y.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await g.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:N})},!1,b),t}},Z=async(n,i)=>{try{var o,l;let n=await g.handleResponse({req:e,nextConfig:y,cacheKey:U,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:P,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:S,responseGenerator:Y,waitUntil:r.waitUntil,isMinimalMode:$});if(!I)return;if((null==n||null==(o=n.value)?void 0:o.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==n||null==(l=n.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});$||t.setHeader("x-nextjs-cache",N?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let s=(0,h.fromNodeOutgoingHttpHeaders)(n.value.headers);$&&I||s.delete(v.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||s.get("Cache-Control")||s.set("Cache-Control",(0,R.getCacheControlHeader)(n.cacheControl)),await (0,p.sendResponse)(X,W,new Response(n.value.body,{headers:s,status:n.value.status||200}));return}catch(t){if(t instanceof m.NoFallbackError||await g.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:N})},!1,b),I)throw t;await (0,p.sendResponse)(X,W,new Response(null,{status:500}));return}finally{(()=>{if(!n)return;let e=t.statusCode;n.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(n.setStatus({code:s.SpanStatusCode.ERROR}),n.setAttribute("error.type",e.toString()));let a=F.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==d.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route")||q,o=`${L} ${r}`;n.setAttributes({"next.route":r,"http.route":r,"next.span_name":o}),n.updateName(o),i&&i!==n&&(i.setAttribute("http.route",r),i.updateName(o))})()}};if(G&&K)await Z(K,void 0);else{let t=F.getActiveScopeSpan();await F.withPropagatedContext(e.headers,()=>F.trace(d.BaseServerSpan.handleRequest,{spanName:`${L} ${_}`,kind:s.SpanKind.SERVER,attributes:{"http.method":L,"http.target":e.url}},e=>Z(e,t)),void 0,!G)}}e.s(["handler",0,C,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:_,workUnitAsyncStorage:w})},"routeModule",0,g,"serverHooks",0,E,"workAsyncStorage",0,_,"workUnitAsyncStorage",0,w])},720275,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__16y0k92._.js","server/chunks/_1hw1ujv._.js","server/chunks/node_modules_@ai-sdk_1o5ydf6._.js"].map(t=>e.l(t))).then(()=>t(656446)))},329280,e=>{e.v(t=>Promise.all(["server/chunks/[externals]_node_readline_1u65a-m._.js","server/chunks/node_modules_consola_dist_chunks_prompt_mjs_02axwqv._.js"].map(t=>e.l(t))).then(()=>t(781937)))}];
1
+ module.exports=[548368,e=>e.a(async(t,a)=>{try{var r=e.i(687388),n=e.i(22676),s=e.i(91264),i=t([n]);[n]=i.then?(await i)():i;let o=(0,s.serverRoute)(e=>{let t=new URL(e.url).searchParams.get("before"),a=t?new Date(t):null;return(0,n.listCallHistory)({before:a&&!Number.isNaN(a.getTime())?a:null,limit:r.CALL_HISTORY_PAGE})});e.s(["GET",0,o]),a()}catch(e){a(e)}},!1),252838,e=>{"use strict";var t=e.i(747909),a=e.i(174017),r=e.i(996250),n=e.i(759756),s=e.i(561916),i=e.i(174677),o=e.i(869741),l=e.i(316795),u=e.i(487718),d=e.i(995169),c=e.i(47587),p=e.i(666012),h=e.i(570101),R=e.i(626937),v=e.i(10372),m=e.i(193695);e.i(52474);var f=e.i(600220);let g=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/thursday/call/route",pathname:"/api/thursday/call",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/thursday/call/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(548368),...{}}),{workAsyncStorage:_,workUnitAsyncStorage:w,serverHooks:E}=g;async function C(e,t,r){r.requestMeta&&(0,n.setRequestMeta)(e,r.requestMeta),g.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let _="/api/thursday/call/route";_=_.replace(/\/index$/,"")||"/";let w=await g.prepare(e,t,{srcPage:_,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:E,deploymentId:C,params:x,nextConfig:y,parsedUrl:A,isDraftMode:T,prerenderManifest:P,routerServerContext:b,isOnDemandRevalidate:N,revalidateOnlyGenerated:S,resolvedPathname:O,clientReferenceManifest:q,serverActionsManifest:H}=w,k=(0,o.normalizeAppPath)(_),I=!!(P.dynamicRoutes[k]||P.routes[O]),M=async()=>((null==b?void 0:b.render404)?await b.render404(e,t,A,!1):t.end("This page could not be found"),null);if(I&&!T){let e=!!P.routes[O],t=P.dynamicRoutes[k];if(t&&!1===t.fallback&&!e){if(y.adapterPath)return await M();throw new m.NoFallbackError}}let U=null;!I||g.isDev||T||(U="/index"===(U=O)?"/":U);let j=!0===g.isDev||!I,D=I&&!j;H&&q&&(0,i.setManifestsSingleton)({page:_,clientReferenceManifest:q,serverActionsManifest:H});let L=e.method||"GET",F=(0,s.getTracer)(),K=F.getActiveScopeSpan(),G=!!(null==b?void 0:b.isWrappedByNextServer),$=!!(0,n.getRequestMeta)(e,"minimalMode"),B=(0,n.getRequestMeta)(e,"incrementalCache")||await g.getIncrementalCache(e,y,P,$);null==B||B.resetRequestCache(),globalThis.__incrementalCache=B;let V={params:x,previewProps:P.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:j,incrementalCache:B,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>g.onRequestError(e,t,r,n,b)},sharedContext:{buildId:E,deploymentId:C}},X=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),z=u.NextRequestAdapter.fromNodeNextRequest(X,(0,u.signalFromNodeResponse)(t)),Y=async({previousCacheEntry:a})=>{try{if(!$&&N&&S&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await g.handle(z,V);e.fetchMetrics=V.renderOpts.fetchMetrics;let s=V.renderOpts.pendingWaitUntil;s&&r.waitUntil&&(r.waitUntil(s),s=void 0);let i=V.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(X,W,n,s),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);i&&(t[v.NEXT_CACHE_TAGS_HEADER]=i),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=v.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,r=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=v.INFINITE_CACHE?!1!==a&&a>0?y.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await g.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:N})},!1,b),t}},Z=async(n,i)=>{try{var o,l;let n=await g.handleResponse({req:e,nextConfig:y,cacheKey:U,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:P,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:S,responseGenerator:Y,waitUntil:r.waitUntil,isMinimalMode:$});if(!I)return;if((null==n||null==(o=n.value)?void 0:o.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==n||null==(l=n.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});$||t.setHeader("x-nextjs-cache",N?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let s=(0,h.fromNodeOutgoingHttpHeaders)(n.value.headers);$&&I||s.delete(v.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||s.get("Cache-Control")||s.set("Cache-Control",(0,R.getCacheControlHeader)(n.cacheControl)),await (0,p.sendResponse)(X,W,new Response(n.value.body,{headers:s,status:n.value.status||200}));return}catch(t){if(t instanceof m.NoFallbackError||await g.onRequestError(e,t,{routerKind:"App Router",routePath:k,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:N})},!1,b),I)throw t;await (0,p.sendResponse)(X,W,new Response(null,{status:500}));return}finally{(()=>{if(!n)return;let e=t.statusCode;n.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(n.setStatus({code:s.SpanStatusCode.ERROR}),n.setAttribute("error.type",e.toString()));let a=F.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==d.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route")||k,o=`${L} ${r}`;n.setAttributes({"next.route":r,"http.route":r,"next.span_name":o}),n.updateName(o),i&&i!==n&&(i.setAttribute("http.route",r),i.updateName(o))})()}};if(G&&K)await Z(K,void 0);else{let t=F.getActiveScopeSpan();await F.withPropagatedContext(e.headers,()=>F.trace(d.BaseServerSpan.handleRequest,{spanName:`${L} ${_}`,kind:s.SpanKind.SERVER,attributes:{"http.method":L,"http.target":e.url}},e=>Z(e,t)),void 0,!G)}}e.s(["handler",0,C,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:_,workUnitAsyncStorage:w})},"routeModule",0,g,"serverHooks",0,E,"workAsyncStorage",0,_,"workUnitAsyncStorage",0,w])},720275,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__0cfv4rq._.js","server/chunks/_1hw1ujv._.js","server/chunks/node_modules_@ai-sdk_1o5ydf6._.js"].map(t=>e.l(t))).then(()=>t(656446)))},329280,e=>{e.v(t=>Promise.all(["server/chunks/[externals]_node_readline_1u65a-m._.js","server/chunks/node_modules_consola_dist_chunks_prompt_mjs_02axwqv._.js"].map(t=>e.l(t))).then(()=>t(781937)))}];
2
2
 
3
- //# sourceMappingURL=_1uu4wjr._.js.map
3
+ //# sourceMappingURL=_0wkhub3._.js.map
@@ -1,14 +1,14 @@
1
- module.exports=[851372,e=>e.a(async(t,o)=>{try{var a=e.i(343747),r=e.i(687388),n=e.i(186304),s=e.i(353885),i=e.i(393189),l=e.i(265143),d=e.i(944971),h=e.i(438188),u=e.i(889034),c=e.i(378884),w=e.i(148831),p=e.i(619898),f=e.i(636882),m=e.i(629668),y=e.i(786025),g=e.i(704161),b=e.i(41444),T=e.i(660948),$=e.i(54282),v=t([l,c,w,p,f,T]);async function k(e,t,o,n){var h,u,v,k,S,N,C,M,E,R;let A,j,W,_,B,P,L,U,Y,H=await (0,y.openWorkspace)(),D=e.trim(),[F,J,q,K,G,z,Q,V,X]=await Promise.all([(0,f.loadSkills)(H,D),(0,p.listNoteIndex)(),(0,T.listConnectedToolNames)(),(0,w.findPinnedTools)(D),(0,l.listJobBots)(),(0,i.listBotMemory)(D),(0,l.readBotMemoryOn)(),(0,y.readMachineTools)(H),(0,c.listBotWork)(D,o?.thread??null)]),Z=G.filter(e=>e.name!==D),ee=G.find(e=>e.name===D)??await (0,l.findJobBot)(D),et=[(h=D,u=ee,v=o,j=(A=v?.owner??h)===h?"**You** coordinate this thread: its result goes from you to Thursday.":`**${A}** coordinates this thread and brings its result to Thursday.`,W=v?`
1
+ module.exports=[851372,e=>e.a(async(t,o)=>{try{var a=e.i(343747),r=e.i(687388),n=e.i(186304),s=e.i(353885),i=e.i(393189),l=e.i(265143),d=e.i(944971),h=e.i(438188),u=e.i(732395),c=e.i(889034),w=e.i(378884),p=e.i(148831),f=e.i(619898),m=e.i(636882),y=e.i(629668),g=e.i(786025),b=e.i(704161),T=e.i(41444),$=e.i(660948),v=e.i(54282),k=t([l,w,p,f,m,$]);async function I(e,t,o,n){var h,u,c,k,I,N,C,M,E,R;let A,j,B,W,_,P,L,U,Y,H=await (0,g.openWorkspace)(),D=e.trim(),[F,J,q,K,G,z,Q,V,X]=await Promise.all([(0,m.loadSkills)(H,D),(0,f.listNoteIndex)(),(0,$.listConnectedToolNames)(),(0,p.findPinnedTools)(D),(0,l.listJobBots)(),(0,i.listBotMemory)(D),(0,l.readBotMemoryOn)(),(0,g.readMachineTools)(H),(0,w.listBotWork)(D,o?.thread??null)]),Z=G.filter(e=>e.name!==D),ee=G.find(e=>e.name===D)??await (0,l.findJobBot)(D),et=[(h=D,u=ee,c=o,j=(A=c?.owner??h)===h?"**You** coordinate this thread: its result goes from you to Thursday.":`**${A}** coordinates this thread and brings its result to Thursday.`,B=c?`
2
2
 
3
- Current conversation: ${v.caller} → ${h}. Your final text goes back to ${v.caller}.`:"",_=u?`
4
- Others know you as: ${(0,d.rosterLine)(u)}`:"",B=I(h,v)?"your tools, the other bots, this machine":`your tools, this machine, and the other bots through ${A}`,`You are ${h}, one of the bots in this thread. ${(0,$.todayLine)()}${_}
3
+ Current conversation: ${c.caller} → ${h}. Your final text goes back to ${c.caller}.`:"",W=u?`
4
+ Others know you as: ${(0,d.rosterLine)(u)}`:"",_=x(h,c)?"your tools, the other bots, this machine":`your tools, this machine, and the other bots through ${A}`,`You are ${h}, one of the bots in this thread. ${(0,v.todayLine)()}${W}
5
5
 
6
6
  - **The user** — the one person all of this is for. They talk with Thursday by voice and follow this thread on their screen.
7
7
  - **Thursday** — their personal assistant. She talks with them, hands bots the work that takes time, and tells them what comes back.
8
8
  - ${j}
9
- - **Everyone on it** keeps their own work and conversation; the others see only the messages sent to them.${W}
9
+ - **Everyone on it** keeps their own work and conversation; the others see only the messages sent to them.${B}
10
10
 
11
- **The job is done, not described.** You are on the user's own computer, with a shell, files and the web, and how you get there is yours: when one way fails, try another; where no tool exists, write one — \`node\` is always here. Before deciding something cannot be done, look at what you have — ${B}. Bring back the thing itself — their account, their file, the real result — not a smaller, safer stand-in, and not a note on why not.
11
+ **The job is done, not described.** You are on the user's own computer, with a shell, files and the web, and how you get there is yours: when one way fails, try another; where no tool exists, write one — \`node\` is always here. Before deciding something cannot be done, look at what you have — ${_}. Bring back the thing itself — their account, their file, the real result — not a smaller, safer stand-in, and not a note on why not.
12
12
 
13
13
  **Never present a guess as a result.** Thursday says what you return out loud, as fact: say which part is unverified and why.`),(k=J,`## Thursday's memory of the user
14
14
 
@@ -16,32 +16,32 @@ What Thursday keeps from talking with them. When the job needs something about t
16
16
 
17
17
  path — what it is about (facts)
18
18
 
19
- ${(0,$.noteLines)(k)}`),function(e,t){let o=new Set(t.map(e=>`${e.server}/${e.name}`)),a=e.filter(e=>!o.has(`${e.server}/${e.name}`));if(0===a.length)return"";let r=o.size?" The ones you already hold are in your tools instead.":"";return`## Connected tools
19
+ ${(0,v.noteLines)(k)}`),function(e,t){let o=new Set(t.map(e=>`${e.server}/${e.name}`)),a=e.filter(e=>!o.has(`${e.server}/${e.name}`));if(0===a.length)return"";let r=o.size?" The ones you already hold are in your tools instead.":"";return`## Connected tools
20
20
 
21
- ${(0,$.mcpToolLines)(a)}
21
+ ${(0,v.mcpToolLines)(a)}
22
22
 
23
- Names only: \`${s.TOOL_NAMES.tool_search}\` returns what each one takes, \`${s.TOOL_NAMES.tool_call}\` runs one.${r}`}(q,K),(S=F,0===S.length?"":`## Skills
23
+ Names only: \`${s.TOOL_NAMES.tool_search}\` returns what each one takes, \`${s.TOOL_NAMES.tool_call}\` runs one.${r}`}(q,K),(I=F,0===I.length?"":`## Skills
24
24
 
25
25
  Written-down ways of doing things. Open one with \`${s.TOOL_NAMES.load_skill}\` before a job it covers, unless its instructions are already in your conversation.
26
26
 
27
- ${(0,$.skillLines)(S)}`),O(H.cwd,V,n),Q?(N=(0,i.botMemoryFolder)(D),P=(C=z).entries.length?C.entries.map(({file:e,line:t,at:o})=>{let n=t?` — ${(0,b.clip)(t,r.PROMPT_LINE.botMemory)}`:"";return`- ${e}${n} \xb7 ${(0,a.format)((0,g.toDate)(o),"yyyy-MM-dd")}`}).join("\n"):"Empty.",L=C.total>C.entries.length?`
27
+ ${(0,v.skillLines)(I)}`),S(H.cwd,V,n),Q?(N=(0,i.botMemoryFolder)(D),P=(C=z).entries.length?C.entries.map(({file:e,line:t,at:o})=>{let n=t?` — ${(0,T.clip)(t,r.PROMPT_LINE.botMemory)}`:"";return`- ${e}${n} \xb7 ${(0,a.format)((0,b.toDate)(o),"yyyy-MM-dd")}`}).join("\n"):"Empty.",L=C.total>C.entries.length?`
28
28
 
29
29
  The newest ${C.entries.length} of ${C.total}; \`ls ${N}\` for the rest.`:"",`## Your memory
30
30
 
31
31
  What you learned on your own earlier jobs, in \`${N}/\`: one topic per file, its first line saying what it holds, read by no other bot, up to ${r.BOT_MEMORY_LIMITS.files} files of ${r.BOT_MEMORY_LIMITS.chars.toLocaleString("en-US")} characters each. It is how you get better at this work. When a job teaches you something a later one would otherwise find out again — how a site signs in, the way through its screens, a command that turned out right — or the user asks you to remember how to work, keep it with the date it was true, and fix or delete what proved wrong. No passwords, keys or codes.
32
32
 
33
- ${P}${L}`):"",(M=`${(0,y.botFolder)(D)}/${r.PATHS.skills.own}`,`## Your own skills
33
+ ${P}${L}`):"",(M=`${(0,g.botFolder)(D)}/${r.PATHS.skills.own}`,`## Your own skills
34
34
 
35
- A skill in \`${M}/\` is listed to you alone, and read on every step you take, so keep few. Write one only when the job is a kind that comes again — a routine runs it, or your other threads show the same kind of job — and doing it well took a way of working, not a fact your memory can hold. Before writing one, improve the one of yours that covers the job instead. Write it as the skill-creator skill says; the job you just did is its test, so validate it and run no test prompts. Say in one line of your answer which skill you wrote or changed. Any skill outside that folder changes only when the user asks.`),function(e,t){if(!t.open.length&&!t.recent.length)return"";let o=t=>{let o=t.said?` — ${(0,b.clip)(t.said,r.BOT_WORK.said)}`:"",a=t.said?(0,m.pathsIn)(t.said).slice(0,r.BOT_WORK.files):[],n=a.length?` \xb7 ${a.map(e=>`\`${e}\``).join(", ")}`:"";return`- ${t.cut?`[${(0,d.workHandle)(t.id)}] `:""}${(0,$.botWorkHead)(t,e)}${o}${n}`},a=(e,t)=>t.length?`${e}
35
+ A skill in \`${M}/\` is listed to you alone, and read on every step you take, so keep few. Write one only when the job is a kind that comes again — a routine runs it, or your other threads show the same kind of job — and doing it well took a way of working, not a fact your memory can hold. Before writing one, improve the one of yours that covers the job instead. Write it as the skill-creator skill says; the job you just did is its test, so validate it and run no test prompts. Say in one line of your answer which skill you wrote or changed. Any skill outside that folder changes only when the user asks.`),function(e,t){if(!t.open.length&&!t.recent.length)return"";let o=t=>{let o=t.said?` — ${(0,T.clip)(t.said,r.BOT_WORK.said)}`:"",a=t.said?(0,y.pathsIn)(t.said).slice(0,r.BOT_WORK.files):[],n=a.length?` \xb7 ${a.map(e=>`\`${e}\``).join(", ")}`:"";return`- ${t.cut?`[${(0,d.workHandle)(t.id)}] `:""}${(0,v.botWorkHead)(t,e)}${o}${n}`},a=(e,t)=>t.length?`${e}
36
36
  ${t.map(o).join("\n")}`:"",n=[...t.open,...t.recent].some(e=>e.cut)?` A line with an id in brackets was cut short: \`${s.TOOL_NAMES.thread_recall}\` opens that one whole, for when this job builds on it.`:"";return`## Your other threads
37
37
 
38
38
  Your threads besides this one. You remember none of them here: each line is where it stands, your own last words there, and the files those words name.${n}
39
39
 
40
- ${[a("Open",t.open),a("Ended",t.recent)].filter(Boolean).join("\n")}`}(D,X),function(e,t,o){if(0===e.length)return"";let a=I(t,o)?`When part of the job is another bot's strength, bring it in with \`${s.TOOL_NAMES.send_message}\` rather than rebuilding it yourself.`:`When part of the job is another bot's strength, say so in your answer: ${o?.owner??"the coordinator"} brings them in.`;return`## Bots
40
+ ${[a("Open",t.open),a("Ended",t.recent)].filter(Boolean).join("\n")}`}(D,X),function(e,t,o){if(0===e.length)return"";let a=x(t,o)?`When part of the job is another bot's strength, bring it in with \`${s.TOOL_NAMES.send_message}\` rather than rebuilding it yourself.`:`When part of the job is another bot's strength, say so in your answer: ${o?.owner??"the coordinator"} brings them in.`;return`## Bots
41
41
 
42
42
  ${e.map(e=>`- **${e.name}** — ${(0,d.rosterLine)(e)}`).join("\n")}
43
43
 
44
- These lines were written for the user: where one says "you", it means them. ${a}`}(Z,D,o),(E=D,R=o,U=R?.caller??"whoever asked",Y=`Write in the user's language, and name the paths of finished work. In Markdown, reference images by absolute route (\`/api/file/${r.PATHS.artifacts}/…\`).`,I(E,R)?`## Working together
44
+ These lines were written for the user: where one says "you", it means them. ${a}`}(Z,D,o),(E=D,R=o,U=R?.caller??"whoever asked",Y=`Write in the user's language, and name the paths of finished work. In Markdown, reference images by absolute route (\`/api/file/${r.PATHS.artifacts}/…\`).`,x(E,R)?`## Working together
45
45
 
46
46
  Nobody sees your work but you, and you see only what others send you, so whatever crosses between you has to stand on its own. A request says what is wanted, what is already known or done, and where the files are; an answer gives exact values, file paths and what is still unverified. Tell a bot you handed work to when what it depends on changes: it reads that before its next step. End your turn when you have nothing more to do now: answers arrive as new messages and wake you. The bots you bring in answer only to you: when one needs another bot's work or something from the user, it says so in its answer, and you decide.
47
47
 
@@ -55,15 +55,15 @@ Nobody sees your work but you: ${U} sees only your final text, so it has to stan
55
55
 
56
56
  Your final text is your answer to ${U}, and all they see of your work: give them everything they need to carry on. When you cannot go on without something — from them, from another bot, or a fact only the user has, such as a date, a name, a place or an amount — end with that question instead of guessing it or leaving a blank; ${U} gets it for you, and their reply brings you back with all you have done still in front of you.
57
57
 
58
- ${Y}`),x(D,t)].filter(Boolean).join("\n\n");return(0,$.logPromptSize)("bot",et),{text:et}}[l,c,w,p,f,T]=v.then?(await v)():v;let x=(e,t)=>{let o=t?.trim();return o?(0,h.findBotSeed)(e)?.systemPrompt.trim()===o?`## Your role
58
+ ${Y}`),O(D,t)].filter(Boolean).join("\n\n");return(0,v.logPromptSize)("bot",et),{text:et}}[l,w,p,f,m,$]=k.then?(await k)():k;let O=(e,t)=>{let o=t?.trim();return o?(0,h.findBotSeed)(e)?.systemPrompt.trim()===o||(0,u.wasSeedRole)(e,o)?`## Your role
59
59
 
60
- What this bot is for, as the app sets it up. Where it and anything above disagree, it wins.
60
+ What this bot is for, as the app sets it up. Where it and anything above disagree, it wins. The form it names is where to start: a job that asks for another — one page, slides, a sheet, a few lines — gets that one.
61
61
 
62
62
  ${o}`:`## Owner's instructions
63
63
 
64
64
  Written by the person this bot works for. Where these and anything above disagree, these win.
65
65
 
66
- ${o}`:""},O=(e,t,o)=>{var a;let i,l;return`## Environment
66
+ ${o}`:""},S=(e,t,o)=>{var a;let i,l;return`## Environment
67
67
 
68
68
  Current Cwd: ${e}
69
69
  Platform: ${process.platform}
@@ -80,16 +80,16 @@ Your workspace, where \`${s.TOOL_NAMES.bash}\` runs. Everything you write goes i
80
80
 
81
81
  Inside the workspace, set up whatever the job needs yourself; installing anything machine-wide waits for the user's yes. Never the directory above the workspace — it is the app's, not the user's; outside the workspace, only where the user pointed you.
82
82
 
83
- ${(0,n.botGuideLine)()}`};function I(e,t){return!t||(0,u.isCoordinatorSeat)(e,t.owner,t.caller)}e.s(["buildJoinOpening",0,function(e){if(!e.job)return[{type:"text",text:`You are ${e.bot}. The user writes to you in this thread, which ${e.coordinator} coordinates.`},{type:"text",text:`## The thread's first request
83
+ ${(0,n.botGuideLine)()}`};function x(e,t){return!t||(0,c.isCoordinatorSeat)(e,t.owner,t.caller)}e.s(["buildJoinOpening",0,function(e){if(!e.job)return[{type:"text",text:`You are ${e.bot}. The user writes to you in this thread, which ${e.coordinator} coordinates.`},{type:"text",text:`## The thread's first request
84
84
 
85
85
  ${e.request.trim()}`}];let{from:t}=e.job;return[{type:"text",text:`You are ${e.bot}. ${t} brings you into this thread, ${t===e.coordinator?"which they coordinate":`which ${e.coordinator} coordinates`}.`},{type:"text",text:`## ${t} → ${e.bot}: the job
86
86
 
87
- ${e.job.text.trim()}`}]},"buildThreadOpening",0,function(e){if(e.routine){let{when:t,last:o}=e.routine,n=o?` Its last run ended ${(0,a.format)(o.at,"yyyy-MM-dd HH:mm")}: ${(0,b.clip)(o.said,r.PROMPT_LINE.jobOutcome)}`:" This is its first run.";return[{type:"text",text:`You are ${e.bot}. A routine the user set up hands you this thread: it starts by itself, ${t}, and nobody is watching as it does.${n}`},{type:"text",text:`## The routine → ${e.bot}: the job
87
+ ${e.job.text.trim()}`}]},"buildThreadOpening",0,function(e){if(e.routine){let{when:t,last:o}=e.routine,n=o?` Its last run ended ${(0,a.format)(o.at,"yyyy-MM-dd HH:mm")}: ${(0,T.clip)(o.said,r.PROMPT_LINE.jobOutcome)}`:" This is its first run.";return[{type:"text",text:`You are ${e.bot}. A routine the user set up hands you this thread: it starts by itself, ${t}, and nobody is watching as it does.${n}`},{type:"text",text:`## The routine → ${e.bot}: the job
88
88
 
89
89
  ${e.request.trim()}`}]}let t="user"===e.from?"The user":"Thursday";return[{type:"text",text:`You are ${e.bot}. ${t} hands you this thread${"user"===e.from?" on screen":" during a call"}.`},{type:"text",text:`## ${t} → ${e.bot}: the job
90
90
 
91
- ${e.request.trim()}`}]},"loadBotPrompt",0,k]),o()}catch(e){o(e)}},!1),235190,e=>{"use strict";e.s(["asWords",0,function(e,t,o=e=>e){let a=[];for(let r of e){if("tool"===r.role)continue;if("system"===r.role){a.push(r);continue}if("user"===r.role){a.push("string"==typeof r.content?{role:"user",content:o(r.content)}:r);continue}let e="string"==typeof r.content?[{type:"text",text:r.content}]:r.content,n=e.flatMap(e=>"text"===e.type?[e.text]:[]).join("\n").trim()||e.flatMap(e=>"tool-call"===e.type?[t(e.toolName,e.input)]:[]).join("\n");if(!n)continue;let s=a.at(-1);s?.role==="assistant"&&"string"==typeof s.content?a[a.length-1]={role:"assistant",content:`${s.content}
92
- ${o(n)}`}:a.push({role:"assistant",content:o(n)})}return a}])},585099,e=>e.a(async(t,o)=>{try{var a=e.i(666680),r=e.i(68356),n=e.i(847841),s=e.i(687388),i=e.i(159479),l=e.i(386075),d=e.i(851372),h=e.i(316172),u=e.i(353885),c=e.i(235190),w=e.i(944971),p=e.i(527608),f=e.i(786025),m=e.i(640911),y=e.i(388439),g=e.i(265143),b=e.i(889034),T=e.i(378884),$=t([i,l,d,h,g,T]);[i,l,d,h,g,T]=$.then?(await $)():$;let S=s.BOT_RUN.steps;async function v(e,t){var o;let a,c,$,v,x,M,E,R,A,j=t.parent??null,W=await (0,g.findJobBot)(e.bot.trim()),_=W?.name??e.bot.trim(),B=e=>t.emit({...e,bot:_,parent:j});if(!W)return void await B({type:"error",message:`No bot named "${e.bot}". Use a name from the list.`,retry:!1});let P=e.messages,L=await O(W),U=t.threadId?await (0,T.findThread)(t.threadId):null,[Y,{own:H,artifacts:D}]=await Promise.all([t.threadId?(0,f.openJobScratch)(t.threadId,U?.label??"job"):null,(0,f.openBotFolders)(_)]),F=t.session??(t.threadId?(0,f.botBrowserSession)(t.threadId,_):null),[J,q]=await Promise.all([(0,d.loadBotPrompt)(_,W.systemPrompt,{thread:t.threadId??null,owner:t.owner,caller:t.caller},{scratch:Y,own:H,artifacts:D}),(0,i.loadTools)({target:"bot",bot:_,thread:t.threadId??null,session:F,model:L})]),K=Math.min(await (0,l.compactBudget)(L.ref,W.compactAt),t.contextBudget||1/0),G=await (0,l.runEffort)(L.ref,W.effort),z=(0,l.promptCacheOptions)(L.ref,t.threadId?C(t.threadId,_):null),Q=!1,V=(0,b.isCoordinatorSeat)(_,t.owner,t.caller)?{...q,[u.TOOL_NAMES.send_message]:(0,n.tool)({description:h.sendMessageSpec.description,inputSchema:h.sendMessageSpec.parameters,execute:async(e,o)=>{let a=await t.send({...e,id:o.toolCallId});return"question"===e.kind&&(Q=!0),a}})}:q,X=new Set,Z=(o=s.BOT_RUN.silenceMs,c=new AbortController,$=0,v=!1,x=()=>{clearTimeout(a),a=void 0,v||$>0||(a=setTimeout(()=>{c.abort(new DOMException(`The model sent nothing for ${Math.round(o/6e4)} minutes.`,"TimeoutError"))},o))},{signal:c.signal,touch:x,hold:()=>{$+=1,x()},release:()=>{$=Math.max(0,$-1),x()},end:()=>{v=!0,x()}});for(let[e,o]of Object.entries(V)){let a=o.execute;a&&(o.execute=(o,r)=>{let n=(async()=>{t.signal?.throwIfAborted(),await B({type:"tool",id:r.toolCallId,name:e,input:o}),Z.hold();try{t.signal?.throwIfAborted();let n=await a(o,r);if(n&&"object"==typeof n&&Symbol.asyncIterator in n){let e;for await(let t of n)e=t;n=e}return await B({type:"tool-result",id:r.toolCallId,name:e,output:n}),n}catch(t){throw await B({type:"tool-result",id:r.toolCallId,name:e,output:(0,l.modelErrorToString)(t),error:!0}),t}finally{Z.release()}})();return X.add(n),n.finally(()=>X.delete(n)).catch(()=>{}),n})}let ee=Promise.resolve(),et=()=>{},eo=0,ea=new r.ToolLoopAgent({model:L.model,instructions:J.text,tools:V,reasoning:G,providerOptions:z,stopWhen:[(0,r.stepCountIs)(S),()=>Q],prepareStep:async({stepNumber:e,steps:o,messages:a})=>{await ee,t.signal?.throwIfAborted();let r={},n=(o.at(-1)?.usage.inputTokens??0)||a.reduce((e,t)=>e+(0,y.estimateTokens)("string"==typeof t.content?t.content:JSON.stringify(t.content))+4,0);eo=n;let s=a,i=t.compactNow?.()??!1;if((n>K||i)&&a.length>2){Z.hold();let e=await I(L.model,V,a,{signal:t.signal,budget:K,instructions:J.text,providerOptions:z}).finally(Z.release);m.logger.debug(`compacted ${a.length} messages at ${n} tokens (budget ${K})`);let o=`${e.text}${await k(U?.id??null,a,Y)}`;await B({type:"compact",text:o,usage:e.usage,messages:a.length,tokens:n}),s=[a[0],{role:"user",content:o}]}let l=e>0?await t.notes?.()??[]:[];return(l.length&&(s=[...s,...l.map(e=>({role:"user",content:e}))]),s===a)?r:{...r,messages:s}}}),er=(M=[],E=[],R=!1,{push(e){let t=E.shift();t?t(e):M.push(e)},take(){let e=M.shift();return e?Promise.resolve(e):R?Promise.resolve(null):new Promise(e=>E.push(e))},end(){for(let e of(R=!0,E.splice(0)))e(null)}}),en=t.signal?AbortSignal.any([t.signal,Z.signal]):Z.signal;Z.touch();let es=new AbortController,ei=AbortSignal.any([en,es.signal]);try{A=await ea.stream({messages:P,abortSignal:ei,onStepEnd:e=>{ee=new Promise(e=>{et=e}),er.push({messages:function(e){if(!e.toolResults.length)return e.response.messages;let t=new Map(e.toolResults.map(e=>[e.toolCallId,e.output]));return e.response.messages.map(e=>"tool"!==e.role?e:{...e,content:e.content.map(e=>{if("tool-result"!==e.type||!t.has(e.toolCallId))return e;let o=t.get(e.toolCallId);return{...e,output:"string"==typeof o?{type:"text",value:o}:{type:"json",value:o}}})})}(e),usage:N(e.usage)})}})}catch(e){throw Z.end(),es.abort(),await Promise.allSettled([...X]),e}let el="",ed="",eh=null,eu=e=>{m.logger.error(`${_}: the model run broke`,e);let t=(0,l.modelErrorToString)(e),o=!(0,l.isProviderRefusal)(e);if(!(0,l.isContextOverflow)(e))return{type:"error",message:t,retry:o};let a=Math.floor(Math.min(K,eo||K)*s.BOT_RUN.overflowShrink);return{type:"error",message:t,budget:Math.max(w.COMPACT_AT_MIN,a),retry:o}};en.addEventListener("abort",()=>{er.end(),et()},{once:!0});try{for await(let e of A.stream)switch(Z.touch(),e.type){case"start-step":ed="",el="";break;case"text-delta":el+=e.text;break;case"text-end":{let e=el.trim();if(el="",!e)break;ed=[ed,e].filter(Boolean).join("\n\n"),await B({type:"text",text:e});break}case"tool-call":await B({type:"tool",id:e.toolCallId,name:e.toolName,input:e.input,providerExecuted:e.providerExecuted,providerOptions:e.providerMetadata});break;case"tool-result":await B({type:"tool-result",id:e.toolCallId,name:e.toolName,output:e.output});break;case"tool-error":await B({type:"tool-result",id:e.toolCallId,name:e.toolName,output:(0,l.modelErrorToString)(e.error),error:!0});break;case"finish-step":{eh=e.finishReason;let t=await er.take();t&&await B({type:"step",...t,budget:K}),et();break}case"abort":if(t.signal?.aborted)return;await B(eu(e.reason??"The model stopped sending."));return;case"error":await B(eu(e.error));return}}finally{es.abort(),er.end(),Z.end(),et(),await Promise.allSettled([...X]),F&&(0,p.renewSignIns)(F).catch(e=>m.logger.warn(`${_}: kept sign-ins were not renewed`,e))}try{await A.finalStep}catch(e){if(t.signal?.aborted)return;await B(eu(e));return}"content-filter"===eh?await B({type:"error",message:"The provider's content filter stopped the response.",retry:!1}):await B({type:"turn-end",text:ed,stopped:!Q&&("length"===eh||"error"===eh||"tool-calls"===eh)})}async function k(e,t,o){try{let a=e?await (0,T.listWrittenPaths)(e):(0,T.writtenPathsIn)(t.map(e=>e.content)),r=await (0,f.filesOnDisk)(a,o);if(!r.length)return"";let n=r.slice(-s.BOT_RUN.compactFiles),i=r.length-n.length,l=n.map(e=>`- ${e}`);return i&&l.unshift(`- …and ${i} older ones`),`
91
+ ${e.request.trim()}`}]},"loadBotPrompt",0,I]),o()}catch(e){o(e)}},!1),235190,e=>{"use strict";e.s(["asWords",0,function(e,t,o=e=>e){let a=[];for(let r of e){if("tool"===r.role)continue;if("system"===r.role){a.push(r);continue}if("user"===r.role){a.push("string"==typeof r.content?{role:"user",content:o(r.content)}:{...r,content:r.content.map(e=>"text"===e.type?{...e,text:o(e.text)}:e)});continue}let e="string"==typeof r.content?[{type:"text",text:r.content}]:r.content,n=e.flatMap(e=>"text"===e.type?[e.text]:[]).join("\n").trim()||e.flatMap(e=>"tool-call"===e.type?[t(e.toolName,e.input)]:[]).join("\n");if(!n)continue;let s=a.at(-1);s?.role==="assistant"&&"string"==typeof s.content?a[a.length-1]={role:"assistant",content:`${s.content}
92
+ ${o(n)}`}:a.push({role:"assistant",content:o(n)})}return a}])},585099,e=>e.a(async(t,o)=>{try{var a=e.i(666680),r=e.i(68356),n=e.i(847841),s=e.i(687388),i=e.i(159479),l=e.i(386075),d=e.i(851372),h=e.i(316172),u=e.i(353885),c=e.i(235190),w=e.i(944971),p=e.i(527608),f=e.i(786025),m=e.i(640911),y=e.i(388439),g=e.i(265143),b=e.i(889034),T=e.i(378884),$=t([i,l,d,h,g,T]);[i,l,d,h,g,T]=$.then?(await $)():$;let S=s.BOT_RUN.steps;async function v(e,t){var o;let a,c,$,v,x,M,E,R,A,j=t.parent??null,B=await (0,g.findJobBot)(e.bot.trim()),W=B?.name??e.bot.trim(),_=e=>t.emit({...e,bot:W,parent:j});if(!B)return void await _({type:"error",message:`No bot named "${e.bot}". Use a name from the list.`,retry:!1});let P=e.messages,L=await O(B),U=t.threadId?await (0,T.findThread)(t.threadId):null,[Y,{own:H,artifacts:D}]=await Promise.all([t.threadId?(0,f.openJobScratch)(t.threadId,U?.label??"job"):null,(0,f.openBotFolders)(W)]),F=t.session??(t.threadId?(0,f.botBrowserSession)(t.threadId,W):null),[J,q]=await Promise.all([(0,d.loadBotPrompt)(W,B.systemPrompt,{thread:t.threadId??null,owner:t.owner,caller:t.caller},{scratch:Y,own:H,artifacts:D}),(0,i.loadTools)({target:"bot",bot:W,thread:t.threadId??null,session:F,model:L})]),K=Math.min(await (0,l.compactBudget)(L.ref,B.compactAt),t.contextBudget||1/0),G=await (0,l.runEffort)(L.ref,B.effort),z=(0,l.promptCacheOptions)(L.ref,t.threadId?C(t.threadId,W):null),Q=!1,V=(0,b.isCoordinatorSeat)(W,t.owner,t.caller)?{...q,[u.TOOL_NAMES.send_message]:(0,n.tool)({description:h.sendMessageSpec.description,inputSchema:h.sendMessageSpec.parameters,execute:async(e,o)=>{let a=await t.send({...e,id:o.toolCallId});return"question"===e.kind&&(Q=!0),a}})}:q,X=new Set,Z=(o=s.BOT_RUN.silenceMs,c=new AbortController,$=0,v=!1,x=()=>{clearTimeout(a),a=void 0,v||$>0||(a=setTimeout(()=>{c.abort(new DOMException(`The model sent nothing for ${Math.round(o/6e4)} minutes.`,"TimeoutError"))},o))},{signal:c.signal,touch:x,hold:()=>{$+=1,x()},release:()=>{$=Math.max(0,$-1),x()},end:()=>{v=!0,x()}});for(let[e,o]of Object.entries(V)){let a=o.execute;a&&(o.execute=(o,r)=>{let n=(async()=>{t.signal?.throwIfAborted(),await _({type:"tool",id:r.toolCallId,name:e,input:o}),Z.hold();try{t.signal?.throwIfAborted();let n=await a(o,r);if(n&&"object"==typeof n&&Symbol.asyncIterator in n){let e;for await(let t of n)e=t;n=e}return await _({type:"tool-result",id:r.toolCallId,name:e,output:n}),n}catch(t){throw await _({type:"tool-result",id:r.toolCallId,name:e,output:(0,l.modelErrorToString)(t),error:!0}),t}finally{Z.release()}})();return X.add(n),n.finally(()=>X.delete(n)).catch(()=>{}),n})}let ee=Promise.resolve(),et=()=>{},eo=0,ea=new r.ToolLoopAgent({model:L.model,instructions:J.text,tools:V,reasoning:G,providerOptions:z,stopWhen:[(0,r.stepCountIs)(S),()=>Q],prepareStep:async({stepNumber:e,steps:o,messages:a})=>{await ee,t.signal?.throwIfAborted();let r={},n=(o.at(-1)?.usage.inputTokens??0)||a.reduce((e,t)=>e+(0,y.estimateTokens)("string"==typeof t.content?t.content:JSON.stringify(t.content))+4,0);eo=n;let s=a,i=t.compactNow?.()??!1;if((n>K||i)&&a.length>2){Z.hold();let e=await I(L.model,V,a,{signal:t.signal,budget:K,instructions:J.text,providerOptions:z}).finally(Z.release);m.logger.debug(`compacted ${a.length} messages at ${n} tokens (budget ${K})`);let o=`${e.text}${await k(U?.id??null,a,Y)}`;await _({type:"compact",text:o,usage:e.usage,messages:a.length,tokens:n}),s=[a[0],{role:"user",content:o}]}let l=e>0?await t.notes?.()??[]:[];return(l.length&&(s=[...s,...l.map(e=>({role:"user",content:e}))]),s===a)?r:{...r,messages:s}}}),er=(M=[],E=[],R=!1,{push(e){let t=E.shift();t?t(e):M.push(e)},take(){let e=M.shift();return e?Promise.resolve(e):R?Promise.resolve(null):new Promise(e=>E.push(e))},end(){for(let e of(R=!0,E.splice(0)))e(null)}}),en=t.signal?AbortSignal.any([t.signal,Z.signal]):Z.signal;Z.touch();let es=new AbortController,ei=AbortSignal.any([en,es.signal]);try{A=await ea.stream({messages:P,abortSignal:ei,onStepEnd:e=>{ee=new Promise(e=>{et=e}),er.push({messages:function(e){if(!e.toolResults.length)return e.response.messages;let t=new Map(e.toolResults.map(e=>[e.toolCallId,e.output]));return e.response.messages.map(e=>"tool"!==e.role?e:{...e,content:e.content.map(e=>{if("tool-result"!==e.type||!t.has(e.toolCallId))return e;let o=t.get(e.toolCallId);return{...e,output:"string"==typeof o?{type:"text",value:o}:{type:"json",value:o}}})})}(e),usage:N(e.usage)})}})}catch(e){throw Z.end(),es.abort(),await Promise.allSettled([...X]),e}let el="",ed="",eh=null,eu=e=>{m.logger.error(`${W}: the model run broke`,e);let t=(0,l.modelErrorToString)(e),o=!(0,l.isProviderRefusal)(e),a=(0,l.isKeyRefused)(e)?{refused:L.ref.provider}:{};if(!(0,l.isContextOverflow)(e))return{type:"error",message:t,retry:o,...a};let r=Math.floor(Math.min(K,eo||K)*s.BOT_RUN.overflowShrink);return{type:"error",message:t,budget:Math.max(w.COMPACT_AT_MIN,r),retry:o,...a}};en.addEventListener("abort",()=>{er.end(),et()},{once:!0});try{for await(let e of A.stream)switch(Z.touch(),e.type){case"start-step":ed="",el="";break;case"text-delta":el+=e.text;break;case"text-end":{let e=el.trim();if(el="",!e)break;ed=[ed,e].filter(Boolean).join("\n\n"),await _({type:"text",text:e});break}case"tool-call":await _({type:"tool",id:e.toolCallId,name:e.toolName,input:e.input,providerExecuted:e.providerExecuted,providerOptions:e.providerMetadata});break;case"tool-result":await _({type:"tool-result",id:e.toolCallId,name:e.toolName,output:e.output});break;case"tool-error":await _({type:"tool-result",id:e.toolCallId,name:e.toolName,output:(0,l.modelErrorToString)(e.error),error:!0});break;case"finish-step":{eh=e.finishReason;let t=await er.take();t&&await _({type:"step",...t,budget:K}),et();break}case"abort":if(t.signal?.aborted)return;await _(eu(e.reason??"The model stopped sending."));return;case"error":await _(eu(e.error));return}}finally{es.abort(),er.end(),Z.end(),et(),await Promise.allSettled([...X]),F&&(0,p.renewSignIns)(F).catch(e=>m.logger.warn(`${W}: kept sign-ins were not renewed`,e))}try{await A.finalStep}catch(e){if(t.signal?.aborted)return;await _(eu(e));return}"content-filter"===eh?await _({type:"error",message:"The provider's content filter stopped the response.",retry:!1}):await _({type:"turn-end",text:ed,stopped:!Q&&("length"===eh||"error"===eh||"tool-calls"===eh)})}async function k(e,t,o){try{let a=e?await (0,T.listWrittenPaths)(e):(0,T.writtenPathsIn)(t.map(e=>e.content)),r=await (0,f.filesOnDisk)(a,o);if(!r.length)return"";let n=r.slice(-s.BOT_RUN.compactFiles),i=r.length-n.length,l=n.map(e=>`- ${e}`);return i&&l.unshift(`- …and ${i} older ones`),`
93
93
 
94
94
  Files this job has on disk now — open one rather than fetching again what is in it:
95
95
  ${l.join("\n")}`}catch(e){return m.logger.warn("files under the summary could not be listed",e),""}}async function I(e,t,o,a){let r;try{return await x(e,t,o,a)}catch(e){if(a.signal?.aborted)throw e;r=e}if((0,l.isContextOverflow)(r)){let n=(0,c.asWords)(o,(e,t)=>`${e}: ${(0,T.argumentLine)(e,t)}`);try{return await x(e,t,n,a)}catch(e){if(a.signal?.aborted)throw e;r=e}}throw Error(`Could not compact the context (${(0,l.modelErrorToString)(r)}).`,{cause:r})}async function x(e,t,o,a){let n,{text:i,usage:l}=await (0,r.generateText)({model:e,instructions:a.instructions,tools:t,toolChoice:"none",messages:[...o,{role:"user",content:(n=(e=>{let{min:t,max:o,perTokens:a}=s.BOT_RUN.summaryWords;return Math.min(o,Math.max(t,Math.round(e/a)))})(a.budget),`Compact your context. The first message above — who handed you the job, and the job — stays exactly as it is. Everything after it is replaced by what you write now, and you carry on from that first message and this alone; nothing else above can be read again. Write it for a fresh copy of you that has your tools, your instructions and that first message, but has seen none of the rest.
@@ -106,8 +106,8 @@ Cover all of it, and prefer a fact over a description of a fact:
106
106
  Plain text, under ${n} words. No preamble, no headings about the summary itself, no account of how you have been going.`)}],abortSignal:a.signal,timeout:s.BOT_RUN.silenceMs,providerOptions:a.providerOptions}),d=i.trim();if(!d)throw Error("The summary of the context came back empty, so there is nothing to carry on from.");return{text:`Everything between the first message and here was compacted. Below is your own summary of it; carry on from the first message and this.
107
107
 
108
108
  ${d}`,usage:N(l)}}let N=e=>({input:e.inputTokens??0,output:e.outputTokens??0,cacheRead:e.inputTokenDetails?.cacheReadTokens??0,cacheWrite:e.inputTokenDetails?.cacheWriteTokens??0}),C=(e,t)=>(0,a.createHash)("sha256").update(`${e}
109
- ${t}`).digest("hex").slice(0,32);function O(e,t={}){return e.provider&&e.model?(0,l.getTextModel)({provider:e.provider,model:e.model}):(0,l.resolveDefaultModel)(void 0,t).then(l.getTextModel)}e.s(["resolveModel",0,O,"resumeTranscript",0,function(e,t=new Map){let o=new Map,a=new Set;for(let t of e)if(("tool"===t.role||"assistant"===t.role)&&Array.isArray(t.content))for(let e of t.content)"tool-result"===e.type&&(o.has(e.toolCallId)||o.set(e.toolCallId,e),"assistant"===t.role&&a.add(e.toolCallId));let r=[],n=new Set;for(let s of e){if("tool"===s.role){let e=s.content.filter(e=>"tool-result"!==e.type);e.length&&r.push({...s,content:e});continue}if("assistant"!==s.role||"string"==typeof s.content){r.push(s);continue}let e=[],i=[];for(let r of s.content){if("tool-call"!==r.type){i.push(r);continue}if(n.has(r.toolCallId))continue;let s=r.input;if("string"==typeof s)try{s=JSON.parse(s)}catch{s=void 0}if(!r.toolCallId||void 0===s){i.push({type:"text",text:"A tool argument stream was interrupted before a complete call was recorded. Inspect the saved work before continuing."});continue}let l=r.toolName===u.TOOL_NAMES.send_message?t.get(r.toolCallId):void 0,d=o.get(r.toolCallId)??(l?{type:"tool-result",toolCallId:r.toolCallId,toolName:r.toolName,output:{type:"json",value:l}}:void 0);if(r.providerExecuted&&(!d||!a.has(r.toolCallId))){i.push({type:"text",text:d?`The provider operation ${r.toolName} returned this data before its native continuation was interrupted: ${JSON.stringify(d.output)}`:`The provider operation ${r.toolName} was interrupted without a recorded result. Its remote execution state is unknown.`});continue}n.add(r.toolCallId),i.push({...r,input:s}),a.has(r.toolCallId)||e.push(d??{type:"tool-result",toolCallId:r.toolCallId,toolName:r.toolName,output:{type:"text",value:"No result: execution was interrupted before a result was recorded. The outcome is unknown. Inspect the current state before repeating the action."}})}i.length&&r.push({...s,content:i}),e.length&&r.push({role:"tool",content:e})}return r},"runBot",0,v]),o()}catch(e){o(e)}},!1),39803,e=>e.a(async(t,o)=>{try{var a=e.i(136340),r=e.i(380690),n=e.i(687388),s=e.i(386075),i=e.i(851372),l=e.i(22676),d=e.i(629668),h=e.i(786025),u=e.i(167004),c=e.i(640911),w=e.i(53748),p=e.i(268486),f=e.i(41444),m=e.i(265143),y=e.i(585099),g=e.i(944971),b=e.i(742712),T=e.i(889034),$=e.i(378884),v=t([s,i,l,m,y,b,$]);[s,i,l,m,y,b,$]=v.then?(await v)():v;let _=globalThis.__roomRuns??=new Map,B=globalThis.__roomThreadLock??=(0,p.createKeyedLock)(),P=globalThis.__roomCompactAsked??=new Set,L=(e,t)=>`${e}
110
- ${t}`;async function k(e){let t=await (0,m.findJobBot)(e.bot);(!t||t.disabled)&&(0,w.publicError)("Choose an enabled bot.");let{from:o,routine:a,...r}={...e,bot:t.name},n=(0,i.buildThreadOpening)({bot:r.bot,request:r.request,from:o,routine:a}),s=await (0,$.insertThread)({...r,routineId:a?.id??null,opening:n});return await x(s.id),s.id}async function I(e,t,o="user",a,r){let n=null;return await B(e,async()=>{let s=await (0,$.findThread)(e);if(s||(0,w.publicError)("No such thread."),a){let t=(await (0,b.listRoomWork)(e)).find(e=>e.bot.toLowerCase()===a.trim().toLowerCase());t&&t.bot!==T.ROOM_THURSDAY||(0,w.publicError)("Choose a participant in this thread."),a=t.bot}t.trim()===g.THREAD_CONTINUE&&(0,g.isAppStop)(s.pending)?(await (0,b.resumeRoom)(e),(await (0,b.listRoomWork)(e)).some(e=>"queued"===e.state)||(n=await (0,b.tellRoom)(e,"Continue from the saved conversation.","user"===o?T.ROOM_USER:T.ROOM_THURSDAY,a,void 0,!1))):n=await (0,b.tellRoom)(e,t,"user"===o?T.ROOM_USER:T.ROOM_THURSDAY,a,r)}),await x(e),n}async function x(e){await B(e,async()=>{for(let t=0;t<2;t++){let t;for(;t=await (0,b.claimRoomWork)(e);)!function(e){let t,o=new AbortController,a=new Promise(e=>{t=e});_.set(e.id,{threadId:e.threadId,stop:o,done:a}),O(e,o.signal).catch(t=>c.logger.error(`thread ${e.threadId}: participant`,t)).finally(()=>{_.delete(e.id),t(),x(e.threadId).catch(t=>c.logger.error(`thread ${e.threadId}: scheduling`,t))})}(t);await (0,b.settleRoom)(e)}})}async function O(e,t){let o=await S(e,t);if(o?.failure?.retry&&!t.aborted&&(await (0,b.noteRoomBreak)(e,o.failure.message),await (0,a.setTimeout)(n.BOT_RUN.retryMs,void 0,{signal:t}).catch(()=>{}),t.aborted||(o=await S(e,t,!1))),!o||t.aborted)return;let s=o.failure?.message,i=o.ending;if(s||!i||i.stopped){let t=s??"The turn was interrupted. Continue from the saved conversation.";B(e.threadId,async()=>{let o=(await (0,b.listRoomWork)(e.threadId)).find(t=>t.id===e.id);if(o?.state!=="running"||o.generation!==e.generation)return;let a=N(e.threadId);await (0,b.pauseRoom)(e.threadId,t),await a}).catch(t=>c.logger.error(`thread ${e.threadId}: pausing`,t));return}await (0,b.finishRoomWork)(e,i.text);let w=await (0,$.findThread)(e.threadId);if(w?.status==="done"){let e=(0,f.plainText)(w.outcome??"").slice(0,n.FINISHED_NOTICE.words);r.presence.watching||await (0,l.isAnyCallLive)()||(0,u.desktopNotify)(w.label,e);let t=await (0,h.filesOnDisk)((0,d.pathsIn)(w.outcome??""),null);r.appEvents.emit({type:"finished",threadId:w.id,label:w.label,bot:w.bot,words:e,paths:(0,d.leadFirst)(t)})}}async function S(e,t,o=!0){let a=new U(e,t),r=null,n=null;try{let s=await (0,$.findThread)(e.threadId);if(!s)return null;if((await (0,b.listParticipantTranscript)(e.threadId,e.bot)).length||await (0,b.joinRoom)(e,t=>(0,i.buildJoinOpening)({bot:e.bot,coordinator:s.bot,job:t,request:s.request})),await (0,b.consumeRoomInbox)(e),o&&(0,T.isCoordinatorSeat)(e.bot,s.bot,e.caller)){let t=await (0,b.roomBoard)(e);t&&await (0,b.appendRoomMessage)(e.threadId,{bot:e.bot,parent:e.id,role:"user",content:t,hidden:!0})}let l=await (0,b.listParticipantTranscript)(e.threadId,e.bot);await (0,y.runBot)({bot:e.bot,messages:(0,y.resumeTranscript)(l,await (0,b.listRoomReceipts)(e.threadId,e.bot,l))},{signal:t,threadId:e.threadId,parent:e.id,caller:e.caller,owner:s.bot,contextBudget:await (0,b.roomContextBudget)(e.threadId,e.bot),compactNow:()=>P.delete(L(e.threadId,e.bot)),session:(0,h.botBrowserSession)(e.threadId,e.bot),notes:()=>(0,b.consumeRoomInbox)(e),send:async o=>{t.throwIfAborted();let a=o.to.trim();if(a.toLowerCase()===T.ROOM_THURSDAY.toLowerCase())a=T.ROOM_THURSDAY;else{let e=await (0,m.findJobBot)(a);(!e||e.disabled)&&(0,w.publicError)(`No enabled bot named "${a}".`),a=e.name}let r=await (0,b.sendRoomMessage)(e,{...o,to:a});return x(e.threadId).catch(e=>c.logger.error("room message scheduling",e)),r},emit:async o=>{(!t.aborted||"tool-result"===o.type)&&(await a.on(o),"step"===o.type&&await (0,$.addThreadUsage)(e.threadId,o.usage,e.bot===s.bot?{tokens:o.usage.input,budget:o.budget}:null),"compact"===o.type&&await (0,$.addThreadUsage)(e.threadId,o.usage),"turn-end"===o.type&&(r=o),"error"===o.type&&(n={message:o.message,retry:o.retry},o.budget&&await (0,b.lowerRoomContextBudget)(e,o.budget)))}})}catch(o){t.aborted||(c.logger.error(`thread ${e.threadId}: ${e.bot} broke`,o),n={message:(0,s.modelErrorToString)(o),retry:!(0,w.isPublicError)(o)&&!(0,s.isProviderRefusal)(o)})}return{ending:r,failure:n}}class U{work;signal;lane;assistant;tool;parts;calls;results;constructor(e,t){this.work=e,this.signal=t,this.lane=(0,f.PromiseChain)(),this.assistant=null,this.tool=null,this.parts={assistant:[],tool:[]},this.calls=new Set,this.results=new Set}async write(e,t,o=!1){let a={bot:this.work.bot,parent:this.work.id,role:t.role,content:t.content,compact:o,note:o};return null===e?(0,b.appendRoomMessage)(this.work.threadId,a):(await (0,$.upsertMessage)(this.work.threadId,e,a),e)}on(e){return this.lane(async()=>{if(!this.signal.aborted||"tool-result"===e.type)if("text"===e.type)this.parts.assistant.push({type:"text",text:e.text}),this.assistant=await this.write(this.assistant,{role:"assistant",content:this.parts.assistant});else if("tool"===e.type){if(this.calls.has(e.id)){let t=this.parts.assistant.find(t=>"tool-call"===t.type&&t.toolCallId===e.id);t&&"tool-call"===t.type&&e.providerOptions&&(t.providerOptions=e.providerOptions,this.assistant=await this.write(this.assistant,{role:"assistant",content:this.parts.assistant}));return}this.calls.add(e.id),this.parts.assistant.push({type:"tool-call",toolCallId:e.id,toolName:e.name,input:e.input,...e.providerExecuted?{providerExecuted:!0}:{},...e.providerOptions?{providerOptions:e.providerOptions}:{}}),this.assistant=await this.write(this.assistant,{role:"assistant",content:this.parts.assistant})}else if("tool-result"===e.type){if(this.results.has(e.id))return;this.results.add(e.id),this.parts.tool.push({type:"tool-result",toolCallId:e.id,toolName:e.name,output:e.error?{type:"error-text",value:String(e.output)}:"string"==typeof e.output?{type:"text",value:e.output}:{type:"json",value:e.output}}),this.tool=await this.write(this.tool,{role:"tool",content:this.parts.tool})}else if("step"===e.type){let t=[this.assistant,this.tool];for(let[o,a]of e.messages.entries())await this.write(t[o]??null,a);let o=t.slice(e.messages.length).filter(e=>null!==e);o.length&&await (0,$.deleteMessages)(this.work.threadId,o),this.assistant=this.tool=null,this.parts={assistant:[],tool:[]}}else"compact"===e.type&&await this.write(null,{role:"user",content:e.text},!0)})}}async function N(e){let t=[..._.values()].filter(t=>t.threadId===e);for(let e of t)e.stop.abort();await Promise.all(t.map(e=>e.done))}async function C(e){await B(e,async()=>{let t=await (0,$.findThread)(e);t||(0,w.publicError)("No such thread."),t.endedAt&&(0,w.publicError)("That thread has already ended."),await (0,b.cancelRoom)(e),await (0,$.updateThread)(e,{status:"cancelled",outcome:null,pending:null,seen:!0,endedAt:new Date}),await N(e),await (0,h.closeJobShell)(e)})}async function M(e){return B(e,()=>E(e))}async function E(e){let t=await (0,$.findThread)(e);await (0,b.cancelRoom)(e),await N(e),await (0,h.removeJobBrowsers)(e);let o=await (0,$.deleteThread)(e);return o&&t&&await (0,h.removeJobScratch)(e,t.label),o}async function R(e){let t=e?.getTime(),o=e=>void 0===t||(e.endedAt??e.updatedAt).getTime()<t,a=0;for(let e of(await (0,$.listThreadFolders)()))("done"===e.status||"cancelled"===e.status)&&o(e)&&await B(e.id,async()=>{let t=await (0,$.findThread)(e.id);t?.status!=="done"&&t?.status!=="cancelled"||o(t)&&await E(e.id)&&(a+=1)});return a}async function A(){let e=Date.now()-n.WORKSPACE_KEEP.forMs,t=t=>("done"===t.status||"cancelled"===t.status)&&(t.endedAt??t.updatedAt).getTime()<e,o=new Set(await (0,h.listScratchFolders)()),a=[];for(let e of(await (0,$.listThreadFolders)())){let r=(0,h.jobScratch)(e.id,e.label);o.delete(r)&&t(e)&&await B(e.id,async()=>{let o=await (0,$.findThread)(e.id);o&&t(o)&&(await (0,h.closeHiddenBrowser)(e.id),await (0,h.removeJobScratch)(e.id,e.label),a.push(r))})}return a.push(...await (0,h.removeUnchangedFolders)([...o])),await (0,h.pruneJobFiles)(),a.length&&c.logger.info(`cleared ${a.length} old job folder(s): ${a.join(", ")}`),a}async function j(){for(let e of(await (0,$.listRunningThreadIds)()))await B(e,async()=>{[..._.values()].some(t=>t.threadId===e)||(await (0,$.findThread)(e))?.status==="running"&&await (0,b.pauseRoom)(e,"The server restarted. Resume from the saved conversation.")})}async function W(e){let t=await (0,$.listRunningThreadIds)();await Promise.all(t.map(t=>B(t,async()=>{(await (0,$.findThread)(t))?.status==="running"&&(await N(t),await (0,b.pauseRoom)(t,e))})))}e.s(["answerThread",0,I,"askCompact",0,function(e,t){P.add(L(e,t))},"cancelThread",0,C,"pauseThreads",0,W,"removeFinishedThreads",0,R,"removeThread",0,M,"startThread",0,k,"sweepJobFiles",0,A,"sweepThreads",0,j]),o()}catch(e){o(e)}},!1),167004,e=>{"use strict";var t=e.i(874533),o=e.i(687388);let a=`on run argv
109
+ ${t}`).digest("hex").slice(0,32);function O(e,t={}){return e.provider&&e.model?(0,l.getTextModel)({provider:e.provider,model:e.model}):(0,l.resolveDefaultModel)(void 0,t).then(l.getTextModel)}e.s(["resolveModel",0,O,"resumeTranscript",0,function(e,t=new Map){let o=new Map,a=new Set;for(let t of e)if(("tool"===t.role||"assistant"===t.role)&&Array.isArray(t.content))for(let e of t.content)"tool-result"===e.type&&(o.has(e.toolCallId)||o.set(e.toolCallId,e),"assistant"===t.role&&a.add(e.toolCallId));let r=[],n=new Set;for(let s of e){if("tool"===s.role){let e=s.content.filter(e=>"tool-result"!==e.type);e.length&&r.push({...s,content:e});continue}if("assistant"!==s.role||"string"==typeof s.content){r.push(s);continue}let e=[],i=[];for(let r of s.content){if("tool-call"!==r.type){i.push(r);continue}if(n.has(r.toolCallId))continue;let s=r.input;if("string"==typeof s)try{s=JSON.parse(s)}catch{s=void 0}if(!r.toolCallId||void 0===s){i.push({type:"text",text:"A tool argument stream was interrupted before a complete call was recorded. Inspect the saved work before continuing."});continue}let l=r.toolName===u.TOOL_NAMES.send_message?t.get(r.toolCallId):void 0,d=o.get(r.toolCallId)??(l?{type:"tool-result",toolCallId:r.toolCallId,toolName:r.toolName,output:{type:"json",value:l}}:void 0);if(r.providerExecuted&&(!d||!a.has(r.toolCallId))){i.push({type:"text",text:d?`The provider operation ${r.toolName} returned this data before its native continuation was interrupted: ${JSON.stringify(d.output)}`:`The provider operation ${r.toolName} was interrupted without a recorded result. Its remote execution state is unknown.`});continue}n.add(r.toolCallId),i.push({...r,input:s}),a.has(r.toolCallId)||e.push(d??{type:"tool-result",toolCallId:r.toolCallId,toolName:r.toolName,output:{type:"text",value:"No result: execution was interrupted before a result was recorded. The outcome is unknown. Inspect the current state before repeating the action."}})}i.length&&r.push({...s,content:i}),e.length&&r.push({role:"tool",content:e})}return r},"runBot",0,v]),o()}catch(e){o(e)}},!1),39803,e=>e.a(async(t,o)=>{try{var a=e.i(136340),r=e.i(380690),n=e.i(687388),s=e.i(386075),i=e.i(851372),l=e.i(22676),d=e.i(629668),h=e.i(786025),u=e.i(167004),c=e.i(640911),w=e.i(53748),p=e.i(268486),f=e.i(41444),m=e.i(265143),y=e.i(585099),g=e.i(944971),b=e.i(742712),T=e.i(889034),$=e.i(378884),v=t([s,i,l,m,y,b,$]);[s,i,l,m,y,b,$]=v.then?(await v)():v;let W=globalThis.__roomRuns??=new Map,_=globalThis.__roomThreadLock??=(0,p.createKeyedLock)(),P=globalThis.__roomCompactAsked??=new Set,L=(e,t)=>`${e}
110
+ ${t}`;async function k(e){let t=await (0,m.findJobBot)(e.bot);(!t||t.disabled)&&(0,w.publicError)("Choose an enabled bot.");let{from:o,routine:a,...r}={...e,bot:t.name},n=(0,i.buildThreadOpening)({bot:r.bot,request:r.request,from:o,routine:a}),s=await (0,$.insertThread)({...r,routineId:a?.id??null,startedBy:a?null:o,opening:n});return await x(s.id),s.id}async function I(e,t,o="user",a,r){let n=null;return await _(e,async()=>{let s=await (0,$.findThread)(e);if(s||(0,w.publicError)("No such thread."),a){let t=(await (0,b.listRoomWork)(e)).find(e=>e.bot.toLowerCase()===a.trim().toLowerCase());t&&t.bot!==T.ROOM_THURSDAY||(0,w.publicError)("Choose a participant in this thread."),a=t.bot}t.trim()===g.THREAD_CONTINUE&&(0,g.isAppStop)(s.pending)?(await (0,b.resumeRoom)(e),(await (0,b.listRoomWork)(e)).some(e=>"queued"===e.state)||(n=await (0,b.tellRoom)(e,"Continue from the saved conversation.","user"===o?T.ROOM_USER:T.ROOM_THURSDAY,a,void 0,!1))):n=await (0,b.tellRoom)(e,t,"user"===o?T.ROOM_USER:T.ROOM_THURSDAY,a,r)}),await x(e),n}async function x(e){await _(e,async()=>{for(let t=0;t<2;t++){let t;for(;t=await (0,b.claimRoomWork)(e);)!function(e){let t,o=new AbortController,a=new Promise(e=>{t=e});W.set(e.id,{threadId:e.threadId,stop:o,done:a}),O(e,o.signal).catch(t=>c.logger.error(`thread ${e.threadId}: participant`,t)).finally(()=>{W.delete(e.id),t(),x(e.threadId).catch(t=>c.logger.error(`thread ${e.threadId}: scheduling`,t))})}(t);await (0,b.settleRoom)(e)}})}async function O(e,t){let o=await S(e,t);if(o?.failure?.retry&&!t.aborted&&(await (0,b.noteRoomBreak)(e,o.failure.message),await (0,a.setTimeout)(n.BOT_RUN.retryMs,void 0,{signal:t}).catch(()=>{}),t.aborted||(o=await S(e,t,!1))),!o||t.aborted)return;let s=o.failure?.message,i=o.ending;if(s||!i||i.stopped){let t=s??"The turn was interrupted. Continue from the saved conversation.";_(e.threadId,async()=>{let a=(await (0,b.listRoomWork)(e.threadId)).find(t=>t.id===e.id);if(a?.state!=="running"||a.generation!==e.generation)return;let r=N(e.threadId);await (0,b.pauseRoom)(e.threadId,t,o.failure?.refused),await r}).catch(t=>c.logger.error(`thread ${e.threadId}: pausing`,t));return}await (0,b.finishRoomWork)(e,i.text);let w=await (0,$.findThread)(e.threadId);if(w?.status==="done"){let e=(0,f.plainText)(w.outcome??"").slice(0,n.FINISHED_NOTICE.words);r.presence.watching||await (0,l.isAnyCallLive)()||(0,u.desktopNotify)(w.label,e);let t=await (0,h.filesOnDisk)((0,d.pathsIn)(w.outcome??""),null);r.appEvents.emit({type:"finished",threadId:w.id,label:w.label,bot:w.bot,words:e,paths:(0,d.leadFirst)(t)})}}async function S(e,t,o=!0){let a=new U(e,t),r=null,n=null;try{let s=await (0,$.findThread)(e.threadId);if(!s)return null;if((await (0,b.listParticipantTranscript)(e.threadId,e.bot)).length||await (0,b.joinRoom)(e,t=>(0,i.buildJoinOpening)({bot:e.bot,coordinator:s.bot,job:t,request:s.request})),await (0,b.consumeRoomInbox)(e),o&&(0,T.isCoordinatorSeat)(e.bot,s.bot,e.caller)){let t=await (0,b.roomBoard)(e);t&&await (0,b.appendRoomMessage)(e.threadId,{bot:e.bot,parent:e.id,role:"user",content:t,hidden:!0})}let l=await (0,b.listParticipantTranscript)(e.threadId,e.bot);await (0,y.runBot)({bot:e.bot,messages:(0,y.resumeTranscript)(l,await (0,b.listRoomReceipts)(e.threadId,e.bot,l))},{signal:t,threadId:e.threadId,parent:e.id,caller:e.caller,owner:s.bot,contextBudget:await (0,b.roomContextBudget)(e.threadId,e.bot),compactNow:()=>P.delete(L(e.threadId,e.bot)),session:(0,h.botBrowserSession)(e.threadId,e.bot),notes:()=>(0,b.consumeRoomInbox)(e),send:async o=>{t.throwIfAborted();let a=o.to.trim();if(a.toLowerCase()===T.ROOM_THURSDAY.toLowerCase())a=T.ROOM_THURSDAY;else{let e=await (0,m.findJobBot)(a);(!e||e.disabled)&&(0,w.publicError)(`No enabled bot named "${a}".`),a=e.name}let r=await (0,b.sendRoomMessage)(e,{...o,to:a});return x(e.threadId).catch(e=>c.logger.error("room message scheduling",e)),r},emit:async o=>{(!t.aborted||"tool-result"===o.type)&&(await a.on(o),"step"===o.type&&await (0,$.addThreadUsage)(e.threadId,o.usage,e.bot===s.bot?{tokens:o.usage.input,budget:o.budget}:null),"compact"===o.type&&await (0,$.addThreadUsage)(e.threadId,o.usage),"turn-end"===o.type&&(r=o),"error"===o.type&&(n={message:o.message,retry:o.retry,refused:o.refused},o.budget&&await (0,b.lowerRoomContextBudget)(e,o.budget)))}})}catch(o){t.aborted||(c.logger.error(`thread ${e.threadId}: ${e.bot} broke`,o),n={message:(0,s.modelErrorToString)(o),retry:!(0,w.isPublicError)(o)&&!(0,s.isProviderRefusal)(o)})}return{ending:r,failure:n}}class U{work;signal;lane;assistant;tool;parts;calls;results;constructor(e,t){this.work=e,this.signal=t,this.lane=(0,f.PromiseChain)(),this.assistant=null,this.tool=null,this.parts={assistant:[],tool:[]},this.calls=new Set,this.results=new Set}async write(e,t,o=!1){let a={bot:this.work.bot,parent:this.work.id,role:t.role,content:t.content,compact:o,note:o};return null===e?(0,b.appendRoomMessage)(this.work.threadId,a):(await (0,$.upsertMessage)(this.work.threadId,e,a),e)}on(e){return this.lane(async()=>{if(!this.signal.aborted||"tool-result"===e.type)if("text"===e.type)this.parts.assistant.push({type:"text",text:e.text}),this.assistant=await this.write(this.assistant,{role:"assistant",content:this.parts.assistant});else if("tool"===e.type){if(this.calls.has(e.id)){let t=this.parts.assistant.find(t=>"tool-call"===t.type&&t.toolCallId===e.id);t&&"tool-call"===t.type&&e.providerOptions&&(t.providerOptions=e.providerOptions,this.assistant=await this.write(this.assistant,{role:"assistant",content:this.parts.assistant}));return}this.calls.add(e.id),this.parts.assistant.push({type:"tool-call",toolCallId:e.id,toolName:e.name,input:e.input,...e.providerExecuted?{providerExecuted:!0}:{},...e.providerOptions?{providerOptions:e.providerOptions}:{}}),this.assistant=await this.write(this.assistant,{role:"assistant",content:this.parts.assistant})}else if("tool-result"===e.type){if(this.results.has(e.id))return;this.results.add(e.id),this.parts.tool.push({type:"tool-result",toolCallId:e.id,toolName:e.name,output:e.error?{type:"error-text",value:String(e.output)}:"string"==typeof e.output?{type:"text",value:e.output}:{type:"json",value:e.output}}),this.tool=await this.write(this.tool,{role:"tool",content:this.parts.tool})}else if("step"===e.type){let t=[this.assistant,this.tool];for(let[o,a]of e.messages.entries())await this.write(t[o]??null,a);let o=t.slice(e.messages.length).filter(e=>null!==e);o.length&&await (0,$.deleteMessages)(this.work.threadId,o),this.assistant=this.tool=null,this.parts={assistant:[],tool:[]}}else"compact"===e.type&&await this.write(null,{role:"user",content:e.text},!0)})}}async function N(e){let t=[...W.values()].filter(t=>t.threadId===e);for(let e of t)e.stop.abort();await Promise.all(t.map(e=>e.done))}async function C(e){await _(e,async()=>{let t=await (0,$.findThread)(e);t||(0,w.publicError)("No such thread."),t.endedAt&&(0,w.publicError)("That thread has already ended."),await (0,b.cancelRoom)(e),await (0,$.updateThread)(e,{status:"cancelled",outcome:null,pending:null,seen:!0,endedAt:new Date}),await N(e),await (0,h.closeJobShell)(e)})}async function M(e){return _(e,()=>E(e))}async function E(e){let t=await (0,$.findThread)(e);await (0,b.cancelRoom)(e),await N(e),await (0,h.removeJobBrowsers)(e);let o=await (0,$.deleteThread)(e);return o&&t&&await (0,h.removeJobScratch)(e,t.label),o}async function R(e){let t=e?.getTime(),o=e=>void 0===t||(e.endedAt??e.updatedAt).getTime()<t,a=0;for(let e of(await (0,$.listThreadFolders)()))("done"===e.status||"cancelled"===e.status)&&o(e)&&await _(e.id,async()=>{let t=await (0,$.findThread)(e.id);t?.status!=="done"&&t?.status!=="cancelled"||o(t)&&await E(e.id)&&(a+=1)});return a}async function A(){let e=Date.now()-n.WORKSPACE_KEEP.forMs,t=t=>("done"===t.status||"cancelled"===t.status)&&(t.endedAt??t.updatedAt).getTime()<e,o=new Set(await (0,h.listScratchFolders)()),a=[];for(let e of(await (0,$.listThreadFolders)())){let r=(0,h.jobScratch)(e.id,e.label);o.delete(r)&&t(e)&&await _(e.id,async()=>{let o=await (0,$.findThread)(e.id);o&&t(o)&&(await (0,h.closeHiddenBrowser)(e.id),await (0,h.removeJobScratch)(e.id,e.label),a.push(r))})}return a.push(...await (0,h.removeUnchangedFolders)([...o])),await (0,h.pruneJobFiles)(),a.length&&c.logger.info(`cleared ${a.length} old job folder(s): ${a.join(", ")}`),a}async function j(){for(let e of(await (0,$.listRunningThreadIds)()))await _(e,async()=>{[...W.values()].some(t=>t.threadId===e)||(await (0,$.findThread)(e))?.status==="running"&&await (0,b.pauseRoom)(e,"The server restarted. Resume from the saved conversation.")})}async function B(e){let t=await (0,$.listRunningThreadIds)();await Promise.all(t.map(t=>_(t,async()=>{(await (0,$.findThread)(t))?.status==="running"&&(await N(t),await (0,b.pauseRoom)(t,e))})))}e.s(["answerThread",0,I,"askCompact",0,function(e,t){P.add(L(e,t))},"cancelThread",0,C,"pauseThreads",0,B,"removeFinishedThreads",0,R,"removeThread",0,M,"startThread",0,k,"sweepJobFiles",0,A,"sweepThreads",0,j]),o()}catch(e){o(e)}},!1),167004,e=>{"use strict";var t=e.i(874533),o=e.i(687388);let a=`on run argv
111
111
  display notification (item 2 of argv) with title (item 1 of argv)
112
112
  end run`,r=`
113
113
  $ErrorActionPreference = 'Stop'
@@ -0,0 +1,5 @@
1
+ module.exports=[379651,377205,t=>{"use strict";var e=t.i(666680),n=t.i(912714),a=t.i(750227),i=t.i(853205),s=t.i(232347),r=t.i(333925),o=t.i(871096),l=t.i(938281),c=t.i(991243);let u=t=>t.trim().toLowerCase().replace(/^[a-z]+:\/\//,"").replace(/^www\./,"").replace(/[/?#].*$/,"");t.s(["siteOf",0,u],377205);let d=(0,a.join)(r.DATA_DIR,r.PATHS.signIns),w=i.z.object({site:i.z.string().min(1),account:i.z.string().min(1),bots:i.z.array(i.z.string()),asking:i.z.array(i.z.string()),keptAt:i.z.string(),usedAt:i.z.string().nullable(),state:i.z.unknown()}),f=(t,n)=>(0,a.join)(d,`${encodeURIComponent(u(t))}@${(0,e.createHash)("sha256").update(n).digest("hex").slice(0,16)}.json`),g=t=>(0,a.join)(d,`${encodeURIComponent(u(t))}.json`);function p(t){let[,e]=/^([^@]+)(?:@[0-9a-f]{16})?\.json$/.exec(t)??[];if(!e)return null;try{return decodeURIComponent(e)}catch{return null}}async function k(t){try{let e=w.safeParse(JSON.parse(await (0,n.readFile)(t,"utf8")));return e.success?e.data:null}catch{return null}}async function S(t,e){let n=await k(f(t,e));if(n)return n;let a=await k(g(t));return a?.site===u(t)&&a.account===e?a:null}async function y(t,e){let a=g(t),i=await k(a);i?.site===u(t)&&i.account===e&&await (0,n.rm)(a,{force:!0})}async function h(t){await (0,n.mkdir)(d,{recursive:!0}),await (0,n.writeFile)(f(t.site,t.account),JSON.stringify(t),{mode:384}),await y(t.site,t.account),s.appEvents.emit({type:"signins"})}let I=globalThis.__signInsVault??=(0,c.createKeyedLock)(),m=t=>I("vault",t);async function _(){return[...new Set((await (0,n.readdir)(d).catch(()=>[])).flatMap(t=>p(t)??[]))].sort()}async function b(t){let e=(await (0,n.readdir)(d).catch(()=>[])).filter(e=>{let n=p(e);return null!==n&&(!t||t(n))});return(await Promise.all(e.map(async t=>{let n=await k((0,a.join)(d,t));if(!n)return null;let i=(0,a.basename)(f(n.site,n.account));return t===i?n:t!==(0,a.basename)(g(n.site))||e.includes(i)?null:n}))).flatMap(t=>t?[t]:[]).sort((t,e)=>t.site.localeCompare(e.site)||t.account.localeCompare(e.account))}async function $(t){let e=u(t),n=await _(),a=n.includes(e)?e:n.filter(t=>e.endsWith(`.${t}`)).sort((t,e)=>e.length-t.length)[0];return a?b(t=>t===a):[]}function L(t){return m(async()=>{let e=await $(t.site),n=e[0]?.site??u(t.site),a=t.account.trim()||n,i=e.map(t=>t.account),s=e.find(t=>t.account===a);if(s&&t.another)return{kind:"clash",site:n,accounts:i};if(s&&!s.bots.includes(t.bot)){let e=s.asking.includes(t.bot)?s:{...s,asking:[...s.asking,t.bot]};return e!==s&&await h(e),{kind:"taken",signIn:(({state:t,...e})=>e)(e)}}if(!s&&e.length&&!t.another)return{kind:"unlisted",site:n,accounts:i};let r={site:n,account:a,bots:[...new Set([...s?.bots??[],t.bot])],asking:(s?.asking??[]).filter(e=>e!==t.bot),keptAt:new Date().toISOString(),usedAt:s?.usedAt??null,state:t.state};return await h(r),{kind:"kept",signIn:(({state:t,...e})=>e)(r),replaced:!!s}})}async function C(t,e){return(await (0,o.listBrowsers)(t,e)).find(t=>t.name===e.PLAYWRIGHT_CLI_SESSION)??null}async function O(t,e){let n=await C(t,e);return n?n.attached?"theirs":"own":null}async function A(t,e){let n=await C(t,e);return!!n&&!n.attached&&!0===n.headed}let R=globalThis.__signInsBrowser??=(0,c.createKeyedLock)(),W=(t,e)=>R(t.PLAYWRIGHT_CLI_SESSION??"",e),j=globalThis.__signInsLentByAccount??=new Map,v="__thursdaySignIns";async function x(t,e){let n=await t.exec(`playwright-cli --raw run-code "async page => page.context().${v} ?? null"`,{env:e,timeoutMs:r.BROWSER_CLI.readMs});if(0===n.exitCode)try{let t=JSON.parse(n.stdout);return"string"==typeof t?t:null}catch{return}}let E=!1;async function N(t,e,n){return 0===(await t.exec(`playwright-cli --raw run-code "async page => { page.context().${v} = '${n}'; return true; }"`,{env:e,timeoutMs:r.BROWSER_CLI.readMs})).exitCode&&(!!E||(E=await x(t,e)===n))}async function P(t,n,a,i,s){let r=n.PLAYWRIGHT_CLI_SESSION;if(!r)return;let o=j.get(r);if("kept"===s&&o?.bot===a&&await x(t,n)===o.mark)return void o.sites.set(i.site,i.account);let c=(0,e.randomUUID)().replaceAll("-","");await N(t,n,c)?j.set(r,{bot:a,mark:c,sites:new Map([[i.site,i.account]])}):(j.delete(r),l.logger.warn(`sign-ins: ${r}'s browser could not be marked, so ${i.site} is not renewed from it`))}async function T(t,e){let n=e.PLAYWRIGHT_CLI_SESSION??"",a=j.get(n);a&&!await N(t,e,a.mark)&&j.delete(n)}let z=t=>`${t.name}
2
+ ${t.domain}
3
+ ${t.path}`;async function H(t,e){let n,a=e.PLAYWRIGHT_CLI_SESSION??"",i=j.get(a);if(!i?.sites.size)return;if(await O(t,e)!=="own")return void j.delete(a);let s=async()=>{let n=await x(t,e);return void 0!==n&&n!==i.mark&&j.delete(a),n===i.mark};if(!await s())return;let l=(0,o.browserStateFile)();try{let a=await t.exec((0,o.saveBrowserState)(l),{env:e,timeoutMs:r.BROWSER_CLI.loadMs});if(0!==a.exitCode)return;let i=JSON.parse(await t.readFile(l,"utf-8"));n=new Map((i.cookies??[]).map(t=>[z(t),t]))}finally{await t.exec(`rm -f ${l}`)}if(j.get(a)===i&&await s())for(let[t,e]of i.sites)await m(async()=>{let a=await S(t,e),s=a?.state;if(!a||!s?.cookies||!a.bots.includes(i.bot))return;let r=!1,o=s.cookies.map(t=>{let e=n.get(z(t));return e&&JSON.stringify(e)!==JSON.stringify(t)?(r=!0,e):t});r&&await h({...a,state:{...s,cookies:o}})})}async function M(t){let e=(0,o.jobShellEnv)(t);if(!j.get(e.PLAYWRIGHT_CLI_SESSION??"")?.sites.size)return;let n=await (0,o.openWorkspace)();await W(e,()=>H(n,e))}async function B(){let t=(0,a.join)(o.WORKSPACE,r.PATHS.bots);for(let e of(await (0,n.readdir)(t).catch(()=>[]))){let i=(0,a.join)(t,e,".auth");for(let t of(await (0,n.readdir)(i).catch(()=>[]))){if(!t.endsWith(".json"))continue;let s=(0,a.join)(i,t);try{let r=JSON.parse(await (0,n.readFile)(s,"utf8")),o=t.slice(0,-5),c=(await (0,n.readFile)((0,a.join)(i,"account.txt"),"utf8").catch(()=>"")).trim(),u=await L({site:o,account:c,bot:e,state:r});if("unlisted"===u.kind&&(u=await L({site:o,account:c,bot:e,state:r,another:!0})),"kept"!==u.kind&&"taken"!==u.kind)throw Error(`${o} (${c}) could not be told apart`);await (0,n.rm)(s),l.logger.info("kept"===u.kind?`sign-ins: took in ${e}'s ${o}`:`sign-ins: ${o} is kept for another bot already; ${e}'s old copy was removed and ${e} is asking for it`)}catch(t){l.logger.warn(`sign-ins: could not take in ${s}`,t)}}}}t.s(["adoptKeptSessions",0,B,"borrowSignIn",0,function(t,e,n){return m(async()=>{let a=await $(t);if(!a.length)return{kind:"none",kept:await _()};let i=n?.trim(),s=i?a.find(t=>t.account===i):1===a.length?a[0]:void 0;if(!s)return{kind:"pick",site:a[0].site,accounts:a.map(t=>t.account)};if(!s.bots.includes(e))return s.asking.includes(e)||await h({...s,asking:[...s.asking,e]}),{kind:"ask",signIn:(({state:t,...e})=>e)(s)};let r={...s,usedAt:new Date().toISOString()};return await h(r),{kind:"state",signIn:(({state:t,...e})=>e)(r),state:s.state}})},"carryHold",0,T,"forgetBrowser",0,function(t){j.delete(t.PLAYWRIGHT_CLI_SESSION??"")},"holdSignIn",0,P,"inBrowser",0,W,"keepSignIn",0,L,"releaseSignIn",0,function(t,e){let n=j.get(t.PLAYWRIGHT_CLI_SESSION??"");if(!n)return;let a=u(e);for(let t of[...n.sites.keys()])(t===a||a.endsWith(`.${t}`)||t.endsWith(`.${a}`))&&n.sites.delete(t)},"renewHeld",0,H,"renewSignIns",0,M,"sessionBrowser",0,O,"sessionWindow",0,A],379651)},991243,t=>{"use strict";var e=t.i(64774);t.s(["createKeyedLock",0,function(){let t=new Map,n=new Map;return function(a,i){let s=t.get(a);s||(s=(0,e.PromiseChain)(),t.set(a,s)),n.set(a,(n.get(a)??0)+1);let r=()=>{let e=(n.get(a)??1)-1;e>0?n.set(a,e):(n.delete(a),t.delete(a))};return s(i).then(t=>(r(),t),t=>{throw r(),t})}}])},207580,t=>{t.v(e=>Promise.all(["server/chunks/[externals]__0y3n8y6._.js","server/chunks/node_modules_consola_dist_chunks_prompt_mjs_0q8fc1x._.js"].map(e=>t.l(e))).then(()=>e(27996)))}];
4
+
5
+ //# sourceMappingURL=_0ynjnhl._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[51083,e=>{"use strict";e.s(["STUDIO_TOOLS",0,{generate_image:"generate_image",generate_speech:"generate_speech",transcribe:"transcribe",generate_video:"generate_video"},"TOOL_NAMES",0,{memory_recall:"memory_recall",memory_create:"memory_create",memory_remember:"memory_remember",memory_describe:"memory_describe",memory_forget:"memory_forget",bash:"bash",write_file:"write_file",tool_search:"tool_search",tool_call:"tool_call",load_skill:"load_skill",web_search:"web_search",thread_start:"thread_start",thread_tell:"thread_tell",thread_answer:"thread_answer",thread_status:"thread_status",thread_cancel:"thread_cancel",thread_show:"thread_show",thread_seen:"thread_seen",routine:"routine",send_message:"send_message",thread_recall:"thread_recall",sign_in_use:"sign_in_use",sign_in_keep:"sign_in_keep",look_at:"look_at",make_deck:"make_deck",describe_self:"describe_self",end_call:"end_call",emote:"emote",look_at_shared:"look_at_shared"}])},951056,e=>{"use strict";var t=e.i(517435),a=e.i(333925),r=e.i(864328),l=e.i(900533),n=e.i(64774),i=e.i(746565),s=e.i(600690);let o=t.default.object({color:t.default.string().regex(/^(#[0-9a-fA-F]{6}|currentColor)$/,"Hex color").optional(),shape:t.default.enum(i.MARK_SHAPES).optional(),outline:t.default.boolean().optional(),paint:t.default.enum(i.MARK_PAINT_IDS).optional()}),d=t.default.string().max(a.COMMON_VALIDATE.prompt.max),u=t.default.object({line:t.default.string(),reason:t.default.string(),at:t.default.number()}),f=t.default.object({id:t.default.number(),name:t.default.string(),serverName:t.default.string()}),m=t.default.string().trim().transform(e=>e.replace(/\s+/g," ")).refine(e=>e.toLowerCase()!==s.ROOM_THURSDAY.toLowerCase(),"Thursday is reserved for the voice assistant.").pipe(t.default.string().min(1,"A name is required").max(a.COMMON_VALIDATE.name.max)),c=t.default.object({input:t.default.number(),output:t.default.number()});t.default.object({name:t.default.string(),description:t.default.string(),descriptionLocked:t.default.boolean(),ownLine:u.nullish(),systemPrompt:t.default.string().nullish(),icon:o.nullish(),provider:r.textModelProviderSchema.nullish(),model:t.default.string().nullish(),compactAt:t.default.number().nullish(),effort:r.effortSchema.nullish(),disabled:t.default.boolean(),createdAt:l.DateLikeSchema,tools:f.array().default([]),tokens:c,lastJobAt:l.DateLikeSchema.nullish()}),t.default.object({name:m,description:t.default.string().trim().min(1,"Say what this bot is for").max(a.COMMON_VALIDATE.description.max),systemPrompt:d.optional(),icon:o.optional(),provider:r.textModelProviderSchema.nullish(),model:t.default.string().trim().max(80).nullish(),compactAt:t.default.coerce.number().int().min(8e3,"At least 8k").nullish(),effort:r.effortSchema.nullish(),disabled:t.default.boolean().optional(),descriptionLocked:t.default.boolean().optional(),toolIds:t.default.number().int().array().max(a.MAX_PINNED_TOOLS).optional()});let g={color:i.MARK_SYSTEM,shape:"blob"};t.default.object({file:t.default.string(),path:t.default.string(),line:t.default.string(),at:l.DateLikeSchema,bytes:t.default.number()});let _="Continue",h={thursday:"Thursday, on the call:",user:"The user, on screen:"},b=t.default.discriminatedUnion("type",[t.default.object({type:t.default.literal("text"),text:t.default.string()}),t.default.object({type:t.default.literal("image"),src:t.default.string()})]),p=t.default.object({id:t.default.string(),seq:t.default.number(),bot:t.default.string().nullable(),parent:t.default.string().nullable(),to:t.default.string().nullish(),at:l.DateLikeSchema}),k=t.default.discriminatedUnion("kind",[p.extend({kind:t.default.literal("user"),text:t.default.string()}),p.extend({kind:t.default.literal("text"),text:t.default.string()}),p.extend({kind:t.default.literal("note"),text:t.default.string()}),p.extend({kind:t.default.literal("stop"),text:t.default.string()}),p.extend({kind:t.default.literal("tool"),callId:t.default.string(),name:t.default.string(),input:t.default.string(),note:t.default.string().nullish(),path:t.default.string().nullish()}),p.extend({kind:t.default.literal("tool-result"),callId:t.default.string(),name:t.default.string(),results:b.array(),more:t.default.boolean()}),p.extend({kind:t.default.literal("ask"),callId:t.default.string(),to:t.default.string(),text:t.default.string(),question:t.default.boolean().optional(),questionId:t.default.string().optional(),exchange:t.default.string().optional(),after:t.default.array(t.default.string()).optional()})]),y=t.default.object({question:t.default.string(),messageId:t.default.string().optional(),bot:t.default.string().optional(),options:t.default.string().array()});t.default.object({id:t.default.string(),bot:t.default.string(),label:t.default.string(),request:t.default.string(),status:t.default.enum(["running","waiting","done","cancelled"]),outcome:t.default.string().nullable(),ask:y.nullable(),seen:t.default.boolean(),routineId:t.default.string().nullable(),tokens:c,contextTokens:t.default.number(),contextBudget:t.default.number(),createdAt:l.DateLikeSchema,updatedAt:l.DateLikeSchema,lines:k.array(),room:s.RoomViewSchema}),e.s(["BOT_MEMORY_KEY",0,"BOT_MEMORY","COMPACT_AT_MIN",0,8e3,"DEFAULT_BOT",0,{name:"Jarvis",description:"Anything — this computer, a browser, the web, files, services",ownLine:null,systemPrompt:null,icon:g,provider:null,model:null,disabled:!1,compactAt:null,effort:null},"DEFAULT_BOT_ICON",0,g,"THREAD_CONTINUE",0,_,"isAppStop",0,e=>{let t=e?.options??[];return!e?.messageId&&1===t.length&&t[0]===_},"isBotMemoryOn",0,e=>e?.trim()!=="off","rosterLine",0,function(e){let t=e.description.trim();return e.ownLine?`${t}${/[.!?。…]$/.test(t)?"":"."} ${e.ownLine}`:t},"tagSpeaker",0,(e,t)=>`${h[e]} ${t}`,"threadActivity",0,function(e,t=120){let a=null;for(let r=e.length-1;r>=0;r--){let l=e[r];if("tool"===l.kind)a??=`${l.name} ${l.note??l.input}`;else if("text"===l.kind)return(0,n.clip)(a?`${l.text} → ${a}`:l.text,t);else if("ask"===l.kind)return(0,n.clip)(`asked ${l.to}: ${l.text}`,t);else if("user"===l.kind)break}return a?(0,n.clip)(a,t):null},"untagSpeaker",0,e=>{for(let t of Object.values(h))if(e.startsWith(`${t} `))return e.slice(t.length+1);return e},"workHandle",0,e=>e.slice(0,6)])},600690,e=>{"use strict";var t=e.i(853205);let a=t.z.object({to:t.z.string().trim().min(1),text:t.z.string().trim().min(1),why:t.z.string().trim().min(1),kind:t.z.enum(["message","question"]).default("message"),options:t.z.array(t.z.string().trim().min(1)).nullish(),after:t.z.array(t.z.string().trim().min(1)).nullish()}),r=t.z.enum(["queued","running","waiting","external","paused","done","cancelled"]),l=t.z.object({bot:t.z.string(),state:r}),n=t.z.object({id:t.z.string(),bot:t.z.string(),caller:t.z.string(),state:r,waitsFor:t.z.string().array()}),i=t.z.object({id:t.z.string(),bot:t.z.string(),text:t.z.string(),options:t.z.string().array().optional()}),s=t.z.enum(["message","question","report","interrupted"]),o="Thursday",d=t.z.object({participants:l.array(),questions:i.array(),deliveries:t.z.object({id:t.z.string(),bot:t.z.string(),text:t.z.string(),delivered:t.z.boolean()}).array(),relays:t.z.object({id:t.z.number(),bot:t.z.string(),text:t.z.string(),kind:s,messageId:t.z.string().nullable()}).array(),exchanges:n.array()});e.s(["RESUME_CHECK",0,"Resume from the saved state; inspect any tool whose result is missing before repeating it.","ROOM_THURSDAY",0,o,"ROOM_USER",0,"The user","RoomMessageSchema",0,a,"RoomViewSchema",0,d,"isCoordinatorSeat",0,(e,t,a)=>e===t&&a===o])},517435,e=>{"use strict";var t=e.i(794588);e.s(["default",0,t])}];
1
+ module.exports=[51083,e=>{"use strict";e.s(["STUDIO_TOOLS",0,{generate_image:"generate_image",generate_speech:"generate_speech",transcribe:"transcribe",generate_video:"generate_video"},"TOOL_NAMES",0,{memory_recall:"memory_recall",memory_create:"memory_create",memory_remember:"memory_remember",memory_describe:"memory_describe",memory_forget:"memory_forget",bash:"bash",write_file:"write_file",tool_search:"tool_search",tool_call:"tool_call",load_skill:"load_skill",web_search:"web_search",thread_start:"thread_start",thread_tell:"thread_tell",thread_answer:"thread_answer",thread_status:"thread_status",thread_cancel:"thread_cancel",thread_show:"thread_show",thread_seen:"thread_seen",routine:"routine",send_message:"send_message",thread_recall:"thread_recall",sign_in_use:"sign_in_use",sign_in_keep:"sign_in_keep",look_at:"look_at",make_deck:"make_deck",describe_self:"describe_self",end_call:"end_call",emote:"emote"}])},951056,e=>{"use strict";var t=e.i(517435),a=e.i(333925),l=e.i(864328),r=e.i(900533),n=e.i(64774),i=e.i(746565),s=e.i(600690);let o=t.default.object({color:t.default.string().regex(/^(#[0-9a-fA-F]{6}|currentColor)$/,"Hex color").optional(),shape:t.default.enum(i.MARK_SHAPES).optional(),outline:t.default.boolean().optional(),paint:t.default.enum(i.MARK_PAINT_IDS).optional()}),d=t.default.string().max(a.COMMON_VALIDATE.prompt.max),u=t.default.object({line:t.default.string(),reason:t.default.string(),at:t.default.number()}),f=t.default.object({id:t.default.number(),name:t.default.string(),serverName:t.default.string()}),m=t.default.string().trim().transform(e=>e.replace(/\s+/g," ")).refine(e=>e.toLowerCase()!==s.ROOM_THURSDAY.toLowerCase(),"Thursday is reserved for the voice assistant.").pipe(t.default.string().min(1,"A name is required").max(a.COMMON_VALIDATE.name.max)),c=t.default.object({input:t.default.number(),output:t.default.number()});t.default.object({name:t.default.string(),description:t.default.string(),descriptionLocked:t.default.boolean(),ownLine:u.nullish(),systemPrompt:t.default.string().nullish(),icon:o.nullish(),provider:l.textModelProviderSchema.nullish(),model:t.default.string().nullish(),compactAt:t.default.number().nullish(),effort:l.effortSchema.nullish(),disabled:t.default.boolean(),createdAt:r.DateLikeSchema,tools:f.array().default([]),tokens:c,lastJobAt:r.DateLikeSchema.nullish()}),t.default.object({name:m,description:t.default.string().trim().min(1,"Say what this bot is for").max(a.COMMON_VALIDATE.description.max),systemPrompt:d.optional(),icon:o.optional(),provider:l.textModelProviderSchema.nullish(),model:t.default.string().trim().max(80).nullish(),compactAt:t.default.coerce.number().int().min(8e3,"At least 8k").nullish(),effort:l.effortSchema.nullish(),disabled:t.default.boolean().optional(),descriptionLocked:t.default.boolean().optional(),toolIds:t.default.number().int().array().max(a.MAX_PINNED_TOOLS).optional()});let g={color:i.MARK_SYSTEM,shape:"blob"};t.default.object({file:t.default.string(),path:t.default.string(),line:t.default.string(),at:r.DateLikeSchema,bytes:t.default.number()});let h="Continue",_={thursday:"Thursday, on the call:",user:"The user, on screen:"},b=e=>Object.keys(_).find(t=>e.startsWith(`${_[t]} `))??null,p=t.default.discriminatedUnion("type",[t.default.object({type:t.default.literal("text"),text:t.default.string()}),t.default.object({type:t.default.literal("image"),src:t.default.string()})]),y=t.default.object({id:t.default.string(),seq:t.default.number(),bot:t.default.string().nullable(),parent:t.default.string().nullable(),to:t.default.string().nullish(),at:r.DateLikeSchema}),k=t.default.discriminatedUnion("kind",[y.extend({kind:t.default.literal("user"),text:t.default.string(),by:t.default.enum(["thursday","user"]).nullable()}),y.extend({kind:t.default.literal("text"),text:t.default.string()}),y.extend({kind:t.default.literal("note"),text:t.default.string()}),y.extend({kind:t.default.literal("stop"),text:t.default.string()}),y.extend({kind:t.default.literal("tool"),callId:t.default.string(),name:t.default.string(),input:t.default.string(),note:t.default.string().nullish(),path:t.default.string().nullish()}),y.extend({kind:t.default.literal("tool-result"),callId:t.default.string(),name:t.default.string(),results:p.array(),more:t.default.boolean()}),y.extend({kind:t.default.literal("ask"),callId:t.default.string(),to:t.default.string(),text:t.default.string(),question:t.default.boolean().optional(),questionId:t.default.string().optional(),exchange:t.default.string().optional(),after:t.default.array(t.default.string()).optional()})]),x=t.default.object({question:t.default.string(),messageId:t.default.string().optional(),bot:t.default.string().optional(),options:t.default.string().array(),refused:l.textModelProviderSchema.optional()});t.default.object({id:t.default.string(),bot:t.default.string(),label:t.default.string(),request:t.default.string(),status:t.default.enum(["running","waiting","done","cancelled"]),outcome:t.default.string().nullable(),ask:x.nullable(),seen:t.default.boolean(),routineId:t.default.string().nullable(),startedBy:t.default.enum(["thursday","user"]).nullable(),tokens:c,contextTokens:t.default.number(),contextBudget:t.default.number(),createdAt:r.DateLikeSchema,updatedAt:r.DateLikeSchema,lines:k.array(),room:s.RoomViewSchema}),e.s(["BOT_MEMORY_KEY",0,"BOT_MEMORY","COMPACT_AT_MIN",0,8e3,"DEFAULT_BOT",0,{name:"Jarvis",description:"Anything — this computer, a browser, the web, files, services",ownLine:null,systemPrompt:null,icon:g,provider:null,model:null,disabled:!1,compactAt:null,effort:null},"DEFAULT_BOT_ICON",0,g,"THREAD_CONTINUE",0,h,"isAppStop",0,e=>{let t=e?.options??[];return!e?.messageId&&1===t.length&&t[0]===h},"isBotMemoryOn",0,e=>e?.trim()!=="off","rosterLine",0,function(e){let t=e.description.trim();return e.ownLine?`${t}${/[.!?。…]$/.test(t)?"":"."} ${e.ownLine}`:t},"speakerOf",0,b,"tagSpeaker",0,(e,t)=>`${_[e]} ${t}`,"threadActivity",0,function(e,t=120){let a=null;for(let l=e.length-1;l>=0;l--){let r=e[l];if("tool"===r.kind)a??=`${r.name} ${r.note??r.input}`;else if("text"===r.kind)return(0,n.clip)(a?`${r.text} → ${a}`:r.text,t);else if("ask"===r.kind)return(0,n.clip)(`asked ${r.to}: ${r.text}`,t);else if("user"===r.kind)break}return a?(0,n.clip)(a,t):null},"untagSpeaker",0,e=>{let t=b(e);return t?e.slice(_[t].length+1):e},"workHandle",0,e=>e.slice(0,6)])},600690,e=>{"use strict";var t=e.i(853205);let a=t.z.object({to:t.z.string().trim().min(1),text:t.z.string().trim().min(1),why:t.z.string().trim().min(1),kind:t.z.enum(["message","question"]).default("message"),options:t.z.array(t.z.string().trim().min(1)).nullish(),after:t.z.array(t.z.string().trim().min(1)).nullish()}),l=t.z.enum(["queued","running","waiting","external","paused","done","cancelled"]),r=t.z.object({bot:t.z.string(),state:l}),n=t.z.object({id:t.z.string(),bot:t.z.string(),caller:t.z.string(),state:l,waitsFor:t.z.string().array()}),i=t.z.object({id:t.z.string(),bot:t.z.string(),text:t.z.string(),options:t.z.string().array().optional()}),s=t.z.enum(["message","question","report","interrupted"]),o="Thursday",d=t.z.object({participants:r.array(),questions:i.array(),deliveries:t.z.object({id:t.z.string(),bot:t.z.string(),text:t.z.string(),delivered:t.z.boolean()}).array(),relays:t.z.object({id:t.z.number(),bot:t.z.string(),text:t.z.string(),kind:s,messageId:t.z.string().nullable()}).array(),exchanges:n.array()});e.s(["RESUME_CHECK",0,"Resume from the saved state; inspect any tool whose result is missing before repeating it.","ROOM_THURSDAY",0,o,"ROOM_USER",0,"The user","RoomMessageSchema",0,a,"RoomViewSchema",0,d,"isCoordinatorSeat",0,(e,t,a)=>e===t&&a===o])},517435,e=>{"use strict";var t=e.i(794588);e.s(["default",0,t])}];
2
2
 
3
3
  //# sourceMappingURL=_1-wp0r0._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[102185,e=>e.a(async(t,a)=>{try{var r=e.i(771716),n=e.i(91264),s=t([r]);[r]=s.then?(await s)():s;let i=(0,n.serverRoute)(async e=>{let t=new URL(e.url).searchParams,a=Number(t.get("rows")),n=Number.isSafeInteger(a)&&a>0?a:void 0,s=t.get("set");return s?(0,r.readSet)(s,n):(0,r.readShelf)(n)});e.s(["GET",0,i]),a()}catch(e){a(e)}},!1),872084,e=>{"use strict";var t=e.i(747909),a=e.i(174017),r=e.i(996250),n=e.i(759756),s=e.i(561916),i=e.i(174677),o=e.i(869741),l=e.i(316795),u=e.i(487718),d=e.i(995169),c=e.i(47587),p=e.i(666012),h=e.i(570101),v=e.i(626937),R=e.i(10372),m=e.i(193695);e.i(52474);var f=e.i(600220);let g=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/artifact/route",pathname:"/api/artifact",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/artifact/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(102185),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:E,serverHooks:_}=g;async function C(e,t,r){r.requestMeta&&(0,n.setRequestMeta)(e,r.requestMeta),g.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/artifact/route";w=w.replace(/\/index$/,"")||"/";let E=await g.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!E)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:_,deploymentId:C,params:x,nextConfig:A,parsedUrl:y,isDraftMode:T,prerenderManifest:P,routerServerContext:S,isOnDemandRevalidate:b,revalidateOnlyGenerated:N,resolvedPathname:k,clientReferenceManifest:O,serverActionsManifest:q}=E,H=(0,o.normalizeAppPath)(w),I=!!(P.dynamicRoutes[H]||P.routes[k]),M=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,y,!1):t.end("This page could not be found"),null);if(I&&!T){let e=!!P.routes[k],t=P.dynamicRoutes[H];if(t&&!1===t.fallback&&!e){if(A.adapterPath)return await M();throw new m.NoFallbackError}}let U=null;!I||g.isDev||T||(U="/index"===(U=k)?"/":U);let j=!0===g.isDev||!I,D=I&&!j;q&&O&&(0,i.setManifestsSingleton)({page:w,clientReferenceManifest:O,serverActionsManifest:q});let F=e.method||"GET",K=(0,s.getTracer)(),L=K.getActiveScopeSpan(),$=!!(null==S?void 0:S.isWrappedByNextServer),B=!!(0,n.getRequestMeta)(e,"minimalMode"),G=(0,n.getRequestMeta)(e,"incrementalCache")||await g.getIncrementalCache(e,A,P,B);null==G||G.resetRequestCache(),globalThis.__incrementalCache=G;let V={params:x,previewProps:P.preview,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts,useCacheTimeout:A.experimental.useCacheTimeout},cacheComponents:!!A.cacheComponents,validationLevel:A.experimental.instantInsights.validationLevel,supportsDynamicResponse:j,incrementalCache:G,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:A.cacheLife,staticPageGenerationTimeout:A.staticPageGenerationTimeout,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>g.onRequestError(e,t,r,n,S)},sharedContext:{buildId:_,deploymentId:C}},X=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),z=u.NextRequestAdapter.fromNodeNextRequest(X,(0,u.signalFromNodeResponse)(t)),Z=async({previousCacheEntry:a})=>{try{if(!B&&b&&N&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await g.handle(z,V);e.fetchMetrics=V.renderOpts.fetchMetrics;let s=V.renderOpts.pendingWaitUntil;s&&r.waitUntil&&(r.waitUntil(s),s=void 0);let i=V.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(X,W,n,s),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);i&&(t[R.NEXT_CACHE_TAGS_HEADER]=i),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,r=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=R.INFINITE_CACHE?!1!==a&&a>0?A.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await g.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:b})},!1,S),t}},J=async(n,i)=>{try{var o,l;let n=await g.handleResponse({req:e,nextConfig:A,cacheKey:U,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:P,isRoutePPREnabled:!1,isOnDemandRevalidate:b,revalidateOnlyGenerated:N,responseGenerator:Z,waitUntil:r.waitUntil,isMinimalMode:B});if(!I)return;if((null==n||null==(o=n.value)?void 0:o.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==n||null==(l=n.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});B||t.setHeader("x-nextjs-cache",b?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let s=(0,h.fromNodeOutgoingHttpHeaders)(n.value.headers);B&&I||s.delete(R.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||s.get("Cache-Control")||s.set("Cache-Control",(0,v.getCacheControlHeader)(n.cacheControl)),await (0,p.sendResponse)(X,W,new Response(n.value.body,{headers:s,status:n.value.status||200}));return}catch(t){if(t instanceof m.NoFallbackError||await g.onRequestError(e,t,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:b})},!1,S),I)throw t;await (0,p.sendResponse)(X,W,new Response(null,{status:500}));return}finally{(()=>{if(!n)return;let e=t.statusCode;n.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(n.setStatus({code:s.SpanStatusCode.ERROR}),n.setAttribute("error.type",e.toString()));let a=K.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==d.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route")||H,o=`${F} ${r}`;n.setAttributes({"next.route":r,"http.route":r,"next.span_name":o}),n.updateName(o),i&&i!==n&&(i.setAttribute("http.route",r),i.updateName(o))})()}};if($&&L)await J(L,void 0);else{let t=K.getActiveScopeSpan();await K.withPropagatedContext(e.headers,()=>K.trace(d.BaseServerSpan.handleRequest,{spanName:`${F} ${w}`,kind:s.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},e=>J(e,t)),void 0,!$)}}e.s(["handler",0,C,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:E})},"routeModule",0,g,"serverHooks",0,_,"workAsyncStorage",0,w,"workUnitAsyncStorage",0,E])},720275,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__08922kg._.js","server/chunks/_1hw1ujv._.js","server/chunks/node_modules_@ai-sdk_1o5ydf6._.js"].map(t=>e.l(t))).then(()=>t(656446)))},329280,e=>{e.v(t=>Promise.all(["server/chunks/[externals]_node_readline_1u65a-m._.js","server/chunks/node_modules_consola_dist_chunks_prompt_mjs_02axwqv._.js"].map(t=>e.l(t))).then(()=>t(781937)))}];
1
+ module.exports=[102185,e=>e.a(async(t,a)=>{try{var r=e.i(771716),n=e.i(91264),s=t([r]);[r]=s.then?(await s)():s;let i=(0,n.serverRoute)(async e=>{let t=new URL(e.url).searchParams,a=Number(t.get("rows")),n=Number.isSafeInteger(a)&&a>0?a:void 0,s=t.get("set");return s?(0,r.readSet)(s,n):(0,r.readShelf)(n)});e.s(["GET",0,i]),a()}catch(e){a(e)}},!1),872084,e=>{"use strict";var t=e.i(747909),a=e.i(174017),r=e.i(996250),n=e.i(759756),s=e.i(561916),i=e.i(174677),o=e.i(869741),l=e.i(316795),u=e.i(487718),d=e.i(995169),c=e.i(47587),p=e.i(666012),h=e.i(570101),v=e.i(626937),R=e.i(10372),m=e.i(193695);e.i(52474);var f=e.i(600220);let g=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/artifact/route",pathname:"/api/artifact",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/artifact/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(102185),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:E,serverHooks:_}=g;async function C(e,t,r){r.requestMeta&&(0,n.setRequestMeta)(e,r.requestMeta),g.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/artifact/route";w=w.replace(/\/index$/,"")||"/";let E=await g.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!E)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:_,deploymentId:C,params:x,nextConfig:A,parsedUrl:y,isDraftMode:T,prerenderManifest:P,routerServerContext:S,isOnDemandRevalidate:b,revalidateOnlyGenerated:N,resolvedPathname:O,clientReferenceManifest:k,serverActionsManifest:q}=E,H=(0,o.normalizeAppPath)(w),I=!!(P.dynamicRoutes[H]||P.routes[O]),M=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,y,!1):t.end("This page could not be found"),null);if(I&&!T){let e=!!P.routes[O],t=P.dynamicRoutes[H];if(t&&!1===t.fallback&&!e){if(A.adapterPath)return await M();throw new m.NoFallbackError}}let U=null;!I||g.isDev||T||(U="/index"===(U=O)?"/":U);let j=!0===g.isDev||!I,D=I&&!j;q&&k&&(0,i.setManifestsSingleton)({page:w,clientReferenceManifest:k,serverActionsManifest:q});let F=e.method||"GET",K=(0,s.getTracer)(),L=K.getActiveScopeSpan(),$=!!(null==S?void 0:S.isWrappedByNextServer),B=!!(0,n.getRequestMeta)(e,"minimalMode"),G=(0,n.getRequestMeta)(e,"incrementalCache")||await g.getIncrementalCache(e,A,P,B);null==G||G.resetRequestCache(),globalThis.__incrementalCache=G;let V={params:x,previewProps:P.preview,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts,useCacheTimeout:A.experimental.useCacheTimeout},cacheComponents:!!A.cacheComponents,validationLevel:A.experimental.instantInsights.validationLevel,supportsDynamicResponse:j,incrementalCache:G,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:A.cacheLife,staticPageGenerationTimeout:A.staticPageGenerationTimeout,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>g.onRequestError(e,t,r,n,S)},sharedContext:{buildId:_,deploymentId:C}},X=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),z=u.NextRequestAdapter.fromNodeNextRequest(X,(0,u.signalFromNodeResponse)(t)),Z=async({previousCacheEntry:a})=>{try{if(!B&&b&&N&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await g.handle(z,V);e.fetchMetrics=V.renderOpts.fetchMetrics;let s=V.renderOpts.pendingWaitUntil;s&&r.waitUntil&&(r.waitUntil(s),s=void 0);let i=V.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(X,W,n,s),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);i&&(t[R.NEXT_CACHE_TAGS_HEADER]=i),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,r=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=R.INFINITE_CACHE?!1!==a&&a>0?A.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await g.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:b})},!1,S),t}},J=async(n,i)=>{try{var o,l;let n=await g.handleResponse({req:e,nextConfig:A,cacheKey:U,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:P,isRoutePPREnabled:!1,isOnDemandRevalidate:b,revalidateOnlyGenerated:N,responseGenerator:Z,waitUntil:r.waitUntil,isMinimalMode:B});if(!I)return;if((null==n||null==(o=n.value)?void 0:o.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==n||null==(l=n.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});B||t.setHeader("x-nextjs-cache",b?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let s=(0,h.fromNodeOutgoingHttpHeaders)(n.value.headers);B&&I||s.delete(R.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||s.get("Cache-Control")||s.set("Cache-Control",(0,v.getCacheControlHeader)(n.cacheControl)),await (0,p.sendResponse)(X,W,new Response(n.value.body,{headers:s,status:n.value.status||200}));return}catch(t){if(t instanceof m.NoFallbackError||await g.onRequestError(e,t,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:b})},!1,S),I)throw t;await (0,p.sendResponse)(X,W,new Response(null,{status:500}));return}finally{(()=>{if(!n)return;let e=t.statusCode;n.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(n.setStatus({code:s.SpanStatusCode.ERROR}),n.setAttribute("error.type",e.toString()));let a=K.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==d.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route")||H,o=`${F} ${r}`;n.setAttributes({"next.route":r,"http.route":r,"next.span_name":o}),n.updateName(o),i&&i!==n&&(i.setAttribute("http.route",r),i.updateName(o))})()}};if($&&L)await J(L,void 0);else{let t=K.getActiveScopeSpan();await K.withPropagatedContext(e.headers,()=>K.trace(d.BaseServerSpan.handleRequest,{spanName:`${F} ${w}`,kind:s.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},e=>J(e,t)),void 0,!$)}}e.s(["handler",0,C,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:E})},"routeModule",0,g,"serverHooks",0,_,"workAsyncStorage",0,w,"workUnitAsyncStorage",0,E])},720275,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__1hing45._.js","server/chunks/_1hw1ujv._.js","server/chunks/node_modules_@ai-sdk_1o5ydf6._.js"].map(t=>e.l(t))).then(()=>t(656446)))},329280,e=>{e.v(t=>Promise.all(["server/chunks/[externals]_node_readline_1u65a-m._.js","server/chunks/node_modules_consola_dist_chunks_prompt_mjs_02axwqv._.js"].map(t=>e.l(t))).then(()=>t(781937)))}];
2
2
 
3
- //# sourceMappingURL=_201k0ah._.js.map
3
+ //# sourceMappingURL=_12-7atf._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[874274,e=>e.a(async(t,a)=>{try{var r=e.i(22676),n=e.i(91264),s=t([r]);[r]=s.then?(await s)():s;let i=(0,n.serverRoute)(async e=>{let t=(await e.text()).trim();t&&await (0,r.endCall)(t)});e.s(["POST",0,i]),a()}catch(e){a(e)}},!1),552041,e=>{"use strict";var t=e.i(747909),a=e.i(174017),r=e.i(996250),n=e.i(759756),s=e.i(561916),i=e.i(174677),o=e.i(869741),l=e.i(316795),u=e.i(487718),d=e.i(995169),c=e.i(47587),p=e.i(666012),h=e.i(570101),v=e.i(626937),R=e.i(10372),m=e.i(193695);e.i(52474);var f=e.i(600220);let g=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/thursday/call/end/route",pathname:"/api/thursday/call/end",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/thursday/call/end/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(874274),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:_,serverHooks:E}=g;async function C(e,t,r){r.requestMeta&&(0,n.setRequestMeta)(e,r.requestMeta),g.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/thursday/call/end/route";w=w.replace(/\/index$/,"")||"/";let _=await g.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!_)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:E,deploymentId:C,params:x,nextConfig:y,parsedUrl:A,isDraftMode:T,prerenderManifest:P,routerServerContext:S,isOnDemandRevalidate:b,revalidateOnlyGenerated:N,resolvedPathname:O,clientReferenceManifest:q,serverActionsManifest:k}=_,H=(0,o.normalizeAppPath)(w),I=!!(P.dynamicRoutes[H]||P.routes[O]),M=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,A,!1):t.end("This page could not be found"),null);if(I&&!T){let e=!!P.routes[O],t=P.dynamicRoutes[H];if(t&&!1===t.fallback&&!e){if(y.adapterPath)return await M();throw new m.NoFallbackError}}let U=null;!I||g.isDev||T||(U="/index"===(U=O)?"/":U);let j=!0===g.isDev||!I,D=I&&!j;k&&q&&(0,i.setManifestsSingleton)({page:w,clientReferenceManifest:q,serverActionsManifest:k});let F=e.method||"GET",K=(0,s.getTracer)(),L=K.getActiveScopeSpan(),$=!!(null==S?void 0:S.isWrappedByNextServer),B=!!(0,n.getRequestMeta)(e,"minimalMode"),G=(0,n.getRequestMeta)(e,"incrementalCache")||await g.getIncrementalCache(e,y,P,B);null==G||G.resetRequestCache(),globalThis.__incrementalCache=G;let V={params:x,previewProps:P.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:j,incrementalCache:G,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>g.onRequestError(e,t,r,n,S)},sharedContext:{buildId:E,deploymentId:C}},X=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),z=u.NextRequestAdapter.fromNodeNextRequest(X,(0,u.signalFromNodeResponse)(t)),Z=async({previousCacheEntry:a})=>{try{if(!B&&b&&N&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await g.handle(z,V);e.fetchMetrics=V.renderOpts.fetchMetrics;let s=V.renderOpts.pendingWaitUntil;s&&r.waitUntil&&(r.waitUntil(s),s=void 0);let i=V.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(X,W,n,s),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);i&&(t[R.NEXT_CACHE_TAGS_HEADER]=i),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,r=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=R.INFINITE_CACHE?!1!==a&&a>0?y.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await g.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:b})},!1,S),t}},J=async(n,i)=>{try{var o,l;let n=await g.handleResponse({req:e,nextConfig:y,cacheKey:U,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:P,isRoutePPREnabled:!1,isOnDemandRevalidate:b,revalidateOnlyGenerated:N,responseGenerator:Z,waitUntil:r.waitUntil,isMinimalMode:B});if(!I)return;if((null==n||null==(o=n.value)?void 0:o.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==n||null==(l=n.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});B||t.setHeader("x-nextjs-cache",b?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let s=(0,h.fromNodeOutgoingHttpHeaders)(n.value.headers);B&&I||s.delete(R.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||s.get("Cache-Control")||s.set("Cache-Control",(0,v.getCacheControlHeader)(n.cacheControl)),await (0,p.sendResponse)(X,W,new Response(n.value.body,{headers:s,status:n.value.status||200}));return}catch(t){if(t instanceof m.NoFallbackError||await g.onRequestError(e,t,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:b})},!1,S),I)throw t;await (0,p.sendResponse)(X,W,new Response(null,{status:500}));return}finally{(()=>{if(!n)return;let e=t.statusCode;n.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(n.setStatus({code:s.SpanStatusCode.ERROR}),n.setAttribute("error.type",e.toString()));let a=K.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==d.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route")||H,o=`${F} ${r}`;n.setAttributes({"next.route":r,"http.route":r,"next.span_name":o}),n.updateName(o),i&&i!==n&&(i.setAttribute("http.route",r),i.updateName(o))})()}};if($&&L)await J(L,void 0);else{let t=K.getActiveScopeSpan();await K.withPropagatedContext(e.headers,()=>K.trace(d.BaseServerSpan.handleRequest,{spanName:`${F} ${w}`,kind:s.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},e=>J(e,t)),void 0,!$)}}e.s(["handler",0,C,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:_})},"routeModule",0,g,"serverHooks",0,E,"workAsyncStorage",0,w,"workUnitAsyncStorage",0,_])},720275,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__0itmdqy._.js","server/chunks/_1hw1ujv._.js","server/chunks/node_modules_@ai-sdk_1o5ydf6._.js"].map(t=>e.l(t))).then(()=>t(656446)))},329280,e=>{e.v(t=>Promise.all(["server/chunks/[externals]_node_readline_1u65a-m._.js","server/chunks/node_modules_consola_dist_chunks_prompt_mjs_02axwqv._.js"].map(t=>e.l(t))).then(()=>t(781937)))}];
1
+ module.exports=[874274,e=>e.a(async(t,a)=>{try{var r=e.i(22676),n=e.i(91264),s=t([r]);[r]=s.then?(await s)():s;let i=(0,n.serverRoute)(async e=>{let t=(await e.text()).trim();t&&await (0,r.endCall)(t)});e.s(["POST",0,i]),a()}catch(e){a(e)}},!1),552041,e=>{"use strict";var t=e.i(747909),a=e.i(174017),r=e.i(996250),n=e.i(759756),s=e.i(561916),i=e.i(174677),o=e.i(869741),l=e.i(316795),u=e.i(487718),d=e.i(995169),c=e.i(47587),p=e.i(666012),h=e.i(570101),v=e.i(626937),R=e.i(10372),m=e.i(193695);e.i(52474);var f=e.i(600220);let g=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/thursday/call/end/route",pathname:"/api/thursday/call/end",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/thursday/call/end/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(874274),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:_,serverHooks:E}=g;async function C(e,t,r){r.requestMeta&&(0,n.setRequestMeta)(e,r.requestMeta),g.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/thursday/call/end/route";w=w.replace(/\/index$/,"")||"/";let _=await g.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!_)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:E,deploymentId:C,params:x,nextConfig:y,parsedUrl:A,isDraftMode:T,prerenderManifest:P,routerServerContext:S,isOnDemandRevalidate:b,revalidateOnlyGenerated:N,resolvedPathname:O,clientReferenceManifest:k,serverActionsManifest:q}=_,H=(0,o.normalizeAppPath)(w),I=!!(P.dynamicRoutes[H]||P.routes[O]),M=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,A,!1):t.end("This page could not be found"),null);if(I&&!T){let e=!!P.routes[O],t=P.dynamicRoutes[H];if(t&&!1===t.fallback&&!e){if(y.adapterPath)return await M();throw new m.NoFallbackError}}let U=null;!I||g.isDev||T||(U="/index"===(U=O)?"/":U);let j=!0===g.isDev||!I,D=I&&!j;q&&k&&(0,i.setManifestsSingleton)({page:w,clientReferenceManifest:k,serverActionsManifest:q});let F=e.method||"GET",K=(0,s.getTracer)(),L=K.getActiveScopeSpan(),$=!!(null==S?void 0:S.isWrappedByNextServer),B=!!(0,n.getRequestMeta)(e,"minimalMode"),G=(0,n.getRequestMeta)(e,"incrementalCache")||await g.getIncrementalCache(e,y,P,B);null==G||G.resetRequestCache(),globalThis.__incrementalCache=G;let V={params:x,previewProps:P.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:j,incrementalCache:G,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>g.onRequestError(e,t,r,n,S)},sharedContext:{buildId:E,deploymentId:C}},X=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),z=u.NextRequestAdapter.fromNodeNextRequest(X,(0,u.signalFromNodeResponse)(t)),Z=async({previousCacheEntry:a})=>{try{if(!B&&b&&N&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await g.handle(z,V);e.fetchMetrics=V.renderOpts.fetchMetrics;let s=V.renderOpts.pendingWaitUntil;s&&r.waitUntil&&(r.waitUntil(s),s=void 0);let i=V.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(X,W,n,s),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);i&&(t[R.NEXT_CACHE_TAGS_HEADER]=i),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,r=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=R.INFINITE_CACHE?!1!==a&&a>0?y.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await g.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:b})},!1,S),t}},J=async(n,i)=>{try{var o,l;let n=await g.handleResponse({req:e,nextConfig:y,cacheKey:U,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:P,isRoutePPREnabled:!1,isOnDemandRevalidate:b,revalidateOnlyGenerated:N,responseGenerator:Z,waitUntil:r.waitUntil,isMinimalMode:B});if(!I)return;if((null==n||null==(o=n.value)?void 0:o.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==n||null==(l=n.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});B||t.setHeader("x-nextjs-cache",b?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let s=(0,h.fromNodeOutgoingHttpHeaders)(n.value.headers);B&&I||s.delete(R.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||s.get("Cache-Control")||s.set("Cache-Control",(0,v.getCacheControlHeader)(n.cacheControl)),await (0,p.sendResponse)(X,W,new Response(n.value.body,{headers:s,status:n.value.status||200}));return}catch(t){if(t instanceof m.NoFallbackError||await g.onRequestError(e,t,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:b})},!1,S),I)throw t;await (0,p.sendResponse)(X,W,new Response(null,{status:500}));return}finally{(()=>{if(!n)return;let e=t.statusCode;n.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(n.setStatus({code:s.SpanStatusCode.ERROR}),n.setAttribute("error.type",e.toString()));let a=K.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==d.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route")||H,o=`${F} ${r}`;n.setAttributes({"next.route":r,"http.route":r,"next.span_name":o}),n.updateName(o),i&&i!==n&&(i.setAttribute("http.route",r),i.updateName(o))})()}};if($&&L)await J(L,void 0);else{let t=K.getActiveScopeSpan();await K.withPropagatedContext(e.headers,()=>K.trace(d.BaseServerSpan.handleRequest,{spanName:`${F} ${w}`,kind:s.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},e=>J(e,t)),void 0,!$)}}e.s(["handler",0,C,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:_})},"routeModule",0,g,"serverHooks",0,E,"workAsyncStorage",0,w,"workUnitAsyncStorage",0,_])},720275,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__0l563r8._.js","server/chunks/_1hw1ujv._.js","server/chunks/node_modules_@ai-sdk_1o5ydf6._.js"].map(t=>e.l(t))).then(()=>t(656446)))},329280,e=>{e.v(t=>Promise.all(["server/chunks/[externals]_node_readline_1u65a-m._.js","server/chunks/node_modules_consola_dist_chunks_prompt_mjs_02axwqv._.js"].map(t=>e.l(t))).then(()=>t(781937)))}];
2
2
 
3
- //# sourceMappingURL=_02mn8d7._.js.map
3
+ //# sourceMappingURL=_124q1p2._.js.map