paperclip/packages/paperclip-runner/protocol/schemas/provider-descriptor.schema....

101 lines
4.2 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://paperclip.dev/schemas/prp/v1/provider-descriptor.schema.json",
"title": "PRP provider runtime descriptor",
"type": "object",
"required": ["provider", "driver", "model", "executionKind", "providerVersion"],
"properties": {
"provider": { "enum": ["codex", "opencode", "claude_managed", "aws_agentcore", "acpx"] },
"driver": { "enum": ["codex_app_server", "opencode_server", "claude_managed_agents_api", "aws_agentcore_harness_api", "acpx_runtime"] },
"model": { "type": ["string", "null"], "maxLength": 240 },
"executionKind": { "enum": ["local_process", "remote_service"] },
"providerVersion": { "type": "string", "minLength": 1, "maxLength": 120 },
"service": { "enum": ["anthropic_managed_agents", "aws_bedrock_agentcore_harness"] },
"providerSessionId": { "type": ["string", "null"], "maxLength": 240 },
"processId": { "type": ["integer", "null"], "minimum": 1 },
"agentProcessId": { "type": ["integer", "null"], "minimum": 1 },
"endpointArn": { "type": "string", "minLength": 1, "maxLength": 2048 },
"endpointQualifier": { "type": "string", "minLength": 1, "maxLength": 240 },
"memoryId": { "type": "string", "minLength": 1, "maxLength": 240 },
"eventExpiryDays": { "const": 90 },
"agent": { "enum": ["pi", "claude", "codex"] },
"requestedModel": { "type": "string", "minLength": 1, "maxLength": 240 },
"acpProtocolVersion": { "const": 1 },
"agentServerPackage": { "type": "string", "minLength": 1, "maxLength": 240 },
"agentServerVersion": { "type": "string", "minLength": 1, "maxLength": 120 },
"agentRuntimePackage": { "type": ["string", "null"], "maxLength": 240 },
"agentRuntimeVersion": { "type": ["string", "null"], "maxLength": 120 },
"acpxRecordId": { "type": ["string", "null"], "maxLength": 240 }
},
"allOf": [
{
"oneOf": [
{
"properties": {
"provider": { "const": "codex" },
"driver": { "const": "codex_app_server" },
"executionKind": { "const": "local_process" }
}
},
{
"properties": {
"provider": { "const": "opencode" },
"driver": { "const": "opencode_server" },
"executionKind": { "const": "local_process" }
}
},
{
"properties": {
"provider": { "const": "claude_managed" },
"driver": { "const": "claude_managed_agents_api" },
"executionKind": { "const": "remote_service" }
}
},
{
"properties": {
"provider": { "const": "aws_agentcore" },
"driver": { "const": "aws_agentcore_harness_api" },
"executionKind": { "const": "remote_service" }
}
},
{
"properties": {
"provider": { "const": "acpx" },
"driver": { "const": "acpx_runtime" },
"executionKind": { "const": "local_process" }
}
}
]
},
{
"if": { "properties": { "executionKind": { "const": "remote_service" } } },
"then": {
"required": ["service"],
"properties": { "processId": { "const": null } }
}
},
{
"if": { "properties": { "executionKind": { "const": "local_process" } } },
"then": { "properties": { "service": false } }
},
{
"if": { "properties": { "provider": { "const": "claude_managed" } }, "required": ["provider"] },
"then": { "properties": { "service": { "const": "anthropic_managed_agents" } }, "required": ["service"] }
},
{
"if": { "properties": { "provider": { "const": "aws_agentcore" } }, "required": ["provider"] },
"then": {
"properties": { "service": { "const": "aws_bedrock_agentcore_harness" } },
"required": ["service", "endpointArn", "endpointQualifier", "memoryId", "eventExpiryDays"]
}
},
{
"if": { "properties": { "provider": { "const": "acpx" } }, "required": ["provider"] },
"then": {
"required": ["agent", "requestedModel", "acpProtocolVersion", "agentServerPackage", "agentServerVersion", "acpxRecordId", "agentProcessId"]
}
}
],
"additionalProperties": false
}