@senpi/runtime 3.0.113 → 3.0.114

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.
@@ -415,12 +415,61 @@ MAX_TICK_CALL_RECORDS = 64
415
415
  MAX_TICK_CALL_ARG_KEYS = 16
416
416
  MAX_TICK_CALL_ARG_CHARS = 1024
417
417
 
418
+ # A list of scalars is kept as well, because the assets a scanner priced arrive
419
+ # in that shape and are the most useful argument on the event. Both bounds apply
420
+ # to one list: at most this many elements, and no more rendered characters than a
421
+ # single string argument is allowed. MAX_TICK_CALL_ARG_CHARS is shared rather than
422
+ # doubled so one long list cannot cost more frame than one long string.
423
+ MAX_TICK_CALL_ARG_LIST_ITEMS = 16
424
+
425
+
426
+ def _is_arg_scalar(value: Any) -> bool:
427
+ """Whether one value is a scalar this event carries: str, bool, or a finite number.
428
+
429
+ The int branch covers bool, which subclasses it, and comes before the float
430
+ branch on purpose: an int cannot be infinite, and `math.isfinite` on one too
431
+ large to convert to a float raises OverflowError.
432
+ """
433
+ if isinstance(value, int):
434
+ return True
435
+ if isinstance(value, float):
436
+ return math.isfinite(value)
437
+ return isinstance(value, str)
438
+
439
+
440
+ def _record_arg_list(value: list) -> Optional[list]:
441
+ """One list argument, bounded — or None when the list is not carried at all.
442
+
443
+ A single non-scalar element rejects the whole list. Filtering it out instead
444
+ would let an author's unbounded dict decide how much of a nested payload gets
445
+ rendered, which is the input this event refuses to take.
446
+
447
+ Elements dropped by either bound are replaced by a trailing count, so a
448
+ shortened list reads as shortened rather than as a shorter call. The marker is
449
+ a plain string element because the consumer expands dictionary indexes and
450
+ scalars, and a nested object would not survive it.
451
+ """
452
+ if not all(_is_arg_scalar(item) for item in value):
453
+ return None
454
+ kept: list = []
455
+ chars = 0
456
+ for item in value[:MAX_TICK_CALL_ARG_LIST_ITEMS]:
457
+ rendered = len(item) if isinstance(item, str) else len(str(item))
458
+ if chars + rendered > MAX_TICK_CALL_ARG_CHARS:
459
+ break
460
+ chars += rendered
461
+ kept.append(item)
462
+ if len(kept) < len(value):
463
+ kept.append(f"+{len(value) - len(kept)} more")
464
+ return kept
465
+
418
466
 
419
467
  def _record_args(args: Optional[dict]) -> dict:
420
468
  """The scalar arguments of one call, bounded — never the caller's own dict.
421
469
 
422
470
  A reference would let authored code mutate what the tally already recorded,
423
- and a deep copy would pay for a payload the wire is going to drop anyway.
471
+ and a deep copy would pay for a payload the wire is going to drop anyway. A
472
+ kept list is a new list for the same reason.
424
473
  """
425
474
  if not isinstance(args, dict):
426
475
  return {}
@@ -431,8 +480,21 @@ def _record_args(args: Optional[dict]) -> dict:
431
480
  value = args[key]
432
481
  if isinstance(value, str):
433
482
  kept[key] = value[:MAX_TICK_CALL_ARG_CHARS]
434
- elif isinstance(value, bool) or (isinstance(value, (int, float)) and value == value):
483
+ elif _is_arg_scalar(value):
484
+ # The same gate the list path applies, and for a harder reason here: an
485
+ # `inf` compares equal to itself, so a self-equality check lets it
486
+ # through, and json.dumps then writes the bare `Infinity` token. That
487
+ # token is not JSON, and the tick facts ride one POST body — a
488
+ # JavaScript JSON.parse on it throws and every other fact on the tick
489
+ # is lost with the one argument.
435
490
  kept[key] = value
491
+ elif isinstance(value, list):
492
+ # An empty list is kept. Absent means unmeasured on this event, and a
493
+ # scanner that passed no elements did measure something: it asked for
494
+ # nothing. Dropping it would report the argument as never supplied.
495
+ rendered_list = _record_arg_list(value)
496
+ if rendered_list is not None:
497
+ kept[key] = rendered_list
436
498
  return kept
437
499
 
438
500
 
@@ -55,6 +55,21 @@ export declare const MAX_TICK_TEXT_CHARS = 1024;
55
55
  * because they are read off the scaffold's own totals), and only the per-call detail is cut.
56
56
  */
57
57
  export declare const MAX_TICK_CALLS = 64;
58
+ /**
59
+ * Bounds for one list-valued argument, mirroring the producer's own per-list bounds: at most this
60
+ * many elements, and no more characters across the whole list than a single string argument is
61
+ * allowed. The frame is a second, independent gate on values the scaffold already bounded, so it
62
+ * must not admit a longer list than the scaffold can send — and a list from any other producer is
63
+ * held to the same terms here.
64
+ *
65
+ * The frame's byte budget is not a substitute. That budget drops a whole ENTRY that does not fit,
66
+ * so without these one scanner's long list would cost that scanner's entire tick rather than the
67
+ * tail of the list. The character bound is counted AFTER the scrub, for the reason `scrubText`
68
+ * gives: a redaction can be longer than the text it replaced, so a bound taken first would bound
69
+ * the input and not what leaves.
70
+ */
71
+ export declare const MAX_TICK_CALL_ARG_LIST_ITEMS = 16;
72
+ export declare const MAX_TICK_CALL_ARG_LIST_CHARS = 1024;
58
73
  /**
59
74
  * `cm` — the state commit outcome, as a RAW STRING and not a dictionary index. Only `a` `s` `m` `o`
60
75
  * `x` are interned; these are a small closed set a client reads directly.
@@ -1 +1 @@
1
- {"version":3,"file":"tick-frame.d.ts","sourceRoot":"","sources":["../../src/telemetry/tick-frame.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tick-frame.d.ts","sourceRoot":"","sources":["../../src/telemetry/tick-frame.ts"],"names":[],"mappings":"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"}
@@ -23,7 +23,7 @@
23
23
  * {@link ../utils/telemetry-required-log.js} for why these facts must not become catalogued events.
24
24
  */
25
25
  import { capValue } from "./attributes.js";
26
- import { sanitizeFields as sanitizeScalarFields } from "../utils/telemetry-required-log.js";
26
+ import { sanitizeFields as sanitizeScalarFields, sanitizeFieldsWithScalarLists as sanitizeScalarListFields, } from "../utils/telemetry-required-log.js";
27
27
  /**
28
28
  * The level a source takes when the configuration does not name it.
29
29
  *
@@ -46,6 +46,21 @@ export const MAX_TICK_TEXT_CHARS = 1_024;
46
46
  * because they are read off the scaffold's own totals), and only the per-call detail is cut.
47
47
  */
48
48
  export const MAX_TICK_CALLS = 64;
49
+ /**
50
+ * Bounds for one list-valued argument, mirroring the producer's own per-list bounds: at most this
51
+ * many elements, and no more characters across the whole list than a single string argument is
52
+ * allowed. The frame is a second, independent gate on values the scaffold already bounded, so it
53
+ * must not admit a longer list than the scaffold can send — and a list from any other producer is
54
+ * held to the same terms here.
55
+ *
56
+ * The frame's byte budget is not a substitute. That budget drops a whole ENTRY that does not fit,
57
+ * so without these one scanner's long list would cost that scanner's entire tick rather than the
58
+ * tail of the list. The character bound is counted AFTER the scrub, for the reason `scrubText`
59
+ * gives: a redaction can be longer than the text it replaced, so a bound taken first would bound
60
+ * the input and not what leaves.
61
+ */
62
+ export const MAX_TICK_CALL_ARG_LIST_ITEMS = 16;
63
+ export const MAX_TICK_CALL_ARG_LIST_CHARS = 1_024;
49
64
  /**
50
65
  * `cm` — the state commit outcome, as a RAW STRING and not a dictionary index. Only `a` `s` `m` `o`
51
66
  * `x` are interned; these are a small closed set a client reads directly.
@@ -153,6 +168,65 @@ async function scrubScalarBag(bag, scrub) {
153
168
  }
154
169
  return out;
155
170
  }
171
+ /**
172
+ * One list argument, scrubbed and bounded — or `null` when the list is not carried at all.
173
+ *
174
+ * Every string element goes through the same scrub a bare string value does, because a list that
175
+ * bypassed redaction would put on the wire exactly what the scrub exists to keep off it. An element
176
+ * the scrub could not vouch for refuses the whole list: at bag level an unvouchable value costs its
177
+ * key, and this list IS one key's value.
178
+ *
179
+ * Elements cut by either bound are replaced by a trailing count, so a shortened list reads as
180
+ * shortened rather than as a shorter call. The marker is a plain string element because a consumer
181
+ * expands dictionary indexes and scalars, and a nested object would not survive that.
182
+ */
183
+ async function scrubScalarList(items, scrub) {
184
+ const kept = [];
185
+ let chars = 0;
186
+ for (const item of items.slice(0, MAX_TICK_CALL_ARG_LIST_ITEMS)) {
187
+ const rendered = typeof item === "string" ? await scrubText(item, scrub) : String(item);
188
+ if (rendered === null)
189
+ return null;
190
+ if (chars + rendered.length > MAX_TICK_CALL_ARG_LIST_CHARS)
191
+ break;
192
+ chars += rendered.length;
193
+ kept.push(typeof item === "string" ? rendered : item);
194
+ }
195
+ if (kept.length < items.length)
196
+ kept.push(`+${items.length - kept.length} more`);
197
+ return kept;
198
+ }
199
+ /**
200
+ * One call's arguments: every scalar as the state projection keeps them, and additionally a list
201
+ * whose every element is a scalar.
202
+ *
203
+ * Which assets a scanner priced is the argument an operator reads first, and it arrives as a list —
204
+ * so an argument bag is the one bag on this frame that needs the wider rule. It is asked for HERE
205
+ * and not in the shared sanitiser: the narrow rule is a contract the required log's consumer and the
206
+ * author's state projection both depend on, and neither may gain lists because an argument bag
207
+ * wanted them.
208
+ */
209
+ async function scrubCallArgs(bag, scrub) {
210
+ const { attributes } = sanitizeScalarListFields(bag);
211
+ const out = {};
212
+ for (const key of Object.keys(attributes)) {
213
+ const value = attributes[key];
214
+ if (Array.isArray(value)) {
215
+ const list = await scrubScalarList(value, scrub);
216
+ if (list !== null)
217
+ out[key] = list;
218
+ continue;
219
+ }
220
+ if (typeof value !== "string") {
221
+ out[key] = value;
222
+ continue;
223
+ }
224
+ const scrubbed = await scrubText(value, scrub);
225
+ if (scrubbed !== null)
226
+ out[key] = scrubbed;
227
+ }
228
+ return out;
229
+ }
156
230
  export function createTickFrameBuilder(options) {
157
231
  const { epoch, t0, settings } = options;
158
232
  const maxBytes = options.maxBytes ?? DEFAULT_MAX_FRAME_BYTES;
@@ -235,7 +309,7 @@ export function createTickFrameBuilder(options) {
235
309
  for (const call of calls.slice(0, MAX_TICK_CALLS)) {
236
310
  const tool = intern("m", capValue(call.tool, MAX_TICK_TEXT_CHARS), added);
237
311
  const ms = count(call.ms) ?? 0;
238
- const args = call.args === undefined ? {} : await scrubScalarBag(call.args, scrub);
312
+ const args = call.args === undefined ? {} : await scrubCallArgs(call.args, scrub);
239
313
  if (call.errorType === undefined) {
240
314
  detail.push([tool, ms, args]);
241
315
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"tick-frame.js","sourceRoot":"","sources":["../../src/telemetry/tick-frame.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tick-frame.js","sourceRoot":"","sources":["../../src/telemetry/tick-frame.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EACL,cAAc,IAAI,oBAAoB,EACtC,6BAA6B,IAAI,wBAAwB,GAE1D,MAAM,oCAAoC,CAAC;AAe5C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAe,SAAS,CAAC;AAEzD,uFAAuF;AACvF,MAAM,YAAY,GAA0B,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAE1E;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAEzC;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AAEjC;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAC/C,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,CAAC;AAElD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,aAAa,CAAC;AAChD,MAAM,CAAC,MAAM,qBAAqB,GAAG,gBAAgB,CAAC;AAiJtD,iFAAiF;AACjF,MAAM,uBAAuB,GAAG,GAAG,GAAG,IAAI,CAAC;AAE3C,4DAA4D;AAC5D,MAAM,eAAe,GAAG,CAAC,CAAC;AAE1B,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,YAAkC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC1F,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAc;IAIjD,MAAM,QAAQ,GAA0B;QACtC,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,mBAAmB;QACxB,KAAK,EAAE,mBAAmB;KAC3B,CAAC;IACF,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAE7F,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,KAAK,GAAG,EAAE,CAAC;QACrE,CAAC;QACD,4FAA4F;QAC5F,2EAA2E;QAC3E,OAAO,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,KAAK,KAAK,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC;IAC9E,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACtD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;IACnG,CAAC;IAED,MAAM,GAAG,GAAG,KAA2C,CAAC;IACxD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,CAAC,GAAoB,EAAc,EAAE;QAChD,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,mBAAmB,CAAC;QACpD,IAAI,YAAY,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACtC,GAAG,CAAC,IAAI,CAAC,iBAAiB,GAAG,KAAK,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpD,OAAO,mBAAmB,CAAC;IAC7B,CAAC,CAAC;IACF,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACxB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5B,OAAO;QACL,8FAA8F;QAC9F,qFAAqF;QACrF,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE;QACvC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvD,CAAC;AACJ,CAAC;AAED,kDAAkD;AAClD,SAAS,cAAc,CAAC,KAAiB;IACvC,OAAO,KAAK,KAAK,KAAK,CAAC;AACzB,CAAC;AAED,mFAAmF;AACnF,SAAS,KAAK,CAAC,KAAc;IAC3B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/F,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,SAAS,CAAC,IAAY,EAAE,KAAgB;IACrD,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IAC3B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;QACnC,OAAO,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAC5E,CAAC;IAAC,MAAM,CAAC;QACP,0FAA0F;QAC1F,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,uGAAuG;AACvG,KAAK,UAAU,cAAc,CAC3B,GAAsC,EACtC,KAAgB;IAEhB,MAAM,EAAE,UAAU,EAAE,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IACjD,MAAM,GAAG,GAAoC,EAAE,CAAC;IAChD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAE,CAAC;QAC/B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACjB,SAAS;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC/C,IAAI,QAAQ,KAAK,IAAI;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;IAC7C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;GAWG;AACH,KAAK,UAAU,eAAe,CAC5B,KAAiC,EACjC,KAAgB;IAEhB,MAAM,IAAI,GAAsB,EAAE,CAAC;IACnC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,4BAA4B,CAAC,EAAE,CAAC;QAChE,MAAM,QAAQ,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxF,IAAI,QAAQ,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACnC,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,GAAG,4BAA4B;YAAE,MAAM;QAClE,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,OAAO,CAAC,CAAC;IACjF,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,aAAa,CAC1B,GAAsC,EACtC,KAAgB;IAEhB,MAAM,EAAE,UAAU,EAAE,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;IACrD,MAAM,GAAG,GAAwD,EAAE,CAAC;IACpE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAE,CAAC;QAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACjD,IAAI,IAAI,KAAK,IAAI;gBAAE,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YACnC,SAAS;QACX,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACjB,SAAS;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC/C,IAAI,QAAQ,KAAK,IAAI;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;IAC7C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAgC;IACrE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,uBAAuB,CAAC;IAC7D,MAAM,UAAU,GAAwB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;IAC9E,MAAM,OAAO,GAAqB,EAAE,CAAC;IAErC,+FAA+F;IAC/F,sFAAsF;IACtF,IAAI,KAAK,GAAG,MAAM,CAAC,UAAU,CAC3B,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,EAA6B,CAAC,CACxF,CAAC;IAEF;;;;;;OAMG;IACH,SAAS,MAAM,CAAC,IAA+B,EAAE,IAAY,EAAE,KAAwB;QACrF,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAC/B,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,iEAAiE;IACjE,SAAS,KAAK;QACZ,OAAO;YACL,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM;YACtB,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM;YACtB,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM;YACtB,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM;YACtB,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM;SACvB,CAAC;IACJ,CAAC;IAED,SAAS,OAAO,CAAC,IAA+C;QAC9D,UAAU,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;QAC7B,UAAU,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;QAC7B,UAAU,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;QAC7B,UAAU,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;QAC7B,UAAU,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;;OAMG;IACH,KAAK,UAAU,OAAO,CACpB,IAAiB,EACjB,KAAgB,EAChB,KAAwB;QAExB,IAAI,QAAQ,CAAC,GAAG,KAAK,KAAK;YAAE,OAAO,EAAE,CAAC;QACtC,MAAM,GAAG,GAAY,EAAE,CAAC;QACxB,yFAAyF;QACzF,6FAA6F;QAC7F,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC5B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC9C,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,GAAG,CAAC;gBAAE,GAAG,CAAC,EAAE,GAAG,aAAa,CAAC;YAC7E,OAAO,GAAG,CAAC;QACb,CAAC;QAED,+FAA+F;QAC/F,yEAAyE;QACzE,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC;QAE7D,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,GAAG,CAAC;YAAE,GAAG,CAAC,EAAE,GAAG,SAAS,CAAC;QAEjE,IAAI,QAAQ,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAmB,EAAE,CAAC;YAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,EAAE,KAAK,CAAC,CAAC;gBAC3E,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC3C,CAAC;YACD,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;YACf,OAAO,GAAG,CAAC;QACb,CAAC;QAED,MAAM,MAAM,GAAqB,EAAE,CAAC;QACpC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,EAAE,KAAK,CAAC,CAAC;YAC1E,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAClF,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACjC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC9B,SAAS;YACX,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,EAAE,KAAK,CAAC,CAAC;YAC9E,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;QACrC,CAAC;QACD,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;QACf,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;OAIG;IACH,SAAS,WAAW,CAAC,IAAiB;QACpC,OAAO,QAAQ,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;OAMG;IACH,KAAK,UAAU,SAAS,CAAC,IAAiB,EAAE,KAAgB;QAC1D,IAAI,QAAQ,CAAC,KAAK,KAAK,KAAK;YAAE,OAAO,EAAE,CAAC;QACxC,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC1C,IAAI,OAAO,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,EAAE,CAAC;YAC5D,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;QACnC,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QACxC,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;IACzD,CAAC;IAED,KAAK,UAAU,GAAG,CAAC,IAAiB,EAAE,KAAgB;QACpD,IAAI,CAAC,QAAQ,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QACpC,MAAM,IAAI,GAAG,KAAK,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,CAAC,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7D,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACzC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACxC,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC/E,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC3D,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACpD,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACjE,MAAM,MAAM,GACV,OAAO,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW;gBACjE,CAAC,CAAC,IAAI,CAAC,MAAM;gBACb,CAAC,CAAC,SAAS,CAAC;YAEhB,6FAA6F;YAC7F,6FAA6F;YAC7F,oFAAoF;YACpF,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC3C,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC7C,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YACtC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC9C,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YAC9B,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC3C,MAAM,KAAK,GAAmB;gBAC5B,CAAC;gBACD,CAAC;gBACD,CAAC,EAAE,IAAI,CAAC,UAAU,GAAG,EAAE;gBACvB,CAAC;gBACD,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;gBAChD,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;gBAC/B,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;gBACnD,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;gBAClD,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzD,GAAG,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChD,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;gBAC/C,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;gBAC/C,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC5C,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;gBACrC,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;gBACtD,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;aACpD,CAAC;YAEF,2FAA2F;YAC3F,+FAA+F;YAC/F,+FAA+F;YAC/F,MAAM,IAAI,GACR,KAAK,CAAC,KAAK;gBACX,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBACxC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7C,IAAI,KAAK,GAAG,IAAI,GAAG,QAAQ,EAAE,CAAC;gBAC5B,OAAO,CAAC,IAAI,CAAC,CAAC;gBACd,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpB,KAAK,IAAI,IAAI,CAAC;YACd,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,sEAAsE;YACtE,OAAO,CAAC,IAAI,CAAC,CAAC;YACd,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO;QACL,GAAG;QACH,KAAK,EAAE,GAAG,EAAE,CACV,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE;KAClF,CAAC;AACJ,CAAC"}
@@ -16,12 +16,15 @@
16
16
  * telemetry would go dark without anyone noticing.
17
17
  */
18
18
  import type { Logger } from "./logger.js";
19
+ /** A value a consumer can parse on sight: no shape to walk, no encoding to agree on. */
20
+ export type TelemetryScalar = string | number | boolean;
19
21
  /** Named structured fields — scalars only. A consumer reads keys, never a formatted sentence. */
20
- export type TelemetryLogFields = Record<string, string | number | boolean>;
22
+ export type TelemetryLogFields = Record<string, TelemetryScalar>;
23
+ /** Named structured fields, widened by one shape: a list whose every element is a scalar. */
24
+ export type TelemetryListFields = Record<string, TelemetryScalar | TelemetryScalar[]>;
21
25
  /**
22
26
  * Keep the values a consumer can actually parse: strings, finite numbers, booleans. Everything else —
23
- * objects, arrays, `null`/`undefined`, `NaN`/`Infinity`, functions — is dropped and counted. Each
24
- * property is read inside the guard so a throwing getter costs one field, not the record.
27
+ * objects, arrays, `null`/`undefined`, `NaN`/`Infinity`, functions — is dropped and counted.
25
28
  *
26
29
  * Exported because the tick frame's state projection has to apply the SAME rule to an author's own
27
30
  * state row. Sharing the implementation is what makes "sanitised exactly as the required log does"
@@ -31,6 +34,23 @@ export declare function sanitizeFields(fields: unknown): {
31
34
  attributes: TelemetryLogFields;
32
35
  dropped: number;
33
36
  };
37
+ /**
38
+ * `sanitizeFields`, widened by exactly one shape: a list whose every element is a scalar.
39
+ *
40
+ * A SECOND entry point rather than a flag on the first, because the two rules belong to different
41
+ * consumers and the narrow one is a contract two call sites depend on. The required log's consumer
42
+ * reads flat named fields, and the tick frame's state projection promises to carry what that log
43
+ * would have written; neither may gain lists as a side effect of a caller that wants them.
44
+ *
45
+ * A single non-scalar element refuses the WHOLE list rather than filtering it down. Filtering would
46
+ * let an author's unbounded nested value decide how much of itself gets rendered, and scalars-only
47
+ * is the rule that keeps a nested payload off the wire. The kept list is a new array, so the
48
+ * caller's own can still be mutated without changing what was recorded.
49
+ */
50
+ export declare function sanitizeFieldsWithScalarLists(fields: unknown): {
51
+ attributes: TelemetryListFields;
52
+ dropped: number;
53
+ };
34
54
  /**
35
55
  * Write one telemetry-required log. `name` is a stable machine identifier and becomes the whole
36
56
  * body — the facts live in `fields`, never interpolated into a sentence. The wrapper's own keys are
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry-required-log.d.ts","sourceRoot":"","sources":["../../src/utils/telemetry-required-log.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,iGAAiG;AACjG,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;AAQ3E;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG;IAAE,UAAU,EAAE,kBAAkB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAuBnG;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,kBAAkB,GACzB,IAAI,CAON"}
1
+ {"version":3,"file":"telemetry-required-log.d.ts","sourceRoot":"","sources":["../../src/utils/telemetry-required-log.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,wFAAwF;AACxF,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAExD,iGAAiG;AACjG,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAEjE,6FAA6F;AAC7F,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,EAAE,CAAC,CAAC;AA6CtF;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG;IAAE,UAAU,EAAE,kBAAkB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAInG;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,OAAO,GACd;IAAE,UAAU,EAAE,mBAAmB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAMtD;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,kBAAkB,GACzB,IAAI,CAON"}
@@ -19,16 +19,20 @@
19
19
  const REQUIRED_MARKER_KEY = "log.telemetry.required";
20
20
  /** Count of caller fields that failed the scalar contract, so a silent drop stays visible. */
21
21
  const DROPPED_COUNT_KEY = "log.fields.dropped";
22
+ /** Whether one value is a scalar a consumer can parse: a string, a boolean, a finite number. */
23
+ function isTelemetryScalar(value) {
24
+ if (typeof value === "string" || typeof value === "boolean")
25
+ return true;
26
+ return typeof value === "number" && Number.isFinite(value);
27
+ }
22
28
  /**
23
- * Keep the values a consumer can actually parse: strings, finite numbers, booleans. Everything else —
24
- * objects, arrays, `null`/`undefined`, `NaN`/`Infinity`, functions — is dropped and counted. Each
25
- * property is read inside the guard so a throwing getter costs one field, not the record.
29
+ * Walk a bag once, keeping what `keep` vouches for and counting every other key as dropped, so a
30
+ * silent drop stays visible. `keep` returns `undefined` to refuse a value; that is unambiguous
31
+ * because an `undefined` is itself never a value any of these bags carries.
26
32
  *
27
- * Exported because the tick frame's state projection has to apply the SAME rule to an author's own
28
- * state row. Sharing the implementation is what makes "sanitised exactly as the required log does"
29
- * true rather than intended.
33
+ * Each property is read inside the guard so a throwing getter costs one field, not the record.
30
34
  */
31
- export function sanitizeFields(fields) {
35
+ function sanitizeBag(fields, keep) {
32
36
  const attributes = {};
33
37
  let dropped = 0;
34
38
  if (typeof fields !== "object" || fields === null || Array.isArray(fields)) {
@@ -43,18 +47,47 @@ export function sanitizeFields(fields) {
43
47
  dropped++;
44
48
  continue;
45
49
  }
46
- if (typeof value === "string" || typeof value === "boolean") {
47
- attributes[key] = value;
48
- }
49
- else if (typeof value === "number" && Number.isFinite(value)) {
50
- attributes[key] = value;
51
- }
52
- else {
50
+ const kept = keep(value);
51
+ if (kept === undefined)
53
52
  dropped++;
54
- }
53
+ else
54
+ attributes[key] = kept;
55
55
  }
56
56
  return { attributes, dropped };
57
57
  }
58
+ /**
59
+ * Keep the values a consumer can actually parse: strings, finite numbers, booleans. Everything else —
60
+ * objects, arrays, `null`/`undefined`, `NaN`/`Infinity`, functions — is dropped and counted.
61
+ *
62
+ * Exported because the tick frame's state projection has to apply the SAME rule to an author's own
63
+ * state row. Sharing the implementation is what makes "sanitised exactly as the required log does"
64
+ * true rather than intended.
65
+ */
66
+ export function sanitizeFields(fields) {
67
+ return sanitizeBag(fields, (value) => isTelemetryScalar(value) ? value : undefined);
68
+ }
69
+ /**
70
+ * `sanitizeFields`, widened by exactly one shape: a list whose every element is a scalar.
71
+ *
72
+ * A SECOND entry point rather than a flag on the first, because the two rules belong to different
73
+ * consumers and the narrow one is a contract two call sites depend on. The required log's consumer
74
+ * reads flat named fields, and the tick frame's state projection promises to carry what that log
75
+ * would have written; neither may gain lists as a side effect of a caller that wants them.
76
+ *
77
+ * A single non-scalar element refuses the WHOLE list rather than filtering it down. Filtering would
78
+ * let an author's unbounded nested value decide how much of itself gets rendered, and scalars-only
79
+ * is the rule that keeps a nested payload off the wire. The kept list is a new array, so the
80
+ * caller's own can still be mutated without changing what was recorded.
81
+ */
82
+ export function sanitizeFieldsWithScalarLists(fields) {
83
+ return sanitizeBag(fields, (value) => {
84
+ if (isTelemetryScalar(value))
85
+ return value;
86
+ if (Array.isArray(value) && value.every(isTelemetryScalar))
87
+ return [...value];
88
+ return undefined;
89
+ });
90
+ }
58
91
  /**
59
92
  * Write one telemetry-required log. `name` is a stable machine identifier and becomes the whole
60
93
  * body — the facts live in `fields`, never interpolated into a sentence. The wrapper's own keys are
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry-required-log.js","sourceRoot":"","sources":["../../src/utils/telemetry-required-log.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAOH,oGAAoG;AACpG,MAAM,mBAAmB,GAAG,wBAAwB,CAAC;AAErD,8FAA8F;AAC9F,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;AAE/C;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,MAAe;IAC5C,MAAM,UAAU,GAAuB,EAAE,CAAC;IAC1C,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3E,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;IACjC,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,IAAI,KAAc,CAAC;QACnB,IAAI,CAAC;YACH,KAAK,GAAI,MAAkC,CAAC,GAAG,CAAC,CAAC;QACnD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;YACV,SAAS;QACX,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;YAC5D,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC1B,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/D,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AACjC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAc,EACd,IAAY,EACZ,MAA0B;IAE1B,IAAI,CAAC;QACH,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACvD,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,mBAAmB,CAAC,EAAE,IAAI,EAAE,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAClG,CAAC;IAAC,MAAM,CAAC;QACP,0DAA0D;IAC5D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"telemetry-required-log.js","sourceRoot":"","sources":["../../src/utils/telemetry-required-log.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAaH,oGAAoG;AACpG,MAAM,mBAAmB,GAAG,wBAAwB,CAAC;AAErD,8FAA8F;AAC9F,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;AAE/C,gGAAgG;AAChG,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACzE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC;AAED;;;;;;GAMG;AACH,SAAS,WAAW,CAClB,MAAe,EACf,IAAuC;IAEvC,MAAM,UAAU,GAAsB,EAAE,CAAC;IACzC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3E,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;IACjC,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,IAAI,KAAc,CAAC;QACnB,IAAI,CAAC;YACH,KAAK,GAAI,MAAkC,CAAC,GAAG,CAAC,CAAC;QACnD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;YACV,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;;YAC7B,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAC9B,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AACjC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,MAAe;IAC5C,OAAO,WAAW,CAAkB,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CACpD,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC7C,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,6BAA6B,CAC3C,MAAe;IAEf,OAAO,WAAW,CAAsC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;QACxE,IAAI,iBAAiB,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC3C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC;YAAE,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;QAC9E,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAc,EACd,IAAY,EACZ,MAA0B;IAE1B,IAAI,CAAC;QACH,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACvD,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,mBAAmB,CAAC,EAAE,IAAI,EAAE,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAClG,CAAC;IAAC,MAAM,CAAC;QACP,0DAA0D;IAC5D,CAAC;AACH,CAAC"}
@@ -2,7 +2,7 @@
2
2
  "id": "runtime",
3
3
  "name": "Senpi Runtime",
4
4
  "description": "Senpi runtime plugin for OpenClaw. Orchestrates scanners, LLM-based trade decisions, and a DSL trailing stop-loss exit engine.",
5
- "version": "3.0.113",
5
+ "version": "3.0.114",
6
6
  "commandAliases": [
7
7
  {
8
8
  "name": "senpi"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@senpi/runtime",
3
- "version": "3.0.113",
3
+ "version": "3.0.114",
4
4
  "description": "Senpi runtime plugin for OpenClaw",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",