PageSourceSearch

https://graphn.ai/assets/VoiceAgentList-Cy44OwDG.js

js graphn.ai collected 2026-10-05 12:57:53 UTC 4,957 bytes, 1 lines download raw bytes

1import{l as P,j as e,L as h}from"./vendor-react-DtC_VEUo.js";import{h as G,d as H,aa as $,v,w as j}from"./Layout-BDeo5r58.js";import{G as z}from"./BrandMark-Di6rZ7LT.js";import{P as D}from"./PageHeader-CuOSlnbz.js";import{L as K}from"./Skeletons-Dzoij9LR.js";import{f,g}from"./utils-CAJzcftR.js";import{u as q,R as O,F as Q}from"./ResourceListToolbar-Ds0M9Snm.js";import{u as U,A as J,H as X,S as i,B as y,f as C,b as n,d as b,T as s,$ as Y,j as k}from"./vendor-mui-DOGRGCPu.js";import"./index-BHcE0VsM.js";import"./auth-redirect-519xYbgh.js";import"./index-BBzAfRJ_.js";import"./frontmatter--9vFRCjG.js";import"./index-BW1YI9Vb.js";import"./button-BKWM_XRB.js";import"./blog-B1140jCW.js";import"./Check.es-yHqOqKZb.js";import"./List.es-BRz05NQr.js";import"./User.es-D95GFoTy.js";import"./lightning-logo-C9q01Enb.js";import"./supportedCodingAgents-1kCjImuc.js";import"./ArrowRight.es-Cj3Au2OZ.js";import"./Play.es-DVCzMQKj.js";import"./modelRates-DUkNloPJ.js";import"./appPaletteStore-C4KZpuNY.js";import"./ArrowLeft.es-Ccga8xeh.js";import"./vendor-posthog-1e9euB4x.js";import"./singleFlight-U_Or92Sz.js";const A={draft:"default",published:"success",archived:"default"};function we(){const r=G(),c=P(),l=U().palette.mode==="dark",{activeWorkspaceId:S}=H(),{data:w,isLoading:_,error:a}=$(S??void 0),d=w?.voiceAgents??[],p=a?a instanceof Error?a.message:"Failed to load voice agents":null,{search:W,setSearch:I,sortKey:L,setSortKey:F,viewMode:m,setViewMode:V,activeFilters:T,setFilter:B,filtered:o,totalCount:x,resultCount:N,hasActiveFilters:E,clearAll:u}=q(d,{name:t=>t.display_name||t.name,description:t=>t.description??t.spec.instructions,createdAt:t=>t.created_at,updatedAt:t=>t.updated_at,filters:{status:{label:"Status",options:["draft","published","archived"],extract:t=>t.status}}});if(_)return e.jsx(K,{});if(p)return e.jsxs(J,{severity:"error",children:[e.jsx(X,{children:"Error loading voice agents"}),p]});function R(t){return e.jsxs(n,{component:h,to:r(`/voice-agents/${t.id}`),variant:"outlined",sx:{...g(l),height:"100%"},children:[e.jsx(Y,{title:e.jsx(s,{variant:"subtitle1",fontWeight:600,children:t.display_name||t.name}),action:e.jsx(k,{label:t.status,color:A[t.status]??"default",size:"small"}),sx:{pb:0}}),e.jsxs(b,{children:[e.jsx(s,{variant:"body2",color:"text.secondary",sx:{display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden"},children:t.description||t.spec.instructions||"No description"}),e.jsxs(i,{direction:"row",gap:1.5,mt:1.5,alignItems:"center",children:[e.jsx(s,{variant:"caption",color:"text.secondary",children:t.spec.model||"model not set"}),t.spec.tts_voice_id&&e.jsxs(s,{variant:"caption",color:"text.secondary",children:["voice: ",t.spec.tts_voice_id]})]}),e.jsxs(s,{variant:"caption",color:"text.secondary",mt:1,display:"block",children:["Updated ",f(t.updated_at)]})]})]},t.id)}function M(t){return e.jsxs(n,{component:h,to:r(`/voice-agents/${t.id}`),variant:"outlined",sx:{...g(l),display:"flex",alignItems:"center",px:2,py:1,gap:2},children:[e.jsx(s,{variant:"subtitle2",fontWeight:600,noWrap:!0,sx:{flex:"1 1 0",minWidth:0},children:t.display_name||t.name}),e.jsx(k,{label:t.status,color:A[t.status]??"default",size:"small"}),e.jsx(s,{variant:"caption",color:"text.secondary",sx:{width:140,textAlign:"right",flexShrink:0},children:t.spec.model||"—"}),e.jsx(s,{variant:"caption",color:"text.secondary",sx:{width:140,textAlign:"right",flexShrink:0},children:f(t.updated_at)})]},t.id)}return e.jsxs(i,{gap:3,children:[e.jsxs(i,{direction:"row",justifyContent:"space-between",alignItems:"center",children:[e.jsx(y,{children:e.jsx(D,{title:"Voice Agents",description:"Build voice-first agents that take live calls"})}),e.jsx(C,{onClick:()=>c(r(""),{state:j("Create a voice agent that ")}),variant:"contained",startIcon:e.jsx(v,{}),children:"New Voice Agent"})]}),d.length===0?e.jsx(n,{variant:"outlined",children:e.jsx(b,{children:e.jsxs(i,{alignItems:"center",py:6,children:[e.jsx(z,{}),e.jsx(s,{variant:"subtitle1",fontWeight:600,mt:2,children:"No voice agents yet"}),e.jsx(s,{variant:"body2",color:"text.secondary",mt:.5,children:"Create your first voice agent to start building voice experiences"}),e.jsx(C,{onClick:()=>c(r(""),{state:j("Create a voice agent that ")}),variant:"contained",startIcon:e.jsx(v,{}),sx:{mt:2},children:"Create Voice Agent"})]})})}):e.jsxs(e.Fragment,{children:[e.jsx(O,{search:W,onSearchChange:I,sortKey:L,onSortChange:F,viewMode:m,onViewModeChange:V,filterGroups:[{key:"status",label:"Status",options:["draft","published","archived"],activeValue:T.status??null,onSet:t=>
1B("status",t)}],resultCount:N,totalCount:x,resourceName:"voice agents",hasActiveFilters:E,onClearAll:u}),o.length===0?e.jsx(Q,{totalCount:x,resourceName:"voice agents",onClearAll:u}):m==="grid"?e.jsx(y,{sx:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(280px, 1fr))",gap:2},children:o.map(R)}):e.jsx(i,{gap:.75,children:o.map(M)})]})]})}export{we as VoiceAgentList};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.