thursday-agent 0.4.0 → 0.5.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 (199) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +3 -3
  3. package/.next/prerender-manifest.json +3 -3
  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.html +1 -1
  12. package/.next/server/app/_not-found.rsc +1 -1
  13. package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  14. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  15. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  16. package/.next/server/app/api/artifact/route.js +4 -4
  17. package/.next/server/app/api/artifact/route.js.nft.json +1 -1
  18. package/.next/server/app/api/bot/memory/files/route.js +3 -3
  19. package/.next/server/app/api/bot/memory/files/route.js.nft.json +1 -1
  20. package/.next/server/app/api/bot/memory/route.js.nft.json +1 -1
  21. package/.next/server/app/api/bot/route.js.nft.json +1 -1
  22. package/.next/server/app/api/bot/task/[id]/route.js +8 -8
  23. package/.next/server/app/api/bot/task/[id]/route.js.nft.json +1 -1
  24. package/.next/server/app/api/bot/task/route.js +6 -6
  25. package/.next/server/app/api/bot/task/route.js.nft.json +1 -1
  26. package/.next/server/app/api/config/route.js.nft.json +1 -1
  27. package/.next/server/app/api/events/route.js.nft.json +1 -1
  28. package/.next/server/app/api/file/[...path]/route.js +4 -4
  29. package/.next/server/app/api/file/[...path]/route.js.nft.json +1 -1
  30. package/.next/server/app/api/llm-model/catalog/route.js +2 -2
  31. package/.next/server/app/api/llm-model/catalog/route.js.nft.json +1 -1
  32. package/.next/server/app/api/llm-model/credits/route.js +2 -2
  33. package/.next/server/app/api/llm-model/credits/route.js.nft.json +1 -1
  34. package/.next/server/app/api/llm-model/route.js +2 -2
  35. package/.next/server/app/api/llm-model/route.js.nft.json +1 -1
  36. package/.next/server/app/api/llm-model/subscription/route.js +2 -2
  37. package/.next/server/app/api/llm-model/subscription/route.js.nft.json +1 -1
  38. package/.next/server/app/api/mcp/[name]/route.js.nft.json +1 -1
  39. package/.next/server/app/api/mcp/oauth/callback/route.js.nft.json +1 -1
  40. package/.next/server/app/api/mcp/route.js.nft.json +1 -1
  41. package/.next/server/app/api/mcp/tools/route.js.nft.json +1 -1
  42. package/.next/server/app/api/memory/edit/route.js +11 -11
  43. package/.next/server/app/api/memory/edit/route.js.nft.json +1 -1
  44. package/.next/server/app/api/memory/route.js.nft.json +1 -1
  45. package/.next/server/app/api/skills/[source]/[name]/route.js.nft.json +1 -1
  46. package/.next/server/app/api/skills/route.js.nft.json +1 -1
  47. package/.next/server/app/api/thursday/call/route.js +6 -6
  48. package/.next/server/app/api/thursday/call/route.js.nft.json +1 -1
  49. package/.next/server/app/api/thursday/skills/route.js +6 -6
  50. package/.next/server/app/api/thursday/skills/route.js.nft.json +1 -1
  51. package/.next/server/app/api/thursday/tool-call/route.js +8 -8
  52. package/.next/server/app/api/thursday/tool-call/route.js.nft.json +1 -1
  53. package/.next/server/app/api/workspace/route.js +3 -2
  54. package/.next/server/app/api/workspace/route.js.nft.json +1 -1
  55. package/.next/server/app/artifact/[...path]/page/server-reference-manifest.json +1 -1
  56. package/.next/server/app/artifact/[...path]/page.js +2 -2
  57. package/.next/server/app/artifact/[...path]/page.js.nft.json +1 -1
  58. package/.next/server/app/artifact/[...path]/page_client-reference-manifest.js +1 -1
  59. package/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  60. package/.next/server/app/page/server-reference-manifest.json +40 -40
  61. package/.next/server/app/page.js +1 -1
  62. package/.next/server/app/page.js.nft.json +1 -1
  63. package/.next/server/app/page_client-reference-manifest.js +1 -1
  64. package/.next/server/chunks/[root-of-the-server]__026u77e._.js +5 -0
  65. package/.next/server/chunks/{[root-of-the-server]__02xjoto._.js → [root-of-the-server]__050zri4._.js} +1 -1
  66. package/.next/server/chunks/[root-of-the-server]__0bg9710._.js +3 -0
  67. package/.next/server/chunks/[root-of-the-server]__0in-d5s._.js +3 -0
  68. package/.next/server/chunks/[root-of-the-server]__0pa9k-f._.js +8 -0
  69. package/.next/server/chunks/[root-of-the-server]__0qi_m0e._.js +8 -0
  70. package/.next/server/chunks/[root-of-the-server]__0tq0m_k._.js +3 -0
  71. package/.next/server/chunks/[root-of-the-server]__0xep6j_._.js +3 -0
  72. package/.next/server/chunks/[root-of-the-server]__144l7qt._.js +8 -0
  73. package/.next/server/chunks/[root-of-the-server]__1anc1p9._.js +1 -1
  74. package/.next/server/chunks/[root-of-the-server]__1jg8t86._.js +8 -0
  75. package/.next/server/chunks/{[root-of-the-server]__12cabg9._.js → [root-of-the-server]__1lldzy9._.js} +1 -1
  76. package/.next/server/chunks/{[root-of-the-server]__01dkp4a._.js → [root-of-the-server]__1peqvsi._.js} +1 -1
  77. package/.next/server/chunks/[root-of-the-server]__1w8gm5h._.js +10 -0
  78. package/.next/server/chunks/[root-of-the-server]__1xt39nn._.js +8 -0
  79. package/.next/server/chunks/[root-of-the-server]__1zb8mfo._.js +8 -0
  80. package/.next/server/chunks/_0-fjql4._.js +11 -6
  81. package/.next/server/chunks/_00xh_q0._.js +1 -1
  82. package/.next/server/chunks/{_1_9mjx-._.js → _091bi8d._.js} +1 -1
  83. package/.next/server/chunks/_0fzqt2y._.js +29 -21
  84. package/.next/server/chunks/{_0u4aiy2._.js → _0lr92vd._.js} +1 -1
  85. package/.next/server/chunks/_0mecv0f._.js +11 -6
  86. package/.next/server/chunks/{_0sbynis._.js → _0si7xzn._.js} +1 -1
  87. package/.next/server/chunks/_1230wbx._.js +5 -5
  88. package/.next/server/chunks/{_0obojvv._.js → _18d7-5p._.js} +1 -1
  89. package/.next/server/chunks/_1c78vw5._.js +33 -25
  90. package/.next/server/chunks/_1d0j961._.js +2 -2
  91. package/.next/server/chunks/_1krd9rf._.js +1 -1
  92. package/.next/server/chunks/{_03a0897._.js → _1zkfbaa._.js} +1 -1
  93. package/.next/server/chunks/features_1qf3cei._.js +6 -1
  94. package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_0r28-sm._.js → node_modules_consola_dist_chunks_prompt_mjs_17k8irj._.js} +1 -1
  95. package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_1xoq2rl._.js → node_modules_consola_dist_chunks_prompt_mjs_1jidylq._.js} +1 -1
  96. package/.next/server/chunks/ssr/[root-of-the-server]__0-nob52._.js +4 -0
  97. package/.next/server/chunks/ssr/{[root-of-the-server]__202p40z._.js → [root-of-the-server]__0s4wb56._.js} +1 -1
  98. package/.next/server/chunks/ssr/{[root-of-the-server]__0xsog8n._.js → [root-of-the-server]__0sd3izg._.js} +2 -2
  99. package/.next/server/chunks/ssr/{[root-of-the-server]__1gtlw6v._.js → [root-of-the-server]__1-13tcn._.js} +2 -2
  100. package/.next/server/chunks/ssr/[root-of-the-server]__10-dz5o._.js +1 -1
  101. package/.next/server/chunks/ssr/{[root-of-the-server]__0s9l2sv._.js → [root-of-the-server]__1zidpfl._.js} +1 -1
  102. package/.next/server/chunks/ssr/_001_ms1._.js +6 -1
  103. package/.next/server/chunks/ssr/{_0gb4gmf._.js → _04z2c7b._.js} +2 -2
  104. package/.next/server/chunks/ssr/{_1nnsk7z._.js → _06tssji._.js} +2 -2
  105. package/.next/server/chunks/ssr/_0fk4c7d._.js +3 -0
  106. package/.next/server/chunks/ssr/_0i_6q1w._.js +1 -1
  107. package/.next/server/chunks/ssr/{_1h0rw11._.js → _0m2lsd1._.js} +2 -2
  108. package/.next/server/chunks/ssr/_0mggveb._.js +3 -0
  109. package/.next/server/chunks/ssr/{_1jhd09t._.js → _0nbpc_8._.js} +2 -2
  110. package/.next/server/chunks/ssr/{_1fojd41._.js → _0rzucul._.js} +3 -3
  111. package/.next/server/chunks/ssr/_0s99bgb._.js +1 -1
  112. package/.next/server/chunks/ssr/_1-teee5._.js +4 -4
  113. package/.next/server/chunks/ssr/{_0fz4mf_._.js → _11j92tu._.js} +2 -2
  114. package/.next/server/chunks/ssr/{_1b2mjwr._.js → _1ebxla1._.js} +2 -2
  115. package/.next/server/chunks/ssr/{_1gd8q8l._.js → _1jdgjv9._.js} +2 -2
  116. package/.next/server/chunks/ssr/_1lz_cq2._.js +19 -11
  117. package/.next/server/chunks/ssr/{_0ilna52._.js → _1nj4niv._.js} +2 -2
  118. package/.next/server/chunks/ssr/_1ovmc9s._.js +3 -0
  119. package/.next/server/chunks/ssr/features_config_components_config-setting_tsx_0xfwqdg._.js +1 -1
  120. package/.next/server/chunks/ssr/features_connectors_components_mcp-setting_tsx_0jmbgvp._.js +1 -1
  121. package/.next/server/chunks/ssr/{node_modules_0pvd7q-._.js → node_modules_0-dr_o7._.js} +1 -1
  122. package/.next/server/chunks/ssr/{node_modules_1_pc9kq._.js → node_modules_04sksn9._.js} +1 -1
  123. package/.next/server/chunks/ssr/{node_modules_1vh5ntv._.js → node_modules_05-n6dz._.js} +1 -1
  124. package/.next/server/chunks/ssr/{node_modules_0b__sgl._.js → node_modules_056qgf-._.js} +1 -1
  125. package/.next/server/chunks/ssr/{node_modules_0g7fzk3._.js → node_modules_07dsgkx._.js} +1 -1
  126. package/.next/server/chunks/ssr/{node_modules_04jf_m8._.js → node_modules_0bvopy2._.js} +1 -1
  127. package/.next/server/chunks/ssr/{node_modules_0arus10._.js → node_modules_0fkeku3._.js} +1 -1
  128. package/.next/server/chunks/ssr/{node_modules_14om4ar._.js → node_modules_0ifp389._.js} +1 -1
  129. package/.next/server/chunks/ssr/{node_modules_0cxaxk9._.js → node_modules_0iur59s._.js} +1 -1
  130. package/.next/server/chunks/ssr/{node_modules_1aaxuef._.js → node_modules_0m383r2._.js} +1 -1
  131. package/.next/server/chunks/ssr/{node_modules_1qpjvy5._.js → node_modules_0u9da1h._.js} +1 -1
  132. package/.next/server/chunks/ssr/{node_modules_1cx_ql6._.js → node_modules_0zeg3x_._.js} +1 -1
  133. package/.next/server/chunks/ssr/{node_modules_0_-_a--._.js → node_modules_1-y7nni._.js} +1 -1
  134. package/.next/server/chunks/ssr/{node_modules_08dhkiq._.js → node_modules_16mkxuo._.js} +1 -1
  135. package/.next/server/chunks/ssr/{node_modules_198nmll._.js → node_modules_1a0kmjl._.js} +1 -1
  136. package/.next/server/chunks/ssr/{node_modules_1efrqxi._.js → node_modules_1chvq5f._.js} +1 -1
  137. package/.next/server/chunks/ssr/{node_modules_0yugy6m._.js → node_modules_1j8j4pt._.js} +1 -1
  138. package/.next/server/chunks/ssr/{node_modules_09q35v_._.js → node_modules_1k6n600._.js} +1 -1
  139. package/.next/server/chunks/ssr/{node_modules_1cz2hle._.js → node_modules_1k7z2j6._.js} +1 -1
  140. package/.next/server/chunks/ssr/{node_modules_1gdh31p._.js → node_modules_1k8j8n0._.js} +1 -1
  141. package/.next/server/chunks/ssr/{node_modules_1eg7m6c._.js → node_modules_1lz0oxc._.js} +1 -1
  142. package/.next/server/chunks/ssr/{node_modules_0940ns5._.js → node_modules_1t77e4n._.js} +1 -1
  143. package/.next/server/chunks/ssr/{node_modules_00etblx._.js → node_modules_1uyk91w._.js} +1 -1
  144. package/.next/server/chunks/ssr/{node_modules_0had7xd._.js → node_modules_1x0ztf4._.js} +1 -1
  145. package/.next/server/chunks/ssr/{node_modules_14q6g4n._.js → node_modules_1y79i83._.js} +1 -1
  146. package/.next/server/chunks/ssr/{node_modules_1hpopmo._.js → node_modules_20c28js._.js} +1 -1
  147. package/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_1b748ic._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0bkwd0u._.js} +1 -1
  148. package/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_1z4hm5e._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0p9a9su._.js} +1 -1
  149. package/.next/server/chunks/ssr/{node_modules_@vercel_oidc_dist_06mk8id._.js → node_modules_@vercel_oidc_dist_1o553h-._.js} +1 -1
  150. package/.next/server/middleware-build-manifest.js +3 -3
  151. package/.next/server/pages/404.html +1 -1
  152. package/.next/server/pages/500.html +1 -1
  153. package/.next/server/server-reference-manifest.js +1 -1
  154. package/.next/server/server-reference-manifest.json +41 -41
  155. package/.next/static/chunks/{39j0fvpybzabl.js → 0n3jle9kbqfr2.js} +2 -2
  156. package/.next/static/chunks/{0fl3gwe4-l6tz.js → 11r2yp_yh9_qn.js} +1 -1
  157. package/.next/static/chunks/{1jd09sxcjddu1.js → 126fj4pga_72k.js} +1 -1
  158. package/.next/static/chunks/{0gnqdjn2lvdad.js → 159udiexf6dom.js} +1 -1
  159. package/.next/static/chunks/{08qe4as2q428z.js → 18gi7o2ibrgh8.js} +1 -1
  160. package/.next/static/chunks/{2u7xt6mxg44lf.js → 1q9z1tohil7xn.js} +1 -1
  161. package/.next/static/chunks/{3zmcsnuo25zvq.js → 1sjgfets224re.js} +1 -1
  162. package/.next/static/chunks/{0wcprt5ot5she.js → 1wszsr83t01gh.js} +1 -1
  163. package/.next/static/chunks/{0w52rrrmuj9r9.js → 2szintyibu0s5.js} +1 -1
  164. package/.next/static/chunks/{0hwap1-p0m5sa.js → 3-b6b7entqazs.js} +1 -1
  165. package/.next/static/chunks/{17p6tk6k88dq6.js → 3dmbhsv2u_8kj.js} +1 -1
  166. package/.next/static/chunks/{214ya3n5gxeih.js → 3i0a5px-oufgc.js} +1 -1
  167. package/.next/static/chunks/{1w73ece_6bheu.js → 3wexk9qo8zuj3.js} +3 -3
  168. package/.next/static/chunks/3xre8bu_pk1p_.js +1 -0
  169. package/.next/static/chunks/{3woj-xd7ki5_i.js → 3zv6t3i77xhr_.js} +1 -1
  170. package/.next/static/chunks/{3akmqm77muj4-.js → 408ueu4hfvcg7.js} +1 -1
  171. package/.next/static/chunks/{15m575979un5f.js → 435atsnhs7ksu.js} +6 -6
  172. package/bin/thursday.mjs +0 -0
  173. package/features/ai/prompts/bot.prompt.ts +1 -1
  174. package/features/ai/tools/bot.tool.ts +3 -3
  175. package/features/ai/tools/skills.tool.ts +25 -8
  176. package/features/bot/bot.run.ts +184 -73
  177. package/features/bot/bot.runner.ts +48 -23
  178. package/features/bot/task.query.ts +107 -4
  179. package/features/bot/task.store.ts +3 -5
  180. package/features/workspace/workspace.ts +27 -20
  181. package/package.json +1 -1
  182. package/skills/browser/SKILL.md +6 -5
  183. package/.next/server/chunks/[root-of-the-server]__04q--0f._.js +0 -8
  184. package/.next/server/chunks/[root-of-the-server]__0bl-e63._.js +0 -3
  185. package/.next/server/chunks/[root-of-the-server]__0jq4ohy._.js +0 -8
  186. package/.next/server/chunks/[root-of-the-server]__0ls6_8y._.js +0 -8
  187. package/.next/server/chunks/[root-of-the-server]__1339jnv._.js +0 -8
  188. package/.next/server/chunks/[root-of-the-server]__18_teo8._.js +0 -8
  189. package/.next/server/chunks/[root-of-the-server]__1ccon1w._.js +0 -10
  190. package/.next/server/chunks/[root-of-the-server]__1wa1k7r._.js +0 -8
  191. package/.next/server/chunks/_1zjrdag._.js +0 -3
  192. package/.next/server/chunks/ssr/[root-of-the-server]__1ox7hbk._.js +0 -4
  193. package/.next/server/chunks/ssr/_0n3toaw._.js +0 -3
  194. package/.next/server/chunks/ssr/_1-_etts._.js +0 -3
  195. package/.next/server/chunks/ssr/_1f-dg-6._.js +0 -3
  196. package/.next/static/chunks/00rd4-v8r7axp.js +0 -1
  197. /package/.next/static/{kaTO0UHqF1bMnWgCDik2f → G6-gNoyGDEcgAsq-L4PE1}/_buildManifest.js +0 -0
  198. /package/.next/static/{kaTO0UHqF1bMnWgCDik2f → G6-gNoyGDEcgAsq-L4PE1}/_clientMiddlewareManifest.js +0 -0
  199. /package/.next/static/{kaTO0UHqF1bMnWgCDik2f → G6-gNoyGDEcgAsq-L4PE1}/_ssgManifest.js +0 -0
@@ -1,8 +0,0 @@
1
- module.exports=[874533,(e,t,i)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},912714,(e,t,i)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},629668,e=>{"use strict";var t=e.i(687388);let i=e=>`text/${e}; charset=utf-8`,n={md:{kind:"markdown",mime:i("markdown")},markdown:{kind:"markdown",mime:i("markdown")},csv:{kind:"csv",mime:i("csv")},json:{kind:"json",mime:"application/json; charset=utf-8"},txt:{kind:"text",mime:i("plain")},log:{kind:"text",mime:i("plain")},html:{kind:"frame",mime:i("html")},htm:{kind:"frame",mime:i("html")},pdf:{kind:"frame",mime:"application/pdf"},png:{kind:"image",mime:"image/png"},jpg:{kind:"image",mime:"image/jpeg"},jpeg:{kind:"image",mime:"image/jpeg"},gif:{kind:"image",mime:"image/gif"},webp:{kind:"image",mime:"image/webp"},svg:{kind:"image",mime:"image/svg+xml"},mp3:{kind:"audio",mime:"audio/mpeg"},wav:{kind:"audio",mime:"audio/wav"},mp4:{kind:"video",mime:"video/mp4"},webm:{kind:"video",mime:"video/webm"},css:{kind:"none",mime:i("css")},js:{kind:"none",mime:i("javascript")},woff2:{kind:"none",mime:"font/woff2"}},a=e=>e.split(".").pop()?.toLowerCase()??"",r=new Set(["node_modules","__pycache__"]),o=Object.entries(n).filter(([,e])=>"none"!==e.kind).map(([e])=>e),s=RegExp(String.raw`(?<![\p{L}\p{N}_/:@%-])(?:[\p{L}\p{N}_.@%-]+/)*[\p{L}\p{N}_@%-]+(?:\.[\p{L}\p{N}_-]+)*\.(?:${o.join("|")})\b`,"giu"),l=`${t.PATHS.workspace}/`;e.s(["isListedFolder",0,e=>!e.startsWith(".")&&!r.has(e),"mimeOf",0,e=>n[a(e)]?.mime??"application/octet-stream","pathsIn",0,function(e){let t=e.replace(/\b[a-z][\w+.-]*:\/\/\S+/gi," "),i=new Set;for(let e of t.match(s)??[]){let t=function(e){let t,i,n=(i=(t=e.trim()).indexOf(l))>=0?t.slice(i+l.length)||null:t.startsWith("/")||/^[A-Za-z]:/.test(t)||t.split("/").includes("..")?null:t||null;if(!n)return null;let[a,...r]=n.split("/");return r.length&&a.includes(".")?null:n}(e);t&&i.add(t)}return[...i].slice(0,6)},"viewKindOf",0,e=>n[a(e)]?.kind??"none"])},786025,e=>{"use strict";var t=e.i(912714),i=e.i(750227),n=e.i(687388);e.i(640911);var a=e.i(874533),r=n;let o=new Set(["node_modules",".git",".next","dist","build",".venv","__pycache__",".turbo","coverage"]);async function*s(e){let n;try{n=await (0,t.readdir)(e,{withFileTypes:!0})}catch{return}for(let t of n){if(o.has(t.name)||t.name.startsWith("."))continue;let n=(0,i.join)(e,t.name);t.isDirectory()?yield*s(n):t.isFile()&&(yield n)}}async function l(e,n,a,r){if(e.length<=r.max)return e;let o=(0,i.join)(a,r.dir),s=(0,i.join)(o,`${new Date().toISOString().replace(/[:.]/g,"-")}-${n.replace(/[^a-zA-Z0-9_-]+/g,"_")}.txt`),l=s;try{await (0,t.mkdir)(o,{recursive:!0}),await (0,t.writeFile)(s,e),l=(0,i.relative)(a,s)||s}catch{l="(could not be written to a file)"}let c=(e.match(/\n/g)?.length??0)+1;return`${e.slice(0,r.head).trimEnd()}
2
-
3
- [${n} cut at ${r.max.toLocaleString("en")} chars — the whole thing (${c} lines) is at ${l}. Read the part you need with \`sed -n\`.]
4
-
5
- ${e.slice(-r.tail).trimStart()}`}let c=n.APP_DIR,d=(0,i.join)(n.DATA_DIR,n.PATHS.workspace),m=(process.env.THURSDAY_TOOL_PATH?.split(":")??[(0,i.join)(c,"node_modules",".bin")]).filter(Boolean),u=(0,i.join)(d,n.PATHS.artifacts),p=[n.PATHS.artifacts,n.PATHS.projects,n.PATHS.scratch,n.PATHS.bots],w=new Set([...p,".agents"]),f=(e,t)=>t===e||t.startsWith(e+i.sep),h=e=>(0,t.realpath)(e).catch(()=>null);async function g(e){let t=await h(d)??d,n=(0,i.resolve)(d,e);if(!f(d,n))return null;let a=n,r=await h(a);for(;null===r&&(0,i.dirname)(a)!==a;)a=(0,i.dirname)(a),r=await h(a);if(null===r)return null;let o=(0,i.relative)(a,n),s=o?(0,i.join)(r,o):r;return f(t,s)?s:null}let k=e=>`${n.PATHS.bots}/${e.replace(/[^\p{L}\p{N}_-]+/gu,"-")}`;async function S(e){let n=k(e);return await (0,t.mkdir)((0,i.join)(d,n),{recursive:!0}),n}async function T(e,a){let r,o=(r=a.trim().toLowerCase().replace(/[^\p{L}\p{N}]+/gu,"-").replace(/^-+|-+$/g,"").slice(0,40)||"job",`${n.PATHS.scratch}/${r}-${e.slice(0,6)}`);return await (0,t.mkdir)((0,i.join)(d,o),{recursive:!0}),o}let v=e=>e?{PLAYWRIGHT_CLI_SESSION:`task-${e}`,PLAYWRIGHT_MCP_VIEWPORT_SIZE:n.BROWSER_VIEWPORT}:{},y={runtimes:["node","python3","uv","bun","deno"],managers:["pnpm","npm","yarn"]};async function _(e){let t=Object.values(y).flat(),{stdout:i}=await e.exec(t.map(e=>`command -v ${e} >/dev/null 2>&1 && printf '%s ' ${e}`).join("; "),{timeoutMs:1e4}),n=new Set(i.trim().split(/\s+/).filter(Boolean)),a=e=>({found:e.filter(e=>n.has(e)),missing:e.filter(e=>!n.has(e))});return{runtimes:a(y.runtimes),managers:a(y.managers),browser:null}}async function A(){await P(),await b()}async function j(e){let t,i=await R(),n=v(e),a=await i.exec("playwright-cli list --json",{env:n,timeoutMs:15e3}).catch(()=>null);try{let{browsers:e}=JSON.parse(a?.stdout??"");t=e?.find(e=>e.name===n.PLAYWRIGHT_CLI_SESSION)}catch{}t?.headed!==!1||t.attached||await i.exec("playwright-cli close",{env:n,timeoutMs:15e3}).catch(()=>{}),await A()}async function $(e){let t=await R();await t.exec("playwright-cli close",{env:v(e),timeoutMs:15e3}).catch(()=>{}),await A()}let b=()=>E(n.PATHS.output),P=()=>E(".playwright-cli");async function E(e){let a=(0,i.join)(d,e),r=await (0,t.readdir)(a,{withFileTypes:!0}).catch(()=>[]),o=Date.now()-n.WORKSPACE_KEEP.forMs;for(let e of r){if(!e.isFile())continue;let n=(0,i.join)(a,e.name),r=await (0,t.stat)(n).catch(()=>null);r&&r.mtimeMs<o&&await (0,t.unlink)(n).catch(()=>{})}}let x={"pnpm-workspace.yaml":"packages:\n - '**'\n",".npmrc":"recursive-install=false\n"};async function R(){for(let e of p)await (0,t.mkdir)((0,i.join)(d,e),{recursive:!0});for(let[e,n]of Object.entries(x))await (0,t.writeFile)((0,i.join)(d,e),n,{flag:"wx"}).catch(()=>{});return(({workingDirectory:e,spill:n,toolPath:o})=>{let c=(0,i.resolve)(e),d=(o??[]).filter(Boolean).join(":"),m=e=>e.startsWith("/")||/^[A-Za-z]:/.test(e)?e:(0,i.resolve)(c,e);return{cwd:c,resolve:m,readFile:(e,i)=>(0,t.readFile)(m(e),i),async writeFile(e,n){let a=m(e);await (0,t.mkdir)((0,i.join)(a,".."),{recursive:!0}),await (0,t.writeFile)(a,n)},readdir:(e,i)=>(0,t.readdir)(m(e),i),fold:(e,t="output")=>l(e,t,c,n),async glob(e,{path:t=".",limit:n=200}={}){let a=m(t),r=RegExp("^"+e.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*\*\//g,"(?:.*/)?").replace(/\*/g,"[^/]*").replace(/\?/g,"[^/]")+"$"),o=[];for await(let e of s(a)){let t=(0,i.relative)(a,e).split(i.sep).join("/");if((r.test(t)||r.test(e))&&o.push(e),o.length>=n)break}return o},exec:(e,{cwd:t,timeoutMs:i=r.EXEC_TIMEOUT_MS,signal:o,env:s}={})=>new Promise(u=>{let p,w,f=function(){let e={...process.env};for(let t of Object.keys(e))/KEY|TOKEN|SECRET|PASSWORD|CREDENTIAL|_AUTH/i.test(t)&&delete e[t];return e.TERM="dumb",e.PAGER="cat",e.GIT_PAGER="cat",e}();d&&(f.PATH=`${f.PATH??""}:${d}`);let h=(0,a.spawn)(e,{shell:!0,cwd:t?m(t):c,env:{...f,...s},detached:!0}),g="",k="";h.stdout?.on("data",e=>g+=e),h.stderr?.on("data",e=>k+=e);let S=e=>{try{h.pid&&process.kill(-h.pid,e)}catch{h.kill(e)}},T=!1,v=async e=>{T||(T=!0,clearTimeout(_),clearTimeout(p),clearTimeout(w),o?.removeEventListener("abort",A),u({...e,stdout:await l(e.stdout,"stdout",c,n),stderr:await l(e.stderr,"stderr",c,n)}))},y=e=>{p||T||(k+=`
6
- [${e}]`,S("SIGTERM"),p=setTimeout(()=>{k+="\n[Killed: it did not exit on SIGTERM]",S("SIGKILL"),w=setTimeout(()=>{h.stdout?.destroy(),h.stderr?.destroy(),v({stdout:g,stderr:k,exitCode:-1})},1e3)},r.EXEC_KILL_GRACE_MS))},_=setTimeout(()=>y(`Timed out after ${i}ms`),i),A=()=>y("Aborted");o?.aborted?A():o?.addEventListener("abort",A,{once:!0}),h.on("close",e=>v({stdout:g,stderr:k,exitCode:e??-1})),h.on("error",e=>v({stdout:g,stderr:k+String(e),exitCode:-1}))})}})({workingDirectory:d,spill:{dir:n.PATHS.output,...n.TOOL_OUTPUT},toolPath:m})}async function L(e,n){let a=e.map(e=>(0,i.resolve)(d,e));if(n){let e=0;for await(let t of s((0,i.join)(d,n)))if(a.push(t),(e+=1)>=500)break}let r=new Map;for(let e of a){let n=await (0,t.stat)(e).catch(()=>null);if(!n?.isFile())continue;let a=(0,i.relative)(d,e);r.set(a&&!a.startsWith("..")?a:e,n.mtimeMs)}return[...r].sort((e,t)=>e[1]-t[1]).map(([e])=>e)}e.s(["ARTIFACTS",0,u,"WORKSPACE",0,d,"botFolder",0,k,"closeHiddenBrowser",0,j,"closeJobShell",0,$,"filesOnDisk",0,L,"insideWorkspace",0,g,"jobShellEnv",0,v,"openBotFolder",0,S,"openJobScratch",0,T,"openWorkspace",0,R,"pruneJobFiles",0,A,"readMachineTools",0,_,"writeRefusal",0,function(e){if(f(d,e)){let t=(0,i.relative)(d,e),[a]=t.split(i.sep);return a&&w.has(a)?null:`Not written: ${t||"the workspace root"} is outside the workspace's folders. Finished work goes under ${n.PATHS.artifacts}/, code under ${n.PATHS.projects}/, your own kit under ${n.PATHS.bots}/, and this job's working material under ${n.PATHS.scratch}/.`}return f(c,e)?`Not written: ${e} is inside the app that is running you, not the user's files. Work in ${d}; outside it, write only where the user pointed you.`:null}],786025)},704161,e=>{"use strict";var t=e.i(469719);let i=t.z.union([t.z.date(),t.z.iso.datetime()]);e.s(["DateLikeSchema",0,i,"toDate",0,e=>new Date(e)])},260338,e=>{"use strict";var t=e.i(518899),i=e.i(844988),n=e.i(156325);e.s(["count",0,function(e){return t.sql`count(${e||t.sql.raw("*")})`.mapWith(Number)},"max",0,function(e){return t.sql`max(${e})`.mapWith((0,i.is)(e,n.Column)?e:String)}])}];
7
-
8
- //# sourceMappingURL=%5Broot-of-the-server%5D__18_teo8._.js.map
@@ -1,10 +0,0 @@
1
- module.exports=[418520,e=>e.a(async(t,r)=>{try{var a=await e.y("@libsql/client-6da938047d5fc1cd");e.n(a),r()}catch(e){r(e)}},!0),874533,(e,t,r)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},902157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},912714,(e,t,r)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},750227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},59639,(e,t,r)=>{t.exports=e.x("node:process",()=>require("node:process"))},509656,(e,t,r)=>{t.exports=e.x("node:tty",()=>require("node:tty"))},812057,(e,t,r)=>{t.exports=e.x("node:util",()=>require("node:util"))},232347,e=>{"use strict";let t,r,a,i,s,o;var n,l=e.i(333925),c=e.i(938281);let u={tasks:!0,memory:!0,mcp:!0,config:!0},d=globalThis,p=d.__appEvents??=(t=new Set,{emit(e){for(let r of[...t])try{r(e)}catch(e){console.error("event listener failed",e)}},subscribe:e=>(t.add(e),()=>{t.delete(e)})}),f=d.__presence??=(n=l.BROWSER_GONE_MS,r=!1,a=null,i=new Set,s=new Set,o=e=>{for(let t of[...e])try{t()}catch(e){console.error("presence listener failed",e)}},{get watching(){return r},track(e){if(e>0){a&&clearTimeout(a),a=null,r||(r=!0,o(s));return}!a&&r&&(a=setTimeout(()=>{a=null,r=!1,o(i)},n))},onGone:e=>(i.add(e),()=>i.delete(e)),onBack:e=>(s.add(e),()=>s.delete(e))}),m=d.__appEventStream??=function(e,t={}){let r=new TextEncoder,a=t.heartbeatMs??2e4,i=0;return{respond:(s,o)=>{let n=()=>{};return new Response(new ReadableStream({async start(l){let u=!1,d=new Map,p=[],f=e=>{if(!u)try{l.enqueue(r.encode(e))}catch{n()}},m=e=>f(`data: ${JSON.stringify(e)}
2
-
3
- `),h=e=>{let r=t.coalesce?.keyOf(e)??null;if(null===r)return m(e);let a=d.get(r);a&&clearTimeout(a),d.set(r,setTimeout(()=>{d.delete(r),m(e)},t.coalesce?.ms))},w=e.subscribe(e=>p?p.push(e):h(e)),T=setInterval(()=>f(": ping\n\n"),a);i+=1,t.onWatchers?.(i),n=()=>{if(!u){for(let e of(u=!0,i-=1,t.onWatchers?.(i),w(),clearInterval(T),d.values()))clearTimeout(e);try{l.close()}catch{}}},s.addEventListener("abort",n);try{for(let e of await o?.()??[])m(e)}catch(e){c.logger.error("event stream opening failed",e),n();return}let S=p;for(let e of(p=null,S))h(e)},cancel(){n()}}),{headers:{"Content-Type":"text/event-stream; charset=utf-8","Cache-Control":"no-store","X-Accel-Buffering":"no"}})},get watchers(){return i}}}(p,{coalesce:{ms:150,keyOf:e=>e.type in u?e.type:null},onWatchers:f.track});d.__bootId??=crypto.randomUUID(),e.s(["appEventStream",0,m,"appEvents",0,p,"presence",0,f],232347)},333925,e=>{"use strict";let t=process.env.THURSDAY_APP_DIR?.trim()||process.cwd(),r=process.env.THURSDAY_HOME?.trim()||process.cwd(),a=process.env.THURSDAY_URL?.trim()||`http://localhost:${process.env.PORT?.trim()||3e3}`,i=`file:${r}/local.db`,s=".ai-workspace",o={workspace:s,artifacts:"artifacts",projects:"projects",scratch:"scratch",bots:"bots",output:".output",skills:{default:"skills",custom:`${s}/.agents/skills`}};e.s(["APP_DIR",0,t,"APP_NAME",0,"Thursday","APP_URL",0,a,"ASCII_FACE",0,{charset:"emojiOnly",fontSize:{default:8,min:4,max:16},density:{default:1.4,min:.6,max:2}},"BOT_MEMORY_LISTED",0,20,"BOT_RUN",0,{steps:100,compactAt:5e5,compactHeadroom:.8,summaryWords:{min:600,max:3e3,perTokens:200},depth:2,askBack:3,silenceMs:3e5,autoResumes:3,retryAfterMs:[3e4,12e4,3e5],overflowShrink:.6,compactFiles:40},"BROWSER_GONE_MS",0,1e4,"BROWSER_VIEWPORT",0,"700x700","CALL_EXEC_TIMEOUT_MS",0,15e3,"CHATGPT_SIGN_IN",0,{waitMs:6e5,renewBeforeMs:3e5},"CONNECTED_TOOL_TIMEOUT_MS",0,6e5,"DATA_DIR",0,r,"DB_FILE_NAME",0,i,"EXEC_KILL_GRACE_MS",0,5e3,"EXEC_TIMEOUT_MS",0,18e4,"INBOX_FINISHED",0,3,"IS_DEV",0,!1,"MEMORY_CONVERSATION_PAGE",0,100,"MEMORY_LIMITS",0,{facts:400,factsPerNote:50,carried:20},"PAGE_SIZE",0,50,"PATHS",0,o,"PROMPT_BUDGET",0,6e3,"PROMPT_LINE",0,{skill:90,toolArgs:30,jobOutcome:160,callTurn:160,botMemory:100},"SEARCH",0,{sources:6,excerptChars:1200,timeoutMs:3e4},"STUDIO_SERVER",0,"studio","TOOL_OUTPUT",0,{max:8e3,head:5500,tail:1500},"WORKSPACE_KEEP",0,{forMs:2592e5,sweepEveryMs:36e5}])},871096,e=>{"use strict";var t=e.i(912714),r=e.i(750227),a=e.i(333925),i=e.i(938281),s=e.i(874533),o=a;let n=new Set(["node_modules",".git",".next","dist","build",".venv","__pycache__",".turbo","coverage"]);async function*l(e){let a;try{a=await (0,t.readdir)(e,{withFileTypes:!0})}catch{return}for(let t of a){if(n.has(t.name)||t.name.startsWith("."))continue;let a=(0,r.join)(e,t.name);t.isDirectory()?yield*l(a):t.isFile()&&(yield a)}}async function c(e,a,i,s){if(e.length<=s.max)return e;let o=(0,r.join)(i,s.dir),n=(0,r.join)(o,`${new Date().toISOString().replace(/[:.]/g,"-")}-${a.replace(/[^a-zA-Z0-9_-]+/g,"_")}.txt`),l=n;try{await (0,t.mkdir)(o,{recursive:!0}),await (0,t.writeFile)(n,e),l=(0,r.relative)(i,n)||n}catch{l="(could not be written to a file)"}let c=(e.match(/\n/g)?.length??0)+1;return`${e.slice(0,s.head).trimEnd()}
4
-
5
- [${a} cut at ${s.max.toLocaleString("en")} chars — the whole thing (${c} lines) is at ${l}. Read the part you need with \`sed -n\`.]
6
-
7
- ${e.slice(-s.tail).trimStart()}`}let u=a.APP_DIR,d=(0,r.join)(a.DATA_DIR,a.PATHS.workspace),p=(process.env.THURSDAY_TOOL_PATH?.split(":")??[(0,r.join)(u,"node_modules",".bin")]).filter(Boolean);(0,r.join)(d,a.PATHS.artifacts);let f=[a.PATHS.artifacts,a.PATHS.projects,a.PATHS.scratch,a.PATHS.bots],m=new Set([...f,".agents"]),h=(e,t)=>t===e||t.startsWith(e+r.sep),w=e=>(0,t.realpath)(e).catch(()=>null);async function T(e){let t=await w(d)??d,a=(0,r.resolve)(d,e);if(!h(d,a))return null;let i=a,s=await w(i);for(;null===s&&(0,r.dirname)(i)!==i;)i=(0,r.dirname)(i),s=await w(i);if(null===s)return null;let o=(0,r.relative)(i,a),n=o?(0,r.join)(s,o):s;return h(t,n)?n:null}function S(e,t){let r=t.trim().toLowerCase().replace(/[^\p{L}\p{N}]+/gu,"-").replace(/^-+|-+$/g,"").slice(0,40)||"job";return`${a.PATHS.scratch}/${r}-${e.slice(0,6)}`}let _=e=>`${a.PATHS.bots}/${e.replace(/[^\p{L}\p{N}_-]+/gu,"-")}`;async function E(e){let a=_(e);return await (0,t.mkdir)((0,r.join)(d,a),{recursive:!0}),a}async function y(e,a){let i=S(e,a);return await (0,t.mkdir)((0,r.join)(d,i),{recursive:!0}),i}let A=e=>e?{PLAYWRIGHT_CLI_SESSION:`task-${e}`,PLAYWRIGHT_MCP_VIEWPORT_SIZE:a.BROWSER_VIEWPORT}:{},P=null,R={runtimes:["node","python3","uv","bun","deno"],managers:["pnpm","npm","yarn"]};async function g(e){let t=Object.values(R).flat(),{stdout:r}=await e.exec(t.map(e=>`command -v ${e} >/dev/null 2>&1 && printf '%s ' ${e}`).join("; "),{timeoutMs:1e4}),a=new Set(r.trim().split(/\s+/).filter(Boolean)),i=e=>({found:e.filter(e=>a.has(e)),missing:e.filter(e=>!a.has(e))});return{runtimes:i(R.runtimes),managers:i(R.managers),browser:P}}async function O(){if(process.env.THURSDAY_SKIP_BROWSER)return;let e=await C(),t=await e.exec("playwright-cli install-browser chromium").catch(e=>({exitCode:1,stderr:String(e)}));(P=0===t.exitCode)||i.logger.warn(`no browser — bots cannot open a page until \`playwright-cli install-browser chromium\` succeeds: ${t.stderr.trim().split("\n").at(-1)??""}`)}async function v(){await k(),await b()}async function I(e){let t,r=await C(),a=A(e),i=await r.exec("playwright-cli list --json",{env:a,timeoutMs:15e3}).catch(()=>null);try{let{browsers:e}=JSON.parse(i?.stdout??"");t=e?.find(e=>e.name===a.PLAYWRIGHT_CLI_SESSION)}catch{}t?.headed!==!1||t.attached||await r.exec("playwright-cli close",{env:a,timeoutMs:15e3}).catch(()=>{}),await v()}async function M(e){let t=await C();await t.exec("playwright-cli close",{env:A(e),timeoutMs:15e3}).catch(()=>{}),await v()}let b=()=>x(a.PATHS.output),k=()=>x(".playwright-cli");async function x(e){let i=(0,r.join)(d,e),s=await (0,t.readdir)(i,{withFileTypes:!0}).catch(()=>[]),o=Date.now()-a.WORKSPACE_KEEP.forMs;for(let e of s){if(!e.isFile())continue;let a=(0,r.join)(i,e.name),s=await (0,t.stat)(a).catch(()=>null);s&&s.mtimeMs<o&&await (0,t.unlink)(a).catch(()=>{})}}async function $(){return(await (0,t.readdir)((0,r.join)(d,a.PATHS.scratch),{withFileTypes:!0}).catch(()=>[])).filter(e=>e.isDirectory()).map(e=>`${a.PATHS.scratch}/${e.name}`)}async function j(e){let i=Date.now()-a.WORKSPACE_KEEP.forMs,s=[];for(let a of e){let e=(0,r.join)(d,a),o=await (0,t.stat)(e).catch(()=>null);o?.isDirectory()&&!(o.mtimeMs>=i)&&(await (0,t.rm)(e,{recursive:!0,force:!0}).catch(()=>{}),s.push(a))}return s}let H={"pnpm-workspace.yaml":"packages:\n - '**'\n",".npmrc":"recursive-install=false\n"};async function C(){for(let e of f)await (0,t.mkdir)((0,r.join)(d,e),{recursive:!0});for(let[e,a]of Object.entries(H))await (0,t.writeFile)((0,r.join)(d,e),a,{flag:"wx"}).catch(()=>{});return(({workingDirectory:e,spill:a,toolPath:i})=>{let n=(0,r.resolve)(e),u=(i??[]).filter(Boolean).join(":"),d=e=>e.startsWith("/")||/^[A-Za-z]:/.test(e)?e:(0,r.resolve)(n,e);return{cwd:n,resolve:d,readFile:(e,r)=>(0,t.readFile)(d(e),r),async writeFile(e,a){let i=d(e);await (0,t.mkdir)((0,r.join)(i,".."),{recursive:!0}),await (0,t.writeFile)(i,a)},readdir:(e,r)=>(0,t.readdir)(d(e),r),fold:(e,t="output")=>c(e,t,n,a),async glob(e,{path:t=".",limit:a=200}={}){let i=d(t),s=RegExp("^"+e.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*\*\//g,"(?:.*/)?").replace(/\*/g,"[^/]*").replace(/\?/g,"[^/]")+"$"),o=[];for await(let e of l(i)){let t=(0,r.relative)(i,e).split(r.sep).join("/");if((s.test(t)||s.test(e))&&o.push(e),o.length>=a)break}return o},exec:(e,{cwd:t,timeoutMs:r=o.EXEC_TIMEOUT_MS,signal:i,env:l}={})=>new Promise(p=>{let f,m,h=function(){let e={...process.env};for(let t of Object.keys(e))/KEY|TOKEN|SECRET|PASSWORD|CREDENTIAL|_AUTH/i.test(t)&&delete e[t];return e.TERM="dumb",e.PAGER="cat",e.GIT_PAGER="cat",e}();u&&(h.PATH=`${h.PATH??""}:${u}`);let w=(0,s.spawn)(e,{shell:!0,cwd:t?d(t):n,env:{...h,...l},detached:!0}),T="",S="";w.stdout?.on("data",e=>T+=e),w.stderr?.on("data",e=>S+=e);let _=e=>{try{w.pid&&process.kill(-w.pid,e)}catch{w.kill(e)}},E=!1,y=async e=>{E||(E=!0,clearTimeout(P),clearTimeout(f),clearTimeout(m),i?.removeEventListener("abort",R),p({...e,stdout:await c(e.stdout,"stdout",n,a),stderr:await c(e.stderr,"stderr",n,a)}))},A=e=>{f||E||(S+=`
8
- [${e}]`,_("SIGTERM"),f=setTimeout(()=>{S+="\n[Killed: it did not exit on SIGTERM]",_("SIGKILL"),m=setTimeout(()=>{w.stdout?.destroy(),w.stderr?.destroy(),y({stdout:T,stderr:S,exitCode:-1})},1e3)},o.EXEC_KILL_GRACE_MS))},P=setTimeout(()=>A(`Timed out after ${r}ms`),r),R=()=>A("Aborted");i?.aborted?R():i?.addEventListener("abort",R,{once:!0}),w.on("close",e=>y({stdout:T,stderr:S,exitCode:e??-1})),w.on("error",e=>y({stdout:T,stderr:S+String(e),exitCode:-1}))})}})({workingDirectory:d,spill:{dir:a.PATHS.output,...a.TOOL_OUTPUT},toolPath:p})}async function L(e,a){let i=e.map(e=>(0,r.resolve)(d,e));if(a){let e=0;for await(let t of l((0,r.join)(d,a)))if(i.push(t),(e+=1)>=500)break}let s=new Map;for(let e of i){let a=await (0,t.stat)(e).catch(()=>null);if(!a?.isFile())continue;let i=(0,r.relative)(d,e);s.set(i&&!i.startsWith("..")?i:e,a.mtimeMs)}return[...s].sort((e,t)=>e[1]-t[1]).map(([e])=>e)}async function D(e,a){await (0,t.rm)((0,r.join)(d,S(e,a)),{recursive:!0,force:!0}).catch(()=>{})}e.s(["WORKSPACE",0,d,"botFolder",0,_,"closeHiddenBrowser",0,I,"closeJobShell",0,M,"ensureBrowser",0,O,"filesOnDisk",0,L,"insideWorkspace",0,T,"jobScratch",0,S,"jobShellEnv",0,A,"listScratchFolders",0,$,"openBotFolder",0,E,"openJobScratch",0,y,"openWorkspace",0,C,"pruneJobFiles",0,v,"readMachineTools",0,g,"removeJobScratch",0,D,"removeUnchangedFolders",0,j,"writeRefusal",0,function(e){if(h(d,e)){let t=(0,r.relative)(d,e),[i]=t.split(r.sep);return i&&m.has(i)?null:`Not written: ${t||"the workspace root"} is outside the workspace's folders. Finished work goes under ${a.PATHS.artifacts}/, code under ${a.PATHS.projects}/, your own kit under ${a.PATHS.bots}/, and this job's working material under ${a.PATHS.scratch}/.`}return h(u,e)?`Not written: ${e} is inside the app that is running you, not the user's files. Work in ${d}; outside it, write only where the user pointed you.`:null}],871096)}];
9
-
10
- //# sourceMappingURL=%5Broot-of-the-server%5D__1ccon1w._.js.map
@@ -1,8 +0,0 @@
1
- module.exports=[874533,(e,t,r)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},912714,(e,t,r)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},750227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},59639,(e,t,r)=>{t.exports=e.x("node:process",()=>require("node:process"))},509656,(e,t,r)=>{t.exports=e.x("node:tty",()=>require("node:tty"))},812057,(e,t,r)=>{t.exports=e.x("node:util",()=>require("node:util"))},333925,e=>{"use strict";let t=process.env.THURSDAY_APP_DIR?.trim()||process.cwd(),r=process.env.THURSDAY_HOME?.trim()||process.cwd(),i=process.env.THURSDAY_URL?.trim()||`http://localhost:${process.env.PORT?.trim()||3e3}`,a=`file:${r}/local.db`,s=".ai-workspace",o={workspace:s,artifacts:"artifacts",projects:"projects",scratch:"scratch",bots:"bots",output:".output",skills:{default:"skills",custom:`${s}/.agents/skills`}};e.s(["APP_DIR",0,t,"APP_NAME",0,"Thursday","APP_URL",0,i,"ASCII_FACE",0,{charset:"emojiOnly",fontSize:{default:8,min:4,max:16},density:{default:1.4,min:.6,max:2}},"BOT_MEMORY_LISTED",0,20,"BOT_RUN",0,{steps:100,compactAt:5e5,compactHeadroom:.8,summaryWords:{min:600,max:3e3,perTokens:200},depth:2,askBack:3,silenceMs:3e5,autoResumes:3,retryAfterMs:[3e4,12e4,3e5],overflowShrink:.6,compactFiles:40},"BROWSER_GONE_MS",0,1e4,"BROWSER_VIEWPORT",0,"700x700","CALL_EXEC_TIMEOUT_MS",0,15e3,"CHATGPT_SIGN_IN",0,{waitMs:6e5,renewBeforeMs:3e5},"CONNECTED_TOOL_TIMEOUT_MS",0,6e5,"DATA_DIR",0,r,"DB_FILE_NAME",0,a,"EXEC_KILL_GRACE_MS",0,5e3,"EXEC_TIMEOUT_MS",0,18e4,"INBOX_FINISHED",0,3,"IS_DEV",0,!1,"MEMORY_CONVERSATION_PAGE",0,100,"MEMORY_LIMITS",0,{facts:400,factsPerNote:50,carried:20},"PAGE_SIZE",0,50,"PATHS",0,o,"PROMPT_BUDGET",0,6e3,"PROMPT_LINE",0,{skill:90,toolArgs:30,jobOutcome:160,callTurn:160,botMemory:100},"SEARCH",0,{sources:6,excerptChars:1200,timeoutMs:3e4},"STUDIO_SERVER",0,"studio","TOOL_OUTPUT",0,{max:8e3,head:5500,tail:1500},"WORKSPACE_KEEP",0,{forMs:2592e5,sweepEveryMs:36e5}])},871096,e=>{"use strict";var t=e.i(912714),r=e.i(750227),i=e.i(333925),a=e.i(938281),s=e.i(874533),o=i;let n=new Set(["node_modules",".git",".next","dist","build",".venv","__pycache__",".turbo","coverage"]);async function*l(e){let i;try{i=await (0,t.readdir)(e,{withFileTypes:!0})}catch{return}for(let t of i){if(n.has(t.name)||t.name.startsWith("."))continue;let i=(0,r.join)(e,t.name);t.isDirectory()?yield*l(i):t.isFile()&&(yield i)}}async function c(e,i,a,s){if(e.length<=s.max)return e;let o=(0,r.join)(a,s.dir),n=(0,r.join)(o,`${new Date().toISOString().replace(/[:.]/g,"-")}-${i.replace(/[^a-zA-Z0-9_-]+/g,"_")}.txt`),l=n;try{await (0,t.mkdir)(o,{recursive:!0}),await (0,t.writeFile)(n,e),l=(0,r.relative)(a,n)||n}catch{l="(could not be written to a file)"}let c=(e.match(/\n/g)?.length??0)+1;return`${e.slice(0,s.head).trimEnd()}
2
-
3
- [${i} cut at ${s.max.toLocaleString("en")} chars — the whole thing (${c} lines) is at ${l}. Read the part you need with \`sed -n\`.]
4
-
5
- ${e.slice(-s.tail).trimStart()}`}let u=i.APP_DIR,d=(0,r.join)(i.DATA_DIR,i.PATHS.workspace),p=(process.env.THURSDAY_TOOL_PATH?.split(":")??[(0,r.join)(u,"node_modules",".bin")]).filter(Boolean);(0,r.join)(d,i.PATHS.artifacts);let m=[i.PATHS.artifacts,i.PATHS.projects,i.PATHS.scratch,i.PATHS.bots],h=new Set([...m,".agents"]),w=(e,t)=>t===e||t.startsWith(e+r.sep),f=e=>(0,t.realpath)(e).catch(()=>null);async function T(e){let t=await f(d)??d,i=(0,r.resolve)(d,e);if(!w(d,i))return null;let a=i,s=await f(a);for(;null===s&&(0,r.dirname)(a)!==a;)a=(0,r.dirname)(a),s=await f(a);if(null===s)return null;let o=(0,r.relative)(a,i),n=o?(0,r.join)(s,o):s;return w(t,n)?n:null}function S(e,t){let r=t.trim().toLowerCase().replace(/[^\p{L}\p{N}]+/gu,"-").replace(/^-+|-+$/g,"").slice(0,40)||"job";return`${i.PATHS.scratch}/${r}-${e.slice(0,6)}`}let E=e=>`${i.PATHS.bots}/${e.replace(/[^\p{L}\p{N}_-]+/gu,"-")}`;async function _(e){let i=E(e);return await (0,t.mkdir)((0,r.join)(d,i),{recursive:!0}),i}async function A(e,i){let a=S(e,i);return await (0,t.mkdir)((0,r.join)(d,a),{recursive:!0}),a}let P=e=>e?{PLAYWRIGHT_CLI_SESSION:`task-${e}`,PLAYWRIGHT_MCP_VIEWPORT_SIZE:i.BROWSER_VIEWPORT}:{},y=null,R={runtimes:["node","python3","uv","bun","deno"],managers:["pnpm","npm","yarn"]};async function O(e){let t=Object.values(R).flat(),{stdout:r}=await e.exec(t.map(e=>`command -v ${e} >/dev/null 2>&1 && printf '%s ' ${e}`).join("; "),{timeoutMs:1e4}),i=new Set(r.trim().split(/\s+/).filter(Boolean)),a=e=>({found:e.filter(e=>i.has(e)),missing:e.filter(e=>!i.has(e))});return{runtimes:a(R.runtimes),managers:a(R.managers),browser:y}}async function I(){if(process.env.THURSDAY_SKIP_BROWSER)return;let e=await C(),t=await e.exec("playwright-cli install-browser chromium").catch(e=>({exitCode:1,stderr:String(e)}));(y=0===t.exitCode)||a.logger.warn(`no browser — bots cannot open a page until \`playwright-cli install-browser chromium\` succeeds: ${t.stderr.trim().split("\n").at(-1)??""}`)}async function M(){await x(),await b()}async function g(e){let t,r=await C(),i=P(e),a=await r.exec("playwright-cli list --json",{env:i,timeoutMs:15e3}).catch(()=>null);try{let{browsers:e}=JSON.parse(a?.stdout??"");t=e?.find(e=>e.name===i.PLAYWRIGHT_CLI_SESSION)}catch{}t?.headed!==!1||t.attached||await r.exec("playwright-cli close",{env:i,timeoutMs:15e3}).catch(()=>{}),await M()}async function v(e){let t=await C();await t.exec("playwright-cli close",{env:P(e),timeoutMs:15e3}).catch(()=>{}),await M()}let b=()=>$(i.PATHS.output),x=()=>$(".playwright-cli");async function $(e){let a=(0,r.join)(d,e),s=await (0,t.readdir)(a,{withFileTypes:!0}).catch(()=>[]),o=Date.now()-i.WORKSPACE_KEEP.forMs;for(let e of s){if(!e.isFile())continue;let i=(0,r.join)(a,e.name),s=await (0,t.stat)(i).catch(()=>null);s&&s.mtimeMs<o&&await (0,t.unlink)(i).catch(()=>{})}}async function j(){return(await (0,t.readdir)((0,r.join)(d,i.PATHS.scratch),{withFileTypes:!0}).catch(()=>[])).filter(e=>e.isDirectory()).map(e=>`${i.PATHS.scratch}/${e.name}`)}async function k(e){let a=Date.now()-i.WORKSPACE_KEEP.forMs,s=[];for(let i of e){let e=(0,r.join)(d,i),o=await (0,t.stat)(e).catch(()=>null);o?.isDirectory()&&!(o.mtimeMs>=a)&&(await (0,t.rm)(e,{recursive:!0,force:!0}).catch(()=>{}),s.push(i))}return s}let H={"pnpm-workspace.yaml":"packages:\n - '**'\n",".npmrc":"recursive-install=false\n"};async function C(){for(let e of m)await (0,t.mkdir)((0,r.join)(d,e),{recursive:!0});for(let[e,i]of Object.entries(H))await (0,t.writeFile)((0,r.join)(d,e),i,{flag:"wx"}).catch(()=>{});return(({workingDirectory:e,spill:i,toolPath:a})=>{let n=(0,r.resolve)(e),u=(a??[]).filter(Boolean).join(":"),d=e=>e.startsWith("/")||/^[A-Za-z]:/.test(e)?e:(0,r.resolve)(n,e);return{cwd:n,resolve:d,readFile:(e,r)=>(0,t.readFile)(d(e),r),async writeFile(e,i){let a=d(e);await (0,t.mkdir)((0,r.join)(a,".."),{recursive:!0}),await (0,t.writeFile)(a,i)},readdir:(e,r)=>(0,t.readdir)(d(e),r),fold:(e,t="output")=>c(e,t,n,i),async glob(e,{path:t=".",limit:i=200}={}){let a=d(t),s=RegExp("^"+e.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*\*\//g,"(?:.*/)?").replace(/\*/g,"[^/]*").replace(/\?/g,"[^/]")+"$"),o=[];for await(let e of l(a)){let t=(0,r.relative)(a,e).split(r.sep).join("/");if((s.test(t)||s.test(e))&&o.push(e),o.length>=i)break}return o},exec:(e,{cwd:t,timeoutMs:r=o.EXEC_TIMEOUT_MS,signal:a,env:l}={})=>new Promise(p=>{let m,h,w=function(){let e={...process.env};for(let t of Object.keys(e))/KEY|TOKEN|SECRET|PASSWORD|CREDENTIAL|_AUTH/i.test(t)&&delete e[t];return e.TERM="dumb",e.PAGER="cat",e.GIT_PAGER="cat",e}();u&&(w.PATH=`${w.PATH??""}:${u}`);let f=(0,s.spawn)(e,{shell:!0,cwd:t?d(t):n,env:{...w,...l},detached:!0}),T="",S="";f.stdout?.on("data",e=>T+=e),f.stderr?.on("data",e=>S+=e);let E=e=>{try{f.pid&&process.kill(-f.pid,e)}catch{f.kill(e)}},_=!1,A=async e=>{_||(_=!0,clearTimeout(y),clearTimeout(m),clearTimeout(h),a?.removeEventListener("abort",R),p({...e,stdout:await c(e.stdout,"stdout",n,i),stderr:await c(e.stderr,"stderr",n,i)}))},P=e=>{m||_||(S+=`
6
- [${e}]`,E("SIGTERM"),m=setTimeout(()=>{S+="\n[Killed: it did not exit on SIGTERM]",E("SIGKILL"),h=setTimeout(()=>{f.stdout?.destroy(),f.stderr?.destroy(),A({stdout:T,stderr:S,exitCode:-1})},1e3)},o.EXEC_KILL_GRACE_MS))},y=setTimeout(()=>P(`Timed out after ${r}ms`),r),R=()=>P("Aborted");a?.aborted?R():a?.addEventListener("abort",R,{once:!0}),f.on("close",e=>A({stdout:T,stderr:S,exitCode:e??-1})),f.on("error",e=>A({stdout:T,stderr:S+String(e),exitCode:-1}))})}})({workingDirectory:d,spill:{dir:i.PATHS.output,...i.TOOL_OUTPUT},toolPath:p})}async function L(e,i){let a=e.map(e=>(0,r.resolve)(d,e));if(i){let e=0;for await(let t of l((0,r.join)(d,i)))if(a.push(t),(e+=1)>=500)break}let s=new Map;for(let e of a){let i=await (0,t.stat)(e).catch(()=>null);if(!i?.isFile())continue;let a=(0,r.relative)(d,e);s.set(a&&!a.startsWith("..")?a:e,i.mtimeMs)}return[...s].sort((e,t)=>e[1]-t[1]).map(([e])=>e)}async function D(e,i){await (0,t.rm)((0,r.join)(d,S(e,i)),{recursive:!0,force:!0}).catch(()=>{})}e.s(["WORKSPACE",0,d,"botFolder",0,E,"closeHiddenBrowser",0,g,"closeJobShell",0,v,"ensureBrowser",0,I,"filesOnDisk",0,L,"insideWorkspace",0,T,"jobScratch",0,S,"jobShellEnv",0,P,"listScratchFolders",0,j,"openBotFolder",0,_,"openJobScratch",0,A,"openWorkspace",0,C,"pruneJobFiles",0,M,"readMachineTools",0,O,"removeJobScratch",0,D,"removeUnchangedFolders",0,k,"writeRefusal",0,function(e){if(w(d,e)){let t=(0,r.relative)(d,e),[a]=t.split(r.sep);return a&&h.has(a)?null:`Not written: ${t||"the workspace root"} is outside the workspace's folders. Finished work goes under ${i.PATHS.artifacts}/, code under ${i.PATHS.projects}/, your own kit under ${i.PATHS.bots}/, and this job's working material under ${i.PATHS.scratch}/.`}return w(u,e)?`Not written: ${e} is inside the app that is running you, not the user's files. Work in ${d}; outside it, write only where the user pointed you.`:null}],871096)}];
7
-
8
- //# sourceMappingURL=%5Broot-of-the-server%5D__1wa1k7r._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[238857,e=>{"use strict";var t=e.i(912714),a=e.i(750227),r=e.i(687388),n=e.i(53748),i=e.i(629668),s=e.i(786025);async function o(e,l=r.WORKSPACE_VIEW.rows){let u=await (0,s.insideWorkspace)(e);u||(0,n.publicError)("Outside the workspace");let d=await (0,t.readdir)(u,{withFileTypes:!0}).catch(()=>null);d||(0,n.publicError)("No such folder");let c=d.filter(e=>e.isDirectory()?(0,i.isListedFolder)(e.name):e.isFile()&&"none"!==(0,i.viewKindOf)(e.name)).sort((e,t)=>Number(e.isFile())-Number(t.isFile())||e.name.localeCompare(t.name)),p=await Promise.all(c.slice(0,l).map(async r=>{let n=e?`${e}/${r.name}`:r.name;if(r.isDirectory())return{kind:"dir",name:r.name,path:n};let s=await (0,t.stat)((0,a.join)(u,r.name)).catch(()=>null);return s?{kind:"file",name:r.name,path:n,bytes:s.size,at:s.mtime,view:(0,i.viewKindOf)(r.name)}:null}));return{path:e,entries:p.filter(e=>null!==e),total:c.length}}let l=(0,e.i(91264).serverRoute)(async e=>{let t=new URL(e.url).searchParams,a=Number(t.get("rows"));return o(t.get("path")??"",Number.isSafeInteger(a)&&a>0?a:void 0)});e.s(["GET",0,l],238857)},161286,e=>{"use strict";var t=e.i(747909),a=e.i(174017),r=e.i(996250),n=e.i(759756),i=e.i(561916),s=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),m=e.i(626937),R=e.i(10372),v=e.i(193695);e.i(52474);var w=e.i(600220);let f=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/workspace/route",pathname:"/api/workspace",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/workspace/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(238857),...{}}),{workAsyncStorage:g,workUnitAsyncStorage:E,serverHooks:C}=f;async function x(e,t,r){r.requestMeta&&(0,n.setRequestMeta)(e,r.requestMeta),f.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/workspace/route";g=g.replace(/\/index$/,"")||"/";let E=await f.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!E)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:C,deploymentId:x,params:_,nextConfig:y,parsedUrl:A,isDraftMode:T,prerenderManifest:b,routerServerContext:P,isOnDemandRevalidate:N,revalidateOnlyGenerated:S,resolvedPathname:O,clientReferenceManifest:k,serverActionsManifest:q}=E,H=(0,o.normalizeAppPath)(g),I=!!(b.dynamicRoutes[H]||b.routes[O]),M=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,A,!1):t.end("This page could not be found"),null);if(I&&!T){let e=!!b.routes[O],t=b.dynamicRoutes[H];if(t&&!1===t.fallback&&!e){if(y.adapterPath)return await M();throw new v.NoFallbackError}}let U=null;!I||f.isDev||T||(U="/index"===(U=O)?"/":U);let D=!0===f.isDev||!I,F=I&&!D;q&&k&&(0,s.setManifestsSingleton)({page:g,clientReferenceManifest:k,serverActionsManifest:q});let j=e.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),$=!!(null==P?void 0:P.isWrappedByNextServer),B=!!(0,n.getRequestMeta)(e,"minimalMode"),G=(0,n.getRequestMeta)(e,"incrementalCache")||await f.getIncrementalCache(e,y,b,B);null==G||G.resetRequestCache(),globalThis.__incrementalCache=G;let W={params:_,previewProps:b.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:D,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)=>f.onRequestError(e,t,r,n,P)},sharedContext:{buildId:C,deploymentId:x}},V=new l.NodeNextRequest(e),X=new l.NodeNextResponse(t),z=u.NextRequestAdapter.fromNodeNextRequest(V,(0,u.signalFromNodeResponse)(t)),Z=async({previousCacheEntry:a})=>{try{if(!B&&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 f.handle(z,W);e.fetchMetrics=W.renderOpts.fetchMetrics;let i=W.renderOpts.pendingWaitUntil;i&&r.waitUntil&&(r.waitUntil(i),i=void 0);let s=W.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(V,X,n,i),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);s&&(t[R.NEXT_CACHE_TAGS_HEADER]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,r=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=R.INFINITE_CACHE?!1!==a&&a>0?y.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:w.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 f.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:N})},!1,P),t}},J=async(n,s)=>{try{var o,l;let n=await f.handleResponse({req:e,nextConfig:y,cacheKey:U,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:S,responseGenerator:Z,waitUntil:r.waitUntil,isMinimalMode:B});if(!I)return;if((null==n||null==(o=n.value)?void 0:o.kind)!==w.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",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 i=(0,h.fromNodeOutgoingHttpHeaders)(n.value.headers);B&&I||i.delete(R.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||i.get("Cache-Control")||i.set("Cache-Control",(0,m.getCacheControlHeader)(n.cacheControl)),await (0,p.sendResponse)(V,X,new Response(n.value.body,{headers:i,status:n.value.status||200}));return}catch(t){if(t instanceof v.NoFallbackError||await f.onRequestError(e,t,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:N})},!1,P),I)throw t;await (0,p.sendResponse)(V,X,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:i.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=`${j} ${r}`;n.setAttributes({"next.route":r,"http.route":r,"next.span_name":o}),n.updateName(o),s&&s!==n&&(s.setAttribute("http.route",r),s.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:`${j} ${g}`,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,r.patchFetch)({workAsyncStorage:g,workUnitAsyncStorage:E})},"routeModule",0,f,"serverHooks",0,C,"workAsyncStorage",0,g,"workUnitAsyncStorage",0,E])},329280,e=>{e.v(t=>Promise.all(["server/chunks/[externals]_node_readline_1u65a-m._.js","server/chunks/node_modules_consola_dist_chunks_prompt_mjs_02axwqv._.js"].map(t=>e.l(t))).then(()=>t(781937)))}];
2
-
3
- //# sourceMappingURL=_1zjrdag._.js.map
@@ -1,4 +0,0 @@
1
- module.exports=[874533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},912714,(a,b,c)=>{b.exports=a.x("node:fs/promises",()=>require("node:fs/promises"))},750227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},59639,(a,b,c)=>{b.exports=a.x("node:process",()=>require("node:process"))},509656,(a,b,c)=>{b.exports=a.x("node:tty",()=>require("node:tty"))},812057,(a,b,c)=>{b.exports=a.x("node:util",()=>require("node:util"))},701876,a=>{"use strict";var b=a.i(451208);a.s([],489277),a.i(489277),a.s(["7f4957e151a50cd41ee138dc20323d2118d625a8e9",()=>b.openFileAction],701876)},451208,a=>{"use strict";var b=a.i(137936),c=a.i(821415),d=a.i(912714),e=a.i(750227),f=a.i(569572),g=a.i(293480);async function h(a){let b=await (0,c.insideWorkspace)(a);b||(0,g.publicError)("Outside the workspace");let e=await (0,d.stat)(b).catch(()=>null);e||(0,g.publicError)("File not found"),e.isFile()||(0,g.publicError)("That is a folder, not a file"),await (0,d.rm)(b)}async function i(){let a=(0,e.join)(c.WORKSPACE,f.PATHS.scratch);for(let b of(await (0,d.readdir)(a).catch(()=>[])))await (0,d.rm)((0,e.join)(a,b),{recursive:!0,force:!0})}a.i(684321);var j=a.i(225689),k=a.i(874533),l=a.i(812057);let m={darwin:a=>["open",[a]],win32:a=>["cmd.exe",["/c","start","",a]],linux:a=>["xdg-open",[a]]};async function n(a){await (0,d.access)(a);let b=m[process.platform]?.(a);if(!b)throw Error(`Opening files is not wired up on ${process.platform}.`);let[c,e]=b;await (0,l.promisify)(k.execFile)(c,e,{windowsHide:!0})}var o=a.i(182248),p=a.i(713095);let q=(0,j.serverAction)(async a=>{let b=a.trim();b||(0,g.publicError)("Which file?");let d=(await (0,c.openWorkspace)()).resolve(b);try{await n(d)}catch(a){(0,g.publicError)(`Could not open ${b}: ${(0,o.errorToString)(a)}`)}}),r=(0,j.serverAction)(async a=>{let b=a.trim();b||(0,g.publicError)("Which file?"),await h(b)}),s=(0,j.serverAction)(async()=>i());(0,p.ensureServerEntryExports)([q,r,s]),(0,b.registerServerReference)(q,"7f4957e151a50cd41ee138dc20323d2118d625a8e9",null),(0,b.registerServerReference)(r,"7f965a01991fcb050dbcedafae89c62f2e9244fc36",null),(0,b.registerServerReference)(s,"7f1261b41219e5808ae0097ce1333efd5b440b6888",null),a.s(["deleteWorkspaceFileAction",0,r,"emptyScratchAction",0,s,"openFileAction",0,q],451208)},225689,a=>{"use strict";a.i(570396);var b=a.i(673727),c=a.i(975160),d=a.i(176668),e=a.i(293480);let f=a=>!!a&&"object"==typeof a&&(!0===a.$ok||!1===a.$ok),g=a=>f(a)&&a.$ok,h=a=>({$ok:!0,data:a}),i=a=>({$ok:!1,message:a});async function j(a){try{let b=h(await a());for(;g(b)&&f(b.data);)b=b.data;return b}catch(a){if((0,b.unstable_rethrow)(a),(0,e.isPublicError)(a))return i(a.message);if(a instanceof c.ZodError)return i(a.issues[0]?.message);if(f(a)&&!a.$ok)return a;return d.logger.error(a),i()}}a.s(["serverAction",0,a=>(...b)=>j(()=>a(...b))],225689)},293480,a=>{"use strict";class b extends Error{message;constructor(a){super(a),this.message=a}}a.s(["isPublicError",0,a=>a instanceof b,"publicError",0,function(a){throw new b(a)}])},832030,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_node_readline_1u65a-m._.js","server/chunks/ssr/node_modules_consola_dist_chunks_prompt_mjs_1j4x-_j._.js"].map(b=>a.l(b))).then(()=>b(322479)))},713095,(a,b,c)=>{"use strict";function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
2
- Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},137936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(211857)}];
3
-
4
- //# sourceMappingURL=%5Broot-of-the-server%5D__1ox7hbk._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[588237,a=>{"use strict";var b=a.i(187924),c=a.i(497895);a.s(["Table",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"table-container",className:"relative w-full overflow-x-auto",children:(0,b.jsx)("table",{"data-slot":"table",className:(0,c.cn)("w-full caption-bottom text-sm",a),...d})})},"TableBody",0,function({className:a,...d}){return(0,b.jsx)("tbody",{"data-slot":"table-body",className:(0,c.cn)("[&_tr:last-child]:border-0",a),...d})},"TableCell",0,function({className:a,...d}){return(0,b.jsx)("td",{"data-slot":"table-cell",className:(0,c.cn)("p-2 align-middle [&:has([role=checkbox])]:pr-0",a),...d})},"TableHead",0,function({className:a,...d}){return(0,b.jsx)("th",{"data-slot":"table-head",className:(0,c.cn)("h-9 px-2 text-left align-middle font-mono text-[11px] font-normal tracking-[0.1em] whitespace-nowrap text-muted-foreground uppercase [&:has([role=checkbox])]:pr-0",a),...d})},"TableHeader",0,function({className:a,...d}){return(0,b.jsx)("thead",{"data-slot":"table-header",className:(0,c.cn)("[&_tr]:border-b",a),...d})},"TableRow",0,function({className:a,...d}){return(0,b.jsx)("tr",{"data-slot":"table-row",className:(0,c.cn)("border-b border-border/60 transition-colors data-[state=selected]:bg-muted hover:bg-muted/40",a),...d})}])},369768,a=>a.a(async(b,c)=>{try{var d=a.i(187924),e=a.i(572131),f=a.i(767561),g=a.i(340695),h=a.i(965733),i=a.i(846991),j=a.i(950463),k=a.i(588237),l=a.i(287702),m=a.i(559553),n=a.i(337967),o=a.i(313237),p=a.i(497895),q=b([i]);[i]=q.then?(await q)():q;let A=new Set(["frame","image","audio","video"]);function r(a){let b=(0,m.workspaceRelative)(a);if(!b)return{how:"os"};let c=(0,m.viewKindOf)(b);return A.has(c)?{how:"tab",path:b,href:f.queryKey.fileView(b)}:"none"===c?{how:"os"}:{how:"dialog",path:b}}let B=(0,e.createContext)(null),C={dialog:{prose:"px-5 py-4",block:"px-4 py-3"},page:{prose:"px-5 py-6 sm:px-8",block:"px-5 py-5"},inline:{prose:"pb-3",block:"pb-3"}};function s({kind:a,content:b,truncated:c,where:e="dialog"}){return(0,d.jsxs)(d.Fragment,{children:[null!=c&&(0,d.jsx)(t,{of:c}),(0,d.jsx)(u,{kind:a,content:b,where:e})]})}function t({of:a}){return(0,d.jsxs)("p",{className:"border-b border-border/60 px-5 py-2.5 font-mono text-[11px] text-muted-foreground",children:[`Showing the first ${(0,p.formatBytes)(l.WORKSPACE_VIEW.textMax)} of ${(0,p.formatBytes)(a)}. `,"Open the file itself for the rest."]})}function u({kind:a,content:b,where:c}){let e=C[c];switch(a){case"markdown":return(0,d.jsx)("div",{className:(0,p.cn)("min-w-0 text-sm leading-relaxed",e.prose),children:(0,d.jsx)(i.Markdown,{children:b})});case"csv":return(0,d.jsx)(z,{content:b,className:e.block});case"json":return(0,d.jsx)(y,{text:function(a){try{return JSON.stringify(JSON.parse(a),null,2)}catch{return a}}(b),className:e.block});default:return(0,d.jsx)(y,{text:b,className:e.block})}}function v(a){let[b,c]=(0,e.useState)(null),[d,g]=(0,e.useState)(null),[h,i]=(0,e.useState)(null);return(0,e.useEffect)(()=>{if(!a)return;c(null),g(null),i(null);let b=!1;return fetch(f.queryKey.file(a),{headers:{range:`bytes=0-${l.WORKSPACE_VIEW.textMax-1}`}}).then(async a=>{if(!a.ok)throw Error(await a.text());return{text:await a.text(),of:function(a){let b=a.headers.get("content-range")?.match(/^bytes \d+-(\d+)\/(\d+)$/);if(!b)return null;let[,c,d]=b.map(Number);return c+1<d?d:null}(a)}}).then(({text:a,of:d})=>{if(b)return;let e=null===d?a:a.slice(0,a.lastIndexOf("\n")+1||void 0);c(e),i(d)}).catch(a=>!b&&g((0,p.errorToString)(a))),()=>{b=!0}},[a]),{content:b,failure:d,truncated:h}}function w({path:a,bytes:b}){let[c,e]=(0,o.useServerAction)(n.openFileAction);return(0,d.jsxs)("div",{className:"space-y-4 p-8",children:[(0,d.jsxs)("p",{className:"max-w-lg text-sm leading-relaxed text-muted-foreground",children:[`This file is ${(0,p.formatBytes)(b)} — too big to draw here without `,"taking the window with it. Open it where it is instead."]}),(0,d.jsx)(g.Button,{variant:"outline",loading:e,onClick:()=>c(a),children:"Reveal in the file manager"})]})}function x({path:a,kind:b,onClose:c}){let{content:e,failure:f,truncated:g}=v(a),i=a?.split("/").pop()??"";return(0,d.jsx)(h.Dialog,{open:null!==a,onOpenChange:a=>!a&&c(),children:(0,d.jsxs)(h.DialogContent,{className:"flex max-h-[calc(100vh-3rem)] flex-col gap-0 overflow-hidden p-0 sm:max-w-4xl",children:[(0,d.jsx)(h.DialogTitle,{className:"sr-only",children:i}),(0,d.jsx)("div",{className:"flex shrink-0 items-center gap-2 border-b border-border/60 px-4 py-2.5 pr-12",children:(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-[12px]",children:a})}),(0,d.jsx)("div",{className:"min-h-0 flex-1 overflow-auto",children:f?(0,d.jsx)("p",{className:"p-5 font-mono text-xs text-destructive",children:f}):null===e?(0,d.jsxs)("div",{className:"space-y-3 p-5",children:[(0,d.jsx)(j.Skeleton,{className:"h-5 w-2/3"}),(0,d.jsx)(j.Skeleton,{className:"h-4 w-full"}),(0,d.jsx)(j.Skeleton,{className:"h-4 w-5/6"})]}):(0,d.jsx)(s,{kind:b,content:e,truncated:g})})]})})}function y({text:a,className:b}){return(0,d.jsx)("pre",{className:(0,p.cn)("overflow-x-auto font-mono text-[12px] leading-relaxed whitespace-pre-wrap text-foreground/90",b),children:a})}function z({content:a,className:b}){let[c,...f]=(0,e.useMemo)(()=>(function(a){let b=[],c=[],d="",e=!1;for(let f=0;f<a.length;f++){let g=a[f];e?'"'===g&&'"'===a[f+1]?(d+='"',f++):'"'===g?e=!1:d+=g:'"'===g?e=!0:","===g?(c.push(d),d=""):"\n"===g||"\r"===g?("\r"===g&&"\n"===a[f+1]&&f++,c.push(d),b.push(c),c=[],d=""):d+=g}return(d.length||c.length)&&(c.push(d),b.push(c)),b.filter(a=>a.some(a=>a.trim()))})(a),[a]);return c?(0,d.jsx)("div",{className:(0,p.cn)("overflow-x-auto",b),children:(0,d.jsxs)(k.Table,{children:[(0,d.jsx)(k.TableHeader,{children:(0,d.jsx)(k.TableRow,{children:c.map((a,b)=>(0,d.jsx)(k.TableHead,{className:"whitespace-nowrap",children:a},`${b}-${a}`))})}),(0,d.jsx)(k.TableBody,{children:f.map((a,b)=>(0,d.jsx)(k.TableRow,{children:c.map((c,e)=>(0,d.jsx)(k.TableCell,{className:"whitespace-nowrap",children:a[e]??""},`${b}-${e}`))},`${b}-${a[0]??""}`))})]})}):(0,d.jsx)(y,{text:a,className:b})}a.s(["FileBody",0,s,"FileDialog",0,x,"FileLink",0,function({path:a,className:b,title:c,label:g,children:h}){let i=r(a),j=(0,e.useContext)(B),[k,l]=(0,o.useServerAction)(n.openFileAction);return"tab"===i.how?(0,d.jsx)("a",{href:i.href,target:"_blank",rel:"noreferrer",title:c??a,"aria-label":g,className:b,children:h}):(0,d.jsx)("button",{type:"button",disabled:l,title:c??a,"aria-label":g,className:b,onClick:()=>{"dialog"===i.how?j?j(i.path):window.open(f.queryKey.fileView(i.path),"_blank"):k(a)},children:h})},"FilePreview",0,function({path:a,bytes:b}){let c=(0,m.viewKindOf)(a),{content:e,failure:g,truncated:h}=v(A.has(c)?null:a);return("frame"===c||"image"===c)&&b>l.WORKSPACE_VIEW.elementMax?(0,d.jsx)(w,{path:a,bytes:b}):"frame"===c?(0,d.jsx)("iframe",{title:a,src:f.queryKey.file(a),allow:"clipboard-read; clipboard-write; fullscreen; autoplay",className:"h-full w-full bg-white"}):"image"===c?(0,d.jsx)("img",{src:f.queryKey.file(a),alt:a,className:"mx-auto max-w-full p-6"}):"audio"===c||"video"===c?"audio"===c?(0,d.jsx)("audio",{controls:!0,src:f.queryKey.file(a),className:"w-full p-6",children:(0,d.jsx)("track",{kind:"captions"})}):(0,d.jsx)("video",{controls:!0,src:f.queryKey.file(a),className:"max-w-full p-6",children:(0,d.jsx)("track",{kind:"captions"})}):g?(0,d.jsx)("p",{className:"p-5 font-mono text-xs text-destructive",children:g}):null===e?(0,d.jsxs)("div",{className:"space-y-3 p-5",children:[(0,d.jsx)(j.Skeleton,{className:"h-5 w-2/3"}),(0,d.jsx)(j.Skeleton,{className:"h-4 w-full"}),(0,d.jsx)(j.Skeleton,{className:"h-4 w-5/6"})]}):(0,d.jsx)(s,{kind:c,content:e,truncated:h})},"FileViewer",0,function({children:a}){let[b,c]=(0,e.useState)(null);return(0,d.jsxs)(B,{value:c,children:[a,(0,d.jsx)(x,{path:b,kind:b?(0,m.viewKindOf)(b):"text",onClose:()=>c(null)})]})},"fileTarget",0,r,"useFileText",0,v,"useOpenFile",0,function(){let a=(0,e.useContext)(B);return(0,e.useCallback)(b=>{let c=r(b);if("os"===c.how)return!1;if("dialog"===c.how&&a)return a(c.path),!0;let d="tab"===c.how?c.href:f.queryKey.fileView(c.path);return null!==window.open(d,"_blank")},[a])}]),c()}catch(a){c(a)}},!1),337967,a=>{"use strict";var b=a.i(405050);let c=(0,b.createServerReference)("7f4957e151a50cd41ee138dc20323d2118d625a8e9",b.callServer,void 0,b.findSourceMapURL,"openFileAction");a.s(["openFileAction",0,c])},559553,a=>{"use strict";var b=a.i(287702);let c=a=>`text/${a}; charset=utf-8`,d={md:{kind:"markdown",mime:c("markdown")},markdown:{kind:"markdown",mime:c("markdown")},csv:{kind:"csv",mime:c("csv")},json:{kind:"json",mime:"application/json; charset=utf-8"},txt:{kind:"text",mime:c("plain")},log:{kind:"text",mime:c("plain")},html:{kind:"frame",mime:c("html")},htm:{kind:"frame",mime:c("html")},pdf:{kind:"frame",mime:"application/pdf"},png:{kind:"image",mime:"image/png"},jpg:{kind:"image",mime:"image/jpeg"},jpeg:{kind:"image",mime:"image/jpeg"},gif:{kind:"image",mime:"image/gif"},webp:{kind:"image",mime:"image/webp"},svg:{kind:"image",mime:"image/svg+xml"},mp3:{kind:"audio",mime:"audio/mpeg"},wav:{kind:"audio",mime:"audio/wav"},mp4:{kind:"video",mime:"video/mp4"},webm:{kind:"video",mime:"video/webm"},css:{kind:"none",mime:c("css")},js:{kind:"none",mime:c("javascript")},woff2:{kind:"none",mime:"font/woff2"}},e=Object.entries(d).filter(([,a])=>"none"!==a.kind).map(([a])=>a),f=RegExp(String.raw`(?<![\p{L}\p{N}_/:@%-])(?:[\p{L}\p{N}_.@%-]+/)*[\p{L}\p{N}_@%-]+(?:\.[\p{L}\p{N}_-]+)*\.(?:${e.join("|")})\b`,"giu"),g=`${b.PATHS.workspace}/`;function h(a){let b=a.trim(),c=b.indexOf(g);return c>=0?b.slice(c+g.length)||null:b.startsWith("/")||/^[A-Za-z]:/.test(b)||b.split("/").includes("..")?null:b||null}a.s(["pathsIn",0,function(a){let b=a.replace(/\b[a-z][\w+.-]*:\/\/\S+/gi," "),c=new Set;for(let a of b.match(f)??[]){let b=function(a){let b=h(a);if(!b)return null;let[c,...d]=b.split("/");return d.length&&c.includes(".")?null:b}(a);b&&c.add(b)}return[...c].slice(0,6)},"viewKindOf",0,a=>d[a.split(".").pop()?.toLowerCase()??""]?.kind??"none","workspaceRelative",0,h])}];
2
-
3
- //# sourceMappingURL=_0n3toaw._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[901729,a=>a.a(async(b,c)=>{try{var d=a.i(187924),e=a.i(707963),f=a.i(141146),g=a.i(168370),h=a.i(998697),i=a.i(572327),j=a.i(707938),k=a.i(483138),l=a.i(69095),m=a.i(844561),n=a.i(71215),o=a.i(649268),p=a.i(239025),q=a.i(951675),r=a.i(586446),s=a.i(572131),t=a.i(767561),u=a.i(340695),v=a.i(446181),w=a.i(287702),x=a.i(619477),y=a.i(369768),z=a.i(246812),A=a.i(966256),B=a.i(337967),C=a.i(199169),D=a.i(313237),E=a.i(759497),F=a.i(497895),G=b([y]);[y]=G.then?(await G)():G;let M={markdown:k.FileText,csv:p.Sheet,json:j.FileJson,text:k.FileText,frame:i.FileCode2,image:n.Image,audio:o.Music,video:r.Video,none:h.File};function H({label:a,rows:b,children:c}){return 0===b.length?null:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"px-3 pt-3 pb-1 font-mono text-[10px] text-muted-foreground/60",children:a}),c]})}function I({entry:a,active:b,onPick:c}){let e="dir"===a.kind?l.Folder:M[a.view];return(0,d.jsxs)("button",{type:"button",onClick:c,title:"file"===a.kind?`${a.name} \xb7 ${(0,C.shortAgo)(a.at)}`:a.name,className:(0,F.cn)("mx-2 flex items-center gap-2 rounded-md px-2 py-1.5 text-left text-[13px] outline-none focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-inset",b?"bg-secondary font-medium text-foreground":"text-muted-foreground hover:bg-muted/60 hover:text-foreground"),children:[(0,d.jsx)(e,{className:"size-3.5 shrink-0 opacity-70"}),(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate",children:a.name}),"file"===a.kind?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"shrink-0 font-mono text-[11px] text-muted-foreground/75",children:(0,F.formatBytes)(a.bytes)}),(0,d.jsx)("span",{className:"w-3.5 shrink-0"})]}):(0,d.jsx)(f.ChevronRight,{className:"size-3.5 shrink-0 text-muted-foreground/50"})]})}function J({empty:a,onReveal:b}){return(0,d.jsxs)("div",{className:"space-y-4 p-8",children:[a?(0,d.jsxs)("p",{className:"max-w-lg text-sm leading-relaxed text-muted-foreground",children:["Nothing here yet. What a bot writes during a call lands in"," ",(0,d.jsx)("span",{className:"font-mono text-[13px] text-foreground",children:"artifacts/"})," ","— a page, a table, a picture — and shows up here to open."]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("p",{className:"text-sm leading-relaxed text-muted-foreground",children:"Pick a file on the left."}),(0,d.jsx)("p",{className:"max-w-lg text-sm leading-relaxed text-muted-foreground",children:"Only what the app can open is listed — a page, a table, a picture, a note. Installed packages and tool leftovers are left out, and no folder is measured, so a folder opens as fast as it lists. Reveal folder for everything else."})]}),(0,d.jsxs)(u.Button,{variant:"outline",onClick:b,children:[(0,d.jsx)(m.FolderOpen,{}),"Reveal folder"]})]})}function K({file:a,onGone:b}){let c=a.path,[e]=(0,D.useServerAction)(B.openFileAction),[f,h]=(0,D.useServerAction)(z.deleteWorkspaceFileAction,{okMessage:"File deleted",onOk:()=>{(0,E.revalidate)(t.queryKey.workspace),b()}}),i=async()=>{await v.notify.confirm({title:`Delete ${c.split("/").pop()}?`,description:"It is deleted from disk for good.",okText:"Delete",destructive:!0})&&f(c)};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex shrink-0 items-center gap-3 border-b border-border/60 px-6 py-2",children:[(0,d.jsx)(L,{path:c}),(0,d.jsxs)("span",{className:"shrink-0 font-mono text-[11px] text-muted-foreground/70",children:[(0,F.formatBytes)(a.bytes)," · ",(0,C.shortAgo)(a.at)]}),(0,d.jsx)("a",{href:t.queryKey.fileView(c),target:"_blank",rel:"noreferrer","aria-label":"Open in a new tab",className:"grid size-7 shrink-0 place-items-center rounded-md text-muted-foreground outline-none transition-colors hover:bg-muted/60 hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",children:(0,d.jsx)(g.ExternalLink,{className:"size-4"})}),(0,d.jsx)(u.Button,{size:"icon-sm",variant:"ghost","aria-label":"Reveal in the file manager",className:"text-muted-foreground",onClick:()=>e(c),children:(0,d.jsx)(m.FolderOpen,{})}),(0,d.jsx)(u.Button,{size:"icon-sm",variant:"ghost","aria-label":"Delete",loading:h,className:"text-muted-foreground",onClick:i,children:(0,d.jsx)(q.Trash2,{})})]}),(0,d.jsx)("div",{className:"min-h-0 flex-1 overflow-auto",children:(0,d.jsx)(y.FilePreview,{path:c,bytes:a.bytes})})]})}function L({path:a}){let b=["workspace",...a.split("/").filter(Boolean)];return(0,d.jsx)("span",{className:"flex min-w-0 flex-1 items-center gap-1 font-mono text-[11px] text-muted-foreground",children:b.map((a,c)=>(0,d.jsxs)("span",{className:"flex min-w-0 items-center gap-1",children:[c>0&&(0,d.jsx)(f.ChevronRight,{className:"size-3 shrink-0 opacity-50"}),(0,d.jsx)("span",{className:(0,F.cn)("truncate",c===b.length-1&&"text-foreground"),children:a})]},`${c}-${a}`))})}a.s(["WorkspaceSetting",0,function(){let[a,b]=(0,s.useState)(""),[c,f]=(0,s.useState)(w.WORKSPACE_VIEW.rows),[g,h]=(0,s.useState)(null),[i,j]=(0,s.useState)(""),{data:k,isLoading:l,error:n}=(0,E.useServerRoute)(t.queryKey.workspaceFolder(a,c),{keepPreviousData:!0}),o=a=>{b(a),f(w.WORKSPACE_VIEW.rows)},[p,q]=(0,D.useServerAction)(A.emptyScratchAction,{okMessage:"Scratch emptied",onOk:()=>(0,E.revalidate)(t.queryKey.workspace)}),[r]=(0,D.useServerAction)(B.openFileAction),y=async()=>{await v.notify.confirm({title:"Empty scratch?",description:"Everything under scratch/ is deleted for good. artifacts/ and projects/ are untouched.",okText:"Empty",destructive:!0})&&p()};if(l)return(0,d.jsx)(x.SettingPanesSkeleton,{});if(n)return(0,d.jsx)(x.SettingError,{message:n.message});let z=k?.entries??[],C=k?.total??0,F=i.trim().toLowerCase(),G=F?z.filter(a=>a.name.toLowerCase().includes(F)):z,L=G.filter(a=>"dir"===a.kind),M=G.filter(a=>"file"===a.kind),N=z.find(a=>"file"===a.kind&&a.path===g?.path)??g;return(0,d.jsx)(x.SettingPanes,{footer:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(x.SettingRailNote,{children:(0,d.jsxs)("span",{className:"font-mono",children:[(0,d.jsx)("span",{className:"font-medium text-foreground",children:`.ai-workspace${a?`/${a}`:""}`}),` \xb7 ${function(a,b){let c=a.filter(a=>"dir"===a.kind).length,d=a.length-c,e=[c&&`${c} ${1===c?"folder":"folders"}`,d&&`${d} ${1===d?"file":"files"}`].filter(Boolean);if(!e.length)return"empty";let f=e.join(" · ");return b>a.length?`${f} of ${b.toLocaleString("en")}`:f}(z,C)}`]})}),(0,d.jsxs)(u.Button,{variant:"outline",size:"sm",onClick:()=>r(a||"."),children:[(0,d.jsx)(m.FolderOpen,{}),"Reveal folder"]}),(0,d.jsx)(u.Button,{variant:"outline",size:"sm",loading:q,onClick:y,className:"text-destructive hover:text-destructive",children:"Empty scratch"})]}),left:(0,d.jsxs)("div",{className:"flex flex-col py-2",children:[(0,d.jsx)(x.SettingFilter,{value:i,onChange:j,placeholder:"Filter this folder",className:"mx-2 mb-1.5 w-auto"}),a&&(0,d.jsxs)("button",{type:"button",onClick:()=>o(a.split("/").slice(0,-1).join("/")),className:"mx-2 mb-1 flex items-center gap-1 rounded-md px-2 py-1 text-left font-mono text-[11px] text-muted-foreground outline-none hover:bg-muted/60 hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-inset",children:[(0,d.jsx)(e.ChevronLeft,{className:"size-3 shrink-0"}),(0,d.jsx)("span",{className:"truncate",children:a.split("/").slice(0,-1).pop()??"workspace"})]}),0===G.length?(0,d.jsx)("p",{className:"px-4 py-3 text-xs text-muted-foreground/60",children:F?"Nothing matches":"Empty folder"}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(H,{label:"folders",rows:L,children:L.map(a=>(0,d.jsx)(I,{entry:a,onPick:()=>o(a.path)},a.path))}),(0,d.jsx)(H,{label:"files",rows:M,children:M.map(a=>(0,d.jsx)(I,{entry:a,active:a.path===g?.path,onPick:()=>"file"===a.kind&&h(a)},a.path))})]}),C>z.length&&(0,d.jsx)("button",{type:"button",onClick:()=>f(c+w.WORKSPACE_VIEW.rows),className:"mx-2 mt-2 rounded-md px-2 py-1.5 text-left font-mono text-[11px] text-muted-foreground outline-none hover:bg-muted/60 hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-inset",children:`Show ${Math.min(w.WORKSPACE_VIEW.rows,C-z.length)} more of ${C.toLocaleString("en")}`})]}),right:N?.kind==="file"?(0,d.jsx)(K,{file:N,onGone:()=>h(null)},N.path):(0,d.jsx)(J,{empty:!a&&0===z.length,onReveal:()=>r(".")})})}]),c()}catch(a){c(a)}},!1),966256,a=>{"use strict";var b=a.i(405050);let c=(0,b.createServerReference)("7f1261b41219e5808ae0097ce1333efd5b440b6888",b.callServer,void 0,b.findSourceMapURL,"emptyScratchAction");a.s(["emptyScratchAction",0,c])},246812,a=>{"use strict";var b=a.i(405050);let c=(0,b.createServerReference)("7f965a01991fcb050dbcedafae89c62f2e9244fc36",b.callServer,void 0,b.findSourceMapURL,"deleteWorkspaceFileAction");a.s(["deleteWorkspaceFileAction",0,c])},572327,a=>{"use strict";var b=a.i(164831);let c={name:"file-code-corner",size:24,node:[["path",{d:"M4 12.15V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-3.35",key:"1wthlu"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"m5 16-3 3 3 3",key:"331omg"}],["path",{d:"m9 22 3-3-3-3",key:"lsp7cz"}]],aliases:["file-code-2"]};c.node;let d=(0,b.default)(c);a.s(["FileCode2",0,d],572327)},69095,a=>{"use strict";var b=a.i(164831);let c={name:"folder",size:24,node:[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]};c.node;let d=(0,b.default)(c);a.s(["Folder",0,d],69095)},649268,a=>{"use strict";var b=a.i(164831);let c={name:"music",size:24,node:[["path",{d:"M9 18V5l12-2v13",key:"1jmyc2"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["circle",{cx:"18",cy:"16",r:"3",key:"1hluhg"}]]};c.node;let d=(0,b.default)(c);a.s(["Music",0,d],649268)},239025,a=>{"use strict";var b=a.i(164831);let c={name:"sheet",size:24,node:[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["line",{x1:"3",x2:"21",y1:"9",y2:"9",key:"1vqk6q"}],["line",{x1:"3",x2:"21",y1:"15",y2:"15",key:"o2sbyz"}],["line",{x1:"9",x2:"9",y1:"9",y2:"21",key:"1ib60c"}],["line",{x1:"15",x2:"15",y1:"9",y2:"21",key:"1n26ft"}]]};c.node;let d=(0,b.default)(c);a.s(["Sheet",0,d],239025)},951675,a=>{"use strict";var b=a.i(164831);let c={name:"trash",size:24,node:[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],aliases:["trash-2"]};c.node;let d=(0,b.default)(c);a.s(["Trash2",0,d],951675)},586446,a=>{"use strict";var b=a.i(164831);let c={name:"video",size:24,node:[["path",{d:"m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5",key:"ftymec"}],["rect",{x:"2",y:"6",width:"14",height:"12",rx:"2",key:"158x01"}]]};c.node;let d=(0,b.default)(c);a.s(["Video",0,d],586446)}];
2
-
3
- //# sourceMappingURL=_1-_etts._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[964665,a=>a.a(async(b,c)=>{try{var d=a.i(187924),e=a.i(707963),f=a.i(168370),g=a.i(998697),h=a.i(572327),i=a.i(707938),j=a.i(483138),k=a.i(844561),l=a.i(71215),m=a.i(595775),n=a.i(649268),o=a.i(239025),p=a.i(951675),q=a.i(586446),r=a.i(572131),s=a.i(767561),t=a.i(340695),u=a.i(446181),v=a.i(950463),w=a.i(287702),x=a.i(881380),y=a.i(619477),z=a.i(369768),A=a.i(337967),B=a.i(199169),C=a.i(313237),D=a.i(759497),E=a.i(497895),F=b([z]);[z]=F.then?(await F)():F;let L={markdown:j.FileText,csv:o.Sheet,json:i.FileJson,text:j.FileText,frame:h.FileCode2,image:l.Image,audio:n.Music,video:q.Video,none:g.File};function G({entry:a,active:b,onPick:c}){let e="set"===a.kind?m.Images:L[a.view];return(0,d.jsxs)("button",{type:"button",onClick:c,title:`${a.name} \xb7 ${(0,B.shortAgo)(a.at)}`,className:(0,E.cn)("mx-2 flex items-center gap-2 rounded-md px-2 py-1.5 text-left text-[13px] outline-none focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-inset",b?"bg-secondary font-medium text-foreground":"text-muted-foreground hover:bg-muted/60 hover:text-foreground"),children:[(0,d.jsx)(e,{className:"size-3.5 shrink-0 opacity-70"}),(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate",children:a.name}),(0,d.jsx)("span",{className:"shrink-0 font-mono text-[11px] text-muted-foreground/75",children:"set"===a.kind?a.count:(0,E.formatBytes)(a.bytes)})]})}function H({row:a,file:b,onOpen:c,onBack:g,onGone:h}){let[i]=(0,C.useServerAction)(A.openFileAction),[j,l]=(0,C.useServerAction)(x.deleteArtifactAction,{okMessage:"Deleted",onOk:()=>{(0,D.revalidate)(s.queryKey.artifacts),b?g():h()}}),m=b?{path:b.path,bytes:b.bytes,at:b.at}:"file"===a.kind?{path:a.path,bytes:a.bytes,at:a.at}:null,n=async a=>{await u.notify.confirm({title:`Delete ${a.split("/").pop()}?`,description:"It is deleted from disk for good.",okText:"Delete",destructive:!0})&&j(a)};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex h-11 shrink-0 items-center gap-3 border-b border-border/60 px-6",children:[b&&(0,d.jsxs)("button",{type:"button",onClick:g,className:"-ml-1 flex shrink-0 items-center gap-1 rounded-md px-1.5 py-1 font-mono text-[11px] text-muted-foreground outline-none hover:bg-muted/60 hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",children:[(0,d.jsx)(e.ChevronLeft,{className:"size-3"}),a.name]}),(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-[11px] text-foreground",children:m?m.path.split("/").pop()??a.name:a.name}),(0,d.jsx)("span",{className:"shrink-0 font-mono text-[11px] text-muted-foreground/70",children:m?`${(0,E.formatBytes)(m.bytes)} \xb7 ${(0,B.shortAgo)(m.at)}`:`${a.count} ${1===a.count?"file":"files"} \xb7 ${(0,B.shortAgo)(a.at)}`}),m&&(0,d.jsx)("a",{href:s.queryKey.fileView(m.path),target:"_blank",rel:"noreferrer","aria-label":"Open in a new tab",className:"grid size-7 shrink-0 place-items-center rounded-md text-muted-foreground outline-none transition-colors hover:bg-muted/60 hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",children:(0,d.jsx)(f.ExternalLink,{className:"size-4"})}),(0,d.jsx)(t.Button,{size:"icon-sm",variant:"ghost","aria-label":"Reveal in the file manager",className:"text-muted-foreground",onClick:()=>i(m?.path??a.path),children:(0,d.jsx)(k.FolderOpen,{})}),m&&(0,d.jsx)(t.Button,{size:"icon-sm",variant:"ghost","aria-label":"Delete",loading:l,className:"text-muted-foreground",onClick:()=>n(m.path),children:(0,d.jsx)(p.Trash2,{})})]}),(0,d.jsx)("div",{className:"min-h-0 flex-1 overflow-auto",children:m?(0,d.jsx)(z.FilePreview,{path:m.path,bytes:m.bytes}):(0,d.jsx)(I,{name:a.name,onOpen:c})})]})}function I({name:a,onOpen:b}){let{data:c,isLoading:e,error:f}=(0,D.useServerRoute)(s.queryKey.artifactSet(a,w.ARTIFACT_VIEW.setFiles));if(e)return(0,d.jsx)("div",{className:"grid grid-cols-4 gap-3 p-5",children:Array.from({length:8},(a,b)=>(0,d.jsx)(v.Skeleton,{className:"aspect-4/3 w-full rounded-xl"},b))});if(f)return(0,d.jsx)(y.SettingError,{message:f.message});let g=c?.files??[];return 0===g.length?(0,d.jsx)("p",{className:"p-5 text-xs text-muted-foreground/60",children:"Nothing in here the app can open."}):(0,d.jsxs)("div",{className:"p-5",children:[(0,d.jsx)("div",{className:"grid grid-cols-4 gap-3",children:g.map(a=>(0,d.jsxs)("button",{type:"button",onClick:()=>b(a),title:`${a.name} \xb7 ${(0,E.formatBytes)(a.bytes)}`,className:"flex flex-col gap-1.5 text-left outline-none focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-offset-2",children:[(0,d.jsx)(J,{file:a}),(0,d.jsx)("span",{className:"truncate font-mono text-[11px] text-muted-foreground",children:a.name})]},a.path))}),c&&c.total>g.length&&(0,d.jsx)("p",{className:"pt-4 font-mono text-[11px] text-muted-foreground/60",children:`${g.length} of ${c.total.toLocaleString("en")} — the rest are in the folder`})]})}function J({file:a}){if("image"===a.view&&a.bytes<=w.WORKSPACE_VIEW.elementMax)return(0,d.jsx)("img",{src:s.queryKey.file(a.path),alt:a.name,loading:"lazy",decoding:"async",className:"aspect-4/3 w-full rounded-xl object-cover"});let b=L[a.view];return(0,d.jsx)("span",{className:"grid aspect-4/3 w-full place-items-center rounded-xl bg-muted/40 text-muted-foreground",children:(0,d.jsx)(b,{className:"size-5"})})}function K({empty:a,onReveal:b}){return(0,d.jsxs)("div",{className:"space-y-4 p-8",children:[(0,d.jsx)("p",{className:"max-w-lg text-sm leading-relaxed text-muted-foreground",children:a?"Nothing finished yet. When a bot ends a job with something to hand over — a page, a report, a set of pictures — it lands here.":"Pick something on the left. A folder a bot filled is one row, and opens as a sheet."}),(0,d.jsxs)(t.Button,{variant:"outline",onClick:b,children:[(0,d.jsx)(k.FolderOpen,{}),"Reveal folder"]})]})}a.s(["ArtifactSetting",0,function(){let[a,b]=(0,r.useState)(null),[c,e]=(0,r.useState)(""),[f,g]=(0,r.useState)(w.ARTIFACT_VIEW.rows),{data:h,isLoading:i,error:j}=(0,D.useServerRoute)(s.queryKey.artifactShelf(f),{keepPreviousData:!0}),[l]=(0,C.useServerAction)(A.openFileAction);if(i)return(0,d.jsx)(y.SettingPanesSkeleton,{});if(j)return(0,d.jsx)(y.SettingError,{message:j.message});let m=h?.entries??[],n=h?.total??0,o=c.trim().toLowerCase(),p=o?m.filter(a=>a.name.toLowerCase().includes(o)):m,q=m.find(b=>b.path===a?.row.path)??a?.row;return(0,d.jsx)(y.SettingPanes,{footer:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(y.SettingRailNote,{children:(0,d.jsxs)("span",{className:"font-mono",children:[(0,d.jsx)("span",{className:"font-medium text-foreground",children:"artifacts"}),` \xb7 ${function(a,b,c){if(0===b)return"empty";let d=b>a.length?`${a.length} of ${b.toLocaleString("en")} artifacts`:`${b} ${1===b?"artifact":"artifacts"}`;return c>b?`${d} \xb7 ${c.toLocaleString("en")} files`:d}(m,n,h?.files??0)}`]})}),(0,d.jsxs)(t.Button,{variant:"outline",size:"sm",onClick:()=>l("artifacts"),children:[(0,d.jsx)(k.FolderOpen,{}),"Reveal folder"]})]}),left:(0,d.jsxs)("div",{className:"flex flex-col py-2",children:[(0,d.jsx)(y.SettingFilter,{value:c,onChange:e,placeholder:"Filter artifacts",className:"mx-2 mb-1.5 w-auto"}),0===p.length?(0,d.jsx)("p",{className:"px-4 py-3 text-xs text-muted-foreground/60",children:o?"Nothing matches":"Nothing here yet"}):p.map(a=>(0,d.jsx)(G,{entry:a,active:a.path===q?.path,onPick:()=>b({row:a,file:null})},a.path)),n>m.length&&(0,d.jsx)("button",{type:"button",onClick:()=>g(f+w.ARTIFACT_VIEW.rows),className:"mx-2 mt-2 rounded-md px-2 py-1.5 text-left font-mono text-[11px] text-muted-foreground outline-none hover:bg-muted/60 hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-inset",children:`Show ${Math.min(w.ARTIFACT_VIEW.rows,n-m.length)} more of ${n.toLocaleString("en")}`})]}),right:q?(0,d.jsx)(H,{row:q,file:a?.file??null,onOpen:a=>b({row:q,file:a}),onBack:()=>b({row:q,file:null}),onGone:()=>b(null)},q.path):(0,d.jsx)(K,{empty:0===n,onReveal:()=>l("artifacts")})})}]),c()}catch(a){c(a)}},!1),881380,a=>{"use strict";var b=a.i(405050);let c=(0,b.createServerReference)("7fc5826b1ab07dadbb3ec995a5171fff0a4fab8c7a",b.callServer,void 0,b.findSourceMapURL,"deleteArtifactAction");a.s(["deleteArtifactAction",0,c])},572327,a=>{"use strict";var b=a.i(164831);let c={name:"file-code-corner",size:24,node:[["path",{d:"M4 12.15V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-3.35",key:"1wthlu"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"m5 16-3 3 3 3",key:"331omg"}],["path",{d:"m9 22 3-3-3-3",key:"lsp7cz"}]],aliases:["file-code-2"]};c.node;let d=(0,b.default)(c);a.s(["FileCode2",0,d],572327)},595775,a=>{"use strict";var b=a.i(164831);let c={name:"images",size:24,node:[["path",{d:"m22 11-1.296-1.296a2.4 2.4 0 0 0-3.408 0L11 16",key:"9kzy35"}],["path",{d:"M4 8a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2",key:"1t0f0t"}],["circle",{cx:"13",cy:"7",r:"1",fill:"currentColor",key:"1obus6"}],["rect",{x:"8",y:"2",width:"14",height:"14",rx:"2",key:"1gvhby"}]]};c.node;let d=(0,b.default)(c);a.s(["Images",0,d],595775)},649268,a=>{"use strict";var b=a.i(164831);let c={name:"music",size:24,node:[["path",{d:"M9 18V5l12-2v13",key:"1jmyc2"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["circle",{cx:"18",cy:"16",r:"3",key:"1hluhg"}]]};c.node;let d=(0,b.default)(c);a.s(["Music",0,d],649268)},239025,a=>{"use strict";var b=a.i(164831);let c={name:"sheet",size:24,node:[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["line",{x1:"3",x2:"21",y1:"9",y2:"9",key:"1vqk6q"}],["line",{x1:"3",x2:"21",y1:"15",y2:"15",key:"o2sbyz"}],["line",{x1:"9",x2:"9",y1:"9",y2:"21",key:"1ib60c"}],["line",{x1:"15",x2:"15",y1:"9",y2:"21",key:"1n26ft"}]]};c.node;let d=(0,b.default)(c);a.s(["Sheet",0,d],239025)},951675,a=>{"use strict";var b=a.i(164831);let c={name:"trash",size:24,node:[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],aliases:["trash-2"]};c.node;let d=(0,b.default)(c);a.s(["Trash2",0,d],951675)},586446,a=>{"use strict";var b=a.i(164831);let c={name:"video",size:24,node:[["path",{d:"m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5",key:"ftymec"}],["rect",{x:"2",y:"6",width:"14",height:"12",rx:"2",key:"158x01"}]]};c.node;let d=(0,b.default)(c);a.s(["Video",0,d],586446)}];
2
-
3
- //# sourceMappingURL=_1f-dg-6._.js.map
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,279265,240829,206721,e=>{"use strict";var t=e.i(843476),n=e.i(401851),s=e.i(96892),a=e.i(689664),o=e.i(716327),r=e.i(24071),i=e.i(867927),l=e.i(931619),d=e.i(508734),u=e.i(779266),c=e.i(632781),m=e.i(77071),x=e.i(825398),p=e.i(263676),f=e.i(271645),h=e.i(798120),b=e.i(815731),g=e.i(167881),k=e.i(496336),j=e.i(683408),v=e.i(660302),w=e.i(184762),y=e.i(6799),N=e.i(435454),T=e.i(451888),C=e.i(635963),z=e.i(835878),S=e.i(764224),M=e.i(919191),A=e.i(929272),B=e.i(433505),_=e.i(372851),R=e.i(95187);let $=(0,R.createServerReference)("7f09de16ce79bb580b8077f0d6657eecbbc875bc73",R.callServer,void 0,R.findSourceMapURL,"markSeenAction");var I=e.i(245629),E=e.i(393080),q=e.i(283653),F=e.i(647163);let L=[],K=!1,D=new Set,O={sync(e,t){for(let n of(K=!0,L=[...e].reverse().map(e=>P(e,t)).slice(-30),D))n()},primed:()=>K};function P(e,t){let n=e=>({name:e,icon:t?.find(t=>t.name===e)?.icon??null}),s=n(e.bot),a=[],o=new Map,r=new Map;for(let t of e.lines){let e=t.bot?n(t.bot):s,i=t.parent&&r.get(t.parent)?.name?s:null;switch(t.kind){case"user":a.push({id:t.id,bot:s,to:null,text:t.text,kind:"user"});break;case"text":a.push({id:t.id,bot:e,to:i,text:t.text,kind:"say"});break;case"note":a.push({id:t.id,bot:e,to:i,text:t.text,kind:"note"});break;case"stop":a.push({id:t.id,bot:e,to:i,text:t.text,kind:"stop",at:t.at});break;case"tool":o.set(t.callId,a.length),a.push({id:t.id,bot:e,to:i,text:t.note??t.input,kind:"tool",tool:{name:t.name,input:t.input,note:t.note,path:t.path,callId:t.callId}});break;case"tool-result":{let e=o.get(t.callId),n=void 0===e?void 0:a[e];n?.tool&&void 0!==e&&(a[e]={...n,tool:{...n.tool,results:t.results,more:t.more}});break}case"ask":{let s=n(t.to);r.set(t.callId,s),a.push({id:t.id,bot:e,to:s,text:t.text,kind:"ask"});break}case"ask-result":{let n=r.get(t.callId);n&&t.text&&a.push({id:t.id,bot:n,to:e,text:t.text,kind:"ask"});break}case"waiting":a.push({id:t.id,bot:e,to:null,text:t.question,kind:"result",options:t.options})}}if("failed"===e.status&&e.outcome)a.push({id:`${e.id}-end`,bot:s,to:null,text:e.outcome,kind:"error"});else if("done"===e.status||"waiting"===e.status){let t=a.at(-1);t&&"say"===t.kind&&t.text===e.outcome&&(a[a.length-1]={...t,kind:"result"})}return{id:e.id,request:e.request,label:e.label,bot:s,lines:a,status:"running"===e.status?"working":e.status,outcome:e.outcome,ask:e.ask,seen:e.seen,tokens:e.tokens,contextTokens:e.contextTokens,contextBudget:e.contextBudget,updatedAt:e.updatedAt}}function U(e){for(let t=e.lines.length-1;t>=0;t--){let n=e.lines[t];if("user"!==n.kind&&"note"!==n.kind&&"stop"!==n.kind)return n}return null}let H=new Map,V={get:e=>H.get(e)??"",set(e,t){t?H.set(e,t):H.delete(e)},typing:e=>(H.get(e)?.trim().length??0)>0},W=new Set,G={announce(e){for(let t of W)t(e)},subscribe:e=>(W.add(e),()=>{W.delete(e)})},X=[];function J(){return(0,f.useSyncExternalStore)(e=>(D.add(e),()=>D.delete(e)),()=>L,()=>X)}let Y=e=>"result"===e.kind||"error"===e.kind;function Q(e){let t=[e.bot];for(let n of e.lines)t.some(e=>e.name===n.bot.name)||t.push(n.bot);return t}function Z(e){let t=new Set([e.bot.name]),n=[];for(let s of function(e){let t=[];for(let n of e){let e=t.at(-1);if(e&&e.bot.name===n.bot.name&&e.to?.name===n.to?.name&&"user"===e.lines[0].kind==("user"===n.kind)){e.lines.push(n);continue}t.push({key:n.id,bot:n.bot,to:n.to,lines:[n]})}return t}(e.lines))s.to&&!t.has(s.to.name)&&(t.add(s.to.name),n.push({kind:"invite",key:`${s.key}-joins`,from:s.bot,to:s.to})),t.add(s.bot.name),n.push({kind:"group",key:s.key,group:s});return n}function ee(e){let t=new Map;for(let n of e)for(let e of(t.has(n.bot.name)||t.set(n.bot.name,{bot:n.bot,task:n,line:null,open:0}),n.lines))"user"!==e.kind&&"note"!==e.kind&&"stop"!==e.kind&&t.set(e.bot.name,{bot:e.bot,task:n,line:e,open:t.get(e.bot.name)?.open??0});for(let n of e){if("working"!==n.status)continue;let e=t.get(n.bot.name);e&&(e.open+=1)}return[...t.values()]}function et(e){let t=(0,f.useRef)(new Set),n=e?.id??null,s=e?`${e.id}@${(0,I.toDate)(e.updatedAt).getTime()}`:null,a=!!e&&("done"===e.status||"failed"===e.status)&&!e.seen;(0,f.useEffect)(()=>{!n||!s||!a||t.current.has(s)||(t.current.add(s),$([n]).then(E.unwrapResult).then(()=>(0,q.revalidate)(h.queryKey.tasks)).catch(e=>{t.current.delete(s),y.toast.add({type:"error",title:"Could not mark the task as read",description:(0,F.errorToString)(e)})}))},[n,s,a])}e.s(["botTasks",0,O,"isOutcome",0,Y,"lastSaid",0,U,"latestPerBot",0,ee,"rosterOf",0,Q,"screenActs",0,G,"taskDrafts",0,V,"taskFromRow",0,P,"threadItems",0,Z,"useBotTasks",0,J,"useSeenOnDetail",0,et],240829);var en=e.i(609856);function es({task:e,status:n,lines:a=[],className:o}){let[r,i]=(0,f.useState)(()=>V.get(e.id));(0,f.useEffect)(()=>i(V.get(e.id)),[e.id]);let d=t=>{i(t),V.set(e.id,t)},[u,m]=ea(),[x,b]=(0,en.useServerAction)(_.cancelTaskAction,{onOk:e=>{(0,q.revalidate)(h.queryKey.tasks),G.announce({kind:"stopped",id:e.id,label:e.label})}}),j=m||b,[y,N]=(0,f.useState)(!1),[C,z]=(0,f.useState)(null);(0,f.useEffect)(()=>{N(!1),z(null)},[e.id]),(0,f.useEffect)(()=>{"running"!==n&&z(null)},[n]),(0,f.useEffect)(()=>{C&&a.some(e=>"user"===e.kind&&e.text===C)&&z(null)},[a,C]);let S=async t=>{!j&&await u(e,t)&&(d(""),"running"===n&&(z(t.trim()),N(!1)))},B="waiting"===n?e.ask:null,R=(0,T.isAppStop)(B),$=B?B.options.length?"Or put it another way…":"Your answer":"running"===n?`What's off? ${e.bot} reads this before its next step`:"Anything more? It picks up where it left off",I=(0,t.jsxs)("form",{onSubmit:e=>{e.preventDefault(),S(r)},className:"flex items-end gap-1 rounded-2xl bg-background py-1.5 pr-1.5 pl-3.5 ring-1 ring-border/80 transition-shadow focus-within:ring-ring/60",children:[(0,t.jsx)(w.Textarea,{value:r,rows:1,disabled:j,autoFocus:"running"===n,onChange:e=>d(e.target.value),onKeyDown:e=>{"Escape"===e.key&&"running"===n?N(!1):"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||229===e.keyCode||(e.preventDefault(),S(r))},placeholder:$,"aria-label":`Message for ${e.label}`,className:"max-h-32 min-h-0 flex-1 resize-none border-0 bg-transparent px-0 py-1 text-[13px] leading-5 shadow-none focus-visible:ring-0 dark:bg-transparent"}),"running"===n&&(0,t.jsx)(g.Button,{type:"button",size:"icon-sm",variant:"ghost",disabled:j,onClick:()=>N(!1),"aria-label":"Never mind",className:"text-muted-foreground",children:(0,t.jsx)(p.X,{})}),(0,t.jsx)(g.Button,{type:"submit",size:"icon-sm",variant:r.trim()?"default":"ghost",disabled:!r.trim()||j,"aria-label":"Send",className:"rounded-full",children:m?(0,t.jsx)(c.Loader2,{className:"animate-spin"}):(0,t.jsx)(s.ArrowUp,{})})]});return"running"!==n||y?B?(0,t.jsxs)("div",{className:(0,F.cn)("space-y-2.5 rounded-2xl bg-amber-500/8 px-3.5 py-3 ring-1 ring-amber-500/25",o),children:[(0,t.jsxs)("p",{className:"flex items-center gap-1.5 font-mono text-[10px] text-muted-foreground",children:[(0,t.jsx)("span",{className:"shrink-0",children:"To"}),(0,t.jsx)("span",{className:"truncate text-foreground",children:e.bot}),(0,t.jsx)("span",{className:"shrink-0 text-muted-foreground/50",children:"·"}),(0,t.jsx)("span",{className:"truncate",children:e.label})]}),B.question&&(0,t.jsx)(k.FoldedText,{text:B.question,subject:"message",clamp:"line-clamp-6",tall:"max-h-56"}),B.options.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5",children:B.options.map(e=>(0,t.jsxs)(g.Button,{size:"sm",variant:"outline",disabled:j,onClick:()=>S(e),className:"h-7 gap-1.5 rounded-full bg-background px-3 text-[12px]",children:[R&&e===T.TASK_CONTINUE&&(0,t.jsx)(l.ChevronsRight,{className:"size-3.5 text-muted-foreground"}),e]},e))}),I,"waiting"===n&&(0,t.jsx)("button",{type:"button",disabled:j,onClick:()=>x(e.id),className:"font-mono text-[10px] text-muted-foreground outline-none transition-colors hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50 disabled:opacity-50",children:"Stop this task instead"})]}):(0,t.jsx)("div",{className:o,children:I}):(0,t.jsxs)("div",{className:(0,F.cn)("flex items-center gap-2 rounded-2xl bg-muted/40 py-1.5 pr-1.5 pl-3.5 ring-1 ring-border/50",o),children:[C?(0,t.jsxs)("p",{className:"flex min-w-0 flex-1 items-center gap-2 text-[12.5px] leading-5 text-muted-foreground",children:[(0,t.jsx)(c.Loader2,{className:"size-3 shrink-0 animate-spin"}),(0,t.jsx)("span",{className:"shrink-0",children:"Before its next step:"}),(0,t.jsx)(v.ShinyText,{text:C,speed:2.2,className:"min-w-0 truncate"})]}):(0,t.jsx)(v.ShinyText,{text:`${e.bot} is on it — Thursday steers it by voice.`,speed:2.4,className:"min-w-0 flex-1 truncate text-[12.5px] leading-5 break-keep"}),(0,t.jsxs)(g.Button,{type:"button",size:"sm",variant:"ghost",disabled:j,onClick:()=>N(!0),className:"h-7 shrink-0 gap-1.5 rounded-full px-2.5 text-[12px]",children:[(0,t.jsx)(M.CornerDownLeft,{className:"size-3.5"}),"Step in"]}),(0,t.jsx)("span",{className:"h-4 w-px shrink-0 bg-border"}),(0,t.jsx)(g.Button,{type:"button",size:"icon-sm",variant:"ghost",disabled:j,onClick:()=>x(e.id),"aria-label":"Stop this task",className:"shrink-0 text-muted-foreground/60 hover:text-foreground",children:b?(0,t.jsx)(c.Loader2,{className:"animate-spin"}):(0,t.jsx)(A.Square,{className:"size-3"})})]})}function ea(){let[e,t]=(0,en.useServerAction)(B.answerTaskAction,{onOk:()=>(0,q.revalidate)(h.queryKey.tasks)});return[async(t,n)=>{let s=n.trim();if(!s)return!1;try{let n=await e(t.id,s);return G.announce({kind:"answered",id:n.id,label:n.label,answer:s}),!0}catch{return!1}},t]}e.s(["TaskReply",0,es,"useAnswerTask",0,ea],206721);var eo=e.i(989409),er=e.i(256604),ei=e.i(621285),el=e.i(864723),ed=e.i(222055);let eu=(0,f.memo)(function(){let e=J(),{data:n}=(0,q.useServerRoute)(h.queryKey.bot),[s,a]=(0,f.useState)(!1),[o,r]=(0,f.useState)(null),[i,l]=(0,f.useState)(!1),d=[...e].reverse(),u=o?d.find(e=>e.id===o)??null:null,[c,m]=function(){let[e,t]=(0,f.useState)(new Map),n=(0,f.useRef)(new Map);return(0,f.useEffect)(()=>()=>{for(let e of n.current.values())clearTimeout(e)},[]),[e,(0,f.useCallback)(e=>{t(t=>new Map(t).set(e.at,e));let s=n.current.get(e.at);s&&clearTimeout(s),n.current.set(e.at,setTimeout(()=>{n.current.delete(e.at),t(t=>{let n=new Map(t);return n.delete(e.at),n})},3400))},[])]}(),{crew:x,more:p}=(0,f.useMemo)(()=>ex(n,e),[n,e]),b=(0,f.useRef)(null),g=(0,f.useRef)(new Set);(0,f.useEffect)(()=>{if(!O.primed())return;let t=new Map(d.map(e=>[e.id,e.status])),n=b.current;b.current=t;let s=new Set;for(let t of e)for(let e of t.lines)"ask"===e.kind&&e.to&&s.add(e.id);let a=g.current;if(g.current=s,!n)return;let o=new Map;for(let t of e)for(let e of t.lines){if("ask"!==e.kind||!e.to||a.has(e.id))continue;let t=o.get(e.bot.name)??[];t.push({from:e.bot,to:e.to,text:e.text}),o.set(e.bot.name,t)}for(let[e,t]of o){if(1===t.length){m({at:t[0].to.name,from:t[0].from,text:em(t[0].text)});continue}m({at:e,from:t[0].from,text:`sent ${t.length} parts out`})}for(let e of d)n.get(e.id)!==e.status&&"working"===e.status&&m(n.has(e.id)?{at:e.bot.name,from:null,text:"picked it back up"}:{at:e.bot.name,from:eK,text:`took on \u201c${em(e.label)}\u201d`})},[e,m]),et(s?u:null);let k=e.filter(e=>"working"===e.status).length,j=d.filter(ep),v=j.length,w=d.filter(ef),y=w.filter(e=>"failed"===e.status).length,N=(0,f.useCallback)(()=>l(!1),[]);return(0,t.jsx)("div",{className:"pointer-events-none absolute right-5 bottom-5 z-10 flex w-[min(80vw,calc(100vw-2.5rem))] flex-col items-end gap-2",children:s?(0,t.jsx)("div",{className:"pointer-events-auto flex max-h-[min(44rem,78vh)] w-132 max-w-full animate-in flex-col overflow-hidden rounded-3xl bg-background/75 shadow-2xl shadow-black/6 ring-1 ring-border/50 backdrop-blur-xl fade-in slide-in-from-bottom-1 duration-200",children:u?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(ez,{task:u,onBack:()=>r(null),onClose:()=>a(!1)}),(0,t.jsx)(eq,{task:u,className:"min-h-0 flex-1"}),(0,t.jsx)(es,{task:{id:u.id,label:u.label,bot:u.bot.name,ask:function(e){if(!e.ask?.question)return e.ask;let t=e.lines.at(-1);return t&&Y(t)&&t.text===e.ask.question?{...e.ask,question:""}:e.ask}(u)},status:"working"===u.status?"running":u.status,lines:u.lines,className:"mx-3 mb-2 shrink-0"})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(eC,{count:e.length,pending:v,composing:i,onCompose:()=>l(!0),onClose:()=>i?l(!1):a(!1)}),i?(0,t.jsx)(ek,{bots:n,onDone:N}):d.length?(0,t.jsx)(eI,{tasks:d,onPick:r}):(0,t.jsx)(e_,{bots:n}),!i&&(0,t.jsx)(eR,{})]})}):(0,t.jsx)(eh,{crew:x,more:p,bubbles:c,bots:n,rows:j,count:e.length,busy:k,pending:v,unread:w.length,failed:y,composing:i,onCompose:()=>l(!0),onCloseCompose:N,onPick:e=>{r(e),a(!0)},onOpen:()=>{let e=j.length?j:w;o||1!==e.length||r(e[0].id),a(!0)}})})}),ec=new Map,em=e=>{let t=(0,F.plainText)(e).replace(/\s+/g," ").trim();return t.length>28?`${t.slice(0,27)}…`:t};function ex(e,t){let n=new Map;for(let e of ee(t)){let{task:t,bot:s,line:a}=e;if("waiting"===t.status&&t.bot.name===s.name){n.set(s.name,{waiting:!0,word:null});continue}!("working"!==t.status||n.get(s.name)?.waiting)&&n.set(s.name,{waiting:!1,word:a?"tool"===a.kind&&a.tool?em(a.tool.note??`${a.tool.name} \xb7 ${a.tool.input}`):"say"===a.kind?em(a.text):null:null})}let s=new Map;for(let t of e??[])s.set(t.name,{name:t.name,icon:t.icon,awake:n.has(t.name),waiting:n.get(t.name)?.waiting??!1,word:n.get(t.name)?.word??null});for(let[e,t]of n)s.has(e)||s.set(e,{name:e,icon:null,awake:!0,waiting:t.waiting,word:t.word});let a=[...s.values()];if(!a.length)return{crew:ej.slice(0,ev),more:0};for(let e of ej){if(a.length>=ev)break;s.has(e.name)||a.push(e)}let o=e=>e.waiting?0:e.awake?1:e.standIn?3:2,r=a.map((e,t)=>({face:e,at:t})).sort((e,t)=>o(e.face)-o(t.face)||e.at-t.at).map(e=>e.face);return{crew:r.slice(0,10),more:Math.max(0,r.length-10)}}let ep=e=>"waiting"===e.status,ef=e=>("done"===e.status||"failed"===e.status)&&!e.seen;function eh({crew:e,more:n,bubbles:s,bots:o,rows:r,count:i,busy:l,pending:d,unread:u,failed:m,composing:x,onCompose:f,onCloseCompose:h,onPick:b,onOpen:g}){let k=function({count:e,busy:t,pending:n,unread:s,failed:a}){return n>0?{text:1===n?"waiting on you":`${n} waiting on you`,tone:F.WAITING_INK,shine:"waiting"}:a>0?{text:1===a?"1 failed":`${a} failed`,tone:"text-destructive",shine:null}:s>0?{text:1===s?"1 new answer":`${s} new answers`,tone:F.WAITING_INK,shine:null}:t>0?{text:1===t?"working":`${t} running`,tone:"text-muted-foreground",shine:"muted"}:e>0?{text:"all done",tone:"text-muted-foreground",shine:null}:{text:"no jobs yet",tone:"text-muted-foreground",shine:null}}({count:i,busy:l,pending:d,unread:u,failed:m}),j=x||d>0;return(0,t.jsxs)("div",{className:(0,F.cn)("pointer-events-auto w-fit max-w-full bg-background/78 ring-1 ring-border/50 backdrop-blur-md transition-shadow duration-300",j?"max-w-[min(33rem,100%)] min-w-96 rounded-3xl shadow-lg shadow-black/8":"rounded-full shadow-sm shadow-black/3"),children:[(0,t.jsx)("div",{className:(0,F.cn)("grid overflow-hidden transition-[grid-template-rows] duration-300 ease-out",j?"grid-rows-[1fr]":"grid-rows-[0fr]"),children:(0,t.jsx)("div",{className:"min-h-0 overflow-hidden",inert:!j,children:x?(0,t.jsx)(ek,{bots:o,onDone:h}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("p",{className:"flex items-center gap-2 px-3 py-2 font-mono text-[10px] tracking-wide text-muted-foreground",children:[(0,t.jsxs)("span",{className:"flex-1",children:["needs you · ",d]}),(0,t.jsx)(eb,{onClick:f})]}),(0,t.jsx)("div",{className:"px-1.5 pb-2",children:r.map(e=>(0,t.jsx)(eE,{task:e,onPick:()=>b(e.id)},e.id))}),(0,t.jsx)("span",{className:"block h-1.5"})]})})}),(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5",children:[(0,t.jsxs)("button",{type:"button",onClick:g,"aria-label":i?`Tasks (${i})`:"Bots",className:"flex min-w-0 flex-1 items-center gap-2 rounded-full text-left outline-none focus-visible:ring-3 focus-visible:ring-ring/50",children:[(0,t.jsx)(ew,{crew:e,more:n,bubbles:s}),(0,t.jsxs)("span",{className:"ml-auto flex h-7 shrink-0 items-center gap-1.5",children:[k.shine?(0,t.jsx)(v.ShinyText,{text:k.text,tone:k.shine,speed:2.6,className:"block truncate text-[14px] leading-5 tracking-[-0.15px]"}):(0,t.jsx)("span",{className:(0,F.cn)("block animate-in truncate text-[14px] leading-5 tracking-[-0.15px] fade-in duration-300",k.tone),children:k.text},k.text),(0,t.jsxs)("span",{className:"grid size-4 shrink-0 place-items-center",children:[0===d&&0===u&&l>0&&(0,t.jsx)(c.Loader2,{className:"size-4 animate-spin text-muted-foreground/70"}),0===d&&0===m&&(u>0||0===l&&i>0)&&(0,t.jsx)(a.Check,{className:"size-4 text-muted-foreground/60"})]})]})]}),x&&(0,t.jsx)(eg,{onClick:h,label:"Cancel the message",children:(0,t.jsx)(p.X,{className:"size-3.5"})})]})]})}function eb({onClick:e}){return(0,t.jsx)(eg,{onClick:e,label:"Message a bot",children:(0,t.jsx)(m.Plus,{className:"size-4"})})}function eg({onClick:e,label:n,children:s}){return(0,t.jsx)("button",{type:"button",onClick:e,"aria-label":n,className:"grid size-7 shrink-0 place-items-center rounded-full text-muted-foreground outline-none transition-colors hover:bg-muted hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",children:s})}function ek({bots:e,onDone:n}){let[a,o]=(0,f.useState)(null),[l,d]=(0,f.useState)(""),[u,m]=(0,en.useServerAction)(N.startTaskAction,{onOk:()=>{(0,q.revalidate)(h.queryKey.tasks),n()}}),x=e?.length?e.filter(e=>!e.disabled).map(e=>({name:e.name,icon:e.icon})):[{name:T.DEFAULT_BOT.name,icon:T.DEFAULT_BOT.icon}],p=()=>{a&&l.trim()&&!m&&u(a.name,l.trim())};return a?(0,t.jsxs)("div",{className:"flex min-h-32 flex-col pb-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 pt-3 pb-2",children:[(0,t.jsx)("button",{type:"button",onClick:()=>o(null),"aria-label":"Choose a different bot",className:"grid size-6 shrink-0 place-items-center rounded-lg text-muted-foreground outline-none transition-colors hover:bg-muted hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",children:(0,t.jsx)(r.ChevronLeft,{className:"size-3.5"})}),(0,t.jsx)(C.BotMark,{size:22,seed:a.name,vary:a.name,color:a.icon?.color,shape:a.icon?.shape,outline:a.icon?.outline,className:"shrink-0"}),(0,t.jsxs)("span",{className:"min-w-0 flex-1 truncate text-[12.5px] font-medium",children:["To ",a.name]})]}),(0,t.jsxs)("form",{onSubmit:e=>{e.preventDefault(),p()},className:"mx-3 mt-auto flex items-end gap-1 rounded-2xl bg-background py-2 pr-2 pl-3 ring-1 ring-border/80 transition-shadow focus-within:ring-ring/60",children:[(0,t.jsx)(w.Textarea,{value:l,rows:1,autoFocus:!0,disabled:m,onChange:e=>d(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||229===e.keyCode||(e.preventDefault(),p())},placeholder:`What should ${a.name} do? It cannot hear the call, so say the whole job.`,"aria-label":`Message for ${a.name}`,className:"max-h-32 min-h-15 flex-1 resize-none border-0 bg-transparent px-0 py-0 text-[13px] leading-5 shadow-none focus-visible:ring-0 dark:bg-transparent"}),(0,t.jsx)(g.Button,{type:"submit",size:"icon-sm",variant:l.trim()?"default":"ghost",disabled:!l.trim()||m,"aria-label":"Send",className:"rounded-full",children:m?(0,t.jsx)(c.Loader2,{className:"animate-spin"}):(0,t.jsx)(s.ArrowUp,{})})]})]}):(0,t.jsxs)("div",{className:"min-h-32 pb-3",children:[(0,t.jsx)("p",{className:"px-3 pt-3 pb-1.5 font-mono text-[10px] tracking-wide text-muted-foreground",children:"message a bot"}),(0,t.jsx)("div",{className:"px-1",children:x.map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>o(e),className:"flex w-full items-center gap-2.5 rounded-xl px-2 py-1.5 text-left outline-none transition-colors hover:bg-muted/60 focus-visible:ring-3 focus-visible:ring-ring/50",children:[(0,t.jsx)(C.BotMark,{size:22,seed:e.name,vary:e.name,color:e.icon?.color,shape:e.icon?.shape,outline:e.icon?.outline,className:"shrink-0"}),(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate text-[13px]",children:e.name}),(0,t.jsx)(i.ChevronRight,{className:"size-3.5 shrink-0 text-muted-foreground/50"})]},e.name))})]})}let ej=["alto","brio","cinder","delta"].map((e,t)=>({name:e,icon:{color:el.MARK_PALETTE[Math.floor(t*el.MARK_PALETTE.length/4)],shape:el.MARK_SHAPES[t%el.MARK_SHAPES.length]},awake:!1,waiting:!1,word:null,standIn:!0})),ev=3;function ew({crew:e,more:n,bubbles:s}){return(0,t.jsxs)("span",{className:"flex min-w-0 shrink items-center",children:[e.map((n,a)=>{let o=s.get(n.name)??null;return(0,t.jsxs)(f.Fragment,{children:[(0,t.jsxs)("span",{className:(0,F.cn)("relative shrink-0 transition-[margin,transform] duration-500 ease-out",a>0&&!e[a-1].word&&"-ml-2",n.standIn&&"opacity-35",n.awake&&"-translate-y-0.5 scale-110"),style:{zIndex:e.length-a},children:[(0,t.jsx)(ey,{face:n}),o&&(0,t.jsx)(eN,{handoff:o})]}),n.word&&(0,t.jsx)("span",{className:"mx-2.5 min-w-0 shrink truncate",children:(0,t.jsx)(v.ShinyText,{text:n.word,speed:2.6,className:"truncate text-[13px] leading-5 tracking-[-0.1px]"})})]},n.name)}),n>0&&(0,t.jsxs)("span",{className:(0,F.cn)("grid size-7 shrink-0 place-items-center rounded-[9px] bg-muted font-mono text-[10px] text-muted-foreground ring-1 ring-border/50",!e.at(-1)?.word&&"-ml-2"),title:`${n} more`,children:["+",n]})]})}function ey({face:e}){let n=(0,f.useMemo)(()=>e.awake?{glow:20}:void 0,[e.awake]);return(0,t.jsx)(C.BotMark,{size:28,seed:e.name,vary:e.name,color:e.icon?.color,shape:e.icon?.shape,outline:e.icon?.outline,notify:e.waiting,options:n})}function eN({handoff:e}){return(0,t.jsxs)("span",{className:"pointer-events-none absolute bottom-[calc(100%+9px)] left-1/2 flex -translate-x-1/2 animate-in flex-col items-center whitespace-nowrap fade-in zoom-in-95 duration-200",children:[(0,t.jsxs)("span",{className:"flex items-center gap-1.5 rounded-full bg-background px-2.5 py-1 text-[12.5px] leading-4 tracking-[-0.1px] shadow-lg shadow-black/10 ring-1 ring-border",children:[e.from?.name===eK.name?(0,t.jsx)(er.ThursdayMark,{size:14,className:"shrink-0 opacity-75"}):e.from&&(0,t.jsx)(C.BotMark,{size:14,seed:e.from.name,vary:e.from.name,color:e.from.icon?.color,shape:e.from.icon?.shape,outline:e.from.icon?.outline,className:"shrink-0 opacity-75"}),e.text]}),(0,t.jsx)("span",{className:"-mt-px size-0 border-x-[5px] border-t-[6px] border-x-transparent border-t-border"}),(0,t.jsx)("span",{className:"-mt-[6.5px] size-0 border-x-[5px] border-t-[6px] border-x-transparent border-t-background"})]})}function eT({onClick:e}){return(0,t.jsx)("button",{type:"button",onClick:e,"aria-label":"Fold the room away",className:"grid size-7 shrink-0 place-items-center rounded-full bg-muted text-foreground outline-none transition-colors hover:bg-muted-foreground/20 focus-visible:ring-3 focus-visible:ring-ring/50",children:(0,t.jsx)(p.X,{className:"size-3.5"})})}function eC({count:e,pending:n,composing:s,onCompose:a,onClose:o}){return(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3.5 pt-3 pb-1.5",children:[(0,t.jsx)("span",{className:"text-[13px] font-medium",children:"Tasks"}),e>0&&!s&&(0,t.jsx)("span",{className:"font-mono text-[10px] text-muted-foreground tabular-nums",children:n>0?`${n} for you \xb7 ${e}`:e}),(0,t.jsx)("span",{className:"flex-1"}),!s&&(0,t.jsx)(eb,{onClick:a}),(0,t.jsx)(eT,{onClick:o})]})}function ez({task:e,onBack:n,onClose:s}){return(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 pt-3 pb-1",children:[(0,t.jsx)("button",{type:"button",onClick:n,"aria-label":"Back to the list",className:"shrink-0 rounded-md p-1 text-muted-foreground outline-none transition-colors hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",children:(0,t.jsx)(r.ChevronLeft,{className:"size-4"})}),(0,t.jsx)(C.BotMark,{size:22,seed:e.bot.name,vary:e.id,color:e.bot.icon?.color,shape:e.bot.icon?.shape,outline:e.bot.icon?.outline,notify:!1}),(0,t.jsxs)("span",{className:"min-w-0 flex-1 truncate text-[13px] font-medium",children:[e.label,(0,t.jsx)("span",{title:e.id,className:"ml-1.5 font-mono text-[10px] font-normal text-muted-foreground/60",children:e.id.slice(0,8)})]}),(0,t.jsx)(eS,{usage:e.tokens}),(0,t.jsx)(eM,{task:e}),(0,t.jsx)(eB,{task:e}),(0,t.jsx)(eT,{onClick:s})]})}function eS({usage:e}){let n=e.input+e.output;return n?(0,t.jsx)("span",{title:`in ${(0,F.formatCount)(e.input)} \xb7 out ${(0,F.formatCount)(e.output)}`,className:"shrink-0 font-mono text-[10px] text-muted-foreground/70 tabular-nums",children:(0,F.formatCount)(n)}):null}function eM({task:e}){let{contextTokens:n,contextBudget:s}=e;if(!n||!s)return null;let a=Math.min(1,n/s);return(0,t.jsx)("span",{title:`Context ${(0,F.formatCount)(n)} of ${(0,F.formatCount)(s)} — it summarizes itself here`,className:"block h-[3px] w-9 shrink-0 overflow-hidden rounded-full bg-muted",children:(0,t.jsx)("span",{className:(0,F.cn)("block h-full rounded-full",a>.9?"bg-amber-500/80":"bg-muted-foreground/70"),style:{width:`${Math.max(4,Math.round(100*a))}%`}})})}let eA={working:"text-muted-foreground",waiting:F.WAITING_INK,done:"text-foreground",failed:"text-destructive"};function eB({task:e}){let n="done"===e.status&&e.seen?"text-muted-foreground":eA[e.status];return"working"===e.status?(0,t.jsx)(v.ShinyText,{text:"working",speed:2.2,className:"shrink-0 font-mono text-[10px]"}):(0,t.jsx)("span",{className:(0,F.cn)("flex shrink-0 items-center gap-1.5 font-mono text-[10px]",n),children:e.status})}function e_({bots:e}){let{crew:n,more:s}=ex(e,[]);return(0,t.jsxs)("div",{className:"flex flex-col items-center gap-3 px-6 pt-3 pb-4 text-center",children:[(0,t.jsx)(ew,{crew:n,more:s,bubbles:ec}),e?.length?(0,t.jsx)("p",{className:"text-[12px] text-muted-foreground",children:"Nothing handed over yet — ask for something that takes a while."}):(0,t.jsxs)("p",{className:"text-[12px] text-muted-foreground",children:["Thursday hands work to ",T.DEFAULT_BOT.name," until you make bots of your own in Settings › Bots."]})]})}function eR(){return(0,t.jsx)("div",{className:"flex shrink-0 justify-end px-3 pb-2.5",children:(0,t.jsxs)("button",{type:"button",onClick:()=>(0,eo.openSettings)("tasks"),className:"flex items-center gap-1 rounded-md px-1.5 py-1 font-mono text-[10px] text-muted-foreground outline-none transition-colors hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",children:[(0,t.jsx)(u.History,{className:"size-3"}),"History"]})})}let e$=[{id:"you",label:"needs you",holds:ep},{id:"working",label:"working",holds:e=>"working"===e.status},{id:"done",label:"done",holds:()=>!0}];function eI({tasks:e,onPick:n}){let s=new Map;for(let t of e){let e=e$.find(e=>e.holds(t))??e$[2],n=s.get(e.id);n?n.push(t):s.set(e.id,[t])}return(0,t.jsx)("div",{className:"flex min-h-0 flex-1 flex-col gap-0.5 overflow-y-auto px-2 pt-1 pb-1 scrollbar-none",children:e$.map((e,a)=>{let o=s.get(e.id)??[];return o.length?(0,t.jsxs)(f.Fragment,{children:[(0,t.jsxs)("p",{className:(0,F.cn)("px-2.5 pb-1 font-mono text-[10px] text-muted-foreground",0===a?"pt-1":"pt-3"),children:[e.label," · ",o.length]}),o.map(e=>(0,t.jsx)(eE,{task:e,onPick:()=>n(e.id)},e.id))]},e.id):null})})}function eE({task:e,onPick:n}){let s=ep(e),a=e.lines.at(-1),o=(0,f.useMemo)(()=>(function(e){if("waiting"===e.status&&e.ask)return{text:(0,T.isAppStop)(e.ask)?(0,F.plainText)(e.outcome??e.ask.question):e.ask.question,tone:F.WAITING_INK};let t=e.seen;if("failed"===e.status)return{text:(0,F.plainText)(e.outcome??"Failed"),tone:t?"text-destructive/70":"text-destructive"};if("done"===e.status)return{text:(0,F.plainText)(e.outcome??"Done"),tone:t?"text-muted-foreground":"text-foreground"};let n=U(e);return n?{text:"tool"===n.kind&&n.tool?n.tool.note??`${n.tool.name} \xb7 ${n.tool.input}`:n.text,tone:"text-muted-foreground"}:{text:`${e.bot.name} is taking it on…`,tone:"text-muted-foreground italic"}})(e),[e.status,e.outcome,e.seen,e.ask,a?.id]),[r,i]=ea(),[d,u]=(0,f.useState)(null),m="waiting"===e.status?e.ask?.options??[]:[];return(0,t.jsxs)("div",{className:"rounded-xl transition-colors hover:bg-muted/60",children:[(0,t.jsxs)("button",{type:"button",onClick:n,className:"flex w-full items-center gap-2.5 rounded-xl px-2 py-1.5 text-left outline-none focus-visible:ring-3 focus-visible:ring-ring/50",children:[(0,t.jsx)("span",{className:"relative flex size-8 shrink-0 items-center justify-center overflow-visible",title:e.bot.name,children:(0,t.jsx)(C.BotMark,{size:32,seed:e.bot.name,vary:e.id,color:e.bot.icon?.color,shape:e.bot.icon?.shape,outline:e.bot.icon?.outline,state:"working"===e.status?"thinking":"idle",notify:s})}),(0,t.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,t.jsxs)("span",{className:"flex items-center justify-between gap-2",children:[(0,t.jsx)("span",{className:(0,F.cn)("min-w-0 truncate text-[14px] leading-5 tracking-[-0.15px]",s?"text-foreground":"text-foreground/80"),children:e.label}),(0,t.jsx)(z.BotRoster,{bots:Q(e),taskId:e.id}),(0,t.jsx)("span",{className:"flex-1"}),(0,t.jsx)("span",{className:"shrink-0 font-mono text-[11px] leading-4 text-muted-foreground/70 tabular-nums",children:(0,I.shortAgo)(e.updatedAt)})]}),(0,t.jsxs)("span",{className:"mt-px flex h-4 items-center gap-1.5",children:["working"===e.status&&(0,t.jsx)(c.Loader2,{className:"size-3 shrink-0 animate-spin text-muted-foreground/70"}),"working"===e.status?(0,t.jsx)(v.ShinyText,{text:o.text,speed:2.2,className:(0,F.cn)("min-w-0 flex-1 truncate text-[12px] leading-4",o.tone)}):(0,t.jsx)("span",{className:(0,F.cn)("min-w-0 flex-1 truncate text-[12px] leading-4",o.tone),children:o.text})]})]})]}),m.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5 pt-0.5 pr-2 pb-2 pl-12.5",children:m.map(n=>(0,t.jsxs)(g.Button,{size:"sm",variant:"outline",loading:d===n,disabled:i,onClick:async()=>{u(n),await r(e,n),u(null)},className:"h-7 gap-1.5 rounded-full border-amber-500/35 bg-background px-3 text-[12px]",children:[n===T.TASK_CONTINUE&&(0,t.jsx)(l.ChevronsRight,{className:"size-3.5 text-muted-foreground"}),n]},n))})]})}function eq({task:e,className:n}){let s=(0,f.useRef)(null),a=(0,f.useRef)(!0);return(0,f.useEffect)(()=>{a.current=!0},[e.id]),(0,f.useEffect)(()=>{let e=s.current;e&&a.current&&(e.scrollTop=e.scrollHeight)},[e.lines,e.status]),(0,t.jsx)(ei.FileViewer,{children:(0,t.jsxs)("div",{ref:s,onScroll:e=>{let t=e.currentTarget;a.current=t.scrollHeight-t.scrollTop-t.clientHeight<24},className:(0,F.cn)("max-h-[64vh] space-y-3 overflow-y-auto px-4 pt-6 pb-4 mask-[linear-gradient(to_bottom,transparent,black_2rem)] scrollbar-none",n),children:[(0,t.jsx)(eL,{task:e}),Z(e).map(n=>"invite"===n.kind?(0,t.jsx)(eD,{from:n.from,to:n.to},n.key):(0,t.jsx)(eH,{group:n.group,task:e},n.key)),"working"===e.status&&(0,t.jsx)(eF,{task:e})]})})}function eF({task:e}){if(e.lines.some(e=>e.tool&&void 0===e.tool.results))return null;let n=e.lines.at(-1),s=n?.kind==="ask"&&n.to?n.to:n?.bot;return(0,t.jsx)(v.ShinyText,{text:s?`${s.name} is on the next step…`:`${e.bot.name} is taking it on…`,speed:2.2,className:"block px-1 font-mono text-[10px]"})}function eL({task:e}){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(eD,{from:eK,to:e.bot}),(0,t.jsx)(eP,{children:(0,t.jsx)(b.Bubble,{align:"end",className:"max-w-full",children:(0,t.jsx)(b.BubbleContent,{className:"rounded-tr-md py-2 pr-2 pl-3.5",children:(0,t.jsx)(k.FoldedText,{text:e.request,subject:"request"})})})})]})}let eK={name:"Thursday"};function eD({from:e,to:n}){return(0,t.jsx)("div",{className:"flex animate-in justify-center fade-in duration-300",children:(0,t.jsxs)("span",{className:"flex max-w-full items-center gap-1.5 rounded-full bg-muted px-2.5 py-1 font-mono text-[10px] text-muted-foreground",children:[(0,t.jsx)(eO,{bot:e}),(0,t.jsx)("span",{className:"shrink-0 text-muted-foreground/70",children:"invited"}),(0,t.jsx)(eO,{bot:n})]})})}function eO({bot:e}){return(0,t.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5",children:[(0,t.jsx)(C.BotMark,{size:15,seed:e.name,color:e.icon?.color,shape:e.icon?.shape,outline:e.icon?.outline,notify:!1,className:"shrink-0"}),(0,t.jsx)("span",{className:"truncate",children:e.name})]})}function eP({children:e}){return(0,t.jsx)(eU,{side:"end",name:"Thursday",mark:(0,t.jsx)(C.BotMark,{size:26,seed:"thursday",notify:!1,className:"mt-1 shrink-0"}),children:e})}function eU({side:e,mark:n,name:s,children:a}){return(0,t.jsxs)("div",{className:(0,F.cn)("flex gap-2.5","end"===e&&"flex-row-reverse"),children:[n,(0,t.jsxs)("div",{className:(0,F.cn)("flex min-w-0 flex-1 flex-col gap-1.5 [&>*+*]:max-w-[80%]","end"===e&&"items-end"),children:[(0,t.jsx)("p",{className:"max-w-[80%] truncate px-1 font-mono text-[10px] text-muted-foreground",children:s}),a]})]})}function eH({group:e,task:n}){return e.lines[0]?.kind==="user"?(0,t.jsx)("div",{className:"animate-in fade-in slide-in-from-bottom-2 duration-300",children:(0,t.jsx)(eP,{children:e.lines.map(e=>(0,t.jsx)(b.Bubble,{align:"end",className:"max-w-full",children:(0,t.jsx)(b.BubbleContent,{className:"rounded-tr-md px-3.5 text-[13px] leading-snug break-keep",children:e.text})},e.id))})}):(0,t.jsx)("div",{className:"animate-in fade-in slide-in-from-bottom-2 duration-300",children:(0,t.jsx)(eU,{side:e.bot.name===n.bot.name?"start":"end",name:e.bot.name,mark:(0,t.jsx)(C.BotMark,{size:26,seed:e.bot.name,vary:n.id,color:e.bot.icon?.color,shape:e.bot.icon?.shape,outline:e.bot.icon?.outline,notify:!1,className:"mt-1 shrink-0"}),children:(function(e){let t=[];for(let n of e){let e="tool"===n.kind&&n.tool?"tools":"stop"===n.kind?"stops":"said",s=t.at(-1),a=s?.kind===e&&("stops"!==e||eJ(s.lines[0].text)===eJ(n.text));s&&a?s.lines.push(n):t.push({kind:e,key:n.id,lines:[n]})}return t})(e.lines).map(e=>"tools"===e.kind?(0,t.jsx)(eG,{lines:e.lines,taskId:n.id},e.key):"stops"===e.kind?(0,t.jsx)(eX,{lines:e.lines},e.key):e.lines.map(e=>(0,t.jsx)(eV,{line:e,taskId:n.id},e.id)))})})}function eV({line:e,taskId:n}){if("tool"===e.kind&&e.tool)return(0,t.jsx)(ed.BotTool,{tool:e.tool,taskId:n});if("note"===e.kind)return(0,t.jsxs)("details",{className:"w-full py-1 text-muted-foreground",children:[(0,t.jsxs)("summary",{className:"flex cursor-pointer list-none items-center gap-2.5 outline-none [&::-webkit-details-marker]:hidden",children:[(0,t.jsx)("span",{className:"h-px flex-1 bg-border"}),(0,t.jsx)("span",{className:"shrink-0 font-mono text-[10px]",children:"Compacted — it goes on from its summary"}),(0,t.jsx)("span",{className:"h-px flex-1 bg-border"})]}),(0,t.jsx)("p",{className:"mt-2 rounded-xl bg-muted/40 px-3 py-2 text-[11px] leading-relaxed whitespace-pre-wrap break-keep",children:e.text})]});if(!Y(e))return(0,t.jsx)("p",{className:"px-1 text-[12.5px] leading-relaxed break-keep text-muted-foreground",children:e.text});if(e.options)return(0,t.jsxs)("div",{className:"w-fit max-w-full space-y-1.5 rounded-2xl bg-amber-500/8 px-3 py-2 ring-1 ring-amber-500/25",children:[(0,t.jsx)("p",{className:"text-[13px] leading-snug break-keep",children:e.text}),e.options.length>0&&(0,t.jsx)("p",{className:"flex flex-wrap gap-1",children:e.options.map(e=>(0,t.jsx)("span",{className:"rounded-full bg-background/70 px-2 py-0.5 font-mono text-[10px] text-muted-foreground",children:e},e))})]});let s="error"===e.kind;return(0,t.jsxs)("div",{className:"min-w-0 px-1",children:[s&&(0,t.jsxs)("p",{className:"mb-1.5 flex items-center gap-1.5 font-mono text-[10px] text-destructive",children:[(0,t.jsx)(p.X,{className:"size-3 shrink-0"}),"Could not finish"]}),(0,t.jsx)(j.Markdown,{className:(0,F.cn)("overflow-x-auto text-[13px] leading-relaxed break-keep [&_h1]:text-[15px] [&_h2]:text-[14px] [&_h3]:text-[13px] [&_h3]:font-semibold [&_li]:my-0.5 [&_table]:text-[12px] [&>*:first-child]:mt-0 [&>*:last-child]:mb-0",s&&"text-destructive"),children:e.text}),(0,t.jsxs)("div",{className:"mt-2 flex items-center gap-2",children:[(0,t.jsx)(S.PathChips,{text:e.text,className:"min-w-0"}),!s&&(0,t.jsx)("span",{className:"ml-auto shrink-0",children:(0,t.jsx)(eW,{text:e.text})})]})]})}function eW({text:e}){let[n,s]=(0,f.useState)(!1),o=(0,f.useRef)(null);return(0,f.useEffect)(()=>()=>{o.current&&clearTimeout(o.current)},[]),(0,t.jsx)("button",{type:"button","aria-label":"Copy the answer",onClick:async()=>{try{await navigator.clipboard.writeText(e),s(!0),o.current&&clearTimeout(o.current),o.current=setTimeout(()=>s(!1),1400)}catch(e){y.toast.add({type:"error",title:"Could not copy the answer",description:(0,F.errorToString)(e)})}},className:"grid size-5 shrink-0 place-items-center rounded-md text-muted-foreground outline-none transition-colors hover:bg-muted hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",children:n?(0,t.jsx)(a.Check,{className:"size-3"}):(0,t.jsx)(d.Copy,{className:"size-3"})})}function eG({lines:e,taskId:n}){return(0,t.jsxs)("div",{className:"flex w-full flex-col gap-0.5 rounded-2xl bg-muted/40 p-1",children:[e.length>1&&(0,t.jsxs)("p",{className:"px-2 py-1 font-mono text-[10px] text-muted-foreground",children:[e.length," steps"]}),e.map(e=>e.tool?(0,t.jsx)(ed.BotTool,{tool:e.tool,taskId:n,collapsed:!0},e.id):null)]})}function eX({lines:e}){return(0,t.jsxs)("details",{className:"group min-w-0 px-1 text-muted-foreground",children:[(0,t.jsxs)("summary",{className:"flex cursor-pointer list-none items-center gap-1.5 text-[12.5px] leading-relaxed outline-none [&::-webkit-details-marker]:hidden",children:[(0,t.jsx)(x.RotateCw,{className:"size-3 shrink-0"}),(0,t.jsx)("span",{className:"min-w-0 truncate",children:eJ(e[0].text)}),e.length>1&&(0,t.jsxs)("span",{className:"shrink-0 font-mono text-[10px] text-muted-foreground/70",children:["×",e.length]}),(0,t.jsx)(o.ChevronDown,{className:"size-2.5 shrink-0 text-muted-foreground/70 transition-transform group-open:rotate-180"})]}),(0,t.jsx)("div",{className:"mt-1 space-y-1 pl-4.5 text-[11px] leading-relaxed",children:e.map(e=>(0,t.jsxs)("p",{className:"flex gap-2 break-keep",children:[e.at&&(0,t.jsx)("span",{className:"shrink-0 font-mono text-muted-foreground/70 tabular-nums",children:(0,n.format)((0,I.toDate)(e.at),"HH:mm:ss")}),(0,t.jsx)("span",{className:"min-w-0",children:e.text})]},e.id))})]})}let eJ=e=>e.split(" (")[0].replace(/\.$/,"");e.s(["BotRoom",0,eu,"Conversation",0,eq],279265)},372851,e=>{"use strict";var t=e.i(95187);let n=(0,t.createServerReference)("7f681b8be32fbd5eb73f156ad88e53db719f14f304",t.callServer,void 0,t.findSourceMapURL,"cancelTaskAction");e.s(["cancelTaskAction",0,n])},433505,e=>{"use strict";var t=e.i(95187);let n=(0,t.createServerReference)("7fbdb2e36edae956fa954eada93a8b20c8642c1530",t.callServer,void 0,t.findSourceMapURL,"answerTaskAction");e.s(["answerTaskAction",0,n])},931619,508734,825398,815731,496336,435454,835878,764224,919191,e=>{"use strict";var t=e.i(456420);let n={name:"chevrons-right",size:24,node:[["path",{d:"m6 17 5-5-5-5",key:"xnjwq"}],["path",{d:"m13 17 5-5-5-5",key:"17xmmf"}]]};n.node;let s=(0,t.default)(n);e.s(["ChevronsRight",0,s],931619);let a={name:"copy",size:24,node:[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]};a.node;let o=(0,t.default)(a);e.s(["Copy",0,o],508734);let r={name:"rotate-cw",size:24,node:[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]]};r.node;let i=(0,t.default)(r);e.s(["RotateCw",0,i],825398);var l=e.i(843476),d=e.i(176782),u=e.i(552245),c=e.i(225913),m=e.i(647163);let x=(0,c.cva)("group/bubble relative flex w-fit max-w-[80%] min-w-0 flex-col gap-1 group-data-[align=end]/message:self-end data-[align=end]:self-end data-[variant=ghost]:max-w-full",{variants:{variant:{default:"*:data-[slot=bubble-content]:bg-primary *:data-[slot=bubble-content]:text-primary-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-primary/80",secondary:"*:data-[slot=bubble-content]:bg-secondary *:data-[slot=bubble-content]:text-secondary-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)]",muted:"*:data-[slot=bubble-content]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[color-mix(in_oklch,var(--muted),var(--foreground)_5%)]",tinted:"*:data-[slot=bubble-content]:bg-[oklch(from_var(--primary)_0.93_calc(c*0.4)_h)] *:data-[slot=bubble-content]:text-foreground dark:*:data-[slot=bubble-content]:bg-[oklch(from_var(--primary)_0.3_calc(c*0.4)_h)] [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[oklch(from_var(--primary)_0.88_calc(c*0.5)_h)] dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-[oklch(from_var(--primary)_0.35_calc(c*0.5)_h)]",outline:"*:data-[slot=bubble-content]:border-border *:data-[slot=bubble-content]:bg-background [&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:text-foreground dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-input/30",ghost:"border-none *:data-[slot=bubble-content]:rounded-none *:data-[slot=bubble-content]:bg-transparent *:data-[slot=bubble-content]:p-0 [&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:text-foreground dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted/50",destructive:"*:data-[slot=bubble-content]:bg-destructive/10 *:data-[slot=bubble-content]:text-destructive dark:*:data-[slot=bubble-content]:bg-destructive/20 [&>[data-slot=bubble-content]:is(button,a):hover]:bg-destructive/20 dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-destructive/30"}},defaultVariants:{variant:"default"}});(0,c.cva)("absolute z-10 flex w-fit shrink-0 items-center justify-center gap-1 rounded-full bg-muted px-1.5 py-0.5 text-sm ring-3 ring-card has-[button]:p-0",{variants:{side:{top:"top-0 -translate-y-3/4",bottom:"bottom-0 translate-y-3/4"},align:{start:"left-3",end:"right-3"}},defaultVariants:{side:"bottom",align:"end"}}),e.s(["Bubble",0,function({variant:e="default",align:t="start",className:n,...s}){return(0,l.jsx)("div",{"data-slot":"bubble","data-variant":e,"data-align":t,className:(0,m.cn)(x({variant:e}),n),...s})},"BubbleContent",0,function({className:e,render:t,...n}){var s;return s={defaultTagName:"div",props:(0,d.mergeProps)({className:(0,m.cn)("w-fit max-w-full min-w-0 overflow-hidden rounded-xl border border-transparent px-3 py-2 text-sm leading-relaxed wrap-break-word group-data-[align=end]/bubble:self-end [button]:text-left [button,a]:transition-colors [button,a]:outline-none [button,a]:focus-visible:border-ring [button,a]:focus-visible:ring-3 [button,a]:focus-visible:ring-ring/50",e)},n),render:t,state:{slot:"bubble-content"}},(0,u.useRenderElement)(s.defaultTagName??"div",s,s)}],815731);var p=e.i(716327),f=e.i(271645);e.s(["FoldedText",0,function({text:e,subject:t,clamp:n="line-clamp-3",tall:s="max-h-40",className:a}){let[o,r]=(0,f.useState)(!1),[i,d]=(0,f.useState)(!1),u=(0,f.useRef)(null);return(0,f.useEffect)(()=>r(!1),[e]),(0,f.useEffect)(()=>{let e=u.current;e&&!o&&d(e.scrollHeight>e.clientHeight+1)},[o,e]),(0,l.jsxs)("div",{className:(0,m.cn)("flex items-start gap-1",a),children:[(0,l.jsx)("p",{ref:u,className:(0,m.cn)("min-w-0 flex-1 text-[13px] leading-snug break-keep",o?(0,m.cn)(s,"overflow-y-auto scrollbar-none"):n),children:e}),(i||o)&&(0,l.jsx)("button",{type:"button",onClick:()=>r(e=>!e),"aria-label":o?`Fold the ${t}`:`Read the whole ${t}`,className:"shrink-0 rounded-md p-0.5 opacity-60 outline-none transition-opacity hover:opacity-100 focus-visible:ring-3 focus-visible:ring-ring/50",children:(0,l.jsx)(p.ChevronDown,{className:(0,m.cn)("size-3.5",o&&"rotate-180")})})]})}],496336);var h=e.i(95187);let b=(0,h.createServerReference)("7fae185d4377430250e73f5e97e7ff9acbced3c8c3",h.callServer,void 0,h.findSourceMapURL,"startTaskAction");e.s(["startTaskAction",0,b],435454);var g=e.i(635963);e.s(["BotRoster",0,function({bots:e,taskId:t}){return e.length<2?null:(0,l.jsxs)("span",{className:"flex shrink-0 items-center gap-1.5",title:e.map(e=>e.name).join(", "),children:[(0,l.jsx)("span",{className:"flex items-center",children:e.slice(0,3).map(e=>(0,l.jsx)(g.BotMark,{size:18,seed:e.name,vary:t,color:e.icon?.color,shape:e.icon?.shape,outline:e.icon?.outline,notify:!1,className:"-ml-[3px] rounded-[7px] ring-2 ring-background first:ml-0"},e.name))}),(0,l.jsxs)("span",{className:"font-mono text-[10px] text-muted-foreground",children:[e.length," bots"]})]})}],835878);var k=e.i(829600);let j={name:"file-code",size:24,node:[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 12.5 8 15l2 2.5",key:"1tg20x"}],["path",{d:"m14 12.5 2 2.5-2 2.5",key:"yinavb"}]]};j.node;let v=(0,t.default)(j),w={name:"file-image",size:24,node:[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["circle",{cx:"10",cy:"12",r:"2",key:"737tya"}],["path",{d:"m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22",key:"wt3hpn"}]]};w.node;let y=(0,t.default)(w);var N=e.i(905015);let T={name:"file-spreadsheet",size:24,node:[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M8 13h2",key:"yr2amv"}],["path",{d:"M14 13h2",key:"un5t4a"}],["path",{d:"M8 17h2",key:"2yhykz"}],["path",{d:"M14 17h2",key:"10kma7"}]]};T.node;let C=(0,t.default)(T);var z=e.i(226091);let S={name:"file-type",size:24,node:[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M11 18h2",key:"12mj7e"}],["path",{d:"M12 12v6",key:"3ahymv"}],["path",{d:"M9 13v-.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 .5.5v.5",key:"qbrxap"}]]};S.node;let M=(0,t.default)(S);var A=e.i(621285),B=e.i(616172);let _={markdown:z.FileText,csv:C,json:N.FileJson,text:M,image:y};e.s(["PathChips",0,function({text:e,className:t}){let n=(0,f.useMemo)(()=>(0,B.pathsIn)(e),[e]);return n.length?(0,l.jsx)("div",{className:(0,m.cn)("flex flex-wrap gap-1.5",t),children:n.map(e=>{let t,n=e.split("/").pop()??e,s="frame"===(t=(0,B.viewKindOf)(e))?e.toLowerCase().endsWith(".pdf")?z.FileText:v:_[t]??k.File;return(0,l.jsxs)(A.FileLink,{path:e,className:"flex max-w-full items-center gap-1.5 rounded-full bg-muted/70 py-1 pr-2.5 pl-2 font-mono text-[11px] text-foreground/80 outline-none transition-colors hover:bg-muted hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring/50",children:[(0,l.jsx)(s,{className:"size-3 shrink-0 text-muted-foreground"}),(0,l.jsx)("span",{className:"truncate",children:n})]},e)})}):null}],764224);let R={name:"corner-down-left",size:24,node:[["path",{d:"M20 4v7a4 4 0 0 1-4 4H4",key:"6o5b7l"}],["path",{d:"m9 10-5 5 5 5",key:"1kshq7"}]]};R.node;let $=(0,t.default)(R);e.s(["CornerDownLeft",0,$],919191)},929272,e=>{"use strict";var t=e.i(456420);let n={name:"square",size:24,node:[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]};n.node;let s=(0,t.default)(n);e.s(["Square",0,s],929272)}]);