@sherwoodagent/cli 0.59.6 → 0.59.7

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.
Files changed (39) hide show
  1. package/dist/{abis-6WBNN4S6.js → abis-ITHGPHGM.js} +2 -2
  2. package/dist/{addresses-YADHNQJF.js → addresses-PYRHQSVZ.js} +2 -2
  3. package/dist/{agent-GKHZEPOT.js → agent-4XQOMAEM.js} +2 -2
  4. package/dist/{chat-CIMWJUXB.js → chat-AH36PC43.js} +6 -6
  5. package/dist/{chunk-3LKVNG6G.js → chunk-HP5AJE2G.js} +3 -3
  6. package/dist/{chunk-RZQ5BF2U.js → chunk-JH5YGXZC.js} +3 -3
  7. package/dist/{chunk-RZQ5BF2U.js.map → chunk-JH5YGXZC.js.map} +1 -1
  8. package/dist/{chunk-OH4U2VBU.js → chunk-JW7WMYDW.js} +3 -3
  9. package/dist/{chunk-JAJCRYNH.js → chunk-NLGMVZMW.js} +3 -3
  10. package/dist/{chunk-QWX2COXX.js → chunk-SKOVJ7XM.js} +19 -1
  11. package/dist/{chunk-QWX2COXX.js.map → chunk-SKOVJ7XM.js.map} +1 -1
  12. package/dist/{chunk-XXGZB6S3.js → chunk-XDEHIZKT.js} +3 -3
  13. package/dist/{chunk-P7AUSI6R.js → chunk-YW6MGRMQ.js} +3 -3
  14. package/dist/{eas-NEAAOTP3.js → eas-ZX2YIJG7.js} +4 -4
  15. package/dist/{governor-PX5GCCCT.js → governor-IOMICY6I.js} +4 -4
  16. package/dist/index.js +34 -38
  17. package/dist/index.js.map +1 -1
  18. package/dist/{price-PPOVTQL4.js → price-ZCWGU2OM.js} +3 -3
  19. package/dist/{research-P6AJVTVE.js → research-PPZIWXSM.js} +3 -3
  20. package/dist/{session-B77JKCGZ.js → session-OTI3BWIQ.js} +6 -6
  21. package/dist/{trade-WB2LKYKT.js → trade-3OVB2VX5.js} +7 -7
  22. package/dist/{xmtp-HC774TEI.js → xmtp-54ISDDT4.js} +4 -4
  23. package/package.json +1 -1
  24. /package/dist/{abis-6WBNN4S6.js.map → abis-ITHGPHGM.js.map} +0 -0
  25. /package/dist/{addresses-YADHNQJF.js.map → addresses-PYRHQSVZ.js.map} +0 -0
  26. /package/dist/{agent-GKHZEPOT.js.map → agent-4XQOMAEM.js.map} +0 -0
  27. /package/dist/{chat-CIMWJUXB.js.map → chat-AH36PC43.js.map} +0 -0
  28. /package/dist/{chunk-3LKVNG6G.js.map → chunk-HP5AJE2G.js.map} +0 -0
  29. /package/dist/{chunk-OH4U2VBU.js.map → chunk-JW7WMYDW.js.map} +0 -0
  30. /package/dist/{chunk-JAJCRYNH.js.map → chunk-NLGMVZMW.js.map} +0 -0
  31. /package/dist/{chunk-XXGZB6S3.js.map → chunk-XDEHIZKT.js.map} +0 -0
  32. /package/dist/{chunk-P7AUSI6R.js.map → chunk-YW6MGRMQ.js.map} +0 -0
  33. /package/dist/{eas-NEAAOTP3.js.map → eas-ZX2YIJG7.js.map} +0 -0
  34. /package/dist/{governor-PX5GCCCT.js.map → governor-IOMICY6I.js.map} +0 -0
  35. /package/dist/{price-PPOVTQL4.js.map → price-ZCWGU2OM.js.map} +0 -0
  36. /package/dist/{research-P6AJVTVE.js.map → research-PPZIWXSM.js.map} +0 -0
  37. /package/dist/{session-B77JKCGZ.js.map → session-OTI3BWIQ.js.map} +0 -0
  38. /package/dist/{trade-WB2LKYKT.js.map → trade-3OVB2VX5.js.map} +0 -0
  39. /package/dist/{xmtp-HC774TEI.js.map → xmtp-54ISDDT4.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-P7AUSI6R.js";
18
+ } from "./chunk-YW6MGRMQ.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-XXGZB6S3.js";
35
+ } from "./chunk-XDEHIZKT.js";
36
36
  import {
37
37
  createSyndicate,
38
38
  getActiveSyndicates,
39
39
  getSyndicate,
40
40
  subdomainExists,
41
41
  updateMetadata
42
- } from "./chunk-JAJCRYNH.js";
42
+ } from "./chunk-NLGMVZMW.js";
43
43
  import {
44
44
  approveDepositor,
45
45
  deposit,
@@ -63,7 +63,7 @@ import {
63
63
  searchSyndicateAcrossChains,
64
64
  setTextRecord,
65
65
  setVaultAddress
66
- } from "./chunk-3LKVNG6G.js";
66
+ } from "./chunk-HP5AJE2G.js";
67
67
  import {
68
68
  PROPOSAL_STATE,
69
69
  PROPOSAL_STATES,
@@ -95,7 +95,7 @@ import {
95
95
  setVotingPeriod,
96
96
  settleProposal,
97
97
  vote
98
- } from "./chunk-OH4U2VBU.js";
98
+ } from "./chunk-JW7WMYDW.js";
99
99
  import {
100
100
  AERODROME,
101
101
  AGENT_REGISTRY,
@@ -107,7 +107,7 @@ import {
107
107
  TOKENS,
108
108
  UNISWAP,
109
109
  VENICE
110
- } from "./chunk-RZQ5BF2U.js";
110
+ } from "./chunk-JH5YGXZC.js";
111
111
  import {
112
112
  formatContractError,
113
113
  getAccount,
@@ -155,12 +155,13 @@ import {
155
155
  import {
156
156
  BASE_STRATEGY_ABI,
157
157
  ERC20_ABI,
158
+ HYPERLIQUID_PERP_STRATEGY_ABI,
158
159
  PORTFOLIO_STRATEGY_ABI,
159
160
  SWAP_ROUTER_ABI,
160
161
  SWAP_ROUTER_EXACT_INPUT_SINGLE_ABI,
161
162
  SYNDICATE_VAULT_ABI,
162
163
  VENICE_STAKING_ABI
163
- } from "./chunk-QWX2COXX.js";
164
+ } from "./chunk-SKOVJ7XM.js";
164
165
  import {
165
166
  fetchMetadata,
166
167
  uploadMetadata
@@ -226,8 +227,6 @@ async function cloneTemplate(template) {
226
227
  ]);
227
228
  const account = getAccount();
228
229
  const chain = getChain();
229
- const publicClient = getPublicClient();
230
- const creationNonce = await publicClient.getTransactionCount({ address: account.address });
231
230
  const hash = await sendTxWithRetry({
232
231
  account,
233
232
  chain,
@@ -238,7 +237,7 @@ async function cloneTemplate(template) {
238
237
  if (!receipt.contractAddress) {
239
238
  throw new Error(`Clone deployment failed \u2014 no contract address in receipt (tx: ${hash})`);
240
239
  }
241
- return { clone: receipt.contractAddress, hash, creationNonce };
240
+ return { clone: receipt.contractAddress, hash };
242
241
  }
243
242
 
244
243
  // src/grid/strategy-abi.ts
@@ -259,8 +258,9 @@ var HYPERLIQUID_GRID_STRATEGY_ABI = [
259
258
  },
260
259
  {
261
260
  // Registers the clone with HyperCore so ERC-20 USDC transfers auto-credit
262
- // HC spot. Call post-init with variant=0 (Create) and the deployer's nonce
263
- // at clone creation time. Required before _execute() will pass the spot check.
261
+ // HC spot. Call post-init with variant=1 (FirstStorageSlot) and nonce=0.
262
+ // _initialize() already wrote address(this) to slot 0 (_hcSelf); HC reads
263
+ // it post-block to confirm the contract address.
264
264
  type: "function",
265
265
  name: "finalizeForHyperCore",
266
266
  inputs: [
@@ -1362,12 +1362,10 @@ function registerStrategyTemplateCommands(strategy2) {
1362
1362
  const cloneSpinner = ora(`Cloning ${def.name} template...`).start();
1363
1363
  let clone;
1364
1364
  let cloneHash;
1365
- let creationNonce;
1366
1365
  try {
1367
1366
  const result = await cloneTemplate(templateAddr);
1368
1367
  clone = result.clone;
1369
1368
  cloneHash = result.hash;
1370
- creationNonce = result.creationNonce;
1371
1369
  cloneSpinner.succeed(`Cloned: ${chalk.green(clone)}`);
1372
1370
  console.log(chalk.dim(` Tx: ${getExplorerUrl(cloneHash)}`));
1373
1371
  } catch (err) {
@@ -1397,7 +1395,7 @@ function registerStrategyTemplateCommands(strategy2) {
1397
1395
  console.error(chalk.red(formatContractError(err)));
1398
1396
  process.exit(1);
1399
1397
  }
1400
- if (templateKey === "hyperliquid-grid") {
1398
+ if (templateKey === "hyperliquid-grid" || templateKey === "hyperliquid-perp") {
1401
1399
  const hcSpinner = ora("Registering clone with HyperCore...").start();
1402
1400
  try {
1403
1401
  const account = getAccount();
@@ -1405,14 +1403,13 @@ function registerStrategyTemplateCommands(strategy2) {
1405
1403
  account,
1406
1404
  chain: getChain(),
1407
1405
  address: clone,
1408
- abi: HYPERLIQUID_GRID_STRATEGY_ABI,
1406
+ abi: templateKey === "hyperliquid-grid" ? HYPERLIQUID_GRID_STRATEGY_ABI : HYPERLIQUID_PERP_STRATEGY_ABI,
1409
1407
  functionName: "finalizeForHyperCore",
1410
- args: [0n, 0, BigInt(creationNonce)]
1411
- // token=USDC, variant=Create(0), nonce
1408
+ args: [0n, 1, 0n]
1409
+ // token=USDC, variant=FirstStorageSlot(1), nonce unused
1412
1410
  });
1413
1411
  await waitForReceipt(hcHash);
1414
1412
  hcSpinner.succeed("HyperCore registration sent (active after next block)");
1415
- console.log(chalk.dim(` Creation nonce: ${creationNonce}`));
1416
1413
  } catch (err) {
1417
1414
  hcSpinner.warn("HyperCore registration failed \u2014 run finalizeForHyperCore manually");
1418
1415
  console.error(chalk.yellow(formatContractError(err)));
@@ -1524,11 +1521,9 @@ function registerStrategyTemplateCommands(strategy2) {
1524
1521
  }
1525
1522
  const cloneSpinner = ora(`Cloning ${def.name} template...`).start();
1526
1523
  let clone;
1527
- let proposeCreationNonce;
1528
1524
  try {
1529
1525
  const result = await cloneTemplate(templateAddr);
1530
1526
  clone = result.clone;
1531
- proposeCreationNonce = result.creationNonce;
1532
1527
  cloneSpinner.succeed(`Cloned: ${chalk.green(clone)}`);
1533
1528
  console.log(chalk.dim(` Tx: ${getExplorerUrl(result.hash)}`));
1534
1529
  } catch (err) {
@@ -1563,16 +1558,17 @@ function registerStrategyTemplateCommands(strategy2) {
1563
1558
  console.error(chalk.red(formatContractError(err)));
1564
1559
  process.exit(1);
1565
1560
  }
1566
- if (templateKey === "hyperliquid-grid") {
1561
+ if (templateKey === "hyperliquid-grid" || templateKey === "hyperliquid-perp") {
1567
1562
  const hcSpinner = ora("Registering clone with HyperCore...").start();
1568
1563
  try {
1569
1564
  const hcHash = await writeContractWithRetry({
1570
1565
  account,
1571
1566
  chain: getChain(),
1572
1567
  address: clone,
1573
- abi: HYPERLIQUID_GRID_STRATEGY_ABI,
1568
+ abi: templateKey === "hyperliquid-grid" ? HYPERLIQUID_GRID_STRATEGY_ABI : HYPERLIQUID_PERP_STRATEGY_ABI,
1574
1569
  functionName: "finalizeForHyperCore",
1575
- args: [0n, 0, BigInt(proposeCreationNonce)]
1570
+ args: [0n, 1, 0n]
1571
+ // token=USDC, variant=FirstStorageSlot(1), nonce unused
1576
1572
  });
1577
1573
  await waitForReceipt(hcHash);
1578
1574
  hcSpinner.succeed("HyperCore registration sent (active after next block)");
@@ -1581,7 +1577,7 @@ function registerStrategyTemplateCommands(strategy2) {
1581
1577
  console.error(chalk.red(formatContractError(err)));
1582
1578
  console.error(
1583
1579
  chalk.yellow(
1584
- `Retry by calling finalizeForHyperCore(0, 0, ${proposeCreationNonce}) on ${clone}, then re-run propose.`
1580
+ `Retry by calling finalizeForHyperCore(0, 1, 0) on ${clone}, then re-run propose.`
1585
1581
  )
1586
1582
  );
1587
1583
  process.exit(1);
@@ -1631,9 +1627,9 @@ function registerStrategyTemplateCommands(strategy2) {
1631
1627
  console.error(chalk.red("Missing --name, --performance-fee, or --duration. Use --write-calls to skip proposal submission."));
1632
1628
  process.exit(1);
1633
1629
  }
1634
- const { propose: propose2 } = await import("./governor-PX5GCCCT.js");
1630
+ const { propose: propose2 } = await import("./governor-IOMICY6I.js");
1635
1631
  const { pinJSON } = await import("./ipfs-IGXLLJCF.js");
1636
- const { parseDuration: parseDuration2 } = await import("./governor-PX5GCCCT.js");
1632
+ const { parseDuration: parseDuration2 } = await import("./governor-IOMICY6I.js");
1637
1633
  const performanceFeeBps = BigInt(opts.performanceFee);
1638
1634
  if (performanceFeeBps < 0n || performanceFeeBps > 10000n) {
1639
1635
  console.error(chalk.red("--performance-fee must be 0-10000 (basis points)"));
@@ -1741,7 +1737,7 @@ function registerStrategyTemplateCommands(strategy2) {
1741
1737
  let prices = [];
1742
1738
  let priceSource = null;
1743
1739
  try {
1744
- const { getTokenPricesInAsset } = await import("./price-PPOVTQL4.js");
1740
+ const { getTokenPricesInAsset } = await import("./price-ZCWGU2OM.js");
1745
1741
  prices = await getTokenPricesInAsset({
1746
1742
  tokens: allocations.map((a, i) => ({
1747
1743
  token: a.token,
@@ -2171,7 +2167,7 @@ function registerVeniceCommands(program2) {
2171
2167
  console.log(chalk2.dim(` Key: ${apiKey.slice(0, 8)}...${apiKey.slice(-4)}`));
2172
2168
  console.log(chalk2.dim(" Saved to ~/.sherwood/config.json"));
2173
2169
  try {
2174
- const { createVeniceProvisionAttestation, getEasScanUrl: getEasScanUrl2 } = await import("./eas-NEAAOTP3.js");
2170
+ const { createVeniceProvisionAttestation, getEasScanUrl: getEasScanUrl2 } = await import("./eas-ZX2YIJG7.js");
2175
2171
  const { uid } = await createVeniceProvisionAttestation(account.address);
2176
2172
  if (uid !== "0x0000000000000000000000000000000000000000000000000000000000000000") {
2177
2173
  console.log(chalk2.dim(` Attested: ${getEasScanUrl2(uid)}`));
@@ -2527,7 +2523,7 @@ ${opts.prompt}`;
2527
2523
  console.log(chalk2.dim(`Model: ${result.model} | Tokens: ${result.usage.promptTokens} in, ${result.usage.completionTokens} out, ${result.usage.totalTokens} total`));
2528
2524
  }
2529
2525
  try {
2530
- const { createVeniceInferenceAttestation, getEasScanUrl: getEasScanUrl2 } = await import("./eas-NEAAOTP3.js");
2526
+ const { createVeniceInferenceAttestation, getEasScanUrl: getEasScanUrl2 } = await import("./eas-ZX2YIJG7.js");
2531
2527
  const { keccak256: keccak2562, toHex, isAddress: isAddr } = await import("viem");
2532
2528
  const { getChainContracts: getChainContracts2 } = await import("./config-REASKDIK.js");
2533
2529
  const { getChain: getActiveChain } = await import("./network-3ZU7UBDU.js");
@@ -3742,7 +3738,7 @@ function printSimulationResult(result, callType) {
3742
3738
  }
3743
3739
  async function sendSimulationAlert(subdomain, proposalId, vault, execResult, settleResult) {
3744
3740
  try {
3745
- const xmtp = await import("./xmtp-HC774TEI.js");
3741
+ const xmtp = await import("./xmtp-54ISDDT4.js");
3746
3742
  const { getAccount: getAccount2 } = await import("./client-UHHCB6EZ.js");
3747
3743
  const group = await xmtp.getGroup("", subdomain);
3748
3744
  const allRisks = [...execResult.risks, ...settleResult?.risks ?? []];
@@ -7194,7 +7190,7 @@ try {
7194
7190
  var require2 = createRequire(import.meta.url);
7195
7191
  var { version: CLI_VERSION } = require2("../package.json");
7196
7192
  async function loadXmtp() {
7197
- return import("./xmtp-HC774TEI.js");
7193
+ return import("./xmtp-54ISDDT4.js");
7198
7194
  }
7199
7195
  async function loadCron() {
7200
7196
  return import("./cron-EOULYO3R.js");
@@ -7719,7 +7715,7 @@ syndicate.command("add").description("Register an agent on a syndicate vault (cr
7719
7715
  if (opts.agentId) {
7720
7716
  agentId = BigInt(opts.agentId);
7721
7717
  } else {
7722
- const { AGENT_REGISTRY: AGENT_REGISTRY2 } = await import("./addresses-YADHNQJF.js");
7718
+ const { AGENT_REGISTRY: AGENT_REGISTRY2 } = await import("./addresses-PYRHQSVZ.js");
7723
7719
  const registry2 = AGENT_REGISTRY2().IDENTITY_REGISTRY;
7724
7720
  if (registry2 === "0x0000000000000000000000000000000000000000") {
7725
7721
  agentId = 0n;
@@ -8344,7 +8340,7 @@ ${info.name} (${info.type})`);
8344
8340
  }
8345
8341
  });
8346
8342
  try {
8347
- const { registerChatCommands } = await import("./chat-CIMWJUXB.js");
8343
+ const { registerChatCommands } = await import("./chat-AH36PC43.js");
8348
8344
  registerChatCommands(program);
8349
8345
  } catch {
8350
8346
  program.command("chat <name> [action] [actionArgs...]").description("Syndicate chat (XMTP) \u2014 requires @xmtp/cli").action(() => {
@@ -8354,7 +8350,7 @@ try {
8354
8350
  process.exit(1);
8355
8351
  });
8356
8352
  }
8357
- var { registerSessionCommands } = await import("./session-B77JKCGZ.js");
8353
+ var { registerSessionCommands } = await import("./session-OTI3BWIQ.js");
8358
8354
  registerSessionCommands(program);
8359
8355
  registerVeniceCommands(program);
8360
8356
  registerAllowanceCommands(program);
@@ -8362,11 +8358,11 @@ registerIdentityCommands(program);
8362
8358
  registerProposalCommands(program);
8363
8359
  registerGovernorCommands(program);
8364
8360
  registerGuardianCommands(program);
8365
- var { registerResearchCommands } = await import("./research-P6AJVTVE.js");
8361
+ var { registerResearchCommands } = await import("./research-PPZIWXSM.js");
8366
8362
  registerResearchCommands(program);
8367
- var { registerAgentCommands } = await import("./agent-GKHZEPOT.js");
8363
+ var { registerAgentCommands } = await import("./agent-4XQOMAEM.js");
8368
8364
  registerAgentCommands(program);
8369
- var { registerTradeCommands } = await import("./trade-WB2LKYKT.js");
8365
+ var { registerTradeCommands } = await import("./trade-3OVB2VX5.js");
8370
8366
  registerTradeCommands(program);
8371
8367
  registerGridCommand(program);
8372
8368
  var configCmd = program.command("config");