@sherwoodagent/cli 0.72.0 → 0.72.3

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 (56) hide show
  1. package/dist/{addresses-HJDYFLWZ.js → addresses-YDPUPGWQ.js} +3 -3
  2. package/dist/{agent-6OJKQVEG.js → agent-6IRZUPFT.js} +6 -6
  3. package/dist/{chat-2DKD3QPA.js → chat-G5M3OK6M.js} +8 -8
  4. package/dist/{chunk-6SRIVGAV.js → chunk-3NMJ4LUL.js} +4 -4
  5. package/dist/{chunk-OZLX666C.js → chunk-52U76TRE.js} +2 -2
  6. package/dist/{chunk-SVSJNZ5D.js → chunk-D4SPHYXA.js} +4 -4
  7. package/dist/{chunk-ASF2WTSW.js → chunk-FOAX5PGR.js} +4 -4
  8. package/dist/{chunk-GT3KCKF6.js → chunk-FOS47623.js} +9 -6
  9. package/dist/chunk-FOS47623.js.map +1 -0
  10. package/dist/{chunk-RNASYOQT.js → chunk-HYUUR6SC.js} +2 -2
  11. package/dist/chunk-HYUUR6SC.js.map +1 -0
  12. package/dist/{chunk-ITZT5HD4.js → chunk-NWY2U753.js} +2 -2
  13. package/dist/{chunk-YLYANZMC.js → chunk-RAITRCM7.js} +2 -2
  14. package/dist/{chunk-PDUGL4EY.js → chunk-S6XA7PK4.js} +22 -4
  15. package/dist/chunk-S6XA7PK4.js.map +1 -0
  16. package/dist/{chunk-3YUMQGJD.js → chunk-UUHWD7Y3.js} +4 -4
  17. package/dist/{chunk-UC5RMCB3.js → chunk-WECQ6NVS.js} +2 -2
  18. package/dist/{client-K4JCNPVV.js → client-QN6SA76M.js} +3 -3
  19. package/dist/{eas-ZXGUNYC5.js → eas-HM2AUOEY.js} +5 -5
  20. package/dist/{governor-CV5PITE3.js → governor-RRBTDGDX.js} +9 -5
  21. package/dist/index.js +101 -42
  22. package/dist/index.js.map +1 -1
  23. package/dist/{network-DHWEYXP2.js → network-L6JKNYOJ.js} +2 -2
  24. package/dist/{price-GOX6P4NT.js → price-AJ4JMHCT.js} +4 -4
  25. package/dist/{research-6D7NNJX4.js → research-6VEEPEPP.js} +7 -7
  26. package/dist/{research-EFNVHU7G.js → research-7Z6SFPPX.js} +4 -4
  27. package/dist/{session-LDLW66K3.js → session-PURMITWE.js} +9 -9
  28. package/dist/{trade-7NNZXP5B.js → trade-YTGLGCRQ.js} +14 -14
  29. package/dist/{vault-SIL4QL5U.js → vault-NIPA5JV4.js} +5 -5
  30. package/dist/{xmtp-QNOVDLXX.js → xmtp-M32JSE4I.js} +6 -6
  31. package/package.json +1 -1
  32. package/dist/chunk-GT3KCKF6.js.map +0 -1
  33. package/dist/chunk-PDUGL4EY.js.map +0 -1
  34. package/dist/chunk-RNASYOQT.js.map +0 -1
  35. /package/dist/{addresses-HJDYFLWZ.js.map → addresses-YDPUPGWQ.js.map} +0 -0
  36. /package/dist/{agent-6OJKQVEG.js.map → agent-6IRZUPFT.js.map} +0 -0
  37. /package/dist/{chat-2DKD3QPA.js.map → chat-G5M3OK6M.js.map} +0 -0
  38. /package/dist/{chunk-6SRIVGAV.js.map → chunk-3NMJ4LUL.js.map} +0 -0
  39. /package/dist/{chunk-OZLX666C.js.map → chunk-52U76TRE.js.map} +0 -0
  40. /package/dist/{chunk-SVSJNZ5D.js.map → chunk-D4SPHYXA.js.map} +0 -0
  41. /package/dist/{chunk-ASF2WTSW.js.map → chunk-FOAX5PGR.js.map} +0 -0
  42. /package/dist/{chunk-ITZT5HD4.js.map → chunk-NWY2U753.js.map} +0 -0
  43. /package/dist/{chunk-YLYANZMC.js.map → chunk-RAITRCM7.js.map} +0 -0
  44. /package/dist/{chunk-3YUMQGJD.js.map → chunk-UUHWD7Y3.js.map} +0 -0
  45. /package/dist/{chunk-UC5RMCB3.js.map → chunk-WECQ6NVS.js.map} +0 -0
  46. /package/dist/{client-K4JCNPVV.js.map → client-QN6SA76M.js.map} +0 -0
  47. /package/dist/{eas-ZXGUNYC5.js.map → eas-HM2AUOEY.js.map} +0 -0
  48. /package/dist/{governor-CV5PITE3.js.map → governor-RRBTDGDX.js.map} +0 -0
  49. /package/dist/{network-DHWEYXP2.js.map → network-L6JKNYOJ.js.map} +0 -0
  50. /package/dist/{price-GOX6P4NT.js.map → price-AJ4JMHCT.js.map} +0 -0
  51. /package/dist/{research-6D7NNJX4.js.map → research-6VEEPEPP.js.map} +0 -0
  52. /package/dist/{research-EFNVHU7G.js.map → research-7Z6SFPPX.js.map} +0 -0
  53. /package/dist/{session-LDLW66K3.js.map → session-PURMITWE.js.map} +0 -0
  54. /package/dist/{trade-7NNZXP5B.js.map → trade-YTGLGCRQ.js.map} +0 -0
  55. /package/dist/{vault-SIL4QL5U.js.map → vault-NIPA5JV4.js.map} +0 -0
  56. /package/dist/{xmtp-QNOVDLXX.js.map → xmtp-M32JSE4I.js.map} +0 -0
package/dist/index.js CHANGED
@@ -15,13 +15,13 @@ import {
15
15
  encodeSwapPath,
16
16
  getMultiHopQuote,
17
17
  getQuote
18
- } from "./chunk-SVSJNZ5D.js";
18
+ } from "./chunk-D4SPHYXA.js";
19
19
  import {
20
20
  chatCompletion,
21
21
  checkApiKeyValid,
22
22
  listModels,
23
23
  provisionApiKey
24
- } from "./chunk-OZLX666C.js";
24
+ } from "./chunk-52U76TRE.js";
25
25
  import {
26
26
  createApproval,
27
27
  createJoinRequest,
@@ -32,20 +32,20 @@ import {
32
32
  queryJoinRequests,
33
33
  revokeJoinRequest,
34
34
  stripReferrerPrefix
35
- } from "./chunk-ASF2WTSW.js";
35
+ } from "./chunk-FOAX5PGR.js";
36
36
  import {
37
37
  createFund,
38
38
  getActiveFunds,
39
39
  getFund,
40
40
  subdomainExists,
41
41
  updateMetadata
42
- } from "./chunk-6SRIVGAV.js";
42
+ } from "./chunk-3NMJ4LUL.js";
43
43
  import {
44
44
  resolveFund,
45
45
  resolveVaultFund,
46
46
  searchFundAcrossChains,
47
47
  setTextRecord
48
- } from "./chunk-GT3KCKF6.js";
48
+ } from "./chunk-FOS47623.js";
49
49
  import {
50
50
  approveDepositor,
51
51
  deposit,
@@ -67,14 +67,16 @@ import {
67
67
  removeDepositor,
68
68
  setAgentFeeBps,
69
69
  setVaultAddress
70
- } from "./chunk-3YUMQGJD.js";
70
+ } from "./chunk-UUHWD7Y3.js";
71
71
  import {
72
72
  PROPOSAL_STATE,
73
73
  PROPOSAL_STATES,
74
74
  VOTE_TYPE,
75
75
  cancelProposal,
76
+ classifyReview,
76
77
  emergencyCancel,
77
78
  emergencySettle,
79
+ evaluateExecuteGate,
78
80
  executeProposal,
79
81
  getActiveProposal,
80
82
  getCapitalSnapshot,
@@ -99,7 +101,7 @@ import {
99
101
  setVotingPeriod,
100
102
  settleProposal,
101
103
  vote
102
- } from "./chunk-PDUGL4EY.js";
104
+ } from "./chunk-S6XA7PK4.js";
103
105
  import {
104
106
  AERODROME,
105
107
  AGENT_REGISTRY,
@@ -113,7 +115,7 @@ import {
113
115
  UNISWAP,
114
116
  VENICE,
115
117
  robinhoodEquityMaxAge
116
- } from "./chunk-YLYANZMC.js";
118
+ } from "./chunk-RAITRCM7.js";
117
119
  import {
118
120
  formatContractError,
119
121
  getAccount,
@@ -122,7 +124,7 @@ import {
122
124
  sendTxWithRetry,
123
125
  waitForReceipt,
124
126
  writeContractWithRetry
125
- } from "./chunk-UC5RMCB3.js";
127
+ } from "./chunk-WECQ6NVS.js";
126
128
  import {
127
129
  DEFAULT_NETWORK,
128
130
  VALID_NETWORKS,
@@ -134,7 +136,7 @@ import {
134
136
  isTestnet,
135
137
  setNetwork,
136
138
  withNetwork
137
- } from "./chunk-RNASYOQT.js";
139
+ } from "./chunk-HYUUR6SC.js";
138
140
  import {
139
141
  addFund,
140
142
  cacheGroupId,
@@ -3510,7 +3512,7 @@ function registerStrategyTemplateCommands(strategy2) {
3510
3512
  process.exit(1);
3511
3513
  }
3512
3514
  if (!opts.agent) opts.agent = proposer;
3513
- const { parseDuration: parseDuration3, getGovernorOf: getGovernorOf2 } = await import("./governor-CV5PITE3.js");
3515
+ const { parseDuration: parseDuration3, getGovernorOf: getGovernorOf2 } = await import("./governor-RRBTDGDX.js");
3514
3516
  const strategyDuration2 = parseDuration3(opts.duration);
3515
3517
  const chainId = getChain().id;
3516
3518
  try {
@@ -3736,9 +3738,9 @@ function registerStrategyTemplateCommands(strategy2) {
3736
3738
  console.error(chalk.red("Missing --name or --duration. Use --write-calls to skip proposal submission."));
3737
3739
  process.exit(1);
3738
3740
  }
3739
- const { propose: propose2 } = await import("./governor-CV5PITE3.js");
3741
+ const { propose: propose2 } = await import("./governor-RRBTDGDX.js");
3740
3742
  const { pinJSON } = await import("./ipfs-VGWTUORE.js");
3741
- const { parseDuration: parseDuration2 } = await import("./governor-CV5PITE3.js");
3743
+ const { parseDuration: parseDuration2 } = await import("./governor-RRBTDGDX.js");
3742
3744
  const strategyDuration = parseDuration2(opts.duration);
3743
3745
  const metaSpinner = ora("Pinning metadata to IPFS...").start();
3744
3746
  let metadataURI;
@@ -3761,7 +3763,7 @@ function registerStrategyTemplateCommands(strategy2) {
3761
3763
  process.exit(1);
3762
3764
  }
3763
3765
  try {
3764
- const { getAgentFeeBps: getAgentFeeBps2 } = await import("./vault-SIL4QL5U.js");
3766
+ const { getAgentFeeBps: getAgentFeeBps2 } = await import("./vault-NIPA5JV4.js");
3765
3767
  const feeBps = await getAgentFeeBps2(vault);
3766
3768
  console.log(
3767
3769
  chalk.yellow(
@@ -3849,7 +3851,7 @@ function registerStrategyTemplateCommands(strategy2) {
3849
3851
  let prices = [];
3850
3852
  let priceSource = null;
3851
3853
  try {
3852
- const { getTokenPricesInAsset } = await import("./price-GOX6P4NT.js");
3854
+ const { getTokenPricesInAsset } = await import("./price-AJ4JMHCT.js");
3853
3855
  prices = await getTokenPricesInAsset({
3854
3856
  tokens: allocations.map((a, i) => ({
3855
3857
  token: a.token,
@@ -4279,7 +4281,7 @@ function registerVeniceCommands(program2) {
4279
4281
  console.log(chalk2.dim(` Key: ${apiKey.slice(0, 8)}...${apiKey.slice(-4)}`));
4280
4282
  console.log(chalk2.dim(" Saved to ~/.sherwood/config.json"));
4281
4283
  try {
4282
- const { createVeniceProvisionAttestation, getEasScanUrl: getEasScanUrl2 } = await import("./eas-ZXGUNYC5.js");
4284
+ const { createVeniceProvisionAttestation, getEasScanUrl: getEasScanUrl2 } = await import("./eas-HM2AUOEY.js");
4283
4285
  const { uid } = await createVeniceProvisionAttestation(account.address);
4284
4286
  if (uid !== "0x0000000000000000000000000000000000000000000000000000000000000000") {
4285
4287
  console.log(chalk2.dim(` Attested: ${getEasScanUrl2(uid)}`));
@@ -4635,10 +4637,10 @@ ${opts.prompt}`;
4635
4637
  console.log(chalk2.dim(`Model: ${result.model} | Tokens: ${result.usage.promptTokens} in, ${result.usage.completionTokens} out, ${result.usage.totalTokens} total`));
4636
4638
  }
4637
4639
  try {
4638
- const { createVeniceInferenceAttestation, getEasScanUrl: getEasScanUrl2 } = await import("./eas-ZXGUNYC5.js");
4640
+ const { createVeniceInferenceAttestation, getEasScanUrl: getEasScanUrl2 } = await import("./eas-HM2AUOEY.js");
4639
4641
  const { keccak256: keccak2563, toHex, isAddress: isAddr } = await import("viem");
4640
4642
  const { getChainContracts: getChainContracts2 } = await import("./config-FAQO37S7.js");
4641
- const { getChain: getActiveChain } = await import("./network-DHWEYXP2.js");
4643
+ const { getChain: getActiveChain } = await import("./network-L6JKNYOJ.js");
4642
4644
  const vaultRecipient = opts.vault && isAddr(opts.vault) ? opts.vault : getChainContracts2(getActiveChain().id).vault;
4643
4645
  const promptHash = keccak2563(toHex(userContent)).slice(0, 18);
4644
4646
  const { uid } = await createVeniceInferenceAttestation(
@@ -5893,8 +5895,8 @@ function printSimulationResult(result, callType) {
5893
5895
  }
5894
5896
  async function sendSimulationAlert(subdomain, proposalId, vault, execResult, settleResult) {
5895
5897
  try {
5896
- const xmtp = await import("./xmtp-QNOVDLXX.js");
5897
- const { getAccount: getAccount2 } = await import("./client-K4JCNPVV.js");
5898
+ const xmtp = await import("./xmtp-M32JSE4I.js");
5899
+ const { getAccount: getAccount2 } = await import("./client-QN6SA76M.js");
5898
5900
  const group = await xmtp.getGroup("", subdomain);
5899
5901
  const allRisks = [...execResult.risks, ...settleResult?.risks ?? []];
5900
5902
  const criticals = allRisks.filter((r) => r.level === "critical");
@@ -6388,13 +6390,35 @@ function registerProposalCommands(program2) {
6388
6390
  return;
6389
6391
  }
6390
6392
  const spinner = ora5("Loading proposal...").start();
6391
- const state = await getProposalState(vault, proposalId);
6392
- if (state !== PROPOSAL_STATE.Approved) {
6393
+ const [state, p, latestBlock] = await Promise.all([
6394
+ getProposalState(vault, proposalId),
6395
+ getProposal(vault, proposalId),
6396
+ getPublicClient().getBlock()
6397
+ ]);
6398
+ const now = latestBlock.timestamp;
6399
+ const gate = evaluateExecuteGate({
6400
+ state,
6401
+ reviewEnd: p.reviewEnd,
6402
+ executeBy: p.executeBy,
6403
+ now
6404
+ });
6405
+ if (gate.kind === "refuse-review-open") {
6406
+ spinner.fail(
6407
+ `Proposal is in GuardianReview \u2014 the review window is open until ${formatTimestamp(p.reviewEnd)}. Execute once the window closes; the execute self-resolves the review.`
6408
+ );
6409
+ process.exit(1);
6410
+ }
6411
+ if (gate.kind === "refuse-expired") {
6412
+ spinner.fail(
6413
+ `Proposal expired \u2014 the execution window closed at ${formatTimestamp(p.executeBy)} (execute-by). An elapsed GuardianReview past execute-by resolves to Expired and can no longer be executed.`
6414
+ );
6415
+ process.exit(1);
6416
+ }
6417
+ if (gate.kind === "refuse-state") {
6393
6418
  spinner.fail(`Proposal is ${PROPOSAL_STATES[state] || "Unknown"}, not Approved`);
6394
6419
  process.exit(1);
6395
6420
  }
6396
6421
  if (opts.dryRun) {
6397
- const p = await getProposal(vault, proposalId);
6398
6422
  const execCalls = await getExecuteCalls(vault, proposalId);
6399
6423
  const dryRunContext = {
6400
6424
  vault: p.vault,
@@ -6408,7 +6432,16 @@ function registerProposalCommands(program2) {
6408
6432
  const hasCritical = result.risks.some((r) => r.level === "critical");
6409
6433
  process.exit(result.success && !hasCritical ? 0 : 1);
6410
6434
  }
6411
- spinner.text = W2("Executing proposal...");
6435
+ if (gate.kind === "send-self-resolve") {
6436
+ spinner.info(
6437
+ DIM2(
6438
+ "GuardianReview window elapsed with no cached resolution \u2014 execute will self-resolve the review inline (cold-start / not blocked) and proceed."
6439
+ )
6440
+ );
6441
+ spinner.start(W2("Executing proposal..."));
6442
+ } else {
6443
+ spinner.text = W2("Executing proposal...");
6444
+ }
6412
6445
  const hash = await executeProposal(vault, proposalId);
6413
6446
  spinner.succeed(G2("Proposal executed"));
6414
6447
  console.log(DIM2(` ${getExplorerUrl(hash)}`));
@@ -6442,14 +6475,17 @@ function registerProposalCommands(program2) {
6442
6475
  }
6443
6476
  const account = getAccount();
6444
6477
  const spinner = ora5("Loading proposal...").start();
6445
- const p = await getProposal(vault, proposalId);
6446
- const state = await getProposalState(vault, proposalId);
6478
+ const [p, state, latestBlock] = await Promise.all([
6479
+ getProposal(vault, proposalId),
6480
+ getProposalState(vault, proposalId),
6481
+ getPublicClient().getBlock()
6482
+ ]);
6447
6483
  if (state !== PROPOSAL_STATE.Executed) {
6448
6484
  spinner.fail(`Proposal is ${PROPOSAL_STATES[state] || "Unknown"}, not Executed`);
6449
6485
  process.exit(1);
6450
6486
  }
6451
6487
  const isProposer = account.address.toLowerCase() === p.proposer.toLowerCase();
6452
- const now = BigInt(Math.floor(Date.now() / 1e3));
6488
+ const now = latestBlock.timestamp;
6453
6489
  const durationElapsed = p.executedAt > 0n && now >= p.executedAt + p.strategyDuration;
6454
6490
  let hash;
6455
6491
  if (isProposer && !durationElapsed) {
@@ -6637,18 +6673,41 @@ function registerProposalCommands(program2) {
6637
6673
  args: [governorAddr, id]
6638
6674
  })
6639
6675
  ]);
6640
- const [, resolved2] = reviewState;
6641
- const resolvable2 = !resolved2 && p.reviewEnd > 0n && now >= p.reviewEnd;
6642
- return { id, resolvable: resolvable2, reviewEnd: p.reviewEnd, vault: p.vault };
6676
+ const [opened, resolved2] = reviewState;
6677
+ const cls = classifyReview({ opened, resolved: resolved2, reviewEnd: p.reviewEnd, now });
6678
+ return { id, cls, reviewEnd: p.reviewEnd, vault: p.vault };
6643
6679
  } catch {
6644
- return { id, resolvable: false, reviewEnd: 0n, vault: "0x" };
6680
+ return { id, cls: "none", reviewEnd: 0n, vault: "0x" };
6645
6681
  }
6646
6682
  })
6647
6683
  );
6648
- const resolvable = candidates.filter((c) => c.resolvable);
6684
+ const resolvable = candidates.filter((c) => c.cls === "resolvable");
6685
+ const coldStart = candidates.filter((c) => c.cls === "cold-start");
6649
6686
  spinner.stop();
6687
+ if (coldStart.length > 0) {
6688
+ console.log();
6689
+ console.log(LABEL2(` \u25C6 Unopened Cold-Start Reviews (${coldStart.length})`));
6690
+ SEP2();
6691
+ for (const c of coldStart) {
6692
+ console.log(
6693
+ W2(` Proposal #${c.id} vault=${c.vault} reviewEnd=${formatTimestamp(c.reviewEnd)}`)
6694
+ );
6695
+ console.log(
6696
+ DIM2(
6697
+ ` No guardian review was opened (zero-guardian cold start) \u2014 nothing to resolve on-chain.
6698
+ Directly executable: sherwood proposal execute --id ${c.id} --vault ${c.vault}
6699
+ (execute self-resolves the review inline).`
6700
+ )
6701
+ );
6702
+ }
6703
+ SEP2();
6704
+ }
6650
6705
  if (resolvable.length === 0) {
6651
- console.log(DIM2("\n No reviews ready to resolve.\n"));
6706
+ if (coldStart.length === 0) {
6707
+ console.log(DIM2("\n No reviews ready to resolve.\n"));
6708
+ } else {
6709
+ console.log(DIM2("\n No opened reviews need an on-chain resolve.\n"));
6710
+ }
6652
6711
  return;
6653
6712
  }
6654
6713
  console.log();
@@ -10272,9 +10331,9 @@ try {
10272
10331
  } catch {
10273
10332
  }
10274
10333
  var require2 = createRequire(import.meta.url);
10275
- var CLI_VERSION = "0.72.0";
10334
+ var CLI_VERSION = "0.72.3";
10276
10335
  async function loadXmtp() {
10277
- return import("./xmtp-QNOVDLXX.js");
10336
+ return import("./xmtp-M32JSE4I.js");
10278
10337
  }
10279
10338
  async function loadCron() {
10280
10339
  return import("./cron-QMLRWDJG.js");
@@ -10859,7 +10918,7 @@ fund.command("add").description("Register an agent on a fund vault (creator only
10859
10918
  if (opts.agentId) {
10860
10919
  agentId = BigInt(opts.agentId);
10861
10920
  } else {
10862
- const { AGENT_REGISTRY: AGENT_REGISTRY2 } = await import("./addresses-HJDYFLWZ.js");
10921
+ const { AGENT_REGISTRY: AGENT_REGISTRY2 } = await import("./addresses-YDPUPGWQ.js");
10863
10922
  const registry = AGENT_REGISTRY2().IDENTITY_REGISTRY;
10864
10923
  if (registry === "0x0000000000000000000000000000000000000000") {
10865
10924
  agentId = 0n;
@@ -11585,7 +11644,7 @@ vaultCmd.command("redeem").description("Redeem vault shares for the underlying a
11585
11644
  var strategy = program.command("strategy").description("Strategy templates \u2014 list, clone, propose");
11586
11645
  registerStrategyTemplateCommands(strategy);
11587
11646
  program.command("providers").description("List available DeFi providers").action(async () => {
11588
- const { MessariProvider, NansenProvider } = await import("./research-EFNVHU7G.js");
11647
+ const { MessariProvider, NansenProvider } = await import("./research-7Z6SFPPX.js");
11589
11648
  const providers = [new MoonwellProvider(), new UniswapProvider(), new MessariProvider(), new NansenProvider()];
11590
11649
  for (const p of providers) {
11591
11650
  const info = p.info();
@@ -11596,7 +11655,7 @@ ${info.name} (${info.type})`);
11596
11655
  }
11597
11656
  });
11598
11657
  try {
11599
- const { registerChatCommands } = await import("./chat-2DKD3QPA.js");
11658
+ const { registerChatCommands } = await import("./chat-G5M3OK6M.js");
11600
11659
  registerChatCommands(program);
11601
11660
  } catch {
11602
11661
  program.command("chat <name> [action] [actionArgs...]").description("Fund chat (XMTP) \u2014 requires @xmtp/cli").action(() => {
@@ -11606,7 +11665,7 @@ try {
11606
11665
  process.exit(1);
11607
11666
  });
11608
11667
  }
11609
- var { registerSessionCommands } = await import("./session-LDLW66K3.js");
11668
+ var { registerSessionCommands } = await import("./session-PURMITWE.js");
11610
11669
  registerSessionCommands(program);
11611
11670
  registerVeniceCommands(program);
11612
11671
  registerAllowanceCommands(program);
@@ -11615,11 +11674,11 @@ registerProposalCommands(program);
11615
11674
  registerQueueCommands(program);
11616
11675
  registerGovernorCommands(program);
11617
11676
  registerGuardianCommands(program);
11618
- var { registerResearchCommands } = await import("./research-6D7NNJX4.js");
11677
+ var { registerResearchCommands } = await import("./research-6VEEPEPP.js");
11619
11678
  registerResearchCommands(program);
11620
- var { registerAgentCommands } = await import("./agent-6OJKQVEG.js");
11679
+ var { registerAgentCommands } = await import("./agent-6IRZUPFT.js");
11621
11680
  registerAgentCommands(program);
11622
- var { registerTradeCommands } = await import("./trade-7NNZXP5B.js");
11681
+ var { registerTradeCommands } = await import("./trade-YTGLGCRQ.js");
11623
11682
  registerTradeCommands(program);
11624
11683
  registerGridCommand(program);
11625
11684
  var configCmd = program.command("config");