Metadata-Version: 2.4
Name: salpa-cli
Version: 0.1.2
Summary: Salpa node authoring CLI — scaffold node packages that match the shipped template contract.
Project-URL: Homepage, https://bocores.com/salpa-cli
Project-URL: Documentation, https://salpa.app/docs/custom-nodes
Author: BoundaryComputing
License-Expression: Apache-2.0
License-File: LICENSE
Keywords: cli,computational-science,node-authoring,salpa,scaffold,workflow
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development :: Code Generators
Requires-Python: >=3.10
Requires-Dist: rich>=13
Requires-Dist: typer>=0.12
Provides-Extra: dev
Requires-Dist: pytest>=7; extra == 'dev'
Description-Content-Type: text/markdown

# salpa-cli

The Salpa node authoring CLI. Scaffolds node packages that match the shipped
template contract — the deterministic path to a new node.

```bash
python3 -m pip install salpa-cli
salpa new my-analyzer          # interactive
salpa new my-suite -t multi-node-package --yes
```

Installing adds the `salpa` command. If your shell can't find `salpa` afterward,
your Python scripts directory isn't on your `PATH` —
installing into a virtual environment is the simplest fix (it puts `salpa` on `PATH`).

`salpa new` creates `./<under_scored_name>/` from a bundled template, with every
placeholder substituted and the directory underscored (the dir name becomes the
Python package name, so a hyphen would break `from .core import ...`; meta.toml's
`name` stays kebab-case).

## Templates

Templates ship inside the wheel and are the single source of truth for the node
contract, so there is no second copy to drift.

| Template | For |
|----------|-----|
| `individual-node` | one node with its own pixi env (default) |
| `multi-node-package` | several related nodes sharing one pixi env, chained via `predecessor_data` |

## Options

```
salpa new [NAME]
  -t, --template     individual-node | multi-node-package
  -d, --description  one-line description
      --author       author name
      --category     UI category (e.g. "Cheminformatics")
  -o, --output       directory to create the package in (default: .)
  -y, --yes          non-interactive: accept defaults, no prompts
      --install      run `pixi install` in the new package afterwards
```

## Authoring guide

`salpa docs` prints the bundled node-authoring guide. Full documentation:
https://salpa.app/docs/custom-nodes

## Reserved

`salpa publish` / `install` / `run` are reserved for later and not implemented
in v1. v1 is `salpa new` (plus `salpa docs`).
