reflex-agent 0.2.4 → 0.3.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 (206) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +103 -90
  3. package/.next/app-path-routes-manifest.json +8 -8
  4. package/.next/build-manifest.json +5 -5
  5. package/.next/prerender-manifest.json +4 -54
  6. package/.next/react-loadable-manifest.json +1 -1
  7. package/.next/server/app/_not-found/page.js +1 -1
  8. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  9. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  10. package/.next/server/app/agents/[agentId]/page.js +3 -3
  11. package/.next/server/app/agents/[agentId]/page.js.nft.json +1 -1
  12. package/.next/server/app/agents/[agentId]/page_client-reference-manifest.js +1 -1
  13. package/.next/server/app/api/agents/[agentId]/respond/route.js +2 -2
  14. package/.next/server/app/api/agents/[agentId]/respond/route.js.nft.json +1 -1
  15. package/.next/server/app/api/agents/[agentId]/respond/route_client-reference-manifest.js +1 -1
  16. package/.next/server/app/api/images/[rootId]/[file]/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/oauth/callback/route.js +3 -3
  18. package/.next/server/app/api/oauth/callback/route_client-reference-manifest.js +1 -1
  19. package/.next/server/app/api/oauth/start/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/roots/[id]/attachments/route.js +0 -0
  21. package/.next/server/app/api/roots/[id]/attachments/route_client-reference-manifest.js +1 -1
  22. package/.next/server/app/api/roots/[id]/chat/[topicId]/send/route.js +2 -2
  23. package/.next/server/app/api/roots/[id]/chat/[topicId]/send/route.js.nft.json +1 -1
  24. package/.next/server/app/api/roots/[id]/chat/[topicId]/send/route_client-reference-manifest.js +1 -1
  25. package/.next/server/app/api/roots/[id]/chat/[topicId]/stop/route.js +2 -2
  26. package/.next/server/app/api/roots/[id]/chat/[topicId]/stop/route.js.nft.json +1 -1
  27. package/.next/server/app/api/roots/[id]/chat/[topicId]/stop/route_client-reference-manifest.js +1 -1
  28. package/.next/server/app/api/roots/[id]/chat/[topicId]/stream/route.js +2 -2
  29. package/.next/server/app/api/roots/[id]/chat/[topicId]/stream/route.js.nft.json +1 -1
  30. package/.next/server/app/api/roots/[id]/chat/[topicId]/stream/route_client-reference-manifest.js +1 -1
  31. package/.next/server/app/api/roots/[id]/dashboard/route.js +1 -1
  32. package/.next/server/app/api/roots/[id]/dashboard/route.js.nft.json +1 -1
  33. package/.next/server/app/api/roots/[id]/dashboard/route_client-reference-manifest.js +1 -1
  34. package/.next/server/app/api/roots/[id]/suggestions/route.js +1 -1
  35. package/.next/server/app/api/roots/[id]/suggestions/route.js.nft.json +1 -1
  36. package/.next/server/app/api/roots/[id]/suggestions/route_client-reference-manifest.js +1 -1
  37. package/.next/server/app/api/utilities/[scope]/[id]/bundle.js/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/utilities/[scope]/[id]/host/route.js +2 -2
  39. package/.next/server/app/api/utilities/[scope]/[id]/host/route.js.nft.json +1 -1
  40. package/.next/server/app/api/utilities/[scope]/[id]/host/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/utilities/[scope]/[id]/host-api.mjs/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/utilities/[scope]/[id]/host-ui.mjs/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/api/utilities/[scope]/[id]/iframe/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/utilities/[scope]/[id]/style.css/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/audit/page.js +2 -2
  46. package/.next/server/app/audit/page.js.nft.json +1 -1
  47. package/.next/server/app/audit/page_client-reference-manifest.js +1 -1
  48. package/.next/server/app/onboarding/page.js +3 -3
  49. package/.next/server/app/onboarding/page.js.nft.json +1 -1
  50. package/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  51. package/.next/server/app/page.js +2 -2
  52. package/.next/server/app/page.js.nft.json +1 -1
  53. package/.next/server/app/page_client-reference-manifest.js +1 -1
  54. package/.next/server/app/roots/[id]/chat/[topicId]/page.js +2 -6
  55. package/.next/server/app/roots/[id]/chat/[topicId]/page.js.nft.json +1 -1
  56. package/.next/server/app/roots/[id]/chat/[topicId]/page_client-reference-manifest.js +1 -1
  57. package/.next/server/app/roots/[id]/kb/[...slug]/page.js +2 -6
  58. package/.next/server/app/roots/[id]/kb/[...slug]/page.js.nft.json +1 -1
  59. package/.next/server/app/roots/[id]/kb/[...slug]/page_client-reference-manifest.js +1 -1
  60. package/.next/server/app/roots/[id]/page.js +3 -3
  61. package/.next/server/app/roots/[id]/page.js.nft.json +1 -1
  62. package/.next/server/app/roots/[id]/page_client-reference-manifest.js +1 -1
  63. package/.next/server/app/roots/[id]/workflows/[wfId]/page.js +2 -2
  64. package/.next/server/app/roots/[id]/workflows/[wfId]/page.js.nft.json +1 -1
  65. package/.next/server/app/roots/[id]/workflows/[wfId]/page_client-reference-manifest.js +1 -1
  66. package/.next/server/app/roots/[id]/workflows/page.js +2 -2
  67. package/.next/server/app/roots/[id]/workflows/page.js.nft.json +1 -1
  68. package/.next/server/app/roots/[id]/workflows/page_client-reference-manifest.js +1 -1
  69. package/.next/server/app/roots/new/page.js +5 -3
  70. package/.next/server/app/roots/new/page.js.nft.json +1 -1
  71. package/.next/server/app/roots/new/page_client-reference-manifest.js +1 -1
  72. package/.next/server/app/settings/page.js +5 -5
  73. package/.next/server/app/settings/page.js.nft.json +1 -1
  74. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  75. package/.next/server/app/share/[id]/file/page.js +2 -2
  76. package/.next/server/app/share/[id]/file/page.js.nft.json +1 -1
  77. package/.next/server/app/share/[id]/file/page_client-reference-manifest.js +1 -1
  78. package/.next/server/app/share/[id]/page.js +2 -2
  79. package/.next/server/app/share/[id]/page.js.nft.json +1 -1
  80. package/.next/server/app/share/[id]/page_client-reference-manifest.js +1 -1
  81. package/.next/server/app/utilities/[scope]/[id]/page.js +2 -2
  82. package/.next/server/app/utilities/[scope]/[id]/page.js.nft.json +1 -1
  83. package/.next/server/app/utilities/[scope]/[id]/page_client-reference-manifest.js +1 -1
  84. package/.next/server/app/utilities/page.js +2 -17
  85. package/.next/server/app/utilities/page.js.nft.json +1 -1
  86. package/.next/server/app/utilities/page_client-reference-manifest.js +1 -1
  87. package/.next/server/app-paths-manifest.json +8 -8
  88. package/.next/server/chunks/1.js +3 -0
  89. package/.next/server/chunks/1223.js +1 -1
  90. package/.next/server/chunks/133.js +1 -490
  91. package/.next/server/chunks/1888.js +1 -1
  92. package/.next/server/chunks/{9739.js → 1988.js} +13 -9
  93. package/.next/server/chunks/2192.js +1 -0
  94. package/.next/server/chunks/2433.js +1 -1
  95. package/.next/server/chunks/2503.js +1 -1
  96. package/.next/server/chunks/285.js +471 -0
  97. package/.next/server/chunks/2995.js +1 -0
  98. package/.next/server/chunks/3240.js +1 -1
  99. package/.next/server/chunks/3332.js +1 -1
  100. package/.next/server/chunks/{3953.js → 3512.js} +2 -2
  101. package/.next/server/chunks/3657.js +1 -1
  102. package/.next/server/chunks/4066.js +1 -1
  103. package/.next/server/chunks/4438.js +1 -0
  104. package/.next/server/chunks/4553.js +1 -1
  105. package/.next/server/chunks/4812.js +179 -0
  106. package/.next/server/chunks/4925.js +1 -1
  107. package/.next/server/chunks/5319.js +1 -1
  108. package/.next/server/chunks/569.js +1 -1
  109. package/.next/server/chunks/6730.js +1 -1
  110. package/.next/server/chunks/6734.js +1 -0
  111. package/.next/server/chunks/6909.js +142 -161
  112. package/.next/server/chunks/7215.js +1 -0
  113. package/.next/server/chunks/8262.js +1 -1
  114. package/.next/server/chunks/9098.js +1 -1
  115. package/.next/server/chunks/94.js +1 -1
  116. package/.next/server/chunks/9835.js +1 -1
  117. package/.next/server/chunks/9944.js +1 -0
  118. package/.next/server/middleware-build-manifest.js +1 -1
  119. package/.next/server/middleware-manifest.json +5 -5
  120. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  121. package/.next/server/pages/500.html +1 -1
  122. package/.next/server/pages-manifest.json +1 -2
  123. package/.next/server/server-reference-manifest.js +1 -1
  124. package/.next/server/server-reference-manifest.json +1 -1
  125. package/.next/static/chunks/1082-326e649fb24d4945.js +1 -0
  126. package/.next/static/chunks/3736-f4e42d6d38be50b0.js +1 -0
  127. package/.next/static/chunks/4108.ca0bdf3cbf3c56cc.js +1 -0
  128. package/.next/static/chunks/6445-99824866a51b582a.js +1 -0
  129. package/.next/static/chunks/7482-7ef26030a10ce14f.js +1 -0
  130. package/.next/static/chunks/8944-c4f2406ecd61094f.js +1 -0
  131. package/.next/static/chunks/9411-af5f758c57741929.js +3 -0
  132. package/.next/static/chunks/9415-eb6b5d4c2de3a7c0.js +1 -0
  133. package/.next/static/chunks/app/agents/[agentId]/page-5d6f4cb16b42d02b.js +1 -0
  134. package/.next/static/chunks/app/layout-85eb1fd21dab0895.js +1 -0
  135. package/.next/static/chunks/app/onboarding/page-2013bd8124b9162e.js +1 -0
  136. package/.next/static/chunks/app/page-558a224e13ffb52c.js +1 -0
  137. package/.next/static/chunks/app/roots/[id]/chat/[topicId]/page-b42f03fd58669d12.js +1 -0
  138. package/.next/static/chunks/app/roots/[id]/kb/[...slug]/page-7d17b4e6a5231f56.js +1 -0
  139. package/.next/static/chunks/app/roots/[id]/page-4aab5266f432e37e.js +1 -0
  140. package/.next/static/chunks/app/roots/[id]/workflows/[wfId]/page-1ee3320bf5744efc.js +1 -0
  141. package/.next/static/chunks/app/roots/new/page-df8d2c1f0c64c37a.js +1 -0
  142. package/.next/static/chunks/app/settings/page-fdba798d9e243ad3.js +1 -0
  143. package/.next/static/chunks/app/share/[id]/page-818a451d05e08d26.js +1 -0
  144. package/.next/static/chunks/app/utilities/[scope]/[id]/page-2cee09cc2ab9b5e8.js +1 -0
  145. package/.next/static/chunks/app/utilities/page-44a51522b347f13e.js +1 -0
  146. package/.next/static/chunks/{webpack-5fca180586957874.js → webpack-2b0eab4ccdf44f63.js} +1 -1
  147. package/.next/static/css/4b367c1d0fa99b78.css +1 -0
  148. package/.next/trace +47 -46
  149. package/dist/lib/reflex/agents/prompts.js +46 -46
  150. package/dist/lib/reflex/agents/prompts.js.map +1 -1
  151. package/dist/lib/reflex/prompts/defaults.js +102 -102
  152. package/next.config.ts +4 -1
  153. package/package.json +2 -1
  154. package/packages/utilities/learn-anything/README.md +29 -29
  155. package/packages/utilities/learn-anything/actions/_json.ts +11 -11
  156. package/packages/utilities/learn-anything/actions/_store.ts +2 -2
  157. package/packages/utilities/learn-anything/actions/buildModule.ts +60 -59
  158. package/packages/utilities/learn-anything/actions/explainSelection.ts +14 -13
  159. package/packages/utilities/learn-anything/actions/generateOutline.ts +15 -15
  160. package/packages/utilities/learn-anything/actions/generateQuiz.ts +8 -8
  161. package/packages/utilities/learn-anything/actions/generateTrainer.ts +15 -15
  162. package/packages/utilities/learn-anything/actions/refreshCourseCard.ts +4 -4
  163. package/packages/utilities/learn-anything/actions/tutorAsk.ts +15 -15
  164. package/packages/utilities/learn-anything/article-view.tsx +4 -4
  165. package/packages/utilities/learn-anything/manifest.json +5 -5
  166. package/packages/utilities/learn-anything/ui.tsx +57 -57
  167. package/.next/server/app/_not-found.html +0 -1
  168. package/.next/server/app/_not-found.meta +0 -8
  169. package/.next/server/app/_not-found.rsc +0 -18
  170. package/.next/server/app/index.html +0 -1
  171. package/.next/server/app/index.meta +0 -9
  172. package/.next/server/app/index.rsc +0 -19
  173. package/.next/server/chunks/1410.js +0 -1
  174. package/.next/server/chunks/1986.js +0 -1
  175. package/.next/server/chunks/2448.js +0 -3
  176. package/.next/server/chunks/5754.js +0 -3
  177. package/.next/server/chunks/7097.js +0 -1
  178. package/.next/server/chunks/7782.js +0 -1
  179. package/.next/server/chunks/7987.js +0 -1
  180. package/.next/server/chunks/810.js +0 -1
  181. package/.next/server/chunks/8843.js +0 -1
  182. package/.next/server/chunks/9328.js +0 -179
  183. package/.next/server/pages/404.html +0 -1
  184. package/.next/static/chunks/2488-c9590facb4b9f184.js +0 -1
  185. package/.next/static/chunks/2684-257d38989ef53935.js +0 -1
  186. package/.next/static/chunks/4108.fb9f99a9c899ef54.js +0 -1
  187. package/.next/static/chunks/6231-d83c1544bbea8424.js +0 -1
  188. package/.next/static/chunks/9045-731ff0865352dd95.js +0 -1
  189. package/.next/static/chunks/9496-75ccd3fadb294fba.js +0 -1
  190. package/.next/static/chunks/992-4e7b7f722c629e21.js +0 -1
  191. package/.next/static/chunks/app/agents/[agentId]/page-0b5c2838354d0eba.js +0 -1
  192. package/.next/static/chunks/app/layout-9a59ed07c18cb786.js +0 -1
  193. package/.next/static/chunks/app/onboarding/page-79f07a813ea2abfe.js +0 -1
  194. package/.next/static/chunks/app/page-27f4b98b02ac4f79.js +0 -1
  195. package/.next/static/chunks/app/roots/[id]/chat/[topicId]/page-8db2d0b75cd333c8.js +0 -1
  196. package/.next/static/chunks/app/roots/[id]/kb/[...slug]/page-873b131eec3a2f30.js +0 -1
  197. package/.next/static/chunks/app/roots/[id]/page-270d0d49eb668784.js +0 -1
  198. package/.next/static/chunks/app/roots/[id]/workflows/[wfId]/page-7c1f10dbe0bcb9ad.js +0 -1
  199. package/.next/static/chunks/app/roots/new/page-ac1a9f6379710ca2.js +0 -1
  200. package/.next/static/chunks/app/settings/page-81cb1393e817dfc3.js +0 -1
  201. package/.next/static/chunks/app/share/[id]/page-2d123f0a99e1606f.js +0 -1
  202. package/.next/static/chunks/app/utilities/[scope]/[id]/page-0bbb8d17af80c1da.js +0 -1
  203. package/.next/static/chunks/app/utilities/page-e6ce673b9357bf1f.js +0 -1
  204. package/.next/static/css/87e01f779d555d04.css +0 -1
  205. /package/.next/static/{og_wC7UPkGtJDiapaTgBr → fhVNqfmJl5Mdfhyhg6orp}/_buildManifest.js +0 -0
  206. /package/.next/static/{og_wC7UPkGtJDiapaTgBr → fhVNqfmJl5Mdfhyhg6orp}/_ssgManifest.js +0 -0
@@ -14,12 +14,12 @@ import {
14
14
  } from "@host/ui";
15
15
 
16
16
  /**
17
- * "Изучи что угодно" — universal AI tutor / course builder.
17
+ * "Learn Anything" — universal AI tutor / course builder.
18
18
  *
19
19
  * UI state machine:
20
- * list → user's existing courses + "Новый курс" button
20
+ * list → user's existing courses + "New course" button
21
21
  * wizard → topic → agent-driven Q&A → ready
22
- * outline → preview of generated modules → "Начать"
22
+ * outline → preview of generated modules → "Start"
23
23
  * module → article + video + links + diagrams + quiz + homework + trainer
24
24
  * trainer → fullscreen iframe with the generated HTML
25
25
  */
@@ -112,9 +112,9 @@ export default function LearnAnythingUtility() {
112
112
  <div className="min-h-screen bg-slate-50">
113
113
  <div className="mx-auto max-w-3xl px-4 py-6 space-y-4">
114
114
  <header className="flex items-center gap-3">
115
- <h1 className="text-xl font-semibold">🎓 Изучи что угодно</h1>
115
+ <h1 className="text-xl font-semibold">🎓 Learn Anything</h1>
116
116
  <span className="text-xs text-slate-500">
117
- персональный AI-наставник
117
+ personal AI tutor
118
118
  </span>
119
119
  <div className="ml-auto" />
120
120
  {view.name !== "list" && (
@@ -123,7 +123,7 @@ export default function LearnAnythingUtility() {
123
123
  type="button"
124
124
  onClick={() => setView({ name: "list" })}
125
125
  >
126
- К курсам
126
+ Back to courses
127
127
  </Button>
128
128
  )}
129
129
  </header>
@@ -208,7 +208,7 @@ export default function LearnAnythingUtility() {
208
208
  )}
209
209
 
210
210
  {error && (
211
- <p className="text-xs text-red-600">Ошибка: {error}</p>
211
+ <p className="text-xs text-red-600">Error: {error}</p>
212
212
  )}
213
213
  </div>
214
214
  </div>
@@ -232,13 +232,13 @@ function CourseList({
232
232
  <div className="space-y-4">
233
233
  <Card>
234
234
  <CardHeader>
235
- <CardTitle>🎯 Что хочешь изучить?</CardTitle>
235
+ <CardTitle>🎯 What do you want to learn?</CardTitle>
236
236
  </CardHeader>
237
237
  <CardContent className="space-y-2">
238
238
  <Input
239
239
  value={topic}
240
240
  onChange={(e) => setTopic(e.target.value)}
241
- placeholder="напр. рисование акварелью, python для бэкенда, испанский с нуля"
241
+ placeholder="e.g. watercolor painting, python for backend, spanish from scratch"
242
242
  onKeyDown={(e) => {
243
243
  if (e.key === "Enter" && topic.trim()) {
244
244
  e.preventDefault();
@@ -250,20 +250,20 @@ function CourseList({
250
250
  onClick={() => topic.trim() && onNew(topic.trim())}
251
251
  disabled={!topic.trim()}
252
252
  >
253
- Собрать курс
253
+ Build course
254
254
  </Button>
255
255
  </CardContent>
256
256
  </Card>
257
257
 
258
258
  <Card>
259
259
  <CardHeader>
260
- <CardTitle>📚 Мои курсы ({courses.length})</CardTitle>
260
+ <CardTitle>📚 My courses ({courses.length})</CardTitle>
261
261
  </CardHeader>
262
262
  <CardContent>
263
263
  {courses.length === 0 ? (
264
264
  <p className="text-sm text-slate-500">
265
- Пока ни одного. Введи тему выше — Reflex задаст 3-4 вопроса и
266
- соберёт программу.
265
+ None yet. Enter a topic above — Reflex will ask 3-4 questions
266
+ and assemble a program.
267
267
  </p>
268
268
  ) : (
269
269
  <ul className="space-y-1.5">
@@ -283,7 +283,7 @@ function CourseList({
283
283
  <div className="flex items-center gap-2">
284
284
  <span className="font-medium truncate">{c.topic}</span>
285
285
  <span className="ml-auto text-xs text-slate-500">
286
- {done}/{total} модулей
286
+ {done}/{total} modules
287
287
  </span>
288
288
  </div>
289
289
  <div className="mt-1 h-1 rounded-full bg-slate-200 overflow-hidden">
@@ -396,7 +396,7 @@ function WizardView({
396
396
  <CardContent className="py-8 text-center space-y-2">
397
397
  <div className="text-2xl">📐</div>
398
398
  <p className="text-sm text-slate-600">
399
- Собираю программу курса… это занимает 20-40 секунд.
399
+ Building the course program… this takes 20-40 seconds.
400
400
  </p>
401
401
  </CardContent>
402
402
  </Card>
@@ -408,7 +408,7 @@ function WizardView({
408
408
  <CardHeader>
409
409
  <CardTitle>
410
410
  <span className="text-slate-500 text-xs uppercase tracking-wider">
411
- Тема:
411
+ Topic:
412
412
  </span>{" "}
413
413
  {topic}
414
414
  </CardTitle>
@@ -456,7 +456,7 @@ function WizardView({
456
456
  value={draft}
457
457
  onChange={(e) => setDraft(e.target.value)}
458
458
  rows={3}
459
- placeholder="свой ответ…"
459
+ placeholder="your answer…"
460
460
  />
461
461
  <div className="flex items-center gap-2">
462
462
  <Button
@@ -472,7 +472,7 @@ function WizardView({
472
472
  void ask(next);
473
473
  }}
474
474
  >
475
- Ответить
475
+ Answer
476
476
  </Button>
477
477
  <Button
478
478
  type="button"
@@ -480,15 +480,15 @@ function WizardView({
480
480
  disabled={busy}
481
481
  onClick={() => void buildOutline(history)}
482
482
  >
483
- Хватит, собирай курс
483
+ Enough, build the course
484
484
  </Button>
485
485
  <Button type="button" variant="outline" onClick={onCancel}>
486
- Отмена
486
+ Cancel
487
487
  </Button>
488
488
  </div>
489
489
  </>
490
490
  ) : (
491
- <p className="text-sm text-slate-500">Думаю над вопросом…</p>
491
+ <p className="text-sm text-slate-500">Thinking about the next question…</p>
492
492
  )}
493
493
  </CardContent>
494
494
  </Card>
@@ -508,7 +508,7 @@ function OutlineView({
508
508
  return (
509
509
  <Card>
510
510
  <CardHeader>
511
- <CardTitle>🧭 Программа курса «{course.topic}»</CardTitle>
511
+ <CardTitle>🧭 Program for course "{course.topic}"</CardTitle>
512
512
  </CardHeader>
513
513
  <CardContent className="space-y-3">
514
514
  <ol className="space-y-2 list-decimal pl-5">
@@ -519,12 +519,12 @@ function OutlineView({
519
519
  <span className="text-slate-600"> — {m.objective}</span>
520
520
  )}
521
521
  <span className="text-xs text-slate-400 ml-1">
522
- (~{m.estMinutes} мин)
522
+ (~{m.estMinutes} min)
523
523
  </span>
524
524
  </li>
525
525
  ))}
526
526
  </ol>
527
- <Button onClick={onStart}>Начать обучение →</Button>
527
+ <Button onClick={onStart}>Start learning →</Button>
528
528
  </CardContent>
529
529
  </Card>
530
530
  );
@@ -550,7 +550,7 @@ function CourseView({
550
550
  </CardHeader>
551
551
  <CardContent className="space-y-3">
552
552
  <div className="text-xs text-slate-500">
553
- Прогресс: {done} из {course.modules.length}
553
+ Progress: {done} of {course.modules.length}
554
554
  </div>
555
555
  <div className="h-1.5 rounded-full bg-slate-200 overflow-hidden">
556
556
  <div
@@ -583,11 +583,11 @@ function CourseView({
583
583
  <span className="flex-1 truncate">{m.title}</span>
584
584
  {p?.quizScore !== undefined && (
585
585
  <Badge variant="outline" className="text-[10px]">
586
- тест {p.quizScore}%
586
+ quiz {p.quizScore}%
587
587
  </Badge>
588
588
  )}
589
589
  <span className="text-[10px] text-slate-400">
590
- ~{m.estMinutes} мин
590
+ ~{m.estMinutes} min
591
591
  </span>
592
592
  </button>
593
593
  </li>
@@ -889,7 +889,7 @@ function ModuleView({
889
889
  return (
890
890
  <Card>
891
891
  <CardContent className="py-10 text-center text-sm text-slate-500">
892
- 📖 Подбираю материал, статьи, видео, схемы… 30-60 секунд.
892
+ 📖 Gathering materials, articles, videos, diagrams… 30-60 seconds.
893
893
  </CardContent>
894
894
  </Card>
895
895
  );
@@ -903,7 +903,7 @@ function ModuleView({
903
903
  </CardHeader>
904
904
  <CardContent className="space-y-2">
905
905
  <p className="text-sm text-slate-600">{module.objective}</p>
906
- <Button onClick={() => void build()}>Подготовить модуль →</Button>
906
+ <Button onClick={() => void build()}>Prepare module →</Button>
907
907
  </CardContent>
908
908
  </Card>
909
909
  );
@@ -939,7 +939,7 @@ function ModuleView({
939
939
  {content.images.length > 0 && (
940
940
  <Card>
941
941
  <CardHeader>
942
- <CardTitle>🖼 Иллюстрации</CardTitle>
942
+ <CardTitle>🖼 Illustrations</CardTitle>
943
943
  </CardHeader>
944
944
  <CardContent className="grid grid-cols-2 gap-3">
945
945
  {content.images.map((im, i) => (
@@ -948,7 +948,7 @@ function ModuleView({
948
948
  src={im.url}
949
949
  alt={im.alt}
950
950
  loading="lazy"
951
- title={im.alt || "Открыть на весь экран"}
951
+ title={im.alt || "Open fullscreen"}
952
952
  onClick={() =>
953
953
  setGalleryZoom({ src: im.url, alt: im.alt })
954
954
  }
@@ -973,7 +973,7 @@ function ModuleView({
973
973
  {content.diagrams.length > 0 && (
974
974
  <Card>
975
975
  <CardHeader>
976
- <CardTitle>📐 Схемы</CardTitle>
976
+ <CardTitle>📐 Diagrams</CardTitle>
977
977
  </CardHeader>
978
978
  <CardContent className="space-y-4">
979
979
  {content.diagrams.map((d, i) => (
@@ -995,7 +995,7 @@ function ModuleView({
995
995
  {content.videos.length > 0 && (
996
996
  <Card>
997
997
  <CardHeader>
998
- <CardTitle>🎬 Видео</CardTitle>
998
+ <CardTitle>🎬 Videos</CardTitle>
999
999
  </CardHeader>
1000
1000
  <CardContent className="space-y-2">
1001
1001
  {content.videos.map((v, i) => (
@@ -1022,7 +1022,7 @@ function ModuleView({
1022
1022
  {content.links.length > 0 && (
1023
1023
  <Card>
1024
1024
  <CardHeader>
1025
- <CardTitle>📑 Источники</CardTitle>
1025
+ <CardTitle>📑 Sources</CardTitle>
1026
1026
  </CardHeader>
1027
1027
  <CardContent className="space-y-1">
1028
1028
  {content.links.map((l, i) => (
@@ -1046,7 +1046,7 @@ function ModuleView({
1046
1046
  {content.homework.length > 0 && (
1047
1047
  <Card>
1048
1048
  <CardHeader>
1049
- <CardTitle>📝 Домашнее задание</CardTitle>
1049
+ <CardTitle>📝 Homework</CardTitle>
1050
1050
  </CardHeader>
1051
1051
  <CardContent>
1052
1052
  <ul className="space-y-1 text-sm list-decimal pl-5">
@@ -1060,12 +1060,12 @@ function ModuleView({
1060
1060
 
1061
1061
  <Card>
1062
1062
  <CardHeader>
1063
- <CardTitle>✅ Тест-проверка</CardTitle>
1063
+ <CardTitle>✅ Quiz check</CardTitle>
1064
1064
  </CardHeader>
1065
1065
  <CardContent className="space-y-3">
1066
1066
  {!quiz ? (
1067
1067
  <Button onClick={() => void startQuiz()} disabled={quizBusy}>
1068
- {quizBusy ? "Готовлю…" : "Сгенерировать тест"}
1068
+ {quizBusy ? "Preparing…" : "Generate quiz"}
1069
1069
  </Button>
1070
1070
  ) : (
1071
1071
  <>
@@ -1124,11 +1124,11 @@ function ModuleView({
1124
1124
  onClick={() => void submitQuiz()}
1125
1125
  disabled={Object.keys(quizAnswers).length < quiz.length}
1126
1126
  >
1127
- Проверить
1127
+ Check
1128
1128
  </Button>
1129
1129
  ) : (
1130
1130
  <Badge variant="default" className="text-xs">
1131
- Результат:{" "}
1131
+ Score:{" "}
1132
1132
  {Math.round(
1133
1133
  (quiz.filter((q, i) => quizAnswers[i] === q.correctIndex)
1134
1134
  .length /
@@ -1145,16 +1145,16 @@ function ModuleView({
1145
1145
 
1146
1146
  <Card>
1147
1147
  <CardHeader>
1148
- <CardTitle>🕹 Тренажёр</CardTitle>
1148
+ <CardTitle>🕹 Trainer</CardTitle>
1149
1149
  </CardHeader>
1150
1150
  <CardContent className="space-y-2">
1151
1151
  <Input
1152
1152
  value={trainerIdea}
1153
1153
  onChange={(e) => setTrainerIdea(e.target.value)}
1154
- placeholder="идея тренажёра (опционально) — Reflex придумает сам если пусто"
1154
+ placeholder="trainer idea (optional) — Reflex will invent one if empty"
1155
1155
  />
1156
1156
  <Button onClick={() => void makeTrainer()} disabled={trainerBusy}>
1157
- {trainerBusy ? "Делаю…" : "Сгенерировать интерактивный тренажёр"}
1157
+ {trainerBusy ? "Building…" : "Generate interactive trainer"}
1158
1158
  </Button>
1159
1159
  </CardContent>
1160
1160
  </Card>
@@ -1165,13 +1165,13 @@ function ModuleView({
1165
1165
  onClick={() => void onProgress({ completed: true })}
1166
1166
  variant="outline"
1167
1167
  >
1168
- Отметить пройденным
1168
+ Mark as completed
1169
1169
  </Button>
1170
1170
  <Button
1171
1171
  onClick={() => void onProgress({ completed: false })}
1172
1172
  variant="outline"
1173
1173
  >
1174
- Снять отметку
1174
+ Unmark
1175
1175
  </Button>
1176
1176
  </CardContent>
1177
1177
  </Card>
@@ -1195,14 +1195,14 @@ function TrainerView({
1195
1195
  <Card>
1196
1196
  <CardHeader>
1197
1197
  <CardTitle>
1198
- 🕹 Тренажёр · {title}
1198
+ 🕹 Trainer · {title}
1199
1199
  <Button
1200
1200
  type="button"
1201
1201
  variant="outline"
1202
1202
  className="ml-auto"
1203
1203
  onClick={onClose}
1204
1204
  >
1205
- Закрыть
1205
+ Close
1206
1206
  </Button>
1207
1207
  </CardTitle>
1208
1208
  </CardHeader>
@@ -1293,7 +1293,7 @@ function baseSlug(rel: string): string {
1293
1293
  //
1294
1294
  // 2. A floating popover above the selection (or below if the
1295
1295
  // selection sits near the top of the viewport). Initial state
1296
- // offers `✨ Объяснить` (default action) and `❓ Свой вопрос`
1296
+ // offers `✨ Explain` (default action) and `❓ Ask a question`
1297
1297
  // (reveals an input). After the agent replies the popover stays
1298
1298
  // pinned in place and shows the explanation inline — readable
1299
1299
  // like a Kindle/Apple Books margin annotation.
@@ -1365,7 +1365,7 @@ function AnnotationOverlay({
1365
1365
  {/* Margin note popover. */}
1366
1366
  <div
1367
1367
  role="dialog"
1368
- aria-label="Объяснение"
1368
+ aria-label="Explanation"
1369
1369
  style={{
1370
1370
  position: "fixed",
1371
1371
  top,
@@ -1398,7 +1398,7 @@ function AnnotationOverlay({
1398
1398
  }}
1399
1399
  >
1400
1400
  <span aria-hidden>✨</span>
1401
- <span style={{ fontWeight: 600 }}>Заметка</span>
1401
+ <span style={{ fontWeight: 600 }}>Note</span>
1402
1402
  <span
1403
1403
  style={{
1404
1404
  marginLeft: 6,
@@ -1417,7 +1417,7 @@ function AnnotationOverlay({
1417
1417
  <button
1418
1418
  type="button"
1419
1419
  onClick={onClose}
1420
- aria-label="Закрыть"
1420
+ aria-label="Close"
1421
1421
  style={{
1422
1422
  border: "none",
1423
1423
  background: "transparent",
@@ -1460,7 +1460,7 @@ function AnnotationOverlay({
1460
1460
  cursor: "pointer",
1461
1461
  }}
1462
1462
  >
1463
- Объяснить
1463
+ Explain
1464
1464
  </button>
1465
1465
  <button
1466
1466
  type="button"
@@ -1476,9 +1476,9 @@ function AnnotationOverlay({
1476
1476
  fontSize: 12,
1477
1477
  cursor: "pointer",
1478
1478
  }}
1479
- title="Задать свой вопрос про выделенный фрагмент"
1479
+ title="Ask your own question about the selected fragment"
1480
1480
  >
1481
- Свой вопрос
1481
+ Ask a question
1482
1482
  </button>
1483
1483
  </div>
1484
1484
  {annot.showQuestion && (
@@ -1492,7 +1492,7 @@ function AnnotationOverlay({
1492
1492
  <textarea
1493
1493
  value={annot.question}
1494
1494
  onChange={(e) => onChange({ question: e.target.value })}
1495
- placeholder="Например: «при чём тут этот закон?» или «дай пример»"
1495
+ placeholder="For example: 'what does this law have to do with it?' or 'give me an example'"
1496
1496
  autoFocus
1497
1497
  rows={3}
1498
1498
  style={{
@@ -1520,7 +1520,7 @@ function AnnotationOverlay({
1520
1520
  alignSelf: "flex-end",
1521
1521
  }}
1522
1522
  >
1523
- Спросить
1523
+ Ask
1524
1524
  </button>
1525
1525
  </form>
1526
1526
  )}
@@ -1539,7 +1539,7 @@ function AnnotationOverlay({
1539
1539
  }}
1540
1540
  >
1541
1541
  <span aria-hidden>✨</span>
1542
- <span>{annot.question ? "Думаю над вопросом…" : "Объясняю…"}</span>
1542
+ <span>{annot.question ? "Thinking about the question…" : "Explaining…"}</span>
1543
1543
  </div>
1544
1544
  )}
1545
1545
 
@@ -1574,7 +1574,7 @@ function AnnotationOverlay({
1574
1574
  cursor: "pointer",
1575
1575
  }}
1576
1576
  >
1577
- Ещё вопрос
1577
+ Another question
1578
1578
  </button>
1579
1579
  </div>
1580
1580
  </div>
@@ -1 +0,0 @@
1
- <!DOCTYPE html><!--og_wC7UPkGtJDiapaTgBr--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/87e01f779d555d04.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-5fca180586957874.js"/><script src="/_next/static/chunks/6fe292aa-7126ff9d6732e864.js" async=""></script><script src="/_next/static/chunks/146-ccee3b26755b68c8.js" async=""></script><script src="/_next/static/chunks/main-app-ebe67847147d19aa.js" async=""></script><script src="/_next/static/chunks/4400-cdb1f7913ae34e09.js" async=""></script><script src="/_next/static/chunks/1217-407174d9b164a499.js" async=""></script><script src="/_next/static/chunks/5097-f07f6aeee3f60a33.js" async=""></script><script src="/_next/static/chunks/9045-731ff0865352dd95.js" async=""></script><script src="/_next/static/chunks/app/layout-9a59ed07c18cb786.js" async=""></script><meta name="robots" content="noindex"/><title>Reflex</title><meta name="description" content="Local-first knowledge base built by an agent."/><title>404: This page could not be found.</title><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div class="h-screen flex"><aside class="w-72 shrink-0 border-r bg-muted/30 flex flex-col"><div class="px-4 py-4 flex items-center gap-2 border-b"><span class="reflex-gradient inline-flex h-7 w-7 items-center justify-center rounded-lg text-white shadow-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sparkles h-4 w-4"><path d="M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z"></path><path d="M20 3v4"></path><path d="M22 5h-4"></path><path d="M4 17v2"></path><path d="M5 18H3"></path></svg></span><div class="leading-tight"><a class="text-sm font-semibold tracking-tight hover:underline" href="/">Reflex</a><div class="text-[10px] uppercase tracking-wider text-muted-foreground">knowledge base</div></div></div><div dir="ltr" data-slot="scroll-area" class="relative flex-1" style="position:relative;--radix-scroll-area-corner-width:0px;--radix-scroll-area-corner-height:0px"><style>[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}</style><div data-radix-scroll-area-viewport="" data-slot="scroll-area-viewport" class="size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1" style="overflow-x:hidden;overflow-y:hidden"><div style="min-width:100%;display:table"><nav class="px-2 pt-3 pb-6"><div class="px-2 mb-1 text-[10px] uppercase tracking-wider text-muted-foreground">Пространства</div><div class="px-2 py-3 text-xs text-muted-foreground">Пока пусто.</div><div class="mt-2 px-2"><a data-slot="button" data-variant="ghost" data-size="sm" class="inline-flex shrink-0 items-center font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 gap-1.5 rounded-md px-3 has-[&gt;svg]:px-2.5 h-7 w-full justify-start text-xs" href="/roots/new"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-folder-plus mr-1 h-3.5 w-3.5"><path d="M12 10v6"></path><path d="M9 13h6"></path><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"></path></svg> Добавить пространство</a></div></nav></div></div></div><div data-orientation="horizontal" role="none" data-slot="separator" class="shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px"></div><div class="px-2 py-2 space-y-0.5"><a data-slot="button" data-variant="ghost" data-size="sm" class="inline-flex shrink-0 items-center text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 h-8 gap-1.5 rounded-md px-3 has-[&gt;svg]:px-2.5 w-full justify-start" href="/utilities"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-boxes mr-2 h-4 w-4"><path d="M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z"></path><path d="m7 16.5-4.74-2.85"></path><path d="m7 16.5 5-3"></path><path d="M7 16.5v5.17"></path><path d="M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z"></path><path d="m17 16.5-5-3"></path><path d="m17 16.5 4.74-2.85"></path><path d="M17 16.5v5.17"></path><path d="M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z"></path><path d="M12 8 7.26 5.15"></path><path d="m12 8 4.74-2.85"></path><path d="M12 13.5V8"></path></svg> Мини-приложения</a><a data-slot="button" data-variant="ghost" data-size="sm" class="inline-flex shrink-0 items-center text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 h-8 gap-1.5 rounded-md px-3 has-[&gt;svg]:px-2.5 w-full justify-start" href="/audit"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-search mr-2 h-4 w-4"><path d="M14 2v4a2 2 0 0 0 2 2h4"></path><path d="M4.268 21a2 2 0 0 0 1.727 1H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v3"></path><path d="m9 18-1.5-1.5"></path><circle cx="5" cy="14" r="3"></circle></svg> Аудит</a><a data-slot="button" data-variant="ghost" data-size="sm" class="inline-flex shrink-0 items-center text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 h-8 gap-1.5 rounded-md px-3 has-[&gt;svg]:px-2.5 w-full justify-start" href="/settings"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings mr-2 h-4 w-4"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg> Settings</a></div></aside><main class="flex-1 min-w-0 flex flex-col"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--></main></div><section aria-label="Notifications alt+T" tabindex="-1" aria-live="polite" aria-relevant="additions text" aria-atomic="false"></section><script src="/_next/static/chunks/webpack-5fca180586957874.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n3:I[26957,[],\"\"]\n4:I[97369,[],\"\"]\n5:I[21968,[],\"OutletBoundary\"]\n7:I[33705,[],\"AsyncMetadataOutlet\"]\n9:I[21968,[],\"ViewportBoundary\"]\nb:I[21968,[],\"MetadataBoundary\"]\nc:\"$Sreact.suspense\"\ne:I[6287,[],\"\"]\n:HL[\"/_next/static/css/87e01f779d555d04.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"og_wC7UPkGtJDiapaTgBr\",\"p\":\"\",\"c\":[\"\",\"_not-found\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/87e01f779d555d04.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],\"$L2\"]}],{\"children\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$L6\",[\"$\",\"$L7\",null,{\"promise\":\"$@8\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$L9\",null,{\"children\":\"$La\"}],null],[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$c\",null,{\"fallback\":null,\"children\":\"$Ld\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n6:null\n"])</script><script>self.__next_f.push([1,"8:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Reflex\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Local-first knowledge base built by an agent.\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"d:\"$8:metadata\"\n"])</script><script>self.__next_f.push([1,"f:I[25990,[\"4400\",\"static/chunks/4400-cdb1f7913ae34e09.js\",\"1217\",\"static/chunks/1217-407174d9b164a499.js\",\"5097\",\"static/chunks/5097-f07f6aeee3f60a33.js\",\"9045\",\"static/chunks/9045-731ff0865352dd95.js\",\"7177\",\"static/chunks/app/layout-9a59ed07c18cb786.js\"],\"AppSidebar\"]\n10:I[43450,[\"4400\",\"static/chunks/4400-cdb1f7913ae34e09.js\",\"1217\",\"static/chunks/1217-407174d9b164a499.js\",\"5097\",\"static/chunks/5097-f07f6aeee3f60a33.js\",\"9045\",\"static/chunks/9045-731ff0865352dd95.js\",\"7177\",\"static/chunks/app/layout-9a59ed07c18cb786.js\"],\"Toaster\"]\n2:[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"body\",null,{\"children\":[[\"$\",\"div\",null,{\"className\":\"h-screen flex\",\"children\":[[\"$\",\"$Lf\",null,{\"initialRoots\":[]}],[\"$\",\"main\",null,{\"className\":\"flex-1 min-w-0 flex flex-col\",\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}],[\"$\",\"$L10\",null,{\"richColors\":true,\"closeButton\":true}]]}]}]\n"])</script></body></html>
@@ -1,8 +0,0 @@
1
- {
2
- "status": 404,
3
- "headers": {
4
- "x-nextjs-stale-time": "300",
5
- "x-nextjs-prerender": "1",
6
- "x-next-cache-tags": "_N_T_/layout,_N_T_/_not-found/layout,_N_T_/_not-found/page,_N_T_/_not-found"
7
- }
8
- }
@@ -1,18 +0,0 @@
1
- 1:"$Sreact.fragment"
2
- 3:I[26957,[],""]
3
- 4:I[97369,[],""]
4
- 5:I[21968,[],"OutletBoundary"]
5
- 7:I[33705,[],"AsyncMetadataOutlet"]
6
- 9:I[21968,[],"ViewportBoundary"]
7
- b:I[21968,[],"MetadataBoundary"]
8
- c:"$Sreact.suspense"
9
- e:I[6287,[],""]
10
- :HL["/_next/static/css/87e01f779d555d04.css","style"]
11
- 0:{"P":null,"b":"og_wC7UPkGtJDiapaTgBr","p":"","c":["","_not-found"],"i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/87e01f779d555d04.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],"$L2"]}],{"children":["/_not-found",["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L5",null,{"children":["$L6",["$","$L7",null,{"promise":"$@8"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],[["$","$L9",null,{"children":"$La"}],null],["$","$Lb",null,{"children":["$","div",null,{"hidden":true,"children":["$","$c",null,{"fallback":null,"children":"$Ld"}]}]}]]}],false]],"m":"$undefined","G":["$e",[]],"s":false,"S":true}
12
- a:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
13
- 6:null
14
- 8:{"metadata":[["$","title","0",{"children":"Reflex"}],["$","meta","1",{"name":"description","content":"Local-first knowledge base built by an agent."}]],"error":null,"digest":"$undefined"}
15
- d:"$8:metadata"
16
- f:I[25990,["4400","static/chunks/4400-cdb1f7913ae34e09.js","1217","static/chunks/1217-407174d9b164a499.js","5097","static/chunks/5097-f07f6aeee3f60a33.js","9045","static/chunks/9045-731ff0865352dd95.js","7177","static/chunks/app/layout-9a59ed07c18cb786.js"],"AppSidebar"]
17
- 10:I[43450,["4400","static/chunks/4400-cdb1f7913ae34e09.js","1217","static/chunks/1217-407174d9b164a499.js","5097","static/chunks/5097-f07f6aeee3f60a33.js","9045","static/chunks/9045-731ff0865352dd95.js","7177","static/chunks/app/layout-9a59ed07c18cb786.js"],"Toaster"]
18
- 2:["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"children":[["$","div",null,{"className":"h-screen flex","children":[["$","$Lf",null,{"initialRoots":[]}],["$","main",null,{"className":"flex-1 min-w-0 flex flex-col","children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],["$","$L10",null,{"richColors":true,"closeButton":true}]]}]}]
@@ -1 +0,0 @@
1
- <!DOCTYPE html><!--og_wC7UPkGtJDiapaTgBr--><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-5fca180586957874.js"/><script src="/_next/static/chunks/6fe292aa-7126ff9d6732e864.js" async=""></script><script src="/_next/static/chunks/146-ccee3b26755b68c8.js" async=""></script><script src="/_next/static/chunks/main-app-ebe67847147d19aa.js" async=""></script><title>Reflex</title><meta name="description" content="Local-first knowledge base built by an agent."/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><script src="/_next/static/chunks/webpack-5fca180586957874.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n4:I[21968,[],\"OutletBoundary\"]\n6:I[33705,[],\"AsyncMetadataOutlet\"]\n8:I[21968,[],\"ViewportBoundary\"]\na:I[21968,[],\"MetadataBoundary\"]\nb:\"$Sreact.suspense\"\nd:I[6287,[],\"\"]\n:HL[\"/_next/static/css/87e01f779d555d04.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"og_wC7UPkGtJDiapaTgBr\",\"p\":\"\",\"c\":[\"\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/87e01f779d555d04.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],\"$L2\"]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[\"$L3\",null,[\"$\",\"$L4\",null,{\"children\":[\"$L5\",[\"$\",\"$L6\",null,{\"promise\":\"$@7\"}]]}]]}],{},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],null],[\"$\",\"$La\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$b\",null,{\"fallback\":null,\"children\":\"$Lc\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n5:null\n"])</script><script>self.__next_f.push([1,"7:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Reflex\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Local-first knowledge base built by an agent.\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"c:\"$7:metadata\"\n"])</script><script>self.__next_f.push([1,"e:I[25990,[\"4400\",\"static/chunks/4400-cdb1f7913ae34e09.js\",\"1217\",\"static/chunks/1217-407174d9b164a499.js\",\"5097\",\"static/chunks/5097-f07f6aeee3f60a33.js\",\"9045\",\"static/chunks/9045-731ff0865352dd95.js\",\"7177\",\"static/chunks/app/layout-9a59ed07c18cb786.js\"],\"AppSidebar\"]\nf:I[26957,[],\"\"]\n10:I[97369,[],\"\"]\n11:I[43450,[\"4400\",\"static/chunks/4400-cdb1f7913ae34e09.js\",\"1217\",\"static/chunks/1217-407174d9b164a499.js\",\"5097\",\"static/chunks/5097-f07f6aeee3f60a33.js\",\"9045\",\"static/chunks/9045-731ff0865352dd95.js\",\"7177\",\"static/chunks/app/layout-9a59ed07c18cb786.js\"],\"Toaster\"]\n"])</script><script>self.__next_f.push([1,"2:[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"body\",null,{\"children\":[[\"$\",\"div\",null,{\"className\":\"h-screen flex\",\"children\":[[\"$\",\"$Le\",null,{\"initialRoots\":[]}],[\"$\",\"main\",null,{\"className\":\"flex-1 min-w-0 flex flex-col\",\"children\":[\"$\",\"$Lf\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L10\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}],[\"$\",\"$L11\",null,{\"richColors\":true,\"closeButton\":true}]]}]}]\n"])</script><script>self.__next_f.push([1,"3:E{\"digest\":\"NEXT_REDIRECT;replace;/onboarding;307;\"}\n"])</script></body></html>
@@ -1,9 +0,0 @@
1
- {
2
- "status": 307,
3
- "headers": {
4
- "location": "/onboarding",
5
- "x-nextjs-stale-time": "300",
6
- "x-nextjs-prerender": "1",
7
- "x-next-cache-tags": "_N_T_/layout,_N_T_/page,_N_T_/"
8
- }
9
- }
@@ -1,19 +0,0 @@
1
- 1:"$Sreact.fragment"
2
- 4:I[21968,[],"OutletBoundary"]
3
- 6:I[33705,[],"AsyncMetadataOutlet"]
4
- 8:I[21968,[],"ViewportBoundary"]
5
- a:I[21968,[],"MetadataBoundary"]
6
- b:"$Sreact.suspense"
7
- d:I[6287,[],""]
8
- :HL["/_next/static/css/87e01f779d555d04.css","style"]
9
- 0:{"P":null,"b":"og_wC7UPkGtJDiapaTgBr","p":"","c":["",""],"i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/87e01f779d555d04.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],"$L2"]}],{"children":["__PAGE__",["$","$1","c",{"children":["$L3",null,["$","$L4",null,{"children":["$L5",["$","$L6",null,{"promise":"$@7"}]]}]]}],{},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$L8",null,{"children":"$L9"}],null],["$","$La",null,{"children":["$","div",null,{"hidden":true,"children":["$","$b",null,{"fallback":null,"children":"$Lc"}]}]}]]}],false]],"m":"$undefined","G":["$d",[]],"s":false,"S":true}
10
- 9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
11
- 5:null
12
- 7:{"metadata":[["$","title","0",{"children":"Reflex"}],["$","meta","1",{"name":"description","content":"Local-first knowledge base built by an agent."}]],"error":null,"digest":"$undefined"}
13
- c:"$7:metadata"
14
- e:I[25990,["4400","static/chunks/4400-cdb1f7913ae34e09.js","1217","static/chunks/1217-407174d9b164a499.js","5097","static/chunks/5097-f07f6aeee3f60a33.js","9045","static/chunks/9045-731ff0865352dd95.js","7177","static/chunks/app/layout-9a59ed07c18cb786.js"],"AppSidebar"]
15
- f:I[26957,[],""]
16
- 10:I[97369,[],""]
17
- 11:I[43450,["4400","static/chunks/4400-cdb1f7913ae34e09.js","1217","static/chunks/1217-407174d9b164a499.js","5097","static/chunks/5097-f07f6aeee3f60a33.js","9045","static/chunks/9045-731ff0865352dd95.js","7177","static/chunks/app/layout-9a59ed07c18cb786.js"],"Toaster"]
18
- 2:["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"children":[["$","div",null,{"className":"h-screen flex","children":[["$","$Le",null,{"initialRoots":[]}],["$","main",null,{"className":"flex-1 min-w-0 flex flex-col","children":["$","$Lf",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L10",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],["$","$L11",null,{"richColors":true,"closeButton":true}]]}]}]
19
- 3:E{"digest":"NEXT_REDIRECT;replace;/onboarding;307;"}
@@ -1 +0,0 @@
1
- exports.id=1410,exports.ids=[1410],exports.modules={17596:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(19963).A)("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]])},24576:(a,b,c)=>{"use strict";c.d(b,{Zn:()=>p,_S:()=>q,mM:()=>l,qV:()=>o});var d=c(73024),e=c(76760),f=c.n(e),g=c(77598),h=c.n(g);let i=(0,c(29163)._)(),j=f().join(i,"registry.json"),k={version:1,entries:[]};function l(a){return h().createHash("sha1").update(f().resolve(a)).digest("hex").slice(0,16)}async function m(){try{let a=await d.promises.readFile(j,"utf8"),b=JSON.parse(a);if("object"==typeof b&&null!==b&&"entries"in b&&Array.isArray(b.entries))return b;return k}catch(a){if("object"==typeof a&&null!==a&&"code"in a&&"ENOENT"===a.code)return k;throw a}}async function n(a){await d.promises.mkdir(i,{recursive:!0}),await d.promises.writeFile(j,JSON.stringify(a,null,2)+"\n","utf8")}async function o(){return[...(await m()).entries].sort((a,b)=>Date.parse(b.addedAt)-Date.parse(a.addedAt))}async function p(a){return(await m()).entries.find(b=>b.id===a)??null}async function q(a){let b=f().resolve(a),c=l(b),d=await m(),e=d.entries.find(a=>a.id===c);if(e)return e;let g={id:c,path:b,addedAt:new Date().toISOString()};return await n({...d,entries:[...d.entries,g]}),g}},26290:(a,b,c)=>{"use strict";c.d(b,{cn:()=>f});var d=c(83243),e=c(86103);function f(...a){return(0,e.QP)((0,d.$)(a))}},29163:(a,b,c)=>{"use strict";c.d(b,{_:()=>h});var d=c(48161),e=c.n(d),f=c(76760),g=c.n(f);function h(){let a=process.env.REFLEX_HOME;return a&&a.length>0?a:g().join(e().homedir(),".reflex")}},34818:(a,b,c)=>{Promise.resolve().then(c.bind(c,60524)),Promise.resolve().then(c.bind(c,50155)),Promise.resolve().then(c.bind(c,26922)),Promise.resolve().then(c.bind(c,79008)),Promise.resolve().then(c.bind(c,68146)),Promise.resolve().then(c.bind(c,60936)),Promise.resolve().then(c.bind(c,65138)),Promise.resolve().then(c.bind(c,68902)),Promise.resolve().then(c.bind(c,69644)),Promise.resolve().then(c.bind(c,49186)),Promise.resolve().then(c.bind(c,93099)),Promise.resolve().then(c.bind(c,83594)),Promise.resolve().then(c.bind(c,24375)),Promise.resolve().then(c.bind(c,67135)),Promise.resolve().then(c.bind(c,85105)),Promise.resolve().then(c.bind(c,41886)),Promise.resolve().then(c.bind(c,33309)),Promise.resolve().then(c.bind(c,37550)),Promise.resolve().then(c.bind(c,96623)),Promise.resolve().then(c.bind(c,77372)),Promise.resolve().then(c.bind(c,65478)),Promise.resolve().then(c.bind(c,97230)),Promise.resolve().then(c.bind(c,73552)),Promise.resolve().then(c.bind(c,391)),Promise.resolve().then(c.bind(c,4235)),Promise.resolve().then(c.bind(c,41138)),Promise.resolve().then(c.bind(c,60877)),Promise.resolve().then(c.bind(c,7671)),Promise.resolve().then(c.bind(c,5637)),Promise.resolve().then(c.bind(c,36786)),Promise.resolve().then(c.t.bind(c,20594,23))},52970:(a,b,c)=>{Promise.resolve().then(c.bind(c,68394)),Promise.resolve().then(c.bind(c,51189)),Promise.resolve().then(c.bind(c,66180)),Promise.resolve().then(c.bind(c,75266)),Promise.resolve().then(c.bind(c,14360)),Promise.resolve().then(c.bind(c,6786)),Promise.resolve().then(c.bind(c,44896)),Promise.resolve().then(c.bind(c,14848)),Promise.resolve().then(c.bind(c,53710)),Promise.resolve().then(c.bind(c,30544)),Promise.resolve().then(c.bind(c,13829)),Promise.resolve().then(c.bind(c,90044)),Promise.resolve().then(c.bind(c,57673)),Promise.resolve().then(c.bind(c,97053)),Promise.resolve().then(c.bind(c,43151)),Promise.resolve().then(c.bind(c,12156)),Promise.resolve().then(c.bind(c,71615)),Promise.resolve().then(c.bind(c,4080)),Promise.resolve().then(c.bind(c,87177)),Promise.resolve().then(c.bind(c,87634)),Promise.resolve().then(c.bind(c,6912)),Promise.resolve().then(c.bind(c,13976)),Promise.resolve().then(c.bind(c,18282)),Promise.resolve().then(c.bind(c,20633)),Promise.resolve().then(c.bind(c,61193)),Promise.resolve().then(c.bind(c,66188)),Promise.resolve().then(c.bind(c,66643)),Promise.resolve().then(c.bind(c,81669)),Promise.resolve().then(c.bind(c,39991)),Promise.resolve().then(c.bind(c,54972)),Promise.resolve().then(c.t.bind(c,1056,23))},60524:(a,b,c)=>{"use strict";c.d(b,{Separator:()=>d});let d=(0,c(54491).registerClientReference)(function(){throw Error("Attempted to call Separator() from the server but Separator is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/reflex-agent/reflex-agent/components/ui/separator.tsx","Separator")},67248:(a,b,c)=>{"use strict";c.d(b,{E:()=>i});var d=c(63003);c(34750);var e=c(86209),f=c(65715),g=c(26290);let h=(0,e.F)("inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3",{variants:{variant:{default:"bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"bg-destructive text-white focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40 [a&]:hover:bg-destructive/90",outline:"border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",ghost:"[a&]:hover:bg-accent [a&]:hover:text-accent-foreground",link:"text-primary underline-offset-4 [a&]:hover:underline"}},defaultVariants:{variant:"default"}});function i({className:a,variant:b="default",asChild:c=!1,...e}){let i=c?f.bL:"span";return(0,d.jsx)(i,{"data-slot":"badge","data-variant":b,className:(0,g.cn)(h({variant:b}),a),...e})}},84913:(a,b,c)=>{"use strict";c.d(b,{$:()=>i});var d=c(63003);c(34750);var e=c(86209),f=c(65715),g=c(26290);let h=(0,e.F)("inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",xs:"h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-xs":"size-6 rounded-md [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}});function i({className:a,variant:b="default",size:c="default",asChild:e=!1,...i}){let j=e?f.bL:"button";return(0,d.jsx)(j,{"data-slot":"button","data-variant":b,"data-size":c,className:(0,g.cn)(h({variant:b,size:c,className:a})),...i})}},89913:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{"00f3369b4cf55940a301292a6c9f77f00b837d7dc3":()=>g.i,"401f487f7fef5749035080e30c823f50f1d8a1a59d":()=>h.MU,"405f0143d37a718a80ca822d2f14b2c1e4b0fd205e":()=>f.z,"409ccdac19b10aed97024dc752228dd6e45a7801e7":()=>h.$z,"409f4b5447b4175cc96d5a403d470e05b0b0241e3e":()=>f.u,"40ad82cda51b6986682b8790170d0d1158ae318a95":()=>e.nC,"40b3a6f621f4dd0fbeff9986b0838ffb0661f93915":()=>e.nY,"60b4f72bcb952e914e8802506eecd520bde5b45f71":()=>e.OQ,"60c3bccb449185eaecf50bf553a1712933a9c705bf":()=>e.L4,"60e06c293b9ecc3a0f532d291db1d7eee23b6f58fa":()=>h.Tc,"60ff3df4e3ad497a54503ca5fe7b383589e370223c":()=>e.T$,"708dcc45d46350264144b1174a5c785ce551df32be":()=>e.h$,"785d105fe4cdea0b27e02ecbec12f88d28a6ef1ecf":()=>e.g3});var e=c(13415),f=c(3890),g=c(50995),h=c(15754),i=a([e,h]);[e,h]=i.then?(await i)():i,d()}catch(a){d(a)}})}};