@senpi/runtime 3.0.37 → 3.0.38
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/engine-client/event-mapping.d.ts +2 -0
- package/dist/dsl/engine-client/event-mapping.d.ts.map +1 -1
- package/dist/dsl/engine-client/event-mapping.js +4 -1
- package/dist/dsl/engine-client/event-mapping.js.map +1 -1
- package/dist/dsl/events/handlers.d.ts +8 -0
- package/dist/dsl/events/handlers.d.ts.map +1 -1
- package/dist/dsl/events/handlers.js +25 -4
- package/dist/dsl/events/handlers.js.map +1 -1
- package/dist/dsl/events/initial-state.d.ts +11 -1
- package/dist/dsl/events/initial-state.d.ts.map +1 -1
- package/dist/dsl/events/initial-state.js +4 -1
- package/dist/dsl/events/initial-state.js.map +1 -1
- package/dist/dsl/monitor/process-one-position.d.ts.map +1 -1
- package/dist/dsl/monitor/process-one-position.js +5 -0
- package/dist/dsl/monitor/process-one-position.js.map +1 -1
- package/dist/dsl/notifications/floor-store.d.ts +16 -0
- package/dist/dsl/notifications/floor-store.d.ts.map +1 -0
- package/dist/dsl/notifications/floor-store.js +57 -0
- package/dist/dsl/notifications/floor-store.js.map +1 -0
- package/dist/dsl/notifications/format-utils.d.ts +15 -4
- package/dist/dsl/notifications/format-utils.d.ts.map +1 -1
- package/dist/dsl/notifications/format-utils.js +24 -5
- package/dist/dsl/notifications/format-utils.js.map +1 -1
- package/dist/dsl/notifications/formatter.d.ts +5 -2
- package/dist/dsl/notifications/formatter.d.ts.map +1 -1
- package/dist/dsl/notifications/formatter.js +15 -7
- package/dist/dsl/notifications/formatter.js.map +1 -1
- package/dist/dsl/notifications/index.d.ts +23 -1
- package/dist/dsl/notifications/index.d.ts.map +1 -1
- package/dist/dsl/notifications/index.js +100 -7
- package/dist/dsl/notifications/index.js.map +1 -1
- package/dist/dsl/plugin/index.d.ts.map +1 -1
- package/dist/dsl/plugin/index.js +5 -1
- package/dist/dsl/plugin/index.js.map +1 -1
- package/dist/runtime/decision-errors.d.ts +3 -2
- package/dist/runtime/decision-errors.d.ts.map +1 -1
- package/dist/runtime/decision-errors.js +7 -6
- package/dist/runtime/decision-errors.js.map +1 -1
- package/dist/runtime/notifications.d.ts.map +1 -1
- package/dist/runtime/notifications.js +16 -4
- package/dist/runtime/notifications.js.map +1 -1
- package/dist/runtime/runtime.js +1 -1
- package/dist/runtime/runtime.js.map +1 -1
- package/dist/runtime/strategy-lifecycle.d.ts.map +1 -1
- package/dist/runtime/strategy-lifecycle.js +20 -16
- package/dist/runtime/strategy-lifecycle.js.map +1 -1
- package/dist/types/dsl/index.d.ts +22 -0
- package/dist/types/dsl/index.d.ts.map +1 -1
- package/dist/types/notification.d.ts +17 -1
- package/dist/types/notification.d.ts.map +1 -1
- package/dist/types/notification.js.map +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* State-manager-backed {@link DslNotifiedFloorStore}: the persisted per-position
|
|
3
|
+
* baseline the "Stop raised" / "Profit locked" subscriber reads and stamps.
|
|
4
|
+
*
|
|
5
|
+
* Kept out of the subscriber itself so the notifications module has no hard
|
|
6
|
+
* dependency on the state manager (a bare subscriber — dev/standalone/tests —
|
|
7
|
+
* simply omits the store and falls back to the in-memory ratchet).
|
|
8
|
+
*
|
|
9
|
+
* Resolution mirrors the notification events, which carry `address` + `asset`
|
|
10
|
+
* but NO book (`dex`): {@link StateManager.getDslStateByAsset} matches on the
|
|
11
|
+
* normalized coin and, when a single active row for the base exists, returns it.
|
|
12
|
+
*/
|
|
13
|
+
import { stateKey } from "../../state/paths.js";
|
|
14
|
+
import { createLogger } from "../../utils/logger.js";
|
|
15
|
+
const logger = createLogger("[senpi-core][dsl-notifications]");
|
|
16
|
+
/** Advance a floor favorably (higher LONG / lower SHORT); establish it when absent. */
|
|
17
|
+
function advanceFavorably(prev, floor, direction) {
|
|
18
|
+
if (prev === undefined)
|
|
19
|
+
return floor;
|
|
20
|
+
return direction === "LONG" ? Math.max(prev, floor) : Math.min(prev, floor);
|
|
21
|
+
}
|
|
22
|
+
export function createDslNotifiedFloorStore(stateManager) {
|
|
23
|
+
return {
|
|
24
|
+
async getLastNotifiedStopFloor(ev) {
|
|
25
|
+
const state = await stateManager.getDslStateByAsset(ev.address, ev.asset);
|
|
26
|
+
return state?.active ? state.lastNotifiedStopFloor : undefined;
|
|
27
|
+
},
|
|
28
|
+
async stampNotifiedStopFloor(ev, floor, direction) {
|
|
29
|
+
if (!Number.isFinite(floor))
|
|
30
|
+
return;
|
|
31
|
+
// Resolve the row first (events carry no dex), then RMW under its own key
|
|
32
|
+
// lock so the stamp never races the monitor's own writes for this position.
|
|
33
|
+
const resolved = await stateManager.getDslStateByAsset(ev.address, ev.asset);
|
|
34
|
+
if (!resolved?.active)
|
|
35
|
+
return;
|
|
36
|
+
const key = stateKey(resolved.address, resolved.asset, resolved.dex ?? "");
|
|
37
|
+
await stateManager.withKeyLock(key, async () => {
|
|
38
|
+
const current = await stateManager.getOrLoad(key);
|
|
39
|
+
if (!current?.active)
|
|
40
|
+
return;
|
|
41
|
+
const next = advanceFavorably(current.lastNotifiedStopFloor, floor, direction);
|
|
42
|
+
// Skip the write when the baseline would not move (a retreat, or an equal
|
|
43
|
+
// floor) — avoids churning the state file on every re-anchor.
|
|
44
|
+
if (next === current.lastNotifiedStopFloor)
|
|
45
|
+
return;
|
|
46
|
+
await stateManager.set(key, { ...current, lastNotifiedStopFloor: next });
|
|
47
|
+
logger.debug("[dsl-notifications] stamped lastNotifiedStopFloor", {
|
|
48
|
+
address: resolved.address,
|
|
49
|
+
asset: resolved.asset,
|
|
50
|
+
floor: next,
|
|
51
|
+
direction,
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=floor-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"floor-store.js","sourceRoot":"","sources":["../../../src/dsl/notifications/floor-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrD,MAAM,MAAM,GAAG,YAAY,CAAC,iCAAiC,CAAC,CAAC;AAE/D,uFAAuF;AACvF,SAAS,gBAAgB,CACvB,IAAwB,EACxB,KAAa,EACb,SAA2B;IAE3B,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACrC,OAAO,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,YAA0B;IACpE,OAAO;QACL,KAAK,CAAC,wBAAwB,CAAC,EAAE;YAC/B,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;YAC1E,OAAO,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC;QACjE,CAAC;QAED,KAAK,CAAC,sBAAsB,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS;YAC/C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,OAAO;YACpC,0EAA0E;YAC1E,4EAA4E;YAC5E,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;YAC7E,IAAI,CAAC,QAAQ,EAAE,MAAM;gBAAE,OAAO;YAC9B,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;YAC3E,MAAM,YAAY,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE;gBAC7C,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,SAAS,CAAW,GAAG,CAAC,CAAC;gBAC5D,IAAI,CAAC,OAAO,EAAE,MAAM;oBAAE,OAAO;gBAC7B,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,qBAAqB,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;gBAC/E,0EAA0E;gBAC1E,8DAA8D;gBAC9D,IAAI,IAAI,KAAK,OAAO,CAAC,qBAAqB;oBAAE,OAAO;gBACnD,MAAM,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC;gBACzE,MAAM,CAAC,KAAK,CAAC,mDAAmD,EAAE;oBAChE,OAAO,EAAE,QAAQ,CAAC,OAAO;oBACzB,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,KAAK,EAAE,IAAI;oBACX,SAAS;iBACV,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -14,9 +14,15 @@ export declare function fmtAsset(asset: string): string;
|
|
|
14
14
|
*/
|
|
15
15
|
export declare function fmtLeverage(leverage: number | undefined): string;
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
17
|
+
* Title-case trade direction for display (`LONG` → `Long`, `SHORT` → `Short`);
|
|
18
|
+
* the spec examples never render the raw uppercase event value. Blank stays blank
|
|
19
|
+
* so callers can omit an unknown direction entirely.
|
|
20
|
+
*/
|
|
21
|
+
export declare function fmtDirection(direction: string): string;
|
|
22
|
+
/**
|
|
23
|
+
* Build the `$ASSET Direction Nx` position label, title-casing the direction and
|
|
24
|
+
* omitting the leverage when it is unknown/non-positive (never `0×`). E.g.
|
|
25
|
+
* `$ETH Long 5×`, or `$ETH Long` when the leverage is missing.
|
|
20
26
|
*/
|
|
21
27
|
export declare function fmtPosition(asset: string, direction: string, leverage?: number): string;
|
|
22
28
|
/**
|
|
@@ -33,6 +39,11 @@ export declare function fmtUsdPrice(price: number, asset?: string): string;
|
|
|
33
39
|
* Signed P/L in USD with two decimals (+$80.27, -$48.15).
|
|
34
40
|
*/
|
|
35
41
|
export declare function fmtUsdPnl(amount: number): string;
|
|
36
|
-
/**
|
|
42
|
+
/**
|
|
43
|
+
* ROE percent with one decimal and sign (+6.6%, -3.5%). Never renders `±0%`
|
|
44
|
+
* (copy rules): a true zero is the unsigned `0.0%`, and a sub-0.1% magnitude
|
|
45
|
+
* uses the same `<0.1%` guard as {@link fmtDistancePct}, keeping the sign of
|
|
46
|
+
* the underlying value (`+<0.1%` / `-<0.1%`).
|
|
47
|
+
*/
|
|
37
48
|
export declare function fmtRoe(pct: number): string;
|
|
38
49
|
//# sourceMappingURL=format-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-utils.d.ts","sourceRoot":"","sources":["../../../src/dsl/notifications/format-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAG9C;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAIhE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAGvF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKlD;AAWD;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAYjE;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAIhD;AAED
|
|
1
|
+
{"version":3,"file":"format-utils.d.ts","sourceRoot":"","sources":["../../../src/dsl/notifications/format-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAG9C;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAIhE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAGtD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAGvF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKlD;AAWD;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAYjE;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAIhD;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAO1C"}
|
|
@@ -29,13 +29,22 @@ export function fmtLeverage(leverage) {
|
|
|
29
29
|
: "";
|
|
30
30
|
}
|
|
31
31
|
/**
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
32
|
+
* Title-case trade direction for display (`LONG` → `Long`, `SHORT` → `Short`);
|
|
33
|
+
* the spec examples never render the raw uppercase event value. Blank stays blank
|
|
34
|
+
* so callers can omit an unknown direction entirely.
|
|
35
|
+
*/
|
|
36
|
+
export function fmtDirection(direction) {
|
|
37
|
+
const d = (direction ?? "").trim();
|
|
38
|
+
return d ? d.charAt(0).toUpperCase() + d.slice(1).toLowerCase() : "";
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Build the `$ASSET Direction Nx` position label, title-casing the direction and
|
|
42
|
+
* omitting the leverage when it is unknown/non-positive (never `0×`). E.g.
|
|
43
|
+
* `$ETH Long 5×`, or `$ETH Long` when the leverage is missing.
|
|
35
44
|
*/
|
|
36
45
|
export function fmtPosition(asset, direction, leverage) {
|
|
37
46
|
const lev = fmtLeverage(leverage);
|
|
38
|
-
return [fmtAsset(asset), direction, lev].filter((s) => s !== "").join(" ");
|
|
47
|
+
return [fmtAsset(asset), fmtDirection(direction), lev].filter((s) => s !== "").join(" ");
|
|
39
48
|
}
|
|
40
49
|
/**
|
|
41
50
|
* Unsigned percentage magnitude with one decimal, for a distance/gap that is not a
|
|
@@ -87,10 +96,20 @@ export function fmtUsdPnl(amount) {
|
|
|
87
96
|
const sign = amount >= 0 ? "+" : "";
|
|
88
97
|
return `${sign}${formatUsdWithCommas(amount, 2)}`;
|
|
89
98
|
}
|
|
90
|
-
/**
|
|
99
|
+
/**
|
|
100
|
+
* ROE percent with one decimal and sign (+6.6%, -3.5%). Never renders `±0%`
|
|
101
|
+
* (copy rules): a true zero is the unsigned `0.0%`, and a sub-0.1% magnitude
|
|
102
|
+
* uses the same `<0.1%` guard as {@link fmtDistancePct}, keeping the sign of
|
|
103
|
+
* the underlying value (`+<0.1%` / `-<0.1%`).
|
|
104
|
+
*/
|
|
91
105
|
export function fmtRoe(pct) {
|
|
92
106
|
if (!Number.isFinite(pct))
|
|
93
107
|
return "0.0%";
|
|
108
|
+
const abs = Math.abs(pct);
|
|
109
|
+
if (abs === 0)
|
|
110
|
+
return "0.0%";
|
|
111
|
+
if (abs < 0.1)
|
|
112
|
+
return `${pct > 0 ? "+" : "-"}<0.1%`;
|
|
94
113
|
const sign = pct >= 0 ? "+" : "";
|
|
95
114
|
return `${sign}${pct.toFixed(1)}%`;
|
|
96
115
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-utils.js","sourceRoot":"","sources":["../../../src/dsl/notifications/format-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,SAAS,UAAU,CAAC,KAAa;IAC/B,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACvB,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5C,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,QAA4B;IACtD,OAAO,OAAO,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC;QAC9E,CAAC,CAAC,GAAG,QAAQ,GAAG;QAChB,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,SAAiB,EAAE,QAAiB;IAC7E,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"format-utils.js","sourceRoot":"","sources":["../../../src/dsl/notifications/format-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* In-app text carries lightweight display markup the front-end renders:
|
|
5
5
|
* - `<b>…</b>` bold span
|
|
6
6
|
* - `<pnl>${x}</pnl>` a P&L value the FE colors green/red by sign
|
|
7
|
+
* - `<br>` a literal line break (the FE renders it as a newline)
|
|
7
8
|
* The push body is ALWAYS plain text (no markup) and carries no strategy label:
|
|
8
9
|
* there is no push title here at all — the notification service sets it to the
|
|
9
10
|
* strategy/skill name it resolves from `strategyWalletAddress`, so repeating the
|
|
@@ -26,8 +27,10 @@ export declare function formatDslCreated(e: DslCreatedEvent): NotificationCopy;
|
|
|
26
27
|
export declare function formatDslTierAdvanced(e: DslTierAdvancedEvent): NotificationCopy;
|
|
27
28
|
/**
|
|
28
29
|
* Stop-raised notification — the DSL raised the stop but locked no
|
|
29
|
-
* profit yet.
|
|
30
|
-
*
|
|
30
|
+
* profit yet. Both emit sites (local monitor and the backend-mapped path) carry
|
|
31
|
+
* leverage and the high-water price today; each is optional on the event, so the
|
|
32
|
+
* copy omits the `N×` / `new high` fragment cleanly rather than fabricating a
|
|
33
|
+
* value when a legacy emitter leaves it out. The push body carries no label.
|
|
31
34
|
*/
|
|
32
35
|
export declare function formatDslSlUpdated(e: DslSlUpdatedEvent): NotificationCopy;
|
|
33
36
|
//# sourceMappingURL=formatter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../../src/dsl/notifications/formatter.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../../src/dsl/notifications/formatter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AASpE;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,eAAe,GAAG,gBAAgB,CAgBrE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,oBAAoB,GAAG,gBAAgB,CAkB/E;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,iBAAiB,GAAG,gBAAgB,CAezE"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* In-app text carries lightweight display markup the front-end renders:
|
|
5
5
|
* - `<b>…</b>` bold span
|
|
6
6
|
* - `<pnl>${x}</pnl>` a P&L value the FE colors green/red by sign
|
|
7
|
+
* - `<br>` a literal line break (the FE renders it as a newline)
|
|
7
8
|
* The push body is ALWAYS plain text (no markup) and carries no strategy label:
|
|
8
9
|
* there is no push title here at all — the notification service sets it to the
|
|
9
10
|
* strategy/skill name it resolves from `strategyWalletAddress`, so repeating the
|
|
@@ -28,7 +29,7 @@ export function formatDslCreated(e) {
|
|
|
28
29
|
return {
|
|
29
30
|
pushBody: `DSL activated on ${position}`,
|
|
30
31
|
inApp: `<b>DSL activated on</b> ${position} — ` +
|
|
31
|
-
`stop at ${fmtUsdPrice(e.floorPrice, asset)} (${dist} away)
|
|
32
|
+
`stop at ${fmtUsdPrice(e.floorPrice, asset)} (${dist} away) — trails up as the trade gains.`,
|
|
32
33
|
};
|
|
33
34
|
}
|
|
34
35
|
/**
|
|
@@ -48,7 +49,7 @@ export function formatDslTierAdvanced(e) {
|
|
|
48
49
|
const position = fmtPosition(asset, direction, e.leverage);
|
|
49
50
|
return {
|
|
50
51
|
pushBody: `🔒 DSL locked ${fmtUsdPnl(lockedUsd)} on ${position}`,
|
|
51
|
-
inApp: `🔒 <b>${position} — DSL locked in ${fmtUsdPnl(lockedUsd)} (${fmtRoe(lockedPct)})</b
|
|
52
|
+
inApp: `🔒 <b>${position} — DSL locked in ${fmtUsdPnl(lockedUsd)} (${fmtRoe(lockedPct)})</b><br>` +
|
|
52
53
|
`New peak ${fmtRoe(hw)}, stop now ${fmtUsdPrice(e.newFloorPrice, asset)} — ` +
|
|
53
54
|
`you keep at least ${fmtUsdPnl(lockedUsd)} even on a reversal. ` +
|
|
54
55
|
`Now <pnl>${fmtUsdPnl(currentPnl)} (${fmtRoe(curRoe)})</pnl>, still running.`,
|
|
@@ -56,15 +57,22 @@ export function formatDslTierAdvanced(e) {
|
|
|
56
57
|
}
|
|
57
58
|
/**
|
|
58
59
|
* Stop-raised notification — the DSL raised the stop but locked no
|
|
59
|
-
* profit yet.
|
|
60
|
-
*
|
|
60
|
+
* profit yet. Both emit sites (local monitor and the backend-mapped path) carry
|
|
61
|
+
* leverage and the high-water price today; each is optional on the event, so the
|
|
62
|
+
* copy omits the `N×` / `new high` fragment cleanly rather than fabricating a
|
|
63
|
+
* value when a legacy emitter leaves it out. The push body carries no label.
|
|
61
64
|
*/
|
|
62
65
|
export function formatDslSlUpdated(e) {
|
|
63
66
|
const asset = e.asset;
|
|
64
|
-
const position = fmtPosition(asset, e.direction ?? "",
|
|
67
|
+
const position = fmtPosition(asset, e.direction ?? "", e.leverage);
|
|
68
|
+
const newSL = fmtUsdPrice(e.newSLPrice, asset);
|
|
69
|
+
const hwPrice = e.highWaterPrice;
|
|
70
|
+
const hw = typeof hwPrice === "number" && Number.isFinite(hwPrice) && hwPrice > 0
|
|
71
|
+
? `new high ${fmtUsdPrice(hwPrice, asset)}, `
|
|
72
|
+
: "";
|
|
65
73
|
return {
|
|
66
|
-
pushBody: `${position} stop → ${
|
|
67
|
-
inApp: `<b>${position}</b> — DSL stop raised to ${
|
|
74
|
+
pushBody: `${position} stop → ${newSL}`,
|
|
75
|
+
inApp: `<b>${position}</b> — ${hw}DSL stop raised to ${newSL}<br>` +
|
|
68
76
|
`Less at risk now if price pulls back.`,
|
|
69
77
|
};
|
|
70
78
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../../src/dsl/notifications/formatter.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../../src/dsl/notifications/formatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,5 +7,27 @@ export interface DslNotificationSubscriber {
|
|
|
7
7
|
dispose(): void;
|
|
8
8
|
}
|
|
9
9
|
export declare function safeNotify(notifier: NotificationService, input: string | NotificationPayload): void;
|
|
10
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Persisted per-position notification baseline, backed by the DSL state manager.
|
|
12
|
+
* Optional: when absent (e.g. standalone/dev wiring or a bare test), the
|
|
13
|
+
* subscriber falls back to the in-memory ratchet alone and behaves exactly as
|
|
14
|
+
* before. When present it makes a retreat impossible to re-announce across a
|
|
15
|
+
* rebuild (fresh correlationId) or a process restart.
|
|
16
|
+
*/
|
|
17
|
+
export interface DslNotifiedFloorStore {
|
|
18
|
+
/** Most-favorable floor already announced for this position, or undefined if none. */
|
|
19
|
+
getLastNotifiedStopFloor(ev: {
|
|
20
|
+
address: string;
|
|
21
|
+
asset: string;
|
|
22
|
+
}): Promise<number | undefined>;
|
|
23
|
+
/**
|
|
24
|
+
* Record `floor` as announced, advancing the persisted baseline favorably only
|
|
25
|
+
* (higher LONG / lower SHORT). A no-op when it would retreat the baseline.
|
|
26
|
+
*/
|
|
27
|
+
stampNotifiedStopFloor(ev: {
|
|
28
|
+
address: string;
|
|
29
|
+
asset: string;
|
|
30
|
+
}, floor: number, direction: "LONG" | "SHORT"): Promise<void>;
|
|
31
|
+
}
|
|
32
|
+
export declare function createDslNotificationSubscriber(bus: SenpiEventBus, notifier: NotificationService, store?: DslNotifiedFloorStore): DslNotificationSubscriber;
|
|
11
33
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -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;AA8B9G,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;
|
|
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;AA8B9G,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;AAoFD;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC,sFAAsF;IACtF,wBAAwB,CAAC,EAAE,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC9F;;;OAGG;IACH,sBAAsB,CACpB,EAAE,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EACtC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAAG,OAAO,GAC1B,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AA4BD,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,aAAa,EAClB,QAAQ,EAAE,mBAAmB,EAC7B,KAAK,CAAC,EAAE,qBAAqB,GAC5B,yBAAyB,CAiK3B"}
|
|
@@ -45,8 +45,15 @@ export function safeNotify(notifier, input) {
|
|
|
45
45
|
* Fail-safe: without a strategy address the chat has nothing to key on (a dead
|
|
46
46
|
* tap), so we WARN and ship the message non-openable rather than an empty seed.
|
|
47
47
|
*/
|
|
48
|
-
function buildOpenablePayload(copy, subtype, address, createdAt, asset, dex) {
|
|
48
|
+
function buildOpenablePayload(copy, subtype, address, createdAt, asset, dex, dedupe) {
|
|
49
49
|
const message = copy.inApp;
|
|
50
|
+
// Content-derived dedupe (DSL trailing-stop family): forwarded verbatim so the
|
|
51
|
+
// ingest collapses near-duplicate alerts for the same real-world raise. Applied
|
|
52
|
+
// on BOTH the openable and non-openable paths — dedupe is orthogonal to whether
|
|
53
|
+
// the notification can open a chat.
|
|
54
|
+
const dedupeFields = dedupe
|
|
55
|
+
? { uniqueKeys: dedupe.uniqueKeys, idempotencyKey: dedupe.idempotencyKey }
|
|
56
|
+
: {};
|
|
50
57
|
const strategyWalletAddress = address?.trim() ? address.trim() : undefined;
|
|
51
58
|
// A blank (empty or whitespace-only) address is as unusable a chat key as a
|
|
52
59
|
// missing one, so it takes the same non-openable path.
|
|
@@ -54,7 +61,7 @@ function buildOpenablePayload(copy, subtype, address, createdAt, asset, dex) {
|
|
|
54
61
|
logger.warn("[dsl-notifications] openable notification missing strategy address; delivering non-openable", {
|
|
55
62
|
subtype,
|
|
56
63
|
});
|
|
57
|
-
return { message, canOpenAgentChat: false, subtype, copy };
|
|
64
|
+
return { message, canOpenAgentChat: false, subtype, copy, ...dedupeFields };
|
|
58
65
|
}
|
|
59
66
|
return {
|
|
60
67
|
message,
|
|
@@ -62,6 +69,7 @@ function buildOpenablePayload(copy, subtype, address, createdAt, asset, dex) {
|
|
|
62
69
|
subtype,
|
|
63
70
|
copy,
|
|
64
71
|
strategyWalletAddress,
|
|
72
|
+
...dedupeFields,
|
|
65
73
|
context: {
|
|
66
74
|
notificationId: randomUUID(),
|
|
67
75
|
subtype,
|
|
@@ -73,6 +81,41 @@ function buildOpenablePayload(copy, subtype, address, createdAt, asset, dex) {
|
|
|
73
81
|
},
|
|
74
82
|
};
|
|
75
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* Content-derived dedupe key for the "Stop raised" family. Two runtime processes
|
|
86
|
+
* monitoring the same wallet (or a mid-trading rebuild) each mint their own
|
|
87
|
+
* `notificationId`, so the row id can never collapse a semantic duplicate — this
|
|
88
|
+
* key can. The `newSLPrice` component is stringified WITHOUT rounding: two
|
|
89
|
+
* genuinely different raises differ in price and must stay distinct.
|
|
90
|
+
*/
|
|
91
|
+
function stopRaiseUniqueKey(ev) {
|
|
92
|
+
// The SL-updated event carries no book, so the `dex` slot is always empty here
|
|
93
|
+
// (kept in the key shape for symmetry with the profit-lock key).
|
|
94
|
+
return `dsl-stop-raise:${ev.address}:${ev.asset}::${ev.direction ?? ""}:${ev.newSLPrice}`;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Content-derived dedupe key for the "Profit locked" family, keyed on the locked
|
|
98
|
+
* floor (price). Same rationale as {@link stopRaiseUniqueKey}; the floor is
|
|
99
|
+
* stringified without rounding so distinct locks stay distinct.
|
|
100
|
+
*/
|
|
101
|
+
function profitLockUniqueKey(ev) {
|
|
102
|
+
return `dsl-profit-lock:${ev.address}:${ev.asset}:${ev.dex ?? ""}:${ev.direction ?? ""}:${ev.newFloorPrice}`;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Is `floor` strictly more favorable than a persisted baseline (higher for LONG,
|
|
106
|
+
* lower for SHORT)? A missing baseline or an unjudgeable direction is permissive
|
|
107
|
+
* (returns true) — the in-memory ratchet remains the primary gate; this only ADDS
|
|
108
|
+
* cross-rebuild/restart suppression.
|
|
109
|
+
*/
|
|
110
|
+
function beatsPersistedFloor(floor, baseline, direction) {
|
|
111
|
+
if (baseline === undefined)
|
|
112
|
+
return true;
|
|
113
|
+
if (direction === "LONG")
|
|
114
|
+
return floor > baseline;
|
|
115
|
+
if (direction === "SHORT")
|
|
116
|
+
return floor < baseline;
|
|
117
|
+
return true;
|
|
118
|
+
}
|
|
76
119
|
/** Ensures formatter + notify never throw back into `bus.emit` (would break DSL callers). */
|
|
77
120
|
function runNotificationHandler(fn) {
|
|
78
121
|
try {
|
|
@@ -82,10 +125,18 @@ function runNotificationHandler(fn) {
|
|
|
82
125
|
logger.warn("[dsl-notifications] handler error (isolated from DSL)", { err });
|
|
83
126
|
}
|
|
84
127
|
}
|
|
85
|
-
export function createDslNotificationSubscriber(bus, notifier) {
|
|
128
|
+
export function createDslNotificationSubscriber(bus, notifier, store) {
|
|
86
129
|
function notify(input) {
|
|
87
130
|
safeNotify(notifier, input);
|
|
88
131
|
}
|
|
132
|
+
/** Fire-and-forget persisted-baseline stamp; never throws back into a handler. */
|
|
133
|
+
function stampFloor(ev, floor, direction) {
|
|
134
|
+
if (store === undefined || (direction !== "LONG" && direction !== "SHORT"))
|
|
135
|
+
return;
|
|
136
|
+
void store
|
|
137
|
+
.stampNotifiedStopFloor(ev, floor, direction)
|
|
138
|
+
.catch((err) => logger.warn("[dsl-notifications] failed to stamp lastNotifiedStopFloor", { err }));
|
|
139
|
+
}
|
|
89
140
|
// PF-2: a single DSL raise must yield EITHER "Profit locked" OR "Stop raised",
|
|
90
141
|
// never both. When a tier advance locks profit (lockedProfitPct > 0) it emits
|
|
91
142
|
// Profit locked and records intent here; the paired SL_UPDATED for the same
|
|
@@ -124,7 +175,14 @@ export function createDslNotificationSubscriber(bus, notifier) {
|
|
|
124
175
|
if ((ev.lockedProfitPct ?? 0) > 0) {
|
|
125
176
|
correlator.recordProfitLock(key, ev.timestamp);
|
|
126
177
|
const copy = formatDslTierAdvanced(ev);
|
|
127
|
-
notify(buildOpenablePayload(copy, "DSL_PROFIT_LOCK", ev.address, ev.timestamp, ev.asset, ev.dex
|
|
178
|
+
notify(buildOpenablePayload(copy, "DSL_PROFIT_LOCK", ev.address, ev.timestamp, ev.asset, ev.dex, {
|
|
179
|
+
uniqueKeys: [profitLockUniqueKey(ev)],
|
|
180
|
+
idempotencyKey: profitLockUniqueKey(ev),
|
|
181
|
+
}));
|
|
182
|
+
// Announcing this locked floor advances the persisted baseline, so the
|
|
183
|
+
// paired (correlator-suppressed) SL and any later re-anchor at/below it
|
|
184
|
+
// cannot re-fire as a fresh raise across a rebuild or restart.
|
|
185
|
+
stampFloor({ address: ev.address, asset: ev.asset }, ev.newFloorPrice, ev.direction);
|
|
128
186
|
}
|
|
129
187
|
else {
|
|
130
188
|
// Else branch: nothing locked ("+$0.00"). Suppress the Profit-locked
|
|
@@ -136,6 +194,16 @@ export function createDslNotificationSubscriber(bus, notifier) {
|
|
|
136
194
|
}
|
|
137
195
|
});
|
|
138
196
|
};
|
|
197
|
+
/** Emit the "Stop raised" notification and stamp the persisted announced floor. */
|
|
198
|
+
function sendStopRaise(ev) {
|
|
199
|
+
const copy = formatDslSlUpdated(ev);
|
|
200
|
+
// The SL-updated event carries no book, so the seed omits `dex`.
|
|
201
|
+
notify(buildOpenablePayload(copy, "DSL_STOP_RAISE", ev.address, ev.timestamp, ev.asset, undefined, {
|
|
202
|
+
uniqueKeys: [stopRaiseUniqueKey(ev)],
|
|
203
|
+
idempotencyKey: stopRaiseUniqueKey(ev),
|
|
204
|
+
}));
|
|
205
|
+
stampFloor({ address: ev.address, asset: ev.asset }, ev.newSLPrice, ev.direction);
|
|
206
|
+
}
|
|
139
207
|
const onSlUpdated = (e) => {
|
|
140
208
|
runNotificationHandler(() => {
|
|
141
209
|
const ev = e;
|
|
@@ -158,9 +226,34 @@ export function createDslNotificationSubscriber(bus, notifier) {
|
|
|
158
226
|
});
|
|
159
227
|
return;
|
|
160
228
|
}
|
|
161
|
-
|
|
162
|
-
//
|
|
163
|
-
|
|
229
|
+
// The in-memory ratchet passed. Without a persisted store, deliver now —
|
|
230
|
+
// identical to the pre-baseline behavior (fully synchronous).
|
|
231
|
+
if (store === undefined) {
|
|
232
|
+
sendStopRaise(ev);
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
// With a store, add a cross-rebuild/restart gate: the in-memory ratchet
|
|
236
|
+
// resets on every rebuild (fresh correlationId) and on restart, so a LOWER
|
|
237
|
+
// stop could otherwise re-fire. Suppress unless the new floor is strictly
|
|
238
|
+
// MORE favorable than the last floor we actually ANNOUNCED (persisted).
|
|
239
|
+
void (async () => {
|
|
240
|
+
try {
|
|
241
|
+
const baseline = await store.getLastNotifiedStopFloor({ address: ev.address, asset: ev.asset });
|
|
242
|
+
if (!beatsPersistedFloor(ev.newSLPrice, baseline, ev.direction)) {
|
|
243
|
+
logger.debug("[dsl-notifications] stop-raise suppressed: not beyond persisted announced floor", {
|
|
244
|
+
asset: ev.asset,
|
|
245
|
+
newSLPrice: ev.newSLPrice,
|
|
246
|
+
baseline,
|
|
247
|
+
direction: ev.direction,
|
|
248
|
+
});
|
|
249
|
+
return;
|
|
250
|
+
}
|
|
251
|
+
sendStopRaise(ev);
|
|
252
|
+
}
|
|
253
|
+
catch (err) {
|
|
254
|
+
logger.warn("[dsl-notifications] persisted stop-raise gate error (delivering isolated)", { err });
|
|
255
|
+
}
|
|
256
|
+
})();
|
|
164
257
|
});
|
|
165
258
|
};
|
|
166
259
|
// DSL_EVENTS.DELETED and DSL_EVENTS.HEARTBEAT are intentionally not
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dsl/notifications/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D;;;;;GAKG;AACH,SAAS,UAAU,CAAC,EAAqB;IACvC,IAAI,EAAE,CAAC,aAAa,IAAI,IAAI,IAAI,EAAE,CAAC,aAAa,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC,aAAa,CAAC;IACjF,OAAO,QAAQ,CAAC,EAAE,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,MAAM,GAAG,YAAY,CAAC,iCAAiC,CAAC,CAAC;AAM/D,MAAM,UAAU,UAAU,CACxB,QAA6B,EAC7B,KAAmC;IAEnC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,MAAM,IAAI,IAAI,IAAI,OAAQ,MAA4B,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC/E,KAAM,MAAwB,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE,CACpD,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CACnE,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,CAAC,gDAAgD,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;IAChF,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,oBAAoB,CAC3B,IAAsB,EACtB,OAAe,EACf,OAA2B,EAC3B,SAAiB,EACjB,KAAc,EACd,GAAY;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dsl/notifications/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dsl/plugin/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAEV,wBAAwB,EACxB,cAAc,EACf,MAAM,uBAAuB,CAAC;AAG/B,OAAO,KAAK,EACV,gBAAgB,EAEhB,kBAAkB,EAClB,QAAQ,EACR,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAQlC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dsl/plugin/index.ts"],"names":[],"mappings":"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"}
|
package/dist/dsl/plugin/index.js
CHANGED
|
@@ -14,6 +14,7 @@ import { logger } from "../../utils/logger/dsl.js";
|
|
|
14
14
|
import { trackingContext } from "../../telemetry/context.js";
|
|
15
15
|
import { identityTraceAttributes } from "../../telemetry/trace-identity.js";
|
|
16
16
|
import { createDslNotificationSubscriber } from "../notifications/index.js";
|
|
17
|
+
import { createDslNotifiedFloorStore } from "../notifications/floor-store.js";
|
|
17
18
|
/** Latest plugin instance for SIGINT/SIGTERM cleanup (single-runtime assumption). */
|
|
18
19
|
let registeredShutdownPlugin = null;
|
|
19
20
|
let shutdownSignalsHooked = false;
|
|
@@ -162,7 +163,10 @@ export class DslPlugin {
|
|
|
162
163
|
const handlers = createEventHandlers(config, stateManager, strategyStates, options.bus, baseDir);
|
|
163
164
|
DslPlugin.wirePositionEventHandlers(options.bus, handlers);
|
|
164
165
|
const notificationSubscriber = options.notifications != null
|
|
165
|
-
? createDslNotificationSubscriber(options.bus, options.notifications
|
|
166
|
+
? createDslNotificationSubscriber(options.bus, options.notifications,
|
|
167
|
+
// Persisted announced-floor baseline: makes a retreat impossible to
|
|
168
|
+
// re-announce across a rebuild (fresh correlationId) or a restart.
|
|
169
|
+
createDslNotifiedFloorStore(stateManager))
|
|
166
170
|
: null;
|
|
167
171
|
const placeSlOnAdopt = options.placeSlOnAdopt ?? false;
|
|
168
172
|
const plugin = new DslPlugin(config, options.bus, stateManager, senpiClient, ownSenpiClient, baseDir, handlers.deleteDslsForStrategy, handlers.isSlPlacementInProgress, notificationSubscriber, handlers.adoptPosition, handlers.resizePosition, placeSlOnAdopt, options.identity);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dsl/plugin/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dsl/plugin/index.ts"],"names":[],"mappings":"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"}
|