iop/proto/iop/agent.proto

141 lines
3.5 KiB
Protocol Buffer

syntax = "proto3";
package iop;
option go_package = "iop/proto/gen/iop";
// AgentLocalKind identifies the semantic role of one local-control envelope.
enum AgentLocalKind {
AGENT_LOCAL_KIND_UNSPECIFIED = 0;
AGENT_LOCAL_KIND_REQUEST = 1;
AGENT_LOCAL_KIND_RESPONSE = 2;
AGENT_LOCAL_KIND_EVENT = 3;
AGENT_LOCAL_KIND_ERROR = 4;
}
// AgentLocalEnvelope is the only protobuf message carried by the local
// proto-socket. The explicit kind and typed payload must agree.
message AgentLocalEnvelope {
uint32 protocol_version = 1;
AgentLocalKind kind = 2;
string message_id = 3;
string correlation_id = 4;
uint64 event_sequence = 5;
string operation = 6;
reserved 7 to 9;
oneof payload {
AgentLocalRequest request = 10;
AgentLocalResponse response = 11;
AgentLocalEvent event = 12;
AgentLocalError error = 13;
}
reserved 14 to 19;
}
// AgentLocalRequest contains exactly one typed operation payload. A replay
// cursor is optional and is meaningful only when replay_daemon_id is present.
message AgentLocalRequest {
string command_id = 1;
string replay_daemon_id = 2;
optional uint64 replay_after_sequence = 3;
reserved 4 to 9;
oneof payload {
AgentLocalReadRequest read = 10;
AgentLocalProjectRequest project = 11;
AgentLocalClientRequest client = 12;
}
reserved 13 to 19;
}
// AgentLocalReadRequest selects a safe host projection. Empty selectors are
// allowed only for runtime.status.
message AgentLocalReadRequest {
string project_id = 1;
string work_unit_id = 2;
string client_kind = 3;
}
// AgentLocalProjectRequest carries immutable shared-runtime lifecycle inputs.
message AgentLocalProjectRequest {
string project_id = 1;
string workspace_id = 2;
string milestone_id = 3;
}
// AgentLocalClientRequest reserves the typed S15 client-process input without
// enabling those operations in the S11 service.
message AgentLocalClientRequest {
string client_kind = 1;
string capability = 2;
}
// AgentLocalResponse carries either a coherent snapshot or one accepted
// mutation result, plus any retained events requested by the replay cursor.
message AgentLocalResponse {
string command_id = 1;
uint64 state_revision = 2;
string snapshot_marker = 3;
string replay_daemon_id = 4;
uint64 replay_cursor = 5;
reserved 6 to 9;
oneof payload {
AgentLocalSnapshot snapshot = 10;
AgentLocalMutationResult mutation = 11;
}
repeated AgentLocalEvent replay_events = 12;
reserved 13 to 19;
}
// AgentLocalSnapshot is a client-neutral, path-free status projection.
message AgentLocalSnapshot {
string daemon_id = 1;
uint64 state_revision = 2;
uint64 replay_cursor = 3;
string subject_id = 4;
string state = 5;
string summary = 6;
repeated AgentLocalStatusEntry entries = 7;
}
message AgentLocalStatusEntry {
string kind = 1;
string subject_id = 2;
string state = 3;
string summary = 4;
}
message AgentLocalMutationResult {
bool accepted = 1;
string subject_id = 2;
string state = 3;
string summary = 4;
}
// AgentLocalEvent is retained in monotonically increasing sequence order.
message AgentLocalEvent {
uint64 event_sequence = 1;
string event_type = 2;
string subject_id = 3;
uint64 state_revision = 4;
AgentLocalMutationResult mutation = 5;
}
// AgentLocalError exposes only stable, bounded, path-free diagnostics.
message AgentLocalError {
string code = 1;
string safe_message = 2;
bool retryable = 3;
string correlation_id = 4;
uint64 replay_floor = 5;
bool snapshot_required = 6;
string snapshot_marker = 7;
}