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.
- package/README.md +220 -84
- package/dist/agents/agent-registry.json +9 -0
- package/dist/agents/agent-template.yml +1 -1
- package/dist/agents/coding-agent/README.md +188 -0
- package/dist/agents/coding-agent/coding-agent.yml +203 -0
- package/dist/agents/database-agent/database-agent.yml +41 -2
- package/dist/agents/default-agent.yml +37 -3
- package/dist/agents/github-agent/github-agent.yml +39 -0
- package/dist/agents/image-editor-agent/image-editor-agent.yml +6 -2
- package/dist/agents/music-agent/README.md +1 -1
- package/dist/agents/music-agent/music-agent.yml +33 -2
- package/dist/agents/nano-banana-agent/nano-banana-agent.yml +32 -1
- package/dist/agents/podcast-agent/README.md +1 -1
- package/dist/agents/podcast-agent/podcast-agent.yml +34 -3
- package/dist/agents/product-name-researcher/product-name-researcher.yml +34 -1
- package/dist/agents/sora-video-agent/README.md +122 -0
- package/dist/agents/sora-video-agent/sora-video-agent.yml +98 -0
- package/dist/agents/talk2pdf-agent/talk2pdf-agent.yml +14 -2
- package/dist/agents/triage-demo/README.md +6 -6
- package/dist/agents/triage-demo/billing-agent.yml +1 -1
- package/dist/agents/triage-demo/escalation-agent.yml +1 -1
- package/dist/agents/triage-demo/product-info-agent.yml +1 -1
- package/dist/agents/triage-demo/technical-support-agent.yml +1 -1
- package/dist/agents/triage-demo/triage-agent.yml +13 -1
- package/dist/analytics/wrapper.d.ts.map +1 -1
- package/dist/analytics/wrapper.js +5 -3
- package/dist/api/a2a.d.ts +2 -2
- package/dist/api/a2a.d.ts.map +1 -1
- package/dist/api/a2a.js +3 -2
- package/dist/api/mcp/mcp_handler.d.ts +3 -3
- package/dist/api/mcp/mcp_handler.d.ts.map +1 -1
- package/dist/api/mcp/mcp_handler.js +7 -4
- package/dist/api/memory/memory-handler.d.ts +4 -1
- package/dist/api/memory/memory-handler.d.ts.map +1 -1
- package/dist/api/memory/memory-handler.js +10 -2
- package/dist/api/middleware/errorHandler.d.ts.map +1 -1
- package/dist/api/middleware/errorHandler.js +2 -0
- package/dist/api/server.d.ts.map +1 -1
- package/dist/api/server.js +158 -42
- package/dist/api/websocket-subscriber.d.ts.map +1 -1
- package/dist/api/websocket-subscriber.js +6 -0
- package/dist/cli/commands/interactive-commands/model/model-commands.js +2 -2
- package/dist/cli/utils/options.js +2 -2
- package/dist/index.js +64 -18
- package/dist/webui/.next/standalone/.next/static/chunks/419-6d449dcb2b056299.js +1 -0
- package/dist/webui/.next/standalone/.next/static/chunks/614-3519f8a6051e0088.js +1 -0
- package/dist/webui/.next/standalone/.next/static/chunks/656-5a9f6405badf66a8.js +25 -0
- package/dist/webui/.next/standalone/.next/static/chunks/{711-76a7d2bf4d6f69e5.js → 765-755286dc586b1a51.js} +1 -1
- package/dist/webui/.next/standalone/.next/static/chunks/804-f40df92a3adffcc0.js +1 -0
- package/dist/webui/.next/standalone/.next/static/chunks/854-232126f3c77e6c0b.js +1 -0
- package/dist/webui/.next/standalone/.next/static/chunks/app/chat/[sessionId]/page-a695b09e6bac5274.js +1 -0
- package/dist/webui/.next/standalone/.next/static/chunks/app/page-d1f127a0cac96246.js +1 -0
- package/dist/webui/.next/standalone/.next/static/chunks/app/playground/page-6f8d2abe76e51dfc.js +1 -0
- package/dist/webui/.next/standalone/.next/static/chunks/main-7decd42f62688419.js +1 -0
- package/dist/webui/.next/standalone/.next/static/css/c3c26ec984df1deb.css +1 -0
- package/dist/webui/.next/standalone/.next/static/uqfH8SY_uhwdc0ZkpMwCO/_buildManifest.js +1 -0
- package/dist/webui/.next/standalone/package.json +1 -0
- package/dist/webui/.next/standalone/packages/webui/.next/BUILD_ID +1 -1
- package/dist/webui/.next/standalone/packages/webui/.next/app-build-manifest.json +18 -18
- package/dist/webui/.next/standalone/packages/webui/.next/build-manifest.json +4 -4
- package/dist/webui/.next/standalone/packages/webui/.next/prerender-manifest.json +3 -3
- package/dist/webui/.next/standalone/packages/webui/.next/required-server-files.json +1 -11
- package/dist/webui/.next/standalone/packages/webui/.next/routes-manifest.json +1 -7
- package/dist/webui/.next/standalone/packages/webui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/webui/.next/standalone/packages/webui/.next/server/app/chat/[sessionId]/page.js +1 -1
- package/dist/webui/.next/standalone/packages/webui/.next/server/app/chat/[sessionId]/page.js.nft.json +1 -1
- package/dist/webui/.next/standalone/packages/webui/.next/server/app/chat/[sessionId]/page_client-reference-manifest.js +1 -1
- package/dist/webui/.next/standalone/packages/webui/.next/server/app/page.js +1 -1
- package/dist/webui/.next/standalone/packages/webui/.next/server/app/page.js.nft.json +1 -1
- package/dist/webui/.next/standalone/packages/webui/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/webui/.next/standalone/packages/webui/.next/server/app/playground/page.js +4 -8
- package/dist/webui/.next/standalone/packages/webui/.next/server/app/playground/page.js.nft.json +1 -1
- package/dist/webui/.next/standalone/packages/webui/.next/server/app/playground/page_client-reference-manifest.js +1 -1
- package/dist/webui/.next/standalone/packages/webui/.next/server/chunks/1.js +5 -5
- package/dist/webui/.next/standalone/packages/webui/.next/server/chunks/102.js +25 -0
- package/dist/webui/.next/standalone/packages/webui/.next/server/chunks/383.js +1 -0
- package/dist/webui/.next/standalone/packages/webui/.next/server/chunks/43.js +1 -1
- package/dist/webui/.next/standalone/packages/webui/.next/server/chunks/985.js +5 -0
- package/dist/webui/.next/standalone/packages/webui/.next/server/middleware-build-manifest.js +1 -1
- package/dist/webui/.next/standalone/packages/webui/.next/server/pages/500.html +1 -1
- package/dist/webui/.next/standalone/packages/webui/.next/server/pages-manifest.json +1 -1
- package/dist/webui/.next/standalone/packages/webui/.next/server/server-reference-manifest.json +1 -1
- package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/419-6d449dcb2b056299.js +1 -0
- package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/614-3519f8a6051e0088.js +1 -0
- package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/656-5a9f6405badf66a8.js +25 -0
- package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/{711-76a7d2bf4d6f69e5.js → 765-755286dc586b1a51.js} +1 -1
- package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/804-f40df92a3adffcc0.js +1 -0
- package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/854-232126f3c77e6c0b.js +1 -0
- package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/app/chat/[sessionId]/page-a695b09e6bac5274.js +1 -0
- package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/app/page-d1f127a0cac96246.js +1 -0
- package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/app/playground/page-6f8d2abe76e51dfc.js +1 -0
- package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/main-7decd42f62688419.js +1 -0
- package/dist/webui/.next/standalone/packages/webui/.next/static/css/c3c26ec984df1deb.css +1 -0
- package/dist/webui/.next/standalone/packages/webui/.next/static/uqfH8SY_uhwdc0ZkpMwCO/_buildManifest.js +1 -0
- package/dist/webui/.next/standalone/packages/webui/package.json +5 -1
- package/dist/webui/.next/standalone/packages/webui/server.js +1 -1
- package/dist/webui/.next/static/chunks/419-6d449dcb2b056299.js +1 -0
- package/dist/webui/.next/static/chunks/614-3519f8a6051e0088.js +1 -0
- package/dist/webui/.next/static/chunks/656-5a9f6405badf66a8.js +25 -0
- package/dist/webui/.next/static/chunks/{711-76a7d2bf4d6f69e5.js → 765-755286dc586b1a51.js} +1 -1
- package/dist/webui/.next/static/chunks/804-f40df92a3adffcc0.js +1 -0
- package/dist/webui/.next/static/chunks/854-232126f3c77e6c0b.js +1 -0
- package/dist/webui/.next/static/chunks/app/chat/[sessionId]/page-a695b09e6bac5274.js +1 -0
- package/dist/webui/.next/static/chunks/app/page-d1f127a0cac96246.js +1 -0
- package/dist/webui/.next/static/chunks/app/playground/page-6f8d2abe76e51dfc.js +1 -0
- package/dist/webui/.next/static/chunks/main-7decd42f62688419.js +1 -0
- package/dist/webui/.next/static/css/c3c26ec984df1deb.css +1 -0
- package/dist/webui/.next/static/uqfH8SY_uhwdc0ZkpMwCO/_buildManifest.js +1 -0
- package/dist/webui/package.json +5 -1
- package/package.json +2 -2
- package/dist/webui/.next/standalone/.next/static/VoeDi3iuGmMdZu_kx-R2X/_buildManifest.js +0 -1
- package/dist/webui/.next/standalone/.next/static/chunks/419-5526a47c95a2fa60.js +0 -1
- package/dist/webui/.next/standalone/.next/static/chunks/429-838829c1391e496d.js +0 -25
- package/dist/webui/.next/standalone/.next/static/chunks/459-62011998b002cbf6.js +0 -1
- package/dist/webui/.next/standalone/.next/static/chunks/854-8cad9404fc78e0cc.js +0 -1
- package/dist/webui/.next/standalone/.next/static/chunks/935-07f9df196b13275e.js +0 -1
- package/dist/webui/.next/standalone/.next/static/chunks/app/chat/[sessionId]/page-b8acc47b0d8c5c0a.js +0 -1
- package/dist/webui/.next/standalone/.next/static/chunks/app/page-e117ae372850d25f.js +0 -1
- package/dist/webui/.next/standalone/.next/static/chunks/app/playground/page-09340fb6b3f4caa2.js +0 -1
- package/dist/webui/.next/standalone/.next/static/chunks/main-b65ece3506a2355c.js +0 -1
- package/dist/webui/.next/standalone/.next/static/css/21e6c142ca3cdc42.css +0 -1
- package/dist/webui/.next/standalone/packages/webui/.next/server/chunks/419.js +0 -25
- package/dist/webui/.next/standalone/packages/webui/.next/server/chunks/654.js +0 -1
- package/dist/webui/.next/standalone/packages/webui/.next/server/chunks/71.js +0 -5
- package/dist/webui/.next/standalone/packages/webui/.next/static/VoeDi3iuGmMdZu_kx-R2X/_buildManifest.js +0 -1
- package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/419-5526a47c95a2fa60.js +0 -1
- package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/429-838829c1391e496d.js +0 -25
- package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/459-62011998b002cbf6.js +0 -1
- package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/854-8cad9404fc78e0cc.js +0 -1
- package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/935-07f9df196b13275e.js +0 -1
- package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/app/chat/[sessionId]/page-b8acc47b0d8c5c0a.js +0 -1
- package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/app/page-e117ae372850d25f.js +0 -1
- package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/app/playground/page-09340fb6b3f4caa2.js +0 -1
- package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/main-b65ece3506a2355c.js +0 -1
- package/dist/webui/.next/standalone/packages/webui/.next/static/css/21e6c142ca3cdc42.css +0 -1
- package/dist/webui/.next/static/VoeDi3iuGmMdZu_kx-R2X/_buildManifest.js +0 -1
- package/dist/webui/.next/static/chunks/419-5526a47c95a2fa60.js +0 -1
- package/dist/webui/.next/static/chunks/429-838829c1391e496d.js +0 -25
- package/dist/webui/.next/static/chunks/459-62011998b002cbf6.js +0 -1
- package/dist/webui/.next/static/chunks/854-8cad9404fc78e0cc.js +0 -1
- package/dist/webui/.next/static/chunks/935-07f9df196b13275e.js +0 -1
- package/dist/webui/.next/static/chunks/app/chat/[sessionId]/page-b8acc47b0d8c5c0a.js +0 -1
- package/dist/webui/.next/static/chunks/app/page-e117ae372850d25f.js +0 -1
- package/dist/webui/.next/static/chunks/app/playground/page-09340fb6b3f4caa2.js +0 -1
- package/dist/webui/.next/static/chunks/main-b65ece3506a2355c.js +0 -1
- package/dist/webui/.next/static/css/21e6c142ca3cdc42.css +0 -1
- /package/dist/webui/.next/standalone/.next/static/{VoeDi3iuGmMdZu_kx-R2X → uqfH8SY_uhwdc0ZkpMwCO}/_ssgManifest.js +0 -0
- /package/dist/webui/.next/standalone/packages/webui/.next/static/{VoeDi3iuGmMdZu_kx-R2X → uqfH8SY_uhwdc0ZkpMwCO}/_ssgManifest.js +0 -0
- /package/dist/webui/.next/static/{VoeDi3iuGmMdZu_kx-R2X → uqfH8SY_uhwdc0ZkpMwCO}/_ssgManifest.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[459],{449:(e,t,a)=>{a.d(t,{T:()=>n});var r=a(5801);a(5789);var s=a(6032);function n(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:()=>i});var r=a(5801);a(5789);var s=a(9524),n=a(6032);function i(e){let{className:t,...a}=e;return(0,r.jsx)(s.b,{"data-slot":"label",className:(0,n.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",t),...a})}},3504:(e,t,a)=>{a.d(t,{A:()=>x});var r=a(5801),s=a(5789),n=a(3871),i=a(5315),l=a(7397),o=a(531),d=a(5195),c=a(7159),u=a(113),g=a(4580);function m(e){let{label:t="Key-Value Pairs",placeholder:a={key:"Key",value:"Value"},pairs:s,onChange:n,disabled:d=!1,className:c="",keyLabel:m="Key",valueLabel:p="Value"}=e,v=(e,t,a)=>{n(s.map(r=>r.id===e?{...r,[t]:a}:r))};return(0,r.jsxs)("div",{className:"space-y-3 ".concat(c),children:[t&&(0,r.jsx)(o.J,{className:"text-sm font-medium",children:t}),(0,r.jsxs)("div",{className:"space-y-2",children:[s.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:m}),(0,r.jsx)("div",{className:"col-span-6",children:p}),(0,r.jsx)("div",{className:"col-span-1"})]}),s.map(e=>(0,r.jsxs)("div",{className:"grid grid-cols-12 gap-2 items-center",children:[(0,r.jsx)(l.p,{placeholder:a.key,value:e.key,onChange:t=>v(e.id,"key",t.target.value),disabled:d,className:"col-span-5"}),(0,r.jsx)(l.p,{placeholder:a.value,value:e.value,onChange:t=>v(e.id,"value",t.target.value),disabled:d,className:"col-span-6"}),(0,r.jsx)(i.$,{type:"button",variant:"ghost",size:"sm",onClick:()=>{var t;return t=e.id,void n(s.filter(e=>e.id!==t))},disabled:d,className:"col-span-1 h-8 w-8 p-0",children:(0,r.jsx)(u.A,{className:"h-4 w-4"})})]},e.id))]}),(0,r.jsxs)(i.$,{type:"button",variant:"outline",size:"sm",onClick:()=>{n([...s,{key:"",value:"",id:"kv-".concat(Date.now(),"-").concat(Math.random().toString(36).substring(2,11))}])},disabled:d,className:"w-full mt-2",children:[(0,r.jsx)(g.A,{className:"h-4 w-4 mr-2"}),"Add ",m]})]})}var p=a(4957),v=a(6284);function x(e){let{isOpen:t,onClose:a,onServerConnected:u,initialName:g,initialConfig:x,lockName:f}=e,[h,b]=(0,s.useState)(""),[j,y]=(0,s.useState)("stdio"),[N,w]=(0,s.useState)(""),[k,C]=(0,s.useState)(""),[z,S]=(0,s.useState)(""),[L,A]=(0,s.useState)([]),[T,_]=(0,s.useState)([]),[F,E]=(0,s.useState)(null),[J,M]=(0,s.useState)(!1),[V,P]=(0,s.useState)(!1),q=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(()=>{b(""),y("stdio"),w(""),C(""),S(""),A([]),_([]),E(null),M(!1)},300);return()=>clearTimeout(e)}},[t]),(0,s.useEffect)(()=>{var e,a,r;if(!t)return;b(null!=g?g:"");let s=null!=(e=null==x?void 0:x.type)?e:"stdio";if(y(s),"stdio"===s){let e=null!=x?x:{};w("string"==typeof e.command?e.command:""),C(Array.isArray(e.args)?e.args.join(", "):""),_(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)}})),S(""),A([])}else{let e=null!=x?x:{};S("string"==typeof e.url?e.url:""),A(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)}})),w(""),C(""),_([])}},[t,g,x]);let H=async e=>{let t;if(e.preventDefault(),E(null),M(!0),!h.trim()){E("Server name is required."),M(!1);return}if("stdio"===j){if(!N.trim()){E("Command is required for stdio servers."),M(!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){E("Duplicate environment variables: ".concat(Array.from(new Set(t)).join(", "))),M(!1);return}let a=T.filter(e=>e.key.trim()&&!e.value.trim()).map(e=>e.key.trim());if(a.length){E("Please set required environment variables: ".concat(a.join(", "))),M(!1);return}}}else{if(!z.trim()){E("URL is required for ".concat(j.toUpperCase()," servers.")),M(!1);return}try{new URL(z.trim())}catch(e){E("Invalid URL format for ".concat(j.toUpperCase()," server.")),M(!1);return}}t="stdio"===j?{type:"stdio",command:N.trim(),args:k.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"===j?{type:"sse",url:z.trim(),headers:L.length?q(L):{},timeout:3e4,connectionMode:"lenient"}:{type:"http",url:z.trim(),headers:L.length?q(L):{},timeout:3e4,connectionMode:"lenient"};let r=new AbortController,s=setTimeout(()=>r.abort(),3e4);try{let e=await fetch("/api/mcp/servers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:h.trim(),config:t,persistToAgent:V}),signal:r.signal}),s=await e.json();if(!e.ok){E(s.error||"Server returned status ".concat(e.status)),M(!1);return}(0,p.w)(),u&&u(),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),E(e)}finally{clearTimeout(s),M(!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:H,className:"grid gap-4 py-4",children:[F&&(0,r.jsx)(c.Fc,{variant:"destructive",children:(0,r.jsx)(c.TN,{children:F})}),(0,r.jsxs)("div",{className:"grid grid-cols-4 items-center gap-4",children:[(0,r.jsx)(o.J,{htmlFor:"serverName",className:"text-right",children:"Server Name"}),(0,r.jsx)(l.p,{id:"serverName",value:h,onChange:e=>b(e.target.value),className:"col-span-3",placeholder:"e.g., My Local Tools",required:!0,disabled:J||!!f})]}),(0,r.jsxs)("div",{className:"grid grid-cols-4 items-center gap-4",children:[(0,r.jsx)(o.J,{htmlFor:"serverType",className:"text-right",children:"Server Type"}),(0,r.jsxs)(d.l6,{value:j,onValueChange:e=>y(e),disabled:J,children:[(0,r.jsx)(d.bq,{id:"serverType",className:"col-span-3",children:(0,r.jsx)(d.yv,{placeholder:"Select type"})}),(0,r.jsxs)(d.gC,{children:[(0,r.jsx)(d.eb,{value:"stdio",children:"stdio"}),(0,r.jsx)(d.eb,{value:"sse",children:"sse"}),(0,r.jsx)(d.eb,{value:"http",children:"http"})]})]})]}),"stdio"===j?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"grid grid-cols-4 items-center gap-4",children:[(0,r.jsx)(o.J,{htmlFor:"command",className:"text-right",children:"Command"}),(0,r.jsx)(l.p,{id:"command",value:N,onChange:e=>w(e.target.value),className:"col-span-3",placeholder:"e.g., /path/to/executable or python",required:!0,disabled:J})]}),(0,r.jsxs)("div",{className:"grid grid-cols-4 items-center gap-4",children:[(0,r.jsx)(o.J,{htmlFor:"args",className:"text-right",children:"Arguments"}),(0,r.jsx)(l.p,{id:"args",value:k,onChange:e=>C(e.target.value),className:"col-span-3",placeholder:"Comma-separated, e.g., -m,script.py,--port,8080",disabled:J})]}),(0,r.jsxs)("div",{className:"grid grid-cols-4 items-start gap-4",children:[(0,r.jsx)(o.J,{className:"text-right mt-2",children:"Environment"}),(0,r.jsx)("div",{className:"col-span-3",children:(0,r.jsx)(m,{pairs:T,onChange:_,placeholder:{key:"API_KEY",value:"your-secret-key"},disabled:J,keyLabel:"Variable",valueLabel:"Value"})})]})]}):"sse"===j?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"grid grid-cols-4 items-center gap-4",children:[(0,r.jsx)(o.J,{htmlFor:"url",className:"text-right",children:"URL"}),(0,r.jsx)(l.p,{id:"url",type:"url",value:z,onChange:e=>S(e.target.value),className:"col-span-3",placeholder:"e.g., http://localhost:8000/events",required:!0,disabled:J})]}),(0,r.jsxs)("div",{className:"grid grid-cols-4 items-start gap-4",children:[(0,r.jsx)(o.J,{className:"text-right mt-2",children:"Headers"}),(0,r.jsx)("div",{className:"col-span-3",children:(0,r.jsx)(m,{pairs:L,onChange:A,placeholder:{key:"Authorization",value:"Bearer your-token"},disabled:J,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)(o.J,{htmlFor:"url",className:"text-right",children:"URL"}),(0,r.jsx)(l.p,{id:"url",type:"url",value:z,onChange:e=>S(e.target.value),className:"col-span-3",placeholder:"e.g., http://localhost:8080",required:!0,disabled:J})]}),(0,r.jsxs)("div",{className:"grid grid-cols-4 items-start gap-4",children:[(0,r.jsx)(o.J,{className:"text-right mt-2",children:"Headers"}),(0,r.jsx)("div",{className:"col-span-3",children:(0,r.jsx)(m,{pairs:L,onChange:A,placeholder:{key:"Authorization",value:"Bearer your-token"},disabled:J,keyLabel:"Header",valueLabel:"Value"})})]})]}),(0,r.jsxs)("div",{className:"flex items-center space-x-2 pt-2",children:[(0,r.jsx)(v.S,{id:"persistToAgent",checked:V,onCheckedChange:e=>P(!0===e),disabled:J}),(0,r.jsx)(o.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)(i.$,{type:"button",variant:"outline",disabled:J,children:"Cancel"})}),(0,r.jsx)(i.$,{type:"submit",form:"connectServerForm",disabled:J,children:J?"Connecting...":"Connect"})]})]})})}},3871:(e,t,a)=>{a.d(t,{Cf:()=>g,Es:()=>p,HM:()=>c,L3:()=>v,c7:()=>m,lG:()=>l,rr:()=>x,zM:()=>o});var r=a(5801);a(5789);var s=a(740),n=a(1828),i=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,i.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",t),...a})}function g(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,i.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)(n.A,{}),(0,r.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function m(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"dialog-header",className:(0,i.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,i.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,i.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,i.cn)("text-muted-foreground text-sm",t),...a})}},4957:(e,t,a)=>{a.d(t,{w:()=>l,y:()=>i});let r=null,s=null;async function n(){let e=await fetch("/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 i(e){return((null==e?void 0:e.forceRefresh)&&(r=null),r)?r:(s||(s=n().then(e=>(r=e,e)).finally(()=>{s=null})),s)}function l(){r=null,s=null}},5195:(e,t,a)=>{a.d(t,{bq:()=>u,eb:()=>m,gC:()=>g,l6:()=>d,yv:()=>c});var r=a(5801);a(5789);var s=a(3423),n=a(4590),i=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:i,...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:[i,(0,r.jsx)(s.In,{asChild:!0,children:(0,r.jsx)(n.A,{className:"size-4 opacity-50"})})]})}function g(e){let{className:t,children:a,position:n="popper",...i}=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"===n&&"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:n,...i,children:[(0,r.jsx)(p,{}),(0,r.jsx)(s.LM,{className:(0,o.cn)("p-1","popper"===n&&"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 m(e){let{className:t,children:a,...n}=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),...n,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)(i.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)(n.A,{className:"size-4"})})}},5315:(e,t,a)=>{a.d(t,{$:()=>o});var r=a(5801);a(5789);var s=a(1448),n=a(8012),i=a(6032);let l=(0,n.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:n,asChild:o=!1,...d}=e,c=o?s.DX:"button";return(0,r.jsx)(c,{"data-slot":"button",className:(0,i.cn)(l({variant:a,size:n,className:t})),...d})}},5980:(e,t,a)=>{a.d(t,{E:()=>l});var r=a(5801);a(5789);var s=a(8012),n=a(6032);let i=(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,n.cn)(i({variant:a}),t),...s})}},6032:(e,t,a)=>{a.d(t,{L:()=>i,cn:()=>n});var r=a(9722),s=a(6046);function n(){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 i(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),n=a(9198),i=a(6032);function l(e){let{className:t,...a}=e;return(0,r.jsx)(s.bL,{"data-slot":"checkbox",className:(0,i.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)(n.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),n=a(6032);let i=(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,n.cn)(i({variant:a}),t),...s})}function o(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"alert-title",className:(0,n.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,n.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:()=>n});var r=a(5801);a(5789);var s=a(6032);function n(e){let{className:t,type:a,...n}=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),...n})}}}]);
|
|
@@ -1 +0,0 @@
|
|
|
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:()=>p,PI:()=>f,P2:()=>d,KU:()=>u,Y_:()=>h});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 f(e){return"object"==typeof e&&null!==e&&"type"in e&&"text"===e.type}function p(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 h(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),[f,p]=(0,n.useState)(null),m=(0,n.useRef)(!1),g=(0,n.useRef)(new Map),h=(0,n.useRef)(t);(0,n.useEffect)(()=>{h.current=t},[t]);let v=(0,n.useCallback)(e=>{if(!e)return!1;let t=h.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"),p({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"thinking":if(!v(o.sessionId))return;d(!0),s(e=>[...e,{id:y(),role:"system",content:"Dexto is thinking...",createdAt:Date.now()}]);break;case"chunk":{if(!v(o.sessionId))return;let e="string"==typeof o.content?o.content:"";if(!e)break;let t=o.type;s(o=>{let n=o.filter(e=>"system"!==e.role||"Dexto is thinking..."!==e.content);if("reasoning"===t){let t=n[n.length-1];if(t&&"assistant"===t.role){let o={...t,reasoning:(t.reasoning||"")+e,createdAt:Date.now()};return[...n.slice(0,-1),o]}return[...n,{id:y(),role:"assistant",content:"",reasoning:e,createdAt:Date.now()}]}{let t=n[n.length-1];if(t&&"assistant"===t.role){let o="string"==typeof t.content?t.content:"",r={...t,content:o+e,createdAt:Date.now()};return[...n.slice(0,-1),r]}return[...n,{id:y(),role:"assistant",content:e,createdAt:Date.now()}]}});break}case"response":{if(!v(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.filter(e=>"system"!==e.role||"Dexto is thinking..."!==e.content),c=s[s.length-1];if(c&&"assistant"===c.role){let o="string"==typeof e?e:"",u={...c,content:o,tokenUsage:n,reasoning:t,model:r,provider:a,router:i,createdAt:Date.now(),sessionId:null!=l?l:c.sessionId};return[...s.slice(0,-1),u]}return[...s,{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(!v(o.sessionId))return;d(!1),s([]),a.current=null,g.current.clear();break;case"toolCall":{if(!v(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(!v(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,f=d,p=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(p);f={...t,content:e}}else if(d&&Array.isArray(d.content)){let e=d.content.map(p);f={...d,content:e}}!1===u&&c&&(f=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:f,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(!v(o.sessionId))return;if(d(!1),s(e=>e.filter(e=>"system"!==e.role||"Dexto is thinking..."!==e.content)),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"}}p({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 p({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([]),p(null),a.current=null,g.current.clear(),d(!1)},[]),k=(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},[]),C=(0,n.useCallback)(()=>{p(null)},[]);return{messages:r,status:i,sendMessage:w,reset:b,setMessages:s,websocket:o.current,processing:u,cancel:k,activeError:f,clearError:C}}},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(9752),l=o(9246);let c=(0,r.createContext)(void 0);function u(e){let{children:t}=e,o=(0,s.useRouter)(),u=l.env.NEXT_PUBLIC_WS_URL||"ws://localhost:3001";try{let e=new URL(u);"localhost"===e.hostname&&(e.hostname=window.location.hostname,u=e.toString())}catch(e){console.warn("Invalid WS URL:",u)}let[d,f]=(0,r.useState)(null),[p,m]=(0,r.useState)(!0),[g,y]=(0,r.useState)(!0),[h,v]=(0,r.useState)(!1),[w,b]=(0,r.useState)(!1),{messages:k,sendMessage:C,status:E,reset:S,setMessages:x,websocket:I,activeError:A,clearError:R,processing:T,cancel:N}=(0,a.Y_)(u,()=>d),[D,L]=(0,r.useState)(null),j=(0,r.useCallback)(async e=>{try{let t=void 0!==e?e:d,o=await fetch(t?"/api/llm/current?sessionId=".concat(t):"/api/llm/current");if(o.ok){let e=await o.json(),t=e.config||e;L({provider:t.provider,model:t.model,displayName:t.displayName,router:t.router,baseURL:t.baseURL})}}catch(e){}},[d]);(0,r.useEffect)(()=>{D||j()},[D,j]);let{greeting:U}=function(e){let[t,o]=(0,r.useState)(null),[n,s]=(0,r.useState)(!1),[a,i]=(0,r.useState)(null),[l,c]=(0,r.useState)(0),u=(0,r.useCallback)(async t=>{s(!0),i(null);try{var n;let r=e?"/api/greeting?sessionId=".concat(encodeURIComponent(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),i(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";i(e),console.error("Error fetching greeting: ".concat(e))}finally{s(!1)}},[e]);return(0,r.useEffect)(()=>{let e=new AbortController,{signal:t}=e;return u(t),()=>e.abort()},[u,l]),(0,r.useEffect)(()=>{let e=()=>{c(e=>e+1)};return window.addEventListener("dexto:agentSwitched",e),()=>{window.removeEventListener("dexto:agentSwitched",e)}},[]),{greeting:t,isLoading:n,error:a}}(d),_=(0,r.useCallback)(async()=>{var e;let t,o=await fetch("/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},[]),W=(0,r.useCallback)(async(e,t,n)=>{let r=d;if(!r&&p){if(w)return;try{b(!0),r=await _(),f(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?C(e,t,n,r,g):console.error("No session available for sending message")},[C,d,p,w,_,g,j,o]),O=(0,r.useCallback)(()=>{d&&S(d)},[S,d]),P=(0,r.useCallback)(async e=>{try{let t,o=await fetch("/api/sessions/".concat(e,"/history"));if(!o.ok){if(404===o.status){if(!(await fetch("/api/sessions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionId:e})})).ok)throw Error("Failed to create session");x([]);return}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},l=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,i.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",i=Array.isArray(o.content)?o.content:"string"==typeof o.content?[{type:"text",text:o.content}]:[],c=l(i),u={content:i,...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&&!h){v(!0);try{f(e),m(!1),await P(e),await j(e)}catch(e){throw console.error("Error switching session:",e),e}finally{v(!1)}}},[d,h,P,j]),J=(0,r.useCallback)(()=>{f(null),m(!0),x([]),L(null)},[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;L({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:k,sendMessage:W,status:E,reset:O,currentSessionId:d,switchSession:z,loadSessionHistory:P,isWelcomeState:p,returnToWelcome:J,isStreaming:g,setStreaming:y,websocket:I,currentLLM:D,refreshCurrentLLM:j,processing:T,cancel:N,activeError:A,clearError:R,greeting:U},children:t})}function d(){let e=(0,r.useContext)(c);if(!e)throw Error("useChatContext must be used within a ChatProvider");return e}}}]);
|