@vapi-network/core 0.2.0-dev.2

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.
@@ -0,0 +1,24 @@
1
+ import type { Address } from "viem";
2
+ import type { SpendCaps } from "./config.js";
3
+ import { type SpendLedger } from "./spend-policy.js";
4
+ export type PaymentIntent = Readonly<{
5
+ amountAtomic: bigint;
6
+ network: string;
7
+ payTo: Address;
8
+ resourceUrl?: string;
9
+ }>;
10
+ /** A payment policy is always evaluated before a signature is requested. */
11
+ export interface Policy {
12
+ authorize(intent: PaymentIntent): Promise<void>;
13
+ }
14
+ export declare class SpendPolicy implements Policy {
15
+ readonly caps: SpendCaps;
16
+ private readonly options;
17
+ constructor(caps: SpendCaps, options?: {
18
+ ledgerPath?: string;
19
+ now?: () => Date;
20
+ });
21
+ authorize(intent: PaymentIntent): Promise<void>;
22
+ reserve(amountAtomic: bigint): Promise<SpendLedger>;
23
+ }
24
+ //# sourceMappingURL=policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAgB,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEnE,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC,CAAC;AAEH,4EAA4E;AAC5E,MAAM,WAAW,MAAM;IACrB,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjD;AAED,qBAAa,WAAY,YAAW,MAAM;aAEtB,IAAI,EAAE,SAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADR,IAAI,EAAE,SAAS,EACd,OAAO,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAA;KAAO;IAGpE,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CAM1D"}
@@ -0,0 +1,60 @@
1
+ import type { ListingProvenance } from "./discovery.js";
2
+ import type { X402SettlementOutcome } from "./x402.js";
3
+ export interface Receipt {
4
+ readonly id: string;
5
+ readonly timestamp: string;
6
+ readonly resourceUrl: string;
7
+ readonly method?: string;
8
+ /** Primary discovery source retained for compatibility with early receipt writers. */
9
+ readonly source?: string;
10
+ readonly provenance?: readonly ListingProvenance[];
11
+ readonly quote?: Readonly<{
12
+ network: string;
13
+ asset: string;
14
+ amountAtomic: string;
15
+ payTo: string;
16
+ }>;
17
+ readonly payer?: string;
18
+ readonly settlement?: Readonly<{
19
+ outcome: X402SettlementOutcome;
20
+ transaction?: string;
21
+ evidence?: unknown;
22
+ }>;
23
+ readonly latencyMs?: number;
24
+ readonly status?: number;
25
+ readonly error?: Readonly<{
26
+ code: string;
27
+ message: string;
28
+ }>;
29
+ readonly phases?: Readonly<{
30
+ discoverMs?: number;
31
+ quoteMs?: number;
32
+ signMs?: number;
33
+ requestMs?: number;
34
+ settleMs?: number;
35
+ }>;
36
+ readonly listing?: Readonly<{
37
+ name?: string;
38
+ providerHost?: string;
39
+ source: string;
40
+ }>;
41
+ readonly retry?: number;
42
+ readonly policy?: Readonly<{
43
+ maxPriceUsd?: string;
44
+ capsApplied: boolean;
45
+ }>;
46
+ readonly client?: Readonly<{
47
+ name: "vapi-network";
48
+ version: string;
49
+ }>;
50
+ readonly outcome?: "paid" | "declined_policy" | "failed_request" | "settlement_rejected" | "settlement_unknown";
51
+ }
52
+ export declare function parseReceipt(value: unknown): Receipt;
53
+ /** Append exactly one receipt as one JSONL record. Existing records are never rewritten. */
54
+ export declare function appendReceipt(receipt: Receipt, path?: string): Promise<Receipt>;
55
+ export declare function readReceipts(path?: string, options?: {
56
+ limit?: number;
57
+ }): Promise<Receipt[]>;
58
+ /** Compatibility alias used by early CLI code. */
59
+ export declare const listReceipts: typeof readReceipts;
60
+ //# sourceMappingURL=receipts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"receipts.d.ts","sourceRoot":"","sources":["../src/receipts.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAEvD,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,sFAAsF;IACtF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACnD,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;QACxB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC;QAC7B,OAAO,EAAE,qBAAqB,CAAC;QAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC,CAAC;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7D,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;QACzB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC;QAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;QACzB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,OAAO,CAAC;KACtB,CAAC,CAAC;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;QACzB,IAAI,EAAE,cAAc,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,QAAQ,CAAC,OAAO,CAAC,EACf,MAAM,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,qBAAqB,GAAG,oBAAoB,CAAC;CAChG;AA8ED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEpD;AAED,4FAA4F;AAC5F,wBAAsB,aAAa,CACjC,OAAO,EAAE,OAAO,EAChB,IAAI,SAA0B,GAC7B,OAAO,CAAC,OAAO,CAAC,CAUlB;AAED,wBAAsB,YAAY,CAChC,IAAI,SAA0B,EAC9B,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/B,OAAO,CAAC,OAAO,EAAE,CAAC,CAuBpB;AAED,kDAAkD;AAClD,eAAO,MAAM,YAAY,qBAAe,CAAC"}
@@ -0,0 +1,15 @@
1
+ export interface SearchEvent {
2
+ readonly timestamp: string;
3
+ readonly query: string;
4
+ readonly sources: ReadonlyArray<Readonly<{
5
+ source: string;
6
+ latencyMs: number;
7
+ count: number;
8
+ error?: string;
9
+ }>>;
10
+ readonly mergedCount: number;
11
+ }
12
+ export declare function parseSearchEvent(value: unknown): SearchEvent;
13
+ export declare function appendSearchEvent(event: SearchEvent, path?: string): Promise<SearchEvent>;
14
+ export declare function readSearchEvents(path?: string): Promise<SearchEvent[]>;
15
+ //# sourceMappingURL=searches.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searches.d.ts","sourceRoot":"","sources":["../src/searches.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAC7B,QAAQ,CAAC;QACP,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CACH,CAAC;IACF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAgBD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAE5D;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,WAAW,EAClB,IAAI,SAA0B,GAC7B,OAAO,CAAC,WAAW,CAAC,CAUtB;AAED,wBAAsB,gBAAgB,CAAC,IAAI,SAA0B,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAkB7F"}
@@ -0,0 +1,19 @@
1
+ import { z } from "zod";
2
+ import { type SpendCaps } from "./config.js";
3
+ declare const ledgerSchema: z.ZodObject<{
4
+ date: z.ZodString;
5
+ spentAtomic: z.ZodString;
6
+ }, z.core.$strip>;
7
+ export type SpendLedger = z.infer<typeof ledgerSchema>;
8
+ export declare class SpendCapError extends Error {
9
+ readonly code: "per_call_cap_exceeded" | "per_day_cap_exceeded";
10
+ constructor(code: "per_call_cap_exceeded" | "per_day_cap_exceeded", message: string);
11
+ }
12
+ export declare function utcDateKey(now?: Date): string;
13
+ export declare function readSpendLedger(path?: string, now?: Date): Promise<SpendLedger>;
14
+ export declare function reserveSpend(amountAtomic: bigint, caps: SpendCaps, options?: {
15
+ ledgerPath?: string;
16
+ now?: Date;
17
+ }): Promise<SpendLedger>;
18
+ export {};
19
+ //# sourceMappingURL=spend-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spend-policy.d.ts","sourceRoot":"","sources":["../src/spend-policy.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAoC,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAE/E,QAAA,MAAM,YAAY;;;iBAGhB,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAEvD,qBAAa,aAAc,SAAQ,KAAK;aAEpB,IAAI,EAAE,uBAAuB,GAAG,sBAAsB;gBAAtD,IAAI,EAAE,uBAAuB,GAAG,sBAAsB,EACtE,OAAO,EAAE,MAAM;CAKlB;AAED,wBAAgB,UAAU,CAAC,GAAG,OAAa,GAAG,MAAM,CAEnD;AAED,wBAAsB,eAAe,CACnC,IAAI,SAA6B,EACjC,GAAG,OAAa,GACf,OAAO,CAAC,WAAW,CAAC,CAYtB;AAED,wBAAsB,YAAY,CAChC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,SAAS,EACf,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,IAAI,CAAA;CAAE,GAC5C,OAAO,CAAC,WAAW,CAAC,CAgCtB"}
@@ -0,0 +1,55 @@
1
+ import type { Receipt } from "./receipts.js";
2
+ import type { SearchEvent } from "./searches.js";
3
+ export declare const STATS_RANGES: readonly ["24h", "7d", "30d"];
4
+ export type StatsRange = (typeof STATS_RANGES)[number];
5
+ export type LatencyPercentiles = Readonly<{
6
+ p50Ms: number | null;
7
+ p95Ms: number | null;
8
+ }>;
9
+ export type ReceiptOutcome = NonNullable<Receipt["outcome"]>;
10
+ export interface StatsReport {
11
+ readonly range: StatsRange;
12
+ readonly generatedAt: string;
13
+ readonly totals: Readonly<{
14
+ spendUsd: string;
15
+ calls: number;
16
+ uniqueApis: number;
17
+ policyDeclines: number;
18
+ }>;
19
+ readonly outcomes: Readonly<Record<ReceiptOutcome, Readonly<{
20
+ count: number;
21
+ rate: number;
22
+ }>>>;
23
+ readonly latency: Readonly<{
24
+ total: LatencyPercentiles;
25
+ phases: Readonly<Record<"discover" | "quote" | "sign" | "request" | "settle", LatencyPercentiles>>;
26
+ }>;
27
+ readonly topServices: Readonly<{
28
+ bySpend: readonly ServiceStats[];
29
+ byCalls: readonly ServiceStats[];
30
+ }>;
31
+ readonly search: Readonly<{
32
+ count: number;
33
+ zeroResultRate: number;
34
+ sources: Readonly<Record<string, Readonly<{
35
+ count: number;
36
+ p95Ms: number | null;
37
+ }>>>;
38
+ }>;
39
+ }
40
+ export interface ServiceStats {
41
+ readonly name: string;
42
+ readonly resourceUrl: string;
43
+ readonly providerHost?: string;
44
+ readonly spendUsd: string;
45
+ readonly calls: number;
46
+ }
47
+ export declare function aggregateStats(args: {
48
+ receipts: readonly Receipt[];
49
+ searches: readonly SearchEvent[];
50
+ range?: StatsRange;
51
+ now?: Date;
52
+ }): StatsReport;
53
+ export declare function filterReceiptsByRange(receipts: readonly Receipt[], range: StatsRange, now?: Date): Receipt[];
54
+ export declare function receiptsToCsv(receipts: readonly Receipt[]): string;
55
+ //# sourceMappingURL=stats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../src/stats.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,eAAO,MAAM,YAAY,+BAAgC,CAAC;AAC1D,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AACvD,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC;IAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAAC;AAC1F,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;AAe7D,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC,CAAC;IACH,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC,CAAC;IAC/F,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;QACzB,KAAK,EAAE,kBAAkB,CAAC;QAC1B,MAAM,EAAE,QAAQ,CACd,MAAM,CAAC,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,EAAE,kBAAkB,CAAC,CACjF,CAAC;KACH,CAAC,CAAC;IACH,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC;QAC7B,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;QACjC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;KAClC,CAAC,CAAC;IACH,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;QACd,cAAc,EAAE,MAAM,CAAC;QACvB,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,CAAC,CAAC,CAAC,CAAC;KACtF,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE;IACnC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;IAC7B,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAC;IACjC,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ,GAAG,WAAW,CAoHd;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,KAAK,EAAE,UAAU,EACjB,GAAG,OAAa,GACf,OAAO,EAAE,CAGX;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM,CAqElE"}
@@ -0,0 +1,57 @@
1
+ import { type Address } from "viem";
2
+ import type { PrivateKeyAccount } from "viem/accounts";
3
+ import type { AgentCashConfig } from "./config.js";
4
+ import type { LookupFn } from "./net-guard.js";
5
+ export declare const ERC20_ABI: readonly [{
6
+ readonly type: "function";
7
+ readonly name: "balanceOf";
8
+ readonly stateMutability: "view";
9
+ readonly inputs: readonly [{
10
+ readonly name: "account";
11
+ readonly type: "address";
12
+ }];
13
+ readonly outputs: readonly [{
14
+ readonly name: "balance";
15
+ readonly type: "uint256";
16
+ }];
17
+ }, {
18
+ readonly type: "function";
19
+ readonly name: "transfer";
20
+ readonly stateMutability: "nonpayable";
21
+ readonly inputs: readonly [{
22
+ readonly name: "to";
23
+ readonly type: "address";
24
+ }, {
25
+ readonly name: "amount";
26
+ readonly type: "uint256";
27
+ }];
28
+ readonly outputs: readonly [{
29
+ readonly name: "success";
30
+ readonly type: "bool";
31
+ }];
32
+ }];
33
+ export type SweepResult = {
34
+ network: string;
35
+ amountAtomic: string;
36
+ transaction: `0x${string}`;
37
+ };
38
+ export declare function calculateSweepAmount(balanceAtomic: bigint, gasHeadroomAtomic: bigint): bigint;
39
+ export declare function getArcGasHeadroomAtomic(): bigint;
40
+ export declare function readUsdcBalance(args: {
41
+ network: string;
42
+ configured: AgentCashConfig["networks"][string];
43
+ address: Address;
44
+ allowPrivateNetwork?: boolean;
45
+ fetchImpl?: typeof fetch;
46
+ lookup?: LookupFn;
47
+ }): Promise<bigint>;
48
+ export declare function sweepBack(args: {
49
+ account: PrivateKeyAccount;
50
+ config: AgentCashConfig;
51
+ network: string;
52
+ destination: Address;
53
+ arcGasHeadroomAtomic?: bigint;
54
+ fetchImpl?: typeof fetch;
55
+ lookup?: LookupFn;
56
+ }): Promise<SweepResult>;
57
+ //# sourceMappingURL=sweep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sweep.d.ts","sourceRoot":"","sources":["../src/sweep.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAUnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBZ,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;CAC5B,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAK7F;AAED,wBAAgB,uBAAuB,IAAI,MAAM,CAYhD;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;IAChD,OAAO,EAAE,OAAO,CAAC;IACjB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,MAAM,CAAC,EAAE,QAAQ,CAAC;CACnB,GAAG,OAAO,CAAC,MAAM,CAAC,CAYlB;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE;IACpC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,MAAM,CAAC,EAAE,QAAQ,CAAC;CACnB,GAAG,OAAO,CAAC,WAAW,CAAC,CA4DvB"}
@@ -0,0 +1,28 @@
1
+ import type { Address, Hex } from "viem";
2
+ import type { ConfiguredNetwork } from "./networks.js";
3
+ import type { PaymentIntent, Policy } from "./policy.js";
4
+ import type { X402TypedData } from "./x402.js";
5
+ export interface Signer {
6
+ readonly address: Address;
7
+ signTypedData(typedData: X402TypedData): Promise<Hex>;
8
+ }
9
+ /** Local wallet seam: policy authorization is explicit and precedes signing. */
10
+ export interface Wallet extends Signer {
11
+ authorize(intent: PaymentIntent): Promise<void>;
12
+ balance(network: string, configured: ConfiguredNetwork): Promise<bigint>;
13
+ }
14
+ export declare class LocalWallet implements Wallet {
15
+ private readonly account;
16
+ private readonly policy;
17
+ readonly address: Address;
18
+ constructor(account: Signer, policy: Policy);
19
+ authorize(intent: PaymentIntent): Promise<void>;
20
+ signTypedData(typedData: X402TypedData): Promise<Hex>;
21
+ balance(network: string, configured: ConfiguredNetwork): Promise<bigint>;
22
+ }
23
+ export declare function openWallet(options: {
24
+ passphrase: string;
25
+ policy: Policy;
26
+ keystorePath?: string;
27
+ }): Promise<Wallet>;
28
+ //# sourceMappingURL=wallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAIzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,SAAS,EAAE,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CACvD;AAED,gFAAgF;AAChF,MAAM,WAAW,MAAO,SAAQ,MAAM;IACpC,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1E;AAED,qBAAa,WAAY,YAAW,MAAM;IAItC,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;gBAGP,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM;IAK3B,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,aAAa,CAAC,SAAS,EAAE,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC;IAIrD,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;CAG/E;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAAC,MAAM,CAAC,CAMlB"}
@@ -0,0 +1,32 @@
1
+ import { type Address } from "viem";
2
+ export declare const BASE_MAINNET_CAIP2: "eip155:8453";
3
+ export declare const ARC_TESTNET_CAIP2: "eip155:5042002";
4
+ export type CanonicalX402UsdcNetwork = typeof BASE_MAINNET_CAIP2 | typeof ARC_TESTNET_CAIP2;
5
+ export type X402TokenDomain = Readonly<{
6
+ name: string;
7
+ version: string;
8
+ }>;
9
+ export type CanonicalX402UsdcIdentity = Readonly<{
10
+ usdc: Address;
11
+ eip712Domain: X402TokenDomain;
12
+ }>;
13
+ export type X402NetworkConfig = Readonly<Record<string, Readonly<{
14
+ usdc: string;
15
+ enabled?: boolean;
16
+ eip712Domain?: X402TokenDomain;
17
+ }>>>;
18
+ /** Canonical token and signing-domain identity. This is not an enablement policy. */
19
+ export declare const CANONICAL_X402_USDC_NETWORKS: Readonly<{
20
+ "eip155:8453": Readonly<{
21
+ usdc: Address;
22
+ eip712Domain: X402TokenDomain;
23
+ }>;
24
+ "eip155:5042002": Readonly<{
25
+ usdc: Address;
26
+ eip712Domain: X402TokenDomain;
27
+ }>;
28
+ }>;
29
+ export declare function getCanonicalX402Usdc(network: string): CanonicalX402UsdcIdentity | undefined;
30
+ /** Networks the browser-wallet adapter is currently allowed to execute on. */
31
+ export declare const BROWSER_ENABLED_X402_NETWORK_CONFIG: X402NetworkConfig;
32
+ //# sourceMappingURL=x402-networks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"x402-networks.d.ts","sourceRoot":"","sources":["../src/x402-networks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AAEhD,eAAO,MAAM,kBAAkB,EAAG,aAAsB,CAAC;AACzD,eAAO,MAAM,iBAAiB,EAAG,gBAAyB,CAAC;AAE3D,MAAM,MAAM,wBAAwB,GAAG,OAAO,kBAAkB,GAAG,OAAO,iBAAiB,CAAC;AAE5F,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAAC;IAC/C,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,eAAe,CAAC;CAC/B,CAAC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CACtC,MAAM,CACJ,MAAM,EACN,QAAQ,CAAC;IACP,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,eAAe,CAAC;CAChC,CAAC,CACH,CACF,CAAC;AAqBF,qFAAqF;AACrF,eAAO,MAAM,4BAA4B;;cAnCjC,OAAO;sBACC,eAAe;;;cADvB,OAAO;sBACC,eAAe;;EAqCmD,CAAC;AAEnF,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,yBAAyB,GAAG,SAAS,CAK3F;AAUD,8EAA8E;AAC9E,eAAO,MAAM,mCAAmC,EAAE,iBAGhD,CAAC"}
package/dist/x402.d.ts ADDED
@@ -0,0 +1,138 @@
1
+ import { type Address, type Hex } from "viem";
2
+ import { type X402NetworkConfig } from "./x402-networks.js";
3
+ export type { Address, Hex } from "viem";
4
+ export { ARC_TESTNET_CAIP2, BASE_MAINNET_CAIP2, BROWSER_ENABLED_X402_NETWORK_CONFIG, CANONICAL_X402_USDC_NETWORKS, getCanonicalX402Usdc, type CanonicalX402UsdcIdentity, type CanonicalX402UsdcNetwork, type X402NetworkConfig, type X402TokenDomain, } from "./x402-networks.js";
5
+ export declare const EIP3009_AUTHORIZATION_TYPES: {
6
+ readonly TransferWithAuthorization: readonly [{
7
+ readonly name: "from";
8
+ readonly type: "address";
9
+ }, {
10
+ readonly name: "to";
11
+ readonly type: "address";
12
+ }, {
13
+ readonly name: "value";
14
+ readonly type: "uint256";
15
+ }, {
16
+ readonly name: "validAfter";
17
+ readonly type: "uint256";
18
+ }, {
19
+ readonly name: "validBefore";
20
+ readonly type: "uint256";
21
+ }, {
22
+ readonly name: "nonce";
23
+ readonly type: "bytes32";
24
+ }];
25
+ };
26
+ export type X402Resource = {
27
+ url: string;
28
+ description?: string;
29
+ mimeType?: string;
30
+ serviceName?: string;
31
+ tags?: string[];
32
+ iconUrl?: string;
33
+ };
34
+ export type X402PaymentRequirements = {
35
+ scheme: "exact";
36
+ network: `eip155:${number}`;
37
+ asset: Address;
38
+ amount: string;
39
+ payTo: Address;
40
+ maxTimeoutSeconds: number;
41
+ extra: Record<string, unknown> & {
42
+ name: string;
43
+ version: string;
44
+ };
45
+ };
46
+ export type X402Quote = {
47
+ x402Version: 2;
48
+ amountAtomic: bigint;
49
+ resource: X402Resource;
50
+ accepted: X402PaymentRequirements;
51
+ extensions?: Record<string, unknown>;
52
+ };
53
+ export type Eip3009Authorization = {
54
+ from: Address;
55
+ to: Address;
56
+ value: string;
57
+ validAfter: "0";
58
+ validBefore: string;
59
+ nonce: Hex;
60
+ };
61
+ export type X402TypedData = {
62
+ domain: {
63
+ name: string;
64
+ version: string;
65
+ chainId: number;
66
+ verifyingContract: Address;
67
+ };
68
+ types: typeof EIP3009_AUTHORIZATION_TYPES;
69
+ primaryType: "TransferWithAuthorization";
70
+ message: {
71
+ from: Address;
72
+ to: Address;
73
+ value: bigint;
74
+ validAfter: 0n;
75
+ validBefore: bigint;
76
+ nonce: Hex;
77
+ };
78
+ };
79
+ export type X402Signer = {
80
+ address: Address;
81
+ signTypedData(typedData: X402TypedData): Promise<Hex>;
82
+ };
83
+ export type X402PaymentPayload = {
84
+ x402Version: 2;
85
+ resource: X402Resource;
86
+ accepted: X402PaymentRequirements;
87
+ payload: {
88
+ signature: Hex;
89
+ authorization: Eip3009Authorization;
90
+ };
91
+ extensions?: Record<string, unknown>;
92
+ };
93
+ export type X402PaymentHeaders = {
94
+ "PAYMENT-SIGNATURE": string;
95
+ };
96
+ export type X402CompatiblePaymentHeaders = X402PaymentHeaders & {
97
+ "X-PAYMENT": string;
98
+ };
99
+ export type X402SettlementOutcome = "succeeded" | "rejected" | "unknown";
100
+ export declare class X402Error extends Error {
101
+ readonly code: "invalid_challenge" | "unsupported_challenge" | "max_price_exceeded";
102
+ constructor(code: "invalid_challenge" | "unsupported_challenge" | "max_price_exceeded", message: string, options?: ErrorOptions);
103
+ }
104
+ export declare function parse402Challenge(challenge: unknown, configuredNetworks: X402NetworkConfig, fallbackResourceUrl?: string, requiredNetwork?: string, expectedPayTo?: string): X402Quote;
105
+ export declare function parse402Response(response: Response, configuredNetworks: X402NetworkConfig, requiredNetwork?: string, expectedPayTo?: string): Promise<X402Quote>;
106
+ export declare function buildEip3009TypedData(args: {
107
+ from: Address;
108
+ quote: X402Quote;
109
+ nonce: Hex;
110
+ nowSeconds: number;
111
+ }): {
112
+ authorization: Eip3009Authorization;
113
+ typedData: X402TypedData;
114
+ };
115
+ export declare function buildX402Payment(args: {
116
+ signer: X402Signer;
117
+ quote: X402Quote;
118
+ nowSeconds?: number;
119
+ nonce?: Hex;
120
+ }): Promise<{
121
+ payload: X402PaymentPayload;
122
+ headers: X402PaymentHeaders;
123
+ }>;
124
+ /** Adds the older X-PAYMENT header while keeping PAYMENT-SIGNATURE canonical. */
125
+ export declare function buildCompatibleX402Payment(args: {
126
+ account: X402Signer;
127
+ quote: X402Quote;
128
+ nowSeconds?: number;
129
+ nonce?: Hex;
130
+ }): Promise<{
131
+ payload: X402PaymentPayload;
132
+ headers: X402CompatiblePaymentHeaders;
133
+ }>;
134
+ export declare function assertMaxPrice(amountAtomic: bigint, maxPriceUsd: number | string | undefined): void;
135
+ export declare function usdToAtomic(value: number | string): bigint;
136
+ export declare function parseSettlementResponse(headers: Headers): unknown | null;
137
+ export declare function classifySettlement(value: unknown): X402SettlementOutcome;
138
+ //# sourceMappingURL=x402.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"x402.d.ts","sourceRoot":"","sources":["../src/x402.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "@vapi-network/core",
3
+ "version": "0.2.0-dev.2",
4
+ "description": "Non-custodial x402 protocol, wallet policy, discovery, and receipts core",
5
+ "license": "Apache-2.0",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/vAPI-Network/vapi-network.git",
9
+ "directory": "packages/core"
10
+ },
11
+ "homepage": "https://github.com/vAPI-Network/vapi-network#readme",
12
+ "bugs": {
13
+ "url": "https://github.com/vAPI-Network/vapi-network/issues"
14
+ },
15
+ "type": "module",
16
+ "sideEffects": false,
17
+ "files": [
18
+ "dist",
19
+ "README.md"
20
+ ],
21
+ "exports": {
22
+ ".": {
23
+ "types": "./dist/index.d.ts",
24
+ "import": "./dist/index.js"
25
+ }
26
+ },
27
+ "dependencies": {},
28
+ "engines": {
29
+ "node": ">=22"
30
+ },
31
+ "publishConfig": {
32
+ "access": "public",
33
+ "tag": "next"
34
+ }
35
+ }