@agirails/sdk 2.3.3 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -12
- package/dist/ACTPClient.d.ts +80 -3
- package/dist/ACTPClient.d.ts.map +1 -1
- package/dist/ACTPClient.js +213 -57
- package/dist/ACTPClient.js.map +1 -1
- package/dist/adapters/BasicAdapter.d.ts +13 -1
- package/dist/adapters/BasicAdapter.d.ts.map +1 -1
- package/dist/adapters/BasicAdapter.js +24 -3
- package/dist/adapters/BasicAdapter.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +9 -292
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/publish.d.ts +11 -3
- package/dist/cli/commands/publish.d.ts.map +1 -1
- package/dist/cli/commands/publish.js +319 -80
- package/dist/cli/commands/publish.js.map +1 -1
- package/dist/cli/commands/register.d.ts.map +1 -1
- package/dist/cli/commands/register.js +10 -0
- package/dist/cli/commands/register.js.map +1 -1
- package/dist/cli/utils/config.d.ts +3 -2
- package/dist/cli/utils/config.d.ts.map +1 -1
- package/dist/cli/utils/config.js +9 -1
- package/dist/cli/utils/config.js.map +1 -1
- package/dist/cli/utils/wallet.d.ts +31 -0
- package/dist/cli/utils/wallet.d.ts.map +1 -0
- package/dist/cli/utils/wallet.js +114 -0
- package/dist/cli/utils/wallet.js.map +1 -0
- package/dist/config/pendingPublish.d.ts +79 -0
- package/dist/config/pendingPublish.d.ts.map +1 -0
- package/dist/config/pendingPublish.js +167 -0
- package/dist/config/pendingPublish.js.map +1 -0
- package/dist/config/publishPipeline.d.ts +33 -0
- package/dist/config/publishPipeline.d.ts.map +1 -1
- package/dist/config/publishPipeline.js +33 -2
- package/dist/config/publishPipeline.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/dist/wallet/AutoWalletProvider.d.ts +2 -1
- package/dist/wallet/AutoWalletProvider.d.ts.map +1 -1
- package/dist/wallet/AutoWalletProvider.js +6 -2
- package/dist/wallet/AutoWalletProvider.js.map +1 -1
- package/dist/wallet/IWalletProvider.d.ts +4 -2
- package/dist/wallet/IWalletProvider.d.ts.map +1 -1
- package/dist/wallet/aa/TransactionBatcher.d.ts +54 -0
- package/dist/wallet/aa/TransactionBatcher.d.ts.map +1 -1
- package/dist/wallet/aa/TransactionBatcher.js +67 -1
- package/dist/wallet/aa/TransactionBatcher.js.map +1 -1
- package/package.json +1 -1
- package/src/ACTPClient.ts +265 -49
- package/src/adapters/BasicAdapter.ts +48 -12
- package/src/cli/commands/init.ts +7 -348
- package/src/cli/commands/publish.ts +354 -87
- package/src/cli/commands/register.ts +14 -0
- package/src/cli/utils/config.ts +11 -2
- package/src/cli/utils/wallet.ts +109 -0
- package/src/config/pendingPublish.ts +226 -0
- package/src/config/publishPipeline.ts +82 -1
- package/src/index.ts +8 -0
- package/src/wallet/AutoWalletProvider.ts +7 -2
- package/src/wallet/IWalletProvider.ts +4 -2
- package/src/wallet/aa/TransactionBatcher.ts +113 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../../src/cli/commands/register.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAC7B,yCAAoC;AACpC,4CAAmD;AACnD,4CAA2D;AAC3D,oDAA0D;AAE1D,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,SAAgB,qBAAqB;IACnC,MAAM,GAAG,GAAG,IAAI,mBAAO,CAAC,UAAU,CAAC;SAChC,WAAW,CAAC,2DAA2D,CAAC;SACxE,MAAM,CAAC,kBAAkB,EAAE,8CAA8C,CAAC;SAC1E,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC;SACvC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,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,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,WAAW,CAAC;gBACjB,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAG,KAAe,CAAC,OAAO;aAClC,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;
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../../src/cli/commands/register.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,7 +24,7 @@ export interface CLIConfig {
|
|
|
24
24
|
rpcUrl?: string;
|
|
25
25
|
/** AIP-12: Wallet type — 'auto' (Smart Wallet, gasless) or 'eoa' (traditional) */
|
|
26
26
|
wallet?: 'auto' | 'eoa';
|
|
27
|
-
/** AIP-12: Smart Wallet address (set when wallet=auto, used by `actp
|
|
27
|
+
/** AIP-12: Smart Wallet address (set when wallet=auto, used by `actp publish`) */
|
|
28
28
|
smartWallet?: string;
|
|
29
29
|
/** AIP-12: Whether agent is registered on AgentRegistry */
|
|
30
30
|
registered?: boolean;
|
|
@@ -50,7 +50,8 @@ export interface CLIConfig {
|
|
|
50
50
|
*/
|
|
51
51
|
export declare const CONFIG_DEFAULTS: CLIConfig;
|
|
52
52
|
/**
|
|
53
|
-
* Get the .actp directory path
|
|
53
|
+
* Get the .actp directory path.
|
|
54
|
+
* Respects ACTP_DIR env var override for custom locations.
|
|
54
55
|
*/
|
|
55
56
|
export declare function getActpDir(projectRoot?: string): string;
|
|
56
57
|
/**
|
|
@@ -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,kFAAkF;IAClF,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAExB,
|
|
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,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAEhB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;IAEjC,4CAA4C;IAC5C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,yBAAyB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,0BAA0B;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,wCAAwC;IACxC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAEvC,yBAAyB;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,SAI7B,CAAC;AAMF;;;GAGG;AACH,wBAAgB,UAAU,CAAC,WAAW,GAAE,MAAsB,GAAG,MAAM,CAKtE;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,CA4CzE;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"}
|
package/dist/cli/utils/config.js
CHANGED
|
@@ -46,9 +46,13 @@ exports.CONFIG_DEFAULTS = {
|
|
|
46
46
|
// Paths
|
|
47
47
|
// ============================================================================
|
|
48
48
|
/**
|
|
49
|
-
* Get the .actp directory path
|
|
49
|
+
* Get the .actp directory path.
|
|
50
|
+
* Respects ACTP_DIR env var override for custom locations.
|
|
50
51
|
*/
|
|
51
52
|
function getActpDir(projectRoot = process.cwd()) {
|
|
53
|
+
if (process.env.ACTP_DIR) {
|
|
54
|
+
return process.env.ACTP_DIR;
|
|
55
|
+
}
|
|
52
56
|
return path.join(projectRoot, '.actp');
|
|
53
57
|
}
|
|
54
58
|
exports.getActpDir = getActpDir;
|
|
@@ -98,6 +102,10 @@ function loadConfig(projectRoot = process.cwd()) {
|
|
|
98
102
|
console.warn('\x1b[33m%s\x1b[0m', ' Consider using ACTP_PRIVATE_KEY environment variable instead.');
|
|
99
103
|
console.warn('\x1b[33m%s\x1b[0m', ' Run: export ACTP_PRIVATE_KEY=<your-key>');
|
|
100
104
|
}
|
|
105
|
+
// Config migration: strip deprecated `registered` field (lazy publish)
|
|
106
|
+
if ('registered' in config) {
|
|
107
|
+
delete config.registered;
|
|
108
|
+
}
|
|
101
109
|
return config;
|
|
102
110
|
}
|
|
103
111
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/cli/utils/config.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AA6D7B;;GAEG;AACU,QAAA,eAAe,GAAc;IACxC,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,KAAK;CACf,CAAC;AAEF,+EAA+E;AAC/E,QAAQ;AACR,+EAA+E;AAE/E
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/cli/utils/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wallet Utilities — Shared wallet generation and Smart Wallet derivation.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from init.ts for reuse by both `actp init` and `actp publish`.
|
|
5
|
+
*
|
|
6
|
+
* @module cli/utils/wallet
|
|
7
|
+
*/
|
|
8
|
+
import { Output } from './output';
|
|
9
|
+
/**
|
|
10
|
+
* Generate a new encrypted wallet keystore.
|
|
11
|
+
*
|
|
12
|
+
* - Creates a random ethers.Wallet
|
|
13
|
+
* - Encrypts with password (from ACTP_KEY_PASSWORD env or interactive prompt)
|
|
14
|
+
* - Saves to `{actpDir}/keystore.json` with 0o600 permissions
|
|
15
|
+
*
|
|
16
|
+
* @param actpDir - Path to .actp directory
|
|
17
|
+
* @param output - CLI output handler
|
|
18
|
+
* @returns The generated wallet's address
|
|
19
|
+
*/
|
|
20
|
+
export declare function generateWallet(actpDir: string, output: Output): Promise<string>;
|
|
21
|
+
/**
|
|
22
|
+
* Compute the Smart Wallet address for an EOA signer.
|
|
23
|
+
* Uses CREATE2 counterfactual derivation — no deployment needed.
|
|
24
|
+
*
|
|
25
|
+
* @param eoaAddress - The EOA signer address
|
|
26
|
+
* @param mode - 'testnet' or 'mainnet'
|
|
27
|
+
* @param output - CLI output handler
|
|
28
|
+
* @returns The derived Smart Wallet address
|
|
29
|
+
*/
|
|
30
|
+
export declare function computeSmartWalletInit(eoaAddress: string, mode: string, output: Output): Promise<string>;
|
|
31
|
+
//# sourceMappingURL=wallet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/wallet.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA+BrF;AAED;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAgBjB"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Wallet Utilities — Shared wallet generation and Smart Wallet derivation.
|
|
4
|
+
*
|
|
5
|
+
* Extracted from init.ts for reuse by both `actp init` and `actp publish`.
|
|
6
|
+
*
|
|
7
|
+
* @module cli/utils/wallet
|
|
8
|
+
*/
|
|
9
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
12
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
13
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
14
|
+
}
|
|
15
|
+
Object.defineProperty(o, k2, desc);
|
|
16
|
+
}) : (function(o, m, k, k2) {
|
|
17
|
+
if (k2 === undefined) k2 = k;
|
|
18
|
+
o[k2] = m[k];
|
|
19
|
+
}));
|
|
20
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
21
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
22
|
+
}) : function(o, v) {
|
|
23
|
+
o["default"] = v;
|
|
24
|
+
});
|
|
25
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
26
|
+
if (mod && mod.__esModule) return mod;
|
|
27
|
+
var result = {};
|
|
28
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
29
|
+
__setModuleDefault(result, mod);
|
|
30
|
+
return result;
|
|
31
|
+
};
|
|
32
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33
|
+
exports.computeSmartWalletInit = exports.generateWallet = void 0;
|
|
34
|
+
const fs = __importStar(require("fs"));
|
|
35
|
+
const path = __importStar(require("path"));
|
|
36
|
+
const readline = __importStar(require("readline"));
|
|
37
|
+
/**
|
|
38
|
+
* Generate a new encrypted wallet keystore.
|
|
39
|
+
*
|
|
40
|
+
* - Creates a random ethers.Wallet
|
|
41
|
+
* - Encrypts with password (from ACTP_KEY_PASSWORD env or interactive prompt)
|
|
42
|
+
* - Saves to `{actpDir}/keystore.json` with 0o600 permissions
|
|
43
|
+
*
|
|
44
|
+
* @param actpDir - Path to .actp directory
|
|
45
|
+
* @param output - CLI output handler
|
|
46
|
+
* @returns The generated wallet's address
|
|
47
|
+
*/
|
|
48
|
+
async function generateWallet(actpDir, output) {
|
|
49
|
+
const { Wallet } = await Promise.resolve().then(() => __importStar(require('ethers')));
|
|
50
|
+
const wallet = Wallet.createRandom();
|
|
51
|
+
// Get password from env var or interactive prompt
|
|
52
|
+
let password = process.env.ACTP_KEY_PASSWORD;
|
|
53
|
+
if (!password) {
|
|
54
|
+
password = await promptPassword();
|
|
55
|
+
}
|
|
56
|
+
if (!password || password.length < 8) {
|
|
57
|
+
throw new Error('Wallet password required (minimum 8 characters).\n' +
|
|
58
|
+
'Set ACTP_KEY_PASSWORD env var or enter when prompted.');
|
|
59
|
+
}
|
|
60
|
+
// Encrypt with Keystore V3 (scrypt + AES-128-CTR)
|
|
61
|
+
output.info('Encrypting wallet (this takes a few seconds)...');
|
|
62
|
+
const keystore = await wallet.encrypt(password);
|
|
63
|
+
// Save with restrictive permissions
|
|
64
|
+
const keystorePath = path.join(actpDir, 'keystore.json');
|
|
65
|
+
fs.writeFileSync(keystorePath, keystore, { mode: 0o600 });
|
|
66
|
+
output.success('Key securely saved and encrypted');
|
|
67
|
+
output.info(`Address: ${wallet.address}`);
|
|
68
|
+
output.warning('Back up your password — it cannot be recovered.');
|
|
69
|
+
return wallet.address;
|
|
70
|
+
}
|
|
71
|
+
exports.generateWallet = generateWallet;
|
|
72
|
+
/**
|
|
73
|
+
* Compute the Smart Wallet address for an EOA signer.
|
|
74
|
+
* Uses CREATE2 counterfactual derivation — no deployment needed.
|
|
75
|
+
*
|
|
76
|
+
* @param eoaAddress - The EOA signer address
|
|
77
|
+
* @param mode - 'testnet' or 'mainnet'
|
|
78
|
+
* @param output - CLI output handler
|
|
79
|
+
* @returns The derived Smart Wallet address
|
|
80
|
+
*/
|
|
81
|
+
async function computeSmartWalletInit(eoaAddress, mode, output) {
|
|
82
|
+
const { ethers } = await Promise.resolve().then(() => __importStar(require('ethers')));
|
|
83
|
+
const { getNetwork } = await Promise.resolve().then(() => __importStar(require('../../config/networks')));
|
|
84
|
+
const { computeSmartWalletAddress } = await Promise.resolve().then(() => __importStar(require('../../wallet/aa/UserOpBuilder')));
|
|
85
|
+
const network = mode === 'testnet' ? 'base-sepolia' : 'base-mainnet';
|
|
86
|
+
const networkConfig = getNetwork(network);
|
|
87
|
+
const rpcUrl = networkConfig.rpcUrl;
|
|
88
|
+
const provider = new ethers.JsonRpcProvider(rpcUrl);
|
|
89
|
+
output.info('Computing Smart Wallet address...');
|
|
90
|
+
const smartWalletAddress = await computeSmartWalletAddress(eoaAddress, provider);
|
|
91
|
+
output.success(`Smart Wallet: ${smartWalletAddress}`);
|
|
92
|
+
return smartWalletAddress;
|
|
93
|
+
}
|
|
94
|
+
exports.computeSmartWalletInit = computeSmartWalletInit;
|
|
95
|
+
/**
|
|
96
|
+
* Interactive password prompt (TTY only).
|
|
97
|
+
* Returns empty string in non-TTY environments (piped/agent mode).
|
|
98
|
+
*/
|
|
99
|
+
async function promptPassword() {
|
|
100
|
+
if (!process.stdin.isTTY) {
|
|
101
|
+
return '';
|
|
102
|
+
}
|
|
103
|
+
const rl = readline.createInterface({
|
|
104
|
+
input: process.stdin,
|
|
105
|
+
output: process.stdout,
|
|
106
|
+
});
|
|
107
|
+
return new Promise((resolve) => {
|
|
108
|
+
rl.question('Enter password for wallet encryption (min 8 chars): ', (answer) => {
|
|
109
|
+
rl.close();
|
|
110
|
+
resolve(answer.trim());
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=wallet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../../src/cli/utils/wallet.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pending Publish Module — Deferred on-chain activation for Lazy Publish.
|
|
3
|
+
*
|
|
4
|
+
* When `actp publish` runs, it saves a `pending-publish.{network}.json` file
|
|
5
|
+
* instead of making on-chain calls. The first real payment triggers activation
|
|
6
|
+
* (registerAgent, publishConfig, setListed) in a single UserOp alongside the
|
|
7
|
+
* payment calls.
|
|
8
|
+
*
|
|
9
|
+
* Files are chain-scoped: testnet and mainnet pending publishes coexist independently.
|
|
10
|
+
* Legacy `pending-publish.json` (unscoped) is supported for migration.
|
|
11
|
+
*
|
|
12
|
+
* The file is deleted after successful on-chain activation.
|
|
13
|
+
*
|
|
14
|
+
* @module config/pendingPublish
|
|
15
|
+
*/
|
|
16
|
+
import { ServiceDescriptor } from '../types/agent';
|
|
17
|
+
/**
|
|
18
|
+
* Pending publish state — saved to `.actp/pending-publish.{network}.json`.
|
|
19
|
+
*/
|
|
20
|
+
export interface PendingPublish {
|
|
21
|
+
/** Schema version */
|
|
22
|
+
version: 1;
|
|
23
|
+
/** Canonical config hash (bytes32) */
|
|
24
|
+
configHash: string;
|
|
25
|
+
/** IPFS CID of uploaded AGIRAILS.md */
|
|
26
|
+
cid: string;
|
|
27
|
+
/** Agent endpoint URL */
|
|
28
|
+
endpoint: string;
|
|
29
|
+
/** Service descriptors from AGIRAILS.md frontmatter */
|
|
30
|
+
serviceDescriptors: ServiceDescriptor[];
|
|
31
|
+
/** ISO 8601 timestamp of when pending-publish.json was created */
|
|
32
|
+
createdAt: string;
|
|
33
|
+
/** Network identifier (e.g. 'base-sepolia', 'base-mainnet') */
|
|
34
|
+
network?: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Get the .actp directory path.
|
|
38
|
+
*
|
|
39
|
+
* Respects `ACTP_DIR` env var for custom locations.
|
|
40
|
+
* Defaults to `{cwd}/.actp`.
|
|
41
|
+
*/
|
|
42
|
+
export declare function getActpDir(): string;
|
|
43
|
+
/**
|
|
44
|
+
* Get the path to a pending-publish file.
|
|
45
|
+
*
|
|
46
|
+
* @param network - Optional network identifier. If provided, returns
|
|
47
|
+
* `pending-publish.{network}.json`. Otherwise returns legacy `pending-publish.json`.
|
|
48
|
+
*/
|
|
49
|
+
export declare function getPendingPublishPath(network?: string): string;
|
|
50
|
+
/**
|
|
51
|
+
* Save a pending publish to `.actp/pending-publish.{network}.json`.
|
|
52
|
+
*
|
|
53
|
+
* Creates the .actp directory if it doesn't exist.
|
|
54
|
+
* File is written atomically with mode 0o600 (owner read/write only).
|
|
55
|
+
*
|
|
56
|
+
* If `pending.network` is set, saves to network-scoped file.
|
|
57
|
+
* Otherwise saves to legacy `pending-publish.json`.
|
|
58
|
+
*/
|
|
59
|
+
export declare function savePendingPublish(pending: PendingPublish): void;
|
|
60
|
+
/**
|
|
61
|
+
* Load a pending publish from `.actp/pending-publish.{network}.json`.
|
|
62
|
+
*
|
|
63
|
+
* If `network` is provided:
|
|
64
|
+
* 1. Try `pending-publish.{network}.json`
|
|
65
|
+
* 2. Fall back to legacy `pending-publish.json` (migration)
|
|
66
|
+
*
|
|
67
|
+
* If no `network`: loads legacy `pending-publish.json`.
|
|
68
|
+
*
|
|
69
|
+
* Returns null if no file found.
|
|
70
|
+
*/
|
|
71
|
+
export declare function loadPendingPublish(network?: string): PendingPublish | null;
|
|
72
|
+
/**
|
|
73
|
+
* Delete the pending-publish file for a given network.
|
|
74
|
+
*
|
|
75
|
+
* Deletes both the network-scoped file and legacy file (cleanup).
|
|
76
|
+
* No-op if files don't exist. Best-effort — never throws.
|
|
77
|
+
*/
|
|
78
|
+
export declare function deletePendingPublish(network?: string): void;
|
|
79
|
+
//# sourceMappingURL=pendingPublish.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pendingPublish.d.ts","sourceRoot":"","sources":["../../src/config/pendingPublish.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAoBnD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,qBAAqB;IACrB,OAAO,EAAE,CAAC,CAAC;IACX,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;IACxC,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA+CD;;;;;GAKG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAK9D;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAkBhE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAgB1E;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAkB3D"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Pending Publish Module — Deferred on-chain activation for Lazy Publish.
|
|
4
|
+
*
|
|
5
|
+
* When `actp publish` runs, it saves a `pending-publish.{network}.json` file
|
|
6
|
+
* instead of making on-chain calls. The first real payment triggers activation
|
|
7
|
+
* (registerAgent, publishConfig, setListed) in a single UserOp alongside the
|
|
8
|
+
* payment calls.
|
|
9
|
+
*
|
|
10
|
+
* Files are chain-scoped: testnet and mainnet pending publishes coexist independently.
|
|
11
|
+
* Legacy `pending-publish.json` (unscoped) is supported for migration.
|
|
12
|
+
*
|
|
13
|
+
* The file is deleted after successful on-chain activation.
|
|
14
|
+
*
|
|
15
|
+
* @module config/pendingPublish
|
|
16
|
+
*/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.deletePendingPublish = exports.loadPendingPublish = exports.savePendingPublish = exports.getPendingPublishPath = exports.getActpDir = void 0;
|
|
19
|
+
const fs_1 = require("fs");
|
|
20
|
+
const path_1 = require("path");
|
|
21
|
+
// ============================================================================
|
|
22
|
+
// Serialization Helpers
|
|
23
|
+
// ============================================================================
|
|
24
|
+
function serializeDescriptor(sd) {
|
|
25
|
+
return {
|
|
26
|
+
serviceTypeHash: sd.serviceTypeHash,
|
|
27
|
+
serviceType: sd.serviceType,
|
|
28
|
+
schemaURI: sd.schemaURI,
|
|
29
|
+
minPrice: sd.minPrice.toString(),
|
|
30
|
+
maxPrice: sd.maxPrice.toString(),
|
|
31
|
+
avgCompletionTime: sd.avgCompletionTime,
|
|
32
|
+
metadataCID: sd.metadataCID,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
function deserializeDescriptor(sd) {
|
|
36
|
+
return {
|
|
37
|
+
serviceTypeHash: sd.serviceTypeHash,
|
|
38
|
+
serviceType: sd.serviceType,
|
|
39
|
+
schemaURI: sd.schemaURI,
|
|
40
|
+
minPrice: BigInt(sd.minPrice),
|
|
41
|
+
maxPrice: BigInt(sd.maxPrice),
|
|
42
|
+
avgCompletionTime: sd.avgCompletionTime,
|
|
43
|
+
metadataCID: sd.metadataCID,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
// ============================================================================
|
|
47
|
+
// Public API
|
|
48
|
+
// ============================================================================
|
|
49
|
+
/**
|
|
50
|
+
* Get the .actp directory path.
|
|
51
|
+
*
|
|
52
|
+
* Respects `ACTP_DIR` env var for custom locations.
|
|
53
|
+
* Defaults to `{cwd}/.actp`.
|
|
54
|
+
*/
|
|
55
|
+
function getActpDir() {
|
|
56
|
+
return process.env.ACTP_DIR || (0, path_1.join)(process.cwd(), '.actp');
|
|
57
|
+
}
|
|
58
|
+
exports.getActpDir = getActpDir;
|
|
59
|
+
/**
|
|
60
|
+
* Get the path to a pending-publish file.
|
|
61
|
+
*
|
|
62
|
+
* @param network - Optional network identifier. If provided, returns
|
|
63
|
+
* `pending-publish.{network}.json`. Otherwise returns legacy `pending-publish.json`.
|
|
64
|
+
*/
|
|
65
|
+
function getPendingPublishPath(network) {
|
|
66
|
+
if (network) {
|
|
67
|
+
return (0, path_1.join)(getActpDir(), `pending-publish.${network}.json`);
|
|
68
|
+
}
|
|
69
|
+
return (0, path_1.join)(getActpDir(), 'pending-publish.json');
|
|
70
|
+
}
|
|
71
|
+
exports.getPendingPublishPath = getPendingPublishPath;
|
|
72
|
+
/**
|
|
73
|
+
* Save a pending publish to `.actp/pending-publish.{network}.json`.
|
|
74
|
+
*
|
|
75
|
+
* Creates the .actp directory if it doesn't exist.
|
|
76
|
+
* File is written atomically with mode 0o600 (owner read/write only).
|
|
77
|
+
*
|
|
78
|
+
* If `pending.network` is set, saves to network-scoped file.
|
|
79
|
+
* Otherwise saves to legacy `pending-publish.json`.
|
|
80
|
+
*/
|
|
81
|
+
function savePendingPublish(pending) {
|
|
82
|
+
const dir = getActpDir();
|
|
83
|
+
if (!(0, fs_1.existsSync)(dir)) {
|
|
84
|
+
(0, fs_1.mkdirSync)(dir, { recursive: true });
|
|
85
|
+
}
|
|
86
|
+
const serialized = {
|
|
87
|
+
version: pending.version,
|
|
88
|
+
configHash: pending.configHash,
|
|
89
|
+
cid: pending.cid,
|
|
90
|
+
endpoint: pending.endpoint,
|
|
91
|
+
serviceDescriptors: pending.serviceDescriptors.map(serializeDescriptor),
|
|
92
|
+
createdAt: pending.createdAt,
|
|
93
|
+
...(pending.network ? { network: pending.network } : {}),
|
|
94
|
+
};
|
|
95
|
+
const filePath = getPendingPublishPath(pending.network);
|
|
96
|
+
(0, fs_1.writeFileSync)(filePath, JSON.stringify(serialized, null, 2), { mode: 0o600 });
|
|
97
|
+
}
|
|
98
|
+
exports.savePendingPublish = savePendingPublish;
|
|
99
|
+
/**
|
|
100
|
+
* Load a pending publish from `.actp/pending-publish.{network}.json`.
|
|
101
|
+
*
|
|
102
|
+
* If `network` is provided:
|
|
103
|
+
* 1. Try `pending-publish.{network}.json`
|
|
104
|
+
* 2. Fall back to legacy `pending-publish.json` (migration)
|
|
105
|
+
*
|
|
106
|
+
* If no `network`: loads legacy `pending-publish.json`.
|
|
107
|
+
*
|
|
108
|
+
* Returns null if no file found.
|
|
109
|
+
*/
|
|
110
|
+
function loadPendingPublish(network) {
|
|
111
|
+
// Try network-scoped file first
|
|
112
|
+
if (network) {
|
|
113
|
+
const scopedPath = getPendingPublishPath(network);
|
|
114
|
+
if ((0, fs_1.existsSync)(scopedPath)) {
|
|
115
|
+
return deserializePendingPublish((0, fs_1.readFileSync)(scopedPath, 'utf-8'));
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
// Fall back to legacy file
|
|
119
|
+
const legacyPath = getPendingPublishPath();
|
|
120
|
+
if (!(0, fs_1.existsSync)(legacyPath)) {
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
return deserializePendingPublish((0, fs_1.readFileSync)(legacyPath, 'utf-8'));
|
|
124
|
+
}
|
|
125
|
+
exports.loadPendingPublish = loadPendingPublish;
|
|
126
|
+
/**
|
|
127
|
+
* Delete the pending-publish file for a given network.
|
|
128
|
+
*
|
|
129
|
+
* Deletes both the network-scoped file and legacy file (cleanup).
|
|
130
|
+
* No-op if files don't exist. Best-effort — never throws.
|
|
131
|
+
*/
|
|
132
|
+
function deletePendingPublish(network) {
|
|
133
|
+
try {
|
|
134
|
+
// Delete network-scoped file
|
|
135
|
+
if (network) {
|
|
136
|
+
const scopedPath = getPendingPublishPath(network);
|
|
137
|
+
if ((0, fs_1.existsSync)(scopedPath)) {
|
|
138
|
+
(0, fs_1.unlinkSync)(scopedPath);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
// Also delete legacy file if it exists (cleanup)
|
|
142
|
+
const legacyPath = getPendingPublishPath();
|
|
143
|
+
if ((0, fs_1.existsSync)(legacyPath)) {
|
|
144
|
+
(0, fs_1.unlinkSync)(legacyPath);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
catch {
|
|
148
|
+
// Best-effort: file deletion should never crash post-payment UX
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
exports.deletePendingPublish = deletePendingPublish;
|
|
152
|
+
// ============================================================================
|
|
153
|
+
// Internal Helpers
|
|
154
|
+
// ============================================================================
|
|
155
|
+
function deserializePendingPublish(raw) {
|
|
156
|
+
const serialized = JSON.parse(raw);
|
|
157
|
+
return {
|
|
158
|
+
version: serialized.version,
|
|
159
|
+
configHash: serialized.configHash,
|
|
160
|
+
cid: serialized.cid,
|
|
161
|
+
endpoint: serialized.endpoint,
|
|
162
|
+
serviceDescriptors: serialized.serviceDescriptors.map(deserializeDescriptor),
|
|
163
|
+
createdAt: serialized.createdAt,
|
|
164
|
+
...(serialized.network ? { network: serialized.network } : {}),
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=pendingPublish.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pendingPublish.js","sourceRoot":"","sources":["../../src/config/pendingPublish.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,6 +65,39 @@ export declare function extractRegistrationParams(frontmatter: Record<string, un
|
|
|
65
65
|
endpoint: string;
|
|
66
66
|
serviceDescriptors: ServiceDescriptor[];
|
|
67
67
|
};
|
|
68
|
+
export interface PreparePublishOptions {
|
|
69
|
+
/** Path to AGIRAILS.md file */
|
|
70
|
+
path: string;
|
|
71
|
+
/** Filebase client for IPFS upload */
|
|
72
|
+
filebaseClient: FilebaseClient;
|
|
73
|
+
/** Arweave client for permanent storage (optional) */
|
|
74
|
+
arweaveClient?: ArweaveClient;
|
|
75
|
+
/** Skip Arweave upload */
|
|
76
|
+
skipArweave?: boolean;
|
|
77
|
+
/** Dry run — compute and show but don't execute */
|
|
78
|
+
dryRun?: boolean;
|
|
79
|
+
}
|
|
80
|
+
export interface PreparePublishResult {
|
|
81
|
+
/** IPFS CID of uploaded AGIRAILS.md */
|
|
82
|
+
cid: string;
|
|
83
|
+
/** Canonical config hash (bytes32) */
|
|
84
|
+
configHash: string;
|
|
85
|
+
/** Arweave transaction ID (if uploaded) */
|
|
86
|
+
arweaveTxId?: string;
|
|
87
|
+
/** Parsed frontmatter */
|
|
88
|
+
frontmatter: Record<string, unknown>;
|
|
89
|
+
/** Parsed body */
|
|
90
|
+
body: string;
|
|
91
|
+
/** Whether this was a dry run */
|
|
92
|
+
dryRun: boolean;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Prepare publish — IPFS upload + hash computation only.
|
|
96
|
+
*
|
|
97
|
+
* No on-chain calls. Returns the CID and configHash for
|
|
98
|
+
* saving to pending-publish.json (lazy publish flow).
|
|
99
|
+
*/
|
|
100
|
+
export declare function preparePublish(options: PreparePublishOptions): Promise<PreparePublishResult>;
|
|
68
101
|
/**
|
|
69
102
|
* Execute the full publish pipeline.
|
|
70
103
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publishPipeline.d.ts","sourceRoot":"","sources":["../../src/config/publishPipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,MAAM,EAA0B,MAAM,QAAQ,CAAC;AAIxD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAM7C,MAAM,WAAW,cAAc;IAC7B,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,eAAe,EAAE,MAAM,CAAC;IACxB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,cAAc,EAAE,cAAc,CAAC;IAC/B,sDAAsD;IACtD,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,qCAAqC;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mDAAmD;IACnD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mBAAmB;IACnB,WAAW,CAAC,EAAE;QACZ,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;KAC/B,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,2CAA2C;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iCAAiC;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,gEAAgE;IAChE,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAMD,eAAO,MAAM,gBAAgB,gCAAgC,CAAC;AAkC9D;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,iBAAiB,EAAE,CAAA;CAAE,CA6D/D;AAMD;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAwFvF"}
|
|
1
|
+
{"version":3,"file":"publishPipeline.d.ts","sourceRoot":"","sources":["../../src/config/publishPipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,MAAM,EAA0B,MAAM,QAAQ,CAAC;AAIxD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAM7C,MAAM,WAAW,cAAc;IAC7B,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,eAAe,EAAE,MAAM,CAAC;IACxB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,cAAc,EAAE,cAAc,CAAC;IAC/B,sDAAsD;IACtD,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,qCAAqC;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mDAAmD;IACnD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mBAAmB;IACnB,WAAW,CAAC,EAAE;QACZ,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;KAC/B,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,2CAA2C;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iCAAiC;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,gEAAgE;IAChE,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAMD,eAAO,MAAM,gBAAgB,gCAAgC,CAAC;AAkC9D;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,iBAAiB,EAAE,CAAA;CAAE,CA6D/D;AAMD,MAAM,WAAW,qBAAqB;IACpC,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,cAAc,EAAE,cAAc,CAAC;IAC/B,sDAAsD;IACtD,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,0BAA0B;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mDAAmD;IACnD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,uCAAuC;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yBAAyB;IACzB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAyClG;AAMD;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAwFvF"}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* @module config/publishPipeline
|
|
13
13
|
*/
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.publishAgirailsMd = exports.extractRegistrationParams = exports.PENDING_ENDPOINT = void 0;
|
|
15
|
+
exports.publishAgirailsMd = exports.preparePublish = exports.extractRegistrationParams = exports.PENDING_ENDPOINT = void 0;
|
|
16
16
|
const fs_1 = require("fs");
|
|
17
17
|
const ethers_1 = require("ethers");
|
|
18
18
|
const agirailsmd_1 = require("./agirailsmd");
|
|
@@ -118,8 +118,39 @@ function extractRegistrationParams(frontmatter) {
|
|
|
118
118
|
' - text-generation\n');
|
|
119
119
|
}
|
|
120
120
|
exports.extractRegistrationParams = extractRegistrationParams;
|
|
121
|
+
/**
|
|
122
|
+
* Prepare publish — IPFS upload + hash computation only.
|
|
123
|
+
*
|
|
124
|
+
* No on-chain calls. Returns the CID and configHash for
|
|
125
|
+
* saving to pending-publish.json (lazy publish flow).
|
|
126
|
+
*/
|
|
127
|
+
async function preparePublish(options) {
|
|
128
|
+
const { path, filebaseClient, arweaveClient, skipArweave = false, dryRun = false, } = options;
|
|
129
|
+
// Read and parse
|
|
130
|
+
const content = (0, fs_1.readFileSync)(path, 'utf-8');
|
|
131
|
+
const { frontmatter, body } = (0, agirailsmd_1.parseAgirailsMd)(content);
|
|
132
|
+
const { configHash } = (0, agirailsmd_1.computeConfigHash)(content);
|
|
133
|
+
if (dryRun) {
|
|
134
|
+
return { cid: '(dry-run)', configHash, frontmatter, body, dryRun: true };
|
|
135
|
+
}
|
|
136
|
+
// Upload to IPFS
|
|
137
|
+
const ipfsResult = await filebaseClient.uploadBinary(Buffer.from(content, 'utf-8'), 'text/markdown', { metadata: { type: 'agirails-config', version: '1.0' } });
|
|
138
|
+
const cid = ipfsResult.cid;
|
|
139
|
+
// Arweave (optional)
|
|
140
|
+
let arweaveTxId;
|
|
141
|
+
if (!skipArweave && arweaveClient) {
|
|
142
|
+
const arweaveResult = await arweaveClient.uploadJSON({ frontmatter, body, _format: 'agirails.md.v1' }, [
|
|
143
|
+
{ name: 'Type', value: 'agent-config' },
|
|
144
|
+
{ name: 'ConfigHash', value: configHash },
|
|
145
|
+
{ name: 'IPFS-CID', value: cid },
|
|
146
|
+
]);
|
|
147
|
+
arweaveTxId = arweaveResult.txId;
|
|
148
|
+
}
|
|
149
|
+
return { cid, configHash, arweaveTxId, frontmatter, body, dryRun: false };
|
|
150
|
+
}
|
|
151
|
+
exports.preparePublish = preparePublish;
|
|
121
152
|
// ============================================================================
|
|
122
|
-
// Pipeline
|
|
153
|
+
// Pipeline (legacy — makes on-chain calls)
|
|
123
154
|
// ============================================================================
|
|
124
155
|
/**
|
|
125
156
|
* Execute the full publish pipeline.
|