Metadata-Version: 2.5
Name: katalyst-plugin-bard
Version: 0.1.1a3
Summary: Bard — a schema-driven web UI framework for the Katalyst taxonomy
Project-URL: Repository, https://github.com/esimplicityinc/katalyst-bard
Author: eSimplicity
License: Proprietary
Keywords: architecture,katalyst,plugin,taxonomy,ui
Requires-Python: >=3.12
Requires-Dist: click>=8.1
Requires-Dist: katalyst-taxonomy-mcp<5,>=4
Requires-Dist: katalyst-taxonomy<6,>=5
Description-Content-Type: text/markdown

# Bard

A schema-driven web and desktop UI for the Katalyst taxonomy: `kata tax bard serve` and
`kata tax bard desktop`. It renders every kind the connected taxonomy has from the kind's
own definition, edits your configuration in Settings, and loads the views other installed
packages contribute.

Documentation is on the docs site:

- [Bard](../../docs/plugins/bard.md): running it, the API and its token, configuration
  writes, Settings and product sections.
- [Writing a contribution](../../docs/plugins/bard/contributions.md): adding a view to Bard
  from your own package.
- [Composition architecture](../../docs/plugins/bard/composition.md): the host contract,
  runtime loading, flags, slots and the desktop shell.

## Install

Bard is discovered through the `katalyst_taxonomy.plugins` and `katalyst_taxonomy.cli`
entry points, so installing it beside `kata` is enough. It needs Node.js 20 or newer.

```bash
pip install katalyst-plugin-bard
kata tax bard serve      # in the browser
kata tax bard desktop    # in a desktop window, settings editable
```

## From a checkout

```bash
just build               # npm install + build + stage assets in src/katalyst_plugin_bard/web_dist/
just desktop-build       # also bundle the desktop shell
just serve               # == kata tax bard serve
just dev                 # Express on 5273, Vite on 5173 proxying to it
just check               # everything CI runs (lint, types, pytest, vitest)
```

## Without the plugin

Bard's server is plain Node and reads everything over HTTP, so it runs without Python, a
taxonomy checkout or `kata`:

```bash
just docker
docker run -p 5273:5273 -e TAXONOMY_API_URL=https://taxonomy.example.com \
  -e KATALYST_API_TOKEN=<its token> katalyst-bard:dev
```

`app.yaml` is a Databricks Apps manifest. The server reads `DATABRICKS_APP_PORT` and binds
`0.0.0.0` when it is set; set `TAXONOMY_API_URL` to an API reachable from the workspace and
`KATALYST_API_TOKEN` to its token.

`GET /health` is liveness and does not touch the API; `GET /api/ready` reports whether the
API is reachable. Bard has no authentication of its own: do not expose it without putting
authentication in front of it.

## Layout

```
src/katalyst_plugin_bard/   the plugin: `kata tax bard`, the launcher, contribution discovery
  web_dist/                 built SPA, the bundled server (index.cjs) and desktop shell, in the wheel
web/server/                 Express server and the transport-agnostic API handler
web/src/                    React: the schema-driven renderer, views, Settings, host contract
apps/desktop/               Electron shell over the same API handler
schemas/                    bard.manifest.schema.json, the contribution manifest schema
xspec/, layer/              the plugin's black-box contract and fixtures
```

The server ships as one esbuild bundle because `web_dist/` sits in the wheel with no
`node_modules` above it.
