reflex-agent 0.2.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 (365) hide show
  1. package/.next/BUILD_ID +1 -0
  2. package/.next/app-build-manifest.json +319 -0
  3. package/.next/app-path-routes-manifest.json +34 -0
  4. package/.next/build-manifest.json +33 -0
  5. package/.next/diagnostics/build-diagnostics.json +6 -0
  6. package/.next/diagnostics/framework.json +1 -0
  7. package/.next/export-marker.json +6 -0
  8. package/.next/images-manifest.json +58 -0
  9. package/.next/next-minimal-server.js.nft.json +1 -0
  10. package/.next/next-server.js.nft.json +1 -0
  11. package/.next/package.json +1 -0
  12. package/.next/prerender-manifest.json +160 -0
  13. package/.next/react-loadable-manifest.json +8 -0
  14. package/.next/required-server-files.json +337 -0
  15. package/.next/routes-manifest.json +282 -0
  16. package/.next/server/app/_not-found/page.js +2 -0
  17. package/.next/server/app/_not-found/page.js.nft.json +1 -0
  18. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -0
  19. package/.next/server/app/_not-found.html +1 -0
  20. package/.next/server/app/_not-found.meta +8 -0
  21. package/.next/server/app/_not-found.rsc +18 -0
  22. package/.next/server/app/agents/[agentId]/page.js +3 -0
  23. package/.next/server/app/agents/[agentId]/page.js.nft.json +1 -0
  24. package/.next/server/app/agents/[agentId]/page_client-reference-manifest.js +1 -0
  25. package/.next/server/app/api/agents/[agentId]/respond/route.js +2 -0
  26. package/.next/server/app/api/agents/[agentId]/respond/route.js.nft.json +1 -0
  27. package/.next/server/app/api/agents/[agentId]/respond/route_client-reference-manifest.js +1 -0
  28. package/.next/server/app/api/images/[rootId]/[file]/route.js +1 -0
  29. package/.next/server/app/api/images/[rootId]/[file]/route.js.nft.json +1 -0
  30. package/.next/server/app/api/images/[rootId]/[file]/route_client-reference-manifest.js +1 -0
  31. package/.next/server/app/api/oauth/callback/route.js +22 -0
  32. package/.next/server/app/api/oauth/callback/route.js.nft.json +1 -0
  33. package/.next/server/app/api/oauth/callback/route_client-reference-manifest.js +1 -0
  34. package/.next/server/app/api/oauth/start/route.js +1 -0
  35. package/.next/server/app/api/oauth/start/route.js.nft.json +1 -0
  36. package/.next/server/app/api/oauth/start/route_client-reference-manifest.js +1 -0
  37. package/.next/server/app/api/roots/[id]/attachments/route.js +0 -0
  38. package/.next/server/app/api/roots/[id]/attachments/route.js.nft.json +1 -0
  39. package/.next/server/app/api/roots/[id]/attachments/route_client-reference-manifest.js +1 -0
  40. package/.next/server/app/api/roots/[id]/chat/[topicId]/send/route.js +2 -0
  41. package/.next/server/app/api/roots/[id]/chat/[topicId]/send/route.js.nft.json +1 -0
  42. package/.next/server/app/api/roots/[id]/chat/[topicId]/send/route_client-reference-manifest.js +1 -0
  43. package/.next/server/app/api/roots/[id]/chat/[topicId]/stop/route.js +2 -0
  44. package/.next/server/app/api/roots/[id]/chat/[topicId]/stop/route.js.nft.json +1 -0
  45. package/.next/server/app/api/roots/[id]/chat/[topicId]/stop/route_client-reference-manifest.js +1 -0
  46. package/.next/server/app/api/roots/[id]/chat/[topicId]/stream/route.js +8 -0
  47. package/.next/server/app/api/roots/[id]/chat/[topicId]/stream/route.js.nft.json +1 -0
  48. package/.next/server/app/api/roots/[id]/chat/[topicId]/stream/route_client-reference-manifest.js +1 -0
  49. package/.next/server/app/api/roots/[id]/dashboard/route.js +1 -0
  50. package/.next/server/app/api/roots/[id]/dashboard/route.js.nft.json +1 -0
  51. package/.next/server/app/api/roots/[id]/dashboard/route_client-reference-manifest.js +1 -0
  52. package/.next/server/app/api/roots/[id]/suggestions/route.js +1 -0
  53. package/.next/server/app/api/roots/[id]/suggestions/route.js.nft.json +1 -0
  54. package/.next/server/app/api/roots/[id]/suggestions/route_client-reference-manifest.js +1 -0
  55. package/.next/server/app/api/utilities/[scope]/[id]/bundle.js/route.js +1 -0
  56. package/.next/server/app/api/utilities/[scope]/[id]/bundle.js/route.js.nft.json +1 -0
  57. package/.next/server/app/api/utilities/[scope]/[id]/bundle.js/route_client-reference-manifest.js +1 -0
  58. package/.next/server/app/api/utilities/[scope]/[id]/host/route.js +2 -0
  59. package/.next/server/app/api/utilities/[scope]/[id]/host/route.js.nft.json +1 -0
  60. package/.next/server/app/api/utilities/[scope]/[id]/host/route_client-reference-manifest.js +1 -0
  61. package/.next/server/app/api/utilities/[scope]/[id]/host-api.mjs/route.js +55 -0
  62. package/.next/server/app/api/utilities/[scope]/[id]/host-api.mjs/route.js.nft.json +1 -0
  63. package/.next/server/app/api/utilities/[scope]/[id]/host-api.mjs/route_client-reference-manifest.js +1 -0
  64. package/.next/server/app/api/utilities/[scope]/[id]/host-ui.mjs/route.js +114 -0
  65. package/.next/server/app/api/utilities/[scope]/[id]/host-ui.mjs/route.js.nft.json +1 -0
  66. package/.next/server/app/api/utilities/[scope]/[id]/host-ui.mjs/route_client-reference-manifest.js +1 -0
  67. package/.next/server/app/api/utilities/[scope]/[id]/iframe/route.js +21 -0
  68. package/.next/server/app/api/utilities/[scope]/[id]/iframe/route.js.nft.json +1 -0
  69. package/.next/server/app/api/utilities/[scope]/[id]/iframe/route_client-reference-manifest.js +1 -0
  70. package/.next/server/app/api/utilities/[scope]/[id]/style.css/route.js +1 -0
  71. package/.next/server/app/api/utilities/[scope]/[id]/style.css/route.js.nft.json +1 -0
  72. package/.next/server/app/api/utilities/[scope]/[id]/style.css/route_client-reference-manifest.js +1 -0
  73. package/.next/server/app/audit/page.js +2 -0
  74. package/.next/server/app/audit/page.js.nft.json +1 -0
  75. package/.next/server/app/audit/page_client-reference-manifest.js +1 -0
  76. package/.next/server/app/index.html +1 -0
  77. package/.next/server/app/index.meta +9 -0
  78. package/.next/server/app/index.rsc +19 -0
  79. package/.next/server/app/onboarding/page.js +10 -0
  80. package/.next/server/app/onboarding/page.js.nft.json +1 -0
  81. package/.next/server/app/onboarding/page_client-reference-manifest.js +1 -0
  82. package/.next/server/app/page.js +2 -0
  83. package/.next/server/app/page.js.nft.json +1 -0
  84. package/.next/server/app/page_client-reference-manifest.js +1 -0
  85. package/.next/server/app/roots/[id]/chat/[topicId]/page.js +7 -0
  86. package/.next/server/app/roots/[id]/chat/[topicId]/page.js.nft.json +1 -0
  87. package/.next/server/app/roots/[id]/chat/[topicId]/page_client-reference-manifest.js +1 -0
  88. package/.next/server/app/roots/[id]/kb/[...slug]/page.js +6 -0
  89. package/.next/server/app/roots/[id]/kb/[...slug]/page.js.nft.json +1 -0
  90. package/.next/server/app/roots/[id]/kb/[...slug]/page_client-reference-manifest.js +1 -0
  91. package/.next/server/app/roots/[id]/page.js +5 -0
  92. package/.next/server/app/roots/[id]/page.js.nft.json +1 -0
  93. package/.next/server/app/roots/[id]/page_client-reference-manifest.js +1 -0
  94. package/.next/server/app/roots/[id]/workflows/[wfId]/page.js +2 -0
  95. package/.next/server/app/roots/[id]/workflows/[wfId]/page.js.nft.json +1 -0
  96. package/.next/server/app/roots/[id]/workflows/[wfId]/page_client-reference-manifest.js +1 -0
  97. package/.next/server/app/roots/[id]/workflows/page.js +2 -0
  98. package/.next/server/app/roots/[id]/workflows/page.js.nft.json +1 -0
  99. package/.next/server/app/roots/[id]/workflows/page_client-reference-manifest.js +1 -0
  100. package/.next/server/app/roots/new/page.js +5 -0
  101. package/.next/server/app/roots/new/page.js.nft.json +1 -0
  102. package/.next/server/app/roots/new/page_client-reference-manifest.js +1 -0
  103. package/.next/server/app/roots/new.html +1 -0
  104. package/.next/server/app/roots/new.meta +7 -0
  105. package/.next/server/app/roots/new.rsc +21 -0
  106. package/.next/server/app/settings/page.js +65 -0
  107. package/.next/server/app/settings/page.js.nft.json +1 -0
  108. package/.next/server/app/settings/page_client-reference-manifest.js +1 -0
  109. package/.next/server/app/settings.html +1 -0
  110. package/.next/server/app/settings.meta +7 -0
  111. package/.next/server/app/settings.rsc +22 -0
  112. package/.next/server/app/share/[id]/file/page.js +2 -0
  113. package/.next/server/app/share/[id]/file/page.js.nft.json +1 -0
  114. package/.next/server/app/share/[id]/file/page_client-reference-manifest.js +1 -0
  115. package/.next/server/app/share/[id]/page.js +2 -0
  116. package/.next/server/app/share/[id]/page.js.nft.json +1 -0
  117. package/.next/server/app/share/[id]/page_client-reference-manifest.js +1 -0
  118. package/.next/server/app/utilities/[scope]/[id]/page.js +2 -0
  119. package/.next/server/app/utilities/[scope]/[id]/page.js.nft.json +1 -0
  120. package/.next/server/app/utilities/[scope]/[id]/page_client-reference-manifest.js +1 -0
  121. package/.next/server/app/utilities/page.js +17 -0
  122. package/.next/server/app/utilities/page.js.nft.json +1 -0
  123. package/.next/server/app/utilities/page_client-reference-manifest.js +1 -0
  124. package/.next/server/app-paths-manifest.json +34 -0
  125. package/.next/server/chunks/1088.js +1 -0
  126. package/.next/server/chunks/1105.js +1 -0
  127. package/.next/server/chunks/1223.js +1 -0
  128. package/.next/server/chunks/1244.js +1 -0
  129. package/.next/server/chunks/133.js +490 -0
  130. package/.next/server/chunks/1888.js +1 -0
  131. package/.next/server/chunks/192.js +1 -0
  132. package/.next/server/chunks/1960.js +1 -0
  133. package/.next/server/chunks/1961.js +1 -0
  134. package/.next/server/chunks/1986.js +1 -0
  135. package/.next/server/chunks/2035.js +1 -0
  136. package/.next/server/chunks/2356.js +1 -0
  137. package/.next/server/chunks/2433.js +1 -0
  138. package/.next/server/chunks/2485.js +6 -0
  139. package/.next/server/chunks/2503.js +1 -0
  140. package/.next/server/chunks/3240.js +1 -0
  141. package/.next/server/chunks/3295.js +1 -0
  142. package/.next/server/chunks/3332.js +1 -0
  143. package/.next/server/chunks/3657.js +1 -0
  144. package/.next/server/chunks/4031.js +6 -0
  145. package/.next/server/chunks/4066.js +1 -0
  146. package/.next/server/chunks/4553.js +1 -0
  147. package/.next/server/chunks/4833.js +1 -0
  148. package/.next/server/chunks/4840.js +1 -0
  149. package/.next/server/chunks/4842.js +1 -0
  150. package/.next/server/chunks/4925.js +1 -0
  151. package/.next/server/chunks/5087.js +1 -0
  152. package/.next/server/chunks/5152.js +1 -0
  153. package/.next/server/chunks/5243.js +1 -0
  154. package/.next/server/chunks/5319.js +1 -0
  155. package/.next/server/chunks/5373.js +1 -0
  156. package/.next/server/chunks/5401.js +1 -0
  157. package/.next/server/chunks/5436.js +1 -0
  158. package/.next/server/chunks/5543.js +1 -0
  159. package/.next/server/chunks/569.js +1 -0
  160. package/.next/server/chunks/5895.js +16 -0
  161. package/.next/server/chunks/5986.js +3 -0
  162. package/.next/server/chunks/613.js +1 -0
  163. package/.next/server/chunks/6216.js +1 -0
  164. package/.next/server/chunks/6435.js +1 -0
  165. package/.next/server/chunks/6536.js +3 -0
  166. package/.next/server/chunks/6602.js +4 -0
  167. package/.next/server/chunks/6730.js +1 -0
  168. package/.next/server/chunks/6909.js +488 -0
  169. package/.next/server/chunks/7188.js +1 -0
  170. package/.next/server/chunks/7300.js +128 -0
  171. package/.next/server/chunks/7508.js +1 -0
  172. package/.next/server/chunks/7572.js +2 -0
  173. package/.next/server/chunks/8056.js +1 -0
  174. package/.next/server/chunks/8124.js +1 -0
  175. package/.next/server/chunks/8262.js +1 -0
  176. package/.next/server/chunks/8404.js +62 -0
  177. package/.next/server/chunks/8514.js +1 -0
  178. package/.next/server/chunks/8843.js +1 -0
  179. package/.next/server/chunks/9098.js +1 -0
  180. package/.next/server/chunks/9293.js +1 -0
  181. package/.next/server/chunks/9328.js +179 -0
  182. package/.next/server/chunks/94.js +1 -0
  183. package/.next/server/chunks/9579.js +1 -0
  184. package/.next/server/chunks/9631.js +16 -0
  185. package/.next/server/chunks/9692.js +6 -0
  186. package/.next/server/chunks/9739.js +108 -0
  187. package/.next/server/chunks/9803.js +22 -0
  188. package/.next/server/chunks/9835.js +1 -0
  189. package/.next/server/chunks/9842.js +1 -0
  190. package/.next/server/chunks/9861.js +128 -0
  191. package/.next/server/chunks/9995.js +1 -0
  192. package/.next/server/edge-runtime-webpack.js +2 -0
  193. package/.next/server/edge-runtime-webpack.js.map +1 -0
  194. package/.next/server/functions-config-manifest.json +21 -0
  195. package/.next/server/interception-route-rewrite-manifest.js +1 -0
  196. package/.next/server/middleware-build-manifest.js +1 -0
  197. package/.next/server/middleware-manifest.json +32 -0
  198. package/.next/server/middleware-react-loadable-manifest.js +1 -0
  199. package/.next/server/middleware.js +14 -0
  200. package/.next/server/middleware.js.map +1 -0
  201. package/.next/server/next-font-manifest.js +1 -0
  202. package/.next/server/next-font-manifest.json +1 -0
  203. package/.next/server/pages/404.html +1 -0
  204. package/.next/server/pages/500.html +1 -0
  205. package/.next/server/pages/_app.js +1 -0
  206. package/.next/server/pages/_app.js.nft.json +1 -0
  207. package/.next/server/pages/_document.js +1 -0
  208. package/.next/server/pages/_document.js.nft.json +1 -0
  209. package/.next/server/pages/_error.js +19 -0
  210. package/.next/server/pages/_error.js.nft.json +1 -0
  211. package/.next/server/pages-manifest.json +6 -0
  212. package/.next/server/server-reference-manifest.js +1 -0
  213. package/.next/server/server-reference-manifest.json +1 -0
  214. package/.next/server/webpack-runtime.js +1 -0
  215. package/.next/static/chunks/1217-407174d9b164a499.js +1 -0
  216. package/.next/static/chunks/146-ccee3b26755b68c8.js +1 -0
  217. package/.next/static/chunks/3335-5647a38ab2cfa88d.js +1 -0
  218. package/.next/static/chunks/3954-fe27ff41d9bf012d.js +1 -0
  219. package/.next/static/chunks/4108.d6ed46bc2fcab462.js +1 -0
  220. package/.next/static/chunks/4400-cdb1f7913ae34e09.js +1 -0
  221. package/.next/static/chunks/4895-712004156efeccf2.js +1 -0
  222. package/.next/static/chunks/5097-f07f6aeee3f60a33.js +1 -0
  223. package/.next/static/chunks/5235-990ba9c4c8446446.js +62 -0
  224. package/.next/static/chunks/6489-ecde2d94e57eb8a9.js +1 -0
  225. package/.next/static/chunks/6568-e4d2de23d9f8d347.js +1 -0
  226. package/.next/static/chunks/6727-d38536774bdb32d5.js +1 -0
  227. package/.next/static/chunks/6734-9d524ec49e4ba49c.js +1 -0
  228. package/.next/static/chunks/6744-dbfe3cc4ce461613.js +1 -0
  229. package/.next/static/chunks/6fe292aa-7126ff9d6732e864.js +1 -0
  230. package/.next/static/chunks/8566-5d4c89b722d9cee1.js +1 -0
  231. package/.next/static/chunks/8775-890699c74c28df61.js +1 -0
  232. package/.next/static/chunks/9045-731ff0865352dd95.js +1 -0
  233. package/.next/static/chunks/app/_not-found/page-ffead1b4e248e14d.js +1 -0
  234. package/.next/static/chunks/app/agents/[agentId]/page-0b5c2838354d0eba.js +1 -0
  235. package/.next/static/chunks/app/api/agents/[agentId]/respond/route-7e2f82a91b10b7e2.js +1 -0
  236. package/.next/static/chunks/app/api/images/[rootId]/[file]/route-7e2f82a91b10b7e2.js +1 -0
  237. package/.next/static/chunks/app/api/oauth/callback/route-7e2f82a91b10b7e2.js +1 -0
  238. package/.next/static/chunks/app/api/oauth/start/route-7e2f82a91b10b7e2.js +1 -0
  239. package/.next/static/chunks/app/api/roots/[id]/attachments/route-7e2f82a91b10b7e2.js +1 -0
  240. package/.next/static/chunks/app/api/roots/[id]/chat/[topicId]/send/route-7e2f82a91b10b7e2.js +1 -0
  241. package/.next/static/chunks/app/api/roots/[id]/chat/[topicId]/stop/route-7e2f82a91b10b7e2.js +1 -0
  242. package/.next/static/chunks/app/api/roots/[id]/chat/[topicId]/stream/route-7e2f82a91b10b7e2.js +1 -0
  243. package/.next/static/chunks/app/api/roots/[id]/dashboard/route-7e2f82a91b10b7e2.js +1 -0
  244. package/.next/static/chunks/app/api/roots/[id]/suggestions/route-7e2f82a91b10b7e2.js +1 -0
  245. package/.next/static/chunks/app/api/utilities/[scope]/[id]/bundle.js/route-7e2f82a91b10b7e2.js +1 -0
  246. package/.next/static/chunks/app/api/utilities/[scope]/[id]/host/route-7e2f82a91b10b7e2.js +1 -0
  247. package/.next/static/chunks/app/api/utilities/[scope]/[id]/host-api.mjs/route-7e2f82a91b10b7e2.js +1 -0
  248. package/.next/static/chunks/app/api/utilities/[scope]/[id]/host-ui.mjs/route-7e2f82a91b10b7e2.js +1 -0
  249. package/.next/static/chunks/app/api/utilities/[scope]/[id]/iframe/route-7e2f82a91b10b7e2.js +1 -0
  250. package/.next/static/chunks/app/api/utilities/[scope]/[id]/style.css/route-7e2f82a91b10b7e2.js +1 -0
  251. package/.next/static/chunks/app/audit/page-e3445076d462aa80.js +1 -0
  252. package/.next/static/chunks/app/layout-c7a35075cfbfa3e3.js +1 -0
  253. package/.next/static/chunks/app/onboarding/page-cde5b92b13b03c63.js +1 -0
  254. package/.next/static/chunks/app/page-ddaeffdc9a15f597.js +1 -0
  255. package/.next/static/chunks/app/roots/[id]/chat/[topicId]/page-1b55f68984817d29.js +1 -0
  256. package/.next/static/chunks/app/roots/[id]/kb/[...slug]/page-d4358cb6042740c4.js +1 -0
  257. package/.next/static/chunks/app/roots/[id]/layout-7e2f82a91b10b7e2.js +1 -0
  258. package/.next/static/chunks/app/roots/[id]/page-703d96bf8208af2f.js +1 -0
  259. package/.next/static/chunks/app/roots/[id]/workflows/[wfId]/page-738e8e4128baa722.js +1 -0
  260. package/.next/static/chunks/app/roots/[id]/workflows/page-e3445076d462aa80.js +1 -0
  261. package/.next/static/chunks/app/roots/new/page-534769dce46d0d29.js +1 -0
  262. package/.next/static/chunks/app/settings/page-86ee3d07ea1acbc7.js +1 -0
  263. package/.next/static/chunks/app/share/[id]/file/page-93e0105d7903f777.js +1 -0
  264. package/.next/static/chunks/app/share/[id]/page-5bbc8503cb9a9eeb.js +1 -0
  265. package/.next/static/chunks/app/utilities/[scope]/[id]/page-72546d245b840091.js +1 -0
  266. package/.next/static/chunks/app/utilities/page-9f949d831421d314.js +1 -0
  267. package/.next/static/chunks/framework-aaa7c1a953276299.js +1 -0
  268. package/.next/static/chunks/main-app-ebe67847147d19aa.js +1 -0
  269. package/.next/static/chunks/main-bfb98fc1d6aa1d45.js +1 -0
  270. package/.next/static/chunks/pages/_app-bf8bc157ace53d59.js +1 -0
  271. package/.next/static/chunks/pages/_error-da89ab2956f0cf38.js +1 -0
  272. package/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
  273. package/.next/static/chunks/webpack-2e8cca5826414cc6.js +1 -0
  274. package/.next/static/css/87e01f779d555d04.css +1 -0
  275. package/.next/static/p8t15rbWhT5Rrs5fOXWZ6/_buildManifest.js +1 -0
  276. package/.next/static/p8t15rbWhT5Rrs5fOXWZ6/_ssgManifest.js +1 -0
  277. package/.next/trace +46 -0
  278. package/.next/types/app/agents/[agentId]/page.ts +84 -0
  279. package/.next/types/app/api/agents/[agentId]/respond/route.ts +347 -0
  280. package/.next/types/app/api/images/[rootId]/[file]/route.ts +347 -0
  281. package/.next/types/app/api/oauth/callback/route.ts +347 -0
  282. package/.next/types/app/api/oauth/start/route.ts +347 -0
  283. package/.next/types/app/api/roots/[id]/attachments/route.ts +347 -0
  284. package/.next/types/app/api/roots/[id]/chat/[topicId]/send/route.ts +347 -0
  285. package/.next/types/app/api/roots/[id]/chat/[topicId]/stop/route.ts +347 -0
  286. package/.next/types/app/api/roots/[id]/chat/[topicId]/stream/route.ts +347 -0
  287. package/.next/types/app/api/roots/[id]/dashboard/route.ts +347 -0
  288. package/.next/types/app/api/roots/[id]/suggestions/route.ts +347 -0
  289. package/.next/types/app/api/utilities/[scope]/[id]/bundle.js/route.ts +347 -0
  290. package/.next/types/app/api/utilities/[scope]/[id]/host/route.ts +347 -0
  291. package/.next/types/app/api/utilities/[scope]/[id]/host-api.mjs/route.ts +347 -0
  292. package/.next/types/app/api/utilities/[scope]/[id]/host-ui.mjs/route.ts +347 -0
  293. package/.next/types/app/api/utilities/[scope]/[id]/iframe/route.ts +347 -0
  294. package/.next/types/app/api/utilities/[scope]/[id]/style.css/route.ts +347 -0
  295. package/.next/types/app/audit/page.ts +84 -0
  296. package/.next/types/app/onboarding/page.ts +84 -0
  297. package/.next/types/app/page.ts +84 -0
  298. package/.next/types/app/roots/[id]/chat/[topicId]/page.ts +84 -0
  299. package/.next/types/app/roots/[id]/kb/[...slug]/page.ts +84 -0
  300. package/.next/types/app/roots/[id]/layout.ts +84 -0
  301. package/.next/types/app/roots/[id]/page.ts +84 -0
  302. package/.next/types/app/roots/[id]/workflows/[wfId]/page.ts +84 -0
  303. package/.next/types/app/roots/[id]/workflows/page.ts +84 -0
  304. package/.next/types/app/roots/new/page.ts +84 -0
  305. package/.next/types/app/settings/page.ts +84 -0
  306. package/.next/types/app/share/[id]/file/page.ts +84 -0
  307. package/.next/types/app/share/[id]/page.ts +84 -0
  308. package/.next/types/app/utilities/[scope]/[id]/page.ts +84 -0
  309. package/.next/types/app/utilities/page.ts +84 -0
  310. package/.next/types/cache-life.d.ts +141 -0
  311. package/.next/types/package.json +1 -0
  312. package/.next/types/routes.d.ts +103 -0
  313. package/.next/types/validator.ts +349 -0
  314. package/README.md +72 -0
  315. package/dist/bin/cli.js +82 -0
  316. package/dist/bin/cli.js.map +1 -0
  317. package/dist/lib/reflex/agents/backend.js +14 -0
  318. package/dist/lib/reflex/agents/backend.js.map +1 -0
  319. package/dist/lib/reflex/agents/claude-code.js +48 -0
  320. package/dist/lib/reflex/agents/claude-code.js.map +1 -0
  321. package/dist/lib/reflex/agents/codex.js +46 -0
  322. package/dist/lib/reflex/agents/codex.js.map +1 -0
  323. package/dist/lib/reflex/agents/index.js +13 -0
  324. package/dist/lib/reflex/agents/index.js.map +1 -0
  325. package/dist/lib/reflex/agents/prompts.js +228 -0
  326. package/dist/lib/reflex/agents/prompts.js.map +1 -0
  327. package/dist/lib/reflex/commands/chat.js +41 -0
  328. package/dist/lib/reflex/commands/chat.js.map +1 -0
  329. package/dist/lib/reflex/commands/init.js +38 -0
  330. package/dist/lib/reflex/commands/init.js.map +1 -0
  331. package/dist/lib/reflex/commands/start.js +64 -0
  332. package/dist/lib/reflex/commands/start.js.map +1 -0
  333. package/dist/lib/reflex/commands/watch.js +137 -0
  334. package/dist/lib/reflex/commands/watch.js.map +1 -0
  335. package/dist/lib/reflex/config.js +42 -0
  336. package/dist/lib/reflex/config.js.map +1 -0
  337. package/dist/lib/reflex/ignore.js +83 -0
  338. package/dist/lib/reflex/ignore.js.map +1 -0
  339. package/dist/lib/reflex/kb.js +48 -0
  340. package/dist/lib/reflex/kb.js.map +1 -0
  341. package/dist/lib/reflex/paths.js +33 -0
  342. package/dist/lib/reflex/paths.js.map +1 -0
  343. package/dist/lib/reflex/prompts/defaults.js +363 -0
  344. package/dist/lib/reflex/prompts/defaults.js.map +1 -0
  345. package/dist/lib/reflex/prompts/render.js +14 -0
  346. package/dist/lib/reflex/prompts/render.js.map +1 -0
  347. package/dist/lib/reflex/prompts/store.js +54 -0
  348. package/dist/lib/reflex/prompts/store.js.map +1 -0
  349. package/dist/lib/reflex/walker.js +55 -0
  350. package/dist/lib/reflex/walker.js.map +1 -0
  351. package/next.config.ts +33 -0
  352. package/package.json +87 -0
  353. package/packages/utilities/learn-anything/README.md +41 -0
  354. package/packages/utilities/learn-anything/actions/_json.ts +191 -0
  355. package/packages/utilities/learn-anything/actions/_store.ts +248 -0
  356. package/packages/utilities/learn-anything/actions/buildModule.ts +487 -0
  357. package/packages/utilities/learn-anything/actions/explainSelection.ts +64 -0
  358. package/packages/utilities/learn-anything/actions/generateOutline.ts +170 -0
  359. package/packages/utilities/learn-anything/actions/generateQuiz.ts +72 -0
  360. package/packages/utilities/learn-anything/actions/generateTrainer.ts +106 -0
  361. package/packages/utilities/learn-anything/actions/refreshCourseCard.ts +76 -0
  362. package/packages/utilities/learn-anything/actions/tutorAsk.ts +93 -0
  363. package/packages/utilities/learn-anything/article-view.tsx +464 -0
  364. package/packages/utilities/learn-anything/manifest.json +42 -0
  365. package/packages/utilities/learn-anything/ui.tsx +1589 -0
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6734],{59989:(e,t,r)=>{r.d(t,{t:()=>n});var a=r(7911);let n=(0,a.createServerReference)("60a0478d75d9269f26816b1b7beebc90eff3d9187b",a.callServer,void 0,a.findSourceMapURL,"restoreWidgetAction")},68682:(e,t,r)=>{function a(e){return"".concat(e.lat,",").concat(e.lng)}function n(e){return"".concat(e.lng,",").concat(e.lat)}r.d(t,{JY:()=>l,yp:()=>s});let s=[{id:"google",label:"Google Maps",description:"Глобальный, navigation+street view. Работает везде кроме РФ-блокировок.",brand:"#4285F4",glyph:"G",urlFor:(e,t)=>"https://www.google.com/maps/dir/?api=1&destination=".concat(e,",").concat(t),routeUrlFor:e=>{if(e.length<2)return"";let t=a(e[0]),r=a(e[e.length-1]),n=e.slice(1,-1).map(a).join("|"),s=n?"&waypoints=".concat(encodeURIComponent(n)):"";return"https://www.google.com/maps/dir/?api=1&origin=".concat(t,"&destination=").concat(r).concat(s)}},{id:"yandex",label:"Яндекс.Карты",description:"СНГ, лучшая детализация по РФ и пробки в реальном времени.",brand:"#FFCC00",glyph:"Я",urlFor:(e,t)=>"https://yandex.ru/maps/?rtext=~".concat(e,",").concat(t,"&rtt=auto"),routeUrlFor:e=>"https://yandex.ru/maps/?rtext=".concat(e.map(a).join("~"),"&rtt=auto")},{id:"2gis",label:"2ГИС",description:"СНГ, точные адреса и POI. Уникальная свойственность РФ-городов.",brand:"#1BA049",glyph:"2",urlFor:(e,t)=>"https://2gis.ru/routeSearch/to/".concat(t,",").concat(e),routeUrlFor:e=>{let t=n(e[0]),r=n(e[e.length-1]),a=e.slice(1,-1).map(e=>"/via/".concat(n(e))).join("");return"https://2gis.ru/routeSearch/rsType/car/from/".concat(t).concat(a,"/to/").concat(r)}},{id:"apple",label:"Apple Maps",description:"Откроется в нативном приложении на iOS/macOS, иначе на сайте.",brand:"#1d1d1f",glyph:"A",urlFor:(e,t)=>"https://maps.apple.com/?daddr=".concat(e,",").concat(t),routeUrlFor:e=>{let t=a(e[0]),r=e.slice(1).map(e=>"+to:".concat(a(e))).join("");return"https://maps.apple.com/?saddr=".concat(t,"&daddr=").concat(t).concat(r)}},{id:"osm",label:"OpenStreetMap",description:"Открытые данные, без аккаунта. Базовая навигация.",brand:"#7EB73F",glyph:"OSM",urlFor:(e,t)=>"https://www.openstreetmap.org/directions?to=".concat(e,",").concat(t),routeUrlFor:e=>{let t=e.map(a).join(";");return"https://www.openstreetmap.org/directions?route=".concat(encodeURIComponent(t))}},{id:"waze",label:"Waze",description:"Авто-навигация с краудсорсингом пробок и предупреждений.",brand:"#33CCFF",glyph:"W",urlFor:(e,t)=>"https://waze.com/ul?ll=".concat(e,",").concat(t,"&navigate=yes"),routeUrlFor:e=>{let t=e[e.length-1];return"https://waze.com/ul?ll=".concat(t.lat,",").concat(t.lng,"&navigate=yes")}},{id:"organic",label:"Organic Maps",description:"Офлайн-карты с открытыми данными. Открывается в приложении.",brand:"#006C35",glyph:"OM",urlFor:(e,t)=>"om://map?ll=".concat(e,",").concat(t),routeUrlFor:e=>{let t=e[0],r=e[e.length-1];return"om://route?sll=".concat(t.lat,",").concat(t.lng,"&saddr=&dll=").concat(r.lat,",").concat(r.lng,"&daddr=&type=vehicle")}}],l=["google","yandex","apple","osm"]},72966:(e,t,r)=>{r.d(t,{v:()=>J});var a=r(4624),n=r(34859),s=r(99356),l=r(87738),o=r(39783),i=r(43153),c=r(13561),d=r(41695),u=r(46972),m=r(84630),p=r(96447),x=r(54207),h=r(84860),g=r(41379),f=r(3239),b=r(85253),v=r(15523),j=r(64681),y=r(54400),N=r.n(y),w=r(49623),k=r(85785),A=r(43863),C=r(57308),S=r(35285),F=r(9598),R=r(56221),z=r(68682);function E(e){let{service:t,size:r=18,className:n}=e;return(0,a.jsx)("span",{className:"inline-flex items-center justify-center rounded-[5px] font-bold leading-none text-white shrink-0 "+(null!=n?n:""),style:{background:t.brand,width:r,height:r,fontSize:Math.max(8,Math.floor(.55*r)),letterSpacing:t.glyph.length>1?"-0.05em":"0"},"aria-hidden":!0,children:t.glyph})}var M=r(7911);let O=(0,M.createServerReference)("00d2b360658c2bc95d18d02f65eb5cc6256ec86ed6",M.callServer,void 0,M.findSourceMapURL,"getEnabledMapServicesAction"),U="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css",_="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js";function T(e){let{point:t,services:r,interactive:n,onRemove:s}=e;return(0,a.jsxs)("div",{className:"flex items-center gap-1 shrink-0",children:[r.slice(0,4).map(e=>(0,a.jsx)("a",{href:e.urlFor(t.lat,t.lng),target:"_blank",rel:"noopener noreferrer",className:"rounded p-0.5 hover:ring-1 hover:ring-offset-1 hover:ring-violet-300",title:"Маршрут в ".concat(e.label),children:(0,a.jsx)(E,{service:e,size:18})},e.id)),(0,a.jsx)("button",{type:"button",onClick:()=>{navigator.clipboard.writeText("".concat(t.lat,", ").concat(t.lng)).then(()=>R.oR.success("Координаты скопированы")).catch(()=>R.oR.error("Буфер недоступен"))},className:"p-1 rounded hover:bg-accent text-muted-foreground hover:text-foreground",title:"Скопировать координаты",children:(0,a.jsx)(F.A,{className:"h-3 w-3"})}),n&&(0,a.jsx)("button",{type:"button",onClick:s,className:"p-1 rounded hover:bg-accent text-muted-foreground hover:text-destructive",title:"Удалить точку",children:(0,a.jsx)(c.A,{className:"h-3 w-3"})})]})}function I(e){let{service:t,stops:r}=e,n=t.routeUrlFor(r),s=e=>{e.preventDefault(),e.stopPropagation(),navigator.clipboard.writeText(n).then(()=>R.oR.success("Ссылка ".concat(t.label," скопирована"))).catch(()=>R.oR.error("Буфер недоступен"))};return(0,a.jsxs)("a",{href:n,target:"_blank",rel:"noopener noreferrer",onContextMenu:s,className:"inline-flex items-center gap-1 rounded border px-1.5 py-0.5 text-[11px] hover:bg-accent",title:"".concat(t.label," — клик: открыть, правый клик: скопировать ссылку"),children:[(0,a.jsx)(E,{service:t,size:16}),(0,a.jsx)("span",{className:"truncate max-w-[80px]",children:t.label}),(0,a.jsx)("button",{type:"button",onClick:s,className:"text-muted-foreground hover:text-foreground",title:"Скопировать ссылку",children:(0,a.jsx)(F.A,{className:"h-2.5 w-2.5"})})]})}var L=r(8096);let D={markdown:function(e){var t;let{data:r}=e;return(0,a.jsx)("div",{className:"text-sm",children:(0,a.jsx)(n.p,{source:null!=(t=r.body)?t:""})})},"news-list":function(e){var t;let{data:r,readonly:n,onPatch:d}=e,u=null!=(t=r.items)?t:[],[m,p]=(0,s.useState)(u),[x,h]=(0,s.useTransition)(),g=(0,s.useRef)("");(0,s.useEffect)(()=>{let e=JSON.stringify(u);e!==g.current&&(g.current=e,p(u))},[r]);let f=e=>{p(e),d&&h(async()=>{try{await d({items:e})}catch(e){}})};return 0===m.length?(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:"Список новостей пустой."}):(0,a.jsx)("ul",{className:"space-y-2",children:m.map((e,t)=>(0,a.jsxs)("li",{className:"group/row relative border-l-2 pl-2.5 py-0.5 transition ".concat(e.read?"border-muted-foreground/30 opacity-60":"border-violet-200"),children:[(0,a.jsxs)("div",{className:"flex items-start gap-1.5",children:[(0,a.jsx)(l.A,{className:"h-3 w-3 mt-1 shrink-0 ".concat(e.read?"text-muted-foreground":"text-violet-600")}),(0,a.jsxs)("div",{className:"min-w-0 flex-1 pr-12",children:[e.url?(0,a.jsxs)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:"text-sm font-medium hover:underline inline-flex items-center gap-1",children:[e.title,(0,a.jsx)(o.A,{className:"h-3 w-3 opacity-50"})]}):(0,a.jsx)("span",{className:"text-sm font-medium",children:e.title}),e.summary&&(0,a.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5 leading-relaxed",children:e.summary}),(e.source||e.date)&&(0,a.jsxs)("div",{className:"text-[10px] text-muted-foreground mt-0.5 flex gap-1.5",children:[e.source&&(0,a.jsx)("span",{children:e.source}),e.source&&e.date&&(0,a.jsx)("span",{children:"\xb7"}),e.date&&(0,a.jsx)("span",{className:"font-mono",children:e.date})]})]})]}),!n&&(0,a.jsxs)("div",{className:"absolute top-0 right-0 flex items-center gap-0.5 opacity-0 group-hover/row:opacity-100 transition-opacity",children:[(0,a.jsx)("button",{type:"button",onClick:()=>{!n&&f(m.map((e,r)=>r===t?{...e,read:!e.read}:e))},disabled:x,"aria-label":e.read?"Отметить непрочитанным":"Отметить прочитанным",title:e.read?"Отметить непрочитанным":"Прочитано",className:"p-1 rounded hover:bg-emerald-100 dark:hover:bg-emerald-950/40 text-muted-foreground hover:text-emerald-600 disabled:opacity-30",children:(0,a.jsx)(i.A,{className:"h-3 w-3"})}),(0,a.jsx)("button",{type:"button",onClick:()=>{!n&&f(m.filter((e,r)=>r!==t))},disabled:x,"aria-label":"Убрать новость",title:"Убрать",className:"p-1 rounded hover:bg-destructive/15 text-muted-foreground hover:text-destructive disabled:opacity-30",children:(0,a.jsx)(c.A,{className:"h-3 w-3"})})]})]},t))})},"link-list":function(e){var t;let{data:r,readonly:n,onPatch:l}=e,i=null!=(t=r.items)?t:[],[c,m]=(0,s.useState)(i),[p,x]=(0,s.useTransition)(),h=(0,s.useRef)("");return((0,s.useEffect)(()=>{let e=JSON.stringify(i);e!==h.current&&(h.current=e,m(i))},[r]),0===c.length)?(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:"Нет ссылок."}):(0,a.jsx)("ul",{className:"space-y-0.5",children:c.map((e,t)=>(0,a.jsxs)("li",{className:"group/row relative",children:[(0,a.jsxs)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:"flex items-start gap-1.5 rounded-md px-2 py-1.5 hover:bg-accent/40 transition",children:[(0,a.jsx)(d.A,{className:"h-3 w-3 mt-1 shrink-0 text-sky-600"}),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsxs)("div",{className:"text-sm font-medium hover:underline inline-flex items-center gap-1",children:[e.title,(0,a.jsx)(o.A,{className:"h-3 w-3 opacity-50"})]}),e.hint&&(0,a.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5 leading-relaxed",children:e.hint}),(0,a.jsx)("div",{className:"text-[10px] text-muted-foreground truncate font-mono mt-0.5",children:e.url})]})]}),!n&&(0,a.jsx)("button",{type:"button",onClick:()=>(e=>{if(!n){var t;m(t=c.filter((t,r)=>r!==e)),l&&x(async()=>{try{await l({items:t})}catch(e){}})}})(t),disabled:p,"aria-label":"Удалить ссылку",className:"absolute top-1.5 right-1.5 opacity-0 group-hover/row:opacity-100 transition-opacity p-1 rounded hover:bg-destructive/15 text-muted-foreground hover:text-destructive disabled:opacity-30",children:(0,a.jsx)(u.A,{className:"h-3 w-3"})})]},t))})},kpi:function(e){var t;let{data:r}=e,n=null!=(t=r.items)?t:[];if(0===n.length)return(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:"Нет показателей."});let s=Math.min(n.length,3);return(0,a.jsx)("div",{className:"grid gap-2",style:{gridTemplateColumns:"repeat(".concat(s,", minmax(0,1fr))")},children:n.map((e,t)=>(0,a.jsxs)("div",{className:"rounded-md border bg-card px-3 py-2 flex flex-col gap-0.5",children:[(0,a.jsx)("div",{className:"text-[10px] uppercase tracking-wider text-muted-foreground",children:e.label}),(0,a.jsxs)("div",{className:"flex items-baseline gap-1",children:[(0,a.jsx)("span",{className:"text-lg font-semibold tabular-nums",children:e.value}),"up"===e.delta&&(0,a.jsx)(m.A,{className:"h-3.5 w-3.5 text-emerald-600"}),"down"===e.delta&&(0,a.jsx)(p.A,{className:"h-3.5 w-3.5 text-rose-600"}),"flat"===e.delta&&(0,a.jsx)(x.A,{className:"h-3.5 w-3.5 text-muted-foreground"})]}),e.hint&&(0,a.jsx)("div",{className:"text-[10px] text-muted-foreground leading-snug",children:e.hint})]},t))})},checklist:function(e){var t;let{data:r,readonly:n,onPatch:l}=e,o=null!=(t=r.items)?t:[],[c,d]=(0,s.useState)(o),[m,p]=(0,s.useTransition)(),[x,j]=(0,s.useState)(""),y=(0,s.useRef)("");(0,s.useEffect)(()=>{let e=JSON.stringify(o);e!==y.current&&(y.current=e,d(o))},[r]);let N=e=>{d(e),l&&p(async()=>{try{await l({items:e})}catch(e){}})},w=e=>{n||N(c.map((t,r)=>r===e?{...t,done:!t.done}:t))};return 0===c.length&&n?(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:"Список пустой."}):(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsx)("ul",{className:"space-y-0.5",children:c.map((e,t)=>(0,a.jsxs)("li",{className:"group/row flex items-start gap-2 text-sm py-0.5 rounded hover:bg-accent/30 px-1 -mx-1 ".concat(e.done?"text-muted-foreground":""),children:[(0,a.jsx)("button",{type:"button",onClick:()=>w(t),disabled:n||m,"aria-label":e.done?"Снять отметку":"Отметить выполненным",className:"shrink-0 mt-0.5 disabled:opacity-50",children:e.done?(0,a.jsx)(i.A,{className:"h-3.5 w-3.5 text-emerald-600"}):(0,a.jsx)(h.A,{className:"h-3.5 w-3.5 text-muted-foreground/60 hover:text-foreground"})}),(0,a.jsx)("span",{className:"flex-1 min-w-0 break-words ".concat(e.done?"line-through":""),onClick:()=>w(t),style:n?{}:{cursor:"pointer"},children:e.text}),!n&&(0,a.jsx)("button",{type:"button",onClick:()=>{!n&&N(c.filter((e,r)=>r!==t))},disabled:m,"aria-label":"Удалить пункт",className:"opacity-0 group-hover/row:opacity-100 transition-opacity shrink-0 p-0.5 text-muted-foreground hover:text-destructive disabled:opacity-30",children:(0,a.jsx)(u.A,{className:"h-3 w-3"})})]},t))}),!n&&(0,a.jsxs)("form",{className:"flex items-center gap-1 pt-1",onSubmit:e=>{e.preventDefault(),(()=>{if(n)return;let e=x.trim();e&&(N([...c,{text:e,done:!1}]),j(""))})()},children:[(0,a.jsx)(g.A,{className:"h-3 w-3 text-muted-foreground shrink-0"}),(0,a.jsx)(v.p,{value:x,onChange:e=>j(e.target.value),placeholder:"Новый пункт…",className:"h-7 text-xs flex-1 border-0 shadow-none focus-visible:ring-0 focus-visible:ring-offset-0 px-1",disabled:m}),x.trim()&&(0,a.jsx)(b.$,{type:"submit",size:"sm",variant:"ghost",className:"h-6 text-[10px] px-1.5",disabled:m,children:m?(0,a.jsx)(f.A,{className:"h-3 w-3 animate-spin"}):"Добавить"})]})]})},quote:function(e){let{data:t}=e;return(null==t?void 0:t.text)?(0,a.jsxs)("figure",{className:"relative pl-6",children:[(0,a.jsx)(j.A,{className:"h-5 w-5 absolute left-0 top-0 text-violet-300"}),(0,a.jsx)("blockquote",{className:"text-sm italic leading-relaxed",children:t.text}),t.attribution&&(0,a.jsxs)("figcaption",{className:"text-xs text-muted-foreground mt-1.5",children:["— ",t.attribution]})]}):(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:"Цитата не задана."})},"kb-pinned":function(e){var t;let{rootId:r,data:n,readonly:l,onPatch:o}=e,i=null!=(t=n.items)?t:[],[d,u]=(0,s.useState)(i),[m,p]=(0,s.useTransition)(),x=(0,s.useRef)("");return((0,s.useEffect)(()=>{let e=JSON.stringify(i);e!==x.current&&(x.current=e,u(i))},[n]),0===d.length)?(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:"Нет закреплённых файлов."}):(0,a.jsx)("ul",{className:"space-y-1",children:d.map((e,t)=>{var n;let s=e.rel.split("/").map(encodeURIComponent).join("/");return(0,a.jsxs)("li",{className:"group/row relative",children:[(0,a.jsxs)(N(),{href:"/roots/".concat(r,"/kb/").concat(s),className:"flex items-start gap-2 rounded-md px-2 py-1.5 hover:bg-accent/40 transition pr-7",children:[(0,a.jsx)(w.A,{className:"h-3 w-3 mt-0.5 shrink-0 text-emerald-700"}),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)("div",{className:"text-sm font-medium truncate",children:null!=(n=e.title)?n:e.rel}),e.snippet&&(0,a.jsx)("p",{className:"text-xs text-muted-foreground line-clamp-2 leading-relaxed mt-0.5",children:e.snippet}),(0,a.jsx)("div",{className:"text-[10px] text-muted-foreground font-mono mt-0.5 truncate",children:e.rel})]})]}),!l&&(0,a.jsx)("button",{type:"button",onClick:()=>(e=>{if(!l){var t;u(t=d.filter((t,r)=>r!==e)),o&&p(async()=>{try{await o({items:t})}catch(e){}})}})(t),disabled:m,"aria-label":"Открепить",title:"Открепить",className:"absolute top-1.5 right-1.5 opacity-0 group-hover/row:opacity-100 transition-opacity p-1 rounded hover:bg-destructive/15 text-muted-foreground hover:text-destructive disabled:opacity-30",children:(0,a.jsx)(c.A,{className:"h-3 w-3"})})]},t)})})},progress:function(e){var t;let{data:r,readonly:n,onPatch:l}=e,o=null!=(t=r.items)?t:[],[i,c]=(0,s.useState)(o),[d,u]=(0,s.useTransition)(),m=(0,s.useRef)("");(0,s.useEffect)(()=>{let e=JSON.stringify(o);e!==m.current&&(m.current=e,c(o))},[r]);let p=(e,t)=>{if(!n){var r;c(r=i.map((r,a)=>a===e?{...r,current:Math.max(0,r.current+t)}:r)),l&&u(async()=>{try{await l({items:r})}catch(e){}})}};return 0===i.length?(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:"Нет целей."}):(0,a.jsx)("ul",{className:"space-y-2.5",children:i.map((e,t)=>{let r=e.target>0?Math.max(0,Math.min(100,e.current/e.target*100)):0;return(0,a.jsxs)("li",{className:"space-y-1 group/row",children:[(0,a.jsxs)("div",{className:"flex items-baseline justify-between gap-2 text-sm",children:[(0,a.jsx)("span",{className:"truncate flex-1 min-w-0",children:e.label}),!n&&(0,a.jsxs)("div",{className:"flex items-center gap-0.5 opacity-0 group-hover/row:opacity-100 transition-opacity shrink-0",children:[(0,a.jsx)("button",{type:"button",onClick:()=>p(t,-1),disabled:d||e.current<=0,"aria-label":"−1",className:"p-0.5 rounded hover:bg-accent text-muted-foreground hover:text-foreground disabled:opacity-30",children:(0,a.jsx)(k.A,{className:"h-3 w-3"})}),(0,a.jsx)("button",{type:"button",onClick:()=>p(t,1),disabled:d,"aria-label":"+1",className:"p-0.5 rounded hover:bg-accent text-muted-foreground hover:text-foreground disabled:opacity-30",children:(0,a.jsx)(g.A,{className:"h-3 w-3"})})]}),(0,a.jsxs)("span",{className:"text-xs text-muted-foreground tabular-nums shrink-0",children:[e.current," / ",e.target,e.unit?" ".concat(e.unit):""]})]}),(0,a.jsx)("div",{className:"h-1.5 rounded-full bg-muted overflow-hidden",children:(0,a.jsx)("div",{className:"h-full bg-violet-600 transition-all",style:{width:"".concat(r,"%")}})})]},t)})})},image:function(e){var t;let{data:r}=e;return(null==r?void 0:r.url)?(0,a.jsxs)("figure",{className:"space-y-1",children:[(0,a.jsx)("img",{src:r.url,alt:null!=(t=r.alt)?t:"",className:"rounded-md w-full h-auto border",loading:"lazy"}),r.caption&&(0,a.jsx)("figcaption",{className:"text-xs text-muted-foreground text-center",children:r.caption})]}):(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:"Картинка не задана."})},"stat-table":function(e){var t;let{data:r}=e,n=null!=(t=r.rows)?t:[];return 0===n.length?(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:"Таблица пустая."}):(0,a.jsx)("div",{className:"overflow-x-auto -mx-1",children:(0,a.jsxs)("table",{className:"w-full text-sm",children:[r.columns&&r.columns.length>0&&(0,a.jsx)("thead",{children:(0,a.jsx)("tr",{className:"border-b",children:r.columns.map((e,t)=>(0,a.jsx)("th",{className:"text-left text-[10px] uppercase tracking-wider text-muted-foreground font-medium px-1.5 py-1.5",children:e},t))})}),(0,a.jsx)("tbody",{children:n.map((e,t)=>(0,a.jsx)("tr",{className:"border-b border-dashed last:border-b-0 hover:bg-accent/30",children:e.map((e,t)=>(0,a.jsx)("td",{className:"px-1.5 py-1.5 align-top",children:e},t))},t))})]})})},map:function(e){var t,r,n;let{data:l,readonly:o,onPatch:i}=e,d=(0,s.useRef)(null),m=(0,s.useRef)(null),[p,x]=(0,s.useState)(!1),[h,b]=(0,s.useState)(z.JY),[v,j]=(0,s.useState)(""),[y,N]=(0,s.useState)(!1),[w,k]=(0,s.useState)([]),[F,E]=(0,s.useState)(!1),[M,L]=(0,s.useState)([]),D=null!=(r=l.points)?r:[],J=null!=(n=null==(t=l.route)?void 0:t.stops)?n:[],q=F?M:J,B=(0,s.useMemo)(()=>q.map(e=>D[e]).filter(e=>!!e).map(e=>({lat:e.lat,lng:e.lng})),[q,D]),P=(0,s.useMemo)(()=>z.yp.filter(e=>h.includes(e.id)),[h]);(0,s.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await O();!e&&t.ok&&b(t.enabled)}catch(e){}})(),()=>{e=!0}},[]),(0,s.useEffect)(()=>{if(window.L)return void x(!0);if(!document.querySelector('link[href="'.concat(U,'"]'))){let e=document.createElement("link");e.rel="stylesheet",e.href=U,document.head.appendChild(e)}let e=document.querySelector('script[src="'.concat(_,'"]'));if(e){e.addEventListener("load",()=>x(!0)),window.L&&x(!0);return}let t=document.createElement("script");t.src=_,t.async=!0,t.onload=()=>x(!0),t.onerror=()=>R.oR.error("Не удалось загрузить Leaflet с CDN (проверь интернет)"),document.head.appendChild(t)},[]),(0,s.useEffect)(()=>{var e,t,r;if(!p||!d.current)return;let a=window.L;if(!a||(m.current&&(m.current.remove(),m.current=null),0===D.length))return;let n=a.map(d.current,{scrollWheelZoom:!1,zoomControl:!0});m.current=n,a.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",{attribution:'&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors',maxZoom:19}).addTo(n);let s=D.map((e,t)=>{let r=q.includes(t),s=function(e,t){let r=e=>e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;"),a=t.map(t=>{let a=t.urlFor(e.lat,e.lng);return'<a href="'.concat(r(a),'" target="_blank" rel="noopener noreferrer" ')+'title="'.concat(r(t.label),'" ')+'style="display:inline-flex;align-items:center;gap:4px;margin:2px 4px 2px 0;padding:2px 6px;border-radius:5px;border:1px solid #e5e7eb;text-decoration:none;font-size:11px;color:#111;background:#fff;">'+'<span style="display:inline-block;width:14px;height:14px;border-radius:3px;background:'.concat(t.brand,";")+"color:#fff;font-size:9px;font-weight:700;line-height:14px;text-align:center;"+"letter-spacing:".concat(t.glyph.length>1?"-0.05em":"0",'">').concat(r(t.glyph),"</span>")+"<span>".concat(r(t.label),"</span>")+"</a>"}).join("");return['<div style="font-family:inherit;min-width:200px">','<div style="font-weight:600;font-size:13px;margin-bottom:2px">'.concat(r(e.title),"</div>"),e.description?'<div style="font-size:12px;color:#666;margin-bottom:6px">'.concat(r(e.description),"</div>"):"",'<div style="font-family:monospace;font-size:10px;color:#888;margin-bottom:6px">'.concat(e.lat.toFixed(5),", ").concat(e.lng.toFixed(5),"</div>"),t.length>0?'<div style="font-size:10px;color:#888;text-transform:uppercase;letter-spacing:0.5px;margin-bottom:2px">Открыть в</div>'.concat(a):"",'<div style="margin-top:6px"><button type="button" data-reflex-copy="'.concat(e.lat,", ").concat(e.lng,'" style="font-size:11px;padding:2px 8px;border:1px solid #ddd;border-radius:4px;background:#fff;cursor:pointer">\uD83D\uDCCB Скопировать координаты</button></div>'),"</div>"].filter(Boolean).join("")}(e,P),l=a.marker([e.lat,e.lng],{opacity:F&&!r?.55:1}).addTo(n);return l.bindPopup(s,{maxWidth:280}),l.on("click",()=>{F&&L(e=>e.includes(t)?e.filter(e=>e!==t):[...e,t])}),l});B.length>=2&&a.polyline(B.map(e=>[e.lat,e.lng]),{color:null!=(t=null==(e=l.route)?void 0:e.color)?t:"#7c3aed",weight:4,opacity:.85,dashArray:F?"6,6":void 0}).addTo(n);let o=e=>{let t=e.target.closest("[data-reflex-copy]");if(t){let r=t.getAttribute("data-reflex-copy");r&&navigator.clipboard.writeText(r).then(()=>R.oR.success("Скопировано")).catch(()=>R.oR.error("Буфер недоступен")),e.preventDefault()}};if(d.current.addEventListener("click",o),l.center&&"number"==typeof l.zoom)n.setView([l.center.lat,l.center.lng],l.zoom);else if(1===D.length)n.setView([D[0].lat,D[0].lng],null!=(r=l.zoom)?r:12);else{let e=a.featureGroup(s);n.fitBounds(e.getBounds().pad(.2))}return()=>{var e;null==(e=d.current)||e.removeEventListener("click",o),n.remove(),m.current=null}},[p,l,h.join("|"),F,M.join(",")]);let W=!o&&!!i,G=async()=>{let e=v.trim();if(e){N(!0),k([]);try{let t="".concat("https://nominatim.openstreetmap.org/search","?q=").concat(encodeURIComponent(e),"&format=json&limit=6"),r=await fetch(t,{headers:{Accept:"application/json"}});if(!r.ok)throw Error("status ".concat(r.status));let a=await r.json();k(a),0===a.length&&R.oR.message("Ничего не найдено")}catch(e){R.oR.error("Поиск не работает: "+(e instanceof Error?e.message:String(e)))}finally{N(!1)}}},V=async e=>{var t;if(!W)return;let r=Number(e.lat),a=Number(e.lon);if(!Number.isFinite(r)||!Number.isFinite(a))return void R.oR.error("Неверные координаты в результате");let n=(null==(t=e.display_name.split(",")[0])?void 0:t.trim())||e.display_name.slice(0,60),s={...l,points:[...D,{lat:r,lng:a,title:n,description:e.display_name}]};k([]),j(""),await (null==i?void 0:i(s))},Y=async e=>{var t,r;if(!W)return;let a=D.filter((t,r)=>r!==e),n=l.route;if(null==(r=l.route)||null==(t=r.stops)?void 0:t.length){let t=l.route.stops.filter(t=>t!==e).map(t=>t>e?t-1:t);n=t.length>=2?{...l.route,stops:t}:void 0}let s={...l,points:a,...n?{route:n}:{route:void 0}};await (null==i?void 0:i(s))},Z=async()=>{if(!W)return;let e={...l,route:void 0};await (null==i?void 0:i(e)),E(!1),L([])},K=async()=>{var e;if(!W)return;if(M.length<2)return void R.oR.error("В маршруте нужно минимум 2 точки");let t={...l,route:{...null!=(e=l.route)?e:{},stops:M}};await (null==i?void 0:i(t)),E(!1)};return 0!==D.length||W?(0,a.jsxs)("div",{className:"space-y-2",children:[W&&(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,a.jsxs)("div",{className:"relative flex-1",children:[(0,a.jsx)(A.A,{className:"absolute left-2 top-1/2 -translate-y-1/2 h-3 w-3 text-muted-foreground pointer-events-none"}),(0,a.jsx)("input",{type:"search",value:v,onChange:e=>j(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),G())},placeholder:"Найти место (адрес, POI)…",className:"w-full rounded border bg-background pl-7 pr-2 py-1 text-xs focus:outline-none focus:ring-1 focus:ring-violet-400"})]}),(0,a.jsxs)("button",{type:"button",onClick:()=>void G(),disabled:y||!v.trim(),className:"rounded border px-2 py-1 text-xs hover:bg-accent disabled:opacity-50 inline-flex items-center gap-1",children:[y?(0,a.jsx)(f.A,{className:"h-3 w-3 animate-spin"}):(0,a.jsx)(A.A,{className:"h-3 w-3"}),"Поиск"]}),F?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("button",{type:"button",onClick:()=>void K(),className:"rounded px-2 py-1 text-xs bg-violet-600 text-white hover:bg-violet-700 inline-flex items-center gap-1",title:"Сохранить маршрут",children:[(0,a.jsx)(C.A,{className:"h-3 w-3"})," Сохранить"]}),(0,a.jsx)("button",{type:"button",onClick:()=>{E(!1),L([])},className:"rounded border px-2 py-1 text-xs hover:bg-accent inline-flex items-center gap-1",title:"Отменить",children:(0,a.jsx)(c.A,{className:"h-3 w-3"})})]}):(0,a.jsxs)("button",{type:"button",onClick:()=>{L(J),E(!0)},disabled:D.length<2,className:"rounded border px-2 py-1 text-xs hover:bg-accent disabled:opacity-50 inline-flex items-center gap-1",title:"Собрать маршрут по точкам",children:[(0,a.jsx)(C.A,{className:"h-3 w-3"}),(J.length,"Маршрут")]})]}),w.length>0&&(0,a.jsx)("ul",{className:"rounded border bg-card divide-y text-xs max-h-44 overflow-y-auto",children:w.map((e,t)=>(0,a.jsx)("li",{children:(0,a.jsxs)("button",{type:"button",onClick:()=>void V(e),className:"w-full text-left flex items-start gap-2 px-2 py-1.5 hover:bg-accent",children:[(0,a.jsx)(g.A,{className:"h-3 w-3 mt-0.5 text-emerald-700 shrink-0"}),(0,a.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,a.jsx)("span",{className:"block font-medium truncate",children:e.display_name.split(",")[0]}),(0,a.jsx)("span",{className:"block text-[10px] text-muted-foreground truncate",children:e.display_name})]})]})},t))}),F&&(0,a.jsxs)("div",{className:"rounded border border-violet-200 bg-violet-50 dark:bg-violet-950/30 dark:border-violet-900/50 px-2 py-1.5 text-[11px] text-violet-900 dark:text-violet-200",children:["Тыкай точки на карте или в списке ниже — добавятся в маршрут (",(0,a.jsx)("strong",{children:M.length})," уже). Повторный клик — убрать."]})]}),(0,a.jsx)("div",{ref:d,className:"rounded-md border overflow-hidden bg-muted/30",style:{height:280}}),!F&&B.length>=2&&P.length>0&&(0,a.jsx)("div",{className:"rounded border bg-card px-2 py-1.5",children:(0,a.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,a.jsxs)("span",{className:"inline-flex items-center gap-1 text-[11px] font-medium",children:[(0,a.jsx)(C.A,{className:"h-3 w-3 text-violet-600"}),"Маршрут (",B.length," точки):"]}),P.map(e=>(0,a.jsx)(I,{service:e,stops:B},e.id)),W&&(0,a.jsxs)("button",{type:"button",onClick:()=>void Z(),className:"ml-auto text-[10px] text-muted-foreground hover:text-destructive inline-flex items-center gap-0.5",title:"Удалить маршрут",children:[(0,a.jsx)(u.A,{className:"h-3 w-3"}),"Удалить"]})]})}),(0,a.jsx)("ul",{className:"space-y-1",children:D.map((e,t)=>{let r=q.indexOf(t);return(0,a.jsxs)("li",{className:"flex items-start gap-2 rounded-md border bg-card px-2 py-1.5 text-xs "+(F&&r>=0?"ring-1 ring-violet-400 border-violet-300":""),children:[F?(0,a.jsx)("button",{type:"button",onClick:()=>L(e=>e.includes(t)?e.filter(e=>e!==t):[...e,t]),className:"h-5 w-5 mt-0.5 shrink-0 rounded-full border text-[10px] font-mono inline-flex items-center justify-center "+(r>=0?"bg-violet-600 text-white border-violet-600":"bg-card text-muted-foreground"),title:r>=0?"Убрать из маршрута":"Добавить в маршрут",children:r>=0?r+1:"+"}):(0,a.jsx)(S.A,{className:"h-3 w-3 mt-1 shrink-0 "+(J.includes(t)?"text-violet-600":"text-emerald-700")}),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)("div",{className:"font-medium truncate",children:e.title}),e.description&&(0,a.jsx)("p",{className:"text-muted-foreground leading-snug mt-0.5 line-clamp-2",children:e.description}),(0,a.jsxs)("div",{className:"text-[10px] text-muted-foreground/80 font-mono mt-0.5",children:[e.lat.toFixed(5),", ",e.lng.toFixed(5)]})]}),(0,a.jsx)(T,{point:e,services:P,interactive:W,onRemove:()=>void Y(t)})]},t)})})]}):(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:"Точек нет — попроси агента добавить через widget-update."})},"utility-card":function(e){let{rootId:t,data:r,readonly:n}=e,s="project"===r.utilityScope?"/utilities/project/".concat(r.utilityId,"?rootId=").concat(encodeURIComponent(t)):"/utilities/global/".concat(r.utilityId);return(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1.5 text-[10px] uppercase tracking-wider text-muted-foreground",children:[(0,a.jsx)(L.A,{className:"h-3 w-3 text-violet-600"}),(0,a.jsx)("span",{children:"Мини-приложение"}),(0,a.jsx)("span",{className:"font-mono normal-case tracking-normal text-muted-foreground/80",children:r.utilityId}),(0,a.jsxs)(N(),{href:s,className:"ml-auto inline-flex items-center gap-0.5 text-[10px] text-violet-700 hover:underline normal-case tracking-normal",title:"Открыть полную версию",children:["Открыть",(0,a.jsx)(o.A,{className:"h-2.5 w-2.5"})]})]}),r.inner.title&&(0,a.jsx)("h4",{className:"text-sm font-medium",children:r.inner.title}),r.inner.description&&(0,a.jsx)("p",{className:"text-xs text-muted-foreground -mt-1",children:r.inner.description}),(0,a.jsx)("div",{children:J(t,r.inner.kind,r.inner.data,{readonly:!0})})]})}};function J(e,t,r,n){var s;let l=D[t];return l?(0,a.jsx)(l,{rootId:e,data:r,readonly:null!=(s=null==n?void 0:n.readonly)&&s,onPatch:null==n?void 0:n.onPatch}):(0,a.jsxs)("p",{className:"text-xs text-destructive",children:["Неизвестный вид виджета: ",(0,a.jsx)("code",{className:"font-mono",children:t})]})}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6744],{2285:(e,t,a)=>{a.d(t,{InsertImageButton:()=>C});var r=a(4624),s=a(99356),n=a(69285),l=a(39160),i=a(85253),o=a(13561),c=a(8096),d=a(43863),u=a(23262),x=a(56221),h=a(15523),m=a(71651),p=a(78825),b=a(22841),g=a(49881),f=a(80192),v=a(43504),j=a(7911);let y=(0,j.createServerReference)("40a53333ef77b210d862245d73a76338db8916f65d",j.callServer,void 0,j.findSourceMapURL,"generateAction"),k=(0,j.createServerReference)("40520afdf05c052a0d9150d0e1bd17e823d7a24310",j.callServer,void 0,j.findSourceMapURL,"searchAction"),w=(0,j.createServerReference)("4052e2de29b5cf1b17e60fc810d6d98790e5e84554",j.callServer,void 0,j.findSourceMapURL,"attachAction"),N=(0,j.createServerReference)("40293fb63a31f369ce72ce8c6761e38e226a29b8ad",j.callServer,void 0,j.findSourceMapURL,"uploadAction"),S=["1:1","16:9","9:16","4:3","3:4","21:9"];function R(e){let{rootId:t,open:a,onOpenChange:n,onInsert:j}=e,[R,C]=(0,s.useState)(""),[z,A]=(0,s.useState)("gemini"),[P,I]=(0,s.useState)("1:1"),[T,U]=(0,s.useState)(!0),[_,B]=(0,s.useState)(null),[L,E]=(0,s.useTransition)(),[K,$]=(0,s.useState)(""),[F,M]=(0,s.useState)("unsplash"),[V,q]=(0,s.useState)([]),[J,X]=(0,s.useTransition)(),[O,D]=(0,s.useState)(null),[Z,G]=(0,s.useState)(!0),[H,Q]=(0,s.useState)(""),[W,Y]=(0,s.useState)(!0),[ee,et]=(0,s.useTransition)();if((0,s.useEffect)(()=>{if(!a)return;let e=e=>{"Escape"===e.key&&n(!1)};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[a,n]),!a)return null;let ea=()=>{K.trim()&&(q([]),X(async()=>{let e=await k({rootId:t,query:K.trim(),provider:F,count:12});if(!e.ok)return void x.oR.error(e.error);q(e.results)}))};return(0,r.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",onClick:e=>{e.target===e.currentTarget&&n(!1)},children:[(0,r.jsx)("div",{"aria-hidden":!0,className:"absolute inset-0 bg-background/80 backdrop-blur-sm",onClick:()=>n(!1)}),(0,r.jsxs)("div",{className:"relative bg-card border rounded-lg shadow-xl w-full max-w-3xl max-h-[85vh] flex flex-col",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 px-4 py-3 border-b",children:[(0,r.jsx)(l.A,{className:"h-4 w-4 text-violet-600"}),(0,r.jsx)("h2",{className:"text-sm font-medium flex-1",children:"Картинка в KB"}),(0,r.jsx)(i.$,{type:"button",size:"icon",variant:"ghost",className:"h-7 w-7",onClick:()=>n(!1),children:(0,r.jsx)(o.A,{className:"h-4 w-4"})})]}),(0,r.jsxs)(g.tU,{defaultValue:"generate",className:"flex-1 min-h-0 flex flex-col",children:[(0,r.jsxs)(g.j7,{className:"mx-4 mt-3 self-start",children:[(0,r.jsxs)(g.Xi,{value:"generate",children:[(0,r.jsx)(c.A,{className:"mr-1 h-3.5 w-3.5"})," Сгенерировать"]}),(0,r.jsxs)(g.Xi,{value:"search",children:[(0,r.jsx)(d.A,{className:"mr-1 h-3.5 w-3.5"})," Найти"]}),(0,r.jsxs)(g.Xi,{value:"upload",children:[(0,r.jsx)(u.A,{className:"mr-1 h-3.5 w-3.5"})," Загрузить"]})]}),(0,r.jsxs)(f.F,{className:"flex-1 min-h-0",children:[(0,r.jsxs)(g.av,{value:"generate",className:"px-4 py-4 space-y-3",children:[(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)(p.J,{htmlFor:"img-prompt",children:"Промпт"}),(0,r.jsx)(m.T,{id:"img-prompt",value:R,onChange:e=>C(e.target.value),placeholder:"Подробное описание: стиль, композиция, освещение...",rows:4})]}),(0,r.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)(p.J,{children:"Провайдер"}),(0,r.jsxs)(b.l6,{value:z,onValueChange:e=>A(e),children:[(0,r.jsx)(b.bq,{children:(0,r.jsx)(b.yv,{})}),(0,r.jsxs)(b.gC,{children:[(0,r.jsx)(b.eb,{value:"gemini",children:"Gemini Nano Banana"}),(0,r.jsx)(b.eb,{value:"codex",children:"Codex $imagegen"})]})]})]}),(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)(p.J,{children:"Соотношение"}),(0,r.jsxs)(b.l6,{value:P,onValueChange:I,children:[(0,r.jsx)(b.bq,{children:(0,r.jsx)(b.yv,{})}),(0,r.jsx)(b.gC,{children:S.map(e=>(0,r.jsx)(b.eb,{value:e,children:e},e))})]})]})]}),(0,r.jsxs)("label",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,r.jsx)("input",{type:"checkbox",checked:T,onChange:e=>U(e.target.checked)}),"Сохранить как отдельную запись в KB (kind: image)"]}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(i.$,{type:"button",size:"sm",onClick:()=>{R.trim()&&(B(null),E(async()=>{let e=await y({rootId:t,prompt:R.trim(),provider:z,aspectRatio:P,attachToKb:T});if(!e.ok)return void x.oR.error(e.error);B({url:e.url,markdown:e.markdown,...e.kbRelPath?{kbRelPath:e.kbRelPath}:{}})}))},disabled:L||!R.trim(),children:L?"Генерирую...":"Сгенерировать"}),L&&(0,r.jsx)("span",{className:"text-xs text-muted-foreground",children:"Может занять до минуты"})]}),L?(0,r.jsx)(v.E,{className:"h-64 w-full"}):_?(0,r.jsxs)("div",{className:"space-y-2 border rounded p-3",children:[(0,r.jsx)("img",{src:_.url,alt:R,className:"max-h-80 mx-auto rounded"}),(0,r.jsxs)("div",{className:"flex gap-2 justify-end",children:[(0,r.jsx)(i.$,{type:"button",size:"sm",variant:"outline",onClick:()=>B(null),children:"Ещё раз"}),(0,r.jsx)(i.$,{type:"button",size:"sm",onClick:()=>{_&&(null==j||j(_),x.oR.success(_.kbRelPath?"Сохранено в KB: ".concat(_.kbRelPath):"Картинка готова"),n(!1))},children:"Вставить"})]})]}):null]}),(0,r.jsxs)(g.av,{value:"search",className:"px-4 py-4 space-y-3",children:[(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(h.p,{value:K,onChange:e=>$(e.target.value),placeholder:"например: mountains sunrise",onKeyDown:e=>{"Enter"===e.key&&ea()}}),(0,r.jsxs)(b.l6,{value:F,onValueChange:e=>M(e),children:[(0,r.jsx)(b.bq,{className:"w-36",children:(0,r.jsx)(b.yv,{})}),(0,r.jsxs)(b.gC,{children:[(0,r.jsx)(b.eb,{value:"unsplash",children:"Unsplash"}),(0,r.jsx)(b.eb,{value:"pexels",children:"Pexels"}),(0,r.jsx)(b.eb,{value:"brave",children:"Brave (весь веб)"})]})]}),(0,r.jsx)(i.$,{type:"button",size:"sm",onClick:ea,disabled:J||!K.trim(),children:"Найти"})]}),(0,r.jsxs)("label",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,r.jsx)("input",{type:"checkbox",checked:Z,onChange:e=>G(e.target.checked)}),"Сохранить как отдельную запись в KB (kind: image)"]}),J&&0===V.length?(0,r.jsx)("div",{className:"grid grid-cols-3 gap-2",children:Array.from({length:6}).map((e,t)=>(0,r.jsx)(v.E,{className:"h-32 w-full"},t))}):V.length>0?(0,r.jsx)("div",{className:"grid grid-cols-3 gap-2",children:V.map(e=>(0,r.jsxs)("button",{type:"button",disabled:null!==O,onClick:()=>{D(e.url),X(async()=>{let a=await w({rootId:t,sourceUrl:e.url,alt:K.trim()||"image",attribution:e.attribution,attachToKb:Z});if(D(null),!a.ok)return void x.oR.error(a.error);null==j||j({url:a.url,markdown:a.markdown,...a.kbRelPath?{kbRelPath:a.kbRelPath}:{}}),x.oR.success(a.kbRelPath?"Сохранено в KB: ".concat(a.kbRelPath):"Картинка добавлена в проект"),n(!1)})},className:"group relative overflow-hidden rounded border hover:border-violet-500 disabled:opacity-50",title:"".concat(e.attribution.name," \xb7 ").concat(e.provider),children:[(0,r.jsx)("img",{src:e.thumb,alt:"",className:"h-32 w-full object-cover"}),(0,r.jsx)("div",{className:"absolute bottom-0 inset-x-0 px-1.5 py-0.5 text-[10px] bg-black/60 text-white truncate",children:e.attribution.name}),O===e.url&&(0,r.jsx)("div",{className:"absolute inset-0 bg-black/40 flex items-center justify-center text-xs text-white",children:"Сохраняю…"})]},e.url))}):(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:"Нужен ключ Unsplash / Pexels в Settings → Images."})]}),(0,r.jsxs)(g.av,{value:"upload",className:"px-4 py-4 space-y-3",children:[(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)(p.J,{htmlFor:"img-alt",children:"Подпись (alt)"}),(0,r.jsx)(h.p,{id:"img-alt",value:H,onChange:e=>Q(e.target.value),placeholder:"Что на картинке"})]}),(0,r.jsxs)("label",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,r.jsx)("input",{type:"checkbox",checked:W,onChange:e=>Y(e.target.checked)}),"Сохранить как отдельную запись в KB (kind: image)"]}),(0,r.jsx)(h.p,{type:"file",accept:"image/*",disabled:ee,onChange:e=>{var a;let r=null==(a=e.target.files)?void 0:a[0];r&&et(async()=>{let e=function(e){let t=new Uint8Array(e),a="";for(let e=0;e<t.length;e+=32768){let r=t.subarray(e,e+32768);a+=String.fromCharCode.apply(null,Array.from(r))}return btoa(a)}(await r.arrayBuffer()),a=await N({rootId:t,base64:e,mime:r.type,alt:H||r.name.replace(/\.[^.]+$/,""),attachToKb:W});if(!a.ok)return void x.oR.error(a.error);null==j||j({url:a.url,markdown:a.markdown,...a.kbRelPath?{kbRelPath:a.kbRelPath}:{}}),x.oR.success(a.kbRelPath?"Сохранено в KB: ".concat(a.kbRelPath):"Картинка загружена"),n(!1)})}}),ee&&(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:"Загружаю…"})]})]})]})]})]})}function C(e){let{rootId:t,redirectToKb:a=!0}=e,[o,c]=(0,s.useState)(!1),d=(0,n.useRouter)();return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(i.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>c(!0),children:[(0,r.jsx)(l.A,{className:"mr-1 h-4 w-4"})," Картинка"]}),(0,r.jsx)(R,{rootId:t,open:o,onOpenChange:c,onInsert:e=>{let{kbRelPath:r}=e;if(a&&r){let e=r.split("/").map(encodeURIComponent).join("/");d.push("/roots/".concat(t,"/kb/").concat(e))}}})]})}},8190:(e,t,a)=>{a.d(t,{CommandBar:()=>h});var r=a(4624),s=a(99356),n=a(69285),l=a(95265),i=a(56221),o=a(99853),c=a(84858),d=a(63602),u=a(63514),x=a(46334);function h(e){let{rootId:t,focusFile:a}=e,[,h]=(0,s.useTransition)(),m=(0,n.useRouter)();return(0,r.jsx)(d.E,{label:"Спроси Reflex",children:(0,r.jsx)(x.L,{rootId:t,placeholder:"Задай вопрос о проекте или дай команду…",submitLabel:"Начать",pendingLabel:"Старт",SubmitIcon:l.A,onSubmit:async e=>{let{message:r,attachments:s}=e;return await new Promise(e=>{h(async()=>{let n=await (0,o.g)(t,r,s,a);if(!n.ok){var l;i.oR.error(null!=(l=n.error)?l:"Failed to start"),e(!1);return}(0,u.$d)(u.Zi.topicsChanged(t)),r.trim()&&(0,c.h)(t,n.topicId,r).then(e=>{e.ok&&(0,u.$d)(u.Zi.topicsChanged(t))}),m.push("/roots/".concat(t,"/chat/").concat(n.topicId)),e(!0)})})}})})}},22841:(e,t,a)=>{a.d(t,{bq:()=>u,eb:()=>h,gC:()=>x,l6:()=>c,yv:()=>d});var r=a(4624);a(99356);var s=a(69709),n=a(43153),l=a(59728),i=a(85314),o=a(13506);function c(e){let{...t}=e;return(0,r.jsx)(i.Root,{"data-slot":"select",...t})}function d(e){let{...t}=e;return(0,r.jsx)(i.Value,{"data-slot":"select-value",...t})}function u(e){let{className:t,size:a="default",children:n,...l}=e;return(0,r.jsxs)(i.Trigger,{"data-slot":"select-trigger","data-size":a,className:(0,o.cn)("flex w-fit items-center justify-between gap-2 rounded-md border border-input bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[placeholder]:text-muted-foreground data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground",t),...l,children:[n,(0,r.jsx)(i.Icon,{asChild:!0,children:(0,r.jsx)(s.A,{className:"size-4 opacity-50"})})]})}function x(e){let{className:t,children:a,position:s="item-aligned",align:n="center",...l}=e;return(0,r.jsx)(i.Portal,{children:(0,r.jsxs)(i.Content,{"data-slot":"select-content",className:(0,o.cn)("relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border bg-popover text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95","popper"===s&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",t),position:s,align:n,...l,children:[(0,r.jsx)(m,{}),(0,r.jsx)(i.Viewport,{className:(0,o.cn)("p-1","popper"===s&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:a}),(0,r.jsx)(p,{})]})})}function h(e){let{className:t,children:a,...s}=e;return(0,r.jsxs)(i.Item,{"data-slot":"select-item",className:(0,o.cn)("relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",t),...s,children:[(0,r.jsx)("span",{"data-slot":"select-item-indicator",className:"absolute right-2 flex size-3.5 items-center justify-center",children:(0,r.jsx)(i.ItemIndicator,{children:(0,r.jsx)(n.A,{className:"size-4"})})}),(0,r.jsx)(i.ItemText,{children:a})]})}function m(e){let{className:t,...a}=e;return(0,r.jsx)(i.ScrollUpButton,{"data-slot":"select-scroll-up-button",className:(0,o.cn)("flex cursor-default items-center justify-center py-1",t),...a,children:(0,r.jsx)(l.A,{className:"size-4"})})}function p(e){let{className:t,...a}=e;return(0,r.jsx)(i.ScrollDownButton,{"data-slot":"select-scroll-down-button",className:(0,o.cn)("flex cursor-default items-center justify-center py-1",t),...a,children:(0,r.jsx)(s.A,{className:"size-4"})})}},35101:(e,t,a)=>{a.d(t,{N:()=>s});var r=a(7911);let s=(0,r.createServerReference)("005adec00ada04c63ac5fd3676f300faaa566baba2",r.callServer,void 0,r.findSourceMapURL,"getTunnelStatusAction")},43504:(e,t,a)=>{a.d(t,{E:()=>n});var r=a(4624),s=a(13506);function n(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"skeleton",className:(0,s.cn)("animate-pulse rounded-md bg-accent",t),...a})}},45407:(e,t,a)=>{a.d(t,{ShareButton:()=>m});var r=a(4624),s=a(99356),n=a(30441),l=a(43153),i=a(9598),o=a(13561),c=a(3024),d=a(56221),u=a(7911);let x=(0,u.createServerReference)("403ed4d14b11a90cacc5b9f70460c86f0b95c3568a",u.callServer,void 0,u.findSourceMapURL,"createShareAction");var h=a(35101);function m(e){let[t,a]=(0,s.useState)(!1),[u,m]=(0,s.useState)(""),[p,b]=(0,s.useTransition)(),[g,f]=(0,s.useState)(null);return t?g?(0,r.jsxs)("div",{className:"rounded border bg-card p-2 text-xs space-y-1.5 w-full max-w-sm",children:[(0,r.jsxs)("div",{className:"flex items-center gap-1.5 text-emerald-700",children:[(0,r.jsx)(l.A,{className:"h-3.5 w-3.5"}),(0,r.jsx)("span",{className:"font-medium",children:"Ссылка создана"})]}),(0,r.jsx)("a",{href:g.url,target:"_blank",rel:"noopener noreferrer",className:"block font-mono text-[11px] text-violet-700 hover:underline break-all",children:g.url}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsxs)("button",{type:"button",onClick:()=>void navigator.clipboard.writeText(g.url).then(()=>d.oR.success("Скопировано")),className:"inline-flex items-center gap-1 rounded border px-2 py-0.5 hover:bg-accent",children:[(0,r.jsx)(i.A,{className:"h-3 w-3"}),"Скопировать"]}),(0,r.jsx)("button",{type:"button",onClick:()=>{f(null),a(!1),m("")},className:"text-muted-foreground hover:text-foreground",children:"Готово"})]})]}):(0,r.jsxs)("div",{className:"rounded border bg-card p-2 text-xs space-y-1.5 w-full max-w-sm",children:[(0,r.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,r.jsx)(n.A,{className:"h-3.5 w-3.5 text-violet-600"}),(0,r.jsx)("span",{className:"font-medium",children:"Новая публичная ссылка"}),(0,r.jsx)("button",{type:"button",onClick:()=>a(!1),className:"ml-auto text-muted-foreground hover:text-foreground",children:(0,r.jsx)(o.A,{className:"h-3 w-3"})})]}),(0,r.jsx)("label",{className:"block text-[10px] text-muted-foreground",children:"Пароль (опционально)"}),(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsx)(c.A,{className:"absolute left-2 top-1/2 -translate-y-1/2 h-3 w-3 text-muted-foreground pointer-events-none"}),(0,r.jsx)("input",{type:"password",value:u,onChange:e=>m(e.target.value),autoFocus:!0,placeholder:"пусто = открытая ссылка",className:"w-full rounded border bg-background pl-6 pr-2 py-1 text-xs focus:outline-none focus:ring-1 focus:ring-violet-400"})]}),(0,r.jsx)("button",{type:"button",onClick:()=>{b(async()=>{var t;let a=await (0,h.N)(),r=await x({kind:e.kind,...e.rootId?{rootId:e.rootId}:{},...e.utilityScope?{utilityScope:e.utilityScope}:{},...e.utilityId?{utilityId:e.utilityId}:{},...e.kbRelPath?{kbRelPath:e.kbRelPath}:{},...e.label?{label:e.label}:{},...u.trim()?{password:u.trim()}:{}});if(!r.ok)return void d.oR.error(r.error);let s=null!=(t=a.status.publicUrl)?t:window.location.origin,n=new URL("/share/".concat(r.share.id),s).toString();f({share:r.share,url:n}),navigator.clipboard.writeText(n).catch(()=>null),d.oR.success(a.status.running?"Ссылка создана и скопирована":"Ссылка создана; запусти ngrok-туннель в настройках чтобы открыть извне")})},disabled:p,className:"w-full rounded bg-violet-600 text-white px-2 py-1 hover:bg-violet-700 disabled:opacity-50 inline-flex items-center justify-center gap-1",children:p?"Создание…":"Создать ссылку"}),(0,r.jsx)("p",{className:"text-[10px] text-muted-foreground",children:"Ссылку будет видно только после старта ngrok-туннеля (Настройки → Публичные ссылки)."})]}):(0,r.jsxs)("button",{type:"button",onClick:()=>a(!0),className:e.iconOnly?"p-1 rounded hover:bg-accent text-muted-foreground hover:text-violet-700":"inline-flex items-center gap-1 rounded border px-2 py-1 text-xs hover:bg-accent",title:"Создать публичную ссылку",children:[(0,r.jsx)(n.A,{className:"h-3.5 w-3.5"}),!e.iconOnly&&"Поделиться"]})}},49881:(e,t,a)=>{a.d(t,{Xi:()=>d,av:()=>u,j7:()=>c,tU:()=>i});var r=a(4624);a(99356);var s=a(60621),n=a(86631),l=a(13506);function i(e){let{className:t,orientation:a="horizontal",...s}=e;return(0,r.jsx)(n.Root,{"data-slot":"tabs","data-orientation":a,orientation:a,className:(0,l.cn)("group/tabs flex gap-2 data-[orientation=horizontal]:flex-col",t),...s})}let o=(0,s.F)("group/tabs-list inline-flex w-fit items-center justify-center rounded-lg p-[3px] text-muted-foreground group-data-[orientation=horizontal]/tabs:h-9 group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col data-[variant=line]:rounded-none",{variants:{variant:{default:"bg-muted",line:"gap-1 bg-transparent"}},defaultVariants:{variant:"default"}});function c(e){let{className:t,variant:a="default",...s}=e;return(0,r.jsx)(n.List,{"data-slot":"tabs-list","data-variant":a,className:(0,l.cn)(o({variant:a}),t),...s})}function d(e){let{className:t,...a}=e;return(0,r.jsx)(n.Trigger,{"data-slot":"tabs-trigger",className:(0,l.cn)("relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap text-foreground/60 transition-all group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 group-data-[variant=default]/tabs-list:data-[state=active]:shadow-sm group-data-[variant=line]/tabs-list:data-[state=active]:shadow-none dark:text-muted-foreground dark:hover:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4","group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:border-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent","data-[state=active]:bg-background data-[state=active]:text-foreground dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 dark:data-[state=active]:text-foreground","after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-right-1 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-[state=active]:after:opacity-100",t),...a})}function u(e){let{className:t,...a}=e;return(0,r.jsx)(n.Content,{"data-slot":"tabs-content",className:(0,l.cn)("flex-1 outline-none",t),...a})}},80192:(e,t,a)=>{a.d(t,{F:()=>l});var r=a(4624);a(99356);var s=a(14884),n=a(13506);function l(e){let{className:t,children:a,...l}=e;return(0,r.jsxs)(s.Root,{"data-slot":"scroll-area",className:(0,n.cn)("relative",t),...l,children:[(0,r.jsx)(s.Viewport,{"data-slot":"scroll-area-viewport",className:"size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1",children:a}),(0,r.jsx)(i,{}),(0,r.jsx)(s.Corner,{})]})}function i(e){let{className:t,orientation:a="vertical",...l}=e;return(0,r.jsx)(s.ScrollAreaScrollbar,{"data-slot":"scroll-area-scrollbar",orientation:a,className:(0,n.cn)("flex touch-none p-px transition-colors select-none","vertical"===a&&"h-full w-2.5 border-l border-l-transparent","horizontal"===a&&"h-2.5 flex-col border-t border-t-transparent",t),...l,children:(0,r.jsx)(s.ScrollAreaThumb,{"data-slot":"scroll-area-thumb",className:"relative flex-1 rounded-full bg-border"})})}},84858:(e,t,a)=>{a.d(t,{h:()=>s});var r=a(7911);let s=(0,r.createServerReference)("7091b99a789641a5b42e215c5d4df0e01635ea4d0c",r.callServer,void 0,r.findSourceMapURL,"generateTopicTitleAction")},99853:(e,t,a)=>{a.d(t,{g:()=>s});var r=a(7911);let s=(0,r.createServerReference)("78aa2f0aa9b7272a731bab5e297ecdda045a5f8e9d",r.callServer,void 0,r.findSourceMapURL,"startTopicAction")}}]);