@agentxv2/sdk 0.3.0 → 0.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 +25 -16
- package/dist/core.d.mts +64 -0
- package/dist/core.d.ts +64 -0
- package/dist/core.js +275 -0
- package/dist/core.js.map +1 -0
- package/dist/core.mjs +240 -0
- package/dist/core.mjs.map +1 -0
- package/dist/{agent/agent-runner.d.ts → index-DhXVi_ub.d.ts} +94 -10
- package/dist/index-eQO4iaOr.d.mts +208 -0
- package/dist/index.d.mts +269 -0
- package/dist/index.d.ts +269 -10
- package/dist/index.js +2416 -31
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2363 -0
- package/dist/index.mjs.map +1 -0
- package/dist/react.d.mts +3 -0
- package/dist/react.d.ts +3 -0
- package/dist/react.js +755 -0
- package/dist/react.js.map +1 -0
- package/dist/react.mjs +735 -0
- package/dist/react.mjs.map +1 -0
- package/dist/{core/types.d.ts → types-2aHUvS4M.d.mts} +34 -33
- package/dist/types-2aHUvS4M.d.ts +297 -0
- package/package.json +12 -11
- package/dist/a2a/a2a.d.ts +0 -37
- package/dist/a2a/a2a.d.ts.map +0 -1
- package/dist/a2a/a2a.js +0 -252
- package/dist/a2a/a2a.js.map +0 -1
- package/dist/a2a/index.d.ts +0 -4
- package/dist/a2a/index.d.ts.map +0 -1
- package/dist/a2a/index.js +0 -4
- package/dist/a2a/index.js.map +0 -1
- package/dist/agent/agent-runner.d.ts.map +0 -1
- package/dist/agent/agent-runner.js +0 -249
- package/dist/agent/agent-runner.js.map +0 -1
- package/dist/agent/index.d.ts +0 -3
- package/dist/agent/index.d.ts.map +0 -1
- package/dist/agent/index.js +0 -3
- package/dist/agent/index.js.map +0 -1
- package/dist/config/config.d.ts +0 -31
- package/dist/config/config.d.ts.map +0 -1
- package/dist/config/config.js +0 -95
- package/dist/config/config.js.map +0 -1
- package/dist/config/index.d.ts +0 -4
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/index.js +0 -4
- package/dist/config/index.js.map +0 -1
- package/dist/core/crypto.d.ts +0 -62
- package/dist/core/crypto.d.ts.map +0 -1
- package/dist/core/crypto.js +0 -291
- package/dist/core/crypto.js.map +0 -1
- package/dist/core/index.d.ts +0 -3
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -4
- package/dist/core/index.js.map +0 -1
- package/dist/core/types.d.ts.map +0 -1
- package/dist/core/types.js +0 -30
- package/dist/core/types.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/mcp/connector.d.ts +0 -43
- package/dist/mcp/connector.d.ts.map +0 -1
- package/dist/mcp/connector.js +0 -79
- package/dist/mcp/connector.js.map +0 -1
- package/dist/mcp/index.d.ts +0 -4
- package/dist/mcp/index.d.ts.map +0 -1
- package/dist/mcp/index.js +0 -4
- package/dist/mcp/index.js.map +0 -1
- package/dist/react/index.d.ts +0 -4
- package/dist/react/index.d.ts.map +0 -1
- package/dist/react/index.js +0 -3
- package/dist/react/index.js.map +0 -1
- package/dist/react/useAgentRunner.d.ts +0 -16
- package/dist/react/useAgentRunner.d.ts.map +0 -1
- package/dist/react/useAgentRunner.js +0 -204
- package/dist/react/useAgentRunner.js.map +0 -1
- package/dist/registry/agent-registry.d.ts +0 -52
- package/dist/registry/agent-registry.d.ts.map +0 -1
- package/dist/registry/agent-registry.js +0 -221
- package/dist/registry/agent-registry.js.map +0 -1
- package/dist/registry/index.d.ts +0 -7
- package/dist/registry/index.d.ts.map +0 -1
- package/dist/registry/index.js +0 -6
- package/dist/registry/index.js.map +0 -1
- package/dist/registry/ipfs-fetcher.d.ts +0 -39
- package/dist/registry/ipfs-fetcher.d.ts.map +0 -1
- package/dist/registry/ipfs-fetcher.js +0 -139
- package/dist/registry/ipfs-fetcher.js.map +0 -1
- package/dist/reputation/index.d.ts +0 -4
- package/dist/reputation/index.d.ts.map +0 -1
- package/dist/reputation/index.js +0 -4
- package/dist/reputation/index.js.map +0 -1
- package/dist/reputation/reputation.d.ts +0 -26
- package/dist/reputation/reputation.d.ts.map +0 -1
- package/dist/reputation/reputation.js +0 -113
- package/dist/reputation/reputation.js.map +0 -1
- package/dist/subscription/agent-x402.d.ts +0 -33
- package/dist/subscription/agent-x402.d.ts.map +0 -1
- package/dist/subscription/agent-x402.js +0 -144
- package/dist/subscription/agent-x402.js.map +0 -1
- package/dist/subscription/index.d.ts +0 -6
- package/dist/subscription/index.d.ts.map +0 -1
- package/dist/subscription/index.js +0 -5
- package/dist/subscription/index.js.map +0 -1
- package/dist/subscription/subscription.d.ts +0 -67
- package/dist/subscription/subscription.d.ts.map +0 -1
- package/dist/subscription/subscription.js +0 -346
- package/dist/subscription/subscription.js.map +0 -1
|
@@ -1,204 +0,0 @@
|
|
|
1
|
-
// ---------------------------------------------------------------------------
|
|
2
|
-
// @agentx/sdk — useAgentRunner React Hook
|
|
3
|
-
// ---------------------------------------------------------------------------
|
|
4
|
-
// Wraps AgentRunner.useAgent() for React + wagmi integration.
|
|
5
|
-
//
|
|
6
|
-
// const { ctx, isLoading, error } = useAgentRunner(agentId)
|
|
7
|
-
// // ctx.prompt → inject into LLM
|
|
8
|
-
// // ctx.skills → RunnableSkill[] with execute()
|
|
9
|
-
// // ctx.mcp → MCP connection info
|
|
10
|
-
// ---------------------------------------------------------------------------
|
|
11
|
-
'use client';
|
|
12
|
-
import { useState, useEffect, useRef } from 'react';
|
|
13
|
-
import { usePublicClient, useWalletClient } from 'wagmi';
|
|
14
|
-
import { AgentRunner } from '../agent/agent-runner';
|
|
15
|
-
import { IPFSFetcher } from '../registry/ipfs-fetcher';
|
|
16
|
-
import { KNOWN_CHAINS } from '../config/config';
|
|
17
|
-
// ── IdentityRegistry ABI (minimal — only what useAgent needs) ──────────────
|
|
18
|
-
const IDENTITY_REGISTRY_ABI = [
|
|
19
|
-
// getAgentMetadata returns MetadataEntry[] with key+value strings
|
|
20
|
-
{
|
|
21
|
-
name: 'getAgentMetadata',
|
|
22
|
-
type: 'function',
|
|
23
|
-
stateMutability: 'view',
|
|
24
|
-
inputs: [{ name: 'agentId', type: 'uint256' }],
|
|
25
|
-
outputs: [
|
|
26
|
-
{
|
|
27
|
-
name: '',
|
|
28
|
-
type: 'tuple[]',
|
|
29
|
-
components: [
|
|
30
|
-
{ name: 'key', type: 'string' },
|
|
31
|
-
{ name: 'value', type: 'bytes' },
|
|
32
|
-
],
|
|
33
|
-
},
|
|
34
|
-
],
|
|
35
|
-
},
|
|
36
|
-
];
|
|
37
|
-
// ── SubscriptionManager ABI (minimal) ─────────────────────────────────────
|
|
38
|
-
const SUBSCRIPTION_MANAGER_ABI = [
|
|
39
|
-
{
|
|
40
|
-
name: 'hasActiveSubscription',
|
|
41
|
-
type: 'function',
|
|
42
|
-
stateMutability: 'view',
|
|
43
|
-
inputs: [
|
|
44
|
-
{ name: 'subscriber', type: 'address' },
|
|
45
|
-
{ name: 'agentId', type: 'uint256' },
|
|
46
|
-
],
|
|
47
|
-
outputs: [{ name: '', type: 'bool' }],
|
|
48
|
-
},
|
|
49
|
-
];
|
|
50
|
-
// ── OnChainReader Implementation (viem) ────────────────────────────────────
|
|
51
|
-
class ViemOnChainReader {
|
|
52
|
-
publicClient;
|
|
53
|
-
chainConfig;
|
|
54
|
-
constructor(publicClient, chainConfig) {
|
|
55
|
-
this.publicClient = publicClient;
|
|
56
|
-
this.chainConfig = chainConfig;
|
|
57
|
-
}
|
|
58
|
-
async getTokenURI(_agentId) {
|
|
59
|
-
// tokenURI is standard ERC-721 metadata — not needed for our flow
|
|
60
|
-
// Metadata is fetched via getAgentMetadata
|
|
61
|
-
return '';
|
|
62
|
-
}
|
|
63
|
-
async getAttributes(agentId) {
|
|
64
|
-
if (!this.publicClient)
|
|
65
|
-
throw new Error('Public client not available');
|
|
66
|
-
const entries = (await this.publicClient.readContract({
|
|
67
|
-
address: this.chainConfig.contracts.identityRegistry,
|
|
68
|
-
abi: IDENTITY_REGISTRY_ABI,
|
|
69
|
-
functionName: 'getAgentMetadata',
|
|
70
|
-
args: [BigInt(agentId)],
|
|
71
|
-
}));
|
|
72
|
-
const attrs = {};
|
|
73
|
-
for (const entry of entries) {
|
|
74
|
-
// value is bytes — convert to string
|
|
75
|
-
const hexStr = entry.value;
|
|
76
|
-
if (hexStr && hexStr !== '0x') {
|
|
77
|
-
attrs[entry.key] = hexToStringUTF8(hexStr);
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
attrs[entry.key] = '';
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
return attrs;
|
|
84
|
-
}
|
|
85
|
-
async hasActiveSubscription(address, agentId) {
|
|
86
|
-
if (!this.publicClient)
|
|
87
|
-
return false;
|
|
88
|
-
try {
|
|
89
|
-
return (await this.publicClient.readContract({
|
|
90
|
-
address: this.chainConfig.contracts.subscriptionManager,
|
|
91
|
-
abi: SUBSCRIPTION_MANAGER_ABI,
|
|
92
|
-
functionName: 'hasActiveSubscription',
|
|
93
|
-
args: [address, BigInt(agentId)],
|
|
94
|
-
}));
|
|
95
|
-
}
|
|
96
|
-
catch {
|
|
97
|
-
return false;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
// ── Helpers ────────────────────────────────────────────────────────────────
|
|
102
|
-
function hexToStringUTF8(hex) {
|
|
103
|
-
if (!hex.startsWith('0x'))
|
|
104
|
-
return hex;
|
|
105
|
-
const hexClean = hex.slice(2);
|
|
106
|
-
if (hexClean.length === 0)
|
|
107
|
-
return '';
|
|
108
|
-
try {
|
|
109
|
-
const bytes = new Uint8Array(hexClean.length / 2);
|
|
110
|
-
for (let i = 0; i < bytes.length; i++) {
|
|
111
|
-
bytes[i] = parseInt(hexClean.substring(i * 2, i * 2 + 2), 16);
|
|
112
|
-
}
|
|
113
|
-
return new TextDecoder().decode(bytes);
|
|
114
|
-
}
|
|
115
|
-
catch {
|
|
116
|
-
return hex;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
// ── Hook ───────────────────────────────────────────────────────────────────
|
|
120
|
-
export function useAgentRunner(config) {
|
|
121
|
-
const { agentId, chainConfig: chainConfigOverride, ipfsGateways } = config;
|
|
122
|
-
const publicClient = usePublicClient();
|
|
123
|
-
const { data: walletClient } = useWalletClient();
|
|
124
|
-
const [ctx, setCtx] = useState(null);
|
|
125
|
-
const [isLoading, setIsLoading] = useState(false);
|
|
126
|
-
const [error, setError] = useState(null);
|
|
127
|
-
const [refetchKey, setRefetchKey] = useState(0);
|
|
128
|
-
const runnerRef = useRef(null);
|
|
129
|
-
const mountedRef = useRef(true);
|
|
130
|
-
useEffect(() => {
|
|
131
|
-
mountedRef.current = true;
|
|
132
|
-
return () => {
|
|
133
|
-
mountedRef.current = false;
|
|
134
|
-
};
|
|
135
|
-
}, []);
|
|
136
|
-
useEffect(() => {
|
|
137
|
-
if (!publicClient || !walletClient) {
|
|
138
|
-
setError(new Error('Wallet not connected'));
|
|
139
|
-
return;
|
|
140
|
-
}
|
|
141
|
-
const chainConfig = chainConfigOverride ?? (publicClient.chain?.id ? KNOWN_CHAINS[publicClient.chain.id] : undefined);
|
|
142
|
-
if (!chainConfig) {
|
|
143
|
-
setError(new Error(`Chain ${publicClient.chain?.id} not supported`));
|
|
144
|
-
return;
|
|
145
|
-
}
|
|
146
|
-
// Create OnChainReader
|
|
147
|
-
const reader = new ViemOnChainReader(publicClient, chainConfig);
|
|
148
|
-
// WalletSigner from wagmi
|
|
149
|
-
const signer = {
|
|
150
|
-
async signMessage(message) {
|
|
151
|
-
if (!walletClient.account)
|
|
152
|
-
throw new Error('Wallet not connected');
|
|
153
|
-
return walletClient.signMessage({ account: walletClient.account, message });
|
|
154
|
-
},
|
|
155
|
-
async getAddress() {
|
|
156
|
-
if (!walletClient.account)
|
|
157
|
-
throw new Error('Wallet not connected');
|
|
158
|
-
return walletClient.account.address;
|
|
159
|
-
},
|
|
160
|
-
async getPrivateKey() {
|
|
161
|
-
// wagmi walletClient doesn't expose private key
|
|
162
|
-
// ECIES decryption requires private key — must be injected from wallet provider
|
|
163
|
-
throw new Error('Private key not available via wagmi. ' +
|
|
164
|
-
'Use window.ethereum.request({ method: "eth_private_key" }) or inject getPrivateKey via custom WalletSigner.');
|
|
165
|
-
},
|
|
166
|
-
};
|
|
167
|
-
// IPFS Fetcher
|
|
168
|
-
const ipfsFetcher = new IPFSFetcher({
|
|
169
|
-
fallbackGateways: ipfsGateways ?? chainConfig.ipfsGateways ?? [
|
|
170
|
-
'gateway.pinata.cloud',
|
|
171
|
-
'dweb.link',
|
|
172
|
-
'cf-ipfs.com',
|
|
173
|
-
],
|
|
174
|
-
});
|
|
175
|
-
runnerRef.current = new AgentRunner({
|
|
176
|
-
reader,
|
|
177
|
-
wallet: signer,
|
|
178
|
-
ipfsFetcher,
|
|
179
|
-
});
|
|
180
|
-
setIsLoading(true);
|
|
181
|
-
setError(null);
|
|
182
|
-
runnerRef.current
|
|
183
|
-
.useAgent(agentId)
|
|
184
|
-
.then(result => {
|
|
185
|
-
if (mountedRef.current) {
|
|
186
|
-
setCtx(result);
|
|
187
|
-
setIsLoading(false);
|
|
188
|
-
}
|
|
189
|
-
})
|
|
190
|
-
.catch(err => {
|
|
191
|
-
if (mountedRef.current) {
|
|
192
|
-
setError(err instanceof Error ? err : new Error(String(err)));
|
|
193
|
-
setIsLoading(false);
|
|
194
|
-
}
|
|
195
|
-
});
|
|
196
|
-
return () => {
|
|
197
|
-
mountedRef.current = false;
|
|
198
|
-
};
|
|
199
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
200
|
-
}, [agentId, publicClient?.chain?.id, publicClient, walletClient, refetchKey]);
|
|
201
|
-
const refetch = () => setRefetchKey(k => k + 1);
|
|
202
|
-
return { ctx, isLoading, error, refetch };
|
|
203
|
-
}
|
|
204
|
-
//# sourceMappingURL=useAgentRunner.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useAgentRunner.js","sourceRoot":"","sources":["../../src/react/useAgentRunner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import type { PublicClient, WalletClient, Address, Hash } from 'viem';
|
|
2
|
-
export interface AgentRegistryConfig {
|
|
3
|
-
/** IdentityRegistry contract address */
|
|
4
|
-
contractAddress: Address;
|
|
5
|
-
/** viem PublicClient for read calls */
|
|
6
|
-
publicClient: PublicClient;
|
|
7
|
-
/** viem WalletClient for write calls */
|
|
8
|
-
walletClient: WalletClient;
|
|
9
|
-
}
|
|
10
|
-
export declare class AgentRegistry {
|
|
11
|
-
private address;
|
|
12
|
-
private publicClient;
|
|
13
|
-
private walletClient;
|
|
14
|
-
constructor(config: AgentRegistryConfig);
|
|
15
|
-
/**
|
|
16
|
-
* Register a new Agent NFT on-chain.
|
|
17
|
-
*
|
|
18
|
-
* @param tokenURI IPFS URI of the public metadata (ipfs://...)
|
|
19
|
-
* @param metadata Key-value metadata (encryptedPayloadCid, eciesEncryptedKey, etc.)
|
|
20
|
-
* @param valueWei Optional: native currency to send with registration
|
|
21
|
-
* @returns { agentId: number, txHash: Hash }
|
|
22
|
-
*/
|
|
23
|
-
register(tokenURI: string, metadata: {
|
|
24
|
-
key: string;
|
|
25
|
-
value: string;
|
|
26
|
-
}[], valueWei?: bigint): Promise<{
|
|
27
|
-
agentId: number;
|
|
28
|
-
txHash: Hash;
|
|
29
|
-
}>;
|
|
30
|
-
/**
|
|
31
|
-
* Simple register — just a tokenURI, no extra metadata.
|
|
32
|
-
*/
|
|
33
|
-
registerSimple(tokenURI: string, valueWei?: bigint): Promise<{
|
|
34
|
-
agentId: number;
|
|
35
|
-
txHash: Hash;
|
|
36
|
-
}>;
|
|
37
|
-
/** Get all agent IDs owned by an address. */
|
|
38
|
-
getAgentsByOwner(owner: Address): Promise<number[]>;
|
|
39
|
-
/** Get the current total agent count. */
|
|
40
|
-
getCurrentAgentId(): Promise<number>;
|
|
41
|
-
/** Check if an agent exists. */
|
|
42
|
-
agentExists(agentId: number): Promise<boolean>;
|
|
43
|
-
/** Get the tokenURI for an agent. */
|
|
44
|
-
tokenURI(agentId: number): Promise<string>;
|
|
45
|
-
/** Get all metadata attributes for an agent as key-value pairs. */
|
|
46
|
-
getAttributes(agentId: number): Promise<Record<string, string>>;
|
|
47
|
-
/** Extract tokenId from the Transfer event in the receipt. */
|
|
48
|
-
private _parseAgentIdFromReceipt;
|
|
49
|
-
}
|
|
50
|
-
/** Extract IPFS CID from an ipfs:// URI. */
|
|
51
|
-
export declare function cidFromURI(uri: string): string;
|
|
52
|
-
//# sourceMappingURL=agent-registry.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent-registry.d.ts","sourceRoot":"","sources":["../../src/registry/agent-registry.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AA8ErE,MAAM,WAAW,mBAAmB;IAClC,wCAAwC;IACxC,eAAe,EAAE,OAAO,CAAA;IACxB,uCAAuC;IACvC,YAAY,EAAE,YAAY,CAAA;IAC1B,wCAAwC;IACxC,YAAY,EAAE,YAAY,CAAA;CAC3B;AAID,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,YAAY,CAAc;gBAEtB,MAAM,EAAE,mBAAmB;IAQvC;;;;;;;OAOG;IACG,QAAQ,CACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,EAC1C,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,IAAI,CAAA;KAAE,CAAC;IA0B7C;;OAEG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,IAAI,CAAA;KAAE,CAAC;IA2BrG,6CAA6C;IACvC,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAUzD,yCAAyC;IACnC,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAS1C,gCAAgC;IAC1B,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUpD,qCAAqC;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUhD,mEAAmE;IAC7D,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAgBrE,8DAA8D;IAC9D,OAAO,CAAC,wBAAwB;CAUjC;AAID,4CAA4C;AAC5C,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE9C"}
|
|
@@ -1,221 +0,0 @@
|
|
|
1
|
-
// ---------------------------------------------------------------------------
|
|
2
|
-
// @agentx/sdk — Agent Registry
|
|
3
|
-
// ---------------------------------------------------------------------------
|
|
4
|
-
// Wraps IdentityRegistry contract interactions (on-chain agent CRUD).
|
|
5
|
-
//
|
|
6
|
-
// Design:
|
|
7
|
-
// - Takes a viem PublicClient + WalletClient (chain-agnostic).
|
|
8
|
-
// - No wagmi dependency — works with any wallet provider that implements
|
|
9
|
-
// the WalletClient interface.
|
|
10
|
-
// - Methods match the existing ERC8004 IdentityRegistry ABI.
|
|
11
|
-
// ---------------------------------------------------------------------------
|
|
12
|
-
import { stringToHex, hexToString } from 'viem';
|
|
13
|
-
// ── Minimal ABI Fragments ──────────────────────────────────────────────────
|
|
14
|
-
const IDENTITY_REGISTRY_ABI = {
|
|
15
|
-
// Register
|
|
16
|
-
register: {
|
|
17
|
-
inputs: [],
|
|
18
|
-
name: 'register',
|
|
19
|
-
outputs: [{ name: 'agentId', type: 'uint256' }],
|
|
20
|
-
stateMutability: 'payable',
|
|
21
|
-
type: 'function',
|
|
22
|
-
},
|
|
23
|
-
registerWithTokenURI: {
|
|
24
|
-
inputs: [{ name: 'tokenURI', type: 'string' }],
|
|
25
|
-
name: 'register',
|
|
26
|
-
outputs: [{ name: 'agentId', type: 'uint256' }],
|
|
27
|
-
stateMutability: 'payable',
|
|
28
|
-
type: 'function',
|
|
29
|
-
},
|
|
30
|
-
registerWithMetadata: {
|
|
31
|
-
inputs: [
|
|
32
|
-
{ name: 'tokenURI', type: 'string' },
|
|
33
|
-
{
|
|
34
|
-
name: 'metadata',
|
|
35
|
-
type: 'tuple[]',
|
|
36
|
-
components: [
|
|
37
|
-
{ name: 'key', type: 'string' },
|
|
38
|
-
{ name: 'value', type: 'bytes' },
|
|
39
|
-
],
|
|
40
|
-
},
|
|
41
|
-
],
|
|
42
|
-
name: 'registerWithMetadata',
|
|
43
|
-
outputs: [{ name: 'agentId', type: 'uint256' }],
|
|
44
|
-
stateMutability: 'payable',
|
|
45
|
-
type: 'function',
|
|
46
|
-
},
|
|
47
|
-
// Queries
|
|
48
|
-
getAgentsByOwner: {
|
|
49
|
-
inputs: [{ name: 'owner', type: 'address' }],
|
|
50
|
-
name: 'getAgentsByOwner',
|
|
51
|
-
outputs: [{ name: '', type: 'uint256[]' }],
|
|
52
|
-
stateMutability: 'view',
|
|
53
|
-
type: 'function',
|
|
54
|
-
},
|
|
55
|
-
getCurrentAgentId: {
|
|
56
|
-
inputs: [],
|
|
57
|
-
name: 'getCurrentAgentId',
|
|
58
|
-
outputs: [{ name: '', type: 'uint256' }],
|
|
59
|
-
stateMutability: 'view',
|
|
60
|
-
type: 'function',
|
|
61
|
-
},
|
|
62
|
-
agentExists: {
|
|
63
|
-
inputs: [{ name: 'agentId', type: 'uint256' }],
|
|
64
|
-
name: 'agentExists',
|
|
65
|
-
outputs: [{ name: '', type: 'bool' }],
|
|
66
|
-
stateMutability: 'view',
|
|
67
|
-
type: 'function',
|
|
68
|
-
},
|
|
69
|
-
tokenURI: {
|
|
70
|
-
inputs: [{ name: 'tokenId', type: 'uint256' }],
|
|
71
|
-
name: 'tokenURI',
|
|
72
|
-
outputs: [{ name: '', type: 'string' }],
|
|
73
|
-
stateMutability: 'view',
|
|
74
|
-
type: 'function',
|
|
75
|
-
},
|
|
76
|
-
getAgentMetadata: {
|
|
77
|
-
inputs: [{ name: 'agentId', type: 'uint256' }],
|
|
78
|
-
name: 'getAgentMetadata',
|
|
79
|
-
outputs: [{ name: '', type: 'tuple[]', components: [{ name: 'key', type: 'string' }, { name: 'value', type: 'bytes' }] }],
|
|
80
|
-
stateMutability: 'view',
|
|
81
|
-
type: 'function',
|
|
82
|
-
},
|
|
83
|
-
};
|
|
84
|
-
// ── Agent Registry ─────────────────────────────────────────────────────────
|
|
85
|
-
export class AgentRegistry {
|
|
86
|
-
address;
|
|
87
|
-
publicClient;
|
|
88
|
-
walletClient;
|
|
89
|
-
constructor(config) {
|
|
90
|
-
this.address = config.contractAddress;
|
|
91
|
-
this.publicClient = config.publicClient;
|
|
92
|
-
this.walletClient = config.walletClient;
|
|
93
|
-
}
|
|
94
|
-
// ── Write: Register Agent ───────────────────────────────────────────────
|
|
95
|
-
/**
|
|
96
|
-
* Register a new Agent NFT on-chain.
|
|
97
|
-
*
|
|
98
|
-
* @param tokenURI IPFS URI of the public metadata (ipfs://...)
|
|
99
|
-
* @param metadata Key-value metadata (encryptedPayloadCid, eciesEncryptedKey, etc.)
|
|
100
|
-
* @param valueWei Optional: native currency to send with registration
|
|
101
|
-
* @returns { agentId: number, txHash: Hash }
|
|
102
|
-
*/
|
|
103
|
-
async register(tokenURI, metadata, valueWei) {
|
|
104
|
-
const [account] = await this.walletClient.getAddresses();
|
|
105
|
-
if (!account)
|
|
106
|
-
throw new Error('Wallet not connected');
|
|
107
|
-
const encodedMetadata = metadata.map(m => ({
|
|
108
|
-
key: m.key,
|
|
109
|
-
value: stringToHex(m.value),
|
|
110
|
-
}));
|
|
111
|
-
const { request } = await this.publicClient.simulateContract({
|
|
112
|
-
account,
|
|
113
|
-
address: this.address,
|
|
114
|
-
abi: [IDENTITY_REGISTRY_ABI.registerWithMetadata],
|
|
115
|
-
functionName: 'registerWithMetadata',
|
|
116
|
-
args: [tokenURI, encodedMetadata],
|
|
117
|
-
value: valueWei,
|
|
118
|
-
});
|
|
119
|
-
const hash = await this.walletClient.writeContract(request);
|
|
120
|
-
const receipt = await this.publicClient.waitForTransactionReceipt({ hash });
|
|
121
|
-
// Parse agentId from Transfer event (ERC-721)
|
|
122
|
-
const agentId = this._parseAgentIdFromReceipt(receipt);
|
|
123
|
-
return { agentId, txHash: hash };
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Simple register — just a tokenURI, no extra metadata.
|
|
127
|
-
*/
|
|
128
|
-
async registerSimple(tokenURI, valueWei) {
|
|
129
|
-
const [account] = await this.walletClient.getAddresses();
|
|
130
|
-
if (!account)
|
|
131
|
-
throw new Error('Wallet not connected');
|
|
132
|
-
const abi = tokenURI
|
|
133
|
-
? [IDENTITY_REGISTRY_ABI.registerWithTokenURI]
|
|
134
|
-
: [IDENTITY_REGISTRY_ABI.register];
|
|
135
|
-
const args = tokenURI ? [tokenURI] : [];
|
|
136
|
-
const { request } = await this.publicClient.simulateContract({
|
|
137
|
-
account,
|
|
138
|
-
address: this.address,
|
|
139
|
-
abi: abi,
|
|
140
|
-
functionName: 'register',
|
|
141
|
-
args: args,
|
|
142
|
-
value: valueWei,
|
|
143
|
-
});
|
|
144
|
-
const hash = await this.walletClient.writeContract(request);
|
|
145
|
-
const receipt = await this.publicClient.waitForTransactionReceipt({ hash });
|
|
146
|
-
const agentId = this._parseAgentIdFromReceipt(receipt);
|
|
147
|
-
return { agentId, txHash: hash };
|
|
148
|
-
}
|
|
149
|
-
// ── Read: Query ──────────────────────────────────────────────────────────
|
|
150
|
-
/** Get all agent IDs owned by an address. */
|
|
151
|
-
async getAgentsByOwner(owner) {
|
|
152
|
-
const result = await this.publicClient.readContract({
|
|
153
|
-
address: this.address,
|
|
154
|
-
abi: [IDENTITY_REGISTRY_ABI.getAgentsByOwner],
|
|
155
|
-
functionName: 'getAgentsByOwner',
|
|
156
|
-
args: [owner],
|
|
157
|
-
});
|
|
158
|
-
return result.map(Number);
|
|
159
|
-
}
|
|
160
|
-
/** Get the current total agent count. */
|
|
161
|
-
async getCurrentAgentId() {
|
|
162
|
-
const result = await this.publicClient.readContract({
|
|
163
|
-
address: this.address,
|
|
164
|
-
abi: [IDENTITY_REGISTRY_ABI.getCurrentAgentId],
|
|
165
|
-
functionName: 'getCurrentAgentId',
|
|
166
|
-
});
|
|
167
|
-
return Number(result);
|
|
168
|
-
}
|
|
169
|
-
/** Check if an agent exists. */
|
|
170
|
-
async agentExists(agentId) {
|
|
171
|
-
const result = await this.publicClient.readContract({
|
|
172
|
-
address: this.address,
|
|
173
|
-
abi: [IDENTITY_REGISTRY_ABI.agentExists],
|
|
174
|
-
functionName: 'agentExists',
|
|
175
|
-
args: [BigInt(agentId)],
|
|
176
|
-
});
|
|
177
|
-
return result;
|
|
178
|
-
}
|
|
179
|
-
/** Get the tokenURI for an agent. */
|
|
180
|
-
async tokenURI(agentId) {
|
|
181
|
-
const result = await this.publicClient.readContract({
|
|
182
|
-
address: this.address,
|
|
183
|
-
abi: [IDENTITY_REGISTRY_ABI.tokenURI],
|
|
184
|
-
functionName: 'tokenURI',
|
|
185
|
-
args: [BigInt(agentId)],
|
|
186
|
-
});
|
|
187
|
-
return result;
|
|
188
|
-
}
|
|
189
|
-
/** Get all metadata attributes for an agent as key-value pairs. */
|
|
190
|
-
async getAttributes(agentId) {
|
|
191
|
-
const result = await this.publicClient.readContract({
|
|
192
|
-
address: this.address,
|
|
193
|
-
abi: [IDENTITY_REGISTRY_ABI.getAgentMetadata],
|
|
194
|
-
functionName: 'getAgentMetadata',
|
|
195
|
-
args: [BigInt(agentId)],
|
|
196
|
-
});
|
|
197
|
-
const attrs = {};
|
|
198
|
-
for (const item of result) {
|
|
199
|
-
attrs[item.key] = hexToString(item.value);
|
|
200
|
-
}
|
|
201
|
-
return attrs;
|
|
202
|
-
}
|
|
203
|
-
// ── Helpers ──────────────────────────────────────────────────────────────
|
|
204
|
-
/** Extract tokenId from the Transfer event in the receipt. */
|
|
205
|
-
_parseAgentIdFromReceipt(receipt) {
|
|
206
|
-
for (const log of receipt.logs) {
|
|
207
|
-
// ERC-721 Transfer event: keccak("Transfer(address,address,uint256)")
|
|
208
|
-
const transferTopic = '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef';
|
|
209
|
-
if (log.topics[0] === transferTopic && log.topics.length >= 4) {
|
|
210
|
-
return Number(BigInt(log.topics[3]));
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
throw new Error('Could not parse agentId from Transfer event in receipt');
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
// ── Utility ─────────────────────────────────────────────────────────────────
|
|
217
|
-
/** Extract IPFS CID from an ipfs:// URI. */
|
|
218
|
-
export function cidFromURI(uri) {
|
|
219
|
-
return uri.replace(/^ipfs:\/\//, '');
|
|
220
|
-
}
|
|
221
|
-
//# sourceMappingURL=agent-registry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent-registry.js","sourceRoot":"","sources":["../../src/registry/agent-registry.ts"],"names":[],"mappings":"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"}
|
package/dist/registry/index.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export { AgentRegistry, cidFromURI } from './agent-registry';
|
|
2
|
-
export type { AgentRegistryConfig } from './agent-registry';
|
|
3
|
-
export { IPFSFetcher, defaultIPFSFetcher } from './ipfs-fetcher';
|
|
4
|
-
export type { IPFSFetcherConfig } from './ipfs-fetcher';
|
|
5
|
-
export type { RegisteredAgent, AgentSearchQuery, AgentSearchResult, OnChainAgentMetadata, } from '../core/types';
|
|
6
|
-
export declare const REGISTRY_VERSION = "0.1.0";
|
|
7
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/registry/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC5D,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAE3D,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAChE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAGvD,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,eAAe,CAAA;AAEtB,eAAO,MAAM,gBAAgB,UAAU,CAAA"}
|
package/dist/registry/index.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
// @agentx/sdk — Registry module
|
|
2
|
-
// Agent registration, query, and IPFS fetching.
|
|
3
|
-
export { AgentRegistry, cidFromURI } from './agent-registry';
|
|
4
|
-
export { IPFSFetcher, defaultIPFSFetcher } from './ipfs-fetcher';
|
|
5
|
-
export const REGISTRY_VERSION = '0.1.0';
|
|
6
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/registry/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,gDAAgD;AAEhD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAG5D,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAWhE,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAA"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import type { EncryptedPayload } from '../core/types';
|
|
2
|
-
export interface IPFSFetcherConfig {
|
|
3
|
-
/** Primary IPFS gateway (default: ipfs.io) */
|
|
4
|
-
gateway?: string;
|
|
5
|
-
/** Fallback gateways in order of preference */
|
|
6
|
-
fallbackGateways?: string[];
|
|
7
|
-
/** Request timeout in ms (default: 10_000) */
|
|
8
|
-
timeoutMs?: number;
|
|
9
|
-
/** Max cached entries (LRU-like eviction, default: 200) */
|
|
10
|
-
maxCache?: number;
|
|
11
|
-
}
|
|
12
|
-
export declare class IPFSFetcher {
|
|
13
|
-
private gateway;
|
|
14
|
-
private fallbackGateways;
|
|
15
|
-
private timeoutMs;
|
|
16
|
-
private cache;
|
|
17
|
-
private maxCache;
|
|
18
|
-
private pending;
|
|
19
|
-
private failed;
|
|
20
|
-
constructor(config?: IPFSFetcherConfig);
|
|
21
|
-
/** Fetch JSON from a single IPFS CID. */
|
|
22
|
-
fetchJSON<T = unknown>(cid: string): Promise<T>;
|
|
23
|
-
/** Fetch encrypted agent payload (validates algorithm). */
|
|
24
|
-
fetchEncryptedPayload(cid: string): Promise<EncryptedPayload>;
|
|
25
|
-
/** Batch fetch multiple CIDs with concurrency control. */
|
|
26
|
-
fetchBatch<T = unknown>(cids: string[], concurrency?: number): Promise<Map<string, T>>;
|
|
27
|
-
/** Check if a string looks like a valid IPFS CID. */
|
|
28
|
-
isValidCID(cid: string): boolean;
|
|
29
|
-
/** Clear cache (optionally for a specific CID). */
|
|
30
|
-
clearCache(cid?: string): void;
|
|
31
|
-
/** Number of cached entries. */
|
|
32
|
-
get cacheSize(): number;
|
|
33
|
-
private _doFetch;
|
|
34
|
-
private _fetchFrom;
|
|
35
|
-
private _cacheSet;
|
|
36
|
-
}
|
|
37
|
-
/** Singleton-friendly default instance. */
|
|
38
|
-
export declare const defaultIPFSFetcher: IPFSFetcher;
|
|
39
|
-
//# sourceMappingURL=ipfs-fetcher.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ipfs-fetcher.d.ts","sourceRoot":"","sources":["../../src/registry/ipfs-fetcher.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAIrD,MAAM,WAAW,iBAAiB;IAChC,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,+CAA+C;IAC/C,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AASD,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,gBAAgB,CAAU;IAClC,OAAO,CAAC,SAAS,CAAQ;IAEzB,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,OAAO,CAAsC;IACrD,OAAO,CAAC,MAAM,CAAoB;gBAEtB,MAAM,GAAE,iBAAsB;IAa1C,yCAAyC;IACnC,SAAS,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAwBrD,2DAA2D;IACrD,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAQnE,0DAA0D;IACpD,UAAU,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,WAAW,SAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAmBvF,qDAAqD;IACrD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIhC,mDAAmD;IACnD,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAS9B,gCAAgC;IAChC,IAAI,SAAS,IAAI,MAAM,CAEtB;YAIa,QAAQ;YAsBR,UAAU;IAUxB,OAAO,CAAC,SAAS;CAUlB;AAED,2CAA2C;AAC3C,eAAO,MAAM,kBAAkB,aAAoB,CAAA"}
|