@jinn-network/client 0.1.0-canary.adfd078d
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/LICENSE +21 -0
- package/README.md +162 -0
- package/deployments/deployment-phase1a-l2-baseSepolia-fast.json +32 -0
- package/deployments/deployment-phase1a-token-baseSepolia-fast.json +27 -0
- package/deployments/deployment-phase1b-mech-baseSepolia-fast.json +26 -0
- package/deployments/deployment-stolas-l2-baseSepolia-fast.json +35 -0
- package/dist/adapters/adapter.d.ts +11 -0
- package/dist/adapters/adapter.js +2 -0
- package/dist/adapters/adapter.js.map +1 -0
- package/dist/adapters/local/adapter.d.ts +20 -0
- package/dist/adapters/local/adapter.js +146 -0
- package/dist/adapters/local/adapter.js.map +1 -0
- package/dist/adapters/mech/adapter.d.ts +29 -0
- package/dist/adapters/mech/adapter.js +332 -0
- package/dist/adapters/mech/adapter.js.map +1 -0
- package/dist/adapters/mech/claim-policy.d.ts +40 -0
- package/dist/adapters/mech/claim-policy.js +104 -0
- package/dist/adapters/mech/claim-policy.js.map +1 -0
- package/dist/adapters/mech/contracts.d.ts +44 -0
- package/dist/adapters/mech/contracts.js +323 -0
- package/dist/adapters/mech/contracts.js.map +1 -0
- package/dist/adapters/mech/ipfs.d.ts +43 -0
- package/dist/adapters/mech/ipfs.js +142 -0
- package/dist/adapters/mech/ipfs.js.map +1 -0
- package/dist/adapters/mech/safe.d.ts +15 -0
- package/dist/adapters/mech/safe.js +113 -0
- package/dist/adapters/mech/safe.js.map +1 -0
- package/dist/adapters/mech/types.d.ts +561 -0
- package/dist/adapters/mech/types.js +340 -0
- package/dist/adapters/mech/types.js.map +1 -0
- package/dist/api/balance-build.d.ts +22 -0
- package/dist/api/balance-build.js +37 -0
- package/dist/api/balance-build.js.map +1 -0
- package/dist/api/fleet-build.d.ts +62 -0
- package/dist/api/fleet-build.js +91 -0
- package/dist/api/fleet-build.js.map +1 -0
- package/dist/api/gather-status.d.ts +20 -0
- package/dist/api/gather-status.js +137 -0
- package/dist/api/gather-status.js.map +1 -0
- package/dist/api/history-build.d.ts +32 -0
- package/dist/api/history-build.js +48 -0
- package/dist/api/history-build.js.map +1 -0
- package/dist/api/peers.d.ts +27 -0
- package/dist/api/peers.js +94 -0
- package/dist/api/peers.js.map +1 -0
- package/dist/api/rewards-build.d.ts +20 -0
- package/dist/api/rewards-build.js +42 -0
- package/dist/api/rewards-build.js.map +1 -0
- package/dist/api/server.d.ts +34 -0
- package/dist/api/server.js +130 -0
- package/dist/api/server.js.map +1 -0
- package/dist/api/status-build.d.ts +92 -0
- package/dist/api/status-build.js +175 -0
- package/dist/api/status-build.js.map +1 -0
- package/dist/api/status-rollup-build.d.ts +36 -0
- package/dist/api/status-rollup-build.js +69 -0
- package/dist/api/status-rollup-build.js.map +1 -0
- package/dist/auth/erc8128.d.ts +43 -0
- package/dist/auth/erc8128.js +88 -0
- package/dist/auth/erc8128.js.map +1 -0
- package/dist/bin/jinn.d.ts +11 -0
- package/dist/bin/jinn.js +20 -0
- package/dist/bin/jinn.js.map +1 -0
- package/dist/build-meta.json +3 -0
- package/dist/chain-read-errors.d.ts +9 -0
- package/dist/chain-read-errors.js +43 -0
- package/dist/chain-read-errors.js.map +1 -0
- package/dist/cli/action.d.ts +26 -0
- package/dist/cli/action.js +56 -0
- package/dist/cli/action.js.map +1 -0
- package/dist/cli/command.d.ts +62 -0
- package/dist/cli/command.js +29 -0
- package/dist/cli/command.js.map +1 -0
- package/dist/cli/commands/balance.d.ts +3 -0
- package/dist/cli/commands/balance.js +46 -0
- package/dist/cli/commands/balance.js.map +1 -0
- package/dist/cli/commands/bootstrap.d.ts +3 -0
- package/dist/cli/commands/bootstrap.js +165 -0
- package/dist/cli/commands/bootstrap.js.map +1 -0
- package/dist/cli/commands/claim-rewards.d.ts +3 -0
- package/dist/cli/commands/claim-rewards.js +121 -0
- package/dist/cli/commands/claim-rewards.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +3 -0
- package/dist/cli/commands/doctor.js +151 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/fleet-scale.d.ts +3 -0
- package/dist/cli/commands/fleet-scale.js +449 -0
- package/dist/cli/commands/fleet-scale.js.map +1 -0
- package/dist/cli/commands/fleet.d.ts +3 -0
- package/dist/cli/commands/fleet.js +45 -0
- package/dist/cli/commands/fleet.js.map +1 -0
- package/dist/cli/commands/fund-requirements.d.ts +3 -0
- package/dist/cli/commands/fund-requirements.js +139 -0
- package/dist/cli/commands/fund-requirements.js.map +1 -0
- package/dist/cli/commands/history.d.ts +3 -0
- package/dist/cli/commands/history.js +61 -0
- package/dist/cli/commands/history.js.map +1 -0
- package/dist/cli/commands/init.d.ts +3 -0
- package/dist/cli/commands/init.js +91 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/keys-backup.d.ts +3 -0
- package/dist/cli/commands/keys-backup.js +107 -0
- package/dist/cli/commands/keys-backup.js.map +1 -0
- package/dist/cli/commands/logs.d.ts +3 -0
- package/dist/cli/commands/logs.js +69 -0
- package/dist/cli/commands/logs.js.map +1 -0
- package/dist/cli/commands/rewards.d.ts +3 -0
- package/dist/cli/commands/rewards.js +54 -0
- package/dist/cli/commands/rewards.js.map +1 -0
- package/dist/cli/commands/run.d.ts +3 -0
- package/dist/cli/commands/run.js +96 -0
- package/dist/cli/commands/run.js.map +1 -0
- package/dist/cli/commands/status.d.ts +3 -0
- package/dist/cli/commands/status.js +54 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/stop.d.ts +3 -0
- package/dist/cli/commands/stop.js +82 -0
- package/dist/cli/commands/stop.js.map +1 -0
- package/dist/cli/commands/submit-intent.d.ts +3 -0
- package/dist/cli/commands/submit-intent.js +169 -0
- package/dist/cli/commands/submit-intent.js.map +1 -0
- package/dist/cli/commands/version.d.ts +3 -0
- package/dist/cli/commands/version.js +114 -0
- package/dist/cli/commands/version.js.map +1 -0
- package/dist/cli/commands/withdraw.d.ts +3 -0
- package/dist/cli/commands/withdraw.js +181 -0
- package/dist/cli/commands/withdraw.js.map +1 -0
- package/dist/cli/deployment-digest.d.ts +10 -0
- package/dist/cli/deployment-digest.js +25 -0
- package/dist/cli/deployment-digest.js.map +1 -0
- package/dist/cli/execution-context.d.ts +50 -0
- package/dist/cli/execution-context.js +154 -0
- package/dist/cli/execution-context.js.map +1 -0
- package/dist/cli/help.d.ts +3 -0
- package/dist/cli/help.js +37 -0
- package/dist/cli/help.js.map +1 -0
- package/dist/cli/index.d.ts +17 -0
- package/dist/cli/index.js +132 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/introspection-context.d.ts +10 -0
- package/dist/cli/introspection-context.js +60 -0
- package/dist/cli/introspection-context.js.map +1 -0
- package/dist/cli/output.d.ts +36 -0
- package/dist/cli/output.js +35 -0
- package/dist/cli/output.js.map +1 -0
- package/dist/cli/password.d.ts +12 -0
- package/dist/cli/password.js +51 -0
- package/dist/cli/password.js.map +1 -0
- package/dist/config.d.ts +174 -0
- package/dist/config.js +252 -0
- package/dist/config.js.map +1 -0
- package/dist/daemon/creator.d.ts +24 -0
- package/dist/daemon/creator.js +80 -0
- package/dist/daemon/creator.js.map +1 -0
- package/dist/daemon/daemon.d.ts +60 -0
- package/dist/daemon/daemon.js +158 -0
- package/dist/daemon/daemon.js.map +1 -0
- package/dist/daemon/delivery-watcher.d.ts +10 -0
- package/dist/daemon/delivery-watcher.js +37 -0
- package/dist/daemon/delivery-watcher.js.map +1 -0
- package/dist/daemon/restorer.d.ts +19 -0
- package/dist/daemon/restorer.js +82 -0
- package/dist/daemon/restorer.js.map +1 -0
- package/dist/daemon/reward-claim-loop.d.ts +38 -0
- package/dist/daemon/reward-claim-loop.js +48 -0
- package/dist/daemon/reward-claim-loop.js.map +1 -0
- package/dist/discovery/registry.d.ts +43 -0
- package/dist/discovery/registry.js +104 -0
- package/dist/discovery/registry.js.map +1 -0
- package/dist/discovery/subgraph.d.ts +37 -0
- package/dist/discovery/subgraph.js +87 -0
- package/dist/discovery/subgraph.js.map +1 -0
- package/dist/earning/bootstrap.d.ts +79 -0
- package/dist/earning/bootstrap.js +989 -0
- package/dist/earning/bootstrap.js.map +1 -0
- package/dist/earning/contracts.d.ts +431 -0
- package/dist/earning/contracts.js +518 -0
- package/dist/earning/contracts.js.map +1 -0
- package/dist/earning/evidence-simhash.d.ts +59 -0
- package/dist/earning/evidence-simhash.js +87 -0
- package/dist/earning/evidence-simhash.js.map +1 -0
- package/dist/earning/fleet-display-index.d.ts +8 -0
- package/dist/earning/fleet-display-index.js +12 -0
- package/dist/earning/fleet-display-index.js.map +1 -0
- package/dist/earning/fleet-retire.d.ts +28 -0
- package/dist/earning/fleet-retire.js +75 -0
- package/dist/earning/fleet-retire.js.map +1 -0
- package/dist/earning/jinn-rewards.d.ts +62 -0
- package/dist/earning/jinn-rewards.js +81 -0
- package/dist/earning/jinn-rewards.js.map +1 -0
- package/dist/earning/next-service-index.d.ts +4 -0
- package/dist/earning/next-service-index.js +7 -0
- package/dist/earning/next-service-index.js.map +1 -0
- package/dist/earning/orphan-sweep.d.ts +33 -0
- package/dist/earning/orphan-sweep.js +157 -0
- package/dist/earning/orphan-sweep.js.map +1 -0
- package/dist/earning/reconcile.d.ts +37 -0
- package/dist/earning/reconcile.js +216 -0
- package/dist/earning/reconcile.js.map +1 -0
- package/dist/earning/safe-adapter.d.ts +70 -0
- package/dist/earning/safe-adapter.js +228 -0
- package/dist/earning/safe-adapter.js.map +1 -0
- package/dist/earning/stolas-claim.d.ts +47 -0
- package/dist/earning/stolas-claim.js +115 -0
- package/dist/earning/stolas-claim.js.map +1 -0
- package/dist/earning/store.d.ts +36 -0
- package/dist/earning/store.js +156 -0
- package/dist/earning/store.js.map +1 -0
- package/dist/earning/types.d.ts +123 -0
- package/dist/earning/types.js +64 -0
- package/dist/earning/types.js.map +1 -0
- package/dist/earning/viem-clients.d.ts +9 -0
- package/dist/earning/viem-clients.js +22 -0
- package/dist/earning/viem-clients.js.map +1 -0
- package/dist/earning/wallet.d.ts +20 -0
- package/dist/earning/wallet.js +103 -0
- package/dist/earning/wallet.js.map +1 -0
- package/dist/errors/envelope.d.ts +41 -0
- package/dist/errors/envelope.js +48 -0
- package/dist/errors/envelope.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/main.d.ts +32 -0
- package/dist/main.js +281 -0
- package/dist/main.js.map +1 -0
- package/dist/mcp/server.d.ts +14 -0
- package/dist/mcp/server.js +205 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/operator-errors.d.ts +16 -0
- package/dist/operator-errors.js +88 -0
- package/dist/operator-errors.js.map +1 -0
- package/dist/preflight/claude-binary.d.ts +19 -0
- package/dist/preflight/claude-binary.js +44 -0
- package/dist/preflight/claude-binary.js.map +1 -0
- package/dist/preflight/claude-invocation-envelope.d.ts +11 -0
- package/dist/preflight/claude-invocation-envelope.js +67 -0
- package/dist/preflight/claude-invocation-envelope.js.map +1 -0
- package/dist/runner/claude.d.ts +15 -0
- package/dist/runner/claude.js +193 -0
- package/dist/runner/claude.js.map +1 -0
- package/dist/runner/runner.d.ts +11 -0
- package/dist/runner/runner.js +2 -0
- package/dist/runner/runner.js.map +1 -0
- package/dist/runner/simple.d.ts +8 -0
- package/dist/runner/simple.js +11 -0
- package/dist/runner/simple.js.map +1 -0
- package/dist/store/store.d.ts +74 -0
- package/dist/store/store.js +173 -0
- package/dist/store/store.js.map +1 -0
- package/dist/tx-retry.d.ts +55 -0
- package/dist/tx-retry.js +214 -0
- package/dist/tx-retry.js.map +1 -0
- package/dist/types/desired-state.d.ts +41 -0
- package/dist/types/desired-state.js +16 -0
- package/dist/types/desired-state.js.map +1 -0
- package/dist/types/errors.d.ts +8 -0
- package/dist/types/errors.js +17 -0
- package/dist/types/errors.js.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/withdraw/args.d.ts +29 -0
- package/dist/withdraw/args.js +198 -0
- package/dist/withdraw/args.js.map +1 -0
- package/dist/withdraw/run-withdraw-plan.d.ts +21 -0
- package/dist/withdraw/run-withdraw-plan.js +257 -0
- package/dist/withdraw/run-withdraw-plan.js.map +1 -0
- package/dist/x402/acquire.d.ts +6 -0
- package/dist/x402/acquire.js +32 -0
- package/dist/x402/acquire.js.map +1 -0
- package/dist/x402/facilitator.d.ts +11 -0
- package/dist/x402/facilitator.js +52 -0
- package/dist/x402/facilitator.js.map +1 -0
- package/dist/x402/handler.d.ts +15 -0
- package/dist/x402/handler.js +40 -0
- package/dist/x402/handler.js.map +1 -0
- package/package.json +72 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ERC-8004 Identity Registry integration for artifact discovery.
|
|
3
|
+
*
|
|
4
|
+
* Registers artifacts and nodes on-chain so other operators can discover
|
|
5
|
+
* them via subgraph queries. Ported from protocol/src/discovery/registry.ts.
|
|
6
|
+
*/
|
|
7
|
+
export interface RegistryConfig {
|
|
8
|
+
/** CAIP-2 chain identifier, e.g. 'eip155:8453' */
|
|
9
|
+
chainId: string;
|
|
10
|
+
/** EVM address of the 8004 Identity Registry contract */
|
|
11
|
+
contractAddress: string;
|
|
12
|
+
/** Hex private key for signing transactions */
|
|
13
|
+
privateKey: string;
|
|
14
|
+
/** Optional RPC URL override */
|
|
15
|
+
rpcUrl?: string;
|
|
16
|
+
}
|
|
17
|
+
export declare class Registry8004 {
|
|
18
|
+
private readonly walletClient;
|
|
19
|
+
private readonly publicClient;
|
|
20
|
+
private readonly account;
|
|
21
|
+
private readonly chain;
|
|
22
|
+
private readonly contractAddress;
|
|
23
|
+
constructor(config: RegistryConfig);
|
|
24
|
+
private _register;
|
|
25
|
+
/**
|
|
26
|
+
* Register this node on the 8004 Identity Registry.
|
|
27
|
+
*/
|
|
28
|
+
registerNode(nodeInfo: {
|
|
29
|
+
endpoint: string;
|
|
30
|
+
ownerAddress: string;
|
|
31
|
+
price?: string;
|
|
32
|
+
}): Promise<bigint>;
|
|
33
|
+
/**
|
|
34
|
+
* Register an artifact on the 8004 Identity Registry.
|
|
35
|
+
*/
|
|
36
|
+
registerArtifact(artifact: {
|
|
37
|
+
id: string;
|
|
38
|
+
title: string;
|
|
39
|
+
tags: string[];
|
|
40
|
+
outcome: string;
|
|
41
|
+
endpoint: string;
|
|
42
|
+
}): Promise<bigint>;
|
|
43
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ERC-8004 Identity Registry integration for artifact discovery.
|
|
3
|
+
*
|
|
4
|
+
* Registers artifacts and nodes on-chain so other operators can discover
|
|
5
|
+
* them via subgraph queries. Ported from protocol/src/discovery/registry.ts.
|
|
6
|
+
*/
|
|
7
|
+
import { createPublicClient, createWalletClient, http } from 'viem';
|
|
8
|
+
import { privateKeyToAccount } from 'viem/accounts';
|
|
9
|
+
const IDENTITY_REGISTRY_ABI = [
|
|
10
|
+
{
|
|
11
|
+
name: 'register',
|
|
12
|
+
type: 'function',
|
|
13
|
+
inputs: [
|
|
14
|
+
{ name: 'agentURI', type: 'string' },
|
|
15
|
+
{
|
|
16
|
+
name: 'metadata',
|
|
17
|
+
type: 'tuple[]',
|
|
18
|
+
components: [
|
|
19
|
+
{ name: 'metadataKey', type: 'string' },
|
|
20
|
+
{ name: 'metadataValue', type: 'bytes' },
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
outputs: [{ name: 'agentId', type: 'uint256' }],
|
|
25
|
+
stateMutability: 'nonpayable',
|
|
26
|
+
},
|
|
27
|
+
];
|
|
28
|
+
const DEFAULT_RPC_URLS = {
|
|
29
|
+
'eip155:8453': 'https://mainnet.base.org',
|
|
30
|
+
'eip155:84532': 'https://sepolia.base.org',
|
|
31
|
+
};
|
|
32
|
+
function encodeMetadataValue(value) {
|
|
33
|
+
return ('0x' + Buffer.from(value).toString('hex'));
|
|
34
|
+
}
|
|
35
|
+
function getChainId(caip2) {
|
|
36
|
+
const parts = caip2.split(':');
|
|
37
|
+
if (parts.length !== 2 || parts[0] !== 'eip155') {
|
|
38
|
+
throw new Error(`Unsupported CAIP-2 format: ${caip2}`);
|
|
39
|
+
}
|
|
40
|
+
return parseInt(parts[1], 10);
|
|
41
|
+
}
|
|
42
|
+
export class Registry8004 {
|
|
43
|
+
walletClient;
|
|
44
|
+
publicClient;
|
|
45
|
+
account;
|
|
46
|
+
chain;
|
|
47
|
+
contractAddress;
|
|
48
|
+
constructor(config) {
|
|
49
|
+
const rpcUrl = config.rpcUrl ?? DEFAULT_RPC_URLS[config.chainId];
|
|
50
|
+
if (!rpcUrl)
|
|
51
|
+
throw new Error(`No RPC URL for chain ${config.chainId}`);
|
|
52
|
+
const chainId = getChainId(config.chainId);
|
|
53
|
+
this.chain = {
|
|
54
|
+
id: chainId,
|
|
55
|
+
name: `chain-${chainId}`,
|
|
56
|
+
nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
|
|
57
|
+
rpcUrls: { default: { http: [rpcUrl] } },
|
|
58
|
+
};
|
|
59
|
+
const pk = (config.privateKey.startsWith('0x') ? config.privateKey : `0x${config.privateKey}`);
|
|
60
|
+
this.account = privateKeyToAccount(pk);
|
|
61
|
+
this.publicClient = createPublicClient({ chain: this.chain, transport: http(rpcUrl) });
|
|
62
|
+
this.walletClient = createWalletClient({ account: this.account, chain: this.chain, transport: http(rpcUrl) });
|
|
63
|
+
this.contractAddress = config.contractAddress;
|
|
64
|
+
}
|
|
65
|
+
async _register(uri, metadata) {
|
|
66
|
+
const hash = await this.walletClient.writeContract({
|
|
67
|
+
address: this.contractAddress,
|
|
68
|
+
abi: IDENTITY_REGISTRY_ABI,
|
|
69
|
+
functionName: 'register',
|
|
70
|
+
args: [uri, metadata],
|
|
71
|
+
account: this.account,
|
|
72
|
+
chain: this.chain,
|
|
73
|
+
});
|
|
74
|
+
const receipt = await this.publicClient.waitForTransactionReceipt({ hash });
|
|
75
|
+
return BigInt(receipt.blockNumber);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Register this node on the 8004 Identity Registry.
|
|
79
|
+
*/
|
|
80
|
+
async registerNode(nodeInfo) {
|
|
81
|
+
const metadata = [
|
|
82
|
+
{ metadataKey: 'documentType', metadataValue: encodeMetadataValue('adw:AgentCard') },
|
|
83
|
+
{ metadataKey: 'endpoint', metadataValue: encodeMetadataValue(nodeInfo.endpoint) },
|
|
84
|
+
{ metadataKey: 'ownerAddress', metadataValue: encodeMetadataValue(nodeInfo.ownerAddress) },
|
|
85
|
+
{ metadataKey: 'price', metadataValue: encodeMetadataValue(nodeInfo.price ?? '$0') },
|
|
86
|
+
];
|
|
87
|
+
return this._register(nodeInfo.endpoint, metadata);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Register an artifact on the 8004 Identity Registry.
|
|
91
|
+
*/
|
|
92
|
+
async registerArtifact(artifact) {
|
|
93
|
+
const metadata = [
|
|
94
|
+
{ metadataKey: 'documentType', metadataValue: encodeMetadataValue('adw:Artifact') },
|
|
95
|
+
{ metadataKey: 'artifactId', metadataValue: encodeMetadataValue(artifact.id) },
|
|
96
|
+
{ metadataKey: 'title', metadataValue: encodeMetadataValue(artifact.title) },
|
|
97
|
+
{ metadataKey: 'outcome', metadataValue: encodeMetadataValue(artifact.outcome) },
|
|
98
|
+
{ metadataKey: 'tags', metadataValue: encodeMetadataValue(JSON.stringify(artifact.tags)) },
|
|
99
|
+
{ metadataKey: 'endpoint', metadataValue: encodeMetadataValue(artifact.endpoint) },
|
|
100
|
+
];
|
|
101
|
+
return this._register(`artifact:${artifact.id}`, metadata);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/discovery/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ERC-8004 Subgraph client for artifact and node discovery.
|
|
3
|
+
*
|
|
4
|
+
* Queries The Graph subgraph to discover artifacts and nodes registered
|
|
5
|
+
* on the 8004 Identity Registry. Ported from protocol/src/discovery/subgraph.ts.
|
|
6
|
+
*
|
|
7
|
+
* NOTE: The GraphQL schema depends on the deployed 8004 subgraph.
|
|
8
|
+
* Field names may need adjustment against the live subgraph.
|
|
9
|
+
*/
|
|
10
|
+
export interface SubgraphConfig {
|
|
11
|
+
url: string;
|
|
12
|
+
}
|
|
13
|
+
export interface SubgraphResult {
|
|
14
|
+
id: string;
|
|
15
|
+
agentURI: string;
|
|
16
|
+
owner: string;
|
|
17
|
+
metadata: Array<{
|
|
18
|
+
key: string;
|
|
19
|
+
value: string;
|
|
20
|
+
}>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Parse a metadata value from a subgraph result by key.
|
|
24
|
+
*/
|
|
25
|
+
export declare function getMetadataValue(result: SubgraphResult, key: string): string | undefined;
|
|
26
|
+
/**
|
|
27
|
+
* Query the 8004 subgraph for registered artifact entities.
|
|
28
|
+
*/
|
|
29
|
+
export declare function queryArtifacts(config: SubgraphConfig, filters?: {
|
|
30
|
+
outcome?: string;
|
|
31
|
+
owner?: string;
|
|
32
|
+
limit?: number;
|
|
33
|
+
}): Promise<SubgraphResult[]>;
|
|
34
|
+
/**
|
|
35
|
+
* Query the 8004 subgraph for registered node (AgentCard) entities.
|
|
36
|
+
*/
|
|
37
|
+
export declare function queryNodes(config: SubgraphConfig, limit?: number): Promise<SubgraphResult[]>;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ERC-8004 Subgraph client for artifact and node discovery.
|
|
3
|
+
*
|
|
4
|
+
* Queries The Graph subgraph to discover artifacts and nodes registered
|
|
5
|
+
* on the 8004 Identity Registry. Ported from protocol/src/discovery/subgraph.ts.
|
|
6
|
+
*
|
|
7
|
+
* NOTE: The GraphQL schema depends on the deployed 8004 subgraph.
|
|
8
|
+
* Field names may need adjustment against the live subgraph.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Parse a metadata value from a subgraph result by key.
|
|
12
|
+
*/
|
|
13
|
+
export function getMetadataValue(result, key) {
|
|
14
|
+
return result.metadata.find(m => m.key === key)?.value;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Query the 8004 subgraph for registered artifact entities.
|
|
18
|
+
*/
|
|
19
|
+
export async function queryArtifacts(config, filters) {
|
|
20
|
+
const query = filters?.owner
|
|
21
|
+
? `query GetArtifacts($first: Int, $skip: Int, $owner: String) {
|
|
22
|
+
agents(
|
|
23
|
+
first: $first, skip: $skip,
|
|
24
|
+
where: { metadata_: { metadataKey: "documentType", metadataValue_contains: "Artifact" }, owner: $owner }
|
|
25
|
+
) {
|
|
26
|
+
id agentURI owner
|
|
27
|
+
metadata { key: metadataKey value: metadataValue }
|
|
28
|
+
}
|
|
29
|
+
}`
|
|
30
|
+
: `query GetArtifacts($first: Int, $skip: Int) {
|
|
31
|
+
agents(
|
|
32
|
+
first: $first, skip: $skip,
|
|
33
|
+
where: { metadata_: { metadataKey: "documentType", metadataValue_contains: "Artifact" } }
|
|
34
|
+
) {
|
|
35
|
+
id agentURI owner
|
|
36
|
+
metadata { key: metadataKey value: metadataValue }
|
|
37
|
+
}
|
|
38
|
+
}`;
|
|
39
|
+
const variables = {
|
|
40
|
+
first: filters?.limit ?? 100,
|
|
41
|
+
skip: 0,
|
|
42
|
+
};
|
|
43
|
+
if (filters?.owner)
|
|
44
|
+
variables['owner'] = filters.owner;
|
|
45
|
+
const data = await graphqlRequest(config.url, query, variables);
|
|
46
|
+
let results = data.agents;
|
|
47
|
+
if (filters?.outcome) {
|
|
48
|
+
results = results.filter(r => r.metadata.some(m => m.key === 'outcome' && m.value === filters.outcome));
|
|
49
|
+
}
|
|
50
|
+
return results;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Query the 8004 subgraph for registered node (AgentCard) entities.
|
|
54
|
+
*/
|
|
55
|
+
export async function queryNodes(config, limit) {
|
|
56
|
+
const query = `query GetNodes($first: Int, $skip: Int) {
|
|
57
|
+
agents(
|
|
58
|
+
first: $first, skip: $skip,
|
|
59
|
+
where: { metadata_: { metadataKey: "documentType", metadataValue_contains: "AgentCard" } }
|
|
60
|
+
) {
|
|
61
|
+
id agentURI owner
|
|
62
|
+
metadata { key: metadataKey value: metadataValue }
|
|
63
|
+
}
|
|
64
|
+
}`;
|
|
65
|
+
const data = await graphqlRequest(config.url, query, { first: limit ?? 100, skip: 0 });
|
|
66
|
+
return data.agents;
|
|
67
|
+
}
|
|
68
|
+
// ── Minimal GraphQL client (no dependency) ───────────────────────────────────
|
|
69
|
+
async function graphqlRequest(url, query, variables) {
|
|
70
|
+
const response = await fetch(url, {
|
|
71
|
+
method: 'POST',
|
|
72
|
+
headers: { 'Content-Type': 'application/json' },
|
|
73
|
+
body: JSON.stringify({ query, variables }),
|
|
74
|
+
});
|
|
75
|
+
if (!response.ok) {
|
|
76
|
+
throw new Error(`Subgraph query failed: ${response.status} ${response.statusText}`);
|
|
77
|
+
}
|
|
78
|
+
const json = await response.json();
|
|
79
|
+
if (json.errors?.length) {
|
|
80
|
+
throw new Error(`Subgraph errors: ${json.errors.map(e => e.message).join(', ')}`);
|
|
81
|
+
}
|
|
82
|
+
if (!json.data) {
|
|
83
|
+
throw new Error('Subgraph returned no data');
|
|
84
|
+
}
|
|
85
|
+
return json.data;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=subgraph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subgraph.js","sourceRoot":"","sources":["../../src/discovery/subgraph.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAaH;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAsB,EAAE,GAAW;IAClE,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAsB,EACtB,OAIC;IAED,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK;QAC1B,CAAC,CAAC;;;;;;;;QAQE;QACJ,CAAC,CAAC;;;;;;;;QAQE,CAAC;IAEP,MAAM,SAAS,GAA4B;QACzC,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG;QAC5B,IAAI,EAAE,CAAC;KACR,CAAC;IACF,IAAI,OAAO,EAAE,KAAK;QAAE,SAAS,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;IAEvD,MAAM,IAAI,GAAG,MAAM,cAAc,CAA+B,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IAC9F,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;IAE1B,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;QACrB,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAC3B,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,CACzE,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAsB,EACtB,KAAc;IAEd,MAAM,KAAK,GAAG;;;;;;;;IAQZ,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,cAAc,CAA+B,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IACrH,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB,CAAC;AAED,gFAAgF;AAEhF,KAAK,UAAU,cAAc,CAAI,GAAW,EAAE,KAAa,EAAE,SAAmC;IAC9F,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAChC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;KAC3C,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAuD,CAAC;IACxF,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpF,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fleet bootstrap state machine.
|
|
3
|
+
*
|
|
4
|
+
* Phase 1 (master): generate mnemonic → fund master EOA
|
|
5
|
+
* Phase 2 (per-service): derive agent → stake → deploy mech
|
|
6
|
+
*/
|
|
7
|
+
import type { FleetState, FleetBootstrapResult } from './types.js';
|
|
8
|
+
export interface FleetBootstrapperOptions {
|
|
9
|
+
earningDir?: string;
|
|
10
|
+
chain?: 'base' | 'base-sepolia';
|
|
11
|
+
rpcUrl?: string;
|
|
12
|
+
stakingMode?: 'standard' | 'self-bond';
|
|
13
|
+
targetServices?: number;
|
|
14
|
+
testnetL2DeploymentPath?: string;
|
|
15
|
+
testnetL2TokenDeploymentPath?: string;
|
|
16
|
+
testnetMechDeploymentPath?: string;
|
|
17
|
+
testnetStolasDeploymentPath?: string;
|
|
18
|
+
/** Verbose errors (default: JINN_DEBUG env or false). */
|
|
19
|
+
debug?: boolean;
|
|
20
|
+
/** Estimated master gas per day (wei) for runway warnings. */
|
|
21
|
+
masterEthDailyEstimateWei?: bigint | string;
|
|
22
|
+
/**
|
|
23
|
+
* When `masterEthDailyEstimateWei` is unset, blends a conservative daily estimate
|
|
24
|
+
* from poll frequency (config.pollIntervalMs).
|
|
25
|
+
*/
|
|
26
|
+
pollIntervalMs?: number;
|
|
27
|
+
}
|
|
28
|
+
export declare class FleetBootstrapper {
|
|
29
|
+
private readonly store;
|
|
30
|
+
private readonly config;
|
|
31
|
+
private readonly publicClient;
|
|
32
|
+
private readonly chain;
|
|
33
|
+
private readonly stakingMode;
|
|
34
|
+
private readonly targetServices;
|
|
35
|
+
private readonly debug;
|
|
36
|
+
private readonly masterEthDailyEstimateWei;
|
|
37
|
+
constructor(options?: FleetBootstrapperOptions);
|
|
38
|
+
getStatus(): Promise<FleetState>;
|
|
39
|
+
/**
|
|
40
|
+
* Conservative daily master gas (wei): max(DEFAULT, rough tx count from poll interval × cost).
|
|
41
|
+
*/
|
|
42
|
+
private estimateMasterDailyGasWei;
|
|
43
|
+
bootstrap(password: string): Promise<FleetBootstrapResult>;
|
|
44
|
+
/**
|
|
45
|
+
* If the master is only slightly above the minimum, warn about gas runway (heuristic days).
|
|
46
|
+
*/
|
|
47
|
+
private warnMasterEthRunway;
|
|
48
|
+
private ensureMasterWallet;
|
|
49
|
+
private bootstrapService;
|
|
50
|
+
/**
|
|
51
|
+
* Compare persisted per-service state to registry/staking/Safe bytecode and patch store
|
|
52
|
+
* when local JSON is ahead, behind, or stale (idempotent; safe to repeat).
|
|
53
|
+
*/
|
|
54
|
+
private reconcileFleetWithChain;
|
|
55
|
+
/** Best-effort ETH recovery before persisted Safe address is cleared or replaced. */
|
|
56
|
+
private sweepAbandonedSafeForService;
|
|
57
|
+
private gatherChainSignals;
|
|
58
|
+
private resumeService;
|
|
59
|
+
private resumeServiceStandard;
|
|
60
|
+
private resumeServiceSelfBond;
|
|
61
|
+
private stepStolasStake;
|
|
62
|
+
private recoverEvictedService;
|
|
63
|
+
private stepDeployMech;
|
|
64
|
+
private stepSelfBondSetup;
|
|
65
|
+
private stepSelfBondCreateService;
|
|
66
|
+
private stepSelfBondActivateService;
|
|
67
|
+
private stepSelfBondRegisterAgents;
|
|
68
|
+
private stepSelfBondDeployService;
|
|
69
|
+
private stepSelfBondStakeService;
|
|
70
|
+
private getOlasBalance;
|
|
71
|
+
private getServiceState;
|
|
72
|
+
private waitForSuccessfulTx;
|
|
73
|
+
private stolasPreflightCheck;
|
|
74
|
+
private getStakingState;
|
|
75
|
+
private parseServiceIdFromReceipt;
|
|
76
|
+
private parseMultisigFromReceipt;
|
|
77
|
+
}
|
|
78
|
+
/** @deprecated Use FleetBootstrapper */
|
|
79
|
+
export declare const EarningBootstrapper: typeof FleetBootstrapper;
|