{"version":3,"file":"store.mjs","names":[],"sources":["../src/store.ts"],"sourcesContent":["import { Context } from 'effect'\nimport type { Effect } from 'effect'\nimport type {\n  CreateKnowledgeDocumentInput,\n  IndexedKnowledgeDocument,\n  KnowledgeChunk,\n  KnowledgeDocument,\n  KnowledgeDocumentId,\n  KnowledgeFile,\n  KnowledgeScope,\n  KnowledgeScopeId,\n  KnowledgeSearchScope,\n  UpdateKnowledgeDocumentInput\n} from './documents.ts'\nimport type { KnowledgeEmbedding } from './embeddings.ts'\nimport type { KnowledgeStoreError, SearchIndexStoreError } from './errors.ts'\n\nexport type GetKnowledgeDocumentInput = {\n  readonly scope: KnowledgeScope\n  readonly id: KnowledgeDocumentId\n}\n\nexport type GetKnowledgeDocumentBySlugInput = {\n  readonly scope: KnowledgeScope\n  readonly slug: string\n}\n\nexport type ListKnowledgeDocumentsInput = {\n  readonly scope: KnowledgeScope\n  readonly limit: number\n  readonly availability?: KnowledgeDocument['availability']\n}\n\nexport type ListKnowledgeDocumentsResult = {\n  readonly documents: ReadonlyArray<KnowledgeDocument>\n}\n\nexport type ListPinnedKnowledgeInput = {\n  readonly scope: KnowledgeScope\n  readonly limit: number\n}\n\nexport type ListPinnedKnowledgeResult = {\n  readonly documents: ReadonlyArray<KnowledgeDocument>\n}\n\nexport type KnowledgeStoreApi = {\n  readonly createDocument: (\n    input: CreateKnowledgeDocumentInput\n  ) => Effect.Effect<KnowledgeDocument, KnowledgeStoreError>\n  readonly updateDocument: (\n    input: UpdateKnowledgeDocumentInput\n  ) => Effect.Effect<KnowledgeDocument, KnowledgeStoreError>\n  readonly getDocument: (\n    input: GetKnowledgeDocumentInput\n  ) => Effect.Effect<KnowledgeDocument, KnowledgeStoreError>\n  readonly getDocumentBySlug: (\n    input: GetKnowledgeDocumentBySlugInput\n  ) => Effect.Effect<KnowledgeDocument, KnowledgeStoreError>\n  readonly listDocuments: (\n    input: ListKnowledgeDocumentsInput\n  ) => Effect.Effect<ListKnowledgeDocumentsResult, KnowledgeStoreError>\n  readonly listPinned: (\n    input: ListPinnedKnowledgeInput\n  ) => Effect.Effect<ListPinnedKnowledgeResult, KnowledgeStoreError>\n  readonly deleteDocument: (\n    input: GetKnowledgeDocumentInput\n  ) => Effect.Effect<void, KnowledgeStoreError>\n  readonly listFiles: (\n    input: GetKnowledgeDocumentInput\n  ) => Effect.Effect<ReadonlyArray<KnowledgeFile>, KnowledgeStoreError>\n}\n\nexport class KnowledgeStore extends Context.Service<KnowledgeStore, KnowledgeStoreApi>()(\n  '@yolk-sdk/knowledge/KnowledgeStore'\n) {}\n\nexport type UpsertIndexedKnowledgeDocumentInput = {\n  readonly document: IndexedKnowledgeDocument\n}\n\nexport type ReplaceKnowledgeDocumentChunksInput = {\n  readonly scopeId: KnowledgeScopeId\n  readonly documentId: KnowledgeDocumentId\n  readonly chunks: ReadonlyArray<{\n    readonly chunk: KnowledgeChunk\n    readonly embedding: KnowledgeEmbedding\n  }>\n}\n\nexport type MarkKnowledgeDocumentReadyInput = {\n  readonly scopeId: KnowledgeScopeId\n  readonly documentId: KnowledgeDocumentId\n  readonly title?: string\n  readonly summary?: string\n  readonly contentHash?: string\n  readonly tokenCount: number\n  readonly chunkCount: number\n}\n\nexport type MarkKnowledgeDocumentErrorInput = {\n  readonly scopeId: KnowledgeScopeId\n  readonly documentId: KnowledgeDocumentId\n  readonly message: string\n}\n\nexport type KnowledgeChunkSearchInput = {\n  readonly scope: KnowledgeSearchScope\n  readonly embedding: KnowledgeEmbedding\n  readonly limit: number\n  readonly minScore?: number\n}\n\nexport type KnowledgeChunkTextSearchInput = {\n  readonly scope: KnowledgeSearchScope\n  readonly query: string\n  readonly limit: number\n}\n\nexport type KnowledgeChunkSearchResult = {\n  readonly chunk: KnowledgeChunk\n  readonly score: number\n  readonly document: IndexedKnowledgeDocument\n}\n\nexport type KnowledgeSearchContextChunksInput = {\n  readonly scopeId: KnowledgeScopeId\n  readonly documentId: KnowledgeDocumentId\n  readonly position: number\n  readonly contextChunks: number\n}\n\nexport type SearchIndexStoreApi = {\n  readonly upsertDocument: (\n    input: UpsertIndexedKnowledgeDocumentInput\n  ) => Effect.Effect<IndexedKnowledgeDocument, SearchIndexStoreError>\n  readonly markDocumentProcessing: (input: {\n    readonly scopeId: KnowledgeScopeId\n    readonly documentId: KnowledgeDocumentId\n  }) => Effect.Effect<IndexedKnowledgeDocument, SearchIndexStoreError>\n  readonly replaceDocumentChunks: (\n    input: ReplaceKnowledgeDocumentChunksInput\n  ) => Effect.Effect<void, SearchIndexStoreError>\n  readonly markDocumentReady: (\n    input: MarkKnowledgeDocumentReadyInput\n  ) => Effect.Effect<IndexedKnowledgeDocument, SearchIndexStoreError>\n  readonly markDocumentError: (\n    input: MarkKnowledgeDocumentErrorInput\n  ) => Effect.Effect<void, SearchIndexStoreError>\n  readonly deleteDocument: (input: {\n    readonly scopeId: KnowledgeScopeId\n    readonly documentId: KnowledgeDocumentId\n  }) => Effect.Effect<void, SearchIndexStoreError>\n  readonly searchChunks: (\n    input: KnowledgeChunkSearchInput\n  ) => Effect.Effect<ReadonlyArray<KnowledgeChunkSearchResult>, SearchIndexStoreError>\n  readonly searchChunksByText: (\n    input: KnowledgeChunkTextSearchInput\n  ) => Effect.Effect<ReadonlyArray<KnowledgeChunkSearchResult>, SearchIndexStoreError>\n  readonly getContextChunks: (\n    input: KnowledgeSearchContextChunksInput\n  ) => Effect.Effect<ReadonlyArray<KnowledgeChunk>, SearchIndexStoreError>\n}\n\nexport class SearchIndexStore extends Context.Service<SearchIndexStore, SearchIndexStoreApi>()(\n  '@yolk-sdk/knowledge/SearchIndexStore'\n) {}\n"],"mappings":";;AAyEA,IAAa,iBAAb,cAAoC,QAAQ,QAA2C,EACrF,oCACF,EAAE,CAAC;AAyFH,IAAa,mBAAb,cAAsC,QAAQ,QAA+C,EAC3F,sCACF,EAAE,CAAC"}