> ## Documentation Index
> Fetch the complete documentation index at: https://docs.10et.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Storage Adapter

> TenetStorage interface — swap between local SQLite and cloud Postgres

TENET's storage adapter pattern lets all modules work against different backends without changing their code. Locally, everything writes to `.tenet/` files and SQLite. In production, the same operations go to Postgres with workspace isolation.

## Interface

```typescript theme={null}
interface TenetStorage {
  read(key: string): Promise<any>
  write(key: string, value: any): Promise<void>
  append(key: string, value: any): Promise<void>
  list(prefix?: string): Promise<string[]>
  query(query: Record<string, any>): Promise<any[]>
  execute(operation: string, params?: any): Promise<any>
  vectorSearch(vector: number[], options?: { limit?: number }): Promise<any[]>
}
```

## Implementations

### LocalStorage (default)

File-based storage in `.tenet/` directory. Uses SQLite for queries and cosine similarity for vector search. This is what runs when you use `tenet` on your machine.

### CloudStorage

Postgres-backed storage for multi-user deployments. All operations scoped by `workspaceId`. Uses pgvector for similarity search.

```typescript theme={null}
const storage = new CloudStorage(workspaceId, connectionString)
```

## Factory

```typescript theme={null}
import { createStorage } from '10et'

// Local (default)
const local = createStorage()

// Cloud
const cloud = createStorage({ 
  cloud: { workspaceId: 'ws_123', connectionString: process.env.DATABASE_URL } 
})
```

## How Modules Use It

Memory, training buffer, and policy head all accept an optional storage parameter. When not provided, they use LocalStorage (backward compatible):

```typescript theme={null}
// Existing behavior — unchanged
const memory = new MemoryDB(projectRoot)

// Cloud behavior — same API, different backend
const memory = new MemoryDB(projectRoot, { storage: cloudStorage })
```
