@rubytech/create-maxy-code 0.1.147 → 0.1.148

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.
Files changed (51) hide show
  1. package/package.json +1 -1
  2. package/payload/platform/lib/graph-search/dist/index.d.ts +34 -11
  3. package/payload/platform/lib/graph-search/dist/index.d.ts.map +1 -1
  4. package/payload/platform/lib/graph-search/dist/index.js +42 -13
  5. package/payload/platform/lib/graph-search/dist/index.js.map +1 -1
  6. package/payload/platform/lib/graph-search/src/__tests__/fulltext-coverage.test.ts +75 -40
  7. package/payload/platform/lib/graph-search/src/index.ts +45 -12
  8. package/payload/platform/neo4j/schema.cypher +38 -14
  9. package/payload/platform/plugins/admin/PLUGIN.md +0 -1
  10. package/payload/platform/plugins/admin/hooks/__tests__/post-turn-graph-pass.test.sh +472 -0
  11. package/payload/platform/plugins/admin/hooks/__tests__/session-end-retrospective.test.sh +2 -2
  12. package/payload/platform/plugins/admin/hooks/session-end-retrospective.sh +6 -3
  13. package/payload/platform/plugins/memory/mcp/dist/index.js +21 -19
  14. package/payload/platform/plugins/memory/mcp/dist/index.js.map +1 -1
  15. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/compiled-truth-revision.test.js +4 -1
  16. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/compiled-truth-revision.test.js.map +1 -1
  17. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/compiled-truth-rewriter-operator-hint.test.d.ts +2 -0
  18. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/compiled-truth-rewriter-operator-hint.test.d.ts.map +1 -0
  19. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/compiled-truth-rewriter-operator-hint.test.js +90 -0
  20. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/compiled-truth-rewriter-operator-hint.test.js.map +1 -0
  21. package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-rewriter.d.ts +14 -0
  22. package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-rewriter.d.ts.map +1 -1
  23. package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-rewriter.js +27 -4
  24. package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-rewriter.js.map +1 -1
  25. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-search-fields.test.js +1 -0
  26. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-search-fields.test.js.map +1 -1
  27. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-operator-hint.test.d.ts +2 -0
  28. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-operator-hint.test.d.ts.map +1 -0
  29. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-operator-hint.test.js +329 -0
  30. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-operator-hint.test.js.map +1 -0
  31. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-compiled-truth-rejection.test.d.ts +2 -0
  32. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-compiled-truth-rejection.test.d.ts.map +1 -0
  33. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-compiled-truth-rejection.test.js +39 -0
  34. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-compiled-truth-rejection.test.js.map +1 -0
  35. package/payload/platform/plugins/memory/mcp/dist/tools/memory-search.d.ts.map +1 -1
  36. package/payload/platform/plugins/memory/mcp/dist/tools/memory-search.js +1 -11
  37. package/payload/platform/plugins/memory/mcp/dist/tools/memory-search.js.map +1 -1
  38. package/payload/platform/plugins/memory/mcp/dist/tools/memory-update.d.ts +27 -18
  39. package/payload/platform/plugins/memory/mcp/dist/tools/memory-update.d.ts.map +1 -1
  40. package/payload/platform/plugins/memory/mcp/dist/tools/memory-update.js +83 -70
  41. package/payload/platform/plugins/memory/mcp/dist/tools/memory-update.js.map +1 -1
  42. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.d.ts.map +1 -1
  43. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.js +27 -0
  44. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.js.map +1 -1
  45. package/payload/platform/plugins/memory/mcp/vitest.config.ts +2 -0
  46. package/payload/platform/plugins/memory/references/schema-base.md +5 -4
  47. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
  48. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +0 -1
  49. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
  50. package/payload/server/server.js +9 -2
  51. package/payload/platform/plugins/admin/skills/commitment-followthrough/SKILL.md +0 -60
@@ -37,6 +37,10 @@
37
37
  // deferred — see follow-up task referenced in the task brief.
38
38
  import { callOauthLlm, } from "../../../../../lib/oauth-llm/dist/index.js";
39
39
  import { COMPILED_TRUTH_MAX_CHARS } from "./graph-write-gate.js";
40
+ /** Cap on operator hints fed into the rewriter prompt (Task 413). Larger hints
41
+ * become essays and dilute the rewriter's precedence rule. The rewriter still
42
+ * produces a ≤ COMPILED_TRUTH_MAX_CHARS summary regardless. */
43
+ export const OPERATOR_HINT_MAX_CHARS = 1000;
40
44
  const DEFAULT_MODEL = "claude-haiku-4-5";
41
45
  const ADMIN_SYSTEM_PROMPT = [
42
46
  "You are the compiled-truth rewriter for a personal knowledge graph.",
@@ -50,7 +54,8 @@ const ADMIN_SYSTEM_PROMPT = [
50
54
  "- No marketing, no superlatives, no commentary on the operator's relationship with the subject.",
51
55
  "- Restate the most-load-bearing facts from the timeline. Drop trivia.",
52
56
  "- If the existing compiledTruth contradicts the timeline, the timeline wins.",
53
- "- Do not invent details that are not present in either the existing truth or the timeline.",
57
+ "- If an Operator correction is supplied and contradicts the timeline, the Operator correction wins. Fold it into the summary as fact, not as a quoted instruction.",
58
+ "- Do not invent details that are not present in either the existing truth, the timeline, or the Operator correction.",
54
59
  "- Do not add a preamble (no 'Here is the summary:'). Output the summary directly.",
55
60
  ].join("\n");
56
61
  const PUBLIC_SYSTEM_PROMPT = [
@@ -71,7 +76,8 @@ const PUBLIC_SYSTEM_PROMPT = [
71
76
  "- Restate only externally-verifiable facts from the timeline (what the subject is, what they do,",
72
77
  " what they have publicly done or said). Drop scheduling notes, internal sentiment, and operator intent.",
73
78
  "- If the existing summary contradicts the timeline, the timeline wins.",
74
- "- Do not invent details that are not present in either the existing summary or the timeline.",
79
+ "- If an Operator correction is supplied and contradicts the timeline, the Operator correction wins. Fold it into the summary as fact, not as a quoted instruction. The same public-voice rules above still apply: strip any operator-voice phrasing or internal sentiment in the hint and restate only externally-verifiable facts.",
80
+ "- Do not invent details that are not present in either the existing summary, the timeline, or the Operator correction.",
75
81
  "- Do not add a preamble (no 'Here is the summary:'). Output the summary directly.",
76
82
  ].join("\n");
77
83
  function systemPromptFor(mode) {
@@ -91,6 +97,11 @@ function buildUserMessage(p) {
91
97
  for (const e of p.events) {
92
98
  lines.push(`- [${e.occurredAt}] kind=${e.kind}: ${e.summary}`);
93
99
  }
100
+ if (p.operatorHint) {
101
+ lines.push("");
102
+ lines.push("Operator correction (authoritative — overrides the timeline where they disagree):");
103
+ lines.push(p.operatorHint);
104
+ }
94
105
  lines.push("");
95
106
  lines.push(`Rewrite the ${fieldName}.`);
96
107
  return lines.join("\n");
@@ -100,7 +111,18 @@ function isOkText(r) {
100
111
  }
101
112
  export async function rewriteCompiledTruth(p) {
102
113
  const mode = p.mode ?? "admin";
103
- if (p.events.length === 0) {
114
+ if (p.operatorHint !== undefined) {
115
+ if (p.operatorHint.length > OPERATOR_HINT_MAX_CHARS) {
116
+ throw new Error(`operatorHint length ${p.operatorHint.length} exceeds cap of ${OPERATOR_HINT_MAX_CHARS} chars.`);
117
+ }
118
+ if (p.operatorHint.trim() === "") {
119
+ throw new Error("operatorHint must be a non-empty string.");
120
+ }
121
+ }
122
+ // An operator correction is itself sufficient justification to rewrite —
123
+ // the operator has supplied new fact-bearing material even when no
124
+ // :TimelineEvent rows exist yet.
125
+ if (p.events.length === 0 && !p.operatorHint) {
104
126
  console.log(`[compiled-truth-rewriter] refused mode=${mode} subject="${p.subjectName}" reason=no-events`);
105
127
  return { kind: "refused", reason: "no-events" };
106
128
  }
@@ -119,7 +141,8 @@ export async function rewriteCompiledTruth(p) {
119
141
  const truth = result.text.trim();
120
142
  const before = p.currentTruth.length;
121
143
  const after = truth.length;
122
- console.log(`[compiled-truth-rewriter] mode=${mode} subject="${p.subjectName}" subjectLabel=${p.subjectLabel} charsBefore=${before} charsAfter=${after} events=${p.events.length}`);
144
+ const hintFragment = p.operatorHint ? ` operatorHint=true hintLen=${p.operatorHint.length}` : "";
145
+ console.log(`[compiled-truth-rewriter] mode=${mode} subject="${p.subjectName}" subjectLabel=${p.subjectLabel} charsBefore=${before} charsAfter=${after} events=${p.events.length}${hintFragment}`);
123
146
  if (after > COMPILED_TRUTH_MAX_CHARS) {
124
147
  // One retry with a stricter prompt before surfacing the over-cap failure.
125
148
  // Per eng review: avoids losing the rewrite on a single LLM verbosity slip.
@@ -1 +1 @@
1
- {"version":3,"file":"compiled-truth-rewriter.js","sourceRoot":"","sources":["../../src/lib/compiled-truth-rewriter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compiled-truth-rewriter.js","sourceRoot":"","sources":["../../src/lib/compiled-truth-rewriter.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,EAAE;AACF,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AACpE,kEAAkE;AAClE,uEAAuE;AACvE,oEAAoE;AACpE,oEAAoE;AACpE,uEAAuE;AACvE,mCAAmC;AACnC,EAAE;AACF,6BAA6B;AAC7B,wEAAwE;AACxE,wEAAwE;AACxE,8DAA8D;AAC9D,wEAAwE;AACxE,sEAAsE;AACtE,iEAAiE;AACjE,sEAAsE;AACtE,2CAA2C;AAC3C,EAAE;AACF,sCAAsC;AACtC,iCAAiC;AACjC,gDAAgD;AAChD,0EAA0E;AAC1E,6DAA6D;AAC7D,mCAAmC;AACnC,EAAE;AACF,8EAA8E;AAC9E,6EAA6E;AAC7E,6DAA6D;AAC7D,qEAAqE;AACrE,mEAAmE;AACnE,EAAE;AACF,uEAAuE;AACvE,8DAA8D;AAE9D,OAAO,EACL,YAAY,GAGb,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAyBjE;;gEAEgE;AAChE,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAyC5C,MAAM,aAAa,GAAG,kBAAkB,CAAC;AAEzC,MAAM,mBAAmB,GAAG;IAC1B,qEAAqE;IACrE,EAAE;IACF,wGAAwG;IACxG,EAAE;IACF,qCAAqC;IACrC,oBAAoB,wBAAwB,2CAA2C;IACvF,iDAAiD;IACjD,yGAAyG;IACzG,iGAAiG;IACjG,uEAAuE;IACvE,8EAA8E;IAC9E,oKAAoK;IACpK,sHAAsH;IACtH,mFAAmF;CACpF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,oBAAoB,GAAG;IAC3B,0EAA0E;IAC1E,EAAE;IACF,kFAAkF;IAClF,6FAA6F;IAC7F,EAAE;IACF,qCAAqC;IACrC,oBAAoB,wBAAwB,2CAA2C;IACvF,iDAAiD;IACjD,yGAAyG;IACzG,gEAAgE;IAChE,gGAAgG;IAChG,uFAAuF;IACvF,4GAA4G;IAC5G,qGAAqG;IACrG,kGAAkG;IAClG,0GAA0G;IAC1G,wEAAwE;IACxE,qUAAqU;IACrU,wHAAwH;IACxH,mFAAmF;CACpF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,SAAS,eAAe,CAAC,IAAiB;IACxC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,mBAAmB,CAAC;AACxE,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAgB;IACxC,MAAM,IAAI,GAAgB,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC;IAC5C,MAAM,SAAS,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,eAAe,CAAC;IAC9E,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IACxC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;IACxC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,WAAW,SAAS,GAAG,CAAC,CAAC;IACpC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACxD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,MAAM,CAAC,MAAM,UAAU,CAAC,CAAC;IACxE,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,UAAU,UAAU,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,mFAAmF,CAAC,CAAC;QAChG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IAC7B,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,eAAe,SAAS,GAAG,CAAC,CAAC;IACxC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,QAAQ,CAAC,CAAqB;IACrC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,CAAgB;IACzD,MAAM,IAAI,GAAgB,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC;IAE5C,IAAI,CAAC,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACjC,IAAI,CAAC,CAAC,YAAY,CAAC,MAAM,GAAG,uBAAuB,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CACb,uBAAuB,CAAC,CAAC,YAAY,CAAC,MAAM,mBAAmB,uBAAuB,SAAS,CAChG,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,mEAAmE;IACnE,iCAAiC;IACjC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC;QAC7C,OAAO,CAAC,GAAG,CACT,0CAA0C,IAAI,aAAa,CAAC,CAAC,WAAW,oBAAoB,CAC7F,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAClD,CAAC;IAED,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;QAChC,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,aAAa;QAC/B,MAAM,EAAE,YAAY;QACpB,WAAW;QACX,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CACT,8CAA8C,IAAI,aAAa,CAAC,CAAC,WAAW,WAAW,MAAM,CAAC,KAAK,EAAE,CACtG,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnD,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC;IACrC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;IAC3B,MAAM,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACjG,OAAO,CAAC,GAAG,CACT,kCAAkC,IAAI,aAAa,CAAC,CAAC,WAAW,kBAAkB,CAAC,CAAC,YAAY,gBAAgB,MAAM,eAAe,KAAK,WAAW,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,YAAY,EAAE,CACtL,CAAC;IAEF,IAAI,KAAK,GAAG,wBAAwB,EAAE,CAAC;QACrC,0EAA0E;QAC1E,4EAA4E;QAC5E,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC;YACxC,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,aAAa;YAC/B,MAAM,EACJ,YAAY;gBACZ,yBAAyB,KAAK,0BAA0B;gBACxD,kBAAkB,wBAAwB,0CAA0C;YACtF,WAAW;YACX,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAC9B,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;QAC3D,CAAC;QACD,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,KAAK,CAAC,MAAM,GAAG,wBAAwB,EAAE,CAAC;YAC5C,OAAO,CAAC,GAAG,CACT,iDAAiD,IAAI,aAAa,CAAC,CAAC,WAAW,cAAc,KAAK,CAAC,MAAM,EAAE,CAC5G,CAAC;YACF,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;QAC1D,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;IAC9C,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;AAC9C,CAAC"}
@@ -13,6 +13,7 @@ vi.mock("../../lib/embeddings.js", () => ({
13
13
  const hybridMock = vi.fn();
14
14
  vi.mock("../../../../../../lib/graph-search/dist/index.js", () => ({
15
15
  hybrid: (...args) => hybridMock(...args),
16
+ isPublicOnlyScope: (allowedScopes) => Array.isArray(allowedScopes) && allowedScopes.length === 1 && allowedScopes[0] === "public",
16
17
  }));
17
18
  import { memorySearch } from "../memory-search.js";
18
19
  function makeResult() {
@@ -1 +1 @@
1
- {"version":3,"file":"memory-search-fields.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/memory-search-fields.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory-search-fields.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/memory-search-fields.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=memory-update-operator-hint.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-update-operator-hint.test.d.ts","sourceRoot":"","sources":["../../../src/tools/__tests__/memory-update-operator-hint.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,329 @@
1
+ // Task 413 / Task 420 — memory-update operator-hint integration.
2
+ //
3
+ // Validates: admin operatorHint passes through to the rewriter; SET stamps
4
+ // source='operator' and the revision row receives source='operator'; the 7-day
5
+ // cooldown does not block hint passes; the public-twin auto-fire is skipped;
6
+ // hint without rewriteCompiledTruth throws.
7
+ //
8
+ // Public publicOperatorHint (Task 420): hint folds into the public rewriter
9
+ // call; public SET stamps source='operator'; public-cooldown bypassed; fires
10
+ // regardless of whether admin pass changed the truth; refuses on :Person;
11
+ // refuses without rewriteCompiledTruth; respects the length cap; admin and
12
+ // public hints are independent.
13
+ import { describe, it, expect, beforeEach, vi } from "vitest";
14
+ const mockSession = {
15
+ run: vi.fn(),
16
+ close: vi.fn().mockResolvedValue(undefined),
17
+ };
18
+ vi.mock("../../lib/neo4j.js", () => ({
19
+ getSession: () => mockSession,
20
+ }));
21
+ vi.mock("../../lib/embeddings.js", () => ({
22
+ embed: vi.fn().mockResolvedValue([0.1]),
23
+ }));
24
+ vi.mock("../../lib/graph-write-gate.js", () => ({
25
+ checkGraphWriteGate: vi.fn().mockResolvedValue({ ok: true }),
26
+ checkPropertyWriteGate: vi.fn().mockReturnValue({ ok: true }),
27
+ checkLabelWriteGate: vi.fn().mockReturnValue({ ok: true }),
28
+ COMPILED_TRUTH_MAX_CHARS: 2000,
29
+ }));
30
+ vi.mock("../../lib/label-origin-gate.js", () => ({
31
+ checkLabelOriginGate: vi.fn().mockReturnValue({ ok: true }),
32
+ }));
33
+ const rewriterMock = vi.fn();
34
+ vi.mock("../../lib/compiled-truth-rewriter.js", () => ({
35
+ rewriteCompiledTruth: (...args) => rewriterMock(...args),
36
+ OPERATOR_HINT_MAX_CHARS: 1000,
37
+ }));
38
+ vi.mock("./memory-write.js", () => ({
39
+ buildTextRepresentation: () => "stub",
40
+ }));
41
+ import { memoryUpdate } from "../memory-update.js";
42
+ function labelRecord(overrides = {}) {
43
+ const base = {
44
+ nodeLabels: ["Organization"],
45
+ compiledTruth: "old summary",
46
+ compiledTruthSource: "operator",
47
+ compiledTruthUpdatedAt: { toString: () => new Date().toISOString() }, // recent
48
+ compiledTruthPublic: "old public",
49
+ compiledTruthPublicSource: "rewriter",
50
+ compiledTruthPublicUpdatedAt: null,
51
+ name: "Acme",
52
+ ...overrides,
53
+ };
54
+ return { get: (k) => base[k] };
55
+ }
56
+ describe("memory-update — operator hint (Task 413)", () => {
57
+ beforeEach(() => {
58
+ mockSession.run.mockReset();
59
+ rewriterMock.mockReset();
60
+ rewriterMock.mockResolvedValue({ kind: "ok", compiledTruth: "Adam now works at Anthropic." });
61
+ });
62
+ it("passes operatorHint through to the rewriter and stamps source='operator' on the SET", async () => {
63
+ // call sequence:
64
+ // 1. label probe
65
+ // 2. allProps probe (no safeProps so we skip the SET branch)
66
+ // 3. timeline events query
67
+ // 4. SET + revision compound statement
68
+ mockSession.run
69
+ .mockResolvedValueOnce({ records: [labelRecord()] })
70
+ .mockResolvedValueOnce({ records: [{ get: () => ({ name: "Acme" }) }] })
71
+ .mockResolvedValueOnce({ records: [] }) // empty events
72
+ .mockResolvedValueOnce({ records: [] }); // SET
73
+ await memoryUpdate({
74
+ nodeId: "4:n:1",
75
+ properties: {},
76
+ accountId: "acct-1",
77
+ createdBy: { agent: "test", session: "s1" },
78
+ rewriteCompiledTruth: true,
79
+ operatorHint: "Adam now works at Anthropic.",
80
+ });
81
+ // rewriter called with the hint
82
+ const rewriterArgs = rewriterMock.mock.calls[0][0];
83
+ expect(rewriterArgs.operatorHint).toBe("Adam now works at Anthropic.");
84
+ // SET runs with source='operator' bound as $source
85
+ const setCall = mockSession.run.mock.calls.find(([cypher]) => typeof cypher === "string" && cypher.includes("n.compiledTruthSource = $source"));
86
+ expect(setCall).toBeDefined();
87
+ expect(setCall[1]).toMatchObject({ source: "operator" });
88
+ });
89
+ it("bypasses the 7-day operator cooldown when operatorHint is set", async () => {
90
+ // currentSource='operator' + recent timestamp would normally refuse.
91
+ mockSession.run
92
+ .mockResolvedValueOnce({ records: [labelRecord()] })
93
+ .mockResolvedValueOnce({ records: [{ get: () => ({ name: "Acme" }) }] })
94
+ .mockResolvedValueOnce({ records: [] })
95
+ .mockResolvedValueOnce({ records: [] });
96
+ const result = await memoryUpdate({
97
+ nodeId: "4:n:1",
98
+ properties: {},
99
+ accountId: "acct-1",
100
+ createdBy: { agent: "test", session: "s1" },
101
+ rewriteCompiledTruth: true,
102
+ operatorHint: "correction",
103
+ });
104
+ expect(result.rewriter?.kind).toBe("ok");
105
+ // Without the hint, the same setup refuses.
106
+ mockSession.run.mockReset();
107
+ mockSession.run
108
+ .mockResolvedValueOnce({ records: [labelRecord()] })
109
+ .mockResolvedValueOnce({ records: [{ get: () => ({ name: "Acme" }) }] });
110
+ const refused = await memoryUpdate({
111
+ nodeId: "4:n:1",
112
+ properties: {},
113
+ accountId: "acct-1",
114
+ createdBy: { agent: "test", session: "s1" },
115
+ rewriteCompiledTruth: true,
116
+ });
117
+ expect(refused.rewriter).toMatchObject({ kind: "refused", reason: "operator-edit-cooldown" });
118
+ });
119
+ it("skips the public-twin auto-fire when operatorHint is set", async () => {
120
+ // Fresh public state — would normally trigger public pass on :Organization.
121
+ mockSession.run
122
+ .mockResolvedValueOnce({
123
+ records: [labelRecord({ compiledTruthSource: "rewriter", compiledTruthPublicSource: "rewriter" })],
124
+ })
125
+ .mockResolvedValueOnce({ records: [{ get: () => ({ name: "Acme" }) }] })
126
+ .mockResolvedValueOnce({ records: [] })
127
+ .mockResolvedValueOnce({ records: [] });
128
+ const result = await memoryUpdate({
129
+ nodeId: "4:n:1",
130
+ properties: {},
131
+ accountId: "acct-1",
132
+ createdBy: { agent: "test", session: "s1" },
133
+ rewriteCompiledTruth: true,
134
+ operatorHint: "correction",
135
+ });
136
+ // Only one rewriter call — admin pass; no public-twin call.
137
+ expect(rewriterMock).toHaveBeenCalledTimes(1);
138
+ expect(result.publicRewriter).toBeUndefined();
139
+ });
140
+ it("rejects operatorHint without rewriteCompiledTruth", async () => {
141
+ await expect(memoryUpdate({
142
+ nodeId: "4:n:1",
143
+ properties: { name: "Acme" },
144
+ accountId: "acct-1",
145
+ createdBy: { agent: "test", session: "s1" },
146
+ operatorHint: "x",
147
+ })).rejects.toThrow(/requires rewriteCompiledTruth/);
148
+ });
149
+ it("rejects operatorHint over the cap", async () => {
150
+ await expect(memoryUpdate({
151
+ nodeId: "4:n:1",
152
+ properties: {},
153
+ accountId: "acct-1",
154
+ createdBy: { agent: "test", session: "s1" },
155
+ rewriteCompiledTruth: true,
156
+ operatorHint: "x".repeat(1001),
157
+ })).rejects.toThrow(/exceeds cap/);
158
+ });
159
+ });
160
+ describe("memory-update — public operator hint (Task 420)", () => {
161
+ beforeEach(() => {
162
+ mockSession.run.mockReset();
163
+ rewriterMock.mockReset();
164
+ // Admin pass returns the same string as the current truth — a no-op
165
+ // admin rewrite. The public pass under publicOperatorHint must still fire.
166
+ rewriterMock.mockImplementation((args) => {
167
+ if (args.mode === "public") {
168
+ return Promise.resolve({ kind: "ok", compiledTruth: "Acme is a company." });
169
+ }
170
+ return Promise.resolve({ kind: "ok", compiledTruth: args.currentTruth });
171
+ });
172
+ });
173
+ function publicLabelRecord(overrides = {}) {
174
+ const base = {
175
+ nodeLabels: ["Organization"],
176
+ compiledTruth: "admin truth",
177
+ compiledTruthSource: "rewriter",
178
+ compiledTruthUpdatedAt: null,
179
+ compiledTruthPublic: "old public",
180
+ compiledTruthPublicSource: "operator",
181
+ compiledTruthPublicUpdatedAt: { toString: () => new Date().toISOString() }, // in cooldown
182
+ name: "Acme",
183
+ ...overrides,
184
+ };
185
+ return { get: (k) => base[k] };
186
+ }
187
+ it("folds publicOperatorHint into the public rewriter call and stamps public SET source='operator'", async () => {
188
+ // call sequence:
189
+ // 1. label probe
190
+ // 2. allProps probe
191
+ // 3. timeline events
192
+ // 4. admin SET + revision
193
+ // 5. public SET
194
+ mockSession.run
195
+ .mockResolvedValueOnce({ records: [publicLabelRecord()] })
196
+ .mockResolvedValueOnce({ records: [{ get: () => ({ name: "Acme" }) }] })
197
+ .mockResolvedValueOnce({ records: [] })
198
+ .mockResolvedValueOnce({ records: [] })
199
+ .mockResolvedValueOnce({ records: [] });
200
+ const result = await memoryUpdate({
201
+ nodeId: "4:n:1",
202
+ properties: {},
203
+ accountId: "acct-1",
204
+ createdBy: { agent: "test", session: "s1" },
205
+ rewriteCompiledTruth: true,
206
+ publicOperatorHint: "Acme is publicly recognised for X.",
207
+ });
208
+ // Two rewriter calls — admin pass + public pass with the hint.
209
+ expect(rewriterMock).toHaveBeenCalledTimes(2);
210
+ const publicCall = rewriterMock.mock.calls.find(([args]) => args.mode === "public");
211
+ expect(publicCall).toBeDefined();
212
+ expect(publicCall[0].operatorHint).toBe("Acme is publicly recognised for X.");
213
+ // Public SET runs with source='operator' bound as $source.
214
+ const publicSet = mockSession.run.mock.calls.find(([cypher]) => typeof cypher === "string" && cypher.includes("n.compiledTruthPublic = $truth"));
215
+ expect(publicSet).toBeDefined();
216
+ expect(publicSet[1]).toMatchObject({ source: "operator" });
217
+ expect(result.publicRewriter).toMatchObject({ kind: "ok", source: "operator" });
218
+ });
219
+ it("fires the public pass even when the admin rewrite is a no-op (string-identical)", async () => {
220
+ // Admin pass returns currentTruth verbatim (no change). Without a public
221
+ // hint, the public pass would be skipped; with a hint it must still fire.
222
+ mockSession.run
223
+ .mockResolvedValueOnce({ records: [publicLabelRecord({ compiledTruthPublicSource: "rewriter" })] })
224
+ .mockResolvedValueOnce({ records: [{ get: () => ({ name: "Acme" }) }] })
225
+ .mockResolvedValueOnce({ records: [] })
226
+ .mockResolvedValueOnce({ records: [] })
227
+ .mockResolvedValueOnce({ records: [] });
228
+ const result = await memoryUpdate({
229
+ nodeId: "4:n:1",
230
+ properties: {},
231
+ accountId: "acct-1",
232
+ createdBy: { agent: "test", session: "s1" },
233
+ rewriteCompiledTruth: true,
234
+ publicOperatorHint: "Force-fire",
235
+ });
236
+ expect(result.publicRewriter?.kind).toBe("ok");
237
+ expect(rewriterMock).toHaveBeenCalledTimes(2);
238
+ });
239
+ it("bypasses the public-cooldown when publicOperatorHint is set", async () => {
240
+ // compiledTruthPublicSource='operator' + recent timestamp would normally
241
+ // refuse the public pass.
242
+ mockSession.run
243
+ .mockResolvedValueOnce({ records: [publicLabelRecord()] })
244
+ .mockResolvedValueOnce({ records: [{ get: () => ({ name: "Acme" }) }] })
245
+ .mockResolvedValueOnce({ records: [] })
246
+ .mockResolvedValueOnce({ records: [] })
247
+ .mockResolvedValueOnce({ records: [] });
248
+ const result = await memoryUpdate({
249
+ nodeId: "4:n:1",
250
+ properties: {},
251
+ accountId: "acct-1",
252
+ createdBy: { agent: "test", session: "s1" },
253
+ rewriteCompiledTruth: true,
254
+ publicOperatorHint: "Bypass",
255
+ });
256
+ expect(result.publicRewriter?.kind).toBe("ok");
257
+ });
258
+ it("refuses publicOperatorHint on a :Person label", async () => {
259
+ mockSession.run
260
+ .mockResolvedValueOnce({
261
+ records: [publicLabelRecord({ nodeLabels: ["Person"], compiledTruthPublicSource: "rewriter" })],
262
+ })
263
+ .mockResolvedValueOnce({ records: [{ get: () => ({ name: "Adam" }) }] });
264
+ await expect(memoryUpdate({
265
+ nodeId: "4:n:1",
266
+ properties: {},
267
+ accountId: "acct-1",
268
+ createdBy: { agent: "test", session: "s1" },
269
+ rewriteCompiledTruth: true,
270
+ publicOperatorHint: "no public twin",
271
+ })).rejects.toThrow(/requires a public-twin label/);
272
+ });
273
+ it("rejects publicOperatorHint without rewriteCompiledTruth", async () => {
274
+ await expect(memoryUpdate({
275
+ nodeId: "4:n:1",
276
+ properties: { name: "Acme" },
277
+ accountId: "acct-1",
278
+ createdBy: { agent: "test", session: "s1" },
279
+ publicOperatorHint: "x",
280
+ })).rejects.toThrow(/requires rewriteCompiledTruth/);
281
+ });
282
+ it("rejects publicOperatorHint over the cap", async () => {
283
+ await expect(memoryUpdate({
284
+ nodeId: "4:n:1",
285
+ properties: {},
286
+ accountId: "acct-1",
287
+ createdBy: { agent: "test", session: "s1" },
288
+ rewriteCompiledTruth: true,
289
+ publicOperatorHint: "x".repeat(1001),
290
+ })).rejects.toThrow(/exceeds cap/);
291
+ });
292
+ it("admin and public hints are independent — admin-only hint skips public, public-only hint runs both", async () => {
293
+ // Case A: admin-only hint — public pass skipped (Task 413 behaviour).
294
+ mockSession.run
295
+ .mockResolvedValueOnce({ records: [publicLabelRecord({ compiledTruthPublicSource: "rewriter" })] })
296
+ .mockResolvedValueOnce({ records: [{ get: () => ({ name: "Acme" }) }] })
297
+ .mockResolvedValueOnce({ records: [] })
298
+ .mockResolvedValueOnce({ records: [] });
299
+ const adminOnly = await memoryUpdate({
300
+ nodeId: "4:n:1",
301
+ properties: {},
302
+ accountId: "acct-1",
303
+ createdBy: { agent: "test", session: "s1" },
304
+ rewriteCompiledTruth: true,
305
+ operatorHint: "admin correction",
306
+ });
307
+ expect(adminOnly.publicRewriter).toBeUndefined();
308
+ // Case B: public-only hint — admin pass runs as no-op, public pass fires.
309
+ rewriterMock.mockClear();
310
+ mockSession.run.mockReset();
311
+ mockSession.run
312
+ .mockResolvedValueOnce({ records: [publicLabelRecord({ compiledTruthPublicSource: "rewriter" })] })
313
+ .mockResolvedValueOnce({ records: [{ get: () => ({ name: "Acme" }) }] })
314
+ .mockResolvedValueOnce({ records: [] })
315
+ .mockResolvedValueOnce({ records: [] })
316
+ .mockResolvedValueOnce({ records: [] });
317
+ const publicOnly = await memoryUpdate({
318
+ nodeId: "4:n:1",
319
+ properties: {},
320
+ accountId: "acct-1",
321
+ createdBy: { agent: "test", session: "s1" },
322
+ rewriteCompiledTruth: true,
323
+ publicOperatorHint: "public correction",
324
+ });
325
+ expect(publicOnly.rewriter?.kind).toBe("ok");
326
+ expect(publicOnly.publicRewriter?.kind).toBe("ok");
327
+ });
328
+ });
329
+ //# sourceMappingURL=memory-update-operator-hint.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-update-operator-hint.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/memory-update-operator-hint.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=memory-write-compiled-truth-rejection.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-write-compiled-truth-rejection.test.d.ts","sourceRoot":"","sources":["../../../src/tools/__tests__/memory-write-compiled-truth-rejection.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,39 @@
1
+ // Task 413 — memory-write refuses operator-supplied compiled-truth fields.
2
+ //
3
+ // The six system-managed keys (compiledTruth{,UpdatedAt,Source} and
4
+ // compiledTruthPublic{,UpdatedAt,Source}) can only be written by the
5
+ // defaults block on first write (caller-supplied value is undefined) and
6
+ // by the rewriter via memory-update. Any caller passing one of them in
7
+ // the properties bag is bypassing the audit chain.
8
+ import { describe, it, expect, vi } from "vitest";
9
+ vi.mock("../../lib/neo4j.js", () => ({
10
+ getSession: () => ({
11
+ run: vi.fn(),
12
+ close: vi.fn().mockResolvedValue(undefined),
13
+ }),
14
+ }));
15
+ import { memoryWrite } from "../memory-write.js";
16
+ const REJECTED_KEYS = [
17
+ "compiledTruth",
18
+ "compiledTruthUpdatedAt",
19
+ "compiledTruthSource",
20
+ "compiledTruthPublic",
21
+ "compiledTruthPublicUpdatedAt",
22
+ "compiledTruthPublicSource",
23
+ ];
24
+ describe("memory-write — system-managed compiled-truth keys (Task 413)", () => {
25
+ for (const key of REJECTED_KEYS) {
26
+ it(`rejects properties.${key}`, async () => {
27
+ await expect(memoryWrite({
28
+ labels: ["Person"],
29
+ properties: { name: "Adam", [key]: "operator wrote this" },
30
+ accountId: "acct-1",
31
+ scope: "admin",
32
+ relationships: [{ targetId: "x", type: "MENTIONS", direction: "outbound" }],
33
+ createdBy: { agent: "test", session: "s1" },
34
+ validator: { schema: { brandVertical: undefined }, recognisedLabels: () => new Set(["Person"]) },
35
+ })).rejects.toThrow(/system-managed-key/);
36
+ });
37
+ }
38
+ });
39
+ //# sourceMappingURL=memory-write-compiled-truth-rejection.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-write-compiled-truth-rejection.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/memory-write-compiled-truth-rejection.test.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,EAAE;AACF,oEAAoE;AACpE,qEAAqE;AACrE,yEAAyE;AACzE,uEAAuE;AACvE,mDAAmD;AAEnD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAElD,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC;IACnC,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QACjB,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;QACZ,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;KAC5C,CAAC;CACH,CAAC,CAAC,CAAC;AAEJ,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,aAAa,GAAG;IACpB,eAAe;IACf,wBAAwB;IACxB,qBAAqB;IACrB,qBAAqB;IACrB,8BAA8B;IAC9B,2BAA2B;CAC5B,CAAC;AAEF,QAAQ,CAAC,8DAA8D,EAAE,GAAG,EAAE;IAC5E,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,EAAE,CAAC,sBAAsB,GAAG,EAAE,EAAE,KAAK,IAAI,EAAE;YACzC,MAAM,MAAM,CACV,WAAW,CAAC;gBACV,MAAM,EAAE,CAAC,QAAQ,CAAC;gBAClB,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,qBAAqB,EAAE;gBAC1D,SAAS,EAAE,QAAQ;gBACnB,KAAK,EAAE,OAAO;gBACd,aAAa,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,CAAU;gBACpF,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAW;gBACpD,SAAS,EAAE,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAW;aAC1G,CAAC,CACH,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"memory-search.d.ts","sourceRoot":"","sources":["../../src/tools/memory-search.ts"],"names":[],"mappings":"AAEA,OAAO,EAAU,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,+CAA+C,CAAC;AA8F7G,MAAM,MAAM,kBAAkB,GAC1B,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,GAC3B;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAE1C,wBAAsB,YAAY,CAChC,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,YAAY,EAAE,CAAC,CA2GzB"}
1
+ {"version":3,"file":"memory-search.d.ts","sourceRoot":"","sources":["../../src/tools/memory-search.ts"],"names":[],"mappings":"AAEA,OAAO,EAA6B,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,+CAA+C,CAAC;AAmFhI,MAAM,MAAM,kBAAkB,GAC1B,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,GAC3B;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAE1C,wBAAsB,YAAY,CAChC,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,YAAY,EAAE,CAAC,CA2GzB"}
@@ -1,6 +1,6 @@
1
1
  import { getSession } from "../lib/neo4j.js";
2
2
  import { embed } from "../lib/embeddings.js";
3
- import { hybrid } from "../../../../../lib/graph-search/dist/index.js";
3
+ import { hybrid, isPublicOnlyScope } from "../../../../../lib/graph-search/dist/index.js";
4
4
  // ---------------------------------------------------------------------------
5
5
  // Memory search — thin adapter over the shared `graph-search` lib.
6
6
  // The hybrid pipeline, Lucene escape, BM25 normalisation, and graph expand
@@ -34,16 +34,6 @@ const PUBLIC_TWIN_LABELS = new Set([
34
34
  "Project",
35
35
  "LocalBusiness",
36
36
  ]);
37
- /**
38
- * Detect the public-agent read shape: scope filter is exactly `['public']`.
39
- * Admin reads pass no scope filter or a broader allowedScopes list; either
40
- * leaves the property bag untouched. Anything narrower than the exact
41
- * `['public']` shape (e.g. `['public', 'shared']`) is treated as admin —
42
- * we only project for the verified public-only entry point.
43
- */
44
- function isPublicOnlyScope(allowedScopes) {
45
- return Array.isArray(allowedScopes) && allowedScopes.length === 1 && allowedScopes[0] === "public";
46
- }
47
37
  /**
48
38
  * Rewrite the property bag on a single result row to surface the public twin.
49
39
  * - Public-twin labels: swap `compiledTruth` → `compiledTruthPublic` (drop the admin field).
@@ -1 +1 @@
1
- {"version":3,"file":"memory-search.js","sourceRoot":"","sources":["../../src/tools/memory-search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory-search.js","sourceRoot":"","sources":["../../src/tools/memory-search.ts"],"names":[],"mappings":"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"}