@sherwoodagent/cli 0.89.2 → 0.89.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.
- package/dist/{agent-K5ZKUS47.js → agent-QU2OSWS4.js} +4 -4
- package/dist/{chat-QVDOCCJN.js → chat-EVRY5BV3.js} +5 -5
- package/dist/{chunk-QEX2TWJV.js → chunk-2SIUEMPV.js} +2 -2
- package/dist/{chunk-TWJXGEBZ.js → chunk-5XMQQ4LX.js} +2 -2
- package/dist/{chunk-MIW4CBSU.js → chunk-6KXITNND.js} +2 -2
- package/dist/{chunk-JLOROS5V.js → chunk-74QYNLJE.js} +2 -2
- package/dist/{chunk-VD65GJOY.js → chunk-DQZJULNP.js} +2 -2
- package/dist/{chunk-Z53JZORT.js → chunk-I7NYU4JB.js} +28 -4
- package/dist/chunk-I7NYU4JB.js.map +1 -0
- package/dist/{chunk-LVGYGXAV.js → chunk-KPTKX226.js} +2 -2
- package/dist/{chunk-VVCSD2M6.js → chunk-KXUA5BEH.js} +2 -2
- package/dist/{chunk-TGWTRG3V.js → chunk-NJNK6GTJ.js} +3 -3
- package/dist/{chunk-H6AJMPLT.js → chunk-UCULHATO.js} +3 -3
- package/dist/{chunk-OYP35TFK.js → chunk-WAF3JU5J.js} +3 -3
- package/dist/{chunk-6IC2NRED.js → chunk-WIUPOQNS.js} +2 -2
- package/dist/{client-DA434B67.js → client-3BFK7TNL.js} +2 -2
- package/dist/{eas-F6KOWI4W.js → eas-YTAAJSLU.js} +3 -3
- package/dist/{governor-6HCXMRIA.js → governor-53PNPDCZ.js} +3 -3
- package/dist/{identity-2JEZE7DV.js → identity-462SMK5H.js} +4 -4
- package/dist/index.js +157 -37
- package/dist/index.js.map +1 -1
- package/dist/{launchpad-XM4546BO.js → launchpad-LHMBN4TV.js} +3 -3
- package/dist/{lighter-preflight-7J3IO27F.js → lighter-preflight-TSLSSYWI.js} +2 -2
- package/dist/{price-4FGWEPKX.js → price-QKOARHS4.js} +3 -3
- package/dist/{providers-XEEFKITN.js → providers-22A42FKP.js} +3 -3
- package/dist/{research-CJOSSD4U.js → research-3L3BTHWY.js} +5 -5
- package/dist/{session-775NKMGH.js → session-27X337LQ.js} +6 -6
- package/dist/{trade-PCK3LONN.js → trade-6Q7VCDEA.js} +9 -9
- package/dist/{vault-NLMVWYDF.js → vault-TQWUWBSG.js} +5 -5
- package/dist/{xmtp-H5GTOJ43.js → xmtp-EOMKXRTB.js} +3 -3
- package/package.json +1 -1
- package/dist/chunk-Z53JZORT.js.map +0 -1
- /package/dist/{agent-K5ZKUS47.js.map → agent-QU2OSWS4.js.map} +0 -0
- /package/dist/{chat-QVDOCCJN.js.map → chat-EVRY5BV3.js.map} +0 -0
- /package/dist/{chunk-QEX2TWJV.js.map → chunk-2SIUEMPV.js.map} +0 -0
- /package/dist/{chunk-TWJXGEBZ.js.map → chunk-5XMQQ4LX.js.map} +0 -0
- /package/dist/{chunk-MIW4CBSU.js.map → chunk-6KXITNND.js.map} +0 -0
- /package/dist/{chunk-JLOROS5V.js.map → chunk-74QYNLJE.js.map} +0 -0
- /package/dist/{chunk-VD65GJOY.js.map → chunk-DQZJULNP.js.map} +0 -0
- /package/dist/{chunk-LVGYGXAV.js.map → chunk-KPTKX226.js.map} +0 -0
- /package/dist/{chunk-VVCSD2M6.js.map → chunk-KXUA5BEH.js.map} +0 -0
- /package/dist/{chunk-TGWTRG3V.js.map → chunk-NJNK6GTJ.js.map} +0 -0
- /package/dist/{chunk-H6AJMPLT.js.map → chunk-UCULHATO.js.map} +0 -0
- /package/dist/{chunk-OYP35TFK.js.map → chunk-WAF3JU5J.js.map} +0 -0
- /package/dist/{chunk-6IC2NRED.js.map → chunk-WIUPOQNS.js.map} +0 -0
- /package/dist/{client-DA434B67.js.map → client-3BFK7TNL.js.map} +0 -0
- /package/dist/{eas-F6KOWI4W.js.map → eas-YTAAJSLU.js.map} +0 -0
- /package/dist/{governor-6HCXMRIA.js.map → governor-53PNPDCZ.js.map} +0 -0
- /package/dist/{identity-2JEZE7DV.js.map → identity-462SMK5H.js.map} +0 -0
- /package/dist/{launchpad-XM4546BO.js.map → launchpad-LHMBN4TV.js.map} +0 -0
- /package/dist/{lighter-preflight-7J3IO27F.js.map → lighter-preflight-TSLSSYWI.js.map} +0 -0
- /package/dist/{price-4FGWEPKX.js.map → price-QKOARHS4.js.map} +0 -0
- /package/dist/{providers-XEEFKITN.js.map → providers-22A42FKP.js.map} +0 -0
- /package/dist/{research-CJOSSD4U.js.map → research-3L3BTHWY.js.map} +0 -0
- /package/dist/{session-775NKMGH.js.map → session-27X337LQ.js.map} +0 -0
- /package/dist/{trade-PCK3LONN.js.map → trade-6Q7VCDEA.js.map} +0 -0
- /package/dist/{vault-NLMVWYDF.js.map → vault-TQWUWBSG.js.map} +0 -0
- /package/dist/{xmtp-H5GTOJ43.js.map → xmtp-EOMKXRTB.js.map} +0 -0
package/dist/index.js
CHANGED
|
@@ -15,14 +15,14 @@ import {
|
|
|
15
15
|
checkApiKeyValid,
|
|
16
16
|
listModels,
|
|
17
17
|
provisionApiKey
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-74QYNLJE.js";
|
|
19
19
|
import {
|
|
20
20
|
createFund,
|
|
21
21
|
getActiveFunds,
|
|
22
22
|
getFund,
|
|
23
23
|
subdomainExists,
|
|
24
24
|
updateMetadata
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-DQZJULNP.js";
|
|
26
26
|
import {
|
|
27
27
|
FORK_UNOBSERVABLE_REASON,
|
|
28
28
|
LIGHTER_API_PROFILES,
|
|
@@ -54,8 +54,8 @@ import {
|
|
|
54
54
|
removeDepositor,
|
|
55
55
|
setAgentFeeBps,
|
|
56
56
|
setVaultAddress
|
|
57
|
-
} from "./chunk-
|
|
58
|
-
import "./chunk-
|
|
57
|
+
} from "./chunk-WAF3JU5J.js";
|
|
58
|
+
import "./chunk-NJNK6GTJ.js";
|
|
59
59
|
import {
|
|
60
60
|
CL_DEFAULTS,
|
|
61
61
|
DEFAULT_FEE_TIER,
|
|
@@ -89,7 +89,7 @@ import {
|
|
|
89
89
|
selectBestFeeTier,
|
|
90
90
|
twapTickFromCumulatives,
|
|
91
91
|
v3SingleHopExtraData
|
|
92
|
-
} from "./chunk-
|
|
92
|
+
} from "./chunk-6KXITNND.js";
|
|
93
93
|
import {
|
|
94
94
|
DEFAULT_ISSUING_CHAIN_ID,
|
|
95
95
|
STRATEGY_FACTORY_ABI,
|
|
@@ -123,7 +123,7 @@ import {
|
|
|
123
123
|
registerIdentityCommands,
|
|
124
124
|
stripVidTag,
|
|
125
125
|
verifyVidTag
|
|
126
|
-
} from "./chunk-
|
|
126
|
+
} from "./chunk-UCULHATO.js";
|
|
127
127
|
import {
|
|
128
128
|
fetchMetadata,
|
|
129
129
|
mergeFundMetadata,
|
|
@@ -138,13 +138,13 @@ import {
|
|
|
138
138
|
queryJoinRequests,
|
|
139
139
|
revokeJoinRequest,
|
|
140
140
|
stripReferrerPrefix
|
|
141
|
-
} from "./chunk-
|
|
141
|
+
} from "./chunk-2SIUEMPV.js";
|
|
142
142
|
import {
|
|
143
143
|
resolveFund,
|
|
144
144
|
resolveVaultFund,
|
|
145
145
|
searchFundAcrossChains,
|
|
146
146
|
setTextRecord
|
|
147
|
-
} from "./chunk-
|
|
147
|
+
} from "./chunk-KPTKX226.js";
|
|
148
148
|
import {
|
|
149
149
|
PROPOSAL_STATE,
|
|
150
150
|
PROPOSAL_STATES,
|
|
@@ -183,7 +183,7 @@ import {
|
|
|
183
183
|
setVotingPeriod,
|
|
184
184
|
settleProposal,
|
|
185
185
|
vote
|
|
186
|
-
} from "./chunk-
|
|
186
|
+
} from "./chunk-5XMQQ4LX.js";
|
|
187
187
|
import {
|
|
188
188
|
LIGHTER_DEFAULT_API_KEY_INDEX,
|
|
189
189
|
LIGHTER_MAX_DEPOSIT,
|
|
@@ -206,7 +206,7 @@ import {
|
|
|
206
206
|
} from "./chunk-TCUSM4V7.js";
|
|
207
207
|
import {
|
|
208
208
|
addLaunchpadTemplateOptions
|
|
209
|
-
} from "./chunk-
|
|
209
|
+
} from "./chunk-KXUA5BEH.js";
|
|
210
210
|
import {
|
|
211
211
|
CLAIM_SETTLE_BUFFER_SECONDS,
|
|
212
212
|
DEFAULT_DEADLINE_MARGIN_SECONDS,
|
|
@@ -247,7 +247,7 @@ import {
|
|
|
247
247
|
sendTxWithRetry,
|
|
248
248
|
waitForReceipt,
|
|
249
249
|
writeContractWithRetry
|
|
250
|
-
} from "./chunk-
|
|
250
|
+
} from "./chunk-I7NYU4JB.js";
|
|
251
251
|
import {
|
|
252
252
|
DEFAULT_NETWORK,
|
|
253
253
|
VALID_NETWORKS,
|
|
@@ -1984,7 +1984,7 @@ function registerStrategyProposeCommands(strategy2) {
|
|
|
1984
1984
|
}
|
|
1985
1985
|
}
|
|
1986
1986
|
if (templateKey === "lighter-perp") {
|
|
1987
|
-
const { runLighterProposePreflight } = await import("./lighter-preflight-
|
|
1987
|
+
const { runLighterProposePreflight } = await import("./lighter-preflight-TSLSSYWI.js");
|
|
1988
1988
|
await runLighterProposePreflight(vault, opts, maxDrawdownBps);
|
|
1989
1989
|
}
|
|
1990
1990
|
} catch (err) {
|
|
@@ -1992,7 +1992,7 @@ function registerStrategyProposeCommands(strategy2) {
|
|
|
1992
1992
|
process.exit(1);
|
|
1993
1993
|
}
|
|
1994
1994
|
if (!opts.agent) opts.agent = proposer;
|
|
1995
|
-
const { parseDuration: parseDuration3, getGovernorOf: getGovernorOf2 } = await import("./governor-
|
|
1995
|
+
const { parseDuration: parseDuration3, getGovernorOf: getGovernorOf2 } = await import("./governor-53PNPDCZ.js");
|
|
1996
1996
|
const strategyDuration2 = parseDuration3(opts.duration);
|
|
1997
1997
|
const chainId = getChain().id;
|
|
1998
1998
|
try {
|
|
@@ -2110,7 +2110,7 @@ function registerStrategyProposeCommands(strategy2) {
|
|
|
2110
2110
|
}
|
|
2111
2111
|
}
|
|
2112
2112
|
if (templateKey === "lighter-perp") {
|
|
2113
|
-
const { runLighterProposePreflight } = await import("./lighter-preflight-
|
|
2113
|
+
const { runLighterProposePreflight } = await import("./lighter-preflight-TSLSSYWI.js");
|
|
2114
2114
|
await runLighterProposePreflight(vault, opts, maxDrawdownBps);
|
|
2115
2115
|
}
|
|
2116
2116
|
preflightSpinner.succeed("Preflight OK");
|
|
@@ -2227,9 +2227,9 @@ function registerStrategyProposeCommands(strategy2) {
|
|
|
2227
2227
|
console.error(chalk4.red("Missing --name or --duration. Use --write-calls to skip proposal submission."));
|
|
2228
2228
|
process.exit(1);
|
|
2229
2229
|
}
|
|
2230
|
-
const { propose: propose2 } = await import("./governor-
|
|
2230
|
+
const { propose: propose2 } = await import("./governor-53PNPDCZ.js");
|
|
2231
2231
|
const { pinJSON } = await import("./ipfs-M56BLMCW.js");
|
|
2232
|
-
const { parseDuration: parseDuration2 } = await import("./governor-
|
|
2232
|
+
const { parseDuration: parseDuration2 } = await import("./governor-53PNPDCZ.js");
|
|
2233
2233
|
const strategyDuration = parseDuration2(opts.duration);
|
|
2234
2234
|
const metaSpinner = ora2("Pinning metadata to IPFS...").start();
|
|
2235
2235
|
let metadataURI;
|
|
@@ -2261,7 +2261,7 @@ function registerStrategyProposeCommands(strategy2) {
|
|
|
2261
2261
|
metadataURI = `data:application/json;base64,${Buffer.from(inline).toString("base64")}`;
|
|
2262
2262
|
}
|
|
2263
2263
|
try {
|
|
2264
|
-
const { getAgentFeeBps: getAgentFeeBps2 } = await import("./vault-
|
|
2264
|
+
const { getAgentFeeBps: getAgentFeeBps2 } = await import("./vault-TQWUWBSG.js");
|
|
2265
2265
|
const feeBps = await getAgentFeeBps2(vault);
|
|
2266
2266
|
console.log(
|
|
2267
2267
|
chalk4.yellow(
|
|
@@ -2312,7 +2312,7 @@ function registerStrategyProposeCommands(strategy2) {
|
|
|
2312
2312
|
console.log(chalk4.yellow(` asset.approve(${clone}, <repaymentAmount>)`));
|
|
2313
2313
|
}
|
|
2314
2314
|
if (templateKey === "lighter-perp") {
|
|
2315
|
-
const { lighterNextSteps } = await import("./lighter-preflight-
|
|
2315
|
+
const { lighterNextSteps } = await import("./lighter-preflight-TSLSSYWI.js");
|
|
2316
2316
|
console.log();
|
|
2317
2317
|
for (const line of lighterNextSteps(clone)) console.log(chalk4.yellow(line));
|
|
2318
2318
|
}
|
|
@@ -2584,7 +2584,7 @@ function registerStrategyTemplateCommands(strategy2) {
|
|
|
2584
2584
|
let prices = [];
|
|
2585
2585
|
let priceSource = null;
|
|
2586
2586
|
try {
|
|
2587
|
-
const { getTokenPricesInAsset } = await import("./price-
|
|
2587
|
+
const { getTokenPricesInAsset } = await import("./price-QKOARHS4.js");
|
|
2588
2588
|
prices = await getTokenPricesInAsset({
|
|
2589
2589
|
tokens: allocations.map((a, i) => ({
|
|
2590
2590
|
token: a.token,
|
|
@@ -3001,7 +3001,7 @@ function registerVeniceCommands(program2) {
|
|
|
3001
3001
|
console.log(chalk6.dim(` Key: ${apiKey.slice(0, 8)}...${apiKey.slice(-4)}`));
|
|
3002
3002
|
console.log(chalk6.dim(" Saved to ~/.sherwood/config.json"));
|
|
3003
3003
|
try {
|
|
3004
|
-
const { createVeniceProvisionAttestation, getEasScanUrl } = await import("./eas-
|
|
3004
|
+
const { createVeniceProvisionAttestation, getEasScanUrl } = await import("./eas-YTAAJSLU.js");
|
|
3005
3005
|
const attestation = await createVeniceProvisionAttestation(account.address);
|
|
3006
3006
|
if (attestation) {
|
|
3007
3007
|
console.log(chalk6.dim(` Attested: ${getEasScanUrl(attestation.uid)}`));
|
|
@@ -3357,7 +3357,7 @@ ${opts.prompt}`;
|
|
|
3357
3357
|
console.log(chalk6.dim(`Model: ${result.model} | Tokens: ${result.usage.promptTokens} in, ${result.usage.completionTokens} out, ${result.usage.totalTokens} total`));
|
|
3358
3358
|
}
|
|
3359
3359
|
try {
|
|
3360
|
-
const { createVeniceInferenceAttestation, getEasScanUrl } = await import("./eas-
|
|
3360
|
+
const { createVeniceInferenceAttestation, getEasScanUrl } = await import("./eas-YTAAJSLU.js");
|
|
3361
3361
|
const { keccak256: keccak2562, toHex, isAddress: isAddr } = await import("viem");
|
|
3362
3362
|
const { getChainContracts: getChainContracts2 } = await import("./config-UZ2GIXAO.js");
|
|
3363
3363
|
const { getChain: getActiveChain } = await import("./network-EZ5X2BF7.js");
|
|
@@ -4356,8 +4356,8 @@ function printSimulationResult(result, callType) {
|
|
|
4356
4356
|
}
|
|
4357
4357
|
async function sendSimulationAlert(subdomain, proposalId, vault, execResult, settleResult) {
|
|
4358
4358
|
try {
|
|
4359
|
-
const xmtp = await import("./xmtp-
|
|
4360
|
-
const { getAccount: getAccount2 } = await import("./client-
|
|
4359
|
+
const xmtp = await import("./xmtp-EOMKXRTB.js");
|
|
4360
|
+
const { getAccount: getAccount2 } = await import("./client-3BFK7TNL.js");
|
|
4361
4361
|
const group = await xmtp.getGroup("", subdomain);
|
|
4362
4362
|
const allRisks = [...execResult.risks, ...settleResult?.risks ?? []];
|
|
4363
4363
|
const criticals = allRisks.filter((r) => r.level === "critical");
|
|
@@ -5858,6 +5858,20 @@ var VAULT_QUEUE_ABI = [
|
|
|
5858
5858
|
inputs: [],
|
|
5859
5859
|
outputs: [{ name: "", type: "address" }]
|
|
5860
5860
|
},
|
|
5861
|
+
{
|
|
5862
|
+
name: "redemptionsLocked",
|
|
5863
|
+
type: "function",
|
|
5864
|
+
stateMutability: "view",
|
|
5865
|
+
inputs: [],
|
|
5866
|
+
outputs: [{ name: "", type: "bool" }]
|
|
5867
|
+
},
|
|
5868
|
+
{
|
|
5869
|
+
name: "depositsLocked",
|
|
5870
|
+
type: "function",
|
|
5871
|
+
stateMutability: "view",
|
|
5872
|
+
inputs: [],
|
|
5873
|
+
outputs: [{ name: "", type: "bool" }]
|
|
5874
|
+
},
|
|
5861
5875
|
{
|
|
5862
5876
|
type: "event",
|
|
5863
5877
|
name: "DepositRequested",
|
|
@@ -5938,6 +5952,103 @@ var QUEUE_ABI = [
|
|
|
5938
5952
|
}
|
|
5939
5953
|
];
|
|
5940
5954
|
var KIND_LABELS = ["Redeem", "Deposit"];
|
|
5955
|
+
var KIND_REDEEM = 0;
|
|
5956
|
+
var NEVER_STAMPS = /* @__PURE__ */ new Set([
|
|
5957
|
+
PROPOSAL_STATE.Rejected,
|
|
5958
|
+
PROPOSAL_STATE.Expired,
|
|
5959
|
+
PROPOSAL_STATE.Cancelled,
|
|
5960
|
+
PROPOSAL_STATE.Settled
|
|
5961
|
+
]);
|
|
5962
|
+
function classifyRequest(args) {
|
|
5963
|
+
const { request: r, stamped, proposalState } = args;
|
|
5964
|
+
if (r.claimed) return { kind: "claimed" };
|
|
5965
|
+
if (r.cancelled) return { kind: "cancelled" };
|
|
5966
|
+
if (r.kind === KIND_REDEEM) {
|
|
5967
|
+
if (!stamped) {
|
|
5968
|
+
if (proposalState !== void 0 && NEVER_STAMPS.has(proposalState)) {
|
|
5969
|
+
return { kind: "stranded", pid: r.pid, state: PROPOSAL_STATES[proposalState] ?? `state ${proposalState}` };
|
|
5970
|
+
}
|
|
5971
|
+
return { kind: "waiting", pid: r.pid };
|
|
5972
|
+
}
|
|
5973
|
+
return args.redemptionsLocked ? { kind: "locked" } : { kind: "claimable" };
|
|
5974
|
+
}
|
|
5975
|
+
return args.depositsLocked ? { kind: "locked" } : { kind: "claimable" };
|
|
5976
|
+
}
|
|
5977
|
+
function formatRequestStatus(status) {
|
|
5978
|
+
switch (status.kind) {
|
|
5979
|
+
case "claimed":
|
|
5980
|
+
return "claimed";
|
|
5981
|
+
case "cancelled":
|
|
5982
|
+
return "cancelled";
|
|
5983
|
+
case "claimable":
|
|
5984
|
+
return "claimable";
|
|
5985
|
+
case "waiting":
|
|
5986
|
+
return `waiting for pid ${status.pid} to settle`;
|
|
5987
|
+
case "stranded":
|
|
5988
|
+
return `stranded (pid ${status.pid} ended ${status.state} \u2014 cancel it)`;
|
|
5989
|
+
case "locked":
|
|
5990
|
+
return "waiting for vault to unlock";
|
|
5991
|
+
}
|
|
5992
|
+
}
|
|
5993
|
+
function claimRefusal(status, vault, id) {
|
|
5994
|
+
const cancelCmd = `sherwood queue cancel --vault ${vault} --id ${id}`;
|
|
5995
|
+
switch (status.kind) {
|
|
5996
|
+
case "claimable":
|
|
5997
|
+
return void 0;
|
|
5998
|
+
case "claimed":
|
|
5999
|
+
return `Request #${id} has already been claimed.`;
|
|
6000
|
+
case "cancelled":
|
|
6001
|
+
return `Request #${id} was cancelled \u2014 its escrow was already returned.`;
|
|
6002
|
+
case "stranded":
|
|
6003
|
+
return `Request #${id} is stranded: pid ${status.pid} ended ${status.state} without settling, so no claim price will ever be stamped (claim would revert NotSettled).
|
|
6004
|
+
Get the shares back with:
|
|
6005
|
+
${cancelCmd}
|
|
6006
|
+
then redeem directly.`;
|
|
6007
|
+
case "waiting":
|
|
6008
|
+
return `Request #${id} is waiting for pid ${status.pid} to settle \u2014 no claim price is stamped yet (claim would revert NotSettled). Retry after it settles.
|
|
6009
|
+
If pid ${status.pid} ends Rejected/Expired/Cancelled instead, run:
|
|
6010
|
+
${cancelCmd}`;
|
|
6011
|
+
case "locked":
|
|
6012
|
+
return `Request #${id} cannot be claimed while the vault is locked by an open proposal (claim would revert VaultLocked). Retry once it settles.`;
|
|
6013
|
+
}
|
|
6014
|
+
}
|
|
6015
|
+
async function loadRequestStatuses(vault, queue, requests) {
|
|
6016
|
+
const client = getPublicClient();
|
|
6017
|
+
const [redemptionsLocked, depositsLocked] = await Promise.all([
|
|
6018
|
+
client.readContract({ address: vault, abi: VAULT_QUEUE_ABI, functionName: "redemptionsLocked" }),
|
|
6019
|
+
client.readContract({ address: vault, abi: VAULT_QUEUE_ABI, functionName: "depositsLocked" })
|
|
6020
|
+
]);
|
|
6021
|
+
const pids = [
|
|
6022
|
+
...new Set(
|
|
6023
|
+
requests.filter((r) => r.kind === KIND_REDEEM && !r.claimed && !r.cancelled).map((r) => r.pid)
|
|
6024
|
+
)
|
|
6025
|
+
];
|
|
6026
|
+
const stampedByPid = /* @__PURE__ */ new Map();
|
|
6027
|
+
const stateByPid = /* @__PURE__ */ new Map();
|
|
6028
|
+
await Promise.all(
|
|
6029
|
+
pids.map(async (pid) => {
|
|
6030
|
+
const sp = await client.readContract({
|
|
6031
|
+
address: queue,
|
|
6032
|
+
abi: QUEUE_ABI,
|
|
6033
|
+
functionName: "getSettlePrice",
|
|
6034
|
+
args: [pid]
|
|
6035
|
+
});
|
|
6036
|
+
stampedByPid.set(pid, sp.stamped);
|
|
6037
|
+
if (!sp.stamped) {
|
|
6038
|
+
stateByPid.set(pid, await getProposalState(vault, pid).catch(() => void 0));
|
|
6039
|
+
}
|
|
6040
|
+
})
|
|
6041
|
+
);
|
|
6042
|
+
return requests.map(
|
|
6043
|
+
(request) => classifyRequest({
|
|
6044
|
+
request,
|
|
6045
|
+
stamped: stampedByPid.get(request.pid) ?? false,
|
|
6046
|
+
proposalState: stateByPid.get(request.pid),
|
|
6047
|
+
redemptionsLocked,
|
|
6048
|
+
depositsLocked
|
|
6049
|
+
})
|
|
6050
|
+
);
|
|
6051
|
+
}
|
|
5941
6052
|
function resolveVaultAddress(opt) {
|
|
5942
6053
|
if (!opt || !isAddress10(opt)) {
|
|
5943
6054
|
console.error(chalk10.red(`Invalid or missing --vault address: ${opt ?? "(none)"}`));
|
|
@@ -6097,9 +6208,17 @@ function registerQueueCommands(program2) {
|
|
|
6097
6208
|
const vault = resolveVaultAddress(opts.vault);
|
|
6098
6209
|
const account = getAccount();
|
|
6099
6210
|
const id = BigInt(opts.id);
|
|
6100
|
-
const spinner = ora7(`
|
|
6211
|
+
const spinner = ora7(`Checking request #${id}...`).start();
|
|
6101
6212
|
try {
|
|
6102
6213
|
const queueAddr = await getQueueAddress(vault);
|
|
6214
|
+
const [status] = await loadRequestStatuses(vault, queueAddr, [await readRequest(queueAddr, id)]);
|
|
6215
|
+
const refusal = claimRefusal(status, vault, id);
|
|
6216
|
+
if (refusal) {
|
|
6217
|
+
spinner.fail(`Not claimable: ${formatRequestStatus(status)}`);
|
|
6218
|
+
console.error(chalk10.yellow(refusal));
|
|
6219
|
+
process.exit(1);
|
|
6220
|
+
}
|
|
6221
|
+
spinner.text = `Claiming request #${id}...`;
|
|
6103
6222
|
const hash = await writeContractWithRetry({
|
|
6104
6223
|
account,
|
|
6105
6224
|
chain: getChain(),
|
|
@@ -6164,20 +6283,21 @@ function registerQueueCommands(program2) {
|
|
|
6164
6283
|
return;
|
|
6165
6284
|
}
|
|
6166
6285
|
const requests = await Promise.all(ids.map((id) => readRequest(queueAddr, id)));
|
|
6286
|
+
const statuses = await loadRequestStatuses(vault, queueAddr, requests);
|
|
6167
6287
|
spinner.stop();
|
|
6168
6288
|
console.log();
|
|
6169
6289
|
console.log(chalk10.bold(`Queue requests (${ids.length}) \u2014 ${account.address}`));
|
|
6170
|
-
console.log(chalk10.dim("\u2500".repeat(
|
|
6290
|
+
console.log(chalk10.dim("\u2500".repeat(100)));
|
|
6171
6291
|
console.log(
|
|
6172
6292
|
chalk10.dim(
|
|
6173
|
-
` ${"id".padEnd(6)}${"kind".padEnd(9)}${"amount".padEnd(26)}${"pid".padEnd(6)}${"claimed".padEnd(9)}cancelled`
|
|
6293
|
+
` ${"id".padEnd(6)}${"kind".padEnd(9)}${"amount".padEnd(26)}${"pid".padEnd(6)}${"claimed".padEnd(9)}${"cancelled".padEnd(11)}status`
|
|
6174
6294
|
)
|
|
6175
6295
|
);
|
|
6176
6296
|
ids.forEach((id, i) => {
|
|
6177
6297
|
const r = requests[i];
|
|
6178
6298
|
const label = KIND_LABELS[r.kind] ?? `kind ${r.kind}`;
|
|
6179
6299
|
console.log(
|
|
6180
|
-
` ${String(id).padEnd(6)}${label.padEnd(9)}${String(r.amount).padEnd(26)}${String(r.pid).padEnd(6)}${String(r.claimed).padEnd(9)}${r.cancelled}`
|
|
6300
|
+
` ${String(id).padEnd(6)}${label.padEnd(9)}${String(r.amount).padEnd(26)}${String(r.pid).padEnd(6)}${String(r.claimed).padEnd(9)}${String(r.cancelled).padEnd(11)}${formatRequestStatus(statuses[i])}`
|
|
6181
6301
|
);
|
|
6182
6302
|
});
|
|
6183
6303
|
console.log();
|
|
@@ -9969,9 +10089,9 @@ try {
|
|
|
9969
10089
|
} catch {
|
|
9970
10090
|
}
|
|
9971
10091
|
var require2 = createRequire(import.meta.url);
|
|
9972
|
-
var CLI_VERSION = "0.89.
|
|
10092
|
+
var CLI_VERSION = "0.89.3";
|
|
9973
10093
|
async function loadXmtp() {
|
|
9974
|
-
return import("./xmtp-
|
|
10094
|
+
return import("./xmtp-EOMKXRTB.js");
|
|
9975
10095
|
}
|
|
9976
10096
|
async function loadCron() {
|
|
9977
10097
|
return import("./cron-E3UAZF5B.js");
|
|
@@ -10642,7 +10762,7 @@ vaultCmd.command("add").description("Register an agent on a vault (creator only)
|
|
|
10642
10762
|
agentId = BigInt(opts.agentId);
|
|
10643
10763
|
} else {
|
|
10644
10764
|
spinner.text = "Looking up ERC-8004 identity from wallet...";
|
|
10645
|
-
const { lookupAgentIdByWallet } = await import("./identity-
|
|
10765
|
+
const { lookupAgentIdByWallet } = await import("./identity-462SMK5H.js");
|
|
10646
10766
|
const resolved = await lookupAgentIdByWallet(agentWallet);
|
|
10647
10767
|
if (resolved === null) {
|
|
10648
10768
|
spinner.fail("Agent wallet does not own an ERC-8004 identity NFT");
|
|
@@ -11345,7 +11465,7 @@ vaultCmd.command("redeem").description("Redeem vault shares for the underlying a
|
|
|
11345
11465
|
var strategy = program.command("strategy").description("Strategy templates \u2014 list, clone, propose");
|
|
11346
11466
|
registerStrategyTemplateCommands(strategy);
|
|
11347
11467
|
program.command("providers").description("List available providers (research + swap routing)").action(async () => {
|
|
11348
|
-
const { listProviders } = await import("./providers-
|
|
11468
|
+
const { listProviders } = await import("./providers-22A42FKP.js");
|
|
11349
11469
|
for (const info2 of listProviders()) {
|
|
11350
11470
|
console.log(`
|
|
11351
11471
|
${info2.name} (${info2.type})`);
|
|
@@ -11355,7 +11475,7 @@ ${info2.name} (${info2.type})`);
|
|
|
11355
11475
|
}
|
|
11356
11476
|
});
|
|
11357
11477
|
try {
|
|
11358
|
-
const { registerChatCommands } = await import("./chat-
|
|
11478
|
+
const { registerChatCommands } = await import("./chat-EVRY5BV3.js");
|
|
11359
11479
|
registerChatCommands(program);
|
|
11360
11480
|
} catch {
|
|
11361
11481
|
program.command("chat <name> [action] [actionArgs...]").description("Vault chat (XMTP) \u2014 requires @xmtp/cli").action(() => {
|
|
@@ -11365,7 +11485,7 @@ try {
|
|
|
11365
11485
|
process.exit(1);
|
|
11366
11486
|
});
|
|
11367
11487
|
}
|
|
11368
|
-
var { registerSessionCommands } = await import("./session-
|
|
11488
|
+
var { registerSessionCommands } = await import("./session-27X337LQ.js");
|
|
11369
11489
|
registerSessionCommands(program);
|
|
11370
11490
|
registerVeniceCommands(program);
|
|
11371
11491
|
registerAllowanceCommands(program);
|
|
@@ -11374,15 +11494,15 @@ registerProposalCommands(program);
|
|
|
11374
11494
|
registerQueueCommands(program);
|
|
11375
11495
|
registerGovernorCommands(program);
|
|
11376
11496
|
registerGuardianCommands(program);
|
|
11377
|
-
var { registerResearchCommands } = await import("./research-
|
|
11497
|
+
var { registerResearchCommands } = await import("./research-3L3BTHWY.js");
|
|
11378
11498
|
registerResearchCommands(program);
|
|
11379
|
-
var { registerAgentCommands } = await import("./agent-
|
|
11499
|
+
var { registerAgentCommands } = await import("./agent-QU2OSWS4.js");
|
|
11380
11500
|
registerAgentCommands(program);
|
|
11381
|
-
var { registerTradeCommands } = await import("./trade-
|
|
11501
|
+
var { registerTradeCommands } = await import("./trade-6Q7VCDEA.js");
|
|
11382
11502
|
registerTradeCommands(program);
|
|
11383
11503
|
registerGridCommand(program);
|
|
11384
11504
|
registerLighterCommands(program);
|
|
11385
|
-
var { registerLaunchpadCommands } = await import("./launchpad-
|
|
11505
|
+
var { registerLaunchpadCommands } = await import("./launchpad-LHMBN4TV.js");
|
|
11386
11506
|
registerLaunchpadCommands(program);
|
|
11387
11507
|
var configCmd = program.command("config");
|
|
11388
11508
|
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 vault 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").option("--anthropic-api-key <key>", "Anthropic Claude API key (for LLM judge)").option("--xmtp-group <subdomain:groupId>", "Cache an XMTP group ID for a vault (e.g. my-vault:abc123)").action((opts) => {
|