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

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 (263) 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} +25 -77
  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 +5 -6
  9. package/dist/actions/event-derivation.d.ts.map +1 -1
  10. package/dist/actions/event-derivation.js +4 -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/monitor/create-monitor.d.ts +1 -1
  30. package/dist/dsl/monitor/create-monitor.d.ts.map +1 -1
  31. package/dist/dsl/monitor/create-monitor.js +0 -30
  32. package/dist/dsl/monitor/create-monitor.js.map +1 -1
  33. package/dist/dsl/monitor/process-one-position.d.ts.map +1 -1
  34. package/dist/dsl/monitor/process-one-position.js +0 -121
  35. package/dist/dsl/monitor/process-one-position.js.map +1 -1
  36. package/dist/dsl/plugin/index.js +3 -3
  37. package/dist/dsl/plugin/index.js.map +1 -1
  38. package/dist/dsl/plugin/options.d.ts +1 -1
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +8 -53
  41. package/dist/index.js.map +1 -1
  42. package/dist/runtime/__tests__/helpers/runtime-gateway-harness.d.ts +2 -0
  43. package/dist/runtime/__tests__/helpers/runtime-gateway-harness.d.ts.map +1 -1
  44. package/dist/runtime/__tests__/helpers/runtime-gateway-harness.js +24 -3
  45. package/dist/runtime/__tests__/helpers/runtime-gateway-harness.js.map +1 -1
  46. package/dist/runtime/create-runtime-context.d.ts +1 -1
  47. package/dist/runtime/create-runtime-context.d.ts.map +1 -1
  48. package/dist/runtime/create-scanner-module.d.ts +1 -1
  49. package/dist/runtime/domain-events.d.ts +4 -4
  50. package/dist/runtime/domain-events.d.ts.map +1 -1
  51. package/dist/runtime/domain-events.js +4 -4
  52. package/dist/runtime/domain-events.js.map +1 -1
  53. package/dist/runtime/lifecycle-events.d.ts +3 -3
  54. package/dist/runtime/lifecycle-events.js +5 -5
  55. package/dist/runtime/lifecycle-events.js.map +1 -1
  56. package/dist/{tracking → runtime}/position-id-registry.d.ts +14 -1
  57. package/dist/runtime/position-id-registry.d.ts.map +1 -0
  58. package/dist/{tracking → runtime}/position-id-registry.js +20 -3
  59. package/dist/runtime/position-id-registry.js.map +1 -0
  60. package/dist/runtime/run.d.ts +2 -4
  61. package/dist/runtime/run.d.ts.map +1 -1
  62. package/dist/runtime/run.js.map +1 -1
  63. package/dist/runtime/runtime-schema.d.ts +120 -437
  64. package/dist/runtime/runtime-schema.d.ts.map +1 -1
  65. package/dist/runtime/runtime-schema.js +0 -27
  66. package/dist/runtime/runtime-schema.js.map +1 -1
  67. package/dist/runtime/runtime.d.ts +4 -9
  68. package/dist/runtime/runtime.d.ts.map +1 -1
  69. package/dist/runtime/runtime.js +29 -180
  70. package/dist/runtime/runtime.js.map +1 -1
  71. package/dist/scanners/engine/data-providers.d.ts +1 -1
  72. package/dist/scanners/runtime-module.d.ts +1 -1
  73. package/dist/senpi/client.js +2 -2
  74. package/dist/senpi/client.js.map +1 -1
  75. package/dist/telemetry/attributes.d.ts +13 -0
  76. package/dist/telemetry/attributes.d.ts.map +1 -0
  77. package/dist/telemetry/attributes.js +22 -0
  78. package/dist/telemetry/attributes.js.map +1 -0
  79. package/dist/{tracking → telemetry}/context.d.ts +6 -5
  80. package/dist/telemetry/context.d.ts.map +1 -0
  81. package/dist/{tracking → telemetry}/context.js +4 -4
  82. package/dist/telemetry/context.js.map +1 -0
  83. package/dist/{recording/records.d.ts → telemetry/event-builders.d.ts} +138 -30
  84. package/dist/telemetry/event-builders.d.ts.map +1 -0
  85. package/dist/{recording/wiring/record-builders.js → telemetry/event-builders.js} +90 -39
  86. package/dist/telemetry/event-builders.js.map +1 -0
  87. package/dist/telemetry/identity.d.ts +62 -0
  88. package/dist/telemetry/identity.d.ts.map +1 -0
  89. package/dist/{recording/wiring → telemetry}/identity.js +5 -2
  90. package/dist/telemetry/identity.js.map +1 -0
  91. package/dist/telemetry/spans/constants.d.ts.map +1 -0
  92. package/dist/telemetry/spans/constants.js.map +1 -0
  93. package/dist/telemetry/spans/gen-ai.d.ts.map +1 -0
  94. package/dist/telemetry/spans/gen-ai.js.map +1 -0
  95. package/dist/telemetry/spans/index.d.ts.map +1 -0
  96. package/dist/telemetry/spans/index.js.map +1 -0
  97. package/dist/telemetry/spans/redact-pii.d.ts.map +1 -0
  98. package/dist/telemetry/spans/redact-pii.js.map +1 -0
  99. package/dist/telemetry/spans/sanitize-payload.d.ts.map +1 -0
  100. package/dist/telemetry/spans/sanitize-payload.js.map +1 -0
  101. package/dist/telemetry/spans/span-hooks.d.ts.map +1 -0
  102. package/dist/{tracking → telemetry}/spans/span-hooks.js +4 -4
  103. package/dist/telemetry/spans/span-hooks.js.map +1 -0
  104. package/dist/telemetry/trace-identity.d.ts +1 -1
  105. package/dist/types/dsl/index.d.ts +2 -9
  106. package/dist/types/dsl/index.d.ts.map +1 -1
  107. package/dist/types/runtime.d.ts +1 -1
  108. package/dist/types/runtime.d.ts.map +1 -1
  109. package/dist/utils/event-catalog.d.ts +2 -2
  110. package/dist/utils/event-catalog.js +2 -2
  111. package/dist/utils/logger.js +3 -4
  112. package/dist/utils/logger.js.map +1 -1
  113. package/package.json +1 -1
  114. package/dist/actions/tracking-helpers.d.ts.map +0 -1
  115. package/dist/actions/tracking-helpers.js.map +0 -1
  116. package/dist/recording/emitter.d.ts +0 -27
  117. package/dist/recording/emitter.d.ts.map +0 -1
  118. package/dist/recording/emitter.js +0 -2
  119. package/dist/recording/emitter.js.map +0 -1
  120. package/dist/recording/identity.d.ts +0 -34
  121. package/dist/recording/identity.d.ts.map +0 -1
  122. package/dist/recording/identity.js +0 -2
  123. package/dist/recording/identity.js.map +0 -1
  124. package/dist/recording/index.d.ts +0 -11
  125. package/dist/recording/index.d.ts.map +0 -1
  126. package/dist/recording/index.js +0 -2
  127. package/dist/recording/index.js.map +0 -1
  128. package/dist/recording/noop-emitter.d.ts +0 -23
  129. package/dist/recording/noop-emitter.d.ts.map +0 -1
  130. package/dist/recording/noop-emitter.js +0 -22
  131. package/dist/recording/noop-emitter.js.map +0 -1
  132. package/dist/recording/otel/attributes.d.ts +0 -37
  133. package/dist/recording/otel/attributes.d.ts.map +0 -1
  134. package/dist/recording/otel/attributes.js +0 -131
  135. package/dist/recording/otel/attributes.js.map +0 -1
  136. package/dist/recording/otel/constants.d.ts +0 -123
  137. package/dist/recording/otel/constants.d.ts.map +0 -1
  138. package/dist/recording/otel/constants.js +0 -172
  139. package/dist/recording/otel/constants.js.map +0 -1
  140. package/dist/recording/otel/ids.d.ts +0 -25
  141. package/dist/recording/otel/ids.d.ts.map +0 -1
  142. package/dist/recording/otel/ids.js +0 -37
  143. package/dist/recording/otel/ids.js.map +0 -1
  144. package/dist/recording/otel/index.d.ts +0 -13
  145. package/dist/recording/otel/index.d.ts.map +0 -1
  146. package/dist/recording/otel/index.js +0 -9
  147. package/dist/recording/otel/index.js.map +0 -1
  148. package/dist/recording/otel/mappers.d.ts +0 -100
  149. package/dist/recording/otel/mappers.d.ts.map +0 -1
  150. package/dist/recording/otel/mappers.js +0 -684
  151. package/dist/recording/otel/mappers.js.map +0 -1
  152. package/dist/recording/otel/otel-emitter.d.ts +0 -43
  153. package/dist/recording/otel/otel-emitter.d.ts.map +0 -1
  154. package/dist/recording/otel/otel-emitter.js +0 -99
  155. package/dist/recording/otel/otel-emitter.js.map +0 -1
  156. package/dist/recording/otel/redaction.d.ts +0 -47
  157. package/dist/recording/otel/redaction.d.ts.map +0 -1
  158. package/dist/recording/otel/redaction.js +0 -88
  159. package/dist/recording/otel/redaction.js.map +0 -1
  160. package/dist/recording/records.d.ts.map +0 -1
  161. package/dist/recording/records.js +0 -14
  162. package/dist/recording/records.js.map +0 -1
  163. package/dist/recording/transport/batcher.d.ts +0 -59
  164. package/dist/recording/transport/batcher.d.ts.map +0 -1
  165. package/dist/recording/transport/batcher.js +0 -234
  166. package/dist/recording/transport/batcher.js.map +0 -1
  167. package/dist/recording/transport/client.d.ts +0 -41
  168. package/dist/recording/transport/client.d.ts.map +0 -1
  169. package/dist/recording/transport/client.js +0 -69
  170. package/dist/recording/transport/client.js.map +0 -1
  171. package/dist/recording/transport/config.d.ts +0 -53
  172. package/dist/recording/transport/config.d.ts.map +0 -1
  173. package/dist/recording/transport/config.js +0 -41
  174. package/dist/recording/transport/config.js.map +0 -1
  175. package/dist/recording/transport/index.d.ts +0 -16
  176. package/dist/recording/transport/index.d.ts.map +0 -1
  177. package/dist/recording/transport/index.js +0 -12
  178. package/dist/recording/transport/index.js.map +0 -1
  179. package/dist/recording/transport/rows.d.ts +0 -88
  180. package/dist/recording/transport/rows.d.ts.map +0 -1
  181. package/dist/recording/transport/rows.js +0 -15
  182. package/dist/recording/transport/rows.js.map +0 -1
  183. package/dist/recording/wiring/emitter-factory.d.ts +0 -34
  184. package/dist/recording/wiring/emitter-factory.d.ts.map +0 -1
  185. package/dist/recording/wiring/emitter-factory.js +0 -44
  186. package/dist/recording/wiring/emitter-factory.js.map +0 -1
  187. package/dist/recording/wiring/identity.d.ts +0 -27
  188. package/dist/recording/wiring/identity.d.ts.map +0 -1
  189. package/dist/recording/wiring/identity.js.map +0 -1
  190. package/dist/recording/wiring/index.d.ts +0 -12
  191. package/dist/recording/wiring/index.d.ts.map +0 -1
  192. package/dist/recording/wiring/index.js +0 -9
  193. package/dist/recording/wiring/index.js.map +0 -1
  194. package/dist/recording/wiring/record-builders.d.ts +0 -107
  195. package/dist/recording/wiring/record-builders.d.ts.map +0 -1
  196. package/dist/recording/wiring/record-builders.js.map +0 -1
  197. package/dist/recording/wiring/subscriber.d.ts +0 -28
  198. package/dist/recording/wiring/subscriber.d.ts.map +0 -1
  199. package/dist/recording/wiring/subscriber.js +0 -173
  200. package/dist/recording/wiring/subscriber.js.map +0 -1
  201. package/dist/recording/wiring/values.d.ts +0 -19
  202. package/dist/recording/wiring/values.d.ts.map +0 -1
  203. package/dist/recording/wiring/values.js +0 -49
  204. package/dist/recording/wiring/values.js.map +0 -1
  205. package/dist/tracking/build-rehydrate-items.d.ts +0 -15
  206. package/dist/tracking/build-rehydrate-items.d.ts.map +0 -1
  207. package/dist/tracking/build-rehydrate-items.js +0 -19
  208. package/dist/tracking/build-rehydrate-items.js.map +0 -1
  209. package/dist/tracking/constants.d.ts +0 -24
  210. package/dist/tracking/constants.d.ts.map +0 -1
  211. package/dist/tracking/constants.js +0 -52
  212. package/dist/tracking/constants.js.map +0 -1
  213. package/dist/tracking/context.d.ts.map +0 -1
  214. package/dist/tracking/context.js.map +0 -1
  215. package/dist/tracking/index.d.ts +0 -16
  216. package/dist/tracking/index.d.ts.map +0 -1
  217. package/dist/tracking/index.js +0 -11
  218. package/dist/tracking/index.js.map +0 -1
  219. package/dist/tracking/plugin-event-tracker.d.ts +0 -13
  220. package/dist/tracking/plugin-event-tracker.d.ts.map +0 -1
  221. package/dist/tracking/plugin-event-tracker.js +0 -27
  222. package/dist/tracking/plugin-event-tracker.js.map +0 -1
  223. package/dist/tracking/position-id-registry.d.ts.map +0 -1
  224. package/dist/tracking/position-id-registry.js.map +0 -1
  225. package/dist/tracking/spans/constants.d.ts.map +0 -1
  226. package/dist/tracking/spans/constants.js.map +0 -1
  227. package/dist/tracking/spans/gen-ai.d.ts.map +0 -1
  228. package/dist/tracking/spans/gen-ai.js.map +0 -1
  229. package/dist/tracking/spans/index.d.ts.map +0 -1
  230. package/dist/tracking/spans/index.js.map +0 -1
  231. package/dist/tracking/spans/redact-pii.d.ts.map +0 -1
  232. package/dist/tracking/spans/redact-pii.js.map +0 -1
  233. package/dist/tracking/spans/sanitize-payload.d.ts.map +0 -1
  234. package/dist/tracking/spans/sanitize-payload.js.map +0 -1
  235. package/dist/tracking/spans/span-hooks.d.ts.map +0 -1
  236. package/dist/tracking/spans/span-hooks.js.map +0 -1
  237. package/dist/tracking/tracker.d.ts +0 -30
  238. package/dist/tracking/tracker.d.ts.map +0 -1
  239. package/dist/tracking/tracker.js +0 -66
  240. package/dist/tracking/tracker.js.map +0 -1
  241. package/dist/tracking/tracking-handler.d.ts +0 -12
  242. package/dist/tracking/tracking-handler.d.ts.map +0 -1
  243. package/dist/tracking/tracking-handler.js +0 -148
  244. package/dist/tracking/tracking-handler.js.map +0 -1
  245. package/dist/tracking/transport.d.ts +0 -35
  246. package/dist/tracking/transport.d.ts.map +0 -1
  247. package/dist/tracking/transport.js +0 -133
  248. package/dist/tracking/transport.js.map +0 -1
  249. package/dist/tracking/types.d.ts +0 -21
  250. package/dist/tracking/types.d.ts.map +0 -1
  251. package/dist/tracking/types.js +0 -6
  252. package/dist/tracking/types.js.map +0 -1
  253. /package/dist/{tracking → telemetry}/spans/constants.d.ts +0 -0
  254. /package/dist/{tracking → telemetry}/spans/constants.js +0 -0
  255. /package/dist/{tracking → telemetry}/spans/gen-ai.d.ts +0 -0
  256. /package/dist/{tracking → telemetry}/spans/gen-ai.js +0 -0
  257. /package/dist/{tracking → telemetry}/spans/index.d.ts +0 -0
  258. /package/dist/{tracking → telemetry}/spans/index.js +0 -0
  259. /package/dist/{tracking → telemetry}/spans/redact-pii.d.ts +0 -0
  260. /package/dist/{tracking → telemetry}/spans/redact-pii.js +0 -0
  261. /package/dist/{tracking → telemetry}/spans/sanitize-payload.d.ts +0 -0
  262. /package/dist/{tracking → telemetry}/spans/sanitize-payload.js +0 -0
  263. /package/dist/{tracking → telemetry}/spans/span-hooks.d.ts +0 -0
@@ -1,148 +0,0 @@
1
- /**
2
- * Tracking handler: subscribes to bus events and forwards them to EventTracker.
3
- * Pattern follows src/dsl/notifications/index.ts — subscribe, return dispose().
4
- * Never throws into the bus event loop.
5
- */
6
- import { BUS_EVENT_MAP, TRACKING_DECISION_BUS_EVENT, TRACKING_ACTION_RESULT_BUS_EVENT, } from "./constants.js";
7
- import { createLogger } from "../utils/logger.js";
8
- const logger = createLogger("[senpi-core][tracking-handler]");
9
- /**
10
- * Extract address from a bus event payload.
11
- * HookEvents have `event.address`, DSL events have `payload.address`.
12
- */
13
- function extractAddress(payload) {
14
- if (payload && typeof payload === "object") {
15
- const p = payload;
16
- if (typeof p.address === "string")
17
- return p.address;
18
- if (p.data && typeof p.data === "object") {
19
- const d = p.data;
20
- if (typeof d.address === "string")
21
- return d.address;
22
- }
23
- }
24
- return "";
25
- }
26
- /**
27
- * Extract __correlationId from a bus event payload.
28
- * It may be at payload.data.__correlationId (HookEvent) or payload.__correlationId.
29
- */
30
- function extractCorrelationId(payload) {
31
- if (payload && typeof payload === "object") {
32
- const p = payload;
33
- if (typeof p.__correlationId === "string")
34
- return p.__correlationId;
35
- if (p.data && typeof p.data === "object") {
36
- const d = p.data;
37
- if (typeof d.__correlationId === "string")
38
- return d.__correlationId;
39
- }
40
- }
41
- return null;
42
- }
43
- /** Convert payload to a plain data object for tracking. */
44
- function toData(payload) {
45
- if (payload && typeof payload === "object" && !Array.isArray(payload)) {
46
- return payload;
47
- }
48
- return { raw: payload };
49
- }
50
- /**
51
- * Resolve decision event type from payload.
52
- * Inspects data.decision to determine executed/rejected/below_confidence/error.
53
- */
54
- function resolveDecisionEventType(payload) {
55
- const data = toData(payload);
56
- const decision = data.decision ?? (data.data && typeof data.data === "object" ? data.data.decision : undefined);
57
- if (decision && typeof decision === "object") {
58
- const d = decision;
59
- if (d.error)
60
- return "decision.error";
61
- if (d.execute === false)
62
- return "decision.rejected";
63
- }
64
- // Check for below_confidence via skipReason in the tracking.decision payload data
65
- const innerData = data.data && typeof data.data === "object" ? data.data : data;
66
- if (typeof innerData.skipReason === "string" && innerData.skipReason === "below_confidence") {
67
- return "decision.below_confidence";
68
- }
69
- return "decision.executed";
70
- }
71
- /**
72
- * Resolve action result event type from payload.
73
- * Inspects data.result.skipped to determine result vs skipped.
74
- */
75
- function resolveActionResultEventType(payload) {
76
- const data = toData(payload);
77
- const result = data.result ?? (data.data && typeof data.data === "object" ? data.data.result : undefined);
78
- if (result && typeof result === "object") {
79
- const r = result;
80
- if (r.skipped === true)
81
- return "action.skipped";
82
- }
83
- return "action.result";
84
- }
85
- export function createTrackingHandler(bus, tracker) {
86
- const handlers = [];
87
- function subscribe(busEvent, handler) {
88
- bus.on(busEvent, handler);
89
- handlers.push({ event: busEvent, handler });
90
- }
91
- // Subscribe to all statically mapped bus events
92
- for (const [busEvent, mapping] of Object.entries(BUS_EVENT_MAP)) {
93
- subscribe(busEvent, (payload) => {
94
- try {
95
- tracker.capture({
96
- eventType: mapping.eventType,
97
- category: mapping.category,
98
- address: extractAddress(payload),
99
- correlationId: extractCorrelationId(payload),
100
- data: toData(payload),
101
- });
102
- }
103
- catch (err) {
104
- logger.warn("tracking handler error", { busEvent, err });
105
- }
106
- });
107
- }
108
- // Decision events (require payload inspection)
109
- subscribe(TRACKING_DECISION_BUS_EVENT, (payload) => {
110
- try {
111
- tracker.capture({
112
- eventType: resolveDecisionEventType(payload),
113
- category: "decision",
114
- address: extractAddress(payload),
115
- correlationId: extractCorrelationId(payload),
116
- data: toData(payload),
117
- });
118
- }
119
- catch (err) {
120
- logger.warn("tracking handler error (decision)", { err });
121
- }
122
- });
123
- // Action result events (require payload inspection)
124
- subscribe(TRACKING_ACTION_RESULT_BUS_EVENT, (payload) => {
125
- try {
126
- tracker.capture({
127
- eventType: resolveActionResultEventType(payload),
128
- category: "action",
129
- address: extractAddress(payload),
130
- correlationId: extractCorrelationId(payload),
131
- data: toData(payload),
132
- });
133
- }
134
- catch (err) {
135
- logger.warn("tracking handler error (action_result)", { err });
136
- }
137
- });
138
- return {
139
- async dispose() {
140
- for (const { event, handler } of handlers) {
141
- bus.off(event, handler);
142
- }
143
- handlers.length = 0;
144
- await tracker.shutdown();
145
- },
146
- };
147
- }
148
- //# sourceMappingURL=tracking-handler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tracking-handler.js","sourceRoot":"","sources":["../../src/tracking/tracking-handler.ts"],"names":[],"mappings":"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"}
@@ -1,35 +0,0 @@
1
- /**
2
- * Tracking transports: BatchingTransport (HTTP POST) and NoOpTransport.
3
- *
4
- * Both implement TrackingTransport. Never throw — all errors are caught and logged.
5
- * The batching transport buffers events and flushes on a timer or threshold.
6
- */
7
- import type { TrackingEvent, TrackingTransport } from "./types.js";
8
- export interface BatchingTransportOptions {
9
- baseUrl: string;
10
- apiKey: string;
11
- flushIntervalMs?: number;
12
- flushThreshold?: number;
13
- maxBufferSize?: number;
14
- }
15
- export declare class BatchingTransport implements TrackingTransport {
16
- private buffer;
17
- private timer;
18
- private flushing;
19
- private readonly url;
20
- private readonly apiKey;
21
- private readonly flushIntervalMs;
22
- private readonly flushThreshold;
23
- private readonly maxBufferSize;
24
- constructor(options: BatchingTransportOptions);
25
- enqueue(event: TrackingEvent): void;
26
- flush(): Promise<void>;
27
- shutdown(): Promise<void>;
28
- private pushBack;
29
- }
30
- export declare class NoOpTransport implements TrackingTransport {
31
- enqueue(_event: TrackingEvent): void;
32
- flush(): Promise<void>;
33
- shutdown(): Promise<void>;
34
- }
35
- //# sourceMappingURL=transport.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/tracking/transport.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAanE,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,iBAAkB,YAAW,iBAAiB;IACzD,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;gBAE3B,OAAO,EAAE,wBAAwB;IAgB7C,OAAO,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAY7B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAkDtB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB/B,OAAO,CAAC,QAAQ;CAQjB;AAID,qBAAa,aAAc,YAAW,iBAAiB;IACrD,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAC9B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IACtB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAChC"}
@@ -1,133 +0,0 @@
1
- /**
2
- * Tracking transports: BatchingTransport (HTTP POST) and NoOpTransport.
3
- *
4
- * Both implement TrackingTransport. Never throw — all errors are caught and logged.
5
- * The batching transport buffers events and flushes on a timer or threshold.
6
- */
7
- import { TRACKING_API_PATH, FLUSH_INTERVAL_MS, FLUSH_THRESHOLD, MAX_BUFFER_SIZE, } from "./constants.js";
8
- import { createLogger } from "../utils/logger.js";
9
- const logger = createLogger("[senpi-core][tracking-transport]");
10
- export class BatchingTransport {
11
- buffer = [];
12
- timer = null;
13
- flushing = false;
14
- url;
15
- apiKey;
16
- flushIntervalMs;
17
- flushThreshold;
18
- maxBufferSize;
19
- constructor(options) {
20
- this.url = `${options.baseUrl.replace(/\/+$/, "")}${TRACKING_API_PATH}`;
21
- this.apiKey = options.apiKey;
22
- this.flushIntervalMs = options.flushIntervalMs ?? FLUSH_INTERVAL_MS;
23
- this.flushThreshold = options.flushThreshold ?? FLUSH_THRESHOLD;
24
- this.maxBufferSize = options.maxBufferSize ?? MAX_BUFFER_SIZE;
25
- this.timer = setInterval(() => {
26
- void this.flush();
27
- }, this.flushIntervalMs);
28
- // Don't keep the process alive just for tracking flushes
29
- if (this.timer && typeof this.timer === "object" && "unref" in this.timer) {
30
- this.timer.unref();
31
- }
32
- }
33
- enqueue(event) {
34
- if (this.buffer.length >= this.maxBufferSize) {
35
- // FIFO eviction: drop oldest
36
- this.buffer.shift();
37
- }
38
- this.buffer.push(event);
39
- if (this.buffer.length >= this.flushThreshold) {
40
- void this.flush();
41
- }
42
- }
43
- async flush() {
44
- if (this.flushing || this.buffer.length === 0)
45
- return;
46
- this.flushing = true;
47
- const batch = this.buffer.splice(0, this.flushThreshold);
48
- try {
49
- const response = await fetch(this.url, {
50
- method: "POST",
51
- headers: {
52
- "Content-Type": "application/json",
53
- Authorization: `Bearer ${this.apiKey}`,
54
- },
55
- body: JSON.stringify({ events: batch }),
56
- signal: AbortSignal.timeout(15_000),
57
- });
58
- if (!response.ok) {
59
- const body = await response.text().catch(() => "<unreadable>");
60
- // Ingest returns JSON `{ accepted, rejected, errors? }` on 400 when `errors` is set
61
- let validationErrors;
62
- if (response.status === 400) {
63
- try {
64
- const parsed = JSON.parse(body);
65
- if (Array.isArray(parsed.errors))
66
- validationErrors = parsed.errors;
67
- }
68
- catch {
69
- /* not JSON */
70
- }
71
- }
72
- logger.warn("tracking flush failed", {
73
- status: response.status,
74
- eventCount: batch.length,
75
- body: body.slice(0, 500),
76
- validationErrors,
77
- sample: batch[0],
78
- });
79
- // Push back for retry (front of buffer, capped by maxBufferSize)
80
- this.pushBack(batch);
81
- }
82
- }
83
- catch (err) {
84
- logger.warn("tracking flush error", {
85
- err: err instanceof Error ? err.message : String(err),
86
- eventCount: batch.length,
87
- });
88
- this.pushBack(batch);
89
- }
90
- finally {
91
- this.flushing = false;
92
- }
93
- }
94
- async shutdown() {
95
- if (this.timer) {
96
- clearInterval(this.timer);
97
- this.timer = null;
98
- }
99
- // Drain the buffer — flush() pulls at most flushThreshold events per call,
100
- // so loop until empty. Cap attempts to avoid an infinite loop when the
101
- // server keeps failing and pushBack restores everything.
102
- this.flushing = false;
103
- const maxAttempts = Math.ceil(this.maxBufferSize / this.flushThreshold) + 1;
104
- for (let i = 0; i < maxAttempts && this.buffer.length > 0; i++) {
105
- const before = this.buffer.length;
106
- await this.flush();
107
- // If the flush made no progress (all events pushed back on failure),
108
- // stop instead of looping forever.
109
- if (this.buffer.length >= before)
110
- break;
111
- }
112
- if (this.buffer.length > 0) {
113
- logger.warn("tracking shutdown: dropping events that failed to flush", {
114
- dropped: this.buffer.length,
115
- });
116
- }
117
- }
118
- pushBack(events) {
119
- // Put failed events back at the front, but respect max buffer
120
- const space = this.maxBufferSize - this.buffer.length;
121
- if (space > 0) {
122
- const toRestore = events.slice(0, space);
123
- this.buffer.unshift(...toRestore);
124
- }
125
- }
126
- }
127
- // ─── NoOpTransport ──────────────────────────────────────────────────────────
128
- export class NoOpTransport {
129
- enqueue(_event) { }
130
- async flush() { }
131
- async shutdown() { }
132
- }
133
- //# sourceMappingURL=transport.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/tracking/transport.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- /**
2
- * Event tracking types — runtime side.
3
- * Matches the TrackingEvent envelope expected by POST /api/v1/tracking/events.
4
- */
5
- export interface TrackingEvent {
6
- id: string;
7
- timestamp: number;
8
- runtimeName: string;
9
- address: string;
10
- correlationId: string;
11
- eventType: string;
12
- category: string;
13
- data: Record<string, unknown>;
14
- runtimeVersion: string;
15
- }
16
- export interface TrackingTransport {
17
- enqueue(event: TrackingEvent): void;
18
- flush(): Promise<void>;
19
- shutdown(): Promise<void>;
20
- }
21
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tracking/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Event tracking types — runtime side.
3
- * Matches the TrackingEvent envelope expected by POST /api/v1/tracking/events.
4
- */
5
- export {};
6
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tracking/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
File without changes
File without changes
File without changes
File without changes
File without changes