@senpi/runtime 3.0.117 → 3.0.122

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 (321) hide show
  1. package/README.md +16 -0
  2. package/dist/actions/action-events.d.ts +7 -21
  3. package/dist/actions/action-events.d.ts.map +1 -1
  4. package/dist/actions/action-events.js +26 -54
  5. package/dist/actions/action-events.js.map +1 -1
  6. package/dist/actions/action-runtime-module.d.ts.map +1 -1
  7. package/dist/actions/action-runtime-module.js +7 -38
  8. package/dist/actions/action-runtime-module.js.map +1 -1
  9. package/dist/actions/close-position/close-position.action.d.ts.map +1 -1
  10. package/dist/actions/close-position/close-position.action.js +15 -122
  11. package/dist/actions/close-position/close-position.action.js.map +1 -1
  12. package/dist/actions/decision-engine.d.ts.map +1 -1
  13. package/dist/actions/decision-engine.js +2 -15
  14. package/dist/actions/decision-engine.js.map +1 -1
  15. package/dist/actions/event-derivation.d.ts +2 -71
  16. package/dist/actions/event-derivation.d.ts.map +1 -1
  17. package/dist/actions/event-derivation.js +8 -251
  18. package/dist/actions/event-derivation.js.map +1 -1
  19. package/dist/actions/open-position/open-position.action.d.ts +2 -17
  20. package/dist/actions/open-position/open-position.action.d.ts.map +1 -1
  21. package/dist/actions/open-position/open-position.action.js +56 -162
  22. package/dist/actions/open-position/open-position.action.js.map +1 -1
  23. package/dist/actions/position-tracker/position-tracker.action.d.ts +1 -2
  24. package/dist/actions/position-tracker/position-tracker.action.d.ts.map +1 -1
  25. package/dist/actions/position-tracker/position-tracker.action.js +17 -62
  26. package/dist/actions/position-tracker/position-tracker.action.js.map +1 -1
  27. package/dist/actions/store/types.d.ts +2 -9
  28. package/dist/actions/store/types.d.ts.map +1 -1
  29. package/dist/actions/store/types.js.map +1 -1
  30. package/dist/actions/types.d.ts +0 -13
  31. package/dist/actions/types.d.ts.map +1 -1
  32. package/dist/actions/types.js +0 -13
  33. package/dist/actions/types.js.map +1 -1
  34. package/dist/cli/guide-commands.d.ts.map +1 -1
  35. package/dist/cli/guide-commands.js +16 -11
  36. package/dist/cli/guide-commands.js.map +1 -1
  37. package/dist/cli/senpi-commands.d.ts.map +1 -1
  38. package/dist/cli/senpi-commands.js +18 -7
  39. package/dist/cli/senpi-commands.js.map +1 -1
  40. package/dist/constants/dsl/index.d.ts +17 -6
  41. package/dist/constants/dsl/index.d.ts.map +1 -1
  42. package/dist/constants/dsl/index.js +17 -6
  43. package/dist/constants/dsl/index.js.map +1 -1
  44. package/dist/dsl/engine/floors.d.ts +25 -1
  45. package/dist/dsl/engine/floors.d.ts.map +1 -1
  46. package/dist/dsl/engine/floors.js +38 -6
  47. package/dist/dsl/engine/floors.js.map +1 -1
  48. package/dist/dsl/engine/index.d.ts +1 -1
  49. package/dist/dsl/engine/index.d.ts.map +1 -1
  50. package/dist/dsl/engine/index.js +1 -1
  51. package/dist/dsl/engine/index.js.map +1 -1
  52. package/dist/dsl/engine/round.d.ts +22 -2
  53. package/dist/dsl/engine/round.d.ts.map +1 -1
  54. package/dist/dsl/engine/round.js +78 -5
  55. package/dist/dsl/engine/round.js.map +1 -1
  56. package/dist/dsl/engine/tick.d.ts.map +1 -1
  57. package/dist/dsl/engine/tick.js +31 -16
  58. package/dist/dsl/engine/tick.js.map +1 -1
  59. package/dist/dsl/engine-client/event-mapping.d.ts.map +1 -1
  60. package/dist/dsl/engine-client/event-mapping.js +0 -14
  61. package/dist/dsl/engine-client/event-mapping.js.map +1 -1
  62. package/dist/dsl/events/build-closed-event.d.ts +1 -16
  63. package/dist/dsl/events/build-closed-event.d.ts.map +1 -1
  64. package/dist/dsl/events/build-closed-event.js +0 -6
  65. package/dist/dsl/events/build-closed-event.js.map +1 -1
  66. package/dist/dsl/events/handlers.d.ts +0 -7
  67. package/dist/dsl/events/handlers.d.ts.map +1 -1
  68. package/dist/dsl/events/handlers.js +7 -37
  69. package/dist/dsl/events/handlers.js.map +1 -1
  70. package/dist/dsl/events/initial-state.d.ts +1 -1
  71. package/dist/dsl/events/initial-state.d.ts.map +1 -1
  72. package/dist/dsl/events/initial-state.js +4 -7
  73. package/dist/dsl/events/initial-state.js.map +1 -1
  74. package/dist/dsl/monitor/create-monitor.d.ts +2 -6
  75. package/dist/dsl/monitor/create-monitor.d.ts.map +1 -1
  76. package/dist/dsl/monitor/create-monitor.js +9 -15
  77. package/dist/dsl/monitor/create-monitor.js.map +1 -1
  78. package/dist/dsl/monitor/dsl-failure-events.d.ts +0 -2
  79. package/dist/dsl/monitor/dsl-failure-events.d.ts.map +1 -1
  80. package/dist/dsl/monitor/dsl-failure-events.js +1 -2
  81. package/dist/dsl/monitor/dsl-failure-events.js.map +1 -1
  82. package/dist/dsl/monitor/exchange-sync.d.ts +8 -3
  83. package/dist/dsl/monitor/exchange-sync.d.ts.map +1 -1
  84. package/dist/dsl/monitor/exchange-sync.js +16 -4
  85. package/dist/dsl/monitor/exchange-sync.js.map +1 -1
  86. package/dist/dsl/monitor/process-one-position.d.ts +0 -1
  87. package/dist/dsl/monitor/process-one-position.d.ts.map +1 -1
  88. package/dist/dsl/monitor/process-one-position.js +113 -62
  89. package/dist/dsl/monitor/process-one-position.js.map +1 -1
  90. package/dist/dsl/plugin/index.d.ts +10 -12
  91. package/dist/dsl/plugin/index.d.ts.map +1 -1
  92. package/dist/dsl/plugin/index.js +14 -12
  93. package/dist/dsl/plugin/index.js.map +1 -1
  94. package/dist/health/types.d.ts +0 -13
  95. package/dist/health/types.d.ts.map +1 -1
  96. package/dist/health/types.js +0 -12
  97. package/dist/health/types.js.map +1 -1
  98. package/dist/index.d.ts +4 -27
  99. package/dist/index.d.ts.map +1 -1
  100. package/dist/index.js +206 -257
  101. package/dist/index.js.map +1 -1
  102. package/dist/runtime/action-registry.d.ts.map +1 -1
  103. package/dist/runtime/action-registry.js +3 -4
  104. package/dist/runtime/action-registry.js.map +1 -1
  105. package/dist/runtime/auto-update/coordinator.d.ts +16 -0
  106. package/dist/runtime/auto-update/coordinator.d.ts.map +1 -1
  107. package/dist/runtime/auto-update/coordinator.js +129 -13
  108. package/dist/runtime/auto-update/coordinator.js.map +1 -1
  109. package/dist/runtime/auto-update/run-update-command.d.ts.map +1 -1
  110. package/dist/runtime/auto-update/run-update-command.js +18 -14
  111. package/dist/runtime/auto-update/run-update-command.js.map +1 -1
  112. package/dist/runtime/auto-update/types.d.ts +17 -1
  113. package/dist/runtime/auto-update/types.d.ts.map +1 -1
  114. package/dist/runtime/auto-update/types.js +11 -0
  115. package/dist/runtime/auto-update/types.js.map +1 -1
  116. package/dist/runtime/boot-skip.d.ts +73 -0
  117. package/dist/runtime/boot-skip.d.ts.map +1 -0
  118. package/dist/runtime/boot-skip.js +113 -0
  119. package/dist/runtime/boot-skip.js.map +1 -0
  120. package/dist/runtime/create-runtime-context.d.ts +2 -0
  121. package/dist/runtime/create-runtime-context.d.ts.map +1 -1
  122. package/dist/runtime/create-runtime-context.js +1 -0
  123. package/dist/runtime/create-runtime-context.js.map +1 -1
  124. package/dist/runtime/domain-events.d.ts.map +1 -1
  125. package/dist/runtime/domain-events.js +0 -7
  126. package/dist/runtime/domain-events.js.map +1 -1
  127. package/dist/runtime/lifecycle-events.d.ts +43 -10
  128. package/dist/runtime/lifecycle-events.d.ts.map +1 -1
  129. package/dist/runtime/lifecycle-events.js +83 -12
  130. package/dist/runtime/lifecycle-events.js.map +1 -1
  131. package/dist/runtime/lifecycle-reaper.d.ts +202 -0
  132. package/dist/runtime/lifecycle-reaper.d.ts.map +1 -0
  133. package/dist/runtime/lifecycle-reaper.js +390 -0
  134. package/dist/runtime/lifecycle-reaper.js.map +1 -0
  135. package/dist/runtime/reconcile-run.d.ts +3 -13
  136. package/dist/runtime/reconcile-run.d.ts.map +1 -1
  137. package/dist/runtime/reconcile-run.js +3 -4
  138. package/dist/runtime/reconcile-run.js.map +1 -1
  139. package/dist/runtime/reconcile-state.d.ts +0 -8
  140. package/dist/runtime/reconcile-state.d.ts.map +1 -1
  141. package/dist/runtime/reconcile-state.js +1 -4
  142. package/dist/runtime/reconcile-state.js.map +1 -1
  143. package/dist/runtime/run.d.ts +5 -1
  144. package/dist/runtime/run.d.ts.map +1 -1
  145. package/dist/runtime/run.js +1 -0
  146. package/dist/runtime/run.js.map +1 -1
  147. package/dist/runtime/runtime-schema.js +3 -3
  148. package/dist/runtime/runtime-schema.js.map +1 -1
  149. package/dist/runtime/runtime.d.ts +2 -1
  150. package/dist/runtime/runtime.d.ts.map +1 -1
  151. package/dist/runtime/runtime.js +4 -27
  152. package/dist/runtime/runtime.js.map +1 -1
  153. package/dist/runtime/supervisor/long-running-supervisor.d.ts +0 -13
  154. package/dist/runtime/supervisor/long-running-supervisor.d.ts.map +1 -1
  155. package/dist/runtime/supervisor/long-running-supervisor.js +0 -1
  156. package/dist/runtime/supervisor/long-running-supervisor.js.map +1 -1
  157. package/dist/runtime/update-apply-deps.d.ts +23 -2
  158. package/dist/runtime/update-apply-deps.d.ts.map +1 -1
  159. package/dist/runtime/update-apply-deps.js +11 -5
  160. package/dist/runtime/update-apply-deps.js.map +1 -1
  161. package/dist/runtime/validate-dsl-position-tracking.d.ts.map +1 -1
  162. package/dist/runtime/validate-dsl-position-tracking.js +1 -2
  163. package/dist/runtime/validate-dsl-position-tracking.js.map +1 -1
  164. package/dist/runtime-api/handlers/ingest-signals.d.ts.map +1 -1
  165. package/dist/runtime-api/handlers/ingest-signals.js +0 -1
  166. package/dist/runtime-api/handlers/ingest-signals.js.map +1 -1
  167. package/dist/runtime-api/handlers/types.d.ts +0 -5
  168. package/dist/runtime-api/handlers/types.d.ts.map +1 -1
  169. package/dist/runtime-api/intake/intake-events.d.ts +1 -1
  170. package/dist/runtime-api/intake/intake-events.d.ts.map +1 -1
  171. package/dist/runtime-api/intake/intake-events.js +3 -9
  172. package/dist/runtime-api/intake/intake-events.js.map +1 -1
  173. package/dist/runtime-api/intake/intake-mount.d.ts.map +1 -1
  174. package/dist/runtime-api/intake/intake-mount.js +19 -4
  175. package/dist/runtime-api/intake/intake-mount.js.map +1 -1
  176. package/dist/runtime-api/intake/process-error-post.d.ts +1 -6
  177. package/dist/runtime-api/intake/process-error-post.d.ts.map +1 -1
  178. package/dist/runtime-api/intake/process-error-post.js +1 -5
  179. package/dist/runtime-api/intake/process-error-post.js.map +1 -1
  180. package/dist/runtime-api/intake/process-signal-post.d.ts +1 -7
  181. package/dist/runtime-api/intake/process-signal-post.d.ts.map +1 -1
  182. package/dist/runtime-api/intake/process-signal-post.js +0 -5
  183. package/dist/runtime-api/intake/process-signal-post.js.map +1 -1
  184. package/dist/runtime-api/intake/scaffold-error-router.js.map +1 -1
  185. package/dist/runtime-api/intake/scanner-launcher.d.ts.map +1 -1
  186. package/dist/runtime-api/intake/scanner-launcher.js +0 -15
  187. package/dist/runtime-api/intake/scanner-launcher.js.map +1 -1
  188. package/dist/runtime-api/intake/types.d.ts +0 -55
  189. package/dist/runtime-api/intake/types.d.ts.map +1 -1
  190. package/dist/runtime-api/routes/signals.d.ts +0 -2
  191. package/dist/runtime-api/routes/signals.d.ts.map +1 -1
  192. package/dist/runtime-api/routes/signals.js +1 -5
  193. package/dist/runtime-api/routes/signals.js.map +1 -1
  194. package/dist/runtime-api/routes/signals.schema.d.ts +0 -43
  195. package/dist/runtime-api/routes/signals.schema.d.ts.map +1 -1
  196. package/dist/runtime-api/routes/signals.schema.js +0 -43
  197. package/dist/runtime-api/routes/signals.schema.js.map +1 -1
  198. package/dist/runtime-api/server.d.ts +1 -7
  199. package/dist/runtime-api/server.d.ts.map +1 -1
  200. package/dist/runtime-api/server.js +0 -1
  201. package/dist/runtime-api/server.js.map +1 -1
  202. package/dist/scanners/engine/engine.d.ts +1 -22
  203. package/dist/scanners/engine/engine.d.ts.map +1 -1
  204. package/dist/scanners/engine/engine.js +11 -78
  205. package/dist/scanners/engine/engine.js.map +1 -1
  206. package/dist/scanners/engine/lifecycle.d.ts +1 -7
  207. package/dist/scanners/engine/lifecycle.d.ts.map +1 -1
  208. package/dist/scanners/events.d.ts +0 -4
  209. package/dist/scanners/events.d.ts.map +1 -1
  210. package/dist/scanners/events.js +0 -2
  211. package/dist/scanners/events.js.map +1 -1
  212. package/dist/scanners/external/scaffold/delivery.py +25 -194
  213. package/dist/scanners/external/scaffold/scaffold.py +31 -172
  214. package/dist/scanners/external/scaffold/senpi_mcp.py +8 -150
  215. package/dist/scanners/external-scanner-receiver.d.ts +0 -17
  216. package/dist/scanners/external-scanner-receiver.d.ts.map +1 -1
  217. package/dist/scanners/external-scanner-receiver.js +0 -8
  218. package/dist/scanners/external-scanner-receiver.js.map +1 -1
  219. package/dist/scanners/runtime-module.d.ts +0 -1
  220. package/dist/scanners/runtime-module.d.ts.map +1 -1
  221. package/dist/scanners/runtime-module.js +9 -66
  222. package/dist/scanners/runtime-module.js.map +1 -1
  223. package/dist/skills-manager/manifest.d.ts.map +1 -1
  224. package/dist/skills-manager/manifest.js +1 -0
  225. package/dist/skills-manager/manifest.js.map +1 -1
  226. package/dist/skills-manager/skills-manifest.json +1 -0
  227. package/dist/telemetry/attributes.d.ts +0 -20
  228. package/dist/telemetry/attributes.d.ts.map +1 -1
  229. package/dist/telemetry/attributes.js +0 -24
  230. package/dist/telemetry/attributes.js.map +1 -1
  231. package/dist/telemetry/event-builders.d.ts +6 -81
  232. package/dist/telemetry/event-builders.d.ts.map +1 -1
  233. package/dist/telemetry/event-builders.js +17 -141
  234. package/dist/telemetry/event-builders.js.map +1 -1
  235. package/dist/telemetry/event-store.d.ts +0 -6
  236. package/dist/telemetry/event-store.d.ts.map +1 -1
  237. package/dist/telemetry/event-store.js +8 -12
  238. package/dist/telemetry/event-store.js.map +1 -1
  239. package/dist/telemetry/metrics.d.ts +2 -14
  240. package/dist/telemetry/metrics.d.ts.map +1 -1
  241. package/dist/telemetry/metrics.js +4 -19
  242. package/dist/telemetry/metrics.js.map +1 -1
  243. package/dist/telemetry/spans/redact-pii.d.ts.map +1 -1
  244. package/dist/telemetry/spans/redact-pii.js +2 -18
  245. package/dist/telemetry/spans/redact-pii.js.map +1 -1
  246. package/dist/telemetry/tracing.d.ts +0 -9
  247. package/dist/telemetry/tracing.d.ts.map +1 -1
  248. package/dist/telemetry/tracing.js +0 -36
  249. package/dist/telemetry/tracing.js.map +1 -1
  250. package/dist/types/dsl/index.d.ts +1 -12
  251. package/dist/types/dsl/index.d.ts.map +1 -1
  252. package/dist/types/runtime.d.ts +8 -0
  253. package/dist/types/runtime.d.ts.map +1 -1
  254. package/dist/types/scanner.d.ts +0 -15
  255. package/dist/types/scanner.d.ts.map +1 -1
  256. package/dist/utils/event-catalog.d.ts +91 -166
  257. package/dist/utils/event-catalog.d.ts.map +1 -1
  258. package/dist/utils/event-catalog.js +13 -18
  259. package/dist/utils/event-catalog.js.map +1 -1
  260. package/dist/utils/keyed-mutex.d.ts +3 -2
  261. package/dist/utils/keyed-mutex.d.ts.map +1 -1
  262. package/dist/utils/keyed-mutex.js +3 -2
  263. package/dist/utils/keyed-mutex.js.map +1 -1
  264. package/dist/utils/logger.d.ts +1 -4
  265. package/dist/utils/logger.d.ts.map +1 -1
  266. package/dist/utils/logger.js.map +1 -1
  267. package/dist/validate/recipe-checks.d.ts.map +1 -1
  268. package/dist/validate/recipe-checks.js +2 -2
  269. package/dist/validate/recipe-checks.js.map +1 -1
  270. package/openclaw.plugin.json +5 -1
  271. package/package.json +1 -1
  272. package/dist/actions/skipped-signal-results.d.ts +0 -25
  273. package/dist/actions/skipped-signal-results.d.ts.map +0 -1
  274. package/dist/actions/skipped-signal-results.js +0 -71
  275. package/dist/actions/skipped-signal-results.js.map +0 -1
  276. package/dist/runtime-api/intake/ingest-request.d.ts +0 -17
  277. package/dist/runtime-api/intake/ingest-request.d.ts.map +0 -1
  278. package/dist/runtime-api/intake/ingest-request.js +0 -34
  279. package/dist/runtime-api/intake/ingest-request.js.map +0 -1
  280. package/dist/runtime-api/intake/scaffold-tick-router.d.ts +0 -39
  281. package/dist/runtime-api/intake/scaffold-tick-router.d.ts.map +0 -1
  282. package/dist/runtime-api/intake/scaffold-tick-router.js +0 -122
  283. package/dist/runtime-api/intake/scaffold-tick-router.js.map +0 -1
  284. package/dist/scanners/external/scaffold/tick_facts.py +0 -130
  285. package/dist/scanners/external/scaffold/ulid.py +0 -58
  286. package/dist/telemetry/live-telemetry.d.ts +0 -238
  287. package/dist/telemetry/live-telemetry.d.ts.map +0 -1
  288. package/dist/telemetry/live-telemetry.js +0 -853
  289. package/dist/telemetry/live-telemetry.js.map +0 -1
  290. package/dist/telemetry/scanner-stats.d.ts +0 -143
  291. package/dist/telemetry/scanner-stats.d.ts.map +0 -1
  292. package/dist/telemetry/scanner-stats.js +0 -426
  293. package/dist/telemetry/scanner-stats.js.map +0 -1
  294. package/dist/telemetry/scanner-tick-feed.d.ts +0 -87
  295. package/dist/telemetry/scanner-tick-feed.d.ts.map +0 -1
  296. package/dist/telemetry/scanner-tick-feed.js +0 -48
  297. package/dist/telemetry/scanner-tick-feed.js.map +0 -1
  298. package/dist/telemetry/strategy-topology.d.ts +0 -99
  299. package/dist/telemetry/strategy-topology.d.ts.map +0 -1
  300. package/dist/telemetry/strategy-topology.js +0 -93
  301. package/dist/telemetry/strategy-topology.js.map +0 -1
  302. package/dist/telemetry/telemetry-publisher.d.ts +0 -63
  303. package/dist/telemetry/telemetry-publisher.d.ts.map +0 -1
  304. package/dist/telemetry/telemetry-publisher.js +0 -229
  305. package/dist/telemetry/telemetry-publisher.js.map +0 -1
  306. package/dist/telemetry/tick-frame.d.ts +0 -212
  307. package/dist/telemetry/tick-frame.d.ts.map +0 -1
  308. package/dist/telemetry/tick-frame.js +0 -421
  309. package/dist/telemetry/tick-frame.js.map +0 -1
  310. package/dist/telemetry/timeline-buffer.d.ts +0 -95
  311. package/dist/telemetry/timeline-buffer.d.ts.map +0 -1
  312. package/dist/telemetry/timeline-buffer.js +0 -237
  313. package/dist/telemetry/timeline-buffer.js.map +0 -1
  314. package/dist/utils/telemetry-required-log.d.ts +0 -60
  315. package/dist/utils/telemetry-required-log.d.ts.map +0 -1
  316. package/dist/utils/telemetry-required-log.js +0 -105
  317. package/dist/utils/telemetry-required-log.js.map +0 -1
  318. package/dist/utils/ulid.d.ts +0 -9
  319. package/dist/utils/ulid.d.ts.map +0 -1
  320. package/dist/utils/ulid.js +0 -43
  321. package/dist/utils/ulid.js.map +0 -1
@@ -7,22 +7,10 @@
7
7
  * we reuse the pure builders ({@link buildSignalEvaluated} → {@link buildDecisionMade} /
8
8
  * {@link buildSignalOutcomes}), which are pure and already battle-tested, then project their records
9
9
  * onto the event contract. Body lines are deterministic narratives; reasoning (decision.made) and any
10
- * error text reach `redact`; the raw scanner `meta` bag rides one JSON string attribute, never
11
- * interpreted — it is operator-authored content and must not carry secrets. Whether it is scrubbed
12
- * depends on where it lands: the on-disk event ring and the OTLP exporter carry it as the scanner
13
- * wrote it, while the live telemetry websocket redacts every string attribute on the way out and
14
- * drops this one whole, unmarked, while no redactor is registered.
15
- *
16
- * The only side effects are the serializers' rate-limited WARNs when a risk-gate or meta bag
17
- * cannot be emitted whole — silent loss on a trust surface is worse than a log line. The returned
18
- * events are unaffected by them; the loss itself is on the wire as `senpi.risk.gates_truncated` /
19
- * `senpi.signal.meta_truncated`.
10
+ * error text reach `redact`; the raw scanner `meta` bag is dropped.
20
11
  */
21
12
  import { buildDecisionMade, buildSignalEvaluated, buildSignalOutcomes, } from "../telemetry/event-builders.js";
22
- import { jsonUnderCap } from "../telemetry/attributes.js";
23
13
  import { EVENT_NAME, JOIN_ATTR, eventAttrs, fmtThousands } from "../utils/event-catalog.js";
24
- import { createLogger } from "../utils/logger.js";
25
- const derivationLog = createLogger("[senpi-core][event-derivation]");
26
14
  /**
27
15
  * Build then emit a single {@link EmittableEvent} through a logger, with build + emit guarded as one
28
16
  * unit so neither a throwing builder nor a telemetry failure can disturb the host (trading/scan/
@@ -85,7 +73,7 @@ function decisionBody(d) {
85
73
  return line;
86
74
  }
87
75
  /** decision.made attributes: the decision's safe scalars; reasoning goes to `redact`, not here. */
88
- function decisionAttributes(d, ids) {
76
+ function decisionAttributes(d) {
89
77
  return eventAttrs({
90
78
  "senpi.decision.mode": d.mode,
91
79
  "senpi.decision.by_llm": d.byLlm,
@@ -97,8 +85,6 @@ function decisionAttributes(d, ids) {
97
85
  "senpi.decision.model": d.model,
98
86
  "senpi.decision.tokens_used": d.tokensUsed ?? undefined,
99
87
  "senpi.decision.duration_ms": d.durationMs,
100
- "senpi.tick.id": ids.tickId,
101
- "senpi.signal.correlation_id": ids.correlationId,
102
88
  });
103
89
  }
104
90
  const DISPOSITION_NARRATIVE = {
@@ -129,236 +115,18 @@ function outcomeBody(o, ev) {
129
115
  }
130
116
  return `${head}${score} → ${verb}${detail}`;
131
117
  }
132
- /**
133
- * Which optional per-gate fields survive one serialization attempt. Tried in order; the first
134
- * projection that fits {@link MAX_ATTR_VALUE_CHARS} wins.
135
- */
136
- const GATE_TIERS = [
137
- { metrics: true, reason: true },
138
- { metrics: false, reason: true },
139
- { metrics: false, reason: false },
140
- ];
141
- /**
142
- * The healthy sentinel of the runtime's failure enum, bound to the enum's own type so removing or
143
- * renaming the member is a compile error here instead of a silent "every gate failed" downstream.
144
- */
145
- const NO_FAILURE = "none";
146
- /**
147
- * Each warn below fires once per process — none is a routine path, and if one does trip it trips on
148
- * every outcome of every pass. The three are tracked separately because they are different faults
149
- * with different fixes, and one must never burn another's flag: a bag that lost fields to the size
150
- * budget is a cardinality problem, a bag `JSON.stringify` refused is a producer bug, and a bag
151
- * dropped whole means the attribute is not on the wire at all.
152
- */
153
- let warnedGateShed = false;
154
- let warnedGateUnserializable = false;
155
- let warnedGateDropped = false;
156
- /** Reachable from both exits of the tier ladder — a bag JSON refused may still end up dropped. */
157
- function warnGateUnserializable(log, gateCount) {
158
- if (warnedGateUnserializable)
159
- return;
160
- warnedGateUnserializable = true;
161
- log.warn("Risk gate bag unserializable; shed metrics", { gateCount });
162
- }
163
- /**
164
- * Metrics with every non-finite number removed. `JSON.stringify` renders `NaN`/`Infinity` as `null`,
165
- * which is indistinguishable from a metric the guard legitimately reported as null — so the key is
166
- * dropped instead, and the catalog states the contract: a metric number is finite or absent.
167
- * Shallow, matching the guard's flat scalar bags; the original object is returned untouched when it
168
- * is already clean, so the common path allocates nothing.
169
- */
170
- function finiteMetrics(metrics) {
171
- const isNonFinite = (v) => typeof v === "number" && !Number.isFinite(v);
172
- const entries = Object.entries(metrics);
173
- if (!entries.some(([, v]) => isNonFinite(v)))
174
- return metrics;
175
- return Object.fromEntries(entries.filter(([, v]) => !isNonFinite(v)));
176
- }
177
- /**
178
- * One gate's wire projection. `gateName` is omitted — it is a static function of `gateId`, so
179
- * putting it on every row buys nothing. The three reliability fields ride only when they say
180
- * something: a healthy gate is `evaluationOk: true`, `fallbackApplied: false`, `failureKind: "none"`,
181
- * and repeating that on every gate of every pass is noise. Their presence marks the fail-closed
182
- * gate, which is the one a reader must not mistake for a real breach.
183
- */
184
- function projectGate(g, tier) {
185
- return {
186
- gateId: g.gateId,
187
- status: g.status,
188
- ...(tier.reason && g.reason !== undefined ? { reason: g.reason } : {}),
189
- ...(g.evaluationOk === false ? { evaluationOk: false } : {}),
190
- ...(g.fallbackApplied === true ? { fallbackApplied: true } : {}),
191
- ...(g.failureKind !== undefined && g.failureKind !== NO_FAILURE ? { failureKind: g.failureKind } : {}),
192
- ...(tier.metrics && g.metrics !== undefined ? { metrics: finiteMetrics(g.metrics) } : {}),
193
- };
194
- }
195
- /**
196
- * The gate bag as a JSON array string, with a flag saying whether anything was lost getting there.
197
- *
198
- * The logger caps every string attribute at {@link MAX_ATTR_VALUE_CHARS}, and a cap applied to JSON
199
- * yields unparseable garbage — so the budget is spent here instead: shed `metrics`, then `reason`,
200
- * and give up rather than emit a fragment. What comes out is always valid JSON or nothing.
201
- *
202
- * An empty `gates` array serializes to `"[]"` on purpose: "the gates ran and none are configured"
203
- * is a fact the drill-down needs, distinct from the absent attribute's "there is no snapshot".
204
- *
205
- * A `metrics` bag that `JSON.stringify` refuses (a BigInt, a throwing `toJSON`) fails only its own
206
- * tier — the metrics-less tiers below it still produce a bag. That fall is a producer bug, not a
207
- * size problem, so it warns on its own flag: letting it fire the budget warning would both misname
208
- * the fault and burn the one-shot flag a genuine overflow later needs.
209
- *
210
- * `log` is injectable so the once-per-process warnings can be observed in a test; production call
211
- * sites take the default.
212
- */
213
- export function serializeRiskGates(gates, log = derivationLog) {
214
- // The two ways a tier can fail, tracked apart so the warning names the real fault.
215
- let stringifyFailed = false;
216
- let overBudget = false;
217
- for (const tier of GATE_TIERS) {
218
- let projected;
219
- try {
220
- projected = gates.map((g) => projectGate(g, tier));
221
- }
222
- catch {
223
- // A gate whose own projection throws is the same fault as one stringify refuses.
224
- stringifyFailed = true;
225
- continue;
226
- }
227
- // The shared whole-or-nothing serializer owns the cap: no `json` with `truncated` means it
228
- // serialized and was too big, no `json` without it means stringify refused the value.
229
- const { json, truncated: overCap } = jsonUnderCap(projected);
230
- if (json === undefined) {
231
- if (overCap)
232
- overBudget = true;
233
- else
234
- stringifyFailed = true;
235
- continue;
236
- }
237
- if (stringifyFailed)
238
- warnGateUnserializable(log, gates.length);
239
- if (overBudget && !warnedGateShed) {
240
- warnedGateShed = true;
241
- log.warn("Risk gate bag exceeded the attribute budget; shed fields to fit", {
242
- gateCount: gates.length,
243
- keptReason: tier.reason,
244
- keptMetrics: tier.metrics,
245
- });
246
- }
247
- return { json, truncated: stringifyFailed || overBudget };
248
- }
249
- if (stringifyFailed)
250
- warnGateUnserializable(log, gates.length);
251
- if (!warnedGateDropped) {
252
- warnedGateDropped = true;
253
- log.warn("Risk gate bag exceeded the attribute budget even bare; dropped", {
254
- gateCount: gates.length,
255
- });
256
- }
257
- return { truncated: true };
258
- }
259
- /**
260
- * `"<scannerId>:<fault>"` keys already warned about. Rate-limits the per-signal drop warn to one line
261
- * per scanner per fault: a scanner that produces the same bag every tick must not repeat it, and a
262
- * broken scanner must not be masked by an unrelated one that broke first. Both faults are keyed
263
- * separately, so one firing never silences the other.
264
- */
265
- const warnedMetaDrops = new Set();
266
- /**
267
- * Report a dropped bag ONCE per (scanner, fault), without letting the report become a second, worse
268
- * fault. The bag is scanner-controlled all the way down, so even counting its keys can throw (a proxy
269
- * with a hostile `ownKeys` trap) — an uncountable bag is reported with no `keyCount` rather than with
270
- * an escaping throw, and the emit itself is guarded so a failing logger cannot escape either. A throw
271
- * here would leave `serializeSignalMeta` through the mapper and cost the caller its ENTIRE event
272
- * array, so one hostile bag would blank the pass it rode in on: the diagnostic must never cost more
273
- * than the bag.
274
- */
275
- function warnMetaDropped(log, fault, message, meta, source, extra) {
276
- const key = `${source.scannerId ?? ""}:${fault}`;
277
- if (warnedMetaDrops.has(key))
278
- return;
279
- warnedMetaDrops.add(key);
280
- let keyCount;
281
- try {
282
- keyCount = Object.keys(meta).length;
283
- }
284
- catch {
285
- keyCount = undefined;
286
- }
287
- try {
288
- log.warn(message, {
289
- ...(source.scannerId !== undefined ? { scannerId: source.scannerId } : {}),
290
- ...(source.asset !== undefined ? { asset: source.asset } : {}),
291
- ...(keyCount !== undefined ? { keyCount } : {}),
292
- ...extra,
293
- });
294
- }
295
- catch {
296
- // The drop stands; there is nowhere left to report it to.
297
- }
298
- }
299
- /**
300
- * The scanner's `meta` bag as ONE JSON string attribute, plus whether a bag arrived and was lost.
301
- *
302
- * The bag is scanner-defined and NOT interpreted here: no key is lifted, dropped, or reordered — the
303
- * JSON is emitted whole or not at all. A bag over the per-value attribute cap is therefore dropped
304
- * rather than truncated (a cut JSON string is unparseable) and rather than thinned (choosing which
305
- * scanner keys survive would be interpretation). An empty bag legitimately serializes to `"{}"`, but
306
- * that value only says a bag arrived: ingest normalizes a missing bag to `{}`, so a scanner that sent
307
- * an empty one and a scanner that sent none both land here as `{}` and cannot be told apart. A drop
308
- * is NOT silent on the wire either: `dropped` raises `senpi.signal.meta_truncated`, so an absent
309
- * attribute WITH the marker (bag lost) is distinguishable from an absent attribute without one (no
310
- * bag at all).
311
- *
312
- * The warn payload carries the bag's origin and its key count — the bag's own content is scanner
313
- * free-text and never safe as an attribute. `log` is injectable so the warns are observable.
314
- */
315
- export function serializeSignalMeta(meta, source = {}, log = derivationLog) {
316
- const { json, truncated, chars } = jsonUnderCap(meta);
317
- if (truncated) {
318
- warnMetaDropped(log, "oversize", "scanner signal meta dropped: JSON is over the per-attribute size cap", meta, source, {
319
- ...(chars !== undefined ? { jsonChars: chars } : {}),
320
- });
321
- return { dropped: true };
322
- }
323
- // The attribute is contracted as a JSON OBJECT that a consumer renders as a key-value map, but a
324
- // bag carrying its own `toJSON` can render as any JSON value. A scalar or an array is the same
325
- // fault as one that does not render at all — the bag did not come out a bag — so it takes the same
326
- // path. This tests the shape of the whole value, never the meaning of a key inside it.
327
- if (json === undefined || !json.startsWith("{")) {
328
- warnMetaDropped(log, "unserializable", "scanner signal meta dropped: the bag does not serialize to a JSON object", meta, source);
329
- return { dropped: true };
330
- }
331
- return { json, dropped: false };
332
- }
333
- /**
334
- * signal.outcome attributes: the queryable scalar surface, plus the scanner's `meta` bag as one
335
- * uninterpreted JSON string (see {@link serializeSignalMeta}).
336
- *
337
- * `gates` is the pass's already-serialized bag, threaded in rather than re-derived: it is identical
338
- * for every outcome of the pass, and stringifying it once per signal would pay the whole cost N
339
- * times in the producer's synchronous emit path.
340
- */
341
- function outcomeAttributes(o, ids, gates) {
342
- const bag = o.rawSignal?.meta;
343
- const meta = bag !== undefined
344
- ? serializeSignalMeta(bag, { scannerId: o.scannerId, asset: o.asset })
345
- : undefined;
118
+ /** signal.outcome attributes: the queryable scalar surface; the raw `meta` bag is dropped. */
119
+ function outcomeAttributes(o) {
346
120
  return eventAttrs({
347
121
  [JOIN_ATTR.positionId]: o.positionId,
348
122
  [JOIN_ATTR.orderId]: o.orderId,
349
123
  "senpi.scanner.id": o.scannerId,
350
- // Which action produced the outcome — an open accept and a close accept are both `accepted`.
351
- "senpi.action.type": o.actionType,
352
124
  "senpi.signal.type": o.signalType,
353
125
  "senpi.signal.asset": o.asset,
354
126
  "senpi.signal.direction": o.direction ?? undefined,
355
127
  // Always a number off the record builder (`num(...) ?? 0`); the fallback mirrors that and keeps
356
128
  // score a required, always-queryable scalar.
357
129
  "senpi.signal.score": o.score ?? 0,
358
- "senpi.signal.meta": meta?.json,
359
- // Marker, not a value: absent attribute + absent marker = no bag ever arrived; absent attribute
360
- // + marker = a bag arrived and was lost. Only ever `true` (never emitted as `false`).
361
- "senpi.signal.meta_truncated": meta?.dropped === true ? true : undefined,
362
130
  "senpi.outcome.result": o.result,
363
131
  "senpi.outcome.reason_code": o.reasonCode,
364
132
  "senpi.outcome.margin_amount": o.marginAmount,
@@ -367,12 +135,6 @@ function outcomeAttributes(o, ids, gates) {
367
135
  "senpi.outcome.leverage": o.leverage,
368
136
  "senpi.outcome.notional_value": o.notionalValue,
369
137
  "senpi.outcome.size": o.size,
370
- "senpi.tick.id": ids.tickId,
371
- "senpi.signal.correlation_id": ids.correlationId,
372
- "senpi.risk.gates": gates?.json,
373
- // Emitted only when true, like the per-gate reliability flags: absence is the healthy case, and
374
- // stamping `false` on every outcome of every pass would be noise.
375
- "senpi.risk.gates_truncated": gates?.truncated === true ? true : undefined,
376
138
  });
377
139
  }
378
140
  /**
@@ -386,25 +148,20 @@ export function deriveActionResultEvents(input) {
386
148
  if (pass === null)
387
149
  return [];
388
150
  const events = [];
389
- const ids = { tickId: pass.tickId, correlationId: pass.correlationId };
390
151
  const decision = buildDecisionMade(pass);
391
152
  if (decision !== null) {
392
153
  events.push({
393
154
  name: EVENT_NAME.decisionMade,
394
155
  level: "info",
395
156
  body: decisionBody(decision),
396
- attributes: decisionAttributes(decision, ids),
157
+ attributes: decisionAttributes(decision),
397
158
  ...(decision.reasoning ? { redact: { reasoning: decision.reasoning } } : {}),
398
159
  });
399
160
  }
400
- // Serialized ONCE per pass. Every outcome carries the same pass-level bag (buildSignalOutcomes
401
- // copies the one array onto each), so this is the same string N times — and this runs inside the
402
- // producer's synchronous emit path, where an N-signal batch must not pay N stringifies.
403
- const gates = pass.riskGates !== undefined ? serializeRiskGates(pass.riskGates) : undefined;
404
161
  // buildSignalOutcomes and pass.evaluations are both one-per-evaluation, same order — zipped so the
405
162
  // narrative can template the fill (entryPrice) and the error text rides `redact` from the same
406
- // evaluation. The record carries the queryable scalar surface plus the raw `meta` bag (on its
407
- // `rawSignal`); the evaluation carries the free-text error and the entry fill the body templates.
163
+ // evaluation. The record carries the queryable scalar surface (no raw `meta`); the evaluation
164
+ // carries the free-text error and the entry fill the body templates.
408
165
  const outcomes = buildSignalOutcomes(pass);
409
166
  outcomes.forEach((outcome, i) => {
410
167
  const ev = pass.evaluations[i];
@@ -414,7 +171,7 @@ export function deriveActionResultEvents(input) {
414
171
  // ERROR when the outcome failed (the level arg escalates above the INFO floor).
415
172
  level: isError ? "error" : "info",
416
173
  body: outcomeBody(outcome, ev),
417
- attributes: outcomeAttributes(outcome, ids, gates),
174
+ attributes: outcomeAttributes(outcome),
418
175
  ...(isError && ev.outcome.error ? { redact: { error: ev.outcome.error } } : {}),
419
176
  });
420
177
  });
@@ -1 +1 @@
1
- {"version":3,"file":"event-derivation.js","sourceRoot":"","sources":["../../src/actions/event-derivation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event-derivation.js","sourceRoot":"","sources":["../../src/actions/event-derivation.ts"],"names":[],"mappings":"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"}
@@ -33,19 +33,6 @@ export declare class OpenPositionAction implements Action {
33
33
  handle(event: HookEvent): Promise<ActionResult>;
34
34
  /** The pending-opens ledger this action counts against — the context's when it has one. */
35
35
  private pendingOpens;
36
- /**
37
- * One clearinghouse read, fail-closed on both an unreadable response and a throw. A throw is
38
- * the same situation as an unreadable response — an unknown book — so it resolves undefined
39
- * and reaches the skip below rather than escaping the action with no per-signal outcome
40
- * recorded. Shared by the gate at the top of `handle` and the stale-view refetch in the
41
- * signal loop.
42
- */
43
- /**
44
- * The bounded book read, failing closed. A read that throws — including one the deadline
45
- * aborts — leaves the exchange view unknown, which the callers treat as a skip rather than
46
- * trading against numbers nobody read.
47
- */
48
- private readClearinghouseView;
49
36
  /**
50
37
  * Edge-triggered full-book log: once on the transition into full, then at most once per
51
38
  * {@link NO_SLOTS_LOG_INTERVAL_MS} with the count it suppressed in between.
@@ -62,10 +49,8 @@ export declare class OpenPositionAction implements Action {
62
49
  * rather than risk a duplicate or an over-margined open.
63
50
  *
64
51
  * Shared by both read sites (the gate at the top of `handle`, and the stale-view refetch in
65
- * the signal loop). The rows come from the caller because the two sites attribute to
66
- * different inputs: the scan's own signals before a decision exists, the decision's
67
- * candidates after. `riskSnapshot` is undefined at the early site, where no gate snapshot
68
- * has been taken yet.
52
+ * the signal loop). `sorted` is empty at the early site — there is no decision, hence no
53
+ * candidates, yet — which is why the entries are built from it rather than assumed.
69
54
  */
70
55
  private skipClearinghouseUnknown;
71
56
  private normalizeSignals;
@@ -1 +1 @@
1
- {"version":3,"file":"open-position.action.d.ts","sourceRoot":"","sources":["../../../src/actions/open-position/open-position.action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,YAAY,EAEZ,aAAa,EACb,cAAc,EACd,YAAY,EACZ,SAAS,EAEV,MAAM,aAAa,CAAC;AAIrB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AA4BtD;;;;;;;;;GASG;AACH,eAAO,MAAM,6BAA6B,QAAS,CAAC;AAyDpD,qBAAa,kBAAmB,YAAW,MAAM;IAwB7C,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IAxBjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,kBAA4B;IAE/C,OAAO,CAAC,cAAc,CAAiB;IAEvC;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkD;IAElF;;;;OAIG;IACH,OAAO,CAAC,UAAU,CAIhB;gBAGQ,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,cAAc;IASjC,OAAO,CAAC,QAAQ;IAYV,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC;IA6TrD,2FAA2F;IAC3F,OAAO,CAAC,YAAY;IAIpB;;;;;;OAMG;IACH;;;;OAIG;YACW,qBAAqB;IAYnC;;;;;;;;OAQG;IACH,OAAO,CAAC,WAAW;IA4BnB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,wBAAwB;IAkChC,OAAO,CAAC,gBAAgB;YAaV,aAAa;CAmiB5B;AAID,eAAO,MAAM,mBAAmB,EAAE,aACO,CAAC;AAE1C,eAAO,MAAM,oBAAoB,EAAE,cAMlC,CAAC"}
1
+ {"version":3,"file":"open-position.action.d.ts","sourceRoot":"","sources":["../../../src/actions/open-position/open-position.action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,YAAY,EAEZ,aAAa,EACb,cAAc,EACd,YAAY,EACZ,SAAS,EAEV,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AA4BtD;;;;;;;;;GASG;AACH,eAAO,MAAM,6BAA6B,QAAS,CAAC;AAyDpD,qBAAa,kBAAmB,YAAW,MAAM;IAwB7C,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IAxBjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAG,eAAe,CAAU;IAE/C,OAAO,CAAC,cAAc,CAAiB;IAEvC;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkD;IAElF;;;;OAIG;IACH,OAAO,CAAC,UAAU,CAIhB;gBAGQ,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,cAAc;IASjC,OAAO,CAAC,QAAQ;IAYV,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC;IAyOrD,2FAA2F;IAC3F,OAAO,CAAC,YAAY;IAIpB;;;;;;;;OAQG;IACH,OAAO,CAAC,WAAW;IA4BnB;;;;;;;;OAQG;IACH,OAAO,CAAC,wBAAwB;IAwChC,OAAO,CAAC,gBAAgB;YAaV,aAAa;CA+gB5B;AAID,eAAO,MAAM,mBAAmB,EAAE,aACO,CAAC;AAE1C,eAAO,MAAM,oBAAoB,EAAE,cAMlC,CAAC"}