behest 0.2.1

A Rust-native cloud agent runtime with typed tools, pluggable memory, queues, and observability.
syntax = "proto3";

package agent.v1;

import "google/protobuf/timestamp.proto";

// Unique provider identifier.
message ProviderId {
  string value = 1;
}

// Model name.
message ModelName {
  string value = 1;
}

// Token usage accounting.
message TokenUsage {
  uint64 input_tokens = 1;
  uint64 output_tokens = 2;
  uint64 total_tokens = 3;
}

// Tool specification.
message ToolSpec {
  string name = 1;
  string description = 2;
  string parameters_schema = 3; // JSON
}

// Tool call from an assistant message.
message ToolCall {
  string id = 1;
  string name = 2;
  string arguments = 3; // JSON
}

// Finish reason for generation.
enum FinishReason {
  FINISH_REASON_UNSPECIFIED = 0;
  FINISH_REASON_STOP = 1;
  FINISH_REASON_TOOL_CALLS = 2;
  FINISH_REASON_LENGTH = 3;
  FINISH_REASON_CONTENT_FILTER = 4;
  FINISH_REASON_ERROR = 5;
  FINISH_REASON_UNKNOWN = 6;
}

// Pagination parameters.
message Pagination {
  uint32 limit = 1;
  uint32 offset = 2;
}

// Text content part.
message TextContent {
  string text = 1;
}

// JSON content part.
message JsonContent {
  string json = 1;
}

// Image content part.
message ImageContent {
  string url = 1;
  string mime_type = 2;
}

// Content part within a message.
message ContentPart {
  oneof content {
    TextContent text = 1;
    JsonContent json = 2;
    ImageContent image = 3;
  }
}

// Message record.
message Message {
  string id = 1;
  string session_id = 2;
  string role = 3; // system, user, assistant, tool
  repeated ContentPart content = 4;
  repeated ToolCall tool_calls = 5;
  string tool_call_id = 6;
  string tool_name = 7;
  google.protobuf.Timestamp created_at = 8;
}

// Run status enum.
enum RunStatus {
  RUN_STATUS_UNSPECIFIED = 0;
  RUN_STATUS_PENDING = 1;
  RUN_STATUS_SESSION_LOADED = 2;
  RUN_STATUS_BUILDING_CONTEXT = 3;
  RUN_STATUS_CALLING_MODEL = 4;
  RUN_STATUS_WAITING_FOR_TOOLS = 5;
  RUN_STATUS_PERSISTING = 6;
  RUN_STATUS_COMPLETED = 7;
  RUN_STATUS_FAILED = 8;
  RUN_STATUS_CANCELLED = 9;
}