{ "apiVersion": "hub.example.com/v1alpha1", "kind": "ToolManifest", "metadata": { "name": "Knowledge Hub Analyze", "slug": "ingestion-analyze" }, "spec": { "canonicalName": "knowledge.ingestion.analyze", "connectorToolName": "analyze_knowledge_files", "exposedNames": [ "analyze_knowledge_files" ], "version": "1.0.0", "connectorType": "ingestion", "description": "After reading attached content with extract_knowledge_files and checking the Knowledge Hub destination, rescan the source files and create a complete proposal for human review.", "riskClass": "R2", "readOnly": false, "idempotent": true, "inputSchema": { "type": "object", "additionalProperties": false, "properties": { "project_id": { "type": "string", "format": "uuid", "description": "Optional target project UUID. If omitted, the operation uses the Knowledge Hub workspace; this requires the default-off server policy and the trusted knowledge-hub/prod connector identity. A supplied UUID remains strictly allowlisted." }, "files": { "type": "array", "minItems": 1, "maxItems": 5, "items": { "type": "object", "additionalProperties": false, "properties": { "download_url": { "type": "string", "format": "uri", "maxLength": 8192 }, "file_id": { "type": "string", "minLength": 1, "maxLength": 128, "description": "Opaque attachment reference; preserve its exact value. Must contain 1–128 printable Unicode characters." }, "mime_type": { "type": "string", "maxLength": 128 }, "file_name": { "type": "string", "maxLength": 255 } }, "required": [ "download_url", "file_id" ] } }, "manifest": { "type": "string", "minLength": 1, "maxLength": 10000 }, "publication": { "type": "object", "additionalProperties": false, "properties": { "title": { "type": "string", "minLength": 1, "maxLength": 300 }, "markdown": { "type": "string", "minLength": 1, "maxLength": 32000 }, "document_type": { "type": "string", "maxLength": 64 }, "document_status": { "type": "string", "maxLength": 64 }, "mutation_kind": { "type": "string", "enum": [ "CreatePage", "UpdatePage" ] }, "parent_page_id": { "type": [ "string", "null" ], "format": "uuid" }, "target_page_id": { "type": "string", "format": "uuid" }, "expected_target_etag": { "type": "string", "maxLength": 256 } }, "required": [ "title", "markdown", "document_type", "document_status", "mutation_kind" ] } }, "required": [ "files", "manifest", "publication" ] }, "outputSchema": { "type": "object" }, "limits": { "timeoutMs": 120000, "maxOutputBytes": 131072, "maxItems": 20 }, "redactionProfile": "strict", "requiredScopes": [ "project:{project}:write" ] } }