@sherwoodagent/cli 0.56.1 → 0.57.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/dist/{abis-VYJH7B2L.js → abis-6WBNN4S6.js} +2 -2
- package/dist/{agent-ATD6ECCO.js → agent-GKHZEPOT.js} +2 -2
- package/dist/{chat-5CSPCFX5.js → chat-VNO7DEAW.js} +5 -5
- package/dist/{chunk-TALLIFWJ.js → chunk-5GMVY7I7.js} +2 -2
- package/dist/{chunk-PN4BFLPG.js → chunk-OUJGZM46.js} +4 -29
- package/dist/chunk-OUJGZM46.js.map +1 -0
- package/dist/{chunk-FUH5ZDXH.js → chunk-QWX2COXX.js} +11 -35
- package/dist/chunk-QWX2COXX.js.map +1 -0
- package/dist/{chunk-DXYG6LQK.js → chunk-SWFKOMIQ.js} +2 -2
- package/dist/{chunk-TFFGRZYY.js → chunk-UNDR57AG.js} +2 -2
- package/dist/{chunk-3A4AHXJU.js → chunk-WGKOO4AO.js} +2 -2
- package/dist/{eas-5USBAM5N.js → eas-GYJRAPRP.js} +3 -3
- package/dist/{governor-YALHFEM5.js → governor-XXSQZAB5.js} +3 -7
- package/dist/index.js +69 -55
- package/dist/index.js.map +1 -1
- package/dist/{price-VZZMUI2O.js → price-RMYO6EB5.js} +2 -2
- package/dist/{research-MI5HEOHK.js → research-UFXKZGOG.js} +3 -3
- package/dist/{session-KDLIRS6B.js → session-7V3HX72A.js} +5 -5
- package/dist/{trade-6MFDEJSC.js → trade-ZXB3UAMH.js} +6 -6
- package/dist/{xmtp-T5J2R4OY.js → xmtp-DYJ4M7DA.js} +3 -3
- package/package.json +1 -1
- package/dist/chunk-FUH5ZDXH.js.map +0 -1
- package/dist/chunk-PN4BFLPG.js.map +0 -1
- /package/dist/{abis-VYJH7B2L.js.map → abis-6WBNN4S6.js.map} +0 -0
- /package/dist/{agent-ATD6ECCO.js.map → agent-GKHZEPOT.js.map} +0 -0
- /package/dist/{chat-5CSPCFX5.js.map → chat-VNO7DEAW.js.map} +0 -0
- /package/dist/{chunk-TALLIFWJ.js.map → chunk-5GMVY7I7.js.map} +0 -0
- /package/dist/{chunk-DXYG6LQK.js.map → chunk-SWFKOMIQ.js.map} +0 -0
- /package/dist/{chunk-TFFGRZYY.js.map → chunk-UNDR57AG.js.map} +0 -0
- /package/dist/{chunk-3A4AHXJU.js.map → chunk-WGKOO4AO.js.map} +0 -0
- /package/dist/{eas-5USBAM5N.js.map → eas-GYJRAPRP.js.map} +0 -0
- /package/dist/{governor-YALHFEM5.js.map → governor-XXSQZAB5.js.map} +0 -0
- /package/dist/{price-VZZMUI2O.js.map → price-RMYO6EB5.js.map} +0 -0
- /package/dist/{research-MI5HEOHK.js.map → research-UFXKZGOG.js.map} +0 -0
- /package/dist/{session-KDLIRS6B.js.map → session-7V3HX72A.js.map} +0 -0
- /package/dist/{trade-6MFDEJSC.js.map → trade-ZXB3UAMH.js.map} +0 -0
- /package/dist/{xmtp-T5J2R4OY.js.map → xmtp-DYJ4M7DA.js.map} +0 -0
package/dist/index.js
CHANGED
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
encodeSwapPath,
|
|
16
16
|
getMultiHopQuote,
|
|
17
17
|
getQuote
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-5GMVY7I7.js";
|
|
19
19
|
import {
|
|
20
20
|
chatCompletion,
|
|
21
21
|
checkApiKeyValid,
|
|
@@ -32,14 +32,14 @@ import {
|
|
|
32
32
|
queryJoinRequests,
|
|
33
33
|
revokeJoinRequest,
|
|
34
34
|
stripReferrerPrefix
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-SWFKOMIQ.js";
|
|
36
36
|
import {
|
|
37
37
|
createSyndicate,
|
|
38
38
|
getActiveSyndicates,
|
|
39
39
|
getSyndicate,
|
|
40
40
|
subdomainExists,
|
|
41
41
|
updateMetadata
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-WGKOO4AO.js";
|
|
43
43
|
import {
|
|
44
44
|
approveDepositor,
|
|
45
45
|
deposit,
|
|
@@ -63,12 +63,11 @@ import {
|
|
|
63
63
|
searchSyndicateAcrossChains,
|
|
64
64
|
setTextRecord,
|
|
65
65
|
setVaultAddress
|
|
66
|
-
} from "./chunk-
|
|
66
|
+
} from "./chunk-UNDR57AG.js";
|
|
67
67
|
import {
|
|
68
68
|
PROPOSAL_STATE,
|
|
69
69
|
PROPOSAL_STATES,
|
|
70
70
|
VOTE_TYPE,
|
|
71
|
-
bindProposalAdapter,
|
|
72
71
|
cancelProposal,
|
|
73
72
|
emergencyCancel,
|
|
74
73
|
emergencySettle,
|
|
@@ -96,7 +95,7 @@ import {
|
|
|
96
95
|
setVotingPeriod,
|
|
97
96
|
settleProposal,
|
|
98
97
|
vote
|
|
99
|
-
} from "./chunk-
|
|
98
|
+
} from "./chunk-OUJGZM46.js";
|
|
100
99
|
import {
|
|
101
100
|
AERODROME,
|
|
102
101
|
AGENT_REGISTRY,
|
|
@@ -161,7 +160,7 @@ import {
|
|
|
161
160
|
SWAP_ROUTER_EXACT_INPUT_SINGLE_ABI,
|
|
162
161
|
SYNDICATE_VAULT_ABI,
|
|
163
162
|
VENICE_STAKING_ABI
|
|
164
|
-
} from "./chunk-
|
|
163
|
+
} from "./chunk-QWX2COXX.js";
|
|
165
164
|
import {
|
|
166
165
|
fetchMetadata,
|
|
167
166
|
uploadMetadata
|
|
@@ -1539,9 +1538,9 @@ function registerStrategyTemplateCommands(strategy2) {
|
|
|
1539
1538
|
console.error(chalk.red("Missing --name, --performance-fee, or --duration. Use --write-calls to skip proposal submission."));
|
|
1540
1539
|
process.exit(1);
|
|
1541
1540
|
}
|
|
1542
|
-
const { propose: propose2
|
|
1541
|
+
const { propose: propose2 } = await import("./governor-XXSQZAB5.js");
|
|
1543
1542
|
const { pinJSON } = await import("./ipfs-IGXLLJCF.js");
|
|
1544
|
-
const { parseDuration: parseDuration2 } = await import("./governor-
|
|
1543
|
+
const { parseDuration: parseDuration2 } = await import("./governor-XXSQZAB5.js");
|
|
1545
1544
|
const performanceFeeBps = BigInt(opts.performanceFee);
|
|
1546
1545
|
if (performanceFeeBps < 0n || performanceFeeBps > 10000n) {
|
|
1547
1546
|
console.error(chalk.red("--performance-fee must be 0-10000 (basis points)"));
|
|
@@ -1570,18 +1569,17 @@ function registerStrategyTemplateCommands(strategy2) {
|
|
|
1570
1569
|
process.exit(1);
|
|
1571
1570
|
}
|
|
1572
1571
|
const proposeSpinner = ora("Submitting proposal...").start();
|
|
1573
|
-
let createdProposalId = null;
|
|
1574
1572
|
try {
|
|
1575
1573
|
const { hash, proposalId } = await propose2(
|
|
1576
1574
|
vault,
|
|
1575
|
+
clone,
|
|
1577
1576
|
metadataURI,
|
|
1578
1577
|
performanceFeeBps,
|
|
1579
1578
|
strategyDuration,
|
|
1580
1579
|
executeCalls,
|
|
1581
1580
|
settleCalls
|
|
1582
1581
|
);
|
|
1583
|
-
|
|
1584
|
-
proposeSpinner.succeed(`Proposal #${proposalId} created`);
|
|
1582
|
+
proposeSpinner.succeed(`Proposal #${proposalId} created \u2014 strategy=${clone} set on proposal`);
|
|
1585
1583
|
console.log(`Proposal #${proposalId}`);
|
|
1586
1584
|
console.log(chalk.dim(` Tx: ${getExplorerUrl(hash)}`));
|
|
1587
1585
|
console.log(chalk.dim(` Clone: ${clone}`));
|
|
@@ -1590,18 +1588,6 @@ function registerStrategyTemplateCommands(strategy2) {
|
|
|
1590
1588
|
console.error(chalk.red(formatContractError(err)));
|
|
1591
1589
|
process.exit(1);
|
|
1592
1590
|
}
|
|
1593
|
-
if (createdProposalId !== null) {
|
|
1594
|
-
const bindSpinner = ora("Binding adapter for live NAV...").start();
|
|
1595
|
-
try {
|
|
1596
|
-
const bindHash = await bindProposalAdapter2(createdProposalId, clone);
|
|
1597
|
-
bindSpinner.succeed("Adapter bound \u2014 live deposits/withdraws enabled during strategy");
|
|
1598
|
-
console.log(chalk.dim(` Tx: ${getExplorerUrl(bindHash)}`));
|
|
1599
|
-
} catch (err) {
|
|
1600
|
-
bindSpinner.warn(
|
|
1601
|
-
`Adapter bind skipped (${formatContractError(err)}) \u2014 strategy will use queue-only redemptions`
|
|
1602
|
-
);
|
|
1603
|
-
}
|
|
1604
|
-
}
|
|
1605
1591
|
if (templateKey === "venice-inference") {
|
|
1606
1592
|
console.log();
|
|
1607
1593
|
console.log(chalk.yellow("Next steps:"));
|
|
@@ -1662,7 +1648,7 @@ function registerStrategyTemplateCommands(strategy2) {
|
|
|
1662
1648
|
let prices = [];
|
|
1663
1649
|
let priceSource = null;
|
|
1664
1650
|
try {
|
|
1665
|
-
const { getTokenPricesInAsset } = await import("./price-
|
|
1651
|
+
const { getTokenPricesInAsset } = await import("./price-RMYO6EB5.js");
|
|
1666
1652
|
prices = await getTokenPricesInAsset({
|
|
1667
1653
|
tokens: allocations.map((a, i) => ({
|
|
1668
1654
|
token: a.token,
|
|
@@ -2092,7 +2078,7 @@ function registerVeniceCommands(program2) {
|
|
|
2092
2078
|
console.log(chalk2.dim(` Key: ${apiKey.slice(0, 8)}...${apiKey.slice(-4)}`));
|
|
2093
2079
|
console.log(chalk2.dim(" Saved to ~/.sherwood/config.json"));
|
|
2094
2080
|
try {
|
|
2095
|
-
const { createVeniceProvisionAttestation, getEasScanUrl: getEasScanUrl2 } = await import("./eas-
|
|
2081
|
+
const { createVeniceProvisionAttestation, getEasScanUrl: getEasScanUrl2 } = await import("./eas-GYJRAPRP.js");
|
|
2096
2082
|
const { uid } = await createVeniceProvisionAttestation(account.address);
|
|
2097
2083
|
if (uid !== "0x0000000000000000000000000000000000000000000000000000000000000000") {
|
|
2098
2084
|
console.log(chalk2.dim(` Attested: ${getEasScanUrl2(uid)}`));
|
|
@@ -2448,7 +2434,7 @@ ${opts.prompt}`;
|
|
|
2448
2434
|
console.log(chalk2.dim(`Model: ${result.model} | Tokens: ${result.usage.promptTokens} in, ${result.usage.completionTokens} out, ${result.usage.totalTokens} total`));
|
|
2449
2435
|
}
|
|
2450
2436
|
try {
|
|
2451
|
-
const { createVeniceInferenceAttestation, getEasScanUrl: getEasScanUrl2 } = await import("./eas-
|
|
2437
|
+
const { createVeniceInferenceAttestation, getEasScanUrl: getEasScanUrl2 } = await import("./eas-GYJRAPRP.js");
|
|
2452
2438
|
const { keccak256: keccak2562, toHex, isAddress: isAddr } = await import("viem");
|
|
2453
2439
|
const { getChainContracts: getChainContracts2 } = await import("./config-REASKDIK.js");
|
|
2454
2440
|
const { getChain: getActiveChain } = await import("./network-3ZU7UBDU.js");
|
|
@@ -2933,10 +2919,49 @@ function registerIdentityCommands(program2) {
|
|
|
2933
2919
|
} catch {
|
|
2934
2920
|
console.log(` Saved ID: #${savedId} ${chalk4.red("(token not found)")}`);
|
|
2935
2921
|
}
|
|
2922
|
+
console.log();
|
|
2923
|
+
} else if (balance > 0n) {
|
|
2924
|
+
console.log(` Saved ID: ${chalk4.yellow("none (but this wallet owns NFTs \u2014 listing below)")}`);
|
|
2925
|
+
console.log();
|
|
2926
|
+
const lookupSpinner = ora4("Resolving owned token IDs via Agent0 SDK...").start();
|
|
2927
|
+
try {
|
|
2928
|
+
const sdk = getAgent0SDK();
|
|
2929
|
+
const results = await sdk.searchAgents({
|
|
2930
|
+
walletAddress: account.address,
|
|
2931
|
+
chains: [getChain().id]
|
|
2932
|
+
});
|
|
2933
|
+
lookupSpinner.stop();
|
|
2934
|
+
if (results.length === 0) {
|
|
2935
|
+
console.log(chalk4.dim(" No agents resolved for this wallet on the active chain."));
|
|
2936
|
+
console.log(chalk4.dim(" If you minted on a different chain, try:"));
|
|
2937
|
+
console.log(chalk4.dim(" sherwood identity find --wallet " + account.address + " --all-chains"));
|
|
2938
|
+
} else {
|
|
2939
|
+
console.log(chalk4.bold(` Owned identities on this chain (${results.length}):`));
|
|
2940
|
+
for (const a of results) {
|
|
2941
|
+
const idStr = String(a.agentId);
|
|
2942
|
+
const tokenId = idStr.includes(":") ? idStr.split(":")[1] : idStr;
|
|
2943
|
+
console.log(` ${chalk4.bold(`#${tokenId}`)} ${a.name || chalk4.dim("(no name)")}`);
|
|
2944
|
+
}
|
|
2945
|
+
console.log();
|
|
2946
|
+
console.log(chalk4.green(" Bind one to this machine:"));
|
|
2947
|
+
if (results.length === 1) {
|
|
2948
|
+
const idStr = String(results[0].agentId);
|
|
2949
|
+
const tokenId = idStr.includes(":") ? idStr.split(":")[1] : idStr;
|
|
2950
|
+
console.log(chalk4.dim(` sherwood identity load --id ${tokenId}`));
|
|
2951
|
+
} else {
|
|
2952
|
+
console.log(chalk4.dim(" sherwood identity load --id <tokenId>"));
|
|
2953
|
+
}
|
|
2954
|
+
}
|
|
2955
|
+
} catch (err) {
|
|
2956
|
+
lookupSpinner.warn("Could not resolve owned token IDs via Agent0 SDK");
|
|
2957
|
+
console.log(chalk4.dim(` ${err.message}`));
|
|
2958
|
+
console.log(chalk4.dim(" Try: sherwood identity find --wallet " + account.address));
|
|
2959
|
+
}
|
|
2960
|
+
console.log();
|
|
2936
2961
|
} else {
|
|
2937
2962
|
console.log(` Saved ID: ${chalk4.dim("none \u2014 run 'sherwood identity mint --name <name>'")}`);
|
|
2963
|
+
console.log();
|
|
2938
2964
|
}
|
|
2939
|
-
console.log();
|
|
2940
2965
|
} catch (err) {
|
|
2941
2966
|
spinner.fail("Failed to check identity");
|
|
2942
2967
|
console.error(chalk4.red(formatContractError(err)));
|
|
@@ -3624,7 +3649,7 @@ function printSimulationResult(result, callType) {
|
|
|
3624
3649
|
}
|
|
3625
3650
|
async function sendSimulationAlert(subdomain, proposalId, vault, execResult, settleResult) {
|
|
3626
3651
|
try {
|
|
3627
|
-
const xmtp = await import("./xmtp-
|
|
3652
|
+
const xmtp = await import("./xmtp-DYJ4M7DA.js");
|
|
3628
3653
|
const { getAccount: getAccount2 } = await import("./client-UHHCB6EZ.js");
|
|
3629
3654
|
const group = await xmtp.getGroup("", subdomain);
|
|
3630
3655
|
const allRisks = [...execResult.risks, ...settleResult?.risks ?? []];
|
|
@@ -3810,7 +3835,15 @@ function registerProposalCommands(program2) {
|
|
|
3810
3835
|
}
|
|
3811
3836
|
}
|
|
3812
3837
|
const spinner = ora5({ text: W2("Submitting proposal..."), color: "green" }).start();
|
|
3813
|
-
const result = await propose(
|
|
3838
|
+
const result = await propose(
|
|
3839
|
+
vault,
|
|
3840
|
+
"0x0000000000000000000000000000000000000000",
|
|
3841
|
+
metadataURI,
|
|
3842
|
+
performanceFeeBps,
|
|
3843
|
+
strategyDuration,
|
|
3844
|
+
executeCalls,
|
|
3845
|
+
settleCalls
|
|
3846
|
+
);
|
|
3814
3847
|
spinner.succeed(G2("Proposal submitted"));
|
|
3815
3848
|
console.log();
|
|
3816
3849
|
console.log(LABEL2(" \u25C6 Proposal Created"));
|
|
@@ -3996,25 +4029,6 @@ function registerProposalCommands(program2) {
|
|
|
3996
4029
|
process.exit(1);
|
|
3997
4030
|
}
|
|
3998
4031
|
});
|
|
3999
|
-
proposal.command("bind-adapter").description("Bind a strategy clone to a proposal for live NAV (proposer-only, Draft or Pending, before any co-proposer approval)").requiredOption("--id <proposalId>", "Proposal ID").requiredOption("--adapter <address>", "Strategy clone address").action(async (opts) => {
|
|
4000
|
-
try {
|
|
4001
|
-
const proposalId = parseBigIntArg(opts.id, "proposal ID");
|
|
4002
|
-
if (!isAddress4(opts.adapter)) {
|
|
4003
|
-
console.error(chalk6.red("Invalid adapter address"));
|
|
4004
|
-
process.exit(1);
|
|
4005
|
-
}
|
|
4006
|
-
const adapter = opts.adapter;
|
|
4007
|
-
const spinner = ora5("Binding adapter...").start();
|
|
4008
|
-
const hash = await bindProposalAdapter(proposalId, adapter);
|
|
4009
|
-
spinner.succeed(G2("Adapter bound \u2014 live deposits/withdraws enabled"));
|
|
4010
|
-
console.log(DIM2(` ${getExplorerUrl(hash)}`));
|
|
4011
|
-
console.log();
|
|
4012
|
-
} catch (err) {
|
|
4013
|
-
console.error(chalk6.red(`
|
|
4014
|
-
\u2716 ${formatContractError(err)}`));
|
|
4015
|
-
process.exit(1);
|
|
4016
|
-
}
|
|
4017
|
-
});
|
|
4018
4032
|
proposal.command("execute").description("Execute an approved proposal").requiredOption("--id <proposalId>", "Proposal ID").option("--dry-run", "Simulate execution without sending a transaction").action(async (opts) => {
|
|
4019
4033
|
try {
|
|
4020
4034
|
const proposalId = parseBigIntArg(opts.id, "proposal ID");
|
|
@@ -7105,7 +7119,7 @@ try {
|
|
|
7105
7119
|
var require2 = createRequire(import.meta.url);
|
|
7106
7120
|
var { version: CLI_VERSION } = require2("../package.json");
|
|
7107
7121
|
async function loadXmtp() {
|
|
7108
|
-
return import("./xmtp-
|
|
7122
|
+
return import("./xmtp-DYJ4M7DA.js");
|
|
7109
7123
|
}
|
|
7110
7124
|
async function loadCron() {
|
|
7111
7125
|
return import("./cron-EOULYO3R.js");
|
|
@@ -8255,7 +8269,7 @@ ${info.name} (${info.type})`);
|
|
|
8255
8269
|
}
|
|
8256
8270
|
});
|
|
8257
8271
|
try {
|
|
8258
|
-
const { registerChatCommands } = await import("./chat-
|
|
8272
|
+
const { registerChatCommands } = await import("./chat-VNO7DEAW.js");
|
|
8259
8273
|
registerChatCommands(program);
|
|
8260
8274
|
} catch {
|
|
8261
8275
|
program.command("chat <name> [action] [actionArgs...]").description("Syndicate chat (XMTP) \u2014 requires @xmtp/cli").action(() => {
|
|
@@ -8265,7 +8279,7 @@ try {
|
|
|
8265
8279
|
process.exit(1);
|
|
8266
8280
|
});
|
|
8267
8281
|
}
|
|
8268
|
-
var { registerSessionCommands } = await import("./session-
|
|
8282
|
+
var { registerSessionCommands } = await import("./session-7V3HX72A.js");
|
|
8269
8283
|
registerSessionCommands(program);
|
|
8270
8284
|
registerVeniceCommands(program);
|
|
8271
8285
|
registerAllowanceCommands(program);
|
|
@@ -8273,11 +8287,11 @@ registerIdentityCommands(program);
|
|
|
8273
8287
|
registerProposalCommands(program);
|
|
8274
8288
|
registerGovernorCommands(program);
|
|
8275
8289
|
registerGuardianCommands(program);
|
|
8276
|
-
var { registerResearchCommands } = await import("./research-
|
|
8290
|
+
var { registerResearchCommands } = await import("./research-UFXKZGOG.js");
|
|
8277
8291
|
registerResearchCommands(program);
|
|
8278
|
-
var { registerAgentCommands } = await import("./agent-
|
|
8292
|
+
var { registerAgentCommands } = await import("./agent-GKHZEPOT.js");
|
|
8279
8293
|
registerAgentCommands(program);
|
|
8280
|
-
var { registerTradeCommands } = await import("./trade-
|
|
8294
|
+
var { registerTradeCommands } = await import("./trade-ZXB3UAMH.js");
|
|
8281
8295
|
registerTradeCommands(program);
|
|
8282
8296
|
registerGridCommand(program);
|
|
8283
8297
|
var configCmd = program.command("config");
|