@senpi/runtime 3.0.6-dev.runtime-phase-2.20260630134410 → 3.0.6-dev.runtime-phase-2.20260630134511

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 (322) hide show
  1. package/dist/actions/{tracking-helpers.d.ts → action-events.d.ts} +24 -23
  2. package/dist/actions/action-events.d.ts.map +1 -0
  3. package/dist/actions/{tracking-helpers.js → action-events.js} +64 -82
  4. package/dist/actions/action-events.js.map +1 -0
  5. package/dist/actions/close-position/close-position.action.d.ts.map +1 -1
  6. package/dist/actions/close-position/close-position.action.js +8 -17
  7. package/dist/actions/close-position/close-position.action.js.map +1 -1
  8. package/dist/actions/event-derivation.d.ts +7 -6
  9. package/dist/actions/event-derivation.d.ts.map +1 -1
  10. package/dist/actions/event-derivation.js +6 -5
  11. package/dist/actions/event-derivation.js.map +1 -1
  12. package/dist/actions/llm-decision/openclaw-llm-decision.js +5 -5
  13. package/dist/actions/llm-decision/openclaw-llm-decision.js.map +1 -1
  14. package/dist/actions/open-position/open-position.action.d.ts.map +1 -1
  15. package/dist/actions/open-position/open-position.action.js +9 -17
  16. package/dist/actions/open-position/open-position.action.js.map +1 -1
  17. package/dist/actions/position-tracker/position-tracker.action.d.ts.map +1 -1
  18. package/dist/actions/position-tracker/position-tracker.action.js +1 -2
  19. package/dist/actions/position-tracker/position-tracker.action.js.map +1 -1
  20. package/dist/dsl/engine-client/event-mapping.d.ts.map +1 -1
  21. package/dist/dsl/engine-client/event-mapping.js +0 -3
  22. package/dist/dsl/engine-client/event-mapping.js.map +1 -1
  23. package/dist/dsl/events/build-closed-event.d.ts.map +1 -1
  24. package/dist/dsl/events/build-closed-event.js +0 -1
  25. package/dist/dsl/events/build-closed-event.js.map +1 -1
  26. package/dist/dsl/events/handlers.d.ts.map +1 -1
  27. package/dist/dsl/events/handlers.js +2 -4
  28. package/dist/dsl/events/handlers.js.map +1 -1
  29. package/dist/dsl/events/initial-state.d.ts.map +1 -1
  30. package/dist/dsl/events/initial-state.js +1 -0
  31. package/dist/dsl/events/initial-state.js.map +1 -1
  32. package/dist/dsl/monitor/create-monitor.d.ts +1 -1
  33. package/dist/dsl/monitor/create-monitor.d.ts.map +1 -1
  34. package/dist/dsl/monitor/create-monitor.js +0 -30
  35. package/dist/dsl/monitor/create-monitor.js.map +1 -1
  36. package/dist/dsl/monitor/dsl-failure-events.d.ts +42 -0
  37. package/dist/dsl/monitor/dsl-failure-events.d.ts.map +1 -0
  38. package/dist/dsl/monitor/dsl-failure-events.js +73 -0
  39. package/dist/dsl/monitor/dsl-failure-events.js.map +1 -0
  40. package/dist/dsl/monitor/process-one-position.d.ts.map +1 -1
  41. package/dist/dsl/monitor/process-one-position.js +46 -158
  42. package/dist/dsl/monitor/process-one-position.js.map +1 -1
  43. package/dist/dsl/plugin/index.js +3 -3
  44. package/dist/dsl/plugin/index.js.map +1 -1
  45. package/dist/dsl/plugin/options.d.ts +1 -1
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +45 -58
  48. package/dist/index.js.map +1 -1
  49. package/dist/runtime/__tests__/helpers/runtime-gateway-harness.d.ts +2 -0
  50. package/dist/runtime/__tests__/helpers/runtime-gateway-harness.d.ts.map +1 -1
  51. package/dist/runtime/__tests__/helpers/runtime-gateway-harness.js +24 -3
  52. package/dist/runtime/__tests__/helpers/runtime-gateway-harness.js.map +1 -1
  53. package/dist/runtime/create-runtime-context.d.ts +1 -1
  54. package/dist/runtime/create-runtime-context.d.ts.map +1 -1
  55. package/dist/runtime/create-scanner-module.d.ts +1 -1
  56. package/dist/runtime/domain-events.d.ts +4 -4
  57. package/dist/runtime/domain-events.d.ts.map +1 -1
  58. package/dist/runtime/domain-events.js +4 -4
  59. package/dist/runtime/domain-events.js.map +1 -1
  60. package/dist/runtime/lifecycle-events.d.ts +46 -3
  61. package/dist/runtime/lifecycle-events.d.ts.map +1 -1
  62. package/dist/runtime/lifecycle-events.js +66 -5
  63. package/dist/runtime/lifecycle-events.js.map +1 -1
  64. package/dist/{tracking → runtime}/position-id-registry.d.ts +14 -1
  65. package/dist/runtime/position-id-registry.d.ts.map +1 -0
  66. package/dist/{tracking → runtime}/position-id-registry.js +20 -3
  67. package/dist/runtime/position-id-registry.js.map +1 -0
  68. package/dist/runtime/run.d.ts +2 -4
  69. package/dist/runtime/run.d.ts.map +1 -1
  70. package/dist/runtime/run.js.map +1 -1
  71. package/dist/runtime/runtime-schema.d.ts +156 -419
  72. package/dist/runtime/runtime-schema.d.ts.map +1 -1
  73. package/dist/runtime/runtime-schema.js +8 -28
  74. package/dist/runtime/runtime-schema.js.map +1 -1
  75. package/dist/runtime/runtime.d.ts +10 -9
  76. package/dist/runtime/runtime.d.ts.map +1 -1
  77. package/dist/runtime/runtime.js +116 -182
  78. package/dist/runtime/runtime.js.map +1 -1
  79. package/dist/runtime/supervisor/long-running-supervisor.d.ts +3 -0
  80. package/dist/runtime/supervisor/long-running-supervisor.d.ts.map +1 -1
  81. package/dist/runtime/supervisor/long-running-supervisor.js +27 -53
  82. package/dist/runtime/supervisor/long-running-supervisor.js.map +1 -1
  83. package/dist/runtime-api/intake/intake-events.d.ts +44 -0
  84. package/dist/runtime-api/intake/intake-events.d.ts.map +1 -0
  85. package/dist/runtime-api/intake/intake-events.js +131 -0
  86. package/dist/runtime-api/intake/intake-events.js.map +1 -0
  87. package/dist/runtime-api/intake/scanner-launcher.d.ts +2 -0
  88. package/dist/runtime-api/intake/scanner-launcher.d.ts.map +1 -1
  89. package/dist/runtime-api/intake/scanner-launcher.js +58 -15
  90. package/dist/runtime-api/intake/scanner-launcher.js.map +1 -1
  91. package/dist/runtime-api/intake/supervisor-events.d.ts +61 -0
  92. package/dist/runtime-api/intake/supervisor-events.d.ts.map +1 -0
  93. package/dist/runtime-api/intake/supervisor-events.js +173 -0
  94. package/dist/runtime-api/intake/supervisor-events.js.map +1 -0
  95. package/dist/runtime-api/routes/signals.d.ts.map +1 -1
  96. package/dist/runtime-api/routes/signals.js +119 -27
  97. package/dist/runtime-api/routes/signals.js.map +1 -1
  98. package/dist/runtime-api/server.d.ts.map +1 -1
  99. package/dist/runtime-api/server.js +10 -1
  100. package/dist/runtime-api/server.js.map +1 -1
  101. package/dist/scanners/engine/data-providers.d.ts +1 -1
  102. package/dist/scanners/engine/engine.d.ts.map +1 -1
  103. package/dist/scanners/engine/engine.js +3 -0
  104. package/dist/scanners/engine/engine.js.map +1 -1
  105. package/dist/scanners/runtime-module.d.ts +1 -1
  106. package/dist/senpi/client.d.ts.map +1 -1
  107. package/dist/senpi/client.js +51 -6
  108. package/dist/senpi/client.js.map +1 -1
  109. package/dist/state/state-events.d.ts +13 -0
  110. package/dist/state/state-events.d.ts.map +1 -0
  111. package/dist/state/state-events.js +22 -0
  112. package/dist/state/state-events.js.map +1 -0
  113. package/dist/state/state-manager.d.ts.map +1 -1
  114. package/dist/state/state-manager.js +14 -1
  115. package/dist/state/state-manager.js.map +1 -1
  116. package/dist/telemetry/attributes.d.ts +13 -0
  117. package/dist/telemetry/attributes.d.ts.map +1 -0
  118. package/dist/telemetry/attributes.js +22 -0
  119. package/dist/telemetry/attributes.js.map +1 -0
  120. package/dist/{tracking → telemetry}/context.d.ts +6 -5
  121. package/dist/telemetry/context.d.ts.map +1 -0
  122. package/dist/{tracking → telemetry}/context.js +4 -4
  123. package/dist/telemetry/context.js.map +1 -0
  124. package/dist/{recording/records.d.ts → telemetry/event-builders.d.ts} +138 -32
  125. package/dist/telemetry/event-builders.d.ts.map +1 -0
  126. package/dist/{recording/wiring/record-builders.js → telemetry/event-builders.js} +90 -39
  127. package/dist/telemetry/event-builders.js.map +1 -0
  128. package/dist/telemetry/identity.d.ts +72 -0
  129. package/dist/telemetry/identity.d.ts.map +1 -0
  130. package/dist/{recording/wiring → telemetry}/identity.js +6 -2
  131. package/dist/telemetry/identity.js.map +1 -0
  132. package/dist/telemetry/metrics.d.ts +137 -15
  133. package/dist/telemetry/metrics.d.ts.map +1 -1
  134. package/dist/telemetry/metrics.js +357 -74
  135. package/dist/telemetry/metrics.js.map +1 -1
  136. package/dist/telemetry/otel-sdk.d.ts +1 -1
  137. package/dist/telemetry/otel-sdk.js +1 -1
  138. package/dist/telemetry/spans/constants.d.ts.map +1 -0
  139. package/dist/telemetry/spans/constants.js.map +1 -0
  140. package/dist/{tracking → telemetry}/spans/gen-ai.d.ts +4 -0
  141. package/dist/telemetry/spans/gen-ai.d.ts.map +1 -0
  142. package/dist/{tracking → telemetry}/spans/gen-ai.js +9 -0
  143. package/dist/telemetry/spans/gen-ai.js.map +1 -0
  144. package/dist/telemetry/spans/index.d.ts.map +1 -0
  145. package/dist/telemetry/spans/index.js.map +1 -0
  146. package/dist/telemetry/spans/redact-pii.d.ts.map +1 -0
  147. package/dist/{tracking → telemetry}/spans/redact-pii.js +4 -1
  148. package/dist/telemetry/spans/redact-pii.js.map +1 -0
  149. package/dist/telemetry/spans/sanitize-payload.d.ts.map +1 -0
  150. package/dist/telemetry/spans/sanitize-payload.js.map +1 -0
  151. package/dist/telemetry/spans/span-hooks.d.ts +18 -0
  152. package/dist/telemetry/spans/span-hooks.d.ts.map +1 -0
  153. package/dist/{tracking → telemetry}/spans/span-hooks.js +183 -28
  154. package/dist/telemetry/spans/span-hooks.js.map +1 -0
  155. package/dist/telemetry/tool-plane.d.ts +31 -0
  156. package/dist/telemetry/tool-plane.d.ts.map +1 -0
  157. package/dist/telemetry/tool-plane.js +70 -0
  158. package/dist/telemetry/tool-plane.js.map +1 -0
  159. package/dist/telemetry/trace-identity.d.ts +1 -1
  160. package/dist/telemetry/trace-identity.d.ts.map +1 -1
  161. package/dist/telemetry/trace-identity.js +3 -0
  162. package/dist/telemetry/trace-identity.js.map +1 -1
  163. package/dist/types/dsl/index.d.ts +8 -9
  164. package/dist/types/dsl/index.d.ts.map +1 -1
  165. package/dist/types/runtime.d.ts +1 -1
  166. package/dist/types/runtime.d.ts.map +1 -1
  167. package/dist/utils/event-catalog.d.ts +239 -2
  168. package/dist/utils/event-catalog.d.ts.map +1 -1
  169. package/dist/utils/event-catalog.js +53 -2
  170. package/dist/utils/event-catalog.js.map +1 -1
  171. package/dist/utils/logger.d.ts +5 -0
  172. package/dist/utils/logger.d.ts.map +1 -1
  173. package/dist/utils/logger.js +21 -12
  174. package/dist/utils/logger.js.map +1 -1
  175. package/package.json +1 -1
  176. package/dist/actions/tracking-helpers.d.ts.map +0 -1
  177. package/dist/actions/tracking-helpers.js.map +0 -1
  178. package/dist/recording/emitter.d.ts +0 -27
  179. package/dist/recording/emitter.d.ts.map +0 -1
  180. package/dist/recording/emitter.js +0 -2
  181. package/dist/recording/emitter.js.map +0 -1
  182. package/dist/recording/identity.d.ts +0 -34
  183. package/dist/recording/identity.d.ts.map +0 -1
  184. package/dist/recording/identity.js +0 -2
  185. package/dist/recording/identity.js.map +0 -1
  186. package/dist/recording/index.d.ts +0 -11
  187. package/dist/recording/index.d.ts.map +0 -1
  188. package/dist/recording/index.js +0 -2
  189. package/dist/recording/index.js.map +0 -1
  190. package/dist/recording/noop-emitter.d.ts +0 -23
  191. package/dist/recording/noop-emitter.d.ts.map +0 -1
  192. package/dist/recording/noop-emitter.js +0 -22
  193. package/dist/recording/noop-emitter.js.map +0 -1
  194. package/dist/recording/otel/attributes.d.ts +0 -37
  195. package/dist/recording/otel/attributes.d.ts.map +0 -1
  196. package/dist/recording/otel/attributes.js +0 -131
  197. package/dist/recording/otel/attributes.js.map +0 -1
  198. package/dist/recording/otel/constants.d.ts +0 -123
  199. package/dist/recording/otel/constants.d.ts.map +0 -1
  200. package/dist/recording/otel/constants.js +0 -172
  201. package/dist/recording/otel/constants.js.map +0 -1
  202. package/dist/recording/otel/ids.d.ts +0 -25
  203. package/dist/recording/otel/ids.d.ts.map +0 -1
  204. package/dist/recording/otel/ids.js +0 -37
  205. package/dist/recording/otel/ids.js.map +0 -1
  206. package/dist/recording/otel/index.d.ts +0 -13
  207. package/dist/recording/otel/index.d.ts.map +0 -1
  208. package/dist/recording/otel/index.js +0 -9
  209. package/dist/recording/otel/index.js.map +0 -1
  210. package/dist/recording/otel/mappers.d.ts +0 -100
  211. package/dist/recording/otel/mappers.d.ts.map +0 -1
  212. package/dist/recording/otel/mappers.js +0 -684
  213. package/dist/recording/otel/mappers.js.map +0 -1
  214. package/dist/recording/otel/otel-emitter.d.ts +0 -43
  215. package/dist/recording/otel/otel-emitter.d.ts.map +0 -1
  216. package/dist/recording/otel/otel-emitter.js +0 -99
  217. package/dist/recording/otel/otel-emitter.js.map +0 -1
  218. package/dist/recording/otel/redaction.d.ts +0 -47
  219. package/dist/recording/otel/redaction.d.ts.map +0 -1
  220. package/dist/recording/otel/redaction.js +0 -88
  221. package/dist/recording/otel/redaction.js.map +0 -1
  222. package/dist/recording/records.d.ts.map +0 -1
  223. package/dist/recording/records.js +0 -14
  224. package/dist/recording/records.js.map +0 -1
  225. package/dist/recording/transport/batcher.d.ts +0 -59
  226. package/dist/recording/transport/batcher.d.ts.map +0 -1
  227. package/dist/recording/transport/batcher.js +0 -234
  228. package/dist/recording/transport/batcher.js.map +0 -1
  229. package/dist/recording/transport/client.d.ts +0 -41
  230. package/dist/recording/transport/client.d.ts.map +0 -1
  231. package/dist/recording/transport/client.js +0 -69
  232. package/dist/recording/transport/client.js.map +0 -1
  233. package/dist/recording/transport/config.d.ts +0 -53
  234. package/dist/recording/transport/config.d.ts.map +0 -1
  235. package/dist/recording/transport/config.js +0 -41
  236. package/dist/recording/transport/config.js.map +0 -1
  237. package/dist/recording/transport/index.d.ts +0 -16
  238. package/dist/recording/transport/index.d.ts.map +0 -1
  239. package/dist/recording/transport/index.js +0 -12
  240. package/dist/recording/transport/index.js.map +0 -1
  241. package/dist/recording/transport/rows.d.ts +0 -88
  242. package/dist/recording/transport/rows.d.ts.map +0 -1
  243. package/dist/recording/transport/rows.js +0 -15
  244. package/dist/recording/transport/rows.js.map +0 -1
  245. package/dist/recording/wiring/emitter-factory.d.ts +0 -34
  246. package/dist/recording/wiring/emitter-factory.d.ts.map +0 -1
  247. package/dist/recording/wiring/emitter-factory.js +0 -44
  248. package/dist/recording/wiring/emitter-factory.js.map +0 -1
  249. package/dist/recording/wiring/identity.d.ts +0 -27
  250. package/dist/recording/wiring/identity.d.ts.map +0 -1
  251. package/dist/recording/wiring/identity.js.map +0 -1
  252. package/dist/recording/wiring/index.d.ts +0 -12
  253. package/dist/recording/wiring/index.d.ts.map +0 -1
  254. package/dist/recording/wiring/index.js +0 -9
  255. package/dist/recording/wiring/index.js.map +0 -1
  256. package/dist/recording/wiring/record-builders.d.ts +0 -107
  257. package/dist/recording/wiring/record-builders.d.ts.map +0 -1
  258. package/dist/recording/wiring/record-builders.js.map +0 -1
  259. package/dist/recording/wiring/subscriber.d.ts +0 -28
  260. package/dist/recording/wiring/subscriber.d.ts.map +0 -1
  261. package/dist/recording/wiring/subscriber.js +0 -173
  262. package/dist/recording/wiring/subscriber.js.map +0 -1
  263. package/dist/recording/wiring/values.d.ts +0 -19
  264. package/dist/recording/wiring/values.d.ts.map +0 -1
  265. package/dist/recording/wiring/values.js +0 -49
  266. package/dist/recording/wiring/values.js.map +0 -1
  267. package/dist/tracking/build-rehydrate-items.d.ts +0 -15
  268. package/dist/tracking/build-rehydrate-items.d.ts.map +0 -1
  269. package/dist/tracking/build-rehydrate-items.js +0 -19
  270. package/dist/tracking/build-rehydrate-items.js.map +0 -1
  271. package/dist/tracking/constants.d.ts +0 -24
  272. package/dist/tracking/constants.d.ts.map +0 -1
  273. package/dist/tracking/constants.js +0 -52
  274. package/dist/tracking/constants.js.map +0 -1
  275. package/dist/tracking/context.d.ts.map +0 -1
  276. package/dist/tracking/context.js.map +0 -1
  277. package/dist/tracking/index.d.ts +0 -16
  278. package/dist/tracking/index.d.ts.map +0 -1
  279. package/dist/tracking/index.js +0 -11
  280. package/dist/tracking/index.js.map +0 -1
  281. package/dist/tracking/plugin-event-tracker.d.ts +0 -13
  282. package/dist/tracking/plugin-event-tracker.d.ts.map +0 -1
  283. package/dist/tracking/plugin-event-tracker.js +0 -27
  284. package/dist/tracking/plugin-event-tracker.js.map +0 -1
  285. package/dist/tracking/position-id-registry.d.ts.map +0 -1
  286. package/dist/tracking/position-id-registry.js.map +0 -1
  287. package/dist/tracking/spans/constants.d.ts.map +0 -1
  288. package/dist/tracking/spans/constants.js.map +0 -1
  289. package/dist/tracking/spans/gen-ai.d.ts.map +0 -1
  290. package/dist/tracking/spans/gen-ai.js.map +0 -1
  291. package/dist/tracking/spans/index.d.ts.map +0 -1
  292. package/dist/tracking/spans/index.js.map +0 -1
  293. package/dist/tracking/spans/redact-pii.d.ts.map +0 -1
  294. package/dist/tracking/spans/redact-pii.js.map +0 -1
  295. package/dist/tracking/spans/sanitize-payload.d.ts.map +0 -1
  296. package/dist/tracking/spans/sanitize-payload.js.map +0 -1
  297. package/dist/tracking/spans/span-hooks.d.ts +0 -11
  298. package/dist/tracking/spans/span-hooks.d.ts.map +0 -1
  299. package/dist/tracking/spans/span-hooks.js.map +0 -1
  300. package/dist/tracking/tracker.d.ts +0 -30
  301. package/dist/tracking/tracker.d.ts.map +0 -1
  302. package/dist/tracking/tracker.js +0 -66
  303. package/dist/tracking/tracker.js.map +0 -1
  304. package/dist/tracking/tracking-handler.d.ts +0 -12
  305. package/dist/tracking/tracking-handler.d.ts.map +0 -1
  306. package/dist/tracking/tracking-handler.js +0 -148
  307. package/dist/tracking/tracking-handler.js.map +0 -1
  308. package/dist/tracking/transport.d.ts +0 -35
  309. package/dist/tracking/transport.d.ts.map +0 -1
  310. package/dist/tracking/transport.js +0 -133
  311. package/dist/tracking/transport.js.map +0 -1
  312. package/dist/tracking/types.d.ts +0 -21
  313. package/dist/tracking/types.d.ts.map +0 -1
  314. package/dist/tracking/types.js +0 -6
  315. package/dist/tracking/types.js.map +0 -1
  316. /package/dist/{tracking → telemetry}/spans/constants.d.ts +0 -0
  317. /package/dist/{tracking → telemetry}/spans/constants.js +0 -0
  318. /package/dist/{tracking → telemetry}/spans/index.d.ts +0 -0
  319. /package/dist/{tracking → telemetry}/spans/index.js +0 -0
  320. /package/dist/{tracking → telemetry}/spans/redact-pii.d.ts +0 -0
  321. /package/dist/{tracking → telemetry}/spans/sanitize-payload.d.ts +0 -0
  322. /package/dist/{tracking → telemetry}/spans/sanitize-payload.js +0 -0
@@ -5,7 +5,7 @@ import type { SenpiClient } from "../../senpi/client.js";
5
5
  import type { SenpiEventBus } from "../events/index.js";
6
6
  import type { StrategyState } from "../../types/strategy.js";
7
7
  import type { StateManager } from "../../state/index.js";
8
- import type { IdentityEnvelope } from "../../recording/identity.js";
8
+ import type { IdentityEnvelope } from "../../telemetry/identity.js";
9
9
  import type { PositionOpenedEvent } from "../../types/dsl/index.js";
10
10
  export interface PriceMonitorOptions {
11
11
  stateManager: StateManager;
@@ -1 +1 @@
1
- {"version":3,"file":"create-monitor.d.ts","sourceRoot":"","sources":["../../../src/dsl/monitor/create-monitor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAWpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAMpE,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,YAAY,CAAC;IAC3B,6FAA6F;IAC7F,WAAW,EAAE,WAAW,CAAC;IACzB,GAAG,EAAE,aAAa,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC3C,uBAAuB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACnD,6DAA6D;IAC7D,cAAc,CAAC,EAAE,OAAO,sBAAsB,EAAE,cAAc,CAAC;IAC/D,oDAAoD;IACpD,wBAAwB,CAAC,EAAE,OAAO,sBAAsB,EAAE,wBAAwB,CAAC;IACnF;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE;QACjB,aAAa,CAAC,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACrD,cAAc,CAAC,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KACvD,CAAC;IACF,iGAAiG;IACjG,kBAAkB,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC7D,gGAAgG;IAChG,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;IAClC,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,MAAM,gBAAgB,CAAC;CACnC;AAMD,wBAAgB,6CAA6C,CAC3D,OAAO,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC,GAChD,MAAM,EAAE,CAIV;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG;IAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAoR9F"}
1
+ {"version":3,"file":"create-monitor.d.ts","sourceRoot":"","sources":["../../../src/dsl/monitor/create-monitor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAWpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAMpE,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,YAAY,CAAC;IAC3B,6FAA6F;IAC7F,WAAW,EAAE,WAAW,CAAC;IACzB,GAAG,EAAE,aAAa,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC3C,uBAAuB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACnD,6DAA6D;IAC7D,cAAc,CAAC,EAAE,OAAO,sBAAsB,EAAE,cAAc,CAAC;IAC/D,oDAAoD;IACpD,wBAAwB,CAAC,EAAE,OAAO,sBAAsB,EAAE,wBAAwB,CAAC;IACnF;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE;QACjB,aAAa,CAAC,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACrD,cAAc,CAAC,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KACvD,CAAC;IACF,iGAAiG;IACjG,kBAAkB,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC7D,gGAAgG;IAChG,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;IAClC,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,MAAM,gBAAgB,CAAC;CACnC;AAMD,wBAAgB,6CAA6C,CAC3D,OAAO,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC,GAChD,MAAM,EAAE,CAIV;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG;IAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAsP9F"}
@@ -166,7 +166,6 @@ export function createPriceMonitor(options) {
166
166
  byDex: Object.fromEntries([...byDex].map(([d, arr]) => [d || "main", arr.map((p) => `${p.address}:${p.asset}`)])),
167
167
  });
168
168
  // Two fixed calls: main dex ("") and xyz ("xyz"). Omit assets to fetch all asset prices for each dex.
169
- const pricesStartedAt = Date.now();
170
169
  const pricesByDex = new Map();
171
170
  const dexesToFetch = ["", "xyz"];
172
171
  // Start the fetches inside the span so their HTTP client spans nest under dsl.prices.
@@ -190,7 +189,6 @@ export function createPriceMonitor(options) {
190
189
  });
191
190
  await Promise.all(dexFetchPromises);
192
191
  });
193
- const pricesEndedAt = Date.now();
194
192
  const positionsToProcess = [...byDex.values()].flat();
195
193
  const priceSampleForPositions = positionsToProcess.length > 0
196
194
  ? Object.fromEntries(positionsToProcess
@@ -228,26 +226,12 @@ export function createPriceMonitor(options) {
228
226
  if (!state?.active)
229
227
  return;
230
228
  const price = marketPriceForAsset(pricesByDex.get(effectiveDex(state)), state.asset);
231
- const positionStartedAt = Date.now();
232
229
  await withSpan("dsl.position", {
233
230
  "senpi.tick.id": tickId,
234
231
  "senpi.position.id": String(state.positionId ?? state.correlationId),
235
232
  "senpi.signal.asset": state.asset,
236
233
  "senpi.signal.direction": state.direction,
237
234
  }, (span) => processOnePosition(ctx, key, state, price, span));
238
- // Telemetry-only fire-and-forget: this position's processing window for the dsl.position
239
- // span. Positions run in parallel, so windows may overlap — that is the honest shape.
240
- bus.emit("tracking.dsl_position", {
241
- tickId,
242
- key,
243
- address,
244
- asset: state.asset,
245
- dex: effectiveDex(state),
246
- positionId: state.positionId ?? state.correlationId,
247
- startedAt: positionStartedAt,
248
- endedAt: Date.now(),
249
- timestamp: isoNow(),
250
- });
251
235
  });
252
236
  await Promise.all(positionPromises);
253
237
  });
@@ -260,20 +244,6 @@ export function createPriceMonitor(options) {
260
244
  durationMs: tickDurationMs,
261
245
  positionsProcessed: positionsToProcess.length,
262
246
  });
263
- // Telemetry-only fire-and-forget: the tick's work window for the dsl.tick root span. The
264
- // early-return paths above (clearinghouse unavailable/failed) deliberately emit nothing —
265
- // no work happened, and "didn't run" facts live in the logs.
266
- bus.emit("tracking.dsl_tick", {
267
- tickId,
268
- startedAt: tickStartMs,
269
- endedAt: Date.now(),
270
- pricesStartedAt,
271
- pricesEndedAt,
272
- strategyCount: addresses.length,
273
- activePositionCount: activePositions.length,
274
- positionsProcessed: positionsToProcess.length,
275
- timestamp: isoNow(),
276
- });
277
247
  }
278
248
  return { tick };
279
249
  }
@@ -1 +1 @@
1
- {"version":3,"file":"create-monitor.js","sourceRoot":"","sources":["../../../src/dsl/monitor/create-monitor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-monitor.js","sourceRoot":"","sources":["../../../src/dsl/monitor/create-monitor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Pure builders for the DSL exit-engine's failure-state events — degradation the monitor tracks but
3
+ * that previously surfaced only as a tick-span error or a `warn` log: an exchange SL push that threw
4
+ * ({@link buildSlSyncFailedEvent}), a position with no price past the stale threshold
5
+ * ({@link buildPriceFetchStaleEvent}), and a Phase-2 backend handoff that degraded
6
+ * ({@link buildHandoffFailedEvent}).
7
+ *
8
+ * Pure `(input) => EmittableEvent`; the monitor emits the result through `emitEvent`'s guard, so a
9
+ * throwing build or a telemetry failure can never disturb a tick. A thrown venue/backend error rides
10
+ * the event's `error` slot (exception semconv + `recordException` on the active span); an opaque
11
+ * declined-registration backend payload rides the `redact` slot. Identity (`senpi.strategy.*`) is
12
+ * stamped at emit time from the tick's async-context bag, as for the sibling `dsl.*` transition
13
+ * events, so it is not passed here.
14
+ */
15
+ import { EVENT_NAME } from "../../utils/event-catalog.js";
16
+ import type { EmittableEvent } from "../../actions/event-derivation.js";
17
+ /** The position the failed tick was managing — the id/asset/dex every DSL failure event carries. */
18
+ export interface DslFailureContext {
19
+ asset: string;
20
+ /** Venue/dex; omitted → not stamped (a single-venue position). */
21
+ dex?: string;
22
+ /** The cross-flow position id (`positionId ?? correlationId`); absent on a pre-id position. */
23
+ positionId?: string;
24
+ }
25
+ /** Which handoff step degraded — the discriminator on a `dsl.handoff_failed` event. */
26
+ export type HandoffFailure = "register" | "rollback" | "poll";
27
+ /** An exchange SL create/update (`editPosition`) threw — the stop the venue never received. */
28
+ export declare function buildSlSyncFailedEvent(ctx: DslFailureContext, failureCount: number, error: unknown): EmittableEvent<typeof EVENT_NAME.dslSlSyncFailed>;
29
+ /** No market price for `failureCount` consecutive ticks — the position can't be evaluated. */
30
+ export declare function buildPriceFetchStaleEvent(ctx: DslFailureContext, failureCount: number): EmittableEvent<typeof EVENT_NAME.dslPriceFetchStale>;
31
+ /**
32
+ * A Phase-2 backend handoff degraded. `register` left the handoff stuck pending (the backend declined
33
+ * or threw — a throw rides `error`); `rollback` reverted to local Phase 2 management (the backend lost
34
+ * our stop); `poll` failed to reach the backend while it owns the stop (rides `error`).
35
+ */
36
+ export declare function buildHandoffFailedEvent(ctx: DslFailureContext, opts: {
37
+ failure: HandoffFailure;
38
+ backendPositionId?: string;
39
+ error?: unknown;
40
+ redact?: Record<string, string>;
41
+ }): EmittableEvent<typeof EVENT_NAME.dslHandoffFailed>;
42
+ //# sourceMappingURL=dsl-failure-events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dsl-failure-events.d.ts","sourceRoot":"","sources":["../../../src/dsl/monitor/dsl-failure-events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,UAAU,EAA6B,MAAM,8BAA8B,CAAC;AACrF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAExE,oGAAoG;AACpG,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+FAA+F;IAC/F,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,uFAAuF;AACvF,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;AAe9D,+FAA+F;AAC/F,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,iBAAiB,EACtB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,OAAO,GACb,cAAc,CAAC,OAAO,UAAU,CAAC,eAAe,CAAC,CAWnD;AAED,8FAA8F;AAC9F,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,iBAAiB,EACtB,YAAY,EAAE,MAAM,GACnB,cAAc,CAAC,OAAO,UAAU,CAAC,kBAAkB,CAAC,CAUtD;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,iBAAiB,EACtB,IAAI,EAAE;IACJ,OAAO,EAAE,cAAc,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC,GACA,cAAc,CAAC,OAAO,UAAU,CAAC,gBAAgB,CAAC,CAmBpD"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Pure builders for the DSL exit-engine's failure-state events — degradation the monitor tracks but
3
+ * that previously surfaced only as a tick-span error or a `warn` log: an exchange SL push that threw
4
+ * ({@link buildSlSyncFailedEvent}), a position with no price past the stale threshold
5
+ * ({@link buildPriceFetchStaleEvent}), and a Phase-2 backend handoff that degraded
6
+ * ({@link buildHandoffFailedEvent}).
7
+ *
8
+ * Pure `(input) => EmittableEvent`; the monitor emits the result through `emitEvent`'s guard, so a
9
+ * throwing build or a telemetry failure can never disturb a tick. A thrown venue/backend error rides
10
+ * the event's `error` slot (exception semconv + `recordException` on the active span); an opaque
11
+ * declined-registration backend payload rides the `redact` slot. Identity (`senpi.strategy.*`) is
12
+ * stamped at emit time from the tick's async-context bag, as for the sibling `dsl.*` transition
13
+ * events, so it is not passed here.
14
+ */
15
+ import { EVENT_NAME, eventAttrs } from "../../utils/event-catalog.js";
16
+ /** The id/asset/dex attributes every DSL failure event carries. */
17
+ function baseAttrs(ctx) {
18
+ return {
19
+ "senpi.asset": ctx.asset,
20
+ "senpi.dex": ctx.dex || undefined,
21
+ "senpi.position.id": ctx.positionId,
22
+ };
23
+ }
24
+ /** An exchange SL create/update (`editPosition`) threw — the stop the venue never received. */
25
+ export function buildSlSyncFailedEvent(ctx, failureCount, error) {
26
+ return {
27
+ name: EVENT_NAME.dslSlSyncFailed,
28
+ level: "warn",
29
+ body: `Exchange SL sync failed for ${ctx.asset} (${failureCount} consecutive)`,
30
+ attributes: eventAttrs({
31
+ ...baseAttrs(ctx),
32
+ "senpi.dsl.sl_sync_failure_count": failureCount,
33
+ }),
34
+ error,
35
+ };
36
+ }
37
+ /** No market price for `failureCount` consecutive ticks — the position can't be evaluated. */
38
+ export function buildPriceFetchStaleEvent(ctx, failureCount) {
39
+ return {
40
+ name: EVENT_NAME.dslPriceFetchStale,
41
+ level: "warn",
42
+ body: `Sustained price-fetch failures for ${ctx.asset} (${failureCount} consecutive)`,
43
+ attributes: eventAttrs({
44
+ ...baseAttrs(ctx),
45
+ "senpi.dsl.fetch_failure_count": failureCount,
46
+ }),
47
+ };
48
+ }
49
+ /**
50
+ * A Phase-2 backend handoff degraded. `register` left the handoff stuck pending (the backend declined
51
+ * or threw — a throw rides `error`); `rollback` reverted to local Phase 2 management (the backend lost
52
+ * our stop); `poll` failed to reach the backend while it owns the stop (rides `error`).
53
+ */
54
+ export function buildHandoffFailedEvent(ctx, opts) {
55
+ const body = opts.failure === "rollback"
56
+ ? `Backend handoff lost for ${ctx.asset}, reverting to local Phase 2`
57
+ : opts.failure === "poll"
58
+ ? `Backend handoff poll failed for ${ctx.asset}`
59
+ : `Backend handoff registration failed for ${ctx.asset} (staying pending)`;
60
+ return {
61
+ name: EVENT_NAME.dslHandoffFailed,
62
+ level: "warn",
63
+ body,
64
+ attributes: eventAttrs({
65
+ ...baseAttrs(ctx),
66
+ "senpi.dsl.handoff_failure": opts.failure,
67
+ "senpi.dsl.backend_position_id": opts.backendPositionId,
68
+ }),
69
+ ...(opts.redact ? { redact: opts.redact } : {}),
70
+ ...(opts.error !== undefined ? { error: opts.error } : {}),
71
+ };
72
+ }
73
+ //# sourceMappingURL=dsl-failure-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dsl-failure-events.js","sourceRoot":"","sources":["../../../src/dsl/monitor/dsl-failure-events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAiB,MAAM,8BAA8B,CAAC;AAerF,mEAAmE;AACnE,SAAS,SAAS,CAAC,GAAsB;IAKvC,OAAO;QACL,aAAa,EAAE,GAAG,CAAC,KAAK;QACxB,WAAW,EAAE,GAAG,CAAC,GAAG,IAAI,SAAS;QACjC,mBAAmB,EAAE,GAAG,CAAC,UAAU;KACpC,CAAC;AACJ,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,sBAAsB,CACpC,GAAsB,EACtB,YAAoB,EACpB,KAAc;IAEd,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,eAAe;QAChC,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,+BAA+B,GAAG,CAAC,KAAK,KAAK,YAAY,eAAe;QAC9E,UAAU,EAAE,UAAU,CAA8C;YAClE,GAAG,SAAS,CAAC,GAAG,CAAC;YACjB,iCAAiC,EAAE,YAAY;SAChD,CAAC;QACF,KAAK;KACN,CAAC;AACJ,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,yBAAyB,CACvC,GAAsB,EACtB,YAAoB;IAEpB,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,kBAAkB;QACnC,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,sCAAsC,GAAG,CAAC,KAAK,KAAK,YAAY,eAAe;QACrF,UAAU,EAAE,UAAU,CAAiD;YACrE,GAAG,SAAS,CAAC,GAAG,CAAC;YACjB,+BAA+B,EAAE,YAAY;SAC9C,CAAC;KACH,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CACrC,GAAsB,EACtB,IAKC;IAED,MAAM,IAAI,GACR,IAAI,CAAC,OAAO,KAAK,UAAU;QACzB,CAAC,CAAC,4BAA4B,GAAG,CAAC,KAAK,8BAA8B;QACrE,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,MAAM;YACvB,CAAC,CAAC,mCAAmC,GAAG,CAAC,KAAK,EAAE;YAChD,CAAC,CAAC,2CAA2C,GAAG,CAAC,KAAK,oBAAoB,CAAC;IACjF,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,gBAAgB;QACjC,KAAK,EAAE,MAAM;QACb,IAAI;QACJ,UAAU,EAAE,UAAU,CAA+C;YACnE,GAAG,SAAS,CAAC,GAAG,CAAC;YACjB,2BAA2B,EAAE,IAAI,CAAC,OAAO;YACzC,+BAA+B,EAAE,IAAI,CAAC,iBAAiB;SACxD,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3D,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"process-one-position.d.ts","sourceRoot":"","sources":["../../../src/dsl/monitor/process-one-position.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAiBzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAgF/C,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC3C,GAAG,EAAE,aAAa,CAAC;IACnB,uBAAuB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACnD,6DAA6D;IAC7D,cAAc,CAAC,EAAE,OAAO,sBAAsB,EAAE,cAAc,CAAC;IAC/D,oDAAoD;IACpD,wBAAwB,CAAC,EAAE,OAAO,sBAAsB,EAAE,wBAAwB,CAAC;CACpF;AAED,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,qBAAqB,EAC1B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,IAAI,EAAE,IAAI,GACT,OAAO,CAAC,IAAI,CAAC,CAq2Bf"}
1
+ {"version":3,"file":"process-one-position.d.ts","sourceRoot":"","sources":["../../../src/dsl/monitor/process-one-position.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAmBzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AA+F/C,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC3C,GAAG,EAAE,aAAa,CAAC;IACnB,uBAAuB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACnD,6DAA6D;IAC7D,cAAc,CAAC,EAAE,OAAO,sBAAsB,EAAE,cAAc,CAAC;IAC/D,oDAAoD;IACpD,wBAAwB,CAAC,EAAE,OAAO,sBAAsB,EAAE,wBAAwB,CAAC;CACpF;AAED,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,qBAAqB,EAC1B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,IAAI,EAAE,IAAI,GACT,OAAO,CAAC,IAAI,CAAC,CAkvBf"}
@@ -6,12 +6,16 @@ import { CLOSE_REASON, MAX_CONSECUTIVE_CLOSE_FAILURES, DSL_EXTERNAL_RETRIES, DSL
6
6
  import { logger } from "../../utils/logger/dsl.js";
7
7
  import { withRetry } from "../../utils/retry.js";
8
8
  import { withSpan } from "../../telemetry/tracing.js";
9
+ import { errorTypeOf } from "../../telemetry/spans/gen-ai.js";
10
+ import { recordDslDegradation } from "../../telemetry/metrics.js";
9
11
  import { effectiveDex } from "./effective-dex.js";
10
12
  import { shouldSyncExchangeSl } from "./exchange-sync.js";
11
13
  import { mapTiersToEngineConfig, mapEnginePositionToStateFields, parseSlOrderId } from "../engine-client/config-mapping.js";
12
14
  import { mapBackendEventToBusEvent } from "../engine-client/event-mapping.js";
13
15
  import { buildDslClosedEventFromState } from "../events/build-closed-event.js";
14
16
  import { parseCloseFillDetail } from "../../senpi/client.js";
17
+ import { emitEvent } from "../../actions/event-derivation.js";
18
+ import { buildSlSyncFailedEvent, buildPriceFetchStaleEvent, buildHandoffFailedEvent, } from "./dsl-failure-events.js";
15
19
  /**
16
20
  * Re-read the key under its per-key lock; if it is still active, archive it and return true.
17
21
  * If a competing locked writer already archived/inactivated it, skip and return false (WARN).
@@ -61,10 +65,17 @@ async function setIfStillActive(stateManager, key, address, asset, buildNext, ct
61
65
  function closedEmitStamps(state, fill = {}) {
62
66
  return {
63
67
  __positionId: state.positionId ?? state.correlationId,
64
- __correlationId: state.correlationId,
65
68
  ...fill,
66
69
  };
67
70
  }
71
+ /** The position identity a DSL failure event pins onto its record. */
72
+ function failureContext(state) {
73
+ return {
74
+ asset: state.asset,
75
+ dex: state.dex || undefined,
76
+ positionId: state.positionId ?? state.correlationId,
77
+ };
78
+ }
68
79
  export async function processOnePosition(ctx, key, state, price, span) {
69
80
  const { tickId, ts, now: isoNow, stateManager, strategyStates, bus, isSlPlacementInProgress = () => false } = ctx;
70
81
  const strategy = strategyStates.get(state.address);
@@ -148,8 +159,6 @@ export async function processOnePosition(ctx, key, state, price, span) {
148
159
  reason: closeReasonToUse,
149
160
  attempt: next.consecutiveCloseFailures,
150
161
  });
151
- const closeStartedAt = Date.now();
152
- let closeAttemptEmitted = false;
153
162
  try {
154
163
  const closeResult = await withSpan("dsl.close_attempt", { "senpi.dsl.attempt": next.consecutiveCloseFailures }, () => withRetry(() => strategy.closePosition(state.asset, closeReasonToUse, state.dex || undefined, {
155
164
  orderType: ctx.closeOrderType,
@@ -160,21 +169,6 @@ export async function processOnePosition(ctx, key, state, price, span) {
160
169
  label: "closePosition (pendingClose)",
161
170
  onRetry: (attempt, remaining, err) => logger.warn("[dsl] closePosition retry", { asset: state.asset, attempt, remaining, err }),
162
171
  }));
163
- // Telemetry-only fire-and-forget: the venue-call window for the dsl.close_attempt span.
164
- bus.emit("tracking.dsl_close_attempt", {
165
- tickId,
166
- key,
167
- asset: state.asset,
168
- dex,
169
- positionId: state.positionId ?? state.correlationId,
170
- startedAt: closeStartedAt,
171
- endedAt: Date.now(),
172
- outcome: "ok",
173
- closeReason: closeReasonToUse,
174
- attempt: next.consecutiveCloseFailures,
175
- timestamp: isoNow(),
176
- });
177
- closeAttemptEmitted = true;
178
172
  span.setAttribute("senpi.dsl.close_reason", closeReasonToUse);
179
173
  const closeFill = parseCloseFillDetail(closeResult);
180
174
  logger.info("[dsl] closePosition succeeded, archiving (pendingClose)", {
@@ -203,25 +197,6 @@ export async function processOnePosition(ctx, key, state, price, span) {
203
197
  }
204
198
  catch (e) {
205
199
  logger.warn("closePosition retry failed", { asset: state.asset, err: e });
206
- // Telemetry-only fire-and-forget: the failed venue-call window (dsl.close_attempt, error).
207
- // Guarded: when the ok emit already fired, the venue call itself succeeded — a later
208
- // state-write throw must not be misattributed to the venue.
209
- if (!closeAttemptEmitted) {
210
- bus.emit("tracking.dsl_close_attempt", {
211
- tickId,
212
- key,
213
- asset: state.asset,
214
- dex,
215
- positionId: state.positionId ?? state.correlationId,
216
- startedAt: closeStartedAt,
217
- endedAt: Date.now(),
218
- outcome: "error",
219
- closeReason: closeReasonToUse,
220
- attempt: next.consecutiveCloseFailures,
221
- error: String(e),
222
- timestamp: isoNow(),
223
- });
224
- }
225
200
  next.lastError = String(e);
226
201
  next.lastErrorAt = ts;
227
202
  const crossedThreshold = (next.consecutiveCloseFailures ?? 0) >= MAX_CONSECUTIVE_CLOSE_FAILURES;
@@ -253,7 +228,6 @@ export async function processOnePosition(ctx, key, state, price, span) {
253
228
  attempt: next.consecutiveCloseFailures,
254
229
  triggerReason: state.triggerReason,
255
230
  __positionId: state.positionId ?? state.correlationId,
256
- __correlationId: state.correlationId,
257
231
  timestamp: isoNow(),
258
232
  });
259
233
  }
@@ -263,18 +237,23 @@ export async function processOnePosition(ctx, key, state, price, span) {
263
237
  if (price == null) {
264
238
  const next = { ...state, consecutiveFetchFailures: (state.consecutiveFetchFailures ?? 0) + 1 };
265
239
  next.tickCount = (state.tickCount ?? 0) + 1;
240
+ // Edge-triggered: fire once when the streak first reaches the stale threshold (the alertable
241
+ // transition); the per-tick info line below covers ongoing visibility. A `>=` test (not `===`)
242
+ // latched on the state so a counter rehydrated at/above the threshold mid-stall (post-restart)
243
+ // still fires once; the priced-tick re-arm below clears the latch for the next stall.
244
+ const shouldEmitStale = next.consecutiveFetchFailures >= DSL_PRICE_FETCH_FAILURE_WARN_THRESHOLD &&
245
+ !state.priceFetchStaleEmitted;
246
+ if (shouldEmitStale)
247
+ next.priceFetchStaleEmitted = true;
266
248
  await setIfStillActive(stateManager, key, state.address, state.asset, (current) => ({
267
249
  ...current,
268
250
  consecutiveFetchFailures: (current.consecutiveFetchFailures ?? 0) + 1,
269
251
  tickCount: (current.tickCount ?? 0) + 1,
252
+ ...(shouldEmitStale ? { priceFetchStaleEmitted: true } : {}),
270
253
  }), { tickId, skipMessage: "[dsl] skip no-price counter write: state already cleared (concurrent close)" });
271
- if (next.consecutiveFetchFailures >= DSL_PRICE_FETCH_FAILURE_WARN_THRESHOLD) {
272
- logger.warn("[dsl] sustained price fetch failures for position", {
273
- tickId,
274
- key,
275
- asset: state.asset,
276
- consecutiveFetchFailures: next.consecutiveFetchFailures,
277
- });
254
+ if (shouldEmitStale) {
255
+ emitEvent(logger, () => buildPriceFetchStaleEvent(failureContext(state), next.consecutiveFetchFailures));
256
+ recordDslDegradation({ failure: "price_stale" });
278
257
  }
279
258
  logger.info("[dsl] monitor no price for position, skipping dslTick", {
280
259
  tickId,
@@ -306,6 +285,8 @@ export async function processOnePosition(ctx, key, state, price, span) {
306
285
  }
307
286
  const next = { ...result.state };
308
287
  next.consecutiveFetchFailures = 0;
288
+ // Re-arm the stale-event latch: the price is back, so the next stall fires a fresh event.
289
+ next.priceFetchStaleEmitted = false;
309
290
  next.tickCount = (state.tickCount ?? 0) + 1;
310
291
  next.lastError = null;
311
292
  next.lastErrorAt = null;
@@ -381,8 +362,6 @@ export async function processOnePosition(ctx, key, state, price, span) {
381
362
  }
382
363
  }
383
364
  let closeFill = {};
384
- const closeStartedAt = Date.now();
385
- let closeAttemptEmitted = false;
386
365
  try {
387
366
  const closeResult = await withSpan("dsl.close_attempt", { "senpi.dsl.attempt": (next.consecutiveCloseFailures ?? 0) + 1 }, () => withRetry(() => strategy.closePosition(state.asset, closeReasonToUse, state.dex || undefined, {
388
367
  orderType: ctx.closeOrderType,
@@ -393,22 +372,6 @@ export async function processOnePosition(ctx, key, state, price, span) {
393
372
  label: "closePosition (dsl breach/timeout)",
394
373
  onRetry: (attempt, remaining, err) => logger.warn("[dsl] closePosition retry", { asset: state.asset, attempt, remaining, err }),
395
374
  }));
396
- // Telemetry-only fire-and-forget: the venue-call window for the dsl.close_attempt span.
397
- // Emitted before any post-venue work (fill parsing) so its outcome reflects the venue call alone.
398
- bus.emit("tracking.dsl_close_attempt", {
399
- tickId,
400
- key,
401
- asset: state.asset,
402
- dex,
403
- positionId: state.positionId ?? state.correlationId,
404
- startedAt: closeStartedAt,
405
- endedAt: Date.now(),
406
- outcome: "ok",
407
- closeReason: closeReasonToUse,
408
- attempt: (next.consecutiveCloseFailures ?? 0) + 1,
409
- timestamp: isoNow(),
410
- });
411
- closeAttemptEmitted = true;
412
375
  closeFill = parseCloseFillDetail(closeResult);
413
376
  }
414
377
  catch (e) {
@@ -422,25 +385,6 @@ export async function processOnePosition(ctx, key, state, price, span) {
422
385
  lastErrorAt: ts,
423
386
  };
424
387
  span.addEvent("pendingClose_set", { attempt: pending.consecutiveCloseFailures });
425
- // Telemetry-only fire-and-forget: the failed venue-call window (dsl.close_attempt, error).
426
- // Guarded: when the ok emit already fired, the venue call itself succeeded — a later
427
- // post-venue throw must not be misattributed to the venue.
428
- if (!closeAttemptEmitted) {
429
- bus.emit("tracking.dsl_close_attempt", {
430
- tickId,
431
- key,
432
- asset: state.asset,
433
- dex,
434
- positionId: state.positionId ?? state.correlationId,
435
- startedAt: closeStartedAt,
436
- endedAt: Date.now(),
437
- outcome: "error",
438
- closeReason: closeReasonToUse,
439
- attempt: pending.consecutiveCloseFailures,
440
- error: String(e),
441
- timestamp: isoNow(),
442
- });
443
- }
444
388
  if ((pending.consecutiveCloseFailures ?? 0) >= MAX_CONSECUTIVE_CLOSE_FAILURES) {
445
389
  span.setAttribute("senpi.dsl.close_reason", CLOSE_REASON.CLOSE_POSITION_FAILED);
446
390
  const failedCloseState = { ...pending, active: false, closedAt: isoNow(), closeReason: CLOSE_REASON.CLOSE_POSITION_FAILED };
@@ -470,7 +414,6 @@ export async function processOnePosition(ctx, key, state, price, span) {
470
414
  attempt: pending.consecutiveCloseFailures,
471
415
  triggerReason: state.triggerReason,
472
416
  __positionId: state.positionId ?? state.correlationId,
473
- __correlationId: state.correlationId,
474
417
  timestamp: isoNow(),
475
418
  });
476
419
  }
@@ -519,7 +462,6 @@ export async function processOnePosition(ctx, key, state, price, span) {
519
462
  newFloorPrice: dslEffectiveFloor,
520
463
  triggerReason: next.triggerReason,
521
464
  __positionId: next.positionId ?? next.correlationId,
522
- __correlationId: next.correlationId,
523
465
  timestamp: ts,
524
466
  direction: next.direction,
525
467
  entryPrice: next.entryPrice,
@@ -550,7 +492,6 @@ export async function processOnePosition(ctx, key, state, price, span) {
550
492
  tierIndex: result.newTierIndex ?? 0,
551
493
  triggerReason: next.triggerReason,
552
494
  __positionId: next.positionId ?? next.correlationId,
553
- __correlationId: next.correlationId,
554
495
  timestamp: ts,
555
496
  });
556
497
  }
@@ -616,8 +557,6 @@ export async function processOnePosition(ctx, key, state, price, span) {
616
557
  phaseChanged: result.phaseChanged,
617
558
  prevSlOrderId: next.slOrderId,
618
559
  });
619
- const slSyncStartedAt = Date.now();
620
- let slUpdateEmitted = false;
621
560
  try {
622
561
  const res = await withSpan("dsl.sl_update", {}, async (slSpan) => {
623
562
  const r = await withRetry(() => strategy.editPosition({
@@ -634,26 +573,6 @@ export async function processOnePosition(ctx, key, state, price, span) {
634
573
  slSpan.setAttribute("senpi.order.id", String(r.slOrderId));
635
574
  return r;
636
575
  });
637
- const slSyncEndedAt = Date.now();
638
- // Telemetry-only fire-and-forget: the venue-call window for the dsl.sl_update span. Emitted
639
- // immediately after the venue call resolves — before any state read/write — so it fires even
640
- // when a concurrent close returns early below, and reports the venue's own answer
641
- // (`res.slOrderId`), the honest venue-call fact.
642
- bus.emit("tracking.dsl_sl_update", {
643
- tickId,
644
- key,
645
- asset: state.asset,
646
- dex,
647
- positionId: state.positionId ?? state.correlationId,
648
- startedAt: slSyncStartedAt,
649
- endedAt: slSyncEndedAt,
650
- outcome: "ok",
651
- newSLPrice: exchangeTriggerPx,
652
- slOrderId: res.slOrderId,
653
- syncReason,
654
- timestamp: isoNow(),
655
- });
656
- slUpdateEmitted = true;
657
576
  let syncedForEmit = null;
658
577
  await setIfStillActive(stateManager, key, state.address, state.asset, (current) => {
659
578
  const synced = {
@@ -687,30 +606,10 @@ export async function processOnePosition(ctx, key, state, price, span) {
687
606
  slOrderId: synced.slOrderId ?? 0,
688
607
  triggerReason: synced.triggerReason,
689
608
  __positionId: synced.positionId ?? synced.correlationId,
690
- __correlationId: synced.correlationId,
691
609
  timestamp: ts,
692
610
  });
693
611
  }
694
612
  catch (e) {
695
- // Telemetry-only fire-and-forget: the failed venue-call window (dsl.sl_update, error).
696
- // Guarded: when the ok emit already fired, the venue call itself succeeded — a later
697
- // state-write throw must not be misattributed to the venue.
698
- if (!slUpdateEmitted) {
699
- bus.emit("tracking.dsl_sl_update", {
700
- tickId,
701
- key,
702
- asset: state.asset,
703
- dex,
704
- positionId: state.positionId ?? state.correlationId,
705
- startedAt: slSyncStartedAt,
706
- endedAt: Date.now(),
707
- outcome: "error",
708
- newSLPrice: exchangeTriggerPx,
709
- syncReason,
710
- error: String(e),
711
- timestamp: isoNow(),
712
- });
713
- }
714
613
  let syncFailureCount = null;
715
614
  await setIfStillActive(stateManager, key, state.address, state.asset, (current) => {
716
615
  syncFailureCount = (current.slSyncFailureCount ?? 0) + 1;
@@ -724,14 +623,8 @@ export async function processOnePosition(ctx, key, state, price, span) {
724
623
  }, { tickId, skipMessage: "[dsl] skip SL sync-failure write: state no longer active (concurrent close)" });
725
624
  if (syncFailureCount == null)
726
625
  return;
727
- logger.warn("[dsl] editPosition (SL update) failed", {
728
- tickId,
729
- asset: state.asset,
730
- exchangeTriggerPx,
731
- dslEffectiveFloor,
732
- slSyncFailureCount: syncFailureCount,
733
- err: e,
734
- });
626
+ emitEvent(logger, () => buildSlSyncFailedEvent(failureContext(state), syncFailureCount ?? 0, e));
627
+ recordDslDegradation({ failure: "sl_sync", errorType: errorTypeOf(e) });
735
628
  }
736
629
  }
737
630
  const hbState = await stateManager.getOrLoad(key);
@@ -764,7 +657,6 @@ export async function processOnePosition(ctx, key, state, price, span) {
764
657
  elapsedMinutes: hbState.elapsedMinutes,
765
658
  triggerReason: hbState.triggerReason,
766
659
  __positionId: hbState.positionId ?? hbState.correlationId,
767
- __correlationId: hbState.correlationId,
768
660
  margin: hbState.leverage > 0
769
661
  ? (hbState.size * hbState.entryPrice) / hbState.leverage
770
662
  : 0,
@@ -896,19 +788,16 @@ async function attemptHandoffRegistration(ctx, key, next, _original, strategy) {
896
788
  });
897
789
  }
898
790
  else {
899
- logger.warn("[dsl] addDslPosition returned success=false, staying pending", {
900
- tickId,
901
- asset: next.asset,
902
- rawResult: JSON.stringify(result).slice(0, 800),
903
- });
791
+ emitEvent(logger, () => buildHandoffFailedEvent(failureContext(next), {
792
+ failure: "register",
793
+ redact: { result: JSON.stringify(result).slice(0, 800) },
794
+ }));
795
+ recordDslDegradation({ failure: "handoff", handoffFailure: "register" });
904
796
  }
905
797
  }
906
798
  catch (e) {
907
- logger.warn("[dsl] addDslPosition failed, staying pending (will retry next tick)", {
908
- tickId,
909
- asset: next.asset,
910
- err: e,
911
- });
799
+ emitEvent(logger, () => buildHandoffFailedEvent(failureContext(next), { failure: "register", error: e }));
800
+ recordDslDegradation({ failure: "handoff", handoffFailure: "register", errorType: errorTypeOf(e) });
912
801
  }
913
802
  }
914
803
  async function handleHandoffOk(ctx, key, next, original, strategy, span) {
@@ -930,13 +819,11 @@ async function handleHandoffOk(ctx, key, next, original, strategy, span) {
930
819
  ? positions.filter((p) => !BACKEND_TERMINAL_STATUSES.has(p.status))[0]
931
820
  : null;
932
821
  if (!backendPos) {
933
- logger.warn("[dsl] handoff ok but matching backend position not found, reverting to local Phase 2", {
934
- tickId,
935
- key,
936
- asset: original.asset,
937
- backendDslPositionId: next.backendDslPositionId,
938
- returnedIds: positions.map((p) => p.id),
939
- });
822
+ emitEvent(logger, () => buildHandoffFailedEvent(failureContext(original), {
823
+ failure: "rollback",
824
+ backendPositionId: next.backendDslPositionId ?? undefined,
825
+ }));
826
+ recordDslDegradation({ failure: "handoff", handoffFailure: "rollback" });
940
827
  const rolledBack = {
941
828
  ...updated,
942
829
  handoffStatus: null,
@@ -987,11 +874,12 @@ async function handleHandoffOk(ctx, key, next, original, strategy, span) {
987
874
  }
988
875
  }
989
876
  catch (e) {
990
- logger.warn("[dsl] queryPositions failed during handoff poll", {
991
- tickId,
992
- asset: original.asset,
993
- err: e,
994
- });
877
+ emitEvent(logger, () => buildHandoffFailedEvent(failureContext(original), {
878
+ failure: "poll",
879
+ backendPositionId: next.backendDslPositionId ?? undefined,
880
+ error: e,
881
+ }));
882
+ recordDslDegradation({ failure: "handoff", handoffFailure: "poll", errorType: errorTypeOf(e) });
995
883
  }
996
884
  try {
997
885
  // ASC ordering is required: the cursor advances to the LAST element of the array