npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

vinkura-memory

v0.2.0

Published

Multi-tenant, production-safe memory layer for AI applications

Readme

Vinkura Memory Layer

CI License: MIT NPM Version

A multi-tenant, production-grade memory engine for AI applications. Built on PostgreSQL and pgvector to solve the complex problem of data isolation and semantic retrieval in enterprise SaaS environments.


The Problem

Most AI frameworks (LangChain, LlamaIndex) assume a single-tenant environment. In real-world SaaS, enterprise, and government applications, you have:

  • Multiple organizations.
  • Distinct users with hierarchical roles.
  • Strict data residency and isolation requirements.
  • The need for full auditability.

Vinkura Memory Layer provides the infrastructure to build secure AI products where multi-tenancy is enforced by architecture, not just developer discipline.

Key Features

  • Architectural Isolation: Every query is implicitly scoped to an organization through service-level context.
  • Namespacing (v0.2.0): Organize memory within orgs into logical namespaces (e.g., 'staging', 'production', 'project-x').
  • pgvector Integration: Native support for high-performance HNSW vector search.
  • Strict Integrity: Database-level composite foreign keys prevent cross-tenant writes.
  • Granular Visibility: Support for private, org, and public memory scopes.
  • Traceable Audit Logs: Full history of who queried what and when.
  • Drizzle ORM: Lightweight, type-safe database interactions.

Quick Start

1. Prerequisites

  • PostgreSQL with pgvector extension.
  • Node.js v18+.

2. Installation

npm install vinkura-memory

3. Usage

import { MemoryService, AccessControl, MockEmbeddingProvider, createDb } from 'vinkura-memory';

const { db } = createDb(process.env.DATABASE_URL);

// 1. Validate the user context (typically from a session/JWT)
const security = new AccessControl(db);
const context = await security.validateContext('user_uuid', 'org_uuid');

// 2. Instantiate the scoped service
const memory = new MemoryService(db, context, new MockEmbeddingProvider());

// 3. Store knowledge in a specific namespace
await memory.store({
  content: "The Q3 roadmap focuses on multi-cloud expansion.",
  visibility: 'org',
  namespace: 'internal-wiki',
  metadata: { priority: 'high' }
});

// 4. Semantic Query within a namespace
const results = await memory.query({
  text: "What are our roadmap priorities?",
  namespace: 'internal-wiki',
  limit: 5
});

Documentation

Development

To run tests locally, ensure you have a standard Postgres instance with pgvector running:

docker-compose up -d
npm test

Authors

License

MIT