/** * Project knowledge retrieval helpers. * * @module knowledge * * @example * ```ts * import { projectKnowledge } from "veryfront/knowledge"; * * const knowledge = projectKnowledge(); * await knowledge.index(); * const result = await knowledge.retrieve("SSO login failure"); * ``` */ import "../../_dnt.polyfills.js"; import type { RagSearchOptions, RagSearchResult, RagStoreBackend } from "../embedding/index.js"; import type { Tool, ToolExecutionContext } from "../tool/types.js"; /** Configuration for project knowledge indexing and retrieval. */ export interface ProjectKnowledgeConfig { /** * Project root used to resolve relative local paths. * * Hosted Veryfront Cloud request contexts ignore this for release-backed * content lookup, but local development uses it to find `knowledge/` and * `data/knowledge-index.json`. */ projectDir?: string; /** * Directory containing source-controlled knowledge files. * * Defaults to `knowledge`. */ contentDir?: string; /** * Local JSON index path. * * Defaults to `data/knowledge-index.json`. */ storagePath?: string; contentExtensions?: string[]; model?: string; backend?: RagStoreBackend; branch?: string; topK?: number; threshold?: number; maxQueryChars?: number; } /** Per-call options for project knowledge retrieval. */ export interface ProjectKnowledgeRetrieveOptions extends RagSearchOptions { maxQueryChars?: number; } /** Result returned from project knowledge retrieval. */ export interface ProjectKnowledgeResult { query: string; matches: RagSearchResult[]; context: string; } export interface ProjectKnowledgeLookupInput { project_reference?: string; query?: string; cursor?: string; lookup_target?: unknown; limit?: number; shard_count?: number; shard_index?: number; } export interface ProjectKnowledgeLookupFrontmatterField { key: string; value: string; } export interface ProjectKnowledgeLookupItem { path: string; matched_fields: string[]; frontmatter: ProjectKnowledgeLookupFrontmatterField[]; content?: string; } export interface ProjectKnowledgeLookupPageInfo { self: string | null; first: string | null; next: string | null; prev: string | null; } export interface ProjectKnowledgeLookupShard { shard_index: number; shard_count: number; total_items: number; } export interface ProjectKnowledgeLookupOutput { query: string; mode: "search" | "browse"; data: ProjectKnowledgeLookupItem[]; page_info: ProjectKnowledgeLookupPageInfo; returned: number; total_matches: number; shard: ProjectKnowledgeLookupShard; } export interface CreateSearchKnowledgeToolOptions extends ProjectKnowledgeConfig { id?: string; description?: string; } export type SearchKnowledgeTool = Tool; /** Helper for indexing and retrieving project knowledge. */ export interface ProjectKnowledge { /** * Index configured project knowledge explicitly. * * Keep this out of the chat request path. Use it during setup, deploy, * ingestion, or another controlled lifecycle step. */ index(): Promise; /** * Search the local OKF knowledge manifest using the same compact response * shape as Veryfront Cloud's `search_knowledge` tool. Explicit * `lookup_target` calls include document content. This does not build or * query the embedding index. */ lookup(input: ProjectKnowledgeLookupInput): Promise; retrieve(query: string, options?: ProjectKnowledgeRetrieveOptions): Promise; search(query: string, options?: RagSearchOptions): Promise; } /** Normalize a knowledge query before retrieval. */ export declare function normalizeKnowledgeQuery(query: string, maxChars?: number): string; /** Format search results into a deterministic prompt context block. */ export declare function formatKnowledgeContext(results: RagSearchResult[]): string; /** * Search the local OKF knowledge manifest with the same input/output shape as * Veryfront Cloud's `search_knowledge` MCP tool. */ export declare function searchProjectKnowledge(input: ProjectKnowledgeLookupInput, config?: ProjectKnowledgeConfig, context?: ToolExecutionContext): Promise; /** Create a local tool with the same id and response shape as hosted `search_knowledge`. */ export declare function createSearchKnowledgeTool(options?: CreateSearchKnowledgeToolOptions): SearchKnowledgeTool; /** Create a project knowledge helper backed by the configured RAG store. */ export declare function projectKnowledge(config?: ProjectKnowledgeConfig): ProjectKnowledge; //# sourceMappingURL=index.d.ts.map