@ferricstore/ferricstore
    Preparing search index...

    Class FerricStoreStore

    LangGraph.js long-term memory store backed by FerricStore.

    It implements hierarchical namespaces, exact/comparison filters, ordered pagination, batching, CAS-protected item commits, and append-only discovery indexes. Vector search is deliberately rejected until a semantic index is configured rather than silently returning an unranked result.

    Hierarchy

    • BaseStore
      • FerricStoreStore
    Index
    keyPrefix: string
    scanCount: number
    • Execute multiple operations in a single batch. This is more efficient than executing operations individually.

      Type Parameters

      • Op extends Operation[]

      Parameters

      • operations: Op

        Array of operations to execute

      Returns Promise<OperationResults<Op>>

      Promise resolving to results matching the operations

    • Retrieve a single item by its namespace and key.

      Parameters

      • namespace: string[]

        Hierarchical path for the item

      • key: string

        Unique identifier within the namespace

      Returns Promise<Item | null>

      Promise resolving to the item or null if not found

    • List and filter namespaces in the store. Used to explore data organization and navigate the namespace hierarchy.

      Parameters

      • Optionaloptions: {
            limit?: number;
            maxDepth?: number;
            offset?: number;
            prefix?: string[];
            suffix?: string[];
        }

        Options for listing namespaces

      Returns Promise<string[][]>

      Promise resolving to list of namespace paths

      // List all namespaces under "documents"
      await store.listNamespaces({
      prefix: ["documents"],
      maxDepth: 2
      });

      // List namespaces ending with "v1"
      await store.listNamespaces({
      suffix: ["v1"],
      limit: 50
      });
    • Store or update an item.

      Parameters

      • namespace: string[]

        Hierarchical path for the item

      • key: string

        Unique identifier within the namespace

      • value: Record<string, any>

        Object containing the item's data

      • Optionalindex: false | string[]

        Optional indexing configuration

      Returns Promise<void>

      // Simple storage
      await store.put(["docs"], "report", { title: "Annual Report" });

      // With specific field indexing
      await store.put(
      ["docs"],
      "report",
      {
      title: "Q4 Report",
      chapters: [{ content: "..." }, { content: "..." }]
      },
      ["title", "chapters[*].content"]
      );
    • Search for items within a namespace prefix. Supports both metadata filtering and vector similarity search.

      Parameters

      • namespacePrefix: string[]

        Hierarchical path prefix to search within

      • Optionaloptions: {
            filter?: Record<string, any>;
            limit?: number;
            offset?: number;
            query?: string;
        }

        Search options for filtering and pagination

      Returns Promise<SearchItem[]>

      Promise resolving to list of matching items with relevance scores

      // Search with filters
      await store.search(["documents"], {
      filter: { type: "report", status: "active" },
      limit: 5,
      offset: 10
      });

      // Vector similarity search
      await store.search(["users", "content"], {
      query: "technical documentation about APIs",
      limit: 20
      });