dexto 1.1.11 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/README.md +220 -84
  2. package/dist/agents/agent-registry.json +9 -0
  3. package/dist/agents/agent-template.yml +1 -1
  4. package/dist/agents/coding-agent/README.md +188 -0
  5. package/dist/agents/coding-agent/coding-agent.yml +203 -0
  6. package/dist/agents/database-agent/database-agent.yml +41 -2
  7. package/dist/agents/default-agent.yml +37 -3
  8. package/dist/agents/github-agent/github-agent.yml +39 -0
  9. package/dist/agents/image-editor-agent/image-editor-agent.yml +6 -2
  10. package/dist/agents/music-agent/README.md +1 -1
  11. package/dist/agents/music-agent/music-agent.yml +33 -2
  12. package/dist/agents/nano-banana-agent/nano-banana-agent.yml +32 -1
  13. package/dist/agents/podcast-agent/README.md +1 -1
  14. package/dist/agents/podcast-agent/podcast-agent.yml +34 -3
  15. package/dist/agents/product-name-researcher/product-name-researcher.yml +34 -1
  16. package/dist/agents/sora-video-agent/README.md +122 -0
  17. package/dist/agents/sora-video-agent/sora-video-agent.yml +98 -0
  18. package/dist/agents/talk2pdf-agent/talk2pdf-agent.yml +14 -2
  19. package/dist/agents/triage-demo/README.md +6 -6
  20. package/dist/agents/triage-demo/billing-agent.yml +1 -1
  21. package/dist/agents/triage-demo/escalation-agent.yml +1 -1
  22. package/dist/agents/triage-demo/product-info-agent.yml +1 -1
  23. package/dist/agents/triage-demo/technical-support-agent.yml +1 -1
  24. package/dist/agents/triage-demo/triage-agent.yml +13 -1
  25. package/dist/analytics/wrapper.d.ts.map +1 -1
  26. package/dist/analytics/wrapper.js +5 -3
  27. package/dist/api/a2a.d.ts +2 -2
  28. package/dist/api/a2a.d.ts.map +1 -1
  29. package/dist/api/a2a.js +3 -2
  30. package/dist/api/mcp/mcp_handler.d.ts +3 -3
  31. package/dist/api/mcp/mcp_handler.d.ts.map +1 -1
  32. package/dist/api/mcp/mcp_handler.js +7 -4
  33. package/dist/api/memory/memory-handler.d.ts +4 -1
  34. package/dist/api/memory/memory-handler.d.ts.map +1 -1
  35. package/dist/api/memory/memory-handler.js +10 -2
  36. package/dist/api/middleware/errorHandler.d.ts.map +1 -1
  37. package/dist/api/middleware/errorHandler.js +2 -0
  38. package/dist/api/server.d.ts.map +1 -1
  39. package/dist/api/server.js +158 -42
  40. package/dist/api/websocket-subscriber.d.ts.map +1 -1
  41. package/dist/api/websocket-subscriber.js +6 -0
  42. package/dist/cli/commands/interactive-commands/model/model-commands.js +2 -2
  43. package/dist/cli/utils/options.js +2 -2
  44. package/dist/index.js +64 -18
  45. package/dist/webui/.next/standalone/.next/static/chunks/419-6d449dcb2b056299.js +1 -0
  46. package/dist/webui/.next/standalone/.next/static/chunks/614-3519f8a6051e0088.js +1 -0
  47. package/dist/webui/.next/standalone/.next/static/chunks/656-5a9f6405badf66a8.js +25 -0
  48. package/dist/webui/.next/standalone/.next/static/chunks/{711-76a7d2bf4d6f69e5.js → 765-755286dc586b1a51.js} +1 -1
  49. package/dist/webui/.next/standalone/.next/static/chunks/804-f40df92a3adffcc0.js +1 -0
  50. package/dist/webui/.next/standalone/.next/static/chunks/854-232126f3c77e6c0b.js +1 -0
  51. package/dist/webui/.next/standalone/.next/static/chunks/app/chat/[sessionId]/page-a695b09e6bac5274.js +1 -0
  52. package/dist/webui/.next/standalone/.next/static/chunks/app/page-d1f127a0cac96246.js +1 -0
  53. package/dist/webui/.next/standalone/.next/static/chunks/app/playground/page-6f8d2abe76e51dfc.js +1 -0
  54. package/dist/webui/.next/standalone/.next/static/chunks/main-7decd42f62688419.js +1 -0
  55. package/dist/webui/.next/standalone/.next/static/css/c3c26ec984df1deb.css +1 -0
  56. package/dist/webui/.next/standalone/.next/static/uqfH8SY_uhwdc0ZkpMwCO/_buildManifest.js +1 -0
  57. package/dist/webui/.next/standalone/package.json +1 -0
  58. package/dist/webui/.next/standalone/packages/webui/.next/BUILD_ID +1 -1
  59. package/dist/webui/.next/standalone/packages/webui/.next/app-build-manifest.json +18 -18
  60. package/dist/webui/.next/standalone/packages/webui/.next/build-manifest.json +4 -4
  61. package/dist/webui/.next/standalone/packages/webui/.next/prerender-manifest.json +3 -3
  62. package/dist/webui/.next/standalone/packages/webui/.next/required-server-files.json +1 -11
  63. package/dist/webui/.next/standalone/packages/webui/.next/routes-manifest.json +1 -7
  64. package/dist/webui/.next/standalone/packages/webui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  65. package/dist/webui/.next/standalone/packages/webui/.next/server/app/chat/[sessionId]/page.js +1 -1
  66. package/dist/webui/.next/standalone/packages/webui/.next/server/app/chat/[sessionId]/page.js.nft.json +1 -1
  67. package/dist/webui/.next/standalone/packages/webui/.next/server/app/chat/[sessionId]/page_client-reference-manifest.js +1 -1
  68. package/dist/webui/.next/standalone/packages/webui/.next/server/app/page.js +1 -1
  69. package/dist/webui/.next/standalone/packages/webui/.next/server/app/page.js.nft.json +1 -1
  70. package/dist/webui/.next/standalone/packages/webui/.next/server/app/page_client-reference-manifest.js +1 -1
  71. package/dist/webui/.next/standalone/packages/webui/.next/server/app/playground/page.js +4 -8
  72. package/dist/webui/.next/standalone/packages/webui/.next/server/app/playground/page.js.nft.json +1 -1
  73. package/dist/webui/.next/standalone/packages/webui/.next/server/app/playground/page_client-reference-manifest.js +1 -1
  74. package/dist/webui/.next/standalone/packages/webui/.next/server/chunks/1.js +5 -5
  75. package/dist/webui/.next/standalone/packages/webui/.next/server/chunks/102.js +25 -0
  76. package/dist/webui/.next/standalone/packages/webui/.next/server/chunks/383.js +1 -0
  77. package/dist/webui/.next/standalone/packages/webui/.next/server/chunks/43.js +1 -1
  78. package/dist/webui/.next/standalone/packages/webui/.next/server/chunks/985.js +5 -0
  79. package/dist/webui/.next/standalone/packages/webui/.next/server/middleware-build-manifest.js +1 -1
  80. package/dist/webui/.next/standalone/packages/webui/.next/server/pages/500.html +1 -1
  81. package/dist/webui/.next/standalone/packages/webui/.next/server/pages-manifest.json +1 -1
  82. package/dist/webui/.next/standalone/packages/webui/.next/server/server-reference-manifest.json +1 -1
  83. package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/419-6d449dcb2b056299.js +1 -0
  84. package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/614-3519f8a6051e0088.js +1 -0
  85. package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/656-5a9f6405badf66a8.js +25 -0
  86. package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/{711-76a7d2bf4d6f69e5.js → 765-755286dc586b1a51.js} +1 -1
  87. package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/804-f40df92a3adffcc0.js +1 -0
  88. package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/854-232126f3c77e6c0b.js +1 -0
  89. package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/app/chat/[sessionId]/page-a695b09e6bac5274.js +1 -0
  90. package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/app/page-d1f127a0cac96246.js +1 -0
  91. package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/app/playground/page-6f8d2abe76e51dfc.js +1 -0
  92. package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/main-7decd42f62688419.js +1 -0
  93. package/dist/webui/.next/standalone/packages/webui/.next/static/css/c3c26ec984df1deb.css +1 -0
  94. package/dist/webui/.next/standalone/packages/webui/.next/static/uqfH8SY_uhwdc0ZkpMwCO/_buildManifest.js +1 -0
  95. package/dist/webui/.next/standalone/packages/webui/package.json +5 -1
  96. package/dist/webui/.next/standalone/packages/webui/server.js +1 -1
  97. package/dist/webui/.next/static/chunks/419-6d449dcb2b056299.js +1 -0
  98. package/dist/webui/.next/static/chunks/614-3519f8a6051e0088.js +1 -0
  99. package/dist/webui/.next/static/chunks/656-5a9f6405badf66a8.js +25 -0
  100. package/dist/webui/.next/static/chunks/{711-76a7d2bf4d6f69e5.js → 765-755286dc586b1a51.js} +1 -1
  101. package/dist/webui/.next/static/chunks/804-f40df92a3adffcc0.js +1 -0
  102. package/dist/webui/.next/static/chunks/854-232126f3c77e6c0b.js +1 -0
  103. package/dist/webui/.next/static/chunks/app/chat/[sessionId]/page-a695b09e6bac5274.js +1 -0
  104. package/dist/webui/.next/static/chunks/app/page-d1f127a0cac96246.js +1 -0
  105. package/dist/webui/.next/static/chunks/app/playground/page-6f8d2abe76e51dfc.js +1 -0
  106. package/dist/webui/.next/static/chunks/main-7decd42f62688419.js +1 -0
  107. package/dist/webui/.next/static/css/c3c26ec984df1deb.css +1 -0
  108. package/dist/webui/.next/static/uqfH8SY_uhwdc0ZkpMwCO/_buildManifest.js +1 -0
  109. package/dist/webui/package.json +5 -1
  110. package/package.json +2 -2
  111. package/dist/webui/.next/standalone/.next/static/VoeDi3iuGmMdZu_kx-R2X/_buildManifest.js +0 -1
  112. package/dist/webui/.next/standalone/.next/static/chunks/419-5526a47c95a2fa60.js +0 -1
  113. package/dist/webui/.next/standalone/.next/static/chunks/429-838829c1391e496d.js +0 -25
  114. package/dist/webui/.next/standalone/.next/static/chunks/459-62011998b002cbf6.js +0 -1
  115. package/dist/webui/.next/standalone/.next/static/chunks/854-8cad9404fc78e0cc.js +0 -1
  116. package/dist/webui/.next/standalone/.next/static/chunks/935-07f9df196b13275e.js +0 -1
  117. package/dist/webui/.next/standalone/.next/static/chunks/app/chat/[sessionId]/page-b8acc47b0d8c5c0a.js +0 -1
  118. package/dist/webui/.next/standalone/.next/static/chunks/app/page-e117ae372850d25f.js +0 -1
  119. package/dist/webui/.next/standalone/.next/static/chunks/app/playground/page-09340fb6b3f4caa2.js +0 -1
  120. package/dist/webui/.next/standalone/.next/static/chunks/main-b65ece3506a2355c.js +0 -1
  121. package/dist/webui/.next/standalone/.next/static/css/21e6c142ca3cdc42.css +0 -1
  122. package/dist/webui/.next/standalone/packages/webui/.next/server/chunks/419.js +0 -25
  123. package/dist/webui/.next/standalone/packages/webui/.next/server/chunks/654.js +0 -1
  124. package/dist/webui/.next/standalone/packages/webui/.next/server/chunks/71.js +0 -5
  125. package/dist/webui/.next/standalone/packages/webui/.next/static/VoeDi3iuGmMdZu_kx-R2X/_buildManifest.js +0 -1
  126. package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/419-5526a47c95a2fa60.js +0 -1
  127. package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/429-838829c1391e496d.js +0 -25
  128. package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/459-62011998b002cbf6.js +0 -1
  129. package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/854-8cad9404fc78e0cc.js +0 -1
  130. package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/935-07f9df196b13275e.js +0 -1
  131. package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/app/chat/[sessionId]/page-b8acc47b0d8c5c0a.js +0 -1
  132. package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/app/page-e117ae372850d25f.js +0 -1
  133. package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/app/playground/page-09340fb6b3f4caa2.js +0 -1
  134. package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/main-b65ece3506a2355c.js +0 -1
  135. package/dist/webui/.next/standalone/packages/webui/.next/static/css/21e6c142ca3cdc42.css +0 -1
  136. package/dist/webui/.next/static/VoeDi3iuGmMdZu_kx-R2X/_buildManifest.js +0 -1
  137. package/dist/webui/.next/static/chunks/419-5526a47c95a2fa60.js +0 -1
  138. package/dist/webui/.next/static/chunks/429-838829c1391e496d.js +0 -25
  139. package/dist/webui/.next/static/chunks/459-62011998b002cbf6.js +0 -1
  140. package/dist/webui/.next/static/chunks/854-8cad9404fc78e0cc.js +0 -1
  141. package/dist/webui/.next/static/chunks/935-07f9df196b13275e.js +0 -1
  142. package/dist/webui/.next/static/chunks/app/chat/[sessionId]/page-b8acc47b0d8c5c0a.js +0 -1
  143. package/dist/webui/.next/static/chunks/app/page-e117ae372850d25f.js +0 -1
  144. package/dist/webui/.next/static/chunks/app/playground/page-09340fb6b3f4caa2.js +0 -1
  145. package/dist/webui/.next/static/chunks/main-b65ece3506a2355c.js +0 -1
  146. package/dist/webui/.next/static/css/21e6c142ca3cdc42.css +0 -1
  147. /package/dist/webui/.next/standalone/.next/static/{VoeDi3iuGmMdZu_kx-R2X → uqfH8SY_uhwdc0ZkpMwCO}/_ssgManifest.js +0 -0
  148. /package/dist/webui/.next/standalone/packages/webui/.next/static/{VoeDi3iuGmMdZu_kx-R2X → uqfH8SY_uhwdc0ZkpMwCO}/_ssgManifest.js +0 -0
  149. /package/dist/webui/.next/static/{VoeDi3iuGmMdZu_kx-R2X → uqfH8SY_uhwdc0ZkpMwCO}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[711],{56:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(5037).A)("share-2",[["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}],["circle",{cx:"6",cy:"12",r:"3",key:"w7nqdw"}],["circle",{cx:"18",cy:"19",r:"3",key:"1xt0gg"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49",key:"47mynk"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49",key:"1n3mei"}]])},1241:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{default:function(){return g},useLinkStatus:function(){return b}});let n=r(6508),o=r(5801),u=n._(r(5789)),i=r(9920),a=r(7038),c=r(1685),l=r(2926),s=r(7636);r(2919);let f=r(8009),p=r(6025),d=r(3909);r(8231);let y=r(9310);function h(e){return"string"==typeof e?e:(0,i.formatUrl)(e)}function g(e){var t;let r,n,i,[g,b]=(0,u.useOptimistic)(f.IDLE_LINK_STATUS),P=(0,u.useRef)(null),{href:v,as:E,children:_,prefetch:x=null,passHref:k,replace:A,shallow:O,scroll:S,onClick:j,onMouseEnter:N,onTouchStart:T,legacyBehavior:C=!1,onNavigate:w,ref:L,unstable_dynamicOnHover:I,...M}=e;r=_,C&&("string"==typeof r||"number"==typeof r)&&(r=(0,o.jsx)("a",{children:r}));let R=u.default.useContext(a.AppRouterContext),U=!1!==x,F=!1!==x?null===(t=x)||"auto"===t?y.FetchStrategy.PPR:y.FetchStrategy.Full:y.FetchStrategy.PPR,{href:D,as:z}=u.default.useMemo(()=>{let e=h(v);return{href:e,as:E?h(E):e}},[v,E]);C&&(n=u.default.Children.only(r));let K=C?n&&"object"==typeof n&&n.ref:L,B=u.default.useCallback(e=>(null!==R&&(P.current=(0,f.mountLinkInstance)(e,D,R,F,U,b)),()=>{P.current&&((0,f.unmountLinkForCurrentNavigation)(P.current),P.current=null),(0,f.unmountPrefetchableInstance)(e)}),[U,D,R,F,b]),q={ref:(0,c.useMergedRef)(B,K),onClick(e){C||"function"!=typeof j||j(e),C&&n.props&&"function"==typeof n.props.onClick&&n.props.onClick(e),R&&(e.defaultPrevented||function(e,t,r,n,o,i,a){let{nodeName:c}=e.currentTarget;if(!("A"===c.toUpperCase()&&function(e){let t=e.currentTarget.getAttribute("target");return t&&"_self"!==t||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.nativeEvent&&2===e.nativeEvent.which}(e)||e.currentTarget.hasAttribute("download"))){if(!(0,p.isLocalURL)(t)){o&&(e.preventDefault(),location.replace(t));return}if(e.preventDefault(),a){let e=!1;if(a({preventDefault:()=>{e=!0}}),e)return}u.default.startTransition(()=>{(0,d.dispatchNavigateAction)(r||t,o?"replace":"push",null==i||i,n.current)})}}(e,D,z,P,A,S,w))},onMouseEnter(e){C||"function"!=typeof N||N(e),C&&n.props&&"function"==typeof n.props.onMouseEnter&&n.props.onMouseEnter(e),R&&U&&(0,f.onNavigationIntent)(e.currentTarget,!0===I)},onTouchStart:function(e){C||"function"!=typeof T||T(e),C&&n.props&&"function"==typeof n.props.onTouchStart&&n.props.onTouchStart(e),R&&U&&(0,f.onNavigationIntent)(e.currentTarget,!0===I)}};return(0,l.isAbsoluteUrl)(z)?q.href=z:C&&!k&&("a"!==n.type||"href"in n.props)||(q.href=(0,s.addBasePath)(z)),i=C?u.default.cloneElement(n,q):(0,o.jsx)("a",{...M,...q,children:r}),(0,o.jsx)(m.Provider,{value:g,children:i})}let m=(0,u.createContext)(f.IDLE_LINK_STATUS),b=()=>(0,u.useContext)(m);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},2926:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{DecodeError:function(){return y},MiddlewareNotFoundError:function(){return b},MissingStaticPage:function(){return m},NormalizeError:function(){return h},PageNotFoundError:function(){return g},SP:function(){return p},ST:function(){return d},WEB_VITALS:function(){return r},execOnce:function(){return n},getDisplayName:function(){return c},getLocationOrigin:function(){return i},getURL:function(){return a},isAbsoluteUrl:function(){return u},isResSent:function(){return l},loadGetInitialProps:function(){return f},normalizeRepeatedSlashes:function(){return s},stringifyError:function(){return P}});let r=["CLS","FCP","FID","INP","LCP","TTFB"];function n(e){let t,r=!1;return function(){for(var n=arguments.length,o=Array(n),u=0;u<n;u++)o[u]=arguments[u];return r||(r=!0,t=e(...o)),t}}let o=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,u=e=>o.test(e);function i(){let{protocol:e,hostname:t,port:r}=window.location;return e+"//"+t+(r?":"+r:"")}function a(){let{href:e}=window.location,t=i();return e.substring(t.length)}function c(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function l(e){return e.finished||e.headersSent}function s(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?"?"+t.slice(1).join("?"):"")}async function f(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await f(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&l(r))return n;if(!n)throw Object.defineProperty(Error('"'+c(e)+'.getInitialProps()" should resolve to an object. But found "'+n+'" instead.'),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n}let p="undefined"!=typeof performance,d=p&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class y extends Error{}class h extends Error{}class g extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message="Cannot find module for page: "+e}}class m extends Error{constructor(e,t){super(),this.message="Failed to load static file for page: "+e+" "+t}}class b extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function P(e){return JSON.stringify({message:e.message,stack:e.stack})}},3358:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(5037).A)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]])},4337:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(5037).A)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]])},6025:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isLocalURL",{enumerable:!0,get:function(){return u}});let n=r(2926),o=r(8319);function u(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,o.hasBasePath)(r.pathname)}catch(e){return!1}}},7269:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(5037).A)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]])},7536:(e,t)=>{function r(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function n(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function o(e){let t=new URLSearchParams;for(let[r,o]of Object.entries(e))if(Array.isArray(o))for(let e of o)t.append(r,n(e));else t.set(r,n(o));return t}function u(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];for(let t of r){for(let r of t.keys())e.delete(r);for(let[r,n]of t.entries())e.append(r,n)}return e}Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{assign:function(){return u},searchParamsToUrlQuery:function(){return r},urlQueryToSearchParams:function(){return o}})},8231:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"errorOnce",{enumerable:!0,get:function(){return r}});let r=e=>{}},9920:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{formatUrl:function(){return u},formatWithValidation:function(){return a},urlObjectKeys:function(){return i}});let n=r(6508)._(r(7536)),o=/https?|ftp|gopher|file/;function u(e){let{auth:t,hostname:r}=e,u=e.protocol||"",i=e.pathname||"",a=e.hash||"",c=e.query||"",l=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?l=t+e.host:r&&(l=t+(~r.indexOf(":")?"["+r+"]":r),e.port&&(l+=":"+e.port)),c&&"object"==typeof c&&(c=String(n.urlQueryToSearchParams(c)));let s=e.search||c&&"?"+c||"";return u&&!u.endsWith(":")&&(u+=":"),e.slashes||(!u||o.test(u))&&!1!==l?(l="//"+(l||""),i&&"/"!==i[0]&&(i="/"+i)):l||(l=""),a&&"#"!==a[0]&&(a="#"+a),s&&"?"!==s[0]&&(s="?"+s),""+u+l+(i=i.replace(/[?#]/g,encodeURIComponent))+(s=s.replace("#","%23"))+a}let i=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function a(e){return u(e)}}}]);
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[765],{56:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(5037).A)("share-2",[["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}],["circle",{cx:"6",cy:"12",r:"3",key:"w7nqdw"}],["circle",{cx:"18",cy:"19",r:"3",key:"1xt0gg"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49",key:"47mynk"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49",key:"1n3mei"}]])},1241:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{default:function(){return g},useLinkStatus:function(){return b}});let n=r(6508),o=r(5801),u=n._(r(5789)),a=r(9920),i=r(7038),c=r(1685),l=r(2926),f=r(7636);r(2919);let s=r(8009),p=r(6025),d=r(3909);r(8231);let y=r(9310);function h(e){return"string"==typeof e?e:(0,a.formatUrl)(e)}function g(e){var t;let r,n,a,[g,b]=(0,u.useOptimistic)(s.IDLE_LINK_STATUS),P=(0,u.useRef)(null),{href:v,as:x,children:k,prefetch:E=null,passHref:_,replace:A,shallow:O,scroll:S,onClick:j,onMouseEnter:N,onTouchStart:T,legacyBehavior:C=!1,onNavigate:w,ref:L,unstable_dynamicOnHover:M,...I}=e;r=k,C&&("string"==typeof r||"number"==typeof r)&&(r=(0,o.jsx)("a",{children:r}));let R=u.default.useContext(i.AppRouterContext),U=!1!==E,F=!1!==E?null===(t=E)||"auto"===t?y.FetchStrategy.PPR:y.FetchStrategy.Full:y.FetchStrategy.PPR,{href:D,as:z}=u.default.useMemo(()=>{let e=h(v);return{href:e,as:x?h(x):e}},[v,x]);C&&(n=u.default.Children.only(r));let K=C?n&&"object"==typeof n&&n.ref:L,q=u.default.useCallback(e=>(null!==R&&(P.current=(0,s.mountLinkInstance)(e,D,R,F,U,b)),()=>{P.current&&((0,s.unmountLinkForCurrentNavigation)(P.current),P.current=null),(0,s.unmountPrefetchableInstance)(e)}),[U,D,R,F,b]),B={ref:(0,c.useMergedRef)(q,K),onClick(e){C||"function"!=typeof j||j(e),C&&n.props&&"function"==typeof n.props.onClick&&n.props.onClick(e),R&&(e.defaultPrevented||function(e,t,r,n,o,a,i){let{nodeName:c}=e.currentTarget;if(!("A"===c.toUpperCase()&&function(e){let t=e.currentTarget.getAttribute("target");return t&&"_self"!==t||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.nativeEvent&&2===e.nativeEvent.which}(e)||e.currentTarget.hasAttribute("download"))){if(!(0,p.isLocalURL)(t)){o&&(e.preventDefault(),location.replace(t));return}if(e.preventDefault(),i){let e=!1;if(i({preventDefault:()=>{e=!0}}),e)return}u.default.startTransition(()=>{(0,d.dispatchNavigateAction)(r||t,o?"replace":"push",null==a||a,n.current)})}}(e,D,z,P,A,S,w))},onMouseEnter(e){C||"function"!=typeof N||N(e),C&&n.props&&"function"==typeof n.props.onMouseEnter&&n.props.onMouseEnter(e),R&&U&&(0,s.onNavigationIntent)(e.currentTarget,!0===M)},onTouchStart:function(e){C||"function"!=typeof T||T(e),C&&n.props&&"function"==typeof n.props.onTouchStart&&n.props.onTouchStart(e),R&&U&&(0,s.onNavigationIntent)(e.currentTarget,!0===M)}};return(0,l.isAbsoluteUrl)(z)?B.href=z:C&&!_&&("a"!==n.type||"href"in n.props)||(B.href=(0,f.addBasePath)(z)),a=C?u.default.cloneElement(n,B):(0,o.jsx)("a",{...I,...B,children:r}),(0,o.jsx)(m.Provider,{value:g,children:a})}let m=(0,u.createContext)(s.IDLE_LINK_STATUS),b=()=>(0,u.useContext)(m);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},2926:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{DecodeError:function(){return y},MiddlewareNotFoundError:function(){return b},MissingStaticPage:function(){return m},NormalizeError:function(){return h},PageNotFoundError:function(){return g},SP:function(){return p},ST:function(){return d},WEB_VITALS:function(){return r},execOnce:function(){return n},getDisplayName:function(){return c},getLocationOrigin:function(){return a},getURL:function(){return i},isAbsoluteUrl:function(){return u},isResSent:function(){return l},loadGetInitialProps:function(){return s},normalizeRepeatedSlashes:function(){return f},stringifyError:function(){return P}});let r=["CLS","FCP","FID","INP","LCP","TTFB"];function n(e){let t,r=!1;return function(){for(var n=arguments.length,o=Array(n),u=0;u<n;u++)o[u]=arguments[u];return r||(r=!0,t=e(...o)),t}}let o=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,u=e=>o.test(e);function a(){let{protocol:e,hostname:t,port:r}=window.location;return e+"//"+t+(r?":"+r:"")}function i(){let{href:e}=window.location,t=a();return e.substring(t.length)}function c(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function l(e){return e.finished||e.headersSent}function f(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?"?"+t.slice(1).join("?"):"")}async function s(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await s(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&l(r))return n;if(!n)throw Object.defineProperty(Error('"'+c(e)+'.getInitialProps()" should resolve to an object. But found "'+n+'" instead.'),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n}let p="undefined"!=typeof performance,d=p&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class y extends Error{}class h extends Error{}class g extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message="Cannot find module for page: "+e}}class m extends Error{constructor(e,t){super(),this.message="Failed to load static file for page: "+e+" "+t}}class b extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function P(e){return JSON.stringify({message:e.message,stack:e.stack})}},3358:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(5037).A)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]])},4337:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(5037).A)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]])},6025:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isLocalURL",{enumerable:!0,get:function(){return u}});let n=r(2926),o=r(8319);function u(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,o.hasBasePath)(r.pathname)}catch(e){return!1}}},7269:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(5037).A)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]])},7536:(e,t)=>{function r(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function n(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function o(e){let t=new URLSearchParams;for(let[r,o]of Object.entries(e))if(Array.isArray(o))for(let e of o)t.append(r,n(e));else t.set(r,n(o));return t}function u(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];for(let t of r){for(let r of t.keys())e.delete(r);for(let[r,n]of t.entries())e.append(r,n)}return e}Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{assign:function(){return u},searchParamsToUrlQuery:function(){return r},urlQueryToSearchParams:function(){return o}})},8231:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"errorOnce",{enumerable:!0,get:function(){return r}});let r=e=>{}},8406:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(5037).A)("panel-left-close",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m16 15-3-3 3-3",key:"14y99z"}]])},9920:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{formatUrl:function(){return u},formatWithValidation:function(){return i},urlObjectKeys:function(){return a}});let n=r(6508)._(r(7536)),o=/https?|ftp|gopher|file/;function u(e){let{auth:t,hostname:r}=e,u=e.protocol||"",a=e.pathname||"",i=e.hash||"",c=e.query||"",l=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?l=t+e.host:r&&(l=t+(~r.indexOf(":")?"["+r+"]":r),e.port&&(l+=":"+e.port)),c&&"object"==typeof c&&(c=String(n.urlQueryToSearchParams(c)));let f=e.search||c&&"?"+c||"";return u&&!u.endsWith(":")&&(u+=":"),e.slashes||(!u||o.test(u))&&!1!==l?(l="//"+(l||""),a&&"/"!==a[0]&&(a="/"+a)):l||(l=""),i&&"#"!==i[0]&&(i="#"+i),f&&"?"!==f[0]&&(f="?"+f),""+u+l+(a=a.replace(/[?#]/g,encodeURIComponent))+(f=f.replace("#","%23"))+i}let a=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function i(e){return u(e)}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[804],{449:(e,t,a)=>{a.d(t,{T:()=>i});var r=a(5801);a(5789);var s=a(6032);function i(e){let{className:t,...a}=e;return(0,r.jsx)("textarea",{"data-slot":"textarea",className:(0,s.cn)("border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",t),...a})}},531:(e,t,a)=>{a.d(t,{J:()=>n});var r=a(5801);a(5789);var s=a(9524),i=a(6032);function n(e){let{className:t,...a}=e;return(0,r.jsx)(s.b,{"data-slot":"label",className:(0,i.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",t),...a})}},2682:(e,t,a)=>{a.d(t,{F:()=>n});var r=a(5801),s=a(5789),i=a(6032);let n=s.forwardRef((e,t)=>{let{className:a,children:s,...n}=e;return(0,r.jsx)("div",{ref:t,className:(0,i.cn)("relative overflow-auto",a),...n,children:s})});n.displayName="ScrollArea"},3504:(e,t,a)=>{a.d(t,{A:()=>j});var r=a(5801),s=a(5789),i=a(9401),n=a(3871),l=a(5315),o=a(7397),d=a(531),c=a(5195),u=a(7159),m=a(2449),g=a(3973),p=a(113),v=a(4580);let x=[/\bapi[_-]?key\b/i,/\bapikey\b/i,/\bsecret\b/i,/\btoken\b/i,/\bpassword\b/i,/\bauthorization\b/i,/\bauth[_-]?token\b/i,/\bbearer\b/i,/\bcredential\b/i,/\bclient[_-]?secret\b/i];function h(e){let{label:t="Key-Value Pairs",placeholder:a={key:"Key",value:"Value"},pairs:i,onChange:n,disabled:c=!1,className:u="",keyLabel:h="Key",valueLabel:f="Value",maskSensitiveValues:b=!0}=e,[j,y]=(0,s.useState)(new Set),N=(e,t,a)=>{n(i.map(r=>r.id===e?{...r,[t]:a}:r))};return(0,r.jsxs)("div",{className:"space-y-3 ".concat(u),children:[t&&(0,r.jsx)(d.J,{className:"text-sm font-medium",children:t}),(0,r.jsxs)("div",{className:"space-y-2",children:[i.length>0&&(0,r.jsxs)("div",{className:"grid grid-cols-12 gap-2 items-center text-xs text-muted-foreground",children:[(0,r.jsx)("div",{className:"col-span-5",children:h}),(0,r.jsx)("div",{className:"col-span-6",children:f}),(0,r.jsx)("div",{className:"col-span-1"})]}),i.map(e=>{var t;let s=(t=e.key,!!b&&!!t&&x.some(e=>e.test(t))),d=j.has(e.id);return(0,r.jsxs)("div",{className:"grid grid-cols-12 gap-2 items-center",children:[(0,r.jsx)(o.p,{placeholder:a.key,value:e.key,onChange:t=>N(e.id,"key",t.target.value),disabled:c,className:"col-span-5"}),(0,r.jsxs)("div",{className:"col-span-6 relative",children:[(0,r.jsx)(o.p,{type:s&&!d?"password":"text",placeholder:a.value,value:e.value,onChange:t=>N(e.id,"value",t.target.value),disabled:c,className:"pr-10"}),s&&e.value&&(0,r.jsx)(l.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>{var t;return t=e.id,void y(e=>{let a=new Set(e);return a.has(t)?a.delete(t):a.add(t),a})},disabled:c,className:"absolute right-0 top-0 h-full w-10 p-0 hover:bg-transparent","aria-label":d?"Hide value":"Show value",children:d?(0,r.jsx)(m.A,{className:"h-4 w-4 text-muted-foreground"}):(0,r.jsx)(g.A,{className:"h-4 w-4 text-muted-foreground"})})]}),(0,r.jsx)(l.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>{var t;return t=e.id,void n(i.filter(e=>e.id!==t))},disabled:c,className:"col-span-1 h-8 w-8 p-0",children:(0,r.jsx)(p.A,{className:"h-4 w-4"})})]},e.id)})]}),(0,r.jsxs)(l.$,{type:"button",variant:"outline",size:"sm",onClick:()=>{n([...i,{key:"",value:"",id:"kv-".concat(Date.now(),"-").concat(Math.random().toString(36).substring(2,11))}])},disabled:c,className:"w-full mt-2",children:[(0,r.jsx)(v.A,{className:"h-4 w-4 mr-2"}),"Add ",h]})]})}var f=a(4957),b=a(6284);function j(e){let{isOpen:t,onClose:a,onServerConnected:m,initialName:g,initialConfig:p,lockName:v}=e,[x,j]=(0,s.useState)(""),[y,N]=(0,s.useState)("stdio"),[w,k]=(0,s.useState)(""),[C,z]=(0,s.useState)(""),[S,A]=(0,s.useState)(""),[L,_]=(0,s.useState)([]),[T,F]=(0,s.useState)([]),[E,J]=(0,s.useState)(null),[M,V]=(0,s.useState)(!1),[P,q]=(0,s.useState)(!1),H=e=>{let t={};return e.forEach(e=>{e.key.trim()&&e.value.trim()&&(t[e.key.trim()]=e.value.trim())}),t};(0,s.useEffect)(()=>{if(!t){let e=setTimeout(()=>{j(""),N("stdio"),k(""),z(""),A(""),_([]),F([]),J(null),V(!1)},300);return()=>clearTimeout(e)}},[t]),(0,s.useEffect)(()=>{var e,a,r;if(!t)return;j(null!=g?g:"");let s=null!=(e=null==p?void 0:p.type)?e:"stdio";if(N(s),"stdio"===s){let e=null!=p?p:{};k("string"==typeof e.command?e.command:""),z(Array.isArray(e.args)?e.args.join(", "):""),F(Object.entries(null!=(a=e.env)?a:{}).map((e,t)=>{let[a,r]=e;return{key:a,value:String(null!=r?r:""),id:"env-".concat(t)}})),A(""),_([])}else{let e=null!=p?p:{};A("string"==typeof e.url?e.url:""),_(Object.entries(null!=(r=e.headers)?r:{}).map((e,t)=>{let[a,r]=e;return{key:a,value:String(null!=r?r:""),id:"hdr-".concat(t)}})),k(""),z(""),F([])}},[t,g,p]);let U=async e=>{let t;if(e.preventDefault(),J(null),V(!0),!x.trim()){J("Server name is required."),V(!1);return}if("stdio"===y){if(!w.trim()){J("Command is required for stdio servers."),V(!1);return}let e=T.map(e=>e.key.trim()).filter(Boolean);if(e.length){let t=e.filter((t,a)=>e.indexOf(t)!==a);if(t.length){J("Duplicate environment variables: ".concat(Array.from(new Set(t)).join(", "))),V(!1);return}let a=T.filter(e=>e.key.trim()&&!e.value.trim()).map(e=>e.key.trim());if(a.length){J("Please set required environment variables: ".concat(a.join(", "))),V(!1);return}}}else{if(!S.trim()){J("URL is required for ".concat(y.toUpperCase()," servers.")),V(!1);return}try{new URL(S.trim())}catch(e){J("Invalid URL format for ".concat(y.toUpperCase()," server.")),V(!1);return}}t="stdio"===y?{type:"stdio",command:w.trim(),args:C.split(",").map(e=>e.trim()).filter(Boolean),env:(e=>{let t={};for(let{key:a,value:r}of e){let e=a.trim(),s=r.trim();e&&s&&(t[e]=s)}return t})(T),timeout:3e4,connectionMode:"lenient"}:"sse"===y?{type:"sse",url:S.trim(),headers:L.length?H(L):{},timeout:3e4,connectionMode:"lenient"}:{type:"http",url:S.trim(),headers:L.length?H(L):{},timeout:3e4,connectionMode:"lenient"};let r=new AbortController,s=setTimeout(()=>r.abort(),3e4);try{let e=await fetch("".concat((0,i.e)(),"/api/mcp/servers"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:x.trim(),config:t,persistToAgent:P}),signal:r.signal}),s=await e.json();if(!e.ok){J(s.error||"Server returned status ".concat(e.status)),V(!1);return}(0,f.w)(),m&&m(),a()}catch(t){let e="Failed to connect server";t instanceof DOMException&&"AbortError"===t.name?e="Connection timed out":t instanceof Error?e=t.message||e:"string"==typeof t&&(e=t),J(e)}finally{clearTimeout(s),V(!1)}};return(0,r.jsx)(n.lG,{open:t,onOpenChange:e=>!e&&a(),children:(0,r.jsxs)(n.Cf,{className:"sm:max-w-[480px]",children:[(0,r.jsxs)(n.c7,{children:[(0,r.jsx)(n.L3,{children:"Connect New MCP Server"}),(0,r.jsx)(n.rr,{children:"Configure connection details for a new MCP server (stdio, SSE, or HTTP)."})]}),(0,r.jsxs)("form",{id:"connectServerForm",onSubmit:U,className:"grid gap-4 py-4",children:[E&&(0,r.jsx)(u.Fc,{variant:"destructive",children:(0,r.jsx)(u.TN,{children:E})}),(0,r.jsxs)("div",{className:"grid grid-cols-4 items-center gap-4",children:[(0,r.jsx)(d.J,{htmlFor:"serverName",className:"text-right",children:"Server Name"}),(0,r.jsx)(o.p,{id:"serverName",value:x,onChange:e=>j(e.target.value),className:"col-span-3",placeholder:"e.g., My Local Tools",required:!0,disabled:M||!!v})]}),(0,r.jsxs)("div",{className:"grid grid-cols-4 items-center gap-4",children:[(0,r.jsx)(d.J,{htmlFor:"serverType",className:"text-right",children:"Server Type"}),(0,r.jsxs)(c.l6,{value:y,onValueChange:e=>N(e),disabled:M,children:[(0,r.jsx)(c.bq,{id:"serverType",className:"col-span-3",children:(0,r.jsx)(c.yv,{placeholder:"Select type"})}),(0,r.jsxs)(c.gC,{children:[(0,r.jsx)(c.eb,{value:"stdio",children:"stdio"}),(0,r.jsx)(c.eb,{value:"sse",children:"sse"}),(0,r.jsx)(c.eb,{value:"http",children:"http"})]})]})]}),"stdio"===y?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"grid grid-cols-4 items-center gap-4",children:[(0,r.jsx)(d.J,{htmlFor:"command",className:"text-right",children:"Command"}),(0,r.jsx)(o.p,{id:"command",value:w,onChange:e=>k(e.target.value),className:"col-span-3",placeholder:"e.g., /path/to/executable or python",required:!0,disabled:M})]}),(0,r.jsxs)("div",{className:"grid grid-cols-4 items-center gap-4",children:[(0,r.jsx)(d.J,{htmlFor:"args",className:"text-right",children:"Arguments"}),(0,r.jsx)(o.p,{id:"args",value:C,onChange:e=>z(e.target.value),className:"col-span-3",placeholder:"Comma-separated, e.g., -m,script.py,--port,8080",disabled:M})]}),(0,r.jsxs)("div",{className:"grid grid-cols-4 items-start gap-4",children:[(0,r.jsx)(d.J,{className:"text-right mt-2",children:"Environment"}),(0,r.jsx)("div",{className:"col-span-3",children:(0,r.jsx)(h,{pairs:T,onChange:F,placeholder:{key:"API_KEY",value:"your-secret-key"},disabled:M,keyLabel:"Variable",valueLabel:"Value"})})]})]}):"sse"===y?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"grid grid-cols-4 items-center gap-4",children:[(0,r.jsx)(d.J,{htmlFor:"url",className:"text-right",children:"URL"}),(0,r.jsx)(o.p,{id:"url",type:"url",value:S,onChange:e=>A(e.target.value),className:"col-span-3",placeholder:"e.g., http://localhost:8000/events",required:!0,disabled:M})]}),(0,r.jsxs)("div",{className:"grid grid-cols-4 items-start gap-4",children:[(0,r.jsx)(d.J,{className:"text-right mt-2",children:"Headers"}),(0,r.jsx)("div",{className:"col-span-3",children:(0,r.jsx)(h,{pairs:L,onChange:_,placeholder:{key:"Authorization",value:"Bearer your-token"},disabled:M,keyLabel:"Header",valueLabel:"Value"})})]})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"grid grid-cols-4 items-center gap-4",children:[(0,r.jsx)(d.J,{htmlFor:"url",className:"text-right",children:"URL"}),(0,r.jsx)(o.p,{id:"url",type:"url",value:S,onChange:e=>A(e.target.value),className:"col-span-3",placeholder:"e.g., http://localhost:8080",required:!0,disabled:M})]}),(0,r.jsxs)("div",{className:"grid grid-cols-4 items-start gap-4",children:[(0,r.jsx)(d.J,{className:"text-right mt-2",children:"Headers"}),(0,r.jsx)("div",{className:"col-span-3",children:(0,r.jsx)(h,{pairs:L,onChange:_,placeholder:{key:"Authorization",value:"Bearer your-token"},disabled:M,keyLabel:"Header",valueLabel:"Value"})})]})]}),(0,r.jsxs)("div",{className:"flex items-center space-x-2 pt-2",children:[(0,r.jsx)(b.S,{id:"persistToAgent",checked:P,onCheckedChange:e=>q(!0===e),disabled:M}),(0,r.jsx)(d.J,{htmlFor:"persistToAgent",className:"text-sm font-normal cursor-pointer",children:"Save to agent configuration file"})]})]}),(0,r.jsxs)(n.Es,{children:[(0,r.jsx)(n.HM,{asChild:!0,children:(0,r.jsx)(l.$,{type:"button",variant:"outline",disabled:M,children:"Cancel"})}),(0,r.jsx)(l.$,{type:"submit",form:"connectServerForm",disabled:M,children:M?"Connecting...":"Connect"})]})]})})}},3871:(e,t,a)=>{a.d(t,{Cf:()=>m,Es:()=>p,HM:()=>c,L3:()=>v,c7:()=>g,lG:()=>l,rr:()=>x,zM:()=>o});var r=a(5801);a(5789);var s=a(740),i=a(1828),n=a(6032);function l(e){let{...t}=e;return(0,r.jsx)(s.bL,{"data-slot":"dialog",...t})}function o(e){let{...t}=e;return(0,r.jsx)(s.l9,{"data-slot":"dialog-trigger",...t})}function d(e){let{...t}=e;return(0,r.jsx)(s.ZL,{"data-slot":"dialog-portal",...t})}function c(e){let{...t}=e;return(0,r.jsx)(s.bm,{"data-slot":"dialog-close",...t})}function u(e){let{className:t,...a}=e;return(0,r.jsx)(s.hJ,{"data-slot":"dialog-overlay",className:(0,n.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50 backdrop-blur-sm",t),...a})}function m(e){let{className:t,children:a,hideCloseButton:l=!1,...o}=e;return(0,r.jsxs)(d,{"data-slot":"dialog-portal",children:[(0,r.jsx)(u,{}),(0,r.jsxs)(s.UC,{"data-slot":"dialog-content",className:(0,n.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-150 sm:max-w-lg",t),...o,children:[a,!l&&(0,r.jsxs)(s.bm,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",children:[(0,r.jsx)(i.A,{}),(0,r.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function g(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"dialog-header",className:(0,n.cn)("flex flex-col gap-2 text-center sm:text-left",t),...a})}function p(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"dialog-footer",className:(0,n.cn)("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",t),...a})}function v(e){let{className:t,...a}=e;return(0,r.jsx)(s.hE,{"data-slot":"dialog-title",className:(0,n.cn)("text-lg leading-none font-semibold",t),...a})}function x(e){let{className:t,...a}=e;return(0,r.jsx)(s.VY,{"data-slot":"dialog-description",className:(0,n.cn)("text-muted-foreground text-sm",t),...a})}},4957:(e,t,a)=>{a.d(t,{w:()=>o,y:()=>l});var r=a(9401);let s=null,i=null;async function n(){let e=await fetch("".concat((0,r.e)(),"/api/prompts"));if(!e.ok){let t=await e.text().catch(()=>"");throw Error(t?"HTTP ".concat(e.status,": ").concat(t):"HTTP ".concat(e.status))}let t=await e.json();if(!t||!Array.isArray(t.prompts))throw Error("Invalid prompt response shape");return t.prompts}async function l(e){return((null==e?void 0:e.forceRefresh)&&(s=null),s)?s:(i||(i=n().then(e=>(s=e,e)).finally(()=>{i=null})),i)}function o(){s=null,i=null}},5195:(e,t,a)=>{a.d(t,{bq:()=>u,eb:()=>g,gC:()=>m,l6:()=>d,yv:()=>c});var r=a(5801);a(5789);var s=a(3423),i=a(4590),n=a(9198),l=a(7891),o=a(6032);function d(e){let{...t}=e;return(0,r.jsx)(s.bL,{"data-slot":"select",...t})}function c(e){let{...t}=e;return(0,r.jsx)(s.WT,{"data-slot":"select-value",...t})}function u(e){let{className:t,size:a="default",children:n,...l}=e;return(0,r.jsxs)(s.l9,{"data-slot":"select-trigger","data-size":a,className:(0,o.cn)("border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 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 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...l,children:[n,(0,r.jsx)(s.In,{asChild:!0,children:(0,r.jsx)(i.A,{className:"size-4 opacity-50"})})]})}function m(e){let{className:t,children:a,position:i="popper",...n}=e;return(0,r.jsx)(s.ZL,{children:(0,r.jsxs)(s.UC,{"data-slot":"select-content",className:(0,o.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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 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 shadow-md","popper"===i&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",t),position:i,...n,children:[(0,r.jsx)(p,{}),(0,r.jsx)(s.LM,{className:(0,o.cn)("p-1","popper"===i&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:a}),(0,r.jsx)(v,{})]})})}function g(e){let{className:t,children:a,...i}=e;return(0,r.jsxs)(s.q7,{"data-slot":"select-item",className:(0,o.cn)("focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground 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 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",t),...i,children:[(0,r.jsx)("span",{className:"absolute right-2 flex size-3.5 items-center justify-center",children:(0,r.jsx)(s.VF,{children:(0,r.jsx)(n.A,{className:"size-4"})})}),(0,r.jsx)(s.p4,{children:a})]})}function p(e){let{className:t,...a}=e;return(0,r.jsx)(s.PP,{"data-slot":"select-scroll-up-button",className:(0,o.cn)("flex cursor-default items-center justify-center py-1",t),...a,children:(0,r.jsx)(l.A,{className:"size-4"})})}function v(e){let{className:t,...a}=e;return(0,r.jsx)(s.wn,{"data-slot":"select-scroll-down-button",className:(0,o.cn)("flex cursor-default items-center justify-center py-1",t),...a,children:(0,r.jsx)(i.A,{className:"size-4"})})}},5315:(e,t,a)=>{a.d(t,{$:()=>o});var r=a(5801);a(5789);var s=a(1448),i=a(8012),n=a(6032);let l=(0,i.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",destructive:"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground shadow-xs 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",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}});function o(e){let{className:t,variant:a,size:i,asChild:o=!1,...d}=e,c=o?s.DX:"button";return(0,r.jsx)(c,{"data-slot":"button",className:(0,n.cn)(l({variant:a,size:i,className:t})),...d})}},5980:(e,t,a)=>{a.d(t,{E:()=>l});var r=a(5801);a(5789);var s=a(8012),i=a(6032);let n=(0,s.F)("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function l(e){let{className:t,variant:a,...s}=e;return(0,r.jsx)("div",{className:(0,i.cn)(n({variant:a}),t),...s})}},6032:(e,t,a)=>{a.d(t,{L:()=>n,cn:()=>i});var r=a(9722),s=a(6046);function i(){for(var e=arguments.length,t=Array(e),a=0;a<e;a++)t[a]=arguments[a];return(0,s.QP)((0,r.$)(t))}function n(e,t){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:25,r=t.toLowerCase(),s=e=>{if(!e)return 0;let t=new Date(e).getTime();return isNaN(t)?0:t};return[...e].sort((e,t)=>{let a=s(e.lastModified);return s(t.lastModified)-a}).filter(e=>(e.name||"").toLowerCase().includes(r)||e.uri.toLowerCase().includes(r)||(e.serverName||"").toLowerCase().includes(r)).slice(0,a)}},6284:(e,t,a)=>{a.d(t,{S:()=>l});var r=a(5801);a(5789);var s=a(6463),i=a(9198),n=a(6032);function l(e){let{className:t,...a}=e;return(0,r.jsx)(s.bL,{"data-slot":"checkbox",className:(0,n.cn)("peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",t),...a,children:(0,r.jsx)(s.C1,{"data-slot":"checkbox-indicator",className:"flex items-center justify-center text-current transition-none",children:(0,r.jsx)(i.A,{className:"size-3.5"})})})}},7159:(e,t,a)=>{a.d(t,{Fc:()=>l,TN:()=>d,XL:()=>o});var r=a(5801);a(5789);var s=a(8012),i=a(6032);let n=(0,s.F)("relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",{variants:{variant:{default:"bg-card text-card-foreground",destructive:"text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90"}},defaultVariants:{variant:"default"}});function l(e){let{className:t,variant:a,...s}=e;return(0,r.jsx)("div",{"data-slot":"alert",role:"alert",className:(0,i.cn)(n({variant:a}),t),...s})}function o(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"alert-title",className:(0,i.cn)("col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight",t),...a})}function d(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"alert-description",className:(0,i.cn)("text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed",t),...a})}},7397:(e,t,a)=>{a.d(t,{p:()=>i});var r=a(5801);a(5789);var s=a(6032);function i(e){let{className:t,type:a,...i}=e;return(0,r.jsx)("input",{type:a,"data-slot":"input",className:(0,s.cn)("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",t),...i})}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[854],{1236:(e,t,o)=>{o.d(t,{kz:()=>m,EQ:()=>g,j0:()=>f,PI:()=>p,P2:()=>d,KU:()=>u,Y_:()=>v});var n=o(5789);let r=["apikey","api_key","token","access_token","refresh_token","password","secret"],s=["base64","filedata","file_data","imagedata","image_data","audiodata","audio_data","data"],a=[/\bsk-[A-Za-z0-9]{20,}\b/g,/\bBearer\s+[A-Za-z0-9\-_.=]+\b/gi,/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b/g,/\beyJ[A-Za-z0-9_-]*\.[A-Za-z0-9_-]*\.[A-Za-z0-9_-]*/g],i="[REDACTED]",l="[REDACTED_CIRCULAR]";function c(e){return e instanceof Error?e:e&&"object"==typeof e?"message"in e&&"string"==typeof e.message?Error(e.message,{cause:e}):"error"in e&&"string"==typeof e.error?Error(e.error,{cause:e}):"details"in e&&"string"==typeof e.details?Error(e.details,{cause:e}):"description"in e&&"string"==typeof e.description?Error(e.description,{cause:e}):Error(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e3;try{if("bigint"==typeof e)return e.toString();let o=function e(t){let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new WeakSet;if("string"==typeof t){let e=t;for(let t of a)e=e.replace(t,i);return e}if(Array.isArray(t))return o.has(t)?l:(o.add(t),t.map(t=>e(t,o)));if(t&&"object"==typeof t){if(o.has(t))return l;o.add(t);let n={};for(let[a,l]of Object.entries(t))if(r.includes(a.toLowerCase()))n[a]=i;else{let r=function(e,t,o){var n;if("string"!=typeof e)return e;let r=t.toLowerCase();return(s.includes(r)||"data"===r&&o&&("mimeType"in o||"filename"in o||"fileName"in o))&&(n=e).length>1e3&&/^[A-Za-z0-9+/=]{1000,}$/.test(n.substring(0,1e3))?"".concat("[FILE_DATA_TRUNCATED]"," (").concat(e.length," chars)"):e}(l,a,t);n[a]=e(r,o)}return n}return t}(e),n=JSON.stringify(o,(e,t)=>t instanceof Error?{name:t.name,message:t.message,stack:t.stack}:"bigint"==typeof t?t.toString():t),c="…(truncated)",u=Number.isFinite(t)&&t>0?Math.floor(t):1e3;if("string"==typeof n){if(n.length<=u)return n;let e=Math.max(0,u-c.length);return"".concat(n.slice(0,e)).concat(c)}return String(e)}catch(t){try{return String(e)}catch(e){return"[Unserializable value]"}}}(e)):"string"==typeof e?Error(e,{cause:e}):Error(String(e),{cause:e})}function u(e){return"object"==typeof e&&null!==e&&"error"in e}function d(e){return"object"==typeof e&&null!==e&&"content"in e&&Array.isArray(e.content)}function p(e){return"object"==typeof e&&null!==e&&"type"in e&&"text"===e.type}function f(e){return"object"==typeof e&&null!==e&&"type"in e&&"image"===e.type}function m(e){return"object"==typeof e&&null!==e&&"type"in e&&"audio"===e.type}function g(e){return"object"==typeof e&&null!==e&&"type"in e&&"file"===e.type}let y=()=>"msg-".concat(Date.now(),"-").concat(Math.random().toString(36).substring(2,9));function v(e,t){let o=(0,n.useRef)(null),[r,s]=(0,n.useState)([]),a=(0,n.useRef)(null),[i,l]=(0,n.useState)("connecting"),[u,d]=(0,n.useState)(!1),[p,f]=(0,n.useState)(null),m=(0,n.useRef)(!1),g=(0,n.useRef)(new Map),v=(0,n.useRef)(t);(0,n.useEffect)(()=>{v.current=t},[t]);let h=(0,n.useCallback)(e=>{if(!e)return!1;let t=v.current,o=t?t():null;return!!o&&e===o},[]);(0,n.useEffect)(()=>{let t=new globalThis.WebSocket(e);return o.current=t,t.onopen=()=>l("open"),t.onclose=()=>l("closed"),t.onerror=e=>{l("closed"),f({id:y(),message:"Connection error. Please try again.",timestamp:Date.now(),context:"websocket"})},t.onmessage=e=>{let t;try{t=JSON.parse(e.data)}catch(t){let e=c(t);console.error("[useChat] WebSocket message parse error: ".concat(e.message),{error:e});return}let o=t.data||{};switch(t.event){case"chunk":{if(!h(o.sessionId))return;d(!0);let e="string"==typeof o.content?o.content:"";if(!e)break;let t=o.type;s(o=>{if("reasoning"===t){let t=o[o.length-1];if(t&&"assistant"===t.role){let n={...t,reasoning:(t.reasoning||"")+e,createdAt:Date.now()};return[...o.slice(0,-1),n]}return[...o,{id:y(),role:"assistant",content:"",reasoning:e,createdAt:Date.now()}]}{let t=o[o.length-1];if(t&&"assistant"===t.role){let n="string"==typeof t.content?t.content:"",r={...t,content:n+e,createdAt:Date.now()};return[...o.slice(0,-1),r]}return[...o,{id:y(),role:"assistant",content:e,createdAt:Date.now()}]}});break}case"response":{if(!h(o.sessionId))return;d(!1);let e="string"==typeof o.text?o.text:"",t="string"==typeof o.reasoning?o.reasoning:void 0,n=o&&"object"==typeof o.tokenUsage?o.tokenUsage:void 0,r="string"==typeof o.model?o.model:void 0,a="string"==typeof o.provider?o.provider:void 0,i="string"==typeof o.router?o.router:void 0,l="string"==typeof o.sessionId?o.sessionId:void 0;s(o=>{let s=o[o.length-1];if(s&&"assistant"===s.role){let c="string"==typeof e?e:"",u={...s,content:c,tokenUsage:n,reasoning:t,model:r,provider:a,router:i,createdAt:Date.now(),sessionId:null!=l?l:s.sessionId};return[...o.slice(0,-1),u]}return[...o,{id:y(),role:"assistant",content:e,createdAt:Date.now(),tokenUsage:n,reasoning:t,model:r,provider:a,router:i,sessionId:l}]}),window.dispatchEvent(new CustomEvent("dexto:response",{detail:{text:e,sessionId:l,reasoning:t,tokenUsage:n,model:r,timestamp:Date.now()}}));break}case"conversationReset":if(!h(o.sessionId))return;d(!1),s([]),a.current=null,g.current.clear();break;case"toolCall":{if(!h(o.sessionId))return;let e=o.toolName,t=o.args,n=o.callId;s(o=>{let r=o.length,s=[...o,{id:y(),role:"tool",content:null,toolName:e,toolArgs:t,toolCallId:n,createdAt:Date.now()}];return n&&g.current.set(n,r),s});break}case"toolResult":{var n,r,i,l;if(!h(o.sessionId))return;let e=o.toolName,t=o.sanitized,a=null!=(l=null!=(i=null!=(r=null==t||null==(n=t.meta)?void 0:n.toolCallId)?r:"string"==typeof o.toolCallId?o.toolCallId:void 0)?i:"string"==typeof o.callId?o.callId:void 0)?l:"string"==typeof o.id?o.id:void 0,c=o.rawResult,u="boolean"==typeof o.success?o.success:void 0,d=null!=t?t:c,p=d,f=e=>{var t,o,n,r,s,a;if("object"==typeof e&&null!==e&&"image"===e.type){let r=null!=(n=null!=(o=null!=(t=e.data)?t:e.base64)?o:e.image)?n:e.url;if(r)return{type:"image",image:r,...e.mimeType?{mimeType:e.mimeType}:{}}}if("object"==typeof e&&null!==e&&"audio"===e.type){let t=null!=(a=null!=(s=null!=(r=e.data)?r:e.base64)?s:e.audio)?a:e.url;if(t&&e.mimeType)return{type:"file",data:t,mimeType:e.mimeType,...e.filename?{filename:e.filename}:{}}}if("object"==typeof e&&null!==e&&"resource"===e.type){let t=e.resource;if((null==t?void 0:t.text)&&t.mimeType)return t.mimeType.startsWith("image/")?{type:"image",image:t.text,mimeType:t.mimeType}:{type:"file",data:t.text,mimeType:t.mimeType,...t.title?{filename:t.title}:{}}}return"object"==typeof e&&null!==e&&"file"===e.type?{type:"file",data:e.data,mimeType:e.mimeType,...e.filename?{filename:e.filename}:{}}:"object"==typeof e&&null!==e&&"text"===e.type?{type:"text",text:e.text}:"string"==typeof e?{type:"text",text:e}:{type:"text",text:JSON.stringify(e)}};if(t&&Array.isArray(t.content)&&!1!==u){let e=t.content.map(f);p={...t,content:e}}else if(d&&Array.isArray(d.content)){let e=d.content.map(f);p={...d,content:e}}!1===u&&c&&(p=c),s(o=>{let n=-1;if(a&&g.current.has(a)?(n=g.current.get(a),g.current.delete(a)):n=o.findIndex(t=>"tool"===t.role&&void 0===t.toolResult&&t.toolName===e),-1!==n&&n<o.length){let e={...o[n],toolResult:p,toolResultMeta:null==t?void 0:t.meta,toolResultSuccess:u};return[...o.slice(0,n),e,...o.slice(n+1)]}return console.warn("No matching tool call found for result of ".concat(e).concat(a?" (callId: ".concat(a,")"):"")),o});break}case"toolConfirmationResponse":break;case"error":{let e;if(!h(o.sessionId))return;if(d(!1),m.current){m.current=!1;break}if((null==o?void 0:o.context)==="user_cancelled")break;let t=c(o).message;if(o.context){if("string"==typeof o.context)e=o.context;else if("object"==typeof o.context){let t=o.context;e=t.plugin?"plugin:".concat(t.plugin):t.scope?String(t.scope):"error"}}f({id:y(),message:t,timestamp:Date.now(),context:e,recoverable:o.recoverable,sessionId:o.sessionId,anchorMessageId:a.current||void 0,detailedIssues:Array.isArray(o.issues)?o.issues:[]});break}case"resourceCacheInvalidated":console.log("\uD83D\uDCBE Resource cache invalidated via WebSocket:",o),window.dispatchEvent(new CustomEvent("dexto:resourceCacheInvalidated",{detail:{resourceUri:o.resourceUri,serverName:o.serverName,action:o.action,timestamp:Date.now()}}));break;case"mcpPromptsListChanged":console.log("✨ Prompts list changed via WebSocket:",o),window.dispatchEvent(new CustomEvent("dexto:mcpPromptsListChanged",{detail:{serverName:o.serverName,prompts:o.prompts,timestamp:Date.now()}}));break;case"mcpToolsListChanged":console.log("\uD83D\uDD27 Tools list changed via WebSocket:",o),window.dispatchEvent(new CustomEvent("dexto:mcpToolsListChanged",{detail:{serverName:o.serverName,tools:o.tools,timestamp:Date.now()}}));break;case"mcpResourceUpdated":console.log("\uD83D\uDCCB Resource updated via WebSocket:",o),window.dispatchEvent(new CustomEvent("dexto:mcpResourceUpdated",{detail:{serverName:o.serverName,resourceUri:o.resourceUri,timestamp:Date.now()}}));break;case"sessionTitleUpdated":{let e=e=>"object"==typeof e&&null!==e,t=e(o)&&"string"==typeof o.sessionId?o.sessionId:void 0,n=e(o)&&"string"==typeof o.title?o.title:void 0;t&&n&&window.dispatchEvent(new CustomEvent("dexto:sessionTitleUpdated",{detail:{sessionId:t,title:n,timestamp:Date.now()}}))}}},()=>{t.close()}},[e]);let w=(0,n.useCallback)(function(e,t,n,r){var i;let l=arguments.length>4&&void 0!==arguments[4]&&arguments[4];if((null==(i=o.current)?void 0:i.readyState)===globalThis.WebSocket.OPEN){o.current.send(JSON.stringify({type:"message",content:e,imageData:t,fileData:n,sessionId:r,stream:l})),d(!0);let i=y();a.current=i,s(o=>[...o,{id:i,role:"user",content:e,createdAt:Date.now(),sessionId:r,imageData:t,fileData:n}]),window.dispatchEvent(new CustomEvent("dexto:message",{detail:{content:e,sessionId:r,timestamp:Date.now()}}))}else f({id:y(),message:"Cannot send message: connection is not open",timestamp:Date.now(),context:"websocket",recoverable:!0})},[]),b=(0,n.useCallback)(e=>{var t;(null==(t=o.current)?void 0:t.readyState)===globalThis.WebSocket.OPEN&&o.current.send(JSON.stringify({type:"reset",sessionId:e})),s([]),f(null),a.current=null,g.current.clear(),d(!1)},[]),E=(0,n.useCallback)(e=>{var t;(null==(t=o.current)?void 0:t.readyState)===globalThis.WebSocket.OPEN&&o.current.send(JSON.stringify({type:"cancel",sessionId:e})),d(!1),g.current.clear(),m.current=!0},[]),k=(0,n.useCallback)(()=>{f(null)},[]);return{messages:r,status:i,sendMessage:w,reset:b,setMessages:s,websocket:o.current,processing:u,cancel:E,activeError:p,clearError:k}}},9401:(e,t,o)=>{function n(){let e=parseInt(window.location.port||"3000",10),t=window.__DEXTO_API_PORT__?parseInt(window.__DEXTO_API_PORT__,10):e+1,o="https:"===window.location.protocol?"https:":"http:";return"".concat(o,"//").concat(window.location.hostname,":").concat(t)}function r(){let e=parseInt(window.location.port||"3000",10),t=window.__DEXTO_API_PORT__?parseInt(window.__DEXTO_API_PORT__,10):e+1,o="https:"===window.location.protocol?"wss:":"ws:";return"".concat(o,"//").concat(window.location.hostname,":").concat(t)}o.d(t,{e:()=>n,m:()=>r})},9752:(e,t,o)=>{function n(e){return(null==e?void 0:e.startsWith("audio/"))?"audio":(null==e?void 0:e.startsWith("video/"))?"video":"binary"}function r(e){return(null==e?void 0:e.startsWith("image/"))?"image":(null==e?void 0:e.startsWith("audio/"))?"audio":(null==e?void 0:e.startsWith("video/"))?"video":"binary"}o.d(t,{h:()=>r,t:()=>n})},9854:(e,t,o)=>{o.d(t,{ChatProvider:()=>u,v:()=>d});var n=o(5801),r=o(5789),s=o(826),a=o(1236),i=o(9401),l=o(9752);let c=(0,r.createContext)(void 0);function u(e){let{children:t}=e,o=(0,s.useRouter)(),u=(0,i.m)(),[d,p]=(0,r.useState)(null),[f,m]=(0,r.useState)(!0),[g,y]=(0,r.useState)(!0),[v,h]=(0,r.useState)(!1),[w,b]=(0,r.useState)(!1),{messages:E,sendMessage:k,status:C,reset:S,setMessages:x,websocket:I,activeError:T,clearError:A,processing:_,cancel:R}=(0,a.Y_)(u,()=>d),[N,D]=(0,r.useState)(null),j=(0,r.useCallback)(async e=>{try{let t=void 0!==e?e:d,o=t?"".concat((0,i.e)(),"/api/llm/current?sessionId=").concat(t):"".concat((0,i.e)(),"/api/llm/current"),n=await fetch(o);if(n.ok){let e=await n.json(),t=e.config||e;D({provider:t.provider,model:t.model,displayName:t.displayName,router:t.router,baseURL:t.baseURL})}}catch(e){}},[d]);(0,r.useEffect)(()=>{N||j()},[N,j]);let{greeting:O}=function(e){let[t,o]=(0,r.useState)(null),[n,s]=(0,r.useState)(!1),[a,l]=(0,r.useState)(null),[c,u]=(0,r.useState)(0),d=(0,r.useCallback)(async t=>{s(!0),l(null);try{var n;let r=e?"".concat((0,i.e)(),"/api/greeting?sessionId=").concat(encodeURIComponent(e)):"".concat((0,i.e)(),"/api/greeting"),s=await fetch(r,{signal:t});if(!s.ok){let e="Failed to fetch greeting: HTTP ".concat(s.status," ").concat(s.statusText);o(null),l(e);return}let a=await s.json();o(null!=(n=a.greeting)?n:null)}catch(t){if((null==t?void 0:t.name)==="AbortError")return;let e=t instanceof Error?t.message:"Failed to fetch greeting";l(e),console.error("Error fetching greeting: ".concat(e))}finally{s(!1)}},[e]);return(0,r.useEffect)(()=>{let e=new AbortController,{signal:t}=e;return d(t),()=>e.abort()},[d,c]),(0,r.useEffect)(()=>{let e=()=>{u(e=>e+1)};return window.addEventListener("dexto:agentSwitched",e),()=>{window.removeEventListener("dexto:agentSwitched",e)}},[]),{greeting:t,isLoading:n,error:a}}(d),L=(0,r.useCallback)(async()=>{var e;let t,o=await fetch("".concat((0,i.e)(),"/api/sessions"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({})});if(!o.ok)throw Error("Failed to create session: ".concat(o.status," ").concat(o.statusText));let n=await o.text();if(!n.trim())throw Error("Empty response from session creation");try{t=JSON.parse(n)}catch(e){throw console.error("Failed to parse session creation response:",e),Error("Invalid response from session creation")}if(!(null==(e=t.session)?void 0:e.id))throw Error("Session ID not found in server response");return t.session.id},[]),P=(0,r.useCallback)(async(e,t,n)=>{let r=d;if(!r&&f){if(w)return;try{b(!0),r=await L(),p(r),m(!1),o.replace("/chat/".concat(r)),await j(r)}catch(e){console.error("Failed to create session:",e);return}finally{b(!1)}}r?k(e,t,n,r,g):console.error("No session available for sending message")},[k,d,f,w,L,g,j,o]),U=(0,r.useCallback)(()=>{d&&S(d)},[S,d]),W=(0,r.useCallback)(async e=>{try{let t,o=await fetch("".concat((0,i.e)(),"/api/sessions/").concat(e,"/history"));if(!o.ok){if(404===o.status)return void x([]);throw Error("Failed to load session history")}let n=await o.text();if(!n.trim())return void x(t=>t.some(t=>t.sessionId===e)?t:[]);try{t=JSON.parse(n)}catch(e){console.error("Failed to parse session history response:",e),x([]);return}let r=t.history||[],s=[],a=new Map;for(let t=0;t<r.length;t++){let o=r[t],n={id:"session-".concat(e,"-").concat(t),role:o.role,content:o.content,createdAt:Date.now()-(r.length-t)*1e3,sessionId:e,tokenUsage:o.tokenUsage,reasoning:o.reasoning,model:o.model,router:o.router,provider:o.provider},i=e=>{let t=[];for(let r of e){var o,n;if("image"===r.type&&"string"==typeof r.image&&r.image.startsWith("@blob:")){let e=r.image.substring(1);t.push({uri:e,kind:"image",mimeType:null!=(o=r.mimeType)?o:"image/jpeg"})}if("file"===r.type&&"string"==typeof r.data&&r.data.startsWith("@blob:")){let e=r.data.substring(1),o=null!=(n=r.mimeType)?n:"application/octet-stream",s=(0,l.h)(o);t.push({uri:e,kind:s,mimeType:o,...r.filename?{filename:r.filename}:{}})}}return t.length>0?t:void 0};if("assistant"===o.role){o.content&&s.push(n),o.toolCalls&&o.toolCalls.length>0&&o.toolCalls.forEach((o,n)=>{var i,l;let c={};if(null==o?void 0:o.function)try{c=JSON.parse(o.function.arguments||"{}")}catch(e){console.warn("Failed to parse toolCall arguments for ".concat((null==(l=o.function)?void 0:l.name)||"unknown",": ").concat(e)),c={}}let u=(null==(i=o.function)?void 0:i.name)||"unknown",d={id:"session-".concat(e,"-").concat(t,"-tool-").concat(n),role:"tool",content:null,createdAt:Date.now()-(r.length-t)*1e3+n,sessionId:e,toolName:u,toolArgs:c,toolResult:void 0,toolResultMeta:void 0,toolResultSuccess:void 0};"string"==typeof o.id&&o.id.length>0&&a.set(o.id,s.length),s.push(d)});continue}if("tool"===o.role){let e="string"==typeof o.toolCallId?o.toolCallId:void 0,r="string"==typeof o.name?o.name:"unknown",l=Array.isArray(o.content)?o.content:"string"==typeof o.content?[{type:"text",text:o.content}]:[],c=i(l),u={content:l,...c?{resources:c}:{},meta:{toolName:r,toolCallId:null!=e?e:"tool-".concat(t),..."boolean"==typeof o.success?{success:o.success}:{}}};if(e&&a.has(e)){let t=a.get(e);s[t]={...s[t],toolResult:u,toolResultMeta:u.meta,toolResultSuccess:"boolean"==typeof o.success?o.success:void 0}}else s.push({...n,role:"tool",content:null,toolName:r,toolArgs:"object"==typeof o.args?o.args:void 0,toolResult:u,toolResultMeta:u.meta,toolResultSuccess:"boolean"==typeof o.success?o.success:void 0});continue}s.push(n)}x(t=>t.some(t=>t.sessionId===e)?t:s)}catch(e){console.error("Error loading session history:",e),x([])}},[x,j]),z=(0,r.useCallback)(async e=>{if(e!==d&&!v){h(!0);try{p(e),m(!1),await W(e),await j(e)}catch(e){throw console.error("Error switching session:",e),e}finally{h(!1)}}},[d,v,W,j]),M=(0,r.useCallback)(()=>{p(null),m(!0),x([])},[x]);return(0,r.useEffect)(()=>{let e=e=>{var t;let o=(null==e?void 0:e.detail)||{};if(null==(t=o.config)?void 0:t.llm){let e=o.config.llm;D({provider:e.provider,model:e.model,router:e.router,baseURL:e.baseURL})}},t=e=>{console.log("Servers changed:",e.detail)},o=e=>{let{sessionId:t}=e.detail||{};t===d&&x([])};return window.addEventListener("dexto:configChanged",e),window.addEventListener("dexto:serversChanged",t),window.addEventListener("dexto:conversationReset",o),()=>{window.removeEventListener("dexto:configChanged",e),window.removeEventListener("dexto:serversChanged",t),window.removeEventListener("dexto:conversationReset",o)}},[d,x]),(0,n.jsx)(c.Provider,{value:{messages:E,sendMessage:P,status:C,reset:U,currentSessionId:d,switchSession:z,loadSessionHistory:W,isWelcomeState:f,returnToWelcome:M,isStreaming:g,setStreaming:y,websocket:I,currentLLM:N,refreshCurrentLLM:j,processing:_,cancel:R,activeError:T,clearError:A,greeting:O},children:t})}function d(){let e=(0,r.useContext)(c);if(!e)throw Error("useChatContext must be used within a ChatProvider");return e}}}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[827],{},_=>{_.O(0,[614,656,854,804,419,760,845,358],()=>_(_.s=9419)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[974],{},_=>{_.O(0,[614,656,854,804,419,760,845,358],()=>_(_.s=9419)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[882],{7090:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>Z});var r=s(5801),a=s(5789),l=s(1241),n=s.n(l),o=s(7269),i=s(8406),c=s(1740),d=s(1295),m=s(530),u=s(5315),x=s(7159),p=s(3504),h=s(9198),f=s(7079),g=s(2913),b=s(7091),j=s(7397),v=s(5980),N=s(6032);function y(e){let{className:t,...s}=e;return(0,r.jsx)("div",{className:(0,N.cn)("animate-pulse rounded-md bg-muted",t),...s})}function w(e){let{servers:t,selectedServer:s,isLoading:a,error:l,searchQuery:n,onSearchChange:o,onServerSelect:i,onConnectNew:c}=e,d=t.filter(e=>e.name.toLowerCase().includes(n.toLowerCase()));return(0,r.jsxs)("div",{className:"flex flex-col h-full",children:[(0,r.jsxs)("div",{className:"pb-3 mb-3 border-b border-border",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 mb-3",children:[(0,r.jsx)(b.A,{className:"h-4 w-4 text-muted-foreground"}),(0,r.jsx)("h2",{className:"text-sm font-semibold text-foreground",children:"MCP Servers"}),a&&0===t.length&&(0,r.jsx)(g.A,{className:"h-3 w-3 animate-spin text-muted-foreground ml-auto"})]}),(0,r.jsx)(j.p,{placeholder:"Search servers...",value:n,onChange:e=>o(e.target.value),className:"h-8 text-sm"})]}),l&&0===t.length&&!a&&(0,r.jsxs)("div",{className:"p-3 bg-destructive/10 text-destructive text-sm rounded-md",children:[(0,r.jsx)("p",{className:"font-medium",children:"Error loading servers"}),(0,r.jsx)("p",{className:"text-xs mt-1",children:l})]}),a&&0===t.length&&(0,r.jsx)("div",{className:"flex-1 space-y-2 pr-1",children:[1,2,3].map(e=>(0,r.jsx)("div",{className:"p-2.5 rounded-lg border border-border",children:(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,r.jsx)(y,{className:"h-4 flex-1"}),(0,r.jsx)(y,{className:"h-5 w-16"})]})},e))}),0===t.length&&!a&&!l&&(0,r.jsx)("div",{className:"flex-1 flex items-center justify-center p-4",children:(0,r.jsxs)("div",{className:"text-center",children:[(0,r.jsx)(b.A,{className:"h-8 w-8 mx-auto text-muted-foreground/50 mb-2"}),(0,r.jsx)("p",{className:"text-sm text-muted-foreground",children:"No servers available"}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground mt-1",children:"Connect a server to get started"})]})}),d.length>0&&(0,r.jsx)("div",{className:"flex-1 overflow-y-auto space-y-1 pr-1",children:d.map(e=>(0,r.jsx)("button",{onClick:()=>"connected"===e.status&&i(e),disabled:"connected"!==e.status,className:(0,N.cn)("w-full p-2.5 rounded-lg text-left transition-all duration-200","hover:shadow-sm border border-transparent",(null==s?void 0:s.id)===e.id?"bg-primary text-primary-foreground shadow-sm border-primary/20":"hover:bg-muted hover:border-border","connected"!==e.status&&"opacity-50 cursor-not-allowed"),title:"connected"!==e.status?"".concat(e.name," is ").concat(e.status):e.name,children:(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,r.jsx)("span",{className:"font-medium text-sm truncate",children:e.name}),(0,r.jsxs)(v.E,{variant:"secondary",className:(0,N.cn)("text-xs px-1.5 py-0 h-5 flex items-center gap-1",(e=>{switch(e){case"connected":return"bg-green-100 text-green-700 dark:bg-green-700/20 dark:text-green-400";case"error":return"bg-red-100 text-red-700 dark:bg-red-700/20 dark:text-red-400";case"disconnected":return"bg-slate-100 text-slate-600 dark:bg-slate-700/20 dark:text-slate-400";default:return"bg-yellow-100 text-yellow-700 dark:bg-yellow-700/20 dark:text-yellow-400"}})(e.status)),children:[(e=>{switch(e){case"connected":return(0,r.jsx)(h.A,{className:"h-3 w-3"});case"error":return(0,r.jsx)(f.A,{className:"h-3 w-3"});default:return(0,r.jsx)(g.A,{className:"h-3 w-3 animate-spin"})}})(e.status),e.status]})]})},e.id))}),0===d.length&&t.length>0&&(0,r.jsx)("div",{className:"flex-1 flex items-center justify-center p-4",children:(0,r.jsx)("p",{className:"text-sm text-muted-foreground",children:"No servers match your search"})}),(0,r.jsxs)(u.$,{onClick:c,variant:"outline",className:"mt-auto w-full sticky bottom-0 bg-background",size:"sm",children:[(0,r.jsx)(b.A,{className:"h-4 w-4 mr-2"}),"Connect New Server"]})]})}var S=s(9597),k=s(2776);function A(e){let{tools:t,selectedTool:s,selectedServer:a,isLoading:l,error:n,searchQuery:o,onSearchChange:i,onToolSelect:c}=e,d=t.filter(e=>{var t;return e.name.toLowerCase().includes(o.toLowerCase())||(null==(t=e.description)?void 0:t.toLowerCase().includes(o.toLowerCase()))});return(0,r.jsxs)("div",{className:"flex flex-col h-full",children:[(0,r.jsxs)("div",{className:"pb-3 mb-3 border-b border-border",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 mb-3",children:[(0,r.jsx)(S.A,{className:"h-4 w-4 text-muted-foreground"}),(0,r.jsx)("h2",{className:"text-sm font-semibold text-foreground",children:"Tools"}),l&&0===t.length&&(0,r.jsx)(g.A,{className:"h-3 w-3 animate-spin text-muted-foreground ml-auto"}),t.length>0&&(0,r.jsx)(v.E,{variant:"secondary",className:"ml-auto text-xs",children:d.length})]}),t.length>0&&(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsx)(k.A,{className:"absolute left-2 top-1/2 -translate-y-1/2 h-3 w-3 text-muted-foreground"}),(0,r.jsx)(j.p,{placeholder:"Search tools...",value:o,onChange:e=>i(e.target.value),className:"h-8 text-sm pl-7"})]})]}),!a&&(0,r.jsx)("div",{className:"flex-1 flex items-center justify-center p-4",children:(0,r.jsxs)("div",{className:"text-center",children:[(0,r.jsx)(S.A,{className:"h-8 w-8 mx-auto text-muted-foreground/50 mb-2"}),(0,r.jsx)("p",{className:"text-sm text-muted-foreground",children:"Select a server"}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground mt-1",children:"Choose a connected server to view its tools"})]})}),a&&"connected"!==a.status&&(0,r.jsx)("div",{className:"flex-1 flex items-center justify-center p-4",children:(0,r.jsxs)("div",{className:"text-center",children:[(0,r.jsx)(S.A,{className:"h-8 w-8 mx-auto text-muted-foreground/50 mb-2"}),(0,r.jsx)("p",{className:"text-sm text-muted-foreground",children:"Server not connected"}),(0,r.jsxs)("p",{className:"text-xs text-muted-foreground mt-1",children:['"',a.name,'" is ',a.status]})]})}),n&&(null==a?void 0:a.status)==="connected"&&!l&&(0,r.jsxs)("div",{className:"p-3 bg-destructive/10 text-destructive text-sm rounded-md",children:[(0,r.jsx)("p",{className:"font-medium",children:"Error loading tools"}),(0,r.jsx)("p",{className:"text-xs mt-1",children:n})]}),l&&(null==a?void 0:a.status)==="connected"&&0===t.length&&(0,r.jsx)("div",{className:"flex-1 space-y-2 pr-1",children:[1,2,3,4].map(e=>(0,r.jsx)("div",{className:"p-3 rounded-lg border border-border",children:(0,r.jsxs)("div",{className:"flex items-start gap-2",children:[(0,r.jsx)(y,{className:"h-4 w-4 mt-0.5 flex-shrink-0 rounded-full"}),(0,r.jsxs)("div",{className:"flex-1 space-y-2",children:[(0,r.jsx)(y,{className:"h-4 w-3/4"}),(0,r.jsx)(y,{className:"h-3 w-full"}),(0,r.jsx)(y,{className:"h-3 w-5/6"})]})]})},e))}),a&&"connected"===a.status&&!l&&0===t.length&&!n&&(0,r.jsx)("div",{className:"flex-1 flex items-center justify-center p-4",children:(0,r.jsxs)("div",{className:"text-center",children:[(0,r.jsx)(S.A,{className:"h-8 w-8 mx-auto text-muted-foreground/50 mb-2"}),(0,r.jsx)("p",{className:"text-sm text-muted-foreground",children:"No tools available"}),(0,r.jsxs)("p",{className:"text-xs text-muted-foreground mt-1",children:["No tools found for ",a.name]})]})}),d.length>0&&(0,r.jsx)("div",{className:"flex-1 overflow-y-auto space-y-1 pr-1",children:d.map(e=>(0,r.jsx)("button",{onClick:()=>c(e),className:(0,N.cn)("w-full p-3 rounded-lg text-left transition-all duration-200","hover:shadow-sm border border-transparent",(null==s?void 0:s.id)===e.id?"bg-primary text-primary-foreground shadow-sm border-primary/20":"hover:bg-muted hover:border-border"),children:(0,r.jsx)("div",{className:"flex items-start gap-2",children:(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsx)("h3",{className:"font-medium text-sm truncate",children:e.name}),e.description&&(0,r.jsx)("p",{className:(0,N.cn)("text-xs mt-1 line-clamp-2",(null==s?void 0:s.id)===e.id?"text-primary-foreground/80":"text-muted-foreground"),children:e.description})]})})},e.id))}),0===d.length&&t.length>0&&(0,r.jsx)("div",{className:"flex-1 flex items-center justify-center p-4",children:(0,r.jsxs)("div",{className:"text-center",children:[(0,r.jsx)(k.A,{className:"h-8 w-8 mx-auto text-muted-foreground/50 mb-2"}),(0,r.jsx)("p",{className:"text-sm text-muted-foreground",children:"No tools match your search"}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground mt-1",children:"Try a different search term"})]})})]})}var C=s(449),T=s(6284),O=s(531),_=s(5195),E=s(3511),J=s(8537),P=s(56);let D=[{name:"Quick Test",description:"Fill with test values",apply:e=>{var t;let s={};return(null==(t=e.inputSchema)?void 0:t.properties)&&Object.entries(e.inputSchema.properties).forEach(e=>{let[t,r]=e;"string"===r.type?s[t]="test-".concat(t):"number"===r.type?s[t]=42:"boolean"===r.type?s[t]=!0:"object"===r.type?s[t]='{"example": "value"}':"array"===r.type&&(s[t]='["example"]')}),s}},{name:"Required Only",description:"Fill only required fields",apply:e=>{var t,s;let r={};return(null==(t=e.inputSchema)?void 0:t.properties)&&(null==(s=e.inputSchema)?void 0:s.required)&&e.inputSchema.required.forEach(t=>{let s=e.inputSchema.properties[t];"string"===s.type||"number"===s.type?r[t]="":"boolean"===s.type?r[t]=!1:"object"===s.type?r[t]="{}":"array"===s.type&&(r[t]="[]")}),r}},{name:"Clear All",description:"Clear all fields",apply:()=>({})}];function I(e){var t;let{tool:s,inputs:a,errors:l,isLoading:n,onInputChange:o,onSubmit:i,onCopyConfig:c,onShareConfig:d}=e,m=(null==(t=s.inputSchema)?void 0:t.properties)&&Object.keys(s.inputSchema.properties).length>0,x=(e,t)=>{var i,c;let d=null==(c=s.inputSchema)||null==(i=c.required)?void 0:i.includes(e),m=l[e],u="w-full ".concat(m?"border-destructive focus-visible:ring-destructive":"");if(t.enum&&Array.isArray(t.enum)){let s=t.enum.every(e=>"boolean"==typeof e),l=t.enum.every(e=>"number"==typeof e);return(0,r.jsxs)(_.l6,{value:void 0===a[e]&&void 0!==t.default?String(t.default):String(a[e]||""),onValueChange:r=>{let a=r;s?a="true"===r:l&&(a=Number(r)),o(e,a,t.type)},disabled:n,children:[(0,r.jsx)(_.bq,{id:e,className:u,children:(0,r.jsx)(_.yv,{placeholder:"Select ".concat(t.description||e).concat(d?"":" (optional)","...")})}),(0,r.jsx)(_.gC,{children:t.enum.map(e=>(0,r.jsx)(_.eb,{value:String(e),children:String(e)},String(e)))})]})}if("boolean"===t.type)return(0,r.jsx)(T.S,{id:e,checked:void 0===a[e]&&void 0!==t.default?!!t.default:!!a[e],onCheckedChange:s=>o(e,s,t.type),disabled:n,className:m?"border-destructive ring-destructive":""});if("object"===t.type||"array"===t.type)return(0,r.jsx)(C.T,{id:e,value:void 0===a[e]&&void 0!==t.default?JSON.stringify(t.default,null,2):a[e]||"",onChange:s=>o(e,s.target.value,t.type),rows:5,className:"".concat(u," font-mono text-sm min-h-[100px] resize-y"),placeholder:"Enter JSON for ".concat(t.description||e),disabled:n});let x="text";return("number"===t.type||"integer"===t.type)&&(x="number"),"date-time"===t.format&&(x="datetime-local"),"date"===t.format&&(x="date"),"email"===t.format&&(x="email"),"uri"===t.format&&(x="url"),"password"===t.format&&(x="password"),(0,r.jsx)(j.p,{type:x,id:e,value:void 0===a[e]&&void 0!==t.default?String(t.default):String(a[e]||""),onChange:s=>o(e,s.target.value,t.type),className:u,placeholder:t.description||"Enter ".concat(e),disabled:n,step:"number"===t.type||"integer"===t.type?"any":void 0})};return(0,r.jsxs)("form",{onSubmit:e=>{e.preventDefault(),i()},className:"space-y-5 p-4 border border-border rounded-lg bg-card shadow-sm",children:[m&&(0,r.jsxs)("div",{className:"border-b border-border pb-4",children:[(0,r.jsx)("h4",{className:"text-sm font-medium mb-2 text-muted-foreground",children:"Quick Fill"}),(0,r.jsx)("div",{className:"flex flex-wrap gap-2",children:D.map((e,t)=>(0,r.jsx)(u.$,{type:"button",variant:"outline",size:"sm",onClick:()=>{Object.entries(e.apply(s)).forEach(e=>{var t,r;let[a,l]=e,n=null==(r=s.inputSchema)||null==(t=r.properties)?void 0:t[a];o(a,l,null==n?void 0:n.type)})},className:"text-xs",title:e.description,children:e.name},t))})]}),!m&&(0,r.jsx)("p",{className:"text-sm text-muted-foreground py-2",children:"This tool does not require any inputs."}),m&&Object.entries(s.inputSchema.properties).map(e=>{var t,a;let[n,o]=e,i=null==(a=s.inputSchema)||null==(t=a.required)?void 0:t.includes(n),c=l[n];return(0,r.jsxs)("div",{className:"grid gap-1.5",children:[(0,r.jsxs)("div",{className:"flex ".concat("boolean"===o.type?"flex-row items-center space-x-3":"flex-col"),children:[(0,r.jsxs)(O.J,{htmlFor:n,className:"".concat("boolean"===o.type?"leading-none cursor-pointer peer-disabled:cursor-not-allowed peer-disabled:opacity-70":"capitalize font-medium"),children:[o.description||n.replace(/([A-Z]+(?=[A-Z][a-z]))|([A-Z][a-z])/g," $&").trim().replace(/_/g," "),i&&(0,r.jsx)("span",{className:"text-destructive text-lg ml-0.5",children:"*"})]}),"boolean"===o.type?x(n,o):(0,r.jsx)("div",{className:"w-full",children:x(n,o)})]}),c&&(0,r.jsx)("p",{className:"text-xs text-destructive",children:c})]},n)}),(0,r.jsxs)("div",{className:"flex flex-wrap gap-2 pt-2",children:[(0,r.jsx)(u.$,{type:"submit",disabled:n||Object.keys(l).some(e=>""!==l[e]),className:"flex-1",children:n?"Executing...":(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(E.A,{className:"h-4 w-4 mr-2"}),"Run Tool"]})}),m&&Object.keys(a).length>0&&(0,r.jsxs)(r.Fragment,{children:[c&&(0,r.jsxs)(u.$,{type:"button",variant:"outline",size:"sm",onClick:c,children:[(0,r.jsx)(J.A,{className:"h-3 w-3 mr-2"}),"Copy"]}),d&&(0,r.jsxs)(u.$,{type:"button",variant:"outline",size:"sm",onClick:d,children:[(0,r.jsx)(P.A,{className:"h-3 w-3 mr-2"}),"Share"]})]})]})]})}var z=s(4337),F=s(4439),L=s(5107);function R(e){let{result:t,toolName:s,onCopyResult:a}=e;return(0,r.jsxs)("div",{className:"mt-6 p-4 border border-border rounded-lg bg-card shadow-sm",children:[(0,r.jsxs)("div",{className:"flex justify-between items-center mb-3 pb-3 border-b border-border",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[t.success?(0,r.jsx)(m.A,{className:"h-5 w-5 text-green-500"}):(0,r.jsx)(z.A,{className:"h-5 w-5 text-red-500"}),(0,r.jsx)("h3",{className:"text-base font-semibold text-foreground",children:t.success?"Success":"Error"}),(0,r.jsxs)("span",{className:"text-sm text-muted-foreground",children:["• ",s]})]}),a&&t.success&&(0,r.jsxs)(u.$,{variant:"outline",size:"sm",onClick:a,children:[(0,r.jsx)(J.A,{className:"h-3 w-3 mr-2"}),"Copy Result"]})]}),t.success?(0,r.jsx)("div",{className:"space-y-3",children:(()=>{var e,s,a,l,n,o,i;if(((null==(s=t.metadata)||null==(e=s.mimeType)?void 0:e.startsWith("image/"))||(null==(l=t.metadata)||null==(a=l.type)?void 0:a.startsWith("image"))||t.data&&"object"==typeof t.data&&Array.isArray(t.data.content))&&t.data){let e="",s=null,a=null==(i=t.metadata)?void 0:i.mimeType,l=[];if(Array.isArray(t.data))(s=t.data.find(e=>e&&"image"===e.type))&&"string"==typeof s.data&&s.mimeType&&(e="data:".concat(s.mimeType,";base64,").concat(s.data));else if(t.data&&"object"==typeof t.data&&Array.isArray(t.data.content)){let r=t.data.content;if((s=r.find(e=>e&&"image"===e.type))&&"string"==typeof s.data){let t=s.mimeType||a;t&&(e="data:".concat(t,";base64,").concat(s.data))}l=r.filter(e=>e&&"image"!==e.type)}else"string"==typeof t.data&&(t.data.startsWith("data:image")?e=t.data:a?e="data:".concat(a,";base64,").concat(t.data):(t.data.startsWith("http://")||t.data.startsWith("https://"))&&(e=t.data));if(e)return(0,r.jsx)("img",{src:e,alt:"Tool result",className:"my-2 max-h-96 w-auto rounded-lg border border-border shadow-sm"});if(l.length>0)return(0,r.jsx)("div",{className:"space-y-3",children:l.map((e,t)=>(0,r.jsx)("pre",{className:"whitespace-pre-wrap text-sm bg-muted/50 p-3 rounded-md border border-border font-mono overflow-x-auto max-h-64",children:"object"==typeof e?JSON.stringify(e,null,2):String(e)},t))})}return(null==(n=t.metadata)?void 0:n.type)==="markdown"&&t.data?(0,r.jsx)("div",{className:"prose prose-sm dark:prose-invert max-w-none p-3 bg-muted/50 rounded-lg border border-border",children:(0,r.jsx)(F.oz,{remarkPlugins:[L.A],children:"string"==typeof t.data?t.data:JSON.stringify(t.data,null,2)})}):(null==(o=t.metadata)?void 0:o.type)==="json"&&t.data?(0,r.jsx)("pre",{className:"whitespace-pre-wrap text-sm bg-muted/50 p-3 rounded-md border border-border font-mono overflow-x-auto",children:"string"==typeof t.data?t.data:JSON.stringify(t.data,null,2)}):(0,r.jsx)("pre",{className:"whitespace-pre-wrap text-sm bg-muted/50 p-3 rounded-md border border-border overflow-x-auto",children:"object"==typeof t.data?JSON.stringify(t.data,null,2):String(t.data)})})()}):(0,r.jsxs)("div",{className:"p-3 bg-destructive/10 rounded-md",children:[(0,r.jsx)("p",{className:"text-sm text-destructive font-semibold",children:"Error executing tool:"}),(0,r.jsx)("pre",{className:"mt-1 text-xs text-destructive whitespace-pre-wrap break-all",children:t.error||"Unknown error"})]})]})}var $=s(2848),q=s(3358),M=s(2682);function W(e){let{history:t}=e;if(0===t.length)return null;let s=t.filter(e=>e.success).length,a=t.filter(e=>!e.success).length;return(0,r.jsxs)("div",{className:"border-t border-border pt-4 mt-4",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)($.A,{className:"h-4 w-4 text-muted-foreground"}),(0,r.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:"Execution History"}),(0,r.jsx)(v.E,{variant:"secondary",className:"text-xs",children:t.length})]}),(0,r.jsxs)("div",{className:"flex items-center gap-3 text-xs text-muted-foreground",children:[(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsx)(m.A,{className:"h-3 w-3 text-green-500"}),(0,r.jsx)("span",{children:s})]}),(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsx)(z.A,{className:"h-3 w-3 text-red-500"}),(0,r.jsx)("span",{children:a})]})]})]}),(0,r.jsx)(M.F,{className:"h-32",children:(0,r.jsx)("div",{className:"space-y-2",children:t.map(e=>(0,r.jsxs)("div",{className:"flex items-center justify-between p-2 rounded-md bg-muted/50 hover:bg-muted transition-colors",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 min-w-0 flex-1",children:[e.success?(0,r.jsx)(m.A,{className:"h-3 w-3 text-green-500 flex-shrink-0"}):(0,r.jsx)(z.A,{className:"h-3 w-3 text-red-500 flex-shrink-0"}),(0,r.jsx)("span",{className:"text-sm font-medium truncate",children:e.toolName})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[e.duration&&(0,r.jsxs)("span",{className:"flex items-center gap-1",children:[(0,r.jsx)(q.A,{className:"h-3 w-3"}),e.duration,"ms"]}),(0,r.jsx)("span",{children:new Date(e.timestamp).toLocaleTimeString()})]})]},e.id))})})]})}var Q=s(9401);function X(){let[e,t]=(0,a.useState)([]),[s,l]=(0,a.useState)(null),[h,f]=(0,a.useState)([]),[g,b]=(0,a.useState)(null),[j,v]=(0,a.useState)({}),[y,S]=(0,a.useState)(null),[k,C]=(0,a.useState)(!1),[T,O]=(0,a.useState)(null),[_,E]=(0,a.useState)({}),[J,P]=(0,a.useState)(!1),[D,z]=(0,a.useState)([]),[F,L]=(0,a.useState)(null),[$,q]=(0,a.useState)(""),[M,X]=(0,a.useState)(""),[Z,U]=(0,a.useState)(!0),[B,H]=(0,a.useState)(!0),V="".concat((0,Q.e)(),"/api"),G=(0,a.useRef)(null),K=(0,a.useRef)(null);(0,a.useEffect)(()=>()=>{var e;null==(e=G.current)||e.abort()},[]);let Y=(e,t)=>{console.error("Playground Error (".concat(t||"general","):"),e),"input"!==t&&O(e)},ee=(0,a.useCallback)(async()=>{C(!0),O(null);try{let e=await fetch("".concat(V,"/mcp/servers"));if(!e.ok){let t=await e.json().catch(()=>({error:"Failed to fetch servers"}));throw Error(t.error||"Server List: ".concat(e.statusText))}let s=await e.json();t(s.servers||[])}catch(e){Y(e.message,"servers"),t([])}finally{C(!1)}},[]);(0,a.useEffect)(()=>{ee()},[ee]);let et=(0,a.useCallback)(async e=>{var t;null==(t=G.current)||t.abort();let s=new AbortController;if(G.current=s,l(e),b(null),S(null),f([]),O(null),E({}),"connected"===e.status){C(!0);try{let t=await fetch("".concat(V,"/mcp/servers/").concat(e.id,"/tools"),{signal:s.signal});if(!t.ok){let s=await t.json().catch(()=>({error:"Failed to fetch tools for ".concat(e.name)}));throw Error(s.error||"Tool List (".concat(e.name,"): ").concat(t.statusText))}let r=await t.json();if(s.signal.aborted)return;f(r.tools||[])}catch(e){"AbortError"!==e.name&&(Y(e.message,"tools"),f([]))}finally{s.signal.aborted||C(!1)}}},[]),es=(0,a.useCallback)(e=>{b(e),S(null),O(null),E({});let t={};if(e.inputSchema&&e.inputSchema.properties)for(let s in e.inputSchema.properties){let r=e.inputSchema.properties[s];void 0!==r.default?t[s]=r.default:"boolean"===r.type?t[s]=!1:("number"===r.type||"integer"===r.type||"object"===r.type||r.type,t[s]="")}v(t)},[]),er=(0,a.useCallback)((e,t,s)=>{if((v(s=>({...s,[e]:t})),_[e]&&E(t=>({...t,[e]:""})),"object"===s||"array"===s)&&""!==t)try{JSON.parse(t)}catch(t){E(t=>({...t,[e]:"Invalid JSON format"}));return}},[_]),ea=()=>{if(!g||!g.inputSchema||!g.inputSchema.properties)return!0;let e={},t=!0;for(let r in g.inputSchema.properties){var s;let a=g.inputSchema.properties[r],l=j[r];if((null==(s=g.inputSchema.required)?void 0:s.includes(r))&&(void 0===l||""===l||"boolean"===a.type&&"boolean"!=typeof l)){e[r]="This field is required.",t=!1;continue}if(("number"===a.type||"integer"===a.type)&&""!==l&&isNaN(Number(l))&&(e[r]="Must be a valid number.",t=!1),("object"===a.type||"array"===a.type)&&""!==l)try{JSON.parse(l)}catch(s){e[r]="Invalid JSON format.",t=!1}}return E(e),t},el=(0,a.useCallback)(async()=>{var e;if(!s||!g)return void Y("No server or tool selected for execution.","execution");null==(e=K.current)||e.abort();let t=new AbortController;if(K.current=t,O(null),S(null),!ea())return void Y("Please correct the input errors.","input");let r=Date.now(),a="exec_".concat(Date.now(),"_").concat(Math.random().toString(36).substr(2,9));C(!0);try{let e={};if(g.inputSchema&&g.inputSchema.properties)for(let t in g.inputSchema.properties){let s=g.inputSchema.properties[t],r=j[t];if("number"===s.type)r=""===r?void 0:Number(r);else if("integer"===s.type)if(""===r)r=void 0;else{let e=Number(r);if(!Number.isInteger(e)){E(e=>({...e,[t]:"Must be a valid integer."})),C(!1);return}r=e}else if("boolean"===s.type)r="string"==typeof r?"true"===r:!!r;else if(("object"===s.type||"array"===s.type)&&"string"==typeof r&&""!==r.trim())try{r=JSON.parse(r)}catch(e){E(e=>({...e,[t]:"Invalid JSON before sending."})),C(!1);return}else("object"===s.type||"array"===s.type)&&(void 0===r||""===r)&&(r=void 0);void 0!==r&&(e[t]=r)}let l=await fetch("".concat(V,"/mcp/servers/").concat(s.id,"/tools/").concat(g.id,"/execute"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e),signal:t.signal}),n=await l.json();if(!l.ok)throw Error(n.error||"Tool Execution (".concat(g.name,"): ").concat(l.statusText));let o=Date.now()-r;S(n),z(e=>[{id:a,toolName:g.name,timestamp:new Date,success:!0,duration:o},...e.slice(0,9)])}catch(e){if("AbortError"!==e.name){let t=Date.now()-r;Y(e.message,"execution"),e.message&&(!y||y.success||y.error!==e.message)&&S({success:!1,error:e.message}),z(e=>[{id:a,toolName:(null==g?void 0:g.name)||"Unknown",timestamp:new Date,success:!1,duration:t},...e.slice(0,9)])}}finally{t.signal.aborted||C(!1)}},[s,g,j,ea,y]),en=async(e,t)=>{try{await navigator.clipboard.writeText(e),L({message:t||"Copied to clipboard",type:"success"}),setTimeout(()=>L(null),3e3)}catch(e){L({message:"Failed to copy to clipboard. Please check browser permissions.",type:"error"}),setTimeout(()=>L(null),5e3),console.error("Failed to copy to clipboard:",e)}};return(0,r.jsxs)("div",{className:"flex h-screen bg-background text-foreground antialiased",children:[(0,r.jsx)("aside",{className:(0,N.cn)("w-72 flex-shrink-0 border-r border-border bg-card p-4 flex flex-col transition-all duration-300","lg:relative lg:translate-x-0",Z?"translate-x-0":"-translate-x-full absolute lg:w-0 lg:p-0 lg:border-0"),children:Z&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"flex items-center justify-between pb-3 mb-3 border-b border-border",children:[(0,r.jsx)(n(),{href:"/",children:(0,r.jsxs)(u.$,{variant:"outline",size:"sm",className:"gap-1.5",children:[(0,r.jsx)(o.A,{className:"h-4 w-4"}),"Back"]})}),(0,r.jsx)(u.$,{variant:"ghost",size:"sm",onClick:()=>U(!1),className:"lg:hidden",children:(0,r.jsx)(i.A,{className:"h-4 w-4"})})]}),(0,r.jsx)(w,{servers:e,selectedServer:s,isLoading:k&&!s,error:T,searchQuery:$,onSearchChange:q,onServerSelect:et,onConnectNew:()=>P(!0)})]})}),(0,r.jsx)("aside",{className:(0,N.cn)("w-80 flex-shrink-0 border-r border-border bg-card p-4 flex flex-col transition-all duration-300","lg:relative lg:translate-x-0",B?"translate-x-0":"-translate-x-full absolute lg:w-0 lg:p-0 lg:border-0"),children:B&&(0,r.jsx)(A,{tools:h,selectedTool:g,selectedServer:s,isLoading:k&&(null==s?void 0:s.status)==="connected"&&0===h.length,error:(null==s?void 0:s.status)==="connected"?T:null,searchQuery:M,onSearchChange:X,onToolSelect:es})}),(0,r.jsxs)("main",{className:"flex-1 p-6 flex flex-col bg-muted/30 overflow-y-auto",children:[(0,r.jsx)("div",{className:"pb-3 mb-4 border-b border-border",children:(0,r.jsx)("div",{className:"flex items-center justify-between",children:(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[!Z&&(0,r.jsx)(u.$,{variant:"outline",size:"sm",onClick:()=>U(!0),className:"lg:hidden",children:(0,r.jsx)(c.A,{className:"h-4 w-4"})}),!B&&(0,r.jsx)(u.$,{variant:"outline",size:"sm",onClick:()=>H(!0),className:"lg:hidden",children:(0,r.jsx)(c.A,{className:"h-4 w-4"})}),(0,r.jsx)("h2",{className:"text-lg font-semibold text-foreground",children:"Tool Runner"})]})})}),F&&(0,r.jsxs)(x.Fc,{variant:"error"===F.type?"destructive":"default",className:(0,N.cn)("mb-4","success"===F.type&&"border-green-200 bg-green-50 text-green-800 dark:border-green-800 dark:bg-green-950 dark:text-green-400"),children:["error"===F.type&&(0,r.jsx)(d.A,{className:"h-4 w-4"}),"success"===F.type&&(0,r.jsx)(m.A,{className:"h-4 w-4"}),(0,r.jsx)(x.TN,{children:F.message})]}),T&&g&&(!y||!y.success)&&(0,r.jsxs)("div",{className:"mb-4 p-3 border border-destructive/50 bg-destructive/10 rounded-md text-destructive text-sm",children:[(0,r.jsx)("p",{className:"font-medium",children:"Error:"}),(0,r.jsx)("p",{children:T})]}),!g&&(0,r.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,r.jsxs)("div",{className:"text-center max-w-md",children:[(0,r.jsx)("div",{className:"mb-4",children:(0,r.jsx)(o.A,{className:"h-12 w-12 mx-auto text-muted-foreground opacity-50"})}),(0,r.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Select a Tool"}),(0,r.jsx)("p",{className:"text-muted-foreground text-sm",children:"Choose a tool from the left panel to start testing and experimenting with MCP capabilities."})]})}),g&&(0,r.jsxs)("div",{className:"space-y-6",children:[(0,r.jsx)("div",{className:"p-4 border border-border rounded-lg bg-card shadow-sm",children:(0,r.jsxs)("div",{className:"flex justify-between items-start",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{className:"text-base font-semibold text-primary mb-1",children:g.name}),g.description&&(0,r.jsx)("p",{className:"text-sm text-muted-foreground",children:g.description})]}),(0,r.jsxs)("div",{className:"text-right text-xs text-muted-foreground",children:[(0,r.jsxs)("p",{children:["Server: ",null==s?void 0:s.name]}),D.filter(e=>e.toolName===g.name).length>0&&(0,r.jsxs)("p",{children:["Runs:"," ",D.filter(e=>e.toolName===g.name).length]})]})]})}),(0,r.jsx)(I,{tool:g,inputs:j,errors:_,isLoading:k,onInputChange:er,onSubmit:el,onCopyConfig:()=>{g&&s&&en(JSON.stringify({server:s.name,tool:g.name,inputs:j,timestamp:new Date().toISOString()},null,2),"Tool configuration copied!")},onShareConfig:()=>{if(!g||!s)return;let e="Check out this Dexto tool configuration:\n\nServer: ".concat(s.name,"\nTool: ").concat(g.name,"\nInputs: ").concat(JSON.stringify(j,null,2));navigator.share?navigator.share({title:"Dexto Tool: ".concat(g.name),text:e}):en(e,"Tool configuration copied for sharing!")}}),y&&(0,r.jsx)(R,{result:y,toolName:g.name,onCopyResult:()=>{y&&en("object"==typeof y.data?JSON.stringify(y.data,null,2):String(y.data),"Tool result copied!")}}),(0,r.jsx)(W,{history:D})]})]}),(0,r.jsx)(p.A,{isOpen:J,onClose:()=>{P(!1),ee()}})]})}function Z(){return(0,r.jsx)(X,{})}},7621:(e,t,s)=>{Promise.resolve().then(s.bind(s,7090))},9401:(e,t,s)=>{"use strict";function r(){let e=parseInt(window.location.port||"3000",10),t=window.__DEXTO_API_PORT__?parseInt(window.__DEXTO_API_PORT__,10):e+1,s="https:"===window.location.protocol?"https:":"http:";return"".concat(s,"//").concat(window.location.hostname,":").concat(t)}function a(){let e=parseInt(window.location.port||"3000",10),t=window.__DEXTO_API_PORT__?parseInt(window.__DEXTO_API_PORT__,10):e+1,s="https:"===window.location.protocol?"wss:":"ws:";return"".concat(s,"//").concat(window.location.hostname,":").concat(t)}s.d(t,{e:()=>r,m:()=>a})}},e=>{e.O(0,[614,765,804,760,845,358],()=>e(e.s=7621)),_N_E=e.O()}]);