@senpi/runtime 3.0.33 → 3.0.36
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 +1 -1
- package/dist/actions/open-position/open-position.action.js +8 -7
- package/dist/actions/open-position/open-position.action.js.map +1 -1
- package/dist/cli/guide-commands.d.ts.map +1 -1
- package/dist/cli/guide-commands.js +2 -1
- package/dist/cli/guide-commands.js.map +1 -1
- package/dist/dsl/notifications/format-utils.d.ts +24 -0
- package/dist/dsl/notifications/format-utils.d.ts.map +1 -1
- package/dist/dsl/notifications/format-utils.js +43 -1
- package/dist/dsl/notifications/format-utils.js.map +1 -1
- package/dist/dsl/notifications/formatter.d.ts +20 -8
- package/dist/dsl/notifications/formatter.d.ts.map +1 -1
- package/dist/dsl/notifications/formatter.js +41 -22
- package/dist/dsl/notifications/formatter.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +45 -0
- package/dist/index.js.map +1 -1
- package/dist/runtime/decision-errors.d.ts +6 -1
- package/dist/runtime/decision-errors.d.ts.map +1 -1
- package/dist/runtime/decision-errors.js +11 -5
- package/dist/runtime/decision-errors.js.map +1 -1
- package/dist/runtime/lifecycle-events.d.ts +3 -1
- package/dist/runtime/lifecycle-events.d.ts.map +1 -1
- package/dist/runtime/lifecycle-events.js +3 -1
- package/dist/runtime/lifecycle-events.js.map +1 -1
- package/dist/runtime/managed-wallet-guard.d.ts +47 -0
- package/dist/runtime/managed-wallet-guard.d.ts.map +1 -0
- package/dist/runtime/managed-wallet-guard.js +106 -0
- package/dist/runtime/managed-wallet-guard.js.map +1 -0
- package/dist/runtime/notifications.d.ts +13 -11
- package/dist/runtime/notifications.d.ts.map +1 -1
- package/dist/runtime/notifications.js +16 -22
- package/dist/runtime/notifications.js.map +1 -1
- package/dist/runtime/protection-nudge.d.ts +67 -0
- package/dist/runtime/protection-nudge.d.ts.map +1 -0
- package/dist/runtime/protection-nudge.js +244 -0
- package/dist/runtime/protection-nudge.js.map +1 -0
- package/dist/runtime/risk-guard.d.ts.map +1 -1
- package/dist/runtime/risk-guard.js +3 -1
- package/dist/runtime/risk-guard.js.map +1 -1
- package/dist/runtime/runtime.d.ts +0 -16
- package/dist/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +12 -102
- package/dist/runtime/runtime.js.map +1 -1
- package/dist/runtime/strategy-lifecycle.d.ts.map +1 -1
- package/dist/runtime/strategy-lifecycle.js +29 -9
- package/dist/runtime/strategy-lifecycle.js.map +1 -1
- package/dist/scripts/run-dsl-standalone-live.d.ts +6 -5
- package/dist/scripts/run-dsl-standalone-live.d.ts.map +1 -1
- package/dist/scripts/run-dsl-standalone-live.js +10 -8
- package/dist/scripts/run-dsl-standalone-live.js.map +1 -1
- package/dist/test-setup.js +7 -9
- package/dist/test-setup.js.map +1 -1
- package/dist/types/notification.d.ts +19 -3
- package/dist/types/notification.d.ts.map +1 -1
- package/dist/types/notification.js +22 -9
- package/dist/types/notification.js.map +1 -1
- package/dist/utils/event-catalog.d.ts +10 -0
- package/dist/utils/event-catalog.d.ts.map +1 -1
- package/dist/utils/event-catalog.js.map +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managed-wallet-guard.js","sourceRoot":"","sources":["../../src/runtime/managed-wallet-guard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import type { NotificationService } from "../types/notification.js";
|
|
2
|
+
/**
|
|
3
|
+
* Production ingest endpoint, used when neither `options.ingest_url` nor
|
|
4
|
+
* `NOTIFICATIONS_INGEST_URL` supplies one. The typical deployment IS production,
|
|
5
|
+
* so the runtime boots and delivers with zero notification config; non-prod
|
|
6
|
+
* environments must set the env var to point at their own ingest endpoint.
|
|
7
|
+
*/
|
|
8
|
+
export declare const DEFAULT_INGEST_URL = "https://notifications.prod.senpi.ai/notify";
|
|
2
9
|
export interface NotificationServiceOptions {
|
|
3
10
|
/** Override for the `NOTIFICATIONS_INGEST_URL` env (tests / non-standard hosting). */
|
|
4
11
|
ingest_url?: string;
|
|
@@ -22,20 +29,15 @@ export interface NotificationServiceOptions {
|
|
|
22
29
|
* OpenClaw gateway message).
|
|
23
30
|
*/
|
|
24
31
|
export declare function formatDecisionErrorNotification(rawMessage: string): string;
|
|
25
|
-
/**
|
|
26
|
-
* User-facing alert when the backend rejects orders because the strategy is
|
|
27
|
-
* paused or closed on Senpi. Fired once when the backend-pause registry arms
|
|
28
|
-
* (open-position action); subsequent signals are skipped until the registry's
|
|
29
|
-
* recheck window elapses, so the copy must not promise instant resumption.
|
|
30
|
-
*/
|
|
31
|
-
export declare function formatBackendPausedNotification(address: string): string;
|
|
32
32
|
/**
|
|
33
33
|
* Create the runtime's notification service. Every notification is delivered by
|
|
34
34
|
* POSTing the full structured envelope to the authenticated notification-ingest
|
|
35
|
-
* endpoint
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
35
|
+
* endpoint — there is no other delivery path. The endpoint resolves in order:
|
|
36
|
+
* `options.ingest_url`, then `NOTIFICATIONS_INGEST_URL`, then the production
|
|
37
|
+
* default ({@link DEFAULT_INGEST_URL}), so the URL can never be missing. A missing
|
|
38
|
+
* auth token is still a startup error (thrown here, not discovered later as
|
|
39
|
+
* silent notification loss), so callers must construct this before a runtime
|
|
40
|
+
* starts trading, not lazily on first notify.
|
|
39
41
|
*
|
|
40
42
|
* Failure paths inside this service log at warn, not error: a delivery failure is a
|
|
41
43
|
* handled, degraded condition — the caller's notify() contract is fire-and-forget and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../src/runtime/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAyC,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AA+B3G,MAAM,WAAW,0BAA0B;IACzC,sFAAsF;IACtF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;gDAE4C;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sDAAsD;IACtD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,+BAA+B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE1E;AAqGD
|
|
1
|
+
{"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../src/runtime/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAyC,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AA+B3G;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,+CAA+C,CAAC;AAE/E,MAAM,WAAW,0BAA0B;IACzC,sFAAsF;IACtF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;gDAE4C;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sDAAsD;IACtD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,+BAA+B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE1E;AAqGD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,CAAC,EAAE,0BAA0B,GAAG,mBAAmB,CA0GnG"}
|
|
@@ -22,6 +22,13 @@ const DEFAULT_TIMEOUT_MS = 5000;
|
|
|
22
22
|
const MAX_ATTEMPTS = 2;
|
|
23
23
|
/** Suppress repeat WARN logs for the same failure reason within this window. */
|
|
24
24
|
const WARN_REPEAT_WINDOW_MS = 30_000;
|
|
25
|
+
/**
|
|
26
|
+
* Production ingest endpoint, used when neither `options.ingest_url` nor
|
|
27
|
+
* `NOTIFICATIONS_INGEST_URL` supplies one. The typical deployment IS production,
|
|
28
|
+
* so the runtime boots and delivers with zero notification config; non-prod
|
|
29
|
+
* environments must set the env var to point at their own ingest endpoint.
|
|
30
|
+
*/
|
|
31
|
+
export const DEFAULT_INGEST_URL = "https://notifications.prod.senpi.ai/notify";
|
|
25
32
|
/**
|
|
26
33
|
* Map a raw LLM-decision error string to a user-facing notification message.
|
|
27
34
|
*
|
|
@@ -109,37 +116,24 @@ async function deliver(lastWarnedAt, ingestUrl, authToken, envelope, timeoutMs)
|
|
|
109
116
|
const rateLimitKey = `${outcome.status ?? "network"}:${typeof subtype === "string" ? subtype : "unknown"}`;
|
|
110
117
|
warnRateLimited(lastWarnedAt, rateLimitKey, `Notification delivery dropped notificationId=${String(notificationId)} status=${outcome.status ?? "n/a"}: ${outcome.reason}`, { notificationId, status: outcome.status });
|
|
111
118
|
}
|
|
112
|
-
/**
|
|
113
|
-
* User-facing alert when the backend rejects orders because the strategy is
|
|
114
|
-
* paused or closed on Senpi. Fired once when the backend-pause registry arms
|
|
115
|
-
* (open-position action); subsequent signals are skipped until the registry's
|
|
116
|
-
* recheck window elapses, so the copy must not promise instant resumption.
|
|
117
|
-
*/
|
|
118
|
-
export function formatBackendPausedNotification(address) {
|
|
119
|
-
return (`⏸️ Orders for strategy ${address} are being rejected because the strategy ` +
|
|
120
|
-
`is paused or closed on Senpi. The runtime will pause order submission and ` +
|
|
121
|
-
`re-check every few minutes — after you resume the strategy on Senpi, ` +
|
|
122
|
-
`trading picks up again within about 5 minutes.`);
|
|
123
|
-
}
|
|
124
119
|
/**
|
|
125
120
|
* Create the runtime's notification service. Every notification is delivered by
|
|
126
121
|
* POSTing the full structured envelope to the authenticated notification-ingest
|
|
127
|
-
* endpoint
|
|
128
|
-
*
|
|
129
|
-
*
|
|
130
|
-
*
|
|
122
|
+
* endpoint — there is no other delivery path. The endpoint resolves in order:
|
|
123
|
+
* `options.ingest_url`, then `NOTIFICATIONS_INGEST_URL`, then the production
|
|
124
|
+
* default ({@link DEFAULT_INGEST_URL}), so the URL can never be missing. A missing
|
|
125
|
+
* auth token is still a startup error (thrown here, not discovered later as
|
|
126
|
+
* silent notification loss), so callers must construct this before a runtime
|
|
127
|
+
* starts trading, not lazily on first notify.
|
|
131
128
|
*
|
|
132
129
|
* Failure paths inside this service log at warn, not error: a delivery failure is a
|
|
133
130
|
* handled, degraded condition — the caller's notify() contract is fire-and-forget and
|
|
134
131
|
* the next notification retries the transport fresh.
|
|
135
132
|
*/
|
|
136
133
|
export function createNotificationService(options) {
|
|
137
|
-
const ingestUrl =
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
"The runtime has no notification transport — set NOTIFICATIONS_INGEST_URL " +
|
|
141
|
-
"(or pass options.ingest_url) before starting.");
|
|
142
|
-
}
|
|
134
|
+
const ingestUrl = options?.ingest_url?.trim() ||
|
|
135
|
+
process.env.NOTIFICATIONS_INGEST_URL?.trim() ||
|
|
136
|
+
DEFAULT_INGEST_URL;
|
|
143
137
|
const authToken = (options?.senpi_auth_token ||
|
|
144
138
|
process.env.SENPI_AUTH_TOKEN ||
|
|
145
139
|
process.env.SENPI_API_KEY)?.trim();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../src/runtime/notifications.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACrG,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,MAAM,GAAG,YAAY,CAAC,6BAA6B,CAAC,CAAC;AAE3D;;;;GAIG;AACH,MAAM,qBAAqB,GAAG,OAAO,CAAC;AACtC,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEhC,mFAAmF;AACnF,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB,gFAAgF;AAChF,MAAM,qBAAqB,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../src/runtime/notifications.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manual-trade protection: a `before_tool_call` gate plus a
|
|
3
|
+
* `tool_result_persist` nudge for agent-issued position tools on non-runtime
|
|
4
|
+
* (manual) wallets — the only wallets where `create_position` succeeds, since
|
|
5
|
+
* runtime-managed wallets are vetoed upstream by the managed-wallet guard.
|
|
6
|
+
*
|
|
7
|
+
* Gate (veto-until-protected): a manual `create_position` must carry a stop
|
|
8
|
+
* loss on every order, or an explicit top-level `protection: "none"` marker
|
|
9
|
+
* showing the agent means it. `edit_position` is gated narrowly — only an
|
|
10
|
+
* explicit stop-loss cancel is blocked, because the hook cannot see current
|
|
11
|
+
* server-side state and must not demand a stop on every edit.
|
|
12
|
+
*
|
|
13
|
+
* Nudge: after a successful `create_position`, a message is appended to the
|
|
14
|
+
* tool result telling the agent what protection the order carries, to attach
|
|
15
|
+
* `ratchet_stop_add` (server-side trailing protection that takes over driving
|
|
16
|
+
* the stop) unless the user opted out, and to report active protection to the
|
|
17
|
+
* user and offer to adjust it.
|
|
18
|
+
*
|
|
19
|
+
* The `protection` marker is stripped harmlessly by the MCP server's zod schema
|
|
20
|
+
* (plain `z.object`, no `.strict()`/`.passthrough()`), so it is visible to this
|
|
21
|
+
* hook but never reaches execution.
|
|
22
|
+
*/
|
|
23
|
+
import type { Logger } from "../utils/logger.js";
|
|
24
|
+
/**
|
|
25
|
+
* Correlates the gate and the nudge across the two hook events. The
|
|
26
|
+
* `tool_result_persist` event carries tool identity (toolName/toolCallId) and
|
|
27
|
+
* the result, but NOT the call params — so the gate (which sees params) stashes
|
|
28
|
+
* the computed protection summary keyed by toolCallId and the nudge reads it
|
|
29
|
+
* back. Bounded: a `create_position` the gate allowed but whose result is never
|
|
30
|
+
* persisted (an aborted turn) would otherwise leak an entry forever.
|
|
31
|
+
*/
|
|
32
|
+
export interface ProtectionSummaryCapture {
|
|
33
|
+
record(toolCallId: string, summary: string): void;
|
|
34
|
+
take(toolCallId: string): string | undefined;
|
|
35
|
+
}
|
|
36
|
+
export declare function createProtectionSummaryCapture(maxEntries?: number): ProtectionSummaryCapture;
|
|
37
|
+
export interface ProtectionGateOptions {
|
|
38
|
+
logger: Logger;
|
|
39
|
+
capture?: ProtectionSummaryCapture;
|
|
40
|
+
}
|
|
41
|
+
export interface ProtectionNudgeOptions {
|
|
42
|
+
logger: Logger;
|
|
43
|
+
capture?: ProtectionSummaryCapture;
|
|
44
|
+
}
|
|
45
|
+
/** Veto shape understood by OpenClaw's before_tool_call dispatcher. */
|
|
46
|
+
export interface ProtectionGateBlock {
|
|
47
|
+
block: true;
|
|
48
|
+
blockReason: string;
|
|
49
|
+
}
|
|
50
|
+
/** Result shape understood by OpenClaw's tool_result_persist dispatcher. */
|
|
51
|
+
export interface ProtectionNudgeResult {
|
|
52
|
+
message: Record<string, unknown>;
|
|
53
|
+
}
|
|
54
|
+
export type ProtectionGateHandler = (event: unknown) => Promise<ProtectionGateBlock | undefined>;
|
|
55
|
+
export type ProtectionNudgeHandler = (event: unknown) => ProtectionNudgeResult | undefined;
|
|
56
|
+
/**
|
|
57
|
+
* Build the `before_tool_call` gate. The hook fires on EVERY tool call, so the
|
|
58
|
+
* non-gated fast path is a string check only.
|
|
59
|
+
*/
|
|
60
|
+
export declare function createProtectionGate(options: ProtectionGateOptions): ProtectionGateHandler;
|
|
61
|
+
/**
|
|
62
|
+
* Build the `tool_result_persist` nudge. Synchronous by contract — the host
|
|
63
|
+
* runs this on the transcript-append hot path and warns-and-ignores any handler
|
|
64
|
+
* that returns a Promise.
|
|
65
|
+
*/
|
|
66
|
+
export declare function createProtectionNudge(options: ProtectionNudgeOptions): ProtectionNudgeHandler;
|
|
67
|
+
//# sourceMappingURL=protection-nudge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protection-nudge.d.ts","sourceRoot":"","sources":["../../src/runtime/protection-nudge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAQjD;;;;;;;GAOG;AACH,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAClD,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CAC9C;AAED,wBAAgB,8BAA8B,CAAC,UAAU,SAAM,GAAG,wBAAwB,CAiBzF;AAUD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,wBAAwB,CAAC;CACpC;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,wBAAwB,CAAC;CACpC;AAED,uEAAuE;AACvE,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,IAAI,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,4EAA4E;AAC5E,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,MAAM,qBAAqB,GAAG,CAClC,KAAK,EAAE,OAAO,KACX,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAAC;AAE9C,MAAM,MAAM,sBAAsB,GAAG,CACnC,KAAK,EAAE,OAAO,KACX,qBAAqB,GAAG,SAAS,CAAC;AAwGvC;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,qBAAqB,CAoE1F;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,sBAAsB,CAwC7F"}
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manual-trade protection: a `before_tool_call` gate plus a
|
|
3
|
+
* `tool_result_persist` nudge for agent-issued position tools on non-runtime
|
|
4
|
+
* (manual) wallets — the only wallets where `create_position` succeeds, since
|
|
5
|
+
* runtime-managed wallets are vetoed upstream by the managed-wallet guard.
|
|
6
|
+
*
|
|
7
|
+
* Gate (veto-until-protected): a manual `create_position` must carry a stop
|
|
8
|
+
* loss on every order, or an explicit top-level `protection: "none"` marker
|
|
9
|
+
* showing the agent means it. `edit_position` is gated narrowly — only an
|
|
10
|
+
* explicit stop-loss cancel is blocked, because the hook cannot see current
|
|
11
|
+
* server-side state and must not demand a stop on every edit.
|
|
12
|
+
*
|
|
13
|
+
* Nudge: after a successful `create_position`, a message is appended to the
|
|
14
|
+
* tool result telling the agent what protection the order carries, to attach
|
|
15
|
+
* `ratchet_stop_add` (server-side trailing protection that takes over driving
|
|
16
|
+
* the stop) unless the user opted out, and to report active protection to the
|
|
17
|
+
* user and offer to adjust it.
|
|
18
|
+
*
|
|
19
|
+
* The `protection` marker is stripped harmlessly by the MCP server's zod schema
|
|
20
|
+
* (plain `z.object`, no `.strict()`/`.passthrough()`), so it is visible to this
|
|
21
|
+
* hook but never reaches execution.
|
|
22
|
+
*/
|
|
23
|
+
import { baseToolName } from "./managed-wallet-guard.js";
|
|
24
|
+
/** Base tool name whose orders must be protected (or explicitly opted out). */
|
|
25
|
+
const CREATE_POSITION = "create_position";
|
|
26
|
+
/** Base tool name gated only against an explicit stop-loss cancel. */
|
|
27
|
+
const EDIT_POSITION = "edit_position";
|
|
28
|
+
export function createProtectionSummaryCapture(maxEntries = 256) {
|
|
29
|
+
const store = new Map();
|
|
30
|
+
return {
|
|
31
|
+
record(toolCallId, summary) {
|
|
32
|
+
if (store.size >= maxEntries) {
|
|
33
|
+
// Map preserves insertion order — evicting the first key drops the oldest.
|
|
34
|
+
const oldest = store.keys().next().value;
|
|
35
|
+
if (oldest !== undefined)
|
|
36
|
+
store.delete(oldest);
|
|
37
|
+
}
|
|
38
|
+
store.set(toolCallId, summary);
|
|
39
|
+
},
|
|
40
|
+
take(toolCallId) {
|
|
41
|
+
const summary = store.get(toolCallId);
|
|
42
|
+
if (summary !== undefined)
|
|
43
|
+
store.delete(toolCallId);
|
|
44
|
+
return summary;
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Default shared capture, used when a factory is called with `{ logger }` only.
|
|
50
|
+
* Lets the gate and nudge correlate without the caller threading a capture, but
|
|
51
|
+
* the plugin registration passes one explicit instance to both (and tests pass
|
|
52
|
+
* their own) so the coupling is visible rather than global.
|
|
53
|
+
*/
|
|
54
|
+
const sharedCapture = createProtectionSummaryCapture();
|
|
55
|
+
function asObject(value) {
|
|
56
|
+
return value && typeof value === "object" && !Array.isArray(value)
|
|
57
|
+
? value
|
|
58
|
+
: undefined;
|
|
59
|
+
}
|
|
60
|
+
/** True when the base tool name (after the last `__`) equals `expected`. */
|
|
61
|
+
function isTool(toolName, expected) {
|
|
62
|
+
return typeof toolName === "string" && baseToolName(toolName.toLowerCase()) === expected;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* True when a stop-loss value is zero — numeric `0` or a string that parses to
|
|
66
|
+
* it (`"0"`, `"0.0"`). Zero is the cancel sentinel (see the `edit_position`
|
|
67
|
+
* gate), not real protection, so both gates read it as "no stop" via this one
|
|
68
|
+
* helper. An empty/absent value is not zero.
|
|
69
|
+
*/
|
|
70
|
+
function isZeroStop(value) {
|
|
71
|
+
if (value == null)
|
|
72
|
+
return false;
|
|
73
|
+
if (typeof value === "number")
|
|
74
|
+
return value === 0;
|
|
75
|
+
if (typeof value === "string")
|
|
76
|
+
return value.trim() !== "" && Number(value) === 0;
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* An exit object counts as a real stop loss when it carries a non-zero
|
|
81
|
+
* `percentage` or `price`. A zero value is the cancel sentinel (`isZeroStop`),
|
|
82
|
+
* not protection — so a `create_position` with `stopLoss: { percentage: 0 }` or
|
|
83
|
+
* `{ price: 0 }` is rejected, matching how the `edit_position` gate reads 0.
|
|
84
|
+
*/
|
|
85
|
+
function hasStopLoss(order) {
|
|
86
|
+
const sl = asObject(order.stopLoss);
|
|
87
|
+
if (sl == null)
|
|
88
|
+
return false;
|
|
89
|
+
const hasPct = sl.percentage != null && !isZeroStop(sl.percentage);
|
|
90
|
+
const hasPrice = sl.price != null && !isZeroStop(sl.price);
|
|
91
|
+
return hasPct || hasPrice;
|
|
92
|
+
}
|
|
93
|
+
/** One order's protection, e.g. `#1 SL 5% TP 10%` or `#2 SL @42000`. */
|
|
94
|
+
function summarizeOrder(order, index) {
|
|
95
|
+
const sl = describeExit("SL", asObject(order.stopLoss));
|
|
96
|
+
const tp = describeExit("TP", asObject(order.takeProfit));
|
|
97
|
+
return `#${index + 1} ${sl ?? "no SL"}${tp ? ` ${tp}` : ""}`;
|
|
98
|
+
}
|
|
99
|
+
function describeExit(label, exit) {
|
|
100
|
+
if (!exit)
|
|
101
|
+
return undefined;
|
|
102
|
+
if (exit.percentage != null)
|
|
103
|
+
return `${label} ${String(exit.percentage)}%`;
|
|
104
|
+
if (exit.price != null)
|
|
105
|
+
return `${label} @${String(exit.price)}`;
|
|
106
|
+
return undefined;
|
|
107
|
+
}
|
|
108
|
+
function buildCreateBlockReason() {
|
|
109
|
+
return [
|
|
110
|
+
`Blocked create_position: every manual order needs a flat stop loss (a "stopLoss" with either "percentage" or "price") — the safety floor from the first fill.`,
|
|
111
|
+
`Resubmit with a stopLoss on each order.`,
|
|
112
|
+
`After the fill, attach ratchet_stop_add — server-side trailing protection that takes over driving the stop loss as price moves in your favor.`,
|
|
113
|
+
`Take profit ("takeProfit") is optional.`,
|
|
114
|
+
`If the user explicitly wants no protection, resubmit the identical call with a top-level "protection": "none".`,
|
|
115
|
+
].join(" ");
|
|
116
|
+
}
|
|
117
|
+
function buildEditBlockReason() {
|
|
118
|
+
return [
|
|
119
|
+
`Blocked edit_position: this edit cancels the stop loss (stopLoss.percentage: 0), leaving the position unprotected.`,
|
|
120
|
+
`Keep a stop loss, or hand the stop to ratchet_stop_add for server-side trailing protection.`,
|
|
121
|
+
`If the user explicitly wants to remove all protection, resubmit the identical call with a top-level "protection": "none".`,
|
|
122
|
+
].join(" ");
|
|
123
|
+
}
|
|
124
|
+
function buildNudge(summary) {
|
|
125
|
+
return [
|
|
126
|
+
`[senpi] Manual position opened. Protection on this order: ${summary}.`,
|
|
127
|
+
`A flat stop loss is only the initial safety floor — now attach server-side trailing protection: call ratchet_stop_add for this wallet so the runtime drives the stop as price moves in your favor, unless the user has explicitly opted out of protection.`,
|
|
128
|
+
`Then tell the user exactly what protection is active on the position and offer to adjust it.`,
|
|
129
|
+
].join(" ");
|
|
130
|
+
}
|
|
131
|
+
const UNPROTECTED_SUMMARY = `explicitly unprotected (protection: "none")`;
|
|
132
|
+
/**
|
|
133
|
+
* Build the `before_tool_call` gate. The hook fires on EVERY tool call, so the
|
|
134
|
+
* non-gated fast path is a string check only.
|
|
135
|
+
*/
|
|
136
|
+
export function createProtectionGate(options) {
|
|
137
|
+
const { logger, capture = sharedCapture } = options;
|
|
138
|
+
return async (event) => {
|
|
139
|
+
const ev = (event ?? {});
|
|
140
|
+
const gatesCreate = isTool(ev.toolName, CREATE_POSITION);
|
|
141
|
+
const gatesEdit = isTool(ev.toolName, EDIT_POSITION);
|
|
142
|
+
if (!gatesCreate && !gatesEdit) {
|
|
143
|
+
return undefined;
|
|
144
|
+
}
|
|
145
|
+
try {
|
|
146
|
+
const params = asObject(ev.params);
|
|
147
|
+
// Malformed/missing params: allow — the MCP server's schema owns that error.
|
|
148
|
+
if (!params) {
|
|
149
|
+
return undefined;
|
|
150
|
+
}
|
|
151
|
+
const optedOut = params.protection === "none";
|
|
152
|
+
const toolCallId = typeof ev.toolCallId === "string" ? ev.toolCallId : undefined;
|
|
153
|
+
if (gatesEdit) {
|
|
154
|
+
// Narrow gate: block ONLY an explicit stop-loss cancel. The hook can't
|
|
155
|
+
// see current server-side state, so an edit touching other fields (or a
|
|
156
|
+
// take-profit-only edit) must pass.
|
|
157
|
+
const sl = asObject(params.stopLoss);
|
|
158
|
+
if (sl != null && isZeroStop(sl.percentage) && !optedOut) {
|
|
159
|
+
logger.warn("[protection-gate] blocked edit_position stop-loss cancel without protection:none", {
|
|
160
|
+
toolName: ev.toolName,
|
|
161
|
+
});
|
|
162
|
+
return { block: true, blockReason: buildEditBlockReason() };
|
|
163
|
+
}
|
|
164
|
+
return undefined;
|
|
165
|
+
}
|
|
166
|
+
// create_position: require a stop loss on every order unless opted out.
|
|
167
|
+
const orders = Array.isArray(params.orders) ? params.orders.map(asObject) : undefined;
|
|
168
|
+
// Missing/empty/malformed orders: allow — the server schema owns those.
|
|
169
|
+
if (!orders || orders.length === 0 || orders.some((o) => o === undefined)) {
|
|
170
|
+
return undefined;
|
|
171
|
+
}
|
|
172
|
+
if (optedOut) {
|
|
173
|
+
if (toolCallId)
|
|
174
|
+
capture.record(toolCallId, UNPROTECTED_SUMMARY);
|
|
175
|
+
return undefined;
|
|
176
|
+
}
|
|
177
|
+
if (orders.some((o) => !hasStopLoss(o))) {
|
|
178
|
+
logger.warn("[protection-gate] blocked create_position without a stop loss on every order", {
|
|
179
|
+
toolName: ev.toolName,
|
|
180
|
+
});
|
|
181
|
+
return { block: true, blockReason: buildCreateBlockReason() };
|
|
182
|
+
}
|
|
183
|
+
// All orders protected: allow, and stash the per-order summary so the
|
|
184
|
+
// nudge (which never sees params) can report it after the fill.
|
|
185
|
+
if (toolCallId) {
|
|
186
|
+
capture.record(toolCallId, orders.map((o, i) => summarizeOrder(o, i)).join("; "));
|
|
187
|
+
}
|
|
188
|
+
return undefined;
|
|
189
|
+
}
|
|
190
|
+
catch (err) {
|
|
191
|
+
// Fail open: a gate error must never block a legitimate trade. (A throw
|
|
192
|
+
// would fail closed — the host blocks on hook errors.)
|
|
193
|
+
logger.warn("[protection-gate] gate check failed; allowing tool call", err, {
|
|
194
|
+
toolName: ev.toolName,
|
|
195
|
+
});
|
|
196
|
+
return undefined;
|
|
197
|
+
}
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Build the `tool_result_persist` nudge. Synchronous by contract — the host
|
|
202
|
+
* runs this on the transcript-append hot path and warns-and-ignores any handler
|
|
203
|
+
* that returns a Promise.
|
|
204
|
+
*/
|
|
205
|
+
export function createProtectionNudge(options) {
|
|
206
|
+
const { logger, capture = sharedCapture } = options;
|
|
207
|
+
return (event) => {
|
|
208
|
+
try {
|
|
209
|
+
const ev = (event ?? {});
|
|
210
|
+
// A synthetic result is a host placeholder, not a real create_position fill.
|
|
211
|
+
if (ev.isSynthetic === true || !isTool(ev.toolName, CREATE_POSITION)) {
|
|
212
|
+
return undefined;
|
|
213
|
+
}
|
|
214
|
+
const message = asObject(ev.message);
|
|
215
|
+
if (!message) {
|
|
216
|
+
return undefined;
|
|
217
|
+
}
|
|
218
|
+
// Silent on failed results: no position was opened, nothing to protect.
|
|
219
|
+
if (message.isError === true) {
|
|
220
|
+
return undefined;
|
|
221
|
+
}
|
|
222
|
+
// Append a text block to the existing content; never replace it, so the
|
|
223
|
+
// real tool result reaches the model intact. If content isn't an array we
|
|
224
|
+
// can't append safely — leave the result untouched.
|
|
225
|
+
const content = message.content;
|
|
226
|
+
if (!Array.isArray(content)) {
|
|
227
|
+
return undefined;
|
|
228
|
+
}
|
|
229
|
+
const toolCallId = typeof ev.toolCallId === "string" ? ev.toolCallId : undefined;
|
|
230
|
+
const summary = (toolCallId ? capture.take(toolCallId) : undefined) ?? "see the order you just submitted";
|
|
231
|
+
return {
|
|
232
|
+
message: {
|
|
233
|
+
...message,
|
|
234
|
+
content: [...content, { type: "text", text: buildNudge(summary) }],
|
|
235
|
+
},
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
catch (err) {
|
|
239
|
+
logger.warn("[protection-nudge] nudge build failed; leaving tool result unchanged", err);
|
|
240
|
+
return undefined;
|
|
241
|
+
}
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
//# sourceMappingURL=protection-nudge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protection-nudge.js","sourceRoot":"","sources":["../../src/runtime/protection-nudge.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"risk-guard.d.ts","sourceRoot":"","sources":["../../src/runtime/risk-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAuD,SAAS,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACvH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAI9D,wBAAgB,mBAAmB,IAAI,UAAU,CAchD;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,WAAW,CAAC;IACnB,aAAa,EAAE,mBAAmB,CAAC;IACnC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE;QACjB,OAAO,CACL,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,kBAAkB,EAAE,EACjC,MAAM,EAAE,UAAU,GACjB,IAAI,CAAC;KACT,CAAC;CACH;AAkDD,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"risk-guard.d.ts","sourceRoot":"","sources":["../../src/runtime/risk-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAuD,SAAS,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACvH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAI9D,wBAAgB,mBAAmB,IAAI,UAAU,CAchD;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,WAAW,CAAC;IACnB,aAAa,EAAE,mBAAmB,CAAC;IACnC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE;QACjB,OAAO,CACL,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,kBAAkB,EAAE,EACjC,MAAM,EAAE,UAAU,GACjB,IAAI,CAAC;KACT,CAAC;CACH;AAkDD,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,UAAU,CA+gBnE"}
|
|
@@ -79,7 +79,9 @@ function deriveEffective(gates) {
|
|
|
79
79
|
export function createRiskGuard(config) {
|
|
80
80
|
const prevGateState = new Map();
|
|
81
81
|
function strategyKey(address) {
|
|
82
|
-
|
|
82
|
+
// Short-address mask = `0x` + last 4 (e.g. `0x1234`), matching every other
|
|
83
|
+
// producer (strategy-manager, senpi-web, engine, perps-leaderboard).
|
|
84
|
+
return config.strategyNames?.[address] ?? `0x${address.slice(-4)}`;
|
|
83
85
|
}
|
|
84
86
|
async function logAndNotify(address, result, source, candidateAsset, evaluations) {
|
|
85
87
|
const sk = strategyKey(address);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"risk-guard.js","sourceRoot":"","sources":["../../src/runtime/risk-guard.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"risk-guard.js","sourceRoot":"","sources":["../../src/runtime/risk-guard.ts"],"names":[],"mappings":"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"}
|
|
@@ -63,10 +63,6 @@ export declare class Runtime {
|
|
|
63
63
|
private cachedStrategyId;
|
|
64
64
|
/** In-flight resolution promise; ensures concurrent first-burst callers reuse one `listStrategies`. */
|
|
65
65
|
private strategyIdResolution;
|
|
66
|
-
/** Scanner-alert dedupe: (scannerId, message) key → last-emitted ms. Pruned opportunistically. */
|
|
67
|
-
private scannerAlertLastEmitted;
|
|
68
|
-
/** Suppression-WARN rate limiting for the same keyspace — at most one WARN per key per window. */
|
|
69
|
-
private scannerAlertLastWarned;
|
|
70
66
|
/** Serializes reconcile vs the trade loop. One shared key "reconcile". */
|
|
71
67
|
private reconcileMutex;
|
|
72
68
|
/** Deferred gate: consumer awaits this before touching slot counts / running actions. */
|
|
@@ -158,18 +154,6 @@ export declare class Runtime {
|
|
|
158
154
|
* states. Best-effort: a failure here must not block runtime start.
|
|
159
155
|
*/
|
|
160
156
|
private rehydratePositionIdRegistry;
|
|
161
|
-
/**
|
|
162
|
-
* Filter one scan run's alerts down to the ones fresh enough to notify on,
|
|
163
|
-
* per (scannerId, message) — see {@link SCANNER_ALERT_DEDUPE_MS}. A run
|
|
164
|
-
* mixing a brand-new alert with a repeat of one already notified within the
|
|
165
|
-
* window still surfaces the new one; the repeat is silently dropped from
|
|
166
|
-
* the result and, on its first suppression this window, logs one rate-limited
|
|
167
|
-
* WARN. Freshly-emitted keys record `now` so the next occurrence inside the
|
|
168
|
-
* window is recognized as a repeat.
|
|
169
|
-
*/
|
|
170
|
-
private freshScannerAlerts;
|
|
171
|
-
/** Opportunistic cleanup of scanner-alert dedupe state — bounds memory for long-running runtimes. */
|
|
172
|
-
private pruneScannerAlertDedupe;
|
|
173
157
|
/**
|
|
174
158
|
* Cached wallet → strategy-id lookup. Concurrent callers share one
|
|
175
159
|
* in-flight `listStrategies` promise; the cached id is reused across
|