@rubytech/create-maxy-code 0.1.159 → 0.1.163
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-search/src/__tests__/fulltext-coverage.test.ts +48 -17
- package/payload/platform/neo4j/schema.cypher +59 -36
- package/payload/platform/plugins/.claude-plugin/marketplace.json +5 -0
- package/payload/platform/plugins/admin/hooks/__tests__/per-turn-graph-pass-gate.test.sh +29 -3
- package/payload/platform/plugins/admin/hooks/archive-ingest-surface-gate.sh +2 -2
- package/payload/platform/plugins/admin/hooks/per-turn-graph-pass-gate.sh +11 -6
- package/payload/platform/plugins/admin/skills/business-profile/SKILL.md +1 -1
- package/payload/platform/plugins/docs/references/plugins-guide.md +3 -2
- package/payload/platform/plugins/email/.claude-plugin/plugin.json +1 -1
- package/payload/platform/plugins/email/PLUGIN.md +5 -1
- package/payload/platform/plugins/email/mcp/dist/index.js +25 -0
- package/payload/platform/plugins/email/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/lib/conversation-archive-dispatch.d.ts +8 -0
- package/payload/platform/plugins/email/mcp/dist/lib/conversation-archive-dispatch.d.ts.map +1 -0
- package/payload/platform/plugins/email/mcp/dist/lib/conversation-archive-dispatch.js +177 -0
- package/payload/platform/plugins/email/mcp/dist/lib/conversation-archive-dispatch.js.map +1 -0
- package/payload/platform/plugins/email/mcp/dist/lib/graph.d.ts +6 -54
- package/payload/platform/plugins/email/mcp/dist/lib/graph.d.ts.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/lib/graph.js +12 -300
- package/payload/platform/plugins/email/mcp/dist/lib/graph.js.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/tools/email-classify.d.ts +6 -0
- package/payload/platform/plugins/email/mcp/dist/tools/email-classify.d.ts.map +1 -0
- package/payload/platform/plugins/email/mcp/dist/tools/email-classify.js +89 -0
- package/payload/platform/plugins/email/mcp/dist/tools/email-classify.js.map +1 -0
- package/payload/platform/plugins/email/mcp/dist/tools/email-ingest.d.ts.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/tools/email-ingest.js +11 -6
- package/payload/platform/plugins/email/mcp/dist/tools/email-ingest.js.map +1 -1
- package/payload/platform/plugins/linkedin-import/skills/linkedin-import/SKILL.md +10 -37
- package/payload/platform/plugins/linkedin-import/skills/linkedin-import/references/connections.md +1 -0
- package/payload/platform/plugins/memory/.claude-plugin/plugin.json +1 -1
- package/payload/platform/plugins/memory/PLUGIN.md +10 -1
- package/payload/platform/plugins/memory/bin/conversation-archive-ingest.mjs +139 -439
- package/payload/platform/plugins/memory/bin/conversation-archive-ingest.sh +15 -47
- package/payload/platform/plugins/memory/mcp/dist/index.js +168 -29
- 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.js +43 -27
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/compiled-truth-revision.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/label-delete-gate.test.d.ts +2 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/label-delete-gate.test.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/label-delete-gate.test.js +62 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/label-delete-gate.test.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-cypher-drift.test.js +5 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-cypher-drift.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/typed-edge-schema.test.js +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/typed-edge-schema.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-revision.d.ts +42 -25
- package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-revision.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-revision.js +23 -17
- package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-revision.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/email.d.ts +3 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/email.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/email.js +61 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/email.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/index.d.ts +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/index.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/index.js +3 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/index.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/types.d.ts +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/types.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/types.js +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/types.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/derive-keys.d.ts +2 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/derive-keys.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/derive-keys.js +9 -3
- package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/derive-keys.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/kd-classify-gate.d.ts +41 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/kd-classify-gate.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/kd-classify-gate.js +71 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/kd-classify-gate.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/label-delete-gate.d.ts +18 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/label-delete-gate.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/label-delete-gate.js +31 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/label-delete-gate.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights.test.d.ts +5 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights.test.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights.test.js +162 -78
- 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__/conversation-archive-enrich-rejection.test.js +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-enrich-rejection.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-normalisers-source-agnosticism.test.js +2 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-normalisers-source-agnosticism.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-compiled-truth-history.test.js +2 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-compiled-truth-history.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-delete-emit.test.js +6 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-delete-emit.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-delete-reserved-label.test.d.ts +2 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-delete-reserved-label.test.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-delete-reserved-label.test.js +141 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-delete-reserved-label.test.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-empty-trash-reserved-label.test.d.ts +2 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-empty-trash-reserved-label.test.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-empty-trash-reserved-label.test.js +86 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-empty-trash-reserved-label.test.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.d.ts +33 -34
- package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.js +94 -273
- package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-list-chunks.d.ts +43 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-list-chunks.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-list-chunks.js +96 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-list-chunks.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/kd-classify.d.ts +6 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/kd-classify.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/kd-classify.js +73 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/kd-classify.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-archive-write.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-archive-write.js +0 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-archive-write.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-compiled-truth-history.d.ts +6 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-compiled-truth-history.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-compiled-truth-history.js +2 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-compiled-truth-history.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-delete.d.ts +8 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-delete.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-delete.js +40 -5
- 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 +7 -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 +17 -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.js +11 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-node-exists.d.ts +28 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-node-exists.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-node-exists.js +46 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-node-exists.js.map +1 -0
- 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 +26 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-update.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/vitest.config.ts +5 -4
- package/payload/platform/plugins/memory/references/schema-base.md +4 -6
- package/payload/platform/plugins/memory/skills/conversation-archive/SKILL.md +100 -116
- package/payload/platform/plugins/memory/skills/conversation-archive-enrich/SKILL.md +74 -24
- package/payload/platform/plugins/notion-import/skills/notion-import/SKILL.md +1 -1
- package/payload/platform/plugins/obsidian-import/skills/obsidian-import/SKILL.md +1 -1
- package/payload/platform/plugins/substack-import/.claude-plugin/plugin.json +8 -0
- package/payload/platform/plugins/substack-import/PLUGIN.md +34 -0
- package/payload/platform/plugins/substack-import/skills/substack-import/SKILL.md +182 -0
- package/payload/platform/plugins/substack-import/skills/substack-import/references/archive-shape.md +68 -0
- package/payload/platform/plugins/substack-import/skills/substack-import/references/attachments.md +72 -0
- package/payload/platform/plugins/substack-import/skills/substack-import/references/engagement.md +61 -0
- package/payload/platform/plugins/substack-import/skills/substack-import/references/posts.md +80 -0
- package/payload/platform/plugins/substack-import/skills/substack-import/references/subscribers.md +74 -0
- package/payload/platform/plugins/whatsapp/PLUGIN.md +1 -1
- package/payload/platform/plugins/whatsapp/references/channels-whatsapp.md +3 -4
- package/payload/platform/plugins/x-import/skills/x-import/SKILL.md +1 -1
- package/payload/platform/templates/specialists/agents/archive-ingest-operator.md +45 -0
- package/payload/platform/templates/specialists/agents/database-operator.md +5 -17
- package/payload/platform/templates/specialists/agents/librarian.md +1 -1
package/package.json
CHANGED
|
@@ -46,14 +46,45 @@ const LABELS_PATH = resolve(__dirname, "../../../graph-style/src/index.ts");
|
|
|
46
46
|
* carry no searchable textual content. The doctrine test allows these to be
|
|
47
47
|
* absent from the fulltext index union without failing.
|
|
48
48
|
*
|
|
49
|
-
* - `Trashed`
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
* - `GraphPreference
|
|
53
|
-
*
|
|
54
|
-
*
|
|
49
|
+
* - `Trashed` — soft-delete flag label; nodes carrying it are
|
|
50
|
+
* already excluded from every search via
|
|
51
|
+
* `notTrashed()` in the lib.
|
|
52
|
+
* - `GraphPreference` — per-(accountId, userId) UI metadata for /graph;
|
|
53
|
+
* carries no textual content, never operator-visible
|
|
54
|
+
* as a search hit.
|
|
55
|
+
* - `Email` — legacy label retired by Task 321; email threads
|
|
56
|
+
* now land on `:KnowledgeDocument {source:'email'}`.
|
|
57
|
+
* The colour entry survives for legacy nodes; no
|
|
58
|
+
* new :Email writes occur.
|
|
59
|
+
* - `Session`, `AnonVisitor`, `PageView`, `Click`, `ScrollMilestone`
|
|
60
|
+
* — visitor analytics nodes (Task 357). Identity
|
|
61
|
+
* or event roll-ups; no operator-meaningful free
|
|
62
|
+
* text. The writer (`visitor-event.ts`) sets
|
|
63
|
+
* only ids, timestamps, and url fields.
|
|
64
|
+
* - `Recommendation` — visitor-graph label declared in schema but no
|
|
65
|
+
* writer in the platform; no documented text.
|
|
66
|
+
* - `Component` — admin-resume rehydration only (legacy pre-066
|
|
67
|
+
* admin surface); body is a JSON-encoded
|
|
68
|
+
* component payload, not free-text.
|
|
69
|
+
* - `CloudflareTunnel`, `CloudflareHostname`
|
|
70
|
+
* — legacy graph projections of cloudflared state.
|
|
71
|
+
* Task 288 retired the writer; nodes carry
|
|
72
|
+
* connector/hostname identifiers only.
|
|
55
73
|
*/
|
|
56
|
-
const EXCLUDED_FROM_INDEX = new Set([
|
|
74
|
+
const EXCLUDED_FROM_INDEX = new Set([
|
|
75
|
+
"Trashed",
|
|
76
|
+
"GraphPreference",
|
|
77
|
+
"Email",
|
|
78
|
+
"Session",
|
|
79
|
+
"AnonVisitor",
|
|
80
|
+
"PageView",
|
|
81
|
+
"Click",
|
|
82
|
+
"ScrollMilestone",
|
|
83
|
+
"Recommendation",
|
|
84
|
+
"Component",
|
|
85
|
+
"CloudflareTunnel",
|
|
86
|
+
"CloudflareHostname",
|
|
87
|
+
]);
|
|
57
88
|
|
|
58
89
|
/**
|
|
59
90
|
* Canonical text-property list — every property the platform's writers
|
|
@@ -238,7 +269,9 @@ describe("entity_search fulltext indexes — universal-coverage + Task 416 field
|
|
|
238
269
|
// otherwise it keeps populating from writes and consumes disk for no
|
|
239
270
|
// reader.
|
|
240
271
|
it("schema drops the single `entity_search` index that the split replaces", () => {
|
|
241
|
-
|
|
272
|
+
// Neo4j's `DROP INDEX <name> IF EXISTS` is universal across index types
|
|
273
|
+
// (fulltext, vector, btree); there is no `DROP FULLTEXT INDEX` variant.
|
|
274
|
+
expect(schemaCypher).toMatch(/DROP\s+INDEX\s+entity_search\s+IF\s+EXISTS\b/);
|
|
242
275
|
});
|
|
243
276
|
|
|
244
277
|
for (const [label, decl, expectedField, forbiddenField] of [
|
|
@@ -250,21 +283,19 @@ describe("entity_search fulltext indexes — universal-coverage + Task 416 field
|
|
|
250
283
|
expect(decl.name).toBe(label === "admin" ? FULLTEXT_INDEX_ADMIN : FULLTEXT_INDEX_PUBLIC);
|
|
251
284
|
});
|
|
252
285
|
|
|
253
|
-
//
|
|
254
|
-
//
|
|
255
|
-
//
|
|
256
|
-
//
|
|
257
|
-
//
|
|
258
|
-
|
|
259
|
-
// here so they re-activate the moment 421 closes the drift.
|
|
260
|
-
it.skip("labels ⊇ Object.keys(GRAPH_LABEL_COLOURS) − {excluded} (Task 421)", () => {
|
|
286
|
+
// Task 421 closed the pre-existing schema drift: the index union now
|
|
287
|
+
// covers every operator-meaningful label registered in
|
|
288
|
+
// GRAPH_LABEL_COLOURS and every schema-declared label, with the
|
|
289
|
+
// exclusion list above enumerating the labels that legitimately
|
|
290
|
+
// carry no searchable text.
|
|
291
|
+
it("labels ⊇ Object.keys(GRAPH_LABEL_COLOURS) − {excluded} (Task 421)", () => {
|
|
261
292
|
const missing = [...colourLabels]
|
|
262
293
|
.filter((l) => !EXCLUDED_FROM_INDEX.has(l))
|
|
263
294
|
.filter((l) => !decl.labels.has(l));
|
|
264
295
|
expect(missing).toEqual([]);
|
|
265
296
|
});
|
|
266
297
|
|
|
267
|
-
it
|
|
298
|
+
it("labels ⊇ every schema-declared label − {excluded} (Task 421)", () => {
|
|
268
299
|
const missing = [...schemaDeclaredLabels]
|
|
269
300
|
.filter((l) => !EXCLUDED_FROM_INDEX.has(l))
|
|
270
301
|
.filter((l) => !decl.labels.has(l));
|
|
@@ -219,9 +219,9 @@ OPTIONS {
|
|
|
219
219
|
// shared label — a WhatsApp export is a transcript, not a knowledge
|
|
220
220
|
// document. Task 397 split the conversation path off into its own
|
|
221
221
|
// `:ConversationArchive` parent; `:KnowledgeDocument` continues to mean
|
|
222
|
-
// narrative documents only (PDF/web/Obsidian/Notion/contract attachment
|
|
223
|
-
//
|
|
224
|
-
//
|
|
222
|
+
// narrative documents only (PDF/web/Obsidian/Notion/contract attachment).
|
|
223
|
+
// Email threads moved onto `:ConversationArchive {source:'email'}` in
|
|
224
|
+
// Task 426.
|
|
225
225
|
//
|
|
226
226
|
// KnowledgeDocument -[HAS_SECTION]-> Section
|
|
227
227
|
// KnowledgeDocument -[PARTY]-> (Person|Organization) (contracts only)
|
|
@@ -233,9 +233,9 @@ OPTIONS {
|
|
|
233
233
|
//
|
|
234
234
|
// Two writer paths (see platform/plugins/memory/mcp/src/tools/memory-ingest.ts):
|
|
235
235
|
// - Document path — MERGE :KnowledgeDocument keyed on `attachmentId`
|
|
236
|
-
// (URL, file path, obsidian page, contract attachment,
|
|
237
|
-
//
|
|
238
|
-
//
|
|
236
|
+
// (URL, file path, obsidian page, contract attachment, etc.).
|
|
237
|
+
// First-ingest re-writes sections per run; anchor edges to subject
|
|
238
|
+
// nodes; orphan-candidate related entities.
|
|
239
239
|
// - Conversation path — MERGE :ConversationArchive keyed on
|
|
240
240
|
// `conversationIdentity` (= sha256(accountId + ":" +
|
|
241
241
|
// sortedParticipantElementIds)). Source-agnostic across WhatsApp,
|
|
@@ -365,17 +365,32 @@ OPTIONS {
|
|
|
365
365
|
//
|
|
366
366
|
// Label union — every operator-meaningful label:
|
|
367
367
|
// - Business identity: LocalBusiness, Service, PriceSpecification, OpeningHoursSpecification, Organization
|
|
368
|
+
// - Estate-agent ontology (Task 358): Listing, Property, Viewing, Offer, PostalAddress
|
|
368
369
|
// - People: Person, UserProfile, Preference, AdminUser, AccessGrant
|
|
369
370
|
// - Knowledge: KnowledgeDocument, ConversationArchive (Task 397), Section, Chunk (legacy),
|
|
370
371
|
// DigitalDocument, CreativeWork, Question, FAQPage, DefinedTerm, Review, ImageObject
|
|
371
372
|
// - Conversational: Conversation, AdminConversation, PublicConversation, Message,
|
|
372
373
|
// UserMessage, AssistantMessage, ToolCall
|
|
373
|
-
// - Tasks/projects/events: Task, Project, Event
|
|
374
|
+
// - Tasks/projects/events: Task, Project, Event, Meeting, Attachment
|
|
374
375
|
// - Workflows: Workflow, WorkflowStep, WorkflowRun, StepResult
|
|
375
376
|
// - Email: EmailAccount (config node only — email threads land on
|
|
376
|
-
// :
|
|
377
|
+
// :ConversationArchive {source:'email'} since Task 426)
|
|
377
378
|
// - CV/career sublabels: Position, Credential
|
|
378
379
|
// - Public agents: Agent (projection of file-based public agents)
|
|
380
|
+
// - Ideas + concepts: Idea, Concept (admin-twin compiledTruth subjects)
|
|
381
|
+
// - Voice mirror (Task 356): VoiceProfile, VoiceEdit
|
|
382
|
+
// - Authored content / audit: SocialPost, AEOAudit, Page
|
|
383
|
+
// - Compiled truth (Task 306/391/392): TimelineEvent, CompiledTruthRevision,
|
|
384
|
+
// Report, OrphanCandidate, CitationProposal
|
|
385
|
+
//
|
|
386
|
+
// Excluded by design (carry no operator-meaningful free text, asserted by
|
|
387
|
+
// the doctrine test's EXCLUDED_FROM_INDEX set):
|
|
388
|
+
// - Trashed, GraphPreference — system flags / UI metadata
|
|
389
|
+
// - Email (legacy, retired Task 321; further retired Task 426) — replaced by :ConversationArchive {source:'email'}
|
|
390
|
+
// - Session, AnonVisitor, PageView, Click,
|
|
391
|
+
// ScrollMilestone, Recommendation — visitor analytics (Task 357)
|
|
392
|
+
// - Component — admin-resume rehydration JSON
|
|
393
|
+
// - CloudflareTunnel, CloudflareHostname — legacy projection (Task 288)
|
|
379
394
|
//
|
|
380
395
|
// Property union — every textual property the schema's writers assign:
|
|
381
396
|
// - Generic: name, title, summary, body, content, text, description, headline, abstract,
|
|
@@ -417,13 +432,16 @@ DROP INDEX entity_search_public IF EXISTS;
|
|
|
417
432
|
|
|
418
433
|
CREATE FULLTEXT INDEX entity_search_admin IF NOT EXISTS
|
|
419
434
|
FOR (n:LocalBusiness|Service|PriceSpecification|OpeningHoursSpecification|Organization
|
|
435
|
+
|Listing|Property|Viewing|Offer|PostalAddress
|
|
420
436
|
|Person|UserProfile|Preference|AdminUser|AccessGrant
|
|
421
437
|
|KnowledgeDocument|ConversationArchive|Section|Chunk|DigitalDocument|CreativeWork|Question|FAQPage|DefinedTerm|Review|ImageObject
|
|
422
438
|
|Conversation|AdminConversation|PublicConversation|Message|UserMessage|AssistantMessage|ToolCall
|
|
423
|
-
|Task|Project|Event
|
|
439
|
+
|Task|Project|Event|Meeting|Attachment
|
|
424
440
|
|Workflow|WorkflowStep|WorkflowRun|StepResult
|
|
425
441
|
|EmailAccount
|
|
426
|
-
|Position|Credential|Agent|Idea
|
|
442
|
+
|Position|Credential|Agent|Idea|Concept
|
|
443
|
+
|VoiceProfile|VoiceEdit|SocialPost|AEOAudit|Page
|
|
444
|
+
|TimelineEvent|CompiledTruthRevision|Report|OrphanCandidate|CitationProposal)
|
|
427
445
|
ON EACH [n.name, n.firstName, n.lastName, n.givenName, n.familyName,
|
|
428
446
|
n.title, n.currentTitle, n.summary, n.body, n.content, n.text, n.description, n.headline, n.abstract,
|
|
429
447
|
n.email, n.note, n.label, n.value, n.message, n.preview, n.tagline,
|
|
@@ -434,13 +452,16 @@ ON EACH [n.name, n.firstName, n.lastName, n.givenName, n.familyName,
|
|
|
434
452
|
|
|
435
453
|
CREATE FULLTEXT INDEX entity_search_public IF NOT EXISTS
|
|
436
454
|
FOR (n:LocalBusiness|Service|PriceSpecification|OpeningHoursSpecification|Organization
|
|
455
|
+
|Listing|Property|Viewing|Offer|PostalAddress
|
|
437
456
|
|Person|UserProfile|Preference|AdminUser|AccessGrant
|
|
438
457
|
|KnowledgeDocument|ConversationArchive|Section|Chunk|DigitalDocument|CreativeWork|Question|FAQPage|DefinedTerm|Review|ImageObject
|
|
439
458
|
|Conversation|AdminConversation|PublicConversation|Message|UserMessage|AssistantMessage|ToolCall
|
|
440
|
-
|Task|Project|Event
|
|
459
|
+
|Task|Project|Event|Meeting|Attachment
|
|
441
460
|
|Workflow|WorkflowStep|WorkflowRun|StepResult
|
|
442
461
|
|EmailAccount
|
|
443
|
-
|Position|Credential|Agent|Idea
|
|
462
|
+
|Position|Credential|Agent|Idea|Concept
|
|
463
|
+
|VoiceProfile|VoiceEdit|SocialPost|AEOAudit|Page
|
|
464
|
+
|TimelineEvent|CompiledTruthRevision|Report|OrphanCandidate|CitationProposal)
|
|
444
465
|
ON EACH [n.name, n.firstName, n.lastName, n.givenName, n.familyName,
|
|
445
466
|
n.title, n.currentTitle, n.summary, n.body, n.content, n.text, n.description, n.headline, n.abstract,
|
|
446
467
|
n.email, n.note, n.label, n.value, n.message, n.preview, n.tagline,
|
|
@@ -814,25 +835,19 @@ OPTIONS {
|
|
|
814
835
|
// ----------------------------------------------------------
|
|
815
836
|
|
|
816
837
|
// ----------------------------------------------------------
|
|
817
|
-
// Email threads — :
|
|
838
|
+
// Email threads — :ConversationArchive {source:'email'}
|
|
818
839
|
//
|
|
819
|
-
// Task
|
|
820
|
-
//
|
|
821
|
-
//
|
|
822
|
-
//
|
|
823
|
-
//
|
|
824
|
-
//
|
|
825
|
-
// email-ingest tool writes them via storeEmailMessage in
|
|
826
|
-
// plugins/email/mcp/src/lib/graph.ts.
|
|
840
|
+
// Task 426 retargeted email threads off :KnowledgeDocument onto the
|
|
841
|
+
// conversation-archive pipeline. The email plugin's email-ingest tool
|
|
842
|
+
// dispatches `conversation-archive-ingest.sh --source email` once per
|
|
843
|
+
// thread; each invocation MERGEs one :ConversationArchive
|
|
844
|
+
// (conversationIdentity-keyed, source-scoped) and writes :Section
|
|
845
|
+
// chunks via :HAS_SECTION + :NEXT.
|
|
827
846
|
//
|
|
828
|
-
// No
|
|
829
|
-
//
|
|
830
|
-
//
|
|
847
|
+
// No email-specific constraints or indexes are declared. The general
|
|
848
|
+
// ConversationArchive constraints + indexes (above) cover uniqueness,
|
|
849
|
+
// accountId lookup, and Section embedding search. Email-specific
|
|
831
850
|
// filtering (source='email') uses the generic accountId + source path.
|
|
832
|
-
//
|
|
833
|
-
// Relationships:
|
|
834
|
-
// (KnowledgeDocument {source:'email'})-[:RECEIVED_BY]->(EmailAccount)
|
|
835
|
-
// (KnowledgeDocument {source:'email'})-[:FROM|:TO|:CC]->(Person)
|
|
836
851
|
// ----------------------------------------------------------
|
|
837
852
|
|
|
838
853
|
// ----------------------------------------------------------
|
|
@@ -1275,9 +1290,9 @@ FOR (a:PostalAddress) ON (a.postalCode);
|
|
|
1275
1290
|
// the next distillation.
|
|
1276
1291
|
//
|
|
1277
1292
|
// `authorshipMode` is an enum property on content-bearing labels
|
|
1278
|
-
// (`:KnowledgeDocument` (
|
|
1279
|
-
// `source:'email'`
|
|
1280
|
-
//
|
|
1293
|
+
// (`:KnowledgeDocument`, `:ConversationArchive` (Task 397 — every chat
|
|
1294
|
+
// transcript, including email threads under `source:'email'` post-Task-426),
|
|
1295
|
+
// `:Message`, `:SocialPost`) with
|
|
1281
1296
|
// values `human-only | human-led-agent-assisted | agent-led-human-reviewed
|
|
1282
1297
|
// | agent-only | unknown`. Legacy nodes default to `unknown` until
|
|
1283
1298
|
// reviewed via the voice-mirror backfill flow. The index lets the
|
|
@@ -1551,9 +1566,10 @@ CREATE INDEX local_business_compiled_truth_public_updated_at IF NOT EXISTS
|
|
|
1551
1566
|
FOR (b:LocalBusiness) ON (b.compiledTruthPublicUpdatedAt);
|
|
1552
1567
|
|
|
1553
1568
|
// ----------------------------------------------------------
|
|
1554
|
-
// :CompiledTruthRevision (Task 391
|
|
1555
|
-
//
|
|
1556
|
-
//
|
|
1569
|
+
// :CompiledTruthRevision (Task 391, twin discriminator added in
|
|
1570
|
+
// Task 436) — audit history of every `compiledTruth` /
|
|
1571
|
+
// `compiledTruthPublic` value an entity has ever held. Captured in
|
|
1572
|
+
// the same transaction as the writer's SET so revision history can
|
|
1557
1573
|
// never desync from the live property. Pruned by dream-cycle
|
|
1558
1574
|
// phase 5 (keep newest 20 per entity) — never written-and-pruned
|
|
1559
1575
|
// in the same TX as the main rewrite.
|
|
@@ -1568,9 +1584,13 @@ FOR (b:LocalBusiness) ON (b.compiledTruthPublicUpdatedAt);
|
|
|
1568
1584
|
// MERGE (e)-[:HAS_REVISION]->(r:CompiledTruthRevision {revisionId: $id})
|
|
1569
1585
|
// Never label-only MERGE on :CompiledTruthRevision.
|
|
1570
1586
|
//
|
|
1587
|
+
// `twin` enum: 'compiledTruth' (private/admin twin) or
|
|
1588
|
+
// 'compiledTruthPublic' (public twin). One revision row per twin
|
|
1589
|
+
// per write; the specialist calls `memory-update` once per twin.
|
|
1590
|
+
//
|
|
1571
1591
|
// `source` enum (exact, no catch-all):
|
|
1572
|
-
// 'rewriter' — compiled-truth-rewriter
|
|
1573
|
-
// 'operator' — operator overrode
|
|
1592
|
+
// 'rewriter' — compiled-truth-rewriter specialist wrote the truth.
|
|
1593
|
+
// 'operator' — operator hint overrode the rewriter for this twin.
|
|
1574
1594
|
// ----------------------------------------------------------
|
|
1575
1595
|
|
|
1576
1596
|
CREATE CONSTRAINT compiled_truth_revision_id_unique IF NOT EXISTS
|
|
@@ -1582,6 +1602,9 @@ FOR (r:CompiledTruthRevision) ON (r.accountId);
|
|
|
1582
1602
|
CREATE INDEX compiled_truth_revision_written_at IF NOT EXISTS
|
|
1583
1603
|
FOR (r:CompiledTruthRevision) ON (r.writtenAt);
|
|
1584
1604
|
|
|
1605
|
+
CREATE INDEX compiled_truth_revision_twin IF NOT EXISTS
|
|
1606
|
+
FOR (r:CompiledTruthRevision) ON (r.twin);
|
|
1607
|
+
|
|
1585
1608
|
// ----------------------------------------------------------
|
|
1586
1609
|
// :Report node — durable, keyword-routed output of admin
|
|
1587
1610
|
// workflows (daily briefing, dream cycle, ad-hoc analyses).
|
|
@@ -288,7 +288,7 @@ ENV_DISPATCH=$(envelope_for "$OP_ID" "$TR_DISPATCH")
|
|
|
288
288
|
run_hook "admin" "" "$ENV_DISPATCH"
|
|
289
289
|
[[ "$HOOK_RC" -eq 0 ]] || fail "case-7 expected rc=0, got $HOOK_RC"
|
|
290
290
|
[[ -z "$HOOK_STDERR" ]] || fail "case-7 stderr must be empty on release"
|
|
291
|
-
if ingest_lines | grep -qE "^gate-released sessionId=${OP_ID} via=dispatch
|
|
291
|
+
if ingest_lines | grep -qE "^gate-released sessionId=${OP_ID} via=dispatch( |$)"; then
|
|
292
292
|
pass "case-7 Task(database-operator) after latest user → gate-released via=dispatch"
|
|
293
293
|
else
|
|
294
294
|
fail "case-7 expected gate-released via=dispatch, got: $(ingest_lines)"
|
|
@@ -308,7 +308,7 @@ ENV_SKIP=$(envelope_for "$OP_ID" "$TR_SKIP")
|
|
|
308
308
|
run_hook "admin" "" "$ENV_SKIP"
|
|
309
309
|
[[ "$HOOK_RC" -eq 0 ]] || fail "case-8 expected rc=0, got $HOOK_RC"
|
|
310
310
|
[[ -z "$HOOK_STDERR" ]] || fail "case-8 stderr must be empty on release"
|
|
311
|
-
if ingest_lines | grep -qE "^gate-released sessionId=${OP_ID} via=skip-sentinel$"; then
|
|
311
|
+
if ingest_lines | grep -qE "^gate-released sessionId=${OP_ID} via=skip-sentinel tool=mcp__admin__pre-turn-graph-pass-skip$"; then
|
|
312
312
|
pass "case-8 skip-sentinel after latest user → gate-released via=skip-sentinel"
|
|
313
313
|
else
|
|
314
314
|
fail "case-8 expected gate-released via=skip-sentinel, got: $(ingest_lines)"
|
|
@@ -349,12 +349,38 @@ ENV_REENTRY=$(envelope_for "$OP_ID" "$TR_REENTRY")
|
|
|
349
349
|
: > "$REQ_LOG"
|
|
350
350
|
run_hook "admin" "" "$ENV_REENTRY"
|
|
351
351
|
[[ "$HOOK_RC" -eq 0 ]] || fail "case-10 expected rc=0, got $HOOK_RC"
|
|
352
|
-
if ingest_lines | grep -qE "^gate-released sessionId=${OP_ID} via=dispatch
|
|
352
|
+
if ingest_lines | grep -qE "^gate-released sessionId=${OP_ID} via=dispatch( |$)"; then
|
|
353
353
|
pass "case-10 second Stop after dispatch still releases (no loop)"
|
|
354
354
|
else
|
|
355
355
|
fail "case-10 expected gate-released via=dispatch, got: $(ingest_lines)"
|
|
356
356
|
fi
|
|
357
357
|
|
|
358
|
+
# ---------------------------------------------------------------------------
|
|
359
|
+
# Case 11: namespace alias — admin called the skip MCP tool via the Claude
|
|
360
|
+
# Code plugin-system namespace (`mcp__plugin_admin_admin__…`) instead of the
|
|
361
|
+
# bare `mcp__admin__…`. Both forms must release the gate. Regression guard
|
|
362
|
+
# for the Task 440 namespace-match bug observed in session
|
|
363
|
+
# 2cfe467c-743d-4386-ac04-3eec8c89d8c9, where the agent looped on Stop
|
|
364
|
+
# because the gate's literal `mcp__admin__pre-turn-graph-pass-skip` pattern
|
|
365
|
+
# did not fullmatch the plugin-prefixed `tool_use.name` actually written
|
|
366
|
+
# to JSONL.
|
|
367
|
+
# ---------------------------------------------------------------------------
|
|
368
|
+
TR_NS=$(mktemp); TMPFILES+=("$TR_NS")
|
|
369
|
+
write_transcript "$TR_NS" \
|
|
370
|
+
"user|thanks|" \
|
|
371
|
+
"assistant|noted|tool_use:mcp__plugin_admin_admin__pre-turn-graph-pass-skip" \
|
|
372
|
+
"assistant|you're welcome|"
|
|
373
|
+
ENV_NS=$(envelope_for "$OP_ID" "$TR_NS")
|
|
374
|
+
: > "$REQ_LOG"
|
|
375
|
+
run_hook "admin" "" "$ENV_NS"
|
|
376
|
+
[[ "$HOOK_RC" -eq 0 ]] || fail "case-11 expected rc=0, got $HOOK_RC"
|
|
377
|
+
[[ -z "$HOOK_STDERR" ]] || fail "case-11 stderr must be empty on release"
|
|
378
|
+
if ingest_lines | grep -qE "^gate-released sessionId=${OP_ID} via=skip-sentinel tool=mcp__plugin_admin_admin__pre-turn-graph-pass-skip$"; then
|
|
379
|
+
pass "case-11 plugin-namespaced skip-sentinel → gate-released via=skip-sentinel"
|
|
380
|
+
else
|
|
381
|
+
fail "case-11 expected gate-released via=skip-sentinel under plugin namespace, got: $(ingest_lines)"
|
|
382
|
+
fi
|
|
383
|
+
|
|
358
384
|
# ---------------------------------------------------------------------------
|
|
359
385
|
echo
|
|
360
386
|
echo "per-turn-graph-pass-gate tests: $PASS passed, $FAIL failed"
|
|
@@ -154,7 +154,7 @@ fi
|
|
|
154
154
|
case "$TOOL_NAME" in
|
|
155
155
|
mcp__memory__whatsapp-export-parse|mcp__memory__whatsapp-export-insight-write|mcp__memory__whatsapp-export-insight-pass|mcp__memory__whatsapp-export-preview)
|
|
156
156
|
emit_decision "block" "denied-mcp-legacy" \
|
|
157
|
-
"Blocked: ${TOOL_NAME} is a retired path. generalised conversation-archive
|
|
157
|
+
"Blocked: ${TOOL_NAME} is a retired path. Invoke the generalised conversation-archive skill — 'bash platform/plugins/memory/bin/conversation-archive-ingest.sh <archive> --source whatsapp --participant-person-ids <csv> --scope <admin|public>' (owner derived from ACCOUNT_ID + USER_ID env). The script normalises, sessionizes, and emits prepared sessions; the dispatched specialist classifies each session in-turn and calls memory-ingest with conversationIdentity set (writes :ConversationArchive)."
|
|
158
158
|
;;
|
|
159
159
|
esac
|
|
160
160
|
|
|
@@ -186,7 +186,7 @@ if [ "$TOOL_NAME" = "mcp__memory__memory-archive-write" ]; then
|
|
|
186
186
|
ARCHIVE_TYPE=$(extract_tool_input_field archiveType)
|
|
187
187
|
if [ "$ARCHIVE_TYPE" = "whatsapp-export" ]; then
|
|
188
188
|
emit_decision "block" "denied-mcp-legacy archiveType=whatsapp-export" \
|
|
189
|
-
"Blocked: memory-archive-write with archiveType='whatsapp-export' is a retired path.
|
|
189
|
+
"Blocked: memory-archive-write with archiveType='whatsapp-export' is a retired path. Routes conversation transcripts through 'bash platform/plugins/memory/bin/conversation-archive-ingest.sh <archive> --source whatsapp --participant-person-ids <csv> --scope <admin|public>' (owner derived from ACCOUNT_ID + USER_ID env). Flat-dataset archiveTypes (linkedin-connections, …) flow through memory-archive-write unchanged."
|
|
190
190
|
fi
|
|
191
191
|
fi
|
|
192
192
|
|
|
@@ -58,10 +58,15 @@ agp_parse_stdin
|
|
|
58
58
|
agp_guard_role_specialist
|
|
59
59
|
agp_guard_transcript require-stdin
|
|
60
60
|
|
|
61
|
-
# Release alternation:
|
|
62
|
-
#
|
|
63
|
-
#
|
|
64
|
-
|
|
61
|
+
# Release alternation: any MCP-prefixed skip-sentinel name (the admin MCP
|
|
62
|
+
# server can surface as either `mcp__admin__…` when wired via .mcp.json or
|
|
63
|
+
# `mcp__plugin_admin_admin__…` when loaded via the Claude Code plugin
|
|
64
|
+
# system — both forms appear in JSONL `tool_use.name` and both release the
|
|
65
|
+
# gate), or a Task tool_use with `input.subagent_type=database-operator`
|
|
66
|
+
# (matched as the synthetic name `Task:database-operator` by the helper).
|
|
67
|
+
# Same defect class Task 417 fixed for the session-end retrospective gate,
|
|
68
|
+
# generalised here to cover the plugin-system namespace.
|
|
69
|
+
RELEASE_PATTERN='mcp__[a-z_]+__pre-turn-graph-pass-skip|Task:database-operator'
|
|
65
70
|
|
|
66
71
|
INSPECTION=$(agp_scan_post_user_toolnames "$RELEASE_PATTERN")
|
|
67
72
|
USER_PRESENT="${INSPECTION%% *}"
|
|
@@ -80,14 +85,14 @@ if [ -n "$MATCHED_NAME" ]; then
|
|
|
80
85
|
Task:database-operator)
|
|
81
86
|
VIA="dispatch"
|
|
82
87
|
;;
|
|
83
|
-
|
|
88
|
+
mcp__*__pre-turn-graph-pass-skip)
|
|
84
89
|
VIA="skip-sentinel"
|
|
85
90
|
;;
|
|
86
91
|
*)
|
|
87
92
|
VIA="unknown"
|
|
88
93
|
;;
|
|
89
94
|
esac
|
|
90
|
-
agp_emit_log "gate-released sessionId=${SESSION_ID} via=${VIA}"
|
|
95
|
+
agp_emit_log "gate-released sessionId=${SESSION_ID} via=${VIA} tool=${MATCHED_NAME}"
|
|
91
96
|
exit 0
|
|
92
97
|
fi
|
|
93
98
|
|
|
@@ -27,7 +27,7 @@ Adapt the order if the operator provides data in a different sequence — the in
|
|
|
27
27
|
## Constraints
|
|
28
28
|
|
|
29
29
|
- **Schema-first.** Before discussing a batch, load `memory/references/schema-base.md` via `plugin-read`. If `businessType` is known on the `LocalBusiness` node, also load the matching vertical schema. Confirm which schemas were loaded so the recorder uses the right property names.
|
|
30
|
-
- **
|
|
30
|
+
- **Existence-first, then read.** Before any claim about whether a `LocalBusiness` exists, call `memory-node-exists { label: "LocalBusiness" }`. Only `exists === false` is the first-run signal — an empty `memory-search` result is not, because a freshly seeded `LocalBusiness` with no name/description yet has nothing to score against either ranker. When `exists === true`, then use `memory-search` to read the existing `LocalBusiness` node and its related entities before asking the operator anything. Do not re-ask for data that is already in the graph — reference it and confirm it is still correct. Only on `exists === false` skip the search and proceed with the first-run path above.
|
|
31
31
|
- **Confirm before recording.** Present each batch of data back to the operator and get explicit confirmation. The recorder writes off the confirmed transcript; unconfirmed prose is not a record.
|
|
32
32
|
- **Exact property names.** Use Schema.org camelCase property names exactly as defined in the loaded schema reference. No synonyms, no abbreviations.
|
|
33
33
|
- **No placeholders.** Never propose empty strings, "TBD", or "unknown" as property values — they degrade search quality via poor embeddings. If a value is unknown, skip it.
|
|
@@ -41,8 +41,9 @@ These are enabled during onboarding and can be added or removed at any time. Som
|
|
|
41
41
|
| `notion-import` | Import a Notion workspace export (markdown + CSV) — pages, databases, hierarchy, attachments, schema-bounded relations, `@person` mentions account-filtered | Database operator |
|
|
42
42
|
| `obsidian-import` | Import an extracted Obsidian vault — pages map to `:KnowledgeDocument`, wikilinks resolve to intra-vault pages or existing entities, tags become `:DefinedTerm`, embedded images become `:DigitalDocument`. Two-phase tool (dry-run → operator disambiguation → commit). | Database operator |
|
|
43
43
|
| `x-import` | Import an X (Twitter) Basic Data Export — tweet stream renders as one chronological transcript and ingests as a single `:KnowledgeDocument` (`source='x'`); each DM `sessionId` ingests as one `:ConversationArchive` (`source='x-dm'`, keyed on `conversationIdentity`) via `conversation-archive-ingest.sh`. Mentions, replies, and quote-tweet authors resolve to `:Person` on lowercased `xHandle`; every handle and DM senderId confirms against existing nodes (no auto-create). Per-thread KD granularity and `:Post` / `:DirectMessage` labels are explicitly rejected. | Database operator |
|
|
44
|
-
| `
|
|
45
|
-
| `memory/skills/conversation-archive
|
|
44
|
+
| `substack-import` | Import a Substack "Export your data" archive — per-essay `:KnowledgeDocument {kind:'substack-post'}` via librarian/document-ingest with synthetic stable `attachmentId = "substack-post-${substackPostId}"` (survives Substack edits); one `:KnowledgeDocument {kind:'substack-subscriber-roster'}` per import run with `:MENTIONS {mentionContext:'substack-subscription', tier, totalOpens, totalClicks, lastOpenedAt, lastClickedAt, engagementWindowDays}` to each subscriber `:Person` MERGEd on `(accountId, email)`. Engagement aggregates parsed from `email_activity.csv` (or `subscriber_activity.csv` / `emails.csv`); overwrite-on-reimport. No new label, no new edge type, no new graph writer. Images attach via canonical `:HAS_ENCLOSURE` (or `:MENTIONS` fallback). Bulk-gate at >200 posts or >2000 subscribers. | Database operator |
|
|
45
|
+
| `memory/skills/conversation-archive` | Source-agnostic conversation transcript ingest. One skill for WhatsApp `_chat.txt`, Telegram, Signal, LinkedIn DMs, Zoom transcript, meeting minutes, iMessage, Slack, X DMs — `--source <enum>` selects the per-source normaliser. Single Bash entry — `bash platform/plugins/memory/bin/conversation-archive-ingest.sh <archive> --source <enum> --participant-person-ids <csv> --scope <admin\|public>` — runs normalise → operator-confirms owner + every distinct sender (owner derived from env via Cypher, no flag) → sessionize at the fixed 8h gap → emit one JSON line carrying prepared sessions (turn-attributed text + per-session cursor). The dispatched specialist iterates the sessions in-turn, produces a typed-section JSON chunking for each, and calls the `memory-ingest` MCP tool with `conversationIdentity` set (writes `:ConversationArchive`, source=<enum>) once per session — chunks + cursor advance commit atomically inside one Cypher transaction, so a kill mid-archive resumes from the next session on re-issue without re-classifying anything already written. Re-imports are delta-append. Auto-creating participants is forbidden — any sender outside the operator-confirmed closed set LOUD-FAILs with `parser-miss`. Distinct from the live `whatsapp` plugin (Baileys). | Database operator |
|
|
46
|
+
| `memory/skills/conversation-archive-enrich` | Phase 2 for any named `:ConversationArchive` — source-agnostic per-row insight derivation. Operator-triggered (never auto-fires on Phase 1 completion). Walks the parent's `:Section` chunks in pages via the read-only MCP tool `mcp__memory__conversation-archive-list-chunks`; the dispatched specialist reads each chunk in-turn and emits claims under the four-kind contract (`mention`, `task`, `preference`, `observed-relationship`); the skill hands those claims to `mcp__memory__conversation-archive-derive-insights` for per-kind cypher emission, then runs the per-row operator gate (`wire / skip / reject`). Idempotent on `(elementId(chunk), kind, contentHash)` — re-runs collapse identical claims. Confidence floor is a hedging-avoidance instruction the skill embeds in the specialist's per-chunk prompt, not a numeric post-filter; per Task 433 the LLM step runs in-turn from the dispatched specialist rather than as a server-side OAuth round-trip. | Database operator |
|
|
46
47
|
|
|
47
48
|
### Claude Official (marketplace)
|
|
48
49
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "email",
|
|
3
|
-
"description": "Email — dedicated email account. Retrieval: email-graph-query for stored email-thread history as :KnowledgeDocument {source:'email'} (recall, search, 'threads about X', 'what did Y send?'); email-read / email-search for live IMAP inbox. Ingestion (operator-initiated, human-in-the-loop): email-fetch lists new messages, email-ingest writes the operator-approved subset. Sending: email-send (new), email-reply (threaded). Config: email-setup, email-status, email-otp-extract.",
|
|
3
|
+
"description": "Email — dedicated email account. Retrieval: email-graph-query for stored email-thread history as :KnowledgeDocument {source:'email'} (recall, search, 'threads about X', 'what did Y send?'); email-read / email-search for live IMAP inbox. Ingestion (operator-initiated, human-in-the-loop): email-fetch lists new messages, email-ingest writes the operator-approved subset. Classification: email-classify (operator-solicited) decomposes a stored thread KD into :Section children via the librarian specialist; reclassify-gate skips when the body grew <25% since the previous classify. Sending: email-send (new), email-reply (threaded). Config: email-setup, email-status, email-otp-extract.",
|
|
4
4
|
"version": "0.1.0",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Rubytech LLC"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: email
|
|
3
|
-
description: "Email — dedicated email account. Retrieval: email-graph-query for stored email-thread history as :KnowledgeDocument {source:'email'} (recall, search, 'threads about X', 'what did Y send?'); email-read / email-search for live IMAP inbox. Ingestion (operator-initiated, human-in-the-loop): email-fetch lists new messages, email-ingest writes the operator-approved subset. Sending: email-send (new), email-reply (threaded). Config: email-setup, email-status, email-otp-extract."
|
|
3
|
+
description: "Email — dedicated email account. Retrieval: email-graph-query for stored email-thread history as :KnowledgeDocument {source:'email'} (recall, search, 'threads about X', 'what did Y send?'); email-read / email-search for live IMAP inbox. Ingestion (operator-initiated, human-in-the-loop): email-fetch lists new messages, email-ingest writes the operator-approved subset. Classification: email-classify (operator-solicited) decomposes a stored thread KD into :Section children via the librarian specialist; reclassify-gate skips when the body grew <25% since the previous classify. Sending: email-send (new), email-reply (threaded). Config: email-setup, email-status, email-otp-extract."
|
|
4
4
|
tools:
|
|
5
5
|
- name: email-setup
|
|
6
6
|
publicAllowlist: false
|
|
@@ -26,6 +26,9 @@ tools:
|
|
|
26
26
|
- name: email-ingest
|
|
27
27
|
publicAllowlist: false
|
|
28
28
|
adminAllowlist: false
|
|
29
|
+
- name: email-classify
|
|
30
|
+
publicAllowlist: false
|
|
31
|
+
adminAllowlist: false
|
|
29
32
|
- name: email-otp-extract
|
|
30
33
|
publicAllowlist: false
|
|
31
34
|
adminAllowlist: false
|
|
@@ -64,6 +67,7 @@ Manages the agent's own dedicated email account — IMAP for reading, SMTP for s
|
|
|
64
67
|
- **Reply:** `email-reply` — threaded reply to an existing email by `messageId`. Supports `replyAll`.
|
|
65
68
|
- **Ingestion — fetch:** `email-fetch` — list new IMAP messages since the stored high-water mark. Metadata + body preview only. No graph writes, no classification. Stages the batch in-memory for `email-ingest`.
|
|
66
69
|
- **Ingestion — apply:** `email-ingest` — apply the operator's per-message decisions to the staged batch. Each Message-ID must carry a disposition (`ingest` or `discard`). Writes only the approved subset and advances the inbox high-water mark.
|
|
70
|
+
- **Classification — solicited:** `email-classify` — operator-solicited reclassify of one stored thread into `:Section` children. Thin wrapper over the generic `kd-classify` (memory plugin): derives the account-scoped `attachmentId` from the root `Message-ID`, runs the body-growth gate (skip when <25% growth since the previous classify), stages the body to a temp file under `$ACCOUNT_DIR/tmp/`, and returns a dispatch envelope. Admin hands the envelope to the `librarian` specialist; `memory-ingest` MERGEs by `attachmentId` and replaces any prior sections in one transaction, also stamping `lastClassifiedAt` + `lastClassifiedBodyLength` for the next gate call.
|
|
67
71
|
- **Recall/history:** `email-graph-query` — search stored email threads in Neo4j by natural language, sender, date, direction. Each thread is one `:KnowledgeDocument {source:'email'}` carrying the verbatim chronological transcript with `:Person` `FROM`/`TO`/`CC` edges.
|
|
68
72
|
- **Status:** `email-status` — connection health and configuration state.
|
|
69
73
|
- **OTP:** `email-otp-extract` — poll for verification codes during service authentication.
|
|
@@ -14,6 +14,7 @@ import { emailReply } from "./tools/email-reply.js";
|
|
|
14
14
|
import { emailGraphQuery } from "./tools/email-graph-query.js";
|
|
15
15
|
import { emailFetch } from "./tools/email-fetch.js";
|
|
16
16
|
import { emailIngest } from "./tools/email-ingest.js";
|
|
17
|
+
import { emailClassify } from "./tools/email-classify.js";
|
|
17
18
|
import { closeDriver } from "./lib/neo4j.js";
|
|
18
19
|
const server = new McpServer({
|
|
19
20
|
name: "maxy-email",
|
|
@@ -274,6 +275,30 @@ eagerTool(server, "email-graph-query", "Query email threads stored in the graph
|
|
|
274
275
|
}
|
|
275
276
|
});
|
|
276
277
|
// ===================================================================
|
|
278
|
+
// email-classify — operator-solicited classify-into-sections for one thread KD
|
|
279
|
+
// ===================================================================
|
|
280
|
+
eagerTool(server, "email-classify", "Operator-solicited reclassify of one email-thread :KnowledgeDocument into :Section children. Takes the root Message-ID of the thread, derives the account-scoped attachmentId, and (a) returns 'no classification needed' when the thread body has grown <25% since the previous classify, or (b) stages the body to a temp file and returns a dispatch envelope the admin agent hands to the `librarian` specialist. Librarian runs the document-ingest skill against the temp file; memory-ingest replaces any prior :Section children and stamps lastClassifiedAt + lastClassifiedBodyLength on the KD. Thin wrapper over the generic kd-classify tool — use this when you only have the human-typed root Message-ID; pass the attachmentId directly to kd-classify if you already have it.", {
|
|
281
|
+
rootMessageId: z.string().describe("Root Message-ID of the thread (no angle brackets) — the same value that identifies the thread KD in the graph (attachmentId = sha256(`email:<accountId>:<rootMessageId>`)). Find it via email-graph-query."),
|
|
282
|
+
}, async ({ rootMessageId }) => {
|
|
283
|
+
if (!accountId)
|
|
284
|
+
return refuseNoAccount("email-classify");
|
|
285
|
+
try {
|
|
286
|
+
const text = await emailClassify({ accountId, rootMessageId });
|
|
287
|
+
return { content: [{ type: "text", text }] };
|
|
288
|
+
}
|
|
289
|
+
catch (err) {
|
|
290
|
+
return {
|
|
291
|
+
content: [
|
|
292
|
+
{
|
|
293
|
+
type: "text",
|
|
294
|
+
text: `email-classify failed: ${err instanceof Error ? err.message : String(err)}`,
|
|
295
|
+
},
|
|
296
|
+
],
|
|
297
|
+
isError: true,
|
|
298
|
+
};
|
|
299
|
+
}
|
|
300
|
+
});
|
|
301
|
+
// ===================================================================
|
|
277
302
|
// email-fetch — operator-initiated inbox triage (no graph writes)
|
|
278
303
|
// ===================================================================
|
|
279
304
|
eagerTool(server, "email-fetch", "List new inbox messages since the last ingested UID, metadata + body preview only. Writes nothing to the graph. Used by the email-ingest skill: the operator reviews each message returned here and then calls email-ingest with a per-message disposition (ingest or discard).", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type EmailData } from "./graph.js";
|
|
2
|
+
export interface DispatchResult {
|
|
3
|
+
threadsDispatched: number;
|
|
4
|
+
threadsSkipped: number;
|
|
5
|
+
unresolvedAddresses: string[];
|
|
6
|
+
}
|
|
7
|
+
export declare function dispatchEmailMessagesToConversationArchive(messages: EmailData[]): Promise<DispatchResult>;
|
|
8
|
+
//# sourceMappingURL=conversation-archive-dispatch.d.ts.map
|