Metadata-Version: 2.5
Name: cognis-executor
Version: 0.14.0
Summary: Standalone remote executor for Cognis
Author-email: Filip Pytloun <filip@pytloun.cz>
License: TBD
Classifier: Development Status :: 3 - Alpha
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.12
Requires-Dist: cognis-common==0.14.0
Requires-Dist: httpx>=0.27.0
Requires-Dist: jsonschema>=4.0.0
Requires-Dist: platformdirs>=4.3.0
Requires-Dist: prometheus-client>=0.20.0
Requires-Dist: psutil>=6.1.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: websockets>=14.0
Provides-Extra: browser
Requires-Dist: patchright>=1.55.0; extra == 'browser'
Requires-Dist: playwright-stealth>=2.0.0; extra == 'browser'
Requires-Dist: playwright>=1.53.0; extra == 'browser'
Provides-Extra: channels
Provides-Extra: documents
Requires-Dist: jinja2>=3.1.6; extra == 'documents'
Requires-Dist: markdown>=3.7; extra == 'documents'
Requires-Dist: markdownify>=0.14.0; extra == 'documents'
Requires-Dist: pillow>=11.0.0; extra == 'documents'
Requires-Dist: pypdf>=5.4.0; extra == 'documents'
Requires-Dist: weasyprint>=63.0; extra == 'documents'
Provides-Extra: full
Requires-Dist: aiolimiter>=1.2.1; extra == 'full'
Requires-Dist: beautifulsoup4>=4.14.3; extra == 'full'
Requires-Dist: ddgs==9.15.0; extra == 'full'
Requires-Dist: extruct>=0.18.0; extra == 'full'
Requires-Dist: jinja2>=3.1.6; extra == 'full'
Requires-Dist: litellm>=1.82.0; extra == 'full'
Requires-Dist: markdown>=3.7; extra == 'full'
Requires-Dist: markdownify>=0.14.0; extra == 'full'
Requires-Dist: patchright>=1.55.0; extra == 'full'
Requires-Dist: pillow>=11.0.0; extra == 'full'
Requires-Dist: playwright-stealth>=2.0.0; extra == 'full'
Requires-Dist: playwright>=1.53.0; extra == 'full'
Requires-Dist: pypdf>=5.4.0; extra == 'full'
Requires-Dist: readability-lxml>=0.8.4.1; extra == 'full'
Requires-Dist: tiktoken>=0.8.0; extra == 'full'
Requires-Dist: trafilatura>=2.0.0; extra == 'full'
Requires-Dist: w3lib>=2.4.1; extra == 'full'
Requires-Dist: weasyprint>=63.0; extra == 'full'
Requires-Dist: youtube-transcript-api>=1.2.0; extra == 'full'
Provides-Extra: inference
Requires-Dist: litellm>=1.82.0; extra == 'inference'
Requires-Dist: tiktoken>=0.8.0; extra == 'inference'
Provides-Extra: mcp
Provides-Extra: web
Requires-Dist: aiolimiter>=1.2.1; extra == 'web'
Requires-Dist: beautifulsoup4>=4.14.3; extra == 'web'
Requires-Dist: ddgs==9.15.0; extra == 'web'
Requires-Dist: extruct>=0.18.0; extra == 'web'
Requires-Dist: markdown>=3.7; extra == 'web'
Requires-Dist: markdownify>=0.14.0; extra == 'web'
Requires-Dist: patchright>=1.55.0; extra == 'web'
Requires-Dist: playwright-stealth>=2.0.0; extra == 'web'
Requires-Dist: playwright>=1.53.0; extra == 'web'
Requires-Dist: readability-lxml>=0.8.4.1; extra == 'web'
Requires-Dist: trafilatura>=2.0.0; extra == 'web'
Requires-Dist: w3lib>=2.4.1; extra == 'web'
Requires-Dist: youtube-transcript-api>=1.2.0; extra == 'web'
Description-Content-Type: text/markdown

# cognis-executor

Standalone remote executor for Cognis.

The package provides the `cognis-executor` command. It connects an executor
process to a Cognis controller over WebSocket and runs the tools assigned to
that executor.

`cognis-controller` does not include this package. Install it on the machine
that owns local tools, browser profiles, credentials, or workspaces. A
controller-only installation and the official controller image are
remote-WebSocket-only.

## Install

Install the `full` extra for normal use:

```bash
pip install "cognis-executor[full]"
uvx --from 'cognis-executor[full]' cognis-executor
```

Configure a persistent native user configuration, inspect it, or run
read-only diagnostics:

```bash
cognis-executor configure
cognis-executor config show
cognis-executor doctor --test-connection
cognis-executor status
cognis-executor logs --lines 100
cognis-executor logs --follow
```

`configure --non-interactive` never prompts and accepts `--controller-url`,
`--token`, and `--workspace` (or the corresponding `COGNIS_*` environment
variables). Runtime precedence is explicit flags, environment, config file,
then defaults. The legacy no-subcommand invocation remains supported,
including a token supplied on standard input for headless subprocesses.
Lifecycle commands delegate to Homebrew/launchd or an existing Linux
user-systemd unit. Their service definition must invoke the bare
`cognis-executor` foreground command, not another lifecycle command.
`logs` reads both Homebrew service log files on macOS and the user journal on
Linux. Use `-n` for `--lines` and `-f` for `--follow`.
See the [macOS executor distribution guide](../../docs/guide/macos-executor.md)
for the Homebrew formula, per-user launchd service, and private development
installation path.

The bare package is a minimal executor. It includes core filesystem, shell,
search, project-context, WebSocket, MCP transport, OfficeCLI integration, and
LSP integration. Shared channel adapters and their dependencies are part of
`cognis-common`. The bare package does not install optional browser, web,
document, or inference dependencies.

Install a component extra only when the host needs a narrower capability set:

```bash
pip install "cognis-executor[browser]"
pip install "cognis-executor[web]"
pip install "cognis-executor[documents]"
pip install "cognis-executor[inference]"
```

The `mcp` and `channels` extras remain as compatibility aliases. Their shared
runtimes are part of `cognis-common` and are available in the bare package.

Missing optional components do not prevent executor startup. The executor omits
their tools and reports the runtime capability as installable or unavailable.

## Build

Build it from the repository root:

```bash
uv build --package cognis-executor
```
