@senpi/runtime 1.1.0-dev.runtime-phase-2.20260611120655 → 1.1.0-dev.runtime-phase-2.20260612055919

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;AAqFhD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,YAAY,GAAG,QAAQ,CAyGnE"}
@@ -23,6 +23,9 @@ function asRecord(v) {
23
23
  function nonEmpty(v) {
24
24
  return typeof v === "string" && v.length > 0 ? v : undefined;
25
25
  }
26
+ function hasAny(obj, keys) {
27
+ return keys.some((k) => obj[k] !== undefined);
28
+ }
26
29
  /** Set a string attribute, omitting null/undefined/empty. `0` survives (meaningful). */
27
30
  function putStr(map, key, value) {
28
31
  if (value === null || value === undefined || value === "")
@@ -114,10 +117,50 @@ export function trackingSpanToTraceRow(span) {
114
117
  putStr(spanAttributes, "subagent.child_session_key", span.childSessionKey);
115
118
  putStr(spanAttributes, "subagent.child_run_id", childRunId(data));
116
119
  }
117
- // Flatten the payload bag one level: each top-level data key → one attribute.
120
+ // Split known LLM/tool payloads into granular attributes so the size-pressured
121
+ // fitter can drop bulk (system prompt, history, tool I/O) while preserving the
122
+ // user prompt + model output. gen_ai.* aligns with the OTEL GenAI semantic
123
+ // convention (matching the gen_ai.request.model / gen_ai.usage.* keys above).
124
+ // Anything not consumed here falls through to a generic data.{k} flatten, so
125
+ // subagent/agent_end payloads and unrecognized shapes are never dropped.
126
+ const consumed = new Set();
118
127
  if (data) {
128
+ if (span.spanType === "llm") {
129
+ const input = asRecord(data.input);
130
+ if (input && hasAny(input, ["system", "prompt", "messages"])) {
131
+ putDataValue(spanAttributes, "gen_ai.system_instructions", input.system);
132
+ putDataValue(spanAttributes, "gen_ai.prompt", input.prompt);
133
+ putDataValue(spanAttributes, "gen_ai.input.messages", input.messages);
134
+ putDataValue(spanAttributes, "gen_ai.request.provider", input.provider);
135
+ consumed.add("input");
136
+ }
137
+ const output = asRecord(data.output);
138
+ if (output && hasAny(output, ["content", "lastAssistant", "assistantTexts", "finishReason"])) {
139
+ putDataValue(spanAttributes, "gen_ai.completion", output.content ?? output.lastAssistant ?? output.assistantTexts);
140
+ putDataValue(spanAttributes, "gen_ai.completion.finish_reason", output.finishReason);
141
+ consumed.add("output");
142
+ }
143
+ }
144
+ else if (span.spanType === "tool") {
145
+ if (data.input !== undefined) {
146
+ putDataValue(spanAttributes, "tool.input", data.input);
147
+ consumed.add("input");
148
+ }
149
+ if (data.output !== undefined) {
150
+ putDataValue(spanAttributes, "tool.output", data.output);
151
+ consumed.add("output");
152
+ }
153
+ if (nonEmpty(data.error) !== undefined) {
154
+ putDataValue(spanAttributes, "tool.error", data.error);
155
+ consumed.add("error");
156
+ }
157
+ consumed.add("tool_name"); // already surfaced as tool.name
158
+ consumed.add("toolName");
159
+ }
160
+ // Generic one-level flatten for everything not split above.
119
161
  for (const [k, v] of Object.entries(data)) {
120
- putDataValue(spanAttributes, `data.${k}`, v);
162
+ if (!consumed.has(k))
163
+ putDataValue(spanAttributes, `data.${k}`, v);
121
164
  }
122
165
  }
123
166
  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,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,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,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"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-span-tracker.d.ts","sourceRoot":"","sources":["../../../src/tracking/spans/plugin-span-tracker.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAShD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAEtD,iFAAiF;AACjF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,CAI3E;AAED,4EAA4E;AAC5E,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,aAAa,GACvB,aAAa,CASf;AAgCD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,WAAW,CA2Bb"}
1
+ {"version":3,"file":"plugin-span-tracker.d.ts","sourceRoot":"","sources":["../../../src/tracking/spans/plugin-span-tracker.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAShD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAEtD,iFAAiF;AACjF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,CAI3E;AAED,4EAA4E;AAC5E,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,aAAa,GACvB,aAAa,CASf;AAgCD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,WAAW,CAsDb"}
@@ -15,7 +15,8 @@
15
15
  */
16
16
  import { createLogger } from "../../utils/logger.js";
17
17
  import { TRACKING_API_BASE_URL } from "../constants.js";
18
- import { createBatcher, resolveTransportConfig, } from "../../recording/transport/index.js";
18
+ import { createBatcher, createTelemetryClient, resolveTransportConfig, } from "../../recording/transport/index.js";
19
+ import { TRACES_PATH } from "../../recording/transport/config.js";
19
20
  import { BatchingSpanTransport, NoOpSpanTransport } from "./span-transport.js";
20
21
  import { FanOutSpanTransport } from "./fan-out-span-transport.js";
21
22
  import { RecordingSpanTransport } from "./otel/recording-span-transport.js";
@@ -74,11 +75,40 @@ export function createPluginSpanTracker(apiKey) {
74
75
  const legacy = mode === "otel"
75
76
  ? new NoOpSpanTransport()
76
77
  : new BatchingSpanTransport({ baseUrl: trackingBaseUrl, apiKey });
77
- const recording = mode === "legacy"
78
- ? new NoOpSpanTransport()
79
- : new RecordingSpanTransport({
80
- batcher: createBatcher(resolveTransportConfig({ getToken: () => apiKey })),
78
+ let recording;
79
+ if (mode === "legacy") {
80
+ recording = new NoOpSpanTransport();
81
+ }
82
+ else {
83
+ const otelConfig = resolveTransportConfig({ getToken: () => apiKey });
84
+ // DIAGNOSTIC: confirm exactly where the span batcher posts and with what.
85
+ logger.info("span otel transport target", {
86
+ baseUrl: otelConfig.baseUrl,
87
+ tracesPath: TRACES_PATH,
88
+ tokenPresent: Boolean(apiKey),
89
+ flushIntervalMs: otelConfig.flushIntervalMs,
81
90
  });
91
+ const baseClient = createTelemetryClient(otelConfig);
92
+ // DIAGNOSTIC: log every trace send outcome (does it arrive? accepted? rejected? why?).
93
+ const loggingClient = {
94
+ sendTraces: async (rowsJson) => {
95
+ const res = await baseClient.sendTraces(rowsJson);
96
+ logger.info("span otel sendTraces result", {
97
+ rows: rowsJson.length,
98
+ outcome: res.outcome,
99
+ status: res.status,
100
+ accepted: res.accepted,
101
+ rejected: res.rejected,
102
+ errors: res.errors?.slice(0, 3),
103
+ });
104
+ return res;
105
+ },
106
+ sendLogs: (rowsJson) => baseClient.sendLogs(rowsJson),
107
+ };
108
+ recording = new RecordingSpanTransport({
109
+ batcher: createBatcher(otelConfig, loggingClient),
110
+ });
111
+ }
82
112
  logger.info("span sink mode", { mode });
83
113
  return new SpanTracker({ transport: composeSpanTransport(mode, legacy, recording) });
84
114
  }
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-span-tracker.js","sourceRoot":"","sources":["../../../src/tracking/spans/plugin-span-tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin-span-tracker.js","sourceRoot":"","sources":["../../../src/tracking/spans/plugin-span-tracker.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@senpi/runtime",
3
- "version": "1.1.0-dev.runtime-phase-2.20260611120655",
3
+ "version": "1.1.0-dev.runtime-phase-2.20260612055919",
4
4
  "description": "Senpi runtime plugin for OpenClaw",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",