name: libindex description: > libindex - Base index class for storage-backed data. Index class provides JSONL storage operations and filtering logic. BufferedIndex adds high-volume write support with periodic flushing. Use for building custom indexes, implementing data stores, and managing persistent collections.
libindex Skill
When to Use
- Building custom storage-backed indexes
- Implementing JSONL-based data stores
- Creating searchable collections with filtering
- Managing high-volume write workloads
Key Concepts
Index: Base class providing read/write/filter operations on JSONL files. Subclass to create domain-specific indexes.
BufferedIndex: Extends Index with write buffering for high-throughput scenarios, flushing periodically.
Usage Patterns
Pattern 1: Create custom index
import { Index } from "@copilot-ld/libindex";
class UserIndex extends Index {
constructor(storage) {
super(storage, "users");
}
async findByEmail(email) {
return this.filter((user) => user.email === email);
}
}
Pattern 2: High-volume writes
import { BufferedIndex } from "@copilot-ld/libindex";
const index = new BufferedIndex(storage, "logs", { flushInterval: 5000 });
await index.append(logEntry); // Buffered
await index.flush(); // Force flush
Integration
Base class for VectorIndex, TraceIndex, ResourceIndex and other domain indexes.