kolega-code 0.41.4__tar.gz → 0.43.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.41.4 → kolega_code-0.43.0}/CHANGELOG.md +38 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/PKG-INFO +25 -1
- {kolega_code-0.41.4 → kolega_code-0.43.0}/README.md +24 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/__init__.py +1 -1
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/__init__.py +1 -1
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/config.py +2 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/provider_registry.py +21 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/config.py +3 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/client.py +7 -1
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/instrumented_client.py +2 -2
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/models.py +53 -5
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/providers/deepseek_responses.py +5 -4
- kolega_code-0.43.0/kolega_code/llm/providers/mistral.py +821 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/providers/responses_common.py +9 -8
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/specs/catalog/__init__.py +2 -0
- kolega_code-0.43.0/kolega_code/llm/specs/catalog/mistral.py +140 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/specs/catalog/ollama_cloud.py +14 -26
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/specs/catalog/openrouter.py +1450 -1105
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/specs/catalog/perplexity_agent.py +80 -10
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/specs/catalog/tinker.py +1 -1
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/specs/thinking.py +6 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/usage.py +1 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/pyproject.toml +2 -1
- {kolega_code-0.41.4 → kolega_code-0.43.0}/.gitignore +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/CONTRIBUTING.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/LICENSE +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/MIGRATION.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/RELEASING.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/LICENSE +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/manifest.json +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/deep-research/SKILL.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/deep-research/references/evidence-and-reporting.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/deep-research/references/gigacode-workflow.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/deep-research/scripts/deep-research.workflow +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/deep-research/scripts/materialize_report.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/docx/LICENSE +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/docx/SKILL.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/docx/references/examples.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/docx/references/limitations.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/docx/references/operations.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/docx/references/quality.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/docx/requirements.txt +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/docx/scripts/docx_tool.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/docx/scripts/smoke_test.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/humanizer/LICENSE +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/humanizer/SKILL.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/pdf/LICENSE +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/pdf/SKILL.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/pdf/references/examples.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/pdf/references/limitations.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/pdf/references/ocr.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/pdf/references/operations.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/pdf/references/quality.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/pdf/references/redaction.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/pdf/requirements-ocr-paddle.txt +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/pdf/requirements-ocr-surya.txt +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/pdf/requirements.txt +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/pdf/scripts/pdf_tool.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/pdf/scripts/smoke_test.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/pptx/LICENSE +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/pptx/SKILL.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/pptx/references/examples.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/pptx/references/limitations.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/pptx/references/operations.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/pptx/requirements.txt +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/pptx/scripts/pptx_tool.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/pptx/scripts/smoke_test.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/review/SKILL.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/review/references/github-publishing.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/skill-authoring/SKILL.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/skill-authoring/references/review-checklist.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/xlsx/LICENSE +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/xlsx/SKILL.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/xlsx/references/examples.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/xlsx/references/limitations.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/xlsx/references/operations.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/xlsx/references/quality.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/xlsx/requirements.txt +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/xlsx/scripts/smoke_test.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/_bundled_skills/skills/xlsx/scripts/xlsx_tool.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/acp/__init__.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/acp/agent_factory.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/acp/bridge.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/acp/diffs.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/acp/permissions.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/acp/plans.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/acp/questions.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/acp/server.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/acp/session.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/acp/usage.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/baseagent.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/browseragent.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/coder.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/common.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/compression.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/context.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/conversation.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/custom_agents.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/edit_protocols.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/errors.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/eval/__init__.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/eval/bridge.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/eval/bundle-requirements.in +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/eval/bundle-requirements.txt +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/eval/env.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/eval/js_kernel.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/eval/kernel.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/eval/prelude.js +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/eval/prelude.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/eval/protocol.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/eval/py_kernel.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/eval/runner.js +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/eval/runner.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/generalagent.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/goal.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/handoff.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/investigationagent.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/model_routing.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/orchestration/__init__.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/orchestration/accounting.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/orchestration/budget.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/orchestration/context.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/orchestration/errors.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/orchestration/executor.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/orchestration/guide.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/orchestration/journal.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/orchestration/runtime.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/orchestration/types.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/planningagent.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_dump.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_overrides.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_provider.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/auxiliary/agent_loop/silent_turn_exhausted.user.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/auxiliary/agent_loop/silent_turn_nudge.user.md.j2 +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/auxiliary/agent_loop/truncated_turn_nudge.user.md.j2 +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/auxiliary/compression/summary.system.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/auxiliary/compression/summary.user.md.j2 +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/auxiliary/handoff/document.system.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/auxiliary/handoff/document.user.md.j2 +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/auxiliary/terminal/output_summary.system.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/auxiliary/terminal/safety.system.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/extensions/cli/build_questions.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/extensions/cli/current_plan_artifact.md.j2 +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/extensions/cli/mode_switch_notice.md.j2 +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/extensions/cli/planning_questions.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/extensions/cli/scratchpad.md.j2 +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/extensions/cli/shared_task_list.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/extensions/cli/shared_task_list_readonly.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/extensions/cli/worktree_control.md.j2 +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/extensions/skills/catalog.md.j2 +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/system/agents/browser.md.j2 +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/system/agents/coder_ask.md.j2 +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/system/agents/coder_base.md.j2 +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/system/agents/coder_cli.md.j2 +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/system/agents/general.md.j2 +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/system/agents/investigation.md.j2 +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/system/agents/planning.md.j2 +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/system/includes/agents_md_instructions.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/system/includes/context_updates.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/system/includes/environment_variables/workspace_env_vars.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/system/includes/frontend_guidance.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/expo.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/html_website.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/mern_stack.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/react_vite_shadcdn.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/system/includes/terminal_tools.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/apply_patch.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/ask_user_choice.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/browser_click.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/browser_close.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/browser_console_messages.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/browser_drag.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/browser_drop.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/browser_evaluate.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/browser_file_upload.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/browser_fill_form.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/browser_find.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/browser_handle_dialog.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/browser_hover.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/browser_navigate.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/browser_navigate_back.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/browser_network_request.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/browser_network_requests.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/browser_press_key.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/browser_resize.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/browser_scroll.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/browser_select_option.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/browser_snapshot.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/browser_tabs.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/browser_take_screenshot.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/browser_type.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/browser_wait_for.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/build_backend.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/build_frontend.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/claude_edit.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/claude_write.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/dispatch_agent.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/edit.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/eval.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/exec_command.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/get_host.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/get_task_list.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/get_task_list_readonly.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/hashline_edit.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/hashline_write.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/kill_command.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/list_agents.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/list_sessions.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/list_subagent_models.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/list_workflow_runs.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/lsp.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/lsp_edit.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/multi_edit.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/read.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/read_image.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/resolve.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/run_workflow.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/send_message.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/set_goal.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/skill.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/snapshot.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/switch_worktree.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/update_task_list.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/web_fetch.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/web_search.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/write.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/write_plan.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/tools/write_stdin.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/user_tasks/cli/implement_plan.md.j2 +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompt_templates/user_tasks/cli/init_agents.md.j2 +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/prompts.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/session_metadata.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/tool_backend/agent_tool.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/tool_backend/base_tool.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/tool_backend/browser_tool.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/tool_backend/build_tool.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/tool_backend/codex_patch.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/tool_backend/edit_preview.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/tool_backend/edit_tool.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/tool_backend/eval_tool.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/tool_backend/hashline_v2.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/tool_backend/lsp_tool.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/tool_backend/memory_tool.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/tool_backend/network_status.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/tool_backend/read_file_tool.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/tool_backend/read_image_tool.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/tool_backend/search_backends/__init__.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/tool_backend/search_backends/base.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/tool_backend/search_backends/duckduckgo.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/tool_backend/search_backends/errors.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/tool_backend/search_backends/firecrawl.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/tool_backend/search_backends/models.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/tool_backend/search_backends/searxng.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/tool_backend/search_backends/tavily.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/tool_backend/snapshot_tool.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/tool_backend/streaming_tool.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/tool_backend/terminal_tool.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/tool_backend/web_fetch/__init__.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/tool_backend/web_fetch/answering.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/tool_backend/web_fetch/documents.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/tool_backend/web_fetch/extractors.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/tool_backend/web_fetch/pipeline.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/tool_backend/web_fetch/retrieval.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/tool_backend/web_fetch_tool.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/tool_backend/web_search_tool.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/tool_backend/workflow_tool.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/tool_definitions.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/tools.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/utils/commands.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/agent/volatile_context.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/auth/__init__.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/auth/_jwt.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/auth/chatgpt_oauth.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/auth/constants.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/auth/tokens.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/browser_extension/__init__.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/browser_extension/framing.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/browser_extension/installer.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/browser_extension/manager.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/browser_extension/multiplex.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/browser_extension/native_host.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/browser_extension/protocol.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/browser_extension/registry.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/browser_extension/runtime.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/__init__.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/acp.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/app.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/ask_output.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/atif_export.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/browser_backend.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/clipboard_image.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/connection.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/cron.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/diagnostics.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/file_index.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/gateway.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/goal.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/loop.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/main.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/mentions.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/messages.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/model_catalog.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/model_connection.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/peer_messaging.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/plan_artifacts.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/prompt_history.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/session_event_protocol.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/session_event_store.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/session_journal.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/session_store.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/session_usage.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/settings.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/skills.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/slash_commands.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/theme.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/tui/__init__.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/tui/agent_runtime.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/tui/app_base.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/tui/boot_splash.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/tui/changes_screen.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/tui/command_handlers.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/tui/constants.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/tui/custom_model.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/tui/discovery.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/tui/loop_runtime.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/tui/memory_screen.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/tui/metadata.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/tui/onboarding_screen.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/tui/pacing.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/tui/prompt_flows.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/tui/session_diff.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/tui/settings_panel.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/tui/settings_screen.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/tui/settings_widgets.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/tui/shortcut_bar.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/tui/startup.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/tui/state.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/tui/status_dashboard.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/tui/styles.tcss +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/tui/sub_agent_screen.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/tui/task_list.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/tui/terminal_display.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/tui/tool_presentation.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/tui/transcript.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/tui/turn_status.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/tui/widgets.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/cli/updater.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/events.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/extensions.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/gateway/__init__.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/gateway/access.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/gateway/access_settings.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/gateway/adapters/__init__.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/gateway/adapters/base.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/gateway/adapters/echo.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/gateway/adapters/telegram/__init__.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/gateway/adapters/telegram/adapter.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/gateway/adapters/telegram/formatting.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/gateway/bridge.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/gateway/commands.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/gateway/config.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/gateway/control_relay.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/gateway/daemon.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/gateway/event_router.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/gateway/questions.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/gateway/redaction.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/gateway/router.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/gateway/service.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/gateway/sessions.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/gateway/stt.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/git_env.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/hooks/__init__.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/hooks/backends.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/hooks/config.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/hooks/dispatcher.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/hooks/events.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/hooks/matcher.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/hooks/outcome.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/exceptions.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/ledger.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/providers/__init__.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/providers/_token_encoding.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/providers/anthropic.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/providers/base.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/providers/chatgpt_oauth.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/providers/google.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/providers/models.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/providers/openai.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/providers/openai_responses.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/providers/perplexity_responses.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/providers/tinker.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/providers/tinker_trace.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/ratelimit.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/specs/__init__.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/specs/accessors.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/specs/catalog/anthropic.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/specs/catalog/dashscope.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/specs/catalog/deepseek.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/specs/catalog/fireworks.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/specs/catalog/google.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/specs/catalog/groq.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/specs/catalog/kimi_coding.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/specs/catalog/moonshot.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/specs/catalog/openai.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/specs/catalog/openai_chatgpt.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/specs/catalog/thinking_machines.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/specs/catalog/together.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/specs/catalog/xai.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/specs/catalog/zai.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/specs/custom_endpoints.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/specs/ollama_cloud_catalog.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/specs/openrouter_catalog.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/specs/perplexity_catalog.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/specs/tinker_catalog.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/specs/types.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/specs/validation.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/timeouts.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/llm/tool_execution_ids.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/local_state.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/mcp/__init__.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/mcp/config.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/mcp/oauth.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/mcp/service.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/mcp/state.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/mcp/tools.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/mcp/transport.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/memory/__init__.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/memory/identity.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/memory/manager.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/memory/manifest.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/memory/markdown.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/memory/models.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/memory/protocol.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/memory/registry.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/models/__init__.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/models/sandbox_terminal_state.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/permissions.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/runtime.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/sandbox/README.md +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/sandbox/__init__.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/sandbox/async_filesystem.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/sandbox/base.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/sandbox/browser.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/sandbox/event_loop.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/sandbox/filesystem.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/sandbox/local.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/sandbox/serializer.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/sandbox/terminal.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/sandbox/utils.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/scratchpad.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/security/__init__.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/security/secrets.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/services/base.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/services/browser.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/services/file_system.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/services/html.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/services/lsp/__init__.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/services/lsp/client.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/services/lsp/config.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/services/lsp/detector.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/services/lsp/diagnostics.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/services/lsp/edits.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/services/lsp/manager.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/services/lsp/registry.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/services/lsp/registry.yaml +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/services/snapshots.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/services/terminal.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/services/terminal_buffer.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/services/workspace_scan.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/session/__init__.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/session/control.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/session/inbox.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/session/inmemory.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/session/projection.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/session/recording.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/session/runtime.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/session/store.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/testing/__init__.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/testing/store_conformance.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/tool_subjects.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/tools/__init__.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/tools/ask_user.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/tools/core.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/tools/definitions.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/tools/param_aliases.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/tools/registry.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/utils/__init__.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/utils/images.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/web/__init__.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/web/assets/fold.js +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/web/assets/player.css +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/web/assets/player.html +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/web/assets/player.js +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/web/bundle.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/web/hosting.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/web/redaction.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/web/server.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/web/singlefile.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/web/theme_css.py +0 -0
- {kolega_code-0.41.4 → kolega_code-0.43.0}/kolega_code/worktrees.py +0 -0
|
@@ -6,6 +6,44 @@ This project uses GitHub Releases for detailed generated release notes. This fil
|
|
|
6
6
|
|
|
7
7
|
## Unreleased
|
|
8
8
|
|
|
9
|
+
## 0.43.0 - 2026-10-13
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- **Strict tool schemas.** Code that drives Kolega's LLM client directly can
|
|
14
|
+
mark a tool definition `strict=True`. The Responses providers then ask the
|
|
15
|
+
provider to hold the tool call to the schema exactly — every required field
|
|
16
|
+
present and nothing extra. Tools that are not marked strict behave as before.
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
- DeepSeek requests now use `https://api.deepseek.com/beta`. DeepSeek enforces
|
|
21
|
+
strict tool schemas only on that endpoint and silently ignores the flag on the
|
|
22
|
+
bare host, so models that required a field could previously return a tool call
|
|
23
|
+
without it.
|
|
24
|
+
|
|
25
|
+
### Fixed
|
|
26
|
+
|
|
27
|
+
- A tool call whose arguments contain a raw control character — an unescaped tab
|
|
28
|
+
or newline copied into a JSON string — is now kept instead of degrading to an
|
|
29
|
+
empty call. Observed live with `deepseek-flash`.
|
|
30
|
+
|
|
31
|
+
## 0.42.0 - 2026-10-07
|
|
32
|
+
|
|
33
|
+
### Added
|
|
34
|
+
|
|
35
|
+
- **Native Mistral AI support.** Use Mistral's own API with `MISTRAL_API_KEY`
|
|
36
|
+
or a key saved in Settings. The model picker defaults to Mistral Medium 3.5
|
|
37
|
+
and also includes Mistral Small 4, Mistral Large 4 **preview**, Ministral,
|
|
38
|
+
and Codestral, with streaming, tool calls, usage reporting, and vision and
|
|
39
|
+
reasoning where supported.
|
|
40
|
+
|
|
41
|
+
### Changed
|
|
42
|
+
|
|
43
|
+
- Refreshed the OpenRouter, Ollama Cloud, and Perplexity Agent model catalogs
|
|
44
|
+
with newly available models, removal of retired entries, updated model
|
|
45
|
+
limits and capabilities, and a refreshed OpenRouter featured ordering.
|
|
46
|
+
|
|
9
47
|
## 0.41.4 - 2026-10-06
|
|
10
48
|
|
|
11
49
|
### Security
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: kolega-code
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.43.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/
|
|
@@ -263,6 +263,7 @@ Supported model providers:
|
|
|
263
263
|
- OpenAI API
|
|
264
264
|
- OpenAI via ChatGPT subscription sign-in
|
|
265
265
|
- Google
|
|
266
|
+
- Mistral AI (native API)
|
|
266
267
|
- Groq
|
|
267
268
|
- Together.ai
|
|
268
269
|
- Fireworks.ai
|
|
@@ -304,6 +305,29 @@ directory unless `KOLEGA_CODE_STATE_DIR` is set. See the
|
|
|
304
305
|
[Configuration docs](https://kolega-ai.github.io/kolega-code/configuration/settings-and-api-keys/)
|
|
305
306
|
for the full story.
|
|
306
307
|
|
|
308
|
+
For Mistral's own API, save a key under **Mistral AI** in Settings or export
|
|
309
|
+
`MISTRAL_API_KEY`, then select a model explicitly:
|
|
310
|
+
|
|
311
|
+
```bash
|
|
312
|
+
export MISTRAL_API_KEY=your-mistral-api-key
|
|
313
|
+
kolega-code . --provider mistral --model mistral-medium-3-5
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
The picker defaults to Mistral Medium 3.5 and includes Mistral Small 4
|
|
317
|
+
(`mistral-small-2603`), Mistral Large 4 **preview** (`mistral-large-4`),
|
|
318
|
+
Ministral 3 (3B/8B/14B), Codestral, and eligible native aliases. Large 4 access
|
|
319
|
+
depends on the account/subscription; a catalog entry does not guarantee access.
|
|
320
|
+
Aliases, especially `latest`, can change their target and capabilities.
|
|
321
|
+
|
|
322
|
+
Medium 3.5, Small 4, Large 4, and Ministral 3 support image input; Codestral is
|
|
323
|
+
text-only. Medium/Small/Large expose `none` (default) or `high` thinking, with
|
|
324
|
+
same-provider reasoning replayed in Mistral's native format. Token counting is
|
|
325
|
+
a conservative local estimate with a safety margin, not an exact Mistral
|
|
326
|
+
tokenizer. The catalog's 32,768-token output reservation is Kolega's budgeting
|
|
327
|
+
policy, not a verified native maximum-output ceiling. Kolega Code runs the local
|
|
328
|
+
function-tool loop; Mistral-hosted server tools are not enabled. Native Mistral
|
|
329
|
+
keys and model IDs are separate from gateway credentials and routes.
|
|
330
|
+
|
|
307
331
|
## Requirements
|
|
308
332
|
|
|
309
333
|
- **Python 3.11+**
|
|
@@ -172,6 +172,7 @@ Supported model providers:
|
|
|
172
172
|
- OpenAI API
|
|
173
173
|
- OpenAI via ChatGPT subscription sign-in
|
|
174
174
|
- Google
|
|
175
|
+
- Mistral AI (native API)
|
|
175
176
|
- Groq
|
|
176
177
|
- Together.ai
|
|
177
178
|
- Fireworks.ai
|
|
@@ -213,6 +214,29 @@ directory unless `KOLEGA_CODE_STATE_DIR` is set. See the
|
|
|
213
214
|
[Configuration docs](https://kolega-ai.github.io/kolega-code/configuration/settings-and-api-keys/)
|
|
214
215
|
for the full story.
|
|
215
216
|
|
|
217
|
+
For Mistral's own API, save a key under **Mistral AI** in Settings or export
|
|
218
|
+
`MISTRAL_API_KEY`, then select a model explicitly:
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
export MISTRAL_API_KEY=your-mistral-api-key
|
|
222
|
+
kolega-code . --provider mistral --model mistral-medium-3-5
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
The picker defaults to Mistral Medium 3.5 and includes Mistral Small 4
|
|
226
|
+
(`mistral-small-2603`), Mistral Large 4 **preview** (`mistral-large-4`),
|
|
227
|
+
Ministral 3 (3B/8B/14B), Codestral, and eligible native aliases. Large 4 access
|
|
228
|
+
depends on the account/subscription; a catalog entry does not guarantee access.
|
|
229
|
+
Aliases, especially `latest`, can change their target and capabilities.
|
|
230
|
+
|
|
231
|
+
Medium 3.5, Small 4, Large 4, and Ministral 3 support image input; Codestral is
|
|
232
|
+
text-only. Medium/Small/Large expose `none` (default) or `high` thinking, with
|
|
233
|
+
same-provider reasoning replayed in Mistral's native format. Token counting is
|
|
234
|
+
a conservative local estimate with a safety margin, not an exact Mistral
|
|
235
|
+
tokenizer. The catalog's 32,768-token output reservation is Kolega's budgeting
|
|
236
|
+
policy, not a verified native maximum-output ceiling. Kolega Code runs the local
|
|
237
|
+
function-tool loop; Mistral-hosted server tools are not enabled. Native Mistral
|
|
238
|
+
keys and model IDs are separate from gateway credentials and routes.
|
|
239
|
+
|
|
216
240
|
## Requirements
|
|
217
241
|
|
|
218
242
|
- **Python 3.11+**
|
|
@@ -60,6 +60,7 @@ API_KEY_ENV = {
|
|
|
60
60
|
ModelProvider.ANTHROPIC: "ANTHROPIC_API_KEY",
|
|
61
61
|
ModelProvider.OPENAI: "OPENAI_API_KEY",
|
|
62
62
|
ModelProvider.GOOGLE: "GOOGLE_API_KEY",
|
|
63
|
+
ModelProvider.MISTRAL: "MISTRAL_API_KEY",
|
|
63
64
|
ModelProvider.GROQ: "GROQ_API_KEY",
|
|
64
65
|
ModelProvider.TOGETHER: "TOGETHER_API_KEY",
|
|
65
66
|
ModelProvider.FIREWORKS: "FIREWORKS_API_KEY",
|
|
@@ -967,6 +968,7 @@ def build_agent_config(
|
|
|
967
968
|
anthropic_api_key=_api_key_for_provider(ModelProvider.ANTHROPIC, loaded_env, settings),
|
|
968
969
|
openai_api_key=_api_key_for_provider(ModelProvider.OPENAI, loaded_env, settings),
|
|
969
970
|
google_api_key=_api_key_for_provider(ModelProvider.GOOGLE, loaded_env, settings),
|
|
971
|
+
mistral_api_key=_api_key_for_provider(ModelProvider.MISTRAL, loaded_env, settings),
|
|
970
972
|
groq_api_key=_api_key_for_provider(ModelProvider.GROQ, loaded_env, settings),
|
|
971
973
|
together_api_key=_api_key_for_provider(ModelProvider.TOGETHER, loaded_env, settings),
|
|
972
974
|
fireworks_api_key=_api_key_for_provider(ModelProvider.FIREWORKS, loaded_env, settings),
|
|
@@ -37,6 +37,7 @@ PROVIDER_LABELS: dict[ModelProvider, str] = {
|
|
|
37
37
|
ModelProvider.OPENAI: "OpenAI",
|
|
38
38
|
ModelProvider.OPENAI_CHATGPT: "OpenAI (ChatGPT subscription)",
|
|
39
39
|
ModelProvider.GOOGLE: "Google",
|
|
40
|
+
ModelProvider.MISTRAL: "Mistral AI",
|
|
40
41
|
ModelProvider.XAI: "xAI",
|
|
41
42
|
ModelProvider.GROQ: "Groq",
|
|
42
43
|
ModelProvider.FIREWORKS: "Fireworks",
|
|
@@ -110,6 +111,25 @@ MODEL_LABELS: dict[str, str] = {
|
|
|
110
111
|
"gemini-3.5-flash-lite": "Gemini 3.5 Flash-Lite",
|
|
111
112
|
"gemini-3.1-pro-preview": "Gemini 3.1 Pro",
|
|
112
113
|
"gemini-3.5-flash": "Gemini 3.5 Flash",
|
|
114
|
+
# Mistral (native API)
|
|
115
|
+
"mistral-medium-3-5": "Mistral Medium 3.5",
|
|
116
|
+
"mistral-medium-latest": "Mistral Medium (latest alias)",
|
|
117
|
+
"mistral-medium": "Mistral Medium (alias)",
|
|
118
|
+
"mistral-medium-3.5": "Mistral Medium 3.5 (alias)",
|
|
119
|
+
"mistral-medium-3": "Mistral Medium 3 (alias)",
|
|
120
|
+
"mistral-medium-2604": "Mistral Medium (2604 alias)",
|
|
121
|
+
"mistral-small-2603": "Mistral Small 4",
|
|
122
|
+
"mistral-small-latest": "Mistral Small (latest alias)",
|
|
123
|
+
"mistral-large-4": "Mistral Large 4 (Preview)",
|
|
124
|
+
"mistral-large-4-0": "Mistral Large 4 (Preview, alias)",
|
|
125
|
+
"ministral-3b-2512": "Ministral 3 3B",
|
|
126
|
+
"ministral-3b-latest": "Ministral 3 3B (latest alias)",
|
|
127
|
+
"ministral-8b-2512": "Ministral 3 8B",
|
|
128
|
+
"ministral-8b-latest": "Ministral 3 8B (latest alias)",
|
|
129
|
+
"ministral-14b-2512": "Ministral 3 14B",
|
|
130
|
+
"ministral-14b-latest": "Ministral 3 14B (latest alias)",
|
|
131
|
+
"codestral-2508": "Codestral (2508)",
|
|
132
|
+
"codestral-latest": "Codestral (latest alias)",
|
|
113
133
|
# xAI
|
|
114
134
|
"grok-4.6": "Grok 4.6",
|
|
115
135
|
"grok-4.5": "Grok 4.5",
|
|
@@ -176,6 +196,7 @@ PROVIDER_DEFAULT_MODEL: dict[ModelProvider, str] = {
|
|
|
176
196
|
ModelProvider.OPENAI: "gpt-5.6-sol",
|
|
177
197
|
ModelProvider.OPENAI_CHATGPT: "gpt-5.6-sol",
|
|
178
198
|
ModelProvider.GOOGLE: "gemini-3.8-flash",
|
|
199
|
+
ModelProvider.MISTRAL: "mistral-medium-3-5",
|
|
179
200
|
ModelProvider.XAI: "grok-4.5",
|
|
180
201
|
ModelProvider.FIREWORKS: "accounts/fireworks/models/glm-5p2",
|
|
181
202
|
ModelProvider.TOGETHER: "moonshotai/Kimi-K2.7-Code",
|
|
@@ -24,6 +24,7 @@ class ModelProvider(str, Enum):
|
|
|
24
24
|
OPENAI = "openai"
|
|
25
25
|
OPENAI_CHATGPT = "openai_chatgpt" # OpenAI via ChatGPT-subscription OAuth (Responses API)
|
|
26
26
|
GOOGLE = "google"
|
|
27
|
+
MISTRAL = "mistral"
|
|
27
28
|
GROQ = "groq"
|
|
28
29
|
TOGETHER = "together"
|
|
29
30
|
FIREWORKS = "fireworks"
|
|
@@ -205,6 +206,7 @@ class AgentConfig(BaseModel):
|
|
|
205
206
|
anthropic_api_key: Optional[str] = Field(default=None, description="API key for Anthropic")
|
|
206
207
|
openai_api_key: Optional[str] = Field(default=None, description="API key for OpenAI")
|
|
207
208
|
google_api_key: Optional[str] = Field(default=None, description="API key for Google")
|
|
209
|
+
mistral_api_key: Optional[str] = Field(default=None, description="API key for Mistral AI")
|
|
208
210
|
groq_api_key: Optional[str] = Field(default=None, description="API key for Groq")
|
|
209
211
|
together_api_key: Optional[str] = Field(default=None, description="API key for Together.ai")
|
|
210
212
|
fireworks_api_key: Optional[str] = Field(default=None, description="API key for Fireworks.ai")
|
|
@@ -416,6 +418,7 @@ class AgentConfig(BaseModel):
|
|
|
416
418
|
self.openai_chatgpt_tokens.access_token if self.openai_chatgpt_tokens else None
|
|
417
419
|
),
|
|
418
420
|
ModelProvider.GOOGLE: self.google_api_key,
|
|
421
|
+
ModelProvider.MISTRAL: self.mistral_api_key,
|
|
419
422
|
ModelProvider.GROQ: self.groq_api_key,
|
|
420
423
|
ModelProvider.TOGETHER: self.together_api_key,
|
|
421
424
|
ModelProvider.FIREWORKS: self.fireworks_api_key,
|
|
@@ -48,6 +48,7 @@ if TYPE_CHECKING:
|
|
|
48
48
|
# module imports its own SDK at module load).
|
|
49
49
|
from .providers.anthropic import AnthropicProvider
|
|
50
50
|
from .providers.google import GoogleProvider
|
|
51
|
+
from .providers.mistral import MistralProvider
|
|
51
52
|
from .providers.openai import OpenAIProvider
|
|
52
53
|
from .providers.tinker import TinkerProvider
|
|
53
54
|
|
|
@@ -158,6 +159,10 @@ class LLMClient:
|
|
|
158
159
|
from .providers.google import GoogleProvider
|
|
159
160
|
|
|
160
161
|
return GoogleProvider
|
|
162
|
+
if p == "mistral":
|
|
163
|
+
from .providers.mistral import MistralProvider
|
|
164
|
+
|
|
165
|
+
return MistralProvider
|
|
161
166
|
if p == "tinker":
|
|
162
167
|
from .providers.tinker import TinkerProvider
|
|
163
168
|
|
|
@@ -172,7 +177,7 @@ class LLMClient:
|
|
|
172
177
|
tokens_per_minute: Optional[int] = None,
|
|
173
178
|
base_url: Optional[str] = None,
|
|
174
179
|
api_style: Optional[str] = None,
|
|
175
|
-
) -> "Union[AnthropicProvider, OpenAIProvider, GoogleProvider, TinkerProvider]":
|
|
180
|
+
) -> "Union[AnthropicProvider, OpenAIProvider, GoogleProvider, MistralProvider, TinkerProvider]":
|
|
176
181
|
"""Initialize the appropriate LLM provider based on the provider name.
|
|
177
182
|
|
|
178
183
|
Args:
|
|
@@ -235,6 +240,7 @@ class LLMClient:
|
|
|
235
240
|
"fireworks": "https://api.fireworks.ai/inference/v1",
|
|
236
241
|
"llama": "http://localhost:8000/v1",
|
|
237
242
|
"google": "https://generativelanguage.googleapis.com",
|
|
243
|
+
"mistral": "https://api.mistral.ai/v1/",
|
|
238
244
|
"xai": "https://api.x.ai/v1",
|
|
239
245
|
"dashscope": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
|
|
240
246
|
"moonshot": "https://api.moonshot.ai/anthropic",
|
|
@@ -303,7 +303,7 @@ class InstrumentedLLMClient(LLMClient):
|
|
|
303
303
|
"cache_read_input_tokens": usage_details.get("cache_read_input_tokens", 0),
|
|
304
304
|
"cache_creation_input_tokens": usage_details.get("cache_write_input_tokens", 0),
|
|
305
305
|
}
|
|
306
|
-
elif provider in ["openai", "openai_chatgpt", "fireworks", "deepseek"]:
|
|
306
|
+
elif provider in ["openai", "openai_chatgpt", "fireworks", "deepseek", "mistral"]:
|
|
307
307
|
normalized_usage = {
|
|
308
308
|
"input": usage_details.get("prompt_tokens", 0),
|
|
309
309
|
"output": usage_details.get("completion_tokens", 0),
|
|
@@ -576,7 +576,7 @@ class MinimalLangfuseStreamWrapper:
|
|
|
576
576
|
"cache_read_input_tokens": usage_metadata.get("cache_read_input_tokens", 0),
|
|
577
577
|
"cache_creation_input_tokens": usage_metadata.get("cache_write_input_tokens", 0),
|
|
578
578
|
}
|
|
579
|
-
elif provider in ["openai", "openai_chatgpt", "fireworks", "deepseek"]:
|
|
579
|
+
elif provider in ["openai", "openai_chatgpt", "fireworks", "deepseek", "mistral"]:
|
|
580
580
|
return {
|
|
581
581
|
"input": usage_metadata.get("prompt_tokens", 0),
|
|
582
582
|
"output": usage_metadata.get("completion_tokens", 0),
|
|
@@ -100,6 +100,7 @@ def safe_parse_tool_arguments(raw: str) -> Dict[str, Any]:
|
|
|
100
100
|
"""Parse OpenAI tool function.arguments into a dict safely.
|
|
101
101
|
|
|
102
102
|
- Tries strict json.loads first
|
|
103
|
+
- Accepts raw control characters inside strings (a literal tab or newline)
|
|
103
104
|
- Applies minimal, conservative repairs (trim, remove trailing commas, balance one missing brace)
|
|
104
105
|
- Returns a fallback dict with _raw_arguments and _parse_error on failure
|
|
105
106
|
"""
|
|
@@ -108,11 +109,16 @@ def safe_parse_tool_arguments(raw: str) -> Dict[str, Any]:
|
|
|
108
109
|
return {}
|
|
109
110
|
return json.loads(raw)
|
|
110
111
|
except Exception as first_err:
|
|
112
|
+
# Models sometimes leave a raw tab or newline inside a string.
|
|
113
|
+
try:
|
|
114
|
+
return json.loads(raw, strict=False)
|
|
115
|
+
except Exception:
|
|
116
|
+
pass
|
|
111
117
|
repaired = raw.strip()
|
|
112
118
|
repaired = _remove_trailing_commas(repaired)
|
|
113
119
|
repaired = _balance_brackets(repaired)
|
|
114
120
|
try:
|
|
115
|
-
return json.loads(repaired)
|
|
121
|
+
return json.loads(repaired, strict=False)
|
|
116
122
|
except Exception as second_err:
|
|
117
123
|
# Last resort: do not crash; surface raw args for downstream handling
|
|
118
124
|
snippet = raw if len(raw) <= 200 else raw[:200] + "..."
|
|
@@ -359,18 +365,29 @@ class ThinkingBlock(ContentBlock):
|
|
|
359
365
|
|
|
360
366
|
TYPE_NAME = "thinking"
|
|
361
367
|
|
|
362
|
-
def __init__(
|
|
368
|
+
def __init__(
|
|
369
|
+
self,
|
|
370
|
+
thinking: str,
|
|
371
|
+
cache_checkpoint: bool = False,
|
|
372
|
+
signature: Optional[str] = None,
|
|
373
|
+
provider_metadata: Optional[Dict[str, Any]] = None,
|
|
374
|
+
):
|
|
363
375
|
super().__init__(type=self.TYPE_NAME, cache_checkpoint=cache_checkpoint)
|
|
364
376
|
self.thinking = thinking
|
|
365
377
|
self.signature = signature
|
|
378
|
+
# Preserve replay-critical native structure without changing how other
|
|
379
|
+
# providers serialize this block (e.g. Mistral nested chunks/closed).
|
|
380
|
+
self.provider_metadata = provider_metadata or {}
|
|
366
381
|
|
|
367
382
|
def to_dict(self) -> Dict[str, Any]:
|
|
368
|
-
result = {
|
|
383
|
+
result: Dict[str, Any] = {
|
|
369
384
|
"type": self.type,
|
|
370
385
|
"thinking": self.thinking,
|
|
371
386
|
}
|
|
372
|
-
if self.signature:
|
|
387
|
+
if self.signature or "signature" in self.provider_metadata:
|
|
373
388
|
result["signature"] = self.signature
|
|
389
|
+
if self.provider_metadata:
|
|
390
|
+
result["provider_metadata"] = self.provider_metadata
|
|
374
391
|
return result
|
|
375
392
|
|
|
376
393
|
@classmethod
|
|
@@ -378,6 +395,7 @@ class ThinkingBlock(ContentBlock):
|
|
|
378
395
|
return cls(
|
|
379
396
|
thinking=data["thinking"],
|
|
380
397
|
signature=data.get("signature"),
|
|
398
|
+
provider_metadata=data.get("provider_metadata"),
|
|
381
399
|
)
|
|
382
400
|
|
|
383
401
|
def to_anthropic(self) -> Dict[str, Any]:
|
|
@@ -764,6 +782,7 @@ class ToolDefinition(ContentBlock):
|
|
|
764
782
|
input_kind: ToolInputKind = "json",
|
|
765
783
|
freeform_format: Optional[Dict[str, str]] = None,
|
|
766
784
|
cache_ttl: Optional[str] = None,
|
|
785
|
+
strict: bool = False,
|
|
767
786
|
):
|
|
768
787
|
super().__init__(type="tool_definition", cache_checkpoint=cache_checkpoint, cache_ttl=cache_ttl)
|
|
769
788
|
self.name = name
|
|
@@ -778,6 +797,8 @@ class ToolDefinition(ContentBlock):
|
|
|
778
797
|
# Provider-native constraint for a freeform tool. OpenAI Responses accepts
|
|
779
798
|
# {type: "grammar", syntax: "lark"|"regex", definition: "..."}.
|
|
780
799
|
self.freeform_format = freeform_format
|
|
800
|
+
# Sent by the Responses providers; the schema must meet the provider's strict rules.
|
|
801
|
+
self.strict = strict
|
|
781
802
|
|
|
782
803
|
def _object_schema(self) -> Dict[str, Any]:
|
|
783
804
|
"""The JSON-schema object describing this tool's input."""
|
|
@@ -818,6 +839,8 @@ class ToolDefinition(ContentBlock):
|
|
|
818
839
|
public["input_kind"] = self.input_kind
|
|
819
840
|
if self.freeform_format:
|
|
820
841
|
public["freeform_format"] = dict(self.freeform_format)
|
|
842
|
+
if self.strict:
|
|
843
|
+
public["strict"] = True
|
|
821
844
|
return public
|
|
822
845
|
|
|
823
846
|
@classmethod
|
|
@@ -1544,7 +1567,32 @@ class Message:
|
|
|
1544
1567
|
if thinking_blocks and (rest_blocks or has_tool_calls):
|
|
1545
1568
|
reasoning_text = "\n\n".join(b.thinking for b in thinking_blocks)
|
|
1546
1569
|
non_tool_blocks = rest_blocks
|
|
1547
|
-
|
|
1570
|
+
if provider and _provider_value(provider) == "mistral":
|
|
1571
|
+
content = []
|
|
1572
|
+
for item in non_tool_blocks:
|
|
1573
|
+
if isinstance(item, ThinkingBlock):
|
|
1574
|
+
if (
|
|
1575
|
+
self.role != "assistant"
|
|
1576
|
+
or source_provider is None
|
|
1577
|
+
or _provider_value(source_provider) != "mistral"
|
|
1578
|
+
):
|
|
1579
|
+
continue
|
|
1580
|
+
native = item.provider_metadata
|
|
1581
|
+
thinking_chunk: Dict[str, Any] = {
|
|
1582
|
+
"type": "thinking",
|
|
1583
|
+
"thinking": native.get("thinking", [{"type": "text", "text": item.thinking}]),
|
|
1584
|
+
}
|
|
1585
|
+
if "closed" in native:
|
|
1586
|
+
thinking_chunk["closed"] = native["closed"]
|
|
1587
|
+
if "signature" in native:
|
|
1588
|
+
thinking_chunk["signature"] = native["signature"]
|
|
1589
|
+
if item.signature is not None:
|
|
1590
|
+
thinking_chunk["signature"] = item.signature
|
|
1591
|
+
content.append(thinking_chunk)
|
|
1592
|
+
elif not isinstance(item, RedactedThinkingBlock):
|
|
1593
|
+
content.append(item.to_openai())
|
|
1594
|
+
else:
|
|
1595
|
+
content = [item.to_openai() for item in non_tool_blocks]
|
|
1548
1596
|
# Strict OpenAI-compatible servers (e.g. DeepSeek) prefer an empty
|
|
1549
1597
|
# string over an empty list when an assistant message carries only
|
|
1550
1598
|
# tool_calls and/or native reasoning.
|
|
@@ -9,7 +9,7 @@ other providers (Fireworks/OpenRouter/Ollama-Cloud) still use Chat Completions v
|
|
|
9
9
|
Request building, streaming, and token counting are shared with the OpenAI
|
|
10
10
|
Responses providers via
|
|
11
11
|
:class:`~kolega_code.llm.providers.responses_common.ResponsesProviderBase`; only the
|
|
12
|
-
transport differs — a plain api key against ``api.deepseek.com``.
|
|
12
|
+
transport differs — a plain api key against ``api.deepseek.com/beta``.
|
|
13
13
|
|
|
14
14
|
Reasoning continuity: DeepSeek returns no ``reasoning.encrypted_content`` (the
|
|
15
15
|
``include`` param the shared builder sends is silently ignored) but exposes the raw
|
|
@@ -31,8 +31,9 @@ back to the API" (findings/flash-output-token-efficiency-levers.md), while a
|
|
|
31
31
|
minimal single-round history with a foreign call_id — fabricated or a genuine
|
|
32
32
|
flash id from another conversation — is simply tolerated (probed 2026-08-04).
|
|
33
33
|
|
|
34
|
-
The base URL is
|
|
35
|
-
|
|
34
|
+
The base URL is DeepSeek's beta endpoint, ``https://api.deepseek.com/beta`` (no
|
|
35
|
+
``/v1``): strict tool schemas are enforced only there, and the bare host silently
|
|
36
|
+
ignores ``strict: true`` (probed live 2026-10-12).
|
|
36
37
|
"""
|
|
37
38
|
|
|
38
39
|
from __future__ import annotations
|
|
@@ -48,7 +49,7 @@ from .base import BaseLLMProvider
|
|
|
48
49
|
from .models import GenerationParams
|
|
49
50
|
from .responses_common import ResponsesProviderBase
|
|
50
51
|
|
|
51
|
-
DEFAULT_BASE_URL = "https://api.deepseek.com"
|
|
52
|
+
DEFAULT_BASE_URL = "https://api.deepseek.com/beta"
|
|
52
53
|
DEFAULT_MODEL = "deepseek-flash"
|
|
53
54
|
|
|
54
55
|
|