@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.
Files changed (211) hide show
  1. package/README.md +65 -31
  2. package/dist/ACTPClient.d.ts +42 -1
  3. package/dist/ACTPClient.d.ts.map +1 -1
  4. package/dist/ACTPClient.js +207 -22
  5. package/dist/ACTPClient.js.map +1 -1
  6. package/dist/abi/AgentRegistry.json +133 -0
  7. package/dist/adapters/AdapterRouter.d.ts.map +1 -1
  8. package/dist/adapters/AdapterRouter.js.map +1 -1
  9. package/dist/adapters/BasicAdapter.d.ts +10 -1
  10. package/dist/adapters/BasicAdapter.d.ts.map +1 -1
  11. package/dist/adapters/BasicAdapter.js +36 -1
  12. package/dist/adapters/BasicAdapter.js.map +1 -1
  13. package/dist/adapters/X402Adapter.d.ts +34 -7
  14. package/dist/adapters/X402Adapter.d.ts.map +1 -1
  15. package/dist/adapters/X402Adapter.js +36 -8
  16. package/dist/adapters/X402Adapter.js.map +1 -1
  17. package/dist/adapters/index.d.ts +1 -1
  18. package/dist/adapters/index.d.ts.map +1 -1
  19. package/dist/adapters/index.js.map +1 -1
  20. package/dist/cli/commands/diff.d.ts +11 -0
  21. package/dist/cli/commands/diff.d.ts.map +1 -0
  22. package/dist/cli/commands/diff.js +115 -0
  23. package/dist/cli/commands/diff.js.map +1 -0
  24. package/dist/cli/commands/init.d.ts +1 -0
  25. package/dist/cli/commands/init.d.ts.map +1 -1
  26. package/dist/cli/commands/init.js +260 -19
  27. package/dist/cli/commands/init.js.map +1 -1
  28. package/dist/cli/commands/publish.d.ts +11 -0
  29. package/dist/cli/commands/publish.d.ts.map +1 -0
  30. package/dist/cli/commands/publish.js +170 -0
  31. package/dist/cli/commands/publish.js.map +1 -0
  32. package/dist/cli/commands/pull.d.ts +12 -0
  33. package/dist/cli/commands/pull.d.ts.map +1 -0
  34. package/dist/cli/commands/pull.js +99 -0
  35. package/dist/cli/commands/pull.js.map +1 -0
  36. package/dist/cli/commands/register.d.ts +16 -0
  37. package/dist/cli/commands/register.d.ts.map +1 -0
  38. package/dist/cli/commands/register.js +211 -0
  39. package/dist/cli/commands/register.js.map +1 -0
  40. package/dist/cli/index.js +10 -0
  41. package/dist/cli/index.js.map +1 -1
  42. package/dist/cli/utils/config.d.ts +6 -0
  43. package/dist/cli/utils/config.d.ts.map +1 -1
  44. package/dist/cli/utils/config.js.map +1 -1
  45. package/dist/config/agirailsmd.d.ts +94 -0
  46. package/dist/config/agirailsmd.d.ts.map +1 -0
  47. package/dist/config/agirailsmd.js +209 -0
  48. package/dist/config/agirailsmd.js.map +1 -0
  49. package/dist/config/networks.d.ts +22 -4
  50. package/dist/config/networks.d.ts.map +1 -1
  51. package/dist/config/networks.js +64 -26
  52. package/dist/config/networks.js.map +1 -1
  53. package/dist/config/publishPipeline.d.ts +75 -0
  54. package/dist/config/publishPipeline.d.ts.map +1 -0
  55. package/dist/config/publishPipeline.js +193 -0
  56. package/dist/config/publishPipeline.js.map +1 -0
  57. package/dist/config/syncOperations.d.ts +67 -0
  58. package/dist/config/syncOperations.d.ts.map +1 -0
  59. package/dist/config/syncOperations.js +208 -0
  60. package/dist/config/syncOperations.js.map +1 -0
  61. package/dist/erc8004/ERC8004Bridge.d.ts.map +1 -1
  62. package/dist/erc8004/ERC8004Bridge.js +6 -5
  63. package/dist/erc8004/ERC8004Bridge.js.map +1 -1
  64. package/dist/erc8004/ReputationReporter.d.ts.map +1 -1
  65. package/dist/erc8004/ReputationReporter.js +9 -12
  66. package/dist/erc8004/ReputationReporter.js.map +1 -1
  67. package/dist/index.d.ts +5 -0
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +11 -3
  70. package/dist/index.js.map +1 -1
  71. package/dist/level0/request.d.ts.map +1 -1
  72. package/dist/level0/request.js +23 -86
  73. package/dist/level0/request.js.map +1 -1
  74. package/dist/level1/Agent.d.ts +0 -11
  75. package/dist/level1/Agent.d.ts.map +1 -1
  76. package/dist/level1/Agent.js +19 -36
  77. package/dist/level1/Agent.js.map +1 -1
  78. package/dist/protocol/ACTPKernel.d.ts +7 -1
  79. package/dist/protocol/ACTPKernel.d.ts.map +1 -1
  80. package/dist/protocol/ACTPKernel.js +13 -10
  81. package/dist/protocol/ACTPKernel.js.map +1 -1
  82. package/dist/protocol/EventMonitor.d.ts +14 -0
  83. package/dist/protocol/EventMonitor.d.ts.map +1 -1
  84. package/dist/protocol/EventMonitor.js +14 -0
  85. package/dist/protocol/EventMonitor.js.map +1 -1
  86. package/dist/registry/AgentRegistryClient.d.ts +75 -0
  87. package/dist/registry/AgentRegistryClient.d.ts.map +1 -0
  88. package/dist/registry/AgentRegistryClient.js +160 -0
  89. package/dist/registry/AgentRegistryClient.js.map +1 -0
  90. package/dist/runtime/BlockchainRuntime.d.ts +5 -0
  91. package/dist/runtime/BlockchainRuntime.d.ts.map +1 -1
  92. package/dist/runtime/BlockchainRuntime.js +1 -1
  93. package/dist/runtime/BlockchainRuntime.js.map +1 -1
  94. package/dist/storage/ArchiveBundleBuilder.d.ts.map +1 -1
  95. package/dist/storage/ArchiveBundleBuilder.js.map +1 -1
  96. package/dist/storage/ArweaveClient.d.ts.map +1 -1
  97. package/dist/storage/ArweaveClient.js +2 -0
  98. package/dist/storage/ArweaveClient.js.map +1 -1
  99. package/dist/storage/FilebaseClient.d.ts.map +1 -1
  100. package/dist/storage/FilebaseClient.js +2 -0
  101. package/dist/storage/FilebaseClient.js.map +1 -1
  102. package/dist/types/adapter.d.ts +39 -0
  103. package/dist/types/adapter.d.ts.map +1 -1
  104. package/dist/types/adapter.js +7 -0
  105. package/dist/types/adapter.js.map +1 -1
  106. package/dist/types/x402.d.ts +23 -0
  107. package/dist/types/x402.d.ts.map +1 -1
  108. package/dist/types/x402.js.map +1 -1
  109. package/dist/utils/ErrorRecoveryGuide.d.ts.map +1 -1
  110. package/dist/utils/ErrorRecoveryGuide.js +3 -2
  111. package/dist/utils/ErrorRecoveryGuide.js.map +1 -1
  112. package/dist/utils/IPFSClient.d.ts +3 -2
  113. package/dist/utils/IPFSClient.d.ts.map +1 -1
  114. package/dist/utils/IPFSClient.js +7 -5
  115. package/dist/utils/IPFSClient.js.map +1 -1
  116. package/dist/utils/computeTypeHash.js +1 -3
  117. package/dist/utils/computeTypeHash.js.map +1 -1
  118. package/dist/utils/retry.d.ts.map +1 -1
  119. package/dist/utils/retry.js +0 -1
  120. package/dist/utils/retry.js.map +1 -1
  121. package/dist/utils/validation.d.ts +2 -2
  122. package/dist/utils/validation.d.ts.map +1 -1
  123. package/dist/utils/validation.js +2 -2
  124. package/dist/utils/validation.js.map +1 -1
  125. package/dist/wallet/AutoWalletProvider.d.ts +77 -0
  126. package/dist/wallet/AutoWalletProvider.d.ts.map +1 -0
  127. package/dist/wallet/AutoWalletProvider.js +197 -0
  128. package/dist/wallet/AutoWalletProvider.js.map +1 -0
  129. package/dist/wallet/EOAWalletProvider.d.ts +21 -0
  130. package/dist/wallet/EOAWalletProvider.d.ts.map +1 -0
  131. package/dist/wallet/EOAWalletProvider.js +57 -0
  132. package/dist/wallet/EOAWalletProvider.js.map +1 -0
  133. package/dist/wallet/IWalletProvider.d.ts +115 -0
  134. package/dist/wallet/IWalletProvider.d.ts.map +1 -0
  135. package/dist/wallet/IWalletProvider.js +12 -0
  136. package/dist/wallet/IWalletProvider.js.map +1 -0
  137. package/dist/wallet/aa/BundlerClient.d.ts +70 -0
  138. package/dist/wallet/aa/BundlerClient.d.ts.map +1 -0
  139. package/dist/wallet/aa/BundlerClient.js +183 -0
  140. package/dist/wallet/aa/BundlerClient.js.map +1 -0
  141. package/dist/wallet/aa/DualNonceManager.d.ts +55 -0
  142. package/dist/wallet/aa/DualNonceManager.d.ts.map +1 -0
  143. package/dist/wallet/aa/DualNonceManager.js +131 -0
  144. package/dist/wallet/aa/DualNonceManager.js.map +1 -0
  145. package/dist/wallet/aa/PaymasterClient.d.ts +52 -0
  146. package/dist/wallet/aa/PaymasterClient.d.ts.map +1 -0
  147. package/dist/wallet/aa/PaymasterClient.js +115 -0
  148. package/dist/wallet/aa/PaymasterClient.js.map +1 -0
  149. package/dist/wallet/aa/TransactionBatcher.d.ts +87 -0
  150. package/dist/wallet/aa/TransactionBatcher.d.ts.map +1 -0
  151. package/dist/wallet/aa/TransactionBatcher.js +148 -0
  152. package/dist/wallet/aa/TransactionBatcher.js.map +1 -0
  153. package/dist/wallet/aa/UserOpBuilder.d.ts +71 -0
  154. package/dist/wallet/aa/UserOpBuilder.d.ts.map +1 -0
  155. package/dist/wallet/aa/UserOpBuilder.js +196 -0
  156. package/dist/wallet/aa/UserOpBuilder.js.map +1 -0
  157. package/dist/wallet/aa/constants.d.ts +54 -0
  158. package/dist/wallet/aa/constants.d.ts.map +1 -0
  159. package/dist/wallet/aa/constants.js +18 -0
  160. package/dist/wallet/aa/constants.js.map +1 -0
  161. package/dist/wallet/keystore.d.ts +16 -0
  162. package/dist/wallet/keystore.d.ts.map +1 -0
  163. package/dist/wallet/keystore.js +132 -0
  164. package/dist/wallet/keystore.js.map +1 -0
  165. package/package.json +5 -2
  166. package/src/ACTPClient.ts +275 -27
  167. package/src/abi/AgentRegistry.json +133 -0
  168. package/src/adapters/AdapterRouter.ts +0 -1
  169. package/src/adapters/BasicAdapter.ts +41 -1
  170. package/src/adapters/X402Adapter.ts +94 -16
  171. package/src/adapters/index.ts +9 -1
  172. package/src/cli/commands/diff.ts +141 -0
  173. package/src/cli/commands/init.ts +311 -22
  174. package/src/cli/commands/publish.ts +208 -0
  175. package/src/cli/commands/pull.ts +124 -0
  176. package/src/cli/commands/register.ts +233 -0
  177. package/src/cli/index.ts +12 -0
  178. package/src/cli/utils/config.ts +9 -0
  179. package/src/config/agirailsmd.ts +262 -0
  180. package/src/config/networks.ts +89 -26
  181. package/src/config/publishPipeline.ts +276 -0
  182. package/src/config/syncOperations.ts +279 -0
  183. package/src/erc8004/ERC8004Bridge.ts +6 -5
  184. package/src/erc8004/ReputationReporter.ts +14 -18
  185. package/src/index.ts +15 -0
  186. package/src/level0/request.ts +27 -88
  187. package/src/level1/Agent.ts +21 -37
  188. package/src/protocol/ACTPKernel.ts +20 -10
  189. package/src/protocol/EventMonitor.ts +14 -0
  190. package/src/registry/AgentRegistryClient.ts +202 -0
  191. package/src/runtime/BlockchainRuntime.ts +7 -1
  192. package/src/storage/ArchiveBundleBuilder.ts +0 -2
  193. package/src/storage/ArweaveClient.ts +2 -1
  194. package/src/storage/FilebaseClient.ts +3 -3
  195. package/src/types/adapter.ts +14 -0
  196. package/src/types/x402.ts +32 -0
  197. package/src/utils/ErrorRecoveryGuide.ts +4 -2
  198. package/src/utils/IPFSClient.ts +9 -7
  199. package/src/utils/computeTypeHash.ts +1 -3
  200. package/src/utils/retry.ts +0 -1
  201. package/src/utils/validation.ts +2 -2
  202. package/src/wallet/AutoWalletProvider.ts +294 -0
  203. package/src/wallet/EOAWalletProvider.ts +69 -0
  204. package/src/wallet/IWalletProvider.ts +133 -0
  205. package/src/wallet/aa/BundlerClient.ts +273 -0
  206. package/src/wallet/aa/DualNonceManager.ts +163 -0
  207. package/src/wallet/aa/PaymasterClient.ts +173 -0
  208. package/src/wallet/aa/TransactionBatcher.ts +240 -0
  209. package/src/wallet/aa/UserOpBuilder.ts +246 -0
  210. package/src/wallet/aa/constants.ts +60 -0
  211. 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
  // ============================================================================
@@ -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;AAEpD,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CACV,oDAAoD;IAClD,uEAAuE;IACvE,gEAAgE;IAChE,gBAAgB;IAChB,qEAAqE;IACrE,sDAAsD;IACtD,gEAAgE;IAChE,iBAAiB;IACjB,6CAA6C;IAC7C,wDAAwD,CAC3D;KACA,OAAO,CAAC,UAAU,EAAE,EAAE,eAAe,EAAE,2BAA2B,CAAC;KACnE,UAAU,CAAC,YAAY,EAAE,0BAA0B,CAAC,CAAC;AAExD,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,4BAA4B;AAC5B,OAAO,CAAC,UAAU,CAAC,IAAA,wBAAiB,GAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,IAAA,sBAAgB,GAAE,CAAC,CAAC;AACvC,OAAO,CAAC,UAAU,CAAC,IAAA,oBAAe,GAAE,CAAC,CAAC;AACtC,OAAO,CAAC,UAAU,CAAC,IAAA,8BAAoB,GAAE,CAAC,CAAC;AAC3C,OAAO,CAAC,UAAU,CAAC,IAAA,wBAAiB,GAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,IAAA,4BAAmB,GAAE,CAAC,CAAC;AAE1C,uBAAuB;AACvB,OAAO,CAAC,UAAU,CAAC,IAAA,0BAAkB,GAAE,CAAC,CAAC;AACzC,OAAO,CAAC,UAAU,CAAC,IAAA,gCAAqB,GAAE,CAAC,CAAC;AAC5C,OAAO,CAAC,UAAU,CAAC,IAAA,0BAAkB,GAAE,CAAC,CAAC;AAEzC,sBAAsB;AACtB,OAAO,CAAC,UAAU,CAAC,IAAA,wBAAiB,GAAE,CAAC,CAAC;AAExC,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E,0BAA0B;AAC1B,OAAO,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,EAAE;IACnC,OAAO,CAAC,KAAK,CAAC,2BAA2B,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACzD,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,6BAA6B;AAC7B,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;IAC9B,OAAO,CAAC,UAAU,EAAE,CAAC;AACvB,CAAC"}
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"}