Files
ITWorx_MCP_Hub-Public/catalog/tools/ingestion-text-proposal.yaml
T

150 lines
4.2 KiB
YAML

{
"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"
]
}
}