* Improved symbol retrieval tool responses
1. FindSymbol (LS and JB) now has max_matches. Both tools now perform grouping like other symbol retrieval tools
2. When a result exceeds max_answer_chars, the caller may pass a shortened message. This is used in references and overview tools
* Progressive shortening for tool results that exceed max_answer_chars
Change _limit_length to accept an optional list of closures instead of
a single shortened_result string. Each closure produces a progressively
shorter version of the result, tried in order until one fits. The last
closure is assumed to always fit and is used unconditionally.
* Extended grouper
More flexible grouping logic was needed to achieve the above results. Grouper also no longer
mutates the input (using deepcopy)
---------
Co-authored-by: Dominik Jain <dominik.jain@oraios-ai.de>
Black dependency created a dependabot warning and couldn't be bumped since it collided with pathspec dependencies. Since ruff can also format, black is not needed. But we now have these small format changes, mostly in test files
- Added typed dicts for most responses in jetbrains_types.py
- Fix bug in code_editor (location key no longer existed, found by mypy after adding the types)
Should be merged after next version of plugin release
Added an overview (landing page showing current and available config) and advanced stats windows, controlled by top-right menu
Stats calculation is no longer optional, but we use a trivial token estimator by default
* In addition to exclusion, support notion of "optional tools" that
are disabled by default and enabled only upon request
* Unify the handling of inclusions/exclusions across
- SerenaConfig
- ProjectConfig
- SerenaAgentContext
- SerenaAgentMode
* Make ToolRegistry a singleton and simplify all related operations
- Moved symbol-reading related prompt to system prompt (from planning) since it's always need
- Use relative_path as kwarg in all tools (models get confused by different kwarg names)
- Identify and list memories without .md extension appearing
Also:
1. find_references now cannot return bodies, instead content around the reference is included
2. find_reference_snippets tool removed since it's no longer necessary