reflex-agent 0.2.2 → 0.2.4

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 (156) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +97 -97
  3. package/.next/app-path-routes-manifest.json +10 -10
  4. package/.next/build-manifest.json +5 -5
  5. package/.next/prerender-manifest.json +3 -51
  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_client-reference-manifest.js +1 -1
  9. package/.next/server/app/_not-found.html +1 -1
  10. package/.next/server/app/_not-found.rsc +3 -3
  11. package/.next/server/app/agents/[agentId]/page.js +2 -2
  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 +1 -1
  14. package/.next/server/app/api/agents/[agentId]/respond/route_client-reference-manifest.js +1 -1
  15. package/.next/server/app/api/images/[rootId]/[file]/route_client-reference-manifest.js +1 -1
  16. package/.next/server/app/api/oauth/callback/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/oauth/start/route_client-reference-manifest.js +1 -1
  18. package/.next/server/app/api/roots/[id]/attachments/route_client-reference-manifest.js +1 -1
  19. package/.next/server/app/api/roots/[id]/chat/[topicId]/send/route.js +1 -1
  20. package/.next/server/app/api/roots/[id]/chat/[topicId]/send/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/roots/[id]/chat/[topicId]/stop/route.js +1 -1
  22. package/.next/server/app/api/roots/[id]/chat/[topicId]/stop/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/roots/[id]/chat/[topicId]/stream/route.js +1 -1
  24. package/.next/server/app/api/roots/[id]/chat/[topicId]/stream/route_client-reference-manifest.js +1 -1
  25. package/.next/server/app/api/roots/[id]/dashboard/route.js +1 -1
  26. package/.next/server/app/api/roots/[id]/dashboard/route.js.nft.json +1 -1
  27. package/.next/server/app/api/roots/[id]/dashboard/route_client-reference-manifest.js +1 -1
  28. package/.next/server/app/api/roots/[id]/suggestions/route.js +1 -1
  29. package/.next/server/app/api/roots/[id]/suggestions/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/utilities/[scope]/[id]/bundle.js/route_client-reference-manifest.js +1 -1
  31. package/.next/server/app/api/utilities/[scope]/[id]/host/route.js +1 -1
  32. package/.next/server/app/api/utilities/[scope]/[id]/host/route_client-reference-manifest.js +1 -1
  33. package/.next/server/app/api/utilities/[scope]/[id]/host-api.mjs/route_client-reference-manifest.js +1 -1
  34. package/.next/server/app/api/utilities/[scope]/[id]/host-ui.mjs/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/utilities/[scope]/[id]/iframe/route_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/utilities/[scope]/[id]/style.css/route_client-reference-manifest.js +1 -1
  37. package/.next/server/app/audit/page.js +1 -1
  38. package/.next/server/app/audit/page.js.nft.json +1 -1
  39. package/.next/server/app/audit/page_client-reference-manifest.js +1 -1
  40. package/.next/server/app/index.html +1 -1
  41. package/.next/server/app/index.rsc +3 -3
  42. package/.next/server/app/onboarding/page.js +2 -2
  43. package/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  44. package/.next/server/app/page.js +2 -2
  45. package/.next/server/app/page.js.nft.json +1 -1
  46. package/.next/server/app/page_client-reference-manifest.js +1 -1
  47. package/.next/server/app/roots/[id]/chat/[topicId]/page.js +2 -2
  48. package/.next/server/app/roots/[id]/chat/[topicId]/page.js.nft.json +1 -1
  49. package/.next/server/app/roots/[id]/chat/[topicId]/page_client-reference-manifest.js +1 -1
  50. package/.next/server/app/roots/[id]/kb/[...slug]/page.js +3 -3
  51. package/.next/server/app/roots/[id]/kb/[...slug]/page.js.nft.json +1 -1
  52. package/.next/server/app/roots/[id]/kb/[...slug]/page_client-reference-manifest.js +1 -1
  53. package/.next/server/app/roots/[id]/page.js +3 -3
  54. package/.next/server/app/roots/[id]/page.js.nft.json +1 -1
  55. package/.next/server/app/roots/[id]/page_client-reference-manifest.js +1 -1
  56. package/.next/server/app/roots/[id]/workflows/[wfId]/page.js +2 -2
  57. package/.next/server/app/roots/[id]/workflows/[wfId]/page_client-reference-manifest.js +1 -1
  58. package/.next/server/app/roots/[id]/workflows/page.js +1 -1
  59. package/.next/server/app/roots/[id]/workflows/page.js.nft.json +1 -1
  60. package/.next/server/app/roots/[id]/workflows/page_client-reference-manifest.js +1 -1
  61. package/.next/server/app/roots/new/page.js +2 -2
  62. package/.next/server/app/roots/new/page_client-reference-manifest.js +1 -1
  63. package/.next/server/app/settings/page.js +5 -5
  64. package/.next/server/app/settings/page.js.nft.json +1 -1
  65. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  66. package/.next/server/app/share/[id]/file/page.js +1 -1
  67. package/.next/server/app/share/[id]/file/page_client-reference-manifest.js +1 -1
  68. package/.next/server/app/share/[id]/page.js +2 -2
  69. package/.next/server/app/share/[id]/page.js.nft.json +1 -1
  70. package/.next/server/app/share/[id]/page_client-reference-manifest.js +1 -1
  71. package/.next/server/app/utilities/[scope]/[id]/page.js +2 -2
  72. package/.next/server/app/utilities/[scope]/[id]/page.js.nft.json +1 -1
  73. package/.next/server/app/utilities/[scope]/[id]/page_client-reference-manifest.js +1 -1
  74. package/.next/server/app/utilities/page.js +4 -4
  75. package/.next/server/app/utilities/page_client-reference-manifest.js +1 -1
  76. package/.next/server/app-paths-manifest.json +10 -10
  77. package/.next/server/chunks/133.js +5 -5
  78. package/.next/server/chunks/{3610.js → 1410.js} +1 -1
  79. package/.next/server/chunks/1960.js +1 -1
  80. package/.next/server/chunks/1986.js +1 -1
  81. package/.next/server/chunks/2448.js +3 -0
  82. package/.next/server/chunks/3332.js +1 -1
  83. package/.next/server/chunks/3953.js +4 -0
  84. package/.next/server/chunks/4031.js +1 -1
  85. package/.next/server/chunks/5754.js +3 -0
  86. package/.next/server/chunks/{1455.js → 7097.js} +1 -1
  87. package/.next/server/chunks/7782.js +1 -0
  88. package/.next/server/chunks/7987.js +1 -0
  89. package/.next/server/chunks/810.js +1 -0
  90. package/.next/server/chunks/9098.js +1 -1
  91. package/.next/server/chunks/9328.js +1 -1
  92. package/.next/server/chunks/9579.js +1 -1
  93. package/.next/server/middleware-build-manifest.js +1 -1
  94. package/.next/server/middleware-manifest.json +5 -5
  95. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  96. package/.next/server/pages/404.html +1 -1
  97. package/.next/server/pages/500.html +1 -1
  98. package/.next/server/server-reference-manifest.js +1 -1
  99. package/.next/server/server-reference-manifest.json +1 -1
  100. package/.next/static/chunks/2488-c9590facb4b9f184.js +1 -0
  101. package/.next/static/chunks/2684-257d38989ef53935.js +1 -0
  102. package/.next/static/chunks/4108.fb9f99a9c899ef54.js +1 -0
  103. package/.next/static/chunks/6231-d83c1544bbea8424.js +1 -0
  104. package/.next/static/chunks/9496-75ccd3fadb294fba.js +1 -0
  105. package/.next/static/chunks/992-4e7b7f722c629e21.js +1 -0
  106. package/.next/static/chunks/app/layout-9a59ed07c18cb786.js +1 -0
  107. package/.next/static/chunks/app/onboarding/{page-21cb4c231aa388b2.js → page-79f07a813ea2abfe.js} +1 -1
  108. package/.next/static/chunks/app/page-27f4b98b02ac4f79.js +1 -0
  109. package/.next/static/chunks/app/roots/[id]/chat/[topicId]/{page-495551937b420b76.js → page-8db2d0b75cd333c8.js} +1 -1
  110. package/.next/static/chunks/app/roots/[id]/kb/[...slug]/page-873b131eec3a2f30.js +1 -0
  111. package/.next/static/chunks/app/roots/[id]/page-270d0d49eb668784.js +1 -0
  112. package/.next/static/chunks/app/roots/[id]/workflows/[wfId]/page-7c1f10dbe0bcb9ad.js +1 -0
  113. package/.next/static/chunks/app/roots/new/page-ac1a9f6379710ca2.js +1 -0
  114. package/.next/static/chunks/app/settings/page-81cb1393e817dfc3.js +1 -0
  115. package/.next/static/chunks/app/share/[id]/page-2d123f0a99e1606f.js +1 -0
  116. package/.next/static/chunks/app/utilities/[scope]/[id]/page-0bbb8d17af80c1da.js +1 -0
  117. package/.next/static/chunks/app/utilities/page-e6ce673b9357bf1f.js +1 -0
  118. package/.next/static/chunks/{webpack-5a9c11af9261dd8a.js → webpack-5fca180586957874.js} +1 -1
  119. package/.next/trace +46 -46
  120. package/README.md +4 -1
  121. package/dist/bin/preload.js +12 -4
  122. package/dist/bin/preload.js.map +1 -1
  123. package/dist/lib/reflex/commands/start.js +33 -0
  124. package/dist/lib/reflex/commands/start.js.map +1 -1
  125. package/lib/server/utilities/worker-bootstrap.js +87 -0
  126. package/package.json +4 -3
  127. package/.next/server/app/roots/new.html +0 -1
  128. package/.next/server/app/roots/new.meta +0 -7
  129. package/.next/server/app/roots/new.rsc +0 -21
  130. package/.next/server/app/settings.html +0 -1
  131. package/.next/server/app/settings.meta +0 -7
  132. package/.next/server/app/settings.rsc +0 -22
  133. package/.next/server/chunks/2977.js +0 -1
  134. package/.next/server/chunks/3076.js +0 -1
  135. package/.next/server/chunks/4567.js +0 -3
  136. package/.next/server/chunks/6809.js +0 -3
  137. package/.next/server/chunks/9731.js +0 -4
  138. package/.next/server/chunks/9905.js +0 -1
  139. package/.next/static/chunks/1521-747af538ca131a44.js +0 -1
  140. package/.next/static/chunks/2641-a7e626d59cd967e8.js +0 -1
  141. package/.next/static/chunks/2994-8b82d24eeb6d4a3d.js +0 -1
  142. package/.next/static/chunks/4108.610ef39d7984f25f.js +0 -1
  143. package/.next/static/chunks/6330-d46c4ceb6e522567.js +0 -1
  144. package/.next/static/chunks/9837-49687140bc7ce084.js +0 -1
  145. package/.next/static/chunks/app/layout-e51afdc17d552d1a.js +0 -1
  146. package/.next/static/chunks/app/page-1fa224b4a5160227.js +0 -1
  147. package/.next/static/chunks/app/roots/[id]/kb/[...slug]/page-1b67558878e2cc43.js +0 -1
  148. package/.next/static/chunks/app/roots/[id]/page-0431ab3465b742f1.js +0 -1
  149. package/.next/static/chunks/app/roots/[id]/workflows/[wfId]/page-62fa8cfbf3c85457.js +0 -1
  150. package/.next/static/chunks/app/roots/new/page-918f809668694de6.js +0 -1
  151. package/.next/static/chunks/app/settings/page-9cf2f101424ec84c.js +0 -1
  152. package/.next/static/chunks/app/share/[id]/page-325593b9c70ca17c.js +0 -1
  153. package/.next/static/chunks/app/utilities/[scope]/[id]/page-fe0e445961d83cc2.js +0 -1
  154. package/.next/static/chunks/app/utilities/page-a1359423e5a9e7de.js +0 -1
  155. /package/.next/static/{6-mOMrzbiPmI97utKVIuW → og_wC7UPkGtJDiapaTgBr}/_buildManifest.js +0 -0
  156. /package/.next/static/{6-mOMrzbiPmI97utKVIuW → og_wC7UPkGtJDiapaTgBr}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4662],{4959:(e,t,a)=>{"use strict";a.d(t,{BT:()=>o,Wu:()=>c,ZB:()=>l,Zp:()=>n,aR:()=>i,wL:()=>d});var s=a(4624);a(99356);var r=a(13506);function n(e){let{className:t,...a}=e;return(0,s.jsx)("div",{"data-slot":"card",className:(0,r.cn)("flex flex-col gap-6 rounded-xl border bg-card py-6 text-card-foreground shadow-sm",t),...a})}function i(e){let{className:t,...a}=e;return(0,s.jsx)("div",{"data-slot":"card-header",className:(0,r.cn)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",t),...a})}function l(e){let{className:t,...a}=e;return(0,s.jsx)("div",{"data-slot":"card-title",className:(0,r.cn)("leading-none font-semibold",t),...a})}function o(e){let{className:t,...a}=e;return(0,s.jsx)("div",{"data-slot":"card-description",className:(0,r.cn)("text-sm text-muted-foreground",t),...a})}function c(e){let{className:t,...a}=e;return(0,s.jsx)("div",{"data-slot":"card-content",className:(0,r.cn)("px-6",t),...a})}function d(e){let{className:t,...a}=e;return(0,s.jsx)("div",{"data-slot":"card-footer",className:(0,r.cn)("flex items-center px-6 [.border-t]:pt-6",t),...a})}},13506:(e,t,a)=>{"use strict";a.d(t,{cn:()=>n});var s=a(47989),r=a(55701);function n(){for(var e=arguments.length,t=Array(e),a=0;a<e;a++)t[a]=arguments[a];return(0,r.QP)((0,s.$)(t))}},13910:(e,t,a)=>{"use strict";a.d(t,{S:()=>r});var s=a(7911);let r=(0,s.createServerReference)("40f08eb42b70482c9ac4bd8baf66d671a236a9dee5",s.callServer,void 0,s.findSourceMapURL,"saveOAuthClientAction")},15523:(e,t,a)=>{"use strict";a.d(t,{p:()=>n});var s=a(4624);a(99356);var r=a(13506);function n(e){let{className:t,type:a,...n}=e;return(0,s.jsx)("input",{type:a,"data-slot":"input",className:(0,r.cn)("h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30","focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50","aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",t),...n})}},17121:(e,t,a)=>{Promise.resolve().then(a.bind(a,67410)),Promise.resolve().then(a.bind(a,91074)),Promise.resolve().then(a.bind(a,96253)),Promise.resolve().then(a.bind(a,28050)),Promise.resolve().then(a.bind(a,94904)),Promise.resolve().then(a.bind(a,13270)),Promise.resolve().then(a.bind(a,99730)),Promise.resolve().then(a.bind(a,89146)),Promise.resolve().then(a.bind(a,19078)),Promise.resolve().then(a.bind(a,67854)),Promise.resolve().then(a.bind(a,69050)),Promise.resolve().then(a.bind(a,63739)),Promise.resolve().then(a.bind(a,33976)),Promise.resolve().then(a.bind(a,12537)),Promise.resolve().then(a.bind(a,97485)),Promise.resolve().then(a.bind(a,41923)),Promise.resolve().then(a.bind(a,73868)),Promise.resolve().then(a.bind(a,53511)),Promise.resolve().then(a.bind(a,2018)),Promise.resolve().then(a.bind(a,18487)),Promise.resolve().then(a.bind(a,98346)),Promise.resolve().then(a.bind(a,14884)),Promise.resolve().then(a.bind(a,85314)),Promise.resolve().then(a.bind(a,17280)),Promise.resolve().then(a.bind(a,8855)),Promise.resolve().then(a.bind(a,86631)),Promise.resolve().then(a.bind(a,2604)),Promise.resolve().then(a.bind(a,27237)),Promise.resolve().then(a.bind(a,49455)),Promise.resolve().then(a.bind(a,39211)),Promise.resolve().then(a.bind(a,56360)),Promise.resolve().then(a.t.bind(a,54400,23))},18912:(e,t,a)=>{"use strict";a.d(t,{T:()=>r});var s=a(7911);let r=(0,s.createServerReference)("60cfc9c61911e6183132d7a6ef5ad0ead4a25de147",s.callServer,void 0,s.findSourceMapURL,"beginOAuthAction")},22841:(e,t,a)=>{"use strict";a.d(t,{bq:()=>m,eb:()=>x,gC:()=>u,l6:()=>c,yv:()=>d});var s=a(4624);a(99356);var r=a(69709),n=a(43153),i=a(59728),l=a(85314),o=a(13506);function c(e){let{...t}=e;return(0,s.jsx)(l.Root,{"data-slot":"select",...t})}function d(e){let{...t}=e;return(0,s.jsx)(l.Value,{"data-slot":"select-value",...t})}function m(e){let{className:t,size:a="default",children:n,...i}=e;return(0,s.jsxs)(l.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),...i,children:[n,(0,s.jsx)(l.Icon,{asChild:!0,children:(0,s.jsx)(r.A,{className:"size-4 opacity-50"})})]})}function u(e){let{className:t,children:a,position:r="item-aligned",align:n="center",...i}=e;return(0,s.jsx)(l.Portal,{children:(0,s.jsxs)(l.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"===r&&"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:r,align:n,...i,children:[(0,s.jsx)(h,{}),(0,s.jsx)(l.Viewport,{className:(0,o.cn)("p-1","popper"===r&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:a}),(0,s.jsx)(p,{})]})})}function x(e){let{className:t,children:a,...r}=e;return(0,s.jsxs)(l.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),...r,children:[(0,s.jsx)("span",{"data-slot":"select-item-indicator",className:"absolute right-2 flex size-3.5 items-center justify-center",children:(0,s.jsx)(l.ItemIndicator,{children:(0,s.jsx)(n.A,{className:"size-4"})})}),(0,s.jsx)(l.ItemText,{children:a})]})}function h(e){let{className:t,...a}=e;return(0,s.jsx)(l.ScrollUpButton,{"data-slot":"select-scroll-up-button",className:(0,o.cn)("flex cursor-default items-center justify-center py-1",t),...a,children:(0,s.jsx)(i.A,{className:"size-4"})})}function p(e){let{className:t,...a}=e;return(0,s.jsx)(l.ScrollDownButton,{"data-slot":"select-scroll-down-button",className:(0,o.cn)("flex cursor-default items-center justify-center py-1",t),...a,children:(0,s.jsx)(r.A,{className:"size-4"})})}},28310:(e,t,a)=>{"use strict";a.d(t,{E:()=>o});var s=a(4624);a(99356);var r=a(60621),n=a(50362),i=a(13506);let l=(0,r.F)("inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3",{variants:{variant:{default:"bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"bg-destructive text-white focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40 [a&]:hover:bg-destructive/90",outline:"border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",ghost:"[a&]:hover:bg-accent [a&]:hover:text-accent-foreground",link:"text-primary underline-offset-4 [a&]:hover:underline"}},defaultVariants:{variant:"default"}});function o(e){let{className:t,variant:a="default",asChild:r=!1,...o}=e,c=r?n.bL:"span";return(0,s.jsx)(c,{"data-slot":"badge","data-variant":a,className:(0,i.cn)(l({variant:a}),t),...o})}},39904:(e,t,a)=>{"use strict";a.d(t,{J:()=>r});var s=a(7911);let r=(0,s.createServerReference)("405c90d8eb2301de2efb52983610ff3d46a26ef4db",s.callServer,void 0,s.findSourceMapURL,"getOAuthClientAction")},46227:(e,t,a)=>{"use strict";a.d(t,{o:()=>r});var s=a(7911);let r=(0,s.createServerReference)("00a4ed7436adb81e87c7c9bb5ad657847538b5ecb5",s.callServer,void 0,s.findSourceMapURL,"listOAuthStatusesAction")},49881:(e,t,a)=>{"use strict";a.d(t,{Xi:()=>d,av:()=>m,j7:()=>c,tU:()=>l});var s=a(4624);a(99356);var r=a(60621),n=a(86631),i=a(13506);function l(e){let{className:t,orientation:a="horizontal",...r}=e;return(0,s.jsx)(n.Root,{"data-slot":"tabs","data-orientation":a,orientation:a,className:(0,i.cn)("group/tabs flex gap-2 data-[orientation=horizontal]:flex-col",t),...r})}let o=(0,r.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",...r}=e;return(0,s.jsx)(n.List,{"data-slot":"tabs-list","data-variant":a,className:(0,i.cn)(o({variant:a}),t),...r})}function d(e){let{className:t,...a}=e;return(0,s.jsx)(n.Trigger,{"data-slot":"tabs-trigger",className:(0,i.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 m(e){let{className:t,...a}=e;return(0,s.jsx)(n.Content,{"data-slot":"tabs-content",className:(0,i.cn)("flex-1 outline-none",t),...a})}},65428:(e,t,a)=>{"use strict";a.d(t,{N:()=>r});var s=a(7911);let r=(0,s.createServerReference)("00e3f501249a86b3370da049924b8187e7daacb109",s.callServer,void 0,s.findSourceMapURL,"getTunnelStatusAction")},66459:(e,t,a)=>{"use strict";a.d(t,{O:()=>c});var s=a(4624),r=a(99356),n=a(43153),i=a(9598),l=a(56221),o=a(85253);function c(e){let{steps:t}=e;return t&&0!==t.length?(0,s.jsx)("ol",{className:"space-y-2 text-xs",children:t.map((e,t)=>(0,s.jsxs)("li",{className:"flex gap-2",children:[(0,s.jsxs)("span",{className:"font-mono text-muted-foreground shrink-0 w-5 text-right",children:[t+1,"."]}),(0,s.jsxs)("div",{className:"space-y-1 flex-1 min-w-0",children:[(0,s.jsx)("div",{children:e.title}),e.choice&&(0,s.jsxs)("div",{className:"text-[11px]",children:[(0,s.jsx)("span",{className:"text-muted-foreground",children:"Выбери: "}),(0,s.jsx)("span",{className:"font-medium bg-muted/60 rounded px-1.5 py-0.5",children:e.choice})]}),e.body&&(0,s.jsx)("p",{className:"text-[11px] text-muted-foreground",children:e.body}),e.copy&&(0,s.jsxs)("div",{className:"flex items-center gap-2 mt-1",children:[e.field&&(0,s.jsxs)("span",{className:"text-[11px] text-muted-foreground",children:[e.field,":"]}),(0,s.jsx)("code",{className:"font-mono text-[11px] bg-muted/60 rounded px-1.5 py-0.5 break-all flex-1 min-w-0",children:e.copy}),(0,s.jsx)(d,{value:e.copy})]})]})]},t))}):null}function d(e){let{value:t}=e,[a,c]=(0,r.useState)(!1);return(0,s.jsx)(o.$,{type:"button",size:"icon",variant:"ghost",className:"h-6 w-6 shrink-0",onClick:async()=>{try{await navigator.clipboard.writeText(t),c(!0),l.oR.success("Скопировано"),setTimeout(()=>c(!1),1200)}catch(e){l.oR.error("Не удалось скопировать")}},title:"Скопировать",children:a?(0,s.jsx)(n.A,{className:"h-3 w-3 text-emerald-600"}):(0,s.jsx)(i.A,{className:"h-3 w-3"})})}},67410:(e,t,a)=>{"use strict";a.d(t,{SettingsForm:()=>eY});var s=a(4624),r=a(99356),n=a(3747),i=a(3239),l=a(65714),o=a(58726),c=a(52584),d=a(56221),m=a(85253),u=a(4959),x=a(15523),h=a(78825),p=a(8855),f=a(13506);function g(e){let{className:t,size:a="default",...r}=e;return(0,s.jsx)(p.Root,{"data-slot":"switch","data-size":a,className:(0,f.cn)("peer group/switch inline-flex shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-[1.15rem] data-[size=default]:w-8 data-[size=sm]:h-3.5 data-[size=sm]:w-6 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80",t),...r,children:(0,s.jsx)(p.Thumb,{"data-slot":"switch-thumb",className:(0,f.cn)("pointer-events-none block rounded-full bg-background ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0 dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground")})})}var v=a(17280);function b(e){let{className:t,defaultValue:a,value:n,min:i=0,max:l=100,...o}=e,c=r.useMemo(()=>Array.isArray(n)?n:Array.isArray(a)?a:[i,l],[n,a,i,l]);return(0,s.jsxs)(v.Root,{"data-slot":"slider",defaultValue:a,value:n,min:i,max:l,className:(0,f.cn)("relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col",t),...o,children:[(0,s.jsx)(v.Track,{"data-slot":"slider-track",className:(0,f.cn)("relative grow overflow-hidden rounded-full bg-muted data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5"),children:(0,s.jsx)(v.Range,{"data-slot":"slider-range",className:(0,f.cn)("absolute bg-primary data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full")})}),Array.from({length:c.length},(e,t)=>(0,s.jsx)(v.Thumb,{"data-slot":"slider-thumb",className:"block size-4 shrink-0 rounded-full border border-primary bg-white shadow-sm ring-ring/50 transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50"},t))]})}var j=a(28310),N=a(22841),y=a(22281);let w=["analyze","chat","rag","embed","quick"],k={analyze:{title:"Analyze",help:"Builds and refreshes the knowledge base. Agentic — runs through Claude Code or Codex with file-write tools."},chat:{title:"Chat",help:"Interactive chat over a folder's KB. Agentic — uses the same harness as analyze by default."},rag:{title:"RAG",help:"Answer questions over the KB without an agent loop. Single-shot LLM call against indexed content."},embed:{title:"Embeddings",help:"Vectorize MD files for retrieval. Ollama runs embedding models locally (e.g. nomic-embed-text)."},quick:{title:"Quick actions",help:"Tiny one-shot calls — generates topic titles, summary snippets, labels. Pick a fast/cheap model."}},S=y.Ik({"claude-code":y.Ik({enabled:y.zM().default(!0)}),codex:y.Ik({enabled:y.zM().default(!0)}),ollama:y.Ik({enabled:y.zM().default(!0),baseUrl:y.Yj().url().default("http://localhost:11434")})}),R=y.Ik({harness:y.k5(["claude-code","codex","ollama"]),model:y.Yj().min(1),allowedTools:y.YO(y.Yj()).default([])}),A=["english","русский","espa\xf1ol","deutsch","fran\xe7ais","中文","日本語"],C=["auto","jpeg","webp","original"],z=y.Ik({enabled:y.zM().default(!0),maxDimension:y.ai().int().min(256).max(8192).default(2e3),quality:y.ai().int().min(40).max(100).default(85),format:y.k5(C).default("auto")});y.Ik({version:y.eu(1).default(1),language:y.Yj().min(1).default("english"),onboardedAt:y.Yj().optional(),userName:y.Yj().default(""),timezone:y.Yj().default(""),uiMode:y.k5(["simple","advanced"]).default("simple"),imageProcessing:z.default({enabled:!0,maxDimension:2e3,quality:85,format:"auto"}),harnesses:S.default({"claude-code":{enabled:!0},codex:{enabled:!0},ollama:{enabled:!0,baseUrl:"http://localhost:11434"}}),assignments:y.Ik({analyze:R,chat:R,rag:R,embed:R,quick:R}).default({analyze:{harness:"claude-code",model:"claude-opus-4-7",allowedTools:["Read","Write","Edit","LS","Glob","Grep","WebSearch","WebFetch"]},chat:{harness:"claude-code",model:"claude-sonnet-4-6",allowedTools:["Read","LS","Glob","Grep","WebSearch","WebFetch"]},rag:{harness:"ollama",model:"llama3.1:8b",allowedTools:[]},embed:{harness:"ollama",model:"nomic-embed-text",allowedTools:[]},quick:{harness:"claude-code",model:"claude-haiku-4-5",allowedTools:[]}}),mapServices:y.Ik({enabled:y.YO(y.Yj()).default(["google","yandex","apple","osm"])}).default({enabled:["google","yandex","apple","osm"]}),ngrok:y.Ik({authtoken:y.Yj().default(""),apiKey:y.Yj().default(""),domain:y.Yj().default(""),port:y.ai().int().min(1).max(65535).default(3210)}).default({authtoken:"",apiKey:"",domain:"",port:3210})}).parse({});var P=a(8096),T=a(13704),U=a(57118),M=a(71651),L=a(49881),_=a(7911);let J=(0,_.createServerReference)("00bf52561e1faf384cd9c16ea522f9afefa2bc5109",_.callServer,void 0,_.findSourceMapURL,"listTemplatesAction"),F=(0,_.createServerReference)("408f451d9aa3f2cc4bacb2119c3a50eede9f2603e3",_.callServer,void 0,_.findSourceMapURL,"loadTemplateAction"),E=(0,_.createServerReference)("406d209d4f41413c4c2786567fdf577a03659c0d86",_.callServer,void 0,_.findSourceMapURL,"mergeTemplateAction"),I=(0,_.createServerReference)("6083ca380f0899770edcff2eca98071bc6d8f83f37",_.callServer,void 0,_.findSourceMapURL,"saveTemplateAction"),O=(0,_.createServerReference)("40dbed8ba6d745963564628abc3fef7db200b2cbe8",_.callServer,void 0,_.findSourceMapURL,"resetTemplateAction"),W={body:"",defaultBody:"",missingSections:[],path:"",loading:!0,saving:!1,resetting:!1,merging:!1,variables:[]};function $(){let[e,t]=(0,r.useState)([]),[a,n]=(0,r.useState)(null),[o,c]=(0,r.useState)({}),[,x]=(0,r.useTransition)(),[,h]=(0,r.useTransition)();(0,r.useEffect)(()=>{(async()=>{let e=await J();t(e),e[0]&&n(e[0].name);let a={};for(let t of e)a[t.name]={...W};for(let t of(c(a),e))p(t.name)})()},[]);let p=async e=>{c(t=>{var a;return{...t,[e]:{...null!=(a=t[e])?a:W,loading:!0}}});let t=await F(e);if(!t.ok){d.oR.error("Load failed: ".concat(t.error)),c(t=>{var a;return{...t,[e]:{...null!=(a=t[e])?a:W,loading:!1}}});return}c(a=>({...a,[e]:{body:t.body,defaultBody:t.defaultBody,missingSections:t.missingSections,path:t.path,loading:!1,saving:!1,resetting:!1,merging:!1,variables:t.variables}}))};return 0===e.length?(0,s.jsx)(u.Zp,{children:(0,s.jsxs)(u.Wu,{className:"py-6 text-sm text-muted-foreground",children:[(0,s.jsx)(i.A,{className:"inline h-4 w-4 animate-spin mr-2"})," Loading templates…"]})}):(0,s.jsxs)(L.tU,{value:null!=a?a:e[0].name,onValueChange:n,children:[(0,s.jsx)(L.j7,{children:e.map(e=>(0,s.jsx)(L.Xi,{value:e.name,children:e.label},e.name))}),e.map(e=>{var t;let a=null!=(t=o[e.name])?t:W;return(0,s.jsx)(L.av,{value:e.name,className:"mt-3",children:(0,s.jsx)(u.Zp,{children:(0,s.jsxs)(u.Wu,{className:"pt-6 space-y-3",children:[a.missingSections.length>0&&(0,s.jsxs)("div",{className:"rounded border border-amber-300 bg-amber-50 p-3 text-xs text-amber-900 flex items-start gap-2",children:[(0,s.jsx)(P.A,{className:"h-4 w-4 mt-0.5 shrink-0"}),(0,s.jsxs)("div",{className:"flex-1 space-y-1",children:[(0,s.jsxs)("div",{className:"font-medium",children:["Шаблон по умолчанию обновился (",a.missingSections.length," ","новых секций)"]}),(0,s.jsxs)("div",{className:"text-amber-800/80",children:["Отсутствует в твоём файле:"," ",a.missingSections.map((e,t)=>(0,s.jsxs)("span",{children:[(0,s.jsxs)("code",{className:"font-mono",children:["## ",e]}),t<a.missingSections.length-1?", ":""]},e))]})]}),(0,s.jsxs)(m.$,{size:"sm",variant:"outline",onClick:()=>{var t;o[t=e.name]&&(c(e=>{var a;return{...e,[t]:{...null!=(a=e[t])?a:W,merging:!0}}}),(async()=>{let e=await E(t);if(!e.ok){d.oR.error("Merge failed: ".concat(e.error)),c(e=>{var a;return{...e,[t]:{...null!=(a=e[t])?a:W,merging:!1}}});return}d.oR.success(0===e.appended.length?"Уже актуально":"Добавлено ".concat(e.appended.length," секций: ").concat(e.appended.join(", "))),c(a=>{var s;return{...a,[t]:{...null!=(s=a[t])?s:W,body:e.body,missingSections:[],merging:!1}}})})())},disabled:a.merging||a.saving||a.resetting,className:"border-amber-400 hover:bg-amber-100 shrink-0",children:[a.merging?(0,s.jsx)(i.A,{className:"mr-1 h-3.5 w-3.5 animate-spin"}):(0,s.jsx)(T.A,{className:"mr-1 h-3.5 w-3.5"}),"Добавить недостающее"]})]}),(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-xs",children:[(0,s.jsx)("span",{className:"text-muted-foreground",children:"Variables:"}),a.variables.map(e=>(0,s.jsx)(j.E,{variant:"outline",className:"font-mono",children:"{{".concat(e,"}}")},e))]}),(0,s.jsx)(M.T,{value:a.body,onChange:t=>{var a,s;return a=e.name,s=t.target.value,void c(e=>{var t;let r=null!=(t=e[a])?t:W;return{...e,[a]:{...r,body:s}}})},rows:18,className:"font-mono text-xs",disabled:a.loading,placeholder:a.loading?"loading…":""}),(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsx)("div",{className:"text-xs text-muted-foreground font-mono truncate",children:a.path}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsxs)(m.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>{var t;return t=e.name,void(confirm("Reset ".concat(t,".md to the default template?"))&&h(async()=>{var e;let a=null!=(e=o[t])?e:W;c(e=>({...e,[t]:{...a,resetting:!0}}));let s=await O(t);c(e=>{var a;let r=null!=(a=e[t])?a:W;return{...e,[t]:{...r,resetting:!1,...s.ok&&s.body?{body:s.body}:{}}}}),s.ok?d.oR.success("".concat(t,".md reset")):d.oR.error("Reset failed: ".concat(s.error))}))},disabled:a.resetting||a.saving,children:[(0,s.jsx)(U.A,{className:"mr-1 h-4 w-4 ".concat(a.resetting?"animate-spin":"")}),"Reset to default"]}),(0,s.jsx)(m.$,{type:"button",size:"sm",onClick:()=>{var t;return t=e.name,void x(async()=>{let e=o[t];if(!e)return;c(a=>({...a,[t]:{...e,saving:!0}}));let a=await I(t,e.body);c(e=>{var a;let s=null!=(a=e[t])?a:W;return{...e,[t]:{...s,saving:!1}}}),a.ok?d.oR.success("".concat(t,".md saved")):d.oR.error("Save failed: ".concat(a.error))})},disabled:a.saving||a.loading,children:a.saving?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(i.A,{className:"mr-1 h-4 w-4 animate-spin"})," ","Saving…"]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(l.A,{className:"mr-1 h-4 w-4"})," Save template"]})})]})]})]})})},e.name)})]})}var D=a(69285),B=a(487),G=a(35687),K=a(46972),Z=a(41379),q=a(13561);let V=(0,_.createServerReference)("40aa82a21d4b1b6160c65200c455bea8cf2451cd47",_.callServer,void 0,_.findSourceMapURL,"startMcpSetupAction"),Y=(0,_.createServerReference)("009e0295b2893e1fdc007eaca0096f68604cabf5ac",_.callServer,void 0,_.findSourceMapURL,"listMcpServersAction"),H=(0,_.createServerReference)("40ddab54ece122be3d2610c21c94467895c72781d9",_.callServer,void 0,_.findSourceMapURL,"removeMcpServerAction"),X=(0,_.createServerReference)("40df5f1015ca403bd9781f53de9c2e7974c468449f",_.callServer,void 0,_.findSourceMapURL,"testMcpServerAction"),Q=(0,_.createServerReference)("4054f0c0c269d28e5be75669a7dc0df22ad664f1a8",_.callServer,void 0,_.findSourceMapURL,"addMcpServerAction");function ee(){let[e,t]=(0,r.useState)([]),[a,n]=(0,r.useTransition)(),[l,o]=(0,r.useState)(!1),[c,h]=(0,r.useState)(""),[p,f]=(0,r.useTransition)(),g=(0,D.useRouter)(),v=()=>{let e=c.trim();if(!e)return void d.oR.error("Опиши что подключить");f(async()=>{let t=await V(e);if(!t.ok)return void d.oR.error(t.error);d.oR.success("Открываю чат с агентом-установщиком"),h(""),g.push("/roots/".concat(t.rootId,"/chat/").concat(t.topicId))})},b=()=>{n(async()=>{let e=await Y();if(!e.ok)return void d.oR.error(e.error);t(e.servers)})};(0,r.useEffect)(()=>{b()},[]);let N=async e=>{if(!confirm('Удалить MCP-сервер "'.concat(e,'"?')))return;let t=await H(e);if(!t.ok){var a;d.oR.error(null!=(a=t.error)?a:"fail");return}d.oR.success("Удалён"),b()};return(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsx)(u.Zp,{className:"reflex-gradient p-[2px]",children:(0,s.jsxs)("div",{className:"rounded-[7px] bg-background/95 p-4 space-y-2",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 text-sm font-medium",children:[(0,s.jsx)(B.A,{className:"h-4 w-4"}),(0,s.jsx)("span",{children:"Подключить через AI-мастер"})]}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:"Скажи человеческим языком (\xabподключи google calendar\xbb, \xabдобавь github mcp\xbb). Агент сам найдёт нужный пакет, объяснит где взять токен/выйти на OAuth, и выдаст готовую карточку — тебе останется только её одобрить."}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)(x.p,{value:c,onChange:e=>h(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),v())},placeholder:"Например: подключи google calendar",disabled:p,className:"flex-1"}),(0,s.jsxs)(m.$,{type:"button",onClick:v,disabled:p||!c.trim(),className:"gap-2",children:[p?(0,s.jsx)(i.A,{className:"h-4 w-4 animate-spin"}):(0,s.jsx)(P.A,{className:"h-4 w-4"}),"Запустить"]})]}),(0,s.jsx)("p",{className:"text-[10px] text-muted-foreground",children:"Откроется чат в твоём первом проекте — там агент задаст уточнения и предложит конфиг. Конфиг сохранится в реестр после твоего \xabЗарегистрировать\xbb."})]})}),a&&0===e.length?(0,s.jsx)(u.Zp,{children:(0,s.jsxs)(u.Wu,{className:"py-6 text-sm text-muted-foreground",children:[(0,s.jsx)(i.A,{className:"inline h-4 w-4 animate-spin mr-2"})," Loading…"]})}):0===e.length?(0,s.jsx)(u.Zp,{className:"border-dashed",children:(0,s.jsxs)(u.Wu,{className:"py-6 text-sm text-muted-foreground text-center",children:["Пока ни одного MCP-сервера. Добавь свой первый — он станет доступен утилитам (через ",(0,s.jsx)("code",{children:"manifest.mcpServers"}),") и чату."]})}):(0,s.jsx)("div",{className:"space-y-2",children:e.map(e=>{var t;return(0,s.jsx)(u.Zp,{children:(0,s.jsxs)(u.Wu,{className:"py-3 px-4 flex items-center gap-3",children:[(0,s.jsx)(G.A,{className:"h-4 w-4 text-muted-foreground"}),(0,s.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"font-mono text-sm",children:e.id}),(0,s.jsx)(j.E,{variant:"outline",className:"text-[10px]",children:e.config.transport}),(0,s.jsx)("span",{className:"text-sm text-muted-foreground truncate",children:e.label})]}),(0,s.jsx)("div",{className:"text-[11px] text-muted-foreground font-mono truncate",children:"stdio"===e.config.transport?"".concat(e.config.command," ").concat((null!=(t=e.config.args)?t:[]).join(" ")):e.config.url}),e.description&&(0,s.jsx)("div",{className:"text-[11px] text-muted-foreground truncate",children:e.description})]}),(0,s.jsx)(m.$,{type:"button",size:"icon",variant:"ghost",onClick:()=>void N(e.id),title:"Удалить",className:"h-8 w-8",children:(0,s.jsx)(K.A,{className:"h-3.5 w-3.5"})})]})},e.id)})}),l?(0,s.jsx)(et,{existingIds:e.map(e=>e.id),onCancel:()=>o(!1),onAdded:()=>{o(!1),b()}}):(0,s.jsxs)(m.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>o(!0),className:"gap-2 text-muted-foreground",children:[(0,s.jsx)(Z.A,{className:"h-4 w-4"}),"Добавить вручную"]})]})}function et(e){var t;let{existingIds:a,onCancel:n,onAdded:l}=e,[c,p]=(0,r.useState)(""),[f,g]=(0,r.useState)(""),[v,b]=(0,r.useState)(""),[j,y]=(0,r.useState)("stdio"),[w,k]=(0,r.useState)(""),[S,R]=(0,r.useState)(""),[A,C]=(0,r.useState)(""),[z,P]=(0,r.useState)(""),[T,U]=(0,r.useState)(""),[L,_]=(0,r.useState)(null),[J,F]=(0,r.useTransition)(),[E,I]=(0,r.useTransition)(),O=()=>{if("stdio"===j){if(!w.trim())return{ok:!1,error:"command required"};try{let e=A.trim()?JSON.parse(A):{};return{ok:!0,config:{transport:"stdio",command:w.trim(),args:S.trim()?S.trim().split(/\s+/).filter(Boolean):[],env:e}}}catch(e){return{ok:!1,error:"env must be JSON object"}}}if(!z.trim())return{ok:!1,error:"URL required"};try{let e=T.trim()?JSON.parse(T):{};return{ok:!0,config:{transport:j,url:z.trim(),headers:e}}}catch(e){return{ok:!1,error:"headers must be JSON object"}}};return(0,s.jsx)(u.Zp,{children:(0,s.jsxs)(u.Wu,{className:"pt-5 space-y-3",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsxs)("h3",{className:"text-sm font-medium flex items-center gap-2",children:[(0,s.jsx)(G.A,{className:"h-4 w-4"})," Новый MCP-сервер"]}),(0,s.jsx)(m.$,{type:"button",size:"icon",variant:"ghost",onClick:n,className:"h-7 w-7",children:(0,s.jsx)(q.A,{className:"h-3.5 w-3.5"})})]}),(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)(h.J,{className:"text-xs",children:"ID (kebab-case)"}),(0,s.jsx)(x.p,{value:c,onChange:e=>p(e.target.value),placeholder:"github",className:"font-mono text-sm"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)(h.J,{className:"text-xs",children:"Label"}),(0,s.jsx)(x.p,{value:f,onChange:e=>g(e.target.value),placeholder:"GitHub",className:"text-sm"})]})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)(h.J,{className:"text-xs",children:"Description (optional)"}),(0,s.jsx)(x.p,{value:v,onChange:e=>b(e.target.value),placeholder:"Доступ к репам, issues, PR-ам.",className:"text-sm"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)(h.J,{className:"text-xs",children:"Transport"}),(0,s.jsxs)(N.l6,{value:j,onValueChange:e=>y(e),children:[(0,s.jsx)(N.bq,{className:"w-48",children:(0,s.jsx)(N.yv,{})}),(0,s.jsxs)(N.gC,{children:[(0,s.jsx)(N.eb,{value:"stdio",children:"stdio (subprocess)"}),(0,s.jsx)(N.eb,{value:"http",children:"HTTP (Streamable)"}),(0,s.jsx)(N.eb,{value:"sse",children:"SSE (legacy)"})]})]})]}),"stdio"===j?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{children:[(0,s.jsx)(h.J,{className:"text-xs",children:"Command"}),(0,s.jsx)(x.p,{value:w,onChange:e=>k(e.target.value),placeholder:"npx",className:"font-mono text-sm"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)(h.J,{className:"text-xs",children:"Args"}),(0,s.jsx)(x.p,{value:S,onChange:e=>R(e.target.value),placeholder:"-y @modelcontextprotocol/server-github",className:"font-mono text-sm"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)(h.J,{className:"text-xs",children:"Env (JSON, optional)"}),(0,s.jsx)(M.T,{value:A,onChange:e=>C(e.target.value),placeholder:'{"GITHUB_TOKEN": "ghp_…"}',className:"font-mono text-xs",rows:3})]})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{children:[(0,s.jsx)(h.J,{className:"text-xs",children:"URL"}),(0,s.jsx)(x.p,{value:z,onChange:e=>P(e.target.value),placeholder:"https://example.com/mcp",className:"font-mono text-sm"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)(h.J,{className:"text-xs",children:"Headers (JSON, optional)"}),(0,s.jsx)(M.T,{value:T,onChange:e=>U(e.target.value),placeholder:'{"Authorization": "Bearer …"}',className:"font-mono text-xs",rows:3})]})]}),L&&(0,s.jsxs)("div",{className:"rounded border border-emerald-300 bg-emerald-50 px-3 py-2 text-xs flex items-center gap-2 text-emerald-900",children:[(0,s.jsx)(o.A,{className:"h-3.5 w-3.5"}),(0,s.jsxs)("span",{children:["Подключился к"," ",(0,s.jsx)("span",{className:"font-mono",children:null!=(t=L.serverName)?t:"(anonymous)"})," ","\xb7 ",L.toolsCount," tools"]})]}),(0,s.jsxs)("div",{className:"flex justify-end gap-2 pt-1",children:[(0,s.jsxs)(m.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>{let e=O();if(!e.ok)return void d.oR.error(e.error);_(null),F(async()=>{var t;let a=await X(e.config);if(!a.ok)return void d.oR.error("Connect failed: "+a.error);_({...a.serverName?{serverName:a.serverName}:{},toolsCount:a.tools.length}),f||g(null!=(t=a.serverName)?t:c)})},disabled:J,children:[J?(0,s.jsx)(i.A,{className:"mr-1 h-3.5 w-3.5 animate-spin"}):null,"Проверить"]}),(0,s.jsxs)(m.$,{type:"button",size:"sm",onClick:()=>{let e=c.trim().toLowerCase();if(!e)return void d.oR.error("id required");if(a.includes(e))return void d.oR.error('id "'.concat(e,'" already used'));if(!f.trim())return void d.oR.error("label required");let t=O();if(!t.ok)return void d.oR.error(t.error);I(async()=>{let a=await Q({id:e,label:f.trim(),description:v.trim(),config:t.config});if(!a.ok)return void d.oR.error(a.error);d.oR.success('MCP-сервер "'.concat(e,'" добавлен')),l()})},disabled:E||!L,children:[E?(0,s.jsx)(i.A,{className:"mr-1 h-3.5 w-3.5 animate-spin"}):null,"Сохранить"]})]}),!L&&(0,s.jsx)("p",{className:"text-[11px] text-muted-foreground",children:"Сначала \xabПроверить\xbb чтобы убедиться, что сервер запускается."})]})})}var ea=a(94151),es=a(43153),er=a(69709),en=a(85924),ei=a(39783),el=a(25104),eo=a(66459),ec=a(46227),ed=a(39904),em=a(13910),eu=a(18912);let ex=(0,_.createServerReference)("4049ec7768b13938703f1fb4173df3d5753c3ce119",_.callServer,void 0,_.findSourceMapURL,"probeOAuthAction"),eh=(0,_.createServerReference)("40364b13c05c2230c34c1b0f01b941614e17551395",_.callServer,void 0,_.findSourceMapURL,"disconnectOAuthAction"),ep=(0,_.createServerReference)("40671de29c2d1b1ab4fd64258e9549d4516ab8b235",_.callServer,void 0,_.findSourceMapURL,"deleteOAuthClientAction"),ef=(0,_.createServerReference)("404d336b4721b26577be26c8663be4848ebd4ba583",_.callServer,void 0,_.findSourceMapURL,"removeCustomOAuthProviderAction"),eg=(0,_.createServerReference)("407f679b96476898f6d2fda423b4334978b2760424",_.callServer,void 0,_.findSourceMapURL,"addCustomOAuthProviderAction");function ev(){let[e,t]=(0,r.useState)([]),[a,n]=(0,r.useTransition)(),[l,o]=(0,r.useState)(!1),c=()=>{n(async()=>{let e=await (0,ec.o)();if(!e.ok)return void d.oR.error(e.error);t(e.statuses)})};return((0,r.useEffect)(()=>{c()},[]),a&&0===e.length)?(0,s.jsx)(u.Zp,{children:(0,s.jsxs)(u.Wu,{className:"py-6 text-sm text-muted-foreground",children:[(0,s.jsx)(i.A,{className:"inline h-4 w-4 animate-spin mr-2"})," Loading…"]})}):(0,s.jsxs)("div",{className:"space-y-2",children:[e.map(e=>(0,s.jsx)(eb,{status:e,onChanged:c},e.id)),l?(0,s.jsx)(ej,{existingIds:e.map(e=>e.id),onCancel:()=>o(!1),onAdded:()=>{o(!1),c()}}):(0,s.jsxs)(m.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>o(!0),className:"gap-2 text-muted-foreground",children:[(0,s.jsx)(Z.A,{className:"h-4 w-4"}),"Добавить кастомный provider"]})]})}function eb(e){let{status:t,onChanged:a}=e,[n,o]=(0,r.useState)(!1),[c,p]=(0,r.useState)(null),[f,g]=(0,r.useState)([]),[v,b]=(0,r.useState)(""),[N,y]=(0,r.useState)(""),[w,k]=(0,r.useState)(""),[S,R]=(0,r.useTransition)(),[A,C]=(0,r.useTransition)(),[z,P]=(0,r.useTransition)();(0,r.useEffect)(()=>{n&&(async()=>{let e=await (0,ed.J)(t.id);if(!e.ok)return d.oR.error(e.error);p(e.client),g(e.defaultScopes),e.client&&(b(e.client.clientId),k(e.client.scopes.join(" ")))})()},[n]);let T=async()=>{if(!confirm("Удалить сохранённые токены для ".concat(t.label,"?")))return;let e=await eh(t.id);if(!e.ok)return void d.oR.error(e.error);d.oR.success("Disconnected"),a()},M=async()=>{if(!confirm("Удалить весь OAuth-конфиг для ".concat(t.label," (client_id, secret и токены)?")))return;let e=await ep(t.id);if(!e.ok)return void d.oR.error(e.error);d.oR.success("Forgotten"),p(null),b(""),k(""),a()};return(0,s.jsx)(u.Zp,{children:(0,s.jsxs)(u.Wu,{className:"py-3 px-4",children:[(0,s.jsxs)("div",{className:"flex items-center gap-3",children:[(0,s.jsx)(ea.A,{className:"h-4 w-4 text-muted-foreground shrink-0"}),(0,s.jsx)("div",{className:"flex-1 min-w-0",children:(0,s.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,s.jsx)("span",{className:"text-sm font-medium",children:t.label}),(0,s.jsx)("span",{className:"font-mono text-[10px] text-muted-foreground",children:t.id}),"user"===t.origin&&(0,s.jsx)(j.E,{variant:"outline",className:"text-[10px]",children:"custom"}),t.hasClient?t.hasTokens?(0,s.jsxs)(j.E,{variant:"secondary",className:"gap-1",children:[(0,s.jsx)(es.A,{className:"h-3 w-3"})," авторизован"]}):(0,s.jsx)(j.E,{variant:"outline",className:"border-amber-400 text-amber-700",children:"готов к авторизации"}):(0,s.jsx)(j.E,{variant:"outline",children:"не настроен"}),t.hasTokens&&t.expiresAt&&(0,s.jsxs)("span",{className:"text-[10px] text-muted-foreground",children:["истекает"," ",new Date(t.expiresAt).toLocaleTimeString()]})]})}),(0,s.jsxs)(m.$,{type:"button",size:"sm",variant:"ghost",onClick:()=>o(e=>!e),className:"gap-1",children:[(0,s.jsx)(er.A,{className:"h-3.5 w-3.5 transition-transform ".concat(n?"rotate-180":"")}),n?"Свернуть":"Настроить"]})]}),n&&(0,s.jsxs)("div",{className:"mt-4 pl-7 space-y-3 border-l-2 ml-1.5",children:[t.setupHint&&(0,s.jsxs)("div",{className:"rounded border border-amber-200 bg-amber-50 px-3 py-2 text-[11px] text-amber-900 flex items-start gap-2",children:[(0,s.jsx)(en.A,{className:"h-3.5 w-3.5 mt-0.5 shrink-0"}),(0,s.jsx)("span",{children:t.setupHint})]}),(0,s.jsxs)("a",{href:t.consoleUrl,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1 text-xs text-violet-700 hover:underline",children:[(0,s.jsx)(ei.A,{className:"h-3 w-3"}),"Открыть консоль ",t.label]}),t.setupSteps&&t.setupSteps.length>0&&(0,s.jsxs)("div",{className:"rounded border border-violet-200 bg-violet-50/30 p-3",children:[(0,s.jsx)("div",{className:"text-[10px] uppercase tracking-wider text-muted-foreground mb-2",children:"Пошагово"}),(0,s.jsx)(eo.O,{steps:t.setupSteps})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)(h.J,{className:"text-xs",children:"Client ID"}),(0,s.jsx)(x.p,{value:v,onChange:e=>b(e.target.value),placeholder:"123456789-xxxxx.apps.googleusercontent.com",className:"font-mono text-xs h-8"})]}),(0,s.jsxs)("div",{children:[(0,s.jsxs)(h.J,{className:"text-xs",children:["Client secret",(null==c?void 0:c.hasSecret)&&(0,s.jsx)("span",{className:"ml-2 text-muted-foreground",children:"(сохранён, оставь пустым чтобы не менять)"})]}),(0,s.jsx)(x.p,{type:"password",value:N,onChange:e=>y(e.target.value),placeholder:(null==c?void 0:c.hasSecret)?"••••":"GOCSPX-…",className:"font-mono text-xs h-8"})]}),(0,s.jsxs)("div",{children:[(0,s.jsxs)(h.J,{className:"text-xs",children:["Scopes"," ",(0,s.jsxs)("span",{className:"text-muted-foreground",children:["(по умолчанию: ",f.join(" ")||"—",")"]})]}),(0,s.jsx)(x.p,{value:w,onChange:e=>k(e.target.value),placeholder:f.join(" "),className:"font-mono text-xs h-8"})]}),(0,s.jsxs)("div",{className:"flex flex-wrap gap-2 pt-1",children:[(0,s.jsxs)(m.$,{type:"button",size:"sm",onClick:()=>{R(async()=>{let e=w.trim().split(/[\s,]+/).filter(e=>e.length>0),s=await (0,em.S)({provider:t.id,clientId:v,...N?{clientSecret:N}:{},...e.length>0?{scopes:e}:{}});if(!s.ok)return void d.oR.error(s.error);d.oR.success("Client config saved"),y(""),a();let r=await (0,ed.J)(t.id);r.ok&&p(r.client)})},disabled:S||!v.trim(),children:[S?(0,s.jsx)(i.A,{className:"mr-1 h-3.5 w-3.5 animate-spin"}):(0,s.jsx)(l.A,{className:"mr-1 h-3.5 w-3.5"}),"Сохранить"]}),(0,s.jsxs)(m.$,{type:"button",size:"sm",variant:"outline",onClick:()=>{C(async()=>{let e=await (0,eu.T)(t.id);if(!e.ok)return void d.oR.error(e.error);window.open(e.authorizeUrl,"reflex-oauth","width=600,height=720,noopener=no")||window.open(e.authorizeUrl,"_blank","noopener");let s=Date.now(),r=async()=>{if(Date.now()-s>3e5)return void d.oR.error("Authorization timed out");let e=await (0,ec.o)();if(e.ok){let s=e.statuses.find(e=>e.id===t.id);if((null==s?void 0:s.hasTokens)&&!t.hasTokens){d.oR.success("Authorized"),a();return}}setTimeout(()=>void r(),1500)};r()})},disabled:A||!c,className:"gap-1",children:[A?(0,s.jsx)(i.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,s.jsx)(ei.A,{className:"h-3.5 w-3.5"}),t.hasTokens?"Re-authorize":"Authorize"]}),t.hasTokens&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(m.$,{type:"button",size:"sm",variant:"outline",onClick:()=>{P(async()=>{let e=await ex(t.id);if(!e.ok){var a;d.oR.error(null!=(a=e.error)?a:"probe failed");return}d.oR.success("Access token живой")})},disabled:z,children:[z&&(0,s.jsx)(i.A,{className:"mr-1 h-3.5 w-3.5 animate-spin"}),(0,s.jsx)(G.A,{className:"mr-1 h-3.5 w-3.5"})," Проверить токен"]}),(0,s.jsxs)(m.$,{type:"button",size:"sm",variant:"ghost",onClick:T,children:[(0,s.jsx)(el.A,{className:"mr-1 h-3.5 w-3.5"}),"Disconnect"]})]}),c&&(0,s.jsxs)(m.$,{type:"button",size:"sm",variant:"ghost",onClick:M,className:"text-muted-foreground",children:[(0,s.jsx)(U.A,{className:"mr-1 h-3.5 w-3.5"}),"Forget client"]}),"user"===t.origin&&(0,s.jsxs)(m.$,{type:"button",size:"sm",variant:"ghost",className:"text-destructive ml-auto",onClick:async()=>{if(!confirm('Удалить custom provider "'.concat(t.id,'" полностью (вместе с client + tokens)?')))return;let e=await ef(t.id);if(!e.ok)return void d.oR.error(e.error);await ep(t.id),d.oR.success("Provider удалён"),a()},children:[(0,s.jsx)(K.A,{className:"mr-1 h-3.5 w-3.5"}),"Удалить provider"]})]}),(0,s.jsxs)("p",{className:"text-[10px] text-muted-foreground",children:["Используй ",(0,s.jsxs)("code",{className:"font-mono",children:["$oauth:",t.id]})," в env/headers любого MCP-сервера — Reflex подставит свежий access_token при каждом вызове (с авто-refresh'ем)."]})]})]})})}function ej(e){let{existingIds:t,onCancel:a,onAdded:n}=e,[l,o]=(0,r.useState)(""),[c,p]=(0,r.useState)(""),[f,g]=(0,r.useState)(""),[v,b]=(0,r.useState)(""),[j,N]=(0,r.useState)(""),[y,w]=(0,r.useState)(""),[k,S]=(0,r.useState)(""),[R,A]=(0,r.useState)(!0),[C,z]=(0,r.useState)(!0),[P,T]=(0,r.useState)(!0),[U,L]=(0,r.useState)(""),[_,J]=(0,r.useTransition)();return(0,s.jsx)(u.Zp,{children:(0,s.jsxs)(u.Wu,{className:"pt-5 space-y-3",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsxs)("h3",{className:"text-sm font-medium flex items-center gap-2",children:[(0,s.jsx)(Z.A,{className:"h-4 w-4"})," Кастомный OAuth provider"]}),(0,s.jsx)(m.$,{type:"button",size:"icon",variant:"ghost",onClick:a,className:"h-7 w-7",children:(0,s.jsx)(q.A,{className:"h-3.5 w-3.5"})})]}),(0,s.jsxs)("p",{className:"text-[11px] text-muted-foreground",children:["Любой OAuth 2.0 сервис со стандартным Authorization Code flow. Redirect URI:"," ",(0,s.jsx)("code",{className:"font-mono",children:"http://localhost:3210/api/oauth/callback"}),"."]}),(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)(h.J,{className:"text-xs",children:"ID (kebab-case)"}),(0,s.jsx)(x.p,{value:l,onChange:e=>o(e.target.value),placeholder:"dropbox",className:"font-mono text-sm h-8"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)(h.J,{className:"text-xs",children:"Label"}),(0,s.jsx)(x.p,{value:c,onChange:e=>p(e.target.value),placeholder:"Dropbox",className:"text-sm h-8"})]})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)(h.J,{className:"text-xs",children:"Authorize URL"}),(0,s.jsx)(x.p,{value:f,onChange:e=>g(e.target.value),placeholder:"https://example.com/oauth/authorize",className:"font-mono text-sm h-8"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)(h.J,{className:"text-xs",children:"Token URL"}),(0,s.jsx)(x.p,{value:v,onChange:e=>b(e.target.value),placeholder:"https://example.com/oauth/token",className:"font-mono text-sm h-8"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)(h.J,{className:"text-xs",children:"Default scopes (space-separated)"}),(0,s.jsx)(x.p,{value:j,onChange:e=>N(e.target.value),placeholder:"read write",className:"font-mono text-sm h-8"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)(h.J,{className:"text-xs",children:"Console URL (где брать credentials)"}),(0,s.jsx)(x.p,{value:y,onChange:e=>w(e.target.value),placeholder:"https://www.dropbox.com/developers/apps",className:"font-mono text-sm h-8"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)(h.J,{className:"text-xs",children:"Setup hint (показывается пользователю)"}),(0,s.jsx)(M.T,{value:k,onChange:e=>S(e.target.value),placeholder:"Иди в Dropbox App Console → Create App → Permission type: Scoped access. Redirect URI: http://localhost:3210/api/oauth/callback.",className:"text-xs",rows:3})]}),(0,s.jsxs)("div",{className:"grid grid-cols-3 gap-3 text-xs",children:[(0,s.jsxs)("label",{className:"flex items-center gap-2",children:[(0,s.jsx)("input",{type:"checkbox",checked:R,onChange:e=>A(e.target.checked)}),"PKCE"]}),(0,s.jsxs)("label",{className:"flex items-center gap-2",children:[(0,s.jsx)("input",{type:"checkbox",checked:C,onChange:e=>z(e.target.checked)}),"refresh_token"]}),(0,s.jsxs)("label",{className:"flex items-center gap-2",children:[(0,s.jsx)("input",{type:"checkbox",checked:P,onChange:e=>T(e.target.checked)}),"client_secret"]})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)(h.J,{className:"text-xs",children:"Extra authorize params (JSON, optional)"}),(0,s.jsx)(M.T,{value:U,onChange:e=>L(e.target.value),placeholder:'{"access_type": "offline", "prompt": "consent"}',className:"font-mono text-xs",rows:2})]}),(0,s.jsxs)("div",{className:"flex justify-end gap-2 pt-1",children:[(0,s.jsx)(m.$,{type:"button",variant:"ghost",size:"sm",onClick:a,children:"Отмена"}),(0,s.jsxs)(m.$,{type:"button",size:"sm",onClick:()=>{let e=l.trim().toLowerCase();if(!e)return void d.oR.error("id обязателен");if(t.includes(e))return void d.oR.error('provider "'.concat(e,'" уже существует'));if(!f.trim()||!v.trim())return void d.oR.error("authorizeUrl и tokenUrl обязательны");let a={};if(U.trim())try{a=JSON.parse(U)}catch(e){d.oR.error("extraAuthorizeParams должен быть JSON-объектом");return}let s=j.trim().split(/[\s,]+/).filter(e=>e.length>0);J(async()=>{let t=await eg({id:e,label:c.trim()||e,authorizeUrl:f.trim(),tokenUrl:v.trim(),defaultScopes:s,supportsPKCE:R,refreshTokenSupported:C,needsClientSecret:P,extraAuthorizeParams:a,setupHint:k.trim(),consoleUrl:y.trim()||"http://localhost:3210/api/oauth/callback"});if(!t.ok)return void d.oR.error(t.error);d.oR.success('Provider "'.concat(e,'" добавлен')),n()})},disabled:_||!l.trim()||!f.trim()||!v.trim(),children:[_&&(0,s.jsx)(i.A,{className:"mr-1 h-3.5 w-3.5 animate-spin"}),"Создать provider"]})]})]})})}let eN=(0,_.createServerReference)("40468c5b8c69571e7920016705c223b3fb93f19224",_.callServer,void 0,_.findSourceMapURL,"hasApiKeyAction"),ey=(0,_.createServerReference)("4005c7c57fb9c78e219414f3ac01086fada23025d7",_.callServer,void 0,_.findSourceMapURL,"listGeminiModelsAction");var ew=a(95774);let ek=(0,_.createServerReference)("4048a385d11a64704556aef06b0e78717760f0aca5",_.callServer,void 0,_.findSourceMapURL,"saveGeminiModelChoiceAction");function eS(){let[e,t]=(0,r.useState)(!1),[a,o]=(0,r.useState)(""),[c,p]=(0,r.useState)([]),[f,g]=(0,r.useState)(""),[v,b]=(0,r.useState)(""),[N,y]=(0,r.useTransition)(),[w,k]=(0,r.useTransition)(),[S,R]=(0,r.useTransition)(),A=async()=>{t((await eN("gemini")).present)},C=function(){let t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];y(async()=>{let a=await ey(t);if(!a.ok){if(!e)return;d.oR.error(a.error);return}p(a.models),g(a.currentModel),b(a.currentVideoModel)})};(0,r.useEffect)(()=>{(async()=>{await A()})()},[]),(0,r.useEffect)(()=>{e&&C(!1)},[e]);let z=(e,t)=>{R(async()=>{let a=await ek({[e]:t||null});if(!a.ok)return void d.oR.error(a.error);d.oR.success("Сохранено"),"model"===e?g(t):b(t)})};return(0,s.jsx)(u.Zp,{children:(0,s.jsxs)(u.Wu,{className:"pt-5 space-y-4",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 text-sm font-medium",children:[(0,s.jsx)(P.A,{className:"h-4 w-4"}),(0,s.jsx)("span",{children:"Gemini API"}),e?(0,s.jsxs)(j.E,{variant:"secondary",className:"gap-1",children:[(0,s.jsx)(es.A,{className:"h-3 w-3"})," key сохранён"]}):(0,s.jsx)(j.E,{variant:"outline",children:"не настроен"})]}),(0,s.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Используется для суммаризации YouTube (нативная поддержка мультимодальных URL) ",(0,s.jsx)("strong",{children:"и для генерации картинок"})," ","через модель Nano Banana (",(0,s.jsx)("code",{className:"font-mono",children:"gemini-2.5-flash-image"}),", ~$0.04 за картинку). Ключ хранится локально в"," ",(0,s.jsx)("code",{className:"font-mono",children:"~/.reflex/api-keys/gemini.json"})," ","(0600), агентам не передаётся. Возьми ключ в"," ",(0,s.jsxs)("a",{href:"https://aistudio.google.com/apikey",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1 text-violet-700 hover:underline",children:["aistudio.google.com/apikey",(0,s.jsx)(ei.A,{className:"h-3 w-3"})]})," ","— есть бесплатный tier (15 RPM / 1500 RPD)."]}),(0,s.jsxs)("div",{className:"space-y-1.5",children:[(0,s.jsxs)(h.J,{className:"text-xs flex items-center gap-1",children:[(0,s.jsx)(ea.A,{className:"h-3 w-3"}),e?"Заменить ключ":"API key"]}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)(x.p,{type:"password",value:a,onChange:e=>o(e.target.value),placeholder:e?"••••":"AIza…",className:"font-mono text-sm flex-1 h-8",disabled:w}),(0,s.jsxs)(m.$,{type:"button",size:"sm",onClick:()=>{if(!a.trim())return void d.oR.error("Введи ключ");k(async()=>{let e=await (0,ew.A)(a.trim());if(!e.ok)return void d.oR.error(e.error);d.oR.success("Gemini key сохранён"),o(""),t(!0),C(!0)})},disabled:w||!a.trim(),className:"h-8 gap-1",children:[w?(0,s.jsx)(i.A,{className:"h-3 w-3 animate-spin"}):(0,s.jsx)(l.A,{className:"h-3 w-3"}),"Сохранить"]})]})]}),e&&(0,s.jsxs)("div",{className:"space-y-3 pt-1 border-t",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsxs)("span",{className:"text-xs text-muted-foreground",children:["Модели подтянуты с"," ",(0,s.jsx)("code",{className:"font-mono",children:"v1beta/models"})," ",c.length>0&&"(".concat(c.length,")")]}),(0,s.jsxs)(m.$,{type:"button",size:"sm",variant:"ghost",onClick:()=>C(!0),disabled:N,className:"h-7 text-xs gap-1",children:[N?(0,s.jsx)(i.A,{className:"h-3 w-3 animate-spin"}):(0,s.jsx)(n.A,{className:"h-3 w-3"}),"Обновить"]})]}),(0,s.jsx)(eR,{label:"Default model",hint:"Используется для общих вызовов Gemini, когда конкретная задача не указана.",value:f,models:c,disabled:S||N,onChange:e=>z("model",e)}),(0,s.jsx)(eR,{label:"Модель для YouTube",hint:"Для суммаризации видео. Flash-варианты быстрее и обычно достаточно умные.",value:v,models:c,disabled:S||N,onChange:e=>z("videoModel",e)})]})]})})}function eR(e){let{label:t,hint:a,value:r,models:n,disabled:i,onChange:l}=e,o=new Set(n.map(e=>e.id)).has(r)?n:r?[{id:r,displayName:"".concat(r," (saved)")},...n]:n;return(0,s.jsxs)("div",{className:"space-y-1",children:[(0,s.jsx)(h.J,{className:"text-xs",children:t}),(0,s.jsx)("p",{className:"text-[11px] text-muted-foreground",children:a}),(0,s.jsxs)(N.l6,{value:r,onValueChange:l,disabled:i,children:[(0,s.jsx)(N.bq,{className:"h-8 w-full",children:(0,s.jsx)(N.yv,{placeholder:"(default)"})}),(0,s.jsx)(N.gC,{children:o.map(e=>(0,s.jsx)(N.eb,{value:e.id,children:(0,s.jsxs)("span",{className:"flex items-baseline gap-2",children:[(0,s.jsx)("span",{className:"font-mono text-xs",children:e.id}),e.displayName&&e.displayName!==e.id&&(0,s.jsx)("span",{className:"text-[10px] text-muted-foreground",children:e.displayName})]})},e.id))})]})]})}var eA=a(39160);let eC=(0,_.createServerReference)("00f3a49f37617cc606d1d42cc2b32d06da49f2eb7e",_.callServer,void 0,_.findSourceMapURL,"braveKeyStatusAction"),ez=(0,_.createServerReference)("604446fc506d43bf6fcdaf965924e2bc9adbf2d13e",_.callServer,void 0,_.findSourceMapURL,"saveImageProviderKeyAction");function eP(){return(0,s.jsx)(u.Zp,{children:(0,s.jsxs)(u.Wu,{className:"pt-5 space-y-5",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 text-sm font-medium",children:[(0,s.jsx)(eA.A,{className:"h-4 w-4"}),(0,s.jsx)("span",{children:"Картинки из сети"})]}),(0,s.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Ключи к API stock-фотобанков. Используются виджетом \xabКартинка в KB\xbb и хост-API утилит (",(0,s.jsx)("code",{className:"font-mono",children:"reflex.images.search"}),"). Хранятся локально в ",(0,s.jsx)("code",{className:"font-mono",children:"~/.reflex/api-keys/"})," (0600)."]}),(0,s.jsx)(eT,{provider:"unsplash",label:"Unsplash",docsHref:"https://unsplash.com/developers",hint:"Бесплатно 50 запросов/час. Атрибуция авторов обязательна — модалка вставляет её автоматически."}),(0,s.jsx)(eT,{provider:"pexels",label:"Pexels",docsHref:"https://pexels.com/api/",hint:"Без жёсткого лимита для разумного использования. Атрибуция рекомендована."}),(0,s.jsx)(eT,{provider:"brave",label:"Brave (весь веб)",docsHref:"https://api-dashboard.search.brave.com/app/keys",hint:"Поиск картинок по всему вебу (не только stock). Если у тебя уже подключён Brave Search MCP — ключ оттуда подхватится автоматически, поле можно не заполнять."})]})})}function eT(e){let{provider:t,label:a,docsHref:n,hint:o}=e,[c,u]=(0,r.useState)(!1),[p,f]=(0,r.useState)(!1),[g,v]=(0,r.useState)(""),[b,N]=(0,r.useTransition)();return(0,r.useEffect)(()=>{(async()=>{let e=await eN(t);u(e.present),"brave"!==t||e.present||f((await eC()).viaMcp)})()},[t]),(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"text-sm font-medium",children:a}),c?(0,s.jsxs)(j.E,{variant:"secondary",className:"gap-1",children:[(0,s.jsx)(es.A,{className:"h-3 w-3"})," key сохранён"]}):p?(0,s.jsxs)(j.E,{variant:"secondary",className:"gap-1",children:[(0,s.jsx)(es.A,{className:"h-3 w-3"})," ключ найден через MCP"]}):(0,s.jsx)(j.E,{variant:"outline",children:"не настроен"}),(0,s.jsxs)("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:"ml-auto inline-flex items-center gap-1 text-xs text-violet-700 hover:underline",children:["docs ",(0,s.jsx)(ei.A,{className:"h-3 w-3"})]})]}),(0,s.jsx)("p",{className:"text-[11px] text-muted-foreground",children:o}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsxs)(h.J,{className:"sr-only",htmlFor:"".concat(t,"-key"),children:[(0,s.jsx)(ea.A,{className:"h-3 w-3"})," ",a," key"]}),(0,s.jsx)(x.p,{id:"".concat(t,"-key"),type:"password",value:g,onChange:e=>v(e.target.value),placeholder:c?"••••":"".concat(a," access key"),className:"font-mono text-sm flex-1 h-8",disabled:b}),(0,s.jsxs)(m.$,{type:"button",size:"sm",onClick:()=>{if(!g.trim())return void d.oR.error("Введи ключ");N(async()=>{let e=await ez(t,g.trim());if(!e.ok)return void d.oR.error(e.error);d.oR.success("".concat(a," key сохранён")),v(""),u(!0)})},disabled:b||!g.trim(),className:"h-8 gap-1",children:[b?(0,s.jsx)(i.A,{className:"h-3 w-3 animate-spin"}):(0,s.jsx)(l.A,{className:"h-3 w-3"}),"Сохранить"]})]})]})}var eU=a(23559),eM=a(68682);function eL(e){let{settings:t,onChange:a}=e,r=new Set(t.mapServices.enabled);return(0,s.jsx)(u.Zp,{children:(0,s.jsxs)(u.Wu,{className:"pt-5 space-y-3",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 text-sm font-medium",children:[(0,s.jsx)(eU.A,{className:"h-4 w-4 text-emerald-700"}),(0,s.jsx)("span",{children:"Сервисы маршрутов"})]}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:"Выбранные сервисы появятся в попапе на каждой точке карта-виджета — \xabМаршрут в…\xbb. Ссылка генерится прямо из координат, без посредников. Можно проверить превью-ссылку (точка по умолчанию — центр Москвы)."}),(0,s.jsx)("ul",{className:"space-y-1.5",children:eM.yp.map(e=>{let t=r.has(e.id);return(0,s.jsxs)("li",{className:"flex items-start gap-2 rounded-md border bg-card px-3 py-2",children:[(0,s.jsx)("input",{id:"map-svc-".concat(e.id),type:"checkbox",checked:t,onChange:()=>(e=>{let t=new Set(r);t.has(e)?t.delete(e):t.add(e),a({mapServices:{enabled:[...t]}})})(e.id),className:"mt-1 h-3.5 w-3.5"}),(0,s.jsxs)("label",{htmlFor:"map-svc-".concat(e.id),className:"min-w-0 flex-1 cursor-pointer",children:[(0,s.jsx)("div",{className:"text-sm font-medium",children:e.label}),(0,s.jsx)("p",{className:"text-[11px] text-muted-foreground mt-0.5 leading-snug",children:e.description})]}),(0,s.jsxs)("a",{href:e.urlFor(55.7558,37.6173),target:"_blank",rel:"noopener noreferrer",className:"text-[10px] text-muted-foreground hover:underline inline-flex items-center gap-0.5 shrink-0 mt-1",title:"Открыть превью-ссылку",children:["превью",(0,s.jsx)(ei.A,{className:"h-2.5 w-2.5"})]})]},e.id)})})]})})}var e_=a(2136),eJ=a(84860),eF=a(67805),eE=a(65428);let eI=(0,_.createServerReference)("00f80678accd3b2e31f8659dc0fdd525957f95fe0f",_.callServer,void 0,_.findSourceMapURL,"refreshReservedDomainsAction"),eO=(0,_.createServerReference)("4001e8b147000b89bbf5b314539f6c9ec224406802",_.callServer,void 0,_.findSourceMapURL,"patchNgrokSettingsAction"),eW=(0,_.createServerReference)("009a7e0043c585bed4ced39e313372fa5993500ff3",_.callServer,void 0,_.findSourceMapURL,"startTunnelAction"),e$=(0,_.createServerReference)("003a2fb60e9b242124f4ab6977c12d4e76f89bd900",_.callServer,void 0,_.findSourceMapURL,"stopTunnelAction"),eD=(0,_.createServerReference)("00204beee3b7b5057a859bf6e533f1774e1a866ab2",_.callServer,void 0,_.findSourceMapURL,"listSharesAction"),eB=(0,_.createServerReference)("406504bacae8f8ed0688899ddd5c6c2a9b289278fe",_.callServer,void 0,_.findSourceMapURL,"deleteShareAction");function eG(e){let{settings:t,onChange:a}=e,l=t.ngrok,[c,m]=(0,r.useState)({running:!1}),[x,h]=(0,r.useState)(null),[p,f]=(0,r.useState)(null),[g,v]=(0,r.useState)([]),[b,j]=(0,r.useTransition)(),[N,y]=(0,r.useTransition)(),[w,k]=(0,r.useState)(0),S=(0,r.useRef)(null),R=(0,r.useRef)(""),A=async()=>{let e=await (0,eE.N)();m(e.status),h(e.cliVersion),v((await eD()).shares)};(0,r.useEffect)(()=>{A();let e=setInterval(()=>void A(),1e4);return()=>clearInterval(e)},[]);let C=async function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=await eI();if(!t.ok){e||d.oR.error(t.error);return}f(t.domains),e||d.oR.success("Загружено доменов: ".concat(t.domains.length))},z=e=>{a({ngrok:{...l,...e}}),S.current&&clearTimeout(S.current),S.current=setTimeout(async()=>{let t=await eO(e);if(!t.ok){var a;d.oR.error("ngrok settings: "+(null!=(a=t.error)?a:"save failed"));return}k(e=>e+1),"string"==typeof e.apiKey&&e.apiKey.trim()&&e.apiKey!==R.current&&(R.current=e.apiKey,C(!0))},600)};(0,r.useEffect)(()=>{l.apiKey.trim()&&""===R.current&&(R.current=l.apiKey,C(!0))},[]);let P=async()=>{S.current&&(clearTimeout(S.current),S.current=null,await eO(l))},T=()=>{y(async()=>{await P(),await e$(),await new Promise(e=>setTimeout(e,400));let e=await eW();if(!e.ok)return void d.oR.error(e.error);d.oR.success(e.publicUrl?"Tunnel перезапущен: ".concat(e.publicUrl):"Tunnel перезапущен, URL формируется..."),await A()})},U=(()=>{try{return c.publicUrl?new URL(c.publicUrl).hostname:""}catch(e){return""}})(),M=l.domain.trim(),L=c.running&&M&&U!==M,_=c.running&&c.port!==l.port;return(0,s.jsx)(u.Zp,{children:(0,s.jsxs)(u.Wu,{className:"pt-5 space-y-4",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 text-sm font-medium",children:[(0,s.jsx)(e_.A,{className:"h-4 w-4 text-violet-600"}),(0,s.jsx)("span",{children:"Публичные ссылки через ngrok"}),x?(0,s.jsx)("span",{className:"text-[10px] font-mono text-muted-foreground ml-1",children:x.split("\n")[0]}):(0,s.jsxs)("span",{className:"text-[10px] text-destructive ml-1 inline-flex items-center gap-0.5",children:[(0,s.jsx)(en.A,{className:"h-3 w-3"}),"ngrok CLI не найден"]}),w>0&&(0,s.jsxs)("span",{className:"ml-auto text-[10px] text-emerald-700 inline-flex items-center gap-0.5",title:"Изменения сохранены автоматически",children:[(0,s.jsx)(o.A,{className:"h-3 w-3"}),"сохранено"]},w)]}),(0,s.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Reflex запускает ",(0,s.jsx)("code",{className:"font-mono",children:"ngrok http"})," с твоим токеном; на ngrok-домене разрешены только пути"," ",(0,s.jsx)("code",{className:"font-mono",children:"/share/*"}),". Установи"," ",(0,s.jsx)("a",{href:"https://ngrok.com/download",target:"_blank",rel:"noopener noreferrer",className:"underline",children:"ngrok CLI"})," ","в PATH перед запуском."]}),(0,s.jsxs)("div",{className:"grid gap-2",children:[(0,s.jsx)("label",{className:"text-xs font-medium",htmlFor:"ngrok-token",children:"Authtoken (agent)"}),(0,s.jsx)("input",{id:"ngrok-token",type:"password",autoComplete:"off",value:l.authtoken,onChange:e=>z({authtoken:e.target.value}),placeholder:"2abc...xyz",className:"rounded border bg-background px-2 py-1.5 text-xs font-mono focus:outline-none focus:ring-1 focus:ring-violet-400"}),(0,s.jsxs)("p",{className:"text-[10px] text-muted-foreground",children:["Найди в"," ",(0,s.jsx)("a",{href:"https://dashboard.ngrok.com/get-started/your-authtoken",target:"_blank",rel:"noopener noreferrer",className:"underline",children:"ngrok dashboard → Your Authtoken"}),". Сохраняется в ",(0,s.jsx)("code",{className:"font-mono",children:"~/.reflex/ngrok.yml"})," ","(0600)."]})]}),(0,s.jsxs)("div",{className:"grid gap-2",children:[(0,s.jsx)("label",{className:"text-xs font-medium",htmlFor:"ngrok-apikey",children:"API key (для списка доменов, опционально)"}),(0,s.jsx)("input",{id:"ngrok-apikey",type:"password",autoComplete:"off",value:l.apiKey,onChange:e=>z({apiKey:e.target.value}),placeholder:"2abc...xyz",className:"rounded border bg-background px-2 py-1.5 text-xs font-mono focus:outline-none focus:ring-1 focus:ring-violet-400"}),(0,s.jsxs)("p",{className:"text-[10px] text-muted-foreground",children:["Возьми в"," ",(0,s.jsx)("a",{href:"https://dashboard.ngrok.com/api",target:"_blank",rel:"noopener noreferrer",className:"underline",children:"dashboard → API → API keys"}),". Используется только для GET-запроса списка reserved-доменов."]})]}),(0,s.jsxs)("div",{className:"grid gap-2",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsx)("label",{className:"text-xs font-medium",htmlFor:"ngrok-domain",children:"Reserved domain (если есть)"}),(0,s.jsxs)("button",{type:"button",onClick:()=>{j(async()=>{await C()})},disabled:b||!l.apiKey,className:"text-[11px] inline-flex items-center gap-1 text-violet-700 hover:underline disabled:opacity-50",children:[b?(0,s.jsx)(i.A,{className:"h-3 w-3 animate-spin"}):(0,s.jsx)(n.A,{className:"h-3 w-3"}),"Обновить список"]})]}),p&&p.length>0?(0,s.jsxs)("select",{id:"ngrok-domain",value:l.domain,onChange:e=>z({domain:e.target.value}),className:"rounded border bg-background px-2 py-1.5 text-xs focus:outline-none focus:ring-1 focus:ring-violet-400",children:[(0,s.jsx)("option",{value:"",children:"— random subdomain (free tier) —"}),p.map(e=>(0,s.jsxs)("option",{value:e.domain,children:[e.domain,e.region?" (".concat(e.region,")"):""]},e.id))]}):(0,s.jsx)("input",{id:"ngrok-domain",type:"text",value:l.domain,onChange:e=>z({domain:e.target.value}),placeholder:"my-app.ngrok-free.app или оставь пустым",className:"rounded border bg-background px-2 py-1.5 text-xs font-mono focus:outline-none focus:ring-1 focus:ring-violet-400"})]}),(0,s.jsxs)("div",{className:"grid grid-cols-[1fr_auto] gap-2 items-end",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"text-xs font-medium",htmlFor:"ngrok-port",children:"Локальный порт"}),(0,s.jsx)("input",{id:"ngrok-port",type:"number",min:1,max:65535,value:l.port,onChange:e=>z({port:Math.max(1,Number(e.target.value)||3210)}),className:"mt-1 w-32 rounded border bg-background px-2 py-1.5 text-xs font-mono focus:outline-none focus:ring-1 focus:ring-violet-400"})]}),c.running?(0,s.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,s.jsxs)("button",{type:"button",onClick:T,disabled:N,className:"rounded border px-3 py-1.5 text-xs font-medium hover:bg-accent disabled:opacity-50 inline-flex items-center gap-1",title:"Остановить и снова запустить с текущими настройками",children:[N?(0,s.jsx)(i.A,{className:"h-3 w-3 animate-spin"}):(0,s.jsx)(n.A,{className:"h-3 w-3"}),"Перезапустить"]}),(0,s.jsxs)("button",{type:"button",onClick:()=>{y(async()=>{await e$(),d.oR.success("Tunnel остановлен"),await A()})},disabled:N,className:"rounded bg-destructive px-3 py-1.5 text-xs font-medium text-white hover:bg-destructive/90 disabled:opacity-50 inline-flex items-center gap-1",children:[N?(0,s.jsx)(i.A,{className:"h-3 w-3 animate-spin"}):(0,s.jsx)(eJ.A,{className:"h-3 w-3"}),"Остановить"]})]}):(0,s.jsxs)("button",{type:"button",onClick:()=>{y(async()=>{await P();let e=await eW();if(!e.ok)return void d.oR.error(e.error);d.oR.success(e.publicUrl?"Tunnel запущен: ".concat(e.publicUrl):"Tunnel запущен, URL ещё формируется..."),await A()})},disabled:N||!l.authtoken,className:"rounded bg-violet-600 px-3 py-1.5 text-xs font-medium text-white hover:bg-violet-700 disabled:opacity-50 inline-flex items-center gap-1",children:[N?(0,s.jsx)(i.A,{className:"h-3 w-3 animate-spin"}):(0,s.jsx)(eF.A,{className:"h-3 w-3"}),"Запустить"]})]}),c.running&&(0,s.jsxs)("div",{className:"rounded border border-emerald-300 bg-emerald-50 dark:bg-emerald-950/30 dark:border-emerald-900/50 px-3 py-2 text-xs space-y-1",children:[(0,s.jsxs)("div",{className:"flex items-center gap-1.5 text-emerald-800 dark:text-emerald-200",children:[(0,s.jsx)(o.A,{className:"h-3.5 w-3.5"}),(0,s.jsx)("span",{children:"Tunnel активен"})]}),c.publicUrl?(0,s.jsx)("a",{href:c.publicUrl,target:"_blank",rel:"noopener noreferrer",className:"block font-mono text-violet-700 hover:underline truncate",children:c.publicUrl}):(0,s.jsx)("p",{className:"text-muted-foreground",children:"URL ещё формируется…"}),(0,s.jsxs)("p",{className:"text-[10px] text-muted-foreground",children:["Запущен ",c.startedAt&&new Date(c.startedAt).toLocaleTimeString()," ","\xb7 порт ",c.port]})]}),(L||_)&&(0,s.jsxs)("div",{className:"rounded border border-amber-300 bg-amber-50 dark:bg-amber-950/30 dark:border-amber-900/50 px-3 py-2 text-xs space-y-1.5",children:[(0,s.jsxs)("div",{className:"flex items-center gap-1.5 text-amber-800 dark:text-amber-200 font-medium",children:[(0,s.jsx)(en.A,{className:"h-3.5 w-3.5"}),"Настройки изменились — перезапусти туннель"]}),(0,s.jsxs)("ul",{className:"text-[11px] text-amber-900 dark:text-amber-100 list-disc pl-4 space-y-0.5",children:[L&&(0,s.jsxs)("li",{children:["Сейчас на хосте ",(0,s.jsx)("code",{className:"font-mono",children:U}),", в настройках выбран"," ",(0,s.jsx)("code",{className:"font-mono",children:M}),"."]}),_&&(0,s.jsxs)("li",{children:["Tunnel слушает порт ",(0,s.jsx)("code",{className:"font-mono",children:c.port}),", в настройках указан ",(0,s.jsx)("code",{className:"font-mono",children:l.port}),"."]})]}),(0,s.jsxs)("button",{type:"button",onClick:T,disabled:N,className:"inline-flex items-center gap-1 rounded bg-amber-600 px-2 py-1 text-white hover:bg-amber-700 disabled:opacity-50",children:[N?(0,s.jsx)(i.A,{className:"h-3 w-3 animate-spin"}):(0,s.jsx)(n.A,{className:"h-3 w-3"}),"Перезапустить с новыми настройками"]})]}),(0,s.jsx)("hr",{className:"my-3"}),(0,s.jsxs)("div",{children:[(0,s.jsxs)("h3",{className:"text-xs font-semibold mb-2",children:["Активные ссылки (",g.length,")"]}),0===g.length?(0,s.jsx)("p",{className:"text-[11px] text-muted-foreground",children:"Пока ничего не расшарено. На странице утилиты, KB-файла или дашборда появится кнопка \xabПоделиться\xbb."}):(0,s.jsx)("ul",{className:"space-y-1",children:g.map(e=>(0,s.jsx)(eK,{share:e,publicHost:c.publicUrl,onDeleted:()=>void A()},e.id))})]})]})})}function eK(e){let{share:t,publicHost:a,onDeleted:n}=e,[l,o]=(0,r.useTransition)(),c=a?new URL("/share/".concat(t.id),a).toString():"/share/".concat(t.id),m=t.label||("utility"===t.kind?"Утилита ".concat(t.utilityId):"kb-file"===t.kind?"KB ".concat(t.kbRelPath):"kb-tree"===t.kind?"Вся база знаний":"Дашборд проекта");return(0,s.jsxs)("li",{className:"flex items-start gap-2 rounded border bg-card px-2 py-1.5 text-xs",children:[(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,s.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,s.jsx)("span",{className:"font-medium truncate",children:m}),(0,s.jsx)("span",{className:"text-[9px] uppercase tracking-wider text-muted-foreground",children:t.kind}),t.passwordHash&&(0,s.jsx)("span",{className:"text-[9px] uppercase tracking-wider text-violet-600",children:"\uD83D\uDD12"})]}),(0,s.jsx)("a",{href:c,target:"_blank",rel:"noopener noreferrer",className:"block text-[10px] font-mono text-violet-700 hover:underline truncate",children:c})]}),(0,s.jsx)("button",{type:"button",onClick:()=>{navigator.clipboard.writeText(c).then(()=>d.oR.success("Ссылка скопирована"))},className:"text-[10px] text-muted-foreground hover:text-foreground rounded px-1 py-0.5",children:"copy"}),(0,s.jsx)("button",{type:"button",onClick:()=>{confirm('Удалить ссылку "'.concat(m,'"?'))&&o(async()=>{await eB(t.id),n()})},disabled:l,className:"text-muted-foreground hover:text-destructive rounded px-1",title:"Удалить ссылку",children:l?(0,s.jsx)(i.A,{className:"h-3 w-3 animate-spin"}):(0,s.jsx)(K.A,{className:"h-3 w-3"})})]})}let eZ=(0,_.createServerReference)("4070bb39767e7f4f66be7937009a78bff48df6a691",_.callServer,void 0,_.findSourceMapURL,"listModelsAction"),eq=(0,_.createServerReference)("40142b9921879bdffdae8ff29426586d6a6ef8fcf7",_.callServer,void 0,_.findSourceMapURL,"probeHarnessAction"),eV=(0,_.createServerReference)("40e11453de47fa7c433b72474953584f9d7ded9da0",_.callServer,void 0,_.findSourceMapURL,"saveSettingsAction");function eY(e){let{initialSettings:t,harnesses:a}=e,[o,c]=(0,r.useState)(t),[p,f]=(0,r.useState)({"claude-code":null,codex:null,ollama:null}),[v,y]=(0,r.useState)({"claude-code":null,codex:null,ollama:null}),[S,R]=(0,r.useState)({"claude-code":!1,codex:!1,ollama:!1}),[z,P]=(0,r.useState)({"claude-code":null,codex:null,ollama:null}),[T,U]=(0,r.useTransition)(),M=(0,r.useCallback)(async e=>{R(t=>({...t,[e]:!0})),y(t=>({...t,[e]:null}));let t=await eZ(e);R(t=>({...t,[e]:!1})),t.ok?f(a=>({...a,[e]:t.models})):(y(a=>({...a,[e]:t.error})),f(t=>({...t,[e]:[]})))},[]),L=(0,r.useCallback)(async e=>{let t=await eq(e);P(a=>({...a,[e]:t}))},[]);(0,r.useEffect)(()=>{a.forEach(e=>{L(e.id),M(e.id)})},[a,L,M]);let _=(e,t)=>{c(a=>({...a,assignments:{...a.assignments,[e]:{...a.assignments[e],...t}}}))},J=e=>{c(t=>({...t,language:e}))},F=e=>{c(t=>({...t,imageProcessing:{...t.imageProcessing,...e}}))},E=A.includes(o.language),I="advanced"===o.uiMode;return(0,s.jsxs)("div",{className:"space-y-8",children:[(0,s.jsx)(u.Zp,{className:"border-violet-200 dark:border-violet-900/50 bg-violet-50/40 dark:bg-violet-950/20",children:(0,s.jsxs)(u.Wu,{className:"pt-5 pb-5 flex items-center gap-3",children:[(0,s.jsxs)("div",{className:"flex-1",children:[(0,s.jsx)("div",{className:"text-sm font-medium",children:I?"Расширенный режим":"Простой режим"}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:I?"Видны все секции — модели, MCP-серверы, prompt-шаблоны, инструменты.":"Видны только основные настройки. Включи расширенный, чтобы поменять модели, подключения и промпты."})]}),(0,s.jsx)(m.$,{type:"button",variant:I?"outline":"default",size:"sm",onClick:()=>{let e={...o,uiMode:I?"simple":"advanced"};c(e),eV(e)},children:I?"Простой режим":"Расширенный режим"})]})}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{className:"text-lg font-semibold mb-3",children:"Output language"}),(0,s.jsx)(u.Zp,{children:(0,s.jsxs)(u.Wu,{className:"pt-6",children:[(0,s.jsx)("p",{className:"text-sm text-muted-foreground mb-3",children:"The agent injects this into every system prompt and writes all Markdown artifacts in this language. Code, paths, and quoted source stay verbatim."}),(0,s.jsxs)("div",{className:"flex items-center gap-3 max-w-xl",children:[(0,s.jsxs)("div",{className:"flex-1",children:[(0,s.jsx)(h.J,{className:"text-xs text-muted-foreground",children:"Preset"}),(0,s.jsxs)(N.l6,{value:E?o.language:"__custom__",onValueChange:e=>{"__custom__"===e?J(E?"":o.language):J(e)},children:[(0,s.jsx)(N.bq,{className:"mt-1",children:(0,s.jsx)(N.yv,{})}),(0,s.jsxs)(N.gC,{children:[A.map(e=>(0,s.jsx)(N.eb,{value:e,children:e},e)),(0,s.jsx)(N.eb,{value:"__custom__",children:"custom…"})]})]})]}),!E&&(0,s.jsxs)("div",{className:"flex-1",children:[(0,s.jsx)(h.J,{className:"text-xs text-muted-foreground",children:"Custom"}),(0,s.jsx)(x.p,{value:o.language,onChange:e=>J(e.target.value),placeholder:"e.g. portugu\xeas, latviešu",className:"mt-1"})]})]})]})})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{className:"text-lg font-semibold mb-3",children:"Обработка изображений"}),(0,s.jsx)(u.Zp,{children:(0,s.jsxs)(u.Wu,{className:"pt-6 space-y-4",children:[(0,s.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,s.jsxs)("div",{children:[(0,s.jsxs)("p",{className:"text-sm",children:["Reflex автоматически ресайзит и перекодирует прикреплённые изображения перед сохранением в"," ",(0,s.jsx)("code",{className:"font-mono text-xs",children:".reflex/attachments/"}),"."]}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground mt-1",children:"Сокращает токены модели и место на диске. Векторы (SVG) и анимированные GIF/WebP остаются как есть."})]}),(0,s.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[(0,s.jsx)(h.J,{htmlFor:"img-enabled",className:"text-xs",children:"включено"}),(0,s.jsx)(g,{id:"img-enabled",checked:o.imageProcessing.enabled,onCheckedChange:e=>F({enabled:e})})]})]}),(0,s.jsxs)("div",{className:o.imageProcessing.enabled?"space-y-4":"space-y-4 opacity-50 pointer-events-none",children:[(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,s.jsx)(h.J,{className:"text-xs text-muted-foreground",children:"Макс. сторона"}),(0,s.jsxs)("span",{className:"font-mono text-xs",children:[o.imageProcessing.maxDimension,"px"]})]}),(0,s.jsx)(b,{min:256,max:8192,step:64,value:[o.imageProcessing.maxDimension],onValueChange:e=>{var t;return F({maxDimension:null!=(t=e[0])?t:2e3})}}),(0,s.jsxs)("div",{className:"flex justify-between text-[10px] text-muted-foreground mt-1",children:[(0,s.jsx)("span",{children:"256"}),(0,s.jsx)("span",{children:"2048"}),(0,s.jsx)("span",{children:"4096"}),(0,s.jsx)("span",{children:"8192"})]})]}),(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,s.jsx)(h.J,{className:"text-xs text-muted-foreground",children:"Качество (JPEG / WebP)"}),(0,s.jsx)("span",{className:"font-mono text-xs",children:o.imageProcessing.quality})]}),(0,s.jsx)(b,{min:40,max:100,step:1,value:[o.imageProcessing.quality],onValueChange:e=>{var t;return F({quality:null!=(t=e[0])?t:85})}})]}),(0,s.jsxs)("div",{className:"max-w-xs",children:[(0,s.jsx)(h.J,{className:"text-xs text-muted-foreground",children:"Формат"}),(0,s.jsxs)(N.l6,{value:o.imageProcessing.format,onValueChange:e=>F({format:e}),children:[(0,s.jsx)(N.bq,{className:"mt-1",children:(0,s.jsx)(N.yv,{})}),(0,s.jsx)(N.gC,{children:C.map(e=>(0,s.jsxs)(N.eb,{value:e,children:[(0,s.jsx)("span",{className:"font-mono",children:e}),(0,s.jsx)("span",{className:"ml-2 text-muted-foreground text-xs",children:"auto"===e?"JPEG, PNG для прозрачных":"jpeg"===e?"всё в JPEG (альфа → белый фон)":"webp"===e?"всё в WebP":"оставить исходный контейнер"})]},e))})]})]})]})]})})]}),I&&(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{className:"text-lg font-semibold mb-3",children:"Harnesses"}),(0,s.jsx)("div",{className:"grid gap-4",children:a.map(e=>{var t,a,r,l,d,f;let b=z[e.id],j=o.harnesses[e.id].enabled;return(0,s.jsxs)(u.Zp,{children:[(0,s.jsx)(u.aR,{children:(0,s.jsxs)("div",{className:"flex items-center justify-between gap-4",children:[(0,s.jsxs)("div",{children:[(0,s.jsxs)(u.ZB,{className:"flex items-center gap-2",children:[e.label,(0,s.jsx)(eQ,{probe:b})]}),(0,s.jsx)(u.BT,{children:b?b.detail:"checking…"})]}),(0,s.jsxs)("div",{className:"flex items-center gap-3",children:[(0,s.jsxs)(m.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>{L(e.id),M(e.id)},disabled:S[e.id],children:[(0,s.jsx)(n.A,{className:"mr-1 h-4 w-4 ".concat(S[e.id]?"animate-spin":"")}),"Refresh"]}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(h.J,{htmlFor:"enable-".concat(e.id),className:"text-xs",children:"enabled"}),(0,s.jsx)(g,{id:"enable-".concat(e.id),checked:j,onCheckedChange:t=>{var a;return a=e.id,void c(e=>({...e,harnesses:{...e.harnesses,[a]:{...e.harnesses[a],enabled:t}}}))}})]})]})]})}),(0,s.jsxs)(u.Wu,{children:["ollama"===e.id&&(0,s.jsxs)("div",{className:"mb-3 flex items-center gap-2 max-w-md",children:[(0,s.jsx)(h.J,{htmlFor:"ollama-url",className:"text-xs w-24 shrink-0",children:"Base URL"}),(0,s.jsx)(x.p,{id:"ollama-url",value:o.harnesses.ollama.baseUrl,onChange:e=>{var t;return t=e.target.value,void c(e=>({...e,harnesses:{...e.harnesses,ollama:{...e.harnesses.ollama,baseUrl:t}}}))},placeholder:"http://localhost:11434",className:"font-mono text-xs"})]}),(0,s.jsxs)("div",{className:"text-xs text-muted-foreground",children:["Models loaded:"," ",S[e.id]?(0,s.jsxs)("span",{children:[(0,s.jsx)(i.A,{className:"inline h-3 w-3 animate-spin mr-1"}),"loading…"]}):v[e.id]?(0,s.jsx)("span",{className:"text-destructive",children:v[e.id]}):"".concat(null!=(d=null==(t=p[e.id])?void 0:t.length)?d:0),(null!=(f=null==(a=p[e.id])?void 0:a.length)?f:0)>0&&(0,s.jsxs)("span",{className:"ml-2",children:["(",null==(l=p[e.id])||null==(r=l[0])?void 0:r.source,")"]})]})]})]},e.id)})})]}),I&&(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{className:"text-lg font-semibold mb-3",children:"Task assignments"}),(0,s.jsx)("div",{className:"grid gap-4",children:w.map(e=>{var t,r;let n=o.assignments[e],i=a.filter(t=>t.supports.includes(e)&&o.harnesses[t.id].enabled),l=null!=(r=p[n.harness])?r:[],c=null==(t=l[0])?void 0:t.source;return(0,s.jsxs)(u.Zp,{children:[(0,s.jsxs)(u.aR,{children:[(0,s.jsx)(u.ZB,{className:"text-base",children:k[e].title}),(0,s.jsx)(u.BT,{children:k[e].help})]}),(0,s.jsxs)(u.Wu,{className:"space-y-3",children:[(0,s.jsxs)("div",{className:"flex flex-col md:flex-row md:items-end gap-3",children:[(0,s.jsxs)("div",{className:"flex-1 max-w-[200px]",children:[(0,s.jsx)(h.J,{className:"text-xs text-muted-foreground",children:"Harness"}),(0,s.jsxs)(N.l6,{value:n.harness,onValueChange:t=>{var a,s,r;return _(e,{harness:t,model:null!=(r=null==(s=p[t])||null==(a=s[0])?void 0:a.id)?r:""})},children:[(0,s.jsx)(N.bq,{className:"mt-1",children:(0,s.jsx)(N.yv,{})}),(0,s.jsx)(N.gC,{children:i.map(e=>(0,s.jsx)(N.eb,{value:e.id,children:e.label},e.id))})]})]}),(0,s.jsxs)("div",{className:"flex-1",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsx)(h.J,{className:"text-xs text-muted-foreground",children:"Model"}),c&&(0,s.jsx)(j.E,{variant:"live"===c?"default":"secondary",className:"text-[10px] uppercase",children:c})]}),l.length>0?(0,s.jsxs)(N.l6,{value:n.model,onValueChange:t=>_(e,{model:t}),children:[(0,s.jsx)(N.bq,{className:"mt-1",children:(0,s.jsx)(N.yv,{placeholder:"select model"})}),(0,s.jsx)(N.gC,{children:l.map(e=>(0,s.jsxs)(N.eb,{value:e.id,children:[(0,s.jsx)("span",{className:"font-mono",children:e.id}),e.size&&(0,s.jsx)("span",{className:"ml-2 text-muted-foreground text-xs",children:e.size})]},e.id))})]}):(0,s.jsx)(x.p,{value:n.model,onChange:t=>_(e,{model:t.target.value}),placeholder:"model id",className:"mt-1 font-mono text-xs"})]})]}),"claude-code"===n.harness&&(0,s.jsx)(eX,{tools:n.allowedTools,onChange:t=>_(e,{allowedTools:t})})]})]},e)})})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{className:"text-lg font-semibold mb-3",children:"Gemini"}),(0,s.jsx)(eS,{})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{className:"text-lg font-semibold mb-3",children:"Картинки"}),(0,s.jsx)(eP,{})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{className:"text-lg font-semibold mb-3",children:"OAuth providers"}),(0,s.jsxs)("p",{className:"text-sm text-muted-foreground mb-3",children:["Reflex держит локально access/refresh-токены и сам обновляет их при истечении. Используй ",(0,s.jsx)("code",{children:"$oauth:<provider>"})," в env/headers MCP-сервера — Reflex подставит свежий токен при каждом вызове. Redirect URI:"," ",(0,s.jsx)("code",{className:"font-mono",children:"http://localhost:3210/api/oauth/callback"}),"."]}),(0,s.jsx)(ev,{})]}),I&&(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{className:"text-lg font-semibold mb-3",children:"MCP servers"}),(0,s.jsxs)("p",{className:"text-sm text-muted-foreground mb-3",children:["Зарегистрированные MCP-серверы доступны утилитам (через"," ",(0,s.jsx)("code",{children:"manifest.mcpServers"}),") и чату напрямую (orchestrator получает их через ",(0,s.jsx)("code",{children:"--mcp-config"}),"). Config хранится в"," ",(0,s.jsx)("code",{children:"~/.reflex/mcp/servers.json"})," с perms ",(0,s.jsx)("code",{children:"0600"}),"."]}),(0,s.jsx)(ee,{})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{className:"text-lg font-semibold mb-3",children:"Сервисы маршрутов"}),(0,s.jsx)("p",{className:"text-sm text-muted-foreground mb-3",children:"Какие сервисы навигации появятся в попапе \xabМаршрут в…\xbb на каждой точке map-виджета. Reflex генерирует deep-link из координат — без посредников, без аккаунтов."}),(0,s.jsx)(eL,{settings:o,onChange:e=>c(t=>({...t,...e}))})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{className:"text-lg font-semibold mb-3",children:"Публичные ссылки (ngrok)"}),(0,s.jsx)("p",{className:"text-sm text-muted-foreground mb-3",children:"Сделать утилиту, KB-файл или дашборд доступным из интернета через ngrok-туннель. Каждая ссылка опционально защищена паролем; middleware закрывает все остальные пути на ngrok-хосте."}),(0,s.jsx)(eG,{settings:o,onChange:e=>c(t=>({...t,...e}))})]}),I&&(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{className:"text-lg font-semibold mb-3",children:"Prompt templates"}),(0,s.jsxs)("p",{className:"text-sm text-muted-foreground mb-3",children:["Stored on disk under ",(0,s.jsx)("code",{children:"~/.reflex/prompts/"}),". Edit here or directly in any editor. Use ",(0,s.jsx)("code",{children:"{{language}}"}),","," ",(0,s.jsx)("code",{children:"{{scope}}"}),", etc. — variable list is shown per template."]}),(0,s.jsx)($,{})]}),(0,s.jsx)("div",{className:"flex justify-end",children:(0,s.jsx)(m.$,{onClick:()=>{U(async()=>{var e;let t=await eV(o);t.ok?d.oR.success("Settings saved"):d.oR.error(null!=(e=t.error)?e:"Save failed")})},disabled:T,children:T?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(i.A,{className:"mr-2 h-4 w-4 animate-spin"})," Saving…"]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(l.A,{className:"mr-2 h-4 w-4"})," Save settings"]})})})]})}let eH=["Read","Write","Edit","LS","Glob","Grep","Bash","WebSearch","WebFetch","TodoWrite","Task","NotebookEdit"];function eX(e){let{tools:t,onChange:a}=e,n=e=>{let s=e.trim();s&&(t.includes(s)||a([...t,s]))},[i,l]=(0,r.useState)(""),o=eH.filter(e=>!t.includes(e));return(0,s.jsxs)("div",{className:"rounded-md border bg-muted/30 p-3 space-y-2",children:[(0,s.jsxs)("div",{className:"flex items-baseline justify-between",children:[(0,s.jsx)(h.J,{className:"text-xs text-muted-foreground",children:"Allowed tools (claude-code)"}),(0,s.jsx)("span",{className:"text-[10px] text-muted-foreground",children:"без них агент попросит разрешение и зависнет в headless-режиме"})]}),(0,s.jsxs)("div",{className:"flex flex-wrap gap-1.5",children:[0===t.length&&(0,s.jsx)("span",{className:"text-[11px] italic text-muted-foreground",children:"используются дефолты harness'а"}),t.map(e=>(0,s.jsxs)(j.E,{variant:"secondary",className:"gap-1 font-mono",children:[e,(0,s.jsx)("button",{type:"button",className:"text-muted-foreground hover:text-foreground",onClick:()=>a(t.filter(t=>t!==e)),children:"\xd7"})]},e))]}),o.length>0&&(0,s.jsx)("div",{className:"flex flex-wrap gap-1",children:o.map(e=>(0,s.jsxs)("button",{type:"button",onClick:()=>n(e),className:"text-[11px] font-mono rounded px-1.5 py-0.5 border border-dashed border-muted-foreground/40 text-muted-foreground hover:border-foreground hover:text-foreground",children:["+ ",e]},e))}),(0,s.jsxs)("form",{className:"flex gap-1",onSubmit:e=>{e.preventDefault(),n(i),l("")},children:[(0,s.jsx)(x.p,{value:i,onChange:e=>l(e.target.value),placeholder:"custom tool name…",className:"h-7 text-xs font-mono"}),(0,s.jsx)(m.$,{type:"submit",size:"sm",variant:"ghost",className:"h-7",children:"+"})]})]})}function eQ(e){let{probe:t}=e;return t?t.available?(0,s.jsxs)(j.E,{variant:"default",className:"gap-1 bg-emerald-600",children:[(0,s.jsx)(o.A,{className:"h-3 w-3"})," available"]}):(0,s.jsxs)(j.E,{variant:"destructive",className:"gap-1",children:[(0,s.jsx)(c.A,{className:"h-3 w-3"})," unavailable"]}):(0,s.jsxs)(j.E,{variant:"outline",className:"gap-1",children:[(0,s.jsx)(i.A,{className:"h-3 w-3 animate-spin"})," checking"]})}},68682:(e,t,a)=>{"use strict";function s(e){return"".concat(e.lat,",").concat(e.lng)}function r(e){return"".concat(e.lng,",").concat(e.lat)}a.d(t,{JY:()=>i,yp:()=>n});let n=[{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=s(e[0]),a=s(e[e.length-1]),r=e.slice(1,-1).map(s).join("|"),n=r?"&waypoints=".concat(encodeURIComponent(r)):"";return"https://www.google.com/maps/dir/?api=1&origin=".concat(t,"&destination=").concat(a).concat(n)}},{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(s).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=r(e[0]),a=r(e[e.length-1]),s=e.slice(1,-1).map(e=>"/via/".concat(r(e))).join("");return"https://2gis.ru/routeSearch/rsType/car/from/".concat(t).concat(s,"/to/").concat(a)}},{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=s(e[0]),a=e.slice(1).map(e=>"+to:".concat(s(e))).join("");return"https://maps.apple.com/?saddr=".concat(t,"&daddr=").concat(t).concat(a)}},{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(s).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],a=e[e.length-1];return"om://route?sll=".concat(t.lat,",").concat(t.lng,"&saddr=&dll=").concat(a.lat,",").concat(a.lng,"&daddr=&type=vehicle")}}],i=["google","yandex","apple","osm"]},71651:(e,t,a)=>{"use strict";a.d(t,{T:()=>n});var s=a(4624);a(99356);var r=a(13506);function n(e){let{className:t,...a}=e;return(0,s.jsx)("textarea",{"data-slot":"textarea",className:(0,r.cn)("flex field-sizing-content min-h-16 w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none placeholder:text-muted-foreground 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 md:text-sm dark:bg-input/30 dark:aria-invalid:ring-destructive/40",t),...a})}},78825:(e,t,a)=>{"use strict";a.d(t,{J:()=>i});var s=a(4624);a(99356);var r=a(33976),n=a(13506);function i(e){let{className:t,...a}=e;return(0,s.jsx)(r.Root,{"data-slot":"label",className:(0,n.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",t),...a})}},85253:(e,t,a)=>{"use strict";a.d(t,{$:()=>o});var s=a(4624);a(99356);var r=a(60621),n=a(50362),i=a(13506);let l=(0,r.F)("inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",xs:"h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-xs":"size-6 rounded-md [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}});function o(e){let{className:t,variant:a="default",size:r="default",asChild:o=!1,...c}=e,d=o?n.bL:"button";return(0,s.jsx)(d,{"data-slot":"button","data-variant":a,"data-size":r,className:(0,i.cn)(l({variant:a,size:r,className:t})),...c})}},91074:(e,t,a)=>{"use strict";a.d(t,{Separator:()=>i});var s=a(4624);a(99356);var r=a(44188),n=a(13506);function i(e){let{className:t,orientation:a="horizontal",decorative:i=!0,...l}=e;return(0,s.jsx)(r.b,{"data-slot":"separator",decorative:i,orientation:a,className:(0,n.cn)("shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",t),...l})}},95774:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var s=a(7911);let r=(0,s.createServerReference)("40fd1533240185f6135e50fb9eafce5e9282143166",s.callServer,void 0,s.findSourceMapURL,"saveGeminiKeyAction")}},e=>{e.O(0,[4400,1217,3335,5097,5235,4933,146,7358],()=>e(e.s=17121)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8580],{55861:(e,s,t)=>{Promise.resolve().then(t.bind(t,71521)),Promise.resolve().then(t.bind(t,84311)),Promise.resolve().then(t.t.bind(t,54400,23))},84311:(e,s,t)=>{"use strict";t.d(s,{ShareAuthForm:()=>c});var a=t(4624),r=t(99356),n=t(3239);let o=(0,t(45804).A)("LogIn",[["path",{d:"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4",key:"u53s6r"}],["polyline",{points:"10 17 15 12 10 7",key:"1ail0h"}],["line",{x1:"15",x2:"3",y1:"12",y2:"12",key:"v6grx8"}]]);var i=t(7911);let l=(0,i.createServerReference)("60802101000492b41283fafa7107d2da2d84281754",i.callServer,void 0,i.findSourceMapURL,"submitSharePasswordAction");function c(e){let{shareId:s,error:t}=e,[i,c]=(0,r.useTransition)();return(0,a.jsxs)("form",{action:e=>c(async()=>{var t;await l(s,(null!=(t=e.get("password"))?t:"").toString())}),className:"space-y-2",children:[(0,a.jsx)("label",{className:"block text-xs text-muted-foreground",htmlFor:"pw-".concat(s),children:"Введите пароль"}),(0,a.jsx)("input",{id:"pw-".concat(s),name:"password",type:"password",autoFocus:!0,className:"w-full rounded border bg-background px-3 py-2 text-sm focus:outline-none focus:ring-1 focus:ring-violet-400",placeholder:"••••••••"}),"bad"===t&&(0,a.jsx)("p",{className:"text-xs text-destructive",children:"Неверный пароль."}),(0,a.jsxs)("button",{type:"submit",disabled:i,className:"w-full rounded bg-violet-600 px-3 py-2 text-sm font-medium text-white hover:bg-violet-700 disabled:opacity-50 inline-flex items-center justify-center gap-2",children:[i?(0,a.jsx)(n.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,a.jsx)(o,{className:"h-3.5 w-3.5"}),"Открыть"]})]})}}},e=>{e.O(0,[4400,5097,1521,4933,146,7358],()=>e(e.s=55861)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[526],{3024:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(45804).A)("Lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]])},3747:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(45804).A)("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]])},9598:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(45804).A)("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]])},13506:(e,t,r)=>{"use strict";r.d(t,{cn:()=>i});var s=r(47989),a=r(55701);function i(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return(0,a.QP)((0,s.$)(t))}},15523:(e,t,r)=>{"use strict";r.d(t,{p:()=>i});var s=r(4624);r(99356);var a=r(13506);function i(e){let{className:t,type:r,...i}=e;return(0,s.jsx)("input",{type:r,"data-slot":"input",className:(0,a.cn)("h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30","focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50","aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",t),...i})}},28310:(e,t,r)=>{"use strict";r.d(t,{E:()=>o});var s=r(4624);r(99356);var a=r(60621),i=r(50362),n=r(13506);let l=(0,a.F)("inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3",{variants:{variant:{default:"bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"bg-destructive text-white focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40 [a&]:hover:bg-destructive/90",outline:"border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",ghost:"[a&]:hover:bg-accent [a&]:hover:text-accent-foreground",link:"text-primary underline-offset-4 [a&]:hover:underline"}},defaultVariants:{variant:"default"}});function o(e){let{className:t,variant:r="default",asChild:a=!1,...o}=e,d=a?i.bL:"span";return(0,s.jsx)(d,{"data-slot":"badge","data-variant":r,className:(0,n.cn)(l({variant:r}),t),...o})}},30441:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(45804).A)("Share2",[["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}],["circle",{cx:"6",cy:"12",r:"3",key:"w7nqdw"}],["circle",{cx:"18",cy:"19",r:"3",key:"1xt0gg"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49",key:"47mynk"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49",key:"1n3mei"}]])},41280:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(45804).A)("EyeOff",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]])},43153:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(45804).A)("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]])},46972:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(45804).A)("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]])},49833:(e,t,r)=>{"use strict";r.d(t,{UtilityFrame:()=>i});var s=r(4624),a=r(71521);function i(e){let{scope:t,id:r,rootId:i,agentChat:n,utilityName:l}=e;return(0,s.jsx)(a.UtilityIframe,{scope:t,id:r,...i?{rootId:i}:{},...n?{agentChat:!0}:{},...l?{utilityName:l}:{}})}},53931:(e,t,r)=>{Promise.resolve().then(r.bind(r,82010)),Promise.resolve().then(r.bind(r,73633)),Promise.resolve().then(r.bind(r,49833)),Promise.resolve().then(r.bind(r,91074)),Promise.resolve().then(r.bind(r,96253)),Promise.resolve().then(r.bind(r,28050)),Promise.resolve().then(r.bind(r,94904)),Promise.resolve().then(r.bind(r,13270)),Promise.resolve().then(r.bind(r,99730)),Promise.resolve().then(r.bind(r,89146)),Promise.resolve().then(r.bind(r,19078)),Promise.resolve().then(r.bind(r,67854)),Promise.resolve().then(r.bind(r,69050)),Promise.resolve().then(r.bind(r,63739)),Promise.resolve().then(r.bind(r,33976)),Promise.resolve().then(r.bind(r,12537)),Promise.resolve().then(r.bind(r,97485)),Promise.resolve().then(r.bind(r,41923)),Promise.resolve().then(r.bind(r,73868)),Promise.resolve().then(r.bind(r,53511)),Promise.resolve().then(r.bind(r,2018)),Promise.resolve().then(r.bind(r,18487)),Promise.resolve().then(r.bind(r,98346)),Promise.resolve().then(r.bind(r,14884)),Promise.resolve().then(r.bind(r,85314)),Promise.resolve().then(r.bind(r,17280)),Promise.resolve().then(r.bind(r,8855)),Promise.resolve().then(r.bind(r,86631)),Promise.resolve().then(r.bind(r,2604)),Promise.resolve().then(r.bind(r,27237)),Promise.resolve().then(r.bind(r,49455)),Promise.resolve().then(r.bind(r,39211)),Promise.resolve().then(r.bind(r,56360)),Promise.resolve().then(r.t.bind(r,54400,23))},60621:(e,t,r)=>{"use strict";r.d(t,{F:()=>n});var s=r(47989);let a=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,i=s.$,n=(e,t)=>r=>{var s;if((null==t?void 0:t.variants)==null)return i(e,null==r?void 0:r.class,null==r?void 0:r.className);let{variants:n,defaultVariants:l}=t,o=Object.keys(n).map(e=>{let t=null==r?void 0:r[e],s=null==l?void 0:l[e];if(null===t)return null;let i=a(t)||a(s);return n[e][i]}),d=r&&Object.entries(r).reduce((e,t)=>{let[r,s]=t;return void 0===s||(e[r]=s),e},{});return i(e,o,null==t||null==(s=t.compoundVariants)?void 0:s.reduce((e,t)=>{let{class:r,className:s,...a}=t;return Object.entries(a).every(e=>{let[t,r]=e;return Array.isArray(r)?r.includes({...l,...d}[t]):({...l,...d})[t]===r})?[...e,r,s]:e},[]),null==r?void 0:r.class,null==r?void 0:r.className)}},65428:(e,t,r)=>{"use strict";r.d(t,{N:()=>a});var s=r(7911);let a=(0,s.createServerReference)("00e3f501249a86b3370da049924b8187e7daacb109",s.callServer,void 0,s.findSourceMapURL,"getTunnelStatusAction")},69285:(e,t,r)=>{"use strict";var s=r(48849);r.o(s,"usePathname")&&r.d(t,{usePathname:function(){return s.usePathname}}),r.o(s,"useRouter")&&r.d(t,{useRouter:function(){return s.useRouter}})},71651:(e,t,r)=>{"use strict";r.d(t,{T:()=>i});var s=r(4624);r(99356);var a=r(13506);function i(e){let{className:t,...r}=e;return(0,s.jsx)("textarea",{"data-slot":"textarea",className:(0,a.cn)("flex field-sizing-content min-h-16 w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none placeholder:text-muted-foreground 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 md:text-sm dark:bg-input/30 dark:aria-invalid:ring-destructive/40",t),...r})}},73633:(e,t,r)=>{"use strict";r.d(t,{ManifestPanel:()=>C});var s=r(4624),a=r(99356),i=r(45804);let n=(0,i.A)("Shield",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]]);var l=r(76974),o=r(3239);let d=(0,i.A)("Hammer",[["path",{d:"m15 12-8.373 8.373a1 1 0 1 1-3-3L12 9",key:"eefl8a"}],["path",{d:"m18 15 4-4",key:"16gjal"}],["path",{d:"m21.5 11.5-1.914-1.914A2 2 0 0 1 19 8.172V7l-2.26-2.26a6 6 0 0 0-4.202-1.756L9 2.96l.92.82A6.18 6.18 0 0 1 12 8.4V10l2 2h1.172a2 2 0 0 1 1.414.586L18.5 14.5",key:"b7pghm"}]]);var c=r(3747),u=r(56221),v=r(69285),h=r(28310),m=r(85253),x=r(71651),p=r(7911);let b=(0,p.createServerReference)("7032946ede9d833dbb2b4df932f7d708ec0eb92b70",p.callServer,void 0,p.findSourceMapURL,"rebuildUtilityAction"),f=(0,p.createServerReference)("70a2e418eed9627f298884bf7956ab19c88b0e46fe",p.callServer,void 0,p.findSourceMapURL,"checkUpdateAction"),g=(0,p.createServerReference)("40e06ead1b92428fba684896f67ff4700c28be4e5c",p.callServer,void 0,p.findSourceMapURL,"editUtilityAction");var y=r(94151),k=r(43153),j=r(41280),w=r(84784),N=r(46972),A=r(15523),S=r(78825);let P=(0,p.createServerReference)("40cbc3cc07bd597bcbd6732baaf950aa6fd9b1803d",p.callServer,void 0,p.findSourceMapURL,"listUtilitySecretsAction"),R=(0,p.createServerReference)("406b86352045ddc1c3ef19ae24ad90c0db907f57f8",p.callServer,void 0,p.findSourceMapURL,"setUtilitySecretAction"),z=(0,p.createServerReference)("40ef54a1b9fd1d1bbf692330c39050cac6c520e2b3",p.callServer,void 0,p.findSourceMapURL,"deleteUtilitySecretAction");function M(e){let{scope:t,id:r,rootId:i,declared:n}=e,[l,d]=(0,a.useState)(()=>{let e={};for(let t of n)e[t.key]={set:!1,draft:"",reveal:!1};return e}),[c,v]=(0,a.useState)(null),[,x]=(0,a.useTransition)();(0,a.useEffect)(()=>{x(async()=>{let e=await P({scope:t,id:r,...i?{rootId:i}:{}});if(!e.ok)return void u.oR.error(e.error);d(t=>{let r={};for(let i of e.secrets){var s,a;r[i.key]={set:i.set,draft:"",reveal:null!=(a=null==(s=t[i.key])?void 0:s.reveal)&&a}}return r})})},[t,r,i]);let p=async e=>{let s=l[e];if(!s||!s.draft)return void u.oR.error("Введи значение");v(e);try{let a=await R({scope:t,id:r,...i?{rootId:i}:{},key:e,value:s.draft});if(!a.ok)return void u.oR.error(a.error);u.oR.success("".concat(e," сохранён")),d(t=>({...t,[e]:{set:!0,draft:"",reveal:!1}}))}finally{v(null)}},b=async e=>{v(e);try{let s=await z({scope:t,id:r,...i?{rootId:i}:{},key:e});if(!s.ok)return void u.oR.error(s.error);u.oR.success("".concat(e," удалён")),d(t=>({...t,[e]:{set:!1,draft:"",reveal:!1}}))}finally{v(null)}};return 0===n.length?null:(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsxs)("div",{className:"text-[10px] uppercase tracking-wider text-muted-foreground flex items-center gap-1",children:[(0,s.jsx)(y.A,{className:"h-3 w-3"})," Секреты"]}),(0,s.jsxs)("p",{className:"text-[11px] text-muted-foreground",children:["Значения хранятся локально (",(0,s.jsx)("code",{className:"font-mono",children:"~/.reflex/secrets/"}),") и не передаются агенту. Утилита читает их через"," ",(0,s.jsx)("code",{className:"font-mono",children:"reflex.secrets.get"}),"."]}),(0,s.jsx)("ul",{className:"space-y-3",children:n.map(e=>{var t;let r=null!=(t=l[e.key])?t:{set:!1,draft:"",reveal:!1},a=c===e.key;return(0,s.jsxs)("li",{className:"space-y-1.5",children:[(0,s.jsxs)(S.J,{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"font-mono",children:e.key}),r.set?(0,s.jsxs)(h.E,{variant:"secondary",className:"gap-1",children:[(0,s.jsx)(k.A,{className:"h-2.5 w-2.5"})," set"]}):e.required?(0,s.jsx)(h.E,{variant:"destructive",children:"missing (required)"}):(0,s.jsx)(h.E,{variant:"outline",children:"empty"})]}),(0,s.jsxs)("p",{className:"text-[11px] text-muted-foreground",children:[e.label,e.description?" \xb7 ".concat(e.description):""]}),(0,s.jsxs)("div",{className:"flex items-center gap-1",children:[(0,s.jsx)(A.p,{type:r.reveal?"text":"password",value:r.draft,onChange:t=>d(s=>({...s,[e.key]:{...r,draft:t.target.value}})),placeholder:r.set?"•••• (сохранено, введи новое для замены)":"новое значение",className:"font-mono text-xs flex-1 h-8",disabled:a}),(0,s.jsx)(m.$,{type:"button",size:"icon",variant:"ghost",className:"h-8 w-8 shrink-0",onClick:()=>d(t=>({...t,[e.key]:{...r,reveal:!r.reveal}})),title:r.reveal?"Скрыть":"Показать",children:r.reveal?(0,s.jsx)(j.A,{className:"h-3.5 w-3.5"}):(0,s.jsx)(w.A,{className:"h-3.5 w-3.5"})})]}),(0,s.jsxs)("div",{className:"flex gap-1",children:[(0,s.jsx)(m.$,{type:"button",size:"sm",variant:"default",className:"h-7 text-xs flex-1",onClick:()=>void p(e.key),disabled:a||!r.draft,children:a?(0,s.jsx)(o.A,{className:"h-3 w-3 animate-spin"}):"Сохранить"}),r.set&&(0,s.jsx)(m.$,{type:"button",size:"sm",variant:"outline",className:"h-7 text-xs",onClick:()=>void b(e.key),disabled:a,children:(0,s.jsx)(N.A,{className:"h-3 w-3"})})]})]},e.key)})})]})}function C(e){var t,r,i,p,y,k,j,w,N;let{scope:A,id:S,rootId:P,manifest:R,dir:z}=e,[C,U]=(0,a.useTransition)(),[E,T]=(0,a.useTransition)(),[_,V]=(0,a.useTransition)(),$=(0,v.useRouter)(),[I,O]=(0,a.useState)(null),[q,F]=(0,a.useState)(""),H=null==(r=R.source)||null==(t=r.origin)?void 0:t.startsWith("github:");return(0,s.jsxs)("div",{className:"space-y-4 text-xs",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{className:"text-[10px] uppercase tracking-wider text-muted-foreground mb-1",children:"Источник"}),(0,s.jsxs)("div",{className:"space-y-1",children:[(0,s.jsx)(h.E,{variant:"secondary",className:"capitalize",children:null!=(j=null==(i=R.source)?void 0:i.type)?j:"unknown"}),(null==(p=R.source)?void 0:p.origin)&&(0,s.jsx)("div",{className:"font-mono break-all text-muted-foreground",children:R.source.origin}),(null==(y=R.source)?void 0:y.fetchedAt)&&(0,s.jsx)("div",{className:"text-muted-foreground",children:new Date(R.source.fetchedAt).toLocaleString()})]})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{className:"text-[10px] uppercase tracking-wider text-muted-foreground mb-1",children:"Файлы на диске"}),(0,s.jsx)("div",{className:"font-mono break-all text-muted-foreground",children:z})]}),(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{className:"text-[10px] uppercase tracking-wider text-muted-foreground mb-1 flex items-center gap-1",children:[(0,s.jsx)(n,{className:"h-3 w-3"})," Permissions"]}),(0,s.jsx)(L,{manifest:R})]}),(null!=(w=null==(k=R.secrets)?void 0:k.length)?w:0)>0&&(0,s.jsx)("div",{className:"pt-2 border-t",children:(0,s.jsx)(M,{scope:A,id:S,...P?{rootId:P}:{},declared:null!=(N=R.secrets)?N:[]})}),R.serverActions.length>0&&(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{className:"text-[10px] uppercase tracking-wider text-muted-foreground mb-1",children:"Server actions"}),(0,s.jsx)("ul",{className:"space-y-1",children:R.serverActions.map(e=>(0,s.jsxs)("li",{children:[(0,s.jsx)(h.E,{variant:"outline",className:"font-mono mr-1",children:e.name}),(0,s.jsxs)("span",{className:"text-muted-foreground",children:["→ ",e.entry]})]},e.name))})]}),(0,s.jsxs)("div",{className:"pt-2 border-t space-y-2",children:[(0,s.jsxs)("div",{className:"text-[10px] uppercase tracking-wider text-muted-foreground flex items-center gap-1",children:[(0,s.jsx)(l.A,{className:"h-3 w-3"})," Изменить"]}),(0,s.jsx)(x.T,{value:q,onChange:e=>F(e.target.value),placeholder:"Что доработать? Напр.: добавь dark mode, кешируй результаты в data/cache.json, поменяй валидацию ввода…",className:"text-xs min-h-[80px]",disabled:_}),(0,s.jsxs)(m.$,{type:"button",size:"sm",className:"w-full",onClick:()=>{let e=q.trim();if(!e)return void u.oR.error("Опиши, что изменить");V(async()=>{let t=await g({scope:A,id:S,...P?{rootId:P}:{},instruction:e});if(!t.ok)return void u.oR.error(t.error);u.oR.success("Топик стартовал — переходим в чат"),F(""),$.push("/roots/".concat(t.rootId,"/chat/").concat(t.topicId))})},disabled:_||!q.trim(),children:[_?(0,s.jsx)(o.A,{className:"mr-2 h-3.5 w-3.5 animate-spin"}):(0,s.jsx)(l.A,{className:"mr-2 h-3.5 w-3.5"}),"Изменить (стартует /goal)"]})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-2 pt-2 border-t",children:[(0,s.jsxs)(m.$,{type:"button",size:"sm",variant:"outline",onClick:()=>U(async()=>{var e;let t=await b(A,S,P);t.ok?(u.oR.success("Bundle перезобрана"),$.refresh()):u.oR.error(null!=(e=t.error)?e:"fail")}),disabled:C,children:[C?(0,s.jsx)(o.A,{className:"mr-2 h-3.5 w-3.5 animate-spin"}):(0,s.jsx)(d,{className:"mr-2 h-3.5 w-3.5"}),"Перебилдить bundle"]}),H&&(0,s.jsxs)(m.$,{type:"button",size:"sm",variant:"outline",onClick:()=>T(async()=>{let e=await f(A,S,P);if(!e.ok)return void u.oR.error(e.error);if(e.upToDate)O(null),u.oR.success("Уже последняя версия");else{var t;O("Доступен новый sha ".concat(null==(t=e.latestSha)?void 0:t.slice(0,7)))}}),disabled:E,children:[E?(0,s.jsx)(o.A,{className:"mr-2 h-3.5 w-3.5 animate-spin"}):(0,s.jsx)(c.A,{className:"mr-2 h-3.5 w-3.5"}),"Проверить обновления"]}),I&&(0,s.jsxs)("div",{className:"rounded border border-emerald-400 bg-emerald-50 px-2 py-1 text-emerald-900",children:[I," — переустанови утилиту, чтобы применить."]})]})]})}function L(e){var t,r,a,i,n,l,o,d,c,u,v,h,m,x;let{manifest:p}=e,b=p.permissions,f=[];return((null==(r=b.llm)||null==(t=r.tasks)?void 0:t.length)&&f.push("llm.tasks = [".concat(b.llm.tasks.join(", "),"]")),(null==(a=b.kb)?void 0:a.read)&&f.push("kb.read"),(null==(i=b.kb)?void 0:i.write)&&f.push("kb.write"),(null==(l=b.kb)||null==(n=l.kinds)?void 0:n.length)&&f.push("kb.kinds = [".concat(b.kb.kinds.join(", "),"]")),(null==(o=b.fs)?void 0:o.sandbox)&&f.push("fs (sandboxed in data/)"),(null==(u=b.web)||null==(c=u.fetch)||null==(d=c.domains)?void 0:d.length)&&f.push("web.fetch = [".concat(b.web.fetch.domains.join(", "),"]")),(null==(v=b.web)?void 0:v.search)&&f.push("web.search"),(null==(h=b.audit)?void 0:h.write)&&f.push("audit.write"),(null==(m=b.workers)?void 0:m.enabled)&&f.push("workers (max ".concat(null!=(x=b.workers.maxConcurrent)?x:1,")")),0===f.length)?(0,s.jsx)("p",{className:"text-muted-foreground italic",children:"Без разрешений."}):(0,s.jsx)("ul",{className:"space-y-0.5 font-mono",children:f.map(e=>(0,s.jsx)("li",{children:e},e))})}},76974:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(45804).A)("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]])},78825:(e,t,r)=>{"use strict";r.d(t,{J:()=>n});var s=r(4624);r(99356);var a=r(33976),i=r(13506);function n(e){let{className:t,...r}=e;return(0,s.jsx)(a.Root,{"data-slot":"label",className:(0,i.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",t),...r})}},82010:(e,t,r)=>{"use strict";r.d(t,{ShareButton:()=>m});var s=r(4624),a=r(99356),i=r(30441),n=r(43153),l=r(9598),o=r(13561),d=r(3024),c=r(56221),u=r(7911);let v=(0,u.createServerReference)("40112cacd6f2c3ea54f6e5c5d0b94307cca73fedb6",u.callServer,void 0,u.findSourceMapURL,"createShareAction");var h=r(65428);function m(e){let[t,r]=(0,a.useState)(!1),[u,m]=(0,a.useState)(""),[x,p]=(0,a.useTransition)(),[b,f]=(0,a.useState)(null);return t?b?(0,s.jsxs)("div",{className:"rounded border bg-card p-2 text-xs space-y-1.5 w-full max-w-sm",children:[(0,s.jsxs)("div",{className:"flex items-center gap-1.5 text-emerald-700",children:[(0,s.jsx)(n.A,{className:"h-3.5 w-3.5"}),(0,s.jsx)("span",{className:"font-medium",children:"Ссылка создана"})]}),(0,s.jsx)("a",{href:b.url,target:"_blank",rel:"noopener noreferrer",className:"block font-mono text-[11px] text-violet-700 hover:underline break-all",children:b.url}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsxs)("button",{type:"button",onClick:()=>void navigator.clipboard.writeText(b.url).then(()=>c.oR.success("Скопировано")),className:"inline-flex items-center gap-1 rounded border px-2 py-0.5 hover:bg-accent",children:[(0,s.jsx)(l.A,{className:"h-3 w-3"}),"Скопировать"]}),(0,s.jsx)("button",{type:"button",onClick:()=>{f(null),r(!1),m("")},className:"text-muted-foreground hover:text-foreground",children:"Готово"})]})]}):(0,s.jsxs)("div",{className:"rounded border bg-card p-2 text-xs space-y-1.5 w-full max-w-sm",children:[(0,s.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,s.jsx)(i.A,{className:"h-3.5 w-3.5 text-violet-600"}),(0,s.jsx)("span",{className:"font-medium",children:"Новая публичная ссылка"}),(0,s.jsx)("button",{type:"button",onClick:()=>r(!1),className:"ml-auto text-muted-foreground hover:text-foreground",children:(0,s.jsx)(o.A,{className:"h-3 w-3"})})]}),(0,s.jsx)("label",{className:"block text-[10px] text-muted-foreground",children:"Пароль (опционально)"}),(0,s.jsxs)("div",{className:"relative",children:[(0,s.jsx)(d.A,{className:"absolute left-2 top-1/2 -translate-y-1/2 h-3 w-3 text-muted-foreground pointer-events-none"}),(0,s.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,s.jsx)("button",{type:"button",onClick:()=>{p(async()=>{var t;let r=await (0,h.N)(),s=await v({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(!s.ok)return void c.oR.error(s.error);let a=null!=(t=r.status.publicUrl)?t:window.location.origin,i=new URL("/share/".concat(s.share.id),a).toString();f({share:s.share,url:i}),navigator.clipboard.writeText(i).catch(()=>null),c.oR.success(r.status.running?"Ссылка создана и скопирована":"Ссылка создана; запусти ngrok-туннель в настройках чтобы открыть извне")})},disabled:x,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:x?"Создание…":"Создать ссылку"}),(0,s.jsx)("p",{className:"text-[10px] text-muted-foreground",children:"Ссылку будет видно только после старта ngrok-туннеля (Настройки → Публичные ссылки)."})]}):(0,s.jsxs)("button",{type:"button",onClick:()=>r(!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,s.jsx)(i.A,{className:"h-3.5 w-3.5"}),!e.iconOnly&&"Поделиться"]})}},84784:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(45804).A)("Eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]])},85253:(e,t,r)=>{"use strict";r.d(t,{$:()=>o});var s=r(4624);r(99356);var a=r(60621),i=r(50362),n=r(13506);let l=(0,a.F)("inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",xs:"h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-xs":"size-6 rounded-md [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}});function o(e){let{className:t,variant:r="default",size:a="default",asChild:o=!1,...d}=e,c=o?i.bL:"button";return(0,s.jsx)(c,{"data-slot":"button","data-variant":r,"data-size":a,className:(0,n.cn)(l({variant:r,size:a,className:t})),...d})}},91074:(e,t,r)=>{"use strict";r.d(t,{Separator:()=>n});var s=r(4624);r(99356);var a=r(44188),i=r(13506);function n(e){let{className:t,orientation:r="horizontal",decorative:n=!0,...l}=e;return(0,s.jsx)(a.b,{"data-slot":"separator",decorative:n,orientation:r,className:(0,i.cn)("shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",t),...l})}},94151:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(45804).A)("KeyRound",[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]])}},e=>{e.O(0,[4400,1217,3335,5097,1521,4933,146,7358],()=>e(e.s=53931)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8997],{2428:(e,t,s)=>{"use strict";s.d(t,{g:()=>a});var r=s(7911);let a=(0,r.createServerReference)("404c0a0f9643f48b41147754c837c645f337c66d22",r.callServer,void 0,r.findSourceMapURL,"installCuratedAction")},4959:(e,t,s)=>{"use strict";s.d(t,{BT:()=>o,Wu:()=>d,ZB:()=>l,Zp:()=>i,aR:()=>n,wL:()=>c});var r=s(4624);s(99356);var a=s(13506);function i(e){let{className:t,...s}=e;return(0,r.jsx)("div",{"data-slot":"card",className:(0,a.cn)("flex flex-col gap-6 rounded-xl border bg-card py-6 text-card-foreground shadow-sm",t),...s})}function n(e){let{className:t,...s}=e;return(0,r.jsx)("div",{"data-slot":"card-header",className:(0,a.cn)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",t),...s})}function l(e){let{className:t,...s}=e;return(0,r.jsx)("div",{"data-slot":"card-title",className:(0,a.cn)("leading-none font-semibold",t),...s})}function o(e){let{className:t,...s}=e;return(0,r.jsx)("div",{"data-slot":"card-description",className:(0,a.cn)("text-sm text-muted-foreground",t),...s})}function d(e){let{className:t,...s}=e;return(0,r.jsx)("div",{"data-slot":"card-content",className:(0,a.cn)("px-6",t),...s})}function c(e){let{className:t,...s}=e;return(0,r.jsx)("div",{"data-slot":"card-footer",className:(0,a.cn)("flex items-center px-6 [.border-t]:pt-6",t),...s})}},8096:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(45804).A)("Sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]])},9598:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(45804).A)("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]])},13506:(e,t,s)=>{"use strict";s.d(t,{cn:()=>i});var r=s(47989),a=s(55701);function i(){for(var e=arguments.length,t=Array(e),s=0;s<e;s++)t[s]=arguments[s];return(0,a.QP)((0,r.$)(t))}},13561:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(45804).A)("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},15523:(e,t,s)=>{"use strict";s.d(t,{p:()=>i});var r=s(4624);s(99356);var a=s(13506);function i(e){let{className:t,type:s,...i}=e;return(0,r.jsx)("input",{type:s,"data-slot":"input",className:(0,a.cn)("h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30","focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50","aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",t),...i})}},22841:(e,t,s)=>{"use strict";s.d(t,{bq:()=>u,eb:()=>m,gC:()=>x,l6:()=>d,yv:()=>c});var r=s(4624);s(99356);var a=s(69709),i=s(43153),n=s(59728),l=s(85314),o=s(13506);function d(e){let{...t}=e;return(0,r.jsx)(l.Root,{"data-slot":"select",...t})}function c(e){let{...t}=e;return(0,r.jsx)(l.Value,{"data-slot":"select-value",...t})}function u(e){let{className:t,size:s="default",children:i,...n}=e;return(0,r.jsxs)(l.Trigger,{"data-slot":"select-trigger","data-size":s,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),...n,children:[i,(0,r.jsx)(l.Icon,{asChild:!0,children:(0,r.jsx)(a.A,{className:"size-4 opacity-50"})})]})}function x(e){let{className:t,children:s,position:a="item-aligned",align:i="center",...n}=e;return(0,r.jsx)(l.Portal,{children:(0,r.jsxs)(l.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"===a&&"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:a,align:i,...n,children:[(0,r.jsx)(h,{}),(0,r.jsx)(l.Viewport,{className:(0,o.cn)("p-1","popper"===a&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:s}),(0,r.jsx)(v,{})]})})}function m(e){let{className:t,children:s,...a}=e;return(0,r.jsxs)(l.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),...a,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)(l.ItemIndicator,{children:(0,r.jsx)(i.A,{className:"size-4"})})}),(0,r.jsx)(l.ItemText,{children:s})]})}function h(e){let{className:t,...s}=e;return(0,r.jsx)(l.ScrollUpButton,{"data-slot":"select-scroll-up-button",className:(0,o.cn)("flex cursor-default items-center justify-center py-1",t),...s,children:(0,r.jsx)(n.A,{className:"size-4"})})}function v(e){let{className:t,...s}=e;return(0,r.jsx)(l.ScrollDownButton,{"data-slot":"select-scroll-down-button",className:(0,o.cn)("flex cursor-default items-center justify-center py-1",t),...s,children:(0,r.jsx)(a.A,{className:"size-4"})})}},23119:(e,t,s)=>{"use strict";s.d(t,{InstallViaAgentButton:()=>v});var r=s(4624),a=s(99356),i=s(50988),n=s(13561),l=s(43153),o=s(9598),d=s(56221),c=s(85253),u=s(4959),x=s(15523),m=s(78825),h=s(71651);function v(){let[e,t]=(0,a.useState)(!1),[s,v]=(0,a.useState)(""),[f,b]=(0,a.useState)(!1),g=s.trim()?p(s.trim()):p("<github URL here>"),j=async()=>{await navigator.clipboard.writeText(g),b(!0),d.oR.success("Prompt скопирован"),setTimeout(()=>b(!1),1500)};return e?(0,r.jsx)("div",{className:"fixed inset-0 z-50 flex items-start justify-center overflow-y-auto bg-black/30 p-6",children:(0,r.jsxs)(u.Zp,{className:"w-full max-w-2xl",children:[(0,r.jsxs)(u.aR,{className:"flex flex-row items-start justify-between",children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)(u.ZB,{className:"flex items-center gap-2",children:[(0,r.jsx)(i.A,{className:"h-5 w-5"}),"GitHub-репо → Reflex utility (через агента)"]}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground mt-1",children:"Если репо не структурирован как Reflex utility — попроси оркестратора проанализировать его и сгенерировать обёртку."})]}),(0,r.jsx)(c.$,{variant:"ghost",size:"icon",onClick:()=>t(!1),children:(0,r.jsx)(n.A,{className:"h-4 w-4"})})]}),(0,r.jsxs)(u.Wu,{className:"space-y-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)(m.J,{children:"GitHub URL"}),(0,r.jsx)(x.p,{value:s,onChange:e=>v(e.target.value),placeholder:"https://github.com/owner/repo"})]}),(0,r.jsxs)("div",{children:[(0,r.jsxs)(m.J,{className:"flex items-center justify-between",children:[(0,r.jsx)("span",{children:"Prompt для агента"}),(0,r.jsxs)(c.$,{size:"sm",variant:"ghost",onClick:j,className:"gap-1",children:[f?(0,r.jsx)(l.A,{className:"h-3 w-3"}):(0,r.jsx)(o.A,{className:"h-3 w-3"}),f?"Скопировано":"Скопировать"]})]}),(0,r.jsx)(h.T,{value:g,readOnly:!0,className:"font-mono text-xs h-64"})]}),(0,r.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Вставь в чат любого проекта (Sidebar → проект → чат). Агент проанализирует репо, придумает thin UI поверх его API/CLI и эмитнет",(0,r.jsx)("code",{className:"font-mono mx-1",children:"<<reflex:utility>>"}),"маркер; установка пройдёт автоматически."]})]})]})}):(0,r.jsxs)(c.$,{onClick:()=>t(!0),variant:"outline",className:"gap-2",children:[(0,r.jsx)(i.A,{className:"h-4 w-4"}),"From GitHub (via agent)"]})}function p(e){return"Преобразуй GitHub-репо ".concat(e," в Reflex-утилиту.\n\nШаги:\n1. Прочитай README репозитория (через web.fetch если есть permission, иначе попроси).\n2. Определи, что это: npm-пакет / CLI / web app / библиотека.\n3. Спроектируй thin Reflex-обёртку:\n - Если это npm-пакет с JS API → util вызывает его через server action (actions/run.ts).\n - Если это CLI → server action exec'ает его, аргументы из UI.\n - Если это web-сервис → util дергает его API через reflex.web.fetch (укажи нужный домен в permissions.web.fetch.domains).\n4. UI — одна-две формы для главного use-case'а; default-export functional component.\n5. Эмить <<reflex:utility>>{...}<</reflex:utility>> с manifest + files.\n\nМанифест должен содержать source.origin = \"github:").concat(e,'", category = подходящая ("dev", "media", "data", "kb", и т.д.), и явные permissions.\n\nНе выдумывай API — если не уверен в форме вызова, спроси через <<reflex:question>>.')}},28310:(e,t,s)=>{"use strict";s.d(t,{E:()=>o});var r=s(4624);s(99356);var a=s(60621),i=s(50362),n=s(13506);let l=(0,a.F)("inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3",{variants:{variant:{default:"bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"bg-destructive text-white focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40 [a&]:hover:bg-destructive/90",outline:"border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",ghost:"[a&]:hover:bg-accent [a&]:hover:text-accent-foreground",link:"text-primary underline-offset-4 [a&]:hover:underline"}},defaultVariants:{variant:"default"}});function o(e){let{className:t,variant:s="default",asChild:a=!1,...o}=e,d=a?i.bL:"span";return(0,r.jsx)(d,{"data-slot":"badge","data-variant":s,className:(0,n.cn)(l({variant:s}),t),...o})}},35687:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(45804).A)("Plug",[["path",{d:"M12 22v-5",key:"1ega77"}],["path",{d:"M9 8V2",key:"14iosj"}],["path",{d:"M15 8V2",key:"18g5xt"}],["path",{d:"M18 8v5a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V8Z",key:"osxo6l"}]])},36966:(e,t,s)=>{"use strict";s.d(t,{j:()=>a});var r=s(7911);let a=(0,r.createServerReference)("700de833a00b15c9039ff1615816c4afb8c0a4b592",r.callServer,void 0,r.findSourceMapURL,"removeUtilityAction")},42467:(e,t,s)=>{"use strict";s.d(t,{InstallFromGithubButton:()=>w});var r=s(4624),a=s(99356),i=s(69285),n=s(45804);let l=(0,n.A)("Github",[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]]);var o=s(13561),d=s(3239);let c=(0,n.A)("ShieldAlert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);var u=s(86295),x=s(85924),m=s(56221),h=s(28310),v=s(85253),p=s(4959),f=s(15523),b=s(78825),g=s(22841),j=s(7911);let y=(0,j.createServerReference)("4044b62cef5b69b6b791c67c4bbfa4a1f210f32463",j.callServer,void 0,j.findSourceMapURL,"githubPreviewAction"),N=(0,j.createServerReference)("4063cff966c1d4de8215c7616a43f14ad3aa10966f",j.callServer,void 0,j.findSourceMapURL,"githubInstallAction");function w(){let[e,t]=(0,a.useState)(!1),[s,n]=(0,a.useState)(""),[j,w]=(0,a.useState)(null),[A,S]=(0,a.useState)("global"),[C,P]=(0,a.useTransition)(),[R,z]=(0,a.useTransition)(),M=(0,i.useRouter)();return e?(0,r.jsxs)(p.Zp,{className:"fixed inset-x-4 top-16 z-50 mx-auto max-w-2xl shadow-2xl sm:inset-x-auto sm:right-6",children:[(0,r.jsxs)(p.aR,{className:"flex flex-row items-start justify-between gap-3",children:[(0,r.jsxs)("div",{className:"space-y-1",children:[(0,r.jsxs)(p.ZB,{className:"flex items-center gap-2 text-base",children:[(0,r.jsx)(l,{className:"h-4 w-4"})," Установка из GitHub"]}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:"Утилита будет работать в изолированном iframe. Все её вызовы пройдут через Host API с проверкой разрешений."})]}),(0,r.jsx)(v.$,{size:"icon",variant:"ghost",onClick:()=>{t(!1),w(null),n("")},children:(0,r.jsx)(o.A,{className:"h-4 w-4"})})]}),(0,r.jsxs)(p.Wu,{className:"space-y-4",children:[(0,r.jsxs)("form",{className:"flex gap-2",onSubmit:e=>{e.preventDefault(),s.trim()&&P(async()=>{let e=await y(s.trim());if(!e.ok)return void m.oR.error(e.error);w(e.preview)})},children:[(0,r.jsx)(f.p,{value:s,onChange:e=>n(e.target.value),placeholder:"https://github.com/owner/repo или github:owner/repo@tag",className:"font-mono text-xs"}),(0,r.jsx)(v.$,{type:"submit",disabled:C||!s.trim(),children:C?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(d.A,{className:"mr-2 h-4 w-4 animate-spin"})," Запрос…"]}):"Получить превью"})]}),j&&(0,r.jsxs)("div",{className:"space-y-3 rounded-md border p-4 bg-muted/30",children:[(0,r.jsxs)("div",{className:"flex items-baseline gap-3 flex-wrap",children:[(0,r.jsx)("div",{className:"text-base font-semibold",children:j.manifest.name}),(0,r.jsxs)(h.E,{variant:"outline",className:"font-mono text-[10px]",children:["v",j.manifest.version]}),(0,r.jsxs)(h.E,{variant:"secondary",className:"font-mono text-[10px]",children:["github:",j.source.owner,"/",j.source.repo,"@",j.source.sha.slice(0,7)]})]}),j.manifest.author&&(0,r.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Автор: ",j.manifest.author]}),j.manifest.description&&(0,r.jsx)("p",{className:"text-sm",children:j.manifest.description}),(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"text-[11px] uppercase tracking-wider text-muted-foreground mb-1 flex items-center gap-1",children:[(0,r.jsx)(c,{className:"h-3 w-3"})," Запрашиваемые разрешения"]}),(0,r.jsx)(k,{permissions:j.manifest.permissions})]}),(0,r.jsxs)("details",{className:"text-xs",children:[(0,r.jsxs)("summary",{className:"cursor-pointer text-muted-foreground",children:["Файлы в репозитории (",Object.keys(j.files).length,")"]}),(0,r.jsx)("ul",{className:"mt-1 font-mono text-[11px] space-y-0.5",children:Object.entries(j.sizes).map(e=>{var t;let[s,a]=e;return(0,r.jsxs)("li",{className:"flex justify-between gap-3",children:[(0,r.jsx)("span",{className:"truncate",children:s}),(0,r.jsx)("span",{className:"text-muted-foreground shrink-0",children:(t=a)<1024?"".concat(t," B"):t<1048576?"".concat((t/1024).toFixed(1)," KB"):"".concat((t/1048576).toFixed(2)," MB")})]},s)})})]}),(0,r.jsxs)("div",{className:"flex items-center gap-3 pt-2 border-t",children:[(0,r.jsxs)("div",{className:"flex-1",children:[(0,r.jsx)(b.J,{className:"text-xs",children:"Куда установить"}),(0,r.jsxs)(g.l6,{value:A,onValueChange:e=>S(e),children:[(0,r.jsx)(g.bq,{className:"mt-1",children:(0,r.jsx)(g.yv,{})}),(0,r.jsxs)(g.gC,{children:[(0,r.jsx)(g.eb,{value:"global",children:"Глобально (~/.reflex/utilities/)"}),(0,r.jsx)(g.eb,{value:"project",disabled:!0,children:"В проект — нужно открыть конкретный проект"})]})]})]}),(0,r.jsx)(v.$,{onClick:()=>{j&&z(async()=>{let e=await N({preview:j,scope:A});if(!e.ok)return void m.oR.error(e.error);m.oR.success("Установлена: ".concat(e.id)),t(!1),n(""),w(null),M.refresh()})},disabled:R,size:"lg",className:"self-end",children:R?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(d.A,{className:"mr-2 h-4 w-4 animate-spin"})," Ставим…"]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(u.A,{className:"mr-2 h-4 w-4"})," Установить"]})})]}),(0,r.jsxs)("div",{className:"flex items-start gap-2 text-[11px] text-muted-foreground rounded bg-amber-100/40 border border-amber-200 px-2 py-1.5",children:[(0,r.jsx)(x.A,{className:"h-3 w-3 mt-0.5 shrink-0 text-amber-700"}),(0,r.jsx)("span",{children:"Это код от другого пользователя. Reflex ставит CSP-запрет на прямые сетевые вызовы, но проверь список разрешений выше — особенно домены под web.fetch и kb.write."})]})]})]})]}):(0,r.jsxs)(v.$,{onClick:()=>t(!0),children:[(0,r.jsx)(l,{className:"mr-2 h-4 w-4"})," Установить из GitHub"]})}function k(e){var t,s,a,i,n,l,o,d,c,u,x;let{permissions:m}=e,v=[];return((null==(s=m.llm)||null==(t=s.tasks)?void 0:t.length)&&v.push({label:"llm: ".concat(m.llm.tasks.join(", ")),severity:"info"}),(null==(a=m.kb)?void 0:a.read)&&v.push({label:"kb.read",severity:"info"}),(null==(i=m.kb)?void 0:i.write)&&v.push({label:"kb.write",severity:"warn"}),(null==(n=m.fs)?void 0:n.sandbox)&&v.push({label:"fs (sandbox)",severity:"info"}),(null==(d=m.web)||null==(o=d.fetch)||null==(l=o.domains)?void 0:l.length)&&v.push({label:"web.fetch → ".concat(m.web.fetch.domains.join(", ")),severity:"warn"}),(null==(c=m.web)?void 0:c.search)&&v.push({label:"web.search",severity:"warn"}),(null==(u=m.audit)?void 0:u.write)&&v.push({label:"audit.write",severity:"info"}),(null==(x=m.workers)?void 0:x.enabled)&&v.push({label:"workers (server actions)",severity:"danger"}),0===v.length)?(0,r.jsx)("span",{className:"text-xs italic text-muted-foreground",children:"Без разрешений — утилита чисто UI."}):(0,r.jsx)("div",{className:"flex flex-wrap gap-1.5",children:v.map(e=>(0,r.jsx)(h.E,{variant:"outline",className:"danger"===e.severity?"border-destructive text-destructive":"warn"===e.severity?"border-amber-600 text-amber-700":"",children:e.label},e.label))})}},43153:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(45804).A)("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]])},46550:(e,t,s)=>{"use strict";s.d(t,{InstallFromMcpButton:()=>j});var r=s(4624),a=s(99356),i=s(69285),n=s(35687),l=s(13561),o=s(3239),d=s(56221),c=s(28310),u=s(85253),x=s(4959),m=s(15523),h=s(78825),v=s(71651),p=s(22841),f=s(7911);let b=(0,f.createServerReference)("40d1ddca47c1dab07352c37869ea356f6869f3251a",f.callServer,void 0,f.findSourceMapURL,"mcpPreviewAction"),g=(0,f.createServerReference)("406bda1bac5663f40ca2976ff401de1c31aee122c2",f.callServer,void 0,f.findSourceMapURL,"mcpInstallAction");function j(){var e;let[t,s]=(0,a.useState)(!1),[f,j]=(0,a.useState)("stdio"),[y,N]=(0,a.useState)(""),[w,k]=(0,a.useState)(""),[A,S]=(0,a.useState)(""),[C,P]=(0,a.useState)(""),[R,z]=(0,a.useState)(""),[M,I]=(0,a.useState)(""),[V,L]=(0,a.useState)(""),[U,_]=(0,a.useState)("global"),[J,T]=(0,a.useState)(null),[B,$]=(0,a.useTransition)(),[F,O]=(0,a.useTransition)(),E=(0,i.useRouter)(),H=()=>{if("stdio"===f){if(!y.trim())return{ok:!1,error:"command required"};try{let e=A.trim()?JSON.parse(A):{};return{ok:!0,config:{transport:"stdio",command:y.trim(),args:w.trim()?w.trim().split(/\s+/).filter(Boolean):[],env:e}}}catch(e){return{ok:!1,error:"env must be JSON object"}}}if(!C.trim())return{ok:!1,error:"URL required"};try{let e=R.trim()?JSON.parse(R):{};return{ok:!0,config:{transport:f,url:C.trim(),headers:e}}}catch(e){return{ok:!1,error:"headers must be JSON object"}}},q=()=>{N(""),k(""),S(""),P(""),z(""),I(""),L(""),T(null)};return t?(0,r.jsx)("div",{className:"fixed inset-0 z-50 flex items-start justify-center overflow-y-auto bg-black/30 p-6",children:(0,r.jsxs)(x.Zp,{className:"w-full max-w-2xl",children:[(0,r.jsxs)(x.aR,{className:"flex flex-row items-start justify-between",children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)(x.ZB,{className:"flex items-center gap-2",children:[(0,r.jsx)(n.A,{className:"h-5 w-5"}),"MCP server → Reflex utility"]}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground mt-1",children:"Подключимся к серверу, прочитаем tools/list, сгенерируем UI и server-action прокси."})]}),(0,r.jsx)(u.$,{variant:"ghost",size:"icon",onClick:()=>{s(!1),q()},children:(0,r.jsx)(l.A,{className:"h-4 w-4"})})]}),(0,r.jsxs)(x.Wu,{className:"space-y-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)(h.J,{children:"Transport"}),(0,r.jsxs)(p.l6,{value:f,onValueChange:e=>j(e),children:[(0,r.jsx)(p.bq,{className:"w-48",children:(0,r.jsx)(p.yv,{})}),(0,r.jsxs)(p.gC,{children:[(0,r.jsx)(p.eb,{value:"stdio",children:"stdio (subprocess)"}),(0,r.jsx)(p.eb,{value:"http",children:"HTTP (Streamable)"}),(0,r.jsx)(p.eb,{value:"sse",children:"SSE (legacy)"})]})]})]}),"stdio"===f?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{children:[(0,r.jsx)(h.J,{children:"Command"}),(0,r.jsx)(m.p,{value:y,onChange:e=>N(e.target.value),placeholder:"npx"})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)(h.J,{children:"Args (space-separated)"}),(0,r.jsx)(m.p,{value:w,onChange:e=>k(e.target.value),placeholder:"-y @modelcontextprotocol/server-everything"})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)(h.J,{children:"Env (JSON, optional)"}),(0,r.jsx)(v.T,{value:A,onChange:e=>S(e.target.value),placeholder:'{"FOO": "bar"}',className:"font-mono text-xs"})]})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{children:[(0,r.jsx)(h.J,{children:"URL"}),(0,r.jsx)(m.p,{value:C,onChange:e=>P(e.target.value),placeholder:"https://example.com/mcp"})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)(h.J,{children:"Headers (JSON, optional)"}),(0,r.jsx)(v.T,{value:R,onChange:e=>z(e.target.value),placeholder:'{"Authorization": "Bearer ..."}',className:"font-mono text-xs"})]})]}),(0,r.jsx)("div",{className:"flex justify-end",children:(0,r.jsx)(u.$,{onClick:()=>{let e=H();if(!e.ok)return void d.oR.error(e.error);T(null),$(async()=>{var t,s;let r=await b(e.config);if(!r.ok)return void d.oR.error("Connect failed: "+r.error);T({...r.serverName?{serverName:r.serverName}:{},...r.serverVersion?{serverVersion:r.serverVersion}:{},tools:r.tools}),M||I((null!=(t=r.serverName)?t:"mcp-server").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40)||"mcp-server"),V||L(null!=(s=r.serverName)?s:"MCP server")})},disabled:B,children:B?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(o.A,{className:"h-4 w-4 animate-spin mr-2"}),"Connecting…"]}):"Connect & list tools"})}),J&&(0,r.jsxs)("div",{className:"space-y-3 border-t pt-4",children:[(0,r.jsxs)("div",{className:"text-sm",children:[(0,r.jsx)("span",{className:"font-medium",children:"Server:"})," ",null!=(e=J.serverName)?e:"(anonymous)",J.serverVersion?" v".concat(J.serverVersion):"",(0,r.jsxs)(c.E,{variant:"outline",className:"ml-2",children:[J.tools.length," tools"]})]}),(0,r.jsx)("div",{className:"max-h-40 overflow-y-auto rounded border bg-slate-50 p-2 text-xs",children:0===J.tools.length?(0,r.jsx)("em",{className:"text-slate-500",children:"No tools advertised."}):(0,r.jsx)("ul",{className:"space-y-1",children:J.tools.map(e=>(0,r.jsxs)("li",{children:[(0,r.jsx)("span",{className:"font-mono",children:e.name}),e.description&&(0,r.jsxs)("span",{className:"text-slate-500",children:[" — ",e.description]})]},e.name))})}),(0,r.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)(h.J,{children:"Utility id (kebab-case)"}),(0,r.jsx)(m.p,{value:M,onChange:e=>I(e.target.value),placeholder:"my-mcp-server",className:"font-mono"})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)(h.J,{children:"Display name"}),(0,r.jsx)(m.p,{value:V,onChange:e=>L(e.target.value),placeholder:"My MCP Server"})]})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)(h.J,{children:"Scope"}),(0,r.jsxs)(p.l6,{value:U,onValueChange:e=>_(e),children:[(0,r.jsx)(p.bq,{className:"w-48",children:(0,r.jsx)(p.yv,{})}),(0,r.jsxs)(p.gC,{children:[(0,r.jsx)(p.eb,{value:"global",children:"global (~/.reflex)"}),(0,r.jsx)(p.eb,{value:"project",children:"project"})]})]})]}),(0,r.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,r.jsx)(u.$,{variant:"ghost",onClick:()=>{s(!1),q()},children:"Отмена"}),(0,r.jsx)(u.$,{onClick:()=>{let e=H();return e.ok?J?M.trim()&&V.trim()?void O(async()=>{let t=await g({scope:U,id:M.trim(),name:V.trim(),config:e.config});if(!t.ok)return void d.oR.error(t.error);d.oR.success("installed ".concat(t.id)),s(!1),q(),E.refresh(),E.push("/utilities/".concat(t.scope,"/").concat(t.id))}):void d.oR.error("id and name required"):void d.oR.error("preview first"):void d.oR.error(e.error)},disabled:F,children:F?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(o.A,{className:"h-4 w-4 animate-spin mr-2"}),"Installing…"]}):"Install"})]})]})]})]})}):(0,r.jsxs)(u.$,{onClick:()=>s(!0),variant:"outline",className:"gap-2",children:[(0,r.jsx)(n.A,{className:"h-4 w-4"}),"From MCP"]})}},46972:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(45804).A)("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]])},48572:(e,t,s)=>{"use strict";s.d(t,{RemoveUtilityButton:()=>u});var r=s(4624),a=s(99356),i=s(69285),n=s(3239),l=s(46972),o=s(56221),d=s(85253),c=s(36966);function u(e){let{scope:t,id:s,name:u,rootId:x}=e,[m,h]=(0,a.useTransition)(),v=(0,i.useRouter)();return(0,r.jsx)(d.$,{type:"button",size:"sm",variant:"ghost",disabled:m,onClick:()=>{confirm('Удалить утилиту "'.concat(u,'"?\nКод и данные в data/ будут стёрты.'))&&h(async()=>{var e;let r=await (0,c.j)(t,s,x);r.ok?(o.oR.success("Удалено"),v.refresh()):o.oR.error(null!=(e=r.error)?e:"не получилось")})},children:m?(0,r.jsx)(n.A,{className:"h-4 w-4 animate-spin"}):(0,r.jsx)(l.A,{className:"h-4 w-4 text-muted-foreground"})})}},50988:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(45804).A)("Bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]])},57751:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(45804).A)("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]])},59487:(e,t,s)=>{"use strict";s.d(t,{CuratedGallery:()=>f});var r=s(4624),a=s(99356),i=s(69285),n=s(3239),l=s(8096),o=s(43153),d=s(69709),c=s(57751),u=s(56221),x=s(4959),m=s(28310),h=s(79795),v=s(2428);let p={finance:"Финансы",health:"Здоровье",productivity:"Продуктивность",travel:"Путешествия",study:"Учёба",creative:"Творчество",other:"Другое"};function f(e){let{installedIds:t,spaces:s}=e,f=(0,i.useRouter)(),[b,g]=(0,a.useState)([]),[j,y]=(0,a.useState)(!0),[N,w]=(0,a.useState)(null),[k,A]=(0,a.useState)("all"),[S,C]=(0,a.useTransition)(),[P,R]=(0,a.useState)(null);(0,a.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await (0,h.B)();e||g(t.items)}catch(t){e||g([])}finally{e||y(!1)}})(),()=>{e=!0}},[]);let z=(0,a.useMemo)(()=>{let e=new Set;return b.forEach(t=>e.add(t.category)),["all",...Array.from(e).sort()]},[b]),M="all"===k?b:b.filter(e=>e.category===k),I=(e,t)=>{w(e.id),C(async()=>{var r,a;let i=null!=(a=e.suggestedScope)?a:"global",n=await (0,v.g)({github:e.github,scope:i,..."project"===i&&t?{rootId:t}:{}});if(w(null),R(null),!n.ok)return void u.oR.error(n.error);let l=t?null==(r=s.find(e=>e.id===t))?void 0:r.label:void 0;u.oR.success("\xab".concat(e.name,"\xbb установлено").concat(l?" в \xab".concat(l,"\xbb"):"")),f.refresh()})};return j?(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,r.jsx)(n.A,{className:"h-3 w-3 animate-spin"}),"Загружаю каталог…"]}):0===b.length?(0,r.jsx)("p",{className:"text-xs text-muted-foreground",children:"Каталог пуст. Можно установить из GitHub вручную (внизу страницы)."}):(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsxs)("div",{className:"flex items-center gap-1.5 flex-wrap",children:[(0,r.jsx)(l.A,{className:"h-3 w-3 text-violet-600"}),(0,r.jsx)("span",{className:"text-[11px] text-muted-foreground mr-2",children:"Категория:"}),z.map(e=>{var t;return(0,r.jsx)("button",{type:"button",onClick:()=>A(e),className:"rounded-full px-2 py-0.5 text-[11px] "+(k===e?"bg-violet-600 text-white":"border bg-card hover:bg-accent"),children:"all"===e?"Все":null!=(t=p[e])?t:e},e)})]}),(0,r.jsx)("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:M.map(e=>{var a;let i=t.has(e.id),l=N===e.id&&S;return(0,r.jsx)(x.Zp,{className:"group",children:(0,r.jsxs)(x.Wu,{className:"pt-4 pb-4 space-y-2",children:[(0,r.jsxs)("div",{className:"flex items-start gap-2",children:[(0,r.jsx)("span",{className:"text-2xl leading-none",children:e.emoji}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)("div",{className:"font-medium truncate",children:e.name}),(0,r.jsxs)("div",{className:"text-[10px] text-muted-foreground font-mono truncate",children:[e.author?"".concat(e.author,"/"):"",e.id]})]}),(0,r.jsx)(m.E,{variant:"outline",className:"text-[10px]",children:null!=(a=p[e.category])?a:e.category})]}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground line-clamp-2",children:e.description}),(0,r.jsxs)("div",{className:"pt-1",children:[i?(0,r.jsxs)("button",{type:"button",disabled:!0,className:"inline-flex items-center gap-1 rounded border px-2 py-1 text-xs text-emerald-700 cursor-default",children:[(0,r.jsx)(o.A,{className:"h-3 w-3"}),"Установлено"]}):(0,r.jsxs)("button",{type:"button",onClick:()=>{var t;return"global"===(null!=(t=e.suggestedScope)?t:"global")?void I(e):0===s.length?void u.oR.error("Сначала создай пространство (мастер /onboarding) — утилита привязывается к проекту."):1===s.length?void I(e,s[0].id):void R(t=>t===e.id?null:e.id)},disabled:l||S,className:"inline-flex items-center gap-1 rounded bg-violet-600 px-2 py-1 text-xs text-white hover:bg-violet-700 disabled:opacity-50",children:[l?(0,r.jsx)(n.A,{className:"h-3 w-3 animate-spin"}):"project"===e.suggestedScope&&s.length>1?(0,r.jsx)(d.A,{className:"h-3 w-3"}):(0,r.jsx)(c.A,{className:"h-3 w-3"}),"project"===e.suggestedScope&&s.length>1?"В пространство…":"Установить"]}),P===e.id&&(0,r.jsxs)("ul",{className:"mt-2 rounded-md border bg-popover shadow-sm divide-y",children:[s.map(t=>(0,r.jsx)("li",{children:(0,r.jsxs)("button",{type:"button",onClick:()=>I(e,t.id),disabled:l||S,className:"w-full text-left px-2.5 py-1.5 text-xs hover:bg-accent disabled:opacity-50 inline-flex items-center gap-1.5",children:[(0,r.jsx)(c.A,{className:"h-3 w-3 text-violet-600"}),(0,r.jsx)("span",{className:"truncate",children:t.label})]})},t.id)),(0,r.jsx)("li",{children:(0,r.jsx)("button",{type:"button",onClick:()=>R(null),className:"w-full text-left px-2.5 py-1.5 text-[10px] text-muted-foreground hover:bg-accent",children:"Отмена"})})]})]})]})},e.id)})})]})}},59728:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(45804).A)("ChevronUp",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]])},60621:(e,t,s)=>{"use strict";s.d(t,{F:()=>n});var r=s(47989);let a=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,i=r.$,n=(e,t)=>s=>{var r;if((null==t?void 0:t.variants)==null)return i(e,null==s?void 0:s.class,null==s?void 0:s.className);let{variants:n,defaultVariants:l}=t,o=Object.keys(n).map(e=>{let t=null==s?void 0:s[e],r=null==l?void 0:l[e];if(null===t)return null;let i=a(t)||a(r);return n[e][i]}),d=s&&Object.entries(s).reduce((e,t)=>{let[s,r]=t;return void 0===r||(e[s]=r),e},{});return i(e,o,null==t||null==(r=t.compoundVariants)?void 0:r.reduce((e,t)=>{let{class:s,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,s]=e;return Array.isArray(s)?s.includes({...l,...d}[t]):({...l,...d})[t]===s})?[...e,s,r]:e},[]),null==s?void 0:s.class,null==s?void 0:s.className)}},69285:(e,t,s)=>{"use strict";var r=s(48849);s.o(r,"usePathname")&&s.d(t,{usePathname:function(){return r.usePathname}}),s.o(r,"useRouter")&&s.d(t,{useRouter:function(){return r.useRouter}})},69709:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(45804).A)("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]])},71651:(e,t,s)=>{"use strict";s.d(t,{T:()=>i});var r=s(4624);s(99356);var a=s(13506);function i(e){let{className:t,...s}=e;return(0,r.jsx)("textarea",{"data-slot":"textarea",className:(0,a.cn)("flex field-sizing-content min-h-16 w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none placeholder:text-muted-foreground 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 md:text-sm dark:bg-input/30 dark:aria-invalid:ring-destructive/40",t),...s})}},78825:(e,t,s)=>{"use strict";s.d(t,{J:()=>n});var r=s(4624);s(99356);var a=s(33976),i=s(13506);function n(e){let{className:t,...s}=e;return(0,r.jsx)(a.Root,{"data-slot":"label",className:(0,i.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",t),...s})}},79795:(e,t,s)=>{"use strict";s.d(t,{B:()=>a});var r=s(7911);let a=(0,r.createServerReference)("005f5989e7e1c8cc8a429c5aede416f5fee99b9632",r.callServer,void 0,r.findSourceMapURL,"listCuratedAction")},80795:(e,t,s)=>{Promise.resolve().then(s.bind(s,59487)),Promise.resolve().then(s.bind(s,42467)),Promise.resolve().then(s.bind(s,46550)),Promise.resolve().then(s.bind(s,23119)),Promise.resolve().then(s.bind(s,48572)),Promise.resolve().then(s.bind(s,91074)),Promise.resolve().then(s.bind(s,96253)),Promise.resolve().then(s.bind(s,28050)),Promise.resolve().then(s.bind(s,94904)),Promise.resolve().then(s.bind(s,13270)),Promise.resolve().then(s.bind(s,99730)),Promise.resolve().then(s.bind(s,89146)),Promise.resolve().then(s.bind(s,19078)),Promise.resolve().then(s.bind(s,67854)),Promise.resolve().then(s.bind(s,69050)),Promise.resolve().then(s.bind(s,63739)),Promise.resolve().then(s.bind(s,33976)),Promise.resolve().then(s.bind(s,12537)),Promise.resolve().then(s.bind(s,97485)),Promise.resolve().then(s.bind(s,41923)),Promise.resolve().then(s.bind(s,73868)),Promise.resolve().then(s.bind(s,53511)),Promise.resolve().then(s.bind(s,2018)),Promise.resolve().then(s.bind(s,18487)),Promise.resolve().then(s.bind(s,98346)),Promise.resolve().then(s.bind(s,14884)),Promise.resolve().then(s.bind(s,85314)),Promise.resolve().then(s.bind(s,17280)),Promise.resolve().then(s.bind(s,8855)),Promise.resolve().then(s.bind(s,86631)),Promise.resolve().then(s.bind(s,2604)),Promise.resolve().then(s.bind(s,27237)),Promise.resolve().then(s.bind(s,49455)),Promise.resolve().then(s.bind(s,39211)),Promise.resolve().then(s.bind(s,56360)),Promise.resolve().then(s.t.bind(s,54400,23))},85253:(e,t,s)=>{"use strict";s.d(t,{$:()=>o});var r=s(4624);s(99356);var a=s(60621),i=s(50362),n=s(13506);let l=(0,a.F)("inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",xs:"h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-xs":"size-6 rounded-md [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}});function o(e){let{className:t,variant:s="default",size:a="default",asChild:o=!1,...d}=e,c=o?i.bL:"button";return(0,r.jsx)(c,{"data-slot":"button","data-variant":s,"data-size":a,className:(0,n.cn)(l({variant:s,size:a,className:t})),...d})}},85924:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(45804).A)("TriangleAlert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},86295:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(45804).A)("ShieldCheck",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]])},91074:(e,t,s)=>{"use strict";s.d(t,{Separator:()=>n});var r=s(4624);s(99356);var a=s(44188),i=s(13506);function n(e){let{className:t,orientation:s="horizontal",decorative:n=!0,...l}=e;return(0,r.jsx)(a.b,{"data-slot":"separator",decorative:n,orientation:s,className:(0,i.cn)("shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",t),...l})}}},e=>{e.O(0,[4400,1217,3335,5097,4933,146,7358],()=>e(e.s=80795)),_N_E=e.O()}]);