syntax = "proto3"; package quixos.orch; import "camino/api.proto"; import "quixos/package.proto"; import "quixos/refs.proto"; import "quixos/runtime.proto"; service OrchestratorRuntime { rpc InvokeFunction(InvokeFunctionRequest) returns (InvokeFunctionResponse); rpc WatchFunction(WatchFunctionRequest) returns (stream WatchFunctionEvent); rpc ListPackageDescriptors(ListPackageDescriptorsRequest) returns (ListPackageDescriptorsResponse); rpc ListPackageRuntimes(ListPackageRuntimesRequest) returns (ListPackageRuntimesResponse); rpc ListActivations(ListActivationsRequest) returns (ListActivationsResponse); rpc CloseActivation(CloseActivationRequest) returns (CloseActivationResponse); } message InvokeFunctionRequest { quixos.FunctionRef function = 1; string object_id = 2; map input = 3; } message InvokeFunctionResponse { string invocation_id = 1; Activation activation = 2; bool ok = 3; camino.Value result = 4; string error = 5; } message WatchFunctionRequest { quixos.FunctionRef function = 1; string object_id = 2; map input = 3; } message WatchFunctionEvent { string invocation_id = 1; Activation activation = 2; string watch_id = 3; camino.Value value = 4; repeated quixos.runtime.DerivedDependency dependencies = 5; string error = 6; bool initial = 7; } message ListActivationsRequest {} message ListPackageDescriptorsRequest {} message ListPackageDescriptorsResponse { repeated quixos.PackageDescriptor descriptors = 1; } message ListPackageRuntimesRequest {} message ListPackageRuntimesResponse { repeated PackageRuntimeStatus runtimes = 1; } message ListActivationsResponse { repeated Activation activations = 1; } message CloseActivationRequest { string activation_id = 1; string reason = 2; } message CloseActivationResponse { Activation activation = 1; } message Activation { string activation_id = 1; quixos.FunctionRef function = 2; string object_id = 3; string state = 4; uint32 demand = 5; string opened_at = 6; string last_used_at = 7; string idle_deadline_at = 8; string closed_at = 9; string close_reason = 10; } message PackageRuntimeStatus { string runtime_key = 1; string package_namespace = 2; string package_name = 3; uint32 descriptor_version = 4; string source_repo = 5; string server_installable = 6; string source_path = 7; string server_path = 8; uint32 pid = 9; string state = 10; string started_at = 11; string last_handshake_at = 12; string runtime_protocol_version = 13; uint32 advertised_function_count = 14; }