155 lines
4.0 KiB
YAML
155 lines
4.0 KiB
YAML
{
|
|
"apiVersion": "hub.example.com/v1alpha1",
|
|
"kind": "ToolManifest",
|
|
"metadata": {
|
|
"name": "ProjectBrain Delivery Changeset Apply",
|
|
"slug": "projectbrain-delivery-changeset-apply"
|
|
},
|
|
"spec": {
|
|
"canonicalName": "projectbrain.delivery.changeset.apply",
|
|
"version": "1.2.0",
|
|
"connectorType": "projectbrain",
|
|
"description": "Apply up to 25 preflighted create, update, and delete operations to an approved delivery with exact branch-head and file-SHA locking.",
|
|
"riskClass": "R2",
|
|
"readOnly": false,
|
|
"idempotent": false,
|
|
"inputSchema": {
|
|
"type": "object",
|
|
"required": [
|
|
"project_id",
|
|
"delivery_id",
|
|
"branch",
|
|
"expected_head_sha",
|
|
"message",
|
|
"operations"
|
|
],
|
|
"properties": {
|
|
"project_id": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"delivery_id": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"branch": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"expected_head_sha": {
|
|
"type": "string",
|
|
"pattern": "^[0-9a-f]{40,64}$"
|
|
},
|
|
"message": {
|
|
"type": "string",
|
|
"minLength": 3,
|
|
"maxLength": 200
|
|
},
|
|
"operations": {
|
|
"type": "array",
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"operation": {
|
|
"type": "string",
|
|
"const": "create"
|
|
},
|
|
"path": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"content": {
|
|
"type": "string"
|
|
},
|
|
"expected_sha": {
|
|
"not": {}
|
|
}
|
|
},
|
|
"required": [
|
|
"operation",
|
|
"path",
|
|
"content"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"operation": {
|
|
"type": "string",
|
|
"const": "update"
|
|
},
|
|
"path": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"content": {
|
|
"type": "string"
|
|
},
|
|
"expected_sha": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 200
|
|
}
|
|
},
|
|
"required": [
|
|
"operation",
|
|
"path",
|
|
"content",
|
|
"expected_sha"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"operation": {
|
|
"type": "string",
|
|
"const": "delete"
|
|
},
|
|
"path": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"expected_sha": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 200
|
|
}
|
|
},
|
|
"required": [
|
|
"operation",
|
|
"path",
|
|
"expected_sha"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"minItems": 1,
|
|
"maxItems": 25
|
|
},
|
|
"progress_note": {
|
|
"type": "string",
|
|
"maxLength": 2000
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"outputSchema": {
|
|
"type": "object"
|
|
},
|
|
"limits": {
|
|
"timeoutMs": 120000,
|
|
"maxOutputBytes": 262144,
|
|
"maxItems": 25
|
|
},
|
|
"redactionProfile": "documents",
|
|
"requiredScopes": [
|
|
"project:{project}:write"
|
|
]
|
|
}
|
|
}
|