Files
Zeyi (Rice) Fan 94bb858552 refactor(hindsight): rename memory extra to hindsight; gate tools on SDK (#2605)
* refactor(hindsight): rename memory extra to hindsight; gate tools on SDK

## Related issue
N/A

## Summary
- Rename the optional install extra `memory` -> `hindsight` (the extra that
  pulls `hindsight-client` for the Hindsight long-term memory tools), so the
  extra name matches the tools it enables. Updates `pyproject.toml`,
  `uv.lock`, the install hint, docstrings, and `examples/remy/config.yaml`.
- Hide the three Hindsight tools from the builtin list when
  `hindsight-client` is not installed: they're now absent from
  `BUILTIN_NAMES` / `INSTANTIABLE_BUILTINS` and not instantiable, and the
  onboarding `list_builtin_tools` helper no longer advertises them. The
  presence probe uses `importlib.util.find_spec` so the SDK and its deps
  (aiohttp, ...) stay lazy.

## Test Plan
- `ruff format` + `ruff check` clean; `pre-commit run` passes on all changed
  files (including the `normalize-uv-lock-registry` hook).
- `pytest tests/tools/builtins/test_hindsight.py
  tests/tools/builtins/test_registry_unified.py tests/spec/test_validator.py`
  -> 79 passed; full `tests/tools tests/spec tests/onboarding` -> green (one
  unrelated `databricks_sdk_installed` failure was an env artifact from running
  `--extra dev` instead of `--extra all`; passes with `--extra all`).
- New `test_hindsight_tools_absent_from_registry_when_sdk_missing` hides
  `hindsight_client` from the finder, reloads the registry, asserts the tools
  are absent + not instantiable, and restores the finder in `finally` (no
  state leakage — verified by running it before the registry-size test).

## Demo
N/A

## Type of change
- [ ] Bug fix
- [ ] Feature
- [ ] UI / frontend change
- [x] Refactor / chore
- [ ] Docs
- [ ] Test / CI
- [x] Breaking change

## Test coverage
- [x] Unit tests added / updated
- [ ] Integration tests added / updated
- [ ] E2E tests added / updated
- [ ] Manual verification completed
- [x] Existing tests cover this change
- [ ] Not applicable

## Coverage notes
The extra rename is exercised by the existing registry-size test (which lists
the hindsight names) and the lock line. The gating is covered by the new unit
test. Manually verified `_hindsight_available()` returns True with the SDK and
False when hidden from the finder, in both the registry and the onboarding
helper.

## Changelog
`omnigent[memory]` is renamed to `omnigent[hindsight]`; the Hindsight memory
tools are now hidden from the builtin list when `hindsight-client` is not
installed.

* fix(uv.lock): complete hindsight extra rename in lock metadata

The rename commit updated the requires-dist marker but missed the
provides-extras list and the package optional-dependencies mirror, so
`uv sync --locked` (every CI job's install step) failed.
2026-07-15 07:28:53 +00:00
..