Universal file storage with multiple backends (Local, S3, Git), content processing, deduplication, and knowledge graph indexing.
You've got 500 client files. Contracts, designs, meeting notes, reports. Scattered across Google Drive, Dropbox, your laptop, and email attachments. Finding anything takes forever.
"I know we signed that contract in Q2 but which client was it?" Twenty minutes of searching through folders.
"Find all contracts signed in Q2 that mention 'milestone payments'"
*Searches full-text content across all files, filters by date, extracts relevant sections*
"Found 7 contracts. Here they are sorted by signature date, with the milestone payment sections highlighted."
"Can you organize all client files by project status and link them to the CRM records?"
*Creates folder structure, moves files, builds knowledge graph linking files → clients → projects*
"Done. Your files are now organized by active/completed/paused projects. Each file is linked to its client in the knowledge graph. You can now ask 'show me all files for this client' and get everything instantly."
This isn't magic. This is collaboration.
Your files aren't just stored. They're understood, connected, and searchable by meaning—not just filename.
File system-based with recursive directory support
AWS S3 and S3-compatible (MinIO)
Version-controlled file storage
In-process for testing
Processors extract metadata and generate previews from uploaded files.
Extracts: line count, word count, character count. Preview: first 1000 chars.
Validates structure, extracts keys, determines type (object/array). Preview: pretty-printed JSON.
Parses with header detection, extracts row/column count. Preview: first 10 rows as table.
Files are automatically indexed in Neo4j with relationships to concepts and entities.
// Neo4j File node schema
CREATE (f:File {
fileId: string,
path: string,
name: string,
mimeType: string,
size: number,
hash: string,
createdAt: datetime,
updatedAt: datetime
})
// Relationship types
(:File)-[:DOCUMENTS]->(:Concept)
(:File)-[:REFERENCES]->(:Entity)
(:File)-[:RELATES_TO]->(:File)Use tools like link_file_to_concept to create relationships, then query with graph traversal.
SHA-256 content hashing detects duplicate files automatically:
// Upload file
const file1 = await fileManager.uploadFile("report.pdf", content);
// hash: "a1b2c3d4..."
// Upload identical file with different name
const file2 = await fileManager.uploadFile("backup.pdf", content);
// hash: "a1b2c3d4..." (same hash!)
// Query finds duplicates
const duplicates = await fileManager.findDuplicates();
// Returns: [{ hash: "a1b2c3d4...", files: ["report.pdf", "backup.pdf"] }]list_filesList files with space-scoped isolation
read_fileRead file contents with space validation
write_fileCreate/overwrite files with space scoping
delete_fileDelete files with ownership validation
search_filesSearch by name/content with filters
link_file_to_conceptCreate graph relationships
find_files_by_conceptDiscover files via concepts
get_file_graph_contextShow all file relationships