agentinbox-cli 0.1.0-nightly.10 → 0.1.0-nightly.11
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/dist/web/assets/_agentId-B84nfSSl.js +1 -0
- package/dist/web/assets/_app-D3hyZhYk.js +65 -0
- package/dist/web/assets/_app-DKKA242O.js +1 -0
- package/dist/web/assets/_webhookId-BGQyNNxg.js +1 -0
- package/dist/web/assets/account-status-BFOGX5SV.js +1 -0
- package/dist/web/assets/accounts-D8MBeCtW.js +1 -0
- package/dist/web/assets/accounts-list-CYYEQ0ne.js +1 -0
- package/dist/web/assets/{activity-zrckFhPk.js → activity-BLUuahAs.js} +1 -1
- package/dist/web/assets/agent-create-form-DwVChMkA.js +1 -0
- package/dist/web/assets/agents-5UjVypcM.js +1 -0
- package/dist/web/assets/approvals-CBuFnwI5.js +2 -0
- package/dist/web/assets/{arrow-left-DVJV4Zx7.js → arrow-left-D8xucc1r.js} +1 -1
- package/dist/web/assets/{arrow-right-4PFX6MSS.js → arrow-right-DhRNrsgs.js} +1 -1
- package/dist/web/assets/attention-tZT6tzQf.js +1 -0
- package/dist/web/assets/audit-2ewiHPFi.js +1 -0
- package/dist/web/assets/{audit-bits-B1We-fQ3.js → audit-bits-BelfoqL1.js} +1 -1
- package/dist/web/assets/{bot-DVw15lBn.js → bot-OiZnURMn.js} +1 -1
- package/dist/web/assets/card-BDO1I64n.js +1 -0
- package/dist/web/assets/checkbox-GmPrkoUw.js +1 -0
- package/dist/web/assets/chevron-down-NXJmXy-r.js +1 -0
- package/dist/web/assets/chevron-right-B4h8pY71.js +1 -0
- package/dist/web/assets/chips-input-D6bmBebn.js +1 -0
- package/dist/web/assets/choice-cards-CuRsVy_m.js +1 -0
- package/dist/web/assets/{circle-x-Bi4IGwky.js → circle-x-p7eHgV-5.js} +1 -1
- package/dist/web/assets/common-DrM1Mwzz.js +1 -0
- package/dist/web/assets/connect-agent-guide-B52Vmv9K.js +1 -0
- package/dist/web/assets/connect-host-BzdVLkBw.js +1 -0
- package/dist/web/assets/data-table-L10nqo-E.js +1 -0
- package/dist/web/assets/dialog-BxP6Nd7_.js +1 -0
- package/dist/web/assets/dist-D0t-wYZ4.js +1 -0
- package/dist/web/assets/{empty-CE_WZGEC.js → empty-BtPVZxG1.js} +1 -1
- package/dist/web/assets/event-row-BqN0LkGQ.js +1 -0
- package/dist/web/assets/events-BnyFdDJd.js +1 -0
- package/dist/web/assets/{eye-off-DjpaihHf.js → eye-off-CZyueSTe.js} +1 -1
- package/dist/web/assets/{field-CcyMn3ey.js → field-CQ8p4jWV.js} +1 -1
- package/dist/web/assets/get-started-B5p4d45-.js +1 -0
- package/dist/web/assets/globe-T3y1BcXN.js +1 -0
- package/dist/web/assets/grant-editor-xJIdXRXz.js +1 -0
- package/dist/web/assets/grants-65cf2tpC.js +1 -0
- package/dist/web/assets/index-Bgtxd2kT.js +10 -0
- package/dist/web/assets/index-DqlComjO.css +2 -0
- package/dist/web/assets/{input-CMhmmHiH.js → input-D7gX3AnN.js} +1 -1
- package/dist/web/assets/{input-group-DRs3TNaT.js → input-group--cocoRRt.js} +1 -1
- package/dist/web/assets/{key-round-CVIZRCLM.js → key-round-BOdOCZ-v.js} +1 -1
- package/dist/web/assets/label-multi-select-YGmajxiS.js +1 -0
- package/dist/web/assets/{labels-C_Pwium9.js → labels-NC5qakj0.js} +1 -1
- package/dist/web/assets/login-B189BgE9.js +1 -0
- package/dist/web/assets/{mail-CAVmuESo.js → mail-S8ynVqel.js} +1 -1
- package/dist/web/assets/mutations-CrK_dHjN.js +1 -0
- package/dist/web/assets/{paperclip-QFjM4y6n.js → paperclip-CtB5KhFw.js} +1 -1
- package/dist/web/assets/{password-input-_m9Ycphv.js → password-input-CTohT-yQ.js} +1 -1
- package/dist/web/assets/{pencil-Bf1JhsG0.js → pencil-_Bqubp2c.js} +1 -1
- package/dist/web/assets/{play-DiPk49JH.js → play-D8flktq1.js} +1 -1
- package/dist/web/assets/plus-CWffTpRJ.js +1 -0
- package/dist/web/assets/{preload-helper-BFuRUfdt.js → preload-helper-D5-cnlPa.js} +1 -1
- package/dist/web/assets/{progress-3ZOsbLSK.js → progress-Bpra1fcb.js} +2 -2
- package/dist/web/assets/queries-BxLg0RZo.js +42 -0
- package/dist/web/assets/{refresh-cw-DOn9kD7g.js → refresh-cw-CIvW5Kqj.js} +1 -1
- package/dist/web/assets/revealed-keys-Bv4iviE0.js +1 -0
- package/dist/web/assets/{search-gcYjitzV.js → search-QEpoTp6V.js} +1 -1
- package/dist/web/assets/select-CULZqVpx.js +1 -0
- package/dist/web/assets/{send-BhQwhuJo.js → send-hXPeGSRm.js} +1 -1
- package/dist/web/assets/settings-DvT2H98U.js +1 -0
- package/dist/web/assets/settings-form-Npxmo-48.js +1 -0
- package/dist/web/assets/setup-Dv2Jwg6C.js +1 -0
- package/dist/web/assets/sheet-DVsI6wIy.js +1 -0
- package/dist/web/assets/{shield-alert-CbFgd06X.js → shield-alert-CxOKxuwK.js} +1 -1
- package/dist/web/assets/sparkles-dOOQuzbv.js +1 -0
- package/dist/web/assets/{stamp-CH2OvjH2.js → stamp-nrknJt3U.js} +1 -1
- package/dist/web/assets/stream-BslYFQRu.js +1 -0
- package/dist/web/assets/{tag-CP72Kk6Y.js → tag-BkSuXFCL.js} +1 -1
- package/dist/web/assets/terminal-DFMaTA9M.js +1 -0
- package/dist/web/assets/test-connection-CJfCVOun.js +1 -0
- package/dist/web/assets/{textarea-CCokBZIw.js → textarea-bv6G7Gyi.js} +1 -1
- package/dist/web/assets/toggle-group-BITCutvh.js +1 -0
- package/dist/web/assets/{trash-DxdMNg8B.js → trash-C7fJDkrt.js} +1 -1
- package/dist/web/assets/use-label-names-Cu1DP8da.js +1 -0
- package/dist/web/assets/use-sign-out-B17XhNuw.js +1 -0
- package/dist/web/assets/{useInfiniteQuery-DE6WChlb.js → useInfiniteQuery-Boz7XmVv.js} +1 -1
- package/dist/web/assets/useMatch-IXjbdY_b.js +1 -0
- package/dist/web/assets/useQuery-DRAomrvU.js +1 -0
- package/dist/web/assets/{webhook-BWT75M78.js → webhook-CpBtx11Y.js} +1 -1
- package/dist/web/assets/webhook-bits-DsxZ4Q_e.js +1 -0
- package/dist/web/assets/webhook-sheet-BgBsnR5G.js +34 -0
- package/dist/web/assets/webhooks-BXdMFkZM.js +1 -0
- package/dist/web/index.html +7 -10
- package/package.json +1 -1
- package/dist/web/assets/_agentId-DAj08NDq.js +0 -1
- package/dist/web/assets/_app-B6q_HS9y.js +0 -1
- package/dist/web/assets/_app-CAQ6Mu1s.js +0 -63
- package/dist/web/assets/_webhookId-CMgBUN2Z.js +0 -1
- package/dist/web/assets/account-status-omoUlgBI.js +0 -1
- package/dist/web/assets/accounts-DyLfACj_.js +0 -1
- package/dist/web/assets/accounts-list-DiXACW0-.js +0 -1
- package/dist/web/assets/agent-create-form-DKwaY1Dg.js +0 -1
- package/dist/web/assets/agents-Drvjccgt.js +0 -1
- package/dist/web/assets/approvals-4kd0_J8X.js +0 -2
- package/dist/web/assets/audit-76H45orR.js +0 -1
- package/dist/web/assets/card-EQTpqntn.js +0 -1
- package/dist/web/assets/checkbox-DDZZurgK.js +0 -1
- package/dist/web/assets/chevron-down-892ylB4R.js +0 -1
- package/dist/web/assets/chevron-right-CbBKS6-T.js +0 -1
- package/dist/web/assets/chips-input--xgMZpg2.js +0 -1
- package/dist/web/assets/common-PG6weTqi.js +0 -1
- package/dist/web/assets/connect-host-DdkOJnMu.js +0 -1
- package/dist/web/assets/data-table-Ca9aQZKR.js +0 -1
- package/dist/web/assets/dialog-CxNRCZdE.js +0 -1
- package/dist/web/assets/dist-B0e3Ju3r.js +0 -1
- package/dist/web/assets/es2015-DPaldoxG.js +0 -41
- package/dist/web/assets/event-row-2xoyzgbP.js +0 -1
- package/dist/web/assets/events-Bizq3DPC.js +0 -1
- package/dist/web/assets/get-started-DXUVmyNX.js +0 -1
- package/dist/web/assets/grants-BhXj1Pew.js +0 -1
- package/dist/web/assets/index-Bd4Y5wSp.js +0 -10
- package/dist/web/assets/index-akvt_1UI.css +0 -2
- package/dist/web/assets/login-aCr-cPqJ.js +0 -1
- package/dist/web/assets/mutations-DVlbDx0M.js +0 -1
- package/dist/web/assets/plus-CETmK0SB.js +0 -1
- package/dist/web/assets/queries-a3M5_loa.js +0 -2
- package/dist/web/assets/select-C8tJBHb5.js +0 -1
- package/dist/web/assets/settings-H7ExHD9L.js +0 -1
- package/dist/web/assets/settings-form-CNUionsI.js +0 -1
- package/dist/web/assets/setup-DLbH5Dvl.js +0 -1
- package/dist/web/assets/sheet-BQKpA2xa.js +0 -1
- package/dist/web/assets/stream-C2Tr2d5O.js +0 -1
- package/dist/web/assets/tabs-ySiz7Mni.js +0 -1
- package/dist/web/assets/test-connection-Bd2Gac0O.js +0 -1
- package/dist/web/assets/toggle-group-ne0pVDg6.js +0 -1
- package/dist/web/assets/use-sign-out-BuzlTb0Q.js +0 -1
- package/dist/web/assets/useMatch-BKUnm54_.js +0 -1
- package/dist/web/assets/useMutation-DeWvLw1a.js +0 -1
- package/dist/web/assets/useQuery-DAhf1YDH.js +0 -1
- package/dist/web/assets/useSelector-D70eKNYs.js +0 -1
- package/dist/web/assets/webhook-sheet-Cy_jHIqG.js +0 -34
- package/dist/web/assets/webhooks-CTAj5Ovp.js +0 -1
- package/dist/web/assets/with-selector-CkNyXYMW.js +0 -1
- package/dist/web/assets/x-BHjDLXNO.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{St as e,X as t,f as n,n as r,o as i,r as a,t as o,vt as s,yt as c}from"./queries-BxLg0RZo.js";import{t as l}from"./useQuery-DRAomrvU.js";import{t as u}from"./mutations-CrK_dHjN.js";import{r as d}from"./dist-D0t-wYZ4.js";import{t as ee}from"./arrow-left-D8xucc1r.js";import{t as f}from"./arrow-right-DhRNrsgs.js";import{a as p,c as m,i as te,n as h,o as g,r as _}from"./connect-agent-guide-B52Vmv9K.js";import{t as v}from"./chevron-right-B4h8pY71.js";import{i as y,n as b,o as x,r as S,s as C,t as w}from"./card-BDO1I64n.js";import{b as T,d as E,f as D,j as O,s as k,t as ne,u as re}from"./common-DrM1Mwzz.js";import{i as ie,r as ae,t as oe}from"./audit-bits-BelfoqL1.js";import{n as A,t as j}from"./trash-C7fJDkrt.js";import{t as M}from"./eye-off-CZyueSTe.js";import{t as N}from"./grant-editor-xJIdXRXz.js";import{t as P}from"./key-round-BOdOCZ-v.js";import{n as F}from"./accounts-list-CYYEQ0ne.js";import{t as I}from"./pencil-_Bqubp2c.js";import{t as L}from"./plus-CWffTpRJ.js";import{f as R,l as z}from"./grants-65cf2tpC.js";import{a as B,i as V,n as H,o as U,r as W,t as G}from"./dialog-BxP6Nd7_.js";import{a as K,i as q,l as se,t as J}from"./field-CQ8p4jWV.js";import{n as ce}from"./chips-input-D6bmBebn.js";import{A as le,D as ue,E as de,G as fe,O as Y,S as X,k as pe,r as me}from"./index-Bgtxd2kT.js";import{t as he}from"./textarea-bv6G7Gyi.js";import{t as ge}from"./input-D7gX3AnN.js";import{i as _e,n as ve,r as ye}from"./revealed-keys-Bv4iviE0.js";import{n as be,r as xe}from"./webhook-bits-DsxZ4Q_e.js";import{t as Se}from"./test-connection-CJfCVOun.js";var Z=e(c(),1),Q=s();function Ce({agentId:e}){let i=l(r.recentAudit(e)),a=i.data?.items.slice(0,10)??[];return(0,Q.jsxs)(w,{children:[(0,Q.jsxs)(x,{children:[(0,Q.jsx)(C,{children:`Recent activity`}),(0,Q.jsx)(y,{children:`Tool calls this agent made, including anything a guardrail blocked.`}),(0,Q.jsx)(b,{children:(0,Q.jsx)(n,{variant:`ghost`,size:`sm`,asChild:!0,children:(0,Q.jsxs)(t,{to:`/audit`,search:{agentId:e},children:[`Full log `,(0,Q.jsx)(f,{})]})})})]}),(0,Q.jsx)(S,{children:i.isPending?(0,Q.jsx)(`div`,{className:`space-y-2`,children:[0,1,2].map(e=>(0,Q.jsx)(O,{className:`h-8`},e))}):i.isError?(0,Q.jsx)(k,{error:i.error,onRetry:()=>void i.refetch()}):a.length===0?(0,Q.jsx)(`p`,{className:`py-4 text-center text-sm text-muted-foreground`,children:`No activity yet. Calls appear here as soon as the agent uses its key.`}):(0,Q.jsx)(`ul`,{className:`divide-y`,children:a.map(e=>(0,Q.jsxs)(`li`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1 py-2 text-sm`,children:[(0,Q.jsx)(oe,{action:e.action}),(0,Q.jsx)(ie,{outcome:e.outcome}),e.outcome===`denied`&&(0,Q.jsx)(ae,{reason:e.reason}),(0,Q.jsx)(`span`,{className:`ml-auto text-xs text-muted-foreground`,children:(0,Q.jsx)(E,{date:e.ts})})]},e.id))})})]})}function $({agent:e}){let r=d(),[a,s]=(0,Z.useState)(!1),[c,l]=(0,Z.useState)(),f=`/api/agents/${encodeURIComponent(e.id)}`,p=u({mutationFn:e=>i(f,{method:`PATCH`,body:e}),invalidate:[o.agents],success:(e,t)=>t.disabled===void 0?`Agent updated`:t.disabled?`${e.name} disabled`:`${e.name} enabled`,errorTitle:`Couldn't update the agent`}),m=u({mutationFn:()=>i(`${f}/rotate-key`,{method:`POST`}),invalidate:[o.agents],success:`New key created. The old key no longer works.`,errorTitle:!1,onSuccess:t=>{ye(e.id,t.apiKey),l(t)}}),h=u({mutationFn:()=>i(f,{method:`DELETE`}),invalidate:[o.agents,o.webhooks,o.setupState,o.overview],success:`Agent "${e.name}" deleted`,errorTitle:!1,onSuccess:()=>{ve(e.id),r({to:`/agents`})}});return(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[(0,Q.jsx)(n,{variant:`ghost`,size:`sm`,asChild:!0,className:`-ml-2 text-muted-foreground`,children:(0,Q.jsxs)(t,{to:`/agents`,children:[(0,Q.jsx)(ee,{}),` Agents`]})}),(0,Q.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-4`,children:[(0,Q.jsxs)(`div`,{className:`min-w-0 space-y-1`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Q.jsx)(`h1`,{className:`truncate text-2xl font-semibold tracking-tight`,children:e.name}),e.disabled&&(0,Q.jsx)(D,{tone:`idle`,children:`Disabled`})]}),e.description&&(0,Q.jsx)(`p`,{className:`max-w-2xl text-sm text-muted-foreground`,children:e.description}),(0,Q.jsxs)(`div`,{className:`flex flex-wrap gap-x-4 gap-y-1 pt-1 text-xs text-muted-foreground`,children:[(0,Q.jsxs)(`span`,{className:`flex items-center gap-1.5 font-mono`,children:[(0,Q.jsx)(P,{className:`size-3.5`}),` `,e.keyPrefix,`…`]}),(0,Q.jsxs)(`span`,{children:[`Last used `,(0,Q.jsx)(E,{date:e.lastUsedAt,fallback:`never`})]}),(0,Q.jsxs)(`span`,{children:[`Created `,(0,Q.jsx)(E,{date:e.createdAt})]})]})]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(ce,{id:`agent-enabled`,checked:!e.disabled,disabled:p.isPending,onCheckedChange:e=>p.mutate({disabled:!e})}),(0,Q.jsx)(se,{htmlFor:`agent-enabled`,className:`text-sm`,children:e.disabled?`Disabled`:`Enabled`})]}),(0,Q.jsxs)(de,{children:[(0,Q.jsx)(le,{asChild:!0,children:(0,Q.jsx)(n,{variant:`outline`,size:`icon`,"aria-label":`Agent actions`,children:(0,Q.jsx)(A,{})})}),(0,Q.jsxs)(ue,{align:`end`,className:`w-48`,children:[(0,Q.jsxs)(Y,{onSelect:()=>s(!0),children:[(0,Q.jsx)(I,{}),` Edit name & description`]}),(0,Q.jsxs)(Y,{onSelect:()=>X({title:`Rotate this agent's API key?`,description:`A new key is created and the current one stops working immediately. Update the agent's MCP configuration with the new key.`,confirmLabel:`Rotate key`,onConfirm:()=>m.mutateAsync()}),children:[(0,Q.jsx)(fe,{}),` Rotate API key…`]}),(0,Q.jsx)(pe,{}),(0,Q.jsxs)(Y,{variant:`destructive`,onSelect:()=>X({title:`Delete ${e.name}?`,description:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`p`,{children:`Its API key stops working, and its grants and webhooks are deleted. Pending approvals it requested are rejected.`}),(0,Q.jsx)(`p`,{children:`Audit log entries are kept.`})]}),confirmLabel:`Delete agent`,destructive:!0,onConfirm:()=>h.mutateAsync()}),children:[(0,Q.jsx)(j,{}),` Delete agent…`]})]})]})]})]}),e.disabled&&(0,Q.jsx)(`p`,{className:`rounded-lg border border-dashed px-3 py-2 text-sm text-muted-foreground`,children:`This agent is disabled: its key is refused and its webhooks don't fire. Its permissions are kept for when you enable it again.`}),a&&(0,Q.jsx)(we,{agent:e,onOpenChange:s,onSave:e=>p.mutateAsync(e).then(()=>s(!1)),pending:p.isPending}),(0,Q.jsx)(G,{open:!!c,children:(0,Q.jsxs)(H,{className:`max-h-[calc(100svh-2rem)] overflow-y-auto sm:max-w-2xl`,showCloseButton:!1,onInteractOutside:e=>e.preventDefault(),onEscapeKeyDown:e=>e.preventDefault(),children:[(0,Q.jsxs)(B,{children:[(0,Q.jsxs)(U,{children:[`New API key for `,e.name]}),(0,Q.jsx)(W,{children:`The previous key has stopped working. Update your agent's configuration with this one.`})]}),c&&(0,Q.jsx)(te,{res:c}),(0,Q.jsx)(V,{children:(0,Q.jsx)(n,{onClick:()=>l(void 0),children:`I've saved the key`})})]})})]})}function we({agent:e,onOpenChange:t,onSave:r,pending:i}){let[o,s]=(0,Z.useState)(e.name),[c,l]=(0,Z.useState)(e.description??``);return(0,Q.jsx)(G,{open:!0,onOpenChange:t,children:(0,Q.jsx)(H,{children:(0,Q.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),o.trim()&&r({name:o.trim(),description:c.trim()||null}).catch(()=>{})},className:`space-y-4`,children:[(0,Q.jsx)(B,{children:(0,Q.jsx)(U,{children:`Edit agent`})}),(0,Q.jsxs)(q,{children:[(0,Q.jsxs)(J,{children:[(0,Q.jsx)(K,{htmlFor:`edit-name`,children:`Name`}),(0,Q.jsx)(ge,{id:`edit-name`,value:o,onChange:e=>s(e.target.value),"aria-invalid":!o.trim()})]}),(0,Q.jsxs)(J,{children:[(0,Q.jsx)(K,{htmlFor:`edit-desc`,children:`Description`}),(0,Q.jsx)(he,{id:`edit-desc`,rows:3,value:c,onChange:e=>l(e.target.value)})]})]}),(0,Q.jsxs)(V,{children:[(0,Q.jsx)(n,{type:`button`,variant:`ghost`,onClick:()=>t(!1),children:`Cancel`}),(0,Q.jsxs)(n,{type:`submit`,disabled:!o.trim()||i,children:[i&&(0,Q.jsx)(a,{}),` Save`]})]})]})})})}function Te({agent:e}){let t=l(r.settings()),[n,i]=(0,Z.useState)(`claude-code`),[a,o]=(0,Z.useState)(!1),s=t.data?.publicUrl??window.location.origin,c=R(s,n,a),u=[...e.listeners].sort((e,t)=>Number(t.connected)-Number(e.connected));return(0,Q.jsxs)(w,{children:[(0,Q.jsxs)(x,{children:[(0,Q.jsxs)(C,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(m,{className:`size-4 text-muted-foreground`}),` Listeners`]}),(0,Q.jsx)(y,{children:`A listener keeps an outbound connection open from the agent's machine and wakes the agent the moment mail arrives. No open ports or public URL needed on that machine.`})]}),(0,Q.jsxs)(S,{className:`space-y-5`,children:[u.length>0?(0,Q.jsx)(`div`,{className:`overflow-x-auto rounded-lg border`,children:(0,Q.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,Q.jsx)(`thead`,{className:`bg-muted/40 text-left text-xs text-muted-foreground`,children:(0,Q.jsxs)(`tr`,{children:[(0,Q.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:`Status`}),(0,Q.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:`Machine`}),(0,Q.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:`Consumer`}),(0,Q.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:`Last seen`}),(0,Q.jsx)(`th`,{className:`px-3 py-2 text-right font-medium`,children:`Handled up to`})]})}),(0,Q.jsx)(`tbody`,{className:`divide-y`,children:u.map(e=>(0,Q.jsxs)(`tr`,{children:[(0,Q.jsx)(`td`,{className:`px-3 py-2.5 whitespace-nowrap`,children:(0,Q.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(re,{tone:e.connected?`good`:`idle`,pulse:e.connected}),e.connected?`Connected`:`Offline`]})}),(0,Q.jsxs)(`td`,{className:`px-3 py-2.5`,children:[(0,Q.jsx)(`div`,{className:`font-medium`,children:e.client.hostname??`Unknown host`}),(0,Q.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:[e.client.platform,e.client.version&&`CLI ${e.client.version}`].filter(Boolean).join(` · `)||`—`})]}),(0,Q.jsx)(`td`,{className:`px-3 py-2.5 font-mono text-xs`,children:e.consumer}),(0,Q.jsx)(`td`,{className:`px-3 py-2.5 whitespace-nowrap`,children:e.connected?(0,Q.jsx)(`span`,{className:`text-muted-foreground`,children:`now`}):(0,Q.jsx)(E,{date:e.lastSeenAt,fallback:`never`})}),(0,Q.jsx)(`td`,{className:`px-3 py-2.5 text-right whitespace-nowrap text-muted-foreground tabular`,children:e.ackedSeq?`event #${T(e.ackedSeq)}`:`nothing yet`})]},e.consumer))})]})}):(0,Q.jsx)(`p`,{className:`rounded-lg border border-dashed px-3 py-2.5 text-sm text-muted-foreground`,children:`No listener has connected for this agent yet.`}),(0,Q.jsxs)(`div`,{className:`space-y-3`,children:[(0,Q.jsx)(`div`,{className:`text-sm font-medium`,children:u.length?`Add or update a listener`:`Start a listener`}),(0,Q.jsx)(_,{value:n,onChange:i}),(0,Q.jsx)(h,{publicUrl:s,accepted:a,onAcceptedChange:o}),(0,Q.jsx)(ne,{code:c.listen,wrap:!0}),(0,Q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:z[n].note}),(0,Q.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Run it on the machine where this agent was connected with `,(0,Q.jsx)(`code`,{className:`font-mono text-foreground`,children:`npx agentinbox-cli connect`}),`: the listener uses the key that connect saved there. For an agent created here with a copied key, use a webhook instead.`]})]})]})]})}function Ee({agentId:e}){let i=l(r.webhooks(e));return(0,Q.jsxs)(w,{children:[(0,Q.jsxs)(x,{children:[(0,Q.jsx)(C,{children:`Webhooks`}),(0,Q.jsx)(y,{children:`Push mail events to this agent as they happen, instead of it polling for them.`}),(0,Q.jsx)(b,{children:(0,Q.jsx)(n,{variant:`outline`,size:`sm`,asChild:!0,children:(0,Q.jsxs)(t,{to:`/webhooks`,search:{new:e},children:[(0,Q.jsx)(L,{}),` Add webhook`]})})})]}),(0,Q.jsx)(S,{children:i.isPending?(0,Q.jsx)(O,{className:`h-14`}):i.isError?(0,Q.jsx)(k,{error:i.error,onRetry:()=>void i.refetch()}):i.data.length===0?(0,Q.jsxs)(`p`,{className:`py-2 text-sm text-muted-foreground`,children:[`No webhooks. The agent can still pull events with the `,(0,Q.jsx)(`code`,{className:`font-mono text-foreground`,children:`wait_for_events`}),` MCP tool.`]}):(0,Q.jsx)(`ul`,{className:`-mx-2 divide-y`,children:i.data.map(e=>(0,Q.jsx)(`li`,{children:(0,Q.jsxs)(t,{to:`/webhooks/$webhookId`,params:{webhookId:e.id},className:`flex items-center gap-3 rounded-md px-2 py-2.5 outline-none hover:bg-muted/50 focus-visible:ring-2 focus-visible:ring-ring`,children:[(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Q.jsx)(`span`,{className:`truncate text-sm font-medium`,children:e.name}),(0,Q.jsx)(be,{enabled:e.enabled})]}),(0,Q.jsx)(`div`,{className:`truncate font-mono text-xs text-muted-foreground`,children:e.url}),(0,Q.jsx)(xe,{webhook:e})]}),(0,Q.jsx)(v,{className:`size-4 shrink-0 text-muted-foreground`})]})},e.id))})})]})}function De(){let{agentId:e}=me.useParams(),t=l(r.agent(e)),i=l(r.accounts()),a=_e(e),[o,s]=(0,Z.useState)(!1);if(t.isPending)return(0,Q.jsxs)(`div`,{className:`space-y-6`,children:[(0,Q.jsx)(O,{className:`h-16 w-80`}),(0,Q.jsx)(O,{className:`h-40`}),(0,Q.jsx)(O,{className:`h-64`})]});if(t.isError)return(0,Q.jsx)(k,{error:t.error,onRetry:()=>void t.refetch()});let c=t.data;return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)($,{agent:c}),a&&!o&&(0,Q.jsxs)(w,{children:[(0,Q.jsxs)(x,{children:[(0,Q.jsx)(C,{children:`API key`}),(0,Q.jsx)(y,{children:`Visible until you leave or reload this page.`}),(0,Q.jsx)(b,{children:(0,Q.jsxs)(n,{variant:`ghost`,size:`sm`,onClick:()=>s(!0),children:[(0,Q.jsx)(M,{}),` Hide`]})})]}),(0,Q.jsx)(S,{children:(0,Q.jsx)(p,{apiKey:a})})]}),(0,Q.jsxs)(`section`,{className:`space-y-3`,"aria-labelledby":`access-heading`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`h2`,{id:`access-heading`,className:`text-lg font-semibold tracking-tight`,children:`Mailbox access`}),(0,Q.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`What this agent may do in each Gmail account. Guardrails are enforced by agentinbox; the agent can't bypass them.`})]}),i.isPending?(0,Q.jsx)(O,{className:`h-20 rounded-xl`}):i.isError?(0,Q.jsx)(k,{error:i.error,onRetry:()=>void i.refetch()}):i.data.length===0?(0,Q.jsx)(w,{children:(0,Q.jsxs)(S,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,Q.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Connect a Gmail account to give this agent something to work with.`}),(0,Q.jsx)(F,{variant:`outline`})]})}):(0,Q.jsx)(`div`,{className:`space-y-3`,children:i.data.map(e=>(0,Q.jsx)(N,{agentId:c.id,account:e,grant:c.grants.find(t=>t.accountId===e.id),defaultOpen:i.data.length===1},e.id))})]}),(0,Q.jsxs)(w,{children:[(0,Q.jsxs)(x,{children:[(0,Q.jsx)(C,{children:`Give it the tools`}),(0,Q.jsx)(y,{children:`Add agentinbox as an MCP server in your agent with this agent's key, then test the connection. Agents connected by pairing already have this set up.`})]}),(0,Q.jsxs)(S,{className:`space-y-5`,children:[(0,Q.jsx)(g,{apiKey:a}),(0,Q.jsx)(Se,{agentId:c.id})]})]}),(0,Q.jsx)(Te,{agent:c}),(0,Q.jsxs)(`div`,{className:`grid gap-6 lg:grid-cols-2`,children:[(0,Q.jsx)(Ee,{agentId:c.id}),(0,Q.jsx)(Ce,{agentId:c.id})]})]})}export{De as component};
|