open-index/open-npm huggingface dataset:
npm package: @rotsl/contextfusion
Description: General-user npm wrapper for ContextFusion CLI (run, compile, ui, serve-mcp).
Author: Rohan R
Latest version: 0.1.0

# ContextFusion NPM CLI (User Guide)

Use this package if you want a simple npm entrypoint for ContextFusion, without Python dev tooling.

## What You Can Do

- `contextfusion setup`
- `contextfusion env`
- `contextfusion run`
- `contextfusion compile`
- `contextfusion ui`
- `contextfusion serve-mcp`

## Requirements

- Node.js 18+
- Python 3.11+

## Install

If you are using this repository locally:

```bash
npm install -g ./npm-package
```

If installed from npm:

```bash
npx @rotsl/contextfusion setup
```

## First-Time Setup

```bash
contextfusion setup
```

This command:
- installs the ContextFusion Python package (if missing)
- creates a `.env` template in your current folder

Then add your API key(s), for example:

```env
ANTHROPIC_API_KEY=...
OPENAI_API_KEY=...
```

## Common Commands

Run pipeline:

```bash
contextfusion run ./examples/gui_input --query "Summarize" --provider anthropic --model claude-sonnet-4-6
```

Compile provider-ready context packet:

```bash
contextfusion compile ./docs --mode qa --provider anthropic --model claude-sonnet-4-6
```

Start Web UI:

```bash
contextfusion ui --host 0.0.0.0 --port 8080
```

Start MCP server:

```bash
contextfusion serve-mcp --host 0.0.0.0 --port 8765
```

Create or refresh `.env` template:

```bash
contextfusion env
```

## Troubleshooting

- If command is not found after install, restart your shell.
- If Python package is missing, run `contextfusion setup` again.
- If model calls fail, verify API keys in `.env`.

## License

Apache-2.0. See [LICENSE](LICENSE).
npm package: @rotsl/weave
Description: A natural language web framework - Write websites in plain English
Author: Rohan R
Latest version: 1.0.0

# @rotsl/weave

`@rotsl/weave` is the standalone parser/compiler package for Weave scripts.

- Input: plain-English Weave script
- Output: complete HTML document (CSS + JS included)

## Install

```bash
npm install @rotsl/weave
```

## Quick Start

```ts
import { parseWeave, compileWeave } from '@rotsl/weave';

const script = `
A page called "LaunchPad"
  With a hero
    Showing "Ship faster with Weave"
    With subtitle "Natural-language scripts to full HTML"
    With a primary button "Get Started"
  Using corporate theme
`;

const ast = parseWeave(script);
const html = compileWeave(ast, { minify: true });

console.log(html);
```

## API

### `parseWeave(code: string): WeaveAST`

Parses Weave script text into an AST.

### `compileWeave(ast: WeaveAST, options?: { minify?: boolean }): string`

Compiles AST into a full HTML document string.

### `themes`

Built-in theme registry.

### `generateThemeCSS(themeName: string, darkMode: boolean): string`

Returns theme CSS for a selected built-in theme.

## Built-in Themes

- `modern`
- `minimal`
- `corporate`
- `playful`
- `elegant`
- `dark`

## Example Case

Use `@rotsl/weave` inside a build script to generate static landing pages from `.weave` text sources.

## Develop Package Locally

```bash
cd packages/weave
bun install
bun run build
```

## Package Structure

```text
packages/weave/
├── src/
│   ├── index.ts                        # public package exports
│   ├── parser.ts                       # script text -> AST
│   ├── compiler.ts                     # AST -> HTML
│   ├── types.ts                        # AST/type definitions
│   └── themes/
│       └── index.ts                    # built-in themes and CSS generation
├── dist/                               # build output (published)
├── package.json                        # npm metadata for @rotsl/weave
├── README.md                           # package docs
├── LICENSE                             # package license
└── tsconfig.json                       # package TypeScript config
```

## Publishing and GitHub Visibility

- Package name: `@rotsl/weave`
- npm access: `public`
- Repository metadata links npm users to `https://github.com/rotsl/Weave`
- Monorepo package directory is declared so the npm page resolves to `packages/weave`

## License

Apache-2.0 © 2026 Rohan R