AgentSkillsCN

libindex

libindex——基于存储的数据基础索引类。Index 类提供了 JSONL 存储操作与过滤逻辑;BufferedIndex 则通过周期性刷写,为高吞吐量写入场景提供了强有力的支持。适用于构建自定义索引、实现数据存储方案,以及管理持久化集合。

SKILL.md
--- frontmatter
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

javascript
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

javascript
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.