open-index/open-npm huggingface dataset:
npm package: @organon-methodology/testing
Description: Semantic testing framework for automated tier-4 invariant verification
Author: Organon Methodology Contributors
Latest version: 0.5.2

# @organon-methodology/testing

Semantic testing framework for automated tier-4 invariant verification in [Organon](https://github.com/VledicFranco/organon) projects.

## Install

```bash
npm install --save-dev @organon-methodology/testing
```

## Assertions

| Assertion | Purpose |
|-----------|---------|
| `assertMaxValue` | Enforce numeric limits (line counts, token estimates, array lengths) |
| `assertFileExists` | Verify required files are present (globs supported) |
| `assertNamingConvention` | Enforce naming patterns (kebab-case, snake_case, custom regex) |
| `assertExportsPresent` | Verify modules export expected symbols |
| `assertNoSideEffects` | Detect forbidden patterns in source files |
| `assertCustom` | Escape hatch for arbitrary validation logic |

All assertions resolve files from disk using glob patterns and provide structured violation reports.

## Usage with Vitest

```ts
import { testInvariant } from '@organon-methodology/testing/vitest';
import { assertMaxValue } from '@organon-methodology/testing';

testInvariant('INV-EXAMPLE-1', 'README files stay under 100 lines', async () => {
  await assertMaxValue({
    pattern: '**/README.md',
    extract: /\n/g,      // count newlines
    max: 100,
    cwd: process.cwd(),
  });
});
```

The `testInvariant` adapter wraps your test runner (Vitest) so invariant tests are tracked in a registry and tagged with structured IDs.

## API

### `testInvariant(id, description, fn)`

Registers and runs an invariant test. The `id` must match the pattern `INV-<SCOPE>-<N>`.

### `assertMaxValue(options)`

Resolves files matching `pattern`, extracts numeric values, and fails if any exceed `max`. Options:

- `pattern` — glob pattern for files
- `extract` — regex or function to extract a count from each file
- `max` — maximum allowed value
- `cwd` — working directory for glob resolution
- `requireMatches` — fail if no files match (default: `true`)

### `assertFileExists(options)`

Verifies that files matching the given patterns exist.

### `assertNamingConvention(options)`

Checks that file names or extracted strings conform to a naming convention (`kebab-case`, `snake_case`, `camelCase`, `PascalCase`, or custom regex).

### `assertExportsPresent(options)`

Parses source files and verifies that expected export names are present.

### `assertNoSideEffects(options)`

Scans files for forbidden patterns (e.g., `console.log`, `process.exit`) and fails if any are found.

### `assertCustom(options)`

Runs an arbitrary validation function. Use when no built-in assertion fits.

## License

MIT
npm package: @organon/commitlint-config
Description: A custom config for commitlint within the organon monorepo
Author: Jason Lenoble
Latest version: 0.1.0

## @organon/commit-lint

This is a custom config for commitlint to be used consistently within the organon monorepo.
Mostly it picks rules in accordance with possible choices defined by commitlint (see index.ts).
But it does define types as an emoji + a common string such as "👷 build" or "✅ test".

The plugin must be used in tandem with the conventional-changelog-organon package (naming scheme is
hard-coded in conventional-changelog, so it is here).
The latter plugin enables conventional-changelog to enforce emojis in commit titles.
npm package: @organw/wysiwyg-editor
Description: Rich-text editor powered by React
Author: Gergely Nagy
Latest version: 0.48.0

# @organw/wysiwyg-editor

[![npm version](https://badge.fury.io/js/%40organw%2Fwysiwyg-editor.svg)](https://badge.fury.io/js/%40organw%2Fwysiwyg-editor)

> Rich-text editor powered by React.

## Installation

```bash
npm install @organw/wysiwyg-editor
```

## Usage

```javascript
import React from 'react';
import WysiwygEditor from '@organw/wysiwyg-editor';
// ...
<div>
    <WysiwygEditor />
</div>
// ...
```
npm package: @orgasmo/orgasmo
Description: Orgasmo is a set of components and tools for developers that enhances Nextjs to help you effortless build even more outstanding web apps
Author: Antonio Fernández Porrúa
Latest version: 1.13.14
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# orgasmo

nextjs plugin that adds in-data full dynamic pages.

## Quick Start

```bash
npm init orgasmo your-new-site-name
```

## Documentation

[docs.orgasmo.dev](https://docs.orgasmo.dev)
npm package: @orgasmo/strapi-template
Description: A Strapi template to manage an orgasmo webapp
Author: Antonio Fernández Porrúa
Latest version: 1.13.14
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# Strapi's template for orgasmo

Create your strapi server

```sh
npx create-strapi-app@latest orgasmo-strapi --quickstart --template @orgasmo/strapi-template
```

Create your orgasmo web app

```sh
npm init orgasmo your-webapp-name
```

Install the strapi driver

```sh
cd your-webapp-name
npm i @orgasmo/strapi
```

Set the environmental variables _(for instance in .env.local)_

- `ORGASMO_DRIVER=@orgasmo/strapi`
- `STRAPI_API_URL`
- `STRAPI_API_TOKEN`

## Orgasmo's Documentation

[docs.orgasmo.dev](https://docs.orgasmo.dev)
npm package: @orgbluetooth/react-native-arunpayupayment
Description: payment
Author: arun
Latest version: 0.1.1

# react-native-arunpayupayment

payment

## Installation

```sh
npm install react-native-arunpayupayment
```

## Usage


```js
import { multiply } from 'react-native-arunpayupayment';

// ...

const result = await multiply(3, 7);
```


## Contributing

See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.

## License

MIT

---

Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob)
npm package: @orgbluetooth/react-native-payupayment
Description: testt
Author: arun
Latest version: 0.1.1

# react-native-payupayment

testt

## Installation

```sh
npm install react-native-payupayment
```

## Usage


```js
import { PayupaymentView } from "react-native-payupayment";

// ...

<PayupaymentView color="tomato" />
```


## Contributing

See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.

## License

MIT

---

Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob)
npm package: @orgcheck/sfdx-plugin
Description: Org Check is an easy-to-install and easy-to-use Salesforce application in order to quickly analyze your org and its technical debt.
Author: Vincent FINET
Latest version: 8.0.2

# Org Check sf CLI plugin

## More about Org Check:
- [Website](https://SalesforceLabs.github.io/OrgCheck/)
- [LinkedIn](https://www.linkedin.com/company/orgchecksfdc/)
- [AppExchange](https://sfdc.co/OrgCheck-InstallToday-AppExchange)
- [FAQ](https://SalesforceLabs.github.io/OrgCheck/faq/)


## Have valuable feedback?

You can log any issues and new ideas in our [tracker](https://github.com/SalesforceLabs/OrgCheck/issues).
npm package: @orgg/react-loading-button
Description: @orgg/react-loading-button React component
Latest version: 1.0.5

# @orgg/react-loading-button

[![Travis][build-badge]][build]
[![npm package][npm-badge]][npm]
[![Coveralls][coveralls-badge]][coveralls]

Describe @orgg/react-loading-button here.

[build-badge]: https://img.shields.io/travis/user/repo/master.png?style=flat-square
[build]: https://travis-ci.org/user/repo

[npm-badge]: https://img.shields.io/npm/v/npm-package.png?style=flat-square
[npm]: https://www.npmjs.org/package/npm-package

[coveralls-badge]: https://img.shields.io/coveralls/user/repo/master.png?style=flat-square
[coveralls]: https://coveralls.io/github/user/repo
npm package: @orginone/app-sdk
Description: 奥集能前端SDK
Author: realVeer
Latest version: 1.3.3

## 奥集能前端 SDK

![npm](https://img.shields.io/npm/v/@orginone/app-sdk?color=green)


### 注意：
<div style="color:red">
<ul>
<li>SDK请在平台上架应用后在平台内打开进行调用，直接使用无效！</li>
<li>使用前请先了解ES6相关知识，包括<c>Promise</c>的用法以及await的使用条件</li>
</ul>
</div>

奥集能前端SDK，利用postMessage进行跨iframe的安全数据请求。授权后，可以访问平台相关的各类接口与服务。

SDK采用TypeScript开发，采用npm包引入可以自动获得完善的类型定义和代码自动补全。
### 快速开始

1. 引入和初始化

    可以使用ES7 `async/await` 语法简化异步调用
    ```javascript
    import OrginoneSdk from "@orginone/app-sdk";
    // ...

    // 创建时提供传入初始化配置，可以不传
    const client = new OrginoneSdk({
        timeout: 60000
    });
    // 等待初始化完成
    const appInfo = await client.init();
    ```

2. 调用平台接口

    所有可用接口均放在`actions`中。
 
    返回`Promise`，如果平台返回值的`success`字段为`false`，会自动触发reject。
 
    ```javascript
    try {
     // 获取用户的tokenInfo
      const res = await client.actions.person.tokenInfo();
      const tokenInfo = res.data;
      console.log(tokenInfo);
    } catch (error) {
      console.error(error);
    }
    ```
npm package: @orginone/core
Description: 奥集能核心
Author: LoveKicher
Latest version: 0.2.9

# `@orginone/core`

核心代码，抽象了包括网络请求、持久化、状态管理之类的框架/环境依赖，可以用于Web, nodejs, 小程序, Electron/nw.js桌面端等多种环境。

## 项目结构

```
src
  ├ config 【抽象】配置
  ├ di 依赖注入
  ├ lib 奥集能业务逻辑包
  │  ├ api 网络API封装
  │  ├ base 业务通用类型
  │  ├ domain 业务领域代码
  │  │  ├ xx xx领域
  │  │  └ yy yy领域
  │  └ store 存储类型定义（需要持久化的对象）
  ├ network 【抽象】网络
  ├ state 【抽象】状态管理
  ├ storage 【抽象】持久化
  ├ types 通用类型
  ├ App.ts 应用
  └ index.ts 入口
```
npm package: @orginone/react-office-viewer
Description: A React component to preview document of 'pdf,xls,xlsx,docx', which can automatically identify file types.
Author: yiiran
Latest version: 1.0.5

# react-office-viewer:    pdf, xls, xlsx, docx
# Features
1. Temporary support 'pdf,xls,xlsx,docx'.For more types, please pay attention to the following updates.      
2. Automatically identify file types of 'pdf,xls,xlsx,doc,docx,ppt,pptx' according to file arraybuffer. File suffix or file name is better but not necessary. Further more, it can avoid wrong judgment by the falsy changes of file suffix.   
能自动识别文件类型，传递文件名称不是必须的（但最好传递），可以避免后缀名错误修改导致的错误类型判断。   
3. PDF viewer has a full functional toolbar with common functions of pagination,zoom,rotate,print,thumbview,etc.      
其中pdf 预览组件有功能健全的toolbar，实现了翻页、缩放、旋转、打印、缩略图等常用功能。
4. The inner prompt language supports both Chinese and English, you can choose it by passing a param.(Default Chinese)   
组件内置的提示语言支持中英双语，你可以通过传递参数来选择。（默认中文）  
5. Implemented based on react 16.8.  

# Usage
```
npm install react-office-viewer

```
```
import Viewer from "react-office-viewer"

//If you only want to preview a certain format, you can import them individually.
import { SheetViewer, PdfViewer, DocxViewer } from "react-office-viewer"
```

## Params 
```
// Pass a url that can get the file stream. 
<Viewer file="http://xxxx"/>   

// Or, pass a File Object.
<Viewer file={ fileObject }/>

<input type='file' onChange={this.getFileObject} />
getFileObject = e => {
  this.setState({ fileObject: e.target.files[0] });
}


//other optional params:
let params = {
  fileName,  //PropTypes.string
  locale: 'en', // PropTypes.oneOf(['zh','en'])
  width, //PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
  height, //PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
  timeout: 10000, //PropTypes.number. Timeout limit of url request, only works on sheet/docx previewer.
}

<Viewer file="http://xxxx" {...params} />

```
# Demo
效果样例：
![image](https://github.com/react-office-viewer/react-office-viewer/blob/gh-pages/build/pic/pdf.png)
![image](https://github.com/react-office-viewer/react-office-viewer/blob/gh-pages/build/pic/docx.png)
![image](https://github.com/react-office-viewer/react-office-viewer/blob/gh-pages/build/pic/xlsx.png)

# Dependencies
handsontable,  
mammoth,   
xlsx, 
pdfjs-dist
npm package: @orglnd/org-parse
Description: * @orglnd/org-parse
Latest version: 0.1.0-alpha.0

* @orglnd/org-parse

> An org-mode parser

** Install

Using npm:

#+BEGIN_SRC sh
npm install --save-dev @orglnd/org-parse
#+END_SRC

or using yarn:

#+BEGIN_SRC sh
yarn add @orglnd/org-parse --save-dev
#+END_SRC
npm package: @orgloop/cli
Description: OrgLoop command-line interface
Latest version: 0.7.8

# @orgloop/cli

Command-line interface for OrgLoop -- Organization as Code runtime. Validate configs, check environment, plan changes, and run the event loop.

## Install

```bash
npm install -g @orgloop/cli
```

## Commands

```
orgloop init              Scaffold a new orgloop.yaml (interactive)
orgloop validate          Validate config syntax and connector schemas
orgloop env               Check environment variables (shows missing with setup help)
orgloop doctor            System health check (connectors, services, credentials)
orgloop plan              Preview what start will do (sources, actors, routes)
orgloop start             Start the event loop
orgloop stop              Stop a running instance
orgloop status            Show runtime status
orgloop logs              View event logs
orgloop test              Dry-run a single event through the pipeline
orgloop routes            List configured routes
orgloop inspect           Inspect resolved config
orgloop add               Add a connector or module to config
orgloop hook              Manage lifecycle hooks
orgloop service           Manage background service
orgloop install-service   Install as a system service
orgloop version           Print version info
```

## Global flags

```
-c, --config <path>       Path to orgloop.yaml (default: ./orgloop.yaml)
-w, --workspace <name>    Workspace name (default: "default")
-v, --verbose             Verbose output
--json                    Machine-readable JSON output
--quiet                   Errors only
```

## Quick start

```bash
# Scaffold a new project
orgloop init

# Check your environment
orgloop env

# Validate the config
orgloop validate

# Preview the plan
orgloop plan

# Start routing events
orgloop start
```

## Documentation

Full documentation at [orgloop.ai](https://orgloop.ai)

## License

MIT
npm package: @orgloop/logger-console
Description: OrgLoop console logger — colored human-readable output
Latest version: 0.7.8

# @orgloop/logger-console

OrgLoop console logger -- colored, human-readable output for development and debugging. Writes to stderr so stdout stays clean for JSON output.

## Install

```bash
npm install @orgloop/logger-console
```

## Configuration

```yaml
loggers:
  - name: console
    type: "@orgloop/logger-console"
    config:
      level: info        # Minimum log level: debug | info | warn | error
      color: true        # Use ANSI colors in output
      compact: true      # One line per entry (false for verbose multi-line)
      show_payload: false # Show event payload metadata in verbose mode
```

All fields are optional and shown with their defaults.

## Behavior

Each log entry is formatted with a timestamp, phase icon, and contextual fields:

```
14:32:01.123 ● source.emit src=github type=resource.changed
14:32:01.456 ► route.match route=pr-review tgt=agent
14:32:02.789 ✓ deliver.success tgt=agent 342ms
```

Phase icons and colors are mapped by event lifecycle phase:

| Phase | Icon | Color |
|-------|------|-------|
| `source.emit` | ● | blue |
| `route.match` | ► | cyan |
| `deliver.success` | ✓ | green |
| `deliver.failure` | ✗ | red |
| `transform.error` | ⚠ | yellow |
| `system.start` / `system.stop` | ● | magenta |

Level filtering maps each phase to a severity (debug/info/warn/error). Setting `level: warn` suppresses info-level phases like `route.match` and `deliver.success`.

Set `compact: false` and `show_payload: true` for verbose multi-line output with metadata.

## Documentation

Full documentation at [orgloop.ai](https://orgloop.ai)

## License

MIT
npm package: @orgloop/logger-file
Description: OrgLoop file logger — JSONL with rotation
Latest version: 0.7.8

# @orgloop/logger-file

OrgLoop file logger -- buffered JSONL output with automatic rotation, compression, and cleanup. The default production logger.

## Install

```bash
npm install @orgloop/logger-file
```

## Configuration

```yaml
loggers:
  - name: file
    type: "@orgloop/logger-file"
    config:
      path: "~/.orgloop/logs/orgloop.log"  # Log file path
      format: jsonl                         # Output format (jsonl only)
      rotation:
        max_size: "100MB"    # Rotate when file exceeds this size
        max_age: "7d"        # Delete rotated files after this duration
        max_files: 10        # Keep at most N rotated files
        compress: true       # Gzip rotated files
      buffer:
        size: 100            # Buffer N entries before flushing
        flush_interval: "1s" # Flush at least this often
```

All fields are optional and shown with their defaults.

## Behavior

Log entries are written as newline-delimited JSON (JSONL). Each line is a complete `LogEntry` object:

```json
{"phase":"deliver.success","event_id":"evt_abc123","trace_id":"trc_xyz","source":"github","target":"agent","timestamp":"2025-01-15T14:32:02.789Z","duration_ms":342}
```

**Buffering:** Entries are buffered in memory and flushed when the buffer reaches `size` entries or every `flush_interval`, whichever comes first. The log file is created on init so `tail -f` works immediately.

**Rotation:** When the file exceeds `max_size`, it is renamed with a timestamp suffix (e.g., `orgloop.log.2025-01-15T14-32-02-789Z`) and optionally gzip-compressed. Old rotated files are cleaned up based on `max_files` and `max_age`.

**Path resolution:** Supports `~` expansion to the home directory. Relative paths resolve relative to the YAML config file.

## Documentation

Full documentation at [orgloop.ai](https://orgloop.ai)

## License

MIT
npm package: @orgloop/logger-otel
Description: OrgLoop OpenTelemetry logger — OTLP export for production observability
Latest version: 0.7.8

# @orgloop/logger-otel

OrgLoop OpenTelemetry logger -- exports log entries via OTLP for production observability. Integrates with any OpenTelemetry-compatible backend (Grafana, Datadog, Honeycomb, etc.).

## Install

```bash
npm install @orgloop/logger-otel
```

## Configuration

```yaml
loggers:
  - name: otel
    type: "@orgloop/logger-otel"
    config:
      endpoint: "http://localhost:4318/v1/logs"  # OTLP HTTP endpoint
      protocol: "http/json"                       # http/json | http/protobuf | grpc
      service_name: orgloop                       # OTel service name
      service_version: "0.1.0"                    # OTel service version
      headers:                                    # Custom headers (e.g., auth)
        Authorization: "Bearer ${OTEL_TOKEN}"
      resource_attributes:                        # Additional OTel resource attributes
        deployment.environment: production
      batch:
        max_queue_size: 2048          # Max queue size before dropping
        scheduled_delay_ms: 5000      # Delay between batch exports
        max_export_batch_size: 512    # Max records per export batch
```

All fields are optional and shown with their defaults.

## Behavior

Each OrgLoop `LogEntry` is exported as an OpenTelemetry `LogRecord` with:

- **Severity mapping:** Log phases are mapped to OTel severity levels -- `deliver.failure` and `system.error` become ERROR, `transform.error` and `deliver.retry` become WARN, most others are INFO, and `route.no_match` is DEBUG.
- **Attributes:** All LogEntry fields are exported as `orgloop.*` namespaced attributes (`orgloop.phase`, `orgloop.source`, `orgloop.target`, `orgloop.duration_ms`, etc.).
- **Batching:** Records are batched using the OpenTelemetry `BatchLogRecordProcessor` for efficient export.
- **Body:** The full LogEntry JSON is included as the log record body for backends that support structured log bodies.

## Documentation

Full documentation at [orgloop.ai](https://orgloop.ai)

## License

MIT
npm package: @orgloop/logger-syslog
Description: OrgLoop syslog logger — RFC 5424 for enterprise/unix deployments
Latest version: 0.7.8

# @orgloop/logger-syslog

OrgLoop syslog logger -- RFC 5424 formatted messages for enterprise and Unix deployments. Supports UDP, TCP, and Unix socket transports with zero external dependencies.

## Install

```bash
npm install @orgloop/logger-syslog
```

## Configuration

```yaml
loggers:
  - name: syslog
    type: "@orgloop/logger-syslog"
    config:
      transport: udp       # udp | tcp | unix
      host: "127.0.0.1"   # Syslog server host (udp/tcp)
      port: 514            # Syslog server port (udp/tcp)
      path: "/dev/log"     # Unix socket path (unix transport)
      facility: local0     # Syslog facility
      app_name: orgloop    # APP-NAME field in messages
      include_structured_data: true  # Include [orgloop@49999 ...] SD element
```

All fields are optional and shown with their defaults.

## Behavior

Each log entry is formatted as an RFC 5424 syslog message:

```
<134>1 2025-01-15T14:32:02.789Z myhost orgloop 12345 deliver.success [orgloop@49999 event_id="evt_abc" source="github" target="agent" duration_ms="342"] deliver.success github resource.changed evt_abc
```

**Severity mapping:** OrgLoop log phases are mapped to RFC 5424 severity levels:

| Severity | Phases |
|----------|--------|
| Error (3) | `deliver.failure`, `system.error` |
| Warning (4) | `transform.error`, `deliver.retry` |
| Informational (6) | `deliver.success`, `route.match`, `system.start`, `system.stop` |
| Debug (7) | `source.emit`, `route.no_match`, `transform.start` |

A `system.error` with `metadata.fatal: true` is upgraded to Critical (2).

**Structured data:** When enabled, event metadata is included as an RFC 5424 structured data element using `orgloop@49999` as the SD-ID, with fields like `event_id`, `trace_id`, `source`, `target`, and `duration_ms`.

**Transports:**

- **UDP** (default): Fire-and-forget. Lowest latency, no connection management.
- **TCP**: Reliable delivery with newline-delimited framing (RFC 5425). Auto-reconnects on failure with buffering during reconnection (up to 1000 messages).
- **Unix**: Same as TCP but over a Unix domain socket (e.g., `/dev/log`).

## Documentation

Full documentation at [orgloop.ai](https://orgloop.ai)

## License

MIT
npm package: @orgloop/module-minimal
Description: Minimal OrgLoop module — 1 webhook source, 1 generic actor, 1 example route
Latest version: 0.1.8

# @orgloop/module-minimal

Minimal starter module -- 1 webhook source, 1 generic actor, 1 example route. Use this as a starting point to understand OrgLoop's module system or as a template for building your own modules.

## Install

```bash
orgloop add module minimal
```

## What's Included

**Sources (1):**
- **webhook** -- Generic webhook receiver listening on `/webhook`, emitting `resource.changed` and `message.received` events

**Actors (1):**
- **responder** -- Generic webhook delivery target, posts events to a configurable URL

**Routes (1):**
- **example** -- Forwards `resource.changed` events from the webhook source to the responder actor

**SOPs (1):** `example.md`

## Parameters

| Parameter | Required | Default | Description |
|-----------|----------|---------|-------------|
| `source` | yes | `webhook` | Name of the webhook source connector |
| `actor` | yes | `responder` | Name of the actor connector |

## Required Credentials

| Variable | Description |
|----------|-------------|
| `WEBHOOK_TARGET_URL` | URL where the responder actor delivers events |

## Documentation

Full documentation at [orgloop.ai](https://orgloop.ai)

## License

MIT
npm package: @orgloop/sdk
Description: OrgLoop plugin development kit — interfaces, base classes, and test harnesses
Latest version: 0.7.8

# @orgloop/sdk

OrgLoop plugin development kit — interfaces, base classes, and test harnesses for building connectors, transforms, and loggers.

## Install

```bash
npm install @orgloop/sdk
```

## Usage

### Define a source connector

```typescript
import type { SourceConnector, PollResult, ConnectorRegistration } from '@orgloop/sdk';

const mySource: SourceConnector = {
  async init(config) { /* set up API clients */ },
  async poll(checkpoint): PollResult { /* fetch events since checkpoint */ },
  async shutdown() { /* cleanup */ },
};

export function register(): ConnectorRegistration {
  return { id: 'my-source', source: mySource };
}
```

### Write tests with the test harness

```typescript
import { MockSource, MockActor, createTestEvent, createTestContext } from '@orgloop/sdk';

const source = new MockSource([createTestEvent({ type: 'resource.changed' })]);
const actor = new MockActor();
const ctx = createTestContext();
```

## API

### Types

Core event types, config interfaces, and plugin contracts:

- `OrgLoopEvent`, `OrgLoopEventType` -- event envelope and type union
- `SourceConnector`, `ActorConnector` -- connector interfaces
- `ConnectorRegistration`, `ConnectorSetup` -- plugin registration
- `Transform`, `TransformContext`, `TransformRegistration` -- transform plugin
- `Logger`, `LoggerRegistration` -- logger plugin
- `ProjectConfig`, `OrgLoopConfig` -- configuration types
- `ModuleManifest`, `ModuleParameter` -- module system types

### Helpers

- `generateEventId()` / `generateTraceId()` -- ID generation
- `buildEvent(options)` -- construct well-formed events
- `validateEvent(event)` -- runtime validation
- `parseDuration(str)` -- parse duration strings like `"30s"`, `"5m"`
- `expandTemplate(template, context)` -- module template expansion

### Test harness

- `MockSource` -- configurable source with canned events
- `MockActor` -- records delivered events
- `MockTransform` -- pass-through or custom transform
- `MockLogger` -- captures log entries
- `createTestEvent(overrides?)` -- factory for test events
- `createTestContext()` -- factory for test contexts

## Documentation

Full documentation at [orgloop.ai](https://orgloop.ai)

## License

MIT
npm package: @orgloop/server
Description: OrgLoop HTTP API server
Latest version: 0.7.8

# @orgloop/server

OrgLoop HTTP API server -- exposes the OrgLoop engine over HTTP for remote management and integration.

> **Note:** This package is a placeholder for the v1.1 release. It currently re-exports `@orgloop/core`. The HTTP API surface is under design.

## Install

```bash
npm install @orgloop/server
```

## Status

Planned capabilities:

- REST API for engine lifecycle (start/stop/status)
- Event submission endpoint
- Route and config inspection
- WebSocket event streaming
- Health check endpoints

For now, use [`@orgloop/cli`](https://www.npmjs.com/package/@orgloop/cli) to run OrgLoop, or embed [`@orgloop/core`](https://www.npmjs.com/package/@orgloop/core) directly as a library.

## Documentation

Full documentation at [orgloop.ai](https://orgloop.ai)

## License

MIT
npm package: @orgloop/transform-dedup
Description: OrgLoop dedup transform — deduplicate events within a time window
Latest version: 0.7.8

# @orgloop/transform-dedup

Deduplicate events within a configurable time window using SHA-256 hashing.

## Install

```bash
npm install @orgloop/transform-dedup
```

## Configuration

```yaml
transforms:
  - name: dedup-5m
    type: package
    package: "@orgloop/transform-dedup"
    config:
      key:
        - source
        - type
        - payload.pr_number
      window: "5m"
```

## Config options

| Field | Type | Required | Default | Description |
|-------|------|----------|---------|-------------|
| `key` | `string[]` | yes | -- | Dot-path fields used to build the dedup hash. |
| `window` | `string` | yes | `"5m"` | Duration window. Units: `ms`, `s`, `m`, `h`, `d`. |
| `store` | `string` | no | `"memory"` | Storage backend. Only `"memory"` currently. |

## Behavior

For each event, values at the configured `key` paths are extracted, concatenated (null-separated), and SHA-256 hashed. If the hash was seen within the `window` duration, the event is dropped. Otherwise it passes through and the hash is recorded.

A periodic cleanup timer (interval = max of window duration, 10s) evicts expired entries. State is in-memory only and lost on restart.

## Documentation

Full documentation at [orgloop.ai](https://orgloop.ai)

## License

MIT
npm package: @orgloop/transform-enrich
Description: OrgLoop enrich transform — add, copy, and compute fields on events
Latest version: 0.7.8

# @orgloop/transform-enrich

Add, copy, and compute fields on events before delivery.

## Install

```bash
npm install @orgloop/transform-enrich
```

## Configuration

```yaml
transforms:
  - name: add-metadata
    type: package
    package: "@orgloop/transform-enrich"
    config:
      set:
        payload.team: platform
        payload.environment: production
      copy:
        payload.author: provenance.author
      compute:
        payload.is_critical: "payload.priority === 'P0'"
        payload.large_diff: "payload.lines_changed > 500"
```

## Config options

| Field | Type | Description |
|-------|------|-------------|
| `set` | `object` | Static values to add. Keys are target dot-paths, values are literals. |
| `copy` | `object` | Copy fields. Keys are target dot-paths, values are source dot-paths. |
| `compute` | `object` | Computed fields. Keys are target dot-paths, values are comparison expressions. |

## Behavior

Operations apply in order on a shallow clone of the event:

1. **set** -- Assigns static values at dot-paths. Intermediate objects are created as needed.
2. **copy** -- Reads from source path, writes to target path. Skipped if source is undefined.
3. **compute** -- Evaluates simple comparison expressions (no `eval()`). Supported operators: `===`, `!==`, `>`, `<`, `>=`, `<=`. Values can be quoted strings (`'value'`), numbers, or unquoted identifiers.

All field paths use dot notation for nested access (e.g., `payload.review.state`).

## Documentation

Full documentation at [orgloop.ai](https://orgloop.ai)

## License

MIT
npm package: @orgloop/transform-filter
Description: OrgLoop filter transform — jq-based and match/exclude filtering
Latest version: 0.7.8

# @orgloop/transform-filter

Drop or keep events using dot-path pattern matching or jq expressions.

## Install

```bash
npm install @orgloop/transform-filter
```

## Configuration

### Match / Exclude mode

```yaml
transforms:
  - name: humans-only
    type: package
    package: "@orgloop/transform-filter"
    config:
      match:
        type: "resource.changed"
        "provenance.author_type": "team_member"
      exclude:
        "provenance.author":
          - "dependabot[bot]"
          - "renovate[bot]"
```

### jq mode

```yaml
transforms:
  - name: high-priority
    type: package
    package: "@orgloop/transform-filter"
    config:
      jq: '.payload.priority == "high"'
```

## Config options

| Field | Type | Description |
|-------|------|-------------|
| `match` | `object` | Dot-path field patterns. **All** must match to pass (AND). |
| `match_any` | `object` | Dot-path field patterns. **Any** match keeps the event (OR). |
| `exclude` | `object` | Dot-path field patterns. **Any** match drops the event. |
| `jq` | `string` | jq expression. Truthy = pass, falsy/error = drop. Takes precedence over match/exclude. |

## Behavior

**Match/exclude mode** evaluates in order: `exclude` first (any match drops), then `match` (all must match), then `match_any` (any must match). Fields use dot-notation for nested access (e.g., `provenance.author`). Values support exact strings, numbers, booleans, arrays (match any element), regex patterns (`/pattern/flags`), and comma-separated shorthand (`"alice,bob"`).

**jq mode** pipes the event through a `jq` subprocess (5s timeout). If jq returns a valid JSON object with an `id` field, the modified event replaces the original. Requires `jq` on `PATH`.

## Documentation

Full documentation at [orgloop.ai](https://orgloop.ai)

## License

MIT
npm package: @orgmanager/node-orgmanager-api
Description: A Node.js client for the OrgManager API
Author: OrgManager
Latest version: 1.1.2

# Node OrgManager API

[![NPM](https://nodei.co/npm/node-orgmanager-api.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/node-orgmanager-api./)

A Node.js client for the OrgManager API

# Use

```javascript
const orgmanager = require('node-orgmanager-api')
const token = 'my-token' //https://orgmanager.miguelpiedrafita.com/token
const client = new orgmanager(token)

//Join Org
client.joinOrg('org-id', 'username')

//Get User info
client.getUser()

//Get User Orgs
client.getOrgs()

//Get Org info
client.getOrg('org-id')

//Change Org Password
client.changeOrgPassword('org-id', 'new-password')

//Update Org
client.updateOrg('org-id')

//Delete Org
client.deleteOrg('org-id')

//Get Stats
client.getStats()

//Renenerate Token
client.regenerateToken()

//Renenerate Token and Set new Token
client.regenerateToken(true)
```

# Proxy

```javascript
const orgmanager = require('node-orgmanager-api')
const token = 'my-token' //https://orgmanager.miguelpiedrafita.com/token
const client = new orgmanager(token, 'proxy-url ~> orgmanager')
```


# Installation

This is a [Node.js](https://nodejs.org/) module available through the
[npm registry](https://www.npmjs.com/). It can be installed using the
[`npm`](https://docs.npmjs.com/getting-started/installing-npm-packages-locally) command line tools.

```sh
$ npm install node-orgmanager-api
```

# Dependencies

- [request](https://ghub.io/request): Simplified HTTP request client.
- [request-promise-native](https://ghub.io/request-promise-native): The simplified HTTP request client &#39;request&#39; with Promise support. Powered by native ES6 promises.

# License

MIT
npm package: @orh/vue-chunk-upload
Description: Vue 3 chunk upload
Author: orh
Latest version: 1.2.0

<h1 align="center">
    Vue 3 chunk upload
</h1>

<p align="center">
    <a href="https://www.npmjs.com/package/@orh/vue-chunk-upload">
        <img alt="npm" src="https://img.shields.io/npm/v/@orh/vue-chunk-upload?color=ea2039">
    </a>
    <a href="https://www.npmjs.com/package/@orh/vue-chunk-upload">
        <img alt="npm" src="https://img.shields.io/npm/dt/@orh/vue-chunk-upload?color=ea2039">
    </a>
    <a href="https://github.com/ouronghuang/vue-chunk-upload">
        <img alt="GitHub" src="https://img.shields.io/github/license/ouronghuang/vue-chunk-upload">
    </a>
</p>

* 适用于 Vue 3 的分片上传扩展
* 可以配合 [orh/laravel-chunk-upload](https://github.com/ouronghuang/laravel-chunk-upload) 使用

![demo](./demo.jpg)

## Vue 3.x

1. 安装

```bash
$ yarn add @orh/vue-chunk-upload
```

2. 引入

```javascript
import { createApp } from 'vue';
import App from './App.vue';
import VueChunkUpload from '@orh/vue-chunk-upload';

createApp(App).use(VueChunkUpload).mount('#app')
```

3. 使用

[示例代码](./src/App.vue)

- Props

| 属性 | 说明 | 类型 | 默认值 |
| --- | --- | --- | --- |
| `model-value` | 成功上传的文件路径，可以使用 `v-model` 双向绑定 | `String` | 空 |
| `preprocess-url` | 预处理地址 | `String` | `required` |
| `upload-url` | 上传地址 | `String` | `required` |
| `configs` | 可传入 `axios` 所有配置 | `Object` | `{}` |
| `allow-size` | 允许上传文件大小，单位字节，`0` 表示不限制 | `Number` | `0` |
| `allow-extensions` | 允许上传的文件类型，空数组表示不限制 | `Array` | `[]` |
| `fields-name` | 上传表单字段 | `Object` | `{ filename: 'filename', size: 'size', total: 'total', index: 'index', file: 'file' }` |

- Events

| 事件 | 说明 | 回调参数 |
| --- | --- | --- |
| `invalid-size` | 文件大于设定值时抛出事件 | 错误信息 |
| `invalid-extension` | 选择不支持文件时抛出事件 | 错误信息 |
| `completed` | 上传成功时抛出事件 | 成功上传的文件路径 |

- Slots

| 名称 | 说明 | 可用参数 |
| --- | --- | --- |
| `default` | 进度与展示信息自定义 | `v-slot="{ requestProgress, totalProgress, msg }"` |

## 本地开发/预览

1. 安装依赖

```
$ yarn
```

2. 运行

```
$ yarn serve
```

## License

MIT
npm package: @orh/vue-kityminder
Description: Vue kityminder
Author: orh
Latest version: 2.2.0

<h1 align="center">
    Vue kityminder
</h1>

<p align="center">
    <a href="https://www.npmjs.com/package/@orh/vue-kityminder">
        <img alt="npm" src="https://img.shields.io/npm/v/@orh/vue-kityminder?color=ea2039">
    </a>
    <a href="https://www.npmjs.com/package/@orh/vue-kityminder">
        <img alt="npm" src="https://img.shields.io/npm/dt/@orh/vue-kityminder?color=ea2039">
    </a>
    <a href="https://github.com/ouronghuang/vue-kityminder">
        <img alt="GitHub" src="https://img.shields.io/github/license/ouronghuang/vue-kityminder">
    </a>
</p>

* 适用于 Vue 2/3 思维导图
* 基于 [kityminder-core](https://github.com/fex-team/kityminder-core)

![demo](./demo.jpg)

## Vue 3.x

1. 安装

```bash
$ yarn add @orh/vue-kityminder@2
```

2. 引入

```javascript
import { createApp } from 'vue';
import App from './App.vue';
import VueKityminder from '@orh/vue-kityminder';

createApp(App).use(VueKityminder).mount('#app')
```

3. 使用

[示例代码](./src/App.vue)

## Vue 2.x

1. 安装

```bash
$ yarn add @orh/vue-kityminder@1
```

2. 引入

```javascript
import VueKityminder from '@orh/vue-kityminder';

Vue.use(VueKityminder);
```

## 使用

```html
<vue-kityminder
    style="height: 600px"
    ref="kityminder"
    theme="classic"
    template="fish-bone"
    :value="val"
    :toolbar-status="toolbar"
    @content-change="handleContent"
    @node-change="handleNode"
    @node-remove="handleRemove"
    @selection-change="handleSelection"
>
</vue-kityminder>
```

## Props

| 属性 | 说明 | 类型 | 默认值 |
| --- | --- | --- | --- |
| `value` | 数据格式 | `String` | 空 |
| `theme` | 主题 | `String` | `fresh-blue` |
| `template` | 模板 | `String` | `filetree` |
| `toolbar-status` | 工具栏的各项显示/隐藏 | `Object` | {} |

* `toolbar-status` 选项列表，可根据需要选择性配置

| 选项 | 功能 | 类型 | 默认值 |
| --- | --- | --- | --- |
| `show` | 整个工具栏 | `boolean` | `true` |
| `left` | 左侧工具栏 | `boolean` | `true` |
| `right` | 右侧工具栏 | `boolean` | `true` |
| `appendSiblingNode` | 插入同级 | `boolean` | `true` |
| `appendChildNode` | 插入下级 | `boolean` | `true` |
| `arrangeUp` | 上移 | `boolean` | `true` |
| `arrangeDown` | 下移 | `boolean` | `true` |
| `removeNode` | 删除 | `boolean` | `true` |
| `text` | 文本框 | `boolean` | `true` |
| `template` | 模板 | `boolean` | `true` |
| `theme` | 主题 | `boolean` | `true` |
| `hand` | 模式 | `boolean` | `true` |
| `resetLayout` | 整理布局 | `boolean` | `true` |
| `zoomOut` | 缩小 | `boolean` | `true` |
| `zoomIn` | 放大 | `boolean` | `true` |

## Events

| 事件 | 说明 | 回调参数 |
| --- | --- | --- |
| `content-change` | 新增/编辑/删除时触发事件 | 所有节点数据 |
| `node-change` | 新增/编辑时触发事件，其中新增返回的节点 `id` 为 `0` | 当前节点数据 |
| `node-remove` | 删除时触发事件 | 当前节点数据 |
| `selection-change` | 当前选中的节点 | 当前节点数据 |
| `template-change` | 变更模板时触发 | 当前模板标识名 |
| `theme-change` | 变更主题时触发 | 当前主题标识名 |

* 删除按钮绑定的是双击事件

## 本地开发/预览

1. 安装依赖

```
$ yarn
```

2. 运行

```
$ yarn serve
```

## License

MIT
npm package: @orh/vue-markdown-editor
Description: Vue markdown editor and marked
Author: orh
Latest version: 3.1.1

<h1 align="center">
    Vue markdown editor and marked
</h1>

<p align="center">
    <a href="https://www.npmjs.com/package/@orh/vue-markdown-editor">
        <img alt="npm" src="https://img.shields.io/npm/v/@orh/vue-markdown-editor?color=ea2039">
    </a>
    <a href="https://www.npmjs.com/package/@orh/vue-markdown-editor">
        <img alt="npm" src="https://img.shields.io/npm/dt/@orh/vue-markdown-editor?color=ea2039">
    </a>
    <a href="https://github.com/ouronghuang/vue-markdown-editor">
        <img alt="GitHub" src="https://img.shields.io/github/license/ouronghuang/vue-markdown-editor">
    </a>
</p>

* 适用于 Vue 2/3 的具备 markdown 编辑器和 marked 文本解析显示功能
* 基于 [simplemde-markdown-editor](https://github.com/sparksuite/simplemde-markdown-editor)
* 基于 [marked](https://github.com/markedjs/marked)
* 基于 [highlight.js](https://github.com/highlightjs/highlight.js)

![demo](./demo.jpg)

## Vue 3.x

1. 安装

```bash
$ yarn add @orh/vue-markdown-editor@4
```

2. 引入

```javascript
import { createApp } from 'vue';
import App from './App.vue';
import MarkdownEditor from '@orh/vue-markdown-editor';
import 'simplemde/dist/simplemde.min.css';
import 'highlight.js/styles/<theme>.css';

createApp(App).use(MarkdownEditor).mount('#app')
```

3. 使用

[示例代码](./src/App.vue)

## Vue 2.x

1. 安装

```bash
$ yarn add @orh/vue-markdown-editor@3
```

2. 引入

```javascript
import Vue from 'vue';
import App from './App.vue';
import VueMarkdownEditor from '@orh/vue-markdown-editor';
import '@orh/vue-markdown-editor/dist/css/vue-markdown-editor.css';
import '@orh/vue-markdown-editor/dist/css/themes/<theme>.css';

Vue.use(VueMarkdownEditor);

new Vue({
  el: '#app',
  render: h => h(App)
});
```

## 编辑器

```html
<vue-markdown-editor v-model="content"></vue-markdown-editor>
```

### Props

| 属性 | 说明 | 类型 | 默认值 |
| --- | --- | --- | --- |
| `value` | `markdown` 文本，可以使用 `v-model` 双向绑定数据 | `String` | 空 |
| `options` | 可传入 `simplemde-markdown-editor` 的所有配置 | `Object` | `{}` |
| `name` | 表单 `textarea` 的 `name` 属性 | `String` | - |

## 解析器

```html
<vue-marked :value="content" @rendered="handleRendered"></vue-marked>
```

### Props

| 属性 | 说明 | 类型 | 默认值 |
| --- | --- | --- | --- |
| `value` | `markdown` 文本 | `String` | 空 |

### Events

| 事件 | 说明 | 回调参数 |
| --- | --- | --- |
| `rendered` | `marked` 渲染完成后触发 | 渲染后的 `HTML` 代码 |

## 本地开发/预览

1. 安装依赖

```
$ yarn
```

2. 运行

```
$ yarn serve
```

## License

MIT
npm package: @orh/vue-nprogress
Description: Vue nprogress
Author: orh
Latest version: 3.0.1

<h1 align="center">
    Vue nprogress
</h1>

<p align="center">
    <a href="https://www.npmjs.com/package/@orh/vue-nprogress">
        <img alt="npm" src="https://img.shields.io/npm/v/@orh/vue-nprogress?color=ea2039">
    </a>
    <a href="https://www.npmjs.com/package/@orh/vue-nprogress">
        <img alt="npm" src="https://img.shields.io/npm/dt/@orh/vue-nprogress?color=ea2039">
    </a>
    <a href="https://github.com/ouronghuang/vue-nprogress">
        <img alt="GitHub" src="https://img.shields.io/github/license/ouronghuang/vue-nprogress">
    </a>
</p>

进度条

![examples](examples/images/1.png)

## 通过链接

```html
<link href="<path>/dist/css/vue-nprogress.css" rel="stylesheet">

<script src="https://cdn.bootcss.com/vue/2.6.10/vue.min.js"></script>
<script src="<path>/dist/js/vue-nprogress.js"></script>
```

[示例](./examples/index.html)

## NPM

1. 安装

```shell
$ yarn add @orh/vue-nprogress --dev
```

2. 常规

- `main.js`

```javascript
import Vue from 'vue';
import VueNProgress from '@orh/vue-nprogress';
import '@orh/vue-nprogress/dist/css/vue-nprogress.css';
import App from './App.vue';

Vue.use(VueNProgress);

new Vue({
  el: '#app',
  render: h => h(App)
});
```

3. Laravel

- `resources/js/app.js`

```javascript
import VueNProgress from '@orh/vue-nprogress';

Vue.use(VueNProgress);
```

- `resources/sass/app.scss`

```scss
@import "~@orh/vue-nprogress/dist/css/vue-nprogress.css";
```

## 使用

```javascript
// 显示进度
this.$nprogress.start();

// 设置进度
this.$nprogress.set(0.4);

// 增加进度
this.$nprogress.inc();

// 关闭进度
this.$nprogress.done();
```

- [NProgress](https://github.com/rstacruz/nprogress)

## License

MIT
npm package: @orhanemree/create-template
Description: Starter templates for my projects.
Author: orhanemree
Latest version: 1.1.1

# 🏗 `@orhanemree/create-template`
Starter templates for my projects.

## 📣 Templates
* Vue.js + TailwindCSS (with Vite)
* Vue.js + TailwindCSS + Three.js (with Vite)
* More templates will be added soon.

## 🔎 Installation & Usage
```bash
npm init @orhanemree/template
# or
npx @orhanemree/create-template
# or
npm install -g @orhanemree/create-template
```

## 📃 License
* MIT

## 🤝 Thanks
* [dkundel/create-project](https://github.com/dkundel/create-project)