Commit Graph
71 Commits
Author SHA1 Message Date
Michael PanchenkoandDominik Jain c6250aeeab Improved retrieval tool responses (#1190)
* 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>
2026-03-27 08:34:21 +01:00
Michael Panchenko 0bbd9e375e Reformat (minor, after replacing black with ruff)
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
2026-03-23 21:10:41 +01:00
Dominik Jain abef88c482 SerenaConfig: Rename gui_log_window_enabled to gui_log_window
This removes the discrepancy with the configuration file (where it was always gui_log_window)
2026-01-19 18:33:43 +01:00
Dominik Jain 1c17d61121 Improve documentation (particularly on configuration) and the issue template 2026-01-17 00:46:43 +01:00
Michael Panchenko 1d5cf33237 Support for info in JB symbols and various improvements. Adds bs4 to deps
- 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
2026-01-03 18:43:02 +07:00
Dominik Jain d410aa9f90 SerenaConfig: Use configuration setting 'language_backend' instead of 'jetbrains'
introducing enum LanguageBackend
2025-12-17 12:54:33 +01:00
Michael Panchenko 5c7ad8edf7 Minor [ci skip] 2025-11-13 11:04:05 +01:00
Dominik Jain 83f4da5ff0 Add profiling script, add pyinstrument to dev dependencies 2025-11-12 03:46:18 +01:00
Dominik Jain c3827d9d57 Apply formatter 2025-11-06 21:04:17 +01:00
Michael Panchenko 234aba4aba Demo for sponsor banners 2025-11-05 13:39:25 +07:00
MischaPanch ad4fec9230 Enhance dashboard functionality
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
2025-10-27 22:08:53 +01:00
David Markey 45407f7a2a Update agno API to the newest version, switch to AgentOS (#702) 2025-10-27 15:57:56 +01:00
MischaPanch 99757f35eb Made more tools optional and shortened several docstrings 2025-08-03 00:14:11 +02:00
MischaPanch caa2c545e4 New feature: allow users to override prompts. Extended CLI for that 2025-07-30 12:10:15 +02:00
Michael Panchenko cad4df59cc Refactoring (minor): move all cli related things to a dedicated module 2025-07-16 18:27:13 +02:00
Dominik Jain 915da8dc9f Fix demo script 2025-07-10 23:19:36 +02:00
Dominik Jain 58bf161fd2 More flexible handling of enabled tools:
* 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
2025-07-06 00:39:36 +02:00
Dominik Jain 51c93c2f45 Add package serena.config for configuration (with context_mode module) 2025-07-02 18:18:13 +02:00
Dominik Jain 8577616436 Simplify configuration management, unifying SerenaConfigBase and SerenaConfig
and removing other subclasses
2025-07-02 16:09:25 +02:00
Michael Panchenko c2c7d35e99 Extended docstring of SearchForPatternTool
The LM had a hard time doing good searches.
2025-07-01 13:18:59 +02:00
Michael Panchenko 4d3281b7e7 Simplify search_text interface and handling of patterns 2025-06-30 21:17:28 +02:00
Michael Panchenko 81e0a324a5 Possibility to restrict paths to search for
The LLM also tries passing the relative_path param to the tool
2025-06-30 21:16:49 +02:00
Dominik Jain 2b68790bce Add method execute_task for synchronous execution and apply it in demo script 2025-06-24 13:33:15 +02:00
Michael Panchenko 3ee5f8e900 Minor prompting, renaming and memory file handling
- 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
2025-06-03 12:23:35 +02:00
Michael Panchenko fe6a7d04f4 Major: replace location-based symbol referencing by name_path based
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
2025-05-31 14:03:45 +02:00
Michael Panchenko 9807efb8ab Merge branch 'feature/web-server-logs' into better-symbolic-editing
Conflicts:
	scripts/demo_run_tools.py
2025-05-29 23:17:50 +02:00
Michael Panchenko 5bd9c5b69e Autogenerated project.yaml now uses the template and includes the comments 2025-05-29 23:02:32 +02:00
Dominik Jain e9d10fde19 Remove dry_run and overloads from remaining editing methods
Add corresponding test classes and test cases (not yet working)
2025-05-29 19:11:43 +02:00
Michael Panchenko 0f18385f4c Better handling of lines and columns at insertions 2025-05-29 14:10:12 +02:00
Michael Panchenko f85aabb40e Merge branch 'main' into feature/context-and-mode
# Conflicts:
#	scripts/gen_prompt_factory.py
#	src/serena/agent.py
#	src/serena/llm/multilang_prompt.py
2025-05-23 17:42:37 +02:00
Michael Panchenko 3584ce47eb Proper first implementation of mode and context setting, WIP 2025-05-23 17:34:46 +02:00
Michael Panchenko 494189ba16 Towards finalization of mode and context handling, WIP 2025-05-22 23:00:15 +02:00
Michael Panchenko 13a1d236dc Refactored prompt-template related code (new package interprompt) 2025-05-22 22:11:04 +02:00
Michael Panchenko e8d493f4d6 Use utf8 in all file read operations 2025-05-19 17:18:51 +02:00
Dominik Jain 2d5437e7f7 Fix scripts/mcp_server.py 2025-05-03 15:30:41 +02:00
Dominik Jain 10bbd62aa2 Convert SerenaConfig and ProjectConfig to dataclasses,
facilitating testing
2025-04-28 16:39:32 +02:00
Michael Panchenko 433d7f4d59 Refactoring in tests: prepare for testing with multiple languages 2025-04-27 13:00:45 +02:00
Michael Panchenko ec89632950 Demo script for running tools 2025-04-26 23:50:39 +02:00
Michael Panchenko 8c9fd747ef Updated agno, removed monkeypatch 2025-04-11 14:23:56 +02:00
Dominik Jain 4c92934c8a Fix agno logging configuration being broken by reimport (disabling GUI logger) 2025-04-06 18:04:41 +02:00
Dominik Jain e88c1e6fac Resolve issues pertaining to main module reloading mechanisms internal to Agno/agent-ui
Fixes #8
2025-04-03 15:26:02 +02:00
Michael Panchenko 7300aaedf5 Fixed agno script (all in global scope now) 2025-04-02 00:57:16 +02:00
Michael Panchenko 1c4aa6ca10 Pass project-file to agno_agent via cli 2025-04-01 19:17:21 +02:00
Michael Panchenko e6bf952cf6 Restored accidentally deleted agno script 2025-04-01 18:49:36 +02:00
Michael Panchenko efbea42e39 Made tool selection configurable
More things:
- list tools using .subclasses instead of inspect
- entrypoint for listing tools
- util for listing selected tools
- documentation
2025-04-01 18:34:15 +02:00
Michael Panchenko 1b2bfc0e3a Made agno work with memory 2025-04-01 17:37:16 +02:00
Michael Panchenko 913a90b376 Minor 2025-04-01 17:16:56 +02:00
Dominik Jain b1572a9717 Make Gemini work, fixing issues with schema conversion 2025-04-01 15:14:49 +02:00
Dominik Jain 513a321741 Add script for listing tools 2025-03-31 17:28:58 +02:00
Dominik Jain 927e36bbb6 Avoid log level misconfiguration, allow user to configure log level 2025-03-31 16:43:41 +02:00