{ "apiVersion": "hub.example.com/v1alpha1", "kind": "ToolManifest", "metadata": { "name": "Knowledge Hub Gitea Text Proposal", "slug": "ingestion-text-proposal" }, "spec": { "canonicalName": "knowledge.ingestion.text_proposal", "connectorToolName": "create_text_source_proposal", "exposedNames": [ "create_text_source_proposal" ], "version": "1.0.0", "connectorType": "ingestion", "description": "Scan bounded text already read by the separate Gitea MCP and create a complete Knowledge Hub proposal for human review. Source completeness and URI/ref/commit/SHA provenance are caller asserted; the supplied UTF-8 text must match the full Git blob SHA. The connector does not fetch a repository or independently verify its provenance.", "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." }, "source_file_name": { "type": "string", "minLength": 1, "maxLength": 128 }, "source_text": { "type": "string", "minLength": 1, "maxLength": 100000 }, "source_complete": { "type": "boolean", "const": true }, "source_uri": { "type": "string", "pattern": "^itworx-git://", "maxLength": 2048 }, "source_ref": { "type": "string", "minLength": 1, "maxLength": 300 }, "source_commit": { "type": "string", "pattern": "^[a-fA-F0-9]{7,64}$" }, "source_sha": { "type": "string", "pattern": "^(?:[a-fA-F0-9]{40}|[a-fA-F0-9]{64})$" }, "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", "minLength": 1, "maxLength": 64 }, "document_status": { "type": "string", "minLength": 1, "maxLength": 64 }, "mutation_kind": { "type": "string", "enum": [ "CreatePage", "UpdatePage" ] }, "parent_page_id": { "type": [ "string", "null" ], "format": "uuid", "description": "For CreatePage, pass the selected parent UUID or null to explicitly choose the workspace root." }, "target_page_id": { "type": "string", "format": "uuid" }, "expected_target_etag": { "type": "string", "minLength": 1, "maxLength": 256 } }, "required": [ "title", "markdown", "document_type", "document_status", "mutation_kind" ] } }, "required": [ "source_file_name", "source_text", "source_complete", "source_uri", "source_ref", "source_commit", "source_sha", "manifest", "publication" ] }, "outputSchema": { "type": "object" }, "limits": { "timeoutMs": 120000, "maxOutputBytes": 131072, "maxItems": 1 }, "redactionProfile": "strict", "requiredScopes": [ "project:{project}:write" ] } }