feat(files): implement file storage functionality with save, load, and list operations
This commit is contained in:
36
README.md
36
README.md
@@ -41,6 +41,9 @@ A Go MCP server for capturing and retrieving thoughts, memory, and project conte
|
||||
| `recall_context` | Semantic + recency context block for injection |
|
||||
| `link_thoughts` | Create a typed relationship between thoughts |
|
||||
| `related_thoughts` | Explicit links + semantic neighbours |
|
||||
| `save_file` | Store a base64-encoded image, document, audio file, or other binary and optionally link it to a thought |
|
||||
| `load_file` | Retrieve a stored file by ID as base64 plus metadata |
|
||||
| `list_files` | Browse stored files by thought, project, or kind |
|
||||
| `backfill_embeddings` | Generate missing embeddings for stored thoughts |
|
||||
| `reparse_thought_metadata` | Re-extract and normalize metadata for stored thoughts |
|
||||
|
||||
@@ -112,6 +115,39 @@ Run `reparse_thought_metadata` to fix stale or inconsistent metadata by re-extra
|
||||
- If extraction fails for a thought, existing metadata is normalized and written only if it changes
|
||||
- Metadata reparse runs in parallel (4 workers); one failure does not abort the run
|
||||
|
||||
## File Storage
|
||||
|
||||
Use `save_file` to persist binary files as base64. Files can optionally be linked to a memory by passing `thought_id`, which also adds an attachment reference to that thought's metadata.
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "meeting-notes.pdf",
|
||||
"media_type": "application/pdf",
|
||||
"kind": "document",
|
||||
"thought_id": "optional-thought-uuid",
|
||||
"content_base64": "<base64-payload>"
|
||||
}
|
||||
```
|
||||
|
||||
Load a stored file again with:
|
||||
|
||||
```json
|
||||
{
|
||||
"id": "stored-file-uuid"
|
||||
}
|
||||
```
|
||||
|
||||
List files for a thought or project with:
|
||||
|
||||
```json
|
||||
{
|
||||
"thought_id": "optional-thought-uuid",
|
||||
"project": "optional-project-name",
|
||||
"kind": "optional-image-document-audio-file",
|
||||
"limit": 20
|
||||
}
|
||||
```
|
||||
|
||||
**Automatic backfill** (optional, config-gated):
|
||||
|
||||
```yaml
|
||||
|
||||
Reference in New Issue
Block a user