kolega-code 0.18.0__tar.gz → 0.19.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {kolega_code-0.18.0 → kolega_code-0.19.0}/CHANGELOG.md +32 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/PKG-INFO +3 -2
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/astro.config.mjs +1 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/src/assets/coverage.svg +1 -1
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/src/content/docs/concepts/how-it-works.md +7 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/src/content/docs/concepts/tools.md +46 -3
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/src/content/docs/configuration/prompt-overrides.md +16 -2
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/src/content/docs/tui/interface.md +4 -0
- kolega_code-0.19.0/docs/src/content/docs/tui/project-memory.md +188 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/src/content/docs/tui/slash-commands.md +15 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/__init__.py +1 -1
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/__init__.py +1 -1
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/baseagent.py +51 -22
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/browseragent.py +4 -2
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/coder.py +4 -2
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/context.py +1 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/custom_agents.py +4 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/generalagent.py +7 -3
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/investigationagent.py +5 -1
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/planningagent.py +4 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/prompt_dump.py +0 -5
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/prompt_provider.py +3 -13
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/prompt_templates/system/agents/browser.md.j2 +2 -8
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/prompt_templates/system/agents/coder_cli.md.j2 +2 -8
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/prompt_templates/system/agents/general.md.j2 +2 -8
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/prompt_templates/system/agents/investigation.md.j2 +2 -8
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/tool_backend/agent_tool.py +3 -0
- kolega_code-0.19.0/kolega_code/agent/tool_backend/memory_tool.py +130 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/tool_backend/workflow_tool.py +1 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/tools.py +89 -37
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/cli/app.py +74 -12
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/cli/diagnostics.py +2 -38
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/cli/slash_commands.py +1 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/cli/tui/agent_runtime.py +1 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/cli/tui/app_base.py +8 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/cli/tui/command_handlers.py +159 -0
- kolega_code-0.19.0/kolega_code/cli/tui/memory_screen.py +661 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/cli/tui/settings_panel.py +8 -1
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/cli/tui/settings_screen.py +142 -3
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/cli/tui/styles.tcss +127 -0
- kolega_code-0.19.0/kolega_code/cli/tui/terminal_display.py +269 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/llm/providers/responses_common.py +173 -2
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/local_state.py +54 -30
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/mcp/service.py +49 -7
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/mcp/transport.py +22 -10
- kolega_code-0.19.0/kolega_code/memory/__init__.py +50 -0
- kolega_code-0.19.0/kolega_code/memory/identity.py +94 -0
- kolega_code-0.19.0/kolega_code/memory/manager.py +547 -0
- kolega_code-0.19.0/kolega_code/memory/manifest.py +102 -0
- kolega_code-0.19.0/kolega_code/memory/markdown.py +627 -0
- kolega_code-0.19.0/kolega_code/memory/models.py +110 -0
- kolega_code-0.19.0/kolega_code/memory/protocol.py +35 -0
- kolega_code-0.19.0/kolega_code/memory/registry.py +87 -0
- kolega_code-0.19.0/kolega_code/security/__init__.py +15 -0
- kolega_code-0.19.0/kolega_code/security/secrets.py +112 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/pyproject.toml +4 -3
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_chatgpt_oauth_streaming.py +154 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_agent_tools_inventory.py +4 -2
- kolega_code-0.19.0/tests/agent/test_base_agent_prompt_context.py +151 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_base_agent_runtime.py +31 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_prompt_dump.py +13 -4
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_prompt_overrides.py +0 -2
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_prompt_provider.py +0 -18
- kolega_code-0.19.0/tests/agent/test_tool_collection_memory.py +422 -0
- kolega_code-0.19.0/tests/cli/test_app_memory.py +704 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_app_rendering_streaming.py +48 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_slash_commands.py +2 -0
- kolega_code-0.19.0/tests/cli/test_terminal_display.py +264 -0
- kolega_code-0.19.0/tests/cli/test_tui_control_sanitization.py +137 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_tui_settings_screens.py +1 -1
- kolega_code-0.19.0/tests/memory/test_backend.py +374 -0
- kolega_code-0.19.0/tests/memory/test_project_memory_manager.py +708 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/test_mcp_transport.py +215 -1
- {kolega_code-0.18.0 → kolega_code-0.19.0}/uv.lock +17 -31
- kolega_code-0.18.0/kolega_code/agent/tool_backend/memory_tool.py +0 -81
- kolega_code-0.18.0/kolega_code/cli/tui/terminal_display.py +0 -137
- kolega_code-0.18.0/tests/agent/test_base_agent_prompt_context.py +0 -78
- kolega_code-0.18.0/tests/agent/test_tool_collection_memory.py +0 -192
- kolega_code-0.18.0/tests/cli/test_terminal_display.py +0 -42
- {kolega_code-0.18.0 → kolega_code-0.19.0}/.env.example +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/.githooks/pre-commit +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/.github/workflows/ci.yml +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/.github/workflows/docs.yml +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/.github/workflows/release.yml +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/.gitignore +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/.pre-commit-config.yaml +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/CONTRIBUTING.md +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/LICENSE +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/README.md +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/RELEASING.md +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/SECURITY.md +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/__init__.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/README.md +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/__init__.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/__main__.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/artifacts.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/authoring.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/browser.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/browser_assets/app.js +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/browser_assets/index.html +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/browser_assets/styles.css +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/corpus.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/authoring-slots.yaml +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/bubbletea-fc707bb7ea01/licenses/LICENSE +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/bubbletea-fc707bb7ea01/manifest.yaml +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/bubbletea-fc707bb7ea01/tree/cursed_renderer.go +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/bubbletea-fc707bb7ea01/tree/exec_test.go +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/bubbletea-fc707bb7ea01/tree/go.mod +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/bubbletea-fc707bb7ea01/tree/key.go +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/bubbletea-fc707bb7ea01/tree/logging.go +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/bubbletea-fc707bb7ea01/tree/options.go +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/bubbletea-fc707bb7ea01/tree/options_test.go +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/bubbletea-fc707bb7ea01/tree/tea.go +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/bubbletea-fc707bb7ea01/tree/tea_test.go +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/bubbletea-fc707bb7ea01/tree/tty.go +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/clap-4a35e3bcabf7/licenses/LICENSE-APACHE +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/clap-4a35e3bcabf7/licenses/LICENSE-MIT +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/clap-4a35e3bcabf7/manifest.yaml +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/clap-4a35e3bcabf7/tree/clap_builder/Cargo.toml +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/clap-4a35e3bcabf7/tree/clap_builder/src/builder/arg.rs +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/clap-4a35e3bcabf7/tree/clap_builder/src/builder/arg_group.rs +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/clap-4a35e3bcabf7/tree/clap_builder/src/builder/value_parser.rs +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/clap-4a35e3bcabf7/tree/clap_builder/src/derive.rs +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/clap-4a35e3bcabf7/tree/clap_builder/src/error/context.rs +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/clap-4a35e3bcabf7/tree/clap_builder/src/error/mod.rs +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/clap-4a35e3bcabf7/tree/clap_builder/src/output/help_template.rs +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/clap-4a35e3bcabf7/tree/clap_builder/src/parser/matches/arg_matches.rs +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/clap-4a35e3bcabf7/tree/clap_builder/src/parser/parser.rs +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/click-b67832c2167e/licenses/LICENSE.txt +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/click-b67832c2167e/manifest.yaml +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/click-b67832c2167e/tree/pyproject.toml +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/click-b67832c2167e/tree/src/click/__init__.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/click-b67832c2167e/tree/src/click/_termui_impl.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/click-b67832c2167e/tree/src/click/_winconsole.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/click-b67832c2167e/tree/src/click/core.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/click-b67832c2167e/tree/src/click/exceptions.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/click-b67832c2167e/tree/src/click/globals.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/click-b67832c2167e/tree/src/click/termui.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/click-b67832c2167e/tree/src/click/types.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/click-b67832c2167e/tree/src/click/utils.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/express-ae6dd37680e3/licenses/LICENSE +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/express-ae6dd37680e3/manifest.yaml +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/express-ae6dd37680e3/tree/lib/request.js +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/express-ae6dd37680e3/tree/package.json +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/express-ae6dd37680e3/tree/test/Router.js +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/express-ae6dd37680e3/tree/test/acceptance/resource.js +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/express-ae6dd37680e3/tree/test/app.options.js +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/express-ae6dd37680e3/tree/test/app.render.js +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/express-ae6dd37680e3/tree/test/app.router.js +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/express-ae6dd37680e3/tree/test/express.static.js +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/express-ae6dd37680e3/tree/test/express.text.js +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/fmt-a79df4504cd4/licenses/LICENSE +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/fmt-a79df4504cd4/manifest.yaml +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/fmt-a79df4504cd4/tree/CMakeLists.txt +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/fmt-a79df4504cd4/tree/include/fmt/base.h +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/fmt-a79df4504cd4/tree/include/fmt/chrono.h +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/fmt-a79df4504cd4/tree/include/fmt/format-inl.h +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/fmt-a79df4504cd4/tree/include/fmt/format.h +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/fmt-a79df4504cd4/tree/include/fmt/os.h +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/fmt-a79df4504cd4/tree/include/fmt/ranges.h +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/fmt-a79df4504cd4/tree/include/fmt/std.h +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/fmt-a79df4504cd4/tree/src/fmt.cc +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/gson-c9f3fd55854a/licenses/LICENSE +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/gson-c9f3fd55854a/manifest.yaml +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/gson-c9f3fd55854a/tree/gson/pom.xml +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/gson-c9f3fd55854a/tree/gson/src/main/java/com/google/gson/FormattingStyle.java +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/gson-c9f3fd55854a/tree/gson/src/main/java/com/google/gson/Gson.java +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/gson-c9f3fd55854a/tree/gson/src/main/java/com/google/gson/GsonBuilder.java +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/gson-c9f3fd55854a/tree/gson/src/main/java/com/google/gson/JsonElement.java +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/gson-c9f3fd55854a/tree/gson/src/main/java/com/google/gson/internal/ReflectionAccessFilterHelper.java +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/gson-c9f3fd55854a/tree/gson/src/main/java/com/google/gson/internal/bind/TypeAdapters.java +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/gson-c9f3fd55854a/tree/gson/src/main/java/com/google/gson/internal/bind/util/ISO8601Utils.java +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/gson-c9f3fd55854a/tree/gson/src/main/java/module-info.java +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/okhttp-6a237f781144/licenses/LICENSE.txt +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/okhttp-6a237f781144/manifest.yaml +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/okhttp-6a237f781144/tree/build.gradle.kts +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/okhttp-6a237f781144/tree/okhttp/src/commonJvmAndroid/kotlin/okhttp3/CipherSuite.kt +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/okhttp-6a237f781144/tree/okhttp/src/commonJvmAndroid/kotlin/okhttp3/Headers.kt +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/okhttp-6a237f781144/tree/okhttp/src/commonJvmAndroid/kotlin/okhttp3/MultipartBody.kt +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/okhttp-6a237f781144/tree/okhttp/src/commonJvmAndroid/kotlin/okhttp3/MultipartReader.kt +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/okhttp-6a237f781144/tree/okhttp/src/commonJvmAndroid/kotlin/okhttp3/OkHttpClient.kt +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/okhttp-6a237f781144/tree/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http2/Http2Connection.kt +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/okhttp-6a237f781144/tree/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http2/Settings.kt +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/okhttp-6a237f781144/tree/okhttp/src/jvmMain/kotlin/okhttp3/internal/platform/Jdk8WithJettyBootPlatform.kt +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/rake-162f9f80cad8/licenses/MIT-LICENSE +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/rake-162f9f80cad8/manifest.yaml +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/rake-162f9f80cad8/tree/lib/rake/application.rb +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/rake-162f9f80cad8/tree/lib/rake/file_list.rb +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/rake-162f9f80cad8/tree/lib/rake/file_utils.rb +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/rake-162f9f80cad8/tree/lib/rake/file_utils_ext.rb +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/rake-162f9f80cad8/tree/lib/rake/loaders/makefile.rb +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/rake-162f9f80cad8/tree/lib/rake/rake_test_loader.rb +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/rake-162f9f80cad8/tree/lib/rake/task.rb +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/rake-162f9f80cad8/tree/lib/rake/task_manager.rb +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/rake-162f9f80cad8/tree/rake.gemspec +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/spectre-console-3ba102309539/licenses/LICENSE.md +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/spectre-console-3ba102309539/manifest.yaml +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/spectre-console-3ba102309539/tree/src/Spectre.Console/Live/LiveDisplay.cs +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/spectre-console-3ba102309539/tree/src/Spectre.Console/Spectre.Console.csproj +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/spectre-console-3ba102309539/tree/src/Spectre.Console/Widgets/Layout/Layout.cs +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/spectre-console-3ba102309539/tree/src/Spectre.Console/Widgets/Markup.cs +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/spectre-console-3ba102309539/tree/src/Spectre.Console/Widgets/Table/Table.cs +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/spectre-console-3ba102309539/tree/src/Spectre.Console/Widgets/Table/TableColumn.cs +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/spectre-console-3ba102309539/tree/src/Spectre.Console.Ansi/AnsiMarkup.cs +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/spectre-console-3ba102309539/tree/src/Spectre.Console.Ansi/AnsiWriter.cs +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/spectre-console-3ba102309539/tree/src/Spectre.Console.Ansi/Utilities/StringBuffer.cs +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/swift-argument-parser-e579882f9557/licenses/LICENSE.txt +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/swift-argument-parser-e579882f9557/manifest.yaml +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/swift-argument-parser-e579882f9557/tree/Package.swift +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/swift-argument-parser-e579882f9557/tree/Sources/ArgumentParser/Completions/BashCompletionsGenerator.swift +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/swift-argument-parser-e579882f9557/tree/Sources/ArgumentParser/Completions/ZshCompletionsGenerator.swift +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/swift-argument-parser-e579882f9557/tree/Sources/ArgumentParser/Parsable Properties/Flag.swift +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/swift-argument-parser-e579882f9557/tree/Sources/ArgumentParser/Parsing/ArgumentDefinition.swift +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/swift-argument-parser-e579882f9557/tree/Sources/ArgumentParser/Parsing/ArgumentSet.swift +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/swift-argument-parser-e579882f9557/tree/Sources/ArgumentParser/Parsing/ParserError.swift +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/swift-argument-parser-e579882f9557/tree/Sources/ArgumentParser/Usage/DumpHelpGenerator.swift +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/swift-argument-parser-e579882f9557/tree/Sources/ArgumentParser/Utilities/SequenceExtensions.swift +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/symfony-console-9df1ce79867b/licenses/LICENSE +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/symfony-console-9df1ce79867b/manifest.yaml +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/symfony-console-9df1ce79867b/tree/Application.php +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/symfony-console-9df1ce79867b/tree/Descriptor/JsonDescriptor.php +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/symfony-console-9df1ce79867b/tree/Helper/ProgressBar.php +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/symfony-console-9df1ce79867b/tree/Helper/SymfonyQuestionHelper.php +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/symfony-console-9df1ce79867b/tree/Helper/Table.php +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/symfony-console-9df1ce79867b/tree/Helper/TableStyle.php +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/symfony-console-9df1ce79867b/tree/Interaction/Interaction.php +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/symfony-console-9df1ce79867b/tree/Style/SymfonyStyle.php +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/symfony-console-9df1ce79867b/tree/composer.json +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/zod-912f0f51b0ce/licenses/LICENSE +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/zod-912f0f51b0ce/manifest.yaml +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/zod-912f0f51b0ce/tree/packages/zod/package.json +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/zod-912f0f51b0ce/tree/packages/zod/src/v3/types.ts +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/zod-912f0f51b0ce/tree/packages/zod/src/v4/classic/schemas.ts +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/zod-912f0f51b0ce/tree/packages/zod/src/v4/core/checks.ts +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/zod-912f0f51b0ce/tree/packages/zod/src/v4/core/errors.ts +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/zod-912f0f51b0ce/tree/packages/zod/src/v4/core/json-schema-processors.ts +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/zod-912f0f51b0ce/tree/packages/zod/src/v4/core/regexes.ts +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/zod-912f0f51b0ce/tree/packages/zod/src/v4/core/schemas.ts +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/zod-912f0f51b0ce/tree/packages/zod/src/v4/core/util.ts +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/snapshots/zod-912f0f51b0ce/tree/packages/zod/src/v4/mini/schemas.ts +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/fixtures/sources.yaml +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/matrices/deepseek-v4.yaml +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/matrices/example.yaml +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/matrices/validity-slice.yaml +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/models.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/protocols.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/recipes.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/report.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/runner.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/scoring.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/suites/coder-agent.yaml +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/suites/core.yaml +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/suites/corpora/edit-core.yaml +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/suites/fixtures/smoke-tasks.yaml +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/suites/smoke.yaml +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/usage.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/verifier/Dockerfile +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/verifier/toolchains.lock.yaml +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/benchmarks/edit_tools/workspace.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/.gitignore +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/README.md +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/package-lock.json +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/package.json +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/public/favicon.svg +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/src/assets/demo.gif +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/src/assets/kolega-dark.svg +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/src/assets/kolega-light.svg +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/src/content/docs/cli/ask.md +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/src/content/docs/cli/doctor.md +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/src/content/docs/cli/overview.md +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/src/content/docs/cli/sessions.md +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/src/content/docs/concepts/agents.md +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/src/content/docs/configuration/environment-variables.md +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/src/content/docs/configuration/lsp.md +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/src/content/docs/configuration/mcp.md +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/src/content/docs/configuration/providers-and-models.mdx +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/src/content/docs/configuration/settings-and-api-keys.mdx +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/src/content/docs/configuration/sign-in-with-chatgpt.mdx +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/src/content/docs/custom-agents.mdx +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/src/content/docs/getting-started/installation.mdx +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/src/content/docs/getting-started/quick-start.mdx +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/src/content/docs/gigacode.mdx +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/src/content/docs/goal.md +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/src/content/docs/hooks.md +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/src/content/docs/index.mdx +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/src/content/docs/skills.mdx +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/src/content/docs/troubleshooting/diagnostics.md +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/src/content/docs/troubleshooting/terminal-tmux.md +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/src/content/docs/tui/composer.md +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/src/content/docs/tui/modes.md +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/src/content/docs/tui/sessions-and-resume.md +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/src/content.config.ts +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/src/styles/brand.css +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/docs/tsconfig.json +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/common.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/compression.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/conversation.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/edit_protocols.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/errors.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/goal.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/orchestration/__init__.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/orchestration/budget.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/orchestration/errors.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/orchestration/executor.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/orchestration/guide.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/orchestration/journal.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/orchestration/runtime.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/orchestration/types.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/prompt_overrides.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/prompt_templates/auxiliary/compression/summary.system.md +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/prompt_templates/auxiliary/compression/summary.user.md.j2 +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/prompt_templates/auxiliary/terminal/output_summary.system.md +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/prompt_templates/auxiliary/terminal/safety.system.md +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/prompt_templates/auxiliary/tools/think_hard.system.md +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/prompt_templates/extensions/cli/current_plan_artifact.md.j2 +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/prompt_templates/extensions/cli/planning_questions.md +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/prompt_templates/extensions/cli/shared_task_list.md +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/prompt_templates/extensions/skills/catalog.md.j2 +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/prompt_templates/system/agents/planning.md.j2 +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/prompt_templates/system/includes/agents_md_instructions.md +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/prompt_templates/system/includes/environment_variables/workspace_env_vars.md +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/prompt_templates/system/includes/frontend_guidance.md +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/expo.md +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/html_website.md +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/mern_stack.md +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/react_vite_shadcdn.md +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/prompt_templates/user_tasks/cli/implement_plan.md.j2 +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/prompt_templates/user_tasks/cli/init_agents.md.j2 +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/prompts.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/tool_backend/base_tool.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/tool_backend/browser_tool.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/tool_backend/build_tool.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/tool_backend/codex_patch.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/tool_backend/edit_preview.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/tool_backend/edit_tool.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/tool_backend/glob_tool.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/tool_backend/hashline_v2.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/tool_backend/list_directory_tool.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/tool_backend/lsp_tool.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/tool_backend/read_file_tool.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/tool_backend/read_image_tool.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/tool_backend/search_backends/__init__.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/tool_backend/search_backends/base.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/tool_backend/search_backends/duckduckgo.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/tool_backend/search_backends/errors.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/tool_backend/search_backends/firecrawl.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/tool_backend/search_backends/models.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/tool_backend/search_backends/searxng.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/tool_backend/search_backends/tavily.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/tool_backend/search_codebase_tool.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/tool_backend/snapshot_tool.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/tool_backend/streaming_tool.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/tool_backend/terminal_tool.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/tool_backend/think_hard_tool.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/tool_backend/web_fetch/__init__.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/tool_backend/web_fetch/answering.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/tool_backend/web_fetch/documents.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/tool_backend/web_fetch/extractors.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/tool_backend/web_fetch/pipeline.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/tool_backend/web_fetch/retrieval.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/tool_backend/web_fetch_tool.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/tool_backend/web_search_tool.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/agent/utils/commands.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/auth/__init__.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/auth/_jwt.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/auth/chatgpt_oauth.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/auth/constants.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/auth/tokens.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/cli/__init__.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/cli/clipboard_image.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/cli/config.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/cli/connection.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/cli/file_index.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/cli/goal.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/cli/main.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/cli/mentions.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/cli/messages.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/cli/model_connection.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/cli/plan_artifacts.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/cli/provider_registry.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/cli/session_journal.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/cli/session_store.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/cli/settings.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/cli/skills.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/cli/theme.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/cli/tui/__init__.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/cli/tui/changes_screen.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/cli/tui/constants.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/cli/tui/onboarding_screen.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/cli/tui/prompt_flows.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/cli/tui/session_diff.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/cli/tui/state.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/cli/tui/status_dashboard.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/cli/tui/sub_agent_screen.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/cli/tui/transcript.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/cli/tui/widgets.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/cli/updater.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/config.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/events.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/hooks/__init__.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/hooks/backends.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/hooks/config.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/hooks/dispatcher.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/hooks/events.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/hooks/matcher.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/hooks/outcome.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/llm/client.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/llm/exceptions.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/llm/instrumented_client.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/llm/models.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/llm/providers/__init__.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/llm/providers/anthropic.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/llm/providers/base.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/llm/providers/chatgpt_oauth.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/llm/providers/google.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/llm/providers/models.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/llm/providers/openai.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/llm/providers/openai_responses.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/llm/ratelimit.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/llm/specs/__init__.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/llm/specs/accessors.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/llm/specs/catalog/__init__.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/llm/specs/catalog/anthropic.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/llm/specs/catalog/dashscope.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/llm/specs/catalog/deepseek.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/llm/specs/catalog/fireworks.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/llm/specs/catalog/google.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/llm/specs/catalog/kimi_coding.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/llm/specs/catalog/moonshot.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/llm/specs/catalog/ollama_cloud.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/llm/specs/catalog/openai.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/llm/specs/catalog/openai_chatgpt.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/llm/specs/catalog/together.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/llm/specs/catalog/xai.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/llm/specs/catalog/zai.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/llm/specs/thinking.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/llm/specs/types.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/llm/timeouts.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/llm/tool_execution_ids.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/mcp/__init__.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/mcp/config.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/mcp/oauth.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/mcp/state.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/mcp/tools.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/models/__init__.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/models/sandbox_terminal_state.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/permissions.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/runtime.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/sandbox/README.md +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/sandbox/__init__.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/sandbox/async_filesystem.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/sandbox/base.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/sandbox/browser.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/sandbox/event_loop.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/sandbox/filesystem.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/sandbox/local.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/sandbox/serializer.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/sandbox/terminal.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/sandbox/utils.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/services/base.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/services/browser.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/services/file_system.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/services/html.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/services/lsp/__init__.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/services/lsp/client.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/services/lsp/config.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/services/lsp/detector.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/services/lsp/diagnostics.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/services/lsp/edits.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/services/lsp/manager.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/services/lsp/registry.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/services/lsp/registry.yaml +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/services/snapshots.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/services/terminal.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/services/terminal_buffer.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/services/workspace_scan.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/tools/__init__.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/tools/core.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/tools/definitions.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/tools/registry.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/utils/__init__.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/kolega_code/utils/images.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/run_tests.sh +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/scripts/bench_hotpaths.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/scripts/bench_web_fetch.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/scripts/check-dev-hooks.sh +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/scripts/install-kolega-code.sh +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/scripts/setup-dev.sh +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/__init__.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/__init__.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/compaction_helpers.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/conftest.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/__init__.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/_token_counting_utils.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_anthropic_local_token_counting_incremental.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_anthropic_token_counting.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_billing_openai_cache.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_chatgpt_live.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_chatgpt_oauth_auth_config.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_chatgpt_oauth_conversion.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_chatgpt_oauth_provider.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_chatgpt_oauth_provider_generate.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_client.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_client_live.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_client_runtime.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_dashscope_mapping.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_edit_protocol_resolution.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_error_boundary.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_exceptions.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_freeform_tools.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_freeform_tools_live.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_google_thought_signature.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_google_tool_signature_live.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_instrumented_client.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_instrumented_client_integration.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_instrumented_client_stream.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_langfuse_normalization.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_live_providers.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_message_conversion.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_model_specs.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_openai_cached_tokens.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_openai_cached_tokens_stream.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_openai_message_conversion.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_openai_reasoning_replay.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_openai_responses_provider.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_openai_stream_accumulation.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_openai_token_counting.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_openai_token_counting_incremental.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_provider_usage_mapping.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_streaming_timeouts.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_supports_vision.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_thinking_effort.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_tool_execution_ids.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/llm/test_xai_prompt_cache_header.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/orchestration/__init__.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/orchestration/test_orchestration.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/services/__init__.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/services/test_browser.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/services/test_browser_console_logs.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/services/test_browser_content.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/services/test_browser_integration.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/services/test_browser_parity.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/services/test_file_system.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/services/test_file_system_integration.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/services/test_file_system_path.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/services/test_local_file_system.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/services/test_sandbox_terminal_input.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/services/test_terminal.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/services/test_terminal_buffer.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/services/test_terminal_state_serializer.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_base_agent.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_base_agent_anthropic_history_validation.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_base_agent_compaction.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_base_agent_effective_history.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_base_agent_history_serialization.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_base_agent_queued_injection.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_base_agent_role_overrides.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_base_agent_tool_call_repair.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_base_agent_tool_call_repair_integration.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_base_agent_tool_execution.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_coder_attachments.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_coder_prompt_extensions.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_commands.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_compaction_integration.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_compaction_persistence.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_compaction_subagent.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_compaction_tui_events.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_compress_command.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_compression.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_conversation_compaction.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_custom_agents.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_duplicate_tool_results.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_edit_protocol_tools.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_empty_message_handling.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_event_emitter.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_general_agent.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_gigacode_gating.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_goal.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_goal_evaluate.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_history_adapter_thinking.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_history_image_blocks.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_hooks_integration.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_html.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_image_compat.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_parallel_tool_calls.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_permissions.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_planning_agent.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_prompts.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_read_image_tool.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_tool_collection_builtin_dispatch.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_tool_collection_config.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_tool_collection_extensions.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_tool_collection_initialization.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_tool_registry.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/test_tools.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/tool_backend/__init__.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/tool_backend/test_agent_tool.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/tool_backend/test_base_tool.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/tool_backend/test_browser_tool.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/tool_backend/test_build_tool.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/tool_backend/test_claude_edit.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/tool_backend/test_codex_apply_patch.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/tool_backend/test_edit_preview.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/tool_backend/test_edit_tool.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/tool_backend/test_glob_tool.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/tool_backend/test_glob_tool_sandbox_parity.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/tool_backend/test_hashline_v2.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/tool_backend/test_list_directory_tool.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/tool_backend/test_lsp_tool.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/tool_backend/test_read_file_tool.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/tool_backend/test_search_codebase_tool.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/tool_backend/test_snapshot_tool.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/tool_backend/test_terminal_tool.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/tool_backend/test_think_hard_integration.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/tool_backend/test_think_hard_streaming.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/tool_backend/test_think_hard_streaming_content.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/tool_backend/test_think_hard_streaming_errors.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/tool_backend/test_think_hard_streaming_updates.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/tool_backend/test_web_fetch_answering.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/tool_backend/test_web_fetch_pipeline.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/tool_backend/test_web_fetch_tool.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/tool_backend/test_web_search_tool.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/agent/tool_backend/test_workflow_tool.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/auth/__init__.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/auth/test_chatgpt_oauth.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/auth/test_tokens.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/benchmarks/test_edit_benchmark_browser.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/benchmarks/test_edit_benchmark_corpus.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/benchmarks/test_edit_benchmark_protocols.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/benchmarks/test_edit_benchmark_providers.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/benchmarks/test_edit_benchmark_recipes.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/benchmarks/test_edit_benchmark_report.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/benchmarks/test_edit_benchmark_runner.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/benchmarks/test_edit_benchmark_scoring.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/benchmarks/test_edit_benchmark_workspace.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/benchmarks/test_live_edit_benchmark_providers.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/__init__.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/_app_test_utils.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_app.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_app_agent_wiring.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_app_bootstrap_settings.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_app_changes_inspector.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_app_compaction_restore.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_app_composer_commands.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_app_composer_input.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_app_conversation_rendering.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_app_diagnostics.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_app_focus_behavior.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_app_goal_command.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_app_image_vision_warning.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_app_lsp_settings_status.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_app_mention_dropdown.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_app_misc_commands.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_app_model_effort_commands.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_app_model_switch_vision.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_app_modes_planning.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_app_navigation_commands.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_app_permission_prompts.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_app_persistence_history.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_app_plan_lifecycle.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_app_planning_questions.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_app_planning_restore.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_app_rendering_entries.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_app_rendering_errors.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_app_rendering_scroll.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_app_rendering_selection.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_app_rendering_status.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_app_rendering_terminal_logs.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_app_rendering_tools.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_app_session_diff_async.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_app_skill_commands.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_app_slash_dropdown.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_app_status_modes.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_app_sub_agents_workflows.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_app_tmux_shortcuts.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_ask_goal.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_cli_config.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_clipboard_image.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_connection.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_custom_agents_cli.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_diagnostics.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_file_index.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_main.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_mcp_cli.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_mcp_settings_formatting.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_mentions.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_model_connection.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_plan_artifacts.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_provider_registry.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_session_diff.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_session_store.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_settings.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_skills.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_sub_agent_stream_accumulation.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_themes.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_transcript_streaming_render.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_tui_stylesheet.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/cli/test_updater.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/conftest.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/hooks/__init__.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/hooks/test_hooks.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/mcp/test_config_state_tools.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/services/lsp/_fake_server.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/services/lsp/conftest.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/services/lsp/test_client.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/services/lsp/test_detector.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/services/lsp/test_diagnostics.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/services/lsp/test_edits.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/services/lsp/test_integration.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/services/lsp/test_lsp_edit_tool_integration.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/services/lsp/test_manager.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/services/lsp/test_project_config.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/services/lsp/test_registry.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/services/lsp/test_trust.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/services/test_snapshots.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/services/test_workspace_scan.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/test_agent_config_serialization.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/test_mcp_permissions.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/tools/__init__.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/tools/test_definitions.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/utils/__init__.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/utils/test_images.py +0 -0
- {kolega_code-0.18.0 → kolega_code-0.19.0}/tests/utils/test_images_ascii.py +0 -0
|
@@ -6,6 +6,38 @@ This project uses GitHub Releases for detailed generated release notes. This fil
|
|
|
6
6
|
|
|
7
7
|
## Unreleased
|
|
8
8
|
|
|
9
|
+
## 0.19.0 - 2026-07-16
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- Added private, project-scoped memory outside repositories, with bounded
|
|
14
|
+
Markdown storage, model tools, startup context, linked-worktree sharing,
|
|
15
|
+
`/memory` commands, settings controls, and a TUI browser and editor.
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
|
|
19
|
+
- Pinned the MCP SDK to stable `1.28.1` and stopped globally enabling
|
|
20
|
+
prerelease dependency resolution.
|
|
21
|
+
- Added the stable-lock `filelock` dependency required by project memory.
|
|
22
|
+
|
|
23
|
+
### Removed
|
|
24
|
+
|
|
25
|
+
- Stopped loading or modifying legacy repository `AGENT_MEMORY.md` files.
|
|
26
|
+
Existing files are not automatically migrated to private project memory.
|
|
27
|
+
|
|
28
|
+
### Fixed
|
|
29
|
+
|
|
30
|
+
- Preserved separate OpenAI and ChatGPT Responses reasoning-summary parts so
|
|
31
|
+
thinking summaries render as clean, separated lines.
|
|
32
|
+
- Fixed MCP 1.x stream, timeout, and camelCase result compatibility, and now
|
|
33
|
+
report nested transport failures as credential-safe tool errors instead of
|
|
34
|
+
opaque `TaskGroup` messages.
|
|
35
|
+
|
|
36
|
+
### Security
|
|
37
|
+
|
|
38
|
+
- Sanitized terminal-rendered control sequences and unsafe hyperlink metadata
|
|
39
|
+
while preserving raw model, tool, and session content internally.
|
|
40
|
+
|
|
9
41
|
## 0.18.0 - 2026-07-14
|
|
10
42
|
|
|
11
43
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: kolega-code
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.19.0
|
|
4
4
|
Summary: Multi-agent coding in the terminal
|
|
5
5
|
Project-URL: Homepage, https://kolega-ai.github.io/kolega-code/
|
|
6
6
|
Project-URL: Documentation, https://kolega-ai.github.io/kolega-code/
|
|
@@ -229,6 +229,7 @@ Requires-Python: >=3.11
|
|
|
229
229
|
Requires-Dist: anthropic==0.101.0
|
|
230
230
|
Requires-Dist: beautifulsoup4==4.14.3
|
|
231
231
|
Requires-Dist: ddgs==9.14.4
|
|
232
|
+
Requires-Dist: filelock==3.20.3
|
|
232
233
|
Requires-Dist: firecrawl-py==4.28.2
|
|
233
234
|
Requires-Dist: google-genai==2.0.1
|
|
234
235
|
Requires-Dist: httpx==0.28.1
|
|
@@ -237,7 +238,7 @@ Requires-Dist: langfuse==3.14.5
|
|
|
237
238
|
Requires-Dist: lxml-html-clean==0.4.5
|
|
238
239
|
Requires-Dist: markdownify==1.2.3
|
|
239
240
|
Requires-Dist: markitdown[docx,pdf,pptx,xls,xlsx]==0.1.6
|
|
240
|
-
Requires-Dist: mcp
|
|
241
|
+
Requires-Dist: mcp==1.28.1
|
|
241
242
|
Requires-Dist: nest-asyncio==1.6.0
|
|
242
243
|
Requires-Dist: openai==1.109.1
|
|
243
244
|
Requires-Dist: packaging==25.0
|
|
@@ -94,6 +94,7 @@ export default defineConfig({
|
|
|
94
94
|
{ label: "Build & Plan Modes", slug: "tui/modes" },
|
|
95
95
|
{ label: "Chat Composer", slug: "tui/composer" },
|
|
96
96
|
{ label: "Slash Commands", slug: "tui/slash-commands" },
|
|
97
|
+
{ label: "Project Memory", slug: "tui/project-memory" },
|
|
97
98
|
{ label: "Sessions & Resuming", slug: "tui/sessions-and-resume" },
|
|
98
99
|
],
|
|
99
100
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="114" height="20" role="img" aria-label="coverage:
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="114" height="20" role="img" aria-label="coverage: 81.01%"><title>coverage: 81.01%</title><filter id="blur"><feGaussianBlur stdDeviation="16"/></filter><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="114" height="20" rx="3"/></clipPath><g clip-path="url(#r)"><rect width="61" height="20" fill="#555"/><rect x="61" width="53" height="20" fill="#67ac09"/><rect width="114" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><g transform="scale(.1)"><g aria-hidden="true" fill="#010101"><text x="315" y="150" fill-opacity=".8" filter="url(#blur)" textLength="510">coverage</text><text x="315" y="150" fill-opacity=".3" textLength="510">coverage</text></g><text x="315" y="140" textLength="510">coverage</text></g><g transform="scale(.1)"><g aria-hidden="true" fill="#010101"><text x="865" y="150" fill-opacity=".8" filter="url(#blur)" textLength="430">81.01%</text><text x="865" y="150" fill-opacity=".3" textLength="430">81.01%</text></g><text x="865" y="140" textLength="430">81.01%</text></g></g></svg>
|
|
@@ -79,3 +79,10 @@ Kolega Code runs against your real environment:
|
|
|
79
79
|
Sessions, settings, permissions, and credentials are persisted locally. That local
|
|
80
80
|
state is what lets Kolega Code operate on a real development workspace while preserving
|
|
81
81
|
resumable sessions and project-specific controls.
|
|
82
|
+
|
|
83
|
+
Private [Project Memory](../../tui/project-memory/) is another local state
|
|
84
|
+
service, but it is not session history: an agent or user must explicitly curate
|
|
85
|
+
it, and linked Git worktrees share it through their common Git identity. Its
|
|
86
|
+
provider interface keeps the built-in Markdown backend separate from possible
|
|
87
|
+
future structured backends; switching providers never migrates data
|
|
88
|
+
automatically.
|
|
@@ -67,7 +67,49 @@ OCR/conversion outside this tool.
|
|
|
67
67
|
|
|
68
68
|
- `think_hard` — an extended-reasoning step that uses the
|
|
69
69
|
[thinking model](../../configuration/providers-and-models/) and its token budget.
|
|
70
|
-
- `read_memory
|
|
70
|
+
- `read_memory(path="MEMORY.md")` — read a private project-memory index or topic,
|
|
71
|
+
including its logical path, byte count, and bounded content. The startup copy
|
|
72
|
+
of `MEMORY.md` counts as already read.
|
|
73
|
+
- `list_memory(query=None)` — list private project-memory files with sizes and titles.
|
|
74
|
+
The optional `query` is a case-insensitive substring filter over paths and
|
|
75
|
+
content; custom agents with an explicit `allowed_tools` list must name
|
|
76
|
+
`list_memory` to receive it.
|
|
77
|
+
- `write_memory(content, path="MEMORY.md")` — create or overwrite one complete
|
|
78
|
+
memory file.
|
|
79
|
+
- `edit_memory(old_string, new_string, path="MEMORY.md")` — replace one exact,
|
|
80
|
+
unique occurrence in a memory file. An empty `old_string` is rejected. If the
|
|
81
|
+
text occurs zero times or more than once, the edit fails and the file is left
|
|
82
|
+
unchanged.
|
|
83
|
+
- `delete_memory(path)` — delete one memory file.
|
|
84
|
+
|
|
85
|
+
These are the model tools supplied by the built-in `markdown` project-memory
|
|
86
|
+
backend. They write to owner-private Kolega Code state, never the repository.
|
|
87
|
+
Before writing, the agent first inspects the already-loaded `MEMORY.md`, follows
|
|
88
|
+
any semantically relevant link, and otherwise makes a targeted `list_memory`
|
|
89
|
+
search. If the durable fact is already covered, it makes no mutation; a
|
|
90
|
+
different wording alone is not a reason to write. Existing topic files are read
|
|
91
|
+
before they are overwritten or edited.
|
|
92
|
+
|
|
93
|
+
A short, self-contained fact belongs directly in `MEMORY.md`. Detail that needs
|
|
94
|
+
multiple rules, caveats, rationale, or examples belongs in a flat topic file
|
|
95
|
+
with a concise descriptive link from `MEMORY.md`. For a new detailed memory, the
|
|
96
|
+
agent writes the topic first and then edits the index. To forget one, it removes
|
|
97
|
+
the index link first and then deletes the topic. These are recoverable ordering
|
|
98
|
+
conventions, not a cross-file transaction.
|
|
99
|
+
|
|
100
|
+
Each private write atomically replaces one file, but content mutation follows a
|
|
101
|
+
single-writer, last-write-wins model. There is no cross-file atomicity, and an
|
|
102
|
+
exact edit does not preserve independent concurrent changes. Paths and content
|
|
103
|
+
are bounded, but content is not secret-scanned or redacted. See
|
|
104
|
+
[Project Memory](../../tui/project-memory/) for storage identity, limits, model
|
|
105
|
+
exposure, and the `/memory` browser.
|
|
106
|
+
|
|
107
|
+
Memory tool registration is capability- and provider-driven. Enabled top-level
|
|
108
|
+
coder, general, and planning agents can read and explicitly curate memory;
|
|
109
|
+
private memory mutation is an intentional exception to Plan mode's ban on
|
|
110
|
+
repository edits. Built-in sub-agents get read-only access. Exact custom-agent
|
|
111
|
+
tool allowlists remain the final gate. When memory is disabled or its configured
|
|
112
|
+
backend is unavailable, no memory tools or context are exposed.
|
|
71
113
|
|
|
72
114
|
### Sub-agent dispatch
|
|
73
115
|
|
|
@@ -87,8 +129,9 @@ Build mode's full toolset.
|
|
|
87
129
|
|
|
88
130
|
This separation is what keeps Plan mode safe to run against any codebase: the
|
|
89
131
|
planning agent can look and run investigative commands, but it has no file-edit
|
|
90
|
-
tools.
|
|
91
|
-
|
|
132
|
+
tools. Explicit writes to private project memory are the one exception; they
|
|
133
|
+
never change repository files. Shell commands are further gated by the active
|
|
134
|
+
permission mode — in `ask` they prompt before running.
|
|
92
135
|
|
|
93
136
|
In the Textual TUI, Build mode defaults to `ask` permission mode. Shell commands
|
|
94
137
|
and file edits must be approved before they run unless you switch to `auto` or
|
{kolega_code-0.18.0 → kolega_code-0.19.0}/docs/src/content/docs/configuration/prompt-overrides.md
RENAMED
|
@@ -132,9 +132,23 @@ Project override templates can use variables, conditionals, and loops over the e
|
|
|
132
132
|
Agent prompt overrides replace the bundled base system prompt for that agent type. Kolega Code still appends dynamic runtime/project sections after your override, including:
|
|
133
133
|
|
|
134
134
|
- matching prompt extensions, such as skills or gigacode guidance
|
|
135
|
-
- workspace
|
|
135
|
+
- host-provided `workspace_memories`, labelled as host workspace context
|
|
136
|
+
- enabled [private project memory](../../tui/project-memory/), including its
|
|
137
|
+
backend policy and bounded `MEMORY.md` index
|
|
136
138
|
- `AGENTS.md` or legacy `KOLEGA.md` project guidance
|
|
137
|
-
|
|
139
|
+
|
|
140
|
+
These sections remain distinct and survive coder, planning, and sub-agent prompt
|
|
141
|
+
overrides. They are also different from resumable session history and the
|
|
142
|
+
Planning tab's transient task list. Project memory is not generated from either:
|
|
143
|
+
Kolega Code performs no completed-turn transcript review or automatic memory
|
|
144
|
+
authoring.
|
|
145
|
+
|
|
146
|
+
Only the private Markdown backend's `MEMORY.md` index is injected automatically,
|
|
147
|
+
up to 200 lines or 25 KiB; linked topics require `read_memory`. Memory is treated
|
|
148
|
+
as untrusted observations rather than instructions. Private project memory is
|
|
149
|
+
owner-controlled state and is not secret-scanned or redacted before injection.
|
|
150
|
+
Disabling project memory removes both its context and tools without deleting its
|
|
151
|
+
private data.
|
|
138
152
|
|
|
139
153
|
`COMPACTION.md` is different: it fully replaces only the system prompt used by the conversation compaction summarizer. The user prompt containing the conversation history is still generated by Kolega Code.
|
|
140
154
|
|
|
@@ -23,6 +23,10 @@ you submit follow-ups while the agent is working, a small queued-messages panel
|
|
|
23
23
|
appears above the composer until those prompts are sent. See
|
|
24
24
|
[Chat Composer](../composer/) for everything it can do.
|
|
25
25
|
|
|
26
|
+
Run `/memory` to open the full-screen [Project Memory](../project-memory/)
|
|
27
|
+
browser/editor. It manages private durable project knowledge separately from the
|
|
28
|
+
conversation and the Planning tab's task list.
|
|
29
|
+
|
|
26
30
|
## Side-panel tabs
|
|
27
31
|
|
|
28
32
|
| Tab | What it shows |
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Project Memory
|
|
3
|
+
description: Inspect and curate private, project-scoped agent memory in the TUI.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Project memory is a small, durable knowledge bank for facts that remain useful
|
|
7
|
+
across tasks and sessions: build commands, architecture notes, conventions, and
|
|
8
|
+
recurring pitfalls. It is **enabled by default**, but nothing is written merely
|
|
9
|
+
because you open a project, finish a turn, compact context, save, or resume a
|
|
10
|
+
session. The agent writes memory only through an explicit memory tool call, and
|
|
11
|
+
you can inspect or change it yourself.
|
|
12
|
+
|
|
13
|
+
Run `/memory` with no arguments to open the Project Memory screen.
|
|
14
|
+
|
|
15
|
+
## Private, project-scoped state
|
|
16
|
+
|
|
17
|
+
The built-in `markdown` backend stores a concise `MEMORY.md` index and optional
|
|
18
|
+
Markdown topic files under Kolega Code's private local state directory—not under
|
|
19
|
+
the repository. Directories and files use owner-only permissions where the
|
|
20
|
+
platform supports them: `0700` for directories and `0600` for files, manifests,
|
|
21
|
+
and lock artifacts. The screen and `/memory path` show the local location to you;
|
|
22
|
+
it is never included in model-facing memory output.
|
|
23
|
+
|
|
24
|
+
Kolega Code does not:
|
|
25
|
+
|
|
26
|
+
- write memory files into your repository or change Git status;
|
|
27
|
+
- review completed transcripts or synthesize end-of-turn summaries into memory;
|
|
28
|
+
- cloud-sync project memory; or
|
|
29
|
+
- use project memory as a scratchpad for transient progress, active plans, or
|
|
30
|
+
task state.
|
|
31
|
+
|
|
32
|
+
Memory content returned by tools is part of the normal private session history
|
|
33
|
+
sent to the selected model, just like other tool results. Keep credentials and
|
|
34
|
+
other secrets out of it. This is an authoring precaution, not an enforced
|
|
35
|
+
policy: project memory is not scanned, rejected, withheld, or redacted based on
|
|
36
|
+
secret-like content.
|
|
37
|
+
|
|
38
|
+
### Which directories share a bank?
|
|
39
|
+
|
|
40
|
+
For Git projects, identity comes from the canonical Git **common directory**.
|
|
41
|
+
Linked worktrees therefore share one project-memory bank. Separate clones have
|
|
42
|
+
different common directories and do not share memory.
|
|
43
|
+
|
|
44
|
+
For non-Git projects, identity is the canonical resolved project path. Moving a
|
|
45
|
+
non-Git directory changes that identity. Initializing it as a Git repository also
|
|
46
|
+
creates a new identity, as can moving the Git identity root. Existing banks are
|
|
47
|
+
not moved or merged automatically.
|
|
48
|
+
|
|
49
|
+
## The Markdown backend
|
|
50
|
+
|
|
51
|
+
Only `MEMORY.md` is added automatically to the agent's startup context. It is
|
|
52
|
+
limited to the first **200 lines or 25 KiB**, with a visible truncation marker.
|
|
53
|
+
Use it as a concise index and link to topic files; topic content is loaded on
|
|
54
|
+
demand with `read_memory`, and the agent can enumerate or search entries with
|
|
55
|
+
`list_memory`.
|
|
56
|
+
|
|
57
|
+
The model-facing file API is:
|
|
58
|
+
|
|
59
|
+
- `read_memory(path="MEMORY.md")`
|
|
60
|
+
- `list_memory(query=None)`
|
|
61
|
+
- `write_memory(content, path="MEMORY.md")`
|
|
62
|
+
- `edit_memory(old_string, new_string, path="MEMORY.md")`
|
|
63
|
+
- `delete_memory(path)`
|
|
64
|
+
|
|
65
|
+
`write_memory` creates or overwrites one complete file. `edit_memory` replaces
|
|
66
|
+
one exact, unique occurrence. It rejects an empty `old_string`; if the old text
|
|
67
|
+
occurs zero times or more than once, the operation fails without writing.
|
|
68
|
+
|
|
69
|
+
The agent follows a no-op-first retrieval policy. It inspects the already-loaded
|
|
70
|
+
`MEMORY.md` first and follows any semantically relevant link. If no link looks
|
|
71
|
+
promising, it uses a targeted `list_memory` query to find unindexed or nested
|
|
72
|
+
entries. When a durable fact is already covered, it does nothing—rewording the
|
|
73
|
+
same fact is not a reason to mutate memory. It reads an existing topic before
|
|
74
|
+
overwriting or editing it and updates memory only for materially new, corrected,
|
|
75
|
+
or stale information.
|
|
76
|
+
|
|
77
|
+
Memory uses a hybrid structure. Keep a short, self-contained fact directly in
|
|
78
|
+
`MEMORY.md`. Use a flat topic file plus a concise, descriptive one-line index
|
|
79
|
+
link when the information needs multiple rules, caveats, rationale, or examples.
|
|
80
|
+
Existing nested topics remain valid. Create a detailed memory topic-first and
|
|
81
|
+
index-second; delete one index-first and topic-second. These orderings make
|
|
82
|
+
interrupted operations recoverable, but they are not transactions and do not
|
|
83
|
+
provide automatic index maintenance.
|
|
84
|
+
|
|
85
|
+
Backend-wide safety limits are:
|
|
86
|
+
|
|
87
|
+
- normalized relative `.md` paths only;
|
|
88
|
+
- at most 100 Markdown files;
|
|
89
|
+
- at most 128 KiB per file; and
|
|
90
|
+
- at most 1 MiB of Markdown content per project.
|
|
91
|
+
|
|
92
|
+
Absolute paths, traversal, symlinks, reserved paths, and writes that exceed a
|
|
93
|
+
limit are rejected. A write uses a temporary file followed by an atomic
|
|
94
|
+
same-directory replacement, so an interrupted write does not leave a partial
|
|
95
|
+
Markdown file. This guarantee applies to one file only. Content mutation has an
|
|
96
|
+
explicit single-writer, last-write-wins concurrency model: overlapping writers
|
|
97
|
+
can overwrite one another, and the read-exact-replace-write sequence used by
|
|
98
|
+
`edit_memory` does not preserve independent concurrent changes. There is no
|
|
99
|
+
cross-file atomicity.
|
|
100
|
+
|
|
101
|
+
The private state directory is treated as owner-controlled application state,
|
|
102
|
+
not as a sandbox against other processes running as the same operating-system
|
|
103
|
+
user. Kolega Code coordinates its own processes and rejects ordinary path
|
|
104
|
+
escapes and symlinks, but it does not attempt to race an unrelated local process
|
|
105
|
+
that deliberately changes private state during a write. A process with access
|
|
106
|
+
to that directory can already inspect or tamper with the application's local
|
|
107
|
+
state.
|
|
108
|
+
|
|
109
|
+
## Using the Project Memory screen
|
|
110
|
+
|
|
111
|
+
The screen shows whether memory is enabled, the active backend, project identity
|
|
112
|
+
kind, startup-context size and warnings, file count and total size, and the
|
|
113
|
+
private local path. Filter the entry list on the left and select an entry to see
|
|
114
|
+
its rendered preview, logical path, and size on the right.
|
|
115
|
+
|
|
116
|
+
Available controls depend on backend capabilities. With `markdown`, you can:
|
|
117
|
+
|
|
118
|
+
- create a topic, edit an entry, and save its complete content;
|
|
119
|
+
- delete an entry with confirmation;
|
|
120
|
+
- refresh changes made by another process (`r`);
|
|
121
|
+
- preview the exact bounded startup context the agent receives (**Agent view**);
|
|
122
|
+
- turn agent memory access on or off.
|
|
123
|
+
|
|
124
|
+
While an entry is being edited, the entry list and filter are inactive; only
|
|
125
|
+
Save, Cancel, and closing the screen are available. The footer buttons swap
|
|
126
|
+
between browse actions (New, Delete, Edit) and edit actions (Cancel, Save).
|
|
127
|
+
|
|
128
|
+
Turning memory off preserves its files but removes its context and memory tools
|
|
129
|
+
from the agent. The screen can still inspect an existing disabled bank after an
|
|
130
|
+
explicit action. Creating the first entry in a new disabled bank asks you to
|
|
131
|
+
confirm enablement first.
|
|
132
|
+
|
|
133
|
+
Configuration changes are unavailable or deferred while an agent turn is
|
|
134
|
+
running. After a successful edit or enablement change, the idle agent prompt is
|
|
135
|
+
refreshed. Failed writes do not refresh it.
|
|
136
|
+
|
|
137
|
+
## Slash commands
|
|
138
|
+
|
|
139
|
+
| Command | Action |
|
|
140
|
+
| --- | --- |
|
|
141
|
+
| `/memory` | Open the Project Memory screen (alias: `/memory browse`) |
|
|
142
|
+
| `/memory status` | Show state, backend, identity, sizes, and the exact bounded startup context the agent receives |
|
|
143
|
+
| `/memory on` | Enable project memory without changing its files |
|
|
144
|
+
| `/memory off` | Disable agent access while preserving its files |
|
|
145
|
+
| `/memory files` | List logical entries and sizes |
|
|
146
|
+
| `/memory show [path]` | Show bounded content; defaults to `MEMORY.md` |
|
|
147
|
+
| `/memory path` | Show the active backend's private local directory |
|
|
148
|
+
|
|
149
|
+
## Sensitive and untrusted content
|
|
150
|
+
|
|
151
|
+
Private project memory is trusted as owner-controlled application state. Kolega
|
|
152
|
+
Code does not scan it for probable secrets: credential-like content is stored,
|
|
153
|
+
shown in the TUI and slash-command previews, returned by `read_memory`, and
|
|
154
|
+
included in bounded startup context without rejection, withholding, or
|
|
155
|
+
redaction. Because those model-facing paths can send memory to the selected
|
|
156
|
+
provider and retain it in private session history, do not use project memory as
|
|
157
|
+
a credential store.
|
|
158
|
+
|
|
159
|
+
Memory is treated as untrusted project observations, not instructions. Current
|
|
160
|
+
system and user instructions, repository guidance, and fresh tool output take
|
|
161
|
+
precedence over instruction-like text found there.
|
|
162
|
+
|
|
163
|
+
## Other kinds of state
|
|
164
|
+
|
|
165
|
+
Project memory is distinct from:
|
|
166
|
+
|
|
167
|
+
- `AGENTS.md`, `KOLEGA.md`, and prompt overrides: repository-controlled project
|
|
168
|
+
instructions;
|
|
169
|
+
- host-provided `workspace_memories`: a separately labelled host context;
|
|
170
|
+
- session history: the messages and tool results used to resume a conversation;
|
|
171
|
+
and
|
|
172
|
+
- the Planning tab's task list: current work state, not durable knowledge.
|
|
173
|
+
|
|
174
|
+
## Pluggable backends
|
|
175
|
+
|
|
176
|
+
`markdown` is the first backend behind Kolega Code's versioned project-memory
|
|
177
|
+
provider architecture. The common manager handles identity, lifecycle, backend
|
|
178
|
+
selection, capability discovery, tool registration, and the generic TUI shell.
|
|
179
|
+
Each backend owns isolated storage and may provide different context, tools, and
|
|
180
|
+
browse/edit capabilities.
|
|
181
|
+
|
|
182
|
+
Phase 1 supports built-in registration and host injection for tests or embedders,
|
|
183
|
+
not discovery of arbitrary installed plugins. Selecting another backend never
|
|
184
|
+
migrates or reinterprets Markdown data automatically, and inactive backend data
|
|
185
|
+
is retained. If a configured provider is unavailable, Kolega Code shows a
|
|
186
|
+
diagnostic, exposes no memory to the agent, and lets the coding session continue.
|
|
187
|
+
A future SQLite, Mnemopi-style, or other structured provider will be a separate
|
|
188
|
+
backend rather than a change to Markdown semantics.
|
|
@@ -41,6 +41,7 @@ These control the app and your session.
|
|
|
41
41
|
| `/build` | Switch to [Build mode](../modes/) |
|
|
42
42
|
| `/sidebar` | Show or hide the side panel |
|
|
43
43
|
| `/settings` | Open the full-screen Settings editor |
|
|
44
|
+
| `/memory` | Open [Project Memory](../project-memory/) or run a memory subcommand |
|
|
44
45
|
| `/permissions` | Show or switch the shell/edit permission mode |
|
|
45
46
|
| `/model` | Choose the active model |
|
|
46
47
|
| `/effort` | Choose the active model's thinking effort |
|
|
@@ -70,6 +71,20 @@ provider. You can also switch directly with `/model <name>`.
|
|
|
70
71
|
Run `/settings` to open the categorized Settings editor without navigating to the
|
|
71
72
|
sidebar tab. Unsaved changes remain a draft until you select **Apply Changes**.
|
|
72
73
|
|
|
74
|
+
Run `/memory` with no arguments (alias: `/memory browse`) to browse and edit the
|
|
75
|
+
project's private memory bank. Lightweight subcommands are also available:
|
|
76
|
+
|
|
77
|
+
| Command | Description |
|
|
78
|
+
| --- | --- |
|
|
79
|
+
| `/memory status` | Show enabled/backend/identity state, sizes, and the exact bounded startup context the agent receives |
|
|
80
|
+
| `/memory on` / `/memory off` | Enable agent access or disable it without deleting data |
|
|
81
|
+
| `/memory files` | List entries and sizes |
|
|
82
|
+
| `/memory show [path]` | Show bounded content; defaults to `MEMORY.md` |
|
|
83
|
+
| `/memory path` | Show the private local backend directory |
|
|
84
|
+
|
|
85
|
+
See [Project Memory](../project-memory/) for project identity, limits,
|
|
86
|
+
concurrency, privacy, and model-exposure details.
|
|
87
|
+
|
|
73
88
|
Run `/effort` to open a selectable list of supported effort values for the
|
|
74
89
|
active model. You can also switch directly with `/effort <level>`.
|
|
75
90
|
|
|
@@ -53,7 +53,7 @@ from kolega_code.permissions import (
|
|
|
53
53
|
from .prompt_provider import PromptProvider, AgentMode, AgentType, PromptContext, PromptExtension
|
|
54
54
|
from .prompt_overrides import ProjectPromptOverrides, format_prompt_override_error, render_prompt_override_source
|
|
55
55
|
from kolega_code.services.base import TerminalManager, BrowserManager
|
|
56
|
-
from kolega_code.services.file_system import FileSystem
|
|
56
|
+
from kolega_code.services.file_system import FileSystem, LocalFileSystem
|
|
57
57
|
from .tools import ToolCollection # noqa: F401 - kept for tests and downstream monkeypatch compatibility
|
|
58
58
|
from kolega_code.tools import ToolError
|
|
59
59
|
from .utils.commands import CommandProcessor
|
|
@@ -67,7 +67,6 @@ if TYPE_CHECKING:
|
|
|
67
67
|
logger = logging.getLogger(__name__)
|
|
68
68
|
|
|
69
69
|
PROJECT_GUIDANCE_FILES = ("AGENTS.md", "KOLEGA.md")
|
|
70
|
-
AGENT_MEMORY_FILE = "AGENT_MEMORY.md"
|
|
71
70
|
|
|
72
71
|
# System prompt for `prompt`/`agent` lifecycle hooks: the model's only job is a
|
|
73
72
|
# yes/no decision returned as a compact JSON object.
|
|
@@ -149,6 +148,7 @@ class BaseAgent(LogMixin):
|
|
|
149
148
|
context: Optional[AgentContext] = None,
|
|
150
149
|
max_iterations: Optional[int] = None,
|
|
151
150
|
custom_agent_catalog: Optional[Any] = None,
|
|
151
|
+
memory_manager: Optional[Any] = None,
|
|
152
152
|
) -> None:
|
|
153
153
|
"""
|
|
154
154
|
Initialize a new BaseAgent instance.
|
|
@@ -205,6 +205,7 @@ class BaseAgent(LogMixin):
|
|
|
205
205
|
filesystem=filesystem or defaults.filesystem,
|
|
206
206
|
terminal_manager=terminal_manager or defaults.terminal_manager,
|
|
207
207
|
browser_manager=browser_manager or defaults.browser_manager,
|
|
208
|
+
memory_manager=memory_manager,
|
|
208
209
|
)
|
|
209
210
|
|
|
210
211
|
context = AgentContext(
|
|
@@ -226,8 +227,11 @@ class BaseAgent(LogMixin):
|
|
|
226
227
|
permission_mode=normalize_permission_mode(permission_mode, default=PermissionMode.AUTO),
|
|
227
228
|
permission_callback=permission_callback or auto_allow_permission_callback,
|
|
228
229
|
)
|
|
229
|
-
|
|
230
|
-
|
|
230
|
+
else:
|
|
231
|
+
if memory_manager is not None:
|
|
232
|
+
context.services.memory_manager = memory_manager
|
|
233
|
+
if prompt_provider is not None:
|
|
234
|
+
context.prompt_provider = prompt_provider
|
|
231
235
|
if permission_mode is not None:
|
|
232
236
|
context.permission_mode = normalize_permission_mode(permission_mode, default=context.permission_mode)
|
|
233
237
|
if permission_callback is not None:
|
|
@@ -277,6 +281,20 @@ class BaseAgent(LogMixin):
|
|
|
277
281
|
self.sub_agent_recorder = context.telemetry.sub_agent_recorder
|
|
278
282
|
self.session_recorder = None if sub_agent else session_recorder
|
|
279
283
|
self.custom_agent_catalog = custom_agent_catalog
|
|
284
|
+
self.memory_manager = context.services.memory_manager
|
|
285
|
+
self._owns_memory_manager = False
|
|
286
|
+
if self.memory_manager is not None and sub_agent:
|
|
287
|
+
from kolega_code.memory import MemoryAccessScope
|
|
288
|
+
|
|
289
|
+
self.memory_manager = self.memory_manager.with_scope(MemoryAccessScope.SUBAGENT)
|
|
290
|
+
if self.memory_manager is None and not sub_agent and isinstance(self.filesystem, LocalFileSystem):
|
|
291
|
+
# Keep non-local/sandbox hosts unchanged unless they inject a manager.
|
|
292
|
+
from kolega_code.cli.session_store import default_state_dir
|
|
293
|
+
from kolega_code.memory import ProjectMemoryManager
|
|
294
|
+
|
|
295
|
+
self.memory_manager = ProjectMemoryManager(self.project_path, default_state_dir())
|
|
296
|
+
self.context.services.memory_manager = self.memory_manager
|
|
297
|
+
self._owns_memory_manager = True
|
|
280
298
|
|
|
281
299
|
# gigacode (workflow orchestration) opt-in. Off by default; the host toggles
|
|
282
300
|
# it via apply_gigacode(). The run_workflow tool gate reads this live, so
|
|
@@ -547,15 +565,6 @@ class BaseAgent(LogMixin):
|
|
|
547
565
|
return guidance_file, ""
|
|
548
566
|
return "", ""
|
|
549
567
|
|
|
550
|
-
def _load_agent_memory(self) -> tuple[str, str]:
|
|
551
|
-
"""Return agent memory content when AGENT_MEMORY.md exists."""
|
|
552
|
-
if not self.filesystem.exists(AGENT_MEMORY_FILE):
|
|
553
|
-
return "", ""
|
|
554
|
-
try:
|
|
555
|
-
return AGENT_MEMORY_FILE, self.filesystem.read_text(AGENT_MEMORY_FILE)
|
|
556
|
-
except Exception:
|
|
557
|
-
return AGENT_MEMORY_FILE, ""
|
|
558
|
-
|
|
559
568
|
def build_prompt_context(self) -> PromptContext:
|
|
560
569
|
"""Build PromptContext from agent state."""
|
|
561
570
|
import platform
|
|
@@ -564,7 +573,13 @@ class BaseAgent(LogMixin):
|
|
|
564
573
|
is_git_repo = self.filesystem.exists(".git") and self.filesystem.is_dir(".git")
|
|
565
574
|
|
|
566
575
|
project_guidance_file, project_guidance = self._load_project_guidance()
|
|
567
|
-
|
|
576
|
+
private_memory = ""
|
|
577
|
+
if self.memory_manager is not None:
|
|
578
|
+
try:
|
|
579
|
+
private_memory = self.memory_manager.prompt_context().text
|
|
580
|
+
except Exception:
|
|
581
|
+
# Disabled/unavailable memory is intentionally invisible to the model.
|
|
582
|
+
private_memory = ""
|
|
568
583
|
|
|
569
584
|
return PromptContext(
|
|
570
585
|
system_name=os.getenv("KOLEGA_CODE_SYSTEM_NAME", "Kolega Code"),
|
|
@@ -576,12 +591,11 @@ class BaseAgent(LogMixin):
|
|
|
576
591
|
available_ports=self.available_ports,
|
|
577
592
|
project_guidance=project_guidance,
|
|
578
593
|
project_guidance_file=project_guidance_file,
|
|
579
|
-
agent_memory=agent_memory,
|
|
580
|
-
agent_memory_file=agent_memory_file,
|
|
581
594
|
kolega_md=project_guidance,
|
|
582
595
|
workspace_id=self.workspace_id,
|
|
583
596
|
workspace_environment_variables=self.workspace_env_var_descriptions,
|
|
584
597
|
memories=self.workspace_memories,
|
|
598
|
+
private_memory=private_memory,
|
|
585
599
|
)
|
|
586
600
|
|
|
587
601
|
def _prompt_override_error_message(self, path: str, detail: object) -> str:
|
|
@@ -1020,9 +1034,6 @@ class BaseAgent(LogMixin):
|
|
|
1020
1034
|
if isinstance(output, list):
|
|
1021
1035
|
chat_message_content = "\n\n".join(item.to_markdown() for item in output)
|
|
1022
1036
|
|
|
1023
|
-
if tool_name == "write_memory":
|
|
1024
|
-
self._initialize_system_prompt()
|
|
1025
|
-
|
|
1026
1037
|
# Send tool_result message for successful execution
|
|
1027
1038
|
await self.send_chat_message(
|
|
1028
1039
|
message_type="tool_result",
|
|
@@ -1561,6 +1572,13 @@ class BaseAgent(LogMixin):
|
|
|
1561
1572
|
return
|
|
1562
1573
|
await asyncio.to_thread(recorder.finish_turn, status, error=error)
|
|
1563
1574
|
|
|
1575
|
+
def refresh_memory_context(self) -> None:
|
|
1576
|
+
"""Refresh private memory and rebuild the system prompt without a full agent rebuild."""
|
|
1577
|
+
if self.memory_manager is None:
|
|
1578
|
+
return
|
|
1579
|
+
self.memory_manager.refresh()
|
|
1580
|
+
self._initialize_system_prompt()
|
|
1581
|
+
|
|
1564
1582
|
async def _process_message_stream_impl(
|
|
1565
1583
|
self, message: str, attachments: Optional[List[Dict[str, Any]]] = None
|
|
1566
1584
|
) -> AsyncGenerator[Dict[str, Any], None]:
|
|
@@ -1570,6 +1588,13 @@ class BaseAgent(LogMixin):
|
|
|
1570
1588
|
Yields dicts of the form
|
|
1571
1589
|
``{"type": "response"|"thinking", "content": str, "complete": bool, "uuid": str}``.
|
|
1572
1590
|
"""
|
|
1591
|
+
if not self.sub_agent:
|
|
1592
|
+
try:
|
|
1593
|
+
self.refresh_memory_context()
|
|
1594
|
+
except Exception:
|
|
1595
|
+
# Keep the last valid prompt if memory or prompt refresh fails.
|
|
1596
|
+
pass
|
|
1597
|
+
|
|
1573
1598
|
unsupported_attachment_message = self._unsupported_attachment_message(attachments)
|
|
1574
1599
|
if unsupported_attachment_message:
|
|
1575
1600
|
yield {
|
|
@@ -1834,9 +1859,13 @@ class BaseAgent(LogMixin):
|
|
|
1834
1859
|
Clean up all agent resources.
|
|
1835
1860
|
This should be called when the agent is being destroyed.
|
|
1836
1861
|
"""
|
|
1837
|
-
|
|
1838
|
-
|
|
1839
|
-
|
|
1862
|
+
try:
|
|
1863
|
+
if self.tool_collection is not None:
|
|
1864
|
+
await self.tool_collection.cleanup()
|
|
1865
|
+
finally:
|
|
1866
|
+
if self._owns_memory_manager and self.memory_manager is not None:
|
|
1867
|
+
self.memory_manager.close()
|
|
1868
|
+
self.memory_manager = None
|
|
1840
1869
|
|
|
1841
1870
|
# Log cleanup
|
|
1842
1871
|
await self.log_info("Agent cleanup completed", sender=self.agent_name)
|
|
@@ -7,7 +7,7 @@ from kolega_code.events import AgentConnectionManager
|
|
|
7
7
|
from kolega_code.llm.models import Message, TextBlock
|
|
8
8
|
from kolega_code.llm.specs import supports_vision as model_supports_vision
|
|
9
9
|
from .prompt_provider import AgentMode, AgentType, PromptExtension, PromptProvider
|
|
10
|
-
from .tools import ToolCollection
|
|
10
|
+
from .tools import ToolCollection, ToolCollectionConfig
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
class BrowserAgent(BaseAgent):
|
|
@@ -61,6 +61,7 @@ class BrowserAgent(BaseAgent):
|
|
|
61
61
|
sub_agent_recorder: Optional[Any] = None,
|
|
62
62
|
hook_dispatcher: Optional[Any] = None,
|
|
63
63
|
max_iterations: Optional[int] = None,
|
|
64
|
+
memory_manager: Optional[Any] = None,
|
|
64
65
|
) -> None:
|
|
65
66
|
"""
|
|
66
67
|
Initialize a new BrowserAgent instance.
|
|
@@ -116,6 +117,7 @@ class BrowserAgent(BaseAgent):
|
|
|
116
117
|
sub_agent_recorder=sub_agent_recorder,
|
|
117
118
|
hook_dispatcher=hook_dispatcher,
|
|
118
119
|
max_iterations=max_iterations,
|
|
120
|
+
memory_manager=memory_manager,
|
|
119
121
|
)
|
|
120
122
|
|
|
121
123
|
self.tool_collection = ToolCollection(
|
|
@@ -125,7 +127,7 @@ class BrowserAgent(BaseAgent):
|
|
|
125
127
|
self.connection_manager,
|
|
126
128
|
self.config,
|
|
127
129
|
caller=self,
|
|
128
|
-
browser_only=True,
|
|
130
|
+
tool_config=ToolCollectionConfig(browser_only=True, include_memory_tools=True),
|
|
129
131
|
filesystem=self.filesystem,
|
|
130
132
|
terminal_manager=self.terminal_manager,
|
|
131
133
|
browser_manager=self.browser_manager,
|
|
@@ -52,6 +52,7 @@ class CoderAgent(BaseAgent, LogMixin):
|
|
|
52
52
|
hook_dispatcher: Optional[Any] = None,
|
|
53
53
|
max_iterations: Optional[int] = None,
|
|
54
54
|
custom_agent_catalog: Optional[Any] = None,
|
|
55
|
+
memory_manager: Optional[Any] = None,
|
|
55
56
|
) -> None:
|
|
56
57
|
"""
|
|
57
58
|
Initialize a new CoderAgent instance.
|
|
@@ -114,12 +115,11 @@ class CoderAgent(BaseAgent, LogMixin):
|
|
|
114
115
|
hook_dispatcher=hook_dispatcher,
|
|
115
116
|
max_iterations=max_iterations,
|
|
116
117
|
custom_agent_catalog=custom_agent_catalog,
|
|
118
|
+
memory_manager=memory_manager,
|
|
117
119
|
)
|
|
118
120
|
|
|
119
121
|
# Configure tool collection with custom coder agent tools
|
|
120
122
|
tool_exclusions = [
|
|
121
|
-
"read_memory",
|
|
122
|
-
"write_memory",
|
|
123
123
|
"execute_terminal_command",
|
|
124
124
|
"get_tool_list",
|
|
125
125
|
"log_error",
|
|
@@ -137,6 +137,8 @@ class CoderAgent(BaseAgent, LogMixin):
|
|
|
137
137
|
tool_config = ToolCollectionConfig(
|
|
138
138
|
custom_tool_groups=["coder_agent_tools"],
|
|
139
139
|
tool_exclusions=tool_exclusions,
|
|
140
|
+
include_memory_tools=True,
|
|
141
|
+
memory_write_access=True,
|
|
140
142
|
)
|
|
141
143
|
|
|
142
144
|
self.tool_collection = ToolCollection(
|