Implement query execution, scoped RPC enrichment, live collections, and scaffold integration

This commit is contained in:
Timothy J. Aveni
2026-09-17 14:34:16 -07:00
parent 7e69e675ba
commit c1330ae8e3
29 changed files with 2217 additions and 77 deletions
+351 -1
View File
@@ -1,5 +1,5 @@
import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import type { PersistencePlan } from "./schema_pb.js";
import type { PersistencePlan, QuerySelection } from "./schema_pb.js";
import type { Message } from "@bufbuild/protobuf";
/**
* Describes the file camino/api.proto.
@@ -826,10 +826,360 @@ export type CaminoOp = Message<"camino.CaminoOp"> & {
* Use `create(CaminoOpSchema)` to create a new message.
*/
export declare const CaminoOpSchema: GenMessage<CaminoOp>;
/**
* @generated from message camino.QueryRequest
*/
export type QueryRequest = Message<"camino.QueryRequest"> & {
/**
* @generated from field: string query_id = 1;
*/
queryId: string;
/**
* @generated from field: string object_id = 2;
*/
objectId: string;
/**
* @generated from field: map<string, camino.Value> variables = 3;
*/
variables: {
[key: string]: Value;
};
/**
* Typed callers require this exact checked definition. Administrative/raw
* callers may omit it to explicitly select the currently installed definition.
*
* @generated from field: string expected_definition_digest = 4;
*/
expectedDefinitionDigest: string;
};
/**
* Describes the message camino.QueryRequest.
* Use `create(QueryRequestSchema)` to create a new message.
*/
export declare const QueryRequestSchema: GenMessage<QueryRequest>;
/**
* @generated from message camino.QueryPathPart
*/
export type QueryPathPart = Message<"camino.QueryPathPart"> & {
/**
* @generated from oneof camino.QueryPathPart.part
*/
part: {
/**
* @generated from field: string field = 1;
*/
value: string;
case: "field";
} | {
/**
* @generated from field: uint32 index = 2;
*/
value: number;
case: "index";
} | {
case: undefined;
value?: undefined;
};
};
/**
* Describes the message camino.QueryPathPart.
* Use `create(QueryPathPartSchema)` to create a new message.
*/
export declare const QueryPathPartSchema: GenMessage<QueryPathPart>;
/**
* @generated from message camino.QueryPendingField
*/
export type QueryPendingField = Message<"camino.QueryPendingField"> & {
/**
* @generated from field: repeated camino.QueryPathPart path = 1;
*/
path: QueryPathPart[];
/**
* @generated from field: string object_id = 2;
*/
objectId: string;
/**
* @generated from field: string interface_revision_id = 3;
*/
interfaceRevisionId: string;
/**
* @generated from field: string member_id = 4;
*/
memberId: string;
/**
* @generated from field: string operation_id = 5;
*/
operationId: string;
/**
* @generated from field: string value_type_json = 6;
*/
valueTypeJson: string;
/**
* Internal residual facts are separate from the authored result projection.
*
* @generated from field: optional uint32 residual_window = 7;
*/
residualWindow?: number | undefined;
/**
* @generated from field: uint32 residual_row = 8;
*/
residualRow: number;
/**
* @generated from field: string residual_field = 9;
*/
residualField: string;
};
/**
* Describes the message camino.QueryPendingField.
* Use `create(QueryPendingFieldSchema)` to create a new message.
*/
export declare const QueryPendingFieldSchema: GenMessage<QueryPendingField>;
/**
* @generated from message camino.QueryStats
*/
export type QueryStats = Message<"camino.QueryStats"> & {
/**
* @generated from field: uint32 sql_count = 1;
*/
sqlCount: number;
/**
* @generated from field: double sql_ms = 2;
*/
sqlMs: number;
/**
* @generated from field: uint32 rpc_count = 3;
*/
rpcCount: number;
/**
* @generated from field: double rpc_ms = 4;
*/
rpcMs: number;
/**
* @generated from field: uint32 result_bytes = 5;
*/
resultBytes: number;
/**
* @generated from field: double preparation_ms = 6;
*/
preparationMs: number;
/**
* @generated from field: double total_ms = 7;
*/
totalMs: number;
};
/**
* Describes the message camino.QueryStats.
* Use `create(QueryStatsSchema)` to create a new message.
*/
export declare const QueryStatsSchema: GenMessage<QueryStats>;
/**
* @generated from message camino.QueryResponse
*/
export type QueryResponse = Message<"camino.QueryResponse"> & {
/**
* @generated from field: camino.Value value = 1;
*/
value?: Value | undefined;
/**
* @generated from field: string data_version = 2;
*/
dataVersion: string;
/**
* @generated from field: string binding_digest = 3;
*/
bindingDigest: string;
/**
* @generated from field: repeated camino.QueryPendingField pending = 4;
*/
pending: QueryPendingField[];
/**
* @generated from field: camino.QueryStats stats = 5;
*/
stats?: QueryStats | undefined;
/**
* Redeemable only through the host's private control socket, not an RPC grant.
*
* @generated from field: string preparation_token = 6;
*/
preparationToken: string;
/**
* @generated from field: repeated camino.QueryFieldFailure errors = 7;
*/
errors: QueryFieldFailure[];
/**
* @generated from field: repeated camino.QueryResidualWindow residual_windows = 8;
*/
residualWindows: QueryResidualWindow[];
/**
* Native reads share one database snapshot; package enrichment does not.
*
* native-snapshot | mixed
*
* @generated from field: string consistency = 9;
*/
consistency: string;
};
/**
* Describes the message camino.QueryResponse.
* Use `create(QueryResponseSchema)` to create a new message.
*/
export declare const QueryResponseSchema: GenMessage<QueryResponse>;
/**
* @generated from message camino.QueryResidualRow
*/
export type QueryResidualRow = Message<"camino.QueryResidualRow"> & {
/**
* @generated from field: string entry_id = 1;
*/
entryId: string;
/**
* @generated from field: map<string, camino.Value> fields = 2;
*/
fields: {
[key: string]: Value;
};
};
/**
* Describes the message camino.QueryResidualRow.
* Use `create(QueryResidualRowSchema)` to create a new message.
*/
export declare const QueryResidualRowSchema: GenMessage<QueryResidualRow>;
/**
* @generated from message camino.QueryResidualOrder
*/
export type QueryResidualOrder = Message<"camino.QueryResidualOrder"> & {
/**
* @generated from field: string field = 1;
*/
field: string;
/**
* @generated from field: bool descending = 2;
*/
descending: boolean;
};
/**
* Describes the message camino.QueryResidualOrder.
* Use `create(QueryResidualOrderSchema)` to create a new message.
*/
export declare const QueryResidualOrderSchema: GenMessage<QueryResidualOrder>;
/**
* @generated from message camino.QueryResidualWindow
*/
export type QueryResidualWindow = Message<"camino.QueryResidualWindow"> & {
/**
* @generated from field: repeated camino.QueryPathPart path = 1;
*/
path: QueryPathPart[];
/**
* @generated from field: repeated camino.QueryResidualRow rows = 2;
*/
rows: QueryResidualRow[];
/**
* @generated from field: string predicate_json = 3;
*/
predicateJson: string;
/**
* @generated from field: repeated camino.QueryResidualOrder order = 4;
*/
order: QueryResidualOrder[];
/**
* @generated from field: uint32 limit = 5;
*/
limit: number;
/**
* @generated from field: bool bounded_all = 6;
*/
boundedAll: boolean;
/**
* @generated from field: repeated camino.QuerySelection selection = 7;
*/
selection: QuerySelection[];
/**
* @generated from field: map<string, string> field_types = 8;
*/
fieldTypes: {
[key: string]: string;
};
};
/**
* Describes the message camino.QueryResidualWindow.
* Use `create(QueryResidualWindowSchema)` to create a new message.
*/
export declare const QueryResidualWindowSchema: GenMessage<QueryResidualWindow>;
/**
* @generated from message camino.QueryFieldFailure
*/
export type QueryFieldFailure = Message<"camino.QueryFieldFailure"> & {
/**
* @generated from field: repeated camino.QueryPathPart path = 1;
*/
path: QueryPathPart[];
/**
* @generated from field: string error = 2;
*/
error: string;
};
/**
* Describes the message camino.QueryFieldFailure.
* Use `create(QueryFieldFailureSchema)` to create a new message.
*/
export declare const QueryFieldFailureSchema: GenMessage<QueryFieldFailure>;
/**
* @generated from message camino.QueryChangesRequest
*/
export type QueryChangesRequest = Message<"camino.QueryChangesRequest"> & {
/**
* @generated from field: string query_id = 1;
*/
queryId: string;
/**
* @generated from field: string object_id = 2;
*/
objectId: string;
/**
* @generated from field: string data_version = 3;
*/
dataVersion: string;
};
/**
* Describes the message camino.QueryChangesRequest.
* Use `create(QueryChangesRequestSchema)` to create a new message.
*/
export declare const QueryChangesRequestSchema: GenMessage<QueryChangesRequest>;
/**
* @generated from message camino.QueryChangesResponse
*/
export type QueryChangesResponse = Message<"camino.QueryChangesResponse"> & {
/**
* @generated from field: bool changed = 1;
*/
changed: boolean;
};
/**
* Describes the message camino.QueryChangesResponse.
* Use `create(QueryChangesResponseSchema)` to create a new message.
*/
export declare const QueryChangesResponseSchema: GenMessage<QueryChangesResponse>;
/**
* @generated from service camino.CaminoService
*/
export declare const CaminoService: GenService<{
/**
* @generated from rpc camino.CaminoService.ExecuteQuery
*/
executeQuery: {
methodKind: "unary";
input: typeof QueryRequestSchema;
output: typeof QueryResponseSchema;
};
/**
* @generated from rpc camino.CaminoService.QueryChanges
*/
queryChanges: {
methodKind: "unary";
input: typeof QueryChangesRequestSchema;
output: typeof QueryChangesResponseSchema;
};
/**
* @generated from rpc camino.CaminoService.InstallPersistencePlan
*/