feat(tools): add minio ingestion into memory namespaces
This commit is contained in:
+50
-1
@@ -27,6 +27,7 @@ Tools are executable capabilities that the AI agent can call to perform actions
|
||||
- **Web**: `web.fetch`, `web.search`
|
||||
- **Browser**: `browser.navigate`, `browser.screenshot`
|
||||
- **Memory**: `memory.read`, `memory.write`, `memory.search`
|
||||
- **MinIO**: `minio.share`, `minio.ingest`
|
||||
- **Media**: `media.send`, `image.analyze`, `audio.transcribe`
|
||||
- **System**: `system.info`
|
||||
- **Session**: `sessions.list`, `sessions.delete`
|
||||
@@ -466,7 +467,7 @@ Tools are organized into groups:
|
||||
- `group:web`: Web and browser tools
|
||||
- `group:memory`: Memory and search tools
|
||||
|
||||
There are additional groups for specific integrations (gmail/gcal/gdocs/gdrive/gtasks/cron). See `TOOL_GROUPS` in `src/tools/policy.ts`.
|
||||
There are additional groups for specific integrations (gmail/gcal/gdocs/gdrive/gtasks/cron/minio). See `TOOL_GROUPS` in `src/tools/policy.ts`.
|
||||
|
||||
### Policy Resolution
|
||||
|
||||
@@ -958,6 +959,54 @@ Search memory using hybrid (keyword + vector) search.
|
||||
}
|
||||
```
|
||||
|
||||
### MinIO Tools
|
||||
|
||||
#### `minio.share`
|
||||
|
||||
Upload a local file to MinIO and return a temporary presigned download URL.
|
||||
|
||||
#### `minio.ingest`
|
||||
|
||||
Read a text-like object from MinIO and write it into a memory namespace.
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "minio.ingest",
|
||||
"description": "Read a text-like object from MinIO and ingest it into memory namespace for later retrieval/search.",
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"object_key": {
|
||||
"type": "string",
|
||||
"description": "Object key in MinIO bucket"
|
||||
},
|
||||
"bucket": {
|
||||
"type": "string",
|
||||
"description": "Optional bucket override"
|
||||
},
|
||||
"namespace": {
|
||||
"type": "string",
|
||||
"description": "Memory namespace (default: global/knowledge)"
|
||||
},
|
||||
"mode": {
|
||||
"type": "string",
|
||||
"enum": ["append", "replace"],
|
||||
"description": "Write mode"
|
||||
},
|
||||
"max_chars": {
|
||||
"type": "number",
|
||||
"description": "Maximum characters to ingest"
|
||||
},
|
||||
"force": {
|
||||
"type": "boolean",
|
||||
"description": "Override non-text extension/content safety checks"
|
||||
}
|
||||
},
|
||||
"required": ["object_key"]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Media Tools
|
||||
|
||||
#### `media.send`
|
||||
|
||||
@@ -61,6 +61,25 @@
|
||||
],
|
||||
"test_status": "pnpm eslint src/gateway/ui/pages/dashboard.js + pnpm typecheck passing; full pnpm lint currently fails due pre-existing unrelated repo lint errors"
|
||||
},
|
||||
"minio-knowledge-ingestion-tool": {
|
||||
"status": "completed",
|
||||
"date": "2026-02-16",
|
||||
"updated": "2026-02-16",
|
||||
"summary": "Added `minio.ingest` tool to import text-like objects from MinIO into memory namespaces (`append`/`replace`) with extension/content safety checks, truncation controls, and force override. Wired tool registration when MinIO + memory are enabled, updated tool policy/groups/docs, and added focused tests.",
|
||||
"files_modified": [
|
||||
"src/tools/builtin/minio-ingest.ts",
|
||||
"src/tools/builtin/minio-ingest.test.ts",
|
||||
"src/tools/builtin/index.ts",
|
||||
"src/tools/index.ts",
|
||||
"src/daemon/index.ts",
|
||||
"src/tools/policy.ts",
|
||||
"src/tools/policy.test.ts",
|
||||
"README.md",
|
||||
"docs/api/TOOLS.md",
|
||||
"docs/plans/state.json"
|
||||
],
|
||||
"test_status": "pnpm test:run src/tools/builtin/minio-ingest.test.ts src/tools/policy.test.ts + pnpm typecheck passing"
|
||||
},
|
||||
"backup-session-summary-audit-trail": {
|
||||
"status": "completed",
|
||||
"date": "2026-02-16",
|
||||
|
||||
Reference in New Issue
Block a user