27 Commits
Author SHA1 Message Date
Dominik Jain 3b898b671c Reify language backends, introducing LanguageBackendRegistry
* Many case differentiations in the agent code were replaced by
  method calls in the newly introduced LanguageBackend abstraction
* The registry allows new backends to be added dynamically
  (via Python packages that implement a specific entrypoint)
2026-09-18 15:20:10 +02:00
Dominik Jain 6707cd9b7e Introduce component-based licensing: Serena GPL-3.0-or-later, SolidLSP MIT
The repository is licensed per component. SolidLSP (src/solidlsp,
test/solidlsp, test/resources) remains MIT-licensed and independently
reusable; the Serena application (src/serena, src/interprompt, scripts,
test/serena, docs) is licensed under GPL-3.0-or-later starting with the v2
licensing transition. The change is not retroactive: all releases and
commits up to v1.7.0 / 74c38a65 (tag mit-final) remain available under MIT.

Since MIT is GPL-compatible, a distribution combining both (such as the
serena-agent package) is as a whole subject to GPL-3.0-or-later, while the
SolidLSP files themselves stay MIT and can be extracted and used separately
under MIT terms. The distribution metadata therefore declares
GPL-3.0-or-later, with both license texts shipped alongside it.

Serena originally began under the GPL (v2) and was switched to MIT in
May 2025 following community requests. We consider that change a mistake;
the substantial changes in v2 make this the appropriate time to revert it.
We want the best version of Serena to remain free.

Changes:
* LICENSE is now the licensing overview; canonical license texts live in
  LICENSES/ (MIT.txt is the previous LICENSE verbatim, GPL-3.0-or-later.txt
  is the unmodified FSF text)
* pyproject.toml declares the PEP 639 license expression
  "GPL-3.0-or-later" and bundles LICENSE and LICENSES/* as license files;
  the deprecated MIT classifier is dropped and flake.nix declares gpl3Plus;
  README has per-component license badges and a License section
* SPDX-License-Identifier headers in all Python sources under src/ and
  scripts/, added by the new idempotent scripts/add_spdx_headers.py, which
  gen_prompt_factory.py also uses to keep the header on the generated
  module; existing third-party notices are preserved
* CLA.md: Contributor License Agreement (contributor retains copyright;
  grants a perpetual, irrevocable license including relicensing under any
  terms, incl. proprietary/commercial; patent grant; authority
  representations), to be enforced repository-wide via cla-assistant.io
* CONTRIBUTING.md, PR template and a new docs page explain the licensing
  boundary and the CLA workflow
2026-09-14 21:33:18 +02:00
Michael Panchenko da59a19c50 Fixes in various LS and in tests to accommodate diagnostics edge behavior
Also minor fix in go test expectations of symbol name
2026-04-29 23:52:26 +02:00
Michael Panchenko bd7e64e85a Fixed diagnostics files uri handling, added low-level tests 2026-04-29 23:52:26 +02:00
Michael Panchenko 2c65578536 Demo script: remove toon encoding 2026-04-21 12:41:20 +02:00
Michael Panchenko 57dec4c7ca Followup after 34e1fae7 - added more ignored directories 2026-04-13 20:45:05 +02:00
Michael Panchenko 2aa6603dbb Added safe_delete and inline_symbol tools (JB backend) 2026-03-27 14:07:10 +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 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
MischaPanch 99757f35eb Made more tools optional and shortened several docstrings 2025-08-03 00:14:11 +02:00
Dominik Jain 915da8dc9f Fix demo script 2025-07-10 23:19:36 +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
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