thursday-agent 0.1.1 → 0.2.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 (361) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +1 -0
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/routes-manifest.json +6 -0
  6. package/.next/server/app/_global-error/page.js.nft.json +1 -1
  7. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/_global-error.html +1 -1
  9. package/.next/server/app/_global-error.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  14. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  15. package/.next/server/app/_not-found.html +1 -1
  16. package/.next/server/app/_not-found.rsc +13 -13
  17. package/.next/server/app/_not-found.segments/_full.segment.rsc +13 -13
  18. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +12 -12
  19. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  20. package/.next/server/app/api/artifact/route.js +1 -1
  21. package/.next/server/app/api/artifact/route.js.nft.json +1 -1
  22. package/.next/server/app/api/bot/notes/route/app-paths-manifest.json +3 -0
  23. package/.next/server/app/api/bot/notes/route/build-manifest.json +12 -0
  24. package/.next/server/app/api/bot/notes/route/server-reference-manifest.json +4 -0
  25. package/.next/server/app/api/bot/notes/route.js +14 -0
  26. package/.next/server/app/api/bot/notes/route.js.map +5 -0
  27. package/.next/server/app/api/bot/notes/route.js.nft.json +1 -0
  28. package/.next/server/app/api/bot/notes/route_client-reference-manifest.js +3 -0
  29. package/.next/server/app/api/bot/route.js +4 -4
  30. package/.next/server/app/api/bot/route.js.nft.json +1 -1
  31. package/.next/server/app/api/bot/task/[id]/route.js +6 -6
  32. package/.next/server/app/api/bot/task/[id]/route.js.nft.json +1 -1
  33. package/.next/server/app/api/bot/task/route.js +6 -6
  34. package/.next/server/app/api/bot/task/route.js.nft.json +1 -1
  35. package/.next/server/app/api/config/route.js +3 -3
  36. package/.next/server/app/api/config/route.js.nft.json +1 -1
  37. package/.next/server/app/api/events/route.js +1 -1
  38. package/.next/server/app/api/events/route.js.nft.json +1 -1
  39. package/.next/server/app/api/file/[...path]/route.js +1 -1
  40. package/.next/server/app/api/file/[...path]/route.js.nft.json +1 -1
  41. package/.next/server/app/api/llm-model/catalog/route.js +6 -6
  42. package/.next/server/app/api/llm-model/catalog/route.js.nft.json +1 -1
  43. package/.next/server/app/api/llm-model/route.js +3 -3
  44. package/.next/server/app/api/llm-model/route.js.nft.json +1 -1
  45. package/.next/server/app/api/mcp/[name]/route.js +3 -3
  46. package/.next/server/app/api/mcp/[name]/route.js.nft.json +1 -1
  47. package/.next/server/app/api/mcp/oauth/callback/route.js +5 -5
  48. package/.next/server/app/api/mcp/oauth/callback/route.js.nft.json +1 -1
  49. package/.next/server/app/api/mcp/route.js +3 -3
  50. package/.next/server/app/api/mcp/route.js.nft.json +1 -1
  51. package/.next/server/app/api/mcp/tools/route.js +3 -3
  52. package/.next/server/app/api/mcp/tools/route.js.nft.json +1 -1
  53. package/.next/server/app/api/memory/route.js +7 -7
  54. package/.next/server/app/api/memory/route.js.nft.json +1 -1
  55. package/.next/server/app/api/memory/tidy/route.js +10 -11
  56. package/.next/server/app/api/memory/tidy/route.js.nft.json +1 -1
  57. package/.next/server/app/api/skills/[source]/[name]/route.js +1 -1
  58. package/.next/server/app/api/skills/[source]/[name]/route.js.nft.json +1 -1
  59. package/.next/server/app/api/skills/route.js +1 -1
  60. package/.next/server/app/api/skills/route.js.nft.json +1 -1
  61. package/.next/server/app/api/thursday/call/route.js +8 -8
  62. package/.next/server/app/api/thursday/call/route.js.nft.json +1 -1
  63. package/.next/server/app/api/thursday/skills/route.js +8 -8
  64. package/.next/server/app/api/thursday/skills/route.js.nft.json +1 -1
  65. package/.next/server/app/api/thursday/tool-call/route.js +11 -12
  66. package/.next/server/app/api/thursday/tool-call/route.js.nft.json +1 -1
  67. package/.next/server/app/api/workspace/route.js +1 -1
  68. package/.next/server/app/api/workspace/route.js.nft.json +1 -1
  69. package/.next/server/app/artifact/[...path]/page/server-reference-manifest.json +1 -1
  70. package/.next/server/app/artifact/[...path]/page.js +3 -3
  71. package/.next/server/app/artifact/[...path]/page.js.nft.json +1 -1
  72. package/.next/server/app/artifact/[...path]/page_client-reference-manifest.js +1 -1
  73. package/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  74. package/.next/server/app/page/server-reference-manifest.json +63 -41
  75. package/.next/server/app/page.js +7 -7
  76. package/.next/server/app/page.js.nft.json +1 -1
  77. package/.next/server/app/page_client-reference-manifest.js +1 -1
  78. package/.next/server/app-paths-manifest.json +1 -0
  79. package/.next/server/chunks/0d-b_next_dist_server_app-render_after-task-async-storage_external_0-exn7p.js +3 -0
  80. package/.next/server/chunks/{[root-of-the-server]__0t_dqaj._.js → [root-of-the-server]__0-npkh_._.js} +1 -1
  81. package/.next/server/chunks/[root-of-the-server]__005var5._.js +3 -0
  82. package/.next/server/chunks/[root-of-the-server]__019dx9f._.js +2 -2
  83. package/.next/server/chunks/[root-of-the-server]__02va5wz._.js +3 -0
  84. package/.next/server/chunks/{[root-of-the-server]__1mzp_el._.js → [root-of-the-server]__04_8spk._.js} +2 -2
  85. package/.next/server/chunks/[root-of-the-server]__06t77t4._.js +1 -1
  86. package/.next/server/chunks/[root-of-the-server]__0bed6hu._.js +4 -4
  87. package/.next/server/chunks/[root-of-the-server]__0cro2dz._.js +5 -0
  88. package/.next/server/chunks/[root-of-the-server]__0emr6go._.js +3 -0
  89. package/.next/server/chunks/[root-of-the-server]__0le4d-p._.js +1 -1
  90. package/.next/server/chunks/[root-of-the-server]__0m8ywyo._.js +5 -5
  91. package/.next/server/chunks/{[root-of-the-server]__113fqg5._.js → [root-of-the-server]__0p32jfz._.js} +3 -3
  92. package/.next/server/chunks/[root-of-the-server]__0phdgco._.js +4 -4
  93. package/.next/server/chunks/[root-of-the-server]__0wvgrsl._.js +1 -1
  94. package/.next/server/chunks/[root-of-the-server]__11j52t0._.js +5 -0
  95. package/.next/server/chunks/{[root-of-the-server]__0j_n5l3._.js → [root-of-the-server]__1692zrv._.js} +2 -2
  96. package/.next/server/chunks/[root-of-the-server]__16thabu._.js +1 -1
  97. package/.next/server/chunks/[root-of-the-server]__173nhwf._.js +3 -3
  98. package/.next/server/chunks/[root-of-the-server]__1bn73ih._.js +10 -0
  99. package/.next/server/chunks/[root-of-the-server]__1bqhuh9._.js +4 -4
  100. package/.next/server/chunks/[root-of-the-server]__1ccon1w._.js +10 -0
  101. package/.next/server/chunks/[root-of-the-server]__1cqizfq._.js +1 -1
  102. package/.next/server/chunks/{[root-of-the-server]__1u_qvc7._.js → [root-of-the-server]__1fboj2j._.js} +2 -2
  103. package/.next/server/chunks/{[root-of-the-server]__1dow0bz._.js → [root-of-the-server]__1oli73c._.js} +2 -2
  104. package/.next/server/chunks/[root-of-the-server]__1txedx6._.js +4 -4
  105. package/.next/server/chunks/[root-of-the-server]__1untqv8._.js +5 -0
  106. package/.next/server/chunks/_0-73of8._.js +55 -0
  107. package/.next/server/chunks/{_2050gwn._.js → _00_584r._.js} +66 -28
  108. package/.next/server/chunks/{_0y8is-s._.js → _03a0897._.js} +1 -1
  109. package/.next/server/chunks/_05h2cii._.js +1 -1
  110. package/.next/server/chunks/_06mxlgn._.js +1 -1
  111. package/.next/server/chunks/_0a351g7._.js +1 -1
  112. package/.next/server/chunks/{_0hin38_._.js → _0khihjk._.js} +5 -5
  113. package/.next/server/chunks/_0kjjmag._.js +1 -1
  114. package/.next/server/chunks/{_1t8fv7b._.js → _0n74zsf._.js} +5 -5
  115. package/.next/server/chunks/_0nn99o2._.js +3 -0
  116. package/.next/server/chunks/_0pppbb5._.js +10 -6
  117. package/.next/server/chunks/{_1icgbi8._.js → _0rnf-6n._.js} +5 -5
  118. package/.next/server/chunks/_0u10wmw._.js +55 -0
  119. package/.next/server/chunks/{_0kl37zl._.js → _0vnutv9._.js} +1 -1
  120. package/.next/server/chunks/_0wp4le3._.js +1 -1
  121. package/.next/server/chunks/_0y5fg-x._.js +1 -1
  122. package/.next/server/chunks/_106co2o._.js +3 -0
  123. package/.next/server/chunks/_12bbv5i._.js +10 -6
  124. package/.next/server/chunks/_15hq89o._.js +1 -1
  125. package/.next/server/chunks/_15q1pig._.js +1 -1
  126. package/.next/server/chunks/_18-1wcc._.js +55 -0
  127. package/.next/server/chunks/_19wg5yn._.js +138 -0
  128. package/.next/server/chunks/_1_5mnq4._.js +18 -0
  129. package/.next/server/chunks/_1bt95p9._.js +55 -0
  130. package/.next/server/chunks/_1cbk7ms._.js +9 -9
  131. package/.next/server/chunks/_1drgfx4._.js +18 -0
  132. package/.next/server/chunks/_1drv2et._.js +10 -6
  133. package/.next/server/chunks/{_10qam6o._.js → _1e48czp._.js} +5 -5
  134. package/.next/server/chunks/{_1skgy7b._.js → _1kg70wc._.js} +5 -5
  135. package/.next/server/chunks/_1php4eq._.js +1 -1
  136. package/.next/server/chunks/_1rysr-r._.js +10 -0
  137. package/.next/server/chunks/_1u3rwbr._.js +3 -0
  138. package/.next/server/chunks/_1x7p319._.js +1 -1
  139. package/.next/server/chunks/_1yuv4vp._.js +1 -1
  140. package/.next/server/chunks/_next-internal_server_app_api_bot_notes_route_actions_0qcsyu7.js +3 -0
  141. package/.next/server/chunks/config_ts_1g4sz5o._.js +1 -1
  142. package/.next/server/chunks/features_bot_task_query_ts_11xuzl3._.js +1 -1
  143. package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_0228f43._.js → node_modules_consola_dist_chunks_prompt_mjs_02s3hjt._.js} +1 -1
  144. package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_0ir-vo2._.js → node_modules_consola_dist_chunks_prompt_mjs_06067w6._.js} +1 -1
  145. package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_0otw8ef._.js → node_modules_consola_dist_chunks_prompt_mjs_096ais_._.js} +1 -1
  146. package/.next/server/chunks/{node_modules_consola_dist_chunks_prompt_mjs_0tf290y._.js → node_modules_consola_dist_chunks_prompt_mjs_0a1rd09._.js} +1 -1
  147. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_0gzvgfv._.js +3 -0
  148. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_0j61-ma._.js +3 -0
  149. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_0tvkfgh._.js +3 -0
  150. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_11zjo-1._.js +3 -0
  151. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1pycqsq._.js +3 -0
  152. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1tpvamf._.js +3 -0
  153. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1y9-wcr._.js +3 -0
  154. package/.next/server/chunks/ssr/[externals]__0dizgek._.js +3 -0
  155. package/.next/server/chunks/ssr/[root-of-the-server]__0f6s48x._.js +1 -1
  156. package/.next/server/chunks/ssr/[root-of-the-server]__0m1b5ky._.js +3 -0
  157. package/.next/server/chunks/ssr/{[root-of-the-server]__0dfwvr4._.js → [root-of-the-server]__0un-erv._.js} +2 -2
  158. package/.next/server/chunks/ssr/[root-of-the-server]__1-mnhyd._.js +5 -3
  159. package/.next/server/chunks/ssr/[root-of-the-server]__1bww500._.js +3 -0
  160. package/.next/server/chunks/ssr/[root-of-the-server]__1mzi-ju._.js +1 -1
  161. package/.next/server/chunks/ssr/[root-of-the-server]__1qfqvmg._.js +3 -0
  162. package/.next/server/chunks/ssr/[root-of-the-server]__1vcdast._.js +3 -0
  163. package/.next/server/chunks/ssr/[root-of-the-server]__1xwnu-h._.js +3 -0
  164. package/.next/server/chunks/ssr/_03webdr._.js +3 -0
  165. package/.next/server/chunks/ssr/{_0gd4vaa._.js → _040sk32._.js} +71 -29
  166. package/.next/server/chunks/ssr/_077-g6s._.js +1 -1
  167. package/.next/server/chunks/ssr/{_1r2_qk-._.js → _09ja_w1._.js} +2 -2
  168. package/.next/server/chunks/ssr/{_1dnxp2k._.js → _0f_b_9s._.js} +2 -2
  169. package/.next/server/chunks/ssr/_0h7zdni._.js +1 -1
  170. package/.next/server/chunks/ssr/_0lu1n_x._.js +3 -0
  171. package/.next/server/chunks/ssr/_0sf1isi._.js +1 -1
  172. package/.next/server/chunks/ssr/_0su6_08._.js +3 -0
  173. package/.next/server/chunks/ssr/_0w5bgak._.js +3 -0
  174. package/.next/server/chunks/ssr/{_1hkvsg0._.js → _0x_nu5e._.js} +2 -2
  175. package/.next/server/chunks/ssr/_1-teee5._.js +3 -3
  176. package/.next/server/chunks/ssr/_13punpm._.js +1 -1
  177. package/.next/server/chunks/ssr/{_0ay6b01._.js → _1ciyoo3._.js} +2 -2
  178. package/.next/server/chunks/ssr/_1e-dgz0._.js +1 -1
  179. package/.next/server/chunks/ssr/_1fq7zgb._.js +1 -1
  180. package/.next/server/chunks/ssr/{_0cvjbuz._.js → _1g6l4uj._.js} +2 -2
  181. package/.next/server/chunks/ssr/{_1b3yex3._.js → _1lip4th._.js} +2 -2
  182. package/.next/server/chunks/ssr/_1m3bsfr._.js +3 -0
  183. package/.next/server/chunks/ssr/_1mznrxk._.js +1 -1
  184. package/.next/server/chunks/ssr/_1ruzehw._.js +3 -0
  185. package/.next/server/chunks/ssr/_1vyd1ji._.js +3 -0
  186. package/.next/server/chunks/ssr/features_bot_components_bot-setting_tsx_01ajft6._.js +2 -2
  187. package/.next/server/chunks/ssr/features_config_components_14jqgy4._.js +1 -1
  188. package/.next/server/chunks/ssr/features_config_components_config-setting_tsx_0xfwqdg._.js +1 -1
  189. package/.next/server/chunks/ssr/features_connectors_components_mcp-setting_tsx_0jmbgvp._.js +1 -1
  190. package/.next/server/chunks/ssr/features_memory_components_memory-setting_tsx_0oa43sw._.js +1 -1
  191. package/.next/server/chunks/ssr/lib_realtime_12wg_dd._.js +27 -0
  192. package/.next/server/chunks/ssr/lib_realtime_15h_v1v._.js +27 -0
  193. package/.next/server/chunks/ssr/{node_modules_0i37h34._.js → node_modules_004qlr4._.js} +1 -1
  194. package/.next/server/chunks/ssr/{node_modules_0nh2m35._.js → node_modules_01qnv-a._.js} +1 -1
  195. package/.next/server/chunks/ssr/{node_modules_1kj6swe._.js → node_modules_04n7mjs._.js} +1 -1
  196. package/.next/server/chunks/ssr/{node_modules_0eqdzva._.js → node_modules_08d8bke._.js} +1 -1
  197. package/.next/server/chunks/ssr/{node_modules_0nq_p-o._.js → node_modules_09xhur7._.js} +1 -1
  198. package/.next/server/chunks/ssr/{node_modules_1854ebs._.js → node_modules_0_n241r._.js} +1 -1
  199. package/.next/server/chunks/ssr/{node_modules_00riwzq._.js → node_modules_0iz1rzd._.js} +1 -1
  200. package/.next/server/chunks/ssr/{node_modules_1wsx1pg._.js → node_modules_0kl7-tn._.js} +1 -1
  201. package/.next/server/chunks/ssr/{node_modules_17ls31t._.js → node_modules_0kxz4gt._.js} +1 -1
  202. package/.next/server/chunks/ssr/{node_modules_1fsvm8f._.js → node_modules_0lrjk5t._.js} +1 -1
  203. package/.next/server/chunks/ssr/{node_modules_1euv75v._.js → node_modules_0m93zeg._.js} +1 -1
  204. package/.next/server/chunks/ssr/{node_modules_1_w_b81._.js → node_modules_0n1kj4p._.js} +1 -1
  205. package/.next/server/chunks/ssr/{node_modules_1bjm3ch._.js → node_modules_0ndvxub._.js} +1 -1
  206. package/.next/server/chunks/ssr/{node_modules_03f-6up._.js → node_modules_13r44jq._.js} +1 -1
  207. package/.next/server/chunks/ssr/{node_modules_07_oxjr._.js → node_modules_17lrt3y._.js} +1 -1
  208. package/.next/server/chunks/ssr/{node_modules_1yxkq1s._.js → node_modules_18_dk7_._.js} +1 -1
  209. package/.next/server/chunks/ssr/{node_modules_012m-mo._.js → node_modules_19dp7ko._.js} +1 -1
  210. package/.next/server/chunks/ssr/{node_modules_0egn4iq._.js → node_modules_1dwguw_._.js} +1 -1
  211. package/.next/server/chunks/ssr/{node_modules_1y1m-q4._.js → node_modules_1hd-5tv._.js} +1 -1
  212. package/.next/server/chunks/ssr/{node_modules_0xe_k12._.js → node_modules_1hn8z1f._.js} +1 -1
  213. package/.next/server/chunks/ssr/{node_modules_0sbobpz._.js → node_modules_1n5ygqe._.js} +1 -1
  214. package/.next/server/chunks/ssr/{node_modules_14uxpfb._.js → node_modules_1q0p85z._.js} +1 -1
  215. package/.next/server/chunks/ssr/{node_modules_01jj5oy._.js → node_modules_1toafc-._.js} +1 -1
  216. package/.next/server/chunks/ssr/{node_modules_0ewynyi._.js → node_modules_1xyd7ov._.js} +1 -1
  217. package/.next/server/chunks/ssr/{node_modules_17c71fz._.js → node_modules_1zu988w._.js} +1 -1
  218. package/.next/server/chunks/ssr/{node_modules_1mnmhse._.js → node_modules_20yebtj._.js} +1 -1
  219. package/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_1f5re6n._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_0m9a4y0._.js} +1 -1
  220. package/.next/server/chunks/ssr/{node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_216aa7f._.js → node_modules_@mermaid-js_parser_dist_chunks_mermaid-parser_core_13w_wy9._.js} +1 -1
  221. package/.next/server/chunks/ssr/node_modules_consola_dist_chunks_prompt_mjs_05cwqv2._.js +47 -0
  222. package/.next/server/middleware-build-manifest.js +3 -3
  223. package/.next/server/pages/404.html +1 -1
  224. package/.next/server/pages/500.html +1 -1
  225. package/.next/server/server-reference-manifest.js +1 -1
  226. package/.next/server/server-reference-manifest.json +64 -42
  227. package/.next/static/chunks/05b6nx_o3_f_n.js +1 -0
  228. package/.next/static/chunks/{1rja48de93vvx.js → 07kl352c-lvcz.js} +1 -1
  229. package/.next/static/chunks/0dmns-gi0raa4.js +1 -0
  230. package/.next/static/chunks/0oc4_xoia77dg.css +1 -0
  231. package/.next/static/chunks/0pheo8m3a-rzi.js +1 -0
  232. package/.next/static/chunks/{3yan6-5cvpk2o.js → 18vhba44l1fc9.js} +1 -1
  233. package/.next/static/chunks/19i8h2t-5evjx.js +1 -0
  234. package/.next/static/chunks/{0h7pjyewk7ky-.js → 1c5fcj473025q.js} +1 -1
  235. package/.next/static/chunks/1pi_hbmjw-f-z.js +1 -0
  236. package/.next/static/chunks/{0tydnn2kybibk.js → 1twt6k09vg4np.js} +1 -1
  237. package/.next/static/chunks/{2kl3n2d-4-7i5.js → 28gotuisldmom.js} +1 -1
  238. package/.next/static/chunks/{34eu8t79ko6lm.js → 2998p0y7k1c8z.js} +1 -1
  239. package/.next/static/chunks/2l233xfycjpd8.js +1 -0
  240. package/.next/static/chunks/2p5n7pa3c40t-.js +2 -0
  241. package/.next/static/chunks/2ru1q132af7h7.js +1 -0
  242. package/.next/static/chunks/{2ka9uwo_evj7a.js → 2t8wqycwg3y04.js} +2 -2
  243. package/.next/static/chunks/32z_ypgtchw48.js +1 -0
  244. package/.next/static/chunks/{261871a8ot1pi.js → 33pyjb3xd1iez.js} +1 -1
  245. package/.next/static/chunks/3786h5vayt80-.js +28 -0
  246. package/.next/static/chunks/3_h9txt3tq8t8.js +28 -0
  247. package/.next/static/chunks/{2qci2z603es_m.js → 3ard_noqapnw1.js} +1 -1
  248. package/.next/static/chunks/{0yn2yol46cj77.js → 3omud5xunrk1f.js} +1 -1
  249. package/.next/static/chunks/42dnrkbph9e-1.js +1 -0
  250. package/README.md +24 -1
  251. package/app/api/events/app-event.client.ts +24 -0
  252. package/app/api/events/app-event.server.ts +45 -0
  253. package/app/api/events/app-event.ts +44 -0
  254. package/app/api/llm-model/catalog/route.ts +12 -0
  255. package/app/api/llm-model/route.ts +21 -0
  256. package/app/api/query-key.ts +144 -0
  257. package/app/api/thursday/tool-call/route.ts +67 -0
  258. package/bin/thursday.mjs +50 -2
  259. package/components/ui/button-group.tsx +45 -0
  260. package/components/ui/custom-icon.tsx +259 -0
  261. package/components/ui/dropdown-menu.tsx +271 -0
  262. package/components/ui/folded-text.tsx +68 -0
  263. package/components/ui/input-group.tsx +157 -0
  264. package/components/ui/json-view.tsx +240 -0
  265. package/components/ui/shiny-text.tsx +141 -0
  266. package/components/ui/text-type.tsx +213 -0
  267. package/components/ui/theme-sync.tsx +9 -0
  268. package/database/migrations/{20260908030742_rainy_marvel_zombies → 20260909060813_optimal_sabretooth}/migration.sql +7 -0
  269. package/database/migrations/{20260908030742_rainy_marvel_zombies → 20260909060813_optimal_sabretooth}/snapshot.json +54 -1
  270. package/database/migrations/20260909063821_bitter_tenebrous/migration.sql +1 -0
  271. package/database/migrations/20260909063821_bitter_tenebrous/snapshot.json +1285 -0
  272. package/docs/how-it-works.md +59 -0
  273. package/docs/images/keeps-going.png +0 -0
  274. package/docs/images/task-thread.png +0 -0
  275. package/docs/images/two-minds.png +0 -0
  276. package/features/ai/load-tools.ts +55 -5
  277. package/features/ai/prompts/bot.prompt.ts +121 -26
  278. package/features/ai/prompts/memory-tidy.prompt.ts +7 -1
  279. package/features/ai/prompts/prompt-helper.ts +31 -5
  280. package/features/ai/prompts/thursday.prompt.ts +2 -0
  281. package/features/ai/tools/bot.tool.ts +37 -18
  282. package/features/ai/tools/mcp.tool.ts +5 -5
  283. package/features/ai/tools/memory.tool.ts +17 -10
  284. package/features/ai/tools/studio.tool.ts +5 -5
  285. package/features/ai/tools/tool-name.ts +2 -0
  286. package/features/ai/tools/workspace.tool.ts +33 -5
  287. package/features/bot/bot.action.ts +31 -4
  288. package/features/bot/bot.notes.ts +120 -0
  289. package/features/bot/bot.query.ts +56 -1
  290. package/features/bot/bot.run.ts +43 -3
  291. package/features/bot/bot.runner.ts +94 -20
  292. package/features/bot/bot.schema.ts +17 -0
  293. package/features/bot/components/bot-room.tsx +405 -306
  294. package/features/bot/components/bot-setting.tsx +123 -20
  295. package/features/bot/task.query.ts +18 -5
  296. package/features/memory/components/memory-setting.tsx +11 -2
  297. package/features/memory/memory.query.ts +9 -2
  298. package/features/memory/memory.schema.ts +30 -0
  299. package/features/skills/components/skills-setting.tsx +9 -1
  300. package/features/workspace/workspace.ts +136 -3
  301. package/hooks/use-draft.ts +37 -0
  302. package/hooks/use-hotkey.ts +105 -0
  303. package/hooks/use-object-state.ts +51 -0
  304. package/hooks/use-on-visible.ts +72 -0
  305. package/hooks/use-theme.ts +106 -0
  306. package/hooks/use-wake-word.ts +262 -0
  307. package/lib/realtime/realtime.driver.ts +34 -1
  308. package/lib/realtime/realtime.protocol.ts +6 -0
  309. package/lib/sandbox.ts +9 -1
  310. package/lib/tokens.ts +19 -0
  311. package/package.json +1 -1
  312. package/.next/server/chunks/[root-of-the-server]__02kt8yn._.js +0 -10
  313. package/.next/server/chunks/[root-of-the-server]__0h59di-._.js +0 -5
  314. package/.next/server/chunks/[root-of-the-server]__0qjqtwo._.js +0 -5
  315. package/.next/server/chunks/[root-of-the-server]__0yk6s3w._.js +0 -5
  316. package/.next/server/chunks/[root-of-the-server]__0z3gelv._.js +0 -3
  317. package/.next/server/chunks/[root-of-the-server]__11w_7_3._.js +0 -3
  318. package/.next/server/chunks/[root-of-the-server]__1_0q_9w._.js +0 -3
  319. package/.next/server/chunks/[root-of-the-server]__1gmn1cs._.js +0 -10
  320. package/.next/server/chunks/_0fzqt2y._.js +0 -100
  321. package/.next/server/chunks/_0jgm3b8._.js +0 -55
  322. package/.next/server/chunks/_0ks6_sg._.js +0 -55
  323. package/.next/server/chunks/_0tzfesa._.js +0 -3
  324. package/.next/server/chunks/_0zmestz._.js +0 -55
  325. package/.next/server/chunks/_12nr4xc._.js +0 -3
  326. package/.next/server/chunks/_1hzrsvg._.js +0 -55
  327. package/.next/server/chunks/_1uj4_io._.js +0 -10
  328. package/.next/server/chunks/_1yldgo4._.js +0 -55
  329. package/.next/server/chunks/features_0scmr4i._.js +0 -3
  330. package/.next/server/chunks/features_bot_bot_query_ts_12mgkl2._.js +0 -3
  331. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_0ykklj0._.js +0 -3
  332. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1ryg3wh._.js +0 -3
  333. package/.next/server/chunks/node_modules_consola_dist_chunks_prompt_mjs_1vwbnq_._.js +0 -3
  334. package/.next/server/chunks/ssr/[root-of-the-server]__0b-0i32._.js +0 -3
  335. package/.next/server/chunks/ssr/[root-of-the-server]__1e-f3gy._.js +0 -3
  336. package/.next/server/chunks/ssr/[root-of-the-server]__1minz8_._.js +0 -3
  337. package/.next/server/chunks/ssr/[root-of-the-server]__1ncajna._.js +0 -3
  338. package/.next/server/chunks/ssr/_124q1la._.js +0 -3
  339. package/.next/server/chunks/ssr/_19eoufz._.js +0 -3
  340. package/.next/server/chunks/ssr/_1aca4j8._.js +0 -3
  341. package/.next/server/chunks/ssr/_1cb_5sv._.js +0 -3
  342. package/.next/server/chunks/ssr/_1m5popy._.js +0 -3
  343. package/.next/server/chunks/ssr/lib_realtime_0aetuyp._.js +0 -24
  344. package/.next/server/chunks/ssr/lib_realtime_18k_aj-._.js +0 -24
  345. package/.next/server/chunks/ssr/node_modules_zod_v4_classic_errors_05xv7vp.js +0 -3
  346. package/.next/static/chunks/0_6qjj4f3t3j-.js +0 -1
  347. package/.next/static/chunks/0g2n0xskvyk04.js +0 -2
  348. package/.next/static/chunks/14s7e14xltx47.js +0 -1
  349. package/.next/static/chunks/1lpdcqos7mkek.js +0 -1
  350. package/.next/static/chunks/1u5d-pvhwir9g.js +0 -1
  351. package/.next/static/chunks/2cgzsjzheo2m2.js +0 -1
  352. package/.next/static/chunks/2cwjgkt_hoyhj.js +0 -22
  353. package/.next/static/chunks/2rbf1fpd8n80-.js +0 -22
  354. package/.next/static/chunks/2ukj8k69y89um.js +0 -1
  355. package/.next/static/chunks/2v_vqhmdl8de_.js +0 -1
  356. package/.next/static/chunks/35uo6rtl_otbd.js +0 -1
  357. package/.next/static/chunks/388-t2v72jh39.css +0 -1
  358. package/.next/static/chunks/3w7-y53xzl2ir.js +0 -1
  359. /package/.next/static/{G-9_HnysmzY_Bx9GpDYAO → YR4NWcDDuzwLbTTU7U7Vr}/_buildManifest.js +0 -0
  360. /package/.next/static/{G-9_HnysmzY_Bx9GpDYAO → YR4NWcDDuzwLbTTU7U7Vr}/_clientMiddlewareManifest.js +0 -0
  361. /package/.next/static/{G-9_HnysmzY_Bx9GpDYAO → YR4NWcDDuzwLbTTU7U7Vr}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,41533,t=>{"use strict";var e=t.i(247167);e.default.env.THURSDAY_APP_DIR?.trim()||e.default.cwd(),e.default.env.THURSDAY_HOME?.trim()||e.default.cwd(),e.default.env.THURSDAY_URL?.trim()||e.default.env.PORT?.trim();let a=".ai-workspace",r={workspace:a,artifacts:"artifacts",projects:"projects",scratch:"scratch",output:".output",skills:{default:"skills",custom:`${a}/.agents/skills`}};t.s(["APP_NAME",0,"Thursday","ARTIFACT_VIEW",0,{rows:200,setFiles:120},"BOT_RUN",0,{steps:25,compactAt:12e4,summaryWords:{min:600,max:3e3,perTokens:200},resumeMessages:20},"BROWSER_SKILL",0,"browser","PAGE_SIZE",0,50,"PATHS",0,r,"WORKSPACE_VIEW",0,{rows:200,textMax:524288,elementMax:0x3200000}])},621285,616172,808317,t=>{"use strict";var e=t.i(843476),a=t.i(271645),r=t.i(798120),n=t.i(167881),i=t.i(630374),o=t.i(683408),s=t.i(671428),l=t.i(647163);function d({className:t,...a}){return(0,e.jsx)("div",{"data-slot":"table-container",className:"relative w-full overflow-x-auto",children:(0,e.jsx)("table",{"data-slot":"table",className:(0,l.cn)("w-full caption-bottom text-sm",t),...a})})}function u({className:t,...a}){return(0,e.jsx)("thead",{"data-slot":"table-header",className:(0,l.cn)("[&_tr]:border-b",t),...a})}function c({className:t,...a}){return(0,e.jsx)("tbody",{"data-slot":"table-body",className:(0,l.cn)("[&_tr:last-child]:border-0",t),...a})}function h({className:t,...a}){return(0,e.jsx)("tr",{"data-slot":"table-row",className:(0,l.cn)("border-b border-border/60 transition-colors data-[state=selected]:bg-muted hover:bg-muted/40",t),...a})}function f({className:t,...a}){return(0,e.jsx)("th",{"data-slot":"table-head",className:(0,l.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",t),...a})}function m({className:t,...a}){return(0,e.jsx)("td",{"data-slot":"table-cell",className:(0,l.cn)("p-2 align-middle [&:has([role=checkbox])]:pr-0",t),...a})}var g=t.i(41533);let w=t=>`text/${t}; charset=utf-8`,p={md:{kind:"markdown",mime:w("markdown")},markdown:{kind:"markdown",mime:w("markdown")},csv:{kind:"csv",mime:w("csv")},json:{kind:"json",mime:"application/json; charset=utf-8"},txt:{kind:"text",mime:w("plain")},log:{kind:"text",mime:w("plain")},html:{kind:"frame",mime:w("html")},htm:{kind:"frame",mime:w("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:w("css")},js:{kind:"none",mime:w("javascript")},woff2:{kind:"none",mime:"font/woff2"}},y=t=>p[t.split(".").pop()?.toLowerCase()??""]?.kind??"none",b=Object.entries(p).filter(([,t])=>"none"!==t.kind).map(([t])=>t),x=RegExp(String.raw`(?<![\p{L}\p{N}_/:@%-])(?:[\p{L}\p{N}_.@%-]+/)*[\p{L}\p{N}_@%-]+(?:\.[\p{L}\p{N}_-]+)*\.(?:${b.join("|")})\b`,"giu"),k=`${g.PATHS.workspace}/`;function v(t){let e=t.trim(),a=e.indexOf(k);return a>=0?e.slice(a+k.length)||null:e.startsWith("/")||/^[A-Za-z]:/.test(e)||e.split("/").includes("..")?null:e||null}t.s(["pathsIn",0,function(t){let e=t.replace(/\b[a-z][\w+.-]*:\/\/\S+/gi," "),a=new Set;for(let t of e.match(x)??[]){let e=function(t){let e=v(t);if(!e)return null;let[a,...r]=e.split("/");return r.length&&a.includes(".")?null:e}(t);e&&a.add(e)}return[...a].slice(0,6)},"viewKindOf",0,y,"workspaceRelative",0,v],616172);var M=t.i(95187);let S=(0,M.createServerReference)("7f052a4d5cdc5c2b47d926a441b59fa063ccc51432",M.callServer,void 0,M.findSourceMapURL,"openFileAction");t.s(["openFileAction",0,S],808317);var N=t.i(609856);let j=new Set(["frame","image","audio","video"]);function D(t){let e=v(t);if(!e)return{how:"os"};let a=y(e);return j.has(a)?{how:"tab",path:e,href:r.queryKey.fileView(e)}:"none"===a?{how:"os"}:{how:"dialog",path:e}}let C=(0,a.createContext)(null),_={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"}};function T({kind:t,content:a,truncated:r,where:n="dialog"}){return(0,e.jsxs)(e.Fragment,{children:[null!=r&&(0,e.jsx)(P,{of:r}),(0,e.jsx)(O,{kind:t,content:a,where:n})]})}function P({of:t}){return(0,e.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,l.formatBytes)(g.WORKSPACE_VIEW.textMax)} of ${(0,l.formatBytes)(t)}. `,"Open the file itself for the rest."]})}function O({kind:t,content:a,where:r}){let n=_[r];switch(t){case"markdown":return(0,e.jsx)("div",{className:(0,l.cn)("min-w-0 text-sm leading-relaxed",n.prose),children:(0,e.jsx)(o.Markdown,{children:a})});case"csv":return(0,e.jsx)(L,{content:a,className:n.block});case"json":return(0,e.jsx)(E,{text:function(t){try{return JSON.stringify(JSON.parse(t),null,2)}catch{return t}}(a),className:n.block});default:return(0,e.jsx)(E,{text:a,className:n.block})}}function W(t){let[e,n]=(0,a.useState)(null),[i,o]=(0,a.useState)(null),[s,d]=(0,a.useState)(null);return(0,a.useEffect)(()=>{if(!t)return;n(null),o(null),d(null);let e=!1;return fetch(r.queryKey.file(t),{headers:{range:`bytes=0-${g.WORKSPACE_VIEW.textMax-1}`}}).then(async t=>{if(!t.ok)throw Error(await t.text());return{text:await t.text(),of:function(t){let e=t.headers.get("content-range")?.match(/^bytes \d+-(\d+)\/(\d+)$/);if(!e)return null;let[,a,r]=e.map(Number);return a+1<r?r:null}(t)}}).then(({text:t,of:a})=>{e||(n(null===a?t:t.slice(0,t.lastIndexOf("\n")+1||void 0)),d(a))}).catch(t=>!e&&o((0,l.errorToString)(t))),()=>{e=!0}},[t]),{content:e,failure:i,truncated:s}}function F({path:t,bytes:a}){let[r,i]=(0,N.useServerAction)(S);return(0,e.jsxs)("div",{className:"space-y-4 p-8",children:[(0,e.jsxs)("p",{className:"max-w-lg text-sm leading-relaxed text-muted-foreground",children:[`This file is ${(0,l.formatBytes)(a)} — too big to draw here without `,"taking the window with it. Open it where it is instead."]}),(0,e.jsx)(n.Button,{variant:"outline",loading:i,onClick:()=>r(t),children:"Reveal in the file manager"})]})}function B({path:t,kind:a,onClose:r}){let{content:n,failure:o,truncated:l}=W(t),d=t?.split("/").pop()??"";return(0,e.jsx)(i.Dialog,{open:null!==t,onOpenChange:t=>!t&&r(),children:(0,e.jsxs)(i.DialogContent,{className:"flex max-h-[calc(100vh-3rem)] flex-col gap-0 overflow-hidden p-0 sm:max-w-4xl",children:[(0,e.jsx)(i.DialogTitle,{className:"sr-only",children:d}),(0,e.jsx)("div",{className:"flex shrink-0 items-center gap-2 border-b border-border/60 px-4 py-2.5 pr-12",children:(0,e.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-[12px]",children:t})}),(0,e.jsx)("div",{className:"min-h-0 flex-1 overflow-auto",children:o?(0,e.jsx)("p",{className:"p-5 font-mono text-xs text-destructive",children:o}):null===n?(0,e.jsxs)("div",{className:"space-y-3 p-5",children:[(0,e.jsx)(s.Skeleton,{className:"h-5 w-2/3"}),(0,e.jsx)(s.Skeleton,{className:"h-4 w-full"}),(0,e.jsx)(s.Skeleton,{className:"h-4 w-5/6"})]}):(0,e.jsx)(T,{kind:a,content:n,truncated:l})})]})})}function E({text:t,className:a}){return(0,e.jsx)("pre",{className:(0,l.cn)("overflow-x-auto font-mono text-[12px] leading-relaxed whitespace-pre-wrap text-foreground/90",a),children:t})}function L({content:t,className:r}){let[n,...i]=(0,a.useMemo)(()=>(function(t){let e=[],a=[],r="",n=!1;for(let i=0;i<t.length;i++){let o=t[i];n?'"'===o&&'"'===t[i+1]?(r+='"',i++):'"'===o?n=!1:r+=o:'"'===o?n=!0:","===o?(a.push(r),r=""):"\n"===o||"\r"===o?("\r"===o&&"\n"===t[i+1]&&i++,a.push(r),e.push(a),a=[],r=""):r+=o}return(r.length||a.length)&&(a.push(r),e.push(a)),e.filter(t=>t.some(t=>t.trim()))})(t),[t]);return n?(0,e.jsx)("div",{className:(0,l.cn)("overflow-x-auto",r),children:(0,e.jsxs)(d,{children:[(0,e.jsx)(u,{children:(0,e.jsx)(h,{children:n.map((t,a)=>(0,e.jsx)(f,{className:"whitespace-nowrap",children:t},`${a}-${t}`))})}),(0,e.jsx)(c,{children:i.map((t,a)=>(0,e.jsx)(h,{children:n.map((r,n)=>(0,e.jsx)(m,{className:"whitespace-nowrap",children:t[n]??""},`${a}-${n}`))},`${a}-${t[0]??""}`))})]})}):(0,e.jsx)(E,{text:t,className:r})}t.s(["FileBody",0,T,"FileDialog",0,B,"FileLink",0,function({path:t,className:n,title:i,label:o,children:s}){let l=D(t),d=(0,a.useContext)(C),[u,c]=(0,N.useServerAction)(S);return"tab"===l.how?(0,e.jsx)("a",{href:l.href,target:"_blank",rel:"noreferrer",title:i??t,"aria-label":o,className:n,children:s}):(0,e.jsx)("button",{type:"button",disabled:c,title:i??t,"aria-label":o,className:n,onClick:()=>{"dialog"===l.how?d?d(l.path):window.open(r.queryKey.fileView(l.path),"_blank"):u(t)},children:s})},"FilePreview",0,function({path:t,bytes:a}){let n=y(t),{content:i,failure:o,truncated:l}=W(j.has(n)?null:t);return("frame"===n||"image"===n)&&a>g.WORKSPACE_VIEW.elementMax?(0,e.jsx)(F,{path:t,bytes:a}):"frame"===n?(0,e.jsx)("iframe",{title:t,src:r.queryKey.file(t),allow:"clipboard-read; clipboard-write; fullscreen; autoplay",className:"h-full w-full bg-white"}):"image"===n?(0,e.jsx)("img",{src:r.queryKey.file(t),alt:t,className:"mx-auto max-w-full p-6"}):"audio"===n||"video"===n?"audio"===n?(0,e.jsx)("audio",{controls:!0,src:r.queryKey.file(t),className:"w-full p-6",children:(0,e.jsx)("track",{kind:"captions"})}):(0,e.jsx)("video",{controls:!0,src:r.queryKey.file(t),className:"max-w-full p-6",children:(0,e.jsx)("track",{kind:"captions"})}):o?(0,e.jsx)("p",{className:"p-5 font-mono text-xs text-destructive",children:o}):null===i?(0,e.jsxs)("div",{className:"space-y-3 p-5",children:[(0,e.jsx)(s.Skeleton,{className:"h-5 w-2/3"}),(0,e.jsx)(s.Skeleton,{className:"h-4 w-full"}),(0,e.jsx)(s.Skeleton,{className:"h-4 w-5/6"})]}):(0,e.jsx)(T,{kind:n,content:i,truncated:l})},"FileViewer",0,function({children:t}){let[r,n]=(0,a.useState)(null);return(0,e.jsxs)(C,{value:n,children:[t,(0,e.jsx)(B,{path:r,kind:r?y(r):"text",onClose:()=>n(null)})]})},"fileTarget",0,D,"useFileText",0,W,"useOpenFile",0,function(){let t=(0,a.useContext)(C);return(0,a.useCallback)(e=>{let a=D(e);if("os"===a.how)return!1;if("dialog"===a.how&&t)return t(a.path),!0;let n="tab"===a.how?a.href:r.queryKey.fileView(a.path);return null!==window.open(n,"_blank")},[t])}],621285)},245629,t=>{"use strict";var e=t.i(401851),a=t.i(677241),r=t.i(24708),n=t.i(845110),i=t.i(585890);function o(t,e,a){let[r,o]=(0,n.normalizeDates)(a?.in,t,e);return+(0,i.startOfDay)(r)==+(0,i.startOfDay)(o)}var s=t.i(281092),l=t.i(681307);let d=l.z.union([l.z.date(),l.z.iso.datetime()]),u=t=>new Date(t);t.s(["DateLikeSchema",0,d,"shortAgo",0,function(t,e=Date.now()){let a=Math.max(0,Math.round((e-u(t).getTime())/1e3));if(a<60)return"now";let r=Math.round(a/60);if(r<60)return`${r}m`;let n=Math.round(r/60);return n<24?`${n}h`:`${Math.round(n/24)}d`},"toDate",0,u,"whenOf",0,function(t){let n=u(t),i=(0,e.format)(n,"HH:mm");return o((0,a.constructFrom)(n,n),(0,r.constructNow)(n))?i:!function(t){var e,n;let i;return o((0,a.constructFrom)(t,t),(e=(0,r.constructNow)(t),n=void 0,i=(0,s.toDate)(e,n?.in),isNaN(-1)?(0,a.constructFrom)(n?.in||e,NaN):(i.setDate(i.getDate()+-1),i)))}(n)?`${(0,e.format)(n,"MMM d")} \xb7 ${i}`:`Yesterday ${i}`}],245629)},677241,234662,t=>{"use strict";let e=Symbol.for("constructDateFrom");t.s(["constructFromSymbol",0,e,"millisecondsInDay",0,864e5,"millisecondsInMinute",0,6e4,"millisecondsInWeek",0,6048e5,"minutesInDay",0,1440,"minutesInMonth",0,43200,"minutesInYear",0,525600],234662),t.s(["constructFrom",0,function(t,a){return"function"==typeof t?t(a):t&&"object"==typeof t&&e in t?t[e](a):t instanceof Date?new t.constructor(a):new Date(a)}],677241)},24708,t=>{"use strict";var e=t.i(677241);t.s(["constructNow",0,function(t){return(0,e.constructFrom)(t,Date.now())}])},401851,281092,99151,845110,585890,t=>{"use strict";var e=t.i(55545),a=t.i(455024),r=t.i(677241);function n(t,e){return(0,r.constructFrom)(e||t,t)}function i(t){let e=n(t),a=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return a.setUTCFullYear(e.getFullYear()),t-a}function o(t,...e){let a=r.constructFrom.bind(null,t||e.find(t=>"object"==typeof t));return e.map(a)}t.s(["toDate",0,n],281092),t.s(["getTimezoneOffsetInMilliseconds",0,i],99151),t.s(["normalizeDates",0,o],845110);var s=t.i(234662);function l(t,e){let a=n(t,e?.in);return a.setHours(0,0,0,0),a}function d(t,e){let r=(0,a.getDefaultOptions)(),i=e?.weekStartsOn??e?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,o=n(t,e?.in),s=o.getDay();return o.setDate(o.getDate()-(7*(s<i)+s-i)),o.setHours(0,0,0,0),o}function u(t,e){return d(t,{...e,weekStartsOn:1})}function c(t,e){let a=n(t,e?.in),i=a.getFullYear(),o=(0,r.constructFrom)(a,0);o.setFullYear(i+1,0,4),o.setHours(0,0,0,0);let s=u(o),l=(0,r.constructFrom)(a,0);l.setFullYear(i,0,4),l.setHours(0,0,0,0);let d=u(l);return a.getTime()>=s.getTime()?i+1:a.getTime()>=d.getTime()?i:i-1}function h(t,e){let i=n(t,e?.in),o=i.getFullYear(),s=(0,a.getDefaultOptions)(),l=e?.firstWeekContainsDate??e?.locale?.options?.firstWeekContainsDate??s.firstWeekContainsDate??s.locale?.options?.firstWeekContainsDate??1,u=(0,r.constructFrom)(e?.in||t,0);u.setFullYear(o+1,0,l),u.setHours(0,0,0,0);let c=d(u,e),h=(0,r.constructFrom)(e?.in||t,0);h.setFullYear(o,0,l),h.setHours(0,0,0,0);let f=d(h,e);return+i>=+c?o+1:+i>=+f?o:o-1}function f(t,e){let a=Math.abs(t).toString().padStart(e,"0");return(t<0?"-":"")+a}t.s(["startOfDay",0,l],585890);let m={y(t,e){let a=t.getFullYear(),r=a>0?a:1-a;return f("yy"===e?r%100:r,e.length)},M(t,e){let a=t.getMonth();return"M"===e?String(a+1):f(a+1,2)},d:(t,e)=>f(t.getDate(),e.length),a(t,e){let a=t.getHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":return a.toUpperCase();case"aaa":return a;case"aaaaa":return a[0];default:return"am"===a?"a.m.":"p.m."}},h:(t,e)=>f(t.getHours()%12||12,e.length),H:(t,e)=>f(t.getHours(),e.length),m:(t,e)=>f(t.getMinutes(),e.length),s:(t,e)=>f(t.getSeconds(),e.length),S(t,e){let a=e.length;return f(Math.trunc(t.getMilliseconds()*Math.pow(10,a-3)),e.length)}},g={G:function(t,e,a){let r=+(t.getFullYear()>0);switch(e){case"G":case"GG":case"GGG":return a.era(r,{width:"abbreviated"});case"GGGGG":return a.era(r,{width:"narrow"});default:return a.era(r,{width:"wide"})}},y:function(t,e,a){if("yo"===e){let e=t.getFullYear();return a.ordinalNumber(e>0?e:1-e,{unit:"year"})}return m.y(t,e)},Y:function(t,e,a,r){let n=h(t,r),i=n>0?n:1-n;return"YY"===e?f(i%100,2):"Yo"===e?a.ordinalNumber(i,{unit:"year"}):f(i,e.length)},R:function(t,e){return f(c(t),e.length)},u:function(t,e){return f(t.getFullYear(),e.length)},Q:function(t,e,a){let r=Math.ceil((t.getMonth()+1)/3);switch(e){case"Q":return String(r);case"QQ":return f(r,2);case"Qo":return a.ordinalNumber(r,{unit:"quarter"});case"QQQ":return a.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return a.quarter(r,{width:"narrow",context:"formatting"});default:return a.quarter(r,{width:"wide",context:"formatting"})}},q:function(t,e,a){let r=Math.ceil((t.getMonth()+1)/3);switch(e){case"q":return String(r);case"qq":return f(r,2);case"qo":return a.ordinalNumber(r,{unit:"quarter"});case"qqq":return a.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return a.quarter(r,{width:"narrow",context:"standalone"});default:return a.quarter(r,{width:"wide",context:"standalone"})}},M:function(t,e,a){let r=t.getMonth();switch(e){case"M":case"MM":return m.M(t,e);case"Mo":return a.ordinalNumber(r+1,{unit:"month"});case"MMM":return a.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return a.month(r,{width:"narrow",context:"formatting"});default:return a.month(r,{width:"wide",context:"formatting"})}},L:function(t,e,a){let r=t.getMonth();switch(e){case"L":return String(r+1);case"LL":return f(r+1,2);case"Lo":return a.ordinalNumber(r+1,{unit:"month"});case"LLL":return a.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return a.month(r,{width:"narrow",context:"standalone"});default:return a.month(r,{width:"wide",context:"standalone"})}},w:function(t,e,i,o){let l,u,c,m,g,w=Math.round((d(l=n(t,o?.in),o)-(u=(0,a.getDefaultOptions)(),c=o?.firstWeekContainsDate??o?.locale?.options?.firstWeekContainsDate??u.firstWeekContainsDate??u.locale?.options?.firstWeekContainsDate??1,m=h(l,o),(g=(0,r.constructFrom)(o?.in||l,0)).setFullYear(m,0,c),g.setHours(0,0,0,0),d(g,o)))/s.millisecondsInWeek)+1;return"wo"===e?i.ordinalNumber(w,{unit:"week"}):f(w,e.length)},I:function(t,e,a){let i,o,l,d=Math.round((u(i=n(t,void 0))-(o=c(i,void 0),(l=(0,r.constructFrom)(i,0)).setFullYear(o,0,4),l.setHours(0,0,0,0),u(l)))/s.millisecondsInWeek)+1;return"Io"===e?a.ordinalNumber(d,{unit:"week"}):f(d,e.length)},d:function(t,e,a){return"do"===e?a.ordinalNumber(t.getDate(),{unit:"date"}):m.d(t,e)},D:function(t,e,a){let r,d,u=function(t,e){let[a,r]=o(void 0,t,e),n=l(a),d=l(r);return Math.round((n-i(n)-(d-i(d)))/s.millisecondsInDay)}(d=n(t,void 0),((r=n(d,void 0)).setFullYear(r.getFullYear(),0,1),r.setHours(0,0,0,0),r))+1;return"Do"===e?a.ordinalNumber(u,{unit:"dayOfYear"}):f(u,e.length)},E:function(t,e,a){let r=t.getDay();switch(e){case"E":case"EE":case"EEE":return a.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return a.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return a.day(r,{width:"short",context:"formatting"});default:return a.day(r,{width:"wide",context:"formatting"})}},e:function(t,e,a,r){let n=t.getDay(),i=(n-r.weekStartsOn+8)%7||7;switch(e){case"e":return String(i);case"ee":return f(i,2);case"eo":return a.ordinalNumber(i,{unit:"day"});case"eee":return a.day(n,{width:"abbreviated",context:"formatting"});case"eeeee":return a.day(n,{width:"narrow",context:"formatting"});case"eeeeee":return a.day(n,{width:"short",context:"formatting"});default:return a.day(n,{width:"wide",context:"formatting"})}},c:function(t,e,a,r){let n=t.getDay(),i=(n-r.weekStartsOn+8)%7||7;switch(e){case"c":return String(i);case"cc":return f(i,e.length);case"co":return a.ordinalNumber(i,{unit:"day"});case"ccc":return a.day(n,{width:"abbreviated",context:"standalone"});case"ccccc":return a.day(n,{width:"narrow",context:"standalone"});case"cccccc":return a.day(n,{width:"short",context:"standalone"});default:return a.day(n,{width:"wide",context:"standalone"})}},i:function(t,e,a){let r=t.getDay(),n=0===r?7:r;switch(e){case"i":return String(n);case"ii":return f(n,e.length);case"io":return a.ordinalNumber(n,{unit:"day"});case"iii":return a.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return a.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return a.day(r,{width:"short",context:"formatting"});default:return a.day(r,{width:"wide",context:"formatting"})}},a:function(t,e,a){let r=t.getHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":return a.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"aaa":return a.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return a.dayPeriod(r,{width:"narrow",context:"formatting"});default:return a.dayPeriod(r,{width:"wide",context:"formatting"})}},b:function(t,e,a){let r,n=t.getHours();switch(r=12===n?"noon":0===n?"midnight":n/12>=1?"pm":"am",e){case"b":case"bb":return a.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"bbb":return a.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return a.dayPeriod(r,{width:"narrow",context:"formatting"});default:return a.dayPeriod(r,{width:"wide",context:"formatting"})}},B:function(t,e,a){let r,n=t.getHours();switch(r=n>=17?"evening":n>=12?"afternoon":n>=4?"morning":"night",e){case"B":case"BB":case"BBB":return a.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"BBBBB":return a.dayPeriod(r,{width:"narrow",context:"formatting"});default:return a.dayPeriod(r,{width:"wide",context:"formatting"})}},h:function(t,e,a){if("ho"===e){let e=t.getHours()%12;return 0===e&&(e=12),a.ordinalNumber(e,{unit:"hour"})}return m.h(t,e)},H:function(t,e,a){return"Ho"===e?a.ordinalNumber(t.getHours(),{unit:"hour"}):m.H(t,e)},K:function(t,e,a){let r=t.getHours()%12;return"Ko"===e?a.ordinalNumber(r,{unit:"hour"}):f(r,e.length)},k:function(t,e,a){let r=t.getHours();return(0===r&&(r=24),"ko"===e)?a.ordinalNumber(r,{unit:"hour"}):f(r,e.length)},m:function(t,e,a){return"mo"===e?a.ordinalNumber(t.getMinutes(),{unit:"minute"}):m.m(t,e)},s:function(t,e,a){return"so"===e?a.ordinalNumber(t.getSeconds(),{unit:"second"}):m.s(t,e)},S:function(t,e){return m.S(t,e)},X:function(t,e,a){let r=t.getTimezoneOffset();if(0===r)return"Z";switch(e){case"X":return p(r);case"XXXX":case"XX":return y(r);default:return y(r,":")}},x:function(t,e,a){let r=t.getTimezoneOffset();switch(e){case"x":return p(r);case"xxxx":case"xx":return y(r);default:return y(r,":")}},O:function(t,e,a){let r=t.getTimezoneOffset();switch(e){case"O":case"OO":case"OOO":return"GMT"+w(r,":");default:return"GMT"+y(r,":")}},z:function(t,e,a){let r=t.getTimezoneOffset();switch(e){case"z":case"zz":case"zzz":return"GMT"+w(r,":");default:return"GMT"+y(r,":")}},t:function(t,e,a){return f(Math.trunc(t/1e3),e.length)},T:function(t,e,a){return f(+t,e.length)}};function w(t,e=""){let a=t>0?"-":"+",r=Math.abs(t),n=Math.trunc(r/60),i=r%60;return 0===i?a+String(n):a+String(n)+e+f(i,2)}function p(t,e){return t%60==0?(t>0?"-":"+")+f(Math.abs(t)/60,2):y(t,e)}function y(t,e=""){let a=Math.abs(t);return(t>0?"-":"+")+f(Math.trunc(a/60),2)+e+f(a%60,2)}let b=(t,e)=>{switch(t){case"P":return e.date({width:"short"});case"PP":return e.date({width:"medium"});case"PPP":return e.date({width:"long"});default:return e.date({width:"full"})}},x=(t,e)=>{switch(t){case"p":return e.time({width:"short"});case"pp":return e.time({width:"medium"});case"ppp":return e.time({width:"long"});default:return e.time({width:"full"})}},k={p:x,P:(t,e)=>{let a,r=t.match(/(P+)(p+)?/)||[],n=r[1],i=r[2];if(!i)return b(t,e);switch(n){case"P":a=e.dateTime({width:"short"});break;case"PP":a=e.dateTime({width:"medium"});break;case"PPP":a=e.dateTime({width:"long"});break;default:a=e.dateTime({width:"full"})}return a.replace("{{date}}",b(n,e)).replace("{{time}}",x(i,e))}},v=/^D+$/,M=/^Y+$/,S=["D","DD","YY","YYYY"],N=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,j=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,D=/^'([^]*?)'?$/,C=/''/g,_=/[a-zA-Z]/;t.s(["format",0,function(t,r,i){let o=(0,a.getDefaultOptions)(),s=i?.locale??o.locale??e.defaultLocale,l=i?.firstWeekContainsDate??i?.locale?.options?.firstWeekContainsDate??o.firstWeekContainsDate??o.locale?.options?.firstWeekContainsDate??1,d=i?.weekStartsOn??i?.locale?.options?.weekStartsOn??o.weekStartsOn??o.locale?.options?.weekStartsOn??0,u=n(t,i?.in);if(!(u instanceof Date||"object"==typeof u&&"[object Date]"===Object.prototype.toString.call(u))&&"number"!=typeof u||isNaN(+n(u)))throw RangeError("Invalid time value");let c=r.match(j).map(t=>{let e=t[0];return"p"===e||"P"===e?(0,k[e])(t,s.formatLong):t}).join("").match(N).map(t=>{if("''"===t)return{isToken:!1,value:"'"};let e=t[0];if("'"===e){var a;let e;return{isToken:!1,value:(e=(a=t).match(D))?e[1].replace(C,"'"):a}}if(g[e])return{isToken:!0,value:t};if(e.match(_))throw RangeError("Format string contains an unescaped latin alphabet character `"+e+"`");return{isToken:!1,value:t}});s.localize.preprocessor&&(c=s.localize.preprocessor(u,c));let h={firstWeekContainsDate:l,weekStartsOn:d,locale:s};return c.map(e=>{if(!e.isToken)return e.value;let a=e.value;return(!i?.useAdditionalWeekYearTokens&&M.test(a)||!i?.useAdditionalDayOfYearTokens&&v.test(a))&&function(t,e,a){var r,n,i;let o,s=(r=t,n=e,i=a,o="Y"===r[0]?"years":"days of the month",`Use \`${r.toLowerCase()}\` instead of \`${r}\` (in \`${n}\`) for formatting ${o} to the input \`${i}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`);if(console.warn(s),S.includes(t))throw RangeError(s)}(a,r,String(t)),(0,g[a[0]])(u,a,s.localize,h)}).join("")}],401851)},55545,455024,t=>{"use strict";var e;let a={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function r(t){return (e={})=>{let a=e.width?String(e.width):t.defaultWidth;return t.formats[a]||t.formats[t.defaultWidth]}}let n={date:r({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:r({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:r({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},i={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function o(t){return(e,a)=>{let r;if("formatting"===(a?.context?String(a.context):"standalone")&&t.formattingValues){let e=t.defaultFormattingWidth||t.defaultWidth,n=a?.width?String(a.width):e;r=t.formattingValues[n]||t.formattingValues[e]}else{let e=t.defaultWidth,n=a?.width?String(a.width):t.defaultWidth;r=t.values[n]||t.values[e]}return r[t.argumentCallback?t.argumentCallback(e):e]}}let s={ordinalNumber:(t,e)=>{let a=Number(t),r=a%100;if(r>20||r<10)switch(r%10){case 1:return a+"st";case 2:return a+"nd";case 3:return a+"rd"}return a+"th"},era:o({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:o({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:t=>t-1}),month:o({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:o({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:o({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})};function l(t){return(e,a={})=>{let r,n=a.width,i=n&&t.matchPatterns[n]||t.matchPatterns[t.defaultMatchWidth],o=e.match(i);if(!o)return null;let s=o[0],l=n&&t.parsePatterns[n]||t.parsePatterns[t.defaultParseWidth],d=Array.isArray(l)?function(t,e){for(let a=0;a<t.length;a++)if(e(t[a]))return a}(l,t=>t.test(s)):function(t,e){for(let a in t)if(Object.prototype.hasOwnProperty.call(t,a)&&e(t[a]))return a}(l,t=>t.test(s));return r=t.valueCallback?t.valueCallback(d):d,{value:r=a.valueCallback?a.valueCallback(r):r,rest:e.slice(s.length)}}}let d={ordinalNumber:(e={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:t=>parseInt(t,10)},(t,a={})=>{let r=t.match(e.matchPattern);if(!r)return null;let n=r[0],i=t.match(e.parsePattern);if(!i)return null;let o=e.valueCallback?e.valueCallback(i[0]):i[0];return{value:o=a.valueCallback?a.valueCallback(o):o,rest:t.slice(n.length)}}),era:l({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:l({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:t=>t+1}),month:l({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:l({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:l({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})};t.s(["defaultLocale",0,{code:"en-US",formatDistance:(t,e,r)=>{let n,i=a[t];if(n="string"==typeof i?i:1===e?i.one:i.other.replace("{{count}}",e.toString()),r?.addSuffix)if(r.comparison&&r.comparison>0)return"in "+n;else return n+" ago";return n},formatLong:n,formatRelative:(t,e,a,r)=>i[t],localize:s,match:d,options:{weekStartsOn:0,firstWeekContainsDate:1}}],55545);let u={};t.s(["getDefaultOptions",0,function(){return u}],455024)},482022,t=>{"use strict";var e=t.i(456420);let a={name:"external-link",size:24,node:[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]};a.node;let r=(0,e.default)(a);t.s(["ExternalLink",0,r],482022)},696017,t=>{"use strict";var e=t.i(60231),a=t.i(419524);t.i(947716);var r=t.i(723685),n=(0,a.__name)(t=>{let{securityLevel:a}=(0,e.getConfig2)(),n=(0,r.select)("body");if("sandbox"===a){let e=(0,r.select)(`#i${t}`),a=e.node()?.contentDocument??document;n=(0,r.select)(a.body)}return n.select(`#${t}`)},"selectSvgElement");t.s(["selectSvgElement",0,n])},502056,t=>{"use strict";var e=t.i(217248),a=t.i(447804),r=t.i(508324),n=t.i(419524),i=(0,n.__name)(({flowchart:t})=>{let e=t?.subGraphTitleMargin?.top??0,a=t?.subGraphTitleMargin?.bottom??0;return{subGraphTitleTopMargin:e,subGraphTitleBottomMargin:a,subGraphTitleTotalMargin:e+a}},"getSubGraphTitleMargins"),o=new Map;async function s(t,r,n){let i,s;"rect"===r.shape&&(r.rx&&r.ry?r.shape="roundedRect":r.shape="squareRect");let l=r.shape?e.shapes[r.shape]:void 0;if(!l)throw Error(`No such shape: ${r.shape}. Please check your syntax.`);if(r.link){let e;"sandbox"===n.config.securityLevel?e="_top":r.linkTarget&&(e=r.linkTarget||"_blank"),i=t.insert("svg:a").attr("xlink:href",r.link).attr("target",e??null),s=await l(i,r,n)}else i=s=await l(t,r,n);return i.attr("data-look",(0,a.handleUndefinedAttr)(r.look)),r.tooltip&&s.attr("title",r.tooltip),o.set(r.id,i),r.haveCallback&&i.attr("class",i.attr("class")+" clickable"),i}(0,n.__name)(s,"insertNode");var l=(0,n.__name)((t,e)=>{o.set(e.id,t)},"setNodeElem"),d=(0,n.__name)(()=>{o.clear()},"clear"),u=(0,n.__name)(t=>{let e=o.get(t.id);r.log.trace("Transforming node",t.diff,t,"translate("+(t.x-t.width/2-5)+", "+t.width/2+")");let a=t.diff||0;return t.clusterNode?e.attr("transform","translate("+(t.x+a-t.width/2)+", "+(t.y-t.height/2-8)+")"):e.attr("transform","translate("+t.x+", "+t.y+")"),a},"positionNode");t.s(["clear",0,d,"getSubGraphTitleMargins",0,i,"insertNode",0,s,"positionNode",0,u,"setNodeElem",0,l])},369110,t=>{"use strict";var e=t.i(502056),a=t.i(217248),r=t.i(224797),n=t.i(836333),i=t.i(60231),o=t.i(508324),s=t.i(419524);t.i(947716);var l=t.i(723685),d=t.i(883272),u=(0,s.__name)(async(t,e)=>{let s,u,c=(0,i.getConfig2)(),{themeVariables:h,handDrawnSeed:f}=c,{clusterBkg:m,clusterBorder:g}=h,{labelStyles:w,nodeStyles:p,borderStyles:y,backgroundStyles:b}=(0,r.styles2String)(e),x=t.insert("g").attr("class","cluster swimlane "+(e.cssClasses||"")).attr("id",e.id).attr("data-id",e.id).attr("data-et","cluster").attr("data-look",e.look),k=(0,i.evaluate)(c.flowchart.htmlLabels),v="LR"===e.direction,M=x.insert("g").attr("class","cluster-label swimlane-label"),S=await (0,n.createText)(M,e.label,{style:e.labelStyle,useHtmlLabels:k,isNode:!0,width:e.width}),N=S.getBBox();if(k){let t=S.children[0],e=(0,l.select)(S);N=t.getBoundingClientRect(),e.attr("width",N.width),e.attr("height",N.height)}let j=e.padding??0,D=e.width<=N.width+j?N.width+j:e.width;e.width<=N.width+j?e.diff=(D-e.width)/2-j:e.diff=-j;let C=e.height,_=e.y-C/2,T=e.y+C/2,P=e.x-D/2,O=void 0!==e.swimlaneContentTop?e.swimlaneContentTop:_+C/3,W=4*!!v,F=N.height+2*W;if(v){let t=Math.max(F,N.height+2*W),a=P+t,n=Math.max(0,D-t);if("handDrawn"===e.look){let i=d.default.svg(x),o=(0,r.userNodeOverrides)(e,{roughness:.7,fill:m,stroke:g,fillWeight:3,seed:f}),l=(0,r.userNodeOverrides)(e,{roughness:.7,fill:"none",stroke:g,seed:f}),c=i.rectangle(P,_,t,C,o);s=x.insert(()=>c,":first-child");let h=i.rectangle(a,_,n,C,l);u=x.insert(()=>h,":first-child"),s.select("path:nth-child(2)").attr("style",y.join(";")),s.select("path").attr("style",b.join(";").replace("fill","stroke"))}else s=x.insert("rect",":first-child"),u=x.insert("rect",":first-child"),s.attr("class","swimlane-title").attr("style",p).attr("x",P).attr("y",_).attr("width",t).attr("height",C).attr("fill",m).attr("stroke",g),u.attr("class","swimlane-body").attr("style",p).attr("x",a).attr("y",_).attr("width",n).attr("height",C).attr("fill","none").attr("stroke",g);let i=P+t/2,o=e.y;M.attr("transform",`translate(${i}, ${o}) rotate(-90) translate(${-N.width/2}, ${-N.height/2})`)}else{let t=Math.min(F,Math.max(0,O-_)),a=_+t,n=Math.max(0,T-a),i=e.x-D/2;if("handDrawn"===e.look){let o=d.default.svg(x),l=(0,r.userNodeOverrides)(e,{roughness:.7,fill:m,stroke:g,fillWeight:3,seed:f}),c=(0,r.userNodeOverrides)(e,{roughness:.7,fill:"none",stroke:g,seed:f}),h=o.rectangle(i,_,D,t,l);s=x.insert(()=>h,":first-child");let w=o.rectangle(i,a,D,n,c);u=x.insert(()=>w,":first-child"),s.select("path:nth-child(2)").attr("style",y.join(";")),s.select("path").attr("style",b.join(";").replace("fill","stroke"))}else s=x.insert("rect",":first-child"),u=x.insert("rect",":first-child"),s.attr("class","swimlane-title").attr("style",p).attr("x",i).attr("y",_).attr("width",D).attr("height",t).attr("fill",m).attr("stroke",g),u.attr("class","swimlane-body").attr("style",p).attr("x",i).attr("y",a).attr("width",D).attr("height",n).attr("fill","none").attr("stroke",g);let o=e.x-N.width/2,l=_+(t-N.height)/2;M.attr("transform",`translate(${o}, ${l})`)}if(o.log.trace("Swimlane data ",e,JSON.stringify(e)),w){let t=M.select("span");t&&t.attr("style",w)}return e.offsetX=0,e.width=D,e.height=C,e.offsetY=N.height-j/2,e.intersect=function(t){return(0,a.intersect_rect_default)(e,t)},{cluster:x,labelBBox:N}},"swimlane"),c=(0,s.__name)(async(t,s)=>{let u,c;o.log.info("Creating subgraph rect for ",s.id,s);let h=(0,i.getConfig2)(),{themeVariables:f,handDrawnSeed:m}=h,{clusterBkg:g,clusterBorder:w}=f,{labelStyles:p,nodeStyles:y,borderStyles:b,backgroundStyles:x}=(0,r.styles2String)(s),k=t.insert("g").attr("class","cluster "+s.cssClasses).attr("id",s.domId).attr("data-look",s.look),v=(0,i.getEffectiveHtmlLabels)(h),M=k.insert("g").attr("class","cluster-label "),S=(u="markdown"===s.labelType?await (0,n.createText)(M,s.label,{style:s.labelStyle,useHtmlLabels:v,isNode:!0,width:s.width}):await (0,a.createLabel_default)(M,s.label,s.labelStyle||"",!1,!0)).getBBox();if((0,i.getEffectiveHtmlLabels)(h)){let t=u.children[0],e=(0,l.select)(u);S=t.getBoundingClientRect(),e.attr("width",S.width),e.attr("height",S.height)}let N=s.width<=S.width+s.padding?S.width+s.padding:s.width;s.width<=S.width+s.padding?s.diff=(N-s.width)/2-s.padding:s.diff=-s.padding;let j=s.height,D=s.x-N/2,C=s.y-j/2;if(o.log.trace("Data ",s,JSON.stringify(s)),"handDrawn"===s.look){let t=d.default.svg(k),e=(0,r.userNodeOverrides)(s,{roughness:.7,fill:g,stroke:w,fillWeight:3,seed:m}),n=t.path((0,a.createRoundedRectPathD)(D,C,N,j,0),e);(c=k.insert(()=>(o.log.debug("Rough node insert CXC",n),n),":first-child")).select("path:nth-child(2)").attr("style",b.join(";")),c.select("path").attr("style",x.join(";").replace("fill","stroke"))}else(c=k.insert("rect",":first-child")).attr("style",y).attr("rx",s.rx).attr("ry",s.ry).attr("x",D).attr("y",C).attr("width",N).attr("height",j);let{subGraphTitleTopMargin:_}=(0,e.getSubGraphTitleMargins)(h);if(M.attr("transform",`translate(${s.x-S.width/2}, ${s.y-s.height/2+_})`),p){let t=M.select("span");t&&t.attr("style",p)}let T=c.node().getBBox();return s.offsetX=0,s.width=T.width,s.height=T.height,s.offsetY=S.height-s.padding/2,s.intersect=function(t){return(0,a.intersect_rect_default)(s,t)},{cluster:k,labelBBox:S}},"rect"),h=(0,s.__name)((t,e)=>{let r=t.insert("g").attr("class","note-cluster").attr("id",e.domId),n=r.insert("rect",":first-child"),i=0*e.padding,o=i/2;n.attr("rx",e.rx).attr("ry",e.ry).attr("x",e.x-e.width/2-o).attr("y",e.y-e.height/2-o).attr("width",e.width+i).attr("height",e.height+i).attr("fill","none");let s=n.node().getBBox();return e.width=s.width,e.height=s.height,e.intersect=function(t){return(0,a.intersect_rect_default)(e,t)},{cluster:r,labelBBox:{width:0,height:0}}},"noteGroup"),f=(0,s.__name)(async(t,e)=>{let r,n=(0,i.getConfig2)(),{themeVariables:o,handDrawnSeed:s}=n,{altBackground:u,compositeBackground:c,compositeTitleBackground:h,nodeBorder:f}=o,m=t.insert("g").attr("class",e.cssClasses).attr("id",e.domId).attr("data-id",e.id).attr("data-look",e.look),g=m.insert("g",":first-child"),w=m.insert("g").attr("class","cluster-label"),p=m.append("rect"),y=await (0,a.createLabel_default)(w,e.label,e.labelStyle,void 0,!0),b=y.getBBox();if((0,i.getEffectiveHtmlLabels)(n)){let t=y.children[0],e=(0,l.select)(y);b=t.getBoundingClientRect(),e.attr("width",b.width),e.attr("height",b.height)}let x=0*e.padding,k=(e.width<=b.width+e.padding?b.width+e.padding:e.width)+x;e.width<=b.width+e.padding?e.diff=(k-e.width)/2-e.padding:e.diff=-e.padding;let v=e.height+x,M=e.height+x-b.height-6,S=e.x-k/2,N=e.y-v/2;e.width=k;let j=e.y-e.height/2-x/2+b.height+2;if("handDrawn"===e.look){let t=e.cssClasses.includes("statediagram-cluster-alt"),n=d.default.svg(m),i=e.rx||e.ry?n.path((0,a.createRoundedRectPathD)(S,N,k,v,10),{roughness:.7,fill:h,fillStyle:"solid",stroke:f,seed:s}):n.rectangle(S,N,k,v,{seed:s});r=m.insert(()=>i,":first-child");let o=n.rectangle(S,j,k,M,{fill:t?u:c,fillStyle:t?"hachure":"solid",stroke:f,seed:s});r=m.insert(()=>i,":first-child"),p=m.insert(()=>o)}else(r=g.insert("rect",":first-child")).attr("class","outer").attr("x",S).attr("y",N).attr("width",k).attr("height",v).attr("data-look",e.look),p.attr("class","inner").attr("x",S).attr("y",j).attr("width",k).attr("height",M);return w.attr("transform",`translate(${e.x-b.width/2}, ${N+1-3*!(0,i.getEffectiveHtmlLabels)(n)})`),e.height=r.node().getBBox().height,e.offsetX=0,e.offsetY=b.height-e.padding/2,e.labelBBox=b,e.intersect=function(t){return(0,a.intersect_rect_default)(e,t)},{cluster:m,labelBBox:b}},"roundedWithTitle"),m=(0,s.__name)(async(t,s)=>{let u;o.log.info("Creating subgraph rect for ",s.id,s);let c=(0,i.getConfig2)(),{themeVariables:h,handDrawnSeed:f}=c,{clusterBkg:m,clusterBorder:g}=h,{labelStyles:w,nodeStyles:p,borderStyles:y,backgroundStyles:b}=(0,r.styles2String)(s),x=t.insert("g").attr("class","cluster "+s.cssClasses).attr("id",s.domId).attr("data-look",s.look),k=(0,i.getEffectiveHtmlLabels)(c),v=x.insert("g").attr("class","cluster-label "),M=await (0,n.createText)(v,s.label,{style:s.labelStyle,useHtmlLabels:k,isNode:!0,width:s.width}),S=M.getBBox();if((0,i.getEffectiveHtmlLabels)(c)){let t=M.children[0],e=(0,l.select)(M);S=t.getBoundingClientRect(),e.attr("width",S.width),e.attr("height",S.height)}let N=s.width<=S.width+s.padding?S.width+s.padding:s.width;s.width<=S.width+s.padding?s.diff=(N-s.width)/2-s.padding:s.diff=-s.padding;let j=s.height,D=s.x-N/2,C=s.y-j/2;if(o.log.trace("Data ",s,JSON.stringify(s)),"handDrawn"===s.look){let t=d.default.svg(x),e=(0,r.userNodeOverrides)(s,{roughness:.7,fill:m,stroke:g,fillWeight:4,seed:f}),n=t.path((0,a.createRoundedRectPathD)(D,C,N,j,s.rx),e);(u=x.insert(()=>(o.log.debug("Rough node insert CXC",n),n),":first-child")).select("path:nth-child(2)").attr("style",y.join(";")),u.select("path").attr("style",b.join(";").replace("fill","stroke"))}else(u=x.insert("rect",":first-child")).attr("style",p).attr("rx",s.rx).attr("ry",s.ry).attr("x",D).attr("y",C).attr("width",N).attr("height",j);let{subGraphTitleTopMargin:_}=(0,e.getSubGraphTitleMargins)(c);if(v.attr("transform",`translate(${s.x-S.width/2}, ${s.y-s.height/2+_})`),w){let t=v.select("span");t&&t.attr("style",w)}let T=u.node().getBBox();return s.offsetX=0,s.width=T.width,s.height=T.height,s.offsetY=S.height-s.padding/2,s.intersect=function(t){return(0,a.intersect_rect_default)(s,t)},{cluster:x,labelBBox:S}},"kanbanSection"),g={rect:c,squareRect:c,roundedWithTitle:f,noteGroup:h,divider:(0,s.__name)((t,e)=>{let r,{themeVariables:n,handDrawnSeed:o}=(0,i.getConfig2)(),{nodeBorder:s}=n,l=t.insert("g").attr("class",e.cssClasses).attr("id",e.domId).attr("data-look",e.look),u=l.insert("g",":first-child"),c=0*e.padding,h=e.width+c;e.diff=-e.padding;let f=e.height+c,m=e.x-h/2,g=e.y-f/2;if(e.width=h,"handDrawn"===e.look){let t=d.default.svg(l).rectangle(m,g,h,f,{fill:"lightgrey",roughness:.5,strokeLineDash:[5],stroke:s,seed:o});r=l.insert(()=>t,":first-child")}else{r=u.insert("rect",":first-child");let t="outer";e.look,t="divider",r.attr("class",t).attr("x",m).attr("y",g).attr("width",h).attr("height",f).attr("data-look",e.look)}return e.height=r.node().getBBox().height,e.offsetX=0,e.offsetY=0,e.intersect=function(t){return(0,a.intersect_rect_default)(e,t)},{cluster:l,labelBBox:{}}},"divider"),kanbanSection:m,swimlane:u},w=new Map,p=(0,s.__name)(async(t,e)=>{let a=e.shape||"rect",r=await g[a](t,e);return w.set(e.id,r),r},"insertCluster"),y=(0,s.__name)(()=>{w=new Map},"clear");t.s(["clear",0,y,"insertCluster",0,p])},121292,t=>{"use strict";var e=t.i(369110),a=t.i(382793),r=t.i(502056),n=t.i(217248),i=t.i(447804),o=t.i(60231),s=t.i(508324),l=t.i(419524),d={common:o.common_default,getConfig:o.getConfig,insertCluster:e.insertCluster,insertEdge:a.insertEdge,insertEdgeLabel:a.insertEdgeLabel,insertMarkers:a.markers_default,insertNode:r.insertNode,interpolateToCurve:i.interpolateToCurve,labelHelper:n.labelHelper,log:s.log,positionEdgeLabel:a.positionEdgeLabel},u={},c=(0,l.__name)(t=>{for(let e of t)u[e.name]=e},"registerLayoutLoaders");(0,l.__name)(()=>{c([{name:"dagre",loader:(0,l.__name)(async()=>await t.A(555153),"loader")},{name:"swimlane",loader:(0,l.__name)(async()=>await t.A(12782),"loader")},{name:"cose-bilkent",loader:(0,l.__name)(async()=>await t.A(208503),"loader")}])},"registerDefaultLayoutLoaders")();var h=(0,l.__name)(async(t,e)=>{if(!(t.layoutAlgorithm in u))throw Error(`Unknown layout algorithm: ${t.layoutAlgorithm}`);if(t.diagramId)for(let e of t.nodes){let a=e.domId||e.id;e.domId=`${t.diagramId}-${a}`}let a=u[t.layoutAlgorithm],r=await a.loader(),{theme:n,themeVariables:i}=t.config,{useGradient:o,gradientStart:s,gradientStop:l}=i,c=e.attr("id");if(e.append("defs").append("filter").attr("id",`${c}-drop-shadow`).attr("height","130%").attr("width","130%").append("feDropShadow").attr("dx","4").attr("dy","4").attr("stdDeviation",0).attr("flood-opacity","0.06").attr("flood-color",`${n?.includes("dark")?"#FFFFFF":"#000000"}`),e.append("defs").append("filter").attr("id",`${c}-drop-shadow-small`).attr("height","150%").attr("width","150%").append("feDropShadow").attr("dx","2").attr("dy","2").attr("stdDeviation",0).attr("flood-opacity","0.06").attr("flood-color",`${n?.includes("dark")?"#FFFFFF":"#000000"}`),o){let t=e.append("linearGradient").attr("id",e.attr("id")+"-gradient").attr("gradientUnits","objectBoundingBox").attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%");t.append("svg:stop").attr("offset","0%").attr("stop-color",s).attr("stop-opacity",1),t.append("svg:stop").attr("offset","100%").attr("stop-color",l).attr("stop-opacity",1)}return r.render(t,e,d,{algorithm:a.algorithm})},"render"),f=(0,l.__name)((t="",{fallback:e="dagre"}={})=>{if(t in u)return t;if(e in u)return s.log.warn(`Layout algorithm ${t} is not registered. Using ${e} as fallback.`),e;throw Error(`Both layout algorithms ${t} and ${e} are not registered.`)},"getRegisteredLayoutAlgorithm");t.s(["getRegisteredLayoutAlgorithm",0,f,"registerLayoutLoaders",0,c,"render",0,h])}]);