guildhouse-proto/runner/v1/runner.proto
Tyler King 2720a631b8 Initial: Guildhouse protobuf definitions
14 proto files across 5 gRPC service domains:
- quartermaster/v1 (6): governance, registry, notary, credentials, capabilities, pipelines
- bascule/v1 (4): session, command, gateway, ceremony
- workspace/v1 (1): workspace management
- runner/v1 (2): pipeline execution
- schematic/v1 (1): composite meta-artifacts

Consumed as a git submodule by guildhouse-platform (Rust) and guildhouse-dashboard (Python).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 10:29:06 -05:00

118 lines
2.8 KiB
Protocol Buffer

syntax = "proto3";
package runner.v1;
import "google/protobuf/timestamp.proto";
import "google/protobuf/duration.proto";
// ── Enums ──
enum TriggerType {
TRIGGER_TYPE_UNSPECIFIED = 0;
TRIGGER_TYPE_MERGE = 1;
TRIGGER_TYPE_TAG = 2;
TRIGGER_TYPE_MANUAL = 3;
TRIGGER_TYPE_SCHEDULE = 4;
TRIGGER_TYPE_WEBHOOK = 5;
TRIGGER_TYPE_AGENT = 6;
}
enum StepStatus {
STEP_STATUS_UNSPECIFIED = 0;
STEP_STATUS_PENDING = 1;
STEP_STATUS_RUNNING = 2;
STEP_STATUS_SUCCEEDED = 3;
STEP_STATUS_FAILED = 4;
STEP_STATUS_SKIPPED = 5;
STEP_STATUS_CANCELLED = 6;
}
enum RunPhase {
RUN_PHASE_UNSPECIFIED = 0;
RUN_PHASE_PENDING = 1;
RUN_PHASE_RUNNING = 2;
RUN_PHASE_SUCCEEDED = 3;
RUN_PHASE_FAILED = 4;
RUN_PHASE_CANCELLED = 5;
RUN_PHASE_NOTARIZED = 6;
}
// ── Messages ──
message TriggerEvent {
TriggerType trigger_type = 1;
string commit_hash = 2;
string branch = 3;
string tag = 4;
string requested_by = 5;
string merge_session_id = 6;
google.protobuf.Timestamp triggered_at = 7;
}
message StepResult {
string name = 1;
string step_type = 2;
StepStatus status = 3;
int32 exit_code = 4;
google.protobuf.Duration duration = 5;
bytes stdout_hash = 6;
bytes stderr_hash = 7;
repeated ArtifactRef artifacts = 8;
string error_message = 9;
uint32 attempt = 10;
google.protobuf.Timestamp started_at = 11;
google.protobuf.Timestamp completed_at = 12;
}
message ArtifactRef {
string name = 1;
string path = 2;
bytes content_hash = 3;
int64 size_bytes = 4;
string media_type = 5;
string oci_digest = 6;
}
message PipelineResult {
string run_id = 1;
string pipeline_name = 2;
TriggerEvent trigger = 3;
RunPhase phase = 4;
repeated StepResult steps = 5;
google.protobuf.Timestamp started_at = 6;
google.protobuf.Timestamp completed_at = 7;
google.protobuf.Duration total_duration = 8;
string runner_svid = 9;
bytes pipeline_yaml_hash = 10;
string cluster_id = 11;
AttestationInfo attestation = 12;
}
message AttestationInfo {
bool anchored = 1;
string anchor_id = 2;
bytes merkle_leaf = 3;
bytes merkle_root = 4;
int32 leaf_index = 5;
}
message LogEntry {
string step_name = 1;
string stream = 2;
string line = 3;
google.protobuf.Timestamp timestamp = 4;
uint64 sequence = 5;
}
message PipelineRunSummary {
string run_id = 1;
string pipeline_name = 2;
RunPhase phase = 3;
TriggerType trigger_type = 4;
string commit_hash = 5;
google.protobuf.Timestamp started_at = 6;
google.protobuf.Timestamp completed_at = 7;
uint32 steps_total = 8;
uint32 steps_succeeded = 9;
uint32 steps_failed = 10;
bool attested = 11;
}