yukazakiri/lepton-agent
A lightweight AI agent toolkit for Laravel. Lepton Agent connects your app to LLM providers and offers simple abstractions for tools, conversation memory, and multi-step agent workflows, so you can ship chat and automation features with minimal configuration.
feeLevel placement, signing payloads, Entity Secret handling, webhook key retrieval) that would otherwise be bespoke code your team owns forever. The decision it informs is whether your roadmap needs a stablecoin payout/treasury capability at all — if it does, the alternative is 4–8 weeks of in-house HTTP/signing/webhook plumbing plus its ongoing maintenance.WalletGateway stays at four methods, with wallet management, transfer observation, estimation, webhook verification, and transport behind optional interfaces. That maps cleanly onto a product phasing decision: ship read balances / observe transfers first, add wallet provisioning and webhooks in a later milestone without a rewrite. It also means a read-only feature doesn't inherit a full custody surface area.lepton:transfer --estimate now uses it) plus dry-run that blocks REST signing and mutations gives you a legitimate basis for a confirm-before-send screen with disclosed fees — a feature execs and support teams both ask for, and one that is hard to retrofit.--idempotency-key).UnsupportedOperation instead of a zero balance or placeholder is a UX and incident-response decision: it prevents dashboards, reconcile jobs, and support tooling from displaying a confident wrong number. Worth writing into your acceptance criteria.Amounts rejecting overflow and bad scale, directly de-risks financial reporting, invoice settlement, and reconciliation features where a silent rounding class of bug becomes a customer-facing incident.Consider it when:
Look elsewhere or wait when:
rc.1; the README's production-readiness checklist is the real gate.arc-canteen CLI fallback, mainnet fallback after failure, or the previously permissive request shapes. Those flows need redesign, not a version bump.Lepton facade, artisan commands, and service-provider wiring are the ergonomic value.To executives: This release turns a partially-wired CLI wrapper into a Laravel-native SDK for Circle's USDC infrastructure, which shortens time-to-market for payouts and treasury features by removing integration work we would otherwise own and maintain. It also hard-codes two things we would have had to enforce socially: mandatory idempotency keys on every money-moving call (safe retries, no double-pay) and correct decimal handling across 18-dp and 6-dp USDC (no silent rounding errors in reporting). The caveats are equally clear: it is a release candidate with zero live Circle traffic exercised, and it requires PHP 8.5, which is ahead of our current fleet. Recommendation: fund a timeboxed sandbox integration spike (1–2 sprints, includes the PHP 8.5 upgrade assessment) and treat production dependency as contingent on our own live certification — not on the vendor's offline test suite. Do not commit a customer-facing date to this path yet.
To engineering: The contracts are cleaner than a wrapper: a four-method WalletGateway core you can implement minimally, with wallet management, transfer observation, estimation, webhook verification, and JSON transport as optional interfaces that fail loudly via UnsupportedOperation rather than returning zeros or placeholders. Breaking changes are bounded — existing four-method implementations keep working. Mutations now require an explicit idempotency key, wallet set, and network, so expect previously "successful" invalid calls to start failing; that is intentional. Transport follows no redirects and retries no writes, and dry-run blocks signing entirely. Webhook verification uses GET /v2/notifications/publicKey/{keyId} with ECDSA_SHA_256 over the original raw bytes — never the Entity Secret RSA key, so don't hand-roll that path. CI runs PHP 8.5 with phpunit; add live sandbox coverage before you trust it.
To security and compliance: Two items are worth adopting as internal standards regardless of whether we ship this package: webhook signature verification against the raw request body with the correct key type, and mandatory idempotency on every mutation. Explicit network/wallet-set requirements and HTTPS-only transport with no mainnet fallback reduce the misconfiguration blast radius we usually find in these integrations. Note the honest gap — no live transfer, faucet, or webhook delivery has been validated — so our review should include a live sandbox verification step rather than accepting the offline suite as evidence.
How can I help you explore Laravel packages today?