@adonis-agora/agent
Version:
Governed, durable-backed AI agent (chat + tool-calling + governance) for AdonisJS — part of the Agora ecosystem.
44 lines • 2.34 kB
TypeScript
import { EmbeddingRetriever } from '../rag/embedding-retriever.js';
import type { VectorStore } from '../rag/vector-store.js';
import { type DiskBytesReader, type MediaManagerHandle, MediaRagIngestion, type ResolveMediaRef } from '../rag-media/media-rag-ingestion.js';
import { type ExtractFn, MimeTextExtractor } from '../rag-media/text-extractor.js';
import type { EmbeddingProvider } from '../spi/embedding-provider.js';
/**
* An in-memory {@link MediaManagerHandle} for tests: bytes are stored in a per-disk `Map`, keyed by the
* object key. Stands in for an `@adonis-agora/media` `MediaManager` — the media→RAG bridge only reads
* `disk(name).getBytes(key)`, so this deterministic fake exercises the whole ingestion path offline.
*/
export declare class FakeMediaManager implements MediaManagerHandle {
private readonly disks;
/** Seed a file's bytes on a disk. Accepts a string (UTF-8 encoded) or raw bytes. Chainable. */
put(disk: string, key: string, contents: string | Uint8Array): this;
disk(name?: string): DiskBytesReader;
}
/**
* A fake PDF text extractor for tests — stands in for a real (host-supplied) PDF parser without the
* dependency. It ignores the bytes and returns fixed text so a test can assert the `application/pdf`
* hook is invoked. Register it: `defaultTextExtractor().register('application/pdf', fakePdfExtractor())`.
*/
export declare function fakePdfExtractor(text?: string): ExtractFn;
/**
* Build a fully in-memory media→RAG ingestion for tests: a {@link MemoryVectorStore} + a deterministic
* {@link FakeEmbeddingProvider} + a {@link FakeMediaManager}, wired into a {@link MediaRagIngestion} and
* paired with an {@link EmbeddingRetriever} over the same store/embedder (so a test can ingest then
* retrieve, filtering by tenant/owner metadata). Seed files with `media.put(disk, key, contents)`.
*/
export declare function inMemoryMediaRagIngestion(options?: {
embedder?: EmbeddingProvider;
store?: VectorStore;
media?: FakeMediaManager;
extractor?: MimeTextExtractor;
contentTypes?: string[];
resolve?: ResolveMediaRef;
maxBytes?: number;
}): {
ingestion: MediaRagIngestion;
store: VectorStore;
embedder: EmbeddingProvider;
media: FakeMediaManager;
retriever: EmbeddingRetriever;
};
//# sourceMappingURL=fake-media.d.ts.map