suprafx-agent-sdk 0.3.1
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/LICENSE +21 -0
- package/README.md +452 -0
- package/dist/bin/suprafx-mcp.d.ts +15 -0
- package/dist/bin/suprafx-mcp.js +238 -0
- package/dist/bin/suprafx-mcp.js.map +1 -0
- package/dist/src/asset-registry.d.ts +61 -0
- package/dist/src/asset-registry.js +118 -0
- package/dist/src/asset-registry.js.map +1 -0
- package/dist/src/client.d.ts +227 -0
- package/dist/src/client.js +282 -0
- package/dist/src/client.js.map +1 -0
- package/dist/src/derive-ids.d.ts +112 -0
- package/dist/src/derive-ids.js +361 -0
- package/dist/src/derive-ids.js.map +1 -0
- package/dist/src/event-bcs.d.ts +341 -0
- package/dist/src/event-bcs.js +767 -0
- package/dist/src/event-bcs.js.map +1 -0
- package/dist/src/index.d.ts +26 -0
- package/dist/src/index.js +26 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/mcp/config.d.ts +32 -0
- package/dist/src/mcp/config.js +101 -0
- package/dist/src/mcp/config.js.map +1 -0
- package/dist/src/mcp/lifecycle.d.ts +109 -0
- package/dist/src/mcp/lifecycle.js +170 -0
- package/dist/src/mcp/lifecycle.js.map +1 -0
- package/dist/src/mcp/preflight.d.ts +36 -0
- package/dist/src/mcp/preflight.js +291 -0
- package/dist/src/mcp/preflight.js.map +1 -0
- package/dist/src/mcp/server.d.ts +20 -0
- package/dist/src/mcp/server.js +235 -0
- package/dist/src/mcp/server.js.map +1 -0
- package/dist/src/mcp/tools.d.ts +51 -0
- package/dist/src/mcp/tools.js +1022 -0
- package/dist/src/mcp/tools.js.map +1 -0
- package/dist/src/sign-event.d.ts +185 -0
- package/dist/src/sign-event.js +331 -0
- package/dist/src/sign-event.js.map +1 -0
- package/dist/src/signer.d.ts +89 -0
- package/dist/src/signer.js +226 -0
- package/dist/src/signer.js.map +1 -0
- package/package.json +65 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-bcs.js","sourceRoot":"","sources":["../../src/event-bcs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* suprafx-agent-sdk — public API surface.
|
|
3
|
+
*
|
|
4
|
+
* Two main entry points:
|
|
5
|
+
* - `SupraFxClient` for read endpoints + envelope POST plumbing
|
|
6
|
+
* - `DelegateSigner` for held-key signing + auto sequence management
|
|
7
|
+
*
|
|
8
|
+
* Plus convenience re-exports of the BCS encoders and derivation
|
|
9
|
+
* helpers so consumers can build custom envelopes if needed.
|
|
10
|
+
*
|
|
11
|
+
* See `docs/INTEGRATING-AGENTS.md` for the conceptual reference and
|
|
12
|
+
* `cookbook/` for runnable examples.
|
|
13
|
+
*/
|
|
14
|
+
export { SupraFxClient, SupraFxError } from "./client.js";
|
|
15
|
+
export type { SupraFxClientOptions, ChainInfo, AssetInfo, PlatformBalance, DepositClaimSummary, DepositStatusLookup, DepositClaimList, OrderbookRfq, SubmitResult, OracleQuote, SupraFxErrorCode, SupraFxErrorAction, } from "./client.js";
|
|
16
|
+
export { withLifecycle, sameId, findRfq, findQuote, applyPollMs, DEFAULT_APPLY_POLL_MS, } from "./mcp/lifecycle.js";
|
|
17
|
+
export type { CommitState, CommitResult } from "./mcp/lifecycle.js";
|
|
18
|
+
export { runPreflight, ORACLE_STALE_MS } from "./mcp/preflight.js";
|
|
19
|
+
export type { PreflightResult, Check, CheckStatus } from "./mcp/preflight.js";
|
|
20
|
+
export { DelegateSigner } from "./signer.js";
|
|
21
|
+
export type { DelegateSignerOptions } from "./signer.js";
|
|
22
|
+
export { encodeUserEvent, MAX_CAP } from "./event-bcs.js";
|
|
23
|
+
export type { UserEvent, AssetCapEntry } from "./event-bcs.js";
|
|
24
|
+
export { composeSignBytes, encodeEnvelopeBcs } from "./sign-event.js";
|
|
25
|
+
export { canonicalChain, deriveAssetId, derivePairId, derivePairIdFromTokens, registeredAssetId, assetIdFromChainAndToken, } from "./derive-ids.js";
|
|
26
|
+
export { toMicroUnits, toRateBFT } from "./asset-registry.js";
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* suprafx-agent-sdk — public API surface.
|
|
3
|
+
*
|
|
4
|
+
* Two main entry points:
|
|
5
|
+
* - `SupraFxClient` for read endpoints + envelope POST plumbing
|
|
6
|
+
* - `DelegateSigner` for held-key signing + auto sequence management
|
|
7
|
+
*
|
|
8
|
+
* Plus convenience re-exports of the BCS encoders and derivation
|
|
9
|
+
* helpers so consumers can build custom envelopes if needed.
|
|
10
|
+
*
|
|
11
|
+
* See `docs/INTEGRATING-AGENTS.md` for the conceptual reference and
|
|
12
|
+
* `cookbook/` for runnable examples.
|
|
13
|
+
*/
|
|
14
|
+
export { SupraFxClient, SupraFxError } from "./client.js";
|
|
15
|
+
// Commit lifecycle: `ok` is an ingress signal, `lifecycle` is the truth.
|
|
16
|
+
export { withLifecycle, sameId, findRfq, findQuote, applyPollMs, DEFAULT_APPLY_POLL_MS, } from "./mcp/lifecycle.js";
|
|
17
|
+
// Session preflight, reusable outside the MCP server.
|
|
18
|
+
export { runPreflight, ORACLE_STALE_MS } from "./mcp/preflight.js";
|
|
19
|
+
export { DelegateSigner } from "./signer.js";
|
|
20
|
+
// Re-export BCS + derivation utilities so power users can compose
|
|
21
|
+
// custom flows without re-vendoring the council libs.
|
|
22
|
+
export { encodeUserEvent, MAX_CAP } from "./event-bcs.js";
|
|
23
|
+
export { composeSignBytes, encodeEnvelopeBcs } from "./sign-event.js";
|
|
24
|
+
export { canonicalChain, deriveAssetId, derivePairId, derivePairIdFromTokens, registeredAssetId, assetIdFromChainAndToken, } from "./derive-ids.js";
|
|
25
|
+
export { toMicroUnits, toRateBFT } from "./asset-registry.js";
|
|
26
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAgB1D,yEAAyE;AACzE,OAAO,EACL,aAAa,EACb,MAAM,EACN,OAAO,EACP,SAAS,EACT,WAAW,EACX,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAG5B,sDAAsD;AACtD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGnE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,kEAAkE;AAClE,sDAAsD;AACtD,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EACL,cAAc,EACd,aAAa,EACb,YAAY,EACZ,sBAAsB,EACtB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config loader for the MCP server. Resolves the delegate key from
|
|
3
|
+
* (in priority order):
|
|
4
|
+
* 1. `SUPRAFX_DELEGATE_PRIV_HEX` env var
|
|
5
|
+
* 2. `~/.suprafx/config.json` file with `{ "delegatePrivKeyHex": "..." }`
|
|
6
|
+
* 3. (none) — read-only mode
|
|
7
|
+
*
|
|
8
|
+
* The private key is loaded into memory once at startup and never
|
|
9
|
+
* written back. It does NOT leave the host running `suprafx-mcp` —
|
|
10
|
+
* MCP transports are stdio (local subprocess) so the key stays
|
|
11
|
+
* with the agent operator's machine.
|
|
12
|
+
*/
|
|
13
|
+
export interface ResolvedConfig {
|
|
14
|
+
baseUrl?: string;
|
|
15
|
+
delegatePrivKeyHex: string | null;
|
|
16
|
+
configPath: string | null;
|
|
17
|
+
/**
|
|
18
|
+
* The operator's MASTER StarKey address.
|
|
19
|
+
*
|
|
20
|
+
* Balances, locks and open orders all live on the master, not on the
|
|
21
|
+
* delegate — the delegate has no balances of its own. Without this the
|
|
22
|
+
* agent has to be hand-fed the address every session and loses it on
|
|
23
|
+
* any context reset. Persisted here so it survives a restart.
|
|
24
|
+
*/
|
|
25
|
+
masterAddress: string | null;
|
|
26
|
+
}
|
|
27
|
+
/** `SUPRAFX_ALLOW_DANGEROUS=1` (or `--allow-dangerous`) drops the
|
|
28
|
+
* per-call acknowledgement requirement on money tools. */
|
|
29
|
+
export declare function resolveMode(argv?: string[]): "guarded" | "autonomous";
|
|
30
|
+
/** `--tools=read` / `SUPRAFX_TOOLS=read,cancel` — which classes to expose. */
|
|
31
|
+
export declare function resolveToolGroups(argv?: string[]): Set<string>;
|
|
32
|
+
export declare function loadConfig(): ResolvedConfig;
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config loader for the MCP server. Resolves the delegate key from
|
|
3
|
+
* (in priority order):
|
|
4
|
+
* 1. `SUPRAFX_DELEGATE_PRIV_HEX` env var
|
|
5
|
+
* 2. `~/.suprafx/config.json` file with `{ "delegatePrivKeyHex": "..." }`
|
|
6
|
+
* 3. (none) — read-only mode
|
|
7
|
+
*
|
|
8
|
+
* The private key is loaded into memory once at startup and never
|
|
9
|
+
* written back. It does NOT leave the host running `suprafx-mcp` —
|
|
10
|
+
* MCP transports are stdio (local subprocess) so the key stays
|
|
11
|
+
* with the agent operator's machine.
|
|
12
|
+
*/
|
|
13
|
+
import { readFileSync, existsSync } from "node:fs";
|
|
14
|
+
import { homedir } from "node:os";
|
|
15
|
+
import { join } from "node:path";
|
|
16
|
+
/** `SUPRAFX_ALLOW_DANGEROUS=1` (or `--allow-dangerous`) drops the
|
|
17
|
+
* per-call acknowledgement requirement on money tools. */
|
|
18
|
+
export function resolveMode(argv = process.argv) {
|
|
19
|
+
if (argv.includes("--allow-dangerous"))
|
|
20
|
+
return "autonomous";
|
|
21
|
+
const v = (process.env.SUPRAFX_ALLOW_DANGEROUS ?? "").toLowerCase();
|
|
22
|
+
return v === "1" || v === "true" || v === "yes" ? "autonomous" : "guarded";
|
|
23
|
+
}
|
|
24
|
+
/** `--tools=read` / `SUPRAFX_TOOLS=read,cancel` — which classes to expose. */
|
|
25
|
+
export function resolveToolGroups(argv = process.argv) {
|
|
26
|
+
const flag = argv.find((a) => a.startsWith("--tools="))?.slice("--tools=".length);
|
|
27
|
+
const raw = flag ?? process.env.SUPRAFX_TOOLS ?? "";
|
|
28
|
+
const parts = raw
|
|
29
|
+
.split(",")
|
|
30
|
+
.map((s) => s.trim().toLowerCase())
|
|
31
|
+
.filter(Boolean);
|
|
32
|
+
// Default: everything the configured key entitles you to.
|
|
33
|
+
if (parts.length === 0)
|
|
34
|
+
return new Set(["read", "trade", "cancel"]);
|
|
35
|
+
const out = new Set(["read"]); // reads are never withheld
|
|
36
|
+
for (const p of parts) {
|
|
37
|
+
if (p === "all" || p === "write") {
|
|
38
|
+
out.add("trade");
|
|
39
|
+
out.add("cancel");
|
|
40
|
+
}
|
|
41
|
+
else if (p === "read" || p === "trade" || p === "cancel") {
|
|
42
|
+
out.add(p);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return out;
|
|
46
|
+
}
|
|
47
|
+
function normalizeAddress(a) {
|
|
48
|
+
if (!a)
|
|
49
|
+
return null;
|
|
50
|
+
const t = a.trim();
|
|
51
|
+
if (t.length === 0)
|
|
52
|
+
return null;
|
|
53
|
+
return t.startsWith("0x") ? t.toLowerCase() : "0x" + t.toLowerCase();
|
|
54
|
+
}
|
|
55
|
+
export function loadConfig() {
|
|
56
|
+
const envKey = process.env.SUPRAFX_DELEGATE_PRIV_HEX;
|
|
57
|
+
const baseUrl = process.env.SUPRAFX_BASE_URL && process.env.SUPRAFX_BASE_URL.length > 0
|
|
58
|
+
? process.env.SUPRAFX_BASE_URL
|
|
59
|
+
: undefined;
|
|
60
|
+
const envMaster = normalizeAddress(process.env.SUPRAFX_MASTER_ADDRESS);
|
|
61
|
+
if (envKey && envKey.length > 0) {
|
|
62
|
+
return {
|
|
63
|
+
baseUrl,
|
|
64
|
+
delegatePrivKeyHex: envKey,
|
|
65
|
+
configPath: "env",
|
|
66
|
+
masterAddress: envMaster,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
const cfgPath = join(homedir(), ".suprafx", "config.json");
|
|
70
|
+
if (existsSync(cfgPath)) {
|
|
71
|
+
try {
|
|
72
|
+
const raw = readFileSync(cfgPath, "utf-8");
|
|
73
|
+
const parsed = JSON.parse(raw);
|
|
74
|
+
const master = envMaster ?? normalizeAddress(parsed.masterAddress);
|
|
75
|
+
if (parsed.delegatePrivKeyHex && parsed.delegatePrivKeyHex.length > 0) {
|
|
76
|
+
return {
|
|
77
|
+
baseUrl: parsed.baseUrl ?? baseUrl,
|
|
78
|
+
delegatePrivKeyHex: parsed.delegatePrivKeyHex,
|
|
79
|
+
configPath: cfgPath,
|
|
80
|
+
masterAddress: master,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
return {
|
|
84
|
+
baseUrl: parsed.baseUrl ?? baseUrl,
|
|
85
|
+
delegatePrivKeyHex: null,
|
|
86
|
+
configPath: cfgPath,
|
|
87
|
+
masterAddress: master,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
catch (e) {
|
|
91
|
+
process.stderr.write(`[suprafx-mcp] warning: failed to parse ${cfgPath}: ${e instanceof Error ? e.message : String(e)}\n`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return {
|
|
95
|
+
baseUrl,
|
|
96
|
+
delegatePrivKeyHex: null,
|
|
97
|
+
configPath: null,
|
|
98
|
+
masterAddress: envMaster,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/mcp/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Commit lifecycle for SupraFX writes.
|
|
3
|
+
*
|
|
4
|
+
* THE PROBLEM THIS SOLVES. Every write endpoint answers from the dApp
|
|
5
|
+
* *ingress*, not from chain state. `ok:true` means "the envelope was
|
|
6
|
+
* accepted into the mempool" — the validators can still reject it at
|
|
7
|
+
* apply time (inactive or unauthorized delegate, cap exhausted, wrong
|
|
8
|
+
* pair, replayed sequence number) and the venue will never tell you.
|
|
9
|
+
* An agent that trusts `ok` fires its next write against a position it
|
|
10
|
+
* does not have.
|
|
11
|
+
*
|
|
12
|
+
* So every write here reports a LIFECYCLE, not a boolean:
|
|
13
|
+
*
|
|
14
|
+
* submitted → the envelope was built and POSTed
|
|
15
|
+
* in_mempool → ingress accepted it (`ok:true`) — NOT yet committed
|
|
16
|
+
* applied → a state READ confirms it landed on chain
|
|
17
|
+
* rejected → ingress refused it outright (`ok:false`)
|
|
18
|
+
* unknown → ingress accepted it but the confirming read never
|
|
19
|
+
* showed it inside the poll window. NOT a failure and
|
|
20
|
+
* NOT a success — read state back before acting.
|
|
21
|
+
*
|
|
22
|
+
* `unknown` is deliberate. The honest answer to "did it land?" when the
|
|
23
|
+
* poll window expires is "I do not know yet", and an agent needs to be
|
|
24
|
+
* able to tell that apart from a clean rejection.
|
|
25
|
+
*/
|
|
26
|
+
import type { SupraFxClient, SubmitResult } from "../client.js";
|
|
27
|
+
export type CommitState = "submitted" | "in_mempool" | "applied" | "rejected" | "unknown";
|
|
28
|
+
export interface CommitResult {
|
|
29
|
+
/** Raw ingress signal. TRUE DOES NOT MEAN COMMITTED — read `lifecycle`. */
|
|
30
|
+
ok: boolean;
|
|
31
|
+
lifecycle: CommitState;
|
|
32
|
+
/**
|
|
33
|
+
* `true` only when a state read CONFIRMED the write landed.
|
|
34
|
+
* `false` only when ingress rejected it.
|
|
35
|
+
* `null` when ingress accepted it but the poll window expired without
|
|
36
|
+
* confirmation — genuinely unknown, not a negative.
|
|
37
|
+
*/
|
|
38
|
+
applied: boolean | null;
|
|
39
|
+
/** The read that decided `lifecycle`, named so it can be re-run by hand. */
|
|
40
|
+
verified_by: string;
|
|
41
|
+
/** Language-neutral, claims nothing about locked funds it did not read. */
|
|
42
|
+
note: string;
|
|
43
|
+
batch?: number;
|
|
44
|
+
event_hash_hex?: string;
|
|
45
|
+
code?: string;
|
|
46
|
+
detail?: string;
|
|
47
|
+
/** How long the confirming poll ran. */
|
|
48
|
+
polled_ms?: number;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* How long to wait for a write to be CONFIRMED on chain before reporting
|
|
52
|
+
* `unknown`. Batches normally commit in a few seconds.
|
|
53
|
+
*
|
|
54
|
+
* Tunable via `SUPRAFX_APPLY_POLL_MS`:
|
|
55
|
+
* - raise it on a slow or congested venue so fewer writes end `unknown`
|
|
56
|
+
* - set it to `0` to skip confirmation entirely (every accepted write
|
|
57
|
+
* reports `unknown` immediately) — for tests, or for a latency-bound
|
|
58
|
+
* loop that does its own accounting
|
|
59
|
+
*/
|
|
60
|
+
export declare const DEFAULT_APPLY_POLL_MS = 12000;
|
|
61
|
+
/**
|
|
62
|
+
* Read LAZILY, on every call — not once at module load. A module-load
|
|
63
|
+
* read is decided by import order, so a caller that sets the variable in
|
|
64
|
+
* its own module body (a test, a wrapper script) would be ignored because
|
|
65
|
+
* this module had already been evaluated.
|
|
66
|
+
*/
|
|
67
|
+
export declare function applyPollMs(): number;
|
|
68
|
+
/** UUID comparison that cannot produce a casing false-negative.
|
|
69
|
+
*
|
|
70
|
+
* The venue has returned RFQ and quote ids in mixed casing. Comparing a
|
|
71
|
+
* lower-cased local id against a raw API id made a LANDED write report
|
|
72
|
+
* `applied:false` — the single most dangerous kind of wrong answer,
|
|
73
|
+
* because the agent then retries a trade it already has. Both sides are
|
|
74
|
+
* normalized here, dashes included. */
|
|
75
|
+
export declare function sameId(a: string | null | undefined, b: string | null | undefined): boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Wrap a raw ingress `SubmitResult` in a lifecycle, confirming with
|
|
78
|
+
* `check` when ingress accepted it.
|
|
79
|
+
*
|
|
80
|
+
* `verifiedBy` names the read an operator can re-run by hand to see the
|
|
81
|
+
* same thing — the runbook leans on this.
|
|
82
|
+
*/
|
|
83
|
+
export declare function withLifecycle(res: SubmitResult, opts: {
|
|
84
|
+
verifiedBy: string;
|
|
85
|
+
check: () => Promise<boolean>;
|
|
86
|
+
budgetMs?: number;
|
|
87
|
+
/** What the agent should read to settle an `unknown`. */
|
|
88
|
+
tieBreaker: string;
|
|
89
|
+
}): Promise<CommitResult>;
|
|
90
|
+
/** Find an RFQ by id across the statuses a write can leave it in. */
|
|
91
|
+
export declare function findRfq(client: SupraFxClient, rfqId: string): Promise<{
|
|
92
|
+
id: string;
|
|
93
|
+
status: string;
|
|
94
|
+
quotes?: RawQuote[];
|
|
95
|
+
} | null>;
|
|
96
|
+
/** Quote rows the public orderbook embeds on each RFQ. */
|
|
97
|
+
export interface RawQuote {
|
|
98
|
+
id: string;
|
|
99
|
+
maker_address: string;
|
|
100
|
+
rate: number;
|
|
101
|
+
status: string;
|
|
102
|
+
created_at: string;
|
|
103
|
+
}
|
|
104
|
+
/** Find a quote by id anywhere in the public orderbook. */
|
|
105
|
+
export declare function findQuote(client: SupraFxClient, quoteId: string): Promise<{
|
|
106
|
+
quote: RawQuote;
|
|
107
|
+
rfqId: string;
|
|
108
|
+
rfqStatus: string;
|
|
109
|
+
} | null>;
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Commit lifecycle for SupraFX writes.
|
|
3
|
+
*
|
|
4
|
+
* THE PROBLEM THIS SOLVES. Every write endpoint answers from the dApp
|
|
5
|
+
* *ingress*, not from chain state. `ok:true` means "the envelope was
|
|
6
|
+
* accepted into the mempool" — the validators can still reject it at
|
|
7
|
+
* apply time (inactive or unauthorized delegate, cap exhausted, wrong
|
|
8
|
+
* pair, replayed sequence number) and the venue will never tell you.
|
|
9
|
+
* An agent that trusts `ok` fires its next write against a position it
|
|
10
|
+
* does not have.
|
|
11
|
+
*
|
|
12
|
+
* So every write here reports a LIFECYCLE, not a boolean:
|
|
13
|
+
*
|
|
14
|
+
* submitted → the envelope was built and POSTed
|
|
15
|
+
* in_mempool → ingress accepted it (`ok:true`) — NOT yet committed
|
|
16
|
+
* applied → a state READ confirms it landed on chain
|
|
17
|
+
* rejected → ingress refused it outright (`ok:false`)
|
|
18
|
+
* unknown → ingress accepted it but the confirming read never
|
|
19
|
+
* showed it inside the poll window. NOT a failure and
|
|
20
|
+
* NOT a success — read state back before acting.
|
|
21
|
+
*
|
|
22
|
+
* `unknown` is deliberate. The honest answer to "did it land?" when the
|
|
23
|
+
* poll window expires is "I do not know yet", and an agent needs to be
|
|
24
|
+
* able to tell that apart from a clean rejection.
|
|
25
|
+
*/
|
|
26
|
+
/**
|
|
27
|
+
* How long to wait for a write to be CONFIRMED on chain before reporting
|
|
28
|
+
* `unknown`. Batches normally commit in a few seconds.
|
|
29
|
+
*
|
|
30
|
+
* Tunable via `SUPRAFX_APPLY_POLL_MS`:
|
|
31
|
+
* - raise it on a slow or congested venue so fewer writes end `unknown`
|
|
32
|
+
* - set it to `0` to skip confirmation entirely (every accepted write
|
|
33
|
+
* reports `unknown` immediately) — for tests, or for a latency-bound
|
|
34
|
+
* loop that does its own accounting
|
|
35
|
+
*/
|
|
36
|
+
export const DEFAULT_APPLY_POLL_MS = 12_000;
|
|
37
|
+
const APPLY_POLL_INTERVAL_MS = 1_200;
|
|
38
|
+
/**
|
|
39
|
+
* Read LAZILY, on every call — not once at module load. A module-load
|
|
40
|
+
* read is decided by import order, so a caller that sets the variable in
|
|
41
|
+
* its own module body (a test, a wrapper script) would be ignored because
|
|
42
|
+
* this module had already been evaluated.
|
|
43
|
+
*/
|
|
44
|
+
export function applyPollMs() {
|
|
45
|
+
const raw = process.env.SUPRAFX_APPLY_POLL_MS;
|
|
46
|
+
if (raw == null || raw.trim() === "")
|
|
47
|
+
return DEFAULT_APPLY_POLL_MS;
|
|
48
|
+
const n = Number(raw);
|
|
49
|
+
return Number.isFinite(n) && n >= 0 ? n : DEFAULT_APPLY_POLL_MS;
|
|
50
|
+
}
|
|
51
|
+
/** UUID comparison that cannot produce a casing false-negative.
|
|
52
|
+
*
|
|
53
|
+
* The venue has returned RFQ and quote ids in mixed casing. Comparing a
|
|
54
|
+
* lower-cased local id against a raw API id made a LANDED write report
|
|
55
|
+
* `applied:false` — the single most dangerous kind of wrong answer,
|
|
56
|
+
* because the agent then retries a trade it already has. Both sides are
|
|
57
|
+
* normalized here, dashes included. */
|
|
58
|
+
export function sameId(a, b) {
|
|
59
|
+
if (!a || !b)
|
|
60
|
+
return false;
|
|
61
|
+
const norm = (s) => s.replace(/-/g, "").trim().toLowerCase();
|
|
62
|
+
return norm(a) === norm(b);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Poll `check` until it returns true, the budget expires, or it throws.
|
|
66
|
+
* A throwing check is treated as "not yet" — a transient read failure
|
|
67
|
+
* must not be reported as a rejected trade.
|
|
68
|
+
*/
|
|
69
|
+
async function pollForApply(check, budgetMs = applyPollMs()) {
|
|
70
|
+
const started = Date.now();
|
|
71
|
+
// A zero budget means "do not confirm" — report `unknown` at once
|
|
72
|
+
// rather than doing one speculative read.
|
|
73
|
+
if (budgetMs <= 0)
|
|
74
|
+
return { confirmed: false, elapsedMs: 0 };
|
|
75
|
+
// First check immediately: a fast batch may already have committed.
|
|
76
|
+
for (;;) {
|
|
77
|
+
try {
|
|
78
|
+
if (await check())
|
|
79
|
+
return { confirmed: true, elapsedMs: Date.now() - started };
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
// transient read failure — keep polling, never downgrade to "rejected"
|
|
83
|
+
}
|
|
84
|
+
if (Date.now() - started >= budgetMs) {
|
|
85
|
+
return { confirmed: false, elapsedMs: Date.now() - started };
|
|
86
|
+
}
|
|
87
|
+
await new Promise((r) => setTimeout(r, APPLY_POLL_INTERVAL_MS));
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Wrap a raw ingress `SubmitResult` in a lifecycle, confirming with
|
|
92
|
+
* `check` when ingress accepted it.
|
|
93
|
+
*
|
|
94
|
+
* `verifiedBy` names the read an operator can re-run by hand to see the
|
|
95
|
+
* same thing — the runbook leans on this.
|
|
96
|
+
*/
|
|
97
|
+
export async function withLifecycle(res, opts) {
|
|
98
|
+
const base = {
|
|
99
|
+
ok: !!res.ok,
|
|
100
|
+
batch: res.batch,
|
|
101
|
+
event_hash_hex: res.event_hash_hex,
|
|
102
|
+
code: res.code,
|
|
103
|
+
detail: res.detail,
|
|
104
|
+
};
|
|
105
|
+
if (!res.ok) {
|
|
106
|
+
return {
|
|
107
|
+
...base,
|
|
108
|
+
lifecycle: "rejected",
|
|
109
|
+
applied: false,
|
|
110
|
+
verified_by: "ingress",
|
|
111
|
+
note: `Rejected at ingress${res.code ? ` (code: ${res.code})` : ""}. ` +
|
|
112
|
+
`The envelope was refused before reaching consensus, so no ` +
|
|
113
|
+
`sequence slot and no funds were committed by THIS call. ` +
|
|
114
|
+
`If you are unsure of the account state, read it back: ${opts.tieBreaker}.`,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
const { confirmed, elapsedMs } = await pollForApply(opts.check, opts.budgetMs);
|
|
118
|
+
if (confirmed) {
|
|
119
|
+
return {
|
|
120
|
+
...base,
|
|
121
|
+
lifecycle: "applied",
|
|
122
|
+
applied: true,
|
|
123
|
+
verified_by: opts.verifiedBy,
|
|
124
|
+
note: `Confirmed on chain by reading ${opts.verifiedBy}.`,
|
|
125
|
+
polled_ms: elapsedMs,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
// Ingress said yes; the confirming read never saw it. Say exactly that.
|
|
129
|
+
//
|
|
130
|
+
// What this note must NOT do is assert that no funds were locked. The
|
|
131
|
+
// previous implementation hard-coded that claim, and it was wrong in
|
|
132
|
+
// every case where the write actually landed and only the confirming
|
|
133
|
+
// read was late or mis-compared. Never assert a lock state you did not
|
|
134
|
+
// read.
|
|
135
|
+
return {
|
|
136
|
+
...base,
|
|
137
|
+
lifecycle: "unknown",
|
|
138
|
+
applied: null,
|
|
139
|
+
verified_by: opts.verifiedBy,
|
|
140
|
+
note: `Accepted at ingress (ok:true) but NOT confirmed on chain within ` +
|
|
141
|
+
`${Math.round(elapsedMs / 1000)}s by reading ${opts.verifiedBy}. ` +
|
|
142
|
+
`This is UNKNOWN, not a failure — the write may still commit, and ` +
|
|
143
|
+
`it may already have locked funds. Do NOT retry blindly. ` +
|
|
144
|
+
`Read state back to settle it: ${opts.tieBreaker}.`,
|
|
145
|
+
polled_ms: elapsedMs,
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
/** Find an RFQ by id across the statuses a write can leave it in. */
|
|
149
|
+
export async function findRfq(client, rfqId) {
|
|
150
|
+
for (const status of ["open", "matched", "cancelled", "expired"]) {
|
|
151
|
+
const rows = (await client.getOrderbook({ status, limit: 200 }));
|
|
152
|
+
const hit = rows.find((r) => sameId(r.id, rfqId));
|
|
153
|
+
if (hit)
|
|
154
|
+
return hit;
|
|
155
|
+
}
|
|
156
|
+
return null;
|
|
157
|
+
}
|
|
158
|
+
/** Find a quote by id anywhere in the public orderbook. */
|
|
159
|
+
export async function findQuote(client, quoteId) {
|
|
160
|
+
for (const status of ["open", "matched", "cancelled", "expired"]) {
|
|
161
|
+
const rows = (await client.getOrderbook({ status, limit: 200 }));
|
|
162
|
+
for (const r of rows) {
|
|
163
|
+
const q = (r.quotes ?? []).find((x) => sameId(x.id, quoteId));
|
|
164
|
+
if (q)
|
|
165
|
+
return { quote: q, rfqId: r.id, rfqStatus: r.status };
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
return null;
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=lifecycle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../../src/mcp/lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAkCH;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAC5C,MAAM,sBAAsB,GAAG,KAAK,CAAC;AAErC;;;;;GAKG;AACH,MAAM,UAAU,WAAW;IACzB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IAC9C,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,qBAAqB,CAAC;IACnE,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC;AAClE,CAAC;AAED;;;;;;wCAMwC;AACxC,MAAM,UAAU,MAAM,CAAC,CAA4B,EAAE,CAA4B;IAC/E,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3B,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrE,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,YAAY,CACzB,KAA6B,EAC7B,WAAmB,WAAW,EAAE;IAEhC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,kEAAkE;IAClE,0CAA0C;IAC1C,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IAC7D,oEAAoE;IACpE,SAAS,CAAC;QACR,IAAI,CAAC;YACH,IAAI,MAAM,KAAK,EAAE;gBAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;QACjF,CAAC;QAAC,MAAM,CAAC;YACP,uEAAuE;QACzE,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,IAAI,QAAQ,EAAE,CAAC;YACrC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;QAC/D,CAAC;QACD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAClE,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAiB,EACjB,IAMC;IAED,MAAM,IAAI,GAAG;QACX,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE;QACZ,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,cAAc,EAAE,GAAG,CAAC,cAAc;QAClC,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,MAAM,EAAE,GAAG,CAAC,MAAM;KACnB,CAAC;IAEF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,OAAO;YACL,GAAG,IAAI;YACP,SAAS,EAAE,UAAU;YACrB,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,SAAS;YACtB,IAAI,EACF,sBAAsB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI;gBAChE,4DAA4D;gBAC5D,0DAA0D;gBAC1D,yDAAyD,IAAI,CAAC,UAAU,GAAG;SAC9E,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE/E,IAAI,SAAS,EAAE,CAAC;QACd,OAAO;YACL,GAAG,IAAI;YACP,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,IAAI,CAAC,UAAU;YAC5B,IAAI,EAAE,iCAAiC,IAAI,CAAC,UAAU,GAAG;YACzD,SAAS,EAAE,SAAS;SACrB,CAAC;IACJ,CAAC;IAED,wEAAwE;IACxE,EAAE;IACF,sEAAsE;IACtE,qEAAqE;IACrE,qEAAqE;IACrE,uEAAuE;IACvE,QAAQ;IACR,OAAO;QACL,GAAG,IAAI;QACP,SAAS,EAAE,SAAS;QACpB,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,IAAI,CAAC,UAAU;QAC5B,IAAI,EACF,kEAAkE;YAClE,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,IAAI,CAAC,UAAU,IAAI;YAClE,mEAAmE;YACnE,0DAA0D;YAC1D,iCAAiC,IAAI,CAAC,UAAU,GAAG;QACrD,SAAS,EAAE,SAAS;KACrB,CAAC;AACJ,CAAC;AAED,qEAAqE;AACrE,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,MAAqB,EACrB,KAAa;IAEb,KAAK,MAAM,MAAM,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,GAAG,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAE9D,CAAC;QACF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;QAClD,IAAI,GAAG;YAAE,OAAO,GAAG,CAAC;IACtB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAWD,2DAA2D;AAC3D,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,MAAqB,EACrB,OAAe;IAEf,KAAK,MAAM,MAAM,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,GAAG,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAE9D,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;YAC9D,IAAI,CAAC;gBAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;QAC/D,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session preflight: the checks that decide whether it is safe to trade
|
|
3
|
+
* right now, run as a first-class MCP tool instead of living in prose.
|
|
4
|
+
*
|
|
5
|
+
* Every check answers with a status and, when it is not `ok`, the ACTION
|
|
6
|
+
* that clears it — so an agent can branch on the result instead of
|
|
7
|
+
* parsing a paragraph. Run it on connect, and again after any surprise.
|
|
8
|
+
*/
|
|
9
|
+
import type { SupraFxClient } from "../client.js";
|
|
10
|
+
import type { DelegateSigner } from "../signer.js";
|
|
11
|
+
/** A quote older than this must not be traded against. */
|
|
12
|
+
export declare const ORACLE_STALE_MS = 120000;
|
|
13
|
+
export type CheckStatus = "ok" | "warn" | "fail" | "skipped";
|
|
14
|
+
export interface Check {
|
|
15
|
+
name: string;
|
|
16
|
+
status: CheckStatus;
|
|
17
|
+
detail: string;
|
|
18
|
+
/** The one thing that clears a non-ok check. */
|
|
19
|
+
action?: string;
|
|
20
|
+
}
|
|
21
|
+
export interface PreflightResult {
|
|
22
|
+
ready_to_trade: boolean;
|
|
23
|
+
read_path_ok: boolean;
|
|
24
|
+
mode: "read_only" | "guarded" | "autonomous";
|
|
25
|
+
checks: Check[];
|
|
26
|
+
summary: string;
|
|
27
|
+
}
|
|
28
|
+
export interface PreflightOptions {
|
|
29
|
+
client: SupraFxClient;
|
|
30
|
+
signer: DelegateSigner | null;
|
|
31
|
+
masterAddress: string | null;
|
|
32
|
+
mode: "read_only" | "guarded" | "autonomous";
|
|
33
|
+
/** Pair to check oracle freshness against, e.g. "ETH/USDC". */
|
|
34
|
+
pair?: string;
|
|
35
|
+
}
|
|
36
|
+
export declare function runPreflight(opts: PreflightOptions): Promise<PreflightResult>;
|