Human-in-the-loop for Eve

Let your Eve agent ask a human on their phone.

Install @pushary/eve and drop pusharyAskHuman() and pusharyConnectPhone() into agent/tools as one-line files. Eve discovers them by filename. When the agent asks a human, Pushary delivers the question to that person's phone and blocks until they approve, deny, or answer. It is fail-closed, and each tool asks the session user by default, so a user-scoped Eve agent reaches its own users.

npm i @pushary/evetwo calls
// agent/tools/ask-human.ts
import { pusharyAskHuman } from "@pushary/eve"
export default pusharyAskHuman()

// agent/tools/connect-phone.ts
import { pusharyConnectPhone } from "@pushary/eve"
export default pusharyConnectPhone()

Why you need it

Eve pauses the agent. Pushary reaches the human.

Eve runs a durable agent and its tools, and a plain tool does not deliver a question to a person or keep a record. @pushary/eve adds both an ask-human tool and a connect-phone tool. Each asks the session principal by default, so a user-scoped Eve agent asks its own end-user, on the phone they carry.

How it works

From ask to resume

Connect the phone once, then ask a human from the tool or step that guards the action. The waiting, the delivery, and the record are handled for you.

  1. 01

    Install the package

    Run npm i @pushary/eve and set PUSHARY_API_KEY.

  2. 02

    Add the tool files

    Create agent/tools/ask-human.ts and agent/tools/connect-phone.ts as one-line default exports. Eve discovers them by filename.

  3. 03

    Run user-scoped auth

    Each tool asks the session principal by default, so run user-scoped auth and every end-user is their own principal. Or bind a fixed user with pusharyAskHuman({ externalId }).

  4. 04

    Act on the decision

    The tool blocks until the person answers and returns a fail-closed result. A declined, expired, or unanswered confirm means the agent does not act.

A decision is a yes or no confirm, a multiple-choice select, or a free-text input. Every one is stored with its outcome and kept in the audit log.

For your users

Your agent asks your users, not just you

Ship the agent to real users and let each of them approve their own decisions from their phone, under your brand.

Your users answer on their own phones

The externalId is your own id for the end-user. Connect their phone once with a keyless one-tap link, and every approval lands with the right person. No account, no app, no key on their side.

Durable, fail-closed waits

The agent stays open on a durable wait backed by a decisions ledger. If nobody answers in the window you set, the decision comes back denied, so a timeout or a restart never turns into an unapproved action.

Phone-first delivery

Pushary reaches the person on the device they carry: native app push first, then PWA push notifications, then Slack if you route it there. You do not build a delivery pipeline.

Signed webhooks and an audit trail

Every decision is written to a durable ledger you can query and export, and resolved decisions post a signed webhook to your callback URL. You have the record of who approved what and when.

FAQ

Questions, answered

Human-in-the-loop for other frameworks

Let your Eve agent ask a human.

Connect a user with one tap, ask a human with one call, and act on a fail-closed decision. The durable store and the audit log come with it.

Partner plan, $99 a month. Your users never see a Pushary login or bill.