// Copyright (c) 2026 CueCrux Ltd. // Licensed under the Apache License, Version 2.0. // See LICENSE in the repository root. syntax = "proto3"; package corecrux.observe.v1; service CoreCruxObserveV1 { rpc QueryOpsFacts(QueryOpsFactsRequest) returns (QueryOpsFactsResponse); rpc QueryOpsErrors(QueryOpsErrorsRequest) returns (QueryOpsErrorsResponse); rpc GetOpsHealth(GetOpsHealthRequest) returns (GetOpsHealthResponse); rpc BootstrapPull(BootstrapPullRequest) returns (BootstrapPullResponse); rpc GetBootstrapStatus(GetBootstrapStatusRequest) returns (GetBootstrapStatusResponse); } // --- QueryOpsFacts --- message QueryOpsFactsRequest { string query = 1; uint32 top_k = 2; } message QueryOpsFactsResponse { string facts_json = 1; uint64 total_tokens = 2; } // --- QueryOpsErrors --- message QueryOpsErrorsRequest { string since = 1; uint32 top_k = 2; } message QueryOpsErrorsResponse { string facts_json = 1; } // --- GetOpsHealth --- message GetOpsHealthRequest {} message GetOpsHealthResponse { string health_json = 1; } // --- BootstrapPull --- message BootstrapPullRequest { string query = 1; uint32 top_k = 2; optional uint64 token_budget = 3; } message BootstrapPullResponse { string facts_json = 1; uint64 total_tokens = 2; string source = 3; } // --- GetBootstrapStatus --- message GetBootstrapStatusRequest {} message GetBootstrapStatusResponse { bool seeded = 1; uint64 fact_count = 2; string categories_json = 3; }