@senpi/runtime 3.0.79 → 3.0.80

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.
@@ -21,6 +21,11 @@
21
21
  *
22
22
  * The snapshot is what stops a client that joins mid-life from seeing an empty screen: it is read
23
23
  * from the buffer's held window, which the flush drain never evicts.
24
+ *
25
+ * Everything that leaves the box is scrubbed here. `logger.event` redacts its `redact` slot and not
26
+ * its `attributes`, which is sound for the disk ring — that never leaves — but not for a stream a
27
+ * browser reads. Both outbound paths funnel through {@link toWireRecord}, so that is where the
28
+ * scrub sits; it is what makes the flush tick asynchronous and gives it an in-flight guard.
24
29
  */
25
30
  import type { EventName } from "../utils/event-catalog.js";
26
31
  import { type TimelineBuffer } from "./timeline-buffer.js";
@@ -141,8 +146,8 @@ export interface LiveTelemetry {
141
146
  afterEpoch?: unknown;
142
147
  afterSeq?: unknown;
143
148
  }): Promise<TelemetrySnapshot>;
144
- /** One flush tick: drain, filter to the publication list, frame, broadcast. */
145
- flushTimeline(): void;
149
+ /** One flush tick: drain, filter to the publication list, scrub, frame, broadcast. */
150
+ flushTimeline(): Promise<void>;
146
151
  /** One sample tick: stats always, topology when it changed. */
147
152
  sample(): Promise<void>;
148
153
  start(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"live-telemetry.d.ts","sourceRoot":"","sources":["../../src/telemetry/live-telemetry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAI3D,OAAO,EAGL,KAAK,cAAc,EAEpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC5B,MAAM,wBAAwB,CAAC;AAIhC,4FAA4F;AAC5F,eAAO,MAAM,cAAc,0BAA0B,CAAC;AACtD,eAAO,MAAM,WAAW,+BAA+B,CAAC;AACxD,eAAO,MAAM,cAAc,4BAA4B,CAAC;AAExD;;;;GAIG;AACH,eAAO,MAAM,eAAe,QAAa,CAAC;AAE1C,uEAAuE;AACvE,eAAO,MAAM,yBAAyB,OAAQ,CAAC;AAE/C;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,OAAQ,CAAC;AAEhD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,SAAS,CAExD,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,QAAS,CAAC;AAEhD,MAAM,WAAW,oBAAoB;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,kBAAkB,GAAG,CAC/B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,EAChB,IAAI,CAAC,EAAE,oBAAoB,KACxB,IAAI,CAAC;AAEV,yCAAyC;AACzC,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,eAAe;IAC9B,CAAC,EAAE,CAAC,CAAC;IACL,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,uBAAuB,CAAC;IAClC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,MAAM,EAAE,eAAe,CAAC;IACxB;;;;;;;OAOG;IACH,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,8FAA8F;AAC9F,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,sBAAsB,EAAE,CAAC;IACrC,iBAAiB,EAAE,YAAY,CAAC;IAChC,iBAAiB,EAAE,YAAY,CAAC;IAChC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,iBAAiB,GAAG,SAAS,CAAC;IAClE,YAAY,EAAE,oBAAoB,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,oBAAoB;IACnC,iFAAiF;IACjF,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,YAAY,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;IAC5C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,yFAAyF;IACzF,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACzD,iFAAiF;IACjF,QAAQ,CAAC,MAAM,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC5F,+EAA+E;IAC/E,aAAa,IAAI,IAAI,CAAC;IACtB,+DAA+D;IAC/D,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,KAAK,IAAI,IAAI,CAAC;IACd,yEAAyE;IACzE,IAAI,IAAI,IAAI,CAAC;CACd;AA0CD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,aAAa,CA8WhF"}
1
+ {"version":3,"file":"live-telemetry.d.ts","sourceRoot":"","sources":["../../src/telemetry/live-telemetry.ts"],"names":[],"mappings":"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"}
@@ -21,9 +21,15 @@
21
21
  *
22
22
  * The snapshot is what stops a client that joins mid-life from seeing an empty screen: it is read
23
23
  * from the buffer's held window, which the flush drain never evicts.
24
+ *
25
+ * Everything that leaves the box is scrubbed here. `logger.event` redacts its `redact` slot and not
26
+ * its `attributes`, which is sound for the disk ring — that never leaves — but not for a stream a
27
+ * browser reads. Both outbound paths funnel through {@link toWireRecord}, so that is where the
28
+ * scrub sits; it is what makes the flush tick asynchronous and gives it an in-flight guard.
24
29
  */
25
30
  import { createLogger } from "../utils/logger.js";
26
- import { withSpanSync } from "./tracing.js";
31
+ import { withSpan, withSpanSync } from "./tracing.js";
32
+ import { getDefaultPiiRedactor } from "./spans/redact-pii.js";
27
33
  import { ADMITTED_EVENT_NAMES, readAndResetTapCounters } from "./telemetry-publisher.js";
28
34
  import { getTimelineBuffer, teardownTimelineBuffer, } from "./timeline-buffer.js";
29
35
  import { buildScannerStats, } from "./scanner-stats.js";
@@ -84,7 +90,46 @@ const NO_FACTS = {
84
90
  unwiredRuntimeIds: { has: () => false },
85
91
  scannerState: [],
86
92
  };
87
- function toWireRecord(record) {
93
+ /**
94
+ * Every string value in `attrs`, scrubbed. Numbers and booleans cannot carry PII and are copied as
95
+ * they are, so a record whose attributes are all scalars allocates nothing and awaits nothing.
96
+ *
97
+ * A value the redactor could not produce is DROPPED, never passed through — `redactStringsDeep`
98
+ * keeps the original on a throw because a span attribute is still inside the box, and this is not.
99
+ * With no redactor at all every string value is dropped for the same reason.
100
+ */
101
+ async function scrubAttrs(attrs, redactor, onScrubFailure) {
102
+ let out;
103
+ for (const [key, value] of Object.entries(attrs)) {
104
+ // An empty string carries nothing, and the redactor charges for it like any other.
105
+ if (typeof value !== "string" || value === "")
106
+ continue;
107
+ out ??= { ...attrs };
108
+ if (redactor === null) {
109
+ delete out[key];
110
+ continue;
111
+ }
112
+ try {
113
+ out[key] = await redactor.redact(value);
114
+ }
115
+ catch (err) {
116
+ delete out[key];
117
+ onScrubFailure(err);
118
+ }
119
+ }
120
+ return out ?? attrs;
121
+ }
122
+ /**
123
+ * The single point where a buffered record becomes something that goes outside, and so the only
124
+ * place the scrub has to be.
125
+ *
126
+ * `body` is not scrubbed: it is built from the catalogued template and bounded by it, which is the
127
+ * same reason `logger.event` never redacts it. Neither are the record's own string fields — `name`
128
+ * is a closed-catalog entry, `address` is a normalised wallet address, `scannerId` is the engine's
129
+ * id, `level` is a severity. They are machine identifiers the client groups and joins on, not free
130
+ * text, and scrubbing one would break the join for no gain.
131
+ */
132
+ async function toWireRecord(record, redactor, onScrubFailure) {
88
133
  return {
89
134
  seq: record.seq,
90
135
  ts: record.ts,
@@ -93,7 +138,7 @@ function toWireRecord(record) {
93
138
  address: record.address,
94
139
  ...(record.scannerId !== undefined ? { scannerId: record.scannerId } : {}),
95
140
  body: record.body,
96
- attrs: record.attrs,
141
+ attrs: await scrubAttrs(record.attrs, redactor, onScrubFailure),
97
142
  };
98
143
  }
99
144
  /** A cursor is a resume point, so anything that is not a whole non-negative number means "from the start". */
@@ -124,12 +169,16 @@ export function createLiveTelemetry(options) {
124
169
  let flushTimer;
125
170
  let sampleTimer;
126
171
  let sampleInFlight = false;
172
+ let flushInFlight = false;
127
173
  let batchSeq = 0;
128
174
  let lastTopologySignature;
129
- // Both guards sit on per-second paths, so each warns once until the condition clears.
175
+ // These guards sit on per-second paths, so each warns once until the condition clears.
130
176
  let warnedNoBroadcast = false;
131
177
  let warnedBroadcastFailure = false;
132
178
  let warnedOversizedRecord = false;
179
+ let warnedNoRedactor = false;
180
+ let warnedScrubFailure = false;
181
+ let warnedFlushFailure = false;
133
182
  // What the ticks cost over one report window. Bucket width and buffer retention are deliberately
134
183
  // unfixed by the design, and these are the numbers they get sized from.
135
184
  const timelineWindow = { ticks: 0, msMax: 0, records: 0, payloadBytes: 0 };
@@ -234,17 +283,54 @@ export function createLiveTelemetry(options) {
234
283
  "senpi.telemetry.frame_limit_bytes": MAX_FRAME_BYTES,
235
284
  });
236
285
  }
286
+ function noteScrubFailure(err) {
287
+ if (warnedScrubFailure)
288
+ return;
289
+ warnedScrubFailure = true;
290
+ logger.warn("live telemetry redactor threw; the attribute it could not scrub was dropped", {
291
+ err: err instanceof Error ? err.message : String(err),
292
+ });
293
+ }
237
294
  /**
238
- * Split records into frames that each serialise under the byte budget. A record that cannot fit a
239
- * frame by itself is dropped rather than sent: an oversized frame does not lose one line, it closes
240
- * the client's socket with 1009 and loses the stream.
295
+ * The process redactor, or `null` when none is registered yet — the boot window before
296
+ * `initDefaultPiiRedactor` resolves, an openredaction install that failed, or a test.
297
+ *
298
+ * Read once per outbound batch rather than per record, so one batch is scrubbed one way. The warn
299
+ * clears once a redactor appears, so a later regression is reported again rather than swallowed by
300
+ * a one-shot that already fired during boot.
241
301
  */
242
- function toFrames(records) {
302
+ function currentRedactor() {
303
+ const redactor = getDefaultPiiRedactor();
304
+ if (redactor !== null) {
305
+ warnedNoRedactor = false;
306
+ return redactor;
307
+ }
308
+ if (!warnedNoRedactor) {
309
+ warnedNoRedactor = true;
310
+ logger.warn("live telemetry has no PII redactor registered; string event attributes are dropped from the wire until one is");
311
+ }
312
+ return null;
313
+ }
314
+ /**
315
+ * Split records into frames that each serialise under the byte budget, scrubbing each one on the
316
+ * way. A record that cannot fit a frame by itself is dropped rather than sent: an oversized frame
317
+ * does not lose one line, it closes the client's socket with 1009 and loses the stream. The size is
318
+ * measured on the scrubbed record, because that is the one that goes out.
319
+ *
320
+ * `redactMs` is the scrub's share of the work, reported on the publish span: redaction is regex
321
+ * over every string attribute of every record, and a batch is hundreds of records at a one-second
322
+ * tick, so it is the number that says whether this fits its own interval.
323
+ */
324
+ async function toFrames(records) {
325
+ const redactor = currentRedactor();
243
326
  const frames = [];
244
327
  let current = [];
245
328
  let bytes = 0;
329
+ let redactMs = 0;
246
330
  for (const record of records) {
247
- const wire = toWireRecord(record);
331
+ const scrubStartedAt = monotonicMs();
332
+ const wire = await toWireRecord(record, redactor, noteScrubFailure);
333
+ redactMs += monotonicMs() - scrubStartedAt;
248
334
  // Bytes, not string length: the read limit is counted on the wire, and one non-ASCII
249
335
  // character costs up to three of them.
250
336
  const size = Buffer.byteLength(JSON.stringify(wire));
@@ -262,7 +348,7 @@ export function createLiveTelemetry(options) {
262
348
  }
263
349
  if (current.length > 0)
264
350
  frames.push(current);
265
- return frames;
351
+ return { frames, redactMs };
266
352
  }
267
353
  function published(records) {
268
354
  return records.filter((record) => PUBLISHED_EVENT_NAMES.has(record.name));
@@ -303,43 +389,67 @@ export function createLiveTelemetry(options) {
303
389
  now,
304
390
  });
305
391
  }
306
- function flushTimeline() {
392
+ async function flushTimeline() {
393
+ // The scrub made this tick asynchronous, so two of them can be inside one interval. Same guard as
394
+ // `sample`: a tick still scrubbing keeps the drain, the batchSeq run and the frame order to
395
+ // itself, and the skipped tick's records come back on the next drain rather than being lost.
396
+ if (flushInFlight)
397
+ return;
398
+ flushInFlight = true;
307
399
  const startedAt = monotonicMs();
308
- // The drain advances the publish cursor whether or not a handle exists, so a box nobody is
309
- // watching does not build a backlog that lands as one flood on the first connect. The snapshot
310
- // covers that client instead — `drain` evicts nothing.
311
- const batch = published(buffer.drain());
312
- if (batch.length > 0) {
313
- withSpanSync("telemetry.publish", {}, (span) => {
314
- const sendStartedAt = monotonicMs();
315
- let payloadBytes = 0;
316
- let recordsFlushed = 0;
317
- for (const records of toFrames(batch)) {
318
- const payload = {
319
- v: 1,
320
- epoch: buffer.epoch,
321
- batchSeq: ++batchSeq,
322
- records,
323
- };
324
- // Measured on the frame handed to broadcast. A sum of record sizes is an intermediate that
325
- // omits the envelope and the separators, and those are real bytes against the read limit.
326
- const bytes = Buffer.byteLength(JSON.stringify(payload));
327
- if (!publish(EVENT_TIMELINE, payload))
328
- continue;
329
- payloadBytes += bytes;
330
- recordsFlushed += records.length;
331
- }
332
- span.setAttributes({
333
- records_flushed: recordsFlushed,
334
- payload_bytes: payloadBytes,
335
- broadcast_ms: monotonicMs() - sendStartedAt,
400
+ try {
401
+ // The drain advances the publish cursor whether or not a handle exists, so a box nobody is
402
+ // watching does not build a backlog that lands as one flood on the first connect. The snapshot
403
+ // covers that client instead — `drain` evicts nothing.
404
+ const batch = published(buffer.drain());
405
+ if (batch.length > 0) {
406
+ await withSpan("telemetry.publish", {}, async (span) => {
407
+ const { frames, redactMs } = await toFrames(batch);
408
+ const sendStartedAt = monotonicMs();
409
+ let payloadBytes = 0;
410
+ let recordsFlushed = 0;
411
+ for (const records of frames) {
412
+ const payload = {
413
+ v: 1,
414
+ epoch: buffer.epoch,
415
+ batchSeq: ++batchSeq,
416
+ records,
417
+ };
418
+ // Measured on the frame handed to broadcast. A sum of record sizes is an intermediate
419
+ // that omits the envelope and the separators, and those are real bytes against the read
420
+ // limit.
421
+ const bytes = Buffer.byteLength(JSON.stringify(payload));
422
+ if (!publish(EVENT_TIMELINE, payload))
423
+ continue;
424
+ payloadBytes += bytes;
425
+ recordsFlushed += records.length;
426
+ }
427
+ span.setAttributes({
428
+ records_flushed: recordsFlushed,
429
+ payload_bytes: payloadBytes,
430
+ broadcast_ms: monotonicMs() - sendStartedAt,
431
+ redact_ms: redactMs,
432
+ });
433
+ timelineWindow.records += recordsFlushed;
434
+ timelineWindow.payloadBytes += payloadBytes;
336
435
  });
337
- timelineWindow.records += recordsFlushed;
338
- timelineWindow.payloadBytes += payloadBytes;
339
- });
436
+ }
437
+ }
438
+ catch (err) {
439
+ // A `setInterval` callback has nowhere to put a rejection, and a tick that dies takes the whole
440
+ // feed with it. Every step inside already guards itself, so reaching here is a bug worth a line.
441
+ if (!warnedFlushFailure) {
442
+ warnedFlushFailure = true;
443
+ logger.warn("live telemetry flush tick failed; this batch was lost", {
444
+ err: err instanceof Error ? err.message : String(err),
445
+ });
446
+ }
447
+ }
448
+ finally {
449
+ flushInFlight = false;
450
+ noteTick("timeline", monotonicMs() - startedAt, flushIntervalMs);
451
+ reportTiming();
340
452
  }
341
- noteTick("timeline", monotonicMs() - startedAt, flushIntervalMs);
342
- reportTiming();
343
453
  }
344
454
  async function sample() {
345
455
  // A gather slower than the tick would otherwise stack ticks on top of each other.
@@ -423,7 +533,7 @@ export function createLiveTelemetry(options) {
423
533
  // resume, so it is never a gap.
424
534
  let truncated = afterSeq > 0 && buffer.highestDroppedSeq() > afterSeq;
425
535
  const owed = published(held.filter((record) => record.seq > afterSeq));
426
- const frames = toFrames(owed);
536
+ const { frames } = await toFrames(owed);
427
537
  // A response is one frame, so an over-budget window sends the newest slice and says so.
428
538
  const records = frames.length === 0 ? [] : frames[frames.length - 1];
429
539
  if (frames.length > 1)
@@ -445,7 +555,7 @@ export function createLiveTelemetry(options) {
445
555
  start() {
446
556
  if (flushTimer !== undefined)
447
557
  return;
448
- flushTimer = setInterval(flushTimeline, flushIntervalMs);
558
+ flushTimer = setInterval(() => void flushTimeline(), flushIntervalMs);
449
559
  sampleTimer = setInterval(() => void sample(), sampleIntervalMs);
450
560
  // Telemetry must never be the reason a process stays alive.
451
561
  flushTimer.unref?.();
@@ -1 +1 @@
1
- {"version":3,"file":"live-telemetry.js","sourceRoot":"","sources":["../../src/telemetry/live-telemetry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"live-telemetry.js","sourceRoot":"","sources":["../../src/telemetry/live-telemetry.ts"],"names":[],"mappings":"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"}
@@ -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.79",
5
+ "version": "3.0.80",
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.79",
3
+ "version": "3.0.80",
4
4
  "description": "Senpi runtime plugin for OpenClaw",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",