@traqr/memory 0.2.16 → 0.2.17

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.
@@ -50,6 +50,16 @@ export declare const EMBEDDING_CONFIG: {
50
50
  readonly PROVIDER: string;
51
51
  readonly MAX_TOKENS: 8191;
52
52
  };
53
+ /**
54
+ * Apply TD-856 PII redaction to embedding input. Default ON; set
55
+ * `MEMORY_REDACT_EMBEDDINGS=false` (or `0`) to disable as a kill-switch without
56
+ * a redeploy if a recall regression surfaces. Redaction runs on a local copy,
57
+ * so only the embedding vector + provider egress are affected — the caller's
58
+ * original text (→ raw `content` column, → BM25 tsvector) is left untouched.
59
+ * Because store AND query embeds both funnel through here, redaction stays
60
+ * consistent across the two, preserving recall.
61
+ */
62
+ export declare function redactEmbeddingInput(text: string): string;
53
63
  /**
54
64
  * Generate embedding for a single text (backward-compatible entry point)
55
65
  */
@@ -12,6 +12,7 @@
12
12
  * If not set, auto-detects from available API keys.
13
13
  */
14
14
  import OpenAI from 'openai';
15
+ import { redactForEmbedding } from './pii-detection.js';
15
16
  // ---------------------------------------------------------------------------
16
17
  // OpenAI Provider
17
18
  // ---------------------------------------------------------------------------
@@ -320,17 +321,32 @@ export const EMBEDDING_CONFIG = {
320
321
  get PROVIDER() { return getEmbeddingConfig().PROVIDER; },
321
322
  MAX_TOKENS: 8191,
322
323
  };
324
+ /**
325
+ * Apply TD-856 PII redaction to embedding input. Default ON; set
326
+ * `MEMORY_REDACT_EMBEDDINGS=false` (or `0`) to disable as a kill-switch without
327
+ * a redeploy if a recall regression surfaces. Redaction runs on a local copy,
328
+ * so only the embedding vector + provider egress are affected — the caller's
329
+ * original text (→ raw `content` column, → BM25 tsvector) is left untouched.
330
+ * Because store AND query embeds both funnel through here, redaction stays
331
+ * consistent across the two, preserving recall.
332
+ */
333
+ export function redactEmbeddingInput(text) {
334
+ const flag = process.env.MEMORY_REDACT_EMBEDDINGS;
335
+ if (flag === 'false' || flag === '0')
336
+ return text;
337
+ return redactForEmbedding(text);
338
+ }
323
339
  /**
324
340
  * Generate embedding for a single text (backward-compatible entry point)
325
341
  */
326
342
  export async function generateEmbedding(text) {
327
- return getEmbeddingProvider().generate(text);
343
+ return getEmbeddingProvider().generate(redactEmbeddingInput(text));
328
344
  }
329
345
  /**
330
346
  * Generate embeddings for multiple texts in batch
331
347
  */
332
348
  export async function generateEmbeddingsBatch(texts) {
333
- return getEmbeddingProvider().generateBatch(texts);
349
+ return getEmbeddingProvider().generateBatch(texts.map(redactEmbeddingInput));
334
350
  }
335
351
  // ---------------------------------------------------------------------------
336
352
  // Utility functions (provider-agnostic)
@@ -1 +1 @@
1
- {"version":3,"file":"embeddings.js","sourceRoot":"","sources":["../../src/lib/embeddings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAA;AAyB3B,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,MAAM,uBAAuB;IAA7B;QACW,aAAQ,GAAG,QAAQ,CAAA;QACnB,UAAK,GAAG,wBAAwB,CAAA;QAChC,eAAU,GAAG,IAAI,CAAA;QAClB,WAAM,GAAkB,IAAI,CAAA;IAqDtC,CAAC;IAnDS,SAAS;QACf,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC,MAAM,CAAA;QACnC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAA;QACzC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CACb,kDAAkD;gBAClD,4DAA4D,CAC7D,CAAA;QACH,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAA;QAC1E,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAA;QACzC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;YAC9C,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,SAAS;YAChB,eAAe,EAAE,OAAO;SACzB,CAAC,CAAA;QACF,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC7B,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,KAAK,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE;YAC7B,YAAY,EAAE,IAAI;YAClB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,KAAK,EAAE,EAAE,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE;SAChG,CAAA;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAe;QACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAA;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAC/B,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAA;QACtD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;YAC9C,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,SAAS;YAChB,eAAe,EAAE,OAAO;SACzB,CAAC,CAAA;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC7B,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,KAAK,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE;YAC7B,YAAY,EAAE,IAAI;YAClB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,KAAK,EAAE;gBACL,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC;gBACrE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC;aACpE;SACF,CAAC,CAAC,CAAA;IACL,CAAC;CACF;AAED,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,MAAM,uBAAuB;IAA7B;QACW,aAAQ,GAAG,QAAQ,CAAA;QACnB,UAAK,GAAG,sBAAsB,CAAA;QAC9B,eAAU,GAAG,IAAI,CAAA;IAqC5B,CAAC;IAnCC,KAAK,CAAC,QAAQ,CAAC,IAAY;QACzB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAA;QACzC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,yGAAyG,CAAC,CAAA;QAC5H,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAA;QACzC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,2DAA2D,IAAI,CAAC,KAAK,qBAAqB,MAAM,EAAE,EAClG;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,KAAK,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE;gBAC7B,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE;gBACzC,oBAAoB,EAAE,IAAI,CAAC,UAAU;aACtC,CAAC;SACH,CACF,CAAA;QACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;QACvF,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAyC,CAAA;QACzE,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM;YAChC,KAAK,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE;YAC7B,YAAY,EAAE,IAAI;YAClB,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM;YACxC,KAAK,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE;SAC3C,CAAA;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAe;QACjC,8DAA8D;QAC9D,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACtD,CAAC;CACF;AAED,8EAA8E;AAC9E,yDAAyD;AACzD,8EAA8E;AAE9E,MAAM,wBAAwB;IAM5B;QALS,aAAQ,GAAG,SAAS,CAAA;QAGrB,SAAI,GAAoD,IAAI,CAAA;QAGlE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,wBAAwB,CAAA;QACpE,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,MAAM,EAAE,EAAE,CAAC,CAAA;IAC5E,CAAC;IAEO,KAAK,CAAC,MAAM;QAClB,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC,IAAI,CAAA;QAC/B,IAAI,CAAC;YACH,qFAAqF;YACrF,MAAM,GAAG,GAAG,MAAO,QAAQ,CAAC,kDAAkD,CAAC,EAAmB,CAAA;YAClG,IAAI,CAAC,IAAI,GAAG;gBACV,MAAM,EAAE,IAAI,GAAG,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,WAAW,EAAE,CAAC;gBACvF,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;aAC3C,CAAA;YACD,OAAO,IAAI,CAAC,IAAI,CAAA;QAClB,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CACb,2DAA2D;gBAC3D,2DAA2D;gBAC3D,gGAAgG,CACjG,CAAA;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY;QACzB,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAA;QAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAA;QAEzC,MAAM,OAAO,GAAG,IAAI,kBAAkB,CAAC;YACrC,OAAO,EAAE,IAAI,CAAC,KAAK;YACnB,WAAW,EAAE,kBAAkB;YAC/B,MAAM,EAAE,kBAAkB;YAC1B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,SAAS,EAAE,SAAS;gBACpB,UAAU,EAAE,IAAI,CAAC,UAAU;aAC5B,CAAC;SACH,CAAC,CAAA;QAEF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;QAChE,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAA;QAExD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,CAAC,KAAK,0CAA0C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACtH,CAAC;QAED,OAAO;YACL,SAAS;YACT,KAAK,EAAE,WAAW,IAAI,CAAC,KAAK,EAAE;YAC9B,YAAY,EAAE,IAAI;YAClB,UAAU,EAAE,SAAS,CAAC,MAAM;YAC5B,KAAK,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,mBAAmB,IAAI,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,mBAAmB,IAAI,CAAC,EAAE;SACnG,CAAA;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAe;QACjC,iEAAiE;QACjE,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACtD,CAAC;CACF;AAED,8EAA8E;AAC9E,iCAAiC;AACjC,8EAA8E;AAE9E,MAAM,uBAAuB;IAM3B;QALS,aAAQ,GAAG,QAAQ,CAAA;QAM1B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,kBAAkB,CAAA;QAC9D,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,KAAK,EAAE,EAAE,CAAC,CAAA;QACzE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,wBAAwB,CAAA;IACxE,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAA;QACzC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,YAAY,EAAE;YACxD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;SAC9D,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CACb,4BAA4B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,IAAI;gBACtE,wBAAwB,IAAI,CAAC,OAAO,gBAAgB,IAAI,CAAC,KAAK,gBAAgB,CAC/E,CAAA;QACH,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAgC,CAAA;QAChE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QAEpC,OAAO;YACL,SAAS;YACT,KAAK,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE;YAC7B,YAAY,EAAE,IAAI;YAClB,UAAU,EAAE,SAAS,CAAC,MAAM;YAC5B,KAAK,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE;SAC3C,CAAA;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAe;QACjC,wCAAwC;QACxC,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAA;QACtD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,YAAY,EAAE;YACxD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;SAC9D,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,kCAAkC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;QACtE,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAgC,CAAA;QAChE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACjC,SAAS,EAAE,GAAG;YACd,KAAK,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE;YAC7B,YAAY,EAAE,IAAI;YAClB,UAAU,EAAE,GAAG,CAAC,MAAM;YACtB,KAAK,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE;SAC3C,CAAC,CAAC,CAAA;IACL,CAAC;CACF;AAED,8EAA8E;AAC9E,2CAA2C;AAC3C,8EAA8E;AAE9E,MAAM,qBAAqB;IAA3B;QACW,aAAQ,GAAG,MAAM,CAAA;QACjB,UAAK,GAAG,MAAM,CAAA;QACd,eAAU,GAAG,CAAC,CAAA;IAqBzB,CAAC;IAnBC,KAAK,CAAC,QAAQ,CAAC,KAAa;QAC1B,OAAO;YACL,SAAS,EAAE,EAAE;YACb,KAAK,EAAE,MAAM;YACb,YAAY,EAAE,IAAI;YAClB,UAAU,EAAE,CAAC;YACb,KAAK,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE;SAC3C,CAAA;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAe;QACjC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;YACtB,SAAS,EAAE,EAAE;YACb,KAAK,EAAE,MAAM;YACb,YAAY,EAAE,IAAI;YAClB,UAAU,EAAE,CAAC;YACb,KAAK,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE;SAC3C,CAAC,CAAC,CAAA;IACL,CAAC;CACF;AAED,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E,IAAI,gBAAgB,GAA6B,IAAI,CAAA;AAErD;;;GAGG;AACH,MAAM,UAAU,oBAAoB;IAClC,IAAI,gBAAgB;QAAE,OAAO,gBAAgB,CAAA;IAE7C,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAA;IAE3C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ;YACX,gBAAgB,GAAG,IAAI,uBAAuB,EAAE,CAAA;YAChD,MAAK;QACP,KAAK,QAAQ;YACX,gBAAgB,GAAG,IAAI,uBAAuB,EAAE,CAAA;YAChD,MAAK;QACP,KAAK,SAAS;YACZ,gBAAgB,GAAG,IAAI,wBAAwB,EAAE,CAAA;YACjD,MAAK;QACP,KAAK,QAAQ;YACX,gBAAgB,GAAG,IAAI,uBAAuB,EAAE,CAAA;YAChD,MAAK;QACP,KAAK,MAAM;YACT,gBAAgB,GAAG,IAAI,qBAAqB,EAAE,CAAA;YAC9C,MAAK;QACP;YACE,wDAAwD;YACxD,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;gBAC/B,gBAAgB,GAAG,IAAI,uBAAuB,EAAE,CAAA;YAClD,CAAC;iBAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;gBACtC,gBAAgB,GAAG,IAAI,uBAAuB,EAAE,CAAA;YAClD,CAAC;iBAAM,CAAC;gBACN,gBAAgB,GAAG,IAAI,qBAAqB,EAAE,CAAA;YAChD,CAAC;IACL,CAAC;IAED,OAAO,gBAAgB,CAAA;AACzB,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,sBAAsB;IACpC,gBAAgB,GAAG,IAAI,CAAA;AACzB,CAAC;AAED,8EAA8E;AAC9E,uDAAuD;AACvD,8EAA8E;AAE9E,8CAA8C;AAC9C,MAAM,UAAU,kBAAkB;IAChC,MAAM,CAAC,GAAG,oBAAoB,EAAE,CAAA;IAChC,OAAO;QACL,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,UAAU,EAAE,IAAI;KACjB,CAAA;AACH,CAAC;AAED,0FAA0F;AAC1F,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,IAAI,KAAK,KAAK,OAAO,kBAAkB,EAAE,CAAC,KAAK,CAAA,CAAC,CAAC;IACjD,aAAa,EAAE,IAAI;IACnB,IAAI,UAAU,KAAK,OAAO,kBAAkB,EAAE,CAAC,UAAU,CAAA,CAAC,CAAC;IAC3D,IAAI,QAAQ,KAAK,OAAO,kBAAkB,EAAE,CAAC,QAAQ,CAAA,CAAC,CAAC;IACvD,UAAU,EAAE,IAAI;CACR,CAAA;AAEV;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAY;IAClD,OAAO,oBAAoB,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,KAAe;IAC3D,OAAO,oBAAoB,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;AACpD,CAAC;AAED,8EAA8E;AAC9E,wCAAwC;AACxC,8EAA8E;AAE9E;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,CAAW,EAAE,CAAW;IACvD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;IACjF,CAAC;IACD,IAAI,UAAU,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAA;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACzB,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACpB,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACtB,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACrD,OAAO,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,SAAS,CAAA;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,SAAmB;IAC5D,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,cAAsB;IAC/D,IAAI,CAAC,cAAc;QAAE,OAAO,EAAE,CAAA;IAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QAClC,OAAQ,cAAsC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAC5D,CAAC;IACD,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;IACtD,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,YAAoB,EAAE,cAAsB;IAC3E,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAA;IACnC,MAAM,aAAa,GAAG,GAAG,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,EAAE,CAAA;IAC1D,OAAO,YAAY,KAAK,aAAa,IAAI,cAAc,KAAK,MAAM,CAAC,aAAa,CAAA;AAClF,CAAC;AAeD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAA;IACvC,IAAI,QAAQ,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;QACjC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,6DAA6D,EAAE,CAAA;IACxI,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAC5B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;QACtD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAA;QACxC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;YAC9B,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,mCAAmC,EAAE,SAAS,EAAE,CAAA;QAC1H,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;IAC1E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAA;QACxC,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAA;QACpE,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;QAC/F,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;QACxG,IAAI,OAAO;YAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;QAC3I,IAAI,MAAM;YAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,4BAA4B,EAAE,SAAS,EAAE,CAAA;QAC3H,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,CAAA;IACxF,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"embeddings.js","sourceRoot":"","sources":["../../src/lib/embeddings.ts"],"names":[],"mappings":"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"}
@@ -19,8 +19,28 @@ export interface PiiDetectionResult {
19
19
  */
20
20
  export declare function detectPii(content: string): PiiDetectionResult;
21
21
  /**
22
- * Generate a redacted version of content for embedding generation.
23
- * PII is replaced with type-specific placeholders so semantic meaning is preserved
24
- * but actual values are not embedded in vector space.
22
+ * Redact high-sensitivity PII from text before it reaches the embedding
23
+ * provider and lands in vector space (TD-856).
24
+ *
25
+ * Scope is deliberately the four "never searched by value" types — credit
26
+ * card, SSN, phone, email — because:
27
+ * - they carry ~zero semantic search weight (you search by the surrounding
28
+ * context, not by the literal value), so redacting them costs ~nothing in
29
+ * recall; and
30
+ * - leaving them raw was a real EGRESS leak — the literal values were being
31
+ * sent to the embedding API and encoded into vector space.
32
+ *
33
+ * `financialAmount` and `address` are intentionally NOT redacted here: dollar
34
+ * figures and street addresses are search-load-bearing for jiggy / life-CRM
35
+ * memories, and redacting them would degrade recall. (`detectPii` still FLAGS
36
+ * all six types for classification — this function governs only what reaches
37
+ * the embedding vector.)
38
+ *
39
+ * Wired inside `generateEmbedding`, so store and query text redact through the
40
+ * same path: a query containing an email embeds as `[EMAIL]` and still matches
41
+ * a stored `[EMAIL]`, keeping recall consistent even for the looser phone/ssn
42
+ * patterns. This does NOT touch the raw `content` column or the BM25 lexical
43
+ * index — those stay plaintext (governed by classification tiers + TD-715
44
+ * encryption); this is purely the vector-space / provider-egress layer.
25
45
  */
26
46
  export declare function redactForEmbedding(content: string): string;
@@ -67,19 +67,38 @@ export function detectPii(content) {
67
67
  };
68
68
  }
69
69
  /**
70
- * Generate a redacted version of content for embedding generation.
71
- * PII is replaced with type-specific placeholders so semantic meaning is preserved
72
- * but actual values are not embedded in vector space.
70
+ * Redact high-sensitivity PII from text before it reaches the embedding
71
+ * provider and lands in vector space (TD-856).
72
+ *
73
+ * Scope is deliberately the four "never searched by value" types — credit
74
+ * card, SSN, phone, email — because:
75
+ * - they carry ~zero semantic search weight (you search by the surrounding
76
+ * context, not by the literal value), so redacting them costs ~nothing in
77
+ * recall; and
78
+ * - leaving them raw was a real EGRESS leak — the literal values were being
79
+ * sent to the embedding API and encoded into vector space.
80
+ *
81
+ * `financialAmount` and `address` are intentionally NOT redacted here: dollar
82
+ * figures and street addresses are search-load-bearing for jiggy / life-CRM
83
+ * memories, and redacting them would degrade recall. (`detectPii` still FLAGS
84
+ * all six types for classification — this function governs only what reaches
85
+ * the embedding vector.)
86
+ *
87
+ * Wired inside `generateEmbedding`, so store and query text redact through the
88
+ * same path: a query containing an email embeds as `[EMAIL]` and still matches
89
+ * a stored `[EMAIL]`, keeping recall consistent even for the looser phone/ssn
90
+ * patterns. This does NOT touch the raw `content` column or the BM25 lexical
91
+ * index — those stay plaintext (governed by classification tiers + TD-715
92
+ * encryption); this is purely the vector-space / provider-egress layer.
73
93
  */
74
94
  export function redactForEmbedding(content) {
75
95
  let redacted = content;
76
- // Replace in order of specificity (more specific patterns first)
96
+ // Order matters: consume a credit-card number before the ssn/phone patterns
97
+ // can match a sub-run of its digits.
77
98
  redacted = redacted.replace(PII_PATTERNS.creditCard, '[CREDIT_CARD]');
78
99
  redacted = redacted.replace(PII_PATTERNS.ssn, '[SSN]');
79
100
  redacted = redacted.replace(PII_PATTERNS.phone, '[PHONE]');
80
101
  redacted = redacted.replace(PII_PATTERNS.email, '[EMAIL]');
81
- redacted = redacted.replace(PII_PATTERNS.financialAmount, '[AMOUNT]');
82
- redacted = redacted.replace(PII_PATTERNS.address, '[ADDRESS]');
83
102
  return redacted;
84
103
  }
85
104
  //# sourceMappingURL=pii-detection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pii-detection.js","sourceRoot":"","sources":["../../src/lib/pii-detection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pii-detection.js","sourceRoot":"","sources":["../../src/lib/pii-detection.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAWH,oCAAoC;AACpC,MAAM,YAAY,GAA2B;IAC3C,qCAAqC;IACrC,KAAK,EAAE,0DAA0D;IACjE,kBAAkB;IAClB,KAAK,EAAE,qDAAqD;IAC5D,+BAA+B;IAC/B,GAAG,EAAE,kCAAkC;IACvC,2BAA2B;IAC3B,eAAe,EAAE,4DAA4D;IAC7E,oEAAoE;IACpE,OAAO,EAAE,+HAA+H;IACxI,oDAAoD;IACpD,UAAU,EAAE,6CAA6C;CAC1D,CAAA;AAED,kEAAkE;AAClE,MAAM,mBAAmB,GAAG;IAC1B,gBAAgB,EAAE,uBAAuB,EAAE,YAAY;IACvD,SAAS,EAAE,eAAe,EAAE,WAAW;IACvC,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,iBAAiB;IAClD,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa;CACnD,CAAA;AAED,8BAA8B;AAC9B,MAAM,qBAAqB,GAAG;IAC5B,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa;IAC/C,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB;IACpD,YAAY,EAAE,SAAS;CACxB,CAAA;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,IAAI,uBAAuB,GAAyB,UAAU,CAAA;IAE9D,uBAAuB;IACvB,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAC3D,mCAAmC;QACnC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAA;QACrB,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrB,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAA;IAC1C,MAAM,aAAa,GAAG,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAA;IAC/E,MAAM,eAAe,GAAG,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAA;IAEnF,2BAA2B;IAC3B,IAAI,aAAa,EAAE,CAAC;QAClB,uBAAuB,GAAG,YAAY,CAAA;IACxC,CAAC;SAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,eAAe,EAAE,CAAC;QAClD,uBAAuB,GAAG,cAAc,CAAA;IAC1C,CAAC;IAED,OAAO;QACL,WAAW,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC;QAChC,QAAQ;QACR,uBAAuB;KACxB,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,IAAI,QAAQ,GAAG,OAAO,CAAA;IAEtB,4EAA4E;IAC5E,qCAAqC;IACrC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,eAAe,CAAC,CAAA;IACrE,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IACtD,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IAC1D,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IAE1D,OAAO,QAAQ,CAAA;AACjB,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * PII redaction for embeddings (TD-856).
3
+ *
4
+ * Pins the redaction contract wired into `generateEmbedding`: the four
5
+ * high-sensitivity, never-searched-by-value types (credit card, SSN, phone,
6
+ * email) are replaced with placeholders before reaching the embedding
7
+ * provider; `financialAmount` + `address` are deliberately left RAW (they are
8
+ * search-load-bearing for jiggy / life-CRM); and the
9
+ * `MEMORY_REDACT_EMBEDDINGS` flag (default ON) is the kill-switch.
10
+ *
11
+ * Pure/deterministic — no live embedding provider or DB. Matches the
12
+ * tsx-script convention of context.test.ts / retrieval.test.ts.
13
+ *
14
+ * Run: npx tsx packages/memory/src/lib/pii-detection.test.ts
15
+ */
16
+ export {};
@@ -0,0 +1,56 @@
1
+ /**
2
+ * PII redaction for embeddings (TD-856).
3
+ *
4
+ * Pins the redaction contract wired into `generateEmbedding`: the four
5
+ * high-sensitivity, never-searched-by-value types (credit card, SSN, phone,
6
+ * email) are replaced with placeholders before reaching the embedding
7
+ * provider; `financialAmount` + `address` are deliberately left RAW (they are
8
+ * search-load-bearing for jiggy / life-CRM); and the
9
+ * `MEMORY_REDACT_EMBEDDINGS` flag (default ON) is the kill-switch.
10
+ *
11
+ * Pure/deterministic — no live embedding provider or DB. Matches the
12
+ * tsx-script convention of context.test.ts / retrieval.test.ts.
13
+ *
14
+ * Run: npx tsx packages/memory/src/lib/pii-detection.test.ts
15
+ */
16
+ import { redactForEmbedding } from './pii-detection.js';
17
+ import { redactEmbeddingInput } from './embeddings.js';
18
+ let passed = 0;
19
+ let failed = 0;
20
+ function assert(label, condition) {
21
+ if (condition) {
22
+ console.log(` PASS ${label}`);
23
+ passed++;
24
+ }
25
+ else {
26
+ console.log(` FAIL ${label}`);
27
+ failed++;
28
+ }
29
+ }
30
+ console.log('\n--- redactForEmbedding: high-sensitivity types redacted (TD-856) ---');
31
+ assert('email → [EMAIL]', redactForEmbedding('reach me at john.doe@example.com today') === 'reach me at [EMAIL] today');
32
+ assert('credit card → [CREDIT_CARD]', redactForEmbedding('card 4111 1111 1111 1111 declined').includes('[CREDIT_CARD]'));
33
+ assert('ssn → [SSN]', redactForEmbedding('ssn 123-45-6789 on file').includes('[SSN]'));
34
+ assert('phone → [PHONE]', redactForEmbedding('call (555) 123-4567 now').includes('[PHONE]'));
35
+ console.log('\n--- redactForEmbedding: search-load-bearing types stay RAW ---');
36
+ assert('financial amount preserved', redactForEmbedding('bought AVGO at $1,400.00') === 'bought AVGO at $1,400.00');
37
+ assert('address preserved', redactForEmbedding('lives at 123 Main Street') === 'lives at 123 Main Street');
38
+ console.log('\n--- redactForEmbedding: non-PII untouched + idempotent ---');
39
+ const clean = 'NVDA estimate revisions trending up, 34 up / 3 down';
40
+ assert('clean text untouched', redactForEmbedding(clean) === clean);
41
+ const once = redactForEmbedding('email a@b.co and a@b.co');
42
+ assert('all occurrences replaced', !once.includes('@'));
43
+ assert('idempotent', redactForEmbedding(once) === once);
44
+ console.log('\n--- redactEmbeddingInput: MEMORY_REDACT_EMBEDDINGS flag (default ON) ---');
45
+ delete process.env.MEMORY_REDACT_EMBEDDINGS;
46
+ assert('default (unset) redacts', redactEmbeddingInput('mail x@y.com') === 'mail [EMAIL]');
47
+ process.env.MEMORY_REDACT_EMBEDDINGS = 'false';
48
+ assert('flag=false passes through raw', redactEmbeddingInput('mail x@y.com') === 'mail x@y.com');
49
+ process.env.MEMORY_REDACT_EMBEDDINGS = '0';
50
+ assert('flag=0 passes through raw', redactEmbeddingInput('mail x@y.com') === 'mail x@y.com');
51
+ process.env.MEMORY_REDACT_EMBEDDINGS = 'true';
52
+ assert('flag=true redacts', redactEmbeddingInput('mail x@y.com') === 'mail [EMAIL]');
53
+ delete process.env.MEMORY_REDACT_EMBEDDINGS;
54
+ console.log(`\n${passed} passed, ${failed} failed`);
55
+ process.exit(failed > 0 ? 1 : 0);
56
+ //# sourceMappingURL=pii-detection.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pii-detection.test.js","sourceRoot":"","sources":["../../src/lib/pii-detection.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@traqr/memory",
3
- "version": "0.2.16",
3
+ "version": "0.2.17",
4
4
  "description": "Persistent memory for AI agents. Multi-strategy retrieval (semantic + BM25 + RRF), 3-zone cosine triage, type-aware lifecycle, entity canonicalization. Postgres + pgvector.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -15,7 +15,7 @@
15
15
  "scripts": {
16
16
  "build": "tsc",
17
17
  "dev": "tsc --watch",
18
- "test": "tsx src/lib/quality-gate.test.ts && tsx src/lib/retrieval.test.ts && tsx src/lib/context.test.ts",
18
+ "test": "tsx src/lib/quality-gate.test.ts && tsx src/lib/retrieval.test.ts && tsx src/lib/context.test.ts && tsx src/lib/pii-detection.test.ts",
19
19
  "migrate": "tsx src/migrate.ts"
20
20
  },
21
21
  "files": [