Metadata-Version: 2.4
Name: meegxer-plugins
Version: 0.2.1a2
Summary: Plugin runtime and SDKs: Python (MNE) and Octave (EEGLAB) plugins as MeegXer strips.
Keywords: EEG,BCI,signal processing,EEGLAB,MNE,LSL
Author: Thawirasm Jungrungrueang, TrimLAB, Prince of Songkla University
License-Expression: GPL-3.0-or-later
License-File: LICENSE
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Scientific/Engineering :: Medical Science Apps.
Requires-Dist: meegxer-core==0.2.1a2
Requires-Python: >=3.13
Project-URL: Homepage, https://github.com/thawirasm-j/MeegXer
Project-URL: Documentation, https://github.com/thawirasm-j/MeegXer/blob/main/docs/DESIGN.md
Project-URL: Issues, https://github.com/thawirasm-j/MeegXer/issues
Description-Content-Type: text/markdown

# meegxer-plugins

Plugin runtime and SDKs: Python (MNE) and Octave (EEGLAB) plugins as MeegXer
strips. Plugins currently run in Docker or Podman (no network, read-only mounts);
running them locally, and Sterile mode for all processing, are planned
(`docs/DESIGN.md` §3.5). Protocol: `spec/plugin-protocol.md` at the repository root.

- `src/meegxer/plugins/`: host side (wire format, worker lifecycle, adapter, plugin
  index, conformance suite, `meegxer-plugin` CLI).
- `sdk/python/meegxer_plugin.py`: single-file Python SDK (numpy only); copy it into
  your image.
- `sdk/octave/meegxer_plugin_run.m`: GNU Octave SDK.
- `plugins/`: reference plugins with Dockerfiles. Build from this directory, e.g.

```bash
docker build -f plugins/average_reference/Dockerfile -t meegxer/example-average-reference:0.1.0 .
uv run meegxer-plugin check meegxer/example-average-reference:0.1.0
uv run meegxer-plugin add meegxer/example-average-reference:0.1.0
```

After `add`, the plugin is a node like any other (`meegxer nodes` lists it) and can be
used in pipeline files by its manifest name.
