reflex-agent 0.2.4 → 0.3.1

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 +111 -98
  3. package/.next/app-path-routes-manifest.json +9 -9
  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 +4 -4
  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 +4 -2
  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 +6 -6
  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 +9 -9
  88. package/.next/server/chunks/1223.js +1 -1
  89. package/.next/server/chunks/133.js +1 -490
  90. package/.next/server/chunks/1888.js +1 -1
  91. package/.next/server/chunks/{9739.js → 1988.js} +13 -9
  92. package/.next/server/chunks/2433.js +1 -1
  93. package/.next/server/chunks/2503.js +1 -1
  94. package/.next/server/chunks/285.js +471 -0
  95. package/.next/server/chunks/2959.js +1 -0
  96. package/.next/server/chunks/2995.js +1 -0
  97. package/.next/server/chunks/3240.js +1 -1
  98. package/.next/server/chunks/3332.js +1 -1
  99. package/.next/server/chunks/3657.js +1 -1
  100. package/.next/server/chunks/4066.js +1 -1
  101. package/.next/server/chunks/4438.js +1 -0
  102. package/.next/server/chunks/4514.js +3 -0
  103. package/.next/server/chunks/4553.js +1 -1
  104. package/.next/server/chunks/4812.js +179 -0
  105. package/.next/server/chunks/4925.js +1 -1
  106. package/.next/server/chunks/{3953.js → 5068.js} +2 -2
  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/6909.js +142 -161
  111. package/.next/server/chunks/8262.js +1 -1
  112. package/.next/server/chunks/9098.js +1 -1
  113. package/.next/server/chunks/94.js +1 -1
  114. package/.next/server/chunks/9427.js +1 -0
  115. package/.next/server/chunks/9538.js +1 -0
  116. package/.next/server/chunks/963.js +1 -0
  117. package/.next/server/chunks/9835.js +1 -1
  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/2865-134f546f21ca4330.js +1 -0
  126. package/.next/static/chunks/4108.5abdb7812a13eafd.js +1 -0
  127. package/.next/static/chunks/5254-4196f25e56270de5.js +1 -0
  128. package/.next/static/chunks/5521-cbc665104c7e59d3.js +1 -0
  129. package/.next/static/chunks/6445-99824866a51b582a.js +1 -0
  130. package/.next/static/chunks/8855-9b941d2b78f398ce.js +1 -0
  131. package/.next/static/chunks/8871-2948840b33c0863d.js +1 -0
  132. package/.next/static/chunks/9411-af5f758c57741929.js +3 -0
  133. package/.next/static/chunks/app/agents/[agentId]/page-5d6f4cb16b42d02b.js +1 -0
  134. package/.next/static/chunks/app/layout-d4cf24375db6d793.js +1 -0
  135. package/.next/static/chunks/app/onboarding/page-7303664b62ccc24a.js +1 -0
  136. package/.next/static/chunks/app/page-97d312db91d569f7.js +1 -0
  137. package/.next/static/chunks/app/roots/[id]/chat/[topicId]/page-123f60a544619a3c.js +1 -0
  138. package/.next/static/chunks/app/roots/[id]/kb/[...slug]/page-e253597edb1b2440.js +1 -0
  139. package/.next/static/chunks/app/roots/[id]/page-91a8de6a1c79f8a3.js +1 -0
  140. package/.next/static/chunks/app/roots/[id]/workflows/[wfId]/page-4300a52e163883df.js +1 -0
  141. package/.next/static/chunks/app/roots/new/page-6b104aad46a38173.js +1 -0
  142. package/.next/static/chunks/app/settings/page-afe1b80f7f45c5eb.js +1 -0
  143. package/.next/static/chunks/app/share/[id]/page-a5fb565bd892d4df.js +1 -0
  144. package/.next/static/chunks/app/utilities/[scope]/[id]/page-eb713a2b5209942c.js +1 -0
  145. package/.next/static/chunks/app/utilities/page-b7f30c151c42a27c.js +1 -0
  146. package/.next/static/chunks/{webpack-5fca180586957874.js → webpack-bddc3babcbc30dd7.js} +1 -1
  147. package/.next/static/css/60e9b6cdf1283e83.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 -2
  154. package/.next/server/app/_not-found.html +0 -1
  155. package/.next/server/app/_not-found.meta +0 -8
  156. package/.next/server/app/_not-found.rsc +0 -18
  157. package/.next/server/app/index.html +0 -1
  158. package/.next/server/app/index.meta +0 -9
  159. package/.next/server/app/index.rsc +0 -19
  160. package/.next/server/chunks/1410.js +0 -1
  161. package/.next/server/chunks/1986.js +0 -1
  162. package/.next/server/chunks/2448.js +0 -3
  163. package/.next/server/chunks/5754.js +0 -3
  164. package/.next/server/chunks/7097.js +0 -1
  165. package/.next/server/chunks/7782.js +0 -1
  166. package/.next/server/chunks/7987.js +0 -1
  167. package/.next/server/chunks/810.js +0 -1
  168. package/.next/server/chunks/8843.js +0 -1
  169. package/.next/server/chunks/9328.js +0 -179
  170. package/.next/server/pages/404.html +0 -1
  171. package/.next/static/chunks/2488-c9590facb4b9f184.js +0 -1
  172. package/.next/static/chunks/2684-257d38989ef53935.js +0 -1
  173. package/.next/static/chunks/4108.fb9f99a9c899ef54.js +0 -1
  174. package/.next/static/chunks/6231-d83c1544bbea8424.js +0 -1
  175. package/.next/static/chunks/9045-731ff0865352dd95.js +0 -1
  176. package/.next/static/chunks/9496-75ccd3fadb294fba.js +0 -1
  177. package/.next/static/chunks/992-4e7b7f722c629e21.js +0 -1
  178. package/.next/static/chunks/app/agents/[agentId]/page-0b5c2838354d0eba.js +0 -1
  179. package/.next/static/chunks/app/layout-9a59ed07c18cb786.js +0 -1
  180. package/.next/static/chunks/app/onboarding/page-79f07a813ea2abfe.js +0 -1
  181. package/.next/static/chunks/app/page-27f4b98b02ac4f79.js +0 -1
  182. package/.next/static/chunks/app/roots/[id]/chat/[topicId]/page-8db2d0b75cd333c8.js +0 -1
  183. package/.next/static/chunks/app/roots/[id]/kb/[...slug]/page-873b131eec3a2f30.js +0 -1
  184. package/.next/static/chunks/app/roots/[id]/page-270d0d49eb668784.js +0 -1
  185. package/.next/static/chunks/app/roots/[id]/workflows/[wfId]/page-7c1f10dbe0bcb9ad.js +0 -1
  186. package/.next/static/chunks/app/roots/new/page-ac1a9f6379710ca2.js +0 -1
  187. package/.next/static/chunks/app/settings/page-81cb1393e817dfc3.js +0 -1
  188. package/.next/static/chunks/app/share/[id]/page-2d123f0a99e1606f.js +0 -1
  189. package/.next/static/chunks/app/utilities/[scope]/[id]/page-0bbb8d17af80c1da.js +0 -1
  190. package/.next/static/chunks/app/utilities/page-e6ce673b9357bf1f.js +0 -1
  191. package/.next/static/css/87e01f779d555d04.css +0 -1
  192. package/packages/utilities/learn-anything/README.md +0 -41
  193. package/packages/utilities/learn-anything/actions/_json.ts +0 -191
  194. package/packages/utilities/learn-anything/actions/_store.ts +0 -248
  195. package/packages/utilities/learn-anything/actions/buildModule.ts +0 -487
  196. package/packages/utilities/learn-anything/actions/explainSelection.ts +0 -64
  197. package/packages/utilities/learn-anything/actions/generateOutline.ts +0 -170
  198. package/packages/utilities/learn-anything/actions/generateQuiz.ts +0 -72
  199. package/packages/utilities/learn-anything/actions/generateTrainer.ts +0 -106
  200. package/packages/utilities/learn-anything/actions/refreshCourseCard.ts +0 -76
  201. package/packages/utilities/learn-anything/actions/tutorAsk.ts +0 -93
  202. package/packages/utilities/learn-anything/article-view.tsx +0 -464
  203. package/packages/utilities/learn-anything/manifest.json +0 -42
  204. package/packages/utilities/learn-anything/ui.tsx +0 -1589
  205. /package/.next/static/{og_wC7UPkGtJDiapaTgBr → IGuuMcet1qtGZQCP2MEn4}/_buildManifest.js +0 -0
  206. /package/.next/static/{og_wC7UPkGtJDiapaTgBr → IGuuMcet1qtGZQCP2MEn4}/_ssgManifest.js +0 -0
@@ -50,37 +50,37 @@ function imageGenInstructions() {
50
50
  return [
51
51
  "## Generating images inline",
52
52
  "",
53
- "When the user asks to draw, generate, or illustrate something (\"нарисуй кота\", \"сделай иллюстрацию\", \"сгенерируй превью\"), DON'T describe what you'd draw — emit an image-gen marker and Reflex will render the actual image inside your reply.",
53
+ "When the user asks to draw, generate, or illustrate something (\"draw a cat\", \"make an illustration\", \"generate a preview\"), DON'T describe what you'd draw — emit an image-gen marker and Reflex will render the actual image inside your reply.",
54
54
  "",
55
55
  "```",
56
56
  `<<reflex:image-gen>>{`,
57
- ` "prompt": "детальный английский или русский промпт описывающий картинку",`,
57
+ ` "prompt": "detailed prompt describing the picture",`,
58
58
  ` "provider": "gemini",`,
59
59
  ` "aspectRatio": "16:9",`,
60
- ` "caption": "короткая подпись (опционально)",`,
60
+ ` "caption": "short caption (optional)",`,
61
61
  ` "attachToKb": false`,
62
62
  `}<</reflex:image-gen>>`,
63
63
  "```",
64
64
  "",
65
- "- `provider`: `\"gemini\"` (Nano Banana, дефолт, дёшево и быстро) или `\"codex\"` (через `$imagegen` в Codex CLI).",
66
- "- `aspectRatio`: `\"1:1\"`, `\"16:9\"`, `\"9:16\"`, `\"4:3\"` и т.п. Опционально.",
67
- "- `attachToKb: true` — также сохранить картинку в KB как `kind: \"image\"` для будущей переподборки.",
68
- "- Можно эмитить несколько маркеров за один ответбудет N картинок подряд.",
69
- "- Промпт пиши развёрнутый: стиль (фотореализм / акварель / 3D / иллюстрация), композиция, освещение, настроение. Чем конкретнеетем лучше результат.",
70
- "- НЕ описывай словами «вот картинка кота»просто эмить маркер; Reflex сам вставит изображение в твой ответ.",
65
+ "- `provider`: `\"gemini\"` (Nano Banana, default, cheap and fast) or `\"codex\"` (via `$imagegen` in Codex CLI).",
66
+ "- `aspectRatio`: `\"1:1\"`, `\"16:9\"`, `\"9:16\"`, `\"4:3\"`, etc. Optional.",
67
+ "- `attachToKb: true` — also save the image to the KB as `kind: \"image\"` for future reuse.",
68
+ "- You can emit multiple markers in one reply that produces N images in a row.",
69
+ "- Write a detailed prompt: style (photorealism / watercolor / 3D / illustration), composition, lighting, mood. The more specific the better the result.",
70
+ "- DO NOT describe in words \"here is a picture of a cat\" just emit the marker; Reflex inserts the image into your reply itself.",
71
71
  ].join("\n");
72
72
  }
73
73
  /**
74
74
  * Workflows are linear "recipes" (steps run sequentially). Designed for
75
75
  * non-programmers — the agent's job is to compose them from typed nodes
76
76
  * (text-template, http-request, web-fetch, ask-agent, kb-write) when
77
- * the user asks for "автоматизацию", "регулярную задачу", "робота".
77
+ * the user asks for "automation", "a recurring task", "a robot".
78
78
  */
79
79
  function workflowInstructions() {
80
80
  return [
81
- "## Workflows — встроенный «n8n для домохозяек»",
81
+ "## Workflows — built-in \"n8n for non-techies\"",
82
82
  "",
83
- "Когда пользователь хочет автоматизировать что-то регулярное (утренний дайджест, мониторинг страницы, рутина «скачай обработайзапиши»), эмить маркер `<<reflex:workflow-create>>` — Reflex сохранит workflow на диск и покажет превью со ссылкой на редактор.",
83
+ "When the user wants to automate something recurring (morning digest, page monitor, \"fetchprocesssave\" routine), emit a `<<reflex:workflow-create>>` marker — Reflex will save the workflow to disk and show a preview with a link to the editor.",
84
84
  "",
85
85
  "```",
86
86
  `<<reflex:workflow-create>>{`,
@@ -89,29 +89,29 @@ function workflowInstructions() {
89
89
  ` "description": "<one line>",`,
90
90
  ` "trigger": "manual" | "hourly" | "daily" | "weekly",`,
91
91
  ` "steps": [`,
92
- ` {"id": "fetch", "kind": "web-fetch", "label": "Скачать HN", "params": {"url": "https://news.ycombinator.com/rss"}},`,
93
- ` {"id": "digest", "kind": "ask-agent", "label": "Сжать в дайджест", "params": {"prompt": "Сожми топ-5 заголовков из RSS:\\n{{prev}}"}},`,
94
- ` {"id": "save", "kind": "kb-write", "label": "Записать в KB", "params": {"kind": "digest", "title": "HN дайджест", "body": "{{prev}}"}}`,
92
+ ` {"id": "fetch", "kind": "web-fetch", "label": "Fetch HN", "params": {"url": "https://news.ycombinator.com/rss"}},`,
93
+ ` {"id": "digest", "kind": "ask-agent", "label": "Compress into digest", "params": {"prompt": "Summarize the top 5 headlines from the RSS:\\n{{prev}}"}},`,
94
+ ` {"id": "save", "kind": "kb-write", "label": "Write to KB", "params": {"kind": "digest", "title": "HN digest", "body": "{{prev}}"}}`,
95
95
  ` ]`,
96
96
  `}<</reflex:workflow-create>>`,
97
97
  "```",
98
98
  "",
99
- "### Доступные `kind` шагов",
99
+ "### Available step `kind`s",
100
100
  "",
101
- "- `text-template` — `{template: string}`. Подстановки: `{{prev}}`, `{{steps.<id>.output}}`, `{{input.<field>}}`, `{{workflow.label}}`.",
102
- "- `http-request` — `{url, method?, headers?: string-JSON, body?}`. Output: текст или JSON (по content-type).",
103
- "- `web-fetch` — `{url}`. Простой GET, output текст ответа.",
104
- "- `ask-agent` — `{prompt}`. Запускает headless orchestrator и возвращает текст ответа. Используй для суммаризации, перефразирования, классификации.",
105
- "- `kb-write` — `{kind, title, body}`. Сохраняет в базу знаний как обычный KB-файл.",
101
+ "- `text-template` — `{template: string}`. Substitutions: `{{prev}}`, `{{steps.<id>.output}}`, `{{input.<field>}}`, `{{workflow.label}}`.",
102
+ "- `http-request` — `{url, method?, headers?: string-JSON, body?}`. Output: text or JSON (by content-type).",
103
+ "- `web-fetch` — `{url}`. Simple GET; output is the response text.",
104
+ "- `ask-agent` — `{prompt}`. Runs a headless orchestrator and returns the response text. Use for summarization, paraphrasing, classification.",
105
+ "- `kb-write` — `{kind, title, body}`. Saves to the knowledge base as a regular KB file.",
106
106
  "",
107
- "### Правила",
107
+ "### Rules",
108
108
  "",
109
- "- Каждый step передаёт output следующему через `{{prev}}` или `{{steps.<id>.output}}`. Это единственная связь между шагами.",
110
- "- `id` step'а должен быть стабильный и kebab-case — на него ссылаются templates.",
111
- "- Шаги выполняются строго последовательно. Если step упадётостальные не запустятся, run отметится failed.",
112
- "- Делай workflow КОРОТКИМИ (3-5 шагов). Если задача большеразбей на несколько workflows или дай агенту через `ask-agent` сделать сложную часть.",
113
- "- Trigger `manual` по умолчанию. `hourly`/`daily`/`weekly` пока работают только через ручной запуск, scheduler в работе.",
114
- "- После эмита маркеракороткое сообщение пользователю: что собрал, как запустить, где редактировать.",
109
+ "- Each step passes its output to the next via `{{prev}}` or `{{steps.<id>.output}}`. This is the only link between steps.",
110
+ "- A step's `id` must be stable and kebab-case — templates reference it.",
111
+ "- Steps run strictly sequentially. If a step failsthe rest won't run, and the run is marked failed.",
112
+ "- Keep workflows SHORT (3-5 steps). If the task is larger split it into several workflows or let the agent handle the complex part via `ask-agent`.",
113
+ "- Trigger defaults to `manual`. `hourly`/`daily`/`weekly` currently work only via manual launch; the scheduler is in progress.",
114
+ "- After emitting the marker a short message to the user: what you assembled, how to run it, where to edit it.",
115
115
  ].join("\n");
116
116
  }
117
117
  /**
@@ -162,28 +162,28 @@ function widgetInstructions() {
162
162
  "- `progress` — `{items: [{label, current, target, unit?}]}`. Goal-tracking bars.",
163
163
  "- `image` — `{url, alt?, caption?}`. Single image card.",
164
164
  "- `stat-table` — `{columns?: [string], rows: [[string, ...]]}`. Compact comparison table.",
165
- "- `map` — `{points: [{lat, lng, title, description?}], center?, zoom?, route?: {stops: number[], color?, mode?}}`. Карта с точками + опциональный маршрут (полилиния + multi-waypoint deep-links: google/yandex/2gis/apple/osm/waze/organic). `route.stops` — массив индексов в `points` в порядке прохождения (минимум 2). На каждой точке popup с фирменными кнопками сервисов. По умолчанию карта авто-фитит по точкам. ВАЖНО: `lat`/`lng` числа в десятичных градусах (lat=55.7558, lng=37.6173 — Москва). НЕ строки. Если у тебя адреснайди координаты через WebSearch/WebFetch (geocoding), не выдумывай. Пользователь может прямо в виджете искать места (Nominatim) и собирать маршрут кнопка «Маршрут» переводит в режим выбора точек по клику.",
165
+ "- `map` — `{points: [{lat, lng, title, description?}], center?, zoom?, route?: {stops: number[], color?, mode?}}`. Map with points + an optional route (polyline + multi-waypoint deep-links: google/yandex/2gis/apple/osm/waze/organic). `route.stops` — array of indices in `points` in traversal order (minimum 2). Each point gets a popup with branded service buttons. By default the map auto-fits to the points. IMPORTANT: `lat`/`lng` are numbers in decimal degrees (lat=55.7558, lng=37.6173 — Moscow). NOT strings. If you have an address find coordinates via WebSearch/WebFetch (geocoding); don't invent them. The user can search for places (Nominatim) and build a route right in the widget the \"Route\" button switches to point-pick-by-click mode.",
166
166
  "",
167
167
  "### Interactivity",
168
168
  "",
169
- "Виджеты на дашборде интерактивныпользователь может прямо в UI:",
170
- " - **checklist**: тыкать галочки (toggle done), удалять пункты, добавлять новые.",
171
- " - **link-list**: удалять ссылки.",
172
- " - **news-list**: помечать новость прочитанной (`read:true`), убирать карточку.",
173
- " - **kb-pinned**: откреплять файлы.",
174
- " - **progress**: ± кнопки на `current`.",
169
+ "Dashboard widgets are interactivethe user can, right in the UI:",
170
+ " - **checklist**: tick checkboxes (toggle done), delete items, add new ones.",
171
+ " - **link-list**: delete links.",
172
+ " - **news-list**: mark a news item as read (`read:true`), remove the card.",
173
+ " - **kb-pinned**: unpin files.",
174
+ " - **progress**: ± buttons on `current`.",
175
175
  "",
176
- "Эти изменения пишутся прямо на диск, минуя тебя. На следующем `widget-update` ты увидишь актуальное состояние. Стратегия:",
177
- " - Если пользователь удалил пункт чек-листане добавляй его обратно (это сигнал).",
178
- " - Если пользователь отметил новость прочитаннойвнеси её URL в `memory` для дедупа.",
179
- " - Если пользователь обнулил progress — это, видимо, новый цикл; уважай.",
176
+ "These changes are written straight to disk, bypassing you. On the next `widget-update` you'll see the current state. Strategy:",
177
+ " - If the user deleted a checklist item don't add it back (that's a signal).",
178
+ " - If the user marked a news item as read record its URL in `memory` for dedup.",
179
+ " - If the user reset progress — apparently it's a new cycle; respect it.",
180
180
  "",
181
181
  "### Rules",
182
182
  "",
183
183
  "- Pick the SIMPLEST kind that fits — don't squeeze a news digest into `markdown` if `news-list` exists.",
184
184
  "- `id` is stable: same id across `widget-create` and `widget-update`. Pick a slug from the topic content (e.g. `tech-news-weekly`, `okrs-q2`).",
185
- "- `size.mode`: `\"sm\"` (3 в ряд, иконки/KPI) | `\"md\"` (по умолчанию, 2 в ряд) | `\"wide\"` (на всю строку, для длинных таблиц/markdown). Подбирай к контенту, но пользователь может переопределить через UI — твой выбор всего лишь hint.",
186
- "- After emitting the marker, briefly tell the user in plain text WHAT виджет ты собрал. ВАЖНО: новый виджет НЕ появляется на дашборде автоматическион лежит в библиотеке как черновик. Пользователь увидит его прямо в чате (превью) и сможет закрепить кнопкой «Закрепить на дашборде» или через библиотеку. Не утверждай, что виджет уже на дашборде.",
185
+ "- `size.mode`: `\"sm\"` (3 per row, icons/KPI) | `\"md\"` (default, 2 per row) | `\"wide\"` (full row, for long tables/markdown). Match it to the content, but the user can override via the UI — your choice is only a hint.",
186
+ "- After emitting the marker, briefly tell the user in plain text WHAT widget you assembled. IMPORTANT: a new widget does NOT appear on the dashboard automatically it sits in the library as a draft. The user sees it right in the chat (preview) and can pin it with the \"Pin to dashboard\" button or via the library. Don't claim the widget is already on the dashboard.",
187
187
  "- Reflex automatically shows a live preview of the widget inside this chat turn — no need to re-render in markdown.",
188
188
  ].join("\n");
189
189
  }
@@ -200,15 +200,15 @@ function dispatchInstructions() {
200
200
  "For anything non-trivial (deep KB reading, multi-file research, code writes, utility creation, summarization of large texts) — DELEGATE to a specialist sub-agent instead of doing it yourself. Sub-agents run with a focused system prompt and a constrained toolset.",
201
201
  "",
202
202
  "Available roles:",
203
- " - **researcher** — read-only KB / web research. Use for \"найди / собери / процитируй\".",
204
- " - **coder** — writes/edits files (Write/Edit + read tools). Use for \"сделай / поправь / создай файл\".",
205
- " - **summarizer** — no tools; compresses long text from the brief. Use for \"сожми / выдели главное\" из большого куска.",
203
+ " - **researcher** — read-only KB / web research. Use for \"find / gather / quote\".",
204
+ " - **coder** — writes/edits files (Write/Edit + read tools). Use for \"do / fix / create a file\".",
205
+ " - **summarizer** — no tools; compresses long text from the brief. Use for \"compress / extract the main points\" from a large chunk.",
206
206
  " - **kb-writer** — designs a structured KB entry (returns JSON for <<reflex:kb>>). Use when something is worth saving but the shape is non-trivial.",
207
207
  " - **utility-builder** — designs a Reflex utility (manifest + ui.tsx). Use when the user asks to build a new utility.",
208
208
  "",
209
209
  "To dispatch, emit one or more markers in a single turn and STOP:",
210
210
  "",
211
- " <<reflex:dispatch>>{\"id\":\"r1\",\"role\":\"researcher\",\"brief\":\"Прочитай INDEX.md и собери список тем.\"}<</reflex:dispatch>>",
211
+ " <<reflex:dispatch>>{\"id\":\"r1\",\"role\":\"researcher\",\"brief\":\"Read INDEX.md and collect a list of topics.\"}<</reflex:dispatch>>",
212
212
  "",
213
213
  "Rules:",
214
214
  " - `brief` must be self-contained — sub-agents do NOT see the chat transcript. Include all rel-paths, expected output shape, constraints.",
@@ -222,7 +222,7 @@ function dispatchInstructions() {
222
222
  " – task is heavy code synthesis / refactor / type-fixing — Codex shines there.",
223
223
  " – task is short text classification / extraction — `\"harness\":\"ollama\"` is cheap and fast.",
224
224
  " - Without `harness`, the sub-agent inherits the orchestrator's runtime — usually fine. Override only when you have a concrete reason.",
225
- " - Example: `<<reflex:dispatch>>{\"role\":\"coder\",\"harness\":\"codex\",\"brief\":\"Перепиши X на TypeScript strict\"}<</reflex:dispatch>>`",
225
+ " - Example: `<<reflex:dispatch>>{\"role\":\"coder\",\"harness\":\"codex\",\"brief\":\"Rewrite X in TypeScript strict mode\"}<</reflex:dispatch>>`",
226
226
  ].join("\n");
227
227
  }
228
228
  //# sourceMappingURL=prompts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../../lib/reflex/agents/prompts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../../lib/reflex/agents/prompts.ts"],"names":[],"mappings":"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"}