Skip to content

honesty(agent-builder): tag 15 of 20 tool options as DEMO#218

Merged
operatoruplift merged 1 commit intomasterfrom
honesty/agent-builder-tools
Apr 28, 2026
Merged

honesty(agent-builder): tag 15 of 20 tool options as DEMO#218
operatoruplift merged 1 commit intomasterfrom
honesty/agent-builder-tools

Conversation

@operatoruplift
Copy link
Copy Markdown
Owner

Summary

The /agents/builder wizard step 3 (Tools) presented 20 tools the user could attach to a custom agent. The grid was uniform — every option looked equally available and selectable.

Reality: only 5 of these have a backing /api/tools/* route the agent runtime can actually call: web-search, memory, email/gmail, calendar, x402.

Selecting any of the other 14 saved an entry to the agent's tool list that the runtime would never invoke. A user could ship an agent claiming "Slack + Notion + Database" that secretly couldn't do any of those.

Three changes:

  1. TOOLS list gains a live: boolean field. 5 marked live (web-search, memory, email, calendar, x402), 14 marked demo. Drop the oro-grail row entirely (the API was retired in honesty: retire /api/risk + /api/gold (returned fabricated demo data) #209). Add a tokens row (live, the existing /api/tools/tokens route).
  2. Each tool tile renders a small DEMO badge when live=false and gets opacity-70 so the visual hierarchy matches the truth.
  3. Comment block above TOOLS spells out the contract: stay aligned with /integrations and the toolCalls router; never mark live: true without a working /api/tools/* route.

Pure UI disclosure — no behavior change. Selecting demo tools still works (writes to the agent's localStorage entry); the user just sees the badge before they pick.

Test plan

  • pnpm exec tsc --noEmit clean
  • pnpm build passes
  • pnpm check passes
  • CI green

The /agents/builder wizard step 3 (Tools) presented 20 tools the user
could attach to a custom agent: Web Search, Web Scraper, Code Executor,
File System, Memory Bank, Database, HTTP/API, GitHub, Shell, Code
Search, Email, Calendar, Slack, Notion, Solana, Oro GRAIL, DD.xyz Risk,
x402, Image Gen, Voice. The grid was uniform — every option looked
equally available and selectable.

Reality: only 5 of these have a backing /api/tools/* route the agent
runtime can actually call (web-search, memory, email/gmail, calendar,
x402). Selecting any of the other 15 saved an entry to the agent's
tool list that the runtime would never invoke, because no router
exists. A user could ship an agent claiming "Slack + Notion + Database"
that secretly couldn't do any of those.

Three changes:

1. TOOLS list gains a `live: boolean` field. 5 marked live (web-search,
   memory, email, calendar, x402), 14 marked demo. Drop the 'oro-grail'
   row entirely (the API was retired in #209). Add a 'tokens' row
   (live, the existing /api/tools/tokens route).

2. Each tool tile renders a small DEMO badge when `live=false` and
   gets `opacity-70` so the visual hierarchy matches the truth.

3. Comment block above TOOLS spells out the contract: stay aligned
   with /integrations and the toolCalls router; never mark `live: true`
   without a working /api/tools/* route.

Pure UI disclosure — no behavior change. Selecting demo tools still
works (writes to the agent's localStorage entry); the user just sees
the badge before they pick.
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 28, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
website Ready Ready Preview, Comment Apr 28, 2026 8:14am

@operatoruplift operatoruplift merged commit 6b1cf23 into master Apr 28, 2026
4 checks passed
operatoruplift added a commit that referenced this pull request Apr 28, 2026
…closures (#220)

Two new specs in dashboard-honesty.spec.ts that prevent the recent
honesty fixes from silently regressing:

1. /agents/builder Tools step
   - Walks the wizard: pick General Assistant -> name + description ->
     Tools step
   - Asserts the four most-recognizable stub tools (Slack, Notion,
     GitHub, Database) are still present
   - Counts DEMO badges on the page; requires >= 5 (we marked 14 stubs
     in #218; 5 is a defensive lower bound that protects the contract
     without being brittle to category copy edits)

2. /settings API Keys section
   - Navigates to the API tab
   - Asserts the disclosure copy or DEMO badge is visible (regex
     matches several phrasings so a future copy edit doesn't break it)
   - Asserts the retired "expires in 30 days" wording is absent

Hermetic spec count stays at 17 — these are tests added to the existing
dashboard-honesty file that's already in the CI list.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant