@senpi/runtime 1.0.95-dev.runtime-phase-2.20260420121147 → 1.0.95-dev.runtime-phase-2.20260420130250
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/cli/guide-commands.js +1 -1
- package/dist/constants/dsl/index.d.ts +12 -0
- package/dist/constants/dsl/index.d.ts.map +1 -1
- package/dist/constants/dsl/index.js +12 -0
- package/dist/constants/dsl/index.js.map +1 -1
- package/dist/dsl/engine-client/event-mapping.d.ts +16 -0
- package/dist/dsl/engine-client/event-mapping.d.ts.map +1 -1
- package/dist/dsl/engine-client/event-mapping.js +4 -0
- package/dist/dsl/engine-client/event-mapping.js.map +1 -1
- package/dist/dsl/engine-client/index.d.ts +1 -1
- package/dist/dsl/engine-client/index.d.ts.map +1 -1
- package/dist/dsl/events/build-closed-event.d.ts +15 -0
- package/dist/dsl/events/build-closed-event.d.ts.map +1 -0
- package/dist/dsl/events/build-closed-event.js +29 -0
- package/dist/dsl/events/build-closed-event.js.map +1 -0
- package/dist/dsl/events/handlers.d.ts.map +1 -1
- package/dist/dsl/events/handlers.js +3 -5
- package/dist/dsl/events/handlers.js.map +1 -1
- package/dist/dsl/index.js +1 -1
- package/dist/dsl/index.js.map +1 -1
- package/dist/dsl/monitor/process-one-position.d.ts.map +1 -1
- package/dist/dsl/monitor/process-one-position.js +107 -38
- package/dist/dsl/monitor/process-one-position.js.map +1 -1
- package/dist/dsl/notifications/close-resolver.d.ts +85 -0
- package/dist/dsl/notifications/close-resolver.d.ts.map +1 -0
- package/dist/dsl/notifications/close-resolver.js +302 -0
- package/dist/dsl/notifications/close-resolver.js.map +1 -0
- package/dist/dsl/notifications/format-utils.d.ts +24 -0
- package/dist/dsl/notifications/format-utils.d.ts.map +1 -0
- package/dist/dsl/notifications/format-utils.js +102 -0
- package/dist/dsl/notifications/format-utils.js.map +1 -0
- package/dist/dsl/notifications/formatter.d.ts +23 -4
- package/dist/dsl/notifications/formatter.d.ts.map +1 -1
- package/dist/dsl/notifications/formatter.js +109 -34
- package/dist/dsl/notifications/formatter.js.map +1 -1
- package/dist/dsl/notifications/index.d.ts +7 -0
- package/dist/dsl/notifications/index.d.ts.map +1 -1
- package/dist/dsl/notifications/index.js +22 -10
- package/dist/dsl/notifications/index.js.map +1 -1
- package/dist/dsl/notifications/types.d.ts +27 -0
- package/dist/dsl/notifications/types.d.ts.map +1 -0
- package/dist/dsl/notifications/types.js +5 -0
- package/dist/dsl/notifications/types.js.map +1 -0
- package/dist/dsl/plugin/index.d.ts.map +1 -1
- package/dist/dsl/plugin/index.js +26 -0
- package/dist/dsl/plugin/index.js.map +1 -1
- package/dist/scripts/run-dsl-standalone-live.js +1 -1
- package/dist/scripts/run-dsl-standalone-live.js.map +1 -1
- package/dist/scripts/run-dsl-standalone-mock.js +1 -1
- package/dist/scripts/run-dsl-standalone-mock.js.map +1 -1
- package/dist/senpi/client.d.ts.map +1 -1
- package/dist/senpi/client.js +2 -0
- package/dist/senpi/client.js.map +1 -1
- package/dist/types/dsl/index.d.ts +47 -0
- package/dist/types/dsl/index.d.ts.map +1 -1
- package/dist/types/strategy.d.ts +2 -0
- package/dist/types/strategy.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -2,13 +2,14 @@
|
|
|
2
2
|
* Per-position work for one monitor tick: SL fill check, pending close, dslTick, exchange sync.
|
|
3
3
|
*/
|
|
4
4
|
import { dslTick, exchangeStopLossTriggerPx } from "../engine/index.js";
|
|
5
|
-
import { CLOSE_REASON, MAX_CONSECUTIVE_CLOSE_FAILURES, DSL_EXTERNAL_RETRIES, DSL_EXTERNAL_RETRY_DELAY_MS, DSL_EVENTS, EVENTS, DSL_PRICE_FETCH_FAILURE_WARN_THRESHOLD, } from "../../constants/dsl/index.js";
|
|
5
|
+
import { CLOSE_REASON, MAX_CONSECUTIVE_CLOSE_FAILURES, DSL_EXTERNAL_RETRIES, DSL_EXTERNAL_RETRY_DELAY_MS, DSL_EVENTS, EVENTS, DSL_PRICE_FETCH_FAILURE_WARN_THRESHOLD, DSL_HEARTBEAT_FIRST_HOUR_MS, DSL_HEARTBEAT_INTERVAL_MS, DSL_HEARTBEAT_TIER_SUPPRESS_MS, } from "../../constants/dsl/index.js";
|
|
6
6
|
import { logger } from "../../utils/logger/dsl.js";
|
|
7
7
|
import { withRetry } from "../../utils/retry.js";
|
|
8
8
|
import { effectiveDex } from "./effective-dex.js";
|
|
9
9
|
import { shouldSyncExchangeSl } from "./exchange-sync.js";
|
|
10
10
|
import { mapTiersToEngineConfig, mapEnginePositionToStateFields } from "../engine-client/config-mapping.js";
|
|
11
11
|
import { mapBackendEventToBusEvent } from "../engine-client/event-mapping.js";
|
|
12
|
+
import { buildDslClosedEventFromState } from "../events/build-closed-event.js";
|
|
12
13
|
async function isDslKeyStillActive(stateManager, key) {
|
|
13
14
|
const s = await stateManager.getOrLoad(key);
|
|
14
15
|
return Boolean(s?.active);
|
|
@@ -69,14 +70,11 @@ export async function processOnePosition(ctx, key, state, price) {
|
|
|
69
70
|
closeReason: CLOSE_REASON.EXCHANGE_SL_HIT,
|
|
70
71
|
timestamp: ts,
|
|
71
72
|
});
|
|
72
|
-
bus.emit(DSL_EVENTS.CLOSED, {
|
|
73
|
-
address: state.address,
|
|
74
|
-
asset: state.asset,
|
|
75
|
-
dex: effectiveDex(state),
|
|
73
|
+
bus.emit(DSL_EVENTS.CLOSED, buildDslClosedEventFromState(closedState, {
|
|
76
74
|
reason: CLOSE_REASON.EXCHANGE_SL_HIT,
|
|
77
75
|
closeReason: CLOSE_REASON.EXCHANGE_SL_HIT,
|
|
78
76
|
timestamp: ts,
|
|
79
|
-
});
|
|
77
|
+
}));
|
|
80
78
|
return;
|
|
81
79
|
}
|
|
82
80
|
}
|
|
@@ -126,14 +124,11 @@ export async function processOnePosition(ctx, key, state, price) {
|
|
|
126
124
|
closeReason: closeReasonToUse,
|
|
127
125
|
timestamp: ts,
|
|
128
126
|
});
|
|
129
|
-
bus.emit(DSL_EVENTS.CLOSED, {
|
|
130
|
-
address: state.address,
|
|
131
|
-
asset: state.asset,
|
|
132
|
-
dex: effectiveDex(state),
|
|
127
|
+
bus.emit(DSL_EVENTS.CLOSED, buildDslClosedEventFromState(closedState, {
|
|
133
128
|
reason: closeReasonToUse,
|
|
134
129
|
closeReason: closeReasonToUse,
|
|
135
130
|
timestamp: ts,
|
|
136
|
-
});
|
|
131
|
+
}));
|
|
137
132
|
}
|
|
138
133
|
catch (e) {
|
|
139
134
|
logger.warn("closePosition retry failed", { asset: state.asset, err: e });
|
|
@@ -155,14 +150,11 @@ export async function processOnePosition(ctx, key, state, price) {
|
|
|
155
150
|
closeReason: CLOSE_REASON.CLOSE_POSITION_FAILED,
|
|
156
151
|
timestamp: isoNow(),
|
|
157
152
|
});
|
|
158
|
-
bus.emit(DSL_EVENTS.CLOSED, {
|
|
159
|
-
address: state.address,
|
|
160
|
-
asset: state.asset,
|
|
161
|
-
dex: effectiveDex(state),
|
|
153
|
+
bus.emit(DSL_EVENTS.CLOSED, buildDslClosedEventFromState(failedCloseState, {
|
|
162
154
|
reason: "error",
|
|
163
155
|
closeReason: CLOSE_REASON.CLOSE_POSITION_FAILED,
|
|
164
156
|
timestamp: isoNow(),
|
|
165
|
-
});
|
|
157
|
+
}));
|
|
166
158
|
}
|
|
167
159
|
else {
|
|
168
160
|
bus.emit(DSL_EVENTS.CLOSE_PENDING, {
|
|
@@ -300,14 +292,11 @@ export async function processOnePosition(ctx, key, state, price) {
|
|
|
300
292
|
closeReason: CLOSE_REASON.CLOSE_POSITION_FAILED,
|
|
301
293
|
timestamp: isoNow(),
|
|
302
294
|
});
|
|
303
|
-
bus.emit(DSL_EVENTS.CLOSED, {
|
|
304
|
-
address: state.address,
|
|
305
|
-
asset: state.asset,
|
|
306
|
-
dex: effectiveDex(state),
|
|
295
|
+
bus.emit(DSL_EVENTS.CLOSED, buildDslClosedEventFromState(failedCloseState, {
|
|
307
296
|
reason: "error",
|
|
308
297
|
closeReason: CLOSE_REASON.CLOSE_POSITION_FAILED,
|
|
309
298
|
timestamp: isoNow(),
|
|
310
|
-
});
|
|
299
|
+
}));
|
|
311
300
|
}
|
|
312
301
|
else {
|
|
313
302
|
bus.emit(DSL_EVENTS.CLOSE_PENDING, {
|
|
@@ -338,14 +327,11 @@ export async function processOnePosition(ctx, key, state, price) {
|
|
|
338
327
|
closeReason: closeReasonToUse,
|
|
339
328
|
timestamp: ts,
|
|
340
329
|
});
|
|
341
|
-
bus.emit(DSL_EVENTS.CLOSED, {
|
|
342
|
-
address: state.address,
|
|
343
|
-
asset: state.asset,
|
|
344
|
-
dex: effectiveDex(state),
|
|
330
|
+
bus.emit(DSL_EVENTS.CLOSED, buildDslClosedEventFromState(closedState, {
|
|
345
331
|
reason: closeReasonToUse,
|
|
346
332
|
closeReason: closeReasonToUse,
|
|
347
333
|
timestamp: ts,
|
|
348
|
-
});
|
|
334
|
+
}));
|
|
349
335
|
return;
|
|
350
336
|
}
|
|
351
337
|
const dslEffectiveFloor = result.newFloorPrice ?? next.floorPrice;
|
|
@@ -354,15 +340,29 @@ export async function processOnePosition(ctx, key, state, price) {
|
|
|
354
340
|
if (result.tierChanged && result.newTierIndex != null) {
|
|
355
341
|
const tier = next.tiers[result.newTierIndex];
|
|
356
342
|
if (tier) {
|
|
343
|
+
const margin = next.leverage > 0 ? (next.size * next.entryPrice) / next.leverage : 0;
|
|
357
344
|
bus.emit(DSL_EVENTS.TIER_ADVANCED, {
|
|
358
345
|
address: state.address,
|
|
359
346
|
asset: state.asset,
|
|
347
|
+
dex: effectiveDex(state),
|
|
360
348
|
tier: result.newTierIndex,
|
|
361
349
|
lockHwPct: tier.lockHwPct,
|
|
362
350
|
triggerPct: tier.triggerPct,
|
|
363
351
|
newFloorPrice: dslEffectiveFloor,
|
|
364
352
|
timestamp: ts,
|
|
353
|
+
direction: next.direction,
|
|
354
|
+
entryPrice: next.entryPrice,
|
|
355
|
+
leverage: next.leverage,
|
|
356
|
+
margin,
|
|
357
|
+
currentROE: next.currentROE,
|
|
358
|
+
highWaterRoe: next.highWaterRoe,
|
|
359
|
+
lastPrice: next.lastPrice,
|
|
360
|
+
lockedProfitPct: next.lockedProfitPct,
|
|
365
361
|
});
|
|
362
|
+
const afterTier = (await stateManager.getOrLoad(key)) ?? next;
|
|
363
|
+
if (afterTier?.active) {
|
|
364
|
+
await stateManager.set(key, { ...afterTier, lastTierNotificationAt: ts });
|
|
365
|
+
}
|
|
366
366
|
}
|
|
367
367
|
else {
|
|
368
368
|
logger.error("[dsl] TIER_ADVANCED skipped: tier missing at index (tiers must come from YAML/config)", {
|
|
@@ -456,9 +456,14 @@ export async function processOnePosition(ctx, key, state, price) {
|
|
|
456
456
|
label: "editPosition (SL sync)",
|
|
457
457
|
onRetry: (attempt, remaining, err) => logger.warn("[dsl] editPosition retry", { asset: state.asset, attempt, remaining, err }),
|
|
458
458
|
});
|
|
459
|
+
const freshAfterSl = await stateManager.getOrLoad(key);
|
|
460
|
+
if (!freshAfterSl?.active) {
|
|
461
|
+
logger.info("[dsl] skip SL sync write: state no longer active (concurrent close)", { tickId, key });
|
|
462
|
+
return;
|
|
463
|
+
}
|
|
459
464
|
const synced = {
|
|
460
|
-
...
|
|
461
|
-
slOrderId: res.slOrderId ??
|
|
465
|
+
...freshAfterSl,
|
|
466
|
+
slOrderId: res.slOrderId ?? freshAfterSl.slOrderId,
|
|
462
467
|
lastSyncedFloorPrice: exchangeTriggerPx,
|
|
463
468
|
slOrderIdUpdatedAt: ts,
|
|
464
469
|
lastSlSyncError: null,
|
|
@@ -484,12 +489,17 @@ export async function processOnePosition(ctx, key, state, price) {
|
|
|
484
489
|
});
|
|
485
490
|
}
|
|
486
491
|
catch (e) {
|
|
492
|
+
const freshAfterSl = await stateManager.getOrLoad(key);
|
|
493
|
+
if (!freshAfterSl?.active) {
|
|
494
|
+
logger.info("[dsl] skip SL sync-failure write: state no longer active (concurrent close)", { tickId, key });
|
|
495
|
+
return;
|
|
496
|
+
}
|
|
487
497
|
const syncFailed = {
|
|
488
|
-
...
|
|
498
|
+
...freshAfterSl,
|
|
489
499
|
lastSlSyncError: String(e),
|
|
490
500
|
lastError: String(e),
|
|
491
501
|
lastErrorAt: ts,
|
|
492
|
-
slSyncFailureCount: (
|
|
502
|
+
slSyncFailureCount: (freshAfterSl.slSyncFailureCount ?? 0) + 1,
|
|
493
503
|
};
|
|
494
504
|
await stateManager.set(key, syncFailed);
|
|
495
505
|
logger.warn("[dsl] editPosition (SL update) failed", {
|
|
@@ -502,6 +512,44 @@ export async function processOnePosition(ctx, key, state, price) {
|
|
|
502
512
|
});
|
|
503
513
|
}
|
|
504
514
|
}
|
|
515
|
+
const hbState = await stateManager.getOrLoad(key);
|
|
516
|
+
if (hbState?.active) {
|
|
517
|
+
const nowMs = Date.now();
|
|
518
|
+
const ageMs = nowMs - Date.parse(hbState.createdAt);
|
|
519
|
+
if (ageMs >= DSL_HEARTBEAT_FIRST_HOUR_MS) {
|
|
520
|
+
const lastHb = hbState.lastHeartbeatAt ? Date.parse(hbState.lastHeartbeatAt) : null;
|
|
521
|
+
const due = lastHb == null
|
|
522
|
+
? ageMs >= DSL_HEARTBEAT_INTERVAL_MS
|
|
523
|
+
: nowMs - lastHb >= DSL_HEARTBEAT_INTERVAL_MS;
|
|
524
|
+
if (due) {
|
|
525
|
+
const lastTierMs = hbState.lastTierNotificationAt
|
|
526
|
+
? Date.parse(hbState.lastTierNotificationAt)
|
|
527
|
+
: 0;
|
|
528
|
+
const suppressedByTier = lastTierMs > 0 && nowMs - lastTierMs < DSL_HEARTBEAT_TIER_SUPPRESS_MS;
|
|
529
|
+
if (!suppressedByTier) {
|
|
530
|
+
bus.emit(DSL_EVENTS.HEARTBEAT, {
|
|
531
|
+
address: hbState.address,
|
|
532
|
+
asset: hbState.asset,
|
|
533
|
+
dex: effectiveDex(hbState),
|
|
534
|
+
direction: hbState.direction,
|
|
535
|
+
entryPrice: hbState.entryPrice,
|
|
536
|
+
lastPrice: hbState.lastPrice,
|
|
537
|
+
floorPrice: hbState.floorPrice,
|
|
538
|
+
currentROE: hbState.currentROE,
|
|
539
|
+
highWaterRoe: hbState.highWaterRoe,
|
|
540
|
+
lockedProfitPct: hbState.lockedProfitPct,
|
|
541
|
+
currentTierIndex: hbState.currentTierIndex,
|
|
542
|
+
elapsedMinutes: hbState.elapsedMinutes,
|
|
543
|
+
margin: hbState.leverage > 0
|
|
544
|
+
? (hbState.size * hbState.entryPrice) / hbState.leverage
|
|
545
|
+
: 0,
|
|
546
|
+
timestamp: ts,
|
|
547
|
+
});
|
|
548
|
+
await stateManager.set(key, { ...hbState, lastHeartbeatAt: ts });
|
|
549
|
+
}
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
}
|
|
505
553
|
}
|
|
506
554
|
// ---------------------------------------------------------------------------
|
|
507
555
|
// Handoff helpers
|
|
@@ -667,14 +715,11 @@ async function handleHandoffOk(ctx, key, next, original, strategy) {
|
|
|
667
715
|
closeReason,
|
|
668
716
|
timestamp: ts,
|
|
669
717
|
});
|
|
670
|
-
bus.emit(DSL_EVENTS.CLOSED, {
|
|
671
|
-
address: original.address,
|
|
672
|
-
asset: original.asset,
|
|
673
|
-
dex: effectiveDex(original),
|
|
718
|
+
bus.emit(DSL_EVENTS.CLOSED, buildDslClosedEventFromState(closedState, {
|
|
674
719
|
reason: closeReason,
|
|
675
720
|
closeReason,
|
|
676
721
|
timestamp: ts,
|
|
677
|
-
});
|
|
722
|
+
}));
|
|
678
723
|
return;
|
|
679
724
|
}
|
|
680
725
|
const merged = mapEnginePositionToStateFields(backendPos);
|
|
@@ -702,11 +747,22 @@ async function handleHandoffOk(ctx, key, next, original, strategy) {
|
|
|
702
747
|
? events.filter((e) => e.createdAt > cursor)
|
|
703
748
|
: events;
|
|
704
749
|
if (freshEvents.length > 0) {
|
|
750
|
+
const marginForTier = updated.leverage > 0 ? (updated.size * updated.entryPrice) / updated.leverage : 0;
|
|
705
751
|
const eventContext = {
|
|
706
752
|
address: original.address,
|
|
707
753
|
asset: original.asset,
|
|
708
754
|
dex: effectiveDex(original),
|
|
709
755
|
tiers: original.tiers,
|
|
756
|
+
tierEnrichment: {
|
|
757
|
+
direction: updated.direction,
|
|
758
|
+
entryPrice: updated.entryPrice,
|
|
759
|
+
leverage: updated.leverage,
|
|
760
|
+
margin: marginForTier,
|
|
761
|
+
currentROE: updated.currentROE,
|
|
762
|
+
highWaterRoe: updated.highWaterRoe,
|
|
763
|
+
lastPrice: updated.lastPrice,
|
|
764
|
+
lockedProfitPct: updated.lockedProfitPct,
|
|
765
|
+
},
|
|
710
766
|
};
|
|
711
767
|
let emitted = 0;
|
|
712
768
|
let backendClosed = false;
|
|
@@ -730,11 +786,24 @@ async function handleHandoffOk(ctx, key, next, original, strategy) {
|
|
|
730
786
|
continue;
|
|
731
787
|
}
|
|
732
788
|
}
|
|
733
|
-
|
|
789
|
+
// Backend CLOSED carries only status strings; merge local DslState so dsl.closed matches
|
|
790
|
+
// monitor-originated closes (createdAt = position open, direction, margin, etc.) for
|
|
791
|
+
// CloseNotificationResolver trade-history matching and enriched Telegram lines.
|
|
792
|
+
const minClosed = mapped.eventName === DSL_EVENTS.CLOSED
|
|
793
|
+
? mapped.payload
|
|
794
|
+
: null;
|
|
795
|
+
const emitPayload = minClosed != null
|
|
796
|
+
? buildDslClosedEventFromState(updated, {
|
|
797
|
+
reason: minClosed.reason,
|
|
798
|
+
closeReason: minClosed.closeReason,
|
|
799
|
+
timestamp: minClosed.timestamp,
|
|
800
|
+
})
|
|
801
|
+
: mapped.payload;
|
|
802
|
+
bus.emit(mapped.eventName, emitPayload);
|
|
734
803
|
emitted++;
|
|
735
|
-
if (
|
|
804
|
+
if (minClosed != null) {
|
|
736
805
|
backendClosed = true;
|
|
737
|
-
backendCloseReason =
|
|
806
|
+
backendCloseReason = minClosed.closeReason;
|
|
738
807
|
}
|
|
739
808
|
}
|
|
740
809
|
updated.lastBackendDslTick = freshEvents[freshEvents.length - 1].createdAt;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-one-position.js","sourceRoot":"","sources":["../../../src/dsl/monitor/process-one-position.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"process-one-position.js","sourceRoot":"","sources":["../../../src/dsl/monitor/process-one-position.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deferred close notifications: match `discovery_get_trader_history` rows to closed DSL positions
|
|
3
|
+
* and send enriched PnL / exit / fees, with a timeout fallback when history lags.
|
|
4
|
+
*/
|
|
5
|
+
import type { DslClosedEvent } from "../../types/dsl/index.js";
|
|
6
|
+
import type { PastTrade } from "../../types/strategy.js";
|
|
7
|
+
import type { StrategyState } from "../../types/strategy.js";
|
|
8
|
+
import type { PendingCloseNotification } from "./types.js";
|
|
9
|
+
/** Match tolerance (ms) between DSL timestamps and trade history `openTime` / `closedTime`. */
|
|
10
|
+
export declare const MATCH_OPEN_TIME_MS = 120000;
|
|
11
|
+
export declare const MATCH_CLOSE_TIME_MS = 120000;
|
|
12
|
+
export interface CloseNotificationResolverOptions {
|
|
13
|
+
/** Directory for `pending-close-notifications/*.json` (caller passes `{stateDir}/pending-close-notifications`). */
|
|
14
|
+
pendingDir: string;
|
|
15
|
+
getStrategy: (address: string) => StrategyState | undefined;
|
|
16
|
+
/** Already includes `[recipe] ` prefix when strategy name is set. */
|
|
17
|
+
notify: (message: string) => void;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Finds the trade row that corresponds to a closed DSL position (coin/dex/direction + open/close times).
|
|
21
|
+
*
|
|
22
|
+
* Edge case: two closes for the same coin/direction within {@link MATCH_OPEN_TIME_MS} / {@link MATCH_CLOSE_TIME_MS}
|
|
23
|
+
* could both score the same row; follow-up could track claimed trade IDs per resolver pass if needed.
|
|
24
|
+
*/
|
|
25
|
+
export declare function matchTrade(pending: PendingCloseNotification, trades: PastTrade[]): PastTrade | undefined;
|
|
26
|
+
/** Builds a pending record from a bus payload (also used for immediate fallback when no resolver). */
|
|
27
|
+
export declare function buildPendingCloseFromEvent(e: DslClosedEvent, id: string): PendingCloseNotification;
|
|
28
|
+
/**
|
|
29
|
+
* Polls trade history and sends Telegram lines when a pending close is enriched or times out.
|
|
30
|
+
*/
|
|
31
|
+
export declare class CloseNotificationResolver {
|
|
32
|
+
private readonly pendingDir;
|
|
33
|
+
private readonly getStrategy;
|
|
34
|
+
private readonly notify;
|
|
35
|
+
private readonly pending;
|
|
36
|
+
private timer;
|
|
37
|
+
private pollMs;
|
|
38
|
+
/** Prevents overlapping `tick()` runs when a poll takes longer than `pollMs` (await yields). */
|
|
39
|
+
private tickInFlight;
|
|
40
|
+
constructor(opts: CloseNotificationResolverOptions);
|
|
41
|
+
/**
|
|
42
|
+
* Loads pending JSON from disk and starts the polling loop.
|
|
43
|
+
* Awaits the first {@link tick} so callers (tests, plugin init) do not observe stale in-memory state.
|
|
44
|
+
*/
|
|
45
|
+
start(pollIntervalMs?: number): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Runs one poll pass; swallows errors so `setInterval` callbacks never surface as unhandled
|
|
48
|
+
* rejections. The initial call from {@link start} is awaited so the first `tick` completes
|
|
49
|
+
* before `start` resolves. Skips if the previous tick is still in progress so slow MCP calls
|
|
50
|
+
* cannot overlap and double-notify.
|
|
51
|
+
*/
|
|
52
|
+
private runTickSafe;
|
|
53
|
+
stop(): void;
|
|
54
|
+
/**
|
|
55
|
+
* Queue a close for enrichment (writes disk, in-memory map).
|
|
56
|
+
*
|
|
57
|
+
* On disk failure after the in-memory enqueue, the row stays in `pending` so polling can still
|
|
58
|
+
* resolve or time out; failures are logged and never propagate (subscriber uses fire-and-forget).
|
|
59
|
+
*/
|
|
60
|
+
enqueue(event: DslClosedEvent): Promise<void>;
|
|
61
|
+
private hydrateFromDisk;
|
|
62
|
+
private persist;
|
|
63
|
+
private removeFile;
|
|
64
|
+
private tick;
|
|
65
|
+
/**
|
|
66
|
+
* Increments retry count and sends the no-PnL fallback once the enqueue age exceeds the timeout.
|
|
67
|
+
* Used after unexpected errors so a pending row cannot wedge the resolver forever.
|
|
68
|
+
*/
|
|
69
|
+
private bumpRetryAndMaybeFallback;
|
|
70
|
+
/**
|
|
71
|
+
* Paginates `fetchPastTrades` (sorted by closedTime DESC) until a match is found or
|
|
72
|
+
* trades fall before the position's open time. Returns the matched trade, `undefined`
|
|
73
|
+
* when no match was found across all pages, or `"error"` on fetch failure.
|
|
74
|
+
*
|
|
75
|
+
* NOTE: offset-based pagination with descending closedTime can skip or duplicate a row
|
|
76
|
+
* when a new trade lands between page fetches (row shifts down by one). Cursor-style
|
|
77
|
+
* pagination (closedTime < lastSeen) would avoid this but the upstream API does not
|
|
78
|
+
* support it. At typical trade cadence and the ±120s match tolerance this is unlikely
|
|
79
|
+
* to cause a missed notification.
|
|
80
|
+
*/
|
|
81
|
+
private fetchAndMatch;
|
|
82
|
+
private resolveOne;
|
|
83
|
+
private finish;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=close-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"close-resolver.d.ts","sourceRoot":"","sources":["../../../src/dsl/notifications/close-resolver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAO7D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAK3D,+FAA+F;AAC/F,eAAO,MAAM,kBAAkB,SAAU,CAAC;AAC1C,eAAO,MAAM,mBAAmB,SAAU,CAAC;AAO3C,MAAM,WAAW,gCAAgC;IAC/C,mHAAmH;IACnH,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,aAAa,GAAG,SAAS,CAAC;IAC5D,qEAAqE;IACrE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,wBAAwB,EACjC,MAAM,EAAE,SAAS,EAAE,GAClB,SAAS,GAAG,SAAS,CAuBvB;AAED,sGAAsG;AACtG,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,GAAG,wBAAwB,CA2BlG;AAED;;GAEG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiD;IAC7E,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+C;IACvE,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,MAAM,CAAiC;IAC/C,gGAAgG;IAChG,OAAO,CAAC,YAAY,CAAS;gBAEjB,IAAI,EAAE,gCAAgC;IAMlD;;;OAGG;IACG,KAAK,CAAC,cAAc,GAAE,MAA8B,GAAG,OAAO,CAAC,IAAI,CAAC;IAW1E;;;;;OAKG;YACW,WAAW;IAYzB,IAAI,IAAI,IAAI;IAOZ;;;;;OAKG;IACG,OAAO,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;YAerC,eAAe;YAuBf,OAAO;YAKP,UAAU;YAIV,IAAI;IAalB;;;OAGG;YACW,yBAAyB;IASvC;;;;;;;;;;OAUG;YACW,aAAa;YAsCb,UAAU;YAwCV,MAAM;CAKrB"}
|