@senpi/runtime 3.0.0-dev.runtime-phase-2.20260623210537 → 3.0.1-dev.openclaw-upgrade-mai.20260625140818

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.
Files changed (215) hide show
  1. package/README.md +10 -9
  2. package/dist/actions/action-runtime-module.d.ts.map +1 -1
  3. package/dist/actions/action-runtime-module.js +1 -1
  4. package/dist/actions/action-runtime-module.js.map +1 -1
  5. package/dist/actions/decision-engine.d.ts.map +1 -1
  6. package/dist/actions/decision-engine.js +3 -0
  7. package/dist/actions/decision-engine.js.map +1 -1
  8. package/dist/actions/open-position/open-position.action.d.ts.map +1 -1
  9. package/dist/actions/open-position/open-position.action.js +54 -14
  10. package/dist/actions/open-position/open-position.action.js.map +1 -1
  11. package/dist/actions/types.d.ts +10 -2
  12. package/dist/actions/types.d.ts.map +1 -1
  13. package/dist/actions/types.js +8 -0
  14. package/dist/actions/types.js.map +1 -1
  15. package/dist/cli/guide-commands.d.ts.map +1 -1
  16. package/dist/cli/guide-commands.js +80 -74
  17. package/dist/cli/guide-commands.js.map +1 -1
  18. package/dist/cli/senpi-commands.d.ts.map +1 -1
  19. package/dist/cli/senpi-commands.js +0 -108
  20. package/dist/cli/senpi-commands.js.map +1 -1
  21. package/dist/constants/dsl/index.d.ts +2 -0
  22. package/dist/constants/dsl/index.d.ts.map +1 -1
  23. package/dist/constants/dsl/index.js +2 -0
  24. package/dist/constants/dsl/index.js.map +1 -1
  25. package/dist/dsl/config/parse-tiers.d.ts.map +1 -1
  26. package/dist/dsl/config/parse-tiers.js +6 -2
  27. package/dist/dsl/config/parse-tiers.js.map +1 -1
  28. package/dist/dsl/engine-client/config-mapping.d.ts +7 -0
  29. package/dist/dsl/engine-client/config-mapping.d.ts.map +1 -1
  30. package/dist/dsl/engine-client/config-mapping.js +16 -2
  31. package/dist/dsl/engine-client/config-mapping.js.map +1 -1
  32. package/dist/dsl/events/handlers.d.ts +18 -2
  33. package/dist/dsl/events/handlers.d.ts.map +1 -1
  34. package/dist/dsl/events/handlers.js +302 -213
  35. package/dist/dsl/events/handlers.js.map +1 -1
  36. package/dist/dsl/monitor/create-monitor.d.ts +15 -0
  37. package/dist/dsl/monitor/create-monitor.d.ts.map +1 -1
  38. package/dist/dsl/monitor/create-monitor.js +46 -9
  39. package/dist/dsl/monitor/create-monitor.js.map +1 -1
  40. package/dist/dsl/monitor/process-one-position.d.ts.map +1 -1
  41. package/dist/dsl/monitor/process-one-position.js +138 -77
  42. package/dist/dsl/monitor/process-one-position.js.map +1 -1
  43. package/dist/dsl/plugin/index.d.ts +16 -1
  44. package/dist/dsl/plugin/index.d.ts.map +1 -1
  45. package/dist/dsl/plugin/index.js +35 -4
  46. package/dist/dsl/plugin/index.js.map +1 -1
  47. package/dist/dsl/plugin/options.d.ts +18 -0
  48. package/dist/dsl/plugin/options.d.ts.map +1 -1
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +4 -0
  51. package/dist/index.js.map +1 -1
  52. package/dist/runtime/create-scanner-module.d.ts +4 -3
  53. package/dist/runtime/create-scanner-module.d.ts.map +1 -1
  54. package/dist/runtime/create-scanner-module.js +14 -5
  55. package/dist/runtime/create-scanner-module.js.map +1 -1
  56. package/dist/runtime/create-scanner-providers-for-run.d.ts.map +1 -1
  57. package/dist/runtime/create-scanner-providers-for-run.js +12 -1
  58. package/dist/runtime/create-scanner-providers-for-run.js.map +1 -1
  59. package/dist/runtime/load-runtime-config.js +1 -1
  60. package/dist/runtime/load-runtime-config.js.map +1 -1
  61. package/dist/runtime/map-strategies-registration.js +7 -8
  62. package/dist/runtime/map-strategies-registration.js.map +1 -1
  63. package/dist/runtime/map-strategies.d.ts.map +1 -1
  64. package/dist/runtime/map-strategies.js +12 -3
  65. package/dist/runtime/map-strategies.js.map +1 -1
  66. package/dist/runtime/reconcile-decide.d.ts +73 -0
  67. package/dist/runtime/reconcile-decide.d.ts.map +1 -0
  68. package/dist/runtime/reconcile-decide.js +186 -0
  69. package/dist/runtime/reconcile-decide.js.map +1 -0
  70. package/dist/runtime/reconcile-run.d.ts +62 -0
  71. package/dist/runtime/reconcile-run.d.ts.map +1 -0
  72. package/dist/runtime/reconcile-run.js +173 -0
  73. package/dist/runtime/reconcile-run.js.map +1 -0
  74. package/dist/runtime/reconcile-state.d.ts +44 -0
  75. package/dist/runtime/reconcile-state.d.ts.map +1 -1
  76. package/dist/runtime/reconcile-state.js +80 -44
  77. package/dist/runtime/reconcile-state.js.map +1 -1
  78. package/dist/runtime/risk-guard.d.ts.map +1 -1
  79. package/dist/runtime/risk-guard.js +17 -12
  80. package/dist/runtime/risk-guard.js.map +1 -1
  81. package/dist/runtime/runtime-schema.d.ts +2912 -1052
  82. package/dist/runtime/runtime-schema.d.ts.map +1 -1
  83. package/dist/runtime/runtime-schema.js +136 -42
  84. package/dist/runtime/runtime-schema.js.map +1 -1
  85. package/dist/runtime/runtime.d.ts +26 -0
  86. package/dist/runtime/runtime.d.ts.map +1 -1
  87. package/dist/runtime/runtime.js +254 -8
  88. package/dist/runtime/runtime.js.map +1 -1
  89. package/dist/runtime/scanner-registry.d.ts +1 -1
  90. package/dist/runtime/scanner-registry.d.ts.map +1 -1
  91. package/dist/runtime/scanner-registry.js +3 -12
  92. package/dist/runtime/scanner-registry.js.map +1 -1
  93. package/dist/runtime/supervisor/long-running-supervisor.d.ts.map +1 -1
  94. package/dist/runtime/supervisor/long-running-supervisor.js +1 -1
  95. package/dist/runtime/supervisor/long-running-supervisor.js.map +1 -1
  96. package/dist/runtime/supervisor/orphan-sweep.js +1 -1
  97. package/dist/runtime/supervisor/orphan-sweep.js.map +1 -1
  98. package/dist/runtime/supervisor/supervisor-utils.d.ts +1 -1
  99. package/dist/runtime/supervisor/supervisor-utils.d.ts.map +1 -1
  100. package/dist/runtime/supervisor/supervisor-utils.js +1 -1
  101. package/dist/runtime/supervisor/supervisor-utils.js.map +1 -1
  102. package/dist/runtime-api/intake/acceptance-record.d.ts +10 -0
  103. package/dist/runtime-api/intake/acceptance-record.d.ts.map +1 -1
  104. package/dist/runtime-api/intake/acceptance-record.js +28 -0
  105. package/dist/runtime-api/intake/acceptance-record.js.map +1 -1
  106. package/dist/runtime-api/intake/intake-mount.d.ts.map +1 -1
  107. package/dist/runtime-api/intake/intake-mount.js +28 -36
  108. package/dist/runtime-api/intake/intake-mount.js.map +1 -1
  109. package/dist/runtime-api/intake/process-signal-post.d.ts +20 -1
  110. package/dist/runtime-api/intake/process-signal-post.d.ts.map +1 -1
  111. package/dist/runtime-api/intake/process-signal-post.js +57 -6
  112. package/dist/runtime-api/intake/process-signal-post.js.map +1 -1
  113. package/dist/runtime-api/intake/scanner-launcher.d.ts +18 -4
  114. package/dist/runtime-api/intake/scanner-launcher.d.ts.map +1 -1
  115. package/dist/runtime-api/intake/scanner-launcher.js +24 -3
  116. package/dist/runtime-api/intake/scanner-launcher.js.map +1 -1
  117. package/dist/runtime-api/intake/types.d.ts +16 -0
  118. package/dist/runtime-api/intake/types.d.ts.map +1 -1
  119. package/dist/runtime-api/routes/signals.schema.d.ts +4 -0
  120. package/dist/runtime-api/routes/signals.schema.d.ts.map +1 -1
  121. package/dist/runtime-api/routes/signals.schema.js +12 -0
  122. package/dist/runtime-api/routes/signals.schema.js.map +1 -1
  123. package/dist/scanners/external/scaffold/__main__.py +65 -24
  124. package/dist/scanners/external/scaffold/ctx.py +78 -0
  125. package/dist/scanners/external/scaffold/delivery.py +56 -22
  126. package/dist/scanners/external/scaffold/entrypoint_loader.py +42 -48
  127. package/dist/scanners/external/scaffold/journal.py +13 -2
  128. package/dist/scanners/external/scaffold/requirements.txt +11 -0
  129. package/dist/scanners/external/scaffold/scaffold.py +159 -128
  130. package/dist/scanners/external/scaffold/senpi_mcp.py +250 -0
  131. package/dist/scanners/external/scaffold/signal_envelope.py +177 -34
  132. package/dist/scanners/external/scaffold/state_manager.py +175 -0
  133. package/dist/scanners/external-scanner-receiver.d.ts +6 -0
  134. package/dist/scanners/external-scanner-receiver.d.ts.map +1 -1
  135. package/dist/scanners/external-scanner-receiver.js +14 -1
  136. package/dist/scanners/external-scanner-receiver.js.map +1 -1
  137. package/dist/scripts/run-dsl-standalone-live.d.ts +1 -1
  138. package/dist/scripts/run-dsl-standalone-live.js +5 -3
  139. package/dist/scripts/run-dsl-standalone-live.js.map +1 -1
  140. package/dist/senpi/client.d.ts +37 -4
  141. package/dist/senpi/client.d.ts.map +1 -1
  142. package/dist/senpi/client.js +101 -24
  143. package/dist/senpi/client.js.map +1 -1
  144. package/dist/state/state-manager.d.ts +17 -0
  145. package/dist/state/state-manager.d.ts.map +1 -1
  146. package/dist/state/state-manager.js +50 -4
  147. package/dist/state/state-manager.js.map +1 -1
  148. package/dist/strategy/strategy-state.d.ts +9 -1
  149. package/dist/strategy/strategy-state.d.ts.map +1 -1
  150. package/dist/strategy/strategy-state.js +62 -9
  151. package/dist/strategy/strategy-state.js.map +1 -1
  152. package/dist/tracking/constants.d.ts.map +1 -1
  153. package/dist/tracking/constants.js +2 -0
  154. package/dist/tracking/constants.js.map +1 -1
  155. package/dist/types/dsl/index.d.ts +1 -1
  156. package/dist/types/dsl/index.d.ts.map +1 -1
  157. package/dist/types/scanner.d.ts +7 -0
  158. package/dist/types/scanner.d.ts.map +1 -1
  159. package/dist/types/strategy.d.ts +3 -1
  160. package/dist/types/strategy.d.ts.map +1 -1
  161. package/dist/utils/keyed-mutex.d.ts +37 -0
  162. package/dist/utils/keyed-mutex.d.ts.map +1 -0
  163. package/dist/utils/keyed-mutex.js +77 -0
  164. package/dist/utils/keyed-mutex.js.map +1 -0
  165. package/examples/strategies/README.md +17 -12
  166. package/examples/strategies/iguana/README.md +135 -0
  167. package/examples/strategies/iguana/recipe.yaml +137 -0
  168. package/examples/strategies/iguana/scanners/scan.py +243 -0
  169. package/examples/strategies/iguana/scanners/scoring.py +152 -0
  170. package/examples/strategies/raptor/README.md +156 -0
  171. package/examples/strategies/raptor/recipe.yaml +154 -0
  172. package/examples/strategies/raptor/scanners/scan.py +349 -0
  173. package/examples/strategies/raptor/scanners/scoring.py +452 -0
  174. package/examples/strategies/spider/README.md +89 -0
  175. package/examples/strategies/spider/scalp/recipe.yaml +129 -0
  176. package/examples/strategies/spider/scalp/scanners/scan.py +219 -0
  177. package/examples/strategies/spider/scalp/scanners/scoring.py +179 -0
  178. package/examples/strategies/spider/swing/recipe.yaml +137 -0
  179. package/examples/strategies/spider/swing/scanners/scan.py +334 -0
  180. package/examples/strategies/spider/swing/scanners/scoring.py +184 -0
  181. package/examples/strategies/turbine/README.md +166 -0
  182. package/examples/strategies/turbine/recipe-runners.yaml +123 -0
  183. package/examples/strategies/turbine/recipe-volume.yaml +129 -0
  184. package/examples/strategies/turbine/scanners/scan.py +283 -0
  185. package/examples/strategies/turbine/scanners/scoring.py +190 -0
  186. package/openclaw.plugin.json +1 -1
  187. package/package.json +1 -1
  188. package/dist/scanners/external/liquidation-watchdog/README.md +0 -107
  189. package/dist/scanners/external/liquidation-watchdog/liquidation-watchdog.yaml +0 -48
  190. package/dist/scanners/external/liquidation-watchdog/producer.mjs +0 -336
  191. package/dist/scanners/external/momentum/README.md +0 -148
  192. package/dist/scanners/external/momentum/momentum.yaml +0 -116
  193. package/dist/scanners/external/momentum/producer.mjs +0 -251
  194. package/dist/scanners/external/shared/ingest.mjs +0 -112
  195. package/examples/README.md +0 -89
  196. package/examples/scanners-consumer-quickstart.mjs +0 -134
  197. package/examples/scanners-emerging-movers-v4.mjs +0 -287
  198. package/examples/scanners-liquidation-watchdog.mjs +0 -341
  199. package/examples/scanners-live-mcp.mjs +0 -208
  200. package/examples/scanners-multi-strategy.mjs +0 -165
  201. package/examples/scanners-position-tracker-e2e.mjs +0 -225
  202. package/examples/scanners-scheduled-events.mjs +0 -96
  203. package/examples/scanners-senpi-provider-client.mjs +0 -182
  204. package/examples/scanners-single-strategy.mjs +0 -198
  205. package/examples/strategies/dsl-showcase.yaml +0 -68
  206. package/examples/strategies/dsl.yaml +0 -51
  207. package/examples/strategies/fox-minimal-loosened.yaml +0 -240
  208. package/examples/strategies/fox-minimal.yaml +0 -242
  209. package/examples/strategies/minimal.yaml +0 -46
  210. package/examples/strategies/momentum/how-it-works.md +0 -48
  211. package/examples/strategies/momentum/momentum-guarded.yaml +0 -161
  212. package/examples/strategies/risk-showcase.yaml +0 -93
  213. package/examples/strategies/viper.yaml +0 -67
  214. package/examples/strategies/wolf.yaml +0 -72
  215. package/examples/yamls/sample-with-dsl-and-emerging-movers.yaml +0 -123
@@ -7,13 +7,49 @@ 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
- import { mapTiersToEngineConfig, mapEnginePositionToStateFields } from "../engine-client/config-mapping.js";
10
+ import { mapTiersToEngineConfig, mapEnginePositionToStateFields, parseSlOrderId } from "../engine-client/config-mapping.js";
11
11
  import { mapBackendEventToBusEvent } from "../engine-client/event-mapping.js";
12
12
  import { buildDslClosedEventFromState } from "../events/build-closed-event.js";
13
13
  import { parseCloseFillDetail } from "../../senpi/client.js";
14
- async function isDslKeyStillActive(stateManager, key) {
15
- const s = await stateManager.getOrLoad(key);
16
- return Boolean(s?.active);
14
+ /**
15
+ * Re-read the key under its per-key lock; if it is still active, archive it and return true.
16
+ * If a competing locked writer already archived/inactivated it, skip and return false (WARN).
17
+ *
18
+ * The re-read and the archive run inside ONE withKeyLock so the decision and the write are
19
+ * atomic against the other writers (bus close handler, reconcile) that mutate the same key
20
+ * under the same lock. The caller emits bus events only when this returns true, keeping the
21
+ * emit OUTSIDE the lock (the close handlers take the same key lock — emitting inside would
22
+ * nest a non-reentrant lock).
23
+ */
24
+ async function archiveIfStillActive(stateManager, key, address, asset, dex, buildClosedState, ctx) {
25
+ return stateManager.withKeyLock(key, async () => {
26
+ const current = await stateManager.getOrLoad(key);
27
+ if (!current?.active) {
28
+ logger.warn(ctx.skipMessage, { tickId: ctx.tickId, address, asset, key });
29
+ return false;
30
+ }
31
+ await stateManager.archiveAndDeleteDslState(address, asset, dex, buildClosedState(current));
32
+ return true;
33
+ });
34
+ }
35
+ /**
36
+ * Re-read the key under its per-key lock; if it is still active, persist the next state and
37
+ * return true. If a competing locked writer already archived/inactivated it, skip and return
38
+ * false (WARN) so the monitor cannot resurrect a closed position by writing active:true onto a
39
+ * deleted key. `buildNext` receives the fresh in-lock state so read-modify-writes (counter bumps,
40
+ * field stamps) merge onto current values; callers persisting a fully-computed replacement (e.g.
41
+ * the dslTick result) may ignore it and return their own state.
42
+ */
43
+ async function setIfStillActive(stateManager, key, address, asset, buildNext, ctx) {
44
+ return stateManager.withKeyLock(key, async () => {
45
+ const current = await stateManager.getOrLoad(key);
46
+ if (!current?.active) {
47
+ logger.warn(ctx.skipMessage, { tickId: ctx.tickId, address, asset, key });
48
+ return false;
49
+ }
50
+ await stateManager.set(key, buildNext(current));
51
+ return true;
52
+ });
17
53
  }
18
54
  /**
19
55
  * Telemetry stamps for a flat POSITION_CLOSED emit: the cross-flow position.id plus the
@@ -70,12 +106,10 @@ export async function processOnePosition(ctx, key, state, price) {
70
106
  slOrderId: state.slOrderId,
71
107
  address: state.address,
72
108
  });
73
- if (!(await isDslKeyStillActive(stateManager, key))) {
74
- logger.info("[dsl] skip SL-hit archive: state already cleared (concurrent close)", { tickId, key });
75
- return;
76
- }
77
109
  const closedState = { ...state, active: false, closedAt: ts, closeReason: CLOSE_REASON.EXCHANGE_SL_HIT };
78
- await stateManager.archiveAndDeleteDslState(state.address, state.asset, effectiveDex(state), closedState);
110
+ const archived = await archiveIfStillActive(stateManager, key, state.address, state.asset, effectiveDex(state), () => closedState, { tickId, skipMessage: "[dsl] skip SL-hit archive: state already cleared (concurrent close)" });
111
+ if (!archived)
112
+ return;
79
113
  bus.emit(EVENTS.POSITION_CLOSED, {
80
114
  address: state.address,
81
115
  asset: state.asset,
@@ -144,12 +178,10 @@ export async function processOnePosition(ctx, key, state, price) {
144
178
  asset: state.asset,
145
179
  reason: closeReasonToUse,
146
180
  });
147
- if (!(await isDslKeyStillActive(stateManager, key))) {
148
- logger.info("[dsl] skip pendingClose archive: state already cleared (concurrent close)", { tickId, key });
149
- return;
150
- }
151
181
  const closedState = { ...next, active: false, closedAt: ts, closeReason: closeReasonToUse };
152
- await stateManager.archiveAndDeleteDslState(state.address, state.asset, effectiveDex(state), closedState);
182
+ const archived = await archiveIfStillActive(stateManager, key, state.address, state.asset, effectiveDex(state), () => closedState, { tickId, skipMessage: "[dsl] skip pendingClose archive: state already cleared (concurrent close)" });
183
+ if (!archived)
184
+ return;
153
185
  bus.emit(EVENTS.POSITION_CLOSED, {
154
186
  address: state.address,
155
187
  asset: state.asset,
@@ -188,14 +220,12 @@ export async function processOnePosition(ctx, key, state, price) {
188
220
  }
189
221
  next.lastError = String(e);
190
222
  next.lastErrorAt = ts;
191
- await stateManager.set(key, next);
192
- if ((next.consecutiveCloseFailures ?? 0) >= MAX_CONSECUTIVE_CLOSE_FAILURES) {
193
- if (!(await isDslKeyStillActive(stateManager, key))) {
194
- logger.info("[dsl] skip close-fail archive: state already cleared (concurrent close)", { tickId, key });
195
- return;
196
- }
223
+ const crossedThreshold = (next.consecutiveCloseFailures ?? 0) >= MAX_CONSECUTIVE_CLOSE_FAILURES;
224
+ if (crossedThreshold) {
197
225
  const failedCloseState = { ...next, active: false, closedAt: isoNow(), closeReason: CLOSE_REASON.CLOSE_POSITION_FAILED };
198
- await stateManager.archiveAndDeleteDslState(state.address, state.asset, effectiveDex(state), failedCloseState);
226
+ const archived = await archiveIfStillActive(stateManager, key, state.address, state.asset, effectiveDex(state), () => failedCloseState, { tickId, skipMessage: "[dsl] skip close-fail archive: state already cleared (concurrent close)" });
227
+ if (!archived)
228
+ return;
199
229
  bus.emit(EVENTS.POSITION_CLOSED, {
200
230
  address: state.address,
201
231
  asset: state.asset,
@@ -212,6 +242,7 @@ export async function processOnePosition(ctx, key, state, price) {
212
242
  }));
213
243
  }
214
244
  else {
245
+ await setIfStillActive(stateManager, key, state.address, state.asset, (current) => ({ ...current, lastError: String(e), lastErrorAt: ts, consecutiveCloseFailures: next.consecutiveCloseFailures }), { tickId, skipMessage: "[dsl] skip pendingClose error write: state already cleared (concurrent close)" });
215
246
  bus.emit(DSL_EVENTS.CLOSE_PENDING, {
216
247
  address: state.address,
217
248
  asset: state.asset,
@@ -228,7 +259,11 @@ export async function processOnePosition(ctx, key, state, price) {
228
259
  if (price == null) {
229
260
  const next = { ...state, consecutiveFetchFailures: (state.consecutiveFetchFailures ?? 0) + 1 };
230
261
  next.tickCount = (state.tickCount ?? 0) + 1;
231
- await stateManager.set(key, next);
262
+ await setIfStillActive(stateManager, key, state.address, state.asset, (current) => ({
263
+ ...current,
264
+ consecutiveFetchFailures: (current.consecutiveFetchFailures ?? 0) + 1,
265
+ tickCount: (current.tickCount ?? 0) + 1,
266
+ }), { tickId, skipMessage: "[dsl] skip no-price counter write: state already cleared (concurrent close)" });
232
267
  if (next.consecutiveFetchFailures >= DSL_PRICE_FETCH_FAILURE_WARN_THRESHOLD) {
233
268
  logger.warn("[dsl] sustained price fetch failures for position", {
234
269
  tickId,
@@ -255,7 +290,12 @@ export async function processOnePosition(ctx, key, state, price) {
255
290
  if (next.handoffStatus === "pending" && !strategy) {
256
291
  next.handoffStatus = null;
257
292
  }
258
- await stateManager.set(key, next);
293
+ if (!(await setIfStillActive(stateManager, key, state.address, state.asset, () => next, {
294
+ tickId,
295
+ skipMessage: "[dsl] skip dslTick result write: state already cleared (concurrent close)",
296
+ }))) {
297
+ return;
298
+ }
259
299
  logger.info("[dsl] monitor dslTick result", {
260
300
  tickId,
261
301
  key,
@@ -280,8 +320,7 @@ export async function processOnePosition(ctx, key, state, price) {
280
320
  key,
281
321
  asset: state.asset,
282
322
  });
283
- const cleared = { ...next, closeReason: null };
284
- await stateManager.set(key, cleared);
323
+ await setIfStillActive(stateManager, key, state.address, state.asset, (current) => ({ ...current, closeReason: null }), { tickId, skipMessage: "[dsl] skip spurious-breach clear: state already cleared (concurrent close)" });
285
324
  return;
286
325
  }
287
326
  logger.info("[dsl] dsl close: sending closePosition to exchange", {
@@ -373,14 +412,11 @@ export async function processOnePosition(ctx, key, state, price) {
373
412
  timestamp: isoNow(),
374
413
  });
375
414
  }
376
- await stateManager.set(key, pending);
377
415
  if ((pending.consecutiveCloseFailures ?? 0) >= MAX_CONSECUTIVE_CLOSE_FAILURES) {
378
- if (!(await isDslKeyStillActive(stateManager, key))) {
379
- logger.info("[dsl] skip breach close-fail archive: state already cleared (concurrent close)", { tickId, key });
380
- return;
381
- }
382
416
  const failedCloseState = { ...pending, active: false, closedAt: isoNow(), closeReason: CLOSE_REASON.CLOSE_POSITION_FAILED };
383
- await stateManager.archiveAndDeleteDslState(state.address, state.asset, effectiveDex(state), failedCloseState);
417
+ const archived = await archiveIfStillActive(stateManager, key, state.address, state.asset, effectiveDex(state), () => failedCloseState, { tickId, skipMessage: "[dsl] skip breach close-fail archive: state already cleared (concurrent close)" });
418
+ if (!archived)
419
+ return;
384
420
  bus.emit(EVENTS.POSITION_CLOSED, {
385
421
  address: state.address,
386
422
  asset: state.asset,
@@ -397,6 +433,7 @@ export async function processOnePosition(ctx, key, state, price) {
397
433
  }));
398
434
  }
399
435
  else {
436
+ await setIfStillActive(stateManager, key, state.address, state.asset, () => pending, { tickId, skipMessage: "[dsl] skip breach close-pending write: state already cleared (concurrent close)" });
400
437
  bus.emit(DSL_EVENTS.CLOSE_PENDING, {
401
438
  address: state.address,
402
439
  asset: state.asset,
@@ -414,12 +451,10 @@ export async function processOnePosition(ctx, key, state, price) {
414
451
  asset: state.asset,
415
452
  reason: closeReasonToUse,
416
453
  });
417
- if (!(await isDslKeyStillActive(stateManager, key))) {
418
- logger.info("[dsl] skip dsl-breach archive: state already cleared (concurrent close)", { tickId, key });
419
- return;
420
- }
421
454
  const closedState = { ...next, active: false, closedAt: ts, closeReason: closeReasonToUse };
422
- await stateManager.archiveAndDeleteDslState(state.address, state.asset, effectiveDex(state), closedState);
455
+ const archived = await archiveIfStillActive(stateManager, key, state.address, state.asset, effectiveDex(state), () => closedState, { tickId, skipMessage: "[dsl] skip dsl-breach archive: state already cleared (concurrent close)" });
456
+ if (!archived)
457
+ return;
423
458
  bus.emit(EVENTS.POSITION_CLOSED, {
424
459
  address: state.address,
425
460
  asset: state.asset,
@@ -464,10 +499,7 @@ export async function processOnePosition(ctx, key, state, price) {
464
499
  lastPrice: next.lastPrice,
465
500
  lockedProfitPct: next.lockedProfitPct,
466
501
  });
467
- const afterTier = (await stateManager.getOrLoad(key)) ?? next;
468
- if (afterTier?.active) {
469
- await stateManager.set(key, { ...afterTier, lastTierNotificationAt: ts });
470
- }
502
+ await setIfStillActive(stateManager, key, state.address, state.asset, (current) => ({ ...current, lastTierNotificationAt: ts }), { tickId, skipMessage: "[dsl] skip tier-notification stamp: state already cleared (concurrent close)" });
471
503
  }
472
504
  else {
473
505
  logger.error("[dsl] TIER_ADVANCED skipped: tier missing at index (tiers must come from YAML/config)", {
@@ -506,7 +538,7 @@ export async function processOnePosition(ctx, key, state, price) {
506
538
  asset: state.asset,
507
539
  });
508
540
  next.handoffStatus = "pending";
509
- await stateManager.set(key, next);
541
+ await setIfStillActive(stateManager, key, state.address, state.asset, () => next, { tickId, skipMessage: "[dsl] skip catch-up handoff-pending write: state already cleared (concurrent close)" });
510
542
  }
511
543
  if (next.handoffStatus === "pending" && strategy) {
512
544
  await attemptHandoffRegistration(ctx, key, next, state, strategy);
@@ -586,21 +618,24 @@ export async function processOnePosition(ctx, key, state, price) {
586
618
  timestamp: isoNow(),
587
619
  });
588
620
  slUpdateEmitted = true;
589
- const freshAfterSl = await stateManager.getOrLoad(key);
590
- if (!freshAfterSl?.active) {
591
- logger.info("[dsl] skip SL sync write: state no longer active (concurrent close)", { tickId, key });
621
+ let syncedForEmit = null;
622
+ await setIfStillActive(stateManager, key, state.address, state.asset, (current) => {
623
+ const synced = {
624
+ ...current,
625
+ slOrderId: res.slOrderId ?? current.slOrderId,
626
+ lastSyncedFloorPrice: exchangeTriggerPx,
627
+ slOrderIdUpdatedAt: ts,
628
+ lastSlSyncError: null,
629
+ slSyncFailureCount: 0,
630
+ lastError: null,
631
+ lastErrorAt: null,
632
+ };
633
+ syncedForEmit = synced;
634
+ return synced;
635
+ }, { tickId, skipMessage: "[dsl] skip SL sync write: state no longer active (concurrent close)" });
636
+ if (!syncedForEmit)
592
637
  return;
593
- }
594
- const synced = {
595
- ...freshAfterSl,
596
- slOrderId: res.slOrderId ?? freshAfterSl.slOrderId,
597
- lastSyncedFloorPrice: exchangeTriggerPx,
598
- slOrderIdUpdatedAt: ts,
599
- lastSlSyncError: null,
600
- slSyncFailureCount: 0,
601
- lastError: null,
602
- lastErrorAt: null,
603
- };
638
+ const synced = syncedForEmit;
604
639
  logger.info("[dsl] exchange SL created/updated", {
605
640
  tickId,
606
641
  asset: state.asset,
@@ -609,7 +644,6 @@ export async function processOnePosition(ctx, key, state, price) {
609
644
  dslEffectiveFloor,
610
645
  resSlOrderId: res.slOrderId,
611
646
  });
612
- await stateManager.set(key, synced);
613
647
  bus.emit(DSL_EVENTS.SL_UPDATED, {
614
648
  address: state.address,
615
649
  asset: state.asset,
@@ -641,25 +675,25 @@ export async function processOnePosition(ctx, key, state, price) {
641
675
  timestamp: isoNow(),
642
676
  });
643
677
  }
644
- const freshAfterSl = await stateManager.getOrLoad(key);
645
- if (!freshAfterSl?.active) {
646
- logger.info("[dsl] skip SL sync-failure write: state no longer active (concurrent close)", { tickId, key });
678
+ let syncFailureCount = null;
679
+ await setIfStillActive(stateManager, key, state.address, state.asset, (current) => {
680
+ syncFailureCount = (current.slSyncFailureCount ?? 0) + 1;
681
+ return {
682
+ ...current,
683
+ lastSlSyncError: String(e),
684
+ lastError: String(e),
685
+ lastErrorAt: ts,
686
+ slSyncFailureCount: syncFailureCount,
687
+ };
688
+ }, { tickId, skipMessage: "[dsl] skip SL sync-failure write: state no longer active (concurrent close)" });
689
+ if (syncFailureCount == null)
647
690
  return;
648
- }
649
- const syncFailed = {
650
- ...freshAfterSl,
651
- lastSlSyncError: String(e),
652
- lastError: String(e),
653
- lastErrorAt: ts,
654
- slSyncFailureCount: (freshAfterSl.slSyncFailureCount ?? 0) + 1,
655
- };
656
- await stateManager.set(key, syncFailed);
657
691
  logger.warn("[dsl] editPosition (SL update) failed", {
658
692
  tickId,
659
693
  asset: state.asset,
660
694
  exchangeTriggerPx,
661
695
  dslEffectiveFloor,
662
- slSyncFailureCount: syncFailed.slSyncFailureCount,
696
+ slSyncFailureCount: syncFailureCount,
663
697
  err: e,
664
698
  });
665
699
  }
@@ -700,7 +734,7 @@ export async function processOnePosition(ctx, key, state, price) {
700
734
  : 0,
701
735
  timestamp: ts,
702
736
  });
703
- await stateManager.set(key, { ...hbState, lastHeartbeatAt: ts });
737
+ await setIfStillActive(stateManager, key, hbState.address, hbState.asset, (current) => ({ ...current, lastHeartbeatAt: ts }), { tickId, skipMessage: "[dsl] skip heartbeat stamp: state already cleared (concurrent close)" });
704
738
  }
705
739
  }
706
740
  }
@@ -716,6 +750,15 @@ const BACKEND_TERMINAL_STATUSES = new Set([
716
750
  "ADL",
717
751
  "DELETED",
718
752
  ]);
753
+ /**
754
+ * A Phase-2 handoff is only "ok" once the backend confirms it has placed a live
755
+ * exchange stop-loss (a numeric activeSLOrderId). Without one, the runtime must
756
+ * keep the handoff "pending" and manage the SL itself rather than trust a backend
757
+ * that has accepted the position but not yet armed a stop (MA-3).
758
+ */
759
+ function backendHasLiveSl(pos) {
760
+ return parseSlOrderId(pos.activeSLOrderId) != null;
761
+ }
719
762
  async function attemptHandoffRegistration(ctx, key, next, _original, strategy) {
720
763
  const { tickId, ts, stateManager } = ctx;
721
764
  // Pre-check: if a ratchet already exists for this asset (e.g. previous
@@ -730,6 +773,10 @@ async function attemptHandoffRegistration(ctx, key, next, _original, strategy) {
730
773
  const active = existing.filter((p) => !BACKEND_TERMINAL_STATUSES.has(p.status));
731
774
  if (active.length > 0) {
732
775
  const adopted = active[0];
776
+ if (!backendHasLiveSl(adopted)) {
777
+ logger.warn("[dsl] pre-check found backend ratchet without an exchange SL; staying pending so the runtime keeps managing the SL", { tickId, asset: next.asset, adoptedId: adopted.id, status: adopted.status });
778
+ return;
779
+ }
733
780
  logger.info("[dsl] pre-check found existing backend ratchet, adopting instead of re-adding", {
734
781
  tickId,
735
782
  asset: next.asset,
@@ -742,7 +789,7 @@ async function attemptHandoffRegistration(ctx, key, next, _original, strategy) {
742
789
  backendDslPositionId: adopted.id,
743
790
  lastBackendDslTick: ts,
744
791
  };
745
- await stateManager.set(key, updated);
792
+ await setIfStillActive(stateManager, key, next.address, next.asset, () => updated, { tickId, skipMessage: "[dsl] skip handoff adopt write: state already cleared (concurrent close)" });
746
793
  Object.assign(next, updated);
747
794
  return;
748
795
  }
@@ -777,17 +824,27 @@ async function attemptHandoffRegistration(ctx, key, next, _original, strategy) {
777
824
  rawResult: JSON.stringify(result).slice(0, 1000),
778
825
  });
779
826
  const aborted = { ...next, handoffStatus: "aborted" };
780
- await stateManager.set(key, aborted);
827
+ await setIfStillActive(stateManager, key, next.address, next.asset, () => aborted, { tickId, skipMessage: "[dsl] skip handoff abort write: state already cleared (concurrent close)" });
781
828
  Object.assign(next, aborted);
782
829
  return;
783
830
  }
831
+ if (!backendHasLiveSl(result.position)) {
832
+ logger.warn("[dsl] backend created the position but has not placed an exchange SL; staying pending so the runtime keeps managing the SL", {
833
+ tickId,
834
+ asset: next.asset,
835
+ backendDslPositionId: result.position.id,
836
+ status: result.position.status,
837
+ rawResult: JSON.stringify(result).slice(0, 1000),
838
+ });
839
+ return;
840
+ }
784
841
  const updated = {
785
842
  ...next,
786
843
  handoffStatus: "ok",
787
844
  backendDslPositionId: result.position.id,
788
845
  lastBackendDslTick: ts,
789
846
  };
790
- await stateManager.set(key, updated);
847
+ await setIfStillActive(stateManager, key, next.address, next.asset, () => updated, { tickId, skipMessage: "[dsl] skip handoff register write: state already cleared (concurrent close)" });
791
848
  Object.assign(next, updated);
792
849
  logger.info("[dsl] handoff registered with backend", {
793
850
  tickId,
@@ -844,7 +901,7 @@ async function handleHandoffOk(ctx, key, next, original, strategy) {
844
901
  backendDslPositionId: null,
845
902
  lastBackendDslTick: null,
846
903
  };
847
- await stateManager.set(key, rolledBack);
904
+ await setIfStillActive(stateManager, key, original.address, original.asset, () => rolledBack, { tickId, skipMessage: "[dsl] skip handoff rollback write: state already cleared (concurrent close)" });
848
905
  return;
849
906
  }
850
907
  else {
@@ -861,7 +918,9 @@ async function handleHandoffOk(ctx, key, next, original, strategy) {
861
918
  closedAt: ts,
862
919
  closeReason,
863
920
  };
864
- await stateManager.archiveAndDeleteDslState(original.address, original.asset, effectiveDex(original), closedState);
921
+ const archived = await archiveIfStillActive(stateManager, key, original.address, original.asset, effectiveDex(original), () => closedState, { tickId, skipMessage: "[dsl] skip backend-terminal archive: state already cleared (concurrent close)" });
922
+ if (!archived)
923
+ return;
865
924
  bus.emit(EVENTS.POSITION_CLOSED, {
866
925
  address: original.address,
867
926
  asset: original.asset,
@@ -991,7 +1050,9 @@ async function handleHandoffOk(ctx, key, next, original, strategy) {
991
1050
  closedAt: ts,
992
1051
  closeReason,
993
1052
  };
994
- await stateManager.archiveAndDeleteDslState(original.address, original.asset, effectiveDex(original), closedState);
1053
+ const archived = await archiveIfStillActive(stateManager, key, original.address, original.asset, effectiveDex(original), () => closedState, { tickId, skipMessage: "[dsl] skip backend-CLOSED archive: state already cleared (concurrent close)" });
1054
+ if (!archived)
1055
+ return;
995
1056
  bus.emit(EVENTS.POSITION_CLOSED, {
996
1057
  address: original.address,
997
1058
  asset: original.asset,
@@ -1013,6 +1074,6 @@ async function handleHandoffOk(ctx, key, next, original, strategy) {
1013
1074
  err: e,
1014
1075
  });
1015
1076
  }
1016
- await stateManager.set(key, updated);
1077
+ await setIfStillActive(stateManager, key, original.address, original.asset, () => updated, { tickId, skipMessage: "[dsl] skip handoff poll final write: state already cleared (concurrent close)" });
1017
1078
  }
1018
1079
  //# sourceMappingURL=process-one-position.js.map
@@ -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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"}
@@ -2,7 +2,7 @@
2
2
  * DslPlugin: lifecycle, event wiring, price monitor (DSL feature of senpi core).
3
3
  */
4
4
  import type { DslComponentHealthStatus, DslSystemState } from "../../health/types.js";
5
- import type { DslArchivedClose, DslPositionSummary, DslState } from "../../types/dsl/index.js";
5
+ import type { DslArchivedClose, DslPositionSummary, DslState, PositionOpenedEvent } from "../../types/dsl/index.js";
6
6
  import type { DslPluginOptions } from "./options.js";
7
7
  export type { DslPluginOptions } from "./options.js";
8
8
  export declare class DslPlugin {
@@ -14,6 +14,9 @@ export declare class DslPlugin {
14
14
  private readonly baseDir;
15
15
  private readonly deleteDslsForStrategyImpl;
16
16
  private readonly isSlPlacementInProgress;
17
+ private readonly adoptPositionImpl;
18
+ private readonly resizePositionImpl;
19
+ private readonly placeSlOnAdopt;
17
20
  private priceMonitorHandle;
18
21
  private priceMonitorStopped;
19
22
  private notificationSubscriber;
@@ -37,6 +40,18 @@ export declare class DslPlugin {
37
40
  static create(options: DslPluginOptions): Promise<DslPlugin>;
38
41
  /** Cancel exchange SLs and archive all DSL state for the strategy (live files removed; strategy dir kept). */
39
42
  deleteDslsForStrategy(address: string): Promise<number>;
43
+ /**
44
+ * Adopt an orphaned exchange position into DSL (crash-safe reconcile).
45
+ * Does NOT emit bus position.opened; triggerReason = "adopted"; notification = silent.
46
+ * placeSl honors placeSlOnAdopt option (default false — monitor places SL on next tick).
47
+ */
48
+ adoptPosition(payload: PositionOpenedEvent): Promise<void>;
49
+ /**
50
+ * Resize: archive stale active DSL state for the position, then adopt fresh.
51
+ * Close reason for the stale state = RECONCILE_RESIZE.
52
+ * placeSl honors placeSlOnAdopt option (default false).
53
+ */
54
+ resizePosition(payload: PositionOpenedEvent): Promise<void>;
40
55
  /** Active DSL positions for this runtime state dir (no runtimeId). */
41
56
  listActivePositions(): DslPositionSummary[];
42
57
  getPositionState(address: string, asset: string): DslState | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dsl/plugin/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAEV,wBAAwB,EACxB,cAAc,EACf,MAAM,uBAAuB,CAAC;AAG/B,OAAO,KAAK,EACV,gBAAgB,EAEhB,kBAAkB,EAClB,QAAQ,EACT,MAAM,0BAA0B,CAAC;AAQlC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAIrD,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAoBrD,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAuC;IACjF,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA2B;IACnE,OAAO,CAAC,kBAAkB,CAA8C;IACxE,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,sBAAsB,CAA0C;IACxE,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,kBAAkB,CAAuB;IACjD,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,cAAc,CAAK;IAE3B,OAAO;IAsBP,OAAO,CAAC,MAAM,CAAC,mBAAmB;mBAOb,kBAAkB;mBAkBlB,qBAAqB;IAqB1C,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAWxC,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAS/B,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAoBxC,OAAO,CAAC,MAAM,CAAC,uBAAuB;WAoBzB,MAAM,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC;IAuElE,8GAA8G;IAC9G,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIvD,sEAAsE;IACtE,mBAAmB,IAAI,kBAAkB,EAAE;IAU3C,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAItE;;OAEG;IACH,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,QAAQ,CAAA;KAAE,GAAG,SAAS;IAIpF;;OAEG;IACG,kBAAkB,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAmD/F,eAAe,IAAI,OAAO,CAAC,wBAAwB,CAAC;IAapD,cAAc,IAAI,OAAO,CAAC,cAAc,CAAC;IA4B/C,IAAI,IAAI,IAAI;IAoBZ,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,gBAAgB;IA0CxB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,YAAY;IA8BpB,OAAO,CAAC,kBAAkB;CAe3B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dsl/plugin/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,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;AAIrD,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAoBrD,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAuC;IACjF,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA2B;IACnE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAgF;IAClH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAgF;IACnH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;IACzC,OAAO,CAAC,kBAAkB,CAA8C;IACxE,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,sBAAsB,CAA0C;IACxE,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,kBAAkB,CAAuB;IACjD,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,cAAc,CAAK;IAE3B,OAAO;IA4BP,OAAO,CAAC,MAAM,CAAC,mBAAmB;mBAOb,kBAAkB;mBAkBlB,qBAAqB;IAqB1C,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAWxC,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAS/B,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAoBxC,OAAO,CAAC,MAAM,CAAC,uBAAuB;WAoBzB,MAAM,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC;IA4ElE,8GAA8G;IAC9G,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIvD;;;;OAIG;IACH,aAAa,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1D;;;;OAIG;IACH,cAAc,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D,sEAAsE;IACtE,mBAAmB,IAAI,kBAAkB,EAAE;IAU3C,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAItE;;OAEG;IACH,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,QAAQ,CAAA;KAAE,GAAG,SAAS;IAIpF;;OAEG;IACG,kBAAkB,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAmD/F,eAAe,IAAI,OAAO,CAAC,wBAAwB,CAAC;IAapD,cAAc,IAAI,OAAO,CAAC,cAAc,CAAC;IA4B/C,IAAI,IAAI,IAAI;IAoBZ,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,gBAAgB;IAsDxB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,YAAY;IA8BpB,OAAO,CAAC,kBAAkB;CAe3B"}