behest 0.3.1

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";

// Artifact record.
message Artifact {
  string id = 1;
  string session_id = 2;
  string name = 3;
  string content_type = 4;
  bytes data = 5;
  string metadata = 6; // JSON
  google.protobuf.Timestamp created_at = 7;
}

// Put artifact request.
message PutArtifactRequest {
  string session_id = 1;
  string name = 2;
  string content_type = 3;
  bytes data = 4;
  string metadata = 5; // JSON
}

// Put artifact response.
message PutArtifactResponse {
  Artifact artifact = 1;
}

// Get artifact request.
message GetArtifactRequest {
  string id = 1;
}

// Get artifact response.
message GetArtifactResponse {
  Artifact artifact = 1;
}

// Delete artifact request.
message DeleteArtifactRequest {
  string id = 1;
}

// Delete artifact response.
message DeleteArtifactResponse {}

// List artifacts by session request.
message ListArtifactsRequest {
  string session_id = 1;
}

// List artifacts by session response.
message ListArtifactsResponse {
  repeated Artifact artifacts = 1;
}

// Delete artifacts by session request.
message DeleteArtifactsBySessionRequest {
  string session_id = 1;
}

// Delete artifacts by session response.
message DeleteArtifactsBySessionResponse {
  uint64 deleted = 1;
}

// Artifact service.
service ArtifactService {
  rpc PutArtifact(PutArtifactRequest) returns (PutArtifactResponse);
  rpc GetArtifact(GetArtifactRequest) returns (GetArtifactResponse);
  rpc DeleteArtifact(DeleteArtifactRequest) returns (DeleteArtifactResponse);
  rpc ListArtifacts(ListArtifactsRequest) returns (ListArtifactsResponse);
  rpc DeleteArtifactsBySession(DeleteArtifactsBySessionRequest) returns (DeleteArtifactsBySessionResponse);
}