behest 0.3.0

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

package agent.v1;

import "google/protobuf/timestamp.proto";

// Embedding record.
message EmbeddingRecord {
  string id = 1;
  string session_id = 2;
  string model = 3;
  repeated float vector = 4;
  string metadata = 5; // JSON
  google.protobuf.Timestamp created_at = 6;
}

// Scored embedding result.
message ScoredEmbedding {
  EmbeddingRecord record = 1;
  double score = 2;
}

// Upsert embedding request.
message UpsertEmbeddingRequest {
  string session_id = 1;
  string model = 2;
  repeated float vector = 3;
  string metadata = 4; // JSON
}

// Upsert embedding response.
message UpsertEmbeddingResponse {
  EmbeddingRecord record = 1;
}

// Search embeddings request.
message SearchEmbeddingsRequest {
  repeated float query = 1;
  uint32 limit = 2;
}

// Search embeddings response.
message SearchEmbeddingsResponse {
  repeated ScoredEmbedding results = 1;
}

// Delete embedding request.
message DeleteEmbeddingRequest {
  string id = 1;
}

// Delete embedding response.
message DeleteEmbeddingResponse {}

// Delete embeddings by session request.
message DeleteEmbeddingsBySessionRequest {
  string session_id = 1;
}

// Delete embeddings by session response.
message DeleteEmbeddingsBySessionResponse {
  uint64 deleted = 1;
}

// Embedding service.
service EmbeddingService {
  rpc UpsertEmbedding(UpsertEmbeddingRequest) returns (UpsertEmbeddingResponse);
  rpc SearchEmbeddings(SearchEmbeddingsRequest) returns (SearchEmbeddingsResponse);
  rpc DeleteEmbedding(DeleteEmbeddingRequest) returns (DeleteEmbeddingResponse);
  rpc DeleteEmbeddingsBySession(DeleteEmbeddingsBySessionRequest) returns (DeleteEmbeddingsBySessionResponse);
}