diff --git a/dist/bindings.d.ts b/dist/bindings.d.ts index 8395cb5..14078fe 100644 --- a/dist/bindings.d.ts +++ b/dist/bindings.d.ts @@ -63,6 +63,13 @@ export type QxOperationSpec = { outputType: QxValueType; }; export type QxPortSpec = { + kind: "query"; + id: string; + definitionDigest: string; + variables: QxValueType; + output: QxValueType; + watch: boolean; +} | { kind: "state"; id: string; valueType: QxValueType; diff --git a/dist/bindings.d.ts.map b/dist/bindings.d.ts.map index 17d3fc5..84db881 100644 --- a/dist/bindings.d.ts.map +++ b/dist/bindings.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"bindings.d.ts","sourceRoot":"","sources":["../src/bindings.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"bindings.d.ts","sourceRoot":"","sources":["../src/bindings.ts"],"names":[],"mappings":"AACA,OAAO,EAAkC,KAAK,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAGL,SAAS,EAGT,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGnD,OAAO,CAAC,MAAM,UAAU,EAAE,OAAO,MAAM,CAAC;AACxC,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AACrE,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAAE,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;IAAC,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAA;CAAE,CAAC;AACrF,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;AACvD,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC5E,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC7D,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;CAAE,CAAC;AACxE,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC;AACxH,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI;IAAE,MAAM,CAAC,EAAE,WAAW,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC;AACxG,OAAO,CAAC,MAAM,YAAY,EAAE,OAAO,MAAM,CAAC;AAC1C,uFAAuF;AACvF,MAAM,MAAM,mBAAmB,CAAC,IAAI,IAAI;IACtC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACrD,QAAQ,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC;CAChD,CAAC;AACF,eAAO,MAAM,yBAAyB,GAAI,IAAI,uBACvB,MAAM,cACf,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,KAC1C,mBAAmB,CAAC,IAAI,CAAoF,CAAC;AAChH,MAAM,MAAM,WAAW,GAAG;IACxB,UAAU,CAAC,IAAI,EACb,MAAM,EAAE,OAAO,iBAAiB,EAAE,WAAW,EAC7C,QAAQ,EAAE,mBAAmB,CAAC,IAAI,CAAC,GAClC,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;CAC9B,CAAC;AACF,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,CAAC,OAAO,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAA+B,CAAC;AAErG,yEAAyE;AACzE,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAAC;IAAC,KAAK,EAAE,WAAW,CAAA;CAAE,CAAC;AACtD,MAAM,MAAM,eAAe,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,WAAW,CAAC;IAAC,UAAU,EAAE,WAAW,CAAA;CAAE,CAAC;AAC9F,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACpH;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,WAAW,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,GAC3E;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,mBAAmB,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;CAAE,GAC3G;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,WAAW,CAAA;CAAE,CAAC;AAChE,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,WAAW,CAAC;IACvB,UAAU,EAAE,WAAW,CAAC;IACxB,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACnC,CAAC;AACF,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;AA6B7D,eAAO,MAAM,aAAa,SAAU,WAAW,SAAS,KAAK,GAAG,SAAS,YAAY,UAAU,KAAG,GAyCjG,CAAC;AAOF,eAAO,MAAM,aAAa,SAAU,WAAW,SAAS,GAAG,YAAY,UAAU,KAAG,KA8BnF,CAAC;AAmBF,uFAAuF;AACvF,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,CAAC,QAC1B,aAAa,WACV,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,YAChC,UAAU,KACnB,cAAc,GAAG,cA4HnB,CAAC"} \ No newline at end of file diff --git a/dist/bindings.js b/dist/bindings.js index 7d8f8cf..f8711f0 100644 --- a/dist/bindings.js +++ b/dist/bindings.js @@ -2,6 +2,7 @@ import { create } from "@bufbuild/protobuf"; import { ValueSchema, ObjectValueSchema } from "./camino/api_pb.js"; import { derived, jsToProtoValue, liveValue, protoValueToJs, } from "./index.js"; import { assertReferenceFree, referenceToWire } from "./references.js"; +import { decodeQuerySnapshot } from "./queries.js"; export const defineQxInterfaceContract = (interfaceRevisionId, operations) => Object.freeze({ interfaceRevisionId, operations }); export const qxDerived = (get) => ({ kind: "derived", get }); const bindInterfaceView = (target, contract, messages) => ({ @@ -170,6 +171,37 @@ export const bindQxHandler = (spec, handler, messages) => { bindInterfaceView(target, defineQxInterfaceContract(port.interfaceRevisionId, port.operations), messages), ]; } + case "query": { + const query = raw.query(port.id); + const variablesToWire = (variables) => { + const value = encodeQxValue(port.variables, variables, messages); + if (value.kind.case !== "objectValue") + throw new Error("QUERY_VARIABLE_INVALID"); + return value.kind.value.fields; + }; + return [ + name, + { + async execute(variables) { + const response = await query.execute(variablesToWire(variables), port.definitionDigest); + if (response.pending.length || response.errors.length) + throw new Error("QUERY_INCOMPLETE"); + return decodeQxValue(port.output, response.value, messages); + }, + ...(port.watch + ? { + async *watch(variables, signal) { + for await (const event of query.watch(variablesToWire(variables), signal, port.definitionDigest)) { + if (!event.snapshot) + throw new Error("QUERY_SNAPSHOT_MISSING"); + yield decodeQuerySnapshot(event.snapshot, port.output, event.runId, event.sequence); + } + }, + } + : {}), + }, + ]; + } case "constructor": return [ name, diff --git a/dist/camino/api_pb.d.ts b/dist/camino/api_pb.d.ts index fe35029..83cd852 100644 --- a/dist/camino/api_pb.d.ts +++ b/dist/camino/api_pb.d.ts @@ -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; +/** + * @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 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; +/** + * @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; +/** + * @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; +/** + * @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; +/** + * @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; +/** + * @generated from message camino.QueryResidualRow + */ +export type QueryResidualRow = Message<"camino.QueryResidualRow"> & { + /** + * @generated from field: string entry_id = 1; + */ + entryId: string; + /** + * @generated from field: map fields = 2; + */ + fields: { + [key: string]: Value; + }; +}; +/** + * Describes the message camino.QueryResidualRow. + * Use `create(QueryResidualRowSchema)` to create a new message. + */ +export declare const QueryResidualRowSchema: GenMessage; +/** + * @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; +/** + * @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 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; +/** + * @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; +/** + * @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; +/** + * @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; /** * @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 */ diff --git a/dist/camino/api_pb.d.ts.map b/dist/camino/api_pb.d.ts.map index 6240003..17160d0 100644 --- a/dist/camino/api_pb.d.ts.map +++ b/dist/camino/api_pb.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"api_pb.d.ts","sourceRoot":"","sources":["../../src/camino/api_pb.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"api_pb.d.ts","sourceRoot":"","sources":["../../src/camino/api_pb.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/camino/api_pb.js b/dist/camino/api_pb.js index 3c8f79f..baa1acd 100644 --- a/dist/camino/api_pb.js +++ b/dist/camino/api_pb.js @@ -6,7 +6,7 @@ import { file_camino_schema } from "./schema_pb.js"; /** * Describes the file camino/api.proto. */ -export const file_camino_api = /*@__PURE__*/ fileDesc("ChBjYW1pbm8vYXBpLnByb3RvEgZjYW1pbm8iCwoJTnVsbFZhbHVlInwKC09iamVjdFZhbHVlEi8KBmZpZWxkcxgBIAMoCzIfLmNhbWluby5PYmplY3RWYWx1ZS5GaWVsZHNFbnRyeRo8CgtGaWVsZHNFbnRyeRILCgNrZXkYASABKAkSHAoFdmFsdWUYAiABKAsyDS5jYW1pbm8uVmFsdWU6AjgBIioKCUxpc3RWYWx1ZRIdCgZ2YWx1ZXMYASADKAsyDS5jYW1pbm8uVmFsdWUiHQoIUmVmVmFsdWUSEQoJb2JqZWN0X2lkGAEgASgJIjwKCUNyZHRWYWx1ZRIMCgR0eXBlGAEgASgJEhAKCGVuY29kaW5nGAIgASgJEg8KB3BheWxvYWQYAyABKAwiqAEKEFN0YXRlVmFsdWVTb3VyY2USEQoJb2JqZWN0X2lkGAEgASgJEg8KB3Nsb3RfaWQYAiABKAkSFwoPdmFsdWVfdHlwZV9qc29uGAMgASgJEhsKE3N0b3JhZ2VfcG9saWN5X2pzb24YBCABKAkSEAoIcmV2aXNpb24YBSABKAQSKAoNY3JkdF9zbmFwc2hvdBgGIAEoCzIRLmNhbWluby5DcmR0VmFsdWUiNgoLVmFsdWVTb3VyY2USJwoFc3RhdGUYASABKAsyGC5jYW1pbm8uU3RhdGVWYWx1ZVNvdXJjZSL5AgoFVmFsdWUSJwoKbnVsbF92YWx1ZRgBIAEoCzIRLmNhbWluby5OdWxsVmFsdWVIABIUCgpib29sX3ZhbHVlGAIgASgISAASFgoMbnVtYmVyX3ZhbHVlGAMgASgBSAASFgoMc3RyaW5nX3ZhbHVlGAQgASgJSAASFwoNaW50ZWdlcl92YWx1ZRgFIAEoCUgAEhUKC2J5dGVzX3ZhbHVlGAYgASgMSAASKwoMb2JqZWN0X3ZhbHVlGAcgASgLMhMuY2FtaW5vLk9iamVjdFZhbHVlSAASJwoKbGlzdF92YWx1ZRgIIAEoCzIRLmNhbWluby5MaXN0VmFsdWVIABIlCglyZWZfdmFsdWUYCSABKAsyEC5jYW1pbm8uUmVmVmFsdWVIABInCgpjcmR0X3ZhbHVlGAogASgLMhEuY2FtaW5vLkNyZHRWYWx1ZUgAEiMKBnNvdXJjZRgLIAEoCzITLmNhbWluby5WYWx1ZVNvdXJjZUIGCgRraW5kIkYKHUluc3RhbGxQZXJzaXN0ZW5jZVBsYW5SZXF1ZXN0EiUKBHBsYW4YASABKAsyFy5jYW1pbm8uUGVyc2lzdGVuY2VQbGFuIkcKHkluc3RhbGxQZXJzaXN0ZW5jZVBsYW5SZXNwb25zZRIlCgRwbGFuGAEgASgLMhcuY2FtaW5vLlBlcnNpc3RlbmNlUGxhbiIbChlHZXRQZXJzaXN0ZW5jZVBsYW5SZXF1ZXN0IkMKGkdldFBlcnNpc3RlbmNlUGxhblJlc3BvbnNlEiUKBHBsYW4YASABKAsyFy5jYW1pbm8uUGVyc2lzdGVuY2VQbGFuIrABChNDcmVhdGVPYmplY3RSZXF1ZXN0Eg8KB2F0b21faWQYASABKAkSRAoNaW5pdGlhbF9zdGF0ZRgCIAMoCzItLmNhbWluby5DcmVhdGVPYmplY3RSZXF1ZXN0LkluaXRpYWxTdGF0ZUVudHJ5GkIKEUluaXRpYWxTdGF0ZUVudHJ5EgsKA2tleRgBIAEoCRIcCgV2YWx1ZRgCIAEoCzINLmNhbWluby5WYWx1ZToCOAEiPAoUQ3JlYXRlT2JqZWN0UmVzcG9uc2USJAoGb2JqZWN0GAEgASgLMhQuY2FtaW5vLkNhbWlub09iamVjdCIlChBHZXRPYmplY3RSZXF1ZXN0EhEKCW9iamVjdF9pZBgBIAEoCSI5ChFHZXRPYmplY3RSZXNwb25zZRIkCgZvYmplY3QYASABKAsyFC5jYW1pbm8uQ2FtaW5vT2JqZWN0IiUKEkxpc3RPYmplY3RzUmVxdWVzdBIPCgdhdG9tX2lkGAEgASgJIjwKE0xpc3RPYmplY3RzUmVzcG9uc2USJQoHb2JqZWN0cxgBIAMoCzIULmNhbWluby5DYW1pbm9PYmplY3QiNgoQUmVhZFN0YXRlUmVxdWVzdBIRCglvYmplY3RfaWQYASABKAkSDwoHc2xvdF9pZBgCIAEoCSIxChFSZWFkU3RhdGVSZXNwb25zZRIcCgV2YWx1ZRgBIAEoCzINLmNhbWluby5WYWx1ZSJxChFXcml0ZVN0YXRlUmVxdWVzdBIRCglvYmplY3RfaWQYASABKAkSDwoHc2xvdF9pZBgCIAEoCRIcCgV2YWx1ZRgDIAEoCzINLmNhbWluby5WYWx1ZRIaChJjbGllbnRfbXV0YXRpb25faWQYBCABKAkiWAoSV3JpdGVTdGF0ZVJlc3BvbnNlEhwKBXZhbHVlGAEgASgLMg0uY2FtaW5vLlZhbHVlEiQKBm9iamVjdBgCIAEoCzIULmNhbWluby5DYW1pbm9PYmplY3QiwAEKEkNvbm5lY3RFZGdlUmVxdWVzdBIUCgxlZGdlX3R5cGVfaWQYASABKAkSFQoNcHJvamVjdGlvbl9pZBgCIAEoCRIRCglvYmplY3RfaWQYAyABKAkSGAoQdGFyZ2V0X29iamVjdF9pZBgEIAEoCRIUCgdvcmRpbmFsGAUgASgFSACIAQESGwoOdGFyZ2V0X29yZGluYWwYBiABKAVIAYgBAUIKCghfb3JkaW5hbEIRCg9fdGFyZ2V0X29yZGluYWwiNwoTQ29ubmVjdEVkZ2VSZXNwb25zZRIgCgRlZGdlGAEgASgLMhIuY2FtaW5vLkNhbWlub0VkZ2UiVAoSUmVzb2x2ZUVkZ2VSZXF1ZXN0EhEKCW9iamVjdF9pZBgBIAEoCRIUCgxlZGdlX3R5cGVfaWQYAiABKAkSFQoNcHJvamVjdGlvbl9pZBgDIAEoCSI4ChNSZXNvbHZlRWRnZVJlc3BvbnNlEiEKBWVkZ2VzGAEgAygLMhIuY2FtaW5vLkNhbWlub0VkZ2UiKAoVRGlzY29ubmVjdEVkZ2VSZXF1ZXN0Eg8KB2VkZ2VfaWQYASABKAkiKQoWRGlzY29ubmVjdEVkZ2VSZXNwb25zZRIPCgdlZGdlX2lkGAEgASgJIlgKD0NvbGxlY3Rpb25FbnRyeRIPCgdlZGdlX2lkGAEgASgJEhgKEHRhcmdldF9vYmplY3RfaWQYAiABKAkSGgoDa2V5GAMgASgLMg0uY2FtaW5vLlZhbHVlIlQKFlJlYWRDb2xsZWN0aW9uUmVzcG9uc2USEAoIcmV2aXNpb24YASABKAQSKAoHZW50cmllcxgCIAMoCzIXLmNhbWluby5Db2xsZWN0aW9uRW50cnkinwEKGFJlcGxhY2VDb2xsZWN0aW9uUmVxdWVzdBIRCglvYmplY3RfaWQYASABKAkSFAoMZWRnZV90eXBlX2lkGAIgASgJEhUKDXByb2plY3Rpb25faWQYAyABKAkSGQoRZXhwZWN0ZWRfcmV2aXNpb24YBCABKAQSKAoHZW50cmllcxgFIAMoCzIXLmNhbWluby5Db2xsZWN0aW9uRW50cnkiIwoOTGlzdE9wc1JlcXVlc3QSEQoJb2JqZWN0X2lkGAEgASgJIjAKD0xpc3RPcHNSZXNwb25zZRIdCgNvcHMYASADKAsyEC5jYW1pbm8uQ2FtaW5vT3AibgoSV2F0Y2hPYmplY3RSZXF1ZXN0EhEKCW9iamVjdF9pZBgBIAEoCRITCgthZnRlcl9vcF9pZBgCIAEoCRIYChBpbmNsdWRlX3NuYXBzaG90GAMgASgIEhYKDmF0dGFjaG1lbnRfaWRzGAQgAygJImsKEFdhdGNoT2JqZWN0RXZlbnQSEQoJb2JqZWN0X2lkGAEgASgJEiYKCHNuYXBzaG90GAIgASgLMhQuY2FtaW5vLkNhbWlub09iamVjdBIcCgJvcBgDIAEoCzIQLmNhbWluby5DYW1pbm9PcCLZAgoMQ2FtaW5vT2JqZWN0EgoKAmlkGAEgASgJEg8KB2F0b21faWQYAiABKAkSHQoVd29ya3NwYWNlX3JldmlzaW9uX2lkGAMgASgJEhIKCmNyZWF0ZWRfYXQYBCABKAkSEgoKdXBkYXRlZF9hdBgFIAEoCRIuCgVzdGF0ZRgGIAMoCzIfLmNhbWluby5DYW1pbm9PYmplY3QuU3RhdGVFbnRyeRJBCg9zdGF0ZV9yZXZpc2lvbnMYByADKAsyKC5jYW1pbm8uQ2FtaW5vT2JqZWN0LlN0YXRlUmV2aXNpb25zRW50cnkaOwoKU3RhdGVFbnRyeRILCgNrZXkYASABKAkSHAoFdmFsdWUYAiABKAsyDS5jYW1pbm8uVmFsdWU6AjgBGjUKE1N0YXRlUmV2aXNpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgEOgI4ASK/AgoKQ2FtaW5vRWRnZRIKCgJpZBgBIAEoCRIUCgxlZGdlX3R5cGVfaWQYAiABKAkSFwoPZmlyc3Rfb2JqZWN0X2lkGAMgASgJEhgKEHNlY29uZF9vYmplY3RfaWQYBCABKAkSGwoTZmlyc3RfcHJvamVjdGlvbl9pZBgFIAEoCRIcChRzZWNvbmRfcHJvamVjdGlvbl9pZBgGIAEoCRIaCg1maXJzdF9vcmRpbmFsGAcgASgFSACIAQESGwoOc2Vjb25kX29yZGluYWwYCCABKAVIAYgBARISCgpjcmVhdGVkX2F0GAkgASgJEhYKDmZpcnN0X2tleV9qc29uGAogASgJEhcKD3NlY29uZF9rZXlfanNvbhgLIAEoCUIQCg5fZmlyc3Rfb3JkaW5hbEIRCg9fc2Vjb25kX29yZGluYWwimQEKCENhbWlub09wEgoKAmlkGAEgASgJEhEKCW9iamVjdF9pZBgCIAEoCRIPCgdvcF9raW5kGAMgASgJEh4KB3BheWxvYWQYBCABKAsyDS5jYW1pbm8uVmFsdWUSDQoFYWN0b3IYBSABKAkSEgoKY3JlYXRlZF9hdBgGIAEoCRIaChJjbGllbnRfbXV0YXRpb25faWQYByABKAkyuggKDUNhbWlub1NlcnZpY2USZwoWSW5zdGFsbFBlcnNpc3RlbmNlUGxhbhIlLmNhbWluby5JbnN0YWxsUGVyc2lzdGVuY2VQbGFuUmVxdWVzdBomLmNhbWluby5JbnN0YWxsUGVyc2lzdGVuY2VQbGFuUmVzcG9uc2USWwoSR2V0UGVyc2lzdGVuY2VQbGFuEiEuY2FtaW5vLkdldFBlcnNpc3RlbmNlUGxhblJlcXVlc3QaIi5jYW1pbm8uR2V0UGVyc2lzdGVuY2VQbGFuUmVzcG9uc2USSQoMQ3JlYXRlT2JqZWN0EhsuY2FtaW5vLkNyZWF0ZU9iamVjdFJlcXVlc3QaHC5jYW1pbm8uQ3JlYXRlT2JqZWN0UmVzcG9uc2USQAoJR2V0T2JqZWN0EhguY2FtaW5vLkdldE9iamVjdFJlcXVlc3QaGS5jYW1pbm8uR2V0T2JqZWN0UmVzcG9uc2USRgoLTGlzdE9iamVjdHMSGi5jYW1pbm8uTGlzdE9iamVjdHNSZXF1ZXN0GhsuY2FtaW5vLkxpc3RPYmplY3RzUmVzcG9uc2USQAoJUmVhZFN0YXRlEhguY2FtaW5vLlJlYWRTdGF0ZVJlcXVlc3QaGS5jYW1pbm8uUmVhZFN0YXRlUmVzcG9uc2USQwoKV3JpdGVTdGF0ZRIZLmNhbWluby5Xcml0ZVN0YXRlUmVxdWVzdBoaLmNhbWluby5Xcml0ZVN0YXRlUmVzcG9uc2USRgoLQ29ubmVjdEVkZ2USGi5jYW1pbm8uQ29ubmVjdEVkZ2VSZXF1ZXN0GhsuY2FtaW5vLkNvbm5lY3RFZGdlUmVzcG9uc2USRgoLUmVzb2x2ZUVkZ2USGi5jYW1pbm8uUmVzb2x2ZUVkZ2VSZXF1ZXN0GhsuY2FtaW5vLlJlc29sdmVFZGdlUmVzcG9uc2USTwoORGlzY29ubmVjdEVkZ2USHS5jYW1pbm8uRGlzY29ubmVjdEVkZ2VSZXF1ZXN0Gh4uY2FtaW5vLkRpc2Nvbm5lY3RFZGdlUmVzcG9uc2USTAoOUmVhZENvbGxlY3Rpb24SGi5jYW1pbm8uUmVzb2x2ZUVkZ2VSZXF1ZXN0Gh4uY2FtaW5vLlJlYWRDb2xsZWN0aW9uUmVzcG9uc2USVQoRUmVwbGFjZUNvbGxlY3Rpb24SIC5jYW1pbm8uUmVwbGFjZUNvbGxlY3Rpb25SZXF1ZXN0Gh4uY2FtaW5vLlJlYWRDb2xsZWN0aW9uUmVzcG9uc2USOgoHTGlzdE9wcxIWLmNhbWluby5MaXN0T3BzUmVxdWVzdBoXLmNhbWluby5MaXN0T3BzUmVzcG9uc2USRQoLV2F0Y2hPYmplY3QSGi5jYW1pbm8uV2F0Y2hPYmplY3RSZXF1ZXN0GhguY2FtaW5vLldhdGNoT2JqZWN0RXZlbnQwAWIGcHJvdG8z", [file_camino_schema]); +export const file_camino_api = /*@__PURE__*/ fileDesc("ChBjYW1pbm8vYXBpLnByb3RvEgZjYW1pbm8iCwoJTnVsbFZhbHVlInwKC09iamVjdFZhbHVlEi8KBmZpZWxkcxgBIAMoCzIfLmNhbWluby5PYmplY3RWYWx1ZS5GaWVsZHNFbnRyeRo8CgtGaWVsZHNFbnRyeRILCgNrZXkYASABKAkSHAoFdmFsdWUYAiABKAsyDS5jYW1pbm8uVmFsdWU6AjgBIioKCUxpc3RWYWx1ZRIdCgZ2YWx1ZXMYASADKAsyDS5jYW1pbm8uVmFsdWUiHQoIUmVmVmFsdWUSEQoJb2JqZWN0X2lkGAEgASgJIjwKCUNyZHRWYWx1ZRIMCgR0eXBlGAEgASgJEhAKCGVuY29kaW5nGAIgASgJEg8KB3BheWxvYWQYAyABKAwiqAEKEFN0YXRlVmFsdWVTb3VyY2USEQoJb2JqZWN0X2lkGAEgASgJEg8KB3Nsb3RfaWQYAiABKAkSFwoPdmFsdWVfdHlwZV9qc29uGAMgASgJEhsKE3N0b3JhZ2VfcG9saWN5X2pzb24YBCABKAkSEAoIcmV2aXNpb24YBSABKAQSKAoNY3JkdF9zbmFwc2hvdBgGIAEoCzIRLmNhbWluby5DcmR0VmFsdWUiNgoLVmFsdWVTb3VyY2USJwoFc3RhdGUYASABKAsyGC5jYW1pbm8uU3RhdGVWYWx1ZVNvdXJjZSL5AgoFVmFsdWUSJwoKbnVsbF92YWx1ZRgBIAEoCzIRLmNhbWluby5OdWxsVmFsdWVIABIUCgpib29sX3ZhbHVlGAIgASgISAASFgoMbnVtYmVyX3ZhbHVlGAMgASgBSAASFgoMc3RyaW5nX3ZhbHVlGAQgASgJSAASFwoNaW50ZWdlcl92YWx1ZRgFIAEoCUgAEhUKC2J5dGVzX3ZhbHVlGAYgASgMSAASKwoMb2JqZWN0X3ZhbHVlGAcgASgLMhMuY2FtaW5vLk9iamVjdFZhbHVlSAASJwoKbGlzdF92YWx1ZRgIIAEoCzIRLmNhbWluby5MaXN0VmFsdWVIABIlCglyZWZfdmFsdWUYCSABKAsyEC5jYW1pbm8uUmVmVmFsdWVIABInCgpjcmR0X3ZhbHVlGAogASgLMhEuY2FtaW5vLkNyZHRWYWx1ZUgAEiMKBnNvdXJjZRgLIAEoCzITLmNhbWluby5WYWx1ZVNvdXJjZUIGCgRraW5kIkYKHUluc3RhbGxQZXJzaXN0ZW5jZVBsYW5SZXF1ZXN0EiUKBHBsYW4YASABKAsyFy5jYW1pbm8uUGVyc2lzdGVuY2VQbGFuIkcKHkluc3RhbGxQZXJzaXN0ZW5jZVBsYW5SZXNwb25zZRIlCgRwbGFuGAEgASgLMhcuY2FtaW5vLlBlcnNpc3RlbmNlUGxhbiIbChlHZXRQZXJzaXN0ZW5jZVBsYW5SZXF1ZXN0IkMKGkdldFBlcnNpc3RlbmNlUGxhblJlc3BvbnNlEiUKBHBsYW4YASABKAsyFy5jYW1pbm8uUGVyc2lzdGVuY2VQbGFuIrABChNDcmVhdGVPYmplY3RSZXF1ZXN0Eg8KB2F0b21faWQYASABKAkSRAoNaW5pdGlhbF9zdGF0ZRgCIAMoCzItLmNhbWluby5DcmVhdGVPYmplY3RSZXF1ZXN0LkluaXRpYWxTdGF0ZUVudHJ5GkIKEUluaXRpYWxTdGF0ZUVudHJ5EgsKA2tleRgBIAEoCRIcCgV2YWx1ZRgCIAEoCzINLmNhbWluby5WYWx1ZToCOAEiPAoUQ3JlYXRlT2JqZWN0UmVzcG9uc2USJAoGb2JqZWN0GAEgASgLMhQuY2FtaW5vLkNhbWlub09iamVjdCIlChBHZXRPYmplY3RSZXF1ZXN0EhEKCW9iamVjdF9pZBgBIAEoCSI5ChFHZXRPYmplY3RSZXNwb25zZRIkCgZvYmplY3QYASABKAsyFC5jYW1pbm8uQ2FtaW5vT2JqZWN0IiUKEkxpc3RPYmplY3RzUmVxdWVzdBIPCgdhdG9tX2lkGAEgASgJIjwKE0xpc3RPYmplY3RzUmVzcG9uc2USJQoHb2JqZWN0cxgBIAMoCzIULmNhbWluby5DYW1pbm9PYmplY3QiNgoQUmVhZFN0YXRlUmVxdWVzdBIRCglvYmplY3RfaWQYASABKAkSDwoHc2xvdF9pZBgCIAEoCSIxChFSZWFkU3RhdGVSZXNwb25zZRIcCgV2YWx1ZRgBIAEoCzINLmNhbWluby5WYWx1ZSJxChFXcml0ZVN0YXRlUmVxdWVzdBIRCglvYmplY3RfaWQYASABKAkSDwoHc2xvdF9pZBgCIAEoCRIcCgV2YWx1ZRgDIAEoCzINLmNhbWluby5WYWx1ZRIaChJjbGllbnRfbXV0YXRpb25faWQYBCABKAkiWAoSV3JpdGVTdGF0ZVJlc3BvbnNlEhwKBXZhbHVlGAEgASgLMg0uY2FtaW5vLlZhbHVlEiQKBm9iamVjdBgCIAEoCzIULmNhbWluby5DYW1pbm9PYmplY3QiwAEKEkNvbm5lY3RFZGdlUmVxdWVzdBIUCgxlZGdlX3R5cGVfaWQYASABKAkSFQoNcHJvamVjdGlvbl9pZBgCIAEoCRIRCglvYmplY3RfaWQYAyABKAkSGAoQdGFyZ2V0X29iamVjdF9pZBgEIAEoCRIUCgdvcmRpbmFsGAUgASgFSACIAQESGwoOdGFyZ2V0X29yZGluYWwYBiABKAVIAYgBAUIKCghfb3JkaW5hbEIRCg9fdGFyZ2V0X29yZGluYWwiNwoTQ29ubmVjdEVkZ2VSZXNwb25zZRIgCgRlZGdlGAEgASgLMhIuY2FtaW5vLkNhbWlub0VkZ2UiVAoSUmVzb2x2ZUVkZ2VSZXF1ZXN0EhEKCW9iamVjdF9pZBgBIAEoCRIUCgxlZGdlX3R5cGVfaWQYAiABKAkSFQoNcHJvamVjdGlvbl9pZBgDIAEoCSI4ChNSZXNvbHZlRWRnZVJlc3BvbnNlEiEKBWVkZ2VzGAEgAygLMhIuY2FtaW5vLkNhbWlub0VkZ2UiKAoVRGlzY29ubmVjdEVkZ2VSZXF1ZXN0Eg8KB2VkZ2VfaWQYASABKAkiKQoWRGlzY29ubmVjdEVkZ2VSZXNwb25zZRIPCgdlZGdlX2lkGAEgASgJIlgKD0NvbGxlY3Rpb25FbnRyeRIPCgdlZGdlX2lkGAEgASgJEhgKEHRhcmdldF9vYmplY3RfaWQYAiABKAkSGgoDa2V5GAMgASgLMg0uY2FtaW5vLlZhbHVlIlQKFlJlYWRDb2xsZWN0aW9uUmVzcG9uc2USEAoIcmV2aXNpb24YASABKAQSKAoHZW50cmllcxgCIAMoCzIXLmNhbWluby5Db2xsZWN0aW9uRW50cnkinwEKGFJlcGxhY2VDb2xsZWN0aW9uUmVxdWVzdBIRCglvYmplY3RfaWQYASABKAkSFAoMZWRnZV90eXBlX2lkGAIgASgJEhUKDXByb2plY3Rpb25faWQYAyABKAkSGQoRZXhwZWN0ZWRfcmV2aXNpb24YBCABKAQSKAoHZW50cmllcxgFIAMoCzIXLmNhbWluby5Db2xsZWN0aW9uRW50cnkiIwoOTGlzdE9wc1JlcXVlc3QSEQoJb2JqZWN0X2lkGAEgASgJIjAKD0xpc3RPcHNSZXNwb25zZRIdCgNvcHMYASADKAsyEC5jYW1pbm8uQ2FtaW5vT3AibgoSV2F0Y2hPYmplY3RSZXF1ZXN0EhEKCW9iamVjdF9pZBgBIAEoCRITCgthZnRlcl9vcF9pZBgCIAEoCRIYChBpbmNsdWRlX3NuYXBzaG90GAMgASgIEhYKDmF0dGFjaG1lbnRfaWRzGAQgAygJImsKEFdhdGNoT2JqZWN0RXZlbnQSEQoJb2JqZWN0X2lkGAEgASgJEiYKCHNuYXBzaG90GAIgASgLMhQuY2FtaW5vLkNhbWlub09iamVjdBIcCgJvcBgDIAEoCzIQLmNhbWluby5DYW1pbm9PcCLZAgoMQ2FtaW5vT2JqZWN0EgoKAmlkGAEgASgJEg8KB2F0b21faWQYAiABKAkSHQoVd29ya3NwYWNlX3JldmlzaW9uX2lkGAMgASgJEhIKCmNyZWF0ZWRfYXQYBCABKAkSEgoKdXBkYXRlZF9hdBgFIAEoCRIuCgVzdGF0ZRgGIAMoCzIfLmNhbWluby5DYW1pbm9PYmplY3QuU3RhdGVFbnRyeRJBCg9zdGF0ZV9yZXZpc2lvbnMYByADKAsyKC5jYW1pbm8uQ2FtaW5vT2JqZWN0LlN0YXRlUmV2aXNpb25zRW50cnkaOwoKU3RhdGVFbnRyeRILCgNrZXkYASABKAkSHAoFdmFsdWUYAiABKAsyDS5jYW1pbm8uVmFsdWU6AjgBGjUKE1N0YXRlUmV2aXNpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgEOgI4ASK/AgoKQ2FtaW5vRWRnZRIKCgJpZBgBIAEoCRIUCgxlZGdlX3R5cGVfaWQYAiABKAkSFwoPZmlyc3Rfb2JqZWN0X2lkGAMgASgJEhgKEHNlY29uZF9vYmplY3RfaWQYBCABKAkSGwoTZmlyc3RfcHJvamVjdGlvbl9pZBgFIAEoCRIcChRzZWNvbmRfcHJvamVjdGlvbl9pZBgGIAEoCRIaCg1maXJzdF9vcmRpbmFsGAcgASgFSACIAQESGwoOc2Vjb25kX29yZGluYWwYCCABKAVIAYgBARISCgpjcmVhdGVkX2F0GAkgASgJEhYKDmZpcnN0X2tleV9qc29uGAogASgJEhcKD3NlY29uZF9rZXlfanNvbhgLIAEoCUIQCg5fZmlyc3Rfb3JkaW5hbEIRCg9fc2Vjb25kX29yZGluYWwimQEKCENhbWlub09wEgoKAmlkGAEgASgJEhEKCW9iamVjdF9pZBgCIAEoCRIPCgdvcF9raW5kGAMgASgJEh4KB3BheWxvYWQYBCABKAsyDS5jYW1pbm8uVmFsdWUSDQoFYWN0b3IYBSABKAkSEgoKY3JlYXRlZF9hdBgGIAEoCRIaChJjbGllbnRfbXV0YXRpb25faWQYByABKAki0AEKDFF1ZXJ5UmVxdWVzdBIQCghxdWVyeV9pZBgBIAEoCRIRCglvYmplY3RfaWQYAiABKAkSNgoJdmFyaWFibGVzGAMgAygLMiMuY2FtaW5vLlF1ZXJ5UmVxdWVzdC5WYXJpYWJsZXNFbnRyeRIiChpleHBlY3RlZF9kZWZpbml0aW9uX2RpZ2VzdBgEIAEoCRo/Cg5WYXJpYWJsZXNFbnRyeRILCgNrZXkYASABKAkSHAoFdmFsdWUYAiABKAsyDS5jYW1pbm8uVmFsdWU6AjgBIjkKDVF1ZXJ5UGF0aFBhcnQSDwoFZmllbGQYASABKAlIABIPCgVpbmRleBgCIAEoDUgAQgYKBHBhcnQijAIKEVF1ZXJ5UGVuZGluZ0ZpZWxkEiMKBHBhdGgYASADKAsyFS5jYW1pbm8uUXVlcnlQYXRoUGFydBIRCglvYmplY3RfaWQYAiABKAkSHQoVaW50ZXJmYWNlX3JldmlzaW9uX2lkGAMgASgJEhEKCW1lbWJlcl9pZBgEIAEoCRIUCgxvcGVyYXRpb25faWQYBSABKAkSFwoPdmFsdWVfdHlwZV9qc29uGAYgASgJEhwKD3Jlc2lkdWFsX3dpbmRvdxgHIAEoDUgAiAEBEhQKDHJlc2lkdWFsX3JvdxgIIAEoDRIWCg5yZXNpZHVhbF9maWVsZBgJIAEoCUISChBfcmVzaWR1YWxfd2luZG93IpIBCgpRdWVyeVN0YXRzEhEKCXNxbF9jb3VudBgBIAEoDRIOCgZzcWxfbXMYAiABKAESEQoJcnBjX2NvdW50GAMgASgNEg4KBnJwY19tcxgEIAEoARIUCgxyZXN1bHRfYnl0ZXMYBSABKA0SFgoOcHJlcGFyYXRpb25fbXMYBiABKAESEAoIdG90YWxfbXMYByABKAEivAIKDVF1ZXJ5UmVzcG9uc2USHAoFdmFsdWUYASABKAsyDS5jYW1pbm8uVmFsdWUSFAoMZGF0YV92ZXJzaW9uGAIgASgJEhYKDmJpbmRpbmdfZGlnZXN0GAMgASgJEioKB3BlbmRpbmcYBCADKAsyGS5jYW1pbm8uUXVlcnlQZW5kaW5nRmllbGQSIQoFc3RhdHMYBSABKAsyEi5jYW1pbm8uUXVlcnlTdGF0cxIZChFwcmVwYXJhdGlvbl90b2tlbhgGIAEoCRIpCgZlcnJvcnMYByADKAsyGS5jYW1pbm8uUXVlcnlGaWVsZEZhaWx1cmUSNQoQcmVzaWR1YWxfd2luZG93cxgIIAMoCzIbLmNhbWluby5RdWVyeVJlc2lkdWFsV2luZG93EhMKC2NvbnNpc3RlbmN5GAkgASgJIpgBChBRdWVyeVJlc2lkdWFsUm93EhAKCGVudHJ5X2lkGAEgASgJEjQKBmZpZWxkcxgCIAMoCzIkLmNhbWluby5RdWVyeVJlc2lkdWFsUm93LkZpZWxkc0VudHJ5GjwKC0ZpZWxkc0VudHJ5EgsKA2tleRgBIAEoCRIcCgV2YWx1ZRgCIAEoCzINLmNhbWluby5WYWx1ZToCOAEiNwoSUXVlcnlSZXNpZHVhbE9yZGVyEg0KBWZpZWxkGAEgASgJEhIKCmRlc2NlbmRpbmcYAiABKAgi6QIKE1F1ZXJ5UmVzaWR1YWxXaW5kb3cSIwoEcGF0aBgBIAMoCzIVLmNhbWluby5RdWVyeVBhdGhQYXJ0EiYKBHJvd3MYAiADKAsyGC5jYW1pbm8uUXVlcnlSZXNpZHVhbFJvdxIWCg5wcmVkaWNhdGVfanNvbhgDIAEoCRIpCgVvcmRlchgEIAMoCzIaLmNhbWluby5RdWVyeVJlc2lkdWFsT3JkZXISDQoFbGltaXQYBSABKA0SEwoLYm91bmRlZF9hbGwYBiABKAgSKQoJc2VsZWN0aW9uGAcgAygLMhYuY2FtaW5vLlF1ZXJ5U2VsZWN0aW9uEkAKC2ZpZWxkX3R5cGVzGAggAygLMisuY2FtaW5vLlF1ZXJ5UmVzaWR1YWxXaW5kb3cuRmllbGRUeXBlc0VudHJ5GjEKD0ZpZWxkVHlwZXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIkcKEVF1ZXJ5RmllbGRGYWlsdXJlEiMKBHBhdGgYASADKAsyFS5jYW1pbm8uUXVlcnlQYXRoUGFydBINCgVlcnJvchgCIAEoCSJQChNRdWVyeUNoYW5nZXNSZXF1ZXN0EhAKCHF1ZXJ5X2lkGAEgASgJEhEKCW9iamVjdF9pZBgCIAEoCRIUCgxkYXRhX3ZlcnNpb24YAyABKAkiJwoUUXVlcnlDaGFuZ2VzUmVzcG9uc2USDwoHY2hhbmdlZBgBIAEoCDLCCQoNQ2FtaW5vU2VydmljZRI7CgxFeGVjdXRlUXVlcnkSFC5jYW1pbm8uUXVlcnlSZXF1ZXN0GhUuY2FtaW5vLlF1ZXJ5UmVzcG9uc2USSQoMUXVlcnlDaGFuZ2VzEhsuY2FtaW5vLlF1ZXJ5Q2hhbmdlc1JlcXVlc3QaHC5jYW1pbm8uUXVlcnlDaGFuZ2VzUmVzcG9uc2USZwoWSW5zdGFsbFBlcnNpc3RlbmNlUGxhbhIlLmNhbWluby5JbnN0YWxsUGVyc2lzdGVuY2VQbGFuUmVxdWVzdBomLmNhbWluby5JbnN0YWxsUGVyc2lzdGVuY2VQbGFuUmVzcG9uc2USWwoSR2V0UGVyc2lzdGVuY2VQbGFuEiEuY2FtaW5vLkdldFBlcnNpc3RlbmNlUGxhblJlcXVlc3QaIi5jYW1pbm8uR2V0UGVyc2lzdGVuY2VQbGFuUmVzcG9uc2USSQoMQ3JlYXRlT2JqZWN0EhsuY2FtaW5vLkNyZWF0ZU9iamVjdFJlcXVlc3QaHC5jYW1pbm8uQ3JlYXRlT2JqZWN0UmVzcG9uc2USQAoJR2V0T2JqZWN0EhguY2FtaW5vLkdldE9iamVjdFJlcXVlc3QaGS5jYW1pbm8uR2V0T2JqZWN0UmVzcG9uc2USRgoLTGlzdE9iamVjdHMSGi5jYW1pbm8uTGlzdE9iamVjdHNSZXF1ZXN0GhsuY2FtaW5vLkxpc3RPYmplY3RzUmVzcG9uc2USQAoJUmVhZFN0YXRlEhguY2FtaW5vLlJlYWRTdGF0ZVJlcXVlc3QaGS5jYW1pbm8uUmVhZFN0YXRlUmVzcG9uc2USQwoKV3JpdGVTdGF0ZRIZLmNhbWluby5Xcml0ZVN0YXRlUmVxdWVzdBoaLmNhbWluby5Xcml0ZVN0YXRlUmVzcG9uc2USRgoLQ29ubmVjdEVkZ2USGi5jYW1pbm8uQ29ubmVjdEVkZ2VSZXF1ZXN0GhsuY2FtaW5vLkNvbm5lY3RFZGdlUmVzcG9uc2USRgoLUmVzb2x2ZUVkZ2USGi5jYW1pbm8uUmVzb2x2ZUVkZ2VSZXF1ZXN0GhsuY2FtaW5vLlJlc29sdmVFZGdlUmVzcG9uc2USTwoORGlzY29ubmVjdEVkZ2USHS5jYW1pbm8uRGlzY29ubmVjdEVkZ2VSZXF1ZXN0Gh4uY2FtaW5vLkRpc2Nvbm5lY3RFZGdlUmVzcG9uc2USTAoOUmVhZENvbGxlY3Rpb24SGi5jYW1pbm8uUmVzb2x2ZUVkZ2VSZXF1ZXN0Gh4uY2FtaW5vLlJlYWRDb2xsZWN0aW9uUmVzcG9uc2USVQoRUmVwbGFjZUNvbGxlY3Rpb24SIC5jYW1pbm8uUmVwbGFjZUNvbGxlY3Rpb25SZXF1ZXN0Gh4uY2FtaW5vLlJlYWRDb2xsZWN0aW9uUmVzcG9uc2USOgoHTGlzdE9wcxIWLmNhbWluby5MaXN0T3BzUmVxdWVzdBoXLmNhbWluby5MaXN0T3BzUmVzcG9uc2USRQoLV2F0Y2hPYmplY3QSGi5jYW1pbm8uV2F0Y2hPYmplY3RSZXF1ZXN0GhguY2FtaW5vLldhdGNoT2JqZWN0RXZlbnQwAWIGcHJvdG8z", [file_camino_schema]); /** * Describes the message camino.NullValue. * Use `create(NullValueSchema)` to create a new message. @@ -197,6 +197,61 @@ export const CaminoEdgeSchema = /*@__PURE__*/ messageDesc(file_camino_api, 36); * Use `create(CaminoOpSchema)` to create a new message. */ export const CaminoOpSchema = /*@__PURE__*/ messageDesc(file_camino_api, 37); +/** + * Describes the message camino.QueryRequest. + * Use `create(QueryRequestSchema)` to create a new message. + */ +export const QueryRequestSchema = /*@__PURE__*/ messageDesc(file_camino_api, 38); +/** + * Describes the message camino.QueryPathPart. + * Use `create(QueryPathPartSchema)` to create a new message. + */ +export const QueryPathPartSchema = /*@__PURE__*/ messageDesc(file_camino_api, 39); +/** + * Describes the message camino.QueryPendingField. + * Use `create(QueryPendingFieldSchema)` to create a new message. + */ +export const QueryPendingFieldSchema = /*@__PURE__*/ messageDesc(file_camino_api, 40); +/** + * Describes the message camino.QueryStats. + * Use `create(QueryStatsSchema)` to create a new message. + */ +export const QueryStatsSchema = /*@__PURE__*/ messageDesc(file_camino_api, 41); +/** + * Describes the message camino.QueryResponse. + * Use `create(QueryResponseSchema)` to create a new message. + */ +export const QueryResponseSchema = /*@__PURE__*/ messageDesc(file_camino_api, 42); +/** + * Describes the message camino.QueryResidualRow. + * Use `create(QueryResidualRowSchema)` to create a new message. + */ +export const QueryResidualRowSchema = /*@__PURE__*/ messageDesc(file_camino_api, 43); +/** + * Describes the message camino.QueryResidualOrder. + * Use `create(QueryResidualOrderSchema)` to create a new message. + */ +export const QueryResidualOrderSchema = /*@__PURE__*/ messageDesc(file_camino_api, 44); +/** + * Describes the message camino.QueryResidualWindow. + * Use `create(QueryResidualWindowSchema)` to create a new message. + */ +export const QueryResidualWindowSchema = /*@__PURE__*/ messageDesc(file_camino_api, 45); +/** + * Describes the message camino.QueryFieldFailure. + * Use `create(QueryFieldFailureSchema)` to create a new message. + */ +export const QueryFieldFailureSchema = /*@__PURE__*/ messageDesc(file_camino_api, 46); +/** + * Describes the message camino.QueryChangesRequest. + * Use `create(QueryChangesRequestSchema)` to create a new message. + */ +export const QueryChangesRequestSchema = /*@__PURE__*/ messageDesc(file_camino_api, 47); +/** + * Describes the message camino.QueryChangesResponse. + * Use `create(QueryChangesResponseSchema)` to create a new message. + */ +export const QueryChangesResponseSchema = /*@__PURE__*/ messageDesc(file_camino_api, 48); /** * @generated from service camino.CaminoService */ diff --git a/dist/camino/schema_pb.d.ts b/dist/camino/schema_pb.d.ts index 8595d64..e967bb7 100644 --- a/dist/camino/schema_pb.d.ts +++ b/dist/camino/schema_pb.d.ts @@ -224,12 +224,320 @@ export type PersistencePlan = Message<"camino.PersistencePlan"> & { * @generated from field: repeated camino.EdgeAttachment edges = 6; */ edges: EdgeAttachment[]; + /** + * @generated from field: repeated camino.InstalledQuery queries = 7; + */ + queries: InstalledQuery[]; }; /** * Describes the message camino.PersistencePlan. * Use `create(PersistencePlanSchema)` to create a new message. */ export declare const PersistencePlanSchema: GenMessage; +/** + * Immutable checked query IR. Installed only with the checked persistence plan; + * query callers select its ID, never send or modify these definitions. + * + * @generated from message camino.QueryArgument + */ +export type QueryArgument = Message<"camino.QueryArgument"> & { + /** + * @generated from oneof camino.QueryArgument.value + */ + value: { + /** + * @generated from field: string variable = 1; + */ + value: string; + case: "variable"; + } | { + /** + * @generated from field: string literal_json = 2; + */ + value: string; + case: "literalJson"; + } | { + /** + * @generated from field: camino.QueryArgumentList list = 3; + */ + value: QueryArgumentList; + case: "list"; + } | { + /** + * @generated from field: camino.QueryArgumentObject object = 4; + */ + value: QueryArgumentObject; + case: "object"; + } | { + case: undefined; + value?: undefined; + }; +}; +/** + * Describes the message camino.QueryArgument. + * Use `create(QueryArgumentSchema)` to create a new message. + */ +export declare const QueryArgumentSchema: GenMessage; +/** + * @generated from message camino.QueryArgumentList + */ +export type QueryArgumentList = Message<"camino.QueryArgumentList"> & { + /** + * @generated from field: repeated camino.QueryArgument values = 1; + */ + values: QueryArgument[]; +}; +/** + * Describes the message camino.QueryArgumentList. + * Use `create(QueryArgumentListSchema)` to create a new message. + */ +export declare const QueryArgumentListSchema: GenMessage; +/** + * @generated from message camino.QueryArgumentObject + */ +export type QueryArgumentObject = Message<"camino.QueryArgumentObject"> & { + /** + * @generated from field: map fields = 1; + */ + fields: { + [key: string]: QueryArgument; + }; +}; +/** + * Describes the message camino.QueryArgumentObject. + * Use `create(QueryArgumentObjectSchema)` to create a new message. + */ +export declare const QueryArgumentObjectSchema: GenMessage; +/** + * @generated from message camino.QueryCondition + */ +export type QueryCondition = Message<"camino.QueryCondition"> & { + /** + * @generated from field: bool include = 1; + */ + include: boolean; + /** + * @generated from field: camino.QueryArgument value = 2; + */ + value?: QueryArgument | undefined; +}; +/** + * Describes the message camino.QueryCondition. + * Use `create(QueryConditionSchema)` to create a new message. + */ +export declare const QueryConditionSchema: GenMessage; +/** + * @generated from message camino.QuerySelection + */ +export type QuerySelection = Message<"camino.QuerySelection"> & { + /** + * @generated from field: string name = 1; + */ + name: string; + /** + * @generated from field: string key = 2; + */ + key: string; + /** + * @generated from field: string interface_revision_id = 3; + */ + interfaceRevisionId: string; + /** + * @generated from field: string member_id = 4; + */ + memberId: string; + /** + * @generated from field: string target_interface_revision_id = 5; + */ + targetInterfaceRevisionId: string; + /** + * @generated from field: repeated camino.QueryCondition conditions = 6; + */ + conditions: QueryCondition[]; + /** + * @generated from field: map arguments = 7; + */ + arguments: { + [key: string]: QueryArgument; + }; + /** + * @generated from field: repeated camino.QuerySelection selection = 8; + */ + selection: QuerySelection[]; +}; +/** + * Describes the message camino.QuerySelection. + * Use `create(QuerySelectionSchema)` to create a new message. + */ +export declare const QuerySelectionSchema: GenMessage; +/** + * @generated from message camino.QueryReadBinding + */ +export type QueryReadBinding = Message<"camino.QueryReadBinding"> & { + /** + * @generated from field: string atom_id = 1; + */ + atomId: string; + /** + * @generated from field: string interface_revision_id = 2; + */ + interfaceRevisionId: string; + /** + * @generated from field: string member_id = 3; + */ + memberId: string; + /** + * @generated from field: string getter_operation_id = 4; + */ + getterOperationId: string; + /** + * @generated from field: string slot_id = 5; + */ + slotId: string; + /** + * @generated from field: string edge_type_id = 6; + */ + edgeTypeId: string; + /** + * @generated from field: string projection_id = 7; + */ + projectionId: string; + /** + * @generated from field: bool rpc = 8; + */ + rpc: boolean; + /** + * @generated from field: string watch_start_operation_id = 9; + */ + watchStartOperationId: string; + /** + * @generated from field: string watch_stop_operation_id = 10; + */ + watchStopOperationId: string; + /** + * @generated from field: string field_name = 11; + */ + fieldName: string; + /** + * @generated from field: string value_type_json = 12; + */ + valueTypeJson: string; + /** + * @generated from field: camino.Cardinality cardinality = 13; + */ + cardinality: Cardinality; + /** + * @generated from field: string key_type = 14; + */ + keyType: string; +}; +/** + * Describes the message camino.QueryReadBinding. + * Use `create(QueryReadBindingSchema)` to create a new message. + */ +export declare const QueryReadBindingSchema: GenMessage; +/** + * @generated from message camino.QueryBudgets + */ +export type QueryBudgets = Message<"camino.QueryBudgets"> & { + /** + * @generated from field: uint32 rows = 1; + */ + rows: number; + /** + * @generated from field: uint32 depth = 2; + */ + depth: number; + /** + * @generated from field: uint32 result_bytes = 3; + */ + resultBytes: number; + /** + * @generated from field: uint32 candidates = 4; + */ + candidates: number; + /** + * @generated from field: uint32 rpc_calls = 5; + */ + rpcCalls: number; + /** + * @generated from field: uint32 concurrency = 6; + */ + concurrency: number; + /** + * @generated from field: uint32 deadline_ms = 7; + */ + deadlineMs: number; +}; +/** + * Describes the message camino.QueryBudgets. + * Use `create(QueryBudgetsSchema)` to create a new message. + */ +export declare const QueryBudgetsSchema: GenMessage; +/** + * @generated from message camino.InstalledQuery + */ +export type InstalledQuery = Message<"camino.InstalledQuery"> & { + /** + * @generated from field: string id = 1; + */ + id: string; + /** + * @generated from field: string definition_digest = 2; + */ + definitionDigest: string; + /** + * @generated from field: string binding_digest = 3; + */ + bindingDigest: string; + /** + * @generated from field: string root_interface_revision_id = 4; + */ + rootInterfaceRevisionId: string; + /** + * @generated from field: repeated camino.QuerySelection selection = 5; + */ + selection: QuerySelection[]; + /** + * @generated from field: repeated camino.QueryReadBinding bindings = 6; + */ + bindings: QueryReadBinding[]; + /** + * @generated from field: camino.QueryBudgets budgets = 7; + */ + budgets?: QueryBudgets | undefined; + /** + * @generated from field: string variables_type_json = 8; + */ + variablesTypeJson: string; + /** + * @generated from field: string output_type_json = 9; + */ + outputTypeJson: string; + /** + * @generated from field: map variable_defaults = 10; + */ + variableDefaults: { + [key: string]: QueryArgument; + }; + /** + * @generated from field: bool watch = 11; + */ + watch: boolean; + /** + * @generated from field: uint32 polling_interval_ms = 12; + */ + pollingIntervalMs: number; + /** + * @generated from field: bool rpc_predicate_or_order = 13; + */ + rpcPredicateOrOrder: boolean; +}; +/** + * Describes the message camino.InstalledQuery. + * Use `create(InstalledQuerySchema)` to create a new message. + */ +export declare const InstalledQuerySchema: GenMessage; /** * @generated from enum camino.Cardinality */ diff --git a/dist/camino/schema_pb.d.ts.map b/dist/camino/schema_pb.d.ts.map index 699a14e..1d421de 100644 --- a/dist/camino/schema_pb.d.ts.map +++ b/dist/camino/schema_pb.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"schema_pb.d.ts","sourceRoot":"","sources":["../../src/camino/schema_pb.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"schema_pb.d.ts","sourceRoot":"","sources":["../../src/camino/schema_pb.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/camino/schema_pb.js b/dist/camino/schema_pb.js index a148251..d5d620d 100644 --- a/dist/camino/schema_pb.js +++ b/dist/camino/schema_pb.js @@ -5,7 +5,7 @@ import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2"; /** * Describes the file camino/schema.proto. */ -export const file_camino_schema = /*@__PURE__*/ fileDesc("ChNjYW1pbm8vc2NoZW1hLnByb3RvEgZjYW1pbm8iNwoOQXRvbURlZmluaXRpb24SDwoHYXRvbV9pZBgBIAEoCRIUCgxkaXNwbGF5X25hbWUYAiABKAkiWQoPQXRvbUNvbmZvcm1hbmNlEg8KB2F0b21faWQYASABKAkSHQoVaW50ZXJmYWNlX3JldmlzaW9uX2lkGAIgASgJEhYKDmNvbmZvcm1hbmNlX2lkGAMgASgJIsIBCg9TdGF0ZUF0dGFjaG1lbnQSDwoHc2xvdF9pZBgBIAEoCRIYChBhdHRhY2hlZF9hdG9tX2lkGAIgASgJEhQKDGRpc3BsYXlfbmFtZRgDIAEoCRIXCg92YWx1ZV90eXBlX2pzb24YBCABKAkSGwoTc3RvcmFnZV9wb2xpY3lfanNvbhgFIAEoCRIaChJkZWZhdWx0X3ZhbHVlX2pzb24YBiABKAkSHAoUb3duZXJfY29uZm9ybWFuY2VfaWQYByABKAkiUAoSRW5kcG9pbnRDb25zdHJhaW50EhEKB2F0b21faWQYASABKAlIABIfChVpbnRlcmZhY2VfcmV2aXNpb25faWQYAiABKAlIAEIGCgRraW5kIvsBCgxFZGdlRW5kcG9pbnQSFQoNcHJvamVjdGlvbl9pZBgBIAEoCRIUCgxkaXNwbGF5X25hbWUYAiABKAkSLgoKY29uc3RyYWludBgDIAEoCzIaLmNhbWluby5FbmRwb2ludENvbnN0cmFpbnQSKAoLY2FyZGluYWxpdHkYBCABKA4yEy5jYW1pbm8uQ2FyZGluYWxpdHkSDwoHb3JkZXJlZBgFIAEoCBIRCglvbl9kZWxldGUYBiABKAkSFAoMcmV0YWluX290aGVyGAcgASgIEhAKCGtleV90eXBlGAggASgJEhgKEHB1YmxpY190cmF2ZXJzYWwYCSABKAgipQEKDkVkZ2VBdHRhY2htZW50EhQKDGVkZ2VfdHlwZV9pZBgBIAEoCRIUCgxkaXNwbGF5X25hbWUYAiABKAkSIwoFZmlyc3QYAyABKAsyFC5jYW1pbm8uRWRnZUVuZHBvaW50EiQKBnNlY29uZBgEIAEoCzIULmNhbWluby5FZGdlRW5kcG9pbnQSHAoUb3duZXJfY29uZm9ybWFuY2VfaWQYBSABKAki7AEKD1BlcnNpc3RlbmNlUGxhbhIUCgx3b3Jrc3BhY2VfaWQYASABKAkSHQoVd29ya3NwYWNlX3JldmlzaW9uX2lkGAIgASgJEiUKBWF0b21zGAMgAygLMhYuY2FtaW5vLkF0b21EZWZpbml0aW9uEi0KDGNvbmZvcm1hbmNlcxgEIAMoCzIXLmNhbWluby5BdG9tQ29uZm9ybWFuY2USJwoGc3RhdGVzGAUgAygLMhcuY2FtaW5vLlN0YXRlQXR0YWNobWVudBIlCgVlZGdlcxgGIAMoCzIWLmNhbWluby5FZGdlQXR0YWNobWVudCpoCgtDYXJkaW5hbGl0eRIbChdDQVJESU5BTElUWV9VTlNQRUNJRklFRBAAEhAKDE9QVElPTkFMX09ORRABEg8KC0VYQUNUTFlfT05FEAISCAoETUFOWRADEg8KC01BTllfVU5JUVVFEARiBnByb3RvMw"); +export const file_camino_schema = /*@__PURE__*/ fileDesc("ChNjYW1pbm8vc2NoZW1hLnByb3RvEgZjYW1pbm8iNwoOQXRvbURlZmluaXRpb24SDwoHYXRvbV9pZBgBIAEoCRIUCgxkaXNwbGF5X25hbWUYAiABKAkiWQoPQXRvbUNvbmZvcm1hbmNlEg8KB2F0b21faWQYASABKAkSHQoVaW50ZXJmYWNlX3JldmlzaW9uX2lkGAIgASgJEhYKDmNvbmZvcm1hbmNlX2lkGAMgASgJIsIBCg9TdGF0ZUF0dGFjaG1lbnQSDwoHc2xvdF9pZBgBIAEoCRIYChBhdHRhY2hlZF9hdG9tX2lkGAIgASgJEhQKDGRpc3BsYXlfbmFtZRgDIAEoCRIXCg92YWx1ZV90eXBlX2pzb24YBCABKAkSGwoTc3RvcmFnZV9wb2xpY3lfanNvbhgFIAEoCRIaChJkZWZhdWx0X3ZhbHVlX2pzb24YBiABKAkSHAoUb3duZXJfY29uZm9ybWFuY2VfaWQYByABKAkiUAoSRW5kcG9pbnRDb25zdHJhaW50EhEKB2F0b21faWQYASABKAlIABIfChVpbnRlcmZhY2VfcmV2aXNpb25faWQYAiABKAlIAEIGCgRraW5kIvsBCgxFZGdlRW5kcG9pbnQSFQoNcHJvamVjdGlvbl9pZBgBIAEoCRIUCgxkaXNwbGF5X25hbWUYAiABKAkSLgoKY29uc3RyYWludBgDIAEoCzIaLmNhbWluby5FbmRwb2ludENvbnN0cmFpbnQSKAoLY2FyZGluYWxpdHkYBCABKA4yEy5jYW1pbm8uQ2FyZGluYWxpdHkSDwoHb3JkZXJlZBgFIAEoCBIRCglvbl9kZWxldGUYBiABKAkSFAoMcmV0YWluX290aGVyGAcgASgIEhAKCGtleV90eXBlGAggASgJEhgKEHB1YmxpY190cmF2ZXJzYWwYCSABKAgipQEKDkVkZ2VBdHRhY2htZW50EhQKDGVkZ2VfdHlwZV9pZBgBIAEoCRIUCgxkaXNwbGF5X25hbWUYAiABKAkSIwoFZmlyc3QYAyABKAsyFC5jYW1pbm8uRWRnZUVuZHBvaW50EiQKBnNlY29uZBgEIAEoCzIULmNhbWluby5FZGdlRW5kcG9pbnQSHAoUb3duZXJfY29uZm9ybWFuY2VfaWQYBSABKAkilQIKD1BlcnNpc3RlbmNlUGxhbhIUCgx3b3Jrc3BhY2VfaWQYASABKAkSHQoVd29ya3NwYWNlX3JldmlzaW9uX2lkGAIgASgJEiUKBWF0b21zGAMgAygLMhYuY2FtaW5vLkF0b21EZWZpbml0aW9uEi0KDGNvbmZvcm1hbmNlcxgEIAMoCzIXLmNhbWluby5BdG9tQ29uZm9ybWFuY2USJwoGc3RhdGVzGAUgAygLMhcuY2FtaW5vLlN0YXRlQXR0YWNobWVudBIlCgVlZGdlcxgGIAMoCzIWLmNhbWluby5FZGdlQXR0YWNobWVudBInCgdxdWVyaWVzGAcgAygLMhYuY2FtaW5vLkluc3RhbGxlZFF1ZXJ5Ip4BCg1RdWVyeUFyZ3VtZW50EhIKCHZhcmlhYmxlGAEgASgJSAASFgoMbGl0ZXJhbF9qc29uGAIgASgJSAASKQoEbGlzdBgDIAEoCzIZLmNhbWluby5RdWVyeUFyZ3VtZW50TGlzdEgAEi0KBm9iamVjdBgEIAEoCzIbLmNhbWluby5RdWVyeUFyZ3VtZW50T2JqZWN0SABCBwoFdmFsdWUiOgoRUXVlcnlBcmd1bWVudExpc3QSJQoGdmFsdWVzGAEgAygLMhUuY2FtaW5vLlF1ZXJ5QXJndW1lbnQilAEKE1F1ZXJ5QXJndW1lbnRPYmplY3QSNwoGZmllbGRzGAEgAygLMicuY2FtaW5vLlF1ZXJ5QXJndW1lbnRPYmplY3QuRmllbGRzRW50cnkaRAoLRmllbGRzRW50cnkSCwoDa2V5GAEgASgJEiQKBXZhbHVlGAIgASgLMhUuY2FtaW5vLlF1ZXJ5QXJndW1lbnQ6AjgBIkcKDlF1ZXJ5Q29uZGl0aW9uEg8KB2luY2x1ZGUYASABKAgSJAoFdmFsdWUYAiABKAsyFS5jYW1pbm8uUXVlcnlBcmd1bWVudCLdAgoOUXVlcnlTZWxlY3Rpb24SDAoEbmFtZRgBIAEoCRILCgNrZXkYAiABKAkSHQoVaW50ZXJmYWNlX3JldmlzaW9uX2lkGAMgASgJEhEKCW1lbWJlcl9pZBgEIAEoCRIkChx0YXJnZXRfaW50ZXJmYWNlX3JldmlzaW9uX2lkGAUgASgJEioKCmNvbmRpdGlvbnMYBiADKAsyFi5jYW1pbm8uUXVlcnlDb25kaXRpb24SOAoJYXJndW1lbnRzGAcgAygLMiUuY2FtaW5vLlF1ZXJ5U2VsZWN0aW9uLkFyZ3VtZW50c0VudHJ5EikKCXNlbGVjdGlvbhgIIAMoCzIWLmNhbWluby5RdWVyeVNlbGVjdGlvbhpHCg5Bcmd1bWVudHNFbnRyeRILCgNrZXkYASABKAkSJAoFdmFsdWUYAiABKAsyFS5jYW1pbm8uUXVlcnlBcmd1bWVudDoCOAEi6QIKEFF1ZXJ5UmVhZEJpbmRpbmcSDwoHYXRvbV9pZBgBIAEoCRIdChVpbnRlcmZhY2VfcmV2aXNpb25faWQYAiABKAkSEQoJbWVtYmVyX2lkGAMgASgJEhsKE2dldHRlcl9vcGVyYXRpb25faWQYBCABKAkSDwoHc2xvdF9pZBgFIAEoCRIUCgxlZGdlX3R5cGVfaWQYBiABKAkSFQoNcHJvamVjdGlvbl9pZBgHIAEoCRILCgNycGMYCCABKAgSIAoYd2F0Y2hfc3RhcnRfb3BlcmF0aW9uX2lkGAkgASgJEh8KF3dhdGNoX3N0b3Bfb3BlcmF0aW9uX2lkGAogASgJEhIKCmZpZWxkX25hbWUYCyABKAkSFwoPdmFsdWVfdHlwZV9qc29uGAwgASgJEigKC2NhcmRpbmFsaXR5GA0gASgOMhMuY2FtaW5vLkNhcmRpbmFsaXR5EhAKCGtleV90eXBlGA4gASgJIpIBCgxRdWVyeUJ1ZGdldHMSDAoEcm93cxgBIAEoDRINCgVkZXB0aBgCIAEoDRIUCgxyZXN1bHRfYnl0ZXMYAyABKA0SEgoKY2FuZGlkYXRlcxgEIAEoDRIRCglycGNfY2FsbHMYBSABKA0SEwoLY29uY3VycmVuY3kYBiABKA0SEwoLZGVhZGxpbmVfbXMYByABKA0ijQQKDkluc3RhbGxlZFF1ZXJ5EgoKAmlkGAEgASgJEhkKEWRlZmluaXRpb25fZGlnZXN0GAIgASgJEhYKDmJpbmRpbmdfZGlnZXN0GAMgASgJEiIKGnJvb3RfaW50ZXJmYWNlX3JldmlzaW9uX2lkGAQgASgJEikKCXNlbGVjdGlvbhgFIAMoCzIWLmNhbWluby5RdWVyeVNlbGVjdGlvbhIqCghiaW5kaW5ncxgGIAMoCzIYLmNhbWluby5RdWVyeVJlYWRCaW5kaW5nEiUKB2J1ZGdldHMYByABKAsyFC5jYW1pbm8uUXVlcnlCdWRnZXRzEhsKE3ZhcmlhYmxlc190eXBlX2pzb24YCCABKAkSGAoQb3V0cHV0X3R5cGVfanNvbhgJIAEoCRJHChF2YXJpYWJsZV9kZWZhdWx0cxgKIAMoCzIsLmNhbWluby5JbnN0YWxsZWRRdWVyeS5WYXJpYWJsZURlZmF1bHRzRW50cnkSDQoFd2F0Y2gYCyABKAgSGwoTcG9sbGluZ19pbnRlcnZhbF9tcxgMIAEoDRIeChZycGNfcHJlZGljYXRlX29yX29yZGVyGA0gASgIGk4KFVZhcmlhYmxlRGVmYXVsdHNFbnRyeRILCgNrZXkYASABKAkSJAoFdmFsdWUYAiABKAsyFS5jYW1pbm8uUXVlcnlBcmd1bWVudDoCOAEqaAoLQ2FyZGluYWxpdHkSGwoXQ0FSRElOQUxJVFlfVU5TUEVDSUZJRUQQABIQCgxPUFRJT05BTF9PTkUQARIPCgtFWEFDVExZX09ORRACEggKBE1BTlkQAxIPCgtNQU5ZX1VOSVFVRRAEYgZwcm90bzM"); /** * Describes the message camino.AtomDefinition. * Use `create(AtomDefinitionSchema)` to create a new message. @@ -41,6 +41,46 @@ export const EdgeAttachmentSchema = /*@__PURE__*/ messageDesc(file_camino_schema * Use `create(PersistencePlanSchema)` to create a new message. */ export const PersistencePlanSchema = /*@__PURE__*/ messageDesc(file_camino_schema, 6); +/** + * Describes the message camino.QueryArgument. + * Use `create(QueryArgumentSchema)` to create a new message. + */ +export const QueryArgumentSchema = /*@__PURE__*/ messageDesc(file_camino_schema, 7); +/** + * Describes the message camino.QueryArgumentList. + * Use `create(QueryArgumentListSchema)` to create a new message. + */ +export const QueryArgumentListSchema = /*@__PURE__*/ messageDesc(file_camino_schema, 8); +/** + * Describes the message camino.QueryArgumentObject. + * Use `create(QueryArgumentObjectSchema)` to create a new message. + */ +export const QueryArgumentObjectSchema = /*@__PURE__*/ messageDesc(file_camino_schema, 9); +/** + * Describes the message camino.QueryCondition. + * Use `create(QueryConditionSchema)` to create a new message. + */ +export const QueryConditionSchema = /*@__PURE__*/ messageDesc(file_camino_schema, 10); +/** + * Describes the message camino.QuerySelection. + * Use `create(QuerySelectionSchema)` to create a new message. + */ +export const QuerySelectionSchema = /*@__PURE__*/ messageDesc(file_camino_schema, 11); +/** + * Describes the message camino.QueryReadBinding. + * Use `create(QueryReadBindingSchema)` to create a new message. + */ +export const QueryReadBindingSchema = /*@__PURE__*/ messageDesc(file_camino_schema, 12); +/** + * Describes the message camino.QueryBudgets. + * Use `create(QueryBudgetsSchema)` to create a new message. + */ +export const QueryBudgetsSchema = /*@__PURE__*/ messageDesc(file_camino_schema, 13); +/** + * Describes the message camino.InstalledQuery. + * Use `create(InstalledQuerySchema)` to create a new message. + */ +export const InstalledQuerySchema = /*@__PURE__*/ messageDesc(file_camino_schema, 14); /** * @generated from enum camino.Cardinality */ diff --git a/dist/index.d.ts b/dist/index.d.ts index 15e2cdb..d14fef8 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -1,10 +1,11 @@ import http from "node:http"; import { type QxObjectRef } from "./references.js"; export * from "./bindings.js"; +export * from "./queries.js"; export { relationshipMap, relationshipList, relationshipSet } from "./relationships.js"; export { createMigrationContext, migrationObjectId, serveMigration, type MigrationContext, type MigrationInput, type MigrationOutput, type MigrationEdge, } from "./migration.js"; import { type Client, type ConnectRouter } from "@connectrpc/connect"; -import { CaminoService, type Value } from "./camino/api_pb.js"; +import { CaminoService, type Value, type QueryResponse } from "./camino/api_pb.js"; import { OrchestratorRuntime } from "./quixos/orch_pb.js"; export type CaminoClient = Client; export type OrchClient = Client; @@ -61,7 +62,12 @@ export type ConstructorPort = { atomId: string; construct(input?: Record): Promise; }; -export type RuntimePort = StatePort | EdgePort | InterfacePort | ConstructorPort; +export type QueryPort = { + queryId: string; + execute(variables: Record, expectedDefinitionDigest?: string): Promise; + watch(variables: Record, signal: AbortSignal, expectedDefinitionDigest?: string): AsyncIterable; +}; +export type RuntimePort = StatePort | EdgePort | InterfacePort | ConstructorPort | QueryPort; export type RuntimeContext = { tryConform(object: QxObjectRef, interfaceRevisionId: string): Promise; /** Cooperative cancellation. Completion is acknowledged only after the handler returns. */ @@ -75,6 +81,7 @@ export type RuntimeContext = { edge(portId: string): EdgePort; interface(portId: string): InterfacePort; constructor(portId: string): ConstructorPort; + query(portId: string): QueryPort; }; export type RuntimeSession = { id: string; diff --git a/dist/index.d.ts.map b/dist/index.d.ts.map index f6c3f40..8f2fd11 100644 --- a/dist/index.d.ts.map +++ b/dist/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/index.js b/dist/index.js index 9cca587..b30006e 100644 --- a/dist/index.js +++ b/dist/index.js @@ -3,6 +3,7 @@ import { readFileSync } from "node:fs"; import { createInvocationRegistry } from "./invocations.js"; import { isObjectReference, referenceFromWire, referenceToWire, assertReferenceFree, } from "./references.js"; export * from "./bindings.js"; +export * from "./queries.js"; export { relationshipMap, relationshipList, relationshipSet } from "./relationships.js"; import { AsyncLocalStorage } from "node:async_hooks"; import { createHmac, randomBytes, randomUUID, timingSafeEqual } from "node:crypto"; @@ -155,6 +156,15 @@ export const createRuntimeContext = (camino, orch, request) => { const ports = new Map(); for (const dependency of request.dependencies) { switch (dependency.binding.case) { + case "queryId": { + const queryId = dependency.binding.value, objectId = dependency.objectId || request.objectId; + ports.set(dependency.portId, { + queryId, + execute: (variables, expectedDefinitionDigest) => orch.executeQuery({ queryId, objectId, variables, expectedDefinitionDigest }), + watch: (variables, signal, expectedDefinitionDigest) => orch.watchQuery({ queryId, objectId, variables, expectedDefinitionDigest }, { signal }), + }); + break; + } case "stateSlotId": { const slotId = dependency.binding.value; const dependencyObjectId = dependency.objectId || request.objectId; @@ -298,6 +308,7 @@ export const createRuntimeContext = (camino, orch, request) => { edge: (portId) => requirePort(portId, "edgeTypeId"), interface: (portId) => requirePort(portId, "interfaceRevisionId"), constructor: (portId) => requirePort(portId, "atomId"), + query: (portId) => requirePort(portId, "queryId"), }; }; export const derived = (get) => ({ kind: "derived", get }); diff --git a/dist/queries.d.ts b/dist/queries.d.ts new file mode 100644 index 0000000..85789f0 --- /dev/null +++ b/dist/queries.d.ts @@ -0,0 +1,38 @@ +import { type QxValueType } from "./bindings.js"; +import type { QueryResponse } from "./camino/api_pb.js"; +import type { QxObjectRef } from "./references.js"; +export type QxQueryPartial = T extends QxObjectRef ? T : T extends readonly (infer Item)[] ? QxQueryPartial[] : T extends object ? { + [Key in keyof T]?: QxQueryPartial; +} : T; +export type QxQuerySnapshot = { + runId: string; + sequence: bigint; + dataVersion: string; + bindingDigest: string; + consistency: string; + fields: { + path: readonly (string | number)[]; + status: "pending" | "error"; + error?: string; + }[]; +} & ({ + status: "ready"; + data: T; +} | { + status: "partial"; + data: QxQueryPartial; +}); +declare const queryTypes: unique symbol; +/** Generated shape evidence, not permission to run a query. */ +export interface QxQueryDescriptor { + readonly id: string; + readonly definitionDigest: string; + readonly rootInterfaceRevisionId: Root; + readonly variables: QxValueType; + readonly output: QxValueType; + readonly watch: boolean; + readonly [queryTypes]?: (variables: Variables, result: Result) => [Variables, Result]; +} +export declare function decodeQuerySnapshot(response: QueryResponse, output: QxValueType, runId: string, sequence: bigint): QxQuerySnapshot; +export {}; +//# sourceMappingURL=queries.d.ts.map \ No newline at end of file diff --git a/dist/queries.d.ts.map b/dist/queries.d.ts.map new file mode 100644 index 0000000..f3ea264 --- /dev/null +++ b/dist/queries.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../src/queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,GACjD,CAAC,GACD,CAAC,SAAS,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,GAC/B,cAAc,CAAC,IAAI,CAAC,EAAE,GACtB,CAAC,SAAS,MAAM,GACd;KAAG,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;CAAE,GAC7C,CAAC,CAAC;AACV,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE;QAAE,IAAI,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;QAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC/F,GAAG,CAAC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC,CAAC;AACpF,OAAO,CAAC,MAAM,UAAU,EAAE,OAAO,MAAM,CAAC;AACxC,+DAA+D;AAC/D,MAAM,WAAW,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,SAAS,MAAM,GAAG,MAAM;IAChF,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,uBAAuB,EAAE,IAAI,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;CACvF;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,eAAe,CAAC,CAAC,CAAC,CA6CpB"} \ No newline at end of file diff --git a/dist/queries.js b/dist/queries.js new file mode 100644 index 0000000..6f91e92 --- /dev/null +++ b/dist/queries.js @@ -0,0 +1,57 @@ +import { decodeQxValue } from "./bindings.js"; +export function decodeQuerySnapshot(response, output, runId, sequence) { + if (response.preparationToken || response.residualWindows.length) + throw new Error("QUERY_RESULT_UNFINISHED: private preparation is not a query result"); + const fields = [ + ...response.pending.map((field) => ({ path: field.path, status: "pending" })), + ...response.errors.map((field) => ({ path: field.path, status: "error", error: field.error })), + ].map((field) => ({ + ...field, + path: field.path.map((part) => { + if (part.part.case !== "field" && part.part.case !== "index") + throw new Error("QUERY_PATCH_INVALID"); + return part.part.value; + }), + })); + // Pending/error values are absent, not successful nulls of a scalar type. + const shape = structuredClone(output); + for (const field of fields) { + let cursor = shape; + for (const [index, part] of field.path.entries()) { + while (cursor.kind === "optional") + cursor = cursor.value; + const last = index === field.path.length - 1; + if (typeof part === "string" && cursor.kind === "record" && cursor.fields[part]) { + if (last) + cursor.fields[part] = { kind: "optional", value: cursor.fields[part] }; + else + cursor = cursor.fields[part]; + } + else if (typeof part === "number" && cursor.kind === "list") + cursor = cursor.value; + else + throw new Error("QUERY_PATCH_INVALID"); + } + } + const data = decodeQxValue(shape, response.value, {}); + for (const field of fields) { + let cursor = data; + for (const [index, part] of field.path.entries()) { + if (!cursor || typeof cursor !== "object") + throw new Error("QUERY_PATCH_INVALID"); + if (index === field.path.length - 1) + delete cursor[part]; + else + cursor = cursor[part]; + } + } + return { + runId, + sequence, + dataVersion: response.dataVersion, + bindingDigest: response.bindingDigest, + consistency: response.consistency, + fields, + ...(fields.length ? { status: "partial", data } : { status: "ready", data }), + }; +} diff --git a/dist/quixos/orch_pb.d.ts b/dist/quixos/orch_pb.d.ts index c470422..3d5dbb1 100644 --- a/dist/quixos/orch_pb.d.ts +++ b/dist/quixos/orch_pb.d.ts @@ -1,5 +1,6 @@ import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2"; -import type { CaminoObject, CrdtValue, Value } from "../camino/api_pb.js"; +import type { CaminoObject, CrdtValue, QueryPathPart, QueryRequestSchema, QueryResponse, QueryResponseSchema, Value } from "../camino/api_pb.js"; +import type { InstalledQuery } from "../camino/schema_pb.js"; import type { PackageDescriptor } from "./package_pb.js"; import type { CapabilityRef, ConformanceWitness, PackageExportRef } from "./refs_pb.js"; import type { DerivedDependency } from "./runtime_pb.js"; @@ -8,6 +9,44 @@ import type { Message } from "@bufbuild/protobuf"; * Describes the file quixos/orch.proto. */ export declare const file_quixos_orch: GenFile; +/** + * @generated from message quixos.orch.QueryEvent + */ +export type QueryEvent = Message<"quixos.orch.QueryEvent"> & { + /** + * @generated from field: string run_id = 1; + */ + runId: string; + /** + * @generated from field: uint64 sequence = 2; + */ + sequence: bigint; + /** + * @generated from field: string kind = 3; + */ + kind: string; + /** + * @generated from field: camino.QueryResponse snapshot = 4; + */ + snapshot?: QueryResponse | undefined; + /** + * @generated from field: repeated camino.QueryPathPart path = 5; + */ + path: QueryPathPart[]; + /** + * @generated from field: camino.Value value = 6; + */ + value?: Value | undefined; + /** + * @generated from field: string error = 7; + */ + error: string; +}; +/** + * Describes the message quixos.orch.QueryEvent. + * Use `create(QueryEventSchema)` to create a new message. + */ +export declare const QueryEventSchema: GenMessage; /** * Exact closed interface lookup; no policy selection or competing conformances. * @@ -351,6 +390,10 @@ export type GetWorkspaceRequest = Message<"quixos.orch.GetWorkspaceRequest"> & { * @generated from field: bool include_interface_contracts = 1; */ includeInterfaceContracts: boolean; + /** + * @generated from field: bool include_query_contracts = 2; + */ + includeQueryContracts: boolean; }; /** * Describes the message quixos.orch.GetWorkspaceRequest. @@ -398,12 +441,62 @@ export type GetWorkspaceResponse = Message<"quixos.orch.GetWorkspaceResponse"> & * @generated from field: repeated quixos.orch.ClassCapability class_capabilities = 8; */ classCapabilities: ClassCapability[]; + /** + * @generated from field: repeated quixos.orch.QueryDescription queries = 9; + */ + queries: QueryDescription[]; + /** + * @generated from field: uint32 active_query_executions = 10; + */ + activeQueryExecutions: number; }; /** * Describes the message quixos.orch.GetWorkspaceResponse. * Use `create(GetWorkspaceResponseSchema)` to create a new message. */ export declare const GetWorkspaceResponseSchema: GenMessage; +/** + * @generated from message quixos.orch.QueryDescription + */ +export type QueryDescription = Message<"quixos.orch.QueryDescription"> & { + /** + * @generated from field: string id = 1; + */ + id: string; + /** + * @generated from field: string name = 2; + */ + name: string; + /** + * @generated from field: string package_revision_id = 3; + */ + packageRevisionId: string; + /** + * @generated from field: string document = 4; + */ + document: string; + /** + * @generated from field: string schema = 5; + */ + schema: string; + /** + * @generated from field: repeated string source_files = 6; + */ + sourceFiles: string[]; + /** + * @generated from field: string effects_json = 7; + */ + effectsJson: string; + /** + * @generated from field: camino.InstalledQuery plan = 8; + */ + plan?: InstalledQuery | undefined; +}; +/** + * Describes the message quixos.orch.QueryDescription. + * Use `create(QueryDescriptionSchema)` to create a new message. + */ +export declare const QueryDescriptionSchema: GenMessage; /** * @generated from message quixos.orch.ClassCapability */ @@ -695,6 +788,22 @@ export declare const PackageRuntimeStatusSchema: GenMessage & { */ value: string; case: "constructorAtomId"; + } | { + /** + * @generated from field: string query_id = 7; + */ + value: string; + case: "queryId"; } | { case: undefined; value?: undefined; diff --git a/dist/quixos/refs_pb.d.ts.map b/dist/quixos/refs_pb.d.ts.map index ebbc5aa..fe39a86 100644 --- a/dist/quixos/refs_pb.d.ts.map +++ b/dist/quixos/refs_pb.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"refs_pb.d.ts","sourceRoot":"","sources":["../../src/quixos/refs_pb.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAExE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,OACi0B,CAAC;AAEj2B;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,sBAAsB,CAAC,GAAG;IAC5D;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,WAAW,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;CAC9C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,UAAU,CAAC,aAAa,CACxB,CAAC;AAEnC;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,2BAA2B,CAAC,GAAG;IACtE;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,UAAU,CAAC,kBAAkB,CAClC,CAAC;AAEnC;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,yBAAyB,CAAC,GAAG;IAClE;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,UAAU,CAAC,gBAAgB,CAC9B,CAAC;AAEnC;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,2BAA2B,CAAC,GAAG;IACtE;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,EAAE;QACP;;WAEG;QACH,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,aAAa,CAAC;KACrB,GAAG;QACF;;WAEG;QACH,KAAK,EAAE,cAAc,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;KACd,GAAG;QACF;;WAEG;QACH,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,qBAAqB,CAAC;KAC7B,GAAG;QACF;;WAEG;QACH,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,mBAAmB,CAAC;KAC3B,GAAG;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,KAAK,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC;IAE3C;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,UAAU,CAAC,kBAAkB,CAClC,CAAC;AAEnC;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,uBAAuB,CAAC,GAAG;IAC9D;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,UAAU,CAAC,cAAc,CAC1B,CAAC"} \ No newline at end of file +{"version":3,"file":"refs_pb.d.ts","sourceRoot":"","sources":["../../src/quixos/refs_pb.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAExE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,OAC21B,CAAC;AAE33B;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,sBAAsB,CAAC,GAAG;IAC5D;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,WAAW,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;CAC9C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,UAAU,CAAC,aAAa,CACxB,CAAC;AAEnC;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,2BAA2B,CAAC,GAAG;IACtE;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,UAAU,CAAC,kBAAkB,CAClC,CAAC;AAEnC;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,yBAAyB,CAAC,GAAG;IAClE;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,UAAU,CAAC,gBAAgB,CAC9B,CAAC;AAEnC;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,2BAA2B,CAAC,GAAG;IACtE;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,EAAE;QACP;;WAEG;QACH,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,aAAa,CAAC;KACrB,GAAG;QACF;;WAEG;QACH,KAAK,EAAE,cAAc,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;KACd,GAAG;QACF;;WAEG;QACH,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,qBAAqB,CAAC;KAC7B,GAAG;QACF;;WAEG;QACH,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,mBAAmB,CAAC;KAC3B,GAAG;QACF;;WAEG;QACH,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,SAAS,CAAC;KACjB,GAAG;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,KAAK,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC;IAE3C;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,UAAU,CAAC,kBAAkB,CAClC,CAAC;AAEnC;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,uBAAuB,CAAC,GAAG;IAC9D;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,UAAU,CAAC,cAAc,CAC1B,CAAC"} \ No newline at end of file diff --git a/dist/quixos/refs_pb.js b/dist/quixos/refs_pb.js index 49c086b..1adbb8a 100644 --- a/dist/quixos/refs_pb.js +++ b/dist/quixos/refs_pb.js @@ -5,7 +5,7 @@ import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2"; /** * Describes the file quixos/refs.proto. */ -export const file_quixos_refs = /*@__PURE__*/ fileDesc("ChFxdWl4b3MvcmVmcy5wcm90bxIGcXVpeG9zInUKDUNhcGFiaWxpdHlSZWYSHQoVaW50ZXJmYWNlX3JldmlzaW9uX2lkGAEgASgJEhQKDG9wZXJhdGlvbl9pZBgCIAEoCRIvCgtjb25mb3JtYW5jZRgDIAEoCzIaLnF1aXhvcy5Db25mb3JtYW5jZVdpdG5lc3MilgEKEkNvbmZvcm1hbmNlV2l0bmVzcxIRCglvYmplY3RfaWQYASABKAkSHQoVaW50ZXJmYWNlX3JldmlzaW9uX2lkGAIgASgJEhYKDmNvbmZvcm1hbmNlX2lkGAMgASgJEh0KFXdvcmtzcGFjZV9yZXZpc2lvbl9pZBgEIAEoCRIXCg93b3Jrc3BhY2VfZXBvY2gYBSABKAkiQgoQUGFja2FnZUV4cG9ydFJlZhIbChNwYWNrYWdlX3JldmlzaW9uX2lkGAEgASgJEhEKCWV4cG9ydF9pZBgCIAEoCSLEAQoSSW5qZWN0ZWREZXBlbmRlbmN5Eg8KB3BvcnRfaWQYASABKAkSFwoNc3RhdGVfc2xvdF9pZBgCIAEoCUgAEiYKBGVkZ2UYAyABKAsyFi5xdWl4b3MuRWRnZURlcGVuZGVuY3lIABIfChVpbnRlcmZhY2VfcmV2aXNpb25faWQYBCABKAlIABIdChNjb25zdHJ1Y3Rvcl9hdG9tX2lkGAUgASgJSAASEQoJb2JqZWN0X2lkGAYgASgJQgkKB2JpbmRpbmciPQoORWRnZURlcGVuZGVuY3kSFAoMZWRnZV90eXBlX2lkGAEgASgJEhUKDXByb2plY3Rpb25faWQYAiABKAliBnByb3RvMw"); +export const file_quixos_refs = /*@__PURE__*/ fileDesc("ChFxdWl4b3MvcmVmcy5wcm90bxIGcXVpeG9zInUKDUNhcGFiaWxpdHlSZWYSHQoVaW50ZXJmYWNlX3JldmlzaW9uX2lkGAEgASgJEhQKDG9wZXJhdGlvbl9pZBgCIAEoCRIvCgtjb25mb3JtYW5jZRgDIAEoCzIaLnF1aXhvcy5Db25mb3JtYW5jZVdpdG5lc3MilgEKEkNvbmZvcm1hbmNlV2l0bmVzcxIRCglvYmplY3RfaWQYASABKAkSHQoVaW50ZXJmYWNlX3JldmlzaW9uX2lkGAIgASgJEhYKDmNvbmZvcm1hbmNlX2lkGAMgASgJEh0KFXdvcmtzcGFjZV9yZXZpc2lvbl9pZBgEIAEoCRIXCg93b3Jrc3BhY2VfZXBvY2gYBSABKAkiQgoQUGFja2FnZUV4cG9ydFJlZhIbChNwYWNrYWdlX3JldmlzaW9uX2lkGAEgASgJEhEKCWV4cG9ydF9pZBgCIAEoCSLYAQoSSW5qZWN0ZWREZXBlbmRlbmN5Eg8KB3BvcnRfaWQYASABKAkSFwoNc3RhdGVfc2xvdF9pZBgCIAEoCUgAEiYKBGVkZ2UYAyABKAsyFi5xdWl4b3MuRWRnZURlcGVuZGVuY3lIABIfChVpbnRlcmZhY2VfcmV2aXNpb25faWQYBCABKAlIABIdChNjb25zdHJ1Y3Rvcl9hdG9tX2lkGAUgASgJSAASEgoIcXVlcnlfaWQYByABKAlIABIRCglvYmplY3RfaWQYBiABKAlCCQoHYmluZGluZyI9Cg5FZGdlRGVwZW5kZW5jeRIUCgxlZGdlX3R5cGVfaWQYASABKAkSFQoNcHJvamVjdGlvbl9pZBgCIAEoCWIGcHJvdG8z"); /** * Describes the message quixos.CapabilityRef. * Use `create(CapabilityRefSchema)` to create a new message. diff --git a/src/bindings.ts b/src/bindings.ts index 00c2690..4a6bf36 100644 --- a/src/bindings.ts +++ b/src/bindings.ts @@ -12,6 +12,7 @@ import { export type { QxObjectRef } from "./references.js"; import { assertReferenceFree, referenceToWire } from "./references.js"; +import { decodeQuerySnapshot } from "./queries.js"; declare const watchBrand: unique symbol; export type QxWatchHandle = string & { readonly [watchBrand]: true }; export type MessageBinding = { encode(value: T): Value; decode(value: Value): T }; @@ -50,6 +51,7 @@ export type QxValueType = | { kind: "optional" | "list"; value: QxValueType }; export type QxOperationSpec = { id: string; inputType: QxValueType; outputType: QxValueType }; export type QxPortSpec = + | { kind: "query"; id: string; definitionDigest: string; variables: QxValueType; output: QxValueType; watch: boolean } | { kind: "state"; id: string; valueType: QxValueType; primitives: string[] } | { kind: "edge"; id: string; primitives: string[] } | { kind: "interface"; id: string; interfaceRevisionId: string; operations: Record } @@ -244,6 +246,38 @@ export const bindQxHandler = ( bindInterfaceView(target, defineQxInterfaceContract(port.interfaceRevisionId, port.operations), messages), ]; } + case "query": { + const query = raw.query(port.id); + const variablesToWire = (variables: unknown) => { + const value = encodeQxValue(port.variables, variables, messages); + if (value.kind.case !== "objectValue") throw new Error("QUERY_VARIABLE_INVALID"); + return value.kind.value.fields; + }; + return [ + name, + { + async execute(variables: unknown) { + const response = await query.execute(variablesToWire(variables), port.definitionDigest); + if (response.pending.length || response.errors.length) throw new Error("QUERY_INCOMPLETE"); + return decodeQxValue(port.output, response.value, messages); + }, + ...(port.watch + ? { + async *watch(variables: unknown, signal: AbortSignal) { + for await (const event of query.watch( + variablesToWire(variables), + signal, + port.definitionDigest, + )) { + if (!event.snapshot) throw new Error("QUERY_SNAPSHOT_MISSING"); + yield decodeQuerySnapshot(event.snapshot, port.output, event.runId, event.sequence); + } + }, + } + : {}), + }, + ]; + } case "constructor": return [ name, diff --git a/src/camino/api_pb.ts b/src/camino/api_pb.ts index 34cb86a..a8153f8 100644 --- a/src/camino/api_pb.ts +++ b/src/camino/api_pb.ts @@ -4,7 +4,7 @@ import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2"; import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2"; -import type { PersistencePlan } from "./schema_pb.js"; +import type { PersistencePlan, QuerySelection } from "./schema_pb.js"; import { file_camino_schema } from "./schema_pb.js"; import type { Message } from "@bufbuild/protobuf"; @@ -12,7 +12,7 @@ import type { Message } from "@bufbuild/protobuf"; * Describes the file camino/api.proto. */ export const file_camino_api: GenFile = /*@__PURE__*/ - fileDesc("ChBjYW1pbm8vYXBpLnByb3RvEgZjYW1pbm8iCwoJTnVsbFZhbHVlInwKC09iamVjdFZhbHVlEi8KBmZpZWxkcxgBIAMoCzIfLmNhbWluby5PYmplY3RWYWx1ZS5GaWVsZHNFbnRyeRo8CgtGaWVsZHNFbnRyeRILCgNrZXkYASABKAkSHAoFdmFsdWUYAiABKAsyDS5jYW1pbm8uVmFsdWU6AjgBIioKCUxpc3RWYWx1ZRIdCgZ2YWx1ZXMYASADKAsyDS5jYW1pbm8uVmFsdWUiHQoIUmVmVmFsdWUSEQoJb2JqZWN0X2lkGAEgASgJIjwKCUNyZHRWYWx1ZRIMCgR0eXBlGAEgASgJEhAKCGVuY29kaW5nGAIgASgJEg8KB3BheWxvYWQYAyABKAwiqAEKEFN0YXRlVmFsdWVTb3VyY2USEQoJb2JqZWN0X2lkGAEgASgJEg8KB3Nsb3RfaWQYAiABKAkSFwoPdmFsdWVfdHlwZV9qc29uGAMgASgJEhsKE3N0b3JhZ2VfcG9saWN5X2pzb24YBCABKAkSEAoIcmV2aXNpb24YBSABKAQSKAoNY3JkdF9zbmFwc2hvdBgGIAEoCzIRLmNhbWluby5DcmR0VmFsdWUiNgoLVmFsdWVTb3VyY2USJwoFc3RhdGUYASABKAsyGC5jYW1pbm8uU3RhdGVWYWx1ZVNvdXJjZSL5AgoFVmFsdWUSJwoKbnVsbF92YWx1ZRgBIAEoCzIRLmNhbWluby5OdWxsVmFsdWVIABIUCgpib29sX3ZhbHVlGAIgASgISAASFgoMbnVtYmVyX3ZhbHVlGAMgASgBSAASFgoMc3RyaW5nX3ZhbHVlGAQgASgJSAASFwoNaW50ZWdlcl92YWx1ZRgFIAEoCUgAEhUKC2J5dGVzX3ZhbHVlGAYgASgMSAASKwoMb2JqZWN0X3ZhbHVlGAcgASgLMhMuY2FtaW5vLk9iamVjdFZhbHVlSAASJwoKbGlzdF92YWx1ZRgIIAEoCzIRLmNhbWluby5MaXN0VmFsdWVIABIlCglyZWZfdmFsdWUYCSABKAsyEC5jYW1pbm8uUmVmVmFsdWVIABInCgpjcmR0X3ZhbHVlGAogASgLMhEuY2FtaW5vLkNyZHRWYWx1ZUgAEiMKBnNvdXJjZRgLIAEoCzITLmNhbWluby5WYWx1ZVNvdXJjZUIGCgRraW5kIkYKHUluc3RhbGxQZXJzaXN0ZW5jZVBsYW5SZXF1ZXN0EiUKBHBsYW4YASABKAsyFy5jYW1pbm8uUGVyc2lzdGVuY2VQbGFuIkcKHkluc3RhbGxQZXJzaXN0ZW5jZVBsYW5SZXNwb25zZRIlCgRwbGFuGAEgASgLMhcuY2FtaW5vLlBlcnNpc3RlbmNlUGxhbiIbChlHZXRQZXJzaXN0ZW5jZVBsYW5SZXF1ZXN0IkMKGkdldFBlcnNpc3RlbmNlUGxhblJlc3BvbnNlEiUKBHBsYW4YASABKAsyFy5jYW1pbm8uUGVyc2lzdGVuY2VQbGFuIrABChNDcmVhdGVPYmplY3RSZXF1ZXN0Eg8KB2F0b21faWQYASABKAkSRAoNaW5pdGlhbF9zdGF0ZRgCIAMoCzItLmNhbWluby5DcmVhdGVPYmplY3RSZXF1ZXN0LkluaXRpYWxTdGF0ZUVudHJ5GkIKEUluaXRpYWxTdGF0ZUVudHJ5EgsKA2tleRgBIAEoCRIcCgV2YWx1ZRgCIAEoCzINLmNhbWluby5WYWx1ZToCOAEiPAoUQ3JlYXRlT2JqZWN0UmVzcG9uc2USJAoGb2JqZWN0GAEgASgLMhQuY2FtaW5vLkNhbWlub09iamVjdCIlChBHZXRPYmplY3RSZXF1ZXN0EhEKCW9iamVjdF9pZBgBIAEoCSI5ChFHZXRPYmplY3RSZXNwb25zZRIkCgZvYmplY3QYASABKAsyFC5jYW1pbm8uQ2FtaW5vT2JqZWN0IiUKEkxpc3RPYmplY3RzUmVxdWVzdBIPCgdhdG9tX2lkGAEgASgJIjwKE0xpc3RPYmplY3RzUmVzcG9uc2USJQoHb2JqZWN0cxgBIAMoCzIULmNhbWluby5DYW1pbm9PYmplY3QiNgoQUmVhZFN0YXRlUmVxdWVzdBIRCglvYmplY3RfaWQYASABKAkSDwoHc2xvdF9pZBgCIAEoCSIxChFSZWFkU3RhdGVSZXNwb25zZRIcCgV2YWx1ZRgBIAEoCzINLmNhbWluby5WYWx1ZSJxChFXcml0ZVN0YXRlUmVxdWVzdBIRCglvYmplY3RfaWQYASABKAkSDwoHc2xvdF9pZBgCIAEoCRIcCgV2YWx1ZRgDIAEoCzINLmNhbWluby5WYWx1ZRIaChJjbGllbnRfbXV0YXRpb25faWQYBCABKAkiWAoSV3JpdGVTdGF0ZVJlc3BvbnNlEhwKBXZhbHVlGAEgASgLMg0uY2FtaW5vLlZhbHVlEiQKBm9iamVjdBgCIAEoCzIULmNhbWluby5DYW1pbm9PYmplY3QiwAEKEkNvbm5lY3RFZGdlUmVxdWVzdBIUCgxlZGdlX3R5cGVfaWQYASABKAkSFQoNcHJvamVjdGlvbl9pZBgCIAEoCRIRCglvYmplY3RfaWQYAyABKAkSGAoQdGFyZ2V0X29iamVjdF9pZBgEIAEoCRIUCgdvcmRpbmFsGAUgASgFSACIAQESGwoOdGFyZ2V0X29yZGluYWwYBiABKAVIAYgBAUIKCghfb3JkaW5hbEIRCg9fdGFyZ2V0X29yZGluYWwiNwoTQ29ubmVjdEVkZ2VSZXNwb25zZRIgCgRlZGdlGAEgASgLMhIuY2FtaW5vLkNhbWlub0VkZ2UiVAoSUmVzb2x2ZUVkZ2VSZXF1ZXN0EhEKCW9iamVjdF9pZBgBIAEoCRIUCgxlZGdlX3R5cGVfaWQYAiABKAkSFQoNcHJvamVjdGlvbl9pZBgDIAEoCSI4ChNSZXNvbHZlRWRnZVJlc3BvbnNlEiEKBWVkZ2VzGAEgAygLMhIuY2FtaW5vLkNhbWlub0VkZ2UiKAoVRGlzY29ubmVjdEVkZ2VSZXF1ZXN0Eg8KB2VkZ2VfaWQYASABKAkiKQoWRGlzY29ubmVjdEVkZ2VSZXNwb25zZRIPCgdlZGdlX2lkGAEgASgJIlgKD0NvbGxlY3Rpb25FbnRyeRIPCgdlZGdlX2lkGAEgASgJEhgKEHRhcmdldF9vYmplY3RfaWQYAiABKAkSGgoDa2V5GAMgASgLMg0uY2FtaW5vLlZhbHVlIlQKFlJlYWRDb2xsZWN0aW9uUmVzcG9uc2USEAoIcmV2aXNpb24YASABKAQSKAoHZW50cmllcxgCIAMoCzIXLmNhbWluby5Db2xsZWN0aW9uRW50cnkinwEKGFJlcGxhY2VDb2xsZWN0aW9uUmVxdWVzdBIRCglvYmplY3RfaWQYASABKAkSFAoMZWRnZV90eXBlX2lkGAIgASgJEhUKDXByb2plY3Rpb25faWQYAyABKAkSGQoRZXhwZWN0ZWRfcmV2aXNpb24YBCABKAQSKAoHZW50cmllcxgFIAMoCzIXLmNhbWluby5Db2xsZWN0aW9uRW50cnkiIwoOTGlzdE9wc1JlcXVlc3QSEQoJb2JqZWN0X2lkGAEgASgJIjAKD0xpc3RPcHNSZXNwb25zZRIdCgNvcHMYASADKAsyEC5jYW1pbm8uQ2FtaW5vT3AibgoSV2F0Y2hPYmplY3RSZXF1ZXN0EhEKCW9iamVjdF9pZBgBIAEoCRITCgthZnRlcl9vcF9pZBgCIAEoCRIYChBpbmNsdWRlX3NuYXBzaG90GAMgASgIEhYKDmF0dGFjaG1lbnRfaWRzGAQgAygJImsKEFdhdGNoT2JqZWN0RXZlbnQSEQoJb2JqZWN0X2lkGAEgASgJEiYKCHNuYXBzaG90GAIgASgLMhQuY2FtaW5vLkNhbWlub09iamVjdBIcCgJvcBgDIAEoCzIQLmNhbWluby5DYW1pbm9PcCLZAgoMQ2FtaW5vT2JqZWN0EgoKAmlkGAEgASgJEg8KB2F0b21faWQYAiABKAkSHQoVd29ya3NwYWNlX3JldmlzaW9uX2lkGAMgASgJEhIKCmNyZWF0ZWRfYXQYBCABKAkSEgoKdXBkYXRlZF9hdBgFIAEoCRIuCgVzdGF0ZRgGIAMoCzIfLmNhbWluby5DYW1pbm9PYmplY3QuU3RhdGVFbnRyeRJBCg9zdGF0ZV9yZXZpc2lvbnMYByADKAsyKC5jYW1pbm8uQ2FtaW5vT2JqZWN0LlN0YXRlUmV2aXNpb25zRW50cnkaOwoKU3RhdGVFbnRyeRILCgNrZXkYASABKAkSHAoFdmFsdWUYAiABKAsyDS5jYW1pbm8uVmFsdWU6AjgBGjUKE1N0YXRlUmV2aXNpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgEOgI4ASK/AgoKQ2FtaW5vRWRnZRIKCgJpZBgBIAEoCRIUCgxlZGdlX3R5cGVfaWQYAiABKAkSFwoPZmlyc3Rfb2JqZWN0X2lkGAMgASgJEhgKEHNlY29uZF9vYmplY3RfaWQYBCABKAkSGwoTZmlyc3RfcHJvamVjdGlvbl9pZBgFIAEoCRIcChRzZWNvbmRfcHJvamVjdGlvbl9pZBgGIAEoCRIaCg1maXJzdF9vcmRpbmFsGAcgASgFSACIAQESGwoOc2Vjb25kX29yZGluYWwYCCABKAVIAYgBARISCgpjcmVhdGVkX2F0GAkgASgJEhYKDmZpcnN0X2tleV9qc29uGAogASgJEhcKD3NlY29uZF9rZXlfanNvbhgLIAEoCUIQCg5fZmlyc3Rfb3JkaW5hbEIRCg9fc2Vjb25kX29yZGluYWwimQEKCENhbWlub09wEgoKAmlkGAEgASgJEhEKCW9iamVjdF9pZBgCIAEoCRIPCgdvcF9raW5kGAMgASgJEh4KB3BheWxvYWQYBCABKAsyDS5jYW1pbm8uVmFsdWUSDQoFYWN0b3IYBSABKAkSEgoKY3JlYXRlZF9hdBgGIAEoCRIaChJjbGllbnRfbXV0YXRpb25faWQYByABKAkyuggKDUNhbWlub1NlcnZpY2USZwoWSW5zdGFsbFBlcnNpc3RlbmNlUGxhbhIlLmNhbWluby5JbnN0YWxsUGVyc2lzdGVuY2VQbGFuUmVxdWVzdBomLmNhbWluby5JbnN0YWxsUGVyc2lzdGVuY2VQbGFuUmVzcG9uc2USWwoSR2V0UGVyc2lzdGVuY2VQbGFuEiEuY2FtaW5vLkdldFBlcnNpc3RlbmNlUGxhblJlcXVlc3QaIi5jYW1pbm8uR2V0UGVyc2lzdGVuY2VQbGFuUmVzcG9uc2USSQoMQ3JlYXRlT2JqZWN0EhsuY2FtaW5vLkNyZWF0ZU9iamVjdFJlcXVlc3QaHC5jYW1pbm8uQ3JlYXRlT2JqZWN0UmVzcG9uc2USQAoJR2V0T2JqZWN0EhguY2FtaW5vLkdldE9iamVjdFJlcXVlc3QaGS5jYW1pbm8uR2V0T2JqZWN0UmVzcG9uc2USRgoLTGlzdE9iamVjdHMSGi5jYW1pbm8uTGlzdE9iamVjdHNSZXF1ZXN0GhsuY2FtaW5vLkxpc3RPYmplY3RzUmVzcG9uc2USQAoJUmVhZFN0YXRlEhguY2FtaW5vLlJlYWRTdGF0ZVJlcXVlc3QaGS5jYW1pbm8uUmVhZFN0YXRlUmVzcG9uc2USQwoKV3JpdGVTdGF0ZRIZLmNhbWluby5Xcml0ZVN0YXRlUmVxdWVzdBoaLmNhbWluby5Xcml0ZVN0YXRlUmVzcG9uc2USRgoLQ29ubmVjdEVkZ2USGi5jYW1pbm8uQ29ubmVjdEVkZ2VSZXF1ZXN0GhsuY2FtaW5vLkNvbm5lY3RFZGdlUmVzcG9uc2USRgoLUmVzb2x2ZUVkZ2USGi5jYW1pbm8uUmVzb2x2ZUVkZ2VSZXF1ZXN0GhsuY2FtaW5vLlJlc29sdmVFZGdlUmVzcG9uc2USTwoORGlzY29ubmVjdEVkZ2USHS5jYW1pbm8uRGlzY29ubmVjdEVkZ2VSZXF1ZXN0Gh4uY2FtaW5vLkRpc2Nvbm5lY3RFZGdlUmVzcG9uc2USTAoOUmVhZENvbGxlY3Rpb24SGi5jYW1pbm8uUmVzb2x2ZUVkZ2VSZXF1ZXN0Gh4uY2FtaW5vLlJlYWRDb2xsZWN0aW9uUmVzcG9uc2USVQoRUmVwbGFjZUNvbGxlY3Rpb24SIC5jYW1pbm8uUmVwbGFjZUNvbGxlY3Rpb25SZXF1ZXN0Gh4uY2FtaW5vLlJlYWRDb2xsZWN0aW9uUmVzcG9uc2USOgoHTGlzdE9wcxIWLmNhbWluby5MaXN0T3BzUmVxdWVzdBoXLmNhbWluby5MaXN0T3BzUmVzcG9uc2USRQoLV2F0Y2hPYmplY3QSGi5jYW1pbm8uV2F0Y2hPYmplY3RSZXF1ZXN0GhguY2FtaW5vLldhdGNoT2JqZWN0RXZlbnQwAWIGcHJvdG8z", [file_camino_schema]); + fileDesc("ChBjYW1pbm8vYXBpLnByb3RvEgZjYW1pbm8iCwoJTnVsbFZhbHVlInwKC09iamVjdFZhbHVlEi8KBmZpZWxkcxgBIAMoCzIfLmNhbWluby5PYmplY3RWYWx1ZS5GaWVsZHNFbnRyeRo8CgtGaWVsZHNFbnRyeRILCgNrZXkYASABKAkSHAoFdmFsdWUYAiABKAsyDS5jYW1pbm8uVmFsdWU6AjgBIioKCUxpc3RWYWx1ZRIdCgZ2YWx1ZXMYASADKAsyDS5jYW1pbm8uVmFsdWUiHQoIUmVmVmFsdWUSEQoJb2JqZWN0X2lkGAEgASgJIjwKCUNyZHRWYWx1ZRIMCgR0eXBlGAEgASgJEhAKCGVuY29kaW5nGAIgASgJEg8KB3BheWxvYWQYAyABKAwiqAEKEFN0YXRlVmFsdWVTb3VyY2USEQoJb2JqZWN0X2lkGAEgASgJEg8KB3Nsb3RfaWQYAiABKAkSFwoPdmFsdWVfdHlwZV9qc29uGAMgASgJEhsKE3N0b3JhZ2VfcG9saWN5X2pzb24YBCABKAkSEAoIcmV2aXNpb24YBSABKAQSKAoNY3JkdF9zbmFwc2hvdBgGIAEoCzIRLmNhbWluby5DcmR0VmFsdWUiNgoLVmFsdWVTb3VyY2USJwoFc3RhdGUYASABKAsyGC5jYW1pbm8uU3RhdGVWYWx1ZVNvdXJjZSL5AgoFVmFsdWUSJwoKbnVsbF92YWx1ZRgBIAEoCzIRLmNhbWluby5OdWxsVmFsdWVIABIUCgpib29sX3ZhbHVlGAIgASgISAASFgoMbnVtYmVyX3ZhbHVlGAMgASgBSAASFgoMc3RyaW5nX3ZhbHVlGAQgASgJSAASFwoNaW50ZWdlcl92YWx1ZRgFIAEoCUgAEhUKC2J5dGVzX3ZhbHVlGAYgASgMSAASKwoMb2JqZWN0X3ZhbHVlGAcgASgLMhMuY2FtaW5vLk9iamVjdFZhbHVlSAASJwoKbGlzdF92YWx1ZRgIIAEoCzIRLmNhbWluby5MaXN0VmFsdWVIABIlCglyZWZfdmFsdWUYCSABKAsyEC5jYW1pbm8uUmVmVmFsdWVIABInCgpjcmR0X3ZhbHVlGAogASgLMhEuY2FtaW5vLkNyZHRWYWx1ZUgAEiMKBnNvdXJjZRgLIAEoCzITLmNhbWluby5WYWx1ZVNvdXJjZUIGCgRraW5kIkYKHUluc3RhbGxQZXJzaXN0ZW5jZVBsYW5SZXF1ZXN0EiUKBHBsYW4YASABKAsyFy5jYW1pbm8uUGVyc2lzdGVuY2VQbGFuIkcKHkluc3RhbGxQZXJzaXN0ZW5jZVBsYW5SZXNwb25zZRIlCgRwbGFuGAEgASgLMhcuY2FtaW5vLlBlcnNpc3RlbmNlUGxhbiIbChlHZXRQZXJzaXN0ZW5jZVBsYW5SZXF1ZXN0IkMKGkdldFBlcnNpc3RlbmNlUGxhblJlc3BvbnNlEiUKBHBsYW4YASABKAsyFy5jYW1pbm8uUGVyc2lzdGVuY2VQbGFuIrABChNDcmVhdGVPYmplY3RSZXF1ZXN0Eg8KB2F0b21faWQYASABKAkSRAoNaW5pdGlhbF9zdGF0ZRgCIAMoCzItLmNhbWluby5DcmVhdGVPYmplY3RSZXF1ZXN0LkluaXRpYWxTdGF0ZUVudHJ5GkIKEUluaXRpYWxTdGF0ZUVudHJ5EgsKA2tleRgBIAEoCRIcCgV2YWx1ZRgCIAEoCzINLmNhbWluby5WYWx1ZToCOAEiPAoUQ3JlYXRlT2JqZWN0UmVzcG9uc2USJAoGb2JqZWN0GAEgASgLMhQuY2FtaW5vLkNhbWlub09iamVjdCIlChBHZXRPYmplY3RSZXF1ZXN0EhEKCW9iamVjdF9pZBgBIAEoCSI5ChFHZXRPYmplY3RSZXNwb25zZRIkCgZvYmplY3QYASABKAsyFC5jYW1pbm8uQ2FtaW5vT2JqZWN0IiUKEkxpc3RPYmplY3RzUmVxdWVzdBIPCgdhdG9tX2lkGAEgASgJIjwKE0xpc3RPYmplY3RzUmVzcG9uc2USJQoHb2JqZWN0cxgBIAMoCzIULmNhbWluby5DYW1pbm9PYmplY3QiNgoQUmVhZFN0YXRlUmVxdWVzdBIRCglvYmplY3RfaWQYASABKAkSDwoHc2xvdF9pZBgCIAEoCSIxChFSZWFkU3RhdGVSZXNwb25zZRIcCgV2YWx1ZRgBIAEoCzINLmNhbWluby5WYWx1ZSJxChFXcml0ZVN0YXRlUmVxdWVzdBIRCglvYmplY3RfaWQYASABKAkSDwoHc2xvdF9pZBgCIAEoCRIcCgV2YWx1ZRgDIAEoCzINLmNhbWluby5WYWx1ZRIaChJjbGllbnRfbXV0YXRpb25faWQYBCABKAkiWAoSV3JpdGVTdGF0ZVJlc3BvbnNlEhwKBXZhbHVlGAEgASgLMg0uY2FtaW5vLlZhbHVlEiQKBm9iamVjdBgCIAEoCzIULmNhbWluby5DYW1pbm9PYmplY3QiwAEKEkNvbm5lY3RFZGdlUmVxdWVzdBIUCgxlZGdlX3R5cGVfaWQYASABKAkSFQoNcHJvamVjdGlvbl9pZBgCIAEoCRIRCglvYmplY3RfaWQYAyABKAkSGAoQdGFyZ2V0X29iamVjdF9pZBgEIAEoCRIUCgdvcmRpbmFsGAUgASgFSACIAQESGwoOdGFyZ2V0X29yZGluYWwYBiABKAVIAYgBAUIKCghfb3JkaW5hbEIRCg9fdGFyZ2V0X29yZGluYWwiNwoTQ29ubmVjdEVkZ2VSZXNwb25zZRIgCgRlZGdlGAEgASgLMhIuY2FtaW5vLkNhbWlub0VkZ2UiVAoSUmVzb2x2ZUVkZ2VSZXF1ZXN0EhEKCW9iamVjdF9pZBgBIAEoCRIUCgxlZGdlX3R5cGVfaWQYAiABKAkSFQoNcHJvamVjdGlvbl9pZBgDIAEoCSI4ChNSZXNvbHZlRWRnZVJlc3BvbnNlEiEKBWVkZ2VzGAEgAygLMhIuY2FtaW5vLkNhbWlub0VkZ2UiKAoVRGlzY29ubmVjdEVkZ2VSZXF1ZXN0Eg8KB2VkZ2VfaWQYASABKAkiKQoWRGlzY29ubmVjdEVkZ2VSZXNwb25zZRIPCgdlZGdlX2lkGAEgASgJIlgKD0NvbGxlY3Rpb25FbnRyeRIPCgdlZGdlX2lkGAEgASgJEhgKEHRhcmdldF9vYmplY3RfaWQYAiABKAkSGgoDa2V5GAMgASgLMg0uY2FtaW5vLlZhbHVlIlQKFlJlYWRDb2xsZWN0aW9uUmVzcG9uc2USEAoIcmV2aXNpb24YASABKAQSKAoHZW50cmllcxgCIAMoCzIXLmNhbWluby5Db2xsZWN0aW9uRW50cnkinwEKGFJlcGxhY2VDb2xsZWN0aW9uUmVxdWVzdBIRCglvYmplY3RfaWQYASABKAkSFAoMZWRnZV90eXBlX2lkGAIgASgJEhUKDXByb2plY3Rpb25faWQYAyABKAkSGQoRZXhwZWN0ZWRfcmV2aXNpb24YBCABKAQSKAoHZW50cmllcxgFIAMoCzIXLmNhbWluby5Db2xsZWN0aW9uRW50cnkiIwoOTGlzdE9wc1JlcXVlc3QSEQoJb2JqZWN0X2lkGAEgASgJIjAKD0xpc3RPcHNSZXNwb25zZRIdCgNvcHMYASADKAsyEC5jYW1pbm8uQ2FtaW5vT3AibgoSV2F0Y2hPYmplY3RSZXF1ZXN0EhEKCW9iamVjdF9pZBgBIAEoCRITCgthZnRlcl9vcF9pZBgCIAEoCRIYChBpbmNsdWRlX3NuYXBzaG90GAMgASgIEhYKDmF0dGFjaG1lbnRfaWRzGAQgAygJImsKEFdhdGNoT2JqZWN0RXZlbnQSEQoJb2JqZWN0X2lkGAEgASgJEiYKCHNuYXBzaG90GAIgASgLMhQuY2FtaW5vLkNhbWlub09iamVjdBIcCgJvcBgDIAEoCzIQLmNhbWluby5DYW1pbm9PcCLZAgoMQ2FtaW5vT2JqZWN0EgoKAmlkGAEgASgJEg8KB2F0b21faWQYAiABKAkSHQoVd29ya3NwYWNlX3JldmlzaW9uX2lkGAMgASgJEhIKCmNyZWF0ZWRfYXQYBCABKAkSEgoKdXBkYXRlZF9hdBgFIAEoCRIuCgVzdGF0ZRgGIAMoCzIfLmNhbWluby5DYW1pbm9PYmplY3QuU3RhdGVFbnRyeRJBCg9zdGF0ZV9yZXZpc2lvbnMYByADKAsyKC5jYW1pbm8uQ2FtaW5vT2JqZWN0LlN0YXRlUmV2aXNpb25zRW50cnkaOwoKU3RhdGVFbnRyeRILCgNrZXkYASABKAkSHAoFdmFsdWUYAiABKAsyDS5jYW1pbm8uVmFsdWU6AjgBGjUKE1N0YXRlUmV2aXNpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgEOgI4ASK/AgoKQ2FtaW5vRWRnZRIKCgJpZBgBIAEoCRIUCgxlZGdlX3R5cGVfaWQYAiABKAkSFwoPZmlyc3Rfb2JqZWN0X2lkGAMgASgJEhgKEHNlY29uZF9vYmplY3RfaWQYBCABKAkSGwoTZmlyc3RfcHJvamVjdGlvbl9pZBgFIAEoCRIcChRzZWNvbmRfcHJvamVjdGlvbl9pZBgGIAEoCRIaCg1maXJzdF9vcmRpbmFsGAcgASgFSACIAQESGwoOc2Vjb25kX29yZGluYWwYCCABKAVIAYgBARISCgpjcmVhdGVkX2F0GAkgASgJEhYKDmZpcnN0X2tleV9qc29uGAogASgJEhcKD3NlY29uZF9rZXlfanNvbhgLIAEoCUIQCg5fZmlyc3Rfb3JkaW5hbEIRCg9fc2Vjb25kX29yZGluYWwimQEKCENhbWlub09wEgoKAmlkGAEgASgJEhEKCW9iamVjdF9pZBgCIAEoCRIPCgdvcF9raW5kGAMgASgJEh4KB3BheWxvYWQYBCABKAsyDS5jYW1pbm8uVmFsdWUSDQoFYWN0b3IYBSABKAkSEgoKY3JlYXRlZF9hdBgGIAEoCRIaChJjbGllbnRfbXV0YXRpb25faWQYByABKAki0AEKDFF1ZXJ5UmVxdWVzdBIQCghxdWVyeV9pZBgBIAEoCRIRCglvYmplY3RfaWQYAiABKAkSNgoJdmFyaWFibGVzGAMgAygLMiMuY2FtaW5vLlF1ZXJ5UmVxdWVzdC5WYXJpYWJsZXNFbnRyeRIiChpleHBlY3RlZF9kZWZpbml0aW9uX2RpZ2VzdBgEIAEoCRo/Cg5WYXJpYWJsZXNFbnRyeRILCgNrZXkYASABKAkSHAoFdmFsdWUYAiABKAsyDS5jYW1pbm8uVmFsdWU6AjgBIjkKDVF1ZXJ5UGF0aFBhcnQSDwoFZmllbGQYASABKAlIABIPCgVpbmRleBgCIAEoDUgAQgYKBHBhcnQijAIKEVF1ZXJ5UGVuZGluZ0ZpZWxkEiMKBHBhdGgYASADKAsyFS5jYW1pbm8uUXVlcnlQYXRoUGFydBIRCglvYmplY3RfaWQYAiABKAkSHQoVaW50ZXJmYWNlX3JldmlzaW9uX2lkGAMgASgJEhEKCW1lbWJlcl9pZBgEIAEoCRIUCgxvcGVyYXRpb25faWQYBSABKAkSFwoPdmFsdWVfdHlwZV9qc29uGAYgASgJEhwKD3Jlc2lkdWFsX3dpbmRvdxgHIAEoDUgAiAEBEhQKDHJlc2lkdWFsX3JvdxgIIAEoDRIWCg5yZXNpZHVhbF9maWVsZBgJIAEoCUISChBfcmVzaWR1YWxfd2luZG93IpIBCgpRdWVyeVN0YXRzEhEKCXNxbF9jb3VudBgBIAEoDRIOCgZzcWxfbXMYAiABKAESEQoJcnBjX2NvdW50GAMgASgNEg4KBnJwY19tcxgEIAEoARIUCgxyZXN1bHRfYnl0ZXMYBSABKA0SFgoOcHJlcGFyYXRpb25fbXMYBiABKAESEAoIdG90YWxfbXMYByABKAEivAIKDVF1ZXJ5UmVzcG9uc2USHAoFdmFsdWUYASABKAsyDS5jYW1pbm8uVmFsdWUSFAoMZGF0YV92ZXJzaW9uGAIgASgJEhYKDmJpbmRpbmdfZGlnZXN0GAMgASgJEioKB3BlbmRpbmcYBCADKAsyGS5jYW1pbm8uUXVlcnlQZW5kaW5nRmllbGQSIQoFc3RhdHMYBSABKAsyEi5jYW1pbm8uUXVlcnlTdGF0cxIZChFwcmVwYXJhdGlvbl90b2tlbhgGIAEoCRIpCgZlcnJvcnMYByADKAsyGS5jYW1pbm8uUXVlcnlGaWVsZEZhaWx1cmUSNQoQcmVzaWR1YWxfd2luZG93cxgIIAMoCzIbLmNhbWluby5RdWVyeVJlc2lkdWFsV2luZG93EhMKC2NvbnNpc3RlbmN5GAkgASgJIpgBChBRdWVyeVJlc2lkdWFsUm93EhAKCGVudHJ5X2lkGAEgASgJEjQKBmZpZWxkcxgCIAMoCzIkLmNhbWluby5RdWVyeVJlc2lkdWFsUm93LkZpZWxkc0VudHJ5GjwKC0ZpZWxkc0VudHJ5EgsKA2tleRgBIAEoCRIcCgV2YWx1ZRgCIAEoCzINLmNhbWluby5WYWx1ZToCOAEiNwoSUXVlcnlSZXNpZHVhbE9yZGVyEg0KBWZpZWxkGAEgASgJEhIKCmRlc2NlbmRpbmcYAiABKAgi6QIKE1F1ZXJ5UmVzaWR1YWxXaW5kb3cSIwoEcGF0aBgBIAMoCzIVLmNhbWluby5RdWVyeVBhdGhQYXJ0EiYKBHJvd3MYAiADKAsyGC5jYW1pbm8uUXVlcnlSZXNpZHVhbFJvdxIWCg5wcmVkaWNhdGVfanNvbhgDIAEoCRIpCgVvcmRlchgEIAMoCzIaLmNhbWluby5RdWVyeVJlc2lkdWFsT3JkZXISDQoFbGltaXQYBSABKA0SEwoLYm91bmRlZF9hbGwYBiABKAgSKQoJc2VsZWN0aW9uGAcgAygLMhYuY2FtaW5vLlF1ZXJ5U2VsZWN0aW9uEkAKC2ZpZWxkX3R5cGVzGAggAygLMisuY2FtaW5vLlF1ZXJ5UmVzaWR1YWxXaW5kb3cuRmllbGRUeXBlc0VudHJ5GjEKD0ZpZWxkVHlwZXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIkcKEVF1ZXJ5RmllbGRGYWlsdXJlEiMKBHBhdGgYASADKAsyFS5jYW1pbm8uUXVlcnlQYXRoUGFydBINCgVlcnJvchgCIAEoCSJQChNRdWVyeUNoYW5nZXNSZXF1ZXN0EhAKCHF1ZXJ5X2lkGAEgASgJEhEKCW9iamVjdF9pZBgCIAEoCRIUCgxkYXRhX3ZlcnNpb24YAyABKAkiJwoUUXVlcnlDaGFuZ2VzUmVzcG9uc2USDwoHY2hhbmdlZBgBIAEoCDLCCQoNQ2FtaW5vU2VydmljZRI7CgxFeGVjdXRlUXVlcnkSFC5jYW1pbm8uUXVlcnlSZXF1ZXN0GhUuY2FtaW5vLlF1ZXJ5UmVzcG9uc2USSQoMUXVlcnlDaGFuZ2VzEhsuY2FtaW5vLlF1ZXJ5Q2hhbmdlc1JlcXVlc3QaHC5jYW1pbm8uUXVlcnlDaGFuZ2VzUmVzcG9uc2USZwoWSW5zdGFsbFBlcnNpc3RlbmNlUGxhbhIlLmNhbWluby5JbnN0YWxsUGVyc2lzdGVuY2VQbGFuUmVxdWVzdBomLmNhbWluby5JbnN0YWxsUGVyc2lzdGVuY2VQbGFuUmVzcG9uc2USWwoSR2V0UGVyc2lzdGVuY2VQbGFuEiEuY2FtaW5vLkdldFBlcnNpc3RlbmNlUGxhblJlcXVlc3QaIi5jYW1pbm8uR2V0UGVyc2lzdGVuY2VQbGFuUmVzcG9uc2USSQoMQ3JlYXRlT2JqZWN0EhsuY2FtaW5vLkNyZWF0ZU9iamVjdFJlcXVlc3QaHC5jYW1pbm8uQ3JlYXRlT2JqZWN0UmVzcG9uc2USQAoJR2V0T2JqZWN0EhguY2FtaW5vLkdldE9iamVjdFJlcXVlc3QaGS5jYW1pbm8uR2V0T2JqZWN0UmVzcG9uc2USRgoLTGlzdE9iamVjdHMSGi5jYW1pbm8uTGlzdE9iamVjdHNSZXF1ZXN0GhsuY2FtaW5vLkxpc3RPYmplY3RzUmVzcG9uc2USQAoJUmVhZFN0YXRlEhguY2FtaW5vLlJlYWRTdGF0ZVJlcXVlc3QaGS5jYW1pbm8uUmVhZFN0YXRlUmVzcG9uc2USQwoKV3JpdGVTdGF0ZRIZLmNhbWluby5Xcml0ZVN0YXRlUmVxdWVzdBoaLmNhbWluby5Xcml0ZVN0YXRlUmVzcG9uc2USRgoLQ29ubmVjdEVkZ2USGi5jYW1pbm8uQ29ubmVjdEVkZ2VSZXF1ZXN0GhsuY2FtaW5vLkNvbm5lY3RFZGdlUmVzcG9uc2USRgoLUmVzb2x2ZUVkZ2USGi5jYW1pbm8uUmVzb2x2ZUVkZ2VSZXF1ZXN0GhsuY2FtaW5vLlJlc29sdmVFZGdlUmVzcG9uc2USTwoORGlzY29ubmVjdEVkZ2USHS5jYW1pbm8uRGlzY29ubmVjdEVkZ2VSZXF1ZXN0Gh4uY2FtaW5vLkRpc2Nvbm5lY3RFZGdlUmVzcG9uc2USTAoOUmVhZENvbGxlY3Rpb24SGi5jYW1pbm8uUmVzb2x2ZUVkZ2VSZXF1ZXN0Gh4uY2FtaW5vLlJlYWRDb2xsZWN0aW9uUmVzcG9uc2USVQoRUmVwbGFjZUNvbGxlY3Rpb24SIC5jYW1pbm8uUmVwbGFjZUNvbGxlY3Rpb25SZXF1ZXN0Gh4uY2FtaW5vLlJlYWRDb2xsZWN0aW9uUmVzcG9uc2USOgoHTGlzdE9wcxIWLmNhbWluby5MaXN0T3BzUmVxdWVzdBoXLmNhbWluby5MaXN0T3BzUmVzcG9uc2USRQoLV2F0Y2hPYmplY3QSGi5jYW1pbm8uV2F0Y2hPYmplY3RSZXF1ZXN0GhguY2FtaW5vLldhdGNoT2JqZWN0RXZlbnQwAWIGcHJvdG8z", [file_camino_schema]); /** * @generated from message camino.NullValue @@ -995,10 +995,421 @@ export type CaminoOp = Message<"camino.CaminoOp"> & { export const CaminoOpSchema: GenMessage = /*@__PURE__*/ messageDesc(file_camino_api, 37); +/** + * @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 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 const QueryRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_camino_api, 38); + +/** + * @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 const QueryPathPartSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_camino_api, 39); + +/** + * @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 const QueryPendingFieldSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_camino_api, 40); + +/** + * @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 const QueryStatsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_camino_api, 41); + +/** + * @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 const QueryResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_camino_api, 42); + +/** + * @generated from message camino.QueryResidualRow + */ +export type QueryResidualRow = Message<"camino.QueryResidualRow"> & { + /** + * @generated from field: string entry_id = 1; + */ + entryId: string; + + /** + * @generated from field: map fields = 2; + */ + fields: { [key: string]: Value }; +}; + +/** + * Describes the message camino.QueryResidualRow. + * Use `create(QueryResidualRowSchema)` to create a new message. + */ +export const QueryResidualRowSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_camino_api, 43); + +/** + * @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 const QueryResidualOrderSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_camino_api, 44); + +/** + * @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 field_types = 8; + */ + fieldTypes: { [key: string]: string }; +}; + +/** + * Describes the message camino.QueryResidualWindow. + * Use `create(QueryResidualWindowSchema)` to create a new message. + */ +export const QueryResidualWindowSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_camino_api, 45); + +/** + * @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 const QueryFieldFailureSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_camino_api, 46); + +/** + * @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 const QueryChangesRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_camino_api, 47); + +/** + * @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 const QueryChangesResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_camino_api, 48); + /** * @generated from service camino.CaminoService */ export 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 */ diff --git a/src/camino/schema_pb.ts b/src/camino/schema_pb.ts index 8ffc092..76e1724 100644 --- a/src/camino/schema_pb.ts +++ b/src/camino/schema_pb.ts @@ -10,7 +10,7 @@ import type { Message } from "@bufbuild/protobuf"; * Describes the file camino/schema.proto. */ export const file_camino_schema: GenFile = /*@__PURE__*/ - fileDesc("ChNjYW1pbm8vc2NoZW1hLnByb3RvEgZjYW1pbm8iNwoOQXRvbURlZmluaXRpb24SDwoHYXRvbV9pZBgBIAEoCRIUCgxkaXNwbGF5X25hbWUYAiABKAkiWQoPQXRvbUNvbmZvcm1hbmNlEg8KB2F0b21faWQYASABKAkSHQoVaW50ZXJmYWNlX3JldmlzaW9uX2lkGAIgASgJEhYKDmNvbmZvcm1hbmNlX2lkGAMgASgJIsIBCg9TdGF0ZUF0dGFjaG1lbnQSDwoHc2xvdF9pZBgBIAEoCRIYChBhdHRhY2hlZF9hdG9tX2lkGAIgASgJEhQKDGRpc3BsYXlfbmFtZRgDIAEoCRIXCg92YWx1ZV90eXBlX2pzb24YBCABKAkSGwoTc3RvcmFnZV9wb2xpY3lfanNvbhgFIAEoCRIaChJkZWZhdWx0X3ZhbHVlX2pzb24YBiABKAkSHAoUb3duZXJfY29uZm9ybWFuY2VfaWQYByABKAkiUAoSRW5kcG9pbnRDb25zdHJhaW50EhEKB2F0b21faWQYASABKAlIABIfChVpbnRlcmZhY2VfcmV2aXNpb25faWQYAiABKAlIAEIGCgRraW5kIvsBCgxFZGdlRW5kcG9pbnQSFQoNcHJvamVjdGlvbl9pZBgBIAEoCRIUCgxkaXNwbGF5X25hbWUYAiABKAkSLgoKY29uc3RyYWludBgDIAEoCzIaLmNhbWluby5FbmRwb2ludENvbnN0cmFpbnQSKAoLY2FyZGluYWxpdHkYBCABKA4yEy5jYW1pbm8uQ2FyZGluYWxpdHkSDwoHb3JkZXJlZBgFIAEoCBIRCglvbl9kZWxldGUYBiABKAkSFAoMcmV0YWluX290aGVyGAcgASgIEhAKCGtleV90eXBlGAggASgJEhgKEHB1YmxpY190cmF2ZXJzYWwYCSABKAgipQEKDkVkZ2VBdHRhY2htZW50EhQKDGVkZ2VfdHlwZV9pZBgBIAEoCRIUCgxkaXNwbGF5X25hbWUYAiABKAkSIwoFZmlyc3QYAyABKAsyFC5jYW1pbm8uRWRnZUVuZHBvaW50EiQKBnNlY29uZBgEIAEoCzIULmNhbWluby5FZGdlRW5kcG9pbnQSHAoUb3duZXJfY29uZm9ybWFuY2VfaWQYBSABKAki7AEKD1BlcnNpc3RlbmNlUGxhbhIUCgx3b3Jrc3BhY2VfaWQYASABKAkSHQoVd29ya3NwYWNlX3JldmlzaW9uX2lkGAIgASgJEiUKBWF0b21zGAMgAygLMhYuY2FtaW5vLkF0b21EZWZpbml0aW9uEi0KDGNvbmZvcm1hbmNlcxgEIAMoCzIXLmNhbWluby5BdG9tQ29uZm9ybWFuY2USJwoGc3RhdGVzGAUgAygLMhcuY2FtaW5vLlN0YXRlQXR0YWNobWVudBIlCgVlZGdlcxgGIAMoCzIWLmNhbWluby5FZGdlQXR0YWNobWVudCpoCgtDYXJkaW5hbGl0eRIbChdDQVJESU5BTElUWV9VTlNQRUNJRklFRBAAEhAKDE9QVElPTkFMX09ORRABEg8KC0VYQUNUTFlfT05FEAISCAoETUFOWRADEg8KC01BTllfVU5JUVVFEARiBnByb3RvMw"); + fileDesc("ChNjYW1pbm8vc2NoZW1hLnByb3RvEgZjYW1pbm8iNwoOQXRvbURlZmluaXRpb24SDwoHYXRvbV9pZBgBIAEoCRIUCgxkaXNwbGF5X25hbWUYAiABKAkiWQoPQXRvbUNvbmZvcm1hbmNlEg8KB2F0b21faWQYASABKAkSHQoVaW50ZXJmYWNlX3JldmlzaW9uX2lkGAIgASgJEhYKDmNvbmZvcm1hbmNlX2lkGAMgASgJIsIBCg9TdGF0ZUF0dGFjaG1lbnQSDwoHc2xvdF9pZBgBIAEoCRIYChBhdHRhY2hlZF9hdG9tX2lkGAIgASgJEhQKDGRpc3BsYXlfbmFtZRgDIAEoCRIXCg92YWx1ZV90eXBlX2pzb24YBCABKAkSGwoTc3RvcmFnZV9wb2xpY3lfanNvbhgFIAEoCRIaChJkZWZhdWx0X3ZhbHVlX2pzb24YBiABKAkSHAoUb3duZXJfY29uZm9ybWFuY2VfaWQYByABKAkiUAoSRW5kcG9pbnRDb25zdHJhaW50EhEKB2F0b21faWQYASABKAlIABIfChVpbnRlcmZhY2VfcmV2aXNpb25faWQYAiABKAlIAEIGCgRraW5kIvsBCgxFZGdlRW5kcG9pbnQSFQoNcHJvamVjdGlvbl9pZBgBIAEoCRIUCgxkaXNwbGF5X25hbWUYAiABKAkSLgoKY29uc3RyYWludBgDIAEoCzIaLmNhbWluby5FbmRwb2ludENvbnN0cmFpbnQSKAoLY2FyZGluYWxpdHkYBCABKA4yEy5jYW1pbm8uQ2FyZGluYWxpdHkSDwoHb3JkZXJlZBgFIAEoCBIRCglvbl9kZWxldGUYBiABKAkSFAoMcmV0YWluX290aGVyGAcgASgIEhAKCGtleV90eXBlGAggASgJEhgKEHB1YmxpY190cmF2ZXJzYWwYCSABKAgipQEKDkVkZ2VBdHRhY2htZW50EhQKDGVkZ2VfdHlwZV9pZBgBIAEoCRIUCgxkaXNwbGF5X25hbWUYAiABKAkSIwoFZmlyc3QYAyABKAsyFC5jYW1pbm8uRWRnZUVuZHBvaW50EiQKBnNlY29uZBgEIAEoCzIULmNhbWluby5FZGdlRW5kcG9pbnQSHAoUb3duZXJfY29uZm9ybWFuY2VfaWQYBSABKAkilQIKD1BlcnNpc3RlbmNlUGxhbhIUCgx3b3Jrc3BhY2VfaWQYASABKAkSHQoVd29ya3NwYWNlX3JldmlzaW9uX2lkGAIgASgJEiUKBWF0b21zGAMgAygLMhYuY2FtaW5vLkF0b21EZWZpbml0aW9uEi0KDGNvbmZvcm1hbmNlcxgEIAMoCzIXLmNhbWluby5BdG9tQ29uZm9ybWFuY2USJwoGc3RhdGVzGAUgAygLMhcuY2FtaW5vLlN0YXRlQXR0YWNobWVudBIlCgVlZGdlcxgGIAMoCzIWLmNhbWluby5FZGdlQXR0YWNobWVudBInCgdxdWVyaWVzGAcgAygLMhYuY2FtaW5vLkluc3RhbGxlZFF1ZXJ5Ip4BCg1RdWVyeUFyZ3VtZW50EhIKCHZhcmlhYmxlGAEgASgJSAASFgoMbGl0ZXJhbF9qc29uGAIgASgJSAASKQoEbGlzdBgDIAEoCzIZLmNhbWluby5RdWVyeUFyZ3VtZW50TGlzdEgAEi0KBm9iamVjdBgEIAEoCzIbLmNhbWluby5RdWVyeUFyZ3VtZW50T2JqZWN0SABCBwoFdmFsdWUiOgoRUXVlcnlBcmd1bWVudExpc3QSJQoGdmFsdWVzGAEgAygLMhUuY2FtaW5vLlF1ZXJ5QXJndW1lbnQilAEKE1F1ZXJ5QXJndW1lbnRPYmplY3QSNwoGZmllbGRzGAEgAygLMicuY2FtaW5vLlF1ZXJ5QXJndW1lbnRPYmplY3QuRmllbGRzRW50cnkaRAoLRmllbGRzRW50cnkSCwoDa2V5GAEgASgJEiQKBXZhbHVlGAIgASgLMhUuY2FtaW5vLlF1ZXJ5QXJndW1lbnQ6AjgBIkcKDlF1ZXJ5Q29uZGl0aW9uEg8KB2luY2x1ZGUYASABKAgSJAoFdmFsdWUYAiABKAsyFS5jYW1pbm8uUXVlcnlBcmd1bWVudCLdAgoOUXVlcnlTZWxlY3Rpb24SDAoEbmFtZRgBIAEoCRILCgNrZXkYAiABKAkSHQoVaW50ZXJmYWNlX3JldmlzaW9uX2lkGAMgASgJEhEKCW1lbWJlcl9pZBgEIAEoCRIkChx0YXJnZXRfaW50ZXJmYWNlX3JldmlzaW9uX2lkGAUgASgJEioKCmNvbmRpdGlvbnMYBiADKAsyFi5jYW1pbm8uUXVlcnlDb25kaXRpb24SOAoJYXJndW1lbnRzGAcgAygLMiUuY2FtaW5vLlF1ZXJ5U2VsZWN0aW9uLkFyZ3VtZW50c0VudHJ5EikKCXNlbGVjdGlvbhgIIAMoCzIWLmNhbWluby5RdWVyeVNlbGVjdGlvbhpHCg5Bcmd1bWVudHNFbnRyeRILCgNrZXkYASABKAkSJAoFdmFsdWUYAiABKAsyFS5jYW1pbm8uUXVlcnlBcmd1bWVudDoCOAEi6QIKEFF1ZXJ5UmVhZEJpbmRpbmcSDwoHYXRvbV9pZBgBIAEoCRIdChVpbnRlcmZhY2VfcmV2aXNpb25faWQYAiABKAkSEQoJbWVtYmVyX2lkGAMgASgJEhsKE2dldHRlcl9vcGVyYXRpb25faWQYBCABKAkSDwoHc2xvdF9pZBgFIAEoCRIUCgxlZGdlX3R5cGVfaWQYBiABKAkSFQoNcHJvamVjdGlvbl9pZBgHIAEoCRILCgNycGMYCCABKAgSIAoYd2F0Y2hfc3RhcnRfb3BlcmF0aW9uX2lkGAkgASgJEh8KF3dhdGNoX3N0b3Bfb3BlcmF0aW9uX2lkGAogASgJEhIKCmZpZWxkX25hbWUYCyABKAkSFwoPdmFsdWVfdHlwZV9qc29uGAwgASgJEigKC2NhcmRpbmFsaXR5GA0gASgOMhMuY2FtaW5vLkNhcmRpbmFsaXR5EhAKCGtleV90eXBlGA4gASgJIpIBCgxRdWVyeUJ1ZGdldHMSDAoEcm93cxgBIAEoDRINCgVkZXB0aBgCIAEoDRIUCgxyZXN1bHRfYnl0ZXMYAyABKA0SEgoKY2FuZGlkYXRlcxgEIAEoDRIRCglycGNfY2FsbHMYBSABKA0SEwoLY29uY3VycmVuY3kYBiABKA0SEwoLZGVhZGxpbmVfbXMYByABKA0ijQQKDkluc3RhbGxlZFF1ZXJ5EgoKAmlkGAEgASgJEhkKEWRlZmluaXRpb25fZGlnZXN0GAIgASgJEhYKDmJpbmRpbmdfZGlnZXN0GAMgASgJEiIKGnJvb3RfaW50ZXJmYWNlX3JldmlzaW9uX2lkGAQgASgJEikKCXNlbGVjdGlvbhgFIAMoCzIWLmNhbWluby5RdWVyeVNlbGVjdGlvbhIqCghiaW5kaW5ncxgGIAMoCzIYLmNhbWluby5RdWVyeVJlYWRCaW5kaW5nEiUKB2J1ZGdldHMYByABKAsyFC5jYW1pbm8uUXVlcnlCdWRnZXRzEhsKE3ZhcmlhYmxlc190eXBlX2pzb24YCCABKAkSGAoQb3V0cHV0X3R5cGVfanNvbhgJIAEoCRJHChF2YXJpYWJsZV9kZWZhdWx0cxgKIAMoCzIsLmNhbWluby5JbnN0YWxsZWRRdWVyeS5WYXJpYWJsZURlZmF1bHRzRW50cnkSDQoFd2F0Y2gYCyABKAgSGwoTcG9sbGluZ19pbnRlcnZhbF9tcxgMIAEoDRIeChZycGNfcHJlZGljYXRlX29yX29yZGVyGA0gASgIGk4KFVZhcmlhYmxlRGVmYXVsdHNFbnRyeRILCgNrZXkYASABKAkSJAoFdmFsdWUYAiABKAsyFS5jYW1pbm8uUXVlcnlBcmd1bWVudDoCOAEqaAoLQ2FyZGluYWxpdHkSGwoXQ0FSRElOQUxJVFlfVU5TUEVDSUZJRUQQABIQCgxPUFRJT05BTF9PTkUQARIPCgtFWEFDVExZX09ORRACEggKBE1BTlkQAxIPCgtNQU5ZX1VOSVFVRRAEYgZwcm90bzM"); /** * @generated from message camino.AtomDefinition @@ -273,6 +273,11 @@ export type PersistencePlan = Message<"camino.PersistencePlan"> & { * @generated from field: repeated camino.EdgeAttachment edges = 6; */ edges: EdgeAttachment[]; + + /** + * @generated from field: repeated camino.InstalledQuery queries = 7; + */ + queries: InstalledQuery[]; }; /** @@ -282,6 +287,364 @@ export type PersistencePlan = Message<"camino.PersistencePlan"> & { export const PersistencePlanSchema: GenMessage = /*@__PURE__*/ messageDesc(file_camino_schema, 6); +/** + * Immutable checked query IR. Installed only with the checked persistence plan; + * query callers select its ID, never send or modify these definitions. + * + * @generated from message camino.QueryArgument + */ +export type QueryArgument = Message<"camino.QueryArgument"> & { + /** + * @generated from oneof camino.QueryArgument.value + */ + value: { + /** + * @generated from field: string variable = 1; + */ + value: string; + case: "variable"; + } | { + /** + * @generated from field: string literal_json = 2; + */ + value: string; + case: "literalJson"; + } | { + /** + * @generated from field: camino.QueryArgumentList list = 3; + */ + value: QueryArgumentList; + case: "list"; + } | { + /** + * @generated from field: camino.QueryArgumentObject object = 4; + */ + value: QueryArgumentObject; + case: "object"; + } | { case: undefined; value?: undefined }; +}; + +/** + * Describes the message camino.QueryArgument. + * Use `create(QueryArgumentSchema)` to create a new message. + */ +export const QueryArgumentSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_camino_schema, 7); + +/** + * @generated from message camino.QueryArgumentList + */ +export type QueryArgumentList = Message<"camino.QueryArgumentList"> & { + /** + * @generated from field: repeated camino.QueryArgument values = 1; + */ + values: QueryArgument[]; +}; + +/** + * Describes the message camino.QueryArgumentList. + * Use `create(QueryArgumentListSchema)` to create a new message. + */ +export const QueryArgumentListSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_camino_schema, 8); + +/** + * @generated from message camino.QueryArgumentObject + */ +export type QueryArgumentObject = Message<"camino.QueryArgumentObject"> & { + /** + * @generated from field: map fields = 1; + */ + fields: { [key: string]: QueryArgument }; +}; + +/** + * Describes the message camino.QueryArgumentObject. + * Use `create(QueryArgumentObjectSchema)` to create a new message. + */ +export const QueryArgumentObjectSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_camino_schema, 9); + +/** + * @generated from message camino.QueryCondition + */ +export type QueryCondition = Message<"camino.QueryCondition"> & { + /** + * @generated from field: bool include = 1; + */ + include: boolean; + + /** + * @generated from field: camino.QueryArgument value = 2; + */ + value?: QueryArgument | undefined; +}; + +/** + * Describes the message camino.QueryCondition. + * Use `create(QueryConditionSchema)` to create a new message. + */ +export const QueryConditionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_camino_schema, 10); + +/** + * @generated from message camino.QuerySelection + */ +export type QuerySelection = Message<"camino.QuerySelection"> & { + /** + * @generated from field: string name = 1; + */ + name: string; + + /** + * @generated from field: string key = 2; + */ + key: string; + + /** + * @generated from field: string interface_revision_id = 3; + */ + interfaceRevisionId: string; + + /** + * @generated from field: string member_id = 4; + */ + memberId: string; + + /** + * @generated from field: string target_interface_revision_id = 5; + */ + targetInterfaceRevisionId: string; + + /** + * @generated from field: repeated camino.QueryCondition conditions = 6; + */ + conditions: QueryCondition[]; + + /** + * @generated from field: map arguments = 7; + */ + arguments: { [key: string]: QueryArgument }; + + /** + * @generated from field: repeated camino.QuerySelection selection = 8; + */ + selection: QuerySelection[]; +}; + +/** + * Describes the message camino.QuerySelection. + * Use `create(QuerySelectionSchema)` to create a new message. + */ +export const QuerySelectionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_camino_schema, 11); + +/** + * @generated from message camino.QueryReadBinding + */ +export type QueryReadBinding = Message<"camino.QueryReadBinding"> & { + /** + * @generated from field: string atom_id = 1; + */ + atomId: string; + + /** + * @generated from field: string interface_revision_id = 2; + */ + interfaceRevisionId: string; + + /** + * @generated from field: string member_id = 3; + */ + memberId: string; + + /** + * @generated from field: string getter_operation_id = 4; + */ + getterOperationId: string; + + /** + * @generated from field: string slot_id = 5; + */ + slotId: string; + + /** + * @generated from field: string edge_type_id = 6; + */ + edgeTypeId: string; + + /** + * @generated from field: string projection_id = 7; + */ + projectionId: string; + + /** + * @generated from field: bool rpc = 8; + */ + rpc: boolean; + + /** + * @generated from field: string watch_start_operation_id = 9; + */ + watchStartOperationId: string; + + /** + * @generated from field: string watch_stop_operation_id = 10; + */ + watchStopOperationId: string; + + /** + * @generated from field: string field_name = 11; + */ + fieldName: string; + + /** + * @generated from field: string value_type_json = 12; + */ + valueTypeJson: string; + + /** + * @generated from field: camino.Cardinality cardinality = 13; + */ + cardinality: Cardinality; + + /** + * @generated from field: string key_type = 14; + */ + keyType: string; +}; + +/** + * Describes the message camino.QueryReadBinding. + * Use `create(QueryReadBindingSchema)` to create a new message. + */ +export const QueryReadBindingSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_camino_schema, 12); + +/** + * @generated from message camino.QueryBudgets + */ +export type QueryBudgets = Message<"camino.QueryBudgets"> & { + /** + * @generated from field: uint32 rows = 1; + */ + rows: number; + + /** + * @generated from field: uint32 depth = 2; + */ + depth: number; + + /** + * @generated from field: uint32 result_bytes = 3; + */ + resultBytes: number; + + /** + * @generated from field: uint32 candidates = 4; + */ + candidates: number; + + /** + * @generated from field: uint32 rpc_calls = 5; + */ + rpcCalls: number; + + /** + * @generated from field: uint32 concurrency = 6; + */ + concurrency: number; + + /** + * @generated from field: uint32 deadline_ms = 7; + */ + deadlineMs: number; +}; + +/** + * Describes the message camino.QueryBudgets. + * Use `create(QueryBudgetsSchema)` to create a new message. + */ +export const QueryBudgetsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_camino_schema, 13); + +/** + * @generated from message camino.InstalledQuery + */ +export type InstalledQuery = Message<"camino.InstalledQuery"> & { + /** + * @generated from field: string id = 1; + */ + id: string; + + /** + * @generated from field: string definition_digest = 2; + */ + definitionDigest: string; + + /** + * @generated from field: string binding_digest = 3; + */ + bindingDigest: string; + + /** + * @generated from field: string root_interface_revision_id = 4; + */ + rootInterfaceRevisionId: string; + + /** + * @generated from field: repeated camino.QuerySelection selection = 5; + */ + selection: QuerySelection[]; + + /** + * @generated from field: repeated camino.QueryReadBinding bindings = 6; + */ + bindings: QueryReadBinding[]; + + /** + * @generated from field: camino.QueryBudgets budgets = 7; + */ + budgets?: QueryBudgets | undefined; + + /** + * @generated from field: string variables_type_json = 8; + */ + variablesTypeJson: string; + + /** + * @generated from field: string output_type_json = 9; + */ + outputTypeJson: string; + + /** + * @generated from field: map variable_defaults = 10; + */ + variableDefaults: { [key: string]: QueryArgument }; + + /** + * @generated from field: bool watch = 11; + */ + watch: boolean; + + /** + * @generated from field: uint32 polling_interval_ms = 12; + */ + pollingIntervalMs: number; + + /** + * @generated from field: bool rpc_predicate_or_order = 13; + */ + rpcPredicateOrOrder: boolean; +}; + +/** + * Describes the message camino.InstalledQuery. + * Use `create(InstalledQuerySchema)` to create a new message. + */ +export const InstalledQuerySchema: GenMessage = /*@__PURE__*/ + messageDesc(file_camino_schema, 14); + /** * @generated from enum camino.Cardinality */ diff --git a/src/index.ts b/src/index.ts index a205204..dd39b16 100644 --- a/src/index.ts +++ b/src/index.ts @@ -9,6 +9,7 @@ import { type QxObjectRef, } from "./references.js"; export * from "./bindings.js"; +export * from "./queries.js"; export { relationshipMap, relationshipList, relationshipSet } from "./relationships.js"; import { AsyncLocalStorage } from "node:async_hooks"; import { createHmac, randomBytes, randomUUID, timingSafeEqual } from "node:crypto"; @@ -33,6 +34,7 @@ import { RefValueSchema, ValueSchema, type Value, + type QueryResponse, } from "./camino/api_pb.js"; import { OrchestratorRuntime } from "./quixos/orch_pb.js"; import { @@ -197,7 +199,16 @@ export type ConstructorPort = { atomId: string; construct(input?: Record): Promise; }; -export type RuntimePort = StatePort | EdgePort | InterfacePort | ConstructorPort; +export type QueryPort = { + queryId: string; + execute(variables: Record, expectedDefinitionDigest?: string): Promise; + watch( + variables: Record, + signal: AbortSignal, + expectedDefinitionDigest?: string, + ): AsyncIterable; +}; +export type RuntimePort = StatePort | EdgePort | InterfacePort | ConstructorPort | QueryPort; export type RuntimeContext = { tryConform(object: QxObjectRef, interfaceRevisionId: string): Promise; @@ -212,6 +223,7 @@ export type RuntimeContext = { edge(portId: string): EdgePort; interface(portId: string): InterfacePort; constructor(portId: string): ConstructorPort; + query(portId: string): QueryPort; }; export type RuntimeSession = { @@ -273,6 +285,18 @@ export const createRuntimeContext = ( const ports = new Map(); for (const dependency of request.dependencies) { switch (dependency.binding.case) { + case "queryId": { + const queryId = dependency.binding.value, + objectId = dependency.objectId || request.objectId; + ports.set(dependency.portId, { + queryId, + execute: (variables, expectedDefinitionDigest) => + orch.executeQuery({ queryId, objectId, variables, expectedDefinitionDigest }), + watch: (variables, signal, expectedDefinitionDigest) => + orch.watchQuery({ queryId, objectId, variables, expectedDefinitionDigest }, { signal }), + }); + break; + } case "stateSlotId": { const slotId = dependency.binding.value; const dependencyObjectId = dependency.objectId || request.objectId; @@ -421,6 +445,7 @@ export const createRuntimeContext = ( edge: (portId: string) => requirePort(portId, "edgeTypeId"), interface: (portId: string) => requirePort(portId, "interfaceRevisionId"), constructor: (portId: string) => requirePort(portId, "atomId"), + query: (portId: string) => requirePort(portId, "queryId"), }; }; diff --git a/src/queries.ts b/src/queries.ts new file mode 100644 index 0000000..b43e02a --- /dev/null +++ b/src/queries.ts @@ -0,0 +1,82 @@ +import { decodeQxValue, type QxValueType } from "./bindings.js"; +import type { QueryResponse } from "./camino/api_pb.js"; +import type { QxObjectRef } from "./references.js"; + +export type QxQueryPartial = T extends QxObjectRef + ? T + : T extends readonly (infer Item)[] + ? QxQueryPartial[] + : T extends object + ? { [Key in keyof T]?: QxQueryPartial } + : T; +export type QxQuerySnapshot = { + runId: string; + sequence: bigint; + dataVersion: string; + bindingDigest: string; + consistency: string; + fields: { path: readonly (string | number)[]; status: "pending" | "error"; error?: string }[]; +} & ({ status: "ready"; data: T } | { status: "partial"; data: QxQueryPartial }); +declare const queryTypes: unique symbol; +/** Generated shape evidence, not permission to run a query. */ +export interface QxQueryDescriptor { + readonly id: string; + readonly definitionDigest: string; + readonly rootInterfaceRevisionId: Root; + readonly variables: QxValueType; + readonly output: QxValueType; + readonly watch: boolean; + readonly [queryTypes]?: (variables: Variables, result: Result) => [Variables, Result]; +} + +export function decodeQuerySnapshot( + response: QueryResponse, + output: QxValueType, + runId: string, + sequence: bigint, +): QxQuerySnapshot { + if (response.preparationToken || response.residualWindows.length) + throw new Error("QUERY_RESULT_UNFINISHED: private preparation is not a query result"); + const fields = [ + ...response.pending.map((field) => ({ path: field.path, status: "pending" as const })), + ...response.errors.map((field) => ({ path: field.path, status: "error" as const, error: field.error })), + ].map((field) => ({ + ...field, + path: field.path.map((part) => { + if (part.part.case !== "field" && part.part.case !== "index") throw new Error("QUERY_PATCH_INVALID"); + return part.part.value; + }), + })); + // Pending/error values are absent, not successful nulls of a scalar type. + const shape = structuredClone(output); + for (const field of fields) { + let cursor = shape; + for (const [index, part] of field.path.entries()) { + while (cursor.kind === "optional") cursor = cursor.value; + const last = index === field.path.length - 1; + if (typeof part === "string" && cursor.kind === "record" && cursor.fields[part]) { + if (last) cursor.fields[part] = { kind: "optional", value: cursor.fields[part]! }; + else cursor = cursor.fields[part]!; + } else if (typeof part === "number" && cursor.kind === "list") cursor = cursor.value; + else throw new Error("QUERY_PATCH_INVALID"); + } + } + const data = decodeQxValue(shape, response.value, {}) as Record; + for (const field of fields) { + let cursor: unknown = data; + for (const [index, part] of field.path.entries()) { + if (!cursor || typeof cursor !== "object") throw new Error("QUERY_PATCH_INVALID"); + if (index === field.path.length - 1) delete (cursor as Record)[part]; + else cursor = (cursor as Record)[part]; + } + } + return { + runId, + sequence, + dataVersion: response.dataVersion, + bindingDigest: response.bindingDigest, + consistency: response.consistency, + fields, + ...(fields.length ? { status: "partial", data } : { status: "ready", data }), + } as QxQuerySnapshot; +} diff --git a/src/quixos/orch_pb.ts b/src/quixos/orch_pb.ts index 75d1880..655ecab 100644 --- a/src/quixos/orch_pb.ts +++ b/src/quixos/orch_pb.ts @@ -4,8 +4,10 @@ import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2"; import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2"; -import type { CaminoObject, CrdtValue, Value } from "../camino/api_pb.js"; +import type { CaminoObject, CrdtValue, QueryPathPart, QueryRequestSchema, QueryResponse, QueryResponseSchema, Value } from "../camino/api_pb.js"; import { file_camino_api } from "../camino/api_pb.js"; +import type { InstalledQuery } from "../camino/schema_pb.js"; +import { file_camino_schema } from "../camino/schema_pb.js"; import type { PackageDescriptor } from "./package_pb.js"; import { file_quixos_package } from "./package_pb.js"; import type { CapabilityRef, ConformanceWitness, PackageExportRef } from "./refs_pb.js"; @@ -18,7 +20,54 @@ import type { Message } from "@bufbuild/protobuf"; * Describes the file quixos/orch.proto. */ export const file_quixos_orch: GenFile = /*@__PURE__*/ - fileDesc("ChFxdWl4b3Mvb3JjaC5wcm90bxILcXVpeG9zLm9yY2giRQoRVHJ5Q29uZm9ybVJlcXVlc3QSEQoJb2JqZWN0X2lkGAEgASgJEh0KFWludGVyZmFjZV9yZXZpc2lvbl9pZBgCIAEoCSJFChJUcnlDb25mb3JtUmVzcG9uc2USLwoLY29uZm9ybWFuY2UYASABKAsyGi5xdWl4b3MuQ29uZm9ybWFuY2VXaXRuZXNzIqUBChZDb25zdHJ1Y3RPYmplY3RSZXF1ZXN0Eg8KB2F0b21faWQYASABKAkSPQoFaW5wdXQYAiADKAsyLi5xdWl4b3Mub3JjaC5Db25zdHJ1Y3RPYmplY3RSZXF1ZXN0LklucHV0RW50cnkaOwoKSW5wdXRFbnRyeRILCgNrZXkYASABKAkSHAoFdmFsdWUYAiABKAsyDS5jYW1pbm8uVmFsdWU6AjgBIj8KF0NvbnN0cnVjdE9iamVjdFJlc3BvbnNlEiQKBm9iamVjdBgBIAEoCzIULmNhbWluby5DYW1pbm9PYmplY3QibQomUmVzb2x2ZU9yQ29uc3RydWN0UmVsYXRlZE9iamVjdFJlcXVlc3QSEQoJb2JqZWN0X2lkGAEgASgJEh0KFWludGVyZmFjZV9yZXZpc2lvbl9pZBgCIAEoCRIRCgltZW1iZXJfaWQYAyABKAkiZAonUmVzb2x2ZU9yQ29uc3RydWN0UmVsYXRlZE9iamVjdFJlc3BvbnNlEiQKBm9iamVjdBgBIAEoCzIULmNhbWluby5DYW1pbm9PYmplY3QSEwoLY29uc3RydWN0ZWQYAiABKAgi8AEKF0ludm9rZUNhcGFiaWxpdHlSZXF1ZXN0EikKCmNhcGFiaWxpdHkYASABKAsyFS5xdWl4b3MuQ2FwYWJpbGl0eVJlZhIRCglvYmplY3RfaWQYAiABKAkSPgoFaW5wdXQYAyADKAsyLy5xdWl4b3Mub3JjaC5JbnZva2VDYXBhYmlsaXR5UmVxdWVzdC5JbnB1dEVudHJ5EhoKEmNsaWVudF9tdXRhdGlvbl9pZBgEIAEoCRo7CgpJbnB1dEVudHJ5EgsKA2tleRgBIAEoCRIcCgV2YWx1ZRgCIAEoCzINLmNhbWluby5WYWx1ZToCOAEizgEKHEludm9rZUNsYXNzQ2FwYWJpbGl0eVJlcXVlc3QSFgoOY29uZm9ybWFuY2VfaWQYASABKAkSFAoMb3BlcmF0aW9uX2lkGAIgASgJEkMKBWlucHV0GAMgAygLMjQucXVpeG9zLm9yY2guSW52b2tlQ2xhc3NDYXBhYmlsaXR5UmVxdWVzdC5JbnB1dEVudHJ5GjsKCklucHV0RW50cnkSCwoDa2V5GAEgASgJEhwKBXZhbHVlGAIgASgLMg0uY2FtaW5vLlZhbHVlOgI4ASKDAgoYSW52b2tlQ2FwYWJpbGl0eVJlc3BvbnNlEhUKDWludm9jYXRpb25faWQYASABKAkSKwoKYWN0aXZhdGlvbhgCIAEoCzIXLnF1aXhvcy5vcmNoLkFjdGl2YXRpb24SCgoCb2sYAyABKAgSHQoGcmVzdWx0GAQgASgLMg0uY2FtaW5vLlZhbHVlEg0KBWVycm9yGAUgASgJEjcKDGRlcGVuZGVuY2llcxgGIAMoCzIhLnF1aXhvcy5ydW50aW1lLkRlcml2ZWREZXBlbmRlbmN5EjAKDWZpZWxkX2VkaXRpbmcYByABKAsyGS5xdWl4b3Mub3JjaC5GaWVsZEVkaXRpbmcidwoMRmllbGRFZGl0aW5nEhsKE2dldHRlcl9vcGVyYXRpb25faWQYASABKAkSGwoTc2V0dGVyX29wZXJhdGlvbl9pZBgCIAEoCRIVCg1kb2N1bWVudF90eXBlGAMgASgJEhYKDmJpbmRpbmdfZGlnZXN0GAQgASgJIs4BChpFZGl0Q2FwYWJpbGl0eUZpZWxkUmVxdWVzdBIpCgpjYXBhYmlsaXR5GAEgASgLMhUucXVpeG9zLkNhcGFiaWxpdHlSZWYSEQoJb2JqZWN0X2lkGAIgASgJEhsKE3NldHRlcl9vcGVyYXRpb25faWQYAyABKAkSFgoOYmluZGluZ19kaWdlc3QYBCABKAkSIQoGdXBkYXRlGAUgASgLMhEuY2FtaW5vLkNyZHRWYWx1ZRIaChJjbGllbnRfbXV0YXRpb25faWQYBiABKAki0gEKFldhdGNoQ2FwYWJpbGl0eVJlcXVlc3QSKQoKY2FwYWJpbGl0eRgBIAEoCzIVLnF1aXhvcy5DYXBhYmlsaXR5UmVmEhEKCW9iamVjdF9pZBgCIAEoCRI9CgVpbnB1dBgDIAMoCzIuLnF1aXhvcy5vcmNoLldhdGNoQ2FwYWJpbGl0eVJlcXVlc3QuSW5wdXRFbnRyeRo7CgpJbnB1dEVudHJ5EgsKA2tleRgBIAEoCRIcCgV2YWx1ZRgCIAEoCzINLmNhbWluby5WYWx1ZToCOAEilQIKFFdhdGNoQ2FwYWJpbGl0eUV2ZW50EhUKDWludm9jYXRpb25faWQYASABKAkSKwoKYWN0aXZhdGlvbhgCIAEoCzIXLnF1aXhvcy5vcmNoLkFjdGl2YXRpb24SEAoId2F0Y2hfaWQYAyABKAkSHAoFdmFsdWUYBCABKAsyDS5jYW1pbm8uVmFsdWUSNwoMZGVwZW5kZW5jaWVzGAUgAygLMiEucXVpeG9zLnJ1bnRpbWUuRGVyaXZlZERlcGVuZGVuY3kSDQoFZXJyb3IYBiABKAkSDwoHaW5pdGlhbBgHIAEoCBIwCg1maWVsZF9lZGl0aW5nGAggASgLMhkucXVpeG9zLm9yY2guRmllbGRFZGl0aW5nIjoKE0dldFdvcmtzcGFjZVJlcXVlc3QSIwobaW5jbHVkZV9pbnRlcmZhY2VfY29udHJhY3RzGAEgASgIIuoCChRHZXRXb3Jrc3BhY2VSZXNwb25zZRIUCgx3b3Jrc3BhY2VfaWQYASABKAkSHQoVd29ya3NwYWNlX3JldmlzaW9uX2lkGAIgASgJEhoKEnNvdXJjZV9yb290X2NvbW1pdBgDIAEoCRIqCiJlbXB0eV9pbnB1dF9jb25zdHJ1Y3RpYmxlX2F0b21faWRzGAQgAygJEj8KEWNhcGFiaWxpdHlfaW5wdXRzGAUgAygLMiQucXVpeG9zLm9yY2guQ2FwYWJpbGl0eUlucHV0Q29udHJhY3QSQQoSY29uc3RydWN0b3JfaW5wdXRzGAYgAygLMiUucXVpeG9zLm9yY2guQ29uc3RydWN0b3JJbnB1dENvbnRyYWN0EhcKD2ludGVyZmFjZXNfanNvbhgHIAEoCRI4ChJjbGFzc19jYXBhYmlsaXRpZXMYCCADKAsyHC5xdWl4b3Mub3JjaC5DbGFzc0NhcGFiaWxpdHkiuQEKD0NsYXNzQ2FwYWJpbGl0eRIWCg5jb25mb3JtYW5jZV9pZBgBIAEoCRIPCgdhdG9tX2lkGAIgASgJEh0KFWludGVyZmFjZV9yZXZpc2lvbl9pZBgDIAEoCRIVCg1kZWZpbml0aW9uX2lkGAQgASgJEhQKDG9wZXJhdGlvbl9pZBgFIAEoCRIXCg9pbnB1dF90eXBlX2pzb24YBiABKAkSGAoQb3V0cHV0X3R5cGVfanNvbhgHIAEoCSJhChdDYXBhYmlsaXR5SW5wdXRDb250cmFjdBIdChVpbnRlcmZhY2VfcmV2aXNpb25faWQYASABKAkSFAoMb3BlcmF0aW9uX2lkGAIgASgJEhEKCXR5cGVfanNvbhgDIAEoCSI+ChhDb25zdHJ1Y3RvcklucHV0Q29udHJhY3QSDwoHYXRvbV9pZBgBIAEoCRIRCgl0eXBlX2pzb24YAiABKAkiGAoWTGlzdEFjdGl2YXRpb25zUmVxdWVzdCIfCh1MaXN0UGFja2FnZURlc2NyaXB0b3JzUmVxdWVzdCJQCh5MaXN0UGFja2FnZURlc2NyaXB0b3JzUmVzcG9uc2USLgoLZGVzY3JpcHRvcnMYASADKAsyGS5xdWl4b3MuUGFja2FnZURlc2NyaXB0b3IiHAoaTGlzdFBhY2thZ2VSdW50aW1lc1JlcXVlc3QiUgobTGlzdFBhY2thZ2VSdW50aW1lc1Jlc3BvbnNlEjMKCHJ1bnRpbWVzGAEgAygLMiEucXVpeG9zLm9yY2guUGFja2FnZVJ1bnRpbWVTdGF0dXMiRwoXTGlzdEFjdGl2YXRpb25zUmVzcG9uc2USLAoLYWN0aXZhdGlvbnMYASADKAsyFy5xdWl4b3Mub3JjaC5BY3RpdmF0aW9uIj8KFkNsb3NlQWN0aXZhdGlvblJlcXVlc3QSFQoNYWN0aXZhdGlvbl9pZBgBIAEoCRIOCgZyZWFzb24YAiABKAkiRgoXQ2xvc2VBY3RpdmF0aW9uUmVzcG9uc2USKwoKYWN0aXZhdGlvbhgBIAEoCzIXLnF1aXhvcy5vcmNoLkFjdGl2YXRpb24i6wEKCkFjdGl2YXRpb24SFQoNYWN0aXZhdGlvbl9pZBgBIAEoCRIoCgZleHBvcnQYAiABKAsyGC5xdWl4b3MuUGFja2FnZUV4cG9ydFJlZhIRCglvYmplY3RfaWQYAyABKAkSDQoFc3RhdGUYBCABKAkSDgoGZGVtYW5kGAUgASgNEhEKCW9wZW5lZF9hdBgGIAEoCRIUCgxsYXN0X3VzZWRfYXQYByABKAkSGAoQaWRsZV9kZWFkbGluZV9hdBgIIAEoCRIRCgljbG9zZWRfYXQYCSABKAkSFAoMY2xvc2VfcmVhc29uGAogASgJIrMCChRQYWNrYWdlUnVudGltZVN0YXR1cxITCgtydW50aW1lX2tleRgBIAEoCRIbChNwYWNrYWdlX3JldmlzaW9uX2lkGAIgASgJEhkKEXNvdXJjZV9yZXBvc2l0b3J5GAMgASgJEhUKDXNvdXJjZV9jb21taXQYBCABKAkSFAoMYnVpbGRfdGFyZ2V0GAUgASgJEhMKC3NlcnZlcl9wYXRoGAYgASgJEgsKA3BpZBgHIAEoDRINCgVzdGF0ZRgIIAEoCRISCgpzdGFydGVkX2F0GAkgASgJEhkKEWxhc3RfaGFuZHNoYWtlX2F0GAogASgJEiAKGHJ1bnRpbWVfcHJvdG9jb2xfdmVyc2lvbhgLIAEoCRIfChdhZHZlcnRpc2VkX2V4cG9ydF9jb3VudBgMIAEoDTLPCQoTT3JjaGVzdHJhdG9yUnVudGltZRJNCgpUcnlDb25mb3JtEh4ucXVpeG9zLm9yY2guVHJ5Q29uZm9ybVJlcXVlc3QaHy5xdWl4b3Mub3JjaC5UcnlDb25mb3JtUmVzcG9uc2USXwoQSW52b2tlQ2FwYWJpbGl0eRIkLnF1aXhvcy5vcmNoLkludm9rZUNhcGFiaWxpdHlSZXF1ZXN0GiUucXVpeG9zLm9yY2guSW52b2tlQ2FwYWJpbGl0eVJlc3BvbnNlEmUKE0VkaXRDYXBhYmlsaXR5RmllbGQSJy5xdWl4b3Mub3JjaC5FZGl0Q2FwYWJpbGl0eUZpZWxkUmVxdWVzdBolLnF1aXhvcy5vcmNoLkludm9rZUNhcGFiaWxpdHlSZXNwb25zZRJpChVJbnZva2VDbGFzc0NhcGFiaWxpdHkSKS5xdWl4b3Mub3JjaC5JbnZva2VDbGFzc0NhcGFiaWxpdHlSZXF1ZXN0GiUucXVpeG9zLm9yY2guSW52b2tlQ2FwYWJpbGl0eVJlc3BvbnNlElsKD1dhdGNoQ2FwYWJpbGl0eRIjLnF1aXhvcy5vcmNoLldhdGNoQ2FwYWJpbGl0eVJlcXVlc3QaIS5xdWl4b3Mub3JjaC5XYXRjaENhcGFiaWxpdHlFdmVudDABElwKD0NvbnN0cnVjdE9iamVjdBIjLnF1aXhvcy5vcmNoLkNvbnN0cnVjdE9iamVjdFJlcXVlc3QaJC5xdWl4b3Mub3JjaC5Db25zdHJ1Y3RPYmplY3RSZXNwb25zZRKMAQofUmVzb2x2ZU9yQ29uc3RydWN0UmVsYXRlZE9iamVjdBIzLnF1aXhvcy5vcmNoLlJlc29sdmVPckNvbnN0cnVjdFJlbGF0ZWRPYmplY3RSZXF1ZXN0GjQucXVpeG9zLm9yY2guUmVzb2x2ZU9yQ29uc3RydWN0UmVsYXRlZE9iamVjdFJlc3BvbnNlElMKDEdldFdvcmtzcGFjZRIgLnF1aXhvcy5vcmNoLkdldFdvcmtzcGFjZVJlcXVlc3QaIS5xdWl4b3Mub3JjaC5HZXRXb3Jrc3BhY2VSZXNwb25zZRJxChZMaXN0UGFja2FnZURlc2NyaXB0b3JzEioucXVpeG9zLm9yY2guTGlzdFBhY2thZ2VEZXNjcmlwdG9yc1JlcXVlc3QaKy5xdWl4b3Mub3JjaC5MaXN0UGFja2FnZURlc2NyaXB0b3JzUmVzcG9uc2USaAoTTGlzdFBhY2thZ2VSdW50aW1lcxInLnF1aXhvcy5vcmNoLkxpc3RQYWNrYWdlUnVudGltZXNSZXF1ZXN0GigucXVpeG9zLm9yY2guTGlzdFBhY2thZ2VSdW50aW1lc1Jlc3BvbnNlElwKD0xpc3RBY3RpdmF0aW9ucxIjLnF1aXhvcy5vcmNoLkxpc3RBY3RpdmF0aW9uc1JlcXVlc3QaJC5xdWl4b3Mub3JjaC5MaXN0QWN0aXZhdGlvbnNSZXNwb25zZRJcCg9DbG9zZUFjdGl2YXRpb24SIy5xdWl4b3Mub3JjaC5DbG9zZUFjdGl2YXRpb25SZXF1ZXN0GiQucXVpeG9zLm9yY2guQ2xvc2VBY3RpdmF0aW9uUmVzcG9uc2ViBnByb3RvMw", [file_camino_api, file_quixos_package, file_quixos_refs, file_quixos_runtime]); + fileDesc("ChFxdWl4b3Mvb3JjaC5wcm90bxILcXVpeG9zLm9yY2gitwEKClF1ZXJ5RXZlbnQSDgoGcnVuX2lkGAEgASgJEhAKCHNlcXVlbmNlGAIgASgEEgwKBGtpbmQYAyABKAkSJwoIc25hcHNob3QYBCABKAsyFS5jYW1pbm8uUXVlcnlSZXNwb25zZRIjCgRwYXRoGAUgAygLMhUuY2FtaW5vLlF1ZXJ5UGF0aFBhcnQSHAoFdmFsdWUYBiABKAsyDS5jYW1pbm8uVmFsdWUSDQoFZXJyb3IYByABKAkiRQoRVHJ5Q29uZm9ybVJlcXVlc3QSEQoJb2JqZWN0X2lkGAEgASgJEh0KFWludGVyZmFjZV9yZXZpc2lvbl9pZBgCIAEoCSJFChJUcnlDb25mb3JtUmVzcG9uc2USLwoLY29uZm9ybWFuY2UYASABKAsyGi5xdWl4b3MuQ29uZm9ybWFuY2VXaXRuZXNzIqUBChZDb25zdHJ1Y3RPYmplY3RSZXF1ZXN0Eg8KB2F0b21faWQYASABKAkSPQoFaW5wdXQYAiADKAsyLi5xdWl4b3Mub3JjaC5Db25zdHJ1Y3RPYmplY3RSZXF1ZXN0LklucHV0RW50cnkaOwoKSW5wdXRFbnRyeRILCgNrZXkYASABKAkSHAoFdmFsdWUYAiABKAsyDS5jYW1pbm8uVmFsdWU6AjgBIj8KF0NvbnN0cnVjdE9iamVjdFJlc3BvbnNlEiQKBm9iamVjdBgBIAEoCzIULmNhbWluby5DYW1pbm9PYmplY3QibQomUmVzb2x2ZU9yQ29uc3RydWN0UmVsYXRlZE9iamVjdFJlcXVlc3QSEQoJb2JqZWN0X2lkGAEgASgJEh0KFWludGVyZmFjZV9yZXZpc2lvbl9pZBgCIAEoCRIRCgltZW1iZXJfaWQYAyABKAkiZAonUmVzb2x2ZU9yQ29uc3RydWN0UmVsYXRlZE9iamVjdFJlc3BvbnNlEiQKBm9iamVjdBgBIAEoCzIULmNhbWluby5DYW1pbm9PYmplY3QSEwoLY29uc3RydWN0ZWQYAiABKAgi8AEKF0ludm9rZUNhcGFiaWxpdHlSZXF1ZXN0EikKCmNhcGFiaWxpdHkYASABKAsyFS5xdWl4b3MuQ2FwYWJpbGl0eVJlZhIRCglvYmplY3RfaWQYAiABKAkSPgoFaW5wdXQYAyADKAsyLy5xdWl4b3Mub3JjaC5JbnZva2VDYXBhYmlsaXR5UmVxdWVzdC5JbnB1dEVudHJ5EhoKEmNsaWVudF9tdXRhdGlvbl9pZBgEIAEoCRo7CgpJbnB1dEVudHJ5EgsKA2tleRgBIAEoCRIcCgV2YWx1ZRgCIAEoCzINLmNhbWluby5WYWx1ZToCOAEizgEKHEludm9rZUNsYXNzQ2FwYWJpbGl0eVJlcXVlc3QSFgoOY29uZm9ybWFuY2VfaWQYASABKAkSFAoMb3BlcmF0aW9uX2lkGAIgASgJEkMKBWlucHV0GAMgAygLMjQucXVpeG9zLm9yY2guSW52b2tlQ2xhc3NDYXBhYmlsaXR5UmVxdWVzdC5JbnB1dEVudHJ5GjsKCklucHV0RW50cnkSCwoDa2V5GAEgASgJEhwKBXZhbHVlGAIgASgLMg0uY2FtaW5vLlZhbHVlOgI4ASKDAgoYSW52b2tlQ2FwYWJpbGl0eVJlc3BvbnNlEhUKDWludm9jYXRpb25faWQYASABKAkSKwoKYWN0aXZhdGlvbhgCIAEoCzIXLnF1aXhvcy5vcmNoLkFjdGl2YXRpb24SCgoCb2sYAyABKAgSHQoGcmVzdWx0GAQgASgLMg0uY2FtaW5vLlZhbHVlEg0KBWVycm9yGAUgASgJEjcKDGRlcGVuZGVuY2llcxgGIAMoCzIhLnF1aXhvcy5ydW50aW1lLkRlcml2ZWREZXBlbmRlbmN5EjAKDWZpZWxkX2VkaXRpbmcYByABKAsyGS5xdWl4b3Mub3JjaC5GaWVsZEVkaXRpbmcidwoMRmllbGRFZGl0aW5nEhsKE2dldHRlcl9vcGVyYXRpb25faWQYASABKAkSGwoTc2V0dGVyX29wZXJhdGlvbl9pZBgCIAEoCRIVCg1kb2N1bWVudF90eXBlGAMgASgJEhYKDmJpbmRpbmdfZGlnZXN0GAQgASgJIs4BChpFZGl0Q2FwYWJpbGl0eUZpZWxkUmVxdWVzdBIpCgpjYXBhYmlsaXR5GAEgASgLMhUucXVpeG9zLkNhcGFiaWxpdHlSZWYSEQoJb2JqZWN0X2lkGAIgASgJEhsKE3NldHRlcl9vcGVyYXRpb25faWQYAyABKAkSFgoOYmluZGluZ19kaWdlc3QYBCABKAkSIQoGdXBkYXRlGAUgASgLMhEuY2FtaW5vLkNyZHRWYWx1ZRIaChJjbGllbnRfbXV0YXRpb25faWQYBiABKAki0gEKFldhdGNoQ2FwYWJpbGl0eVJlcXVlc3QSKQoKY2FwYWJpbGl0eRgBIAEoCzIVLnF1aXhvcy5DYXBhYmlsaXR5UmVmEhEKCW9iamVjdF9pZBgCIAEoCRI9CgVpbnB1dBgDIAMoCzIuLnF1aXhvcy5vcmNoLldhdGNoQ2FwYWJpbGl0eVJlcXVlc3QuSW5wdXRFbnRyeRo7CgpJbnB1dEVudHJ5EgsKA2tleRgBIAEoCRIcCgV2YWx1ZRgCIAEoCzINLmNhbWluby5WYWx1ZToCOAEilQIKFFdhdGNoQ2FwYWJpbGl0eUV2ZW50EhUKDWludm9jYXRpb25faWQYASABKAkSKwoKYWN0aXZhdGlvbhgCIAEoCzIXLnF1aXhvcy5vcmNoLkFjdGl2YXRpb24SEAoId2F0Y2hfaWQYAyABKAkSHAoFdmFsdWUYBCABKAsyDS5jYW1pbm8uVmFsdWUSNwoMZGVwZW5kZW5jaWVzGAUgAygLMiEucXVpeG9zLnJ1bnRpbWUuRGVyaXZlZERlcGVuZGVuY3kSDQoFZXJyb3IYBiABKAkSDwoHaW5pdGlhbBgHIAEoCBIwCg1maWVsZF9lZGl0aW5nGAggASgLMhkucXVpeG9zLm9yY2guRmllbGRFZGl0aW5nIlsKE0dldFdvcmtzcGFjZVJlcXVlc3QSIwobaW5jbHVkZV9pbnRlcmZhY2VfY29udHJhY3RzGAEgASgIEh8KF2luY2x1ZGVfcXVlcnlfY29udHJhY3RzGAIgASgIIrsDChRHZXRXb3Jrc3BhY2VSZXNwb25zZRIUCgx3b3Jrc3BhY2VfaWQYASABKAkSHQoVd29ya3NwYWNlX3JldmlzaW9uX2lkGAIgASgJEhoKEnNvdXJjZV9yb290X2NvbW1pdBgDIAEoCRIqCiJlbXB0eV9pbnB1dF9jb25zdHJ1Y3RpYmxlX2F0b21faWRzGAQgAygJEj8KEWNhcGFiaWxpdHlfaW5wdXRzGAUgAygLMiQucXVpeG9zLm9yY2guQ2FwYWJpbGl0eUlucHV0Q29udHJhY3QSQQoSY29uc3RydWN0b3JfaW5wdXRzGAYgAygLMiUucXVpeG9zLm9yY2guQ29uc3RydWN0b3JJbnB1dENvbnRyYWN0EhcKD2ludGVyZmFjZXNfanNvbhgHIAEoCRI4ChJjbGFzc19jYXBhYmlsaXRpZXMYCCADKAsyHC5xdWl4b3Mub3JjaC5DbGFzc0NhcGFiaWxpdHkSLgoHcXVlcmllcxgJIAMoCzIdLnF1aXhvcy5vcmNoLlF1ZXJ5RGVzY3JpcHRpb24SHwoXYWN0aXZlX3F1ZXJ5X2V4ZWN1dGlvbnMYCiABKA0ivQEKEFF1ZXJ5RGVzY3JpcHRpb24SCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIbChNwYWNrYWdlX3JldmlzaW9uX2lkGAMgASgJEhAKCGRvY3VtZW50GAQgASgJEg4KBnNjaGVtYRgFIAEoCRIUCgxzb3VyY2VfZmlsZXMYBiADKAkSFAoMZWZmZWN0c19qc29uGAcgASgJEiQKBHBsYW4YCCABKAsyFi5jYW1pbm8uSW5zdGFsbGVkUXVlcnkiuQEKD0NsYXNzQ2FwYWJpbGl0eRIWCg5jb25mb3JtYW5jZV9pZBgBIAEoCRIPCgdhdG9tX2lkGAIgASgJEh0KFWludGVyZmFjZV9yZXZpc2lvbl9pZBgDIAEoCRIVCg1kZWZpbml0aW9uX2lkGAQgASgJEhQKDG9wZXJhdGlvbl9pZBgFIAEoCRIXCg9pbnB1dF90eXBlX2pzb24YBiABKAkSGAoQb3V0cHV0X3R5cGVfanNvbhgHIAEoCSJhChdDYXBhYmlsaXR5SW5wdXRDb250cmFjdBIdChVpbnRlcmZhY2VfcmV2aXNpb25faWQYASABKAkSFAoMb3BlcmF0aW9uX2lkGAIgASgJEhEKCXR5cGVfanNvbhgDIAEoCSI+ChhDb25zdHJ1Y3RvcklucHV0Q29udHJhY3QSDwoHYXRvbV9pZBgBIAEoCRIRCgl0eXBlX2pzb24YAiABKAkiGAoWTGlzdEFjdGl2YXRpb25zUmVxdWVzdCIfCh1MaXN0UGFja2FnZURlc2NyaXB0b3JzUmVxdWVzdCJQCh5MaXN0UGFja2FnZURlc2NyaXB0b3JzUmVzcG9uc2USLgoLZGVzY3JpcHRvcnMYASADKAsyGS5xdWl4b3MuUGFja2FnZURlc2NyaXB0b3IiHAoaTGlzdFBhY2thZ2VSdW50aW1lc1JlcXVlc3QiUgobTGlzdFBhY2thZ2VSdW50aW1lc1Jlc3BvbnNlEjMKCHJ1bnRpbWVzGAEgAygLMiEucXVpeG9zLm9yY2guUGFja2FnZVJ1bnRpbWVTdGF0dXMiRwoXTGlzdEFjdGl2YXRpb25zUmVzcG9uc2USLAoLYWN0aXZhdGlvbnMYASADKAsyFy5xdWl4b3Mub3JjaC5BY3RpdmF0aW9uIj8KFkNsb3NlQWN0aXZhdGlvblJlcXVlc3QSFQoNYWN0aXZhdGlvbl9pZBgBIAEoCRIOCgZyZWFzb24YAiABKAkiRgoXQ2xvc2VBY3RpdmF0aW9uUmVzcG9uc2USKwoKYWN0aXZhdGlvbhgBIAEoCzIXLnF1aXhvcy5vcmNoLkFjdGl2YXRpb24i6wEKCkFjdGl2YXRpb24SFQoNYWN0aXZhdGlvbl9pZBgBIAEoCRIoCgZleHBvcnQYAiABKAsyGC5xdWl4b3MuUGFja2FnZUV4cG9ydFJlZhIRCglvYmplY3RfaWQYAyABKAkSDQoFc3RhdGUYBCABKAkSDgoGZGVtYW5kGAUgASgNEhEKCW9wZW5lZF9hdBgGIAEoCRIUCgxsYXN0X3VzZWRfYXQYByABKAkSGAoQaWRsZV9kZWFkbGluZV9hdBgIIAEoCRIRCgljbG9zZWRfYXQYCSABKAkSFAoMY2xvc2VfcmVhc29uGAogASgJIrMCChRQYWNrYWdlUnVudGltZVN0YXR1cxITCgtydW50aW1lX2tleRgBIAEoCRIbChNwYWNrYWdlX3JldmlzaW9uX2lkGAIgASgJEhkKEXNvdXJjZV9yZXBvc2l0b3J5GAMgASgJEhUKDXNvdXJjZV9jb21taXQYBCABKAkSFAoMYnVpbGRfdGFyZ2V0GAUgASgJEhMKC3NlcnZlcl9wYXRoGAYgASgJEgsKA3BpZBgHIAEoDRINCgVzdGF0ZRgIIAEoCRISCgpzdGFydGVkX2F0GAkgASgJEhkKEWxhc3RfaGFuZHNoYWtlX2F0GAogASgJEiAKGHJ1bnRpbWVfcHJvdG9jb2xfdmVyc2lvbhgLIAEoCRIfChdhZHZlcnRpc2VkX2V4cG9ydF9jb3VudBgMIAEoDTLLCgoTT3JjaGVzdHJhdG9yUnVudGltZRI7CgxFeGVjdXRlUXVlcnkSFC5jYW1pbm8uUXVlcnlSZXF1ZXN0GhUuY2FtaW5vLlF1ZXJ5UmVzcG9uc2USPQoKV2F0Y2hRdWVyeRIULmNhbWluby5RdWVyeVJlcXVlc3QaFy5xdWl4b3Mub3JjaC5RdWVyeUV2ZW50MAESTQoKVHJ5Q29uZm9ybRIeLnF1aXhvcy5vcmNoLlRyeUNvbmZvcm1SZXF1ZXN0Gh8ucXVpeG9zLm9yY2guVHJ5Q29uZm9ybVJlc3BvbnNlEl8KEEludm9rZUNhcGFiaWxpdHkSJC5xdWl4b3Mub3JjaC5JbnZva2VDYXBhYmlsaXR5UmVxdWVzdBolLnF1aXhvcy5vcmNoLkludm9rZUNhcGFiaWxpdHlSZXNwb25zZRJlChNFZGl0Q2FwYWJpbGl0eUZpZWxkEicucXVpeG9zLm9yY2guRWRpdENhcGFiaWxpdHlGaWVsZFJlcXVlc3QaJS5xdWl4b3Mub3JjaC5JbnZva2VDYXBhYmlsaXR5UmVzcG9uc2USaQoVSW52b2tlQ2xhc3NDYXBhYmlsaXR5EikucXVpeG9zLm9yY2guSW52b2tlQ2xhc3NDYXBhYmlsaXR5UmVxdWVzdBolLnF1aXhvcy5vcmNoLkludm9rZUNhcGFiaWxpdHlSZXNwb25zZRJbCg9XYXRjaENhcGFiaWxpdHkSIy5xdWl4b3Mub3JjaC5XYXRjaENhcGFiaWxpdHlSZXF1ZXN0GiEucXVpeG9zLm9yY2guV2F0Y2hDYXBhYmlsaXR5RXZlbnQwARJcCg9Db25zdHJ1Y3RPYmplY3QSIy5xdWl4b3Mub3JjaC5Db25zdHJ1Y3RPYmplY3RSZXF1ZXN0GiQucXVpeG9zLm9yY2guQ29uc3RydWN0T2JqZWN0UmVzcG9uc2USjAEKH1Jlc29sdmVPckNvbnN0cnVjdFJlbGF0ZWRPYmplY3QSMy5xdWl4b3Mub3JjaC5SZXNvbHZlT3JDb25zdHJ1Y3RSZWxhdGVkT2JqZWN0UmVxdWVzdBo0LnF1aXhvcy5vcmNoLlJlc29sdmVPckNvbnN0cnVjdFJlbGF0ZWRPYmplY3RSZXNwb25zZRJTCgxHZXRXb3Jrc3BhY2USIC5xdWl4b3Mub3JjaC5HZXRXb3Jrc3BhY2VSZXF1ZXN0GiEucXVpeG9zLm9yY2guR2V0V29ya3NwYWNlUmVzcG9uc2UScQoWTGlzdFBhY2thZ2VEZXNjcmlwdG9ycxIqLnF1aXhvcy5vcmNoLkxpc3RQYWNrYWdlRGVzY3JpcHRvcnNSZXF1ZXN0GisucXVpeG9zLm9yY2guTGlzdFBhY2thZ2VEZXNjcmlwdG9yc1Jlc3BvbnNlEmgKE0xpc3RQYWNrYWdlUnVudGltZXMSJy5xdWl4b3Mub3JjaC5MaXN0UGFja2FnZVJ1bnRpbWVzUmVxdWVzdBooLnF1aXhvcy5vcmNoLkxpc3RQYWNrYWdlUnVudGltZXNSZXNwb25zZRJcCg9MaXN0QWN0aXZhdGlvbnMSIy5xdWl4b3Mub3JjaC5MaXN0QWN0aXZhdGlvbnNSZXF1ZXN0GiQucXVpeG9zLm9yY2guTGlzdEFjdGl2YXRpb25zUmVzcG9uc2USXAoPQ2xvc2VBY3RpdmF0aW9uEiMucXVpeG9zLm9yY2guQ2xvc2VBY3RpdmF0aW9uUmVxdWVzdBokLnF1aXhvcy5vcmNoLkNsb3NlQWN0aXZhdGlvblJlc3BvbnNlYgZwcm90bzM", [file_camino_api, file_camino_schema, file_quixos_package, file_quixos_refs, file_quixos_runtime]); + +/** + * @generated from message quixos.orch.QueryEvent + */ +export type QueryEvent = Message<"quixos.orch.QueryEvent"> & { + /** + * @generated from field: string run_id = 1; + */ + runId: string; + + /** + * @generated from field: uint64 sequence = 2; + */ + sequence: bigint; + + /** + * @generated from field: string kind = 3; + */ + kind: string; + + /** + * @generated from field: camino.QueryResponse snapshot = 4; + */ + snapshot?: QueryResponse | undefined; + + /** + * @generated from field: repeated camino.QueryPathPart path = 5; + */ + path: QueryPathPart[]; + + /** + * @generated from field: camino.Value value = 6; + */ + value?: Value | undefined; + + /** + * @generated from field: string error = 7; + */ + error: string; +}; + +/** + * Describes the message quixos.orch.QueryEvent. + * Use `create(QueryEventSchema)` to create a new message. + */ +export const QueryEventSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_quixos_orch, 0); /** * Exact closed interface lookup; no policy selection or competing conformances. @@ -42,7 +91,7 @@ export type TryConformRequest = Message<"quixos.orch.TryConformRequest"> & { * Use `create(TryConformRequestSchema)` to create a new message. */ export const TryConformRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_quixos_orch, 0); + messageDesc(file_quixos_orch, 1); /** * @generated from message quixos.orch.TryConformResponse @@ -61,7 +110,7 @@ export type TryConformResponse = Message<"quixos.orch.TryConformResponse"> & { * Use `create(TryConformResponseSchema)` to create a new message. */ export const TryConformResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_quixos_orch, 1); + messageDesc(file_quixos_orch, 2); /** * @generated from message quixos.orch.ConstructObjectRequest @@ -83,7 +132,7 @@ export type ConstructObjectRequest = Message<"quixos.orch.ConstructObjectRequest * Use `create(ConstructObjectRequestSchema)` to create a new message. */ export const ConstructObjectRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_quixos_orch, 2); + messageDesc(file_quixos_orch, 3); /** * @generated from message quixos.orch.ConstructObjectResponse @@ -100,7 +149,7 @@ export type ConstructObjectResponse = Message<"quixos.orch.ConstructObjectRespon * Use `create(ConstructObjectResponseSchema)` to create a new message. */ export const ConstructObjectResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_quixos_orch, 3); + messageDesc(file_quixos_orch, 4); /** * @generated from message quixos.orch.ResolveOrConstructRelatedObjectRequest @@ -127,7 +176,7 @@ export type ResolveOrConstructRelatedObjectRequest = Message<"quixos.orch.Resolv * Use `create(ResolveOrConstructRelatedObjectRequestSchema)` to create a new message. */ export const ResolveOrConstructRelatedObjectRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_quixos_orch, 4); + messageDesc(file_quixos_orch, 5); /** * @generated from message quixos.orch.ResolveOrConstructRelatedObjectResponse @@ -149,7 +198,7 @@ export type ResolveOrConstructRelatedObjectResponse = Message<"quixos.orch.Resol * Use `create(ResolveOrConstructRelatedObjectResponseSchema)` to create a new message. */ export const ResolveOrConstructRelatedObjectResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_quixos_orch, 5); + messageDesc(file_quixos_orch, 6); /** * @generated from message quixos.orch.InvokeCapabilityRequest @@ -184,7 +233,7 @@ export type InvokeCapabilityRequest = Message<"quixos.orch.InvokeCapabilityReque * Use `create(InvokeCapabilityRequestSchema)` to create a new message. */ export const InvokeCapabilityRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_quixos_orch, 6); + messageDesc(file_quixos_orch, 7); /** * @generated from message quixos.orch.InvokeClassCapabilityRequest @@ -211,7 +260,7 @@ export type InvokeClassCapabilityRequest = Message<"quixos.orch.InvokeClassCapab * Use `create(InvokeClassCapabilityRequestSchema)` to create a new message. */ export const InvokeClassCapabilityRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_quixos_orch, 7); + messageDesc(file_quixos_orch, 8); /** * @generated from message quixos.orch.InvokeCapabilityResponse @@ -258,7 +307,7 @@ export type InvokeCapabilityResponse = Message<"quixos.orch.InvokeCapabilityResp * Use `create(InvokeCapabilityResponseSchema)` to create a new message. */ export const InvokeCapabilityResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_quixos_orch, 8); + messageDesc(file_quixos_orch, 9); /** * Resolved from the checked native getter/setter binding, not Value.source. @@ -292,7 +341,7 @@ export type FieldEditing = Message<"quixos.orch.FieldEditing"> & { * Use `create(FieldEditingSchema)` to create a new message. */ export const FieldEditingSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_quixos_orch, 9); + messageDesc(file_quixos_orch, 10); /** * @generated from message quixos.orch.EditCapabilityFieldRequest @@ -336,7 +385,7 @@ export type EditCapabilityFieldRequest = Message<"quixos.orch.EditCapabilityFiel * Use `create(EditCapabilityFieldRequestSchema)` to create a new message. */ export const EditCapabilityFieldRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_quixos_orch, 10); + messageDesc(file_quixos_orch, 11); /** * @generated from message quixos.orch.WatchCapabilityRequest @@ -363,7 +412,7 @@ export type WatchCapabilityRequest = Message<"quixos.orch.WatchCapabilityRequest * Use `create(WatchCapabilityRequestSchema)` to create a new message. */ export const WatchCapabilityRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_quixos_orch, 11); + messageDesc(file_quixos_orch, 12); /** * @generated from message quixos.orch.WatchCapabilityEvent @@ -415,7 +464,7 @@ export type WatchCapabilityEvent = Message<"quixos.orch.WatchCapabilityEvent"> & * Use `create(WatchCapabilityEventSchema)` to create a new message. */ export const WatchCapabilityEventSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_quixos_orch, 12); + messageDesc(file_quixos_orch, 13); /** * @generated from message quixos.orch.GetWorkspaceRequest @@ -427,6 +476,11 @@ export type GetWorkspaceRequest = Message<"quixos.orch.GetWorkspaceRequest"> & { * @generated from field: bool include_interface_contracts = 1; */ includeInterfaceContracts: boolean; + + /** + * @generated from field: bool include_query_contracts = 2; + */ + includeQueryContracts: boolean; }; /** @@ -434,7 +488,7 @@ export type GetWorkspaceRequest = Message<"quixos.orch.GetWorkspaceRequest"> & { * Use `create(GetWorkspaceRequestSchema)` to create a new message. */ export const GetWorkspaceRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_quixos_orch, 13); + messageDesc(file_quixos_orch, 14); /** * @generated from message quixos.orch.GetWorkspaceResponse @@ -484,6 +538,16 @@ export type GetWorkspaceResponse = Message<"quixos.orch.GetWorkspaceResponse"> & * @generated from field: repeated quixos.orch.ClassCapability class_capabilities = 8; */ classCapabilities: ClassCapability[]; + + /** + * @generated from field: repeated quixos.orch.QueryDescription queries = 9; + */ + queries: QueryDescription[]; + + /** + * @generated from field: uint32 active_query_executions = 10; + */ + activeQueryExecutions: number; }; /** @@ -491,7 +555,59 @@ export type GetWorkspaceResponse = Message<"quixos.orch.GetWorkspaceResponse"> & * Use `create(GetWorkspaceResponseSchema)` to create a new message. */ export const GetWorkspaceResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_quixos_orch, 14); + messageDesc(file_quixos_orch, 15); + +/** + * @generated from message quixos.orch.QueryDescription + */ +export type QueryDescription = Message<"quixos.orch.QueryDescription"> & { + /** + * @generated from field: string id = 1; + */ + id: string; + + /** + * @generated from field: string name = 2; + */ + name: string; + + /** + * @generated from field: string package_revision_id = 3; + */ + packageRevisionId: string; + + /** + * @generated from field: string document = 4; + */ + document: string; + + /** + * @generated from field: string schema = 5; + */ + schema: string; + + /** + * @generated from field: repeated string source_files = 6; + */ + sourceFiles: string[]; + + /** + * @generated from field: string effects_json = 7; + */ + effectsJson: string; + + /** + * @generated from field: camino.InstalledQuery plan = 8; + */ + plan?: InstalledQuery | undefined; +}; + +/** + * Describes the message quixos.orch.QueryDescription. + * Use `create(QueryDescriptionSchema)` to create a new message. + */ +export const QueryDescriptionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_quixos_orch, 16); /** * @generated from message quixos.orch.ClassCapability @@ -538,7 +654,7 @@ export type ClassCapability = Message<"quixos.orch.ClassCapability"> & { * Use `create(ClassCapabilitySchema)` to create a new message. */ export const ClassCapabilitySchema: GenMessage = /*@__PURE__*/ - messageDesc(file_quixos_orch, 15); + messageDesc(file_quixos_orch, 17); /** * @generated from message quixos.orch.CapabilityInputContract @@ -565,7 +681,7 @@ export type CapabilityInputContract = Message<"quixos.orch.CapabilityInputContra * Use `create(CapabilityInputContractSchema)` to create a new message. */ export const CapabilityInputContractSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_quixos_orch, 16); + messageDesc(file_quixos_orch, 18); /** * @generated from message quixos.orch.ConstructorInputContract @@ -587,7 +703,7 @@ export type ConstructorInputContract = Message<"quixos.orch.ConstructorInputCont * Use `create(ConstructorInputContractSchema)` to create a new message. */ export const ConstructorInputContractSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_quixos_orch, 17); + messageDesc(file_quixos_orch, 19); /** * @generated from message quixos.orch.ListActivationsRequest @@ -600,7 +716,7 @@ export type ListActivationsRequest = Message<"quixos.orch.ListActivationsRequest * Use `create(ListActivationsRequestSchema)` to create a new message. */ export const ListActivationsRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_quixos_orch, 18); + messageDesc(file_quixos_orch, 20); /** * @generated from message quixos.orch.ListPackageDescriptorsRequest @@ -613,7 +729,7 @@ export type ListPackageDescriptorsRequest = Message<"quixos.orch.ListPackageDesc * Use `create(ListPackageDescriptorsRequestSchema)` to create a new message. */ export const ListPackageDescriptorsRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_quixos_orch, 19); + messageDesc(file_quixos_orch, 21); /** * @generated from message quixos.orch.ListPackageDescriptorsResponse @@ -630,7 +746,7 @@ export type ListPackageDescriptorsResponse = Message<"quixos.orch.ListPackageDes * Use `create(ListPackageDescriptorsResponseSchema)` to create a new message. */ export const ListPackageDescriptorsResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_quixos_orch, 20); + messageDesc(file_quixos_orch, 22); /** * @generated from message quixos.orch.ListPackageRuntimesRequest @@ -643,7 +759,7 @@ export type ListPackageRuntimesRequest = Message<"quixos.orch.ListPackageRuntime * Use `create(ListPackageRuntimesRequestSchema)` to create a new message. */ export const ListPackageRuntimesRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_quixos_orch, 21); + messageDesc(file_quixos_orch, 23); /** * @generated from message quixos.orch.ListPackageRuntimesResponse @@ -660,7 +776,7 @@ export type ListPackageRuntimesResponse = Message<"quixos.orch.ListPackageRuntim * Use `create(ListPackageRuntimesResponseSchema)` to create a new message. */ export const ListPackageRuntimesResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_quixos_orch, 22); + messageDesc(file_quixos_orch, 24); /** * @generated from message quixos.orch.ListActivationsResponse @@ -677,7 +793,7 @@ export type ListActivationsResponse = Message<"quixos.orch.ListActivationsRespon * Use `create(ListActivationsResponseSchema)` to create a new message. */ export const ListActivationsResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_quixos_orch, 23); + messageDesc(file_quixos_orch, 25); /** * @generated from message quixos.orch.CloseActivationRequest @@ -699,7 +815,7 @@ export type CloseActivationRequest = Message<"quixos.orch.CloseActivationRequest * Use `create(CloseActivationRequestSchema)` to create a new message. */ export const CloseActivationRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_quixos_orch, 24); + messageDesc(file_quixos_orch, 26); /** * @generated from message quixos.orch.CloseActivationResponse @@ -716,7 +832,7 @@ export type CloseActivationResponse = Message<"quixos.orch.CloseActivationRespon * Use `create(CloseActivationResponseSchema)` to create a new message. */ export const CloseActivationResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_quixos_orch, 25); + messageDesc(file_quixos_orch, 27); /** * @generated from message quixos.orch.Activation @@ -778,7 +894,7 @@ export type Activation = Message<"quixos.orch.Activation"> & { * Use `create(ActivationSchema)` to create a new message. */ export const ActivationSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_quixos_orch, 26); + messageDesc(file_quixos_orch, 28); /** * @generated from message quixos.orch.PackageRuntimeStatus @@ -850,12 +966,28 @@ export type PackageRuntimeStatus = Message<"quixos.orch.PackageRuntimeStatus"> & * Use `create(PackageRuntimeStatusSchema)` to create a new message. */ export const PackageRuntimeStatusSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_quixos_orch, 27); + messageDesc(file_quixos_orch, 29); /** * @generated from service quixos.orch.OrchestratorRuntime */ export const OrchestratorRuntime: GenService<{ + /** + * @generated from rpc quixos.orch.OrchestratorRuntime.ExecuteQuery + */ + executeQuery: { + methodKind: "unary"; + input: typeof QueryRequestSchema; + output: typeof QueryResponseSchema; + }, + /** + * @generated from rpc quixos.orch.OrchestratorRuntime.WatchQuery + */ + watchQuery: { + methodKind: "server_streaming"; + input: typeof QueryRequestSchema; + output: typeof QueryEventSchema; + }, /** * @generated from rpc quixos.orch.OrchestratorRuntime.TryConform */ diff --git a/src/quixos/refs_pb.ts b/src/quixos/refs_pb.ts index 79f5cd0..402b4c9 100644 --- a/src/quixos/refs_pb.ts +++ b/src/quixos/refs_pb.ts @@ -10,7 +10,7 @@ import type { Message } from "@bufbuild/protobuf"; * Describes the file quixos/refs.proto. */ export const file_quixos_refs: GenFile = /*@__PURE__*/ - fileDesc("ChFxdWl4b3MvcmVmcy5wcm90bxIGcXVpeG9zInUKDUNhcGFiaWxpdHlSZWYSHQoVaW50ZXJmYWNlX3JldmlzaW9uX2lkGAEgASgJEhQKDG9wZXJhdGlvbl9pZBgCIAEoCRIvCgtjb25mb3JtYW5jZRgDIAEoCzIaLnF1aXhvcy5Db25mb3JtYW5jZVdpdG5lc3MilgEKEkNvbmZvcm1hbmNlV2l0bmVzcxIRCglvYmplY3RfaWQYASABKAkSHQoVaW50ZXJmYWNlX3JldmlzaW9uX2lkGAIgASgJEhYKDmNvbmZvcm1hbmNlX2lkGAMgASgJEh0KFXdvcmtzcGFjZV9yZXZpc2lvbl9pZBgEIAEoCRIXCg93b3Jrc3BhY2VfZXBvY2gYBSABKAkiQgoQUGFja2FnZUV4cG9ydFJlZhIbChNwYWNrYWdlX3JldmlzaW9uX2lkGAEgASgJEhEKCWV4cG9ydF9pZBgCIAEoCSLEAQoSSW5qZWN0ZWREZXBlbmRlbmN5Eg8KB3BvcnRfaWQYASABKAkSFwoNc3RhdGVfc2xvdF9pZBgCIAEoCUgAEiYKBGVkZ2UYAyABKAsyFi5xdWl4b3MuRWRnZURlcGVuZGVuY3lIABIfChVpbnRlcmZhY2VfcmV2aXNpb25faWQYBCABKAlIABIdChNjb25zdHJ1Y3Rvcl9hdG9tX2lkGAUgASgJSAASEQoJb2JqZWN0X2lkGAYgASgJQgkKB2JpbmRpbmciPQoORWRnZURlcGVuZGVuY3kSFAoMZWRnZV90eXBlX2lkGAEgASgJEhUKDXByb2plY3Rpb25faWQYAiABKAliBnByb3RvMw"); + fileDesc("ChFxdWl4b3MvcmVmcy5wcm90bxIGcXVpeG9zInUKDUNhcGFiaWxpdHlSZWYSHQoVaW50ZXJmYWNlX3JldmlzaW9uX2lkGAEgASgJEhQKDG9wZXJhdGlvbl9pZBgCIAEoCRIvCgtjb25mb3JtYW5jZRgDIAEoCzIaLnF1aXhvcy5Db25mb3JtYW5jZVdpdG5lc3MilgEKEkNvbmZvcm1hbmNlV2l0bmVzcxIRCglvYmplY3RfaWQYASABKAkSHQoVaW50ZXJmYWNlX3JldmlzaW9uX2lkGAIgASgJEhYKDmNvbmZvcm1hbmNlX2lkGAMgASgJEh0KFXdvcmtzcGFjZV9yZXZpc2lvbl9pZBgEIAEoCRIXCg93b3Jrc3BhY2VfZXBvY2gYBSABKAkiQgoQUGFja2FnZUV4cG9ydFJlZhIbChNwYWNrYWdlX3JldmlzaW9uX2lkGAEgASgJEhEKCWV4cG9ydF9pZBgCIAEoCSLYAQoSSW5qZWN0ZWREZXBlbmRlbmN5Eg8KB3BvcnRfaWQYASABKAkSFwoNc3RhdGVfc2xvdF9pZBgCIAEoCUgAEiYKBGVkZ2UYAyABKAsyFi5xdWl4b3MuRWRnZURlcGVuZGVuY3lIABIfChVpbnRlcmZhY2VfcmV2aXNpb25faWQYBCABKAlIABIdChNjb25zdHJ1Y3Rvcl9hdG9tX2lkGAUgASgJSAASEgoIcXVlcnlfaWQYByABKAlIABIRCglvYmplY3RfaWQYBiABKAlCCQoHYmluZGluZyI9Cg5FZGdlRGVwZW5kZW5jeRIUCgxlZGdlX3R5cGVfaWQYASABKAkSFQoNcHJvamVjdGlvbl9pZBgCIAEoCWIGcHJvdG8z"); /** * @generated from message quixos.CapabilityRef @@ -136,6 +136,12 @@ export type InjectedDependency = Message<"quixos.InjectedDependency"> & { */ value: string; case: "constructorAtomId"; + } | { + /** + * @generated from field: string query_id = 7; + */ + value: string; + case: "queryId"; } | { case: undefined; value?: undefined }; /** diff --git a/test/queries.test.mjs b/test/queries.test.mjs new file mode 100644 index 0000000..b7cf434 --- /dev/null +++ b/test/queries.test.mjs @@ -0,0 +1,55 @@ +import assert from "node:assert/strict"; +import test from "node:test"; +import { create } from "@bufbuild/protobuf"; +import { QueryResponseSchema } from "../dist/camino/api_pb.js"; +import { InjectedDependencySchema } from "../dist/quixos/refs_pb.js"; +import { createRuntimeContext, decodeQuerySnapshot, jsToProtoValue, protoValueToJs } from "../dist/index.js"; + +test("query ports carry only an injected query identity and root", async () => { + let seen; + const context = createRuntimeContext( + {}, + { + executeQuery: async (request) => { + seen = request; + return create(QueryResponseSchema); + }, + }, + { + objectId: "obj:receiver", + input: {}, + dependencies: [ + create(InjectedDependencySchema, { + portId: "list", + objectId: "obj:collection", + binding: { case: "queryId", value: "pkg@1:upcoming" }, + }), + ], + }, + ); + await context.query("list").execute({ first: jsToProtoValue(30) }, "checked-definition"); + assert.equal(seen.expectedDefinitionDigest, "checked-definition"); + assert.equal(seen.objectId, "obj:collection"); + assert.equal(seen.queryId, "pkg@1:upcoming"); + assert.equal(protoValueToJs(seen.variables.first), 30); + assert.throws(() => context.query("not-injected"), /Missing/); +}); + +test("query snapshots distinguish an unavailable scalar from a successful null", () => { + const output = { + kind: "record", + fields: { title: { kind: "scalar", name: "string" }, score: { kind: "scalar", name: "int64" } }, + }; + const response = create(QueryResponseSchema, { + value: jsToProtoValue({ title: "Native title", score: null }), + pending: [{ path: [{ part: { case: "field", value: "score" } }] }], + }); + const snapshot = decodeQuerySnapshot(response, output, "run1", 1n); + assert.equal(snapshot.status, "partial"); + assert.deepEqual(snapshot.data, { title: "Native title" }); + assert.deepEqual(snapshot.fields, [{ path: ["score"], status: "pending" }]); + assert.equal(output.fields.score.kind, "scalar"); + response.pending = []; + response.value = jsToProtoValue({ title: "Native title", score: 9007199254740993n }); + assert.equal(decodeQuerySnapshot(response, output, "run1", 2n).data.score, 9007199254740993n); +});