@elizaos/plugin-knowledge 2.0.0-alpha.7 → 2.0.0-alpha.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../actions.ts", "../../service.ts", "../../config.ts", "../../types.ts", "../../docs-loader.ts", "../../utils.ts", "../../node_modules/uuid/dist-node/native.js", "../../node_modules/uuid/dist-node/rng.js", "../../node_modules/uuid/dist-node/regex.js", "../../node_modules/uuid/dist-node/validate.js", "../../node_modules/uuid/dist-node/stringify.js", "../../node_modules/uuid/dist-node/v4.js", "../../node_modules/uuid/dist-node/sha1.js", "../../node_modules/uuid/dist-node/parse.js", "../../node_modules/uuid/dist-node/v35.js", "../../node_modules/uuid/dist-node/v5.js", "../../document-processor.ts", "../../ctx-embeddings.ts", "../../llm.ts", "../../documents-provider.ts", "../../provider.ts", "../../routes.ts", "../../index.ts"],
3
+ "sources": ["../../actions.ts", "../../service.ts", "../../config.ts", "../../types.ts", "../../docs-loader.ts", "../../utils.ts", "../../../../../node_modules/.bun/uuid@13.0.0/node_modules/uuid/dist-node/native.js", "../../../../../node_modules/.bun/uuid@13.0.0/node_modules/uuid/dist-node/rng.js", "../../../../../node_modules/.bun/uuid@13.0.0/node_modules/uuid/dist-node/regex.js", "../../../../../node_modules/.bun/uuid@13.0.0/node_modules/uuid/dist-node/validate.js", "../../../../../node_modules/.bun/uuid@13.0.0/node_modules/uuid/dist-node/stringify.js", "../../../../../node_modules/.bun/uuid@13.0.0/node_modules/uuid/dist-node/v4.js", "../../../../../node_modules/.bun/uuid@13.0.0/node_modules/uuid/dist-node/sha1.js", "../../../../../node_modules/.bun/uuid@13.0.0/node_modules/uuid/dist-node/parse.js", "../../../../../node_modules/.bun/uuid@13.0.0/node_modules/uuid/dist-node/v35.js", "../../../../../node_modules/.bun/uuid@13.0.0/node_modules/uuid/dist-node/v5.js", "../../document-processor.ts", "../../ctx-embeddings.ts", "../../llm.ts", "../../documents-provider.ts", "../../provider.ts", "../../routes.ts", "../../index.ts"],
4
4
  "sourcesContent": [
5
5
  "import * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport type {\n Action,\n Content,\n HandlerCallback,\n HandlerOptions,\n IAgentRuntime,\n Memory,\n State,\n} from \"@elizaos/core\";\nimport { logger, stringToUuid } from \"@elizaos/core\";\nimport { KnowledgeService } from \"./service.ts\";\nimport type { AddKnowledgeOptions } from \"./types.ts\";\n\nexport const processKnowledgeAction: Action = {\n name: \"PROCESS_KNOWLEDGE\",\n description:\n \"Process and store knowledge from a file path or text content into the knowledge base\",\n\n similes: [],\n\n examples: [\n [\n {\n name: \"user\",\n content: {\n text: \"Process the document at /path/to/document.pdf\",\n },\n },\n {\n name: \"assistant\",\n content: {\n text: \"I'll process the document at /path/to/document.pdf and add it to my knowledge base.\",\n actions: [\"PROCESS_KNOWLEDGE\"],\n },\n },\n ],\n [\n {\n name: \"user\",\n content: {\n text: \"Add this to your knowledge: The capital of France is Paris.\",\n },\n },\n {\n name: \"assistant\",\n content: {\n text: \"I'll add that information to my knowledge base.\",\n actions: [\"PROCESS_KNOWLEDGE\"],\n },\n },\n ],\n ],\n\n validate: async (runtime: any, message: any, state?: any, options?: any): Promise<boolean> => {\n const __avTextRaw = typeof message?.content?.text === \"string\" ? message.content.text : \"\";\n const __avText = __avTextRaw.toLowerCase();\n const __avKeywords = [\"process\", \"knowledge\"];\n const __avKeywordOk =\n __avKeywords.length > 0 && __avKeywords.some((kw) => kw.length > 0 && __avText.includes(kw));\n const __avRegexOk = /\\b(?:process|knowledge)\\b/i.test(__avText);\n const __avSource = String(message?.content?.source ?? message?.source ?? \"\");\n const __avExpectedSource = \"\";\n const __avSourceOk = __avExpectedSource\n ? __avSource === __avExpectedSource\n : Boolean(__avSource || state || runtime?.agentId || runtime?.getService);\n const __avOptions = options && typeof options === \"object\" ? options : {};\n const __avInputOk =\n __avText.trim().length > 0 ||\n Object.keys(__avOptions as Record<string, unknown>).length > 0 ||\n Boolean(message?.content && typeof message.content === \"object\");\n\n if (!(__avKeywordOk && __avRegexOk && __avSourceOk && __avInputOk)) {\n return false;\n }\n\n const __avLegacyValidate = async (runtime: IAgentRuntime, message: Memory, _state?: State) => {\n const text = message.content.text?.toLowerCase() || \"\";\n\n const knowledgeKeywords = [\n \"process\",\n \"add\",\n \"upload\",\n \"document\",\n \"knowledge\",\n \"learn\",\n \"remember\",\n \"store\",\n \"ingest\",\n \"file\",\n ];\n\n const hasKeyword = knowledgeKeywords.some((keyword) => text.includes(keyword));\n\n const pathPattern = /(?:\\/[\\w.-]+)+|(?:[a-zA-Z]:[\\\\/][\\w\\s.-]+(?:[\\\\/][\\w\\s.-]+)*)/;\n const hasPath = pathPattern.test(text);\n\n const service = runtime.getService(KnowledgeService.serviceType);\n if (!service) {\n logger.warn(\"Knowledge service not available for PROCESS_KNOWLEDGE action\");\n return false;\n }\n\n return hasKeyword || hasPath;\n };\n try {\n return Boolean(await (__avLegacyValidate as any)(runtime, message, state, options));\n } catch {\n return false;\n }\n },\n\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n _state?: State,\n _options?: HandlerOptions,\n callback?: HandlerCallback\n ) => {\n try {\n const service = runtime.getService<KnowledgeService>(KnowledgeService.serviceType);\n if (!service) {\n throw new Error(\"Knowledge service not available\");\n }\n\n const text = message.content.text || \"\";\n\n const pathPattern = /(?:\\/[\\w.-]+)+|(?:[a-zA-Z]:[\\\\/][\\w\\s.-]+(?:[\\\\/][\\w\\s.-]+)*)/;\n const pathMatch = text.match(pathPattern);\n\n let response: Content;\n\n if (pathMatch) {\n const filePath = pathMatch[0];\n\n if (!fs.existsSync(filePath)) {\n response = {\n text: `I couldn't find the file at ${filePath}. Please check the path and try again.`,\n };\n\n if (callback) {\n await callback(response);\n }\n return;\n }\n\n const fileBuffer = fs.readFileSync(filePath);\n const fileName = path.basename(filePath);\n const fileExt = path.extname(filePath).toLowerCase();\n\n let contentType = \"text/plain\";\n if (fileExt === \".pdf\") contentType = \"application/pdf\";\n else if (fileExt === \".docx\")\n contentType = \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\";\n else if (fileExt === \".doc\") contentType = \"application/msword\";\n else if ([\".txt\", \".md\", \".tson\", \".xml\", \".csv\"].includes(fileExt))\n contentType = \"text/plain\";\n\n const knowledgeOptions: AddKnowledgeOptions = {\n clientDocumentId: stringToUuid(runtime.agentId + fileName + Date.now()),\n contentType,\n originalFilename: fileName,\n worldId: runtime.agentId,\n content: fileBuffer.toString(\"base64\"),\n roomId: message.roomId,\n entityId: message.entityId,\n };\n\n const result = await service.addKnowledge(knowledgeOptions);\n\n response = {\n text: `I've successfully processed the document \"${fileName}\". It has been split into ${result?.fragmentCount || 0} searchable fragments and added to my knowledge base.`,\n };\n } else {\n const knowledgeContent = text\n .replace(/^(add|store|remember|process|learn)\\s+(this|that|the following)?:?\\s*/i, \"\")\n .trim();\n\n if (!knowledgeContent) {\n response = {\n text: \"I need some content to add to my knowledge base. Please provide text or a file path.\",\n };\n\n if (callback) {\n await callback(response);\n }\n return;\n }\n\n const knowledgeOptions: AddKnowledgeOptions = {\n clientDocumentId: stringToUuid(`${runtime.agentId}text${Date.now()}user-knowledge`),\n contentType: \"text/plain\",\n originalFilename: \"user-knowledge.txt\",\n worldId: runtime.agentId,\n content: knowledgeContent,\n roomId: message.roomId,\n entityId: message.entityId,\n };\n\n await service.addKnowledge(knowledgeOptions);\n\n response = {\n text: `I've added that information to my knowledge base. It has been stored and indexed for future reference.`,\n };\n }\n\n if (callback) {\n await callback(response);\n }\n return { success: true, text: response.text };\n } catch (error) {\n logger.error({ error }, \"Error in PROCESS_KNOWLEDGE action\");\n\n const errorResponse: Content = {\n text: `I encountered an error while processing the knowledge: ${error instanceof Error ? error.message : String(error)}`,\n };\n\n if (callback) {\n await callback(errorResponse);\n }\n return { success: false, error: error instanceof Error ? error.message : String(error) };\n }\n },\n};\n\nexport const searchKnowledgeAction: Action = {\n name: \"SEARCH_KNOWLEDGE\",\n description: \"Search the knowledge base for specific information\",\n\n similes: [\n \"search knowledge\",\n \"find information\",\n \"look up\",\n \"query knowledge base\",\n \"search documents\",\n \"find in knowledge\",\n ],\n\n examples: [\n [\n {\n name: \"user\",\n content: {\n text: \"Search your knowledge for information about quantum computing\",\n },\n },\n {\n name: \"assistant\",\n content: {\n text: \"I'll search my knowledge base for information about quantum computing.\",\n actions: [\"SEARCH_KNOWLEDGE\"],\n },\n },\n ],\n ],\n\n validate: async (runtime: any, message: any, state?: any, options?: any): Promise<boolean> => {\n const __avTextRaw = typeof message?.content?.text === \"string\" ? message.content.text : \"\";\n const __avText = __avTextRaw.toLowerCase();\n const __avKeywords = [\"search\", \"knowledge\"];\n const __avKeywordOk =\n __avKeywords.length > 0 && __avKeywords.some((kw) => kw.length > 0 && __avText.includes(kw));\n const __avRegexOk = /\\b(?:search|knowledge)\\b/i.test(__avText);\n const __avSource = String(message?.content?.source ?? message?.source ?? \"\");\n const __avExpectedSource = \"\";\n const __avSourceOk = __avExpectedSource\n ? __avSource === __avExpectedSource\n : Boolean(__avSource || state || runtime?.agentId || runtime?.getService);\n const __avOptions = options && typeof options === \"object\" ? options : {};\n const __avInputOk =\n __avText.trim().length > 0 ||\n Object.keys(__avOptions as Record<string, unknown>).length > 0 ||\n Boolean(message?.content && typeof message.content === \"object\");\n\n if (!(__avKeywordOk && __avRegexOk && __avSourceOk && __avInputOk)) {\n return false;\n }\n\n const __avLegacyValidate = async (runtime: IAgentRuntime, message: Memory, _state?: State) => {\n const text = message.content.text?.toLowerCase() || \"\";\n\n const searchKeywords = [\"search\", \"find\", \"look up\", \"query\", \"what do you know about\"];\n const knowledgeKeywords = [\"knowledge\", \"information\", \"document\", \"database\"];\n\n const hasSearchKeyword = searchKeywords.some((keyword) => text.includes(keyword));\n const hasKnowledgeKeyword = knowledgeKeywords.some((keyword) => text.includes(keyword));\n\n const service = runtime.getService(KnowledgeService.serviceType);\n if (!service) {\n return false;\n }\n\n return hasSearchKeyword && hasKnowledgeKeyword;\n };\n try {\n return Boolean(await (__avLegacyValidate as any)(runtime, message, state, options));\n } catch {\n return false;\n }\n },\n\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n _state?: State,\n _options?: HandlerOptions,\n callback?: HandlerCallback\n ) => {\n try {\n const service = runtime.getService<KnowledgeService>(KnowledgeService.serviceType);\n if (!service) {\n throw new Error(\"Knowledge service not available\");\n }\n\n const text = message.content.text || \"\";\n\n const query = text\n .replace(/^(search|find|look up|query)\\s+(your\\s+)?knowledge\\s+(base\\s+)?(for\\s+)?/i, \"\")\n .trim();\n\n if (!query) {\n const response: Content = {\n text: \"What would you like me to search for in my knowledge base?\",\n };\n\n if (callback) {\n await callback(response);\n }\n return;\n }\n\n const searchMessage: Memory = {\n ...message,\n content: {\n text: query,\n },\n };\n\n const results = await service.getKnowledge(searchMessage);\n\n let response: Content;\n\n if (results.length === 0) {\n response = {\n text: `I couldn't find any information about \"${query}\" in my knowledge base.`,\n };\n } else {\n const formattedResults = results\n .slice(0, 3)\n .map((item, index) => `${index + 1}. ${item.content.text}`)\n .join(\"\\n\\n\");\n\n response = {\n text: `Here's what I found about \"${query}\":\\n\\n${formattedResults}`,\n };\n }\n\n if (callback) {\n await callback(response);\n }\n return { success: true, text: response.text };\n } catch (error) {\n logger.error({ error }, \"Error in SEARCH_KNOWLEDGE action\");\n\n const errorResponse: Content = {\n text: `I encountered an error while searching the knowledge base: ${error instanceof Error ? error.message : String(error)}`,\n };\n\n if (callback) {\n await callback(errorResponse);\n }\n return { success: false, error: error instanceof Error ? error.message : String(error) };\n }\n },\n};\n\nexport const knowledgeActions = [processKnowledgeAction, searchKnowledgeAction];\n",
6
- "import {\n type Content,\n type CustomMetadata,\n createUniqueUuid,\n type FragmentMetadata,\n type IAgentRuntime,\n logger,\n type Memory,\n type MemoryMetadata,\n MemoryType,\n type Metadata,\n ModelType,\n Semaphore,\n Service,\n splitChunks,\n type UUID,\n} from \"@elizaos/core\";\nimport { validateModelConfig } from \"./config\";\nimport { loadDocsFromPath } from \"./docs-loader\";\nimport {\n createDocumentMemory,\n extractTextFromDocument,\n processFragmentsSynchronously,\n} from \"./document-processor.ts\";\nimport type { KnowledgeConfig, LoadResult, StoredKnowledgeItem } from \"./types\";\nimport type { AddKnowledgeOptions } from \"./types.ts\";\nimport { generateContentBasedId, isBinaryContentType, looksLikeBase64 } from \"./utils.ts\";\n\nexport class KnowledgeService extends Service {\n static readonly serviceType = \"knowledge\";\n public override config: Metadata = {};\n capabilityDescription =\n \"Provides Retrieval Augmented Generation capabilities, including knowledge upload and querying.\";\n\n private knowledgeProcessingSemaphore: Semaphore;\n\n constructor(runtime: IAgentRuntime, _config?: Partial<KnowledgeConfig>) {\n super(runtime);\n this.knowledgeProcessingSemaphore = new Semaphore(10);\n }\n\n private async loadInitialDocuments(): Promise<void> {\n logger.info(`Loading documents on startup for agent ${this.runtime.agentId}`);\n try {\n await new Promise((resolve) => setTimeout(resolve, 1000));\n\n const knowledgePathSetting = this.runtime.getSetting(\"KNOWLEDGE_PATH\");\n const knowledgePath =\n typeof knowledgePathSetting === \"string\" ? knowledgePathSetting : undefined;\n\n const result: LoadResult = await loadDocsFromPath(\n this as KnowledgeService,\n this.runtime.agentId,\n undefined,\n knowledgePath\n );\n\n if (result.successful > 0) {\n logger.info(`Loaded ${result.successful} documents on startup`);\n }\n } catch (error) {\n logger.error({ error }, \"Error loading documents on startup\");\n }\n }\n\n static async start(runtime: IAgentRuntime): Promise<KnowledgeService> {\n logger.info(`Starting Knowledge service for agent: ${runtime.agentId}`);\n\n const validatedConfig = validateModelConfig(runtime);\n const ctxEnabled = validatedConfig.CTX_KNOWLEDGE_ENABLED;\n\n if (ctxEnabled) {\n logger.info(\n `Contextual Knowledge enabled: ${validatedConfig.EMBEDDING_PROVIDER || \"auto\"} embeddings, ${validatedConfig.TEXT_PROVIDER} text generation`\n );\n logger.info(`Text model: ${validatedConfig.TEXT_MODEL}`);\n } else {\n const usingPluginOpenAI = !process.env.EMBEDDING_PROVIDER;\n logger.warn(\"Basic Embedding mode - documents will not be enriched with context\");\n logger.info(\n \"To enable contextual enrichment: Set CTX_KNOWLEDGE_ENABLED=true and configure TEXT_PROVIDER/TEXT_MODEL\"\n );\n\n if (usingPluginOpenAI) {\n logger.info(\"Using plugin-openai configuration for embeddings\");\n } else {\n logger.info(\n `Using ${validatedConfig.EMBEDDING_PROVIDER} for embeddings with ${validatedConfig.TEXT_EMBEDDING_MODEL}`\n );\n }\n }\n\n const service = new KnowledgeService(runtime);\n service.config = validatedConfig;\n\n if (service.config.LOAD_DOCS_ON_STARTUP) {\n service.loadInitialDocuments().catch((error) => {\n logger.error({ error }, \"Error loading initial documents\");\n });\n }\n\n if (service.runtime.character?.knowledge && service.runtime.character.knowledge.length > 0) {\n const stringKnowledge = service.runtime.character.knowledge\n .map((item) => {\n // Handle new KnowledgeSourceItem format with item.case/item.value\n const itemAny = item as { item?: { case?: string; value?: string }; path?: string };\n if (itemAny?.item?.case === \"path\" && typeof itemAny.item.value === \"string\") {\n return itemAny.item.value;\n }\n // Handle legacy format with direct path property\n if (typeof itemAny?.path === \"string\") {\n return itemAny.path;\n }\n // Handle string items directly\n if (typeof item === \"string\") {\n return item;\n }\n return null;\n })\n .filter((item): item is string => item !== null);\n await service.processCharacterKnowledge(stringKnowledge).catch((err) => {\n logger.error({ error: err }, \"Error processing character knowledge\");\n });\n }\n\n return service;\n }\n\n static async stop(runtime: IAgentRuntime): Promise<void> {\n logger.info(`Stopping Knowledge service for agent: ${runtime.agentId}`);\n const service = runtime.getService(KnowledgeService.serviceType);\n if (!service) {\n logger.warn(`KnowledgeService not found for agent ${runtime.agentId} during stop.`);\n }\n if (service instanceof KnowledgeService) {\n await service.stop();\n }\n }\n\n async stop(): Promise<void> {\n logger.info(`Knowledge service stopping for agent: ${this.runtime.character?.name}`);\n }\n\n async addKnowledge(options: AddKnowledgeOptions): Promise<{\n clientDocumentId: string;\n storedDocumentMemoryId: UUID;\n fragmentCount: number;\n }> {\n const agentId = options.agentId || (this.runtime.agentId as UUID);\n\n const contentBasedId = generateContentBasedId(options.content, agentId, {\n includeFilename: options.originalFilename,\n contentType: options.contentType,\n maxChars: 2000,\n }) as UUID;\n\n logger.info(`Processing \"${options.originalFilename}\" (${options.contentType})`);\n\n try {\n const existingDocument = await this.runtime.getMemoryById(contentBasedId);\n if (existingDocument && existingDocument.metadata?.type === MemoryType.DOCUMENT) {\n logger.info(`\"${options.originalFilename}\" already exists - skipping`);\n\n const fragments = await this.runtime.getMemories({\n tableName: \"knowledge\",\n });\n\n const relatedFragments = fragments.filter(\n (f) =>\n f.metadata?.type === MemoryType.FRAGMENT &&\n (f.metadata as FragmentMetadata).documentId === contentBasedId\n );\n\n return {\n clientDocumentId: contentBasedId,\n storedDocumentMemoryId: existingDocument.id as UUID,\n fragmentCount: relatedFragments.length,\n };\n }\n } catch (error) {\n logger.debug(\n `Document ${contentBasedId} not found or error checking existence, proceeding with processing: ${error instanceof Error ? error.message : String(error)}`\n );\n }\n\n return this.processDocument({\n ...options,\n clientDocumentId: contentBasedId,\n });\n }\n\n private async processDocument({\n agentId: passedAgentId,\n clientDocumentId,\n contentType,\n originalFilename,\n worldId,\n content,\n roomId,\n entityId,\n metadata,\n }: AddKnowledgeOptions): Promise<{\n clientDocumentId: string;\n storedDocumentMemoryId: UUID;\n fragmentCount: number;\n }> {\n const agentId = passedAgentId || (this.runtime.agentId as UUID);\n\n try {\n logger.debug(\n `Processing document ${originalFilename} (type: ${contentType}) for agent: ${agentId}`\n );\n\n let fileBuffer: Buffer | null = null;\n let extractedText: string;\n let documentContentToStore: string;\n const isPdfFile =\n contentType === \"application/pdf\" || originalFilename.toLowerCase().endsWith(\".pdf\");\n\n if (isPdfFile) {\n try {\n fileBuffer = Buffer.from(content, \"base64\");\n } catch (e) {\n logger.error({ error: e }, `Failed to convert base64 to buffer for ${originalFilename}`);\n throw new Error(`Invalid base64 content for PDF file ${originalFilename}`);\n }\n extractedText = await extractTextFromDocument(fileBuffer, contentType, originalFilename);\n documentContentToStore = content;\n } else if (isBinaryContentType(contentType, originalFilename)) {\n try {\n fileBuffer = Buffer.from(content, \"base64\");\n } catch (e) {\n logger.error({ error: e }, `Failed to convert base64 to buffer for ${originalFilename}`);\n throw new Error(`Invalid base64 content for binary file ${originalFilename}`);\n }\n extractedText = await extractTextFromDocument(fileBuffer, contentType, originalFilename);\n documentContentToStore = extractedText;\n } else {\n if (looksLikeBase64(content)) {\n try {\n const decodedBuffer = Buffer.from(content, \"base64\");\n const decodedText = decodedBuffer.toString(\"utf8\");\n\n const invalidCharCount = (decodedText.match(/\\ufffd/g) || []).length;\n const textLength = decodedText.length;\n\n if (invalidCharCount > 0 && invalidCharCount / textLength > 0.1) {\n throw new Error(\"Decoded content contains too many invalid characters\");\n }\n\n logger.debug(`Successfully decoded base64 content for text file: ${originalFilename}`);\n extractedText = decodedText;\n documentContentToStore = decodedText;\n } catch (e) {\n logger.error(\n { error: e instanceof Error ? e : new Error(String(e)) },\n `Failed to decode base64 for ${originalFilename}`\n );\n throw new Error(\n `File ${originalFilename} appears to be corrupted or incorrectly encoded`\n );\n }\n } else {\n logger.debug(`Treating content as plain text for file: ${originalFilename}`);\n extractedText = content;\n documentContentToStore = content;\n }\n }\n\n if (!extractedText || extractedText.trim() === \"\") {\n throw new Error(\n `No text content extracted from ${originalFilename} (type: ${contentType})`\n );\n }\n\n const documentMemory = createDocumentMemory({\n text: documentContentToStore,\n agentId,\n clientDocumentId,\n originalFilename,\n contentType,\n worldId,\n fileSize: fileBuffer ? fileBuffer.length : extractedText.length,\n documentId: clientDocumentId,\n customMetadata: metadata,\n });\n\n const memoryWithScope = {\n ...documentMemory,\n id: clientDocumentId,\n agentId: agentId,\n roomId: roomId || agentId,\n entityId: entityId || agentId,\n };\n\n await this.runtime.createMemory(memoryWithScope, \"documents\");\n\n const fragmentCount = await processFragmentsSynchronously({\n runtime: this.runtime,\n documentId: clientDocumentId,\n fullDocumentText: extractedText,\n agentId,\n contentType,\n roomId: roomId || agentId,\n entityId: entityId || agentId,\n worldId: worldId || agentId,\n documentTitle: originalFilename,\n });\n\n logger.debug(`\"${originalFilename}\" stored with ${fragmentCount} fragments`);\n\n return {\n clientDocumentId,\n storedDocumentMemoryId: memoryWithScope.id as UUID,\n fragmentCount,\n };\n } catch (error) {\n logger.error({ error }, `Error processing document ${originalFilename}`);\n throw error;\n }\n }\n\n async checkExistingKnowledge(knowledgeId: UUID): Promise<boolean> {\n const existingDocument = await this.runtime.getMemoryById(knowledgeId);\n return !!existingDocument;\n }\n\n async getKnowledge(\n message: Memory,\n scope?: { roomId?: UUID; worldId?: UUID; entityId?: UUID }\n ): Promise<StoredKnowledgeItem[]> {\n if (!message?.content?.text || message?.content?.text.trim().length === 0) {\n logger.warn(\"Invalid or empty message content for knowledge query\");\n return [];\n }\n\n const embedding = await this.runtime.useModel(ModelType.TEXT_EMBEDDING, {\n text: message.content.text,\n });\n\n const filterScope: { roomId?: UUID; worldId?: UUID; entityId?: UUID } = {};\n if (scope?.roomId) filterScope.roomId = scope.roomId;\n if (scope?.worldId) filterScope.worldId = scope.worldId;\n if (scope?.entityId) filterScope.entityId = scope.entityId;\n\n const fragments = await this.runtime.searchMemories({\n tableName: \"knowledge\",\n embedding,\n query: message.content.text,\n ...filterScope,\n count: 20,\n match_threshold: 0.1,\n });\n\n return fragments\n .filter((fragment) => fragment.id !== undefined)\n .map((fragment) => ({\n id: fragment.id as UUID,\n content: fragment.content as Content,\n similarity: fragment.similarity,\n metadata: fragment.metadata,\n worldId: fragment.worldId,\n })) as StoredKnowledgeItem[];\n }\n\n async enrichConversationMemoryWithRAG(\n memoryId: UUID,\n ragMetadata: {\n retrievedFragments: Array<{\n fragmentId: UUID;\n documentTitle: string;\n similarityScore?: number;\n contentPreview: string;\n }>;\n queryText: string;\n totalFragments: number;\n retrievalTimestamp: number;\n }\n ): Promise<void> {\n try {\n const existingMemory = await this.runtime.getMemoryById(memoryId);\n if (!existingMemory) {\n logger.warn(`Cannot enrich memory ${memoryId} - memory not found`);\n return;\n }\n\n const ragUsageData = {\n retrievedFragments: ragMetadata.retrievedFragments,\n queryText: ragMetadata.queryText,\n totalFragments: ragMetadata.totalFragments,\n retrievalTimestamp: ragMetadata.retrievalTimestamp,\n usedInResponse: true,\n };\n const updatedMetadata: CustomMetadata = {\n ...(existingMemory.metadata as CustomMetadata),\n knowledgeUsed: true,\n ragUsage: JSON.stringify(ragUsageData),\n timestamp: existingMemory.metadata?.timestamp ?? Date.now(),\n type: MemoryType.CUSTOM,\n };\n\n await this.runtime.updateMemory({\n id: memoryId,\n metadata: updatedMetadata,\n });\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n logger.warn(\n `Failed to enrich conversation memory ${memoryId} with RAG data: ${errorMessage}`\n );\n }\n }\n\n private pendingRAGEnrichment: Array<{\n ragMetadata: {\n retrievedFragments: Array<{\n fragmentId: UUID;\n documentTitle: string;\n similarityScore?: number;\n contentPreview: string;\n }>;\n queryText: string;\n totalFragments: number;\n retrievalTimestamp: number;\n };\n timestamp: number;\n }> = [];\n\n setPendingRAGMetadata(ragMetadata: {\n retrievedFragments: Array<{\n fragmentId: UUID;\n documentTitle: string;\n similarityScore?: number;\n contentPreview: string;\n }>;\n queryText: string;\n totalFragments: number;\n retrievalTimestamp: number;\n }): void {\n const now = Date.now();\n this.pendingRAGEnrichment = this.pendingRAGEnrichment.filter(\n (entry) => now - entry.timestamp < 30000\n );\n\n this.pendingRAGEnrichment.push({\n ragMetadata,\n timestamp: now,\n });\n }\n\n async enrichRecentMemoriesWithPendingRAG(): Promise<void> {\n if (this.pendingRAGEnrichment.length === 0) {\n return;\n }\n\n try {\n const recentMemories = await this.runtime.getMemories({\n tableName: \"messages\",\n count: 10,\n });\n\n const now = Date.now();\n const recentConversationMemories = recentMemories\n .filter(\n (memory) =>\n memory.metadata?.type === \"message\" &&\n now - (memory.createdAt || 0) < 10000 &&\n !(memory.metadata && \"ragUsage\" in memory.metadata && memory.metadata.ragUsage)\n )\n .sort((a, b) => (b.createdAt || 0) - (a.createdAt || 0));\n\n for (const pendingEntry of this.pendingRAGEnrichment) {\n const matchingMemory = recentConversationMemories.find(\n (memory) => (memory.createdAt || 0) > pendingEntry.timestamp\n );\n\n if (matchingMemory?.id) {\n await this.enrichConversationMemoryWithRAG(matchingMemory.id, pendingEntry.ragMetadata);\n\n const index = this.pendingRAGEnrichment.indexOf(pendingEntry);\n if (index > -1) {\n this.pendingRAGEnrichment.splice(index, 1);\n }\n }\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n logger.warn(`Error enriching recent memories with RAG data: ${errorMessage}`);\n }\n }\n\n async processCharacterKnowledge(items: string[]): Promise<void> {\n await new Promise((resolve) => setTimeout(resolve, 1000));\n logger.info(`Processing ${items.length} character knowledge items`);\n\n const processingPromises = items.map(async (item) => {\n await this.knowledgeProcessingSemaphore.acquire();\n try {\n const knowledgeId = generateContentBasedId(item, this.runtime.agentId, {\n maxChars: 2000,\n includeFilename: \"character-knowledge\",\n }) as UUID;\n\n if (await this.checkExistingKnowledge(knowledgeId)) {\n return;\n }\n\n let metadata: CustomMetadata = {\n type: MemoryType.CUSTOM,\n timestamp: Date.now(),\n source: \"character\",\n };\n\n const pathMatch = item.match(/^Path: (.+?)(?:\\n|\\r\\n)/);\n if (pathMatch) {\n const filePath = pathMatch[1].trim();\n const extension = filePath.split(\".\").pop() || \"\";\n const filename = filePath.split(\"/\").pop() || \"\";\n const title = filename.replace(`.${extension}`, \"\");\n metadata = {\n ...metadata,\n path: filePath,\n filename: filename,\n fileExt: extension,\n title: title,\n fileType: `text/${extension || \"plain\"}`,\n fileSize: item.length,\n };\n }\n\n await this._internalAddKnowledge(\n {\n id: knowledgeId,\n content: {\n text: item,\n } as Content,\n metadata,\n },\n undefined,\n {\n roomId: this.runtime.agentId,\n entityId: this.runtime.agentId,\n worldId: this.runtime.agentId,\n }\n );\n } catch (error) {\n logger.error({ error }, \"Error processing character knowledge\");\n } finally {\n this.knowledgeProcessingSemaphore.release();\n }\n });\n\n await Promise.all(processingPromises);\n }\n\n async _internalAddKnowledge(\n item: StoredKnowledgeItem,\n options = {\n targetTokens: 1500,\n overlap: 200,\n modelContextSize: 4096,\n },\n scope = {\n roomId: this.runtime.agentId,\n entityId: this.runtime.agentId,\n worldId: this.runtime.agentId,\n }\n ): Promise<void> {\n const finalScope = {\n roomId: scope?.roomId ?? this.runtime.agentId,\n worldId: scope?.worldId ?? this.runtime.agentId,\n entityId: scope?.entityId ?? this.runtime.agentId,\n };\n\n const documentMetadata = {\n ...(item.metadata ?? {}),\n type: MemoryType.CUSTOM,\n documentId: item.id,\n };\n\n const documentMemory: Memory = {\n id: item.id,\n agentId: this.runtime.agentId,\n roomId: finalScope.roomId,\n worldId: finalScope.worldId,\n entityId: finalScope.entityId,\n content: item.content as unknown as Content,\n metadata: documentMetadata as unknown as MemoryMetadata,\n createdAt: Date.now(),\n };\n\n const existingDocument = await this.runtime.getMemoryById(item.id);\n if (existingDocument) {\n await this.runtime.updateMemory({\n ...documentMemory,\n id: item.id,\n });\n } else {\n await this.runtime.createMemory(documentMemory, \"documents\");\n }\n\n const fragments = await this.splitAndCreateFragments(\n item,\n options.targetTokens,\n options.overlap,\n finalScope\n );\n\n for (const fragment of fragments) {\n try {\n await this.processDocumentFragment(fragment);\n } catch (error) {\n logger.error(\n { error },\n `KnowledgeService: Error processing fragment ${fragment.id} for document ${item.id}`\n );\n }\n }\n }\n\n private async processDocumentFragment(fragment: Memory): Promise<void> {\n try {\n await this.runtime.addEmbeddingToMemory(fragment);\n\n await this.runtime.createMemory(fragment, \"knowledge\");\n } catch (error) {\n logger.error({ error }, `Error processing fragment ${fragment.id}`);\n throw error;\n }\n }\n\n private async splitAndCreateFragments(\n document: StoredKnowledgeItem,\n targetTokens: number,\n overlap: number,\n scope: { roomId: UUID; worldId: UUID; entityId: UUID }\n ): Promise<Memory[]> {\n if (!document.content.text) {\n return [];\n }\n\n const text = document.content.text;\n const chunks = await splitChunks(text, targetTokens, overlap);\n\n return chunks.map((chunk, index) => {\n const fragmentIdContent = `${document.id}-fragment-${index}-${Date.now()}`;\n const fragmentId = createUniqueUuid(this.runtime, fragmentIdContent);\n\n return {\n id: fragmentId,\n entityId: scope.entityId,\n agentId: this.runtime.agentId,\n roomId: scope.roomId,\n worldId: scope.worldId,\n content: {\n text: chunk,\n },\n metadata: {\n ...(document.metadata || {}),\n type: MemoryType.FRAGMENT,\n documentId: document.id,\n position: index,\n timestamp: Date.now(),\n },\n createdAt: Date.now(),\n };\n });\n }\n\n async getMemories(params: {\n tableName: string;\n roomId?: UUID;\n count?: number;\n offset?: number;\n end?: number;\n }): Promise<Memory[]> {\n return this.runtime.getMemories({\n ...params,\n agentId: this.runtime.agentId,\n });\n }\n\n async countMemories(params: {\n tableName: string;\n roomId?: UUID;\n unique?: boolean;\n }): Promise<number> {\n const roomId = params.roomId || this.runtime.agentId;\n const unique = params.unique ?? false;\n const tableName = params.tableName;\n\n return this.runtime.countMemories(roomId, unique, tableName);\n }\n\n async deleteMemory(memoryId: UUID): Promise<void> {\n await this.runtime.deleteMemory(memoryId);\n }\n}\n",
6
+ "import {\n type Content,\n type CustomMetadata,\n createUniqueUuid,\n type FragmentMetadata,\n type IAgentRuntime,\n logger,\n type Memory,\n type MemoryMetadata,\n MemoryType,\n type Metadata,\n ModelType,\n Semaphore,\n Service,\n splitChunks,\n type UUID,\n} from \"@elizaos/core\";\nimport { validateModelConfig } from \"./config\";\nimport { loadDocsFromPath } from \"./docs-loader\";\nimport {\n createDocumentMemory,\n extractTextFromDocument,\n processFragmentsSynchronously,\n} from \"./document-processor.ts\";\nimport type { KnowledgeConfig, LoadResult, StoredKnowledgeItem } from \"./types\";\nimport type { AddKnowledgeOptions } from \"./types.ts\";\nimport { generateContentBasedId, isBinaryContentType, looksLikeBase64 } from \"./utils.ts\";\n\nexport class KnowledgeService extends Service {\n static readonly serviceType = \"knowledge\";\n public override config: Metadata = {};\n capabilityDescription =\n \"Provides Retrieval Augmented Generation capabilities, including knowledge upload and querying.\";\n\n private knowledgeProcessingSemaphore: Semaphore;\n\n constructor(runtime: IAgentRuntime, _config?: Partial<KnowledgeConfig>) {\n super(runtime);\n this.knowledgeProcessingSemaphore = new Semaphore(10);\n }\n\n private async loadInitialDocuments(): Promise<void> {\n logger.info(`Loading documents on startup for agent ${this.runtime.agentId}`);\n try {\n await new Promise((resolve) => setTimeout(resolve, 1000));\n\n const knowledgePathSetting = this.runtime.getSetting(\"KNOWLEDGE_PATH\");\n const knowledgePath =\n typeof knowledgePathSetting === \"string\" ? knowledgePathSetting : undefined;\n\n const result: LoadResult = await loadDocsFromPath(\n this as KnowledgeService,\n this.runtime.agentId,\n undefined,\n knowledgePath\n );\n\n if (result.successful > 0) {\n logger.info(`Loaded ${result.successful} documents on startup`);\n }\n } catch (error) {\n logger.error({ error }, \"Error loading documents on startup\");\n }\n }\n\n static async start(runtime: IAgentRuntime): Promise<KnowledgeService> {\n logger.info(`Starting Knowledge service for agent: ${runtime.agentId}`);\n\n const validatedConfig = validateModelConfig(runtime);\n const ctxEnabled = validatedConfig.CTX_KNOWLEDGE_ENABLED;\n\n if (ctxEnabled) {\n logger.info(\n `Contextual Knowledge enabled: ${validatedConfig.EMBEDDING_PROVIDER || \"auto\"} embeddings, ${validatedConfig.TEXT_PROVIDER} text generation`\n );\n logger.info(`Text model: ${validatedConfig.TEXT_MODEL}`);\n } else {\n const usingPluginOpenAI = !process.env.EMBEDDING_PROVIDER;\n logger.info(\"Basic Embedding mode - documents will not be enriched with context\");\n logger.info(\n \"To enable contextual enrichment: Set CTX_KNOWLEDGE_ENABLED=true and configure TEXT_PROVIDER/TEXT_MODEL\"\n );\n\n if (usingPluginOpenAI) {\n logger.info(\"Using plugin-openai configuration for embeddings\");\n } else {\n logger.info(\n `Using ${validatedConfig.EMBEDDING_PROVIDER} for embeddings with ${validatedConfig.TEXT_EMBEDDING_MODEL}`\n );\n }\n }\n\n const service = new KnowledgeService(runtime);\n service.config = validatedConfig;\n\n if (service.config.LOAD_DOCS_ON_STARTUP) {\n service.loadInitialDocuments().catch((error) => {\n logger.error({ error }, \"Error loading initial documents\");\n });\n }\n\n if (service.runtime.character?.knowledge && service.runtime.character.knowledge.length > 0) {\n const stringKnowledge = service.runtime.character.knowledge\n .map((item) => {\n // Handle new KnowledgeSourceItem format with item.case/item.value\n const itemAny = item as { item?: { case?: string; value?: string }; path?: string };\n if (itemAny?.item?.case === \"path\" && typeof itemAny.item.value === \"string\") {\n return itemAny.item.value;\n }\n // Handle legacy format with direct path property\n if (typeof itemAny?.path === \"string\") {\n return itemAny.path;\n }\n // Handle string items directly\n if (typeof item === \"string\") {\n return item;\n }\n return null;\n })\n .filter((item): item is string => item !== null);\n await service.processCharacterKnowledge(stringKnowledge).catch((err) => {\n logger.error({ error: err }, \"Error processing character knowledge\");\n });\n }\n\n return service;\n }\n\n static async stop(runtime: IAgentRuntime): Promise<void> {\n logger.info(`Stopping Knowledge service for agent: ${runtime.agentId}`);\n const service = runtime.getService(KnowledgeService.serviceType);\n if (!service) {\n logger.warn(`KnowledgeService not found for agent ${runtime.agentId} during stop.`);\n }\n if (service instanceof KnowledgeService) {\n await service.stop();\n }\n }\n\n async stop(): Promise<void> {\n logger.info(`Knowledge service stopping for agent: ${this.runtime.character?.name}`);\n }\n\n async addKnowledge(options: AddKnowledgeOptions): Promise<{\n clientDocumentId: string;\n storedDocumentMemoryId: UUID;\n fragmentCount: number;\n }> {\n const agentId = options.agentId || (this.runtime.agentId as UUID);\n\n const contentBasedId = generateContentBasedId(options.content, agentId, {\n includeFilename: options.originalFilename,\n contentType: options.contentType,\n maxChars: 2000,\n }) as UUID;\n\n logger.info(`Processing \"${options.originalFilename}\" (${options.contentType})`);\n\n try {\n const existingDocument = await this.runtime.getMemoryById(contentBasedId);\n if (existingDocument && existingDocument.metadata?.type === MemoryType.DOCUMENT) {\n logger.info(`\"${options.originalFilename}\" already exists - skipping`);\n\n const fragments = await this.runtime.getMemories({\n tableName: \"knowledge\",\n });\n\n const relatedFragments = fragments.filter(\n (f) =>\n f.metadata?.type === MemoryType.FRAGMENT &&\n (f.metadata as FragmentMetadata).documentId === contentBasedId\n );\n\n return {\n clientDocumentId: contentBasedId,\n storedDocumentMemoryId: existingDocument.id as UUID,\n fragmentCount: relatedFragments.length,\n };\n }\n } catch (error) {\n logger.debug(\n `Document ${contentBasedId} not found or error checking existence, proceeding with processing: ${error instanceof Error ? error.message : String(error)}`\n );\n }\n\n return this.processDocument({\n ...options,\n clientDocumentId: contentBasedId,\n });\n }\n\n private async processDocument({\n agentId: passedAgentId,\n clientDocumentId,\n contentType,\n originalFilename,\n worldId,\n content,\n roomId,\n entityId,\n metadata,\n }: AddKnowledgeOptions): Promise<{\n clientDocumentId: string;\n storedDocumentMemoryId: UUID;\n fragmentCount: number;\n }> {\n const agentId = passedAgentId || (this.runtime.agentId as UUID);\n\n try {\n logger.debug(\n `Processing document ${originalFilename} (type: ${contentType}) for agent: ${agentId}`\n );\n\n let fileBuffer: Buffer | null = null;\n let extractedText: string;\n let documentContentToStore: string;\n const isPdfFile =\n contentType === \"application/pdf\" || originalFilename.toLowerCase().endsWith(\".pdf\");\n\n if (isPdfFile) {\n try {\n fileBuffer = Buffer.from(content, \"base64\");\n } catch (e) {\n logger.error({ error: e }, `Failed to convert base64 to buffer for ${originalFilename}`);\n throw new Error(`Invalid base64 content for PDF file ${originalFilename}`);\n }\n extractedText = await extractTextFromDocument(fileBuffer, contentType, originalFilename);\n documentContentToStore = content;\n } else if (isBinaryContentType(contentType, originalFilename)) {\n try {\n fileBuffer = Buffer.from(content, \"base64\");\n } catch (e) {\n logger.error({ error: e }, `Failed to convert base64 to buffer for ${originalFilename}`);\n throw new Error(`Invalid base64 content for binary file ${originalFilename}`);\n }\n extractedText = await extractTextFromDocument(fileBuffer, contentType, originalFilename);\n documentContentToStore = extractedText;\n } else {\n if (looksLikeBase64(content)) {\n try {\n const decodedBuffer = Buffer.from(content, \"base64\");\n const decodedText = decodedBuffer.toString(\"utf8\");\n\n const invalidCharCount = (decodedText.match(/\\ufffd/g) || []).length;\n const textLength = decodedText.length;\n\n if (invalidCharCount > 0 && invalidCharCount / textLength > 0.1) {\n throw new Error(\"Decoded content contains too many invalid characters\");\n }\n\n logger.debug(`Successfully decoded base64 content for text file: ${originalFilename}`);\n extractedText = decodedText;\n documentContentToStore = decodedText;\n } catch (e) {\n logger.error(\n { error: e instanceof Error ? e : new Error(String(e)) },\n `Failed to decode base64 for ${originalFilename}`\n );\n throw new Error(\n `File ${originalFilename} appears to be corrupted or incorrectly encoded`\n );\n }\n } else {\n logger.debug(`Treating content as plain text for file: ${originalFilename}`);\n extractedText = content;\n documentContentToStore = content;\n }\n }\n\n if (!extractedText || extractedText.trim() === \"\") {\n throw new Error(\n `No text content extracted from ${originalFilename} (type: ${contentType})`\n );\n }\n\n const documentMemory = createDocumentMemory({\n text: documentContentToStore,\n agentId,\n clientDocumentId,\n originalFilename,\n contentType,\n worldId,\n fileSize: fileBuffer ? fileBuffer.length : extractedText.length,\n documentId: clientDocumentId,\n customMetadata: metadata,\n });\n\n const memoryWithScope = {\n ...documentMemory,\n id: clientDocumentId,\n agentId: agentId,\n roomId: roomId || agentId,\n entityId: entityId || agentId,\n };\n\n await this.runtime.createMemory(memoryWithScope, \"documents\");\n\n const fragmentCount = await processFragmentsSynchronously({\n runtime: this.runtime,\n documentId: clientDocumentId,\n fullDocumentText: extractedText,\n agentId,\n contentType,\n roomId: roomId || agentId,\n entityId: entityId || agentId,\n worldId: worldId || agentId,\n documentTitle: originalFilename,\n });\n\n logger.debug(`\"${originalFilename}\" stored with ${fragmentCount} fragments`);\n\n return {\n clientDocumentId,\n storedDocumentMemoryId: memoryWithScope.id as UUID,\n fragmentCount,\n };\n } catch (error) {\n logger.error({ error }, `Error processing document ${originalFilename}`);\n throw error;\n }\n }\n\n async checkExistingKnowledge(knowledgeId: UUID): Promise<boolean> {\n const existingDocument = await this.runtime.getMemoryById(knowledgeId);\n return !!existingDocument;\n }\n\n async getKnowledge(\n message: Memory,\n scope?: { roomId?: UUID; worldId?: UUID; entityId?: UUID }\n ): Promise<StoredKnowledgeItem[]> {\n if (!message?.content?.text || message?.content?.text.trim().length === 0) {\n logger.warn(\"Invalid or empty message content for knowledge query\");\n return [];\n }\n\n const embedding = await this.runtime.useModel(ModelType.TEXT_EMBEDDING, {\n text: message.content.text,\n });\n\n const filterScope: { roomId?: UUID; worldId?: UUID; entityId?: UUID } = {};\n if (scope?.roomId) filterScope.roomId = scope.roomId;\n if (scope?.worldId) filterScope.worldId = scope.worldId;\n if (scope?.entityId) filterScope.entityId = scope.entityId;\n\n const fragments = await this.runtime.searchMemories({\n tableName: \"knowledge\",\n embedding,\n query: message.content.text,\n ...filterScope,\n count: 20,\n match_threshold: 0.1,\n });\n\n return fragments\n .filter((fragment) => fragment.id !== undefined)\n .map((fragment) => ({\n id: fragment.id as UUID,\n content: fragment.content as Content,\n similarity: fragment.similarity,\n metadata: fragment.metadata,\n worldId: fragment.worldId,\n })) as StoredKnowledgeItem[];\n }\n\n async enrichConversationMemoryWithRAG(\n memoryId: UUID,\n ragMetadata: {\n retrievedFragments: Array<{\n fragmentId: UUID;\n documentTitle: string;\n similarityScore?: number;\n contentPreview: string;\n }>;\n queryText: string;\n totalFragments: number;\n retrievalTimestamp: number;\n }\n ): Promise<void> {\n try {\n const existingMemory = await this.runtime.getMemoryById(memoryId);\n if (!existingMemory) {\n logger.warn(`Cannot enrich memory ${memoryId} - memory not found`);\n return;\n }\n\n const ragUsageData = {\n retrievedFragments: ragMetadata.retrievedFragments,\n queryText: ragMetadata.queryText,\n totalFragments: ragMetadata.totalFragments,\n retrievalTimestamp: ragMetadata.retrievalTimestamp,\n usedInResponse: true,\n };\n const updatedMetadata: CustomMetadata = {\n ...(existingMemory.metadata as CustomMetadata),\n knowledgeUsed: true,\n ragUsage: JSON.stringify(ragUsageData),\n timestamp: existingMemory.metadata?.timestamp ?? Date.now(),\n type: MemoryType.CUSTOM,\n };\n\n await this.runtime.updateMemory({\n id: memoryId,\n metadata: updatedMetadata,\n });\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n logger.warn(\n `Failed to enrich conversation memory ${memoryId} with RAG data: ${errorMessage}`\n );\n }\n }\n\n private pendingRAGEnrichment: Array<{\n ragMetadata: {\n retrievedFragments: Array<{\n fragmentId: UUID;\n documentTitle: string;\n similarityScore?: number;\n contentPreview: string;\n }>;\n queryText: string;\n totalFragments: number;\n retrievalTimestamp: number;\n };\n timestamp: number;\n }> = [];\n\n setPendingRAGMetadata(ragMetadata: {\n retrievedFragments: Array<{\n fragmentId: UUID;\n documentTitle: string;\n similarityScore?: number;\n contentPreview: string;\n }>;\n queryText: string;\n totalFragments: number;\n retrievalTimestamp: number;\n }): void {\n const now = Date.now();\n this.pendingRAGEnrichment = this.pendingRAGEnrichment.filter(\n (entry) => now - entry.timestamp < 30000\n );\n\n this.pendingRAGEnrichment.push({\n ragMetadata,\n timestamp: now,\n });\n }\n\n async enrichRecentMemoriesWithPendingRAG(): Promise<void> {\n if (this.pendingRAGEnrichment.length === 0) {\n return;\n }\n\n try {\n const recentMemories = await this.runtime.getMemories({\n tableName: \"messages\",\n count: 10,\n });\n\n const now = Date.now();\n const recentConversationMemories = recentMemories\n .filter(\n (memory) =>\n memory.metadata?.type === \"message\" &&\n now - (memory.createdAt || 0) < 10000 &&\n !(memory.metadata && \"ragUsage\" in memory.metadata && memory.metadata.ragUsage)\n )\n .sort((a, b) => (b.createdAt || 0) - (a.createdAt || 0));\n\n for (const pendingEntry of this.pendingRAGEnrichment) {\n const matchingMemory = recentConversationMemories.find(\n (memory) => (memory.createdAt || 0) > pendingEntry.timestamp\n );\n\n if (matchingMemory?.id) {\n await this.enrichConversationMemoryWithRAG(matchingMemory.id, pendingEntry.ragMetadata);\n\n const index = this.pendingRAGEnrichment.indexOf(pendingEntry);\n if (index > -1) {\n this.pendingRAGEnrichment.splice(index, 1);\n }\n }\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n logger.warn(`Error enriching recent memories with RAG data: ${errorMessage}`);\n }\n }\n\n async processCharacterKnowledge(items: string[]): Promise<void> {\n await new Promise((resolve) => setTimeout(resolve, 1000));\n logger.info(`Processing ${items.length} character knowledge items`);\n\n const processingPromises = items.map(async (item) => {\n await this.knowledgeProcessingSemaphore.acquire();\n try {\n const knowledgeId = generateContentBasedId(item, this.runtime.agentId, {\n maxChars: 2000,\n includeFilename: \"character-knowledge\",\n }) as UUID;\n\n if (await this.checkExistingKnowledge(knowledgeId)) {\n return;\n }\n\n let metadata: CustomMetadata = {\n type: MemoryType.CUSTOM,\n timestamp: Date.now(),\n source: \"character\",\n };\n\n const pathMatch = item.match(/^Path: (.+?)(?:\\n|\\r\\n)/);\n if (pathMatch) {\n const filePath = pathMatch[1].trim();\n const extension = filePath.split(\".\").pop() || \"\";\n const filename = filePath.split(\"/\").pop() || \"\";\n const title = filename.replace(`.${extension}`, \"\");\n metadata = {\n ...metadata,\n path: filePath,\n filename: filename,\n fileExt: extension,\n title: title,\n fileType: `text/${extension || \"plain\"}`,\n fileSize: item.length,\n };\n }\n\n await this._internalAddKnowledge(\n {\n id: knowledgeId,\n content: {\n text: item,\n } as Content,\n metadata,\n },\n undefined,\n {\n roomId: this.runtime.agentId,\n entityId: this.runtime.agentId,\n worldId: this.runtime.agentId,\n }\n );\n } catch (error) {\n logger.error({ error }, \"Error processing character knowledge\");\n } finally {\n this.knowledgeProcessingSemaphore.release();\n }\n });\n\n await Promise.all(processingPromises);\n }\n\n async _internalAddKnowledge(\n item: StoredKnowledgeItem,\n options = {\n targetTokens: 1500,\n overlap: 200,\n modelContextSize: 4096,\n },\n scope = {\n roomId: this.runtime.agentId,\n entityId: this.runtime.agentId,\n worldId: this.runtime.agentId,\n }\n ): Promise<void> {\n const finalScope = {\n roomId: scope?.roomId ?? this.runtime.agentId,\n worldId: scope?.worldId ?? this.runtime.agentId,\n entityId: scope?.entityId ?? this.runtime.agentId,\n };\n\n const documentMetadata = {\n ...(item.metadata ?? {}),\n type: MemoryType.CUSTOM,\n documentId: item.id,\n };\n\n const documentMemory: Memory = {\n id: item.id,\n agentId: this.runtime.agentId,\n roomId: finalScope.roomId,\n worldId: finalScope.worldId,\n entityId: finalScope.entityId,\n content: item.content as unknown as Content,\n metadata: documentMetadata as unknown as MemoryMetadata,\n createdAt: Date.now(),\n };\n\n const existingDocument = await this.runtime.getMemoryById(item.id);\n if (existingDocument) {\n await this.runtime.updateMemory({\n ...documentMemory,\n id: item.id,\n });\n } else {\n await this.runtime.createMemory(documentMemory, \"documents\");\n }\n\n const fragments = await this.splitAndCreateFragments(\n item,\n options.targetTokens,\n options.overlap,\n finalScope\n );\n\n for (const fragment of fragments) {\n try {\n await this.processDocumentFragment(fragment);\n } catch (error) {\n logger.error(\n { error },\n `KnowledgeService: Error processing fragment ${fragment.id} for document ${item.id}`\n );\n }\n }\n }\n\n private async processDocumentFragment(fragment: Memory): Promise<void> {\n try {\n await this.runtime.addEmbeddingToMemory(fragment);\n\n await this.runtime.createMemory(fragment, \"knowledge\");\n } catch (error) {\n logger.error({ error }, `Error processing fragment ${fragment.id}`);\n throw error;\n }\n }\n\n private async splitAndCreateFragments(\n document: StoredKnowledgeItem,\n targetTokens: number,\n overlap: number,\n scope: { roomId: UUID; worldId: UUID; entityId: UUID }\n ): Promise<Memory[]> {\n if (!document.content.text) {\n return [];\n }\n\n const text = document.content.text;\n const chunks = await splitChunks(text, targetTokens, overlap);\n\n return chunks.map((chunk, index) => {\n const fragmentIdContent = `${document.id}-fragment-${index}-${Date.now()}`;\n const fragmentId = createUniqueUuid(this.runtime, fragmentIdContent);\n\n return {\n id: fragmentId,\n entityId: scope.entityId,\n agentId: this.runtime.agentId,\n roomId: scope.roomId,\n worldId: scope.worldId,\n content: {\n text: chunk,\n },\n metadata: {\n ...(document.metadata || {}),\n type: MemoryType.FRAGMENT,\n documentId: document.id,\n position: index,\n timestamp: Date.now(),\n },\n createdAt: Date.now(),\n };\n });\n }\n\n async getMemories(params: {\n tableName: string;\n roomId?: UUID;\n count?: number;\n offset?: number;\n end?: number;\n }): Promise<Memory[]> {\n return this.runtime.getMemories({\n ...params,\n agentId: this.runtime.agentId,\n });\n }\n\n async countMemories(params: {\n tableName: string;\n roomId?: UUID;\n unique?: boolean;\n }): Promise<number> {\n const roomId = params.roomId || this.runtime.agentId;\n const unique = params.unique ?? false;\n const tableName = params.tableName;\n\n return this.runtime.countMemories(roomId, unique, tableName);\n }\n\n async deleteMemory(memoryId: UUID): Promise<void> {\n await this.runtime.deleteMemory(memoryId);\n }\n}\n",
7
7
  "import type { IAgentRuntime } from \"@elizaos/core\";\nimport z from \"zod\";\nimport { type ModelConfig, ModelConfigSchema, type ProviderRateLimits } from \"./types.ts\";\n\nconst parseBooleanEnv = (value: string | boolean | number | undefined): boolean => {\n if (typeof value === \"boolean\") return value;\n if (typeof value === \"number\") return value !== 0;\n if (typeof value === \"string\") return value.toLowerCase() === \"true\";\n return false;\n};\n\nexport function validateModelConfig(runtime?: IAgentRuntime): ModelConfig {\n try {\n const getSetting = (key: string, defaultValue?: string) => {\n if (runtime) {\n return runtime.getSetting(key) || process.env[key] || defaultValue;\n }\n return process.env[key] || defaultValue;\n };\n\n const ctxKnowledgeEnabled = parseBooleanEnv(getSetting(\"CTX_KNOWLEDGE_ENABLED\", \"false\"));\n const embeddingProvider = getSetting(\"EMBEDDING_PROVIDER\");\n const assumePluginOpenAI = !embeddingProvider;\n\n const textEmbeddingModel =\n getSetting(\"TEXT_EMBEDDING_MODEL\") ||\n getSetting(\"OPENAI_EMBEDDING_MODEL\") ||\n \"text-embedding-3-small\";\n const embeddingDimension =\n getSetting(\"EMBEDDING_DIMENSION\") || getSetting(\"OPENAI_EMBEDDING_DIMENSIONS\") || \"1536\";\n\n const openaiApiKey = getSetting(\"OPENAI_API_KEY\");\n\n const config = ModelConfigSchema.parse({\n EMBEDDING_PROVIDER: embeddingProvider,\n TEXT_PROVIDER: getSetting(\"TEXT_PROVIDER\"),\n\n OPENAI_API_KEY: openaiApiKey,\n ANTHROPIC_API_KEY: getSetting(\"ANTHROPIC_API_KEY\"),\n OPENROUTER_API_KEY: getSetting(\"OPENROUTER_API_KEY\"),\n GOOGLE_API_KEY: getSetting(\"GOOGLE_API_KEY\"),\n\n OPENAI_BASE_URL: getSetting(\"OPENAI_BASE_URL\"),\n ANTHROPIC_BASE_URL: getSetting(\"ANTHROPIC_BASE_URL\"),\n OPENROUTER_BASE_URL: getSetting(\"OPENROUTER_BASE_URL\"),\n GOOGLE_BASE_URL: getSetting(\"GOOGLE_BASE_URL\"),\n\n TEXT_EMBEDDING_MODEL: textEmbeddingModel,\n TEXT_MODEL: getSetting(\"TEXT_MODEL\"),\n\n MAX_INPUT_TOKENS: getSetting(\"MAX_INPUT_TOKENS\", \"4000\"),\n MAX_OUTPUT_TOKENS: getSetting(\"MAX_OUTPUT_TOKENS\", \"4096\"),\n\n EMBEDDING_DIMENSION: embeddingDimension,\n\n LOAD_DOCS_ON_STARTUP: parseBooleanEnv(getSetting(\"LOAD_DOCS_ON_STARTUP\")),\n CTX_KNOWLEDGE_ENABLED: ctxKnowledgeEnabled,\n\n RATE_LIMIT_ENABLED: parseBooleanEnv(getSetting(\"RATE_LIMIT_ENABLED\", \"true\")),\n MAX_CONCURRENT_REQUESTS: getSetting(\"MAX_CONCURRENT_REQUESTS\", \"100\"),\n REQUESTS_PER_MINUTE: getSetting(\"REQUESTS_PER_MINUTE\", \"500\"),\n TOKENS_PER_MINUTE: getSetting(\"TOKENS_PER_MINUTE\", \"1000000\"),\n BATCH_DELAY_MS: getSetting(\"BATCH_DELAY_MS\", \"100\"),\n });\n validateConfigRequirements(config, assumePluginOpenAI);\n return config;\n } catch (error) {\n if (error instanceof z.ZodError) {\n const issues = error.issues\n .map((issue) => `${issue.path.join(\".\")}: ${issue.message}`)\n .join(\", \");\n throw new Error(`Model configuration validation failed: ${issues}`);\n }\n throw error;\n }\n}\n\nfunction validateConfigRequirements(config: ModelConfig, assumePluginOpenAI: boolean): void {\n const embeddingProvider = config.EMBEDDING_PROVIDER;\n\n if (embeddingProvider === \"openai\" && !config.OPENAI_API_KEY) {\n throw new Error('OPENAI_API_KEY is required when EMBEDDING_PROVIDER is set to \"openai\"');\n }\n if (embeddingProvider === \"google\" && !config.GOOGLE_API_KEY) {\n throw new Error('GOOGLE_API_KEY is required when EMBEDDING_PROVIDER is set to \"google\"');\n }\n\n if (assumePluginOpenAI && config.OPENAI_API_KEY && !config.TEXT_EMBEDDING_MODEL) {\n throw new Error(\"OPENAI_EMBEDDING_MODEL is required when using plugin-openai configuration\");\n }\n\n if (config.CTX_KNOWLEDGE_ENABLED) {\n if (config.TEXT_PROVIDER === \"openai\" && !config.OPENAI_API_KEY) {\n throw new Error('OPENAI_API_KEY is required when TEXT_PROVIDER is set to \"openai\"');\n }\n if (config.TEXT_PROVIDER === \"anthropic\" && !config.ANTHROPIC_API_KEY) {\n throw new Error('ANTHROPIC_API_KEY is required when TEXT_PROVIDER is set to \"anthropic\"');\n }\n if (config.TEXT_PROVIDER === \"openrouter\" && !config.OPENROUTER_API_KEY) {\n throw new Error('OPENROUTER_API_KEY is required when TEXT_PROVIDER is set to \"openrouter\"');\n }\n if (config.TEXT_PROVIDER === \"google\" && !config.GOOGLE_API_KEY) {\n throw new Error('GOOGLE_API_KEY is required when TEXT_PROVIDER is set to \"google\"');\n }\n }\n}\n\nexport async function getProviderRateLimits(runtime?: IAgentRuntime): Promise<ProviderRateLimits> {\n const config = validateModelConfig(runtime);\n\n const rateLimitEnabled = config.RATE_LIMIT_ENABLED;\n const maxConcurrentRequests = config.MAX_CONCURRENT_REQUESTS;\n const requestsPerMinute = config.REQUESTS_PER_MINUTE;\n const tokensPerMinute = config.TOKENS_PER_MINUTE;\n const batchDelayMs = config.BATCH_DELAY_MS;\n\n const primaryProvider = config.TEXT_PROVIDER || config.EMBEDDING_PROVIDER;\n\n if (!rateLimitEnabled) {\n return {\n maxConcurrentRequests,\n requestsPerMinute: Number.MAX_SAFE_INTEGER,\n tokensPerMinute: Number.MAX_SAFE_INTEGER,\n provider: primaryProvider || \"unlimited\",\n rateLimitEnabled: false,\n batchDelayMs,\n };\n }\n\n return {\n maxConcurrentRequests,\n requestsPerMinute,\n tokensPerMinute,\n provider: primaryProvider || \"unlimited\",\n rateLimitEnabled: true,\n batchDelayMs,\n };\n}\n",
8
8
  "import type { Content, UUID } from \"@elizaos/core\";\nimport z from \"zod\";\n\n/**\n * Local metadata type for stored knowledge items.\n * Uses a permissive record type to avoid conflicts between TypeScript and protobuf MemoryMetadata types.\n */\nexport type StoredKnowledgeMetadata = Record<string, unknown>;\n\n/**\n * Stored knowledge item with content, metadata, and optional similarity score.\n * Used for knowledge retrieval results and internal knowledge processing.\n * This is a local definition to avoid conflicts with the proto KnowledgeItem type.\n */\nexport interface StoredKnowledgeItem {\n id: UUID;\n content: Content;\n metadata?: StoredKnowledgeMetadata;\n worldId?: UUID;\n similarity?: number;\n}\n\nexport const ModelConfigSchema = z.object({\n EMBEDDING_PROVIDER: z.enum([\"openai\", \"google\"]).optional(),\n TEXT_PROVIDER: z.enum([\"openai\", \"anthropic\", \"openrouter\", \"google\"]).optional(),\n\n OPENAI_API_KEY: z.string().optional(),\n ANTHROPIC_API_KEY: z.string().optional(),\n OPENROUTER_API_KEY: z.string().optional(),\n GOOGLE_API_KEY: z.string().optional(),\n\n OPENAI_BASE_URL: z.string().optional(),\n ANTHROPIC_BASE_URL: z.string().optional(),\n OPENROUTER_BASE_URL: z.string().optional(),\n GOOGLE_BASE_URL: z.string().optional(),\n\n TEXT_EMBEDDING_MODEL: z.string(),\n TEXT_MODEL: z.string().optional(),\n\n MAX_INPUT_TOKENS: z\n .string()\n .or(z.number())\n .transform((val) => (typeof val === \"string\" ? parseInt(val, 10) : val)),\n MAX_OUTPUT_TOKENS: z\n .string()\n .or(z.number())\n .optional()\n .transform((val) => (val ? (typeof val === \"string\" ? parseInt(val, 10) : val) : 4096)),\n\n EMBEDDING_DIMENSION: z\n .string()\n .or(z.number())\n .optional()\n .transform((val) => (val ? (typeof val === \"string\" ? parseInt(val, 10) : val) : 1536)),\n\n LOAD_DOCS_ON_STARTUP: z.boolean().default(false),\n\n CTX_KNOWLEDGE_ENABLED: z.boolean().default(false),\n\n RATE_LIMIT_ENABLED: z.boolean().default(true),\n\n MAX_CONCURRENT_REQUESTS: z\n .string()\n .or(z.number())\n .optional()\n .transform((val) => (val ? (typeof val === \"string\" ? parseInt(val, 10) : val) : 150)),\n\n REQUESTS_PER_MINUTE: z\n .string()\n .or(z.number())\n .optional()\n .transform((val) => (val ? (typeof val === \"string\" ? parseInt(val, 10) : val) : 300)),\n\n TOKENS_PER_MINUTE: z\n .string()\n .or(z.number())\n .optional()\n .transform((val) => (val ? (typeof val === \"string\" ? parseInt(val, 10) : val) : 750000)),\n\n BATCH_DELAY_MS: z\n .string()\n .or(z.number())\n .optional()\n .transform((val) => (val ? (typeof val === \"string\" ? parseInt(val, 10) : val) : 100)),\n});\n\nexport type ModelConfig = z.infer<typeof ModelConfigSchema>;\n\nexport interface ProviderRateLimits {\n maxConcurrentRequests: number;\n requestsPerMinute: number;\n tokensPerMinute?: number;\n provider: string;\n rateLimitEnabled: boolean;\n batchDelayMs: number;\n}\n\nexport interface TextGenerationOptions {\n provider?: \"anthropic\" | \"openai\" | \"openrouter\" | \"google\";\n modelName?: string;\n maxTokens?: number;\n cacheDocument?: string;\n cacheOptions?: {\n type: \"ephemeral\";\n };\n autoCacheContextualRetrieval?: boolean;\n}\n\nexport interface AddKnowledgeOptions {\n agentId?: UUID;\n worldId: UUID;\n roomId: UUID;\n entityId: UUID;\n clientDocumentId: UUID;\n contentType: string;\n originalFilename: string;\n content: string;\n metadata?: Record<string, unknown>;\n}\n\ndeclare module \"@elizaos/core\" {\n interface ServiceTypeRegistry {\n KNOWLEDGE: \"knowledge\";\n }\n}\n\nexport const KnowledgeServiceType = {\n KNOWLEDGE: \"knowledge\" as const,\n} satisfies Partial<import(\"@elizaos/core\").ServiceTypeRegistry>;\n\nexport interface KnowledgeDocumentMetadata extends Record<string, unknown> {\n type: string; // e.g., 'document', 'website_content'\n source: string; // e.g., 'upload', 'web_scrape', path to file\n title?: string;\n filename?: string;\n fileExt?: string;\n fileType?: string; // MIME type\n fileSize?: number;\n}\n\nexport interface KnowledgeConfig {\n CTX_KNOWLEDGE_ENABLED: boolean;\n LOAD_DOCS_ON_STARTUP: boolean;\n MAX_INPUT_TOKENS?: string | number;\n MAX_OUTPUT_TOKENS?: string | number;\n EMBEDDING_PROVIDER?: string;\n TEXT_PROVIDER?: string;\n TEXT_EMBEDDING_MODEL?: string;\n // Rate limiting configuration\n RATE_LIMIT_ENABLED?: boolean;\n MAX_CONCURRENT_REQUESTS?: number;\n REQUESTS_PER_MINUTE?: number;\n TOKENS_PER_MINUTE?: number;\n BATCH_DELAY_MS?: number;\n}\n\nexport interface LoadResult {\n successful: number;\n failed: number;\n errors?: Array<{ filename: string; error: string }>;\n}\n\nexport interface ExtendedMemoryMetadata extends Record<string, unknown> {\n type?: string;\n title?: string;\n filename?: string;\n path?: string;\n description?: string;\n fileExt?: string;\n timestamp?: number;\n contentType?: string;\n documentId?: string;\n source?: string;\n fileType?: string;\n fileSize?: number;\n position?: number; // For fragments\n originalFilename?: string;\n url?: string; // For web content\n}\n",
9
9
  "import * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport { logger, type UUID } from \"@elizaos/core\";\nimport type { KnowledgeService } from \"./service.ts\";\nimport type { AddKnowledgeOptions } from \"./types.ts\";\nimport { isBinaryContentType } from \"./utils.ts\";\n\nexport function getKnowledgePath(runtimePath?: string): string {\n const knowledgePath =\n runtimePath || process.env.KNOWLEDGE_PATH || path.join(process.cwd(), \"docs\");\n const resolvedPath = path.resolve(knowledgePath);\n\n if (!fs.existsSync(resolvedPath)) {\n logger.warn(`Knowledge path does not exist: ${resolvedPath}`);\n if (runtimePath) {\n logger.warn(\"Please create the directory or update KNOWLEDGE_PATH in agent settings\");\n } else if (process.env.KNOWLEDGE_PATH) {\n logger.warn(\"Please create the directory or update KNOWLEDGE_PATH environment variable\");\n } else {\n logger.info(\"To use the knowledge plugin, either:\");\n logger.info('1. Create a \"docs\" folder in your project root');\n logger.info(\"2. Set KNOWLEDGE_PATH in agent settings or environment variable\");\n }\n }\n\n return resolvedPath;\n}\n\nexport async function loadDocsFromPath(\n service: KnowledgeService,\n agentId: UUID,\n worldId?: UUID,\n knowledgePath?: string\n): Promise<{ total: number; successful: number; failed: number }> {\n const docsPath = getKnowledgePath(knowledgePath);\n\n if (!fs.existsSync(docsPath)) {\n logger.warn(`Knowledge path does not exist: ${docsPath}`);\n return { total: 0, successful: 0, failed: 0 };\n }\n\n logger.info(`Loading documents from: ${docsPath}`);\n\n const files = getAllFiles(docsPath);\n\n if (files.length === 0) {\n logger.info(\"No files found in knowledge path\");\n return { total: 0, successful: 0, failed: 0 };\n }\n\n logger.info(`Found ${files.length} files to process`);\n\n let successful = 0;\n let failed = 0;\n\n for (const filePath of files) {\n try {\n const fileName = path.basename(filePath);\n const fileExt = path.extname(filePath).toLowerCase();\n\n if (fileName.startsWith(\".\")) {\n continue;\n }\n\n const contentType = getContentType(fileExt);\n\n if (!contentType) {\n logger.debug(`Skipping unsupported file type: ${filePath}`);\n continue;\n }\n\n const fileBuffer = fs.readFileSync(filePath);\n const isBinary = isBinaryContentType(contentType, fileName);\n const content = isBinary ? fileBuffer.toString(\"base64\") : fileBuffer.toString(\"utf-8\");\n\n const knowledgeOptions: AddKnowledgeOptions = {\n clientDocumentId: \"\" as UUID,\n contentType,\n originalFilename: fileName,\n worldId: worldId || agentId,\n content,\n roomId: agentId,\n entityId: agentId,\n };\n\n logger.debug(`Processing document: ${fileName}`);\n const result = await service.addKnowledge(knowledgeOptions);\n\n logger.info(`✅ \"${fileName}\": ${result.fragmentCount} fragments created`);\n successful++;\n } catch (error) {\n logger.error({ error }, `Failed to process file ${filePath}`);\n failed++;\n }\n }\n\n logger.info(\n `Document loading complete: ${successful} successful, ${failed} failed out of ${files.length} total`\n );\n\n return {\n total: files.length,\n successful,\n failed,\n };\n}\n\nfunction getAllFiles(dirPath: string, files: string[] = []): string[] {\n try {\n const entries = fs.readdirSync(dirPath, { withFileTypes: true });\n\n for (const entry of entries) {\n const fullPath = path.join(dirPath, entry.name);\n\n if (entry.isDirectory()) {\n if (![\"node_modules\", \".git\", \".vscode\", \"dist\", \"build\"].includes(entry.name)) {\n getAllFiles(fullPath, files);\n }\n } else if (entry.isFile()) {\n files.push(fullPath);\n }\n }\n } catch (error) {\n logger.error({ error }, `Error reading directory ${dirPath}`);\n }\n\n return files;\n}\n\nfunction getContentType(extension: string): string | null {\n const contentTypes: Record<string, string> = {\n \".txt\": \"text/plain\",\n \".md\": \"text/markdown\",\n \".markdown\": \"text/markdown\",\n \".tson\": \"text/plain\",\n \".xml\": \"application/xml\",\n \".csv\": \"text/csv\",\n \".tsv\": \"text/tab-separated-values\",\n \".log\": \"text/plain\",\n\n // Web files\n \".html\": \"text/html\",\n \".htm\": \"text/html\",\n \".css\": \"text/css\",\n \".scss\": \"text/x-scss\",\n \".sass\": \"text/x-sass\",\n \".less\": \"text/x-less\",\n \".js\": \"text/javascript\",\n \".jsx\": \"text/javascript\",\n \".ts\": \"text/typescript\",\n \".tsx\": \"text/typescript\",\n \".mjs\": \"text/javascript\",\n \".cjs\": \"text/javascript\",\n \".vue\": \"text/x-vue\",\n \".svelte\": \"text/x-svelte\",\n \".astro\": \"text/x-astro\",\n\n // Python\n \".py\": \"text/x-python\",\n \".pyw\": \"text/x-python\",\n \".pyi\": \"text/x-python\",\n \".java\": \"text/x-java\",\n \".kt\": \"text/x-kotlin\",\n \".kts\": \"text/x-kotlin\",\n \".scala\": \"text/x-scala\",\n\n // C/C++/C#\n \".c\": \"text/x-c\",\n \".cpp\": \"text/x-c++\",\n \".cc\": \"text/x-c++\",\n \".cxx\": \"text/x-c++\",\n \".h\": \"text/x-c\",\n \".hpp\": \"text/x-c++\",\n \".cs\": \"text/x-csharp\",\n \".php\": \"text/x-php\",\n \".rb\": \"text/x-ruby\",\n \".go\": \"text/x-go\",\n \".rs\": \"text/x-rust\",\n \".swift\": \"text/x-swift\",\n \".r\": \"text/x-r\",\n \".R\": \"text/x-r\",\n \".m\": \"text/x-objectivec\",\n \".mm\": \"text/x-objectivec\",\n \".clj\": \"text/x-clojure\",\n \".cljs\": \"text/x-clojure\",\n \".ex\": \"text/x-elixir\",\n \".exs\": \"text/x-elixir\",\n \".lua\": \"text/x-lua\",\n \".pl\": \"text/x-perl\",\n \".pm\": \"text/x-perl\",\n \".dart\": \"text/x-dart\",\n \".hs\": \"text/x-haskell\",\n \".elm\": \"text/x-elm\",\n \".ml\": \"text/x-ocaml\",\n \".fs\": \"text/x-fsharp\",\n \".fsx\": \"text/x-fsharp\",\n \".vb\": \"text/x-vb\",\n \".pas\": \"text/x-pascal\",\n \".d\": \"text/x-d\",\n \".nim\": \"text/x-nim\",\n \".zig\": \"text/x-zig\",\n \".jl\": \"text/x-julia\",\n \".tcl\": \"text/x-tcl\",\n \".awk\": \"text/x-awk\",\n \".sed\": \"text/x-sed\",\n \".sh\": \"text/x-sh\",\n \".bash\": \"text/x-sh\",\n \".zsh\": \"text/x-sh\",\n \".fish\": \"text/x-fish\",\n \".ps1\": \"text/x-powershell\",\n \".bat\": \"text/x-batch\",\n \".cmd\": \"text/x-batch\",\n \".json\": \"application/json\",\n \".yaml\": \"text/x-yaml\",\n \".yml\": \"text/x-yaml\",\n \".toml\": \"text/x-toml\",\n \".ini\": \"text/x-ini\",\n \".cfg\": \"text/x-ini\",\n \".conf\": \"text/x-ini\",\n \".env\": \"text/plain\",\n \".gitignore\": \"text/plain\",\n \".dockerignore\": \"text/plain\",\n \".editorconfig\": \"text/plain\",\n \".properties\": \"text/x-properties\",\n \".sql\": \"text/x-sql\",\n \".pdf\": \"application/pdf\",\n \".doc\": \"application/msword\",\n \".docx\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\n };\n\n return contentTypes[extension] || null;\n}\n",
@@ -26,7 +26,7 @@
26
26
  "import fs from \"node:fs\";\nimport type { IncomingMessage, ServerResponse } from \"node:http\";\nimport path from \"node:path\";\nimport type { IAgentRuntime, Memory, Metadata, Route, UUID } from \"@elizaos/core\";\nimport { createUniqueUuid, logger, MemoryType, ModelType } from \"@elizaos/core\";\nimport multer from \"multer\";\nimport { KnowledgeService } from \"./service\";\nimport { fetchUrlContent, normalizeS3Url } from \"./utils\";\n\ninterface ExtendedRequest extends IncomingMessage {\n body?: Record<string, unknown>;\n params?: Record<string, string>;\n query?: Record<string, string | string[]>;\n files?: MulterFile[];\n originalUrl?: string;\n path?: string;\n url?: string;\n}\n\ntype ExtendedResponse = ServerResponse<IncomingMessage> & {\n pipe?: <T extends NodeJS.WritableStream>(destination: T) => T;\n};\n\nfunction asWritableStream(res: ExtendedResponse): NodeJS.WritableStream {\n return res as NodeJS.WritableStream;\n}\n\nconst createUploadMiddleware = (runtime: IAgentRuntime) => {\n const uploadDir = String(runtime.getSetting(\"KNOWLEDGE_UPLOAD_DIR\") || \"/tmp/uploads/\");\n const maxFileSize = parseInt(\n String(runtime.getSetting(\"KNOWLEDGE_MAX_FILE_SIZE\") || \"52428800\"),\n 10\n );\n const maxFiles = parseInt(String(runtime.getSetting(\"KNOWLEDGE_MAX_FILES\") || \"10\"), 10);\n const allowedMimeTypes =\n String(runtime.getSetting(\"KNOWLEDGE_ALLOWED_MIME_TYPES\") || \"\")\n .split(\",\")\n .filter(Boolean).length > 0\n ? String(runtime.getSetting(\"KNOWLEDGE_ALLOWED_MIME_TYPES\") || \"\").split(\",\")\n : [\n \"text/plain\",\n \"text/markdown\",\n \"application/pdf\",\n \"application/msword\",\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\n \"text/html\",\n \"application/json\",\n \"application/xml\",\n \"text/csv\",\n ];\n\n return multer({\n dest: uploadDir,\n limits: {\n fileSize: maxFileSize,\n files: maxFiles,\n },\n fileFilter: (_req, file, cb) => {\n if (allowedMimeTypes.includes(file.mimetype)) {\n cb(null, true);\n } else {\n cb(\n new Error(\n `File type ${file.mimetype} not allowed. Allowed types: ${allowedMimeTypes.join(\", \")}`\n )\n );\n }\n },\n });\n};\n\n// Add this type declaration to fix Express.Multer.File error\ninterface MulterFile {\n fieldname: string;\n originalname: string;\n encoding: string;\n mimetype: string;\n size: number;\n destination: string;\n filename: string;\n path: string;\n buffer: Buffer;\n}\n\nfunction sendSuccess(res: ExtendedResponse, data: unknown, status = 200) {\n res.writeHead(status, { \"Content-Type\": \"application/json\" });\n res.end(JSON.stringify({ success: true, data }));\n}\n\nfunction sendError(\n res: ExtendedResponse,\n status: number,\n code: string,\n message: string,\n details?: string\n) {\n res.writeHead(status, { \"Content-Type\": \"application/json\" });\n res.end(JSON.stringify({ success: false, error: { code, message, details } }));\n}\n\n// Helper to clean up a single file\nconst cleanupFile = (filePath: string) => {\n if (filePath && fs.existsSync(filePath)) {\n try {\n fs.unlinkSync(filePath);\n } catch (error) {\n logger.error({ error }, `Error cleaning up file ${filePath}`);\n }\n }\n};\n\nconst cleanupFiles = (files: MulterFile[]) => {\n if (files) {\n files.forEach((file) => {\n cleanupFile(file.path);\n });\n }\n};\n\nasync function uploadKnowledgeHandler(\n req: ExtendedRequest,\n res: ExtendedResponse,\n runtime: IAgentRuntime\n) {\n const service = runtime.getService<KnowledgeService>(KnowledgeService.serviceType);\n if (!service) {\n return sendError(res, 500, \"SERVICE_NOT_FOUND\", \"KnowledgeService not found\");\n }\n\n // Check if the request has uploaded files or URLs\n const hasUploadedFiles = req.files && req.files.length > 0;\n const isJsonRequest = !hasUploadedFiles && req.body && (req.body.fileUrl || req.body.fileUrls);\n\n if (!hasUploadedFiles && !isJsonRequest) {\n return sendError(res, 400, \"INVALID_REQUEST\", \"Request must contain either files or URLs\");\n }\n\n try {\n if (hasUploadedFiles) {\n const files = req.files as MulterFile[];\n\n if (!files || files.length === 0) {\n return sendError(res, 400, \"NO_FILES\", \"No files uploaded\");\n }\n\n const invalidFiles = files.filter((file) => {\n if (file.size === 0) {\n logger.warn(`File ${file.originalname} is empty`);\n return true;\n }\n\n if (!file.originalname || file.originalname.trim() === \"\") {\n logger.warn(`File has no name`);\n return true;\n }\n\n if (!file.path) {\n logger.warn(`File ${file.originalname} has no path`);\n return true;\n }\n\n return false;\n });\n\n if (invalidFiles.length > 0) {\n cleanupFiles(files);\n const invalidFileNames = invalidFiles.map((f) => f.originalname || \"unnamed\").join(\", \");\n return sendError(\n res,\n 400,\n \"INVALID_FILES\",\n `Invalid or corrupted files: ${invalidFileNames}`\n );\n }\n\n const agentId = (req.body?.agentId as UUID) || (req.query?.agentId as UUID);\n\n if (!agentId) {\n logger.error(\"No agent ID provided in upload request\");\n return sendError(\n res,\n 400,\n \"MISSING_AGENT_ID\",\n \"Agent ID is required for uploading knowledge\"\n );\n }\n\n const worldId = (req.body?.worldId as UUID) || agentId;\n logger.info(`Processing file upload for agent: ${agentId}`);\n\n const processingPromises = files.map(async (file) => {\n const originalFilename = file.originalname;\n const filePath = file.path;\n\n try {\n const fileBuffer = await fs.promises.readFile(filePath);\n const base64Content = fileBuffer.toString(\"base64\");\n\n const addKnowledgeOpts: import(\"./types.ts\").AddKnowledgeOptions = {\n agentId: agentId,\n clientDocumentId: \"\" as UUID,\n contentType: file.mimetype,\n originalFilename: originalFilename,\n content: base64Content,\n worldId,\n roomId: agentId,\n entityId: agentId,\n };\n\n const result = await service.addKnowledge(addKnowledgeOpts);\n\n cleanupFile(filePath);\n\n return {\n id: result.clientDocumentId,\n filename: originalFilename,\n type: file.mimetype,\n size: file.size,\n uploadedAt: Date.now(),\n status: \"success\",\n };\n } catch (fileError) {\n logger.error(\n `Error processing file ${file.originalname}: ${fileError instanceof Error ? fileError.message : String(fileError)}`\n );\n cleanupFile(filePath);\n return {\n id: \"\",\n filename: originalFilename,\n status: \"error_processing\",\n error: fileError instanceof Error ? fileError.message : String(fileError),\n };\n }\n });\n\n const results = await Promise.all(processingPromises);\n sendSuccess(res, results);\n } else if (isJsonRequest) {\n const fileUrls = Array.isArray(req.body?.fileUrls)\n ? req.body?.fileUrls\n : req.body?.fileUrl\n ? [req.body?.fileUrl]\n : [];\n\n if (fileUrls.length === 0) {\n return sendError(res, 400, \"MISSING_URL\", \"File URL is required\");\n }\n\n const agentId = (req.body?.agentId as UUID) || (req.query?.agentId as UUID);\n\n if (!agentId) {\n logger.error(\"No agent ID provided in URL request\");\n return sendError(\n res,\n 400,\n \"MISSING_AGENT_ID\",\n \"Agent ID is required for uploading knowledge from URLs\"\n );\n }\n\n const processingPromises = fileUrls.map(async (fileUrl: string) => {\n try {\n const normalizedUrl = normalizeS3Url(fileUrl);\n\n const urlObject = new URL(fileUrl);\n const pathSegments = urlObject.pathname.split(\"/\");\n const encodedFilename = pathSegments[pathSegments.length - 1] || \"document.pdf\";\n const originalFilename = decodeURIComponent(encodedFilename);\n\n logger.debug(`Fetching content from URL: ${fileUrl}`);\n\n const { content, contentType: fetchedContentType } = await fetchUrlContent(fileUrl);\n\n let contentType = fetchedContentType;\n\n if (contentType === \"application/octet-stream\") {\n const fileExtension = originalFilename.split(\".\").pop()?.toLowerCase();\n if (fileExtension) {\n if ([\"pdf\"].includes(fileExtension)) {\n contentType = \"application/pdf\";\n } else if ([\"txt\", \"text\"].includes(fileExtension)) {\n contentType = \"text/plain\";\n } else if ([\"md\", \"markdown\"].includes(fileExtension)) {\n contentType = \"text/markdown\";\n } else if ([\"doc\", \"docx\"].includes(fileExtension)) {\n contentType = \"application/msword\";\n } else if ([\"html\", \"htm\"].includes(fileExtension)) {\n contentType = \"text/html\";\n } else if ([\"json\"].includes(fileExtension)) {\n contentType = \"application/json\";\n } else if ([\"xml\"].includes(fileExtension)) {\n contentType = \"application/xml\";\n }\n }\n }\n\n const addKnowledgeOpts: import(\"./types.ts\").AddKnowledgeOptions = {\n agentId: agentId,\n clientDocumentId: \"\" as UUID,\n contentType: contentType,\n originalFilename: originalFilename,\n content: content,\n worldId: agentId,\n roomId: agentId,\n entityId: agentId,\n metadata: {\n url: normalizedUrl,\n },\n };\n\n const result = await service.addKnowledge(addKnowledgeOpts);\n\n return {\n id: result.clientDocumentId,\n fileUrl: fileUrl,\n filename: originalFilename,\n message: \"Knowledge created successfully\",\n createdAt: Date.now(),\n fragmentCount: result.fragmentCount,\n status: \"success\",\n };\n } catch (urlError) {\n logger.error(\n `Error processing URL ${fileUrl}: ${urlError instanceof Error ? urlError.message : String(urlError)}`\n );\n return {\n fileUrl: fileUrl,\n status: \"error_processing\",\n error: urlError instanceof Error ? urlError.message : String(urlError),\n };\n }\n });\n\n const results = await Promise.all(processingPromises);\n sendSuccess(res, results);\n }\n } catch (error) {\n logger.error({ error }, \"Error processing knowledge\");\n if (hasUploadedFiles) {\n cleanupFiles(req.files as MulterFile[]);\n }\n sendError(\n res,\n 500,\n \"PROCESSING_ERROR\",\n \"Failed to process knowledge\",\n error instanceof Error ? error.message : String(error)\n );\n }\n}\n\nasync function getKnowledgeDocumentsHandler(\n req: ExtendedRequest,\n res: ExtendedResponse,\n runtime: IAgentRuntime\n) {\n const service = runtime.getService<KnowledgeService>(KnowledgeService.serviceType);\n if (!service) {\n return sendError(\n res,\n 500,\n \"SERVICE_NOT_FOUND\",\n \"KnowledgeService not found for getKnowledgeDocumentsHandler\"\n );\n }\n\n try {\n const limit = req.query?.limit ? Number.parseInt(req.query.limit as string, 10) : 10000;\n const before = req.query?.before ? Number.parseInt(req.query.before as string, 10) : Date.now();\n const includeEmbedding = req.query?.includeEmbedding === \"true\";\n\n const fileUrls = req.query?.fileUrls\n ? typeof req.query?.fileUrls === \"string\" && req.query.fileUrls.includes(\",\")\n ? req.query.fileUrls.split(\",\")\n : [req.query?.fileUrls]\n : null;\n\n const memories = await service.getMemories({\n tableName: \"documents\",\n count: limit,\n end: before,\n });\n\n let filteredMemories = memories;\n if (fileUrls && fileUrls.length > 0) {\n const normalizedRequestUrls = fileUrls.map((url) => normalizeS3Url(String(url)));\n const urlBasedIds = normalizedRequestUrls.map((url: string) =>\n createUniqueUuid(runtime, url)\n );\n\n filteredMemories = memories.filter(\n (memory) =>\n urlBasedIds.includes(memory.id) ||\n (memory.metadata &&\n \"url\" in memory.metadata &&\n typeof memory.metadata.url === \"string\" &&\n normalizedRequestUrls.includes(normalizeS3Url(memory.metadata.url)))\n );\n }\n\n const cleanMemories = includeEmbedding\n ? filteredMemories\n : filteredMemories.map((memory: Memory) => ({\n ...memory,\n embedding: undefined,\n }));\n sendSuccess(res, {\n memories: cleanMemories,\n urlFiltered: !!fileUrls,\n totalFound: cleanMemories.length,\n totalRequested: fileUrls ? fileUrls.length : 0,\n });\n } catch (error) {\n logger.error({ error }, \"Error retrieving documents\");\n sendError(\n res,\n 500,\n \"RETRIEVAL_ERROR\",\n \"Failed to retrieve documents\",\n error instanceof Error ? error.message : String(error)\n );\n }\n}\n\nasync function deleteKnowledgeDocumentHandler(\n req: ExtendedRequest,\n res: ExtendedResponse,\n runtime: IAgentRuntime\n) {\n const service = runtime.getService<KnowledgeService>(KnowledgeService.serviceType);\n if (!service) {\n return sendError(\n res,\n 500,\n \"SERVICE_NOT_FOUND\",\n \"KnowledgeService not found for deleteKnowledgeDocumentHandler\"\n );\n }\n\n // Get the ID directly from the route parameters\n const knowledgeId = req.params?.knowledgeId;\n\n if (!knowledgeId || knowledgeId.length < 36) {\n logger.error(`Invalid knowledge ID format: ${knowledgeId}`);\n return sendError(res, 400, \"INVALID_ID\", \"Invalid Knowledge ID format\");\n }\n\n try {\n const typedKnowledgeId = knowledgeId as `${string}-${string}-${string}-${string}-${string}`;\n logger.debug(`Deleting document: ${typedKnowledgeId}`);\n\n await service.deleteMemory(typedKnowledgeId);\n sendSuccess(res, null, 204);\n } catch (error) {\n logger.error({ error }, `Error deleting document ${knowledgeId}`);\n sendError(\n res,\n 500,\n \"DELETE_ERROR\",\n \"Failed to delete document\",\n error instanceof Error ? error.message : String(error)\n );\n }\n}\n\nasync function getKnowledgeByIdHandler(\n req: ExtendedRequest,\n res: ExtendedResponse,\n runtime: IAgentRuntime\n) {\n const service = runtime.getService<KnowledgeService>(KnowledgeService.serviceType);\n if (!service) {\n return sendError(\n res,\n 500,\n \"SERVICE_NOT_FOUND\",\n \"KnowledgeService not found for getKnowledgeByIdHandler\"\n );\n }\n\n // Get the ID directly from the route parameters\n const knowledgeId = req.params?.knowledgeId;\n\n if (!knowledgeId || knowledgeId.length < 36) {\n logger.error(`Invalid knowledge ID format: ${knowledgeId}`);\n return sendError(res, 400, \"INVALID_ID\", \"Invalid Knowledge ID format\");\n }\n\n try {\n logger.debug(`Retrieving document: ${knowledgeId}`);\n\n const memories = await service.getMemories({\n tableName: \"documents\",\n count: 10000,\n });\n\n const typedKnowledgeId = knowledgeId as `${string}-${string}-${string}-${string}-${string}`;\n const document = memories.find((memory) => memory.id === typedKnowledgeId);\n\n if (!document) {\n return sendError(res, 404, \"NOT_FOUND\", `Knowledge with ID ${typedKnowledgeId} not found`);\n }\n\n const cleanDocument = {\n ...document,\n embedding: undefined,\n };\n\n sendSuccess(res, { document: cleanDocument });\n } catch (error) {\n logger.error({ error }, `Error retrieving document ${knowledgeId}`);\n sendError(\n res,\n 500,\n \"RETRIEVAL_ERROR\",\n \"Failed to retrieve document\",\n error instanceof Error ? error.message : String(error)\n );\n }\n}\n\nasync function knowledgePanelHandler(\n req: ExtendedRequest,\n res: ExtendedResponse,\n runtime: IAgentRuntime\n) {\n const agentId = runtime.agentId;\n const requestPath = req.originalUrl || req.url || req.path || \"\";\n const pluginBasePath = requestPath.replace(/\\/display.*$/, \"\");\n\n try {\n const currentDir = path.dirname(new URL(import.meta.url).pathname);\n const frontendPath = path.join(currentDir, \"../dist/index.html\");\n\n if (fs.existsSync(frontendPath)) {\n const html = await fs.promises.readFile(frontendPath, \"utf8\");\n let injectedHtml = html.replace(\n \"<head>\",\n `<head>\n <script>\n window.ELIZA_CONFIG = {\n agentId: '${agentId}',\n apiBase: '${pluginBasePath}'\n };\n </script>`\n );\n\n injectedHtml = injectedHtml.replace(/src=\"\\.\\/assets\\//g, `src=\"${pluginBasePath}/assets/`);\n injectedHtml = injectedHtml.replace(/href=\"\\.\\/assets\\//g, `href=\"${pluginBasePath}/assets/`);\n res.writeHead(200, { \"Content-Type\": \"text/html\" });\n res.end(injectedHtml);\n } else {\n let cssFile = \"index.css\";\n let jsFile = \"index.js\";\n\n const manifestPath = path.join(currentDir, \"../dist/manifest.json\");\n if (fs.existsSync(manifestPath)) {\n try {\n const manifestContent = await fs.promises.readFile(manifestPath, \"utf8\");\n const manifest = JSON.parse(manifestContent);\n\n interface ViteManifestEntry {\n file?: string;\n css?: string[];\n isEntry?: boolean;\n }\n for (const [key, value] of Object.entries(manifest)) {\n if (typeof value === \"object\" && value !== null) {\n const entry = value as ViteManifestEntry;\n if (key.endsWith(\".css\") || entry.file?.endsWith(\".css\")) {\n cssFile = entry.file || key;\n }\n if (key.endsWith(\".js\") || entry.file?.endsWith(\".js\")) {\n jsFile = entry.file || key;\n }\n }\n }\n } catch {}\n }\n\n const html = `\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>Knowledge</title>\n <script>\n window.ELIZA_CONFIG = {\n agentId: '${agentId}',\n apiBase: '${pluginBasePath}'\n };\n </script>\n <link rel=\"stylesheet\" href=\"${pluginBasePath}/assets/${cssFile}\">\n <style>\n body { font-family: system-ui, -apple-system, sans-serif; margin: 0; padding: 20px; }\n .container { max-width: 1200px; margin: 0 auto; }\n .loading { text-align: center; padding: 40px; color: #666; }\n </style>\n</head>\n<body>\n <div class=\"container\">\n <div id=\"root\">\n <div class=\"loading\">Loading Knowledge Library...</div>\n </div>\n </div>\n <script type=\"module\" src=\"${pluginBasePath}/assets/${jsFile}\"></script>\n</body>\n</html>`;\n res.writeHead(200, { \"Content-Type\": \"text/html\" });\n res.end(html);\n }\n } catch (error) {\n logger.error({ error }, \"Error serving frontend\");\n sendError(\n res,\n 500,\n \"FRONTEND_ERROR\",\n \"Failed to load knowledge panel\",\n error instanceof Error ? error.message : String(error)\n );\n }\n}\n\nasync function frontendAssetHandler(\n req: ExtendedRequest,\n res: ExtendedResponse,\n _runtime: IAgentRuntime\n) {\n try {\n const fullPath = req.originalUrl || req.url || req.path || \"\";\n const currentDir = path.dirname(new URL(import.meta.url).pathname);\n\n const assetsMarker = \"/assets/\";\n const assetsStartIndex = fullPath.lastIndexOf(assetsMarker);\n\n let assetName: string | null = null;\n if (assetsStartIndex !== -1) {\n assetName = fullPath.substring(assetsStartIndex + assetsMarker.length);\n const queryIndex = assetName.indexOf(\"?\");\n if (queryIndex !== -1) {\n assetName = assetName.substring(0, queryIndex);\n }\n }\n\n if (!assetName || assetName.includes(\"..\")) {\n return sendError(\n res,\n 400,\n \"BAD_REQUEST\",\n `Invalid asset name: '${assetName}' from path ${fullPath}`\n );\n }\n\n const assetPath = path.join(currentDir, \"../dist/assets\", assetName);\n\n if (fs.existsSync(assetPath)) {\n const fileStream = fs.createReadStream(assetPath);\n let contentType = \"application/octet-stream\";\n if (assetPath.endsWith(\".js\")) {\n contentType = \"application/javascript\";\n } else if (assetPath.endsWith(\".css\")) {\n contentType = \"text/css\";\n }\n res.writeHead(200, { \"Content-Type\": contentType });\n fileStream.pipe(asWritableStream(res));\n } else {\n sendError(res, 404, \"NOT_FOUND\", `Asset not found: ${req.url}`);\n }\n } catch (error) {\n logger.error({ error }, `Error serving asset ${req.url}`);\n sendError(\n res,\n 500,\n \"ASSET_ERROR\",\n `Failed to load asset ${req.url}`,\n error instanceof Error ? error.message : String(error)\n );\n }\n}\n\nasync function getKnowledgeChunksHandler(\n req: ExtendedRequest,\n res: ExtendedResponse,\n runtime: IAgentRuntime\n) {\n const service = runtime.getService<KnowledgeService>(KnowledgeService.serviceType);\n if (!service) {\n return sendError(res, 500, \"SERVICE_NOT_FOUND\", \"KnowledgeService not found\");\n }\n\n try {\n const documentId = req.query?.documentId as string | undefined;\n const documentsOnly = req.query?.documentsOnly === \"true\";\n\n const documents = await service.getMemories({\n tableName: \"documents\",\n count: 10000,\n end: Date.now(),\n });\n\n if (documentsOnly) {\n sendSuccess(res, {\n chunks: documents,\n stats: {\n documents: documents.length,\n fragments: 0,\n mode: \"documents-only\",\n },\n });\n return;\n }\n\n if (documentId) {\n const allFragments = await service.getMemories({\n tableName: \"knowledge\",\n count: 50000,\n });\n\n const documentFragments = allFragments.filter((fragment) => {\n const metadata = fragment.metadata as Metadata;\n return typeof metadata?.documentId === \"string\" && metadata.documentId === documentId;\n });\n\n const specificDocument = documents.find((d) => d.id === documentId);\n const results = specificDocument\n ? [specificDocument, ...documentFragments]\n : documentFragments;\n\n sendSuccess(res, {\n chunks: results,\n stats: {\n documents: specificDocument ? 1 : 0,\n fragments: documentFragments.length,\n mode: \"single-document\",\n documentId,\n },\n });\n return;\n }\n\n sendSuccess(res, {\n chunks: documents,\n stats: {\n documents: documents.length,\n fragments: 0,\n mode: \"documents-only\",\n },\n });\n } catch (error) {\n logger.error({ error }, \"Error retrieving chunks\");\n sendError(\n res,\n 500,\n \"RETRIEVAL_ERROR\",\n \"Failed to retrieve knowledge chunks\",\n error instanceof Error ? error.message : String(error)\n );\n }\n}\n\nasync function searchKnowledgeHandler(\n req: ExtendedRequest,\n res: ExtendedResponse,\n runtime: IAgentRuntime\n) {\n const service = runtime.getService<KnowledgeService>(KnowledgeService.serviceType);\n if (!service) {\n return sendError(res, 500, \"SERVICE_NOT_FOUND\", \"KnowledgeService not found\");\n }\n\n try {\n const searchText = req.query?.q as string;\n\n const parsedThreshold = req.query?.threshold\n ? Number.parseFloat(req.query.threshold as string)\n : NaN;\n let matchThreshold = Number.isNaN(parsedThreshold) ? 0.5 : parsedThreshold;\n matchThreshold = Math.max(0, Math.min(1, matchThreshold));\n\n const parsedLimit = req.query?.limit ? Number.parseInt(req.query.limit as string, 10) : NaN;\n let limit = Number.isNaN(parsedLimit) ? 20 : parsedLimit;\n limit = Math.max(1, Math.min(100, limit));\n\n const agentId = (req.query?.agentId as UUID) || runtime.agentId;\n\n if (!searchText || searchText.trim().length === 0) {\n return sendError(res, 400, \"INVALID_QUERY\", \"Search query cannot be empty\");\n }\n\n const embedding = await runtime.useModel(ModelType.TEXT_EMBEDDING, {\n text: searchText,\n });\n\n const results = await runtime.searchMemories({\n tableName: \"knowledge\",\n embedding,\n query: searchText,\n count: limit,\n match_threshold: matchThreshold,\n roomId: agentId,\n });\n\n const enhancedResults = await Promise.all(\n results.map(async (fragment) => {\n let documentTitle = \"\";\n let documentFilename = \"\";\n\n if (\n fragment.metadata &&\n typeof fragment.metadata === \"object\" &&\n \"documentId\" in fragment.metadata\n ) {\n const documentId = fragment.metadata.documentId as UUID;\n try {\n const document = await runtime.getMemoryById(documentId);\n if (document?.metadata) {\n const docMetadata = document.metadata as Metadata;\n documentTitle =\n (typeof docMetadata.title === \"string\" ? docMetadata.title : undefined) ||\n (typeof docMetadata.filename === \"string\" ? docMetadata.filename : undefined) ||\n \"\";\n documentFilename =\n (typeof docMetadata.filename === \"string\" ? docMetadata.filename : undefined) || \"\";\n }\n } catch {}\n }\n\n return {\n id: fragment.id,\n content: fragment.content,\n similarity: fragment.similarity || 0,\n metadata: {\n ...(fragment.metadata || {}),\n documentTitle,\n documentFilename,\n },\n };\n })\n );\n\n sendSuccess(res, {\n query: searchText,\n threshold: matchThreshold,\n results: enhancedResults,\n count: enhancedResults.length,\n });\n } catch (error) {\n logger.error({ error }, \"Error searching knowledge\");\n sendError(\n res,\n 500,\n \"SEARCH_ERROR\",\n \"Failed to search knowledge\",\n error instanceof Error ? error.message : String(error)\n );\n }\n}\n\nasync function getGraphNodesHandler(\n req: ExtendedRequest,\n res: ExtendedResponse,\n runtime: IAgentRuntime\n) {\n const service = runtime.getService<KnowledgeService>(KnowledgeService.serviceType);\n if (!service) {\n return sendError(res, 500, \"SERVICE_NOT_FOUND\", \"KnowledgeService not found\");\n }\n\n try {\n const parsedPage = req.query?.page ? Number.parseInt(req.query.page as string, 10) : 1;\n const parsedLimit = req.query?.limit ? Number.parseInt(req.query.limit as string, 10) : 20;\n const type = req.query?.type as \"document\" | \"fragment\" | undefined;\n const agentId = (req.query?.agentId as UUID) || runtime.agentId;\n\n const page = Number.isNaN(parsedPage) || parsedPage < 1 ? 1 : parsedPage;\n const limit = Number.isNaN(parsedLimit) || parsedLimit < 1 ? 20 : Math.min(parsedLimit, 50);\n const offset = (page - 1) * limit;\n\n const totalDocuments = await service.countMemories({\n tableName: \"documents\",\n roomId: agentId,\n unique: false,\n });\n\n const totalPages = Math.ceil(totalDocuments / limit);\n const hasMore = page < totalPages;\n\n const paginatedDocuments = await service.getMemories({\n tableName: \"documents\",\n roomId: agentId,\n count: limit,\n offset: offset,\n });\n\n const nodes: Array<{ id: UUID; type: \"document\" | \"fragment\" }> = [];\n const links: Array<{ source: UUID; target: UUID }> = [];\n\n paginatedDocuments.forEach((doc) => {\n if (!doc.id) {\n logger.warn(\"Skipping document without ID\");\n return;\n }\n nodes.push({ id: doc.id, type: \"document\" });\n });\n\n if (type !== \"document\") {\n const allFragments = await service.getMemories({\n tableName: \"knowledge\",\n roomId: agentId,\n count: 50000,\n });\n\n paginatedDocuments.forEach((doc) => {\n if (!doc.id) {\n return;\n }\n\n const docFragments = allFragments.filter((fragment) => {\n const metadata = fragment.metadata as Metadata;\n const typeString = typeof metadata?.type === \"string\" ? metadata.type : null;\n const isFragment =\n (typeString && typeString.toLowerCase() === \"fragment\") ||\n metadata?.type === MemoryType.FRAGMENT ||\n (!metadata?.type && metadata?.documentId);\n return metadata?.documentId === doc.id && isFragment;\n });\n\n docFragments.forEach((frag) => {\n const docId = doc.id;\n if (!frag.id || !docId) {\n return;\n }\n nodes.push({ id: frag.id, type: \"fragment\" });\n links.push({ source: docId, target: frag.id });\n });\n });\n }\n\n sendSuccess(res, {\n nodes,\n links,\n pagination: {\n currentPage: page,\n totalPages,\n hasMore,\n totalDocuments,\n },\n });\n } catch (error: unknown) {\n logger.error({ error }, \"Error fetching graph nodes\");\n sendError(\n res,\n 500,\n \"GRAPH_ERROR\",\n \"Failed to fetch graph nodes\",\n error instanceof Error ? error.message : String(error)\n );\n }\n}\n\nasync function getGraphNodeDetailsHandler(\n req: ExtendedRequest,\n res: ExtendedResponse,\n runtime: IAgentRuntime\n) {\n const service = runtime.getService<KnowledgeService>(KnowledgeService.serviceType);\n if (!service) {\n return sendError(res, 500, \"SERVICE_NOT_FOUND\", \"KnowledgeService not found\");\n }\n\n const nodeId = req.params?.nodeId as UUID;\n const agentId = (req.query?.agentId as UUID) || runtime.agentId;\n\n if (!nodeId || nodeId.length < 36) {\n return sendError(res, 400, \"INVALID_ID\", \"Invalid node ID format\");\n }\n\n try {\n const allDocuments = await service.getMemories({\n tableName: \"documents\",\n count: 10000,\n });\n\n let document = allDocuments.find((doc) => doc.id === nodeId && doc.roomId === agentId);\n\n if (!document) {\n document = allDocuments.find((doc) => doc.id === nodeId);\n }\n\n if (document) {\n sendSuccess(res, {\n id: document.id,\n type: \"document\",\n content: document.content,\n metadata: document.metadata,\n createdAt: document.createdAt,\n entityId: document.entityId,\n roomId: document.roomId,\n agentId: document.agentId,\n worldId: document.worldId,\n });\n return;\n }\n\n const allFragments = await service.getMemories({\n tableName: \"knowledge\",\n count: 50000,\n });\n\n let fragment = allFragments.find((frag) => frag.id === nodeId && frag.roomId === agentId);\n\n if (!fragment) {\n fragment = allFragments.find((frag) => frag.id === nodeId);\n }\n\n if (fragment) {\n sendSuccess(res, {\n id: fragment.id,\n type: \"fragment\",\n content: fragment.content,\n metadata: fragment.metadata,\n createdAt: fragment.createdAt,\n entityId: fragment.entityId,\n roomId: fragment.roomId,\n agentId: fragment.agentId,\n worldId: fragment.worldId,\n });\n return;\n }\n\n logger.error(`Node ${nodeId} not found`);\n sendError(res, 404, \"NOT_FOUND\", `Node with ID ${nodeId} not found`);\n } catch (error) {\n logger.error({ error }, `Error fetching node details for ${nodeId}`);\n sendError(\n res,\n 500,\n \"GRAPH_ERROR\",\n \"Failed to fetch node details\",\n error instanceof Error ? error.message : String(error)\n );\n }\n}\n\nasync function expandDocumentGraphHandler(\n req: ExtendedRequest,\n res: ExtendedResponse,\n runtime: IAgentRuntime\n) {\n const service = runtime.getService<KnowledgeService>(KnowledgeService.serviceType);\n if (!service) {\n return sendError(res, 500, \"SERVICE_NOT_FOUND\", \"KnowledgeService not found\");\n }\n\n const documentId = req.params?.documentId as UUID;\n const agentId = (req.query?.agentId as UUID) || runtime.agentId;\n\n if (!documentId || documentId.length < 36) {\n return sendError(res, 400, \"INVALID_ID\", \"Invalid document ID format\");\n }\n\n try {\n const allFragments = await service.getMemories({\n tableName: \"knowledge\",\n roomId: agentId,\n count: 50000,\n });\n\n const documentFragments = allFragments.filter((fragment) => {\n const metadata = fragment.metadata as Metadata;\n const typeString = typeof metadata?.type === \"string\" ? metadata.type : null;\n const isFragment =\n (typeString && typeString.toLowerCase() === \"fragment\") ||\n metadata?.type === MemoryType.FRAGMENT ||\n (!metadata?.type && metadata?.documentId);\n return metadata?.documentId === documentId && isFragment;\n });\n const nodes = documentFragments\n .filter((frag) => frag.id !== undefined)\n .map((frag) => ({\n id: frag.id as UUID,\n type: \"fragment\" as const,\n }));\n\n const links = documentFragments\n .filter((frag) => frag.id !== undefined)\n .map((frag) => ({\n source: documentId,\n target: frag.id as UUID,\n }));\n\n sendSuccess(res, {\n documentId,\n nodes,\n links,\n fragmentCount: nodes.length,\n });\n } catch (error) {\n logger.error({ error }, `Error expanding document ${documentId}`);\n sendError(\n res,\n 500,\n \"GRAPH_ERROR\",\n \"Failed to expand document\",\n error instanceof Error ? error.message : String(error)\n );\n }\n}\n\ntype MulterMiddleware = (\n req: IncomingMessage,\n res: ServerResponse,\n next: (err: Error | null) => void\n) => void;\n\nasync function uploadKnowledgeWithMulter(\n req: ExtendedRequest,\n res: ExtendedResponse,\n runtime: IAgentRuntime\n) {\n const upload = createUploadMiddleware(runtime);\n const uploadArray = upload.array(\n \"files\",\n parseInt(String(runtime.getSetting(\"KNOWLEDGE_MAX_FILES\") || \"10\"), 10)\n ) as MulterMiddleware;\n\n uploadArray(req, res, (err: Error | null) => {\n if (err) {\n logger.error({ error: err }, \"File upload error\");\n return sendError(res, 400, \"UPLOAD_ERROR\", err.message);\n }\n uploadKnowledgeHandler(req, res, runtime);\n });\n}\n\ntype ExtendedRouteHandler = (\n req: ExtendedRequest,\n res: ExtendedResponse,\n runtime: IAgentRuntime\n) => Promise<void>;\n\nfunction asRouteHandler(handler: ExtendedRouteHandler): Route[\"handler\"] {\n return handler as unknown as Route[\"handler\"];\n}\n\nexport const knowledgeRoutes: Route[] = [\n {\n type: \"GET\",\n name: \"Knowledge\",\n path: \"/display\",\n handler: asRouteHandler(knowledgePanelHandler),\n public: true,\n },\n {\n type: \"GET\",\n path: \"/assets/*\",\n handler: asRouteHandler(frontendAssetHandler),\n },\n {\n type: \"POST\",\n path: \"/documents\",\n handler: asRouteHandler(uploadKnowledgeWithMulter),\n },\n {\n type: \"GET\",\n path: \"/documents\",\n handler: asRouteHandler(getKnowledgeDocumentsHandler),\n },\n {\n type: \"GET\",\n path: \"/documents/:knowledgeId\",\n handler: asRouteHandler(getKnowledgeByIdHandler),\n },\n {\n type: \"DELETE\",\n path: \"/documents/:knowledgeId\",\n handler: asRouteHandler(deleteKnowledgeDocumentHandler),\n },\n {\n type: \"GET\",\n path: \"/knowledges\",\n handler: asRouteHandler(getKnowledgeChunksHandler),\n },\n {\n type: \"GET\",\n path: \"/search\",\n handler: asRouteHandler(searchKnowledgeHandler),\n },\n {\n type: \"GET\",\n path: \"/graph/nodes\",\n handler: asRouteHandler(getGraphNodesHandler),\n },\n {\n type: \"GET\",\n path: \"/graph/node/:nodeId\",\n handler: asRouteHandler(getGraphNodeDetailsHandler),\n },\n {\n type: \"GET\",\n path: \"/graph/expand/:documentId\",\n handler: asRouteHandler(expandDocumentGraphHandler),\n },\n];\n",
27
27
  "import type { Plugin } from \"@elizaos/core\";\nimport { knowledgeActions } from \"./actions\";\nimport { documentsProvider } from \"./documents-provider\";\nimport { knowledgeProvider } from \"./provider\";\nimport { knowledgeRoutes } from \"./routes\";\nimport { KnowledgeService } from \"./service\";\n\nexport interface KnowledgePluginConfig {\n enableUI?: boolean;\n enableRoutes?: boolean;\n enableActions?: boolean;\n enableTests?: boolean;\n}\n\nexport function createKnowledgePlugin(config: KnowledgePluginConfig = {}): Plugin {\n const { enableUI = true, enableRoutes = true, enableActions = true, enableTests = true } = config;\n\n const plugin: Plugin = {\n name: \"knowledge\",\n description:\n \"Plugin for Retrieval Augmented Generation, including knowledge management and embedding.\",\n services: [KnowledgeService],\n providers: [knowledgeProvider, documentsProvider],\n };\n\n if (enableUI || enableRoutes) {\n plugin.routes = knowledgeRoutes;\n }\n\n if (enableActions) {\n plugin.actions = knowledgeActions;\n }\n\n if (enableTests) {\n // try {\n // const { default: knowledgeTestSuite } = require(\"./tests\");\n // plugin.tests = [knowledgeTestSuite];\n // } catch {}\n }\n\n return plugin;\n}\n\nexport const knowledgePluginCore: Plugin = createKnowledgePlugin({\n enableUI: false,\n enableRoutes: false,\n enableActions: false,\n enableTests: false,\n});\n\nexport const knowledgePluginHeadless: Plugin = createKnowledgePlugin({\n enableUI: false,\n enableRoutes: false,\n enableActions: true,\n enableTests: false,\n});\n\nexport const knowledgePlugin: Plugin = createKnowledgePlugin({\n enableUI: true,\n enableRoutes: true,\n enableActions: true,\n enableTests: true,\n});\n\nexport default knowledgePlugin;\n\nexport { documentsProvider } from \"./documents-provider\";\nexport { knowledgeProvider } from \"./provider\";\nexport { KnowledgeService } from \"./service\";\nexport * from \"./types\";\n"
28
28
  ],
29
- "mappings": "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",
30
- "debugId": "AEF1BFD61156963C64756E2164756E21",
29
+ "mappings": "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",
30
+ "debugId": "AEB51296868FE14064756E2164756E21",
31
31
  "names": []
32
32
  }