Closes #121
Rename ONLY the PyPI distribution name of the core package from `traceforge`
to `traceforge-toolkit`. The bare name `traceforge` is already taken on PyPI by
an unrelated project, so we adopt the scikit-learn -> `import sklearn` pattern:
only the string users type at `pip install` changes. The brand, import package,
CLI command, config dir, and env vars are all untouched.
Kept exactly as-is (guardrails honored):
- `import traceforge` / `from traceforge ...` and the `src/traceforge/` package
- the `traceforge` CLI command and its `[project.scripts]` entry point
- `~/.traceforge` config dir, all `TRACEFORGE_*` env vars, the entry-point group
- the `traceforge-title-model` distribution name and its `>=0.2` dependency pin
- version `0.1.0`, and research's own `traceforge-research` name
Changes:
- pyproject.toml: `name = "traceforge-toolkit"` (nothing else)
- cli/__init__.py: `version_option(package_name="traceforge-toolkit")` so
`traceforge --version` resolves the installed dist metadata after a real install
- sinks/s3.py: two user-facing `pip install traceforge-toolkit[s3]` hints
- research/pyproject.toml: root dependency + matching `[tool.uv.sources]` key
- README.md, RELEASING.md, SPEC.md, packages/traceforge-title-model/README.md:
`pip install` / `uv add` strings and core-dist references; RELEASING.md gains a
short note explaining the name collision
- ci-test.yml: the build job's `pip install --find-links dist <core dist>` now
installs `traceforge-toolkit` (it installs by dist name; would otherwise fail CI)
- regenerated uv.lock and research/uv.lock
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>