@rubytech/create-maxy-code 0.1.230 → 0.1.233

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 (106) hide show
  1. package/dist/__tests__/rss-sampler-installer.test.js +27 -0
  2. package/dist/index.js +61 -0
  3. package/package.json +1 -1
  4. package/payload/platform/neo4j/schema.cypher +20 -0
  5. package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +39 -1
  6. package/payload/platform/plugins/docs/references/graph.md +12 -0
  7. package/payload/platform/plugins/docs/references/memory-guide.md +26 -0
  8. package/payload/platform/plugins/docs/superpowers/plans/2026-06-01-memory-edge.md +589 -0
  9. package/payload/platform/plugins/memory/.claude-plugin/plugin.json +1 -1
  10. package/payload/platform/plugins/memory/PLUGIN.md +12 -2
  11. package/payload/platform/plugins/memory/mcp/dist/index.js +64 -7
  12. package/payload/platform/plugins/memory/mcp/dist/index.js.map +1 -1
  13. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/compiled-truth-revision.test.js +16 -0
  14. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/compiled-truth-revision.test.js.map +1 -1
  15. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/phase-backlinks.test.d.ts +2 -0
  16. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/phase-backlinks.test.d.ts.map +1 -0
  17. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/phase-backlinks.test.js +24 -0
  18. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/phase-backlinks.test.js.map +1 -0
  19. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/phase-tag-normalisation.test.d.ts +2 -0
  20. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/phase-tag-normalisation.test.d.ts.map +1 -0
  21. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/phase-tag-normalisation.test.js +51 -0
  22. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/phase-tag-normalisation.test.js.map +1 -0
  23. package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-revision.d.ts +31 -0
  24. package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-revision.d.ts.map +1 -1
  25. package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-revision.js.map +1 -1
  26. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/index.d.ts +7 -7
  27. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/index.js +7 -7
  28. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-backlinks.d.ts +15 -0
  29. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-backlinks.d.ts.map +1 -0
  30. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-backlinks.js +37 -0
  31. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-backlinks.js.map +1 -0
  32. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-tag-normalisation.d.ts +25 -0
  33. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-tag-normalisation.d.ts.map +1 -0
  34. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-tag-normalisation.js +90 -0
  35. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-tag-normalisation.js.map +1 -0
  36. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights.test.js +117 -0
  37. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights.test.js.map +1 -1
  38. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-compiled-truth-history.test.js +72 -26
  39. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-compiled-truth-history.test.js.map +1 -1
  40. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-edge.test.d.ts +2 -0
  41. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-edge.test.d.ts.map +1 -0
  42. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-edge.test.js +164 -0
  43. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-edge.test.js.map +1 -0
  44. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-inline-rewrite.test.d.ts +2 -0
  45. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-inline-rewrite.test.d.ts.map +1 -0
  46. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-inline-rewrite.test.js +66 -0
  47. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-inline-rewrite.test.js.map +1 -0
  48. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-timeline-learned-at.test.d.ts +2 -0
  49. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-timeline-learned-at.test.d.ts.map +1 -0
  50. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-timeline-learned-at.test.js +30 -0
  51. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-timeline-learned-at.test.js.map +1 -0
  52. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.d.ts +25 -0
  53. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.d.ts.map +1 -1
  54. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.js +26 -0
  55. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.js.map +1 -1
  56. package/payload/platform/plugins/memory/mcp/dist/tools/memory-compiled-truth-history.d.ts +17 -1
  57. package/payload/platform/plugins/memory/mcp/dist/tools/memory-compiled-truth-history.d.ts.map +1 -1
  58. package/payload/platform/plugins/memory/mcp/dist/tools/memory-compiled-truth-history.js +33 -13
  59. package/payload/platform/plugins/memory/mcp/dist/tools/memory-compiled-truth-history.js.map +1 -1
  60. package/payload/platform/plugins/memory/mcp/dist/tools/memory-dream-run.d.ts +6 -3
  61. package/payload/platform/plugins/memory/mcp/dist/tools/memory-dream-run.d.ts.map +1 -1
  62. package/payload/platform/plugins/memory/mcp/dist/tools/memory-dream-run.js +32 -5
  63. package/payload/platform/plugins/memory/mcp/dist/tools/memory-dream-run.js.map +1 -1
  64. package/payload/platform/plugins/memory/mcp/dist/tools/memory-edge.d.ts +21 -0
  65. package/payload/platform/plugins/memory/mcp/dist/tools/memory-edge.d.ts.map +1 -0
  66. package/payload/platform/plugins/memory/mcp/dist/tools/memory-edge.js +51 -0
  67. package/payload/platform/plugins/memory/mcp/dist/tools/memory-edge.js.map +1 -0
  68. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.d.ts +37 -0
  69. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.d.ts.map +1 -1
  70. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.js +72 -0
  71. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.js.map +1 -1
  72. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.d.ts.map +1 -1
  73. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.js +1 -0
  74. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.js.map +1 -1
  75. package/payload/platform/plugins/memory/skills/challenge/SKILL.md +52 -0
  76. package/payload/platform/plugins/memory/skills/connect/SKILL.md +56 -0
  77. package/payload/platform/plugins/memory/skills/emerge/SKILL.md +87 -0
  78. package/payload/platform/plugins/scheduling/mcp/dist/index.js +1 -1
  79. package/payload/platform/plugins/scheduling/mcp/dist/index.js.map +1 -1
  80. package/payload/platform/scripts/rss-sampler.sh +58 -0
  81. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.d.ts.map +1 -1
  82. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js +1 -0
  83. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js.map +1 -1
  84. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts +4 -0
  85. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
  86. package/payload/platform/services/claude-session-manager/dist/http-server.js +30 -4
  87. package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
  88. package/payload/platform/services/claude-session-manager/dist/index.js +23 -0
  89. package/payload/platform/services/claude-session-manager/dist/index.js.map +1 -1
  90. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts +14 -2
  91. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
  92. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +27 -0
  93. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
  94. package/payload/platform/services/claude-session-manager/dist/rc-daemon.d.ts +6 -0
  95. package/payload/platform/services/claude-session-manager/dist/rc-daemon.d.ts.map +1 -1
  96. package/payload/platform/services/claude-session-manager/dist/rc-daemon.js +2 -0
  97. package/payload/platform/services/claude-session-manager/dist/rc-daemon.js.map +1 -1
  98. package/payload/platform/templates/specialists/agents/archive-ingest-operator.md +1 -1
  99. package/payload/platform/templates/specialists/agents/database-operator.md +1 -1
  100. package/payload/platform/templates/specialists/agents/librarian.md +1 -1
  101. package/payload/server/{chunk-EXIPYITB.js → chunk-63M3ILJ6.js} +1 -0
  102. package/payload/server/maxy-edge.js +1 -1
  103. package/payload/server/public/assets/admin-DfeXRW1m.js +1 -0
  104. package/payload/server/public/index.html +1 -1
  105. package/payload/server/server.js +1 -1
  106. package/payload/server/public/assets/admin-BKawc0eQ.js +0 -1
@@ -1,4 +1,5 @@
1
1
  import { describe, it, expect, vi, beforeEach } from "vitest";
2
+ import { int } from "neo4j-driver";
2
3
  import { readFileSync } from "node:fs";
3
4
  import { resolve } from "node:path";
4
5
  vi.mock("../../lib/neo4j.js", () => {
@@ -15,30 +16,34 @@ const { run, close } = neo4jMock.__mocks;
15
16
  function row(props) {
16
17
  return { get: (key) => props[key] };
17
18
  }
19
+ // Helper: set up two sequential mock responses (revisions query, then timeline events query).
20
+ function mockBothQueries(revisionRows, eventRows) {
21
+ run
22
+ .mockResolvedValueOnce({ records: revisionRows.map(row) })
23
+ .mockResolvedValueOnce({ records: eventRows.map(row) });
24
+ }
18
25
  describe("memoryCompiledTruthHistory", () => {
19
26
  beforeEach(() => {
20
27
  run.mockReset();
21
28
  close.mockReset();
22
29
  });
23
30
  it("returns revisions newest first, account-scoped", async () => {
24
- run.mockResolvedValue({
25
- records: [
26
- row({
27
- revisionId: "00000000-0000-0000-0000-000000000002",
28
- truth: "Newer truth",
29
- writtenAt: "2026-05-25T10:00:00Z",
30
- twin: "compiledTruth",
31
- source: "rewriter",
32
- }),
33
- row({
34
- revisionId: "00000000-0000-0000-0000-000000000001",
35
- truth: "Older truth",
36
- writtenAt: "2026-05-20T10:00:00Z",
37
- twin: "compiledTruth",
38
- source: "rewriter",
39
- }),
40
- ],
41
- });
31
+ mockBothQueries([
32
+ {
33
+ revisionId: "00000000-0000-0000-0000-000000000002",
34
+ truth: "Newer truth",
35
+ writtenAt: "2026-05-25T10:00:00Z",
36
+ twin: "compiledTruth",
37
+ source: "rewriter",
38
+ },
39
+ {
40
+ revisionId: "00000000-0000-0000-0000-000000000001",
41
+ truth: "Older truth",
42
+ writtenAt: "2026-05-20T10:00:00Z",
43
+ twin: "compiledTruth",
44
+ source: "rewriter",
45
+ },
46
+ ], []);
42
47
  const result = await memoryCompiledTruthHistory({
43
48
  accountId: "acc-1",
44
49
  nodeId: "4:abc:1",
@@ -47,19 +52,61 @@ describe("memoryCompiledTruthHistory", () => {
47
52
  expect(result.revisions).toHaveLength(2);
48
53
  expect(result.revisions[0].truth).toBe("Newer truth");
49
54
  expect(result.revisions[1].truth).toBe("Older truth");
50
- const args = run.mock.calls[0];
51
- expect(args[0]).toContain("ORDER BY r.writtenAt DESC");
52
- expect(args[0]).toContain("e.accountId = $accountId");
53
- expect(args[0]).toContain("r.accountId = $accountId");
54
- expect(args[1]).toEqual({ accountId: "acc-1", nodeId: "4:abc:1", limit: 20 });
55
+ const revArgs = run.mock.calls[0];
56
+ expect(revArgs[0]).toContain("ORDER BY r.writtenAt DESC");
57
+ expect(revArgs[0]).toContain("e.accountId = $accountId");
58
+ expect(revArgs[0]).toContain("r.accountId = $accountId");
59
+ expect(revArgs[1]).toEqual({ accountId: "acc-1", nodeId: "4:abc:1", limit: int(20) });
60
+ });
61
+ it("returns timeline events with eventDate and learnedAt (Task 597)", async () => {
62
+ mockBothQueries([], [
63
+ {
64
+ timelineEventId: "evt-1",
65
+ eventDate: "1990-01-01T00:00:00Z",
66
+ learnedAt: "2026-05-25T10:00:00Z",
67
+ kind: "mentioned",
68
+ summary: "Alice mentioned in archive from 1990",
69
+ },
70
+ ]);
71
+ const result = await memoryCompiledTruthHistory({
72
+ accountId: "acc-1",
73
+ nodeId: "4:abc:1",
74
+ });
75
+ expect(result.timelineEvents).toHaveLength(1);
76
+ const evt = result.timelineEvents[0];
77
+ expect(evt.timelineEventId).toBe("evt-1");
78
+ expect(evt.eventDate).toBe("1990-01-01T00:00:00Z");
79
+ expect(evt.learnedAt).toBe("2026-05-25T10:00:00Z");
80
+ expect(evt.kind).toBe("mentioned");
81
+ // The two timestamps must differ — this is the point of bi-temporal storage.
82
+ expect(evt.eventDate).not.toBe(evt.learnedAt);
83
+ expect(evt.learnedAt).not.toBeNull();
84
+ });
85
+ it("returns null learnedAt for pre-migration nodes (learnedAt IS NULL in DB)", async () => {
86
+ mockBothQueries([], [
87
+ {
88
+ timelineEventId: "evt-old",
89
+ eventDate: "2020-01-01T00:00:00Z",
90
+ learnedAt: null, // node predates Task 597 backfill
91
+ kind: "met",
92
+ summary: "Pre-migration event",
93
+ },
94
+ ]);
95
+ const result = await memoryCompiledTruthHistory({
96
+ accountId: "acc-1",
97
+ nodeId: "4:abc:3",
98
+ });
99
+ expect(result.timelineEvents).toHaveLength(1);
100
+ expect(result.timelineEvents[0].learnedAt).toBeNull();
55
101
  });
56
- it("returns an empty list when no revisions exist", async () => {
57
- run.mockResolvedValue({ records: [] });
102
+ it("returns empty arrays when no revisions or events exist", async () => {
103
+ mockBothQueries([], []);
58
104
  const result = await memoryCompiledTruthHistory({
59
105
  accountId: "acc-1",
60
106
  nodeId: "4:abc:2",
61
107
  });
62
108
  expect(result.revisions).toEqual([]);
109
+ expect(result.timelineEvents).toEqual([]);
63
110
  });
64
111
  it("throws when accountId or nodeId is missing", async () => {
65
112
  await expect(memoryCompiledTruthHistory({ accountId: "", nodeId: "4:abc:1" })).rejects.toThrow(/accountId/);
@@ -75,7 +122,6 @@ describe("memory-compiled-truth-history registration", () => {
75
122
  it("declared in PLUGIN.md with admin allowlist", () => {
76
123
  const plugin = readFileSync(resolve(import.meta.dirname, "../../../../PLUGIN.md"), "utf-8");
77
124
  expect(plugin).toContain("name: memory-compiled-truth-history");
78
- // verify admin allowlist line follows shortly after the name
79
125
  const idx = plugin.indexOf("name: memory-compiled-truth-history");
80
126
  expect(plugin.slice(idx, idx + 120)).toContain("adminAllowlist: true");
81
127
  });
@@ -1 +1 @@
1
- {"version":3,"file":"memory-compiled-truth-history.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/memory-compiled-truth-history.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE;IACjC,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IACpB,MAAM,KAAK,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IACtB,OAAO;QACL,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;QAClC,OAAO,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE;KACxB,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,KAAK,SAAS,MAAM,oBAAoB,CAAC;AAEhD,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAI,SAAwG,CAAC,OAAO,CAAC;AAEzI,SAAS,GAAG,CAAC,KAA8B;IACzC,OAAO,EAAE,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAC9C,CAAC;AAED,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,UAAU,CAAC,GAAG,EAAE;QACd,GAAG,CAAC,SAAS,EAAE,CAAC;QAChB,KAAK,CAAC,SAAS,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,GAAG,CAAC,iBAAiB,CAAC;YACpB,OAAO,EAAE;gBACP,GAAG,CAAC;oBACF,UAAU,EAAE,sCAAsC;oBAClD,KAAK,EAAE,aAAa;oBACpB,SAAS,EAAE,sBAAsB;oBACjC,IAAI,EAAE,eAAe;oBACrB,MAAM,EAAE,UAAU;iBACnB,CAAC;gBACF,GAAG,CAAC;oBACF,UAAU,EAAE,sCAAsC;oBAClD,KAAK,EAAE,aAAa;oBACpB,SAAS,EAAE,sBAAsB;oBACjC,IAAI,EAAE,eAAe;oBACrB,MAAM,EAAE,UAAU;iBACnB,CAAC;aACH;SACF,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAAC;YAC9C,SAAS,EAAE,OAAO;YAClB,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACtD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEtD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;QACvD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,GAAG,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAAC;YAC9C,SAAS,EAAE,OAAO;YAClB,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,MAAM,CACV,0BAA0B,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CACjE,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC/B,MAAM,MAAM,CACV,0BAA0B,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAC/D,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,4CAA4C,EAAE,GAAG,EAAE;IAC1D,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,GAAG,GAAG,YAAY,CACtB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,EAC9C,OAAO,CACR,CAAC;QACF,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,4DAA4D,CAAC,CAAC;QAClF,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,+CAA+C,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,MAAM,GAAG,YAAY,CACzB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,uBAAuB,CAAC,EACrD,OAAO,CACR,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,qCAAqC,CAAC,CAAC;QAChE,6DAA6D;QAC7D,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;QAClE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"memory-compiled-truth-history.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/memory-compiled-truth-history.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=memory-edge.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-edge.test.d.ts","sourceRoot":"","sources":["../../../src/tools/__tests__/memory-edge.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,164 @@
1
+ // @vitest-environment node
2
+ import { describe, it, expect, beforeEach, vi } from "vitest";
3
+ function makeSession(runResults) {
4
+ let i = 0;
5
+ return {
6
+ run: vi.fn().mockImplementation(async () => {
7
+ const res = runResults[i++] ?? { records: [] };
8
+ return res;
9
+ }),
10
+ close: vi.fn().mockResolvedValue(undefined),
11
+ };
12
+ }
13
+ function ownerOk(id) {
14
+ return { records: [{ get: (_) => id }] };
15
+ }
16
+ function ownerFail() {
17
+ return { records: [] };
18
+ }
19
+ function mergeResult(created) {
20
+ return {
21
+ records: [{ get: (_) => ({}) }],
22
+ summary: {
23
+ counters: {
24
+ updates: () => ({ relationshipsCreated: created, relationshipsDeleted: 0 }),
25
+ },
26
+ },
27
+ };
28
+ }
29
+ function deleteResult(deleted) {
30
+ return {
31
+ records: [],
32
+ summary: {
33
+ counters: {
34
+ updates: () => ({ relationshipsCreated: 0, relationshipsDeleted: deleted }),
35
+ },
36
+ },
37
+ };
38
+ }
39
+ const ACCOUNT_ID = "acct-1";
40
+ const FROM_ID = "4:eid:node-a";
41
+ const TO_ID = "4:eid:node-b";
42
+ let mockSession;
43
+ vi.mock("../../lib/neo4j.js", () => ({
44
+ getSession: () => mockSession,
45
+ }));
46
+ import { memoryEdge } from "../memory-edge.js";
47
+ beforeEach(() => {
48
+ vi.clearAllMocks();
49
+ vi.spyOn(process.stderr, "write").mockImplementation(() => true);
50
+ });
51
+ describe("memory-edge — create", () => {
52
+ it("creates edge on first call — returned created: true", async () => {
53
+ mockSession = makeSession([ownerOk(FROM_ID), ownerOk(TO_ID), mergeResult(1)]);
54
+ const result = await memoryEdge({
55
+ action: "create",
56
+ fromId: FROM_ID,
57
+ toId: TO_ID,
58
+ relationshipType: "RELATES_TO",
59
+ accountId: ACCOUNT_ID,
60
+ });
61
+ expect(result).toEqual({ created: true });
62
+ expect(mockSession.run).toHaveBeenCalledTimes(3);
63
+ });
64
+ it("idempotent on second call — returned created: false", async () => {
65
+ mockSession = makeSession([ownerOk(FROM_ID), ownerOk(TO_ID), mergeResult(0)]);
66
+ const result = await memoryEdge({
67
+ action: "create",
68
+ fromId: FROM_ID,
69
+ toId: TO_ID,
70
+ relationshipType: "RELATES_TO",
71
+ accountId: ACCOUNT_ID,
72
+ });
73
+ expect(result).toEqual({ created: false });
74
+ });
75
+ it("uppercases the relationship type in the Cypher query", async () => {
76
+ mockSession = makeSession([ownerOk(FROM_ID), ownerOk(TO_ID), mergeResult(1)]);
77
+ await memoryEdge({
78
+ action: "create",
79
+ fromId: FROM_ID,
80
+ toId: TO_ID,
81
+ relationshipType: "relates_to",
82
+ accountId: ACCOUNT_ID,
83
+ });
84
+ const mergeCall = mockSession.run.mock.calls[2][0];
85
+ expect(mergeCall).toContain("`RELATES_TO`");
86
+ });
87
+ });
88
+ describe("memory-edge — delete", () => {
89
+ it("deletes a present edge — returned deleted: true", async () => {
90
+ mockSession = makeSession([ownerOk(FROM_ID), ownerOk(TO_ID), deleteResult(1)]);
91
+ const result = await memoryEdge({
92
+ action: "delete",
93
+ fromId: FROM_ID,
94
+ toId: TO_ID,
95
+ relationshipType: "RELATES_TO",
96
+ accountId: ACCOUNT_ID,
97
+ });
98
+ expect(result).toEqual({ deleted: true });
99
+ });
100
+ it("absent edge is a no-op — returned deleted: false", async () => {
101
+ mockSession = makeSession([ownerOk(FROM_ID), ownerOk(TO_ID), deleteResult(0)]);
102
+ const result = await memoryEdge({
103
+ action: "delete",
104
+ fromId: FROM_ID,
105
+ toId: TO_ID,
106
+ relationshipType: "RELATES_TO",
107
+ accountId: ACCOUNT_ID,
108
+ });
109
+ expect(result).toEqual({ deleted: false });
110
+ });
111
+ });
112
+ describe("memory-edge — account ownership", () => {
113
+ it("rejects when fromId does not belong to account — foreign-node error, no mutation", async () => {
114
+ mockSession = makeSession([ownerFail()]);
115
+ const result = await memoryEdge({
116
+ action: "create",
117
+ fromId: FROM_ID,
118
+ toId: TO_ID,
119
+ relationshipType: "RELATES_TO",
120
+ accountId: ACCOUNT_ID,
121
+ });
122
+ expect(result).toEqual({ error: "foreign-node", elementId: FROM_ID });
123
+ expect(mockSession.run).toHaveBeenCalledTimes(1);
124
+ });
125
+ it("rejects when toId does not belong to account — foreign-node error, no mutation", async () => {
126
+ mockSession = makeSession([ownerOk(FROM_ID), ownerFail()]);
127
+ const result = await memoryEdge({
128
+ action: "create",
129
+ fromId: FROM_ID,
130
+ toId: TO_ID,
131
+ relationshipType: "RELATES_TO",
132
+ accountId: ACCOUNT_ID,
133
+ });
134
+ expect(result).toEqual({ error: "foreign-node", elementId: TO_ID });
135
+ expect(mockSession.run).toHaveBeenCalledTimes(2);
136
+ });
137
+ });
138
+ describe("memory-edge — reserved type guard", () => {
139
+ it("rejects underscore-prefixed type before opening a session", async () => {
140
+ mockSession = makeSession([]);
141
+ const result = await memoryEdge({
142
+ action: "create",
143
+ fromId: FROM_ID,
144
+ toId: TO_ID,
145
+ relationshipType: "_INTERNAL",
146
+ accountId: ACCOUNT_ID,
147
+ });
148
+ expect(result).toEqual({ error: "reserved-type", type: "_INTERNAL" });
149
+ expect(mockSession.run).not.toHaveBeenCalled();
150
+ });
151
+ it("uppercase-coerces before reserved check — _soft_delete is also rejected", async () => {
152
+ mockSession = makeSession([]);
153
+ const result = await memoryEdge({
154
+ action: "create",
155
+ fromId: FROM_ID,
156
+ toId: TO_ID,
157
+ relationshipType: "_soft_delete",
158
+ accountId: ACCOUNT_ID,
159
+ });
160
+ expect(result).toEqual({ error: "reserved-type", type: "_SOFT_DELETE" });
161
+ expect(mockSession.run).not.toHaveBeenCalled();
162
+ });
163
+ });
164
+ //# sourceMappingURL=memory-edge.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-edge.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/memory-edge.test.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9D,SAAS,WAAW,CAAC,UAA4D;IAC/E,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO;QACL,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,IAAI,EAAE;YACzC,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YAC/C,OAAO,GAAG,CAAC;QACb,CAAC,CAAC;QACF,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;KAC5C,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,EAAU;IACzB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AACnD,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AACzB,CAAC;AAED,SAAS,WAAW,CAAC,OAAe;IAClC,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACvC,OAAO,EAAE;YACP,QAAQ,EAAE;gBACR,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,oBAAoB,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,EAAE,CAAC;aAC5E;SACF;KACF,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,OAAe;IACnC,OAAO;QACL,OAAO,EAAE,EAAE;QACX,OAAO,EAAE;YACP,QAAQ,EAAE;gBACR,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,oBAAoB,EAAE,OAAO,EAAE,CAAC;aAC5E;SACF;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,GAAG,QAAQ,CAAC;AAC5B,MAAM,OAAO,GAAG,cAAc,CAAC;AAC/B,MAAM,KAAK,GAAG,cAAc,CAAC;AAE7B,IAAI,WAA2C,CAAC;AAEhD,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC;IACnC,UAAU,EAAE,GAAG,EAAE,CAAC,WAAW;CAC9B,CAAC,CAAC,CAAC;AAEJ,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,UAAU,CAAC,GAAG,EAAE;IACd,EAAE,CAAC,aAAa,EAAE,CAAC;IACnB,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AACnE,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,WAAW,GAAG,WAAW,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC;YAC9B,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,KAAK;YACX,gBAAgB,EAAE,YAAY;YAC9B,SAAS,EAAE,UAAU;SACtB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,WAAW,GAAG,WAAW,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC;YAC9B,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,KAAK;YACX,gBAAgB,EAAE,YAAY;YAC9B,SAAS,EAAE,UAAU;SACtB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,WAAW,GAAG,WAAW,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,MAAM,UAAU,CAAC;YACf,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,KAAK;YACX,gBAAgB,EAAE,YAAY;YAC9B,SAAS,EAAE,UAAU;SACtB,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC;QAC7D,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,WAAW,GAAG,WAAW,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC;YAC9B,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,KAAK;YACX,gBAAgB,EAAE,YAAY;YAC9B,SAAS,EAAE,UAAU;SACtB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,WAAW,GAAG,WAAW,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC;YAC9B,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,KAAK;YACX,gBAAgB,EAAE,YAAY;YAC9B,SAAS,EAAE,UAAU;SACtB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC/C,EAAE,CAAC,kFAAkF,EAAE,KAAK,IAAI,EAAE;QAChG,WAAW,GAAG,WAAW,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC;YAC9B,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,KAAK;YACX,gBAAgB,EAAE,YAAY;YAC9B,SAAS,EAAE,UAAU;SACtB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;QACtE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gFAAgF,EAAE,KAAK,IAAI,EAAE;QAC9F,WAAW,GAAG,WAAW,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC;YAC9B,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,KAAK;YACX,gBAAgB,EAAE,YAAY;YAC9B,SAAS,EAAE,UAAU;SACtB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QACpE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;IACjD,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,WAAW,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;QAC9B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC;YAC9B,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,KAAK;YACX,gBAAgB,EAAE,WAAW;YAC7B,SAAS,EAAE,UAAU;SACtB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QACtE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;QACvF,WAAW,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;QAC9B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC;YAC9B,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,KAAK;YACX,gBAAgB,EAAE,cAAc;YAChC,SAAS,EAAE,UAAU;SACtB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QACzE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=memory-ingest-inline-rewrite.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-ingest-inline-rewrite.test.d.ts","sourceRoot":"","sources":["../../../src/tools/__tests__/memory-ingest-inline-rewrite.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Task 595 — inline compiled-truth reconciliation gate in memory-ingest.
3
+ *
4
+ * All assertions read source to avoid live-DB dependencies, matching the
5
+ * pattern established by the existing memory-ingest.test.ts suite.
6
+ */
7
+ import { describe, it, expect } from "vitest";
8
+ import { readFileSync } from "node:fs";
9
+ import { resolve } from "node:path";
10
+ const INGEST_PATH = resolve(import.meta.dirname, "../../tools/memory-ingest.ts");
11
+ function src() {
12
+ return readFileSync(INGEST_PATH, "utf-8");
13
+ }
14
+ describe("memory-ingest — inline compiled-truth gate (Task 595)", () => {
15
+ it("IngestParams declares inlineRewrite, forceRewrite, inlineRewriteThreshold", () => {
16
+ const s = src();
17
+ expect(s).toContain("inlineRewrite?: boolean");
18
+ expect(s).toContain("forceRewrite?: boolean");
19
+ expect(s).toContain("inlineRewriteThreshold?: number");
20
+ });
21
+ it("IngestResult declares inlineRewriteCandidates and inlineRewriteDeferred optional fields", () => {
22
+ const s = src();
23
+ expect(s).toMatch(/inlineRewriteCandidates\?:\s*InlineRewriteCandidate\[\]/);
24
+ expect(s).toMatch(/inlineRewriteDeferred\?:\s*InlineRewriteDeferred\[\]/);
25
+ });
26
+ it("imports InlineRewriteCandidate and InlineRewriteDeferred from compiled-truth-revision", () => {
27
+ const s = src();
28
+ expect(s).toContain("InlineRewriteCandidate");
29
+ expect(s).toContain("InlineRewriteDeferred");
30
+ expect(s).toMatch(/from ["']\.\.\/lib\/compiled-truth-revision\.js["']/);
31
+ });
32
+ it("queryInlineRewriteCandidates queries MENTIONS and REFERENCES edges via HAS_SECTION*0..1", () => {
33
+ const s = src();
34
+ expect(s).toContain("queryInlineRewriteCandidates");
35
+ expect(s).toContain("HAS_SECTION*0..1");
36
+ expect(s).toMatch(/MENTIONS\|REFERENCES/);
37
+ });
38
+ it("label extraction uses known primary-label allowlist for deterministic ordering", () => {
39
+ const s = src();
40
+ // Must not use NOT IN filter (non-deterministic ordering for multi-labeled nodes).
41
+ // Must use IN filter against a closed set of compiledTruth-bearing labels.
42
+ expect(s).toMatch(/l IN \[.*'Person'.*'Organization'.*'Concept'/);
43
+ expect(s).not.toContain("l NOT IN ['Trashed']");
44
+ });
45
+ it("gate only runs when inlineRewrite param is true", () => {
46
+ const s = src();
47
+ expect(s).toMatch(/if\s*\(\s*params\.inlineRewrite\s*\)/);
48
+ });
49
+ it("applies 7-day cooldown window and forceRewrite bypass", () => {
50
+ const s = src();
51
+ expect(s).toContain("7 * 24 * 60 * 60 * 1000");
52
+ expect(s).toMatch(/params\.forceRewrite/);
53
+ });
54
+ it("emits the observability log line with op=compiled-truth-inline", () => {
55
+ const s = src();
56
+ expect(s).toContain("op=compiled-truth-inline");
57
+ expect(s).toContain("entitiesChecked=");
58
+ expect(s).toContain("entitiesRecompiled=");
59
+ expect(s).toContain("entitiesDeferred=");
60
+ });
61
+ it("default threshold is 2 when inlineRewriteThreshold is not provided", () => {
62
+ const s = src();
63
+ expect(s).toContain("inlineRewriteThreshold ?? 2");
64
+ });
65
+ });
66
+ //# sourceMappingURL=memory-ingest-inline-rewrite.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-ingest-inline-rewrite.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/memory-ingest-inline-rewrite.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=memory-write-timeline-learned-at.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-write-timeline-learned-at.test.d.ts","sourceRoot":"","sources":["../../../src/tools/__tests__/memory-write-timeline-learned-at.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,30 @@
1
+ // Task 597 — memory-write stamps learnedAt on :TimelineEvent CREATE.
2
+ //
3
+ // Validates via source-content inspection (same pattern as
4
+ // memory-archive-write.test.ts and the registration gate tests): the Cypher
5
+ // query must contain `t.learnedAt = datetime()` inside the ON CREATE SET
6
+ // block, and it must appear within the same string as `HAS_TIMELINE_EVENT`.
7
+ import { describe, it, expect } from "vitest";
8
+ import { readFileSync } from "node:fs";
9
+ import { resolve } from "node:path";
10
+ const SRC = readFileSync(resolve(import.meta.dirname, "../memory-write.ts"), "utf-8");
11
+ describe("memory-write :TimelineEvent learnedAt stamp (Task 597)", () => {
12
+ it("sets t.learnedAt = datetime() in the HAS_TIMELINE_EVENT ON CREATE SET block", () => {
13
+ // Find the HAS_TIMELINE_EVENT query block in the source.
14
+ const idx = SRC.indexOf("HAS_TIMELINE_EVENT");
15
+ expect(idx).toBeGreaterThan(-1);
16
+ // Slice 600 chars from the MERGE line. The ON CREATE SET block is ~350 chars
17
+ // today; the 600-char window has ~250 chars of headroom for future additions.
18
+ // If the block grows past 600 chars this assertion will need to widen.
19
+ const window = SRC.slice(idx, idx + 600);
20
+ expect(window).toContain("t.learnedAt = datetime()");
21
+ });
22
+ it("does not set learnedAt on ON MATCH (only on CREATE)", () => {
23
+ const idx = SRC.indexOf("HAS_TIMELINE_EVENT");
24
+ const window = SRC.slice(idx, idx + 600);
25
+ // ON MATCH must not appear at all in this block — the node is immutable
26
+ // after creation; learnedAt is a write-once transaction-time stamp.
27
+ expect(window).not.toContain("ON MATCH SET");
28
+ });
29
+ });
30
+ //# sourceMappingURL=memory-write-timeline-learned-at.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-write-timeline-learned-at.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/memory-write-timeline-learned-at.test.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,EAAE;AACF,2DAA2D;AAC3D,4EAA4E;AAC5E,yEAAyE;AACzE,4EAA4E;AAE5E,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,GAAG,GAAG,YAAY,CACtB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,oBAAoB,CAAC,EAClD,OAAO,CACR,CAAC;AAEF,QAAQ,CAAC,wDAAwD,EAAE,GAAG,EAAE;IACtE,EAAE,CAAC,6EAA6E,EAAE,GAAG,EAAE;QACrF,yDAAyD;QACzD,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAC9C,MAAM,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhC,6EAA6E;QAC7E,8EAA8E;QAC9E,uEAAuE;QACvE,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;QAEzC,wEAAwE;QACxE,oEAAoE;QACpE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -46,6 +46,19 @@ export interface DeriveInsightsParams {
46
46
  claims: AgentClaim[];
47
47
  /** Optional override for the SDK-injected session id (provenance stamping). */
48
48
  sessionId?: string;
49
+ /**
50
+ * When true, count mention-claim subjects in this chunk and return those
51
+ * reaching `inlineRewriteThreshold` in `inlineRewriteSignals`. The calling
52
+ * skill accumulates signals across chunks; when an entity's cumulative count
53
+ * hits threshold, resolve it via `memory-search` and dispatch the
54
+ * `compiled-truth-rewriter` specialist.
55
+ */
56
+ inlineRewrite?: boolean;
57
+ /**
58
+ * Minimum mention-claim count for a subject to appear in
59
+ * `inlineRewriteSignals`. Default: 2.
60
+ */
61
+ inlineRewriteThreshold?: number;
49
62
  }
50
63
  export interface Proposal {
51
64
  /** elementId of the source conversation-document :Section chunk. */
@@ -84,6 +97,18 @@ export interface DeriveInsightsResult {
84
97
  rejectionsFiltered: number;
85
98
  /** Claims the agent emitted that did not survive normalisation (missing required fields). */
86
99
  invalidClaims: number;
100
+ /**
101
+ * Entities mentioned >= `inlineRewriteThreshold` times among this chunk's
102
+ * "mention" claims. Populated only when `inlineRewrite=true`. The calling
103
+ * skill accumulates across all chunks; when an entity's cumulative count
104
+ * reaches threshold, resolve it via `memory-search` and dispatch the
105
+ * `compiled-truth-rewriter` specialist. Uses display names only — no
106
+ * elementId resolution happens here.
107
+ */
108
+ inlineRewriteSignals?: {
109
+ displayName: string;
110
+ mentionCount: number;
111
+ }[];
87
112
  }
88
113
  export declare function conversationArchiveDeriveInsights(params: DeriveInsightsParams): Promise<DeriveInsightsResult>;
89
114
  //# sourceMappingURL=conversation-archive-derive-insights.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-archive-derive-insights.d.ts","sourceRoot":"","sources":["../../src/tools/conversation-archive-derive-insights.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AA0BH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAS7D;AAID,wBAAgB,YAAY,CAC1B,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,GAClB,MAAM,CAER;AAID,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAwC7D;AAQD,eAAO,MAAM,cAAc,qEAKjB,CAAC;AACX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAM3D,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,YAAY,CAAC;IACnB,yFAAyF;IACzF,eAAe,EAAE,MAAM,CAAC;IACxB,wFAAwF;IACxF,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,gBAAgB,EAAE,MAAM,CAAC;IACzB,kEAAkE;IAClE,cAAc,EAAE,MAAM,CAAC;IACvB,4EAA4E;IAC5E,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,oEAAoE;IACpE,cAAc,EAAE,MAAM,CAAC;IACvB,uCAAuC;IACvC,IAAI,EAAE,YAAY,CAAC;IACnB,6EAA6E;IAC7E,WAAW,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,eAAe,EAAE,MAAM,CAAC;IACxB,qEAAqE;IACrE,cAAc,EAAE,MAAM,CAAC;IACvB,0FAA0F;IAC1F,WAAW,EAAE,MAAM,CAAC;IACpB,0FAA0F;IAC1F,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC;;;;OAIG;IACH,cAAc,EAAE;QACd,eAAe,EAAE,KAAK,CAAC;YACrB,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC;YAC3B,WAAW,EAAE,MAAM,CAAC;YACpB,cAAc,EAAE,KAAK,CAAC,QAAQ,GAAG,cAAc,CAAC,CAAC;SAClD,CAAC,CAAC;KACJ,GAAG,IAAI,CAAC;CACV;AAED,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,uDAAuD;IACvD,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,oFAAoF;IACpF,kBAAkB,EAAE,MAAM,CAAC;IAC3B,6FAA6F;IAC7F,aAAa,EAAE,MAAM,CAAC;CACvB;AA6QD,wBAAsB,iCAAiC,CACrD,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,oBAAoB,CAAC,CAU/B"}
1
+ {"version":3,"file":"conversation-archive-derive-insights.d.ts","sourceRoot":"","sources":["../../src/tools/conversation-archive-derive-insights.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AA0BH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAS7D;AAID,wBAAgB,YAAY,CAC1B,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,GAClB,MAAM,CAER;AAID,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAwC7D;AAQD,eAAO,MAAM,cAAc,qEAKjB,CAAC;AACX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAM3D,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,YAAY,CAAC;IACnB,yFAAyF;IACzF,eAAe,EAAE,MAAM,CAAC;IACxB,wFAAwF;IACxF,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,gBAAgB,EAAE,MAAM,CAAC;IACzB,kEAAkE;IAClE,cAAc,EAAE,MAAM,CAAC;IACvB,4EAA4E;IAC5E,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,QAAQ;IACvB,oEAAoE;IACpE,cAAc,EAAE,MAAM,CAAC;IACvB,uCAAuC;IACvC,IAAI,EAAE,YAAY,CAAC;IACnB,6EAA6E;IAC7E,WAAW,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,eAAe,EAAE,MAAM,CAAC;IACxB,qEAAqE;IACrE,cAAc,EAAE,MAAM,CAAC;IACvB,0FAA0F;IAC1F,WAAW,EAAE,MAAM,CAAC;IACpB,0FAA0F;IAC1F,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC;;;;OAIG;IACH,cAAc,EAAE;QACd,eAAe,EAAE,KAAK,CAAC;YACrB,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC;YAC3B,WAAW,EAAE,MAAM,CAAC;YACpB,cAAc,EAAE,KAAK,CAAC,QAAQ,GAAG,cAAc,CAAC,CAAC;SAClD,CAAC,CAAC;KACJ,GAAG,IAAI,CAAC;CACV;AAED,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,uDAAuD;IACvD,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,oFAAoF;IACpF,kBAAkB,EAAE,MAAM,CAAC;IAC3B,6FAA6F;IAC7F,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;;;OAOG;IACH,oBAAoB,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACxE;AA6QD,wBAAsB,iCAAiC,CACrD,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,oBAAoB,CAAC,CAU/B"}
@@ -343,6 +343,10 @@ async function conversationArchiveDeriveInsightsImpl(params) {
343
343
  process.stderr.write(`[conversation-archive-derive-insights] start accountId=${accountId} archiveElementId=${archiveElementId} chunkElementId=${chunkElementId} claims=${claims.length}\n`);
344
344
  const rejections = loadRejections(accountId);
345
345
  const proposals = [];
346
+ // All valid (normalised + buildable) proposals, including rejected ones.
347
+ // Used for inline-rewrite signal counting so the density signal is not
348
+ // deflated by the operator's rejection history on specific evidence snippets.
349
+ const validProposals = [];
346
350
  let rejectionsFiltered = 0;
347
351
  let invalidClaims = 0;
348
352
  for (const rawClaim of claims) {
@@ -356,12 +360,33 @@ async function conversationArchiveDeriveInsightsImpl(params) {
356
360
  invalidClaims += 1;
357
361
  continue;
358
362
  }
363
+ validProposals.push(proposal);
359
364
  if (rejections.has(rejectionKey(proposal.chunkElementId, proposal.kind, proposal.contentHash))) {
360
365
  rejectionsFiltered += 1;
361
366
  continue;
362
367
  }
363
368
  proposals.push(proposal);
364
369
  }
370
+ // Inline compiled-truth reconciliation signals (opt-in — Task 595).
371
+ // Count mention-claim subjects across ALL valid claims (including
372
+ // operator-rejected ones) so the density signal is not deflated by
373
+ // rejections of specific evidence snippets. A rejection of an evidence
374
+ // snippet does not mean the entity should be excluded from rewrite signals.
375
+ let inlineRewriteSignals;
376
+ if (params.inlineRewrite) {
377
+ const threshold = params.inlineRewriteThreshold ?? 2;
378
+ const counts = {};
379
+ for (const p of validProposals) {
380
+ if (p.kind === "mention" && p.disambiguation) {
381
+ const displayName = p.disambiguation.needsResolution[0]?.displayName ?? "";
382
+ if (displayName)
383
+ counts[displayName] = (counts[displayName] ?? 0) + 1;
384
+ }
385
+ }
386
+ inlineRewriteSignals = Object.entries(counts)
387
+ .filter(([, count]) => count >= threshold)
388
+ .map(([displayName, mentionCount]) => ({ displayName, mentionCount }));
389
+ }
365
390
  process.stderr.write(`[conversation-archive-derive-insights] done accountId=${accountId} archiveElementId=${archiveElementId} chunkElementId=${chunkElementId} proposals=${proposals.length} rejections-filtered=${rejectionsFiltered} invalidClaims=${invalidClaims} ms=${Date.now() - start}\n`);
366
391
  return {
367
392
  archiveElementId,
@@ -369,6 +394,7 @@ async function conversationArchiveDeriveInsightsImpl(params) {
369
394
  proposals,
370
395
  rejectionsFiltered,
371
396
  invalidClaims,
397
+ ...(inlineRewriteSignals !== undefined ? { inlineRewriteSignals } : {}),
372
398
  };
373
399
  }
374
400
  //# sourceMappingURL=conversation-archive-derive-insights.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-archive-derive-insights.js","sourceRoot":"","sources":["../../src/tools/conversation-archive-derive-insights.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversation-archive-derive-insights.js","sourceRoot":"","sources":["../../src/tools/conversation-archive-derive-insights.ts"],"names":[],"mappings":"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"}