@blockrun/llm 2.4.0 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -494,6 +494,13 @@ interface VideoGenerateOptions {
494
494
  model?: "xai/grok-imagine-video" | string;
495
495
  /** Optional seed image URL for image-to-video */
496
496
  imageUrl?: string;
497
+ /**
498
+ * Virtual Portrait asset ID (`ta_xxxxxx`) — keeps the same AI character
499
+ * across multiple Seedance videos. Enroll via `POST /v1/portrait/enroll`
500
+ * ($0.50 USDC, no KYC). **Seedance 2.0 fast/pro only.** Mutually exclusive
501
+ * with `imageUrl`. Real-person likeness is not supported on BlockRun.
502
+ */
503
+ realFaceAssetId?: string;
497
504
  /** Duration to bill for (defaults to model's default duration) */
498
505
  durationSeconds?: number;
499
506
  /** Output aspect ratio. Token360 / Seedance only — silently ignored by xAI Grok. */
@@ -501,11 +508,12 @@ interface VideoGenerateOptions {
501
508
  /** Output resolution. Token360 / Seedance only. */
502
509
  resolution?: "360p" | "480p" | "540p" | "720p" | "1080p" | "1K" | "2K" | "4K";
503
510
  /**
504
- * Whether the model should produce an audio track. Token360 / Seedance only.
505
- * When omitted, the gateway does not send the flag — Token360 then applies
506
- * its own upstream default (typically off, occasionally on depending on
507
- * model variant / prompt). Audio generation is usually a paid surcharge,
508
- * so callers should expose this as a visible toggle to their users.
511
+ * Whether the model should produce a synced audio track. Token360 / Seedance
512
+ * only — silently ignored by xAI Grok. When omitted, the gateway defaults to
513
+ * `true` for text-to-video and `false` for image- or face-conditioned
514
+ * generation (the t2v / i2v split that matches Token360's quality profile).
515
+ * Pass an explicit boolean to override. Audio generation may be a paid
516
+ * surcharge upstream, so callers should expose this as a visible toggle.
509
517
  */
510
518
  generateAudio?: boolean;
511
519
  /** Reproducibility seed when supported by the model. */
@@ -790,6 +798,88 @@ interface SurfClientOptions {
790
798
  apiUrl?: string;
791
799
  timeout?: number;
792
800
  }
801
+ interface PhoneClientOptions {
802
+ /** EVM wallet private key (hex string starting with 0x) */
803
+ privateKey?: `0x${string}` | string;
804
+ /** API endpoint URL (default: https://blockrun.ai/api) */
805
+ apiUrl?: string;
806
+ /** Request timeout in milliseconds (default: 60000) */
807
+ timeout?: number;
808
+ }
809
+ /**
810
+ * Twilio Lookup passthrough — shape comes from upstream and varies by feature
811
+ * (basic vs `line_type_intelligence`, `sim_swap`, `call_forwarding`).
812
+ * Typed as a permissive record so future Twilio fields don't require an SDK release.
813
+ */
814
+ interface PhoneLookupResponse {
815
+ phone_number?: string;
816
+ country_code?: string;
817
+ national_format?: string;
818
+ caller_name?: Record<string, unknown> | null;
819
+ carrier?: Record<string, unknown> | null;
820
+ line_type_intelligence?: Record<string, unknown> | null;
821
+ sim_swap?: Record<string, unknown> | null;
822
+ call_forwarding?: Record<string, unknown> | null;
823
+ /** Pass-through for anything Twilio adds. */
824
+ [key: string]: unknown;
825
+ }
826
+ interface PhoneBuyOptions {
827
+ /** ISO country code, "US" or "CA" (default "US"). */
828
+ country?: "US" | "CA";
829
+ /**
830
+ * Optional 3-digit area-code hint. Availability is not guaranteed — the
831
+ * backend falls back to any number in the country if the area code
832
+ * can't be matched.
833
+ */
834
+ areaCode?: string;
835
+ }
836
+ interface PhoneBuyResponse {
837
+ /** The E.164 number now bound to your wallet. */
838
+ phone_number: string;
839
+ /** ISO-8601 expiry (30 days out from purchase). */
840
+ expires_at: string;
841
+ /** "base" | "solana" — settlement chain. */
842
+ chain: string;
843
+ /** Human-readable note. */
844
+ message?: string;
845
+ /** On-chain payment receipt (tx hash). */
846
+ txHash?: string;
847
+ }
848
+ interface PhoneRenewResponse {
849
+ phone_number: string;
850
+ /** Extended expiry (30 days from previous expiry). */
851
+ expires_at: string;
852
+ txHash?: string;
853
+ }
854
+ interface PhoneNumberRecord {
855
+ phone_number: string;
856
+ chain: string;
857
+ expires_at: string;
858
+ active: boolean;
859
+ }
860
+ interface PhoneListResponse {
861
+ numbers: PhoneNumberRecord[];
862
+ count: number;
863
+ txHash?: string;
864
+ }
865
+ interface PhoneReleaseResponse {
866
+ released: true;
867
+ phone_number: string;
868
+ txHash?: string;
869
+ }
870
+ interface BlockrunClientOptions {
871
+ privateKey?: `0x${string}` | string;
872
+ apiUrl?: string;
873
+ /** Per-HTTP-call timeout in ms (default 60000). For long-running poll() jobs,
874
+ * set budgetMs in PollOptions instead — this only bounds individual fetches. */
875
+ timeout?: number;
876
+ }
877
+ interface PollOptions {
878
+ /** Total wall-clock budget for the entire submit + poll loop (default 300000 = 5 min). */
879
+ budgetMs?: number;
880
+ /** Sleep between poll attempts (default 5000 = 5 s). */
881
+ intervalMs?: number;
882
+ }
793
883
  declare class BlockrunError extends Error {
794
884
  constructor(message: string);
795
885
  }
@@ -1584,6 +1674,106 @@ declare class VoiceClient {
1584
1674
  getSpending(): Spending;
1585
1675
  }
1586
1676
 
1677
+ /**
1678
+ * BlockRun Phone Client — Twilio-backed phone lookup + number provisioning via x402.
1679
+ *
1680
+ * Endpoints (all under /v1/phone/...):
1681
+ * POST /lookup $0.01 Carrier + line-type lookup
1682
+ * POST /lookup/fraud $0.05 Carrier + SIM-swap / call-forwarding signals
1683
+ * POST /numbers/buy $5.00 Provision a US/CA number (30-day lease, bound to wallet)
1684
+ * POST /numbers/renew $5.00 Extend an existing number by 30 days
1685
+ * POST /numbers/list $0.001 List the wallet's active numbers
1686
+ * POST /numbers/release free Release a provisioned number (still flows through x402
1687
+ * so the backend can verify wallet identity)
1688
+ *
1689
+ * After buying a number you can use it as the `from` caller ID in VoiceClient.call().
1690
+ *
1691
+ * SECURITY NOTE — your private key never leaves your machine. Only EIP-712
1692
+ * signatures are sent in the PAYMENT-SIGNATURE header.
1693
+ *
1694
+ * @example
1695
+ * import { PhoneClient } from '@blockrun/llm';
1696
+ *
1697
+ * const client = new PhoneClient({ privateKey: '0x...' });
1698
+ *
1699
+ * // Lookup a number
1700
+ * const info = await client.lookup('+14155552671');
1701
+ *
1702
+ * // Buy a number (US, optional area code)
1703
+ * const bought = await client.buyNumber({ country: 'US', areaCode: '415' });
1704
+ * console.log(bought.phone_number, bought.expires_at);
1705
+ *
1706
+ * // List your active numbers
1707
+ * console.log(await client.listNumbers());
1708
+ *
1709
+ * // Renew / release
1710
+ * await client.renewNumber(bought.phone_number);
1711
+ * await client.releaseNumber(bought.phone_number);
1712
+ */
1713
+
1714
+ /** Per-endpoint price in USD — mirrors the backend's `PHONE_PRICES`. */
1715
+ declare const PHONE_PRICES: Readonly<Record<string, number>>;
1716
+ /**
1717
+ * BlockRun Phone Client.
1718
+ *
1719
+ * Wraps the `/v1/phone/*` x402 endpoints — phone-number lookup (carrier + fraud)
1720
+ * and provisioning of the caller-ID numbers required by VoiceClient.call().
1721
+ */
1722
+ declare class PhoneClient {
1723
+ private account;
1724
+ private privateKey;
1725
+ private apiUrl;
1726
+ private timeout;
1727
+ private sessionTotalUsd;
1728
+ private sessionCalls;
1729
+ constructor(options?: PhoneClientOptions);
1730
+ /** EVM wallet address used for payments. */
1731
+ getWalletAddress(): string;
1732
+ /** Session-cumulative USD spend + call count across this client instance. */
1733
+ getSpending(): Spending;
1734
+ /**
1735
+ * Carrier + line-type lookup. ~$0.01.
1736
+ *
1737
+ * @param phoneNumber E.164 number (e.g. "+14155552671").
1738
+ */
1739
+ lookup(phoneNumber: string): Promise<PhoneLookupResponse>;
1740
+ /**
1741
+ * Lookup + fraud signals (SIM swap, call forwarding). ~$0.05.
1742
+ *
1743
+ * @param phoneNumber E.164 number.
1744
+ */
1745
+ lookupFraud(phoneNumber: string): Promise<PhoneLookupResponse>;
1746
+ /**
1747
+ * Provision a dedicated phone number for 30 days. $5.00.
1748
+ *
1749
+ * Payment is settled only after Twilio confirms the purchase, so failed
1750
+ * buys never charge your wallet.
1751
+ *
1752
+ * @param options.country ISO country code, "US" or "CA" (default "US").
1753
+ * @param options.areaCode Optional 3-digit area-code hint. Availability is
1754
+ * not guaranteed — the backend falls back to any number in the country if
1755
+ * the area code can't be matched.
1756
+ */
1757
+ buyNumber(options?: PhoneBuyOptions): Promise<PhoneBuyResponse>;
1758
+ /**
1759
+ * Extend an existing provisioned number by 30 days. $5.00.
1760
+ *
1761
+ * @throws {APIError} 403 when the wallet doesn't own the number or it has expired.
1762
+ */
1763
+ renewNumber(phoneNumber: string): Promise<PhoneRenewResponse>;
1764
+ /** List the wallet's active phone numbers. ~$0.001. */
1765
+ listNumbers(): Promise<PhoneListResponse>;
1766
+ /**
1767
+ * Release a provisioned number back to the Twilio pool. Free, but still
1768
+ * flows through x402 so the backend can verify ownership.
1769
+ */
1770
+ releaseNumber(phoneNumber: string): Promise<PhoneReleaseResponse>;
1771
+ private request;
1772
+ private handlePaymentAndRetry;
1773
+ private unwrap;
1774
+ private fetchWithTimeout;
1775
+ }
1776
+
1587
1777
  /**
1588
1778
  * BlockRun Search Client - Standalone Grok Live Search via x402 micropayments.
1589
1779
  *
@@ -1760,8 +1950,8 @@ declare class PriceClient {
1760
1950
  * const typed = await surf.get<Price>("/market/price", { symbol: "ETH" });
1761
1951
  */
1762
1952
 
1763
- type QueryValue = string | number | boolean | null | undefined;
1764
- type QueryParams = Record<string, QueryValue | QueryValue[]>;
1953
+ type QueryValue$1 = string | number | boolean | null | undefined;
1954
+ type QueryParams$1 = Record<string, QueryValue$1 | QueryValue$1[]>;
1765
1955
  declare class SurfClient {
1766
1956
  private account;
1767
1957
  private privateKey;
@@ -1773,7 +1963,7 @@ declare class SurfClient {
1773
1963
  * `/v1/surf` is tolerated and stripped). Query params are URL-encoded;
1774
1964
  * arrays become repeated keys (`?a=1&a=2`).
1775
1965
  */
1776
- get<T = unknown>(path: string, params?: QueryParams): Promise<T>;
1966
+ get<T = unknown>(path: string, params?: QueryParams$1): Promise<T>;
1777
1967
  /**
1778
1968
  * POST a Surf endpoint with a JSON body. Same path normalization as `get`.
1779
1969
  */
@@ -1786,6 +1976,130 @@ declare class SurfClient {
1786
1976
  getWalletAddress(): string;
1787
1977
  }
1788
1978
 
1979
+ /**
1980
+ * BlockrunClient — the x402-paying HTTP primitive for the BlockRun gateway.
1981
+ *
1982
+ * This is the **primitive** that every BlockRun API surface composes on top of:
1983
+ * a wallet, an x402 401-sign-replay handler, and four call shapes (get, post,
1984
+ * poll, stream). Per-API classes (LLMClient, ImageClient, SurfClient, …) are
1985
+ * being collapsed into Claude Code skills that drive this client directly.
1986
+ *
1987
+ * Why one primitive instead of one client per API surface:
1988
+ * - Every BlockRun endpoint pays the same way (USDC via x402 on Base/Solana)
1989
+ * - ~30-40 % of each existing client class is identical boilerplate
1990
+ * - New API surfaces should ship as a skill (markdown) + path, not as a
1991
+ * new TypeScript class + npm release
1992
+ *
1993
+ * Four call shapes:
1994
+ * client.get<T>(path, params?) — sync GET, e.g. /v1/surf/market/price
1995
+ * client.post<T>(path, body?) — sync POST, e.g. /v1/surf/onchain/sql
1996
+ * client.poll<T>(path, body?, { budgetMs }) — submit + poll, e.g. /v1/videos/generations
1997
+ * client.stream<T>(path, body?) — SSE iterator, e.g. /v1/chat/completions
1998
+ *
1999
+ * Usage:
2000
+ * import { BlockrunClient } from "@blockrun/llm";
2001
+ *
2002
+ * const br = new BlockrunClient({ privateKey: "0x..." });
2003
+ *
2004
+ * // Surf endpoint (Tier 1, $0.001)
2005
+ * const btc = await br.get("/v1/surf/market/price", { symbol: "BTC" });
2006
+ *
2007
+ * // Raw on-chain SQL (Tier 3, $0.020)
2008
+ * const rows = await br.post("/v1/surf/onchain/sql", {
2009
+ * query: "SELECT block_number FROM ethereum.blocks ORDER BY block_number DESC LIMIT 1",
2010
+ * });
2011
+ *
2012
+ * // Long-running video generation (submit + poll, paid on success)
2013
+ * const video = await br.poll("/v1/videos/generations", {
2014
+ * model: "xai/grok-imagine-video",
2015
+ * prompt: "a red apple spinning",
2016
+ * });
2017
+ *
2018
+ * // Streaming chat
2019
+ * for await (const chunk of br.stream("/v1/chat/completions", {
2020
+ * model: "anthropic/claude-sonnet-4-6",
2021
+ * messages: [{ role: "user", content: "Hi" }],
2022
+ * stream: true,
2023
+ * })) {
2024
+ * process.stdout.write(chunk.choices?.[0]?.delta?.content ?? "");
2025
+ * }
2026
+ */
2027
+
2028
+ type QueryValue = string | number | boolean | null | undefined;
2029
+ type QueryParams = Record<string, QueryValue | QueryValue[]>;
2030
+ /**
2031
+ * The x402-paying HTTP primitive for the BlockRun gateway.
2032
+ *
2033
+ * One instance, one wallet, all endpoints. The four call shapes (get, post,
2034
+ * poll, stream) cover every endpoint type the gateway exposes.
2035
+ */
2036
+ declare class BlockrunClient {
2037
+ private account;
2038
+ private privateKey;
2039
+ private apiUrl;
2040
+ private timeout;
2041
+ private sessionTotalUsd;
2042
+ private sessionCalls;
2043
+ constructor(options?: BlockrunClientOptions);
2044
+ /**
2045
+ * GET a BlockRun endpoint. `path` is everything after `/api` (a leading
2046
+ * `/api` is tolerated and stripped). Query params are URL-encoded; arrays
2047
+ * become repeated keys (`?a=1&a=2`); undefined/null are dropped.
2048
+ */
2049
+ get<T = unknown>(path: string, params?: QueryParams): Promise<T>;
2050
+ /**
2051
+ * POST a BlockRun endpoint with a JSON body.
2052
+ */
2053
+ post<T = unknown>(path: string, body?: Record<string, unknown>): Promise<T>;
2054
+ /**
2055
+ * Submit a long-running job and poll until it completes.
2056
+ *
2057
+ * Pattern: submit → 402 → sign → 202 `{ id, poll_url, status }` → loop GET
2058
+ * the poll_url with the SAME `PAYMENT-SIGNATURE` until status=completed (or
2059
+ * deadline exceeded). Settlement happens only when upstream returns 200 +
2060
+ * completed — upstream failure or caller giving up = no charge.
2061
+ *
2062
+ * If the gateway returns 200 directly on submit (no async surface), this
2063
+ * short-circuits and returns the body. Most long-running endpoints (image,
2064
+ * video, music, voice) return 202 with a poll_url.
2065
+ */
2066
+ poll<T = unknown>(path: string, body?: Record<string, unknown>, options?: PollOptions): Promise<T>;
2067
+ /**
2068
+ * Stream a Server-Sent Events endpoint.
2069
+ *
2070
+ * Yields each `data: …` line parsed as JSON. Stops when the upstream emits
2071
+ * `data: [DONE]` or closes the connection. Caller is responsible for typing
2072
+ * the chunk shape; pass a generic for typed yields.
2073
+ *
2074
+ * Example — streaming chat:
2075
+ * for await (const chunk of br.stream<ChatChunk>("/v1/chat/completions", {
2076
+ * model: "anthropic/claude-sonnet-4-6",
2077
+ * messages: [{ role: "user", content: "Hi" }],
2078
+ * stream: true,
2079
+ * })) {
2080
+ * process.stdout.write(chunk.choices?.[0]?.delta?.content ?? "");
2081
+ * }
2082
+ */
2083
+ stream<T = unknown>(path: string, body?: Record<string, unknown>): AsyncGenerator<T, void, undefined>;
2084
+ private buildUrl;
2085
+ private absolute;
2086
+ private requestWithPayment;
2087
+ private handlePaymentAndRetry;
2088
+ /**
2089
+ * Read a 402 response's payment requirements (header or body), then sign and
2090
+ * return the base64 PAYMENT-SIGNATURE payload. Also records the cost-to-be
2091
+ * onto the response context (settled on `recordSpending`).
2092
+ */
2093
+ private signFrom402;
2094
+ /** Accumulates the most-recent pending cost; settled by recordSpending. */
2095
+ private pendingCostUsd;
2096
+ private recordSpending;
2097
+ private throwApiError;
2098
+ private fetchWithTimeout;
2099
+ getWalletAddress(): string;
2100
+ getSpending(): Spending;
2101
+ }
2102
+
1789
2103
  /**
1790
2104
  * x402 Payment Protocol v2 Implementation for BlockRun.
1791
2105
  *
@@ -1826,6 +2140,11 @@ interface CreateSolanaPaymentOptions {
1826
2140
  extra?: Record<string, unknown>;
1827
2141
  extensions?: Record<string, unknown>;
1828
2142
  rpcUrl?: string;
2143
+ /**
2144
+ * Optional HTTP headers forwarded to the Solana RPC endpoint
2145
+ * (e.g. `{ "x-api-key": "..." }` for Tatum / header-auth gateways).
2146
+ */
2147
+ rpcHeaders?: Record<string, string>;
1829
2148
  }
1830
2149
  /**
1831
2150
  * Create a signed Solana x402 v2 payment payload.
@@ -2015,8 +2334,21 @@ interface SolanaLLMClientOptions {
2015
2334
  privateKey?: string;
2016
2335
  /** API endpoint URL (default: https://sol.blockrun.ai/api) */
2017
2336
  apiUrl?: string;
2018
- /** Solana RPC URL (default: https://api.mainnet-beta.solana.com) */
2337
+ /**
2338
+ * Solana JSON-RPC URL. Defaults to BlockRun's own Tatum-backed proxy
2339
+ * (`https://sol.blockrun.ai/api/v1/solana/rpc`), free for SDK users.
2340
+ * Override to point at your own Helius / Tatum / QuickNode account, or
2341
+ * fall back to the env vars `SOLANA_RPC_URL` /
2342
+ * `SOLANA_RPC_API_KEY` / `SOLANA_RPC_HEADERS`.
2343
+ */
2019
2344
  rpcUrl?: string;
2345
+ /**
2346
+ * Optional headers forwarded to the Solana RPC endpoint. Use this for
2347
+ * header-auth gateways (Tatum's `x-api-key`, some Triton tiers). Falls
2348
+ * back to `SOLANA_RPC_HEADERS` (JSON dict) or `SOLANA_RPC_API_KEY`
2349
+ * (shortcut for `{ "x-api-key": "..." }`) env vars when omitted.
2350
+ */
2351
+ rpcHeaders?: Record<string, string>;
2020
2352
  /** Request timeout in milliseconds (default: 60000) */
2021
2353
  timeout?: number;
2022
2354
  }
@@ -2025,6 +2357,7 @@ declare class SolanaLLMClient {
2025
2357
  private privateKey;
2026
2358
  private apiUrl;
2027
2359
  private rpcUrl;
2360
+ private rpcHeaders?;
2028
2361
  private timeout;
2029
2362
  private sessionTotalUsd;
2030
2363
  private sessionCalls;
@@ -2429,4 +2762,4 @@ declare function validateTemperature(temperature?: number): void;
2429
2762
  */
2430
2763
  declare function validateTopP(topP?: number): void;
2431
2764
 
2432
- export { APIError, AnthropicClient, type AudioModel, type AudioTrack, BASE_CHAIN_ID, type BarResolution, type BlockRunAnthropicOptions, BlockrunError, type CallInitiatedResponse, type CallModel, type CallOptions, type CallStatusResponse, type ChatChoice, type ChatCompletionOptions, type ChatMessage, type ChatOptions, type ChatResponse, type ChatResponseWithCost, type ChatUsage, type CostEntry, type CostEstimate, type CreatePaymentOptions, type FunctionCall, type FunctionDefinition, type HistoryOptions, ImageClient, type ImageClientOptions, type ImageData, type ImageEditOptions, type ImageGenerateOptions, type ImageModel, type ImageResponse, KNOWN_PROVIDERS, LLMClient, type LLMClientOptions, type ListOptions, type MarketSession, type Model, MusicClient, type MusicClientOptions, type MusicGenerateOptions, type MusicResponse, type NewsSearchSource, OpenAI, type OpenAIChatCompletionChoice, type OpenAIChatCompletionChunk, type OpenAIChatCompletionParams, type OpenAIChatCompletionResponse, type OpenAIClientOptions, PaymentError, type PaymentLinks, type PriceBar, type PriceCategory, PriceClient, type PriceClientOptions, type PriceHistoryResponse, type PriceOptions, type PricePoint, type RoutingDecision, type RoutingProfile, type RoutingTier, type RssSearchSource, SOLANA_NETWORK, SOLANA_WALLET_FILE as SOLANA_WALLET_FILE_PATH, SearchClient, type SearchClientOptions, type SearchOptions, type SearchParameters, type SearchResult, type SearchSource, type SearchUsage, type SmartChatOptions, type SmartChatResponse, SolanaLLMClient, type SolanaLLMClientOptions, type SolanaWalletInfo, type Spending, type SpendingReport, type StockMarket, SurfClient, type SurfClientOptions, type SymbolListResponse, type Tool, type ToolCall, type ToolChoice, USDC_BASE, USDC_BASE_CONTRACT, USDC_SOLANA, VideoClient, type VideoClientOptions, type VideoClip, type VideoGenerateOptions, type VideoModel, type VideoResponse, VoiceClient, type VoiceClientOptions, type VoicePreset, WALLET_DIR_PATH, WALLET_FILE_PATH, type WalletInfo, type WebSearchSource, type XArticlesRisingResponse, type XAuthorAnalyticsResponse, XClient, type XClientOptions, type XCompareAuthorsResponse, type XFollower, type XFollowersResponse, type XFollowingsResponse, type XMentionsOptions, type XMentionsResponse, type XSearchOptions, type XSearchResponse, type XSearchSource, type XTrendingResponse, type XTweet, type XTweetLookupResponse, type XTweetRepliesOptions, type XTweetRepliesResponse, type XTweetThreadResponse, type XTweetsResponse, type XUser, type XUserInfoResponse, type XUserLookupResponse, type XUserTweetsOptions, type XVerifiedFollowersResponse, clearCache, createPaymentPayload, createSolanaPaymentPayload, createSolanaWallet, createWallet, LLMClient as default, extractPaymentDetails, formatFundingMessageCompact, formatNeedsFundingMessage, formatWalletCreatedMessage, getCached, getCachedByRequest, getCostLogSummary, getCostSummary, getEip681Uri, getOrCreateSolanaWallet, getOrCreateWallet, getPaymentLinks, getWalletAddress, loadSolanaWallet, loadWallet, logCost, parsePaymentRequired, saveSolanaWallet, saveToCache, saveWallet, scanSolanaWallets, scanWallets, setCache, setupAgentSolanaWallet, setupAgentWallet, solanaClient, solanaKeyToBytes, solanaPublicKey, status, validateMaxTokens, validateModel, validateTemperature, validateTopP };
2765
+ export { APIError, AnthropicClient, type AudioModel, type AudioTrack, BASE_CHAIN_ID, type BarResolution, type BlockRunAnthropicOptions, BlockrunClient, type BlockrunClientOptions, BlockrunError, type CallInitiatedResponse, type CallModel, type CallOptions, type CallStatusResponse, type ChatChoice, type ChatCompletionOptions, type ChatMessage, type ChatOptions, type ChatResponse, type ChatResponseWithCost, type ChatUsage, type CostEntry, type CostEstimate, type CreatePaymentOptions, type FunctionCall, type FunctionDefinition, type HistoryOptions, ImageClient, type ImageClientOptions, type ImageData, type ImageEditOptions, type ImageGenerateOptions, type ImageModel, type ImageResponse, KNOWN_PROVIDERS, LLMClient, type LLMClientOptions, type ListOptions, type MarketSession, type Model, MusicClient, type MusicClientOptions, type MusicGenerateOptions, type MusicResponse, type NewsSearchSource, OpenAI, type OpenAIChatCompletionChoice, type OpenAIChatCompletionChunk, type OpenAIChatCompletionParams, type OpenAIChatCompletionResponse, type OpenAIClientOptions, PHONE_PRICES, PaymentError, type PaymentLinks, type PhoneBuyOptions, type PhoneBuyResponse, PhoneClient, type PhoneClientOptions, type PhoneListResponse, type PhoneLookupResponse, type PhoneNumberRecord, type PhoneReleaseResponse, type PhoneRenewResponse, type PollOptions, type PriceBar, type PriceCategory, PriceClient, type PriceClientOptions, type PriceHistoryResponse, type PriceOptions, type PricePoint, type RoutingDecision, type RoutingProfile, type RoutingTier, type RssSearchSource, SOLANA_NETWORK, SOLANA_WALLET_FILE as SOLANA_WALLET_FILE_PATH, SearchClient, type SearchClientOptions, type SearchOptions, type SearchParameters, type SearchResult, type SearchSource, type SearchUsage, type SmartChatOptions, type SmartChatResponse, SolanaLLMClient, type SolanaLLMClientOptions, type SolanaWalletInfo, type Spending, type SpendingReport, type StockMarket, SurfClient, type SurfClientOptions, type SymbolListResponse, type Tool, type ToolCall, type ToolChoice, USDC_BASE, USDC_BASE_CONTRACT, USDC_SOLANA, VideoClient, type VideoClientOptions, type VideoClip, type VideoGenerateOptions, type VideoModel, type VideoResponse, VoiceClient, type VoiceClientOptions, type VoicePreset, WALLET_DIR_PATH, WALLET_FILE_PATH, type WalletInfo, type WebSearchSource, type XArticlesRisingResponse, type XAuthorAnalyticsResponse, XClient, type XClientOptions, type XCompareAuthorsResponse, type XFollower, type XFollowersResponse, type XFollowingsResponse, type XMentionsOptions, type XMentionsResponse, type XSearchOptions, type XSearchResponse, type XSearchSource, type XTrendingResponse, type XTweet, type XTweetLookupResponse, type XTweetRepliesOptions, type XTweetRepliesResponse, type XTweetThreadResponse, type XTweetsResponse, type XUser, type XUserInfoResponse, type XUserLookupResponse, type XUserTweetsOptions, type XVerifiedFollowersResponse, clearCache, createPaymentPayload, createSolanaPaymentPayload, createSolanaWallet, createWallet, LLMClient as default, extractPaymentDetails, formatFundingMessageCompact, formatNeedsFundingMessage, formatWalletCreatedMessage, getCached, getCachedByRequest, getCostLogSummary, getCostSummary, getEip681Uri, getOrCreateSolanaWallet, getOrCreateWallet, getPaymentLinks, getWalletAddress, loadSolanaWallet, loadWallet, logCost, parsePaymentRequired, saveSolanaWallet, saveToCache, saveWallet, scanSolanaWallets, scanWallets, setCache, setupAgentSolanaWallet, setupAgentWallet, solanaClient, solanaKeyToBytes, solanaPublicKey, status, validateMaxTokens, validateModel, validateTemperature, validateTopP };