Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 1 addition & 28 deletions python/ampersend-sdk/src/ampersend_sdk/__init__.py
Original file line number Diff line number Diff line change
@@ -1,31 +1,4 @@
"""
Ampersend SDK - Payment capabilities for AI agents.

Quick start (A2A toolset for ADK):
from ampersend_sdk import create_ampersend_toolset
from google.adk import Agent

toolset = create_ampersend_toolset(
remote_agent_urls=["https://agent.example.com"],
smart_account_address="0x...",
session_key_private_key="0x...",
)

agent = Agent(
name="orchestrator",
model="gemini-2.0-flash",
tools=[toolset],
before_agent_callback=toolset.get_before_agent_callback(),
)

Quick start (treasurer only):
from ampersend_sdk import create_ampersend_treasurer

treasurer = create_ampersend_treasurer(
smart_account_address="0x...",
session_key_private_key="0x...",
)
"""
"""Ampersend SDK - Payment capabilities for AI agents."""

from ampersend_sdk.a2a.client import (
create_ampersend_client_factory,
Expand Down
2 changes: 0 additions & 2 deletions python/ampersend-sdk/src/ampersend_sdk/ampersend/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,6 @@
RejectedRequirement,
)

__version__ = "1.0.0"

__all__ = [
# Client and API types
"ApiClient",
Expand Down
3 changes: 1 addition & 2 deletions python/langchain-ampersend/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,7 @@ pip install langchain-ampersend
## Usage

```python
from ampersend_sdk import create_ampersend_treasurer
from langchain_ampersend import A2AToolkit
from langchain_ampersend import A2AToolkit, create_ampersend_treasurer
from langchain.agents import create_agent
from langchain_openai import ChatOpenAI

Expand Down
15 changes: 6 additions & 9 deletions python/langchain-ampersend/src/langchain_ampersend/__init__.py
Original file line number Diff line number Diff line change
@@ -1,19 +1,16 @@
"""LangChain integration for Ampersend x402 payments."""

# Re-export common items from ampersend-sdk for convenience
from ampersend_sdk.ampersend import AmpersendTreasurer, ApiClient, ApiClientOptions
from ampersend_sdk.smart_account import SmartAccountConfig
from ampersend_sdk.ampersend import AmpersendTreasurer, create_ampersend_treasurer
from ampersend_sdk.x402.treasurer import X402Treasurer
from ampersend_sdk.x402.wallets.smart_account import SmartAccountWallet

from .a2a import A2AToolkit

__all__ = [
# Simplified factories (recommended)
"create_ampersend_treasurer",
# Toolkit
"A2AToolkit",
"X402Treasurer",
# Types (for type hints)
"AmpersendTreasurer",
"ApiClient",
"ApiClientOptions",
"SmartAccountConfig",
"SmartAccountWallet",
"X402Treasurer",
]
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
"""A2A toolkit for LangChain."""

from .toolkit import A2AToolkit

__all__ = ["A2AToolkit"]
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,7 @@ class A2AToolkit:

Example:
```python
from ampersend_sdk import create_ampersend_treasurer
from langchain_ampersend import A2AToolkit
from langchain_ampersend import A2AToolkit, create_ampersend_treasurer
from langchain.agents import create_agent

# Create treasurer (one-liner setup)
Expand Down
7 changes: 3 additions & 4 deletions typescript/packages/ampersend-sdk/src/ampersend/index.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
// Re-export all types and client
export * from "./types.js"
export { ApiClient } from "./client.js"
export * from "./types.ts"
export { ApiClient } from "./client.ts"
export {
AmpersendTreasurer,
createAmpersendTreasurer,
type AmpersendTreasurerConfig,
type SimpleAmpersendTreasurerConfig,
type FullAmpersendTreasurerConfig,
} from "./treasurer.js"
} from "./treasurer.ts"
33 changes: 3 additions & 30 deletions typescript/packages/ampersend-sdk/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,48 +1,21 @@
#!/usr/bin/env node

// =============================================================================
// PRIMARY API - Simplified Setup (Recommended)
// =============================================================================

// Treasurer - core payment authorization
// Simplified factories (recommended)
export {
createAmpersendTreasurer,
AmpersendTreasurer,
type AmpersendTreasurerConfig,
type SimpleAmpersendTreasurerConfig,
type FullAmpersendTreasurerConfig,
} from "./ampersend/index.ts"

// MCP Proxy - simplified setup
export { createAmpersendProxy, type SimpleProxyOptions } from "./mcp/proxy/factory.ts"

// MCP Client - simplified setup
export { createAmpersendMcpClient, type SimpleClientOptions } from "./mcp/client/factory.ts"

// HTTP Client - simplified setup
export { createAmpersendHttpClient, type SimpleHttpClientOptions } from "./x402/http/factory.ts"

// =============================================================================
// TYPES - For type annotations
// =============================================================================
// Types
export type { X402Treasurer, Authorization, PaymentContext, PaymentStatus } from "./x402/index.ts"
export type { X402Wallet, SmartAccountConfig } from "./x402/index.ts"

// =============================================================================
// ADVANCED - Building blocks (NaiveTreasurer requires deep import)
// =============================================================================

// Wallets
// Advanced building blocks
export { AccountWallet, SmartAccountWallet, WalletError } from "./x402/index.ts"

// Advanced MCP (original functions that take treasurer directly)
export { initializeProxyServer } from "./mcp/proxy/index.ts"
export { Client } from "./mcp/client/index.ts"

// Advanced HTTP
export { wrapWithAmpersend } from "./x402/http/index.ts"

// =============================================================================
// NOTE: NaiveTreasurer is NOT exported here - use deep import for testing:
// import { NaiveTreasurer } from "@ampersend_ai/ampersend-sdk/x402/treasurers"
// =============================================================================
2 changes: 1 addition & 1 deletion typescript/packages/ampersend-sdk/src/mcp/client/client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ import {
type ReadResourceRequest,
type ReadResourceResult,
} from "@modelcontextprotocol/sdk/types.js"
import type { PaymentRequirements } from "x402/types"

import type { Authorization, X402Treasurer } from "../../x402/treasurer.ts"
import type { PaymentRequirements } from "./index.ts"
import { asX402Response } from "./protocol.ts"
import type { ClientOptions, X402Response } from "./types.ts"

Expand Down
9 changes: 0 additions & 9 deletions typescript/packages/ampersend-sdk/src/mcp/client/index.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,3 @@
export { Client } from "./client.ts"
export { X402Middleware } from "./middleware.ts"
export type { ClientOptions, PaymentEvent } from "./types.ts"

// Core abstractions (re-exported for convenience)
export type { Authorization, PaymentContext, PaymentStatus, X402Treasurer } from "../../x402/treasurer.ts"

// Re-export MCP types for convenience
export type { Tool } from "@modelcontextprotocol/sdk/types.js"

// Re-export x402 types for convenience
export type { PaymentPayload, PaymentRequirements } from "x402/types"
3 changes: 1 addition & 2 deletions typescript/packages/ampersend-sdk/src/mcp/client/protocol.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,9 @@ import {
type JSONRPCMessage,
type JSONRPCRequest,
} from "@modelcontextprotocol/sdk/types.js"
import { SettleResponseSchema, x402ResponseSchema, type PaymentRequirements } from "x402/types"
import { SettleResponseSchema, x402ResponseSchema, type PaymentPayload, type PaymentRequirements } from "x402/types"
import { z } from "zod"

import type { PaymentPayload } from "./index.ts"
import type { X402Response } from "./types.ts"

export const McpX402PaymentResponseSchema = z.object({
Expand Down
33 changes: 3 additions & 30 deletions typescript/packages/ampersend-sdk/src/mcp/proxy/index.ts
Original file line number Diff line number Diff line change
@@ -1,32 +1,7 @@
/**
* MCP x402 Proxy - Public SDK Exports
*
* This module provides the core infrastructure for building MCP proxies
* with x402 payment capabilities using the X402Treasurer pattern.
*/

// Core proxy infrastructure
// Proxy server
export { initializeProxyServer } from "./server/index.ts"

// Smart account utilities
export { signERC3009Authorization, signSmartAccountTypedData } from "../../smart-account/index.ts"
export type { ERC3009AuthorizationData } from "../../smart-account/index.ts"

// Core abstractions (re-exported from x402 for convenience)
export { AccountWallet, SmartAccountWallet, WalletError } from "../../x402/index.ts"
export type {
Authorization,
PaymentContext,
PaymentStatus,
X402Treasurer,
X402Wallet,
SmartAccountConfig,
} from "../../x402/index.ts"

// NOTE: NaiveTreasurer is NOT exported here - use deep import:
// import { NaiveTreasurer } from "@ampersend_ai/ampersend-sdk/x402/treasurers"

// Proxy-specific types
// Proxy types
export type {
EOAWalletConfig,
HTTPTransportOptions,
Expand All @@ -38,10 +13,8 @@ export type {
} from "./types.ts"
export { ProxyError } from "./types.ts"

// Utilities for proxy integrations
// Proxy utilities
export { createWalletConfig, createTransportConfig } from "./cli.ts"
export { parseTargetFromQuery } from "./utils.ts"

// Environment variable validation
export { createEnvSchema, parseEnvConfig } from "./env.ts"
export type { ProxyEnvConfig } from "./env.ts"
7 changes: 0 additions & 7 deletions typescript/packages/ampersend-sdk/src/smart-account/index.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,3 @@
/**
* Smart Account utilities for ERC-3009 payment signing
*
* This module provides signing functionality for smart accounts using
* the OwnableValidator pattern and ERC-1271 signature validation.
*/

export { OWNABLE_VALIDATOR } from "./constants.ts"
export { signERC3009Authorization, signSmartAccountTypedData } from "./signing.ts"
export type { ERC3009AuthorizationData } from "./types.ts"
7 changes: 2 additions & 5 deletions typescript/packages/ampersend-sdk/src/x402/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,9 @@ export type { Authorization, PaymentContext, PaymentStatus, X402Treasurer } from
export { WalletError } from "./wallet.ts"
export type { X402Wallet } from "./wallet.ts"

// X402Wallet implementations
// Wallet implementations
export { AccountWallet, SmartAccountWallet, createWalletFromConfig } from "./wallets/index.ts"
export type { SmartAccountConfig, WalletConfig, EOAWalletConfig, SmartAccountWalletConfig } from "./wallets/index.ts"

// HTTP adapter for x402 v2 SDK
// HTTP adapter
export { wrapWithAmpersend } from "./http/index.ts"

// NOTE: NaiveTreasurer is NOT exported here - use deep import:
// import { NaiveTreasurer } from "@ampersend_ai/ampersend-sdk/x402/treasurers"