reflex-agent 0.2.1 → 0.2.3

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 (179) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +101 -101
  3. package/.next/app-path-routes-manifest.json +11 -11
  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 +1 -1
  12. package/.next/server/app/agents/[agentId]/page_client-reference-manifest.js +1 -1
  13. package/.next/server/app/api/agents/[agentId]/respond/route.js +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.js +1 -1
  16. package/.next/server/app/api/images/[rootId]/[file]/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/oauth/callback/route.js +2 -2
  18. package/.next/server/app/api/oauth/callback/route_client-reference-manifest.js +1 -1
  19. package/.next/server/app/api/oauth/start/route.js +1 -1
  20. package/.next/server/app/api/oauth/start/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/roots/[id]/attachments/route.js +0 -0
  22. package/.next/server/app/api/roots/[id]/attachments/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/roots/[id]/chat/[topicId]/send/route.js +1 -1
  24. package/.next/server/app/api/roots/[id]/chat/[topicId]/send/route_client-reference-manifest.js +1 -1
  25. package/.next/server/app/api/roots/[id]/chat/[topicId]/stop/route.js +1 -1
  26. package/.next/server/app/api/roots/[id]/chat/[topicId]/stop/route_client-reference-manifest.js +1 -1
  27. package/.next/server/app/api/roots/[id]/chat/[topicId]/stream/route.js +2 -2
  28. package/.next/server/app/api/roots/[id]/chat/[topicId]/stream/route_client-reference-manifest.js +1 -1
  29. package/.next/server/app/api/roots/[id]/dashboard/route.js +1 -1
  30. package/.next/server/app/api/roots/[id]/dashboard/route.js.nft.json +1 -1
  31. package/.next/server/app/api/roots/[id]/dashboard/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/roots/[id]/suggestions/route.js +1 -1
  33. package/.next/server/app/api/roots/[id]/suggestions/route_client-reference-manifest.js +1 -1
  34. package/.next/server/app/api/utilities/[scope]/[id]/bundle.js/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/utilities/[scope]/[id]/host/route.js +1 -1
  36. package/.next/server/app/api/utilities/[scope]/[id]/host/route_client-reference-manifest.js +1 -1
  37. package/.next/server/app/api/utilities/[scope]/[id]/host-api.mjs/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/utilities/[scope]/[id]/host-ui.mjs/route_client-reference-manifest.js +1 -1
  39. package/.next/server/app/api/utilities/[scope]/[id]/iframe/route_client-reference-manifest.js +1 -1
  40. package/.next/server/app/api/utilities/[scope]/[id]/style.css/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/audit/page.js +2 -2
  42. package/.next/server/app/audit/page.js.nft.json +1 -1
  43. package/.next/server/app/audit/page_client-reference-manifest.js +1 -1
  44. package/.next/server/app/index.html +1 -1
  45. package/.next/server/app/index.rsc +3 -3
  46. package/.next/server/app/onboarding/page.js +3 -3
  47. package/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  48. package/.next/server/app/page.js +2 -2
  49. package/.next/server/app/page.js.nft.json +1 -1
  50. package/.next/server/app/page_client-reference-manifest.js +1 -1
  51. package/.next/server/app/roots/[id]/chat/[topicId]/page.js +3 -3
  52. package/.next/server/app/roots/[id]/chat/[topicId]/page.js.nft.json +1 -1
  53. package/.next/server/app/roots/[id]/chat/[topicId]/page_client-reference-manifest.js +1 -1
  54. package/.next/server/app/roots/[id]/kb/[...slug]/page.js +3 -3
  55. package/.next/server/app/roots/[id]/kb/[...slug]/page.js.nft.json +1 -1
  56. package/.next/server/app/roots/[id]/kb/[...slug]/page_client-reference-manifest.js +1 -1
  57. package/.next/server/app/roots/[id]/page.js +3 -3
  58. package/.next/server/app/roots/[id]/page.js.nft.json +1 -1
  59. package/.next/server/app/roots/[id]/page_client-reference-manifest.js +1 -1
  60. package/.next/server/app/roots/[id]/workflows/[wfId]/page.js +2 -2
  61. package/.next/server/app/roots/[id]/workflows/[wfId]/page_client-reference-manifest.js +1 -1
  62. package/.next/server/app/roots/[id]/workflows/page.js +1 -1
  63. package/.next/server/app/roots/[id]/workflows/page.js.nft.json +1 -1
  64. package/.next/server/app/roots/[id]/workflows/page_client-reference-manifest.js +1 -1
  65. package/.next/server/app/roots/new/page.js +2 -2
  66. package/.next/server/app/roots/new/page_client-reference-manifest.js +1 -1
  67. package/.next/server/app/settings/page.js +5 -5
  68. package/.next/server/app/settings/page.js.nft.json +1 -1
  69. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  70. package/.next/server/app/share/[id]/file/page.js +2 -2
  71. package/.next/server/app/share/[id]/file/page_client-reference-manifest.js +1 -1
  72. package/.next/server/app/share/[id]/page.js +2 -2
  73. package/.next/server/app/share/[id]/page.js.nft.json +1 -1
  74. package/.next/server/app/share/[id]/page_client-reference-manifest.js +1 -1
  75. package/.next/server/app/utilities/[scope]/[id]/page.js +2 -2
  76. package/.next/server/app/utilities/[scope]/[id]/page.js.nft.json +1 -1
  77. package/.next/server/app/utilities/[scope]/[id]/page_client-reference-manifest.js +1 -1
  78. package/.next/server/app/utilities/page.js +4 -4
  79. package/.next/server/app/utilities/page_client-reference-manifest.js +1 -1
  80. package/.next/server/app-paths-manifest.json +11 -11
  81. package/.next/server/chunks/1105.js +1 -1
  82. package/.next/server/chunks/1223.js +1 -1
  83. package/.next/server/chunks/133.js +7 -7
  84. package/.next/server/chunks/1888.js +1 -1
  85. package/.next/server/chunks/1960.js +1 -1
  86. package/.next/server/chunks/1986.js +1 -1
  87. package/.next/server/chunks/2433.js +1 -1
  88. package/.next/server/chunks/2485.js +1 -1
  89. package/.next/server/chunks/2503.js +1 -1
  90. package/.next/server/chunks/2528.js +4 -0
  91. package/.next/server/chunks/3332.js +1 -1
  92. package/.next/server/chunks/4031.js +1 -1
  93. package/.next/server/chunks/4065.js +1 -0
  94. package/.next/server/chunks/4925.js +1 -1
  95. package/.next/server/chunks/5243.js +1 -1
  96. package/.next/server/chunks/6730.js +1 -1
  97. package/.next/server/chunks/6909.js +5 -5
  98. package/.next/server/chunks/6981.js +1 -0
  99. package/.next/server/chunks/7017.js +3 -0
  100. package/.next/server/chunks/{5401.js → 7800.js} +1 -1
  101. package/.next/server/chunks/8494.js +1 -0
  102. package/.next/server/chunks/8514.js +1 -1
  103. package/.next/server/chunks/9098.js +1 -1
  104. package/.next/server/chunks/9293.js +1 -1
  105. package/.next/server/chunks/9328.js +2 -2
  106. package/.next/server/chunks/9423.js +3 -0
  107. package/.next/server/chunks/9455.js +1 -0
  108. package/.next/server/chunks/9579.js +1 -1
  109. package/.next/server/functions-config-manifest.json +2 -2
  110. package/.next/server/middleware-build-manifest.js +1 -1
  111. package/.next/server/middleware-manifest.json +5 -5
  112. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  113. package/.next/server/pages/404.html +1 -1
  114. package/.next/server/pages/500.html +1 -1
  115. package/.next/server/pages/_error.js +2 -2
  116. package/.next/server/server-reference-manifest.js +1 -1
  117. package/.next/server/server-reference-manifest.json +1 -1
  118. package/.next/static/chunks/1384-d28fb6c6c058876f.js +1 -0
  119. package/.next/static/chunks/2718-78fee2c0de782178.js +1 -0
  120. package/.next/static/chunks/4108.1ef6b5e7679b56ac.js +1 -0
  121. package/.next/static/chunks/7238-11701befb3ca3e41.js +1 -0
  122. package/.next/static/chunks/7951-590bf2004d7935b5.js +1 -0
  123. package/.next/static/chunks/8423-ffded33a21b27360.js +1 -0
  124. package/.next/static/chunks/app/{layout-c7a35075cfbfa3e3.js → layout-4fbf9f91ad45e221.js} +1 -1
  125. package/.next/static/chunks/app/onboarding/page-532b193d1c4b0dee.js +1 -0
  126. package/.next/static/chunks/app/page-e3ec0990b78ce7c7.js +1 -0
  127. package/.next/static/chunks/app/roots/[id]/chat/[topicId]/{page-1b55f68984817d29.js → page-11aad9a40def2e0d.js} +1 -1
  128. package/.next/static/chunks/app/roots/[id]/kb/[...slug]/page-d8757a85e873dfa1.js +1 -0
  129. package/.next/static/chunks/app/roots/[id]/page-76216026efb90ae0.js +1 -0
  130. package/.next/static/chunks/app/roots/[id]/workflows/[wfId]/{page-738e8e4128baa722.js → page-c4b6e3825f8626f5.js} +1 -1
  131. package/.next/static/chunks/app/roots/new/page-53ea8d2787e79425.js +1 -0
  132. package/.next/static/chunks/app/settings/page-7ebaf2b62f256538.js +1 -0
  133. package/.next/static/chunks/app/share/[id]/{page-5bbc8503cb9a9eeb.js → page-d5bbbb7e454d1375.js} +1 -1
  134. package/.next/static/chunks/app/utilities/[scope]/[id]/page-e2f928a37483d113.js +1 -0
  135. package/.next/static/chunks/app/utilities/page-839262ff726a52a2.js +1 -0
  136. package/.next/static/chunks/{webpack-2e8cca5826414cc6.js → webpack-87b4bb79fdc48563.js} +1 -1
  137. package/.next/trace +46 -46
  138. package/README.md +12 -1
  139. package/dist/bin/cli.js +1 -0
  140. package/dist/bin/cli.js.map +1 -1
  141. package/dist/bin/preload.js +22 -0
  142. package/dist/bin/preload.js.map +1 -0
  143. package/dist/lib/reflex/commands/start.js +35 -0
  144. package/dist/lib/reflex/commands/start.js.map +1 -1
  145. package/dist/lib/reflex/home.js +18 -0
  146. package/dist/lib/reflex/home.js.map +1 -0
  147. package/dist/lib/reflex/prompts/store.js +2 -2
  148. package/dist/lib/reflex/prompts/store.js.map +1 -1
  149. package/lib/server/utilities/worker-bootstrap.js +87 -0
  150. package/package.json +2 -1
  151. package/.next/server/app/roots/new.html +0 -1
  152. package/.next/server/app/roots/new.meta +0 -7
  153. package/.next/server/app/roots/new.rsc +0 -21
  154. package/.next/server/app/settings.html +0 -1
  155. package/.next/server/app/settings.meta +0 -7
  156. package/.next/server/app/settings.rsc +0 -22
  157. package/.next/server/chunks/5152.js +0 -1
  158. package/.next/server/chunks/5373.js +0 -1
  159. package/.next/server/chunks/5436.js +0 -1
  160. package/.next/server/chunks/5986.js +0 -3
  161. package/.next/server/chunks/613.js +0 -1
  162. package/.next/server/chunks/6536.js +0 -3
  163. package/.next/server/chunks/6602.js +0 -4
  164. package/.next/static/chunks/4108.d6ed46bc2fcab462.js +0 -1
  165. package/.next/static/chunks/4895-712004156efeccf2.js +0 -1
  166. package/.next/static/chunks/6489-ecde2d94e57eb8a9.js +0 -1
  167. package/.next/static/chunks/6727-d38536774bdb32d5.js +0 -1
  168. package/.next/static/chunks/6734-9d524ec49e4ba49c.js +0 -1
  169. package/.next/static/chunks/6744-dbfe3cc4ce461613.js +0 -1
  170. package/.next/static/chunks/app/onboarding/page-cde5b92b13b03c63.js +0 -1
  171. package/.next/static/chunks/app/page-ddaeffdc9a15f597.js +0 -1
  172. package/.next/static/chunks/app/roots/[id]/kb/[...slug]/page-d4358cb6042740c4.js +0 -1
  173. package/.next/static/chunks/app/roots/[id]/page-703d96bf8208af2f.js +0 -1
  174. package/.next/static/chunks/app/roots/new/page-534769dce46d0d29.js +0 -1
  175. package/.next/static/chunks/app/settings/page-86ee3d07ea1acbc7.js +0 -1
  176. package/.next/static/chunks/app/utilities/[scope]/[id]/page-72546d245b840091.js +0 -1
  177. package/.next/static/chunks/app/utilities/page-9f949d831421d314.js +0 -1
  178. /package/.next/static/{p8t15rbWhT5Rrs5fOXWZ6 → vTfQfQnAWV_hFVZjWEYvZ}/_buildManifest.js +0 -0
  179. /package/.next/static/{p8t15rbWhT5Rrs5fOXWZ6 → vTfQfQnAWV_hFVZjWEYvZ}/_ssgManifest.js +0 -0
@@ -1,7 +1,4 @@
1
- (()=>{var a={};a.id=4662,a.ids=[4662,9098],a.modules={83:(a,b,c)=>{"use strict";c.d(b,{Av:()=>o,EI:()=>r,G4:()=>k,Is:()=>s,JV:()=>n,S7:()=>j,TS:()=>m,nL:()=>q,ol:()=>i,op:()=>l,vz:()=>p});var d=c(73745);c(66493);var e=c(65326),f=c(61888),g=c(1223),h=c(10094);async function i(){try{return{ok:!0,statuses:await (0,g.gi)()}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function j(a){try{if(!await (0,h.isOAuthProviderId)(a.provider))return{ok:!1,error:`unknown provider: ${a.provider}`};if(!a.clientId.trim())return{ok:!1,error:"client_id is required"};return await (0,g.cL)(a.provider,{clientId:a.clientId.trim(),...a.clientSecret?.trim()?{clientSecret:a.clientSecret.trim()}:{},...a.scopes&&a.scopes.length>0?{scopes:a.scopes}:{}}),(0,e.revalidatePath)("/settings"),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function k(a){try{if(!await (0,h.isOAuthProviderId)(a))return{ok:!1,error:`unknown provider: ${a}`};return await (0,g.Sh)(a),await (0,g.De)(a),(0,e.revalidatePath)("/settings"),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function l(a){try{if(!await (0,h.isOAuthProviderId)(a))return{ok:!1,error:`unknown provider: ${a}`};return await (0,g.De)(a),(0,e.revalidatePath)("/settings"),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function m(a,b){try{if(!await (0,h.isOAuthProviderId)(a))return{ok:!1,error:`unknown provider: ${a}`};let c=await (0,f.b)(a,b);return{ok:!0,...c}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function n(a){try{let b=await (0,h.getOAuthProvider)(a);if(!b)return{ok:!1,error:`unknown provider: ${a}`};let c=await (0,g.tY)(a);return{ok:!0,client:c?{clientId:c.clientId,hasSecret:!!c.clientSecret,scopes:c.scopes??[]}:null,defaultScopes:b.defaultScopes,setupHint:b.setupHint,consoleUrl:b.consoleUrl,needsClientSecret:b.needsClientSecret,label:b.label,setupSteps:b.setupSteps}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function o(){try{return{ok:!0,providers:await (0,h.E4)()}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function p(a){try{let b=h.lL.parse(a);return await (0,h.To)(b),(0,e.revalidatePath)("/settings"),{ok:!0,provider:b}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function q(a,b){try{let c=h.lL.partial().parse(b);return await (0,h.H)(a,c),(0,e.revalidatePath)("/settings"),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function r(a){try{return await (0,h.uq)(a),(0,e.revalidatePath)("/settings"),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function s(a){try{if(!await (0,h.isOAuthProviderId)(a))return{ok:!1,error:`unknown provider: ${a}`};return await (0,f.getAccessToken)(a),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}(0,c(63781).D)([i,j,k,l,m,n,o,p,q,r,s]),(0,d.A)(i,"00836cc3059073482c3919ef173b7f92521f4f56c9",null),(0,d.A)(j,"40f6801f3ea78f166da7a2ed774ca49c0b18e2a13b",null),(0,d.A)(k,"40fdd245f212c95b203223ec223c02cdc16789521b",null),(0,d.A)(l,"40e207674f6889cbdfe631e1ccdc6ef5f2d4cfd67e",null),(0,d.A)(m,"60e3090027a3d5604202b6d8326408b1a1c7f2da7d",null),(0,d.A)(n,"408c94e084cce2b605b8c18c8fe0bd5c81ddd06919",null),(0,d.A)(o,"0051cc21725f2ccf97165db3ae10f2ec6b4c159d35",null),(0,d.A)(p,"40da24e8b6ef8a66a05907d28bd647117e40e20547",null),(0,d.A)(q,"60a24cdd6d25ce5a4efed5d0c1459ddf0786693d59",null),(0,d.A)(r,"40809a53941ea7f39534737148255eba3a5efa2c6a",null),(0,d.A)(s,"40812bbb3ae7151cca55ae636201a36059b80b43c1",null)},261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1708:a=>{"use strict";a.exports=require("node:process")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4984:a=>{"use strict";a.exports=require("readline")},5407:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{K:()=>h});var e=c(7206),f=a([e]);e=(f.then?(await f)():f)[0];let g=[{id:"gpt-5.5",label:"GPT-5.5",source:"static"},{id:"gpt-5.4",label:"GPT-5.4",source:"static"},{id:"gpt-5.4-mini",label:"GPT-5.4-Mini",source:"static"},{id:"gpt-5.3-codex",label:"GPT-5.3-Codex",source:"static"}],h={id:"codex",label:"Codex",supports:["analyze","chat","quick"],async probe(){try{let a=await (0,e.execa)("codex",["--version"],{timeout:3e3});return{ok:!0,available:!0,detail:a.stdout.trim()||"installed"}}catch(a){return{ok:!1,available:!1,detail:a instanceof Error?a.message:"not installed"}}},async listModels(){try{let{listCodexModels:a}=await c.e(1088).then(c.bind(c,61088)),b=(await a()).filter(a=>!a.hidden);if(0===b.length)return g;return b.sort((a,b)=>a.isDefault!==b.isDefault?a.isDefault?-1:1:a.id.localeCompare(b.id)),b.map(a=>({id:a.id,label:a.displayName||a.id,source:"live"}))}catch{return g}}};d()}catch(a){d(a)}})},7206:a=>{"use strict";a.exports=import("execa")},8086:a=>{"use strict";a.exports=require("module")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12619:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).A)("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]])},13530:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).A)("Save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]])},14471:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).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"}]])},16551:(a,b,c)=>{"use strict";c.d(b,{Xi:()=>k,av:()=>l,j7:()=>j,tU:()=>h});var d=c(64173);c(17240);var e=c(20483),f=c(61193),g=c(91344);function h({className:a,orientation:b="horizontal",...c}){return(0,d.jsx)(f.Root,{"data-slot":"tabs","data-orientation":b,orientation:b,className:(0,g.cn)("group/tabs flex gap-2 data-[orientation=horizontal]:flex-col",a),...c})}let i=(0,e.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 j({className:a,variant:b="default",...c}){return(0,d.jsx)(f.List,{"data-slot":"tabs-list","data-variant":b,className:(0,g.cn)(i({variant:b}),a),...c})}function k({className:a,...b}){return(0,d.jsx)(f.Trigger,{"data-slot":"tabs-trigger",className:(0,g.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",a),...b})}function l({className:a,...b}){return(0,d.jsx)(f.Content,{"data-slot":"tabs-content",className:(0,g.cn)("flex-1 outline-none",a),...b})}},17596:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(19963).A)("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]])},17640:(a,b,c)=>{"use strict";c.d(b,{M:()=>q,D:()=>r});var d=c(73024),e=c(76760),f=c.n(e),g=c(48161),h=c.n(g),i=c(14126);let j=i.Ik({"claude-code":i.Ik({enabled:i.zM().default(!0)}),codex:i.Ik({enabled:i.zM().default(!0)}),ollama:i.Ik({enabled:i.zM().default(!0),baseUrl:i.Yj().url().default("http://localhost:11434")})}),k=i.Ik({harness:i.k5(["claude-code","codex","ollama"]),model:i.Yj().min(1),allowedTools:i.YO(i.Yj()).default([])}),l=i.Ik({enabled:i.zM().default(!0),maxDimension:i.ai().int().min(256).max(8192).default(2e3),quality:i.ai().int().min(40).max(100).default(85),format:i.k5(["auto","jpeg","webp","original"]).default("auto")}),m=i.Ik({version:i.eu(1).default(1),language:i.Yj().min(1).default("english"),onboardedAt:i.Yj().optional(),userName:i.Yj().default(""),timezone:i.Yj().default(""),uiMode:i.k5(["simple","advanced"]).default("simple"),imageProcessing:l.default({enabled:!0,maxDimension:2e3,quality:85,format:"auto"}),harnesses:j.default({"claude-code":{enabled:!0},codex:{enabled:!0},ollama:{enabled:!0,baseUrl:"http://localhost:11434"}}),assignments:i.Ik({analyze:k,chat:k,rag:k,embed:k,quick:k}).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:i.Ik({enabled:i.YO(i.Yj()).default(["google","yandex","apple","osm"])}).default({enabled:["google","yandex","apple","osm"]}),ngrok:i.Ik({authtoken:i.Yj().default(""),apiKey:i.Yj().default(""),domain:i.Yj().default(""),port:i.ai().int().min(1).max(65535).default(3210)}).default({authtoken:"",apiKey:"",domain:"",port:3210})}),n=m.parse({}),o=f().join(h().homedir(),".reflex"),p=f().join(o,"settings.json");async function q(){try{let a=await d.promises.readFile(p,"utf8"),b=m.safeParse(JSON.parse(a));if(!b.success)return n;return b.data}catch(b){var a;if("object"==typeof(a=b)&&null!==a&&"code"in a&&"ENOENT"===a.code)return n;throw b}}async function r(a){let b=m.parse(a);await d.promises.mkdir(o,{recursive:!0}),await d.promises.writeFile(p,JSON.stringify(b,null,2)+"\n","utf8")}},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},24012:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{p:()=>i});var e=c(95004),f=c(5407),g=c(55976),h=a([e,f]);[e,f]=h.then?(await h)():h;let j={"claude-code":e.G,codex:f.K,ollama:g.j};function i(){return Object.values(j)}d()}catch(a){d(a)}})},24576:(a,b,c)=>{"use strict";c.d(b,{Zn:()=>r,_S:()=>s,mM:()=>n,qV:()=>q});var d=c(73024),e=c(76760),f=c.n(e),g=c(48161),h=c.n(g),i=c(77598),j=c.n(i);let k=f().join(h().homedir(),".reflex"),l=f().join(k,"registry.json"),m={version:1,entries:[]};function n(a){return j().createHash("sha1").update(f().resolve(a)).digest("hex").slice(0,16)}async function o(){try{let a=await d.promises.readFile(l,"utf8"),b=JSON.parse(a);if("object"==typeof b&&null!==b&&"entries"in b&&Array.isArray(b.entries))return b;return m}catch(a){if("object"==typeof a&&null!==a&&"code"in a&&"ENOENT"===a.code)return m;throw a}}async function p(a){await d.promises.mkdir(k,{recursive:!0}),await d.promises.writeFile(l,JSON.stringify(a,null,2)+"\n","utf8")}async function q(){return[...(await o()).entries].sort((a,b)=>Date.parse(b.addedAt)-Date.parse(a.addedAt))}async function r(a){return(await o()).entries.find(b=>b.id===a)??null}async function s(a){let b=f().resolve(a),c=n(b),d=await o(),e=d.entries.find(a=>a.id===c);if(e)return e;let g={id:c,path:b,addedAt:new Date().toISOString()};return await p({...d,entries:[...d.entries,g]}),g}},25436:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).A)("Square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]])},26290:(a,b,c)=>{"use strict";c.d(b,{cn:()=>f});var d=c(83243),e=c(86103);function f(...a){return(0,e.QP)((0,d.$)(a))}},26429:(a,b,c)=>{"use strict";c.d(b,{T:()=>e});var d=c(3265);let e=(0,d.createServerReference)("60e3090027a3d5604202b6d8326408b1a1c7f2da7d",d.callServer,void 0,d.findSourceMapURL,"beginOAuthAction")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},28082:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).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"}]])},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29130:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).A)("Image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]])},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},30515:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).A)("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])},30587:(a,b,c)=>{"use strict";c.d(b,{o:()=>e});var d=c(3265);let e=(0,d.createServerReference)("00836cc3059073482c3919ef173b7f92521f4f56c9",d.callServer,void 0,d.findSourceMapURL,"listOAuthStatusesAction")},30637:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{G:()=>h});var e=c(7206),f=a([e]);e=(f.then?(await f)():f)[0];let g=[{id:"claude-opus-4-7",label:"Claude Opus 4.7",family:"opus",source:"static"},{id:"claude-sonnet-4-6",label:"Claude Sonnet 4.6",family:"sonnet",source:"static"},{id:"claude-haiku-4-5",label:"Claude Haiku 4.5",family:"haiku",source:"static"}],h={id:"claude-code",label:"Claude Code",supports:["analyze","chat","quick"],async probe(){try{let a=await (0,e.execa)("claude",["--version"],{timeout:3e3});return{ok:!0,available:!0,detail:a.stdout.trim()||"installed"}}catch(a){return{ok:!1,available:!1,detail:a instanceof Error?a.message:"not installed"}}},async listModels(){let a=process.env.ANTHROPIC_API_KEY;if(!a)return g;try{let b=await fetch("https://api.anthropic.com/v1/models",{headers:{"x-api-key":a,"anthropic-version":"2023-06-01"},signal:AbortSignal.timeout(4e3)});if(!b.ok)return g;let c=await b.json(),d=[];for(let a of c.data??[])a.id&&d.push({id:a.id,label:a.display_name??a.id,family:function(a){let b=a.toLowerCase();return b.includes("opus")?"opus":b.includes("sonnet")?"sonnet":b.includes("haiku")?"haiku":void 0}(a.id),source:"live"});if(0===d.length)return g;return d.sort((a,b)=>a.id.localeCompare(b.id)),d}catch{return g}}};d()}catch(a){d(a)}})},31041:(a,b,c)=>{"use strict";c.d(b,{BT:()=>i,Wu:()=>j,ZB:()=>h,Zp:()=>f,aR:()=>g,wL:()=>k});var d=c(64173);c(17240);var e=c(91344);function f({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card",className:(0,e.cn)("flex flex-col gap-6 rounded-xl border bg-card py-6 text-card-foreground shadow-sm",a),...b})}function g({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-header",className:(0,e.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",a),...b})}function h({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-title",className:(0,e.cn)("leading-none font-semibold",a),...b})}function i({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-description",className:(0,e.cn)("text-sm text-muted-foreground",a),...b})}function j({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-content",className:(0,e.cn)("px-6",a),...b})}function k({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-footer",className:(0,e.cn)("flex items-center px-6 [.border-t]:pt-6",a),...b})}},31421:a=>{"use strict";a.exports=require("node:child_process")},32138:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{CJ:()=>t,UL:()=>s,j3:()=>q,pD:()=>o,p_:()=>p,wG:()=>r});var e=c(73745);c(66493);var f=c(65326),g=c(580),h=c(97453),i=c(53905),j=c(5492),k=c(36017),l=c(51021),m=c(63781),n=a([l]);async function o(){try{let a=await (0,g.listMcpServers)();return{ok:!0,servers:a}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function p(a){try{let b=h.McpConfigSchema.parse(a.config),c=await (0,g.addMcpServer)({id:a.id,label:a.label,...void 0!==a.description?{description:a.description}:{},config:b});return(0,f.revalidatePath)("/settings"),{ok:!0,server:c}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function q(a){try{let b={};void 0!==a.label&&(b.label=a.label),void 0!==a.description&&(b.description=a.description),void 0!==a.config&&(b.config=h.McpConfigSchema.parse(a.config));let c=await (0,g.updateMcpServer)(a.id,b);return(0,f.revalidatePath)("/settings"),{ok:!0,server:c}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function r(a){try{return await (0,g.S)(a),(0,f.revalidatePath)("/settings"),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function s(a){try{let b=a.trim();if(!b)return{ok:!1,error:"empty prompt"};let c=(await (0,i.qV)())[0];if(!c)return{ok:!1,error:"no project root registered — add a root first"};let d=await (0,k.M)(),e=d.assignments.chat,g=await (0,j.OY)({root:c.path,firstMessage:`MCP setup: ${b.slice(0,60)}`,harness:e.harness,model:e.model,language:d.language}),h=`[MCP setup wizard] ${b}
2
-
3
- Подбери нужный MCP-сервер (популярные npm-пакеты: \`@modelcontextprotocol/server-<name>\` или сторонние; HTTP-endpoint вендора если есть). Реши какие токены/credentials нужны и где их взять (Google → OAuth Playground, GitHub → PAT, Slack/Notion → internal token). Эмить \`<<reflex:mcp-add>>\` с полной конфигурацией; всё, что должен ввести пользователь — в \`secrets[]\` с понятной инструкцией. Если не уверен в выборе пакета — спроси через \`<<reflex:question>>\`.`,m=await (0,l.W)({rootId:c.id,topicId:g.meta.id,message:h});if("error"in m)return{ok:!1,error:m.error};return(0,f.revalidatePath)(`/roots/${c.id}`),{ok:!0,rootId:c.id,topicId:g.meta.id}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function t(a){try{let b=h.McpConfigSchema.parse(a),c=await (0,h.connectAndListTools)(b);return{ok:!0,...c.name?{serverName:c.name}:{},...c.version?{serverVersion:c.version}:{},tools:c.tools}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}l=(n.then?(await n)():n)[0],(0,m.D)([o,p,q,r,s,t]),(0,e.A)(o,"000a0be797e54ad8923f1a41ae97ec91836352dc88",null),(0,e.A)(p,"4009c865d324196dd047dce582cdbae58b934ef4d7",null),(0,e.A)(q,"40c64eac052555625bdda4626671690c02e2f934aa",null),(0,e.A)(r,"40e6bcebbb2be2804866be07cc05e56ba89bacde4d",null),(0,e.A)(s,"4084031b7cda8d9195b4cd955d316112559c7cbf34",null),(0,e.A)(t,"40150a07c207939536776efe9789d1a7e3b81cb028",null),d()}catch(a){d(a)}})},33873:a=>{"use strict";a.exports=require("path")},36256:(a,b,c)=>{"use strict";c.d(b,{S:()=>e});var d=c(3265);let e=(0,d.createServerReference)("40f6801f3ea78f166da7a2ed774ca49c0b18e2a13b",d.callServer,void 0,d.findSourceMapURL,"saveOAuthClientAction")},36306:a=>{"use strict";a.exports=import("@tailwindcss/node")},39098:(a,b,c)=>{"use strict";c.d(b,{O1:()=>p,Gh:()=>q,AZ:()=>o,rD:()=>r,summarizeYoutubeAction:()=>n});var d=c(73745);c(66493);var e=c(70333);let f=globalThis.__reflexGeminiModelsCache??new Map;async function g(a){let b,c=await (0,e.CG)("gemini");if(!c)throw Error("Gemini API key not configured");let d=c.slice(0,16),g=f.get(d);if(!a?.refresh&&g&&Date.now()-g.fetchedAt<36e5)return g.models;let i=[];do{let a=new URL("https://generativelanguage.googleapis.com/v1beta/models");a.searchParams.set("key",c),a.searchParams.set("pageSize","100"),b&&a.searchParams.set("pageToken",b);let d=await fetch(a.toString(),{headers:{Accept:"application/json"}});if(!d.ok){let a=await d.text();throw Error(`models.list HTTP ${d.status}: ${a.slice(0,500)}`)}let e=await d.json();for(let a of e.models??[]){if(!a.name)continue;let b=a.supportedGenerationMethods??[];if(!b.includes("generateContent"))continue;let c=a.name.toLowerCase();!c.includes("embedding")&&(c.includes("aqa")||i.push({name:a.name,id:a.name.replace(/^models\//,""),...a.displayName?{displayName:a.displayName}:{},...a.description?{description:a.description}:{},...void 0!==a.inputTokenLimit?{inputTokenLimit:a.inputTokenLimit}:{},...void 0!==a.outputTokenLimit?{outputTokenLimit:a.outputTokenLimit}:{},supportedGenerationMethods:b}))}b=e.nextPageToken}while(b);return i.sort(h),f.set(d,{fetchedAt:Date.now(),models:i}),i}function h(a,b){let c=i(a.id),d=i(b.id);if(c!==d)return c-d;let e=j(a.id),f=j(b.id);return e!==f?f-e:a.id.localeCompare(b.id)}function i(a){return a.endsWith("flash-latest")?0:a.includes("flash")&&!a.includes("lite")?1:a.includes("flash-lite")?2:a.endsWith("pro-latest")||a.includes("pro")?3:4}function j(a){let b=/gemini-(\d+)\.(\d+)/.exec(a);return b?100*Number(b[1])+Number(b[2]):0}async function k(a="general"){let b=await (0,e.$L)("gemini");if("video"===a&&b?.videoModel)return b.videoModel;if(b?.model)return b.model;try{let a=await g();if(a.length>0)return a[0].id}catch{}return"gemini-flash-latest"}async function l(a){let b=`https://generativelanguage.googleapis.com/v1beta/models/${encodeURIComponent(a.model)}:generateContent?key=${encodeURIComponent(a.apiKey)}`,c=await fetch(b,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contents:a.contents,...a.generationConfig?{generationConfig:a.generationConfig}:{}})}),d=await c.text();if(!c.ok)throw Error(`Gemini HTTP ${c.status}: ${d.slice(0,800)}`);let e=JSON.parse(d);if(e.promptFeedback?.blockReason)throw Error(`Gemini blocked: ${e.promptFeedback.blockReason}`);return{text:(e.candidates??[]).flatMap(a=>a.content?.parts??[]).map(a=>a.text??"").filter(Boolean).join("\n").trim(),raw:e}}globalThis.__reflexGeminiModelsCache=f;var m=c(36017);async function n(a){var b;let c=await (0,e.CG)("gemini");if(!c)return{ok:!1,needsKey:!0,error:"Gemini API key не сохранён — введи его, чтобы суммаризировать видео."};let d=(await (0,m.M)()).language??"russian",f=a.prompt?.trim()||(b=d,/russ/i.test(b)||/рус/i.test(b)?"Сделай структурированную выжимку этого YouTube-видео:\n\n1. Один абзац — о чём видео целиком и для кого.\n2. Главные тезисы списком с тайм-кодами вида `[mm:ss]`.\n3. Ключевые цитаты (если есть запоминающиеся фразы) — с тайм-кодами.\n4. Если показаны диаграммы / схемы / код — кратко опиши что в них.\n5. Вывод 1-3 предложения: главное, что стоит унести.\n\nПиши на русском, лаконично. Без воды.":"Produce a structured summary of this YouTube video:\n\n1. One paragraph — what the video is about and who it's for.\n2. Main points as a bulleted list with `[mm:ss]` timestamps.\n3. Notable quotes (if any) with timestamps.\n4. If diagrams / slides / code are shown — briefly describe them.\n5. 1-3 sentence takeaway.\n\nBe concise. No filler."),g=a.modelOverride?.trim()||await k("video");try{let{text:b}=await l({model:g,apiKey:c,contents:[{parts:[{file_data:{file_uri:a.url,mime_type:"video/*"}},{text:f}]}]});if(!b)return{ok:!1,error:"Gemini вернул пустой ответ — возможно видео недоступно или приватное."};return{ok:!0,text:b,model:g}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function o(a){try{if(!a.trim())return{ok:!1,error:"API key is empty"};return await (0,e.Pc)("gemini",a),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function p(a){return{ok:!0,present:await (0,e.hasApiKey)(a)}}async function q(a=!1){try{let b=await g({refresh:a});return{ok:!0,models:b.map(a=>({id:a.id,...a.displayName?{displayName:a.displayName}:{},...a.description?{description:a.description}:{},...void 0!==a.inputTokenLimit?{inputTokenLimit:a.inputTokenLimit}:{},...void 0!==a.outputTokenLimit?{outputTokenLimit:a.outputTokenLimit}:{}})),currentModel:await k("general"),currentVideoModel:await k("video")}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function r(a){try{return await (0,e.ND)("gemini",a),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}(0,c(63781).D)([n,o,p,q,r]),(0,d.A)(n,"40d2ac7d931df057cc763c3416ffd2aee8ff7a0ad9",null),(0,d.A)(o,"409d333d3e7b13a505853122dbd9a15ab36b9a90a4",null),(0,d.A)(p,"40005cf3d13239849c55972ebb98aacb986e67de11",null),(0,d.A)(q,"40d982925be69266f12ff9cbf16f52d32c99cf7e09",null),(0,d.A)(r,"402911dc86b1ac898af85fb3251818acdd51a6f4e4",null)},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},45477:(a,b,c)=>{"use strict";c.d(b,{T:()=>f});var d=c(64173);c(17240);var e=c(91344);function f({className:a,...b}){return(0,d.jsx)("textarea",{"data-slot":"textarea",className:(0,e.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",a),...b})}},46713:(a,b,c)=>{"use strict";c.d(b,{j:()=>f});var d=c(36017);async function e(){return(await (0,d.M)()).harnesses.ollama.baseUrl.replace(/\/$/,"")}let f={id:"ollama",label:"Ollama",supports:["rag","embed","chat","quick"],async probe(){let a=await e();try{let b=await fetch(`${a}/api/version`,{signal:AbortSignal.timeout(2500)});if(!b.ok)return{ok:!1,available:!1,detail:`HTTP ${b.status} at ${a}`};let c=await b.json();return{ok:!0,available:!0,detail:c.version?`v${c.version}`:"reachable"}}catch(b){return{ok:!1,available:!1,detail:b instanceof Error?`${b.message} (${a})`:`unreachable: ${a}`}}},async listModels(){let a=await e(),b=await fetch(`${a}/api/tags`,{signal:AbortSignal.timeout(4e3)});if(!b.ok)throw Error(`Ollama /api/tags returned HTTP ${b.status}`);let c=await b.json(),d=[];for(let a of c.models??[])d.push({id:a.name,label:a.name,family:a.details?.family,size:a.details?.parameter_size??function(a){if("number"==typeof a)return a<1e6?`${(a/1e3).toFixed(1)} KB`:a<1e9?`${(a/1e6).toFixed(0)} MB`:`${(a/1e9).toFixed(1)} GB`}(a.size),source:"live"});return d.sort((a,b)=>a.id.localeCompare(b.id)),d}}},48161:a=>{"use strict";a.exports=require("node:os")},50850:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{default:()=>o});var e=c(63003),f=c(20594),g=c.n(f),h=c(17596),i=c(84913),j=c(60524),k=c(17640),l=c(24012),m=c(71903),n=a([l]);async function o(){let a=await (0,k.M)(),b=(0,l.p)().map(a=>({id:a.id,label:a.label,supports:[...a.supports]}));return(0,e.jsxs)("main",{className:"mx-auto w-full max-w-4xl flex-1 px-6 py-10",children:[(0,e.jsxs)("header",{className:"mb-8",children:[(0,e.jsx)(i.$,{asChild:!0,variant:"ghost",size:"sm",className:"mb-2 -ml-3",children:(0,e.jsxs)(g(),{href:"/",children:[(0,e.jsx)(h.A,{className:"mr-1 h-4 w-4"})," Roots"]})}),(0,e.jsx)("h1",{className:"text-3xl font-semibold tracking-tight",children:"Settings"}),(0,e.jsx)("p",{className:"text-muted-foreground mt-1",children:"Pick which harness runs each kind of task and which model it uses. Agentic work (analyze / chat) goes to Claude Code or Codex; RAG and embedding work goes to Ollama by default."})]}),(0,e.jsx)(j.Separator,{className:"mb-6"}),(0,e.jsx)(m.SettingsForm,{initialSettings:a,harnesses:b})]})}l=(n.then?(await n)():n)[0],d()}catch(a){d(a)}})},51330:(a,b,c)=>{"use strict";c.d(b,{A:()=>e});var d=c(3265);let e=(0,d.createServerReference)("409d333d3e7b13a505853122dbd9a15ab36b9a90a4",d.callServer,void 0,d.findSourceMapURL,"saveGeminiKeyAction")},52869:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).A)("Play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]])},55976:(a,b,c)=>{"use strict";c.d(b,{j:()=>f});var d=c(17640);async function e(){return(await (0,d.M)()).harnesses.ollama.baseUrl.replace(/\/$/,"")}let f={id:"ollama",label:"Ollama",supports:["rag","embed","chat","quick"],async probe(){let a=await e();try{let b=await fetch(`${a}/api/version`,{signal:AbortSignal.timeout(2500)});if(!b.ok)return{ok:!1,available:!1,detail:`HTTP ${b.status} at ${a}`};let c=await b.json();return{ok:!0,available:!0,detail:c.version?`v${c.version}`:"reachable"}}catch(b){return{ok:!1,available:!1,detail:b instanceof Error?`${b.message} (${a})`:`unreachable: ${a}`}}},async listModels(){let a=await e(),b=await fetch(`${a}/api/tags`,{signal:AbortSignal.timeout(4e3)});if(!b.ok)throw Error(`Ollama /api/tags returned HTTP ${b.status}`);let c=await b.json(),d=[];for(let a of c.models??[])d.push({id:a.name,label:a.name,family:a.details?.family,size:a.details?.parameter_size??function(a){if("number"==typeof a)return a<1e6?`${(a/1e3).toFixed(1)} KB`:a<1e9?`${(a/1e6).toFixed(0)} MB`:`${(a/1e9).toFixed(1)} GB`}(a.size),source:"live"});return d.sort((a,b)=>a.id.localeCompare(b.id)),d}}},57075:a=>{"use strict";a.exports=require("node:stream")},59677:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{R:()=>i});var e=c(30637),f=c(86264),g=c(46713),h=a([e,f]);[e,f]=h.then?(await h)():h;let j={"claude-code":e.G,codex:f.K,ollama:g.j};function i(a){return j[a]}d()}catch(a){d(a)}})},60183:(a,b,c)=>{Promise.resolve().then(c.bind(c,85414)),Promise.resolve().then(c.bind(c,68394)),Promise.resolve().then(c.bind(c,51189)),Promise.resolve().then(c.bind(c,66180)),Promise.resolve().then(c.bind(c,75266)),Promise.resolve().then(c.bind(c,14360)),Promise.resolve().then(c.bind(c,6786)),Promise.resolve().then(c.bind(c,44896)),Promise.resolve().then(c.bind(c,14848)),Promise.resolve().then(c.bind(c,53710)),Promise.resolve().then(c.bind(c,30544)),Promise.resolve().then(c.bind(c,13829)),Promise.resolve().then(c.bind(c,90044)),Promise.resolve().then(c.bind(c,57673)),Promise.resolve().then(c.bind(c,97053)),Promise.resolve().then(c.bind(c,43151)),Promise.resolve().then(c.bind(c,12156)),Promise.resolve().then(c.bind(c,71615)),Promise.resolve().then(c.bind(c,4080)),Promise.resolve().then(c.bind(c,87177)),Promise.resolve().then(c.bind(c,87634)),Promise.resolve().then(c.bind(c,6912)),Promise.resolve().then(c.bind(c,13976)),Promise.resolve().then(c.bind(c,18282)),Promise.resolve().then(c.bind(c,20633)),Promise.resolve().then(c.bind(c,61193)),Promise.resolve().then(c.bind(c,66188)),Promise.resolve().then(c.bind(c,66643)),Promise.resolve().then(c.bind(c,81669)),Promise.resolve().then(c.bind(c,39991)),Promise.resolve().then(c.bind(c,54972)),Promise.resolve().then(c.t.bind(c,1056,23))},60909:(a,b,c)=>{"use strict";c.d(b,{J:()=>e});var d=c(3265);let e=(0,d.createServerReference)("408c94e084cce2b605b8c18c8fe0bd5c81ddd06919",d.callServer,void 0,d.findSourceMapURL,"getOAuthClientAction")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},63236:(a,b,c)=>{"use strict";c.d(b,{Kw:()=>l,ME:()=>m,mg:()=>k,vV:()=>g,xP:()=>h});var d=c(73745);c(66493);var e=c(28548),f=c(61495);async function g(a){try{let b=(0,e.Qs)(a),c=await (0,e.PM)(b),d=f.EE[b];return{ok:!0,name:b,body:c,defaultBody:d,missingSections:j(c,d),path:(0,e.Y7)(b),variables:f.Rg[b]}}catch(a){return{ok:!1,error:n(a)}}}async function h(a){try{let b=(0,e.Qs)(a),c=await (0,e.PM)(b),d=f.EE[b],g=j(c,d);if(0===g.length)return{ok:!0,body:c,appended:[]};let h=i(d),k=[],l=c.trimEnd();for(let a of g){let b=h.get(a);b&&(l+="\n\n"+b.trim(),k.push(a))}return l+="\n",await (0,e.AI)(b,l),{ok:!0,body:l,appended:k}}catch(a){return{ok:!1,error:n(a)}}}function i(a){let b=new Map,c=a.split(/\r?\n/),d="",e=[],f=()=>{let a=e.join("\n");(a.trim().length>0||d)&&b.set(d,a),e=[]};for(let a of c){let b=/^##\s+(.+?)\s*$/.exec(a);b&&(f(),d=b[1].trim()),e.push(a)}return f(),b}function j(a,b){let c=new Set(i(a).keys()),d=[];for(let a of i(b).keys())a&&(c.has(a)||d.push(a));return d}async function k(a,b){try{let c=(0,e.Qs)(a);return await (0,e.AI)(c,b),{ok:!0}}catch(a){return{ok:!1,error:n(a)}}}async function l(a){try{let b=(0,e.Qs)(a),c=await (0,e.iP)(b);return{ok:!0,body:c}}catch(a){return{ok:!1,error:n(a)}}}async function m(){return f._W.map(a=>({name:a,label:f.Bb[a],variables:f.Rg[a]}))}function n(a){return a instanceof Error?a.message:String(a)}(0,c(63781).D)([g,h,k,l,m]),(0,d.A)(g,"400d426f3c79372aaab4a69d6bcbcabb5917285c01",null),(0,d.A)(h,"40783a95564e3df6c2c79ecfdb5befa2bf3be6de26",null),(0,d.A)(k,"60f0f6d0a20a184b4a52f981712e41ee63ff612017",null),(0,d.A)(l,"40d453946b3b40cf8158efe6466bd2fb52080606ed",null),(0,d.A)(m,"00221ffb49d16f68eabe8c8fa5d4e7b635b9370f9f",null)},63351:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).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"}]])},65177:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).A)("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]])},65759:(a,b,c)=>{Promise.resolve().then(c.bind(c,71903)),Promise.resolve().then(c.bind(c,60524)),Promise.resolve().then(c.bind(c,50155)),Promise.resolve().then(c.bind(c,26922)),Promise.resolve().then(c.bind(c,79008)),Promise.resolve().then(c.bind(c,68146)),Promise.resolve().then(c.bind(c,60936)),Promise.resolve().then(c.bind(c,65138)),Promise.resolve().then(c.bind(c,68902)),Promise.resolve().then(c.bind(c,69644)),Promise.resolve().then(c.bind(c,49186)),Promise.resolve().then(c.bind(c,93099)),Promise.resolve().then(c.bind(c,83594)),Promise.resolve().then(c.bind(c,24375)),Promise.resolve().then(c.bind(c,67135)),Promise.resolve().then(c.bind(c,85105)),Promise.resolve().then(c.bind(c,41886)),Promise.resolve().then(c.bind(c,33309)),Promise.resolve().then(c.bind(c,37550)),Promise.resolve().then(c.bind(c,96623)),Promise.resolve().then(c.bind(c,77372)),Promise.resolve().then(c.bind(c,65478)),Promise.resolve().then(c.bind(c,97230)),Promise.resolve().then(c.bind(c,73552)),Promise.resolve().then(c.bind(c,391)),Promise.resolve().then(c.bind(c,4235)),Promise.resolve().then(c.bind(c,41138)),Promise.resolve().then(c.bind(c,60877)),Promise.resolve().then(c.bind(c,7671)),Promise.resolve().then(c.bind(c,5637)),Promise.resolve().then(c.bind(c,36786)),Promise.resolve().then(c.t.bind(c,20594,23))},66979:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).A)("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},71152:a=>{"use strict";a.exports=require("esbuild")},71155:(a,b,c)=>{"use strict";c.d(b,{bq:()=>l,eb:()=>n,gC:()=>m,l6:()=>j,yv:()=>k});var d=c(64173);c(17240);var e=c(58405),f=c(12619),g=c(78724),h=c(13976),i=c(91344);function j({...a}){return(0,d.jsx)(h.Root,{"data-slot":"select",...a})}function k({...a}){return(0,d.jsx)(h.Value,{"data-slot":"select-value",...a})}function l({className:a,size:b="default",children:c,...f}){return(0,d.jsxs)(h.Trigger,{"data-slot":"select-trigger","data-size":b,className:(0,i.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",a),...f,children:[c,(0,d.jsx)(h.Icon,{asChild:!0,children:(0,d.jsx)(e.A,{className:"size-4 opacity-50"})})]})}function m({className:a,children:b,position:c="item-aligned",align:e="center",...f}){return(0,d.jsx)(h.Portal,{children:(0,d.jsxs)(h.Content,{"data-slot":"select-content",className:(0,i.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"===c&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",a),position:c,align:e,...f,children:[(0,d.jsx)(o,{}),(0,d.jsx)(h.Viewport,{className:(0,i.cn)("p-1","popper"===c&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:b}),(0,d.jsx)(p,{})]})})}function n({className:a,children:b,...c}){return(0,d.jsxs)(h.Item,{"data-slot":"select-item",className:(0,i.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",a),...c,children:[(0,d.jsx)("span",{"data-slot":"select-item-indicator",className:"absolute right-2 flex size-3.5 items-center justify-center",children:(0,d.jsx)(h.ItemIndicator,{children:(0,d.jsx)(f.A,{className:"size-4"})})}),(0,d.jsx)(h.ItemText,{children:b})]})}function o({className:a,...b}){return(0,d.jsx)(h.ScrollUpButton,{"data-slot":"select-scroll-up-button",className:(0,i.cn)("flex cursor-default items-center justify-center py-1",a),...b,children:(0,d.jsx)(g.A,{className:"size-4"})})}function p({className:a,...b}){return(0,d.jsx)(h.ScrollDownButton,{"data-slot":"select-scroll-down-button",className:(0,i.cn)("flex cursor-default items-center justify-center py-1",a),...b,children:(0,d.jsx)(e.A,{className:"size-4"})})}},71903:(a,b,c)=>{"use strict";c.d(b,{SettingsForm:()=>d});let d=(0,c(54491).registerClientReference)(function(){throw Error("Attempted to call SettingsForm() from the server but SettingsForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/reflex-agent/reflex-agent/app/settings/_components/settings-form.tsx","SettingsForm")},72293:(a,b,c)=>{"use strict";c.d(b,{O:()=>j});var d=c(64173),e=c(17240),f=c(12619),g=c(28082),h=c(44052),i=c(20583);function j({steps:a}){return a&&0!==a.length?(0,d.jsx)("ol",{className:"space-y-2 text-xs",children:a.map((a,b)=>(0,d.jsxs)("li",{className:"flex gap-2",children:[(0,d.jsxs)("span",{className:"font-mono text-muted-foreground shrink-0 w-5 text-right",children:[b+1,"."]}),(0,d.jsxs)("div",{className:"space-y-1 flex-1 min-w-0",children:[(0,d.jsx)("div",{children:a.title}),a.choice&&(0,d.jsxs)("div",{className:"text-[11px]",children:[(0,d.jsx)("span",{className:"text-muted-foreground",children:"Выбери: "}),(0,d.jsx)("span",{className:"font-medium bg-muted/60 rounded px-1.5 py-0.5",children:a.choice})]}),a.body&&(0,d.jsx)("p",{className:"text-[11px] text-muted-foreground",children:a.body}),a.copy&&(0,d.jsxs)("div",{className:"flex items-center gap-2 mt-1",children:[a.field&&(0,d.jsxs)("span",{className:"text-[11px] text-muted-foreground",children:[a.field,":"]}),(0,d.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:a.copy}),(0,d.jsx)(k,{value:a.copy})]})]})]},b))}):null}function k({value:a}){let[b,c]=(0,e.useState)(!1);return(0,d.jsx)(i.$,{type:"button",size:"icon",variant:"ghost",className:"h-6 w-6 shrink-0",onClick:async()=>{try{await navigator.clipboard.writeText(a),c(!0),h.oR.success("Скопировано"),setTimeout(()=>c(!1),1200)}catch{h.oR.error("Не удалось скопировать")}},title:"Скопировать",children:b?(0,d.jsx)(f.A,{className:"h-3 w-3 text-emerald-600"}):(0,d.jsx)(g.A,{className:"h-3 w-3"})})}},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},75919:a=>{"use strict";a.exports=require("node:worker_threads")},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},77705:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>E.a,__next_app__:()=>K,handler:()=>M,pages:()=>J,routeModule:()=>L,tree:()=>I});var d=c(61597),e=c(99210),f=c(1082),g=c(15003),h=c(36265),i=c(11817),j=c(45136),k=c(41809),l=c(55745),m=c(88963),n=c(69153),o=c(48343),p=c(15808),q=c(21238),r=c(2555),s=c(261),t=c(34370),u=c(89583),v=c(26713),w=c(53875),x=c(7952),y=c(54532),z=c(80269),A=c(17851),B=c(57865),C=c(86439),D=c(47319),E=c.n(D),F=c(1859),G=c(20498),H={};for(let a in F)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(H[a]=()=>F[a]);c.d(b,H);let I={children:["",{children:["settings",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,50850)),"/home/runner/work/reflex-agent/reflex-agent/app/settings/page.tsx"]}]},{}]},{layout:[()=>Promise.resolve().then(c.bind(c,79459)),"/home/runner/work/reflex-agent/reflex-agent/app/layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,47319,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,82295,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,91570,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,72845,23)),"next/dist/client/components/builtin/unauthorized.js"]}]}.children,J=["/home/runner/work/reflex-agent/reflex-agent/app/settings/page.tsx"],K={require:c,loadChunk:()=>Promise.resolve()},L=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/settings/page",pathname:"/settings",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:I},distDir:".next",relativeProjectDir:""});async function M(a,b,d){var D;let H="/settings/page";"/index"===H&&(H="/");let N=(0,h.getRequestMeta)(a,"postponed"),O=(0,h.getRequestMeta)(a,"minimalMode"),P=await L.prepare(a,b,{srcPage:H,multiZoneDraftMode:!1});if(!P)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:Q,query:R,params:S,parsedUrl:T,pageIsDynamic:U,buildManifest:V,nextFontManifest:W,reactLoadableManifest:X,serverActionsManifest:Y,clientReferenceManifest:Z,subresourceIntegrityManifest:$,prerenderManifest:_,isDraftMode:aa,resolvedPathname:ab,revalidateOnlyGenerated:ac,routerServerContext:ad,nextConfig:ae,interceptionRoutePatterns:af}=P,ag=T.pathname||"/",ah=(0,s.normalizeAppPath)(H),{isOnDemandRevalidate:ai}=P,aj=L.match(ag,_),ak=!!_.routes[ab],al=!!(aj||ak||_.routes[ah]),am=a.headers["user-agent"]||"",an=(0,v.getBotType)(am),ao=(0,q.isHtmlBotRequest)(a),ap=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[u.NEXT_ROUTER_PREFETCH_HEADER],aq=(0,h.getRequestMeta)(a,"isRSCRequest")??(0,n.f)(a.headers[u.RSC_HEADER]),ar=(0,t.getIsPossibleServerAction)(a),as=(0,m.checkIsAppPPREnabled)(ae.experimental.ppr)&&(null==(D=_.routes[ah]??_.dynamicRoutes[ah])?void 0:D.renderingMode)==="PARTIALLY_STATIC",at=!1,au=!1,av=as?N:void 0,aw=as&&aq&&!ap,ax=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ay=!am||(0,q.shouldServeStreamingMetadata)(am,ae.htmlLimitedBots);ao&&as&&(al=!1,ay=!1);let az=!0===L.isDev||!al||"string"==typeof N||aw,aA=ao&&as,aB=null;aa||!al||az||ar||av||aw||(aB=ab);let aC=aB;!aC&&L.isDev&&(aC=ab),L.isDev||aa||!al||!aq||aw||(0,k.d)(a.headers);let aD={...F,tree:I,pages:J,GlobalError:E(),handler:M,routeModule:L,__next_app__:K};Y&&Z&&(0,p.setReferenceManifestsSingleton)({page:H,clientReferenceManifest:Z,serverActionsManifest:Y,serverModuleMap:(0,r.createServerModuleMap)({serverActionsManifest:Y})});let aE=a.method||"GET",aF=(0,g.getTracer)(),aG=aF.getActiveScopeSpan();try{let f=L.getVaryHeader(ab,af);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return L.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aF.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aE} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aE} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:R,params:S,page:ah,sharedContext:{buildId:Q},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aD,Component:(0,j.T)(aD),params:S,routeModule:L,page:H,postponed:f,shouldWaitOnAllReady:aA,serveStreamingMetadata:ay,supportsDynamicResponse:"string"==typeof f||az,buildManifest:V,nextFontManifest:W,reactLoadableManifest:X,subresourceIntegrityManifest:$,serverActionsManifest:Y,clientReferenceManifest:Z,setIsrStatus:null==ad?void 0:ad.setIsrStatus,dir:c(33873).join(process.cwd(),L.relativeProjectDir),isDraftMode:aa,isRevalidate:al&&!f&&!aw,botType:an,isOnDemandRevalidate:ai,isPossibleServerAction:ar,assetPrefix:ae.assetPrefix,nextConfigOutput:ae.output,crossOrigin:ae.crossOrigin,trailingSlash:ae.trailingSlash,previewProps:_.preview,deploymentId:ae.deploymentId,enableTainting:ae.experimental.taint,htmlLimitedBots:ae.htmlLimitedBots,devtoolSegmentExplorer:ae.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ae.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ae.experimental.cacheLife,basePath:ae.basePath,serverActions:ae.experimental.serverActions,...at?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:at}:{},experimental:{isRoutePPREnabled:as,expireTime:ae.expireTime,staleTimes:ae.experimental.staleTimes,cacheComponents:!!ae.experimental.cacheComponents,clientSegmentCache:!!ae.experimental.clientSegmentCache,clientParamParsing:!!ae.experimental.clientParamParsing,dynamicOnHover:!!ae.experimental.dynamicOnHover,inlineCss:!!ae.experimental.inlineCss,authInterrupts:!!ae.experimental.authInterrupts,clientTraceMetadata:ae.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>L.onRequestError(a,b,d,ad),err:(0,h.getRequestMeta)(a,"invokeError"),dev:L.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[z.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,al&&(null==n?void 0:n.revalidate)===0&&!L.isDev&&!as){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ab}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
4
- see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:w.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},n=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===L.isDev,l=c||b.writableEnded;if(ai&&ac&&!f&&!O)return(null==ad?void 0:ad.render404)?await ad.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(aj&&(j=(0,x.parseFallbackField)(aj.fallback)),j===x.FallbackMode.PRERENDER&&(0,v.isBot)(am)&&(!as||ao)&&(j=x.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ai=!0),ai&&(j!==x.FallbackMode.NOT_FOUND||f)&&(j=x.FallbackMode.BLOCKING_STATIC_RENDER),!O&&j!==x.FallbackMode.BLOCKING_STATIC_RENDER&&aC&&!l&&!aa&&U&&(k||!ak)){let b;if((k||aj)&&j===x.FallbackMode.NOT_FOUND)throw new C.NoFallbackError;if(as&&!aq){let c="string"==typeof(null==aj?void 0:aj.fallback)?aj.fallback:k?ah:null;if(b=await L.handleResponse({cacheKey:c,req:a,nextConfig:ae,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:_,isRoutePPREnabled:as,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||au?(0,o.u)(ah):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let n=ai||g||!av?void 0:av;if(at&&void 0!==n)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:w.CachedRouteKind.PAGES,html:y.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=U&&as&&((0,h.getRequestMeta)(a,"renderFallbackShell")||au)?(0,o.u)(ag):null;return m({span:i,postponed:n,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,o=await L.handleResponse({cacheKey:aB,responseGenerator:a=>n({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ai,isRoutePPREnabled:as,req:a,nextConfig:ae,prerenderManifest:_,waitUntil:d.waitUntil});if(aa&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),L.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!o){if(aB)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=o.value)?void 0:f.kind)!==w.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=o.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof o.value.postponed;al&&!aw&&(!p||ap)&&(O||b.setHeader("x-nextjs-cache",ai?"REVALIDATED":o.isMiss?"MISS":o.isStale?"STALE":"HIT"),b.setHeader(u.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=o;if(av)l={revalidate:0,expire:void 0};else if(O&&aq&&!ap&&as)l={revalidate:0,expire:void 0};else if(!L.isDev)if(aa)l={revalidate:0,expire:void 0};else if(al){if(o.cacheControl)if("number"==typeof o.cacheControl.revalidate){if(o.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${o.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:o.cacheControl.revalidate,expire:(null==(j=o.cacheControl)?void 0:j.expire)??ae.expireTime}}else l={revalidate:z.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(o.cacheControl=l,"string"==typeof ax&&(null==q?void 0:q.kind)===w.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(u.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[z.NEXT_CACHE_TAGS_HEADER];O&&al&&c&&"string"==typeof c&&b.setHeader(z.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(ax);return void 0!==d?(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.fromStatic(d,u.RSC_CONTENT_TYPE_HEADER),cacheControl:o.cacheControl}):(b.statusCode=204,(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.EMPTY,cacheControl:o.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...o,value:{...o.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&av)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(O&&al||delete a[z.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[z.NEXT_CACHE_TAGS_HEADER];if(O&&al&&s&&"string"==typeof s&&b.setHeader(z.NEXT_CACHE_TAGS_HEADER,s),!q.status||aq&&as||(b.statusCode=q.status),!O&&q.status&&G.RedirectStatusCode[q.status]&&aq&&(b.statusCode=200),p&&b.setHeader(u.NEXT_DID_POSTPONE_HEADER,"1"),aq&&!aa){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:q.html,cacheControl:aw?{revalidate:0,expire:void 0}:o.cacheControl})}return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.fromStatic(q.rscData,u.RSC_CONTENT_TYPE_HEADER),cacheControl:o.cacheControl})}let t=q.html;if(!p||O||aq)return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:o.cacheControl});if(at)return t.push(new ReadableStream({start(a){a.enqueue(A.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:{revalidate:0,expire:void 0}});let v=new TransformStream;return t.push(v.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==w.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(v.writable)}).catch(a=>{v.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:{revalidate:0,expire:void 0}})};if(!aG)return await aF.withPropagatedContext(a.headers,()=>aF.trace(i.BaseServerSpan.handleRequest,{spanName:`${aE} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aE,"http.target":a.url}},p));await p(aG)}catch(b){throw b instanceof C.NoFallbackError||await L.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:al,isOnDemandRevalidate:ai})},ad),b}}},78474:a=>{"use strict";a.exports=require("node:events")},78724:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).A)("ChevronUp",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]])},79428:a=>{"use strict";a.exports=require("buffer")},79615:(a,b,c)=>{"use strict";c.d(b,{_E:()=>h,xv:()=>g,zB:()=>f});var d=c(73745);c(66493);var e=c(70333);async function f(a,b){try{let c=b.trim();if(!c)return{ok:!1,error:"API key is empty"};return await (0,e.Pc)(a,c),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function g(a){return await (0,e.Lh)(a),{ok:!0}}async function h(){let{hasApiKey:a}=await Promise.resolve().then(c.bind(c,70333)),{resolveBraveKey:b}=await c.e(8262).then(c.bind(c,48262));return await a("brave")?{ok:!0,hasDedicated:!0,viaMcp:!1}:{ok:!0,hasDedicated:!1,viaMcp:null!==await b()}}(0,c(63781).D)([f,g,h]),(0,d.A)(f,"60ae82b56eb541f747e94888660b96304508eaed62",null),(0,d.A)(g,"40fca0817dcec4a8de33bc7bdc405bcb5da5826082",null),(0,d.A)(h,"0069ccf3064400ffff18e3bf53711fd72333b49d4a",null)},79646:a=>{"use strict";a.exports=require("child_process")},81521:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{cj:()=>l,pG:()=>n,pi:()=>o,r6:()=>m});var e=c(73745);c(66493);var f=c(65326),g=c(36017),h=c(78555),i=c(59677),j=c(63781),k=a([i]);async function l(){try{return{ok:!0,settings:await (0,g.M)()}}catch(a){return{ok:!1,error:p(a)}}}async function m(a){try{let b=h.ht.safeParse(a);if(!b.success)return{ok:!1,error:b.error.issues.map(a=>a.message).join("; ")};return await (0,g.D)(b.data),(0,f.revalidatePath)("/settings"),{ok:!0}}catch(a){return{ok:!1,error:p(a)}}}async function n(a){try{let b=await (0,i.R)(a).listModels();return{ok:!0,models:b}}catch(a){return{ok:!1,error:p(a)}}}async function o(a){try{return await (0,i.R)(a).probe()}catch(a){return{ok:!1,available:!1,detail:p(a)}}}function p(a){return a instanceof Error?a.message:String(a)}i=(k.then?(await k)():k)[0],(0,j.D)([l,m,n,o]),(0,e.A)(l,"00e8c809952e4674f8aa1008e6516751bd1035bb73",null),(0,e.A)(m,"40accb39a92c9344fd42d43b8b83cd882396c8cdcf",null),(0,e.A)(n,"400647f16fc8d03d61378fc4fb7712ed26335e4ba1",null),(0,e.A)(o,"406d3fa6bfdc6ac8c7e8a689f86c1f674d29497eb7",null),d()}catch(a){d(a)}})},84913:(a,b,c)=>{"use strict";c.d(b,{$:()=>i});var d=c(63003);c(34750);var e=c(86209),f=c(65715),g=c(26290);let h=(0,e.F)("inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",xs:"h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-xs":"size-6 rounded-md [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}});function i({className:a,variant:b="default",size:c="default",asChild:e=!1,...i}){let j=e?f.bL:"button";return(0,d.jsx)(j,{"data-slot":"button","data-variant":b,"data-size":c,className:(0,g.cn)(h({variant:b,size:c,className:a})),...i})}},85414:(a,b,c)=>{"use strict";c.d(b,{SettingsForm:()=>eH});var d,e,f=c(64173),g=c(17240),h=c(63351),i=c(62261),j=c(13530),k=c(9338),l=c(42557);let m=(0,l.A)("CircleAlert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);var n=c(44052),o=c(20583),p=c(31041),q=c(47071),r=c(80281),s=c(20633),t=c(91344);function u({className:a,size:b="default",...c}){return(0,f.jsx)(s.Root,{"data-slot":"switch","data-size":b,className:(0,t.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",a),...c,children:(0,f.jsx)(s.Thumb,{"data-slot":"switch-thumb",className:(0,t.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=c(18282);function w({className:a,defaultValue:b,value:c,min:d=0,max:e=100,...h}){let i=g.useMemo(()=>Array.isArray(c)?c:Array.isArray(b)?b:[d,e],[c,b,d,e]);return(0,f.jsxs)(v.Root,{"data-slot":"slider",defaultValue:b,value:c,min:d,max:e,className:(0,t.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",a),...h,children:[(0,f.jsx)(v.Track,{"data-slot":"slider-track",className:(0,t.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,f.jsx)(v.Range,{"data-slot":"slider-range",className:(0,t.cn)("absolute bg-primary data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full")})}),Array.from({length:i.length},(a,b)=>(0,f.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"},b))]})}var x=c(42382),y=c(71155);function z(a,b,c){function d(c,d){if(c._zod||Object.defineProperty(c,"_zod",{value:{def:d,constr:g,traits:new Set},enumerable:!1}),c._zod.traits.has(a))return;c._zod.traits.add(a),b(c,d);let e=g.prototype,f=Object.keys(e);for(let a=0;a<f.length;a++){let b=f[a];b in c||(c[b]=e[b].bind(c))}}let e=c?.Parent??Object;class f extends e{}function g(a){var b;let e=c?.Parent?new f:this;for(let c of(d(e,a),(b=e._zod).deferred??(b.deferred=[]),e._zod.deferred))c();return e}return Object.defineProperty(f,"name",{value:a}),Object.defineProperty(g,"init",{value:d}),Object.defineProperty(g,Symbol.hasInstance,{value:b=>!!c?.Parent&&b instanceof c.Parent||b?._zod?.traits?.has(a)}),Object.defineProperty(g,"name",{value:a}),g}Symbol("zod_brand");class A extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class B extends Error{constructor(a){super(`Encountered unidirectional transform during encode: ${a}`),this.name="ZodEncodeError"}}(d=globalThis).__zod_globalConfig??(d.__zod_globalConfig={});let C=globalThis.__zod_globalConfig;function D(a){return a&&Object.assign(C,a),C}let E=/^[cC][0-9a-z]{6,}$/,F=/^[0-9a-z]+$/,G=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,H=/^[0-9a-vA-V]{20}$/,I=/^[A-Za-z0-9]{27}$/,J=/^[a-zA-Z0-9_-]{21}$/,K=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,L=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,M=a=>a?RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${a}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,N=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,O=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,P=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,Q=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,R=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,S=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,T=/^[A-Za-z0-9_-]*$/,U=/^https?$/,V=/^\+[1-9]\d{6,14}$/,W="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",X=RegExp(`^${W}$`);function Y(a){let b="(?:[01]\\d|2[0-3]):[0-5]\\d";return"number"==typeof a.precision?-1===a.precision?`${b}`:0===a.precision?`${b}:[0-5]\\d`:`${b}:[0-5]\\d\\.\\d{${a.precision}}`:`${b}(?::[0-5]\\d(?:\\.\\d+)?)?`}let Z=/^-?\d+$/,$=/^-?\d+(?:\.\d+)?$/,_=/^(?:true|false)$/i,aa=/^[^A-Z]*$/,ab=/^[^a-z]*$/;function ac(a){let b=Object.values(a).filter(a=>"number"==typeof a);return Object.entries(a).filter(([a,c])=>-1===b.indexOf(+a)).map(([a,b])=>b)}function ad(a,b){return"bigint"==typeof b?b.toString():b}function ae(a){return{get value(){{let b=a();return Object.defineProperty(this,"value",{value:b}),b}}}}function af(a){let b=+!!a.startsWith("^"),c=a.endsWith("$")?a.length-1:a.length;return a.slice(b,c)}let ag=Symbol("evaluating");function ah(a,b,c){let d;Object.defineProperty(a,b,{get(){if(d!==ag)return void 0===d&&(d=ag,d=c()),d},set(c){Object.defineProperty(a,b,{value:c})},configurable:!0})}function ai(a,b,c){Object.defineProperty(a,b,{value:c,writable:!0,enumerable:!0,configurable:!0})}function aj(...a){let b={};for(let c of a)Object.assign(b,Object.getOwnPropertyDescriptors(c));return Object.defineProperties({},b)}function ak(a){return JSON.stringify(a)}let al="captureStackTrace"in Error?Error.captureStackTrace:(...a)=>{};function am(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}let an=ae(()=>{if(C.jitless||"undefined"!=typeof navigator&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return Function(""),!0}catch(a){return!1}});function ao(a){if(!1===am(a))return!1;let b=a.constructor;if(void 0===b||"function"!=typeof b)return!0;let c=b.prototype;return!1!==am(c)&&!1!==Object.prototype.hasOwnProperty.call(c,"isPrototypeOf")}function ap(a){return ao(a)?{...a}:Array.isArray(a)?[...a]:a instanceof Map?new Map(a):a instanceof Set?new Set(a):a}let aq=new Set(["string","number","symbol"]);function ar(a){return a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function as(a,b,c){let d=new a._zod.constr(b??a._zod.def);return(!b||c?.parent)&&(d._zod.parent=a),d}function at(a){if(!a)return{};if("string"==typeof a)return{error:()=>a};if(a?.message!==void 0){if(a?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");a.error=a.message}return(delete a.message,"string"==typeof a.error)?{...a,error:()=>a.error}:a}let au={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-0x80000000,0x7fffffff],uint32:[0,0xffffffff],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function av(a,b=0){if(!0===a.aborted)return!0;for(let c=b;c<a.issues.length;c++)if(a.issues[c]?.continue!==!0)return!0;return!1}function aw(a,b){return b.map(b=>(b.path??(b.path=[]),b.path.unshift(a),b))}function ax(a){return"string"==typeof a?a:a?.message}function ay(a,b,c){let d=a.message?a.message:ax(a.inst?._zod.def?.error?.(a))??ax(b?.error?.(a))??ax(c.customError?.(a))??ax(c.localeError?.(a))??"Invalid input",{inst:e,continue:f,input:g,...h}=a;return h.path??(h.path=[]),h.message=d,b?.reportInput&&(h.input=g),h}function az(a){return Array.isArray(a)?"array":"string"==typeof a?"string":"unknown"}function aA(...a){let[b,c,d]=a;return"string"==typeof b?{message:b,code:"custom",input:c,inst:d}:{...b}}let aB=z("$ZodCheck",(a,b)=>{var c;a._zod??(a._zod={}),a._zod.def=b,(c=a._zod).onattach??(c.onattach=[])}),aC={number:"number",bigint:"bigint",object:"date"},aD=z("$ZodCheckLessThan",(a,b)=>{aB.init(a,b);let c=aC[typeof b.value];a._zod.onattach.push(a=>{let c=a._zod.bag,d=(b.inclusive?c.maximum:c.exclusiveMaximum)??1/0;b.value<d&&(b.inclusive?c.maximum=b.value:c.exclusiveMaximum=b.value)}),a._zod.check=d=>{(b.inclusive?d.value<=b.value:d.value<b.value)||d.issues.push({origin:c,code:"too_big",maximum:"object"==typeof b.value?b.value.getTime():b.value,input:d.value,inclusive:b.inclusive,inst:a,continue:!b.abort})}}),aE=z("$ZodCheckGreaterThan",(a,b)=>{aB.init(a,b);let c=aC[typeof b.value];a._zod.onattach.push(a=>{let c=a._zod.bag,d=(b.inclusive?c.minimum:c.exclusiveMinimum)??-1/0;b.value>d&&(b.inclusive?c.minimum=b.value:c.exclusiveMinimum=b.value)}),a._zod.check=d=>{(b.inclusive?d.value>=b.value:d.value>b.value)||d.issues.push({origin:c,code:"too_small",minimum:"object"==typeof b.value?b.value.getTime():b.value,input:d.value,inclusive:b.inclusive,inst:a,continue:!b.abort})}}),aF=z("$ZodCheckMultipleOf",(a,b)=>{aB.init(a,b),a._zod.onattach.push(a=>{var c;(c=a._zod.bag).multipleOf??(c.multipleOf=b.value)}),a._zod.check=c=>{if(typeof c.value!=typeof b.value)throw Error("Cannot mix number and bigint in multiple_of check.");("bigint"==typeof c.value?c.value%b.value===BigInt(0):0===function(a,b){let c=a/b,d=Math.round(c),e=Number.EPSILON*Math.max(Math.abs(c),1);return Math.abs(c-d)<e?0:c-d}(c.value,b.value))||c.issues.push({origin:typeof c.value,code:"not_multiple_of",divisor:b.value,input:c.value,inst:a,continue:!b.abort})}}),aG=z("$ZodCheckNumberFormat",(a,b)=>{aB.init(a,b),b.format=b.format||"float64";let c=b.format?.includes("int"),d=c?"int":"number",[e,f]=au[b.format];a._zod.onattach.push(a=>{let d=a._zod.bag;d.format=b.format,d.minimum=e,d.maximum=f,c&&(d.pattern=Z)}),a._zod.check=g=>{let h=g.value;if(c){if(!Number.isInteger(h))return void g.issues.push({expected:d,format:b.format,code:"invalid_type",continue:!1,input:h,inst:a});if(!Number.isSafeInteger(h))return void(h>0?g.issues.push({input:h,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:a,origin:d,inclusive:!0,continue:!b.abort}):g.issues.push({input:h,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:a,origin:d,inclusive:!0,continue:!b.abort}))}h<e&&g.issues.push({origin:"number",input:h,code:"too_small",minimum:e,inclusive:!0,inst:a,continue:!b.abort}),h>f&&g.issues.push({origin:"number",input:h,code:"too_big",maximum:f,inclusive:!0,inst:a,continue:!b.abort})}}),aH=z("$ZodCheckMaxLength",(a,b)=>{var c;aB.init(a,b),(c=a._zod.def).when??(c.when=a=>{let b=a.value;return null!=b&&void 0!==b.length}),a._zod.onattach.push(a=>{let c=a._zod.bag.maximum??1/0;b.maximum<c&&(a._zod.bag.maximum=b.maximum)}),a._zod.check=c=>{let d=c.value;if(d.length<=b.maximum)return;let e=az(d);c.issues.push({origin:e,code:"too_big",maximum:b.maximum,inclusive:!0,input:d,inst:a,continue:!b.abort})}}),aI=z("$ZodCheckMinLength",(a,b)=>{var c;aB.init(a,b),(c=a._zod.def).when??(c.when=a=>{let b=a.value;return null!=b&&void 0!==b.length}),a._zod.onattach.push(a=>{let c=a._zod.bag.minimum??-1/0;b.minimum>c&&(a._zod.bag.minimum=b.minimum)}),a._zod.check=c=>{let d=c.value;if(d.length>=b.minimum)return;let e=az(d);c.issues.push({origin:e,code:"too_small",minimum:b.minimum,inclusive:!0,input:d,inst:a,continue:!b.abort})}}),aJ=z("$ZodCheckLengthEquals",(a,b)=>{var c;aB.init(a,b),(c=a._zod.def).when??(c.when=a=>{let b=a.value;return null!=b&&void 0!==b.length}),a._zod.onattach.push(a=>{let c=a._zod.bag;c.minimum=b.length,c.maximum=b.length,c.length=b.length}),a._zod.check=c=>{let d=c.value,e=d.length;if(e===b.length)return;let f=az(d),g=e>b.length;c.issues.push({origin:f,...g?{code:"too_big",maximum:b.length}:{code:"too_small",minimum:b.length},inclusive:!0,exact:!0,input:c.value,inst:a,continue:!b.abort})}}),aK=z("$ZodCheckStringFormat",(a,b)=>{var c,d;aB.init(a,b),a._zod.onattach.push(a=>{let c=a._zod.bag;c.format=b.format,b.pattern&&(c.patterns??(c.patterns=new Set),c.patterns.add(b.pattern))}),b.pattern?(c=a._zod).check??(c.check=c=>{b.pattern.lastIndex=0,b.pattern.test(c.value)||c.issues.push({origin:"string",code:"invalid_format",format:b.format,input:c.value,...b.pattern?{pattern:b.pattern.toString()}:{},inst:a,continue:!b.abort})}):(d=a._zod).check??(d.check=()=>{})}),aL=z("$ZodCheckRegex",(a,b)=>{aK.init(a,b),a._zod.check=c=>{b.pattern.lastIndex=0,b.pattern.test(c.value)||c.issues.push({origin:"string",code:"invalid_format",format:"regex",input:c.value,pattern:b.pattern.toString(),inst:a,continue:!b.abort})}}),aM=z("$ZodCheckLowerCase",(a,b)=>{b.pattern??(b.pattern=aa),aK.init(a,b)}),aN=z("$ZodCheckUpperCase",(a,b)=>{b.pattern??(b.pattern=ab),aK.init(a,b)}),aO=z("$ZodCheckIncludes",(a,b)=>{aB.init(a,b);let c=ar(b.includes),d=new RegExp("number"==typeof b.position?`^.{${b.position}}${c}`:c);b.pattern=d,a._zod.onattach.push(a=>{let b=a._zod.bag;b.patterns??(b.patterns=new Set),b.patterns.add(d)}),a._zod.check=c=>{c.value.includes(b.includes,b.position)||c.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:b.includes,input:c.value,inst:a,continue:!b.abort})}}),aP=z("$ZodCheckStartsWith",(a,b)=>{aB.init(a,b);let c=RegExp(`^${ar(b.prefix)}.*`);b.pattern??(b.pattern=c),a._zod.onattach.push(a=>{let b=a._zod.bag;b.patterns??(b.patterns=new Set),b.patterns.add(c)}),a._zod.check=c=>{c.value.startsWith(b.prefix)||c.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:b.prefix,input:c.value,inst:a,continue:!b.abort})}}),aQ=z("$ZodCheckEndsWith",(a,b)=>{aB.init(a,b);let c=RegExp(`.*${ar(b.suffix)}$`);b.pattern??(b.pattern=c),a._zod.onattach.push(a=>{let b=a._zod.bag;b.patterns??(b.patterns=new Set),b.patterns.add(c)}),a._zod.check=c=>{c.value.endsWith(b.suffix)||c.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:b.suffix,input:c.value,inst:a,continue:!b.abort})}}),aR=z("$ZodCheckOverwrite",(a,b)=>{aB.init(a,b),a._zod.check=a=>{a.value=b.tx(a.value)}});class aS{constructor(a=[]){this.content=[],this.indent=0,this&&(this.args=a)}indented(a){this.indent+=1,a(this),this.indent-=1}write(a){if("function"==typeof a){a(this,{execution:"sync"}),a(this,{execution:"async"});return}let b=a.split("\n").filter(a=>a),c=Math.min(...b.map(a=>a.length-a.trimStart().length));for(let a of b.map(a=>a.slice(c)).map(a=>" ".repeat(2*this.indent)+a))this.content.push(a)}compile(){return Function(...this?.args,[...(this?.content??[""]).map(a=>` ${a}`)].join("\n"))}}let aT=(a,b)=>{a.name="$ZodError",Object.defineProperty(a,"_zod",{value:a._zod,enumerable:!1}),Object.defineProperty(a,"issues",{value:b,enumerable:!1}),a.message=JSON.stringify(b,ad,2),Object.defineProperty(a,"toString",{value:()=>a.message,enumerable:!1})},aU=z("$ZodError",aT),aV=z("$ZodError",aT,{Parent:Error}),aW=a=>(b,c,d,e)=>{let f=d?{...d,async:!1}:{async:!1},g=b._zod.run({value:c,issues:[]},f);if(g instanceof Promise)throw new A;if(g.issues.length){let b=new(e?.Err??a)(g.issues.map(a=>ay(a,f,D())));throw al(b,e?.callee),b}return g.value},aX=a=>async(b,c,d,e)=>{let f=d?{...d,async:!0}:{async:!0},g=b._zod.run({value:c,issues:[]},f);if(g instanceof Promise&&(g=await g),g.issues.length){let b=new(e?.Err??a)(g.issues.map(a=>ay(a,f,D())));throw al(b,e?.callee),b}return g.value},aY=a=>(b,c,d)=>{let e=d?{...d,async:!1}:{async:!1},f=b._zod.run({value:c,issues:[]},e);if(f instanceof Promise)throw new A;return f.issues.length?{success:!1,error:new(a??aU)(f.issues.map(a=>ay(a,e,D())))}:{success:!0,data:f.value}},aZ=aY(aV),a$=a=>async(b,c,d)=>{let e=d?{...d,async:!0}:{async:!0},f=b._zod.run({value:c,issues:[]},e);return f instanceof Promise&&(f=await f),f.issues.length?{success:!1,error:new a(f.issues.map(a=>ay(a,e,D())))}:{success:!0,data:f.value}},a_=a$(aV),a0={major:4,minor:4,patch:3},a1=z("$ZodType",(a,b)=>{var c;a??(a={}),a._zod.def=b,a._zod.bag=a._zod.bag||{},a._zod.version=a0;let d=[...a._zod.def.checks??[]];for(let b of(a._zod.traits.has("$ZodCheck")&&d.unshift(a),d))for(let c of b._zod.onattach)c(a);if(0===d.length)(c=a._zod).deferred??(c.deferred=[]),a._zod.deferred?.push(()=>{a._zod.run=a._zod.parse});else{let b=(a,b,c)=>{let d,e=av(a);for(let f of b){if(f._zod.def.when){if(function(a,b=0){if(!0===a.aborted)return!0;for(let c=b;c<a.issues.length;c++)if(a.issues[c]?.continue===!1)return!0;return!1}(a)||!f._zod.def.when(a))continue}else if(e)continue;let b=a.issues.length,g=f._zod.check(a);if(g instanceof Promise&&c?.async===!1)throw new A;if(d||g instanceof Promise)d=(d??Promise.resolve()).then(async()=>{await g,a.issues.length!==b&&(e||(e=av(a,b)))});else{if(a.issues.length===b)continue;e||(e=av(a,b))}}return d?d.then(()=>a):a},c=(c,e,f)=>{if(av(c))return c.aborted=!0,c;let g=b(e,d,f);if(g instanceof Promise){if(!1===f.async)throw new A;return g.then(b=>a._zod.parse(b,f))}return a._zod.parse(g,f)};a._zod.run=(e,f)=>{if(f.skipChecks)return a._zod.parse(e,f);if("backward"===f.direction){let b=a._zod.parse({value:e.value,issues:[]},{...f,skipChecks:!0});return b instanceof Promise?b.then(a=>c(a,e,f)):c(b,e,f)}let g=a._zod.parse(e,f);if(g instanceof Promise){if(!1===f.async)throw new A;return g.then(a=>b(a,d,f))}return b(g,d,f)}}ah(a,"~standard",()=>({validate:b=>{try{let c=aZ(a,b);return c.success?{value:c.data}:{issues:c.error?.issues}}catch(c){return a_(a,b).then(a=>a.success?{value:a.data}:{issues:a.error?.issues})}},vendor:"zod",version:1}))}),a2=z("$ZodString",(a,b)=>{a1.init(a,b),a._zod.pattern=[...a?._zod.bag?.patterns??[]].pop()??(a=>{let b=a?`[\\s\\S]{${a?.minimum??0},${a?.maximum??""}}`:"[\\s\\S]*";return RegExp(`^${b}$`)})(a._zod.bag),a._zod.parse=(c,d)=>{if(b.coerce)try{c.value=String(c.value)}catch(a){}return"string"==typeof c.value||c.issues.push({expected:"string",code:"invalid_type",input:c.value,inst:a}),c}}),a3=z("$ZodStringFormat",(a,b)=>{aK.init(a,b),a2.init(a,b)}),a4=z("$ZodGUID",(a,b)=>{b.pattern??(b.pattern=L),a3.init(a,b)}),a5=z("$ZodUUID",(a,b)=>{if(b.version){let a={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[b.version];if(void 0===a)throw Error(`Invalid UUID version: "${b.version}"`);b.pattern??(b.pattern=M(a))}else b.pattern??(b.pattern=M());a3.init(a,b)}),a6=z("$ZodEmail",(a,b)=>{b.pattern??(b.pattern=N),a3.init(a,b)}),a7=z("$ZodURL",(a,b)=>{a3.init(a,b),a._zod.check=c=>{try{let d=c.value.trim();if(!b.normalize&&b.protocol?.source===U.source&&!/^https?:\/\//i.test(d))return void c.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:c.value,inst:a,continue:!b.abort});let e=new URL(d);b.hostname&&(b.hostname.lastIndex=0,b.hostname.test(e.hostname)||c.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:b.hostname.source,input:c.value,inst:a,continue:!b.abort})),b.protocol&&(b.protocol.lastIndex=0,b.protocol.test(e.protocol.endsWith(":")?e.protocol.slice(0,-1):e.protocol)||c.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:b.protocol.source,input:c.value,inst:a,continue:!b.abort})),b.normalize?c.value=e.href:c.value=d;return}catch(d){c.issues.push({code:"invalid_format",format:"url",input:c.value,inst:a,continue:!b.abort})}}}),a8=z("$ZodEmoji",(a,b)=>{b.pattern??(b.pattern=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),a3.init(a,b)}),a9=z("$ZodNanoID",(a,b)=>{b.pattern??(b.pattern=J),a3.init(a,b)}),ba=z("$ZodCUID",(a,b)=>{b.pattern??(b.pattern=E),a3.init(a,b)}),bb=z("$ZodCUID2",(a,b)=>{b.pattern??(b.pattern=F),a3.init(a,b)}),bc=z("$ZodULID",(a,b)=>{b.pattern??(b.pattern=G),a3.init(a,b)}),bd=z("$ZodXID",(a,b)=>{b.pattern??(b.pattern=H),a3.init(a,b)}),be=z("$ZodKSUID",(a,b)=>{b.pattern??(b.pattern=I),a3.init(a,b)}),bf=z("$ZodISODateTime",(a,b)=>{b.pattern??(b.pattern=function(a){let b=Y({precision:a.precision}),c=["Z"];a.local&&c.push(""),a.offset&&c.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let d=`${b}(?:${c.join("|")})`;return RegExp(`^${W}T(?:${d})$`)}(b)),a3.init(a,b)}),bg=z("$ZodISODate",(a,b)=>{b.pattern??(b.pattern=X),a3.init(a,b)}),bh=z("$ZodISOTime",(a,b)=>{b.pattern??(b.pattern=RegExp(`^${Y(b)}$`)),a3.init(a,b)}),bi=z("$ZodISODuration",(a,b)=>{b.pattern??(b.pattern=K),a3.init(a,b)}),bj=z("$ZodIPv4",(a,b)=>{b.pattern??(b.pattern=O),a3.init(a,b),a._zod.bag.format="ipv4"}),bk=z("$ZodIPv6",(a,b)=>{b.pattern??(b.pattern=P),a3.init(a,b),a._zod.bag.format="ipv6",a._zod.check=c=>{try{new URL(`http://[${c.value}]`)}catch{c.issues.push({code:"invalid_format",format:"ipv6",input:c.value,inst:a,continue:!b.abort})}}}),bl=z("$ZodCIDRv4",(a,b)=>{b.pattern??(b.pattern=Q),a3.init(a,b)}),bm=z("$ZodCIDRv6",(a,b)=>{b.pattern??(b.pattern=R),a3.init(a,b),a._zod.check=c=>{let d=c.value.split("/");try{if(2!==d.length)throw Error();let[a,b]=d;if(!b)throw Error();let c=Number(b);if(`${c}`!==b||c<0||c>128)throw Error();new URL(`http://[${a}]`)}catch{c.issues.push({code:"invalid_format",format:"cidrv6",input:c.value,inst:a,continue:!b.abort})}}});function bn(a){if(""===a)return!0;if(/\s/.test(a)||a.length%4!=0)return!1;try{return atob(a),!0}catch{return!1}}let bo=z("$ZodBase64",(a,b)=>{b.pattern??(b.pattern=S),a3.init(a,b),a._zod.bag.contentEncoding="base64",a._zod.check=c=>{bn(c.value)||c.issues.push({code:"invalid_format",format:"base64",input:c.value,inst:a,continue:!b.abort})}}),bp=z("$ZodBase64URL",(a,b)=>{b.pattern??(b.pattern=T),a3.init(a,b),a._zod.bag.contentEncoding="base64url",a._zod.check=c=>{!function(a){if(!T.test(a))return!1;let b=a.replace(/[-_]/g,a=>"-"===a?"+":"/");return bn(b.padEnd(4*Math.ceil(b.length/4),"="))}(c.value)&&c.issues.push({code:"invalid_format",format:"base64url",input:c.value,inst:a,continue:!b.abort})}}),bq=z("$ZodE164",(a,b)=>{b.pattern??(b.pattern=V),a3.init(a,b)}),br=z("$ZodJWT",(a,b)=>{a3.init(a,b),a._zod.check=c=>{!function(a,b=null){try{let c=a.split(".");if(3!==c.length)return!1;let[d]=c;if(!d)return!1;let e=JSON.parse(atob(d));if("typ"in e&&e?.typ!=="JWT"||!e.alg||b&&(!("alg"in e)||e.alg!==b))return!1;return!0}catch{return!1}}(c.value,b.alg)&&c.issues.push({code:"invalid_format",format:"jwt",input:c.value,inst:a,continue:!b.abort})}}),bs=z("$ZodNumber",(a,b)=>{a1.init(a,b),a._zod.pattern=a._zod.bag.pattern??$,a._zod.parse=(c,d)=>{if(b.coerce)try{c.value=Number(c.value)}catch(a){}let e=c.value;if("number"==typeof e&&!Number.isNaN(e)&&Number.isFinite(e))return c;let f="number"==typeof e?Number.isNaN(e)?"NaN":Number.isFinite(e)?void 0:"Infinity":void 0;return c.issues.push({expected:"number",code:"invalid_type",input:e,inst:a,...f?{received:f}:{}}),c}}),bt=z("$ZodNumberFormat",(a,b)=>{aG.init(a,b),bs.init(a,b)}),bu=z("$ZodBoolean",(a,b)=>{a1.init(a,b),a._zod.pattern=_,a._zod.parse=(c,d)=>{if(b.coerce)try{c.value=!!c.value}catch(a){}let e=c.value;return"boolean"==typeof e||c.issues.push({expected:"boolean",code:"invalid_type",input:e,inst:a}),c}}),bv=z("$ZodUnknown",(a,b)=>{a1.init(a,b),a._zod.parse=a=>a}),bw=z("$ZodNever",(a,b)=>{a1.init(a,b),a._zod.parse=(b,c)=>(b.issues.push({expected:"never",code:"invalid_type",input:b.value,inst:a}),b)});function bx(a,b,c){a.issues.length&&b.issues.push(...aw(c,a.issues)),b.value[c]=a.value}let by=z("$ZodArray",(a,b)=>{a1.init(a,b),a._zod.parse=(c,d)=>{let e=c.value;if(!Array.isArray(e))return c.issues.push({expected:"array",code:"invalid_type",input:e,inst:a}),c;c.value=Array(e.length);let f=[];for(let a=0;a<e.length;a++){let g=e[a],h=b.element._zod.run({value:g,issues:[]},d);h instanceof Promise?f.push(h.then(b=>bx(b,c,a))):bx(h,c,a)}return f.length?Promise.all(f).then(()=>c):c}});function bz(a,b,c,d,e,f){let g=c in d;if(a.issues.length){if(e&&f&&!g)return;b.issues.push(...aw(c,a.issues))}if(!g&&!e){a.issues.length||b.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[c]});return}void 0===a.value?g&&(b.value[c]=void 0):b.value[c]=a.value}function bA(a){var b;let c=Object.keys(a.shape);for(let b of c)if(!a.shape?.[b]?._zod?.traits?.has("$ZodType"))throw Error(`Invalid element at key "${b}": expected a Zod schema`);let d=Object.keys(b=a.shape).filter(a=>"optional"===b[a]._zod.optin&&"optional"===b[a]._zod.optout);return{...a,keys:c,keySet:new Set(c),numKeys:c.length,optionalKeys:new Set(d)}}function bB(a,b,c,d,e,f){let g=[],h=e.keySet,i=e.catchall._zod,j=i.def.type,k="optional"===i.optin,l="optional"===i.optout;for(let e in b){if("__proto__"===e||h.has(e))continue;if("never"===j){g.push(e);continue}let f=i.run({value:b[e],issues:[]},d);f instanceof Promise?a.push(f.then(a=>bz(a,c,e,b,k,l))):bz(f,c,e,b,k,l)}return(g.length&&c.issues.push({code:"unrecognized_keys",keys:g,input:b,inst:f}),a.length)?Promise.all(a).then(()=>c):c}let bC=z("$ZodObject",(a,b)=>{let c;a1.init(a,b);let d=Object.getOwnPropertyDescriptor(b,"shape");if(!d?.get){let a=b.shape;Object.defineProperty(b,"shape",{get:()=>{let c={...a};return Object.defineProperty(b,"shape",{value:c}),c}})}let e=ae(()=>bA(b));ah(a._zod,"propValues",()=>{let a=b.shape,c={};for(let b in a){let d=a[b]._zod;if(d.values)for(let a of(c[b]??(c[b]=new Set),d.values))c[b].add(a)}return c});let f=b.catchall;a._zod.parse=(b,d)=>{c??(c=e.value);let g=b.value;if(!am(g))return b.issues.push({expected:"object",code:"invalid_type",input:g,inst:a}),b;b.value={};let h=[],i=c.shape;for(let a of c.keys){let c=i[a],e="optional"===c._zod.optin,f="optional"===c._zod.optout,j=c._zod.run({value:g[a],issues:[]},d);j instanceof Promise?h.push(j.then(c=>bz(c,b,a,g,e,f))):bz(j,b,a,g,e,f)}return f?bB(h,g,b,d,e.value,a):h.length?Promise.all(h).then(()=>b):b}}),bD=z("$ZodObjectJIT",(a,b)=>{let c,d;bC.init(a,b);let e=a._zod.parse,f=ae(()=>bA(b)),g=!C.jitless,h=g&&an.value,i=b.catchall;a._zod.parse=(j,k)=>{d??(d=f.value);let l=j.value;return am(l)?g&&h&&k?.async===!1&&!0!==k.jitless?(c||(c=(a=>{let b=new aS(["shape","payload","ctx"]),c=f.value,d=a=>{let b=ak(a);return`shape[${b}]._zod.run({ value: input[${b}], issues: [] }, ctx)`};b.write("const input = payload.value;");let e=Object.create(null),g=0;for(let a of c.keys)e[a]=`key_${g++}`;for(let f of(b.write("const newResult = {};"),c.keys)){let c=e[f],g=ak(f),h=a[f],i=h?._zod?.optin==="optional",j=h?._zod?.optout==="optional";b.write(`const ${c} = ${d(f)};`),i&&j?b.write(`
1
+ (()=>{var a={};a.id=4662,a.ids=[4662,9098],a.modules={83:(a,b,c)=>{"use strict";c.d(b,{Av:()=>o,EI:()=>r,G4:()=>k,Is:()=>s,JV:()=>n,S7:()=>j,TS:()=>m,nL:()=>q,ol:()=>i,op:()=>l,vz:()=>p});var d=c(73745);c(66493);var e=c(65326),f=c(61888),g=c(1223),h=c(10094);async function i(){try{return{ok:!0,statuses:await (0,g.gi)()}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function j(a){try{if(!await (0,h.isOAuthProviderId)(a.provider))return{ok:!1,error:`unknown provider: ${a.provider}`};if(!a.clientId.trim())return{ok:!1,error:"client_id is required"};return await (0,g.cL)(a.provider,{clientId:a.clientId.trim(),...a.clientSecret?.trim()?{clientSecret:a.clientSecret.trim()}:{},...a.scopes&&a.scopes.length>0?{scopes:a.scopes}:{}}),(0,e.revalidatePath)("/settings"),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function k(a){try{if(!await (0,h.isOAuthProviderId)(a))return{ok:!1,error:`unknown provider: ${a}`};return await (0,g.Sh)(a),await (0,g.De)(a),(0,e.revalidatePath)("/settings"),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function l(a){try{if(!await (0,h.isOAuthProviderId)(a))return{ok:!1,error:`unknown provider: ${a}`};return await (0,g.De)(a),(0,e.revalidatePath)("/settings"),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function m(a,b){try{if(!await (0,h.isOAuthProviderId)(a))return{ok:!1,error:`unknown provider: ${a}`};let c=await (0,f.b)(a,b);return{ok:!0,...c}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function n(a){try{let b=await (0,h.getOAuthProvider)(a);if(!b)return{ok:!1,error:`unknown provider: ${a}`};let c=await (0,g.tY)(a);return{ok:!0,client:c?{clientId:c.clientId,hasSecret:!!c.clientSecret,scopes:c.scopes??[]}:null,defaultScopes:b.defaultScopes,setupHint:b.setupHint,consoleUrl:b.consoleUrl,needsClientSecret:b.needsClientSecret,label:b.label,setupSteps:b.setupSteps}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function o(){try{return{ok:!0,providers:await (0,h.E4)()}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function p(a){try{let b=h.lL.parse(a);return await (0,h.To)(b),(0,e.revalidatePath)("/settings"),{ok:!0,provider:b}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function q(a,b){try{let c=h.lL.partial().parse(b);return await (0,h.H)(a,c),(0,e.revalidatePath)("/settings"),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function r(a){try{return await (0,h.uq)(a),(0,e.revalidatePath)("/settings"),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function s(a){try{if(!await (0,h.isOAuthProviderId)(a))return{ok:!1,error:`unknown provider: ${a}`};return await (0,f.getAccessToken)(a),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}(0,c(63781).D)([i,j,k,l,m,n,o,p,q,r,s]),(0,d.A)(i,"00668f3e8485f098c46718b7c7db363123bb1822ca",null),(0,d.A)(j,"40220d73b141b1c5933c382c9691f6b43c2b70a650",null),(0,d.A)(k,"4095405d49d58ff1e072aaa8158a01d00551ae2a29",null),(0,d.A)(l,"406648b29e906c094e0bc25d5c0e466bef236190c6",null),(0,d.A)(m,"60e20e20af6c69e1e46336332e38b26e6646b66ff2",null),(0,d.A)(n,"403ae3a27ef574b4ad82686ef1a09eb0f0b66ddf39",null),(0,d.A)(o,"00cd7d9a46dc4e1db0c907d9fce7858caaecad443c",null),(0,d.A)(p,"40e08bf932a0c8892c8d7a1b5c568414f03ef3e662",null),(0,d.A)(q,"6028d15aae38e6ec537c6332327fc5e7454c87a593",null),(0,d.A)(r,"40c44748189e130f7026a549391f57d0c09eaa2fc7",null),(0,d.A)(s,"40eeef872baa0da17a77f25f40fa697b66b35f49fe",null)},261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1708:a=>{"use strict";a.exports=require("node:process")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4867:(a,b,c)=>{"use strict";c.d(b,{A:()=>e});var d=c(3265);let e=(0,d.createServerReference)("40edcdfb0c67ebf35498a6aff6d1926081f669f235",d.callServer,void 0,d.findSourceMapURL,"saveGeminiKeyAction")},4984:a=>{"use strict";a.exports=require("readline")},5407:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{K:()=>h});var e=c(7206),f=a([e]);e=(f.then?(await f)():f)[0];let g=[{id:"gpt-5.5",label:"GPT-5.5",source:"static"},{id:"gpt-5.4",label:"GPT-5.4",source:"static"},{id:"gpt-5.4-mini",label:"GPT-5.4-Mini",source:"static"},{id:"gpt-5.3-codex",label:"GPT-5.3-Codex",source:"static"}],h={id:"codex",label:"Codex",supports:["analyze","chat","quick"],async probe(){try{let a=await (0,e.execa)("codex",["--version"],{timeout:3e3});return{ok:!0,available:!0,detail:a.stdout.trim()||"installed"}}catch(a){return{ok:!1,available:!1,detail:a instanceof Error?a.message:"not installed"}}},async listModels(){try{let{listCodexModels:a}=await c.e(1088).then(c.bind(c,61088)),b=(await a()).filter(a=>!a.hidden);if(0===b.length)return g;return b.sort((a,b)=>a.isDefault!==b.isDefault?a.isDefault?-1:1:a.id.localeCompare(b.id)),b.map(a=>({id:a.id,label:a.displayName||a.id,source:"live"}))}catch{return g}}};d()}catch(a){d(a)}})},6041:(a,b,c)=>{"use strict";c.d(b,{SettingsForm:()=>eH});var d,e,f=c(64173),g=c(17240),h=c(63351),i=c(62261),j=c(13530),k=c(9338),l=c(42557);let m=(0,l.A)("CircleAlert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);var n=c(44052),o=c(20583),p=c(31041),q=c(47071),r=c(80281),s=c(20633),t=c(91344);function u({className:a,size:b="default",...c}){return(0,f.jsx)(s.Root,{"data-slot":"switch","data-size":b,className:(0,t.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",a),...c,children:(0,f.jsx)(s.Thumb,{"data-slot":"switch-thumb",className:(0,t.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=c(18282);function w({className:a,defaultValue:b,value:c,min:d=0,max:e=100,...h}){let i=g.useMemo(()=>Array.isArray(c)?c:Array.isArray(b)?b:[d,e],[c,b,d,e]);return(0,f.jsxs)(v.Root,{"data-slot":"slider",defaultValue:b,value:c,min:d,max:e,className:(0,t.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",a),...h,children:[(0,f.jsx)(v.Track,{"data-slot":"slider-track",className:(0,t.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,f.jsx)(v.Range,{"data-slot":"slider-range",className:(0,t.cn)("absolute bg-primary data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full")})}),Array.from({length:i.length},(a,b)=>(0,f.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"},b))]})}var x=c(42382),y=c(71155);function z(a,b,c){function d(c,d){if(c._zod||Object.defineProperty(c,"_zod",{value:{def:d,constr:g,traits:new Set},enumerable:!1}),c._zod.traits.has(a))return;c._zod.traits.add(a),b(c,d);let e=g.prototype,f=Object.keys(e);for(let a=0;a<f.length;a++){let b=f[a];b in c||(c[b]=e[b].bind(c))}}let e=c?.Parent??Object;class f extends e{}function g(a){var b;let e=c?.Parent?new f:this;for(let c of(d(e,a),(b=e._zod).deferred??(b.deferred=[]),e._zod.deferred))c();return e}return Object.defineProperty(f,"name",{value:a}),Object.defineProperty(g,"init",{value:d}),Object.defineProperty(g,Symbol.hasInstance,{value:b=>!!c?.Parent&&b instanceof c.Parent||b?._zod?.traits?.has(a)}),Object.defineProperty(g,"name",{value:a}),g}Symbol("zod_brand");class A extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class B extends Error{constructor(a){super(`Encountered unidirectional transform during encode: ${a}`),this.name="ZodEncodeError"}}(d=globalThis).__zod_globalConfig??(d.__zod_globalConfig={});let C=globalThis.__zod_globalConfig;function D(a){return a&&Object.assign(C,a),C}let E=/^[cC][0-9a-z]{6,}$/,F=/^[0-9a-z]+$/,G=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,H=/^[0-9a-vA-V]{20}$/,I=/^[A-Za-z0-9]{27}$/,J=/^[a-zA-Z0-9_-]{21}$/,K=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,L=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,M=a=>a?RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${a}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,N=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,O=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,P=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,Q=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,R=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,S=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,T=/^[A-Za-z0-9_-]*$/,U=/^https?$/,V=/^\+[1-9]\d{6,14}$/,W="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",X=RegExp(`^${W}$`);function Y(a){let b="(?:[01]\\d|2[0-3]):[0-5]\\d";return"number"==typeof a.precision?-1===a.precision?`${b}`:0===a.precision?`${b}:[0-5]\\d`:`${b}:[0-5]\\d\\.\\d{${a.precision}}`:`${b}(?::[0-5]\\d(?:\\.\\d+)?)?`}let Z=/^-?\d+$/,$=/^-?\d+(?:\.\d+)?$/,_=/^(?:true|false)$/i,aa=/^[^A-Z]*$/,ab=/^[^a-z]*$/;function ac(a){let b=Object.values(a).filter(a=>"number"==typeof a);return Object.entries(a).filter(([a,c])=>-1===b.indexOf(+a)).map(([a,b])=>b)}function ad(a,b){return"bigint"==typeof b?b.toString():b}function ae(a){return{get value(){{let b=a();return Object.defineProperty(this,"value",{value:b}),b}}}}function af(a){let b=+!!a.startsWith("^"),c=a.endsWith("$")?a.length-1:a.length;return a.slice(b,c)}let ag=Symbol("evaluating");function ah(a,b,c){let d;Object.defineProperty(a,b,{get(){if(d!==ag)return void 0===d&&(d=ag,d=c()),d},set(c){Object.defineProperty(a,b,{value:c})},configurable:!0})}function ai(a,b,c){Object.defineProperty(a,b,{value:c,writable:!0,enumerable:!0,configurable:!0})}function aj(...a){let b={};for(let c of a)Object.assign(b,Object.getOwnPropertyDescriptors(c));return Object.defineProperties({},b)}function ak(a){return JSON.stringify(a)}let al="captureStackTrace"in Error?Error.captureStackTrace:(...a)=>{};function am(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}let an=ae(()=>{if(C.jitless||"undefined"!=typeof navigator&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return Function(""),!0}catch(a){return!1}});function ao(a){if(!1===am(a))return!1;let b=a.constructor;if(void 0===b||"function"!=typeof b)return!0;let c=b.prototype;return!1!==am(c)&&!1!==Object.prototype.hasOwnProperty.call(c,"isPrototypeOf")}function ap(a){return ao(a)?{...a}:Array.isArray(a)?[...a]:a instanceof Map?new Map(a):a instanceof Set?new Set(a):a}let aq=new Set(["string","number","symbol"]);function ar(a){return a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function as(a,b,c){let d=new a._zod.constr(b??a._zod.def);return(!b||c?.parent)&&(d._zod.parent=a),d}function at(a){if(!a)return{};if("string"==typeof a)return{error:()=>a};if(a?.message!==void 0){if(a?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");a.error=a.message}return(delete a.message,"string"==typeof a.error)?{...a,error:()=>a.error}:a}let au={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-0x80000000,0x7fffffff],uint32:[0,0xffffffff],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function av(a,b=0){if(!0===a.aborted)return!0;for(let c=b;c<a.issues.length;c++)if(a.issues[c]?.continue!==!0)return!0;return!1}function aw(a,b){return b.map(b=>(b.path??(b.path=[]),b.path.unshift(a),b))}function ax(a){return"string"==typeof a?a:a?.message}function ay(a,b,c){let d=a.message?a.message:ax(a.inst?._zod.def?.error?.(a))??ax(b?.error?.(a))??ax(c.customError?.(a))??ax(c.localeError?.(a))??"Invalid input",{inst:e,continue:f,input:g,...h}=a;return h.path??(h.path=[]),h.message=d,b?.reportInput&&(h.input=g),h}function az(a){return Array.isArray(a)?"array":"string"==typeof a?"string":"unknown"}function aA(...a){let[b,c,d]=a;return"string"==typeof b?{message:b,code:"custom",input:c,inst:d}:{...b}}let aB=z("$ZodCheck",(a,b)=>{var c;a._zod??(a._zod={}),a._zod.def=b,(c=a._zod).onattach??(c.onattach=[])}),aC={number:"number",bigint:"bigint",object:"date"},aD=z("$ZodCheckLessThan",(a,b)=>{aB.init(a,b);let c=aC[typeof b.value];a._zod.onattach.push(a=>{let c=a._zod.bag,d=(b.inclusive?c.maximum:c.exclusiveMaximum)??1/0;b.value<d&&(b.inclusive?c.maximum=b.value:c.exclusiveMaximum=b.value)}),a._zod.check=d=>{(b.inclusive?d.value<=b.value:d.value<b.value)||d.issues.push({origin:c,code:"too_big",maximum:"object"==typeof b.value?b.value.getTime():b.value,input:d.value,inclusive:b.inclusive,inst:a,continue:!b.abort})}}),aE=z("$ZodCheckGreaterThan",(a,b)=>{aB.init(a,b);let c=aC[typeof b.value];a._zod.onattach.push(a=>{let c=a._zod.bag,d=(b.inclusive?c.minimum:c.exclusiveMinimum)??-1/0;b.value>d&&(b.inclusive?c.minimum=b.value:c.exclusiveMinimum=b.value)}),a._zod.check=d=>{(b.inclusive?d.value>=b.value:d.value>b.value)||d.issues.push({origin:c,code:"too_small",minimum:"object"==typeof b.value?b.value.getTime():b.value,input:d.value,inclusive:b.inclusive,inst:a,continue:!b.abort})}}),aF=z("$ZodCheckMultipleOf",(a,b)=>{aB.init(a,b),a._zod.onattach.push(a=>{var c;(c=a._zod.bag).multipleOf??(c.multipleOf=b.value)}),a._zod.check=c=>{if(typeof c.value!=typeof b.value)throw Error("Cannot mix number and bigint in multiple_of check.");("bigint"==typeof c.value?c.value%b.value===BigInt(0):0===function(a,b){let c=a/b,d=Math.round(c),e=Number.EPSILON*Math.max(Math.abs(c),1);return Math.abs(c-d)<e?0:c-d}(c.value,b.value))||c.issues.push({origin:typeof c.value,code:"not_multiple_of",divisor:b.value,input:c.value,inst:a,continue:!b.abort})}}),aG=z("$ZodCheckNumberFormat",(a,b)=>{aB.init(a,b),b.format=b.format||"float64";let c=b.format?.includes("int"),d=c?"int":"number",[e,f]=au[b.format];a._zod.onattach.push(a=>{let d=a._zod.bag;d.format=b.format,d.minimum=e,d.maximum=f,c&&(d.pattern=Z)}),a._zod.check=g=>{let h=g.value;if(c){if(!Number.isInteger(h))return void g.issues.push({expected:d,format:b.format,code:"invalid_type",continue:!1,input:h,inst:a});if(!Number.isSafeInteger(h))return void(h>0?g.issues.push({input:h,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:a,origin:d,inclusive:!0,continue:!b.abort}):g.issues.push({input:h,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:a,origin:d,inclusive:!0,continue:!b.abort}))}h<e&&g.issues.push({origin:"number",input:h,code:"too_small",minimum:e,inclusive:!0,inst:a,continue:!b.abort}),h>f&&g.issues.push({origin:"number",input:h,code:"too_big",maximum:f,inclusive:!0,inst:a,continue:!b.abort})}}),aH=z("$ZodCheckMaxLength",(a,b)=>{var c;aB.init(a,b),(c=a._zod.def).when??(c.when=a=>{let b=a.value;return null!=b&&void 0!==b.length}),a._zod.onattach.push(a=>{let c=a._zod.bag.maximum??1/0;b.maximum<c&&(a._zod.bag.maximum=b.maximum)}),a._zod.check=c=>{let d=c.value;if(d.length<=b.maximum)return;let e=az(d);c.issues.push({origin:e,code:"too_big",maximum:b.maximum,inclusive:!0,input:d,inst:a,continue:!b.abort})}}),aI=z("$ZodCheckMinLength",(a,b)=>{var c;aB.init(a,b),(c=a._zod.def).when??(c.when=a=>{let b=a.value;return null!=b&&void 0!==b.length}),a._zod.onattach.push(a=>{let c=a._zod.bag.minimum??-1/0;b.minimum>c&&(a._zod.bag.minimum=b.minimum)}),a._zod.check=c=>{let d=c.value;if(d.length>=b.minimum)return;let e=az(d);c.issues.push({origin:e,code:"too_small",minimum:b.minimum,inclusive:!0,input:d,inst:a,continue:!b.abort})}}),aJ=z("$ZodCheckLengthEquals",(a,b)=>{var c;aB.init(a,b),(c=a._zod.def).when??(c.when=a=>{let b=a.value;return null!=b&&void 0!==b.length}),a._zod.onattach.push(a=>{let c=a._zod.bag;c.minimum=b.length,c.maximum=b.length,c.length=b.length}),a._zod.check=c=>{let d=c.value,e=d.length;if(e===b.length)return;let f=az(d),g=e>b.length;c.issues.push({origin:f,...g?{code:"too_big",maximum:b.length}:{code:"too_small",minimum:b.length},inclusive:!0,exact:!0,input:c.value,inst:a,continue:!b.abort})}}),aK=z("$ZodCheckStringFormat",(a,b)=>{var c,d;aB.init(a,b),a._zod.onattach.push(a=>{let c=a._zod.bag;c.format=b.format,b.pattern&&(c.patterns??(c.patterns=new Set),c.patterns.add(b.pattern))}),b.pattern?(c=a._zod).check??(c.check=c=>{b.pattern.lastIndex=0,b.pattern.test(c.value)||c.issues.push({origin:"string",code:"invalid_format",format:b.format,input:c.value,...b.pattern?{pattern:b.pattern.toString()}:{},inst:a,continue:!b.abort})}):(d=a._zod).check??(d.check=()=>{})}),aL=z("$ZodCheckRegex",(a,b)=>{aK.init(a,b),a._zod.check=c=>{b.pattern.lastIndex=0,b.pattern.test(c.value)||c.issues.push({origin:"string",code:"invalid_format",format:"regex",input:c.value,pattern:b.pattern.toString(),inst:a,continue:!b.abort})}}),aM=z("$ZodCheckLowerCase",(a,b)=>{b.pattern??(b.pattern=aa),aK.init(a,b)}),aN=z("$ZodCheckUpperCase",(a,b)=>{b.pattern??(b.pattern=ab),aK.init(a,b)}),aO=z("$ZodCheckIncludes",(a,b)=>{aB.init(a,b);let c=ar(b.includes),d=new RegExp("number"==typeof b.position?`^.{${b.position}}${c}`:c);b.pattern=d,a._zod.onattach.push(a=>{let b=a._zod.bag;b.patterns??(b.patterns=new Set),b.patterns.add(d)}),a._zod.check=c=>{c.value.includes(b.includes,b.position)||c.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:b.includes,input:c.value,inst:a,continue:!b.abort})}}),aP=z("$ZodCheckStartsWith",(a,b)=>{aB.init(a,b);let c=RegExp(`^${ar(b.prefix)}.*`);b.pattern??(b.pattern=c),a._zod.onattach.push(a=>{let b=a._zod.bag;b.patterns??(b.patterns=new Set),b.patterns.add(c)}),a._zod.check=c=>{c.value.startsWith(b.prefix)||c.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:b.prefix,input:c.value,inst:a,continue:!b.abort})}}),aQ=z("$ZodCheckEndsWith",(a,b)=>{aB.init(a,b);let c=RegExp(`.*${ar(b.suffix)}$`);b.pattern??(b.pattern=c),a._zod.onattach.push(a=>{let b=a._zod.bag;b.patterns??(b.patterns=new Set),b.patterns.add(c)}),a._zod.check=c=>{c.value.endsWith(b.suffix)||c.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:b.suffix,input:c.value,inst:a,continue:!b.abort})}}),aR=z("$ZodCheckOverwrite",(a,b)=>{aB.init(a,b),a._zod.check=a=>{a.value=b.tx(a.value)}});class aS{constructor(a=[]){this.content=[],this.indent=0,this&&(this.args=a)}indented(a){this.indent+=1,a(this),this.indent-=1}write(a){if("function"==typeof a){a(this,{execution:"sync"}),a(this,{execution:"async"});return}let b=a.split("\n").filter(a=>a),c=Math.min(...b.map(a=>a.length-a.trimStart().length));for(let a of b.map(a=>a.slice(c)).map(a=>" ".repeat(2*this.indent)+a))this.content.push(a)}compile(){return Function(...this?.args,[...(this?.content??[""]).map(a=>` ${a}`)].join("\n"))}}let aT=(a,b)=>{a.name="$ZodError",Object.defineProperty(a,"_zod",{value:a._zod,enumerable:!1}),Object.defineProperty(a,"issues",{value:b,enumerable:!1}),a.message=JSON.stringify(b,ad,2),Object.defineProperty(a,"toString",{value:()=>a.message,enumerable:!1})},aU=z("$ZodError",aT),aV=z("$ZodError",aT,{Parent:Error}),aW=a=>(b,c,d,e)=>{let f=d?{...d,async:!1}:{async:!1},g=b._zod.run({value:c,issues:[]},f);if(g instanceof Promise)throw new A;if(g.issues.length){let b=new(e?.Err??a)(g.issues.map(a=>ay(a,f,D())));throw al(b,e?.callee),b}return g.value},aX=a=>async(b,c,d,e)=>{let f=d?{...d,async:!0}:{async:!0},g=b._zod.run({value:c,issues:[]},f);if(g instanceof Promise&&(g=await g),g.issues.length){let b=new(e?.Err??a)(g.issues.map(a=>ay(a,f,D())));throw al(b,e?.callee),b}return g.value},aY=a=>(b,c,d)=>{let e=d?{...d,async:!1}:{async:!1},f=b._zod.run({value:c,issues:[]},e);if(f instanceof Promise)throw new A;return f.issues.length?{success:!1,error:new(a??aU)(f.issues.map(a=>ay(a,e,D())))}:{success:!0,data:f.value}},aZ=aY(aV),a$=a=>async(b,c,d)=>{let e=d?{...d,async:!0}:{async:!0},f=b._zod.run({value:c,issues:[]},e);return f instanceof Promise&&(f=await f),f.issues.length?{success:!1,error:new a(f.issues.map(a=>ay(a,e,D())))}:{success:!0,data:f.value}},a_=a$(aV),a0={major:4,minor:4,patch:3},a1=z("$ZodType",(a,b)=>{var c;a??(a={}),a._zod.def=b,a._zod.bag=a._zod.bag||{},a._zod.version=a0;let d=[...a._zod.def.checks??[]];for(let b of(a._zod.traits.has("$ZodCheck")&&d.unshift(a),d))for(let c of b._zod.onattach)c(a);if(0===d.length)(c=a._zod).deferred??(c.deferred=[]),a._zod.deferred?.push(()=>{a._zod.run=a._zod.parse});else{let b=(a,b,c)=>{let d,e=av(a);for(let f of b){if(f._zod.def.when){if(function(a,b=0){if(!0===a.aborted)return!0;for(let c=b;c<a.issues.length;c++)if(a.issues[c]?.continue===!1)return!0;return!1}(a)||!f._zod.def.when(a))continue}else if(e)continue;let b=a.issues.length,g=f._zod.check(a);if(g instanceof Promise&&c?.async===!1)throw new A;if(d||g instanceof Promise)d=(d??Promise.resolve()).then(async()=>{await g,a.issues.length!==b&&(e||(e=av(a,b)))});else{if(a.issues.length===b)continue;e||(e=av(a,b))}}return d?d.then(()=>a):a},c=(c,e,f)=>{if(av(c))return c.aborted=!0,c;let g=b(e,d,f);if(g instanceof Promise){if(!1===f.async)throw new A;return g.then(b=>a._zod.parse(b,f))}return a._zod.parse(g,f)};a._zod.run=(e,f)=>{if(f.skipChecks)return a._zod.parse(e,f);if("backward"===f.direction){let b=a._zod.parse({value:e.value,issues:[]},{...f,skipChecks:!0});return b instanceof Promise?b.then(a=>c(a,e,f)):c(b,e,f)}let g=a._zod.parse(e,f);if(g instanceof Promise){if(!1===f.async)throw new A;return g.then(a=>b(a,d,f))}return b(g,d,f)}}ah(a,"~standard",()=>({validate:b=>{try{let c=aZ(a,b);return c.success?{value:c.data}:{issues:c.error?.issues}}catch(c){return a_(a,b).then(a=>a.success?{value:a.data}:{issues:a.error?.issues})}},vendor:"zod",version:1}))}),a2=z("$ZodString",(a,b)=>{a1.init(a,b),a._zod.pattern=[...a?._zod.bag?.patterns??[]].pop()??(a=>{let b=a?`[\\s\\S]{${a?.minimum??0},${a?.maximum??""}}`:"[\\s\\S]*";return RegExp(`^${b}$`)})(a._zod.bag),a._zod.parse=(c,d)=>{if(b.coerce)try{c.value=String(c.value)}catch(a){}return"string"==typeof c.value||c.issues.push({expected:"string",code:"invalid_type",input:c.value,inst:a}),c}}),a3=z("$ZodStringFormat",(a,b)=>{aK.init(a,b),a2.init(a,b)}),a4=z("$ZodGUID",(a,b)=>{b.pattern??(b.pattern=L),a3.init(a,b)}),a5=z("$ZodUUID",(a,b)=>{if(b.version){let a={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[b.version];if(void 0===a)throw Error(`Invalid UUID version: "${b.version}"`);b.pattern??(b.pattern=M(a))}else b.pattern??(b.pattern=M());a3.init(a,b)}),a6=z("$ZodEmail",(a,b)=>{b.pattern??(b.pattern=N),a3.init(a,b)}),a7=z("$ZodURL",(a,b)=>{a3.init(a,b),a._zod.check=c=>{try{let d=c.value.trim();if(!b.normalize&&b.protocol?.source===U.source&&!/^https?:\/\//i.test(d))return void c.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:c.value,inst:a,continue:!b.abort});let e=new URL(d);b.hostname&&(b.hostname.lastIndex=0,b.hostname.test(e.hostname)||c.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:b.hostname.source,input:c.value,inst:a,continue:!b.abort})),b.protocol&&(b.protocol.lastIndex=0,b.protocol.test(e.protocol.endsWith(":")?e.protocol.slice(0,-1):e.protocol)||c.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:b.protocol.source,input:c.value,inst:a,continue:!b.abort})),b.normalize?c.value=e.href:c.value=d;return}catch(d){c.issues.push({code:"invalid_format",format:"url",input:c.value,inst:a,continue:!b.abort})}}}),a8=z("$ZodEmoji",(a,b)=>{b.pattern??(b.pattern=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),a3.init(a,b)}),a9=z("$ZodNanoID",(a,b)=>{b.pattern??(b.pattern=J),a3.init(a,b)}),ba=z("$ZodCUID",(a,b)=>{b.pattern??(b.pattern=E),a3.init(a,b)}),bb=z("$ZodCUID2",(a,b)=>{b.pattern??(b.pattern=F),a3.init(a,b)}),bc=z("$ZodULID",(a,b)=>{b.pattern??(b.pattern=G),a3.init(a,b)}),bd=z("$ZodXID",(a,b)=>{b.pattern??(b.pattern=H),a3.init(a,b)}),be=z("$ZodKSUID",(a,b)=>{b.pattern??(b.pattern=I),a3.init(a,b)}),bf=z("$ZodISODateTime",(a,b)=>{b.pattern??(b.pattern=function(a){let b=Y({precision:a.precision}),c=["Z"];a.local&&c.push(""),a.offset&&c.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let d=`${b}(?:${c.join("|")})`;return RegExp(`^${W}T(?:${d})$`)}(b)),a3.init(a,b)}),bg=z("$ZodISODate",(a,b)=>{b.pattern??(b.pattern=X),a3.init(a,b)}),bh=z("$ZodISOTime",(a,b)=>{b.pattern??(b.pattern=RegExp(`^${Y(b)}$`)),a3.init(a,b)}),bi=z("$ZodISODuration",(a,b)=>{b.pattern??(b.pattern=K),a3.init(a,b)}),bj=z("$ZodIPv4",(a,b)=>{b.pattern??(b.pattern=O),a3.init(a,b),a._zod.bag.format="ipv4"}),bk=z("$ZodIPv6",(a,b)=>{b.pattern??(b.pattern=P),a3.init(a,b),a._zod.bag.format="ipv6",a._zod.check=c=>{try{new URL(`http://[${c.value}]`)}catch{c.issues.push({code:"invalid_format",format:"ipv6",input:c.value,inst:a,continue:!b.abort})}}}),bl=z("$ZodCIDRv4",(a,b)=>{b.pattern??(b.pattern=Q),a3.init(a,b)}),bm=z("$ZodCIDRv6",(a,b)=>{b.pattern??(b.pattern=R),a3.init(a,b),a._zod.check=c=>{let d=c.value.split("/");try{if(2!==d.length)throw Error();let[a,b]=d;if(!b)throw Error();let c=Number(b);if(`${c}`!==b||c<0||c>128)throw Error();new URL(`http://[${a}]`)}catch{c.issues.push({code:"invalid_format",format:"cidrv6",input:c.value,inst:a,continue:!b.abort})}}});function bn(a){if(""===a)return!0;if(/\s/.test(a)||a.length%4!=0)return!1;try{return atob(a),!0}catch{return!1}}let bo=z("$ZodBase64",(a,b)=>{b.pattern??(b.pattern=S),a3.init(a,b),a._zod.bag.contentEncoding="base64",a._zod.check=c=>{bn(c.value)||c.issues.push({code:"invalid_format",format:"base64",input:c.value,inst:a,continue:!b.abort})}}),bp=z("$ZodBase64URL",(a,b)=>{b.pattern??(b.pattern=T),a3.init(a,b),a._zod.bag.contentEncoding="base64url",a._zod.check=c=>{!function(a){if(!T.test(a))return!1;let b=a.replace(/[-_]/g,a=>"-"===a?"+":"/");return bn(b.padEnd(4*Math.ceil(b.length/4),"="))}(c.value)&&c.issues.push({code:"invalid_format",format:"base64url",input:c.value,inst:a,continue:!b.abort})}}),bq=z("$ZodE164",(a,b)=>{b.pattern??(b.pattern=V),a3.init(a,b)}),br=z("$ZodJWT",(a,b)=>{a3.init(a,b),a._zod.check=c=>{!function(a,b=null){try{let c=a.split(".");if(3!==c.length)return!1;let[d]=c;if(!d)return!1;let e=JSON.parse(atob(d));if("typ"in e&&e?.typ!=="JWT"||!e.alg||b&&(!("alg"in e)||e.alg!==b))return!1;return!0}catch{return!1}}(c.value,b.alg)&&c.issues.push({code:"invalid_format",format:"jwt",input:c.value,inst:a,continue:!b.abort})}}),bs=z("$ZodNumber",(a,b)=>{a1.init(a,b),a._zod.pattern=a._zod.bag.pattern??$,a._zod.parse=(c,d)=>{if(b.coerce)try{c.value=Number(c.value)}catch(a){}let e=c.value;if("number"==typeof e&&!Number.isNaN(e)&&Number.isFinite(e))return c;let f="number"==typeof e?Number.isNaN(e)?"NaN":Number.isFinite(e)?void 0:"Infinity":void 0;return c.issues.push({expected:"number",code:"invalid_type",input:e,inst:a,...f?{received:f}:{}}),c}}),bt=z("$ZodNumberFormat",(a,b)=>{aG.init(a,b),bs.init(a,b)}),bu=z("$ZodBoolean",(a,b)=>{a1.init(a,b),a._zod.pattern=_,a._zod.parse=(c,d)=>{if(b.coerce)try{c.value=!!c.value}catch(a){}let e=c.value;return"boolean"==typeof e||c.issues.push({expected:"boolean",code:"invalid_type",input:e,inst:a}),c}}),bv=z("$ZodUnknown",(a,b)=>{a1.init(a,b),a._zod.parse=a=>a}),bw=z("$ZodNever",(a,b)=>{a1.init(a,b),a._zod.parse=(b,c)=>(b.issues.push({expected:"never",code:"invalid_type",input:b.value,inst:a}),b)});function bx(a,b,c){a.issues.length&&b.issues.push(...aw(c,a.issues)),b.value[c]=a.value}let by=z("$ZodArray",(a,b)=>{a1.init(a,b),a._zod.parse=(c,d)=>{let e=c.value;if(!Array.isArray(e))return c.issues.push({expected:"array",code:"invalid_type",input:e,inst:a}),c;c.value=Array(e.length);let f=[];for(let a=0;a<e.length;a++){let g=e[a],h=b.element._zod.run({value:g,issues:[]},d);h instanceof Promise?f.push(h.then(b=>bx(b,c,a))):bx(h,c,a)}return f.length?Promise.all(f).then(()=>c):c}});function bz(a,b,c,d,e,f){let g=c in d;if(a.issues.length){if(e&&f&&!g)return;b.issues.push(...aw(c,a.issues))}if(!g&&!e){a.issues.length||b.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[c]});return}void 0===a.value?g&&(b.value[c]=void 0):b.value[c]=a.value}function bA(a){var b;let c=Object.keys(a.shape);for(let b of c)if(!a.shape?.[b]?._zod?.traits?.has("$ZodType"))throw Error(`Invalid element at key "${b}": expected a Zod schema`);let d=Object.keys(b=a.shape).filter(a=>"optional"===b[a]._zod.optin&&"optional"===b[a]._zod.optout);return{...a,keys:c,keySet:new Set(c),numKeys:c.length,optionalKeys:new Set(d)}}function bB(a,b,c,d,e,f){let g=[],h=e.keySet,i=e.catchall._zod,j=i.def.type,k="optional"===i.optin,l="optional"===i.optout;for(let e in b){if("__proto__"===e||h.has(e))continue;if("never"===j){g.push(e);continue}let f=i.run({value:b[e],issues:[]},d);f instanceof Promise?a.push(f.then(a=>bz(a,c,e,b,k,l))):bz(f,c,e,b,k,l)}return(g.length&&c.issues.push({code:"unrecognized_keys",keys:g,input:b,inst:f}),a.length)?Promise.all(a).then(()=>c):c}let bC=z("$ZodObject",(a,b)=>{let c;a1.init(a,b);let d=Object.getOwnPropertyDescriptor(b,"shape");if(!d?.get){let a=b.shape;Object.defineProperty(b,"shape",{get:()=>{let c={...a};return Object.defineProperty(b,"shape",{value:c}),c}})}let e=ae(()=>bA(b));ah(a._zod,"propValues",()=>{let a=b.shape,c={};for(let b in a){let d=a[b]._zod;if(d.values)for(let a of(c[b]??(c[b]=new Set),d.values))c[b].add(a)}return c});let f=b.catchall;a._zod.parse=(b,d)=>{c??(c=e.value);let g=b.value;if(!am(g))return b.issues.push({expected:"object",code:"invalid_type",input:g,inst:a}),b;b.value={};let h=[],i=c.shape;for(let a of c.keys){let c=i[a],e="optional"===c._zod.optin,f="optional"===c._zod.optout,j=c._zod.run({value:g[a],issues:[]},d);j instanceof Promise?h.push(j.then(c=>bz(c,b,a,g,e,f))):bz(j,b,a,g,e,f)}return f?bB(h,g,b,d,e.value,a):h.length?Promise.all(h).then(()=>b):b}}),bD=z("$ZodObjectJIT",(a,b)=>{let c,d;bC.init(a,b);let e=a._zod.parse,f=ae(()=>bA(b)),g=!C.jitless,h=g&&an.value,i=b.catchall;a._zod.parse=(j,k)=>{d??(d=f.value);let l=j.value;return am(l)?g&&h&&k?.async===!1&&!0!==k.jitless?(c||(c=(a=>{let b=new aS(["shape","payload","ctx"]),c=f.value,d=a=>{let b=ak(a);return`shape[${b}]._zod.run({ value: input[${b}], issues: [] }, ctx)`};b.write("const input = payload.value;");let e=Object.create(null),g=0;for(let a of c.keys)e[a]=`key_${g++}`;for(let f of(b.write("const newResult = {};"),c.keys)){let c=e[f],g=ak(f),h=a[f],i=h?._zod?.optin==="optional",j=h?._zod?.optout==="optional";b.write(`const ${c} = ${d(f)};`),i&&j?b.write(`
5
2
  if (${c}.issues.length) {
6
3
  if (${g} in input) {
7
4
  payload.issues = payload.issues.concat(${c}.issues.map(iss => ({
@@ -62,4 +59,7 @@ see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__
62
59
 
63
60
  `)}b.write("payload.value = newResult;"),b.write("return payload;");let h=b.compile();return(b,c)=>h(a,b,c)})(b.shape)),j=c(j,k),i)?bB([],l,j,k,d,a):j:e(j,k):(j.issues.push({expected:"object",code:"invalid_type",input:l,inst:a}),j)}});function bE(a,b,c,d){for(let c of a)if(0===c.issues.length)return b.value=c.value,b;let e=a.filter(a=>!av(a));return 1===e.length?(b.value=e[0].value,e[0]):(b.issues.push({code:"invalid_union",input:b.value,inst:c,errors:a.map(a=>a.issues.map(a=>ay(a,d,D())))}),b)}let bF=z("$ZodUnion",(a,b)=>{a1.init(a,b),ah(a._zod,"optin",()=>b.options.some(a=>"optional"===a._zod.optin)?"optional":void 0),ah(a._zod,"optout",()=>b.options.some(a=>"optional"===a._zod.optout)?"optional":void 0),ah(a._zod,"values",()=>{if(b.options.every(a=>a._zod.values))return new Set(b.options.flatMap(a=>Array.from(a._zod.values)))}),ah(a._zod,"pattern",()=>{if(b.options.every(a=>a._zod.pattern)){let a=b.options.map(a=>a._zod.pattern);return RegExp(`^(${a.map(a=>af(a.source)).join("|")})$`)}});let c=1===b.options.length?b.options[0]._zod.run:null;a._zod.parse=(d,e)=>{if(c)return c(d,e);let f=!1,g=[];for(let a of b.options){let b=a._zod.run({value:d.value,issues:[]},e);if(b instanceof Promise)g.push(b),f=!0;else{if(0===b.issues.length)return b;g.push(b)}}return f?Promise.all(g).then(b=>bE(b,d,a,e)):bE(g,d,a,e)}}),bG=z("$ZodIntersection",(a,b)=>{a1.init(a,b),a._zod.parse=(a,c)=>{let d=a.value,e=b.left._zod.run({value:d,issues:[]},c),f=b.right._zod.run({value:d,issues:[]},c);return e instanceof Promise||f instanceof Promise?Promise.all([e,f]).then(([b,c])=>bH(a,b,c)):bH(a,e,f)}});function bH(a,b,c){let d,e=new Map;for(let c of b.issues)if("unrecognized_keys"===c.code)for(let a of(d??(d=c),c.keys))e.has(a)||e.set(a,{}),e.get(a).l=!0;else a.issues.push(c);for(let b of c.issues)if("unrecognized_keys"===b.code)for(let a of b.keys)e.has(a)||e.set(a,{}),e.get(a).r=!0;else a.issues.push(b);let f=[...e].filter(([,a])=>a.l&&a.r).map(([a])=>a);if(f.length&&d&&a.issues.push({...d,keys:f}),av(a))return a;let g=function a(b,c){if(b===c||b instanceof Date&&c instanceof Date&&+b==+c)return{valid:!0,data:b};if(ao(b)&&ao(c)){let d=Object.keys(c),e=Object.keys(b).filter(a=>-1!==d.indexOf(a)),f={...b,...c};for(let d of e){let e=a(b[d],c[d]);if(!e.valid)return{valid:!1,mergeErrorPath:[d,...e.mergeErrorPath]};f[d]=e.data}return{valid:!0,data:f}}if(Array.isArray(b)&&Array.isArray(c)){if(b.length!==c.length)return{valid:!1,mergeErrorPath:[]};let d=[];for(let e=0;e<b.length;e++){let f=a(b[e],c[e]);if(!f.valid)return{valid:!1,mergeErrorPath:[e,...f.mergeErrorPath]};d.push(f.data)}return{valid:!0,data:d}}return{valid:!1,mergeErrorPath:[]}}(b.value,c.value);if(!g.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(g.mergeErrorPath)}`);return a.value=g.data,a}let bI=z("$ZodEnum",(a,b)=>{a1.init(a,b);let c=ac(b.entries),d=new Set(c);a._zod.values=d,a._zod.pattern=RegExp(`^(${c.filter(a=>aq.has(typeof a)).map(a=>"string"==typeof a?ar(a):a.toString()).join("|")})$`),a._zod.parse=(b,e)=>{let f=b.value;return d.has(f)||b.issues.push({code:"invalid_value",values:c,input:f,inst:a}),b}}),bJ=z("$ZodLiteral",(a,b)=>{if(a1.init(a,b),0===b.values.length)throw Error("Cannot create literal schema with no valid values");let c=new Set(b.values);a._zod.values=c,a._zod.pattern=RegExp(`^(${b.values.map(a=>"string"==typeof a?ar(a):a?ar(a.toString()):String(a)).join("|")})$`),a._zod.parse=(d,e)=>{let f=d.value;return c.has(f)||d.issues.push({code:"invalid_value",values:b.values,input:f,inst:a}),d}}),bK=z("$ZodTransform",(a,b)=>{a1.init(a,b),a._zod.optin="optional",a._zod.parse=(c,d)=>{if("backward"===d.direction)throw new B(a.constructor.name);let e=b.transform(c.value,c);if(d.async)return(e instanceof Promise?e:Promise.resolve(e)).then(a=>(c.value=a,c.fallback=!0,c));if(e instanceof Promise)throw new A;return c.value=e,c.fallback=!0,c}});function bL(a,b){return void 0===b&&(a.issues.length||a.fallback)?{issues:[],value:void 0}:a}let bM=z("$ZodOptional",(a,b)=>{a1.init(a,b),a._zod.optin="optional",a._zod.optout="optional",ah(a._zod,"values",()=>b.innerType._zod.values?new Set([...b.innerType._zod.values,void 0]):void 0),ah(a._zod,"pattern",()=>{let a=b.innerType._zod.pattern;return a?RegExp(`^(${af(a.source)})?$`):void 0}),a._zod.parse=(a,c)=>{if("optional"===b.innerType._zod.optin){let d=a.value,e=b.innerType._zod.run(a,c);return e instanceof Promise?e.then(a=>bL(a,d)):bL(e,d)}return void 0===a.value?a:b.innerType._zod.run(a,c)}}),bN=z("$ZodExactOptional",(a,b)=>{bM.init(a,b),ah(a._zod,"values",()=>b.innerType._zod.values),ah(a._zod,"pattern",()=>b.innerType._zod.pattern),a._zod.parse=(a,c)=>b.innerType._zod.run(a,c)}),bO=z("$ZodNullable",(a,b)=>{a1.init(a,b),ah(a._zod,"optin",()=>b.innerType._zod.optin),ah(a._zod,"optout",()=>b.innerType._zod.optout),ah(a._zod,"pattern",()=>{let a=b.innerType._zod.pattern;return a?RegExp(`^(${af(a.source)}|null)$`):void 0}),ah(a._zod,"values",()=>b.innerType._zod.values?new Set([...b.innerType._zod.values,null]):void 0),a._zod.parse=(a,c)=>null===a.value?a:b.innerType._zod.run(a,c)}),bP=z("$ZodDefault",(a,b)=>{a1.init(a,b),a._zod.optin="optional",ah(a._zod,"values",()=>b.innerType._zod.values),a._zod.parse=(a,c)=>{if("backward"===c.direction)return b.innerType._zod.run(a,c);if(void 0===a.value)return a.value=b.defaultValue,a;let d=b.innerType._zod.run(a,c);return d instanceof Promise?d.then(a=>bQ(a,b)):bQ(d,b)}});function bQ(a,b){return void 0===a.value&&(a.value=b.defaultValue),a}let bR=z("$ZodPrefault",(a,b)=>{a1.init(a,b),a._zod.optin="optional",ah(a._zod,"values",()=>b.innerType._zod.values),a._zod.parse=(a,c)=>("backward"===c.direction||void 0===a.value&&(a.value=b.defaultValue),b.innerType._zod.run(a,c))}),bS=z("$ZodNonOptional",(a,b)=>{a1.init(a,b),ah(a._zod,"values",()=>{let a=b.innerType._zod.values;return a?new Set([...a].filter(a=>void 0!==a)):void 0}),a._zod.parse=(c,d)=>{let e=b.innerType._zod.run(c,d);return e instanceof Promise?e.then(b=>bT(b,a)):bT(e,a)}});function bT(a,b){return a.issues.length||void 0!==a.value||a.issues.push({code:"invalid_type",expected:"nonoptional",input:a.value,inst:b}),a}let bU=z("$ZodCatch",(a,b)=>{a1.init(a,b),a._zod.optin="optional",ah(a._zod,"optout",()=>b.innerType._zod.optout),ah(a._zod,"values",()=>b.innerType._zod.values),a._zod.parse=(a,c)=>{if("backward"===c.direction)return b.innerType._zod.run(a,c);let d=b.innerType._zod.run(a,c);return d instanceof Promise?d.then(d=>(a.value=d.value,d.issues.length&&(a.value=b.catchValue({...a,error:{issues:d.issues.map(a=>ay(a,c,D()))},input:a.value}),a.issues=[],a.fallback=!0),a)):(a.value=d.value,d.issues.length&&(a.value=b.catchValue({...a,error:{issues:d.issues.map(a=>ay(a,c,D()))},input:a.value}),a.issues=[],a.fallback=!0),a)}}),bV=z("$ZodPipe",(a,b)=>{a1.init(a,b),ah(a._zod,"values",()=>b.in._zod.values),ah(a._zod,"optin",()=>b.in._zod.optin),ah(a._zod,"optout",()=>b.out._zod.optout),ah(a._zod,"propValues",()=>b.in._zod.propValues),a._zod.parse=(a,c)=>{if("backward"===c.direction){let d=b.out._zod.run(a,c);return d instanceof Promise?d.then(a=>bW(a,b.in,c)):bW(d,b.in,c)}let d=b.in._zod.run(a,c);return d instanceof Promise?d.then(a=>bW(a,b.out,c)):bW(d,b.out,c)}});function bW(a,b,c){return a.issues.length?(a.aborted=!0,a):b._zod.run({value:a.value,issues:a.issues,fallback:a.fallback},c)}let bX=z("$ZodReadonly",(a,b)=>{a1.init(a,b),ah(a._zod,"propValues",()=>b.innerType._zod.propValues),ah(a._zod,"values",()=>b.innerType._zod.values),ah(a._zod,"optin",()=>b.innerType?._zod?.optin),ah(a._zod,"optout",()=>b.innerType?._zod?.optout),a._zod.parse=(a,c)=>{if("backward"===c.direction)return b.innerType._zod.run(a,c);let d=b.innerType._zod.run(a,c);return d instanceof Promise?d.then(bY):bY(d)}});function bY(a){return a.value=Object.freeze(a.value),a}let bZ=z("$ZodCustom",(a,b)=>{aB.init(a,b),a1.init(a,b),a._zod.parse=(a,b)=>a,a._zod.check=c=>{let d=c.value,e=b.fn(d);if(e instanceof Promise)return e.then(b=>b$(b,c,d,a));b$(e,c,d,a)}});function b$(a,b,c,d){if(!a){let a={code:"custom",input:c,inst:d,path:[...d._zod.def.path??[]],continue:!d._zod.def.abort};d._zod.def.params&&(a.params=d._zod.def.params),b.issues.push(aA(a))}}Symbol("ZodOutput"),Symbol("ZodInput");class b_{constructor(){this._map=new WeakMap,this._idmap=new Map}add(a,...b){let c=b[0];return this._map.set(a,c),c&&"object"==typeof c&&"id"in c&&this._idmap.set(c.id,a),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(a){let b=this._map.get(a);return b&&"object"==typeof b&&"id"in b&&this._idmap.delete(b.id),this._map.delete(a),this}get(a){let b=a._zod.parent;if(b){let c={...this.get(b)??{}};delete c.id;let d={...c,...this._map.get(a)};return Object.keys(d).length?d:void 0}return this._map.get(a)}has(a){return this._map.has(a)}}(e=globalThis).__zod_globalRegistry??(e.__zod_globalRegistry=new b_);let b0=globalThis.__zod_globalRegistry;function b1(a,b){return new a({type:"string",format:"guid",check:"string_format",abort:!1,...at(b)})}function b2(a,b){return new aD({check:"less_than",...at(b),value:a,inclusive:!1})}function b3(a,b){return new aD({check:"less_than",...at(b),value:a,inclusive:!0})}function b4(a,b){return new aE({check:"greater_than",...at(b),value:a,inclusive:!1})}function b5(a,b){return new aE({check:"greater_than",...at(b),value:a,inclusive:!0})}function b6(a,b){return new aF({check:"multiple_of",...at(b),value:a})}function b7(a,b){return new aH({check:"max_length",...at(b),maximum:a})}function b8(a,b){return new aI({check:"min_length",...at(b),minimum:a})}function b9(a,b){return new aJ({check:"length_equals",...at(b),length:a})}function ca(a){return new aR({check:"overwrite",tx:a})}function cb(a){let b=a?.target??"draft-2020-12";return"draft-4"===b&&(b="draft-04"),"draft-7"===b&&(b="draft-07"),{processors:a.processors??{},metadataRegistry:a?.metadata??b0,target:b,unrepresentable:a?.unrepresentable??"throw",override:a?.override??(()=>{}),io:a?.io??"output",counter:0,seen:new Map,cycles:a?.cycles??"ref",reused:a?.reused??"inline",external:a?.external??void 0}}function cc(a,b,c={path:[],schemaPath:[]}){var d;let e=a._zod.def,f=b.seen.get(a);if(f)return f.count++,c.schemaPath.includes(a)&&(f.cycle=c.path),f.schema;let g={schema:{},count:1,cycle:void 0,path:c.path};b.seen.set(a,g);let h=a._zod.toJSONSchema?.();if(h)g.schema=h;else{let d={...c,schemaPath:[...c.schemaPath,a],path:c.path};if(a._zod.processJSONSchema)a._zod.processJSONSchema(b,g.schema,d);else{let c=g.schema,f=b.processors[e.type];if(!f)throw Error(`[toJSONSchema]: Non-representable type encountered: ${e.type}`);f(a,b,c,d)}let f=a._zod.parent;f&&(g.ref||(g.ref=f),cc(f,b,d),b.seen.get(f).isParent=!0)}let i=b.metadataRegistry.get(a);return i&&Object.assign(g.schema,i),"input"===b.io&&function a(b,c){let d=c??{seen:new Set};if(d.seen.has(b))return!1;d.seen.add(b);let e=b._zod.def;if("transform"===e.type)return!0;if("array"===e.type)return a(e.element,d);if("set"===e.type)return a(e.valueType,d);if("lazy"===e.type)return a(e.getter(),d);if("promise"===e.type||"optional"===e.type||"nonoptional"===e.type||"nullable"===e.type||"readonly"===e.type||"default"===e.type||"prefault"===e.type)return a(e.innerType,d);if("intersection"===e.type)return a(e.left,d)||a(e.right,d);if("record"===e.type||"map"===e.type)return a(e.keyType,d)||a(e.valueType,d);if("pipe"===e.type)return!!b._zod.traits.has("$ZodCodec")||a(e.in,d)||a(e.out,d);if("object"===e.type){for(let b in e.shape)if(a(e.shape[b],d))return!0;return!1}if("union"===e.type){for(let b of e.options)if(a(b,d))return!0;return!1}if("tuple"===e.type){for(let b of e.items)if(a(b,d))return!0;if(e.rest&&a(e.rest,d))return!0}return!1}(a)&&(delete g.schema.examples,delete g.schema.default),"input"===b.io&&"_prefault"in g.schema&&((d=g.schema).default??(d.default=g.schema._prefault)),delete g.schema._prefault,b.seen.get(a).schema}function cd(a,b){let c=a.seen.get(b);if(!c)throw Error("Unprocessed schema. This is a bug in Zod.");let d=new Map;for(let b of a.seen.entries()){let c=a.metadataRegistry.get(b[0])?.id;if(c){let a=d.get(c);if(a&&a!==b[0])throw Error(`Duplicate schema id "${c}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);d.set(c,b[0])}}let e=b=>{if(b[1].schema.$ref)return;let d=b[1],{ref:e,defId:f}=(b=>{let d="draft-2020-12"===a.target?"$defs":"definitions";if(a.external){let c=a.external.registry.get(b[0])?.id,e=a.external.uri??(a=>a);if(c)return{ref:e(c)};let f=b[1].defId??b[1].schema.id??`schema${a.counter++}`;return b[1].defId=f,{defId:f,ref:`${e("__shared")}#/${d}/${f}`}}if(b[1]===c)return{ref:"#"};let e=`#/${d}/`,f=b[1].schema.id??`__schema${a.counter++}`;return{defId:f,ref:e+f}})(b);d.def={...d.schema},f&&(d.defId=f);let g=d.schema;for(let a in g)delete g[a];g.$ref=e};if("throw"===a.cycles)for(let b of a.seen.entries()){let a=b[1];if(a.cycle)throw Error(`Cycle detected: #/${a.cycle?.join("/")}/<root>
64
61
 
65
- Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let c of a.seen.entries()){let d=c[1];if(b===c[0]){e(c);continue}if(a.external){let d=a.external.registry.get(c[0])?.id;if(b!==c[0]&&d){e(c);continue}}if(a.metadataRegistry.get(c[0])?.id||d.cycle||d.count>1&&"ref"===a.reused){e(c);continue}}}function ce(a,b){let c=a.seen.get(b);if(!c)throw Error("Unprocessed schema. This is a bug in Zod.");let d=b=>{let c=a.seen.get(b);if(null===c.ref)return;let e=c.def??c.schema,f={...e},g=c.ref;if(c.ref=null,g){d(g);let c=a.seen.get(g),h=c.schema;if(h.$ref&&("draft-07"===a.target||"draft-04"===a.target||"openapi-3.0"===a.target)?(e.allOf=e.allOf??[],e.allOf.push(h)):Object.assign(e,h),Object.assign(e,f),b._zod.parent===g)for(let a in e)"$ref"!==a&&"allOf"!==a&&(a in f||delete e[a]);if(h.$ref&&c.def)for(let a in e)"$ref"!==a&&"allOf"!==a&&a in c.def&&JSON.stringify(e[a])===JSON.stringify(c.def[a])&&delete e[a]}let h=b._zod.parent;if(h&&h!==g){d(h);let b=a.seen.get(h);if(b?.schema.$ref&&(e.$ref=b.schema.$ref,b.def))for(let a in e)"$ref"!==a&&"allOf"!==a&&a in b.def&&JSON.stringify(e[a])===JSON.stringify(b.def[a])&&delete e[a]}a.override({zodSchema:b,jsonSchema:e,path:c.path??[]})};for(let b of[...a.seen.entries()].reverse())d(b[0]);let e={};if("draft-2020-12"===a.target?e.$schema="https://json-schema.org/draft/2020-12/schema":"draft-07"===a.target?e.$schema="http://json-schema.org/draft-07/schema#":"draft-04"===a.target?e.$schema="http://json-schema.org/draft-04/schema#":a.target,a.external?.uri){let c=a.external.registry.get(b)?.id;if(!c)throw Error("Schema is missing an `id` property");e.$id=a.external.uri(c)}Object.assign(e,c.def??c.schema);let f=a.metadataRegistry.get(b)?.id;void 0!==f&&e.id===f&&delete e.id;let g=a.external?.defs??{};for(let b of a.seen.entries()){let a=b[1];a.def&&a.defId&&(a.def.id===a.defId&&delete a.def.id,g[a.defId]=a.def)}a.external||Object.keys(g).length>0&&("draft-2020-12"===a.target?e.$defs=g:e.definitions=g);try{let c=JSON.parse(JSON.stringify(e));return Object.defineProperty(c,"~standard",{value:{...b["~standard"],jsonSchema:{input:cf(b,"input",a.processors),output:cf(b,"output",a.processors)}},enumerable:!1,writable:!1}),c}catch(a){throw Error("Error converting schema to JSON.")}}let cf=(a,b,c={})=>d=>{let{libraryOptions:e,target:f}=d??{},g=cb({...e??{},target:f,io:b,processors:c});return cc(a,g),cd(g,a),ce(g,a)},cg={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},ch=(a,b,c,d)=>{let e=a._zod.def;cc(e.innerType,b,d),b.seen.get(a).ref=e.innerType},ci=z("ZodISODateTime",(a,b)=>{bf.init(a,b),cF.init(a,b)}),cj=z("ZodISODate",(a,b)=>{bg.init(a,b),cF.init(a,b)}),ck=z("ZodISOTime",(a,b)=>{bh.init(a,b),cF.init(a,b)}),cl=z("ZodISODuration",(a,b)=>{bi.init(a,b),cF.init(a,b)}),cm=z("ZodError",(a,b)=>{aU.init(a,b),a.name="ZodError",Object.defineProperties(a,{format:{value:b=>(function(a,b=a=>a.message){let c={_errors:[]},d=(a,e=[])=>{for(let f of a.issues)if("invalid_union"===f.code&&f.errors.length)f.errors.map(a=>d({issues:a},[...e,...f.path]));else if("invalid_key"===f.code)d({issues:f.issues},[...e,...f.path]);else if("invalid_element"===f.code)d({issues:f.issues},[...e,...f.path]);else{let a=[...e,...f.path];if(0===a.length)c._errors.push(b(f));else{let d=c,e=0;for(;e<a.length;){let c=a[e];e===a.length-1?(d[c]=d[c]||{_errors:[]},d[c]._errors.push(b(f))):d[c]=d[c]||{_errors:[]},d=d[c],e++}}}};return d(a),c})(a,b)},flatten:{value:b=>(function(a,b=a=>a.message){let c={},d=[];for(let e of a.issues)e.path.length>0?(c[e.path[0]]=c[e.path[0]]||[],c[e.path[0]].push(b(e))):d.push(b(e));return{formErrors:d,fieldErrors:c}})(a,b)},addIssue:{value:b=>{a.issues.push(b),a.message=JSON.stringify(a.issues,ad,2)}},addIssues:{value:b=>{a.issues.push(...b),a.message=JSON.stringify(a.issues,ad,2)}},isEmpty:{get:()=>0===a.issues.length}})},{Parent:Error}),cn=aW(cm),co=aX(cm),cp=aY(cm),cq=a$(cm),cr=(a,b,c)=>{let d=c?{...c,direction:"backward"}:{direction:"backward"};return aW(cm)(a,b,d)},cs=(a,b,c)=>aW(cm)(a,b,c),ct=async(a,b,c)=>{let d=c?{...c,direction:"backward"}:{direction:"backward"};return aX(cm)(a,b,d)},cu=async(a,b,c)=>aX(cm)(a,b,c),cv=(a,b,c)=>{let d=c?{...c,direction:"backward"}:{direction:"backward"};return aY(cm)(a,b,d)},cw=(a,b,c)=>aY(cm)(a,b,c),cx=async(a,b,c)=>{let d=c?{...c,direction:"backward"}:{direction:"backward"};return a$(cm)(a,b,d)},cy=async(a,b,c)=>a$(cm)(a,b,c),cz=new WeakMap;function cA(a,b,c){let d=Object.getPrototypeOf(a),e=cz.get(d);if(e||(e=new Set,cz.set(d,e)),!e.has(b))for(let a in e.add(b),c){let b=c[a];Object.defineProperty(d,a,{configurable:!0,enumerable:!1,get(){let c=b.bind(this);return Object.defineProperty(this,a,{configurable:!0,writable:!0,enumerable:!0,value:c}),c},set(b){Object.defineProperty(this,a,{configurable:!0,writable:!0,enumerable:!0,value:b})}})}}let cB=z("ZodType",(a,b)=>(a1.init(a,b),Object.assign(a["~standard"],{jsonSchema:{input:cf(a,"input"),output:cf(a,"output")}}),a.toJSONSchema=((a,b={})=>c=>{let d=cb({...c,processors:b});return cc(a,d),cd(d,a),ce(d,a)})(a,{}),a.def=b,a.type=b.type,Object.defineProperty(a,"_def",{value:b}),a.parse=(b,c)=>cn(a,b,c,{callee:a.parse}),a.safeParse=(b,c)=>cp(a,b,c),a.parseAsync=async(b,c)=>co(a,b,c,{callee:a.parseAsync}),a.safeParseAsync=async(b,c)=>cq(a,b,c),a.spa=a.safeParseAsync,a.encode=(b,c)=>cr(a,b,c),a.decode=(b,c)=>cs(a,b,c),a.encodeAsync=async(b,c)=>ct(a,b,c),a.decodeAsync=async(b,c)=>cu(a,b,c),a.safeEncode=(b,c)=>cv(a,b,c),a.safeDecode=(b,c)=>cw(a,b,c),a.safeEncodeAsync=async(b,c)=>cx(a,b,c),a.safeDecodeAsync=async(b,c)=>cy(a,b,c),cA(a,"ZodType",{check(...a){let b=this.def;return this.clone(aj(b,{checks:[...b.checks??[],...a.map(a=>"function"==typeof a?{_zod:{check:a,def:{check:"custom"},onattach:[]}}:a)]}),{parent:!0})},with(...a){return this.check(...a)},clone(a,b){return as(this,a,b)},brand(){return this},register(a,b){return a.add(this,b),this},refine(a,b){return this.check(function(a,b={}){return new dt({type:"custom",check:"custom",fn:a,...at(b)})}(a,b))},superRefine(a,b){return this.check(function(a,b){let c=function(a,b){let c=new aB({check:"custom",...at(b)});return c._zod.check=a,c}(b=>(b.addIssue=a=>{"string"==typeof a?b.issues.push(aA(a,b.value,c._zod.def)):(a.fatal&&(a.continue=!1),a.code??(a.code="custom"),a.input??(a.input=b.value),a.inst??(a.inst=c),a.continue??(a.continue=!c._zod.def.abort),b.issues.push(aA(a)))},a(b.value,b)),b);return c}(a,b))},overwrite(a){return this.check(ca(a))},optional(){return dh(this)},exactOptional(){var a;return a=this,new di({type:"optional",innerType:a})},nullable(){return dk(this)},nullish(){return dh(dk(this))},nonoptional(a){var b;return b=this,new dn({type:"nonoptional",innerType:b,...at(a)})},array(){return c7(this)},or(a){return new da({type:"union",options:[this,a],...at(void 0)})},and(a){var b;return b=this,new db({type:"intersection",left:b,right:a})},transform(a){return dr(this,new df({type:"transform",transform:a}))},default(a){var b,c;return b=this,c=a,new dl({type:"default",innerType:b,get defaultValue(){return"function"==typeof c?c():ap(c)}})},prefault(a){var b,c;return b=this,c=a,new dm({type:"prefault",innerType:b,get defaultValue(){return"function"==typeof c?c():ap(c)}})},catch(a){var b,c;return b=this,new dp({type:"catch",innerType:b,catchValue:"function"==typeof(c=a)?c:()=>c})},pipe(a){return dr(this,a)},readonly(){var a;return a=this,new ds({type:"readonly",innerType:a})},describe(a){let b=this.clone();return b0.add(b,{description:a}),b},meta(...a){if(0===a.length)return b0.get(this);let b=this.clone();return b0.add(b,a[0]),b},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(a){return a(this)}}),Object.defineProperty(a,"description",{get:()=>b0.get(a)?.description,configurable:!0}),a)),cC=z("_ZodString",(a,b)=>{a2.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(b,c,d)=>((a,b,c,d)=>{c.type="string";let{minimum:e,maximum:f,format:g,patterns:h,contentEncoding:i}=a._zod.bag;if("number"==typeof e&&(c.minLength=e),"number"==typeof f&&(c.maxLength=f),g&&(c.format=cg[g]??g,""===c.format&&delete c.format,"time"===g&&delete c.format),i&&(c.contentEncoding=i),h&&h.size>0){let a=[...h];1===a.length?c.pattern=a[0].source:a.length>1&&(c.allOf=[...a.map(a=>({..."draft-07"===b.target||"draft-04"===b.target||"openapi-3.0"===b.target?{type:"string"}:{},pattern:a.source}))])}})(a,b,c,0);let c=a._zod.bag;a.format=c.format??null,a.minLength=c.minimum??null,a.maxLength=c.maximum??null,cA(a,"_ZodString",{regex(...a){return this.check(function(a,b){return new aL({check:"string_format",format:"regex",...at(b),pattern:a})}(...a))},includes(...a){return this.check(function(a,b){return new aO({check:"string_format",format:"includes",...at(b),includes:a})}(...a))},startsWith(...a){return this.check(function(a,b){return new aP({check:"string_format",format:"starts_with",...at(b),prefix:a})}(...a))},endsWith(...a){return this.check(function(a,b){return new aQ({check:"string_format",format:"ends_with",...at(b),suffix:a})}(...a))},min(...a){return this.check(b8(...a))},max(...a){return this.check(b7(...a))},length(...a){return this.check(b9(...a))},nonempty(...a){return this.check(b8(1,...a))},lowercase(a){return this.check(new aM({check:"string_format",format:"lowercase",...at(a)}))},uppercase(a){return this.check(new aN({check:"string_format",format:"uppercase",...at(a)}))},trim(){return this.check(ca(a=>a.trim()))},normalize(...a){return this.check(function(a){return ca(b=>b.normalize(a))}(...a))},toLowerCase(){return this.check(ca(a=>a.toLowerCase()))},toUpperCase(){return this.check(ca(a=>a.toUpperCase()))},slugify(){return this.check(ca(a=>a.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")))}})}),cD=z("ZodString",(a,b)=>{a2.init(a,b),cC.init(a,b),a.email=b=>a.check(new cG({type:"string",format:"email",check:"string_format",abort:!1,...at(b)})),a.url=b=>a.check(new cJ({type:"string",format:"url",check:"string_format",abort:!1,...at(b)})),a.jwt=b=>a.check(new cY({type:"string",format:"jwt",check:"string_format",abort:!1,...at(b)})),a.emoji=b=>a.check(new cK({type:"string",format:"emoji",check:"string_format",abort:!1,...at(b)})),a.guid=b=>a.check(b1(cH,b)),a.uuid=b=>a.check(new cI({type:"string",format:"uuid",check:"string_format",abort:!1,...at(b)})),a.uuidv4=b=>a.check(new cI({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...at(b)})),a.uuidv6=b=>a.check(new cI({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...at(b)})),a.uuidv7=b=>a.check(new cI({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...at(b)})),a.nanoid=b=>a.check(new cL({type:"string",format:"nanoid",check:"string_format",abort:!1,...at(b)})),a.guid=b=>a.check(b1(cH,b)),a.cuid=b=>a.check(new cM({type:"string",format:"cuid",check:"string_format",abort:!1,...at(b)})),a.cuid2=b=>a.check(new cN({type:"string",format:"cuid2",check:"string_format",abort:!1,...at(b)})),a.ulid=b=>a.check(new cO({type:"string",format:"ulid",check:"string_format",abort:!1,...at(b)})),a.base64=b=>a.check(new cV({type:"string",format:"base64",check:"string_format",abort:!1,...at(b)})),a.base64url=b=>a.check(new cW({type:"string",format:"base64url",check:"string_format",abort:!1,...at(b)})),a.xid=b=>a.check(new cP({type:"string",format:"xid",check:"string_format",abort:!1,...at(b)})),a.ksuid=b=>a.check(new cQ({type:"string",format:"ksuid",check:"string_format",abort:!1,...at(b)})),a.ipv4=b=>a.check(new cR({type:"string",format:"ipv4",check:"string_format",abort:!1,...at(b)})),a.ipv6=b=>a.check(new cS({type:"string",format:"ipv6",check:"string_format",abort:!1,...at(b)})),a.cidrv4=b=>a.check(new cT({type:"string",format:"cidrv4",check:"string_format",abort:!1,...at(b)})),a.cidrv6=b=>a.check(new cU({type:"string",format:"cidrv6",check:"string_format",abort:!1,...at(b)})),a.e164=b=>a.check(new cX({type:"string",format:"e164",check:"string_format",abort:!1,...at(b)})),a.datetime=b=>a.check(new ci({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...at(b)})),a.date=b=>a.check(new cj({type:"string",format:"date",check:"string_format",...at(b)})),a.time=b=>a.check(new ck({type:"string",format:"time",check:"string_format",precision:null,...at(b)})),a.duration=b=>a.check(new cl({type:"string",format:"duration",check:"string_format",...at(b)}))});function cE(a){return new cD({type:"string",...at(a)})}let cF=z("ZodStringFormat",(a,b)=>{a3.init(a,b),cC.init(a,b)}),cG=z("ZodEmail",(a,b)=>{a6.init(a,b),cF.init(a,b)}),cH=z("ZodGUID",(a,b)=>{a4.init(a,b),cF.init(a,b)}),cI=z("ZodUUID",(a,b)=>{a5.init(a,b),cF.init(a,b)}),cJ=z("ZodURL",(a,b)=>{a7.init(a,b),cF.init(a,b)}),cK=z("ZodEmoji",(a,b)=>{a8.init(a,b),cF.init(a,b)}),cL=z("ZodNanoID",(a,b)=>{a9.init(a,b),cF.init(a,b)}),cM=z("ZodCUID",(a,b)=>{ba.init(a,b),cF.init(a,b)}),cN=z("ZodCUID2",(a,b)=>{bb.init(a,b),cF.init(a,b)}),cO=z("ZodULID",(a,b)=>{bc.init(a,b),cF.init(a,b)}),cP=z("ZodXID",(a,b)=>{bd.init(a,b),cF.init(a,b)}),cQ=z("ZodKSUID",(a,b)=>{be.init(a,b),cF.init(a,b)}),cR=z("ZodIPv4",(a,b)=>{bj.init(a,b),cF.init(a,b)}),cS=z("ZodIPv6",(a,b)=>{bk.init(a,b),cF.init(a,b)}),cT=z("ZodCIDRv4",(a,b)=>{bl.init(a,b),cF.init(a,b)}),cU=z("ZodCIDRv6",(a,b)=>{bm.init(a,b),cF.init(a,b)}),cV=z("ZodBase64",(a,b)=>{bo.init(a,b),cF.init(a,b)}),cW=z("ZodBase64URL",(a,b)=>{bp.init(a,b),cF.init(a,b)}),cX=z("ZodE164",(a,b)=>{bq.init(a,b),cF.init(a,b)}),cY=z("ZodJWT",(a,b)=>{br.init(a,b),cF.init(a,b)}),cZ=z("ZodNumber",(a,b)=>{bs.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(b,c,d)=>((a,b,c,d)=>{let{minimum:e,maximum:f,format:g,multipleOf:h,exclusiveMaximum:i,exclusiveMinimum:j}=a._zod.bag;"string"==typeof g&&g.includes("int")?c.type="integer":c.type="number";let k="number"==typeof j&&j>=(e??-1/0),l="number"==typeof i&&i<=(f??1/0),m="draft-04"===b.target||"openapi-3.0"===b.target;k?m?(c.minimum=j,c.exclusiveMinimum=!0):c.exclusiveMinimum=j:"number"==typeof e&&(c.minimum=e),l?m?(c.maximum=i,c.exclusiveMaximum=!0):c.exclusiveMaximum=i:"number"==typeof f&&(c.maximum=f),"number"==typeof h&&(c.multipleOf=h)})(a,b,c,0),cA(a,"ZodNumber",{gt(a,b){return this.check(b4(a,b))},gte(a,b){return this.check(b5(a,b))},min(a,b){return this.check(b5(a,b))},lt(a,b){return this.check(b2(a,b))},lte(a,b){return this.check(b3(a,b))},max(a,b){return this.check(b3(a,b))},int(a){return this.check(c0(a))},safe(a){return this.check(c0(a))},positive(a){return this.check(b4(0,a))},nonnegative(a){return this.check(b5(0,a))},negative(a){return this.check(b2(0,a))},nonpositive(a){return this.check(b3(0,a))},multipleOf(a,b){return this.check(b6(a,b))},step(a,b){return this.check(b6(a,b))},finite(){return this}});let c=a._zod.bag;a.minValue=Math.max(c.minimum??-1/0,c.exclusiveMinimum??-1/0)??null,a.maxValue=Math.min(c.maximum??1/0,c.exclusiveMaximum??1/0)??null,a.isInt=(c.format??"").includes("int")||Number.isSafeInteger(c.multipleOf??.5),a.isFinite=!0,a.format=c.format??null});function c$(a){return new cZ({type:"number",checks:[],...at(a)})}let c_=z("ZodNumberFormat",(a,b)=>{bt.init(a,b),cZ.init(a,b)});function c0(a){return new c_({type:"number",check:"number_format",abort:!1,format:"safeint",...at(a)})}let c1=z("ZodBoolean",(a,b)=>{bu.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(a,b,c)=>{b.type="boolean"}});function c2(a){return new c1({type:"boolean",...at(a)})}let c3=z("ZodUnknown",(a,b)=>{bv.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(a,b,c)=>{}});function c4(){return new c3({type:"unknown"})}let c5=z("ZodNever",(a,b)=>{bw.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(a,b,c)=>{b.not={}}}),c6=z("ZodArray",(a,b)=>{by.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(b,c,d)=>((a,b,c,d)=>{let e=a._zod.def,{minimum:f,maximum:g}=a._zod.bag;"number"==typeof f&&(c.minItems=f),"number"==typeof g&&(c.maxItems=g),c.type="array",c.items=cc(e.element,b,{...d,path:[...d.path,"items"]})})(a,b,c,d),a.element=b.element,cA(a,"ZodArray",{min(a,b){return this.check(b8(a,b))},nonempty(a){return this.check(b8(1,a))},max(a,b){return this.check(b7(a,b))},length(a,b){return this.check(b9(a,b))},unwrap(){return this.element}})});function c7(a,b){return new c6({type:"array",element:a,...at(b)})}let c8=z("ZodObject",(a,b)=>{bD.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(b,c,d)=>((a,b,c,d)=>{let e=a._zod.def;c.type="object",c.properties={};let f=e.shape;for(let a in f)c.properties[a]=cc(f[a],b,{...d,path:[...d.path,"properties",a]});let g=new Set([...new Set(Object.keys(f))].filter(a=>{let c=e.shape[a]._zod;return"input"===b.io?void 0===c.optin:void 0===c.optout}));g.size>0&&(c.required=Array.from(g)),e.catchall?._zod.def.type==="never"?c.additionalProperties=!1:e.catchall?e.catchall&&(c.additionalProperties=cc(e.catchall,b,{...d,path:[...d.path,"additionalProperties"]})):"output"===b.io&&(c.additionalProperties=!1)})(a,b,c,d),ah(a,"shape",()=>b.shape),cA(a,"ZodObject",{keyof(){return dd(Object.keys(this._zod.def.shape))},catchall(a){return this.clone({...this._zod.def,catchall:a})},passthrough(){return this.clone({...this._zod.def,catchall:c4()})},loose(){return this.clone({...this._zod.def,catchall:c4()})},strict(){return this.clone({...this._zod.def,catchall:new c5({type:"never",...at(void 0)})})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(a){return function(a,b){if(!ao(b))throw Error("Invalid input to extend: expected a plain object");let c=a._zod.def.checks;if(c&&c.length>0){let c=a._zod.def.shape;for(let a in b)if(void 0!==Object.getOwnPropertyDescriptor(c,a))throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let d=aj(a._zod.def,{get shape(){let c={...a._zod.def.shape,...b};return ai(this,"shape",c),c}});return as(a,d)}(this,a)},safeExtend(a){var b=this;if(!ao(a))throw Error("Invalid input to safeExtend: expected a plain object");let c=aj(b._zod.def,{get shape(){let c={...b._zod.def.shape,...a};return ai(this,"shape",c),c}});return as(b,c)},merge(a){var b=this;if(b._zod.def.checks?.length)throw Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");let c=aj(b._zod.def,{get shape(){let c={...b._zod.def.shape,...a._zod.def.shape};return ai(this,"shape",c),c},get catchall(){return a._zod.def.catchall},checks:a._zod.def.checks??[]});return as(b,c)},pick(a){return function(a,b){let c=a._zod.def,d=c.checks;if(d&&d.length>0)throw Error(".pick() cannot be used on object schemas containing refinements");let e=aj(a._zod.def,{get shape(){let a={};for(let d in b){if(!(d in c.shape))throw Error(`Unrecognized key: "${d}"`);b[d]&&(a[d]=c.shape[d])}return ai(this,"shape",a),a},checks:[]});return as(a,e)}(this,a)},omit(a){return function(a,b){let c=a._zod.def,d=c.checks;if(d&&d.length>0)throw Error(".omit() cannot be used on object schemas containing refinements");let e=aj(a._zod.def,{get shape(){let d={...a._zod.def.shape};for(let a in b){if(!(a in c.shape))throw Error(`Unrecognized key: "${a}"`);b[a]&&delete d[a]}return ai(this,"shape",d),d},checks:[]});return as(a,e)}(this,a)},partial(...a){return function(a,b,c){let d=b._zod.def.checks;if(d&&d.length>0)throw Error(".partial() cannot be used on object schemas containing refinements");let e=aj(b._zod.def,{get shape(){let d=b._zod.def.shape,e={...d};if(c)for(let b in c){if(!(b in d))throw Error(`Unrecognized key: "${b}"`);c[b]&&(e[b]=a?new a({type:"optional",innerType:d[b]}):d[b])}else for(let b in d)e[b]=a?new a({type:"optional",innerType:d[b]}):d[b];return ai(this,"shape",e),e},checks:[]});return as(b,e)}(dg,this,a[0])},required(...a){return function(a,b,c){let d=aj(b._zod.def,{get shape(){let d=b._zod.def.shape,e={...d};if(c)for(let b in c){if(!(b in e))throw Error(`Unrecognized key: "${b}"`);c[b]&&(e[b]=new a({type:"nonoptional",innerType:d[b]}))}else for(let b in d)e[b]=new a({type:"nonoptional",innerType:d[b]});return ai(this,"shape",e),e}});return as(b,d)}(dn,this,a[0])}})});function c9(a,b){return new c8({type:"object",shape:a??{},...at(b)})}let da=z("ZodUnion",(a,b)=>{bF.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(b,c,d)=>((a,b,c,d)=>{let e=a._zod.def,f=!1===e.inclusive,g=e.options.map((a,c)=>cc(a,b,{...d,path:[...d.path,f?"oneOf":"anyOf",c]}));f?c.oneOf=g:c.anyOf=g})(a,b,c,d),a.options=b.options}),db=z("ZodIntersection",(a,b)=>{bG.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(b,c,d)=>((a,b,c,d)=>{let e=a._zod.def,f=cc(e.left,b,{...d,path:[...d.path,"allOf",0]}),g=cc(e.right,b,{...d,path:[...d.path,"allOf",1]}),h=a=>"allOf"in a&&1===Object.keys(a).length;c.allOf=[...h(f)?f.allOf:[f],...h(g)?g.allOf:[g]]})(a,b,c,d)}),dc=z("ZodEnum",(a,b)=>{bI.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(b,c,d)=>((a,b,c,d)=>{let e=ac(a._zod.def.entries);e.every(a=>"number"==typeof a)&&(c.type="number"),e.every(a=>"string"==typeof a)&&(c.type="string"),c.enum=e})(a,0,c,0),a.enum=b.entries,a.options=Object.values(b.entries);let c=new Set(Object.keys(b.entries));a.extract=(a,d)=>{let e={};for(let d of a)if(c.has(d))e[d]=b.entries[d];else throw Error(`Key ${d} not found in enum`);return new dc({...b,checks:[],...at(d),entries:e})},a.exclude=(a,d)=>{let e={...b.entries};for(let b of a)if(c.has(b))delete e[b];else throw Error(`Key ${b} not found in enum`);return new dc({...b,checks:[],...at(d),entries:e})}});function dd(a,b){return new dc({type:"enum",entries:Array.isArray(a)?Object.fromEntries(a.map(a=>[a,a])):a,...at(b)})}let de=z("ZodLiteral",(a,b)=>{bJ.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(b,c,d)=>((a,b,c,d)=>{let e=a._zod.def,f=[];for(let a of e.values)if(void 0===a){if("throw"===b.unrepresentable)throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if("bigint"==typeof a)if("throw"===b.unrepresentable)throw Error("BigInt literals cannot be represented in JSON Schema");else f.push(Number(a));else f.push(a);if(0===f.length);else if(1===f.length){let a=f[0];c.type=null===a?"null":typeof a,"draft-04"===b.target||"openapi-3.0"===b.target?c.enum=[a]:c.const=a}else f.every(a=>"number"==typeof a)&&(c.type="number"),f.every(a=>"string"==typeof a)&&(c.type="string"),f.every(a=>"boolean"==typeof a)&&(c.type="boolean"),f.every(a=>null===a)&&(c.type="null"),c.enum=f})(a,b,c,0),a.values=new Set(b.values),Object.defineProperty(a,"value",{get(){if(b.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return b.values[0]}})}),df=z("ZodTransform",(a,b)=>{bK.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(a,b,c)=>((a,b,c,d)=>{if("throw"===b.unrepresentable)throw Error("Transforms cannot be represented in JSON Schema")})(0,a,0,0),a._zod.parse=(c,d)=>{if("backward"===d.direction)throw new B(a.constructor.name);c.addIssue=d=>{"string"==typeof d?c.issues.push(aA(d,c.value,b)):(d.fatal&&(d.continue=!1),d.code??(d.code="custom"),d.input??(d.input=c.value),d.inst??(d.inst=a),c.issues.push(aA(d)))};let e=b.transform(c.value,c);return e instanceof Promise?e.then(a=>(c.value=a,c.fallback=!0,c)):(c.value=e,c.fallback=!0,c)}}),dg=z("ZodOptional",(a,b)=>{bM.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(b,c,d)=>ch(a,b,c,d),a.unwrap=()=>a._zod.def.innerType});function dh(a){return new dg({type:"optional",innerType:a})}let di=z("ZodExactOptional",(a,b)=>{bN.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(b,c,d)=>ch(a,b,c,d),a.unwrap=()=>a._zod.def.innerType}),dj=z("ZodNullable",(a,b)=>{bO.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(b,c,d)=>((a,b,c,d)=>{let e=a._zod.def,f=cc(e.innerType,b,d),g=b.seen.get(a);"openapi-3.0"===b.target?(g.ref=e.innerType,c.nullable=!0):c.anyOf=[f,{type:"null"}]})(a,b,c,d),a.unwrap=()=>a._zod.def.innerType});function dk(a){return new dj({type:"nullable",innerType:a})}let dl=z("ZodDefault",(a,b)=>{bP.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(b,c,d)=>((a,b,c,d)=>{let e=a._zod.def;cc(e.innerType,b,d),b.seen.get(a).ref=e.innerType,c.default=JSON.parse(JSON.stringify(e.defaultValue))})(a,b,c,d),a.unwrap=()=>a._zod.def.innerType,a.removeDefault=a.unwrap}),dm=z("ZodPrefault",(a,b)=>{bR.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(b,c,d)=>((a,b,c,d)=>{let e=a._zod.def;cc(e.innerType,b,d),b.seen.get(a).ref=e.innerType,"input"===b.io&&(c._prefault=JSON.parse(JSON.stringify(e.defaultValue)))})(a,b,c,d),a.unwrap=()=>a._zod.def.innerType}),dn=z("ZodNonOptional",(a,b)=>{bS.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(b,c,d)=>((a,b,c,d)=>{let e=a._zod.def;cc(e.innerType,b,d),b.seen.get(a).ref=e.innerType})(a,b,0,d),a.unwrap=()=>a._zod.def.innerType}),dp=z("ZodCatch",(a,b)=>{bU.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(b,c,d)=>((a,b,c,d)=>{let e,f=a._zod.def;cc(f.innerType,b,d),b.seen.get(a).ref=f.innerType;try{e=f.catchValue(void 0)}catch{throw Error("Dynamic catch values are not supported in JSON Schema")}c.default=e})(a,b,c,d),a.unwrap=()=>a._zod.def.innerType,a.removeCatch=a.unwrap}),dq=z("ZodPipe",(a,b)=>{bV.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(b,c,d)=>((a,b,c,d)=>{let e=a._zod.def,f=e.in._zod.traits.has("$ZodTransform"),g="input"===b.io?f?e.out:e.in:e.out;cc(g,b,d),b.seen.get(a).ref=g})(a,b,0,d),a.in=b.in,a.out=b.out});function dr(a,b){return new dq({type:"pipe",in:a,out:b})}let ds=z("ZodReadonly",(a,b)=>{bX.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(b,c,d)=>((a,b,c,d)=>{let e=a._zod.def;cc(e.innerType,b,d),b.seen.get(a).ref=e.innerType,c.readOnly=!0})(a,b,c,d),a.unwrap=()=>a._zod.def.innerType}),dt=z("ZodCustom",(a,b)=>{bZ.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(a,b,c)=>((a,b,c,d)=>{if("throw"===b.unrepresentable)throw Error("Custom types cannot be represented in JSON Schema")})(0,a,0,0)}),du=["analyze","chat","rag","embed","quick"],dv={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."}},dw=c9({"claude-code":c9({enabled:c2().default(!0)}),codex:c9({enabled:c2().default(!0)}),ollama:c9({enabled:c2().default(!0),baseUrl:cE().url().default("http://localhost:11434")})}),dx=c9({harness:dd(["claude-code","codex","ollama"]),model:cE().min(1),allowedTools:c7(cE()).default([])}),dy=["english","русский","espa\xf1ol","deutsch","fran\xe7ais","中文","日本語"],dz=["auto","jpeg","webp","original"],dA=c9({enabled:c2().default(!0),maxDimension:c$().int().min(256).max(8192).default(2e3),quality:c$().int().min(40).max(100).default(85),format:dd(dz).default("auto")});c9({version:(function(a,b){return new de({type:"literal",values:Array.isArray(1)?1:[a],...at(void 0)})})(1).default(1),language:cE().min(1).default("english"),onboardedAt:cE().optional(),userName:cE().default(""),timezone:cE().default(""),uiMode:dd(["simple","advanced"]).default("simple"),imageProcessing:dA.default({enabled:!0,maxDimension:2e3,quality:85,format:"auto"}),harnesses:dw.default({"claude-code":{enabled:!0},codex:{enabled:!0},ollama:{enabled:!0,baseUrl:"http://localhost:11434"}}),assignments:c9({analyze:dx,chat:dx,rag:dx,embed:dx,quick:dx}).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:c9({enabled:c7(cE()).default(["google","yandex","apple","osm"])}).default({enabled:["google","yandex","apple","osm"]}),ngrok:c9({authtoken:cE().default(""),apiKey:cE().default(""),domain:cE().default(""),port:c$().int().min(1).max(65535).default(3210)}).default({authtoken:"",apiKey:"",domain:"",port:3210})}).parse({});var dB=c(69552);let dC=(0,l.A)("GitMerge",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M6 21V9a9 9 0 0 0 9 9",key:"7kw0sc"}]]),dD=(0,l.A)("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);var dE=c(45477),dF=c(16551),dG=c(3265);dG.callServer,dG.findSourceMapURL,dG.callServer,dG.findSourceMapURL;let dH=(0,dG.createServerReference)("40783a95564e3df6c2c79ecfdb5befa2bf3be6de26",dG.callServer,void 0,dG.findSourceMapURL,"mergeTemplateAction"),dI=(0,dG.createServerReference)("60f0f6d0a20a184b4a52f981712e41ee63ff612017",dG.callServer,void 0,dG.findSourceMapURL,"saveTemplateAction"),dJ=(0,dG.createServerReference)("40d453946b3b40cf8158efe6466bd2fb52080606ed",dG.callServer,void 0,dG.findSourceMapURL,"resetTemplateAction"),dK={body:"",defaultBody:"",missingSections:[],path:"",loading:!0,saving:!1,resetting:!1,merging:!1,variables:[]};function dL(){let[a,b]=(0,g.useState)([]),[c,d]=(0,g.useState)(null),[e,h]=(0,g.useState)({}),[,k]=(0,g.useTransition)(),[,l]=(0,g.useTransition)();return 0===a.length?(0,f.jsx)(p.Zp,{children:(0,f.jsxs)(p.Wu,{className:"py-6 text-sm text-muted-foreground",children:[(0,f.jsx)(i.A,{className:"inline h-4 w-4 animate-spin mr-2"})," Loading templates…"]})}):(0,f.jsxs)(dF.tU,{value:c??a[0].name,onValueChange:d,children:[(0,f.jsx)(dF.j7,{children:a.map(a=>(0,f.jsx)(dF.Xi,{value:a.name,children:a.label},a.name))}),a.map(a=>{let b=e[a.name]??dK;return(0,f.jsx)(dF.av,{value:a.name,className:"mt-3",children:(0,f.jsx)(p.Zp,{children:(0,f.jsxs)(p.Wu,{className:"pt-6 space-y-3",children:[b.missingSections.length>0&&(0,f.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,f.jsx)(dB.A,{className:"h-4 w-4 mt-0.5 shrink-0"}),(0,f.jsxs)("div",{className:"flex-1 space-y-1",children:[(0,f.jsxs)("div",{className:"font-medium",children:["Шаблон по умолчанию обновился (",b.missingSections.length," ","новых секций)"]}),(0,f.jsxs)("div",{className:"text-amber-800/80",children:["Отсутствует в твоём файле:"," ",b.missingSections.map((a,c)=>(0,f.jsxs)("span",{children:[(0,f.jsxs)("code",{className:"font-mono",children:["## ",a]}),c<b.missingSections.length-1?", ":""]},a))]})]}),(0,f.jsxs)(o.$,{size:"sm",variant:"outline",onClick:()=>{var b;e[b=a.name]&&(h(a=>({...a,[b]:{...a[b]??dK,merging:!0}})),(async()=>{let a=await dH(b);if(!a.ok){n.oR.error(`Merge failed: ${a.error}`),h(a=>({...a,[b]:{...a[b]??dK,merging:!1}}));return}n.oR.success(0===a.appended.length?"Уже актуально":`Добавлено ${a.appended.length} секций: ${a.appended.join(", ")}`),h(c=>({...c,[b]:{...c[b]??dK,body:a.body,missingSections:[],merging:!1}}))})())},disabled:b.merging||b.saving||b.resetting,className:"border-amber-400 hover:bg-amber-100 shrink-0",children:[b.merging?(0,f.jsx)(i.A,{className:"mr-1 h-3.5 w-3.5 animate-spin"}):(0,f.jsx)(dC,{className:"mr-1 h-3.5 w-3.5"}),"Добавить недостающее"]})]}),(0,f.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-xs",children:[(0,f.jsx)("span",{className:"text-muted-foreground",children:"Variables:"}),b.variables.map(a=>(0,f.jsx)(x.E,{variant:"outline",className:"font-mono",children:`{{${a}}}`},a))]}),(0,f.jsx)(dE.T,{value:b.body,onChange:b=>{var c,d;return c=a.name,d=b.target.value,void h(a=>{let b=a[c]??dK;return{...a,[c]:{...b,body:d}}})},rows:18,className:"font-mono text-xs",disabled:b.loading,placeholder:b.loading?"loading…":""}),(0,f.jsxs)("div",{className:"flex items-center justify-between",children:[(0,f.jsx)("div",{className:"text-xs text-muted-foreground font-mono truncate",children:b.path}),(0,f.jsxs)("div",{className:"flex items-center gap-2",children:[(0,f.jsxs)(o.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>{var b;return b=a.name,void(confirm(`Reset ${b}.md to the default template?`)&&l(async()=>{let a=e[b]??dK;h(c=>({...c,[b]:{...a,resetting:!0}}));let c=await dJ(b);h(a=>{let d=a[b]??dK;return{...a,[b]:{...d,resetting:!1,...c.ok&&c.body?{body:c.body}:{}}}}),c.ok?n.oR.success(`${b}.md reset`):n.oR.error(`Reset failed: ${c.error}`)}))},disabled:b.resetting||b.saving,children:[(0,f.jsx)(dD,{className:`mr-1 h-4 w-4 ${b.resetting?"animate-spin":""}`}),"Reset to default"]}),(0,f.jsx)(o.$,{type:"button",size:"sm",onClick:()=>{var b;return b=a.name,void k(async()=>{let a=e[b];if(!a)return;h(c=>({...c,[b]:{...a,saving:!0}}));let c=await dI(b,a.body);h(a=>{let c=a[b]??dK;return{...a,[b]:{...c,saving:!1}}}),c.ok?n.oR.success(`${b}.md saved`):n.oR.error(`Save failed: ${c.error}`)})},disabled:b.saving||b.loading,children:b.saving?(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(i.A,{className:"mr-1 h-4 w-4 animate-spin"})," ","Saving…"]}):(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(j.A,{className:"mr-1 h-4 w-4"})," Save template"]})})]})]})]})})},a.name)})]})}var dM=c(87671);let dN=(0,l.A)("WandSparkles",[["path",{d:"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72",key:"ul74o6"}],["path",{d:"m14 7 3 3",key:"1r5n42"}],["path",{d:"M5 6v4",key:"ilb8ba"}],["path",{d:"M19 14v4",key:"blhpug"}],["path",{d:"M10 2v2",key:"7u0qdc"}],["path",{d:"M7 8H3",key:"zfb6yr"}],["path",{d:"M21 16h-4",key:"1cnmox"}],["path",{d:"M11 3H9",key:"1obp7u"}]]);var dO=c(14471),dP=c(97338),dQ=c(30515),dR=c(66979);let dS=(0,dG.createServerReference)("4084031b7cda8d9195b4cd955d316112559c7cbf34",dG.callServer,void 0,dG.findSourceMapURL,"startMcpSetupAction"),dT=(0,dG.createServerReference)("000a0be797e54ad8923f1a41ae97ec91836352dc88",dG.callServer,void 0,dG.findSourceMapURL,"listMcpServersAction"),dU=(0,dG.createServerReference)("40e6bcebbb2be2804866be07cc05e56ba89bacde4d",dG.callServer,void 0,dG.findSourceMapURL,"removeMcpServerAction"),dV=(0,dG.createServerReference)("40150a07c207939536776efe9789d1a7e3b81cb028",dG.callServer,void 0,dG.findSourceMapURL,"testMcpServerAction"),dW=(0,dG.createServerReference)("4009c865d324196dd047dce582cdbae58b934ef4d7",dG.callServer,void 0,dG.findSourceMapURL,"addMcpServerAction");function dX(){let[a,b]=(0,g.useState)([]),[c,d]=(0,g.useTransition)(),[e,h]=(0,g.useState)(!1),[j,k]=(0,g.useState)(""),[l,m]=(0,g.useTransition)(),r=(0,dM.useRouter)(),s=()=>{let a=j.trim();if(!a)return void n.oR.error("Опиши что подключить");m(async()=>{let b=await dS(a);if(!b.ok)return void n.oR.error(b.error);n.oR.success("Открываю чат с агентом-установщиком"),k(""),r.push(`/roots/${b.rootId}/chat/${b.topicId}`)})},t=()=>{d(async()=>{let a=await dT();if(!a.ok)return void n.oR.error(a.error);b(a.servers)})},u=async a=>{if(!confirm(`Удалить MCP-сервер "${a}"?`))return;let b=await dU(a);if(!b.ok)return void n.oR.error(b.error??"fail");n.oR.success("Удалён"),t()};return(0,f.jsxs)("div",{className:"space-y-3",children:[(0,f.jsx)(p.Zp,{className:"reflex-gradient p-[2px]",children:(0,f.jsxs)("div",{className:"rounded-[7px] bg-background/95 p-4 space-y-2",children:[(0,f.jsxs)("div",{className:"flex items-center gap-2 text-sm font-medium",children:[(0,f.jsx)(dN,{className:"h-4 w-4"}),(0,f.jsx)("span",{children:"Подключить через AI-мастер"})]}),(0,f.jsx)("p",{className:"text-xs text-muted-foreground",children:"Скажи человеческим языком (\xabподключи google calendar\xbb, \xabдобавь github mcp\xbb). Агент сам найдёт нужный пакет, объяснит где взять токен/выйти на OAuth, и выдаст готовую карточку — тебе останется только её одобрить."}),(0,f.jsxs)("div",{className:"flex gap-2",children:[(0,f.jsx)(q.p,{value:j,onChange:a=>k(a.target.value),onKeyDown:a=>{"Enter"!==a.key||a.shiftKey||(a.preventDefault(),s())},placeholder:"Например: подключи google calendar",disabled:l,className:"flex-1"}),(0,f.jsxs)(o.$,{type:"button",onClick:s,disabled:l||!j.trim(),className:"gap-2",children:[l?(0,f.jsx)(i.A,{className:"h-4 w-4 animate-spin"}):(0,f.jsx)(dB.A,{className:"h-4 w-4"}),"Запустить"]})]}),(0,f.jsx)("p",{className:"text-[10px] text-muted-foreground",children:"Откроется чат в твоём первом проекте — там агент задаст уточнения и предложит конфиг. Конфиг сохранится в реестр после твоего \xabЗарегистрировать\xbb."})]})}),c&&0===a.length?(0,f.jsx)(p.Zp,{children:(0,f.jsxs)(p.Wu,{className:"py-6 text-sm text-muted-foreground",children:[(0,f.jsx)(i.A,{className:"inline h-4 w-4 animate-spin mr-2"})," Loading…"]})}):0===a.length?(0,f.jsx)(p.Zp,{className:"border-dashed",children:(0,f.jsxs)(p.Wu,{className:"py-6 text-sm text-muted-foreground text-center",children:["Пока ни одного MCP-сервера. Добавь свой первый — он станет доступен утилитам (через ",(0,f.jsx)("code",{children:"manifest.mcpServers"}),") и чату."]})}):(0,f.jsx)("div",{className:"space-y-2",children:a.map(a=>(0,f.jsx)(p.Zp,{children:(0,f.jsxs)(p.Wu,{className:"py-3 px-4 flex items-center gap-3",children:[(0,f.jsx)(dO.A,{className:"h-4 w-4 text-muted-foreground"}),(0,f.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,f.jsxs)("div",{className:"flex items-center gap-2",children:[(0,f.jsx)("span",{className:"font-mono text-sm",children:a.id}),(0,f.jsx)(x.E,{variant:"outline",className:"text-[10px]",children:a.config.transport}),(0,f.jsx)("span",{className:"text-sm text-muted-foreground truncate",children:a.label})]}),(0,f.jsx)("div",{className:"text-[11px] text-muted-foreground font-mono truncate",children:"stdio"===a.config.transport?`${a.config.command} ${(a.config.args??[]).join(" ")}`:a.config.url}),a.description&&(0,f.jsx)("div",{className:"text-[11px] text-muted-foreground truncate",children:a.description})]}),(0,f.jsx)(o.$,{type:"button",size:"icon",variant:"ghost",onClick:()=>void u(a.id),title:"Удалить",className:"h-8 w-8",children:(0,f.jsx)(dP.A,{className:"h-3.5 w-3.5"})})]})},a.id))}),e?(0,f.jsx)(dY,{existingIds:a.map(a=>a.id),onCancel:()=>h(!1),onAdded:()=>{h(!1),t()}}):(0,f.jsxs)(o.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>h(!0),className:"gap-2 text-muted-foreground",children:[(0,f.jsx)(dQ.A,{className:"h-4 w-4"}),"Добавить вручную"]})]})}function dY({existingIds:a,onCancel:b,onAdded:c}){let[d,e]=(0,g.useState)(""),[h,j]=(0,g.useState)(""),[l,m]=(0,g.useState)(""),[s,t]=(0,g.useState)("stdio"),[u,v]=(0,g.useState)(""),[w,x]=(0,g.useState)(""),[z,A]=(0,g.useState)(""),[B,C]=(0,g.useState)(""),[D,E]=(0,g.useState)(""),[F,G]=(0,g.useState)(null),[H,I]=(0,g.useTransition)(),[J,K]=(0,g.useTransition)(),L=()=>{if("stdio"===s){if(!u.trim())return{ok:!1,error:"command required"};try{let a=z.trim()?JSON.parse(z):{};return{ok:!0,config:{transport:"stdio",command:u.trim(),args:w.trim()?w.trim().split(/\s+/).filter(Boolean):[],env:a}}}catch{return{ok:!1,error:"env must be JSON object"}}}if(!B.trim())return{ok:!1,error:"URL required"};try{let a=D.trim()?JSON.parse(D):{};return{ok:!0,config:{transport:s,url:B.trim(),headers:a}}}catch{return{ok:!1,error:"headers must be JSON object"}}};return(0,f.jsx)(p.Zp,{children:(0,f.jsxs)(p.Wu,{className:"pt-5 space-y-3",children:[(0,f.jsxs)("div",{className:"flex items-center justify-between",children:[(0,f.jsxs)("h3",{className:"text-sm font-medium flex items-center gap-2",children:[(0,f.jsx)(dO.A,{className:"h-4 w-4"})," Новый MCP-сервер"]}),(0,f.jsx)(o.$,{type:"button",size:"icon",variant:"ghost",onClick:b,className:"h-7 w-7",children:(0,f.jsx)(dR.A,{className:"h-3.5 w-3.5"})})]}),(0,f.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,f.jsxs)("div",{children:[(0,f.jsx)(r.J,{className:"text-xs",children:"ID (kebab-case)"}),(0,f.jsx)(q.p,{value:d,onChange:a=>e(a.target.value),placeholder:"github",className:"font-mono text-sm"})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)(r.J,{className:"text-xs",children:"Label"}),(0,f.jsx)(q.p,{value:h,onChange:a=>j(a.target.value),placeholder:"GitHub",className:"text-sm"})]})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)(r.J,{className:"text-xs",children:"Description (optional)"}),(0,f.jsx)(q.p,{value:l,onChange:a=>m(a.target.value),placeholder:"Доступ к репам, issues, PR-ам.",className:"text-sm"})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)(r.J,{className:"text-xs",children:"Transport"}),(0,f.jsxs)(y.l6,{value:s,onValueChange:a=>t(a),children:[(0,f.jsx)(y.bq,{className:"w-48",children:(0,f.jsx)(y.yv,{})}),(0,f.jsxs)(y.gC,{children:[(0,f.jsx)(y.eb,{value:"stdio",children:"stdio (subprocess)"}),(0,f.jsx)(y.eb,{value:"http",children:"HTTP (Streamable)"}),(0,f.jsx)(y.eb,{value:"sse",children:"SSE (legacy)"})]})]})]}),"stdio"===s?(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("div",{children:[(0,f.jsx)(r.J,{className:"text-xs",children:"Command"}),(0,f.jsx)(q.p,{value:u,onChange:a=>v(a.target.value),placeholder:"npx",className:"font-mono text-sm"})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)(r.J,{className:"text-xs",children:"Args"}),(0,f.jsx)(q.p,{value:w,onChange:a=>x(a.target.value),placeholder:"-y @modelcontextprotocol/server-github",className:"font-mono text-sm"})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)(r.J,{className:"text-xs",children:"Env (JSON, optional)"}),(0,f.jsx)(dE.T,{value:z,onChange:a=>A(a.target.value),placeholder:'{"GITHUB_TOKEN": "ghp_…"}',className:"font-mono text-xs",rows:3})]})]}):(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("div",{children:[(0,f.jsx)(r.J,{className:"text-xs",children:"URL"}),(0,f.jsx)(q.p,{value:B,onChange:a=>C(a.target.value),placeholder:"https://example.com/mcp",className:"font-mono text-sm"})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)(r.J,{className:"text-xs",children:"Headers (JSON, optional)"}),(0,f.jsx)(dE.T,{value:D,onChange:a=>E(a.target.value),placeholder:'{"Authorization": "Bearer …"}',className:"font-mono text-xs",rows:3})]})]}),F&&(0,f.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,f.jsx)(k.A,{className:"h-3.5 w-3.5"}),(0,f.jsxs)("span",{children:["Подключился к"," ",(0,f.jsx)("span",{className:"font-mono",children:F.serverName??"(anonymous)"})," ","\xb7 ",F.toolsCount," tools"]})]}),(0,f.jsxs)("div",{className:"flex justify-end gap-2 pt-1",children:[(0,f.jsxs)(o.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>{let a=L();if(!a.ok)return void n.oR.error(a.error);G(null),I(async()=>{let b=await dV(a.config);if(!b.ok)return void n.oR.error("Connect failed: "+b.error);G({...b.serverName?{serverName:b.serverName}:{},toolsCount:b.tools.length}),h||j(b.serverName??d)})},disabled:H,children:[H?(0,f.jsx)(i.A,{className:"mr-1 h-3.5 w-3.5 animate-spin"}):null,"Проверить"]}),(0,f.jsxs)(o.$,{type:"button",size:"sm",onClick:()=>{let b=d.trim().toLowerCase();if(!b)return void n.oR.error("id required");if(a.includes(b))return void n.oR.error(`id "${b}" already used`);if(!h.trim())return void n.oR.error("label required");let e=L();if(!e.ok)return void n.oR.error(e.error);K(async()=>{let a=await dW({id:b,label:h.trim(),description:l.trim(),config:e.config});if(!a.ok)return void n.oR.error(a.error);n.oR.success(`MCP-сервер "${b}" добавлен`),c()})},disabled:J||!F,children:[J?(0,f.jsx)(i.A,{className:"mr-1 h-3.5 w-3.5 animate-spin"}):null,"Сохранить"]})]}),!F&&(0,f.jsx)("p",{className:"text-[11px] text-muted-foreground",children:"Сначала \xabПроверить\xbb чтобы убедиться, что сервер запускается."})]})})}var dZ=c(96705),d$=c(12619),d_=c(58405),d0=c(74868),d1=c(65177);let d2=(0,l.A)("Unlink",[["path",{d:"m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71",key:"yqzxt4"}],["path",{d:"m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71",key:"4qinb0"}],["line",{x1:"8",x2:"8",y1:"2",y2:"5",key:"1041cp"}],["line",{x1:"2",x2:"5",y1:"8",y2:"8",key:"14m1p5"}],["line",{x1:"16",x2:"16",y1:"19",y2:"22",key:"rzdirn"}],["line",{x1:"19",x2:"22",y1:"16",y2:"16",key:"ox905f"}]]);var d3=c(72293),d4=c(30587),d5=c(60909),d6=c(36256),d7=c(26429);let d8=(0,dG.createServerReference)("40812bbb3ae7151cca55ae636201a36059b80b43c1",dG.callServer,void 0,dG.findSourceMapURL,"probeOAuthAction"),d9=(0,dG.createServerReference)("40e207674f6889cbdfe631e1ccdc6ef5f2d4cfd67e",dG.callServer,void 0,dG.findSourceMapURL,"disconnectOAuthAction"),ea=(0,dG.createServerReference)("40fdd245f212c95b203223ec223c02cdc16789521b",dG.callServer,void 0,dG.findSourceMapURL,"deleteOAuthClientAction"),eb=(0,dG.createServerReference)("40809a53941ea7f39534737148255eba3a5efa2c6a",dG.callServer,void 0,dG.findSourceMapURL,"removeCustomOAuthProviderAction"),ec=(0,dG.createServerReference)("40da24e8b6ef8a66a05907d28bd647117e40e20547",dG.callServer,void 0,dG.findSourceMapURL,"addCustomOAuthProviderAction");function ed(){let[a,b]=(0,g.useState)([]),[c,d]=(0,g.useTransition)(),[e,h]=(0,g.useState)(!1),j=()=>{d(async()=>{let a=await (0,d4.o)();if(!a.ok)return void n.oR.error(a.error);b(a.statuses)})};return c&&0===a.length?(0,f.jsx)(p.Zp,{children:(0,f.jsxs)(p.Wu,{className:"py-6 text-sm text-muted-foreground",children:[(0,f.jsx)(i.A,{className:"inline h-4 w-4 animate-spin mr-2"})," Loading…"]})}):(0,f.jsxs)("div",{className:"space-y-2",children:[a.map(a=>(0,f.jsx)(ee,{status:a,onChanged:j},a.id)),e?(0,f.jsx)(ef,{existingIds:a.map(a=>a.id),onCancel:()=>h(!1),onAdded:()=>{h(!1),j()}}):(0,f.jsxs)(o.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>h(!0),className:"gap-2 text-muted-foreground",children:[(0,f.jsx)(dQ.A,{className:"h-4 w-4"}),"Добавить кастомный provider"]})]})}function ee({status:a,onChanged:b}){let[c,d]=(0,g.useState)(!1),[e,h]=(0,g.useState)(null),[k,l]=(0,g.useState)([]),[m,s]=(0,g.useState)(""),[t,u]=(0,g.useState)(""),[v,w]=(0,g.useState)(""),[y,z]=(0,g.useTransition)(),[A,B]=(0,g.useTransition)(),[C,D]=(0,g.useTransition)(),E=async()=>{if(!confirm(`Удалить сохранённые токены для ${a.label}?`))return;let c=await d9(a.id);if(!c.ok)return void n.oR.error(c.error);n.oR.success("Disconnected"),b()},F=async()=>{if(!confirm(`Удалить весь OAuth-конфиг для ${a.label} (client_id, secret и токены)?`))return;let c=await ea(a.id);if(!c.ok)return void n.oR.error(c.error);n.oR.success("Forgotten"),h(null),s(""),w(""),b()};return(0,f.jsx)(p.Zp,{children:(0,f.jsxs)(p.Wu,{className:"py-3 px-4",children:[(0,f.jsxs)("div",{className:"flex items-center gap-3",children:[(0,f.jsx)(dZ.A,{className:"h-4 w-4 text-muted-foreground shrink-0"}),(0,f.jsx)("div",{className:"flex-1 min-w-0",children:(0,f.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,f.jsx)("span",{className:"text-sm font-medium",children:a.label}),(0,f.jsx)("span",{className:"font-mono text-[10px] text-muted-foreground",children:a.id}),"user"===a.origin&&(0,f.jsx)(x.E,{variant:"outline",className:"text-[10px]",children:"custom"}),a.hasClient?a.hasTokens?(0,f.jsxs)(x.E,{variant:"secondary",className:"gap-1",children:[(0,f.jsx)(d$.A,{className:"h-3 w-3"})," авторизован"]}):(0,f.jsx)(x.E,{variant:"outline",className:"border-amber-400 text-amber-700",children:"готов к авторизации"}):(0,f.jsx)(x.E,{variant:"outline",children:"не настроен"}),a.hasTokens&&a.expiresAt&&(0,f.jsxs)("span",{className:"text-[10px] text-muted-foreground",children:["истекает"," ",new Date(a.expiresAt).toLocaleTimeString()]})]})}),(0,f.jsxs)(o.$,{type:"button",size:"sm",variant:"ghost",onClick:()=>d(a=>!a),className:"gap-1",children:[(0,f.jsx)(d_.A,{className:`h-3.5 w-3.5 transition-transform ${c?"rotate-180":""}`}),c?"Свернуть":"Настроить"]})]}),c&&(0,f.jsxs)("div",{className:"mt-4 pl-7 space-y-3 border-l-2 ml-1.5",children:[a.setupHint&&(0,f.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,f.jsx)(d0.A,{className:"h-3.5 w-3.5 mt-0.5 shrink-0"}),(0,f.jsx)("span",{children:a.setupHint})]}),(0,f.jsxs)("a",{href:a.consoleUrl,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1 text-xs text-violet-700 hover:underline",children:[(0,f.jsx)(d1.A,{className:"h-3 w-3"}),"Открыть консоль ",a.label]}),a.setupSteps&&a.setupSteps.length>0&&(0,f.jsxs)("div",{className:"rounded border border-violet-200 bg-violet-50/30 p-3",children:[(0,f.jsx)("div",{className:"text-[10px] uppercase tracking-wider text-muted-foreground mb-2",children:"Пошагово"}),(0,f.jsx)(d3.O,{steps:a.setupSteps})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)(r.J,{className:"text-xs",children:"Client ID"}),(0,f.jsx)(q.p,{value:m,onChange:a=>s(a.target.value),placeholder:"123456789-xxxxx.apps.googleusercontent.com",className:"font-mono text-xs h-8"})]}),(0,f.jsxs)("div",{children:[(0,f.jsxs)(r.J,{className:"text-xs",children:["Client secret",e?.hasSecret&&(0,f.jsx)("span",{className:"ml-2 text-muted-foreground",children:"(сохранён, оставь пустым чтобы не менять)"})]}),(0,f.jsx)(q.p,{type:"password",value:t,onChange:a=>u(a.target.value),placeholder:e?.hasSecret?"••••":"GOCSPX-…",className:"font-mono text-xs h-8"})]}),(0,f.jsxs)("div",{children:[(0,f.jsxs)(r.J,{className:"text-xs",children:["Scopes"," ",(0,f.jsxs)("span",{className:"text-muted-foreground",children:["(по умолчанию: ",k.join(" ")||"—",")"]})]}),(0,f.jsx)(q.p,{value:v,onChange:a=>w(a.target.value),placeholder:k.join(" "),className:"font-mono text-xs h-8"})]}),(0,f.jsxs)("div",{className:"flex flex-wrap gap-2 pt-1",children:[(0,f.jsxs)(o.$,{type:"button",size:"sm",onClick:()=>{z(async()=>{let c=v.trim().split(/[\s,]+/).filter(a=>a.length>0),d=await (0,d6.S)({provider:a.id,clientId:m,...t?{clientSecret:t}:{},...c.length>0?{scopes:c}:{}});if(!d.ok)return void n.oR.error(d.error);n.oR.success("Client config saved"),u(""),b();let e=await (0,d5.J)(a.id);e.ok&&h(e.client)})},disabled:y||!m.trim(),children:[y?(0,f.jsx)(i.A,{className:"mr-1 h-3.5 w-3.5 animate-spin"}):(0,f.jsx)(j.A,{className:"mr-1 h-3.5 w-3.5"}),"Сохранить"]}),(0,f.jsxs)(o.$,{type:"button",size:"sm",variant:"outline",onClick:()=>{B(async()=>{let c=await (0,d7.T)(a.id);if(!c.ok)return void n.oR.error(c.error);window.open(c.authorizeUrl,"reflex-oauth","width=600,height=720,noopener=no")||window.open(c.authorizeUrl,"_blank","noopener");let d=Date.now(),e=async()=>{if(Date.now()-d>3e5)return void n.oR.error("Authorization timed out");let c=await (0,d4.o)();if(c.ok){let d=c.statuses.find(b=>b.id===a.id);if(d?.hasTokens&&!a.hasTokens){n.oR.success("Authorized"),b();return}}setTimeout(()=>void e(),1500)};e()})},disabled:A||!e,className:"gap-1",children:[A?(0,f.jsx)(i.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,f.jsx)(d1.A,{className:"h-3.5 w-3.5"}),a.hasTokens?"Re-authorize":"Authorize"]}),a.hasTokens&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)(o.$,{type:"button",size:"sm",variant:"outline",onClick:()=>{D(async()=>{let b=await d8(a.id);if(!b.ok)return void n.oR.error(b.error??"probe failed");n.oR.success("Access token живой")})},disabled:C,children:[C&&(0,f.jsx)(i.A,{className:"mr-1 h-3.5 w-3.5 animate-spin"}),(0,f.jsx)(dO.A,{className:"mr-1 h-3.5 w-3.5"})," Проверить токен"]}),(0,f.jsxs)(o.$,{type:"button",size:"sm",variant:"ghost",onClick:E,children:[(0,f.jsx)(d2,{className:"mr-1 h-3.5 w-3.5"}),"Disconnect"]})]}),e&&(0,f.jsxs)(o.$,{type:"button",size:"sm",variant:"ghost",onClick:F,className:"text-muted-foreground",children:[(0,f.jsx)(dD,{className:"mr-1 h-3.5 w-3.5"}),"Forget client"]}),"user"===a.origin&&(0,f.jsxs)(o.$,{type:"button",size:"sm",variant:"ghost",className:"text-destructive ml-auto",onClick:async()=>{if(!confirm(`Удалить custom provider "${a.id}" полностью (вместе с client + tokens)?`))return;let c=await eb(a.id);if(!c.ok)return void n.oR.error(c.error);await ea(a.id),n.oR.success("Provider удалён"),b()},children:[(0,f.jsx)(dP.A,{className:"mr-1 h-3.5 w-3.5"}),"Удалить provider"]})]}),(0,f.jsxs)("p",{className:"text-[10px] text-muted-foreground",children:["Используй ",(0,f.jsxs)("code",{className:"font-mono",children:["$oauth:",a.id]})," в env/headers любого MCP-сервера — Reflex подставит свежий access_token при каждом вызове (с авто-refresh'ем)."]})]})]})})}function ef({existingIds:a,onCancel:b,onAdded:c}){let[d,e]=(0,g.useState)(""),[h,j]=(0,g.useState)(""),[k,l]=(0,g.useState)(""),[m,s]=(0,g.useState)(""),[t,u]=(0,g.useState)(""),[v,w]=(0,g.useState)(""),[x,y]=(0,g.useState)(""),[z,A]=(0,g.useState)(!0),[B,C]=(0,g.useState)(!0),[D,E]=(0,g.useState)(!0),[F,G]=(0,g.useState)(""),[H,I]=(0,g.useTransition)();return(0,f.jsx)(p.Zp,{children:(0,f.jsxs)(p.Wu,{className:"pt-5 space-y-3",children:[(0,f.jsxs)("div",{className:"flex items-center justify-between",children:[(0,f.jsxs)("h3",{className:"text-sm font-medium flex items-center gap-2",children:[(0,f.jsx)(dQ.A,{className:"h-4 w-4"})," Кастомный OAuth provider"]}),(0,f.jsx)(o.$,{type:"button",size:"icon",variant:"ghost",onClick:b,className:"h-7 w-7",children:(0,f.jsx)(dR.A,{className:"h-3.5 w-3.5"})})]}),(0,f.jsxs)("p",{className:"text-[11px] text-muted-foreground",children:["Любой OAuth 2.0 сервис со стандартным Authorization Code flow. Redirect URI:"," ",(0,f.jsx)("code",{className:"font-mono",children:"http://localhost:3210/api/oauth/callback"}),"."]}),(0,f.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,f.jsxs)("div",{children:[(0,f.jsx)(r.J,{className:"text-xs",children:"ID (kebab-case)"}),(0,f.jsx)(q.p,{value:d,onChange:a=>e(a.target.value),placeholder:"dropbox",className:"font-mono text-sm h-8"})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)(r.J,{className:"text-xs",children:"Label"}),(0,f.jsx)(q.p,{value:h,onChange:a=>j(a.target.value),placeholder:"Dropbox",className:"text-sm h-8"})]})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)(r.J,{className:"text-xs",children:"Authorize URL"}),(0,f.jsx)(q.p,{value:k,onChange:a=>l(a.target.value),placeholder:"https://example.com/oauth/authorize",className:"font-mono text-sm h-8"})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)(r.J,{className:"text-xs",children:"Token URL"}),(0,f.jsx)(q.p,{value:m,onChange:a=>s(a.target.value),placeholder:"https://example.com/oauth/token",className:"font-mono text-sm h-8"})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)(r.J,{className:"text-xs",children:"Default scopes (space-separated)"}),(0,f.jsx)(q.p,{value:t,onChange:a=>u(a.target.value),placeholder:"read write",className:"font-mono text-sm h-8"})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)(r.J,{className:"text-xs",children:"Console URL (где брать credentials)"}),(0,f.jsx)(q.p,{value:v,onChange:a=>w(a.target.value),placeholder:"https://www.dropbox.com/developers/apps",className:"font-mono text-sm h-8"})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)(r.J,{className:"text-xs",children:"Setup hint (показывается пользователю)"}),(0,f.jsx)(dE.T,{value:x,onChange:a=>y(a.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,f.jsxs)("div",{className:"grid grid-cols-3 gap-3 text-xs",children:[(0,f.jsxs)("label",{className:"flex items-center gap-2",children:[(0,f.jsx)("input",{type:"checkbox",checked:z,onChange:a=>A(a.target.checked)}),"PKCE"]}),(0,f.jsxs)("label",{className:"flex items-center gap-2",children:[(0,f.jsx)("input",{type:"checkbox",checked:B,onChange:a=>C(a.target.checked)}),"refresh_token"]}),(0,f.jsxs)("label",{className:"flex items-center gap-2",children:[(0,f.jsx)("input",{type:"checkbox",checked:D,onChange:a=>E(a.target.checked)}),"client_secret"]})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)(r.J,{className:"text-xs",children:"Extra authorize params (JSON, optional)"}),(0,f.jsx)(dE.T,{value:F,onChange:a=>G(a.target.value),placeholder:'{"access_type": "offline", "prompt": "consent"}',className:"font-mono text-xs",rows:2})]}),(0,f.jsxs)("div",{className:"flex justify-end gap-2 pt-1",children:[(0,f.jsx)(o.$,{type:"button",variant:"ghost",size:"sm",onClick:b,children:"Отмена"}),(0,f.jsxs)(o.$,{type:"button",size:"sm",onClick:()=>{let b=d.trim().toLowerCase();if(!b)return void n.oR.error("id обязателен");if(a.includes(b))return void n.oR.error(`provider "${b}" уже существует`);if(!k.trim()||!m.trim())return void n.oR.error("authorizeUrl и tokenUrl обязательны");let e={};if(F.trim())try{e=JSON.parse(F)}catch{n.oR.error("extraAuthorizeParams должен быть JSON-объектом");return}let f=t.trim().split(/[\s,]+/).filter(a=>a.length>0);I(async()=>{let a=await ec({id:b,label:h.trim()||b,authorizeUrl:k.trim(),tokenUrl:m.trim(),defaultScopes:f,supportsPKCE:z,refreshTokenSupported:B,needsClientSecret:D,extraAuthorizeParams:e,setupHint:x.trim(),consoleUrl:v.trim()||"http://localhost:3210/api/oauth/callback"});if(!a.ok)return void n.oR.error(a.error);n.oR.success(`Provider "${b}" добавлен`),c()})},disabled:H||!d.trim()||!k.trim()||!m.trim(),children:[H&&(0,f.jsx)(i.A,{className:"mr-1 h-3.5 w-3.5 animate-spin"}),"Создать provider"]})]})]})})}dG.callServer,dG.findSourceMapURL;let eg=(0,dG.createServerReference)("40d982925be69266f12ff9cbf16f52d32c99cf7e09",dG.callServer,void 0,dG.findSourceMapURL,"listGeminiModelsAction");var eh=c(51330);let ei=(0,dG.createServerReference)("402911dc86b1ac898af85fb3251818acdd51a6f4e4",dG.callServer,void 0,dG.findSourceMapURL,"saveGeminiModelChoiceAction");function ej(){let[a,b]=(0,g.useState)(!1),[c,d]=(0,g.useState)(""),[e,k]=(0,g.useState)([]),[l,m]=(0,g.useState)(""),[s,t]=(0,g.useState)(""),[u,v]=(0,g.useTransition)(),[w,y]=(0,g.useTransition)(),[z,A]=(0,g.useTransition)(),B=(b=!1)=>{v(async()=>{let c=await eg(b);if(!c.ok){if(!a)return;n.oR.error(c.error);return}k(c.models),m(c.currentModel),t(c.currentVideoModel)})},C=(a,b)=>{A(async()=>{let c=await ei({[a]:b||null});if(!c.ok)return void n.oR.error(c.error);n.oR.success("Сохранено"),"model"===a?m(b):t(b)})};return(0,f.jsx)(p.Zp,{children:(0,f.jsxs)(p.Wu,{className:"pt-5 space-y-4",children:[(0,f.jsxs)("div",{className:"flex items-center gap-2 text-sm font-medium",children:[(0,f.jsx)(dB.A,{className:"h-4 w-4"}),(0,f.jsx)("span",{children:"Gemini API"}),a?(0,f.jsxs)(x.E,{variant:"secondary",className:"gap-1",children:[(0,f.jsx)(d$.A,{className:"h-3 w-3"})," key сохранён"]}):(0,f.jsx)(x.E,{variant:"outline",children:"не настроен"})]}),(0,f.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Используется для суммаризации YouTube (нативная поддержка мультимодальных URL) ",(0,f.jsx)("strong",{children:"и для генерации картинок"})," ","через модель Nano Banana (",(0,f.jsx)("code",{className:"font-mono",children:"gemini-2.5-flash-image"}),", ~$0.04 за картинку). Ключ хранится локально в"," ",(0,f.jsx)("code",{className:"font-mono",children:"~/.reflex/api-keys/gemini.json"})," ","(0600), агентам не передаётся. Возьми ключ в"," ",(0,f.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,f.jsx)(d1.A,{className:"h-3 w-3"})]})," ","— есть бесплатный tier (15 RPM / 1500 RPD)."]}),(0,f.jsxs)("div",{className:"space-y-1.5",children:[(0,f.jsxs)(r.J,{className:"text-xs flex items-center gap-1",children:[(0,f.jsx)(dZ.A,{className:"h-3 w-3"}),a?"Заменить ключ":"API key"]}),(0,f.jsxs)("div",{className:"flex gap-2",children:[(0,f.jsx)(q.p,{type:"password",value:c,onChange:a=>d(a.target.value),placeholder:a?"••••":"AIza…",className:"font-mono text-sm flex-1 h-8",disabled:w}),(0,f.jsxs)(o.$,{type:"button",size:"sm",onClick:()=>{if(!c.trim())return void n.oR.error("Введи ключ");y(async()=>{let a=await (0,eh.A)(c.trim());if(!a.ok)return void n.oR.error(a.error);n.oR.success("Gemini key сохранён"),d(""),b(!0),B(!0)})},disabled:w||!c.trim(),className:"h-8 gap-1",children:[w?(0,f.jsx)(i.A,{className:"h-3 w-3 animate-spin"}):(0,f.jsx)(j.A,{className:"h-3 w-3"}),"Сохранить"]})]})]}),a&&(0,f.jsxs)("div",{className:"space-y-3 pt-1 border-t",children:[(0,f.jsxs)("div",{className:"flex items-center justify-between",children:[(0,f.jsxs)("span",{className:"text-xs text-muted-foreground",children:["Модели подтянуты с"," ",(0,f.jsx)("code",{className:"font-mono",children:"v1beta/models"})," ",e.length>0&&`(${e.length})`]}),(0,f.jsxs)(o.$,{type:"button",size:"sm",variant:"ghost",onClick:()=>B(!0),disabled:u,className:"h-7 text-xs gap-1",children:[u?(0,f.jsx)(i.A,{className:"h-3 w-3 animate-spin"}):(0,f.jsx)(h.A,{className:"h-3 w-3"}),"Обновить"]})]}),(0,f.jsx)(ek,{label:"Default model",hint:"Используется для общих вызовов Gemini, когда конкретная задача не указана.",value:l,models:e,disabled:z||u,onChange:a=>C("model",a)}),(0,f.jsx)(ek,{label:"Модель для YouTube",hint:"Для суммаризации видео. Flash-варианты быстрее и обычно достаточно умные.",value:s,models:e,disabled:z||u,onChange:a=>C("videoModel",a)})]})]})})}function ek({label:a,hint:b,value:c,models:d,disabled:e,onChange:g}){let h=new Set(d.map(a=>a.id)).has(c)?d:c?[{id:c,displayName:`${c} (saved)`},...d]:d;return(0,f.jsxs)("div",{className:"space-y-1",children:[(0,f.jsx)(r.J,{className:"text-xs",children:a}),(0,f.jsx)("p",{className:"text-[11px] text-muted-foreground",children:b}),(0,f.jsxs)(y.l6,{value:c,onValueChange:g,disabled:e,children:[(0,f.jsx)(y.bq,{className:"h-8 w-full",children:(0,f.jsx)(y.yv,{placeholder:"(default)"})}),(0,f.jsx)(y.gC,{children:h.map(a=>(0,f.jsx)(y.eb,{value:a.id,children:(0,f.jsxs)("span",{className:"flex items-baseline gap-2",children:[(0,f.jsx)("span",{className:"font-mono text-xs",children:a.id}),a.displayName&&a.displayName!==a.id&&(0,f.jsx)("span",{className:"text-[10px] text-muted-foreground",children:a.displayName})]})},a.id))})]})]})}var el=c(29130);dG.callServer,dG.findSourceMapURL;let em=(0,dG.createServerReference)("60ae82b56eb541f747e94888660b96304508eaed62",dG.callServer,void 0,dG.findSourceMapURL,"saveImageProviderKeyAction");function en(){return(0,f.jsx)(p.Zp,{children:(0,f.jsxs)(p.Wu,{className:"pt-5 space-y-5",children:[(0,f.jsxs)("div",{className:"flex items-center gap-2 text-sm font-medium",children:[(0,f.jsx)(el.A,{className:"h-4 w-4"}),(0,f.jsx)("span",{children:"Картинки из сети"})]}),(0,f.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Ключи к API stock-фотобанков. Используются виджетом \xabКартинка в KB\xbb и хост-API утилит (",(0,f.jsx)("code",{className:"font-mono",children:"reflex.images.search"}),"). Хранятся локально в ",(0,f.jsx)("code",{className:"font-mono",children:"~/.reflex/api-keys/"})," (0600)."]}),(0,f.jsx)(eo,{provider:"unsplash",label:"Unsplash",docsHref:"https://unsplash.com/developers",hint:"Бесплатно 50 запросов/час. Атрибуция авторов обязательна — модалка вставляет её автоматически."}),(0,f.jsx)(eo,{provider:"pexels",label:"Pexels",docsHref:"https://pexels.com/api/",hint:"Без жёсткого лимита для разумного использования. Атрибуция рекомендована."}),(0,f.jsx)(eo,{provider:"brave",label:"Brave (весь веб)",docsHref:"https://api-dashboard.search.brave.com/app/keys",hint:"Поиск картинок по всему вебу (не только stock). Если у тебя уже подключён Brave Search MCP — ключ оттуда подхватится автоматически, поле можно не заполнять."})]})})}function eo({provider:a,label:b,docsHref:c,hint:d}){let[e,h]=(0,g.useState)(!1),[k,l]=(0,g.useState)(!1),[m,p]=(0,g.useState)(""),[s,t]=(0,g.useTransition)();return(0,f.jsxs)("div",{className:"space-y-2",children:[(0,f.jsxs)("div",{className:"flex items-center gap-2",children:[(0,f.jsx)("span",{className:"text-sm font-medium",children:b}),e?(0,f.jsxs)(x.E,{variant:"secondary",className:"gap-1",children:[(0,f.jsx)(d$.A,{className:"h-3 w-3"})," key сохранён"]}):k?(0,f.jsxs)(x.E,{variant:"secondary",className:"gap-1",children:[(0,f.jsx)(d$.A,{className:"h-3 w-3"})," ключ найден через MCP"]}):(0,f.jsx)(x.E,{variant:"outline",children:"не настроен"}),(0,f.jsxs)("a",{href:c,target:"_blank",rel:"noopener noreferrer",className:"ml-auto inline-flex items-center gap-1 text-xs text-violet-700 hover:underline",children:["docs ",(0,f.jsx)(d1.A,{className:"h-3 w-3"})]})]}),(0,f.jsx)("p",{className:"text-[11px] text-muted-foreground",children:d}),(0,f.jsxs)("div",{className:"flex gap-2",children:[(0,f.jsxs)(r.J,{className:"sr-only",htmlFor:`${a}-key`,children:[(0,f.jsx)(dZ.A,{className:"h-3 w-3"})," ",b," key"]}),(0,f.jsx)(q.p,{id:`${a}-key`,type:"password",value:m,onChange:a=>p(a.target.value),placeholder:e?"••••":`${b} access key`,className:"font-mono text-sm flex-1 h-8",disabled:s}),(0,f.jsxs)(o.$,{type:"button",size:"sm",onClick:()=>{if(!m.trim())return void n.oR.error("Введи ключ");t(async()=>{let c=await em(a,m.trim());if(!c.ok)return void n.oR.error(c.error);n.oR.success(`${b} key сохранён`),p(""),h(!0)})},disabled:s||!m.trim(),className:"h-8 gap-1",children:[s?(0,f.jsx)(i.A,{className:"h-3 w-3 animate-spin"}):(0,f.jsx)(j.A,{className:"h-3 w-3"}),"Сохранить"]})]})]})}let ep=(0,l.A)("Map",[["path",{d:"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z",key:"169xi5"}],["path",{d:"M15 5.764v15",key:"1pn4in"}],["path",{d:"M9 3.236v15",key:"1uimfh"}]]);var eq=c(85548);function er({settings:a,onChange:b}){let c=new Set(a.mapServices.enabled);return(0,f.jsx)(p.Zp,{children:(0,f.jsxs)(p.Wu,{className:"pt-5 space-y-3",children:[(0,f.jsxs)("div",{className:"flex items-center gap-2 text-sm font-medium",children:[(0,f.jsx)(ep,{className:"h-4 w-4 text-emerald-700"}),(0,f.jsx)("span",{children:"Сервисы маршрутов"})]}),(0,f.jsx)("p",{className:"text-xs text-muted-foreground",children:"Выбранные сервисы появятся в попапе на каждой точке карта-виджета — \xabМаршрут в…\xbb. Ссылка генерится прямо из координат, без посредников. Можно проверить превью-ссылку (точка по умолчанию — центр Москвы)."}),(0,f.jsx)("ul",{className:"space-y-1.5",children:eq.yp.map(a=>{let d=c.has(a.id);return(0,f.jsxs)("li",{className:"flex items-start gap-2 rounded-md border bg-card px-3 py-2",children:[(0,f.jsx)("input",{id:`map-svc-${a.id}`,type:"checkbox",checked:d,onChange:()=>(a=>{let d=new Set(c);d.has(a)?d.delete(a):d.add(a),b({mapServices:{enabled:[...d]}})})(a.id),className:"mt-1 h-3.5 w-3.5"}),(0,f.jsxs)("label",{htmlFor:`map-svc-${a.id}`,className:"min-w-0 flex-1 cursor-pointer",children:[(0,f.jsx)("div",{className:"text-sm font-medium",children:a.label}),(0,f.jsx)("p",{className:"text-[11px] text-muted-foreground mt-0.5 leading-snug",children:a.description})]}),(0,f.jsxs)("a",{href:a.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,f.jsx)(d1.A,{className:"h-2.5 w-2.5"})]})]},a.id)})})]})})}let es=(0,l.A)("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);var et=c(25436),eu=c(52869),ev=c(21080);let ew=(0,dG.createServerReference)("007586d80d3d9afecdd15a851ec6b13b2984a6600d",dG.callServer,void 0,dG.findSourceMapURL,"refreshReservedDomainsAction"),ex=(0,dG.createServerReference)("40f1ee513b299e663498197ffcdae6b859fb9f5187",dG.callServer,void 0,dG.findSourceMapURL,"patchNgrokSettingsAction"),ey=(0,dG.createServerReference)("0064965602a92a7e6738f2dd50c9c8649e58098591",dG.callServer,void 0,dG.findSourceMapURL,"startTunnelAction"),ez=(0,dG.createServerReference)("00d90c83ff3818ac4300bbac96d6eb8cc271e49800",dG.callServer,void 0,dG.findSourceMapURL,"stopTunnelAction"),eA=(0,dG.createServerReference)("006be381f3bd84d5b49ca424fdcbdd5ba7aa2732e5",dG.callServer,void 0,dG.findSourceMapURL,"listSharesAction"),eB=(0,dG.createServerReference)("40c646e8ace5a31f08b0a566acfd6617e206ed1651",dG.callServer,void 0,dG.findSourceMapURL,"deleteShareAction");function eC({settings:a,onChange:b}){let c=a.ngrok,[d,e]=(0,g.useState)({running:!1}),[j,l]=(0,g.useState)(null),[m,o]=(0,g.useState)(null),[q,r]=(0,g.useState)([]),[s,t]=(0,g.useTransition)(),[u,v]=(0,g.useTransition)(),[w,x]=(0,g.useState)(0),y=(0,g.useRef)(null),z=(0,g.useRef)(""),A=async()=>{let a=await (0,ev.N)();e(a.status),l(a.cliVersion),r((await eA()).shares)},B=async(a=!1)=>{let b=await ew();if(!b.ok){a||n.oR.error(b.error);return}o(b.domains),a||n.oR.success(`Загружено доменов: ${b.domains.length}`)},C=a=>{b({ngrok:{...c,...a}}),y.current&&clearTimeout(y.current),y.current=setTimeout(async()=>{let b=await ex(a);if(!b.ok)return void n.oR.error("ngrok settings: "+(b.error??"save failed"));x(a=>a+1),"string"==typeof a.apiKey&&a.apiKey.trim()&&a.apiKey!==z.current&&(z.current=a.apiKey,B(!0))},600)},D=async()=>{y.current&&(clearTimeout(y.current),y.current=null,await ex(c))},E=()=>{v(async()=>{await D(),await ez(),await new Promise(a=>setTimeout(a,400));let a=await ey();if(!a.ok)return void n.oR.error(a.error);n.oR.success(a.publicUrl?`Tunnel перезапущен: ${a.publicUrl}`:"Tunnel перезапущен, URL формируется..."),await A()})},F=(()=>{try{return d.publicUrl?new URL(d.publicUrl).hostname:""}catch{return""}})(),G=c.domain.trim(),H=d.running&&G&&F!==G,I=d.running&&d.port!==c.port;return(0,f.jsx)(p.Zp,{children:(0,f.jsxs)(p.Wu,{className:"pt-5 space-y-4",children:[(0,f.jsxs)("div",{className:"flex items-center gap-2 text-sm font-medium",children:[(0,f.jsx)(es,{className:"h-4 w-4 text-violet-600"}),(0,f.jsx)("span",{children:"Публичные ссылки через ngrok"}),j?(0,f.jsx)("span",{className:"text-[10px] font-mono text-muted-foreground ml-1",children:j.split("\n")[0]}):(0,f.jsxs)("span",{className:"text-[10px] text-destructive ml-1 inline-flex items-center gap-0.5",children:[(0,f.jsx)(d0.A,{className:"h-3 w-3"}),"ngrok CLI не найден"]}),w>0&&(0,f.jsxs)("span",{className:"ml-auto text-[10px] text-emerald-700 inline-flex items-center gap-0.5",title:"Изменения сохранены автоматически",children:[(0,f.jsx)(k.A,{className:"h-3 w-3"}),"сохранено"]},w)]}),(0,f.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Reflex запускает ",(0,f.jsx)("code",{className:"font-mono",children:"ngrok http"})," с твоим токеном; на ngrok-домене разрешены только пути"," ",(0,f.jsx)("code",{className:"font-mono",children:"/share/*"}),". Установи"," ",(0,f.jsx)("a",{href:"https://ngrok.com/download",target:"_blank",rel:"noopener noreferrer",className:"underline",children:"ngrok CLI"})," ","в PATH перед запуском."]}),(0,f.jsxs)("div",{className:"grid gap-2",children:[(0,f.jsx)("label",{className:"text-xs font-medium",htmlFor:"ngrok-token",children:"Authtoken (agent)"}),(0,f.jsx)("input",{id:"ngrok-token",type:"password",autoComplete:"off",value:c.authtoken,onChange:a=>C({authtoken:a.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,f.jsxs)("p",{className:"text-[10px] text-muted-foreground",children:["Найди в"," ",(0,f.jsx)("a",{href:"https://dashboard.ngrok.com/get-started/your-authtoken",target:"_blank",rel:"noopener noreferrer",className:"underline",children:"ngrok dashboard → Your Authtoken"}),". Сохраняется в ",(0,f.jsx)("code",{className:"font-mono",children:"~/.reflex/ngrok.yml"})," ","(0600)."]})]}),(0,f.jsxs)("div",{className:"grid gap-2",children:[(0,f.jsx)("label",{className:"text-xs font-medium",htmlFor:"ngrok-apikey",children:"API key (для списка доменов, опционально)"}),(0,f.jsx)("input",{id:"ngrok-apikey",type:"password",autoComplete:"off",value:c.apiKey,onChange:a=>C({apiKey:a.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,f.jsxs)("p",{className:"text-[10px] text-muted-foreground",children:["Возьми в"," ",(0,f.jsx)("a",{href:"https://dashboard.ngrok.com/api",target:"_blank",rel:"noopener noreferrer",className:"underline",children:"dashboard → API → API keys"}),". Используется только для GET-запроса списка reserved-доменов."]})]}),(0,f.jsxs)("div",{className:"grid gap-2",children:[(0,f.jsxs)("div",{className:"flex items-center justify-between",children:[(0,f.jsx)("label",{className:"text-xs font-medium",htmlFor:"ngrok-domain",children:"Reserved domain (если есть)"}),(0,f.jsxs)("button",{type:"button",onClick:()=>{t(async()=>{await B()})},disabled:s||!c.apiKey,className:"text-[11px] inline-flex items-center gap-1 text-violet-700 hover:underline disabled:opacity-50",children:[s?(0,f.jsx)(i.A,{className:"h-3 w-3 animate-spin"}):(0,f.jsx)(h.A,{className:"h-3 w-3"}),"Обновить список"]})]}),m&&m.length>0?(0,f.jsxs)("select",{id:"ngrok-domain",value:c.domain,onChange:a=>C({domain:a.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,f.jsx)("option",{value:"",children:"— random subdomain (free tier) —"}),m.map(a=>(0,f.jsxs)("option",{value:a.domain,children:[a.domain,a.region?` (${a.region})`:""]},a.id))]}):(0,f.jsx)("input",{id:"ngrok-domain",type:"text",value:c.domain,onChange:a=>C({domain:a.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,f.jsxs)("div",{className:"grid grid-cols-[1fr_auto] gap-2 items-end",children:[(0,f.jsxs)("div",{children:[(0,f.jsx)("label",{className:"text-xs font-medium",htmlFor:"ngrok-port",children:"Локальный порт"}),(0,f.jsx)("input",{id:"ngrok-port",type:"number",min:1,max:65535,value:c.port,onChange:a=>C({port:Math.max(1,Number(a.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"})]}),d.running?(0,f.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,f.jsxs)("button",{type:"button",onClick:E,disabled:u,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:[u?(0,f.jsx)(i.A,{className:"h-3 w-3 animate-spin"}):(0,f.jsx)(h.A,{className:"h-3 w-3"}),"Перезапустить"]}),(0,f.jsxs)("button",{type:"button",onClick:()=>{v(async()=>{await ez(),n.oR.success("Tunnel остановлен"),await A()})},disabled:u,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:[u?(0,f.jsx)(i.A,{className:"h-3 w-3 animate-spin"}):(0,f.jsx)(et.A,{className:"h-3 w-3"}),"Остановить"]})]}):(0,f.jsxs)("button",{type:"button",onClick:()=>{v(async()=>{await D();let a=await ey();if(!a.ok)return void n.oR.error(a.error);n.oR.success(a.publicUrl?`Tunnel запущен: ${a.publicUrl}`:"Tunnel запущен, URL ещё формируется..."),await A()})},disabled:u||!c.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:[u?(0,f.jsx)(i.A,{className:"h-3 w-3 animate-spin"}):(0,f.jsx)(eu.A,{className:"h-3 w-3"}),"Запустить"]})]}),d.running&&(0,f.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,f.jsxs)("div",{className:"flex items-center gap-1.5 text-emerald-800 dark:text-emerald-200",children:[(0,f.jsx)(k.A,{className:"h-3.5 w-3.5"}),(0,f.jsx)("span",{children:"Tunnel активен"})]}),d.publicUrl?(0,f.jsx)("a",{href:d.publicUrl,target:"_blank",rel:"noopener noreferrer",className:"block font-mono text-violet-700 hover:underline truncate",children:d.publicUrl}):(0,f.jsx)("p",{className:"text-muted-foreground",children:"URL ещё формируется…"}),(0,f.jsxs)("p",{className:"text-[10px] text-muted-foreground",children:["Запущен ",d.startedAt&&new Date(d.startedAt).toLocaleTimeString()," ","\xb7 порт ",d.port]})]}),(H||I)&&(0,f.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,f.jsxs)("div",{className:"flex items-center gap-1.5 text-amber-800 dark:text-amber-200 font-medium",children:[(0,f.jsx)(d0.A,{className:"h-3.5 w-3.5"}),"Настройки изменились — перезапусти туннель"]}),(0,f.jsxs)("ul",{className:"text-[11px] text-amber-900 dark:text-amber-100 list-disc pl-4 space-y-0.5",children:[H&&(0,f.jsxs)("li",{children:["Сейчас на хосте ",(0,f.jsx)("code",{className:"font-mono",children:F}),", в настройках выбран"," ",(0,f.jsx)("code",{className:"font-mono",children:G}),"."]}),I&&(0,f.jsxs)("li",{children:["Tunnel слушает порт ",(0,f.jsx)("code",{className:"font-mono",children:d.port}),", в настройках указан ",(0,f.jsx)("code",{className:"font-mono",children:c.port}),"."]})]}),(0,f.jsxs)("button",{type:"button",onClick:E,disabled:u,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:[u?(0,f.jsx)(i.A,{className:"h-3 w-3 animate-spin"}):(0,f.jsx)(h.A,{className:"h-3 w-3"}),"Перезапустить с новыми настройками"]})]}),(0,f.jsx)("hr",{className:"my-3"}),(0,f.jsxs)("div",{children:[(0,f.jsxs)("h3",{className:"text-xs font-semibold mb-2",children:["Активные ссылки (",q.length,")"]}),0===q.length?(0,f.jsx)("p",{className:"text-[11px] text-muted-foreground",children:"Пока ничего не расшарено. На странице утилиты, KB-файла или дашборда появится кнопка \xabПоделиться\xbb."}):(0,f.jsx)("ul",{className:"space-y-1",children:q.map(a=>(0,f.jsx)(eD,{share:a,publicHost:d.publicUrl,onDeleted:()=>void A()},a.id))})]})]})})}function eD({share:a,publicHost:b,onDeleted:c}){let[d,e]=(0,g.useTransition)(),h=b?new URL(`/share/${a.id}`,b).toString():`/share/${a.id}`,j=a.label||("utility"===a.kind?`Утилита ${a.utilityId}`:"kb-file"===a.kind?`KB ${a.kbRelPath}`:"kb-tree"===a.kind?"Вся база знаний":"Дашборд проекта");return(0,f.jsxs)("li",{className:"flex items-start gap-2 rounded border bg-card px-2 py-1.5 text-xs",children:[(0,f.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,f.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,f.jsx)("span",{className:"font-medium truncate",children:j}),(0,f.jsx)("span",{className:"text-[9px] uppercase tracking-wider text-muted-foreground",children:a.kind}),a.passwordHash&&(0,f.jsx)("span",{className:"text-[9px] uppercase tracking-wider text-violet-600",children:"\uD83D\uDD12"})]}),(0,f.jsx)("a",{href:h,target:"_blank",rel:"noopener noreferrer",className:"block text-[10px] font-mono text-violet-700 hover:underline truncate",children:h})]}),(0,f.jsx)("button",{type:"button",onClick:()=>{navigator.clipboard.writeText(h).then(()=>n.oR.success("Ссылка скопирована"))},className:"text-[10px] text-muted-foreground hover:text-foreground rounded px-1 py-0.5",children:"copy"}),(0,f.jsx)("button",{type:"button",onClick:()=>{confirm(`Удалить ссылку "${j}"?`)&&e(async()=>{await eB(a.id),c()})},disabled:d,className:"text-muted-foreground hover:text-destructive rounded px-1",title:"Удалить ссылку",children:d?(0,f.jsx)(i.A,{className:"h-3 w-3 animate-spin"}):(0,f.jsx)(dP.A,{className:"h-3 w-3"})})]})}let eE=(0,dG.createServerReference)("400647f16fc8d03d61378fc4fb7712ed26335e4ba1",dG.callServer,void 0,dG.findSourceMapURL,"listModelsAction"),eF=(0,dG.createServerReference)("406d3fa6bfdc6ac8c7e8a689f86c1f674d29497eb7",dG.callServer,void 0,dG.findSourceMapURL,"probeHarnessAction"),eG=(0,dG.createServerReference)("40accb39a92c9344fd42d43b8b83cd882396c8cdcf",dG.callServer,void 0,dG.findSourceMapURL,"saveSettingsAction");function eH({initialSettings:a,harnesses:b}){let[c,d]=(0,g.useState)(a),[e,k]=(0,g.useState)({"claude-code":null,codex:null,ollama:null}),[l,m]=(0,g.useState)({"claude-code":null,codex:null,ollama:null}),[s,t]=(0,g.useState)({"claude-code":!1,codex:!1,ollama:!1}),[v,z]=(0,g.useState)({"claude-code":null,codex:null,ollama:null}),[A,B]=(0,g.useTransition)(),C=(0,g.useCallback)(async a=>{t(b=>({...b,[a]:!0})),m(b=>({...b,[a]:null}));let b=await eE(a);t(b=>({...b,[a]:!1})),b.ok?k(c=>({...c,[a]:b.models})):(m(c=>({...c,[a]:b.error})),k(b=>({...b,[a]:[]})))},[]),D=(0,g.useCallback)(async a=>{let b=await eF(a);z(c=>({...c,[a]:b}))},[]),E=(a,b)=>{d(c=>({...c,assignments:{...c.assignments,[a]:{...c.assignments[a],...b}}}))},F=a=>{d(b=>({...b,language:a}))},G=a=>{d(b=>({...b,imageProcessing:{...b.imageProcessing,...a}}))},H=dy.includes(c.language),I="advanced"===c.uiMode;return(0,f.jsxs)("div",{className:"space-y-8",children:[(0,f.jsx)(p.Zp,{className:"border-violet-200 dark:border-violet-900/50 bg-violet-50/40 dark:bg-violet-950/20",children:(0,f.jsxs)(p.Wu,{className:"pt-5 pb-5 flex items-center gap-3",children:[(0,f.jsxs)("div",{className:"flex-1",children:[(0,f.jsx)("div",{className:"text-sm font-medium",children:I?"Расширенный режим":"Простой режим"}),(0,f.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:I?"Видны все секции — модели, MCP-серверы, prompt-шаблоны, инструменты.":"Видны только основные настройки. Включи расширенный, чтобы поменять модели, подключения и промпты."})]}),(0,f.jsx)(o.$,{type:"button",variant:I?"outline":"default",size:"sm",onClick:()=>{let a={...c,uiMode:I?"simple":"advanced"};d(a),eG(a)},children:I?"Простой режим":"Расширенный режим"})]})}),(0,f.jsxs)("section",{children:[(0,f.jsx)("h2",{className:"text-lg font-semibold mb-3",children:"Output language"}),(0,f.jsx)(p.Zp,{children:(0,f.jsxs)(p.Wu,{className:"pt-6",children:[(0,f.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,f.jsxs)("div",{className:"flex items-center gap-3 max-w-xl",children:[(0,f.jsxs)("div",{className:"flex-1",children:[(0,f.jsx)(r.J,{className:"text-xs text-muted-foreground",children:"Preset"}),(0,f.jsxs)(y.l6,{value:H?c.language:"__custom__",onValueChange:a=>{"__custom__"===a?F(H?"":c.language):F(a)},children:[(0,f.jsx)(y.bq,{className:"mt-1",children:(0,f.jsx)(y.yv,{})}),(0,f.jsxs)(y.gC,{children:[dy.map(a=>(0,f.jsx)(y.eb,{value:a,children:a},a)),(0,f.jsx)(y.eb,{value:"__custom__",children:"custom…"})]})]})]}),!H&&(0,f.jsxs)("div",{className:"flex-1",children:[(0,f.jsx)(r.J,{className:"text-xs text-muted-foreground",children:"Custom"}),(0,f.jsx)(q.p,{value:c.language,onChange:a=>F(a.target.value),placeholder:"e.g. portugu\xeas, latviešu",className:"mt-1"})]})]})]})})]}),(0,f.jsxs)("section",{children:[(0,f.jsx)("h2",{className:"text-lg font-semibold mb-3",children:"Обработка изображений"}),(0,f.jsx)(p.Zp,{children:(0,f.jsxs)(p.Wu,{className:"pt-6 space-y-4",children:[(0,f.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,f.jsxs)("div",{children:[(0,f.jsxs)("p",{className:"text-sm",children:["Reflex автоматически ресайзит и перекодирует прикреплённые изображения перед сохранением в"," ",(0,f.jsx)("code",{className:"font-mono text-xs",children:".reflex/attachments/"}),"."]}),(0,f.jsx)("p",{className:"text-xs text-muted-foreground mt-1",children:"Сокращает токены модели и место на диске. Векторы (SVG) и анимированные GIF/WebP остаются как есть."})]}),(0,f.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[(0,f.jsx)(r.J,{htmlFor:"img-enabled",className:"text-xs",children:"включено"}),(0,f.jsx)(u,{id:"img-enabled",checked:c.imageProcessing.enabled,onCheckedChange:a=>G({enabled:a})})]})]}),(0,f.jsxs)("div",{className:c.imageProcessing.enabled?"space-y-4":"space-y-4 opacity-50 pointer-events-none",children:[(0,f.jsxs)("div",{children:[(0,f.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,f.jsx)(r.J,{className:"text-xs text-muted-foreground",children:"Макс. сторона"}),(0,f.jsxs)("span",{className:"font-mono text-xs",children:[c.imageProcessing.maxDimension,"px"]})]}),(0,f.jsx)(w,{min:256,max:8192,step:64,value:[c.imageProcessing.maxDimension],onValueChange:a=>G({maxDimension:a[0]??2e3})}),(0,f.jsxs)("div",{className:"flex justify-between text-[10px] text-muted-foreground mt-1",children:[(0,f.jsx)("span",{children:"256"}),(0,f.jsx)("span",{children:"2048"}),(0,f.jsx)("span",{children:"4096"}),(0,f.jsx)("span",{children:"8192"})]})]}),(0,f.jsxs)("div",{children:[(0,f.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,f.jsx)(r.J,{className:"text-xs text-muted-foreground",children:"Качество (JPEG / WebP)"}),(0,f.jsx)("span",{className:"font-mono text-xs",children:c.imageProcessing.quality})]}),(0,f.jsx)(w,{min:40,max:100,step:1,value:[c.imageProcessing.quality],onValueChange:a=>G({quality:a[0]??85})})]}),(0,f.jsxs)("div",{className:"max-w-xs",children:[(0,f.jsx)(r.J,{className:"text-xs text-muted-foreground",children:"Формат"}),(0,f.jsxs)(y.l6,{value:c.imageProcessing.format,onValueChange:a=>G({format:a}),children:[(0,f.jsx)(y.bq,{className:"mt-1",children:(0,f.jsx)(y.yv,{})}),(0,f.jsx)(y.gC,{children:dz.map(a=>(0,f.jsxs)(y.eb,{value:a,children:[(0,f.jsx)("span",{className:"font-mono",children:a}),(0,f.jsx)("span",{className:"ml-2 text-muted-foreground text-xs",children:"auto"===a?"JPEG, PNG для прозрачных":"jpeg"===a?"всё в JPEG (альфа → белый фон)":"webp"===a?"всё в WebP":"оставить исходный контейнер"})]},a))})]})]})]})]})})]}),I&&(0,f.jsxs)("section",{children:[(0,f.jsx)("h2",{className:"text-lg font-semibold mb-3",children:"Harnesses"}),(0,f.jsx)("div",{className:"grid gap-4",children:b.map(a=>{let b=v[a.id],g=c.harnesses[a.id].enabled;return(0,f.jsxs)(p.Zp,{children:[(0,f.jsx)(p.aR,{children:(0,f.jsxs)("div",{className:"flex items-center justify-between gap-4",children:[(0,f.jsxs)("div",{children:[(0,f.jsxs)(p.ZB,{className:"flex items-center gap-2",children:[a.label,(0,f.jsx)(eK,{probe:b})]}),(0,f.jsx)(p.BT,{children:b?b.detail:"checking…"})]}),(0,f.jsxs)("div",{className:"flex items-center gap-3",children:[(0,f.jsxs)(o.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>{D(a.id),C(a.id)},disabled:s[a.id],children:[(0,f.jsx)(h.A,{className:`mr-1 h-4 w-4 ${s[a.id]?"animate-spin":""}`}),"Refresh"]}),(0,f.jsxs)("div",{className:"flex items-center gap-2",children:[(0,f.jsx)(r.J,{htmlFor:`enable-${a.id}`,className:"text-xs",children:"enabled"}),(0,f.jsx)(u,{id:`enable-${a.id}`,checked:g,onCheckedChange:b=>{var c;return c=a.id,void d(a=>({...a,harnesses:{...a.harnesses,[c]:{...a.harnesses[c],enabled:b}}}))}})]})]})]})}),(0,f.jsxs)(p.Wu,{children:["ollama"===a.id&&(0,f.jsxs)("div",{className:"mb-3 flex items-center gap-2 max-w-md",children:[(0,f.jsx)(r.J,{htmlFor:"ollama-url",className:"text-xs w-24 shrink-0",children:"Base URL"}),(0,f.jsx)(q.p,{id:"ollama-url",value:c.harnesses.ollama.baseUrl,onChange:a=>{var b;return b=a.target.value,void d(a=>({...a,harnesses:{...a.harnesses,ollama:{...a.harnesses.ollama,baseUrl:b}}}))},placeholder:"http://localhost:11434",className:"font-mono text-xs"})]}),(0,f.jsxs)("div",{className:"text-xs text-muted-foreground",children:["Models loaded:"," ",s[a.id]?(0,f.jsxs)("span",{children:[(0,f.jsx)(i.A,{className:"inline h-3 w-3 animate-spin mr-1"}),"loading…"]}):l[a.id]?(0,f.jsx)("span",{className:"text-destructive",children:l[a.id]}):`${e[a.id]?.length??0}`,(e[a.id]?.length??0)>0&&(0,f.jsxs)("span",{className:"ml-2",children:["(",e[a.id]?.[0]?.source,")"]})]})]})]},a.id)})})]}),I&&(0,f.jsxs)("section",{children:[(0,f.jsx)("h2",{className:"text-lg font-semibold mb-3",children:"Task assignments"}),(0,f.jsx)("div",{className:"grid gap-4",children:du.map(a=>{let d=c.assignments[a],g=b.filter(b=>b.supports.includes(a)&&c.harnesses[b.id].enabled),h=e[d.harness]??[],i=h[0]?.source;return(0,f.jsxs)(p.Zp,{children:[(0,f.jsxs)(p.aR,{children:[(0,f.jsx)(p.ZB,{className:"text-base",children:dv[a].title}),(0,f.jsx)(p.BT,{children:dv[a].help})]}),(0,f.jsxs)(p.Wu,{className:"space-y-3",children:[(0,f.jsxs)("div",{className:"flex flex-col md:flex-row md:items-end gap-3",children:[(0,f.jsxs)("div",{className:"flex-1 max-w-[200px]",children:[(0,f.jsx)(r.J,{className:"text-xs text-muted-foreground",children:"Harness"}),(0,f.jsxs)(y.l6,{value:d.harness,onValueChange:b=>E(a,{harness:b,model:e[b]?.[0]?.id??""}),children:[(0,f.jsx)(y.bq,{className:"mt-1",children:(0,f.jsx)(y.yv,{})}),(0,f.jsx)(y.gC,{children:g.map(a=>(0,f.jsx)(y.eb,{value:a.id,children:a.label},a.id))})]})]}),(0,f.jsxs)("div",{className:"flex-1",children:[(0,f.jsxs)("div",{className:"flex items-center justify-between",children:[(0,f.jsx)(r.J,{className:"text-xs text-muted-foreground",children:"Model"}),i&&(0,f.jsx)(x.E,{variant:"live"===i?"default":"secondary",className:"text-[10px] uppercase",children:i})]}),h.length>0?(0,f.jsxs)(y.l6,{value:d.model,onValueChange:b=>E(a,{model:b}),children:[(0,f.jsx)(y.bq,{className:"mt-1",children:(0,f.jsx)(y.yv,{placeholder:"select model"})}),(0,f.jsx)(y.gC,{children:h.map(a=>(0,f.jsxs)(y.eb,{value:a.id,children:[(0,f.jsx)("span",{className:"font-mono",children:a.id}),a.size&&(0,f.jsx)("span",{className:"ml-2 text-muted-foreground text-xs",children:a.size})]},a.id))})]}):(0,f.jsx)(q.p,{value:d.model,onChange:b=>E(a,{model:b.target.value}),placeholder:"model id",className:"mt-1 font-mono text-xs"})]})]}),"claude-code"===d.harness&&(0,f.jsx)(eJ,{tools:d.allowedTools,onChange:b=>E(a,{allowedTools:b})})]})]},a)})})]}),(0,f.jsxs)("section",{children:[(0,f.jsx)("h2",{className:"text-lg font-semibold mb-3",children:"Gemini"}),(0,f.jsx)(ej,{})]}),(0,f.jsxs)("section",{children:[(0,f.jsx)("h2",{className:"text-lg font-semibold mb-3",children:"Картинки"}),(0,f.jsx)(en,{})]}),(0,f.jsxs)("section",{children:[(0,f.jsx)("h2",{className:"text-lg font-semibold mb-3",children:"OAuth providers"}),(0,f.jsxs)("p",{className:"text-sm text-muted-foreground mb-3",children:["Reflex держит локально access/refresh-токены и сам обновляет их при истечении. Используй ",(0,f.jsx)("code",{children:"$oauth:<provider>"})," в env/headers MCP-сервера — Reflex подставит свежий токен при каждом вызове. Redirect URI:"," ",(0,f.jsx)("code",{className:"font-mono",children:"http://localhost:3210/api/oauth/callback"}),"."]}),(0,f.jsx)(ed,{})]}),I&&(0,f.jsxs)("section",{children:[(0,f.jsx)("h2",{className:"text-lg font-semibold mb-3",children:"MCP servers"}),(0,f.jsxs)("p",{className:"text-sm text-muted-foreground mb-3",children:["Зарегистрированные MCP-серверы доступны утилитам (через"," ",(0,f.jsx)("code",{children:"manifest.mcpServers"}),") и чату напрямую (orchestrator получает их через ",(0,f.jsx)("code",{children:"--mcp-config"}),"). Config хранится в"," ",(0,f.jsx)("code",{children:"~/.reflex/mcp/servers.json"})," с perms ",(0,f.jsx)("code",{children:"0600"}),"."]}),(0,f.jsx)(dX,{})]}),(0,f.jsxs)("section",{children:[(0,f.jsx)("h2",{className:"text-lg font-semibold mb-3",children:"Сервисы маршрутов"}),(0,f.jsx)("p",{className:"text-sm text-muted-foreground mb-3",children:"Какие сервисы навигации появятся в попапе \xabМаршрут в…\xbb на каждой точке map-виджета. Reflex генерирует deep-link из координат — без посредников, без аккаунтов."}),(0,f.jsx)(er,{settings:c,onChange:a=>d(b=>({...b,...a}))})]}),(0,f.jsxs)("section",{children:[(0,f.jsx)("h2",{className:"text-lg font-semibold mb-3",children:"Публичные ссылки (ngrok)"}),(0,f.jsx)("p",{className:"text-sm text-muted-foreground mb-3",children:"Сделать утилиту, KB-файл или дашборд доступным из интернета через ngrok-туннель. Каждая ссылка опционально защищена паролем; middleware закрывает все остальные пути на ngrok-хосте."}),(0,f.jsx)(eC,{settings:c,onChange:a=>d(b=>({...b,...a}))})]}),I&&(0,f.jsxs)("section",{children:[(0,f.jsx)("h2",{className:"text-lg font-semibold mb-3",children:"Prompt templates"}),(0,f.jsxs)("p",{className:"text-sm text-muted-foreground mb-3",children:["Stored on disk under ",(0,f.jsx)("code",{children:"~/.reflex/prompts/"}),". Edit here or directly in any editor. Use ",(0,f.jsx)("code",{children:"{{language}}"}),","," ",(0,f.jsx)("code",{children:"{{scope}}"}),", etc. — variable list is shown per template."]}),(0,f.jsx)(dL,{})]}),(0,f.jsx)("div",{className:"flex justify-end",children:(0,f.jsx)(o.$,{onClick:()=>{B(async()=>{let a=await eG(c);a.ok?n.oR.success("Settings saved"):n.oR.error(a.error??"Save failed")})},disabled:A,children:A?(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(i.A,{className:"mr-2 h-4 w-4 animate-spin"})," Saving…"]}):(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(j.A,{className:"mr-2 h-4 w-4"})," Save settings"]})})})]})}let eI=["Read","Write","Edit","LS","Glob","Grep","Bash","WebSearch","WebFetch","TodoWrite","Task","NotebookEdit"];function eJ({tools:a,onChange:b}){let c=c=>{let d=c.trim();d&&(a.includes(d)||b([...a,d]))},[d,e]=(0,g.useState)(""),h=eI.filter(b=>!a.includes(b));return(0,f.jsxs)("div",{className:"rounded-md border bg-muted/30 p-3 space-y-2",children:[(0,f.jsxs)("div",{className:"flex items-baseline justify-between",children:[(0,f.jsx)(r.J,{className:"text-xs text-muted-foreground",children:"Allowed tools (claude-code)"}),(0,f.jsx)("span",{className:"text-[10px] text-muted-foreground",children:"без них агент попросит разрешение и зависнет в headless-режиме"})]}),(0,f.jsxs)("div",{className:"flex flex-wrap gap-1.5",children:[0===a.length&&(0,f.jsx)("span",{className:"text-[11px] italic text-muted-foreground",children:"используются дефолты harness'а"}),a.map(c=>(0,f.jsxs)(x.E,{variant:"secondary",className:"gap-1 font-mono",children:[c,(0,f.jsx)("button",{type:"button",className:"text-muted-foreground hover:text-foreground",onClick:()=>b(a.filter(a=>a!==c)),children:"\xd7"})]},c))]}),h.length>0&&(0,f.jsx)("div",{className:"flex flex-wrap gap-1",children:h.map(a=>(0,f.jsxs)("button",{type:"button",onClick:()=>c(a),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:["+ ",a]},a))}),(0,f.jsxs)("form",{className:"flex gap-1",onSubmit:a=>{a.preventDefault(),c(d),e("")},children:[(0,f.jsx)(q.p,{value:d,onChange:a=>e(a.target.value),placeholder:"custom tool name…",className:"h-7 text-xs font-mono"}),(0,f.jsx)(o.$,{type:"submit",size:"sm",variant:"ghost",className:"h-7",children:"+"})]})]})}function eK({probe:a}){return a?a.available?(0,f.jsxs)(x.E,{variant:"default",className:"gap-1 bg-emerald-600",children:[(0,f.jsx)(k.A,{className:"h-3 w-3"})," available"]}):(0,f.jsxs)(x.E,{variant:"destructive",className:"gap-1",children:[(0,f.jsx)(m,{className:"h-3 w-3"})," unavailable"]}):(0,f.jsxs)(x.E,{variant:"outline",className:"gap-1",children:[(0,f.jsx)(i.A,{className:"h-3 w-3 animate-spin"})," checking"]})}},85548:(a,b,c)=>{"use strict";function d(a){return`${a.lat},${a.lng}`}function e(a){return`${a.lng},${a.lat}`}c.d(b,{JY:()=>g,yp:()=>f});let f=[{id:"google",label:"Google Maps",description:"Глобальный, navigation+street view. Работает везде кроме РФ-блокировок.",brand:"#4285F4",glyph:"G",urlFor:(a,b)=>`https://www.google.com/maps/dir/?api=1&destination=${a},${b}`,routeUrlFor:a=>{if(a.length<2)return"";let b=d(a[0]),c=d(a[a.length-1]),e=a.slice(1,-1).map(d).join("|"),f=e?`&waypoints=${encodeURIComponent(e)}`:"";return`https://www.google.com/maps/dir/?api=1&origin=${b}&destination=${c}${f}`}},{id:"yandex",label:"Яндекс.Карты",description:"СНГ, лучшая детализация по РФ и пробки в реальном времени.",brand:"#FFCC00",glyph:"Я",urlFor:(a,b)=>`https://yandex.ru/maps/?rtext=~${a},${b}&rtt=auto`,routeUrlFor:a=>`https://yandex.ru/maps/?rtext=${a.map(d).join("~")}&rtt=auto`},{id:"2gis",label:"2ГИС",description:"СНГ, точные адреса и POI. Уникальная свойственность РФ-городов.",brand:"#1BA049",glyph:"2",urlFor:(a,b)=>`https://2gis.ru/routeSearch/to/${b},${a}`,routeUrlFor:a=>{let b=e(a[0]),c=e(a[a.length-1]),d=a.slice(1,-1).map(a=>`/via/${e(a)}`).join("");return`https://2gis.ru/routeSearch/rsType/car/from/${b}${d}/to/${c}`}},{id:"apple",label:"Apple Maps",description:"Откроется в нативном приложении на iOS/macOS, иначе на сайте.",brand:"#1d1d1f",glyph:"A",urlFor:(a,b)=>`https://maps.apple.com/?daddr=${a},${b}`,routeUrlFor:a=>{let b=d(a[0]),c=a.slice(1).map(a=>`+to:${d(a)}`).join("");return`https://maps.apple.com/?saddr=${b}&daddr=${b}${c}`}},{id:"osm",label:"OpenStreetMap",description:"Открытые данные, без аккаунта. Базовая навигация.",brand:"#7EB73F",glyph:"OSM",urlFor:(a,b)=>`https://www.openstreetmap.org/directions?to=${a},${b}`,routeUrlFor:a=>{let b=a.map(d).join(";");return`https://www.openstreetmap.org/directions?route=${encodeURIComponent(b)}`}},{id:"waze",label:"Waze",description:"Авто-навигация с краудсорсингом пробок и предупреждений.",brand:"#33CCFF",glyph:"W",urlFor:(a,b)=>`https://waze.com/ul?ll=${a},${b}&navigate=yes`,routeUrlFor:a=>{let b=a[a.length-1];return`https://waze.com/ul?ll=${b.lat},${b.lng}&navigate=yes`}},{id:"organic",label:"Organic Maps",description:"Офлайн-карты с открытыми данными. Открывается в приложении.",brand:"#006C35",glyph:"OM",urlFor:(a,b)=>`om://map?ll=${a},${b}`,routeUrlFor:a=>{let b=a[0],c=a[a.length-1];return`om://route?sll=${b.lat},${b.lng}&saddr=&dll=${c.lat},${c.lng}&daddr=&type=vehicle`}}],g=["google","yandex","apple","osm"]},86264:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{K:()=>h});var e=c(7206),f=a([e]);e=(f.then?(await f)():f)[0];let g=[{id:"gpt-5.5",label:"GPT-5.5",source:"static"},{id:"gpt-5.4",label:"GPT-5.4",source:"static"},{id:"gpt-5.4-mini",label:"GPT-5.4-Mini",source:"static"},{id:"gpt-5.3-codex",label:"GPT-5.3-Codex",source:"static"}],h={id:"codex",label:"Codex",supports:["analyze","chat","quick"],async probe(){try{let a=await (0,e.execa)("codex",["--version"],{timeout:3e3});return{ok:!0,available:!0,detail:a.stdout.trim()||"installed"}}catch(a){return{ok:!1,available:!1,detail:a instanceof Error?a.message:"not installed"}}},async listModels(){try{let{listCodexModels:a}=await Promise.resolve().then(c.bind(c,59377)),b=(await a()).filter(a=>!a.hidden);if(0===b.length)return g;return b.sort((a,b)=>a.isDefault!==b.isDefault?a.isDefault?-1:1:a.id.localeCompare(b.id)),b.map(a=>({id:a.id,label:a.displayName||a.id,source:"live"}))}catch{return g}}};d()}catch(a){d(a)}})},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},95004:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{G:()=>h});var e=c(7206),f=a([e]);e=(f.then?(await f)():f)[0];let g=[{id:"claude-opus-4-7",label:"Claude Opus 4.7",family:"opus",source:"static"},{id:"claude-sonnet-4-6",label:"Claude Sonnet 4.6",family:"sonnet",source:"static"},{id:"claude-haiku-4-5",label:"Claude Haiku 4.5",family:"haiku",source:"static"}],h={id:"claude-code",label:"Claude Code",supports:["analyze","chat","quick"],async probe(){try{let a=await (0,e.execa)("claude",["--version"],{timeout:3e3});return{ok:!0,available:!0,detail:a.stdout.trim()||"installed"}}catch(a){return{ok:!1,available:!1,detail:a instanceof Error?a.message:"not installed"}}},async listModels(){let a=process.env.ANTHROPIC_API_KEY;if(!a)return g;try{let b=await fetch("https://api.anthropic.com/v1/models",{headers:{"x-api-key":a,"anthropic-version":"2023-06-01"},signal:AbortSignal.timeout(4e3)});if(!b.ok)return g;let c=await b.json(),d=[];for(let a of c.data??[])a.id&&d.push({id:a.id,label:a.display_name??a.id,family:function(a){let b=a.toLowerCase();return b.includes("opus")?"opus":b.includes("sonnet")?"sonnet":b.includes("haiku")?"haiku":void 0}(a.id),source:"live"});if(0===d.length)return g;return d.sort((a,b)=>a.id.localeCompare(b.id)),d}catch{return g}}};d()}catch(a){d(a)}})},96705:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).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"}]])},97866:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{"000a0be797e54ad8923f1a41ae97ec91836352dc88":()=>j.pD,"00221ffb49d16f68eabe8c8fa5d4e7b635b9370f9f":()=>i.ME,"0051cc21725f2ccf97165db3ae10f2ec6b4c159d35":()=>k.Av,"005adec00ada04c63ac5fd3676f300faaa566baba2":()=>n.Ng,"0064965602a92a7e6738f2dd50c9c8649e58098591":()=>n.Nt,"0069ccf3064400ffff18e3bf53711fd72333b49d4a":()=>m._E,"006be381f3bd84d5b49ca424fdcbdd5ba7aa2732e5":()=>o.L8,"007586d80d3d9afecdd15a851ec6b13b2984a6600d":()=>n.Zl,"00836cc3059073482c3919ef173b7f92521f4f56c9":()=>k.ol,"00cd2d83814844e1283c9ba1e1c423e61ddf47de12":()=>g.i,"00d90c83ff3818ac4300bbac96d6eb8cc271e49800":()=>n.Fm,"00e8c809952e4674f8aa1008e6516751bd1035bb73":()=>p.cj,"40005cf3d13239849c55972ebb98aacb986e67de11":()=>l.O1,"4004b94298efc15333005b9320b07464f06bc3c084":()=>f.z,"400647f16fc8d03d61378fc4fb7712ed26335e4ba1":()=>p.pG,"4009c865d324196dd047dce582cdbae58b934ef4d7":()=>j.p_,"400d426f3c79372aaab4a69d6bcbcabb5917285c01":()=>i.vV,"400d51d12215216f88212560005beda5ad7620fb46":()=>h.$z,"40150a07c207939536776efe9789d1a7e3b81cb028":()=>j.CJ,"402911dc86b1ac898af85fb3251818acdd51a6f4e4":()=>l.rD,"403ed4d14b11a90cacc5b9f70460c86f0b95c3568a":()=>o.Is,"40666a72ba7136ed91a114ab4f47e7f9d4bc0daca3":()=>e.nY,"406d3fa6bfdc6ac8c7e8a689f86c1f674d29497eb7":()=>p.pi,"40783a95564e3df6c2c79ecfdb5befa2bf3be6de26":()=>i.xP,"40809a53941ea7f39534737148255eba3a5efa2c6a":()=>k.EI,"40812bbb3ae7151cca55ae636201a36059b80b43c1":()=>k.Is,"4084031b7cda8d9195b4cd955d316112559c7cbf34":()=>j.UL,"408c94e084cce2b605b8c18c8fe0bd5c81ddd06919":()=>k.JV,"40939ebfea7436d72cf3d1e0af94f840b0bc73bb3c":()=>h.MU,"409b688b5a310bae92c1556c0243fee7a15cadb469":()=>f.u,"409d333d3e7b13a505853122dbd9a15ab36b9a90a4":()=>l.AZ,"40accb39a92c9344fd42d43b8b83cd882396c8cdcf":()=>p.r6,"40c646e8ace5a31f08b0a566acfd6617e206ed1651":()=>o.ns,"40c64eac052555625bdda4626671690c02e2f934aa":()=>j.j3,"40d2ac7d931df057cc763c3416ffd2aee8ff7a0ad9":()=>l.summarizeYoutubeAction,"40d453946b3b40cf8158efe6466bd2fb52080606ed":()=>i.Kw,"40d75f616a66027d5730682fe19f1910b8e73402bf":()=>e.nC,"40d982925be69266f12ff9cbf16f52d32c99cf7e09":()=>l.Gh,"40da24e8b6ef8a66a05907d28bd647117e40e20547":()=>k.vz,"40e207674f6889cbdfe631e1ccdc6ef5f2d4cfd67e":()=>k.op,"40e6bcebbb2be2804866be07cc05e56ba89bacde4d":()=>j.wG,"40f1ee513b299e663498197ffcdae6b859fb9f5187":()=>n.bt,"40f6801f3ea78f166da7a2ed774ca49c0b18e2a13b":()=>k.S7,"40fca0817dcec4a8de33bc7bdc405bcb5da5826082":()=>m.xv,"40fdd245f212c95b203223ec223c02cdc16789521b":()=>k.G4,"600252a190752f43aa43643959677019accdba5c83":()=>e.L4,"6051e3107875786292470bca9b46ee55d3d1ce7bcf":()=>e.T$,"6085fdd91989747bc73031c5e5853218191211cf79":()=>h.Tc,"609b01efeb645bf501dbb883d7f01e8afab86a8c6e":()=>e.OQ,"60a24cdd6d25ce5a4efed5d0c1459ddf0786693d59":()=>k.nL,"60ae82b56eb541f747e94888660b96304508eaed62":()=>m.zB,"60e3090027a3d5604202b6d8326408b1a1c7f2da7d":()=>k.TS,"60f0f6d0a20a184b4a52f981712e41ee63ff612017":()=>i.mg,"7091b99a789641a5b42e215c5d4df0e01635ea4d0c":()=>e.h$,"78aa2f0aa9b7272a731bab5e297ecdda045a5f8e9d":()=>e.g3});var e=c(13415),f=c(3890),g=c(50995),h=c(15754),i=c(63236),j=c(32138),k=c(83),l=c(39098),m=c(79615),n=c(92814),o=c(16856),p=c(81521),q=a([e,h,j,p]);[e,h,j,p]=q.then?(await q)():q,d()}catch(a){d(a)}})}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[9803,2356,8404,9739,5895,133,6602,1888],()=>b(b.s=77705));module.exports=c})();
62
+ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let c of a.seen.entries()){let d=c[1];if(b===c[0]){e(c);continue}if(a.external){let d=a.external.registry.get(c[0])?.id;if(b!==c[0]&&d){e(c);continue}}if(a.metadataRegistry.get(c[0])?.id||d.cycle||d.count>1&&"ref"===a.reused){e(c);continue}}}function ce(a,b){let c=a.seen.get(b);if(!c)throw Error("Unprocessed schema. This is a bug in Zod.");let d=b=>{let c=a.seen.get(b);if(null===c.ref)return;let e=c.def??c.schema,f={...e},g=c.ref;if(c.ref=null,g){d(g);let c=a.seen.get(g),h=c.schema;if(h.$ref&&("draft-07"===a.target||"draft-04"===a.target||"openapi-3.0"===a.target)?(e.allOf=e.allOf??[],e.allOf.push(h)):Object.assign(e,h),Object.assign(e,f),b._zod.parent===g)for(let a in e)"$ref"!==a&&"allOf"!==a&&(a in f||delete e[a]);if(h.$ref&&c.def)for(let a in e)"$ref"!==a&&"allOf"!==a&&a in c.def&&JSON.stringify(e[a])===JSON.stringify(c.def[a])&&delete e[a]}let h=b._zod.parent;if(h&&h!==g){d(h);let b=a.seen.get(h);if(b?.schema.$ref&&(e.$ref=b.schema.$ref,b.def))for(let a in e)"$ref"!==a&&"allOf"!==a&&a in b.def&&JSON.stringify(e[a])===JSON.stringify(b.def[a])&&delete e[a]}a.override({zodSchema:b,jsonSchema:e,path:c.path??[]})};for(let b of[...a.seen.entries()].reverse())d(b[0]);let e={};if("draft-2020-12"===a.target?e.$schema="https://json-schema.org/draft/2020-12/schema":"draft-07"===a.target?e.$schema="http://json-schema.org/draft-07/schema#":"draft-04"===a.target?e.$schema="http://json-schema.org/draft-04/schema#":a.target,a.external?.uri){let c=a.external.registry.get(b)?.id;if(!c)throw Error("Schema is missing an `id` property");e.$id=a.external.uri(c)}Object.assign(e,c.def??c.schema);let f=a.metadataRegistry.get(b)?.id;void 0!==f&&e.id===f&&delete e.id;let g=a.external?.defs??{};for(let b of a.seen.entries()){let a=b[1];a.def&&a.defId&&(a.def.id===a.defId&&delete a.def.id,g[a.defId]=a.def)}a.external||Object.keys(g).length>0&&("draft-2020-12"===a.target?e.$defs=g:e.definitions=g);try{let c=JSON.parse(JSON.stringify(e));return Object.defineProperty(c,"~standard",{value:{...b["~standard"],jsonSchema:{input:cf(b,"input",a.processors),output:cf(b,"output",a.processors)}},enumerable:!1,writable:!1}),c}catch(a){throw Error("Error converting schema to JSON.")}}let cf=(a,b,c={})=>d=>{let{libraryOptions:e,target:f}=d??{},g=cb({...e??{},target:f,io:b,processors:c});return cc(a,g),cd(g,a),ce(g,a)},cg={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},ch=(a,b,c,d)=>{let e=a._zod.def;cc(e.innerType,b,d),b.seen.get(a).ref=e.innerType},ci=z("ZodISODateTime",(a,b)=>{bf.init(a,b),cF.init(a,b)}),cj=z("ZodISODate",(a,b)=>{bg.init(a,b),cF.init(a,b)}),ck=z("ZodISOTime",(a,b)=>{bh.init(a,b),cF.init(a,b)}),cl=z("ZodISODuration",(a,b)=>{bi.init(a,b),cF.init(a,b)}),cm=z("ZodError",(a,b)=>{aU.init(a,b),a.name="ZodError",Object.defineProperties(a,{format:{value:b=>(function(a,b=a=>a.message){let c={_errors:[]},d=(a,e=[])=>{for(let f of a.issues)if("invalid_union"===f.code&&f.errors.length)f.errors.map(a=>d({issues:a},[...e,...f.path]));else if("invalid_key"===f.code)d({issues:f.issues},[...e,...f.path]);else if("invalid_element"===f.code)d({issues:f.issues},[...e,...f.path]);else{let a=[...e,...f.path];if(0===a.length)c._errors.push(b(f));else{let d=c,e=0;for(;e<a.length;){let c=a[e];e===a.length-1?(d[c]=d[c]||{_errors:[]},d[c]._errors.push(b(f))):d[c]=d[c]||{_errors:[]},d=d[c],e++}}}};return d(a),c})(a,b)},flatten:{value:b=>(function(a,b=a=>a.message){let c={},d=[];for(let e of a.issues)e.path.length>0?(c[e.path[0]]=c[e.path[0]]||[],c[e.path[0]].push(b(e))):d.push(b(e));return{formErrors:d,fieldErrors:c}})(a,b)},addIssue:{value:b=>{a.issues.push(b),a.message=JSON.stringify(a.issues,ad,2)}},addIssues:{value:b=>{a.issues.push(...b),a.message=JSON.stringify(a.issues,ad,2)}},isEmpty:{get:()=>0===a.issues.length}})},{Parent:Error}),cn=aW(cm),co=aX(cm),cp=aY(cm),cq=a$(cm),cr=(a,b,c)=>{let d=c?{...c,direction:"backward"}:{direction:"backward"};return aW(cm)(a,b,d)},cs=(a,b,c)=>aW(cm)(a,b,c),ct=async(a,b,c)=>{let d=c?{...c,direction:"backward"}:{direction:"backward"};return aX(cm)(a,b,d)},cu=async(a,b,c)=>aX(cm)(a,b,c),cv=(a,b,c)=>{let d=c?{...c,direction:"backward"}:{direction:"backward"};return aY(cm)(a,b,d)},cw=(a,b,c)=>aY(cm)(a,b,c),cx=async(a,b,c)=>{let d=c?{...c,direction:"backward"}:{direction:"backward"};return a$(cm)(a,b,d)},cy=async(a,b,c)=>a$(cm)(a,b,c),cz=new WeakMap;function cA(a,b,c){let d=Object.getPrototypeOf(a),e=cz.get(d);if(e||(e=new Set,cz.set(d,e)),!e.has(b))for(let a in e.add(b),c){let b=c[a];Object.defineProperty(d,a,{configurable:!0,enumerable:!1,get(){let c=b.bind(this);return Object.defineProperty(this,a,{configurable:!0,writable:!0,enumerable:!0,value:c}),c},set(b){Object.defineProperty(this,a,{configurable:!0,writable:!0,enumerable:!0,value:b})}})}}let cB=z("ZodType",(a,b)=>(a1.init(a,b),Object.assign(a["~standard"],{jsonSchema:{input:cf(a,"input"),output:cf(a,"output")}}),a.toJSONSchema=((a,b={})=>c=>{let d=cb({...c,processors:b});return cc(a,d),cd(d,a),ce(d,a)})(a,{}),a.def=b,a.type=b.type,Object.defineProperty(a,"_def",{value:b}),a.parse=(b,c)=>cn(a,b,c,{callee:a.parse}),a.safeParse=(b,c)=>cp(a,b,c),a.parseAsync=async(b,c)=>co(a,b,c,{callee:a.parseAsync}),a.safeParseAsync=async(b,c)=>cq(a,b,c),a.spa=a.safeParseAsync,a.encode=(b,c)=>cr(a,b,c),a.decode=(b,c)=>cs(a,b,c),a.encodeAsync=async(b,c)=>ct(a,b,c),a.decodeAsync=async(b,c)=>cu(a,b,c),a.safeEncode=(b,c)=>cv(a,b,c),a.safeDecode=(b,c)=>cw(a,b,c),a.safeEncodeAsync=async(b,c)=>cx(a,b,c),a.safeDecodeAsync=async(b,c)=>cy(a,b,c),cA(a,"ZodType",{check(...a){let b=this.def;return this.clone(aj(b,{checks:[...b.checks??[],...a.map(a=>"function"==typeof a?{_zod:{check:a,def:{check:"custom"},onattach:[]}}:a)]}),{parent:!0})},with(...a){return this.check(...a)},clone(a,b){return as(this,a,b)},brand(){return this},register(a,b){return a.add(this,b),this},refine(a,b){return this.check(function(a,b={}){return new dt({type:"custom",check:"custom",fn:a,...at(b)})}(a,b))},superRefine(a,b){return this.check(function(a,b){let c=function(a,b){let c=new aB({check:"custom",...at(b)});return c._zod.check=a,c}(b=>(b.addIssue=a=>{"string"==typeof a?b.issues.push(aA(a,b.value,c._zod.def)):(a.fatal&&(a.continue=!1),a.code??(a.code="custom"),a.input??(a.input=b.value),a.inst??(a.inst=c),a.continue??(a.continue=!c._zod.def.abort),b.issues.push(aA(a)))},a(b.value,b)),b);return c}(a,b))},overwrite(a){return this.check(ca(a))},optional(){return dh(this)},exactOptional(){var a;return a=this,new di({type:"optional",innerType:a})},nullable(){return dk(this)},nullish(){return dh(dk(this))},nonoptional(a){var b;return b=this,new dn({type:"nonoptional",innerType:b,...at(a)})},array(){return c7(this)},or(a){return new da({type:"union",options:[this,a],...at(void 0)})},and(a){var b;return b=this,new db({type:"intersection",left:b,right:a})},transform(a){return dr(this,new df({type:"transform",transform:a}))},default(a){var b,c;return b=this,c=a,new dl({type:"default",innerType:b,get defaultValue(){return"function"==typeof c?c():ap(c)}})},prefault(a){var b,c;return b=this,c=a,new dm({type:"prefault",innerType:b,get defaultValue(){return"function"==typeof c?c():ap(c)}})},catch(a){var b,c;return b=this,new dp({type:"catch",innerType:b,catchValue:"function"==typeof(c=a)?c:()=>c})},pipe(a){return dr(this,a)},readonly(){var a;return a=this,new ds({type:"readonly",innerType:a})},describe(a){let b=this.clone();return b0.add(b,{description:a}),b},meta(...a){if(0===a.length)return b0.get(this);let b=this.clone();return b0.add(b,a[0]),b},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(a){return a(this)}}),Object.defineProperty(a,"description",{get:()=>b0.get(a)?.description,configurable:!0}),a)),cC=z("_ZodString",(a,b)=>{a2.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(b,c,d)=>((a,b,c,d)=>{c.type="string";let{minimum:e,maximum:f,format:g,patterns:h,contentEncoding:i}=a._zod.bag;if("number"==typeof e&&(c.minLength=e),"number"==typeof f&&(c.maxLength=f),g&&(c.format=cg[g]??g,""===c.format&&delete c.format,"time"===g&&delete c.format),i&&(c.contentEncoding=i),h&&h.size>0){let a=[...h];1===a.length?c.pattern=a[0].source:a.length>1&&(c.allOf=[...a.map(a=>({..."draft-07"===b.target||"draft-04"===b.target||"openapi-3.0"===b.target?{type:"string"}:{},pattern:a.source}))])}})(a,b,c,0);let c=a._zod.bag;a.format=c.format??null,a.minLength=c.minimum??null,a.maxLength=c.maximum??null,cA(a,"_ZodString",{regex(...a){return this.check(function(a,b){return new aL({check:"string_format",format:"regex",...at(b),pattern:a})}(...a))},includes(...a){return this.check(function(a,b){return new aO({check:"string_format",format:"includes",...at(b),includes:a})}(...a))},startsWith(...a){return this.check(function(a,b){return new aP({check:"string_format",format:"starts_with",...at(b),prefix:a})}(...a))},endsWith(...a){return this.check(function(a,b){return new aQ({check:"string_format",format:"ends_with",...at(b),suffix:a})}(...a))},min(...a){return this.check(b8(...a))},max(...a){return this.check(b7(...a))},length(...a){return this.check(b9(...a))},nonempty(...a){return this.check(b8(1,...a))},lowercase(a){return this.check(new aM({check:"string_format",format:"lowercase",...at(a)}))},uppercase(a){return this.check(new aN({check:"string_format",format:"uppercase",...at(a)}))},trim(){return this.check(ca(a=>a.trim()))},normalize(...a){return this.check(function(a){return ca(b=>b.normalize(a))}(...a))},toLowerCase(){return this.check(ca(a=>a.toLowerCase()))},toUpperCase(){return this.check(ca(a=>a.toUpperCase()))},slugify(){return this.check(ca(a=>a.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")))}})}),cD=z("ZodString",(a,b)=>{a2.init(a,b),cC.init(a,b),a.email=b=>a.check(new cG({type:"string",format:"email",check:"string_format",abort:!1,...at(b)})),a.url=b=>a.check(new cJ({type:"string",format:"url",check:"string_format",abort:!1,...at(b)})),a.jwt=b=>a.check(new cY({type:"string",format:"jwt",check:"string_format",abort:!1,...at(b)})),a.emoji=b=>a.check(new cK({type:"string",format:"emoji",check:"string_format",abort:!1,...at(b)})),a.guid=b=>a.check(b1(cH,b)),a.uuid=b=>a.check(new cI({type:"string",format:"uuid",check:"string_format",abort:!1,...at(b)})),a.uuidv4=b=>a.check(new cI({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...at(b)})),a.uuidv6=b=>a.check(new cI({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...at(b)})),a.uuidv7=b=>a.check(new cI({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...at(b)})),a.nanoid=b=>a.check(new cL({type:"string",format:"nanoid",check:"string_format",abort:!1,...at(b)})),a.guid=b=>a.check(b1(cH,b)),a.cuid=b=>a.check(new cM({type:"string",format:"cuid",check:"string_format",abort:!1,...at(b)})),a.cuid2=b=>a.check(new cN({type:"string",format:"cuid2",check:"string_format",abort:!1,...at(b)})),a.ulid=b=>a.check(new cO({type:"string",format:"ulid",check:"string_format",abort:!1,...at(b)})),a.base64=b=>a.check(new cV({type:"string",format:"base64",check:"string_format",abort:!1,...at(b)})),a.base64url=b=>a.check(new cW({type:"string",format:"base64url",check:"string_format",abort:!1,...at(b)})),a.xid=b=>a.check(new cP({type:"string",format:"xid",check:"string_format",abort:!1,...at(b)})),a.ksuid=b=>a.check(new cQ({type:"string",format:"ksuid",check:"string_format",abort:!1,...at(b)})),a.ipv4=b=>a.check(new cR({type:"string",format:"ipv4",check:"string_format",abort:!1,...at(b)})),a.ipv6=b=>a.check(new cS({type:"string",format:"ipv6",check:"string_format",abort:!1,...at(b)})),a.cidrv4=b=>a.check(new cT({type:"string",format:"cidrv4",check:"string_format",abort:!1,...at(b)})),a.cidrv6=b=>a.check(new cU({type:"string",format:"cidrv6",check:"string_format",abort:!1,...at(b)})),a.e164=b=>a.check(new cX({type:"string",format:"e164",check:"string_format",abort:!1,...at(b)})),a.datetime=b=>a.check(new ci({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...at(b)})),a.date=b=>a.check(new cj({type:"string",format:"date",check:"string_format",...at(b)})),a.time=b=>a.check(new ck({type:"string",format:"time",check:"string_format",precision:null,...at(b)})),a.duration=b=>a.check(new cl({type:"string",format:"duration",check:"string_format",...at(b)}))});function cE(a){return new cD({type:"string",...at(a)})}let cF=z("ZodStringFormat",(a,b)=>{a3.init(a,b),cC.init(a,b)}),cG=z("ZodEmail",(a,b)=>{a6.init(a,b),cF.init(a,b)}),cH=z("ZodGUID",(a,b)=>{a4.init(a,b),cF.init(a,b)}),cI=z("ZodUUID",(a,b)=>{a5.init(a,b),cF.init(a,b)}),cJ=z("ZodURL",(a,b)=>{a7.init(a,b),cF.init(a,b)}),cK=z("ZodEmoji",(a,b)=>{a8.init(a,b),cF.init(a,b)}),cL=z("ZodNanoID",(a,b)=>{a9.init(a,b),cF.init(a,b)}),cM=z("ZodCUID",(a,b)=>{ba.init(a,b),cF.init(a,b)}),cN=z("ZodCUID2",(a,b)=>{bb.init(a,b),cF.init(a,b)}),cO=z("ZodULID",(a,b)=>{bc.init(a,b),cF.init(a,b)}),cP=z("ZodXID",(a,b)=>{bd.init(a,b),cF.init(a,b)}),cQ=z("ZodKSUID",(a,b)=>{be.init(a,b),cF.init(a,b)}),cR=z("ZodIPv4",(a,b)=>{bj.init(a,b),cF.init(a,b)}),cS=z("ZodIPv6",(a,b)=>{bk.init(a,b),cF.init(a,b)}),cT=z("ZodCIDRv4",(a,b)=>{bl.init(a,b),cF.init(a,b)}),cU=z("ZodCIDRv6",(a,b)=>{bm.init(a,b),cF.init(a,b)}),cV=z("ZodBase64",(a,b)=>{bo.init(a,b),cF.init(a,b)}),cW=z("ZodBase64URL",(a,b)=>{bp.init(a,b),cF.init(a,b)}),cX=z("ZodE164",(a,b)=>{bq.init(a,b),cF.init(a,b)}),cY=z("ZodJWT",(a,b)=>{br.init(a,b),cF.init(a,b)}),cZ=z("ZodNumber",(a,b)=>{bs.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(b,c,d)=>((a,b,c,d)=>{let{minimum:e,maximum:f,format:g,multipleOf:h,exclusiveMaximum:i,exclusiveMinimum:j}=a._zod.bag;"string"==typeof g&&g.includes("int")?c.type="integer":c.type="number";let k="number"==typeof j&&j>=(e??-1/0),l="number"==typeof i&&i<=(f??1/0),m="draft-04"===b.target||"openapi-3.0"===b.target;k?m?(c.minimum=j,c.exclusiveMinimum=!0):c.exclusiveMinimum=j:"number"==typeof e&&(c.minimum=e),l?m?(c.maximum=i,c.exclusiveMaximum=!0):c.exclusiveMaximum=i:"number"==typeof f&&(c.maximum=f),"number"==typeof h&&(c.multipleOf=h)})(a,b,c,0),cA(a,"ZodNumber",{gt(a,b){return this.check(b4(a,b))},gte(a,b){return this.check(b5(a,b))},min(a,b){return this.check(b5(a,b))},lt(a,b){return this.check(b2(a,b))},lte(a,b){return this.check(b3(a,b))},max(a,b){return this.check(b3(a,b))},int(a){return this.check(c0(a))},safe(a){return this.check(c0(a))},positive(a){return this.check(b4(0,a))},nonnegative(a){return this.check(b5(0,a))},negative(a){return this.check(b2(0,a))},nonpositive(a){return this.check(b3(0,a))},multipleOf(a,b){return this.check(b6(a,b))},step(a,b){return this.check(b6(a,b))},finite(){return this}});let c=a._zod.bag;a.minValue=Math.max(c.minimum??-1/0,c.exclusiveMinimum??-1/0)??null,a.maxValue=Math.min(c.maximum??1/0,c.exclusiveMaximum??1/0)??null,a.isInt=(c.format??"").includes("int")||Number.isSafeInteger(c.multipleOf??.5),a.isFinite=!0,a.format=c.format??null});function c$(a){return new cZ({type:"number",checks:[],...at(a)})}let c_=z("ZodNumberFormat",(a,b)=>{bt.init(a,b),cZ.init(a,b)});function c0(a){return new c_({type:"number",check:"number_format",abort:!1,format:"safeint",...at(a)})}let c1=z("ZodBoolean",(a,b)=>{bu.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(a,b,c)=>{b.type="boolean"}});function c2(a){return new c1({type:"boolean",...at(a)})}let c3=z("ZodUnknown",(a,b)=>{bv.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(a,b,c)=>{}});function c4(){return new c3({type:"unknown"})}let c5=z("ZodNever",(a,b)=>{bw.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(a,b,c)=>{b.not={}}}),c6=z("ZodArray",(a,b)=>{by.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(b,c,d)=>((a,b,c,d)=>{let e=a._zod.def,{minimum:f,maximum:g}=a._zod.bag;"number"==typeof f&&(c.minItems=f),"number"==typeof g&&(c.maxItems=g),c.type="array",c.items=cc(e.element,b,{...d,path:[...d.path,"items"]})})(a,b,c,d),a.element=b.element,cA(a,"ZodArray",{min(a,b){return this.check(b8(a,b))},nonempty(a){return this.check(b8(1,a))},max(a,b){return this.check(b7(a,b))},length(a,b){return this.check(b9(a,b))},unwrap(){return this.element}})});function c7(a,b){return new c6({type:"array",element:a,...at(b)})}let c8=z("ZodObject",(a,b)=>{bD.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(b,c,d)=>((a,b,c,d)=>{let e=a._zod.def;c.type="object",c.properties={};let f=e.shape;for(let a in f)c.properties[a]=cc(f[a],b,{...d,path:[...d.path,"properties",a]});let g=new Set([...new Set(Object.keys(f))].filter(a=>{let c=e.shape[a]._zod;return"input"===b.io?void 0===c.optin:void 0===c.optout}));g.size>0&&(c.required=Array.from(g)),e.catchall?._zod.def.type==="never"?c.additionalProperties=!1:e.catchall?e.catchall&&(c.additionalProperties=cc(e.catchall,b,{...d,path:[...d.path,"additionalProperties"]})):"output"===b.io&&(c.additionalProperties=!1)})(a,b,c,d),ah(a,"shape",()=>b.shape),cA(a,"ZodObject",{keyof(){return dd(Object.keys(this._zod.def.shape))},catchall(a){return this.clone({...this._zod.def,catchall:a})},passthrough(){return this.clone({...this._zod.def,catchall:c4()})},loose(){return this.clone({...this._zod.def,catchall:c4()})},strict(){return this.clone({...this._zod.def,catchall:new c5({type:"never",...at(void 0)})})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(a){return function(a,b){if(!ao(b))throw Error("Invalid input to extend: expected a plain object");let c=a._zod.def.checks;if(c&&c.length>0){let c=a._zod.def.shape;for(let a in b)if(void 0!==Object.getOwnPropertyDescriptor(c,a))throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let d=aj(a._zod.def,{get shape(){let c={...a._zod.def.shape,...b};return ai(this,"shape",c),c}});return as(a,d)}(this,a)},safeExtend(a){var b=this;if(!ao(a))throw Error("Invalid input to safeExtend: expected a plain object");let c=aj(b._zod.def,{get shape(){let c={...b._zod.def.shape,...a};return ai(this,"shape",c),c}});return as(b,c)},merge(a){var b=this;if(b._zod.def.checks?.length)throw Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");let c=aj(b._zod.def,{get shape(){let c={...b._zod.def.shape,...a._zod.def.shape};return ai(this,"shape",c),c},get catchall(){return a._zod.def.catchall},checks:a._zod.def.checks??[]});return as(b,c)},pick(a){return function(a,b){let c=a._zod.def,d=c.checks;if(d&&d.length>0)throw Error(".pick() cannot be used on object schemas containing refinements");let e=aj(a._zod.def,{get shape(){let a={};for(let d in b){if(!(d in c.shape))throw Error(`Unrecognized key: "${d}"`);b[d]&&(a[d]=c.shape[d])}return ai(this,"shape",a),a},checks:[]});return as(a,e)}(this,a)},omit(a){return function(a,b){let c=a._zod.def,d=c.checks;if(d&&d.length>0)throw Error(".omit() cannot be used on object schemas containing refinements");let e=aj(a._zod.def,{get shape(){let d={...a._zod.def.shape};for(let a in b){if(!(a in c.shape))throw Error(`Unrecognized key: "${a}"`);b[a]&&delete d[a]}return ai(this,"shape",d),d},checks:[]});return as(a,e)}(this,a)},partial(...a){return function(a,b,c){let d=b._zod.def.checks;if(d&&d.length>0)throw Error(".partial() cannot be used on object schemas containing refinements");let e=aj(b._zod.def,{get shape(){let d=b._zod.def.shape,e={...d};if(c)for(let b in c){if(!(b in d))throw Error(`Unrecognized key: "${b}"`);c[b]&&(e[b]=a?new a({type:"optional",innerType:d[b]}):d[b])}else for(let b in d)e[b]=a?new a({type:"optional",innerType:d[b]}):d[b];return ai(this,"shape",e),e},checks:[]});return as(b,e)}(dg,this,a[0])},required(...a){return function(a,b,c){let d=aj(b._zod.def,{get shape(){let d=b._zod.def.shape,e={...d};if(c)for(let b in c){if(!(b in e))throw Error(`Unrecognized key: "${b}"`);c[b]&&(e[b]=new a({type:"nonoptional",innerType:d[b]}))}else for(let b in d)e[b]=new a({type:"nonoptional",innerType:d[b]});return ai(this,"shape",e),e}});return as(b,d)}(dn,this,a[0])}})});function c9(a,b){return new c8({type:"object",shape:a??{},...at(b)})}let da=z("ZodUnion",(a,b)=>{bF.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(b,c,d)=>((a,b,c,d)=>{let e=a._zod.def,f=!1===e.inclusive,g=e.options.map((a,c)=>cc(a,b,{...d,path:[...d.path,f?"oneOf":"anyOf",c]}));f?c.oneOf=g:c.anyOf=g})(a,b,c,d),a.options=b.options}),db=z("ZodIntersection",(a,b)=>{bG.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(b,c,d)=>((a,b,c,d)=>{let e=a._zod.def,f=cc(e.left,b,{...d,path:[...d.path,"allOf",0]}),g=cc(e.right,b,{...d,path:[...d.path,"allOf",1]}),h=a=>"allOf"in a&&1===Object.keys(a).length;c.allOf=[...h(f)?f.allOf:[f],...h(g)?g.allOf:[g]]})(a,b,c,d)}),dc=z("ZodEnum",(a,b)=>{bI.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(b,c,d)=>((a,b,c,d)=>{let e=ac(a._zod.def.entries);e.every(a=>"number"==typeof a)&&(c.type="number"),e.every(a=>"string"==typeof a)&&(c.type="string"),c.enum=e})(a,0,c,0),a.enum=b.entries,a.options=Object.values(b.entries);let c=new Set(Object.keys(b.entries));a.extract=(a,d)=>{let e={};for(let d of a)if(c.has(d))e[d]=b.entries[d];else throw Error(`Key ${d} not found in enum`);return new dc({...b,checks:[],...at(d),entries:e})},a.exclude=(a,d)=>{let e={...b.entries};for(let b of a)if(c.has(b))delete e[b];else throw Error(`Key ${b} not found in enum`);return new dc({...b,checks:[],...at(d),entries:e})}});function dd(a,b){return new dc({type:"enum",entries:Array.isArray(a)?Object.fromEntries(a.map(a=>[a,a])):a,...at(b)})}let de=z("ZodLiteral",(a,b)=>{bJ.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(b,c,d)=>((a,b,c,d)=>{let e=a._zod.def,f=[];for(let a of e.values)if(void 0===a){if("throw"===b.unrepresentable)throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if("bigint"==typeof a)if("throw"===b.unrepresentable)throw Error("BigInt literals cannot be represented in JSON Schema");else f.push(Number(a));else f.push(a);if(0===f.length);else if(1===f.length){let a=f[0];c.type=null===a?"null":typeof a,"draft-04"===b.target||"openapi-3.0"===b.target?c.enum=[a]:c.const=a}else f.every(a=>"number"==typeof a)&&(c.type="number"),f.every(a=>"string"==typeof a)&&(c.type="string"),f.every(a=>"boolean"==typeof a)&&(c.type="boolean"),f.every(a=>null===a)&&(c.type="null"),c.enum=f})(a,b,c,0),a.values=new Set(b.values),Object.defineProperty(a,"value",{get(){if(b.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return b.values[0]}})}),df=z("ZodTransform",(a,b)=>{bK.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(a,b,c)=>((a,b,c,d)=>{if("throw"===b.unrepresentable)throw Error("Transforms cannot be represented in JSON Schema")})(0,a,0,0),a._zod.parse=(c,d)=>{if("backward"===d.direction)throw new B(a.constructor.name);c.addIssue=d=>{"string"==typeof d?c.issues.push(aA(d,c.value,b)):(d.fatal&&(d.continue=!1),d.code??(d.code="custom"),d.input??(d.input=c.value),d.inst??(d.inst=a),c.issues.push(aA(d)))};let e=b.transform(c.value,c);return e instanceof Promise?e.then(a=>(c.value=a,c.fallback=!0,c)):(c.value=e,c.fallback=!0,c)}}),dg=z("ZodOptional",(a,b)=>{bM.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(b,c,d)=>ch(a,b,c,d),a.unwrap=()=>a._zod.def.innerType});function dh(a){return new dg({type:"optional",innerType:a})}let di=z("ZodExactOptional",(a,b)=>{bN.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(b,c,d)=>ch(a,b,c,d),a.unwrap=()=>a._zod.def.innerType}),dj=z("ZodNullable",(a,b)=>{bO.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(b,c,d)=>((a,b,c,d)=>{let e=a._zod.def,f=cc(e.innerType,b,d),g=b.seen.get(a);"openapi-3.0"===b.target?(g.ref=e.innerType,c.nullable=!0):c.anyOf=[f,{type:"null"}]})(a,b,c,d),a.unwrap=()=>a._zod.def.innerType});function dk(a){return new dj({type:"nullable",innerType:a})}let dl=z("ZodDefault",(a,b)=>{bP.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(b,c,d)=>((a,b,c,d)=>{let e=a._zod.def;cc(e.innerType,b,d),b.seen.get(a).ref=e.innerType,c.default=JSON.parse(JSON.stringify(e.defaultValue))})(a,b,c,d),a.unwrap=()=>a._zod.def.innerType,a.removeDefault=a.unwrap}),dm=z("ZodPrefault",(a,b)=>{bR.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(b,c,d)=>((a,b,c,d)=>{let e=a._zod.def;cc(e.innerType,b,d),b.seen.get(a).ref=e.innerType,"input"===b.io&&(c._prefault=JSON.parse(JSON.stringify(e.defaultValue)))})(a,b,c,d),a.unwrap=()=>a._zod.def.innerType}),dn=z("ZodNonOptional",(a,b)=>{bS.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(b,c,d)=>((a,b,c,d)=>{let e=a._zod.def;cc(e.innerType,b,d),b.seen.get(a).ref=e.innerType})(a,b,0,d),a.unwrap=()=>a._zod.def.innerType}),dp=z("ZodCatch",(a,b)=>{bU.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(b,c,d)=>((a,b,c,d)=>{let e,f=a._zod.def;cc(f.innerType,b,d),b.seen.get(a).ref=f.innerType;try{e=f.catchValue(void 0)}catch{throw Error("Dynamic catch values are not supported in JSON Schema")}c.default=e})(a,b,c,d),a.unwrap=()=>a._zod.def.innerType,a.removeCatch=a.unwrap}),dq=z("ZodPipe",(a,b)=>{bV.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(b,c,d)=>((a,b,c,d)=>{let e=a._zod.def,f=e.in._zod.traits.has("$ZodTransform"),g="input"===b.io?f?e.out:e.in:e.out;cc(g,b,d),b.seen.get(a).ref=g})(a,b,0,d),a.in=b.in,a.out=b.out});function dr(a,b){return new dq({type:"pipe",in:a,out:b})}let ds=z("ZodReadonly",(a,b)=>{bX.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(b,c,d)=>((a,b,c,d)=>{let e=a._zod.def;cc(e.innerType,b,d),b.seen.get(a).ref=e.innerType,c.readOnly=!0})(a,b,c,d),a.unwrap=()=>a._zod.def.innerType}),dt=z("ZodCustom",(a,b)=>{bZ.init(a,b),cB.init(a,b),a._zod.processJSONSchema=(a,b,c)=>((a,b,c,d)=>{if("throw"===b.unrepresentable)throw Error("Custom types cannot be represented in JSON Schema")})(0,a,0,0)}),du=["analyze","chat","rag","embed","quick"],dv={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."}},dw=c9({"claude-code":c9({enabled:c2().default(!0)}),codex:c9({enabled:c2().default(!0)}),ollama:c9({enabled:c2().default(!0),baseUrl:cE().url().default("http://localhost:11434")})}),dx=c9({harness:dd(["claude-code","codex","ollama"]),model:cE().min(1),allowedTools:c7(cE()).default([])}),dy=["english","русский","espa\xf1ol","deutsch","fran\xe7ais","中文","日本語"],dz=["auto","jpeg","webp","original"],dA=c9({enabled:c2().default(!0),maxDimension:c$().int().min(256).max(8192).default(2e3),quality:c$().int().min(40).max(100).default(85),format:dd(dz).default("auto")});c9({version:(function(a,b){return new de({type:"literal",values:Array.isArray(1)?1:[a],...at(void 0)})})(1).default(1),language:cE().min(1).default("english"),onboardedAt:cE().optional(),userName:cE().default(""),timezone:cE().default(""),uiMode:dd(["simple","advanced"]).default("simple"),imageProcessing:dA.default({enabled:!0,maxDimension:2e3,quality:85,format:"auto"}),harnesses:dw.default({"claude-code":{enabled:!0},codex:{enabled:!0},ollama:{enabled:!0,baseUrl:"http://localhost:11434"}}),assignments:c9({analyze:dx,chat:dx,rag:dx,embed:dx,quick:dx}).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:c9({enabled:c7(cE()).default(["google","yandex","apple","osm"])}).default({enabled:["google","yandex","apple","osm"]}),ngrok:c9({authtoken:cE().default(""),apiKey:cE().default(""),domain:cE().default(""),port:c$().int().min(1).max(65535).default(3210)}).default({authtoken:"",apiKey:"",domain:"",port:3210})}).parse({});var dB=c(69552);let dC=(0,l.A)("GitMerge",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M6 21V9a9 9 0 0 0 9 9",key:"7kw0sc"}]]),dD=(0,l.A)("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);var dE=c(45477),dF=c(16551),dG=c(3265);dG.callServer,dG.findSourceMapURL,dG.callServer,dG.findSourceMapURL;let dH=(0,dG.createServerReference)("40a3e36aacb30909d62218d910e930b2c2e2d9ae38",dG.callServer,void 0,dG.findSourceMapURL,"mergeTemplateAction"),dI=(0,dG.createServerReference)("60e5bac5fbd5481afb8f3306d59be383fc6232a761",dG.callServer,void 0,dG.findSourceMapURL,"saveTemplateAction"),dJ=(0,dG.createServerReference)("407e7e42eddb3d2a7e8b34e1dbc0f4293658dc6fe4",dG.callServer,void 0,dG.findSourceMapURL,"resetTemplateAction"),dK={body:"",defaultBody:"",missingSections:[],path:"",loading:!0,saving:!1,resetting:!1,merging:!1,variables:[]};function dL(){let[a,b]=(0,g.useState)([]),[c,d]=(0,g.useState)(null),[e,h]=(0,g.useState)({}),[,k]=(0,g.useTransition)(),[,l]=(0,g.useTransition)();return 0===a.length?(0,f.jsx)(p.Zp,{children:(0,f.jsxs)(p.Wu,{className:"py-6 text-sm text-muted-foreground",children:[(0,f.jsx)(i.A,{className:"inline h-4 w-4 animate-spin mr-2"})," Loading templates…"]})}):(0,f.jsxs)(dF.tU,{value:c??a[0].name,onValueChange:d,children:[(0,f.jsx)(dF.j7,{children:a.map(a=>(0,f.jsx)(dF.Xi,{value:a.name,children:a.label},a.name))}),a.map(a=>{let b=e[a.name]??dK;return(0,f.jsx)(dF.av,{value:a.name,className:"mt-3",children:(0,f.jsx)(p.Zp,{children:(0,f.jsxs)(p.Wu,{className:"pt-6 space-y-3",children:[b.missingSections.length>0&&(0,f.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,f.jsx)(dB.A,{className:"h-4 w-4 mt-0.5 shrink-0"}),(0,f.jsxs)("div",{className:"flex-1 space-y-1",children:[(0,f.jsxs)("div",{className:"font-medium",children:["Шаблон по умолчанию обновился (",b.missingSections.length," ","новых секций)"]}),(0,f.jsxs)("div",{className:"text-amber-800/80",children:["Отсутствует в твоём файле:"," ",b.missingSections.map((a,c)=>(0,f.jsxs)("span",{children:[(0,f.jsxs)("code",{className:"font-mono",children:["## ",a]}),c<b.missingSections.length-1?", ":""]},a))]})]}),(0,f.jsxs)(o.$,{size:"sm",variant:"outline",onClick:()=>{var b;e[b=a.name]&&(h(a=>({...a,[b]:{...a[b]??dK,merging:!0}})),(async()=>{let a=await dH(b);if(!a.ok){n.oR.error(`Merge failed: ${a.error}`),h(a=>({...a,[b]:{...a[b]??dK,merging:!1}}));return}n.oR.success(0===a.appended.length?"Уже актуально":`Добавлено ${a.appended.length} секций: ${a.appended.join(", ")}`),h(c=>({...c,[b]:{...c[b]??dK,body:a.body,missingSections:[],merging:!1}}))})())},disabled:b.merging||b.saving||b.resetting,className:"border-amber-400 hover:bg-amber-100 shrink-0",children:[b.merging?(0,f.jsx)(i.A,{className:"mr-1 h-3.5 w-3.5 animate-spin"}):(0,f.jsx)(dC,{className:"mr-1 h-3.5 w-3.5"}),"Добавить недостающее"]})]}),(0,f.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-xs",children:[(0,f.jsx)("span",{className:"text-muted-foreground",children:"Variables:"}),b.variables.map(a=>(0,f.jsx)(x.E,{variant:"outline",className:"font-mono",children:`{{${a}}}`},a))]}),(0,f.jsx)(dE.T,{value:b.body,onChange:b=>{var c,d;return c=a.name,d=b.target.value,void h(a=>{let b=a[c]??dK;return{...a,[c]:{...b,body:d}}})},rows:18,className:"font-mono text-xs",disabled:b.loading,placeholder:b.loading?"loading…":""}),(0,f.jsxs)("div",{className:"flex items-center justify-between",children:[(0,f.jsx)("div",{className:"text-xs text-muted-foreground font-mono truncate",children:b.path}),(0,f.jsxs)("div",{className:"flex items-center gap-2",children:[(0,f.jsxs)(o.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>{var b;return b=a.name,void(confirm(`Reset ${b}.md to the default template?`)&&l(async()=>{let a=e[b]??dK;h(c=>({...c,[b]:{...a,resetting:!0}}));let c=await dJ(b);h(a=>{let d=a[b]??dK;return{...a,[b]:{...d,resetting:!1,...c.ok&&c.body?{body:c.body}:{}}}}),c.ok?n.oR.success(`${b}.md reset`):n.oR.error(`Reset failed: ${c.error}`)}))},disabled:b.resetting||b.saving,children:[(0,f.jsx)(dD,{className:`mr-1 h-4 w-4 ${b.resetting?"animate-spin":""}`}),"Reset to default"]}),(0,f.jsx)(o.$,{type:"button",size:"sm",onClick:()=>{var b;return b=a.name,void k(async()=>{let a=e[b];if(!a)return;h(c=>({...c,[b]:{...a,saving:!0}}));let c=await dI(b,a.body);h(a=>{let c=a[b]??dK;return{...a,[b]:{...c,saving:!1}}}),c.ok?n.oR.success(`${b}.md saved`):n.oR.error(`Save failed: ${c.error}`)})},disabled:b.saving||b.loading,children:b.saving?(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(i.A,{className:"mr-1 h-4 w-4 animate-spin"})," ","Saving…"]}):(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(j.A,{className:"mr-1 h-4 w-4"})," Save template"]})})]})]})]})})},a.name)})]})}var dM=c(87671);let dN=(0,l.A)("WandSparkles",[["path",{d:"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72",key:"ul74o6"}],["path",{d:"m14 7 3 3",key:"1r5n42"}],["path",{d:"M5 6v4",key:"ilb8ba"}],["path",{d:"M19 14v4",key:"blhpug"}],["path",{d:"M10 2v2",key:"7u0qdc"}],["path",{d:"M7 8H3",key:"zfb6yr"}],["path",{d:"M21 16h-4",key:"1cnmox"}],["path",{d:"M11 3H9",key:"1obp7u"}]]);var dO=c(14471),dP=c(97338),dQ=c(30515),dR=c(66979);let dS=(0,dG.createServerReference)("405bd36a84958578e2b58778fd7f165bb9349df7b0",dG.callServer,void 0,dG.findSourceMapURL,"startMcpSetupAction"),dT=(0,dG.createServerReference)("00b0feea18eed38b2bf9126d80d69f80bc5ac1e6ac",dG.callServer,void 0,dG.findSourceMapURL,"listMcpServersAction"),dU=(0,dG.createServerReference)("40a78de83dc9396bd3e3e72b3744d24d4f176ff970",dG.callServer,void 0,dG.findSourceMapURL,"removeMcpServerAction"),dV=(0,dG.createServerReference)("409809eb6cdbcf76c7da1f75999f07fee89c059d78",dG.callServer,void 0,dG.findSourceMapURL,"testMcpServerAction"),dW=(0,dG.createServerReference)("40ac28d0c43e69d4f69288788124dbd6ca4b4fc132",dG.callServer,void 0,dG.findSourceMapURL,"addMcpServerAction");function dX(){let[a,b]=(0,g.useState)([]),[c,d]=(0,g.useTransition)(),[e,h]=(0,g.useState)(!1),[j,k]=(0,g.useState)(""),[l,m]=(0,g.useTransition)(),r=(0,dM.useRouter)(),s=()=>{let a=j.trim();if(!a)return void n.oR.error("Опиши что подключить");m(async()=>{let b=await dS(a);if(!b.ok)return void n.oR.error(b.error);n.oR.success("Открываю чат с агентом-установщиком"),k(""),r.push(`/roots/${b.rootId}/chat/${b.topicId}`)})},t=()=>{d(async()=>{let a=await dT();if(!a.ok)return void n.oR.error(a.error);b(a.servers)})},u=async a=>{if(!confirm(`Удалить MCP-сервер "${a}"?`))return;let b=await dU(a);if(!b.ok)return void n.oR.error(b.error??"fail");n.oR.success("Удалён"),t()};return(0,f.jsxs)("div",{className:"space-y-3",children:[(0,f.jsx)(p.Zp,{className:"reflex-gradient p-[2px]",children:(0,f.jsxs)("div",{className:"rounded-[7px] bg-background/95 p-4 space-y-2",children:[(0,f.jsxs)("div",{className:"flex items-center gap-2 text-sm font-medium",children:[(0,f.jsx)(dN,{className:"h-4 w-4"}),(0,f.jsx)("span",{children:"Подключить через AI-мастер"})]}),(0,f.jsx)("p",{className:"text-xs text-muted-foreground",children:"Скажи человеческим языком (\xabподключи google calendar\xbb, \xabдобавь github mcp\xbb). Агент сам найдёт нужный пакет, объяснит где взять токен/выйти на OAuth, и выдаст готовую карточку — тебе останется только её одобрить."}),(0,f.jsxs)("div",{className:"flex gap-2",children:[(0,f.jsx)(q.p,{value:j,onChange:a=>k(a.target.value),onKeyDown:a=>{"Enter"!==a.key||a.shiftKey||(a.preventDefault(),s())},placeholder:"Например: подключи google calendar",disabled:l,className:"flex-1"}),(0,f.jsxs)(o.$,{type:"button",onClick:s,disabled:l||!j.trim(),className:"gap-2",children:[l?(0,f.jsx)(i.A,{className:"h-4 w-4 animate-spin"}):(0,f.jsx)(dB.A,{className:"h-4 w-4"}),"Запустить"]})]}),(0,f.jsx)("p",{className:"text-[10px] text-muted-foreground",children:"Откроется чат в твоём первом проекте — там агент задаст уточнения и предложит конфиг. Конфиг сохранится в реестр после твоего \xabЗарегистрировать\xbb."})]})}),c&&0===a.length?(0,f.jsx)(p.Zp,{children:(0,f.jsxs)(p.Wu,{className:"py-6 text-sm text-muted-foreground",children:[(0,f.jsx)(i.A,{className:"inline h-4 w-4 animate-spin mr-2"})," Loading…"]})}):0===a.length?(0,f.jsx)(p.Zp,{className:"border-dashed",children:(0,f.jsxs)(p.Wu,{className:"py-6 text-sm text-muted-foreground text-center",children:["Пока ни одного MCP-сервера. Добавь свой первый — он станет доступен утилитам (через ",(0,f.jsx)("code",{children:"manifest.mcpServers"}),") и чату."]})}):(0,f.jsx)("div",{className:"space-y-2",children:a.map(a=>(0,f.jsx)(p.Zp,{children:(0,f.jsxs)(p.Wu,{className:"py-3 px-4 flex items-center gap-3",children:[(0,f.jsx)(dO.A,{className:"h-4 w-4 text-muted-foreground"}),(0,f.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,f.jsxs)("div",{className:"flex items-center gap-2",children:[(0,f.jsx)("span",{className:"font-mono text-sm",children:a.id}),(0,f.jsx)(x.E,{variant:"outline",className:"text-[10px]",children:a.config.transport}),(0,f.jsx)("span",{className:"text-sm text-muted-foreground truncate",children:a.label})]}),(0,f.jsx)("div",{className:"text-[11px] text-muted-foreground font-mono truncate",children:"stdio"===a.config.transport?`${a.config.command} ${(a.config.args??[]).join(" ")}`:a.config.url}),a.description&&(0,f.jsx)("div",{className:"text-[11px] text-muted-foreground truncate",children:a.description})]}),(0,f.jsx)(o.$,{type:"button",size:"icon",variant:"ghost",onClick:()=>void u(a.id),title:"Удалить",className:"h-8 w-8",children:(0,f.jsx)(dP.A,{className:"h-3.5 w-3.5"})})]})},a.id))}),e?(0,f.jsx)(dY,{existingIds:a.map(a=>a.id),onCancel:()=>h(!1),onAdded:()=>{h(!1),t()}}):(0,f.jsxs)(o.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>h(!0),className:"gap-2 text-muted-foreground",children:[(0,f.jsx)(dQ.A,{className:"h-4 w-4"}),"Добавить вручную"]})]})}function dY({existingIds:a,onCancel:b,onAdded:c}){let[d,e]=(0,g.useState)(""),[h,j]=(0,g.useState)(""),[l,m]=(0,g.useState)(""),[s,t]=(0,g.useState)("stdio"),[u,v]=(0,g.useState)(""),[w,x]=(0,g.useState)(""),[z,A]=(0,g.useState)(""),[B,C]=(0,g.useState)(""),[D,E]=(0,g.useState)(""),[F,G]=(0,g.useState)(null),[H,I]=(0,g.useTransition)(),[J,K]=(0,g.useTransition)(),L=()=>{if("stdio"===s){if(!u.trim())return{ok:!1,error:"command required"};try{let a=z.trim()?JSON.parse(z):{};return{ok:!0,config:{transport:"stdio",command:u.trim(),args:w.trim()?w.trim().split(/\s+/).filter(Boolean):[],env:a}}}catch{return{ok:!1,error:"env must be JSON object"}}}if(!B.trim())return{ok:!1,error:"URL required"};try{let a=D.trim()?JSON.parse(D):{};return{ok:!0,config:{transport:s,url:B.trim(),headers:a}}}catch{return{ok:!1,error:"headers must be JSON object"}}};return(0,f.jsx)(p.Zp,{children:(0,f.jsxs)(p.Wu,{className:"pt-5 space-y-3",children:[(0,f.jsxs)("div",{className:"flex items-center justify-between",children:[(0,f.jsxs)("h3",{className:"text-sm font-medium flex items-center gap-2",children:[(0,f.jsx)(dO.A,{className:"h-4 w-4"})," Новый MCP-сервер"]}),(0,f.jsx)(o.$,{type:"button",size:"icon",variant:"ghost",onClick:b,className:"h-7 w-7",children:(0,f.jsx)(dR.A,{className:"h-3.5 w-3.5"})})]}),(0,f.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,f.jsxs)("div",{children:[(0,f.jsx)(r.J,{className:"text-xs",children:"ID (kebab-case)"}),(0,f.jsx)(q.p,{value:d,onChange:a=>e(a.target.value),placeholder:"github",className:"font-mono text-sm"})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)(r.J,{className:"text-xs",children:"Label"}),(0,f.jsx)(q.p,{value:h,onChange:a=>j(a.target.value),placeholder:"GitHub",className:"text-sm"})]})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)(r.J,{className:"text-xs",children:"Description (optional)"}),(0,f.jsx)(q.p,{value:l,onChange:a=>m(a.target.value),placeholder:"Доступ к репам, issues, PR-ам.",className:"text-sm"})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)(r.J,{className:"text-xs",children:"Transport"}),(0,f.jsxs)(y.l6,{value:s,onValueChange:a=>t(a),children:[(0,f.jsx)(y.bq,{className:"w-48",children:(0,f.jsx)(y.yv,{})}),(0,f.jsxs)(y.gC,{children:[(0,f.jsx)(y.eb,{value:"stdio",children:"stdio (subprocess)"}),(0,f.jsx)(y.eb,{value:"http",children:"HTTP (Streamable)"}),(0,f.jsx)(y.eb,{value:"sse",children:"SSE (legacy)"})]})]})]}),"stdio"===s?(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("div",{children:[(0,f.jsx)(r.J,{className:"text-xs",children:"Command"}),(0,f.jsx)(q.p,{value:u,onChange:a=>v(a.target.value),placeholder:"npx",className:"font-mono text-sm"})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)(r.J,{className:"text-xs",children:"Args"}),(0,f.jsx)(q.p,{value:w,onChange:a=>x(a.target.value),placeholder:"-y @modelcontextprotocol/server-github",className:"font-mono text-sm"})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)(r.J,{className:"text-xs",children:"Env (JSON, optional)"}),(0,f.jsx)(dE.T,{value:z,onChange:a=>A(a.target.value),placeholder:'{"GITHUB_TOKEN": "ghp_…"}',className:"font-mono text-xs",rows:3})]})]}):(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("div",{children:[(0,f.jsx)(r.J,{className:"text-xs",children:"URL"}),(0,f.jsx)(q.p,{value:B,onChange:a=>C(a.target.value),placeholder:"https://example.com/mcp",className:"font-mono text-sm"})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)(r.J,{className:"text-xs",children:"Headers (JSON, optional)"}),(0,f.jsx)(dE.T,{value:D,onChange:a=>E(a.target.value),placeholder:'{"Authorization": "Bearer …"}',className:"font-mono text-xs",rows:3})]})]}),F&&(0,f.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,f.jsx)(k.A,{className:"h-3.5 w-3.5"}),(0,f.jsxs)("span",{children:["Подключился к"," ",(0,f.jsx)("span",{className:"font-mono",children:F.serverName??"(anonymous)"})," ","\xb7 ",F.toolsCount," tools"]})]}),(0,f.jsxs)("div",{className:"flex justify-end gap-2 pt-1",children:[(0,f.jsxs)(o.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>{let a=L();if(!a.ok)return void n.oR.error(a.error);G(null),I(async()=>{let b=await dV(a.config);if(!b.ok)return void n.oR.error("Connect failed: "+b.error);G({...b.serverName?{serverName:b.serverName}:{},toolsCount:b.tools.length}),h||j(b.serverName??d)})},disabled:H,children:[H?(0,f.jsx)(i.A,{className:"mr-1 h-3.5 w-3.5 animate-spin"}):null,"Проверить"]}),(0,f.jsxs)(o.$,{type:"button",size:"sm",onClick:()=>{let b=d.trim().toLowerCase();if(!b)return void n.oR.error("id required");if(a.includes(b))return void n.oR.error(`id "${b}" already used`);if(!h.trim())return void n.oR.error("label required");let e=L();if(!e.ok)return void n.oR.error(e.error);K(async()=>{let a=await dW({id:b,label:h.trim(),description:l.trim(),config:e.config});if(!a.ok)return void n.oR.error(a.error);n.oR.success(`MCP-сервер "${b}" добавлен`),c()})},disabled:J||!F,children:[J?(0,f.jsx)(i.A,{className:"mr-1 h-3.5 w-3.5 animate-spin"}):null,"Сохранить"]})]}),!F&&(0,f.jsx)("p",{className:"text-[11px] text-muted-foreground",children:"Сначала \xabПроверить\xbb чтобы убедиться, что сервер запускается."})]})})}var dZ=c(96705),d$=c(12619),d_=c(58405),d0=c(74868),d1=c(65177);let d2=(0,l.A)("Unlink",[["path",{d:"m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71",key:"yqzxt4"}],["path",{d:"m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71",key:"4qinb0"}],["line",{x1:"8",x2:"8",y1:"2",y2:"5",key:"1041cp"}],["line",{x1:"2",x2:"5",y1:"8",y2:"8",key:"14m1p5"}],["line",{x1:"16",x2:"16",y1:"19",y2:"22",key:"rzdirn"}],["line",{x1:"19",x2:"22",y1:"16",y2:"16",key:"ox905f"}]]);var d3=c(72293),d4=c(36832),d5=c(12757),d6=c(83620),d7=c(16863);let d8=(0,dG.createServerReference)("40eeef872baa0da17a77f25f40fa697b66b35f49fe",dG.callServer,void 0,dG.findSourceMapURL,"probeOAuthAction"),d9=(0,dG.createServerReference)("406648b29e906c094e0bc25d5c0e466bef236190c6",dG.callServer,void 0,dG.findSourceMapURL,"disconnectOAuthAction"),ea=(0,dG.createServerReference)("4095405d49d58ff1e072aaa8158a01d00551ae2a29",dG.callServer,void 0,dG.findSourceMapURL,"deleteOAuthClientAction"),eb=(0,dG.createServerReference)("40c44748189e130f7026a549391f57d0c09eaa2fc7",dG.callServer,void 0,dG.findSourceMapURL,"removeCustomOAuthProviderAction"),ec=(0,dG.createServerReference)("40e08bf932a0c8892c8d7a1b5c568414f03ef3e662",dG.callServer,void 0,dG.findSourceMapURL,"addCustomOAuthProviderAction");function ed(){let[a,b]=(0,g.useState)([]),[c,d]=(0,g.useTransition)(),[e,h]=(0,g.useState)(!1),j=()=>{d(async()=>{let a=await (0,d4.o)();if(!a.ok)return void n.oR.error(a.error);b(a.statuses)})};return c&&0===a.length?(0,f.jsx)(p.Zp,{children:(0,f.jsxs)(p.Wu,{className:"py-6 text-sm text-muted-foreground",children:[(0,f.jsx)(i.A,{className:"inline h-4 w-4 animate-spin mr-2"})," Loading…"]})}):(0,f.jsxs)("div",{className:"space-y-2",children:[a.map(a=>(0,f.jsx)(ee,{status:a,onChanged:j},a.id)),e?(0,f.jsx)(ef,{existingIds:a.map(a=>a.id),onCancel:()=>h(!1),onAdded:()=>{h(!1),j()}}):(0,f.jsxs)(o.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>h(!0),className:"gap-2 text-muted-foreground",children:[(0,f.jsx)(dQ.A,{className:"h-4 w-4"}),"Добавить кастомный provider"]})]})}function ee({status:a,onChanged:b}){let[c,d]=(0,g.useState)(!1),[e,h]=(0,g.useState)(null),[k,l]=(0,g.useState)([]),[m,s]=(0,g.useState)(""),[t,u]=(0,g.useState)(""),[v,w]=(0,g.useState)(""),[y,z]=(0,g.useTransition)(),[A,B]=(0,g.useTransition)(),[C,D]=(0,g.useTransition)(),E=async()=>{if(!confirm(`Удалить сохранённые токены для ${a.label}?`))return;let c=await d9(a.id);if(!c.ok)return void n.oR.error(c.error);n.oR.success("Disconnected"),b()},F=async()=>{if(!confirm(`Удалить весь OAuth-конфиг для ${a.label} (client_id, secret и токены)?`))return;let c=await ea(a.id);if(!c.ok)return void n.oR.error(c.error);n.oR.success("Forgotten"),h(null),s(""),w(""),b()};return(0,f.jsx)(p.Zp,{children:(0,f.jsxs)(p.Wu,{className:"py-3 px-4",children:[(0,f.jsxs)("div",{className:"flex items-center gap-3",children:[(0,f.jsx)(dZ.A,{className:"h-4 w-4 text-muted-foreground shrink-0"}),(0,f.jsx)("div",{className:"flex-1 min-w-0",children:(0,f.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,f.jsx)("span",{className:"text-sm font-medium",children:a.label}),(0,f.jsx)("span",{className:"font-mono text-[10px] text-muted-foreground",children:a.id}),"user"===a.origin&&(0,f.jsx)(x.E,{variant:"outline",className:"text-[10px]",children:"custom"}),a.hasClient?a.hasTokens?(0,f.jsxs)(x.E,{variant:"secondary",className:"gap-1",children:[(0,f.jsx)(d$.A,{className:"h-3 w-3"})," авторизован"]}):(0,f.jsx)(x.E,{variant:"outline",className:"border-amber-400 text-amber-700",children:"готов к авторизации"}):(0,f.jsx)(x.E,{variant:"outline",children:"не настроен"}),a.hasTokens&&a.expiresAt&&(0,f.jsxs)("span",{className:"text-[10px] text-muted-foreground",children:["истекает"," ",new Date(a.expiresAt).toLocaleTimeString()]})]})}),(0,f.jsxs)(o.$,{type:"button",size:"sm",variant:"ghost",onClick:()=>d(a=>!a),className:"gap-1",children:[(0,f.jsx)(d_.A,{className:`h-3.5 w-3.5 transition-transform ${c?"rotate-180":""}`}),c?"Свернуть":"Настроить"]})]}),c&&(0,f.jsxs)("div",{className:"mt-4 pl-7 space-y-3 border-l-2 ml-1.5",children:[a.setupHint&&(0,f.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,f.jsx)(d0.A,{className:"h-3.5 w-3.5 mt-0.5 shrink-0"}),(0,f.jsx)("span",{children:a.setupHint})]}),(0,f.jsxs)("a",{href:a.consoleUrl,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1 text-xs text-violet-700 hover:underline",children:[(0,f.jsx)(d1.A,{className:"h-3 w-3"}),"Открыть консоль ",a.label]}),a.setupSteps&&a.setupSteps.length>0&&(0,f.jsxs)("div",{className:"rounded border border-violet-200 bg-violet-50/30 p-3",children:[(0,f.jsx)("div",{className:"text-[10px] uppercase tracking-wider text-muted-foreground mb-2",children:"Пошагово"}),(0,f.jsx)(d3.O,{steps:a.setupSteps})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)(r.J,{className:"text-xs",children:"Client ID"}),(0,f.jsx)(q.p,{value:m,onChange:a=>s(a.target.value),placeholder:"123456789-xxxxx.apps.googleusercontent.com",className:"font-mono text-xs h-8"})]}),(0,f.jsxs)("div",{children:[(0,f.jsxs)(r.J,{className:"text-xs",children:["Client secret",e?.hasSecret&&(0,f.jsx)("span",{className:"ml-2 text-muted-foreground",children:"(сохранён, оставь пустым чтобы не менять)"})]}),(0,f.jsx)(q.p,{type:"password",value:t,onChange:a=>u(a.target.value),placeholder:e?.hasSecret?"••••":"GOCSPX-…",className:"font-mono text-xs h-8"})]}),(0,f.jsxs)("div",{children:[(0,f.jsxs)(r.J,{className:"text-xs",children:["Scopes"," ",(0,f.jsxs)("span",{className:"text-muted-foreground",children:["(по умолчанию: ",k.join(" ")||"—",")"]})]}),(0,f.jsx)(q.p,{value:v,onChange:a=>w(a.target.value),placeholder:k.join(" "),className:"font-mono text-xs h-8"})]}),(0,f.jsxs)("div",{className:"flex flex-wrap gap-2 pt-1",children:[(0,f.jsxs)(o.$,{type:"button",size:"sm",onClick:()=>{z(async()=>{let c=v.trim().split(/[\s,]+/).filter(a=>a.length>0),d=await (0,d6.S)({provider:a.id,clientId:m,...t?{clientSecret:t}:{},...c.length>0?{scopes:c}:{}});if(!d.ok)return void n.oR.error(d.error);n.oR.success("Client config saved"),u(""),b();let e=await (0,d5.J)(a.id);e.ok&&h(e.client)})},disabled:y||!m.trim(),children:[y?(0,f.jsx)(i.A,{className:"mr-1 h-3.5 w-3.5 animate-spin"}):(0,f.jsx)(j.A,{className:"mr-1 h-3.5 w-3.5"}),"Сохранить"]}),(0,f.jsxs)(o.$,{type:"button",size:"sm",variant:"outline",onClick:()=>{B(async()=>{let c=await (0,d7.T)(a.id);if(!c.ok)return void n.oR.error(c.error);window.open(c.authorizeUrl,"reflex-oauth","width=600,height=720,noopener=no")||window.open(c.authorizeUrl,"_blank","noopener");let d=Date.now(),e=async()=>{if(Date.now()-d>3e5)return void n.oR.error("Authorization timed out");let c=await (0,d4.o)();if(c.ok){let d=c.statuses.find(b=>b.id===a.id);if(d?.hasTokens&&!a.hasTokens){n.oR.success("Authorized"),b();return}}setTimeout(()=>void e(),1500)};e()})},disabled:A||!e,className:"gap-1",children:[A?(0,f.jsx)(i.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,f.jsx)(d1.A,{className:"h-3.5 w-3.5"}),a.hasTokens?"Re-authorize":"Authorize"]}),a.hasTokens&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)(o.$,{type:"button",size:"sm",variant:"outline",onClick:()=>{D(async()=>{let b=await d8(a.id);if(!b.ok)return void n.oR.error(b.error??"probe failed");n.oR.success("Access token живой")})},disabled:C,children:[C&&(0,f.jsx)(i.A,{className:"mr-1 h-3.5 w-3.5 animate-spin"}),(0,f.jsx)(dO.A,{className:"mr-1 h-3.5 w-3.5"})," Проверить токен"]}),(0,f.jsxs)(o.$,{type:"button",size:"sm",variant:"ghost",onClick:E,children:[(0,f.jsx)(d2,{className:"mr-1 h-3.5 w-3.5"}),"Disconnect"]})]}),e&&(0,f.jsxs)(o.$,{type:"button",size:"sm",variant:"ghost",onClick:F,className:"text-muted-foreground",children:[(0,f.jsx)(dD,{className:"mr-1 h-3.5 w-3.5"}),"Forget client"]}),"user"===a.origin&&(0,f.jsxs)(o.$,{type:"button",size:"sm",variant:"ghost",className:"text-destructive ml-auto",onClick:async()=>{if(!confirm(`Удалить custom provider "${a.id}" полностью (вместе с client + tokens)?`))return;let c=await eb(a.id);if(!c.ok)return void n.oR.error(c.error);await ea(a.id),n.oR.success("Provider удалён"),b()},children:[(0,f.jsx)(dP.A,{className:"mr-1 h-3.5 w-3.5"}),"Удалить provider"]})]}),(0,f.jsxs)("p",{className:"text-[10px] text-muted-foreground",children:["Используй ",(0,f.jsxs)("code",{className:"font-mono",children:["$oauth:",a.id]})," в env/headers любого MCP-сервера — Reflex подставит свежий access_token при каждом вызове (с авто-refresh'ем)."]})]})]})})}function ef({existingIds:a,onCancel:b,onAdded:c}){let[d,e]=(0,g.useState)(""),[h,j]=(0,g.useState)(""),[k,l]=(0,g.useState)(""),[m,s]=(0,g.useState)(""),[t,u]=(0,g.useState)(""),[v,w]=(0,g.useState)(""),[x,y]=(0,g.useState)(""),[z,A]=(0,g.useState)(!0),[B,C]=(0,g.useState)(!0),[D,E]=(0,g.useState)(!0),[F,G]=(0,g.useState)(""),[H,I]=(0,g.useTransition)();return(0,f.jsx)(p.Zp,{children:(0,f.jsxs)(p.Wu,{className:"pt-5 space-y-3",children:[(0,f.jsxs)("div",{className:"flex items-center justify-between",children:[(0,f.jsxs)("h3",{className:"text-sm font-medium flex items-center gap-2",children:[(0,f.jsx)(dQ.A,{className:"h-4 w-4"})," Кастомный OAuth provider"]}),(0,f.jsx)(o.$,{type:"button",size:"icon",variant:"ghost",onClick:b,className:"h-7 w-7",children:(0,f.jsx)(dR.A,{className:"h-3.5 w-3.5"})})]}),(0,f.jsxs)("p",{className:"text-[11px] text-muted-foreground",children:["Любой OAuth 2.0 сервис со стандартным Authorization Code flow. Redirect URI:"," ",(0,f.jsx)("code",{className:"font-mono",children:"http://localhost:3210/api/oauth/callback"}),"."]}),(0,f.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,f.jsxs)("div",{children:[(0,f.jsx)(r.J,{className:"text-xs",children:"ID (kebab-case)"}),(0,f.jsx)(q.p,{value:d,onChange:a=>e(a.target.value),placeholder:"dropbox",className:"font-mono text-sm h-8"})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)(r.J,{className:"text-xs",children:"Label"}),(0,f.jsx)(q.p,{value:h,onChange:a=>j(a.target.value),placeholder:"Dropbox",className:"text-sm h-8"})]})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)(r.J,{className:"text-xs",children:"Authorize URL"}),(0,f.jsx)(q.p,{value:k,onChange:a=>l(a.target.value),placeholder:"https://example.com/oauth/authorize",className:"font-mono text-sm h-8"})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)(r.J,{className:"text-xs",children:"Token URL"}),(0,f.jsx)(q.p,{value:m,onChange:a=>s(a.target.value),placeholder:"https://example.com/oauth/token",className:"font-mono text-sm h-8"})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)(r.J,{className:"text-xs",children:"Default scopes (space-separated)"}),(0,f.jsx)(q.p,{value:t,onChange:a=>u(a.target.value),placeholder:"read write",className:"font-mono text-sm h-8"})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)(r.J,{className:"text-xs",children:"Console URL (где брать credentials)"}),(0,f.jsx)(q.p,{value:v,onChange:a=>w(a.target.value),placeholder:"https://www.dropbox.com/developers/apps",className:"font-mono text-sm h-8"})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)(r.J,{className:"text-xs",children:"Setup hint (показывается пользователю)"}),(0,f.jsx)(dE.T,{value:x,onChange:a=>y(a.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,f.jsxs)("div",{className:"grid grid-cols-3 gap-3 text-xs",children:[(0,f.jsxs)("label",{className:"flex items-center gap-2",children:[(0,f.jsx)("input",{type:"checkbox",checked:z,onChange:a=>A(a.target.checked)}),"PKCE"]}),(0,f.jsxs)("label",{className:"flex items-center gap-2",children:[(0,f.jsx)("input",{type:"checkbox",checked:B,onChange:a=>C(a.target.checked)}),"refresh_token"]}),(0,f.jsxs)("label",{className:"flex items-center gap-2",children:[(0,f.jsx)("input",{type:"checkbox",checked:D,onChange:a=>E(a.target.checked)}),"client_secret"]})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)(r.J,{className:"text-xs",children:"Extra authorize params (JSON, optional)"}),(0,f.jsx)(dE.T,{value:F,onChange:a=>G(a.target.value),placeholder:'{"access_type": "offline", "prompt": "consent"}',className:"font-mono text-xs",rows:2})]}),(0,f.jsxs)("div",{className:"flex justify-end gap-2 pt-1",children:[(0,f.jsx)(o.$,{type:"button",variant:"ghost",size:"sm",onClick:b,children:"Отмена"}),(0,f.jsxs)(o.$,{type:"button",size:"sm",onClick:()=>{let b=d.trim().toLowerCase();if(!b)return void n.oR.error("id обязателен");if(a.includes(b))return void n.oR.error(`provider "${b}" уже существует`);if(!k.trim()||!m.trim())return void n.oR.error("authorizeUrl и tokenUrl обязательны");let e={};if(F.trim())try{e=JSON.parse(F)}catch{n.oR.error("extraAuthorizeParams должен быть JSON-объектом");return}let f=t.trim().split(/[\s,]+/).filter(a=>a.length>0);I(async()=>{let a=await ec({id:b,label:h.trim()||b,authorizeUrl:k.trim(),tokenUrl:m.trim(),defaultScopes:f,supportsPKCE:z,refreshTokenSupported:B,needsClientSecret:D,extraAuthorizeParams:e,setupHint:x.trim(),consoleUrl:v.trim()||"http://localhost:3210/api/oauth/callback"});if(!a.ok)return void n.oR.error(a.error);n.oR.success(`Provider "${b}" добавлен`),c()})},disabled:H||!d.trim()||!k.trim()||!m.trim(),children:[H&&(0,f.jsx)(i.A,{className:"mr-1 h-3.5 w-3.5 animate-spin"}),"Создать provider"]})]})]})})}dG.callServer,dG.findSourceMapURL;let eg=(0,dG.createServerReference)("40ae168c85160b1fbef7c1573a6aed3055a2c56793",dG.callServer,void 0,dG.findSourceMapURL,"listGeminiModelsAction");var eh=c(4867);let ei=(0,dG.createServerReference)("40c38f628b5ec89e9c9abedc73cf8d081dc1f86a8c",dG.callServer,void 0,dG.findSourceMapURL,"saveGeminiModelChoiceAction");function ej(){let[a,b]=(0,g.useState)(!1),[c,d]=(0,g.useState)(""),[e,k]=(0,g.useState)([]),[l,m]=(0,g.useState)(""),[s,t]=(0,g.useState)(""),[u,v]=(0,g.useTransition)(),[w,y]=(0,g.useTransition)(),[z,A]=(0,g.useTransition)(),B=(b=!1)=>{v(async()=>{let c=await eg(b);if(!c.ok){if(!a)return;n.oR.error(c.error);return}k(c.models),m(c.currentModel),t(c.currentVideoModel)})},C=(a,b)=>{A(async()=>{let c=await ei({[a]:b||null});if(!c.ok)return void n.oR.error(c.error);n.oR.success("Сохранено"),"model"===a?m(b):t(b)})};return(0,f.jsx)(p.Zp,{children:(0,f.jsxs)(p.Wu,{className:"pt-5 space-y-4",children:[(0,f.jsxs)("div",{className:"flex items-center gap-2 text-sm font-medium",children:[(0,f.jsx)(dB.A,{className:"h-4 w-4"}),(0,f.jsx)("span",{children:"Gemini API"}),a?(0,f.jsxs)(x.E,{variant:"secondary",className:"gap-1",children:[(0,f.jsx)(d$.A,{className:"h-3 w-3"})," key сохранён"]}):(0,f.jsx)(x.E,{variant:"outline",children:"не настроен"})]}),(0,f.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Используется для суммаризации YouTube (нативная поддержка мультимодальных URL) ",(0,f.jsx)("strong",{children:"и для генерации картинок"})," ","через модель Nano Banana (",(0,f.jsx)("code",{className:"font-mono",children:"gemini-2.5-flash-image"}),", ~$0.04 за картинку). Ключ хранится локально в"," ",(0,f.jsx)("code",{className:"font-mono",children:"~/.reflex/api-keys/gemini.json"})," ","(0600), агентам не передаётся. Возьми ключ в"," ",(0,f.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,f.jsx)(d1.A,{className:"h-3 w-3"})]})," ","— есть бесплатный tier (15 RPM / 1500 RPD)."]}),(0,f.jsxs)("div",{className:"space-y-1.5",children:[(0,f.jsxs)(r.J,{className:"text-xs flex items-center gap-1",children:[(0,f.jsx)(dZ.A,{className:"h-3 w-3"}),a?"Заменить ключ":"API key"]}),(0,f.jsxs)("div",{className:"flex gap-2",children:[(0,f.jsx)(q.p,{type:"password",value:c,onChange:a=>d(a.target.value),placeholder:a?"••••":"AIza…",className:"font-mono text-sm flex-1 h-8",disabled:w}),(0,f.jsxs)(o.$,{type:"button",size:"sm",onClick:()=>{if(!c.trim())return void n.oR.error("Введи ключ");y(async()=>{let a=await (0,eh.A)(c.trim());if(!a.ok)return void n.oR.error(a.error);n.oR.success("Gemini key сохранён"),d(""),b(!0),B(!0)})},disabled:w||!c.trim(),className:"h-8 gap-1",children:[w?(0,f.jsx)(i.A,{className:"h-3 w-3 animate-spin"}):(0,f.jsx)(j.A,{className:"h-3 w-3"}),"Сохранить"]})]})]}),a&&(0,f.jsxs)("div",{className:"space-y-3 pt-1 border-t",children:[(0,f.jsxs)("div",{className:"flex items-center justify-between",children:[(0,f.jsxs)("span",{className:"text-xs text-muted-foreground",children:["Модели подтянуты с"," ",(0,f.jsx)("code",{className:"font-mono",children:"v1beta/models"})," ",e.length>0&&`(${e.length})`]}),(0,f.jsxs)(o.$,{type:"button",size:"sm",variant:"ghost",onClick:()=>B(!0),disabled:u,className:"h-7 text-xs gap-1",children:[u?(0,f.jsx)(i.A,{className:"h-3 w-3 animate-spin"}):(0,f.jsx)(h.A,{className:"h-3 w-3"}),"Обновить"]})]}),(0,f.jsx)(ek,{label:"Default model",hint:"Используется для общих вызовов Gemini, когда конкретная задача не указана.",value:l,models:e,disabled:z||u,onChange:a=>C("model",a)}),(0,f.jsx)(ek,{label:"Модель для YouTube",hint:"Для суммаризации видео. Flash-варианты быстрее и обычно достаточно умные.",value:s,models:e,disabled:z||u,onChange:a=>C("videoModel",a)})]})]})})}function ek({label:a,hint:b,value:c,models:d,disabled:e,onChange:g}){let h=new Set(d.map(a=>a.id)).has(c)?d:c?[{id:c,displayName:`${c} (saved)`},...d]:d;return(0,f.jsxs)("div",{className:"space-y-1",children:[(0,f.jsx)(r.J,{className:"text-xs",children:a}),(0,f.jsx)("p",{className:"text-[11px] text-muted-foreground",children:b}),(0,f.jsxs)(y.l6,{value:c,onValueChange:g,disabled:e,children:[(0,f.jsx)(y.bq,{className:"h-8 w-full",children:(0,f.jsx)(y.yv,{placeholder:"(default)"})}),(0,f.jsx)(y.gC,{children:h.map(a=>(0,f.jsx)(y.eb,{value:a.id,children:(0,f.jsxs)("span",{className:"flex items-baseline gap-2",children:[(0,f.jsx)("span",{className:"font-mono text-xs",children:a.id}),a.displayName&&a.displayName!==a.id&&(0,f.jsx)("span",{className:"text-[10px] text-muted-foreground",children:a.displayName})]})},a.id))})]})]})}var el=c(29130);dG.callServer,dG.findSourceMapURL;let em=(0,dG.createServerReference)("607af723d599f4ed3c292d2742f03a48b134ea1a97",dG.callServer,void 0,dG.findSourceMapURL,"saveImageProviderKeyAction");function en(){return(0,f.jsx)(p.Zp,{children:(0,f.jsxs)(p.Wu,{className:"pt-5 space-y-5",children:[(0,f.jsxs)("div",{className:"flex items-center gap-2 text-sm font-medium",children:[(0,f.jsx)(el.A,{className:"h-4 w-4"}),(0,f.jsx)("span",{children:"Картинки из сети"})]}),(0,f.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Ключи к API stock-фотобанков. Используются виджетом \xabКартинка в KB\xbb и хост-API утилит (",(0,f.jsx)("code",{className:"font-mono",children:"reflex.images.search"}),"). Хранятся локально в ",(0,f.jsx)("code",{className:"font-mono",children:"~/.reflex/api-keys/"})," (0600)."]}),(0,f.jsx)(eo,{provider:"unsplash",label:"Unsplash",docsHref:"https://unsplash.com/developers",hint:"Бесплатно 50 запросов/час. Атрибуция авторов обязательна — модалка вставляет её автоматически."}),(0,f.jsx)(eo,{provider:"pexels",label:"Pexels",docsHref:"https://pexels.com/api/",hint:"Без жёсткого лимита для разумного использования. Атрибуция рекомендована."}),(0,f.jsx)(eo,{provider:"brave",label:"Brave (весь веб)",docsHref:"https://api-dashboard.search.brave.com/app/keys",hint:"Поиск картинок по всему вебу (не только stock). Если у тебя уже подключён Brave Search MCP — ключ оттуда подхватится автоматически, поле можно не заполнять."})]})})}function eo({provider:a,label:b,docsHref:c,hint:d}){let[e,h]=(0,g.useState)(!1),[k,l]=(0,g.useState)(!1),[m,p]=(0,g.useState)(""),[s,t]=(0,g.useTransition)();return(0,f.jsxs)("div",{className:"space-y-2",children:[(0,f.jsxs)("div",{className:"flex items-center gap-2",children:[(0,f.jsx)("span",{className:"text-sm font-medium",children:b}),e?(0,f.jsxs)(x.E,{variant:"secondary",className:"gap-1",children:[(0,f.jsx)(d$.A,{className:"h-3 w-3"})," key сохранён"]}):k?(0,f.jsxs)(x.E,{variant:"secondary",className:"gap-1",children:[(0,f.jsx)(d$.A,{className:"h-3 w-3"})," ключ найден через MCP"]}):(0,f.jsx)(x.E,{variant:"outline",children:"не настроен"}),(0,f.jsxs)("a",{href:c,target:"_blank",rel:"noopener noreferrer",className:"ml-auto inline-flex items-center gap-1 text-xs text-violet-700 hover:underline",children:["docs ",(0,f.jsx)(d1.A,{className:"h-3 w-3"})]})]}),(0,f.jsx)("p",{className:"text-[11px] text-muted-foreground",children:d}),(0,f.jsxs)("div",{className:"flex gap-2",children:[(0,f.jsxs)(r.J,{className:"sr-only",htmlFor:`${a}-key`,children:[(0,f.jsx)(dZ.A,{className:"h-3 w-3"})," ",b," key"]}),(0,f.jsx)(q.p,{id:`${a}-key`,type:"password",value:m,onChange:a=>p(a.target.value),placeholder:e?"••••":`${b} access key`,className:"font-mono text-sm flex-1 h-8",disabled:s}),(0,f.jsxs)(o.$,{type:"button",size:"sm",onClick:()=>{if(!m.trim())return void n.oR.error("Введи ключ");t(async()=>{let c=await em(a,m.trim());if(!c.ok)return void n.oR.error(c.error);n.oR.success(`${b} key сохранён`),p(""),h(!0)})},disabled:s||!m.trim(),className:"h-8 gap-1",children:[s?(0,f.jsx)(i.A,{className:"h-3 w-3 animate-spin"}):(0,f.jsx)(j.A,{className:"h-3 w-3"}),"Сохранить"]})]})]})}let ep=(0,l.A)("Map",[["path",{d:"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z",key:"169xi5"}],["path",{d:"M15 5.764v15",key:"1pn4in"}],["path",{d:"M9 3.236v15",key:"1uimfh"}]]);var eq=c(85548);function er({settings:a,onChange:b}){let c=new Set(a.mapServices.enabled);return(0,f.jsx)(p.Zp,{children:(0,f.jsxs)(p.Wu,{className:"pt-5 space-y-3",children:[(0,f.jsxs)("div",{className:"flex items-center gap-2 text-sm font-medium",children:[(0,f.jsx)(ep,{className:"h-4 w-4 text-emerald-700"}),(0,f.jsx)("span",{children:"Сервисы маршрутов"})]}),(0,f.jsx)("p",{className:"text-xs text-muted-foreground",children:"Выбранные сервисы появятся в попапе на каждой точке карта-виджета — \xabМаршрут в…\xbb. Ссылка генерится прямо из координат, без посредников. Можно проверить превью-ссылку (точка по умолчанию — центр Москвы)."}),(0,f.jsx)("ul",{className:"space-y-1.5",children:eq.yp.map(a=>{let d=c.has(a.id);return(0,f.jsxs)("li",{className:"flex items-start gap-2 rounded-md border bg-card px-3 py-2",children:[(0,f.jsx)("input",{id:`map-svc-${a.id}`,type:"checkbox",checked:d,onChange:()=>(a=>{let d=new Set(c);d.has(a)?d.delete(a):d.add(a),b({mapServices:{enabled:[...d]}})})(a.id),className:"mt-1 h-3.5 w-3.5"}),(0,f.jsxs)("label",{htmlFor:`map-svc-${a.id}`,className:"min-w-0 flex-1 cursor-pointer",children:[(0,f.jsx)("div",{className:"text-sm font-medium",children:a.label}),(0,f.jsx)("p",{className:"text-[11px] text-muted-foreground mt-0.5 leading-snug",children:a.description})]}),(0,f.jsxs)("a",{href:a.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,f.jsx)(d1.A,{className:"h-2.5 w-2.5"})]})]},a.id)})})]})})}let es=(0,l.A)("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);var et=c(25436),eu=c(52869),ev=c(95938);let ew=(0,dG.createServerReference)("0050e7f2d6be906e3fbf03e1936a5230d7e5b2e40b",dG.callServer,void 0,dG.findSourceMapURL,"refreshReservedDomainsAction"),ex=(0,dG.createServerReference)("40fe47f712435a94219e2332cfc4d4c37a8e52d68d",dG.callServer,void 0,dG.findSourceMapURL,"patchNgrokSettingsAction"),ey=(0,dG.createServerReference)("00247c9af27ed9e339caff737f075006cbedee9d97",dG.callServer,void 0,dG.findSourceMapURL,"startTunnelAction"),ez=(0,dG.createServerReference)("000660397a2e1e3f76f6be0aad5aa11975b7ec053b",dG.callServer,void 0,dG.findSourceMapURL,"stopTunnelAction"),eA=(0,dG.createServerReference)("00276ad8c6a0b60dc600b0629f69b9a9422ee6a06b",dG.callServer,void 0,dG.findSourceMapURL,"listSharesAction"),eB=(0,dG.createServerReference)("406371e6e73115562beda2be60b801518557d42b7b",dG.callServer,void 0,dG.findSourceMapURL,"deleteShareAction");function eC({settings:a,onChange:b}){let c=a.ngrok,[d,e]=(0,g.useState)({running:!1}),[j,l]=(0,g.useState)(null),[m,o]=(0,g.useState)(null),[q,r]=(0,g.useState)([]),[s,t]=(0,g.useTransition)(),[u,v]=(0,g.useTransition)(),[w,x]=(0,g.useState)(0),y=(0,g.useRef)(null),z=(0,g.useRef)(""),A=async()=>{let a=await (0,ev.N)();e(a.status),l(a.cliVersion),r((await eA()).shares)},B=async(a=!1)=>{let b=await ew();if(!b.ok){a||n.oR.error(b.error);return}o(b.domains),a||n.oR.success(`Загружено доменов: ${b.domains.length}`)},C=a=>{b({ngrok:{...c,...a}}),y.current&&clearTimeout(y.current),y.current=setTimeout(async()=>{let b=await ex(a);if(!b.ok)return void n.oR.error("ngrok settings: "+(b.error??"save failed"));x(a=>a+1),"string"==typeof a.apiKey&&a.apiKey.trim()&&a.apiKey!==z.current&&(z.current=a.apiKey,B(!0))},600)},D=async()=>{y.current&&(clearTimeout(y.current),y.current=null,await ex(c))},E=()=>{v(async()=>{await D(),await ez(),await new Promise(a=>setTimeout(a,400));let a=await ey();if(!a.ok)return void n.oR.error(a.error);n.oR.success(a.publicUrl?`Tunnel перезапущен: ${a.publicUrl}`:"Tunnel перезапущен, URL формируется..."),await A()})},F=(()=>{try{return d.publicUrl?new URL(d.publicUrl).hostname:""}catch{return""}})(),G=c.domain.trim(),H=d.running&&G&&F!==G,I=d.running&&d.port!==c.port;return(0,f.jsx)(p.Zp,{children:(0,f.jsxs)(p.Wu,{className:"pt-5 space-y-4",children:[(0,f.jsxs)("div",{className:"flex items-center gap-2 text-sm font-medium",children:[(0,f.jsx)(es,{className:"h-4 w-4 text-violet-600"}),(0,f.jsx)("span",{children:"Публичные ссылки через ngrok"}),j?(0,f.jsx)("span",{className:"text-[10px] font-mono text-muted-foreground ml-1",children:j.split("\n")[0]}):(0,f.jsxs)("span",{className:"text-[10px] text-destructive ml-1 inline-flex items-center gap-0.5",children:[(0,f.jsx)(d0.A,{className:"h-3 w-3"}),"ngrok CLI не найден"]}),w>0&&(0,f.jsxs)("span",{className:"ml-auto text-[10px] text-emerald-700 inline-flex items-center gap-0.5",title:"Изменения сохранены автоматически",children:[(0,f.jsx)(k.A,{className:"h-3 w-3"}),"сохранено"]},w)]}),(0,f.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Reflex запускает ",(0,f.jsx)("code",{className:"font-mono",children:"ngrok http"})," с твоим токеном; на ngrok-домене разрешены только пути"," ",(0,f.jsx)("code",{className:"font-mono",children:"/share/*"}),". Установи"," ",(0,f.jsx)("a",{href:"https://ngrok.com/download",target:"_blank",rel:"noopener noreferrer",className:"underline",children:"ngrok CLI"})," ","в PATH перед запуском."]}),(0,f.jsxs)("div",{className:"grid gap-2",children:[(0,f.jsx)("label",{className:"text-xs font-medium",htmlFor:"ngrok-token",children:"Authtoken (agent)"}),(0,f.jsx)("input",{id:"ngrok-token",type:"password",autoComplete:"off",value:c.authtoken,onChange:a=>C({authtoken:a.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,f.jsxs)("p",{className:"text-[10px] text-muted-foreground",children:["Найди в"," ",(0,f.jsx)("a",{href:"https://dashboard.ngrok.com/get-started/your-authtoken",target:"_blank",rel:"noopener noreferrer",className:"underline",children:"ngrok dashboard → Your Authtoken"}),". Сохраняется в ",(0,f.jsx)("code",{className:"font-mono",children:"~/.reflex/ngrok.yml"})," ","(0600)."]})]}),(0,f.jsxs)("div",{className:"grid gap-2",children:[(0,f.jsx)("label",{className:"text-xs font-medium",htmlFor:"ngrok-apikey",children:"API key (для списка доменов, опционально)"}),(0,f.jsx)("input",{id:"ngrok-apikey",type:"password",autoComplete:"off",value:c.apiKey,onChange:a=>C({apiKey:a.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,f.jsxs)("p",{className:"text-[10px] text-muted-foreground",children:["Возьми в"," ",(0,f.jsx)("a",{href:"https://dashboard.ngrok.com/api",target:"_blank",rel:"noopener noreferrer",className:"underline",children:"dashboard → API → API keys"}),". Используется только для GET-запроса списка reserved-доменов."]})]}),(0,f.jsxs)("div",{className:"grid gap-2",children:[(0,f.jsxs)("div",{className:"flex items-center justify-between",children:[(0,f.jsx)("label",{className:"text-xs font-medium",htmlFor:"ngrok-domain",children:"Reserved domain (если есть)"}),(0,f.jsxs)("button",{type:"button",onClick:()=>{t(async()=>{await B()})},disabled:s||!c.apiKey,className:"text-[11px] inline-flex items-center gap-1 text-violet-700 hover:underline disabled:opacity-50",children:[s?(0,f.jsx)(i.A,{className:"h-3 w-3 animate-spin"}):(0,f.jsx)(h.A,{className:"h-3 w-3"}),"Обновить список"]})]}),m&&m.length>0?(0,f.jsxs)("select",{id:"ngrok-domain",value:c.domain,onChange:a=>C({domain:a.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,f.jsx)("option",{value:"",children:"— random subdomain (free tier) —"}),m.map(a=>(0,f.jsxs)("option",{value:a.domain,children:[a.domain,a.region?` (${a.region})`:""]},a.id))]}):(0,f.jsx)("input",{id:"ngrok-domain",type:"text",value:c.domain,onChange:a=>C({domain:a.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,f.jsxs)("div",{className:"grid grid-cols-[1fr_auto] gap-2 items-end",children:[(0,f.jsxs)("div",{children:[(0,f.jsx)("label",{className:"text-xs font-medium",htmlFor:"ngrok-port",children:"Локальный порт"}),(0,f.jsx)("input",{id:"ngrok-port",type:"number",min:1,max:65535,value:c.port,onChange:a=>C({port:Math.max(1,Number(a.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"})]}),d.running?(0,f.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,f.jsxs)("button",{type:"button",onClick:E,disabled:u,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:[u?(0,f.jsx)(i.A,{className:"h-3 w-3 animate-spin"}):(0,f.jsx)(h.A,{className:"h-3 w-3"}),"Перезапустить"]}),(0,f.jsxs)("button",{type:"button",onClick:()=>{v(async()=>{await ez(),n.oR.success("Tunnel остановлен"),await A()})},disabled:u,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:[u?(0,f.jsx)(i.A,{className:"h-3 w-3 animate-spin"}):(0,f.jsx)(et.A,{className:"h-3 w-3"}),"Остановить"]})]}):(0,f.jsxs)("button",{type:"button",onClick:()=>{v(async()=>{await D();let a=await ey();if(!a.ok)return void n.oR.error(a.error);n.oR.success(a.publicUrl?`Tunnel запущен: ${a.publicUrl}`:"Tunnel запущен, URL ещё формируется..."),await A()})},disabled:u||!c.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:[u?(0,f.jsx)(i.A,{className:"h-3 w-3 animate-spin"}):(0,f.jsx)(eu.A,{className:"h-3 w-3"}),"Запустить"]})]}),d.running&&(0,f.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,f.jsxs)("div",{className:"flex items-center gap-1.5 text-emerald-800 dark:text-emerald-200",children:[(0,f.jsx)(k.A,{className:"h-3.5 w-3.5"}),(0,f.jsx)("span",{children:"Tunnel активен"})]}),d.publicUrl?(0,f.jsx)("a",{href:d.publicUrl,target:"_blank",rel:"noopener noreferrer",className:"block font-mono text-violet-700 hover:underline truncate",children:d.publicUrl}):(0,f.jsx)("p",{className:"text-muted-foreground",children:"URL ещё формируется…"}),(0,f.jsxs)("p",{className:"text-[10px] text-muted-foreground",children:["Запущен ",d.startedAt&&new Date(d.startedAt).toLocaleTimeString()," ","\xb7 порт ",d.port]})]}),(H||I)&&(0,f.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,f.jsxs)("div",{className:"flex items-center gap-1.5 text-amber-800 dark:text-amber-200 font-medium",children:[(0,f.jsx)(d0.A,{className:"h-3.5 w-3.5"}),"Настройки изменились — перезапусти туннель"]}),(0,f.jsxs)("ul",{className:"text-[11px] text-amber-900 dark:text-amber-100 list-disc pl-4 space-y-0.5",children:[H&&(0,f.jsxs)("li",{children:["Сейчас на хосте ",(0,f.jsx)("code",{className:"font-mono",children:F}),", в настройках выбран"," ",(0,f.jsx)("code",{className:"font-mono",children:G}),"."]}),I&&(0,f.jsxs)("li",{children:["Tunnel слушает порт ",(0,f.jsx)("code",{className:"font-mono",children:d.port}),", в настройках указан ",(0,f.jsx)("code",{className:"font-mono",children:c.port}),"."]})]}),(0,f.jsxs)("button",{type:"button",onClick:E,disabled:u,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:[u?(0,f.jsx)(i.A,{className:"h-3 w-3 animate-spin"}):(0,f.jsx)(h.A,{className:"h-3 w-3"}),"Перезапустить с новыми настройками"]})]}),(0,f.jsx)("hr",{className:"my-3"}),(0,f.jsxs)("div",{children:[(0,f.jsxs)("h3",{className:"text-xs font-semibold mb-2",children:["Активные ссылки (",q.length,")"]}),0===q.length?(0,f.jsx)("p",{className:"text-[11px] text-muted-foreground",children:"Пока ничего не расшарено. На странице утилиты, KB-файла или дашборда появится кнопка \xabПоделиться\xbb."}):(0,f.jsx)("ul",{className:"space-y-1",children:q.map(a=>(0,f.jsx)(eD,{share:a,publicHost:d.publicUrl,onDeleted:()=>void A()},a.id))})]})]})})}function eD({share:a,publicHost:b,onDeleted:c}){let[d,e]=(0,g.useTransition)(),h=b?new URL(`/share/${a.id}`,b).toString():`/share/${a.id}`,j=a.label||("utility"===a.kind?`Утилита ${a.utilityId}`:"kb-file"===a.kind?`KB ${a.kbRelPath}`:"kb-tree"===a.kind?"Вся база знаний":"Дашборд проекта");return(0,f.jsxs)("li",{className:"flex items-start gap-2 rounded border bg-card px-2 py-1.5 text-xs",children:[(0,f.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,f.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,f.jsx)("span",{className:"font-medium truncate",children:j}),(0,f.jsx)("span",{className:"text-[9px] uppercase tracking-wider text-muted-foreground",children:a.kind}),a.passwordHash&&(0,f.jsx)("span",{className:"text-[9px] uppercase tracking-wider text-violet-600",children:"\uD83D\uDD12"})]}),(0,f.jsx)("a",{href:h,target:"_blank",rel:"noopener noreferrer",className:"block text-[10px] font-mono text-violet-700 hover:underline truncate",children:h})]}),(0,f.jsx)("button",{type:"button",onClick:()=>{navigator.clipboard.writeText(h).then(()=>n.oR.success("Ссылка скопирована"))},className:"text-[10px] text-muted-foreground hover:text-foreground rounded px-1 py-0.5",children:"copy"}),(0,f.jsx)("button",{type:"button",onClick:()=>{confirm(`Удалить ссылку "${j}"?`)&&e(async()=>{await eB(a.id),c()})},disabled:d,className:"text-muted-foreground hover:text-destructive rounded px-1",title:"Удалить ссылку",children:d?(0,f.jsx)(i.A,{className:"h-3 w-3 animate-spin"}):(0,f.jsx)(dP.A,{className:"h-3 w-3"})})]})}let eE=(0,dG.createServerReference)("405144ffb05202e79a6375ae68d8f6f45c49b3469a",dG.callServer,void 0,dG.findSourceMapURL,"listModelsAction"),eF=(0,dG.createServerReference)("406b58efc1ae721eec439232528088d2bac7e8067b",dG.callServer,void 0,dG.findSourceMapURL,"probeHarnessAction"),eG=(0,dG.createServerReference)("402c88e760b12ba162f3b3414bfd68e6f7eed9bf6b",dG.callServer,void 0,dG.findSourceMapURL,"saveSettingsAction");function eH({initialSettings:a,harnesses:b}){let[c,d]=(0,g.useState)(a),[e,k]=(0,g.useState)({"claude-code":null,codex:null,ollama:null}),[l,m]=(0,g.useState)({"claude-code":null,codex:null,ollama:null}),[s,t]=(0,g.useState)({"claude-code":!1,codex:!1,ollama:!1}),[v,z]=(0,g.useState)({"claude-code":null,codex:null,ollama:null}),[A,B]=(0,g.useTransition)(),C=(0,g.useCallback)(async a=>{t(b=>({...b,[a]:!0})),m(b=>({...b,[a]:null}));let b=await eE(a);t(b=>({...b,[a]:!1})),b.ok?k(c=>({...c,[a]:b.models})):(m(c=>({...c,[a]:b.error})),k(b=>({...b,[a]:[]})))},[]),D=(0,g.useCallback)(async a=>{let b=await eF(a);z(c=>({...c,[a]:b}))},[]),E=(a,b)=>{d(c=>({...c,assignments:{...c.assignments,[a]:{...c.assignments[a],...b}}}))},F=a=>{d(b=>({...b,language:a}))},G=a=>{d(b=>({...b,imageProcessing:{...b.imageProcessing,...a}}))},H=dy.includes(c.language),I="advanced"===c.uiMode;return(0,f.jsxs)("div",{className:"space-y-8",children:[(0,f.jsx)(p.Zp,{className:"border-violet-200 dark:border-violet-900/50 bg-violet-50/40 dark:bg-violet-950/20",children:(0,f.jsxs)(p.Wu,{className:"pt-5 pb-5 flex items-center gap-3",children:[(0,f.jsxs)("div",{className:"flex-1",children:[(0,f.jsx)("div",{className:"text-sm font-medium",children:I?"Расширенный режим":"Простой режим"}),(0,f.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:I?"Видны все секции — модели, MCP-серверы, prompt-шаблоны, инструменты.":"Видны только основные настройки. Включи расширенный, чтобы поменять модели, подключения и промпты."})]}),(0,f.jsx)(o.$,{type:"button",variant:I?"outline":"default",size:"sm",onClick:()=>{let a={...c,uiMode:I?"simple":"advanced"};d(a),eG(a)},children:I?"Простой режим":"Расширенный режим"})]})}),(0,f.jsxs)("section",{children:[(0,f.jsx)("h2",{className:"text-lg font-semibold mb-3",children:"Output language"}),(0,f.jsx)(p.Zp,{children:(0,f.jsxs)(p.Wu,{className:"pt-6",children:[(0,f.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,f.jsxs)("div",{className:"flex items-center gap-3 max-w-xl",children:[(0,f.jsxs)("div",{className:"flex-1",children:[(0,f.jsx)(r.J,{className:"text-xs text-muted-foreground",children:"Preset"}),(0,f.jsxs)(y.l6,{value:H?c.language:"__custom__",onValueChange:a=>{"__custom__"===a?F(H?"":c.language):F(a)},children:[(0,f.jsx)(y.bq,{className:"mt-1",children:(0,f.jsx)(y.yv,{})}),(0,f.jsxs)(y.gC,{children:[dy.map(a=>(0,f.jsx)(y.eb,{value:a,children:a},a)),(0,f.jsx)(y.eb,{value:"__custom__",children:"custom…"})]})]})]}),!H&&(0,f.jsxs)("div",{className:"flex-1",children:[(0,f.jsx)(r.J,{className:"text-xs text-muted-foreground",children:"Custom"}),(0,f.jsx)(q.p,{value:c.language,onChange:a=>F(a.target.value),placeholder:"e.g. portugu\xeas, latviešu",className:"mt-1"})]})]})]})})]}),(0,f.jsxs)("section",{children:[(0,f.jsx)("h2",{className:"text-lg font-semibold mb-3",children:"Обработка изображений"}),(0,f.jsx)(p.Zp,{children:(0,f.jsxs)(p.Wu,{className:"pt-6 space-y-4",children:[(0,f.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,f.jsxs)("div",{children:[(0,f.jsxs)("p",{className:"text-sm",children:["Reflex автоматически ресайзит и перекодирует прикреплённые изображения перед сохранением в"," ",(0,f.jsx)("code",{className:"font-mono text-xs",children:".reflex/attachments/"}),"."]}),(0,f.jsx)("p",{className:"text-xs text-muted-foreground mt-1",children:"Сокращает токены модели и место на диске. Векторы (SVG) и анимированные GIF/WebP остаются как есть."})]}),(0,f.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[(0,f.jsx)(r.J,{htmlFor:"img-enabled",className:"text-xs",children:"включено"}),(0,f.jsx)(u,{id:"img-enabled",checked:c.imageProcessing.enabled,onCheckedChange:a=>G({enabled:a})})]})]}),(0,f.jsxs)("div",{className:c.imageProcessing.enabled?"space-y-4":"space-y-4 opacity-50 pointer-events-none",children:[(0,f.jsxs)("div",{children:[(0,f.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,f.jsx)(r.J,{className:"text-xs text-muted-foreground",children:"Макс. сторона"}),(0,f.jsxs)("span",{className:"font-mono text-xs",children:[c.imageProcessing.maxDimension,"px"]})]}),(0,f.jsx)(w,{min:256,max:8192,step:64,value:[c.imageProcessing.maxDimension],onValueChange:a=>G({maxDimension:a[0]??2e3})}),(0,f.jsxs)("div",{className:"flex justify-between text-[10px] text-muted-foreground mt-1",children:[(0,f.jsx)("span",{children:"256"}),(0,f.jsx)("span",{children:"2048"}),(0,f.jsx)("span",{children:"4096"}),(0,f.jsx)("span",{children:"8192"})]})]}),(0,f.jsxs)("div",{children:[(0,f.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,f.jsx)(r.J,{className:"text-xs text-muted-foreground",children:"Качество (JPEG / WebP)"}),(0,f.jsx)("span",{className:"font-mono text-xs",children:c.imageProcessing.quality})]}),(0,f.jsx)(w,{min:40,max:100,step:1,value:[c.imageProcessing.quality],onValueChange:a=>G({quality:a[0]??85})})]}),(0,f.jsxs)("div",{className:"max-w-xs",children:[(0,f.jsx)(r.J,{className:"text-xs text-muted-foreground",children:"Формат"}),(0,f.jsxs)(y.l6,{value:c.imageProcessing.format,onValueChange:a=>G({format:a}),children:[(0,f.jsx)(y.bq,{className:"mt-1",children:(0,f.jsx)(y.yv,{})}),(0,f.jsx)(y.gC,{children:dz.map(a=>(0,f.jsxs)(y.eb,{value:a,children:[(0,f.jsx)("span",{className:"font-mono",children:a}),(0,f.jsx)("span",{className:"ml-2 text-muted-foreground text-xs",children:"auto"===a?"JPEG, PNG для прозрачных":"jpeg"===a?"всё в JPEG (альфа → белый фон)":"webp"===a?"всё в WebP":"оставить исходный контейнер"})]},a))})]})]})]})]})})]}),I&&(0,f.jsxs)("section",{children:[(0,f.jsx)("h2",{className:"text-lg font-semibold mb-3",children:"Harnesses"}),(0,f.jsx)("div",{className:"grid gap-4",children:b.map(a=>{let b=v[a.id],g=c.harnesses[a.id].enabled;return(0,f.jsxs)(p.Zp,{children:[(0,f.jsx)(p.aR,{children:(0,f.jsxs)("div",{className:"flex items-center justify-between gap-4",children:[(0,f.jsxs)("div",{children:[(0,f.jsxs)(p.ZB,{className:"flex items-center gap-2",children:[a.label,(0,f.jsx)(eK,{probe:b})]}),(0,f.jsx)(p.BT,{children:b?b.detail:"checking…"})]}),(0,f.jsxs)("div",{className:"flex items-center gap-3",children:[(0,f.jsxs)(o.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>{D(a.id),C(a.id)},disabled:s[a.id],children:[(0,f.jsx)(h.A,{className:`mr-1 h-4 w-4 ${s[a.id]?"animate-spin":""}`}),"Refresh"]}),(0,f.jsxs)("div",{className:"flex items-center gap-2",children:[(0,f.jsx)(r.J,{htmlFor:`enable-${a.id}`,className:"text-xs",children:"enabled"}),(0,f.jsx)(u,{id:`enable-${a.id}`,checked:g,onCheckedChange:b=>{var c;return c=a.id,void d(a=>({...a,harnesses:{...a.harnesses,[c]:{...a.harnesses[c],enabled:b}}}))}})]})]})]})}),(0,f.jsxs)(p.Wu,{children:["ollama"===a.id&&(0,f.jsxs)("div",{className:"mb-3 flex items-center gap-2 max-w-md",children:[(0,f.jsx)(r.J,{htmlFor:"ollama-url",className:"text-xs w-24 shrink-0",children:"Base URL"}),(0,f.jsx)(q.p,{id:"ollama-url",value:c.harnesses.ollama.baseUrl,onChange:a=>{var b;return b=a.target.value,void d(a=>({...a,harnesses:{...a.harnesses,ollama:{...a.harnesses.ollama,baseUrl:b}}}))},placeholder:"http://localhost:11434",className:"font-mono text-xs"})]}),(0,f.jsxs)("div",{className:"text-xs text-muted-foreground",children:["Models loaded:"," ",s[a.id]?(0,f.jsxs)("span",{children:[(0,f.jsx)(i.A,{className:"inline h-3 w-3 animate-spin mr-1"}),"loading…"]}):l[a.id]?(0,f.jsx)("span",{className:"text-destructive",children:l[a.id]}):`${e[a.id]?.length??0}`,(e[a.id]?.length??0)>0&&(0,f.jsxs)("span",{className:"ml-2",children:["(",e[a.id]?.[0]?.source,")"]})]})]})]},a.id)})})]}),I&&(0,f.jsxs)("section",{children:[(0,f.jsx)("h2",{className:"text-lg font-semibold mb-3",children:"Task assignments"}),(0,f.jsx)("div",{className:"grid gap-4",children:du.map(a=>{let d=c.assignments[a],g=b.filter(b=>b.supports.includes(a)&&c.harnesses[b.id].enabled),h=e[d.harness]??[],i=h[0]?.source;return(0,f.jsxs)(p.Zp,{children:[(0,f.jsxs)(p.aR,{children:[(0,f.jsx)(p.ZB,{className:"text-base",children:dv[a].title}),(0,f.jsx)(p.BT,{children:dv[a].help})]}),(0,f.jsxs)(p.Wu,{className:"space-y-3",children:[(0,f.jsxs)("div",{className:"flex flex-col md:flex-row md:items-end gap-3",children:[(0,f.jsxs)("div",{className:"flex-1 max-w-[200px]",children:[(0,f.jsx)(r.J,{className:"text-xs text-muted-foreground",children:"Harness"}),(0,f.jsxs)(y.l6,{value:d.harness,onValueChange:b=>E(a,{harness:b,model:e[b]?.[0]?.id??""}),children:[(0,f.jsx)(y.bq,{className:"mt-1",children:(0,f.jsx)(y.yv,{})}),(0,f.jsx)(y.gC,{children:g.map(a=>(0,f.jsx)(y.eb,{value:a.id,children:a.label},a.id))})]})]}),(0,f.jsxs)("div",{className:"flex-1",children:[(0,f.jsxs)("div",{className:"flex items-center justify-between",children:[(0,f.jsx)(r.J,{className:"text-xs text-muted-foreground",children:"Model"}),i&&(0,f.jsx)(x.E,{variant:"live"===i?"default":"secondary",className:"text-[10px] uppercase",children:i})]}),h.length>0?(0,f.jsxs)(y.l6,{value:d.model,onValueChange:b=>E(a,{model:b}),children:[(0,f.jsx)(y.bq,{className:"mt-1",children:(0,f.jsx)(y.yv,{placeholder:"select model"})}),(0,f.jsx)(y.gC,{children:h.map(a=>(0,f.jsxs)(y.eb,{value:a.id,children:[(0,f.jsx)("span",{className:"font-mono",children:a.id}),a.size&&(0,f.jsx)("span",{className:"ml-2 text-muted-foreground text-xs",children:a.size})]},a.id))})]}):(0,f.jsx)(q.p,{value:d.model,onChange:b=>E(a,{model:b.target.value}),placeholder:"model id",className:"mt-1 font-mono text-xs"})]})]}),"claude-code"===d.harness&&(0,f.jsx)(eJ,{tools:d.allowedTools,onChange:b=>E(a,{allowedTools:b})})]})]},a)})})]}),(0,f.jsxs)("section",{children:[(0,f.jsx)("h2",{className:"text-lg font-semibold mb-3",children:"Gemini"}),(0,f.jsx)(ej,{})]}),(0,f.jsxs)("section",{children:[(0,f.jsx)("h2",{className:"text-lg font-semibold mb-3",children:"Картинки"}),(0,f.jsx)(en,{})]}),(0,f.jsxs)("section",{children:[(0,f.jsx)("h2",{className:"text-lg font-semibold mb-3",children:"OAuth providers"}),(0,f.jsxs)("p",{className:"text-sm text-muted-foreground mb-3",children:["Reflex держит локально access/refresh-токены и сам обновляет их при истечении. Используй ",(0,f.jsx)("code",{children:"$oauth:<provider>"})," в env/headers MCP-сервера — Reflex подставит свежий токен при каждом вызове. Redirect URI:"," ",(0,f.jsx)("code",{className:"font-mono",children:"http://localhost:3210/api/oauth/callback"}),"."]}),(0,f.jsx)(ed,{})]}),I&&(0,f.jsxs)("section",{children:[(0,f.jsx)("h2",{className:"text-lg font-semibold mb-3",children:"MCP servers"}),(0,f.jsxs)("p",{className:"text-sm text-muted-foreground mb-3",children:["Зарегистрированные MCP-серверы доступны утилитам (через"," ",(0,f.jsx)("code",{children:"manifest.mcpServers"}),") и чату напрямую (orchestrator получает их через ",(0,f.jsx)("code",{children:"--mcp-config"}),"). Config хранится в"," ",(0,f.jsx)("code",{children:"~/.reflex/mcp/servers.json"})," с perms ",(0,f.jsx)("code",{children:"0600"}),"."]}),(0,f.jsx)(dX,{})]}),(0,f.jsxs)("section",{children:[(0,f.jsx)("h2",{className:"text-lg font-semibold mb-3",children:"Сервисы маршрутов"}),(0,f.jsx)("p",{className:"text-sm text-muted-foreground mb-3",children:"Какие сервисы навигации появятся в попапе \xabМаршрут в…\xbb на каждой точке map-виджета. Reflex генерирует deep-link из координат — без посредников, без аккаунтов."}),(0,f.jsx)(er,{settings:c,onChange:a=>d(b=>({...b,...a}))})]}),(0,f.jsxs)("section",{children:[(0,f.jsx)("h2",{className:"text-lg font-semibold mb-3",children:"Публичные ссылки (ngrok)"}),(0,f.jsx)("p",{className:"text-sm text-muted-foreground mb-3",children:"Сделать утилиту, KB-файл или дашборд доступным из интернета через ngrok-туннель. Каждая ссылка опционально защищена паролем; middleware закрывает все остальные пути на ngrok-хосте."}),(0,f.jsx)(eC,{settings:c,onChange:a=>d(b=>({...b,...a}))})]}),I&&(0,f.jsxs)("section",{children:[(0,f.jsx)("h2",{className:"text-lg font-semibold mb-3",children:"Prompt templates"}),(0,f.jsxs)("p",{className:"text-sm text-muted-foreground mb-3",children:["Stored on disk under ",(0,f.jsx)("code",{children:"~/.reflex/prompts/"}),". Edit here or directly in any editor. Use ",(0,f.jsx)("code",{children:"{{language}}"}),","," ",(0,f.jsx)("code",{children:"{{scope}}"}),", etc. — variable list is shown per template."]}),(0,f.jsx)(dL,{})]}),(0,f.jsx)("div",{className:"flex justify-end",children:(0,f.jsx)(o.$,{onClick:()=>{B(async()=>{let a=await eG(c);a.ok?n.oR.success("Settings saved"):n.oR.error(a.error??"Save failed")})},disabled:A,children:A?(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(i.A,{className:"mr-2 h-4 w-4 animate-spin"})," Saving…"]}):(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(j.A,{className:"mr-2 h-4 w-4"})," Save settings"]})})})]})}let eI=["Read","Write","Edit","LS","Glob","Grep","Bash","WebSearch","WebFetch","TodoWrite","Task","NotebookEdit"];function eJ({tools:a,onChange:b}){let c=c=>{let d=c.trim();d&&(a.includes(d)||b([...a,d]))},[d,e]=(0,g.useState)(""),h=eI.filter(b=>!a.includes(b));return(0,f.jsxs)("div",{className:"rounded-md border bg-muted/30 p-3 space-y-2",children:[(0,f.jsxs)("div",{className:"flex items-baseline justify-between",children:[(0,f.jsx)(r.J,{className:"text-xs text-muted-foreground",children:"Allowed tools (claude-code)"}),(0,f.jsx)("span",{className:"text-[10px] text-muted-foreground",children:"без них агент попросит разрешение и зависнет в headless-режиме"})]}),(0,f.jsxs)("div",{className:"flex flex-wrap gap-1.5",children:[0===a.length&&(0,f.jsx)("span",{className:"text-[11px] italic text-muted-foreground",children:"используются дефолты harness'а"}),a.map(c=>(0,f.jsxs)(x.E,{variant:"secondary",className:"gap-1 font-mono",children:[c,(0,f.jsx)("button",{type:"button",className:"text-muted-foreground hover:text-foreground",onClick:()=>b(a.filter(a=>a!==c)),children:"\xd7"})]},c))]}),h.length>0&&(0,f.jsx)("div",{className:"flex flex-wrap gap-1",children:h.map(a=>(0,f.jsxs)("button",{type:"button",onClick:()=>c(a),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:["+ ",a]},a))}),(0,f.jsxs)("form",{className:"flex gap-1",onSubmit:a=>{a.preventDefault(),c(d),e("")},children:[(0,f.jsx)(q.p,{value:d,onChange:a=>e(a.target.value),placeholder:"custom tool name…",className:"h-7 text-xs font-mono"}),(0,f.jsx)(o.$,{type:"submit",size:"sm",variant:"ghost",className:"h-7",children:"+"})]})]})}function eK({probe:a}){return a?a.available?(0,f.jsxs)(x.E,{variant:"default",className:"gap-1 bg-emerald-600",children:[(0,f.jsx)(k.A,{className:"h-3 w-3"})," available"]}):(0,f.jsxs)(x.E,{variant:"destructive",className:"gap-1",children:[(0,f.jsx)(m,{className:"h-3 w-3"})," unavailable"]}):(0,f.jsxs)(x.E,{variant:"outline",className:"gap-1",children:[(0,f.jsx)(i.A,{className:"h-3 w-3 animate-spin"})," checking"]})}},7206:a=>{"use strict";a.exports=import("execa")},8086:a=>{"use strict";a.exports=require("module")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12619:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).A)("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]])},12757:(a,b,c)=>{"use strict";c.d(b,{J:()=>e});var d=c(3265);let e=(0,d.createServerReference)("403ae3a27ef574b4ad82686ef1a09eb0f0b66ddf39",d.callServer,void 0,d.findSourceMapURL,"getOAuthClientAction")},13530:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).A)("Save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]])},14471:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).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"}]])},16551:(a,b,c)=>{"use strict";c.d(b,{Xi:()=>k,av:()=>l,j7:()=>j,tU:()=>h});var d=c(64173);c(17240);var e=c(20483),f=c(61193),g=c(91344);function h({className:a,orientation:b="horizontal",...c}){return(0,d.jsx)(f.Root,{"data-slot":"tabs","data-orientation":b,orientation:b,className:(0,g.cn)("group/tabs flex gap-2 data-[orientation=horizontal]:flex-col",a),...c})}let i=(0,e.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 j({className:a,variant:b="default",...c}){return(0,d.jsx)(f.List,{"data-slot":"tabs-list","data-variant":b,className:(0,g.cn)(i({variant:b}),a),...c})}function k({className:a,...b}){return(0,d.jsx)(f.Trigger,{"data-slot":"tabs-trigger",className:(0,g.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",a),...b})}function l({className:a,...b}){return(0,d.jsx)(f.Content,{"data-slot":"tabs-content",className:(0,g.cn)("flex-1 outline-none",a),...b})}},16863:(a,b,c)=>{"use strict";c.d(b,{T:()=>e});var d=c(3265);let e=(0,d.createServerReference)("60e20e20af6c69e1e46336332e38b26e6646b66ff2",d.callServer,void 0,d.findSourceMapURL,"beginOAuthAction")},17596:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(19963).A)("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]])},17640:(a,b,c)=>{"use strict";c.d(b,{M:()=>o,D:()=>p});var d=c(73024),e=c(76760),f=c.n(e),g=c(14126);let h=g.Ik({"claude-code":g.Ik({enabled:g.zM().default(!0)}),codex:g.Ik({enabled:g.zM().default(!0)}),ollama:g.Ik({enabled:g.zM().default(!0),baseUrl:g.Yj().url().default("http://localhost:11434")})}),i=g.Ik({harness:g.k5(["claude-code","codex","ollama"]),model:g.Yj().min(1),allowedTools:g.YO(g.Yj()).default([])}),j=g.Ik({enabled:g.zM().default(!0),maxDimension:g.ai().int().min(256).max(8192).default(2e3),quality:g.ai().int().min(40).max(100).default(85),format:g.k5(["auto","jpeg","webp","original"]).default("auto")}),k=g.Ik({version:g.eu(1).default(1),language:g.Yj().min(1).default("english"),onboardedAt:g.Yj().optional(),userName:g.Yj().default(""),timezone:g.Yj().default(""),uiMode:g.k5(["simple","advanced"]).default("simple"),imageProcessing:j.default({enabled:!0,maxDimension:2e3,quality:85,format:"auto"}),harnesses:h.default({"claude-code":{enabled:!0},codex:{enabled:!0},ollama:{enabled:!0,baseUrl:"http://localhost:11434"}}),assignments:g.Ik({analyze:i,chat:i,rag:i,embed:i,quick:i}).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:g.Ik({enabled:g.YO(g.Yj()).default(["google","yandex","apple","osm"])}).default({enabled:["google","yandex","apple","osm"]}),ngrok:g.Ik({authtoken:g.Yj().default(""),apiKey:g.Yj().default(""),domain:g.Yj().default(""),port:g.ai().int().min(1).max(65535).default(3210)}).default({authtoken:"",apiKey:"",domain:"",port:3210})}),l=k.parse({}),m=(0,c(29163)._)(),n=f().join(m,"settings.json");async function o(){try{let a=await d.promises.readFile(n,"utf8"),b=k.safeParse(JSON.parse(a));if(!b.success)return l;return b.data}catch(b){var a;if("object"==typeof(a=b)&&null!==a&&"code"in a&&"ENOENT"===a.code)return l;throw b}}async function p(a){let b=k.parse(a);await d.promises.mkdir(m,{recursive:!0}),await d.promises.writeFile(n,JSON.stringify(b,null,2)+"\n","utf8")}},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},24012:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{p:()=>i});var e=c(95004),f=c(5407),g=c(55976),h=a([e,f]);[e,f]=h.then?(await h)():h;let j={"claude-code":e.G,codex:f.K,ollama:g.j};function i(){return Object.values(j)}d()}catch(a){d(a)}})},24576:(a,b,c)=>{"use strict";c.d(b,{Zn:()=>p,_S:()=>q,mM:()=>l,qV:()=>o});var d=c(73024),e=c(76760),f=c.n(e),g=c(77598),h=c.n(g);let i=(0,c(29163)._)(),j=f().join(i,"registry.json"),k={version:1,entries:[]};function l(a){return h().createHash("sha1").update(f().resolve(a)).digest("hex").slice(0,16)}async function m(){try{let a=await d.promises.readFile(j,"utf8"),b=JSON.parse(a);if("object"==typeof b&&null!==b&&"entries"in b&&Array.isArray(b.entries))return b;return k}catch(a){if("object"==typeof a&&null!==a&&"code"in a&&"ENOENT"===a.code)return k;throw a}}async function n(a){await d.promises.mkdir(i,{recursive:!0}),await d.promises.writeFile(j,JSON.stringify(a,null,2)+"\n","utf8")}async function o(){return[...(await m()).entries].sort((a,b)=>Date.parse(b.addedAt)-Date.parse(a.addedAt))}async function p(a){return(await m()).entries.find(b=>b.id===a)??null}async function q(a){let b=f().resolve(a),c=l(b),d=await m(),e=d.entries.find(a=>a.id===c);if(e)return e;let g={id:c,path:b,addedAt:new Date().toISOString()};return await n({...d,entries:[...d.entries,g]}),g}},25436:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).A)("Square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]])},26290:(a,b,c)=>{"use strict";c.d(b,{cn:()=>f});var d=c(83243),e=c(86103);function f(...a){return(0,e.QP)((0,d.$)(a))}},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},28082:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).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"}]])},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29130:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).A)("Image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]])},29163:(a,b,c)=>{"use strict";c.d(b,{_:()=>h});var d=c(48161),e=c.n(d),f=c(76760),g=c.n(f);function h(){let a=process.env.REFLEX_HOME;return a&&a.length>0?a:g().join(e().homedir(),".reflex")}},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},30515:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).A)("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])},30637:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{G:()=>h});var e=c(7206),f=a([e]);e=(f.then?(await f)():f)[0];let g=[{id:"claude-opus-4-7",label:"Claude Opus 4.7",family:"opus",source:"static"},{id:"claude-sonnet-4-6",label:"Claude Sonnet 4.6",family:"sonnet",source:"static"},{id:"claude-haiku-4-5",label:"Claude Haiku 4.5",family:"haiku",source:"static"}],h={id:"claude-code",label:"Claude Code",supports:["analyze","chat","quick"],async probe(){try{let a=await (0,e.execa)("claude",["--version"],{timeout:3e3});return{ok:!0,available:!0,detail:a.stdout.trim()||"installed"}}catch(a){return{ok:!1,available:!1,detail:a instanceof Error?a.message:"not installed"}}},async listModels(){let a=process.env.ANTHROPIC_API_KEY;if(!a)return g;try{let b=await fetch("https://api.anthropic.com/v1/models",{headers:{"x-api-key":a,"anthropic-version":"2023-06-01"},signal:AbortSignal.timeout(4e3)});if(!b.ok)return g;let c=await b.json(),d=[];for(let a of c.data??[])a.id&&d.push({id:a.id,label:a.display_name??a.id,family:function(a){let b=a.toLowerCase();return b.includes("opus")?"opus":b.includes("sonnet")?"sonnet":b.includes("haiku")?"haiku":void 0}(a.id),source:"live"});if(0===d.length)return g;return d.sort((a,b)=>a.id.localeCompare(b.id)),d}catch{return g}}};d()}catch(a){d(a)}})},31041:(a,b,c)=>{"use strict";c.d(b,{BT:()=>i,Wu:()=>j,ZB:()=>h,Zp:()=>f,aR:()=>g,wL:()=>k});var d=c(64173);c(17240);var e=c(91344);function f({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card",className:(0,e.cn)("flex flex-col gap-6 rounded-xl border bg-card py-6 text-card-foreground shadow-sm",a),...b})}function g({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-header",className:(0,e.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",a),...b})}function h({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-title",className:(0,e.cn)("leading-none font-semibold",a),...b})}function i({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-description",className:(0,e.cn)("text-sm text-muted-foreground",a),...b})}function j({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-content",className:(0,e.cn)("px-6",a),...b})}function k({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-footer",className:(0,e.cn)("flex items-center px-6 [.border-t]:pt-6",a),...b})}},31421:a=>{"use strict";a.exports=require("node:child_process")},32138:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{CJ:()=>t,UL:()=>s,j3:()=>q,pD:()=>o,p_:()=>p,wG:()=>r});var e=c(73745);c(66493);var f=c(65326),g=c(580),h=c(97453),i=c(53905),j=c(5492),k=c(36017),l=c(51021),m=c(63781),n=a([l]);async function o(){try{let a=await (0,g.listMcpServers)();return{ok:!0,servers:a}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function p(a){try{let b=h.McpConfigSchema.parse(a.config),c=await (0,g.addMcpServer)({id:a.id,label:a.label,...void 0!==a.description?{description:a.description}:{},config:b});return(0,f.revalidatePath)("/settings"),{ok:!0,server:c}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function q(a){try{let b={};void 0!==a.label&&(b.label=a.label),void 0!==a.description&&(b.description=a.description),void 0!==a.config&&(b.config=h.McpConfigSchema.parse(a.config));let c=await (0,g.updateMcpServer)(a.id,b);return(0,f.revalidatePath)("/settings"),{ok:!0,server:c}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function r(a){try{return await (0,g.S)(a),(0,f.revalidatePath)("/settings"),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function s(a){try{let b=a.trim();if(!b)return{ok:!1,error:"empty prompt"};let c=(await (0,i.qV)())[0];if(!c)return{ok:!1,error:"no project root registered — add a root first"};let d=await (0,k.M)(),e=d.assignments.chat,g=await (0,j.OY)({root:c.path,firstMessage:`MCP setup: ${b.slice(0,60)}`,harness:e.harness,model:e.model,language:d.language}),h=`[MCP setup wizard] ${b}
63
+
64
+ Подбери нужный MCP-сервер (популярные npm-пакеты: \`@modelcontextprotocol/server-<name>\` или сторонние; HTTP-endpoint вендора если есть). Реши какие токены/credentials нужны и где их взять (Google → OAuth Playground, GitHub → PAT, Slack/Notion → internal token). Эмить \`<<reflex:mcp-add>>\` с полной конфигурацией; всё, что должен ввести пользователь — в \`secrets[]\` с понятной инструкцией. Если не уверен в выборе пакета — спроси через \`<<reflex:question>>\`.`,m=await (0,l.W)({rootId:c.id,topicId:g.meta.id,message:h});if("error"in m)return{ok:!1,error:m.error};return(0,f.revalidatePath)(`/roots/${c.id}`),{ok:!0,rootId:c.id,topicId:g.meta.id}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function t(a){try{let b=h.McpConfigSchema.parse(a),c=await (0,h.connectAndListTools)(b);return{ok:!0,...c.name?{serverName:c.name}:{},...c.version?{serverVersion:c.version}:{},tools:c.tools}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}l=(n.then?(await n)():n)[0],(0,m.D)([o,p,q,r,s,t]),(0,e.A)(o,"00b0feea18eed38b2bf9126d80d69f80bc5ac1e6ac",null),(0,e.A)(p,"40ac28d0c43e69d4f69288788124dbd6ca4b4fc132",null),(0,e.A)(q,"400258650d3fa925875d4045c632862205dcf84c87",null),(0,e.A)(r,"40a78de83dc9396bd3e3e72b3744d24d4f176ff970",null),(0,e.A)(s,"405bd36a84958578e2b58778fd7f165bb9349df7b0",null),(0,e.A)(t,"409809eb6cdbcf76c7da1f75999f07fee89c059d78",null),d()}catch(a){d(a)}})},33873:a=>{"use strict";a.exports=require("path")},36306:a=>{"use strict";a.exports=import("@tailwindcss/node")},36832:(a,b,c)=>{"use strict";c.d(b,{o:()=>e});var d=c(3265);let e=(0,d.createServerReference)("00668f3e8485f098c46718b7c7db363123bb1822ca",d.callServer,void 0,d.findSourceMapURL,"listOAuthStatusesAction")},39098:(a,b,c)=>{"use strict";c.d(b,{O1:()=>p,Gh:()=>q,AZ:()=>o,rD:()=>r,summarizeYoutubeAction:()=>n});var d=c(73745);c(66493);var e=c(70333);let f=globalThis.__reflexGeminiModelsCache??new Map;async function g(a){let b,c=await (0,e.CG)("gemini");if(!c)throw Error("Gemini API key not configured");let d=c.slice(0,16),g=f.get(d);if(!a?.refresh&&g&&Date.now()-g.fetchedAt<36e5)return g.models;let i=[];do{let a=new URL("https://generativelanguage.googleapis.com/v1beta/models");a.searchParams.set("key",c),a.searchParams.set("pageSize","100"),b&&a.searchParams.set("pageToken",b);let d=await fetch(a.toString(),{headers:{Accept:"application/json"}});if(!d.ok){let a=await d.text();throw Error(`models.list HTTP ${d.status}: ${a.slice(0,500)}`)}let e=await d.json();for(let a of e.models??[]){if(!a.name)continue;let b=a.supportedGenerationMethods??[];if(!b.includes("generateContent"))continue;let c=a.name.toLowerCase();!c.includes("embedding")&&(c.includes("aqa")||i.push({name:a.name,id:a.name.replace(/^models\//,""),...a.displayName?{displayName:a.displayName}:{},...a.description?{description:a.description}:{},...void 0!==a.inputTokenLimit?{inputTokenLimit:a.inputTokenLimit}:{},...void 0!==a.outputTokenLimit?{outputTokenLimit:a.outputTokenLimit}:{},supportedGenerationMethods:b}))}b=e.nextPageToken}while(b);return i.sort(h),f.set(d,{fetchedAt:Date.now(),models:i}),i}function h(a,b){let c=i(a.id),d=i(b.id);if(c!==d)return c-d;let e=j(a.id),f=j(b.id);return e!==f?f-e:a.id.localeCompare(b.id)}function i(a){return a.endsWith("flash-latest")?0:a.includes("flash")&&!a.includes("lite")?1:a.includes("flash-lite")?2:a.endsWith("pro-latest")||a.includes("pro")?3:4}function j(a){let b=/gemini-(\d+)\.(\d+)/.exec(a);return b?100*Number(b[1])+Number(b[2]):0}async function k(a="general"){let b=await (0,e.$L)("gemini");if("video"===a&&b?.videoModel)return b.videoModel;if(b?.model)return b.model;try{let a=await g();if(a.length>0)return a[0].id}catch{}return"gemini-flash-latest"}async function l(a){let b=`https://generativelanguage.googleapis.com/v1beta/models/${encodeURIComponent(a.model)}:generateContent?key=${encodeURIComponent(a.apiKey)}`,c=await fetch(b,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contents:a.contents,...a.generationConfig?{generationConfig:a.generationConfig}:{}})}),d=await c.text();if(!c.ok)throw Error(`Gemini HTTP ${c.status}: ${d.slice(0,800)}`);let e=JSON.parse(d);if(e.promptFeedback?.blockReason)throw Error(`Gemini blocked: ${e.promptFeedback.blockReason}`);return{text:(e.candidates??[]).flatMap(a=>a.content?.parts??[]).map(a=>a.text??"").filter(Boolean).join("\n").trim(),raw:e}}globalThis.__reflexGeminiModelsCache=f;var m=c(36017);async function n(a){var b;let c=await (0,e.CG)("gemini");if(!c)return{ok:!1,needsKey:!0,error:"Gemini API key не сохранён — введи его, чтобы суммаризировать видео."};let d=(await (0,m.M)()).language??"russian",f=a.prompt?.trim()||(b=d,/russ/i.test(b)||/рус/i.test(b)?"Сделай структурированную выжимку этого YouTube-видео:\n\n1. Один абзац — о чём видео целиком и для кого.\n2. Главные тезисы списком с тайм-кодами вида `[mm:ss]`.\n3. Ключевые цитаты (если есть запоминающиеся фразы) — с тайм-кодами.\n4. Если показаны диаграммы / схемы / код — кратко опиши что в них.\n5. Вывод 1-3 предложения: главное, что стоит унести.\n\nПиши на русском, лаконично. Без воды.":"Produce a structured summary of this YouTube video:\n\n1. One paragraph — what the video is about and who it's for.\n2. Main points as a bulleted list with `[mm:ss]` timestamps.\n3. Notable quotes (if any) with timestamps.\n4. If diagrams / slides / code are shown — briefly describe them.\n5. 1-3 sentence takeaway.\n\nBe concise. No filler."),g=a.modelOverride?.trim()||await k("video");try{let{text:b}=await l({model:g,apiKey:c,contents:[{parts:[{file_data:{file_uri:a.url,mime_type:"video/*"}},{text:f}]}]});if(!b)return{ok:!1,error:"Gemini вернул пустой ответ — возможно видео недоступно или приватное."};return{ok:!0,text:b,model:g}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function o(a){try{if(!a.trim())return{ok:!1,error:"API key is empty"};return await (0,e.Pc)("gemini",a),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function p(a){return{ok:!0,present:await (0,e.hasApiKey)(a)}}async function q(a=!1){try{let b=await g({refresh:a});return{ok:!0,models:b.map(a=>({id:a.id,...a.displayName?{displayName:a.displayName}:{},...a.description?{description:a.description}:{},...void 0!==a.inputTokenLimit?{inputTokenLimit:a.inputTokenLimit}:{},...void 0!==a.outputTokenLimit?{outputTokenLimit:a.outputTokenLimit}:{}})),currentModel:await k("general"),currentVideoModel:await k("video")}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function r(a){try{return await (0,e.ND)("gemini",a),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}(0,c(63781).D)([n,o,p,q,r]),(0,d.A)(n,"40bdf5387ecda8d30ee1ae616c85733f882df67754",null),(0,d.A)(o,"40edcdfb0c67ebf35498a6aff6d1926081f669f235",null),(0,d.A)(p,"40bfac1a21882e9becc8d3d3f679a0e378b921251d",null),(0,d.A)(q,"40ae168c85160b1fbef7c1573a6aed3055a2c56793",null),(0,d.A)(r,"40c38f628b5ec89e9c9abedc73cf8d081dc1f86a8c",null)},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},45477:(a,b,c)=>{"use strict";c.d(b,{T:()=>f});var d=c(64173);c(17240);var e=c(91344);function f({className:a,...b}){return(0,d.jsx)("textarea",{"data-slot":"textarea",className:(0,e.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",a),...b})}},46713:(a,b,c)=>{"use strict";c.d(b,{j:()=>f});var d=c(36017);async function e(){return(await (0,d.M)()).harnesses.ollama.baseUrl.replace(/\/$/,"")}let f={id:"ollama",label:"Ollama",supports:["rag","embed","chat","quick"],async probe(){let a=await e();try{let b=await fetch(`${a}/api/version`,{signal:AbortSignal.timeout(2500)});if(!b.ok)return{ok:!1,available:!1,detail:`HTTP ${b.status} at ${a}`};let c=await b.json();return{ok:!0,available:!0,detail:c.version?`v${c.version}`:"reachable"}}catch(b){return{ok:!1,available:!1,detail:b instanceof Error?`${b.message} (${a})`:`unreachable: ${a}`}}},async listModels(){let a=await e(),b=await fetch(`${a}/api/tags`,{signal:AbortSignal.timeout(4e3)});if(!b.ok)throw Error(`Ollama /api/tags returned HTTP ${b.status}`);let c=await b.json(),d=[];for(let a of c.models??[])d.push({id:a.name,label:a.name,family:a.details?.family,size:a.details?.parameter_size??function(a){if("number"==typeof a)return a<1e6?`${(a/1e3).toFixed(1)} KB`:a<1e9?`${(a/1e6).toFixed(0)} MB`:`${(a/1e9).toFixed(1)} GB`}(a.size),source:"live"});return d.sort((a,b)=>a.id.localeCompare(b.id)),d}}},48161:a=>{"use strict";a.exports=require("node:os")},50850:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{default:()=>o,dynamic:()=>p});var e=c(63003),f=c(20594),g=c.n(f),h=c(17596),i=c(84913),j=c(60524),k=c(17640),l=c(24012),m=c(71903),n=a([l]);l=(n.then?(await n)():n)[0];let p="force-dynamic";async function o(){let a=await (0,k.M)(),b=(0,l.p)().map(a=>({id:a.id,label:a.label,supports:[...a.supports]}));return(0,e.jsxs)("main",{className:"mx-auto w-full max-w-4xl flex-1 px-6 py-10",children:[(0,e.jsxs)("header",{className:"mb-8",children:[(0,e.jsx)(i.$,{asChild:!0,variant:"ghost",size:"sm",className:"mb-2 -ml-3",children:(0,e.jsxs)(g(),{href:"/",children:[(0,e.jsx)(h.A,{className:"mr-1 h-4 w-4"})," Roots"]})}),(0,e.jsx)("h1",{className:"text-3xl font-semibold tracking-tight",children:"Settings"}),(0,e.jsx)("p",{className:"text-muted-foreground mt-1",children:"Pick which harness runs each kind of task and which model it uses. Agentic work (analyze / chat) goes to Claude Code or Codex; RAG and embedding work goes to Ollama by default."})]}),(0,e.jsx)(j.Separator,{className:"mb-6"}),(0,e.jsx)(m.SettingsForm,{initialSettings:a,harnesses:b})]})}d()}catch(a){d(a)}})},52869:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).A)("Play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]])},55976:(a,b,c)=>{"use strict";c.d(b,{j:()=>f});var d=c(17640);async function e(){return(await (0,d.M)()).harnesses.ollama.baseUrl.replace(/\/$/,"")}let f={id:"ollama",label:"Ollama",supports:["rag","embed","chat","quick"],async probe(){let a=await e();try{let b=await fetch(`${a}/api/version`,{signal:AbortSignal.timeout(2500)});if(!b.ok)return{ok:!1,available:!1,detail:`HTTP ${b.status} at ${a}`};let c=await b.json();return{ok:!0,available:!0,detail:c.version?`v${c.version}`:"reachable"}}catch(b){return{ok:!1,available:!1,detail:b instanceof Error?`${b.message} (${a})`:`unreachable: ${a}`}}},async listModels(){let a=await e(),b=await fetch(`${a}/api/tags`,{signal:AbortSignal.timeout(4e3)});if(!b.ok)throw Error(`Ollama /api/tags returned HTTP ${b.status}`);let c=await b.json(),d=[];for(let a of c.models??[])d.push({id:a.name,label:a.name,family:a.details?.family,size:a.details?.parameter_size??function(a){if("number"==typeof a)return a<1e6?`${(a/1e3).toFixed(1)} KB`:a<1e9?`${(a/1e6).toFixed(0)} MB`:`${(a/1e9).toFixed(1)} GB`}(a.size),source:"live"});return d.sort((a,b)=>a.id.localeCompare(b.id)),d}}},57075:a=>{"use strict";a.exports=require("node:stream")},59677:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{R:()=>i});var e=c(30637),f=c(86264),g=c(46713),h=a([e,f]);[e,f]=h.then?(await h)():h;let j={"claude-code":e.G,codex:f.K,ollama:g.j};function i(a){return j[a]}d()}catch(a){d(a)}})},60183:(a,b,c)=>{Promise.resolve().then(c.bind(c,6041)),Promise.resolve().then(c.bind(c,68394)),Promise.resolve().then(c.bind(c,51189)),Promise.resolve().then(c.bind(c,66180)),Promise.resolve().then(c.bind(c,75266)),Promise.resolve().then(c.bind(c,14360)),Promise.resolve().then(c.bind(c,6786)),Promise.resolve().then(c.bind(c,44896)),Promise.resolve().then(c.bind(c,14848)),Promise.resolve().then(c.bind(c,53710)),Promise.resolve().then(c.bind(c,30544)),Promise.resolve().then(c.bind(c,13829)),Promise.resolve().then(c.bind(c,90044)),Promise.resolve().then(c.bind(c,57673)),Promise.resolve().then(c.bind(c,97053)),Promise.resolve().then(c.bind(c,43151)),Promise.resolve().then(c.bind(c,12156)),Promise.resolve().then(c.bind(c,71615)),Promise.resolve().then(c.bind(c,4080)),Promise.resolve().then(c.bind(c,87177)),Promise.resolve().then(c.bind(c,87634)),Promise.resolve().then(c.bind(c,6912)),Promise.resolve().then(c.bind(c,13976)),Promise.resolve().then(c.bind(c,18282)),Promise.resolve().then(c.bind(c,20633)),Promise.resolve().then(c.bind(c,61193)),Promise.resolve().then(c.bind(c,66188)),Promise.resolve().then(c.bind(c,66643)),Promise.resolve().then(c.bind(c,81669)),Promise.resolve().then(c.bind(c,39991)),Promise.resolve().then(c.bind(c,54972)),Promise.resolve().then(c.t.bind(c,1056,23))},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},63236:(a,b,c)=>{"use strict";c.d(b,{Kw:()=>l,ME:()=>m,mg:()=>k,vV:()=>g,xP:()=>h});var d=c(73745);c(66493);var e=c(28548),f=c(61495);async function g(a){try{let b=(0,e.Qs)(a),c=await (0,e.PM)(b),d=f.EE[b];return{ok:!0,name:b,body:c,defaultBody:d,missingSections:j(c,d),path:(0,e.Y7)(b),variables:f.Rg[b]}}catch(a){return{ok:!1,error:n(a)}}}async function h(a){try{let b=(0,e.Qs)(a),c=await (0,e.PM)(b),d=f.EE[b],g=j(c,d);if(0===g.length)return{ok:!0,body:c,appended:[]};let h=i(d),k=[],l=c.trimEnd();for(let a of g){let b=h.get(a);b&&(l+="\n\n"+b.trim(),k.push(a))}return l+="\n",await (0,e.AI)(b,l),{ok:!0,body:l,appended:k}}catch(a){return{ok:!1,error:n(a)}}}function i(a){let b=new Map,c=a.split(/\r?\n/),d="",e=[],f=()=>{let a=e.join("\n");(a.trim().length>0||d)&&b.set(d,a),e=[]};for(let a of c){let b=/^##\s+(.+?)\s*$/.exec(a);b&&(f(),d=b[1].trim()),e.push(a)}return f(),b}function j(a,b){let c=new Set(i(a).keys()),d=[];for(let a of i(b).keys())a&&(c.has(a)||d.push(a));return d}async function k(a,b){try{let c=(0,e.Qs)(a);return await (0,e.AI)(c,b),{ok:!0}}catch(a){return{ok:!1,error:n(a)}}}async function l(a){try{let b=(0,e.Qs)(a),c=await (0,e.iP)(b);return{ok:!0,body:c}}catch(a){return{ok:!1,error:n(a)}}}async function m(){return f._W.map(a=>({name:a,label:f.Bb[a],variables:f.Rg[a]}))}function n(a){return a instanceof Error?a.message:String(a)}(0,c(63781).D)([g,h,k,l,m]),(0,d.A)(g,"4037a13211e4da4dc348b5fc7640500f8e0ea3f556",null),(0,d.A)(h,"40a3e36aacb30909d62218d910e930b2c2e2d9ae38",null),(0,d.A)(k,"60e5bac5fbd5481afb8f3306d59be383fc6232a761",null),(0,d.A)(l,"407e7e42eddb3d2a7e8b34e1dbc0f4293658dc6fe4",null),(0,d.A)(m,"00a3739a5b1b318765a0720c337430e3efbbc336ad",null)},63351:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).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"}]])},65177:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).A)("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]])},65380:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{"000660397a2e1e3f76f6be0aad5aa11975b7ec053b":()=>n.Fm,"00247c9af27ed9e339caff737f075006cbedee9d97":()=>n.Nt,"00276ad8c6a0b60dc600b0629f69b9a9422ee6a06b":()=>o.L8,"0050e7f2d6be906e3fbf03e1936a5230d7e5b2e40b":()=>n.Zl,"00668f3e8485f098c46718b7c7db363123bb1822ca":()=>k.ol,"007b8744e52ea5445747439c591bab0cbfa066b493":()=>g.i,"00a3739a5b1b318765a0720c337430e3efbbc336ad":()=>i.ME,"00a9826435b2d89b67bc3077ab67ea45ae72db9c49":()=>m._E,"00b0feea18eed38b2bf9126d80d69f80bc5ac1e6ac":()=>j.pD,"00cd7d9a46dc4e1db0c907d9fce7858caaecad443c":()=>k.Av,"00ed32f63612e804c2915324a5b961bf2e5b19377c":()=>n.Ng,"00eebedbeb83776c46964daff981acb84c0606c198":()=>p.cj,"400258650d3fa925875d4045c632862205dcf84c87":()=>j.j3,"400d0ddb9a9612220914acc20f50989b8d31e014fe":()=>m.xv,"40220d73b141b1c5933c382c9691f6b43c2b70a650":()=>k.S7,"402c88e760b12ba162f3b3414bfd68e6f7eed9bf6b":()=>p.r6,"4037a13211e4da4dc348b5fc7640500f8e0ea3f556":()=>i.vV,"4037d474a064d59d59c0fefab7e81e3dc6e3c23cca":()=>o.Is,"403ae3a27ef574b4ad82686ef1a09eb0f0b66ddf39":()=>k.JV,"404b3766024abfb1e71572fd2361fd3d170fdb593b":()=>h.$z,"404f108ba012c2c4477e29a8254bc1cd74cbe0c8a7":()=>e.nC,"405144ffb05202e79a6375ae68d8f6f45c49b3469a":()=>p.pG,"405bd36a84958578e2b58778fd7f165bb9349df7b0":()=>j.UL,"406371e6e73115562beda2be60b801518557d42b7b":()=>o.ns,"406648b29e906c094e0bc25d5c0e466bef236190c6":()=>k.op,"406b58efc1ae721eec439232528088d2bac7e8067b":()=>p.pi,"407e7e42eddb3d2a7e8b34e1dbc0f4293658dc6fe4":()=>i.Kw,"4091825fa6f0a40d0b8a0b7c50e6102fc5e01c057e":()=>e.nY,"4095405d49d58ff1e072aaa8158a01d00551ae2a29":()=>k.G4,"409631ec8e42b36d4b08bdf389212db64bfa5b8364":()=>h.MU,"409809eb6cdbcf76c7da1f75999f07fee89c059d78":()=>j.CJ,"40a23937025995dbef539408a04df4316354bf4295":()=>f.z,"40a3e36aacb30909d62218d910e930b2c2e2d9ae38":()=>i.xP,"40a78de83dc9396bd3e3e72b3744d24d4f176ff970":()=>j.wG,"40ac28d0c43e69d4f69288788124dbd6ca4b4fc132":()=>j.p_,"40ae168c85160b1fbef7c1573a6aed3055a2c56793":()=>l.Gh,"40bdf5387ecda8d30ee1ae616c85733f882df67754":()=>l.summarizeYoutubeAction,"40bfac1a21882e9becc8d3d3f679a0e378b921251d":()=>l.O1,"40c38f628b5ec89e9c9abedc73cf8d081dc1f86a8c":()=>l.rD,"40c44748189e130f7026a549391f57d0c09eaa2fc7":()=>k.EI,"40e08bf932a0c8892c8d7a1b5c568414f03ef3e662":()=>k.vz,"40edcdfb0c67ebf35498a6aff6d1926081f669f235":()=>l.AZ,"40eeef872baa0da17a77f25f40fa697b66b35f49fe":()=>k.Is,"40f44ddb91fa08c6a94f2fa4b8df16c083791a8ec4":()=>f.u,"40fe47f712435a94219e2332cfc4d4c37a8e52d68d":()=>n.bt,"601e5ecc4d1b3d9209b0dac76091d76fd29fc06a98":()=>e.OQ,"6028d15aae38e6ec537c6332327fc5e7454c87a593":()=>k.nL,"60402759777295084f3a4e7351a9debca56ca056d0":()=>h.Tc,"604a644f25546e7bca4b097023d715b19c22a49efe":()=>e.T$,"60631140bafb5ef89c5bbeb7ea6a5348f410a85f82":()=>e.L4,"607af723d599f4ed3c292d2742f03a48b134ea1a97":()=>m.zB,"60e20e20af6c69e1e46336332e38b26e6646b66ff2":()=>k.TS,"60e5bac5fbd5481afb8f3306d59be383fc6232a761":()=>i.mg,"70875b124574bcaf46bfd7090b3b4b94aadfc8f735":()=>e.h$,"78451d2a985822f2b6ddc2c2a3b0bb138d587ea5b6":()=>e.g3});var e=c(13415),f=c(3890),g=c(50995),h=c(15754),i=c(63236),j=c(32138),k=c(83),l=c(39098),m=c(79615),n=c(92814),o=c(16856),p=c(81521),q=a([e,h,j,p]);[e,h,j,p]=q.then?(await q)():q,d()}catch(a){d(a)}})},65759:(a,b,c)=>{Promise.resolve().then(c.bind(c,71903)),Promise.resolve().then(c.bind(c,60524)),Promise.resolve().then(c.bind(c,50155)),Promise.resolve().then(c.bind(c,26922)),Promise.resolve().then(c.bind(c,79008)),Promise.resolve().then(c.bind(c,68146)),Promise.resolve().then(c.bind(c,60936)),Promise.resolve().then(c.bind(c,65138)),Promise.resolve().then(c.bind(c,68902)),Promise.resolve().then(c.bind(c,69644)),Promise.resolve().then(c.bind(c,49186)),Promise.resolve().then(c.bind(c,93099)),Promise.resolve().then(c.bind(c,83594)),Promise.resolve().then(c.bind(c,24375)),Promise.resolve().then(c.bind(c,67135)),Promise.resolve().then(c.bind(c,85105)),Promise.resolve().then(c.bind(c,41886)),Promise.resolve().then(c.bind(c,33309)),Promise.resolve().then(c.bind(c,37550)),Promise.resolve().then(c.bind(c,96623)),Promise.resolve().then(c.bind(c,77372)),Promise.resolve().then(c.bind(c,65478)),Promise.resolve().then(c.bind(c,97230)),Promise.resolve().then(c.bind(c,73552)),Promise.resolve().then(c.bind(c,391)),Promise.resolve().then(c.bind(c,4235)),Promise.resolve().then(c.bind(c,41138)),Promise.resolve().then(c.bind(c,60877)),Promise.resolve().then(c.bind(c,7671)),Promise.resolve().then(c.bind(c,5637)),Promise.resolve().then(c.bind(c,36786)),Promise.resolve().then(c.t.bind(c,20594,23))},66979:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).A)("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},71152:a=>{"use strict";a.exports=require("esbuild")},71155:(a,b,c)=>{"use strict";c.d(b,{bq:()=>l,eb:()=>n,gC:()=>m,l6:()=>j,yv:()=>k});var d=c(64173);c(17240);var e=c(58405),f=c(12619),g=c(78724),h=c(13976),i=c(91344);function j({...a}){return(0,d.jsx)(h.Root,{"data-slot":"select",...a})}function k({...a}){return(0,d.jsx)(h.Value,{"data-slot":"select-value",...a})}function l({className:a,size:b="default",children:c,...f}){return(0,d.jsxs)(h.Trigger,{"data-slot":"select-trigger","data-size":b,className:(0,i.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",a),...f,children:[c,(0,d.jsx)(h.Icon,{asChild:!0,children:(0,d.jsx)(e.A,{className:"size-4 opacity-50"})})]})}function m({className:a,children:b,position:c="item-aligned",align:e="center",...f}){return(0,d.jsx)(h.Portal,{children:(0,d.jsxs)(h.Content,{"data-slot":"select-content",className:(0,i.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"===c&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",a),position:c,align:e,...f,children:[(0,d.jsx)(o,{}),(0,d.jsx)(h.Viewport,{className:(0,i.cn)("p-1","popper"===c&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:b}),(0,d.jsx)(p,{})]})})}function n({className:a,children:b,...c}){return(0,d.jsxs)(h.Item,{"data-slot":"select-item",className:(0,i.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",a),...c,children:[(0,d.jsx)("span",{"data-slot":"select-item-indicator",className:"absolute right-2 flex size-3.5 items-center justify-center",children:(0,d.jsx)(h.ItemIndicator,{children:(0,d.jsx)(f.A,{className:"size-4"})})}),(0,d.jsx)(h.ItemText,{children:b})]})}function o({className:a,...b}){return(0,d.jsx)(h.ScrollUpButton,{"data-slot":"select-scroll-up-button",className:(0,i.cn)("flex cursor-default items-center justify-center py-1",a),...b,children:(0,d.jsx)(g.A,{className:"size-4"})})}function p({className:a,...b}){return(0,d.jsx)(h.ScrollDownButton,{"data-slot":"select-scroll-down-button",className:(0,i.cn)("flex cursor-default items-center justify-center py-1",a),...b,children:(0,d.jsx)(e.A,{className:"size-4"})})}},71903:(a,b,c)=>{"use strict";c.d(b,{SettingsForm:()=>d});let d=(0,c(54491).registerClientReference)(function(){throw Error("Attempted to call SettingsForm() from the server but SettingsForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/reflex-agent/reflex-agent/app/settings/_components/settings-form.tsx","SettingsForm")},72293:(a,b,c)=>{"use strict";c.d(b,{O:()=>j});var d=c(64173),e=c(17240),f=c(12619),g=c(28082),h=c(44052),i=c(20583);function j({steps:a}){return a&&0!==a.length?(0,d.jsx)("ol",{className:"space-y-2 text-xs",children:a.map((a,b)=>(0,d.jsxs)("li",{className:"flex gap-2",children:[(0,d.jsxs)("span",{className:"font-mono text-muted-foreground shrink-0 w-5 text-right",children:[b+1,"."]}),(0,d.jsxs)("div",{className:"space-y-1 flex-1 min-w-0",children:[(0,d.jsx)("div",{children:a.title}),a.choice&&(0,d.jsxs)("div",{className:"text-[11px]",children:[(0,d.jsx)("span",{className:"text-muted-foreground",children:"Выбери: "}),(0,d.jsx)("span",{className:"font-medium bg-muted/60 rounded px-1.5 py-0.5",children:a.choice})]}),a.body&&(0,d.jsx)("p",{className:"text-[11px] text-muted-foreground",children:a.body}),a.copy&&(0,d.jsxs)("div",{className:"flex items-center gap-2 mt-1",children:[a.field&&(0,d.jsxs)("span",{className:"text-[11px] text-muted-foreground",children:[a.field,":"]}),(0,d.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:a.copy}),(0,d.jsx)(k,{value:a.copy})]})]})]},b))}):null}function k({value:a}){let[b,c]=(0,e.useState)(!1);return(0,d.jsx)(i.$,{type:"button",size:"icon",variant:"ghost",className:"h-6 w-6 shrink-0",onClick:async()=>{try{await navigator.clipboard.writeText(a),c(!0),h.oR.success("Скопировано"),setTimeout(()=>c(!1),1200)}catch{h.oR.error("Не удалось скопировать")}},title:"Скопировать",children:b?(0,d.jsx)(f.A,{className:"h-3 w-3 text-emerald-600"}):(0,d.jsx)(g.A,{className:"h-3 w-3"})})}},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},75919:a=>{"use strict";a.exports=require("node:worker_threads")},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},77705:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>E.a,__next_app__:()=>K,handler:()=>M,pages:()=>J,routeModule:()=>L,tree:()=>I});var d=c(61597),e=c(99210),f=c(1082),g=c(15003),h=c(36265),i=c(11817),j=c(45136),k=c(41809),l=c(55745),m=c(88963),n=c(69153),o=c(48343),p=c(15808),q=c(21238),r=c(2555),s=c(261),t=c(34370),u=c(89583),v=c(26713),w=c(53875),x=c(7952),y=c(54532),z=c(80269),A=c(17851),B=c(57865),C=c(86439),D=c(47319),E=c.n(D),F=c(1859),G=c(20498),H={};for(let a in F)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(H[a]=()=>F[a]);c.d(b,H);let I={children:["",{children:["settings",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,50850)),"/home/runner/work/reflex-agent/reflex-agent/app/settings/page.tsx"]}]},{}]},{layout:[()=>Promise.resolve().then(c.bind(c,79459)),"/home/runner/work/reflex-agent/reflex-agent/app/layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,47319,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,82295,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,91570,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,72845,23)),"next/dist/client/components/builtin/unauthorized.js"]}]}.children,J=["/home/runner/work/reflex-agent/reflex-agent/app/settings/page.tsx"],K={require:c,loadChunk:()=>Promise.resolve()},L=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/settings/page",pathname:"/settings",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:I},distDir:".next",relativeProjectDir:""});async function M(a,b,d){var D;let H="/settings/page";"/index"===H&&(H="/");let N=(0,h.getRequestMeta)(a,"postponed"),O=(0,h.getRequestMeta)(a,"minimalMode"),P=await L.prepare(a,b,{srcPage:H,multiZoneDraftMode:!1});if(!P)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:Q,query:R,params:S,parsedUrl:T,pageIsDynamic:U,buildManifest:V,nextFontManifest:W,reactLoadableManifest:X,serverActionsManifest:Y,clientReferenceManifest:Z,subresourceIntegrityManifest:$,prerenderManifest:_,isDraftMode:aa,resolvedPathname:ab,revalidateOnlyGenerated:ac,routerServerContext:ad,nextConfig:ae,interceptionRoutePatterns:af}=P,ag=T.pathname||"/",ah=(0,s.normalizeAppPath)(H),{isOnDemandRevalidate:ai}=P,aj=L.match(ag,_),ak=!!_.routes[ab],al=!!(aj||ak||_.routes[ah]),am=a.headers["user-agent"]||"",an=(0,v.getBotType)(am),ao=(0,q.isHtmlBotRequest)(a),ap=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[u.NEXT_ROUTER_PREFETCH_HEADER],aq=(0,h.getRequestMeta)(a,"isRSCRequest")??(0,n.f)(a.headers[u.RSC_HEADER]),ar=(0,t.getIsPossibleServerAction)(a),as=(0,m.checkIsAppPPREnabled)(ae.experimental.ppr)&&(null==(D=_.routes[ah]??_.dynamicRoutes[ah])?void 0:D.renderingMode)==="PARTIALLY_STATIC",at=!1,au=!1,av=as?N:void 0,aw=as&&aq&&!ap,ax=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ay=!am||(0,q.shouldServeStreamingMetadata)(am,ae.htmlLimitedBots);ao&&as&&(al=!1,ay=!1);let az=!0===L.isDev||!al||"string"==typeof N||aw,aA=ao&&as,aB=null;aa||!al||az||ar||av||aw||(aB=ab);let aC=aB;!aC&&L.isDev&&(aC=ab),L.isDev||aa||!al||!aq||aw||(0,k.d)(a.headers);let aD={...F,tree:I,pages:J,GlobalError:E(),handler:M,routeModule:L,__next_app__:K};Y&&Z&&(0,p.setReferenceManifestsSingleton)({page:H,clientReferenceManifest:Z,serverActionsManifest:Y,serverModuleMap:(0,r.createServerModuleMap)({serverActionsManifest:Y})});let aE=a.method||"GET",aF=(0,g.getTracer)(),aG=aF.getActiveScopeSpan();try{let f=L.getVaryHeader(ab,af);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return L.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aF.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aE} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aE} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:R,params:S,page:ah,sharedContext:{buildId:Q},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aD,Component:(0,j.T)(aD),params:S,routeModule:L,page:H,postponed:f,shouldWaitOnAllReady:aA,serveStreamingMetadata:ay,supportsDynamicResponse:"string"==typeof f||az,buildManifest:V,nextFontManifest:W,reactLoadableManifest:X,subresourceIntegrityManifest:$,serverActionsManifest:Y,clientReferenceManifest:Z,setIsrStatus:null==ad?void 0:ad.setIsrStatus,dir:c(33873).join(process.cwd(),L.relativeProjectDir),isDraftMode:aa,isRevalidate:al&&!f&&!aw,botType:an,isOnDemandRevalidate:ai,isPossibleServerAction:ar,assetPrefix:ae.assetPrefix,nextConfigOutput:ae.output,crossOrigin:ae.crossOrigin,trailingSlash:ae.trailingSlash,previewProps:_.preview,deploymentId:ae.deploymentId,enableTainting:ae.experimental.taint,htmlLimitedBots:ae.htmlLimitedBots,devtoolSegmentExplorer:ae.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ae.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ae.experimental.cacheLife,basePath:ae.basePath,serverActions:ae.experimental.serverActions,...at?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:at}:{},experimental:{isRoutePPREnabled:as,expireTime:ae.expireTime,staleTimes:ae.experimental.staleTimes,cacheComponents:!!ae.experimental.cacheComponents,clientSegmentCache:!!ae.experimental.clientSegmentCache,clientParamParsing:!!ae.experimental.clientParamParsing,dynamicOnHover:!!ae.experimental.dynamicOnHover,inlineCss:!!ae.experimental.inlineCss,authInterrupts:!!ae.experimental.authInterrupts,clientTraceMetadata:ae.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>L.onRequestError(a,b,d,ad),err:(0,h.getRequestMeta)(a,"invokeError"),dev:L.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[z.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,al&&(null==n?void 0:n.revalidate)===0&&!L.isDev&&!as){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ab}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
65
+ see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:w.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},n=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===L.isDev,l=c||b.writableEnded;if(ai&&ac&&!f&&!O)return(null==ad?void 0:ad.render404)?await ad.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(aj&&(j=(0,x.parseFallbackField)(aj.fallback)),j===x.FallbackMode.PRERENDER&&(0,v.isBot)(am)&&(!as||ao)&&(j=x.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ai=!0),ai&&(j!==x.FallbackMode.NOT_FOUND||f)&&(j=x.FallbackMode.BLOCKING_STATIC_RENDER),!O&&j!==x.FallbackMode.BLOCKING_STATIC_RENDER&&aC&&!l&&!aa&&U&&(k||!ak)){let b;if((k||aj)&&j===x.FallbackMode.NOT_FOUND)throw new C.NoFallbackError;if(as&&!aq){let c="string"==typeof(null==aj?void 0:aj.fallback)?aj.fallback:k?ah:null;if(b=await L.handleResponse({cacheKey:c,req:a,nextConfig:ae,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:_,isRoutePPREnabled:as,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||au?(0,o.u)(ah):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let n=ai||g||!av?void 0:av;if(at&&void 0!==n)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:w.CachedRouteKind.PAGES,html:y.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=U&&as&&((0,h.getRequestMeta)(a,"renderFallbackShell")||au)?(0,o.u)(ag):null;return m({span:i,postponed:n,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,o=await L.handleResponse({cacheKey:aB,responseGenerator:a=>n({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ai,isRoutePPREnabled:as,req:a,nextConfig:ae,prerenderManifest:_,waitUntil:d.waitUntil});if(aa&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),L.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!o){if(aB)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=o.value)?void 0:f.kind)!==w.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=o.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof o.value.postponed;al&&!aw&&(!p||ap)&&(O||b.setHeader("x-nextjs-cache",ai?"REVALIDATED":o.isMiss?"MISS":o.isStale?"STALE":"HIT"),b.setHeader(u.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=o;if(av)l={revalidate:0,expire:void 0};else if(O&&aq&&!ap&&as)l={revalidate:0,expire:void 0};else if(!L.isDev)if(aa)l={revalidate:0,expire:void 0};else if(al){if(o.cacheControl)if("number"==typeof o.cacheControl.revalidate){if(o.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${o.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:o.cacheControl.revalidate,expire:(null==(j=o.cacheControl)?void 0:j.expire)??ae.expireTime}}else l={revalidate:z.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(o.cacheControl=l,"string"==typeof ax&&(null==q?void 0:q.kind)===w.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(u.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[z.NEXT_CACHE_TAGS_HEADER];O&&al&&c&&"string"==typeof c&&b.setHeader(z.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(ax);return void 0!==d?(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.fromStatic(d,u.RSC_CONTENT_TYPE_HEADER),cacheControl:o.cacheControl}):(b.statusCode=204,(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.EMPTY,cacheControl:o.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...o,value:{...o.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&av)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(O&&al||delete a[z.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[z.NEXT_CACHE_TAGS_HEADER];if(O&&al&&s&&"string"==typeof s&&b.setHeader(z.NEXT_CACHE_TAGS_HEADER,s),!q.status||aq&&as||(b.statusCode=q.status),!O&&q.status&&G.RedirectStatusCode[q.status]&&aq&&(b.statusCode=200),p&&b.setHeader(u.NEXT_DID_POSTPONE_HEADER,"1"),aq&&!aa){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:q.html,cacheControl:aw?{revalidate:0,expire:void 0}:o.cacheControl})}return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.fromStatic(q.rscData,u.RSC_CONTENT_TYPE_HEADER),cacheControl:o.cacheControl})}let t=q.html;if(!p||O||aq)return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:o.cacheControl});if(at)return t.push(new ReadableStream({start(a){a.enqueue(A.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:{revalidate:0,expire:void 0}});let v=new TransformStream;return t.push(v.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==w.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(v.writable)}).catch(a=>{v.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:{revalidate:0,expire:void 0}})};if(!aG)return await aF.withPropagatedContext(a.headers,()=>aF.trace(i.BaseServerSpan.handleRequest,{spanName:`${aE} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aE,"http.target":a.url}},p));await p(aG)}catch(b){throw b instanceof C.NoFallbackError||await L.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:al,isOnDemandRevalidate:ai})},ad),b}}},78474:a=>{"use strict";a.exports=require("node:events")},78724:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).A)("ChevronUp",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]])},79428:a=>{"use strict";a.exports=require("buffer")},79615:(a,b,c)=>{"use strict";c.d(b,{_E:()=>h,xv:()=>g,zB:()=>f});var d=c(73745);c(66493);var e=c(70333);async function f(a,b){try{let c=b.trim();if(!c)return{ok:!1,error:"API key is empty"};return await (0,e.Pc)(a,c),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function g(a){return await (0,e.Lh)(a),{ok:!0}}async function h(){let{hasApiKey:a}=await Promise.resolve().then(c.bind(c,70333)),{resolveBraveKey:b}=await c.e(8262).then(c.bind(c,48262));return await a("brave")?{ok:!0,hasDedicated:!0,viaMcp:!1}:{ok:!0,hasDedicated:!1,viaMcp:null!==await b()}}(0,c(63781).D)([f,g,h]),(0,d.A)(f,"607af723d599f4ed3c292d2742f03a48b134ea1a97",null),(0,d.A)(g,"400d0ddb9a9612220914acc20f50989b8d31e014fe",null),(0,d.A)(h,"00a9826435b2d89b67bc3077ab67ea45ae72db9c49",null)},79646:a=>{"use strict";a.exports=require("child_process")},81521:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{cj:()=>l,pG:()=>n,pi:()=>o,r6:()=>m});var e=c(73745);c(66493);var f=c(65326),g=c(36017),h=c(78555),i=c(59677),j=c(63781),k=a([i]);async function l(){try{return{ok:!0,settings:await (0,g.M)()}}catch(a){return{ok:!1,error:p(a)}}}async function m(a){try{let b=h.ht.safeParse(a);if(!b.success)return{ok:!1,error:b.error.issues.map(a=>a.message).join("; ")};return await (0,g.D)(b.data),(0,f.revalidatePath)("/settings"),{ok:!0}}catch(a){return{ok:!1,error:p(a)}}}async function n(a){try{let b=await (0,i.R)(a).listModels();return{ok:!0,models:b}}catch(a){return{ok:!1,error:p(a)}}}async function o(a){try{return await (0,i.R)(a).probe()}catch(a){return{ok:!1,available:!1,detail:p(a)}}}function p(a){return a instanceof Error?a.message:String(a)}i=(k.then?(await k)():k)[0],(0,j.D)([l,m,n,o]),(0,e.A)(l,"00eebedbeb83776c46964daff981acb84c0606c198",null),(0,e.A)(m,"402c88e760b12ba162f3b3414bfd68e6f7eed9bf6b",null),(0,e.A)(n,"405144ffb05202e79a6375ae68d8f6f45c49b3469a",null),(0,e.A)(o,"406b58efc1ae721eec439232528088d2bac7e8067b",null),d()}catch(a){d(a)}})},83620:(a,b,c)=>{"use strict";c.d(b,{S:()=>e});var d=c(3265);let e=(0,d.createServerReference)("40220d73b141b1c5933c382c9691f6b43c2b70a650",d.callServer,void 0,d.findSourceMapURL,"saveOAuthClientAction")},84913:(a,b,c)=>{"use strict";c.d(b,{$:()=>i});var d=c(63003);c(34750);var e=c(86209),f=c(65715),g=c(26290);let h=(0,e.F)("inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",xs:"h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-xs":"size-6 rounded-md [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}});function i({className:a,variant:b="default",size:c="default",asChild:e=!1,...i}){let j=e?f.bL:"button";return(0,d.jsx)(j,{"data-slot":"button","data-variant":b,"data-size":c,className:(0,g.cn)(h({variant:b,size:c,className:a})),...i})}},85548:(a,b,c)=>{"use strict";function d(a){return`${a.lat},${a.lng}`}function e(a){return`${a.lng},${a.lat}`}c.d(b,{JY:()=>g,yp:()=>f});let f=[{id:"google",label:"Google Maps",description:"Глобальный, navigation+street view. Работает везде кроме РФ-блокировок.",brand:"#4285F4",glyph:"G",urlFor:(a,b)=>`https://www.google.com/maps/dir/?api=1&destination=${a},${b}`,routeUrlFor:a=>{if(a.length<2)return"";let b=d(a[0]),c=d(a[a.length-1]),e=a.slice(1,-1).map(d).join("|"),f=e?`&waypoints=${encodeURIComponent(e)}`:"";return`https://www.google.com/maps/dir/?api=1&origin=${b}&destination=${c}${f}`}},{id:"yandex",label:"Яндекс.Карты",description:"СНГ, лучшая детализация по РФ и пробки в реальном времени.",brand:"#FFCC00",glyph:"Я",urlFor:(a,b)=>`https://yandex.ru/maps/?rtext=~${a},${b}&rtt=auto`,routeUrlFor:a=>`https://yandex.ru/maps/?rtext=${a.map(d).join("~")}&rtt=auto`},{id:"2gis",label:"2ГИС",description:"СНГ, точные адреса и POI. Уникальная свойственность РФ-городов.",brand:"#1BA049",glyph:"2",urlFor:(a,b)=>`https://2gis.ru/routeSearch/to/${b},${a}`,routeUrlFor:a=>{let b=e(a[0]),c=e(a[a.length-1]),d=a.slice(1,-1).map(a=>`/via/${e(a)}`).join("");return`https://2gis.ru/routeSearch/rsType/car/from/${b}${d}/to/${c}`}},{id:"apple",label:"Apple Maps",description:"Откроется в нативном приложении на iOS/macOS, иначе на сайте.",brand:"#1d1d1f",glyph:"A",urlFor:(a,b)=>`https://maps.apple.com/?daddr=${a},${b}`,routeUrlFor:a=>{let b=d(a[0]),c=a.slice(1).map(a=>`+to:${d(a)}`).join("");return`https://maps.apple.com/?saddr=${b}&daddr=${b}${c}`}},{id:"osm",label:"OpenStreetMap",description:"Открытые данные, без аккаунта. Базовая навигация.",brand:"#7EB73F",glyph:"OSM",urlFor:(a,b)=>`https://www.openstreetmap.org/directions?to=${a},${b}`,routeUrlFor:a=>{let b=a.map(d).join(";");return`https://www.openstreetmap.org/directions?route=${encodeURIComponent(b)}`}},{id:"waze",label:"Waze",description:"Авто-навигация с краудсорсингом пробок и предупреждений.",brand:"#33CCFF",glyph:"W",urlFor:(a,b)=>`https://waze.com/ul?ll=${a},${b}&navigate=yes`,routeUrlFor:a=>{let b=a[a.length-1];return`https://waze.com/ul?ll=${b.lat},${b.lng}&navigate=yes`}},{id:"organic",label:"Organic Maps",description:"Офлайн-карты с открытыми данными. Открывается в приложении.",brand:"#006C35",glyph:"OM",urlFor:(a,b)=>`om://map?ll=${a},${b}`,routeUrlFor:a=>{let b=a[0],c=a[a.length-1];return`om://route?sll=${b.lat},${b.lng}&saddr=&dll=${c.lat},${c.lng}&daddr=&type=vehicle`}}],g=["google","yandex","apple","osm"]},86264:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{K:()=>h});var e=c(7206),f=a([e]);e=(f.then?(await f)():f)[0];let g=[{id:"gpt-5.5",label:"GPT-5.5",source:"static"},{id:"gpt-5.4",label:"GPT-5.4",source:"static"},{id:"gpt-5.4-mini",label:"GPT-5.4-Mini",source:"static"},{id:"gpt-5.3-codex",label:"GPT-5.3-Codex",source:"static"}],h={id:"codex",label:"Codex",supports:["analyze","chat","quick"],async probe(){try{let a=await (0,e.execa)("codex",["--version"],{timeout:3e3});return{ok:!0,available:!0,detail:a.stdout.trim()||"installed"}}catch(a){return{ok:!1,available:!1,detail:a instanceof Error?a.message:"not installed"}}},async listModels(){try{let{listCodexModels:a}=await Promise.resolve().then(c.bind(c,59377)),b=(await a()).filter(a=>!a.hidden);if(0===b.length)return g;return b.sort((a,b)=>a.isDefault!==b.isDefault?a.isDefault?-1:1:a.id.localeCompare(b.id)),b.map(a=>({id:a.id,label:a.displayName||a.id,source:"live"}))}catch{return g}}};d()}catch(a){d(a)}})},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},95004:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{G:()=>h});var e=c(7206),f=a([e]);e=(f.then?(await f)():f)[0];let g=[{id:"claude-opus-4-7",label:"Claude Opus 4.7",family:"opus",source:"static"},{id:"claude-sonnet-4-6",label:"Claude Sonnet 4.6",family:"sonnet",source:"static"},{id:"claude-haiku-4-5",label:"Claude Haiku 4.5",family:"haiku",source:"static"}],h={id:"claude-code",label:"Claude Code",supports:["analyze","chat","quick"],async probe(){try{let a=await (0,e.execa)("claude",["--version"],{timeout:3e3});return{ok:!0,available:!0,detail:a.stdout.trim()||"installed"}}catch(a){return{ok:!1,available:!1,detail:a instanceof Error?a.message:"not installed"}}},async listModels(){let a=process.env.ANTHROPIC_API_KEY;if(!a)return g;try{let b=await fetch("https://api.anthropic.com/v1/models",{headers:{"x-api-key":a,"anthropic-version":"2023-06-01"},signal:AbortSignal.timeout(4e3)});if(!b.ok)return g;let c=await b.json(),d=[];for(let a of c.data??[])a.id&&d.push({id:a.id,label:a.display_name??a.id,family:function(a){let b=a.toLowerCase();return b.includes("opus")?"opus":b.includes("sonnet")?"sonnet":b.includes("haiku")?"haiku":void 0}(a.id),source:"live"});if(0===d.length)return g;return d.sort((a,b)=>a.id.localeCompare(b.id)),d}catch{return g}}};d()}catch(a){d(a)}})},96705:(a,b,c)=>{"use strict";c.d(b,{A:()=>d});let d=(0,c(42557).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"}]])}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[9803,2356,8404,9739,5895,133,2528,1888],()=>b(b.s=77705));module.exports=c})();