kolega-code 0.28.4__tar.gz → 0.30.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.28.4 → kolega_code-0.30.0}/CHANGELOG.md +62 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/PKG-INFO +1 -1
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/__init__.py +3 -2
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/__init__.py +1 -1
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/baseagent.py +39 -12
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/context.py +5 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/tool_backend/agent_tool.py +1 -1
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/tool_backend/terminal_tool.py +3 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/tool_backend/web_fetch_tool.py +3 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/tools.py +0 -6
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/config.py +287 -19
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/main.py +126 -14
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/messages.py +9 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/model_catalog.py +5 -2
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/model_connection.py +6 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/provider_registry.py +44 -4
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/settings.py +62 -1
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/slash_commands.py +1 -1
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/theme.py +18 -18
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/tui/agent_runtime.py +21 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/tui/command_handlers.py +15 -1
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/tui/onboarding_screen.py +7 -1
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/tui/settings_panel.py +350 -12
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/tui/settings_screen.py +92 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/config.py +107 -2
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/client.py +48 -24
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/exceptions.py +59 -28
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/instrumented_client.py +6 -2
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/models.py +93 -25
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/providers/anthropic.py +6 -5
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/providers/deepseek_responses.py +5 -6
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/providers/models.py +3 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/providers/openai.py +16 -5
- kolega_code-0.30.0/kolega_code/llm/providers/perplexity_responses.py +107 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/providers/responses_common.py +107 -9
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/specs/__init__.py +16 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/specs/catalog/__init__.py +3 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/specs/catalog/deepseek.py +5 -4
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/specs/catalog/google.py +13 -0
- kolega_code-0.30.0/kolega_code/llm/specs/catalog/perplexity_agent.py +616 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/specs/catalog/xai.py +12 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/specs/catalog/zai.py +12 -0
- kolega_code-0.30.0/kolega_code/llm/specs/custom_endpoints.py +156 -0
- kolega_code-0.30.0/kolega_code/llm/specs/perplexity_catalog.py +267 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/specs/thinking.py +28 -12
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/usage.py +21 -4
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/mcp/config.py +49 -7
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/mcp/service.py +103 -3
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/mcp/tools.py +29 -12
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/sandbox/async_filesystem.py +0 -3
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/sandbox/filesystem.py +0 -3
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/sandbox/serializer.py +4 -13
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/sandbox/terminal.py +10 -72
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/sandbox/utils.py +0 -4
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/services/file_system.py +1 -4
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/services/html.py +0 -19
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/services/lsp/manager.py +5 -5
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/services/lsp/registry.py +0 -1
- {kolega_code-0.28.4 → kolega_code-0.30.0}/pyproject.toml +1 -1
- {kolega_code-0.28.4 → kolega_code-0.30.0}/.gitignore +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/CONTRIBUTING.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/LICENSE +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/MIGRATION.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/README.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/RELEASING.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/LICENSE +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/manifest.json +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/deep-research/SKILL.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/deep-research/references/evidence-and-reporting.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/deep-research/references/gigacode-workflow.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/deep-research/scripts/deep-research.workflow +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/deep-research/scripts/materialize_report.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/docx/LICENSE +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/docx/SKILL.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/docx/references/examples.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/docx/references/limitations.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/docx/references/operations.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/docx/references/quality.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/docx/requirements.txt +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/docx/scripts/docx_tool.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/docx/scripts/smoke_test.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/humanizer/LICENSE +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/humanizer/SKILL.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/pdf/LICENSE +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/pdf/SKILL.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/pdf/references/examples.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/pdf/references/limitations.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/pdf/references/ocr.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/pdf/references/operations.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/pdf/references/quality.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/pdf/references/redaction.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/pdf/requirements-ocr-paddle.txt +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/pdf/requirements-ocr-surya.txt +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/pdf/requirements.txt +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/pdf/scripts/pdf_tool.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/pdf/scripts/smoke_test.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/pptx/LICENSE +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/pptx/SKILL.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/pptx/references/examples.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/pptx/references/limitations.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/pptx/references/operations.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/pptx/requirements.txt +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/pptx/scripts/pptx_tool.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/pptx/scripts/smoke_test.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/review/SKILL.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/review/references/github-publishing.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/skill-authoring/SKILL.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/skill-authoring/references/review-checklist.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/xlsx/LICENSE +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/xlsx/SKILL.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/xlsx/references/examples.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/xlsx/references/limitations.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/xlsx/references/operations.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/xlsx/references/quality.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/xlsx/requirements.txt +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/xlsx/scripts/smoke_test.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/_bundled_skills/skills/xlsx/scripts/xlsx_tool.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/browseragent.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/coder.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/common.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/compression.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/conversation.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/custom_agents.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/edit_protocols.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/errors.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/eval/__init__.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/eval/bridge.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/eval/bundle-requirements.in +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/eval/bundle-requirements.txt +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/eval/env.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/eval/js_kernel.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/eval/kernel.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/eval/prelude.js +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/eval/prelude.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/eval/protocol.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/eval/py_kernel.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/eval/runner.js +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/eval/runner.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/generalagent.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/goal.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/investigationagent.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/model_routing.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/orchestration/__init__.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/orchestration/accounting.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/orchestration/budget.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/orchestration/context.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/orchestration/errors.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/orchestration/executor.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/orchestration/guide.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/orchestration/journal.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/orchestration/runtime.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/orchestration/types.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/planningagent.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_dump.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_overrides.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_provider.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/auxiliary/agent_loop/silent_turn_exhausted.user.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/auxiliary/agent_loop/silent_turn_nudge.user.md.j2 +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/auxiliary/agent_loop/truncated_turn_nudge.user.md.j2 +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/auxiliary/compression/summary.system.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/auxiliary/compression/summary.user.md.j2 +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/auxiliary/terminal/output_summary.system.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/auxiliary/terminal/safety.system.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/extensions/cli/build_questions.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/extensions/cli/current_plan_artifact.md.j2 +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/extensions/cli/mode_switch_notice.md.j2 +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/extensions/cli/planning_questions.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/extensions/cli/scratchpad.md.j2 +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/extensions/cli/shared_task_list.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/extensions/cli/shared_task_list_readonly.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/extensions/cli/worktree_control.md.j2 +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/extensions/skills/catalog.md.j2 +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/system/agents/browser.md.j2 +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/system/agents/coder_ask.md.j2 +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/system/agents/coder_base.md.j2 +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/system/agents/coder_cli.md.j2 +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/system/agents/general.md.j2 +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/system/agents/investigation.md.j2 +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/system/agents/planning.md.j2 +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/system/includes/agents_md_instructions.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/system/includes/context_updates.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/system/includes/environment_variables/workspace_env_vars.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/system/includes/frontend_guidance.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/expo.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/html_website.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/mern_stack.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/react_vite_shadcdn.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/system/includes/terminal_tools.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/apply_patch.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/ask_user_choice.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/browser_click.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/browser_close.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/browser_console_messages.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/browser_drag.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/browser_drop.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/browser_evaluate.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/browser_file_upload.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/browser_fill_form.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/browser_find.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/browser_handle_dialog.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/browser_hover.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/browser_navigate.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/browser_navigate_back.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/browser_network_request.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/browser_network_requests.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/browser_press_key.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/browser_resize.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/browser_scroll.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/browser_select_option.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/browser_snapshot.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/browser_tabs.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/browser_take_screenshot.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/browser_type.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/browser_wait_for.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/build_backend.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/build_frontend.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/claude_edit.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/claude_write.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/dispatch_agent.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/edit.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/eval.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/exec_command.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/get_host.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/get_task_list.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/get_task_list_readonly.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/hashline_edit.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/hashline_write.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/kill_command.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/list_sessions.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/list_subagent_models.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/list_workflow_runs.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/lsp.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/lsp_edit.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/multi_edit.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/read.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/read_image.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/resolve.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/run_workflow.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/set_goal.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/skill.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/snapshot.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/switch_worktree.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/update_task_list.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/web_fetch.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/web_search.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/write.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/write_plan.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/tools/write_stdin.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/user_tasks/cli/implement_plan.md.j2 +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompt_templates/user_tasks/cli/init_agents.md.j2 +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/prompts.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/tool_backend/base_tool.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/tool_backend/browser_tool.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/tool_backend/build_tool.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/tool_backend/codex_patch.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/tool_backend/edit_preview.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/tool_backend/edit_tool.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/tool_backend/eval_tool.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/tool_backend/hashline_v2.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/tool_backend/lsp_tool.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/tool_backend/memory_tool.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/tool_backend/network_status.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/tool_backend/read_file_tool.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/tool_backend/read_image_tool.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/tool_backend/search_backends/__init__.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/tool_backend/search_backends/base.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/tool_backend/search_backends/duckduckgo.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/tool_backend/search_backends/errors.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/tool_backend/search_backends/firecrawl.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/tool_backend/search_backends/models.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/tool_backend/search_backends/searxng.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/tool_backend/search_backends/tavily.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/tool_backend/snapshot_tool.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/tool_backend/streaming_tool.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/tool_backend/web_fetch/__init__.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/tool_backend/web_fetch/answering.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/tool_backend/web_fetch/documents.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/tool_backend/web_fetch/extractors.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/tool_backend/web_fetch/pipeline.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/tool_backend/web_fetch/retrieval.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/tool_backend/web_search_tool.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/tool_backend/workflow_tool.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/tool_definitions.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/utils/commands.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/agent/volatile_context.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/auth/__init__.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/auth/_jwt.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/auth/chatgpt_oauth.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/auth/constants.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/auth/tokens.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/browser_extension/__init__.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/browser_extension/framing.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/browser_extension/installer.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/browser_extension/manager.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/browser_extension/multiplex.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/browser_extension/native_host.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/browser_extension/protocol.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/browser_extension/registry.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/browser_extension/runtime.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/__init__.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/app.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/ask_output.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/atif_export.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/browser_backend.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/clipboard_image.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/connection.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/cron.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/diagnostics.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/file_index.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/goal.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/loop.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/mentions.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/plan_artifacts.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/session_event_protocol.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/session_event_store.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/session_journal.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/session_store.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/session_usage.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/skills.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/tui/__init__.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/tui/app_base.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/tui/changes_screen.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/tui/constants.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/tui/custom_model.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/tui/loop_runtime.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/tui/memory_screen.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/tui/pacing.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/tui/prompt_flows.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/tui/session_diff.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/tui/state.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/tui/status_dashboard.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/tui/styles.tcss +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/tui/sub_agent_screen.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/tui/terminal_display.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/tui/transcript.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/tui/widgets.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/cli/updater.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/events.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/extensions.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/git_env.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/hooks/__init__.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/hooks/backends.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/hooks/config.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/hooks/dispatcher.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/hooks/events.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/hooks/matcher.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/hooks/outcome.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/ledger.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/providers/__init__.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/providers/_token_encoding.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/providers/base.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/providers/chatgpt_oauth.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/providers/google.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/providers/openai_responses.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/providers/tinker.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/providers/tinker_trace.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/ratelimit.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/specs/accessors.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/specs/catalog/anthropic.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/specs/catalog/dashscope.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/specs/catalog/fireworks.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/specs/catalog/kimi_coding.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/specs/catalog/moonshot.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/specs/catalog/ollama_cloud.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/specs/catalog/openai.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/specs/catalog/openai_chatgpt.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/specs/catalog/openrouter.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/specs/catalog/thinking_machines.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/specs/catalog/tinker.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/specs/catalog/together.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/specs/ollama_cloud_catalog.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/specs/openrouter_catalog.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/specs/tinker_catalog.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/specs/types.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/specs/validation.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/timeouts.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/llm/tool_execution_ids.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/local_state.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/mcp/__init__.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/mcp/oauth.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/mcp/state.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/mcp/transport.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/memory/__init__.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/memory/identity.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/memory/manager.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/memory/manifest.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/memory/markdown.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/memory/models.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/memory/protocol.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/memory/registry.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/models/__init__.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/models/sandbox_terminal_state.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/permissions.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/runtime.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/sandbox/README.md +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/sandbox/__init__.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/sandbox/base.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/sandbox/browser.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/sandbox/event_loop.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/sandbox/local.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/scratchpad.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/security/__init__.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/security/secrets.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/services/base.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/services/browser.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/services/lsp/__init__.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/services/lsp/client.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/services/lsp/config.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/services/lsp/detector.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/services/lsp/diagnostics.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/services/lsp/edits.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/services/lsp/registry.yaml +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/services/snapshots.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/services/terminal.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/services/terminal_buffer.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/services/workspace_scan.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/session/__init__.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/session/control.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/session/inmemory.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/session/projection.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/session/recording.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/session/runtime.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/session/store.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/testing/__init__.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/testing/store_conformance.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/tools/__init__.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/tools/core.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/tools/definitions.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/tools/param_aliases.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/tools/registry.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/utils/__init__.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/utils/images.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/web/__init__.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/web/assets/fold.js +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/web/assets/player.css +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/web/assets/player.html +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/web/assets/player.js +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/web/bundle.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/web/hosting.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/web/redaction.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/web/server.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/web/singlefile.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/web/theme_css.py +0 -0
- {kolega_code-0.28.4 → kolega_code-0.30.0}/kolega_code/worktrees.py +0 -0
|
@@ -6,6 +6,68 @@ This project uses GitHub Releases for detailed generated release notes. This fil
|
|
|
6
6
|
|
|
7
7
|
## Unreleased
|
|
8
8
|
|
|
9
|
+
## 0.30.0 - 2026-08-14
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- Added Google Gemini 3.7 Flash (`gemini-3.7-flash`): 1M-token context, 64K
|
|
14
|
+
output, vision and function calling, and `low`/`medium`/`high` thinking
|
|
15
|
+
levels. It omits Google's deprecated temperature parameter and is now the
|
|
16
|
+
default Google model.
|
|
17
|
+
- DeepSeek V4-Pro now routes to the Responses API by default (joining V4-Flash),
|
|
18
|
+
removing the model-name carve-out. Both DeepSeek models support `none`, `low`,
|
|
19
|
+
`high`, and `max` reasoning effort (`low` is new; `none` disables reasoning).
|
|
20
|
+
Hosted web search is now available on V4-Pro as well as V4-Flash.
|
|
21
|
+
- Added support for xAI Grok 4.6 (`grok-4.6`): 500K-token context, vision input,
|
|
22
|
+
and `low`/`medium`/`high`/`xhigh` reasoning effort. Selectable in the Settings
|
|
23
|
+
UI, `/model` picker, CLI flags, and env vars.
|
|
24
|
+
- Added support for Z.AI GLM-5.3 (`glm-5.3`) on the GLM Coding Plan provider:
|
|
25
|
+
1M-token context, 128K max output, and `high`/`max` thinking effort. GLM-5.3
|
|
26
|
+
is now the Z.AI default model.
|
|
27
|
+
- Added the Perplexity Agent API provider (`perplexity_agent`): one
|
|
28
|
+
`PERPLEXITY_API_KEY` reaches OpenAI, Anthropic, Google, xAI, and Perplexity
|
|
29
|
+
models through Perplexity's Responses-compatible Agent API, with optional
|
|
30
|
+
hosted search tools.
|
|
31
|
+
- `/plan` accepts an optional prompt: `/plan <task>` switches to plan mode and
|
|
32
|
+
starts that planning turn. Bare `/plan` still only switches mode.
|
|
33
|
+
|
|
34
|
+
### Fixed
|
|
35
|
+
|
|
36
|
+
- Google Gemini models no longer reject builtin tool calls with a 400 about
|
|
37
|
+
`additionalProperties` in function-declaration schemas.
|
|
38
|
+
- Quitting the TUI no longer waits up to 30s for an unresponsive language
|
|
39
|
+
server to acknowledge shutdown.
|
|
40
|
+
- The Z.AI context-window gauge now counts tokens locally (Z.AI's count
|
|
41
|
+
endpoint reports 0 for GLM-5.3) and residual usage calibrates from
|
|
42
|
+
multi-provider response billing.
|
|
43
|
+
- MCP tools whose names contain invalid characters or exceed provider length
|
|
44
|
+
limits are sanitized at collection time, and provider 400 details are shown
|
|
45
|
+
in the turn error instead of a generic failure.
|
|
46
|
+
|
|
47
|
+
## 0.29.0 - 2026-08-13
|
|
48
|
+
|
|
49
|
+
### Added
|
|
50
|
+
|
|
51
|
+
- Custom endpoints: use models from any OpenAI Chat Completions, OpenAI
|
|
52
|
+
Responses, or Anthropic Messages-compatible server (LM Studio, Ollama, vLLM,
|
|
53
|
+
...). Define endpoints under `custom_endpoints` in settings.json or via the
|
|
54
|
+
`--custom-endpoints` / `--endpoint-url` flags and `KOLEGA_CODE_CUSTOM_ENDPOINTS`
|
|
55
|
+
/ `KOLEGA_CODE_ENDPOINT_*` environment variables (never persisted), then select
|
|
56
|
+
them as `custom:<id>` anywhere a provider is chosen. Supports thinking-effort
|
|
57
|
+
modes per wire dialect and native reasoning replay.
|
|
58
|
+
|
|
59
|
+
- Custom endpoints accept a `temperature` field (per endpoint, or per model in
|
|
60
|
+
its `models` map; default 1.0), exposed in the TUI endpoint editor, via
|
|
61
|
+
`--endpoint-temperature`, and via `KOLEGA_CODE_ENDPOINT_TEMPERATURE`. Sent on
|
|
62
|
+
Chat Completions and Anthropic requests; ignored by Responses-style endpoints.
|
|
63
|
+
|
|
64
|
+
### Fixed
|
|
65
|
+
|
|
66
|
+
- Together models (e.g. Kimi K2.7-Code) now replay prior reasoning through the
|
|
67
|
+
native `reasoning` field instead of visible `*Thinking:*` text, avoiding a full
|
|
68
|
+
re-derivation of the chain-of-thought on every turn. Reasoning models without a
|
|
69
|
+
declared thinking-effort spec now resolve their provider's replay field.
|
|
70
|
+
|
|
9
71
|
## 0.28.4 - 2026-08-12
|
|
10
72
|
|
|
11
73
|
### Fixed
|
|
@@ -22,7 +22,7 @@ from .agent.errors import AgentError, MaxAgentIterationsExceeded
|
|
|
22
22
|
from .events import AgentEventEmitter
|
|
23
23
|
|
|
24
24
|
# Configuration
|
|
25
|
-
from .config import AgentConfig, ModelConfig, ModelProvider, RateLimitConfig
|
|
25
|
+
from .config import AgentConfig, CustomEndpointConfig, ModelConfig, ModelProvider, RateLimitConfig
|
|
26
26
|
|
|
27
27
|
# Events and connection management
|
|
28
28
|
from .events import AgentConnectionManager
|
|
@@ -108,6 +108,7 @@ __all__ = [
|
|
|
108
108
|
"AgentEventEmitter",
|
|
109
109
|
# Configuration
|
|
110
110
|
"AgentConfig",
|
|
111
|
+
"CustomEndpointConfig",
|
|
111
112
|
"ModelConfig",
|
|
112
113
|
"ModelProvider",
|
|
113
114
|
"RateLimitConfig",
|
|
@@ -173,4 +174,4 @@ __all__ = [
|
|
|
173
174
|
"parse_git_status_output",
|
|
174
175
|
]
|
|
175
176
|
|
|
176
|
-
__version__ = "0.
|
|
177
|
+
__version__ = "0.30.0"
|
|
@@ -521,6 +521,8 @@ class BaseAgent(LogMixin):
|
|
|
521
521
|
# gate reads client_web_tools_enabled, the stream call reads
|
|
522
522
|
# hosted_web_search_active.
|
|
523
523
|
self.supports_hosted_web_search = bool(model_specs.get("supports_hosted_web_search", False))
|
|
524
|
+
# Spec-declared server-side tools; _apply_web_search_state derives the live list.
|
|
525
|
+
self._model_server_tools: List[str] = [str(tool) for tool in model_specs.get("server_tools") or []]
|
|
524
526
|
self.web_search_mode = getattr(self.config, "web_search_mode", "auto") or "auto"
|
|
525
527
|
self._apply_web_search_state()
|
|
526
528
|
|
|
@@ -731,22 +733,27 @@ class BaseAgent(LogMixin):
|
|
|
731
733
|
initialize()
|
|
732
734
|
|
|
733
735
|
def _apply_web_search_state(self) -> None:
|
|
734
|
-
"""Resolve web_search_mode + model capability into the
|
|
736
|
+
"""Resolve web_search_mode + model capability into the live gates.
|
|
735
737
|
|
|
736
738
|
``hosted_web_search_active`` — request the provider's server-side
|
|
737
739
|
web_search tool on main-loop stream calls. ``client_web_tools_enabled``
|
|
738
740
|
— register the client-side web_search/web_fetch tools (read by the
|
|
739
|
-
ToolCollection gate).
|
|
740
|
-
|
|
741
|
+
ToolCollection gate). ``server_tools`` — the spec-declared server-side
|
|
742
|
+
tools (e.g. the Perplexity Agent API's). One setting gates all of it:
|
|
743
|
+
auto/hosted request the server-side tooling, client defers to the
|
|
744
|
+
client-side web tools, off disables web tooling entirely. Active
|
|
745
|
+
server-side web tooling always excludes the client tools: two search
|
|
746
|
+
paths confuse the model and waste schema tokens.
|
|
741
747
|
"""
|
|
742
748
|
mode = (self.web_search_mode or "auto").lower()
|
|
743
749
|
supported = self.supports_hosted_web_search
|
|
750
|
+
server_web_tooling = supported or "web_search" in self._model_server_tools
|
|
744
751
|
if mode == "off":
|
|
745
752
|
hosted, client = False, False
|
|
746
753
|
elif mode == "client":
|
|
747
754
|
hosted, client = False, True
|
|
748
755
|
elif mode == "hosted":
|
|
749
|
-
if not
|
|
756
|
+
if not server_web_tooling:
|
|
750
757
|
provider = self.primary_model_config.provider
|
|
751
758
|
logger.warning(
|
|
752
759
|
"web_search_mode=hosted, but %s/%s has no hosted web search; falling back to the client tools",
|
|
@@ -758,6 +765,9 @@ class BaseAgent(LogMixin):
|
|
|
758
765
|
hosted, client = supported, not supported
|
|
759
766
|
self.hosted_web_search_active = hosted
|
|
760
767
|
self.client_web_tools_enabled = client
|
|
768
|
+
self.server_tools = list(self._model_server_tools) if mode in ("auto", "hosted") else []
|
|
769
|
+
if "web_search" in self.server_tools:
|
|
770
|
+
self.client_web_tools_enabled = False
|
|
761
771
|
|
|
762
772
|
def apply_web_search_mode(self, mode: str) -> None:
|
|
763
773
|
"""Change the web tool mode mid-session (TUI ``/web-search``).
|
|
@@ -770,31 +780,36 @@ class BaseAgent(LogMixin):
|
|
|
770
780
|
self._apply_web_search_state()
|
|
771
781
|
|
|
772
782
|
async def _emit_hosted_tool_call(self, delta: Dict[str, Any]) -> None:
|
|
773
|
-
"""Render a completed hosted
|
|
783
|
+
"""Render a completed hosted/server-side tool call as a tool_call/tool_result pair.
|
|
774
784
|
|
|
775
785
|
The call executed on the provider's servers; there is no local tool
|
|
776
|
-
invocation
|
|
777
|
-
injected into the model's context
|
|
778
|
-
|
|
786
|
+
invocation. For OpenAI/DeepSeek web_search the searched content never
|
|
787
|
+
reaches the client (it is injected into the model's context
|
|
788
|
+
server-side); Perplexity Agent API result items (search_results /
|
|
789
|
+
fetch_url_results) carry their results client-side via the delta's
|
|
790
|
+
item_type/payload. The shared item id correlates the pair in every
|
|
791
|
+
transcript consumer.
|
|
779
792
|
"""
|
|
780
793
|
block = WebSearchCallBlock(
|
|
781
794
|
item_id=delta.get("id") or None,
|
|
782
795
|
status=delta.get("status"),
|
|
783
796
|
action=delta.get("action") or {},
|
|
797
|
+
item_type=str(delta.get("item_type") or "web_search_call"),
|
|
798
|
+
payload=delta.get("payload"),
|
|
784
799
|
)
|
|
785
800
|
tool_call_id = block.item_id or str(uuid.uuid4())
|
|
786
801
|
await self.send_chat_message(
|
|
787
802
|
message_type="tool_call",
|
|
788
|
-
content=f"Calling {
|
|
803
|
+
content=f"Calling {block.tool_label}: {block.label()}",
|
|
789
804
|
is_streaming=False,
|
|
790
|
-
tool_description=
|
|
805
|
+
tool_description=block.tool_label,
|
|
791
806
|
tool_call_id=tool_call_id,
|
|
792
807
|
)
|
|
793
808
|
await self.send_chat_message(
|
|
794
809
|
message_type="tool_result",
|
|
795
810
|
content=block.result_summary(),
|
|
796
811
|
is_streaming=False,
|
|
797
|
-
tool_description=
|
|
812
|
+
tool_description=block.tool_label,
|
|
798
813
|
tool_call_id=tool_call_id,
|
|
799
814
|
)
|
|
800
815
|
|
|
@@ -1130,7 +1145,15 @@ class BaseAgent(LogMixin):
|
|
|
1130
1145
|
if new_calls:
|
|
1131
1146
|
self._context_residual_tokens += self.HOSTED_SEARCH_PROVISIONAL_TOKENS * new_calls
|
|
1132
1147
|
return
|
|
1133
|
-
billed = (
|
|
1148
|
+
billed = (
|
|
1149
|
+
assistant_message.usage.input_tokens
|
|
1150
|
+
if assistant_message.usage and assistant_message.usage.reported
|
|
1151
|
+
else (
|
|
1152
|
+
(assistant_message.usage_metadata or {}).get("prompt_tokens")
|
|
1153
|
+
or (assistant_message.usage_metadata or {}).get("input_tokens")
|
|
1154
|
+
or (assistant_message.usage_metadata or {}).get("prompt_token_count")
|
|
1155
|
+
)
|
|
1156
|
+
)
|
|
1134
1157
|
counted = self._last_raw_context_count
|
|
1135
1158
|
if not isinstance(billed, int) or counted is None:
|
|
1136
1159
|
return
|
|
@@ -1741,6 +1764,7 @@ class BaseAgent(LogMixin):
|
|
|
1741
1764
|
|
|
1742
1765
|
from kolega_code.llm.client import LLMClient
|
|
1743
1766
|
|
|
1767
|
+
endpoint = self.config.custom_endpoint_for(model_config)
|
|
1744
1768
|
client = LLMClient(
|
|
1745
1769
|
provider=model_config.provider.value,
|
|
1746
1770
|
api_key=self.config.get_api_key(model_config.provider) or "",
|
|
@@ -1751,6 +1775,8 @@ class BaseAgent(LogMixin):
|
|
|
1751
1775
|
token_manager=self.config.get_chatgpt_token_manager(),
|
|
1752
1776
|
usage_ledger=self.usage_ledger,
|
|
1753
1777
|
trace_sink=self.llm_trace_sink,
|
|
1778
|
+
base_url=endpoint.base_url if endpoint else None,
|
|
1779
|
+
api_style=endpoint.api_style if endpoint else None,
|
|
1754
1780
|
)
|
|
1755
1781
|
with llm_call_origin(helper_origin("hook_prompt")):
|
|
1756
1782
|
response = await client.generate(
|
|
@@ -2485,6 +2511,7 @@ class BaseAgent(LogMixin):
|
|
|
2485
2511
|
tools=self.tool_collection.get_tool_list(),
|
|
2486
2512
|
thinking=self.primary_model_config.thinking_effort,
|
|
2487
2513
|
hosted_web_search=self.hosted_web_search_active,
|
|
2514
|
+
server_tools=self.server_tools or None,
|
|
2488
2515
|
# The strict per-run budget rechecks this request inside
|
|
2489
2516
|
# the client; hand it the count already taken for the
|
|
2490
2517
|
# gauge (same history) so it is not counted twice.
|
|
@@ -113,6 +113,7 @@ class AgentContext:
|
|
|
113
113
|
itself is still passed per call.
|
|
114
114
|
"""
|
|
115
115
|
model_config = self.config.model_config_for_agent(agent_name)
|
|
116
|
+
endpoint = self.config.custom_endpoint_for(model_config)
|
|
116
117
|
|
|
117
118
|
if self.telemetry.langfuse_client:
|
|
118
119
|
return InstrumentedLLMClient(
|
|
@@ -135,6 +136,8 @@ class AgentContext:
|
|
|
135
136
|
trace_sink=self.telemetry.llm_trace_sink,
|
|
136
137
|
context_window_tokens=self.config.context_window_tokens,
|
|
137
138
|
max_output_tokens=self.config.max_output_tokens,
|
|
139
|
+
base_url=endpoint.base_url if endpoint else None,
|
|
140
|
+
api_style=endpoint.api_style if endpoint else None,
|
|
138
141
|
)
|
|
139
142
|
|
|
140
143
|
return LLMClient(
|
|
@@ -149,4 +152,6 @@ class AgentContext:
|
|
|
149
152
|
trace_sink=self.telemetry.llm_trace_sink,
|
|
150
153
|
context_window_tokens=self.config.context_window_tokens,
|
|
151
154
|
max_output_tokens=self.config.max_output_tokens,
|
|
155
|
+
base_url=endpoint.base_url if endpoint else None,
|
|
156
|
+
api_style=endpoint.api_style if endpoint else None,
|
|
152
157
|
)
|
|
@@ -399,7 +399,7 @@ class AgentTool(BaseTool):
|
|
|
399
399
|
agent.session_recorder = scoped_recorder
|
|
400
400
|
|
|
401
401
|
# Track messages and their sequence
|
|
402
|
-
last_saved_index = -1
|
|
402
|
+
last_saved_index = -1
|
|
403
403
|
streamed_messages = {} # Track messages by UUID for assembly
|
|
404
404
|
|
|
405
405
|
# Process the task and stream messages
|
|
@@ -97,6 +97,7 @@ class TerminalTool(BaseTool):
|
|
|
97
97
|
provider = self.config.fast_config.provider
|
|
98
98
|
api_key = self.config.get_api_key(provider)
|
|
99
99
|
rate_limits = self.config.fast_config.rate_limits
|
|
100
|
+
endpoint = self.config.custom_endpoint_for(self.config.fast_config)
|
|
100
101
|
|
|
101
102
|
client = LLMClient(
|
|
102
103
|
provider=provider.value,
|
|
@@ -108,6 +109,8 @@ class TerminalTool(BaseTool):
|
|
|
108
109
|
token_manager=self.config.get_chatgpt_token_manager(),
|
|
109
110
|
usage_ledger=getattr(self.caller, "usage_ledger", None),
|
|
110
111
|
trace_sink=getattr(self.caller, "llm_trace_sink", None),
|
|
112
|
+
base_url=endpoint.base_url if endpoint else None,
|
|
113
|
+
api_style=endpoint.api_style if endpoint else None,
|
|
111
114
|
)
|
|
112
115
|
|
|
113
116
|
try:
|
|
@@ -146,6 +146,7 @@ class WebFetchTool(StreamingTool):
|
|
|
146
146
|
def _build_client(self) -> LLMClient:
|
|
147
147
|
provider = self.config.fast_config.provider
|
|
148
148
|
rate_limits = self.config.fast_config.rate_limits
|
|
149
|
+
endpoint = self.config.custom_endpoint_for(self.config.fast_config)
|
|
149
150
|
client_kwargs = {
|
|
150
151
|
"provider": provider.value,
|
|
151
152
|
"api_key": self.config.get_api_key(provider),
|
|
@@ -156,6 +157,8 @@ class WebFetchTool(StreamingTool):
|
|
|
156
157
|
"token_manager": self.config.get_chatgpt_token_manager(),
|
|
157
158
|
"usage_ledger": getattr(self.caller, "usage_ledger", None),
|
|
158
159
|
"trace_sink": getattr(self.caller, "llm_trace_sink", None),
|
|
160
|
+
"base_url": endpoint.base_url if endpoint else None,
|
|
161
|
+
"api_style": endpoint.api_style if endpoint else None,
|
|
159
162
|
}
|
|
160
163
|
caller_llm = getattr(self.caller, "llm", None)
|
|
161
164
|
if isinstance(caller_llm, InstrumentedLLMClient):
|
|
@@ -302,16 +302,13 @@ class ToolCollection(LogMixin):
|
|
|
302
302
|
self.workspace_id = workspace_id
|
|
303
303
|
self.thread_id = thread_id
|
|
304
304
|
|
|
305
|
-
# Convert string path to Path object if needed
|
|
306
305
|
self.project_path = Path(project_path) if isinstance(project_path, str) else project_path
|
|
307
306
|
|
|
308
|
-
# Create filesystem instance if not provided
|
|
309
307
|
if filesystem is None:
|
|
310
308
|
self.filesystem = LocalFileSystem(root_path=self.project_path)
|
|
311
309
|
else:
|
|
312
310
|
self.filesystem = filesystem
|
|
313
311
|
|
|
314
|
-
# Create terminal manager instance if not provided
|
|
315
312
|
if terminal_manager is None:
|
|
316
313
|
self.terminal_manager = LocalTerminalManager(
|
|
317
314
|
workspace_id, thread_id, connection_manager, default_workdir=self.project_path
|
|
@@ -319,7 +316,6 @@ class ToolCollection(LogMixin):
|
|
|
319
316
|
else:
|
|
320
317
|
self.terminal_manager = terminal_manager
|
|
321
318
|
|
|
322
|
-
# Create browser manager instance if not provided
|
|
323
319
|
if browser_manager is None:
|
|
324
320
|
self.browser_manager = PlaywrightBrowserManager()
|
|
325
321
|
else:
|
|
@@ -388,7 +384,6 @@ class ToolCollection(LogMixin):
|
|
|
388
384
|
}
|
|
389
385
|
self.tool_exclusions.extend(tool_config.tool_exclusions)
|
|
390
386
|
|
|
391
|
-
# Initialize tool backends
|
|
392
387
|
self._initialize_tools()
|
|
393
388
|
self._register_tool_extensions()
|
|
394
389
|
|
|
@@ -619,7 +614,6 @@ class ToolCollection(LogMixin):
|
|
|
619
614
|
browser_manager=self.browser_manager,
|
|
620
615
|
)
|
|
621
616
|
|
|
622
|
-
# Build tool
|
|
623
617
|
self.build_tool = BuildTool(
|
|
624
618
|
self.project_path,
|
|
625
619
|
self.workspace_id,
|