@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,193 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Publish Pipeline - AGIRAILS.md → IPFS → Arweave → On-Chain
|
|
4
|
+
*
|
|
5
|
+
* Orchestrates the full publish flow:
|
|
6
|
+
* 1. Read AGIRAILS.md → parse → compute configHash
|
|
7
|
+
* 2. Upload to Filebase (IPFS pinning)
|
|
8
|
+
* 3. Upload to Arweave (permanent storage) [optional]
|
|
9
|
+
* 4. Call AgentRegistry.publishConfig(cid, hash) on-chain
|
|
10
|
+
* 5. Update AGIRAILS.md frontmatter with config_hash and published_at
|
|
11
|
+
*
|
|
12
|
+
* @module config/publishPipeline
|
|
13
|
+
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.publishAgirailsMd = exports.extractRegistrationParams = exports.PENDING_ENDPOINT = void 0;
|
|
16
|
+
const fs_1 = require("fs");
|
|
17
|
+
const ethers_1 = require("ethers");
|
|
18
|
+
const agirailsmd_1 = require("./agirailsmd");
|
|
19
|
+
const AgentRegistryClient_1 = require("../registry/AgentRegistryClient");
|
|
20
|
+
const AgentRegistry_1 = require("../protocol/AgentRegistry");
|
|
21
|
+
// ============================================================================
|
|
22
|
+
// Registration Helpers
|
|
23
|
+
// ============================================================================
|
|
24
|
+
exports.PENDING_ENDPOINT = 'https://pending.agirails.io';
|
|
25
|
+
/** Default values for capabilities-to-services conversion */
|
|
26
|
+
const SERVICE_DEFAULTS = {
|
|
27
|
+
schemaURI: '',
|
|
28
|
+
minPrice: 0n,
|
|
29
|
+
maxPrice: 1000000000n, // 1000 USDC
|
|
30
|
+
avgCompletionTime: 3600, // 1 hour
|
|
31
|
+
metadataCID: '',
|
|
32
|
+
};
|
|
33
|
+
/** Max safe USDC value before BigInt conversion loses precision */
|
|
34
|
+
const MAX_SAFE_USDC = Math.floor(Number.MAX_SAFE_INTEGER / 1000000);
|
|
35
|
+
/** Validate service type format (must match contract requirements) */
|
|
36
|
+
function validateServiceType(serviceType, source) {
|
|
37
|
+
if (!serviceType) {
|
|
38
|
+
throw new Error(`Empty service type in ${source}`);
|
|
39
|
+
}
|
|
40
|
+
if (!/^[a-z0-9]+(-[a-z0-9]+)*$/.test(serviceType)) {
|
|
41
|
+
throw new Error(`Invalid service type "${serviceType}" in ${source}. ` +
|
|
42
|
+
'Must be lowercase alphanumeric with hyphens (e.g., "text-generation").');
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/** Convert human-readable USDC to 6-decimal base units with overflow check */
|
|
46
|
+
function usdcToBaseUnits(value, fieldName) {
|
|
47
|
+
if (value < 0)
|
|
48
|
+
throw new Error(`${fieldName} cannot be negative`);
|
|
49
|
+
if (value > MAX_SAFE_USDC)
|
|
50
|
+
throw new Error(`${fieldName} exceeds maximum safe value (${MAX_SAFE_USDC} USDC)`);
|
|
51
|
+
return BigInt(Math.round(value * 1000000));
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Extract registration params from AGIRAILS.md frontmatter.
|
|
55
|
+
*
|
|
56
|
+
* Supports two formats:
|
|
57
|
+
* - `services`: full ServiceDescriptor objects with pricing
|
|
58
|
+
* - `capabilities`: simple string list, auto-converted with defaults
|
|
59
|
+
*
|
|
60
|
+
* @throws Error if neither services nor capabilities are present
|
|
61
|
+
*/
|
|
62
|
+
function extractRegistrationParams(frontmatter) {
|
|
63
|
+
// Endpoint: use frontmatter field or placeholder
|
|
64
|
+
const endpoint = typeof frontmatter.endpoint === 'string' && frontmatter.endpoint
|
|
65
|
+
? frontmatter.endpoint
|
|
66
|
+
: exports.PENDING_ENDPOINT;
|
|
67
|
+
// Try explicit services first
|
|
68
|
+
if (Array.isArray(frontmatter.services) && frontmatter.services.length > 0) {
|
|
69
|
+
const serviceDescriptors = frontmatter.services.map(svc => {
|
|
70
|
+
const serviceType = String(svc.type || svc.service_type || '').trim().toLowerCase();
|
|
71
|
+
validateServiceType(serviceType, 'services');
|
|
72
|
+
// Parse price range: "1.0-100.0" or separate min/max
|
|
73
|
+
let minPrice = SERVICE_DEFAULTS.minPrice;
|
|
74
|
+
let maxPrice = SERVICE_DEFAULTS.maxPrice;
|
|
75
|
+
if (typeof svc.price === 'string' && svc.price.includes('-')) {
|
|
76
|
+
const [min, max] = svc.price.split('-').map(Number);
|
|
77
|
+
minPrice = usdcToBaseUnits(min, 'min_price');
|
|
78
|
+
maxPrice = usdcToBaseUnits(max, 'max_price');
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
if (svc.min_price !== undefined)
|
|
82
|
+
minPrice = usdcToBaseUnits(Number(svc.min_price), 'min_price');
|
|
83
|
+
if (svc.max_price !== undefined)
|
|
84
|
+
maxPrice = usdcToBaseUnits(Number(svc.max_price), 'max_price');
|
|
85
|
+
}
|
|
86
|
+
return {
|
|
87
|
+
serviceTypeHash: (0, ethers_1.keccak256)((0, ethers_1.toUtf8Bytes)(serviceType)),
|
|
88
|
+
serviceType,
|
|
89
|
+
schemaURI: String(svc.schema_uri || svc.schemaURI || SERVICE_DEFAULTS.schemaURI),
|
|
90
|
+
minPrice,
|
|
91
|
+
maxPrice,
|
|
92
|
+
avgCompletionTime: Number(svc.avg_completion_time || svc.avgCompletionTime || SERVICE_DEFAULTS.avgCompletionTime),
|
|
93
|
+
metadataCID: String(svc.metadata_cid || svc.metadataCID || SERVICE_DEFAULTS.metadataCID),
|
|
94
|
+
};
|
|
95
|
+
});
|
|
96
|
+
return { endpoint, serviceDescriptors };
|
|
97
|
+
}
|
|
98
|
+
// Fallback: convert capabilities list to services with defaults
|
|
99
|
+
if (Array.isArray(frontmatter.capabilities) && frontmatter.capabilities.length > 0) {
|
|
100
|
+
const serviceDescriptors = frontmatter.capabilities.map(cap => {
|
|
101
|
+
const serviceType = String(cap).trim().toLowerCase();
|
|
102
|
+
validateServiceType(serviceType, 'capabilities');
|
|
103
|
+
return {
|
|
104
|
+
serviceTypeHash: (0, ethers_1.keccak256)((0, ethers_1.toUtf8Bytes)(serviceType)),
|
|
105
|
+
serviceType,
|
|
106
|
+
schemaURI: SERVICE_DEFAULTS.schemaURI,
|
|
107
|
+
minPrice: SERVICE_DEFAULTS.minPrice,
|
|
108
|
+
maxPrice: SERVICE_DEFAULTS.maxPrice,
|
|
109
|
+
avgCompletionTime: SERVICE_DEFAULTS.avgCompletionTime,
|
|
110
|
+
metadataCID: SERVICE_DEFAULTS.metadataCID,
|
|
111
|
+
};
|
|
112
|
+
});
|
|
113
|
+
return { endpoint, serviceDescriptors };
|
|
114
|
+
}
|
|
115
|
+
throw new Error('AGIRAILS.md must have "services" or "capabilities" in frontmatter for agent registration.\n' +
|
|
116
|
+
'Add at least one, e.g.:\n' +
|
|
117
|
+
' capabilities:\n' +
|
|
118
|
+
' - text-generation\n');
|
|
119
|
+
}
|
|
120
|
+
exports.extractRegistrationParams = extractRegistrationParams;
|
|
121
|
+
// ============================================================================
|
|
122
|
+
// Pipeline
|
|
123
|
+
// ============================================================================
|
|
124
|
+
/**
|
|
125
|
+
* Execute the full publish pipeline.
|
|
126
|
+
*
|
|
127
|
+
* @param options - Publish configuration
|
|
128
|
+
* @returns Publish result with CID, hash, and transaction hashes
|
|
129
|
+
*/
|
|
130
|
+
async function publishAgirailsMd(options) {
|
|
131
|
+
const { path, registryAddress, signer, filebaseClient, arweaveClient, skipArweave = false, dryRun = false, gasSettings, } = options;
|
|
132
|
+
// Step 1: Read and parse
|
|
133
|
+
const content = (0, fs_1.readFileSync)(path, 'utf-8');
|
|
134
|
+
const { frontmatter, body } = (0, agirailsmd_1.parseAgirailsMd)(content);
|
|
135
|
+
const { configHash } = (0, agirailsmd_1.computeConfigHash)(content);
|
|
136
|
+
if (dryRun) {
|
|
137
|
+
return {
|
|
138
|
+
cid: '(dry-run)',
|
|
139
|
+
configHash,
|
|
140
|
+
dryRun: true,
|
|
141
|
+
registered: false,
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
// Step 2: Upload raw AGIRAILS.md to IPFS via Filebase
|
|
145
|
+
// Upload the actual markdown file (not a JSON wrapper) so CID points to the real file
|
|
146
|
+
const ipfsResult = await filebaseClient.uploadBinary(Buffer.from(content, 'utf-8'), 'text/markdown', { metadata: { type: 'agirails-config', version: '1.0' } });
|
|
147
|
+
const cid = ipfsResult.cid;
|
|
148
|
+
// Step 3: Upload to Arweave (optional)
|
|
149
|
+
// Arweave stores the JSON-structured form for archival querying.
|
|
150
|
+
// uploadJSON already sets Content-Type: application/json and Protocol: AGIRAILS as defaults.
|
|
151
|
+
let arweaveTxId;
|
|
152
|
+
if (!skipArweave && arweaveClient) {
|
|
153
|
+
const arweaveResult = await arweaveClient.uploadJSON({ frontmatter, body, _format: 'agirails.md.v1' }, [
|
|
154
|
+
{ name: 'Type', value: 'agent-config' },
|
|
155
|
+
{ name: 'ConfigHash', value: configHash },
|
|
156
|
+
{ name: 'IPFS-CID', value: cid },
|
|
157
|
+
]);
|
|
158
|
+
arweaveTxId = arweaveResult.txId;
|
|
159
|
+
}
|
|
160
|
+
// Step 4: Auto-register if needed, then publish on-chain
|
|
161
|
+
const registry = new AgentRegistry_1.AgentRegistry(registryAddress, signer, gasSettings);
|
|
162
|
+
const registryClient = new AgentRegistryClient_1.AgentRegistryClient(registryAddress, signer, gasSettings);
|
|
163
|
+
let registered = false;
|
|
164
|
+
const signerAddress = await signer.getAddress();
|
|
165
|
+
const profile = await registry.getAgent(signerAddress);
|
|
166
|
+
if (!profile) {
|
|
167
|
+
// Not registered — extract params from frontmatter and auto-register
|
|
168
|
+
const regParams = extractRegistrationParams(frontmatter);
|
|
169
|
+
await registry.registerAgent(regParams);
|
|
170
|
+
registered = true;
|
|
171
|
+
}
|
|
172
|
+
const { txHash } = await registryClient.publishConfig(cid, configHash);
|
|
173
|
+
// Step 5: Update frontmatter with publish metadata
|
|
174
|
+
const updatedFrontmatter = {
|
|
175
|
+
...frontmatter,
|
|
176
|
+
config_hash: configHash,
|
|
177
|
+
published_at: new Date().toISOString(),
|
|
178
|
+
config_cid: cid,
|
|
179
|
+
...(arweaveTxId ? { arweave_tx: arweaveTxId } : {}),
|
|
180
|
+
};
|
|
181
|
+
const updatedContent = (0, agirailsmd_1.serializeAgirailsMd)(updatedFrontmatter, body);
|
|
182
|
+
(0, fs_1.writeFileSync)(path, updatedContent, 'utf-8');
|
|
183
|
+
return {
|
|
184
|
+
cid,
|
|
185
|
+
configHash,
|
|
186
|
+
txHash,
|
|
187
|
+
arweaveTxId,
|
|
188
|
+
dryRun: false,
|
|
189
|
+
registered,
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
exports.publishAgirailsMd = publishAgirailsMd;
|
|
193
|
+
//# sourceMappingURL=publishPipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publishPipeline.js","sourceRoot":"","sources":["../../src/config/publishPipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sync Operations - Pull + Diff for AGIRAILS.md
|
|
3
|
+
*
|
|
4
|
+
* Terraform-style sync: compare local AGIRAILS.md with on-chain state.
|
|
5
|
+
* Never auto-overwrites — shows diff and requires explicit confirmation.
|
|
6
|
+
*
|
|
7
|
+
* @module config/syncOperations
|
|
8
|
+
*/
|
|
9
|
+
import { Provider } from 'ethers';
|
|
10
|
+
export interface DiffResult {
|
|
11
|
+
/** Whether local and on-chain are in sync */
|
|
12
|
+
inSync: boolean;
|
|
13
|
+
/** Local config hash (or null if no local file) */
|
|
14
|
+
localHash: string | null;
|
|
15
|
+
/** On-chain config hash (or zero hash if not published) */
|
|
16
|
+
onChainHash: string;
|
|
17
|
+
/** On-chain IPFS CID (or empty if not published) */
|
|
18
|
+
onChainCID: string;
|
|
19
|
+
/** Whether on-chain has a published config */
|
|
20
|
+
hasOnChainConfig: boolean;
|
|
21
|
+
/** Whether local file exists */
|
|
22
|
+
hasLocalFile: boolean;
|
|
23
|
+
/** Human-readable status message */
|
|
24
|
+
status: 'in-sync' | 'local-ahead' | 'remote-ahead' | 'diverged' | 'no-local' | 'no-remote';
|
|
25
|
+
}
|
|
26
|
+
export interface PullResult {
|
|
27
|
+
/** Whether a file was written */
|
|
28
|
+
written: boolean;
|
|
29
|
+
/** The pulled content (if any) */
|
|
30
|
+
content?: string;
|
|
31
|
+
/** IPFS CID that was fetched */
|
|
32
|
+
cid?: string;
|
|
33
|
+
/** Status message */
|
|
34
|
+
status: string;
|
|
35
|
+
}
|
|
36
|
+
export interface DiffOptions {
|
|
37
|
+
/** Path to local AGIRAILS.md */
|
|
38
|
+
path: string;
|
|
39
|
+
/** Agent address to check on-chain */
|
|
40
|
+
agentAddress: string;
|
|
41
|
+
/** AgentRegistry contract address */
|
|
42
|
+
registryAddress: string;
|
|
43
|
+
/** Provider for reading on-chain state */
|
|
44
|
+
provider: Provider;
|
|
45
|
+
}
|
|
46
|
+
export interface PullOptions extends DiffOptions {
|
|
47
|
+
/** Force overwrite without confirmation */
|
|
48
|
+
force?: boolean;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Compare local AGIRAILS.md with on-chain config state.
|
|
52
|
+
*
|
|
53
|
+
* @param options - Diff configuration
|
|
54
|
+
* @returns Diff result showing sync status
|
|
55
|
+
*/
|
|
56
|
+
export declare function diff(options: DiffOptions): Promise<DiffResult>;
|
|
57
|
+
/**
|
|
58
|
+
* Pull on-chain config to local AGIRAILS.md.
|
|
59
|
+
*
|
|
60
|
+
* Downloads from IPFS via public gateways (no Filebase credentials needed),
|
|
61
|
+
* verifies integrity against on-chain configHash, then writes locally.
|
|
62
|
+
*
|
|
63
|
+
* @param options - Pull configuration
|
|
64
|
+
* @returns Pull result
|
|
65
|
+
*/
|
|
66
|
+
export declare function pull(options: PullOptions): Promise<PullResult>;
|
|
67
|
+
//# sourceMappingURL=syncOperations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"syncOperations.d.ts","sourceRoot":"","sources":["../../src/config/syncOperations.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAoBlC,MAAM,WAAW,UAAU;IACzB,6CAA6C;IAC7C,MAAM,EAAE,OAAO,CAAC;IAChB,mDAAmD;IACnD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,2DAA2D;IAC3D,WAAW,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gCAAgC;IAChC,YAAY,EAAE,OAAO,CAAC;IACtB,oCAAoC;IACpC,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,cAAc,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,CAAC;CAC5F;AAED,MAAM,WAAW,UAAU;IACzB,iCAAiC;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,eAAe,EAAE,MAAM,CAAC;IACxB,0CAA0C;IAC1C,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC9C,2CAA2C;IAC3C,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAQD;;;;;GAKG;AACH,wBAAsB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAyEpE;AA6CD;;;;;;;;GAQG;AACH,wBAAsB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAiEpE"}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Sync Operations - Pull + Diff for AGIRAILS.md
|
|
4
|
+
*
|
|
5
|
+
* Terraform-style sync: compare local AGIRAILS.md with on-chain state.
|
|
6
|
+
* Never auto-overwrites — shows diff and requires explicit confirmation.
|
|
7
|
+
*
|
|
8
|
+
* @module config/syncOperations
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.pull = exports.diff = void 0;
|
|
12
|
+
const fs_1 = require("fs");
|
|
13
|
+
const agirailsmd_1 = require("./agirailsmd");
|
|
14
|
+
const validation_1 = require("../utils/validation");
|
|
15
|
+
const AgentRegistryClient_1 = require("../registry/AgentRegistryClient");
|
|
16
|
+
// ============================================================================
|
|
17
|
+
// Constants
|
|
18
|
+
// ============================================================================
|
|
19
|
+
/** Public IPFS gateways for read-only access (no credentials needed) */
|
|
20
|
+
const IPFS_GATEWAYS = [
|
|
21
|
+
'https://ipfs.io/ipfs/',
|
|
22
|
+
'https://dweb.link/ipfs/',
|
|
23
|
+
'https://cloudflare-ipfs.com/ipfs/',
|
|
24
|
+
];
|
|
25
|
+
// ============================================================================
|
|
26
|
+
// Diff
|
|
27
|
+
// ============================================================================
|
|
28
|
+
const ZERO_HASH = '0x' + '0'.repeat(64);
|
|
29
|
+
/**
|
|
30
|
+
* Compare local AGIRAILS.md with on-chain config state.
|
|
31
|
+
*
|
|
32
|
+
* @param options - Diff configuration
|
|
33
|
+
* @returns Diff result showing sync status
|
|
34
|
+
*/
|
|
35
|
+
async function diff(options) {
|
|
36
|
+
const { path, agentAddress, registryAddress, provider } = options;
|
|
37
|
+
// Read on-chain state
|
|
38
|
+
const registryClient = AgentRegistryClient_1.AgentRegistryClient.readOnly(registryAddress, provider);
|
|
39
|
+
const onChainState = await registryClient.getConfig(agentAddress);
|
|
40
|
+
const hasOnChainConfig = onChainState.configHash !== ZERO_HASH && onChainState.configCID !== '';
|
|
41
|
+
const onChainHash = onChainState.configHash;
|
|
42
|
+
const onChainCID = onChainState.configCID;
|
|
43
|
+
// Read local state
|
|
44
|
+
const hasLocalFile = (0, fs_1.existsSync)(path);
|
|
45
|
+
let localHash = null;
|
|
46
|
+
if (hasLocalFile) {
|
|
47
|
+
const content = (0, fs_1.readFileSync)(path, 'utf-8');
|
|
48
|
+
const { configHash } = (0, agirailsmd_1.computeConfigHash)(content);
|
|
49
|
+
localHash = configHash;
|
|
50
|
+
}
|
|
51
|
+
// Determine status
|
|
52
|
+
let status;
|
|
53
|
+
let inSync;
|
|
54
|
+
if (!hasLocalFile && !hasOnChainConfig) {
|
|
55
|
+
status = 'no-local';
|
|
56
|
+
inSync = true; // both empty = in sync
|
|
57
|
+
}
|
|
58
|
+
else if (!hasLocalFile && hasOnChainConfig) {
|
|
59
|
+
status = 'remote-ahead';
|
|
60
|
+
inSync = false;
|
|
61
|
+
}
|
|
62
|
+
else if (hasLocalFile && !hasOnChainConfig) {
|
|
63
|
+
status = 'no-remote';
|
|
64
|
+
inSync = false;
|
|
65
|
+
}
|
|
66
|
+
else if (localHash === onChainHash) {
|
|
67
|
+
status = 'in-sync';
|
|
68
|
+
inSync = true;
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
// Both exist but hashes differ. Use the stored config_hash in frontmatter
|
|
72
|
+
// to determine directionality:
|
|
73
|
+
// - config_hash matches on-chain → user edited locally after last publish → local-ahead
|
|
74
|
+
// - config_hash doesn't match on-chain → remote was updated too → diverged
|
|
75
|
+
// - no config_hash → never published from this file → local-ahead
|
|
76
|
+
status = 'diverged';
|
|
77
|
+
inSync = false;
|
|
78
|
+
if (hasLocalFile) {
|
|
79
|
+
try {
|
|
80
|
+
const content = (0, fs_1.readFileSync)(path, 'utf-8');
|
|
81
|
+
const { frontmatter } = (0, agirailsmd_1.parseAgirailsMd)(content);
|
|
82
|
+
if (!frontmatter.config_hash) {
|
|
83
|
+
// Never published — local is the only source
|
|
84
|
+
status = 'local-ahead';
|
|
85
|
+
}
|
|
86
|
+
else if (frontmatter.config_hash === onChainHash) {
|
|
87
|
+
// Last publish matches on-chain, so local edits are newer
|
|
88
|
+
status = 'local-ahead';
|
|
89
|
+
}
|
|
90
|
+
// else: frontmatter.config_hash !== onChainHash → remote updated → diverged
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
// Parse error — keep as diverged
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return {
|
|
98
|
+
inSync,
|
|
99
|
+
localHash,
|
|
100
|
+
onChainHash,
|
|
101
|
+
onChainCID,
|
|
102
|
+
hasOnChainConfig,
|
|
103
|
+
hasLocalFile,
|
|
104
|
+
status,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
exports.diff = diff;
|
|
108
|
+
// ============================================================================
|
|
109
|
+
// IPFS Fetch (public gateway, no credentials needed)
|
|
110
|
+
// ============================================================================
|
|
111
|
+
/**
|
|
112
|
+
* Fetch content from IPFS using public gateways (no Filebase credentials needed).
|
|
113
|
+
* Tries multiple gateways with fallback.
|
|
114
|
+
*
|
|
115
|
+
* @param cid - IPFS CID to fetch (validated before use)
|
|
116
|
+
* @returns Raw content as string
|
|
117
|
+
* @throws InvalidCIDError if CID format is invalid
|
|
118
|
+
* @throws Error if all gateways fail
|
|
119
|
+
*/
|
|
120
|
+
async function fetchFromIPFS(cid) {
|
|
121
|
+
// Validate CID format before hitting any gateway
|
|
122
|
+
(0, validation_1.validateCID)(cid, 'onChainCID');
|
|
123
|
+
const errors = [];
|
|
124
|
+
for (const gateway of IPFS_GATEWAYS) {
|
|
125
|
+
try {
|
|
126
|
+
const response = await fetch(`${gateway}${cid}`, {
|
|
127
|
+
signal: AbortSignal.timeout(15000),
|
|
128
|
+
});
|
|
129
|
+
if (!response.ok) {
|
|
130
|
+
errors.push(`${gateway}: HTTP ${response.status}`);
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
return await response.text();
|
|
134
|
+
}
|
|
135
|
+
catch (err) {
|
|
136
|
+
errors.push(`${gateway}: ${err instanceof Error ? err.message : String(err)}`);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
throw new Error(`Failed to fetch CID ${cid} from all IPFS gateways:\n${errors.map(e => ` - ${e}`).join('\n')}`);
|
|
140
|
+
}
|
|
141
|
+
// ============================================================================
|
|
142
|
+
// Pull
|
|
143
|
+
// ============================================================================
|
|
144
|
+
/**
|
|
145
|
+
* Pull on-chain config to local AGIRAILS.md.
|
|
146
|
+
*
|
|
147
|
+
* Downloads from IPFS via public gateways (no Filebase credentials needed),
|
|
148
|
+
* verifies integrity against on-chain configHash, then writes locally.
|
|
149
|
+
*
|
|
150
|
+
* @param options - Pull configuration
|
|
151
|
+
* @returns Pull result
|
|
152
|
+
*/
|
|
153
|
+
async function pull(options) {
|
|
154
|
+
const { path, agentAddress, registryAddress, provider, force = false } = options;
|
|
155
|
+
// First, run diff
|
|
156
|
+
const diffResult = await diff({ path, agentAddress, registryAddress, provider });
|
|
157
|
+
if (!diffResult.hasOnChainConfig) {
|
|
158
|
+
return {
|
|
159
|
+
written: false,
|
|
160
|
+
status: 'No config published on-chain for this agent.',
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
if (diffResult.inSync) {
|
|
164
|
+
return {
|
|
165
|
+
written: false,
|
|
166
|
+
status: 'Already in sync. No changes needed.',
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
// Fetch raw AGIRAILS.md from IPFS (public gateway, no credentials)
|
|
170
|
+
const content = await fetchFromIPFS(diffResult.onChainCID);
|
|
171
|
+
// Integrity verification: hash downloaded content and compare with on-chain hash
|
|
172
|
+
const { configHash: downloadedHash } = (0, agirailsmd_1.computeConfigHash)(content);
|
|
173
|
+
if (downloadedHash !== diffResult.onChainHash) {
|
|
174
|
+
return {
|
|
175
|
+
written: false,
|
|
176
|
+
cid: diffResult.onChainCID,
|
|
177
|
+
status: `Integrity check failed! Downloaded content hash (${downloadedHash}) does not match on-chain hash (${diffResult.onChainHash}). The IPFS content may have been tampered with.`,
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
// Check if local file exists and we're not forcing
|
|
181
|
+
if (diffResult.hasLocalFile && !force) {
|
|
182
|
+
return {
|
|
183
|
+
written: false,
|
|
184
|
+
content,
|
|
185
|
+
cid: diffResult.onChainCID,
|
|
186
|
+
status: `Remote config differs from local. Use --force to overwrite. CID: ${diffResult.onChainCID}`,
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
// Stamp on-chain metadata into frontmatter so diff heuristic can detect
|
|
190
|
+
// future remote changes (without this, pulled files have no config_hash
|
|
191
|
+
// and diff would always report "local-ahead" instead of "diverged")
|
|
192
|
+
const { frontmatter, body } = (0, agirailsmd_1.parseAgirailsMd)(content);
|
|
193
|
+
const stamped = (0, agirailsmd_1.serializeAgirailsMd)({
|
|
194
|
+
...frontmatter,
|
|
195
|
+
config_hash: diffResult.onChainHash,
|
|
196
|
+
config_cid: diffResult.onChainCID,
|
|
197
|
+
}, body);
|
|
198
|
+
// Write the stamped file
|
|
199
|
+
(0, fs_1.writeFileSync)(path, stamped, 'utf-8');
|
|
200
|
+
return {
|
|
201
|
+
written: true,
|
|
202
|
+
content: stamped,
|
|
203
|
+
cid: diffResult.onChainCID,
|
|
204
|
+
status: `Pulled and verified config from IPFS (${diffResult.onChainCID}) → ${path}`,
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
exports.pull = pull;
|
|
208
|
+
//# sourceMappingURL=syncOperations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"syncOperations.js","sourceRoot":"","sources":["../../src/config/syncOperations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ERC8004Bridge.d.ts","sourceRoot":"","sources":["../../src/erc8004/ERC8004Bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,EACL,YAAY,EAEZ,cAAc,EAMf,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"ERC8004Bridge.d.ts","sourceRoot":"","sources":["../../src/erc8004/ERC8004Bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,EACL,YAAY,EAEZ,cAAc,EAMf,MAAM,kBAAkB,CAAC;AAO1B;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9C,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACpE;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,qBAAqB;IACrB,OAAO,EAAE,cAAc,CAAC;IAExB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,wDAAwD;IACxD,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,oDAAoD;IACpD,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IAEvB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,2EAA2E;IAC3E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;;OAIG;IACH,aAAa,CAAC,EAAE,wBAAwB,CAAC;CAC1C;AAcD;;;;;;;;GAQG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgC;IACzD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2B;IACpD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA2B;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;gBAE7B,MAAM,EAAE,mBAAmB;IAuCvC;;;;;;;OAOG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAqBpD;;;;;;;;;;;OAWG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKtD;;;;;;;;;OASG;IACG,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA0F1D;;;;;OAKG;IACG,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA2BxD;;;OAGG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,aAAa,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,cAAc,CAAA;KAAE;IAW1D;;;OAGG;IACH,OAAO,CAAC,cAAc;IAkBtB;;OAEG;IACH,OAAO,CAAC,cAAc;IAStB;;;;;;;;;;OAUG;YACW,aAAa;CA2D5B"}
|
|
@@ -31,6 +31,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
31
31
|
exports.ERC8004Bridge = void 0;
|
|
32
32
|
const ethers_1 = require("ethers");
|
|
33
33
|
const erc8004_1 = require("../types/erc8004");
|
|
34
|
+
const Logger_1 = require("../utils/Logger");
|
|
34
35
|
// ============================================================================
|
|
35
36
|
// ERC8004Bridge
|
|
36
37
|
// ============================================================================
|
|
@@ -62,7 +63,7 @@ class ERC8004Bridge {
|
|
|
62
63
|
// Setup registry contract
|
|
63
64
|
const registryAddress = config.registryAddress ?? erc8004_1.ERC8004_IDENTITY_REGISTRY[config.network];
|
|
64
65
|
if (registryAddress === ethers_1.ethers.ZeroAddress) {
|
|
65
|
-
|
|
66
|
+
Logger_1.sdkLogger.warn(`[ERC8004] Registry not deployed on ${config.network}. Using zero address.`);
|
|
66
67
|
}
|
|
67
68
|
this.registry = new ethers_1.ethers.Contract(registryAddress, erc8004_1.ERC8004_IDENTITY_ABI, this.provider);
|
|
68
69
|
}
|
|
@@ -207,7 +208,7 @@ class ERC8004Bridge {
|
|
|
207
208
|
return agentIds;
|
|
208
209
|
}
|
|
209
210
|
catch (error) {
|
|
210
|
-
|
|
211
|
+
Logger_1.sdkLogger.warn(`[ERC8004] Failed to get agents for owner ${owner}: ${error instanceof Error ? error.message : error}`);
|
|
211
212
|
return [];
|
|
212
213
|
}
|
|
213
214
|
}
|
|
@@ -286,7 +287,7 @@ class ERC8004Bridge {
|
|
|
286
287
|
}
|
|
287
288
|
// Validate URL
|
|
288
289
|
if (!url.startsWith('http://') && !url.startsWith('https://')) {
|
|
289
|
-
|
|
290
|
+
Logger_1.sdkLogger.warn(`[ERC8004] Invalid agentURI scheme for ${agentId}: ${url}`);
|
|
290
291
|
return undefined;
|
|
291
292
|
}
|
|
292
293
|
// Fetch with timeout
|
|
@@ -299,7 +300,7 @@ class ERC8004Bridge {
|
|
|
299
300
|
});
|
|
300
301
|
clearTimeout(timeoutId);
|
|
301
302
|
if (!response.ok) {
|
|
302
|
-
|
|
303
|
+
Logger_1.sdkLogger.warn(`[ERC8004] Metadata fetch failed for ${agentId}: HTTP ${response.status}`);
|
|
303
304
|
return undefined;
|
|
304
305
|
}
|
|
305
306
|
const data = await response.json();
|
|
@@ -316,7 +317,7 @@ class ERC8004Bridge {
|
|
|
316
317
|
? 'timeout'
|
|
317
318
|
: error.message
|
|
318
319
|
: 'unknown error';
|
|
319
|
-
|
|
320
|
+
Logger_1.sdkLogger.warn(`[ERC8004] Metadata fetch failed for ${agentId}: ${errorMessage}`);
|
|
320
321
|
return undefined;
|
|
321
322
|
}
|
|
322
323
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ERC8004Bridge.js","sourceRoot":"","sources":["../../src/erc8004/ERC8004Bridge.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;;;AAEH,mCAAgC;AAChC,8CAS0B;
|
|
1
|
+
{"version":3,"file":"ERC8004Bridge.js","sourceRoot":"","sources":["../../src/erc8004/ERC8004Bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReputationReporter.d.ts","sourceRoot":"","sources":["../../src/erc8004/ReputationReporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EACL,cAAc,EAIf,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"ReputationReporter.d.ts","sourceRoot":"","sources":["../../src/erc8004/ReputationReporter.ts"],"names":[],"mappings":"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"}
|