behest 0.2.2

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

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

// List tools request.
message ListToolsRequest {}

// List tools response.
message ListToolsResponse {
  repeated ToolInfo tools = 1;
}

// Get tool request.
message GetToolRequest {
  string name = 1;
}

// Get tool response.
message GetToolResponse {
  ToolInfo tool = 1;
}

// Invoke tool request.
message InvokeToolRequest {
  string name = 1;
  string arguments = 2; // JSON
}

// Invoke tool response.
message InvokeToolResponse {
  string name = 1;
  string output = 2; // JSON
}

// Register tool request.
message RegisterToolRequest {
  string name = 1;
  string description = 2;
  string parameters_schema = 3; // JSON
  string endpoint = 4;          // optional external endpoint URL
}

// Register tool response.
message RegisterToolResponse {}

// Unregister tool request.
message UnregisterToolRequest {
  string name = 1;
}

// Unregister tool response.
message UnregisterToolResponse {}

// Tool service.
service ToolService {
  rpc ListTools(ListToolsRequest) returns (ListToolsResponse);
  rpc GetTool(GetToolRequest) returns (GetToolResponse);
  rpc InvokeTool(InvokeToolRequest) returns (InvokeToolResponse);
  rpc RegisterTool(RegisterToolRequest) returns (RegisterToolResponse);
  rpc UnregisterTool(UnregisterToolRequest) returns (UnregisterToolResponse);
}