feat(coredeno): gRPC proto definitions for I/O fortress
CoreService (Go-side: file, store, process) and DenoService (Deno-side: module lifecycle). Generated Go code pending protoc installation. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
93be6c5ed2
commit
c490a05733
1 changed files with 81 additions and 0 deletions
81
pkg/coredeno/proto/coredeno.proto
Normal file
81
pkg/coredeno/proto/coredeno.proto
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
syntax = "proto3";
|
||||
package coredeno;
|
||||
option go_package = "forge.lthn.ai/core/go/pkg/coredeno/proto";
|
||||
|
||||
// CoreService is implemented by CoreGO — Deno calls this for I/O.
|
||||
service CoreService {
|
||||
// Filesystem (gated by manifest permissions)
|
||||
rpc FileRead(FileReadRequest) returns (FileReadResponse);
|
||||
rpc FileWrite(FileWriteRequest) returns (FileWriteResponse);
|
||||
rpc FileList(FileListRequest) returns (FileListResponse);
|
||||
rpc FileDelete(FileDeleteRequest) returns (FileDeleteResponse);
|
||||
|
||||
// Object store
|
||||
rpc StoreGet(StoreGetRequest) returns (StoreGetResponse);
|
||||
rpc StoreSet(StoreSetRequest) returns (StoreSetResponse);
|
||||
|
||||
// Process management
|
||||
rpc ProcessStart(ProcessStartRequest) returns (ProcessStartResponse);
|
||||
rpc ProcessStop(ProcessStopRequest) returns (ProcessStopResponse);
|
||||
}
|
||||
|
||||
// DenoService is implemented by CoreDeno — Go calls this for module lifecycle.
|
||||
service DenoService {
|
||||
rpc LoadModule(LoadModuleRequest) returns (LoadModuleResponse);
|
||||
rpc UnloadModule(UnloadModuleRequest) returns (UnloadModuleResponse);
|
||||
rpc ModuleStatus(ModuleStatusRequest) returns (ModuleStatusResponse);
|
||||
}
|
||||
|
||||
// --- Core (Go-side) messages ---
|
||||
|
||||
message FileReadRequest { string path = 1; string module_code = 2; }
|
||||
message FileReadResponse { string content = 1; }
|
||||
|
||||
message FileWriteRequest { string path = 1; string content = 2; string module_code = 3; }
|
||||
message FileWriteResponse { bool ok = 1; }
|
||||
|
||||
message FileListRequest { string path = 1; string module_code = 2; }
|
||||
message FileListResponse {
|
||||
repeated FileEntry entries = 1;
|
||||
}
|
||||
message FileEntry {
|
||||
string name = 1;
|
||||
bool is_dir = 2;
|
||||
int64 size = 3;
|
||||
}
|
||||
|
||||
message FileDeleteRequest { string path = 1; string module_code = 2; }
|
||||
message FileDeleteResponse { bool ok = 1; }
|
||||
|
||||
message StoreGetRequest { string group = 1; string key = 2; }
|
||||
message StoreGetResponse { string value = 1; bool found = 2; }
|
||||
|
||||
message StoreSetRequest { string group = 1; string key = 2; string value = 3; }
|
||||
message StoreSetResponse { bool ok = 1; }
|
||||
|
||||
message ProcessStartRequest { string command = 1; repeated string args = 2; string module_code = 3; }
|
||||
message ProcessStartResponse { string process_id = 1; }
|
||||
|
||||
message ProcessStopRequest { string process_id = 1; }
|
||||
message ProcessStopResponse { bool ok = 1; }
|
||||
|
||||
// --- Deno-side messages ---
|
||||
|
||||
message LoadModuleRequest { string code = 1; string entry_point = 2; repeated string permissions = 3; }
|
||||
message LoadModuleResponse { bool ok = 1; string error = 2; }
|
||||
|
||||
message UnloadModuleRequest { string code = 1; }
|
||||
message UnloadModuleResponse { bool ok = 1; }
|
||||
|
||||
message ModuleStatusRequest { string code = 1; }
|
||||
message ModuleStatusResponse {
|
||||
string code = 1;
|
||||
enum Status {
|
||||
UNKNOWN = 0;
|
||||
LOADING = 1;
|
||||
RUNNING = 2;
|
||||
STOPPED = 3;
|
||||
ERRORED = 4;
|
||||
}
|
||||
Status status = 2;
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue