@sherwoodagent/cli 0.19.0 → 0.19.2

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 (49) hide show
  1. package/dist/{chat-MUUC5L5W.js → chat-WKOSUZXO.js} +7 -7
  2. package/dist/{chunk-HRA2KPGW.js → chunk-I7CKBBOG.js} +3 -3
  3. package/dist/{chunk-W76CHVD3.js → chunk-LHDWONBI.js} +2 -2
  4. package/dist/{chunk-WHCXQBPS.js → chunk-P4J6FKAP.js} +4 -4
  5. package/dist/{chunk-VZZ2V6EM.js → chunk-QT7BUKWR.js} +5 -5
  6. package/dist/{chunk-B4BMCXWK.js → chunk-SZ5QQJGA.js} +2 -2
  7. package/dist/chunk-SZ5QQJGA.js.map +1 -0
  8. package/dist/{chunk-FEDSWXSD.js → chunk-TAAEMX3L.js} +2 -2
  9. package/dist/{chunk-G2RQLZZI.js → chunk-WWH4GD3N.js} +10 -10
  10. package/dist/chunk-WWH4GD3N.js.map +1 -0
  11. package/dist/{chunk-ZXV4TBPE.js → chunk-XR2ZUO4R.js} +2 -2
  12. package/dist/{chunk-DCT3IDBS.js → chunk-YJAMY25R.js} +14 -7
  13. package/dist/chunk-YJAMY25R.js.map +1 -0
  14. package/dist/{client-I56MIQAM.js → client-3AAXAX4C.js} +4 -4
  15. package/dist/{config-2VMLHIXD.js → config-IDAHD7S3.js} +2 -2
  16. package/dist/{eas-YZF6MN65.js → eas-MPDYDPJK.js} +6 -6
  17. package/dist/{governor-ZWKGLGMG.js → governor-J3W67NXA.js} +6 -6
  18. package/dist/index.js +36 -25
  19. package/dist/index.js.map +1 -1
  20. package/dist/{network-3MVRM7O4.js → network-DBUZ7GRF.js} +3 -3
  21. package/dist/research-DZINC4N4.js +14 -0
  22. package/dist/{research-VZKLOTMU.js → research-LOSOHKOJ.js} +12 -8
  23. package/dist/research-LOSOHKOJ.js.map +1 -0
  24. package/dist/{session-X3QFFCJ7.js → session-Q2WRYXYF.js} +10 -10
  25. package/dist/{trade-YCBFXOB3.js → trade-JLQPIA5W.js} +20 -12
  26. package/dist/trade-JLQPIA5W.js.map +1 -0
  27. package/dist/{xmtp-IH57GYSR.js → xmtp-7DF7UG66.js} +6 -6
  28. package/package.json +1 -1
  29. package/dist/chunk-B4BMCXWK.js.map +0 -1
  30. package/dist/chunk-DCT3IDBS.js.map +0 -1
  31. package/dist/chunk-G2RQLZZI.js.map +0 -1
  32. package/dist/research-HC2UOLFT.js +0 -14
  33. package/dist/research-VZKLOTMU.js.map +0 -1
  34. package/dist/trade-YCBFXOB3.js.map +0 -1
  35. /package/dist/{chat-MUUC5L5W.js.map → chat-WKOSUZXO.js.map} +0 -0
  36. /package/dist/{chunk-HRA2KPGW.js.map → chunk-I7CKBBOG.js.map} +0 -0
  37. /package/dist/{chunk-W76CHVD3.js.map → chunk-LHDWONBI.js.map} +0 -0
  38. /package/dist/{chunk-WHCXQBPS.js.map → chunk-P4J6FKAP.js.map} +0 -0
  39. /package/dist/{chunk-VZZ2V6EM.js.map → chunk-QT7BUKWR.js.map} +0 -0
  40. /package/dist/{chunk-FEDSWXSD.js.map → chunk-TAAEMX3L.js.map} +0 -0
  41. /package/dist/{chunk-ZXV4TBPE.js.map → chunk-XR2ZUO4R.js.map} +0 -0
  42. /package/dist/{client-I56MIQAM.js.map → client-3AAXAX4C.js.map} +0 -0
  43. /package/dist/{config-2VMLHIXD.js.map → config-IDAHD7S3.js.map} +0 -0
  44. /package/dist/{eas-YZF6MN65.js.map → eas-MPDYDPJK.js.map} +0 -0
  45. /package/dist/{governor-ZWKGLGMG.js.map → governor-J3W67NXA.js.map} +0 -0
  46. /package/dist/{network-3MVRM7O4.js.map → network-DBUZ7GRF.js.map} +0 -0
  47. /package/dist/{research-HC2UOLFT.js.map → research-DZINC4N4.js.map} +0 -0
  48. /package/dist/{session-X3QFFCJ7.js.map → session-Q2WRYXYF.js.map} +0 -0
  49. /package/dist/{xmtp-IH57GYSR.js.map → xmtp-7DF7UG66.js.map} +0 -0
package/dist/index.js CHANGED
@@ -9,7 +9,7 @@ import {
9
9
  getQuote,
10
10
  listModels,
11
11
  provisionApiKey
12
- } from "./chunk-DCT3IDBS.js";
12
+ } from "./chunk-YJAMY25R.js";
13
13
  import {
14
14
  PROPOSAL_STATE,
15
15
  PROPOSAL_STATES,
@@ -40,7 +40,7 @@ import {
40
40
  setVotingPeriod,
41
41
  settleProposal,
42
42
  vote
43
- } from "./chunk-WHCXQBPS.js";
43
+ } from "./chunk-P4J6FKAP.js";
44
44
  import {
45
45
  fetchMetadata,
46
46
  uploadMetadata
@@ -52,7 +52,7 @@ import {
52
52
  queryApprovals,
53
53
  queryJoinRequests,
54
54
  revokeAttestation
55
- } from "./chunk-G2RQLZZI.js";
55
+ } from "./chunk-WWH4GD3N.js";
56
56
  import {
57
57
  approveDepositor,
58
58
  deposit,
@@ -68,7 +68,7 @@ import {
68
68
  resolveVaultSyndicate,
69
69
  setTextRecord,
70
70
  setVaultAddress
71
- } from "./chunk-VZZ2V6EM.js";
71
+ } from "./chunk-QT7BUKWR.js";
72
72
  import {
73
73
  AERODROME,
74
74
  AGENT_REGISTRY,
@@ -86,14 +86,14 @@ import {
86
86
  UNISWAP,
87
87
  VENICE,
88
88
  VENICE_STAKING_ABI
89
- } from "./chunk-W76CHVD3.js";
89
+ } from "./chunk-LHDWONBI.js";
90
90
  import {
91
91
  getAccount,
92
92
  getPublicClient,
93
93
  getWalletClient,
94
94
  sendTxWithRetry,
95
95
  writeContractWithRetry
96
- } from "./chunk-HRA2KPGW.js";
96
+ } from "./chunk-I7CKBBOG.js";
97
97
  import {
98
98
  VALID_NETWORKS,
99
99
  getChain,
@@ -102,7 +102,7 @@ import {
102
102
  getRpcUrl,
103
103
  isTestnet,
104
104
  setNetwork
105
- } from "./chunk-FEDSWXSD.js";
105
+ } from "./chunk-TAAEMX3L.js";
106
106
  import {
107
107
  cacheGroupId,
108
108
  getAgentId,
@@ -116,8 +116,9 @@ import {
116
116
  setConfigRpcUrl,
117
117
  setNotifyTo,
118
118
  setPrivateKey,
119
- setUniswapApiKey
120
- } from "./chunk-B4BMCXWK.js";
119
+ setUniswapApiKey,
120
+ setVeniceApiKey
121
+ } from "./chunk-SZ5QQJGA.js";
121
122
 
122
123
  // src/index.ts
123
124
  import { config as loadDotenv } from "dotenv";
@@ -873,9 +874,9 @@ function registerStrategyTemplateCommands(strategy2) {
873
874
  console.error(chalk.red("Missing --name, --performance-fee, or --duration. Use --write-calls to skip proposal submission."));
874
875
  process.exit(1);
875
876
  }
876
- const { propose: propose2 } = await import("./governor-ZWKGLGMG.js");
877
+ const { propose: propose2 } = await import("./governor-J3W67NXA.js");
877
878
  const { pinJSON } = await import("./ipfs-22YLNQ2C.js");
878
- const { parseDuration: parseDuration2 } = await import("./governor-ZWKGLGMG.js");
879
+ const { parseDuration: parseDuration2 } = await import("./governor-J3W67NXA.js");
879
880
  const performanceFeeBps = BigInt(opts.performanceFee);
880
881
  if (performanceFeeBps < 0n || performanceFeeBps > 10000n) {
881
882
  console.error(chalk.red("--performance-fee must be 0-10000 (basis points)"));
@@ -1148,7 +1149,7 @@ function registerVeniceCommands(program2) {
1148
1149
  console.log(chalk2.dim(` Key: ${apiKey.slice(0, 8)}...${apiKey.slice(-4)}`));
1149
1150
  console.log(chalk2.dim(" Saved to ~/.sherwood/config.json"));
1150
1151
  try {
1151
- const { createVeniceProvisionAttestation, getEasScanUrl: getEasScanUrl2 } = await import("./eas-YZF6MN65.js");
1152
+ const { createVeniceProvisionAttestation, getEasScanUrl: getEasScanUrl2 } = await import("./eas-MPDYDPJK.js");
1152
1153
  const { uid } = await createVeniceProvisionAttestation(account.address);
1153
1154
  if (uid !== "0x0000000000000000000000000000000000000000000000000000000000000000") {
1154
1155
  console.log(chalk2.dim(` Attested: ${getEasScanUrl2(uid)}`));
@@ -1257,7 +1258,7 @@ function registerVeniceCommands(program2) {
1257
1258
  process.exit(1);
1258
1259
  }
1259
1260
  });
1260
- venice.command("infer").description("Run private inference via Venice chat completions").requiredOption("--prompt <text>", "User prompt").requiredOption("--model <id>", "Venice model ID (use 'venice models' to list)").option("--system <text>", "System prompt").option("--data <path>", "Path to data file \u2014 contents prepended to prompt as context").option("--web-search", "Enable Venice web search", false).option("--no-thinking", "Disable chain-of-thought reasoning").option("--temperature <n>", "Sampling temperature (0-2)").option("--max-tokens <n>", "Maximum completion tokens").option("--json", "Output raw JSON response", false).action(async (opts) => {
1261
+ venice.command("infer").description("Run private inference via Venice chat completions").requiredOption("--prompt <text>", "User prompt").requiredOption("--model <id>", "Venice model ID (use 'venice models' to list)").option("--system <text>", "System prompt").option("--data <path>", "Path to data file \u2014 contents prepended to prompt as context").option("--web-search", "Enable Venice web search", false).option("--no-thinking", "Disable chain-of-thought reasoning").option("--temperature <n>", "Sampling temperature (0-2)").option("--max-tokens <n>", "Maximum completion tokens").option("--json", "Output raw JSON response", false).option("--vault <address>", "Vault address \u2014 attestation recipient (defaults to config vault)").action(async (opts) => {
1261
1262
  const messages = [];
1262
1263
  if (opts.system) {
1263
1264
  messages.push({ role: "system", content: opts.system });
@@ -1299,14 +1300,18 @@ ${opts.prompt}`;
1299
1300
  console.log(chalk2.dim(`Model: ${result.model} | Tokens: ${result.usage.promptTokens} in, ${result.usage.completionTokens} out, ${result.usage.totalTokens} total`));
1300
1301
  }
1301
1302
  try {
1302
- const { createVeniceInferenceAttestation, getEasScanUrl: getEasScanUrl2 } = await import("./eas-YZF6MN65.js");
1303
- const { keccak256, toHex } = await import("viem");
1303
+ const { createVeniceInferenceAttestation, getEasScanUrl: getEasScanUrl2 } = await import("./eas-MPDYDPJK.js");
1304
+ const { keccak256, toHex, isAddress: isAddr } = await import("viem");
1305
+ const { getChainContracts: getChainContracts2 } = await import("./config-IDAHD7S3.js");
1306
+ const { getChain: getActiveChain } = await import("./network-DBUZ7GRF.js");
1307
+ const vaultRecipient = opts.vault && isAddr(opts.vault) ? opts.vault : getChainContracts2(getActiveChain().id).vault;
1304
1308
  const promptHash = keccak256(toHex(userContent)).slice(0, 18);
1305
1309
  const { uid } = await createVeniceInferenceAttestation(
1306
1310
  result.model,
1307
1311
  result.usage.promptTokens,
1308
1312
  result.usage.completionTokens,
1309
- promptHash
1313
+ promptHash,
1314
+ vaultRecipient
1310
1315
  );
1311
1316
  if (uid !== "0x0000000000000000000000000000000000000000000000000000000000000000") {
1312
1317
  console.log(chalk2.dim(`Attested: ${getEasScanUrl2(uid)}`));
@@ -2282,7 +2287,7 @@ try {
2282
2287
  var require2 = createRequire(import.meta.url);
2283
2288
  var { version: CLI_VERSION } = require2("../package.json");
2284
2289
  async function loadXmtp() {
2285
- return import("./xmtp-IH57GYSR.js");
2290
+ return import("./xmtp-7DF7UG66.js");
2286
2291
  }
2287
2292
  async function loadCron() {
2288
2293
  return import("./cron-SKYKVZ6K.js");
@@ -3014,7 +3019,7 @@ vaultCmd.command("balance").description("Show LP share balance and asset value")
3014
3019
  var strategy = program.command("strategy").description("Strategy templates \u2014 list, clone, propose");
3015
3020
  registerStrategyTemplateCommands(strategy);
3016
3021
  program.command("providers").description("List available DeFi providers").action(async () => {
3017
- const { MessariProvider, NansenProvider } = await import("./research-HC2UOLFT.js");
3022
+ const { MessariProvider, NansenProvider } = await import("./research-DZINC4N4.js");
3018
3023
  const providers = [new MoonwellProvider(), new UniswapProvider(), new MessariProvider(), new NansenProvider()];
3019
3024
  for (const p of providers) {
3020
3025
  const info = p.info();
@@ -3025,7 +3030,7 @@ ${info.name} (${info.type})`);
3025
3030
  }
3026
3031
  });
3027
3032
  try {
3028
- const { registerChatCommands } = await import("./chat-MUUC5L5W.js");
3033
+ const { registerChatCommands } = await import("./chat-WKOSUZXO.js");
3029
3034
  registerChatCommands(program);
3030
3035
  } catch {
3031
3036
  program.command("chat <name> [action] [actionArgs...]").description("Syndicate chat (XMTP) \u2014 requires @xmtp/cli").action(() => {
@@ -3035,19 +3040,19 @@ try {
3035
3040
  process.exit(1);
3036
3041
  });
3037
3042
  }
3038
- var { registerSessionCommands } = await import("./session-X3QFFCJ7.js");
3043
+ var { registerSessionCommands } = await import("./session-Q2WRYXYF.js");
3039
3044
  registerSessionCommands(program);
3040
3045
  registerVeniceCommands(program);
3041
3046
  registerAllowanceCommands(program);
3042
3047
  registerIdentityCommands(program);
3043
3048
  registerProposalCommands(program);
3044
3049
  registerGovernorCommands(program);
3045
- var { registerResearchCommands } = await import("./research-VZKLOTMU.js");
3050
+ var { registerResearchCommands } = await import("./research-LOSOHKOJ.js");
3046
3051
  registerResearchCommands(program);
3047
- var { registerTradeCommands } = await import("./trade-YCBFXOB3.js");
3052
+ var { registerTradeCommands } = await import("./trade-JLQPIA5W.js");
3048
3053
  registerTradeCommands(program);
3049
3054
  var configCmd = program.command("config");
3050
- configCmd.command("set").description("Save settings to ~/.sherwood/config.json (persists across sessions)").option("--private-key <key>", "Wallet private key (0x-prefixed)").option("--vault <address>", "Default SyndicateVault address").option("--rpc <url>", "Custom RPC URL for the active --chain network").option("--notify-to <id>", "Destination for cron summaries (Telegram chat ID, phone, etc.)").option("--uniswap-api-key <key>", "Uniswap Trading API key (from developers.uniswap.org)").action((opts) => {
3055
+ configCmd.command("set").description("Save settings to ~/.sherwood/config.json (persists across sessions)").option("--private-key <key>", "Wallet private key (0x-prefixed)").option("--vault <address>", "Default SyndicateVault address").option("--rpc <url>", "Custom RPC URL for the active --chain network").option("--notify-to <id>", "Destination for cron summaries (Telegram chat ID, phone, etc.)").option("--uniswap-api-key <key>", "Uniswap Trading API key (from developers.uniswap.org)").option("--venice-api-key <key>", "Venice AI inference API key").action((opts) => {
3051
3056
  let saved = false;
3052
3057
  if (opts.privateKey) {
3053
3058
  setPrivateKey(opts.privateKey);
@@ -3081,8 +3086,13 @@ configCmd.command("set").description("Save settings to ~/.sherwood/config.json (
3081
3086
  console.log(chalk7.green("Uniswap API key saved to ~/.sherwood/config.json"));
3082
3087
  saved = true;
3083
3088
  }
3089
+ if (opts.veniceApiKey) {
3090
+ setVeniceApiKey(opts.veniceApiKey);
3091
+ console.log(chalk7.green("Venice API key saved to ~/.sherwood/config.json"));
3092
+ saved = true;
3093
+ }
3084
3094
  if (!saved) {
3085
- console.log(chalk7.red("Provide at least one of: --private-key, --vault, --rpc, --notify-to, --uniswap-api-key"));
3095
+ console.log(chalk7.red("Provide at least one of: --private-key, --vault, --rpc, --notify-to, --uniswap-api-key, --venice-api-key"));
3086
3096
  process.exit(1);
3087
3097
  }
3088
3098
  });
@@ -3100,7 +3110,8 @@ configCmd.command("show").description("Display current config for the active net
3100
3110
  console.log(` Wallet: ${config.privateKey ? chalk7.green("configured") : chalk7.dim("not set")}`);
3101
3111
  console.log(` Agent ID: ${config.agentId ?? chalk7.dim("not set")}`);
3102
3112
  console.log(` Vault: ${contracts.vault ?? chalk7.dim("not set")}`);
3103
- console.log(` Uniswap: ${getUniswapApiKey() ? chalk7.green("API key configured") : chalk7.dim("not set")}`);
3113
+ console.log(` Uniswap: ${getUniswapApiKey() ? chalk7.green("API key configured") : chalk7.dim("not set")}`);
3114
+ console.log(` Venice: ${getVeniceApiKey() ? chalk7.green("API key configured") : chalk7.dim("not set")}`);
3104
3115
  console.log();
3105
3116
  console.log(chalk7.dim(" Config file: ~/.sherwood/config.json"));
3106
3117
  console.log();