{"version":3,"sources":["../src/agent/memory/memory-service.ts","../src/agent/memory/backends/memory-backend.ts","../src/agent/memory/backends/indexeddb-backend.ts","../src/agent/memory/index.ts"],"names":["db"],"mappings":"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","file":"chunk-LIZIMDI7.mjs","sourcesContent":["/**\n * EADK Memory Service\n *\n * Pluggable memory system with scoped storage, semantic search, and entity tracking.\n * Combines Google ADK state scoping, CrewAI entity memory, and LangGraph checkpointing.\n */\n\nimport type {\n  MemoryScope,\n  MemoryEntry,\n  MemorySearchResult,\n  MemoryConfig,\n  MemoryBackend,\n} from '../core/types';\n\n/**\n * Abstract memory backend interface.\n * Implementations handle actual storage (memory, OPFS, IndexedDB, etc.).\n */\nexport interface MemoryBackendInterface {\n  save(entry: MemoryEntry): Promise<void>;\n  get(key: string, scope: MemoryScope): Promise<MemoryEntry | null>;\n  delete(key: string, scope: MemoryScope): Promise<void>;\n  list(scope: MemoryScope): Promise<MemoryEntry[]>;\n  search(\n    query: string,\n    scope: MemoryScope,\n    limit?: number\n  ): Promise<MemorySearchResult[]>;\n  clear(scope?: MemoryScope): Promise<void>;\n}\n\n/**\n * MemoryService provides a unified API over pluggable backends.\n */\nexport class MemoryService {\n  private backend: MemoryBackendInterface;\n  private config: MemoryConfig;\n\n  constructor(backend: MemoryBackendInterface, config: MemoryConfig) {\n    this.backend = backend;\n    this.config = config;\n  }\n\n  /**\n   * Save a value to memory.\n   */\n  async save(\n    key: string,\n    value: unknown,\n    scope: MemoryScope = 'session',\n    metadata?: Record<string, unknown>\n  ): Promise<void> {\n    const entry: MemoryEntry = {\n      key,\n      value,\n      scope,\n      metadata,\n      createdAt: Date.now(),\n      updatedAt: Date.now(),\n    };\n    await this.backend.save(entry);\n  }\n\n  /**\n   * Get a value from memory.\n   */\n  async get(key: string, scope: MemoryScope = 'session'): Promise<unknown> {\n    const entry = await this.backend.get(key, scope);\n    if (!entry) return undefined;\n\n    // Check expiration\n    if (entry.expiresAt && entry.expiresAt < Date.now()) {\n      await this.backend.delete(key, scope);\n      return undefined;\n    }\n\n    return entry.value;\n  }\n\n  /**\n   * Semantic search over memory entries.\n   */\n  async search(\n    query: string,\n    scope: MemoryScope = 'session',\n    limit = 10\n  ): Promise<MemorySearchResult[]> {\n    if (!this.config.longTerm && !this.config.shortTerm) {\n      return [];\n    }\n    return this.backend.search(query, scope, limit);\n  }\n\n  /**\n   * Delete a memory entry.\n   */\n  async delete(key: string, scope: MemoryScope = 'session'): Promise<void> {\n    await this.backend.delete(key, scope);\n  }\n\n  /**\n   * List all entries in a scope.\n   */\n  async list(scope: MemoryScope = 'session'): Promise<MemoryEntry[]> {\n    return this.backend.list(scope);\n  }\n\n  /**\n   * Clear memory.\n   */\n  async clear(scope?: MemoryScope): Promise<void> {\n    await this.backend.clear(scope);\n  }\n\n  /**\n   * Save an entity (CrewAI pattern).\n   */\n  async saveEntity(\n    entityType: string,\n    entityId: string,\n    data: Record<string, unknown>\n  ): Promise<void> {\n    if (!this.config.entity) return;\n    await this.save(`entity:${entityType}:${entityId}`, data, 'app', {\n      entityType,\n      entityId,\n    });\n  }\n\n  /**\n   * Get an entity.\n   */\n  async getEntity(\n    entityType: string,\n    entityId: string\n  ): Promise<Record<string, unknown> | undefined> {\n    if (!this.config.entity) return undefined;\n    const value = await this.get(`entity:${entityType}:${entityId}`, 'app');\n    return value as Record<string, unknown> | undefined;\n  }\n\n  /**\n   * Save a short-term working memory entry (auto-expires).\n   */\n  async saveWorkingMemory(\n    key: string,\n    value: unknown,\n    ttlMs = 300_000\n  ): Promise<void> {\n    if (!this.config.shortTerm) return;\n    const entry: MemoryEntry = {\n      key,\n      value,\n      scope: 'temp',\n      createdAt: Date.now(),\n      updatedAt: Date.now(),\n      expiresAt: Date.now() + ttlMs,\n    };\n    await this.backend.save(entry);\n  }\n}\n","/**\n * In-Memory Backend\n *\n * Simple in-memory storage. Fast but non-persistent.\n * Suitable for testing and short-lived sessions.\n */\n\nimport type {\n  MemoryScope,\n  MemoryEntry,\n  MemorySearchResult,\n} from '../../core/types';\nimport type { MemoryBackendInterface } from '../memory-service';\n\nexport class InMemoryBackend implements MemoryBackendInterface {\n  private store = new Map<string, MemoryEntry>();\n\n  private key(entryKey: string, scope: MemoryScope): string {\n    return `${scope}:${entryKey}`;\n  }\n\n  async save(entry: MemoryEntry): Promise<void> {\n    const existing = this.store.get(this.key(entry.key, entry.scope));\n    if (existing) {\n      entry.createdAt = existing.createdAt;\n    }\n    this.store.set(this.key(entry.key, entry.scope), entry);\n  }\n\n  async get(key: string, scope: MemoryScope): Promise<MemoryEntry | null> {\n    return this.store.get(this.key(key, scope)) ?? null;\n  }\n\n  async delete(key: string, scope: MemoryScope): Promise<void> {\n    this.store.delete(this.key(key, scope));\n  }\n\n  async list(scope: MemoryScope): Promise<MemoryEntry[]> {\n    const results: MemoryEntry[] = [];\n    const prefix = `${scope}:`;\n    for (const [key, entry] of this.store) {\n      if (key.startsWith(prefix)) {\n        results.push(entry);\n      }\n    }\n    return results;\n  }\n\n  async search(\n    query: string,\n    scope: MemoryScope,\n    limit = 10\n  ): Promise<MemorySearchResult[]> {\n    // Simple substring matching for in-memory backend\n    const queryLower = query.toLowerCase();\n    const results: MemorySearchResult[] = [];\n    const prefix = `${scope}:`;\n\n    for (const [key, entry] of this.store) {\n      if (!key.startsWith(prefix)) continue;\n\n      const valueStr = JSON.stringify(entry.value).toLowerCase();\n      const keyStr = entry.key.toLowerCase();\n\n      let score = 0;\n      if (keyStr.includes(queryLower)) score += 0.8;\n      if (valueStr.includes(queryLower)) score += 0.5;\n\n      if (score > 0) {\n        results.push({ entry, score: Math.min(score, 1) });\n      }\n    }\n\n    return results.sort((a, b) => b.score - a.score).slice(0, limit);\n  }\n\n  async clear(scope?: MemoryScope): Promise<void> {\n    if (scope) {\n      const prefix = `${scope}:`;\n      for (const key of [...this.store.keys()]) {\n        if (key.startsWith(prefix)) {\n          this.store.delete(key);\n        }\n      }\n    } else {\n      this.store.clear();\n    }\n  }\n}\n","/**\n * IndexedDB Memory Backend\n *\n * Persistent browser-based storage using IndexedDB.\n * Integrates with existing edgework-sdk storage patterns.\n */\n\nimport type {\n  MemoryScope,\n  MemoryEntry,\n  MemorySearchResult,\n} from '../../core/types';\nimport type { MemoryBackendInterface } from '../memory-service';\n\nconst DB_NAME = 'eadk-memory';\nconst STORE_NAME = 'entries';\nconst DB_VERSION = 1;\n\nexport class IndexedDBBackend implements MemoryBackendInterface {\n  private dbPromise: Promise<IDBDatabase> | null = null;\n\n  private async getDB(): Promise<IDBDatabase> {\n    if (this.dbPromise) return this.dbPromise;\n\n    this.dbPromise = new Promise<IDBDatabase>((resolve, reject) => {\n      if (typeof indexedDB === 'undefined') {\n        reject(new Error('IndexedDB is not available in this environment'));\n        return;\n      }\n\n      const request = indexedDB.open(DB_NAME, DB_VERSION);\n\n      request.onupgradeneeded = () => {\n        const db = request.result;\n        if (!db.objectStoreNames.contains(STORE_NAME)) {\n          const store = db.createObjectStore(STORE_NAME, {\n            keyPath: 'compositeKey',\n          });\n          store.createIndex('scope', 'scope', { unique: false });\n          store.createIndex('key', 'key', { unique: false });\n          store.createIndex('updatedAt', 'updatedAt', { unique: false });\n        }\n      };\n\n      request.onsuccess = () => resolve(request.result);\n      request.onerror = () => reject(request.error);\n    });\n\n    return this.dbPromise;\n  }\n\n  private compositeKey(key: string, scope: MemoryScope): string {\n    return `${scope}:${key}`;\n  }\n\n  async save(entry: MemoryEntry): Promise<void> {\n    const db = await this.getDB();\n    return new Promise((resolve, reject) => {\n      const tx = db.transaction(STORE_NAME, 'readwrite');\n      const store = tx.objectStore(STORE_NAME);\n      store.put({\n        ...entry,\n        compositeKey: this.compositeKey(entry.key, entry.scope),\n      });\n      tx.oncomplete = () => resolve();\n      tx.onerror = () => reject(tx.error);\n    });\n  }\n\n  async get(key: string, scope: MemoryScope): Promise<MemoryEntry | null> {\n    const db = await this.getDB();\n    return new Promise((resolve, reject) => {\n      const tx = db.transaction(STORE_NAME, 'readonly');\n      const store = tx.objectStore(STORE_NAME);\n      const request = store.get(this.compositeKey(key, scope));\n      request.onsuccess = () => {\n        const result = request.result;\n        if (!result) {\n          resolve(null);\n          return;\n        }\n        // Remove compositeKey from result\n        const { compositeKey: _, ...entry } = result;\n        resolve(entry as MemoryEntry);\n      };\n      request.onerror = () => reject(request.error);\n    });\n  }\n\n  async delete(key: string, scope: MemoryScope): Promise<void> {\n    const db = await this.getDB();\n    return new Promise((resolve, reject) => {\n      const tx = db.transaction(STORE_NAME, 'readwrite');\n      const store = tx.objectStore(STORE_NAME);\n      store.delete(this.compositeKey(key, scope));\n      tx.oncomplete = () => resolve();\n      tx.onerror = () => reject(tx.error);\n    });\n  }\n\n  async list(scope: MemoryScope): Promise<MemoryEntry[]> {\n    const db = await this.getDB();\n    return new Promise((resolve, reject) => {\n      const tx = db.transaction(STORE_NAME, 'readonly');\n      const store = tx.objectStore(STORE_NAME);\n      const index = store.index('scope');\n      const request = index.getAll(scope);\n      request.onsuccess = () => {\n        const results = (request.result ?? []).map(\n          (raw: Record<string, unknown>) => {\n            const { compositeKey: _, ...entry } = raw;\n            return entry as unknown as MemoryEntry;\n          }\n        );\n        resolve(results);\n      };\n      request.onerror = () => reject(request.error);\n    });\n  }\n\n  async search(\n    query: string,\n    scope: MemoryScope,\n    limit = 10\n  ): Promise<MemorySearchResult[]> {\n    // IndexedDB doesn't support full-text search natively\n    // Fall back to listing and filtering\n    const entries = await this.list(scope);\n    const queryLower = query.toLowerCase();\n    const results: MemorySearchResult[] = [];\n\n    for (const entry of entries) {\n      const valueStr = JSON.stringify(entry.value).toLowerCase();\n      const keyStr = entry.key.toLowerCase();\n\n      let score = 0;\n      if (keyStr.includes(queryLower)) score += 0.8;\n      if (valueStr.includes(queryLower)) score += 0.5;\n\n      if (score > 0) {\n        results.push({ entry, score: Math.min(score, 1) });\n      }\n    }\n\n    return results.sort((a, b) => b.score - a.score).slice(0, limit);\n  }\n\n  async clear(scope?: MemoryScope): Promise<void> {\n    if (scope) {\n      const entries = await this.list(scope);\n      const db = await this.getDB();\n      return new Promise((resolve, reject) => {\n        const tx = db.transaction(STORE_NAME, 'readwrite');\n        const store = tx.objectStore(STORE_NAME);\n        for (const entry of entries) {\n          store.delete(this.compositeKey(entry.key, entry.scope));\n        }\n        tx.oncomplete = () => resolve();\n        tx.onerror = () => reject(tx.error);\n      });\n    }\n\n    const db = await this.getDB();\n    return new Promise((resolve, reject) => {\n      const tx = db.transaction(STORE_NAME, 'readwrite');\n      const store = tx.objectStore(STORE_NAME);\n      store.clear();\n      tx.oncomplete = () => resolve();\n      tx.onerror = () => reject(tx.error);\n    });\n  }\n}\n","/**\n * EADK Memory — Public API\n */\n\nimport { MemoryService } from './memory-service';\nimport type { MemoryBackendInterface } from './memory-service';\nimport { InMemoryBackend } from './backends/memory-backend';\nimport { IndexedDBBackend } from './backends/indexeddb-backend';\nimport type { MemoryConfig } from '../core/types';\n\nexport { MemoryService } from './memory-service';\nexport type { MemoryBackendInterface } from './memory-service';\n\nexport { InMemoryBackend } from './backends/memory-backend';\nexport { IndexedDBBackend } from './backends/indexeddb-backend';\n\n// Re-export memory types from core\nexport type {\n  MemoryScope,\n  MemoryBackend,\n  MemoryConfig,\n  MemoryEntry,\n  MemorySearchResult,\n} from '../core/types';\n\n/**\n * Create a memory service with the appropriate backend.\n */\nexport function createMemoryService(config: MemoryConfig): MemoryService {\n  let backend: MemoryBackendInterface;\n\n  switch (config.backend) {\n    case 'indexeddb':\n      backend = new IndexedDBBackend();\n      break;\n    case 'opfs':\n      // OPFS backend would leverage existing edgework OPFS storage\n      // Falls back to in-memory for now\n      backend = new InMemoryBackend();\n      break;\n    case 'memory':\n    default:\n      backend = new InMemoryBackend();\n      break;\n  }\n\n  return new MemoryService(backend, config);\n}\n"]}