import { HindsightClient } from "@vectorize-io/hindsight-client"; import type { RecallResponse, TestMemory } from "./types.js"; /** * Cross-encoder score assigned to a test memory that does not specify one. * Mirrors the Hindsight `rrf` passthrough constant (0.5) and sits above the * default `recallMinRelevance` of 0.3, so unscored test memories are injected * by default — testers opt INTO filtering by setting explicit low scores. */ export declare const DEFAULT_TEST_MEMORY_SCORE = 0.5; /** * Built-in, realistic memory set served by TEST mode when the operator does * not provide `testMemories`. Scores are varied (and all ≥ default threshold) * so injection is observable out of the box and `recallTopK` ordering is * meaningful. Override via the `testMemories` config to craft scenarios. */ export declare const DEFAULT_TEST_MEMORIES: readonly TestMemory[]; /** * Validate and normalize the operator's raw `testMemories` config value. * * Contract: * - Not an array (incl. `undefined`) → the built-in DEFAULT set. * - An array → honored verbatim; each item needs a non-empty string `text` * (the only hard requirement), invalid items are dropped. An array that * yields zero valid items is honored as empty — a legitimate scenario for * testing the "recall returns nothing" path. This mirrors how the plugin * honors an explicit `excludeSenders: []`. * * @internal exported for unit testing */ export declare function parseTestMemories(value: unknown): TestMemory[]; /** * Build a complete, well-formed `RecallResponse` from a set of test memories. * Results are ordered by descending cross-encoder score (stable on ties) to * mimic server-side ranking, since `recallTopK` slices the head of the list. * The `trace.final_results` array carries each memory's `cross_encoder_score` * so the `recallMinRelevance` filter and provenance scoring run for real. * * @internal exported for unit testing */ export declare function buildTestRecallResponse(memories: TestMemory[]): RecallResponse; /** * Create a `HindsightClient` stand-in for TEST mode. `recall()` serves the * canned response; `retain()` and `createBank()` are resolving no-ops (so the * per-bank mission setup in `getClientForContext` succeeds without a backend). * Cast structurally — the plugin only ever calls these three methods on the * client (via `scopeClient` / `flushRetainQueue`, the latter being unreachable * in TEST mode since the retain queue is never initialized). */ export declare function createTestHindsightClient(memories: TestMemory[]): HindsightClient;