101 lines
4.2 KiB
JSON
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
|
|
}
|