Skip to content

feat(skill): beamr-route — pay-per-call inference over x402 with onchain receipt#419

Merged
aaronjmars merged 2 commits into
aaronjmars:mainfrom
SahilParikh03:feat/beamr-route-skill
Jun 12, 2026
Merged

feat(skill): beamr-route — pay-per-call inference over x402 with onchain receipt#419
aaronjmars merged 2 commits into
aaronjmars:mainfrom
SahilParikh03:feat/beamr-route-skill

Conversation

@SahilParikh03

@SahilParikh03 SahilParikh03 commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

What

Adds a new skill, beamr-route, that sends a prompt through a BEAMR inference gateway, pays for that single call in USDC on Base over x402, and reports the answer plus the onchain settlement receipt (tx hash + basescan link).

BEAMR is an OpenAI-compatible router: it classifies the request, routes it to the cheapest capable provider, runs the completion, and settles the exact cost per call via the x402 exact scheme. Where the companion gateway PR routes all of Aeon's traffic through BEAMR silently, this skill is an on-demand task whose output is a verifiable onchain artifact — a natural fit alongside x402-monitor and Aeon's x402 tracking.

What's in it

  • skills/beamr-route/SKILL.md — standard skill flow: input guard → graceful skip when unconfigured → on-demand x402-fetch install → pay+infer → notify (answer + model + basescan link) → log spend to memory.
  • skills/beamr-route/scripts/beamr-pay.mjs — buyer-side x402 client (createSignerwrapFetchWithPayment), emits one JSON line. Per-call spend is capped by BEAMR_MAX_PAY_USDC (default 0.05) — an offer above the cap throws rather than overpaying.
  • Run-step env wiring in aeon.yml + dashboard secret descriptors (BEAMR_GATEWAY_URL, BEAMR_PAYER_KEY).

Safety

Operators are told to use a dedicated, low-balance wallet for BEAMR_PAYER_KEY and keep BEAMR_MAX_PAY_USDC small — like every skill secret it's exposed to the run environment. Skips cleanly when unconfigured.

🤖 Generated with Claude Code

@aaronjmars

Copy link
Copy Markdown
Owner

Hey @SahilParikh03 — same as I noted on #418: putting this one on hold for a bit too, until I've got more context on where BEAMR / the project is heading (this builds on the gateway integration there). Not a reflection on the PR itself — I'll come back to it once I know more. Thanks for the patience. 🙏

@SahilParikh03

Copy link
Copy Markdown
Contributor Author

All good. Thanks for letting me know!

0xShak and others added 2 commits June 12, 2026 10:07
…ain receipt

Adds an on-demand skill that sends a prompt through a BEAMR inference gateway,
pays for that single call in USDC on Base via x402, and reports the answer plus
the settlement tx hash. Unlike the silent gateway path, a run produces a
verifiable onchain artifact (the receipt), which fits Aeon's x402 tracking.

- skills/beamr-route/SKILL.md — input guard, graceful skip when unconfigured,
  on-demand x402-fetch install, pay+infer, notify with answer + basescan link,
  log spend to memory
- skills/beamr-route/scripts/beamr-pay.mjs — buyer-side x402 client
  (createSigner -> wrapFetchWithPayment), emits one JSON line; per-call spend
  capped by BEAMR_MAX_PAY_USDC
- aeon.yml: inject BEAMR_GATEWAY_URL/BEAMR_PAYER_KEY (+ BEAMR_NETWORK/
  BEAMR_MAX_PAY_USDC vars) into the run step
- dashboard: surface the two secrets under Skill Keys

The skill self-guards: with the secrets unset it skips cleanly (exit 0), so it
is inert until an operator opts in with a dedicated low-balance wallet.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Adds beamr-route to the get_category() crypto arm (beside its x402 sibling
x402-monitor) so it surfaces under Crypto & Markets instead of falling through
to "other", and regenerates skills.json to include the skill. Also picks up
ctrl's post-squash sha. Required for the new ci-skills-json gate to pass.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@aaronjmars aaronjmars force-pushed the feat/beamr-route-skill branch from ff51236 to 00f84ca Compare June 12, 2026 14:09
@aaronjmars aaronjmars merged commit f210fb7 into aaronjmars:main Jun 12, 2026
1 check passed
aaronjmars added a commit that referenced this pull request Jun 12, 2026
…anifest (#458)

The ci-skills-json gate (#457) compared the full manifest, including each
skill's git-derived sha/updated. Squash-merging a skill PR rewrites that
skill's commit, so the merged sha goes stale in skills.json until the next
regen — making the gate false-fail the *next*, innocent skills PR.

Normalize sha/updated out of the comparison alongside generated, so the gate
enforces only semantic catalog fields (category/name/description/...) — the
#454/#456 drift class it's meant to catch — and is immune to squash churn.

Also regenerate skills.json to heal the beamr-route sha/updated drift left by
#419's squash merge.

Co-authored-by: aaronjmars <aaronjmars@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.

3 participants