@traqr/memory 0.2.39 → 0.2.40

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.
@@ -35,11 +35,20 @@ export function deriveDomain(content) {
35
35
  // ============================================================
36
36
  export function deriveCategory(content) {
37
37
  const c = content.toLowerCase();
38
- if (/\b(gotcha|critical|never\s+trust|always\s+check|warning|silently.fail|broke\b)/i.test(c))
38
+ // gotcha — generic pitfalls PLUS the fleet's substrate-invariant / proxy-trap
39
+ // lesson class, which was previously falling through to `insight` (TD-726).
40
+ // Purely additive: the second clause only pulls memories OUT of `insight`,
41
+ // never reclassifies anything the first clause already matched.
42
+ if (/\b(gotcha|critical|never\s+trust|always\s+check|warning|silently.fail|broke\b)/i.test(c) ||
43
+ /(substrate.invariant|stale.proxy|proxy.?trap|never\s+grade\s+on|grade\s+on\s+the\s+proxy|silently\s+(drop|dropped|restore|restored|suppress|suppressed)|foot.?gun)/i.test(c))
39
44
  return 'gotcha';
40
45
  if (/\b(fix|bug|root.cause|resolved|patch|was.broken|caused.by)/i.test(c))
41
46
  return 'fix';
42
- if (/\b(prefer|values?|wants?|hates?|loves?|style|personality|blunt|direct)/i.test(c))
47
+ // preference — how Sean likes things done PLUS explicit steering / philosophy
48
+ // markers ("[STEERING …]", "Sean steered/redirect/greenlit", "Sean's taste")
49
+ // that the capture triggers name but the base keywords missed (TD-726).
50
+ if (/\b(prefer|values?|wants?|hates?|loves?|style|personality|blunt|direct)/i.test(c) ||
51
+ /(\[steering|sean\s+steered|sean'?s\s+(steering|preference|directive|explicit|taste|lean|posture|framing)|steering\s+(direction|message|note)|sean\s+(explicitly\s+)?(prefers|wants|redirect|greenlit|ratified))/i.test(c))
43
52
  return 'preference';
44
53
  if (/\b(pattern|approach|technique|strategy|method|architecture|flywheel)/i.test(c))
45
54
  return 'pattern';
@@ -1 +1 @@
1
- {"version":3,"file":"auto-derive.js","sourceRoot":"","sources":["../../src/lib/auto-derive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auto-derive.js","sourceRoot":"","sources":["../../src/lib/auto-derive.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Auto-Derive — deriveCategory verification (TD-726)
3
+ *
4
+ * Guards the base 7-category keyword classifier AND the additive TD-726
5
+ * refinements: the substrate-invariant / proxy-trap class now lands in
6
+ * `gotcha` (was silently `insight`), and explicit steering markers land in
7
+ * `preference`. Run: tsx src/lib/auto-derive.test.ts
8
+ */
9
+ export {};
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Auto-Derive — deriveCategory verification (TD-726)
3
+ *
4
+ * Guards the base 7-category keyword classifier AND the additive TD-726
5
+ * refinements: the substrate-invariant / proxy-trap class now lands in
6
+ * `gotcha` (was silently `insight`), and explicit steering markers land in
7
+ * `preference`. Run: tsx src/lib/auto-derive.test.ts
8
+ */
9
+ import { deriveCategory, deriveAll } from './auto-derive.js';
10
+ let passed = 0;
11
+ let failed = 0;
12
+ function assertCat(label, content, expected) {
13
+ const actual = deriveCategory(content);
14
+ if (actual === expected) {
15
+ console.log(` PASS ${label}`);
16
+ passed++;
17
+ }
18
+ else {
19
+ console.log(` FAIL ${label} (got '${actual}', expected '${expected}')`);
20
+ failed++;
21
+ }
22
+ }
23
+ // ============================================================
24
+ // Base categories — regression guard (existing keywords unchanged)
25
+ // ============================================================
26
+ console.log('\n--- Base categories (regression guard) ---');
27
+ assertCat('gotcha: warning phrasing', 'Warning: this silently fails on cold start', 'gotcha');
28
+ assertCat('fix: root cause', 'Root cause found: the redirect dropped the POST body', 'fix');
29
+ assertCat('preference: base keyword', 'Sean prefers concise, direct responses', 'preference');
30
+ assertCat('pattern: approach', 'The parallel-subagent approach is the reusable technique here', 'pattern');
31
+ assertCat('convention: naming rule', 'Convention: script files use verb-noun naming', 'convention');
32
+ assertCat('question: unsolved', 'Open question, still unclear — needs more investigation', 'question');
33
+ assertCat('insight: generic learning', 'The book spans Fidelity, IBKR, and SoFi accounts', 'insight');
34
+ // ============================================================
35
+ // TD-726 — substrate-invariant / proxy-trap class -> gotcha
36
+ // (previously fell through to `insight`)
37
+ // ============================================================
38
+ console.log('\n--- TD-726: substrate-invariant / proxy-trap -> gotcha ---');
39
+ assertCat('substrate-invariant instance', "substrate-invariant instance: spot-at-print is a proxy; the intra-quarter AVERAGE is the substrate", 'gotcha');
40
+ assertCat('proxy-trap phrasing', "proxy-trap — tier='HOLDING' is still not ownership, re-confirmed today", 'gotcha');
41
+ assertCat('never grade on the proxy', 'The rule: never grade on the liveness proxy; verify against the substrate', 'gotcha');
42
+ assertCat('silent restore class', 'The orphaned builder silently restored the staged git rm deletions under the live session', 'gotcha');
43
+ assertCat('stale proxy', 'The computed_at column was a stale proxy for the reconcile', 'gotcha');
44
+ // ============================================================
45
+ // TD-726 — explicit steering markers -> preference
46
+ // ============================================================
47
+ console.log('\n--- TD-726: steering markers -> preference ---');
48
+ assertCat('bracketed STEERING marker', '[STEERING — Sean, Granola] wants the vault reorganized around positions, not tickers', 'preference');
49
+ assertCat('Sean steered', 'Sean steered the fleet toward Jiggy investing intelligence on 5/19', 'preference');
50
+ assertCat("Sean's taste", "This is a taste call — Sean's taste on brand voice governs", 'preference');
51
+ assertCat('Sean greenlit', 'Sean greenlit the Life-OS financial dimension on 7/04', 'preference');
52
+ // ============================================================
53
+ // Additive invariant — a plain fact must still be `insight`,
54
+ // and an explicit override must always win.
55
+ // ============================================================
56
+ console.log('\n--- Invariants ---');
57
+ assertCat('no false-positive: plain news fact', 'TSMC June revenue rose 6.2% month over month', 'insight');
58
+ function assertEq(label, actual, expected) {
59
+ if (actual === expected) {
60
+ console.log(` PASS ${label}`);
61
+ passed++;
62
+ }
63
+ else {
64
+ console.log(` FAIL ${label} (got '${actual}', expected '${expected}')`);
65
+ failed++;
66
+ }
67
+ }
68
+ assertEq('deriveAll respects explicit category override', deriveAll('substrate-invariant instance …', { category: 'insight' }).category, 'insight');
69
+ assertEq('deriveAll derives gotcha when category omitted', deriveAll('substrate-invariant: the proxy is not the substrate').category, 'gotcha');
70
+ // ============================================================
71
+ console.log(`\n${passed} passed, ${failed} failed`);
72
+ process.exit(failed > 0 ? 1 : 0);
73
+ //# sourceMappingURL=auto-derive.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-derive.test.js","sourceRoot":"","sources":["../../src/lib/auto-derive.test.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@
10
10
  */
11
11
  import { Hono } from 'hono';
12
12
  import { storeWithDedup, citeMemory } from '../lib/memory.js';
13
+ import { deriveAll } from '../lib/auto-derive.js';
13
14
  import { passesIngestionGate } from '../lib/quality-gate.js';
14
15
  const app = new Hono();
15
16
  app.post('/', async (c) => {
@@ -31,15 +32,31 @@ app.post('/', async (c) => {
31
32
  if (!gate.passes)
32
33
  continue;
33
34
  try {
35
+ // Auto-derive missing fields from content, mirroring the /store and
36
+ // /pulse routes. Previously this path hardcoded `category: 'insight'`
37
+ // and empty tags whenever the caller omitted them — a session-capture
38
+ // derivation gap that dumped uncategorized learnings into `insight`
39
+ // (a primary driver of the 44%-insight skew, TD-726). Explicit
40
+ // caller-supplied category/tags still win.
41
+ const content = learning.content.trim();
42
+ const derived = deriveAll(content, {
43
+ category: learning.category || undefined,
44
+ tags: learning.tags && learning.tags.length > 0 ? learning.tags : undefined,
45
+ sourceTool: 'capture-session',
46
+ });
34
47
  const result = await storeWithDedup({
35
- content: learning.content.trim(),
36
- category: learning.category || 'insight',
37
- tags: learning.tags || [],
48
+ content,
49
+ summary: derived.summary,
50
+ category: derived.category,
51
+ tags: derived.tags,
38
52
  sourceType: 'session',
39
53
  sourceRef,
40
54
  sourceProject,
41
55
  confidence: learning.confidence ?? 0.6,
42
- sourceTool: 'capture-session',
56
+ domain: derived.domain,
57
+ topic: derived.topic,
58
+ memoryType: derived.memoryType,
59
+ sourceTool: derived.sourceTool,
43
60
  });
44
61
  if (result.deduplicated) {
45
62
  memoriesDeduplicated++;
@@ -1 +1 @@
1
- {"version":3,"file":"capture.js","sourceRoot":"","sources":["../../src/routes/capture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capture.js","sourceRoot":"","sources":["../../src/routes/capture.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.39",
3
+ "version": "0.2.40",
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/classification-ceiling.test.ts && tsx src/lib/classification-enforcement.integration.test.ts && tsx src/vectordb/converters.test.ts && tsx src/lib/context.test.ts && tsx src/lib/pii-detection.test.ts && tsx src/lib/health.test.ts && tsx src/lib/stdout-hygiene.test.ts && tsx src/lib/migration-files.test.ts",
18
+ "test": "tsx src/lib/quality-gate.test.ts && tsx src/lib/retrieval.test.ts && tsx src/lib/classification-ceiling.test.ts && tsx src/lib/classification-enforcement.integration.test.ts && tsx src/vectordb/converters.test.ts && tsx src/lib/context.test.ts && tsx src/lib/pii-detection.test.ts && tsx src/lib/health.test.ts && tsx src/lib/stdout-hygiene.test.ts && tsx src/lib/migration-files.test.ts && tsx src/lib/auto-derive.test.ts",
19
19
  "migrate": "tsx src/migrate.ts"
20
20
  },
21
21
  "files": [