@senpi/runtime 3.0.28 → 3.0.29
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/dsl/notifications/formatter.d.ts +7 -1
- package/dist/dsl/notifications/formatter.d.ts.map +1 -1
- package/dist/dsl/notifications/formatter.js +22 -0
- package/dist/dsl/notifications/formatter.js.map +1 -1
- package/dist/dsl/notifications/index.d.ts.map +1 -1
- package/dist/dsl/notifications/index.js +21 -1
- package/dist/dsl/notifications/index.js.map +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -1
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Plain-text messages for DSL lifecycle notifications.
|
|
3
3
|
*/
|
|
4
|
-
import type { DslTierAdvancedEvent, DslSlUpdatedEvent, DslHeartbeatEvent } from "../../types/dsl/index.js";
|
|
4
|
+
import type { DslCreatedEvent, DslTierAdvancedEvent, DslSlUpdatedEvent, DslHeartbeatEvent } from "../../types/dsl/index.js";
|
|
5
5
|
import type { NotificationCopy } from "../../types/notification.js";
|
|
6
|
+
/**
|
|
7
|
+
* DSL-activated notification: fired when the runtime attaches a trailing DSL at
|
|
8
|
+
* position open. Label-free — the DSL subscriber applies the `[strategy]` prefix
|
|
9
|
+
* (and push-title truncation) before it ships. Every value comes from the event.
|
|
10
|
+
*/
|
|
11
|
+
export declare function formatDslCreated(e: DslCreatedEvent): NotificationCopy;
|
|
6
12
|
/**
|
|
7
13
|
* Tier / profit-lock notification. Label-free — the DSL subscriber applies the
|
|
8
14
|
* `[strategy]` prefix (and push-title truncation) before it ships.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../../src/dsl/notifications/formatter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAWpE;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,oBAAoB,GAAG,gBAAgB,CAgB/E;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,iBAAiB,GAAG,gBAAgB,CAOzE;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAG3E;AAUD,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAY/D"}
|
|
1
|
+
{"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../../src/dsl/notifications/formatter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAWpE;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,eAAe,GAAG,gBAAgB,CAkBrE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,oBAAoB,GAAG,gBAAgB,CAgB/E;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,iBAAiB,GAAG,gBAAgB,CAOzE;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAG3E;AAUD,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAY/D"}
|
|
@@ -5,6 +5,28 @@ import { fmtUsdPrice, fmtUsdPnl, fmtRoe, } from "./format-utils.js";
|
|
|
5
5
|
function fmtDex(dex) {
|
|
6
6
|
return dex ? ` (${dex})` : "";
|
|
7
7
|
}
|
|
8
|
+
/**
|
|
9
|
+
* DSL-activated notification: fired when the runtime attaches a trailing DSL at
|
|
10
|
+
* position open. Label-free — the DSL subscriber applies the `[strategy]` prefix
|
|
11
|
+
* (and push-title truncation) before it ships. Every value comes from the event.
|
|
12
|
+
*/
|
|
13
|
+
export function formatDslCreated(e) {
|
|
14
|
+
const asset = e.asset;
|
|
15
|
+
const direction = e.direction;
|
|
16
|
+
const leverage = e.leverage;
|
|
17
|
+
// % gap between entry and the initial stop floor; abs so LONG (floor below) and
|
|
18
|
+
// SHORT (floor above) both read as a positive distance "away".
|
|
19
|
+
const distPct = Number.isFinite(e.entryPrice) && e.entryPrice !== 0
|
|
20
|
+
? Math.abs((e.entryPrice - e.floorPrice) / e.entryPrice) * 100
|
|
21
|
+
: 0;
|
|
22
|
+
const dist = fmtRoe(distPct);
|
|
23
|
+
return {
|
|
24
|
+
pushTitle: "DSL activated",
|
|
25
|
+
pushBody: `DSL activated on ${asset} ${direction} ${leverage}×`,
|
|
26
|
+
inApp: `DSL activated on ${asset} ${direction} ${leverage}× — ` +
|
|
27
|
+
`stop at ${fmtUsdPrice(e.floorPrice, asset)} (${dist} away) — trails up as the trade gains.`,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
8
30
|
/**
|
|
9
31
|
* Tier / profit-lock notification. Label-free — the DSL subscriber applies the
|
|
10
32
|
* `[strategy]` prefix (and push-title truncation) before it ships.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../../src/dsl/notifications/formatter.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../../src/dsl/notifications/formatter.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,OAAO,EACL,WAAW,EACX,SAAS,EACT,MAAM,GACP,MAAM,mBAAmB,CAAC;AAE3B,SAAS,MAAM,CAAC,GAAW;IACzB,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,CAAkB;IACjD,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;IACtB,MAAM,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;IAC9B,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;IAC5B,gFAAgF;IAChF,+DAA+D;IAC/D,MAAM,OAAO,GACX,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,UAAU,KAAK,CAAC;QACjD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG;QAC9D,CAAC,CAAC,CAAC,CAAC;IACR,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7B,OAAO;QACL,SAAS,EAAE,eAAe;QAC1B,QAAQ,EAAE,oBAAoB,KAAK,IAAI,SAAS,IAAI,QAAQ,GAAG;QAC/D,KAAK,EACH,oBAAoB,KAAK,IAAI,SAAS,IAAI,QAAQ,MAAM;YACxD,WAAW,WAAW,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,IAAI,wCAAwC;KAC/F,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,CAAuB;IAC3D,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;IACtB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;IAC7B,MAAM,SAAS,GAAG,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC;IACjC,MAAM,EAAE,GAAG,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC;IAC/B,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC;IACxC,OAAO;QACL,SAAS,EAAE,kBAAkB;QAC7B,QAAQ,EAAE,cAAc,SAAS,CAAC,SAAS,CAAC,OAAO,KAAK,EAAE;QAC1D,KAAK,EACH,MAAM,KAAK,IAAI,SAAS,oBAAoB,SAAS,CAAC,SAAS,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC,IAAI;YAC1F,kBAAkB,WAAW,CAAC,CAAC,CAAC,aAAa,EAAE,KAAK,CAAC,UAAU,SAAS,CAAC,UAAU,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,YAAY,MAAM,CAAC,EAAE,CAAC,qCAAqC;KACrK,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,CAAoB;IACrD,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;IACtB,OAAO;QACL,SAAS,EAAE,gBAAgB;QAC3B,QAAQ,EAAE,GAAG,KAAK,WAAW,WAAW,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE;QAC/D,KAAK,EAAE,GAAG,KAAK,yBAAyB,WAAW,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,gCAAgC;KACzG,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,CAAkC;IACjE,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IAChC,OAAO,gBAAgB,CAAC,CAAC,KAAK,GAAG,GAAG,EAAE,CAAC;AACzC,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IACnD,IAAI,IAAI,GAAG,EAAE;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;IAC7C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IAChC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,CAAoB;IACrD,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;IAC7B,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,CAAC,SAAS,eAAe,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,SAAS,CAAC,UAAU,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;IACpJ,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IAC5D,MAAM,YAAY,GAChB,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,GAAG,CAAC;QAC1B,CAAC,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,gBAAgB;QACzC,CAAC,CAAC,sBAAsB,CAAC;IAC7B,MAAM,KAAK,GAAG,WAAW,WAAW,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,YAAY,EAAE,CAAC;IAChF,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dsl/notifications/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAoB,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dsl/notifications/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAoB,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAmB9G,MAAM,WAAW,sBAAsB;IACrC,+FAA+F;IAC/F,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,wBAAgB,UAAU,CACxB,QAAQ,EAAE,mBAAmB,EAC7B,KAAK,EAAE,MAAM,GAAG,mBAAmB,GAClC,IAAI,CAWN;AAwDD,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,aAAa,EAClB,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,CAAC,EAAE,sBAAsB,GAC/B,yBAAyB,CAqF3B"}
|
|
@@ -5,7 +5,7 @@ import { applyMessagePrefix, labelPrefix } from "../../types/notification.js";
|
|
|
5
5
|
import { DSL_EVENTS } from "../../constants/dsl/index.js";
|
|
6
6
|
import { createLogger } from "../../utils/logger.js";
|
|
7
7
|
import { randomUUID } from "node:crypto";
|
|
8
|
-
import { formatDslTierAdvanced, formatDslSlUpdated, } from "./formatter.js";
|
|
8
|
+
import { formatDslCreated, formatDslTierAdvanced, formatDslSlUpdated, } from "./formatter.js";
|
|
9
9
|
import { RaiseCorrelator, raiseKey } from "./raise-correlator.js";
|
|
10
10
|
const logger = createLogger("[senpi-core][dsl-notifications]");
|
|
11
11
|
export function safeNotify(notifier, input) {
|
|
@@ -77,6 +77,24 @@ export function createDslNotificationSubscriber(bus, notifier, options) {
|
|
|
77
77
|
// raise is then suppressed. A tier that locks nothing (<= 0) emits no
|
|
78
78
|
// Profit-locked message and lets its stop-raise through. See RaiseCorrelator.
|
|
79
79
|
const correlator = new RaiseCorrelator();
|
|
80
|
+
// DSL attached at position open → "DSL activated". Gated to fresh opens only:
|
|
81
|
+
// resize/flip/rebuild (position_increased/decreased/flipped/adopted) re-emit
|
|
82
|
+
// dsl.created for bookkeeping but must not re-announce activation. Not gated on
|
|
83
|
+
// notifySlUpdates — that opt-out governs stop-raise chatter, not this one-shot.
|
|
84
|
+
const onCreated = (e) => {
|
|
85
|
+
runNotificationHandler(() => {
|
|
86
|
+
const ev = e;
|
|
87
|
+
if (ev.triggerReason !== "position_opened") {
|
|
88
|
+
logger.debug("[dsl-notifications] dsl.created ignored: not a fresh open", {
|
|
89
|
+
asset: ev.asset,
|
|
90
|
+
triggerReason: ev.triggerReason,
|
|
91
|
+
});
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
const copy = formatDslCreated(ev);
|
|
95
|
+
notify(buildOpenablePayload(copy, "DSL_ACTIVATED", ev.address, ev.timestamp, ev.asset, ev.dex));
|
|
96
|
+
});
|
|
97
|
+
};
|
|
80
98
|
const onTierAdvanced = (e) => {
|
|
81
99
|
runNotificationHandler(() => {
|
|
82
100
|
const ev = e;
|
|
@@ -119,10 +137,12 @@ export function createDslNotificationSubscriber(bus, notifier, options) {
|
|
|
119
137
|
// themselves still fire for other consumers (e.g. dev/telemetry logging in
|
|
120
138
|
// src/scripts/run-dsl-standalone-*.ts); only the notify() forwarding was
|
|
121
139
|
// removed.
|
|
140
|
+
bus.on(DSL_EVENTS.CREATED, onCreated);
|
|
122
141
|
bus.on(DSL_EVENTS.TIER_ADVANCED, onTierAdvanced);
|
|
123
142
|
bus.on(DSL_EVENTS.SL_UPDATED, onSlUpdated);
|
|
124
143
|
return {
|
|
125
144
|
dispose() {
|
|
145
|
+
bus.off(DSL_EVENTS.CREATED, onCreated);
|
|
126
146
|
bus.off(DSL_EVENTS.TIER_ADVANCED, onTierAdvanced);
|
|
127
147
|
bus.off(DSL_EVENTS.SL_UPDATED, onSlUpdated);
|
|
128
148
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dsl/notifications/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dsl/notifications/index.ts"],"names":[],"mappings":"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"}
|
package/openclaw.plugin.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"id": "runtime",
|
|
3
3
|
"name": "Senpi Runtime",
|
|
4
4
|
"description": "Senpi runtime plugin for OpenClaw. Orchestrates scanners, LLM-based trade decisions, and a DSL trailing stop-loss exit engine.",
|
|
5
|
-
"version": "3.0.
|
|
5
|
+
"version": "3.0.29",
|
|
6
6
|
"commandAliases": [
|
|
7
7
|
{
|
|
8
8
|
"name": "senpi"
|