@sherwoodagent/cli 0.59.12 → 0.59.15

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 (47) hide show
  1. package/dist/{addresses-PYRHQSVZ.js → addresses-FXTJXDI7.js} +2 -2
  2. package/dist/{agent-QI7GVRJV.js → agent-IVESTCYM.js} +4 -4
  3. package/dist/{chat-J5G63PFI.js → chat-IPSP5FBQ.js} +6 -6
  4. package/dist/{chunk-4ZM3QQO7.js → chunk-7INQASHO.js} +3 -3
  5. package/dist/{chunk-7TSAKVAO.js → chunk-AQNHSYJ7.js} +3 -3
  6. package/dist/{chunk-GAT77CJE.js → chunk-D4AQBGF4.js} +3 -3
  7. package/dist/{chunk-JE3FON2M.js → chunk-HE3NY4JJ.js} +3 -3
  8. package/dist/{chunk-OHQOTSFG.js → chunk-J42NNFUV.js} +2 -2
  9. package/dist/{chunk-IKQD5ERV.js → chunk-OKGTNYYW.js} +3 -3
  10. package/dist/{chunk-7HJXZ4NM.js → chunk-UBAX22KA.js} +2 -2
  11. package/dist/{chunk-JH5YGXZC.js → chunk-VAOCUQMY.js} +11 -2
  12. package/dist/chunk-VAOCUQMY.js.map +1 -0
  13. package/dist/{chunk-XDBRKW7I.js → chunk-YJSCIQUZ.js} +21 -1
  14. package/dist/chunk-YJSCIQUZ.js.map +1 -0
  15. package/dist/{client-UHHCB6EZ.js → client-KBBFAMEI.js} +2 -2
  16. package/dist/{eas-YJF7L25R.js → eas-5VIHTS3N.js} +4 -4
  17. package/dist/{governor-4JUK6HDR.js → governor-UBUNIO3U.js} +4 -4
  18. package/dist/index.js +44 -26
  19. package/dist/index.js.map +1 -1
  20. package/dist/{price-NJBSPQ3M.js → price-3BXZKK6B.js} +3 -3
  21. package/dist/{research-PZRG36KL.js → research-LRIALMFZ.js} +5 -5
  22. package/dist/{research-YJWSQS2A.js → research-N3R5MU6Q.js} +3 -3
  23. package/dist/{session-U3NEZJ7X.js → session-NQBWTJYS.js} +6 -6
  24. package/dist/{trade-HSNABOTJ.js → trade-SRM3OYFW.js} +10 -10
  25. package/dist/{xmtp-54DNJCS5.js → xmtp-BNPM7HJY.js} +4 -4
  26. package/package.json +1 -1
  27. package/dist/chunk-JH5YGXZC.js.map +0 -1
  28. package/dist/chunk-XDBRKW7I.js.map +0 -1
  29. /package/dist/{addresses-PYRHQSVZ.js.map → addresses-FXTJXDI7.js.map} +0 -0
  30. /package/dist/{agent-QI7GVRJV.js.map → agent-IVESTCYM.js.map} +0 -0
  31. /package/dist/{chat-J5G63PFI.js.map → chat-IPSP5FBQ.js.map} +0 -0
  32. /package/dist/{chunk-4ZM3QQO7.js.map → chunk-7INQASHO.js.map} +0 -0
  33. /package/dist/{chunk-7TSAKVAO.js.map → chunk-AQNHSYJ7.js.map} +0 -0
  34. /package/dist/{chunk-GAT77CJE.js.map → chunk-D4AQBGF4.js.map} +0 -0
  35. /package/dist/{chunk-JE3FON2M.js.map → chunk-HE3NY4JJ.js.map} +0 -0
  36. /package/dist/{chunk-OHQOTSFG.js.map → chunk-J42NNFUV.js.map} +0 -0
  37. /package/dist/{chunk-IKQD5ERV.js.map → chunk-OKGTNYYW.js.map} +0 -0
  38. /package/dist/{chunk-7HJXZ4NM.js.map → chunk-UBAX22KA.js.map} +0 -0
  39. /package/dist/{client-UHHCB6EZ.js.map → client-KBBFAMEI.js.map} +0 -0
  40. /package/dist/{eas-YJF7L25R.js.map → eas-5VIHTS3N.js.map} +0 -0
  41. /package/dist/{governor-4JUK6HDR.js.map → governor-UBUNIO3U.js.map} +0 -0
  42. /package/dist/{price-NJBSPQ3M.js.map → price-3BXZKK6B.js.map} +0 -0
  43. /package/dist/{research-PZRG36KL.js.map → research-LRIALMFZ.js.map} +0 -0
  44. /package/dist/{research-YJWSQS2A.js.map → research-N3R5MU6Q.js.map} +0 -0
  45. /package/dist/{session-U3NEZJ7X.js.map → session-NQBWTJYS.js.map} +0 -0
  46. /package/dist/{trade-HSNABOTJ.js.map → trade-SRM3OYFW.js.map} +0 -0
  47. /package/dist/{xmtp-54DNJCS5.js.map → xmtp-BNPM7HJY.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-7TSAKVAO.js";
18
+ } from "./chunk-AQNHSYJ7.js";
19
19
  import {
20
20
  chatCompletion,
21
21
  checkApiKeyValid,
22
22
  listModels,
23
23
  provisionApiKey
24
- } from "./chunk-7HJXZ4NM.js";
24
+ } from "./chunk-UBAX22KA.js";
25
25
  import {
26
26
  createApproval,
27
27
  createJoinRequest,
@@ -32,14 +32,14 @@ import {
32
32
  queryJoinRequests,
33
33
  revokeJoinRequest,
34
34
  stripReferrerPrefix
35
- } from "./chunk-JE3FON2M.js";
35
+ } from "./chunk-HE3NY4JJ.js";
36
36
  import {
37
37
  createSyndicate,
38
38
  getActiveSyndicates,
39
39
  getSyndicate,
40
40
  subdomainExists,
41
41
  updateMetadata
42
- } from "./chunk-GAT77CJE.js";
42
+ } from "./chunk-D4AQBGF4.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-4ZM3QQO7.js";
66
+ } from "./chunk-7INQASHO.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-IKQD5ERV.js";
98
+ } from "./chunk-OKGTNYYW.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-JH5YGXZC.js";
110
+ } from "./chunk-VAOCUQMY.js";
111
111
  import {
112
112
  formatContractError,
113
113
  getAccount,
@@ -116,7 +116,7 @@ import {
116
116
  sendTxWithRetry,
117
117
  waitForReceipt,
118
118
  writeContractWithRetry
119
- } from "./chunk-XDBRKW7I.js";
119
+ } from "./chunk-YJSCIQUZ.js";
120
120
  import {
121
121
  CHAIN_REGISTRY,
122
122
  VALID_NETWORKS,
@@ -1702,9 +1702,9 @@ function registerStrategyTemplateCommands(strategy2) {
1702
1702
  console.error(chalk.red("Missing --name, --performance-fee, or --duration. Use --write-calls to skip proposal submission."));
1703
1703
  process.exit(1);
1704
1704
  }
1705
- const { propose: propose2 } = await import("./governor-4JUK6HDR.js");
1705
+ const { propose: propose2 } = await import("./governor-UBUNIO3U.js");
1706
1706
  const { pinJSON } = await import("./ipfs-IGXLLJCF.js");
1707
- const { parseDuration: parseDuration2 } = await import("./governor-4JUK6HDR.js");
1707
+ const { parseDuration: parseDuration2 } = await import("./governor-UBUNIO3U.js");
1708
1708
  const performanceFeeBps = BigInt(opts.performanceFee);
1709
1709
  if (performanceFeeBps < 0n || performanceFeeBps > 10000n) {
1710
1710
  console.error(chalk.red("--performance-fee must be 0-10000 (basis points)"));
@@ -1812,7 +1812,7 @@ function registerStrategyTemplateCommands(strategy2) {
1812
1812
  let prices = [];
1813
1813
  let priceSource = null;
1814
1814
  try {
1815
- const { getTokenPricesInAsset } = await import("./price-NJBSPQ3M.js");
1815
+ const { getTokenPricesInAsset } = await import("./price-3BXZKK6B.js");
1816
1816
  prices = await getTokenPricesInAsset({
1817
1817
  tokens: allocations.map((a, i) => ({
1818
1818
  token: a.token,
@@ -2242,7 +2242,7 @@ function registerVeniceCommands(program2) {
2242
2242
  console.log(chalk2.dim(` Key: ${apiKey.slice(0, 8)}...${apiKey.slice(-4)}`));
2243
2243
  console.log(chalk2.dim(" Saved to ~/.sherwood/config.json"));
2244
2244
  try {
2245
- const { createVeniceProvisionAttestation, getEasScanUrl: getEasScanUrl2 } = await import("./eas-YJF7L25R.js");
2245
+ const { createVeniceProvisionAttestation, getEasScanUrl: getEasScanUrl2 } = await import("./eas-5VIHTS3N.js");
2246
2246
  const { uid } = await createVeniceProvisionAttestation(account.address);
2247
2247
  if (uid !== "0x0000000000000000000000000000000000000000000000000000000000000000") {
2248
2248
  console.log(chalk2.dim(` Attested: ${getEasScanUrl2(uid)}`));
@@ -2598,7 +2598,7 @@ ${opts.prompt}`;
2598
2598
  console.log(chalk2.dim(`Model: ${result.model} | Tokens: ${result.usage.promptTokens} in, ${result.usage.completionTokens} out, ${result.usage.totalTokens} total`));
2599
2599
  }
2600
2600
  try {
2601
- const { createVeniceInferenceAttestation, getEasScanUrl: getEasScanUrl2 } = await import("./eas-YJF7L25R.js");
2601
+ const { createVeniceInferenceAttestation, getEasScanUrl: getEasScanUrl2 } = await import("./eas-5VIHTS3N.js");
2602
2602
  const { keccak256: keccak2562, toHex, isAddress: isAddr } = await import("viem");
2603
2603
  const { getChainContracts: getChainContracts2 } = await import("./config-REASKDIK.js");
2604
2604
  const { getChain: getActiveChain } = await import("./network-3ZU7UBDU.js");
@@ -3813,8 +3813,8 @@ function printSimulationResult(result, callType) {
3813
3813
  }
3814
3814
  async function sendSimulationAlert(subdomain, proposalId, vault, execResult, settleResult) {
3815
3815
  try {
3816
- const xmtp = await import("./xmtp-54DNJCS5.js");
3817
- const { getAccount: getAccount2 } = await import("./client-UHHCB6EZ.js");
3816
+ const xmtp = await import("./xmtp-BNPM7HJY.js");
3817
+ const { getAccount: getAccount2 } = await import("./client-KBBFAMEI.js");
3818
3818
  const group = await xmtp.getGroup("", subdomain);
3819
3819
  const allRisks = [...execResult.risks, ...settleResult?.risks ?? []];
3820
3820
  const criticals = allRisks.filter((r) => r.level === "critical");
@@ -4291,7 +4291,7 @@ function registerProposalCommands(program2) {
4291
4291
  );
4292
4292
  console.error(
4293
4293
  DIM2(
4294
- "\n Other states have their own recovery path:\n Draft/Pending \u2192 sherwood proposal cancel --id <id>\n Approved \u2192 sherwood proposal veto <id>\n Expired \u2192 vault is not locked, nothing to do\n Settled \u2192 already settled\n Cancelled \u2192 governor upgrade required (issue #177)\n"
4294
+ "\n Other states have their own recovery path:\n Draft/Pending/GuardianReview/Approved \u2192 sherwood proposal cancel --id <id> (proposer)\n Draft/Pending (vault owner) \u2192 sherwood proposal cancel --id <id> --emergency\n Pending (vault owner) \u2192 sherwood proposal veto --id <id>\n Expired \u2192 vault is not locked, nothing to do\n Settled \u2192 already settled\n Cancelled \u2192 governor upgrade required (issue #177)\n"
4295
4295
  )
4296
4296
  );
4297
4297
  process.exit(1);
@@ -4406,14 +4406,32 @@ function registerProposalCommands(program2) {
4406
4406
  spinner.fail(`Proposal is already ${PROPOSAL_STATES[state]}`);
4407
4407
  process.exit(1);
4408
4408
  }
4409
+ const PROPOSER_CANCELLABLE = /* @__PURE__ */ new Set([
4410
+ PROPOSAL_STATE.Draft,
4411
+ PROPOSAL_STATE.Pending,
4412
+ PROPOSAL_STATE.GuardianReview,
4413
+ PROPOSAL_STATE.Approved
4414
+ ]);
4415
+ const OWNER_EMERGENCY_CANCELLABLE = /* @__PURE__ */ new Set([
4416
+ PROPOSAL_STATE.Draft,
4417
+ PROPOSAL_STATE.Pending
4418
+ ]);
4409
4419
  let hash;
4410
4420
  if (opts.emergency) {
4421
+ if (!OWNER_EMERGENCY_CANCELLABLE.has(state)) {
4422
+ spinner.fail(
4423
+ `Proposal is ${PROPOSAL_STATES[state] || "Unknown"} \u2014 emergencyCancel only works in Draft or Pending. For GuardianReview / Approved, the proposer can run: sherwood proposal cancel --id ${proposalId}`
4424
+ );
4425
+ process.exit(1);
4426
+ }
4411
4427
  spinner.text = W2("Emergency cancelling...");
4412
4428
  hash = await emergencyCancel(proposalId);
4413
4429
  spinner.succeed(G2("Emergency cancelled"));
4414
4430
  } else {
4415
- if (state !== PROPOSAL_STATE.Draft && state !== PROPOSAL_STATE.Pending) {
4416
- spinner.fail(`Proposal is ${PROPOSAL_STATES[state] || "Unknown"} \u2014 use --emergency for non-pending/approved`);
4431
+ if (!PROPOSER_CANCELLABLE.has(state)) {
4432
+ spinner.fail(
4433
+ `Proposal is ${PROPOSAL_STATES[state] || "Unknown"} \u2014 not cancellable in this state. cancelProposal accepts Draft / Pending / GuardianReview / Approved (proposer only).`
4434
+ );
4417
4435
  process.exit(1);
4418
4436
  }
4419
4437
  spinner.text = W2("Cancelling proposal...");
@@ -7265,7 +7283,7 @@ try {
7265
7283
  var require2 = createRequire(import.meta.url);
7266
7284
  var { version: CLI_VERSION } = require2("../package.json");
7267
7285
  async function loadXmtp() {
7268
- return import("./xmtp-54DNJCS5.js");
7286
+ return import("./xmtp-BNPM7HJY.js");
7269
7287
  }
7270
7288
  async function loadCron() {
7271
7289
  return import("./cron-EOULYO3R.js");
@@ -7790,7 +7808,7 @@ syndicate.command("add").description("Register an agent on a syndicate vault (cr
7790
7808
  if (opts.agentId) {
7791
7809
  agentId = BigInt(opts.agentId);
7792
7810
  } else {
7793
- const { AGENT_REGISTRY: AGENT_REGISTRY2 } = await import("./addresses-PYRHQSVZ.js");
7811
+ const { AGENT_REGISTRY: AGENT_REGISTRY2 } = await import("./addresses-FXTJXDI7.js");
7794
7812
  const registry2 = AGENT_REGISTRY2().IDENTITY_REGISTRY;
7795
7813
  if (registry2 === "0x0000000000000000000000000000000000000000") {
7796
7814
  agentId = 0n;
@@ -8404,7 +8422,7 @@ vaultCmd.command("redeem").description("Redeem vault shares for the underlying a
8404
8422
  var strategy = program.command("strategy").description("Strategy templates \u2014 list, clone, propose");
8405
8423
  registerStrategyTemplateCommands(strategy);
8406
8424
  program.command("providers").description("List available DeFi providers").action(async () => {
8407
- const { MessariProvider, NansenProvider } = await import("./research-YJWSQS2A.js");
8425
+ const { MessariProvider, NansenProvider } = await import("./research-N3R5MU6Q.js");
8408
8426
  const providers = [new MoonwellProvider(), new UniswapProvider(), new MessariProvider(), new NansenProvider()];
8409
8427
  for (const p of providers) {
8410
8428
  const info = p.info();
@@ -8415,7 +8433,7 @@ ${info.name} (${info.type})`);
8415
8433
  }
8416
8434
  });
8417
8435
  try {
8418
- const { registerChatCommands } = await import("./chat-J5G63PFI.js");
8436
+ const { registerChatCommands } = await import("./chat-IPSP5FBQ.js");
8419
8437
  registerChatCommands(program);
8420
8438
  } catch {
8421
8439
  program.command("chat <name> [action] [actionArgs...]").description("Syndicate chat (XMTP) \u2014 requires @xmtp/cli").action(() => {
@@ -8425,7 +8443,7 @@ try {
8425
8443
  process.exit(1);
8426
8444
  });
8427
8445
  }
8428
- var { registerSessionCommands } = await import("./session-U3NEZJ7X.js");
8446
+ var { registerSessionCommands } = await import("./session-NQBWTJYS.js");
8429
8447
  registerSessionCommands(program);
8430
8448
  registerVeniceCommands(program);
8431
8449
  registerAllowanceCommands(program);
@@ -8433,11 +8451,11 @@ registerIdentityCommands(program);
8433
8451
  registerProposalCommands(program);
8434
8452
  registerGovernorCommands(program);
8435
8453
  registerGuardianCommands(program);
8436
- var { registerResearchCommands } = await import("./research-PZRG36KL.js");
8454
+ var { registerResearchCommands } = await import("./research-LRIALMFZ.js");
8437
8455
  registerResearchCommands(program);
8438
- var { registerAgentCommands } = await import("./agent-QI7GVRJV.js");
8456
+ var { registerAgentCommands } = await import("./agent-IVESTCYM.js");
8439
8457
  registerAgentCommands(program);
8440
- var { registerTradeCommands } = await import("./trade-HSNABOTJ.js");
8458
+ var { registerTradeCommands } = await import("./trade-SRM3OYFW.js");
8441
8459
  registerTradeCommands(program);
8442
8460
  registerGridCommand(program);
8443
8461
  var configCmd = program.command("config");