feat(skill): beamr-route — pay-per-call inference over x402 with onchain receipt#419
Merged
aaronjmars merged 2 commits intoJun 12, 2026
Merged
Conversation
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. 🙏 |
Contributor
Author
|
All good. Thanks for letting me know! |
…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>
ff51236 to
00f84ca
Compare
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
exactscheme. 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 alongsidex402-monitorand Aeon's x402 tracking.What's in it
skills/beamr-route/SKILL.md— standard skill flow: input guard → graceful skip when unconfigured → on-demandx402-fetchinstall → pay+infer → notify (answer + model + 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 is capped byBEAMR_MAX_PAY_USDC(default0.05) — an offer above the cap throws rather than overpaying.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_KEYand keepBEAMR_MAX_PAY_USDCsmall — like every skill secret it's exposed to the run environment. Skips cleanly when unconfigured.🤖 Generated with Claude Code