syntax = "proto3";
package agent.v1;
import "agent/v1/common.proto";
// Raw chat stream request (bypasses runtime, direct provider passthrough).
message RawChatRequest {
ProviderId provider = 1;
ModelName model = 2;
string input = 3;
}
// Event from a raw chat stream.
message ChatStreamEvent {
oneof event {
ChatStreamStarted started = 1;
ChatTextDelta text_delta = 2;
ChatToolCallStarted tool_call_started = 3;
ChatToolCallArgumentsDelta tool_call_arguments_delta = 4;
ChatToolCallCompleted tool_call_completed = 5;
ChatStreamFinished finished = 6;
}
}
message ChatStreamStarted {
string provider = 1;
string model = 2;
}
message ChatTextDelta {
string delta = 1;
}
message ChatToolCallStarted {
string id = 1;
string name = 2;
}
message ChatToolCallArgumentsDelta {
string id = 1;
string delta = 2;
}
message ChatToolCallCompleted {
ToolCall call = 1;
}
message ChatStreamFinished {
FinishReason finish_reason = 1;
TokenUsage usage = 2;
}
// Raw chat service (provider passthrough, no runtime).
service ChatService {
// Stream a raw chat response directly from a provider.
rpc RawChatStream(RawChatRequest) returns (stream ChatStreamEvent);
}