@agirails/sdk 2.2.3 → 2.3.1
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 +65 -31
- package/dist/ACTPClient.d.ts +42 -1
- package/dist/ACTPClient.d.ts.map +1 -1
- package/dist/ACTPClient.js +207 -22
- package/dist/ACTPClient.js.map +1 -1
- package/dist/abi/AgentRegistry.json +133 -0
- package/dist/adapters/AdapterRouter.d.ts.map +1 -1
- package/dist/adapters/AdapterRouter.js.map +1 -1
- package/dist/adapters/BasicAdapter.d.ts +10 -1
- package/dist/adapters/BasicAdapter.d.ts.map +1 -1
- package/dist/adapters/BasicAdapter.js +36 -1
- package/dist/adapters/BasicAdapter.js.map +1 -1
- package/dist/adapters/X402Adapter.d.ts +34 -7
- package/dist/adapters/X402Adapter.d.ts.map +1 -1
- package/dist/adapters/X402Adapter.js +36 -8
- package/dist/adapters/X402Adapter.js.map +1 -1
- package/dist/adapters/index.d.ts +1 -1
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js.map +1 -1
- package/dist/cli/commands/diff.d.ts +11 -0
- package/dist/cli/commands/diff.d.ts.map +1 -0
- package/dist/cli/commands/diff.js +115 -0
- package/dist/cli/commands/diff.js.map +1 -0
- package/dist/cli/commands/init.d.ts +1 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +260 -19
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/publish.d.ts +11 -0
- package/dist/cli/commands/publish.d.ts.map +1 -0
- package/dist/cli/commands/publish.js +170 -0
- package/dist/cli/commands/publish.js.map +1 -0
- package/dist/cli/commands/pull.d.ts +12 -0
- package/dist/cli/commands/pull.d.ts.map +1 -0
- package/dist/cli/commands/pull.js +99 -0
- package/dist/cli/commands/pull.js.map +1 -0
- package/dist/cli/commands/register.d.ts +16 -0
- package/dist/cli/commands/register.d.ts.map +1 -0
- package/dist/cli/commands/register.js +211 -0
- package/dist/cli/commands/register.js.map +1 -0
- package/dist/cli/index.js +10 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/utils/config.d.ts +6 -0
- package/dist/cli/utils/config.d.ts.map +1 -1
- package/dist/cli/utils/config.js.map +1 -1
- package/dist/config/agirailsmd.d.ts +94 -0
- package/dist/config/agirailsmd.d.ts.map +1 -0
- package/dist/config/agirailsmd.js +209 -0
- package/dist/config/agirailsmd.js.map +1 -0
- package/dist/config/networks.d.ts +22 -4
- package/dist/config/networks.d.ts.map +1 -1
- package/dist/config/networks.js +64 -26
- package/dist/config/networks.js.map +1 -1
- package/dist/config/publishPipeline.d.ts +75 -0
- package/dist/config/publishPipeline.d.ts.map +1 -0
- package/dist/config/publishPipeline.js +193 -0
- package/dist/config/publishPipeline.js.map +1 -0
- package/dist/config/syncOperations.d.ts +67 -0
- package/dist/config/syncOperations.d.ts.map +1 -0
- package/dist/config/syncOperations.js +208 -0
- package/dist/config/syncOperations.js.map +1 -0
- package/dist/erc8004/ERC8004Bridge.d.ts.map +1 -1
- package/dist/erc8004/ERC8004Bridge.js +6 -5
- package/dist/erc8004/ERC8004Bridge.js.map +1 -1
- package/dist/erc8004/ReputationReporter.d.ts.map +1 -1
- package/dist/erc8004/ReputationReporter.js +9 -12
- package/dist/erc8004/ReputationReporter.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -3
- package/dist/index.js.map +1 -1
- package/dist/level0/request.d.ts.map +1 -1
- package/dist/level0/request.js +23 -86
- package/dist/level0/request.js.map +1 -1
- package/dist/level1/Agent.d.ts +0 -11
- package/dist/level1/Agent.d.ts.map +1 -1
- package/dist/level1/Agent.js +19 -36
- package/dist/level1/Agent.js.map +1 -1
- package/dist/protocol/ACTPKernel.d.ts +7 -1
- package/dist/protocol/ACTPKernel.d.ts.map +1 -1
- package/dist/protocol/ACTPKernel.js +13 -10
- package/dist/protocol/ACTPKernel.js.map +1 -1
- package/dist/protocol/EventMonitor.d.ts +14 -0
- package/dist/protocol/EventMonitor.d.ts.map +1 -1
- package/dist/protocol/EventMonitor.js +14 -0
- package/dist/protocol/EventMonitor.js.map +1 -1
- package/dist/registry/AgentRegistryClient.d.ts +75 -0
- package/dist/registry/AgentRegistryClient.d.ts.map +1 -0
- package/dist/registry/AgentRegistryClient.js +160 -0
- package/dist/registry/AgentRegistryClient.js.map +1 -0
- package/dist/runtime/BlockchainRuntime.d.ts +5 -0
- package/dist/runtime/BlockchainRuntime.d.ts.map +1 -1
- package/dist/runtime/BlockchainRuntime.js +1 -1
- package/dist/runtime/BlockchainRuntime.js.map +1 -1
- package/dist/storage/ArchiveBundleBuilder.d.ts.map +1 -1
- package/dist/storage/ArchiveBundleBuilder.js.map +1 -1
- package/dist/storage/ArweaveClient.d.ts.map +1 -1
- package/dist/storage/ArweaveClient.js +2 -0
- package/dist/storage/ArweaveClient.js.map +1 -1
- package/dist/storage/FilebaseClient.d.ts.map +1 -1
- package/dist/storage/FilebaseClient.js +2 -0
- package/dist/storage/FilebaseClient.js.map +1 -1
- package/dist/types/adapter.d.ts +39 -0
- package/dist/types/adapter.d.ts.map +1 -1
- package/dist/types/adapter.js +7 -0
- package/dist/types/adapter.js.map +1 -1
- package/dist/types/x402.d.ts +23 -0
- package/dist/types/x402.d.ts.map +1 -1
- package/dist/types/x402.js.map +1 -1
- package/dist/utils/ErrorRecoveryGuide.d.ts.map +1 -1
- package/dist/utils/ErrorRecoveryGuide.js +3 -2
- package/dist/utils/ErrorRecoveryGuide.js.map +1 -1
- package/dist/utils/IPFSClient.d.ts +3 -2
- package/dist/utils/IPFSClient.d.ts.map +1 -1
- package/dist/utils/IPFSClient.js +7 -5
- package/dist/utils/IPFSClient.js.map +1 -1
- package/dist/utils/computeTypeHash.js +1 -3
- package/dist/utils/computeTypeHash.js.map +1 -1
- package/dist/utils/retry.d.ts.map +1 -1
- package/dist/utils/retry.js +0 -1
- package/dist/utils/retry.js.map +1 -1
- package/dist/utils/validation.d.ts +2 -2
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +2 -2
- package/dist/utils/validation.js.map +1 -1
- package/dist/wallet/AutoWalletProvider.d.ts +77 -0
- package/dist/wallet/AutoWalletProvider.d.ts.map +1 -0
- package/dist/wallet/AutoWalletProvider.js +197 -0
- package/dist/wallet/AutoWalletProvider.js.map +1 -0
- package/dist/wallet/EOAWalletProvider.d.ts +21 -0
- package/dist/wallet/EOAWalletProvider.d.ts.map +1 -0
- package/dist/wallet/EOAWalletProvider.js +57 -0
- package/dist/wallet/EOAWalletProvider.js.map +1 -0
- package/dist/wallet/IWalletProvider.d.ts +115 -0
- package/dist/wallet/IWalletProvider.d.ts.map +1 -0
- package/dist/wallet/IWalletProvider.js +12 -0
- package/dist/wallet/IWalletProvider.js.map +1 -0
- package/dist/wallet/aa/BundlerClient.d.ts +70 -0
- package/dist/wallet/aa/BundlerClient.d.ts.map +1 -0
- package/dist/wallet/aa/BundlerClient.js +183 -0
- package/dist/wallet/aa/BundlerClient.js.map +1 -0
- package/dist/wallet/aa/DualNonceManager.d.ts +55 -0
- package/dist/wallet/aa/DualNonceManager.d.ts.map +1 -0
- package/dist/wallet/aa/DualNonceManager.js +131 -0
- package/dist/wallet/aa/DualNonceManager.js.map +1 -0
- package/dist/wallet/aa/PaymasterClient.d.ts +52 -0
- package/dist/wallet/aa/PaymasterClient.d.ts.map +1 -0
- package/dist/wallet/aa/PaymasterClient.js +115 -0
- package/dist/wallet/aa/PaymasterClient.js.map +1 -0
- package/dist/wallet/aa/TransactionBatcher.d.ts +87 -0
- package/dist/wallet/aa/TransactionBatcher.d.ts.map +1 -0
- package/dist/wallet/aa/TransactionBatcher.js +148 -0
- package/dist/wallet/aa/TransactionBatcher.js.map +1 -0
- package/dist/wallet/aa/UserOpBuilder.d.ts +71 -0
- package/dist/wallet/aa/UserOpBuilder.d.ts.map +1 -0
- package/dist/wallet/aa/UserOpBuilder.js +196 -0
- package/dist/wallet/aa/UserOpBuilder.js.map +1 -0
- package/dist/wallet/aa/constants.d.ts +54 -0
- package/dist/wallet/aa/constants.d.ts.map +1 -0
- package/dist/wallet/aa/constants.js +18 -0
- package/dist/wallet/aa/constants.js.map +1 -0
- package/dist/wallet/keystore.d.ts +16 -0
- package/dist/wallet/keystore.d.ts.map +1 -0
- package/dist/wallet/keystore.js +132 -0
- package/dist/wallet/keystore.js.map +1 -0
- package/package.json +5 -2
- package/src/ACTPClient.ts +275 -27
- package/src/abi/AgentRegistry.json +133 -0
- package/src/adapters/AdapterRouter.ts +0 -1
- package/src/adapters/BasicAdapter.ts +41 -1
- package/src/adapters/X402Adapter.ts +94 -16
- package/src/adapters/index.ts +9 -1
- package/src/cli/commands/diff.ts +141 -0
- package/src/cli/commands/init.ts +311 -22
- package/src/cli/commands/publish.ts +208 -0
- package/src/cli/commands/pull.ts +124 -0
- package/src/cli/commands/register.ts +233 -0
- package/src/cli/index.ts +12 -0
- package/src/cli/utils/config.ts +9 -0
- package/src/config/agirailsmd.ts +262 -0
- package/src/config/networks.ts +89 -26
- package/src/config/publishPipeline.ts +276 -0
- package/src/config/syncOperations.ts +279 -0
- package/src/erc8004/ERC8004Bridge.ts +6 -5
- package/src/erc8004/ReputationReporter.ts +14 -18
- package/src/index.ts +15 -0
- package/src/level0/request.ts +27 -88
- package/src/level1/Agent.ts +21 -37
- package/src/protocol/ACTPKernel.ts +20 -10
- package/src/protocol/EventMonitor.ts +14 -0
- package/src/registry/AgentRegistryClient.ts +202 -0
- package/src/runtime/BlockchainRuntime.ts +7 -1
- package/src/storage/ArchiveBundleBuilder.ts +0 -2
- package/src/storage/ArweaveClient.ts +2 -1
- package/src/storage/FilebaseClient.ts +3 -3
- package/src/types/adapter.ts +14 -0
- package/src/types/x402.ts +32 -0
- package/src/utils/ErrorRecoveryGuide.ts +4 -2
- package/src/utils/IPFSClient.ts +9 -7
- package/src/utils/computeTypeHash.ts +1 -3
- package/src/utils/retry.ts +0 -1
- package/src/utils/validation.ts +2 -2
- package/src/wallet/AutoWalletProvider.ts +294 -0
- package/src/wallet/EOAWalletProvider.ts +69 -0
- package/src/wallet/IWalletProvider.ts +133 -0
- package/src/wallet/aa/BundlerClient.ts +273 -0
- package/src/wallet/aa/DualNonceManager.ts +163 -0
- package/src/wallet/aa/PaymasterClient.ts +173 -0
- package/src/wallet/aa/TransactionBatcher.ts +240 -0
- package/src/wallet/aa/UserOpBuilder.ts +246 -0
- package/src/wallet/aa/constants.ts +60 -0
- package/src/wallet/keystore.ts +119 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Publish Command - Publish AGIRAILS.md config on-chain
|
|
3
|
+
*
|
|
4
|
+
* Reads AGIRAILS.md, computes canonical hash, uploads to IPFS,
|
|
5
|
+
* optionally to Arweave, and records on AgentRegistry.
|
|
6
|
+
*
|
|
7
|
+
* @module cli/commands/publish
|
|
8
|
+
*/
|
|
9
|
+
import { Command } from 'commander';
|
|
10
|
+
export declare function createPublishCommand(): Command;
|
|
11
|
+
//# sourceMappingURL=publish.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/publish.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC,wBAAgB,oBAAoB,IAAI,OAAO,CA4B9C"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Publish Command - Publish AGIRAILS.md config on-chain
|
|
4
|
+
*
|
|
5
|
+
* Reads AGIRAILS.md, computes canonical hash, uploads to IPFS,
|
|
6
|
+
* optionally to Arweave, and records on AgentRegistry.
|
|
7
|
+
*
|
|
8
|
+
* @module cli/commands/publish
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.createPublishCommand = void 0;
|
|
12
|
+
const commander_1 = require("commander");
|
|
13
|
+
const output_1 = require("../utils/output");
|
|
14
|
+
const client_1 = require("../utils/client");
|
|
15
|
+
const path_1 = require("path");
|
|
16
|
+
const fs_1 = require("fs");
|
|
17
|
+
const ethers_1 = require("ethers");
|
|
18
|
+
const agirailsmd_1 = require("../../config/agirailsmd");
|
|
19
|
+
const FilebaseClient_1 = require("../../storage/FilebaseClient");
|
|
20
|
+
const ArweaveClient_1 = require("../../storage/ArweaveClient");
|
|
21
|
+
const networks_1 = require("../../config/networks");
|
|
22
|
+
const publishPipeline_1 = require("../../config/publishPipeline");
|
|
23
|
+
// ============================================================================
|
|
24
|
+
// Command Definition
|
|
25
|
+
// ============================================================================
|
|
26
|
+
function createPublishCommand() {
|
|
27
|
+
const cmd = new commander_1.Command('publish')
|
|
28
|
+
.description('Publish AGIRAILS.md config on-chain')
|
|
29
|
+
.argument('[path]', 'Path to AGIRAILS.md', './AGIRAILS.md')
|
|
30
|
+
.option('-n, --network <network>', 'Network (base-sepolia | base-mainnet)', 'base-sepolia')
|
|
31
|
+
.option('--skip-arweave', 'Skip permanent Arweave storage (dev mode)')
|
|
32
|
+
.option('--dry-run', 'Show what would happen without executing')
|
|
33
|
+
.option('--json', 'Output as JSON')
|
|
34
|
+
.option('-q, --quiet', 'Output only the config hash')
|
|
35
|
+
.action(async (path, options) => {
|
|
36
|
+
const output = new output_1.Output(options.json ? 'json' : options.quiet ? 'quiet' : 'human');
|
|
37
|
+
try {
|
|
38
|
+
await runPublish(path, options, output);
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
const structuredError = (0, client_1.mapError)(error);
|
|
42
|
+
output.errorResult({
|
|
43
|
+
code: structuredError.code,
|
|
44
|
+
message: structuredError.message,
|
|
45
|
+
details: structuredError.details,
|
|
46
|
+
});
|
|
47
|
+
process.exit(output_1.ExitCode.ERROR);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
return cmd;
|
|
51
|
+
}
|
|
52
|
+
exports.createPublishCommand = createPublishCommand;
|
|
53
|
+
async function runPublish(filePath, options, output) {
|
|
54
|
+
const resolvedPath = (0, path_1.resolve)(filePath);
|
|
55
|
+
if (!(0, fs_1.existsSync)(resolvedPath)) {
|
|
56
|
+
output.error(`File not found: ${filePath}`);
|
|
57
|
+
process.exit(output_1.ExitCode.INVALID_INPUT);
|
|
58
|
+
}
|
|
59
|
+
const spinner = output.spinner('Reading AGIRAILS.md...');
|
|
60
|
+
try {
|
|
61
|
+
// Read and compute hash
|
|
62
|
+
const content = (0, fs_1.readFileSync)(resolvedPath, 'utf-8');
|
|
63
|
+
const { configHash, structuredHash, bodyHash } = (0, agirailsmd_1.computeConfigHash)(content);
|
|
64
|
+
if (options.dryRun) {
|
|
65
|
+
spinner.stop(true);
|
|
66
|
+
output.result({
|
|
67
|
+
configHash,
|
|
68
|
+
structuredHash,
|
|
69
|
+
bodyHash,
|
|
70
|
+
path: resolvedPath,
|
|
71
|
+
network: options.network,
|
|
72
|
+
dryRun: true,
|
|
73
|
+
}, { quietKey: 'configHash' });
|
|
74
|
+
output.blank();
|
|
75
|
+
output.success('Dry run complete. No changes made.');
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
// Validate environment
|
|
79
|
+
const privateKey = process.env.ACTP_PRIVATE_KEY || process.env.PRIVATE_KEY;
|
|
80
|
+
if (!privateKey) {
|
|
81
|
+
spinner.stop(false);
|
|
82
|
+
output.error('Private key required. Set ACTP_PRIVATE_KEY or PRIVATE_KEY env var.');
|
|
83
|
+
process.exit(output_1.ExitCode.INVALID_INPUT);
|
|
84
|
+
}
|
|
85
|
+
const networkConfig = (0, networks_1.getNetwork)(options.network);
|
|
86
|
+
if (!networkConfig.contracts.agentRegistry) {
|
|
87
|
+
spinner.stop(false);
|
|
88
|
+
output.error(`AgentRegistry not deployed on ${options.network}`);
|
|
89
|
+
process.exit(output_1.ExitCode.ERROR);
|
|
90
|
+
}
|
|
91
|
+
// Create provider and signer
|
|
92
|
+
const provider = new ethers_1.ethers.JsonRpcProvider(networkConfig.rpcUrl);
|
|
93
|
+
const signer = new ethers_1.ethers.Wallet(privateKey, provider);
|
|
94
|
+
// Create Filebase client
|
|
95
|
+
const filebaseAccessKey = process.env.FILEBASE_ACCESS_KEY;
|
|
96
|
+
const filebaseSecretKey = process.env.FILEBASE_SECRET_KEY;
|
|
97
|
+
if (!filebaseAccessKey || !filebaseSecretKey) {
|
|
98
|
+
spinner.stop(false);
|
|
99
|
+
output.error('Filebase credentials required. Set FILEBASE_ACCESS_KEY and FILEBASE_SECRET_KEY.');
|
|
100
|
+
process.exit(output_1.ExitCode.INVALID_INPUT);
|
|
101
|
+
}
|
|
102
|
+
const filebaseClient = new FilebaseClient_1.FilebaseClient({
|
|
103
|
+
accessKey: filebaseAccessKey,
|
|
104
|
+
secretKey: filebaseSecretKey,
|
|
105
|
+
});
|
|
106
|
+
// Create Arweave client (optional)
|
|
107
|
+
let arweaveClient;
|
|
108
|
+
if (!options.skipArweave) {
|
|
109
|
+
const arweaveKey = process.env.ARCHIVE_UPLOADER_KEY;
|
|
110
|
+
if (arweaveKey) {
|
|
111
|
+
arweaveClient = await ArweaveClient_1.ArweaveClient.create({
|
|
112
|
+
privateKey: arweaveKey,
|
|
113
|
+
rpcUrl: networkConfig.rpcUrl,
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
spinner.stop(true);
|
|
118
|
+
const publishSpinner = output.spinner('Publishing to IPFS + on-chain...');
|
|
119
|
+
const result = await (0, publishPipeline_1.publishAgirailsMd)({
|
|
120
|
+
path: resolvedPath,
|
|
121
|
+
network: options.network,
|
|
122
|
+
registryAddress: networkConfig.contracts.agentRegistry,
|
|
123
|
+
signer,
|
|
124
|
+
filebaseClient,
|
|
125
|
+
arweaveClient,
|
|
126
|
+
skipArweave: options.skipArweave || !arweaveClient,
|
|
127
|
+
gasSettings: {
|
|
128
|
+
maxFeePerGas: networkConfig.gasSettings.maxFeePerGas,
|
|
129
|
+
maxPriorityFeePerGas: networkConfig.gasSettings.maxPriorityFeePerGas,
|
|
130
|
+
},
|
|
131
|
+
});
|
|
132
|
+
publishSpinner.stop(true);
|
|
133
|
+
output.result({
|
|
134
|
+
configHash: result.configHash,
|
|
135
|
+
cid: result.cid,
|
|
136
|
+
txHash: result.txHash,
|
|
137
|
+
arweaveTxId: result.arweaveTxId || null,
|
|
138
|
+
registered: result.registered || false,
|
|
139
|
+
network: options.network,
|
|
140
|
+
}, { quietKey: 'configHash' });
|
|
141
|
+
output.blank();
|
|
142
|
+
if (result.registered) {
|
|
143
|
+
output.success('Agent registered and config published!');
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
output.success('Config published successfully!');
|
|
147
|
+
}
|
|
148
|
+
output.print('');
|
|
149
|
+
output.print('Next steps:');
|
|
150
|
+
output.print(' - Verify sync: actp diff');
|
|
151
|
+
output.print(' - View on-chain: ' + networkConfig.blockExplorer + '/tx/' + result.txHash);
|
|
152
|
+
// Warn if placeholder endpoint was used during auto-register
|
|
153
|
+
if (result.registered) {
|
|
154
|
+
const content = (0, fs_1.readFileSync)(resolvedPath, 'utf-8');
|
|
155
|
+
const { frontmatter } = (0, agirailsmd_1.parseAgirailsMd)(content);
|
|
156
|
+
if (!frontmatter.endpoint || frontmatter.endpoint === publishPipeline_1.PENDING_ENDPOINT) {
|
|
157
|
+
output.print('');
|
|
158
|
+
output.warning('No endpoint in AGIRAILS.md — registered with placeholder URL.');
|
|
159
|
+
output.print(' Update when your agent is deployed:');
|
|
160
|
+
output.print(' 1. Add "endpoint: https://your-agent.com/webhook" to AGIRAILS.md');
|
|
161
|
+
output.print(' 2. Run: actp publish');
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
spinner.stop(false);
|
|
167
|
+
throw error;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=publish.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../src/cli/commands/publish.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,yCAAoC;AACpC,4CAAmD;AACnD,4CAA2C;AAC3C,+BAA+B;AAC/B,2BAA8C;AAC9C,mCAAgC;AAChC,wDAA6E;AAC7E,iEAA8D;AAC9D,+DAA4D;AAC5D,oDAAmD;AACnD,kEAAmF;AAEnF,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,SAAgB,oBAAoB;IAClC,MAAM,GAAG,GAAG,IAAI,mBAAO,CAAC,SAAS,CAAC;SAC/B,WAAW,CAAC,qCAAqC,CAAC;SAClD,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,EAAE,eAAe,CAAC;SAC1D,MAAM,CAAC,yBAAyB,EAAE,uCAAuC,EAAE,cAAc,CAAC;SAC1F,MAAM,CAAC,gBAAgB,EAAE,2CAA2C,CAAC;SACrE,MAAM,CAAC,WAAW,EAAE,0CAA0C,CAAC;SAC/D,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,aAAa,EAAE,6BAA6B,CAAC;SACpD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QAC9B,MAAM,MAAM,GAAG,IAAI,eAAM,CACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAC1D,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,eAAe,GAAG,IAAA,iBAAQ,EAAC,KAAK,CAAC,CAAC;YACxC,MAAM,CAAC,WAAW,CAAC;gBACjB,IAAI,EAAE,eAAe,CAAC,IAAI;gBAC1B,OAAO,EAAE,eAAe,CAAC,OAAO;gBAChC,OAAO,EAAE,eAAe,CAAC,OAAO;aACjC,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,iBAAQ,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,GAAG,CAAC;AACb,CAAC;AA5BD,oDA4BC;AAYD,KAAK,UAAU,UAAU,CACvB,QAAgB,EAChB,OAA8B,EAC9B,MAAc;IAEd,MAAM,YAAY,GAAG,IAAA,cAAO,EAAC,QAAQ,CAAC,CAAC;IAEvC,IAAI,CAAC,IAAA,eAAU,EAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,iBAAQ,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAEzD,IAAI,CAAC;QACH,wBAAwB;QACxB,MAAM,OAAO,GAAG,IAAA,iBAAY,EAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,IAAA,8BAAiB,EAAC,OAAO,CAAC,CAAC;QAE5E,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEnB,MAAM,CAAC,MAAM,CACX;gBACE,UAAU;gBACV,cAAc;gBACd,QAAQ;gBACR,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,MAAM,EAAE,IAAI;aACb,EACD,EAAE,QAAQ,EAAE,YAAY,EAAE,CAC3B,CAAC;YAEF,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;YACrD,OAAO;QACT,CAAC;QAED,uBAAuB;QACvB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;QAC3E,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;YACnF,OAAO,CAAC,IAAI,CAAC,iBAAQ,CAAC,aAAa,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,aAAa,GAAG,IAAA,qBAAU,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,iCAAiC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YACjE,OAAO,CAAC,IAAI,CAAC,iBAAQ,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QAED,6BAA6B;QAC7B,MAAM,QAAQ,GAAG,IAAI,eAAM,CAAC,eAAe,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAEvD,yBAAyB;QACzB,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;QAC1D,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;QAC1D,IAAI,CAAC,iBAAiB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,iFAAiF,CAAC,CAAC;YAChG,OAAO,CAAC,IAAI,CAAC,iBAAQ,CAAC,aAAa,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,+BAAc,CAAC;YACxC,SAAS,EAAE,iBAAiB;YAC5B,SAAS,EAAE,iBAAiB;SAC7B,CAAC,CAAC;QAEH,mCAAmC;QACnC,IAAI,aAAwC,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACzB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;YACpD,IAAI,UAAU,EAAE,CAAC;gBACf,aAAa,GAAG,MAAM,6BAAa,CAAC,MAAM,CAAC;oBACzC,UAAU,EAAE,UAAU;oBACtB,MAAM,EAAE,aAAa,CAAC,MAAM;iBAC7B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;QAE1E,MAAM,MAAM,GAAG,MAAM,IAAA,mCAAiB,EAAC;YACrC,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,eAAe,EAAE,aAAa,CAAC,SAAS,CAAC,aAAa;YACtD,MAAM;YACN,cAAc;YACd,aAAa;YACb,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,CAAC,aAAa;YAClD,WAAW,EAAE;gBACX,YAAY,EAAE,aAAa,CAAC,WAAW,CAAC,YAAY;gBACpD,oBAAoB,EAAE,aAAa,CAAC,WAAW,CAAC,oBAAoB;aACrE;SACF,CAAC,CAAC;QAEH,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE1B,MAAM,CAAC,MAAM,CACX;YACE,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,IAAI;YACvC,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,KAAK;YACtC,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,EACD,EAAE,QAAQ,EAAE,YAAY,EAAE,CAC3B,CAAC;QAEF,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,MAAM,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;QACnD,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjB,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC5C,MAAM,CAAC,KAAK,CAAC,qBAAqB,GAAG,aAAa,CAAC,aAAa,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAE3F,6DAA6D;QAC7D,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,IAAA,iBAAY,EAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACpD,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,4BAAe,EAAC,OAAO,CAAC,CAAC;YACjD,IAAI,CAAC,WAAW,CAAC,QAAQ,IAAI,WAAW,CAAC,QAAQ,KAAK,kCAAgB,EAAE,CAAC;gBACvE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACjB,MAAM,CAAC,OAAO,CAAC,+DAA+D,CAAC,CAAC;gBAChF,MAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;gBACtD,MAAM,CAAC,KAAK,CAAC,sEAAsE,CAAC,CAAC;gBACrF,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pull Command - Pull on-chain config to local AGIRAILS.md
|
|
3
|
+
*
|
|
4
|
+
* Fetches the published AGIRAILS.md from IPFS (via on-chain CID),
|
|
5
|
+
* verifies integrity against on-chain hash, and writes locally.
|
|
6
|
+
* Use --force to overwrite existing file without confirmation.
|
|
7
|
+
*
|
|
8
|
+
* @module cli/commands/pull
|
|
9
|
+
*/
|
|
10
|
+
import { Command } from 'commander';
|
|
11
|
+
export declare function createPullCommand(): Command;
|
|
12
|
+
//# sourceMappingURL=pull.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/pull.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,wBAAgB,iBAAiB,IAAI,OAAO,CA4B3C"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Pull Command - Pull on-chain config to local AGIRAILS.md
|
|
4
|
+
*
|
|
5
|
+
* Fetches the published AGIRAILS.md from IPFS (via on-chain CID),
|
|
6
|
+
* verifies integrity against on-chain hash, and writes locally.
|
|
7
|
+
* Use --force to overwrite existing file without confirmation.
|
|
8
|
+
*
|
|
9
|
+
* @module cli/commands/pull
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.createPullCommand = void 0;
|
|
13
|
+
const commander_1 = require("commander");
|
|
14
|
+
const output_1 = require("../utils/output");
|
|
15
|
+
const client_1 = require("../utils/client");
|
|
16
|
+
const path_1 = require("path");
|
|
17
|
+
const ethers_1 = require("ethers");
|
|
18
|
+
const syncOperations_1 = require("../../config/syncOperations");
|
|
19
|
+
const networks_1 = require("../../config/networks");
|
|
20
|
+
// ============================================================================
|
|
21
|
+
// Command Definition
|
|
22
|
+
// ============================================================================
|
|
23
|
+
function createPullCommand() {
|
|
24
|
+
const cmd = new commander_1.Command('pull')
|
|
25
|
+
.description('Pull on-chain AGIRAILS.md config to local file')
|
|
26
|
+
.argument('[path]', 'Path to write AGIRAILS.md', './AGIRAILS.md')
|
|
27
|
+
.option('-n, --network <network>', 'Network (base-sepolia | base-mainnet)', 'base-sepolia')
|
|
28
|
+
.option('-a, --address <address>', 'Agent address to pull config for')
|
|
29
|
+
.option('--force', 'Overwrite without confirmation (CI mode)')
|
|
30
|
+
.option('--json', 'Output as JSON')
|
|
31
|
+
.option('-q, --quiet', 'Minimal output')
|
|
32
|
+
.action(async (path, options) => {
|
|
33
|
+
const output = new output_1.Output(options.json ? 'json' : options.quiet ? 'quiet' : 'human');
|
|
34
|
+
try {
|
|
35
|
+
await runPull(path, options, output);
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
const structuredError = (0, client_1.mapError)(error);
|
|
39
|
+
output.errorResult({
|
|
40
|
+
code: structuredError.code,
|
|
41
|
+
message: structuredError.message,
|
|
42
|
+
details: structuredError.details,
|
|
43
|
+
});
|
|
44
|
+
process.exit(output_1.ExitCode.ERROR);
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
return cmd;
|
|
48
|
+
}
|
|
49
|
+
exports.createPullCommand = createPullCommand;
|
|
50
|
+
async function runPull(filePath, options, output) {
|
|
51
|
+
const resolvedPath = (0, path_1.resolve)(filePath);
|
|
52
|
+
// Determine agent address
|
|
53
|
+
let agentAddress = options.address;
|
|
54
|
+
if (!agentAddress) {
|
|
55
|
+
const privateKey = process.env.ACTP_PRIVATE_KEY || process.env.PRIVATE_KEY;
|
|
56
|
+
if (!privateKey) {
|
|
57
|
+
output.error('Agent address required. Use --address or set ACTP_PRIVATE_KEY env var.');
|
|
58
|
+
process.exit(output_1.ExitCode.INVALID_INPUT);
|
|
59
|
+
}
|
|
60
|
+
agentAddress = new ethers_1.ethers.Wallet(privateKey).address;
|
|
61
|
+
}
|
|
62
|
+
const networkConfig = (0, networks_1.getNetwork)(options.network);
|
|
63
|
+
if (!networkConfig.contracts.agentRegistry) {
|
|
64
|
+
output.error(`AgentRegistry not deployed on ${options.network}`);
|
|
65
|
+
process.exit(output_1.ExitCode.ERROR);
|
|
66
|
+
}
|
|
67
|
+
const spinner = output.spinner('Pulling config from on-chain...');
|
|
68
|
+
try {
|
|
69
|
+
const provider = new ethers_1.ethers.JsonRpcProvider(networkConfig.rpcUrl);
|
|
70
|
+
const result = await (0, syncOperations_1.pull)({
|
|
71
|
+
path: resolvedPath,
|
|
72
|
+
agentAddress,
|
|
73
|
+
registryAddress: networkConfig.contracts.agentRegistry,
|
|
74
|
+
provider,
|
|
75
|
+
force: options.force,
|
|
76
|
+
});
|
|
77
|
+
spinner.stop(result.written);
|
|
78
|
+
output.result({
|
|
79
|
+
written: result.written,
|
|
80
|
+
cid: result.cid || null,
|
|
81
|
+
status: result.status,
|
|
82
|
+
path: resolvedPath,
|
|
83
|
+
network: options.network,
|
|
84
|
+
}, { quietKey: 'status' });
|
|
85
|
+
if (result.written) {
|
|
86
|
+
output.blank();
|
|
87
|
+
output.success(`Config pulled and written to ${filePath}`);
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
output.blank();
|
|
91
|
+
output.info(result.status);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
spinner.stop(false);
|
|
96
|
+
throw error;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=pull.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../../../src/cli/commands/pull.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Register Command — Register agent on AgentRegistry for gas-free transactions.
|
|
3
|
+
*
|
|
4
|
+
* Parses AGIRAILS.md for service descriptors and endpoint, then registers
|
|
5
|
+
* on-chain via a single gasless UserOp (bootstrap-allowed).
|
|
6
|
+
*
|
|
7
|
+
* For testnet: also mints 1000 test USDC in the same UserOp.
|
|
8
|
+
*
|
|
9
|
+
* WARNING: This creates a NEW Smart Wallet address (different from EOA).
|
|
10
|
+
* Old EOA reputation/history does not transfer.
|
|
11
|
+
*
|
|
12
|
+
* @module cli/commands/register
|
|
13
|
+
*/
|
|
14
|
+
import { Command } from 'commander';
|
|
15
|
+
export declare function createRegisterCommand(): Command;
|
|
16
|
+
//# sourceMappingURL=register.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/register.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,wBAAgB,qBAAqB,IAAI,OAAO,CAuB/C"}
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Register Command — Register agent on AgentRegistry for gas-free transactions.
|
|
4
|
+
*
|
|
5
|
+
* Parses AGIRAILS.md for service descriptors and endpoint, then registers
|
|
6
|
+
* on-chain via a single gasless UserOp (bootstrap-allowed).
|
|
7
|
+
*
|
|
8
|
+
* For testnet: also mints 1000 test USDC in the same UserOp.
|
|
9
|
+
*
|
|
10
|
+
* WARNING: This creates a NEW Smart Wallet address (different from EOA).
|
|
11
|
+
* Old EOA reputation/history does not transfer.
|
|
12
|
+
*
|
|
13
|
+
* @module cli/commands/register
|
|
14
|
+
*/
|
|
15
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
18
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
19
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
20
|
+
}
|
|
21
|
+
Object.defineProperty(o, k2, desc);
|
|
22
|
+
}) : (function(o, m, k, k2) {
|
|
23
|
+
if (k2 === undefined) k2 = k;
|
|
24
|
+
o[k2] = m[k];
|
|
25
|
+
}));
|
|
26
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
27
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
28
|
+
}) : function(o, v) {
|
|
29
|
+
o["default"] = v;
|
|
30
|
+
});
|
|
31
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.createRegisterCommand = void 0;
|
|
40
|
+
const fs = __importStar(require("fs"));
|
|
41
|
+
const path = __importStar(require("path"));
|
|
42
|
+
const commander_1 = require("commander");
|
|
43
|
+
const output_1 = require("../utils/output");
|
|
44
|
+
const config_1 = require("../utils/config");
|
|
45
|
+
const keystore_1 = require("../../wallet/keystore");
|
|
46
|
+
// ============================================================================
|
|
47
|
+
// Command Definition
|
|
48
|
+
// ============================================================================
|
|
49
|
+
function createRegisterCommand() {
|
|
50
|
+
const cmd = new commander_1.Command('register')
|
|
51
|
+
.description('Register agent on AgentRegistry for gas-free transactions')
|
|
52
|
+
.option('--endpoint <url>', 'Service endpoint URL (overrides AGIRAILS.md)')
|
|
53
|
+
.option('--json', 'Output as JSON')
|
|
54
|
+
.option('-q, --quiet', 'Minimal output')
|
|
55
|
+
.action(async (options) => {
|
|
56
|
+
const output = new output_1.Output(options.json ? 'json' : options.quiet ? 'quiet' : 'human');
|
|
57
|
+
try {
|
|
58
|
+
await runRegister(options, output);
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
output.errorResult({
|
|
62
|
+
code: 'REGISTER_FAILED',
|
|
63
|
+
message: error.message,
|
|
64
|
+
});
|
|
65
|
+
process.exit(output_1.ExitCode.ERROR);
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
return cmd;
|
|
69
|
+
}
|
|
70
|
+
exports.createRegisterCommand = createRegisterCommand;
|
|
71
|
+
// ============================================================================
|
|
72
|
+
// Implementation
|
|
73
|
+
// ============================================================================
|
|
74
|
+
async function runRegister(options, output) {
|
|
75
|
+
const projectRoot = process.cwd();
|
|
76
|
+
// Load config
|
|
77
|
+
const config = (0, config_1.loadConfig)(projectRoot);
|
|
78
|
+
if (!config) {
|
|
79
|
+
throw new Error('ACTP not initialized. Run "actp init" first.');
|
|
80
|
+
}
|
|
81
|
+
if (config.mode === 'mock') {
|
|
82
|
+
throw new Error('Registration is not available in mock mode.');
|
|
83
|
+
}
|
|
84
|
+
// Resolve private key
|
|
85
|
+
const privateKey = await (0, keystore_1.resolvePrivateKey)(projectRoot);
|
|
86
|
+
if (!privateKey) {
|
|
87
|
+
throw new Error('No wallet found. Run "actp init" first to generate a wallet.');
|
|
88
|
+
}
|
|
89
|
+
// Parse AGIRAILS.md for service descriptors
|
|
90
|
+
const { parseAgirailsMd } = await Promise.resolve().then(() => __importStar(require('../../config/agirailsmd')));
|
|
91
|
+
const { extractRegistrationParams } = await Promise.resolve().then(() => __importStar(require('../../config/publishPipeline')));
|
|
92
|
+
const agirailsMdPath = path.join(projectRoot, 'AGIRAILS.md');
|
|
93
|
+
let endpoint = options.endpoint || '';
|
|
94
|
+
let serviceDescriptors;
|
|
95
|
+
if (fs.existsSync(agirailsMdPath)) {
|
|
96
|
+
const content = fs.readFileSync(agirailsMdPath, 'utf-8');
|
|
97
|
+
const parsed = parseAgirailsMd(content);
|
|
98
|
+
const regParams = extractRegistrationParams(parsed.frontmatter);
|
|
99
|
+
endpoint = options.endpoint || regParams.endpoint;
|
|
100
|
+
serviceDescriptors = regParams.serviceDescriptors;
|
|
101
|
+
output.info(`Parsed ${serviceDescriptors.length} service(s) from AGIRAILS.md`);
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
// No AGIRAILS.md — use minimal defaults
|
|
105
|
+
const { ethers: ethersLib } = await Promise.resolve().then(() => __importStar(require('ethers')));
|
|
106
|
+
const serviceType = 'general';
|
|
107
|
+
serviceDescriptors = [{
|
|
108
|
+
serviceTypeHash: ethersLib.keccak256(ethersLib.toUtf8Bytes(serviceType)),
|
|
109
|
+
serviceType,
|
|
110
|
+
schemaURI: '',
|
|
111
|
+
minPrice: 0n,
|
|
112
|
+
maxPrice: 1000000000n, // 1000 USDC
|
|
113
|
+
avgCompletionTime: 3600,
|
|
114
|
+
metadataCID: '',
|
|
115
|
+
}];
|
|
116
|
+
output.warning('No AGIRAILS.md found. Using default "general" service descriptor.');
|
|
117
|
+
output.info('Create AGIRAILS.md with services to customize registration.');
|
|
118
|
+
}
|
|
119
|
+
// Dynamic imports
|
|
120
|
+
const { ethers } = await Promise.resolve().then(() => __importStar(require('ethers')));
|
|
121
|
+
const { getNetwork } = await Promise.resolve().then(() => __importStar(require('../../config/networks')));
|
|
122
|
+
const { AutoWalletProvider } = await Promise.resolve().then(() => __importStar(require('../../wallet/AutoWalletProvider')));
|
|
123
|
+
const { buildRegisterAgentBatch, buildTestnetInitBatch } = await Promise.resolve().then(() => __importStar(require('../../wallet/aa/TransactionBatcher')));
|
|
124
|
+
const network = config.mode === 'testnet' ? 'base-sepolia' : 'base-mainnet';
|
|
125
|
+
const networkConfig = getNetwork(network);
|
|
126
|
+
if (!networkConfig.aa) {
|
|
127
|
+
throw new Error(`AA configuration not available for ${config.mode}. ` +
|
|
128
|
+
'Smart Wallet registration requires AA support.');
|
|
129
|
+
}
|
|
130
|
+
if (!networkConfig.contracts.agentRegistry) {
|
|
131
|
+
throw new Error('AgentRegistry contract not deployed yet. Registration not available.');
|
|
132
|
+
}
|
|
133
|
+
const rpcUrl = networkConfig.rpcUrl;
|
|
134
|
+
const provider = new ethers.JsonRpcProvider(rpcUrl);
|
|
135
|
+
const signer = new ethers.Wallet(privateKey, provider);
|
|
136
|
+
output.info('Creating Smart Wallet...');
|
|
137
|
+
const autoWallet = await AutoWalletProvider.create({
|
|
138
|
+
signer,
|
|
139
|
+
provider,
|
|
140
|
+
chainId: networkConfig.chainId,
|
|
141
|
+
actpKernelAddress: networkConfig.contracts.actpKernel,
|
|
142
|
+
bundler: {
|
|
143
|
+
primaryUrl: networkConfig.aa.bundlerUrls.coinbase,
|
|
144
|
+
backupUrl: networkConfig.aa.bundlerUrls.pimlico,
|
|
145
|
+
},
|
|
146
|
+
paymaster: {
|
|
147
|
+
primaryUrl: networkConfig.aa.paymasterUrls.coinbase,
|
|
148
|
+
backupUrl: networkConfig.aa.paymasterUrls.pimlico,
|
|
149
|
+
},
|
|
150
|
+
});
|
|
151
|
+
const smartWalletAddress = autoWallet.getAddress();
|
|
152
|
+
output.info(`Smart Wallet: ${smartWalletAddress}`);
|
|
153
|
+
if (smartWalletAddress.toLowerCase() !== config.address.toLowerCase()) {
|
|
154
|
+
output.warning(`This creates a NEW address: ${smartWalletAddress}\n` +
|
|
155
|
+
` Your current address: ${config.address}\n` +
|
|
156
|
+
' Old address reputation/history does NOT transfer.');
|
|
157
|
+
}
|
|
158
|
+
// Build batch — testnet gets register + mint, mainnet gets register only
|
|
159
|
+
let calls;
|
|
160
|
+
if (config.mode === 'testnet') {
|
|
161
|
+
output.info('Testnet mode: will register + mint 1000 test USDC in one UserOp');
|
|
162
|
+
calls = buildTestnetInitBatch({
|
|
163
|
+
agentRegistryAddress: networkConfig.contracts.agentRegistry,
|
|
164
|
+
endpoint,
|
|
165
|
+
serviceDescriptors,
|
|
166
|
+
mockUsdcAddress: networkConfig.contracts.usdc,
|
|
167
|
+
recipient: smartWalletAddress,
|
|
168
|
+
mintAmount: '1000000000', // 1000 USDC
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
calls = buildRegisterAgentBatch(networkConfig.contracts.agentRegistry, endpoint, serviceDescriptors);
|
|
173
|
+
}
|
|
174
|
+
// Convert SmartWalletCall[] to TransactionRequest[]
|
|
175
|
+
const txRequests = calls.map((c) => ({
|
|
176
|
+
to: c.target,
|
|
177
|
+
data: c.data,
|
|
178
|
+
value: c.value.toString(),
|
|
179
|
+
}));
|
|
180
|
+
output.info('Submitting registration (gasless UserOp)...');
|
|
181
|
+
const receipt = await autoWallet.sendBatchTransaction(txRequests);
|
|
182
|
+
if (!receipt.success) {
|
|
183
|
+
throw new Error(`Registration UserOp failed: ${receipt.hash}`);
|
|
184
|
+
}
|
|
185
|
+
output.success('Agent registered on AgentRegistry');
|
|
186
|
+
if (config.mode === 'testnet') {
|
|
187
|
+
output.success('Minted 1,000 test USDC to Smart Wallet');
|
|
188
|
+
}
|
|
189
|
+
// Update config: flip address to Smart Wallet, mark as registered
|
|
190
|
+
(0, config_1.updateConfig)({
|
|
191
|
+
address: smartWalletAddress.toLowerCase(),
|
|
192
|
+
smartWallet: smartWalletAddress.toLowerCase(),
|
|
193
|
+
registered: true,
|
|
194
|
+
}, projectRoot);
|
|
195
|
+
output.info('Config updated: address set to Smart Wallet');
|
|
196
|
+
output.blank();
|
|
197
|
+
output.result({
|
|
198
|
+
registered: true,
|
|
199
|
+
smartWallet: smartWalletAddress,
|
|
200
|
+
services: serviceDescriptors.length,
|
|
201
|
+
txHash: receipt.hash,
|
|
202
|
+
...(config.mode === 'testnet' && { mintedUSDC: '1000' }),
|
|
203
|
+
}, { quietKey: 'smartWallet' });
|
|
204
|
+
output.blank();
|
|
205
|
+
output.print('Your agent now has gas-free transactions!');
|
|
206
|
+
output.print(`Smart Wallet address: ${smartWalletAddress}`);
|
|
207
|
+
output.print('');
|
|
208
|
+
output.print('To use gas-free mode, add to your agent config:');
|
|
209
|
+
output.print(' wallet: "auto"');
|
|
210
|
+
}
|
|
211
|
+
//# sourceMappingURL=register.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../../src/cli/commands/register.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -49,6 +49,10 @@ const watch_1 = require("./commands/watch");
|
|
|
49
49
|
const simulate_1 = require("./commands/simulate");
|
|
50
50
|
const batch_1 = require("./commands/batch");
|
|
51
51
|
const time_1 = require("./commands/time");
|
|
52
|
+
const publish_1 = require("./commands/publish");
|
|
53
|
+
const pull_1 = require("./commands/pull");
|
|
54
|
+
const diff_1 = require("./commands/diff");
|
|
55
|
+
const register_1 = require("./commands/register");
|
|
52
56
|
// ============================================================================
|
|
53
57
|
// Program Setup
|
|
54
58
|
// ============================================================================
|
|
@@ -83,6 +87,12 @@ program.addCommand((0, simulate_1.createSimulateCommand)());
|
|
|
83
87
|
program.addCommand((0, batch_1.createBatchCommand)());
|
|
84
88
|
// Mock mode utilities
|
|
85
89
|
program.addCommand((0, time_1.createTimeCommand)());
|
|
90
|
+
// Config sync commands (AGIRAILS.md as source of truth)
|
|
91
|
+
program.addCommand((0, publish_1.createPublishCommand)());
|
|
92
|
+
program.addCommand((0, pull_1.createPullCommand)());
|
|
93
|
+
program.addCommand((0, diff_1.createDiffCommand)());
|
|
94
|
+
// AIP-12: Gas-free registration
|
|
95
|
+
program.addCommand((0, register_1.createRegisterCommand)());
|
|
86
96
|
// ============================================================================
|
|
87
97
|
// Error Handling
|
|
88
98
|
// ============================================================================
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;AACA;;;;;;;;;;;;;GAaG;;AAEH,yCAAoC;AACpC,2BAAkC;AAClC,+BAA4B;AAE5B,8DAA8D;AAC9D,SAAS,UAAU;IACjB,IAAI,CAAC;QACH,kDAAkD;QAClD,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;QACvD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QACxD,OAAO,GAAG,CAAC,OAAO,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,CAAC;YACH,kDAAkD;YAClD,MAAM,OAAO,GAAG,IAAA,WAAI,EAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;YACzD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YACvD,OAAO,GAAG,CAAC,OAAO,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,OAAO,CAAC,CAAC,qCAAqC;QACvD,CAAC;IACH,CAAC;AACH,CAAC;AAED,kBAAkB;AAClB,0CAAoD;AACpD,wCAAkD;AAClD,sCAAgD;AAChD,gDAA0D;AAC1D,0CAAoD;AACpD,8CAAwD;AACxD,4CAAsD;AACtD,kDAA4D;AAC5D,4CAAsD;AACtD,0CAAoD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,12 @@ export interface CLIConfig {
|
|
|
22
22
|
privateKey?: string;
|
|
23
23
|
/** Optional: RPC URL override */
|
|
24
24
|
rpcUrl?: string;
|
|
25
|
+
/** AIP-12: Wallet type — 'auto' (Smart Wallet, gasless) or 'eoa' (traditional) */
|
|
26
|
+
wallet?: 'auto' | 'eoa';
|
|
27
|
+
/** AIP-12: Smart Wallet address (set when wallet=auto, used by `actp register`) */
|
|
28
|
+
smartWallet?: string;
|
|
29
|
+
/** AIP-12: Whether agent is registered on AgentRegistry */
|
|
30
|
+
registered?: boolean;
|
|
25
31
|
/** Configuration version for migrations */
|
|
26
32
|
version: string;
|
|
27
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,qBAAqB;IACrB,IAAI,EAAE,OAAO,CAAC;IAEd,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAEhB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,SAI7B,CAAC;AAMF;;GAEG;AACH,wBAAgB,UAAU,CAAC,WAAW,GAAE,MAAsB,GAAG,MAAM,CAEtE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,WAAW,GAAE,MAAsB,GAAG,MAAM,CAEzE;AAMD;;GAEG;AACH,wBAAgB,aAAa,CAAC,WAAW,GAAE,MAAsB,GAAG,OAAO,CAE1E;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,WAAW,GAAE,MAAsB,GAAG,SAAS,CAuCzE;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,SAAS,EACjB,WAAW,GAAE,MAAsB,GAClC,IAAI,CA0BN;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,EAC3B,WAAW,GAAE,MAAsB,GAClC,SAAS,CAKX;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,SAAS,EACtD,GAAG,EAAE,CAAC,EACN,WAAW,GAAE,MAAsB,GAClC,SAAS,CAAC,CAAC,CAAC,CAGd;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,SAAS,EACtD,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EACnB,WAAW,GAAE,MAAsB,GAClC,IAAI,CAEN;AAMD;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAIvD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAyB7D;AAMD;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,GAAE,MAAsB,GAAG,IAAI,CAqBxE"}
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,qBAAqB;IACrB,IAAI,EAAE,OAAO,CAAC;IAEd,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAEhB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,kFAAkF;IAClF,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAExB,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,SAI7B,CAAC;AAMF;;GAEG;AACH,wBAAgB,UAAU,CAAC,WAAW,GAAE,MAAsB,GAAG,MAAM,CAEtE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,WAAW,GAAE,MAAsB,GAAG,MAAM,CAEzE;AAMD;;GAEG;AACH,wBAAgB,aAAa,CAAC,WAAW,GAAE,MAAsB,GAAG,OAAO,CAE1E;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,WAAW,GAAE,MAAsB,GAAG,SAAS,CAuCzE;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,SAAS,EACjB,WAAW,GAAE,MAAsB,GAClC,IAAI,CA0BN;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,EAC3B,WAAW,GAAE,MAAsB,GAClC,SAAS,CAKX;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,SAAS,EACtD,GAAG,EAAE,CAAC,EACN,WAAW,GAAE,MAAsB,GAClC,SAAS,CAAC,CAAC,CAAC,CAGd;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,SAAS,EACtD,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EACnB,WAAW,GAAE,MAAsB,GAClC,IAAI,CAEN;AAMD;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAIvD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAyB7D;AAMD;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,GAAE,MAAsB,GAAG,IAAI,CAqBxE"}
|