feat: add versioning strategy for payment methods and intents#113
Closed
brendanjryan wants to merge 149 commits into
Closed
feat: add versioning strategy for payment methods and intents#113brendanjryan wants to merge 149 commits into
brendanjryan wants to merge 149 commits into
Conversation
Adds comprehensive documentation for building Tempo AI payment apps: AGENTS.md enhancements: - Tempo blockchain integration (tempo.ts, TIP-20 tokens) - Fee sponsorship with access keys - IDXS for on-chain activity queries - Onramp integration (Coinbase) - Subscription with cron jobs - UI development (Tailwind CSS v4, CVA) - Local development (OrbStack, Tailscale) - New app creation guide SKILLS.md additions: - #9 Tempo Blockchain SDK (tempo.ts) - #10 IDXS Activity Queries - #11 Fee Sponsorship - #12 Onramp Integration - #13 Passkey Authentication - #14 Subscription Management - New app checklist New files: - apps/_template/ - Copy-paste starter app - scripts/create-app.ts - Scaffold new apps with `pnpm create-app` Based on team discussion for enabling one-shot full-stack app generation.
feat: enhance AGENTS.md and SKILLS.md with full Tempo stack
- Add biome.json for linting/formatting (tabs, single quotes, recommended rules) - Update package.json: - Bump pnpm to 10.28.0 - Add check and check:biome scripts - Add @biomejs/biome devDependency
chore: add Biome configuration
add basic github actions workflows
bootstrap pnpm lock
remove starter apps
Migrated all apps and packages from https://github.com/tempoxyz/ietf-paymentauth-demos ## Packages - `@tempo/paymentauth-protocol` - Core types and encoding for IETF 402 payment auth - `@tempo/paymentauth-hono` - Hono middleware for payment gating - `@tempo/paymentauth-x402-compat` - x402 protocol translation layer ## Demo Apps - `@tempo/paymentauth-basic` - Basic Tempo payment server - `@tempo/paymentauth-x402` - x402-compatible payment server - `@tempo/paymentauth-base` - Base Sepolia payment server (using paymentauth-hono) - `@tempo/paymentauth-tetris` - Pay-per-move Tetris game with WebAuthn support All packages and apps follow ai-payments conventions: - Turbo for build orchestration - TypeScript strict mode with workers types - Cloudflare Workers deployment - Vitest for testing
feat: merge paymentauth demos from ietf-paymentauth-demos
enable preview deploys
- Copy client with demo.ts, demo.sh, and paymentauth.sh scripts - Update imports to use @tempo/paymentauth-protocol - Add verification instructions to AGENTS.md Amp-Thread-ID: https://ampcode.com/threads/T-019bc4b2-cabc-74ed-b382-9e02fb2e3c9e Co-authored-by: Amp <amp@ampcode.com>
Add paymentauth-client package
- Paid reth mainnet snapshot downloads via IETF Payments Auth - Per-gigabyte pricing using pathUSD token - Streams snapshots from Cloudflare R2 bucket - Endpoints: /health, /snapshots (list), /snapshots/:filename (paid download) - Local protocol module for Payment Auth types and encoding
- Add pnpm workspace configuration with version catalog - Add biome.json for linting and formatting - Add base tsconfig.json - Add @ai-payments/protocol package (IETF Payment Auth types and utilities) - Add @ai-payments/hono package (Hono middleware for 402 flows) - Add comprehensive AGENTS.md for AI development guidance - Add SKILLS.md with pointers to relevant development skills - Add apps/ directory for Cloudflare Worker apps
Committed-By-Agent: claude
Committed-By-Agent: claude
feat: Cloudflare Apps Monorepo + Paid Reth Snapshots API
…consistently in CI (#12)
Co-authored-by: Amp <amp@ampcode.com>
Co-authored-by: Amp <amp@ampcode.com>
Co-authored-by: Amp <amp@ampcode.com>
Co-authored-by: Amp <amp@ampcode.com>
Co-authored-by: Amp <amp@ampcode.com>
- Deploy verified contract at 0x9d136eEa063eDE5418A6BC7bEafF009bBb6CFa70 - Refactor streaming demo to use @tempo/stream-channels StreamChannelClient for on-chain operations (approve, open, getChannel, computeChannelId) - Move stream intent code from src/lib/ to src/stream/ with cleaner module structure (Types, Voucher, Intents, Chain, Receipt, Storage, Method) - Simplify demo.ts by removing manual encodeFunctionData/ABI calls - Update escrow contract address in wrangler.jsonc and demo.ts - Fix explorer URL to https://explore.testnet.tempo.xyz
- Add version field to TempoMethodDetails (method-level versioning) - Add version field to all intent request types (ChargeRequest, AuthorizeRequest, SubscriptionRequest, StreamRequest) - Set version: 1 in all app ChargeRequest constructions - Add VERSIONING.md documenting the three-layer versioning strategy: core (stable, no wire version), methods (version by identifier), intents (version in request schema)
Cloudflare Deployments
No deployments found. |
Move versioning content from standalone VERSIONING.md into the Versioning section of STYLE.md where it belongs alongside the existing design principles and layered architecture docs.
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.
Summary
Adds a formal versioning strategy for the Payment Auth spec
Three-Layer Versioning
Paymentscheme name)Payment2)methodDetails.versiontempo-v2)request.versionfield (default: 1)Changes
Types
version?: numbertoTempoMethodDetails(method-level)version?: numberto all intent request types:ChargeRequest,AuthorizeRequest,SubscriptionRequest,StreamRequestpackages/paymentauth-protocolandpackages/protocolApps
version: 1in all appChargeRequestconstructions (paymentauth-basic, paymentauth-tetris, paymentauth-x402, payments, reth-snapshots)Documentation
VERSIONING.mddocumenting the full strategy with prior art referencesDesign Rationale
versionfield inside the opaquerequestJSON avoids registry churn while enabling schema migration.See
VERSIONING.mdfor full details and IETF prior art analysis.