UNPKG

@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
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