@rubytech/create-maxy-code 0.1.148 → 0.1.151
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/lib/graph-style/dist/index.d.ts +5 -5
- package/payload/platform/lib/graph-style/dist/index.d.ts.map +1 -1
- package/payload/platform/lib/graph-style/dist/index.js +11 -9
- package/payload/platform/lib/graph-style/dist/index.js.map +1 -1
- package/payload/platform/lib/graph-style/src/index.ts +11 -9
- package/payload/platform/lib/graph-trash/dist/index.js +6 -6
- package/payload/platform/lib/graph-trash/dist/index.js.map +1 -1
- package/payload/platform/lib/graph-trash/src/index.ts +6 -6
- package/payload/platform/neo4j/edge-annotations.json +4 -4
- package/payload/platform/neo4j/schema.cypher +107 -46
- package/payload/platform/plugins/admin/PLUGIN.md +1 -1
- package/payload/platform/plugins/admin/hooks/__tests__/{post-turn-graph-pass.test.sh → pre-turn-graph-pass.test.sh} +184 -112
- package/payload/platform/plugins/admin/hooks/archive-ingest-surface-gate.sh +2 -2
- package/payload/platform/plugins/admin/hooks/{post-turn-graph-pass.sh → pre-turn-graph-pass.sh} +83 -53
- package/payload/platform/plugins/docs/references/linkedin-extension.md +1 -1
- package/payload/platform/plugins/docs/references/platform.md +1 -1
- package/payload/platform/plugins/docs/references/plugins-guide.md +2 -2
- package/payload/platform/plugins/linkedin-import/skills/linkedin-import/SKILL.md +5 -5
- package/payload/platform/plugins/memory/.claude-plugin/plugin.json +1 -1
- package/payload/platform/plugins/memory/PLUGIN.md +4 -4
- package/payload/platform/plugins/memory/bin/conversation-archive-ingest.mjs +5 -5
- package/payload/platform/plugins/memory/bin/conversation-archive-ingest.sh +1 -1
- package/payload/platform/plugins/memory/mcp/dist/index.js +14 -14
- package/payload/platform/plugins/memory/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-citation-audit.d.ts +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-citation-audit.js +2 -2
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-orphans.d.ts +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-orphans.js +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.d.ts +2 -2
- package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.js +3 -4
- package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-schema.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-schema.js +6 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-schema.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights.test.js +2 -2
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest.test.js +17 -17
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.d.ts +3 -3
- package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.js +6 -6
- package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-delete.d.ts +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-delete.js +9 -3
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-delete.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-empty-trash.d.ts +2 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-empty-trash.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-empty-trash.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.d.ts +6 -5
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.js +30 -29
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-restore.d.ts +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-restore.js +4 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-restore.js.map +1 -1
- package/payload/platform/plugins/memory/references/schema-base.md +2 -2
- package/payload/platform/plugins/memory/skills/conversation-archive/SKILL.md +12 -12
- package/payload/platform/plugins/scheduling/skills/daily-prep/SKILL.md +2 -2
- package/payload/platform/plugins/whatsapp/PLUGIN.md +1 -1
- package/payload/platform/plugins/x-import/PLUGIN.md +3 -3
- package/payload/platform/plugins/x-import/skills/x-import/SKILL.md +7 -7
- package/payload/platform/scripts/seed-neo4j.sh +3 -3
- package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/http-server.js +22 -3
- package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts +16 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +29 -3
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
- package/payload/platform/templates/agents/admin/IDENTITY.md +7 -7
- package/payload/platform/templates/specialists/agents/database-operator.md +6 -6
- package/payload/platform/templates/specialists/agents/librarian.md +2 -2
- package/payload/server/public/assets/{admin-_pm0RRTE.js → admin-CnLGltuE.js} +1 -1
- package/payload/server/public/assets/{data-b6q64Ot4.js → data-MB2EWZUP.js} +1 -1
- package/payload/server/public/assets/{graph-D1SVlBLb.js → graph-B2FnDRz-.js} +1 -1
- package/payload/server/public/assets/graph-labels-DDYqDlu3.js +1 -0
- package/payload/server/public/assets/{page-DwFigpyR.js → page-BJKRa6Db.js} +1 -1
- package/payload/server/public/assets/{page-BV6E4J2q.js → page-Bx2p3W1k.js} +1 -1
- package/payload/server/public/data.html +3 -3
- package/payload/server/public/graph.html +3 -3
- package/payload/server/public/index.html +4 -4
- package/payload/server/server.js +20 -18
- package/payload/server/public/assets/graph-labels-BiDGzVs2.js +0 -1
|
@@ -99,23 +99,26 @@ function bumpEdge(breakdown, edgeType) {
|
|
|
99
99
|
// ---------------------------------------------------------------------------
|
|
100
100
|
export async function memoryIngest(params) {
|
|
101
101
|
// Exactly one of `attachmentId` or `conversationIdentity` is set; the
|
|
102
|
-
// dispatcher signal is *which one*.
|
|
103
|
-
//
|
|
102
|
+
// dispatcher signal is *which one*. The document path MERGEs under
|
|
103
|
+
// `:KnowledgeDocument`; the conversation path MERGEs under
|
|
104
|
+
// `:ConversationArchive` (Task 397).
|
|
104
105
|
if (!params.attachmentId && !params.conversationIdentity) {
|
|
105
|
-
throw new Error("memory-ingest: exactly one of `attachmentId` (document path) or `conversationIdentity` (conversation-
|
|
106
|
+
throw new Error("memory-ingest: exactly one of `attachmentId` (document path) or `conversationIdentity` (conversation-archive path) must be set");
|
|
106
107
|
}
|
|
107
108
|
if (params.attachmentId && params.conversationIdentity) {
|
|
108
109
|
throw new Error("memory-ingest: `attachmentId` and `conversationIdentity` are mutually exclusive — set exactly one");
|
|
109
110
|
}
|
|
110
111
|
const mergeKey = (params.attachmentId ?? params.conversationIdentity);
|
|
111
|
-
|
|
112
|
+
const parentLabel = params.conversationIdentity ? "ConversationArchive" : "KnowledgeDocument";
|
|
113
|
+
return withWriteEvent({ tool: "memory-ingest", accountId: params.accountId, labels: [parentLabel], name: mergeKey }, () => memoryIngestImpl(params));
|
|
112
114
|
}
|
|
113
115
|
async function memoryIngestImpl(params) {
|
|
114
|
-
// Conversation-
|
|
116
|
+
// Conversation-archive branch. Diverges enough from the document path
|
|
115
117
|
// (no extract cache, no anchor edges, no related entities, delta-append
|
|
116
118
|
// semantics) that it has its own end-to-end implementation in
|
|
117
|
-
// `ingestConversationDocument()`.
|
|
118
|
-
//
|
|
119
|
+
// `ingestConversationDocument()`. The conversation writer MERGEs under
|
|
120
|
+
// `:ConversationArchive`; the document writer below MERGEs under
|
|
121
|
+
// `:KnowledgeDocument`.
|
|
119
122
|
if (params.conversationIdentity) {
|
|
120
123
|
return ingestConversationDocument(params);
|
|
121
124
|
}
|
|
@@ -559,9 +562,9 @@ async function writeRelatedNode(opts) {
|
|
|
559
562
|
return result.records[0].get("nodeId");
|
|
560
563
|
}
|
|
561
564
|
// ---------------------------------------------------------------------------
|
|
562
|
-
// Conversation-
|
|
565
|
+
// Conversation-archive ingest — chat-mode branch (Task 397).
|
|
563
566
|
//
|
|
564
|
-
// MERGE :
|
|
567
|
+
// MERGE :ConversationArchive on conversationIdentity → cleanup THIS export's
|
|
565
568
|
// chunks by archiveSha256 (delta discipline: prior exports' chunks survive)
|
|
566
569
|
// → CREATE new chunks → extend NEXT chain from existing tail → MERGE
|
|
567
570
|
// :PARTICIPANT_IN edges → update lastIngestedMessageHash + lastIngestedMessageAt.
|
|
@@ -570,9 +573,8 @@ async function writeRelatedNode(opts) {
|
|
|
570
573
|
// Sections in this branch are :Section chunks (no secondary label — source
|
|
571
574
|
// is the parent's discriminator); properties pass through verbatim (summary,
|
|
572
575
|
// keywords, firstMessageAt, lastMessageAt, participantNames, messageCount).
|
|
573
|
-
//
|
|
574
|
-
//
|
|
575
|
-
// what distinguishes them, not the parent label.
|
|
576
|
+
// The parent label `:ConversationArchive` is what distinguishes a transcript
|
|
577
|
+
// from a narrative document; both use the same `:Section`+`:NEXT` chain shape.
|
|
576
578
|
// ---------------------------------------------------------------------------
|
|
577
579
|
// Source-agnostic provenance. The orchestrator is one bash entry
|
|
578
580
|
// regardless of source, so the agent stamp is the same across every ingest;
|
|
@@ -623,16 +625,15 @@ async function ingestConversationDocument(params) {
|
|
|
623
625
|
const kindBreakdown = {};
|
|
624
626
|
const edgeBreakdown = {};
|
|
625
627
|
try {
|
|
626
|
-
// 1. Trash-revival. `:
|
|
627
|
-
// UNIQUE_KEYS_BY_LABEL
|
|
628
|
-
//
|
|
629
|
-
//
|
|
630
|
-
//
|
|
631
|
-
//
|
|
632
|
-
//
|
|
633
|
-
//
|
|
634
|
-
|
|
635
|
-
const trashedArchive = await dbSession.run(`MATCH (a:KnowledgeDocument:Trashed)
|
|
628
|
+
// 1. Trash-revival. `:ConversationArchive` is in graph-trash's
|
|
629
|
+
// UNIQUE_KEYS_BY_LABEL with `conversationIdentity`, so a trashed
|
|
630
|
+
// conversation-archive parent has `conversationIdentity` snapshotted
|
|
631
|
+
// into `_trashedKeys` and nulled on the live property. Look it up
|
|
632
|
+
// via the snapshot — direct property lookup would miss a
|
|
633
|
+
// trashed-then-revived MERGE target. Without this, re-ingesting into
|
|
634
|
+
// a previously-trashed parent (operator manually drag-trashed, then
|
|
635
|
+
// re-ran) MERGEs into a fresh node and leaves the trashed twin behind.
|
|
636
|
+
const trashedArchive = await dbSession.run(`MATCH (a:ConversationArchive:Trashed)
|
|
636
637
|
WHERE a.accountId = $accountId
|
|
637
638
|
AND (a.conversationIdentity = $conversationIdentity
|
|
638
639
|
OR a._trashedKeys CONTAINS $conversationIdentity)
|
|
@@ -640,14 +641,14 @@ async function ingestConversationDocument(params) {
|
|
|
640
641
|
if (trashedArchive.records.length > 0) {
|
|
641
642
|
const eid = trashedArchive.records[0].get("eid");
|
|
642
643
|
await restoreNode({ session: dbSession, accountId, elementId: eid });
|
|
643
|
-
log("revived", `restored trashed
|
|
644
|
+
log("revived", `restored trashed ConversationArchive elementId=${eid}`);
|
|
644
645
|
}
|
|
645
646
|
// 2. Embed every chunk body. Summary too (parent embedding).
|
|
646
647
|
const textsToEmbed = [documentSummary, ...sections.map((s) => s.body)];
|
|
647
648
|
log("embedding", `${textsToEmbed.length} texts`);
|
|
648
649
|
const embeddings = await embedBatch(textsToEmbed);
|
|
649
650
|
const archiveEmbedding = embeddings[0];
|
|
650
|
-
// 3. MERGE :
|
|
651
|
+
// 3. MERGE :ConversationArchive on conversationIdentity. ON CREATE stamps
|
|
651
652
|
// immutable identity props; ON MATCH bumps the cursor + last-ingest
|
|
652
653
|
// timestamps so the next delta-append run finds the right point.
|
|
653
654
|
//
|
|
@@ -656,7 +657,7 @@ async function ingestConversationDocument(params) {
|
|
|
656
657
|
// NEVER overwritten (re-ingests must produce the same title anyway,
|
|
657
658
|
// but the COALESCE makes the contract explicit). UI prefers `title`
|
|
658
659
|
// via display-helpers' conversation-document branch.
|
|
659
|
-
const archiveResult = await dbSession.run(`MERGE (a:
|
|
660
|
+
const archiveResult = await dbSession.run(`MERGE (a:ConversationArchive { conversationIdentity: $conversationIdentity })
|
|
660
661
|
ON CREATE SET a.accountId = $accountId,
|
|
661
662
|
a.scope = $scope,
|
|
662
663
|
a.title = $archiveTitle,
|
|
@@ -705,7 +706,7 @@ async function ingestConversationDocument(params) {
|
|
|
705
706
|
// (matching conversationIdentity + matching archiveSha256).
|
|
706
707
|
let cleanedPriorChunks = 0;
|
|
707
708
|
if (cleanupPriorChunks) {
|
|
708
|
-
const cleanup = await dbSession.run(`MATCH (a:
|
|
709
|
+
const cleanup = await dbSession.run(`MATCH (a:ConversationArchive { conversationIdentity: $conversationIdentity })
|
|
709
710
|
-[hs:HAS_SECTION]->(c:Section { archiveSha256: $archiveSha256 })
|
|
710
711
|
DETACH DELETE c
|
|
711
712
|
RETURN count(c) AS removed`, { conversationIdentity, archiveSha256 });
|
|
@@ -722,7 +723,7 @@ async function ingestConversationDocument(params) {
|
|
|
722
723
|
// Restrict the NEXT chain match to this conversation-document's
|
|
723
724
|
// sections by going through HAS_SECTION rather than by section label;
|
|
724
725
|
// a plain `:Section` would also match document-path siblings.
|
|
725
|
-
const tailResult = await dbSession.run(`MATCH (a:
|
|
726
|
+
const tailResult = await dbSession.run(`MATCH (a:ConversationArchive { conversationIdentity: $conversationIdentity })
|
|
726
727
|
-[:HAS_SECTION]->(c:Section)
|
|
727
728
|
WHERE NOT EXISTS {
|
|
728
729
|
MATCH (c)-[:NEXT]->(:Section)<-[:HAS_SECTION]-(a)
|
|
@@ -759,7 +760,7 @@ async function ingestConversationDocument(params) {
|
|
|
759
760
|
const r = await dbSession.run(`CREATE (c:Section)
|
|
760
761
|
SET c = $props
|
|
761
762
|
WITH c
|
|
762
|
-
MATCH (a:
|
|
763
|
+
MATCH (a:ConversationArchive { conversationIdentity: $conversationIdentity })
|
|
763
764
|
CREATE (a)-[hs:HAS_SECTION]->(c)
|
|
764
765
|
SET hs.createdByAgent = $createdByAgent,
|
|
765
766
|
hs.createdBySession = $createdBySession,
|
|
@@ -810,7 +811,7 @@ async function ingestConversationDocument(params) {
|
|
|
810
811
|
// on the edge set.
|
|
811
812
|
let participantEdgesMerged = 0;
|
|
812
813
|
for (const elemId of participantElementIds) {
|
|
813
|
-
const pres = await dbSession.run(`MATCH (a:
|
|
814
|
+
const pres = await dbSession.run(`MATCH (a:ConversationArchive { conversationIdentity: $conversationIdentity })
|
|
814
815
|
MATCH (p) WHERE elementId(p) = $elemId AND (p:Person OR p:AdminUser)
|
|
815
816
|
MERGE (p)-[r:PARTICIPANT_IN]->(a)
|
|
816
817
|
ON CREATE SET r.createdByAgent = $createdByAgent,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-ingest.js","sourceRoot":"","sources":["../../src/tools/memory-ingest.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"memory-ingest.js","sourceRoot":"","sources":["../../src/tools/memory-ingest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* memory-restore — undo a `memory-delete`. Removes the `:Trashed` label,
|
|
3
3
|
* restores snapshotted unique-key properties, and walks `HAS_SECTION` /
|
|
4
|
-
* `HAS_CHUNK` edges so a restored `KnowledgeDocument` brings its trashed
|
|
4
|
+
* `HAS_CHUNK` edges so a restored `KnowledgeDocument` or `ConversationArchive` brings its trashed
|
|
5
5
|
* `Section` and `Chunk` children back with it.
|
|
6
6
|
*
|
|
7
7
|
* Fails loudly when an active node already holds a unique slot the trashed
|
|
@@ -11,7 +11,10 @@ async function memoryRestoreImpl(params) {
|
|
|
11
11
|
const root = await restoreNode({ session, accountId, elementId });
|
|
12
12
|
let sections = 0;
|
|
13
13
|
let chunks = 0;
|
|
14
|
-
|
|
14
|
+
// Both :KnowledgeDocument (document path) and :ConversationArchive
|
|
15
|
+
// (conversation path — Task 397) own :Section/:Chunk children; revival
|
|
16
|
+
// cascade is identical for both parent labels.
|
|
17
|
+
if (root.labels.includes("KnowledgeDocument") || root.labels.includes("ConversationArchive")) {
|
|
15
18
|
const childResult = await session.run(`MATCH (d) WHERE elementId(d) = $eid
|
|
16
19
|
OPTIONAL MATCH (d)-[:HAS_SECTION]->(s:Section)
|
|
17
20
|
WHERE s:Trashed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-restore.js","sourceRoot":"","sources":["../../src/tools/memory-restore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAsB,MAAM,8CAA8C,CAAC;AAC/F,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAwBtD,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAA2B;IAE3B,OAAO,cAAc,CACnB,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,EACvD,GAAG,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAC/B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CACtD,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,MAA2B;IAE3B,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IACxC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,MAAM,IAAI,GAAkB,MAAM,WAAW,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;QAEjF,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,MAAM,GAAG,CAAC,CAAC;QAEf,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"memory-restore.js","sourceRoot":"","sources":["../../src/tools/memory-restore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAsB,MAAM,8CAA8C,CAAC;AAC/F,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAwBtD,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAA2B;IAE3B,OAAO,cAAc,CACnB,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,EACvD,GAAG,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAC/B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CACtD,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,MAA2B;IAE3B,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IACxC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,MAAM,IAAI,GAAkB,MAAM,WAAW,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;QAEjF,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,MAAM,GAAG,CAAC,CAAC;QAEf,mEAAmE;QACnE,uEAAuE;QACvE,+CAA+C;QAC/C,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;YAC7F,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC;;;;;;;+EAOuE,EACvE,EAAE,GAAG,EAAE,SAAS,EAAE,CACnB,CAAC;YACF,MAAM,UAAU,GAAI,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,YAAY,CAAc,IAAI,EAAE,CAAC;YACjF,MAAM,QAAQ,GAAI,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,UAAU,CAAc,IAAI,EAAE,CAAC;YAE7E,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBAC7B,MAAM,WAAW,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC1D,QAAQ,EAAE,CAAC;YACb,CAAC;YACD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;gBAC3B,MAAM,WAAW,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC1D,MAAM,EAAE,CAAC;YACX,CAAC;QACH,CAAC;QAED,OAAO;YACL,SAAS;YACT,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;SAC9B,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;AACH,CAAC"}
|
|
@@ -61,7 +61,7 @@ When loading this reference, confirm which schema files were consulted by noting
|
|
|
61
61
|
|
|
62
62
|
**Position** carries a single role held by a `UserProfile` at an `Organization` — its title, dates, and per-role properties (e.g. achievement bullets in `description`, `endDate` for a finished role). Each role is its own node so it can carry its own structure; multiple Positions per UserProfile (career history); one Organization may host many Positions across many UserProfiles. Written by the `document-ingest` skill when a CV section classifies as `Position`. The natural pattern is `(:UserProfile)-[:HAS_POSITION]->(:Position)-[:AT]->(:Organization)` — never set the employer name as a property on Position; always create the AT edge to the (MERGEd) Organization.
|
|
63
63
|
|
|
64
|
-
**`authorshipMode` on content labels (Task 356).** Every `:KnowledgeDocument` (including email-source threads), `:Message`, `:SocialPost`, and
|
|
64
|
+
**`authorshipMode` on content labels (Task 356).** Every `:KnowledgeDocument` (including email-source threads), `:ConversationArchive` (Task 397 — every chat transcript parent), `:Message`, `:SocialPost`, and `:Section` write carries an `authorshipMode` enum drawn from `human-only | human-led-agent-assisted | agent-led-human-reviewed | agent-only | unknown`. The value records who actually wrote the content body, not who triggered the write. `human-only` means every word of the body came from the operator; `human-led-agent-assisted` is operator-authored with light agent polish (the operator chose every claim and structure); `agent-led-human-reviewed` is agent-drafted then operator-edited before send; `agent-only` is pure agent output the operator did not touch. The voice-mirror distillation walks the corpus where `authorshipMode IN ['human-only', 'human-led-agent-assisted']` — both modes carry voice signal. `:ConversationArchive` `:Section` chunks (WhatsApp / Telegram / Signal / Granola / Otter / Circleback exports ingested under `(:ConversationArchive)-[:HAS_SECTION]->(:Section)` — Task 397) are first-class voice corpus and the highest-leverage signal source because chat captures the unguarded voice in a way email rarely does. Legacy nodes default to `unknown` until reclassified via the voice-mirror backfill flow. The per-label authorshipMode index on `:Section` covers transcript chunks without a secondary label. Writers that cannot determine the mode (e.g. bulk archive imports) write `unknown` rather than guessing.
|
|
65
65
|
|
|
66
66
|
**Voice profile pattern (Task 356).** `(:AdminUser)-[:HAS_VOICE_PROFILE]->(:VoiceProfile)`. The styleCard is YAML serialized to a string property containing sentence-length distribution, register, favoured/avoided constructions and words, taboos, opening/closing patterns, and exemplar sentences. `(:VoiceProfile)-[:LEARNED_FROM]->(:KnowledgeDocument|:Message|:SocialPost|:Section)` links the profile to every node in its source corpus so the operator can audit what drove the distillation. Each operator edit on an agent draft becomes `(:VoiceEdit)-[:FEEDBACK_FOR]->(:VoiceProfile)` with the original/edited bodies plus a Haiku-summarised `intent` so the next distillation knows what to adjust.
|
|
67
67
|
|
|
@@ -235,7 +235,7 @@ The closed enumeration:
|
|
|
235
235
|
|
|
236
236
|
`Preface`, `Abstract` (alias for Summary / ExecutiveSummary), `Introduction`, `TableOfContents`, `Chapter`, `Conclusion`, `Appendix`, `Bibliography` (alias for References), `Glossary`, `Acknowledgments` — each becomes `:Section:<Kind>` linked to the document via `(:KnowledgeDocument)-[:HAS_SECTION]->` and chained to siblings via `(:Section)-[:NEXT]->(:Section)` in reading order.
|
|
237
237
|
|
|
238
|
-
`Conversation` — chat-mode chunks emitted by `memory-classify` with `mode='chat'`. Becomes `:Section` linked via `(:
|
|
238
|
+
`Conversation` — chat-mode chunks emitted by `memory-classify` with `mode='chat'`. Becomes `:Section` linked via `(:ConversationArchive)-[:HAS_SECTION]->` (Task 397) — same Section shape as document-mode, only the parent label differs. The parent `:ConversationArchive` carries `conversationIdentity` (and `source`); readers that need conversation-vs-document filtering match on the parent label rather than a property heuristic. Properties beyond the base section shape: `summary`, `keywords`, `firstMessageAt`, `lastMessageAt`, `participantNames`, `messageCount`, `archiveSha256`. The `:Section` validator rules (embedding, body, position) apply uniformly.
|
|
239
239
|
|
|
240
240
|
**Contract-clause kinds (HAS_SECTION + NEXT, plus special-case extras for two kinds):**
|
|
241
241
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: conversation-archive
|
|
3
|
-
description: Source-agnostic ingest for conversation transcripts. One skill for WhatsApp `_chat.txt`, Telegram, Signal, LinkedIn DMs, Zoom transcript, meeting minutes, iMessage, Slack, and any future source — `source` is a property on `:
|
|
3
|
+
description: Source-agnostic ingest for conversation transcripts. One skill for WhatsApp `_chat.txt`, Telegram, Signal, LinkedIn DMs, Zoom transcript, meeting minutes, iMessage, Slack, and any future source — `source` is a property on the parent `:ConversationArchive`, never a separate skill or plugin. Confirms the owner + every distinct sender against existing `:AdminUser` / `:Person` nodes (no auto-creation), then invokes the deterministic Bash entry `conversation-archive-ingest.sh` with `--source <enum>`. The script normalises the source (per-source pluggable function), sessionizes at gap-hours boundaries, classifies each session via Haiku (mode='chat') into `:Section` chunks with summary + topic keywords, and writes them under a parent `:ConversationArchive` MERGEd on `conversationIdentity = sha256(accountId + ":" + sortedParticipantElementIds)`. Re-imports are delta-append: prior chunks are never touched; only messages after `lastIngestedMessageHash` flow through the pipeline. Triggers when the operator drops any conversation export (file or directory) into chat.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Conversation Archive — source-agnostic transcript ingestion
|
|
7
7
|
|
|
8
8
|
**Invoked from `specialists:librarian`** — the admin agent dispatches the librarian when the operator drops a conversation transcript; the librarian loads this skill.
|
|
9
9
|
|
|
10
|
-
**Default parent.** Every `:KnowledgeDocument` is anchored to the operator-confirmed owner (`:AdminUser` for the account owner, `:Person` for a third-party archive). The owner's elementId is derived inside the bash entry from `(ACCOUNT_ID, USER_ID)` env (see Identity below) and becomes the containment parent for the archive node. Per-session `:Section` chunks attach to the archive via `:
|
|
10
|
+
**Default parent.** Every `:ConversationArchive` (Task 397 — previously a `:KnowledgeDocument` carrying `conversationIdentity`) is anchored to the operator-confirmed owner (`:AdminUser` for the account owner, `:Person` for a third-party archive). The owner's elementId is derived inside the bash entry from `(ACCOUNT_ID, USER_ID)` env (see Identity below) and becomes the containment parent for the archive node. Per-session `:Section` chunks attach to the archive via `:HAS_SECTION`, chained in reading order by `:NEXT`. Participant cross-edges from the archive to each distinct sender (`:Person` / `:AdminUser`) attach via `:PARTICIPANT_IN` — they describe the conversation, they do not substitute for the parent.
|
|
11
11
|
|
|
12
12
|
One skill, one bash entry, one writer. The pipeline is identical for every conversation source. The only source-specific code is the per-source normaliser (a pluggable function under [`platform/plugins/memory/mcp/src/lib/conversation-normalisers/`](../../mcp/src/lib/conversation-normalisers/)). New sources = a new normaliser file + an enum entry, never a new skill.
|
|
13
13
|
|
|
@@ -127,11 +127,11 @@ Forbidden: blind-reissue without reading the progress file first.
|
|
|
127
127
|
- Picks the normaliser for `--source`. WhatsApp: locates `_chat.txt` (zip / dir / direct file), parses deterministically, computes `archiveSha256`. Other sources interpret the path according to their own format.
|
|
128
128
|
- Verifies the operator-supplied participant elementIds exist in the graph under this `accountId` with the right label (`:AdminUser` / `:Person`). The script does NOT bind parsed senderNames back to those elementIds — any line authored by a sender outside the confirmed set lands under the archive's `:Section` chunks unchecked, and `:PARTICIPANT_IN` reflects only the confirmed owner + participants. Closing that gap is its own task ([Task 396](../../../../../.tasks/396-conversation-archive-sendername-binding.md)).
|
|
129
129
|
- Computes `conversationIdentity` from accountId + sorted participant elementIds.
|
|
130
|
-
- **Without `--rebuild`** (default): looks up any prior `:
|
|
130
|
+
- **Without `--rebuild`** (default): looks up any prior `:ConversationArchive` carrying that identity → reads `lastIngestedMessageHash`. If found, slices parsed lines after the cursor (delta-append). Cursor not found → `FAIL delta-cursor-missing`. Cursor at last line → empty-delta noop (exit 0, no writes; existing chunk count surfaced in JSON summary). **With `--rebuild`**: skips the prior-cursor lookup entirely; every line is treated as first-ingest delta; the first session's `memory-ingest` deletes prior chunks for THIS `archiveSha256` and the new cursor overwrites the stale one in the same MERGE.
|
|
131
131
|
- Sessionizes the delta lines at the fixed 8h gap (code constant, no flag).
|
|
132
132
|
- Computes the stable archive `title` once: `<source> · <owner> ↔ <others> · <YYYY-MM-DD>→<YYYY-MM-DD>`.
|
|
133
133
|
- For each session: renders as turn-attributed text (`[ts] Sender: body\n…`) and calls `memory-classify` with `mode='chat'`. Oversize sessions dispatch to the chunked-chat path internally — sessionize size is no longer an operator concern. Returns one or more `:Section` chunk specs.
|
|
134
|
-
- **Per-session checkpoint:** immediately after each successful classify, calls `memory-ingest` for THAT session's chunks AND advances `lastIngestedMessageHash` / `lastIngestedMessageAt` on the parent `:
|
|
134
|
+
- **Per-session checkpoint:** immediately after each successful classify, calls `memory-ingest` for THAT session's chunks AND advances `lastIngestedMessageHash` / `lastIngestedMessageAt` on the parent `:ConversationArchive` to the last message of that session — atomic (chunk writes + cursor advance happen inside one Cypher transaction). A kill mid-loop leaves the cursor at session N-1's last message; re-issuing with the same argv and `--session-id` resumes from session N onward without re-classifying prior sessions.
|
|
135
135
|
- Server MERGEs the parent on `conversationIdentity` (writing `title` ON CREATE and COALESCE-on-MATCH so a stable title is never overwritten), MERGEs `:PARTICIPANT_IN` edges, CREATEs new chunks, extends the `:NEXT` chain from its tail. The cleanup-by-`archiveSha256` step runs ONLY when `--rebuild` is set AND only on the FIRST per-session call of a run. Every node and edge stamps `source=<enum>` and `createdByAgent='conversation-archive'`.
|
|
136
136
|
|
|
137
137
|
NO insight pass runs. Phase 2 (operator-driven `:Observation` / `:Task` / `:Preference` derivation against chunks) is its own follow-up task — and applies uniformly to every source once chunks exist.
|
|
@@ -142,7 +142,7 @@ After the script succeeds, formulate the three operator-facing messages from the
|
|
|
142
142
|
|
|
143
143
|
1. **Parse summary.** `Parsed <archiveSourceFile> (source=<enum>): <parsed> messages across <sessions> sessions, date range <dateRange.first> → <dateRange.last>. Participants: <senderHistogram[i].name (count), …>.`
|
|
144
144
|
2. **Classify summary.** `Classified into <chunks> chunks, covering: <topicKeywords[0], topicKeywords[1], …>.`
|
|
145
|
-
3. **Write summary.** `Created :
|
|
145
|
+
3. **Write summary.** `Created :ConversationArchive <archiveElementId> with <chunks> :Section chunks (NEXT chain length <chunks - 1>). Participants linked via :PARTICIPANT_IN: <participantsLinked>.`
|
|
146
146
|
|
|
147
147
|
For an empty-delta re-import (`delta.kind === "empty-delta"`): emit only message 1 + a noop line `noop reason="no new messages since <priorLastIngestedMessageAt>"`.
|
|
148
148
|
|
|
@@ -180,7 +180,7 @@ For an empty-delta re-import (`delta.kind === "empty-delta"`): emit only message
|
|
|
180
180
|
- **Re-running the same export bytes is a no-op by default.** The bin reports the existing chunk count and exits 0; cursor and chunks are unchanged. An earlier contract that ran cleanup-by-`archiveSha256` on every same-bytes re-run was the destructive primitive that combined with `--session-gap-hours` to silently destroy 138 chunks (Adam Mackay incident, 2026-05-04) — that path is closed.
|
|
181
181
|
- **Re-running with appended messages** (a fresh export from the same chat with new messages at the tail): cursor lookup finds the prior `lastIngestedMessageHash`, slices new messages, sessionizes only those, and appends new chunks at the tail of the existing `:NEXT` chain. Pre-existing chunks are never touched.
|
|
182
182
|
- **Destructive rebuild** requires the explicit `--rebuild` flag — and only the operator may pass it (see Doctrine below). With `--rebuild`, the bin treats the run as first-ingest, the FIRST session's writer cleans prior chunks for the matching `archiveSha256`, the cursor is overwritten by that session's MERGE, and the heartbeat surfaces a WARN line so the destructive action is operator-visible.
|
|
183
|
-
- **Re-ingesting into a previously-trashed archive** revives the parent before MERGE. If the operator drag-trashed a
|
|
183
|
+
- **Re-ingesting into a previously-trashed archive** revives the parent before MERGE. If the operator drag-trashed a `:ConversationArchive` and then re-runs ingest (delta or `--rebuild`), `memory-ingest`'s `ingestConversationDocument` strips `:Trashed` from the matching `conversationIdentity` so the MERGE binds to a non-trashed parent — otherwise the chunks would land under a `:Trashed` parent the graph UI hides, making the entire archive (and every freshly-written chunk under it) invisible until something else clears the label. Same revival shape as the document-path `:KnowledgeDocument`.
|
|
184
184
|
|
|
185
185
|
## Doctrine
|
|
186
186
|
|
|
@@ -191,16 +191,16 @@ For an empty-delta re-import (`delta.kind === "empty-delta"`): emit only message
|
|
|
191
191
|
|
|
192
192
|
Run via `mcp__graph__maxy-graph-read_neo4j_cypher`:
|
|
193
193
|
|
|
194
|
-
- `MATCH (a:
|
|
195
|
-
- `MATCH (a:
|
|
196
|
-
- `MATCH (a:
|
|
197
|
-
- `MATCH (p)-[:PARTICIPANT_IN]->(:
|
|
198
|
-
- Phase 1 wrote ZERO observations: `MATCH (o:Observation)-[:OBSERVED_IN]->(:
|
|
194
|
+
- `MATCH (a:ConversationArchive { conversationIdentity: $cid }) RETURN elementId(a), a.source, a.lastIngestedMessageAt, a.lastIngestedMessageHash` — `source` matches `--source`; counters agree with the JSON summary.
|
|
195
|
+
- `MATCH (a:ConversationArchive { conversationIdentity: $cid })-[:HAS_SECTION]->(c:Section) RETURN count(c)` — equals `chunks`.
|
|
196
|
+
- `MATCH (a:ConversationArchive { source: $source }) RETURN count(a)` — uses the `(accountId, source)` index.
|
|
197
|
+
- `MATCH (p)-[:PARTICIPANT_IN]->(:ConversationArchive { conversationIdentity: $cid }) RETURN count(p)` — equals `participantsLinked` after a first-ingest.
|
|
198
|
+
- Phase 1 wrote ZERO observations: `MATCH (o:Observation)-[:OBSERVED_IN]->(:ConversationArchive { conversationIdentity: $cid }) RETURN count(o)` — should be 0 today (Phase 2 deferred).
|
|
199
199
|
|
|
200
200
|
## What this is not
|
|
201
201
|
|
|
202
202
|
- **Not** the live `whatsapp` plugin. That plugin (Baileys QR pairing) holds messages in an in-memory store cleared on restart. This skill imports historical exports into Neo4j as persistent graph nodes.
|
|
203
203
|
- **Not** a media-transcription pipeline. Voice notes, photos, PDFs are skipped at parse with a counter logged.
|
|
204
204
|
- **Not** an insight-extraction pass. Phase 2 (`:Observation` / `:Task` / `:Preference` / `:MENTIONS` derivation, anchored to chunks) ships in its own task and applies uniformly to every source.
|
|
205
|
-
- **Not** an archive-wide importer. Flat datasets (LinkedIn connections, CRM exports) are first-class entities + natural edges, not `:KnowledgeDocument` — `feedback_archives_are_not_documents.md` stands.
|
|
205
|
+
- **Not** an archive-wide importer. Flat datasets (LinkedIn connections, CRM exports) are first-class entities + natural edges, not `:ConversationArchive` and not `:KnowledgeDocument` — `feedback_archives_are_not_documents.md` stands.
|
|
206
206
|
- **Not** automatic. The owner + all-participants confirmation gate is mandatory before any line is written.
|
|
@@ -21,7 +21,7 @@ Run when the owner asks for a per-meeting brief for today. The trigger phrases a
|
|
|
21
21
|
2. **For each event, list the attendees.** Read the event's `attendees` field or the `SCHEDULED_FOR` relationships in the graph. If the event has no attendees recorded, mark it as "solo or unspecified".
|
|
22
22
|
3. **For each attendee, look up the graph.** Call `memory-search` with the attendee's name. Take the highest-confidence `:Person` node. From the node and its neighbours, pull:
|
|
23
23
|
- Role and current company (one line).
|
|
24
|
-
- The most recent
|
|
24
|
+
- The most recent `:ConversationArchive` (carries `conversationIdentity` and `source`) or live `:Conversation` involving them, with the conversation's last-message timestamp.
|
|
25
25
|
- Open `:Task` nodes that name them.
|
|
26
26
|
- Open commitments the owner made to them (tasks with status `open` and the attendee in `SCHEDULED_FOR`).
|
|
27
27
|
4. **Compose one context block per event.** Keep each block to three short sentences: who is attending, what the latest contact was, what is open between the owner and them.
|
|
@@ -44,7 +44,7 @@ When `memory-search` returns no `:Person` node for an attendee, say "no record y
|
|
|
44
44
|
CFO at Acme Corp since 2024. Last conversation 11 days ago, where she asked for a referral introduction. One open task: send the intro to Sam Webber.
|
|
45
45
|
|
|
46
46
|
### Pricing review with the team
|
|
47
|
-
Three attendees: Mark Lee, Priya Singh, Jordan Lee. No active commitments between the owner and any of them this week. Standing recurring meeting; last week's notes are in the graph as :Section nodes under the team's
|
|
47
|
+
Three attendees: Mark Lee, Priya Singh, Jordan Lee. No active commitments between the owner and any of them this week. Standing recurring meeting; last week's notes are in the graph as :Section nodes under the team's :ConversationArchive.
|
|
48
48
|
|
|
49
49
|
### Call with Daniel Park
|
|
50
50
|
No record yet. The event was created from a calendar invite three days ago. The owner may want to add a one-line note on the meeting's purpose before joining.
|
|
@@ -88,7 +88,7 @@ When per-group activation is `mention`, the agent fires only if the inbound mess
|
|
|
88
88
|
|
|
89
89
|
## Live persistence
|
|
90
90
|
|
|
91
|
-
Every `messages.upsert` event (both `notify` and `append`, both `fromMe` directions) writes a `:Message:WhatsAppMessage` row to Neo4j attached to the sessionKey-keyed `:Conversation`. A single capture site at `platform/ui/app/lib/whatsapp/manager.ts` covers inbound, outbound (Baileys echoes agent-sent messages back through `messages.upsert` with `fromMe=true`), and owner-mirror — without touching `outbound/send.ts`. `messageId` namespace is `whatsapp-live:<waName>:<remoteJid>:<msg.key.id>` where `<waName>` is the Baileys credential dirname (e.g. `default`); distinct from the
|
|
91
|
+
Every `messages.upsert` event (both `notify` and `append`, both `fromMe` directions) writes a `:Message:WhatsAppMessage` row to Neo4j attached to the sessionKey-keyed `:Conversation`. A single capture site at `platform/ui/app/lib/whatsapp/manager.ts` covers inbound, outbound (Baileys echoes agent-sent messages back through `messages.upsert` with `fromMe=true`), and owner-mirror — without touching `outbound/send.ts`. `messageId` namespace is `whatsapp-live:<waName>:<remoteJid>:<msg.key.id>` where `<waName>` is the Baileys credential dirname (e.g. `default`); distinct from the `:ConversationArchive` `:Section` chunks written by the source-agnostic `conversation-archive` skill (parent `:ConversationArchive` keyed on `conversationIdentity`, plus `:Section` children) — live and archive live in disjoint shapes. Persist failures are loud (`[whatsapp-persist] FAIL …`) and never block dispatch — silent loss is the worse failure mode.
|
|
92
92
|
|
|
93
93
|
**`accountId` contract.** `n.accountId` on every `:Conversation`, `:Person`, and `:Message:WhatsAppMessage` row stamped by this plugin is the **platform-side UUID** resolved by [`resolvePlatformAccountId()`](../../ui/app/lib/whatsapp/platform-account-id.ts) from `data/accounts/<uuid>/account.json` — NOT the Baileys credential dirname (which is only used as the `messageId`/`sessionKey` namespace token). The boot-time line `[whatsapp-persist] resolved-account-id waname=<dir> uuid=<uuid>` records the resolution. Doctrine: see `.docs/neo4j.md` "Account isolation invariant" — every writer that stamps `n.accountId` must verify the value against `${DATA_ROOT}/accounts/<id>/account.json` before write. The helper loud-throws on zero or multi accounts (Phase 0 single-account invariant), aborting the WhatsApp connection start before any write can occur. The same boot-validated identity (`process.env.ACCOUNT_ID`) backs the central live floor at [`writeNodeWithEdges`](../../lib/graph-write/src/index.ts) — any write whose `accountId` differs from the spawning process's `ACCOUNT_ID` is rejected by the gate; the WhatsApp helper is the writer-side discipline, the gate is the universal floor. The env itself is stamped onto the brand systemd unit by `buildMaxyUnitFile` and re-validated at every Hono boot (`[graph-health] account-id-env present=true matches-on-disk=true`) — see `.docs/neo4j.md` "Two boot-time surfaces" (added 2026-05-07).
|
|
94
94
|
|
|
@@ -17,11 +17,11 @@ Ingests an X (formerly Twitter) Basic Data Export (extracted ZIP — a directory
|
|
|
17
17
|
The admin agent delegates to `specialists:database-operator` when the operator drops an extracted X archive directory (or a `twitter-<handle>-archive.zip` reference) into chat. The specialist runs the skill's owner + participant confirmation flow before any `.js` shim is read, then dispatches the two existing ingestion surfaces:
|
|
18
18
|
|
|
19
19
|
- **Tweet stream** → `document-ingest` produces one `:KnowledgeDocument` with `source='x'` whose body is the verbatim chronological transcript of the operator's own tweets, replies, and quote-tweet authorship. `:Section` chunking is owned by `memory-classify` (document mode).
|
|
20
|
-
- **Direct messages** → `conversation-archive-ingest.sh --source x-dm` once per distinct `dmConversation`, producing one
|
|
20
|
+
- **Direct messages** → `conversation-archive-ingest.sh --source x-dm` once per distinct `dmConversation`, producing one `:ConversationArchive` per participant set (keyed on `conversationIdentity`). Senders confirm to existing `:AdminUser` / `:Person` nodes — never auto-created.
|
|
21
21
|
|
|
22
22
|
## What this plugin is not
|
|
23
23
|
|
|
24
|
-
- **Not a new graph writer.** Every write routes through the existing `memory-ingest` surface — the document path keyed on `attachmentId` (tweet stream) or the conversation-
|
|
24
|
+
- **Not a new graph writer.** Every write routes through the existing `memory-ingest` surface — the document path keyed on `attachmentId` (tweet stream) writes `:KnowledgeDocument`, or the conversation-archive path keyed on `conversationIdentity` (DMs) writes `:ConversationArchive` (Task 397). Both attach `:Section` children. No bespoke `:Post`, `:DirectMessage`, `:DMThread`, `:Attachment`, or `:Thread` label is introduced; per-thread KD granularity is explicitly rejected.
|
|
25
25
|
- **Not a live X API client.** Archive-only — the X API is rate-limited and paid.
|
|
26
26
|
- **Not a retweet importer.** Retweets-without-comment are not persisted reliably in X archives; the skill drops them.
|
|
27
27
|
|
|
@@ -29,5 +29,5 @@ The admin agent delegates to `specialists:database-operator` when the operator d
|
|
|
29
29
|
|
|
30
30
|
- **memory** — the underlying graph-write surface used by the skill (`mcp__plugin_memory_memory__memory-write` etc.). The skill passes `source='x'` / `source='x-dm'` and `createdByAgent='x-import'` for provenance on every write.
|
|
31
31
|
- **document-ingest** (memory skill) — owns the tweet-stream KnowledgeDocument writes. `:Section` classification is its responsibility, not this plugin's.
|
|
32
|
-
- **conversation-archive** (memory skill) — owns the DM
|
|
32
|
+
- **conversation-archive** (memory skill) — owns the DM transcript writes (`:ConversationArchive` keyed on `conversationIdentity` — Task 397). The `x-dm` enum entry on `CONVERSATION_SOURCES` and the sibling normaliser in `platform/plugins/memory/mcp/src/lib/conversation-normalisers/x-dm.ts` are the only new code outside this plugin.
|
|
33
33
|
- **database-operator specialist** — owns execution. See [platform/templates/specialists/agents/database-operator.md](../../templates/specialists/agents/database-operator.md) external-archive ingestion clause.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: x-import
|
|
3
|
-
description: Ingest an extracted X (Twitter) archive directory into the graph as one :KnowledgeDocument (tweet stream) plus one
|
|
3
|
+
description: Ingest an extracted X (Twitter) archive directory into the graph as one :KnowledgeDocument (tweet stream) plus one :ConversationArchive per DM participant set. Triggers when the operator drops an `Archive of <handle>` directory or `twitter-<handle>-archive.zip` path into chat. Owner + every distinct participant confirms against existing `:AdminUser` / `:Person` nodes before any write. Idempotent on archive content hash.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# X Import
|
|
@@ -10,7 +10,7 @@ description: Ingest an extracted X (Twitter) archive directory into the graph as
|
|
|
10
10
|
One X archive becomes:
|
|
11
11
|
|
|
12
12
|
- **One `:KnowledgeDocument`** (`source='x'`) carrying the verbatim chronological transcript of the operator's authored content — root tweets, replies, quote-tweet authorship, deletion markers. `memory-classify` (document mode) splits the body into topic-bounded `:Section` children. Threading is a within-body concept rendered in the transcript; per-thread KDs are explicitly rejected.
|
|
13
|
-
- **N `
|
|
13
|
+
- **N `:ConversationArchive` nodes** (`source='x-dm'`) — one per distinct DM participant set, MERGEd on the existing `conversationIdentity = sha256(accountId + ":" + sortedParticipantElementIds)` key. DM media attaches to the archive node via `HAS_ENCLOSURE`.
|
|
14
14
|
- **Person resolution** — every `@handle` mentioned, replied-to, or quoted in the tweet stream MERGEs against `:Person` on lowercased `xHandle` scoped by `accountId`. Existing `:Person` nodes gain `xHandle` on `ON CREATE SET` without overwriting operator edits.
|
|
15
15
|
|
|
16
16
|
## Archive shape
|
|
@@ -64,7 +64,7 @@ The dispatch brief names:
|
|
|
64
64
|
|
|
65
65
|
After document-ingest returns, write the inverse `REPLIED_TO` edges from each inbound-reply author (`:Person`) to the tweet-stream KD — one Cypher MERGE per distinct inbound-replier resolved in Phase 0. Edges carry `accountId`, `sourceDocumentId = attachmentId`, and `createdByAgent = 'x-import'` so re-ingest cleans them up.
|
|
66
66
|
|
|
67
|
-
### Phase 3 — DM `
|
|
67
|
+
### Phase 3 — DM `:ConversationArchive` ingests (one per dmConversation)
|
|
68
68
|
|
|
69
69
|
For each `dmConversation` in `data/direct-messages.js` (and `data/direct-messages-group.js` when present):
|
|
70
70
|
|
|
@@ -87,11 +87,11 @@ For each `dmConversation` in `data/direct-messages.js` (and `data/direct-message
|
|
|
87
87
|
|
|
88
88
|
### Phase 4 — Media enclosures
|
|
89
89
|
|
|
90
|
-
After both the KD and all `
|
|
90
|
+
After both the KD and all `:ConversationArchive` writes complete:
|
|
91
91
|
|
|
92
92
|
- For each tweet-media file, write `(:KnowledgeDocument {tweetStreamKd})-[:HAS_ENCLOSURE]->(:ImageObject)` (image media) or write `(:KnowledgeDocument)-[:HAS_ENCLOSURE { contentUrl }]->(...)` skipping body ingest for binary-only video.
|
|
93
93
|
- Document-shaped media (OCR-able images, PDFs from quote-tweeted articles when archived) recurse through `document-ingest` to land a child `:KnowledgeDocument`, attached via `HAS_ENCLOSURE` from the parent tweet-stream KD.
|
|
94
|
-
- DM media: same `HAS_ENCLOSURE` shape but attaches from the relevant
|
|
94
|
+
- DM media: same `HAS_ENCLOSURE` shape but attaches from the relevant `:ConversationArchive`.
|
|
95
95
|
|
|
96
96
|
## Diagnostic line
|
|
97
97
|
|
|
@@ -107,7 +107,7 @@ Surfaces to the operator as one chat line. `kdCreated + kdUpdated == 1` per twee
|
|
|
107
107
|
|
|
108
108
|
- Re-running the same archive bytes is a no-op for the tweet-stream KD — `attachmentId = sha256(transcript-bytes)` matches the prior write; `document-ingest` skips on identical `attachmentId`.
|
|
109
109
|
- A newer archive containing additional tweets produces a different transcript and therefore a different `attachmentId` — the prior KD is replaced (sections regenerated under the same `sourceDocumentId`).
|
|
110
|
-
- DM `
|
|
110
|
+
- DM `:ConversationArchive` re-ingest follows the conversation-archive cursor model: same `conversationIdentity` → delta-append. No `--rebuild` is ever issued autonomously.
|
|
111
111
|
- Person `xHandle` writes are `ON CREATE SET` — re-import never overwrites operator edits.
|
|
112
112
|
|
|
113
113
|
## Wrapper-grammar defence
|
|
@@ -117,7 +117,7 @@ Every `.js` shim read by this skill is gated through the wrapper regex documente
|
|
|
117
117
|
## What this skill does not do
|
|
118
118
|
|
|
119
119
|
- **Per-thread KDs.** One archive = one tweet-stream KD. Thread boundaries are section boundaries the classifier owns, not graph objects.
|
|
120
|
-
- **Bespoke labels.** No `:Post`, `:Tweet`, `:DirectMessage`, `:DMThread`, `:Attachment`. Everything maps to the existing `:KnowledgeDocument` + `
|
|
120
|
+
- **Bespoke labels.** No `:Post`, `:Tweet`, `:DirectMessage`, `:DMThread`, `:Attachment`. Everything maps to the existing `:KnowledgeDocument` + `:ConversationArchive` + `:ImageObject` shapes.
|
|
121
121
|
- **Tweet-level typed edges.** `:REPLIES_TO` / `:QUOTES` as graph edges off individual tweets are rejected; document-level `REPLIED_TO` / `QUOTED` from the KD to each `:Person` covers the same traversals at the right granularity. The Task 305 typed-edge pass enumerates the new KD and writes any further `COMMITTED_TO` / `MENTIONS` / `REFERENCES` edges from in-body references.
|
|
122
122
|
- **Retweets-without-comment.** Not persisted reliably in X archives; dropped at parse.
|
|
123
123
|
- **Live X API.** Archive-only.
|
|
@@ -229,15 +229,15 @@ cat > "$ACCOUNT_SETTINGS" << SETTINGS_EOF
|
|
|
229
229
|
"UserPromptSubmit": [
|
|
230
230
|
{
|
|
231
231
|
"hooks": [
|
|
232
|
-
{ "type": "command", "command": "bash $HOOKS_PATH/archive-ingest-surface-gate.sh" }
|
|
232
|
+
{ "type": "command", "command": "bash $HOOKS_PATH/archive-ingest-surface-gate.sh" },
|
|
233
|
+
{ "type": "command", "command": "bash $HOOKS_PATH/pre-turn-graph-pass.sh" }
|
|
233
234
|
]
|
|
234
235
|
}
|
|
235
236
|
],
|
|
236
237
|
"Stop": [
|
|
237
238
|
{
|
|
238
239
|
"hooks": [
|
|
239
|
-
{ "type": "command", "command": "bash $HOOKS_PATH/session-end-retrospective.sh" }
|
|
240
|
-
{ "type": "command", "command": "bash $HOOKS_PATH/post-turn-graph-pass.sh" }
|
|
240
|
+
{ "type": "command", "command": "bash $HOOKS_PATH/session-end-retrospective.sh" }
|
|
241
241
|
]
|
|
242
242
|
}
|
|
243
243
|
]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAI3B,OAAO,EAYL,KAAK,SAAS,EAEf,MAAM,kBAAkB,CAAA;AAYzB,OAAO,KAAK,EAAE,SAAS,EAAc,MAAM,iBAAiB,CAAA;AAE5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAwB9E;4CAC4C;AAC5C,wBAAgB,+BAA+B,IAAI,IAAI,CAEtD;AAwED,eAAO,MAAM,kBAAkB,QAA2B,CAAA;AAI1D,MAAM,WAAW,QAAS,SAAQ,IAAI,CAAC,SAAS,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC7E,OAAO,EAAE,SAAS,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,MAAM,CAAA;IACzB,kBAAkB,EAAE,WAAW,CAAA;IAC/B,eAAe,EAAE,aAAa,CAAA;IAC9B;kFAC8E;IAC9E,cAAc,EAAE,cAAc,CAAA;CAC/B;AA+ID;;;kEAGkE;AAClE,MAAM,MAAM,OAAO,GAAG,IAAI,GAAG;IAC3B,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACpD;;;+CAG2C;IAC3C,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAChD,CAAA;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAI3B,OAAO,EAYL,KAAK,SAAS,EAEf,MAAM,kBAAkB,CAAA;AAYzB,OAAO,KAAK,EAAE,SAAS,EAAc,MAAM,iBAAiB,CAAA;AAE5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAwB9E;4CAC4C;AAC5C,wBAAgB,+BAA+B,IAAI,IAAI,CAEtD;AAwED,eAAO,MAAM,kBAAkB,QAA2B,CAAA;AAI1D,MAAM,WAAW,QAAS,SAAQ,IAAI,CAAC,SAAS,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC7E,OAAO,EAAE,SAAS,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,MAAM,CAAA;IACzB,kBAAkB,EAAE,WAAW,CAAA;IAC/B,eAAe,EAAE,aAAa,CAAA;IAC9B;kFAC8E;IAC9E,cAAc,EAAE,cAAc,CAAA;CAC/B;AA+ID;;;kEAGkE;AAClE,MAAM,MAAM,OAAO,GAAG,IAAI,GAAG;IAC3B,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACpD;;;+CAG2C;IAC3C,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAChD,CAAA;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CA41CpD"}
|