shinjuku-shield 0.3.114 → 0.3.115
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/README.md +5 -5
- package/manifest.json +4 -4
- package/package.json +3 -3
- package/shinjuku-wallet.mjs +121 -34
package/README.md
CHANGED
|
@@ -6,19 +6,19 @@ answers privately, in a terminal chat or for your agent app. Its `mcp`
|
|
|
6
6
|
command runs a local MCP server (stdio) for your agent. Your keys never
|
|
7
7
|
leave your machine.
|
|
8
8
|
|
|
9
|
-
This is version 0.3.
|
|
9
|
+
This is version 0.3.115. The npm packages `shinjuku-shield` and
|
|
10
10
|
`shinjuku-shielded` hold the same files. The command is `shinjuku`.
|
|
11
11
|
|
|
12
12
|
## Set up
|
|
13
13
|
|
|
14
14
|
```sh
|
|
15
|
-
npm install -g shinjuku@0.3.
|
|
15
|
+
npm install -g shinjuku@0.3.115
|
|
16
16
|
shinjuku setup
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
Type the two lines as they are. `npx install shinjuku` does not work: npx
|
|
20
20
|
reads `install` as the name of another npm package. To set up without
|
|
21
|
-
installing, type `npx shinjuku@0.3.
|
|
21
|
+
installing, type `npx shinjuku@0.3.115 setup`.
|
|
22
22
|
|
|
23
23
|
Setup makes the wallet on this machine, a private passphrase file, and the
|
|
24
24
|
checked proof tools (about 191 MB), and writes `config.json`. It also writes
|
|
@@ -36,13 +36,13 @@ Every wallet command works after `shinjuku`, for example `shinjuku balance`,
|
|
|
36
36
|
Claude Code:
|
|
37
37
|
|
|
38
38
|
```sh
|
|
39
|
-
claude mcp add --scope user shinjuku -- npx -y --no-audit --no-fund shinjuku-shield@0.3.
|
|
39
|
+
claude mcp add --scope user shinjuku -- npx -y --no-audit --no-fund shinjuku-shield@0.3.115 mcp
|
|
40
40
|
```
|
|
41
41
|
|
|
42
42
|
Claude Desktop (`claude_desktop_config.json`) or Cursor (`~/.cursor/mcp.json`):
|
|
43
43
|
|
|
44
44
|
```json
|
|
45
|
-
{ "mcpServers": { "shinjuku": { "command": "npx", "args": ["-y", "--no-audit", "--no-fund", "shinjuku-shield@0.3.
|
|
45
|
+
{ "mcpServers": { "shinjuku": { "command": "npx", "args": ["-y", "--no-audit", "--no-fund", "shinjuku-shield@0.3.115", "mcp"] } } }
|
|
46
46
|
```
|
|
47
47
|
|
|
48
48
|
On native Windows, if the host cannot find `npx`, use `"command": "cmd"` and
|
package/manifest.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema": "carbon-shielded-wallet/bundle-manifest/v1",
|
|
3
3
|
"file": "shinjuku-wallet.mjs",
|
|
4
|
-
"sha256": "
|
|
5
|
-
"bytes":
|
|
6
|
-
"sourceCommit": "
|
|
4
|
+
"sha256": "148b3f5279bf4b0914aa076c617b9fd51956480a57058dfee4492c208fd72e7a",
|
|
5
|
+
"bytes": 8348544,
|
|
6
|
+
"sourceCommit": "8b4f9050d3ae61ecdd0082ee931761cc2b812f62",
|
|
7
7
|
"sourceDirty": false,
|
|
8
8
|
"installRecordMatchesLockfile": true,
|
|
9
9
|
"releaseRule": "valid only when two fresh npm ci --ignore-scripts builds on different OSes give the same sha256; installRecordMatchesLockfile true means every entry npm installed equals its package-lock.json entry and every entry not marked optional, devOptional included, is installed: an optional entry (a package for another platform) may be absent",
|
|
@@ -1037,5 +1037,5 @@
|
|
|
1037
1037
|
"version": "1.8.0"
|
|
1038
1038
|
}
|
|
1039
1039
|
],
|
|
1040
|
-
"publishedAt": "2026-10-
|
|
1040
|
+
"publishedAt": "2026-10-27T18:51:07.036Z"
|
|
1041
1041
|
}
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "shinjuku-shield",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.115",
|
|
4
4
|
"mcpName": "io.github.ShinjukuStaition/shinjuku-mcp",
|
|
5
5
|
"description": "Shinjuku Shielded, the private x402 facilitator on Solana: the self-custody wallet CLI and its MCP server. Shield, pay, and unshield USDC from any MCP agent, under caps you set.",
|
|
6
|
-
"shinjukuRelease": "
|
|
7
|
-
"shinjukuSha256": "
|
|
6
|
+
"shinjukuRelease": "148b3f52",
|
|
7
|
+
"shinjukuSha256": "148b3f5279bf4b0914aa076c617b9fd51956480a57058dfee4492c208fd72e7a",
|
|
8
8
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
9
9
|
"author": "Shinjuku Shielded",
|
|
10
10
|
"homepage": "https://github.com/ShinjukuStaition/shinjuku-shield#readme",
|
package/shinjuku-wallet.mjs
CHANGED
|
@@ -119388,7 +119388,7 @@ function withEarlyAnswer(tool, {
|
|
|
119388
119388
|
if (open4) {
|
|
119389
119389
|
log(`MCP_PAY_SECOND_REFUSED requestId=${requestId} open=${open4[0]}`);
|
|
119390
119390
|
return { text: JSON.stringify({
|
|
119391
|
-
say: `
|
|
119391
|
+
say: `Nothing was paid for this request: a payment for this ${words2 === PAY_WORDS ? "URL" : "call"} is still open with ${words2.who}. Do not pay again; asking for its result pays nothing more.`,
|
|
119392
119392
|
ok: false,
|
|
119393
119393
|
error: "mcp_payment_still_open",
|
|
119394
119394
|
requestId,
|
|
@@ -119451,7 +119451,7 @@ function withEarlyAnswer(tool, {
|
|
|
119451
119451
|
log(`MCP_PAY_EARLY_ANSWER requestId=${requestId} waited=${secondsWaited}s`);
|
|
119452
119452
|
entry.toldWaiting = true;
|
|
119453
119453
|
const next = `The payment was sent to ${words2.who} (price + fee left the balance), and ${words2.who} ${words2.busyNext}. Do not pay again: call ${tool.name} again with request_id "${requestId}" and ${words2.same} for the result (that call waits up to ${Math.round(earlyAnswerMs / 1e3)} s for it); it never pays twice. A new request_id for the same request is refused while this one is open. The later call's answer says how it ended: ${words2.who}'s answer, or what happened to the payment.`;
|
|
119454
|
-
const say3 = sellerWorkingSeconds < JUST_REACHED_SECONDS ? `Sent to ${words2.who}; the request just reached it. Do not pay again
|
|
119454
|
+
const say3 = sellerWorkingSeconds < JUST_REACHED_SECONDS ? `Sent to ${words2.who}; the request just reached it. Do not pay again; asking for the result pays nothing more.` : `Sent to ${words2.who}; it has not answered yet. Do not pay again; asking for the result pays nothing more.`;
|
|
119455
119455
|
return { text: JSON.stringify({ say: say3, ok: true, paid: false, pending: true, stage: "seller_working", requestId, secondsWaited, sellerWorkingSeconds, next }, null, 2) };
|
|
119456
119456
|
} };
|
|
119457
119457
|
}
|
|
@@ -119650,7 +119650,7 @@ function refusalSay(a, tool, again, npmVersion) {
|
|
|
119650
119650
|
return `Nothing changed: this address was made for ${amount ? `${amount} USDC` : "a fixed amount"}, and its amount never changes. Read next for what to do.`;
|
|
119651
119651
|
}
|
|
119652
119652
|
if (code2 === "mcp_balance_unknown") return "Nothing was moved yet: the wallet is still reading its private balance. Try again in a minute.";
|
|
119653
|
-
if (code2 === "mcp_payment_still_open") return "
|
|
119653
|
+
if (code2 === "mcp_payment_still_open") return "Nothing was paid for this request: a payment for it is still open. Do not pay again; asking for its result pays nothing more.";
|
|
119654
119654
|
if (code2 === "mcp_setup_restart_needed") return "The wallet is set up, but it must reconnect once. Follow the steps below, then try again. Nothing was paid.";
|
|
119655
119655
|
if (code2 === "mcp_restart_needed") return "Nothing was paid. Restart this app, then try again.";
|
|
119656
119656
|
if (code2 === "p03_merchant_respend_value_held_by_private_send") {
|
|
@@ -125864,6 +125864,30 @@ async function checkUnshieldRecipient({ connection, mint, owner }) {
|
|
|
125864
125864
|
throw new Error("mcp_unshield_to_invalid: the USDC holder at this address is for another token or another owner, so it cannot take this payment; nothing was paid");
|
|
125865
125865
|
}
|
|
125866
125866
|
}
|
|
125867
|
+
async function walkBeforeLease(session, exitProofTools) {
|
|
125868
|
+
try {
|
|
125869
|
+
const store = session.openStore();
|
|
125870
|
+
let marks = walletHistoryHomeMarks(store);
|
|
125871
|
+
if (marks === void 0) {
|
|
125872
|
+
await new Promise((resolve35) => {
|
|
125873
|
+
setTimeout(resolve35, HOME_MARKS_SETTLED_MS2 + 10);
|
|
125874
|
+
});
|
|
125875
|
+
marks = walletHistoryHomeMarks(store);
|
|
125876
|
+
}
|
|
125877
|
+
if (marks === void 0) return void 0;
|
|
125878
|
+
const history = await loadWalletP03History({
|
|
125879
|
+
store,
|
|
125880
|
+
connection: connectSplit(session.connection, session.historyUrl),
|
|
125881
|
+
programId: session.programId,
|
|
125882
|
+
pool: store.state.pool,
|
|
125883
|
+
deploymentIdentity: exitProofTools.deploymentIdentity,
|
|
125884
|
+
share: { notBeforeMs: Date.now(), marks }
|
|
125885
|
+
});
|
|
125886
|
+
return { marks, pool: String(store.state.pool), history };
|
|
125887
|
+
} catch {
|
|
125888
|
+
return void 0;
|
|
125889
|
+
}
|
|
125890
|
+
}
|
|
125867
125891
|
async function runUnshield({
|
|
125868
125892
|
session,
|
|
125869
125893
|
lease,
|
|
@@ -125880,7 +125904,9 @@ async function runUnshield({
|
|
|
125880
125904
|
onAnswered,
|
|
125881
125905
|
onCheckPending,
|
|
125882
125906
|
onExited = () => {
|
|
125883
|
-
}
|
|
125907
|
+
},
|
|
125908
|
+
walked,
|
|
125909
|
+
finalityWaits = 0
|
|
125884
125910
|
}) {
|
|
125885
125911
|
const owner = new import_web3132.PublicKey(recipientOwner);
|
|
125886
125912
|
let timing;
|
|
@@ -125900,13 +125926,25 @@ async function runUnshield({
|
|
|
125900
125926
|
const use = (store) => {
|
|
125901
125927
|
current = store;
|
|
125902
125928
|
};
|
|
125903
|
-
|
|
125904
|
-
|
|
125905
|
-
|
|
125906
|
-
|
|
125907
|
-
|
|
125908
|
-
|
|
125909
|
-
|
|
125929
|
+
let nextWalk = walked;
|
|
125930
|
+
const walkNext = (report) => {
|
|
125931
|
+
nextWalk = report;
|
|
125932
|
+
};
|
|
125933
|
+
const walk = (deploymentIdentity) => () => {
|
|
125934
|
+
if (nextWalk !== void 0) {
|
|
125935
|
+
const report = nextWalk;
|
|
125936
|
+
nextWalk = void 0;
|
|
125937
|
+
mark("unshield-walk-before-lease");
|
|
125938
|
+
return Promise.resolve(report);
|
|
125939
|
+
}
|
|
125940
|
+
return scoped("unshield-walk", () => loadWalletP03History({
|
|
125941
|
+
store: current,
|
|
125942
|
+
connection: connectSplit(session.connection, session.historyUrl),
|
|
125943
|
+
programId: session.programId,
|
|
125944
|
+
pool: current.state.pool,
|
|
125945
|
+
deploymentIdentity
|
|
125946
|
+
}));
|
|
125947
|
+
};
|
|
125910
125948
|
const name = `self-pay-${unshieldId}`;
|
|
125911
125949
|
const start = await lease(async (opened) => {
|
|
125912
125950
|
mark("unshield-lease-self-pay");
|
|
@@ -126005,7 +126043,20 @@ async function runUnshield({
|
|
|
126005
126043
|
mark("unshield-exit");
|
|
126006
126044
|
tried = await exitTries({ session, lease, name, pool: start.pool, use, mark, scoped, exitOf, answer: { selfPayTransaction: paid.transaction ?? null }, onAnswered });
|
|
126007
126045
|
}
|
|
126008
|
-
return exitFinish({
|
|
126046
|
+
return exitFinish({
|
|
126047
|
+
lease,
|
|
126048
|
+
name,
|
|
126049
|
+
use,
|
|
126050
|
+
mark,
|
|
126051
|
+
scoped,
|
|
126052
|
+
exitOf,
|
|
126053
|
+
tried,
|
|
126054
|
+
onCheckPending,
|
|
126055
|
+
onExited,
|
|
126056
|
+
finalityWaits,
|
|
126057
|
+
walkNext,
|
|
126058
|
+
...finalityWaits > 0 ? { preWalk: () => walkBeforeLease(session, exitProofTools) } : {}
|
|
126059
|
+
});
|
|
126009
126060
|
}
|
|
126010
126061
|
function sentAtMs(record) {
|
|
126011
126062
|
return Number.isSafeInteger(record?.exitAnsweredAtMs) ? record.exitAnsweredAtMs : record?.exitedAtMs;
|
|
@@ -126040,7 +126091,7 @@ async function exitTries({ session, lease, name, pool: pool2, use, mark, scoped,
|
|
|
126040
126091
|
return { answer, signature: exit.signature, settled: exit.settled !== false, early };
|
|
126041
126092
|
}), { ring: { connection: session.connection, pool: pool2 } }));
|
|
126042
126093
|
}
|
|
126043
|
-
async function exitFinish({ lease, name, use, mark, scoped, exitOf, tried, onCheckPending, onExited }) {
|
|
126094
|
+
async function exitFinish({ lease, name, use, mark, scoped, exitOf, tried, onCheckPending, onExited, finalityWaits = 0, preWalk, walkNext }) {
|
|
126044
126095
|
const checkPending = (store, error) => {
|
|
126045
126096
|
mark("unshield-exit-check-pending");
|
|
126046
126097
|
if (store) store.writeWal(name, { ...store.readWal(name), exitCheckPendingAtMs: Date.now() });
|
|
@@ -126050,23 +126101,36 @@ async function exitFinish({ lease, name, use, mark, scoped, exitOf, tried, onChe
|
|
|
126050
126101
|
}
|
|
126051
126102
|
};
|
|
126052
126103
|
try {
|
|
126053
|
-
|
|
126054
|
-
|
|
126055
|
-
|
|
126056
|
-
|
|
126057
|
-
|
|
126058
|
-
|
|
126059
|
-
|
|
126060
|
-
|
|
126061
|
-
|
|
126062
|
-
|
|
126104
|
+
for (let waits = 0; ; waits += 1) {
|
|
126105
|
+
const early = !tried.settled && typeof preWalk === "function" ? await preWalk() : void 0;
|
|
126106
|
+
const notFinal = await lease(async (store) => {
|
|
126107
|
+
mark("unshield-lease-finish");
|
|
126108
|
+
use(store);
|
|
126109
|
+
if (!tried.settled) {
|
|
126110
|
+
walkNext?.(walkStillCurrent(store, early));
|
|
126111
|
+
try {
|
|
126112
|
+
await scoped("unshield-exit", () => exitOf(store));
|
|
126113
|
+
} catch (error) {
|
|
126114
|
+
if (waits < finalityWaits && NOT_FINAL_YET.test(String(error?.message ?? ""))) return true;
|
|
126115
|
+
if (!tried.early) throw error;
|
|
126116
|
+
checkPending(store, error);
|
|
126117
|
+
return false;
|
|
126118
|
+
} finally {
|
|
126119
|
+
walkNext?.(void 0);
|
|
126120
|
+
}
|
|
126063
126121
|
}
|
|
126064
|
-
|
|
126065
|
-
|
|
126066
|
-
|
|
126067
|
-
|
|
126068
|
-
|
|
126069
|
-
|
|
126122
|
+
mark("unshield-exited");
|
|
126123
|
+
const exited = store.readWal(name);
|
|
126124
|
+
store.writeWal(name, { ...exited, state: "exited", exitTransaction: tried.signature, exitedAtMs: exited?.exitedAtMs ?? exited?.exitAnsweredAtMs ?? Date.now() });
|
|
126125
|
+
onExited();
|
|
126126
|
+
return false;
|
|
126127
|
+
});
|
|
126128
|
+
if (!notFinal) break;
|
|
126129
|
+
mark("unshield-finish-finality-wait");
|
|
126130
|
+
await new Promise((resolve35) => {
|
|
126131
|
+
setTimeout(resolve35, FINISH_FINALITY_WAIT_MS);
|
|
126132
|
+
});
|
|
126133
|
+
}
|
|
126070
126134
|
} catch (error) {
|
|
126071
126135
|
if (!tried.early) throw error;
|
|
126072
126136
|
checkPending(void 0, error);
|
|
@@ -131255,6 +131319,7 @@ ${canonical5}`;
|
|
|
131255
131319
|
profile: money.profile,
|
|
131256
131320
|
facilitatorOrigin: money.facilitatorOrigin,
|
|
131257
131321
|
onStage,
|
|
131322
|
+
finalityWaits: FINISH_FINALITY_WAITS,
|
|
131258
131323
|
lease: (task) => windows++ === 0 ? firstLease(task) : new Promise((resolve35) => {
|
|
131259
131324
|
setTimeout(resolve35, yieldMs);
|
|
131260
131325
|
}).then(() => withLockRetry(() => underLease(task))),
|
|
@@ -131816,9 +131881,11 @@ ${canonical5}`;
|
|
|
131816
131881
|
answeredExitTries.set(name, attempt);
|
|
131817
131882
|
const unshieldId = name.slice("self-pay-".length);
|
|
131818
131883
|
log(`MCP_UNSHIELD_CHECK_RESUME unshieldId=${unshieldId}`);
|
|
131819
|
-
|
|
131884
|
+
const tryFinish = (waits) => walkBeforeLease(session, money.exitProofTools).then((early) => underLease((opened) => {
|
|
131820
131885
|
const current = opened.readWal(name);
|
|
131821
131886
|
if (current?.state === "exited" || current?.exitUnconfirmed === true || typeof current?.exitTransaction !== "string") return void 0;
|
|
131887
|
+
const walked = walkStillCurrent(opened, early);
|
|
131888
|
+
if (early !== void 0 && walked === void 0) log(`MCP_UNSHIELD_CHECK_WALK_UNDER_LEASE unshieldId=${unshieldId}`);
|
|
131822
131889
|
return (ops.unshield ?? runUnshield)({
|
|
131823
131890
|
session,
|
|
131824
131891
|
lease: (task) => task(opened),
|
|
@@ -131830,16 +131897,31 @@ ${canonical5}`;
|
|
|
131830
131897
|
facilitatorOrigin: money.facilitatorOrigin,
|
|
131831
131898
|
onStage: () => {
|
|
131832
131899
|
},
|
|
131833
|
-
...ops.selfPay ? { selfPayStep: ops.selfPay } : {}
|
|
131900
|
+
...ops.selfPay ? { selfPayStep: ops.selfPay } : {},
|
|
131901
|
+
...walked !== void 0 ? { walked } : {}
|
|
131834
131902
|
});
|
|
131835
|
-
}, { orClosed: ANSWERED_EXIT_CLOSED })).
|
|
131903
|
+
}, { orClosed: ANSWERED_EXIT_CLOSED })).catch(async (error) => {
|
|
131904
|
+
let answeredAt;
|
|
131905
|
+
try {
|
|
131906
|
+
answeredAt = session.openStore().readWal(name)?.exitAnsweredAtMs;
|
|
131907
|
+
} catch {
|
|
131908
|
+
answeredAt = void 0;
|
|
131909
|
+
}
|
|
131910
|
+
if (waits >= FINISH_FINALITY_WAITS || finalityClosed || session.closed === true || !NOT_FINAL_YET.test(String(error?.message ?? "")) || !Number.isSafeInteger(answeredAt) || Date.now() - answeredAt > FINISH_FINALITY_RECENT_MS) throw error;
|
|
131911
|
+
log(`MCP_UNSHIELD_CHECK_FINALITY_WAIT unshieldId=${unshieldId} wait=${waits + 1}`);
|
|
131912
|
+
await new Promise((resolve35) => {
|
|
131913
|
+
setTimeout(resolve35, FINISH_FINALITY_WAIT_MS);
|
|
131914
|
+
});
|
|
131915
|
+
return tryFinish(waits + 1);
|
|
131916
|
+
});
|
|
131917
|
+
onOwnTorTag(() => tryFinish(0)).then((result) => {
|
|
131836
131918
|
if (result === ANSWERED_EXIT_CLOSED) return;
|
|
131837
131919
|
const now = session.openStore().readWal(name);
|
|
131838
131920
|
log(now?.state === "exited" ? `MCP_UNSHIELD_CHECK_DONE unshieldId=${unshieldId}` : `MCP_UNSHIELD_CHECK_PENDING unshieldId=${unshieldId}`);
|
|
131839
131921
|
if (now?.state === "exited") refreshAtFinality();
|
|
131840
131922
|
}, (error) => {
|
|
131841
131923
|
const cause = String(error?.message ?? error ?? "").split("\n", 1)[0];
|
|
131842
|
-
attempt.provenUnspent =
|
|
131924
|
+
attempt.provenUnspent = NOT_FINAL_YET.test(cause);
|
|
131843
131925
|
log(`MCP_UNSHIELD_CHECK_PENDING unshieldId=${unshieldId} cause=${JSON.stringify(cause.slice(0, 240))}`);
|
|
131844
131926
|
}).then(() => underLease((opened) => {
|
|
131845
131927
|
const now = opened.readWal(name);
|
|
@@ -134634,7 +134716,7 @@ function createSetupTools({
|
|
|
134634
134716
|
doneTool: sayOnRefusal(doneTool)
|
|
134635
134717
|
};
|
|
134636
134718
|
}
|
|
134637
|
-
var import_web3132, shownCaps, RELEASE_RETRY_MS, STAGE_WORDS, stageWords, INTERNAL_BALANCE_DETAIL, shownBreakdown, sessionLeftShown, TOKEN_UNIT_TOOLS, RESOURCE_PAYMENT_WAL_PREFIX2, POOL_LAYOUT_CODE, POOL_LAYOUT_UPDATE, USEPOD_VIA_INFERENCE_CHAT, SEND_RUNS_ON, DEPOSIT_RUNS_ON, CLI_FUNDS_PLAN_PREFIX, CLI_FUNDS_SCHEMA, SELF_PAY_ORIGIN3, REQUEST_ID4, POSITIVE_ATOMIC6, PRIVATE_HOST3, FORBIDDEN_HEADERS3, MAX_BODY_BYTES2, PREVIEW_TIMEOUT_MS, PREVIEW_SELLER_READ_MS, CALL_BUDGET_MS, budgetLeft, PAY_ANSWER_MARGIN_MS, MONEY_FIRST_ANSWER_MS, BALANCE_AFTER_LANDING_MS, JOIN_CALL_MAX_MS, JOIN_NUDGE_QUIET_MS, JOIN_STEP_MS, sleep2, PROGRESS_EVERY_MS2, READ_BUDGET_MS, UNPAID_TOR_TRY_MS, UNPAID_CLEAR_MS, READ_BUDGET_TOOLS, FLOAT_BUSY_CODES, RETRY_MARGIN_MS, ASK_PAY_CODES, runningNpmVersion, terminalCommand2, capPlaceWords, CAP_NAMES, capName, capRaiseText, runningLimits, payCapFlag, cheaperSellerText, limitNext, SAFE_TEXT, MCP_TOOL_ALIASES, POOL_SWITCH_WHY, POOL_SWITCH_NEXT, SWITCH_STATES, quietSwitch, switchKey, ATOMIC_TEXT, movedTo, FLOAT_ID, ANSWERED_EXIT_RETRY_MS, ANSWERED_EXIT_UNCONFIRMED_MS, ANSWERED_EXIT_RETRY_WINDOW_MS, ANSWERED_EXIT_CLOSED, switchAmount, switchEta, switchRows, OWNER_CAP_CODES, JOIN_END_MCP, JOIN_END_TERMINAL_LIBRARY, JOIN_RETRY_BACKOFF_MS, WALLET_CAP_FIX, MCP_CAP_FIX, capFix, ownerOnlyNext, mcpNext, CONFIDENTIAL_RETIRED, json3, answerResult, discoverTool, LAUNCH_CAP_CODES, dayCapKind, refuse12, newRequestIdFor, payCapName, publicOffer, FLOAT_PAID_CODES, FLOAT_PRIVATE_LEG, MONEY_ID2, toRecordId, linkKindOf, moneyId, REFUSED_CODES, refusedCodeOf, PLAIN_REASONS, INSUFFICIENT_CODE, insufficientCause, INSUFFICIENT_REASONS, reasonOf, plainReason, KEPT_SEND_TRIES, shownId, isSplitSend, sendPartId, PROMISED_NEXT, partFailReason, sendAnswerOf, PUBLIC_READ_TIMEOUT_MS, RECIPIENT_CHECK_TIMEOUT_MS, withTimeout, ownKey, readFailure, OWN_KEY_TOKENS_MAX, tokenAmountText, elsewhereId, AGENT_ID_SCHEMA, agentIdName, minutesText2, ageWords2, DEPOSIT_SENT_STATES, depositLanded, usdcText3, walkWalletHistory, REFRESH_LEASE_WALK_MS, HOME_MARKS_SETTLED_MS2, AUTO_BACKUPS_KEPT, AUTO_BACKUP_NAME, AUTO_BACKUP_VERIFIED, FRONTED_SETTLE_MARGIN_SLOTS, UNSHIELD_WINDOW_YIELD_MS, BALANCE_REFRESH_WAIT_MS, BALANCE_REFRESH_GRACE_MS, BALANCE_REFRESH_LONG_MS, INBOUND_REFRESH_AGE_MS, changeFields, balanceAnswer, CAP_BALANCE_WAIT_MS, CAP_BALANCE_RETRY_MS, REFRESH_RETRY_MS, FINALITY_POLL_MS, FINALITY_WAIT_MS, FINALITY_REFRESH_LIMIT_MS, POOL_WATCH_MS, POOL_WATCH_POLL_MS, EARLY_BALANCE_DELAY_MS, FINALITY_SETTLE_WINDOW_SLOTS, PUBLIC_READ_ANSWER_MS, LINK_READ_ANSWER_MS, OWN_READS_AHEAD_MS, FLOAT_CORRECT_WAIT_MS, SWITCH_WAIT_MS, UNSHIELD_TO_NO_USDC_DETAIL, UNSHIELD_TO_INVALID_NEXT, INFERENCE_MIN_MAX_TOKENS, ELICIT_TIMEOUT_MS, ELICIT_UNSHOWN_MS, elicitUnshown, POLL_SECONDS2, TRANSFER_CHANGE_READ_MS, TEMP_CLEAN_DELAY_MS, KEPT_ON_DISK, MAX_SHIELDED_BALANCE_ATOMIC, receiveGenerator, MCP_TOOL_NAMES, MCP_HIDDEN_TOOL_NAMES, setupTerminalNext, SETUP_RUNNING_SAY, ACCEPTED_NEXT, SETUP_RUNNING_NEXT, SETUP_ANSWER_WAIT_MS, SETUP_CONFIRMING_SAY, SETUP_CONFIRMING_NEXT, PRIVATE_INFERENCE_WHY, RESTART_STEPS, TOR_BROWSER_PORT, SETUP_TOR_TITLE, SETUP_TOR_WHY;
|
|
134719
|
+
var import_web3132, shownCaps, RELEASE_RETRY_MS, STAGE_WORDS, stageWords, INTERNAL_BALANCE_DETAIL, shownBreakdown, sessionLeftShown, TOKEN_UNIT_TOOLS, RESOURCE_PAYMENT_WAL_PREFIX2, POOL_LAYOUT_CODE, POOL_LAYOUT_UPDATE, USEPOD_VIA_INFERENCE_CHAT, SEND_RUNS_ON, DEPOSIT_RUNS_ON, CLI_FUNDS_PLAN_PREFIX, CLI_FUNDS_SCHEMA, SELF_PAY_ORIGIN3, REQUEST_ID4, POSITIVE_ATOMIC6, PRIVATE_HOST3, FORBIDDEN_HEADERS3, MAX_BODY_BYTES2, PREVIEW_TIMEOUT_MS, PREVIEW_SELLER_READ_MS, CALL_BUDGET_MS, budgetLeft, PAY_ANSWER_MARGIN_MS, MONEY_FIRST_ANSWER_MS, BALANCE_AFTER_LANDING_MS, JOIN_CALL_MAX_MS, JOIN_NUDGE_QUIET_MS, JOIN_STEP_MS, sleep2, PROGRESS_EVERY_MS2, READ_BUDGET_MS, UNPAID_TOR_TRY_MS, UNPAID_CLEAR_MS, READ_BUDGET_TOOLS, FLOAT_BUSY_CODES, RETRY_MARGIN_MS, ASK_PAY_CODES, runningNpmVersion, terminalCommand2, capPlaceWords, CAP_NAMES, capName, capRaiseText, runningLimits, payCapFlag, cheaperSellerText, limitNext, SAFE_TEXT, MCP_TOOL_ALIASES, POOL_SWITCH_WHY, POOL_SWITCH_NEXT, SWITCH_STATES, quietSwitch, switchKey, ATOMIC_TEXT, movedTo, FLOAT_ID, ANSWERED_EXIT_RETRY_MS, ANSWERED_EXIT_UNCONFIRMED_MS, ANSWERED_EXIT_RETRY_WINDOW_MS, ANSWERED_EXIT_CLOSED, switchAmount, switchEta, switchRows, OWNER_CAP_CODES, JOIN_END_MCP, JOIN_END_TERMINAL_LIBRARY, JOIN_RETRY_BACKOFF_MS, WALLET_CAP_FIX, MCP_CAP_FIX, capFix, ownerOnlyNext, mcpNext, CONFIDENTIAL_RETIRED, json3, answerResult, discoverTool, LAUNCH_CAP_CODES, dayCapKind, refuse12, newRequestIdFor, payCapName, publicOffer, FLOAT_PAID_CODES, FLOAT_PRIVATE_LEG, MONEY_ID2, toRecordId, linkKindOf, moneyId, REFUSED_CODES, refusedCodeOf, PLAIN_REASONS, INSUFFICIENT_CODE, insufficientCause, INSUFFICIENT_REASONS, reasonOf, plainReason, KEPT_SEND_TRIES, shownId, isSplitSend, sendPartId, PROMISED_NEXT, partFailReason, sendAnswerOf, PUBLIC_READ_TIMEOUT_MS, RECIPIENT_CHECK_TIMEOUT_MS, withTimeout, ownKey, readFailure, OWN_KEY_TOKENS_MAX, tokenAmountText, elsewhereId, AGENT_ID_SCHEMA, agentIdName, minutesText2, ageWords2, DEPOSIT_SENT_STATES, depositLanded, usdcText3, walkWalletHistory, REFRESH_LEASE_WALK_MS, HOME_MARKS_SETTLED_MS2, AUTO_BACKUPS_KEPT, AUTO_BACKUP_NAME, AUTO_BACKUP_VERIFIED, FRONTED_SETTLE_MARGIN_SLOTS, UNSHIELD_WINDOW_YIELD_MS, NOT_FINAL_YET, FINISH_FINALITY_WAIT_MS, FINISH_FINALITY_WAITS, FINISH_FINALITY_RECENT_MS, walkStillCurrent, BALANCE_REFRESH_WAIT_MS, BALANCE_REFRESH_GRACE_MS, BALANCE_REFRESH_LONG_MS, INBOUND_REFRESH_AGE_MS, changeFields, balanceAnswer, CAP_BALANCE_WAIT_MS, CAP_BALANCE_RETRY_MS, REFRESH_RETRY_MS, FINALITY_POLL_MS, FINALITY_WAIT_MS, FINALITY_REFRESH_LIMIT_MS, POOL_WATCH_MS, POOL_WATCH_POLL_MS, EARLY_BALANCE_DELAY_MS, FINALITY_SETTLE_WINDOW_SLOTS, PUBLIC_READ_ANSWER_MS, LINK_READ_ANSWER_MS, OWN_READS_AHEAD_MS, FLOAT_CORRECT_WAIT_MS, SWITCH_WAIT_MS, UNSHIELD_TO_NO_USDC_DETAIL, UNSHIELD_TO_INVALID_NEXT, INFERENCE_MIN_MAX_TOKENS, ELICIT_TIMEOUT_MS, ELICIT_UNSHOWN_MS, elicitUnshown, POLL_SECONDS2, TRANSFER_CHANGE_READ_MS, TEMP_CLEAN_DELAY_MS, KEPT_ON_DISK, MAX_SHIELDED_BALANCE_ATOMIC, receiveGenerator, MCP_TOOL_NAMES, MCP_HIDDEN_TOOL_NAMES, setupTerminalNext, SETUP_RUNNING_SAY, ACCEPTED_NEXT, SETUP_RUNNING_NEXT, SETUP_ANSWER_WAIT_MS, SETUP_CONFIRMING_SAY, SETUP_CONFIRMING_NEXT, PRIVATE_INFERENCE_WHY, RESTART_STEPS, TOR_BROWSER_PORT, SETUP_TOR_TITLE, SETUP_TOR_WHY;
|
|
134638
134720
|
var init_tools = __esm({
|
|
134639
134721
|
"wallet/src/mcp/tools.mjs"() {
|
|
134640
134722
|
"use strict";
|
|
@@ -135062,6 +135144,11 @@ var init_tools = __esm({
|
|
|
135062
135144
|
AUTO_BACKUP_VERIFIED = ".verified";
|
|
135063
135145
|
FRONTED_SETTLE_MARGIN_SLOTS = 20;
|
|
135064
135146
|
UNSHIELD_WINDOW_YIELD_MS = 1500;
|
|
135147
|
+
NOT_FINAL_YET = /confirmed note-exit is not finalized spent/;
|
|
135148
|
+
FINISH_FINALITY_WAIT_MS = 4e3;
|
|
135149
|
+
FINISH_FINALITY_WAITS = 8;
|
|
135150
|
+
FINISH_FINALITY_RECENT_MS = 6e4;
|
|
135151
|
+
walkStillCurrent = (store, early) => early !== void 0 && early.pool === String(store.state.pool) && walletHistoryHomeMarks(store) === early.marks ? early.history : void 0;
|
|
135065
135152
|
BALANCE_REFRESH_WAIT_MS = 2e4;
|
|
135066
135153
|
BALANCE_REFRESH_GRACE_MS = 2e3;
|
|
135067
135154
|
BALANCE_REFRESH_LONG_MS = 6e4;
|