open-index/open-npm huggingface dataset:
npm package: @heptacode/military-letter
Description: Unofficial library to send letters to ROK Armed Forces Training Center
Author: heptacode
Latest version: 0.3.1

<div align="center">

# Military Letter

</div>

## 소개

> Unofficial library to send letters to ROK Armed Forces Training Center

> 비공식 국군훈련소 인터넷 편지 라이브러리

## 알림

현재 지원되는 군종은 육군(더캠프), 공군입니다.
이 라이브러리를 사용함으로써 발생하는 문제에 대한 책임은 사용자에게 있습니다.

## 기술 스택

![TypeScript](https://img.shields.io/badge/TypeScript-282C34.svg?&style=for-the-badge&logo=typescript)
![Yarn Berry](https://img.shields.io/badge/Yarn_Berry-282C34.svg?&style=for-the-badge&logo=yarn)
![ESBuild](https://img.shields.io/badge/ESBuild-282C34.svg?&style=for-the-badge&logo=esbuild)
![Jest](https://img.shields.io/badge/Jest-282C34.svg?&style=for-the-badge&logo=jest)

## 사용하기

- $ `yarn add @heptacode/military-letter`
- `examples` 폴더의 예시들을 확인해주세요.
- 별도의 설정 없이 뉴스 보내기 기능만 이용하려면 이 Repository를 [Fork](https://github.com/heptacode/military-letter/fork)한 후 trainees.example.ts 파일을 참고하여 trainees.ts 파일을 examples 폴더에 생성해주세요.
- 성명, 생년월일, 입대일자가 올바르지 않으면 정상적으로 전달되지 않습니다.

## trainees.ts 설정하기

examples/trainees.example.ts를 참고해주세요.

| 키        | 타입        | 설명                                    | 기본값         |
| --------- | ----------- | --------------------------------------- | -------------- |
| name      | string      | 훈련병 성명                             | 필수 입력 사항 |
| type      | TraineeType | 군종(육군/공군)                         | '육군'         |
| unit      | TraineeUnit | 입영부대(육군만 입력)                   | '육군훈련소'   |
| birthDate | string      | 생년월일                                | 필수 입력 사항 |
| enterDate | string      | 입영일                                  | 필수 입력 사항 |
| startDate | string      | 시작일(입영일 이후로 자유롭게 지정)     | 필수 입력 사항 |
| endDate   | string      | 종료일(수료일과 관계없이 자유롭게 지정) | 필수 입력 사항 |
| exclude   | boolean     | 대상 제외 여부                          | false          |

```ts
// examples/trainees.ts
import { Trainee, TraineeType } from '@heptacode/military-letter';

export const trainees: Trainee[] = [
  {
    name: '김육군',
    unit: TraineeUnit['55사단'], // '55사단'으로도 입력 가능 (기본: '육군훈련소')
    birthDate: '2000-01-01',
    enterDate: '2022-01-01',
    startDate: '2022-01-01',
    endDate: '2022-02-01',
    exclude: true,
  },
  {
    name: '김공군',
    type: TraineeType.AIR_FORCE, // 공군인 경우 (기본: '육군')
    birthDate: '2000-01-01',
    enterDate: '2022-01-01',
    startDate: '2022-01-01',
    endDate: '2022-02-01',
  },
];
```
npm package: @heq/server-redis
Description: Redis Adapter for heq-server
Author: Tung Vu
Latest version: 2.0.5

# Redis Adapter for heq-server

[heq-server](https://npm.im/heq-server) is a light-weight persistent and stateless message queue over http protocol. When starting heq-server with @heq/server-redis adapter, redis will be used as the persistence datastore

## Usage

```js
const adatper = require('@heq/server-redis')

// example
const queue = adatper({
  ns: 'some-namespace',
  url: 'redis://localhost:6379/1'
})

// commit
const committedEvent = await queue.commit({ type: 'some event', payload: { some: 'value' } });

// query
const events = await queue.query({ from: 5, to: 10 }); // omitting `to` to query up to the latest event

// subscription
const { events$ } = queue.subscribe();

const subscription = events$.observe(event => { /* ... */ });

// unsubscribe
subscription.unsubscribe()
```

## Configuration

This adapter requires 2 options

| option name | data type                | description                                                                                              |
| ----------- | ------------------------ | -------------------------------------------------------------------------------------------------------- |
| url         | `string` &#124; `object` | must be an valid option that [`redis.createClient` receives](http://redis.js.org/#api-rediscreateclient) |
| ns          | `string`                 | a namespace to allowing multiple queues can be run in one instance of redis                              |
npm package: @heq6/redux-subscriber
Description: Subscribe to changes in any part of redux state
Author: Alexander Ivantsov
Latest version: 1.1.2

# redux-subscriber

[![Build Status](https://travis-ci.org/ivantsov/redux-subscriber.svg?branch=master)](https://travis-ci.org/ivantsov/redux-subscriber)
[![codecov](https://codecov.io/gh/ivantsov/redux-subscriber/branch/master/graph/badge.svg)](https://codecov.io/gh/ivantsov/redux-subscriber)
[![npm version](https://badge.fury.io/js/redux-subscriber.svg)](https://badge.fury.io/js/redux-subscriber)

This package allows you to subscribe to changes in any part of [Redux](https://github.com/reactjs/redux) state.

## Installation

`npm install redux-subscriber --save`

## Usage

_store.js_

```js
import {createStore} from 'redux';
import initSubscriber from 'redux-subscriber';

const store = createStore(...);

// "initSubscriber" returns "subscribe" function, so you can use it
const subscribe = initSubscriber(store);
```

_somewhere-else.js_

```js
// or you can just import "subscribe" function from the package
import {subscribe} from 'redux-subscriber';

const unsubscribe = subscribe('user.messages.count', state => {
  // do something
});

// if you want to stop listening to changes
unsubscribe();
```

## Examples

- https://github.com/ivantsov/yandex-mail-notifier-chrome - real app that uses `redux-subscriber`

## API

#### `initSubscriber(store)` (_default export_) - initialize `redux-subscriber`, so after that you can use `subscribe` method.

#### Options

- `store` - instance of Redux store.

Returns `subscribe` function.

#### `subscribe(key, callbackFunction)` - subscribe `callbackFunction` to changes.

#### Options

- `key` - string which specified the part of state (e.g. `user.message.count`) to listen to.
- `callbackFunction` - function which will be called when the part of state has changed. New state is passed as a parameter.

Returns `unsubscribe` function which can be called to unsubscribe from changes.
npm package: @her-app/react-native-autotrack-growingio
Description: GrowingIO autotrack SDK for ReactNative
Author: liangdengke
Latest version: 0.0.1

# GIORNHOOK

到工程目录下执行
`npm install --save https://github.com/growingio/GIORNHook.git`

#### Mac:
1. 打开命令行
2. 进入到node_modules/react-native-autotrack-growingio/目录下
3. 执行 `./hook.js -run`

#### Windows:
1. 在电脑上安装node
2. 打开命令行
3. 进入到node_modules/react-native-autotrack-growingio/目录下
4. 执行 `node npm -i`
5. 执行 `node ./hook.js -run`
npm package: @her-app/react-native-growingio
Description: GrowingIO SDK for ReactNative
Author: gaoguanling
Latest version: 0.0.7

# GrowingIO React Native SDK Reference

接入文档请参见[官网文档](https://docs.growingio.com/docs/sdk-integration/react-native-wu-mai-dian-sdk/),示例请参照examples/App.js
npm package: @hera-al/atn-proxy
Description: Anthropic Tool Name Proxy — translates tool names > 64 chars for OpenAI-compatible endpoints
Author: TGP
Latest version: 1.0.3

# @hera-al/atn-proxy

> **Part of [Hera Artificial Life](https://github.com/hera-artificial-life/hera-al)** — an opinionated AI assistant platform that runs locally on your machine. This package provides the tool name translation proxy used by Hera agents to communicate with OpenAI-compatible endpoints. It can also be used independently in any Node.js project.

**Anthropic Tool Name Proxy** — sits between the Claude Agent SDK and OpenAI-compatible endpoints (e.g. OpenRouter), resolving the 64-character tool name limit.

```
Agent SDK  -->  ATN-Proxy (:4181)  -->  OpenRouter  -->  Model
```

## What it does

| Direction | Action |
|-----------|--------|
| **Request** | Truncates `tools[].name` to 64 chars using a deterministic hash suffix |
| **Request** | Rewrites `?beta=true` query param into the `anthropic-beta` header |
| **Request** | Truncates `tool_use.name` in conversation history to match |
| **Response** | Remaps truncated tool names back to originals (stream + non-stream) |
| **Response** | Normalizes `usage{}` to Anthropic format (missing fields default to 0) |
| **Response** | Wraps non-JSON responses (HTML 404) into Anthropic-compatible errors |
| **Response** | Handles `/count_tokens` locally with a token estimate |

## Install

```bash
npm install -g @hera-al/atn-proxy
```

Or run from source:

```bash
git clone https://github.com/hera-artificial-life/hera-al.git
cd hera-al/atn-proxy
npm install
npm run build
```

## Usage

```bash
# Start with defaults (port 4181, target openrouter.ai)
atn-proxy

# Custom port and verbose logging
atn-proxy --port 8080 --verbose

# Show all options
atn-proxy --help
```

### Options

| Flag | Default | Description |
|------|---------|-------------|
| `--port <n>` | `4181` (env: `PORT`) | Listen port |
| `--target <url>` | `https://openrouter.ai` | Upstream endpoint |
| `--prefix <path>` | `/api` | Target path prefix |
| `--max-name <n>` | `64` | Max tool name length |
| `--logs <dir>` | `./logs` | Log directory |
| `--verbose` | off (env: `VERBOSE=1`) | Debug logging |

### Connect the Agent SDK

```bash
ANTHROPIC_BASE_URL=http://localhost:4181 \
ANTHROPIC_AUTH_TOKEN=sk-or-v1-xxx \
ANTHROPIC_API_KEY="" \
node your-agent.mjs
```

## Logging

Logs are written to `./logs/atn-proxy.log` with automatic rotation:
- Max file size: 10 MB
- Rotated files: up to 9 (`atn-proxy.1.log` ... `atn-proxy.9.log`)

## How tool name truncation works

When a tool name exceeds the max length, ATN-Proxy generates a deterministic short name by keeping a readable prefix and appending an 8-char SHA-256 hash:

```
mcp__very-long-server-name__very_long_tool_name
  --> mcp__very-long-server-name__very_long_t_a1b2c3d4
```

The mapping is maintained in memory for the proxy session. Response tool names are automatically restored to the originals before reaching the SDK.

## License

MIT
npm package: @hera-al/server
Description: Hera Artificial Life — Multi-channel AI agent gateway with autonomous capabilities
Author: TGP
Latest version: 1.6.45

# 💎 Hera Artificial Life

**The AI that doesn't just chat — it acts, evolves, and thinks ahead.**

Hera is an autonomous AI platform built on Claude Agent SDK. Multi-channel gateway (Telegram, WhatsApp, Discord, WebChat), memory that evolves overnight, self-programming skills, distributed execution nodes, and a real-time admin panel.

Not another chatbot wrapper.

---

## Highlights

- **True Autonomy** — Schedules tasks, monitors events, creates its own skills
- **Multi-Channel** — Telegram, WhatsApp, Discord, WebChat with unified context
- **Memory Evolution** — Nightly consolidation with semantic search and concept graph
- **Nostromo** — Real-time admin panel for monitoring, configuration, orchestration
- **Remote Nodes** — Shell execution, browser automation, cross-platform actions
- **Skills System** — Extensible capabilities (Google Workspace, Apple Notes, SSH, weather, and more)
- **PLASMA** — Event-sourced dynamic UI system for AI-generated interfaces
- **Pico Agents** — Multi-model subagents (Council pattern) via OpenRouter
- **Docker Ready** — One command to production

---

## Quick Start

```bash
git clone https://github.com/hera-artificial-life/hera-al.git
cd hera-al
cp .env.example .env   # Add your ANTHROPIC_API_KEY
./docker/hera-start.sh
```

---

## Documentation

Full documentation, architecture details, installation guide, skill development, and contributing guidelines:

**📖 [github.com/hera-artificial-life/hera-al](https://github.com/hera-artificial-life/hera-al)**

---

## Ecosystem

| Package | Description |
|---------|-------------|
| `@hera-al/server` | Core gateway |
| `@hera-al/browser-server` | WebChat UI component |
| `@hera-al/standardnode` | Remote execution node client |

- **GitHub**: [hera-artificial-life](https://github.com/hera-artificial-life)
- **OSXNode**: [hera-artificial-life/osxnode](https://github.com/hera-artificial-life/osxnode)
- **npm**: [@hera-al](https://www.npmjs.com/org/hera-al)

---

## License

**MIT** — see [LICENSE](./LICENSE).

Core components are free and open source. Build, fork, modify, deploy commercially.

---

<p align="center">
  <strong>💎 Hera Artificial Life</strong><br>
  <em>Opinionated AI. Curated experience. Unprecedented autonomy.</em><br><br>
  <a href="https://github.com/hera-artificial-life/hera-al">GitHub</a> · <a href="https://www.npmjs.com/org/hera-al">npm</a> · heralife.dev@gmail.com
</p>
npm package: @herablog/spindle-ui
Description: Spindle (Ameba Design System) UI Components
Latest version: 0.15.0-1

# Spindle UI (In development)

Spindle (Ameba Design System) UI Components

<p align="center">
  <img alt="Spindle" src="./docs/images/components.png" width="400">
</p>

> Spindle UIは試験開発中のため、大幅に変更される可能性があります。安定版リリースまでの間はバージョン番号は0となり、バージョンに関わらずbreaking changeが行われることがありますので、利用時には注意してください。変更内容は、[CHANGELOG](CHANGELOG.md)に記載されています。

![MIT licence](https://img.shields.io/npm/l/@openameba/spindle-ui) ![npm](https://img.shields.io/npm/v/@openameba/spindle-ui)


Spindle UIは、Amebaのデザインシステム「Spindle」で定義されたコンポーネントを配布するライブラリです。様々なタイプのプロジェクトに導入できるように設計されています。

## コンポーネント一覧
利用可能なコンポーネントは、[Storybook](https://ameba-spindle.web.app/)で公開されています。各コンポーネントの開発状況は[Stoybook Doc](https://ameba-spindle.web.app/?path=/docs/button--large)のStability Budgeで以下のように表されています。

- ![stability-stable](https://img.shields.io/badge/stability-stable-green.svg) 想定された機能が実装、テストされており本番環境で利用できます
- ![stability-unstable](https://img.shields.io/badge/stability-unstable-yellow.svg) 足りていない機能や不安定な動作があり、まだ完全ではないですが、本番環境で利用できます
- ![stability-wip](https://img.shields.io/badge/stability-work_in_progress-lightgrey.svg) 開発中のため、本番環境での利用はしない方がよいでしょう
- ![stability-experimental](https://img.shields.io/badge/stability-experimental-orange.svg) 実験的な機能で大きな変更や削除される可能性があります
- ![stability-deprecated](https://img.shields.io/badge/stability-deprecated-red.svg) 廃止される予定のため、できるだけはやく利用を停止してください

## インストール
```
npm install @openameba/spindle-ui
```
```
yarn add @openameba/spindle-ui
```

## 利用方法
Spindle UIは様々なパターンのアプリケーションで利用できます。詳細は各サンプルコードを閲覧してください。

- [React with CSS Modules](/examples/css-modules/)
- [React with PostCSS](/examples/postcss)
- [React with Sass](/examples/sass/)
- [React with styled-components](/examples/styled-components/)
- [Preact](/examples/preact/)
- [HTML](/examples/html/)

## ブラウザサポート
Spindle UIはFirefox、Google Chrome、Microsoft Edge、Safariの最新版とInternet Explorer 11で動作確認しています。ただし、CSS custom propertiesを使用しているため、Internet Explorer 11での利用時には[ie11-custom-properties](https://www.npmjs.com/package/ie11-custom-properties)や[css-vars-ponyfill](https://github.com/jhildenbiddle/css-vars-ponyfill)などpolyfillとの併用が必要です。

## 開発方法

```
yarn install
yarn dev # storybookが起動します
```

## ライセンス
Spindle IconsはMITライセンスで公開されています。ただし、アイコンは[Spindle Icons](../spindle-icons/)に準じて、Creative Commons BY-NC-ND 4.0ライセンスで公開されています。

## 関連ドキュメント
- [Design Doc](docs/design-doc.md)
npm package: @herablog/web-vitals.log
Description: Outputs Core Web Vitals to console for debugging.
Author: herablog
Latest version: 0.2.0

# `web-vitals.log` (alpha)
Wrapper of [GoogleChrome/web-vitals](https://github.com/GoogleChrome/web-vitals).

This script measures [Core Web Vitals](https://web.dev/vitals/) and outputs the result to console while you are using sites.

In Core Web Vitals, runtime values are important, so developers need to use sites in a natural way. They should scroll down to collect "cumulative" layout shifts, and sometimes should tap an element below the fold for FID.

The values can be displayed as warning when exceeding its thresholds.

![FID, CLP and Layout shift values is displaying in console. The value can be displayed as warning when exceeding thresholds.](https://github.com/herablog/web-vitals.log/raw/main/screenshots/logs.png)

You can also see the specific element name with the value. This can be helpful for developers to inspect the reason of the result.

![Specific element for LCP is displaying in console](https://github.com/herablog/web-vitals.log/raw/main/screenshots/element.png)

## Usage

### Development
This script can load via JavaScript module. 

```html
<script type="module" src="https://unpkg.com/@herablog/web-vitals.log@0.2.0/web-vitals.log.js"></script>
```

### Production
Browser extension like [Custom JavaScript for websites](https://chrome.google.com/webstore/detail/custom-javascript-for-web/poakhlngfciodnhlhhgnaaelnpjljija) may be useful when you track the metrics in production.

```JavaScript
import('https://unpkg.com/@herablog/web-vitals.log@0.2.0/web-vitals.log.js');
```

![Load script with "import('https://unpkg.com/@herablog/web-vitals.log@0.2.0/web-vitals.log.js');" in Custom JavaScript for websites](https://github.com/herablog/web-vitals.log/raw/main/screenshots/extension.png)