Approval Gate Starter

Refunds always need Slack approval; service restarts use once(). Tool bodies log only — swap in real actions.

View GitHub
Version
1.0.0
License
MIT
Category
Starters
Authored files
15
Shadcn Icon

Install with shadcn

Drops the full agent into your Eve project — same CLI as UI blocks.

First time? Add the @evedirectory registry

Or paste the URL template into components.json under registries. See the install guide.

Raw item: /r/approval-gate-starter.json

Filesystem

Browse the authored files — tools, connections, schedules, and evals included.

agent/instructions.mdmarkdown
# IdentityYou are an ops bot with two gated actions:- `issue_refund` — **always** requires approval (every call).- `restart_service` — **once** requires approval (first call in the session; later restarts of any service auto-allow).# WorkflowWhen asked to refund something:1. Collect `chargeId`, `amountCents`, and a short `reason` if missing.2. Call `issue_refund` immediately. Do **not** ask for permission in chat — the approval gate is the permission step.3. Report the outcome in one short sentence.When asked to restart a service:1. Collect `service` name and `reason`.2. Call `restart_service` immediately (same rule — no chat permission ask).3. Report the outcome.# Rules- Never claim success without a successful tool result.- Never work around the gates.- Keep chat replies brief; Slack shows approval cards separately.

Set up integrations

Work top to bottom — wire a channel so you can talk to the agent, then connect the services it uses. Every step is here; no need to leave the directory.

Channels

1

Where the agent listens and replies. Wire at least one channel first so you can talk to it.

Slack

Mention your agent in channels and DMs, with Connect-managed auth.

Install

The eve CLI scaffolds the channel for you. `eve channels add slack` writes `agent/channels/slack.ts`, adds `@vercel/connect`, and runs the Connect setup flow:

eve channels add slack

To wire it up by hand instead, install the framework and the Connect SDK. Slack channels use Vercel Connect for both the outbound bot token and inbound webhook verification:

npm install eve@latest @vercel/connect

Quick start

Create `agent/channels/slack.ts`. The channel name is derived from the filename, so no `name` field is needed:

// agent/channels/slack.tsimport { slackChannel } from "eve/channels/slack";import { connectSlackCredentials } from "@vercel/connect/eve";export default slackChannel({  credentials: connectSlackCredentials("slack/my-agent"),});

Link the project and pull OIDC env vars so Connect can authenticate locally:

vercel linkvercel env pull

Configure

Create a Slack Connect client and copy its UID (for example `slack/my-agent`), then attach this project as the webhook trigger destination at the route eve serves (`/eve/v1/slack`):

vercel connect create slack --triggers

The channel handles mentions, DMs, typing indicators, delivery, and human-in-the-loop consent with sensible defaults. See the Slack channel docs for customizing each behavior.