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
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { readFile, writeFile, appendFile } from 'fs/promises';
|
|
4
|
+
import { homedir } from 'os';
|
|
5
|
+
import { join } from 'path';
|
|
6
|
+
export const completionCommand = new Command('completion')
|
|
7
|
+
.description('Manage shell completions');
|
|
8
|
+
// Detect current shell
|
|
9
|
+
function detectShell() {
|
|
10
|
+
const shell = process.env.SHELL || '';
|
|
11
|
+
if (shell.includes('bash'))
|
|
12
|
+
return 'bash';
|
|
13
|
+
if (shell.includes('zsh'))
|
|
14
|
+
return 'zsh';
|
|
15
|
+
if (shell.includes('fish'))
|
|
16
|
+
return 'fish';
|
|
17
|
+
return 'unknown';
|
|
18
|
+
}
|
|
19
|
+
// Get shell RC file path
|
|
20
|
+
function getShellRcPath(shell) {
|
|
21
|
+
const home = homedir();
|
|
22
|
+
switch (shell) {
|
|
23
|
+
case 'bash':
|
|
24
|
+
return join(home, '.bashrc');
|
|
25
|
+
case 'zsh':
|
|
26
|
+
return join(home, '.zshrc');
|
|
27
|
+
case 'fish':
|
|
28
|
+
return join(home, '.config', 'fish', 'config.fish');
|
|
29
|
+
default:
|
|
30
|
+
throw new Error(`Unsupported shell: ${shell}`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
// Install subcommand
|
|
34
|
+
completionCommand
|
|
35
|
+
.command('install')
|
|
36
|
+
.description('Install shell completions for current shell')
|
|
37
|
+
.option('-s, --shell <type>', 'Target shell: bash, zsh, fish')
|
|
38
|
+
.option('--dry-run', 'Show what would be installed without making changes')
|
|
39
|
+
.action(async (options) => {
|
|
40
|
+
try {
|
|
41
|
+
const shell = options.shell || detectShell();
|
|
42
|
+
if (shell === 'unknown' && !options.shell) {
|
|
43
|
+
console.error(chalk.red('\n✗ Could not detect shell'));
|
|
44
|
+
console.log(chalk.yellow(' Please specify shell with --shell option\n'));
|
|
45
|
+
process.exit(1);
|
|
46
|
+
}
|
|
47
|
+
console.log(chalk.cyan(`\nInstalling completions for ${shell}...\n`));
|
|
48
|
+
const rcPath = getShellRcPath(shell);
|
|
49
|
+
const completionScript = generateCompletionScript(shell);
|
|
50
|
+
if (options.dryRun) {
|
|
51
|
+
console.log(chalk.yellow('Dry run mode - no changes will be made\n'));
|
|
52
|
+
console.log(chalk.gray('Would add to ' + rcPath + ':'));
|
|
53
|
+
console.log(chalk.white(completionScript));
|
|
54
|
+
console.log();
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
// Check if already installed
|
|
58
|
+
try {
|
|
59
|
+
const content = await readFile(rcPath, 'utf-8');
|
|
60
|
+
if (content.includes('agentic-payments completion')) {
|
|
61
|
+
console.log(chalk.yellow('✓ Completions already installed\n'));
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
// File doesn't exist, will be created
|
|
67
|
+
}
|
|
68
|
+
// Add completion source to RC file
|
|
69
|
+
await appendFile(rcPath, '\n' + completionScript + '\n');
|
|
70
|
+
console.log(chalk.green('✓ Completions installed successfully\n'));
|
|
71
|
+
console.log(chalk.yellow('To activate completions, run:'));
|
|
72
|
+
console.log(chalk.white(` source ${rcPath}\n`));
|
|
73
|
+
console.log(chalk.gray('Or restart your terminal session\n'));
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
console.error(chalk.red('\n✗ Installation failed:'), error.message);
|
|
77
|
+
process.exit(1);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
// Uninstall subcommand
|
|
81
|
+
completionCommand
|
|
82
|
+
.command('uninstall')
|
|
83
|
+
.description('Remove shell completions')
|
|
84
|
+
.option('-s, --shell <type>', 'Target shell: bash, zsh, fish')
|
|
85
|
+
.action(async (options) => {
|
|
86
|
+
try {
|
|
87
|
+
const shell = options.shell || detectShell();
|
|
88
|
+
const rcPath = getShellRcPath(shell);
|
|
89
|
+
console.log(chalk.cyan(`\nRemoving completions from ${rcPath}...\n`));
|
|
90
|
+
const content = await readFile(rcPath, 'utf-8');
|
|
91
|
+
const lines = content.split('\n');
|
|
92
|
+
const filtered = lines.filter(line => !line.includes('agentic-payments completion'));
|
|
93
|
+
await writeFile(rcPath, filtered.join('\n'));
|
|
94
|
+
console.log(chalk.green('✓ Completions removed\n'));
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
console.error(chalk.red('\n✗ Removal failed:'), error.message);
|
|
98
|
+
process.exit(1);
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
// Generate subcommand
|
|
102
|
+
completionCommand
|
|
103
|
+
.command('generate')
|
|
104
|
+
.description('Generate completion script for a shell')
|
|
105
|
+
.argument('<shell>', 'Shell type: bash, zsh, fish')
|
|
106
|
+
.action((shell) => {
|
|
107
|
+
try {
|
|
108
|
+
const script = generateCompletionScript(shell);
|
|
109
|
+
console.log(script);
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
console.error(chalk.red('Error:'), error.message);
|
|
113
|
+
process.exit(1);
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
// Generate completion script
|
|
117
|
+
function generateCompletionScript(shell) {
|
|
118
|
+
switch (shell) {
|
|
119
|
+
case 'bash':
|
|
120
|
+
return `# agentic-payments completion
|
|
121
|
+
_agentic_payments_completion() {
|
|
122
|
+
local cur prev opts
|
|
123
|
+
COMPREPLY=()
|
|
124
|
+
cur="\${COMP_WORDS[COMP_CWORD]}"
|
|
125
|
+
prev="\${COMP_WORDS[COMP_CWORD-1]}"
|
|
126
|
+
|
|
127
|
+
case "\${prev}" in
|
|
128
|
+
agentic-payments)
|
|
129
|
+
opts="generate verify mandate system completion --help --version"
|
|
130
|
+
COMPREPLY=( $(compgen -W "\${opts}" -- \${cur}) )
|
|
131
|
+
return 0
|
|
132
|
+
;;
|
|
133
|
+
generate|gen)
|
|
134
|
+
opts="--format --output --seed --help"
|
|
135
|
+
COMPREPLY=( $(compgen -W "\${opts}" -- \${cur}) )
|
|
136
|
+
return 0
|
|
137
|
+
;;
|
|
138
|
+
verify)
|
|
139
|
+
opts="--amount --currency --agents --threshold --data --verbose --byzantine --help"
|
|
140
|
+
COMPREPLY=( $(compgen -W "\${opts}" -- \${cur}) )
|
|
141
|
+
return 0
|
|
142
|
+
;;
|
|
143
|
+
mandate)
|
|
144
|
+
opts="create validate sign --help"
|
|
145
|
+
COMPREPLY=( $(compgen -W "\${opts}" -- \${cur}) )
|
|
146
|
+
return 0
|
|
147
|
+
;;
|
|
148
|
+
system|sys)
|
|
149
|
+
opts="start stop status metrics --help"
|
|
150
|
+
COMPREPLY=( $(compgen -W "\${opts}" -- \${cur}) )
|
|
151
|
+
return 0
|
|
152
|
+
;;
|
|
153
|
+
esac
|
|
154
|
+
}
|
|
155
|
+
complete -F _agentic_payments_completion agentic-payments`;
|
|
156
|
+
case 'zsh':
|
|
157
|
+
return `# agentic-payments completion
|
|
158
|
+
#compdef agentic-payments
|
|
159
|
+
|
|
160
|
+
_agentic_payments() {
|
|
161
|
+
local -a commands
|
|
162
|
+
commands=(
|
|
163
|
+
'generate:Generate a new agent identity'
|
|
164
|
+
'verify:Verify a payment using consensus'
|
|
165
|
+
'mandate:Create and manage mandates'
|
|
166
|
+
'system:System management'
|
|
167
|
+
'completion:Manage shell completions'
|
|
168
|
+
)
|
|
169
|
+
|
|
170
|
+
_arguments -C \\
|
|
171
|
+
'--help[Show help]' \\
|
|
172
|
+
'--version[Show version]' \\
|
|
173
|
+
'1: :->command' \\
|
|
174
|
+
'*::arg:->args'
|
|
175
|
+
|
|
176
|
+
case $state in
|
|
177
|
+
command)
|
|
178
|
+
_describe 'command' commands
|
|
179
|
+
;;
|
|
180
|
+
args)
|
|
181
|
+
case $words[1] in
|
|
182
|
+
generate|gen)
|
|
183
|
+
_arguments \\
|
|
184
|
+
'--format[Output format]:format:(json hex pem)' \\
|
|
185
|
+
'--output[Output file]:file:_files' \\
|
|
186
|
+
'--seed[Seed for generation]:seed:' \\
|
|
187
|
+
'--help[Show help]'
|
|
188
|
+
;;
|
|
189
|
+
verify)
|
|
190
|
+
_arguments \\
|
|
191
|
+
'--amount[Payment amount]:amount:' \\
|
|
192
|
+
'--currency[Currency code]:currency:' \\
|
|
193
|
+
'--agents[Number of agents]:count:' \\
|
|
194
|
+
'--threshold[Consensus threshold]:threshold:' \\
|
|
195
|
+
'--data[Data file]:file:_files' \\
|
|
196
|
+
'--verbose[Verbose output]' \\
|
|
197
|
+
'--byzantine[Byzantine fault tolerance]' \\
|
|
198
|
+
'--help[Show help]'
|
|
199
|
+
;;
|
|
200
|
+
esac
|
|
201
|
+
;;
|
|
202
|
+
esac
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
_agentic_payments`;
|
|
206
|
+
case 'fish':
|
|
207
|
+
return `# agentic-payments completion
|
|
208
|
+
complete -c agentic-payments -f
|
|
209
|
+
|
|
210
|
+
# Commands
|
|
211
|
+
complete -c agentic-payments -n "__fish_use_subcommand" -a "generate" -d "Generate agent identity"
|
|
212
|
+
complete -c agentic-payments -n "__fish_use_subcommand" -a "verify" -d "Verify payment"
|
|
213
|
+
complete -c agentic-payments -n "__fish_use_subcommand" -a "mandate" -d "Manage mandates"
|
|
214
|
+
complete -c agentic-payments -n "__fish_use_subcommand" -a "system" -d "System management"
|
|
215
|
+
complete -c agentic-payments -n "__fish_use_subcommand" -a "completion" -d "Shell completions"
|
|
216
|
+
|
|
217
|
+
# Generate options
|
|
218
|
+
complete -c agentic-payments -n "__fish_seen_subcommand_from generate" -l format -d "Output format" -a "json hex pem"
|
|
219
|
+
complete -c agentic-payments -n "__fish_seen_subcommand_from generate" -l output -d "Output file"
|
|
220
|
+
complete -c agentic-payments -n "__fish_seen_subcommand_from generate" -l seed -d "Generation seed"
|
|
221
|
+
|
|
222
|
+
# Verify options
|
|
223
|
+
complete -c agentic-payments -n "__fish_seen_subcommand_from verify" -l amount -d "Payment amount"
|
|
224
|
+
complete -c agentic-payments -n "__fish_seen_subcommand_from verify" -l currency -d "Currency code"
|
|
225
|
+
complete -c agentic-payments -n "__fish_seen_subcommand_from verify" -l agents -d "Number of agents"
|
|
226
|
+
complete -c agentic-payments -n "__fish_seen_subcommand_from verify" -l threshold -d "Consensus threshold"
|
|
227
|
+
complete -c agentic-payments -n "__fish_seen_subcommand_from verify" -l data -d "Data file"
|
|
228
|
+
complete -c agentic-payments -n "__fish_seen_subcommand_from verify" -l verbose -d "Verbose output"
|
|
229
|
+
complete -c agentic-payments -n "__fish_seen_subcommand_from verify" -l byzantine -d "Byzantine fault tolerance"
|
|
230
|
+
|
|
231
|
+
# Mandate subcommands
|
|
232
|
+
complete -c agentic-payments -n "__fish_seen_subcommand_from mandate" -a "create" -d "Create mandate"
|
|
233
|
+
complete -c agentic-payments -n "__fish_seen_subcommand_from mandate" -a "validate" -d "Validate mandate"
|
|
234
|
+
complete -c agentic-payments -n "__fish_seen_subcommand_from mandate" -a "sign" -d "Sign mandate"
|
|
235
|
+
|
|
236
|
+
# System subcommands
|
|
237
|
+
complete -c agentic-payments -n "__fish_seen_subcommand_from system" -a "start" -d "Start system"
|
|
238
|
+
complete -c agentic-payments -n "__fish_seen_subcommand_from system" -a "stop" -d "Stop system"
|
|
239
|
+
complete -c agentic-payments -n "__fish_seen_subcommand_from system" -a "status" -d "Show status"
|
|
240
|
+
complete -c agentic-payments -n "__fish_seen_subcommand_from system" -a "metrics" -d "Show metrics"`;
|
|
241
|
+
default:
|
|
242
|
+
throw new Error(`Unsupported shell: ${shell}`);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
//# sourceMappingURL=completion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/cli/completion.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { Command } from 'commander';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import { generateCommand } from './commands/generate.js';
|
|
5
|
+
import { verifyCommand } from './commands/verify.js';
|
|
6
|
+
import { mandateCommand } from './commands/mandate.js';
|
|
7
|
+
import { systemCommand } from './commands/system.js';
|
|
8
|
+
import { completionCommand } from './completion.js';
|
|
9
|
+
import { activeMandateCommand } from './commands/active-mandate.js';
|
|
10
|
+
const program = new Command();
|
|
11
|
+
// Global error handler
|
|
12
|
+
process.on('uncaughtException', (error) => {
|
|
13
|
+
console.error(chalk.red.bold('\n✗ Fatal Error:'), error.message);
|
|
14
|
+
if (process.env.DEBUG) {
|
|
15
|
+
console.error(chalk.gray(error.stack));
|
|
16
|
+
}
|
|
17
|
+
process.exit(1);
|
|
18
|
+
});
|
|
19
|
+
process.on('unhandledRejection', (reason) => {
|
|
20
|
+
console.error(chalk.red.bold('\n✗ Unhandled Rejection:'), reason);
|
|
21
|
+
process.exit(1);
|
|
22
|
+
});
|
|
23
|
+
// CLI Setup
|
|
24
|
+
program
|
|
25
|
+
.name('agentic-payments')
|
|
26
|
+
.description(chalk.cyan.bold('Agentic Payments') + ' - Multi-agent payment consensus system')
|
|
27
|
+
.version('0.1.0', '-v, --version', 'Output the current version')
|
|
28
|
+
.helpOption('-h, --help', 'Display help for command')
|
|
29
|
+
.addHelpText('after', `
|
|
30
|
+
|
|
31
|
+
${chalk.bold('Examples:')}
|
|
32
|
+
${chalk.gray('# Generate a new agent identity')}
|
|
33
|
+
$ agentic-payments generate --format json
|
|
34
|
+
|
|
35
|
+
${chalk.gray('# Verify a payment with consensus')}
|
|
36
|
+
$ agentic-payments verify --amount 100 --agents 5
|
|
37
|
+
|
|
38
|
+
${chalk.gray('# Create an intent mandate')}
|
|
39
|
+
$ agentic-payments mandate create intent --data payment.json
|
|
40
|
+
|
|
41
|
+
${chalk.gray('# Check system status')}
|
|
42
|
+
$ agentic-payments system status
|
|
43
|
+
|
|
44
|
+
${chalk.gray('# Install shell completions')}
|
|
45
|
+
$ agentic-payments completion install
|
|
46
|
+
|
|
47
|
+
${chalk.bold('Documentation:')}
|
|
48
|
+
${chalk.blue('https://github.com/yourusername/agentic-payments')}
|
|
49
|
+
|
|
50
|
+
${chalk.bold('Report Issues:')}
|
|
51
|
+
${chalk.blue('https://github.com/yourusername/agentic-payments/issues')}
|
|
52
|
+
`);
|
|
53
|
+
// Register commands
|
|
54
|
+
program.addCommand(generateCommand);
|
|
55
|
+
program.addCommand(verifyCommand);
|
|
56
|
+
program.addCommand(mandateCommand);
|
|
57
|
+
program.addCommand(activeMandateCommand);
|
|
58
|
+
program.addCommand(systemCommand);
|
|
59
|
+
program.addCommand(completionCommand);
|
|
60
|
+
// Global options
|
|
61
|
+
program
|
|
62
|
+
.option('--debug', 'Enable debug output')
|
|
63
|
+
.option('--no-color', 'Disable colored output')
|
|
64
|
+
.hook('preAction', (thisCommand) => {
|
|
65
|
+
const opts = thisCommand.opts();
|
|
66
|
+
if (opts.debug) {
|
|
67
|
+
process.env.DEBUG = '1';
|
|
68
|
+
}
|
|
69
|
+
if (opts.noColor) {
|
|
70
|
+
chalk.level = 0;
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
// Parse and execute
|
|
74
|
+
program.parse(process.argv);
|
|
75
|
+
// Show help if no command provided
|
|
76
|
+
if (!process.argv.slice(2).length) {
|
|
77
|
+
program.outputHelp();
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error handling system for agentic-payments
|
|
3
|
+
* Pure TypeScript implementation - no WASM dependencies
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Error codes for payment operations
|
|
7
|
+
*/
|
|
8
|
+
export declare enum PaymentErrorCode {
|
|
9
|
+
CRYPTO_ERROR = "CRYPTO_ERROR",
|
|
10
|
+
KEY_GENERATION_FAILED = "KEY_GENERATION_FAILED",
|
|
11
|
+
INVALID_KEY_FORMAT = "INVALID_KEY_FORMAT",
|
|
12
|
+
SIGNATURE_FAILED = "SIGNATURE_FAILED",
|
|
13
|
+
VERIFICATION_FAILED = "VERIFICATION_FAILED",
|
|
14
|
+
CONSENSUS_ERROR = "CONSENSUS_ERROR",
|
|
15
|
+
INSUFFICIENT_AGENTS = "INSUFFICIENT_AGENTS",
|
|
16
|
+
CONSENSUS_FAILED = "CONSENSUS_FAILED",
|
|
17
|
+
VALIDATION_FAILED = "VALIDATION_FAILED",
|
|
18
|
+
INVALID_MANDATE = "INVALID_MANDATE",
|
|
19
|
+
EXPIRED_MANDATE = "EXPIRED_MANDATE",
|
|
20
|
+
AMOUNT_EXCEEDED = "AMOUNT_EXCEEDED",
|
|
21
|
+
SYSTEM_ERROR = "SYSTEM_ERROR",
|
|
22
|
+
NOT_INITIALIZED = "NOT_INITIALIZED",
|
|
23
|
+
CONFIGURATION_ERROR = "CONFIGURATION_ERROR"
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Base error class for all agentic-payments errors
|
|
27
|
+
*/
|
|
28
|
+
export declare class PaymentError extends Error {
|
|
29
|
+
readonly code: PaymentErrorCode;
|
|
30
|
+
readonly recoverable: boolean;
|
|
31
|
+
readonly context?: Record<string, unknown>;
|
|
32
|
+
readonly timestamp: number;
|
|
33
|
+
constructor(code: PaymentErrorCode, message: string, context?: Record<string, unknown>, recoverable?: boolean);
|
|
34
|
+
/**
|
|
35
|
+
* Convert error to JSON for logging
|
|
36
|
+
*/
|
|
37
|
+
toJSON(): Record<string, unknown>;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Check if error is recoverable
|
|
41
|
+
*/
|
|
42
|
+
export declare function isRecoverable(error: Error): boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Extract error code from error
|
|
45
|
+
*/
|
|
46
|
+
export declare function getErrorCode(error: Error): PaymentErrorCode | null;
|
|
47
|
+
/**
|
|
48
|
+
* Format error for logging
|
|
49
|
+
*/
|
|
50
|
+
export declare function formatError(error: Error): string;
|
|
51
|
+
export { PaymentError as AgenticPaymentError };
|
|
52
|
+
export { PaymentError as CryptoError };
|
|
53
|
+
export { PaymentError as ValidationError };
|
|
54
|
+
export { PaymentError as ConsensusError };
|
|
55
|
+
export { PaymentError as SystemError };
|
|
56
|
+
export { PaymentError as WasmInitError };
|
|
57
|
+
export { PaymentErrorCode as ErrorCode };
|
|
58
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,oBAAY,gBAAgB;IAE1B,YAAY,iBAAiB;IAC7B,qBAAqB,0BAA0B;IAC/C,kBAAkB,uBAAuB;IACzC,gBAAgB,qBAAqB;IACrC,mBAAmB,wBAAwB;IAG3C,eAAe,oBAAoB;IACnC,mBAAmB,wBAAwB;IAC3C,gBAAgB,qBAAqB;IAGrC,iBAAiB,sBAAsB;IACvC,eAAe,oBAAoB;IACnC,eAAe,oBAAoB;IACnC,eAAe,oBAAoB;IAGnC,YAAY,iBAAiB;IAC7B,eAAe,oBAAoB;IACnC,mBAAmB,wBAAwB;CAC5C;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACrC,SAAgB,IAAI,EAAE,gBAAgB,CAAC;IACvC,SAAgB,WAAW,EAAE,OAAO,CAAC;IACrC,SAAgB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClD,SAAgB,SAAS,EAAE,MAAM,CAAC;gBAEtB,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAE,OAAe;IAcpH;;OAEG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAWlC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAKnD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,gBAAgB,GAAG,IAAI,CAKlE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAKhD;AAGD,OAAO,EAAE,YAAY,IAAI,mBAAmB,EAAE,CAAC;AAC/C,OAAO,EAAE,YAAY,IAAI,WAAW,EAAE,CAAC;AACvC,OAAO,EAAE,YAAY,IAAI,eAAe,EAAE,CAAC;AAC3C,OAAO,EAAE,YAAY,IAAI,cAAc,EAAE,CAAC;AAC1C,OAAO,EAAE,YAAY,IAAI,WAAW,EAAE,CAAC;AACvC,OAAO,EAAE,YAAY,IAAI,aAAa,EAAE,CAAC;AACzC,OAAO,EAAE,gBAAgB,IAAI,SAAS,EAAE,CAAC"}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error handling system for agentic-payments
|
|
3
|
+
* Pure TypeScript implementation - no WASM dependencies
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Error codes for payment operations
|
|
7
|
+
*/
|
|
8
|
+
export var PaymentErrorCode;
|
|
9
|
+
(function (PaymentErrorCode) {
|
|
10
|
+
// Cryptographic errors
|
|
11
|
+
PaymentErrorCode["CRYPTO_ERROR"] = "CRYPTO_ERROR";
|
|
12
|
+
PaymentErrorCode["KEY_GENERATION_FAILED"] = "KEY_GENERATION_FAILED";
|
|
13
|
+
PaymentErrorCode["INVALID_KEY_FORMAT"] = "INVALID_KEY_FORMAT";
|
|
14
|
+
PaymentErrorCode["SIGNATURE_FAILED"] = "SIGNATURE_FAILED";
|
|
15
|
+
PaymentErrorCode["VERIFICATION_FAILED"] = "VERIFICATION_FAILED";
|
|
16
|
+
// Consensus errors
|
|
17
|
+
PaymentErrorCode["CONSENSUS_ERROR"] = "CONSENSUS_ERROR";
|
|
18
|
+
PaymentErrorCode["INSUFFICIENT_AGENTS"] = "INSUFFICIENT_AGENTS";
|
|
19
|
+
PaymentErrorCode["CONSENSUS_FAILED"] = "CONSENSUS_FAILED";
|
|
20
|
+
// Validation errors
|
|
21
|
+
PaymentErrorCode["VALIDATION_FAILED"] = "VALIDATION_FAILED";
|
|
22
|
+
PaymentErrorCode["INVALID_MANDATE"] = "INVALID_MANDATE";
|
|
23
|
+
PaymentErrorCode["EXPIRED_MANDATE"] = "EXPIRED_MANDATE";
|
|
24
|
+
PaymentErrorCode["AMOUNT_EXCEEDED"] = "AMOUNT_EXCEEDED";
|
|
25
|
+
// System errors
|
|
26
|
+
PaymentErrorCode["SYSTEM_ERROR"] = "SYSTEM_ERROR";
|
|
27
|
+
PaymentErrorCode["NOT_INITIALIZED"] = "NOT_INITIALIZED";
|
|
28
|
+
PaymentErrorCode["CONFIGURATION_ERROR"] = "CONFIGURATION_ERROR";
|
|
29
|
+
})(PaymentErrorCode || (PaymentErrorCode = {}));
|
|
30
|
+
/**
|
|
31
|
+
* Base error class for all agentic-payments errors
|
|
32
|
+
*/
|
|
33
|
+
export class PaymentError extends Error {
|
|
34
|
+
code;
|
|
35
|
+
recoverable;
|
|
36
|
+
context;
|
|
37
|
+
timestamp;
|
|
38
|
+
constructor(code, message, context, recoverable = false) {
|
|
39
|
+
super(message);
|
|
40
|
+
this.name = 'PaymentError';
|
|
41
|
+
this.code = code;
|
|
42
|
+
this.recoverable = recoverable;
|
|
43
|
+
this.context = context;
|
|
44
|
+
this.timestamp = Date.now();
|
|
45
|
+
// Maintain proper stack trace
|
|
46
|
+
if (Error.captureStackTrace) {
|
|
47
|
+
Error.captureStackTrace(this, this.constructor);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Convert error to JSON for logging
|
|
52
|
+
*/
|
|
53
|
+
toJSON() {
|
|
54
|
+
return {
|
|
55
|
+
name: this.name,
|
|
56
|
+
message: this.message,
|
|
57
|
+
code: this.code,
|
|
58
|
+
recoverable: this.recoverable,
|
|
59
|
+
context: this.context,
|
|
60
|
+
timestamp: this.timestamp,
|
|
61
|
+
stack: this.stack,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Check if error is recoverable
|
|
67
|
+
*/
|
|
68
|
+
export function isRecoverable(error) {
|
|
69
|
+
if (error instanceof PaymentError) {
|
|
70
|
+
return error.recoverable;
|
|
71
|
+
}
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Extract error code from error
|
|
76
|
+
*/
|
|
77
|
+
export function getErrorCode(error) {
|
|
78
|
+
if (error instanceof PaymentError) {
|
|
79
|
+
return error.code;
|
|
80
|
+
}
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Format error for logging
|
|
85
|
+
*/
|
|
86
|
+
export function formatError(error) {
|
|
87
|
+
if (error instanceof PaymentError) {
|
|
88
|
+
return JSON.stringify(error.toJSON(), null, 2);
|
|
89
|
+
}
|
|
90
|
+
return `${error.name}: ${error.message}\n${error.stack}`;
|
|
91
|
+
}
|
|
92
|
+
// Legacy type aliases for backward compatibility
|
|
93
|
+
export { PaymentError as AgenticPaymentError };
|
|
94
|
+
export { PaymentError as CryptoError };
|
|
95
|
+
export { PaymentError as ValidationError };
|
|
96
|
+
export { PaymentError as ConsensusError };
|
|
97
|
+
export { PaymentError as SystemError };
|
|
98
|
+
export { PaymentError as WasmInitError };
|
|
99
|
+
export { PaymentErrorCode as ErrorCode };
|
|
100
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Identity - Pure TypeScript implementation with @noble/ed25519
|
|
3
|
+
* No WASM dependencies - native cryptography only
|
|
4
|
+
*/
|
|
5
|
+
export interface AgentIdentityJSON {
|
|
6
|
+
did: string;
|
|
7
|
+
publicKey: string;
|
|
8
|
+
privateKey?: string;
|
|
9
|
+
createdAt: number;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Agent Identity with Ed25519 cryptography
|
|
13
|
+
* 100% native TypeScript implementation using @noble/ed25519
|
|
14
|
+
*/
|
|
15
|
+
export declare class AgentIdentity {
|
|
16
|
+
private privateKeyBytes;
|
|
17
|
+
private publicKeyBytes;
|
|
18
|
+
private didString;
|
|
19
|
+
private createdAtMs;
|
|
20
|
+
private constructor();
|
|
21
|
+
/**
|
|
22
|
+
* Generate a new agent identity with random keypair
|
|
23
|
+
*/
|
|
24
|
+
static generate(): Promise<AgentIdentity>;
|
|
25
|
+
/**
|
|
26
|
+
* Create identity from existing keys
|
|
27
|
+
*/
|
|
28
|
+
static fromKeys(privateKey: Uint8Array | string, publicKey: Uint8Array | string): Promise<AgentIdentity>;
|
|
29
|
+
/**
|
|
30
|
+
* Create identity from only public key (verification-only)
|
|
31
|
+
*/
|
|
32
|
+
static fromPublicKey(publicKey: Uint8Array | string): AgentIdentity;
|
|
33
|
+
/**
|
|
34
|
+
* Sign a message with this identity's private key
|
|
35
|
+
*/
|
|
36
|
+
sign(message: string | Uint8Array): Promise<Uint8Array>;
|
|
37
|
+
/**
|
|
38
|
+
* Verify a signature against this identity's public key
|
|
39
|
+
*/
|
|
40
|
+
verify(signature: Uint8Array | string, message: string | Uint8Array): Promise<boolean>;
|
|
41
|
+
/**
|
|
42
|
+
* Get DID (Decentralized Identifier)
|
|
43
|
+
*/
|
|
44
|
+
did(): string;
|
|
45
|
+
/**
|
|
46
|
+
* Get public key as hex string
|
|
47
|
+
*/
|
|
48
|
+
publicKeyHex(): string;
|
|
49
|
+
/**
|
|
50
|
+
* Get public key as bytes
|
|
51
|
+
*/
|
|
52
|
+
publicKey(): Uint8Array;
|
|
53
|
+
/**
|
|
54
|
+
* Get private key as hex string (sensitive!)
|
|
55
|
+
*/
|
|
56
|
+
privateKeyHex(): string;
|
|
57
|
+
/**
|
|
58
|
+
* Get private key as bytes (sensitive!)
|
|
59
|
+
*/
|
|
60
|
+
privateKey(): Uint8Array;
|
|
61
|
+
/**
|
|
62
|
+
* Check if this identity has a private key
|
|
63
|
+
*/
|
|
64
|
+
canSign(): boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Get creation timestamp
|
|
67
|
+
*/
|
|
68
|
+
createdAt(): Date;
|
|
69
|
+
/**
|
|
70
|
+
* Export to JSON (with optional private key)
|
|
71
|
+
*/
|
|
72
|
+
toJSON(includePrivateKey?: boolean): AgentIdentityJSON;
|
|
73
|
+
/**
|
|
74
|
+
* Import from JSON
|
|
75
|
+
*/
|
|
76
|
+
static fromJSON(json: AgentIdentityJSON): Promise<AgentIdentity>;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAS;IAE5B,OAAO;IAOP;;OAEG;WACU,QAAQ,IAAI,OAAO,CAAC,aAAa,CAAC;IAa/C;;OAEG;WACU,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,EAAE,SAAS,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA4B9G;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM,GAAG,aAAa;IAkBnE;;OAEG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAgB7D;;OAEG;IACG,MAAM,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAY5F;;OAEG;IACH,GAAG,IAAI,MAAM;IAIb;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,SAAS,IAAI,UAAU;IAIvB;;OAEG;IACH,aAAa,IAAI,MAAM;IAUvB;;OAEG;IACH,UAAU,IAAI,UAAU;IAUxB;;OAEG;IACH,OAAO,IAAI,OAAO;IAIlB;;OAEG;IACH,SAAS,IAAI,IAAI;IAIjB;;OAEG;IACH,MAAM,CAAC,iBAAiB,GAAE,OAAe,GAAG,iBAAiB;IAS7D;;OAEG;WACU,QAAQ,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC;CAOvE"}
|