Metadata-Version: 2.5
Name: bundle-analyser
Version: 0.6.0
Summary: Bundle analyser — analyses collections of files in folders or zip archives, dispatching to the analyser family
Author-email: Michael Borck <michael.borck@curtin.edu.au>
License: MIT
License-File: LICENSE
Classifier: Development Status :: 1 - Planning
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.11
Requires-Dist: fastapi>=0.109.0
Requires-Dist: httpx>=0.27.0
Requires-Dist: lens-contract>=0.2.0
Requires-Dist: pydantic>=2.5.0
Requires-Dist: python-multipart>=0.0.6
Requires-Dist: rich>=13.7.0
Requires-Dist: uvicorn>=0.27.0
Provides-Extra: dev
Requires-Dist: httpx>=0.27.0; extra == 'dev'
Requires-Dist: pytest-cov>=4.1.0; extra == 'dev'
Requires-Dist: pytest>=7.4.0; extra == 'dev'
Description-Content-Type: text/markdown

# bundle-analyser

Part of the [analyser family](https://github.com/michael-borck/lens-analysers) — analyses collections of files in folders or zip archives.

Accepts a folder path or a zip file, walks all files, dispatches each to the appropriate
analyser family member (via `auto-analyser`), and returns per-file signals plus
structural signals about the collection as a whole.

## Status

Coming soon. Name reserved on PyPI.

## Analyser Family

| Tool | Input | Role |
|------|-------|------|
| `auto-analyser` | single file or zip | routes to the right specialist |
| `bundle-analyser` | folder or zip | walks a collection, calls auto-analyser per file |
| `git-analyser` | local git repo or remote URL | commit history + per-file signals |
| `code-analyser` | source file | Python, JS, TS, HTML, CSS, SQL signals |
| `document-analyser` | document file | PDF, DOCX, Markdown signals |

## Port

`8008` (reserved)

## Local (CLI) routing

`bundle-analyser` dispatches every file through `auto-analyser`, whose built-in
defaults expect HTTP services on `localhost:800x`. For a fully local setup —
specialists installed in the same venv, invoked as CLIs — point `auto-analyser`
at them via `./auto-analyser.yaml` (beside where you run from) or
`~/.config/auto-analyser/config.yaml`:

```yaml
analysers:
  document-analyser: { type: cli, command: document-analyser }
  code-analyser: { type: cli, command: code-analyser }
  speech-analyser: { type: cli, command: speech-analyser }
  video-analyser: { type: cli, command: video-analyser }
  image-analyser: { type: cli, command: image-analyser }
  records-analyser: { type: cli, command: records-analyser }
  diagram-analyser: { type: cli, command: diagram-analyser }
```

Each listed member must expose the family contract: a `manifest` subcommand and
`<command> <file> --json` → JSON on stdout. Unlisted members keep the HTTP
defaults and error per-file when the service isn't running.
