Initial curated ITWorx_MCP_Hub source from 368fba691ea8d23403b4d56b53b5ec670d7c5020
This commit is contained in:
commit
cb5be898ea
663 files changed
+82674
No files matched your search
@@ -0,0 +1,111 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {
|
||||
"name": "Deployment Project Status",
|
||||
"slug": "deployment-project-status"
|
||||
},
|
||||
"spec": {
|
||||
"canonicalName": "deployment.project.status",
|
||||
"version": "1.0.0",
|
||||
"connectorType": "deployment",
|
||||
"description": "Return read-only deployment revision and service health for the current project.",
|
||||
"riskClass": "R1",
|
||||
"readOnly": true,
|
||||
"idempotent": true,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {},
|
||||
"required": []
|
||||
},
|
||||
"outputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"deploymentRef": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-z0-9][a-z0-9-]{0,127}$"
|
||||
},
|
||||
"revision": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 200
|
||||
},
|
||||
"sourceCommit": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 100
|
||||
},
|
||||
"status": {
|
||||
"enum": [
|
||||
"healthy",
|
||||
"degraded",
|
||||
"unavailable",
|
||||
"unknown"
|
||||
]
|
||||
},
|
||||
"services": {
|
||||
"type": "array",
|
||||
"maxItems": 100,
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"maxLength": 200
|
||||
},
|
||||
"containerRef": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-z0-9][a-z0-9-]{0,127}$"
|
||||
},
|
||||
"state": {
|
||||
"type": "string",
|
||||
"maxLength": 100
|
||||
},
|
||||
"health": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 100
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name",
|
||||
"containerRef",
|
||||
"state",
|
||||
"health"
|
||||
]
|
||||
}
|
||||
},
|
||||
"generatedAt": {
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"deploymentRef",
|
||||
"revision",
|
||||
"sourceCommit",
|
||||
"status",
|
||||
"services",
|
||||
"generatedAt"
|
||||
]
|
||||
},
|
||||
"limits": {
|
||||
"timeoutMs": 10000,
|
||||
"maxOutputBytes": 262144,
|
||||
"maxItems": 100
|
||||
},
|
||||
"redactionProfile": "metadata",
|
||||
"requiredScopes": [
|
||||
"project:{project}:read"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,101 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {
|
||||
"name": "Deployment Stack Inspect",
|
||||
"slug": "deployment-stack-inspect"
|
||||
},
|
||||
"spec": {
|
||||
"canonicalName": "deployment.stack.inspect",
|
||||
"version": "1.0.0",
|
||||
"connectorType": "deployment",
|
||||
"description": "Inspect a registered Compose deployment without exposing raw compose paths or write actions.",
|
||||
"riskClass": "R1",
|
||||
"readOnly": true,
|
||||
"idempotent": true,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"deploymentRef": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-z0-9][a-z0-9-]{0,127}$"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"deploymentRef"
|
||||
]
|
||||
},
|
||||
"outputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"deploymentRef": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-z0-9][a-z0-9-]{0,127}$"
|
||||
},
|
||||
"composeProject": {
|
||||
"type": "string",
|
||||
"maxLength": 200
|
||||
},
|
||||
"revision": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 200
|
||||
},
|
||||
"services": {
|
||||
"type": "array",
|
||||
"maxItems": 100,
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"maxLength": 200
|
||||
},
|
||||
"image": {
|
||||
"type": "string",
|
||||
"maxLength": 500
|
||||
},
|
||||
"containerRef": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 128
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name",
|
||||
"image",
|
||||
"containerRef"
|
||||
]
|
||||
}
|
||||
},
|
||||
"generatedAt": {
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"deploymentRef",
|
||||
"composeProject",
|
||||
"revision",
|
||||
"services",
|
||||
"generatedAt"
|
||||
]
|
||||
},
|
||||
"limits": {
|
||||
"timeoutMs": 10000,
|
||||
"maxOutputBytes": 262144,
|
||||
"maxItems": 100
|
||||
},
|
||||
"redactionProfile": "metadata",
|
||||
"requiredScopes": [
|
||||
"project:{project}:read"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {"name": "Gitea Branch Create", "slug": "gitea-branch-create"},
|
||||
"spec": {
|
||||
"canonicalName": "gitea.branch.create",
|
||||
"version": "1.9.0",
|
||||
"connectorType": "gitea",
|
||||
"description": "Create any valid non-default branch from an existing safe ref. Never creates or modifies the default branch.",
|
||||
"riskClass": "R2",
|
||||
"readOnly": false,
|
||||
"idempotent": false,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"repositoryRef": {"type": "string", "pattern": "^[a-z0-9][a-z0-9-]{0,127}$"},
|
||||
"branch": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._/-]{0,299}$", "maxLength": 300},
|
||||
"fromRef": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._/-]{0,299}$", "maxLength": 300}
|
||||
},
|
||||
"required": ["repositoryRef", "branch", "fromRef"]
|
||||
},
|
||||
"outputSchema": {"type": "object"},
|
||||
"limits": {"timeoutMs": 15000, "maxOutputBytes": 262144, "maxItems": 1},
|
||||
"redactionProfile": "metadata",
|
||||
"requiredScopes": ["project:{project}:write"]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"Gitea Branch Delete","slug":"gitea-branch-delete"},"spec":{"canonicalName":"gitea.branch.delete","version":"1.14.0","connectorType":"gitea","description":"Delete only a non-default branch whose matching PR is merged or closed, with an exact head SHA lock and no open PR reference.","riskClass":"R3","readOnly":false,"idempotent":false,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"repositoryRef":{"type":"string"},"branch":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._/-]{0,299}$"},"expectedHeadSha":{"type":"string","pattern":"^[0-9a-fA-F]{40,64}$"}},"required":["repositoryRef","branch","expectedHeadSha"]},"outputSchema":{"type":"object"},"limits":{"timeoutMs":15000,"maxOutputBytes":262144,"maxItems":1},"redactionProfile":"documents","requiredScopes":["project:{project}:write"]}}
|
||||
@@ -0,0 +1,105 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {
|
||||
"name": "Gitea Branch List",
|
||||
"slug": "gitea-branch-list"
|
||||
},
|
||||
"spec": {
|
||||
"canonicalName": "gitea.branch.list",
|
||||
"version": "1.0.0",
|
||||
"connectorType": "gitea",
|
||||
"description": "List bounded branch metadata for a registered repository.",
|
||||
"riskClass": "R1",
|
||||
"readOnly": true,
|
||||
"idempotent": true,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"repositoryRef": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-z0-9][a-z0-9-]{0,127}$"
|
||||
},
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"minimum": 1,
|
||||
"maximum": 100,
|
||||
"default": 25
|
||||
},
|
||||
"cursor": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 500,
|
||||
"default": null
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"repositoryRef"
|
||||
]
|
||||
},
|
||||
"outputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"items": {
|
||||
"type": "array",
|
||||
"maxItems": 100,
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"maxLength": 300
|
||||
},
|
||||
"commitSha": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-f0-9]{7,64}$"
|
||||
},
|
||||
"protected": {
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name",
|
||||
"commitSha",
|
||||
"protected"
|
||||
]
|
||||
}
|
||||
},
|
||||
"nextCursor": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 500
|
||||
},
|
||||
"truncated": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"generatedAt": {
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"items",
|
||||
"nextCursor",
|
||||
"truncated",
|
||||
"generatedAt"
|
||||
]
|
||||
},
|
||||
"limits": {
|
||||
"timeoutMs": 10000,
|
||||
"maxOutputBytes": 262144,
|
||||
"maxItems": 100
|
||||
},
|
||||
"redactionProfile": "metadata",
|
||||
"requiredScopes": [
|
||||
"project:{project}:read"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"Gitea Branch Protection Ensure","slug":"gitea-branch-protection-ensure"},"spec":{"canonicalName":"gitea.branchprotection.ensure","version":"1.8.0","connectorType":"gitea","description":"Apply one unchanged governance preview and verify managed validation plus default-branch protection.","riskClass":"R2","readOnly":false,"idempotent":true,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"repositoryRef":{"type":"string"},"expectedPlanHash":{"type":"string","pattern":"^[0-9a-f]{64}$"}},"required":["repositoryRef","expectedPlanHash"]},"outputSchema":{"type":"object"},"limits":{"timeoutMs":30000,"maxOutputBytes":262144,"maxItems":1},"redactionProfile":"documents","requiredScopes":["project:{project}:write"]}}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"Gitea Branch Protection Get","slug":"gitea-branch-protection-get"},"spec":{"canonicalName":"gitea.branchprotection.get","version":"1.8.0","connectorType":"gitea","description":"Read the effective protection rule for a registered repository default branch.","riskClass":"R1","readOnly":true,"idempotent":true,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"repositoryRef":{"type":"string"}},"required":["repositoryRef"]},"outputSchema":{"type":"object"},"limits":{"timeoutMs":20000,"maxOutputBytes":262144,"maxItems":1},"redactionProfile":"documents","requiredScopes":["project:{project}:read"]}}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"Gitea Branch Protection Preview","slug":"gitea-branch-protection-preview"},"spec":{"canonicalName":"gitea.branchprotection.preview","version":"1.8.0","connectorType":"gitea","description":"Preview the exact managed-validation and default-branch protection diff and return a plan hash.","riskClass":"R1","readOnly":true,"idempotent":true,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"repositoryRef":{"type":"string"}},"required":["repositoryRef"]},"outputSchema":{"type":"object"},"limits":{"timeoutMs":20000,"maxOutputBytes":262144,"maxItems":1},"redactionProfile":"documents","requiredScopes":["project:{project}:read"]}}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"Gitea Capabilities Get","slug":"gitea-capabilities-get"},"spec":{"canonicalName":"gitea.capabilities.get","version":"1.8.0","connectorType":"gitea","description":"Return the current governed tool inventory and stable capability fingerprint for refresh checks.","riskClass":"R1","readOnly":true,"idempotent":true,"inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"outputSchema":{"type":"object"},"limits":{"timeoutMs":10000,"maxOutputBytes":262144,"maxItems":100},"redactionProfile":"documents","requiredScopes":["project:{project}:read"]}}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"Gitea Change Reconcile","slug":"gitea-change-reconcile"},"spec":{"canonicalName":"gitea.change.reconcile","version":"1.12.0","connectorType":"gitea","description":"Compute the next durable delivery action from a consistent branch, pull-request and validation snapshot without mutation.","riskClass":"R1","readOnly":true,"idempotent":true,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"repositoryRef":{"type":"string"},"branch":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._/-]{0,299}$"}},"required":["repositoryRef","branch"]},"outputSchema":{"type":"object"},"limits":{"timeoutMs":30000,"maxOutputBytes":262144,"maxItems":100},"redactionProfile":"documents","requiredScopes":["project:{project}:read"]}}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"Gitea Change Review","slug":"gitea-change-review"},"spec":{"canonicalName":"gitea.change.review","version":"1.9.0","connectorType":"gitea","description":"Render branch, PR, comparison and validation state in the MCP Apps review surface.","riskClass":"R1","readOnly":true,"idempotent":true,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"repositoryRef":{"type":"string"},"branch":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._/-]{0,299}$"}},"required":["repositoryRef","branch"]},"outputSchema":{"type":"object"},"limits":{"timeoutMs":30000,"maxOutputBytes":524288,"maxItems":100},"redactionProfile":"documents","requiredScopes":["project:{project}:read"]}}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"Gitea Change Status","slug":"gitea-change-status"},"spec":{"canonicalName":"gitea.change.status","version":"1.10.0","connectorType":"gitea","description":"Use this to resume one branch from durable PR and validation state. Respect pollAfterMs and repeat only while terminal=false.","riskClass":"R1","readOnly":true,"idempotent":true,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"repositoryRef":{"type":"string"},"branch":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._/-]{0,299}$"}},"required":["repositoryRef","branch"]},"outputSchema":{"type":"object"},"limits":{"timeoutMs":15000,"maxOutputBytes":131072,"maxItems":25},"redactionProfile":"documents","requiredScopes":["project:{project}:read"]}}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1", "kind": "ToolManifest",
|
||||
"metadata": {"name": "Gitea Changeset Apply", "slug": "gitea-changeset-apply"},
|
||||
"spec": {
|
||||
"canonicalName": "gitea.changeset.apply", "version": "1.9.0", "connectorType": "gitea",
|
||||
"description": "Atomically create, update, patch, move or delete up to 50 SHA-locked files in one commit on any valid non-default branch.",
|
||||
"riskClass": "R2", "readOnly": false, "idempotent": false,
|
||||
"inputSchema": {"type": "object", "additionalProperties": false, "properties": {"repositoryRef": {"type": "string"}, "branch": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._/-]{0,299}$"}, "message": {"type": "string", "minLength": 1, "maxLength": 1000}, "operations": {"type": "array", "minItems": 1, "maxItems": 50, "items": {"type": "object"}}}, "required": ["repositoryRef", "branch", "message", "operations"]},
|
||||
"outputSchema": {"type": "object"},
|
||||
"limits": {"timeoutMs": 60000, "maxOutputBytes": 262144, "maxItems": 50},
|
||||
"redactionProfile": "documents", "requiredScopes": ["project:{project}:write"]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1", "kind": "ToolManifest",
|
||||
"metadata": {"name": "Gitea Changeset Preview", "slug": "gitea-changeset-preview"},
|
||||
"spec": {
|
||||
"canonicalName": "gitea.changeset.preview", "version": "1.9.0", "connectorType": "gitea",
|
||||
"description": "Validate SHA locks and return the exact bounded multi-file diff before a changeset is applied.",
|
||||
"riskClass": "R1", "readOnly": true, "idempotent": true,
|
||||
"inputSchema": {"type": "object", "additionalProperties": false, "properties": {"repositoryRef": {"type": "string"}, "branch": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._/-]{0,299}$"}, "operations": {"type": "array", "minItems": 1, "maxItems": 50, "items": {"type": "object"}}}, "required": ["repositoryRef", "branch", "operations"]},
|
||||
"outputSchema": {"type": "object"},
|
||||
"limits": {"timeoutMs": 30000, "maxOutputBytes": 262144, "maxItems": 50},
|
||||
"redactionProfile": "documents", "requiredScopes": ["project:{project}:read"]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,125 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {
|
||||
"name": "Gitea Code Search",
|
||||
"slug": "gitea-code-search"
|
||||
},
|
||||
"spec": {
|
||||
"canonicalName": "gitea.code.search",
|
||||
"version": "1.3.0",
|
||||
"connectorType": "gitea",
|
||||
"description": "Search actual UTF-8 code in one registered repository and return bounded line matches with file URIs.",
|
||||
"riskClass": "R1",
|
||||
"readOnly": true,
|
||||
"idempotent": true,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"query": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"maxLength": 500
|
||||
},
|
||||
"repositoryRef": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-z0-9][a-z0-9-]{0,127}$"
|
||||
},
|
||||
"ref": {"type": ["string", "null"], "maxLength": 300},
|
||||
"pathPrefix": {"type": "string", "maxLength": 2048, "default": ""},
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"minimum": 1,
|
||||
"maximum": 50,
|
||||
"default": 20
|
||||
},
|
||||
"cursor": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 500,
|
||||
"default": null
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"repositoryRef",
|
||||
"query"
|
||||
]
|
||||
},
|
||||
"outputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"items": {
|
||||
"type": "array",
|
||||
"maxItems": 100,
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"fileUri": {
|
||||
"type": "string",
|
||||
"pattern": "^itworx-git://",
|
||||
"maxLength": 2048
|
||||
},
|
||||
"repositoryRef": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-z0-9][a-z0-9-]{0,127}$"
|
||||
},
|
||||
"path": {
|
||||
"type": "string",
|
||||
"maxLength": 1000
|
||||
},
|
||||
"ref": {
|
||||
"type": "string",
|
||||
"maxLength": 300
|
||||
},
|
||||
"snippet": {
|
||||
"type": "string",
|
||||
"maxLength": 2000
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"fileUri",
|
||||
"repositoryRef",
|
||||
"path",
|
||||
"ref",
|
||||
"snippet"
|
||||
]
|
||||
}
|
||||
},
|
||||
"nextCursor": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 500
|
||||
},
|
||||
"truncated": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"generatedAt": {
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"items",
|
||||
"nextCursor",
|
||||
"truncated",
|
||||
"generatedAt"
|
||||
]
|
||||
},
|
||||
"limits": {
|
||||
"timeoutMs": 15000,
|
||||
"maxOutputBytes": 196608,
|
||||
"maxItems": 50
|
||||
},
|
||||
"redactionProfile": "documents",
|
||||
"requiredScopes": [
|
||||
"project:{project}:read"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"Gitea Commit Get","slug":"gitea-commit-get"},"spec":{"canonicalName":"gitea.commit.get","version":"1.4.0","connectorType":"gitea","description":"Inspect one commit with verification, statistics and a bounded affected-file list.","riskClass":"R1","readOnly":true,"idempotent":true,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"repositoryRef":{"type":"string"},"ref":{"type":"string","minLength":1,"maxLength":300}},"required":["repositoryRef","ref"]},"outputSchema":{"type":"object"},"limits":{"timeoutMs":15000,"maxOutputBytes":262144,"maxItems":100},"redactionProfile":"documents","requiredScopes":["project:{project}:read"]}}
|
||||
@@ -0,0 +1,121 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {
|
||||
"name": "Gitea Commit List",
|
||||
"slug": "gitea-commit-list"
|
||||
},
|
||||
"spec": {
|
||||
"canonicalName": "gitea.commit.list",
|
||||
"version": "1.0.0",
|
||||
"connectorType": "gitea",
|
||||
"description": "List bounded commit metadata for a registered repository and optional registered branch.",
|
||||
"riskClass": "R1",
|
||||
"readOnly": true,
|
||||
"idempotent": true,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"repositoryRef": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-z0-9][a-z0-9-]{0,127}$"
|
||||
},
|
||||
"branch": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 300
|
||||
},
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"minimum": 1,
|
||||
"maximum": 100,
|
||||
"default": 25
|
||||
},
|
||||
"cursor": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 500,
|
||||
"default": null
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"repositoryRef"
|
||||
]
|
||||
},
|
||||
"outputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"items": {
|
||||
"type": "array",
|
||||
"maxItems": 100,
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"sha": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-f0-9]{7,64}$"
|
||||
},
|
||||
"summary": {
|
||||
"type": "string",
|
||||
"maxLength": 1000
|
||||
},
|
||||
"authorName": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 300
|
||||
},
|
||||
"committedAt": {
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"sha",
|
||||
"summary",
|
||||
"authorName",
|
||||
"committedAt"
|
||||
]
|
||||
}
|
||||
},
|
||||
"nextCursor": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 500
|
||||
},
|
||||
"truncated": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"generatedAt": {
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"items",
|
||||
"nextCursor",
|
||||
"truncated",
|
||||
"generatedAt"
|
||||
]
|
||||
},
|
||||
"limits": {
|
||||
"timeoutMs": 10000,
|
||||
"maxOutputBytes": 262144,
|
||||
"maxItems": 100
|
||||
},
|
||||
"redactionProfile": "metadata",
|
||||
"requiredScopes": [
|
||||
"project:{project}:read"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {"name": "Gitea Commit Status List", "slug": "gitea-commit-status-list"},
|
||||
"spec": {
|
||||
"canonicalName": "gitea.commitstatus.list",
|
||||
"version": "1.0.0",
|
||||
"connectorType": "gitea",
|
||||
"description": "List bounded CI and commit status metadata for an exact repository ref.",
|
||||
"riskClass": "R1",
|
||||
"readOnly": true,
|
||||
"idempotent": true,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"repositoryRef": {"type": "string", "pattern": "^[a-z0-9][a-z0-9-]{0,127}$"},
|
||||
"ref": {"type": "string", "minLength": 1, "maxLength": 300},
|
||||
"limit": {"type": "integer", "minimum": 1, "maximum": 100, "default": 25},
|
||||
"cursor": {"type": ["string", "null"], "maxLength": 500, "default": null}
|
||||
},
|
||||
"required": ["repositoryRef", "ref"]
|
||||
},
|
||||
"outputSchema": {"type": "object"},
|
||||
"limits": {"timeoutMs": 10000, "maxOutputBytes": 262144, "maxItems": 100},
|
||||
"redactionProfile": "metadata",
|
||||
"requiredScopes": ["project:{project}:read"]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"Gitea Connection Check","slug":"gitea-connection-check"},"spec":{"canonicalName":"gitea.connection.check","version":"1.8.0","connectorType":"gitea","description":"Verify scoped upstream access, repository discovery and the current capability fingerprint without exposing credentials.","riskClass":"R1","readOnly":true,"idempotent":true,"inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"outputSchema":{"type":"object"},"limits":{"timeoutMs":20000,"maxOutputBytes":262144,"maxItems":100},"redactionProfile":"documents","requiredScopes":["project:{project}:read"]}}
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {"name": "Gitea File Create", "slug": "gitea-file-create"},
|
||||
"spec": {
|
||||
"canonicalName": "gitea.file.create",
|
||||
"version": "1.9.0",
|
||||
"connectorType": "gitea",
|
||||
"description": "Create one bounded UTF-8 text file on any valid non-default branch; direct default-branch writes are rejected.",
|
||||
"riskClass": "R2",
|
||||
"readOnly": false,
|
||||
"idempotent": false,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"repositoryRef": {"type": "string", "pattern": "^[a-z0-9][a-z0-9-]{0,127}$"},
|
||||
"path": {"type": "string", "minLength": 1, "maxLength": 2048},
|
||||
"branch": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._/-]{0,299}$", "maxLength": 300},
|
||||
"content": {"type": "string", "maxLength": 200000},
|
||||
"message": {"type": "string", "minLength": 1, "maxLength": 1000}
|
||||
},
|
||||
"required": ["repositoryRef", "path", "branch", "content", "message"]
|
||||
},
|
||||
"outputSchema": {"type": "object"},
|
||||
"limits": {"timeoutMs": 15000, "maxOutputBytes": 262144, "maxItems": 1},
|
||||
"redactionProfile": "documents",
|
||||
"requiredScopes": ["project:{project}:write"]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {"name": "Gitea File Delete", "slug": "gitea-file-delete"},
|
||||
"spec": {
|
||||
"canonicalName": "gitea.file.delete",
|
||||
"version": "1.9.0",
|
||||
"connectorType": "gitea",
|
||||
"description": "Delete one file from any valid non-default branch using the caller-supplied current SHA as an optimistic lock.",
|
||||
"riskClass": "R2",
|
||||
"readOnly": false,
|
||||
"idempotent": false,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"repositoryRef": {"type": "string", "pattern": "^[a-z0-9][a-z0-9-]{0,127}$"},
|
||||
"path": {"type": "string", "minLength": 1, "maxLength": 2048},
|
||||
"branch": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._/-]{0,299}$", "maxLength": 300},
|
||||
"message": {"type": "string", "minLength": 1, "maxLength": 1000},
|
||||
"expectedSha": {"type": "string", "pattern": "^[0-9a-fA-F]{40,64}$"}
|
||||
},
|
||||
"required": ["repositoryRef", "path", "branch", "message", "expectedSha"]
|
||||
},
|
||||
"outputSchema": {"type": "object"},
|
||||
"limits": {"timeoutMs": 15000, "maxOutputBytes": 262144, "maxItems": 1},
|
||||
"redactionProfile": "documents",
|
||||
"requiredScopes": ["project:{project}:write"]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {
|
||||
"name": "Gitea File Read",
|
||||
"slug": "gitea-file-read"
|
||||
},
|
||||
"spec": {
|
||||
"canonicalName": "gitea.file.read",
|
||||
"version": "1.2.0",
|
||||
"connectorType": "gitea",
|
||||
"description": "Read one bounded file using a URI returned by an authorized repository tool, optionally from an explicit branch or ref.",
|
||||
"riskClass": "R1",
|
||||
"readOnly": true,
|
||||
"idempotent": true,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"fileUri": {
|
||||
"type": "string",
|
||||
"pattern": "^itworx-git://",
|
||||
"maxLength": 2048
|
||||
},
|
||||
"ref": {
|
||||
"type": ["string", "null"],
|
||||
"maxLength": 300
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"fileUri"
|
||||
]
|
||||
},
|
||||
"outputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"fileUri": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"maxLength": 2048
|
||||
},
|
||||
"mimeType": {
|
||||
"type": "string",
|
||||
"maxLength": 100
|
||||
},
|
||||
"content": {
|
||||
"type": "string",
|
||||
"maxLength": 200000
|
||||
},
|
||||
"commitSha": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-f0-9]{7,64}$"
|
||||
},
|
||||
"truncated": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"generatedAt": {
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"fileUri",
|
||||
"mimeType",
|
||||
"content",
|
||||
"commitSha",
|
||||
"truncated",
|
||||
"generatedAt"
|
||||
]
|
||||
},
|
||||
"limits": {
|
||||
"timeoutMs": 10000,
|
||||
"maxOutputBytes": 262144,
|
||||
"maxItems": 1
|
||||
},
|
||||
"redactionProfile": "documents",
|
||||
"requiredScopes": [
|
||||
"project:{project}:read"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {"name": "Gitea File Update", "slug": "gitea-file-update"},
|
||||
"spec": {
|
||||
"canonicalName": "gitea.file.update",
|
||||
"version": "1.9.0",
|
||||
"connectorType": "gitea",
|
||||
"description": "Update one bounded UTF-8 text file on a change branch using the caller-supplied current SHA as an optimistic lock.",
|
||||
"riskClass": "R2",
|
||||
"readOnly": false,
|
||||
"idempotent": false,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"repositoryRef": {"type": "string", "pattern": "^[a-z0-9][a-z0-9-]{0,127}$"},
|
||||
"path": {"type": "string", "minLength": 1, "maxLength": 2048},
|
||||
"branch": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._/-]{0,299}$", "maxLength": 300},
|
||||
"content": {"type": "string", "maxLength": 200000},
|
||||
"message": {"type": "string", "minLength": 1, "maxLength": 1000},
|
||||
"expectedSha": {"type": "string", "pattern": "^[0-9a-fA-F]{40,64}$"}
|
||||
},
|
||||
"required": ["repositoryRef", "path", "branch", "content", "message", "expectedSha"]
|
||||
},
|
||||
"outputSchema": {"type": "object"},
|
||||
"limits": {"timeoutMs": 15000, "maxOutputBytes": 262144, "maxItems": 1},
|
||||
"redactionProfile": "documents",
|
||||
"requiredScopes": ["project:{project}:write"]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {"name": "Gitea Issue Comment Create", "slug": "gitea-issue-comment-create"},
|
||||
"spec": {
|
||||
"canonicalName": "gitea.issue.comment.create",
|
||||
"version": "1.1.0",
|
||||
"connectorType": "gitea",
|
||||
"description": "Add one bounded comment to an existing Gitea issue or pull request when the user requested that external communication.",
|
||||
"riskClass": "R2",
|
||||
"readOnly": false,
|
||||
"idempotent": false,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"repositoryRef": {"type": "string", "pattern": "^[a-z0-9][a-z0-9-]{0,127}$"},
|
||||
"number": {"type": "integer", "minimum": 1, "maximum": 2147483647},
|
||||
"body": {"type": "string", "minLength": 1, "maxLength": 32000}
|
||||
},
|
||||
"required": ["repositoryRef", "number", "body"]
|
||||
},
|
||||
"outputSchema": {"type": "object"},
|
||||
"limits": {"timeoutMs": 15000, "maxOutputBytes": 262144, "maxItems": 1},
|
||||
"redactionProfile": "metadata",
|
||||
"requiredScopes": ["project:{project}:write"]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {"name": "Gitea Issue Create", "slug": "gitea-issue-create"},
|
||||
"spec": {
|
||||
"canonicalName": "gitea.issue.create",
|
||||
"version": "1.1.0",
|
||||
"connectorType": "gitea",
|
||||
"description": "Create one issue in an explicitly registered repository when the user requested that external write.",
|
||||
"riskClass": "R2",
|
||||
"readOnly": false,
|
||||
"idempotent": false,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"repositoryRef": {"type": "string", "pattern": "^[a-z0-9][a-z0-9-]{0,127}$"},
|
||||
"title": {"type": "string", "minLength": 1, "maxLength": 500},
|
||||
"body": {"type": "string", "maxLength": 32000, "default": ""}
|
||||
},
|
||||
"required": ["repositoryRef", "title"]
|
||||
},
|
||||
"outputSchema": {"type": "object"},
|
||||
"limits": {"timeoutMs": 15000, "maxOutputBytes": 262144, "maxItems": 1},
|
||||
"redactionProfile": "metadata",
|
||||
"requiredScopes": ["project:{project}:write"]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,130 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {
|
||||
"name": "Gitea Issue List",
|
||||
"slug": "gitea-issue-list"
|
||||
},
|
||||
"spec": {
|
||||
"canonicalName": "gitea.issue.list",
|
||||
"version": "1.0.0",
|
||||
"connectorType": "gitea",
|
||||
"description": "List issue metadata without creating or modifying issues.",
|
||||
"riskClass": "R1",
|
||||
"readOnly": true,
|
||||
"idempotent": true,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"repositoryRef": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-z0-9][a-z0-9-]{0,127}$"
|
||||
},
|
||||
"state": {
|
||||
"enum": [
|
||||
"open",
|
||||
"closed",
|
||||
"all"
|
||||
],
|
||||
"default": "open"
|
||||
},
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"minimum": 1,
|
||||
"maximum": 100,
|
||||
"default": 25
|
||||
},
|
||||
"cursor": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 500,
|
||||
"default": null
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"repositoryRef"
|
||||
]
|
||||
},
|
||||
"outputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"items": {
|
||||
"type": "array",
|
||||
"maxItems": 100,
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"number": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"title": {
|
||||
"type": "string",
|
||||
"maxLength": 500
|
||||
},
|
||||
"state": {
|
||||
"enum": [
|
||||
"open",
|
||||
"closed"
|
||||
]
|
||||
},
|
||||
"updatedAt": {
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
},
|
||||
"labels": {
|
||||
"type": "array",
|
||||
"maxItems": 50,
|
||||
"items": {
|
||||
"type": "string",
|
||||
"maxLength": 100
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"number",
|
||||
"title",
|
||||
"state",
|
||||
"updatedAt",
|
||||
"labels"
|
||||
]
|
||||
}
|
||||
},
|
||||
"nextCursor": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 500
|
||||
},
|
||||
"truncated": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"generatedAt": {
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"items",
|
||||
"nextCursor",
|
||||
"truncated",
|
||||
"generatedAt"
|
||||
]
|
||||
},
|
||||
"limits": {
|
||||
"timeoutMs": 10000,
|
||||
"maxOutputBytes": 262144,
|
||||
"maxItems": 100
|
||||
},
|
||||
"redactionProfile": "metadata",
|
||||
"requiredScopes": [
|
||||
"project:{project}:read"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,98 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {
|
||||
"name": "Gitea Portfolio Issue Search",
|
||||
"slug": "gitea-issue-search"
|
||||
},
|
||||
"spec": {
|
||||
"canonicalName": "gitea.issue.search",
|
||||
"version": "1.0.0",
|
||||
"connectorType": "gitea",
|
||||
"description": "Search issue metadata across the scoped repository portfolio in one call.",
|
||||
"riskClass": "R1",
|
||||
"readOnly": true,
|
||||
"idempotent": true,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"state": {
|
||||
"enum": ["open", "closed", "all"],
|
||||
"default": "open"
|
||||
},
|
||||
"excludeRepositoryNames": {
|
||||
"type": "array",
|
||||
"maxItems": 20,
|
||||
"uniqueItems": true,
|
||||
"items": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"maxLength": 120
|
||||
},
|
||||
"default": []
|
||||
},
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"minimum": 1,
|
||||
"maximum": 100,
|
||||
"default": 100
|
||||
},
|
||||
"cursor": {
|
||||
"type": ["string", "null"],
|
||||
"maxLength": 500,
|
||||
"default": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"outputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"items": {
|
||||
"type": "array",
|
||||
"maxItems": 100,
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"repositoryRef": {"type": "string", "maxLength": 128},
|
||||
"repositoryFullName": {"type": "string", "maxLength": 242},
|
||||
"number": {"type": "integer", "minimum": 0},
|
||||
"title": {"type": "string", "maxLength": 500},
|
||||
"state": {"type": "string", "maxLength": 32},
|
||||
"updatedAt": {"type": "string", "maxLength": 64},
|
||||
"labels": {
|
||||
"type": "array",
|
||||
"maxItems": 20,
|
||||
"items": {"type": "string", "maxLength": 100}
|
||||
},
|
||||
"sourceUri": {"type": "string", "maxLength": 2048}
|
||||
},
|
||||
"required": [
|
||||
"repositoryRef",
|
||||
"repositoryFullName",
|
||||
"number",
|
||||
"title",
|
||||
"state",
|
||||
"updatedAt",
|
||||
"labels",
|
||||
"sourceUri"
|
||||
]
|
||||
}
|
||||
},
|
||||
"nextCursor": {"type": ["string", "null"], "maxLength": 500},
|
||||
"truncated": {"type": "boolean"},
|
||||
"generatedAt": {"type": "string", "format": "date-time"}
|
||||
},
|
||||
"required": ["items", "nextCursor", "truncated", "generatedAt"]
|
||||
},
|
||||
"limits": {
|
||||
"timeoutMs": 5000,
|
||||
"maxOutputBytes": 262144,
|
||||
"maxItems": 100
|
||||
},
|
||||
"redactionProfile": "metadata",
|
||||
"requiredScopes": ["project:{project}:read"]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {"name": "Gitea Issue Update", "slug": "gitea-issue-update"},
|
||||
"spec": {
|
||||
"canonicalName": "gitea.issue.update",
|
||||
"version": "1.10.0",
|
||||
"connectorType": "gitea",
|
||||
"description": "Update, close or reopen one issue while explicitly excluding pull requests.",
|
||||
"riskClass": "R2",
|
||||
"readOnly": false,
|
||||
"idempotent": false,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"repositoryRef": {"type": "string", "pattern": "^[a-z0-9][a-z0-9-]{0,127}$"},
|
||||
"number": {"type": "integer", "minimum": 1, "maximum": 2147483647},
|
||||
"title": {"type": ["string", "null"], "minLength": 1, "maxLength": 500},
|
||||
"body": {"type": ["string", "null"], "maxLength": 32000},
|
||||
"state": {"type": ["string", "null"], "enum": ["open", "closed", null]}
|
||||
},
|
||||
"required": ["repositoryRef", "number"]
|
||||
},
|
||||
"outputSchema": {"type": "object"},
|
||||
"limits": {"timeoutMs": 15000, "maxOutputBytes": 262144, "maxItems": 1},
|
||||
"redactionProfile": "documents",
|
||||
"requiredScopes": ["project:{project}:write"]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"Gitea Orchestration Plan","slug":"gitea-orchestration-plan"},"spec":{"canonicalName":"gitea.orchestration.plan","version":"1.5.0","connectorType":"gitea","description":"Preview exact default-branch SHAs and safe branches for a bounded multi-repository change.","riskClass":"R1","readOnly":true,"idempotent":true,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"repositoryRefs":{"type":"array","minItems":1,"maxItems":10,"uniqueItems":true,"items":{"type":"string"}},"branchSuffix":{"type":"string","pattern":"^[a-z0-9][a-z0-9._-]{0,79}$"}},"required":["repositoryRefs","branchSuffix"]},"outputSchema":{"type":"object"},"limits":{"timeoutMs":60000,"maxOutputBytes":524288,"maxItems":10},"redactionProfile":"documents","requiredScopes":["project:{project}:read"]}}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"Gitea Orchestration Start","slug":"gitea-orchestration-start"},"spec":{"canonicalName":"gitea.orchestration.start","version":"1.5.0","connectorType":"gitea","description":"Create or resume one preflighted safe codex branch in each of at most ten repositories.","riskClass":"R2","readOnly":false,"idempotent":true,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"repositoryRefs":{"type":"array","minItems":1,"maxItems":10,"uniqueItems":true,"items":{"type":"string"}},"branchSuffix":{"type":"string","pattern":"^[a-z0-9][a-z0-9._-]{0,79}$"},"expectedOrchestrationId":{"type":"string","pattern":"^[0-9a-f]{24}$"}},"required":["repositoryRefs","branchSuffix","expectedOrchestrationId"]},"outputSchema":{"type":"object"},"limits":{"timeoutMs":60000,"maxOutputBytes":524288,"maxItems":10},"redactionProfile":"documents","requiredScopes":["project:{project}:write"]}}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"Gitea Portfolio Governance Apply","slug":"gitea-portfolio-governance-apply"},"spec":{"canonicalName":"gitea.portfolio.governance.apply","version":"1.8.0","connectorType":"gitea","description":"Apply and verify at most five exact repository governance plans in one bounded batch.","riskClass":"R2","readOnly":false,"idempotent":true,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"plans":{"type":"array","minItems":1,"maxItems":5,"uniqueItems":true,"items":{"type":"object","additionalProperties":false,"properties":{"repositoryRef":{"type":"string"},"planHash":{"type":"string","pattern":"^[0-9a-f]{64}$"}},"required":["repositoryRef","planHash"]}}},"required":["plans"]},"outputSchema":{"type":"object"},"limits":{"timeoutMs":120000,"maxOutputBytes":524288,"maxItems":5},"redactionProfile":"documents","requiredScopes":["project:{project}:write"]}}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"Gitea Portfolio Governance Preview","slug":"gitea-portfolio-governance-preview"},"spec":{"canonicalName":"gitea.portfolio.governance.preview","version":"1.8.0","connectorType":"gitea","description":"Preview managed validation and branch protection for at most 25 explicit repositories.","riskClass":"R1","readOnly":true,"idempotent":true,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"repositoryRefs":{"type":"array","minItems":1,"maxItems":25,"uniqueItems":true,"items":{"type":"string"}}},"required":["repositoryRefs"]},"outputSchema":{"type":"object"},"limits":{"timeoutMs":60000,"maxOutputBytes":524288,"maxItems":25},"redactionProfile":"documents","requiredScopes":["project:{project}:read"]}}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"Gitea Portfolio Governance Verify","slug":"gitea-portfolio-governance-verify"},"spec":{"canonicalName":"gitea.portfolio.governance.verify","version":"1.8.0","connectorType":"gitea","description":"Verify managed validation and default-branch protection for at most 25 repositories.","riskClass":"R1","readOnly":true,"idempotent":true,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"repositoryRefs":{"type":"array","minItems":1,"maxItems":25,"uniqueItems":true,"items":{"type":"string"}}},"required":["repositoryRefs"]},"outputSchema":{"type":"object"},"limits":{"timeoutMs":60000,"maxOutputBytes":524288,"maxItems":25},"redactionProfile":"documents","requiredScopes":["project:{project}:read"]}}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"Gitea Portfolio Health","slug":"gitea-portfolio-health"},"spec":{"canonicalName":"gitea.portfolio.health","version":"1.5.0","connectorType":"gitea","description":"Run bounded repository health checks across an explicit set of at most 25 repositories.","riskClass":"R1","readOnly":true,"idempotent":true,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"repositoryRefs":{"type":"array","minItems":1,"maxItems":25,"uniqueItems":true,"items":{"type":"string"}}},"required":["repositoryRefs"]},"outputSchema":{"type":"object"},"limits":{"timeoutMs":60000,"maxOutputBytes":524288,"maxItems":25},"redactionProfile":"documents","requiredScopes":["project:{project}:read"]}}
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {"name": "Gitea Pull Request Close", "slug": "gitea-pull-request-close"},
|
||||
"spec": {
|
||||
"canonicalName": "gitea.pullrequest.close",
|
||||
"version": "1.14.0",
|
||||
"connectorType": "gitea",
|
||||
"description": "Close one open pull request only when its exact current head SHA matches.",
|
||||
"riskClass": "R2",
|
||||
"readOnly": false,
|
||||
"idempotent": false,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"repositoryRef": {"type": "string", "pattern": "^[a-z0-9][a-z0-9-]{0,127}$"},
|
||||
"number": {"type": "integer", "minimum": 1, "maximum": 2147483647},
|
||||
"expectedHeadSha": {"type": "string", "pattern": "^[0-9a-fA-F]{40,64}$"}
|
||||
},
|
||||
"required": ["repositoryRef", "number", "expectedHeadSha"]
|
||||
},
|
||||
"outputSchema": {"type": "object"},
|
||||
"limits": {"timeoutMs": 15000, "maxOutputBytes": 262144, "maxItems": 1},
|
||||
"redactionProfile": "metadata",
|
||||
"requiredScopes": ["project:{project}:write"]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {"name": "Gitea Pull Request Create", "slug": "gitea-pull-request-create"},
|
||||
"spec": {
|
||||
"canonicalName": "gitea.pullrequest.create",
|
||||
"version": "1.9.0",
|
||||
"connectorType": "gitea",
|
||||
"description": "Open one pull request from any valid branch. This tool cannot merge the pull request.",
|
||||
"riskClass": "R2",
|
||||
"readOnly": false,
|
||||
"idempotent": false,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"repositoryRef": {"type": "string", "pattern": "^[a-z0-9][a-z0-9-]{0,127}$"},
|
||||
"head": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._/-]{0,299}$", "maxLength": 300},
|
||||
"base": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._/-]{0,299}$", "maxLength": 300},
|
||||
"title": {"type": "string", "minLength": 1, "maxLength": 500},
|
||||
"body": {"type": "string", "maxLength": 32000, "default": ""}
|
||||
},
|
||||
"required": ["repositoryRef", "head", "base", "title"]
|
||||
},
|
||||
"outputSchema": {"type": "object"},
|
||||
"limits": {"timeoutMs": 15000, "maxOutputBytes": 262144, "maxItems": 1},
|
||||
"redactionProfile": "metadata",
|
||||
"requiredScopes": ["project:{project}:write"]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1", "kind": "ToolManifest",
|
||||
"metadata": {"name": "Gitea Pull Request Feedback", "slug": "gitea-pull-request-feedback"},
|
||||
"spec": {
|
||||
"canonicalName": "gitea.pullrequest.feedback", "version": "1.3.0", "connectorType": "gitea",
|
||||
"description": "Read review decisions and bounded inline feedback for one pull request.",
|
||||
"riskClass": "R1", "readOnly": true, "idempotent": true,
|
||||
"inputSchema": {"type": "object", "additionalProperties": false, "properties": {"repositoryRef": {"type": "string"}, "number": {"type": "integer", "minimum": 1}}, "required": ["repositoryRef", "number"]},
|
||||
"outputSchema": {"type": "object"},
|
||||
"limits": {"timeoutMs": 15000, "maxOutputBytes": 262144, "maxItems": 100},
|
||||
"redactionProfile": "documents", "requiredScopes": ["project:{project}:read"]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {"name": "Gitea Pull Request Get", "slug": "gitea-pull-request-get"},
|
||||
"spec": {
|
||||
"canonicalName": "gitea.pullrequest.get",
|
||||
"version": "1.0.0",
|
||||
"connectorType": "gitea",
|
||||
"description": "Read one pull request and a bounded changed-file summary without returning unrestricted patch content.",
|
||||
"riskClass": "R1",
|
||||
"readOnly": true,
|
||||
"idempotent": true,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"repositoryRef": {"type": "string", "pattern": "^[a-z0-9][a-z0-9-]{0,127}$"},
|
||||
"number": {"type": "integer", "minimum": 1, "maximum": 2147483647}
|
||||
},
|
||||
"required": ["repositoryRef", "number"]
|
||||
},
|
||||
"outputSchema": {"type": "object"},
|
||||
"limits": {"timeoutMs": 10000, "maxOutputBytes": 262144, "maxItems": 100},
|
||||
"redactionProfile": "metadata",
|
||||
"requiredScopes": ["project:{project}:read"]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {"name": "Gitea Pull Request List", "slug": "gitea-pull-request-list"},
|
||||
"spec": {
|
||||
"canonicalName": "gitea.pullrequest.list",
|
||||
"version": "1.0.0",
|
||||
"connectorType": "gitea",
|
||||
"description": "List pull-request metadata for a registered project repository without modifying it.",
|
||||
"riskClass": "R1",
|
||||
"readOnly": true,
|
||||
"idempotent": true,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"repositoryRef": {"type": "string", "pattern": "^[a-z0-9][a-z0-9-]{0,127}$"},
|
||||
"limit": {"type": "integer", "minimum": 1, "maximum": 100, "default": 25},
|
||||
"cursor": {"type": ["string", "null"], "maxLength": 500, "default": null}
|
||||
},
|
||||
"required": ["repositoryRef"]
|
||||
},
|
||||
"outputSchema": {"type": "object"},
|
||||
"limits": {"timeoutMs": 10000, "maxOutputBytes": 262144, "maxItems": 100},
|
||||
"redactionProfile": "metadata",
|
||||
"requiredScopes": ["project:{project}:read"]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"Gitea Pull Request Merge","slug":"gitea-pull-request-merge"},"spec":{"canonicalName":"gitea.pullrequest.merge","version":"1.4.0","connectorType":"gitea","description":"Merge a verified, canonical-PR-validated and SHA-locked safe-branch PR into the default branch.","riskClass":"R3","readOnly":false,"idempotent":false,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"repositoryRef":{"type":"string"},"number":{"type":"integer","minimum":1},"expectedHeadSha":{"type":"string","pattern":"^[0-9a-fA-F]{40,64}$"},"method":{"type":"string","enum":["merge","rebase","rebase-merge","squash","fast-forward-only"],"default":"squash"}},"required":["repositoryRef","number","expectedHeadSha"]},"outputSchema":{"type":"object"},"limits":{"timeoutMs":30000,"maxOutputBytes":262144,"maxItems":1},"redactionProfile":"documents","requiredScopes":["project:{project}:write"]}}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"Gitea Pull Request Sync","slug":"gitea-pull-request-sync"},"spec":{"canonicalName":"gitea.pullrequest.sync","version":"1.12.0","connectorType":"gitea","description":"Preview or merge/rebase an open pull-request after optimistic double-read fencing of its expected head and base SHAs; every execution invalidates validation state.","riskClass":"R3","readOnly":false,"idempotent":false,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"repositoryRef":{"type":"string"},"number":{"type":"integer","minimum":1},"expectedHeadSha":{"type":"string","pattern":"^[0-9a-fA-F]{40,64}$"},"expectedBaseSha":{"type":"string","pattern":"^[0-9a-fA-F]{40,64}$"},"strategy":{"type":"string","enum":["merge","rebase"]},"dryRun":{"type":"boolean"}},"required":["repositoryRef","number","expectedHeadSha","expectedBaseSha","strategy","dryRun"]},"outputSchema":{"type":"object"},"limits":{"timeoutMs":30000,"maxOutputBytes":262144,"maxItems":100},"redactionProfile":"documents","requiredScopes":["project:{project}:write"]}}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"Gitea Pull Request Update","slug":"gitea-pull-request-update"},"spec":{"canonicalName":"gitea.pullrequest.update","version":"1.4.0","connectorType":"gitea","description":"Update only the title or body of an open safe-branch PR with an exact head SHA lock.","riskClass":"R2","readOnly":false,"idempotent":false,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"repositoryRef":{"type":"string"},"number":{"type":"integer","minimum":1},"expectedHeadSha":{"type":"string","pattern":"^[0-9a-fA-F]{40,64}$"},"title":{"type":["string","null"],"minLength":1,"maxLength":500},"body":{"type":["string","null"],"maxLength":32000}},"required":["repositoryRef","number","expectedHeadSha"]},"outputSchema":{"type":"object"},"limits":{"timeoutMs":15000,"maxOutputBytes":262144,"maxItems":1},"redactionProfile":"documents","requiredScopes":["project:{project}:write"]}}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"Gitea PR Validation Ensure","slug":"gitea-pullrequest-validation-ensure"},"spec":{"canonicalName":"gitea.pullrequest.validation.ensure","version":"1.15.0","connectorType":"gitea","description":"Reuse or trigger a real canonical full pull_request validation for an exact PR head.","riskClass":"R2","readOnly":false,"idempotent":true,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"repositoryRef":{"type":"string"},"number":{"type":"integer","minimum":1},"expectedHeadSha":{"type":"string","pattern":"^[0-9a-fA-F]{40,64}$"}},"required":["repositoryRef","number","expectedHeadSha"]},"outputSchema":{"type":"object"},"limits":{"timeoutMs":30000,"maxOutputBytes":262144,"maxItems":1},"redactionProfile":"documents","requiredScopes":["project:{project}:write"]}}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"Gitea Ref Compare","slug":"gitea-ref-compare"},"spec":{"canonicalName":"gitea.ref.compare","version":"1.4.0","connectorType":"gitea","description":"Compare two safe Git refs with bounded commit and changed-file projections.","riskClass":"R1","readOnly":true,"idempotent":true,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"repositoryRef":{"type":"string"},"base":{"type":"string","minLength":1,"maxLength":300},"head":{"type":"string","minLength":1,"maxLength":300}},"required":["repositoryRef","base","head"]},"outputSchema":{"type":"object"},"limits":{"timeoutMs":20000,"maxOutputBytes":524288,"maxItems":200},"redactionProfile":"documents","requiredScopes":["project:{project}:read"]}}
|
||||
@@ -0,0 +1,117 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {
|
||||
"name": "Gitea Release List",
|
||||
"slug": "gitea-release-list"
|
||||
},
|
||||
"spec": {
|
||||
"canonicalName": "gitea.release.list",
|
||||
"version": "1.0.0",
|
||||
"connectorType": "gitea",
|
||||
"description": "List releases and tags for a registered repository.",
|
||||
"riskClass": "R1",
|
||||
"readOnly": true,
|
||||
"idempotent": true,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"repositoryRef": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-z0-9][a-z0-9-]{0,127}$"
|
||||
},
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"minimum": 1,
|
||||
"maximum": 100,
|
||||
"default": 25
|
||||
},
|
||||
"cursor": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 500,
|
||||
"default": null
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"repositoryRef"
|
||||
]
|
||||
},
|
||||
"outputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"items": {
|
||||
"type": "array",
|
||||
"maxItems": 100,
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"tag": {
|
||||
"type": "string",
|
||||
"maxLength": 300
|
||||
},
|
||||
"title": {
|
||||
"type": "string",
|
||||
"maxLength": 500
|
||||
},
|
||||
"draft": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"prerelease": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"publishedAt": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"format": "date-time"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"tag",
|
||||
"title",
|
||||
"draft",
|
||||
"prerelease",
|
||||
"publishedAt"
|
||||
]
|
||||
}
|
||||
},
|
||||
"nextCursor": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 500
|
||||
},
|
||||
"truncated": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"generatedAt": {
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"items",
|
||||
"nextCursor",
|
||||
"truncated",
|
||||
"generatedAt"
|
||||
]
|
||||
},
|
||||
"limits": {
|
||||
"timeoutMs": 10000,
|
||||
"maxOutputBytes": 262144,
|
||||
"maxItems": 100
|
||||
},
|
||||
"redactionProfile": "metadata",
|
||||
"requiredScopes": [
|
||||
"project:{project}:read"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {"name": "Gitea Repository Context", "slug": "gitea-repository-context"},
|
||||
"spec": {
|
||||
"canonicalName": "gitea.repository.context", "version": "1.4.0", "connectorType": "gitea",
|
||||
"description": "Load a compact repository bootstrap context; use tree.list and file.read for additional detail.",
|
||||
"riskClass": "R1", "readOnly": true, "idempotent": true,
|
||||
"inputSchema": {"type": "object", "additionalProperties": false, "properties": {"repositoryRef": {"type": "string"}, "ref": {"type": ["string", "null"], "maxLength": 300}}, "required": ["repositoryRef"]},
|
||||
"outputSchema": {"type": "object"},
|
||||
"limits": {"timeoutMs": 30000, "maxOutputBytes": 65536, "maxItems": 64},
|
||||
"redactionProfile": "documents", "requiredScopes": ["project:{project}:read"]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {"name": "Gitea Repository Create", "slug": "gitea-repository-create"},
|
||||
"spec": {
|
||||
"canonicalName": "gitea.repository.create",
|
||||
"version": "1.8.0",
|
||||
"connectorType": "gitea",
|
||||
"description": "Create or idempotently reuse a branch-ready repository owned by the fixed server-side Gitea write owner. autoInit must be true; an existing empty repository is initialized and the default-branch head is verified before the stable repositoryRef is returned.",
|
||||
"riskClass": "R2",
|
||||
"readOnly": false,
|
||||
"idempotent": true,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"name": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9_.-]{0,119}$"},
|
||||
"description": {"type": "string", "maxLength": 2000},
|
||||
"private": {"type": "boolean"},
|
||||
"autoInit": {"type": "boolean", "const": true, "description": "Must be true so the default branch exists before the tool returns."},
|
||||
"defaultBranch": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._/-]{0,299}$"}
|
||||
},
|
||||
"required": ["name", "description", "private", "autoInit", "defaultBranch"]
|
||||
},
|
||||
"outputSchema": {"type": "object"},
|
||||
"limits": {"timeoutMs": 20000, "maxOutputBytes": 262144, "maxItems": 1},
|
||||
"redactionProfile": "documents",
|
||||
"requiredScopes": ["project:{project}:write"]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {
|
||||
"name": "Gitea Repository Get",
|
||||
"slug": "gitea-repository-get"
|
||||
},
|
||||
"spec": {
|
||||
"canonicalName": "gitea.repository.get",
|
||||
"version": "1.0.0",
|
||||
"connectorType": "gitea",
|
||||
"description": "Read metadata for a registered project repository.",
|
||||
"riskClass": "R1",
|
||||
"readOnly": true,
|
||||
"idempotent": true,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"repositoryRef": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-z0-9][a-z0-9-]{0,127}$"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"repositoryRef"
|
||||
]
|
||||
},
|
||||
"outputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"repositoryRef": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-z0-9][a-z0-9-]{0,127}$"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"maxLength": 200
|
||||
},
|
||||
"owner": {
|
||||
"type": "string",
|
||||
"maxLength": 200
|
||||
},
|
||||
"private": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"defaultBranch": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 200
|
||||
},
|
||||
"description": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 2000
|
||||
},
|
||||
"updatedAt": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"format": "date-time"
|
||||
},
|
||||
"generatedAt": {
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"repositoryRef",
|
||||
"name",
|
||||
"owner",
|
||||
"private",
|
||||
"defaultBranch",
|
||||
"description",
|
||||
"updatedAt",
|
||||
"generatedAt"
|
||||
]
|
||||
},
|
||||
"limits": {
|
||||
"timeoutMs": 10000,
|
||||
"maxOutputBytes": 262144,
|
||||
"maxItems": 100
|
||||
},
|
||||
"redactionProfile": "metadata",
|
||||
"requiredScopes": [
|
||||
"project:{project}:read"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"Gitea Repository Health","slug":"gitea-repository-health"},"spec":{"canonicalName":"gitea.repository.health","version":"1.4.0","connectorType":"gitea","description":"Audit branch protection, safe-branch sprawl, open pull requests and managed validation readiness.","riskClass":"R1","readOnly":true,"idempotent":true,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"repositoryRef":{"type":"string"}},"required":["repositoryRef"]},"outputSchema":{"type":"object"},"limits":{"timeoutMs":20000,"maxOutputBytes":262144,"maxItems":100},"redactionProfile":"documents","requiredScopes":["project:{project}:read"]}}
|
||||
@@ -0,0 +1,112 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {
|
||||
"name": "Gitea Repository List",
|
||||
"slug": "gitea-repository-list"
|
||||
},
|
||||
"spec": {
|
||||
"canonicalName": "gitea.repository.list",
|
||||
"version": "1.0.0",
|
||||
"connectorType": "gitea",
|
||||
"description": "List repositories registered for the current project without exposing credentials.",
|
||||
"riskClass": "R1",
|
||||
"readOnly": true,
|
||||
"idempotent": true,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"minimum": 1,
|
||||
"maximum": 100,
|
||||
"default": 25
|
||||
},
|
||||
"cursor": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 500,
|
||||
"default": null
|
||||
}
|
||||
},
|
||||
"required": []
|
||||
},
|
||||
"outputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"items": {
|
||||
"type": "array",
|
||||
"maxItems": 100,
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"repositoryRef": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-z0-9][a-z0-9-]{0,127}$"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"maxLength": 200
|
||||
},
|
||||
"owner": {
|
||||
"type": "string",
|
||||
"maxLength": 200
|
||||
},
|
||||
"private": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"defaultBranch": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 200
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"repositoryRef",
|
||||
"name",
|
||||
"owner",
|
||||
"private",
|
||||
"defaultBranch"
|
||||
]
|
||||
}
|
||||
},
|
||||
"nextCursor": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 500
|
||||
},
|
||||
"truncated": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"generatedAt": {
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"items",
|
||||
"nextCursor",
|
||||
"truncated",
|
||||
"generatedAt"
|
||||
]
|
||||
},
|
||||
"limits": {
|
||||
"timeoutMs": 10000,
|
||||
"maxOutputBytes": 262144,
|
||||
"maxItems": 100
|
||||
},
|
||||
"redactionProfile": "metadata",
|
||||
"requiredScopes": [
|
||||
"project:{project}:read"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {"name": "Gitea Research Fetch", "slug": "gitea-research-fetch"},
|
||||
"spec": {
|
||||
"canonicalName": "gitea.research.fetch",
|
||||
"connectorToolName": "fetch",
|
||||
"exposedNames": ["fetch", "itworx-gitea-fetch"],
|
||||
"version": "1.6.0",
|
||||
"connectorType": "gitea",
|
||||
"description": "Fetch one immutable repository document returned by research search using the standard Company Knowledge fetch contract.",
|
||||
"riskClass": "R1",
|
||||
"readOnly": true,
|
||||
"idempotent": true,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {"id": {"type": "string", "minLength": 1, "maxLength": 4096}},
|
||||
"required": ["id"]
|
||||
},
|
||||
"outputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"id": {"type": "string", "maxLength": 4096},
|
||||
"title": {"type": "string", "maxLength": 512},
|
||||
"text": {"type": "string", "maxLength": 200000},
|
||||
"url": {"type": "string", "format": "uri", "maxLength": 4096},
|
||||
"metadata": {"type": ["object", "null"]}
|
||||
},
|
||||
"required": ["id", "title", "text", "url", "metadata"]
|
||||
},
|
||||
"limits": {"timeoutMs": 30000, "maxOutputBytes": 262144, "maxItems": 1},
|
||||
"redactionProfile": "documents",
|
||||
"requiredScopes": ["project:{project}:read"]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {"name": "Gitea Research Search", "slug": "gitea-research-search"},
|
||||
"spec": {
|
||||
"canonicalName": "gitea.research.search",
|
||||
"connectorToolName": "search",
|
||||
"exposedNames": ["search", "itworx-gitea-search"],
|
||||
"version": "1.6.0",
|
||||
"connectorType": "gitea",
|
||||
"description": "Search a bounded set of registered private Gitea repositories and return immutable citable documents through the standard Company Knowledge search contract.",
|
||||
"riskClass": "R1",
|
||||
"readOnly": true,
|
||||
"idempotent": true,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {"query": {"type": "string", "minLength": 1, "maxLength": 500}},
|
||||
"required": ["query"]
|
||||
},
|
||||
"outputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"results": {
|
||||
"type": "array",
|
||||
"maxItems": 20,
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"id": {"type": "string", "maxLength": 4096},
|
||||
"title": {"type": "string", "maxLength": 512},
|
||||
"url": {"type": "string", "format": "uri", "maxLength": 4096}
|
||||
},
|
||||
"required": ["id", "title", "url"]
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": ["results"]
|
||||
},
|
||||
"limits": {"timeoutMs": 120000, "maxOutputBytes": 262144, "maxItems": 20},
|
||||
"redactionProfile": "documents",
|
||||
"requiredScopes": ["project:{project}:read"]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {"name": "Gitea MCP Self-test", "slug": "gitea-selftest-run"},
|
||||
"spec": {
|
||||
"canonicalName": "gitea.selftest.run",
|
||||
"version": "1.12.0",
|
||||
"connectorType": "gitea",
|
||||
"description": "Run bounded non-mutating handler-parity, Gitea connectivity, write-runtime and managed-Actions probes. Use this to diagnose an MCP connection before repository work.",
|
||||
"riskClass": "R1",
|
||||
"readOnly": true,
|
||||
"idempotent": true,
|
||||
"inputSchema": {"type": "object", "additionalProperties": false, "properties": {"mode": {"type": "string", "enum": ["read", "guarded-write"], "default": "read"}}},
|
||||
"outputSchema": {"type": "object"},
|
||||
"limits": {"timeoutMs": 30000, "maxOutputBytes": 65536, "maxItems": 10},
|
||||
"redactionProfile": "strict",
|
||||
"requiredScopes": ["project:{project}:read"]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {"name": "Gitea Tree List", "slug": "gitea-tree-list"},
|
||||
"spec": {
|
||||
"canonicalName": "gitea.tree.list",
|
||||
"version": "1.2.0",
|
||||
"connectorType": "gitea",
|
||||
"description": "List up to 1000 files and directories at one bounded repository path and optional branch or ref.",
|
||||
"riskClass": "R1",
|
||||
"readOnly": true,
|
||||
"idempotent": true,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"repositoryRef": {"type": "string", "pattern": "^[a-z0-9][a-z0-9-]{0,127}$"},
|
||||
"path": {"type": "string", "maxLength": 2048, "default": ""},
|
||||
"ref": {"type": ["string", "null"], "maxLength": 300}
|
||||
},
|
||||
"required": ["repositoryRef"]
|
||||
},
|
||||
"outputSchema": {"type": "object"},
|
||||
"limits": {"timeoutMs": 15000, "maxOutputBytes": 262144, "maxItems": 1000},
|
||||
"redactionProfile": "documents",
|
||||
"requiredScopes": ["project:{project}:read"]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"Gitea Validation Failure Get","slug":"gitea-validation-failure-get"},"spec":{"canonicalName":"gitea.validation.failure.get","version":"1.12.0","connectorType":"gitea","description":"Extract bounded failure-relevant steps, commands, exit codes and sanitized log excerpts from one managed validation run.","riskClass":"R1","readOnly":true,"idempotent":true,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"repositoryRef":{"type":"string"},"runId":{"type":"integer","minimum":1}},"required":["repositoryRef","runId"]},"outputSchema":{"type":"object"},"limits":{"timeoutMs":30000,"maxOutputBytes":262144,"maxItems":100},"redactionProfile":"logs","requiredScopes":["project:{project}:read"]}}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"Gitea Validation Get","slug":"gitea-validation-get"},"spec":{"canonicalName":"gitea.validation.get","version":"1.10.0","connectorType":"gitea","description":"Use this for one selected validation run. Omit logs unless diagnosing a failure; respect pollAfterMs while terminal=false.","riskClass":"R1","readOnly":true,"idempotent":true,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"repositoryRef":{"type":"string"},"runId":{"type":"integer","minimum":1},"includeLogs":{"type":"boolean","default":false}},"required":["repositoryRef","runId"]},"outputSchema":{"type":"object"},"limits":{"timeoutMs":30000,"maxOutputBytes":262144,"maxItems":100},"redactionProfile":"logs","requiredScopes":["project:{project}:read"]}}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"Gitea Validation List","slug":"gitea-validation-list"},"spec":{"canonicalName":"gitea.validation.list","version":"1.9.0","connectorType":"gitea","description":"List durable managed validation runs for any valid branch.","riskClass":"R1","readOnly":true,"idempotent":true,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"repositoryRef":{"type":"string"},"branch":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._/-]{0,299}$"},"limit":{"type":"integer","minimum":1,"maximum":100},"cursor":{"type":["string","null"]}},"required":["repositoryRef","branch"]},"outputSchema":{"type":"object"},"limits":{"timeoutMs":15000,"maxOutputBytes":262144,"maxItems":100},"redactionProfile":"documents","requiredScopes":["project:{project}:read"]}}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"Gitea Validation Run","slug":"gitea-validation-run"},"spec":{"canonicalName":"gitea.validation.run","version":"1.10.0","connectorType":"gitea","description":"Use this to dispatch or retry one repository-owned, allowlisted validation profile on any valid branch.","riskClass":"R2","readOnly":false,"idempotent":false,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"repositoryRef":{"type":"string"},"branch":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._/-]{0,299}$"},"profile":{"type":"string","enum":["test","lint","typecheck","build","security","full"]}},"required":["repositoryRef","branch","profile"]},"outputSchema":{"type":"object"},"limits":{"timeoutMs":15000,"maxOutputBytes":262144,"maxItems":1},"redactionProfile":"logs","requiredScopes":["project:{project}:write"]}}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"Gitea Workspace Run","slug":"gitea-workspace-run"},"spec":{"canonicalName":"gitea.workspace.run","version":"1.10.0","connectorType":"gitea","description":"Use this to dispatch or retry one fixed-profile managed Actions job, then follow workspace status polling hints.","riskClass":"R2","readOnly":false,"idempotent":false,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"repositoryRef":{"type":"string"},"branch":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._/-]{0,299}$"},"profile":{"type":"string","enum":["test","lint","typecheck","build","security","full"]}},"required":["repositoryRef","branch","profile"]},"outputSchema":{"type":"object"},"limits":{"timeoutMs":15000,"maxOutputBytes":262144,"maxItems":1},"redactionProfile":"logs","requiredScopes":["project:{project}:write"]}}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"Gitea Workspace Status","slug":"gitea-workspace-status"},"spec":{"canonicalName":"gitea.workspace.status","version":"1.10.0","connectorType":"gitea","description":"Use this to resume a managed repository workspace. Respect pollAfterMs and repeat only while terminal=false.","riskClass":"R1","readOnly":true,"idempotent":true,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"repositoryRef":{"type":"string"},"branch":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._/-]{0,299}$"}},"required":["repositoryRef","branch"]},"outputSchema":{"type":"object"},"limits":{"timeoutMs":30000,"maxOutputBytes":131072,"maxItems":25},"redactionProfile":"documents","requiredScopes":["project:{project}:read"]}}
|
||||
@@ -0,0 +1,141 @@
|
||||
{
|
||||
"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"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {
|
||||
"name": "Knowledge Hub Context",
|
||||
"slug": "ingestion-context"
|
||||
},
|
||||
"spec": {
|
||||
"canonicalName": "knowledge.ingestion.context",
|
||||
"connectorToolName": "get_knowledge_context",
|
||||
"exposedNames": [
|
||||
"get_knowledge_context"
|
||||
],
|
||||
"version": "1.0.0",
|
||||
"connectorType": "ingestion",
|
||||
"description": "Get bounded project context with citations.",
|
||||
"riskClass": "R1",
|
||||
"readOnly": true,
|
||||
"idempotent": true,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"project_id": {
|
||||
"type": "string",
|
||||
"format": "uuid"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"project_id"
|
||||
]
|
||||
},
|
||||
"outputSchema": {
|
||||
"type": "object"
|
||||
},
|
||||
"limits": {
|
||||
"timeoutMs": 30000,
|
||||
"maxOutputBytes": 131072,
|
||||
"maxItems": 20
|
||||
},
|
||||
"redactionProfile": "documents",
|
||||
"requiredScopes": [
|
||||
"project:{project}:read"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {
|
||||
"name": "Knowledge Hub Attachment Text",
|
||||
"slug": "ingestion-extract"
|
||||
},
|
||||
"spec": {
|
||||
"canonicalName": "knowledge.ingestion.extract",
|
||||
"connectorToolName": "extract_knowledge_files",
|
||||
"exposedNames": [
|
||||
"extract_knowledge_files"
|
||||
],
|
||||
"version": "1.0.0",
|
||||
"connectorType": "ingestion",
|
||||
"description": "Scan and extract attached file text in explicit 12,000-character pages with per-file SHA-256 and coverage. This read has no proposal side effects; continue until allFilesComplete is true.",
|
||||
"riskClass": "R1",
|
||||
"readOnly": true,
|
||||
"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"
|
||||
]
|
||||
}
|
||||
},
|
||||
"page_cursor": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 256
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"files"
|
||||
]
|
||||
},
|
||||
"outputSchema": {
|
||||
"type": "object"
|
||||
},
|
||||
"limits": {
|
||||
"timeoutMs": 120000,
|
||||
"maxOutputBytes": 131072,
|
||||
"maxItems": 5
|
||||
},
|
||||
"redactionProfile": "strict",
|
||||
"requiredScopes": [
|
||||
"project:{project}:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {
|
||||
"name": "Knowledge Hub Search",
|
||||
"slug": "ingestion-search"
|
||||
},
|
||||
"spec": {
|
||||
"canonicalName": "knowledge.ingestion.search",
|
||||
"connectorToolName": "search_knowledge",
|
||||
"exposedNames": [
|
||||
"search_knowledge"
|
||||
],
|
||||
"version": "1.0.0",
|
||||
"connectorType": "ingestion",
|
||||
"description": "Search bounded Knowledge Hub content for the authorized project.",
|
||||
"riskClass": "R1",
|
||||
"readOnly": true,
|
||||
"idempotent": true,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"query": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"maxLength": 500
|
||||
},
|
||||
"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."
|
||||
},
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"minimum": 1,
|
||||
"maximum": 20
|
||||
},
|
||||
"cursor": {
|
||||
"type": "string",
|
||||
"maxLength": 500
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"query"
|
||||
]
|
||||
},
|
||||
"outputSchema": {
|
||||
"type": "object"
|
||||
},
|
||||
"limits": {
|
||||
"timeoutMs": 30000,
|
||||
"maxOutputBytes": 131072,
|
||||
"maxItems": 20
|
||||
},
|
||||
"redactionProfile": "documents",
|
||||
"requiredScopes": [
|
||||
"project:{project}:read"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {
|
||||
"name": "Knowledge Hub Status",
|
||||
"slug": "ingestion-status"
|
||||
},
|
||||
"spec": {
|
||||
"canonicalName": "knowledge.ingestion.status",
|
||||
"connectorToolName": "get_ingestion_status",
|
||||
"exposedNames": [
|
||||
"get_ingestion_status"
|
||||
],
|
||||
"version": "1.0.0",
|
||||
"connectorType": "ingestion",
|
||||
"description": "Read the status of a proposal submitted by this service account.",
|
||||
"riskClass": "R1",
|
||||
"readOnly": true,
|
||||
"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."
|
||||
},
|
||||
"proposal_id": {
|
||||
"type": "string",
|
||||
"format": "uuid"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"proposal_id"
|
||||
]
|
||||
},
|
||||
"outputSchema": {
|
||||
"type": "object"
|
||||
},
|
||||
"limits": {
|
||||
"timeoutMs": 30000,
|
||||
"maxOutputBytes": 131072,
|
||||
"maxItems": 20
|
||||
},
|
||||
"redactionProfile": "documents",
|
||||
"requiredScopes": [
|
||||
"project:{project}:read"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {
|
||||
"name": "Knowledge Hub Submit",
|
||||
"slug": "ingestion-submit"
|
||||
},
|
||||
"spec": {
|
||||
"canonicalName": "knowledge.ingestion.submit",
|
||||
"connectorToolName": "submit_ingestion_proposal",
|
||||
"exposedNames": [
|
||||
"submit_ingestion_proposal"
|
||||
],
|
||||
"version": "1.0.0",
|
||||
"connectorType": "ingestion",
|
||||
"description": "Submit service-account analysis for mandatory human review; never publish.",
|
||||
"riskClass": "R2",
|
||||
"readOnly": false,
|
||||
"idempotent": false,
|
||||
"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."
|
||||
},
|
||||
"proposal_id": {
|
||||
"type": "string",
|
||||
"format": "uuid"
|
||||
},
|
||||
"analysis": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"maxLength": 32000
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"proposal_id",
|
||||
"analysis"
|
||||
]
|
||||
},
|
||||
"outputSchema": {
|
||||
"type": "object"
|
||||
},
|
||||
"limits": {
|
||||
"timeoutMs": 30000,
|
||||
"maxOutputBytes": 131072,
|
||||
"maxItems": 20
|
||||
},
|
||||
"redactionProfile": "strict",
|
||||
"requiredScopes": [
|
||||
"project:{project}:write"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,149 @@
|
||||
{
|
||||
"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"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {"name": "Knowledge Hub Page Children", "slug": "ingestion-workspace-children"},
|
||||
"spec": {
|
||||
"canonicalName": "knowledge.workspace.children",
|
||||
"connectorToolName": "get_workspace_children",
|
||||
"exposedNames": ["get_workspace_children"],
|
||||
"version": "1.0.0",
|
||||
"connectorType": "ingestion",
|
||||
"description": "Browse one cursor-paged child slice beneath a selected Knowledge Hub page. Use this to locate a destination; workspace reads require explicit server opt-in.",
|
||||
"riskClass": "R1",
|
||||
"readOnly": true,
|
||||
"idempotent": true,
|
||||
"inputSchema": {
|
||||
"type": "object", "additionalProperties": false,
|
||||
"properties": {
|
||||
"parent_page_id": {"type": "string", "format": "uuid"},
|
||||
"limit": {"type": "integer", "minimum": 1, "maximum": 100, "default": 50},
|
||||
"cursor": {"type": ["string", "null"], "maxLength": 500}
|
||||
},
|
||||
"required": ["parent_page_id"]
|
||||
},
|
||||
"outputSchema": {"type": "object"},
|
||||
"limits": {"timeoutMs": 30000, "maxOutputBytes": 131072, "maxItems": 100},
|
||||
"redactionProfile": "documents",
|
||||
"requiredScopes": ["project:{project}:read"]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {"name": "Knowledge Hub Current Page", "slug": "ingestion-workspace-page"},
|
||||
"spec": {
|
||||
"canonicalName": "knowledge.workspace.page",
|
||||
"connectorToolName": "get_workspace_page",
|
||||
"exposedNames": ["get_workspace_page"],
|
||||
"version": "1.0.0",
|
||||
"connectorType": "ingestion",
|
||||
"description": "Read current Markdown, breadcrumbs, revision and ETag in bounded pages. Pass the returned ETag on subsequent offsets and as expected_target_etag for an update proposal; never compare an incomplete page as complete.",
|
||||
"riskClass": "R1",
|
||||
"readOnly": true,
|
||||
"idempotent": true,
|
||||
"inputSchema": {
|
||||
"type": "object", "additionalProperties": false,
|
||||
"properties": {
|
||||
"page_id": {"type": "string", "format": "uuid"},
|
||||
"offset_chars": {"type": "integer", "minimum": 0, "maximum": 1000000, "default": 0},
|
||||
"max_chars": {"type": "integer", "minimum": 1, "maximum": 20000, "default": 20000},
|
||||
"expected_etag": {"type": ["string", "null"], "maxLength": 256}
|
||||
},
|
||||
"required": ["page_id"]
|
||||
},
|
||||
"outputSchema": {"type": "object"},
|
||||
"limits": {"timeoutMs": 30000, "maxOutputBytes": 131072, "maxItems": 1},
|
||||
"redactionProfile": "documents",
|
||||
"requiredScopes": ["project:{project}:read"]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {"name": "Knowledge Hub Page Roots", "slug": "ingestion-workspace-roots"},
|
||||
"spec": {
|
||||
"canonicalName": "knowledge.workspace.roots",
|
||||
"connectorToolName": "get_workspace_roots",
|
||||
"exposedNames": ["get_workspace_roots"],
|
||||
"version": "1.0.0",
|
||||
"connectorType": "ingestion",
|
||||
"description": "Browse one paged slice of roots in the fixed, token-scoped Knowledge Hub workspace. Server-side workspace reads are disabled unless explicitly enabled.",
|
||||
"riskClass": "R1",
|
||||
"readOnly": true,
|
||||
"idempotent": true,
|
||||
"inputSchema": {
|
||||
"type": "object", "additionalProperties": false,
|
||||
"properties": {
|
||||
"limit": {"type": "integer", "minimum": 1, "maximum": 100, "default": 50},
|
||||
"cursor": {"type": ["string", "null"], "maxLength": 500}
|
||||
},
|
||||
"required": []
|
||||
},
|
||||
"outputSchema": {"type": "object"},
|
||||
"limits": {"timeoutMs": 30000, "maxOutputBytes": 131072, "maxItems": 100},
|
||||
"redactionProfile": "documents",
|
||||
"requiredScopes": ["project:{project}:read"]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,124 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {
|
||||
"name": "Knowledge Adr List",
|
||||
"slug": "knowledge-adr-list"
|
||||
},
|
||||
"spec": {
|
||||
"canonicalName": "knowledge.adr.list",
|
||||
"version": "1.0.0",
|
||||
"connectorType": "knowledge",
|
||||
"description": "List architecture decision records available to the current project.",
|
||||
"riskClass": "R1",
|
||||
"readOnly": true,
|
||||
"idempotent": true,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"status": {
|
||||
"enum": [
|
||||
"accepted",
|
||||
"proposed",
|
||||
"deprecated",
|
||||
"superseded",
|
||||
"all"
|
||||
],
|
||||
"default": "all"
|
||||
},
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"minimum": 1,
|
||||
"maximum": 100,
|
||||
"default": 25
|
||||
},
|
||||
"cursor": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 500,
|
||||
"default": null
|
||||
}
|
||||
},
|
||||
"required": []
|
||||
},
|
||||
"outputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"items": {
|
||||
"type": "array",
|
||||
"maxItems": 100,
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"uri": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"maxLength": 2048
|
||||
},
|
||||
"number": {
|
||||
"type": "string",
|
||||
"maxLength": 40
|
||||
},
|
||||
"title": {
|
||||
"type": "string",
|
||||
"maxLength": 300
|
||||
},
|
||||
"status": {
|
||||
"type": "string",
|
||||
"maxLength": 50
|
||||
},
|
||||
"updatedAt": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"format": "date-time"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"uri",
|
||||
"number",
|
||||
"title",
|
||||
"status",
|
||||
"updatedAt"
|
||||
]
|
||||
}
|
||||
},
|
||||
"nextCursor": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 500
|
||||
},
|
||||
"truncated": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"generatedAt": {
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"items",
|
||||
"nextCursor",
|
||||
"truncated",
|
||||
"generatedAt"
|
||||
]
|
||||
},
|
||||
"limits": {
|
||||
"timeoutMs": 10000,
|
||||
"maxOutputBytes": 262144,
|
||||
"maxItems": 100
|
||||
},
|
||||
"redactionProfile": "metadata",
|
||||
"requiredScopes": [
|
||||
"project:{project}:read"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {
|
||||
"name": "Knowledge Document Get",
|
||||
"slug": "knowledge-document-get"
|
||||
},
|
||||
"spec": {
|
||||
"canonicalName": "knowledge.document.get",
|
||||
"version": "1.0.0",
|
||||
"connectorType": "knowledge",
|
||||
"description": "Read one authorized document resource by its Hub URI.",
|
||||
"riskClass": "R1",
|
||||
"readOnly": true,
|
||||
"idempotent": true,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"uri": {
|
||||
"type": "string",
|
||||
"pattern": "^itworx-docs://",
|
||||
"maxLength": 2048
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"uri"
|
||||
]
|
||||
},
|
||||
"outputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"uri": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"maxLength": 2048
|
||||
},
|
||||
"title": {
|
||||
"type": "string",
|
||||
"maxLength": 300
|
||||
},
|
||||
"mimeType": {
|
||||
"type": "string",
|
||||
"maxLength": 100
|
||||
},
|
||||
"content": {
|
||||
"type": "string",
|
||||
"maxLength": 200000
|
||||
},
|
||||
"sourceRevision": {
|
||||
"type": "string",
|
||||
"maxLength": 200
|
||||
},
|
||||
"truncated": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"generatedAt": {
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"uri",
|
||||
"title",
|
||||
"mimeType",
|
||||
"content",
|
||||
"sourceRevision",
|
||||
"truncated",
|
||||
"generatedAt"
|
||||
]
|
||||
},
|
||||
"limits": {
|
||||
"timeoutMs": 10000,
|
||||
"maxOutputBytes": 262144,
|
||||
"maxItems": 1
|
||||
},
|
||||
"redactionProfile": "documents",
|
||||
"requiredScopes": [
|
||||
"project:{project}:read"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,138 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {
|
||||
"name": "Knowledge Document Search",
|
||||
"slug": "knowledge-document-search"
|
||||
},
|
||||
"spec": {
|
||||
"canonicalName": "knowledge.document.search",
|
||||
"version": "1.0.0",
|
||||
"connectorType": "knowledge",
|
||||
"description": "Search authorized indexed project documents and return bounded source-cited hits.",
|
||||
"riskClass": "R1",
|
||||
"readOnly": true,
|
||||
"idempotent": true,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"query": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"maxLength": 1000
|
||||
},
|
||||
"sourceTypes": {
|
||||
"type": "array",
|
||||
"uniqueItems": true,
|
||||
"maxItems": 8,
|
||||
"items": {
|
||||
"enum": [
|
||||
"documentation",
|
||||
"adr",
|
||||
"runbook",
|
||||
"readme",
|
||||
"current-state",
|
||||
"release-note"
|
||||
]
|
||||
}
|
||||
},
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"minimum": 1,
|
||||
"maximum": 20,
|
||||
"default": 10
|
||||
},
|
||||
"cursor": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 500,
|
||||
"default": null
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"query"
|
||||
]
|
||||
},
|
||||
"outputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"items": {
|
||||
"type": "array",
|
||||
"maxItems": 100,
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"uri": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"maxLength": 2048
|
||||
},
|
||||
"title": {
|
||||
"type": "string",
|
||||
"maxLength": 300
|
||||
},
|
||||
"snippet": {
|
||||
"type": "string",
|
||||
"maxLength": 2000
|
||||
},
|
||||
"sourceType": {
|
||||
"type": "string",
|
||||
"maxLength": 80
|
||||
},
|
||||
"sourceRevision": {
|
||||
"type": "string",
|
||||
"maxLength": 200
|
||||
},
|
||||
"score": {
|
||||
"type": "number",
|
||||
"minimum": 0
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"uri",
|
||||
"title",
|
||||
"snippet",
|
||||
"sourceType",
|
||||
"sourceRevision",
|
||||
"score"
|
||||
]
|
||||
}
|
||||
},
|
||||
"nextCursor": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 500
|
||||
},
|
||||
"truncated": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"generatedAt": {
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"items",
|
||||
"nextCursor",
|
||||
"truncated",
|
||||
"generatedAt"
|
||||
]
|
||||
},
|
||||
"limits": {
|
||||
"timeoutMs": 10000,
|
||||
"maxOutputBytes": 131072,
|
||||
"maxItems": 20
|
||||
},
|
||||
"redactionProfile": "documents",
|
||||
"requiredScopes": [
|
||||
"project:{project}:read"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {
|
||||
"name": "Knowledge Index Status",
|
||||
"slug": "knowledge-index-status"
|
||||
},
|
||||
"spec": {
|
||||
"canonicalName": "knowledge.index.status",
|
||||
"version": "1.0.0",
|
||||
"connectorType": "knowledge",
|
||||
"description": "Return read-only index freshness, source count and last indexing result.",
|
||||
"riskClass": "R1",
|
||||
"readOnly": true,
|
||||
"idempotent": true,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {},
|
||||
"required": []
|
||||
},
|
||||
"outputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"status": {
|
||||
"enum": [
|
||||
"ready",
|
||||
"indexing",
|
||||
"stale",
|
||||
"failed",
|
||||
"empty"
|
||||
]
|
||||
},
|
||||
"sourceCount": {
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
},
|
||||
"documentCount": {
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
},
|
||||
"lastCompletedAt": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"format": "date-time"
|
||||
},
|
||||
"lastError": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 1000
|
||||
},
|
||||
"generatedAt": {
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"status",
|
||||
"sourceCount",
|
||||
"documentCount",
|
||||
"lastCompletedAt",
|
||||
"lastError",
|
||||
"generatedAt"
|
||||
]
|
||||
},
|
||||
"limits": {
|
||||
"timeoutMs": 10000,
|
||||
"maxOutputBytes": 262144,
|
||||
"maxItems": 100
|
||||
},
|
||||
"redactionProfile": "metadata",
|
||||
"requiredScopes": [
|
||||
"project:{project}:read"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {
|
||||
"name": "Knowledge Project Summary",
|
||||
"slug": "knowledge-project-summary"
|
||||
},
|
||||
"spec": {
|
||||
"canonicalName": "knowledge.project.summary",
|
||||
"version": "1.0.0",
|
||||
"connectorType": "knowledge",
|
||||
"description": "Return a concise sourced summary of the registered project documentation state.",
|
||||
"riskClass": "R1",
|
||||
"readOnly": true,
|
||||
"idempotent": true,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {},
|
||||
"required": []
|
||||
},
|
||||
"outputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"summary": {
|
||||
"type": "string",
|
||||
"maxLength": 12000
|
||||
},
|
||||
"sources": {
|
||||
"type": "array",
|
||||
"maxItems": 50,
|
||||
"items": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"maxLength": 2048
|
||||
}
|
||||
},
|
||||
"sourceRevision": {
|
||||
"type": "string",
|
||||
"maxLength": 200
|
||||
},
|
||||
"generatedAt": {
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"summary",
|
||||
"sources",
|
||||
"sourceRevision",
|
||||
"generatedAt"
|
||||
]
|
||||
},
|
||||
"limits": {
|
||||
"timeoutMs": 15000,
|
||||
"maxOutputBytes": 131072,
|
||||
"maxItems": 50
|
||||
},
|
||||
"redactionProfile": "documents",
|
||||
"requiredScopes": [
|
||||
"project:{project}:read"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,134 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {
|
||||
"name": "Knowledge Source List",
|
||||
"slug": "knowledge-source-list"
|
||||
},
|
||||
"spec": {
|
||||
"canonicalName": "knowledge.source.list",
|
||||
"version": "1.0.0",
|
||||
"connectorType": "knowledge",
|
||||
"description": "List registered documentation sources and their indexing state for the current project.",
|
||||
"riskClass": "R1",
|
||||
"readOnly": true,
|
||||
"idempotent": true,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"sourceType": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 80
|
||||
},
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"minimum": 1,
|
||||
"maximum": 100,
|
||||
"default": 25
|
||||
},
|
||||
"cursor": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 500,
|
||||
"default": null
|
||||
}
|
||||
},
|
||||
"required": []
|
||||
},
|
||||
"outputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"items": {
|
||||
"type": "array",
|
||||
"maxItems": 100,
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"sourceRef": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-z0-9][a-z0-9-]{0,127}$"
|
||||
},
|
||||
"sourceType": {
|
||||
"type": "string",
|
||||
"maxLength": 80
|
||||
},
|
||||
"uri": {
|
||||
"type": "string",
|
||||
"maxLength": 2048
|
||||
},
|
||||
"status": {
|
||||
"enum": [
|
||||
"ready",
|
||||
"indexing",
|
||||
"stale",
|
||||
"failed",
|
||||
"empty",
|
||||
"disabled"
|
||||
]
|
||||
},
|
||||
"sourceRevision": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 200
|
||||
},
|
||||
"lastIndexedAt": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"format": "date-time"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"sourceRef",
|
||||
"sourceType",
|
||||
"uri",
|
||||
"status",
|
||||
"sourceRevision",
|
||||
"lastIndexedAt"
|
||||
]
|
||||
}
|
||||
},
|
||||
"nextCursor": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 500
|
||||
},
|
||||
"truncated": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"generatedAt": {
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"items",
|
||||
"nextCursor",
|
||||
"truncated",
|
||||
"generatedAt"
|
||||
]
|
||||
},
|
||||
"limits": {
|
||||
"timeoutMs": 10000,
|
||||
"maxOutputBytes": 131072,
|
||||
"maxItems": 100
|
||||
},
|
||||
"redactionProfile": "metadata",
|
||||
"requiredScopes": [
|
||||
"project:{project}:read"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {
|
||||
"name": "Fleet Ops Attention List",
|
||||
"slug": "mobilityops-attention-list"
|
||||
},
|
||||
"spec": {
|
||||
"canonicalName": "mobilityops.attention.list",
|
||||
"version": "1.0.0",
|
||||
"connectorType": "mobilityops",
|
||||
"description": "List Fleet Ops vehicles currently needing attention, filtered by minimum severity.",
|
||||
"riskClass": "R1",
|
||||
"readOnly": true,
|
||||
"idempotent": true,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"minimum_severity": {
|
||||
"type": "string",
|
||||
"enum": ["low", "medium", "high"]
|
||||
},
|
||||
"date": {
|
||||
"type": ["string", "null"],
|
||||
"format": "date"
|
||||
},
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"minimum": 1,
|
||||
"maximum": 50
|
||||
}
|
||||
}
|
||||
},
|
||||
"outputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"items": {
|
||||
"type": "array",
|
||||
"maxItems": 50,
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"vehicleRef": {"type": "string", "maxLength": 64},
|
||||
"severity": {"type": "string", "maxLength": 32},
|
||||
"ruleType": {"type": "string", "maxLength": 120},
|
||||
"summary": {"type": "string", "maxLength": 1000},
|
||||
"detectedAt": {"type": "string", "maxLength": 64}
|
||||
},
|
||||
"required": ["vehicleRef", "severity", "ruleType", "summary", "detectedAt"]
|
||||
}
|
||||
},
|
||||
"nextCursor": {
|
||||
"type": ["string", "null"]
|
||||
},
|
||||
"truncated": {
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"items",
|
||||
"nextCursor",
|
||||
"truncated"
|
||||
]
|
||||
},
|
||||
"limits": {
|
||||
"timeoutMs": 10000,
|
||||
"maxOutputBytes": 131072,
|
||||
"maxItems": 50
|
||||
},
|
||||
"redactionProfile": "metadata",
|
||||
"requiredScopes": [
|
||||
"project:{project}:read"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {
|
||||
"name": "Fleet Ops Knowledge Search",
|
||||
"slug": "mobilityops-knowledge-search"
|
||||
},
|
||||
"spec": {
|
||||
"canonicalName": "mobilityops.knowledge.search",
|
||||
"version": "1.0.0",
|
||||
"connectorType": "mobilityops",
|
||||
"description": "Ask a Fleet Ops procedure question in nl-BE, en-GB or fr-BE (default en-GB) and receive a grounded answer with citations, or an honest insufficient/unavailable result -- never a fabricated answer.",
|
||||
"riskClass": "R1",
|
||||
"readOnly": true,
|
||||
"idempotent": true,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"question": {
|
||||
"type": "string",
|
||||
"minLength": 3,
|
||||
"maxLength": 1000
|
||||
},
|
||||
"max_sources": {
|
||||
"type": "integer",
|
||||
"minimum": 1,
|
||||
"maximum": 8
|
||||
},
|
||||
"locale": {
|
||||
"type": "string",
|
||||
"enum": ["nl-BE", "en-GB", "fr-BE"],
|
||||
"default": "en-GB"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"question"
|
||||
]
|
||||
},
|
||||
"outputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"answer": {"type": "string", "maxLength": 4000},
|
||||
"evidenceState": {"type": "string", "maxLength": 32},
|
||||
"provider": {"type": ["string", "null"], "maxLength": 120},
|
||||
"correlationId": {"type": ["string", "null"], "maxLength": 128},
|
||||
"sources": {
|
||||
"type": "array",
|
||||
"maxItems": 8,
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"documentId": {"type": "string", "maxLength": 200},
|
||||
"title": {"type": "string", "maxLength": 300},
|
||||
"version": {"type": "string", "maxLength": 120},
|
||||
"section": {"type": "string", "maxLength": 300},
|
||||
"excerpt": {"type": "string", "maxLength": 1500}
|
||||
},
|
||||
"required": ["documentId", "title", "version", "section", "excerpt"]
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"answer",
|
||||
"evidenceState",
|
||||
"provider",
|
||||
"correlationId",
|
||||
"sources"
|
||||
]
|
||||
},
|
||||
"limits": {
|
||||
"timeoutMs": 15000,
|
||||
"maxOutputBytes": 65536,
|
||||
"maxItems": 8
|
||||
},
|
||||
"redactionProfile": "documents",
|
||||
"requiredScopes": [
|
||||
"project:{project}:read"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {
|
||||
"name": "Fleet Ops Operations Summary",
|
||||
"slug": "mobilityops-operations-summary"
|
||||
},
|
||||
"spec": {
|
||||
"canonicalName": "mobilityops.operations.summary",
|
||||
"version": "1.0.0",
|
||||
"connectorType": "mobilityops",
|
||||
"description": "Read the Fleet Ops fleet-wide operational metrics summary.",
|
||||
"riskClass": "R1",
|
||||
"readOnly": true,
|
||||
"idempotent": true,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {}
|
||||
},
|
||||
"outputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"tenant": {
|
||||
"type": "string",
|
||||
"maxLength": 200
|
||||
},
|
||||
"metrics": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"available": {"type": "integer"},
|
||||
"rented": {"type": "integer"},
|
||||
"cleaning": {"type": "integer"},
|
||||
"maintenance": {"type": "integer"},
|
||||
"blocked": {"type": "integer"},
|
||||
"openQualityIssues": {"type": "integer"},
|
||||
"pendingOrFailedWorkflows": {"type": "integer"}
|
||||
},
|
||||
"required": [
|
||||
"available",
|
||||
"rented",
|
||||
"cleaning",
|
||||
"maintenance",
|
||||
"blocked",
|
||||
"openQualityIssues",
|
||||
"pendingOrFailedWorkflows"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"tenant",
|
||||
"metrics"
|
||||
]
|
||||
},
|
||||
"limits": {
|
||||
"timeoutMs": 10000,
|
||||
"maxOutputBytes": 65536,
|
||||
"maxItems": 1
|
||||
},
|
||||
"redactionProfile": "metadata",
|
||||
"requiredScopes": [
|
||||
"project:{project}:read"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {
|
||||
"name": "Fleet Ops Vehicle Get",
|
||||
"slug": "mobilityops-vehicle-get"
|
||||
},
|
||||
"spec": {
|
||||
"canonicalName": "mobilityops.vehicle.get",
|
||||
"version": "1.0.0",
|
||||
"connectorType": "mobilityops",
|
||||
"description": "Read narrow, read-only status details for one Fleet Ops vehicle by its public reference.",
|
||||
"riskClass": "R1",
|
||||
"readOnly": true,
|
||||
"idempotent": true,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"vehicleRef": {
|
||||
"type": "string",
|
||||
"pattern": "^[A-Za-z0-9][A-Za-z0-9-]{0,63}$"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"vehicleRef"
|
||||
]
|
||||
},
|
||||
"outputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"publicRef": {"type": "string", "maxLength": 64},
|
||||
"make": {"type": "string", "maxLength": 120},
|
||||
"model": {"type": "string", "maxLength": 120},
|
||||
"modelYear": {"type": "integer"},
|
||||
"location": {"type": "string", "maxLength": 200},
|
||||
"operationalStatus": {"type": "string", "maxLength": 64},
|
||||
"odometerKm": {"type": "integer"},
|
||||
"nextServiceKm": {"type": "integer"},
|
||||
"openQualityIssueCount": {"type": "integer"},
|
||||
"currentBookingRef": {"type": ["string", "null"], "maxLength": 64}
|
||||
},
|
||||
"required": [
|
||||
"publicRef",
|
||||
"make",
|
||||
"model",
|
||||
"modelYear",
|
||||
"location",
|
||||
"operationalStatus",
|
||||
"odometerKm",
|
||||
"nextServiceKm",
|
||||
"openQualityIssueCount",
|
||||
"currentBookingRef"
|
||||
]
|
||||
},
|
||||
"limits": {
|
||||
"timeoutMs": 10000,
|
||||
"maxOutputBytes": 65536,
|
||||
"maxItems": 1
|
||||
},
|
||||
"redactionProfile": "metadata",
|
||||
"requiredScopes": [
|
||||
"project:{project}:read"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {
|
||||
"name": "Observability Health Summary",
|
||||
"slug": "observability-health-summary"
|
||||
},
|
||||
"spec": {
|
||||
"canonicalName": "observability.health.summary",
|
||||
"version": "1.0.0",
|
||||
"connectorType": "observability",
|
||||
"description": "Return aggregate internal Hub and connector health with no secret-bearing diagnostics.",
|
||||
"riskClass": "R1",
|
||||
"readOnly": true,
|
||||
"idempotent": true,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {},
|
||||
"required": []
|
||||
},
|
||||
"outputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"status": {
|
||||
"enum": [
|
||||
"healthy",
|
||||
"degraded",
|
||||
"unavailable"
|
||||
]
|
||||
},
|
||||
"components": {
|
||||
"type": "array",
|
||||
"maxItems": 200,
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"maxLength": 200
|
||||
},
|
||||
"status": {
|
||||
"enum": [
|
||||
"healthy",
|
||||
"degraded",
|
||||
"unavailable",
|
||||
"disabled",
|
||||
"misconfigured"
|
||||
]
|
||||
},
|
||||
"latencyMs": {
|
||||
"type": [
|
||||
"number",
|
||||
"null"
|
||||
],
|
||||
"minimum": 0
|
||||
},
|
||||
"lastCheckedAt": {
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name",
|
||||
"status",
|
||||
"latencyMs",
|
||||
"lastCheckedAt"
|
||||
]
|
||||
}
|
||||
},
|
||||
"generatedAt": {
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"status",
|
||||
"components",
|
||||
"generatedAt"
|
||||
]
|
||||
},
|
||||
"limits": {
|
||||
"timeoutMs": 10000,
|
||||
"maxOutputBytes": 262144,
|
||||
"maxItems": 100
|
||||
},
|
||||
"redactionProfile": "metadata",
|
||||
"requiredScopes": [
|
||||
"project:{project}:read"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,133 @@
|
||||
{
|
||||
"apiVersion": "hub.example.com/v1alpha1",
|
||||
"kind": "ToolManifest",
|
||||
"metadata": {
|
||||
"name": "Observability Logs Search",
|
||||
"slug": "observability-logs-search"
|
||||
},
|
||||
"spec": {
|
||||
"canonicalName": "observability.logs.search",
|
||||
"version": "1.0.0",
|
||||
"connectorType": "observability",
|
||||
"description": "Search bounded redacted internal service logs for the current project context.",
|
||||
"riskClass": "R1",
|
||||
"readOnly": true,
|
||||
"idempotent": true,
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"query": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 500
|
||||
},
|
||||
"serviceRef": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 128
|
||||
},
|
||||
"lookbackMinutes": {
|
||||
"type": "integer",
|
||||
"minimum": 1,
|
||||
"maximum": 1440,
|
||||
"default": 60
|
||||
},
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"minimum": 1,
|
||||
"maximum": 500,
|
||||
"default": 100
|
||||
},
|
||||
"cursor": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 500,
|
||||
"default": null
|
||||
}
|
||||
},
|
||||
"required": []
|
||||
},
|
||||
"outputSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"items": {
|
||||
"type": "array",
|
||||
"maxItems": 100,
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"timestamp": {
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
},
|
||||
"serviceRef": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-z0-9][a-z0-9-]{0,127}$"
|
||||
},
|
||||
"level": {
|
||||
"type": "string",
|
||||
"maxLength": 30
|
||||
},
|
||||
"message": {
|
||||
"type": "string",
|
||||
"maxLength": 4096
|
||||
},
|
||||
"traceId": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 128
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"timestamp",
|
||||
"serviceRef",
|
||||
"level",
|
||||
"message",
|
||||
"traceId"
|
||||
]
|
||||
}
|
||||
},
|
||||
"nextCursor": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
],
|
||||
"maxLength": 500
|
||||
},
|
||||
"truncated": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"generatedAt": {
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"items",
|
||||
"nextCursor",
|
||||
"truncated",
|
||||
"generatedAt"
|
||||
]
|
||||
},
|
||||
"limits": {
|
||||
"timeoutMs": 15000,
|
||||
"maxOutputBytes": 262144,
|
||||
"maxItems": 500
|
||||
},
|
||||
"redactionProfile": "logs",
|
||||
"requiredScopes": [
|
||||
"project:{project}:read"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"OpenCode Analysis Capabilities Get","slug":"opencode-analysis-capabilities-get"},"spec":{"canonicalName":"opencode.analysis.capabilities.get","version":"0.1.0","connectorType":"opencode-readonly","description":"List the read-only OpenCode analysis surface, registered workspaces, and enforced restrictions.","riskClass":"R0","readOnly":true,"idempotent":true,"inputSchema":{"type":"object","additionalProperties":false},"outputSchema":{"type":"object"},"limits":{"timeoutMs":5000,"maxOutputBytes":65536,"maxItems":100},"redactionProfile":"metadata","requiredScopes":["project:{project}:read"]}}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"OpenCode Analysis Jobs List","slug":"opencode-analysis-jobs-list"},"spec":{"canonicalName":"opencode.analysis.jobs.list","version":"0.1.0","connectorType":"opencode-readonly","description":"List recent read-only analysis jobs without prompts or raw session identifiers.","riskClass":"R1","readOnly":true,"idempotent":true,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"limit":{"type":"integer","minimum":1,"maximum":50}}},"outputSchema":{"type":"object"},"limits":{"timeoutMs":5000,"maxOutputBytes":131072,"maxItems":50},"redactionProfile":"metadata","requiredScopes":["project:{project}:read"]}}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"OpenCode Analysis Models List","slug":"opencode-analysis-models-list"},"spec":{"canonicalName":"opencode.analysis.models.list","version":"0.1.0","connectorType":"opencode-readonly","description":"Check exact allowlisted models and connected providers for a registered read-only workspace.","riskClass":"R1","readOnly":true,"idempotent":true,"inputSchema":{"type":"object","additionalProperties":false,"required":["workspace"],"properties":{"workspace":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,62}$"}}},"outputSchema":{"type":"object"},"limits":{"timeoutMs":30000,"maxOutputBytes":65536,"maxItems":100},"redactionProfile":"metadata","requiredScopes":["project:{project}:read"]}}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"OpenCode Analysis Result","slug":"opencode-analysis-result"},"spec":{"canonicalName":"opencode.analysis.result","version":"0.1.0","connectorType":"opencode-readonly","description":"Return bounded analysis text and fail closed if the upstream reports any changed file.","riskClass":"R1","readOnly":true,"idempotent":true,"inputSchema":{"type":"object","additionalProperties":false,"required":["job_id"],"properties":{"job_id":{"type":"string","pattern":"^job_[A-Za-z0-9_-]{8,64}$"}}},"outputSchema":{"type":"object"},"limits":{"timeoutMs":30000,"maxOutputBytes":262144,"maxItems":200},"redactionProfile":"documents","requiredScopes":["project:{project}:read"]}}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"OpenCode Analysis Start","slug":"opencode-analysis-start"},"spec":{"canonicalName":"opencode.analysis.start","version":"0.1.0","connectorType":"opencode-readonly","description":"Start an asynchronous plan-only analysis against a technically read-only registered workspace.","riskClass":"R1","readOnly":true,"idempotent":false,"inputSchema":{"type":"object","additionalProperties":false,"required":["workspace","goal","model"],"properties":{"workspace":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,62}$"},"goal":{"type":"string","minLength":1,"maxLength":16000},"model":{"type":"string","minLength":3,"maxLength":200}}},"outputSchema":{"type":"object"},"limits":{"timeoutMs":30000,"maxOutputBytes":65536,"maxItems":100},"redactionProfile":"strict","requiredScopes":["project:{project}:read"]}}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"OpenCode Analysis Status","slug":"opencode-analysis-status"},"spec":{"canonicalName":"opencode.analysis.status","version":"0.1.0","connectorType":"opencode-readonly","description":"Read the current state of a broker-owned read-only analysis job.","riskClass":"R1","readOnly":true,"idempotent":true,"inputSchema":{"type":"object","additionalProperties":false,"required":["job_id"],"properties":{"job_id":{"type":"string","pattern":"^job_[A-Za-z0-9_-]{8,64}$"}}},"outputSchema":{"type":"object"},"limits":{"timeoutMs":30000,"maxOutputBytes":65536,"maxItems":100},"redactionProfile":"metadata","requiredScopes":["project:{project}:read"]}}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"OpenCode Capabilities Get","slug":"opencode-capabilities-get"},"spec":{"canonicalName":"opencode.capabilities.get","version":"0.1.0","connectorType":"opencode","description":"List the governed OpenCode job surface and registered workspace policies.","riskClass":"R0","readOnly":true,"idempotent":true,"inputSchema":{"type":"object","additionalProperties":false},"outputSchema":{"type":"object"},"limits":{"timeoutMs":5000,"maxOutputBytes":65536,"maxItems":100},"redactionProfile":"metadata","requiredScopes":["project:{project}:read"]}}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"OpenCode Delivery Control Cancel","slug":"opencode-delivery-control-cancel"},"spec":{"canonicalName":"opencode.delivery.control.cancel","version":"0.3.0","connectorType":"opencode","description":"Cancel an active delivery after explicit confirmation while retaining its branch and audit trail.","riskClass":"R3","readOnly":false,"idempotent":false,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"delivery_id":{"type":"string","pattern":"^delivery_[A-Za-z0-9_-]{8,64}$"},"confirm":{"type":"boolean"}},"required":["delivery_id","confirm"]},"outputSchema":{"type":"object"},"limits":{"timeoutMs":30000,"maxOutputBytes":131072,"maxItems":200},"redactionProfile":"metadata","requiredScopes":["project:{project}:write"]}}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"OpenCode Delivery Control Jobs List","slug":"opencode-delivery-control-jobs-list"},"spec":{"canonicalName":"opencode.delivery.control.jobs.list","version":"0.2.1","connectorType":"opencode","description":"List recent autonomous controller deliveries without prompts or provider session identifiers.","riskClass":"R1","readOnly":true,"idempotent":true,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"limit":{"type":"integer","minimum":1,"maximum":50}}},"outputSchema":{"type":"object"},"limits":{"timeoutMs":5000,"maxOutputBytes":131072,"maxItems":50},"redactionProfile":"metadata","requiredScopes":["project:{project}:read"]}}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"OpenCode Delivery Control Plan","slug":"opencode-delivery-control-plan"},"spec":{"canonicalName":"opencode.delivery.control.plan","version":"0.2.1","connectorType":"opencode","description":"Resolve the exact default-branch SHA and controlled delivery effects without mutation.","riskClass":"R1","readOnly":true,"idempotent":true,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"repository":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,62}$"},"goal":{"type":"string","minLength":1,"maxLength":16000},"model":{"type":"string","minLength":3,"maxLength":200},"branch_suffix":{"type":"string","pattern":"^[a-z0-9][a-z0-9._-]{0,79}$"}},"required":["repository","goal","model","branch_suffix"]},"outputSchema":{"type":"object"},"limits":{"timeoutMs":30000,"maxOutputBytes":131072,"maxItems":200},"redactionProfile":"documents","requiredScopes":["project:{project}:read"]}}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"OpenCode Delivery Control Repositories List","slug":"opencode-delivery-control-repositories-list"},"spec":{"canonicalName":"opencode.delivery.control.repositories.list","version":"0.3.0","connectorType":"opencode","description":"List repositories, models, stages, and the external-Codex final-acceptance boundary.","riskClass":"R1","readOnly":true,"idempotent":true,"inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"outputSchema":{"type":"object"},"limits":{"timeoutMs":5000,"maxOutputBytes":131072,"maxItems":50},"redactionProfile":"metadata","requiredScopes":["project:{project}:read"]}}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"OpenCode Delivery Control Result","slug":"opencode-delivery-control-result"},"spec":{"canonicalName":"opencode.delivery.control.result","version":"0.3.0","connectorType":"opencode","description":"Return bounded changed paths, independent review, validation and PR evidence for external Codex final review.","riskClass":"R1","readOnly":true,"idempotent":true,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"delivery_id":{"type":"string","pattern":"^delivery_[A-Za-z0-9_-]{8,64}$"}},"required":["delivery_id"]},"outputSchema":{"type":"object"},"limits":{"timeoutMs":30000,"maxOutputBytes":262144,"maxItems":500},"redactionProfile":"documents","requiredScopes":["project:{project}:read"]}}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"OpenCode Delivery Control Retry","slug":"opencode-delivery-control-retry"},"spec":{"canonicalName":"opencode.delivery.control.retry","version":"0.3.0","connectorType":"opencode","description":"Retry only the recoverable failed phase of an audited delivery within its bounded retry budget.","riskClass":"R2","readOnly":false,"idempotent":false,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"delivery_id":{"type":"string","pattern":"^delivery_[A-Za-z0-9_-]{8,64}$"},"confirm":{"type":"boolean"}},"required":["delivery_id","confirm"]},"outputSchema":{"type":"object"},"limits":{"timeoutMs":30000,"maxOutputBytes":131072,"maxItems":200},"redactionProfile":"metadata","requiredScopes":["project:{project}:write"]}}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"OpenCode Delivery Control Start","slug":"opencode-delivery-control-start"},"spec":{"canonicalName":"opencode.delivery.control.start","version":"0.2.1","connectorType":"opencode","description":"Start an exact SHA-locked branch, OpenChamber build, independent review, PR, checks, and merge-policy workflow.","riskClass":"R2","readOnly":false,"idempotent":false,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"repository":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,62}$"},"goal":{"type":"string","minLength":1,"maxLength":16000},"model":{"type":"string","minLength":3,"maxLength":200},"branch_suffix":{"type":"string","pattern":"^[a-z0-9][a-z0-9._-]{0,79}$"},"expected_base_sha":{"type":"string","pattern":"^[0-9a-f]{40,64}$"}},"required":["repository","goal","model","branch_suffix","expected_base_sha"]},"outputSchema":{"type":"object"},"limits":{"timeoutMs":120000,"maxOutputBytes":131072,"maxItems":200},"redactionProfile":"documents","requiredScopes":["project:{project}:write"]}}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"OpenCode Delivery Control Status","slug":"opencode-delivery-control-status"},"spec":{"canonicalName":"opencode.delivery.control.status","version":"0.2.1","connectorType":"opencode","description":"Read branch, review, pull-request, validation, and merge state from the write-capable controller.","riskClass":"R1","readOnly":true,"idempotent":true,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"delivery_id":{"type":"string","pattern":"^delivery_[A-Za-z0-9_-]{8,64}$"}},"required":["delivery_id"]},"outputSchema":{"type":"object"},"limits":{"timeoutMs":30000,"maxOutputBytes":131072,"maxItems":200},"redactionProfile":"metadata","requiredScopes":["project:{project}:read"]}}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"OpenCode Delivery Jobs List","slug":"opencode-delivery-jobs-list"},"spec":{"canonicalName":"opencode.delivery.jobs.list","version":"0.2.0","connectorType":"opencode-readonly","description":"List recent autonomous deliveries without prompts or provider session identifiers.","riskClass":"R1","readOnly":true,"idempotent":true,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"limit":{"type":"integer","minimum":1,"maximum":50}}},"outputSchema":{"type":"object"},"limits":{"timeoutMs":5000,"maxOutputBytes":131072,"maxItems":50},"redactionProfile":"metadata","requiredScopes":["project:{project}:read"]}}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"OpenCode Delivery Repositories List","slug":"opencode-delivery-repositories-list"},"spec":{"canonicalName":"opencode.delivery.repositories.list","version":"0.2.0","connectorType":"opencode-readonly","description":"List repositories, models, stages, and merge policy registered with the autonomous delivery controller.","riskClass":"R1","readOnly":true,"idempotent":true,"inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"outputSchema":{"type":"object"},"limits":{"timeoutMs":5000,"maxOutputBytes":131072,"maxItems":50},"redactionProfile":"metadata","requiredScopes":["project:{project}:read"]}}
|
||||
@@ -0,0 +1 @@
|
||||
{"apiVersion":"hub.example.com/v1alpha1","kind":"ToolManifest","metadata":{"name":"OpenCode Delivery Result","slug":"opencode-delivery-result"},"spec":{"canonicalName":"opencode.delivery.result","version":"0.3.0","connectorType":"opencode-readonly","description":"Return bounded changed paths, independent review, validation and PR evidence for external Codex final review.","riskClass":"R1","readOnly":true,"idempotent":true,"inputSchema":{"type":"object","additionalProperties":false,"properties":{"delivery_id":{"type":"string","pattern":"^delivery_[A-Za-z0-9_-]{8,64}$"}},"required":["delivery_id"]},"outputSchema":{"type":"object"},"limits":{"timeoutMs":30000,"maxOutputBytes":262144,"maxItems":500},"redactionProfile":"documents","requiredScopes":["project:{project}:read"]}}
|
||||
Loaded 100 of 663 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user