@query-farm/vgi 0.14.0 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/arrow/predicates.ts", "../src/arrow/impl-arrowjs/schema.ts", "../src/arrow/impl-arrowjs/empty.ts", "../src/arrow/codec/registry.ts", "../src/arrow/impl-arrowjs/canonical.ts", "../src/arrow/impl-arrowjs/build.ts", "../src/arrow/impl-arrowjs/iterate.ts", "../src/arrow/impl-arrowjs/filter.ts", "../src/arrow/impl-arrowjs/project.ts", "../src/arrow/impl-arrowjs/ipc.ts", "../src/arrow/impl-arrowjs/statistics.ts", "../src/arrow/impl-arrowjs/index.ts", "../src/arrow/schema-types.ts", "../src/arrow/codec/branded.ts", "../src/arrow/index.ts", "../src/functions/storage-cf-do.ts", "../src/functions/storage.ts", "../src/functions/scalar.ts", "../src/types.ts", "../src/errors.ts", "../src/arguments/argument-spec.ts", "../src/util/arrow/index.ts", "../src/functions/table.ts", "../src/filter-pushdown/types.ts", "../src/filter-pushdown/evaluate.ts", "../src/filter-pushdown/deserialize.ts", "../src/filter-pushdown/collector.ts", "../src/functions/aggregate.ts", "../src/functions/table-in-out.ts", "../src/protocol/state-serializer.ts", "../src/util/bytes.ts", "../src/functions/table-buffering.ts", "../src/protocol/serializers/arguments.ts", "../src/arguments/arguments.ts", "../src/protocol/serializers/bind.ts", "../src/protocol/serializers/shared.ts", "../src/protocol/serializers/init.ts", "../src/protocol/serializers/cardinality.ts", "../src/functions/copy-from.ts", "../src/functions/copy-to.ts", "../src/codec/asd.ts", "../src/generated/vgi-protocol-schemas.ts", "../src/generated/vgi-client.ts", "../src/catalog/interface.ts", "../src/catalog/read-only.ts", "../src/util/statistics.ts", "../src/metadata/types.ts", "../src/metadata/resolve.ts", "../src/catalog/composite.ts", "../src/functions/registry.ts", "../src/metadata/serialize.ts", "../src/protocol/dispatch.ts", "../src/protocol/handlers/function.ts", "../src/protocol/handlers/shared.ts", "../src/protocol/handlers/catalog/shared.ts", "../node_modules/@noble/ciphers/utils.js", "../node_modules/@noble/ciphers/_arx.js", "../node_modules/@noble/ciphers/_poly1305.js", "../node_modules/@noble/ciphers/chacha.js", "../src/crypto.ts", "../src/protocol/handlers/aggregate.ts", "../src/protocol/handlers/table-buffering.ts", "../src/protocol/handlers/catalog/admin.ts", "../src/protocol/handlers/catalog/table.ts", "../src/protocol/handlers/catalog/view.ts", "../src/protocol/handlers/catalog/macro.ts", "../src/protocol/handlers/catalog/index_methods.ts", "../src/protocol/handlers/catalog/index.ts", "../src/http/describe-json.ts", "../src/catalog/attach-option.ts", "../src/secrets/helpers.ts", "../src/index.core.ts", "../src/client/client.ts", "../src/client/protocol.ts", "../src/catalog/attach-options.ts", "../src/client/errors.ts", "../src/client/helpers.ts"],
3
+ "sources": ["../src/arrow/predicates.ts", "../src/arrow/impl-arrowjs/schema.ts", "../src/arrow/impl-arrowjs/empty.ts", "../src/arrow/codec/registry.ts", "../src/arrow/impl-arrowjs/canonical.ts", "../src/arrow/impl-arrowjs/build.ts", "../src/arrow/impl-arrowjs/iterate.ts", "../src/arrow/impl-arrowjs/filter.ts", "../src/arrow/impl-arrowjs/project.ts", "../src/arrow/impl-arrowjs/ipc.ts", "../src/arrow/impl-arrowjs/statistics.ts", "../src/arrow/impl-arrowjs/index.ts", "../src/arrow/schema-types.ts", "../src/arrow/codec/branded.ts", "../src/arrow/index.ts", "../src/functions/storage-cf-do.ts", "../src/functions/storage.ts", "../src/cache-control.ts", "../src/functions/scalar.ts", "../src/types.ts", "../src/errors.ts", "../src/arguments/argument-spec.ts", "../src/util/arrow/index.ts", "../src/functions/table.ts", "../src/filter-pushdown/types.ts", "../src/filter-pushdown/evaluate.ts", "../src/filter-pushdown/deserialize.ts", "../src/filter-pushdown/collector.ts", "../src/functions/aggregate.ts", "../src/functions/table-in-out.ts", "../src/protocol/state-serializer.ts", "../src/util/bytes.ts", "../src/functions/table-buffering.ts", "../src/protocol/serializers/arguments.ts", "../src/arguments/arguments.ts", "../src/protocol/serializers/bind.ts", "../src/protocol/serializers/shared.ts", "../src/protocol/serializers/init.ts", "../src/protocol/serializers/cardinality.ts", "../src/functions/copy-from.ts", "../src/functions/copy-to.ts", "../src/codec/asd.ts", "../src/generated/vgi-protocol-schemas.ts", "../src/generated/vgi-client.ts", "../src/catalog/interface.ts", "../src/catalog/read-only.ts", "../src/util/statistics.ts", "../src/metadata/types.ts", "../src/metadata/resolve.ts", "../src/catalog/composite.ts", "../src/functions/registry.ts", "../src/metadata/serialize.ts", "../src/protocol/dispatch.ts", "../src/protocol/handlers/function.ts", "../src/protocol/handlers/shared.ts", "../src/protocol/handlers/catalog/shared.ts", "../node_modules/@noble/ciphers/utils.js", "../node_modules/@noble/ciphers/_arx.js", "../node_modules/@noble/ciphers/_poly1305.js", "../node_modules/@noble/ciphers/chacha.js", "../src/crypto.ts", "../src/protocol/handlers/aggregate.ts", "../src/protocol/handlers/table-buffering.ts", "../src/protocol/handlers/catalog/admin.ts", "../src/protocol/handlers/catalog/table.ts", "../src/protocol/handlers/catalog/view.ts", "../src/protocol/handlers/catalog/macro.ts", "../src/protocol/handlers/catalog/index_methods.ts", "../src/protocol/handlers/catalog/index.ts", "../src/http/describe-json.ts", "../src/catalog/attach-option.ts", "../src/secrets/helpers.ts", "../src/index.core.ts", "../src/client/client.ts", "../src/client/protocol.ts", "../src/catalog/attach-options.ts", "../src/client/errors.ts", "../src/client/helpers.ts", "../src/worker.ts"],
4
4
  "sourcesContent": [
5
5
  "// Copyright 2025, 2026 Query Farm LLC - https://query.farm\n// Backend-agnostic Arrow type predicates. Both arrow-js and flechette\n// expose `typeId` on every DataType with identical numeric values, so a\n// single `t.typeId === N` check works regardless of the active backend.\n\nimport type { VgiDataType } from \"./types.js\";\n\nexport const TypeId = {\n Null: 1,\n Int: 2,\n Float: 3,\n Binary: 4,\n Utf8: 5,\n Bool: 6,\n Decimal: 7,\n Date: 8,\n Time: 9,\n Timestamp: 10,\n Interval: 11,\n List: 12,\n Struct: 13,\n Union: 14,\n FixedSizeBinary: 15,\n FixedSizeList: 16,\n Map: 17,\n Duration: 18,\n LargeBinary: 19,\n LargeUtf8: 20,\n Dictionary: -1,\n} as const;\n\nexport function isNull(t: VgiDataType): boolean { return t.typeId === TypeId.Null; }\nexport function isInt(t: VgiDataType): boolean { return t.typeId === TypeId.Int; }\nexport function isFloat(t: VgiDataType): boolean { return t.typeId === TypeId.Float; }\nexport function isBinary(t: VgiDataType): boolean {\n return t.typeId === TypeId.Binary || t.typeId === TypeId.LargeBinary;\n}\nexport function isUtf8(t: VgiDataType): boolean {\n return t.typeId === TypeId.Utf8 || t.typeId === TypeId.LargeUtf8;\n}\nexport function isBool(t: VgiDataType): boolean { return t.typeId === TypeId.Bool; }\nexport function isDecimal(t: VgiDataType): boolean { return t.typeId === TypeId.Decimal; }\nexport function isDate(t: VgiDataType): boolean { return t.typeId === TypeId.Date; }\nexport function isTime(t: VgiDataType): boolean { return t.typeId === TypeId.Time; }\nexport function isTimestamp(t: VgiDataType): boolean { return t.typeId === TypeId.Timestamp; }\nexport function isInterval(t: VgiDataType): boolean { return t.typeId === TypeId.Interval; }\nexport function isList(t: VgiDataType): boolean { return t.typeId === TypeId.List; }\nexport function isStruct(t: VgiDataType): boolean { return t.typeId === TypeId.Struct; }\nexport function isUnion(t: VgiDataType): boolean { return t.typeId === TypeId.Union; }\nexport function isFixedSizeBinary(t: VgiDataType): boolean { return t.typeId === TypeId.FixedSizeBinary; }\nexport function isFixedSizeList(t: VgiDataType): boolean { return t.typeId === TypeId.FixedSizeList; }\nexport function isMap(t: VgiDataType): boolean { return t.typeId === TypeId.Map; }\nexport function isDuration(t: VgiDataType): boolean { return t.typeId === TypeId.Duration; }\nexport function isDictionary(t: VgiDataType): boolean { return t.typeId === TypeId.Dictionary; }\n\n/** Runtime check: does `x` quack like a VgiBatch? Used at API boundaries\n * where callers may pass either a batch or a plain column dict. Duck-typed\n * because arrow-js and flechette use unrelated classes. */\nexport function isBatch(x: unknown): x is import(\"./types.js\").VgiBatch {\n return (\n x != null &&\n typeof (x as any).numRows === \"number\" &&\n (x as any).schema != null &&\n Array.isArray((x as any).schema.fields)\n );\n}\n",
6
6
  "// Copyright 2025, 2026 Query Farm LLC - https://query.farm\n// Factory-style constructors for arrow-js Schema/Field/DataType values.\n// Mirrors flechette's API so internal code can call the same factory\n// regardless of the active backend.\n\nimport {\n Schema as A_Schema,\n Field as A_Field,\n Null as A_Null,\n Bool as A_Bool,\n Int8 as A_Int8,\n Int16 as A_Int16,\n Int32 as A_Int32,\n Int64 as A_Int64,\n Uint8 as A_Uint8,\n Uint16 as A_Uint16,\n Uint32 as A_Uint32,\n Uint64 as A_Uint64,\n Float16 as A_Float16,\n Float32 as A_Float32,\n Float64 as A_Float64,\n Utf8 as A_Utf8,\n Binary as A_Binary,\n Decimal as A_Decimal,\n Date_ as A_Date,\n Time as A_Time,\n Timestamp as A_Timestamp,\n Duration as A_Duration,\n Interval as A_Interval,\n List as A_List,\n Struct as A_Struct,\n Map_ as A_Map,\n Dictionary as A_Dictionary,\n SparseUnion as A_SparseUnion,\n DenseUnion as A_DenseUnion,\n FixedSizeBinary as A_FixedSizeBinary,\n FixedSizeList as A_FixedSizeList,\n DateUnit as A_DateUnit,\n TimeUnit as A_TimeUnit,\n IntervalUnit as A_IntervalUnit,\n UnionMode as A_UnionMode,\n type DataType,\n} from \"@query-farm/apache-arrow\";\n\nimport type { VgiField, VgiSchema, VgiDataType } from \"../types.js\";\n\n// ----- TimeUnit / DateUnit / UnionMode constants ---------------------------\n// Numeric values match the Arrow IPC spec; both arrow-js and flechette\n// use the same integers, so internal code can freely cross backends.\n\nexport const TimeUnit = {\n SECOND: A_TimeUnit.SECOND,\n MILLISECOND: A_TimeUnit.MILLISECOND,\n MICROSECOND: A_TimeUnit.MICROSECOND,\n NANOSECOND: A_TimeUnit.NANOSECOND,\n} as const;\n\nexport const DateUnit = {\n DAY: A_DateUnit.DAY,\n MILLISECOND: A_DateUnit.MILLISECOND,\n} as const;\n\nexport const IntervalUnit = {\n YEAR_MONTH: A_IntervalUnit.YEAR_MONTH,\n DAY_TIME: A_IntervalUnit.DAY_TIME,\n MONTH_DAY_NANO: A_IntervalUnit.MONTH_DAY_NANO,\n} as const;\n\nexport const UnionMode = {\n Sparse: A_UnionMode.Sparse,\n Dense: A_UnionMode.Dense,\n} as const;\n\n// ----- Schema / Field ------------------------------------------------------\n\nexport function schema(\n fields: readonly VgiField[],\n metadata?: Map<string, string>,\n): VgiSchema {\n return new A_Schema(\n fields as A_Field[],\n metadata ?? new Map(),\n ) as unknown as VgiSchema;\n}\n\nexport function field(\n name: string,\n type: VgiDataType,\n nullable = true,\n metadata?: Map<string, string>,\n): VgiField {\n return new A_Field(\n name,\n type as DataType,\n nullable,\n metadata ?? new Map(),\n ) as unknown as VgiField;\n}\n\n// ----- Primitive types -----------------------------------------------------\n\nexport const nullType = (): VgiDataType => new A_Null() as unknown as VgiDataType;\nexport const bool = (): VgiDataType => new A_Bool() as unknown as VgiDataType;\n\nexport const int8 = (): VgiDataType => new A_Int8() as unknown as VgiDataType;\nexport const int16 = (): VgiDataType => new A_Int16() as unknown as VgiDataType;\nexport const int32 = (): VgiDataType => new A_Int32() as unknown as VgiDataType;\nexport const int64 = (): VgiDataType => new A_Int64() as unknown as VgiDataType;\nexport const uint8 = (): VgiDataType => new A_Uint8() as unknown as VgiDataType;\nexport const uint16 = (): VgiDataType => new A_Uint16() as unknown as VgiDataType;\nexport const uint32 = (): VgiDataType => new A_Uint32() as unknown as VgiDataType;\nexport const uint64 = (): VgiDataType => new A_Uint64() as unknown as VgiDataType;\nexport function int(bitWidth: 8 | 16 | 32 | 64 = 32, signed = true): VgiDataType {\n if (signed) {\n switch (bitWidth) {\n case 8: return int8();\n case 16: return int16();\n case 32: return int32();\n case 64: return int64();\n }\n } else {\n switch (bitWidth) {\n case 8: return uint8();\n case 16: return uint16();\n case 32: return uint32();\n case 64: return uint64();\n }\n }\n throw new Error(`int: unsupported bitWidth ${bitWidth}`);\n}\n\nexport const float16 = (): VgiDataType => new A_Float16() as unknown as VgiDataType;\nexport const float32 = (): VgiDataType => new A_Float32() as unknown as VgiDataType;\nexport const float64 = (): VgiDataType => new A_Float64() as unknown as VgiDataType;\n\nexport const utf8 = (): VgiDataType => new A_Utf8() as unknown as VgiDataType;\nexport const binary = (): VgiDataType => new A_Binary() as unknown as VgiDataType;\nexport const fixedSizeBinary = (byteWidth: number): VgiDataType =>\n new A_FixedSizeBinary(byteWidth) as unknown as VgiDataType;\n\n// ----- Decimal -------------------------------------------------------------\n\nexport function decimal(\n precision: number,\n scale: number,\n bitWidth: 32 | 64 | 128 | 256 = 128,\n): VgiDataType {\n // arrow-js's Decimal constructor signature is (scale, precision, bitWidth) —\n // the OPPOSITE order of our facade (precision, scale). Passing them in facade\n // order made arrow-js report `.precision`/`.scale` swapped versus flechette.\n // Swap here so a facade-built decimal reports identical precision/scale on\n // both backends.\n return new A_Decimal(scale, precision, bitWidth) as unknown as VgiDataType;\n}\nexport const decimal128 = (precision: number, scale: number): VgiDataType =>\n decimal(precision, scale, 128);\nexport const decimal256 = (precision: number, scale: number): VgiDataType =>\n decimal(precision, scale, 256);\n\n// ----- Date / Time / Timestamp / Duration / Interval -----------------------\n\nexport const date = (unit: number = A_DateUnit.MILLISECOND): VgiDataType =>\n new A_Date(unit) as unknown as VgiDataType;\nexport const dateDay = (): VgiDataType => date(A_DateUnit.DAY);\nexport const dateMillisecond = (): VgiDataType => date(A_DateUnit.MILLISECOND);\n\nexport function time(unit: number = A_TimeUnit.MILLISECOND, bitWidth?: 32 | 64): VgiDataType {\n const bw = bitWidth ?? (unit <= A_TimeUnit.MILLISECOND ? 32 : 64);\n return new A_Time(unit, bw) as unknown as VgiDataType;\n}\nexport const timeSecond = (): VgiDataType => time(A_TimeUnit.SECOND, 32);\nexport const timeMillisecond = (): VgiDataType => time(A_TimeUnit.MILLISECOND, 32);\nexport const timeMicrosecond = (): VgiDataType => time(A_TimeUnit.MICROSECOND, 64);\nexport const timeNanosecond = (): VgiDataType => time(A_TimeUnit.NANOSECOND, 64);\n\nexport const timestamp = (\n unit: number = A_TimeUnit.MILLISECOND,\n timezone: string | null = null,\n): VgiDataType => new A_Timestamp(unit, timezone) as unknown as VgiDataType;\n\nexport const duration = (unit: number = A_TimeUnit.MILLISECOND): VgiDataType =>\n new A_Duration(unit) as unknown as VgiDataType;\n\nexport const interval = (unit: number = A_IntervalUnit.MONTH_DAY_NANO): VgiDataType =>\n new A_Interval(unit) as unknown as VgiDataType;\n\n// ----- Nested types --------------------------------------------------------\n\nexport function list(child: VgiField | VgiDataType): VgiDataType {\n const childField = isField(child) ? child : field(\"item\", child as VgiDataType, true);\n return new A_List(childField as A_Field) as unknown as VgiDataType;\n}\n\nexport function fixedSizeList(child: VgiField | VgiDataType, listSize: number): VgiDataType {\n const childField = isField(child) ? child : field(\"item\", child as VgiDataType, true);\n return new A_FixedSizeList(listSize, childField as A_Field) as unknown as VgiDataType;\n}\n\nexport function struct(children: readonly VgiField[]): VgiDataType {\n return new A_Struct(children as A_Field[]) as unknown as VgiDataType;\n}\n\nexport function map(\n keyField: VgiField | VgiDataType,\n valueField: VgiField | VgiDataType,\n keysSorted = false,\n): VgiDataType {\n const k = isField(keyField) ? keyField : field(\"key\", keyField as VgiDataType, false);\n const v = isField(valueField) ? valueField : field(\"value\", valueField as VgiDataType, true);\n // arrow-js Map_ takes a Field whose type is Struct{key,value}\n const entries = field(\"entries\", struct([k, v]), false);\n return new A_Map(entries as A_Field, keysSorted) as unknown as VgiDataType;\n}\n\nexport function dictionary(\n valueType: VgiDataType,\n indexType: VgiDataType = int16(),\n ordered = false,\n id?: number,\n): VgiDataType {\n return new A_Dictionary(\n valueType as DataType,\n indexType as any,\n id,\n ordered,\n ) as unknown as VgiDataType;\n}\n\nexport function union(\n mode: number,\n children: readonly (VgiField | VgiDataType)[],\n typeIds?: number[],\n): VgiDataType {\n const childFields = children.map((c, i) =>\n isField(c) ? c : field(String(i), c as VgiDataType, true),\n );\n const ids = typeIds ?? childFields.map((_, i) => i);\n const Ctor = mode === A_UnionMode.Dense ? A_DenseUnion : A_SparseUnion;\n return new Ctor(ids, childFields as A_Field[]) as unknown as VgiDataType;\n}\n\nexport const sparseUnion = (\n children: readonly (VgiField | VgiDataType)[],\n typeIds?: number[],\n): VgiDataType => union(A_UnionMode.Sparse, children, typeIds);\n\nexport const denseUnion = (\n children: readonly (VgiField | VgiDataType)[],\n typeIds?: number[],\n): VgiDataType => union(A_UnionMode.Dense, children, typeIds);\n\n// Utility: distinguish Field from DataType. arrow-js Fields have `name` and\n// `type`; bare DataTypes only have `typeId` (and class-specific props).\nfunction isField(x: VgiField | VgiDataType): x is VgiField {\n return typeof (x as VgiField).name === \"string\" && (x as VgiField).type != null;\n}\n",
@@ -19,12 +19,13 @@
19
19
  "// Copyright 2025, 2026 Query Farm LLC - https://query.farm\n// Public facade. Internal vgi-typescript code imports Arrow operations\n// from here; the active backend is selected at module-resolution time\n// via the `#arrow-impl` subpath in package.json's `imports` field.\n//\n// Selection conditions:\n// workerd / worker / browser -> impl-flechette (Cloudflare Workers, etc.)\n// default -> impl-arrowjs (Bun worker, Node)\n\n// Backend-agnostic types (defined in this package, satisfied structurally\n// by both arrow-js and flechette native values).\nexport type {\n VgiTypeId,\n VgiDataType,\n VgiField,\n VgiSchema,\n VgiColumn,\n VgiColumnData,\n VgiBatch,\n VgiBackendInfo,\n TaggedUnion,\n} from \"./types.js\";\n\n// Backend-agnostic predicates.\nexport {\n TypeId,\n isNull,\n isInt,\n isFloat,\n isBinary,\n isUtf8,\n isBool,\n isDecimal,\n isDate,\n isTime,\n isTimestamp,\n isInterval,\n isList,\n isStruct,\n isUnion,\n isFixedSizeBinary,\n isFixedSizeList,\n isMap,\n isDuration,\n isDictionary,\n isBatch,\n} from \"./predicates.js\";\n\n// Active backend's surface (IPC, build, iterate, utilities).\nexport {\n backend,\n // batch utilities\n emptyBatch, batchFromRows, batchFromColumns, columnFromArray,\n iterRows, batchToScalarDict, batchToSecretDict, safeNumber, decodeDictValue,\n filterBatch, projectSchema, projectBatch,\n // canonical single-value read (backend-agnostic, lossless)\n readCanonicalValue,\n // IPC\n serializeSchema, deserializeSchema, serializeBatch, deserializeBatch,\n // Column statistics\n buildStatisticsBatch,\n} from \"#arrow-impl\";\n\nexport type { ColumnStatistics } from \"#arrow-impl\";\n\n// Type factories — exported from the TYPED facade layer (schema-types.ts) so\n// every factory carries a PRECISE nominal static descriptor (Date32Type,\n// TimestampType<'us'>, StructType<...>, …). Runtime values are identical to the\n// backend factories; the typed layer only refines the static return type, which\n// is what makes the rich/raw value mapping (RichValue/RawValue/ValueFor) and\n// the statically-typed define* author API work. Both backends report the same\n// static types from here.\nexport {\n schema, field,\n nullType, bool,\n int, int8, int16, int32, int64,\n uint8, uint16, uint32, uint64,\n float16, float32, float64,\n utf8, binary, fixedSizeBinary,\n decimal, decimal128, decimal256,\n date, dateDay, dateMillisecond,\n time, timeSecond, timeMillisecond, timeMicrosecond, timeNanosecond,\n timestamp, duration, interval,\n timestampSeconds, timestampMillis, timestampMicros, timestampNanos,\n durationSeconds, durationMillis, durationMicros, durationNanos,\n list, fixedSizeList, struct, map,\n dictionary,\n union, sparseUnion, denseUnion,\n TimeUnit, DateUnit, IntervalUnit, UnionMode,\n} from \"./schema-types.js\";\n\n// Precise nominal type descriptors (the static face of the factory returns).\nexport type {\n NullDescriptor,\n BoolType,\n IntType, Int8Type, Int16Type, Int32Type, Int64Type,\n Uint8Type, Uint16Type, Uint32Type, Uint64Type,\n FloatType, Utf8Type, LargeUtf8Type, BinaryType, LargeBinaryType,\n FixedSizeBinaryType, DecimalType,\n Date32Type, Date64Type, Time32Type, Time64Type,\n TimestampType, DurationType, IntervalType,\n ListType, FixedSizeListType, StructType, MapType, DictionaryType, UnionType,\n TypedField, TUnit,\n} from \"./codec/type-descriptors.js\";\n\n// Rich/raw value mapping.\nexport type { RichValue, RawValue, ValueFor, Repr } from \"./codec/repr.js\";\n\n// Codec registry (single value rich<->canonical<->raw converters for manual use).\nexport { codecFor } from \"./codec/registry.js\";\nexport type { Codec } from \"./codec/registry.js\";\n\n// Branded raw scalar types + validating constructors / unwrappers.\nexport type {\n Branded,\n Date32, Date64Ms,\n Time32S, Time32Ms, Time64Us, Time64Ns,\n TimestampSeconds, TimestampMillis, TimestampMicros, TimestampNanos,\n DurationSeconds, DurationMillis, DurationMicros, DurationNanos,\n UnscaledDecimal, Int64 as Int64Raw, Uint64 as Uint64Raw,\n} from \"./codec/branded.js\";\nexport {\n asDate32, asDate64Ms,\n asTime32S, asTime32Ms, asTime64Us, asTime64Ns,\n asTimestampSeconds, asTimestampMillis, asTimestampMicros, asTimestampNanos,\n asDurationSeconds, asDurationMillis, asDurationMicros, asDurationNanos,\n asUnscaledDecimal, asInt64, asUint64,\n fromBranded, fromBrandedNumber, fromBrandedBigInt,\n} from \"./codec/branded.js\";\n",
20
20
  "// Copyright 2025, 2026 Query Farm LLC - https://query.farm\n// Cloudflare Durable Object storage for VGI function state.\n//\n// Port of vgi-python's vgi/function_storage_cf_do.py. Talks the Cloudflare\n// Worker + Durable Object's unified state_* / queue_* protocol\n// (vgi-cloudflare-durable-object-storage/src/index.ts). Every request carries\n// the per-attach `shard_key` (set via forShard); destructive ops carry a fresh\n// 32-hex `attempt_id`. The DO is single-threaded SQLite, so ops are atomic.\n//\n// Usage:\n// Set `VGI_WORKER_SHARED_STORAGE=cloudflare-do` plus `VGI_CF_DO_URL`.\n// Optionally set `VGI_CF_DO_TOKEN` for bearer auth.\n\nimport type { FunctionStorage } from \"./storage.js\";\nimport { UnknownInvocationError } from \"./storage.js\";\n\n/** Minimal fetch signature satisfied by both the global `fetch` and a\n * Cloudflare service-binding Fetcher (`env.<BINDING>`). */\nexport type FetchLike = (\n input: string,\n init?: { method?: string; headers?: Record<string, string>; body?: string },\n) => Promise<Response>;\n\n// Namespaces under the unified state_* table for the legacy worker/queue\n// families the DO no longer has dedicated endpoints for.\nconst NS_WORKER = new TextEncoder().encode(\"worker\");\n\nexport class FunctionStorageCfDo implements FunctionStorage {\n private readonly _baseUrl: string;\n private readonly _token: string | null;\n /** Per-attach routing key (att-<hex uuid>); \"\" until pinned via forShard. */\n private readonly _shardKey: string;\n /** Fetch implementation. Defaults to the global `fetch`; pass a Cloudflare\n * service-binding Fetcher (env.<BINDING>) when the storage worker lives on\n * the same account/zone — a same-zone public-URL fetch is rejected (CF\n * error 1042), but a service binding routes worker-to-worker directly. */\n private readonly _fetch: FetchLike;\n\n constructor(opts: {\n url: string;\n token?: string | null;\n shardKey?: string;\n fetch?: FetchLike;\n }) {\n // Strip trailing slash so endpoint paths can be appended unconditionally.\n this._baseUrl = opts.url.replace(/\\/+$/, \"\");\n this._token = opts.token ?? null;\n this._shardKey = opts.shardKey ?? \"\";\n this._fetch = opts.fetch ?? ((input, init) => fetch(input as any, init));\n }\n\n /** Build an instance from environment variables. */\n static fromEnv(): FunctionStorageCfDo {\n const url = process.env.VGI_CF_DO_URL;\n if (!url) {\n throw new Error(\n \"VGI_CF_DO_URL environment variable is required when \" +\n \"VGI_WORKER_SHARED_STORAGE=cloudflare-do\",\n );\n }\n return new FunctionStorageCfDo({\n url,\n token: process.env.VGI_CF_DO_TOKEN || null,\n });\n }\n\n /**\n * Return a view of this backend pinned to one shard key, so callers can route\n * per logical ATTACH. Shares the URL/token; only the shard key differs.\n */\n forShard(shardKey: string): FunctionStorageCfDo {\n return new FunctionStorageCfDo({\n url: this._baseUrl,\n token: this._token,\n shardKey,\n fetch: this._fetch,\n });\n }\n\n // --- Worker state → ns=worker, key = int64(worker_id) ---\n\n async workerPut(executionId: Uint8Array, workerId: number, state: Uint8Array): Promise<void> {\n await this._statePutMany(executionId, NS_WORKER, [[int64Key(workerId), state]]);\n }\n\n async workerCollect(executionId: Uint8Array): Promise<Uint8Array[]> {\n const rows = await this._statePaged(\"state_drain\", executionId, NS_WORKER, newAttemptId());\n return rows.map(([, v]) => v);\n }\n\n async workerScan(executionId: Uint8Array): Promise<Array<[number, Uint8Array]>> {\n const rows = await this._statePaged(\"state_scan\", executionId, NS_WORKER, null);\n return rows.map(([k, v]) => [int64FromKey(k), v]);\n }\n\n // --- Work queue ---\n\n async queuePush(executionId: Uint8Array, items: Uint8Array[]): Promise<number> {\n const data = await this._post<{ count: number }>(\"queue_push\", {\n execution_id: bytesToB64(executionId),\n items: items.map(bytesToB64),\n attempt_id: newAttemptId(),\n });\n return Number(data.count);\n }\n\n async queuePop(executionId: Uint8Array): Promise<Uint8Array | null> {\n const data = await this._post<{ item: string | null }>(\"queue_pop\", {\n execution_id: bytesToB64(executionId),\n attempt_id: newAttemptId(),\n });\n return data.item ? b64ToBytes(data.item) : null;\n }\n\n async queueClear(executionId: Uint8Array): Promise<number> {\n const data = await this._post<{ cleared: number }>(\"queue_clear\", {\n execution_id: bytesToB64(executionId),\n attempt_id: newAttemptId(),\n });\n return Number(data.cleared);\n }\n\n // --- Namespaced key/value state ---\n\n async stateGet(scopeId: Uint8Array, ns: Uint8Array, key: Uint8Array): Promise<Uint8Array | null> {\n const data = await this._post<{ rows: Array<{ value: string } | null> }>(\"state_get_many\", {\n scope_id: bytesToB64(scopeId),\n ns: bytesToB64(ns),\n keys: [bytesToB64(key)],\n });\n const row = (data.rows ?? [])[0];\n return row ? b64ToBytes(row.value) : null;\n }\n\n async statePut(scopeId: Uint8Array, ns: Uint8Array, key: Uint8Array, value: Uint8Array): Promise<void> {\n await this._statePutMany(scopeId, ns, [[key, value]]);\n }\n\n // --- Append-only log ---\n\n async stateAppend(scopeId: Uint8Array, ns: Uint8Array, key: Uint8Array, item: Uint8Array): Promise<number> {\n const data = await this._post<{ ordinal: number }>(\"state_append\", {\n scope_id: bytesToB64(scopeId),\n ns: bytesToB64(ns),\n key: bytesToB64(key),\n item: bytesToB64(item),\n attempt_id: newAttemptId(),\n });\n return Number(data.ordinal);\n }\n\n async stateLogScan(\n scopeId: Uint8Array,\n ns: Uint8Array,\n key: Uint8Array,\n afterId: number = -1,\n limit: number | null = null,\n ): Promise<Array<[number, Uint8Array]>> {\n const body: Record<string, unknown> = {\n scope_id: bytesToB64(scopeId),\n ns: bytesToB64(ns),\n key: bytesToB64(key),\n after_id: afterId,\n };\n if (limit != null && limit > 0) body.limit = limit;\n const data = await this._post<{ rows: Array<{ id: number; value: string }> }>(\"state_log_scan\", body);\n return (data.rows ?? []).map((r) => [Number(r.id), b64ToBytes(r.value)]);\n }\n\n async executionClear(scopeId: Uint8Array): Promise<number> {\n const data = await this._post<{ deleted: number }>(\"execution_clear\", {\n scope_id: bytesToB64(scopeId),\n attempt_id: newAttemptId(),\n });\n return Number(data.deleted);\n }\n\n // --- unified state_* helpers ---\n\n private async _statePutMany(\n scopeId: Uint8Array,\n ns: Uint8Array,\n items: Array<[Uint8Array, Uint8Array]>,\n ): Promise<void> {\n await this._post(\"state_put_many\", {\n scope_id: bytesToB64(scopeId),\n ns: bytesToB64(ns),\n items: items.map(([k, v]) => ({ key: bytesToB64(k), value: bytesToB64(v) })),\n attempt_id: newAttemptId(),\n });\n }\n\n /** Drive state_scan / state_drain across pages. attemptId is null for scan. */\n private async _statePaged(\n endpoint: string,\n scopeId: Uint8Array,\n ns: Uint8Array,\n attemptId: string | null,\n ): Promise<Array<[Uint8Array, Uint8Array]>> {\n const out: Array<[Uint8Array, Uint8Array]> = [];\n let afterKey: string | undefined;\n for (;;) {\n const body: Record<string, unknown> = { scope_id: bytesToB64(scopeId), ns: bytesToB64(ns) };\n if (afterKey != null) body.after_key = afterKey;\n if (attemptId != null) body.attempt_id = attemptId;\n const data = await this._post<{ rows: Array<{ key: string; value: string }>; next_after?: string }>(\n endpoint,\n body,\n );\n for (const r of data.rows ?? []) out.push([b64ToBytes(r.key), b64ToBytes(r.value)]);\n if (!data.next_after) break;\n afterKey = data.next_after;\n }\n return out;\n }\n\n // --- HTTP plumbing ---\n\n private async _post<T = Record<string, unknown>>(\n endpoint: string,\n body: Record<string, unknown>,\n ): Promise<T> {\n const url = `${this._baseUrl}/${endpoint}`;\n const headers: Record<string, string> = { \"Content-Type\": \"application/json\" };\n if (this._token) headers[\"Authorization\"] = `Bearer ${this._token}`;\n // The Worker routes on shard_key (idFromName) and rejects requests without\n // one — always splice it in.\n const payload = JSON.stringify({ ...body, shard_key: this._shardKey });\n\n let lastErr: unknown;\n // One retry on transport-level failures, matching the python client.\n for (let attempt = 0; attempt < 2; attempt++) {\n let resp: Response;\n try {\n resp = await this._fetch(url, { method: \"POST\", headers, body: payload });\n } catch (err) {\n lastErr = err;\n continue;\n }\n\n let data: any;\n try {\n data = await resp.json();\n } catch {\n if (!resp.ok) {\n throw new Error(`CF DO storage error ${resp.status} on ${endpoint}: <non-json body>`);\n }\n return {} as T;\n }\n\n if (resp.status === 404 && data?.error === \"unknown_invocation\") {\n throw new UnknownInvocationError(\n data.message ??\n \"Invocation is not registered. Call queuePush first to register the invocation.\",\n );\n }\n if (resp.status === 401) {\n throw new Error(`Authentication failed: ${data?.error ?? \"unauthorized\"}`);\n }\n if (!resp.ok) {\n throw new Error(`CF DO storage error ${resp.status} on ${endpoint}: ${JSON.stringify(data)}`);\n }\n return data as T;\n }\n throw lastErr instanceof Error\n ? lastErr\n : new Error(`CF DO storage transport error on ${endpoint}: ${String(lastErr)}`);\n }\n}\n\n/** Fresh 32-char lowercase-hex idempotency token (the DO's attempt_id shape). */\nfunction newAttemptId(): string {\n const b = new Uint8Array(16);\n crypto.getRandomValues(b);\n let s = \"\";\n for (let i = 0; i < 16; i++) s += b[i].toString(16).padStart(2, \"0\");\n return s;\n}\n\n/** Encode an int64 worker/group id as an 8-byte big-endian state key. */\nfunction int64Key(v: number): Uint8Array {\n const b = new Uint8Array(8);\n new DataView(b.buffer).setBigInt64(0, BigInt(v), false);\n return b;\n}\n\nfunction int64FromKey(b: Uint8Array): number {\n if (b.length !== 8) return 0;\n return Number(new DataView(b.buffer, b.byteOffset, 8).getBigInt64(0, false));\n}\n\nfunction bytesToB64(buf: Uint8Array): string {\n let binary = \"\";\n for (let i = 0; i < buf.length; i++) binary += String.fromCharCode(buf[i]);\n return btoa(binary);\n}\n\nfunction b64ToBytes(b64: string): Uint8Array {\n const binary = atob(b64);\n const out = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) out[i] = binary.charCodeAt(i);\n return out;\n}\n",
21
21
  "// Copyright 2025, 2026 Query Farm LLC - https://query.farm\n// Storage for VGI function state.\n// Provides shared state across worker processes for distributed execution.\n// Port of vgi-python's vgi/function_storage.py.\n//\n// The interface is async so HTTP-backed implementations (Cloudflare DO,\n// Azure SQL, etc.) can use fetch/network drivers without sync hacks.\n// FunctionStorageSqlite wraps bun:sqlite's sync calls in resolved promises.\n\n// FunctionStorageSqlite is the only thing in this module that needs Bun + node:*\n// modules. Workers (Cloudflare workerd / browsers) should use\n// FunctionStorageCfDo (HTTP-backed) instead — they never reach this class.\n// We resolve all node:* and bun:* dependencies through indirect string\n// variables that esbuild can't trace statically, so workerd bundles cleanly\n// without nodejs_compat polyfills for paths we never run.\ntype Database = any;\nconst _BUN_SQLITE_MOD = \"bun:sqlite\";\nconst _NODE_OS_MOD = \"node:os\";\nconst _NODE_PATH_MOD = \"node:path\";\nconst _NODE_FS_MOD = \"node:fs\";\nlet _Database: any = null;\nfunction _req(): any {\n const req: any = (import.meta as any).require ?? (globalThis as any).require ?? null;\n if (!req) {\n throw new Error(\n \"FunctionStorageSqlite requires Node.js or Bun (bun:sqlite + node:os/path/fs). \" +\n \"Use FunctionStorageCfDo on non-Bun runtimes.\",\n );\n }\n return req;\n}\nfunction _loadDatabase(): any {\n if (_Database) return _Database;\n try {\n _Database = _req()(_BUN_SQLITE_MOD).Database;\n return _Database;\n } catch (e: any) {\n throw new Error(\n `FunctionStorageSqlite: failed to load bun:sqlite — ${e?.message ?? e}`,\n );\n }\n}\nfunction _loadNodeIo(): {\n homedir: () => string;\n platform: () => string;\n join: (...parts: string[]) => string;\n mkdirSync: (path: string, opts?: any) => void;\n} {\n const r = _req();\n return {\n homedir: r(_NODE_OS_MOD).homedir,\n platform: r(_NODE_OS_MOD).platform,\n join: r(_NODE_PATH_MOD).join,\n mkdirSync: r(_NODE_FS_MOD).mkdirSync,\n };\n}\n\n// ============================================================================\n// Errors\n// ============================================================================\n\nexport class UnknownInvocationError extends Error {\n constructor(message?: string | Uint8Array) {\n let text: string;\n if (message instanceof Uint8Array) {\n text =\n `Invocation ${hexEncode(message)} is not registered. ` +\n \"Call queuePush first to register the invocation.\";\n } else {\n text =\n message ??\n \"Invocation is not registered. Call queuePush first to register the invocation.\";\n }\n super(text);\n this.name = \"UnknownInvocationError\";\n }\n}\n\nfunction hexEncode(buf: Uint8Array): string {\n return Array.from(buf, (b) => b.toString(16).padStart(2, \"0\")).join(\"\");\n}\n\n// ============================================================================\n// FunctionStorage interface\n// ============================================================================\n\nexport interface FunctionStorage {\n workerPut(executionId: Uint8Array, workerId: number, state: Uint8Array): Promise<void>;\n workerCollect(executionId: Uint8Array): Promise<Uint8Array[]>;\n workerScan(executionId: Uint8Array): Promise<Array<[number, Uint8Array]>>;\n queuePush(executionId: Uint8Array, items: Uint8Array[]): Promise<number>;\n queuePop(executionId: Uint8Array): Promise<Uint8Array | null>;\n queueClear(executionId: Uint8Array): Promise<number>;\n // --- Namespaced key/value state (scoped by execution_id) ---\n stateGet(scopeId: Uint8Array, ns: Uint8Array, key: Uint8Array): Promise<Uint8Array | null>;\n statePut(scopeId: Uint8Array, ns: Uint8Array, key: Uint8Array, value: Uint8Array): Promise<void>;\n // --- Append-only log (scoped by execution_id) ---\n stateAppend(scopeId: Uint8Array, ns: Uint8Array, key: Uint8Array, item: Uint8Array): Promise<number>;\n stateLogScan(\n scopeId: Uint8Array,\n ns: Uint8Array,\n key: Uint8Array,\n afterId?: number,\n limit?: number | null,\n ): Promise<Array<[number, Uint8Array]>>;\n /** Wipe all state + log rows for a scope across every namespace. */\n executionClear(scopeId: Uint8Array): Promise<number>;\n /** Optional cleanup hook. Implementations holding a connection should release it here. */\n close?(): Promise<void> | void;\n}\n\n// FrameworkNS — namespaces the framework itself uses (mirrors Python's\n// FrameworkNS enum). User code picks its own arbitrary namespace bytes.\nexport const FrameworkNS = {\n BUFFERING_INIT: textBytes(\"_vgi/buffering_init\"),\n STREAMING_FINALIZE: textBytes(\"_vgi/streaming_finalize\"),\n} as const;\n\nfunction textBytes(s: string): Uint8Array {\n return new TextEncoder().encode(s);\n}\n\n/** Encode an int as 8-byte little-endian, matching Python's pack_int_key. */\nexport function packIntKey(i: number | bigint): Uint8Array {\n const buf = new ArrayBuffer(8);\n new DataView(buf).setBigInt64(0, BigInt(i), true);\n return new Uint8Array(buf);\n}\n\n// ============================================================================\n// FunctionStorageSqlite\n// ============================================================================\n\nfunction getDefaultDbPath(): string {\n // VGI_WORKER_SQLITE_PATH=\":memory:\" picks an in-process backend used by\n // single-process test fixtures (notably the HTTP server fixture) to avoid\n // per-op WAL fsync cost. Mirrors vgi-python's same env var.\n const override = process.env.VGI_WORKER_SQLITE_PATH;\n if (override) return override;\n const { homedir, platform, join, mkdirSync } = _loadNodeIo();\n const home = homedir();\n const stateDir =\n platform() === \"darwin\"\n ? join(home, \"Library\", \"Application Support\", \"vgi\")\n : join(home, \".local\", \"state\", \"vgi\");\n mkdirSync(stateDir, { recursive: true });\n return join(stateDir, \"vgi_storage.db\");\n}\n\n// Worker state rides the unified function_state table under a reserved\n// namespace, keyed by the worker/process id (8-byte big-endian) — exactly the\n// mapping the Cloudflare DO client uses, so both backends share one schema.\nconst NS_WORKER = new TextEncoder().encode(\"worker\");\n\n/** Encode an int64 worker id as an 8-byte big-endian state key. */\nfunction int64Key(v: number): Uint8Array {\n const b = new Uint8Array(8);\n new DataView(b.buffer).setBigInt64(0, BigInt(v), false);\n return b;\n}\n\nfunction int64FromKey(b: Uint8Array): number {\n if (b.length !== 8) return 0;\n return Number(new DataView(b.buffer, b.byteOffset, 8).getBigInt64(0, false));\n}\n\nexport class FunctionStorageSqlite implements FunctionStorage {\n readonly dbPath: string;\n private _db: Database;\n\n constructor(dbPath?: string) {\n this.dbPath = dbPath ?? getDefaultDbPath();\n // Persistent connection for the lifetime of this storage instance.\n // Bun is single-threaded, so one connection is the analogue of\n // Python's per-thread persistent connection. WAL still coordinates\n // writes across processes via file locking.\n const Db = _loadDatabase();\n this._db = new Db(this.dbPath);\n this._db.exec(\"PRAGMA journal_mode=WAL\");\n this._db.exec(\"PRAGMA synchronous=NORMAL\");\n this._db.exec(\"PRAGMA busy_timeout=30000\");\n this._db.exec(\"PRAGMA temp_store=MEMORY\");\n this._db.exec(\"PRAGMA cache_size=-65536\");\n this._ensureTables();\n }\n\n close(): void {\n this._db.close();\n }\n\n private _ensureTables(): void {\n const db = this._db;\n // Self-heal an older on-disk DB to the unified minimal schema. The local\n // SQLite tier carries none of the DO's HTTP idempotency machinery and no\n // created_at, so drop any table left over with those columns; all of this\n // is ephemeral in-progress state, so dropping + recreating is safe.\n for (const [table, staleCol] of [\n [\"function_state\", \"created_at\"],\n [\"function_state_log\", \"created_at\"],\n [\"work_queue\", \"created_at\"],\n ] as const) {\n const info = db.prepare(`PRAGMA table_info(${table})`).all() as Array<{ name: string }>;\n if (info.some((row) => row.name === staleCol)) {\n db.exec(`DROP TABLE IF EXISTS ${table}`);\n }\n }\n // Tables eliminated by the unified schema: worker collect now rides\n // function_state (ns=worker), and the queue carries no registration.\n for (const dead of [\"global_state_storage\", \"worker_state\", \"invocation_registry\", \"init_storage\"]) {\n db.exec(`DROP TABLE IF EXISTS ${dead}`);\n }\n\n // Unified schema — the same three tables every backend uses (the Durable\n // Object adds an HTTP-idempotency column layer on top).\n db.exec(`\n CREATE TABLE IF NOT EXISTS work_queue (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n execution_id BLOB NOT NULL,\n work_item BLOB NOT NULL\n )\n `);\n db.exec(`\n CREATE INDEX IF NOT EXISTS idx_work_queue_execution\n ON work_queue(execution_id, id)\n `);\n // Composite-key K/V over (scope_id, ns, key): the single home for\n // per-execution / per-transaction / per-group / per-worker state.\n db.exec(`\n CREATE TABLE IF NOT EXISTS function_state (\n scope_id BLOB NOT NULL,\n ns BLOB NOT NULL,\n key BLOB NOT NULL,\n value BLOB NOT NULL,\n PRIMARY KEY (scope_id, ns, key)\n )\n `);\n // Append-only log keyed by (scope, ns, key); the AUTOINCREMENT id is the\n // globally-monotonic scan cursor.\n db.exec(`\n CREATE TABLE IF NOT EXISTS function_state_log (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n scope_id BLOB NOT NULL,\n ns BLOB NOT NULL,\n key BLOB NOT NULL,\n value BLOB NOT NULL\n )\n `);\n db.exec(`\n CREATE INDEX IF NOT EXISTS idx_function_state_log_lookup\n ON function_state_log(scope_id, ns, key, id)\n `);\n }\n\n async stateGet(scopeId: Uint8Array, ns: Uint8Array, key: Uint8Array): Promise<Uint8Array | null> {\n const row = this._db\n .prepare(\"SELECT value FROM function_state WHERE scope_id = ? AND ns = ? AND key = ?\")\n .get(bufferArg(scopeId), bufferArg(ns), bufferArg(key)) as { value: Uint8Array } | null;\n return row ? new Uint8Array(row.value) : null;\n }\n\n async statePut(scopeId: Uint8Array, ns: Uint8Array, key: Uint8Array, value: Uint8Array): Promise<void> {\n this._db\n .prepare(\n \"INSERT OR REPLACE INTO function_state (scope_id, ns, key, value) VALUES (?, ?, ?, ?)\",\n )\n .run(bufferArg(scopeId), bufferArg(ns), bufferArg(key), bufferArg(value));\n }\n\n async stateAppend(scopeId: Uint8Array, ns: Uint8Array, key: Uint8Array, item: Uint8Array): Promise<number> {\n const res = this._db\n .prepare(\"INSERT INTO function_state_log (scope_id, ns, key, value) VALUES (?, ?, ?, ?)\")\n .run(bufferArg(scopeId), bufferArg(ns), bufferArg(key), bufferArg(item));\n return Number(res.lastInsertRowid);\n }\n\n async stateLogScan(\n scopeId: Uint8Array,\n ns: Uint8Array,\n key: Uint8Array,\n afterId: number = -1,\n limit: number | null = null,\n ): Promise<Array<[number, Uint8Array]>> {\n let sql =\n \"SELECT id, value FROM function_state_log \" +\n \"WHERE scope_id = ? AND ns = ? AND key = ? AND id > ? ORDER BY id ASC\";\n const args: any[] = [bufferArg(scopeId), bufferArg(ns), bufferArg(key), afterId];\n if (limit != null) {\n sql += \" LIMIT ?\";\n args.push(limit);\n }\n const rows = this._db.prepare(sql).all(...args) as Array<{ id: number; value: Uint8Array }>;\n return rows.map((r) => [Number(r.id), new Uint8Array(r.value)]);\n }\n\n async executionClear(scopeId: Uint8Array): Promise<number> {\n const eid = bufferArg(scopeId);\n let total = 0;\n total += (this._db.prepare(\"DELETE FROM function_state WHERE scope_id = ?\").run(eid).changes as number);\n total += (this._db.prepare(\"DELETE FROM function_state_log WHERE scope_id = ?\").run(eid).changes as number);\n return total;\n }\n\n // Worker state rides function_state under ns=worker, keyed by worker id.\n\n async workerPut(\n executionId: Uint8Array,\n workerId: number,\n state: Uint8Array\n ): Promise<void> {\n this._db\n .prepare(\n \"INSERT OR REPLACE INTO function_state (scope_id, ns, key, value) VALUES (?, ?, ?, ?)\"\n )\n .run(bufferArg(executionId), bufferArg(NS_WORKER), bufferArg(int64Key(workerId)), bufferArg(state));\n }\n\n async workerCollect(executionId: Uint8Array): Promise<Uint8Array[]> {\n const rows = this._db\n .prepare(\n \"DELETE FROM function_state WHERE scope_id = ? AND ns = ? RETURNING value\"\n )\n .all(bufferArg(executionId), bufferArg(NS_WORKER)) as Array<{ value: Uint8Array }>;\n return rows.map((row) => new Uint8Array(row.value));\n }\n\n async workerScan(executionId: Uint8Array): Promise<Array<[number, Uint8Array]>> {\n const rows = this._db\n .prepare(\n \"SELECT key, value FROM function_state WHERE scope_id = ? AND ns = ?\"\n )\n .all(bufferArg(executionId), bufferArg(NS_WORKER)) as Array<{\n key: Uint8Array;\n value: Uint8Array;\n }>;\n return rows.map((row) => [int64FromKey(new Uint8Array(row.key)), new Uint8Array(row.value)]);\n }\n\n async queuePush(executionId: Uint8Array, items: Uint8Array[]): Promise<number> {\n const eidBuf = bufferArg(executionId);\n this._db.exec(\"BEGIN\");\n try {\n const insert = this._db.prepare(\n \"INSERT INTO work_queue (execution_id, work_item) VALUES (?, ?)\"\n );\n for (const item of items) {\n insert.run(eidBuf, bufferArg(item));\n }\n this._db.exec(\"COMMIT\");\n } catch (e) {\n this._db.exec(\"ROLLBACK\");\n throw e;\n }\n return items.length;\n }\n\n async queuePop(executionId: Uint8Array): Promise<Uint8Array | null> {\n // No registration: an empty or never-pushed queue both return null,\n // matching the Durable Object.\n const row = this._db\n .prepare(\n \"DELETE FROM work_queue WHERE id = (\" +\n \" SELECT id FROM work_queue WHERE execution_id = ? ORDER BY id ASC LIMIT 1\" +\n \") RETURNING work_item\"\n )\n .get(bufferArg(executionId)) as { work_item: Uint8Array } | null;\n\n return row ? new Uint8Array(row.work_item) : null;\n }\n\n async queueClear(executionId: Uint8Array): Promise<number> {\n return this._db\n .prepare(\"DELETE FROM work_queue WHERE execution_id = ?\")\n .run(bufferArg(executionId)).changes;\n }\n}\n\n// ============================================================================\n// BoundStorage\n// ============================================================================\n\nexport class BoundStorage {\n private _base: FunctionStorage;\n private _executionId: Uint8Array;\n\n constructor(storage: FunctionStorage, executionId: Uint8Array) {\n this._base = storage;\n this._executionId = executionId;\n }\n\n put(state: Uint8Array): Promise<void> {\n return this._base.workerPut(this._executionId, process.pid, state);\n }\n\n collect(): Promise<Uint8Array[]> {\n return this._base.workerCollect(this._executionId);\n }\n\n workerScan(): Promise<Array<[number, Uint8Array]>> {\n return this._base.workerScan(this._executionId);\n }\n\n queuePush(items: Uint8Array[]): Promise<number> {\n return this._base.queuePush(this._executionId, items);\n }\n\n queuePop(): Promise<Uint8Array | null> {\n return this._base.queuePop(this._executionId);\n }\n\n queueClear(): Promise<number> {\n return this._base.queueClear(this._executionId);\n }\n\n stateGet(ns: Uint8Array, key: Uint8Array): Promise<Uint8Array | null> {\n return this._base.stateGet(this._executionId, ns, key);\n }\n\n statePut(ns: Uint8Array, key: Uint8Array, value: Uint8Array): Promise<void> {\n return this._base.statePut(this._executionId, ns, key, value);\n }\n\n stateAppend(ns: Uint8Array, key: Uint8Array, item: Uint8Array): Promise<number> {\n return this._base.stateAppend(this._executionId, ns, key, item);\n }\n\n stateLogScan(\n ns: Uint8Array,\n key: Uint8Array,\n afterId: number = -1,\n limit: number | null = null,\n ): Promise<Array<[number, Uint8Array]>> {\n return this._base.stateLogScan(this._executionId, ns, key, afterId, limit);\n }\n\n executionClear(): Promise<number> {\n return this._base.executionClear(this._executionId);\n }\n\n static packIntKey(i: number | bigint): Uint8Array {\n return packIntKey(i);\n }\n}\n\n// ============================================================================\n// Backend factory + lazy default storage\n// ============================================================================\n\n/**\n * Resolve the FunctionStorage backend from environment variables.\n *\n * Mirrors vgi-python's `_resolve_storage` in `vgi/function.py`.\n *\n * `VGI_WORKER_SHARED_STORAGE` selects the backend (default: `sqlite`):\n * - `memory` — `FunctionStorageSqlite` at `:memory:`. Process-local\n * with no cross-process coordination — single-process\n * deployments only. Ignores `VGI_WORKER_SQLITE_PATH`.\n * - `sqlite` — `FunctionStorageSqlite`. Honors `VGI_WORKER_SQLITE_PATH`\n * (including `:memory:`).\n * - `cloudflare-do` — `FunctionStorageCfDo`. Requires `VGI_CF_DO_URL`;\n * optional `VGI_CF_DO_TOKEN` for bearer auth.\n */\nexport function resolveStorageFromEnv(): FunctionStorage {\n const backend = (process.env.VGI_WORKER_SHARED_STORAGE ?? \"sqlite\").toLowerCase();\n if (backend === \"memory\") {\n return new FunctionStorageSqlite(\":memory:\");\n }\n if (backend === \"sqlite\") {\n return new FunctionStorageSqlite();\n }\n if (backend === \"cloudflare-do\") {\n // Lazy require to avoid loading the CF client when sqlite is in use.\n const { FunctionStorageCfDo } = require(\"./storage-cf-do.js\") as typeof import(\"./storage-cf-do.js\");\n return FunctionStorageCfDo.fromEnv();\n }\n throw new Error(\n `Unknown VGI_WORKER_SHARED_STORAGE backend: '${backend}'. Supported: 'memory', 'sqlite', 'cloudflare-do'.`,\n );\n}\n\n// Module-level proxy that lazy-resolves the configured backend on first use.\n// Importing this module no longer opens a SQLite connection — that happens\n// the first time anyone touches a storage method. Matches Python's\n// _DefaultStorageDescriptor lazy attribute pattern.\nlet _resolved: FunctionStorage | null = null;\nfunction getDefaultStorage(): FunctionStorage {\n if (_resolved == null) _resolved = resolveStorageFromEnv();\n return _resolved;\n}\n\n/**\n * Override the default backend used by the `storage` singleton. Call once at\n * worker startup to inject a pre-built backend that env-driven selection can't\n * construct — notably a `FunctionStorageCfDo` wired to a Cloudflare\n * service-binding Fetcher (the binding lives on `env`, not `process.env`, and a\n * same-zone public-URL fetch is rejected with CF error 1042). Takes precedence\n * over `VGI_WORKER_SHARED_STORAGE`.\n */\nexport function setStorage(impl: FunctionStorage): void {\n _resolved = impl;\n}\n\n/** Default FunctionStorage instance. Backend is selected via env on first access. */\nexport const storage: FunctionStorage = new Proxy(\n {} as FunctionStorage,\n {\n get(_t, prop, _r) {\n const inst = getDefaultStorage() as any;\n const v = inst[prop];\n return typeof v === \"function\" ? v.bind(inst) : v;\n },\n },\n);\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\n/** bun:sqlite needs Buffer for blob params */\nfunction bufferArg(data: Uint8Array): Buffer {\n return Buffer.from(data.buffer, data.byteOffset, data.byteLength);\n}\n",
22
+ "// Copyright 2025, 2026 Query Farm LLC - https://query.farm\n\n/**\n * Result-cache control metadata (`vgi.cache.*`).\n *\n * A table function can advertise that its result is cacheable by the client\n * (the DuckDB extension) by attaching `vgi.cache.*` metadata to the **first**\n * data batch it emits. The vocabulary mirrors HTTP caching (RFC 9111/9110): a\n * freshness lifetime (`ttl` / `expires`), a reuse `scope`, validators\n * (ETag / Last-Modified) for conditional revalidation, and stale-serving grace\n * windows.\n *\n * The key strings are the single source of truth shared with the C++ extension\n * (which reads them by string). {@link cacheControlMetadata} renders a\n * {@link CacheControl} to the `Map<string, string>` of `vgi.cache.*` keys that\n * rides on batch metadata:\n *\n * ```ts\n * out.emit(firstBatch, cacheControlMetadata({ ttl: 300 }));\n * ```\n *\n * Pass `extra` to merge in metadata a function already emits per batch (for\n * example `vgi_batch_index`); the rendered cache keys win on collision.\n *\n * Booleans render as `\"1\"` and are omitted when false; timestamps are RFC 3339\n * UTC strings; durations are whole seconds.\n *\n * Ports `vgi/cache_control.py` from vgi-python.\n */\n\n// --- Response-side metadata keys (worker -> client) -------------------------\n// Defined once here; the C++ extension reads these exact strings.\n\nexport const CACHE_TTL_KEY = \"vgi.cache.ttl\";\nexport const CACHE_EXPIRES_KEY = \"vgi.cache.expires\";\nexport const CACHE_NO_STORE_KEY = \"vgi.cache.no_store\";\nexport const CACHE_SCOPE_KEY = \"vgi.cache.scope\";\nexport const CACHE_ETAG_KEY = \"vgi.cache.etag\";\nexport const CACHE_LAST_MODIFIED_KEY = \"vgi.cache.last_modified\";\nexport const CACHE_REVALIDATABLE_KEY = \"vgi.cache.revalidatable\";\nexport const CACHE_STALE_WHILE_REVALIDATE_KEY = \"vgi.cache.stale_while_revalidate\";\nexport const CACHE_STALE_IF_ERROR_KEY = \"vgi.cache.stale_if_error\";\nexport const CACHE_NOT_MODIFIED_KEY = \"vgi.cache.not_modified\";\n\n// --- Request-side metadata keys (client -> worker) --------------------------\n// Ride on the first producer tick; surfaced as `TableProcessParams.ifNoneMatch`\n// / `.ifModifiedSince`.\n\nexport const CACHE_IF_NONE_MATCH_KEY = \"vgi.cache.if_none_match\";\nexport const CACHE_IF_MODIFIED_SINCE_KEY = \"vgi.cache.if_modified_since\";\n\n// --- Reuse-scope values -----------------------------------------------------\n\nexport const CACHE_SCOPE_CATALOG = \"catalog\";\nexport const CACHE_SCOPE_TRANSACTION = \"transaction\";\n\n/** Reuse scope for a cacheable result. */\nexport type CacheScope = typeof CACHE_SCOPE_CATALOG | typeof CACHE_SCOPE_TRANSACTION;\n\n/**\n * Cacheability advertised by a table function on its first result batch.\n *\n * Presence of `ttl` **or** `expires` is what makes a result cacheable;\n * `noStore` overrides any freshness key.\n */\nexport interface CacheControl {\n /** Freshness lifetime in whole seconds, relative to full-result receipt\n * (skew-immune; wins over `expires`). */\n ttl?: number;\n /** Absolute RFC 3339 UTC deadline. Lifetime is `expires - now` at receipt. */\n expires?: string;\n /** Reuse scope — `\"catalog\"` (default; reusable across transactions within\n * the calling catalog identity) or `\"transaction\"` (reused only within the\n * same transaction). */\n scope?: CacheScope;\n /** Explicit \"never cache\"; overrides any freshness key. */\n noStore?: boolean;\n /** Strong validator (opaque quoted string) for conditional revalidation. */\n etag?: string;\n /** Weaker RFC 3339 UTC validator; fallback when no ETag. */\n lastModified?: string;\n /** The worker can check freshness cheaply without recomputing; gates whether\n * the client ever sends a conditional request. */\n revalidatable?: boolean;\n /** Grace window (seconds) to serve stale immediately while revalidating in\n * the background. */\n staleWhileRevalidate?: number;\n /** Grace window (seconds) to serve stale if a revalidation RPC fails. */\n staleIfError?: number;\n /** 304-equivalent — set on a 0-row batch in reply to a conditional request to\n * assert the client's stored payload is still fresh (the client reuses it\n * instead of re-streaming). */\n notModified?: boolean;\n}\n\nconst VALID_SCOPES: readonly string[] = [CACHE_SCOPE_CATALOG, CACHE_SCOPE_TRANSACTION];\n\n/**\n * Render a {@link CacheControl} to the `vgi.cache.*` batch-metadata map.\n *\n * `scope` is always emitted so the client never has to infer the default.\n * Unset optional fields are omitted; false booleans are omitted. Entries from\n * `extra` are written first, so a rendered cache key wins on collision.\n *\n * Throws when `scope` is unrecognized or a duration is negative — a silently\n * ignored advertisement is far harder to debug than a stack trace at the\n * offending `emit()`.\n */\nexport function cacheControlMetadata(cc: CacheControl, extra?: Map<string, string>): Map<string, string> {\n const scope = cc.scope ?? CACHE_SCOPE_CATALOG;\n if (!VALID_SCOPES.includes(scope)) {\n throw new Error(`CacheControl.scope must be one of ${VALID_SCOPES.join(\", \")}, got ${JSON.stringify(scope)}`);\n }\n for (const name of [\"ttl\", \"staleWhileRevalidate\", \"staleIfError\"] as const) {\n const value = cc[name];\n if (value !== undefined && value < 0) {\n throw new Error(`CacheControl.${name} must be >= 0, got ${value}`);\n }\n }\n\n const md = new Map<string, string>(extra ?? []);\n if (cc.ttl !== undefined) md.set(CACHE_TTL_KEY, String(cc.ttl));\n if (cc.expires !== undefined) md.set(CACHE_EXPIRES_KEY, cc.expires);\n if (cc.noStore) md.set(CACHE_NO_STORE_KEY, \"1\");\n md.set(CACHE_SCOPE_KEY, scope);\n if (cc.etag !== undefined) md.set(CACHE_ETAG_KEY, cc.etag);\n if (cc.lastModified !== undefined) md.set(CACHE_LAST_MODIFIED_KEY, cc.lastModified);\n if (cc.revalidatable) md.set(CACHE_REVALIDATABLE_KEY, \"1\");\n if (cc.staleWhileRevalidate !== undefined) md.set(CACHE_STALE_WHILE_REVALIDATE_KEY, String(cc.staleWhileRevalidate));\n if (cc.staleIfError !== undefined) md.set(CACHE_STALE_IF_ERROR_KEY, String(cc.staleIfError));\n if (cc.notModified) md.set(CACHE_NOT_MODIFIED_KEY, \"1\");\n return md;\n}\n",
22
23
  "// Copyright 2025, 2026 Query Farm LLC - https://query.farm\n// Scalar function implementation.\n// Scalar functions receive columnar input and produce a single output column\n// with 1:1 row mapping.\n\nimport {\n type VgiSchema,\n type VgiField,\n type VgiBatch,\n type VgiDataType,\n type ValueFor,\n type Repr,\n schema as makeSchema,\n field,\n nullType,\n isNull,\n isBatch,\n} from \"../arrow/index.js\";\nimport type { OutputCollector, AuthContext } from \"@query-farm/vgi-rpc\";\nimport {\n FunctionType,\n FunctionStability,\n NullHandling,\n DEFAULT_MAX_WORKERS,\n} from \"../types.js\";\nimport { RowCountMismatchError } from \"../errors.js\";\nimport type {\n BindRequest,\n BindResponse,\n InitRequest,\n GlobalInitResponse,\n} from \"../protocol/types.js\";\nimport type {\n VgiFunction,\n FunctionMeta,\n StreamHandlers,\n FunctionExample,\n} from \"./types.js\";\nimport type { ArgumentSpec } from \"../arguments/argument-spec.js\";\nimport {\n argumentSpecsToSchema,\n constraintSpecFields,\n validateConstConstraints,\n type ArgumentConstraints,\n} from \"../arguments/argument-spec.js\";\nimport { batchToScalarDict, batchToSecretDict, batchFromColumns, projectBatch, safeNumber } from \"../util/arrow/index.js\";\n\n// ============================================================================\n// Scalar Bind Parameters\n// ============================================================================\n\nexport interface ScalarBindParameters {\n /** Constant argument values (resolved at bind time) */\n constArgs: Record<string, any>;\n /** Schema of all arguments including columnar params */\n argumentsSchema: VgiSchema;\n /** Settings from DuckDB */\n settings: Record<string, any>;\n /** Secrets from DuckDB */\n secrets: Record<string, Record<string, any>>;\n /** Original bind request — exposes attach_opaque_data, transaction_opaque_data, function_type, etc. */\n bindCall: BindRequest;\n}\n\n// ============================================================================\n// Functional API\n// ============================================================================\n\n/** Ordered parameter definition for scalar functions. */\nexport interface ScalarParameterDef {\n name: string;\n type: VgiDataType;\n /** If true, this is a constant parameter (scalar value resolved at bind time). */\n const?: boolean;\n /** If true, this parameter accepts variable number of arguments. */\n varargs?: boolean;\n /** Human-readable per-argument description (surfaced as `vgi_doc`). */\n doc?: string;\n // Discovery-facing validation constraints (surfaced via\n // `vgi_function_arguments()`). All optional; see `ArgumentConstraints`.\n /** Closed set of allowed values (surfaced as `vgi_choices`). */\n choices?: readonly unknown[];\n /** Inclusive lower bound, `>=` (folded into `vgi_range`). */\n ge?: number;\n /** Inclusive upper bound, `<=` (folded into `vgi_range`). */\n le?: number;\n /** Exclusive lower bound, `>` (folded into `vgi_range`). */\n gt?: number;\n /** Exclusive upper bound, `<` (folded into `vgi_range`). */\n lt?: number;\n /** Regex the value must match (surfaced as `vgi_pattern`). */\n pattern?: string;\n /** Default value (surfaced as `vgi_default`, JSON-encoded). */\n default?: unknown;\n}\n\n/**\n * The typed compute row for a scalar function: one property per declared\n * columnar param, valued in the representation (`rich` / `raw`) selected by the\n * function's `repr`. (Provided as a convenience type for authors who build rows\n * out of the input batch.)\n */\nexport type ScalarComputeRow<\n P extends Record<string, VgiDataType>,\n M extends Repr,\n> = { [K in keyof P]: ValueFor<P[K], M> | null };\n\n/** A single output value for a scalar function under representation `M`. */\nexport type ScalarOutputValue<R extends VgiDataType, M extends Repr> =\n ValueFor<R, M> | null;\n\n/**\n * Accepted compute return shapes: an array (or iterable) of output values in\n * the declared representation, or a pre-built VgiBatch. The representation is\n * enforced statically — returning a `Date` under `repr: 'raw'` (which expects a\n * branded `Date32`/`Date64Ms`), or a branded value under `repr: 'rich'` (which\n * expects a `Date`), is a COMPILE error.\n */\nexport type ScalarComputeResult<R extends VgiDataType, M extends Repr> =\n | Array<ScalarOutputValue<R, M>>\n | Iterable<ScalarOutputValue<R, M>>\n | VgiBatch;\n\nexport interface ScalarFunctionConfig<\n P extends Record<string, VgiDataType> = Record<string, VgiDataType>,\n R extends VgiDataType = VgiDataType,\n M extends Repr = \"rich\",\n> {\n name: string;\n description?: string;\n /** Columnar params (receive Arrow arrays at process time) */\n params?: P;\n /** Constant params (receive scalar values resolved at bind time) */\n constParams?: Record<string, VgiDataType>;\n /**\n * Per-argument descriptions keyed by param name, surfaced as `vgi_doc` field\n * metadata (and via the extension's `vgi_function_arguments()`). Applies to\n * `params` and `constParams`; for the ordered `parameters` list use each\n * entry's `doc` field instead.\n */\n argDocs?: Record<string, string>;\n /**\n * Ordered parameter list. When provided, overrides `params` and `constParams`.\n * Use this when parameters need non-default ordering (e.g. const, param, const).\n */\n parameters?: ScalarParameterDef[];\n /** Output type (static) */\n returns?: R;\n /** Dynamic output type at bind time */\n outputType?: (params: ScalarBindParameters) => VgiDataType | Promise<VgiDataType>;\n /**\n * Value representation for compute I/O. `'rich'` (default) uses JS `Date` for\n * date32/date64 and plain number/bigint elsewhere. `'raw'` uses the branded\n * unit-carrying aliases (Date32, TimestampMicros, UnscaledDecimal, …). The\n * choice flows into compute()'s statically-checked return type and selects\n * the runtime converter used to build the output column.\n */\n repr?: M;\n /**\n * Process: receives the columnar input batch + const values, returns the\n * output column as an array/iterable of values (statically typed from\n * `returns` and `repr`) or a pre-built VgiBatch.\n */\n compute: (\n batch: VgiBatch,\n consts: Record<string, any>,\n info: {\n settings: Record<string, any>;\n secrets: Record<string, Record<string, any>>;\n auth: AuthContext;\n }\n // NoInfer pins R/M from `returns`/`repr` so the compute return type is\n // CHECKED against them rather than widening them to fit a wrong value.\n ) => ScalarComputeResult<NoInfer<R>, NoInfer<M>>;\n // Metadata\n stability?: FunctionStability;\n nullHandling?: NullHandling;\n examples?: FunctionExample[];\n categories?: string[];\n tags?: Record<string, string>;\n maxWorkers?: number;\n requiredSettings?: string[];\n requiredSecrets?: string[];\n}\n\nexport function defineScalarFunction<\n P extends Record<string, VgiDataType> = Record<string, VgiDataType>,\n R extends VgiDataType = VgiDataType,\n M extends Repr = \"rich\",\n>(config: ScalarFunctionConfig<P, R, M>): VgiFunction {\n const repr: Repr = config.repr ?? \"rich\";\n // Build argument specs\n const specs: ArgumentSpec[] = [];\n\n if (config.parameters) {\n // Ordered parameter list — supports arbitrary interleaving of const/non-const\n for (const [idx, p] of config.parameters.entries()) {\n const isAny = isNull(p.type);\n specs.push({\n name: p.name,\n position: idx,\n arrowType: isAny ? nullType() : p.type,\n isAnyType: isAny,\n isConst: p.const,\n isVarargs: p.varargs,\n doc: p.doc,\n ...constraintSpecFields(p),\n });\n }\n } else {\n // Legacy: params first, then constParams\n let posIdx = 0;\n\n if (config.params) {\n for (const [name, type] of Object.entries(config.params)) {\n const isAny = isNull(type);\n specs.push({\n name,\n position: posIdx++,\n arrowType: isAny ? nullType() : type,\n isAnyType: isAny,\n doc: config.argDocs?.[name],\n });\n }\n }\n\n if (config.constParams) {\n for (const [name, type] of Object.entries(config.constParams)) {\n specs.push({\n name,\n position: posIdx++,\n arrowType: type,\n isConst: true,\n doc: config.argDocs?.[name],\n });\n }\n }\n }\n\n // Raw const-arg constraints for bind-time enforcement, keyed by arg name.\n // Only the ordered `parameters` API carries constraints (the legacy\n // params/constParams path does not), so only its const params appear here.\n const constConstraints = new Map<string, ArgumentConstraints>();\n if (config.parameters) {\n for (const p of config.parameters) {\n if (\n p.const &&\n (p.choices !== undefined ||\n p.ge !== undefined ||\n p.le !== undefined ||\n p.gt !== undefined ||\n p.lt !== undefined ||\n p.pattern !== undefined)\n ) {\n constConstraints.set(p.name, p);\n }\n }\n }\n\n const meta: FunctionMeta = {\n name: config.name,\n description: config.description,\n stability: config.stability,\n nullHandling: config.nullHandling,\n examples: config.examples,\n categories: config.categories,\n tags: config.tags,\n maxWorkers: config.maxWorkers,\n requiredSettings: config.requiredSettings,\n requiredSecrets: config.requiredSecrets,\n };\n\n // Default output schema for catalog registration.\n // Static returns: use the declared type.\n // Dynamic outputType: use null with vgi:any metadata (matches Python convention).\n const defaultOutputSchema = config.returns\n ? makeSchema([field(\"result\", config.returns, true)])\n : makeSchema([field(\"result\", nullType(), true, new Map([[\"vgi:any\", \"true\"]]))]);\n\n return {\n kind: \"scalar\",\n meta,\n argumentSpecs: specs,\n defaultOutputSchema,\n\n async bind(request: BindRequest): Promise<BindResponse> {\n const settings = batchToScalarDict(request.settings);\n const secrets = batchToSecretDict(request.secrets);\n\n // Extract constant args from the Arguments.\n // DuckDB only sends const arg values in Arguments (column args are in inputSchema).\n // Arguments are indexed sequentially (0, 1, ...) for const args only.\n const constArgs: Record<string, any> = {};\n {\n let constIdx = 0;\n for (const spec of specs) {\n if (spec.isConst) {\n const value = request.arguments.get(constIdx, undefined);\n constArgs[spec.name] = value;\n // Enforce declared const-arg constraints at bind (choices/range/pattern).\n const constraints = constConstraints.get(spec.name);\n if (constraints) validateConstConstraints(spec.name, constraints, value);\n constIdx++;\n }\n }\n }\n\n // Determine output type\n let outputType: VgiDataType;\n if (config.outputType) {\n outputType = await config.outputType({\n constArgs,\n argumentsSchema: request.input_schema ?? makeSchema([]),\n settings,\n secrets,\n bindCall: request,\n });\n } else if (config.returns) {\n outputType = config.returns;\n } else {\n throw new Error(\n `Scalar function '${config.name}' must specify either 'returns' or 'outputType'`\n );\n }\n\n const outputSchema = makeSchema([\n field(\"result\", outputType, true),\n ]);\n\n return { output_schema: outputSchema, opaque_data: null };\n },\n\n globalInit(request: InitRequest): GlobalInitResponse {\n const executionId = new Uint8Array(16);\n crypto.getRandomValues(executionId);\n return {\n max_workers: config.maxWorkers ?? DEFAULT_MAX_WORKERS,\n execution_id: executionId,\n opaque_data: null,\n };\n },\n\n createStreamHandlers(\n request: InitRequest,\n response: GlobalInitResponse\n ): StreamHandlers {\n const outputSchema = request.output_schema;\n const settings = batchToScalarDict(request.bind_call.settings);\n const secrets = batchToSecretDict(request.bind_call.secrets);\n\n // Extract const args (DuckDB only sends const values, indexed sequentially)\n const constArgs: Record<string, any> = {};\n let constIdx = 0;\n for (const spec of specs) {\n if (spec.isConst) {\n constArgs[spec.name] = request.bind_call.arguments.get(constIdx, undefined);\n constIdx++;\n }\n }\n\n const inputSchema = request.bind_call.input_schema;\n\n return {\n outputSchema,\n inputSchema: inputSchema ?? undefined,\n exchangeInit: () => ({}),\n exchangeFn: (state: any, input: VgiBatch, out: OutputCollector) => {\n const result = config.compute(input as any, constArgs, { settings, secrets, auth: out.auth });\n\n // Build output batch\n let outputBatch: VgiBatch;\n if (isBatch(result)) {\n outputBatch = result as VgiBatch;\n } else if (Array.isArray(result)) {\n // Array of values -> single column. Route through batchFromColumns\n // so complex types (Decimal, BigInt-backed Timestamp/Duration,\n // List, Map, Struct) are built via our buildColumnData. The `repr`\n // selects raw<->canonical (branded) vs rich<->canonical conversion.\n const fieldName = outputSchema.fields[0].name;\n outputBatch = batchFromColumns({ [fieldName]: result }, outputSchema, repr);\n } else {\n // User returned an Arrow Vector / typed-array-shaped column. Iterate\n // it into a JS array and re-route through batchFromColumns. Adds an\n // O(n) copy but matches both backends' contract.\n const fieldName = outputSchema.fields[0].name;\n outputBatch = batchFromColumns({ [fieldName]: [...(result as Iterable<any>)] }, outputSchema, repr);\n }\n\n // Validate row count\n if (outputBatch.numRows !== input.numRows) {\n throw new RowCountMismatchError(\n input.numRows,\n outputBatch.numRows\n );\n }\n\n out.emit(outputBatch);\n },\n };\n },\n };\n}\n",
23
24
  "// Copyright 2025, 2026 Query Farm LLC - https://query.farm\n// VGI core types - enums and constants matching Python wire format exactly.\n\nexport enum FunctionType {\n SCALAR = \"scalar\",\n TABLE = \"table\",\n AGGREGATE = \"aggregate\",\n}\n\nexport enum FunctionStability {\n CONSISTENT = \"CONSISTENT\",\n VOLATILE = \"VOLATILE\",\n CONSISTENT_WITHIN_QUERY = \"CONSISTENT_WITHIN_QUERY\",\n}\n\nexport enum NullHandling {\n DEFAULT = \"DEFAULT\",\n SPECIAL = \"SPECIAL\",\n}\n\nexport enum OrderPreservation {\n /** Output rows are in same order as input rows (DuckDB INSERTION_ORDER). */\n PRESERVES_ORDER = \"PRESERVES_ORDER\",\n /** Output order is undefined; may be reordered (DuckDB NO_ORDER). */\n NO_ORDER_GUARANTEE = \"NO_ORDER_GUARANTEE\",\n /** Output is in a fixed mandatory order; DuckDB serialises the pipeline\n * (single worker) to preserve it (DuckDB FIXED_ORDER). */\n FIXED_ORDER = \"FIXED_ORDER\",\n}\n\nexport enum OrderDependence {\n ORDER_DEPENDENT = \"ORDER_DEPENDENT\",\n NOT_ORDER_DEPENDENT = \"NOT_ORDER_DEPENDENT\",\n}\n\nexport enum DistinctDependence {\n DISTINCT_DEPENDENT = \"DISTINCT_DEPENDENT\",\n NOT_DISTINCT_DEPENDENT = \"NOT_DISTINCT_DEPENDENT\",\n}\n\nexport enum TableInOutPhase {\n INPUT = \"INPUT\",\n FINALIZE = \"FINALIZE\",\n // Sink+Source (TableBufferingFunction) init phases. TABLE_BUFFERING is the\n // sink-side init (persist init metadata so any pool worker can serve\n // process/combine); TABLE_BUFFERING_FINALIZE is the per-finalize_state_id\n // Source-stream init.\n TABLE_BUFFERING = \"TABLE_BUFFERING\",\n TABLE_BUFFERING_FINALIZE = \"TABLE_BUFFERING_FINALIZE\",\n}\n\n// Arrow schema metadata keys (must match Python exactly - bytes in Python, strings in TS)\nexport const VGI_ARG_KEY = \"vgi_arg\";\nexport const VGI_ARG_NAMED = \"named\";\nexport const VGI_TYPE_KEY = \"vgi_type\";\nexport const VGI_TYPE_TABLE = \"table\";\nexport const VGI_TYPE_ANY = \"any\";\nexport const VGI_VARARGS_KEY = \"vgi_varargs\";\nexport const VGI_VARARGS_TRUE = \"true\";\nexport const VGI_CONST_KEY = \"vgi_const\";\nexport const VGI_CONST_TRUE = \"true\";\n// Per-argument description (UTF-8; presence-only). `vgi_doc_*` prefix reserved.\nexport const VGI_DOC_KEY = \"vgi_doc\";\n\n// Per-argument constraint metadata for agent discovery. All presence-only\n// (omitted when absent) and value-encoded as UTF-8 so the surfaced column type\n// stays uniform regardless of the arg's value type:\n// vgi_default — JSON scalar (the arg's default value; optional args only)\n// vgi_choices — JSON array (the closed set of allowed values)\n// vgi_range — interval notation built from ge/le/gt/lt (e.g. \"[0, 100]\",\n// \"(0, +inf)\", \"[1, 10)\"); a discovery surface, not raw bounds\n// vgi_pattern — raw regex the value must match (open set)\n// Kept byte-for-byte in sync with the C++ reader and the Python/other SDKs.\nexport const VGI_DEFAULT_KEY = \"vgi_default\";\nexport const VGI_CHOICES_KEY = \"vgi_choices\";\nexport const VGI_RANGE_KEY = \"vgi_range\";\nexport const VGI_PATTERN_KEY = \"vgi_pattern\";\n\nexport interface TableCardinality {\n estimate: number | null;\n max: number | null;\n}\n\n// Default max workers (matches Python DEFAULT_MAX_WORKERS = 99999)\nexport const DEFAULT_MAX_WORKERS = 99999;\n",
24
25
  "// Copyright 2025, 2026 Query Farm LLC - https://query.farm\n// VGI-specific error classes.\n\nexport class VgiError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"VgiError\";\n }\n}\n\nexport class RowCountMismatchError extends VgiError {\n constructor(expected: number, actual: number) {\n super(\n `Scalar function output row count (${actual}) does not match ` +\n `input row count (${expected})`\n );\n this.name = \"RowCountMismatchError\";\n }\n}\n\nexport class FunctionNotFoundError extends VgiError {\n constructor(name: string, available?: string[]) {\n super(`Unknown function '${name}'`);\n this.name = \"FunctionNotFoundError\";\n }\n}\n\nexport class CatalogReadOnlyError extends VgiError {\n constructor(operation: string) {\n super(`catalog is read-only: ${operation} is not supported`);\n this.name = \"CatalogReadOnlyError\";\n }\n}\n\nexport class CatalogNotFoundError extends VgiError {\n constructor(entity: string, name: string) {\n super(`${entity} '${name}' not found`);\n this.name = \"CatalogNotFoundError\";\n }\n}\n\nexport class CatalogAlreadyExistsError extends VgiError {\n constructor(entity: string, name: string) {\n super(`${entity} '${name}' already exists`);\n this.name = \"CatalogAlreadyExistsError\";\n }\n}\n\nexport class ArgumentValidationError extends VgiError {\n constructor(message: string) {\n super(message);\n this.name = \"ArgumentValidationError\";\n }\n}\n\nexport class NoCatalogError extends VgiError {\n constructor() {\n super(\"No catalog is configured for this worker\");\n this.name = \"NoCatalogError\";\n }\n}\n",
25
26
  "// Copyright 2025, 2026 Query Farm LLC - https://query.farm\n// ArgumentSpec: converts function argument definitions to Arrow schema with VGI metadata keys.\n// Must produce byte-identical schemas to Python's argument_specs_to_schema().\n\nimport { type VgiSchema, schema as schema_, type VgiField, field as field_, type VgiDataType, nullType, deserializeBatch } from \"../arrow/index.js\";\nimport {\n VGI_ARG_KEY,\n VGI_ARG_NAMED,\n VGI_TYPE_KEY,\n VGI_TYPE_TABLE,\n VGI_TYPE_ANY,\n VGI_VARARGS_KEY,\n VGI_VARARGS_TRUE,\n VGI_CONST_KEY,\n VGI_CONST_TRUE,\n VGI_DOC_KEY,\n VGI_DEFAULT_KEY,\n VGI_CHOICES_KEY,\n VGI_RANGE_KEY,\n VGI_PATTERN_KEY,\n} from \"../types.js\";\nimport { ArgumentValidationError } from \"../errors.js\";\n\nexport interface ArgumentSpec {\n name: string;\n position: number | string;\n arrowType: VgiDataType;\n isTableInput?: boolean;\n isAnyType?: boolean;\n isVarargs?: boolean;\n isConst?: boolean;\n doc?: string;\n /**\n * Discovery-facing constraint metadata, pre-encoded to their surfaced UTF-8\n * forms (presence-only — `undefined` means the constraint is absent and the\n * corresponding field-metadata key is omitted entirely). Mirrors Python's\n * `ArgumentSpec.default_json` / `choices_json` / `range_notation` / `pattern`\n * so `argumentSpecsToSchema`/`schemaToArgumentSpecs` round-trip symmetrically.\n */\n defaultJson?: string;\n choicesJson?: string;\n rangeNotation?: string;\n pattern?: string;\n}\n\n/**\n * Raw per-argument constraint declarations, as authored on a function's\n * argument descriptor. Encoded into the pre-computed {@link ArgumentSpec}\n * constraint fields via {@link constraintSpecFields}.\n */\nexport interface ArgumentConstraints {\n /** Closed set of allowed values (JSON-encoded into `vgi_choices`). */\n choices?: readonly unknown[];\n /** Inclusive lower bound (`>=`). */\n ge?: number;\n /** Inclusive upper bound (`<=`). */\n le?: number;\n /** Exclusive lower bound (`>`). */\n gt?: number;\n /** Exclusive upper bound (`<`). */\n lt?: number;\n /** Regex the value must match (surfaced as `vgi_pattern`, as-is). */\n pattern?: string;\n /** Default value (JSON-encoded into `vgi_default`); optional args only. */\n default?: unknown;\n}\n\n/** `JSON.stringify`, falling back to the value's string form when unserializable. */\nfunction safeJson(value: unknown): string {\n try {\n const encoded = JSON.stringify(value);\n // JSON.stringify returns undefined for functions/symbols/undefined.\n if (encoded === undefined) {\n return JSON.stringify(String(value));\n }\n return encoded;\n } catch {\n return JSON.stringify(String(value));\n }\n}\n\n/**\n * Build interval notation from an argument's numeric bounds.\n *\n * Inclusive bounds (`ge`/`le`) render as square brackets, exclusive bounds\n * (`gt`/`lt`) as parentheses, and an open side as `-inf`/`+inf`. Returns\n * `undefined` when the argument has no numeric bound at all.\n *\n * Examples: `ge=0,le=10` -> `\"[0, 10]\"`; `gt=0` -> `\"(0, +inf)\"`;\n * `ge=1,lt=10` -> `\"[1, 10)\"`.\n */\nexport function formatRange(\n ge?: number,\n le?: number,\n gt?: number,\n lt?: number,\n): string | undefined {\n if (ge === undefined && le === undefined && gt === undefined && lt === undefined) {\n return undefined;\n }\n let low: string;\n if (gt !== undefined) {\n low = `(${gt}`;\n } else if (ge !== undefined) {\n low = `[${ge}`;\n } else {\n low = \"(-inf\";\n }\n let high: string;\n if (lt !== undefined) {\n high = `${lt})`;\n } else if (le !== undefined) {\n high = `${le}]`;\n } else {\n high = \"+inf)\";\n }\n return `${low}, ${high}`;\n}\n\n/**\n * Encode raw {@link ArgumentConstraints} into the pre-computed constraint\n * fields of an {@link ArgumentSpec} (presence-only — absent constraints yield\n * no field). Mirrors Python's `_constraint_kwargs`.\n */\nexport function constraintSpecFields(\n constraints: ArgumentConstraints | undefined,\n): Pick<ArgumentSpec, \"defaultJson\" | \"choicesJson\" | \"rangeNotation\" | \"pattern\"> {\n const fields: Pick<\n ArgumentSpec,\n \"defaultJson\" | \"choicesJson\" | \"rangeNotation\" | \"pattern\"\n > = {};\n if (constraints === undefined) return fields;\n\n if (\"default\" in constraints && constraints.default !== undefined) {\n fields.defaultJson = safeJson(constraints.default);\n }\n if (constraints.choices !== undefined) {\n fields.choicesJson = safeJson([...constraints.choices]);\n }\n const range = formatRange(\n constraints.ge,\n constraints.le,\n constraints.gt,\n constraints.lt,\n );\n if (range !== undefined) {\n fields.rangeNotation = range;\n }\n if (constraints.pattern !== undefined) {\n fields.pattern = constraints.pattern;\n }\n return fields;\n}\n\n/** Coerce a numeric const value (number or int64 `bigint`) to `number`. */\nfunction toNumber(value: unknown): number | undefined {\n if (typeof value === \"number\") return value;\n if (typeof value === \"bigint\") return Number(value);\n return undefined;\n}\n\n/** Equality for a choice comparison, coercing numeric/bigint operands. */\nfunction choiceEquals(choice: unknown, value: unknown): boolean {\n const cn = toNumber(choice);\n const vn = toNumber(value);\n if (cn !== undefined && vn !== undefined) return cn === vn;\n return choice === value;\n}\n\n/**\n * Enforce a bind-time const value against its declared {@link ArgumentConstraints},\n * throwing {@link ArgumentValidationError} on violation. Mirrors the Python SDK's\n * `Arg._validate`: numeric range (`ge`/`le`/`gt`/`lt`), closed choice set, and\n * regex `pattern`. A `null`/`undefined` value skips its value constraints.\n */\nexport function validateConstConstraints(\n name: string,\n constraints: ArgumentConstraints,\n value: unknown,\n): void {\n if (value === null || value === undefined) return;\n\n const num = toNumber(value);\n if (num !== undefined) {\n if (constraints.ge !== undefined && num < constraints.ge) {\n throw new ArgumentValidationError(`argument '${name}' must be >= ${constraints.ge}`);\n }\n if (constraints.le !== undefined && num > constraints.le) {\n throw new ArgumentValidationError(`argument '${name}' must be <= ${constraints.le}`);\n }\n if (constraints.gt !== undefined && num <= constraints.gt) {\n throw new ArgumentValidationError(`argument '${name}' must be > ${constraints.gt}`);\n }\n if (constraints.lt !== undefined && num >= constraints.lt) {\n throw new ArgumentValidationError(`argument '${name}' must be < ${constraints.lt}`);\n }\n }\n\n if (constraints.choices !== undefined && constraints.choices.length > 0) {\n if (!constraints.choices.some((c) => choiceEquals(c, value))) {\n throw new ArgumentValidationError(\n `argument '${name}' must be one of ${JSON.stringify([...constraints.choices])}`,\n );\n }\n }\n\n if (constraints.pattern !== undefined && typeof value === \"string\") {\n let re: RegExp | undefined;\n try {\n re = new RegExp(constraints.pattern);\n } catch {\n re = undefined; // an invalid declared regex must not reject the caller\n }\n if (re !== undefined && !re.test(value)) {\n throw new ArgumentValidationError(\n `argument '${name}' must match pattern ${JSON.stringify(constraints.pattern)}`,\n );\n }\n }\n}\n\nfunction argumentSpecSortKey(spec: ArgumentSpec): [number, number | string] {\n if (typeof spec.position === \"number\") {\n return [0, spec.position];\n }\n return [1, spec.position];\n}\n\n/**\n * Convert ArgumentSpecs to an Arrow Schema with VGI metadata keys.\n * Positional arguments come first (in order), named arguments follow.\n */\nexport function argumentSpecsToSchema(specs: ArgumentSpec[]): VgiSchema {\n const sorted = [...specs].sort((a, b) => {\n const ka = argumentSpecSortKey(a);\n const kb = argumentSpecSortKey(b);\n if (ka[0] !== kb[0]) return ka[0] - kb[0];\n if (typeof ka[1] === \"number\" && typeof kb[1] === \"number\") {\n return ka[1] - kb[1];\n }\n return String(ka[1]).localeCompare(String(kb[1]));\n });\n\n const fields: VgiField[] = [];\n for (const spec of sorted) {\n const metadata: Map<string, string> = new Map();\n\n if (typeof spec.position === \"string\") {\n metadata.set(VGI_ARG_KEY, VGI_ARG_NAMED);\n }\n\n if (spec.isTableInput) {\n metadata.set(VGI_TYPE_KEY, VGI_TYPE_TABLE);\n } else if (spec.isAnyType) {\n metadata.set(VGI_TYPE_KEY, VGI_TYPE_ANY);\n }\n\n if (spec.isVarargs) {\n metadata.set(VGI_VARARGS_KEY, VGI_VARARGS_TRUE);\n }\n\n if (spec.isConst) {\n metadata.set(VGI_CONST_KEY, VGI_CONST_TRUE);\n }\n\n // Per-argument description (UTF-8; presence-only — omit when empty).\n if (spec.doc) {\n metadata.set(VGI_DOC_KEY, spec.doc);\n }\n\n // Per-argument constraint metadata (presence-only; already value-encoded).\n if (spec.defaultJson !== undefined) {\n metadata.set(VGI_DEFAULT_KEY, spec.defaultJson);\n }\n if (spec.choicesJson !== undefined) {\n metadata.set(VGI_CHOICES_KEY, spec.choicesJson);\n }\n if (spec.rangeNotation !== undefined) {\n metadata.set(VGI_RANGE_KEY, spec.rangeNotation);\n }\n if (spec.pattern !== undefined) {\n metadata.set(VGI_PATTERN_KEY, spec.pattern);\n }\n\n const field = field_(\n spec.name,\n spec.arrowType,\n true,\n metadata.size > 0 ? metadata : undefined\n );\n fields.push(field);\n }\n\n return schema_(fields);\n}\n\n// =============================================================================\n// Macro Argument Schemas\n// =============================================================================\n\n/**\n * Build a macro `arguments_schema` describing macro parameters.\n *\n * Mirrors the function `arguments_schema` mechanism: one Arrow field per macro\n * parameter, in `parameters` order, each nullable. The per-parameter\n * description is carried via the same `vgi_doc` field-metadata key functions use\n * (UTF-8, presence-only — the key is omitted entirely when there is no doc). A\n * parameter's field type is the type of its default value when one is known\n * (decoded from `parameterDefaultValues`, a one-row RecordBatch serialized as\n * IPC bytes), else `nullType()`.\n *\n * @param parameters Ordered list of macro parameter names.\n * @param parameterDefaultValues Optional one-row RecordBatch (IPC bytes) whose\n * columns are parameter names with typed default values; used to infer each\n * parameter's field type.\n * @param parameterDocs Optional mapping of parameter name to description. Empty\n * or missing descriptions yield no `vgi_doc` metadata on the field.\n * @returns Arrow schema with one nullable field per parameter, in order.\n */\nexport function macroArgumentsSchema(\n parameters: string[],\n parameterDefaultValues?: Uint8Array | null,\n parameterDocs?: Record<string, string>,\n): VgiSchema {\n const docs = parameterDocs ?? {};\n\n // Map parameter name -> Arrow type from the typed default values, if any.\n const defaultTypes: Map<string, VgiDataType> = new Map();\n if (parameterDefaultValues && parameterDefaultValues.length > 0) {\n const batch = deserializeBatch(parameterDefaultValues);\n for (const f of batch.schema.fields) {\n defaultTypes.set(f.name, f.type);\n }\n }\n\n const fields: VgiField[] = [];\n for (const name of parameters) {\n const metadata: Map<string, string> = new Map();\n const doc = docs[name];\n if (doc) {\n metadata.set(VGI_DOC_KEY, doc);\n }\n const fieldType = defaultTypes.get(name) ?? nullType();\n fields.push(field_(name, fieldType, true, metadata.size > 0 ? metadata : undefined));\n }\n\n return schema_(fields);\n}\n\n/**\n * Extract per-parameter descriptions from a macro `arguments_schema`.\n *\n * Inverse of {@link macroArgumentsSchema}'s `vgi_doc` handling: reads the\n * `vgi_doc` field metadata (UTF-8) for each field. Fields without the key\n * (undocumented) are omitted from the result.\n *\n * @param schema A macro `arguments_schema` (one field per parameter).\n * @returns Mapping of parameter name to description, for documented parameters only.\n */\nexport function macroParameterDocsFromSchema(schema: VgiSchema): Record<string, string> {\n const docs: Record<string, string> = {};\n for (const field of schema.fields) {\n const doc = field.metadata.get(VGI_DOC_KEY);\n if (doc) {\n docs[field.name] = doc;\n }\n }\n return docs;\n}\n\n/**\n * Convert an Arrow Schema back to ArgumentSpecs.\n */\nexport function schemaToArgumentSpecs(schema: VgiSchema): ArgumentSpec[] {\n const specs: ArgumentSpec[] = [];\n let positionIndex = 0;\n\n for (const field of schema.fields) {\n const metadata = field.metadata;\n\n const isNamed = metadata.get(VGI_ARG_KEY) === VGI_ARG_NAMED;\n const position: number | string = isNamed\n ? field.name\n : positionIndex++;\n\n const vgiType = metadata.get(VGI_TYPE_KEY);\n const isTableInput = vgiType === VGI_TYPE_TABLE;\n const isAnyType = vgiType === VGI_TYPE_ANY;\n const isVarargs = metadata.get(VGI_VARARGS_KEY) === VGI_VARARGS_TRUE;\n const isConst = metadata.get(VGI_CONST_KEY) === VGI_CONST_TRUE;\n const doc = metadata.get(VGI_DOC_KEY) ?? \"\";\n\n // Per-argument constraint metadata (absent key -> undefined).\n const defaultJson = metadata.get(VGI_DEFAULT_KEY);\n const choicesJson = metadata.get(VGI_CHOICES_KEY);\n const rangeNotation = metadata.get(VGI_RANGE_KEY);\n const pattern = metadata.get(VGI_PATTERN_KEY);\n\n specs.push({\n name: field.name,\n position,\n arrowType: field.type,\n isTableInput,\n isAnyType,\n isVarargs,\n isConst,\n doc,\n defaultJson,\n choicesJson,\n rangeNotation,\n pattern,\n });\n }\n\n return specs;\n}\n",
26
27
  "// Copyright 2025, 2026 Query Farm LLC - https://query.farm\n// Back-compat shim. Arrow utilities have moved to src/arrow/ (the backend\n// facade). This file is kept so existing imports of `../util/arrow/index.js`\n// continue to work during step 2 of the facade migration. Once all callers\n// have switched to `../arrow/index.js`, this file can be deleted.\n\nexport {\n emptyBatch,\n batchFromRows,\n batchFromColumns,\n iterRows,\n batchToScalarDict,\n batchToSecretDict,\n safeNumber,\n decodeDictValue,\n filterBatch,\n projectSchema,\n projectBatch,\n serializeSchema,\n deserializeSchema,\n serializeBatch,\n deserializeBatch,\n} from \"../../arrow/index.js\";\n",
27
- "// Copyright 2025, 2026 Query Farm LLC - https://query.farm\n// Table function implementation.\n// Table functions produce output batches from arguments (no streaming input).\n\nimport {\n type VgiSchema,\n type VgiBatch,\n type VgiDataType,\n isBatch,\n isNull,\n nullType,\n deserializeBatch,\n readCanonicalValue,\n} from \"../arrow/index.js\";\nimport { codecFor } from \"../arrow/codec/registry.js\";\nimport type { OutputCollector } from \"@query-farm/vgi-rpc\";\nimport { DEFAULT_MAX_WORKERS } from \"../types.js\";\nimport type {\n BindRequest,\n BindResponse,\n InitRequest,\n GlobalInitResponse,\n TableFunctionCardinalityRequest,\n TableCardinality,\n} from \"../protocol/types.js\";\nimport type {\n VgiFunction,\n FunctionMeta,\n StreamHandlers,\n FunctionExample,\n} from \"./types.js\";\nimport {\n constraintSpecFields,\n validateConstConstraints,\n type ArgumentSpec,\n type ArgumentConstraints,\n} from \"../arguments/argument-spec.js\";\nimport { batchToScalarDict, batchToSecretDict, projectSchema, safeNumber } from \"../util/arrow/index.js\";\nimport {\n buildJoinKeysLookup,\n deserializeFilters,\n FilteringOutputCollector,\n type PushdownFilters,\n} from \"../filter-pushdown/index.js\";\nimport type { ColumnStatistics } from \"../util/statistics.js\";\nimport {\n FunctionStability,\n type NullHandling,\n type OrderPreservation,\n type OrderDependence,\n type DistinctDependence,\n} from \"../types.js\";\nimport { BoundStorage, storage as globalStorage } from \"./storage.js\";\n\n// Base64-decode a string into raw bytes. Used to unpack the dynamic filter\n// update DuckDB attaches to each tick batch's custom metadata.\nfunction base64Decode(s: string): Uint8Array {\n const bin = (globalThis as any).atob ? (globalThis as any).atob(s) : Buffer.from(s, \"base64\").toString(\"binary\");\n const out = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; i++) out[i] = bin.charCodeAt(i);\n return out;\n}\n\n// Read the first RecordBatch from an Arrow IPC stream buffer. Returns null if\n// the stream has no batches.\nfunction deserializeFilterBatch(bytes: Uint8Array): VgiBatch | null {\n if (!bytes || bytes.length === 0) return null;\n const batch = deserializeBatch(bytes);\n return batch.numRows === 0 && batch.schema.fields.length === 0 ? null : batch;\n}\n\n// Wrap an OutputCollector so each emitted RecordBatch is projected-by-name\n// to the bound outputSchema before forwarding. Lenient: workers can emit\n// over-wide batches (full declared schema) and the framework drops the\n// columns DuckDB didn't ask for. Field name mismatches yield null columns\n// rather than wrong-position reads. Field types must already match.\nfunction makeProjectingCollector(inner: OutputCollector, targetSchema: VgiSchema): OutputCollector {\n // Single-pass guard: don't project when a batch already matches.\n function alreadyMatches(batch: VgiBatch): boolean {\n if (batch.schema.fields.length !== targetSchema.fields.length) return false;\n for (let i = 0; i < targetSchema.fields.length; i++) {\n if (batch.schema.fields[i].name !== targetSchema.fields[i].name) return false;\n }\n return true;\n }\n function project(batch: VgiBatch): VgiBatch {\n if (alreadyMatches(batch)) return batch;\n const { batchFromColumns } = require(\"../arrow/index.js\");\n const cols: Record<string, any[]> = {};\n for (const f of targetSchema.fields) {\n const src = batch.getChild(f.name);\n if (src) {\n // Canonical read -> rich so the rebuild goes through the codec path\n // (backend-agnostic, lossless) rather than the raw `.get(i)`.\n const type = f.type as VgiDataType;\n const codec = codecFor(type);\n const arr: any[] = [];\n for (let i = 0; i < batch.numRows; i++) {\n arr.push(codec.canonicalToRich(readCanonicalValue(type, src, i)));\n }\n cols[f.name] = arr;\n } else {\n cols[f.name] = new Array(batch.numRows).fill(null);\n }\n }\n return batchFromColumns(cols, targetSchema);\n }\n return new Proxy(inner, {\n get(target, prop, receiver) {\n if (prop === \"emit\") {\n return function (this: OutputCollector, batchOrColumns: VgiBatch | Record<string, any[]>, metadata?: Map<string, string>) {\n if (isBatch(batchOrColumns)) {\n return (target as any).emit(project(batchOrColumns), metadata);\n }\n // Object form: vgi-rpc itself converts to a batch via outputSchema,\n // and the user passed columns by name — already aligned.\n return (target as any).emit(batchOrColumns, metadata);\n };\n }\n const v = Reflect.get(target, prop, receiver);\n return typeof v === \"function\" ? v.bind(target) : v;\n },\n });\n}\n\n// ============================================================================\n// Table function parameter bundles\n// ============================================================================\n\nexport interface TableBindParams<TArgs = Record<string, any>> {\n args: TArgs;\n bindCall: BindRequest;\n settings: Record<string, any>;\n secrets: Record<string, Record<string, any>>;\n resolvedSecretsProvided: boolean;\n}\n\nexport interface TableProcessParams<TArgs = Record<string, any>> {\n args: TArgs;\n initCall: InitRequest;\n initResponse: GlobalInitResponse;\n outputSchema: VgiSchema;\n settings: Record<string, any>;\n secrets: Record<string, Record<string, any>>;\n pushdownFilters?: PushdownFilters;\n storage?: BoundStorage;\n /**\n * AT (TIMESTAMP|VERSION) clause for this scan, or `undefined` when the scan\n * has no AT clause. Carried on the per-scan bind embedded in the init request\n * (`initCall.bind_call.at_unit` / `.at_value`), so function-backed tables can\n * read time travel at init alongside their pushdown filters. Mirrors\n * vgi-python's `ProcessParams.at_unit` / `.at_value`. See `BindRequest.at_unit`.\n */\n atUnit?: string;\n atValue?: string;\n}\n\n// ============================================================================\n// Functional API\n// ============================================================================\n\nexport interface TableFunctionConfig<\n TArgs = Record<string, any>,\n TState = null,\n> {\n name: string;\n description?: string;\n /** Argument schema (positional args) */\n args?: Record<string, VgiDataType>;\n /** Argument docs */\n argDocs?: Record<string, string>;\n /** Argument defaults */\n argDefaults?: Record<string, any>;\n /**\n * Per-argument discovery constraints (choices / ge / le / gt / lt / pattern),\n * keyed by argument name. Surfaced via `vgi_function_arguments()` for agent\n * discovery AND enforced at bind: a value violating a declared constraint\n * fails the bind with an ArgumentValidationError.\n */\n argConstraints?: Record<string, ArgumentConstraints>;\n /** Names of args that accept variable number of arguments */\n varargs?: string[];\n /** Bind: return output schema. May be async — handlers `await` the result. */\n onBind: (params: TableBindParams<TArgs>) =>\n | {\n outputSchema: VgiSchema;\n opaqueData?: Uint8Array;\n lookupSecretTypes?: string[];\n lookupScopes?: string[];\n lookupNames?: string[];\n }\n | Promise<{\n outputSchema: VgiSchema;\n opaqueData?: Uint8Array;\n lookupSecretTypes?: string[];\n lookupScopes?: string[];\n lookupNames?: string[];\n }>;\n /** Init (optional). May be async — common when storage is HTTP-backed. */\n onInit?: (params: {\n args: TArgs;\n initCall: InitRequest;\n outputSchema: VgiSchema;\n executionId: Uint8Array;\n storage: BoundStorage;\n }) => GlobalInitResponse | Promise<GlobalInitResponse>;\n /** State factory */\n initialState?: (params: TableProcessParams<TArgs>) => TState;\n /** Process: emit batches via out, call out.finish() when done */\n process: (\n params: TableProcessParams<TArgs>,\n state: TState,\n out: OutputCollector\n ) => void | Promise<void>;\n /** Cardinality hints */\n cardinality?: (params: TableBindParams<TArgs>) => TableCardinality | Promise<TableCardinality>;\n /**\n * Per-column statistics for the function's output. Returned to DuckDB via\n * the `table_function_statistics` RPC; the optimizer uses min/max to\n * eliminate impossible filters at plan time (folding scans to\n * EMPTY_RESULT). Return `null` or an empty array when bounds are unknown.\n */\n statistics?: (params: TableBindParams<TArgs>) => ColumnStatistics[] | null;\n /**\n * Per-execution diagnostics surfaced under EXPLAIN ANALYZE. DuckDB calls\n * this once per parallel scan thread at pipeline FinishSource via the\n * `table_function_dynamic_to_string` RPC. Return ordered key→value\n * strings; the C++ extension merges these with the intrinsic keys\n * (Function, Rows Read, Threads). The framework provides a BoundStorage\n * keyed by the global execution_id so process() can persist counters\n * that this callback then reads back — see profiling_demo for the\n * canonical pattern.\n */\n dynamicToString?: (\n params: TableBindParams<TArgs>,\n executionId: Uint8Array,\n storage: BoundStorage,\n ) => Record<string, string> | Promise<Record<string, string>>;\n // Metadata\n projectionPushdown?: boolean;\n filterPushdown?: boolean;\n samplingPushdown?: boolean;\n /** Opt in to DuckDB's late-materialization SEMI-join rewrite; requires a\n * UNIQUE, snapshot-stable rowid column. FunctionInfo.late_materialization. */\n lateMaterialization?: boolean;\n supportedExpressionFilters?: string[];\n autoApplyFilters?: boolean;\n stability?: FunctionStability;\n examples?: FunctionExample[];\n categories?: string[];\n tags?: Record<string, string>;\n maxWorkers?: number;\n requiredSettings?: string[];\n requiredSecrets?: string[];\n /** Row-order preservation behavior; flows to DuckDB's\n * TableFunction::order_preservation_type. */\n preservesOrder?: OrderPreservation;\n nullHandling?: NullHandling;\n orderDependent?: OrderDependence;\n distinctDependent?: DistinctDependence;\n /** Emit per-batch `vgi_batch_index`; FunctionInfo.supports_batch_index. */\n supportsBatchIndex?: boolean;\n /** Hive-style partition-columns mode; FunctionInfo.partition_kind. */\n partitionKind?: \"NOT_PARTITIONED\" | \"SINGLE_VALUE_PARTITIONS\" | \"OVERLAPPING_PARTITIONS\" | \"DISJOINT_PARTITIONS\";\n}\n\nexport function defineTableFunction<\n TArgs = Record<string, any>,\n TState = null,\n>(config: TableFunctionConfig<TArgs, TState>): VgiFunction {\n // Build argument specs\n const specs: ArgumentSpec[] = [];\n let posIdx = 0;\n\n if (config.args) {\n const varargsSet = new Set(config.varargs ?? []);\n for (const [name, type] of Object.entries(config.args)) {\n const isAny = isNull(type);\n const hasDefault = config.argDefaults?.[name] !== undefined;\n specs.push({\n name,\n // Args with defaults are named (string position), others are positional\n position: hasDefault ? name : posIdx++,\n arrowType: isAny ? nullType() : type,\n isAnyType: isAny,\n isVarargs: varargsSet.has(name),\n doc: config.argDocs?.[name],\n ...constraintSpecFields(config.argConstraints?.[name]),\n });\n }\n }\n\n const meta: FunctionMeta = {\n name: config.name,\n description: config.description,\n stability: config.stability,\n projectionPushdown: config.projectionPushdown,\n filterPushdown: config.filterPushdown,\n samplingPushdown: config.samplingPushdown,\n lateMaterialization: config.lateMaterialization,\n supportedExpressionFilters: config.supportedExpressionFilters,\n autoApplyFilters: config.autoApplyFilters,\n examples: config.examples,\n categories: config.categories,\n tags: config.tags,\n maxWorkers: config.maxWorkers,\n requiredSettings: config.requiredSettings,\n requiredSecrets: config.requiredSecrets,\n preservesOrder: config.preservesOrder,\n nullHandling: config.nullHandling,\n orderDependent: config.orderDependent,\n distinctDependent: config.distinctDependent,\n supportsBatchIndex: config.supportsBatchIndex,\n partitionKind: config.partitionKind,\n };\n\n function extractArgs(request: BindRequest): TArgs {\n const args: Record<string, any> = {};\n for (const spec of specs) {\n const defaultVal =\n config.argDefaults?.[spec.name] !== undefined\n ? config.argDefaults[spec.name]\n : undefined;\n let val: any;\n try {\n val = request.arguments.get(spec.position, defaultVal);\n } catch {\n // Fallback: try by name (for scan function tables where DuckDB\n // converts positional args to named args)\n val = request.arguments.get(spec.name, defaultVal);\n }\n // Arrow Int64 values come through as BigInt — coerce to number\n if (typeof val === \"bigint\") val = safeNumber(val);\n // Enforce declared constraints at bind (table args are all bind-time).\n const constraints = config.argConstraints?.[spec.name];\n if (constraints) validateConstConstraints(spec.name, constraints, val);\n args[spec.name] = val;\n }\n return args as TArgs;\n }\n\n return {\n kind: \"table\",\n meta,\n argumentSpecs: specs,\n\n async bind(request: BindRequest): Promise<BindResponse> {\n const args = extractArgs(request);\n const settings = batchToScalarDict(request.settings);\n const secrets = batchToSecretDict(request.secrets);\n const result = await config.onBind({\n args, bindCall: request, settings, secrets,\n resolvedSecretsProvided: request.resolved_secrets_provided ?? false,\n });\n return {\n output_schema: result.outputSchema,\n opaque_data: result.opaqueData ?? null,\n lookup_secret_types: result.lookupSecretTypes,\n lookup_scopes: result.lookupScopes,\n lookup_names: result.lookupNames,\n };\n },\n\n async globalInit(request: InitRequest): Promise<GlobalInitResponse> {\n const executionId = new Uint8Array(16);\n crypto.getRandomValues(executionId);\n\n if (request.execution_id) {\n // Secondary init - reuse execution ID\n return {\n max_workers: config.maxWorkers ?? 1,\n execution_id: request.execution_id,\n opaque_data: null,\n };\n }\n\n if (config.onInit) {\n const args = extractArgs(request.bind_call);\n const boundStorage = new BoundStorage(globalStorage, executionId);\n return await config.onInit({\n args,\n initCall: request,\n outputSchema: request.output_schema,\n executionId,\n storage: boundStorage,\n });\n }\n\n return {\n max_workers: config.maxWorkers ?? 1,\n execution_id: executionId,\n opaque_data: null,\n };\n },\n\n createStreamHandlers(\n request: InitRequest,\n response: GlobalInitResponse\n ): StreamHandlers {\n const args = extractArgs(request.bind_call);\n const settings = batchToScalarDict(request.bind_call.settings);\n const secrets = batchToSecretDict(request.bind_call.secrets);\n\n // Apply projection pushdown only if the function supports it\n const projIds = request.projection_ids && meta.projectionPushdown\n ? request.projection_ids\n : null;\n const outputSchema = projIds\n ? projectSchema(projIds, request.output_schema)\n : request.output_schema;\n\n // Deserialize pushdown filters. Pass a join-keys column lookup so that\n // filters DuckDB promoted to join_keys (IN/OR lists, etc.) are\n // materialized as InFilters rather than silently dropped.\n const joinKeysLookup = buildJoinKeysLookup(request.join_keys);\n const pushdownFilters = request.pushdown_filters\n ? deserializeFilters(request.pushdown_filters, joinKeysLookup)\n : undefined;\n\n const boundStorage = new BoundStorage(globalStorage, response.execution_id);\n\n const processParams: TableProcessParams<TArgs> = {\n args,\n initCall: request,\n initResponse: response,\n outputSchema,\n settings,\n secrets,\n pushdownFilters,\n storage: boundStorage,\n atUnit: request.bind_call.at_unit ?? undefined,\n atValue: request.bind_call.at_value ?? undefined,\n };\n\n const state = config.initialState\n ? config.initialState(processParams)\n : (null as TState);\n\n return {\n outputSchema,\n producerInit: () => ({ state, processParams }),\n onTick: (\n pState: { state: TState; processParams: TableProcessParams<TArgs> },\n tickMetadata: Map<string, string> | undefined,\n ) => {\n // Dynamic filter pushdown: DuckDB's Top-N optimizer tightens filters\n // between ticks and serializes the current filter into the tick\n // batch's custom metadata under `vgi_pushdown_filters` (base64 of a\n // filter IPC stream). Decode and overwrite the current pushdown\n // filters so process() sees the updated value.\n if (!tickMetadata) return;\n const encoded = tickMetadata.get(\"vgi_pushdown_filters\");\n if (!encoded) return;\n try {\n const bytes = base64Decode(encoded);\n const filterBatch = deserializeFilterBatch(bytes);\n if (filterBatch) {\n const updated = deserializeFilters(filterBatch, joinKeysLookup);\n pState.processParams.pushdownFilters = updated;\n }\n } catch {\n // Malformed dynamic-filter update: keep the previous filter. Not\n // fatal — this is a best-effort optimization hint from DuckDB.\n }\n },\n producerFn: async (\n pState: { state: TState; processParams: TableProcessParams<TArgs> },\n out: OutputCollector\n ) => {\n const current = pState.processParams.pushdownFilters;\n // Auto-project: workers may emit a batch with the function's full\n // declared schema even when DuckDB only requested a subset. Wrap\n // the OutputCollector so each emit() projects-by-name to the\n // bound outputSchema. Lenient: absent fields become null columns.\n let wrappedOut: OutputCollector =\n outputSchema && projIds\n ? makeProjectingCollector(out, outputSchema)\n : out;\n if (config.autoApplyFilters && current) {\n wrappedOut = new FilteringOutputCollector(wrappedOut, current) as unknown as OutputCollector;\n }\n await config.process(pState.processParams, pState.state, wrappedOut);\n },\n };\n },\n\n cardinality: config.cardinality\n ? (request: TableFunctionCardinalityRequest) => {\n const args = extractArgs(request.bind_call);\n const settings = batchToScalarDict(request.bind_call.settings);\n const secrets = batchToSecretDict(request.bind_call.secrets);\n return config.cardinality!({\n args,\n bindCall: request.bind_call,\n settings,\n secrets,\n resolvedSecretsProvided: request.bind_call.resolved_secrets_provided ?? false,\n });\n }\n : undefined,\n\n statistics: config.statistics\n ? (request: TableFunctionCardinalityRequest) => {\n const args = extractArgs(request.bind_call);\n const settings = batchToScalarDict(request.bind_call.settings);\n const secrets = batchToSecretDict(request.bind_call.secrets);\n return config.statistics!({\n args,\n bindCall: request.bind_call,\n settings,\n secrets,\n resolvedSecretsProvided: request.bind_call.resolved_secrets_provided ?? false,\n });\n }\n : undefined,\n\n dynamicToString: config.dynamicToString\n ? (request) => {\n const args = extractArgs(request.bindCall);\n const settings = batchToScalarDict(request.bindCall.settings);\n const secrets = batchToSecretDict(request.bindCall.secrets);\n const storage = new BoundStorage(globalStorage, request.globalExecutionId);\n return config.dynamicToString!(\n {\n args,\n bindCall: request.bindCall,\n settings,\n secrets,\n resolvedSecretsProvided: request.bindCall.resolved_secrets_provided ?? false,\n },\n request.globalExecutionId,\n storage,\n );\n }\n : undefined,\n };\n}\n",
28
+ "// Copyright 2025, 2026 Query Farm LLC - https://query.farm\n// Table function implementation.\n// Table functions produce output batches from arguments (no streaming input).\n\nimport {\n type VgiSchema,\n type VgiBatch,\n type VgiDataType,\n isBatch,\n isNull,\n nullType,\n deserializeBatch,\n readCanonicalValue,\n} from \"../arrow/index.js\";\nimport { codecFor } from \"../arrow/codec/registry.js\";\nimport type { OutputCollector } from \"@query-farm/vgi-rpc\";\nimport { DEFAULT_MAX_WORKERS } from \"../types.js\";\nimport type {\n BindRequest,\n BindResponse,\n InitRequest,\n GlobalInitResponse,\n TableFunctionCardinalityRequest,\n TableCardinality,\n} from \"../protocol/types.js\";\nimport type {\n VgiFunction,\n FunctionMeta,\n StreamHandlers,\n FunctionExample,\n} from \"./types.js\";\nimport {\n constraintSpecFields,\n validateConstConstraints,\n type ArgumentSpec,\n type ArgumentConstraints,\n} from \"../arguments/argument-spec.js\";\nimport { batchToScalarDict, batchToSecretDict, projectSchema, safeNumber } from \"../util/arrow/index.js\";\nimport {\n buildJoinKeysLookup,\n deserializeFilters,\n FilteringOutputCollector,\n type PushdownFilters,\n} from \"../filter-pushdown/index.js\";\nimport type { ColumnStatistics } from \"../util/statistics.js\";\nimport {\n FunctionStability,\n type NullHandling,\n type OrderPreservation,\n type OrderDependence,\n type DistinctDependence,\n} from \"../types.js\";\nimport { BoundStorage, storage as globalStorage } from \"./storage.js\";\nimport { CACHE_IF_MODIFIED_SINCE_KEY, CACHE_IF_NONE_MATCH_KEY } from \"../cache-control.js\";\n\n// Base64-decode a string into raw bytes. Used to unpack the dynamic filter\n// update DuckDB attaches to each tick batch's custom metadata.\nfunction base64Decode(s: string): Uint8Array {\n const bin = (globalThis as any).atob ? (globalThis as any).atob(s) : Buffer.from(s, \"base64\").toString(\"binary\");\n const out = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; i++) out[i] = bin.charCodeAt(i);\n return out;\n}\n\n// Read the first RecordBatch from an Arrow IPC stream buffer. Returns null if\n// the stream has no batches.\nfunction deserializeFilterBatch(bytes: Uint8Array): VgiBatch | null {\n if (!bytes || bytes.length === 0) return null;\n const batch = deserializeBatch(bytes);\n return batch.numRows === 0 && batch.schema.fields.length === 0 ? null : batch;\n}\n\n// Wrap an OutputCollector so each emitted RecordBatch is projected-by-name\n// to the bound outputSchema before forwarding. Lenient: workers can emit\n// over-wide batches (full declared schema) and the framework drops the\n// columns DuckDB didn't ask for. Field name mismatches yield null columns\n// rather than wrong-position reads. Field types must already match.\nfunction makeProjectingCollector(inner: OutputCollector, targetSchema: VgiSchema): OutputCollector {\n // Single-pass guard: don't project when a batch already matches.\n function alreadyMatches(batch: VgiBatch): boolean {\n if (batch.schema.fields.length !== targetSchema.fields.length) return false;\n for (let i = 0; i < targetSchema.fields.length; i++) {\n if (batch.schema.fields[i].name !== targetSchema.fields[i].name) return false;\n }\n return true;\n }\n function project(batch: VgiBatch): VgiBatch {\n if (alreadyMatches(batch)) return batch;\n const { batchFromColumns } = require(\"../arrow/index.js\");\n const cols: Record<string, any[]> = {};\n for (const f of targetSchema.fields) {\n const src = batch.getChild(f.name);\n if (src) {\n // Canonical read -> rich so the rebuild goes through the codec path\n // (backend-agnostic, lossless) rather than the raw `.get(i)`.\n const type = f.type as VgiDataType;\n const codec = codecFor(type);\n const arr: any[] = [];\n for (let i = 0; i < batch.numRows; i++) {\n arr.push(codec.canonicalToRich(readCanonicalValue(type, src, i)));\n }\n cols[f.name] = arr;\n } else {\n cols[f.name] = new Array(batch.numRows).fill(null);\n }\n }\n return batchFromColumns(cols, targetSchema);\n }\n return new Proxy(inner, {\n get(target, prop, receiver) {\n if (prop === \"emit\") {\n return function (this: OutputCollector, batchOrColumns: VgiBatch | Record<string, any[]>, metadata?: Map<string, string>) {\n if (isBatch(batchOrColumns)) {\n return (target as any).emit(project(batchOrColumns), metadata);\n }\n // Object form: vgi-rpc itself converts to a batch via outputSchema,\n // and the user passed columns by name — already aligned.\n return (target as any).emit(batchOrColumns, metadata);\n };\n }\n const v = Reflect.get(target, prop, receiver);\n return typeof v === \"function\" ? v.bind(target) : v;\n },\n });\n}\n\n// ============================================================================\n// Table function parameter bundles\n// ============================================================================\n\nexport interface TableBindParams<TArgs = Record<string, any>> {\n args: TArgs;\n bindCall: BindRequest;\n settings: Record<string, any>;\n secrets: Record<string, Record<string, any>>;\n resolvedSecretsProvided: boolean;\n}\n\nexport interface TableProcessParams<TArgs = Record<string, any>> {\n args: TArgs;\n initCall: InitRequest;\n initResponse: GlobalInitResponse;\n outputSchema: VgiSchema;\n settings: Record<string, any>;\n secrets: Record<string, Record<string, any>>;\n pushdownFilters?: PushdownFilters;\n storage?: BoundStorage;\n /**\n * AT (TIMESTAMP|VERSION) clause for this scan, or `undefined` when the scan\n * has no AT clause. Carried on the per-scan bind embedded in the init request\n * (`initCall.bind_call.at_unit` / `.at_value`), so function-backed tables can\n * read time travel at init alongside their pushdown filters. Mirrors\n * vgi-python's `ProcessParams.at_unit` / `.at_value`. See `BindRequest.at_unit`.\n */\n atUnit?: string;\n atValue?: string;\n /**\n * Conditional-revalidation validator (the client's stored ETag). Set when the\n * client holds a stale-but-revalidatable cached result and asks the worker to\n * confirm freshness cheaply; a worker that advertised `revalidatable` compares\n * it and, if unchanged, emits a 0-row batch tagged\n * `cacheControlMetadata({ notModified: true })` instead of re-streaming.\n * Undefined on a normal call.\n */\n ifNoneMatch?: string;\n /** Conditional-revalidation validator (the client's stored Last-Modified).\n * Companion to {@link ifNoneMatch}. Undefined on a normal call. */\n ifModifiedSince?: string;\n}\n\n// ============================================================================\n// Functional API\n// ============================================================================\n\nexport interface TableFunctionConfig<\n TArgs = Record<string, any>,\n TState = null,\n> {\n name: string;\n description?: string;\n /** Argument schema (positional args) */\n args?: Record<string, VgiDataType>;\n /** Argument docs */\n argDocs?: Record<string, string>;\n /** Argument defaults */\n argDefaults?: Record<string, any>;\n /**\n * Per-argument discovery constraints (choices / ge / le / gt / lt / pattern),\n * keyed by argument name. Surfaced via `vgi_function_arguments()` for agent\n * discovery AND enforced at bind: a value violating a declared constraint\n * fails the bind with an ArgumentValidationError.\n */\n argConstraints?: Record<string, ArgumentConstraints>;\n /** Names of args that accept variable number of arguments */\n varargs?: string[];\n /** Bind: return output schema. May be async — handlers `await` the result. */\n onBind: (params: TableBindParams<TArgs>) =>\n | {\n outputSchema: VgiSchema;\n opaqueData?: Uint8Array;\n lookupSecretTypes?: string[];\n lookupScopes?: string[];\n lookupNames?: string[];\n }\n | Promise<{\n outputSchema: VgiSchema;\n opaqueData?: Uint8Array;\n lookupSecretTypes?: string[];\n lookupScopes?: string[];\n lookupNames?: string[];\n }>;\n /** Init (optional). May be async — common when storage is HTTP-backed. */\n onInit?: (params: {\n args: TArgs;\n initCall: InitRequest;\n outputSchema: VgiSchema;\n executionId: Uint8Array;\n storage: BoundStorage;\n }) => GlobalInitResponse | Promise<GlobalInitResponse>;\n /** State factory */\n initialState?: (params: TableProcessParams<TArgs>) => TState;\n /** Process: emit batches via out, call out.finish() when done */\n process: (\n params: TableProcessParams<TArgs>,\n state: TState,\n out: OutputCollector\n ) => void | Promise<void>;\n /** Cardinality hints */\n cardinality?: (params: TableBindParams<TArgs>) => TableCardinality | Promise<TableCardinality>;\n /**\n * Per-column statistics for the function's output. Returned to DuckDB via\n * the `table_function_statistics` RPC; the optimizer uses min/max to\n * eliminate impossible filters at plan time (folding scans to\n * EMPTY_RESULT). Return `null` or an empty array when bounds are unknown.\n */\n statistics?: (params: TableBindParams<TArgs>) => ColumnStatistics[] | null;\n /**\n * Per-execution diagnostics surfaced under EXPLAIN ANALYZE. DuckDB calls\n * this once per parallel scan thread at pipeline FinishSource via the\n * `table_function_dynamic_to_string` RPC. Return ordered key→value\n * strings; the C++ extension merges these with the intrinsic keys\n * (Function, Rows Read, Threads). The framework provides a BoundStorage\n * keyed by the global execution_id so process() can persist counters\n * that this callback then reads back — see profiling_demo for the\n * canonical pattern.\n */\n dynamicToString?: (\n params: TableBindParams<TArgs>,\n executionId: Uint8Array,\n storage: BoundStorage,\n ) => Record<string, string> | Promise<Record<string, string>>;\n // Metadata\n projectionPushdown?: boolean;\n filterPushdown?: boolean;\n samplingPushdown?: boolean;\n /** Opt in to DuckDB's late-materialization SEMI-join rewrite; requires a\n * UNIQUE, snapshot-stable rowid column. FunctionInfo.late_materialization. */\n lateMaterialization?: boolean;\n supportedExpressionFilters?: string[];\n autoApplyFilters?: boolean;\n stability?: FunctionStability;\n examples?: FunctionExample[];\n categories?: string[];\n tags?: Record<string, string>;\n maxWorkers?: number;\n requiredSettings?: string[];\n requiredSecrets?: string[];\n /** Row-order preservation behavior; flows to DuckDB's\n * TableFunction::order_preservation_type. */\n preservesOrder?: OrderPreservation;\n nullHandling?: NullHandling;\n orderDependent?: OrderDependence;\n distinctDependent?: DistinctDependence;\n /** Emit per-batch `vgi_batch_index`; FunctionInfo.supports_batch_index. */\n supportsBatchIndex?: boolean;\n /** Hive-style partition-columns mode; FunctionInfo.partition_kind. */\n partitionKind?: \"NOT_PARTITIONED\" | \"SINGLE_VALUE_PARTITIONS\" | \"OVERLAPPING_PARTITIONS\" | \"DISJOINT_PARTITIONS\";\n}\n\nexport function defineTableFunction<\n TArgs = Record<string, any>,\n TState = null,\n>(config: TableFunctionConfig<TArgs, TState>): VgiFunction {\n // Build argument specs\n const specs: ArgumentSpec[] = [];\n let posIdx = 0;\n\n if (config.args) {\n const varargsSet = new Set(config.varargs ?? []);\n for (const [name, type] of Object.entries(config.args)) {\n const isAny = isNull(type);\n const hasDefault = config.argDefaults?.[name] !== undefined;\n specs.push({\n name,\n // Args with defaults are named (string position), others are positional\n position: hasDefault ? name : posIdx++,\n arrowType: isAny ? nullType() : type,\n isAnyType: isAny,\n isVarargs: varargsSet.has(name),\n doc: config.argDocs?.[name],\n ...constraintSpecFields(config.argConstraints?.[name]),\n });\n }\n }\n\n const meta: FunctionMeta = {\n name: config.name,\n description: config.description,\n stability: config.stability,\n projectionPushdown: config.projectionPushdown,\n filterPushdown: config.filterPushdown,\n samplingPushdown: config.samplingPushdown,\n lateMaterialization: config.lateMaterialization,\n supportedExpressionFilters: config.supportedExpressionFilters,\n autoApplyFilters: config.autoApplyFilters,\n examples: config.examples,\n categories: config.categories,\n tags: config.tags,\n maxWorkers: config.maxWorkers,\n requiredSettings: config.requiredSettings,\n requiredSecrets: config.requiredSecrets,\n preservesOrder: config.preservesOrder,\n nullHandling: config.nullHandling,\n orderDependent: config.orderDependent,\n distinctDependent: config.distinctDependent,\n supportsBatchIndex: config.supportsBatchIndex,\n partitionKind: config.partitionKind,\n };\n\n function extractArgs(request: BindRequest): TArgs {\n const args: Record<string, any> = {};\n for (const spec of specs) {\n const defaultVal =\n config.argDefaults?.[spec.name] !== undefined\n ? config.argDefaults[spec.name]\n : undefined;\n let val: any;\n try {\n val = request.arguments.get(spec.position, defaultVal);\n } catch {\n // Fallback: try by name (for scan function tables where DuckDB\n // converts positional args to named args)\n val = request.arguments.get(spec.name, defaultVal);\n }\n // Arrow Int64 values come through as BigInt — coerce to number\n if (typeof val === \"bigint\") val = safeNumber(val);\n // Enforce declared constraints at bind (table args are all bind-time).\n const constraints = config.argConstraints?.[spec.name];\n if (constraints) validateConstConstraints(spec.name, constraints, val);\n args[spec.name] = val;\n }\n return args as TArgs;\n }\n\n return {\n kind: \"table\",\n meta,\n argumentSpecs: specs,\n\n async bind(request: BindRequest): Promise<BindResponse> {\n const args = extractArgs(request);\n const settings = batchToScalarDict(request.settings);\n const secrets = batchToSecretDict(request.secrets);\n const result = await config.onBind({\n args, bindCall: request, settings, secrets,\n resolvedSecretsProvided: request.resolved_secrets_provided ?? false,\n });\n return {\n output_schema: result.outputSchema,\n opaque_data: result.opaqueData ?? null,\n lookup_secret_types: result.lookupSecretTypes,\n lookup_scopes: result.lookupScopes,\n lookup_names: result.lookupNames,\n };\n },\n\n async globalInit(request: InitRequest): Promise<GlobalInitResponse> {\n const executionId = new Uint8Array(16);\n crypto.getRandomValues(executionId);\n\n if (request.execution_id) {\n // Secondary init - reuse execution ID\n return {\n max_workers: config.maxWorkers ?? 1,\n execution_id: request.execution_id,\n opaque_data: null,\n };\n }\n\n if (config.onInit) {\n const args = extractArgs(request.bind_call);\n const boundStorage = new BoundStorage(globalStorage, executionId);\n return await config.onInit({\n args,\n initCall: request,\n outputSchema: request.output_schema,\n executionId,\n storage: boundStorage,\n });\n }\n\n return {\n max_workers: config.maxWorkers ?? 1,\n execution_id: executionId,\n opaque_data: null,\n };\n },\n\n createStreamHandlers(\n request: InitRequest,\n response: GlobalInitResponse\n ): StreamHandlers {\n const args = extractArgs(request.bind_call);\n const settings = batchToScalarDict(request.bind_call.settings);\n const secrets = batchToSecretDict(request.bind_call.secrets);\n\n // Apply projection pushdown only if the function supports it\n const projIds = request.projection_ids && meta.projectionPushdown\n ? request.projection_ids\n : null;\n const outputSchema = projIds\n ? projectSchema(projIds, request.output_schema)\n : request.output_schema;\n\n // Deserialize pushdown filters. Pass a join-keys column lookup so that\n // filters DuckDB promoted to join_keys (IN/OR lists, etc.) are\n // materialized as InFilters rather than silently dropped.\n const joinKeysLookup = buildJoinKeysLookup(request.join_keys);\n const pushdownFilters = request.pushdown_filters\n ? deserializeFilters(request.pushdown_filters, joinKeysLookup)\n : undefined;\n\n const boundStorage = new BoundStorage(globalStorage, response.execution_id);\n\n const processParams: TableProcessParams<TArgs> = {\n args,\n initCall: request,\n initResponse: response,\n outputSchema,\n settings,\n secrets,\n pushdownFilters,\n storage: boundStorage,\n atUnit: request.bind_call.at_unit ?? undefined,\n atValue: request.bind_call.at_value ?? undefined,\n };\n\n const state = config.initialState\n ? config.initialState(processParams)\n : (null as TState);\n\n return {\n outputSchema,\n producerInit: () => ({ state, processParams }),\n onTick: (\n pState: { state: TState; processParams: TableProcessParams<TArgs> },\n tickMetadata: Map<string, string> | undefined,\n ) => {\n if (!tickMetadata) return;\n\n // Conditional-revalidation validators: the client holds a stale\n // cached result and asks the worker to confirm freshness cheaply.\n // Over subprocess these ride the first producer tick; over HTTP the\n // first tick folds into the /init request, whose metadata vgi-rpc\n // surfaces here.\n const ifNoneMatch = tickMetadata.get(CACHE_IF_NONE_MATCH_KEY);\n const ifModifiedSince = tickMetadata.get(CACHE_IF_MODIFIED_SINCE_KEY);\n if (ifNoneMatch !== undefined) pState.processParams.ifNoneMatch = ifNoneMatch;\n if (ifModifiedSince !== undefined) pState.processParams.ifModifiedSince = ifModifiedSince;\n\n // Dynamic filter pushdown: DuckDB's Top-N optimizer tightens filters\n // between ticks and serializes the current filter into the tick\n // batch's custom metadata under `vgi_pushdown_filters` (base64 of a\n // filter IPC stream). Decode and overwrite the current pushdown\n // filters so process() sees the updated value.\n const encoded = tickMetadata.get(\"vgi_pushdown_filters\");\n if (!encoded) return;\n try {\n const bytes = base64Decode(encoded);\n const filterBatch = deserializeFilterBatch(bytes);\n if (filterBatch) {\n const updated = deserializeFilters(filterBatch, joinKeysLookup);\n pState.processParams.pushdownFilters = updated;\n }\n } catch {\n // Malformed dynamic-filter update: keep the previous filter. Not\n // fatal — this is a best-effort optimization hint from DuckDB.\n }\n },\n producerFn: async (\n pState: { state: TState; processParams: TableProcessParams<TArgs> },\n out: OutputCollector\n ) => {\n const current = pState.processParams.pushdownFilters;\n // Auto-project: workers may emit a batch with the function's full\n // declared schema even when DuckDB only requested a subset. Wrap\n // the OutputCollector so each emit() projects-by-name to the\n // bound outputSchema. Lenient: absent fields become null columns.\n let wrappedOut: OutputCollector =\n outputSchema && projIds\n ? makeProjectingCollector(out, outputSchema)\n : out;\n if (config.autoApplyFilters && current) {\n wrappedOut = new FilteringOutputCollector(wrappedOut, current) as unknown as OutputCollector;\n }\n await config.process(pState.processParams, pState.state, wrappedOut);\n },\n };\n },\n\n cardinality: config.cardinality\n ? (request: TableFunctionCardinalityRequest) => {\n const args = extractArgs(request.bind_call);\n const settings = batchToScalarDict(request.bind_call.settings);\n const secrets = batchToSecretDict(request.bind_call.secrets);\n return config.cardinality!({\n args,\n bindCall: request.bind_call,\n settings,\n secrets,\n resolvedSecretsProvided: request.bind_call.resolved_secrets_provided ?? false,\n });\n }\n : undefined,\n\n statistics: config.statistics\n ? (request: TableFunctionCardinalityRequest) => {\n const args = extractArgs(request.bind_call);\n const settings = batchToScalarDict(request.bind_call.settings);\n const secrets = batchToSecretDict(request.bind_call.secrets);\n return config.statistics!({\n args,\n bindCall: request.bind_call,\n settings,\n secrets,\n resolvedSecretsProvided: request.bind_call.resolved_secrets_provided ?? false,\n });\n }\n : undefined,\n\n dynamicToString: config.dynamicToString\n ? (request) => {\n const args = extractArgs(request.bindCall);\n const settings = batchToScalarDict(request.bindCall.settings);\n const secrets = batchToSecretDict(request.bindCall.secrets);\n const storage = new BoundStorage(globalStorage, request.globalExecutionId);\n return config.dynamicToString!(\n {\n args,\n bindCall: request.bindCall,\n settings,\n secrets,\n resolvedSecretsProvided: request.bindCall.resolved_secrets_provided ?? false,\n },\n request.globalExecutionId,\n storage,\n );\n }\n : undefined,\n };\n}\n",
28
29
  "// Copyright 2025, 2026 Query Farm LLC - https://query.farm\n// Filter pushdown type definitions.\n\nexport enum ComparisonOp {\n EQ = \"eq\",\n NE = \"ne\",\n GT = \"gt\",\n GE = \"ge\",\n LT = \"lt\",\n LE = \"le\",\n}\n\nexport interface ConstantFilter {\n type: \"constant\";\n columnName: string;\n columnIndex: number;\n op: ComparisonOp;\n value: any;\n}\n\nexport interface IsNullFilter {\n type: \"is_null\";\n columnName: string;\n columnIndex: number;\n}\n\nexport interface IsNotNullFilter {\n type: \"is_not_null\";\n columnName: string;\n columnIndex: number;\n}\n\nexport interface InFilter {\n type: \"in\";\n columnName: string;\n columnIndex: number;\n values: Set<any>;\n}\n\nexport interface AndFilter {\n type: \"and\";\n columnName: string;\n columnIndex: number;\n children: Filter[];\n}\n\nexport interface OrFilter {\n type: \"or\";\n columnName: string;\n columnIndex: number;\n children: Filter[];\n}\n\nexport interface StructFilter {\n type: \"struct\";\n columnName: string;\n columnIndex: number;\n childIndex: number;\n childName: string;\n childFilter: Filter;\n}\n\nexport type Filter =\n | ConstantFilter\n | IsNullFilter\n | IsNotNullFilter\n | InFilter\n | AndFilter\n | OrFilter\n | StructFilter\n | ExpressionFilter;\n\n/**\n * Expression-tree filter. The expr is a parsed AST; evaluation matches\n * DuckDB's semantics for the function names the table function advertises in\n * `supportedExpressionFilters` (e.g. list_contains, starts_with, contains,\n * &&/st_intersects_extent for spatial).\n */\nexport interface ExpressionFilter {\n type: \"expression\";\n columnName: string;\n columnIndex: number;\n expr: ExprNode;\n}\n\nexport type ExprNode =\n | { expr_type: \"column_ref\"; index: number }\n | { expr_type: \"constant\"; value: any }\n | { expr_type: \"function\"; function_name: string; children: ExprNode[] }\n | { expr_type: \"comparison\"; op: ComparisonOp; left: ExprNode; right: ExprNode }\n | { expr_type: \"conjunction\"; conjunction_type: \"and\" | \"or\"; children: ExprNode[] };\n",
29
30
  "// Copyright 2025, 2026 Query Farm LLC - https://query.farm\n// Filter pushdown evaluation: row-by-row predicate evaluation against\n// Arrow RecordBatches, plus the PushdownFilters class that owns a parsed\n// filter set and applies it to batches.\n\nimport {\n type VgiBatch,\n type VgiSchema,\n type VgiDataType,\n schema,\n readCanonicalValue,\n} from \"../arrow/index.js\";\nimport { batchFromColumns, filterBatch } from \"../util/arrow/index.js\";\nimport { codecFor } from \"../arrow/codec/registry.js\";\nimport {\n ComparisonOp,\n type AndFilter,\n type ConstantFilter,\n type ExpressionFilter,\n type ExprNode,\n type Filter,\n type InFilter,\n type IsNotNullFilter,\n type IsNullFilter,\n type OrFilter,\n type StructFilter,\n} from \"./types.js\";\n\n// ============================================================================\n// Comparison helpers\n// ============================================================================\n\nfunction compare(a: any, b: any, op: ComparisonOp): boolean {\n switch (op) {\n case ComparisonOp.EQ: return a === b;\n case ComparisonOp.NE: return a !== b;\n case ComparisonOp.GT: return a > b;\n case ComparisonOp.GE: return a >= b;\n case ComparisonOp.LT: return a < b;\n case ComparisonOp.LE: return a <= b;\n }\n}\n\n/**\n * Read a column cell at `index` in CANONICAL form (the same representation the\n * filter literals are deserialized into — see deserialize.ts `getValue`). Going\n * through the per-backend canonical reader makes this work on BOTH Arrow\n * backends (arrow-js's `col.get` and flechette's `col.at` are not interchange-\n * able) and guarantees temporal/decimal cells and literals compare like-for-\n * like (e.g. timestamp -> bigint on both sides). `colIndex` resolves the field\n * type from the batch schema.\n */\nfunction readCell(batch: VgiBatch, colIndex: number, index: number): any {\n const col = batch.getChildAt(colIndex);\n if (!col) return null;\n const type = batch.schema.fields[colIndex].type as unknown as VgiDataType;\n return readCanonicalValue(type, col, index);\n}\n\n// ============================================================================\n// Filter evaluation (row-by-row)\n// ============================================================================\n\nfunction evaluateFilter(\n filter: Filter,\n batch: VgiBatch,\n mask: Uint8Array,\n): void {\n switch (filter.type) {\n case \"constant\":\n evaluateConstant(filter, batch, mask);\n break;\n case \"is_null\":\n evaluateIsNull(filter, batch, mask);\n break;\n case \"is_not_null\":\n evaluateIsNotNull(filter, batch, mask);\n break;\n case \"in\":\n evaluateIn(filter, batch, mask);\n break;\n case \"and\":\n evaluateAnd(filter, batch, mask);\n break;\n case \"or\":\n evaluateOr(filter, batch, mask);\n break;\n case \"struct\":\n evaluateStruct(filter, batch, mask);\n break;\n case \"expression\":\n evaluateExpression(filter, batch, mask);\n break;\n }\n}\n\n// Recursively evaluate an expression AST against a row of the batch, returning\n// the scalar value it produces. column_ref reads from the batch using the\n// caller-supplied remap (DuckDB rewrites column refs inside an ExpressionFilter\n// so index=0 means \"this filter's column\"); constant returns its pre-resolved\n// JS value; function dispatches on function_name; comparison/conjunction\n// combine children.\nfunction evaluateExpr(\n node: ExprNode,\n batch: VgiBatch,\n rowIndex: number,\n colRefToBatchIndex: (index: number) => number,\n): any {\n switch (node.expr_type) {\n case \"column_ref\":\n return readCell(batch, colRefToBatchIndex(node.index), rowIndex);\n case \"constant\":\n return node.value;\n case \"function\":\n return evalFunction(\n node.function_name,\n node.children.map((c) => evaluateExpr(c, batch, rowIndex, colRefToBatchIndex)),\n );\n case \"comparison\": {\n const left = evaluateExpr(node.left, batch, rowIndex, colRefToBatchIndex);\n const right = evaluateExpr(node.right, batch, rowIndex, colRefToBatchIndex);\n if (left == null || right == null) return null;\n return compare(left, right, node.op);\n }\n case \"conjunction\": {\n if (node.conjunction_type === \"and\") {\n for (const c of node.children) {\n const v = evaluateExpr(c, batch, rowIndex, colRefToBatchIndex);\n if (v !== true) return v === false ? false : null;\n }\n return true;\n }\n let sawNull = false;\n for (const c of node.children) {\n const v = evaluateExpr(c, batch, rowIndex, colRefToBatchIndex);\n if (v === true) return true;\n if (v == null) sawNull = true;\n }\n return sawNull ? null : false;\n }\n }\n}\n\n// Dispatch DuckDB scalar-function names we support as pushdown filters.\n// Return null for any missing argument (SQL three-valued logic).\nfunction evalFunction(name: string, args: any[]): any {\n if (args.some((a) => a == null)) return null;\n switch (name) {\n case \"list_contains\":\n case \"array_contains\": {\n // args[0] is an Arrow ListVector row (iterable), args[1] is the needle.\n const [list, needle] = args;\n if (!list || typeof list[Symbol.iterator] !== \"function\") return false;\n for (const v of list) {\n if (v === needle) return true;\n }\n return false;\n }\n case \"starts_with\":\n case \"prefix\": {\n const [hay, needle] = args;\n return typeof hay === \"string\" && typeof needle === \"string\"\n ? hay.startsWith(needle) : false;\n }\n case \"contains\": {\n const [hay, needle] = args;\n return typeof hay === \"string\" && typeof needle === \"string\"\n ? hay.includes(needle) : false;\n }\n case \"&&\":\n case \"st_intersects_extent\": {\n // Bounding-box intersection between two WKB geometries. Parses each\n // geometry's XY bbox and checks for overlap in both dimensions.\n const [a, b] = args;\n const ba = wkbBBox(a);\n const bb = wkbBBox(b);\n if (!ba || !bb) return false;\n return !(ba.maxX < bb.minX || ba.minX > bb.maxX ||\n ba.maxY < bb.minY || ba.minY > bb.maxY);\n }\n default:\n // Unsupported functions shouldn't make it past the C++-side\n // `ExpressionTreeIsSupported` gate, but be defensive: evaluate to null\n // so the row is filtered out conservatively rather than silently\n // producing wrong results.\n return null;\n }\n}\n\n// Parse the XY bounding box of a WKB geometry. Supports Point and Polygon for\n// ST_MakeEnvelope output; extend as new geometry kinds are needed.\nfunction wkbBBox(bytes: any): { minX: number; minY: number; maxX: number; maxY: number } | null {\n if (!(bytes instanceof Uint8Array)) return null;\n if (bytes.length < 5) return null;\n const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n const le = view.getUint8(0) === 1;\n const type = view.getUint32(1, le);\n // Point (type=1): 21 bytes total (5 header + 8+8 coords)\n if (type === 1 && bytes.length >= 21) {\n const x = view.getFloat64(5, le);\n const y = view.getFloat64(13, le);\n return { minX: x, minY: y, maxX: x, maxY: y };\n }\n // Polygon (type=3): used by ST_MakeEnvelope. One ring, 4 points, close.\n // Header 5 + num_rings 4 + num_points 4 + 4*16 coord bytes = 81 bytes.\n if (type === 3 && bytes.length >= 81) {\n const numRings = view.getUint32(5, le);\n if (numRings < 1) return null;\n const numPoints = view.getUint32(9, le);\n let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;\n let off = 13;\n for (let i = 0; i < numPoints && off + 16 <= bytes.length; i++, off += 16) {\n const x = view.getFloat64(off, le);\n const y = view.getFloat64(off + 8, le);\n if (x < minX) minX = x;\n if (x > maxX) maxX = x;\n if (y < minY) minY = y;\n if (y > maxY) maxY = y;\n }\n if (minX === Infinity) return null;\n return { minX, minY, maxX, maxY };\n }\n return null;\n}\n\nfunction evaluateExpression(\n filter: ExpressionFilter,\n batch: VgiBatch,\n mask: Uint8Array,\n): void {\n const n = batch.numRows;\n // DuckDB's FilterSerializer rewrites bound references inside an\n // ExpressionFilter so that column_ref index 0 refers to the filter's own\n // column (see ReplaceWithBoundReference in DuckDB's optimizer). Higher\n // indices on the same filter aren't produced — the filter is always\n // scoped to a single column in the outer batch — so we map every\n // column_ref back to `filter.columnIndex` by name, resolving through the\n // current batch in case projection reordered columns.\n const colName = filter.columnName;\n let targetIdx = batch.schema.fields.findIndex((f) => f.name === colName);\n if (targetIdx < 0) targetIdx = filter.columnIndex;\n const colRef = (_nodeIndex: number) => targetIdx;\n for (let i = 0; i < n; i++) {\n if (!mask[i]) continue;\n const v = evaluateExpr(filter.expr, batch, i, colRef);\n mask[i] = v === true ? 1 : 0;\n }\n}\n\nfunction evaluateConstant(\n filter: ConstantFilter,\n batch: VgiBatch,\n mask: Uint8Array,\n): void {\n const n = batch.numRows;\n for (let i = 0; i < n; i++) {\n if (!mask[i]) continue;\n const cell = readCell(batch, filter.columnIndex, i);\n if (cell === null) {\n mask[i] = 0;\n } else {\n mask[i] = compare(cell, filter.value, filter.op) ? 1 : 0;\n }\n }\n}\n\nfunction evaluateIsNull(\n filter: IsNullFilter,\n batch: VgiBatch,\n mask: Uint8Array,\n): void {\n const n = batch.numRows;\n for (let i = 0; i < n; i++) {\n if (!mask[i]) continue;\n mask[i] = (readCell(batch, filter.columnIndex, i) !== null) ? 0 : 1;\n }\n}\n\nfunction evaluateIsNotNull(\n filter: IsNotNullFilter,\n batch: VgiBatch,\n mask: Uint8Array,\n): void {\n const n = batch.numRows;\n for (let i = 0; i < n; i++) {\n if (!mask[i]) continue;\n mask[i] = (readCell(batch, filter.columnIndex, i) !== null) ? 1 : 0;\n }\n}\n\nfunction evaluateIn(\n filter: InFilter,\n batch: VgiBatch,\n mask: Uint8Array,\n): void {\n const n = batch.numRows;\n for (let i = 0; i < n; i++) {\n if (!mask[i]) continue;\n const cell = readCell(batch, filter.columnIndex, i);\n if (cell === null) {\n mask[i] = 0;\n } else {\n mask[i] = filter.values.has(cell) ? 1 : 0;\n }\n }\n}\n\nfunction evaluateAnd(\n filter: AndFilter,\n batch: VgiBatch,\n mask: Uint8Array,\n): void {\n // AND: start with all-pass, then narrow with each child\n const n = batch.numRows;\n const childMask = new Uint8Array(n);\n\n for (const child of filter.children) {\n childMask.fill(1);\n evaluateFilter(child, batch, childMask);\n for (let i = 0; i < n; i++) {\n mask[i] &= childMask[i];\n }\n }\n}\n\nfunction evaluateOr(\n filter: OrFilter,\n batch: VgiBatch,\n mask: Uint8Array,\n): void {\n // OR: start with all-fail, then widen with each child\n const n = batch.numRows;\n const result = new Uint8Array(n); // all zeros\n const childMask = new Uint8Array(n);\n\n for (const child of filter.children) {\n childMask.fill(1);\n evaluateFilter(child, batch, childMask);\n for (let i = 0; i < n; i++) {\n result[i] |= childMask[i];\n }\n }\n\n // Combine with incoming mask\n for (let i = 0; i < n; i++) {\n mask[i] &= result[i];\n }\n}\n\nfunction evaluateStruct(\n filter: StructFilter,\n batch: VgiBatch,\n mask: Uint8Array,\n): void {\n const structType = batch.schema.fields[filter.columnIndex].type as unknown as VgiDataType;\n const childField = (structType as any).children?.[filter.childIndex];\n if (!childField) {\n // Child field not found — fail all rows\n mask.fill(0);\n return;\n }\n const childType = childField.type as VgiDataType;\n\n // Read the struct column in canonical form (backend-agnostic), pull out the\n // target child's canonical value per row, and rebuild a single-column child\n // batch via batchFromColumns (which re-runs canonical writes). Filter literals\n // are compared in canonical form too (see deserialize.ts), so the child column\n // cells and literals stay in matching representations across both backends.\n const childCanonical = Array.from({ length: batch.numRows }, (_, i) => {\n const structVal = readCell(batch, filter.columnIndex, i) as Record<string, unknown> | null;\n return structVal == null ? null : (structVal[childField.name] ?? null);\n });\n // batchFromColumns expects RICH values; map canonical -> rich for the child.\n const childCodec = codecFor(childType);\n const childRich = childCanonical.map((v) => childCodec.canonicalToRich(v));\n\n const childSchema = schema([\n (structType as any).children[filter.childIndex],\n ]);\n const childBatch = batchFromColumns(\n { [filter.childName]: childRich },\n childSchema,\n );\n\n // Remap child filter's columnIndex to 0 for the wrapper batch\n const remapped = { ...filter.childFilter, columnIndex: 0 };\n evaluateFilter(remapped, childBatch, mask);\n}\n\n// ============================================================================\n// SQL formatting\n// ============================================================================\n\nconst OP_SYMBOLS: Record<ComparisonOp, string> = {\n [ComparisonOp.EQ]: \"=\",\n [ComparisonOp.NE]: \"!=\",\n [ComparisonOp.GT]: \">\",\n [ComparisonOp.GE]: \">=\",\n [ComparisonOp.LT]: \"<\",\n [ComparisonOp.LE]: \"<=\",\n};\n\nfunction formatValue(v: any): string {\n if (typeof v === \"string\") return `'${v}'`;\n if (typeof v === \"bigint\") return String(v);\n return String(v);\n}\n\nfunction filterToSql(f: Filter): string {\n const col = f.columnName;\n\n switch (f.type) {\n case \"constant\":\n return `${col} ${OP_SYMBOLS[f.op]} ${formatValue(f.value)}`;\n case \"is_null\":\n return `${col} IS NULL`;\n case \"is_not_null\":\n return `${col} IS NOT NULL`;\n case \"in\": {\n // Match Python's repr: summarize large lists as `N values`, otherwise\n // render each element. Threshold matches vgi-python's InFilter.__repr__.\n const size = f.values.size;\n if (size > 20) {\n return `${col} IN (${size} values)`;\n }\n const vals = [...f.values].map(formatValue).join(\", \");\n return `${col} IN (${vals})`;\n }\n case \"and\": {\n const parts = f.children.map(filterToSql);\n return `(${parts.join(\" AND \")})`;\n }\n case \"or\": {\n const parts = f.children.map(filterToSql);\n return `(${parts.join(\" OR \")})`;\n }\n case \"struct\": {\n const nested = `${f.columnName}.${f.childName}`;\n const remapped = { ...f.childFilter, columnName: nested };\n return filterToSql(remapped);\n }\n case \"expression\":\n // Expression filters don't have a natural SQL rendering here — the\n // tree came from DuckDB's bound-expression serializer. Use a generic\n // placeholder so debug output stays readable.\n return `${f.columnName} MATCHES (expression)`;\n }\n}\n\n// ============================================================================\n// PushdownFilters\n// ============================================================================\n\nexport class PushdownFilters {\n constructor(\n readonly filters: Filter[],\n readonly version: string,\n ) {}\n\n /** Convert filters to a human-readable SQL-like string. */\n toSql(): string {\n if (this.filters.length === 0) return \"\";\n return this.filters.map(filterToSql).join(\" AND \");\n }\n\n /** Evaluate filters against a batch, returning a Uint8Array mask (0=fail, 1=pass). */\n evaluate(batch: VgiBatch): Uint8Array {\n const n = batch.numRows;\n const mask = new Uint8Array(n);\n mask.fill(1);\n\n for (const filter of this.filters) {\n evaluateFilter(filter, batch, mask);\n }\n\n return mask;\n }\n\n /** Apply filters to a batch, returning only passing rows. */\n apply(batch: VgiBatch): VgiBatch {\n if (batch.numRows === 0 || this.filters.length === 0) return batch;\n\n const mask = this.evaluate(batch);\n // filterBatch rebuilds via the codec/canonical path (backend-agnostic,\n // lossless), including its own all-pass / all-fail fast paths.\n return filterBatch(batch, mask);\n }\n\n /**\n * The set of column names referenced by the pushed-down filters, sorted\n * ascending. Descends one level into AndFilter children (DuckDB pushes\n * `col IN (...) AND col>=min` as a single AndFilter), consistent with\n * `getColumnValues` / `hasFilterForColumn`. Mirrors the cross-language\n * `filtered_columns` accessor (vgi-python / vgi-go / vgi-rust).\n */\n filteredColumns(): string[] {\n const cols = new Set<string>();\n for (const f of this.filters) {\n if (f.type === \"and\") {\n for (const c of f.children) cols.add(c.columnName);\n } else {\n cols.add(f.columnName);\n }\n }\n return Array.from(cols).sort();\n }\n\n /**\n * Whether any pushed-down filter references `columnName`. Mirrors the\n * cross-language `has_filter_for_column` accessor.\n */\n hasFilterForColumn(columnName: string): boolean {\n return this.collectColumnFilters(columnName).length > 0;\n }\n\n /**\n * Discrete values a column could take, from equality (`=`) or `IN` filters.\n * Useful for partition pruning (resolve the key set up front, fetch only\n * those keys). Returns null when the predicate is not enumerable — no\n * filter, a bare range, or an OR with a non-discrete branch.\n *\n * Mirrors vgi-python's `PushdownFilters.get_column_values`: descends one\n * level into an AndFilter (DuckDB pushes `col IN (...) AND col>=min AND\n * col<=max` as a single AndFilter from a semi-join), and unions OR branches\n * only when every branch pins the column to discrete values.\n */\n getColumnValues(columnName: string): any[] | null {\n for (const f of this.collectColumnFilters(columnName)) {\n if (f.type === \"constant\" && f.op === ComparisonOp.EQ) {\n return [f.value];\n } else if (f.type === \"in\") {\n return Array.from(f.values);\n } else if (f.type === \"or\") {\n const union = this.orDiscreteValues(f, columnName);\n if (union !== null) return union;\n }\n }\n return null;\n }\n\n /**\n * Union of discrete values for `columnName` across all OR branches, iff every\n * child constrains it to discrete values (`=` or `IN`); otherwise null (the\n * column could take any value through a non-discrete branch). Returning one\n * branch's values would be an unsafe subset.\n */\n private orDiscreteValues(orFilter: OrFilter, columnName: string): any[] | null {\n const values: any[] = [];\n for (const child of orFilter.children) {\n if (child.columnName !== columnName) return null;\n if (child.type === \"constant\" && child.op === ComparisonOp.EQ) {\n values.push(child.value);\n } else if (child.type === \"in\") {\n for (const v of child.values) values.push(v);\n } else {\n return null;\n }\n }\n if (values.length === 0) return null;\n // Deduplicate, preserving first-seen order for stable output.\n const seen = new Set<any>();\n const deduped: any[] = [];\n for (const v of values) {\n if (!seen.has(v)) {\n seen.add(v);\n deduped.push(v);\n }\n }\n return deduped;\n }\n\n /**\n * Collect filters for a column from the top level and direct AND children\n * (one level of descent, consistent with the Python accessor). Deeply nested\n * AND/AND is not traversed.\n */\n private collectColumnFilters(columnName: string): Filter[] {\n const result: Filter[] = [];\n for (const f of this.filters) {\n if (f.columnName !== columnName) continue;\n if (f.type === \"and\") {\n for (const c of f.children) {\n if (c.columnName === columnName) result.push(c);\n }\n } else {\n result.push(f);\n }\n }\n return result;\n }\n}\n",
30
31
  "// Copyright 2025, 2026 Query Farm LLC - https://query.farm\n// Deserialize pushdown filters from the wire format (Arrow RecordBatch with\n// JSON specs in column 0 and value-ref scalars in columns 1+).\n\nimport { type VgiBatch, type VgiDataType, readCanonicalValue } from \"../arrow/index.js\";\nimport { ComparisonOp, type ExprNode, type Filter } from \"./types.js\";\nimport { PushdownFilters } from \"./evaluate.js\";\n\nfunction parseFilter(\n spec: any,\n getValue: (ref: number) => any,\n getJoinKeysColumn?: (columnName: string) => any[] | null,\n): Filter | null {\n const columnName: string = spec.column_name ?? \"\";\n const columnIndex: number = spec.column_index ?? 0;\n\n switch (spec.type) {\n case \"constant\":\n return {\n type: \"constant\",\n columnName,\n columnIndex,\n op: spec.op as ComparisonOp,\n value: getValue(spec.value_ref),\n };\n\n case \"is_null\":\n return { type: \"is_null\", columnName, columnIndex };\n\n case \"is_not_null\":\n return { type: \"is_not_null\", columnName, columnIndex };\n\n case \"in\": {\n const listScalar = getValue(spec.value_ref);\n // listScalar is an Arrow list value — extract elements into a Set\n const values = new Set<any>();\n if (listScalar && typeof listScalar[Symbol.iterator] === \"function\") {\n for (const v of listScalar) {\n values.add(v);\n }\n } else if (Array.isArray(listScalar)) {\n for (const v of listScalar) {\n values.add(v);\n }\n }\n return { type: \"in\", columnName, columnIndex, values };\n }\n\n case \"and\": {\n // AND: drop unparseable children; the remaining ones still filter correctly\n // (conjunction is weaker with fewer children, which is safe — extra rows\n // pass but DuckDB re-filters client-side).\n const andChildren = (spec.children ?? [])\n .map((c: any) => parseFilter(c, getValue, getJoinKeysColumn))\n .filter((f: Filter | null): f is Filter => f !== null);\n if (andChildren.length === 0) return null;\n return { type: \"and\", columnName, columnIndex, children: andChildren };\n }\n\n case \"or\": {\n // OR: dropping a child would strengthen the filter (fewer rows pass),\n // which is unsafe. If any child fails to parse, drop the whole OR.\n const orChildren: Filter[] = [];\n for (const c of spec.children ?? []) {\n const parsed = parseFilter(c, getValue, getJoinKeysColumn);\n if (parsed === null) return null;\n orChildren.push(parsed);\n }\n return { type: \"or\", columnName, columnIndex, children: orChildren };\n }\n\n case \"struct\": {\n const childFilter = parseFilter(spec.child_filter, getValue, getJoinKeysColumn);\n if (childFilter === null) return null;\n return {\n type: \"struct\",\n columnName,\n columnIndex,\n childIndex: spec.child_index ?? 0,\n childName: spec.child_name ?? \"\",\n childFilter,\n };\n }\n\n case \"join_keys\": {\n // vgi-python `FilterType.JOIN_KEYS`. DuckDB's dynamic_or_filter\n // optimizer can promote IN / OR lists or join-predicate pushdowns into\n // this shape. Look the keys_column up in the init request's join_keys\n // batches and materialize as an InFilter. If no callback or no batch\n // matches, fall through as null (graceful degradation).\n const keysColumn: string = spec.keys_column ?? \"\";\n if (!getJoinKeysColumn) return null;\n const values = getJoinKeysColumn(keysColumn);\n if (values === null) return null;\n const set = new Set<any>(values);\n return { type: \"in\", columnName, columnIndex, values: set };\n }\n\n case \"expression\": {\n // Parse the serialized expression tree (DuckDB bound-expression → JSON\n // emitted by FilterSerializer::SerializeExpression in C++). The tree\n // may reference constants by `value_ref` — resolve those now so the\n // evaluator sees plain JS values.\n const expr = parseExprNode(spec.expr, getValue);\n if (!expr) return null;\n return { type: \"expression\", columnName, columnIndex, expr };\n }\n\n default:\n throw new Error(`Unknown filter type: ${spec.type}`);\n }\n}\n\n/**\n * Build a getJoinKeysColumn lookup from an InitRequest's `joinKeys` batches.\n * Each batch typically has a single column whose name is the join-keys column\n * referenced by `spec.keys_column` on a join_keys filter.\n */\nexport function buildJoinKeysLookup(\n joinKeyBatches: VgiBatch[],\n): (columnName: string) => any[] | null {\n const index = new Map<string, any[]>();\n for (const batch of joinKeyBatches) {\n for (const field of batch.schema.fields) {\n const col = batch.getChild(field.name);\n if (!col) continue;\n const type = field.type as unknown as VgiDataType;\n const values: any[] = [];\n for (let i = 0; i < batch.numRows; i++) {\n // Canonical read so join keys match the column cells they filter\n // against (built via readCanonicalValue in evaluate.ts).\n values.push(readCanonicalValue(type, col, i));\n }\n index.set(field.name, values);\n }\n }\n return (name: string) => index.get(name) ?? null;\n}\n\n// Parse a serialized expression subtree. Returns null if the shape doesn't\n// look like one we can evaluate (unknown expr_type); the caller skips the\n// whole filter in that case, which is equivalent to not pushing it down.\nfunction parseExprNode(\n spec: any,\n getValue: (ref: number) => any,\n): ExprNode | null {\n if (!spec || typeof spec !== \"object\") return null;\n switch (spec.expr_type) {\n case \"column_ref\":\n return { expr_type: \"column_ref\", index: Number(spec.index ?? 0) };\n case \"constant\":\n return { expr_type: \"constant\", value: getValue(Number(spec.value_ref)) };\n case \"function\": {\n const kids: ExprNode[] = [];\n for (const c of spec.children ?? []) {\n const k = parseExprNode(c, getValue);\n if (!k) return null;\n kids.push(k);\n }\n return { expr_type: \"function\", function_name: String(spec.function_name ?? \"\"), children: kids };\n }\n case \"comparison\": {\n const left = parseExprNode(spec.left, getValue);\n const right = parseExprNode(spec.right, getValue);\n if (!left || !right) return null;\n return {\n expr_type: \"comparison\",\n op: opFromString(spec.op),\n left,\n right,\n };\n }\n case \"conjunction\": {\n const kids: ExprNode[] = [];\n for (const c of spec.children ?? []) {\n const k = parseExprNode(c, getValue);\n if (!k) return null;\n kids.push(k);\n }\n return {\n expr_type: \"conjunction\",\n conjunction_type: spec.conjunction_type === \"or\" ? \"or\" : \"and\",\n children: kids,\n };\n }\n default:\n return null;\n }\n}\n\nfunction opFromString(s: string): ComparisonOp {\n switch (s) {\n case \"eq\": case \"==\": return ComparisonOp.EQ;\n case \"ne\": case \"!=\": return ComparisonOp.NE;\n case \"gt\": case \">\": return ComparisonOp.GT;\n case \"ge\": case \">=\": return ComparisonOp.GE;\n case \"lt\": case \"<\": return ComparisonOp.LT;\n case \"le\": case \"<=\": return ComparisonOp.LE;\n default: return ComparisonOp.EQ;\n }\n}\n\n/**\n * Deserialize pushdown filters from an Arrow RecordBatch.\n *\n * Wire format:\n * - Column 0: UTF8 — JSON array of filter specs. Field metadata: vgi_filter_version: \"1\"\n * - Columns 1+: Scalar values referenced by value_ref → column N+1\n */\nexport function deserializeFilters(\n batch: VgiBatch,\n getJoinKeysColumn?: (columnName: string) => any[] | null,\n): PushdownFilters {\n // Validate version\n const field0 = batch.schema.fields[0];\n const version = field0.metadata?.get(\"vgi_filter_version\");\n if (!version) {\n throw new Error(\n \"Filter batch missing vgi_filter_version metadata on field 0\",\n );\n }\n if (version !== \"1\") {\n throw new Error(`Unsupported filter version: ${version}`);\n }\n\n // Parse JSON filter specs from column 0, row 0\n const jsonCol = batch.getChildAt(0)!;\n const jsonStr = jsonCol.get(0) as string;\n let specs: any[];\n try {\n specs = JSON.parse(jsonStr);\n } catch (e) {\n throw new Error(`Failed to parse filter JSON: ${e}`);\n }\n\n // Value resolver: value_ref N → column N+1, row 0. Read through the canonical\n // reader so filter literals land in the SAME representation as the column\n // cells they're compared against (e.g. timestamp -> bigint on both backends),\n // and so it works on flechette (no arrow-js `.get()`).\n const getValue = (ref: number): any => {\n const col = batch.getChildAt(ref + 1);\n if (!col) {\n throw new Error(`Filter value_ref ${ref} references non-existent column ${ref + 1}`);\n }\n const type = batch.schema.fields[ref + 1].type as unknown as VgiDataType;\n return readCanonicalValue(type, col, 0);\n };\n\n const filters = specs\n .map((spec) => parseFilter(spec, getValue, getJoinKeysColumn))\n .filter((f): f is Filter => f !== null);\n return new PushdownFilters(filters, version);\n}\n",
@@ -70,17 +71,18 @@
70
71
  "// Copyright 2025, 2026 Query Farm LLC - https://query.farm\n// Catalog macro handlers: macro_get/create/drop, schema_contents_macros.\n\nimport { type VgiSchema, schema, type VgiField, field, type VgiDataType, binary, utf8, bool } from \"../../../arrow/index.js\";\nimport { Protocol } from \"@query-farm/vgi-rpc\";\nimport { encodeMacroInfo } from \"../../../generated/vgi-client.js\";\nimport {\n CatalogMacroGetResultSchema,\n CatalogSchemaContentsMacrosResultSchema,\n} from \"../../../generated/vgi-protocol-schemas.js\";\nimport type { MacroType } from \"../../../catalog/interface.js\";\nimport { toUint8Array } from \"../../../util/bytes.js\";\nimport { decodeDictValue } from \"../../../util/arrow/index.js\";\nimport {\n REQUEST_PARAMS_SCHEMA,\n RESULT_BINARY_SCHEMA,\n unwrapRequest,\n wrapResult,\n} from \"../shared.js\";\nimport {\n type GetCatalog,\n emptyResultSchema,\n attachOpaqueDataSchemaNameTxnParams,\n catalogUnary,\n} from \"./shared.js\";\n\nexport function registerCatalogMacroMethods(protocol: Protocol, getCatalog: GetCatalog, signingKey?: Uint8Array): void {\n // catalog_macro_get\n catalogUnary(protocol, signingKey, \"catalog_macro_get\", {\n params: attachOpaqueDataSchemaNameTxnParams,\n result: RESULT_BINARY_SCHEMA,\n handler: async (params) => {\n const cat = getCatalog();\n const info = await cat.macroGet(\n toUint8Array(params.attach_opaque_data),\n params.schema_name,\n params.name,\n params.transaction_opaque_data ? toUint8Array(params.transaction_opaque_data) : undefined\n );\n return wrapResult({\n items: info ? [encodeMacroInfo(info)] : [],\n }, CatalogMacroGetResultSchema);\n },\n });\n\n // catalog_macro_create\n catalogUnary(protocol, signingKey, \"catalog_macro_create\", {\n params: REQUEST_PARAMS_SCHEMA,\n result: emptyResultSchema,\n handler: async (params) => {\n const cat = getCatalog();\n const innerParams = unwrapRequest(params.request);\n await cat.macroCreate(\n toUint8Array(innerParams.attach_opaque_data),\n innerParams.schema_name,\n innerParams.name,\n innerParams.macro_type as MacroType,\n innerParams.parameters ? (Array.isArray(innerParams.parameters) ? innerParams.parameters : [...innerParams.parameters]) : [],\n innerParams.definition,\n innerParams.on_conflict,\n innerParams.parameter_default_values ? toUint8Array(innerParams.parameter_default_values) : null,\n innerParams.arguments_schema ? toUint8Array(innerParams.arguments_schema) : null,\n innerParams.transaction_opaque_data ? toUint8Array(innerParams.transaction_opaque_data) : undefined\n );\n return {};\n },\n });\n\n // catalog_macro_drop\n catalogUnary(protocol, signingKey, \"catalog_macro_drop\", {\n params: schema([\n field(\"attach_opaque_data\", binary(), true),\n field(\"schema_name\", utf8(), false),\n field(\"name\", utf8(), false),\n field(\"ignore_not_found\", bool(), true),\n field(\"transaction_opaque_data\", binary(), true),\n ]),\n result: emptyResultSchema,\n handler: async (params) => {\n const cat = getCatalog();\n await cat.macroDrop(\n toUint8Array(params.attach_opaque_data),\n params.schema_name,\n params.name,\n params.ignore_not_found,\n params.transaction_opaque_data ? toUint8Array(params.transaction_opaque_data) : undefined\n );\n return {};\n },\n });\n\n // catalog_schema_contents_macros\n catalogUnary(protocol, signingKey, \"catalog_schema_contents_macros\", {\n params: schema([\n field(\"attach_opaque_data\", binary(), true),\n field(\"name\", utf8(), false),\n field(\"type\", utf8(), false),\n field(\"transaction_opaque_data\", binary(), true),\n ]),\n result: RESULT_BINARY_SCHEMA,\n handler: async (params) => {\n const cat = getCatalog();\n const macros = await cat.schemaContentsMacros(\n toUint8Array(params.attach_opaque_data),\n params.name,\n decodeDictValue(params.type),\n params.transaction_opaque_data ? toUint8Array(params.transaction_opaque_data) : undefined\n );\n return wrapResult({\n items: macros.map((m) => encodeMacroInfo(m)),\n }, CatalogSchemaContentsMacrosResultSchema);\n },\n });\n}\n",
71
72
  "// Copyright 2025, 2026 Query Farm LLC - https://query.farm\n// Catalog index handlers: index_get, schema_contents_indexes.\n\nimport { type VgiSchema, schema, type VgiField, field, type VgiDataType, binary, utf8 } from \"../../../arrow/index.js\";\nimport { Protocol } from \"@query-farm/vgi-rpc\";\nimport { encodeIndexInfo } from \"../../../generated/vgi-client.js\";\nimport {\n CatalogIndexGetResultSchema,\n CatalogSchemaContentsIndexesResultSchema,\n} from \"../../../generated/vgi-protocol-schemas.js\";\nimport { toUint8Array } from \"../../../util/bytes.js\";\nimport {\n RESULT_BINARY_SCHEMA,\n wrapResult,\n} from \"../shared.js\";\nimport {\n type GetCatalog,\n catalogUnary,\n} from \"./shared.js\";\n\nexport function registerCatalogIndexMethods(protocol: Protocol, getCatalog: GetCatalog, signingKey?: Uint8Array): void {\n // catalog_schema_contents_indexes\n catalogUnary(protocol, signingKey, \"catalog_schema_contents_indexes\", {\n params: schema([\n field(\"attach_opaque_data\", binary(), true),\n field(\"name\", utf8(), false),\n field(\"transaction_opaque_data\", binary(), true),\n ]),\n result: RESULT_BINARY_SCHEMA,\n handler: async (params) => {\n const cat = getCatalog();\n const indexes = await cat.schemaContentsIndexes(\n toUint8Array(params.attach_opaque_data),\n params.name,\n params.transaction_opaque_data ? toUint8Array(params.transaction_opaque_data) : undefined,\n );\n return wrapResult({\n items: indexes.map((i) => encodeIndexInfo(i)),\n }, CatalogSchemaContentsIndexesResultSchema);\n },\n });\n\n // catalog_index_get\n catalogUnary(protocol, signingKey, \"catalog_index_get\", {\n params: schema([\n field(\"attach_opaque_data\", binary(), true),\n field(\"schema_name\", utf8(), false),\n field(\"name\", utf8(), false),\n field(\"transaction_opaque_data\", binary(), true),\n ]),\n result: RESULT_BINARY_SCHEMA,\n handler: async (params) => {\n const cat = getCatalog();\n const info = await cat.indexGet(\n toUint8Array(params.attach_opaque_data),\n params.schema_name,\n params.name,\n params.transaction_opaque_data ? toUint8Array(params.transaction_opaque_data) : undefined,\n );\n return wrapResult({\n items: info ? [encodeIndexInfo(info)] : [],\n }, CatalogIndexGetResultSchema);\n },\n });\n}\n",
72
73
  "// Copyright 2025, 2026 Query Farm LLC - https://query.farm\n// Catalog handler orchestrator: registers all catalog_* RPC methods.\n\nimport { Protocol } from \"@query-farm/vgi-rpc\";\nimport type { CatalogInterface } from \"../../../catalog/interface.js\";\nimport { makeGetCatalog } from \"./shared.js\";\nimport { registerCatalogAdminMethods } from \"./admin.js\";\nimport { registerCatalogTableMethods } from \"./table.js\";\nimport { registerCatalogViewMethods } from \"./view.js\";\nimport { registerCatalogMacroMethods } from \"./macro.js\";\nimport { registerCatalogIndexMethods } from \"./index_methods.js\";\n\nexport function registerCatalogMethods(\n protocol: Protocol,\n catalog: CatalogInterface | undefined,\n _catalogName: string | undefined,\n signingKey?: Uint8Array,\n): void {\n const getCatalog = makeGetCatalog(catalog);\n registerCatalogAdminMethods(protocol, getCatalog, signingKey);\n registerCatalogTableMethods(protocol, getCatalog, signingKey);\n registerCatalogViewMethods(protocol, getCatalog, signingKey);\n registerCatalogMacroMethods(protocol, getCatalog, signingKey);\n registerCatalogIndexMethods(protocol, getCatalog, signingKey);\n}\n",
73
- "// Copyright 2025, 2026 Query Farm LLC - https://query.farm\n// SPDX-License-Identifier: Apache-2.0\n//\n// Producer for the versioned VGI HTTP landing contract (`describe.json`) from a\n// worker's catalog introspection. This is the TypeScript counterpart to the\n// Python reference producer (`vgi/http/describe_json.py`); both emit an\n// equivalent document, guarded by the cross-language conformance harness at\n// `vgi/test/landing/`. See `vgi/docs/http-landing-contract.md` for the spec.\n//\n// The document is JSON — it does NOT depend on the (versioned, evolving) VGI\n// wire protocol, so the single shared static `landing.html` (byte-identical\n// across every language worker) can render it same-origin. Table/view columns\n// are lazy: the document carries only a column count, and the page fetches\n// per-object detail from `buildColumnsJson`\n// (`GET {prefix}/describe/{catalog}/{schema}/{table}.json`) on first expand.\n\nimport {\n deserializeBatch,\n deserializeSchema,\n isBinary,\n isBool,\n isFloat,\n isInt,\n isNull,\n isUtf8,\n type VgiDataType,\n type VgiField,\n} from \"../arrow/index.js\";\nimport type { CatalogInterface } from \"../catalog/interface.js\";\nimport type {\n CatalogAttachResult,\n CatalogInfo,\n FunctionInfo,\n MacroInfo,\n SchemaInfo,\n TableInfo,\n ViewInfo,\n} from \"../generated/vgi-client.js\";\nimport {\n VGI_ARG_KEY,\n VGI_ARG_NAMED,\n VGI_DEFAULT_KEY,\n VGI_DOC_KEY,\n VGI_TYPE_KEY,\n VGI_TYPE_TABLE,\n} from \"../types.js\";\n\nexport const LANDING_SCHEMA_VERSION = 1;\nexport const CUPOLA_BASE = \"https://cupola.query-farm.services\";\n\n/**\n * Producer for the VGI landing surface, passed to `createHttpHandler`'s\n * `landingDescribe` option. Declared locally (structurally identical to\n * `@query-farm/vgi-rpc`'s `LandingDescribeProvider`) so this package does not\n * hard-couple to a specific vgi-rpc version.\n */\nexport interface LandingDescribeProvider {\n describe(ctx: { serverId: string; oauth: boolean }): unknown | Promise<unknown>;\n columns(catalog: string, schema: string, table: string): unknown | null | Promise<unknown | null>;\n}\n\n/** Identity of the worker software surfaced in `describe.json` → `worker`. */\nexport interface WorkerDescribeInfo {\n /** Worker name (e.g. class or catalog name). */\n name: string;\n /** One-line worker description. */\n doc?: string;\n /** Worker software version. */\n version?: string;\n}\n\n// `duckdb_databases().tags` keys (the reserved `vgi.*` namespace) surfaced in\n// the landing page's catalog card. Mirrors the Python reference `_STRING_TAGS`.\nconst STRING_TAGS: Record<string, string> = {\n title: \"vgi.title\",\n doc_md: \"vgi.doc_md\",\n source_url: \"vgi.source_url\",\n license: \"vgi.license\",\n author: \"vgi.author\",\n copyright: \"vgi.copyright\",\n support_contact: \"vgi.support_contact\",\n support_policy_url: \"vgi.support_policy_url\",\n};\nconst KEYWORDS_TAG = \"vgi.keywords\"; // JSON array encoded as a string in the tags MAP\n\n// ---------------------------------------------------------------------------\n// Type / field helpers\n// ---------------------------------------------------------------------------\n\n/** Human-readable DuckDB-ish type name for a VGI Arrow type. */\nfunction typeToString(type: VgiDataType): string {\n if (isNull(type)) return \"NULL\";\n if (isUtf8(type)) return \"VARCHAR\";\n if (isBinary(type)) return \"BLOB\";\n if (isBool(type)) return \"BOOLEAN\";\n if (isInt(type)) {\n const bw = (type as { bitWidth?: number }).bitWidth ?? 32;\n return bw === 64 ? \"BIGINT\" : \"INTEGER\";\n }\n if (isFloat(type)) {\n const precision = (type as { precision?: number }).precision ?? 2;\n return precision === 1 ? \"FLOAT\" : \"DOUBLE\";\n }\n const s = (type as { toString?: () => string }).toString?.();\n return s ?? String(type.typeId);\n}\n\n/**\n * Raw Arrow type string (e.g. `int64`, `string`, `double`) matching pyarrow's\n * `str(type)`. Unlike {@link typeToString} (DuckDB-ish names used for table/view\n * columns), macro arg types are carried verbatim in `describe.json` — the shared\n * landing page maps Arrow → DuckDB client-side — so they must be byte-identical\n * to what the Python reference producer emits for cross-language parity.\n */\nfunction arrowTypeString(type: VgiDataType): string {\n if (isNull(type)) return \"null\";\n if (isBool(type)) return \"bool\";\n if (isUtf8(type)) return \"string\";\n if (isBinary(type)) return \"binary\";\n if (isInt(type)) {\n const bw = (type as { bitWidth?: number }).bitWidth ?? 32;\n const signed =\n (type as { isSigned?: boolean }).isSigned ?? (type as { signed?: boolean }).signed ?? true;\n return `${signed ? \"\" : \"u\"}int${bw}`;\n }\n if (isFloat(type)) {\n const precision = (type as { precision?: number }).precision ?? 2;\n return precision === 0 ? \"halffloat\" : precision === 1 ? \"float\" : \"double\";\n }\n const s = (type as { toString?: () => string }).toString?.();\n return (s ?? String(type.typeId)).toLowerCase();\n}\n\nfunction fieldMeta(field: VgiField, key: string): string | undefined {\n return field.metadata.get(key);\n}\n\ninterface ColumnJson {\n name: string;\n type: string;\n comment?: string;\n}\n\nfunction fieldToColumn(field: VgiField): ColumnJson {\n const col: ColumnJson = { name: field.name, type: typeToString(field.type) };\n const comment = fieldMeta(field, \"comment\") ?? fieldMeta(field, VGI_DOC_KEY);\n if (comment) col.comment = comment;\n return col;\n}\n\nfunction readSchemaSafe(bytes: Uint8Array | null | undefined) {\n if (!bytes || bytes.length === 0) return null;\n try {\n return deserializeSchema(bytes);\n } catch {\n return null;\n }\n}\n\n// ---------------------------------------------------------------------------\n// Function mapping\n// ---------------------------------------------------------------------------\n\n/** scalar | table | aggregate | table_in_out (mirrors Python `_function_display_type`). */\nfunction functionDisplayType(fn: FunctionInfo): \"scalar\" | \"table\" | \"aggregate\" | \"table_in_out\" {\n const t = String(fn.function_type).toUpperCase();\n if (t === \"SCALAR\") return \"scalar\";\n if (t === \"AGGREGATE\") return \"aggregate\";\n if (fn.has_finalize) return \"table_in_out\";\n return \"table\";\n}\n\nfunction functionReturns(fn: FunctionInfo): string | undefined {\n const schema = readSchemaSafe(fn.output_schema);\n if (schema === null || schema.fields.length === 0) return undefined;\n const t = String(fn.function_type).toUpperCase();\n if (t === \"SCALAR\" || t === \"AGGREGATE\") {\n // Scalar/aggregate output is a single \"result\" column.\n return typeToString(schema.fields[0].type);\n }\n const cols = schema.fields.map((f) => `${f.name} ${typeToString(f.type)}`).join(\", \");\n return `TABLE(${cols})`;\n}\n\ninterface ArgJson {\n name: string;\n type: string;\n named?: boolean;\n default?: string;\n desc?: string;\n}\n\nfunction functionArgs(fn: FunctionInfo): ArgJson[] {\n const schema = readSchemaSafe(fn.arguments);\n if (schema === null) return [];\n const args: ArgJson[] = [];\n for (const field of schema.fields) {\n // Skip the piped input relation of a table-in-out function; it's not a\n // user-supplied argument.\n if (fieldMeta(field, VGI_TYPE_KEY) === VGI_TYPE_TABLE) continue;\n const arg: ArgJson = { name: field.name, type: typeToString(field.type) };\n if (fieldMeta(field, VGI_ARG_KEY) === VGI_ARG_NAMED) arg.named = true;\n const doc = fieldMeta(field, VGI_DOC_KEY);\n if (doc) arg.desc = doc;\n const rawDefault = fieldMeta(field, VGI_DEFAULT_KEY);\n if (rawDefault !== undefined) {\n // Stored as a JSON scalar; render the decoded value for display.\n try {\n arg.default = JSON.stringify(JSON.parse(rawDefault));\n } catch {\n arg.default = rawDefault;\n }\n }\n args.push(arg);\n }\n return args;\n}\n\n// ---------------------------------------------------------------------------\n// Macro mapping\n// ---------------------------------------------------------------------------\n\n// A scalar macro is invoked exactly like a scalar function in SQL, and a table\n// macro like a table function; surface them in the same buckets so the landing\n// page lists a catalog's full callable surface (VGI workers commonly expose\n// their \"functions\" as declarative macros). Mirrors Python `_macro_display_type`.\nfunction macroDisplayType(m: MacroInfo): \"scalar\" | \"table\" {\n return String(m.macro_type).toUpperCase() === \"SCALAR\" ? \"scalar\" : \"table\";\n}\n\n/** JSON-encode a decoded macro default scalar, matching Python's `json.dumps`. */\nfunction macroDefaultJson(value: unknown): string {\n // int64 defaults decode to BigInt, which JSON.stringify rejects; a bigint's\n // decimal string is already its JSON integer encoding (0n -> \"0\").\n if (typeof value === \"bigint\") return value.toString();\n try {\n return JSON.stringify(value);\n } catch {\n return String(value);\n }\n}\n\nfunction macroArgs(m: MacroInfo): ArgJson[] {\n // Defaulted parameters are optional and callable by name in DuckDB, so we\n // present them as named args (with their default); the rest are positional.\n const defaults = new Map<string, unknown>();\n const defBytes = m.parameter_default_values;\n if (defBytes && defBytes.length > 0) {\n try {\n const batch = deserializeBatch(defBytes);\n for (const field of batch.schema.fields) {\n try {\n defaults.set(field.name, batch.getChild(field.name)?.get(0));\n } catch {\n // skip an undecodable default column\n }\n }\n } catch {\n // no usable defaults\n }\n }\n\n const schema = readSchemaSafe(m.arguments_schema);\n const fields = schema ? schema.fields : null;\n const fieldByName = new Map<string, VgiField>();\n if (fields) for (const f of fields) fieldByName.set(f.name, f);\n const names = fields ? fields.map((f) => f.name) : m.parameters;\n\n const args: ArgJson[] = [];\n for (const name of names) {\n const field = fieldByName.get(name);\n // Macro parameters are untyped unless a typed default pins them; show ANY\n // rather than the Arrow null placeholder.\n const arg: ArgJson =\n field !== undefined && !isNull(field.type)\n ? { name, type: arrowTypeString(field.type) }\n : { name, type: \"ANY\" };\n const doc = field !== undefined ? fieldMeta(field, VGI_DOC_KEY) : undefined;\n if (doc) arg.desc = doc;\n if (defaults.has(name)) {\n arg.named = true;\n arg.default = macroDefaultJson(defaults.get(name));\n }\n args.push(arg);\n }\n return args;\n}\n\nfunction macroToObject(m: MacroInfo): Record<string, unknown> {\n return {\n name: m.name,\n type: macroDisplayType(m),\n doc: m.comment ?? \"\",\n args: macroArgs(m),\n };\n}\n\n// ---------------------------------------------------------------------------\n// Catalog contents\n// ---------------------------------------------------------------------------\n\nasync function schemaContents(\n iface: CatalogInterface,\n aod: Uint8Array,\n name: string,\n kind: \"TABLE\" | \"VIEW\",\n): Promise<TableInfo[] | ViewInfo[]> {\n try {\n if (kind === \"TABLE\") {\n return await iface.schemaContentsTables(aod, name);\n }\n return await iface.schemaContentsViews(aod, name);\n } catch {\n return [];\n }\n}\n\nasync function schemaFunctions(iface: CatalogInterface, aod: Uint8Array, name: string): Promise<FunctionInfo[]> {\n const out: FunctionInfo[] = [];\n for (const kind of [\"SCALAR_FUNCTION\", \"TABLE_FUNCTION\", \"AGGREGATE_FUNCTION\"]) {\n try {\n out.push(...(await iface.schemaContentsFunctions(aod, name, kind)));\n } catch {\n // best-effort — keep whatever we collected\n }\n }\n return out;\n}\n\nasync function schemaMacros(iface: CatalogInterface, aod: Uint8Array, name: string): Promise<MacroInfo[]> {\n const out: MacroInfo[] = [];\n for (const kind of [\"SCALAR_MACRO\", \"TABLE_MACRO\"]) {\n try {\n out.push(...(await iface.schemaContentsMacros(aod, name, kind)));\n } catch {\n // best-effort — keep whatever we collected\n }\n }\n return out;\n}\n\ninterface Counts {\n schemas: number;\n tables: number;\n views: number;\n functions: number;\n}\n\nasync function buildSchemas(\n iface: CatalogInterface,\n aod: Uint8Array,\n): Promise<{ schemas: unknown[]; counts: Counts }> {\n let schemaInfos: SchemaInfo[];\n try {\n schemaInfos = await iface.schemas(aod);\n } catch {\n return { schemas: [], counts: { schemas: 0, tables: 0, views: 0, functions: 0 } };\n }\n\n const schemas: unknown[] = [];\n const counts: Counts = { schemas: 0, tables: 0, views: 0, functions: 0 };\n\n for (const si of schemaInfos) {\n const tablesRaw = (await schemaContents(iface, aod, si.name, \"TABLE\")) as TableInfo[];\n const viewsRaw = (await schemaContents(iface, aod, si.name, \"VIEW\")) as ViewInfo[];\n const funcsRaw = await schemaFunctions(iface, aod, si.name);\n const macrosRaw = await schemaMacros(iface, aod, si.name);\n\n const tables = tablesRaw.map((t) => {\n const schema = readSchemaSafe(t.columns);\n return { name: t.name, cols: schema ? schema.fields.length : 0, comment: t.comment ?? \"\" };\n });\n\n const views = viewsRaw.map((v) => ({\n name: v.name,\n cols: Object.keys(v.column_comments ?? {}).length,\n comment: v.comment ?? \"\",\n def: v.definition,\n }));\n\n const functions: Record<string, unknown>[] = funcsRaw.map((fn) => {\n const obj: Record<string, unknown> = {\n name: fn.name,\n type: functionDisplayType(fn),\n doc: fn.description ?? \"\",\n args: functionArgs(fn),\n };\n const ret = functionReturns(fn);\n if (ret) obj.returns = ret;\n return obj;\n });\n // Fold macros into the same scalar/table buckets (VGI catalogs commonly\n // expose their callable surface as declarative macros).\n functions.push(...macrosRaw.map((m) => macroToObject(m)));\n // Deterministic ordering across functions + macros, matching the Python\n // reference producer's `sort(key=(type, name))`.\n functions.sort(\n (a, b) =>\n String(a.type).localeCompare(String(b.type)) || String(a.name).localeCompare(String(b.name)),\n );\n\n schemas.push({ name: si.name, tables, views, functions });\n counts.schemas += 1;\n counts.tables += tables.length;\n counts.views += views.length;\n counts.functions += functions.length;\n }\n\n return { schemas, counts };\n}\n\n// ---------------------------------------------------------------------------\n// Catalog-level metadata (tags, attach options, data versions)\n// ---------------------------------------------------------------------------\n\nfunction catalogTags(result: CatalogAttachResult | null): Record<string, unknown> {\n const tags = result?.tags;\n if (!tags) return {};\n const out: Record<string, unknown> = {};\n for (const [key, tag] of Object.entries(STRING_TAGS)) {\n const val = tags[tag];\n if (val) out[key] = val;\n }\n const kw = tags[KEYWORDS_TAG];\n if (kw) {\n try {\n const parsed = JSON.parse(kw);\n if (Array.isArray(parsed)) out.keywords = parsed.map((k) => String(k));\n } catch {\n // ignore unparseable keyword tag\n }\n }\n return out;\n}\n\ninterface AttachOptionJson {\n name: string;\n type: string;\n default: string;\n description: string;\n}\n\n/** Decode a serialized AttachOptionSpec row into the describe shape. */\nfunction decodeAttachOption(bytes: Uint8Array): AttachOptionJson | null {\n try {\n const batch = deserializeBatch(bytes);\n if (batch.numRows === 0) return null;\n const name = String(batch.getChild(\"name\")?.get(0) ?? \"\");\n const description = String(batch.getChild(\"description\")?.get(0) ?? \"\");\n const typeBytes = batch.getChild(\"type\")?.get(0) as Uint8Array | null | undefined;\n let type = \"\";\n const typeSchema = readSchemaSafe(typeBytes ?? null);\n if (typeSchema && typeSchema.fields.length > 0) type = typeToString(typeSchema.fields[0].type);\n let defaultStr = \"\";\n const defBytes = batch.getChild(\"default_value\")?.get(0) as Uint8Array | null | undefined;\n if (defBytes) {\n try {\n const defBatch = deserializeBatch(defBytes);\n if (defBatch.numRows > 0) {\n const v = defBatch.getChild(\"value\")?.get(0);\n defaultStr = v == null ? \"\" : String(v);\n }\n } catch {\n // leave default empty\n }\n }\n return { name, type, default: defaultStr, description };\n } catch {\n return null;\n }\n}\n\nasync function attachCatalog(\n iface: CatalogInterface,\n name: string,\n): Promise<CatalogAttachResult | null> {\n try {\n return await iface.attach(name, {}, null, null);\n } catch {\n return null;\n }\n}\n\nasync function buildCatalog(\n iface: CatalogInterface,\n name: string,\n info: CatalogInfo | undefined,\n): Promise<Record<string, unknown>> {\n const result = await attachCatalog(iface, name);\n\n const attachOptions = (info?.attach_option_specs ?? [])\n .map((b) => decodeAttachOption(b))\n .filter((o): o is AttachOptionJson => o !== null);\n\n const dataVersions = (info?.releases ?? []).map((r) =>\n r.summary ? { spec: r.version, label: r.summary } : { spec: r.version },\n );\n\n let impl: string | null = info?.implementation_version ?? null;\n let dvs: string | null = info?.data_version_spec ?? null;\n if (result) {\n impl = result.resolved_implementation_version ?? impl;\n dvs = result.resolved_data_version ?? dvs;\n }\n\n let schemas: unknown[] = [];\n let counts: Counts = { schemas: 0, tables: 0, views: 0, functions: 0 };\n if (result) {\n const built = await buildSchemas(iface, result.attach_opaque_data);\n schemas = built.schemas;\n counts = built.counts;\n }\n\n return {\n name,\n implementation_version: impl,\n data_version_spec: dvs,\n data_versions: dataVersions,\n attach_options: attachOptions,\n tags: catalogTags(result),\n counts,\n schemas,\n };\n}\n\nasync function catalogInfoByName(iface: CatalogInterface): Promise<Map<string, CatalogInfo>> {\n const map = new Map<string, CatalogInfo>();\n if (typeof iface.catalogsInfo === \"function\") {\n try {\n const infos = await iface.catalogsInfo();\n for (const info of infos) map.set(info.name, info);\n } catch {\n // fall back to bare names below\n }\n }\n return map;\n}\n\n// ---------------------------------------------------------------------------\n// Public API\n// ---------------------------------------------------------------------------\n\n/**\n * Build the full `describe.json` document for a worker's catalog interface.\n *\n * `oauth` and `serverId` are supplied by the HTTP server (they depend on runtime\n * config, not the catalog).\n */\nexport async function buildDescribeJson(\n iface: CatalogInterface,\n worker: WorkerDescribeInfo,\n opts: { oauth?: boolean; serverId?: string; cupolaBase?: string } = {},\n): Promise<Record<string, unknown>> {\n const infos = await catalogInfoByName(iface);\n let names: string[];\n try {\n names = iface.catalogs();\n } catch {\n names = [];\n }\n\n const catalogs: unknown[] = [];\n for (const name of names) {\n catalogs.push(await buildCatalog(iface, name, infos.get(name)));\n }\n\n return {\n landing_schema_version: LANDING_SCHEMA_VERSION,\n worker: {\n name: worker.name,\n doc: worker.doc ?? \"\",\n version: worker.version ?? \"unknown\",\n lang: \"typescript\",\n },\n server_id: opts.serverId ?? \"\",\n oauth: opts.oauth ?? false,\n cupola_base: opts.cupolaBase ?? CUPOLA_BASE,\n catalogs,\n };\n}\n\n/**\n * Build the lazy per-object column payload for one table or view.\n *\n * Returns `{ columns: [{ name, type, comment? }] }`, or `null` when the object\n * can't be found. Tables deserialize their Arrow column schema; views expose\n * their declared column comments (types are only known after binding the SQL,\n * which the worker does not do here).\n */\nexport async function buildColumnsJson(\n iface: CatalogInterface,\n catalog: string,\n schema: string,\n table: string,\n): Promise<{ columns: ColumnJson[] } | null> {\n const result = await attachCatalog(iface, catalog);\n if (!result) return null;\n const aod = result.attach_opaque_data;\n\n const tables = (await schemaContents(iface, aod, schema, \"TABLE\")) as TableInfo[];\n for (const t of tables) {\n if (t.name === table) {\n const arrow = readSchemaSafe(t.columns);\n return { columns: (arrow?.fields ?? []).map((f) => fieldToColumn(f)) };\n }\n }\n\n const views = (await schemaContents(iface, aod, schema, \"VIEW\")) as ViewInfo[];\n for (const v of views) {\n if (v.name === table) {\n return {\n columns: Object.entries(v.column_comments ?? {}).map(([name, comment]) => ({\n name,\n type: \"\",\n comment,\n })),\n };\n }\n }\n\n return null;\n}\n\n/**\n * Build a {@link LandingDescribeProvider} to pass to `createHttpHandler` from\n * `@query-farm/vgi-rpc`. Wires the worker's catalog interface into the\n * standardized landing surface (`GET {prefix}/describe.json` and the lazy\n * per-object column endpoint).\n */\nexport function createLandingDescribe(\n iface: CatalogInterface,\n worker: WorkerDescribeInfo,\n opts: { cupolaBase?: string } = {},\n): LandingDescribeProvider {\n return {\n describe: (ctx) => buildDescribeJson(iface, worker, { ...ctx, cupolaBase: opts.cupolaBase }),\n columns: (catalog, schema, table) => buildColumnsJson(iface, catalog, schema, table),\n };\n}\n",
74
+ "// Copyright 2025, 2026 Query Farm LLC - https://query.farm\n// SPDX-License-Identifier: Apache-2.0\n//\n// Producer for the versioned VGI HTTP landing contract (`describe.json`) from a\n// worker's catalog introspection. This is the TypeScript counterpart to the\n// Python reference producer (`vgi/http/describe_json.py`); both emit an\n// equivalent document, guarded by the cross-language conformance harness at\n// `vgi/test/landing/`. See `vgi/docs/http-landing-contract.md` for the spec.\n//\n// The document is JSON — it does NOT depend on the (versioned, evolving) VGI\n// wire protocol, so the single shared static `landing.html` (byte-identical\n// across every language worker) can render it same-origin. Table/view columns\n// are lazy: the document carries only a column count, and the page fetches\n// per-object detail from `buildColumnsJson`\n// (`GET {prefix}/describe/{catalog}/{schema}/{table}.json`) on first expand.\n\nimport {\n deserializeBatch,\n deserializeSchema,\n isBinary,\n isBool,\n isFloat,\n isInt,\n isNull,\n isUtf8,\n type VgiDataType,\n type VgiField,\n} from \"../arrow/index.js\";\nimport type { CatalogInterface } from \"../catalog/interface.js\";\nimport type {\n CatalogAttachResult,\n CatalogInfo,\n FunctionInfo,\n MacroInfo,\n SchemaInfo,\n TableInfo,\n ViewInfo,\n} from \"../generated/vgi-client.js\";\nimport {\n VGI_ARG_KEY,\n VGI_ARG_NAMED,\n VGI_DEFAULT_KEY,\n VGI_DOC_KEY,\n VGI_TYPE_KEY,\n VGI_TYPE_TABLE,\n} from \"../types.js\";\n\nexport const LANDING_SCHEMA_VERSION = 1;\nexport const CUPOLA_BASE = \"https://cupola.query-farm.services\";\n\n/**\n * Producer for the VGI landing surface, passed to `createHttpHandler`'s\n * `landingDescribe` option. Declared locally (structurally identical to\n * `@query-farm/vgi-rpc`'s `LandingDescribeProvider`) so this package does not\n * hard-couple to a specific vgi-rpc version.\n */\nexport interface LandingDescribeProvider {\n describe(ctx: { serverId: string; oauth: boolean }): unknown | Promise<unknown>;\n columns(catalog: string, schema: string, table: string): unknown | null | Promise<unknown | null>;\n}\n\n/** Identity of the worker software surfaced in `describe.json` → `worker`. */\nexport interface WorkerDescribeInfo {\n /** Worker name (e.g. class or catalog name). */\n name: string;\n /** One-line worker description. */\n doc?: string;\n /** Worker software version. */\n version?: string;\n}\n\n// `duckdb_databases().tags` keys (the reserved `vgi.*` namespace) surfaced in\n// the landing page's catalog card. Mirrors the Python reference `_STRING_TAGS`.\nconst STRING_TAGS: Record<string, string> = {\n title: \"vgi.title\",\n doc_md: \"vgi.doc_md\",\n source_url: \"vgi.source_url\",\n license: \"vgi.license\",\n author: \"vgi.author\",\n copyright: \"vgi.copyright\",\n support_contact: \"vgi.support_contact\",\n support_policy_url: \"vgi.support_policy_url\",\n};\nconst KEYWORDS_TAG = \"vgi.keywords\"; // JSON array encoded as a string in the tags MAP\n\n// ---------------------------------------------------------------------------\n// Type / field helpers\n// ---------------------------------------------------------------------------\n\n/** Human-readable DuckDB-ish type name for a VGI Arrow type. */\nfunction typeToString(type: VgiDataType): string {\n if (isNull(type)) return \"NULL\";\n if (isUtf8(type)) return \"VARCHAR\";\n if (isBinary(type)) return \"BLOB\";\n if (isBool(type)) return \"BOOLEAN\";\n if (isInt(type)) {\n const bw = (type as { bitWidth?: number }).bitWidth ?? 32;\n return bw === 64 ? \"BIGINT\" : \"INTEGER\";\n }\n if (isFloat(type)) {\n const precision = (type as { precision?: number }).precision ?? 2;\n return precision === 1 ? \"FLOAT\" : \"DOUBLE\";\n }\n const s = (type as { toString?: () => string }).toString?.();\n return s ?? String(type.typeId);\n}\n\n/**\n * Raw Arrow type string (e.g. `int64`, `string`, `double`) matching pyarrow's\n * `str(type)`. Unlike {@link typeToString} (DuckDB-ish names used for table/view\n * columns), macro arg types are carried verbatim in `describe.json` — the shared\n * landing page maps Arrow → DuckDB client-side — so they must be byte-identical\n * to what the Python reference producer emits for cross-language parity.\n */\nfunction arrowTypeString(type: VgiDataType): string {\n if (isNull(type)) return \"null\";\n if (isBool(type)) return \"bool\";\n if (isUtf8(type)) return \"string\";\n if (isBinary(type)) return \"binary\";\n if (isInt(type)) {\n const bw = (type as { bitWidth?: number }).bitWidth ?? 32;\n const signed =\n (type as { isSigned?: boolean }).isSigned ?? (type as { signed?: boolean }).signed ?? true;\n return `${signed ? \"\" : \"u\"}int${bw}`;\n }\n if (isFloat(type)) {\n const precision = (type as { precision?: number }).precision ?? 2;\n return precision === 0 ? \"halffloat\" : precision === 1 ? \"float\" : \"double\";\n }\n const s = (type as { toString?: () => string }).toString?.();\n return (s ?? String(type.typeId)).toLowerCase();\n}\n\nfunction fieldMeta(field: VgiField, key: string): string | undefined {\n return field.metadata.get(key);\n}\n\ninterface ColumnJson {\n name: string;\n type: string;\n comment?: string;\n}\n\nfunction fieldToColumn(field: VgiField): ColumnJson {\n const col: ColumnJson = { name: field.name, type: typeToString(field.type) };\n const comment = fieldMeta(field, \"comment\") ?? fieldMeta(field, VGI_DOC_KEY);\n if (comment) col.comment = comment;\n return col;\n}\n\nfunction readSchemaSafe(bytes: Uint8Array | null | undefined) {\n if (!bytes || bytes.length === 0) return null;\n try {\n return deserializeSchema(bytes);\n } catch {\n return null;\n }\n}\n\n// ---------------------------------------------------------------------------\n// Function mapping\n// ---------------------------------------------------------------------------\n\n/** scalar | table | aggregate | table_in_out (mirrors Python `_function_display_type`). */\nfunction functionDisplayType(fn: FunctionInfo): \"scalar\" | \"table\" | \"aggregate\" | \"table_in_out\" {\n const t = String(fn.function_type).toUpperCase();\n if (t === \"SCALAR\") return \"scalar\";\n if (t === \"AGGREGATE\") return \"aggregate\";\n if (fn.has_finalize) return \"table_in_out\";\n return \"table\";\n}\n\nfunction functionReturns(fn: FunctionInfo): string | undefined {\n const schema = readSchemaSafe(fn.output_schema);\n if (schema === null || schema.fields.length === 0) return undefined;\n const t = String(fn.function_type).toUpperCase();\n if (t === \"SCALAR\" || t === \"AGGREGATE\") {\n // Scalar/aggregate output is a single \"result\" column.\n return typeToString(schema.fields[0].type);\n }\n const cols = schema.fields.map((f) => `${f.name} ${typeToString(f.type)}`).join(\", \");\n return `TABLE(${cols})`;\n}\n\ninterface ArgJson {\n name: string;\n type: string;\n named?: boolean;\n default?: string;\n desc?: string;\n}\n\nfunction functionArgs(fn: FunctionInfo): ArgJson[] {\n const schema = readSchemaSafe(fn.arguments);\n if (schema === null) return [];\n const args: ArgJson[] = [];\n for (const field of schema.fields) {\n // Skip the piped input relation of a table-in-out function; it's not a\n // user-supplied argument.\n if (fieldMeta(field, VGI_TYPE_KEY) === VGI_TYPE_TABLE) continue;\n const arg: ArgJson = { name: field.name, type: typeToString(field.type) };\n if (fieldMeta(field, VGI_ARG_KEY) === VGI_ARG_NAMED) arg.named = true;\n const doc = fieldMeta(field, VGI_DOC_KEY);\n if (doc) arg.desc = doc;\n const rawDefault = fieldMeta(field, VGI_DEFAULT_KEY);\n if (rawDefault !== undefined) {\n // Stored as a JSON scalar; render the decoded value for display.\n try {\n arg.default = JSON.stringify(JSON.parse(rawDefault));\n } catch {\n arg.default = rawDefault;\n }\n }\n args.push(arg);\n }\n return args;\n}\n\n// ---------------------------------------------------------------------------\n// Macro mapping\n// ---------------------------------------------------------------------------\n\n// A scalar macro is invoked exactly like a scalar function in SQL, and a table\n// macro like a table function; surface them in the same buckets so the landing\n// page lists a catalog's full callable surface (VGI workers commonly expose\n// their \"functions\" as declarative macros). Mirrors Python `_macro_display_type`.\nfunction macroDisplayType(m: MacroInfo): \"scalar\" | \"table\" {\n return String(m.macro_type).toUpperCase() === \"SCALAR\" ? \"scalar\" : \"table\";\n}\n\n/** JSON-encode a decoded macro default scalar, matching Python's `json.dumps`. */\nfunction macroDefaultJson(value: unknown): string {\n // int64 defaults decode to BigInt, which JSON.stringify rejects; a bigint's\n // decimal string is already its JSON integer encoding (0n -> \"0\").\n if (typeof value === \"bigint\") return value.toString();\n try {\n return JSON.stringify(value);\n } catch {\n return String(value);\n }\n}\n\nfunction macroArgs(m: MacroInfo): ArgJson[] {\n // Defaulted parameters are optional and callable by name in DuckDB, so we\n // present them as named args (with their default); the rest are positional.\n const defaults = new Map<string, unknown>();\n const defBytes = m.parameter_default_values;\n if (defBytes && defBytes.length > 0) {\n try {\n const batch = deserializeBatch(defBytes);\n for (const field of batch.schema.fields) {\n try {\n defaults.set(field.name, batch.getChild(field.name)?.get(0));\n } catch {\n // skip an undecodable default column\n }\n }\n } catch {\n // no usable defaults\n }\n }\n\n const schema = readSchemaSafe(m.arguments_schema);\n const fields = schema ? schema.fields : null;\n const fieldByName = new Map<string, VgiField>();\n if (fields) for (const f of fields) fieldByName.set(f.name, f);\n const names = fields ? fields.map((f) => f.name) : m.parameters;\n\n const args: ArgJson[] = [];\n for (const name of names) {\n const field = fieldByName.get(name);\n // Macro parameters are untyped unless a typed default pins them; show ANY\n // rather than the Arrow null placeholder.\n const arg: ArgJson =\n field !== undefined && !isNull(field.type)\n ? { name, type: arrowTypeString(field.type) }\n : { name, type: \"ANY\" };\n const doc = field !== undefined ? fieldMeta(field, VGI_DOC_KEY) : undefined;\n if (doc) arg.desc = doc;\n if (defaults.has(name)) {\n arg.named = true;\n arg.default = macroDefaultJson(defaults.get(name));\n }\n args.push(arg);\n }\n return args;\n}\n\nfunction macroToObject(m: MacroInfo): Record<string, unknown> {\n return {\n name: m.name,\n type: macroDisplayType(m),\n doc: m.comment ?? \"\",\n args: macroArgs(m),\n };\n}\n\n// ---------------------------------------------------------------------------\n// Catalog contents\n// ---------------------------------------------------------------------------\n\nasync function schemaContents(\n iface: CatalogInterface,\n aod: Uint8Array,\n name: string,\n kind: \"TABLE\" | \"VIEW\",\n): Promise<TableInfo[] | ViewInfo[]> {\n try {\n if (kind === \"TABLE\") {\n return await iface.schemaContentsTables(aod, name);\n }\n return await iface.schemaContentsViews(aod, name);\n } catch {\n return [];\n }\n}\n\nasync function schemaFunctions(iface: CatalogInterface, aod: Uint8Array, name: string): Promise<FunctionInfo[]> {\n const out: FunctionInfo[] = [];\n for (const kind of [\"SCALAR_FUNCTION\", \"TABLE_FUNCTION\", \"AGGREGATE_FUNCTION\"]) {\n try {\n out.push(...(await iface.schemaContentsFunctions(aod, name, kind)));\n } catch {\n // best-effort — keep whatever we collected\n }\n }\n return out;\n}\n\nasync function schemaMacros(iface: CatalogInterface, aod: Uint8Array, name: string): Promise<MacroInfo[]> {\n const out: MacroInfo[] = [];\n for (const kind of [\"SCALAR_MACRO\", \"TABLE_MACRO\"]) {\n try {\n out.push(...(await iface.schemaContentsMacros(aod, name, kind)));\n } catch {\n // best-effort — keep whatever we collected\n }\n }\n return out;\n}\n\ninterface Counts {\n schemas: number;\n tables: number;\n views: number;\n functions: number;\n}\n\nasync function buildSchemas(\n iface: CatalogInterface,\n aod: Uint8Array,\n): Promise<{ schemas: unknown[]; counts: Counts }> {\n let schemaInfos: SchemaInfo[];\n try {\n schemaInfos = await iface.schemas(aod);\n } catch {\n return { schemas: [], counts: { schemas: 0, tables: 0, views: 0, functions: 0 } };\n }\n\n const schemas: unknown[] = [];\n const counts: Counts = { schemas: 0, tables: 0, views: 0, functions: 0 };\n\n for (const si of schemaInfos) {\n const tablesRaw = (await schemaContents(iface, aod, si.name, \"TABLE\")) as TableInfo[];\n const viewsRaw = (await schemaContents(iface, aod, si.name, \"VIEW\")) as ViewInfo[];\n const funcsRaw = await schemaFunctions(iface, aod, si.name);\n const macrosRaw = await schemaMacros(iface, aod, si.name);\n\n const tables = tablesRaw.map((t) => {\n const schema = readSchemaSafe(t.columns);\n return { name: t.name, cols: schema ? schema.fields.length : 0, comment: t.comment ?? \"\" };\n });\n\n const views = viewsRaw.map((v) => ({\n name: v.name,\n cols: Object.keys(v.column_comments ?? {}).length,\n comment: v.comment ?? \"\",\n def: v.definition,\n }));\n\n const functions: Record<string, unknown>[] = funcsRaw.map((fn) => {\n const obj: Record<string, unknown> = {\n name: fn.name,\n type: functionDisplayType(fn),\n doc: fn.description ?? \"\",\n args: functionArgs(fn),\n };\n const ret = functionReturns(fn);\n if (ret) obj.returns = ret;\n return obj;\n });\n // Fold macros into the same scalar/table buckets (VGI catalogs commonly\n // expose their callable surface as declarative macros).\n functions.push(...macrosRaw.map((m) => macroToObject(m)));\n // Deterministic ordering across functions + macros, matching the Python\n // reference producer's `sort(key=(type, name))`.\n functions.sort(\n (a, b) =>\n String(a.type).localeCompare(String(b.type)) || String(a.name).localeCompare(String(b.name)),\n );\n\n const schemaObj: Record<string, unknown> = { name: si.name };\n if (si.comment) schemaObj.doc = si.comment;\n schemaObj.tables = tables;\n schemaObj.views = views;\n schemaObj.functions = functions;\n schemas.push(schemaObj);\n counts.schemas += 1;\n counts.tables += tables.length;\n counts.views += views.length;\n counts.functions += functions.length;\n }\n\n return { schemas, counts };\n}\n\n// ---------------------------------------------------------------------------\n// Catalog-level metadata (tags, attach options, data versions)\n// ---------------------------------------------------------------------------\n\nfunction catalogTags(result: CatalogAttachResult | null): Record<string, unknown> {\n const tags = result?.tags;\n if (!tags) return {};\n const out: Record<string, unknown> = {};\n for (const [key, tag] of Object.entries(STRING_TAGS)) {\n const val = tags[tag];\n if (val) out[key] = val;\n }\n const kw = tags[KEYWORDS_TAG];\n if (kw) {\n try {\n const parsed = JSON.parse(kw);\n if (Array.isArray(parsed)) out.keywords = parsed.map((k) => String(k));\n } catch {\n // ignore unparseable keyword tag\n }\n }\n return out;\n}\n\ninterface AttachOptionJson {\n name: string;\n type: string;\n default: string;\n description: string;\n}\n\n/** Decode a serialized AttachOptionSpec row into the describe shape. */\nfunction decodeAttachOption(bytes: Uint8Array): AttachOptionJson | null {\n try {\n const batch = deserializeBatch(bytes);\n if (batch.numRows === 0) return null;\n const name = String(batch.getChild(\"name\")?.get(0) ?? \"\");\n const description = String(batch.getChild(\"description\")?.get(0) ?? \"\");\n const typeBytes = batch.getChild(\"type\")?.get(0) as Uint8Array | null | undefined;\n let type = \"\";\n const typeSchema = readSchemaSafe(typeBytes ?? null);\n if (typeSchema && typeSchema.fields.length > 0) type = typeToString(typeSchema.fields[0].type);\n let defaultStr = \"\";\n const defBytes = batch.getChild(\"default_value\")?.get(0) as Uint8Array | null | undefined;\n if (defBytes) {\n try {\n const defBatch = deserializeBatch(defBytes);\n if (defBatch.numRows > 0) {\n const v = defBatch.getChild(\"value\")?.get(0);\n defaultStr = v == null ? \"\" : String(v);\n }\n } catch {\n // leave default empty\n }\n }\n return { name, type, default: defaultStr, description };\n } catch {\n return null;\n }\n}\n\nasync function attachCatalog(\n iface: CatalogInterface,\n name: string,\n): Promise<CatalogAttachResult | null> {\n try {\n return await iface.attach(name, {}, null, null);\n } catch {\n return null;\n }\n}\n\nasync function buildCatalog(\n iface: CatalogInterface,\n name: string,\n info: CatalogInfo | undefined,\n): Promise<Record<string, unknown>> {\n const result = await attachCatalog(iface, name);\n\n const attachOptions = (info?.attach_option_specs ?? [])\n .map((b) => decodeAttachOption(b))\n .filter((o): o is AttachOptionJson => o !== null);\n\n const dataVersions = (info?.releases ?? []).map((r) =>\n r.summary ? { spec: r.version, label: r.summary } : { spec: r.version },\n );\n\n let impl: string | null = info?.implementation_version ?? null;\n let dvs: string | null = info?.data_version_spec ?? null;\n if (result) {\n impl = result.resolved_implementation_version ?? impl;\n dvs = result.resolved_data_version ?? dvs;\n }\n\n let schemas: unknown[] = [];\n let counts: Counts = { schemas: 0, tables: 0, views: 0, functions: 0 };\n if (result) {\n const built = await buildSchemas(iface, result.attach_opaque_data);\n schemas = built.schemas;\n counts = built.counts;\n }\n\n return {\n name,\n implementation_version: impl,\n data_version_spec: dvs,\n data_versions: dataVersions,\n attach_options: attachOptions,\n tags: catalogTags(result),\n counts,\n schemas,\n };\n}\n\nasync function catalogInfoByName(iface: CatalogInterface): Promise<Map<string, CatalogInfo>> {\n const map = new Map<string, CatalogInfo>();\n if (typeof iface.catalogsInfo === \"function\") {\n try {\n const infos = await iface.catalogsInfo();\n for (const info of infos) map.set(info.name, info);\n } catch {\n // fall back to bare names below\n }\n }\n return map;\n}\n\n// ---------------------------------------------------------------------------\n// Public API\n// ---------------------------------------------------------------------------\n\n/**\n * Build the full `describe.json` document for a worker's catalog interface.\n *\n * `oauth` and `serverId` are supplied by the HTTP server (they depend on runtime\n * config, not the catalog).\n */\nexport async function buildDescribeJson(\n iface: CatalogInterface,\n worker: WorkerDescribeInfo,\n opts: { oauth?: boolean; serverId?: string; cupolaBase?: string } = {},\n): Promise<Record<string, unknown>> {\n const infos = await catalogInfoByName(iface);\n let names: string[];\n try {\n names = iface.catalogs();\n } catch {\n names = [];\n }\n\n const catalogs: unknown[] = [];\n for (const name of names) {\n catalogs.push(await buildCatalog(iface, name, infos.get(name)));\n }\n\n return {\n landing_schema_version: LANDING_SCHEMA_VERSION,\n worker: {\n name: worker.name,\n doc: worker.doc ?? \"\",\n version: worker.version ?? \"unknown\",\n lang: \"typescript\",\n },\n server_id: opts.serverId ?? \"\",\n oauth: opts.oauth ?? false,\n cupola_base: opts.cupolaBase ?? CUPOLA_BASE,\n catalogs,\n };\n}\n\n/**\n * Build the lazy per-object column payload for one table or view.\n *\n * Returns `{ columns: [{ name, type, comment? }] }`, or `null` when the object\n * can't be found. Tables deserialize their Arrow column schema; views expose\n * their declared column comments (types are only known after binding the SQL,\n * which the worker does not do here).\n */\nexport async function buildColumnsJson(\n iface: CatalogInterface,\n catalog: string,\n schema: string,\n table: string,\n): Promise<{ columns: ColumnJson[] } | null> {\n const result = await attachCatalog(iface, catalog);\n if (!result) return null;\n const aod = result.attach_opaque_data;\n\n const tables = (await schemaContents(iface, aod, schema, \"TABLE\")) as TableInfo[];\n for (const t of tables) {\n if (t.name === table) {\n const arrow = readSchemaSafe(t.columns);\n return { columns: (arrow?.fields ?? []).map((f) => fieldToColumn(f)) };\n }\n }\n\n const views = (await schemaContents(iface, aod, schema, \"VIEW\")) as ViewInfo[];\n for (const v of views) {\n if (v.name === table) {\n return {\n columns: Object.entries(v.column_comments ?? {}).map(([name, comment]) => ({\n name,\n type: \"\",\n comment,\n })),\n };\n }\n }\n\n return null;\n}\n\n/**\n * Build a {@link LandingDescribeProvider} to pass to `createHttpHandler` from\n * `@query-farm/vgi-rpc`. Wires the worker's catalog interface into the\n * standardized landing surface (`GET {prefix}/describe.json` and the lazy\n * per-object column endpoint).\n */\nexport function createLandingDescribe(\n iface: CatalogInterface,\n worker: WorkerDescribeInfo,\n opts: { cupolaBase?: string } = {},\n): LandingDescribeProvider {\n return {\n describe: (ctx) => buildDescribeJson(iface, worker, { ...ctx, cupolaBase: opts.cupolaBase }),\n columns: (catalog, schema, table) => buildColumnsJson(iface, catalog, schema, table),\n };\n}\n",
74
75
  "// Copyright 2025, 2026 Query Farm LLC - https://query.farm\n// SPDX-License-Identifier: LicenseRef-QueryFarm-Source-Available-1.0\n\n// Attach-time option descriptors for declarative worker option discovery.\n// Mirrors `vgi.catalog.attach_option` on the Python side — same Arrow IPC\n// wire format so the C++ extension (which owns ATTACH option validation)\n// sees identical shapes regardless of which language the worker is in.\n//\n// Wire format of one serialized AttachOptionSpec (per\n// vgi-python/vgi/catalog/attach_option.py):\n//\n// RecordBatch of:\n// name: Utf8\n// description: Utf8\n// type: Binary -- serialized Arrow Schema with a single \"value\" field\n// of the option's DataType\n// default_value: Binary nullable -- serialized single-row RecordBatch with\n// the default value under \"value\", or\n// null when no default is declared\n//\n// The extension reads the outer `attach_option_specs: list<binary>` column\n// from CatalogInfo and validates user-supplied ATTACH options against the\n// per-spec declared type before forwarding them to the worker.\n\nimport {\n type VgiDataType,\n schema as makeSchema,\n field,\n utf8,\n binary,\n batchFromColumns,\n serializeBatch,\n serializeSchema,\n} from \"../arrow/index.js\";\n\n/**\n * Declarative spec for a single attach-time option.\n *\n * The catalog's `catalogsInfo()` emits these (serialized) in\n * `CatalogInfo.attach_option_specs` so the DuckDB extension can validate\n * user-supplied ATTACH options and cast them to the declared type before\n * forwarding to the worker's `catalog_attach` handler.\n */\nexport interface AttachOptionSpec {\n /** Option name — matches the key users pass in the ATTACH statement. */\n name: string;\n /** Human-readable description (shown in discovery UIs). */\n description: string;\n /** Arrow data type the extension should cast user input to. */\n type: VgiDataType;\n /**\n * Default value used when the user omits this option. Passed through to\n * the worker's catalog_attach handler as-is if no override is given.\n * Use `null` for \"no default\" (an unset option will then be absent from\n * the options dict delivered to attach()).\n */\n default?: unknown;\n}\n\nconst SPEC_SCHEMA = makeSchema([\n field(\"name\", utf8(), false),\n field(\"description\", utf8(), false),\n field(\"type\", binary(), false),\n field(\"default_value\", binary(), true),\n]);\n\n/**\n * Serialize an AttachOptionSpec to the wire format the extension expects\n * (one IPC-serialized RecordBatch with a single row).\n */\nexport function serializeAttachOptionSpec(spec: AttachOptionSpec): Uint8Array {\n // `type` is encoded as a serialized Arrow Schema with one field named\n // \"value\" of the option's DataType. This lets the extension peek at the\n // logical type without a separate enum.\n const typeSchema = makeSchema([field(\"value\", spec.type, true)]);\n const typeBytes = serializeSchema(typeSchema);\n\n let defaultBytes: Uint8Array | null = null;\n if (spec.default !== undefined && spec.default !== null) {\n // Build a 1-row batch with one column \"value\" of the option's type.\n const defaultBatch = batchFromColumns(\n { value: [spec.default] },\n typeSchema,\n );\n defaultBytes = serializeBatch(defaultBatch);\n }\n\n const batch = batchFromColumns(\n {\n name: [spec.name],\n description: [spec.description],\n type: [typeBytes],\n default_value: [defaultBytes],\n },\n SPEC_SCHEMA,\n );\n return serializeBatch(batch);\n}\n\n/**\n * Convenience: serialize many specs at once for CatalogInfo.attach_option_specs.\n */\nexport function serializeAttachOptionSpecs(\n specs: Iterable<AttachOptionSpec>,\n): Uint8Array[] {\n return Array.from(specs, serializeAttachOptionSpec);\n}\n",
75
76
  "// Type- and scope-aware selection over resolved secrets.\n//\n// Resolved secrets reach a worker as a plain object keyed by each secret's\n// unique DuckDB secret name (so several secrets of the same type — e.g. one per\n// S3 bucket — coexist). Each secret carries its connector-serialized `type` (the\n// DuckDB secret type) and `scope` (newline-joined scope prefixes) fields, plus\n// type-specific fields. These helpers mirror `vgi::Secrets` in the Rust SDK.\n\nexport type SecretFields = Record<string, any>;\nexport type SecretsDict = Record<string, SecretFields>;\n\nfunction scalarStr(v: any): string {\n if (v === null || v === undefined) return \"\";\n return typeof v === \"string\" ? v : String(v);\n}\n\n/** The DuckDB secret type of the named secret (its serialized `type` field). */\nexport function secretType(secrets: SecretsDict, name: string): string | undefined {\n const f = secrets?.[name];\n return f && \"type\" in f ? scalarStr(f.type) : undefined;\n}\n\n/** Every resolved secret whose serialized `type` field matches `type`. */\nexport function secretsOfType(secrets: SecretsDict, type: string): SecretFields[] {\n return Object.values(secrets ?? {}).filter((f) => scalarStr(f.type) === type);\n}\n\n/**\n * The secret whose `scope` is the longest prefix of `path`. The connector\n * serializes each secret's scope as a newline-joined list of prefixes; a secret\n * with no (or empty) scope matches as a last-resort fallback. Returns undefined\n * only when there are no candidate secrets.\n */\nexport function secretForScope(secrets: SecretsDict, path: string): SecretFields | undefined {\n return selectForScope(secrets, path, undefined);\n}\n\n/** Like {@link secretForScope} but only over secrets of `type`. */\nexport function secretForScopeOfType(\n secrets: SecretsDict,\n path: string,\n type: string,\n): SecretFields | undefined {\n return selectForScope(secrets, path, type);\n}\n\nfunction selectForScope(\n secrets: SecretsDict,\n path: string,\n type: string | undefined,\n): SecretFields | undefined {\n let best: SecretFields | undefined;\n let bestLen = -1;\n let fallback: SecretFields | undefined;\n for (const fields of Object.values(secrets ?? {})) {\n if (type !== undefined && scalarStr(fields.type) !== type) continue;\n const scope = scalarStr(fields.scope);\n if (!scope) {\n if (!fallback) fallback = fields;\n continue;\n }\n for (const prefix of scope.split(\"\\n\")) {\n if (prefix && path.startsWith(prefix) && prefix.length > bestLen) {\n bestLen = prefix.length;\n best = fields;\n }\n }\n }\n return best ?? fallback;\n}\n",
76
- "// Copyright 2025, 2026 Query Farm LLC - https://query.farm\n// VGI TypeScript - Public API (runtime-agnostic core)\n//\n// Everything exported from the package EXCEPT the node-only `Worker` (which\n// imports the AF_UNIX launcher's `serveUnix` from @query-farm/vgi-rpc). This\n// module must stay free of static node-only value imports so it can be bundled\n// for Cloudflare Workers / browsers via worker-cf-entry.ts. The node/bun barrel\n// (`./index.ts`) re-exports this plus `Worker`.\n\n// Function factories (primary API)\nexport { defineScalarFunction, type ScalarFunctionConfig, type ScalarBindParameters, type ScalarParameterDef } from \"./functions/scalar.js\";\nexport { defineTableFunction, type TableFunctionConfig, type TableBindParams, type TableProcessParams } from \"./functions/table.js\";\nexport {\n defineAggregate,\n GROUP_COLUMN_NAME,\n type AggregateFunctionConfig,\n type AggregateBindParams,\n type AggregateUpdateParams,\n type AggregateFinalizeParams,\n} from \"./functions/aggregate.js\";\nexport { defineTableInOutFunction, type TableInOutConfig, type TableInOutBindParams, type TableInOutProcessParams } from \"./functions/table-in-out.js\";\nexport {\n defineTableBufferingFunction,\n type TableBufferingConfig,\n type TableBufferingBindParams,\n type TableBufferingParams,\n type TableBufferingVgiFunction,\n} from \"./functions/table-buffering.js\";\nexport {\n defineCopyFromFunction,\n type CopyFromFunctionConfig,\n type CopyFromOption,\n type CopyFromReadParams,\n} from \"./functions/copy-from.js\";\nexport {\n defineCopyToFunction,\n type CopyToFunctionConfig,\n type CopyToOption,\n type CopyToWriteParams,\n type CopyToCloseParams,\n} from \"./functions/copy-to.js\";\n\n// Function types\nexport type { VgiFunction, FunctionMeta, StreamHandlers, FunctionExample, HandlerState } from \"./functions/types.js\";\n\n// Catalog\nexport { CatalogInterface, type CatalogAttachResult, type SchemaInfo, encodeSchemaInfo, decodeSchemaInfo, type TableInfo, encodeTableInfo, decodeTableInfo, type ViewInfo, encodeViewInfo, decodeViewInfo, type CatalogInfo, encodeCatalogInfo, decodeCatalogInfo, type FunctionInfo, encodeFunctionInfo, decodeFunctionInfo, type FunctionInfoOptions, type MacroInfo, encodeMacroInfo, decodeMacroInfo, type MacroType, type CopyFromFormatInfo, encodeCopyFromFormatInfo, type AttachOpaqueData, type TransactionOpaqueData, buildScanBranchesResult, type ScanBranchInput } from \"./catalog/interface.js\";\nexport type { CatalogDescriptor, SchemaDescriptor, TableDescriptor, ViewDescriptor, MacroDescriptor, SettingDescriptor, SecretTypeDescriptor, ForeignKeyDef, DefaultValue } from \"./catalog/descriptors.js\";\nexport { ReadOnlyCatalogInterface } from \"./catalog/read-only.js\";\nexport { CompositeCatalogInterface } from \"./catalog/composite.js\";\nexport { FunctionRegistry } from \"./functions/registry.js\";\n\n// Core types\nexport {\n FunctionType,\n FunctionStability,\n NullHandling,\n OrderPreservation,\n OrderDependence,\n DistinctDependence,\n TableInOutPhase,\n DEFAULT_MAX_WORKERS,\n} from \"./types.js\";\n\n// Protocol types\nexport type {\n BindRequest,\n BindResponse,\n CopyFromContext,\n CopyToContext,\n InitRequest,\n GlobalInitResponse,\n TableCardinality,\n} from \"./protocol/types.js\";\n\n// Arguments\nexport { Arguments } from \"./arguments/arguments.js\";\nexport { type ArgumentSpec, type ArgumentConstraints, argumentSpecsToSchema, schemaToArgumentSpecs, macroArgumentsSchema, macroParameterDocsFromSchema, formatRange, constraintSpecFields } from \"./arguments/argument-spec.js\";\n\n// Errors\nexport {\n VgiError,\n RowCountMismatchError,\n FunctionNotFoundError,\n CatalogReadOnlyError,\n CatalogNotFoundError,\n CatalogAlreadyExistsError,\n ArgumentValidationError,\n NoCatalogError,\n} from \"./errors.js\";\n\n// Metadata\nexport type { ResolvedMetadata, ParameterInfo } from \"./metadata/types.js\";\nexport { CatalogFunctionType } from \"./metadata/types.js\";\nexport { resolveMetadata } from \"./metadata/resolve.js\";\nexport { metadatasToArrow, arrowToMetadatas } from \"./metadata/serialize.js\";\n\n// Filter pushdown\nexport {\n PushdownFilters,\n FilteringOutputCollector,\n deserializeFilters,\n buildJoinKeysLookup,\n ComparisonOp,\n type Filter,\n type ConstantFilter,\n type IsNullFilter,\n type IsNotNullFilter,\n type InFilter,\n type AndFilter,\n type OrFilter,\n type StructFilter,\n formatPushedFilters,\n reprPushedFilters,\n} from \"./filter-pushdown/index.js\";\n\n// State serializer\nexport { arrowStateSerializer, EXCHANGE_STATE_SCHEMA, serializeUserState, deserializeUserState } from \"./protocol/state-serializer.js\";\n\n// Protocol assembly (for embedding the worker dispatcher in a custom HTTP server).\nexport { buildVgiProtocol, type ProtocolConfig } from \"./protocol/dispatch.js\";\n\n// VGI HTTP landing surface producer (describe.json contract). Pass\n// `createLandingDescribe(catalogInterface, workerInfo)` to `createHttpHandler`'s\n// `landingDescribe` option. See docs/http-landing-contract.md.\nexport {\n buildColumnsJson,\n buildDescribeJson,\n createLandingDescribe,\n CUPOLA_BASE,\n LANDING_SCHEMA_VERSION,\n type LandingDescribeProvider,\n type WorkerDescribeInfo,\n} from \"./http/describe-json.js\";\n\n// Wire schemas — needed by workers that synthesize TableInfo.bind_result /\n// TableInfo.scan_function bytes to short-circuit per-scan RPCs.\nexport { BindResultSchema, ScanFunctionResultSchema } from \"./generated/vgi-protocol-schemas.js\";\n\n// Attach-option specs (for catalogs that advertise typed ATTACH options).\nexport { type AttachOptionSpec, serializeAttachOptionSpec, serializeAttachOptionSpecs } from \"./catalog/attach-option.js\";\n\n// Column statistics (for inlining on TableInfo.column_statistics).\nexport { type ColumnStatistics, serializeColumnStatistics } from \"./util/statistics.js\";\n\n// Byte utilities\nexport { toUint8Array } from \"./util/bytes.js\";\n\n// Arrow utilities\nexport {\n iterRows,\n batchFromRows,\n batchFromColumns,\n emptyBatch,\n filterBatch,\n projectSchema,\n projectBatch,\n batchToScalarDict,\n batchToSecretDict,\n safeNumber,\n} from \"./util/arrow/index.js\";\n\nexport {\n type SecretFields,\n type SecretsDict,\n secretType,\n secretsOfType,\n secretForScope,\n secretForScopeOfType,\n} from \"./secrets/helpers.js\";\n\nexport {\n serializeSchema,\n deserializeSchema,\n serializeBatch,\n deserializeBatch,\n} from \"./util/arrow/index.js\";\n\n// Arrow type system (phase 3): typed factories, precise descriptors, the\n// rich/raw value mapping, the codec registry, and branded raw scalar types\n// with their validating constructors. This is the statically-typed author API.\n// NOTE: the arrow factory names `int`, `int32`, `float32`, `bool` are NOT\n// re-exported here because the package root already exports vgi-rpc argument\n// builders of the same names. Authors needing those specific arrow factories\n// (and the full typed factory set) import them from the arrow facade module\n// (`@query-farm/vgi` -> \"./src/arrow/index.js\"). The non-colliding and\n// unit-precise factories below cover the common phase-3 typed/raw-mode cases.\nexport {\n // typed type factories (non-colliding subset)\n schema, field,\n nullType,\n int8, int16, int64,\n uint8, uint16, uint32, uint64,\n float16, float64,\n utf8, binary, fixedSizeBinary,\n decimal, decimal128, decimal256,\n date, dateDay, dateMillisecond,\n time, timeSecond, timeMillisecond, timeMicrosecond, timeNanosecond,\n timestamp, duration, interval,\n timestampSeconds, timestampMillis, timestampMicros, timestampNanos,\n durationSeconds, durationMillis, durationMicros, durationNanos,\n list, fixedSizeList, struct, map,\n dictionary, union, sparseUnion, denseUnion,\n TimeUnit, DateUnit, IntervalUnit, UnionMode,\n // codec registry\n codecFor,\n // branded raw constructors / unwrappers\n asDate32, asDate64Ms,\n asTime32S, asTime32Ms, asTime64Us, asTime64Ns,\n asTimestampSeconds, asTimestampMillis, asTimestampMicros, asTimestampNanos,\n asDurationSeconds, asDurationMillis, asDurationMicros, asDurationNanos,\n asUnscaledDecimal, asInt64, asUint64,\n fromBranded, fromBrandedNumber, fromBrandedBigInt,\n // backend-agnostic predicates + ids\n TypeId,\n isNull, isInt, isFloat, isBinary, isUtf8, isBool, isDecimal, isDate,\n isTime, isTimestamp, isInterval, isList, isStruct, isUnion,\n isFixedSizeBinary, isFixedSizeList, isMap, isDuration, isDictionary, isBatch,\n readCanonicalValue, columnFromArray, decodeDictValue, backend,\n} from \"./arrow/index.js\";\n\nexport type {\n // backend-agnostic Arrow types\n VgiTypeId, VgiDataType, VgiField, VgiSchema, VgiColumn, VgiColumnData,\n VgiBatch, VgiBackendInfo, TaggedUnion,\n // precise nominal descriptors\n NullDescriptor, BoolType,\n IntType, Int8Type, Int16Type, Int32Type, Int64Type,\n Uint8Type, Uint16Type, Uint32Type, Uint64Type,\n FloatType, Utf8Type, LargeUtf8Type, BinaryType, LargeBinaryType,\n FixedSizeBinaryType, DecimalType,\n Date32Type, Date64Type, Time32Type, Time64Type,\n TimestampType, DurationType, IntervalType,\n ListType, FixedSizeListType, StructType, MapType, DictionaryType, UnionType,\n TypedField, TUnit,\n // rich/raw mapping\n RichValue, RawValue, ValueFor, Repr,\n // codec\n Codec,\n // branded scalar aliases\n Branded,\n Date32, Date64Ms,\n Time32S, Time32Ms, Time64Us, Time64Ns,\n TimestampSeconds, TimestampMillis, TimestampMicros, TimestampNanos,\n DurationSeconds, DurationMillis, DurationMicros, DurationNanos,\n UnscaledDecimal, Int64Raw, Uint64Raw,\n} from \"./arrow/index.js\";\n\n// Typed scalar compute helper types (phase 3).\nexport type { ScalarComputeRow, ScalarOutputValue, ScalarComputeResult } from \"./functions/scalar.js\";\n\n// Storage\nexport {\n type FunctionStorage,\n FunctionStorageSqlite,\n BoundStorage,\n UnknownInvocationError,\n resolveStorageFromEnv,\n setStorage,\n storage as functionStorage,\n} from \"./functions/storage.js\";\nexport { FunctionStorageCfDo, type FetchLike } from \"./functions/storage-cf-do.js\";\n\n// Client\nexport { VgiClient, VgiClientError } from \"./client/client.js\";\nexport type {\n VgiClientOptions,\n TableFunctionOptions,\n ScalarFunctionOptions,\n TableInOutFunctionOptions,\n OnCreateConflict,\n CatalogFunctionType as ClientCatalogFunctionType,\n CatalogAttachOptions,\n AttachOptionValue,\n} from \"./client/types.js\";\n\n// Re-export from vgi-rpc for convenience\nexport { str, bytes, int, int32, float, float32, bool, toSchema, OutputCollector, AuthContext } from \"@query-farm/vgi-rpc\";\nexport { subprocessConnect, httpConnect, tcpConnect } from \"@query-farm/vgi-rpc\";\nexport type { RpcClient, StreamSession, LogMessage } from \"@query-farm/vgi-rpc\";\n",
77
+ "// Copyright 2025, 2026 Query Farm LLC - https://query.farm\n// VGI TypeScript - Public API (runtime-agnostic core)\n//\n// Everything exported from the package EXCEPT the node-only `Worker` (which\n// imports the AF_UNIX launcher's `serveUnix` from @query-farm/vgi-rpc). This\n// module must stay free of static node-only value imports so it can be bundled\n// for Cloudflare Workers / browsers via worker-cf-entry.ts. The node/bun barrel\n// (`./index.ts`) re-exports this plus `Worker`.\n\n// Result-cache control vocabulary (`vgi.cache.*`)\nexport {\n CACHE_ETAG_KEY,\n CACHE_EXPIRES_KEY,\n CACHE_IF_MODIFIED_SINCE_KEY,\n CACHE_IF_NONE_MATCH_KEY,\n CACHE_LAST_MODIFIED_KEY,\n CACHE_NO_STORE_KEY,\n CACHE_NOT_MODIFIED_KEY,\n CACHE_REVALIDATABLE_KEY,\n CACHE_SCOPE_CATALOG,\n CACHE_SCOPE_KEY,\n CACHE_SCOPE_TRANSACTION,\n CACHE_STALE_IF_ERROR_KEY,\n CACHE_STALE_WHILE_REVALIDATE_KEY,\n CACHE_TTL_KEY,\n type CacheControl,\n cacheControlMetadata,\n type CacheScope,\n} from \"./cache-control.js\";\n\n// Function factories (primary API)\nexport { defineScalarFunction, type ScalarFunctionConfig, type ScalarBindParameters, type ScalarParameterDef } from \"./functions/scalar.js\";\nexport { defineTableFunction, type TableFunctionConfig, type TableBindParams, type TableProcessParams } from \"./functions/table.js\";\nexport {\n defineAggregate,\n GROUP_COLUMN_NAME,\n type AggregateFunctionConfig,\n type AggregateBindParams,\n type AggregateUpdateParams,\n type AggregateFinalizeParams,\n} from \"./functions/aggregate.js\";\nexport { defineTableInOutFunction, type TableInOutConfig, type TableInOutBindParams, type TableInOutProcessParams } from \"./functions/table-in-out.js\";\nexport {\n defineTableBufferingFunction,\n type TableBufferingConfig,\n type TableBufferingBindParams,\n type TableBufferingParams,\n type TableBufferingVgiFunction,\n} from \"./functions/table-buffering.js\";\nexport {\n defineCopyFromFunction,\n type CopyFromFunctionConfig,\n type CopyFromOption,\n type CopyFromReadParams,\n} from \"./functions/copy-from.js\";\nexport {\n defineCopyToFunction,\n type CopyToFunctionConfig,\n type CopyToOption,\n type CopyToWriteParams,\n type CopyToCloseParams,\n} from \"./functions/copy-to.js\";\n\n// Function types\nexport type { VgiFunction, FunctionMeta, StreamHandlers, FunctionExample, HandlerState } from \"./functions/types.js\";\n\n// Catalog\nexport { CatalogInterface, type CatalogAttachResult, type SchemaInfo, encodeSchemaInfo, decodeSchemaInfo, type TableInfo, encodeTableInfo, decodeTableInfo, type ViewInfo, encodeViewInfo, decodeViewInfo, type CatalogInfo, encodeCatalogInfo, decodeCatalogInfo, type FunctionInfo, encodeFunctionInfo, decodeFunctionInfo, type FunctionInfoOptions, type MacroInfo, encodeMacroInfo, decodeMacroInfo, type MacroType, type CopyFromFormatInfo, encodeCopyFromFormatInfo, type AttachOpaqueData, type TransactionOpaqueData, buildScanBranchesResult, type ScanBranchInput } from \"./catalog/interface.js\";\nexport type { CatalogDescriptor, SchemaDescriptor, TableDescriptor, ViewDescriptor, MacroDescriptor, SettingDescriptor, SecretTypeDescriptor, ForeignKeyDef, DefaultValue } from \"./catalog/descriptors.js\";\nexport { ReadOnlyCatalogInterface } from \"./catalog/read-only.js\";\nexport { CompositeCatalogInterface } from \"./catalog/composite.js\";\nexport { FunctionRegistry } from \"./functions/registry.js\";\n\n// Core types\nexport {\n FunctionType,\n FunctionStability,\n NullHandling,\n OrderPreservation,\n OrderDependence,\n DistinctDependence,\n TableInOutPhase,\n DEFAULT_MAX_WORKERS,\n} from \"./types.js\";\n\n// Protocol types\nexport type {\n BindRequest,\n BindResponse,\n CopyFromContext,\n CopyToContext,\n InitRequest,\n GlobalInitResponse,\n TableCardinality,\n} from \"./protocol/types.js\";\n\n// Arguments\nexport { Arguments } from \"./arguments/arguments.js\";\nexport { type ArgumentSpec, type ArgumentConstraints, argumentSpecsToSchema, schemaToArgumentSpecs, macroArgumentsSchema, macroParameterDocsFromSchema, formatRange, constraintSpecFields } from \"./arguments/argument-spec.js\";\n\n// Errors\nexport {\n VgiError,\n RowCountMismatchError,\n FunctionNotFoundError,\n CatalogReadOnlyError,\n CatalogNotFoundError,\n CatalogAlreadyExistsError,\n ArgumentValidationError,\n NoCatalogError,\n} from \"./errors.js\";\n\n// Metadata\nexport type { ResolvedMetadata, ParameterInfo } from \"./metadata/types.js\";\nexport { CatalogFunctionType } from \"./metadata/types.js\";\nexport { resolveMetadata } from \"./metadata/resolve.js\";\nexport { metadatasToArrow, arrowToMetadatas } from \"./metadata/serialize.js\";\n\n// Filter pushdown\nexport {\n PushdownFilters,\n FilteringOutputCollector,\n deserializeFilters,\n buildJoinKeysLookup,\n ComparisonOp,\n type Filter,\n type ConstantFilter,\n type IsNullFilter,\n type IsNotNullFilter,\n type InFilter,\n type AndFilter,\n type OrFilter,\n type StructFilter,\n formatPushedFilters,\n reprPushedFilters,\n} from \"./filter-pushdown/index.js\";\n\n// State serializer\nexport { arrowStateSerializer, EXCHANGE_STATE_SCHEMA, serializeUserState, deserializeUserState } from \"./protocol/state-serializer.js\";\n\n// Protocol assembly (for embedding the worker dispatcher in a custom HTTP server).\nexport { buildVgiProtocol, type ProtocolConfig } from \"./protocol/dispatch.js\";\n\n// VGI HTTP landing surface producer (describe.json contract). Pass\n// `createLandingDescribe(catalogInterface, workerInfo)` to `createHttpHandler`'s\n// `landingDescribe` option. See docs/http-landing-contract.md.\nexport {\n buildColumnsJson,\n buildDescribeJson,\n createLandingDescribe,\n CUPOLA_BASE,\n LANDING_SCHEMA_VERSION,\n type LandingDescribeProvider,\n type WorkerDescribeInfo,\n} from \"./http/describe-json.js\";\n\n// Wire schemas — needed by workers that synthesize TableInfo.bind_result /\n// TableInfo.scan_function bytes to short-circuit per-scan RPCs.\nexport { BindResultSchema, ScanFunctionResultSchema } from \"./generated/vgi-protocol-schemas.js\";\n\n// Attach-option specs (for catalogs that advertise typed ATTACH options).\nexport { type AttachOptionSpec, serializeAttachOptionSpec, serializeAttachOptionSpecs } from \"./catalog/attach-option.js\";\n\n// Column statistics (for inlining on TableInfo.column_statistics).\nexport { type ColumnStatistics, serializeColumnStatistics } from \"./util/statistics.js\";\n\n// Byte utilities\nexport { toUint8Array } from \"./util/bytes.js\";\n\n// Arrow utilities\nexport {\n iterRows,\n batchFromRows,\n batchFromColumns,\n emptyBatch,\n filterBatch,\n projectSchema,\n projectBatch,\n batchToScalarDict,\n batchToSecretDict,\n safeNumber,\n} from \"./util/arrow/index.js\";\n\nexport {\n type SecretFields,\n type SecretsDict,\n secretType,\n secretsOfType,\n secretForScope,\n secretForScopeOfType,\n} from \"./secrets/helpers.js\";\n\nexport {\n serializeSchema,\n deserializeSchema,\n serializeBatch,\n deserializeBatch,\n} from \"./util/arrow/index.js\";\n\n// Arrow type system (phase 3): typed factories, precise descriptors, the\n// rich/raw value mapping, the codec registry, and branded raw scalar types\n// with their validating constructors. This is the statically-typed author API.\n// NOTE: the arrow factory names `int`, `int32`, `float32`, `bool` are NOT\n// re-exported here because the package root already exports vgi-rpc argument\n// builders of the same names. Authors needing those specific arrow factories\n// (and the full typed factory set) import them from the arrow facade module\n// (`@query-farm/vgi` -> \"./src/arrow/index.js\"). The non-colliding and\n// unit-precise factories below cover the common phase-3 typed/raw-mode cases.\nexport {\n // typed type factories (non-colliding subset)\n schema, field,\n nullType,\n int8, int16, int64,\n uint8, uint16, uint32, uint64,\n float16, float64,\n utf8, binary, fixedSizeBinary,\n decimal, decimal128, decimal256,\n date, dateDay, dateMillisecond,\n time, timeSecond, timeMillisecond, timeMicrosecond, timeNanosecond,\n timestamp, duration, interval,\n timestampSeconds, timestampMillis, timestampMicros, timestampNanos,\n durationSeconds, durationMillis, durationMicros, durationNanos,\n list, fixedSizeList, struct, map,\n dictionary, union, sparseUnion, denseUnion,\n TimeUnit, DateUnit, IntervalUnit, UnionMode,\n // codec registry\n codecFor,\n // branded raw constructors / unwrappers\n asDate32, asDate64Ms,\n asTime32S, asTime32Ms, asTime64Us, asTime64Ns,\n asTimestampSeconds, asTimestampMillis, asTimestampMicros, asTimestampNanos,\n asDurationSeconds, asDurationMillis, asDurationMicros, asDurationNanos,\n asUnscaledDecimal, asInt64, asUint64,\n fromBranded, fromBrandedNumber, fromBrandedBigInt,\n // backend-agnostic predicates + ids\n TypeId,\n isNull, isInt, isFloat, isBinary, isUtf8, isBool, isDecimal, isDate,\n isTime, isTimestamp, isInterval, isList, isStruct, isUnion,\n isFixedSizeBinary, isFixedSizeList, isMap, isDuration, isDictionary, isBatch,\n readCanonicalValue, columnFromArray, decodeDictValue, backend,\n} from \"./arrow/index.js\";\n\nexport type {\n // backend-agnostic Arrow types\n VgiTypeId, VgiDataType, VgiField, VgiSchema, VgiColumn, VgiColumnData,\n VgiBatch, VgiBackendInfo, TaggedUnion,\n // precise nominal descriptors\n NullDescriptor, BoolType,\n IntType, Int8Type, Int16Type, Int32Type, Int64Type,\n Uint8Type, Uint16Type, Uint32Type, Uint64Type,\n FloatType, Utf8Type, LargeUtf8Type, BinaryType, LargeBinaryType,\n FixedSizeBinaryType, DecimalType,\n Date32Type, Date64Type, Time32Type, Time64Type,\n TimestampType, DurationType, IntervalType,\n ListType, FixedSizeListType, StructType, MapType, DictionaryType, UnionType,\n TypedField, TUnit,\n // rich/raw mapping\n RichValue, RawValue, ValueFor, Repr,\n // codec\n Codec,\n // branded scalar aliases\n Branded,\n Date32, Date64Ms,\n Time32S, Time32Ms, Time64Us, Time64Ns,\n TimestampSeconds, TimestampMillis, TimestampMicros, TimestampNanos,\n DurationSeconds, DurationMillis, DurationMicros, DurationNanos,\n UnscaledDecimal, Int64Raw, Uint64Raw,\n} from \"./arrow/index.js\";\n\n// Typed scalar compute helper types (phase 3).\nexport type { ScalarComputeRow, ScalarOutputValue, ScalarComputeResult } from \"./functions/scalar.js\";\n\n// Storage\nexport {\n type FunctionStorage,\n FunctionStorageSqlite,\n BoundStorage,\n UnknownInvocationError,\n resolveStorageFromEnv,\n setStorage,\n storage as functionStorage,\n} from \"./functions/storage.js\";\nexport { FunctionStorageCfDo, type FetchLike } from \"./functions/storage-cf-do.js\";\n\n// Client\nexport { VgiClient, VgiClientError } from \"./client/client.js\";\nexport type {\n VgiClientOptions,\n TableFunctionOptions,\n ScalarFunctionOptions,\n TableInOutFunctionOptions,\n OnCreateConflict,\n CatalogFunctionType as ClientCatalogFunctionType,\n CatalogAttachOptions,\n AttachOptionValue,\n} from \"./client/types.js\";\n\n// Re-export from vgi-rpc for convenience\nexport { str, bytes, int, int32, float, float32, bool, toSchema, OutputCollector, AuthContext } from \"@query-farm/vgi-rpc\";\nexport { subprocessConnect, httpConnect, tcpConnect } from \"@query-farm/vgi-rpc\";\nexport type { RpcClient, StreamSession, LogMessage } from \"@query-farm/vgi-rpc\";\n",
77
78
  "// Copyright 2025, 2026 Query Farm LLC - https://query.farm\n// VgiClient — high-level client for calling VGI worker functions and catalog API.\n// Works with any RpcClient (subprocess or HTTP transport).\n\nimport { type VgiSchema, schema as schema_, type VgiField, field, type VgiBatch, type VgiDataType, utf8, binary, list } from \"../arrow/index.js\";\nimport { type RpcClient, type StreamSession } from \"@query-farm/vgi-rpc\";\nimport {\n serializeBindRequest,\n deserializeBindResponse,\n serializeInitRequest,\n deserializeGlobalInitResponse,\n} from \"../protocol/serialize.js\";\nimport type {\n BindRequest,\n BindResponse,\n InitRequest,\n GlobalInitResponse,\n} from \"../protocol/types.js\";\nimport { FunctionType, TableInOutPhase } from \"../types.js\";\nimport { Arguments } from \"../arguments/arguments.js\";\nimport {\n batchFromRows,\n batchFromColumns,\n iterRows,\n} from \"../util/arrow/index.js\";\nimport {\n type SchemaInfo,\n decodeSchemaInfo,\n type TableInfo,\n decodeTableInfo,\n type ViewInfo,\n decodeViewInfo,\n type FunctionInfo,\n decodeFunctionInfo,\n type MacroInfo,\n decodeMacroInfo,\n type MacroType,\n type CatalogAttachResult,\n type AttachOpaqueData,\n type TransactionOpaqueData,\n decodeCatalogInfo,\n type CatalogInfo,\n type ScanFunctionResult,\n decodeScanFunctionResult,\n} from \"../catalog/interface.js\";\nimport { wrapRequest, unwrapResult } from \"./protocol.js\";\nimport { toUint8Array } from \"../util/bytes.js\";\nimport { serializeAttachOptions } from \"../catalog/attach-options.js\";\nimport { VgiClientError, wrapRpcWithErrorEnrichment } from \"./errors.js\";\nimport { deserializeInfoList, deserializeTags, toAsyncIterator } from \"./helpers.js\";\n\nexport { VgiClientError };\nimport type {\n VgiClientOptions,\n TableFunctionOptions,\n ScalarFunctionOptions,\n TableInOutFunctionOptions,\n OnCreateConflict,\n CatalogFunctionType,\n CatalogMacroType,\n CatalogAttachOptions,\n OrderByPushdown,\n TablesamplePushdown,\n AttachOptionValue,\n} from \"./types.js\";\n\n/**\n * High-level client for calling VGI worker functions and catalog API.\n *\n * Works with any RpcClient transport (subprocess or HTTP):\n * ```ts\n * import { subprocessConnect } from \"@query-farm/vgi-rpc\";\n * import { VgiClient, Arguments } from \"vgi\";\n *\n * const rpc = subprocessConnect([\"./my-worker\"]);\n * const client = new VgiClient(rpc);\n *\n * for await (const rows of client.tableFunctionRows({\n * functionName: \"sequence\",\n * arguments: new Arguments([10]),\n * })) {\n * console.log(rows);\n * }\n * client.close();\n * ```\n */\nexport class VgiClient {\n private readonly rpc: RpcClient;\n private readonly defaultAttachOpaqueData: Uint8Array | null;\n\n /**\n * Construct a VgiClient wrapping an `RpcClient` transport.\n *\n * `options.attachOpaqueData` sets a client-wide default attach ID used by every\n * function call that doesn't supply its own. Per-call `attachOpaqueData` on\n * `TableFunctionOptions`/`ScalarFunctionOptions`/`TableInOutFunctionOptions`\n * takes precedence — useful when a single client talks to multiple\n * attached catalogs.\n */\n constructor(rpc: RpcClient, options?: VgiClientOptions) {\n this.rpc = wrapRpcWithErrorEnrichment(rpc);\n this.defaultAttachOpaqueData = options?.attachOpaqueData ?? null;\n }\n\n // ==========================================================================\n // Private helpers\n // ==========================================================================\n\n private async _doBind(\n functionName: string,\n functionType: FunctionType,\n args: Arguments,\n inputSchema: VgiSchema | null,\n settings: VgiBatch | null,\n secrets: VgiBatch | null,\n transactionOpaqueData: Uint8Array | null,\n attachOpaqueData: Uint8Array | null = null,\n onBind?: ((response: BindResponse) => void) | null,\n ): Promise<{ request: BindRequest; response: BindResponse }> {\n const request: BindRequest = {\n function_name: functionName,\n arguments: args,\n function_type: functionType,\n input_schema: inputSchema,\n settings: settings ?? null,\n secrets: secrets ?? null,\n attach_opaque_data: attachOpaqueData ?? this.defaultAttachOpaqueData,\n transaction_opaque_data: transactionOpaqueData ?? null,\n resolved_secrets_provided: false,\n };\n\n const requestBatch = serializeBindRequest(request);\n const rpcResult = await this.rpc.call(\"bind\", wrapRequest(requestBatch));\n if (!rpcResult) throw new VgiClientError(\"bind returned null\");\n const inner = unwrapResult(rpcResult);\n const response = deserializeBindResponse(inner);\n if (onBind) onBind(response);\n return { request, response };\n }\n\n private async _doInit(\n bindRequest: BindRequest,\n bindResponse: BindResponse,\n opts?: {\n projectionIds?: number[] | null;\n pushdownFilters?: VgiBatch | null;\n phase?: TableInOutPhase | null;\n executionId?: Uint8Array | null;\n orderBy?: OrderByPushdown | null;\n tablesample?: TablesamplePushdown | null;\n joinKeys?: VgiBatch[] | null;\n },\n ): Promise<{ session: StreamSession; initResponse: GlobalInitResponse }> {\n const ob = opts?.orderBy ?? null;\n const ts = opts?.tablesample ?? null;\n const initRequest: InitRequest = {\n bind_call: bindRequest,\n output_schema: bindResponse.output_schema,\n bind_opaque_data: bindResponse.opaque_data,\n projection_ids: opts?.projectionIds ?? null,\n pushdown_filters: opts?.pushdownFilters ?? null,\n join_keys: opts?.joinKeys ?? [],\n phase: opts?.phase ?? null,\n finalize_state_id: null,\n order_by_column_name: ob?.columnName ?? null,\n order_by_direction: ob?.direction ?? null,\n order_by_null_order: ob?.nullOrder ?? null,\n order_by_limit: ob?.limit == null ? null : BigInt(ob.limit),\n tablesample_percentage: ts?.percentage ?? null,\n tablesample_seed: ts?.seed == null ? null : BigInt(ts.seed),\n execution_id: opts?.executionId ?? null,\n init_opaque_data: null,\n };\n\n const initBatch = serializeInitRequest(initRequest);\n const session = await this.rpc.stream(\"init\", wrapRequest(initBatch));\n\n const headerDict = session.header;\n if (!headerDict) throw new VgiClientError(\"init did not return a header\");\n const initResponse = deserializeGlobalInitResponse(headerDict);\n\n return { session, initResponse };\n }\n\n // ==========================================================================\n // Table function — RecordBatch API\n // ==========================================================================\n\n /** Call a table function, yielding output as RecordBatch instances. */\n async *tableFunction(\n opts: TableFunctionOptions,\n ): AsyncGenerator<VgiBatch> {\n const args = opts.arguments ?? new Arguments();\n\n const { request: bindReq, response: bindResp } = await this._doBind(\n opts.functionName,\n FunctionType.TABLE,\n args,\n null,\n opts.settings ?? null,\n null,\n opts.transactionOpaqueData ?? null,\n opts.attachOpaqueData ?? null,\n opts.onBind ?? null,\n );\n\n const { session } = await this._doInit(bindReq, bindResp, {\n projectionIds: opts.projectionIds,\n pushdownFilters: opts.pushdownFilters,\n orderBy: opts.orderBy,\n tablesample: opts.tablesample,\n joinKeys: opts.joinKeys,\n });\n\n const outputSchema = bindResp.output_schema;\n try {\n for await (const rows of session) {\n if (rows.length > 0) {\n yield batchFromRows(rows, outputSchema);\n }\n }\n } finally {\n session.close();\n }\n }\n\n // ==========================================================================\n // Scalar function\n // ==========================================================================\n\n /** Call a scalar function, yielding output as row objects. */\n async *scalarFunctionRows(\n opts: ScalarFunctionOptions,\n ): AsyncGenerator<Record<string, any>[]> {\n // Peek first batch to get input schema\n const inputIter = toAsyncIterator(opts.input);\n const first = await inputIter.next();\n if (first.done) {\n throw new VgiClientError(\n `scalarFunction(${opts.functionName}): input iterator yielded no batches; ` +\n `at least one batch is required to determine the input schema`,\n );\n }\n\n const firstBatch: VgiBatch = first.value;\n const inputSchema = firstBatch.schema;\n\n const args = opts.arguments ?? new Arguments();\n\n const { request: bindReq, response: bindResp } = await this._doBind(\n opts.functionName,\n FunctionType.SCALAR,\n args,\n inputSchema,\n opts.settings ?? null,\n opts.secrets ?? null,\n opts.transactionOpaqueData ?? null,\n opts.attachOpaqueData ?? null,\n opts.onBind ?? null,\n );\n\n const { session } = await this._doInit(bindReq, bindResp);\n\n try {\n // Exchange first batch\n const outRows = await session.exchange([...iterRows(firstBatch)]);\n if (outRows.length > 0) yield outRows;\n\n // Exchange remaining batches\n for await (const batch of { [Symbol.asyncIterator]: () => inputIter }) {\n const result = await session.exchange([...iterRows(batch)]);\n if (result.length > 0) yield result;\n }\n } finally {\n session.close();\n }\n }\n\n /** Call a scalar function, yielding output as RecordBatch instances. */\n async *scalarFunction(\n opts: ScalarFunctionOptions,\n ): AsyncGenerator<VgiBatch> {\n // Same path as scalarFunctionRows, but with the output schema captured\n // here so we can pack rows back into batches without a re-bind.\n const inputIter = toAsyncIterator(opts.input);\n const first = await inputIter.next();\n if (first.done) {\n throw new VgiClientError(\n `scalarFunction(${opts.functionName}): input iterator yielded no batches; ` +\n `at least one batch is required to determine the input schema`,\n );\n }\n\n const firstBatch: VgiBatch = first.value;\n const inputSchema = firstBatch.schema;\n\n const args = opts.arguments ?? new Arguments();\n\n const { request: bindReq, response: bindResp } = await this._doBind(\n opts.functionName,\n FunctionType.SCALAR,\n args,\n inputSchema,\n opts.settings ?? null,\n opts.secrets ?? null,\n opts.transactionOpaqueData ?? null,\n opts.attachOpaqueData ?? null,\n opts.onBind ?? null,\n );\n\n const { session } = await this._doInit(bindReq, bindResp);\n const outputSchema = bindResp.output_schema;\n try {\n const outRows = await session.exchange([...iterRows(firstBatch)]);\n if (outRows.length > 0) yield batchFromRows(outRows, outputSchema);\n\n for await (const batch of { [Symbol.asyncIterator]: () => inputIter }) {\n const result = await session.exchange([...iterRows(batch)]);\n if (result.length > 0) yield batchFromRows(result, outputSchema);\n }\n } finally {\n session.close();\n }\n }\n\n // ==========================================================================\n // Table-in-out function\n // ==========================================================================\n\n /** Call a table-in-out function, yielding output as row objects. */\n async *tableInOutFunctionRows(\n opts: TableInOutFunctionOptions,\n ): AsyncGenerator<Record<string, any>[]> {\n const inputIter = toAsyncIterator(opts.input);\n const first = await inputIter.next();\n if (first.done) {\n throw new VgiClientError(\n `tableInOutFunction(${opts.functionName}): input iterator yielded no batches; ` +\n `at least one batch is required to determine the input schema`,\n );\n }\n\n const firstBatch: VgiBatch = first.value;\n const inputSchema = firstBatch.schema;\n\n const args = opts.arguments ?? new Arguments();\n\n const { request: bindReq, response: bindResp } = await this._doBind(\n opts.functionName,\n FunctionType.TABLE, // table-in-out uses TABLE function type at the bind level\n args,\n inputSchema,\n opts.settings ?? null,\n null,\n opts.transactionOpaqueData ?? null,\n opts.attachOpaqueData ?? null,\n opts.onBind ?? null,\n );\n\n // Phase 1: INPUT. We keep the init response around for its `execution_id`,\n // which we must echo back to pair the FINALIZE phase with this call.\n const { session: inputSession, initResponse } = await this._doInit(\n bindReq,\n bindResp,\n {\n projectionIds: opts.projectionIds,\n pushdownFilters: opts.pushdownFilters,\n phase: TableInOutPhase.INPUT,\n orderBy: opts.orderBy,\n tablesample: opts.tablesample,\n joinKeys: opts.joinKeys,\n },\n );\n\n try {\n const outRows = await inputSession.exchange([...iterRows(firstBatch)]);\n if (outRows.length > 0) yield outRows;\n\n for await (const batch of { [Symbol.asyncIterator]: () => inputIter }) {\n const result = await inputSession.exchange([...iterRows(batch)]);\n if (result.length > 0) yield result;\n }\n } finally {\n inputSession.close();\n }\n\n // Phase 2: FINALIZE\n const { session: finalizeSession } = await this._doInit(\n bindReq,\n bindResp,\n {\n projectionIds: opts.projectionIds,\n pushdownFilters: opts.pushdownFilters,\n phase: TableInOutPhase.FINALIZE,\n executionId: initResponse.execution_id,\n orderBy: opts.orderBy,\n tablesample: opts.tablesample,\n joinKeys: opts.joinKeys,\n },\n );\n\n try {\n for await (const rows of finalizeSession) {\n if (rows.length > 0) yield rows;\n }\n } finally {\n finalizeSession.close();\n }\n }\n\n /** Call a table-in-out function, yielding output as RecordBatch instances. */\n async *tableInOutFunction(\n opts: TableInOutFunctionOptions,\n ): AsyncGenerator<VgiBatch> {\n const inputIter = toAsyncIterator(opts.input);\n const first = await inputIter.next();\n if (first.done) {\n throw new VgiClientError(\n `tableInOutFunction(${opts.functionName}): input iterator yielded no batches; ` +\n `at least one batch is required to determine the input schema`,\n );\n }\n\n const firstBatch: VgiBatch = first.value;\n const inputSchema = firstBatch.schema;\n\n const args = opts.arguments ?? new Arguments();\n\n const { request: bindReq, response: bindResp } = await this._doBind(\n opts.functionName,\n FunctionType.TABLE,\n args,\n inputSchema,\n opts.settings ?? null,\n null,\n opts.transactionOpaqueData ?? null,\n opts.attachOpaqueData ?? null,\n opts.onBind ?? null,\n );\n\n const { session: inputSession, initResponse } = await this._doInit(\n bindReq,\n bindResp,\n {\n projectionIds: opts.projectionIds,\n pushdownFilters: opts.pushdownFilters,\n phase: TableInOutPhase.INPUT,\n orderBy: opts.orderBy,\n tablesample: opts.tablesample,\n joinKeys: opts.joinKeys,\n },\n );\n\n const outputSchema = bindResp.output_schema;\n try {\n const outRows = await inputSession.exchange([...iterRows(firstBatch)]);\n if (outRows.length > 0) yield batchFromRows(outRows, outputSchema);\n\n for await (const batch of { [Symbol.asyncIterator]: () => inputIter }) {\n const result = await inputSession.exchange([...iterRows(batch)]);\n if (result.length > 0) yield batchFromRows(result, outputSchema);\n }\n } finally {\n inputSession.close();\n }\n\n const { session: finalizeSession } = await this._doInit(\n bindReq,\n bindResp,\n {\n projectionIds: opts.projectionIds,\n pushdownFilters: opts.pushdownFilters,\n phase: TableInOutPhase.FINALIZE,\n executionId: initResponse.execution_id,\n orderBy: opts.orderBy,\n tablesample: opts.tablesample,\n joinKeys: opts.joinKeys,\n },\n );\n\n try {\n for await (const rows of finalizeSession) {\n if (rows.length > 0) yield batchFromRows(rows, outputSchema);\n }\n } finally {\n finalizeSession.close();\n }\n }\n\n // ==========================================================================\n // Row convenience for table function\n // ==========================================================================\n\n /** Call a table function, yielding output as row objects. */\n async *tableFunctionRows(\n opts: TableFunctionOptions,\n ): AsyncGenerator<Record<string, any>[]> {\n const args = opts.arguments ?? new Arguments();\n const { request: bindReq, response: bindResp } = await this._doBind(\n opts.functionName,\n FunctionType.TABLE,\n args,\n null,\n opts.settings ?? null,\n null,\n opts.transactionOpaqueData ?? null,\n opts.attachOpaqueData ?? null,\n opts.onBind ?? null,\n );\n const { session } = await this._doInit(bindReq, bindResp, {\n projectionIds: opts.projectionIds,\n pushdownFilters: opts.pushdownFilters,\n orderBy: opts.orderBy,\n tablesample: opts.tablesample,\n joinKeys: opts.joinKeys,\n });\n try {\n for await (const rows of session) {\n if (rows.length > 0) yield rows;\n }\n } finally {\n session.close();\n }\n }\n\n // ==========================================================================\n // Catalog API\n // ==========================================================================\n\n /**\n * List all catalogs with their advertised version metadata.\n *\n * Each entry has `{name, implementation_version?, data_version_spec?}`.\n * Versioned workers populate the version fields; read-only workers\n * leave both null.\n */\n async catalogsInfo(): Promise<CatalogInfo[]> {\n const result = await this.rpc.call(\"catalog_catalogs\", {});\n if (!result) return [];\n const inner = unwrapResult(result);\n return deserializeInfoList(inner.items, decodeCatalogInfo);\n }\n\n /** List all available catalog names (shorthand for `catalogsInfo().map(c => c.name)`). */\n async catalogs(): Promise<string[]> {\n const infos = await this.catalogsInfo();\n return infos.map((i) => i.name);\n }\n\n /**\n * Attach a catalog by name. Returns connection details including the\n * attachOpaqueData.\n *\n * `opts.options` is a plain key→value map; column types are inferred from\n * the value at runtime (see AttachOptionValue for the mapping). Use\n * `opts.optionsBytes` instead when you need Arrow types the inference\n * can't express (Decimal, Timestamp, Int32 vs Int64, nested structs).\n * Providing both throws.\n *\n * Versioned catalogs (see vgi-example-versioned-worker) validate\n * `dataVersionSpec` / `implementationVersion` at attach time and echo\n * back the resolved values on the result — callers can read those from\n * `result.resolved_data_version` / `result.resolved_implementation_version`.\n *\n * @example\n * ```ts\n * const result = await client.catalogAttach(\"my_catalog\", {\n * options: { region: \"us-east-1\", maxCachedRows: 1000n, readOnly: true },\n * dataVersionSpec: \"1.0.0\",\n * });\n * ```\n */\n async catalogAttach(\n name: string,\n opts?: CatalogAttachOptions,\n ): Promise<CatalogAttachResult> {\n if (opts?.options != null && opts?.optionsBytes != null) {\n throw new VgiClientError(\n \"catalogAttach: cannot specify both `options` and `optionsBytes`\",\n );\n }\n let wireOptions: Uint8Array | null;\n if (opts?.optionsBytes != null) {\n // Escape hatch: raw pre-serialized bytes. Same zero-byte guard as\n // before — pyarrow's IPC reader rejects 0-byte input on a non-null\n // binary field.\n wireOptions = opts.optionsBytes.byteLength === 0 ? null : opts.optionsBytes;\n } else {\n wireOptions = serializeAttachOptions(opts?.options);\n }\n\n const schema = schema_([\n field(\"name\", utf8(), false),\n field(\"options\", binary(), true),\n field(\"data_version_spec\", utf8(), true),\n field(\"implementation_version\", utf8(), true),\n ]);\n const innerBatch = batchFromColumns(\n {\n name: [name],\n options: [wireOptions],\n data_version_spec: [opts?.dataVersionSpec ?? null],\n implementation_version: [opts?.implementationVersion ?? null],\n },\n schema,\n );\n const result = await this.rpc.call(\"catalog_attach\", wrapRequest(innerBatch));\n if (!result) throw new VgiClientError(\"catalog_attach returned null\");\n const inner = unwrapResult(result);\n return {\n attach_opaque_data: toUint8Array(inner.attach_opaque_data),\n supports_transactions: inner.supports_transactions ?? false,\n supports_time_travel: inner.supports_time_travel ?? false,\n catalog_version_frozen: inner.catalog_version_frozen ?? false,\n catalog_version: Number(inner.catalog_version ?? 0),\n attach_opaque_data_required: inner.attach_opaque_data_required ?? true,\n default_schema: inner.default_schema ?? \"main\",\n settings: inner.settings\n ? (Array.isArray(inner.settings) ? inner.settings : [...inner.settings]).map(toUint8Array)\n : [],\n secret_types: inner.secret_types\n ? (Array.isArray(inner.secret_types) ? inner.secret_types : [...inner.secret_types]).map(toUint8Array)\n : [],\n attach_catalogs: inner.attach_catalogs\n ? (Array.isArray(inner.attach_catalogs) ? inner.attach_catalogs : [...inner.attach_catalogs]).map(toUint8Array)\n : [],\n comment: inner.comment ?? null,\n tags: deserializeTags(inner.tags),\n supports_column_statistics: inner.supports_column_statistics ?? false,\n resolved_data_version: inner.resolved_data_version ?? null,\n resolved_implementation_version: inner.resolved_implementation_version ?? null,\n };\n }\n\n /** Detach a previously-attached catalog. */\n async catalogDetach(attachOpaqueData: AttachOpaqueData): Promise<void> {\n await this.rpc.call(\"catalog_detach\", { attach_opaque_data: attachOpaqueData });\n }\n\n /**\n * Create a new catalog.\n *\n * `options` is a plain key→value map; column types are inferred from the\n * value at runtime (see AttachOptionValue). Use `optionsBytes` instead\n * when you need Arrow types the inference can't express. Providing both\n * throws.\n */\n async catalogCreate(\n name: string,\n onConflict: OnCreateConflict,\n options?:\n | Uint8Array\n | { options?: Record<string, AttachOptionValue>; optionsBytes?: Uint8Array },\n ): Promise<void> {\n let wireOptions: Uint8Array | null;\n if (options == null) {\n wireOptions = null;\n } else if (options instanceof Uint8Array) {\n // Backwards-compatible escape hatch: caller pre-serialized the options batch.\n wireOptions = options.byteLength === 0 ? null : options;\n } else {\n if (options.options != null && options.optionsBytes != null) {\n throw new VgiClientError(\n \"catalogCreate: cannot specify both `options` and `optionsBytes`\",\n );\n }\n if (options.optionsBytes != null) {\n wireOptions = options.optionsBytes.byteLength === 0 ? null : options.optionsBytes;\n } else {\n wireOptions = serializeAttachOptions(options.options);\n }\n }\n await this.rpc.call(\"catalog_create\", {\n name,\n on_conflict: onConflict,\n options: wireOptions,\n });\n }\n\n /** Drop a catalog by name. */\n async catalogDrop(name: string): Promise<void> {\n await this.rpc.call(\"catalog_drop\", { name });\n }\n\n /** Get the current catalog version number. */\n async catalogVersion(\n attachOpaqueData: AttachOpaqueData,\n transactionOpaqueData?: TransactionOpaqueData,\n ): Promise<number> {\n const result = await this.rpc.call(\"catalog_version\", {\n attach_opaque_data: attachOpaqueData,\n transaction_opaque_data: transactionOpaqueData ?? null,\n });\n if (!result) throw new VgiClientError(\"catalog_version returned null\");\n const inner = unwrapResult(result);\n return Number(inner.version ?? 0);\n }\n\n /** Begin a new transaction. Returns the transaction ID. */\n async transactionBegin(attachOpaqueData: AttachOpaqueData): Promise<Uint8Array> {\n const result = await this.rpc.call(\"catalog_transaction_begin\", {\n attach_opaque_data: attachOpaqueData,\n });\n if (!result) throw new VgiClientError(\"transaction_begin returned null\");\n const inner = unwrapResult(result);\n if (!inner.transaction_opaque_data) {\n throw new VgiClientError(\"transaction_begin returned no transaction_opaque_data\");\n }\n return toUint8Array(inner.transaction_opaque_data);\n }\n\n /** Commit a transaction. */\n async transactionCommit(\n attachOpaqueData: AttachOpaqueData,\n transactionOpaqueData: TransactionOpaqueData,\n ): Promise<void> {\n await this.rpc.call(\"catalog_transaction_commit\", {\n attach_opaque_data: attachOpaqueData,\n transaction_opaque_data: transactionOpaqueData,\n });\n }\n\n /** Rollback a transaction. */\n async transactionRollback(\n attachOpaqueData: AttachOpaqueData,\n transactionOpaqueData: TransactionOpaqueData,\n ): Promise<void> {\n await this.rpc.call(\"catalog_transaction_rollback\", {\n attach_opaque_data: attachOpaqueData,\n transaction_opaque_data: transactionOpaqueData,\n });\n }\n\n /** List schemas in an attached catalog. */\n async schemas(\n attachOpaqueData: AttachOpaqueData,\n transactionOpaqueData?: TransactionOpaqueData,\n ): Promise<SchemaInfo[]> {\n const result = await this.rpc.call(\"catalog_schemas\", {\n attach_opaque_data: attachOpaqueData,\n transaction_opaque_data: transactionOpaqueData ?? null,\n });\n if (!result) return [];\n const inner = unwrapResult(result);\n return deserializeInfoList(inner.items, decodeSchemaInfo);\n }\n\n /** Get a schema by name, or null if not found. */\n async schemaGet(\n attachOpaqueData: AttachOpaqueData,\n name: string,\n transactionOpaqueData?: TransactionOpaqueData,\n ): Promise<SchemaInfo | null> {\n const result = await this.rpc.call(\"catalog_schema_get\", {\n attach_opaque_data: attachOpaqueData,\n name,\n transaction_opaque_data: transactionOpaqueData ?? null,\n });\n if (!result) return null;\n const inner = unwrapResult(result);\n const items = deserializeInfoList(inner.items, decodeSchemaInfo);\n return items.length > 0 ? items[0] : null;\n }\n\n /** Create a new schema. */\n async schemaCreate(\n attachOpaqueData: AttachOpaqueData,\n name: string,\n opts?: {\n onConflict?: OnCreateConflict;\n comment?: string | null;\n tags?: Record<string, string> | null;\n transactionOpaqueData?: TransactionOpaqueData;\n },\n ): Promise<void> {\n const tagsMap = opts?.tags\n ? new Map(Object.entries(opts.tags))\n : null;\n await this.rpc.call(\"catalog_schema_create\", {\n attach_opaque_data: attachOpaqueData,\n name,\n on_conflict: opts?.onConflict ?? \"error\",\n comment: opts?.comment ?? null,\n tags: tagsMap,\n transaction_opaque_data: opts?.transactionOpaqueData ?? null,\n });\n }\n\n /** Drop a schema by name. */\n async schemaDrop(\n attachOpaqueData: AttachOpaqueData,\n name: string,\n ignoreNotFound?: boolean,\n cascade?: boolean,\n transactionOpaqueData?: TransactionOpaqueData,\n ): Promise<void> {\n await this.rpc.call(\"catalog_schema_drop\", {\n attach_opaque_data: attachOpaqueData,\n name,\n ignore_not_found: ignoreNotFound ?? false,\n cascade: cascade ?? false,\n transaction_opaque_data: transactionOpaqueData ?? null,\n });\n }\n\n /** List tables in a schema. */\n async schemaContentsTables(\n attachOpaqueData: AttachOpaqueData,\n name: string,\n transactionOpaqueData?: TransactionOpaqueData,\n ): Promise<TableInfo[]> {\n const result = await this.rpc.call(\"catalog_schema_contents_tables\", {\n attach_opaque_data: attachOpaqueData,\n name,\n transaction_opaque_data: transactionOpaqueData ?? null,\n });\n if (!result) return [];\n const inner = unwrapResult(result);\n return deserializeInfoList(inner.items, decodeTableInfo);\n }\n\n /** List views in a schema. */\n async schemaContentsViews(\n attachOpaqueData: AttachOpaqueData,\n name: string,\n transactionOpaqueData?: TransactionOpaqueData,\n ): Promise<ViewInfo[]> {\n const result = await this.rpc.call(\"catalog_schema_contents_views\", {\n attach_opaque_data: attachOpaqueData,\n name,\n transaction_opaque_data: transactionOpaqueData ?? null,\n });\n if (!result) return [];\n const inner = unwrapResult(result);\n return deserializeInfoList(inner.items, decodeViewInfo);\n }\n\n /** List functions in a schema, filtered by type. */\n async schemaContentsFunctions(\n attachOpaqueData: AttachOpaqueData,\n name: string,\n type: CatalogFunctionType,\n transactionOpaqueData?: TransactionOpaqueData,\n ): Promise<FunctionInfo[]> {\n const result = await this.rpc.call(\"catalog_schema_contents_functions\", {\n attach_opaque_data: attachOpaqueData,\n name,\n type,\n transaction_opaque_data: transactionOpaqueData ?? null,\n });\n if (!result) return [];\n const inner = unwrapResult(result);\n return deserializeInfoList(inner.items, decodeFunctionInfo);\n }\n\n /** Get a table by name, or null if not found. */\n async tableGet(\n attachOpaqueData: AttachOpaqueData,\n schemaName: string,\n name: string,\n transactionOpaqueData?: TransactionOpaqueData,\n ): Promise<TableInfo | null> {\n const result = await this.rpc.call(\"catalog_table_get\", {\n attach_opaque_data: attachOpaqueData,\n schema_name: schemaName,\n name,\n transaction_opaque_data: transactionOpaqueData ?? null,\n });\n if (!result) return null;\n const inner = unwrapResult(result);\n const items = deserializeInfoList(inner.items, decodeTableInfo);\n return items.length > 0 ? items[0] : null;\n }\n\n /** Create a new table. */\n async tableCreate(\n attachOpaqueData: AttachOpaqueData,\n schemaName: string,\n name: string,\n columns: Uint8Array,\n onConflict: OnCreateConflict,\n notNullConstraints?: number[],\n uniqueConstraints?: number[][],\n checkConstraints?: string[],\n transactionOpaqueData?: TransactionOpaqueData,\n ): Promise<void> {\n await this.rpc.call(\"catalog_table_create\", {\n attach_opaque_data: attachOpaqueData,\n schema_name: schemaName,\n name,\n columns,\n on_conflict: onConflict,\n not_null_constraints: notNullConstraints ?? null,\n unique_constraints: uniqueConstraints ?? null,\n check_constraints: checkConstraints ?? null,\n transaction_opaque_data: transactionOpaqueData ?? null,\n });\n }\n\n /** Drop a table by name. */\n async tableDrop(\n attachOpaqueData: AttachOpaqueData,\n schemaName: string,\n name: string,\n ignoreNotFound?: boolean,\n cascade?: boolean,\n transactionOpaqueData?: TransactionOpaqueData,\n ): Promise<void> {\n await this.rpc.call(\"catalog_table_drop\", {\n attach_opaque_data: attachOpaqueData,\n schema_name: schemaName,\n name,\n ignore_not_found: ignoreNotFound ?? false,\n cascade: cascade ?? false,\n transaction_opaque_data: transactionOpaqueData ?? null,\n });\n }\n\n /**\n * Get the scan function for a table — tells DuckDB which function to call\n * to read the table data (e.g. `read_parquet` with a path argument). Used\n * by the VGI extension during query planning.\n */\n async tableScanFunctionGet(\n attachOpaqueData: AttachOpaqueData,\n schemaName: string,\n name: string,\n atUnit?: string | null,\n atValue?: string | null,\n transactionOpaqueData?: TransactionOpaqueData,\n ): Promise<ScanFunctionResult> {\n const result = await this.rpc.call(\"catalog_table_scan_function_get\", {\n attach_opaque_data: attachOpaqueData,\n schema_name: schemaName,\n name,\n at_unit: atUnit ?? null,\n at_value: atValue ?? null,\n transaction_opaque_data: transactionOpaqueData ?? null,\n });\n if (!result) throw new VgiClientError(\"table_scan_function_get returned null\");\n return decodeScanFunctionResult(unwrapResult(result));\n }\n\n /** Set or clear the comment on a table. */\n async tableCommentSet(\n attachOpaqueData: AttachOpaqueData,\n schemaName: string,\n name: string,\n comment?: string | null,\n ignoreNotFound?: boolean,\n transactionOpaqueData?: TransactionOpaqueData,\n ): Promise<void> {\n await this.rpc.call(\"catalog_table_comment_set\", {\n attach_opaque_data: attachOpaqueData,\n schema_name: schemaName,\n name,\n comment: comment ?? null,\n ignore_not_found: ignoreNotFound ?? null,\n transaction_opaque_data: transactionOpaqueData ?? null,\n });\n }\n\n /** Rename a table. */\n async tableRename(\n attachOpaqueData: AttachOpaqueData,\n schemaName: string,\n name: string,\n newName: string,\n ignoreNotFound?: boolean,\n transactionOpaqueData?: TransactionOpaqueData,\n ): Promise<void> {\n await this.rpc.call(\"catalog_table_rename\", {\n attach_opaque_data: attachOpaqueData,\n schema_name: schemaName,\n name,\n new_name: newName,\n ignore_not_found: ignoreNotFound ?? null,\n transaction_opaque_data: transactionOpaqueData ?? null,\n });\n }\n\n /** Add a column to a table. */\n async tableColumnAdd(\n attachOpaqueData: AttachOpaqueData,\n schemaName: string,\n name: string,\n columnName: string,\n columnType: string,\n defaultValue?: string | null,\n ignoreNotFound?: boolean,\n transactionOpaqueData?: TransactionOpaqueData,\n ): Promise<void> {\n await this.rpc.call(\"catalog_table_column_add\", {\n attach_opaque_data: attachOpaqueData,\n schema_name: schemaName,\n name,\n column_name: columnName,\n column_type: columnType,\n default_value: defaultValue ?? null,\n ignore_not_found: ignoreNotFound ?? null,\n transaction_opaque_data: transactionOpaqueData ?? null,\n });\n }\n\n /** Drop a column from a table. */\n async tableColumnDrop(\n attachOpaqueData: AttachOpaqueData,\n schemaName: string,\n name: string,\n columnName: string,\n ignoreNotFound?: boolean,\n transactionOpaqueData?: TransactionOpaqueData,\n ): Promise<void> {\n await this.rpc.call(\"catalog_table_column_drop\", {\n attach_opaque_data: attachOpaqueData,\n schema_name: schemaName,\n name,\n column_name: columnName,\n ignore_not_found: ignoreNotFound ?? null,\n transaction_opaque_data: transactionOpaqueData ?? null,\n });\n }\n\n /** Rename a column in a table. */\n async tableColumnRename(\n attachOpaqueData: AttachOpaqueData,\n schemaName: string,\n name: string,\n columnName: string,\n newName: string,\n ignoreNotFound?: boolean,\n transactionOpaqueData?: TransactionOpaqueData,\n ): Promise<void> {\n await this.rpc.call(\"catalog_table_column_rename\", {\n attach_opaque_data: attachOpaqueData,\n schema_name: schemaName,\n name,\n column_name: columnName,\n new_name: newName,\n ignore_not_found: ignoreNotFound ?? null,\n transaction_opaque_data: transactionOpaqueData ?? null,\n });\n }\n\n /** Set the default value for a column. */\n async tableColumnDefaultSet(\n attachOpaqueData: AttachOpaqueData,\n schemaName: string,\n name: string,\n columnName: string,\n defaultValue: string,\n ignoreNotFound?: boolean,\n transactionOpaqueData?: TransactionOpaqueData,\n ): Promise<void> {\n await this.rpc.call(\"catalog_table_column_default_set\", {\n attach_opaque_data: attachOpaqueData,\n schema_name: schemaName,\n name,\n column_name: columnName,\n default_value: defaultValue,\n ignore_not_found: ignoreNotFound ?? null,\n transaction_opaque_data: transactionOpaqueData ?? null,\n });\n }\n\n /** Remove the default value from a column. */\n async tableColumnDefaultDrop(\n attachOpaqueData: AttachOpaqueData,\n schemaName: string,\n name: string,\n columnName: string,\n ignoreNotFound?: boolean,\n transactionOpaqueData?: TransactionOpaqueData,\n ): Promise<void> {\n await this.rpc.call(\"catalog_table_column_default_drop\", {\n attach_opaque_data: attachOpaqueData,\n schema_name: schemaName,\n name,\n column_name: columnName,\n ignore_not_found: ignoreNotFound ?? null,\n transaction_opaque_data: transactionOpaqueData ?? null,\n });\n }\n\n /**\n * Change the type of a column.\n *\n * `columnDefinition` is a serialized Arrow Schema with a single field whose\n * name identifies the target column and whose type is the new column type.\n * `expression` is an optional SQL expression used to convert existing values.\n */\n async tableColumnTypeChange(\n attachOpaqueData: AttachOpaqueData,\n schemaName: string,\n name: string,\n columnDefinition: Uint8Array,\n expression?: string | null,\n ignoreNotFound?: boolean,\n transactionOpaqueData?: TransactionOpaqueData,\n ): Promise<void> {\n await this.rpc.call(\"catalog_table_column_type_change\", {\n attach_opaque_data: attachOpaqueData,\n schema_name: schemaName,\n name,\n column_definition: columnDefinition,\n expression: expression ?? null,\n ignore_not_found: ignoreNotFound ?? false,\n transaction_opaque_data: transactionOpaqueData ?? null,\n });\n }\n\n /** Set a NOT NULL constraint on a column. */\n async tableNotNullSet(\n attachOpaqueData: AttachOpaqueData,\n schemaName: string,\n name: string,\n columnName: string,\n ignoreNotFound?: boolean,\n transactionOpaqueData?: TransactionOpaqueData,\n ): Promise<void> {\n await this.rpc.call(\"catalog_table_not_null_set\", {\n attach_opaque_data: attachOpaqueData,\n schema_name: schemaName,\n name,\n column_name: columnName,\n ignore_not_found: ignoreNotFound ?? null,\n transaction_opaque_data: transactionOpaqueData ?? null,\n });\n }\n\n /** Remove a NOT NULL constraint from a column. */\n async tableNotNullDrop(\n attachOpaqueData: AttachOpaqueData,\n schemaName: string,\n name: string,\n columnName: string,\n ignoreNotFound?: boolean,\n transactionOpaqueData?: TransactionOpaqueData,\n ): Promise<void> {\n await this.rpc.call(\"catalog_table_not_null_drop\", {\n attach_opaque_data: attachOpaqueData,\n schema_name: schemaName,\n name,\n column_name: columnName,\n ignore_not_found: ignoreNotFound ?? null,\n transaction_opaque_data: transactionOpaqueData ?? null,\n });\n }\n\n /** Get a view by name, or null if not found. */\n async viewGet(\n attachOpaqueData: AttachOpaqueData,\n schemaName: string,\n name: string,\n transactionOpaqueData?: TransactionOpaqueData,\n ): Promise<ViewInfo | null> {\n const result = await this.rpc.call(\"catalog_view_get\", {\n attach_opaque_data: attachOpaqueData,\n schema_name: schemaName,\n name,\n transaction_opaque_data: transactionOpaqueData ?? null,\n });\n if (!result) return null;\n const inner = unwrapResult(result);\n const items = deserializeInfoList(inner.items, decodeViewInfo);\n return items.length > 0 ? items[0] : null;\n }\n\n /** Create a new view. */\n async viewCreate(\n attachOpaqueData: AttachOpaqueData,\n schemaName: string,\n name: string,\n definition: string,\n onConflict: OnCreateConflict,\n transactionOpaqueData?: TransactionOpaqueData,\n ): Promise<void> {\n await this.rpc.call(\"catalog_view_create\", {\n attach_opaque_data: attachOpaqueData,\n schema_name: schemaName,\n name,\n definition,\n on_conflict: onConflict,\n transaction_opaque_data: transactionOpaqueData ?? null,\n });\n }\n\n /** Drop a view by name. */\n async viewDrop(\n attachOpaqueData: AttachOpaqueData,\n schemaName: string,\n name: string,\n ignoreNotFound?: boolean,\n cascade?: boolean,\n transactionOpaqueData?: TransactionOpaqueData,\n ): Promise<void> {\n await this.rpc.call(\"catalog_view_drop\", {\n attach_opaque_data: attachOpaqueData,\n schema_name: schemaName,\n name,\n ignore_not_found: ignoreNotFound ?? false,\n cascade: cascade ?? false,\n transaction_opaque_data: transactionOpaqueData ?? null,\n });\n }\n\n /** Rename a view. */\n async viewRename(\n attachOpaqueData: AttachOpaqueData,\n schemaName: string,\n name: string,\n newName: string,\n ignoreNotFound?: boolean,\n transactionOpaqueData?: TransactionOpaqueData,\n ): Promise<void> {\n await this.rpc.call(\"catalog_view_rename\", {\n attach_opaque_data: attachOpaqueData,\n schema_name: schemaName,\n name,\n new_name: newName,\n ignore_not_found: ignoreNotFound ?? null,\n transaction_opaque_data: transactionOpaqueData ?? null,\n });\n }\n\n /** Set or clear the comment on a view. */\n async viewCommentSet(\n attachOpaqueData: AttachOpaqueData,\n schemaName: string,\n name: string,\n comment?: string | null,\n ignoreNotFound?: boolean,\n transactionOpaqueData?: TransactionOpaqueData,\n ): Promise<void> {\n await this.rpc.call(\"catalog_view_comment_set\", {\n attach_opaque_data: attachOpaqueData,\n schema_name: schemaName,\n name,\n comment: comment ?? null,\n ignore_not_found: ignoreNotFound ?? null,\n transaction_opaque_data: transactionOpaqueData ?? null,\n });\n }\n\n // ==========================================================================\n // Macro Catalog API\n // ==========================================================================\n\n /** Get a macro by name, or null if not found. */\n async macroGet(\n attachOpaqueData: AttachOpaqueData,\n schemaName: string,\n name: string,\n transactionOpaqueData?: TransactionOpaqueData,\n ): Promise<MacroInfo | null> {\n const result = await this.rpc.call(\"catalog_macro_get\", {\n attach_opaque_data: attachOpaqueData,\n schema_name: schemaName,\n name,\n transaction_opaque_data: transactionOpaqueData ?? null,\n });\n if (!result) return null;\n const inner = unwrapResult(result);\n const items = deserializeInfoList(inner.items, decodeMacroInfo);\n return items.length > 0 ? items[0] : null;\n }\n\n /** List macros in a schema, filtered by type. */\n async schemaContentsMacros(\n attachOpaqueData: AttachOpaqueData,\n name: string,\n type: CatalogMacroType,\n transactionOpaqueData?: TransactionOpaqueData,\n ): Promise<MacroInfo[]> {\n const result = await this.rpc.call(\"catalog_schema_contents_macros\", {\n attach_opaque_data: attachOpaqueData,\n name,\n type,\n transaction_opaque_data: transactionOpaqueData ?? null,\n });\n if (!result) return [];\n const inner = unwrapResult(result);\n return deserializeInfoList(inner.items, decodeMacroInfo);\n }\n\n /** Create a new macro. */\n async macroCreate(\n attachOpaqueData: AttachOpaqueData,\n schemaName: string,\n name: string,\n macroType: MacroType,\n parameters: string[],\n definition: string,\n onConflict: OnCreateConflict,\n parameterDefaultValues?: Uint8Array | null,\n argumentsSchema?: Uint8Array | null,\n transactionOpaqueData?: TransactionOpaqueData,\n ): Promise<void> {\n const schema = schema_([\n field(\"attach_opaque_data\", binary(), true),\n field(\"schema_name\", utf8(), false),\n field(\"name\", utf8(), false),\n field(\"macro_type\", utf8(), false),\n field(\"parameters\", list(field(\"item\", utf8(), false)), false),\n field(\"definition\", utf8(), false),\n field(\"on_conflict\", utf8(), false),\n field(\"parameter_default_values\", binary(), true),\n field(\"arguments_schema\", binary(), true),\n field(\"transaction_opaque_data\", binary(), true),\n ]);\n const innerBatch = batchFromColumns(\n {\n attach_opaque_data: [attachOpaqueData],\n schema_name: [schemaName],\n name: [name],\n macro_type: [macroType],\n parameters: [parameters],\n definition: [definition],\n on_conflict: [onConflict],\n parameter_default_values: [parameterDefaultValues ?? null],\n arguments_schema: [argumentsSchema ?? null],\n transaction_opaque_data: [transactionOpaqueData ?? null],\n },\n schema,\n );\n await this.rpc.call(\"catalog_macro_create\", wrapRequest(innerBatch));\n }\n\n /** Drop a macro by name. */\n async macroDrop(\n attachOpaqueData: AttachOpaqueData,\n schemaName: string,\n name: string,\n ignoreNotFound?: boolean,\n transactionOpaqueData?: TransactionOpaqueData,\n ): Promise<void> {\n await this.rpc.call(\"catalog_macro_drop\", {\n attach_opaque_data: attachOpaqueData,\n schema_name: schemaName,\n name,\n ignore_not_found: ignoreNotFound ?? false,\n transaction_opaque_data: transactionOpaqueData ?? null,\n });\n }\n\n /** Close the underlying RPC connection. */\n close(): void {\n this.rpc.close();\n }\n}\n\n",
78
79
  "// Copyright 2025, 2026 Query Farm LLC - https://query.farm\n// Wrap/unwrap helpers for the VGI double-wrapping protocol.\n// Mirrors the server's dispatch.ts:64-84 (unwrapRequest/wrapResult).\n\nimport {\n serializeBatch,\n deserializeBatch,\n batchToScalarDict,\n} from \"../util/arrow/index.js\";\nimport { toUint8Array } from \"../util/bytes.js\";\nimport type { VgiBatch } from \"../arrow/index.js\";\nexport { toUint8Array };\n\n/**\n * Wrap a RecordBatch as a { request: Uint8Array } dict for RPC params.\n * DuckDB wraps ArrowSerializableDataclass params in a single \"request\" Binary column.\n */\nexport function wrapRequest(batch: VgiBatch): { request: Uint8Array } {\n return { request: serializeBatch(batch) };\n}\n\n/**\n * Unwrap a { result: Uint8Array } response dict.\n * The \"result\" Binary column contains a serialized inner batch;\n * returns its row 0 as a flat dict.\n */\nexport function unwrapResult(\n result: Record<string, any>,\n): Record<string, any> {\n const resultBytes = toUint8Array(result.result);\n const innerBatch = deserializeBatch(resultBytes);\n return batchToScalarDict(innerBatch);\n}\n",
79
80
  "// Copyright 2025, 2026 Query Farm LLC - https://query.farm\n// SPDX-License-Identifier: LicenseRef-QueryFarm-Source-Available-1.0\n\n// Serialize a plain JS options map into a single-row Arrow RecordBatch\n// suitable for the `options` field of CatalogAttachRequest. Column types\n// are inferred per-value. This is the ergonomic layer that lets callers\n// write `{ region: \"us-east-1\", maxRows: 1000n }` instead of hand-building\n// an Arrow batch.\n\nimport { type VgiDataType, bool, binary, type VgiField, field, float64, int64, nullType, type VgiSchema, schema as schema_, utf8 } from \"../arrow/index.js\";\nimport { batchFromColumns, serializeBatch } from \"../util/arrow/index.js\";\n\n/**\n * Values supported in a CatalogAttach options map. The client infers an\n * Arrow type per value:\n *\n * string → Utf8\n * bigint → Int64\n * number → Float64 (JS numbers are doubles — safe for small ints too)\n * boolean → Bool\n * Uint8Array → Binary\n * null → Null (column with no concrete type; value is null)\n *\n * If you need types this can't express (Decimal, Timestamp, Int32 vs Int64,\n * nested structs), drop down to `optionsBytes` on CatalogAttachOptions and\n * build the RecordBatch yourself.\n */\nexport type AttachOptionValue = string | number | bigint | boolean | null | Uint8Array;\n\n/**\n * Infer an Arrow DataType for a single JS value. Exported for tests; not\n * part of the stable public API.\n */\nexport function inferAttachOptionArrowType(value: AttachOptionValue): VgiDataType {\n if (value === null) return nullType();\n if (typeof value === \"string\") return utf8();\n if (typeof value === \"bigint\") return int64();\n if (typeof value === \"number\") {\n if (!Number.isFinite(value)) {\n throw new TypeError(\n `Attach option number values must be finite (got ${value}). ` +\n `Use a bigint for integers or a finite number for floats.`,\n );\n }\n return float64();\n }\n if (typeof value === \"boolean\") return bool();\n if (value instanceof Uint8Array) return binary();\n throw new TypeError(\n `Unsupported attach option value type: ${typeof value}. ` +\n `Supported: string, number, bigint, boolean, null, Uint8Array.`,\n );\n}\n\n/**\n * Serialize a plain key→value options map to an Arrow IPC RecordBatch.\n *\n * Returns `null` when the map is empty or has no entries — the wire layer\n * then sends a null options field rather than a zero-column batch (which\n * pyarrow's IPC reader rejects).\n */\nexport function serializeAttachOptions(\n options: Record<string, AttachOptionValue> | undefined | null,\n): Uint8Array | null {\n if (!options) return null;\n const entries = Object.entries(options);\n if (entries.length === 0) return null;\n\n const fields: VgiField[] = [];\n const columns: Record<string, unknown[]> = {};\n for (const [key, value] of entries) {\n const type = inferAttachOptionArrowType(value);\n fields.push(field(key, type, true));\n columns[key] = [value];\n }\n const schema = schema_(fields);\n const batch = batchFromColumns(columns, schema);\n return serializeBatch(batch);\n}\n",
80
81
  "// Copyright 2025, 2026 Query Farm LLC - https://query.farm\n// VgiClient error class + RpcClient wrapper that translates RpcError into\n// VgiClientError, preserving the worker's remote traceback.\n\nimport { RpcError, type RpcClient } from \"@query-farm/vgi-rpc\";\n\n/** Error thrown by VgiClient when an RPC call fails or returns unexpected data. */\nexport class VgiClientError extends Error {\n /** Remote traceback from the worker, when an RpcError carried one. */\n readonly remoteTraceback?: string;\n /** Underlying error type from the worker (e.g. \"ValueError\"), when known. */\n readonly errorType?: string;\n\n constructor(\n message: string,\n options?: { remoteTraceback?: string; errorType?: string; cause?: unknown },\n ) {\n super(message, options?.cause != null ? { cause: options.cause } : undefined);\n this.name = \"VgiClientError\";\n if (options?.remoteTraceback) this.remoteTraceback = options.remoteTraceback;\n if (options?.errorType) this.errorType = options.errorType;\n }\n\n /**\n * Build a VgiClientError from an underlying RpcError, preserving the\n * remote error type, message, and traceback so the worker-raised exception\n * shows up at the top of the stack rather than buried under VGI framing.\n * Mirrors Python's ClientError.from_rpc_error.\n */\n static fromRpcError(e: RpcError): VgiClientError {\n const head = `${e.errorType}: ${e.errorMessage}`;\n const message = e.remoteTraceback\n ? `${head}\\n\\nRemote traceback:\\n${e.remoteTraceback}`\n : head;\n return new VgiClientError(message, {\n remoteTraceback: e.remoteTraceback || undefined,\n errorType: e.errorType,\n cause: e,\n });\n }\n}\n\n/**\n * Wrap an RpcClient so any RpcError thrown by call/stream is rethrown as a\n * VgiClientError carrying the worker's remote traceback. Other errors\n * propagate unchanged.\n */\nexport function wrapRpcWithErrorEnrichment(rpc: RpcClient): RpcClient {\n return {\n async call(method, params) {\n try {\n return await rpc.call(method, params);\n } catch (e) {\n if (e instanceof RpcError) throw VgiClientError.fromRpcError(e);\n throw e;\n }\n },\n async stream(method, params) {\n try {\n return await rpc.stream(method, params);\n } catch (e) {\n if (e instanceof RpcError) throw VgiClientError.fromRpcError(e);\n throw e;\n }\n },\n describe: () => rpc.describe(),\n close: () => rpc.close(),\n };\n}\n",
81
- "// Copyright 2025, 2026 Query Farm LLC - https://query.farm\n// Internal helpers shared by VgiClient methods.\n\nimport { toUint8Array } from \"../util/bytes.js\";\n\n/**\n * Deserialize a List<Binary> of serialized info batches into typed info objects.\n */\nexport function deserializeInfoList<T>(\n items: unknown,\n deserializeFn: (bytes: Uint8Array) => T,\n): T[] {\n if (!items) return [];\n const arr: unknown[] = Array.isArray(items)\n ? items\n : [...(items as Iterable<unknown>)];\n return arr\n .filter((b) => b != null)\n .map((b) => deserializeFn(toUint8Array(b)));\n}\n\n/**\n * Deserialize Arrow Map entries into a plain Record<string, string>.\n */\nexport function deserializeTags(mapVal: unknown): Record<string, string> {\n const tags: Record<string, string> = {};\n if (!mapVal) return tags;\n const iterable = mapVal as { [Symbol.iterator]?: () => Iterator<unknown> };\n if (typeof iterable[Symbol.iterator] !== \"function\") return tags;\n for (const entry of iterable as Iterable<unknown>) {\n if (Array.isArray(entry)) {\n tags[String(entry[0])] = String(entry[1]);\n } else if (entry && typeof entry === \"object\") {\n const e = entry as Record<string, unknown> & { [0]?: unknown; [1]?: unknown };\n tags[String(e.key ?? e[0] ?? \"\")] = String(e.value ?? e[1] ?? \"\");\n }\n }\n return tags;\n}\n\n/**\n * Convert sync/async iterable to async iterator.\n */\nexport function toAsyncIterator<T>(\n input: Iterable<T> | AsyncIterable<T>,\n): AsyncIterator<T> {\n if (Symbol.asyncIterator in (input as any)) {\n return (input as AsyncIterable<T>)[Symbol.asyncIterator]();\n }\n const syncIter = (input as Iterable<T>)[Symbol.iterator]();\n return {\n async next() {\n return syncIter.next();\n },\n };\n}\n"
82
+ "// Copyright 2025, 2026 Query Farm LLC - https://query.farm\n// Internal helpers shared by VgiClient methods.\n\nimport { toUint8Array } from \"../util/bytes.js\";\n\n/**\n * Deserialize a List<Binary> of serialized info batches into typed info objects.\n */\nexport function deserializeInfoList<T>(\n items: unknown,\n deserializeFn: (bytes: Uint8Array) => T,\n): T[] {\n if (!items) return [];\n const arr: unknown[] = Array.isArray(items)\n ? items\n : [...(items as Iterable<unknown>)];\n return arr\n .filter((b) => b != null)\n .map((b) => deserializeFn(toUint8Array(b)));\n}\n\n/**\n * Deserialize Arrow Map entries into a plain Record<string, string>.\n */\nexport function deserializeTags(mapVal: unknown): Record<string, string> {\n const tags: Record<string, string> = {};\n if (!mapVal) return tags;\n const iterable = mapVal as { [Symbol.iterator]?: () => Iterator<unknown> };\n if (typeof iterable[Symbol.iterator] !== \"function\") return tags;\n for (const entry of iterable as Iterable<unknown>) {\n if (Array.isArray(entry)) {\n tags[String(entry[0])] = String(entry[1]);\n } else if (entry && typeof entry === \"object\") {\n const e = entry as Record<string, unknown> & { [0]?: unknown; [1]?: unknown };\n tags[String(e.key ?? e[0] ?? \"\")] = String(e.value ?? e[1] ?? \"\");\n }\n }\n return tags;\n}\n\n/**\n * Convert sync/async iterable to async iterator.\n */\nexport function toAsyncIterator<T>(\n input: Iterable<T> | AsyncIterable<T>,\n): AsyncIterator<T> {\n if (Symbol.asyncIterator in (input as any)) {\n return (input as AsyncIterable<T>)[Symbol.asyncIterator]();\n }\n const syncIter = (input as Iterable<T>)[Symbol.iterator]();\n return {\n async next() {\n return syncIter.next();\n },\n };\n}\n",
83
+ "// Copyright 2025, 2026 Query Farm LLC - https://query.farm\n// VGI Worker: main entry point for running a VGI function server.\n\nimport { VgiRpcServer, serveUnix, serveTcp, serveStream as serveStreamRpc } from \"@query-farm/vgi-rpc\";\nimport { FunctionRegistry } from \"./functions/registry.js\";\nimport type { VgiFunction } from \"./functions/types.js\";\nimport { buildVgiProtocol } from \"./protocol/dispatch.js\";\nimport type { Protocol } from \"@query-farm/vgi-rpc\";\nimport type { CatalogDescriptor } from \"./catalog/descriptors.js\";\nimport type { CatalogInterface } from \"./catalog/interface.js\";\nimport { ReadOnlyCatalogInterface } from \"./catalog/read-only.js\";\n\n// argv parser for the launcher's `--unix PATH` / `--tcp [HOST:]PORT` /\n// `--idle-timeout SEC` contract. The C++ launcher (vgi extension) appends\n// these to the worker's argv whenever LOCATION uses the `launch:` scheme.\n// Unknown args pass through.\ninterface LauncherArgs {\n unixPath?: string;\n /** TCP bind host, defaulting to 127.0.0.1 when `--tcp` gives a bare port. */\n tcpHost?: string;\n /** TCP bind port; present iff `--tcp` was passed. */\n tcpPort?: number;\n idleTimeout?: number;\n}\n\n// Parse a `[HOST:]PORT` --tcp bind spec into a LauncherArgs. A bare PORT (no\n// colon) binds 127.0.0.1; an empty host (leading \":\") also defaults to loopback.\nfunction parseTcpSpec(spec: string, out: LauncherArgs): void {\n const idx = spec.lastIndexOf(\":\");\n if (idx >= 0) {\n const h = spec.slice(0, idx);\n out.tcpHost = h === \"\" ? \"127.0.0.1\" : h;\n out.tcpPort = Number(spec.slice(idx + 1));\n } else {\n out.tcpHost = \"127.0.0.1\";\n out.tcpPort = Number(spec);\n }\n}\n\nfunction parseLauncherArgs(argv: readonly string[]): LauncherArgs {\n const out: LauncherArgs = {};\n for (let i = 0; i < argv.length; i++) {\n const a = argv[i];\n if (a === \"--unix\" && i + 1 < argv.length) {\n out.unixPath = argv[++i];\n } else if (a.startsWith(\"--unix=\")) {\n out.unixPath = a.slice(\"--unix=\".length);\n } else if (a === \"--tcp\" && i + 1 < argv.length) {\n parseTcpSpec(argv[++i], out);\n } else if (a.startsWith(\"--tcp=\")) {\n parseTcpSpec(a.slice(\"--tcp=\".length), out);\n } else if (a === \"--idle-timeout\" && i + 1 < argv.length) {\n out.idleTimeout = Number(argv[++i]);\n } else if (a.startsWith(\"--idle-timeout=\")) {\n out.idleTimeout = Number(a.slice(\"--idle-timeout=\".length));\n }\n }\n return out;\n}\n\nexport interface WorkerConfig {\n functions?: VgiFunction[];\n catalog?: CatalogDescriptor;\n catalogInterface?: CatalogInterface;\n /** Factory that receives the built ReadOnlyCatalogInterface and returns a custom catalog. */\n catalogInterfaceFactory?: (base: ReadOnlyCatalogInterface) => CatalogInterface;\n catalogName?: string;\n}\n\nexport class Worker {\n private _registry: FunctionRegistry;\n private _catalogInterface?: CatalogInterface;\n private _catalogName?: string;\n\n constructor(config: WorkerConfig) {\n this._registry = new FunctionRegistry();\n this._catalogName = config.catalogName;\n\n // Register explicit functions\n if (config.functions) {\n for (const func of config.functions) {\n this._registry.register(func);\n }\n }\n\n // Register functions from catalog descriptor\n if (config.catalog) {\n for (const schema of config.catalog.schemas) {\n if (schema.functions) {\n for (const func of schema.functions) {\n this._registry.register(func);\n }\n }\n }\n }\n\n // Set up catalog interface\n if (config.catalogInterface) {\n this._catalogInterface = config.catalogInterface;\n } else if (config.catalog) {\n const base = new ReadOnlyCatalogInterface(\n config.catalog,\n this._registry\n );\n this._catalogInterface = config.catalogInterfaceFactory\n ? config.catalogInterfaceFactory(base)\n : base;\n }\n }\n\n run(argv: readonly string[] = process.argv.slice(2)): void {\n process.stderr.write(`[worker] starting, pid=${process.pid}\\n`);\n try {\n const protocol = this.buildProtocol();\n process.stderr.write(`[worker] protocol built\\n`);\n\n const launcher = parseLauncherArgs(argv);\n if (launcher.unixPath !== undefined) {\n // VGI_WORKER_IDLE_TIMEOUT overrides whatever the C++ launcher\n // appended via --idle-timeout. Useful in test setups where the\n // launcher's default of 300 s leaves stale workers around long\n // after the suite has finished — set 5 (or any small value) and\n // the worker self-shuts-down promptly when the suite ends.\n const envOverride = process.env.VGI_WORKER_IDLE_TIMEOUT;\n const idleTimeout = envOverride !== undefined && envOverride !== \"\"\n ? Number(envOverride)\n : launcher.idleTimeout;\n process.stderr.write(\n `[worker] AF_UNIX mode: ${launcher.unixPath} idle=${idleTimeout ?? 300}s${envOverride !== undefined && envOverride !== \"\" ? \" (env override)\" : \"\"}\\n`,\n );\n serveUnix(protocol, {\n unixPath: launcher.unixPath,\n idleTimeout,\n }).then((handle) => handle.done).then(() => {\n process.stderr.write(`[worker] serveUnix done (idle shutdown)\\n`);\n }).catch((err: any) => {\n process.stderr.write(`Worker error: ${err.message}\\n${err.stack}\\n`);\n process.exit(1);\n });\n return;\n }\n\n if (launcher.tcpPort !== undefined) {\n // Raw Arrow-IPC framing over TCP — the network sibling of the\n // AF_UNIX launcher transport. serveTcp prints the\n // `TCP:<host>:<port>` discovery line itself (with the actual bound\n // port when tcpPort is 0). NO auth/TLS — loopback/trusted networks\n // only; use the HTTP transport for untrusted networks.\n const envOverride = process.env.VGI_WORKER_IDLE_TIMEOUT;\n const idleTimeout = envOverride !== undefined && envOverride !== \"\"\n ? Number(envOverride)\n : launcher.idleTimeout;\n process.stderr.write(\n `[worker] TCP mode: ${launcher.tcpHost}:${launcher.tcpPort} idle=${idleTimeout ?? 300}s${envOverride !== undefined && envOverride !== \"\" ? \" (env override)\" : \"\"}\\n`,\n );\n serveTcp(protocol, {\n host: launcher.tcpHost,\n port: launcher.tcpPort,\n idleTimeout,\n }).then((handle) => handle.done).then(() => {\n process.stderr.write(`[worker] serveTcp done (idle shutdown)\\n`);\n }).catch((err: any) => {\n process.stderr.write(`Worker error: ${err.message}\\n${err.stack}\\n`);\n process.exit(1);\n });\n return;\n }\n\n const server = new VgiRpcServer(protocol);\n process.stderr.write(`[worker] server created, calling run()\\n`);\n server.run().then(() => {\n process.stderr.write(`[worker] server.run() resolved cleanly\\n`);\n }).catch((err) => {\n process.stderr.write(`Worker error: ${err.message}\\n${err.stack}\\n`);\n process.exit(1);\n });\n } catch (err: any) {\n process.stderr.write(`Worker init error: ${err.message}\\n${err.stack}\\n`);\n process.exit(1);\n }\n }\n\n /** Build the VGI protocol from this worker's registry + catalog interface. */\n private buildProtocol(): Protocol {\n return buildVgiProtocol({\n registry: this._registry,\n catalogInterface: this._catalogInterface,\n catalogName: this._catalogName,\n });\n }\n\n /**\n * Serve this worker over a caller-provided byte-stream pair, instead of the\n * argv-selected stdio/unix/tcp transports `run()` uses. Resolves when the\n * `readable` ends.\n *\n * This is the seam for transports that aren't a process/socket — most notably\n * a **Web Worker**: bridge the worker's `MessagePort` to a Node `Duplex`\n * (readable side ← `port.on('message')`, writable side → `port.postMessage`)\n * and pass it as both arguments. The same code runs in a browser Web Worker.\n *\n * @param readable incoming request bytes (web `ReadableStream` or Node `Readable`).\n * @param writable outgoing response sink (a `net.Socket`/`Duplex`, or an fd\n * number). Omit for the stdout fd.\n */\n async serveStream(\n readable: ReadableStream<Uint8Array> | NodeJS.ReadableStream,\n writable?: number | import(\"node:net\").Socket,\n ): Promise<void> {\n await serveStreamRpc(this.buildProtocol(), { readable, writable });\n }\n}\n"
82
84
  ],
83
- "mappings": "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K,EAAE;AAAA,IACxB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,EAAE;AAAA,IACxB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,EAAE;AAAA,IACxB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,EAAE;AAAA,IACxB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,EAAE;AAAA,IACxB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,EAAE;AAAA,IACxB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,EAAE;AAAA,IACxB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,EAAE;AAAA,IACxB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,EAAE;AAAA,IACxB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,EAAE;AAAA,IACxB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,IACvB,MAAO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",
84
- "debugId": "55E5F7DD831BB4DD64756E2164756E21",
85
+ "mappings": "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AK,EAAE;AAAA,IACxB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,EAAE;AAAA,IACxB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,EAAE;AAAA,IACxB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,EAAE;AAAA,IACxB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,EAAE;AAAA,IACxB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,EAAE;AAAA,IACxB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,EAAE;AAAA,IACxB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,EAAE;AAAA,IACxB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,EAAE;AAAA,IACxB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,CAAC;AAAA,IACvB,MAAO,MAAM,MAAO;AAAA,IACpB,MAAM,KAAK,MAAM,KAAK,EAAE;AAAA,IACxB,MAA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",
86
+ "debugId": "0510FF19793B06C764756E2164756E21",
85
87
  "names": []
86
88
  }