kolega-code 0.36.0__tar.gz → 0.37.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.36.0 → kolega_code-0.37.0}/CHANGELOG.md +23 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/PKG-INFO +3 -1
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/__init__.py +1 -1
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/__init__.py +1 -1
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/gateway.py +13 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/provider_registry.py +1 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/settings.py +81 -4
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/gateway/service.py +36 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/specs/accessors.py +6 -2
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/specs/catalog/deepseek.py +21 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/pyproject.toml +7 -1
- {kolega_code-0.36.0 → kolega_code-0.37.0}/.gitignore +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/CONTRIBUTING.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/LICENSE +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/MIGRATION.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/README.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/RELEASING.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/LICENSE +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/manifest.json +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/deep-research/SKILL.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/deep-research/references/evidence-and-reporting.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/deep-research/references/gigacode-workflow.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/deep-research/scripts/deep-research.workflow +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/deep-research/scripts/materialize_report.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/docx/LICENSE +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/docx/SKILL.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/docx/references/examples.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/docx/references/limitations.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/docx/references/operations.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/docx/references/quality.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/docx/requirements.txt +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/docx/scripts/docx_tool.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/docx/scripts/smoke_test.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/humanizer/LICENSE +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/humanizer/SKILL.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/pdf/LICENSE +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/pdf/SKILL.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/pdf/references/examples.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/pdf/references/limitations.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/pdf/references/ocr.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/pdf/references/operations.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/pdf/references/quality.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/pdf/references/redaction.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/pdf/requirements-ocr-paddle.txt +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/pdf/requirements-ocr-surya.txt +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/pdf/requirements.txt +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/pdf/scripts/pdf_tool.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/pdf/scripts/smoke_test.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/pptx/LICENSE +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/pptx/SKILL.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/pptx/references/examples.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/pptx/references/limitations.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/pptx/references/operations.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/pptx/requirements.txt +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/pptx/scripts/pptx_tool.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/pptx/scripts/smoke_test.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/review/SKILL.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/review/references/github-publishing.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/skill-authoring/SKILL.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/skill-authoring/references/review-checklist.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/xlsx/LICENSE +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/xlsx/SKILL.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/xlsx/references/examples.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/xlsx/references/limitations.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/xlsx/references/operations.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/xlsx/references/quality.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/xlsx/requirements.txt +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/xlsx/scripts/smoke_test.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/xlsx/scripts/xlsx_tool.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/acp/__init__.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/acp/agent_factory.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/acp/bridge.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/acp/diffs.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/acp/permissions.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/acp/plans.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/acp/questions.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/acp/server.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/acp/session.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/acp/usage.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/baseagent.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/browseragent.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/coder.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/common.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/compression.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/context.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/conversation.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/custom_agents.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/edit_protocols.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/errors.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/eval/__init__.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/eval/bridge.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/eval/bundle-requirements.in +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/eval/bundle-requirements.txt +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/eval/env.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/eval/js_kernel.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/eval/kernel.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/eval/prelude.js +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/eval/prelude.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/eval/protocol.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/eval/py_kernel.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/eval/runner.js +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/eval/runner.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/generalagent.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/goal.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/handoff.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/investigationagent.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/model_routing.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/orchestration/__init__.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/orchestration/accounting.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/orchestration/budget.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/orchestration/context.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/orchestration/errors.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/orchestration/executor.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/orchestration/guide.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/orchestration/journal.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/orchestration/runtime.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/orchestration/types.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/planningagent.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_dump.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_overrides.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_provider.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/auxiliary/agent_loop/silent_turn_exhausted.user.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/auxiliary/agent_loop/silent_turn_nudge.user.md.j2 +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/auxiliary/agent_loop/truncated_turn_nudge.user.md.j2 +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/auxiliary/compression/summary.system.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/auxiliary/compression/summary.user.md.j2 +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/auxiliary/handoff/document.system.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/auxiliary/handoff/document.user.md.j2 +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/auxiliary/terminal/output_summary.system.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/auxiliary/terminal/safety.system.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/extensions/cli/build_questions.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/extensions/cli/current_plan_artifact.md.j2 +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/extensions/cli/mode_switch_notice.md.j2 +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/extensions/cli/planning_questions.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/extensions/cli/scratchpad.md.j2 +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/extensions/cli/shared_task_list.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/extensions/cli/shared_task_list_readonly.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/extensions/cli/worktree_control.md.j2 +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/extensions/skills/catalog.md.j2 +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/system/agents/browser.md.j2 +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/system/agents/coder_ask.md.j2 +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/system/agents/coder_base.md.j2 +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/system/agents/coder_cli.md.j2 +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/system/agents/general.md.j2 +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/system/agents/investigation.md.j2 +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/system/agents/planning.md.j2 +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/system/includes/agents_md_instructions.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/system/includes/context_updates.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/system/includes/environment_variables/workspace_env_vars.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/system/includes/frontend_guidance.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/expo.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/html_website.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/mern_stack.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/system/includes/starter_templates/react_vite_shadcdn.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/system/includes/terminal_tools.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/apply_patch.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/ask_user_choice.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/browser_click.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/browser_close.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/browser_console_messages.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/browser_drag.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/browser_drop.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/browser_evaluate.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/browser_file_upload.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/browser_fill_form.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/browser_find.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/browser_handle_dialog.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/browser_hover.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/browser_navigate.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/browser_navigate_back.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/browser_network_request.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/browser_network_requests.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/browser_press_key.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/browser_resize.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/browser_scroll.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/browser_select_option.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/browser_snapshot.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/browser_tabs.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/browser_take_screenshot.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/browser_type.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/browser_wait_for.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/build_backend.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/build_frontend.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/claude_edit.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/claude_write.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/dispatch_agent.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/edit.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/eval.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/exec_command.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/get_host.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/get_task_list.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/get_task_list_readonly.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/hashline_edit.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/hashline_write.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/kill_command.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/list_agents.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/list_sessions.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/list_subagent_models.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/list_workflow_runs.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/lsp.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/lsp_edit.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/multi_edit.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/read.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/read_image.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/resolve.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/run_workflow.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/send_message.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/set_goal.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/skill.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/snapshot.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/switch_worktree.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/update_task_list.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/web_fetch.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/web_search.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/write.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/write_plan.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/tools/write_stdin.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/user_tasks/cli/implement_plan.md.j2 +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompt_templates/user_tasks/cli/init_agents.md.j2 +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/prompts.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/session_metadata.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/tool_backend/agent_tool.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/tool_backend/base_tool.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/tool_backend/browser_tool.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/tool_backend/build_tool.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/tool_backend/codex_patch.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/tool_backend/edit_preview.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/tool_backend/edit_tool.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/tool_backend/eval_tool.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/tool_backend/hashline_v2.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/tool_backend/lsp_tool.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/tool_backend/memory_tool.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/tool_backend/network_status.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/tool_backend/read_file_tool.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/tool_backend/read_image_tool.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/tool_backend/search_backends/__init__.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/tool_backend/search_backends/base.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/tool_backend/search_backends/duckduckgo.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/tool_backend/search_backends/errors.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/tool_backend/search_backends/firecrawl.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/tool_backend/search_backends/models.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/tool_backend/search_backends/searxng.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/tool_backend/search_backends/tavily.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/tool_backend/snapshot_tool.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/tool_backend/streaming_tool.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/tool_backend/terminal_tool.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/tool_backend/web_fetch/__init__.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/tool_backend/web_fetch/answering.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/tool_backend/web_fetch/documents.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/tool_backend/web_fetch/extractors.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/tool_backend/web_fetch/pipeline.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/tool_backend/web_fetch/retrieval.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/tool_backend/web_fetch_tool.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/tool_backend/web_search_tool.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/tool_backend/workflow_tool.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/tool_definitions.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/tools.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/utils/commands.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/agent/volatile_context.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/auth/__init__.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/auth/_jwt.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/auth/chatgpt_oauth.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/auth/constants.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/auth/tokens.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/browser_extension/__init__.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/browser_extension/framing.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/browser_extension/installer.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/browser_extension/manager.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/browser_extension/multiplex.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/browser_extension/native_host.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/browser_extension/protocol.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/browser_extension/registry.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/browser_extension/runtime.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/__init__.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/acp.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/app.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/ask_output.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/atif_export.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/browser_backend.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/clipboard_image.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/config.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/connection.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/cron.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/diagnostics.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/file_index.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/goal.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/loop.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/main.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/mentions.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/messages.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/model_catalog.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/model_connection.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/peer_messaging.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/plan_artifacts.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/prompt_history.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/session_event_protocol.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/session_event_store.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/session_journal.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/session_store.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/session_usage.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/skills.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/slash_commands.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/theme.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/tui/__init__.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/tui/agent_runtime.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/tui/app_base.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/tui/changes_screen.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/tui/command_handlers.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/tui/constants.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/tui/custom_model.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/tui/loop_runtime.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/tui/memory_screen.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/tui/onboarding_screen.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/tui/pacing.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/tui/prompt_flows.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/tui/session_diff.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/tui/settings_panel.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/tui/settings_screen.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/tui/state.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/tui/status_dashboard.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/tui/styles.tcss +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/tui/sub_agent_screen.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/tui/terminal_display.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/tui/transcript.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/tui/widgets.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/cli/updater.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/config.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/events.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/extensions.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/gateway/__init__.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/gateway/access.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/gateway/adapters/__init__.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/gateway/adapters/base.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/gateway/adapters/echo.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/gateway/adapters/telegram/__init__.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/gateway/adapters/telegram/adapter.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/gateway/adapters/telegram/formatting.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/gateway/bridge.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/gateway/commands.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/gateway/config.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/gateway/control_relay.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/gateway/daemon.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/gateway/event_router.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/gateway/questions.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/gateway/redaction.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/gateway/router.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/gateway/sessions.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/gateway/stt.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/git_env.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/hooks/__init__.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/hooks/backends.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/hooks/config.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/hooks/dispatcher.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/hooks/events.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/hooks/matcher.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/hooks/outcome.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/client.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/exceptions.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/instrumented_client.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/ledger.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/models.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/providers/__init__.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/providers/_token_encoding.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/providers/anthropic.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/providers/base.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/providers/chatgpt_oauth.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/providers/deepseek_responses.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/providers/google.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/providers/models.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/providers/openai.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/providers/openai_responses.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/providers/perplexity_responses.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/providers/responses_common.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/providers/tinker.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/providers/tinker_trace.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/ratelimit.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/specs/__init__.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/specs/catalog/__init__.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/specs/catalog/anthropic.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/specs/catalog/dashscope.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/specs/catalog/fireworks.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/specs/catalog/google.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/specs/catalog/groq.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/specs/catalog/kimi_coding.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/specs/catalog/moonshot.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/specs/catalog/ollama_cloud.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/specs/catalog/openai.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/specs/catalog/openai_chatgpt.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/specs/catalog/openrouter.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/specs/catalog/perplexity_agent.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/specs/catalog/thinking_machines.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/specs/catalog/tinker.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/specs/catalog/together.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/specs/catalog/xai.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/specs/catalog/zai.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/specs/custom_endpoints.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/specs/ollama_cloud_catalog.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/specs/openrouter_catalog.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/specs/perplexity_catalog.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/specs/thinking.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/specs/tinker_catalog.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/specs/types.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/specs/validation.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/timeouts.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/tool_execution_ids.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/llm/usage.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/local_state.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/mcp/__init__.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/mcp/config.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/mcp/oauth.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/mcp/service.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/mcp/state.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/mcp/tools.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/mcp/transport.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/memory/__init__.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/memory/identity.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/memory/manager.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/memory/manifest.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/memory/markdown.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/memory/models.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/memory/protocol.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/memory/registry.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/models/__init__.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/models/sandbox_terminal_state.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/permissions.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/runtime.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/sandbox/README.md +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/sandbox/__init__.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/sandbox/async_filesystem.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/sandbox/base.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/sandbox/browser.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/sandbox/event_loop.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/sandbox/filesystem.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/sandbox/local.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/sandbox/serializer.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/sandbox/terminal.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/sandbox/utils.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/scratchpad.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/security/__init__.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/security/secrets.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/services/base.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/services/browser.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/services/file_system.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/services/html.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/services/lsp/__init__.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/services/lsp/client.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/services/lsp/config.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/services/lsp/detector.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/services/lsp/diagnostics.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/services/lsp/edits.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/services/lsp/manager.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/services/lsp/registry.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/services/lsp/registry.yaml +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/services/snapshots.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/services/terminal.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/services/terminal_buffer.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/services/workspace_scan.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/session/__init__.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/session/control.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/session/inbox.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/session/inmemory.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/session/projection.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/session/recording.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/session/runtime.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/session/store.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/testing/__init__.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/testing/store_conformance.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/tools/__init__.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/tools/ask_user.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/tools/core.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/tools/definitions.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/tools/param_aliases.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/tools/registry.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/utils/__init__.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/utils/images.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/web/__init__.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/web/assets/fold.js +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/web/assets/player.css +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/web/assets/player.html +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/web/assets/player.js +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/web/bundle.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/web/hosting.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/web/redaction.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/web/server.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/web/singlefile.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/web/theme_css.py +0 -0
- {kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/worktrees.py +0 -0
|
@@ -6,6 +6,29 @@ This project uses GitHub Releases for detailed generated release notes. This fil
|
|
|
6
6
|
|
|
7
7
|
## Unreleased
|
|
8
8
|
|
|
9
|
+
## 0.37.0 - 2026-09-09
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- **DeepSeek V4.1 Flash (preview).** DeepSeek's temporary
|
|
14
|
+
`deepseek-v4.1-flash-expires-on-0910` model is available under **DeepSeek V4.1
|
|
15
|
+
Flash (Preview, expires Sep 10)** in the model picker, with vision, hosted web
|
|
16
|
+
search, and `none`/`low`/`high`/`max` reasoning effort (default `high`). It is
|
|
17
|
+
not the default and is not aliased to a stable model; the ID expires on
|
|
18
|
+
September 10, 2026, after which an available stable model must be selected.
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
|
|
22
|
+
- Pin PDFium and the Intel Python 3.11/3.12 ONNX Runtime dependency to restore
|
|
23
|
+
compatible wheel selection on macOS Monterey for both the installer and direct
|
|
24
|
+
package installs. Intel Monterey requires Python 3.11 or 3.12.
|
|
25
|
+
- Settings saves are merged with concurrent writers instead of replacing the whole
|
|
26
|
+
file, so a long-running instance can no longer drop a gateway token or API key
|
|
27
|
+
another process saved after it started.
|
|
28
|
+
- `kolega-code gateway status` now reports an installed background service that
|
|
29
|
+
is failing to start (service state, start count, last exit code, log path)
|
|
30
|
+
instead of only printing "not running".
|
|
31
|
+
|
|
9
32
|
## 0.36.0 - 2026-09-07
|
|
10
33
|
|
|
11
34
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: kolega-code
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.37.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/
|
|
@@ -47,6 +47,7 @@ Requires-Dist: markdownify==1.2.3
|
|
|
47
47
|
Requires-Dist: markitdown[docx,pdf,pptx,xls,xlsx]==0.1.6
|
|
48
48
|
Requires-Dist: mcp==1.28.1
|
|
49
49
|
Requires-Dist: nest-asyncio==1.6.0
|
|
50
|
+
Requires-Dist: onnxruntime==1.19.2; sys_platform == 'darwin' and platform_machine == 'x86_64' and python_version < '3.13'
|
|
50
51
|
Requires-Dist: onnxruntime==1.27.0; python_version >= '3.14' and sys_platform != 'win32'
|
|
51
52
|
Requires-Dist: openai==2.46.0
|
|
52
53
|
Requires-Dist: packaging==25.0
|
|
@@ -56,6 +57,7 @@ Requires-Dist: playwright==1.59.0
|
|
|
56
57
|
Requires-Dist: psutil==7.2.2
|
|
57
58
|
Requires-Dist: pydantic==2.13.4
|
|
58
59
|
Requires-Dist: pygments==2.20.0
|
|
60
|
+
Requires-Dist: pypdfium2==5.11.0
|
|
59
61
|
Requires-Dist: python-dotenv==1.2.2
|
|
60
62
|
Requires-Dist: pyyaml==6.0.3
|
|
61
63
|
Requires-Dist: readability-lxml==0.8.4.1
|
|
@@ -33,6 +33,7 @@ from kolega_code.gateway.service import (
|
|
|
33
33
|
install_service,
|
|
34
34
|
is_service_installed,
|
|
35
35
|
restart_service,
|
|
36
|
+
service_state_summary,
|
|
36
37
|
uninstall_service,
|
|
37
38
|
)
|
|
38
39
|
|
|
@@ -290,6 +291,7 @@ def _gateway_status(config: GatewayConfig) -> int:
|
|
|
290
291
|
if payload is not None:
|
|
291
292
|
# A heartbeat from a process that no longer exists (e.g. SIGKILLed).
|
|
292
293
|
print(f"gateway: not running (stale heartbeat from pid {payload.get('pid')})")
|
|
294
|
+
_print_service_state(config)
|
|
293
295
|
return 0
|
|
294
296
|
lock = FileLock(str(config.state_dir / LOCK_FILE_NAME))
|
|
295
297
|
try:
|
|
@@ -303,9 +305,20 @@ def _gateway_status(config: GatewayConfig) -> int:
|
|
|
303
305
|
return 0
|
|
304
306
|
lock.release()
|
|
305
307
|
print(f"gateway: not running (state: {config.state_dir})")
|
|
308
|
+
_print_service_state(config)
|
|
306
309
|
return 0
|
|
307
310
|
|
|
308
311
|
|
|
312
|
+
def _print_service_state(config: GatewayConfig) -> None:
|
|
313
|
+
summary = service_state_summary()
|
|
314
|
+
if summary is None:
|
|
315
|
+
return
|
|
316
|
+
print(f" service: {summary}")
|
|
317
|
+
log_path = config.state_dir / "gateway.log"
|
|
318
|
+
if log_path.exists():
|
|
319
|
+
print(f" log: {log_path}")
|
|
320
|
+
|
|
321
|
+
|
|
309
322
|
def _pid_alive(pid: Any) -> bool:
|
|
310
323
|
if not isinstance(pid, int) or pid <= 0:
|
|
311
324
|
return False
|
|
@@ -70,6 +70,7 @@ MODEL_LABELS: dict[str, str] = {
|
|
|
70
70
|
"kimi-for-coding": "Kimi for Coding",
|
|
71
71
|
"kimi-for-coding-highspeed": "Kimi for Coding (HighSpeed)",
|
|
72
72
|
# DeepSeek
|
|
73
|
+
"deepseek-v4.1-flash-expires-on-0910": "DeepSeek V4.1 Flash (Preview, expires Sep 10)",
|
|
73
74
|
"deepseek-v4-pro": "DeepSeek V4 Pro",
|
|
74
75
|
"deepseek-v4-flash": "DeepSeek V4 Flash",
|
|
75
76
|
"deepseek-v4-flash-vision-exp": "DeepSeek V4 Flash Vision (Exp)",
|
|
@@ -2,11 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
+
import copy
|
|
5
6
|
import json
|
|
6
7
|
from dataclasses import dataclass, field
|
|
7
8
|
from pathlib import Path
|
|
8
9
|
from typing import Any, Optional
|
|
9
10
|
|
|
11
|
+
from filelock import FileLock
|
|
12
|
+
from filelock import Timeout as FileLockTimeout
|
|
13
|
+
|
|
10
14
|
from kolega_code.local_state import write_private_text
|
|
11
15
|
from kolega_code.llm.specs.custom_endpoints import (
|
|
12
16
|
API_STYLES,
|
|
@@ -33,6 +37,41 @@ class SettingsStoreError(RuntimeError):
|
|
|
33
37
|
"""Raised when CLI settings cannot be loaded or saved."""
|
|
34
38
|
|
|
35
39
|
|
|
40
|
+
SETTINGS_LOCK_TIMEOUT_SECONDS = 10.0
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def _merge_settings_documents(
|
|
44
|
+
base: dict[str, Any],
|
|
45
|
+
current: dict[str, Any],
|
|
46
|
+
on_disk: dict[str, Any],
|
|
47
|
+
) -> dict[str, Any]:
|
|
48
|
+
"""Apply one writer's changes on top of the current document.
|
|
49
|
+
|
|
50
|
+
``base`` is the state the writer loaded, so keys it did not touch keep the
|
|
51
|
+
on-disk value and a stale writer cannot revert another process's change.
|
|
52
|
+
Nested dicts merge key by key, and keys the writer never saw survive.
|
|
53
|
+
"""
|
|
54
|
+
merged: dict[str, Any] = {}
|
|
55
|
+
for key in set(base) | set(current) | set(on_disk):
|
|
56
|
+
if key not in current:
|
|
57
|
+
if key in base:
|
|
58
|
+
continue
|
|
59
|
+
if key in on_disk:
|
|
60
|
+
merged[key] = on_disk[key]
|
|
61
|
+
continue
|
|
62
|
+
if key in base and base[key] == current[key]:
|
|
63
|
+
merged[key] = on_disk[key] if key in on_disk else current[key]
|
|
64
|
+
continue
|
|
65
|
+
if key not in base and current[key] is None and key in on_disk:
|
|
66
|
+
merged[key] = on_disk[key]
|
|
67
|
+
continue
|
|
68
|
+
if isinstance(base.get(key), dict) and isinstance(current[key], dict) and isinstance(on_disk.get(key), dict):
|
|
69
|
+
merged[key] = _merge_settings_documents(base[key], current[key], on_disk[key])
|
|
70
|
+
continue
|
|
71
|
+
merged[key] = current[key]
|
|
72
|
+
return merged
|
|
73
|
+
|
|
74
|
+
|
|
36
75
|
def _coerce_model_entries(raw: object) -> dict[str, dict]:
|
|
37
76
|
"""Normalize a stored key -> {provider, model, ...} mapping.
|
|
38
77
|
|
|
@@ -272,6 +311,9 @@ class CliSettings:
|
|
|
272
311
|
# Additive optional field — absent in older files -> empty mapping.
|
|
273
312
|
custom_endpoints: dict[str, dict] = field(default_factory=dict)
|
|
274
313
|
schema_version: int = SETTINGS_SCHEMA_VERSION
|
|
314
|
+
# The document this instance was loaded from, used as the merge base by
|
|
315
|
+
# SettingsStore.save(). Never serialized.
|
|
316
|
+
_merge_base: Optional[dict[str, Any]] = field(default=None, repr=False, compare=False)
|
|
275
317
|
|
|
276
318
|
@classmethod
|
|
277
319
|
def from_dict(cls, data: dict) -> "CliSettings":
|
|
@@ -452,12 +494,47 @@ class SettingsStore:
|
|
|
452
494
|
|
|
453
495
|
def load(self) -> CliSettings:
|
|
454
496
|
if not self.path.exists():
|
|
455
|
-
|
|
497
|
+
settings = CliSettings()
|
|
498
|
+
settings._merge_base = copy.deepcopy(settings.to_dict())
|
|
499
|
+
return settings
|
|
456
500
|
try:
|
|
457
|
-
|
|
501
|
+
data = json.loads(self.path.read_text(encoding="utf-8"))
|
|
502
|
+
settings = CliSettings.from_dict(data)
|
|
458
503
|
except json.JSONDecodeError as exc:
|
|
459
504
|
raise SettingsStoreError(f"Settings file is not valid JSON: {self.path}") from exc
|
|
505
|
+
# The merge base is what this process understood, not the raw file:
|
|
506
|
+
# a key it never saw (newer schema, hand-edit) must survive its save.
|
|
507
|
+
settings._merge_base = copy.deepcopy(settings.to_dict())
|
|
508
|
+
if isinstance(data, dict) and "schema_version" in data:
|
|
509
|
+
settings._merge_base["schema_version"] = data["schema_version"]
|
|
510
|
+
return settings
|
|
460
511
|
|
|
461
512
|
def save(self, settings: CliSettings) -> None:
|
|
462
|
-
|
|
463
|
-
|
|
513
|
+
"""Write this instance's changes, keeping concurrent writers' fields."""
|
|
514
|
+
lock = FileLock(f"{self.path}.lock")
|
|
515
|
+
try:
|
|
516
|
+
lock.acquire(timeout=SETTINGS_LOCK_TIMEOUT_SECONDS)
|
|
517
|
+
except FileLockTimeout as exc:
|
|
518
|
+
raise SettingsStoreError(f"Timed out locking the settings file: {self.path}") from exc
|
|
519
|
+
try:
|
|
520
|
+
merged = self._merged_document(settings)
|
|
521
|
+
payload = json.dumps(merged, indent=2, sort_keys=True)
|
|
522
|
+
write_private_text(self.path, payload + "\n")
|
|
523
|
+
finally:
|
|
524
|
+
lock.release()
|
|
525
|
+
settings._merge_base = copy.deepcopy(merged)
|
|
526
|
+
|
|
527
|
+
def _merged_document(self, settings: CliSettings) -> dict[str, Any]:
|
|
528
|
+
current = settings.to_dict()
|
|
529
|
+
if settings._merge_base is None:
|
|
530
|
+
return current
|
|
531
|
+
return _merge_settings_documents(settings._merge_base, current, self._read_document())
|
|
532
|
+
|
|
533
|
+
def _read_document(self) -> dict[str, Any]:
|
|
534
|
+
try:
|
|
535
|
+
raw = json.loads(self.path.read_text(encoding="utf-8"))
|
|
536
|
+
except FileNotFoundError:
|
|
537
|
+
return {}
|
|
538
|
+
except (json.JSONDecodeError, OSError) as exc:
|
|
539
|
+
raise SettingsStoreError(f"Settings file is not valid JSON: {self.path}") from exc
|
|
540
|
+
return raw if isinstance(raw, dict) else {}
|
|
@@ -12,6 +12,7 @@ from __future__ import annotations
|
|
|
12
12
|
|
|
13
13
|
import os
|
|
14
14
|
import plistlib
|
|
15
|
+
import re
|
|
15
16
|
import shlex
|
|
16
17
|
import shutil
|
|
17
18
|
import subprocess
|
|
@@ -214,6 +215,41 @@ def run_service_command(argv: list[str]) -> subprocess.CompletedProcess[str] | N
|
|
|
214
215
|
return None
|
|
215
216
|
|
|
216
217
|
|
|
218
|
+
def service_state_summary(
|
|
219
|
+
*,
|
|
220
|
+
systemd_dir: Optional[Path] = None,
|
|
221
|
+
launchd_dir: Optional[Path] = None,
|
|
222
|
+
platform: Optional[str] = None,
|
|
223
|
+
) -> Optional[str]:
|
|
224
|
+
"""One line of service-manager state for an installed gateway, else None.
|
|
225
|
+
|
|
226
|
+
``gateway status`` uses this to explain a service that is installed but not
|
|
227
|
+
running, which the daemon's own status file cannot show.
|
|
228
|
+
"""
|
|
229
|
+
platform = platform if platform is not None else sys.platform
|
|
230
|
+
if not is_service_installed(systemd_dir=systemd_dir, launchd_dir=launchd_dir, platform=platform):
|
|
231
|
+
return None
|
|
232
|
+
if platform == "darwin":
|
|
233
|
+
proc = run_service_command(["launchctl", "print", f"gui/{os.getuid()}/{LAUNCHD_LABEL}"])
|
|
234
|
+
if proc is None or proc.returncode != 0:
|
|
235
|
+
return "launchd agent installed but not loaded"
|
|
236
|
+
output = proc.stdout or ""
|
|
237
|
+
parts: list[str] = []
|
|
238
|
+
state = re.search(r"^\s*state = (.+)$", output, re.MULTILINE)
|
|
239
|
+
if state:
|
|
240
|
+
parts.append(f"state {state.group(1).strip()}")
|
|
241
|
+
runs = re.search(r"^\s*runs = (\d+)$", output, re.MULTILINE)
|
|
242
|
+
if runs:
|
|
243
|
+
parts.append(f"{runs.group(1)} starts")
|
|
244
|
+
last_exit = re.search(r"^\s*last exit code = (\d+)$", output, re.MULTILINE)
|
|
245
|
+
if last_exit:
|
|
246
|
+
parts.append(f"last exit code {last_exit.group(1)}")
|
|
247
|
+
return "launchd agent " + (", ".join(parts) if parts else "loaded")
|
|
248
|
+
proc = run_service_command(["systemctl", "--user", "is-active", SERVICE_NAME])
|
|
249
|
+
state_text = (proc.stdout or "").strip() if proc is not None else ""
|
|
250
|
+
return f"systemd unit {state_text or 'unknown'}"
|
|
251
|
+
|
|
252
|
+
|
|
217
253
|
def restart_service(
|
|
218
254
|
*,
|
|
219
255
|
unit_path: Optional[Path] = None,
|
|
@@ -201,8 +201,12 @@ def preferred_edit_protocol(provider: str, model_name: str) -> Optional[str]:
|
|
|
201
201
|
# takes its catalog value instead.
|
|
202
202
|
DEEPSEEK_WIRE_OUTPUT_CAP = 64000
|
|
203
203
|
|
|
204
|
-
# Routes
|
|
205
|
-
_UNCLAMPED_DEEPSEEK_ROUTES = {
|
|
204
|
+
# Routes that use the catalog output budget without the legacy Pro/chat clamp.
|
|
205
|
+
_UNCLAMPED_DEEPSEEK_ROUTES = {
|
|
206
|
+
("deepseek", "deepseek-v4-flash"),
|
|
207
|
+
("deepseek", "deepseek-v4-flash-vision-exp"),
|
|
208
|
+
("deepseek", "deepseek-v4.1-flash-expires-on-0910"),
|
|
209
|
+
}
|
|
206
210
|
|
|
207
211
|
|
|
208
212
|
def is_deepseek_model(model_name: str) -> bool:
|
|
@@ -79,4 +79,25 @@ DEEPSEEK_SPECS = {
|
|
|
79
79
|
mode="openai_responses_reasoning",
|
|
80
80
|
),
|
|
81
81
|
},
|
|
82
|
+
# Append previews: settings uses the first catalog model as provider fallback.
|
|
83
|
+
# Unlisted preview, verified on /responses on 2026-09-09. The ID advertises
|
|
84
|
+
# expiry on September 10; do not alias it to a stable model or make it default.
|
|
85
|
+
# Vision, hosted search, tools, and all four exposed efforts work live.
|
|
86
|
+
# Retain the Flash-family 1M context budget provisionally (not independently
|
|
87
|
+
# measured for this preview). The API accepts 384000 output tokens and reports
|
|
88
|
+
# a maximum of 393216; keep the existing conservative Flash output budget.
|
|
89
|
+
("deepseek", "deepseek-v4.1-flash-expires-on-0910"): {
|
|
90
|
+
"context_length": 1000000,
|
|
91
|
+
"max_completion_tokens": 384000,
|
|
92
|
+
"input_budget": "window_minus_output",
|
|
93
|
+
"default_temperature": 1.0,
|
|
94
|
+
"supports_vision": True,
|
|
95
|
+
"supports_hosted_web_search": True,
|
|
96
|
+
"preferred_edit_protocol": "claude_code",
|
|
97
|
+
"thinking_effort": ThinkingEffortSpec(
|
|
98
|
+
options=("none", "low", "high", "max"),
|
|
99
|
+
default="high",
|
|
100
|
+
mode="openai_responses_reasoning",
|
|
101
|
+
),
|
|
102
|
+
},
|
|
82
103
|
}
|
|
@@ -8,7 +8,7 @@ build-backend = "hatchling.build"
|
|
|
8
8
|
|
|
9
9
|
[project]
|
|
10
10
|
name = "kolega-code"
|
|
11
|
-
version = "0.
|
|
11
|
+
version = "0.37.0"
|
|
12
12
|
description = "Multi-agent coding in the terminal"
|
|
13
13
|
readme = "README.md"
|
|
14
14
|
license = "BUSL-1.1"
|
|
@@ -69,6 +69,9 @@ dependencies = [
|
|
|
69
69
|
"markitdown[docx,pdf,pptx,xls,xlsx]==0.1.6",
|
|
70
70
|
"mcp==1.28.1",
|
|
71
71
|
"nest-asyncio==1.6.0",
|
|
72
|
+
# Magika: 1.19.2 has Monterey-compatible Intel wheels for Python 3.11/3.12.
|
|
73
|
+
# It has no Python 3.13 wheels; that interpreter requires newer macOS.
|
|
74
|
+
"onnxruntime==1.19.2; sys_platform == 'darwin' and platform_machine == 'x86_64' and python_version < '3.13'",
|
|
72
75
|
# Magika's cross-platform resolution selects onnxruntime 1.20.1, which has no CPython 3.14 wheels.
|
|
73
76
|
"onnxruntime==1.27.0; python_version >= '3.14' and sys_platform != 'win32'",
|
|
74
77
|
"openai==2.46.0",
|
|
@@ -78,6 +81,9 @@ dependencies = [
|
|
|
78
81
|
"playwright==1.59.0",
|
|
79
82
|
"psutil==7.2.2",
|
|
80
83
|
"pydantic==2.13.4",
|
|
84
|
+
# MarkItDown/pdfplumber: newer PDFium wheels require macOS 13.
|
|
85
|
+
# Preserve Intel macOS 12 installs; bumps must pass the Monterey wheel guard.
|
|
86
|
+
"pypdfium2==5.11.0",
|
|
81
87
|
"python-dotenv==1.2.2",
|
|
82
88
|
# Load-bearing for the web UI: code highlighting is generated with the same
|
|
83
89
|
# Pygments styles the TUI renders with, so both stay identical.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/deep-research/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/docx/requirements.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/humanizer/LICENSE
RENAMED
|
File without changes
|
{kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/humanizer/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/pdf/references/ocr.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/pdf/requirements.txt
RENAMED
|
File without changes
|
{kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/pdf/scripts/pdf_tool.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/pptx/requirements.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/review/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kolega_code-0.36.0 → kolega_code-0.37.0}/kolega_code/_bundled_skills/skills/xlsx/requirements.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|