{ "apiVersion": "hub.example.com/v1alpha1", "kind": "ToolManifest", "metadata": { "name": "Unraid Container Logs", "slug": "unraid-container-logs" }, "spec": { "canonicalName": "unraid.container.logs", "version": "1.0.0", "connectorType": "unraid", "description": "Read a bounded, redacted log tail for a registered container.", "riskClass": "R1", "readOnly": true, "idempotent": true, "inputSchema": { "type": "object", "additionalProperties": false, "properties": { "containerRef": { "type": "string", "pattern": "^[a-z0-9][a-z0-9-]{0,127}$" }, "tail": { "type": "integer", "minimum": 1, "maximum": 500, "default": 200 }, "sinceSeconds": { "type": [ "integer", "null" ], "minimum": 1, "maximum": 86400 }, "contains": { "type": [ "string", "null" ], "maxLength": 200 } }, "required": [ "containerRef" ] }, "outputSchema": { "type": "object", "additionalProperties": false, "properties": { "containerRef": { "type": "string", "pattern": "^[a-z0-9][a-z0-9-]{0,127}$" }, "lines": { "type": "array", "maxItems": 500, "items": { "type": "string", "maxLength": 4096 } }, "truncated": { "type": "boolean" }, "redactionsApplied": { "type": "integer", "minimum": 0 }, "generatedAt": { "type": "string", "format": "date-time" } }, "required": [ "containerRef", "lines", "truncated", "redactionsApplied", "generatedAt" ] }, "limits": { "timeoutMs": 10000, "maxOutputBytes": 262144, "maxItems": 500 }, "redactionProfile": "logs", "requiredScopes": [ "project:{project}:read" ] } }