@rubytech/create-realagent 1.0.705 → 1.0.707
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/dist/__tests__/apt-resolve.test.js +179 -0
- package/dist/apt-resolve.js +73 -0
- package/dist/index.js +48 -46
- package/package.json +3 -3
- package/payload/platform/lib/graph-mcp/dist/__tests__/schema-cypher-parser.test.d.ts +2 -0
- package/payload/platform/lib/graph-mcp/dist/__tests__/schema-cypher-parser.test.d.ts.map +1 -0
- package/payload/platform/lib/graph-mcp/dist/__tests__/schema-cypher-parser.test.js +89 -0
- package/payload/platform/lib/graph-mcp/dist/__tests__/schema-cypher-parser.test.js.map +1 -0
- package/payload/platform/lib/graph-mcp/dist/schema-cypher-parser.d.ts +42 -0
- package/payload/platform/lib/graph-mcp/dist/schema-cypher-parser.d.ts.map +1 -0
- package/payload/platform/lib/graph-mcp/dist/schema-cypher-parser.js +87 -0
- package/payload/platform/lib/graph-mcp/dist/schema-cypher-parser.js.map +1 -0
- package/payload/platform/lib/graph-mcp/src/__tests__/schema-cypher-parser.test.ts +99 -0
- package/payload/platform/lib/graph-mcp/src/schema-cypher-parser.ts +84 -0
- package/payload/platform/neo4j/schema.cypher +23 -0
- package/payload/platform/plugins/admin/PLUGIN.md +1 -0
- package/payload/platform/plugins/admin/mcp/dist/index.js +30 -0
- package/payload/platform/plugins/admin/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/admin/skills/business-profile/SKILL.md +2 -2
- package/payload/platform/plugins/admin/skills/onboarding/SKILL.md +47 -6
- package/payload/platform/plugins/docs/references/adherence.md +1 -1
- package/payload/platform/plugins/memory/PLUGIN.md +25 -16
- package/payload/platform/plugins/memory/mcp/dist/index.js +146 -38
- package/payload/platform/plugins/memory/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/live-schema-source.test.d.ts +2 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/live-schema-source.test.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/live-schema-source.test.js +92 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/live-schema-source.test.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-loader.test.d.ts +2 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-loader.test.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-loader.test.js +51 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-loader.test.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-validator.test.d.ts +2 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-validator.test.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-validator.test.js +222 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-validator.test.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/document-hierarchy.d.ts +1 -7
- package/payload/platform/plugins/memory/mcp/dist/lib/document-hierarchy.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/document-hierarchy.js +27 -14
- package/payload/platform/plugins/memory/mcp/dist/lib/document-hierarchy.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/graph-write-gate.d.ts +16 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/graph-write-gate.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/graph-write-gate.js +38 -11
- package/payload/platform/plugins/memory/mcp/dist/lib/graph-write-gate.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/live-schema-source.d.ts +136 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/live-schema-source.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/live-schema-source.js +180 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/live-schema-source.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.d.ts +126 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.js +253 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/schema-loader.d.ts +11 -2
- package/payload/platform/plugins/memory/mcp/dist/lib/schema-loader.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/schema-loader.js +6 -3
- package/payload/platform/plugins/memory/mcp/dist/lib/schema-loader.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/schema-validator.d.ts +44 -22
- package/payload/platform/plugins/memory/mcp/dist/lib/schema-validator.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/schema-validator.js +94 -57
- package/payload/platform/plugins/memory/mcp/dist/lib/schema-validator.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-classify.d.ts +34 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-classify.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-classify.js +46 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-classify.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-edit-attachment.d.ts +1 -2
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-edit-attachment.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-edit-attachment.js +8 -9
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-edit-attachment.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-extract.d.ts +5 -17
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-extract.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-extract.js +26 -49
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-extract.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-web.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-web.js +4 -25
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-web.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.d.ts +23 -14
- 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 +410 -164
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.d.ts +7 -5
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.js +2 -2
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.js.map +1 -1
- package/payload/platform/plugins/memory/references/schema-base.md +33 -0
- package/payload/platform/plugins/memory/skills/document-ingest/SKILL.md +112 -0
- package/payload/platform/templates/agents/admin/IDENTITY.md +1 -2
- package/payload/platform/templates/specialists/agents/content-producer.md +10 -77
- package/payload/platform/templates/specialists/agents/database-operator.md +21 -13
- package/payload/server/chunk-PE76FPYP.js +12040 -0
- package/payload/server/maxy-edge.js +1 -1
- package/payload/server/public/assets/{Checkbox-B2Lk8F4X.js → Checkbox-CjbS9JcG.js} +1 -1
- package/payload/server/public/assets/{admin-agtgi48Q.js → admin-Ce9DbUuu.js} +1 -1
- package/payload/server/public/assets/{data-B7nsyBTV.js → data-C-SxjLC9.js} +1 -1
- package/payload/server/public/assets/{file-DHWTu8LP.js → file-D4cbAAuo.js} +1 -1
- package/payload/server/public/assets/{graph-ChDwqqhJ.js → graph-BRD96pKD.js} +8 -8
- package/payload/server/public/assets/{house-CfjnRPO6.js → house-CYsVygEQ.js} +1 -1
- package/payload/server/public/assets/{jsx-runtime-81wg0w0Q.css → jsx-runtime-DPXE45W9.css} +1 -1
- package/payload/server/public/assets/{public-CE1kyVnz.js → public-BTOF98iO.js} +1 -1
- package/payload/server/public/assets/{share-2-CAd1beVT.js → share-2-B-sbkB36.js} +1 -1
- package/payload/server/public/assets/{useVoiceRecorder-LSAU68Eo.js → useVoiceRecorder-DLVFx3ms.js} +1 -1
- package/payload/server/public/assets/{x-B0xK3Aoq.js → x-BNidzSAn.js} +1 -1
- package/payload/server/public/data.html +6 -6
- package/payload/server/public/graph.html +7 -7
- package/payload/server/public/index.html +8 -8
- package/payload/server/public/public.html +5 -5
- package/payload/server/server.js +6 -10
- /package/payload/server/public/assets/{jsx-runtime-DhzH26q8.js → jsx-runtime-BUs3sHtV.js} +0 -0
|
@@ -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,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type ValidatorEnv } from "../lib/schema-validator.js";
|
|
2
2
|
import { type GraphRelationship, type CreatedBy } from "../../../../../lib/graph-write/dist/index.js";
|
|
3
3
|
interface WriteParams {
|
|
4
4
|
labels: string[];
|
|
@@ -15,11 +15,13 @@ interface WriteParams {
|
|
|
15
15
|
/** Provenance stamp — sourced from the MCP server env vars (agent/session). */
|
|
16
16
|
createdBy: CreatedBy;
|
|
17
17
|
/**
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
18
|
+
* Validator environment — markdown sidecar (`schema`) plus the live
|
|
19
|
+
* recognised-label source. Required; built once at server startup by
|
|
20
|
+
* index.ts and passed through on every call. The live source's
|
|
21
|
+
* recognised-label set is read fresh on each validation, so writes after
|
|
22
|
+
* a SchemaCache refresh see the new labels without re-wiring.
|
|
21
23
|
*/
|
|
22
|
-
|
|
24
|
+
validator: ValidatorEnv;
|
|
23
25
|
}
|
|
24
26
|
interface WriteResult {
|
|
25
27
|
nodeId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-write.d.ts","sourceRoot":"","sources":["../../src/tools/memory-write.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"memory-write.d.ts","sourceRoot":"","sources":["../../src/tools/memory-write.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE9E,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACf,MAAM,8CAA8C,CAAC;AAEtD,UAAU,WAAW;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6HAA6H;IAC7H,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,+EAA+E;IAC/E,SAAS,EAAE,SAAS,CAAC;IACrB;;;;;;OAMG;IACH,SAAS,EAAE,YAAY,CAAC;CACzB;AAED,UAAU,WAAW;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CA6H3E;AAED,wFAAwF;AACxF,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,GACd;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAKhD;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EAAE,EAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,MAAM,CAUR"}
|
|
@@ -4,7 +4,7 @@ import { validateWrite } from "../lib/schema-validator.js";
|
|
|
4
4
|
import { checkGraphWriteGate } from "../lib/graph-write-gate.js";
|
|
5
5
|
import { writeNodeWithEdges, } from "../../../../../lib/graph-write/dist/index.js";
|
|
6
6
|
export async function memoryWrite(params) {
|
|
7
|
-
const { labels, properties, accountId, scope, relationships, createdBy,
|
|
7
|
+
const { labels, properties, accountId, scope, relationships, createdBy, validator } = params;
|
|
8
8
|
if (!scope) {
|
|
9
9
|
throw new Error("scope is required — valid values: 'public', 'shared', 'admin', 'user:{identifier}'");
|
|
10
10
|
}
|
|
@@ -13,7 +13,7 @@ export async function memoryWrite(params) {
|
|
|
13
13
|
// MCP tool handler can report a descriptive message to the agent and the
|
|
14
14
|
// operator can see the rejection in server.log.
|
|
15
15
|
try {
|
|
16
|
-
validateWrite({ labels, properties, accountId },
|
|
16
|
+
validateWrite({ labels, properties, accountId }, validator);
|
|
17
17
|
}
|
|
18
18
|
catch (err) {
|
|
19
19
|
console.error(`memory-write: schema validation rejected [${labels.join(", ")}] for account ${accountId ?? "<none>"}: ${err instanceof Error ? err.message : String(err)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-write.js","sourceRoot":"","sources":["../../src/tools/memory-write.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"memory-write.js","sourceRoot":"","sources":["../../src/tools/memory-write.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,8 @@ Universal node types shared across all business verticals. Load this reference b
|
|
|
4
4
|
|
|
5
5
|
When loading this reference, confirm which schema files were consulted by noting: "Using schema-base" (and the vertical file name, if loaded).
|
|
6
6
|
|
|
7
|
+
> **Role of this file (Task 736).** This file declares **property-shape rules** — required properties, naming conventions, and relationship patterns — for documented labels. It is **not** the label-existence gate. Label existence is established by the live `db.labels()` ∪ `schema.cypher` declarations. Platform-native labels (`LocalBusiness`, `AdminUser`, `Conversation`, `KnowledgeDocument`) live in `platform/neo4j/schema.cypher` and are accepted by the validator without a markdown row here; their property shape is the agent's responsibility until a row is added. A label appearing in this file is the agent's commitment that writes carry the listed required properties. A label absent from this file is not a write blocker.
|
|
8
|
+
|
|
7
9
|
---
|
|
8
10
|
|
|
9
11
|
## Node Types
|
|
@@ -31,13 +33,18 @@ When loading this reference, confirm which schema files were consulted by noting
|
|
|
31
33
|
| CreativeWork | `CreativeWork` | `schema:CreativeWork` | — | `accountId`, `title`, `abstract` |
|
|
32
34
|
| DefinedTerm | `DefinedTerm` | `schema:DefinedTerm` | — | `accountId`, `name`, `description` |
|
|
33
35
|
| AccessGrant | `AccessGrant` | platform-native | — | `accountId`, `agentSlug`, `contactMethod`, `contactValue`, `status` (scope must be `admin`) |
|
|
36
|
+
| Position | `Position` | platform-native (analogue of `schema:OrganizationRole`) | — | `accountId`, `title`, `startDate` |
|
|
34
37
|
|
|
35
38
|
**Branding properties on LocalBusiness:** `primaryColor`, `accentColor`, `backgroundColor`, `tagline` — optional, used to brand the public chat endpoint. Written via `memory-update` on the LocalBusiness node. Hex color values must match `#[0-9a-fA-F]{3,8}`. Logo and icon are linked via `HAS_BRAND_ASSET → ImageObject` with `purpose: "logo"` or `"icon"`.
|
|
36
39
|
|
|
40
|
+
**Personal-profile role on Person (Task 704):** the optional `role` property on a `Person` node carries the value `"admin-personal"` when the node is the operator's personal-profile bootstrap (onboarding step 9 personal/employee mode). The graph-write gate accepts `Person {role: "admin-personal"}` in lieu of a `LocalBusiness` so personal-mode users can complete onboarding without registering a business. Do not set `role: "admin-personal"` on customer or staff Person nodes — it's the personal-profile discriminator and only the bootstrap node should carry it.
|
|
41
|
+
|
|
37
42
|
**CreativeWork** covers long-form textual records written by the platform: session summaries (`session-compact`), workflow digests (e.g. public chat review), and skill definitions saved by `skill-builder`. The `title` is a short identifier; the `abstract` carries the full content that drives the embedding.
|
|
38
43
|
|
|
39
44
|
**DefinedTerm** covers reusable concepts, learnings, and glossary entries — e.g. project retrospective learnings (`name` is a short handle, `description` is the full learning). Additional properties like `category` are encouraged but not required.
|
|
40
45
|
|
|
46
|
+
**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` (Task 737). 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.
|
|
47
|
+
|
|
41
48
|
---
|
|
42
49
|
|
|
43
50
|
## Property Naming Rules
|
|
@@ -92,8 +99,34 @@ Do not write placeholder values ("TBD", "unknown", empty strings) for properties
|
|
|
92
99
|
(:FAQPage)-[:CONTAINS]->(:Question)
|
|
93
100
|
(:LocalBusiness)-[:HAS_BRAND_ASSET]->(:ImageObject)
|
|
94
101
|
(:Person)-[:HAS_ACCESS]->(:AccessGrant)
|
|
102
|
+
(:LocalBusiness)-[:OFFERS]->(:Service)
|
|
103
|
+
(:UserProfile)-[:HAS_POSITION]->(:Position)
|
|
104
|
+
(:Position)-[:AT]->(:Organization)
|
|
105
|
+
(:UserProfile)-[:ATTENDED]->(:Organization {organizationCategory:'educational'})
|
|
106
|
+
(:UserProfile)-[:HOLDS]->(:Credential)
|
|
107
|
+
(:UserProfile)-[:HAS_SKILL]->(:DefinedTerm {category:'skill'})
|
|
108
|
+
(:KnowledgeDocument)-[:REFERENCES]->(:*)
|
|
109
|
+
(:KnowledgeDocument)-[:HAS_SECTION]->(:Section)
|
|
95
110
|
```
|
|
96
111
|
|
|
112
|
+
### Document-ingestion typed-node patterns (Task 737)
|
|
113
|
+
|
|
114
|
+
The `document-ingest` skill maps unstructured-document sections onto these typed targets. Each row is one classifier `kind` and the natural anchor edge.
|
|
115
|
+
|
|
116
|
+
| Section `kind` | Typed node label | Anchor pattern |
|
|
117
|
+
|---|---|---|
|
|
118
|
+
| `Position` | `:Position` (new) | `(:UserProfile)-[:HAS_POSITION]->(:Position)-[:AT]->(:Organization)` |
|
|
119
|
+
| `Education` | `:Organization {organizationCategory:'educational'}` | `(:UserProfile)-[:ATTENDED {degree, startDate, endDate}]->(:Organization)` |
|
|
120
|
+
| `Certification` | `:Credential` | `(:UserProfile)-[:HOLDS]->(:Credential)` |
|
|
121
|
+
| `Skill` | `:DefinedTerm {category:'skill'}` | `(:UserProfile)-[:HAS_SKILL]->(:DefinedTerm)` |
|
|
122
|
+
| `Service` | `:Service` | `(:LocalBusiness)-[:OFFERS]->(:Service)` |
|
|
123
|
+
| `Person` | `:Person` | `(:KnowledgeDocument)-[:REFERENCES]->(:Person)` (no implicit anchor edge) |
|
|
124
|
+
| `Organization` | `:Organization` | `(:KnowledgeDocument)-[:REFERENCES]->(:Organization)` (no implicit anchor edge) |
|
|
125
|
+
| `CreativeWork` | `:CreativeWork` | `(:KnowledgeDocument)-[:REFERENCES]->(:CreativeWork)` |
|
|
126
|
+
| `UNMAPPED` (fallback) | `:Section` | `(:KnowledgeDocument)-[:HAS_SECTION]->(:Section)` |
|
|
127
|
+
|
|
128
|
+
The classifier returns `kind` strings from this list (or `UNMAPPED`). `kind` values not present here are treated as UNMAPPED — `memory-ingest` never invents a label.
|
|
129
|
+
|
|
97
130
|
---
|
|
98
131
|
|
|
99
132
|
## Order Node — Disambiguation
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: document-ingest
|
|
3
|
+
description: Universal document ingestion — maps any unstructured document (PDF, text, transcript, web page) to ontologically-grounded typed graph nodes via Haiku-driven section classification. Triggers when the operator uploads or fetches a document for ingestion. One skill for every document type — no per-doctype branching.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Document Ingest
|
|
7
|
+
|
|
8
|
+
Ingests any unstructured document (PDF, text, transcript, web page) into the graph as typed nodes anchored to the document subject via the natural ontology edges. There are no per-doctype skills (no `cv-import`, no `contract-import`) — the LLM-driven classifier in `memory-classify` decides which ontology label every section maps to. The skill orchestrates the pipeline; the classifier reads the loaded ontology; the writer enforces the validator.
|
|
9
|
+
|
|
10
|
+
## Anchor confirmation (mandatory first step)
|
|
11
|
+
|
|
12
|
+
Every document has a subject — the node every typed section attaches to. Anchors are parameter input, never inferred from "who uploaded the file". The dispatch brief from the admin agent names the anchor explicitly. If the brief is ambiguous, ask the operator before any read.
|
|
13
|
+
|
|
14
|
+
The four common shapes:
|
|
15
|
+
|
|
16
|
+
| Document | Anchor | Anchor label |
|
|
17
|
+
|---|---|---|
|
|
18
|
+
| Owner CV / personal-profile content | `:UserProfile` (or `:Person {role: 'admin-personal'}`) | `UserProfile` (or `Person`) |
|
|
19
|
+
| Business pricing guide / policy / brochure | `:LocalBusiness` for this account | `LocalBusiness` |
|
|
20
|
+
| Contract or document about a third party | `:Person` or `:Organization` (named in brief) | `Person` or `Organization` |
|
|
21
|
+
| Reference document with no natural subject (industry overview, generic FAQ) | `:LocalBusiness` (default) | `LocalBusiness` |
|
|
22
|
+
|
|
23
|
+
The confirmation flow:
|
|
24
|
+
|
|
25
|
+
1. Read the dispatch brief. Extract the document path and the named subject.
|
|
26
|
+
2. If the subject is not named, or is ambiguous, ask the operator in one sentence: "I'm about to ingest `<filename>`. Anchor it to the account owner's UserProfile, the business (`<LocalBusiness.name>`), or a third party — which?". Wait for the answer.
|
|
27
|
+
3. Run a one-shot graph read to resolve the anchor's element ID. For UserProfile: `MATCH (u:UserProfile {accountId: $accountId}) RETURN elementId(u) AS anchorId, 'UserProfile' AS anchorLabel`. For LocalBusiness: `MATCH (b:LocalBusiness {accountId: $accountId}) RETURN elementId(b) AS anchorId, 'LocalBusiness' AS anchorLabel`. For a third party: search by name via `memory-search` and pick the matching node.
|
|
28
|
+
4. Persist `$anchorNodeId` and `$anchorLabel` for the rest of the run. These flow into both `memory-classify` (as part of the `anchorDescription`) and `memory-ingest` (as the `anchorNodeId` + `anchorLabel` parameters).
|
|
29
|
+
|
|
30
|
+
## Pipeline
|
|
31
|
+
|
|
32
|
+
Three tools in order. The pipeline is deterministic — the agent does not classify; the agent calls the classifier tool. Hallucination defence and ontology validation are server-side in `memory-classify` and the `memory-write` validator respectively.
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
EXTRACT --> CLASSIFY --> INGEST
|
|
36
|
+
│ │ │
|
|
37
|
+
v v v
|
|
38
|
+
text typed typed nodes
|
|
39
|
+
cached sections + anchor edges
|
|
40
|
+
by id JSON + REFERENCES
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### 1. `memory-ingest-extract`
|
|
44
|
+
|
|
45
|
+
Pulls text from the file and caches it under the `attachmentId`. Inputs: `storagePath`, `filename`, `mimeType`, `attachmentId` (all from the attachment metadata block in your brief). Returns metadata + a 240-char preview. The full text lives in the in-process cache.
|
|
46
|
+
|
|
47
|
+
### 2. `memory-classify`
|
|
48
|
+
|
|
49
|
+
Calls Haiku with the loaded ontology and the cached text. Inputs: `attachmentId` (same one), `anchorDescription` (a short sentence built from the confirmed anchor — e.g. `"subject = UserProfile (the account owner); edges from UserProfile."` or `"subject = LocalBusiness {name: 'Acme Roofing'} (the operator's business); edges from LocalBusiness."`). Returns:
|
|
50
|
+
|
|
51
|
+
- `documentSummary` — 1-3 sentences for the KnowledgeDocument node
|
|
52
|
+
- `documentKeywords` — 3-10 lowercase topic keywords
|
|
53
|
+
- `sections` — typed sections, each with `kind`, `title`, `body`, `properties`, `anchorEdge`, optional `related`
|
|
54
|
+
- `unmapped` — count of sections whose returned `kind` was not in the ontology (became UNMAPPED)
|
|
55
|
+
- `hallucinatedRelated` — count of related-entity `kind` values dropped
|
|
56
|
+
|
|
57
|
+
If the call returns `{kind: "fallback", reason: "..."}`, the LLM was unavailable. Fall back to a single UNMAPPED section: write the entire document as one `:Section` (see step 3) so the doc still ingests with the gap visible in the log.
|
|
58
|
+
|
|
59
|
+
### 3. `memory-ingest`
|
|
60
|
+
|
|
61
|
+
Writes the classified document. Inputs: `attachmentId`, `documentSummary`, `anchorNodeId`, `anchorLabel`, `sections`, `scope` (from the brief — confirm with the operator if absent), optional `documentKeywords`, `userKeywords`, `sourceUrl`, `sourceType`. Returns counts (`typedCount`, `unmappedCount`, `chunkCount`, `entityLinks`).
|
|
62
|
+
|
|
63
|
+
Re-ingesting the same `attachmentId` is safe — the writer drops the prior typed-and-untyped children before re-creating. Shared related entities (Organizations, Persons MERGEd by identifying property) are spared.
|
|
64
|
+
|
|
65
|
+
## Web-page ingestion
|
|
66
|
+
|
|
67
|
+
For URL-based ingestion, run `memory-ingest-web` first with the URL and the WebFetch result. It writes the content to a temp file and routes through `memory-ingest-extract`, returning a fresh `attachmentId`. The rest of the pipeline (classify + ingest) is identical to a file upload. Pass `sourceUrl` and `sourceType: 'web'` to `memory-ingest`.
|
|
68
|
+
|
|
69
|
+
## Attachment metadata format
|
|
70
|
+
|
|
71
|
+
Your task description contains attachment metadata in this format:
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
1. report.pdf application/pdf 1,234,567 bytes
|
|
75
|
+
ID: 04caba6b-... Path: /home/admin/.maxy/data/uploads/...
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Extract:
|
|
79
|
+
- **filename** = the text BEFORE the MIME type on the FIRST line. Always the human-readable name; never a UUID.
|
|
80
|
+
- **mimeType** = the MIME type on the first line.
|
|
81
|
+
- **attachmentId** = the UUID after `ID:` on the SECOND line.
|
|
82
|
+
- **storagePath** = the absolute path after `Path:` on the second line.
|
|
83
|
+
|
|
84
|
+
Process each text-based attachment (PDF, plain text, markdown). Skip images — they have no text to ingest.
|
|
85
|
+
|
|
86
|
+
## Visibility scope
|
|
87
|
+
|
|
88
|
+
`memory-ingest` requires `scope`. The brief specifies it; if not, ask the operator before ingesting.
|
|
89
|
+
|
|
90
|
+
- **public** — visible to public agents and admin. For business knowledge customers should access (products, services, FAQs, policies).
|
|
91
|
+
- **shared** — visible to all account agents but not public visitors. Internal operational knowledge.
|
|
92
|
+
- **admin** — admin agent only. Sensitive content (contracts, credentials, internal processes).
|
|
93
|
+
|
|
94
|
+
CV / personal-profile content defaults to `admin`. Pricing guides, services, FAQs default to `public`. When uncertain, ask in one sentence.
|
|
95
|
+
|
|
96
|
+
## Discipline (load-bearing)
|
|
97
|
+
|
|
98
|
+
1. **Anchor confirmed first.** No extract / classify / ingest until `$anchorNodeId` and `$anchorLabel` are persisted and echo-confirmed.
|
|
99
|
+
2. **Generic skill — no document-type branching.** The classifier maps sections to ontology labels. If a section does not fit, the writer falls back to `:Section` (UNMAPPED) and logs the ontology gap. Do not introduce per-doctype hand-coded paths.
|
|
100
|
+
3. **Schema-base property names.** The classifier emits `givenName` / `familyName` / `telephone` / `dateSent` — not `firstName` / `phone` / `sentAt`. The `memory-write` validator enforces this via the synonym map.
|
|
101
|
+
4. **Reuse existing labels.** The Hybrid ontology is fixed: only `:Position` is new (Task 737). Education uses `Organization {organizationCategory:'educational'}` + `ATTENDED`; Certification uses `Credential` + `HOLDS`; Skill uses `DefinedTerm {category:'skill'}` + `HAS_SKILL`; Service uses `Service` + `OFFERS`. The classifier sees the full natural-edge map and emits the actual label/edge names — never invents.
|
|
102
|
+
5. **Provenance stamp.** Every typed node and edge gets `createdByAgent='document-ingest'`, `createdBySource='document-ingest'`, `createdBySession=$sessionId`, `source='document'`, `sourceDocumentId=<attachmentId>`. Stamped automatically by `memory-ingest`. Re-ingest deletes prior typed nodes via this stamp.
|
|
103
|
+
6. **Idempotent re-ingest.** `memory-ingest` is safe to re-run with the same `attachmentId`. Prior typed nodes (Position, Service, Credential created by this doc) are deleted; MERGEd shared entities (Organizations, Persons referenced by other docs) are spared.
|
|
104
|
+
7. **UNMAPPED is visible, not silenced.** When the classifier returns sections whose `kind` is not in the ontology, the writer creates generic `:Section` nodes and emits `[document-ingest] unmapped-section` log lines. The doc still completes; the gap is the signal to extend the ontology — not to silence the classifier.
|
|
105
|
+
|
|
106
|
+
## Output contract
|
|
107
|
+
|
|
108
|
+
Return to the admin agent:
|
|
109
|
+
- **What you did** — filename, anchor (`UserProfile` / `LocalBusiness` / etc.), scope.
|
|
110
|
+
- **Outcome** — `documentNodeId`, `typedCount`, `unmappedCount`, `chunkCount`, `entityLinks`. Surface the document summary and extracted keywords so the admin can echo them back to the operator.
|
|
111
|
+
- **Ontology gaps** — list any UNMAPPED section titles. The admin agent reads these to decide whether to extend the ontology in a follow-up task.
|
|
112
|
+
- **Blockers** — anchor unconfirmed, classifier fallback (Haiku unavailable), schema validator rejection.
|
|
@@ -158,8 +158,7 @@ When the user asks what you can do, answer from the specialist domains, admin-ow
|
|
|
158
158
|
- Think strategically. Surface problems before they become urgent. Recommend actions based on what you know.
|
|
159
159
|
- Never state a future commitment ("I'll flag", "I'll check", "I'll remind") without immediately creating the mechanism to fulfil it — a scheduled event, a task, or a workflow trigger. A commitment without a backing mechanism is a broken promise.
|
|
160
160
|
- Store everything you learn about the business in the graph — not in files.
|
|
161
|
-
-
|
|
162
|
-
- For external-archive ingestion (LinkedIn Basic Data Export today; CRM-type seed archives in future — HubSpot, Salesforce, Pipedrive, iCloud contacts, Gmail CSV), delegate to the `database-operator` specialist and include the archive path and the archive-owner identity in the task brief. **Not** content-producer — content-producer handles knowledge documents (pricing guides, contracts, manuals), not structured archives.
|
|
161
|
+
- For document ingestion of any kind — PDFs, text, transcripts, web pages, audio, video, single files, archives — delegate to the `database-operator` specialist. Include the document path, the document subject (account owner, the business, a third party, etc. — ask if not obvious from context), and the scope (admin/shared/public — ask if not obvious). **Not** content-producer. content-producer produces documents from the populated graph; it does not ingest. The two are opposite movements through the graph and must never be conflated.
|
|
163
162
|
- For ad-hoc graph operations — pruning orphan nodes, deduplicating entities, adding edges, normalising labels, tidying schema drift — delegate to the `database-operator` specialist. Do not perform these inline; they burn admin-turn token budget and displace the conversational focus. **Not** personal-assistant — PA has no graph-write surface; misdelegation fails at the tool-gate after wasting a turn.
|
|
164
163
|
|
|
165
164
|
## Proactive Commitment Detection
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: content-producer
|
|
3
|
-
description: "
|
|
4
|
-
summary: "
|
|
3
|
+
description: "Visual production — reads from the populated graph to produce visual artifacts: image generation, PDF rendering, and component delivery. Delegate when a task requires generating images or saving rendered pages as PDF. **Not** document ingestion — ingestion of any kind routes to `database-operator`."
|
|
4
|
+
summary: "Produces visual output from your graph — generates images and renders pages to PDF. For example, when you need a cover image for a brief or want to save a rendered page as PDF."
|
|
5
5
|
model: claude-sonnet-4-6
|
|
6
|
-
tools: mcp__memory__memory-
|
|
6
|
+
tools: mcp__memory__memory-search, mcp__replicate__image-generate, mcp__plugin_playwright_playwright__browser_navigate, mcp__plugin_playwright_playwright__browser_snapshot, mcp__plugin_playwright_playwright__browser_take_screenshot, mcp__plugin_playwright_playwright__browser_pdf_save, mcp__admin__render-component, mcp__admin__file-attach
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Content Producer
|
|
10
10
|
|
|
11
|
-
You
|
|
11
|
+
You produce visual artifacts and PDF output by reading from the already-populated graph. You receive a brief from the admin agent, execute it, and return structured results.
|
|
12
|
+
|
|
13
|
+
## Out of scope: ingestion of any kind
|
|
14
|
+
|
|
15
|
+
content-producer reads from the graph to produce; it does not write external input into the graph. All ingestion — PDFs, text, transcripts, web pages, audio, video, single files, archives — routes to `database-operator`. Producing and ingesting are opposite movements through the graph and must never be conflated. If a brief asks you to ingest a document, return immediately and tell the admin agent to redispatch to `database-operator`.
|
|
12
16
|
|
|
13
17
|
## Prerogatives
|
|
14
18
|
|
|
@@ -34,77 +38,6 @@ Some tools in your list come from optional plugins that may not be enabled. When
|
|
|
34
38
|
|
|
35
39
|
- **Replicate** (`mcp__replicate__*` tools) — Image generation via three models (photorealistic, design-quality, fast draft). If absent and the task involves image generation: report that image generation is unavailable because the replicate plugin is not enabled, and note what images would have been produced.
|
|
36
40
|
|
|
37
|
-
## Document ingestion
|
|
38
|
-
|
|
39
|
-
You ingest knowledge documents into the Maxy knowledge graph so they become searchable and retrievable in future conversations.
|
|
40
|
-
|
|
41
|
-
### What a knowledge document is
|
|
42
|
-
|
|
43
|
-
Pricing guides, supplier contracts, procedures manuals, business descriptions, product specs, service descriptions — long-form documents that contain information the business needs to reference repeatedly. These are NOT structured data (contact lists, invoices, CSV files).
|
|
44
|
-
|
|
45
|
-
### Outcome
|
|
46
|
-
|
|
47
|
-
Every knowledge document becomes a three-level hierarchy in the graph:
|
|
48
|
-
|
|
49
|
-
- **KnowledgeDocument** — a summary of the entire document
|
|
50
|
-
- **Section** — summaries of each major section
|
|
51
|
-
- **Chunk** — the actual text content within each section, with a one-line summary
|
|
52
|
-
|
|
53
|
-
Summaries are what the search engine matches against. Raw chunk content is what gets returned when a match is found. The quality of the summaries directly determines how well the document can be found later.
|
|
54
|
-
|
|
55
|
-
### How to process a document
|
|
56
|
-
|
|
57
|
-
1. Call `memory-ingest-extract` with the file's `storagePath`, `filename`, `mimeType`, and `attachmentId`. The tool extracts text and chunks the document server-side. It returns section titles and chunk previews — not the full text.
|
|
58
|
-
|
|
59
|
-
2. Read the section titles and chunk previews to understand the document's structure and content.
|
|
60
|
-
|
|
61
|
-
3. Generate summaries at all three levels:
|
|
62
|
-
- **Document summary**: 1-3 sentences capturing what this document is about and what information it contains.
|
|
63
|
-
- **Section summaries**: 1 sentence each capturing what this section covers.
|
|
64
|
-
- **Chunk summaries**: 1 sentence each capturing what this specific piece of content says. These are what the search engine embeds — they must capture the meaning precisely.
|
|
65
|
-
|
|
66
|
-
4. If the document references entities that might exist in the graph (people, businesses, services, products), search for them using `memory-search` and collect their node IDs.
|
|
67
|
-
|
|
68
|
-
5. Call `memory-ingest` with the `attachmentId`, `documentSummary`, and `sections` array. Each section needs a `title`, `summary`, and `chunkSummaries` array (one summary string per chunk, in order). Do NOT include raw text content — the tool retrieves it from its server-side cache.
|
|
69
|
-
|
|
70
|
-
### Attachment metadata format
|
|
71
|
-
|
|
72
|
-
Your task description contains attachment metadata in this format:
|
|
73
|
-
```
|
|
74
|
-
1. report.pdf application/pdf 1,234,567 bytes
|
|
75
|
-
ID: 04caba6b-... Path: /home/admin/.maxy/data/uploads/...
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
Extract these values from the metadata block:
|
|
79
|
-
- **filename** = the text BEFORE the MIME type on the FIRST line (e.g. `report.pdf`). This is the original filename the user uploaded. It is NEVER a UUID.
|
|
80
|
-
- **mimeType** = the MIME type on the first line (e.g. `application/pdf`)
|
|
81
|
-
- **attachmentId** = the UUID after `ID:` on the SECOND line (e.g. `04caba6b-...`). This is always a UUID.
|
|
82
|
-
- **storagePath** = the absolute path after `Path:` on the second line
|
|
83
|
-
|
|
84
|
-
Pass these exact values to `memory-ingest-extract`. The `filename` parameter must be the human-readable name from the first line, not the UUID from the second line.
|
|
85
|
-
|
|
86
|
-
Process each text-based attachment (PDF, plain text, markdown). Skip images — they are stored as metadata only.
|
|
87
|
-
|
|
88
|
-
### Scope
|
|
89
|
-
|
|
90
|
-
Every call to `memory-ingest` requires a `scope` value. The admin agent's task description specifies the scope. If not specified, use `"public"` as the default. Never invent a scope value — use exactly what the brief says or fall back to `"public"`.
|
|
91
|
-
|
|
92
|
-
Scope options:
|
|
93
|
-
- **public** — visible to public agents and admin. For business knowledge customers should access (products, services, FAQs, policies).
|
|
94
|
-
- **shared** — visible to all agents but not public visitors. For internal operational knowledge.
|
|
95
|
-
- **admin** — visible only to the admin agent. For sensitive content (contracts, credentials, internal processes).
|
|
96
|
-
|
|
97
|
-
### Keywords
|
|
98
|
-
|
|
99
|
-
After a successful `memory-ingest` call, `keywords` in the tool response contains LLM-extracted topic signals. User-supplied keywords (included in the brief when provided) should be normalized (lowercase, trim), merged with extracted keywords (user keywords first), deduplicated, and passed to `memory-update` on the `documentNodeId`. Hierarchical paths (e.g. `["reports", "reports/quarterly"]`) support user-defined collections.
|
|
100
|
-
|
|
101
|
-
### Constraints
|
|
102
|
-
|
|
103
|
-
- If `memory-ingest-extract` rejects a file (CSV, image, unsupported type), report the rejection message and move on.
|
|
104
|
-
- If a document is very short (a single paragraph), it may have one section with one chunk. The hierarchy still applies.
|
|
105
|
-
- Summaries must capture meaning, not just repeat words. "This section covers payment terms" is useful. "Section 3" is not.
|
|
106
|
-
- The number of section summaries and chunk summaries you provide to `memory-ingest` must exactly match the counts returned by `memory-ingest-extract`. If counts don't match, the tool will reject the call.
|
|
107
|
-
|
|
108
41
|
## Image generation
|
|
109
42
|
|
|
110
43
|
Three models for different production needs via `image-generate`:
|
|
@@ -142,8 +75,8 @@ Use `file-attach` to make generated files available for download in the chat. Us
|
|
|
142
75
|
## Output contract
|
|
143
76
|
|
|
144
77
|
Return to the admin agent:
|
|
145
|
-
- **What you did** —
|
|
146
|
-
- **Summary** —
|
|
78
|
+
- **What you did** — images generated, PDFs produced, components rendered
|
|
79
|
+
- **Summary** — model used, prompts, dimensions; for PDFs: page count and visible content
|
|
147
80
|
- **Artifacts** — list of files produced with their paths
|
|
148
81
|
|
|
149
82
|
## Tool failure discipline
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: database-operator
|
|
3
|
-
description: "
|
|
4
|
-
summary: "
|
|
3
|
+
description: "Document and archive ingestion and ad-hoc graph operations — running the universal `document-ingest` skill for any unstructured document (PDF, text, transcript, web page, audio, video) and per-source archive-import skills (LinkedIn Basic Data Export today; CRM-type seed archives as each plugin ships), plus operator-driven graph hygiene (prune orphans, deduplicate entities, add edges, normalise labels). Delegate when the operator uploads any document, drops an archive directory into chat, or asks for any graph operation that is not a routine per-turn write."
|
|
4
|
+
summary: "Ingests every unstructured document and external archive into your graph (LinkedIn today; other CRM sources in future) and handles ad-hoc graph tidy-ups on request. For example, when you upload a CV, a pricing guide, or a contract; when you drop a LinkedIn export folder into chat; or when you ask to prune orphan nodes, merge duplicate people, or add edges between entities."
|
|
5
5
|
model: claude-sonnet-4-6
|
|
6
|
-
tools: Read, Bash, Glob, Grep, mcp__graph__maxy-graph-read_neo4j_cypher, mcp__graph__maxy-graph-get_neo4j_schema, mcp__memory__memory-write, mcp__memory__memory-update, mcp__memory__memory-delete, mcp__memory__memory-search, mcp__memory__memory-rank, mcp__memory__memory-reindex, mcp__memory__memory-find-candidates, mcp__memory__memory-ingest, mcp__memory__memory-ingest-extract, mcp__memory__graph-prune-denylist-list, mcp__memory__graph-prune-denylist-add, mcp__memory__graph-prune-denylist-remove, mcp__contacts__contact-create, mcp__contacts__contact-update, mcp__contacts__contact-lookup, mcp__contacts__contact-list, mcp__admin__file-attach, mcp__admin__plugin-read
|
|
6
|
+
tools: Read, Bash, Glob, Grep, mcp__graph__maxy-graph-read_neo4j_cypher, mcp__graph__maxy-graph-get_neo4j_schema, mcp__memory__memory-write, mcp__memory__memory-update, mcp__memory__memory-delete, mcp__memory__memory-search, mcp__memory__memory-rank, mcp__memory__memory-reindex, mcp__memory__memory-find-candidates, mcp__memory__memory-ingest, mcp__memory__memory-ingest-extract, mcp__memory__memory-ingest-web, mcp__memory__memory-classify, mcp__memory__graph-prune-denylist-list, mcp__memory__graph-prune-denylist-add, mcp__memory__graph-prune-denylist-remove, mcp__contacts__contact-create, mcp__contacts__contact-update, mcp__contacts__contact-lookup, mcp__contacts__contact-list, mcp__admin__file-attach, mcp__admin__plugin-read
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Database Operator
|
|
10
10
|
|
|
11
|
-
You own
|
|
11
|
+
You own document and archive ingestion and ad-hoc graph operations. You receive a task brief from the admin agent, execute it against the Neo4j graph, and return structured results. Your remit is graph-write focused — not a generalist. You do not manage channels, scheduling, browser automation, or any other domain the other specialists own.
|
|
12
12
|
|
|
13
13
|
## Prerogatives
|
|
14
14
|
|
|
@@ -48,23 +48,31 @@ Two entry points. The prompt body works unchanged for both — the task brief te
|
|
|
48
48
|
|
|
49
49
|
---
|
|
50
50
|
|
|
51
|
-
##
|
|
51
|
+
## Document and archive ingestion
|
|
52
52
|
|
|
53
|
-
You
|
|
53
|
+
You ingest two classes of input into the graph: **unstructured documents** (PDFs, text, transcripts, web pages, audio, video — anything an admin uploads or fetches) and **structured per-source archives** (LinkedIn Basic Data Export today; CRM-type seed exports as each plugin ships). Both classes route here. The skill you load differs by class; the discipline is shared.
|
|
54
54
|
|
|
55
|
-
###
|
|
55
|
+
### Branch A — unstructured documents (universal `document-ingest` skill)
|
|
56
|
+
|
|
57
|
+
For any unstructured document, load `platform/plugins/memory/skills/document-ingest/SKILL.md` via `plugin-read` and follow it. The skill is generic — there are no per-doctype skills (no `cv-import`, no `contract-import`, no `transcript-import`). It loads the active ontology (`schema-base.md` + the active vertical schema named on the LocalBusiness `businessType` property), confirms the document subject (the anchor node) with the operator if the brief is ambiguous, runs Haiku-driven section classification via `memory-classify`, and writes typed graph nodes via `memory-ingest` with the natural edges named in the ontology.
|
|
58
|
+
|
|
59
|
+
The classifier maps document sections to typed ontology labels. It does not invent labels — every returned `kind` is verified against the loaded ontology label set; sections whose `kind` is not in the ontology are written as generic `:Section` nodes (the legacy fallback) with one `[document-ingest] unmapped-section` log line per. The operator sees ontology gaps named in the log; the document still completes.
|
|
60
|
+
|
|
61
|
+
### Branch B — structured per-source archives (per-source skills)
|
|
62
|
+
|
|
63
|
+
Per-source archive imports keep their own skill because their CSVs already encode entity types deterministically and need no LLM classifier. Currently shipped:
|
|
56
64
|
|
|
57
65
|
- **linkedin-import** — LinkedIn Basic Data Export. Ships with references for `Profile.csv` and `Connections.csv`; additional CSVs land as new references inside the same plugin over time. Path: `platform/plugins/linkedin-import/skills/linkedin-import/SKILL.md`. Load via `plugin-read` before any ingestion.
|
|
58
66
|
|
|
59
67
|
Future CRM-type seed plugins (HubSpot, Salesforce, Pipedrive, iCloud contacts, Gmail CSV, etc.) will ship under the same pattern — each as its own opt-in plugin, each with its own `SKILL.md` path under `platform/plugins/<name>/skills/`. When the admin adds a new archive-import skill, its PLUGIN.md will name itself here and in the admin's `<plugin-manifest>`. No prompt change required.
|
|
60
68
|
|
|
61
|
-
###
|
|
69
|
+
### Shared ingestion discipline (both branches)
|
|
62
70
|
|
|
63
|
-
1. **
|
|
64
|
-
2. **Follow the skill
|
|
65
|
-
3. **Stamp provenance on every write.** Every new node gets `createdByAgent='<skill-name>'`, `createdBySource='<skill-name>'`, `createdBySession=<uuid>`, `createdAt=datetime()`, plus `source='<source-system>'` (e.g. `source='linkedin'`)
|
|
66
|
-
4. **Idempotent MERGE only.** Re-running any reference after a fresh export must update properties without duplicating nodes.
|
|
67
|
-
5. **Natural edges only.** Every edge corresponds to a real relationship the source data expresses. No synthetic "attach-to-owner" anchors bolted onto rows that do not describe a relationship to the
|
|
71
|
+
1. **Anchor / owner confirmation first.** Every ingestion skill defines an anchor-confirmation flow (the document subject for documents; the archive owner for archives). Execute it before any read — the anchor identity is parameter input, never inferred from "who is running this".
|
|
72
|
+
2. **Follow the skill exactly.** For Branch B, only process files the skill has a reference for; pending-reference files are documented gaps, not bugs. For Branch A, the skill drives the classification; do not hand-author Cypher for typed-node writes.
|
|
73
|
+
3. **Stamp provenance on every write.** Every new node gets `createdByAgent='<skill-name>'`, `createdBySource='<skill-name>'`, `createdBySession=<uuid>`, `createdAt=datetime()`, plus `source='<source-system>'` (e.g. `source='linkedin'` or `source='document'`) and, for documents, `sourceDocumentId=<KnowledgeDocument-elementId>`. Edges get the same stamps via `memory-write` relationships.
|
|
74
|
+
4. **Idempotent MERGE only.** Re-running any reference after a fresh export, or re-ingesting the same `attachmentId`, must update properties without duplicating nodes.
|
|
75
|
+
5. **Natural edges only.** Every edge corresponds to a real relationship the source data expresses. No synthetic "attach-to-owner" anchors bolted onto rows or sections that do not describe a relationship to the anchor.
|
|
68
76
|
|
|
69
77
|
---
|
|
70
78
|
|