@senpi/runtime 1.1.0-dev.runtime-phase-2.20260612045025 → 1.1.0-dev.runtime-phase-2.20260612060625

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.
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Row-aware size fitting for the OTEL ingest leg.
3
+ *
4
+ * The legacy field-level truncation (`truncateSpanData`, 2 MB/field) is sized for
5
+ * the legacy `/api/v1/tracking/spans` endpoint, which has no tight per-row cap.
6
+ * The OTEL `/v1/traces` route rejects any row whose *serialized JSON* exceeds
7
+ * 256 KB (`MAX_ROW_BYTES`) — and a row that flattens `data.input`/`data.output`/
8
+ * `messages` into `SpanAttributes` blows that even when each individual field is
9
+ * well under the 2 MB cap. So the recording leg needs its own row-aware budget:
10
+ * trim the largest `SpanAttributes` values (the heavy payloads) with a visible
11
+ * marker until the whole serialized row fits. Structural fields and small
12
+ * attributes are never touched.
13
+ */
14
+ import type { TraceRow } from "../../../recording/transport/rows.js";
15
+ /**
16
+ * Target serialized size for an OTEL trace row. Below the server's 256 KB
17
+ * `MAX_ROW_BYTES` cap, with headroom for UTF-8 byte/char skew and the small
18
+ * field-set differences between the client row and the server's reconstruction.
19
+ */
20
+ export declare const OTEL_ROW_BYTE_BUDGET = 245000;
21
+ export declare function fitTraceRowToBudget(row: TraceRow, maxBytes?: number): TraceRow;
22
+ //# sourceMappingURL=fit-row-budget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fit-row-budget.d.ts","sourceRoot":"","sources":["../../../../src/tracking/spans/otel/fit-row-budget.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAErE;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,SAAU,CAAC;AAmC5C,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,QAAQ,EACb,QAAQ,GAAE,MAA6B,GACtC,QAAQ,CA0CV"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Row-aware size fitting for the OTEL ingest leg.
3
+ *
4
+ * The legacy field-level truncation (`truncateSpanData`, 2 MB/field) is sized for
5
+ * the legacy `/api/v1/tracking/spans` endpoint, which has no tight per-row cap.
6
+ * The OTEL `/v1/traces` route rejects any row whose *serialized JSON* exceeds
7
+ * 256 KB (`MAX_ROW_BYTES`) — and a row that flattens `data.input`/`data.output`/
8
+ * `messages` into `SpanAttributes` blows that even when each individual field is
9
+ * well under the 2 MB cap. So the recording leg needs its own row-aware budget:
10
+ * trim the largest `SpanAttributes` values (the heavy payloads) with a visible
11
+ * marker until the whole serialized row fits. Structural fields and small
12
+ * attributes are never touched.
13
+ */
14
+ /**
15
+ * Target serialized size for an OTEL trace row. Below the server's 256 KB
16
+ * `MAX_ROW_BYTES` cap, with headroom for UTF-8 byte/char skew and the small
17
+ * field-set differences between the client row and the server's reconstruction.
18
+ */
19
+ export const OTEL_ROW_BYTE_BUDGET = 245_000;
20
+ const FIT_MARKER = "…[truncated to fit otel row cap]";
21
+ /** Always retain at least this many chars of a trimmed value as a front preview. */
22
+ const MIN_KEEP = 64;
23
+ /**
24
+ * Trim priority by attribute — higher is sacrificed first. The intent mirrors
25
+ * `sanitizePayloadValue` (drop bulk, keep the prompt): when a row is over budget
26
+ * we shed the high-volume / low-signal payloads (message history, system prompt,
27
+ * tool I/O) and protect the two things worth querying — the user prompt
28
+ * (`gen_ai.prompt`, weight 0) and the model output (`gen_ai.completion`, weight
29
+ * 10) — trimming them only as a last resort. Unlisted keys take the default.
30
+ */
31
+ const TRIM_WEIGHT = {
32
+ "gen_ai.input.messages": 100,
33
+ "gen_ai.system_instructions": 90,
34
+ "tool.input": 80,
35
+ "tool.output": 80,
36
+ "data.input": 70,
37
+ "data.output": 70,
38
+ "data.messages": 70,
39
+ "gen_ai.completion": 10,
40
+ "gen_ai.prompt": 0,
41
+ };
42
+ const DEFAULT_TRIM_WEIGHT = 50;
43
+ function trimWeight(key) {
44
+ return key in TRIM_WEIGHT ? TRIM_WEIGHT[key] : DEFAULT_TRIM_WEIGHT;
45
+ }
46
+ function byteLen(s) {
47
+ return Buffer.byteLength(s, "utf8");
48
+ }
49
+ export function fitTraceRowToBudget(row, maxBytes = OTEL_ROW_BYTE_BUDGET) {
50
+ if (byteLen(JSON.stringify(row)) <= maxBytes)
51
+ return row;
52
+ const attrs = { ...row.SpanAttributes };
53
+ // Each pass trims the current largest value; re-stripping any prior marker so
54
+ // the same value can be trimmed again (handles UTF-8 byte/char skew). The
55
+ // guard is a runaway backstop — convergence is guaranteed because every pass
56
+ // shrinks the largest value's length while over budget.
57
+ let guard = 0;
58
+ while (guard++ < 1000) {
59
+ const size = byteLen(JSON.stringify({ ...row, SpanAttributes: attrs }));
60
+ if (size <= maxBytes)
61
+ break;
62
+ // Pick the highest-priority (most trimmable) attribute that still has slack;
63
+ // tie-break on larger current length. This trims history/system/tool I/O
64
+ // before the user prompt and model output.
65
+ let key = "";
66
+ let bestWeight = -1;
67
+ let bestLen = 0;
68
+ for (const [k, v] of Object.entries(attrs)) {
69
+ const base = v.endsWith(FIT_MARKER) ? v.slice(0, v.length - FIT_MARKER.length) : v;
70
+ if (base.length <= MIN_KEEP)
71
+ continue; // nothing left to reclaim from this one
72
+ const w = trimWeight(k);
73
+ if (w > bestWeight || (w === bestWeight && base.length > bestLen)) {
74
+ bestWeight = w;
75
+ key = k;
76
+ bestLen = base.length;
77
+ }
78
+ }
79
+ if (key === "")
80
+ break; // nothing left to reclaim anywhere
81
+ const value = attrs[key];
82
+ const base = value.endsWith(FIT_MARKER)
83
+ ? value.slice(0, value.length - FIT_MARKER.length)
84
+ : value;
85
+ const overBy = size - maxBytes;
86
+ const keep = Math.max(MIN_KEEP, base.length - overBy - FIT_MARKER.length);
87
+ attrs[key] = base.slice(0, keep) + FIT_MARKER;
88
+ }
89
+ return { ...row, SpanAttributes: attrs };
90
+ }
91
+ //# sourceMappingURL=fit-row-budget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fit-row-budget.js","sourceRoot":"","sources":["../../../../src/tracking/spans/otel/fit-row-budget.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"map-span-to-trace-row.d.ts","sourceRoot":"","sources":["../../../../src/tracking/spans/otel/map-span-to-trace-row.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAwB,MAAM,sCAAsC,CAAC;AAE3F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAiFhD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,YAAY,GAAG,QAAQ,CA8DnE"}
1
+ {"version":3,"file":"map-span-to-trace-row.d.ts","sourceRoot":"","sources":["../../../../src/tracking/spans/otel/map-span-to-trace-row.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAwB,MAAM,sCAAsC,CAAC;AAE3F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AA0GhD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,YAAY,GAAG,QAAQ,CA2HnE"}
@@ -15,6 +15,26 @@ import { deriveTraceId, deriveSpanId, deriveParentSpanId } from "./span-ids.js";
15
15
  const SERVICE_NAME = "senpi-trading-runtime";
16
16
  const SCOPE_NAME = "senpi.otel";
17
17
  const SCOPE_VERSION = "2.0.0";
18
+ // `data.input` / `data.output` keys given an explicit gen_ai.* attribute above.
19
+ // Anything outside these is surfaced under gen_ai.input.* / gen_ai.output.* so
20
+ // no payload field is ever silently dropped by the split.
21
+ const MAPPED_LLM_INPUT_KEYS = new Set([
22
+ "system",
23
+ "prompt",
24
+ "messages",
25
+ "provider",
26
+ "temperature",
27
+ "maxTokens",
28
+ "imagesCount",
29
+ "tools",
30
+ "model",
31
+ ]);
32
+ const MAPPED_LLM_OUTPUT_KEYS = new Set([
33
+ "content",
34
+ "lastAssistant",
35
+ "assistantTexts",
36
+ "finishReason",
37
+ ]);
18
38
  function asRecord(v) {
19
39
  return v && typeof v === "object" && !Array.isArray(v)
20
40
  ? v
@@ -23,6 +43,9 @@ function asRecord(v) {
23
43
  function nonEmpty(v) {
24
44
  return typeof v === "string" && v.length > 0 ? v : undefined;
25
45
  }
46
+ function hasAny(obj, keys) {
47
+ return keys.some((k) => obj[k] !== undefined);
48
+ }
26
49
  /** Set a string attribute, omitting null/undefined/empty. `0` survives (meaningful). */
27
50
  function putStr(map, key, value) {
28
51
  if (value === null || value === undefined || value === "")
@@ -114,10 +137,70 @@ export function trackingSpanToTraceRow(span) {
114
137
  putStr(spanAttributes, "subagent.child_session_key", span.childSessionKey);
115
138
  putStr(spanAttributes, "subagent.child_run_id", childRunId(data));
116
139
  }
117
- // Flatten the payload bag one level: each top-level data key → one attribute.
140
+ // Split known LLM/tool payloads into granular attributes so the size-pressured
141
+ // fitter can drop bulk (system prompt, history, tool I/O) while preserving the
142
+ // user prompt + model output. gen_ai.* aligns with the OTEL GenAI semantic
143
+ // convention (matching the gen_ai.request.model / gen_ai.usage.* keys above).
144
+ // Anything not consumed here falls through to a generic data.{k} flatten, so
145
+ // subagent/agent_end payloads and unrecognized shapes are never dropped.
146
+ const consumed = new Set();
118
147
  if (data) {
148
+ if (span.spanType === "llm") {
149
+ const input = asRecord(data.input);
150
+ if (input && hasAny(input, ["system", "prompt", "messages"])) {
151
+ putDataValue(spanAttributes, "gen_ai.system_instructions", input.system);
152
+ putDataValue(spanAttributes, "gen_ai.prompt", input.prompt);
153
+ putDataValue(spanAttributes, "gen_ai.input.messages", input.messages);
154
+ putDataValue(spanAttributes, "gen_ai.request.provider", input.provider);
155
+ putDataValue(spanAttributes, "gen_ai.request.temperature", input.temperature);
156
+ putDataValue(spanAttributes, "gen_ai.request.max_tokens", input.maxTokens);
157
+ putDataValue(spanAttributes, "gen_ai.request.images_count", input.imagesCount);
158
+ putDataValue(spanAttributes, "gen_ai.request.tools", input.tools);
159
+ // The envelope's gen_ai.request.model (from span.model) wins; fall back to
160
+ // the requested input.model only when the envelope didn't set it.
161
+ if (nonEmpty(span.model) === undefined) {
162
+ putDataValue(spanAttributes, "gen_ai.request.model", input.model);
163
+ }
164
+ // Never silently drop input fields — surface anything not explicitly
165
+ // mapped (incl. future additions to extractLlmInput) under gen_ai.input.*.
166
+ for (const [k, v] of Object.entries(input)) {
167
+ if (!MAPPED_LLM_INPUT_KEYS.has(k))
168
+ putDataValue(spanAttributes, `gen_ai.input.${k}`, v);
169
+ }
170
+ consumed.add("input");
171
+ }
172
+ const output = asRecord(data.output);
173
+ if (output && hasAny(output, ["content", "lastAssistant", "assistantTexts", "finishReason"])) {
174
+ putDataValue(spanAttributes, "gen_ai.completion", output.content ?? output.lastAssistant ?? output.assistantTexts);
175
+ putDataValue(spanAttributes, "gen_ai.completion.finish_reason", output.finishReason);
176
+ // Same no-drop guard for any unmapped output fields.
177
+ for (const [k, v] of Object.entries(output)) {
178
+ if (!MAPPED_LLM_OUTPUT_KEYS.has(k))
179
+ putDataValue(spanAttributes, `gen_ai.output.${k}`, v);
180
+ }
181
+ consumed.add("output");
182
+ }
183
+ }
184
+ else if (span.spanType === "tool") {
185
+ if (data.input !== undefined) {
186
+ putDataValue(spanAttributes, "tool.input", data.input);
187
+ consumed.add("input");
188
+ }
189
+ if (data.output !== undefined) {
190
+ putDataValue(spanAttributes, "tool.output", data.output);
191
+ consumed.add("output");
192
+ }
193
+ if (nonEmpty(data.error) !== undefined) {
194
+ putDataValue(spanAttributes, "tool.error", data.error);
195
+ consumed.add("error");
196
+ }
197
+ consumed.add("tool_name"); // already surfaced as tool.name
198
+ consumed.add("toolName");
199
+ }
200
+ // Generic one-level flatten for everything not split above.
119
201
  for (const [k, v] of Object.entries(data)) {
120
- putDataValue(spanAttributes, `data.${k}`, v);
202
+ if (!consumed.has(k))
203
+ putDataValue(spanAttributes, `data.${k}`, v);
121
204
  }
122
205
  }
123
206
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"map-span-to-trace-row.js","sourceRoot":"","sources":["../../../../src/tracking/spans/otel/map-span-to-trace-row.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"map-span-to-trace-row.js","sourceRoot":"","sources":["../../../../src/tracking/spans/otel/map-span-to-trace-row.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AAE3E,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEhF,MAAM,YAAY,GAAG,uBAAuB,CAAC;AAC7C,MAAM,UAAU,GAAG,YAAY,CAAC;AAChC,MAAM,aAAa,GAAG,OAAO,CAAC;AAE9B,gFAAgF;AAChF,+EAA+E;AAC/E,0DAA0D;AAC1D,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC;IACpC,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,UAAU;IACV,aAAa;IACb,WAAW;IACX,aAAa;IACb,OAAO;IACP,OAAO;CACR,CAAC,CAAC;AACH,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;IACrC,SAAS;IACT,eAAe;IACf,gBAAgB;IAChB,cAAc;CACf,CAAC,CAAC;AAEH,SAAS,QAAQ,CAAC,CAAU;IAC1B,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACpD,CAAC,CAAE,CAA6B;QAChC,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,SAAS,QAAQ,CAAC,CAAU;IAC1B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/D,CAAC;AAED,SAAS,MAAM,CAAC,GAA4B,EAAE,IAAc;IAC1D,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;AAChD,CAAC;AAED,wFAAwF;AACxF,SAAS,MAAM,CACb,GAA2B,EAC3B,GAAW,EACX,KAAyC;IAEzC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO;IAClE,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,6FAA6F;AAC7F,SAAS,YAAY,CAAC,GAA2B,EAAE,GAAW,EAAE,KAAc;IAC5E,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO;IAChC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO;IAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,CAAC,KAAK,SAAS;gBAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACP,oDAAoD;QACtD,CAAC;QACD,OAAO;IACT,CAAC;IACD,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,QAAQ,CAAC,IAAkB;IAClC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtB,KAAK,KAAK;YACR,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QAC5D,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACnE,OAAO,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;QACxC,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACpF,OAAO,OAAO,CAAC,CAAC,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;QACtD,CAAC;QACD,KAAK,WAAW;YACd,OAAO,WAAW,CAAC;QACrB;YACE,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,QAAkC;IAClD,OAAO,QAAQ,KAAK,KAAK,IAAI,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC;AAC3E,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,UAAU,CAAC,IAAyC;IAC3D,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAkB;IACvD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAe,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAEhE,MAAM,kBAAkB,GAA2B,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC;IACpF,MAAM,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC;IACxD,MAAM,CAAC,kBAAkB,EAAE,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3D,MAAM,CAAC,kBAAkB,EAAE,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACzD,MAAM,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IACnE,4EAA4E;IAE5E,MAAM,cAAc,GAA2B,EAAE,CAAC;IAClD,MAAM,CAAC,cAAc,EAAE,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,CAAC,cAAc,EAAE,iBAAiB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IAC/D,MAAM,CAAC,cAAc,EAAE,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACvD,MAAM,CAAC,cAAc,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,CAAC,cAAc,EAAE,gBAAgB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAC7D,MAAM,CAAC,cAAc,EAAE,mBAAmB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IAClE,MAAM,CAAC,cAAc,EAAE,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACxD,MAAM,CAAC,cAAc,EAAE,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC3F,MAAM,CAAC,cAAc,EAAE,sBAAsB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3D,MAAM,CAAC,cAAc,EAAE,2BAA2B,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnE,MAAM,CAAC,cAAc,EAAE,4BAA4B,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACrE,MAAM,CAAC,cAAc,EAAE,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAEjD,0EAA0E;IAC1E,4EAA4E;IAC5E,mEAAmE;IACnE,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QACjC,MAAM,CAAC,cAAc,EAAE,4BAA4B,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC3E,MAAM,CAAC,cAAc,EAAE,uBAAuB,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,+EAA+E;IAC/E,+EAA+E;IAC/E,2EAA2E;IAC3E,8EAA8E;IAC9E,6EAA6E;IAC7E,yEAAyE;IACzE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,KAAK,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;gBAC7D,YAAY,CAAC,cAAc,EAAE,4BAA4B,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;gBACzE,YAAY,CAAC,cAAc,EAAE,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC5D,YAAY,CAAC,cAAc,EAAE,uBAAuB,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACtE,YAAY,CAAC,cAAc,EAAE,yBAAyB,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACxE,YAAY,CAAC,cAAc,EAAE,4BAA4B,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;gBAC9E,YAAY,CAAC,cAAc,EAAE,2BAA2B,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC3E,YAAY,CAAC,cAAc,EAAE,6BAA6B,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;gBAC/E,YAAY,CAAC,cAAc,EAAE,sBAAsB,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBAClE,2EAA2E;gBAC3E,kEAAkE;gBAClE,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;oBACvC,YAAY,CAAC,cAAc,EAAE,sBAAsB,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBACpE,CAAC;gBACD,qEAAqE;gBACrE,2EAA2E;gBAC3E,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC3C,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC;wBAAE,YAAY,CAAC,cAAc,EAAE,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC1F,CAAC;gBACD,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;YACD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrC,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;gBAC7F,YAAY,CACV,cAAc,EACd,mBAAmB,EACnB,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,cAAc,CAChE,CAAC;gBACF,YAAY,CAAC,cAAc,EAAE,iCAAiC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;gBACrF,qDAAqD;gBACrD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC5C,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC;wBAAE,YAAY,CAAC,cAAc,EAAE,iBAAiB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC5F,CAAC;gBACD,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC7B,YAAY,CAAC,cAAc,EAAE,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvD,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC9B,YAAY,CAAC,cAAc,EAAE,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBACzD,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzB,CAAC;YACD,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;gBACvC,YAAY,CAAC,cAAc,EAAE,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvD,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;YACD,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,gCAAgC;YAC3D,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC3B,CAAC;QAED,4DAA4D;QAC5D,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,YAAY,CAAC,cAAc,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,OAAO;QACL,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QACjC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;QAClC,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,YAAY,EAAE,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC;QACnD,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC;QACxB,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;QACjC,WAAW,EAAE,YAAY;QACzB,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC;QAClD,UAAU,EAAE,MAAM;QAClB,aAAa,EAAE,KAAK,IAAI,EAAE;QAC1B,cAAc,EAAE,cAAc;QAC9B,kBAAkB,EAAE,kBAAkB;QACtC,MAAM,EAAE,EAAE;QACV,SAAS,EAAE,UAAU;QACrB,YAAY,EAAE,aAAa;QAC3B,UAAU,EAAE,CAAC;QACb,OAAO;KACR,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"recording-span-transport.d.ts","sourceRoot":"","sources":["../../../../src/tracking/spans/otel/recording-span-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAE9E,OAAO,EACL,KAAK,WAAW,EAGjB,MAAM,kBAAkB,CAAC;AAM1B,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,gBAAgB,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAC/B;AAED,qBAAa,sBAAuB,YAAW,aAAa;IAC1D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAiC;IAClE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;gBAExC,OAAO,EAAE,6BAA6B;IAKlD,OAAO,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAK3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAK/B,uEAAuE;YACzD,OAAO;YAgBP,YAAY;CAG3B"}
1
+ {"version":3,"file":"recording-span-transport.d.ts","sourceRoot":"","sources":["../../../../src/tracking/spans/otel/recording-span-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAE9E,OAAO,EACL,KAAK,WAAW,EAGjB,MAAM,kBAAkB,CAAC;AAO1B,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,gBAAgB,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAC/B;AAED,qBAAa,sBAAuB,YAAW,aAAa;IAC1D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAiC;IAClE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;gBAExC,OAAO,EAAE,6BAA6B;IAKlD,OAAO,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAK3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAK/B,uEAAuE;YACzD,OAAO;YAkBP,YAAY;CAG3B"}
@@ -19,6 +19,7 @@
19
19
  import { truncateSpanData } from "../span-transport.js";
20
20
  import { getDefaultPiiRedactor, redactSpanData, } from "../redact-pii.js";
21
21
  import { trackingSpanToTraceRow } from "./map-span-to-trace-row.js";
22
+ import { fitTraceRowToBudget } from "./fit-row-budget.js";
22
23
  import { createLogger } from "../../../utils/logger.js";
23
24
  const logger = createLogger("[senpi-core][recording-span-transport]");
24
25
  export class RecordingSpanTransport {
@@ -49,7 +50,9 @@ export class RecordingSpanTransport {
49
50
  ? getDefaultPiiRedactor()
50
51
  : this.redactorOverride;
51
52
  const cleaned = redactor ? await redactSpanData(truncated, redactor) : truncated;
52
- this.batcher.enqueueTrace(trackingSpanToTraceRow(cleaned));
53
+ // Fit to the OTEL per-row byte cap (256 KB server-side) — the legacy
54
+ // 2 MB/field truncation above doesn't bound the assembled row.
55
+ this.batcher.enqueueTrace(fitTraceRowToBudget(trackingSpanToTraceRow(cleaned)));
53
56
  }
54
57
  catch (err) {
55
58
  logger.warn("span → trace-row pipeline failed; dropped", {
@@ -1 +1 @@
1
- {"version":3,"file":"recording-span-transport.js","sourceRoot":"","sources":["../../../../src/tracking/spans/otel/recording-span-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAEL,qBAAqB,EACrB,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,MAAM,MAAM,GAAG,YAAY,CAAC,wCAAwC,CAAC,CAAC;AAYtE,MAAM,OAAO,sBAAsB;IAChB,OAAO,CAAmB;IAC1B,gBAAgB,CAAiC;IACjD,OAAO,GAAG,IAAI,GAAG,EAAiB,CAAC;IAEpD,YAAY,OAAsC;QAChD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAC3C,CAAC;IAED,OAAO,CAAC,IAAkB;QACxB,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;IAED,uEAAuE;IAC/D,KAAK,CAAC,OAAO,CAAC,IAAkB;QACtC,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,QAAQ,GACZ,IAAI,CAAC,gBAAgB,KAAK,SAAS;gBACjC,CAAC,CAAC,qBAAqB,EAAE;gBACzB,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC;YAC5B,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,cAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACjF,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,2CAA2C,EAAE;gBACvD,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACtD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9C,CAAC;CACF"}
1
+ {"version":3,"file":"recording-span-transport.js","sourceRoot":"","sources":["../../../../src/tracking/spans/otel/recording-span-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAEL,qBAAqB,EACrB,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,MAAM,MAAM,GAAG,YAAY,CAAC,wCAAwC,CAAC,CAAC;AAYtE,MAAM,OAAO,sBAAsB;IAChB,OAAO,CAAmB;IAC1B,gBAAgB,CAAiC;IACjD,OAAO,GAAG,IAAI,GAAG,EAAiB,CAAC;IAEpD,YAAY,OAAsC;QAChD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAC3C,CAAC;IAED,OAAO,CAAC,IAAkB;QACxB,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;IAED,uEAAuE;IAC/D,KAAK,CAAC,OAAO,CAAC,IAAkB;QACtC,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,QAAQ,GACZ,IAAI,CAAC,gBAAgB,KAAK,SAAS;gBACjC,CAAC,CAAC,qBAAqB,EAAE;gBACzB,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC;YAC5B,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,cAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACjF,qEAAqE;YACrE,+DAA+D;YAC/D,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAClF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,2CAA2C,EAAE;gBACvD,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACtD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9C,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@senpi/runtime",
3
- "version": "1.1.0-dev.runtime-phase-2.20260612045025",
3
+ "version": "1.1.0-dev.runtime-phase-2.20260612060625",
4
4
  "description": "Senpi runtime plugin for OpenClaw",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",