# NousResearch/hermes-agent · Replace builtin \`any\` with \`typing.Any\` in type annotations

## Open now

- Nothing open on GitHub.

Multiple contributions addressing the same issue: the \`get_distribution\` function used Python's builtin \`any\` instead of \`typing.Any\` in its return type annotation. Several pull requests propose the same or closely related fix.

## TL;DR

- 11 member(s): 0 open issue(s), 1 closed issue(s), 0 open PR(s), 1 merged PR(s), 9 PR(s) closed without merging.
- A fix was merged to main in PR #108904. Verify it addresses your case.
- **Recommended:** read PR #108904 (and any competing PRs below) before filing. Confirm the merged change covers your symptom.

## Maintainer resolution verdict

- Internal-tracker verdict over this cluster's issue members: `resolved` · deciding PR(s): `pr-108904`. This is distinct from the fix status above. Weigh it yourself.

## How this cluster was grouped

- Link evidence (`STRUCTURAL_SPANNING`): every member is connected by structural evidence: shared changed files, or a closing/superseded reference.
- Pairwise link density `0.18`: the share of member pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36. `1.00` means every pair is linked.

## Closed / duplicate issues

- #2139: fix(toolsets): get_distribution() uses builtin any instead of typing.Any

## Prior & competing PRs

- **#2160: fix: use \`Any\` (typing) instead of \`any\` (builtin) in get_distribution return type**. closed without merge · fix tier `suggested`
  - maintainer direction: category `uncategorized`; implication `needs_llm`; refs `#2143`
  - _suggested-tier fix detail withheld; re-request with `?tier=all` to include it._
- **#2247: fix(toolsets): use typing.Any instead of builtin any in get_distribution**. closed without merge · fix tier `suggested`
  - maintainer direction: category `uncategorized`; implication `needs_llm`
  - _suggested-tier fix detail withheld; re-request with `?tier=all` to include it._
- **#108904: fix(toolsets): get_distribution annotation uses typing.Any, not builtin any (#2139, salvage #20812)**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`; implication `superseded`
  - files: `toolset_distributions.py`
- **#2143: fix(toolsets): use typing.Any instead of builtin any in type annotation**. closed without merge
  - maintainer direction: category `duplicate_of`; implication `duplicate`
- **#2287: fix(toolsets): use typing.Any instead of builtin any in get_distribution return type**. closed without merge
  - maintainer direction: category `duplicate_of`; implication `duplicate`
- **#13977: fix(toolsets): use typing.Any in get_distribution return annotation**. closed without merge
  - maintainer direction: category `stale_abandoned`; implication `active`
- **#20812: fix(toolsets): use typing.Any instead of builtin any in get_distribution**. closed without merge
  - maintainer direction: category `merged_via`; implication `superseded`; refs `0aa08a835ebf`, `#108904`, `#2139`
- **#23556: fix(toolset): use typing.Any in distribution metadata**. closed without merge
  - maintainer direction: category `merged_via`; implication `superseded`; refs `0aa08a835ebf`, `#108904`, `#20812`, `#2139`
- **#51929: fix(toolsets): use typing.Any in get_distribution return annotation**. closed without merge
  - maintainer direction: category `merged_via`; implication `superseded`; refs `0aa08a835ebf`, `#108904`, `#20812`, `#2139`
- **#98727: fix(tools): use typing.Any instead of builtin any in get_distribution return type**. closed without merge
  - maintainer direction: category `merged_via`; implication `superseded`; refs `0aa08a835ebf`, `#108904`, `#20812`, `#2139`

## Fix status

- Merged to main in PR #108904 (cited above). No release data is tracked. Verify downstream.
- Fix last verified (merged) `2026-09-12`.
- Subsystem: `agent`
