{"version":3,"file":"span-rEVp7m82.cjs","names":["MessageType","Struct","JsonSchema","Timestamp","Duration","UnknownFieldHandler","WireType","Value","key: keyof SpanEvent[\"attributes\"] | undefined","val: SpanEvent[\"attributes\"][any] | undefined","key: keyof SpanLink[\"attributes\"] | undefined","val: SpanLink[\"attributes\"][any] | undefined","key: keyof Trace[\"metadata\"] | undefined","val: Trace[\"metadata\"][any] | undefined"],"sources":["../generated/ts/core/span.ts"],"sourcesContent":["// @generated by protobuf-ts 2.11.1 with parameter generate_dependencies\n// @generated from protobuf file \"core/span.proto\" (package \"tusk.drift.core.v1\", syntax proto3)\n// tslint:disable\nimport type { BinaryWriteOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryWriter } from \"@protobuf-ts/runtime\";\nimport { WireType } from \"@protobuf-ts/runtime\";\nimport type { BinaryReadOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryReader } from \"@protobuf-ts/runtime\";\nimport { UnknownFieldHandler } from \"@protobuf-ts/runtime\";\nimport type { PartialMessage } from \"@protobuf-ts/runtime\";\nimport { reflectionMergePartial } from \"@protobuf-ts/runtime\";\nimport { MessageType } from \"@protobuf-ts/runtime\";\nimport { Value } from \"../google/protobuf/struct\";\nimport { Duration } from \"../google/protobuf/duration\";\nimport { Timestamp } from \"../google/protobuf/timestamp\";\nimport { JsonSchema } from \"./json_schema\";\nimport { Struct } from \"../google/protobuf/struct\";\n/**\n * Universal span structure that works for all instrumentation types\n *\n * @generated from protobuf message tusk.drift.core.v1.Span\n */\nexport interface Span {\n    /**\n     * Core span identity\n     *\n     * @generated from protobuf field: string trace_id = 1\n     */\n    traceId: string;\n    /**\n     * @generated from protobuf field: string span_id = 2\n     */\n    spanId: string;\n    /**\n     * @generated from protobuf field: string parent_span_id = 3\n     */\n    parentSpanId: string;\n    /**\n     * Visual name\n     *\n     * @generated from protobuf field: string name = 4\n     */\n    name: string; // \"api/process_commit\", \"update UserQuery\", \"pg.query\"\n    /**\n     * Instrumentation identity\n     *\n     * @generated from protobuf field: string package_name = 5\n     */\n    packageName: string; // \"http\", \"pg\", \"mysql\", \"redis\", \"fetch\"\n    /**\n     * @generated from protobuf field: string instrumentation_name = 6\n     */\n    instrumentationName: string; // instrumentation class name\n    /**\n     * @generated from protobuf field: string submodule_name = 7\n     */\n    submoduleName: string; // \"GET\", \"query\", \"execute\", \"get\", etc.\n    /**\n     * Package type classification\n     *\n     * @generated from protobuf field: tusk.drift.core.v1.PackageType package_type = 8\n     */\n    packageType: PackageType; // Enum classification of package type\n    /**\n     * Input/output data\n     *\n     * @generated from protobuf field: google.protobuf.Struct input_value = 9\n     */\n    inputValue?: Struct; // Request/query/command data\n    /**\n     * @generated from protobuf field: google.protobuf.Struct output_value = 10\n     */\n    outputValue?: Struct; // Response/result data\n    /**\n     * @generated from protobuf field: tusk.drift.core.v1.JsonSchema input_schema = 11\n     */\n    inputSchema?: JsonSchema; // Schema definition for input\n    /**\n     * @generated from protobuf field: tusk.drift.core.v1.JsonSchema output_schema = 12\n     */\n    outputSchema?: JsonSchema; // Schema definition for output\n    /**\n     * Hash-based matching and validation\n     *\n     * @generated from protobuf field: string input_schema_hash = 13\n     */\n    inputSchemaHash: string; // Hash of input schema for validation\n    /**\n     * @generated from protobuf field: string output_schema_hash = 14\n     */\n    outputSchemaHash: string; // Hash of output schema for validation\n    /**\n     * @generated from protobuf field: string input_value_hash = 15\n     */\n    inputValueHash: string; // Hash of input_value for matching\n    /**\n     * @generated from protobuf field: string output_value_hash = 16\n     */\n    outputValueHash: string; // Hash of output_value\n    /**\n     * Span metadata\n     *\n     * @generated from protobuf field: tusk.drift.core.v1.SpanKind kind = 17\n     */\n    kind: SpanKind; // OpenTelemetry-compatible span kind\n    /**\n     * @generated from protobuf field: tusk.drift.core.v1.SpanStatus status = 18\n     */\n    status?: SpanStatus; // Span completion status\n    /**\n     * @generated from protobuf field: bool is_pre_app_start = 19\n     */\n    isPreAppStart: boolean; // Whether the span is a before user marking app as ready\n    /**\n     * Timing information\n     *\n     * @generated from protobuf field: google.protobuf.Timestamp timestamp = 20\n     */\n    timestamp?: Timestamp; // Primary timestamp\n    /**\n     * @generated from protobuf field: google.protobuf.Duration duration = 21\n     */\n    duration?: Duration; // Primary duration\n    /**\n     * Span relationships and state\n     *\n     * @generated from protobuf field: bool is_root_span = 22\n     */\n    isRootSpan: boolean;\n    /**\n     * @generated from protobuf field: google.protobuf.Struct metadata = 23\n     */\n    metadata?: Struct; // Additional metadata\n    /**\n     * Environment information\n     *\n     * @generated from protobuf field: optional string environment = 24\n     */\n    environment?: string; // Environment name (e.g., \"production\", \"staging\", \"development\")\n    /**\n     * Database record ID (used for caching and batch fetching)\n     *\n     * @generated from protobuf field: optional string id = 25\n     */\n    id?: string;\n}\n/**\n * Span completion status\n *\n * @generated from protobuf message tusk.drift.core.v1.SpanStatus\n */\nexport interface SpanStatus {\n    /**\n     * @generated from protobuf field: tusk.drift.core.v1.StatusCode code = 1\n     */\n    code: StatusCode;\n    /**\n     * @generated from protobuf field: string message = 2\n     */\n    message: string;\n}\n/**\n * Span events (logs) - optional\n *\n * @generated from protobuf message tusk.drift.core.v1.SpanEvent\n */\nexport interface SpanEvent {\n    /**\n     * @generated from protobuf field: string name = 1\n     */\n    name: string;\n    /**\n     * @generated from protobuf field: google.protobuf.Timestamp timestamp = 2\n     */\n    timestamp?: Timestamp;\n    /**\n     * @generated from protobuf field: map<string, google.protobuf.Value> attributes = 3\n     */\n    attributes: {\n        [key: string]: Value;\n    };\n}\n/**\n * Span links - optional\n *\n * @generated from protobuf message tusk.drift.core.v1.SpanLink\n */\nexport interface SpanLink {\n    /**\n     * @generated from protobuf field: string trace_id = 1\n     */\n    traceId: string;\n    /**\n     * @generated from protobuf field: string span_id = 2\n     */\n    spanId: string;\n    /**\n     * @generated from protobuf field: map<string, google.protobuf.Value> attributes = 3\n     */\n    attributes: {\n        [key: string]: Value;\n    };\n}\n/**\n * Trace collection\n *\n * @generated from protobuf message tusk.drift.core.v1.Trace\n */\nexport interface Trace {\n    /**\n     * @generated from protobuf field: string trace_id = 1\n     */\n    traceId: string;\n    /**\n     * @generated from protobuf field: repeated tusk.drift.core.v1.Span spans = 2\n     */\n    spans: Span[];\n    /**\n     * @generated from protobuf field: google.protobuf.Timestamp started_at = 3\n     */\n    startedAt?: Timestamp;\n    /**\n     * @generated from protobuf field: google.protobuf.Timestamp completed_at = 4\n     */\n    completedAt?: Timestamp;\n    /**\n     * @generated from protobuf field: map<string, string> metadata = 5\n     */\n    metadata: {\n        [key: string]: string;\n    }; // Trace-level metadata\n}\n/**\n * Similarity candidate for ranking matches\n *\n * @generated from protobuf message tusk.drift.core.v1.SimilarityCandidate\n */\nexport interface SimilarityCandidate {\n    /**\n     * @generated from protobuf field: string span_id = 1\n     */\n    spanId: string;\n    /**\n     * @generated from protobuf field: float score = 2\n     */\n    score: number;\n}\n/**\n * Match level information\n *\n * @generated from protobuf message tusk.drift.core.v1.MatchLevel\n */\nexport interface MatchLevel {\n    /**\n     * @generated from protobuf field: tusk.drift.core.v1.MatchType match_type = 1\n     */\n    matchType: MatchType; // How the match was found\n    /**\n     * @generated from protobuf field: tusk.drift.core.v1.MatchScope match_scope = 2\n     */\n    matchScope: MatchScope; // Scope of where the match was found\n    /**\n     * @generated from protobuf field: string match_description = 3\n     */\n    matchDescription: string; // Natural language description for match\n    /**\n     * Similarity scoring fields (populated when multiple matches exist)\n     *\n     * @generated from protobuf field: optional float similarity_score = 4\n     */\n    similarityScore?: number; // The similarity score of the selected match (0.0-1.0)\n    /**\n     * @generated from protobuf field: repeated tusk.drift.core.v1.SimilarityCandidate top_candidates = 5\n     */\n    topCandidates: SimilarityCandidate[]; // Top 5 alternative matches with scores\n}\n/**\n * Package type classification enum\n * Langauge agnostic\n *\n * @generated from protobuf enum tusk.drift.core.v1.PackageType\n */\nexport enum PackageType {\n    /**\n     * @generated from protobuf enum value: PACKAGE_TYPE_UNSPECIFIED = 0;\n     */\n    UNSPECIFIED = 0,\n    /**\n     * HTTP-based operations\n     *\n     * @generated from protobuf enum value: PACKAGE_TYPE_HTTP = 1;\n     */\n    HTTP = 1,\n    /**\n     * GraphQL operations\n     *\n     * @generated from protobuf enum value: PACKAGE_TYPE_GRAPHQL = 2;\n     */\n    GRAPHQL = 2,\n    /**\n     * gRPC operations\n     *\n     * @generated from protobuf enum value: PACKAGE_TYPE_GRPC = 3;\n     */\n    GRPC = 3,\n    /**\n     * PostgreSQL operations\n     *\n     * @generated from protobuf enum value: PACKAGE_TYPE_PG = 4;\n     */\n    PG = 4,\n    /**\n     * MySQL operations\n     *\n     * @generated from protobuf enum value: PACKAGE_TYPE_MYSQL = 5;\n     */\n    MYSQL = 5,\n    /**\n     * MongoDB operations\n     *\n     * @generated from protobuf enum value: PACKAGE_TYPE_MONGODB = 6;\n     */\n    MONGODB = 6,\n    /**\n     * Redis caching operations\n     *\n     * @generated from protobuf enum value: PACKAGE_TYPE_REDIS = 7;\n     */\n    REDIS = 7,\n    /**\n     * Apache Kafka messaging\n     *\n     * @generated from protobuf enum value: PACKAGE_TYPE_KAFKA = 8;\n     */\n    KAFKA = 8,\n    /**\n     * RabbitMQ messaging\n     *\n     * @generated from protobuf enum value: PACKAGE_TYPE_RABBITMQ = 9;\n     */\n    RABBITMQ = 9,\n    /**\n     * Firestore operations\n     *\n     * @generated from protobuf enum value: PACKAGE_TYPE_FIRESTORE = 10;\n     */\n    FIRESTORE = 10,\n    /**\n     * Prisma operations\n     *\n     * @generated from protobuf enum value: PACKAGE_TYPE_PRISMA = 11;\n     */\n    PRISMA = 11\n}\n/**\n * OpenTelemetry-compatible span kinds\n *\n * @generated from protobuf enum tusk.drift.core.v1.SpanKind\n */\nexport enum SpanKind {\n    /**\n     * @generated from protobuf enum value: SPAN_KIND_UNSPECIFIED = 0;\n     */\n    UNSPECIFIED = 0,\n    /**\n     * Internal operation\n     *\n     * @generated from protobuf enum value: SPAN_KIND_INTERNAL = 1;\n     */\n    INTERNAL = 1,\n    /**\n     * Server-side operation\n     *\n     * @generated from protobuf enum value: SPAN_KIND_SERVER = 2;\n     */\n    SERVER = 2,\n    /**\n     * Client-side operation\n     *\n     * @generated from protobuf enum value: SPAN_KIND_CLIENT = 3;\n     */\n    CLIENT = 3,\n    /**\n     * Message producer\n     *\n     * @generated from protobuf enum value: SPAN_KIND_PRODUCER = 4;\n     */\n    PRODUCER = 4,\n    /**\n     * Message consumer\n     *\n     * @generated from protobuf enum value: SPAN_KIND_CONSUMER = 5;\n     */\n    CONSUMER = 5\n}\n/**\n * @generated from protobuf enum tusk.drift.core.v1.StatusCode\n */\nexport enum StatusCode {\n    /**\n     * Default state\n     *\n     * @generated from protobuf enum value: STATUS_CODE_UNSPECIFIED = 0;\n     */\n    UNSPECIFIED = 0,\n    /**\n     * Success\n     *\n     * @generated from protobuf enum value: STATUS_CODE_OK = 1;\n     */\n    OK = 1,\n    /**\n     * Error occurred\n     *\n     * @generated from protobuf enum value: STATUS_CODE_ERROR = 2;\n     */\n    ERROR = 2\n}\n/**\n * Match scope - where the match was found\n *\n * @generated from protobuf enum tusk.drift.core.v1.MatchScope\n */\nexport enum MatchScope {\n    /**\n     * @generated from protobuf enum value: MATCH_SCOPE_UNSPECIFIED = 0;\n     */\n    UNSPECIFIED = 0,\n    /**\n     * @generated from protobuf enum value: MATCH_SCOPE_TRACE = 1;\n     */\n    TRACE = 1,\n    /**\n     * @generated from protobuf enum value: MATCH_SCOPE_GLOBAL = 2;\n     */\n    GLOBAL = 2\n}\n/**\n * Match type - how the match was found\n *\n * @generated from protobuf enum tusk.drift.core.v1.MatchType\n */\nexport enum MatchType {\n    /**\n     * @generated from protobuf enum value: MATCH_TYPE_UNSPECIFIED = 0;\n     */\n    UNSPECIFIED = 0,\n    /**\n     * @generated from protobuf enum value: MATCH_TYPE_INPUT_VALUE_HASH = 1;\n     */\n    INPUT_VALUE_HASH = 1,\n    /**\n     * @generated from protobuf enum value: MATCH_TYPE_INPUT_VALUE_HASH_REDUCED_SCHEMA = 2;\n     */\n    INPUT_VALUE_HASH_REDUCED_SCHEMA = 2,\n    /**\n     * @generated from protobuf enum value: MATCH_TYPE_INPUT_SCHEMA_HASH = 3;\n     */\n    INPUT_SCHEMA_HASH = 3,\n    /**\n     * @generated from protobuf enum value: MATCH_TYPE_INPUT_SCHEMA_HASH_REDUCED_SCHEMA = 4;\n     */\n    INPUT_SCHEMA_HASH_REDUCED_SCHEMA = 4,\n    /**\n     * @generated from protobuf enum value: MATCH_TYPE_FUZZY = 5;\n     */\n    FUZZY = 5,\n    /**\n     * @generated from protobuf enum value: MATCH_TYPE_FALLBACK = 6;\n     */\n    FALLBACK = 6\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass Span$Type extends MessageType<Span> {\n    constructor() {\n        super(\"tusk.drift.core.v1.Span\", [\n            { no: 1, name: \"trace_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"span_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 3, name: \"parent_span_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 4, name: \"name\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 5, name: \"package_name\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 6, name: \"instrumentation_name\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 7, name: \"submodule_name\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 8, name: \"package_type\", kind: \"enum\", T: () => [\"tusk.drift.core.v1.PackageType\", PackageType, \"PACKAGE_TYPE_\"] },\n            { no: 9, name: \"input_value\", kind: \"message\", T: () => Struct },\n            { no: 10, name: \"output_value\", kind: \"message\", T: () => Struct },\n            { no: 11, name: \"input_schema\", kind: \"message\", T: () => JsonSchema },\n            { no: 12, name: \"output_schema\", kind: \"message\", T: () => JsonSchema },\n            { no: 13, name: \"input_schema_hash\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 14, name: \"output_schema_hash\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 15, name: \"input_value_hash\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 16, name: \"output_value_hash\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 17, name: \"kind\", kind: \"enum\", T: () => [\"tusk.drift.core.v1.SpanKind\", SpanKind, \"SPAN_KIND_\"] },\n            { no: 18, name: \"status\", kind: \"message\", T: () => SpanStatus },\n            { no: 19, name: \"is_pre_app_start\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ },\n            { no: 20, name: \"timestamp\", kind: \"message\", T: () => Timestamp },\n            { no: 21, name: \"duration\", kind: \"message\", T: () => Duration },\n            { no: 22, name: \"is_root_span\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ },\n            { no: 23, name: \"metadata\", kind: \"message\", T: () => Struct },\n            { no: 24, name: \"environment\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n            { no: 25, name: \"id\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ }\n        ]);\n    }\n    create(value?: PartialMessage<Span>): Span {\n        const message = globalThis.Object.create((this.messagePrototype!));\n        message.traceId = \"\";\n        message.spanId = \"\";\n        message.parentSpanId = \"\";\n        message.name = \"\";\n        message.packageName = \"\";\n        message.instrumentationName = \"\";\n        message.submoduleName = \"\";\n        message.packageType = 0;\n        message.inputSchemaHash = \"\";\n        message.outputSchemaHash = \"\";\n        message.inputValueHash = \"\";\n        message.outputValueHash = \"\";\n        message.kind = 0;\n        message.isPreAppStart = false;\n        message.isRootSpan = false;\n        if (value !== undefined)\n            reflectionMergePartial<Span>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Span): Span {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string trace_id */ 1:\n                    message.traceId = reader.string();\n                    break;\n                case /* string span_id */ 2:\n                    message.spanId = reader.string();\n                    break;\n                case /* string parent_span_id */ 3:\n                    message.parentSpanId = reader.string();\n                    break;\n                case /* string name */ 4:\n                    message.name = reader.string();\n                    break;\n                case /* string package_name */ 5:\n                    message.packageName = reader.string();\n                    break;\n                case /* string instrumentation_name */ 6:\n                    message.instrumentationName = reader.string();\n                    break;\n                case /* string submodule_name */ 7:\n                    message.submoduleName = reader.string();\n                    break;\n                case /* tusk.drift.core.v1.PackageType package_type */ 8:\n                    message.packageType = reader.int32();\n                    break;\n                case /* google.protobuf.Struct input_value */ 9:\n                    message.inputValue = Struct.internalBinaryRead(reader, reader.uint32(), options, message.inputValue);\n                    break;\n                case /* google.protobuf.Struct output_value */ 10:\n                    message.outputValue = Struct.internalBinaryRead(reader, reader.uint32(), options, message.outputValue);\n                    break;\n                case /* tusk.drift.core.v1.JsonSchema input_schema */ 11:\n                    message.inputSchema = JsonSchema.internalBinaryRead(reader, reader.uint32(), options, message.inputSchema);\n                    break;\n                case /* tusk.drift.core.v1.JsonSchema output_schema */ 12:\n                    message.outputSchema = JsonSchema.internalBinaryRead(reader, reader.uint32(), options, message.outputSchema);\n                    break;\n                case /* string input_schema_hash */ 13:\n                    message.inputSchemaHash = reader.string();\n                    break;\n                case /* string output_schema_hash */ 14:\n                    message.outputSchemaHash = reader.string();\n                    break;\n                case /* string input_value_hash */ 15:\n                    message.inputValueHash = reader.string();\n                    break;\n                case /* string output_value_hash */ 16:\n                    message.outputValueHash = reader.string();\n                    break;\n                case /* tusk.drift.core.v1.SpanKind kind */ 17:\n                    message.kind = reader.int32();\n                    break;\n                case /* tusk.drift.core.v1.SpanStatus status */ 18:\n                    message.status = SpanStatus.internalBinaryRead(reader, reader.uint32(), options, message.status);\n                    break;\n                case /* bool is_pre_app_start */ 19:\n                    message.isPreAppStart = reader.bool();\n                    break;\n                case /* google.protobuf.Timestamp timestamp */ 20:\n                    message.timestamp = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.timestamp);\n                    break;\n                case /* google.protobuf.Duration duration */ 21:\n                    message.duration = Duration.internalBinaryRead(reader, reader.uint32(), options, message.duration);\n                    break;\n                case /* bool is_root_span */ 22:\n                    message.isRootSpan = reader.bool();\n                    break;\n                case /* google.protobuf.Struct metadata */ 23:\n                    message.metadata = Struct.internalBinaryRead(reader, reader.uint32(), options, message.metadata);\n                    break;\n                case /* optional string environment */ 24:\n                    message.environment = reader.string();\n                    break;\n                case /* optional string id */ 25:\n                    message.id = reader.string();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: Span, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string trace_id = 1; */\n        if (message.traceId !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.traceId);\n        /* string span_id = 2; */\n        if (message.spanId !== \"\")\n            writer.tag(2, WireType.LengthDelimited).string(message.spanId);\n        /* string parent_span_id = 3; */\n        if (message.parentSpanId !== \"\")\n            writer.tag(3, WireType.LengthDelimited).string(message.parentSpanId);\n        /* string name = 4; */\n        if (message.name !== \"\")\n            writer.tag(4, WireType.LengthDelimited).string(message.name);\n        /* string package_name = 5; */\n        if (message.packageName !== \"\")\n            writer.tag(5, WireType.LengthDelimited).string(message.packageName);\n        /* string instrumentation_name = 6; */\n        if (message.instrumentationName !== \"\")\n            writer.tag(6, WireType.LengthDelimited).string(message.instrumentationName);\n        /* string submodule_name = 7; */\n        if (message.submoduleName !== \"\")\n            writer.tag(7, WireType.LengthDelimited).string(message.submoduleName);\n        /* tusk.drift.core.v1.PackageType package_type = 8; */\n        if (message.packageType !== 0)\n            writer.tag(8, WireType.Varint).int32(message.packageType);\n        /* google.protobuf.Struct input_value = 9; */\n        if (message.inputValue)\n            Struct.internalBinaryWrite(message.inputValue, writer.tag(9, WireType.LengthDelimited).fork(), options).join();\n        /* google.protobuf.Struct output_value = 10; */\n        if (message.outputValue)\n            Struct.internalBinaryWrite(message.outputValue, writer.tag(10, WireType.LengthDelimited).fork(), options).join();\n        /* tusk.drift.core.v1.JsonSchema input_schema = 11; */\n        if (message.inputSchema)\n            JsonSchema.internalBinaryWrite(message.inputSchema, writer.tag(11, WireType.LengthDelimited).fork(), options).join();\n        /* tusk.drift.core.v1.JsonSchema output_schema = 12; */\n        if (message.outputSchema)\n            JsonSchema.internalBinaryWrite(message.outputSchema, writer.tag(12, WireType.LengthDelimited).fork(), options).join();\n        /* string input_schema_hash = 13; */\n        if (message.inputSchemaHash !== \"\")\n            writer.tag(13, WireType.LengthDelimited).string(message.inputSchemaHash);\n        /* string output_schema_hash = 14; */\n        if (message.outputSchemaHash !== \"\")\n            writer.tag(14, WireType.LengthDelimited).string(message.outputSchemaHash);\n        /* string input_value_hash = 15; */\n        if (message.inputValueHash !== \"\")\n            writer.tag(15, WireType.LengthDelimited).string(message.inputValueHash);\n        /* string output_value_hash = 16; */\n        if (message.outputValueHash !== \"\")\n            writer.tag(16, WireType.LengthDelimited).string(message.outputValueHash);\n        /* tusk.drift.core.v1.SpanKind kind = 17; */\n        if (message.kind !== 0)\n            writer.tag(17, WireType.Varint).int32(message.kind);\n        /* tusk.drift.core.v1.SpanStatus status = 18; */\n        if (message.status)\n            SpanStatus.internalBinaryWrite(message.status, writer.tag(18, WireType.LengthDelimited).fork(), options).join();\n        /* bool is_pre_app_start = 19; */\n        if (message.isPreAppStart !== false)\n            writer.tag(19, WireType.Varint).bool(message.isPreAppStart);\n        /* google.protobuf.Timestamp timestamp = 20; */\n        if (message.timestamp)\n            Timestamp.internalBinaryWrite(message.timestamp, writer.tag(20, WireType.LengthDelimited).fork(), options).join();\n        /* google.protobuf.Duration duration = 21; */\n        if (message.duration)\n            Duration.internalBinaryWrite(message.duration, writer.tag(21, WireType.LengthDelimited).fork(), options).join();\n        /* bool is_root_span = 22; */\n        if (message.isRootSpan !== false)\n            writer.tag(22, WireType.Varint).bool(message.isRootSpan);\n        /* google.protobuf.Struct metadata = 23; */\n        if (message.metadata)\n            Struct.internalBinaryWrite(message.metadata, writer.tag(23, WireType.LengthDelimited).fork(), options).join();\n        /* optional string environment = 24; */\n        if (message.environment !== undefined)\n            writer.tag(24, WireType.LengthDelimited).string(message.environment);\n        /* optional string id = 25; */\n        if (message.id !== undefined)\n            writer.tag(25, WireType.LengthDelimited).string(message.id);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message tusk.drift.core.v1.Span\n */\nexport const Span = new Span$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass SpanStatus$Type extends MessageType<SpanStatus> {\n    constructor() {\n        super(\"tusk.drift.core.v1.SpanStatus\", [\n            { no: 1, name: \"code\", kind: \"enum\", T: () => [\"tusk.drift.core.v1.StatusCode\", StatusCode, \"STATUS_CODE_\"] },\n            { no: 2, name: \"message\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n        ]);\n    }\n    create(value?: PartialMessage<SpanStatus>): SpanStatus {\n        const message = globalThis.Object.create((this.messagePrototype!));\n        message.code = 0;\n        message.message = \"\";\n        if (value !== undefined)\n            reflectionMergePartial<SpanStatus>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SpanStatus): SpanStatus {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* tusk.drift.core.v1.StatusCode code */ 1:\n                    message.code = reader.int32();\n                    break;\n                case /* string message */ 2:\n                    message.message = reader.string();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: SpanStatus, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* tusk.drift.core.v1.StatusCode code = 1; */\n        if (message.code !== 0)\n            writer.tag(1, WireType.Varint).int32(message.code);\n        /* string message = 2; */\n        if (message.message !== \"\")\n            writer.tag(2, WireType.LengthDelimited).string(message.message);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message tusk.drift.core.v1.SpanStatus\n */\nexport const SpanStatus = new SpanStatus$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass SpanEvent$Type extends MessageType<SpanEvent> {\n    constructor() {\n        super(\"tusk.drift.core.v1.SpanEvent\", [\n            { no: 1, name: \"name\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"timestamp\", kind: \"message\", T: () => Timestamp },\n            { no: 3, name: \"attributes\", kind: \"map\", K: 9 /*ScalarType.STRING*/, V: { kind: \"message\", T: () => Value } }\n        ]);\n    }\n    create(value?: PartialMessage<SpanEvent>): SpanEvent {\n        const message = globalThis.Object.create((this.messagePrototype!));\n        message.name = \"\";\n        message.attributes = {};\n        if (value !== undefined)\n            reflectionMergePartial<SpanEvent>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SpanEvent): SpanEvent {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string name */ 1:\n                    message.name = reader.string();\n                    break;\n                case /* google.protobuf.Timestamp timestamp */ 2:\n                    message.timestamp = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.timestamp);\n                    break;\n                case /* map<string, google.protobuf.Value> attributes */ 3:\n                    this.binaryReadMap3(message.attributes, reader, options);\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    private binaryReadMap3(map: SpanEvent[\"attributes\"], reader: IBinaryReader, options: BinaryReadOptions): void {\n        let len = reader.uint32(), end = reader.pos + len, key: keyof SpanEvent[\"attributes\"] | undefined, val: SpanEvent[\"attributes\"][any] | undefined;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case 1:\n                    key = reader.string();\n                    break;\n                case 2:\n                    val = Value.internalBinaryRead(reader, reader.uint32(), options);\n                    break;\n                default: throw new globalThis.Error(\"unknown map entry field for tusk.drift.core.v1.SpanEvent.attributes\");\n            }\n        }\n        map[key ?? \"\"] = val ?? Value.create();\n    }\n    internalBinaryWrite(message: SpanEvent, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string name = 1; */\n        if (message.name !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.name);\n        /* google.protobuf.Timestamp timestamp = 2; */\n        if (message.timestamp)\n            Timestamp.internalBinaryWrite(message.timestamp, writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n        /* map<string, google.protobuf.Value> attributes = 3; */\n        for (let k of globalThis.Object.keys(message.attributes)) {\n            writer.tag(3, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k);\n            writer.tag(2, WireType.LengthDelimited).fork();\n            Value.internalBinaryWrite(message.attributes[k], writer, options);\n            writer.join().join();\n        }\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message tusk.drift.core.v1.SpanEvent\n */\nexport const SpanEvent = new SpanEvent$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass SpanLink$Type extends MessageType<SpanLink> {\n    constructor() {\n        super(\"tusk.drift.core.v1.SpanLink\", [\n            { no: 1, name: \"trace_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"span_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 3, name: \"attributes\", kind: \"map\", K: 9 /*ScalarType.STRING*/, V: { kind: \"message\", T: () => Value } }\n        ]);\n    }\n    create(value?: PartialMessage<SpanLink>): SpanLink {\n        const message = globalThis.Object.create((this.messagePrototype!));\n        message.traceId = \"\";\n        message.spanId = \"\";\n        message.attributes = {};\n        if (value !== undefined)\n            reflectionMergePartial<SpanLink>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SpanLink): SpanLink {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string trace_id */ 1:\n                    message.traceId = reader.string();\n                    break;\n                case /* string span_id */ 2:\n                    message.spanId = reader.string();\n                    break;\n                case /* map<string, google.protobuf.Value> attributes */ 3:\n                    this.binaryReadMap3(message.attributes, reader, options);\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    private binaryReadMap3(map: SpanLink[\"attributes\"], reader: IBinaryReader, options: BinaryReadOptions): void {\n        let len = reader.uint32(), end = reader.pos + len, key: keyof SpanLink[\"attributes\"] | undefined, val: SpanLink[\"attributes\"][any] | undefined;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case 1:\n                    key = reader.string();\n                    break;\n                case 2:\n                    val = Value.internalBinaryRead(reader, reader.uint32(), options);\n                    break;\n                default: throw new globalThis.Error(\"unknown map entry field for tusk.drift.core.v1.SpanLink.attributes\");\n            }\n        }\n        map[key ?? \"\"] = val ?? Value.create();\n    }\n    internalBinaryWrite(message: SpanLink, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string trace_id = 1; */\n        if (message.traceId !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.traceId);\n        /* string span_id = 2; */\n        if (message.spanId !== \"\")\n            writer.tag(2, WireType.LengthDelimited).string(message.spanId);\n        /* map<string, google.protobuf.Value> attributes = 3; */\n        for (let k of globalThis.Object.keys(message.attributes)) {\n            writer.tag(3, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k);\n            writer.tag(2, WireType.LengthDelimited).fork();\n            Value.internalBinaryWrite(message.attributes[k], writer, options);\n            writer.join().join();\n        }\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message tusk.drift.core.v1.SpanLink\n */\nexport const SpanLink = new SpanLink$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Trace$Type extends MessageType<Trace> {\n    constructor() {\n        super(\"tusk.drift.core.v1.Trace\", [\n            { no: 1, name: \"trace_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"spans\", kind: \"message\", repeat: 2 /*RepeatType.UNPACKED*/, T: () => Span },\n            { no: 3, name: \"started_at\", kind: \"message\", T: () => Timestamp },\n            { no: 4, name: \"completed_at\", kind: \"message\", T: () => Timestamp },\n            { no: 5, name: \"metadata\", kind: \"map\", K: 9 /*ScalarType.STRING*/, V: { kind: \"scalar\", T: 9 /*ScalarType.STRING*/ } }\n        ]);\n    }\n    create(value?: PartialMessage<Trace>): Trace {\n        const message = globalThis.Object.create((this.messagePrototype!));\n        message.traceId = \"\";\n        message.spans = [];\n        message.metadata = {};\n        if (value !== undefined)\n            reflectionMergePartial<Trace>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Trace): Trace {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string trace_id */ 1:\n                    message.traceId = reader.string();\n                    break;\n                case /* repeated tusk.drift.core.v1.Span spans */ 2:\n                    message.spans.push(Span.internalBinaryRead(reader, reader.uint32(), options));\n                    break;\n                case /* google.protobuf.Timestamp started_at */ 3:\n                    message.startedAt = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.startedAt);\n                    break;\n                case /* google.protobuf.Timestamp completed_at */ 4:\n                    message.completedAt = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.completedAt);\n                    break;\n                case /* map<string, string> metadata */ 5:\n                    this.binaryReadMap5(message.metadata, reader, options);\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    private binaryReadMap5(map: Trace[\"metadata\"], reader: IBinaryReader, options: BinaryReadOptions): void {\n        let len = reader.uint32(), end = reader.pos + len, key: keyof Trace[\"metadata\"] | undefined, val: Trace[\"metadata\"][any] | undefined;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case 1:\n                    key = reader.string();\n                    break;\n                case 2:\n                    val = reader.string();\n                    break;\n                default: throw new globalThis.Error(\"unknown map entry field for tusk.drift.core.v1.Trace.metadata\");\n            }\n        }\n        map[key ?? \"\"] = val ?? \"\";\n    }\n    internalBinaryWrite(message: Trace, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string trace_id = 1; */\n        if (message.traceId !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.traceId);\n        /* repeated tusk.drift.core.v1.Span spans = 2; */\n        for (let i = 0; i < message.spans.length; i++)\n            Span.internalBinaryWrite(message.spans[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n        /* google.protobuf.Timestamp started_at = 3; */\n        if (message.startedAt)\n            Timestamp.internalBinaryWrite(message.startedAt, writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n        /* google.protobuf.Timestamp completed_at = 4; */\n        if (message.completedAt)\n            Timestamp.internalBinaryWrite(message.completedAt, writer.tag(4, WireType.LengthDelimited).fork(), options).join();\n        /* map<string, string> metadata = 5; */\n        for (let k of globalThis.Object.keys(message.metadata))\n            writer.tag(5, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k).tag(2, WireType.LengthDelimited).string(message.metadata[k]).join();\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message tusk.drift.core.v1.Trace\n */\nexport const Trace = new Trace$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass SimilarityCandidate$Type extends MessageType<SimilarityCandidate> {\n    constructor() {\n        super(\"tusk.drift.core.v1.SimilarityCandidate\", [\n            { no: 1, name: \"span_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"score\", kind: \"scalar\", T: 2 /*ScalarType.FLOAT*/ }\n        ]);\n    }\n    create(value?: PartialMessage<SimilarityCandidate>): SimilarityCandidate {\n        const message = globalThis.Object.create((this.messagePrototype!));\n        message.spanId = \"\";\n        message.score = 0;\n        if (value !== undefined)\n            reflectionMergePartial<SimilarityCandidate>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SimilarityCandidate): SimilarityCandidate {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string span_id */ 1:\n                    message.spanId = reader.string();\n                    break;\n                case /* float score */ 2:\n                    message.score = reader.float();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: SimilarityCandidate, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string span_id = 1; */\n        if (message.spanId !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.spanId);\n        /* float score = 2; */\n        if (message.score !== 0)\n            writer.tag(2, WireType.Bit32).float(message.score);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message tusk.drift.core.v1.SimilarityCandidate\n */\nexport const SimilarityCandidate = new SimilarityCandidate$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass MatchLevel$Type extends MessageType<MatchLevel> {\n    constructor() {\n        super(\"tusk.drift.core.v1.MatchLevel\", [\n            { no: 1, name: \"match_type\", kind: \"enum\", T: () => [\"tusk.drift.core.v1.MatchType\", MatchType, \"MATCH_TYPE_\"] },\n            { no: 2, name: \"match_scope\", kind: \"enum\", T: () => [\"tusk.drift.core.v1.MatchScope\", MatchScope, \"MATCH_SCOPE_\"] },\n            { no: 3, name: \"match_description\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 4, name: \"similarity_score\", kind: \"scalar\", opt: true, T: 2 /*ScalarType.FLOAT*/ },\n            { no: 5, name: \"top_candidates\", kind: \"message\", repeat: 2 /*RepeatType.UNPACKED*/, T: () => SimilarityCandidate }\n        ]);\n    }\n    create(value?: PartialMessage<MatchLevel>): MatchLevel {\n        const message = globalThis.Object.create((this.messagePrototype!));\n        message.matchType = 0;\n        message.matchScope = 0;\n        message.matchDescription = \"\";\n        message.topCandidates = [];\n        if (value !== undefined)\n            reflectionMergePartial<MatchLevel>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MatchLevel): MatchLevel {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* tusk.drift.core.v1.MatchType match_type */ 1:\n                    message.matchType = reader.int32();\n                    break;\n                case /* tusk.drift.core.v1.MatchScope match_scope */ 2:\n                    message.matchScope = reader.int32();\n                    break;\n                case /* string match_description */ 3:\n                    message.matchDescription = reader.string();\n                    break;\n                case /* optional float similarity_score */ 4:\n                    message.similarityScore = reader.float();\n                    break;\n                case /* repeated tusk.drift.core.v1.SimilarityCandidate top_candidates */ 5:\n                    message.topCandidates.push(SimilarityCandidate.internalBinaryRead(reader, reader.uint32(), options));\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: MatchLevel, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* tusk.drift.core.v1.MatchType match_type = 1; */\n        if (message.matchType !== 0)\n            writer.tag(1, WireType.Varint).int32(message.matchType);\n        /* tusk.drift.core.v1.MatchScope match_scope = 2; */\n        if (message.matchScope !== 0)\n            writer.tag(2, WireType.Varint).int32(message.matchScope);\n        /* string match_description = 3; */\n        if (message.matchDescription !== \"\")\n            writer.tag(3, WireType.LengthDelimited).string(message.matchDescription);\n        /* optional float similarity_score = 4; */\n        if (message.similarityScore !== undefined)\n            writer.tag(4, WireType.Bit32).float(message.similarityScore);\n        /* repeated tusk.drift.core.v1.SimilarityCandidate top_candidates = 5; */\n        for (let i = 0; i < message.topCandidates.length; i++)\n            SimilarityCandidate.internalBinaryWrite(message.topCandidates[i], writer.tag(5, WireType.LengthDelimited).fork(), options).join();\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message tusk.drift.core.v1.MatchLevel\n */\nexport const MatchLevel = new MatchLevel$Type();\n"],"mappings":"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"}