Skip to content

feat(examples): add a mailbox agent on Eve and fix replay conflict handling - #123

Merged
aryasaatvik merged 4 commits into
mainfrom
growth/example-eve
Nov 12, 2026
Merged

aryasaatvik merged 4 commits into
mainfrom
growth/example-eve

Conversation

@aryasaatvik

Copy link
Copy Markdown
Member

What

A fifth agent-framework example: a mailbox agent on Eve, with a cookbook.

  • examples/mailbox-agent-eve: an Eve agent with two tool files, reply_to_customer and leave_for_person, and a local channel, agent/channels/samva.ts. A small relay follows the mailbox event stream and posts each received message to the channel. The message ids travel in channel state, so the tools read them from ctx.channel.metadata and the model supplies only the reply text or the reason.
  • cookbooks/eve.md, and the README lists both.

It runs as two processes, the Eve server and the relay. The README covers starting each.

Checks

  • bun run typecheck, bun run test, bun run lint, bun run format:check pass for the repo.
  • Tests call the tools, the relay, and the channel intake directly with the real Samva client on a mocked transport. Eve has no in-process run for tests, so the model loop is not covered.
  • Runtime check with eve dev: the server boots, the channel returns 401 without the relay token and 202 with it, and a run starts and reaches the model call. No run was completed against a live model, so a tool reading ctx.channel.metadata on a real run is not verified.

@github-actions

Copy link
Copy Markdown
Contributor

Tegami

This repository uses Tegami to manage releases. When your changes affect published packages, add a changelog file under .tegami/ before merging.

Create a changelog → · Changelog format

No changelogs yet

This PR has no pending changelog files. If your changes require a release, add a changelog before merging.

Run bun run tegami locally to create a changelog interactively.

Managed by Tegami.

@aryasaatvik aryasaatvik changed the title feat(examples): add a mailbox agent on Eve feat(examples): add a mailbox agent on Eve and fix replay conflict handling Nov 12, 2026
@greptile-apps

greptile-apps Bot commented Nov 12, 2026 •

Copy link
Copy Markdown

RetriggerView in GreptileConfidence Score: 5/5 Tier: apex

[Medium impact] The PR appears safe to merge, with a non-blocking claim-cache growth issue.

Fix All in CodexFindings

  1. P2 Claims exceed the cache limit ▶

Summary

Adds a runnable Eve mailbox agent with a token-protected channel, two tools, a relay, and a cookbook.

  • Eve starts a mailbox run with the message details kept out of the prompt.
  • Eve can reply to a message or leave it for a person.
  • A relay forwards mailbox events to Eve and saves its place in the stream.
  • Replayed mailbox replies are separated from other conflicts.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Mailbox event stream] --> B[Relay]
    B --> C[Check relay token]
    C --> D[Start event-keyed Eve session]
    D --> E[Agent chooses a tool]
    E --> F[Leave for a person]
    E --> G[Submit reply]
    G --> H[Samva approval flow]
    G --> I[Reply fails]
    I --> J{Known refusal?}
    J -->|Yes| K[Release claim]
    J -->|No| L[Allow reply retry only]
Loading

Reviews (3) · Last reviewed commit: "fix(examples): keep an unknown reply out..." · Reviewed by Greptile

Comment thread examples/mailbox-agent-eve/src/relay.ts Resolved
@aryasaatvik
aryasaatvik merged commit 7211a3e into main Nov 12, 2026
2 checks passed
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