open-index/open-npm huggingface dataset:
npm package: @knossys/knossys-virtual-desktop
Description: Development and testing of the Knossys Proscenium desktop manager
Author: Knossys
Latest version: 0.1.6

# Virtual Desktop Drydock

An icon canvas component displaying lined up icons each corresponding to a launchable Proscenium application

## Using and Developing the React Code

We've provided several useful scripts that should get you up and running quickly. All you should
need to have installed on your machine is NPM:

https://www.npmjs.com/get-npm

1. Clone this repo
2. Change into the react directory
3. Run `npm install` or `./install.sh` to install all the dependencies
4. Run `npm run start` or `./server.sh` to start webpack development server (starts on port 8084)
5. Run `npm run build` or `./build.sh` to build the production code in ./dist
6. Run `npm run watch` or `./dev.sh` to build the development code in ./dist
npm package: @knossys/knossys-window-manager
Description: Development and testing of the Proscenium desktop paradigm
Author: Knossys
Latest version: 0.1.22

# Window Manager Drydock

A library to create and manage divs that can be placed in windows, dialogs and floating panels

# What is a Drydock?



## Using and Developing the React Code

We've provided several useful scripts that should get you up and running quickly. All you should
need to have installed on your machine is NPM:

https://www.npmjs.com/get-npm

1. Clone this repo
2. Change into the react directory
3. Run `npm install` or `./install.sh` to install all the dependencies
4. Run `npm run start` or `./server.sh` to start webpack development server (starts on port 8084)
5. Run `npm run build` or `./build.sh` to build the production code in ./dist
6. Run `npm run watch` or `./dev.sh` to build the development code in ./dist
npm package: @knosys/sdk
Description: The development kit for KnoSys ecosystem
Author: Ourai L.
Latest version: 0.0.3

# KnoSys DevKit

The development kit for KnoSys ecosystem.

## License

Source code is released under the [MIT](./LICENSE) license, and documents are shared under the [CC BY-NC-SA 4.0](./LICENSE-docs) license.

Copyright (c) 2022-present, Ourai Lin
npm package: @knot/browser-plugin
Description: [![npm](https://img.shields.io/npm/v/@knot/browser-plugin?style=flat-square)](http://npm.im/@knot/browser-plugin) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier
Latest version: 1.3.0

# @knot/browser-plugin

[![npm](https://img.shields.io/npm/v/@knot/browser-plugin?style=flat-square)](http://npm.im/@knot/browser-plugin)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)
[![lerna](https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg?style=flat-square)](https://lerna.js.org/)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=flat-square)](https://github.com/semantic-release/semantic-release)
[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=flat-square)](http://commitizen.github.io/cz-cli/)
[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme)

[![CircleCI](https://img.shields.io/circleci/build/gh/effervescentia/knot?style=flat-square&token=c6d265c2c3ae9fea01043c75299974616b6498b0)](https://circleci.com/gh/effervescentia/knot)

> A browser `platform` plugin for the [`knot`](https://github.com/effervescentia/knot) compiler.

This module is designed to be used by compiled knot code to provide runtime utilities.

## Table of Contents

- [Install](#install)
- [Maintainers](#maintainers)
- [Contributing](#contributing)
- [License](#license)

## Install

```sh
npm install @knot/browser-plugin
# or
yarn add @knot/browser-plugin
```

## Maintainers

[@effervescentia](https://github.com/effervescentia)

## Contributing

PRs accepted.

Small note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification.

## License

MIT © 2019 Ben Teichman
npm package: @knot/browserify-plugin
Description: [![npm](https://img.shields.io/npm/v/@knot/browserify-plugin?style=flat-square)](http://npm.im/@knot/browserify-plugin) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/pr
Latest version: 1.2.0

# @knot/browserify-plugin

[![npm](https://img.shields.io/npm/v/@knot/browserify-plugin?style=flat-square)](http://npm.im/@knot/browserify-plugin)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)
[![lerna](https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg?style=flat-square)](https://lerna.js.org/)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=flat-square)](https://github.com/semantic-release/semantic-release)
[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=flat-square)](http://commitizen.github.io/cz-cli/)
[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme)

[![CircleCI](https://img.shields.io/circleci/build/gh/effervescentia/knot?style=flat-square&token=c6d265c2c3ae9fea01043c75299974616b6498b0)](https://circleci.com/gh/effervescentia/knot)

> A [`browserify`](http://browserify.org/) plugin to automatically handle parsing and transforming [`knot`](https://github.com/effervescentia/knot) code.

Integrate `knot` into your existing `browserify` build easily using this plugin.

## Table of Contents

- [Install](#install)
- [Usage](#usage)
- [Maintainers](#maintainers)
- [Contributing](#contributing)
- [License](#license)

## Install

```sh
npm install @knot/browserify-plugin
# or
yarn add @knot/browserify-plugin
```

## Usage

In order to use `knot` modules with `browserify`, add the plugin to your build command.

```sh
browserify main.kn -p [ @knot/browserify-plugin ] > bundle.js
# optionally print an exhaustive log of the operation of the compiler
browserify main.kn -p [ @knot/browserify-plugin --debug ] > bundle.js
```

### Usage with programmatic API

```js
// browserify.js
import browserify from 'browserify';
import knotify from '@knot/browserify-plugin';

browserify()
  // add the plugin to your exsiting configuration
  .plugin(knotify, {
    // optionally print an exhaustive log of the operation of the compiler
    // debug: true,
  });
```

You will now be able to import a `.kn` file from any normal javascript file.
When running `browserify`, these files will be automatically converted into native javascript modules.

There is also [a more robust example](https://github.com/effervescentia/knot/tree/master/examples/browserify-react).

## Maintainers

[@effervescentia](https://github.com/effervescentia)

## Contributing

PRs accepted.

Small note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification.

## License

MIT © 2019 Ben Teichman
npm package: @knot/cli
Description: A command-line tool for simplifying the creation and maintainance of knot projects.
Latest version: 1.5.1

# @knot/cli

[![npm](https://img.shields.io/npm/v/@knot/cli?style=flat-square)](http://npm.im/@knot/cli)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)
[![lerna](https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg?style=flat-square)](https://lerna.js.org/)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=flat-square)](https://github.com/semantic-release/semantic-release)
[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=flat-square)](http://commitizen.github.io/cz-cli/)
[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme)

[![CircleCI](https://img.shields.io/circleci/build/gh/effervescentia/knot?style=flat-square&token=c6d265c2c3ae9fea01043c75299974616b6498b0)](https://circleci.com/gh/effervescentia/knot)
[![codecov](https://codecov.io/gh/effervescentia/knot/branch/master/graph/badge.svg?flag=cli)](https://codecov.io/gh/effervescentia/knot)

> A command-line tool for simplifying the creation and maintainance of [`knot`](https://github.com/effervescentia/knot) projects.

Created both as a new project generator, and eventual single-entrypoint for interacting with knot code and tooling.
Additional commands will be introduced for improving the ease of maintaining a knot project through adding or modifying elements of the codebase.

## Table of Contents

- [Install](#install)
- [Usage](#usage)
- [Maintainers](#maintainers)
- [Contributing](#contributing)
- [License](#license)

## Install

```sh
npm install -g @knot/cli
# or
yarn global add @knot/cli
```

## Usage

### Create a New Project

You will be taken into an interactive setup prompt that will generate your project for you.

```sh
knot init [target_dir]
```

## Maintainers

[@effervescentia](https://github.com/effervescentia)

## Contributing

PRs accepted.

Small note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification.

## License

MIT © 2019 Ben Teichman
npm package: @knot/common
Description: Common utilities and types for knot packages.
Latest version: 1.0.0

# @knot/common

[![npm](https://img.shields.io/npm/v/@knot/common?style=flat-square)](http://npm.im/@knot/common)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)
[![lerna](https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg?style=flat-square)](https://lerna.js.org/)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=flat-square)](https://github.com/semantic-release/semantic-release)
[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=flat-square)](http://commitizen.github.io/cz-cli/)
[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme)

[![CircleCI](https://img.shields.io/circleci/build/gh/effervescentia/knot?style=flat-square&token=c6d265c2c3ae9fea01043c75299974616b6498b0)](https://circleci.com/gh/effervescentia/knot)

> A library for constants, utilities and types common to all [`knot`](https://github.com/effervescentia/knot) packages.

This module is designed to be used by `knot` packages.

## Table of Contents

- [Install](#install)
- [Maintainers](#maintainers)
- [Contributing](#contributing)
- [License](#license)

## Install

```sh
npm install @knot/common
# or
yarn add @knot/common
```

## Maintainers

[@effervescentia](https://github.com/effervescentia)

## Contributing

PRs accepted.

Small note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification.

## License

MIT © 2019 Ben Teichman
npm package: @knot/jss-plugin
Description: JSS plugin to translate styles for the knot language.
Latest version: 1.3.0

# @knot/jss-plugin

[![npm](https://img.shields.io/npm/v/@knot/jss-plugin?style=flat-square)](http://npm.im/@knot/jss-plugin)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)
[![lerna](https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg?style=flat-square)](https://lerna.js.org/)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=flat-square)](https://github.com/semantic-release/semantic-release)
[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=flat-square)](http://commitizen.github.io/cz-cli/)
[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme)

[![CircleCI](https://img.shields.io/circleci/build/gh/effervescentia/knot?style=flat-square&token=c6d265c2c3ae9fea01043c75299974616b6498b0)](https://circleci.com/gh/effervescentia/knot)

> A [`JSS`](https://cssinjs.org/) `style` plugin for the [`knot`](https://github.com/effervescentia/knot) compiler.

This module is designed to be used by compiled knot code to handle styling.

## Table of Contents

- [Install](#install)
- [Maintainers](#maintainers)
- [Contributing](#contributing)
- [License](#license)

## Install

```sh
npm install @knot/jss-plugin
# or
yarn add @knot/jss-plugin
```

## Maintainers

[@effervescentia](https://github.com/effervescentia)

## Contributing

PRs accepted.

Small note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification.

## License

MIT © 2019 Ben Teichman
npm package: @knot/plugin-utils
Description: Utilities for knot compiler plugins.
Latest version: 1.0.0

# @knot/plugin-utils

[![npm](https://img.shields.io/npm/v/@knot/plugin-utils?style=flat-square)](http://npm.im/@knot/plugin-utils)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)
[![lerna](https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg?style=flat-square)](https://lerna.js.org/)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=flat-square)](https://github.com/semantic-release/semantic-release)
[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=flat-square)](http://commitizen.github.io/cz-cli/)
[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme)

[![CircleCI](https://img.shields.io/circleci/build/gh/effervescentia/knot?style=flat-square&token=c6d265c2c3ae9fea01043c75299974616b6498b0)](https://circleci.com/gh/effervescentia/knot)

> A utility library for creating plugins for the [`knot`](https://github.com/effervescentia/knot) compiler.

This module is designed to be used by packages that extend the `knot` compiler.

## Table of Contents

- [Install](#install)
- [Maintainers](#maintainers)
- [Contributing](#contributing)
- [License](#license)

## Install

```sh
npm install @knot/plugin-utils
# or
yarn add @knot/plugin-utils
```

## Maintainers

[@effervescentia](https://github.com/effervescentia)

## Contributing

PRs accepted.

Small note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification.

## License

MIT © 2019 Ben Teichman
npm package: @knot/react-plugin
Description: React plugin to translate jsx for the knot language.
Latest version: 1.4.0

# @knot/react-plugin

[![npm](https://img.shields.io/npm/v/@knot/react-plugin?style=flat-square)](http://npm.im/@knot/react-plugin)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)
[![lerna](https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg?style=flat-square)](https://lerna.js.org/)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=flat-square)](https://github.com/semantic-release/semantic-release)
[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=flat-square)](http://commitizen.github.io/cz-cli/)
[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme)

[![CircleCI](https://img.shields.io/circleci/build/gh/effervescentia/knot?style=flat-square&token=c6d265c2c3ae9fea01043c75299974616b6498b0)](https://circleci.com/gh/effervescentia/knot)

> A [`react`](https://reactjs.org) `jsx` plugin for the [`knot`](https://github.com/effervescentia/knot) compiler.

This module is designed to be used by compiled knot code to handle rendering JSX using `react`.

## Table of Contents

- [Install](#install)
- [Maintainers](#maintainers)
- [Contributing](#contributing)
- [License](#license)

## Install

```sh
npm install @knot/react-plugin
# or
yarn add @knot/react-plugin
```

## Maintainers

[@effervescentia](https://github.com/effervescentia)

## Contributing

PRs accepted.

Small note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification.

## License

MIT © 2019 Ben Teichman
npm package: @knot/rollup-plugin
Description: [![npm](https://img.shields.io/npm/v/@knot/rollup-plugin?style=flat-square)](http://npm.im/@knot/rollup-plugin) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier) 
Latest version: 1.1.0

# @knot/rollup-plugin

[![npm](https://img.shields.io/npm/v/@knot/rollup-plugin?style=flat-square)](http://npm.im/@knot/rollup-plugin)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)
[![lerna](https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg?style=flat-square)](https://lerna.js.org/)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=flat-square)](https://github.com/semantic-release/semantic-release)
[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=flat-square)](http://commitizen.github.io/cz-cli/)
[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme)

[![CircleCI](https://img.shields.io/circleci/build/gh/effervescentia/knot?style=flat-square&token=c6d265c2c3ae9fea01043c75299974616b6498b0)](https://circleci.com/gh/effervescentia/knot)

> A [`rollup`](https://rollupjs.org/) plugin to automatically handle parsing and transforming [`knot`](https://github.com/effervescentia/knot) code.

Integrate `knot` into your existing `rollup` build easily using this plugin.

## Table of Contents

- [Install](#install)
- [Usage](#usage)
- [Maintainers](#maintainers)
- [Contributing](#contributing)
- [License](#license)

## Install

```sh
npm install @knot/rollup-plugin
# or
yarn add @knot/rollup-plugin
```

## Usage

In order to use `knot` modules with `rollup`, add the plugin to your existing configuration.

```js
// rollup.config.js
import knotPlugin from '@knot/rollup-plugin';

export default {
  plugins: [
    // add the knot plugin to your existing configuration
    knotPlugin()
  ]
};
```

You will now be able to import a `.kn` file from any normal javascript file.
When running `rollup`, these files will be automatically converted into native javascript modules.

There is also [a more robust example](https://github.com/effervescentia/knot/tree/master/examples/rollup-react).

## Maintainers

[@effervescentia](https://github.com/effervescentia)

## Contributing

PRs accepted.

Small note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification.

## License

MIT © 2019 Ben Teichman
npm package: @knot/vue-plugin
Description: Vue plugin to translate jsx for the knot language.
Latest version: 1.0.0

# @knot/vue-plugin

[![npm](https://img.shields.io/npm/v/@knot/vue-plugin?style=flat-square)](http://npm.im/@knot/vue-plugin)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)
[![lerna](https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg?style=flat-square)](https://lerna.js.org/)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=flat-square)](https://github.com/semantic-release/semantic-release)
[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=flat-square)](http://commitizen.github.io/cz-cli/)
[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme)

[![CircleCI](https://img.shields.io/circleci/build/gh/effervescentia/knot?style=flat-square&token=c6d265c2c3ae9fea01043c75299974616b6498b0)](https://circleci.com/gh/effervescentia/knot)

> A [`vue`](https://vuejs.org/) `jsx` plugin for the [`knot`](https://github.com/effervescentia/knot) compiler.

This module is designed to be used by compiled knot code to handle rendering JSX using `vue`.

## Table of Contents

- [Install](#install)
- [Maintainers](#maintainers)
- [Contributing](#contributing)
- [License](#license)

## Install

```sh
npm install @knot/vue-plugin
# or
yarn add @knot/vue-plugin
```

## Maintainers

[@effervescentia](https://github.com/effervescentia)

## Contributing

PRs accepted.

Small note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification.

## License

MIT © 2019 Ben Teichman
npm package: @knot/webpack-plugin
Description: [![npm](https://img.shields.io/npm/v/@knot/webpack-plugin?style=flat-square)](http://npm.im/@knot/webpack-plugin) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier
Latest version: 1.10.0

# @knot/webpack-plugin

[![npm](https://img.shields.io/npm/v/@knot/webpack-plugin?style=flat-square)](http://npm.im/@knot/webpack-plugin)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)
[![lerna](https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg?style=flat-square)](https://lerna.js.org/)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=flat-square)](https://github.com/semantic-release/semantic-release)
[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=flat-square)](http://commitizen.github.io/cz-cli/)
[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme)

[![CircleCI](https://img.shields.io/circleci/build/gh/effervescentia/knot?style=flat-square&token=c6d265c2c3ae9fea01043c75299974616b6498b0)](https://circleci.com/gh/effervescentia/knot)

> A [`webpack`](https://webpack.js.org/) plugin to automatically handle parsing and transforming [`knot`](https://github.com/effervescentia/knot) code.

Integrate `knot` into your existing `webpack` build easily using this plugin.

## Table of Contents

- [Install](#install)
- [Usage](#usage)
- [Maintainers](#maintainers)
- [Contributing](#contributing)
- [License](#license)

## Install

```sh
npm install @knot/webpack-plugin
# or
yarn add @knot/webpack-plugin
```

## Usage

In order to use `knot` modules with `webpack` only requires 2 pieces of configuration.

1. Add `'.kn'` to the list of extensions to consider when resolving modules
1. Add an instance of the `KnotPlugin` to the list of plugins

```js
// webpack.config.js
import KnotPlugin from '@knot/webpack-plugin';

module.exports = {
  // add these to your existing configuration

  resolve: {
    extensions: ['.kn', '.js']
  },

  plugins: [
    new KnotPlugin({
      // optionally print an exhaustive log of the operation of the compiler
      // debug: true,
    })
  ]
};
```

You will now be able to import a `.kn` file from any normal javascript file.
When running `webpack`, these files will be automatically converted into native javascript modules.

There is also [a more robust example](https://github.com/effervescentia/knot/tree/master/examples/webpack-react).

## Maintainers

[@effervescentia](https://github.com/effervescentia)

## Contributing

PRs accepted.

Small note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification.

## License

MIT © 2019 Ben Teichman
npm package: @knot0/cli
Description: Knot0 DSL CLI - validate manifests against schemas and custom rules
Latest version: 0.1.7

# @knot0/cli (MVP)

Knot0 DSL CLI for validating manifests against the v2 schemas and emitting actionable diagnostics for humans, CI, and LLM agents.

## Features
- Validates YAML manifests (`**/*.knot0.yml`) using JSON Schema (draft 2020-12)
- Loads schemas from the published package `@knot0/schemas` (with local fallbacks)
- Multiple outputs: human, ndjson, sarif (MVP)
- Stable diagnostic shape (code, path, message) for automation
- Non-interactive, deterministic, fast

## Install (local)
```bash
cd knot0-src/cli
yarn install
yarn build
```

Optionally link for global use:
```bash
yarn link
knot0 --help
```

## Usage
Validate current directory (recursively discovers `**/*.knot0.yml`):
```bash
knot0 validate --format human | cat
knot0 validate --format ndjson > .reports/validate.ndjson
knot0 validate --format sarif > .reports/validate.sarif
```

Options:
- --format human|ndjson|sarif (default: human)
- --max-errors N (default: 200)

Exit codes:
- 0 = success (no errors)
- 1 = validation errors
- 2 = CLI failure

## Diagnostic format (ndjson)
Each line is one JSON object:
```json
{"code":"KSCHEMA","severity":"error","file":"components/x/component.knot0.yml","json_pointer":"/contract/inputs","message":"must be object"}
```

Fields:
- code: error code (KSCHEMA for schema failures; custom rules add Kxxx)
- severity: info|warning|error
- file: absolute or repo-relative path
- json_pointer: JSON Pointer within the YAML document (if available)
- message: human-readable detail
- hint, docs_url: reserved for custom rules

## Schema resolution
Order of precedence when loading schemas:
1. Published package @knot0/schemas (preferred)
2. Local JSON cache schemas-cache/*.json (if present)
3. Local source schemas-v2/yaml/*.yaml (if present)

Per-file, the CLI resolves which schema to use by:
1. $schema field, if present
2. Fallback by kind (Component, Workflow, Application, DataAsset, DataType, Infrastructure, System, Policy, Event)

## CI example (GitHub Actions)
```yaml
- name: Validate manifests
  run: |
    npm i -g @knot0/cli @knot0/schemas
    knot0 validate . --format ndjson > .reports/validate.ndjson
- uses: actions/upload-artifact@v4
  with:
    name: validate
    path: .reports/validate.ndjson
```

## For LLM agents
Typical loop:
1. Generate/modify YAML
2. knot0 validate --format ndjson
3. Parse diagnostics → apply structured fixes
4. Re-validate until clean

## Roadmap
- Custom semantic rules (K001..):
  - Capabilities under permissions only
  - Runner-specific permission checks
  - Metric naming/units; benchmark↔telemetry mapping
  - Expressions parser/type checks
  - Resource mapping type-safety
- fmt command (style enforcement)
- migrate command (autofixes for common issues)
- doctor (env/schema checks)

## License
MIT
npm package: @knot0/event-schemas
Description: Knot0 event JSON Schemas (versioned, internal contracts)
Latest version: 2.0.34

# @knot0/event-schemas

Versioned JSON Schemas for Knot0 platform events.

- Contents: `events/` mirrors `schemas-v2/events/` structure.
- Use: import schema files to validate event payloads in consumers.

Example
```ts
import fs from 'fs'
const payload = JSON.parse(fs.readFileSync('example.json', 'utf8'))
const schema = JSON.parse(
  fs.readFileSync(require('@knot0/event-schemas/events/v1/orchestration/workflow.started.schema.json'), 'utf8')
)
```

Notes
- Schemas follow JSON Schema draft 2020-12.
- Breaking changes result in a new major (vN) folder under `events/`.