@rubytech/create-maxy-code 0.1.144 → 0.1.147
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.
- package/package.json +1 -1
- package/payload/platform/neo4j/schema.cypher +154 -4
- package/payload/platform/plugins/admin/PLUGIN.md +1 -1
- package/payload/platform/plugins/admin/hooks/post-turn-graph-pass.sh +251 -0
- package/payload/platform/plugins/admin/skills/datetime/SKILL.md +63 -5
- package/payload/platform/plugins/docs/references/internals.md +16 -0
- package/payload/platform/plugins/docs/references/memory-guide.md +10 -0
- package/payload/platform/plugins/docs/references/platform.md +1 -1
- package/payload/platform/plugins/memory/.claude-plugin/plugin.json +1 -1
- package/payload/platform/plugins/memory/PLUGIN.md +25 -3
- package/payload/platform/plugins/memory/mcp/dist/index.js +309 -11
- package/payload/platform/plugins/memory/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/compiled-truth-revision.test.d.ts +2 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/compiled-truth-revision.test.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/compiled-truth-revision.test.js +33 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/compiled-truth-revision.test.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/graph-write-gate-label.test.d.ts +2 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/graph-write-gate-label.test.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/graph-write-gate-label.test.js +30 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/graph-write-gate-label.test.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/phase-prune-revisions.test.d.ts +2 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/phase-prune-revisions.test.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/phase-prune-revisions.test.js +51 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/phase-prune-revisions.test.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/relative-date.test.d.ts +2 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/relative-date.test.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/relative-date.test.js +68 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/relative-date.test.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/timeline-extractor.test.js +41 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/timeline-extractor.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-revision.d.ts +43 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-revision.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-revision.js +33 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-revision.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-rewriter.d.ts +18 -5
- package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-rewriter.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-rewriter.js +64 -17
- package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-rewriter.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/index.d.ts +44 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/index.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/index.js +14 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/index.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-citation-audit.d.ts +26 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-citation-audit.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-citation-audit.js +219 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-citation-audit.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-dead-edges.d.ts +19 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-dead-edges.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-dead-edges.js +39 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-dead-edges.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-orphans.d.ts +19 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-orphans.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-orphans.js +42 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-orphans.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-prune-revisions.d.ts +21 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-prune-revisions.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-prune-revisions.js +27 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-prune-revisions.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-stale-truth.d.ts +18 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-stale-truth.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-stale-truth.js +60 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-stale-truth.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/graph-write-gate.d.ts +20 -3
- package/payload/platform/plugins/memory/mcp/dist/lib/graph-write-gate.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/graph-write-gate.js +47 -12
- package/payload/platform/plugins/memory/mcp/dist/lib/graph-write-gate.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/relative-date.d.ts +13 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/relative-date.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/relative-date.js +191 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/relative-date.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/timeline-extractor.d.ts +7 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/timeline-extractor.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/timeline-extractor.js +37 -9
- package/payload/platform/plugins/memory/mcp/dist/lib/timeline-extractor.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-compiled-truth-history.test.d.ts +2 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-compiled-truth-history.test.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-compiled-truth-history.test.js +81 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-compiled-truth-history.test.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-report-tools.test.d.ts +2 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-report-tools.test.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-report-tools.test.js +115 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-report-tools.test.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-emit.test.js +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-emit.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-emit.test.js +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-emit.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-compiled-truth-history.d.ts +19 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-compiled-truth-history.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-compiled-truth-history.js +50 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-compiled-truth-history.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-dream-run.d.ts +45 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-dream-run.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-dream-run.js +170 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-dream-run.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-report-list.d.ts +28 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-report-list.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-report-list.js +64 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-report-list.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-report-read-latest.d.ts +24 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-report-read-latest.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-report-read-latest.js +49 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-report-read-latest.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-report-write.d.ts +34 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-report-write.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-report-write.js +99 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-report-write.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-review-queue.d.ts +29 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-review-queue.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-review-queue.js +66 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-review-queue.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-search.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-search.js +122 -2
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-search.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-update.d.ts +49 -13
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-update.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-update.js +184 -16
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-update.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.js +53 -10
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/vitest.config.ts +6 -0
- package/payload/platform/plugins/memory/references/schema-base.md +4 -0
- package/payload/platform/plugins/memory/skills/conversation-archive/SKILL.md +3 -4
- package/payload/platform/plugins/scheduling/skills/briefing/SKILL.md +13 -2
- package/payload/platform/scripts/seed-neo4j.sh +1 -1
- package/payload/platform/templates/agents/admin/IDENTITY.md +9 -1
- package/payload/platform/templates/specialists/agents/database-operator.md +30 -2
- package/payload/server/server.js +195 -91
- package/payload/platform/plugins/admin/hooks/signal-detector-stop.sh +0 -309
- package/payload/platform/templates/specialists/agents/signal-detector.md +0 -129
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relative-date.test.js","sourceRoot":"","sources":["../../../src/lib/__tests__/relative-date.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -66,5 +66,46 @@ describe("extractDatedStatements", () => {
|
|
|
66
66
|
const out = extractDatedStatements("Off-record on 2026-13-01.");
|
|
67
67
|
expect(out).toEqual([]);
|
|
68
68
|
});
|
|
69
|
+
// Task 390 — relative + quarter forms via parseRelativeDate.
|
|
70
|
+
describe("relative + quarter forms", () => {
|
|
71
|
+
const REF = new Date("2026-05-20T14:30:00Z"); // Wednesday.
|
|
72
|
+
it("parses 'last Tuesday' against reference", () => {
|
|
73
|
+
const out = extractDatedStatements("Met them last Tuesday.", REF);
|
|
74
|
+
expect(out).toHaveLength(1);
|
|
75
|
+
expect(out[0].occurredAt).toBe("2026-05-19T00:00:00Z");
|
|
76
|
+
expect(out[0].form).toBe("relative");
|
|
77
|
+
});
|
|
78
|
+
it("parses 'two weeks ago' against reference", () => {
|
|
79
|
+
const out = extractDatedStatements("Closed the deal two weeks ago.", REF);
|
|
80
|
+
expect(out[0].occurredAt).toBe("2026-05-06T00:00:00Z");
|
|
81
|
+
expect(out[0].form).toBe("relative");
|
|
82
|
+
});
|
|
83
|
+
it("parses fiscal quarter Q3 2024", () => {
|
|
84
|
+
const out = extractDatedStatements("Revenue dipped in Q3 2024.", REF);
|
|
85
|
+
expect(out[0].occurredAt).toBe("2024-07-01T00:00:00Z");
|
|
86
|
+
expect(out[0].form).toBe("quarter");
|
|
87
|
+
});
|
|
88
|
+
it("parses 'Q1 last year' against reference year", () => {
|
|
89
|
+
const out = extractDatedStatements("Hired the team in Q1 last year.", REF);
|
|
90
|
+
expect(out[0].occurredAt).toBe("2025-01-01T00:00:00Z");
|
|
91
|
+
expect(out[0].form).toBe("quarter");
|
|
92
|
+
});
|
|
93
|
+
it("returns no row for recurring forms", () => {
|
|
94
|
+
const out = extractDatedStatements("We sync every other Friday.", REF);
|
|
95
|
+
expect(out).toEqual([]);
|
|
96
|
+
});
|
|
97
|
+
it("literal forms still take priority over relative", () => {
|
|
98
|
+
const out = extractDatedStatements("On 2026-03-10 we met last Tuesday.", REF);
|
|
99
|
+
expect(out[0].form).toBe("iso");
|
|
100
|
+
expect(out[0].occurredAt).toBe("2026-03-10T00:00:00Z");
|
|
101
|
+
});
|
|
102
|
+
it("defaults reference to now when omitted", () => {
|
|
103
|
+
const out = extractDatedStatements("Met them yesterday.");
|
|
104
|
+
// Just assert that we got a row and the day is recent — exact value
|
|
105
|
+
// depends on the test-run clock.
|
|
106
|
+
expect(out).toHaveLength(1);
|
|
107
|
+
expect(out[0].form).toBe("relative");
|
|
108
|
+
});
|
|
109
|
+
});
|
|
69
110
|
});
|
|
70
111
|
//# sourceMappingURL=timeline-extractor.test.js.map
|
package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/timeline-extractor.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeline-extractor.test.js","sourceRoot":"","sources":["../../../src/lib/__tests__/timeline-extractor.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACjD,MAAM,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACtD,MAAM,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,sBAAsB,CAAC,iCAAiC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,GAAG,GAAG,sBAAsB,CAAC,4BAA4B,CAAC,CAAC;QACjE,MAAM,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACvD,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC1D,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,IAAI,GAAG,sBAAsB,CAAC,sCAAsC,CAAC,CAAC;QAC5E,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,sBAAsB,CAAC,oCAAoC,CAAC,CAAC;QAC3E,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,GAAG,GAAG,sBAAsB,CAAC,mCAAmC,CAAC,CAAC;QACxE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,CAAC,sBAAsB,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACvG,MAAM,CAAC,sBAAsB,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAC3G,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,GAAG,GAAG,sBAAsB,CAAC,qBAAqB,CAAC,CAAC;QAC1D,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,CAAC,sBAAsB,CAAC,yBAAyB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACtE,MAAM,CAAC,sBAAsB,CAAC,kCAAkC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,sBAAsB,CAAC,4BAA4B,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACzE,MAAM,CAAC,sBAAsB,CAAC,4BAA4B,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,GAAG,GAAG,sBAAsB,CAChC,yEAAyE,CAC1E,CAAC;QACF,MAAM,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACvD,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC1E,MAAM,YAAY,GAAG,gBAAgB,GAAG,8BAA8B,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAClF,MAAM,GAAG,GAAG,sBAAsB,CAAC,YAAY,CAAC,CAAC;QACjD,MAAM,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,GAAG,GAAG,sBAAsB,CAAC,sCAAsC,CAAC,CAAC;QAC3E,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,oEAAoE;QACpE,oEAAoE;QACpE,gEAAgE;QAChE,mCAAmC;QACnC,MAAM,GAAG,GAAG,sBAAsB,CAAC,2BAA2B,CAAC,CAAC;QAChE,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"timeline-extractor.test.js","sourceRoot":"","sources":["../../../src/lib/__tests__/timeline-extractor.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task 391 — compiled-truth revision history.
|
|
3
|
+
*
|
|
4
|
+
* Single shared primitive that writes a new `:CompiledTruthRevision`
|
|
5
|
+
* row and the `:HAS_REVISION` edge in the same transaction as the
|
|
6
|
+
* caller's `compiledTruth` SET. Callers compose this Cypher block
|
|
7
|
+
* into their own write statement so the SET and the revision MERGE
|
|
8
|
+
* commit atomically — if either fails, neither lands.
|
|
9
|
+
*
|
|
10
|
+
* Two source values are sanctioned: 'rewriter' (rewriter library
|
|
11
|
+
* wrote it) and 'operator' (sanctioned operator-edit route — not yet
|
|
12
|
+
* implemented; see follow-up Task 393).
|
|
13
|
+
*
|
|
14
|
+
* Pruning is the dream-cycle's job (phase 5). This file never
|
|
15
|
+
* deletes.
|
|
16
|
+
*/
|
|
17
|
+
import type { Session } from "neo4j-driver";
|
|
18
|
+
export type CompiledTruthRevisionSource = "rewriter" | "operator";
|
|
19
|
+
/**
|
|
20
|
+
* Cypher fragment that creates one `:CompiledTruthRevision` row and
|
|
21
|
+
* links it from the entity bound as `n` in the caller's MATCH. The
|
|
22
|
+
* caller is responsible for binding `n` (the entity) and providing
|
|
23
|
+
* `$accountId`, `$truth`, and `$source` parameters.
|
|
24
|
+
*
|
|
25
|
+
* Designed to be concatenated after a `compiledTruth` SET so both
|
|
26
|
+
* mutations sit in the same `session.run` call (single TX).
|
|
27
|
+
*/
|
|
28
|
+
export declare const REVISION_CYPHER_FRAGMENT = "\nWITH n\nCREATE (r:CompiledTruthRevision {\n revisionId: randomUUID(),\n accountId: $accountId,\n truth: $truth,\n writtenAt: datetime(),\n source: $source\n})\nCREATE (n)-[:HAS_REVISION]->(r)\n";
|
|
29
|
+
/**
|
|
30
|
+
* Convenience runner for tests and ad-hoc callers that want to write
|
|
31
|
+
* a revision in isolation (no concurrent `compiledTruth` SET).
|
|
32
|
+
* Production writers compose `REVISION_CYPHER_FRAGMENT` into their
|
|
33
|
+
* own statement; this helper exists so test code does not have to
|
|
34
|
+
* duplicate the fragment.
|
|
35
|
+
*/
|
|
36
|
+
export declare function writeRevisionStandalone(args: {
|
|
37
|
+
session: Session;
|
|
38
|
+
nodeId: string;
|
|
39
|
+
accountId: string;
|
|
40
|
+
truth: string;
|
|
41
|
+
source: CompiledTruthRevisionSource;
|
|
42
|
+
}): Promise<void>;
|
|
43
|
+
//# sourceMappingURL=compiled-truth-revision.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compiled-truth-revision.d.ts","sourceRoot":"","sources":["../../src/lib/compiled-truth-revision.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,MAAM,2BAA2B,GAAG,UAAU,GAAG,UAAU,CAAC;AAElE;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,6MAUpC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,EAAE;IAClD,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,2BAA2B,CAAC;CACrC,GAAG,OAAO,CAAC,IAAI,CAAC,CAOhB"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cypher fragment that creates one `:CompiledTruthRevision` row and
|
|
3
|
+
* links it from the entity bound as `n` in the caller's MATCH. The
|
|
4
|
+
* caller is responsible for binding `n` (the entity) and providing
|
|
5
|
+
* `$accountId`, `$truth`, and `$source` parameters.
|
|
6
|
+
*
|
|
7
|
+
* Designed to be concatenated after a `compiledTruth` SET so both
|
|
8
|
+
* mutations sit in the same `session.run` call (single TX).
|
|
9
|
+
*/
|
|
10
|
+
export const REVISION_CYPHER_FRAGMENT = `
|
|
11
|
+
WITH n
|
|
12
|
+
CREATE (r:CompiledTruthRevision {
|
|
13
|
+
revisionId: randomUUID(),
|
|
14
|
+
accountId: $accountId,
|
|
15
|
+
truth: $truth,
|
|
16
|
+
writtenAt: datetime(),
|
|
17
|
+
source: $source
|
|
18
|
+
})
|
|
19
|
+
CREATE (n)-[:HAS_REVISION]->(r)
|
|
20
|
+
`;
|
|
21
|
+
/**
|
|
22
|
+
* Convenience runner for tests and ad-hoc callers that want to write
|
|
23
|
+
* a revision in isolation (no concurrent `compiledTruth` SET).
|
|
24
|
+
* Production writers compose `REVISION_CYPHER_FRAGMENT` into their
|
|
25
|
+
* own statement; this helper exists so test code does not have to
|
|
26
|
+
* duplicate the fragment.
|
|
27
|
+
*/
|
|
28
|
+
export async function writeRevisionStandalone(args) {
|
|
29
|
+
const { session, nodeId, accountId, truth, source } = args;
|
|
30
|
+
await session.run(`MATCH (n) WHERE elementId(n) = $nodeId AND n.accountId = $accountId
|
|
31
|
+
${REVISION_CYPHER_FRAGMENT}`, { nodeId, accountId, truth, source });
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=compiled-truth-revision.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compiled-truth-revision.js","sourceRoot":"","sources":["../../src/lib/compiled-truth-revision.ts"],"names":[],"mappings":"AAoBA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;;;;;;;;;;CAUvC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,IAM7C;IACC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC3D,MAAM,OAAO,CAAC,GAAG,CACf;OACG,wBAAwB,EAAE,EAC7B,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,CACrC,CAAC;AACJ,CAAC"}
|
|
@@ -4,18 +4,30 @@ export interface TimelineEventForRewriter {
|
|
|
4
4
|
kind: string;
|
|
5
5
|
summary: string;
|
|
6
6
|
}
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
/** Admin-twin label set (Task 392). All five carry `compiledTruth`. */
|
|
8
|
+
export type AdminTwinLabel = "Person" | "Organization" | "Concept" | "Project" | "LocalBusiness";
|
|
9
|
+
/** Public-twin label set (Task 392). Four labels carry `compiledTruthPublic`; :Person is excluded by design. */
|
|
10
|
+
export type PublicTwinLabel = "Organization" | "Concept" | "Project" | "LocalBusiness";
|
|
11
|
+
export type RewriteMode = "admin" | "public";
|
|
12
|
+
interface BaseRewriteParams {
|
|
13
|
+
/** Display name of the subject (Person.name, Organization.name, etc.). */
|
|
9
14
|
subjectName: string;
|
|
10
|
-
/**
|
|
11
|
-
subjectLabel: "Person" | "Organization" | "Concept";
|
|
12
|
-
/** Current compiledTruth — empty string is fine. */
|
|
15
|
+
/** Current compiled-truth field — empty string is fine. */
|
|
13
16
|
currentTruth: string;
|
|
14
17
|
/** Most recent N :TimelineEvent rows, newest-first. */
|
|
15
18
|
events: TimelineEventForRewriter[];
|
|
16
19
|
/** Override the model. Default: claude-haiku-4-5. */
|
|
17
20
|
model?: string;
|
|
18
21
|
}
|
|
22
|
+
interface AdminRewriteParams extends BaseRewriteParams {
|
|
23
|
+
mode?: "admin";
|
|
24
|
+
subjectLabel: AdminTwinLabel;
|
|
25
|
+
}
|
|
26
|
+
interface PublicRewriteParams extends BaseRewriteParams {
|
|
27
|
+
mode: "public";
|
|
28
|
+
subjectLabel: PublicTwinLabel;
|
|
29
|
+
}
|
|
30
|
+
export type RewriteParams = AdminRewriteParams | PublicRewriteParams;
|
|
19
31
|
export type RewriteResult = {
|
|
20
32
|
kind: "ok";
|
|
21
33
|
compiledTruth: string;
|
|
@@ -30,4 +42,5 @@ export type RewriteResult = {
|
|
|
30
42
|
fallback: CallOauthLlmFallback;
|
|
31
43
|
};
|
|
32
44
|
export declare function rewriteCompiledTruth(p: RewriteParams): Promise<RewriteResult>;
|
|
45
|
+
export {};
|
|
33
46
|
//# sourceMappingURL=compiled-truth-rewriter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiled-truth-rewriter.d.ts","sourceRoot":"","sources":["../../src/lib/compiled-truth-rewriter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compiled-truth-rewriter.d.ts","sourceRoot":"","sources":["../../src/lib/compiled-truth-rewriter.ts"],"names":[],"mappings":"AAsCA,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,4CAA4C,CAAC;AAGpD,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,uEAAuE;AACvE,MAAM,MAAM,cAAc,GACtB,QAAQ,GACR,cAAc,GACd,SAAS,GACT,SAAS,GACT,eAAe,CAAC;AAEpB,gHAAgH;AAChH,MAAM,MAAM,eAAe,GACvB,cAAc,GACd,SAAS,GACT,SAAS,GACT,eAAe,CAAC;AAEpB,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE7C,UAAU,iBAAiB;IACzB,0EAA0E;IAC1E,WAAW,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,YAAY,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,MAAM,EAAE,wBAAwB,EAAE,CAAC;IACnC,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,kBAAmB,SAAQ,iBAAiB;IACpD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,cAAc,CAAC;CAC9B;AAED,UAAU,mBAAoB,SAAQ,iBAAiB;IACrD,IAAI,EAAE,QAAQ,CAAC;IACf,YAAY,EAAE,eAAe,CAAC;CAC/B;AAED,MAAM,MAAM,aAAa,GAAG,kBAAkB,GAAG,mBAAmB,CAAC;AAErE,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,EAAE,oBAAoB,CAAA;CAAE,CAAC;AAqE5D,wBAAsB,oBAAoB,CAAC,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CA2DnF"}
|
|
@@ -1,25 +1,44 @@
|
|
|
1
|
-
// Compiled-truth rewriter (Task 306).
|
|
1
|
+
// Compiled-truth rewriter (Task 306, extended Task 392 with public mode).
|
|
2
2
|
//
|
|
3
|
-
// Given a node's current
|
|
4
|
-
// rows, produce a new
|
|
5
|
-
// (admin classifier doctrine — never API key). The
|
|
6
|
-
// caller is responsible for: (a) selecting which node to rewrite,
|
|
7
|
-
// enforcing the 7-day operator-edit cooldown
|
|
8
|
-
//
|
|
3
|
+
// Given a node's current compiled-truth field and its most-recent N
|
|
4
|
+
// :TimelineEvent rows, produce a new summary ≤ 2000 chars. Strictly
|
|
5
|
+
// OAuth-bearer LLM (admin classifier doctrine — never API key). The
|
|
6
|
+
// caller is responsible for: (a) selecting which node to rewrite,
|
|
7
|
+
// (b) enforcing the 7-day operator-edit cooldown (per mode — the admin
|
|
8
|
+
// and public cooldowns are independent timestamps), (c) writing the
|
|
9
|
+
// result back to the correct field (`compiledTruth` for admin mode,
|
|
10
|
+
// `compiledTruthPublic` for public mode). This library is the prompt +
|
|
11
|
+
// LLM call + cap-enforcement only.
|
|
9
12
|
//
|
|
10
|
-
//
|
|
13
|
+
// Mode semantics (Task 392):
|
|
14
|
+
// - `mode: 'admin'` (default) — operator's view. Subject label may be
|
|
15
|
+
// any of the five admin-twin labels (Person, Organization, Concept,
|
|
16
|
+
// Project, LocalBusiness). Writer writes `compiledTruth`.
|
|
17
|
+
// - `mode: 'public'` — customer-facing twin. Subject label restricted
|
|
18
|
+
// to the four public-twin labels (Organization, Concept, Project,
|
|
19
|
+
// LocalBusiness) by the type system; :Person is structurally
|
|
20
|
+
// excluded because operators' notes on contacts are never public.
|
|
21
|
+
// Writer writes `compiledTruthPublic`.
|
|
22
|
+
//
|
|
23
|
+
// Output style baseline (both modes):
|
|
11
24
|
// - ≤ COMPILED_TRUTH_MAX_CHARS
|
|
12
25
|
// - Neutral, declarative voice. Third person.
|
|
13
26
|
// - No hedging adverbs ("likely", "perhaps", "possibly", "presumably").
|
|
14
27
|
// - No first person ("I", "we"), no second person ("you").
|
|
15
28
|
// - No marketing / superlatives.
|
|
16
29
|
//
|
|
30
|
+
// Public-mode additional rules (forbidden patterns the admin mode tolerates):
|
|
31
|
+
// - No operator-voice constructions ("needs follow-up", "should chase up",
|
|
32
|
+
// "to discuss", "TBD", "action: ...", "next step: ...").
|
|
33
|
+
// - No commentary on the operator's relationship with the subject.
|
|
34
|
+
// - No internal status, sentiment, or assessment of the subject.
|
|
35
|
+
//
|
|
17
36
|
// Voice grafting (no AI tells, IDENTITY alignment, BrainBench eval) is
|
|
18
37
|
// deferred — see follow-up task referenced in the task brief.
|
|
19
38
|
import { callOauthLlm, } from "../../../../../lib/oauth-llm/dist/index.js";
|
|
20
39
|
import { COMPILED_TRUTH_MAX_CHARS } from "./graph-write-gate.js";
|
|
21
40
|
const DEFAULT_MODEL = "claude-haiku-4-5";
|
|
22
|
-
const
|
|
41
|
+
const ADMIN_SYSTEM_PROMPT = [
|
|
23
42
|
"You are the compiled-truth rewriter for a personal knowledge graph.",
|
|
24
43
|
"",
|
|
25
44
|
"Your job: produce a neutral, declarative summary of what the operator knows about a subject right now.",
|
|
@@ -34,12 +53,38 @@ const SYSTEM_PROMPT = [
|
|
|
34
53
|
"- Do not invent details that are not present in either the existing truth or the timeline.",
|
|
35
54
|
"- Do not add a preamble (no 'Here is the summary:'). Output the summary directly.",
|
|
36
55
|
].join("\n");
|
|
56
|
+
const PUBLIC_SYSTEM_PROMPT = [
|
|
57
|
+
"You are the public-facing compiled-truth rewriter for a knowledge graph.",
|
|
58
|
+
"",
|
|
59
|
+
"Your job: produce a neutral, customer-facing summary of a subject. The output is",
|
|
60
|
+
"read by people outside the operator's organisation — customers, prospects, public visitors.",
|
|
61
|
+
"",
|
|
62
|
+
"RULES (all binding, never relaxed):",
|
|
63
|
+
`- Output must be ${COMPILED_TRUTH_MAX_CHARS} characters or fewer. This is a hard cap.`,
|
|
64
|
+
"- Third person only. No 'I', 'we', 'you', 'us'.",
|
|
65
|
+
"- Declarative voice. No hedging adverbs (likely, perhaps, possibly, presumably, apparently, seemingly).",
|
|
66
|
+
"- No marketing copy, no superlatives, no promotional language.",
|
|
67
|
+
"- No operator-voice constructions. Forbidden phrasings include: 'needs follow-up', 'to chase',",
|
|
68
|
+
" 'to discuss', 'TBD', 'action:', 'next step:', 'awaiting reply', 'pending response'.",
|
|
69
|
+
"- No commentary on the operator's relationship with the subject (e.g. 'main client', 'difficult contact').",
|
|
70
|
+
"- No internal status, sentiment, or assessment ('promising', 'risky', 'aggressive', 'cooperative').",
|
|
71
|
+
"- Restate only externally-verifiable facts from the timeline (what the subject is, what they do,",
|
|
72
|
+
" what they have publicly done or said). Drop scheduling notes, internal sentiment, and operator intent.",
|
|
73
|
+
"- 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.",
|
|
75
|
+
"- Do not add a preamble (no 'Here is the summary:'). Output the summary directly.",
|
|
76
|
+
].join("\n");
|
|
77
|
+
function systemPromptFor(mode) {
|
|
78
|
+
return mode === "public" ? PUBLIC_SYSTEM_PROMPT : ADMIN_SYSTEM_PROMPT;
|
|
79
|
+
}
|
|
37
80
|
function buildUserMessage(p) {
|
|
81
|
+
const mode = p.mode ?? "admin";
|
|
82
|
+
const fieldName = mode === "public" ? "compiledTruthPublic" : "compiledTruth";
|
|
38
83
|
const lines = [];
|
|
39
84
|
lines.push(`Subject: ${p.subjectName}`);
|
|
40
85
|
lines.push(`Label: :${p.subjectLabel}`);
|
|
41
86
|
lines.push("");
|
|
42
|
-
lines.push(
|
|
87
|
+
lines.push(`Current ${fieldName}:`);
|
|
43
88
|
lines.push(p.currentTruth ? p.currentTruth : "(empty)");
|
|
44
89
|
lines.push("");
|
|
45
90
|
lines.push(`Timeline events (newest-first, ${p.events.length} shown):`);
|
|
@@ -47,38 +92,40 @@ function buildUserMessage(p) {
|
|
|
47
92
|
lines.push(`- [${e.occurredAt}] kind=${e.kind}: ${e.summary}`);
|
|
48
93
|
}
|
|
49
94
|
lines.push("");
|
|
50
|
-
lines.push(
|
|
95
|
+
lines.push(`Rewrite the ${fieldName}.`);
|
|
51
96
|
return lines.join("\n");
|
|
52
97
|
}
|
|
53
98
|
function isOkText(r) {
|
|
54
99
|
return r.kind === "ok";
|
|
55
100
|
}
|
|
56
101
|
export async function rewriteCompiledTruth(p) {
|
|
102
|
+
const mode = p.mode ?? "admin";
|
|
57
103
|
if (p.events.length === 0) {
|
|
58
|
-
console.log(`[compiled-truth-rewriter] refused subject="${p.subjectName}" reason=no-events`);
|
|
104
|
+
console.log(`[compiled-truth-rewriter] refused mode=${mode} subject="${p.subjectName}" reason=no-events`);
|
|
59
105
|
return { kind: "refused", reason: "no-events" };
|
|
60
106
|
}
|
|
107
|
+
const systemPrompt = systemPromptFor(mode);
|
|
61
108
|
const userMessage = buildUserMessage(p);
|
|
62
109
|
const result = await callOauthLlm({
|
|
63
110
|
model: p.model ?? DEFAULT_MODEL,
|
|
64
|
-
system:
|
|
111
|
+
system: systemPrompt,
|
|
65
112
|
userMessage,
|
|
66
113
|
maxTokens: 1024,
|
|
67
114
|
});
|
|
68
115
|
if (!isOkText(result)) {
|
|
69
|
-
console.log(`[compiled-truth-rewriter] llm-failure subject="${p.subjectName}" cause=${result.cause}`);
|
|
116
|
+
console.log(`[compiled-truth-rewriter] llm-failure mode=${mode} subject="${p.subjectName}" cause=${result.cause}`);
|
|
70
117
|
return { kind: "llm-failure", fallback: result };
|
|
71
118
|
}
|
|
72
119
|
const truth = result.text.trim();
|
|
73
120
|
const before = p.currentTruth.length;
|
|
74
121
|
const after = truth.length;
|
|
75
|
-
console.log(`[compiled-truth-rewriter] subject="${p.subjectName}" charsBefore=${before} charsAfter=${after} events=${p.events.length}`);
|
|
122
|
+
console.log(`[compiled-truth-rewriter] mode=${mode} subject="${p.subjectName}" subjectLabel=${p.subjectLabel} charsBefore=${before} charsAfter=${after} events=${p.events.length}`);
|
|
76
123
|
if (after > COMPILED_TRUTH_MAX_CHARS) {
|
|
77
124
|
// One retry with a stricter prompt before surfacing the over-cap failure.
|
|
78
125
|
// Per eng review: avoids losing the rewrite on a single LLM verbosity slip.
|
|
79
126
|
const stricterResult = await callOauthLlm({
|
|
80
127
|
model: p.model ?? DEFAULT_MODEL,
|
|
81
|
-
system:
|
|
128
|
+
system: systemPrompt +
|
|
82
129
|
`\n\nPRIOR ATTEMPT WAS ${after} CHARACTERS — TOO LONG. ` +
|
|
83
130
|
`Tighten to fit ${COMPILED_TRUTH_MAX_CHARS}. Drop the lowest-value sentences first.`,
|
|
84
131
|
userMessage,
|
|
@@ -89,7 +136,7 @@ export async function rewriteCompiledTruth(p) {
|
|
|
89
136
|
}
|
|
90
137
|
const retry = stricterResult.text.trim();
|
|
91
138
|
if (retry.length > COMPILED_TRUTH_MAX_CHARS) {
|
|
92
|
-
console.log(`[compiled-truth-rewriter] still-too-long subject="${p.subjectName}" retryLen=${retry.length}`);
|
|
139
|
+
console.log(`[compiled-truth-rewriter] still-too-long mode=${mode} subject="${p.subjectName}" retryLen=${retry.length}`);
|
|
93
140
|
return { kind: "too-long", attemptedLen: retry.length };
|
|
94
141
|
}
|
|
95
142
|
return { kind: "ok", compiledTruth: retry };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiled-truth-rewriter.js","sourceRoot":"","sources":["../../src/lib/compiled-truth-rewriter.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"compiled-truth-rewriter.js","sourceRoot":"","sources":["../../src/lib/compiled-truth-rewriter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dream-cycle — Task 327 (+ Task 391 prune-revisions phase).
|
|
3
|
+
*
|
|
4
|
+
* Operator-initiated graph-hygiene sweep. Five phases (1 orphans,
|
|
5
|
+
* 2 stale compiled-truth, 3 edges to :Trashed targets, 4 citation audit,
|
|
6
|
+
* 5 prune compiled-truth revisions). Phase 6 (backlinks) and 7 (tag
|
|
7
|
+
* consistency) are deferred — see .tasks/ follow-ups.
|
|
8
|
+
*
|
|
9
|
+
* Phase ordering is fixed; the `phases` parameter on memory-dream-run
|
|
10
|
+
* selects which subset to run, not how to order them. Failure of any
|
|
11
|
+
* phase logs `[dream-cycle:phase-<n>:error]` and continues to the next.
|
|
12
|
+
*/
|
|
13
|
+
import type { Session } from "neo4j-driver";
|
|
14
|
+
export interface PhaseContext {
|
|
15
|
+
accountId: string;
|
|
16
|
+
session: Session;
|
|
17
|
+
/** Per-run config (e.g. phase 4's maxEventsPerRun, resumeCursor). */
|
|
18
|
+
config: PhaseConfig;
|
|
19
|
+
}
|
|
20
|
+
export interface PhaseConfig {
|
|
21
|
+
/** Phase 4 (citation audit) cap. Default 200. */
|
|
22
|
+
maxEventsPerRun?: number;
|
|
23
|
+
/** Phase 4 resume cursor: timelineEventId to start AFTER. */
|
|
24
|
+
resumeCursor?: string | null;
|
|
25
|
+
}
|
|
26
|
+
export interface PhaseResult {
|
|
27
|
+
phase: number;
|
|
28
|
+
name: string;
|
|
29
|
+
durationSec: number;
|
|
30
|
+
/** Items the phase found warranting action (orphans, gaps, etc.). */
|
|
31
|
+
proposed: number;
|
|
32
|
+
/** Items the phase actually mutated (e.g. dead-edge marks, citations applied). */
|
|
33
|
+
applied: number;
|
|
34
|
+
/** Items deferred to a review queue. */
|
|
35
|
+
deferred: number;
|
|
36
|
+
/** Phase-specific extra payload (e.g. phase 4's lastEventCursor). */
|
|
37
|
+
extra?: Record<string, unknown>;
|
|
38
|
+
}
|
|
39
|
+
export interface PhaseError {
|
|
40
|
+
phase: number;
|
|
41
|
+
name: string;
|
|
42
|
+
reason: string;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/dream-cycle/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,qEAAqE;IACrE,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,iDAAiD;IACjD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;IACjB,kFAAkF;IAClF,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dream-cycle — Task 327 (+ Task 391 prune-revisions phase).
|
|
3
|
+
*
|
|
4
|
+
* Operator-initiated graph-hygiene sweep. Five phases (1 orphans,
|
|
5
|
+
* 2 stale compiled-truth, 3 edges to :Trashed targets, 4 citation audit,
|
|
6
|
+
* 5 prune compiled-truth revisions). Phase 6 (backlinks) and 7 (tag
|
|
7
|
+
* consistency) are deferred — see .tasks/ follow-ups.
|
|
8
|
+
*
|
|
9
|
+
* Phase ordering is fixed; the `phases` parameter on memory-dream-run
|
|
10
|
+
* selects which subset to run, not how to order them. Failure of any
|
|
11
|
+
* phase logs `[dream-cycle:phase-<n>:error]` and continues to the next.
|
|
12
|
+
*/
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/dream-cycle/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase 4 — citation audit. Absorbs Task 330's standalone citation-fixer.
|
|
3
|
+
*
|
|
4
|
+
* Finds `:TimelineEvent` rows for this account with empty/missing
|
|
5
|
+
* `citations`. For each, gathers the 2-hop source neighbourhood
|
|
6
|
+
* (`:Message`, `:KnowledgeDocument`, `:Meeting`) and asks the OAuth LLM
|
|
7
|
+
* to propose citations.
|
|
8
|
+
*
|
|
9
|
+
* Two confidence buckets:
|
|
10
|
+
* - high → exactly one obvious source. Auto-apply: SET t.citations.
|
|
11
|
+
* - low → ambiguous or zero sources. Write a `:CitationProposal`
|
|
12
|
+
* with options; defer to operator review.
|
|
13
|
+
*
|
|
14
|
+
* Bounded run: `maxEventsPerRun` (default 200) caps the per-invocation
|
|
15
|
+
* LLM cost. The last-processed `timelineEventId` is returned as
|
|
16
|
+
* `extra.lastEventCursor`; memory-dream-run threads it onto the next
|
|
17
|
+
* `:Report` so a subsequent invocation resumes after that id.
|
|
18
|
+
*
|
|
19
|
+
* Trust boundary: classifier sees neighbour text as DATA, not
|
|
20
|
+
* instructions. Hallucinated source ids are mapped to
|
|
21
|
+
* `[deleted:<id>]` when they don't resolve to a real node — the spec's
|
|
22
|
+
* "never silently guess" rule.
|
|
23
|
+
*/
|
|
24
|
+
import type { PhaseContext, PhaseResult } from "./index.js";
|
|
25
|
+
export declare function phaseCitationAudit(ctx: PhaseContext): Promise<PhaseResult>;
|
|
26
|
+
//# sourceMappingURL=phase-citation-audit.d.ts.map
|
package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-citation-audit.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phase-citation-audit.d.ts","sourceRoot":"","sources":["../../../src/lib/dream-cycle/phase-citation-audit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AA2D5D,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAuHhF"}
|