@mcpaid/sdk 2.0.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.
Files changed (111) hide show
  1. package/LICENSE +176 -0
  2. package/NPM_RESTRUCTURE.md +86 -0
  3. package/OPERATOR-LICENSE.md +18 -0
  4. package/README.md +380 -0
  5. package/SELF-HOSTING.md +108 -0
  6. package/dist/circuit-breaker/circuit-breaker.d.ts +26 -0
  7. package/dist/circuit-breaker/circuit-breaker.d.ts.map +1 -0
  8. package/dist/circuit-breaker/circuit-breaker.js +128 -0
  9. package/dist/circuit-breaker/circuit-breaker.js.map +1 -0
  10. package/dist/cli.d.ts +21 -0
  11. package/dist/cli.d.ts.map +1 -0
  12. package/dist/cli.js +1560 -0
  13. package/dist/cli.js.map +1 -0
  14. package/dist/contracts/ToolPayRouter.d.ts +288 -0
  15. package/dist/contracts/ToolPayRouter.d.ts.map +1 -0
  16. package/dist/contracts/ToolPayRouter.js +370 -0
  17. package/dist/contracts/ToolPayRouter.js.map +1 -0
  18. package/dist/contracts/router-registry.d.ts +19 -0
  19. package/dist/contracts/router-registry.d.ts.map +1 -0
  20. package/dist/contracts/router-registry.js +28 -0
  21. package/dist/contracts/router-registry.js.map +1 -0
  22. package/dist/fee/fee-calculator.d.ts +35 -0
  23. package/dist/fee/fee-calculator.d.ts.map +1 -0
  24. package/dist/fee/fee-calculator.js +57 -0
  25. package/dist/fee/fee-calculator.js.map +1 -0
  26. package/dist/fee/fee-ledger.d.ts +66 -0
  27. package/dist/fee/fee-ledger.d.ts.map +1 -0
  28. package/dist/fee/fee-ledger.js +181 -0
  29. package/dist/fee/fee-ledger.js.map +1 -0
  30. package/dist/gateway/config-loader.d.ts +38 -0
  31. package/dist/gateway/config-loader.d.ts.map +1 -0
  32. package/dist/gateway/config-loader.js +125 -0
  33. package/dist/gateway/config-loader.js.map +1 -0
  34. package/dist/gateway/server-registry.d.ts +25 -0
  35. package/dist/gateway/server-registry.d.ts.map +1 -0
  36. package/dist/gateway/server-registry.js +59 -0
  37. package/dist/gateway/server-registry.js.map +1 -0
  38. package/dist/gateway/toolpay-gateway.d.ts +57 -0
  39. package/dist/gateway/toolpay-gateway.d.ts.map +1 -0
  40. package/dist/gateway/toolpay-gateway.js +320 -0
  41. package/dist/gateway/toolpay-gateway.js.map +1 -0
  42. package/dist/index.d.ts +36 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/index.js +37 -0
  45. package/dist/index.js.map +1 -0
  46. package/dist/sdk/client-agent.d.ts +47 -0
  47. package/dist/sdk/client-agent.d.ts.map +1 -0
  48. package/dist/sdk/client-agent.js +158 -0
  49. package/dist/sdk/client-agent.js.map +1 -0
  50. package/dist/sdk/server-sdk.d.ts +51 -0
  51. package/dist/sdk/server-sdk.d.ts.map +1 -0
  52. package/dist/sdk/server-sdk.js +170 -0
  53. package/dist/sdk/server-sdk.js.map +1 -0
  54. package/dist/settlement/base-contract-client.d.ts +156 -0
  55. package/dist/settlement/base-contract-client.d.ts.map +1 -0
  56. package/dist/settlement/base-contract-client.js +156 -0
  57. package/dist/settlement/base-contract-client.js.map +1 -0
  58. package/dist/settlement/nonce-store.d.ts +54 -0
  59. package/dist/settlement/nonce-store.d.ts.map +1 -0
  60. package/dist/settlement/nonce-store.js +125 -0
  61. package/dist/settlement/nonce-store.js.map +1 -0
  62. package/dist/settlement/onchain-verifier.d.ts +41 -0
  63. package/dist/settlement/onchain-verifier.d.ts.map +1 -0
  64. package/dist/settlement/onchain-verifier.js +114 -0
  65. package/dist/settlement/onchain-verifier.js.map +1 -0
  66. package/dist/settlement/payment-orchestrator.d.ts +59 -0
  67. package/dist/settlement/payment-orchestrator.d.ts.map +1 -0
  68. package/dist/settlement/payment-orchestrator.js +282 -0
  69. package/dist/settlement/payment-orchestrator.js.map +1 -0
  70. package/dist/settlement/permit-verifier.d.ts +60 -0
  71. package/dist/settlement/permit-verifier.d.ts.map +1 -0
  72. package/dist/settlement/permit-verifier.js +80 -0
  73. package/dist/settlement/permit-verifier.js.map +1 -0
  74. package/dist/settlement/session-wallet.d.ts +60 -0
  75. package/dist/settlement/session-wallet.d.ts.map +1 -0
  76. package/dist/settlement/session-wallet.js +105 -0
  77. package/dist/settlement/session-wallet.js.map +1 -0
  78. package/dist/transports/sse-transport.d.ts +27 -0
  79. package/dist/transports/sse-transport.d.ts.map +1 -0
  80. package/dist/transports/sse-transport.js +65 -0
  81. package/dist/transports/sse-transport.js.map +1 -0
  82. package/dist/transports/stdio-bridge.d.ts +29 -0
  83. package/dist/transports/stdio-bridge.d.ts.map +1 -0
  84. package/dist/transports/stdio-bridge.js +133 -0
  85. package/dist/transports/stdio-bridge.js.map +1 -0
  86. package/dist/types/circuit-breaker.d.ts +22 -0
  87. package/dist/types/circuit-breaker.d.ts.map +1 -0
  88. package/dist/types/circuit-breaker.js +5 -0
  89. package/dist/types/circuit-breaker.js.map +1 -0
  90. package/dist/types/ledger.d.ts +57 -0
  91. package/dist/types/ledger.d.ts.map +1 -0
  92. package/dist/types/ledger.js +5 -0
  93. package/dist/types/ledger.js.map +1 -0
  94. package/dist/types/mcp.d.ts +67 -0
  95. package/dist/types/mcp.d.ts.map +1 -0
  96. package/dist/types/mcp.js +5 -0
  97. package/dist/types/mcp.js.map +1 -0
  98. package/dist/types/pricing.d.ts +68 -0
  99. package/dist/types/pricing.d.ts.map +1 -0
  100. package/dist/types/pricing.js +5 -0
  101. package/dist/types/pricing.js.map +1 -0
  102. package/dist/types/x402.d.ts +76 -0
  103. package/dist/types/x402.d.ts.map +1 -0
  104. package/dist/types/x402.js +5 -0
  105. package/dist/types/x402.js.map +1 -0
  106. package/dist/utils/units.d.ts +45 -0
  107. package/dist/utils/units.d.ts.map +1 -0
  108. package/dist/utils/units.js +141 -0
  109. package/dist/utils/units.js.map +1 -0
  110. package/package.json +72 -0
  111. package/src/contracts/ToolPayRouter.json +371 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment-orchestrator.js","sourceRoot":"","sources":["../../src/settlement/payment-orchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * ToolPay EIP-712 Micro-Voucher Verifier
3
+ * Enables instant, gasless sub-cent micro-authorizations signed by agent wallets.
4
+ */
5
+ import { type Address } from 'viem';
6
+ import { X402ChallengeData } from '../types/x402.js';
7
+ export declare const TOOLPAY_PERMIT_DOMAIN: {
8
+ readonly name: "ToolPay MicroPermit";
9
+ readonly version: "1";
10
+ readonly chainId: 8453;
11
+ readonly verifyingContract: Address;
12
+ };
13
+ export declare const TOOLPAY_PERMIT_TYPES: {
14
+ readonly ToolPayment: readonly [{
15
+ readonly name: "serverId";
16
+ readonly type: "string";
17
+ }, {
18
+ readonly name: "toolName";
19
+ readonly type: "string";
20
+ }, {
21
+ readonly name: "challengeNonce";
22
+ readonly type: "string";
23
+ }, {
24
+ readonly name: "amountMicro";
25
+ readonly type: "uint256";
26
+ }, {
27
+ readonly name: "recipient";
28
+ readonly type: "address";
29
+ }, {
30
+ readonly name: "deadline";
31
+ readonly type: "uint256";
32
+ }];
33
+ };
34
+ export interface ToolPaymentMessage {
35
+ serverId: string;
36
+ toolName: string;
37
+ challengeNonce: string;
38
+ amountMicro: bigint;
39
+ recipient: Address;
40
+ deadline: bigint;
41
+ }
42
+ export declare class PermitVerifier {
43
+ private chainId;
44
+ constructor(chainId?: number);
45
+ /**
46
+ * Verifies an EIP-712 signature against the challenge parameters and agent signer.
47
+ */
48
+ verifyPermit(params: {
49
+ signerWallet: string;
50
+ signature: string;
51
+ challenge: X402ChallengeData;
52
+ deadlineSec: number;
53
+ amountMicro: bigint;
54
+ nowSec?: number;
55
+ }): Promise<{
56
+ valid: boolean;
57
+ error?: string;
58
+ }>;
59
+ }
60
+ //# sourceMappingURL=permit-verifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permit-verifier.d.ts","sourceRoot":"","sources":["../../src/settlement/permit-verifier.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAA6B,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,eAAO,MAAM,qBAAqB;;;;gCAImB,OAAO;CAClD,CAAC;AAEX,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;CASvB,CAAC;AAEX,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,GAAE,MAAa;IAIlC;;OAEG;IACU,YAAY,CAAC,MAAM,EAAE;QAChC,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,iBAAiB,CAAC;QAC7B,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAuDhD"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * ToolPay EIP-712 Micro-Voucher Verifier
3
+ * Enables instant, gasless sub-cent micro-authorizations signed by agent wallets.
4
+ */
5
+ import { verifyTypedData } from 'viem';
6
+ import { OFFICIAL_ROUTER_ADDRESS_BASE } from '../contracts/router-registry.js';
7
+ export const TOOLPAY_PERMIT_DOMAIN = {
8
+ name: 'ToolPay MicroPermit',
9
+ version: '1',
10
+ chainId: 8453, // Base Mainnet
11
+ verifyingContract: OFFICIAL_ROUTER_ADDRESS_BASE,
12
+ };
13
+ export const TOOLPAY_PERMIT_TYPES = {
14
+ ToolPayment: [
15
+ { name: 'serverId', type: 'string' },
16
+ { name: 'toolName', type: 'string' },
17
+ { name: 'challengeNonce', type: 'string' },
18
+ { name: 'amountMicro', type: 'uint256' },
19
+ { name: 'recipient', type: 'address' },
20
+ { name: 'deadline', type: 'uint256' },
21
+ ],
22
+ };
23
+ export class PermitVerifier {
24
+ chainId;
25
+ constructor(chainId = 8453) {
26
+ this.chainId = chainId;
27
+ }
28
+ /**
29
+ * Verifies an EIP-712 signature against the challenge parameters and agent signer.
30
+ */
31
+ async verifyPermit(params) {
32
+ const now = params.nowSec || Math.floor(Date.now() / 1000);
33
+ // 1. Check deadline expiration
34
+ if (now > params.deadlineSec) {
35
+ return { valid: false, error: `Permit deadline expired (${params.deadlineSec} < ${now})` };
36
+ }
37
+ // 2. Check sufficient authorized amount
38
+ if (params.amountMicro < params.challenge.amountMicro) {
39
+ return {
40
+ valid: false,
41
+ error: `Authorized amount ${params.amountMicro} is less than required ${params.challenge.amountMicro}`,
42
+ };
43
+ }
44
+ const domain = {
45
+ ...TOOLPAY_PERMIT_DOMAIN,
46
+ chainId: params.challenge.chainId || this.chainId,
47
+ // Bind to the challenge's router when present (official routers) so
48
+ // vouchers are scoped to the settling contract. Falls back to the
49
+ // official Base router; forks using another router produce vouchers
50
+ // official clients will warn on (see client-agent).
51
+ verifyingContract: params.challenge.verifyingContract || TOOLPAY_PERMIT_DOMAIN.verifyingContract,
52
+ };
53
+ const message = {
54
+ serverId: params.challenge.serverId,
55
+ toolName: params.challenge.toolName,
56
+ challengeNonce: params.challenge.challengeNonce,
57
+ amountMicro: params.amountMicro,
58
+ recipient: params.challenge.recipientWallet,
59
+ deadline: BigInt(params.deadlineSec),
60
+ };
61
+ try {
62
+ const isValid = await verifyTypedData({
63
+ address: params.signerWallet,
64
+ domain,
65
+ types: TOOLPAY_PERMIT_TYPES,
66
+ primaryType: 'ToolPayment',
67
+ message,
68
+ signature: params.signature,
69
+ });
70
+ if (!isValid) {
71
+ return { valid: false, error: 'Cryptographic signature verification failed' };
72
+ }
73
+ return { valid: true };
74
+ }
75
+ catch (err) {
76
+ return { valid: false, error: `Signature verification exception: ${err.message}` };
77
+ }
78
+ }
79
+ }
80
+ //# sourceMappingURL=permit-verifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permit-verifier.js","sourceRoot":"","sources":["../../src/settlement/permit-verifier.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAA0B,MAAM,MAAM,CAAC;AAE/D,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAE/E,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,IAAI,EAAE,qBAAqB;IAC3B,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,IAAI,EAAE,eAAe;IAC9B,iBAAiB,EAAE,4BAAuC;CAClD,CAAC;AAEX,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,WAAW,EAAE;QACX,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE;QACpC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE;QACpC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC1C,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE;QACxC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;QACtC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;KACtC;CACO,CAAC;AAWX,MAAM,OAAO,cAAc;IACjB,OAAO,CAAS;IAExB,YAAY,UAAkB,IAAI;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,YAAY,CAAC,MAOzB;QACC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAE3D,+BAA+B;QAC/B,IAAI,GAAG,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YAC7B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,4BAA4B,MAAM,CAAC,WAAW,MAAM,GAAG,GAAG,EAAE,CAAC;QAC7F,CAAC;QAED,wCAAwC;QACxC,IAAI,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YACtD,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,qBAAqB,MAAM,CAAC,WAAW,0BAA0B,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE;aACvG,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG;YACb,GAAG,qBAAqB;YACxB,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO;YACjD,oEAAoE;YACpE,kEAAkE;YAClE,oEAAoE;YACpE,oDAAoD;YACpD,iBAAiB,EACd,MAAM,CAAC,SAAiB,CAAC,iBAAiB,IAAI,qBAAqB,CAAC,iBAAiB;SACzF,CAAC;QAEF,MAAM,OAAO,GAAuB;YAClC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ;YACnC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ;YACnC,cAAc,EAAE,MAAM,CAAC,SAAS,CAAC,cAAc;YAC/C,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,eAA0B;YACtD,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;SACrC,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC;gBACpC,OAAO,EAAE,MAAM,CAAC,YAAuB;gBACvC,MAAM;gBACN,KAAK,EAAE,oBAAoB;gBAC3B,WAAW,EAAE,aAAa;gBAC1B,OAAO;gBACP,SAAS,EAAE,MAAM,CAAC,SAAgB;aACnC,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,6CAA6C,EAAE,CAAC;YAChF,CAAC;YAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACzB,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,qCAAqC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;QACrF,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * ToolPay Pre-Funded Session Wallet Manager
3
+ * Supports zero-latency sub-cent micro-metering for autonomous agent swarms.
4
+ */
5
+ export interface SessionWalletAccount {
6
+ sessionId: string;
7
+ agentWallet: string;
8
+ balanceMicro: bigint;
9
+ totalDepositedMicro: bigint;
10
+ totalSpentMicro: bigint;
11
+ createdAt: number;
12
+ expiresAt: number;
13
+ }
14
+ export declare class SessionWalletManager {
15
+ private sessions;
16
+ /**
17
+ * Opens or top-ups a pre-funded agent session.
18
+ */
19
+ openOrTopUpSession(params: {
20
+ agentWallet: string;
21
+ depositAmountMicro: bigint;
22
+ ttlSeconds?: number;
23
+ existingSessionId?: string;
24
+ }): SessionWalletAccount;
25
+ /**
26
+ * Deducts funds for a tool call.
27
+ */
28
+ deductPayment(params: {
29
+ sessionId: string;
30
+ agentWallet: string;
31
+ amountMicro: bigint;
32
+ }): {
33
+ success: boolean;
34
+ remainingBalanceMicro: bigint;
35
+ error?: string;
36
+ };
37
+ /**
38
+ * Retrieves a session by ID.
39
+ */
40
+ getSession(sessionId: string): SessionWalletAccount | undefined;
41
+ /**
42
+ * Refunds a deducted payment back to the session wallet if upstream execution failed.
43
+ */
44
+ refundPayment(params: {
45
+ sessionId: string;
46
+ amountMicro: bigint;
47
+ }): {
48
+ success: boolean;
49
+ newBalanceMicro: bigint;
50
+ };
51
+ /**
52
+ * Withdraws remaining balance from a session wallet.
53
+ */
54
+ withdrawSessionBalance(sessionId: string, agentWallet: string): {
55
+ success: boolean;
56
+ withdrawnMicro: bigint;
57
+ error?: string;
58
+ };
59
+ }
60
+ //# sourceMappingURL=session-wallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-wallet.d.ts","sourceRoot":"","sources":["../../src/settlement/session-wallet.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAgD;IAEhE;;OAEG;IACI,kBAAkB,CAAC,MAAM,EAAE;QAChC,WAAW,EAAE,MAAM,CAAC;QACpB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,GAAG,oBAAoB;IA0BxB;;OAEG;IACI,aAAa,CAAC,MAAM,EAAE;QAC3B,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;KACrB,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,qBAAqB,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAuCvE;;OAEG;IACI,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS;IAItE;;OAEG;IACI,aAAa,CAAC,MAAM,EAAE;QAC3B,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;KACrB,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE;IAYjD;;OAEG;IACI,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG;QACrE,OAAO,EAAE,OAAO,CAAC;QACjB,cAAc,EAAE,MAAM,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB;CAYF"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * ToolPay Pre-Funded Session Wallet Manager
3
+ * Supports zero-latency sub-cent micro-metering for autonomous agent swarms.
4
+ */
5
+ import { randomUUID } from 'node:crypto';
6
+ export class SessionWalletManager {
7
+ sessions = new Map();
8
+ /**
9
+ * Opens or top-ups a pre-funded agent session.
10
+ */
11
+ openOrTopUpSession(params) {
12
+ const now = Date.now();
13
+ const ttlMs = (params.ttlSeconds || 86400) * 1000;
14
+ const sessionId = params.existingSessionId || `session_${randomUUID()}`;
15
+ let account = this.sessions.get(sessionId);
16
+ if (!account) {
17
+ account = {
18
+ sessionId,
19
+ agentWallet: params.agentWallet.toLowerCase(),
20
+ balanceMicro: 0n,
21
+ totalDepositedMicro: 0n,
22
+ totalSpentMicro: 0n,
23
+ createdAt: now,
24
+ expiresAt: now + ttlMs,
25
+ };
26
+ this.sessions.set(sessionId, account);
27
+ }
28
+ account.balanceMicro += params.depositAmountMicro;
29
+ account.totalDepositedMicro += params.depositAmountMicro;
30
+ account.expiresAt = now + ttlMs;
31
+ return account;
32
+ }
33
+ /**
34
+ * Deducts funds for a tool call.
35
+ */
36
+ deductPayment(params) {
37
+ const account = this.sessions.get(params.sessionId);
38
+ if (!account) {
39
+ return { success: false, remainingBalanceMicro: 0n, error: `Session "${params.sessionId}" not found` };
40
+ }
41
+ if (account.agentWallet !== params.agentWallet.toLowerCase()) {
42
+ return {
43
+ success: false,
44
+ remainingBalanceMicro: account.balanceMicro,
45
+ error: `Session owner mismatch (expected ${account.agentWallet}, got ${params.agentWallet})`,
46
+ };
47
+ }
48
+ if (Date.now() > account.expiresAt) {
49
+ return {
50
+ success: false,
51
+ remainingBalanceMicro: account.balanceMicro,
52
+ error: `Session "${params.sessionId}" has expired`,
53
+ };
54
+ }
55
+ if (account.balanceMicro < params.amountMicro) {
56
+ return {
57
+ success: false,
58
+ remainingBalanceMicro: account.balanceMicro,
59
+ error: `Insufficient session balance: has ${account.balanceMicro} micro-units, requires ${params.amountMicro}`,
60
+ };
61
+ }
62
+ account.balanceMicro -= params.amountMicro;
63
+ account.totalSpentMicro += params.amountMicro;
64
+ return {
65
+ success: true,
66
+ remainingBalanceMicro: account.balanceMicro,
67
+ };
68
+ }
69
+ /**
70
+ * Retrieves a session by ID.
71
+ */
72
+ getSession(sessionId) {
73
+ return this.sessions.get(sessionId);
74
+ }
75
+ /**
76
+ * Refunds a deducted payment back to the session wallet if upstream execution failed.
77
+ */
78
+ refundPayment(params) {
79
+ const account = this.sessions.get(params.sessionId);
80
+ if (!account) {
81
+ return { success: false, newBalanceMicro: 0n };
82
+ }
83
+ account.balanceMicro += params.amountMicro;
84
+ if (account.totalSpentMicro >= params.amountMicro) {
85
+ account.totalSpentMicro -= params.amountMicro;
86
+ }
87
+ return { success: true, newBalanceMicro: account.balanceMicro };
88
+ }
89
+ /**
90
+ * Withdraws remaining balance from a session wallet.
91
+ */
92
+ withdrawSessionBalance(sessionId, agentWallet) {
93
+ const account = this.sessions.get(sessionId);
94
+ if (!account) {
95
+ return { success: false, withdrawnMicro: 0n, error: `Session "${sessionId}" not found` };
96
+ }
97
+ if (account.agentWallet !== agentWallet.toLowerCase()) {
98
+ return { success: false, withdrawnMicro: 0n, error: 'Unauthorized: agent wallet does not match session owner' };
99
+ }
100
+ const refundAmount = account.balanceMicro;
101
+ account.balanceMicro = 0n;
102
+ return { success: true, withdrawnMicro: refundAmount };
103
+ }
104
+ }
105
+ //# sourceMappingURL=session-wallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-wallet.js","sourceRoot":"","sources":["../../src/settlement/session-wallet.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * ToolPay Server-Sent Events (SSE) Streaming Transport
3
+ * Provides long-lived streaming transport for MCP clients and AI agent harnesses.
4
+ */
5
+ import { JsonRpcResponse } from '../types/mcp.js';
6
+ export interface SseSession {
7
+ sessionId: string;
8
+ writeMessage: (event: string, data: any) => void;
9
+ close: () => void;
10
+ }
11
+ export declare class SseTransportManager {
12
+ private sessions;
13
+ /**
14
+ * Creates an SSE stream compatible with Cloudflare Workers Response / Node HTTP.
15
+ */
16
+ createSseStream(sessionId: string): {
17
+ readable: ReadableStream;
18
+ session: SseSession;
19
+ };
20
+ /**
21
+ * Broadcasts a JSON-RPC response to a connected session.
22
+ */
23
+ sendResponse(sessionId: string, response: JsonRpcResponse): boolean;
24
+ getSession(sessionId: string): SseSession | undefined;
25
+ closeSession(sessionId: string): void;
26
+ }
27
+ //# sourceMappingURL=sse-transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse-transport.d.ts","sourceRoot":"","sources":["../../src/transports/sse-transport.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IACjD,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAsC;IAEtD;;OAEG;IACI,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG;QACzC,QAAQ,EAAE,cAAc,CAAC;QACzB,OAAO,EAAE,UAAU,CAAC;KACrB;IAyCD;;OAEG;IACI,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,OAAO;IAOnE,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIrD,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;CAM7C"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * ToolPay Server-Sent Events (SSE) Streaming Transport
3
+ * Provides long-lived streaming transport for MCP clients and AI agent harnesses.
4
+ */
5
+ export class SseTransportManager {
6
+ sessions = new Map();
7
+ /**
8
+ * Creates an SSE stream compatible with Cloudflare Workers Response / Node HTTP.
9
+ */
10
+ createSseStream(sessionId) {
11
+ let controllerRef;
12
+ const stream = new ReadableStream({
13
+ start(controller) {
14
+ controllerRef = controller;
15
+ },
16
+ cancel() {
17
+ // Clean up on client disconnect
18
+ sessionsRef.delete(sessionId);
19
+ },
20
+ });
21
+ const sessionsRef = this.sessions;
22
+ const encoder = new TextEncoder();
23
+ const session = {
24
+ sessionId,
25
+ writeMessage(event, data) {
26
+ const payload = typeof data === 'string' ? data : JSON.stringify(data);
27
+ const formatted = `event: ${event}\ndata: ${payload}\n\n`;
28
+ controllerRef.enqueue(encoder.encode(formatted));
29
+ },
30
+ close() {
31
+ try {
32
+ controllerRef.close();
33
+ }
34
+ catch {
35
+ // Ignore if already closed
36
+ }
37
+ sessionsRef.delete(sessionId);
38
+ },
39
+ };
40
+ this.sessions.set(sessionId, session);
41
+ // Initial connection event
42
+ session.writeMessage('endpoint', { uri: `/message?sessionId=${sessionId}` });
43
+ return { readable: stream, session };
44
+ }
45
+ /**
46
+ * Broadcasts a JSON-RPC response to a connected session.
47
+ */
48
+ sendResponse(sessionId, response) {
49
+ const session = this.sessions.get(sessionId);
50
+ if (!session)
51
+ return false;
52
+ session.writeMessage('message', response);
53
+ return true;
54
+ }
55
+ getSession(sessionId) {
56
+ return this.sessions.get(sessionId);
57
+ }
58
+ closeSession(sessionId) {
59
+ const session = this.sessions.get(sessionId);
60
+ if (session) {
61
+ session.close();
62
+ }
63
+ }
64
+ }
65
+ //# sourceMappingURL=sse-transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse-transport.js","sourceRoot":"","sources":["../../src/transports/sse-transport.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,MAAM,OAAO,mBAAmB;IACtB,QAAQ,GAA4B,IAAI,GAAG,EAAE,CAAC;IAEtD;;OAEG;IACI,eAAe,CAAC,SAAiB;QAItC,IAAI,aAA0D,CAAC;QAE/D,MAAM,MAAM,GAAG,IAAI,cAAc,CAAa;YAC5C,KAAK,CAAC,UAAU;gBACd,aAAa,GAAG,UAAU,CAAC;YAC7B,CAAC;YACD,MAAM;gBACJ,gCAAgC;gBAChC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAChC,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAElC,MAAM,OAAO,GAAe;YAC1B,SAAS;YACT,YAAY,CAAC,KAAa,EAAE,IAAS;gBACnC,MAAM,OAAO,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACvE,MAAM,SAAS,GAAG,UAAU,KAAK,WAAW,OAAO,MAAM,CAAC;gBAC1D,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;YACnD,CAAC;YACD,KAAK;gBACH,IAAI,CAAC;oBACH,aAAa,CAAC,KAAK,EAAE,CAAC;gBACxB,CAAC;gBAAC,MAAM,CAAC;oBACP,2BAA2B;gBAC7B,CAAC;gBACD,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAChC,CAAC;SACF,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAEtC,2BAA2B;QAC3B,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,sBAAsB,SAAS,EAAE,EAAE,CAAC,CAAC;QAE7E,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IACvC,CAAC;IAED;;OAEG;IACI,YAAY,CAAC,SAAiB,EAAE,QAAyB;QAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAC3B,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,UAAU,CAAC,SAAiB;QACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAEM,YAAY,CAAC,SAAiB;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * ToolPay Stdio Bridge
3
+ * Bridges local desktop MCP harnesses (Claude Desktop, Cursor, local agent swarms) to ToolPay gateways.
4
+ * Reads JSON-RPC line-by-line from stdin, forwards to ToolPay, and outputs responses to stdout.
5
+ */
6
+ import { JsonRpcRequest, JsonRpcResponse } from '../types/mcp.js';
7
+ import { PaymentProof } from '../types/x402.js';
8
+ export interface StdioBridgeOptions {
9
+ gatewayUrl: string;
10
+ agentWallet?: string;
11
+ privateKey?: string;
12
+ autoApproveMaxUsd?: number;
13
+ }
14
+ export declare class StdioBridge {
15
+ private gatewayUrl;
16
+ private agentWallet?;
17
+ private clientAgent?;
18
+ constructor(options: StdioBridgeOptions);
19
+ /**
20
+ * Starts listening on standard input and forwarding to ToolPay gateway.
21
+ */
22
+ start(stdin?: NodeJS.ReadStream & {
23
+ fd: 0;
24
+ }, stdout?: NodeJS.WriteStream & {
25
+ fd: 1;
26
+ }): void;
27
+ forwardRequest(req: JsonRpcRequest, proof?: PaymentProof): Promise<JsonRpcResponse>;
28
+ }
29
+ //# sourceMappingURL=stdio-bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdio-bridge.d.ts","sourceRoot":"","sources":["../../src/transports/stdio-bridge.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAIhD,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,WAAW,CAAC,CAAqB;gBAE7B,OAAO,EAAE,kBAAkB;IAevC;;OAEG;IACI,KAAK,CAAC,KAAK;;KAAgB,EAAE,MAAM;;KAAiB,GAAG,IAAI;IA6DrD,cAAc,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC;CA2CjG"}
@@ -0,0 +1,133 @@
1
+ /**
2
+ * ToolPay Stdio Bridge
3
+ * Bridges local desktop MCP harnesses (Claude Desktop, Cursor, local agent swarms) to ToolPay gateways.
4
+ * Reads JSON-RPC line-by-line from stdin, forwards to ToolPay, and outputs responses to stdout.
5
+ */
6
+ import { createInterface } from 'node:readline';
7
+ import { safeJsonStringify } from '../utils/units.js';
8
+ import { ToolPayClientAgent } from '../sdk/client-agent.js';
9
+ export class StdioBridge {
10
+ gatewayUrl;
11
+ agentWallet;
12
+ clientAgent;
13
+ constructor(options) {
14
+ this.gatewayUrl = options.gatewayUrl;
15
+ this.agentWallet = options.agentWallet;
16
+ if (options.privateKey) {
17
+ this.clientAgent = new ToolPayClientAgent({
18
+ privateKey: options.privateKey,
19
+ spendPolicy: {
20
+ autoApprove: true,
21
+ maxPricePerCallUsd: options.autoApproveMaxUsd !== undefined ? options.autoApproveMaxUsd.toString() : undefined,
22
+ },
23
+ });
24
+ this.agentWallet = this.clientAgent.walletAddress;
25
+ }
26
+ }
27
+ /**
28
+ * Starts listening on standard input and forwarding to ToolPay gateway.
29
+ */
30
+ start(stdin = process.stdin, stdout = process.stdout) {
31
+ const rl = createInterface({
32
+ input: stdin,
33
+ output: stdout,
34
+ terminal: false,
35
+ });
36
+ rl.on('line', async (line) => {
37
+ const trimmed = line.trim();
38
+ if (!trimmed)
39
+ return;
40
+ let req;
41
+ try {
42
+ req = JSON.parse(trimmed);
43
+ }
44
+ catch (err) {
45
+ const errResponse = {
46
+ jsonrpc: '2.0',
47
+ id: null,
48
+ error: { code: -32700, message: `Stdio bridge parse error: ${err.message}` },
49
+ };
50
+ stdout.write(safeJsonStringify(errResponse) + '\n');
51
+ return;
52
+ }
53
+ try {
54
+ let response;
55
+ if (this.clientAgent && req.method === 'tools/call') {
56
+ const res = await this.clientAgent.executeToolCall(req, async (r, proof) => {
57
+ const rawRes = await this.forwardRequest(r, proof);
58
+ let statusCode = 200;
59
+ if (rawRes.error) {
60
+ if (rawRes.error.code === 402 || rawRes.error.code === -32002) {
61
+ statusCode = 402;
62
+ }
63
+ else if (rawRes.error.code === 429 || rawRes.error.code === -32029) {
64
+ statusCode = 429;
65
+ }
66
+ else {
67
+ statusCode = 500;
68
+ }
69
+ }
70
+ return {
71
+ statusCode,
72
+ headers: {},
73
+ body: rawRes,
74
+ };
75
+ });
76
+ response = res.body;
77
+ }
78
+ else {
79
+ response = await this.forwardRequest(req);
80
+ }
81
+ stdout.write(safeJsonStringify(response) + '\n');
82
+ }
83
+ catch (err) {
84
+ const errResponse = {
85
+ jsonrpc: '2.0',
86
+ id: req.id ?? null,
87
+ error: { code: -32000, message: `ToolPay bridge error: ${err.message}` },
88
+ };
89
+ stdout.write(safeJsonStringify(errResponse) + '\n');
90
+ }
91
+ });
92
+ }
93
+ async forwardRequest(req, proof) {
94
+ const headers = {
95
+ 'Content-Type': 'application/json',
96
+ };
97
+ if (this.agentWallet) {
98
+ headers['X-Agent-Wallet'] = this.agentWallet;
99
+ }
100
+ if (proof) {
101
+ headers['Authorization'] = safeJsonStringify(proof);
102
+ }
103
+ try {
104
+ const res = await fetch(this.gatewayUrl, {
105
+ method: 'POST',
106
+ headers,
107
+ body: safeJsonStringify(req),
108
+ });
109
+ const body = (await res.json());
110
+ // If gateway returned 402, wrap it as an MCP error or actionable prompt
111
+ if (res.status === 402) {
112
+ return {
113
+ jsonrpc: '2.0',
114
+ id: req.id ?? null,
115
+ error: {
116
+ code: 402,
117
+ message: body.error?.message || 'Payment Required for this tool',
118
+ data: body.error?.data,
119
+ },
120
+ };
121
+ }
122
+ return body;
123
+ }
124
+ catch (err) {
125
+ return {
126
+ jsonrpc: '2.0',
127
+ id: req.id ?? null,
128
+ error: { code: -32000, message: `Failed to communicate with ToolPay gateway: ${err.message}` },
129
+ };
130
+ }
131
+ }
132
+ }
133
+ //# sourceMappingURL=stdio-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdio-bridge.js","sourceRoot":"","sources":["../../src/transports/stdio-bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * ToolPay Circuit Breaker and Agent Loop Prevention Types
3
+ */
4
+ export interface CircuitBreakerCheckParams {
5
+ serverId: string;
6
+ toolName: string;
7
+ agentWallet: string;
8
+ costMicro: bigint;
9
+ callArguments?: Record<string, any>;
10
+ timestamp?: number;
11
+ }
12
+ export interface CircuitBreakerCheckResult {
13
+ allowed: boolean;
14
+ statusCode?: 429 | 402;
15
+ reason?: string;
16
+ retryAfterSeconds?: number;
17
+ currentSpendMicro?: bigint;
18
+ maxSessionSpendMicro?: bigint;
19
+ callsInWindow?: number;
20
+ maxCallsPerMinute?: number;
21
+ }
22
+ //# sourceMappingURL=circuit-breaker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"circuit-breaker.d.ts","sourceRoot":"","sources":["../../src/types/circuit-breaker.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B"}