/** * Redaction + bounding — re-exported from `@lensmcp/core/redact`. * * The implementation used to live HERE, applied in `envelopeToEvent` (the one * function every browser envelope crosses). That worked, and it covered only * the browser: the cluster GATEWAY publishes its own events straight onto the * same bus without crossing that function, and was found writing * `?access_token=sk_live_…` verbatim into `title`, `raw.url` and * `raw.steps[].url` of a real `.lensmcp/events.jsonl`. * * Fixing that needed the same redactor in `@lensmcp/cluster`, which sits at * `layer:install` and cannot sensibly depend on this WebSocket-server package. * So the module moved DOWN to `layer:core` — reachable by both — and this file * stays as the re-export so nothing in the bridge (or any consumer of * `@lensmcp/bridge`'s public API) has to change. * * There is exactly ONE implementation. Do not add logic here; edit * `libs/core/src/lib/redact.ts`. */ export { clip, isSecretParam, MAX_MESSAGE_CHARS, MAX_TITLE_CHARS, MAX_URL_CHARS, redactDeep, redactText, redactUrl, redactUrlParams, REDACTED, safeText, safeTitle, } from '@lensmcp/core/redact';