@delali/narsil 0.3.1-next.71 → 0.3.1-next.73

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.
Files changed (69) hide show
  1. package/README.md +2 -2
  2. package/dist/adapters/filesystem.mjs +1 -1
  3. package/dist/adapters/indexeddb.mjs +1 -1
  4. package/dist/{capabilities-Dt-7B4Wz.d.ts → capabilities-CYeAWYxQ.d.ts} +19 -4
  5. package/dist/{chunk-3JGWULDF.mjs → chunk-2WLD2NFW.mjs} +5 -5
  6. package/dist/{chunk-LMO5TJUS.mjs → chunk-3YKWSO54.mjs} +642 -196
  7. package/dist/{chunk-HWQLTLNG.mjs → chunk-4MQ5F4IL.mjs} +1 -1
  8. package/dist/{chunk-FVLQ63B7.mjs → chunk-AFKH4ZK3.mjs} +30 -6
  9. package/dist/{chunk-653BNMAF.mjs → chunk-AK3BLGCI.mjs} +195 -25
  10. package/dist/{chunk-IOR2K26O.mjs → chunk-CVFAFZSN.mjs} +8000 -4391
  11. package/dist/{chunk-USKFU7J5.mjs → chunk-I64LXKO3.mjs} +1 -1
  12. package/dist/{chunk-OI42GWLR.mjs → chunk-LJYTW7GT.mjs} +57 -11
  13. package/dist/{chunk-2STVUTNA.mjs → chunk-LPBWCHBE.mjs} +194 -13
  14. package/dist/{chunk-YNVIUGF5.mjs → chunk-PU43WDY4.mjs} +4 -2
  15. package/dist/{chunk-M76V3OGJ.mjs → chunk-THMSFOJO.mjs} +1289 -1405
  16. package/dist/{chunk-YJDQ7NLA.mjs → chunk-WVDFG45M.mjs} +93 -95
  17. package/dist/chunk-XW25X6AU.mjs +614 -0
  18. package/dist/chunk-ZKRV5M2P.mjs +75 -0
  19. package/dist/{chunk-P4DSQ6M4.mjs → chunk-ZULSEZCE.mjs} +68 -28
  20. package/dist/{client-COek5GXK.d.ts → client-D698E5ge.d.ts} +77 -26
  21. package/dist/client.d.ts +9 -9
  22. package/dist/client.mjs +45 -22
  23. package/dist/{config-rBpbgTw8.d.ts → config-Bv8etwUZ.d.ts} +11 -4
  24. package/dist/{config-Dfanyqqt.d.ts → config-QXU3HMpq.d.ts} +26 -2
  25. package/dist/direct-executor-5SRDFZAS.mjs +13 -0
  26. package/dist/distribution/coordinator/etcd.d.ts +29 -16
  27. package/dist/distribution/coordinator/etcd.mjs +163 -76
  28. package/dist/distribution/coordinator/in-memory.d.ts +2 -2
  29. package/dist/distribution/coordinator/in-memory.mjs +1 -1
  30. package/dist/distribution/transport/grpc.d.ts +2 -2
  31. package/dist/distribution/transport/grpc.mjs +22 -2
  32. package/dist/distribution/transport/in-memory.d.ts +2 -2
  33. package/dist/distribution/transport/in-memory.mjs +6 -3
  34. package/dist/distribution/transport/tcp.d.ts +2 -2
  35. package/dist/distribution/transport/tcp.mjs +40 -16
  36. package/dist/distribution.d.ts +9 -9
  37. package/dist/distribution.mjs +682 -388
  38. package/dist/embeddings/openai.mjs +1 -1
  39. package/dist/{engine-igk0aMpQ.d.ts → engine-D_OzKZ-6.d.ts} +97 -188
  40. package/dist/index.browser.mjs +11671 -7427
  41. package/dist/index.d.ts +27 -8
  42. package/dist/index.mjs +13 -14
  43. package/dist/invalidation/filesystem.mjs +1 -1
  44. package/dist/{memory-C7UMCMH3.d.ts → memory-B4jMmygw.d.ts} +279 -27
  45. package/dist/pattern-Cledccbl.d.ts +18 -0
  46. package/dist/pattern.d.ts +22 -0
  47. package/dist/pattern.mjs +7 -0
  48. package/dist/persistence/durability/checkpoint-worker.d.ts +41 -17
  49. package/dist/persistence/durability/checkpoint-worker.mjs +24 -16
  50. package/dist/react.d.ts +7 -7
  51. package/dist/react.mjs +1 -1
  52. package/dist/{schema-Bgzr4g7b.d.ts → schema-BBOCdhND.d.ts} +9 -7
  53. package/dist/server.d.ts +11 -11
  54. package/dist/server.mjs +213 -34
  55. package/dist/{tasks-BZt_zes6.d.ts → tasks-DpgCpW1x.d.ts} +3 -3
  56. package/dist/{thread-JEVAYETR.mjs → thread-3LNVA43V.mjs} +94 -27
  57. package/dist/{types-BQDlIvfS.d.ts → types-B3b68nfF.d.ts} +1 -1
  58. package/dist/{types-gOUqhs2F.d.ts → types-BiUmaiWT.d.ts} +1 -1
  59. package/dist/{types-D5OwhtsQ.d.ts → types-Cb9kiY5P.d.ts} +1 -1
  60. package/dist/vector/search-worker.d.ts +1 -1
  61. package/dist/vector/search-worker.mjs +4 -4
  62. package/dist/workers/entry.mjs +4 -4
  63. package/package.json +15 -7
  64. package/dist/chunk-3L4U6EJQ.mjs +0 -49
  65. package/dist/chunk-GIVAGD3Q.mjs +0 -25
  66. package/dist/chunk-IFBKLBGB.mjs +0 -7
  67. package/dist/direct-executor-GYJEKNV5.mjs +0 -12
  68. package/dist/serialization/crc32-worker.d.ts +0 -20
  69. package/dist/serialization/crc32-worker.mjs +0 -62
@@ -1,7 +1,7 @@
1
1
  import { OSQ_STEPS, OSQ_GRID, OSQ_REFINE_ROUNDS, OSQ_REFINE_TOLERANCE, OSQ4_NARROW_DIMENSION_LIMIT, DEFAULT_OSQ4_NARROW_OVERSAMPLE, DEFAULT_OVERSAMPLE_BY_BITS, OSQ_QUERY_BITS, OSQ_LAMBDA } from './chunk-ZJ4CSAB2.mjs';
2
- import { COMPACTION_TOMBSTONE_RATIO, COMPACTION_ABSOLUTE_THRESHOLD, nativeSearchCoreIsEnabled, loadNativeCore, stopUsingTheNativeSearchCore, noteFallback, MAX_LAYER_CAP, PLACEMENT_ROOM_REQUESTS, INITIAL_LIST_CAPACITY, DEFAULT_EF_SEARCH, INITIAL_UPPER_SLOTS } from './chunk-YNVIUGF5.mjs';
3
- import { compareCodePoints } from './chunk-OI42GWLR.mjs';
4
- import { NarsilError, ErrorCodes } from './chunk-USKFU7J5.mjs';
2
+ import { COMPACTION_TOMBSTONE_RATIO, COMPACTION_ABSOLUTE_THRESHOLD, nativeSearchCoreIsEnabled, loadNativeCore, stopUsingTheNativeSearchCore, noteFallback, MAX_LAYER_CAP, PLACEMENT_ROOM_REQUESTS, INITIAL_LIST_CAPACITY, DEFAULT_EF_SEARCH, INITIAL_UPPER_SLOTS } from './chunk-PU43WDY4.mjs';
3
+ import { compareCodePoints } from './chunk-LJYTW7GT.mjs';
4
+ import { NarsilError, ErrorCodes } from './chunk-I64LXKO3.mjs';
5
5
  import { readSync, closeSync, openSync } from 'fs';
6
6
 
7
7
  // src/vector/constants.ts
@@ -3651,6 +3651,13 @@ function createVectorStore(options) {
3651
3651
  yield [docId, entryAt(open, ordinal)];
3652
3652
  }
3653
3653
  },
3654
+ *docIds() {
3655
+ if (open === null) return;
3656
+ for (let ordinal = 0; ordinal < ordToDoc.length; ordinal++) {
3657
+ const docId = ordToDoc[ordinal];
3658
+ if (docId !== void 0) yield docId;
3659
+ }
3660
+ },
3654
3661
  clear() {
3655
3662
  forgetDocuments();
3656
3663
  if (open === null) return;
@@ -3789,30 +3796,24 @@ function savedTopLayer(state, ordinal) {
3789
3796
  if (ordinal === NO_ORDINAL || isTombstoned(state, ordinal)) return NO_LAYER;
3790
3797
  return Math.min(nodeMaxLayer(state, ordinal), MAX_LAYER_CAP);
3791
3798
  }
3792
- function largestNeighbourValueCount(state, topLayers) {
3799
+ function neighbourValueCount(state, topLayers, start, end) {
3793
3800
  let values = 0;
3794
- for (let number = 0; number < topLayers.length; number++) {
3801
+ for (let number = start; number < end; number++) {
3795
3802
  const top = topLayers[number];
3796
3803
  if (top < 0) continue;
3797
3804
  values += state.adjacency.level0Stride + top * state.adjacency.upperStride;
3798
3805
  }
3799
3806
  return values;
3800
3807
  }
3801
- function serializeNumberedGraph(state, numberOfOrdinal, ordinalOfNumber) {
3808
+ function serializePart(state, numbers, start, end) {
3809
+ const { numberOfOrdinal, ordinalOfNumber, topLayers } = numbers;
3802
3810
  const adjacency = state.adjacency;
3803
- const slots = adjacencySlots(adjacency);
3804
- const topLayers = new Int8Array(ordinalOfNumber.length).fill(-1);
3805
- const levels = new Uint8Array(ordinalOfNumber.length);
3806
- for (let number = 0; number < ordinalOfNumber.length; number++) {
3807
- const ordinal = ordinalOfNumber[number];
3808
- if (ordinal >= slots) continue;
3809
- topLayers[number] = savedTopLayer(state, ordinal);
3810
- levels[number] = topLayers[number] + 1;
3811
- }
3812
- const values = new Uint32Array(largestNeighbourValueCount(state, topLayers));
3811
+ const levels = new Uint8Array(end - start);
3812
+ const values = new Uint32Array(neighbourValueCount(state, topLayers, start, end));
3813
3813
  let cursor = 0;
3814
- for (let number = 0; number < ordinalOfNumber.length; number++) {
3814
+ for (let number = start; number < end; number++) {
3815
3815
  const top = topLayers[number];
3816
+ levels[number - start] = top + 1;
3816
3817
  for (let layer = 0; layer <= top; layer++) {
3817
3818
  const base = layerBase(adjacency, ordinalOfNumber[number], layer);
3818
3819
  const array = layerArray(adjacency, layer);
@@ -3830,18 +3831,33 @@ function serializeNumberedGraph(state, numberOfOrdinal, ordinalOfNumber) {
3830
3831
  values[countAt] = cursor - countAt - 1;
3831
3832
  }
3832
3833
  }
3834
+ return { levels, neighbours: littleEndianBytesOf(values.subarray(0, cursor)) };
3835
+ }
3836
+ function serializeNumberedGraphParts(state, numberOfOrdinal, ordinalOfNumber, partSize) {
3837
+ const slots = adjacencySlots(state.adjacency);
3838
+ const topLayers = new Int8Array(ordinalOfNumber.length).fill(-1);
3839
+ for (let number = 0; number < ordinalOfNumber.length; number++) {
3840
+ const ordinal = ordinalOfNumber[number];
3841
+ if (ordinal >= slots) continue;
3842
+ topLayers[number] = savedTopLayer(state, ordinal);
3843
+ }
3833
3844
  const entryOrdinal = entryPointOf(state);
3834
3845
  const entryNumber = entryOrdinal >= 0 && entryOrdinal < numberOfOrdinal.length ? numberOfOrdinal[entryOrdinal] : NO_NUMBER;
3835
3846
  const entryHoldsNode = entryNumber !== NO_NUMBER && topLayers[entryNumber] >= 0;
3836
- return {
3847
+ const header = {
3837
3848
  entryPoint: entryHoldsNode ? entryNumber : null,
3838
3849
  maxLayer: Math.max(0, Math.min(topLayerOf(state), MAX_LAYER_CAP)),
3839
3850
  m: state.M,
3840
3851
  efConstruction: state.efCons,
3841
- metric: state.buildMetric,
3842
- levels,
3843
- neighbours: littleEndianBytesOf(values.subarray(0, cursor))
3852
+ metric: state.buildMetric
3844
3853
  };
3854
+ const numbers = { numberOfOrdinal, ordinalOfNumber, topLayers };
3855
+ const parts = [];
3856
+ for (let start = 0; start < ordinalOfNumber.length; start += partSize) {
3857
+ const end = Math.min(start + partSize, ordinalOfNumber.length);
3858
+ parts.push({ ...header, ...serializePart(state, numbers, start, end) });
3859
+ }
3860
+ return parts;
3845
3861
  }
3846
3862
  function endsInsideAList() {
3847
3863
  throw new NarsilError(
@@ -3862,95 +3878,78 @@ function requireWholeNeighbourLists(graph) {
3862
3878
  }
3863
3879
  }
3864
3880
  }
3865
- function topLayerIn(graph, number) {
3866
- return number < graph.levels.length ? graph.levels[number] - 1 : -1;
3881
+ function topLayerInParts(graph, number) {
3882
+ const part = graph.parts[Math.floor(number / graph.partSize)];
3883
+ if (part === void 0) return -1;
3884
+ const at = number % graph.partSize;
3885
+ return at < part.levels.length ? part.levels[at] - 1 : -1;
3886
+ }
3887
+ function highestNodeOrdinal(graph, ordinalAt) {
3888
+ let highest = -1;
3889
+ for (let p = 0; p < graph.parts.length; p++) {
3890
+ const levels = graph.parts[p].levels;
3891
+ for (let at = 0; at < levels.length; at++) {
3892
+ const ordinal = ordinalAt(p * graph.partSize + at);
3893
+ if (levels[at] > 0 && ordinal > highest) highest = ordinal;
3894
+ }
3895
+ }
3896
+ return highest;
3867
3897
  }
3868
3898
  function deserializeNumberedGraph(state, graph, ordinalOfNumber) {
3869
- requireWholeNeighbourLists(graph);
3899
+ for (const part of graph.parts) requireWholeNeighbourLists(part);
3870
3900
  resetGraph(state);
3871
- const values = valuesOf(graph.neighbours);
3872
3901
  const ordinalAt = (number) => number < ordinalOfNumber.length ? ordinalOfNumber[number] : NO_ORDINAL;
3873
- let highestOrdinal = -1;
3874
- for (let number = 0; number < graph.levels.length; number++) {
3875
- if (graph.levels[number] > 0 && ordinalAt(number) > highestOrdinal) highestOrdinal = ordinalAt(number);
3876
- }
3902
+ const highestOrdinal = highestNodeOrdinal(graph, ordinalAt);
3877
3903
  if (highestOrdinal >= 0) ensureCapacity(state, highestOrdinal + 1);
3878
3904
  const kept = [];
3879
- let cursor = 0;
3880
3905
  let highestLayer = -1;
3881
3906
  let nodeOnHighestLayer = NO_ORDINAL;
3882
- for (let number = 0; number < graph.levels.length; number++) {
3883
- const top = graph.levels[number] - 1;
3884
- if (top < 0) continue;
3885
- const ordinal = ordinalAt(number);
3886
- const keptTop = Math.min(top, MAX_LAYER_CAP);
3887
- if (ordinal !== NO_ORDINAL) {
3888
- createNode(state.adjacency, ordinal, keptTop);
3889
- Atomics.add(state.header, GRAPH_NODE_COUNT, 1);
3890
- if (keptTop > highestLayer) {
3891
- highestLayer = keptTop;
3892
- nodeOnHighestLayer = ordinal;
3893
- }
3894
- }
3895
- for (let layer = 0; layer <= top; layer++) {
3896
- const count = values[cursor];
3897
- kept.length = 0;
3898
- const limit = maxConns(state, layer);
3899
- for (let i = 1; i <= count && kept.length < limit; i++) {
3900
- const neighbour = values[cursor + i];
3901
- const neighbourOrdinal = ordinalAt(neighbour);
3902
- if (neighbourOrdinal === NO_ORDINAL || neighbour === number || topLayerIn(graph, neighbour) < layer) continue;
3903
- if (!kept.includes(neighbourOrdinal)) kept.push(neighbourOrdinal);
3907
+ for (let p = 0; p < graph.parts.length; p++) {
3908
+ const part = graph.parts[p];
3909
+ const values = valuesOf(part.neighbours);
3910
+ let cursor = 0;
3911
+ for (let at = 0; at < part.levels.length; at++) {
3912
+ const number = p * graph.partSize + at;
3913
+ const top = part.levels[at] - 1;
3914
+ if (top < 0) continue;
3915
+ const ordinal = ordinalAt(number);
3916
+ const keptTop = Math.min(top, MAX_LAYER_CAP);
3917
+ if (ordinal !== NO_ORDINAL) {
3918
+ createNode(state.adjacency, ordinal, keptTop);
3919
+ Atomics.add(state.header, GRAPH_NODE_COUNT, 1);
3920
+ if (keptTop > highestLayer) {
3921
+ highestLayer = keptTop;
3922
+ nodeOnHighestLayer = ordinal;
3923
+ }
3904
3924
  }
3905
- cursor += count + 1;
3906
- if (ordinal !== NO_ORDINAL && layer <= keptTop) {
3907
- replaceNeighbors(state.adjacency, ordinal, layer, kept, kept.length);
3925
+ for (let layer = 0; layer <= top; layer++) {
3926
+ const count = values[cursor];
3927
+ kept.length = 0;
3928
+ const limit = maxConns(state, layer);
3929
+ for (let i = 1; i <= count && kept.length < limit; i++) {
3930
+ const neighbour = values[cursor + i];
3931
+ const neighbourOrdinal = ordinalAt(neighbour);
3932
+ if (neighbourOrdinal === NO_ORDINAL || neighbour === number) continue;
3933
+ if (topLayerInParts(graph, neighbour) < layer) continue;
3934
+ if (!kept.includes(neighbourOrdinal)) kept.push(neighbourOrdinal);
3935
+ }
3936
+ cursor += count + 1;
3937
+ if (ordinal !== NO_ORDINAL && layer <= keptTop) {
3938
+ replaceNeighbors(state.adjacency, ordinal, layer, kept, kept.length);
3939
+ }
3908
3940
  }
3909
3941
  }
3910
3942
  }
3911
- const entryOrdinal = graph.entryPoint === null ? NO_ORDINAL : ordinalAt(graph.entryPoint);
3912
- const entryTop = graph.entryPoint === null ? -1 : Math.min(topLayerIn(graph, graph.entryPoint), MAX_LAYER_CAP);
3943
+ const first = graph.parts[0];
3944
+ const entryPoint = first === void 0 ? null : first.entryPoint;
3945
+ const entryOrdinal = entryPoint === null ? NO_ORDINAL : ordinalAt(entryPoint);
3946
+ const entryTop = entryPoint === null ? -1 : Math.min(topLayerInParts(graph, entryPoint), MAX_LAYER_CAP);
3913
3947
  const entryIsUsable = entryOrdinal !== NO_ORDINAL && entryTop >= 0;
3914
3948
  Atomics.store(state.header, GRAPH_ENTRY_POINT, entryIsUsable ? entryOrdinal : nodeOnHighestLayer);
3915
3949
  Atomics.store(state.header, GRAPH_TOP_LAYER, entryIsUsable ? entryTop : highestLayer);
3916
3950
  }
3917
3951
 
3918
3952
  // src/vector/hnsw/persistence.ts
3919
- function serializeGraph(state, store) {
3920
- const nodeArray = [];
3921
- const slots = adjacencySlots(state.adjacency);
3922
- for (let ord = 0; ord < slots; ord++) {
3923
- const maxLayer = nodeMaxLayer(state, ord);
3924
- if (maxLayer === -1) continue;
3925
- if (isTombstoned(state, ord)) continue;
3926
- const docId = store.docIdForOrdinal(ord);
3927
- if (docId === void 0) continue;
3928
- const layerConns = [];
3929
- for (let layer = 0; layer <= maxLayer; layer++) {
3930
- const liveNeighbors = [];
3931
- for (const neighborOrd of collectNeighbors(state.adjacency, ord, layer)) {
3932
- if (isTombstoned(state, neighborOrd)) continue;
3933
- const neighborDoc = store.docIdForOrdinal(neighborOrd);
3934
- if (neighborDoc === void 0) continue;
3935
- liveNeighbors.push(neighborDoc);
3936
- }
3937
- if (liveNeighbors.length > 0) {
3938
- layerConns.push([layer, liveNeighbors]);
3939
- }
3940
- }
3941
- nodeArray.push([docId, maxLayer, layerConns]);
3942
- }
3943
- const entryOrd = entryPointOf(state);
3944
- const entryPoint = entryOrd === -1 ? null : store.docIdForOrdinal(entryOrd) ?? null;
3945
- return {
3946
- entryPoint,
3947
- maxLayer: topLayerOf(state),
3948
- m: state.M,
3949
- efConstruction: state.efCons,
3950
- metric: state.buildMetric,
3951
- nodes: nodeArray
3952
- };
3953
- }
3954
3953
  function resolveNodes(state, store, data) {
3955
3954
  const nodes = [];
3956
3955
  let maxOrd = -1;
@@ -4186,13 +4185,12 @@ function createHNSWIndex(dimension, store, config, quantizer, handles) {
4186
4185
  compactTombstones: () => exclusively(() => compactTombstones(state)),
4187
4186
  rebuild: () => exclusively(() => rebuild(state)),
4188
4187
  exclusively,
4189
- serialize: () => serializeGraph(state, store),
4190
4188
  deserialize: (data) => exclusively(() => deserializeGraph(state, store, data)),
4191
- serializeNumbered: (numberOfOrdinal, ordinalOfNumber) => serializeNumberedGraph(state, numberOfOrdinal, ordinalOfNumber),
4189
+ serializeNumbered: (numberOfOrdinal, ordinalOfNumber, partSize) => serializeNumberedGraphParts(state, numberOfOrdinal, ordinalOfNumber, partSize),
4192
4190
  deserializeNumbered: (graph, ordinalOfNumber) => exclusively(() => deserializeNumberedGraph(state, graph, ordinalOfNumber)),
4193
4191
  exportSnapshot: () => exportSnapshot(state),
4194
4192
  restoreSnapshot: (snapshot) => exclusively(() => restoreSnapshot(state, snapshot))
4195
4193
  };
4196
4194
  }
4197
4195
 
4198
- export { DISK_STORAGE_BLOCK_BYTES, GRAPH_BUILD_CHUNKS_IN_FLIGHT_PER_WORKER, GRAPH_BUILD_DISPATCH_CHUNK, MAX_WORKER_COPIES, SCRATCH_SLOTS_PER_THREAD_POOL, STORE_CALIBRATION_GENERATION, VECTOR_INSERT_TIMEOUT_MS, VECTOR_SCRATCH_SLOTS, VECTOR_SEARCH_LOAD_TIMEOUT_MS, VECTOR_SEARCH_TIMEOUT_MS, addToOrdinalFilter, cosineSimilarityWithMagnitudes, createHNSWIndex, createOrdinalFilter, createOsqQuantizer, createVectorStore, dotProduct, entryForOrd, euclideanDistance, isSimdAvailable, isTombstoned, magnitude, nativeScoresOf, nativeStoreScratchBytes, openSharedVectorField, ordinalFilterHas, ordinalFilterValues, osqBitsOf, osqRecordBytes, releaseLocksHeldBy, removeFromOrdinalFilter, requireWholeNeighbourLists, sharedMemoryAvailable, toDistance, toScore };
4196
+ export { DISK_STORAGE_BLOCK_BYTES, GRAPH_BUILD_CHUNKS_IN_FLIGHT_PER_WORKER, GRAPH_BUILD_DISPATCH_CHUNK, MAX_WORKER_COPIES, SCRATCH_SLOTS_PER_THREAD_POOL, STORE_CALIBRATION_GENERATION, VECTOR_INSERT_TIMEOUT_MS, VECTOR_SCRATCH_SLOTS, VECTOR_SEARCH_LOAD_TIMEOUT_MS, VECTOR_SEARCH_TIMEOUT_MS, addToOrdinalFilter, cosineSimilarityWithMagnitudes, createHNSWIndex, createOrdinalFilter, createOsqQuantizer, createVectorStore, dotProduct, entryForOrd, euclideanDistance, isSimdAvailable, isTombstoned, magnitude, nativeScoresOf, nativeStoreScratchBytes, openSharedVectorField, ordinalFilterHas, ordinalFilterValues, osqBitsOf, osqRecordBytes, releaseLocksHeldBy, removeFromOrdinalFilter, requireWholeNeighbourLists, sharedMemoryAvailable, toDistance, toScore, topLayerInParts };