dexto 1.1.10 → 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 +222 -84
- package/dist/agents/agent-registry.json +39 -1
- 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 +44 -2
- package/dist/agents/default-agent.yml +137 -13
- package/dist/agents/github-agent/github-agent.yml +42 -0
- package/dist/agents/image-editor-agent/image-editor-agent.yml +9 -2
- package/dist/agents/music-agent/README.md +1 -1
- package/dist/agents/music-agent/music-agent.yml +36 -2
- package/dist/agents/nano-banana-agent/nano-banana-agent.yml +35 -1
- package/dist/agents/podcast-agent/README.md +1 -1
- package/dist/agents/podcast-agent/podcast-agent.yml +37 -3
- package/dist/agents/product-name-researcher/product-name-researcher.yml +37 -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 +17 -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 +16 -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/mcp/tool-aggregation-handler.d.ts.map +1 -1
- package/dist/api/mcp/tool-aggregation-handler.js +34 -42
- package/dist/api/memory/memory-handler.d.ts +18 -0
- package/dist/api/memory/memory-handler.d.ts.map +1 -0
- package/dist/api/memory/memory-handler.js +137 -0
- package/dist/api/middleware/errorHandler.d.ts.map +1 -1
- package/dist/api/middleware/errorHandler.js +2 -0
- package/dist/api/server.d.ts +2 -2
- package/dist/api/server.d.ts.map +1 -1
- package/dist/api/server.js +1129 -257
- package/dist/api/webhook-subscriber.d.ts.map +1 -1
- package/dist/api/webhook-subscriber.js +2 -1
- package/dist/api/websocket-subscriber.d.ts.map +1 -1
- package/dist/api/websocket-subscriber.js +67 -10
- package/dist/cli/cli-subscriber.d.ts +2 -1
- package/dist/cli/cli-subscriber.d.ts.map +1 -1
- package/dist/cli/cli-subscriber.js +11 -3
- package/dist/cli/cli.d.ts.map +1 -1
- package/dist/cli/cli.js +1 -0
- package/dist/cli/commands/install.d.ts +3 -3
- package/dist/cli/commands/install.d.ts.map +1 -1
- package/dist/cli/commands/install.js +223 -41
- package/dist/cli/commands/interactive-commands/model/model-commands.js +2 -2
- package/dist/cli/commands/interactive-commands/prompt-commands.d.ts +8 -1
- package/dist/cli/commands/interactive-commands/prompt-commands.d.ts.map +1 -1
- package/dist/cli/commands/interactive-commands/prompt-commands.js +252 -4
- package/dist/cli/commands/list-agents.d.ts.map +1 -1
- package/dist/cli/commands/list-agents.js +22 -3
- package/dist/cli/commands/setup.d.ts +4 -4
- package/dist/cli/commands/uninstall.d.ts +1 -1
- package/dist/cli/tool-confirmation/cli-confirmation-handler.d.ts +36 -7
- package/dist/cli/tool-confirmation/cli-confirmation-handler.d.ts.map +1 -1
- package/dist/cli/tool-confirmation/cli-confirmation-handler.js +314 -34
- package/dist/cli/utils/options.js +2 -2
- package/dist/index.js +117 -64
- 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/765-755286dc586b1a51.js +1 -0
- 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/layout-f4a6ee5a028899d1.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/chunks/{webpack-7c234e7e7e272295.js → webpack-7229fd0786f0483c.js} +1 -1
- package/dist/webui/.next/standalone/.next/static/css/c3c26ec984df1deb.css +1 -0
- package/dist/webui/.next/standalone/.next/static/css/de70bee13400563f.css +1 -0
- package/dist/webui/.next/standalone/.next/static/uqfH8SY_uhwdc0ZkpMwCO/_buildManifest.js +1 -0
- package/dist/webui/.next/standalone/package.json +7 -2
- package/dist/webui/.next/standalone/packages/webui/.next/BUILD_ID +1 -1
- package/dist/webui/.next/standalone/packages/webui/.next/app-build-manifest.json +30 -15
- package/dist/webui/.next/standalone/packages/webui/.next/app-path-routes-manifest.json +1 -0
- package/dist/webui/.next/standalone/packages/webui/.next/build-manifest.json +7 -7
- 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 +11 -8
- package/dist/webui/.next/standalone/packages/webui/.next/server/app/_not-found/page.js +1 -1
- package/dist/webui/.next/standalone/packages/webui/.next/server/app/_not-found/page.js.nft.json +1 -1
- 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 +2 -0
- package/dist/webui/.next/standalone/packages/webui/.next/server/app/chat/[sessionId]/page.js.nft.json +1 -0
- package/dist/webui/.next/standalone/packages/webui/.next/server/app/chat/[sessionId]/page_client-reference-manifest.js +1 -0
- package/dist/webui/.next/standalone/packages/webui/.next/server/app/page.js +2 -11
- 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/app-paths-manifest.json +1 -0
- package/dist/webui/.next/standalone/packages/webui/.next/server/chunks/1.js +12 -0
- 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/{619.js → 426.js} +2 -2
- 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/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/765-755286dc586b1a51.js +1 -0
- 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/layout-f4a6ee5a028899d1.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/chunks/{webpack-7c234e7e7e272295.js → webpack-7229fd0786f0483c.js} +1 -1
- package/dist/webui/.next/standalone/packages/webui/.next/static/css/c3c26ec984df1deb.css +1 -0
- package/dist/webui/.next/standalone/packages/webui/.next/static/css/de70bee13400563f.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 +11 -4
- 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/765-755286dc586b1a51.js +1 -0
- 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/layout-f4a6ee5a028899d1.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/chunks/{webpack-7c234e7e7e272295.js → webpack-7229fd0786f0483c.js} +1 -1
- package/dist/webui/.next/static/css/c3c26ec984df1deb.css +1 -0
- package/dist/webui/.next/static/css/de70bee13400563f.css +1 -0
- package/dist/webui/.next/static/uqfH8SY_uhwdc0ZkpMwCO/_buildManifest.js +1 -0
- package/dist/webui/package.json +11 -4
- package/package.json +5 -4
- package/dist/webui/.next/standalone/.next/static/PvkEd_BO6ZXxX99T_gUvs/_buildManifest.js +0 -1
- package/dist/webui/.next/standalone/.next/static/chunks/179-78abc2eacbc41da9.js +0 -1
- package/dist/webui/.next/standalone/.next/static/chunks/442-b1916bec348454b3.js +0 -1
- package/dist/webui/.next/standalone/.next/static/chunks/544-c4a8f278ed1a25d7.js +0 -1
- package/dist/webui/.next/standalone/.next/static/chunks/854-2a6d5a5297a15d52.js +0 -1
- package/dist/webui/.next/standalone/.next/static/chunks/app/layout-dde711766eda096b.js +0 -1
- package/dist/webui/.next/standalone/.next/static/chunks/app/page-5e94d5a49dc718d0.js +0 -1
- package/dist/webui/.next/standalone/.next/static/chunks/app/playground/page-9ae40e0b219583e3.js +0 -1
- package/dist/webui/.next/standalone/.next/static/chunks/main-b65ece3506a2355c.js +0 -1
- package/dist/webui/.next/standalone/.next/static/css/045cc65741e38fbd.css +0 -3
- package/dist/webui/.next/standalone/packages/webui/.next/server/chunks/549.js +0 -1
- package/dist/webui/.next/standalone/packages/webui/.next/server/chunks/950.js +0 -5
- package/dist/webui/.next/standalone/packages/webui/.next/static/PvkEd_BO6ZXxX99T_gUvs/_buildManifest.js +0 -1
- package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/179-78abc2eacbc41da9.js +0 -1
- package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/442-b1916bec348454b3.js +0 -1
- package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/544-c4a8f278ed1a25d7.js +0 -1
- package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/854-2a6d5a5297a15d52.js +0 -1
- package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/app/layout-dde711766eda096b.js +0 -1
- package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/app/page-5e94d5a49dc718d0.js +0 -1
- package/dist/webui/.next/standalone/packages/webui/.next/static/chunks/app/playground/page-9ae40e0b219583e3.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/045cc65741e38fbd.css +0 -3
- package/dist/webui/.next/static/PvkEd_BO6ZXxX99T_gUvs/_buildManifest.js +0 -1
- package/dist/webui/.next/static/chunks/179-78abc2eacbc41da9.js +0 -1
- package/dist/webui/.next/static/chunks/442-b1916bec348454b3.js +0 -1
- package/dist/webui/.next/static/chunks/544-c4a8f278ed1a25d7.js +0 -1
- package/dist/webui/.next/static/chunks/854-2a6d5a5297a15d52.js +0 -1
- package/dist/webui/.next/static/chunks/app/layout-dde711766eda096b.js +0 -1
- package/dist/webui/.next/static/chunks/app/page-5e94d5a49dc718d0.js +0 -1
- package/dist/webui/.next/static/chunks/app/playground/page-9ae40e0b219583e3.js +0 -1
- package/dist/webui/.next/static/chunks/main-b65ece3506a2355c.js +0 -1
- package/dist/webui/.next/static/css/045cc65741e38fbd.css +0 -3
- /package/dist/webui/.next/standalone/.next/static/{PvkEd_BO6ZXxX99T_gUvs → uqfH8SY_uhwdc0ZkpMwCO}/_ssgManifest.js +0 -0
- /package/dist/webui/.next/standalone/packages/webui/.next/static/{PvkEd_BO6ZXxX99T_gUvs → uqfH8SY_uhwdc0ZkpMwCO}/_ssgManifest.js +0 -0
- /package/dist/webui/.next/static/{PvkEd_BO6ZXxX99T_gUvs → uqfH8SY_uhwdc0ZkpMwCO}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
exports.id=43,exports.ids=[43],exports.modules={21842:()=>{},21870:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,97452,23)),Promise.resolve().then(c.t.bind(c,41143,23)),Promise.resolve().then(c.t.bind(c,96731,23)),Promise.resolve().then(c.t.bind(c,61742,23)),Promise.resolve().then(c.t.bind(c,202,23)),Promise.resolve().then(c.t.bind(c,43598,23)),Promise.resolve().then(c.t.bind(c,30670,23)),Promise.resolve().then(c.t.bind(c,68299,23)),Promise.resolve().then(c.t.bind(c,10190,23))},24599:(a,b,c)=>{Promise.resolve().then(c.bind(c,34820)),Promise.resolve().then(c.bind(c,27359))},27359:(a,b,c)=>{"use strict";c.d(b,{SpeechReset:()=>d});let d=(0,c(95364).registerClientReference)(function(){throw Error("Attempted to call SpeechReset() from the server but SpeechReset is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/dexto/dexto/packages/webui/components/ui/speech-reset.tsx","SpeechReset")},34820:(a,b,c)=>{"use strict";c.d(b,{ChatProvider:()=>e});var d=c(95364);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call ChatProvider() from the server but ChatProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/dexto/dexto/packages/webui/components/hooks/ChatContext.tsx","ChatProvider");(0,d.registerClientReference)(function(){throw Error("Attempted to call useChatContext() from the server but useChatContext is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/dexto/dexto/packages/webui/components/hooks/ChatContext.tsx","useChatContext")},52623:(a,b,c)=>{Promise.resolve().then(c.bind(c,64516)),Promise.resolve().then(c.bind(c,63501))},61622:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,28710,23)),Promise.resolve().then(c.t.bind(c,11865,23)),Promise.resolve().then(c.t.bind(c,54401,23)),Promise.resolve().then(c.t.bind(c,11096,23)),Promise.resolve().then(c.t.bind(c,55368,23)),Promise.resolve().then(c.t.bind(c,53612,23)),Promise.resolve().then(c.t.bind(c,88572,23)),Promise.resolve().then(c.t.bind(c,47629,23)),Promise.resolve().then(c.bind(c,74476))},63501:(a,b,c)=>{"use strict";function d(){return null}c.d(b,{SpeechReset:()=>d}),c(4039)},64516:(a,b,c)=>{"use strict";c.d(b,{ChatProvider:()=>h,v:()=>i});var d=c(35270),e=c(4039),f=c(70702);let g=(0,e.createContext)(void 0);function h({children:a}){let b=process.env.NEXT_PUBLIC_WS_URL||"ws://localhost:3001",[c,h]=(0,e.useState)(null),[i,j]=(0,e.useState)(!0),[k,l]=(0,e.useState)(!0),{messages:m,sendMessage:n,status:o,reset:p,setMessages:q,websocket:r,activeError:s,clearError:t,processing:u,cancel:v}=(0,f.Y_)(b,()=>c),[w,x]=(0,e.useState)(null),y=(0,e.useCallback)(async a=>{try{let b=void 0!==a?a:c,d=b?`/api/llm/current?sessionId=${b}`:"/api/llm/current",e=await fetch(d);if(e.ok){let a=await e.json(),b=a.config||a;x({provider:b.provider,model:b.model,displayName:b.displayName,router:b.router,baseURL:b.baseURL})}}catch{}},[c]),{greeting:z}=function(a){let[b,c]=(0,e.useState)(null),[d,f]=(0,e.useState)(!1),[g,h]=(0,e.useState)(null);return{greeting:b,isLoading:d,error:g}}(0),A=(0,e.useCallback)(async()=>{try{let a=await fetch("/api/sessions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({})});if(!a.ok)throw Error("Failed to create session");return(await a.json()).session.id}catch(a){return console.error("Error creating auto session:",a),`chat-${Date.now()}`}},[]),B=(0,e.useCallback)(async(a,b,d)=>{let e=c;!e&&i&&(h(e=await A()),j(!1),await y(e)),e?n(a,b,d,e,k):console.error("No session available for sending message")},[n,c,i,A,k]),C=(0,e.useCallback)(()=>{c&&p(c)},[p,c]),D=(0,e.useCallback)(async a=>{try{let b=await fetch(`/api/sessions/${a}/history`);if(!b.ok){if(404===b.status){if(!(await fetch("/api/sessions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionId:a})})).ok)throw Error("Failed to create session");q([]);return}throw Error("Failed to load session history")}let c=(await b.json()).history||[],d=[];for(let b=0;b<c.length;b++){let e=c[b],f={id:`session-${a}-${b}`,role:e.role,content:e.content,createdAt:Date.now()-(c.length-b)*1e3,sessionId:a,tokenUsage:e.tokenUsage,reasoning:e.reasoning,model:e.model,router:e.router,provider:e.provider};if("assistant"===e.role&&e.toolCalls&&e.toolCalls.length>0)e.content&&d.push(f),e.toolCalls.forEach((e,f)=>{let g,h=e.function?JSON.parse(e.function.arguments||"{}"):{},i=e.function?.name||"unknown";for(let a=b+1;a<c.length;a++){let b=c[a];if("tool"===b.role&&b.toolCallId===e.id){g=b.content;break}}d.push({id:`session-${a}-${b}-tool-${f}`,role:"tool",content:null,createdAt:Date.now()-(c.length-b)*1e3+f,sessionId:a,toolName:i,toolArgs:h,toolResult:g})});else{if("tool"===e.role)continue;d.push(f)}}q(d)}catch(a){console.error("Error loading session history:",a),q([])}},[q,y]),E=(0,e.useCallback)(async a=>{if(a!==c)try{h(a),j(!1),await D(a),await y(a)}catch(a){throw console.error("Error switching session:",a),a}},[c,D]),F=(0,e.useCallback)(()=>{h(null),j(!0),q([]),x(null)},[q]);return(0,d.jsx)(g.Provider,{value:{messages:m,sendMessage:B,status:o,reset:C,currentSessionId:c,switchSession:E,loadSessionHistory:D,isWelcomeState:i,returnToWelcome:F,isStreaming:k,setStreaming:l,websocket:r,currentLLM:w,refreshCurrentLLM:y,processing:u,cancel:v,activeError:s,clearError:t,greeting:z},children:a})}function i(){let a=(0,e.useContext)(g);if(!a)throw Error("useChatContext must be used within a ChatProvider");return a}},70702:(a,b,c)=>{"use strict";c.d(b,{kz:()=>i,EQ:()=>j,j0:()=>h,PI:()=>g,P2:()=>f,KU:()=>e,Y_:()=>l});var d=c(4039);function e(a){return"object"==typeof a&&null!==a&&"error"in a}function f(a){return"object"==typeof a&&null!==a&&"content"in a&&Array.isArray(a.content)}function g(a){return"object"==typeof a&&null!==a&&"type"in a&&"text"===a.type}function h(a){return"object"==typeof a&&null!==a&&"type"in a&&"image"===a.type}function i(a){return"object"==typeof a&&null!==a&&"type"in a&&"audio"===a.type}function j(a){return"object"==typeof a&&null!==a&&"type"in a&&"file"===a.type}let k=()=>`msg-${Date.now()}-${Math.random().toString(36).substring(2,9)}`;function l(a,b){let c=(0,d.useRef)(null),[e,f]=(0,d.useState)([]),g=(0,d.useRef)(null),[h,i]=(0,d.useState)("connecting"),[j,l]=(0,d.useState)(!1),[m,n]=(0,d.useState)(null),o=(0,d.useRef)(!1),p=(0,d.useRef)(b);(0,d.useCallback)(a=>{if(!a)return!1;let b=p.current,c=b?b():null;return!!c&&a===c},[]);let q=(0,d.useCallback)((a,b,d,e,h=!1)=>{if(c.current?.readyState===globalThis.WebSocket.OPEN){c.current.send(JSON.stringify({type:"message",content:a,imageData:b,fileData:d,sessionId:e,stream:h})),l(!0);let i=k();g.current=i,f(c=>[...c,{id:i,role:"user",content:a,createdAt:Date.now(),sessionId:e,imageData:b,fileData:d}])}else n({id:k(),message:"Cannot send message: connection is not open",timestamp:Date.now(),context:"websocket",recoverable:!0})},[]),r=(0,d.useCallback)(a=>{c.current?.readyState===globalThis.WebSocket.OPEN&&c.current.send(JSON.stringify({type:"reset",sessionId:a})),f([]),n(null),g.current=null,l(!1)},[]),s=(0,d.useCallback)(a=>{c.current?.readyState===globalThis.WebSocket.OPEN&&c.current.send(JSON.stringify({type:"cancel",sessionId:a})),l(!1),o.current=!0},[]),t=(0,d.useCallback)(()=>{n(null)},[]);return{messages:e,status:h,sendMessage:q,reset:r,setMessages:f,websocket:c.current,processing:j,cancel:s,activeError:m,clearError:t}}},90981:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>m,metadata:()=>l});var d=c(21824),e=c(99741),f=c.n(e),g=c(42829),h=c.n(g);c(21842);var i=c(34820),j=c(27359),k=c(85972);let l={title:{default:"Dexto Web UI",template:"%s \xb7 Dexto"},description:"Interactive playground for testing MCP tools and talking to AI agents",icons:{icon:[{url:"/logos/dexto/dexto_logo_icon.svg",type:"image/svg+xml"}],shortcut:[{url:"/logos/dexto/dexto_logo_icon.svg",type:"image/svg+xml"}],apple:[{url:"/logos/dexto/dexto_logo_icon.svg",type:"image/svg+xml"}]},openGraph:{title:"Dexto",description:"Interactive playground for testing MCP tools and talking to AI agents",type:"website"},twitter:{card:"summary",title:"Dexto",description:"Interactive playground for testing MCP tools and talking to AI agents"}};async function m({children:a}){let b=await (0,k.UL)(),c=b.get("theme")?.value;return(0,d.jsx)("html",{lang:"en",className:c&&"dark"!==c?"":"dark",children:(0,d.jsx)("body",{className:`${f().variable} ${h().variable} antialiased bg-background text-foreground`,children:(0,d.jsxs)(i.ChatProvider,{children:[(0,d.jsx)(j.SpeechReset,{}),(0,d.jsx)("div",{className:"flex h-screen w-screen flex-col",children:a})]})})})}}};
|
|
1
|
+
exports.id=43,exports.ids=[43],exports.modules={21842:()=>{},21870:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,97452,23)),Promise.resolve().then(c.t.bind(c,41143,23)),Promise.resolve().then(c.t.bind(c,96731,23)),Promise.resolve().then(c.t.bind(c,61742,23)),Promise.resolve().then(c.t.bind(c,202,23)),Promise.resolve().then(c.t.bind(c,43598,23)),Promise.resolve().then(c.t.bind(c,30670,23)),Promise.resolve().then(c.t.bind(c,68299,23)),Promise.resolve().then(c.t.bind(c,10190,23))},24599:(a,b,c)=>{Promise.resolve().then(c.bind(c,34820)),Promise.resolve().then(c.bind(c,27359))},27359:(a,b,c)=>{"use strict";c.d(b,{SpeechReset:()=>d});let d=(0,c(95364).registerClientReference)(function(){throw Error("Attempted to call SpeechReset() from the server but SpeechReset is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/dexto/dexto/packages/webui/components/ui/speech-reset.tsx","SpeechReset")},33671:(a,b,c)=>{"use strict";function d(){return"http://localhost:3001"}function e(){return"ws://localhost:3001"}c.d(b,{e:()=>d,m:()=>e})},34820:(a,b,c)=>{"use strict";c.d(b,{ChatProvider:()=>e});var d=c(95364);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call ChatProvider() from the server but ChatProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/dexto/dexto/packages/webui/components/hooks/ChatContext.tsx","ChatProvider");(0,d.registerClientReference)(function(){throw Error("Attempted to call useChatContext() from the server but useChatContext is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/dexto/dexto/packages/webui/components/hooks/ChatContext.tsx","useChatContext")},52623:(a,b,c)=>{Promise.resolve().then(c.bind(c,64516)),Promise.resolve().then(c.bind(c,63501))},61622:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,28710,23)),Promise.resolve().then(c.t.bind(c,11865,23)),Promise.resolve().then(c.t.bind(c,54401,23)),Promise.resolve().then(c.t.bind(c,11096,23)),Promise.resolve().then(c.t.bind(c,55368,23)),Promise.resolve().then(c.t.bind(c,53612,23)),Promise.resolve().then(c.t.bind(c,88572,23)),Promise.resolve().then(c.t.bind(c,47629,23)),Promise.resolve().then(c.bind(c,74476))},63501:(a,b,c)=>{"use strict";function d(){return null}c.d(b,{SpeechReset:()=>d}),c(4039)},64516:(a,b,c)=>{"use strict";c.d(b,{ChatProvider:()=>k,v:()=>l});var d=c(35270),e=c(4039),f=c(76112),g=c(70702),h=c(33671),i=c(77836);let j=(0,e.createContext)(void 0);function k({children:a}){let b=(0,f.useRouter)(),c=(0,h.m)(),[k,l]=(0,e.useState)(null),[m,n]=(0,e.useState)(!0),[o,p]=(0,e.useState)(!0),[q,r]=(0,e.useState)(!1),[s,t]=(0,e.useState)(!1),{messages:u,sendMessage:v,status:w,reset:x,setMessages:y,websocket:z,activeError:A,clearError:B,processing:C,cancel:D}=(0,g.Y_)(c,()=>k),[E,F]=(0,e.useState)(null),G=(0,e.useCallback)(async a=>{try{let b=void 0!==a?a:k,c=b?`${(0,h.e)()}/api/llm/current?sessionId=${b}`:`${(0,h.e)()}/api/llm/current`,d=await fetch(c);if(d.ok){let a=await d.json(),b=a.config||a;F({provider:b.provider,model:b.model,displayName:b.displayName,router:b.router,baseURL:b.baseURL})}}catch{}},[k]),{greeting:H}=function(a){let[b,c]=(0,e.useState)(null),[d,f]=(0,e.useState)(!1),[g,i]=(0,e.useState)(null),[j,k]=(0,e.useState)(0);return(0,e.useCallback)(async b=>{f(!0),i(null);try{let d=a?`${(0,h.e)()}/api/greeting?sessionId=${encodeURIComponent(a)}`:`${(0,h.e)()}/api/greeting`,e=await fetch(d,{signal:b});if(!e.ok){let a=`Failed to fetch greeting: HTTP ${e.status} ${e.statusText}`;c(null),i(a);return}let f=await e.json();c(f.greeting??null)}catch(b){if(b?.name==="AbortError")return;let a=b instanceof Error?b.message:"Failed to fetch greeting";i(a),console.error(`Error fetching greeting: ${a}`)}finally{f(!1)}},[a]),{greeting:b,isLoading:d,error:g}}(k),I=(0,e.useCallback)(async()=>{let a,b=await fetch(`${(0,h.e)()}/api/sessions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({})});if(!b.ok)throw Error(`Failed to create session: ${b.status} ${b.statusText}`);let c=await b.text();if(!c.trim())throw Error("Empty response from session creation");try{a=JSON.parse(c)}catch(a){throw console.error("Failed to parse session creation response:",a),Error("Invalid response from session creation")}if(!a.session?.id)throw Error("Session ID not found in server response");return a.session.id},[]),J=(0,e.useCallback)(async(a,c,d)=>{let e=k;if(!e&&m){if(s)return;try{t(!0),e=await I(),l(e),n(!1),b.replace(`/chat/${e}`),await G(e)}catch(a){console.error("Failed to create session:",a);return}finally{t(!1)}}e?v(a,c,d,e,o):console.error("No session available for sending message")},[v,k,m,s,I,o,G,b]),K=(0,e.useCallback)(()=>{k&&x(k)},[x,k]),L=(0,e.useCallback)(async a=>{try{let b,c=await fetch(`${(0,h.e)()}/api/sessions/${a}/history`);if(!c.ok){if(404===c.status)return void y([]);throw Error("Failed to load session history")}let d=await c.text();if(!d.trim())return void y(b=>b.some(b=>b.sessionId===a)?b:[]);try{b=JSON.parse(d)}catch(a){console.error("Failed to parse session history response:",a),y([]);return}let e=b.history||[],f=[],g=new Map;for(let b=0;b<e.length;b++){let c=e[b],d={id:`session-${a}-${b}`,role:c.role,content:c.content,createdAt:Date.now()-(e.length-b)*1e3,sessionId:a,tokenUsage:c.tokenUsage,reasoning:c.reasoning,model:c.model,router:c.router,provider:c.provider},h=a=>{let b=[];for(let c of a){if("image"===c.type&&"string"==typeof c.image&&c.image.startsWith("@blob:")){let a=c.image.substring(1);b.push({uri:a,kind:"image",mimeType:c.mimeType??"image/jpeg"})}if("file"===c.type&&"string"==typeof c.data&&c.data.startsWith("@blob:")){let a=c.data.substring(1),d=c.mimeType??"application/octet-stream",e=(0,i.h)(d);b.push({uri:a,kind:e,mimeType:d,...c.filename?{filename:c.filename}:{}})}}return b.length>0?b:void 0};if("assistant"===c.role){c.content&&f.push(d),c.toolCalls&&c.toolCalls.length>0&&c.toolCalls.forEach((c,d)=>{let h={};if(c?.function)try{h=JSON.parse(c.function.arguments||"{}")}catch(a){console.warn(`Failed to parse toolCall arguments for ${c.function?.name||"unknown"}: ${a}`),h={}}let i=c.function?.name||"unknown",j={id:`session-${a}-${b}-tool-${d}`,role:"tool",content:null,createdAt:Date.now()-(e.length-b)*1e3+d,sessionId:a,toolName:i,toolArgs:h,toolResult:void 0,toolResultMeta:void 0,toolResultSuccess:void 0};"string"==typeof c.id&&c.id.length>0&&g.set(c.id,f.length),f.push(j)});continue}if("tool"===c.role){let a="string"==typeof c.toolCallId?c.toolCallId:void 0,e="string"==typeof c.name?c.name:"unknown",i=Array.isArray(c.content)?c.content:"string"==typeof c.content?[{type:"text",text:c.content}]:[],j=h(i),k={content:i,...j?{resources:j}:{},meta:{toolName:e,toolCallId:a??`tool-${b}`,..."boolean"==typeof c.success?{success:c.success}:{}}};if(a&&g.has(a)){let b=g.get(a);f[b]={...f[b],toolResult:k,toolResultMeta:k.meta,toolResultSuccess:"boolean"==typeof c.success?c.success:void 0}}else f.push({...d,role:"tool",content:null,toolName:e,toolArgs:"object"==typeof c.args?c.args:void 0,toolResult:k,toolResultMeta:k.meta,toolResultSuccess:"boolean"==typeof c.success?c.success:void 0});continue}f.push(d)}y(b=>b.some(b=>b.sessionId===a)?b:f)}catch(a){console.error("Error loading session history:",a),y([])}},[y,G]),M=(0,e.useCallback)(async a=>{if(a!==k&&!q){r(!0);try{l(a),n(!1),await L(a),await G(a)}catch(a){throw console.error("Error switching session:",a),a}finally{r(!1)}}},[k,q,L,G]),N=(0,e.useCallback)(()=>{l(null),n(!0),y([])},[y]);return(0,d.jsx)(j.Provider,{value:{messages:u,sendMessage:J,status:w,reset:K,currentSessionId:k,switchSession:M,loadSessionHistory:L,isWelcomeState:m,returnToWelcome:N,isStreaming:o,setStreaming:p,websocket:z,currentLLM:E,refreshCurrentLLM:G,processing:C,cancel:D,activeError:A,clearError:B,greeting:H},children:a})}function l(){let a=(0,e.useContext)(j);if(!a)throw Error("useChatContext must be used within a ChatProvider");return a}},70702:(a,b,c)=>{"use strict";c.d(b,{kz:()=>i,EQ:()=>j,j0:()=>h,PI:()=>g,P2:()=>f,KU:()=>e,Y_:()=>l});var d=c(4039);function e(a){return"object"==typeof a&&null!==a&&"error"in a}function f(a){return"object"==typeof a&&null!==a&&"content"in a&&Array.isArray(a.content)}function g(a){return"object"==typeof a&&null!==a&&"type"in a&&"text"===a.type}function h(a){return"object"==typeof a&&null!==a&&"type"in a&&"image"===a.type}function i(a){return"object"==typeof a&&null!==a&&"type"in a&&"audio"===a.type}function j(a){return"object"==typeof a&&null!==a&&"type"in a&&"file"===a.type}let k=()=>`msg-${Date.now()}-${Math.random().toString(36).substring(2,9)}`;function l(a,b){let c=(0,d.useRef)(null),[e,f]=(0,d.useState)([]),g=(0,d.useRef)(null),[h,i]=(0,d.useState)("connecting"),[j,l]=(0,d.useState)(!1),[m,n]=(0,d.useState)(null),o=(0,d.useRef)(!1),p=(0,d.useRef)(new Map),q=(0,d.useRef)(b);(0,d.useCallback)(a=>{if(!a)return!1;let b=q.current,c=b?b():null;return!!c&&a===c},[]);let r=(0,d.useCallback)((a,b,d,e,h=!1)=>{if(c.current?.readyState===globalThis.WebSocket.OPEN){c.current.send(JSON.stringify({type:"message",content:a,imageData:b,fileData:d,sessionId:e,stream:h})),l(!0);let i=k();g.current=i,f(c=>[...c,{id:i,role:"user",content:a,createdAt:Date.now(),sessionId:e,imageData:b,fileData:d}])}else n({id:k(),message:"Cannot send message: connection is not open",timestamp:Date.now(),context:"websocket",recoverable:!0})},[]),s=(0,d.useCallback)(a=>{c.current?.readyState===globalThis.WebSocket.OPEN&&c.current.send(JSON.stringify({type:"reset",sessionId:a})),f([]),n(null),g.current=null,p.current.clear(),l(!1)},[]),t=(0,d.useCallback)(a=>{c.current?.readyState===globalThis.WebSocket.OPEN&&c.current.send(JSON.stringify({type:"cancel",sessionId:a})),l(!1),p.current.clear(),o.current=!0},[]),u=(0,d.useCallback)(()=>{n(null)},[]);return{messages:e,status:h,sendMessage:r,reset:s,setMessages:f,websocket:c.current,processing:j,cancel:t,activeError:m,clearError:u}}},77836:(a,b,c)=>{"use strict";function d(a){return a?.startsWith("audio/")?"audio":a?.startsWith("video/")?"video":"binary"}function e(a){return a?.startsWith("image/")?"image":a?.startsWith("audio/")?"audio":a?.startsWith("video/")?"video":"binary"}c.d(b,{h:()=>e,t:()=>d})},90981:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>m,metadata:()=>l});var d=c(21824),e=c(99741),f=c.n(e),g=c(42829),h=c.n(g);c(21842);var i=c(34820),j=c(27359),k=c(85972);let l={title:{default:"Dexto Web UI",template:"%s \xb7 Dexto"},description:"Interactive playground for testing MCP tools and talking to AI agents",icons:{icon:[{url:"/logos/dexto/dexto_logo_icon.svg",type:"image/svg+xml"}],shortcut:[{url:"/logos/dexto/dexto_logo_icon.svg",type:"image/svg+xml"}],apple:[{url:"/logos/dexto/dexto_logo_icon.svg",type:"image/svg+xml"}]},openGraph:{title:"Dexto",description:"Interactive playground for testing MCP tools and talking to AI agents",type:"website"},twitter:{card:"summary",title:"Dexto",description:"Interactive playground for testing MCP tools and talking to AI agents"},other:{"color-scheme":"light dark"}};async function m({children:a}){let b=await (0,k.UL)(),c=b.get("theme")?.value,e=process.env.API_PORT;return(0,d.jsxs)("html",{lang:"en",className:c&&"dark"!==c?"":"dark",children:[(0,d.jsx)("head",{children:e&&(0,d.jsx)("script",{dangerouslySetInnerHTML:{__html:`window.__DEXTO_API_PORT__ = ${JSON.stringify(e)};`}})}),(0,d.jsx)("body",{className:`${f().variable} ${h().variable} antialiased bg-background text-foreground`,children:(0,d.jsxs)(i.ChatProvider,{children:[(0,d.jsx)(j.SpeechReset,{}),(0,d.jsx)("div",{className:"flex h-screen w-screen flex-col supports-[height:100svh]:h-[100svh] supports-[height:100dvh]:h-[100dvh]",children:a})]})})]})}}};
|