behest 0.3.3

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

package agent.v1;

import "agent/v1/common.proto";
import "google/protobuf/timestamp.proto";

// Session metadata.
message Session {
  string id = 1;
  string title = 2;
  ModelName model = 3;
  google.protobuf.Timestamp created_at = 4;
  google.protobuf.Timestamp updated_at = 5;
  string metadata = 6; // JSON
}

// Create session request.
message CreateSessionRequest {
  string title = 1;
  ModelName model = 2;
  string metadata = 3; // JSON, optional
}

// Create session response.
message CreateSessionResponse {
  Session session = 1;
}

// List sessions request.
message ListSessionsRequest {
  Pagination pagination = 1;
}

// List sessions response.
message ListSessionsResponse {
  repeated Session sessions = 1;
}

// Get session request.
message GetSessionRequest {
  string id = 1;
}

// Get session response.
message GetSessionResponse {
  Session session = 1;
}

// Update session request.
message UpdateSessionRequest {
  string id = 1;
  optional string title = 2;
  optional ModelName model = 3;
  optional string metadata = 4; // JSON
}

// Update session response.
message UpdateSessionResponse {
  Session session = 1;
}

// Delete session request.
message DeleteSessionRequest {
  string id = 1;
}

// Delete session response.
message DeleteSessionResponse {}

// List messages request.
message ListMessagesRequest {
  string session_id = 1;
  Pagination pagination = 2;
}

// List messages response.
message ListMessagesResponse {
  repeated Message messages = 1;
}

// Session service.
service SessionService {
  rpc CreateSession(CreateSessionRequest) returns (CreateSessionResponse);
  rpc ListSessions(ListSessionsRequest) returns (ListSessionsResponse);
  rpc GetSession(GetSessionRequest) returns (GetSessionResponse);
  rpc UpdateSession(UpdateSessionRequest) returns (UpdateSessionResponse);
  rpc DeleteSession(DeleteSessionRequest) returns (DeleteSessionResponse);
  rpc ListMessages(ListMessagesRequest) returns (ListMessagesResponse);
}