Files
meta-unit-proto/proto/yuan_core.proto
李东云 a49cd61aec feat(proto): 添加核心协议文件和服务定义
添加 yuan_core.proto 文件定义核心请求/响应/事件结构
新增多个服务 proto 文件占位和 CI 工作流配置
2025-06-05 14:20:08 +08:00

103 lines
2.9 KiB
Protocol Buffer
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
syntax = "proto3";
package yuan_core;
// YuanRequest 是从 Avatar Host 或其他 Yuan 模块发送到 Yuan 核心的通用请求信封。
// 所有的操作请求都将通过这个信封传递。
message YuanRequest {
string id = 1;
// 官方方法类型,用一个枚举值表示
// 即使不使用,也建议预留一个 UNKNOWN/UNSPECIFIED 的默认值
MethodType method_type = 2;
// 非官方方法类型,用于动态扩展。当 method_type 是 UNKNOWN 时,检查此字段
// 或者作为额外的、更具体的字符串标识
string custom_method = 3;
bytes payload = 4;
}
// YuanResponse 是从 Yuan 核心发送回 Avatar Host 或请求发起方的通用响应信封。
message YuanResponse {
string id = 1; // 响应对应的请求ID
// 响应的状态码,建议使用枚举或预定义常量来表示成功、失败等
int32 status_code = 2;
// 响应的载荷,使用 bytes 存储序列化后的具体响应消息或错误信息
bytes payload = 3;
}
// AvatarEvent 是 Yuan 核心或其内部服务模块向 Avatar Host 广播的通用事件信封。
// Avatar Host 将监听这些事件并做出相应处理。
message AvatarEvent {
string id = 1;
// 官方事件类型
EventType event_type = 2;
// 非官方事件类型
string custom_event = 3;
bytes payload = 4;
}
// 示例:通用的错误消息结构 (可在 payload 中使用)
message ErrorMessage {
string code = 1; // 错误代码,如 "INVALID_ARGUMENT", "PERMISSION_DENIED"
string message = 2; // 用户友好的错误描述
}
// --- 新增枚举定义 ---
// 定义所有 Yuan 核心能够处理的请求方法类型
enum MethodType {
// 最佳实践:枚举的第一个值应该是 0并且通常是 UNKNOWN 或 UNSET
// 这有助于处理未知或默认值
METHOD_TYPE_UNSPECIFIED = 0;
// 身份服务 (Identity Service)
IDENTITY_CREATE_DID = 1;
IDENTITY_RESOLVE_DID = 2;
IDENTITY_SIGN_MESSAGE = 3;
// 文件系统服务 (Filesystem Service)
FILESYSTEM_READ_FILE = 100; // 通常会为每个服务模块的枚举预留一个范围,方便管理
FILESYSTEM_WRITE_FILE = 101;
FILESYSTEM_LIST_DIRECTORY = 102;
// P2P 服务 (P2P Service)
P2P_SEND_MESSAGE = 200;
P2P_CONNECT_NODE = 201;
// 通信服务 (Communication Service)
COMMUNICATION_JOIN_ROOM = 300;
COMMUNICATION_SEND_TEXT = 301;
// ... 更多服务方法 ...
}
// 定义所有 Yuan 核心可能广播的事件类型
enum EventType {
// 最佳实践枚举的第一个值应该UNSPECIFIED
EVENT_TYPE_UNSPECIFIED = 0;
// 身份事件
IDENTITY_DID_CREATED = 1;
IDENTITY_CREDENTIAL_ISSUED = 2;
// 文件系统事件
FILESYSTEM_FILE_CHANGED = 100;
FILESYSTEM_DIRECTORY_SYNCED = 101;
// P2P 事件
P2P_MESSAGE_RECEIVED = 200;
P2P_NODE_CONNECTED = 201;
// 通信事件
COMMUNICATION_ROOM_MESSAGE = 300;
COMMUNICATION_USER_JOINED = 301;
// ... 更多事件类型 ...
}