open-index/open-npm huggingface dataset:
npm package: @samdotci/memoize-storage-adapters
Description: Storage adapters for [`p-memoize`](https://github.com/sindresorhus/p-memoize).
Latest version: 0.4.0

# memoize-storage-adapters

Storage adapters for [`p-memoize`](https://github.com/sindresorhus/p-memoize) in Deno.

## Usage

### FileCache

Data is stored in the user's cache directory, under a parent `memoize-storage-adapters` directory.

```ts
import { FileCache } from "@samdotci/memoize-storage-adapters";
import pMemoize from "p-memoize";

const memoizedFn = pMemoize(expensiveFunction, {
  cache: new FileCache("my-app-name"),
  cacheKey: args => `key-${args.join('-')}`,
});

await memoizedFn(1, 2); // Slow (computed)
await memoizedFn(1, 2); // Fast (uses result from disk cache)
```

## License

MIT
npm package: @samdotci/skill-embedder
Description: Semantic skill matching for Claude Code
Author: samdotci
Latest version: 1.3.4

# skill-embedder

A Claude Code plugin that creates semantic embeddings for skills, enabling accurate skill matching per prompt.

Claude Code's built-in skill activation is unreliable. This plugin embeds skill descriptions into vectors and uses hybrid search (cosine similarity + fuzzy matching + name boosting) to surface relevant skills on every prompt.

## Installation

Add as a Claude Code marketplace:

```bash
claude mcp add-marketplace /path/to/skill-embedder
```

Or install the library via npm for programmatic use:

```bash
npm install @samdotci/skill-embedder
```

## How It Works

1. **On session start**, the plugin re-embeds any skills whose content has changed (hash-based cache invalidation)
2. **On every prompt**, the plugin searches embedded skills and surfaces matches above 30% confidence as `additionalContext`
3. Skills are discovered from directories configured in `~/.config/skill-embedder/skill-embedder.json`

### Embedding Providers

- **HuggingFace** (default): Uses `jinaai/jina-embeddings-v2-small-en` locally. No API key needed. Downloads ~25MB model on first run.
- **OpenAI**: Set `OPENAI_API_KEY` and `SKILL_EMBEDDER_EMBEDDING_PROVIDER=openai` to use `text-embedding-3-small`.

### Configuration

Create or edit `~/.config/skill-embedder/skill-embedder.json`:

```json
{
  "skillParentDirs": [
    "/path/to/your/skills/directory",
    "/another/skills/directory"
  ]
}
```

## Commands

- `/skill-embedder:embed-skills` — manually trigger skill embedding
- `/skill-embedder:search-skills <query>` — search skills by semantic similarity

## Environment Variables

| Variable | Description | Default |
|----------|-------------|---------|
| `SKILL_EMBEDDER_EMBEDDING_PROVIDER` | `huggingface` or `openai` | `huggingface` |
| `SKILL_EMBEDDER_DATA_DIR` | Override data directory | OS default |
| `SKILL_EMBEDDER_CONFIG_DIR` | Override config directory | OS default |
| `SKILL_EMBEDDER_HUGGINGFACE_EMBEDDING_MODEL` | HuggingFace model | `jinaai/jina-embeddings-v2-small-en` |
| `SKILL_EMBEDDER_OPENAI_EMBEDDING_MODEL` | OpenAI model | `text-embedding-3-small` |
| `OPENAI_API_KEY` | Required for OpenAI provider | — |
npm package: @samebchase/electron-spellchecker
Description: Implement spellchecking, correctly
Latest version: 2.2.2

# electron-spellchecker

![](https://img.shields.io/npm/dm/electron-spellchecker.svg) <a href="https://electron-userland.github.io/electron-spellchecker/docs">![](https://electron-userland.github.io/electron-spellchecker/docs/badge.svg)</a>

electron-spellchecker is a library to help you implement spellchecking in your Electron applications, as well as handle default right-click Context Menus (since spell checking shows up in them).  This library intends to solve the problem of spellchecking in a production-ready, international-friendly way.

electron-spellchecker:

* Spell checks in all of the languages that Google Chrome supports by reusing its dictionaries.
* Automatically detects the language the user is typing in and silently switches on the fly.
* Handles locale correctly and automatically (i.e. users who are from Australia should not be corrected for 'colour', but US English speakers should)
* Automatically downloads and manages dictionaries in the background.
* Checks very quickly, doesn't introduce input lag which is extremely noticable
* Only loads one Dictionary at a time which saves a significant amount of memory

## Quick Start

```js
import {SpellCheckHandler, ContextMenuListener, ContextMenuBuilder} from 'electron-spellchecker';

window.spellCheckHandler = new SpellCheckHandler();
window.spellCheckHandler.attachToInput();

// Start off as US English, America #1 (lol)
window.spellCheckHandler.switchLanguage('en-US');

let contextMenuBuilder = new ContextMenuBuilder(window.spellCheckHandler);
let contextMenuListener = new ContextMenuListener((info) => {
  contextMenuBuilder.showPopupMenu(info);
});
```

## Language Auto-Detection

The spell checker will attempt to automatically check the language that the user is typing in and switch on-the fly. However, giving it an explicit hint by calling `switchLanguage`, or providing it a block of sample text via `provideHintText` will result in much better results.

Sample text should be text that is reasonably likely to be in the same language as the user typing - for example, in an Email reply box, the original Email text would be a great sample, or in the case of Slack, the existing channel messages are used as the sample text.

## About node-spellchecker

This module uses a fork of Atom's excellent `node-spellchecker` that takes a slightly different path on Windows by using Hunspell only. You can find the source [here](https://github.com/felixrieseberg/node-spellchecker).

## Learning more

* Run `npm start` to start [the example application](https://github.com/electron-userland/electron-spellchecker/tree/master/example) and play around.
* Read [the class documentation](https://electron-userland.github.io/electron-spellchecker/docs/) to learn more.
npm package: @sameer52718/dotenv-linter
Description: A linter for .env files to ensure consistency with .env.example
Author: Sameer Shaikh
Latest version: 1.1.1

@sameer52718/dotenv-linter
Note: Replace with your project logo or screenshot URL.
A linter for .env files to ensure consistency with .env.example.
Features

✅ Detect missing variables compared to .env.example
✅ Warn about extra variables in .env not listed in .env.example
✅ Flag duplicate keys
✅ Optional: Check for empty values
✅ CLI + Node API
✅ Create .env.example from .env file

Installation
npm install @sameer52718/dotenv-linter

Usage
CLI
npx @sameer52718/dotenv-linter --env .env --example .env.example --check-empty

Options:

--env, -e: Path to .env file (default: .env)
--example, -x: Path to .env.example file (default: .env.example)
--check-empty: Check for empty values in .env file
--create-example: Create .env.example from .env file

To create a .env.example file:
npx @sameer52718/dotenv-linter --create-example

Node API
const DotenvLinter = require('@sameer52718/dotenv-linter');

const linter = new DotenvLinter({ checkEmptyValues: true });
const results = linter.lint('.env', '.env.example');

console.log(results);

// Create .env.example
linter.createExampleFile('.env', '.env.example');

Example
Given:
# .env
API_KEY=12345
DATABASE_URL=
EXTRA_VAR=hello

Running:
npx @sameer52718/dotenv-linter --create-example

Output:
Created .env.example at .env.example

Content of .env.example:
API_KEY=
DATABASE_URL=
EXTRA_VAR=

License
MIT
Website
Project Homepage
Contributing
Contributions are welcome! Please open an issue or submit a pull request.