b9e809aeb6
* fix: use `uv tool install --with` for durable MCP server installs (#121) When EvoScientist is installed via `uv tool install`, MCP server packages added during onboarding were installed with `uv pip install`, which is not tracked by uv. Running `uv tool upgrade evoscientist` would recreate the venv from scratch and silently wipe the MCP server binaries. Now `install_pip_package()` detects uv tool environments and uses `uv tool install <tool> --with <package>`, which records the dependency in uv-receipt.toml so it survives upgrades. Existing --with packages are read from the receipt and preserved. Falls back to the old `uv pip install` path if the durable method fails. * style: fmt * fix: preserve requirement specs and normalize dedup in uv tool installs Address review feedback: _uv_tool_existing_requirements() now returns a dict mapping bare names to full PEP 508 specs (preserving extras and version constraints from uv-receipt.toml). Dedup check uses _bare_package_name() to normalize the incoming package argument before comparing against receipt entries.