agentic-payments 0.1.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/README.md +924 -0
- package/bin/cli.js +18 -0
- package/bin/mcp.js +10 -0
- package/completions/agentic-payments.bash +21 -0
- package/completions/agentic-payments.fish +9 -0
- package/completions/agentic-payments.zsh +17 -0
- package/completions/bash.sh +182 -0
- package/completions/fish.fish +110 -0
- package/completions/zsh.sh +175 -0
- package/dist/active-mandate/i18n.d.ts +27 -0
- package/dist/active-mandate/i18n.d.ts.map +1 -0
- package/dist/active-mandate/i18n.js +35 -0
- package/dist/active-mandate/i18n.js.map +1 -0
- package/dist/active-mandate/index.d.ts +26 -0
- package/dist/active-mandate/index.d.ts.map +1 -0
- package/dist/active-mandate/index.js +51 -0
- package/dist/active-mandate/index.js.map +1 -0
- package/dist/active-mandate/revocation.d.ts +11 -0
- package/dist/active-mandate/revocation.d.ts.map +1 -0
- package/dist/active-mandate/revocation.js +27 -0
- package/dist/active-mandate/revocation.js.map +1 -0
- package/dist/active-mandate/schema.d.ts +85 -0
- package/dist/active-mandate/schema.d.ts.map +1 -0
- package/dist/active-mandate/schema.js +36 -0
- package/dist/active-mandate/schema.js.map +1 -0
- package/dist/active-mandate/signing.d.ts +8 -0
- package/dist/active-mandate/signing.d.ts.map +1 -0
- package/dist/active-mandate/signing.js +64 -0
- package/dist/active-mandate/signing.js.map +1 -0
- package/dist/active-mandate/types.d.ts +59 -0
- package/dist/active-mandate/types.d.ts.map +1 -0
- package/dist/active-mandate/types.js +6 -0
- package/dist/active-mandate/types.js.map +1 -0
- package/dist/cli/commands/active-mandate.d.ts +4 -0
- package/dist/cli/commands/active-mandate.d.ts.map +1 -0
- package/dist/cli/commands/active-mandate.js +218 -0
- package/dist/cli/commands/active-mandate.js.map +1 -0
- package/dist/cli/commands/generate.d.ts +3 -0
- package/dist/cli/commands/generate.d.ts.map +1 -0
- package/dist/cli/commands/generate.js +59 -0
- package/dist/cli/commands/generate.js.map +1 -0
- package/dist/cli/commands/mandate.d.ts +4 -0
- package/dist/cli/commands/mandate.d.ts.map +1 -0
- package/dist/cli/commands/mandate.js +223 -0
- package/dist/cli/commands/mandate.js.map +1 -0
- package/dist/cli/commands/system.d.ts +4 -0
- package/dist/cli/commands/system.d.ts.map +1 -0
- package/dist/cli/commands/system.js +101 -0
- package/dist/cli/commands/system.js.map +1 -0
- package/dist/cli/commands/verify.d.ts +3 -0
- package/dist/cli/commands/verify.d.ts.map +1 -0
- package/dist/cli/commands/verify.js +104 -0
- package/dist/cli/commands/verify.js.map +1 -0
- package/dist/cli/completion.d.ts +3 -0
- package/dist/cli/completion.d.ts.map +1 -0
- package/dist/cli/completion.js +245 -0
- package/dist/cli/completion.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +79 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/errors.d.ts +58 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +100 -0
- package/dist/errors.js.map +1 -0
- package/dist/identity.d.ts +78 -0
- package/dist/identity.d.ts.map +1 -0
- package/dist/identity.js +204 -0
- package/dist/identity.js.map +1 -0
- package/dist/index.d.ts +68 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +79 -0
- package/dist/index.js.map +1 -0
- package/dist/mandate.d.ts +134 -0
- package/dist/mandate.d.ts.map +1 -0
- package/dist/mandate.js +342 -0
- package/dist/mandate.js.map +1 -0
- package/dist/mcp/index.d.ts +7 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +102 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/server.d.ts +38 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +126 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools/agent.d.ts +9 -0
- package/dist/mcp/tools/agent.d.ts.map +1 -0
- package/dist/mcp/tools/agent.js +34 -0
- package/dist/mcp/tools/agent.js.map +1 -0
- package/dist/mcp/tools/consensus.d.ts +9 -0
- package/dist/mcp/tools/consensus.d.ts.map +1 -0
- package/dist/mcp/tools/consensus.js +38 -0
- package/dist/mcp/tools/consensus.js.map +1 -0
- package/dist/mcp/tools/index.d.ts +45 -0
- package/dist/mcp/tools/index.d.ts.map +1 -0
- package/dist/mcp/tools/index.js +282 -0
- package/dist/mcp/tools/index.js.map +1 -0
- package/dist/mcp/tools/mandate.d.ts +31 -0
- package/dist/mcp/tools/mandate.d.ts.map +1 -0
- package/dist/mcp/tools/mandate.js +165 -0
- package/dist/mcp/tools/mandate.js.map +1 -0
- package/dist/mcp/tools/payment.d.ts +13 -0
- package/dist/mcp/tools/payment.d.ts.map +1 -0
- package/dist/mcp/tools/payment.js +66 -0
- package/dist/mcp/tools/payment.js.map +1 -0
- package/dist/mcp/tools/types.d.ts +63 -0
- package/dist/mcp/tools/types.d.ts.map +1 -0
- package/dist/mcp/tools/types.js +5 -0
- package/dist/mcp/tools/types.js.map +1 -0
- package/dist/mcp/transports/http.d.ts +52 -0
- package/dist/mcp/transports/http.d.ts.map +1 -0
- package/dist/mcp/transports/http.js +234 -0
- package/dist/mcp/transports/http.js.map +1 -0
- package/dist/types.d.ts +238 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +7 -0
- package/dist/types.js.map +1 -0
- package/dist/verification.d.ts +140 -0
- package/dist/verification.d.ts.map +1 -0
- package/dist/verification.js +285 -0
- package/dist/verification.js.map +1 -0
- package/package.json +175 -0
package/dist/identity.js
ADDED
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Identity - Pure TypeScript implementation with @noble/ed25519
|
|
3
|
+
* No WASM dependencies - native cryptography only
|
|
4
|
+
*/
|
|
5
|
+
import * as ed from '@noble/ed25519';
|
|
6
|
+
import { sha512 } from '@noble/hashes/sha512';
|
|
7
|
+
import { PaymentError, PaymentErrorCode } from './errors.js';
|
|
8
|
+
// Configure noble/ed25519 to use SHA-512
|
|
9
|
+
ed.etc.sha512Sync = (...m) => sha512(ed.etc.concatBytes(...m));
|
|
10
|
+
/**
|
|
11
|
+
* Agent Identity with Ed25519 cryptography
|
|
12
|
+
* 100% native TypeScript implementation using @noble/ed25519
|
|
13
|
+
*/
|
|
14
|
+
export class AgentIdentity {
|
|
15
|
+
privateKeyBytes;
|
|
16
|
+
publicKeyBytes;
|
|
17
|
+
didString;
|
|
18
|
+
createdAtMs;
|
|
19
|
+
constructor(privateKey, publicKey) {
|
|
20
|
+
this.privateKeyBytes = privateKey;
|
|
21
|
+
this.publicKeyBytes = publicKey;
|
|
22
|
+
this.didString = `did:agent:${this.publicKeyHex()}`;
|
|
23
|
+
this.createdAtMs = Date.now();
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Generate a new agent identity with random keypair
|
|
27
|
+
*/
|
|
28
|
+
static async generate() {
|
|
29
|
+
try {
|
|
30
|
+
const privateKey = ed.utils.randomPrivateKey();
|
|
31
|
+
const publicKey = await ed.getPublicKeyAsync(privateKey);
|
|
32
|
+
return new AgentIdentity(privateKey, publicKey);
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
throw new PaymentError(PaymentErrorCode.CRYPTO_ERROR, `Failed to generate identity: ${error instanceof Error ? error.message : 'unknown error'}`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Create identity from existing keys
|
|
40
|
+
*/
|
|
41
|
+
static async fromKeys(privateKey, publicKey) {
|
|
42
|
+
try {
|
|
43
|
+
const privKeyBytes = typeof privateKey === 'string' ? hexToBytes(privateKey) : privateKey;
|
|
44
|
+
const pubKeyBytes = typeof publicKey === 'string' ? hexToBytes(publicKey) : publicKey;
|
|
45
|
+
// Validate key sizes
|
|
46
|
+
if (privKeyBytes.length !== 32) {
|
|
47
|
+
throw new Error('Private key must be 32 bytes');
|
|
48
|
+
}
|
|
49
|
+
if (pubKeyBytes.length !== 32) {
|
|
50
|
+
throw new Error('Public key must be 32 bytes');
|
|
51
|
+
}
|
|
52
|
+
// Verify keypair matches
|
|
53
|
+
const derivedPublicKey = await ed.getPublicKeyAsync(privKeyBytes);
|
|
54
|
+
if (!areEqual(derivedPublicKey, pubKeyBytes)) {
|
|
55
|
+
throw new Error('Public key does not match private key');
|
|
56
|
+
}
|
|
57
|
+
return new AgentIdentity(privKeyBytes, pubKeyBytes);
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
throw new PaymentError(PaymentErrorCode.CRYPTO_ERROR, `Failed to create identity from keys: ${error instanceof Error ? error.message : 'unknown error'}`);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Create identity from only public key (verification-only)
|
|
65
|
+
*/
|
|
66
|
+
static fromPublicKey(publicKey) {
|
|
67
|
+
try {
|
|
68
|
+
const pubKeyBytes = typeof publicKey === 'string' ? hexToBytes(publicKey) : publicKey;
|
|
69
|
+
if (pubKeyBytes.length !== 32) {
|
|
70
|
+
throw new Error('Public key must be 32 bytes');
|
|
71
|
+
}
|
|
72
|
+
// Create with empty private key for verification-only identity
|
|
73
|
+
return new AgentIdentity(new Uint8Array(32), pubKeyBytes);
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
throw new PaymentError(PaymentErrorCode.CRYPTO_ERROR, `Failed to create identity from public key: ${error instanceof Error ? error.message : 'unknown error'}`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Sign a message with this identity's private key
|
|
81
|
+
*/
|
|
82
|
+
async sign(message) {
|
|
83
|
+
try {
|
|
84
|
+
if (this.privateKeyBytes.every(b => b === 0)) {
|
|
85
|
+
throw new Error('Cannot sign with verification-only identity');
|
|
86
|
+
}
|
|
87
|
+
const messageBytes = typeof message === 'string' ? new TextEncoder().encode(message) : message;
|
|
88
|
+
return await ed.signAsync(messageBytes, this.privateKeyBytes);
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
throw new PaymentError(PaymentErrorCode.CRYPTO_ERROR, `Failed to sign message: ${error instanceof Error ? error.message : 'unknown error'}`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Verify a signature against this identity's public key
|
|
96
|
+
*/
|
|
97
|
+
async verify(signature, message) {
|
|
98
|
+
try {
|
|
99
|
+
const sigBytes = typeof signature === 'string' ? hexToBytes(signature) : signature;
|
|
100
|
+
const messageBytes = typeof message === 'string' ? new TextEncoder().encode(message) : message;
|
|
101
|
+
return await ed.verifyAsync(sigBytes, messageBytes, this.publicKeyBytes);
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
// Verification failures return false, not errors
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Get DID (Decentralized Identifier)
|
|
110
|
+
*/
|
|
111
|
+
did() {
|
|
112
|
+
return this.didString;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Get public key as hex string
|
|
116
|
+
*/
|
|
117
|
+
publicKeyHex() {
|
|
118
|
+
return bytesToHex(this.publicKeyBytes);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Get public key as bytes
|
|
122
|
+
*/
|
|
123
|
+
publicKey() {
|
|
124
|
+
return new Uint8Array(this.publicKeyBytes);
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Get private key as hex string (sensitive!)
|
|
128
|
+
*/
|
|
129
|
+
privateKeyHex() {
|
|
130
|
+
if (this.privateKeyBytes.every(b => b === 0)) {
|
|
131
|
+
throw new PaymentError(PaymentErrorCode.CRYPTO_ERROR, 'This is a verification-only identity with no private key');
|
|
132
|
+
}
|
|
133
|
+
return bytesToHex(this.privateKeyBytes);
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Get private key as bytes (sensitive!)
|
|
137
|
+
*/
|
|
138
|
+
privateKey() {
|
|
139
|
+
if (this.privateKeyBytes.every(b => b === 0)) {
|
|
140
|
+
throw new PaymentError(PaymentErrorCode.CRYPTO_ERROR, 'This is a verification-only identity with no private key');
|
|
141
|
+
}
|
|
142
|
+
return new Uint8Array(this.privateKeyBytes);
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Check if this identity has a private key
|
|
146
|
+
*/
|
|
147
|
+
canSign() {
|
|
148
|
+
return !this.privateKeyBytes.every(b => b === 0);
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Get creation timestamp
|
|
152
|
+
*/
|
|
153
|
+
createdAt() {
|
|
154
|
+
return new Date(this.createdAtMs);
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Export to JSON (with optional private key)
|
|
158
|
+
*/
|
|
159
|
+
toJSON(includePrivateKey = false) {
|
|
160
|
+
return {
|
|
161
|
+
did: this.didString,
|
|
162
|
+
publicKey: this.publicKeyHex(),
|
|
163
|
+
privateKey: includePrivateKey && this.canSign() ? this.privateKeyHex() : undefined,
|
|
164
|
+
createdAt: this.createdAtMs,
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Import from JSON
|
|
169
|
+
*/
|
|
170
|
+
static async fromJSON(json) {
|
|
171
|
+
if (json.privateKey) {
|
|
172
|
+
return AgentIdentity.fromKeys(json.privateKey, json.publicKey);
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
return AgentIdentity.fromPublicKey(json.publicKey);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
// Utility functions
|
|
180
|
+
function hexToBytes(hex) {
|
|
181
|
+
if (hex.length % 2 !== 0) {
|
|
182
|
+
throw new Error('Hex string must have even length');
|
|
183
|
+
}
|
|
184
|
+
const bytes = new Uint8Array(hex.length / 2);
|
|
185
|
+
for (let i = 0; i < bytes.length; i++) {
|
|
186
|
+
bytes[i] = parseInt(hex.slice(i * 2, i * 2 + 2), 16);
|
|
187
|
+
}
|
|
188
|
+
return bytes;
|
|
189
|
+
}
|
|
190
|
+
function bytesToHex(bytes) {
|
|
191
|
+
return Array.from(bytes)
|
|
192
|
+
.map(b => b.toString(16).padStart(2, '0'))
|
|
193
|
+
.join('');
|
|
194
|
+
}
|
|
195
|
+
function areEqual(a, b) {
|
|
196
|
+
if (a.length !== b.length)
|
|
197
|
+
return false;
|
|
198
|
+
for (let i = 0; i < a.length; i++) {
|
|
199
|
+
if (a[i] !== b[i])
|
|
200
|
+
return false;
|
|
201
|
+
}
|
|
202
|
+
return true;
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic Payments - Multi-agent payment authorization system
|
|
3
|
+
* Pure TypeScript implementation with @noble/ed25519 cryptography
|
|
4
|
+
*
|
|
5
|
+
* @packageDocumentation
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { AgentIdentity, IntentMandate, VerificationSystemBuilder } from 'agentic-payments';
|
|
10
|
+
*
|
|
11
|
+
* // Create agents
|
|
12
|
+
* const agent1 = await AgentIdentity.generate();
|
|
13
|
+
* const agent2 = await AgentIdentity.generate();
|
|
14
|
+
* const agent3 = await AgentIdentity.generate();
|
|
15
|
+
*
|
|
16
|
+
* // Create verification system
|
|
17
|
+
* const system = new VerificationSystemBuilder()
|
|
18
|
+
* .consensusThreshold(0.67)
|
|
19
|
+
* .minAgents(2)
|
|
20
|
+
* .addAgent(agent1)
|
|
21
|
+
* .addAgent(agent2)
|
|
22
|
+
* .addAgent(agent3)
|
|
23
|
+
* .build();
|
|
24
|
+
*
|
|
25
|
+
* // Create and sign mandate
|
|
26
|
+
* const mandate = new IntentMandate({
|
|
27
|
+
* merchantId: 'merchant_123',
|
|
28
|
+
* customerId: 'customer_456',
|
|
29
|
+
* intent: 'Purchase subscription',
|
|
30
|
+
* maxAmount: 99.99,
|
|
31
|
+
* currency: 'USD',
|
|
32
|
+
* expiresAt: Date.now() + 86400000
|
|
33
|
+
* });
|
|
34
|
+
*
|
|
35
|
+
* await mandate.sign(agent1);
|
|
36
|
+
*
|
|
37
|
+
* // Verify with consensus
|
|
38
|
+
* const message = new TextEncoder().encode(JSON.stringify(mandate.toJSON()));
|
|
39
|
+
* const signature = mandate.getSignature();
|
|
40
|
+
* const result = await system.verifyWithConsensus(signature, message, agent1.publicKey());
|
|
41
|
+
*
|
|
42
|
+
* console.log(`Verified: ${result.isValid}, Consensus: ${result.consensusReached}`);
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export { AgentIdentity } from './identity.js';
|
|
46
|
+
export type { AgentIdentityJSON } from './identity.js';
|
|
47
|
+
export { VerificationSystem, VerificationSystemBuilder, } from './verification.js';
|
|
48
|
+
export type { AgentVote, VerificationResult, VerificationConfig, SystemMetrics, } from './verification.js';
|
|
49
|
+
export { IntentMandate, CartMandate, PaymentMandate } from './mandate.js';
|
|
50
|
+
export type { IntentMandateData, CartMandateData, PaymentMandateData, CartItem, ValidationResult, } from './mandate.js';
|
|
51
|
+
export { PaymentError, PaymentErrorCode, isRecoverable, getErrorCode, formatError, AgenticPaymentError, CryptoError, ValidationError, ConsensusError, SystemError, WasmInitError, ErrorCode, } from './errors.js';
|
|
52
|
+
export declare const VERSION = "1.0.0";
|
|
53
|
+
/**
|
|
54
|
+
* Get library information
|
|
55
|
+
*
|
|
56
|
+
* @returns Library metadata
|
|
57
|
+
*/
|
|
58
|
+
export declare function getInfo(): {
|
|
59
|
+
version: string;
|
|
60
|
+
implementation: string;
|
|
61
|
+
features: string[];
|
|
62
|
+
};
|
|
63
|
+
declare const _default: {
|
|
64
|
+
getInfo: typeof getInfo;
|
|
65
|
+
VERSION: string;
|
|
66
|
+
};
|
|
67
|
+
export default _default;
|
|
68
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EACL,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,GACd,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1E,YAAY,EACV,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,QAAQ,EACR,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,WAAW,EAEX,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,cAAc,EACd,WAAW,EACX,aAAa,EACb,SAAS,GACV,MAAM,aAAa,CAAC;AAGrB,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B;;;;GAIG;AACH,wBAAgB,OAAO,IAAI;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAaA;;;;;AAGD,wBAGE"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic Payments - Multi-agent payment authorization system
|
|
3
|
+
* Pure TypeScript implementation with @noble/ed25519 cryptography
|
|
4
|
+
*
|
|
5
|
+
* @packageDocumentation
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { AgentIdentity, IntentMandate, VerificationSystemBuilder } from 'agentic-payments';
|
|
10
|
+
*
|
|
11
|
+
* // Create agents
|
|
12
|
+
* const agent1 = await AgentIdentity.generate();
|
|
13
|
+
* const agent2 = await AgentIdentity.generate();
|
|
14
|
+
* const agent3 = await AgentIdentity.generate();
|
|
15
|
+
*
|
|
16
|
+
* // Create verification system
|
|
17
|
+
* const system = new VerificationSystemBuilder()
|
|
18
|
+
* .consensusThreshold(0.67)
|
|
19
|
+
* .minAgents(2)
|
|
20
|
+
* .addAgent(agent1)
|
|
21
|
+
* .addAgent(agent2)
|
|
22
|
+
* .addAgent(agent3)
|
|
23
|
+
* .build();
|
|
24
|
+
*
|
|
25
|
+
* // Create and sign mandate
|
|
26
|
+
* const mandate = new IntentMandate({
|
|
27
|
+
* merchantId: 'merchant_123',
|
|
28
|
+
* customerId: 'customer_456',
|
|
29
|
+
* intent: 'Purchase subscription',
|
|
30
|
+
* maxAmount: 99.99,
|
|
31
|
+
* currency: 'USD',
|
|
32
|
+
* expiresAt: Date.now() + 86400000
|
|
33
|
+
* });
|
|
34
|
+
*
|
|
35
|
+
* await mandate.sign(agent1);
|
|
36
|
+
*
|
|
37
|
+
* // Verify with consensus
|
|
38
|
+
* const message = new TextEncoder().encode(JSON.stringify(mandate.toJSON()));
|
|
39
|
+
* const signature = mandate.getSignature();
|
|
40
|
+
* const result = await system.verifyWithConsensus(signature, message, agent1.publicKey());
|
|
41
|
+
*
|
|
42
|
+
* console.log(`Verified: ${result.isValid}, Consensus: ${result.consensusReached}`);
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
// Core classes
|
|
46
|
+
export { AgentIdentity } from './identity.js';
|
|
47
|
+
export { VerificationSystem, VerificationSystemBuilder, } from './verification.js';
|
|
48
|
+
export { IntentMandate, CartMandate, PaymentMandate } from './mandate.js';
|
|
49
|
+
// Error classes
|
|
50
|
+
export { PaymentError, PaymentErrorCode, isRecoverable, getErrorCode, formatError,
|
|
51
|
+
// Legacy aliases
|
|
52
|
+
AgenticPaymentError, CryptoError, ValidationError, ConsensusError, SystemError, WasmInitError, ErrorCode, } from './errors.js';
|
|
53
|
+
// Version information
|
|
54
|
+
export const VERSION = '1.0.0';
|
|
55
|
+
/**
|
|
56
|
+
* Get library information
|
|
57
|
+
*
|
|
58
|
+
* @returns Library metadata
|
|
59
|
+
*/
|
|
60
|
+
export function getInfo() {
|
|
61
|
+
return {
|
|
62
|
+
version: VERSION,
|
|
63
|
+
implementation: 'native-typescript',
|
|
64
|
+
features: [
|
|
65
|
+
'ed25519-signatures',
|
|
66
|
+
'multi-agent-consensus',
|
|
67
|
+
'byzantine-fault-tolerance',
|
|
68
|
+
'intent-mandates',
|
|
69
|
+
'cart-mandates',
|
|
70
|
+
'payment-mandates',
|
|
71
|
+
],
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
// Default export
|
|
75
|
+
export default {
|
|
76
|
+
getInfo,
|
|
77
|
+
VERSION,
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,eAAe;AACf,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG9C,OAAO,EACL,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,mBAAmB,CAAC;AAQ3B,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAS1E,gBAAgB;AAChB,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,WAAW;AACX,iBAAiB;AACjB,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,cAAc,EACd,WAAW,EACX,aAAa,EACb,SAAS,GACV,MAAM,aAAa,CAAC;AAErB,sBAAsB;AACtB,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B;;;;GAIG;AACH,MAAM,UAAU,OAAO;IAKrB,OAAO;QACL,OAAO,EAAE,OAAO;QAChB,cAAc,EAAE,mBAAmB;QACnC,QAAQ,EAAE;YACR,oBAAoB;YACpB,uBAAuB;YACvB,2BAA2B;YAC3B,iBAAiB;YACjB,eAAe;YACf,kBAAkB;SACnB;KACF,CAAC;AACJ,CAAC;AAED,iBAAiB;AACjB,eAAe;IACb,OAAO;IACP,OAAO;CACR,CAAC"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Payment mandate types (Intent, Cart, Payment)
|
|
3
|
+
* Pure TypeScript implementation - no WASM dependencies
|
|
4
|
+
*/
|
|
5
|
+
import { AgentIdentity } from './identity.js';
|
|
6
|
+
export interface CartItem {
|
|
7
|
+
id: string;
|
|
8
|
+
name: string;
|
|
9
|
+
quantity: number;
|
|
10
|
+
unitPrice: number;
|
|
11
|
+
}
|
|
12
|
+
export type PaymentStatus = 'pending' | 'authorized' | 'captured' | 'failed' | 'cancelled' | 'refunded';
|
|
13
|
+
export interface ValidationResult {
|
|
14
|
+
valid: boolean;
|
|
15
|
+
errors: string[];
|
|
16
|
+
}
|
|
17
|
+
export interface IntentMandateData {
|
|
18
|
+
id: string;
|
|
19
|
+
merchantId: string;
|
|
20
|
+
customerId: string;
|
|
21
|
+
intent: string;
|
|
22
|
+
maxAmount: number;
|
|
23
|
+
currency: string;
|
|
24
|
+
createdAt: number;
|
|
25
|
+
expiresAt: number;
|
|
26
|
+
signature?: string;
|
|
27
|
+
signedBy?: string;
|
|
28
|
+
}
|
|
29
|
+
export interface CartMandateData {
|
|
30
|
+
id: string;
|
|
31
|
+
merchantId: string;
|
|
32
|
+
customerId: string;
|
|
33
|
+
items: CartItem[];
|
|
34
|
+
totalAmount: number;
|
|
35
|
+
currency: string;
|
|
36
|
+
createdAt: number;
|
|
37
|
+
expiresAt: number;
|
|
38
|
+
signature?: string;
|
|
39
|
+
signedBy?: string;
|
|
40
|
+
}
|
|
41
|
+
export interface PaymentMandateData {
|
|
42
|
+
id: string;
|
|
43
|
+
sourceId: string;
|
|
44
|
+
type: 'intent' | 'cart';
|
|
45
|
+
amount: number;
|
|
46
|
+
currency: string;
|
|
47
|
+
paymentMethod: string;
|
|
48
|
+
status: PaymentStatus;
|
|
49
|
+
createdAt: number;
|
|
50
|
+
processedAt?: number;
|
|
51
|
+
signature?: string;
|
|
52
|
+
signedBy?: string;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Intent mandate for payment authorization
|
|
56
|
+
*/
|
|
57
|
+
export declare class IntentMandate {
|
|
58
|
+
private data;
|
|
59
|
+
constructor(data: Omit<IntentMandateData, 'id' | 'createdAt' | 'signature' | 'signedBy'>);
|
|
60
|
+
private generateId;
|
|
61
|
+
/**
|
|
62
|
+
* Sign mandate with agent identity
|
|
63
|
+
*/
|
|
64
|
+
sign(agent: AgentIdentity): Promise<void>;
|
|
65
|
+
/**
|
|
66
|
+
* Get canonical string representation for signing
|
|
67
|
+
*/
|
|
68
|
+
private getCanonicalString;
|
|
69
|
+
/**
|
|
70
|
+
* Verify signature
|
|
71
|
+
*/
|
|
72
|
+
verify(agent: AgentIdentity): Promise<boolean>;
|
|
73
|
+
/**
|
|
74
|
+
* Validate mandate
|
|
75
|
+
*/
|
|
76
|
+
validate(): ValidationResult;
|
|
77
|
+
getData(): IntentMandateData;
|
|
78
|
+
getSignature(): string | undefined;
|
|
79
|
+
toJSON(): IntentMandateData;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Cart mandate for shopping cart authorization
|
|
83
|
+
*/
|
|
84
|
+
export declare class CartMandate {
|
|
85
|
+
private data;
|
|
86
|
+
constructor(data: Omit<CartMandateData, 'id' | 'createdAt' | 'totalAmount' | 'signature' | 'signedBy'>);
|
|
87
|
+
private generateId;
|
|
88
|
+
/**
|
|
89
|
+
* Sign mandate with agent identity
|
|
90
|
+
*/
|
|
91
|
+
sign(agent: AgentIdentity): Promise<void>;
|
|
92
|
+
private getCanonicalString;
|
|
93
|
+
/**
|
|
94
|
+
* Verify signature
|
|
95
|
+
*/
|
|
96
|
+
verify(agent: AgentIdentity): Promise<boolean>;
|
|
97
|
+
/**
|
|
98
|
+
* Validate mandate
|
|
99
|
+
*/
|
|
100
|
+
validate(): ValidationResult;
|
|
101
|
+
getData(): CartMandateData;
|
|
102
|
+
getItems(): CartItem[];
|
|
103
|
+
getTotalAmount(): number;
|
|
104
|
+
getSignature(): string | undefined;
|
|
105
|
+
toJSON(): CartMandateData;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Payment mandate for transaction authorization
|
|
109
|
+
*/
|
|
110
|
+
export declare class PaymentMandate {
|
|
111
|
+
private data;
|
|
112
|
+
constructor(data: Omit<PaymentMandateData, 'id' | 'createdAt' | 'status' | 'signature' | 'signedBy' | 'processedAt'>);
|
|
113
|
+
private generateId;
|
|
114
|
+
/**
|
|
115
|
+
* Sign mandate with agent identity
|
|
116
|
+
*/
|
|
117
|
+
sign(agent: AgentIdentity): Promise<void>;
|
|
118
|
+
private getCanonicalString;
|
|
119
|
+
/**
|
|
120
|
+
* Verify signature
|
|
121
|
+
*/
|
|
122
|
+
verify(agent: AgentIdentity): Promise<boolean>;
|
|
123
|
+
/**
|
|
124
|
+
* Validate mandate
|
|
125
|
+
*/
|
|
126
|
+
validate(): ValidationResult;
|
|
127
|
+
updateStatus(status: PaymentStatus): void;
|
|
128
|
+
getData(): PaymentMandateData;
|
|
129
|
+
getStatus(): PaymentStatus;
|
|
130
|
+
getSignature(): string | undefined;
|
|
131
|
+
isComplete(): boolean;
|
|
132
|
+
toJSON(): PaymentMandateData;
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=mandate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mandate.d.ts","sourceRoot":"","sources":["../src/mandate.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAI9C,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,YAAY,GAAG,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAC;AAExG,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,IAAI,CAAoB;gBAEpB,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,CAAC;IAaxF,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACG,IAAI,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB/C;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBpD;;OAEG;IACH,QAAQ,IAAI,gBAAgB;IA+B5B,OAAO,IAAI,iBAAiB;IAI5B,YAAY,IAAI,MAAM,GAAG,SAAS;IAIlC,MAAM,IAAI,iBAAiB;CAG5B;AAED;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,IAAI,CAAkB;gBAElB,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,GAAG,WAAW,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAC;IAkBtG,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACG,IAAI,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB/C,OAAO,CAAC,kBAAkB;IAa1B;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBpD;;OAEG;IACH,QAAQ,IAAI,gBAAgB;IA+B5B,OAAO,IAAI,eAAe;IAI1B,QAAQ,IAAI,QAAQ,EAAE;IAItB,cAAc,IAAI,MAAM;IAIxB,YAAY,IAAI,MAAM,GAAG,SAAS;IAIlC,MAAM,IAAI,eAAe;CAG1B;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,IAAI,CAAqB;gBAG/B,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,aAAa,CAAC;IAc1G,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACG,IAAI,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB/C,OAAO,CAAC,kBAAkB;IAa1B;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBpD;;OAEG;IACH,QAAQ,IAAI,gBAAgB;IA4B5B,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAOzC,OAAO,IAAI,kBAAkB;IAI7B,SAAS,IAAI,aAAa;IAI1B,YAAY,IAAI,MAAM,GAAG,SAAS;IAIlC,UAAU,IAAI,OAAO;IAIrB,MAAM,IAAI,kBAAkB;CAG7B"}
|