Tool Call

Which tool an agent ran, with what and what came back; tools that act outside wait for approval.

Installation

Once per app, set up Aedis UI. The CLI verifies the signed release before writing anything and pins every dependency:

npx @aedis/cli@0.1.0 init

Import the theme once in your global CSS, after Tailwind:

app/globals.css
@import "tailwindcss";@import "./styles/aedis-theme.css";

Then add the component:

npx @aedis/cli@0.1.0 add tool-call# pnpm dlx @aedis/cli@0.1.0 add tool-call · yarn dlx @aedis/cli@0.1.0 add tool-call · bunx @aedis/cli@0.1.0 add tool-call

Props

PropTypeDefaultDescription
name / statusstring / "running" | "done" | "error" | "awaiting-approval"—What ran and where it is.
args / resultunknown—Shown as JSON text after redaction.
external + approvalboolean + { requester; onApprove; onRequestChanges }—A tool that acts outside waits in an ApprovalCard while awaiting approval.
redactKeysstring[]—Replaces the default keys: password, secret, token, authorization, api key, cookie, session, credential…
Reasoningcomponent—children (markdown), streaming, durationMs; starts collapsed, same redaction.
redact(value) / redactText(text)lib—The same redaction for your own views and logs.

Security

  • Arguments and results are rendered as data (escaped JSON in a code block), never as markup.
  • Values under secret-looking keys, bearer tokens, JWTs and key=value secrets are redacted before anything is shown; long values, arrays and depth are bounded.
  • An external tool waiting for approval goes through ApprovalCard, which confirms through an AlertDialog that starts on Cancel.
  • Reasoning starts collapsed and uses the same redaction.