kolega-code 0.35.0__tar.gz → 0.35.1__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.35.0 → kolega_code-0.35.1}/CHANGELOG.md +12 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/PKG-INFO +1 -1
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/__init__.py +1 -1
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/__init__.py +1 -1
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/bridge.py +49 -29
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/service.py +40 -3
- {kolega_code-0.35.0 → kolega_code-0.35.1}/pyproject.toml +1 -1
- {kolega_code-0.35.0 → kolega_code-0.35.1}/.gitignore +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/CONTRIBUTING.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/LICENSE +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/MIGRATION.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/README.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/RELEASING.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/LICENSE +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/manifest.json +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/deep-research/SKILL.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/deep-research/references/evidence-and-reporting.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/deep-research/references/gigacode-workflow.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/deep-research/scripts/deep-research.workflow +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/deep-research/scripts/materialize_report.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/docx/LICENSE +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/docx/SKILL.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/docx/references/examples.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/docx/references/limitations.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/docx/references/operations.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/docx/references/quality.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/docx/requirements.txt +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/docx/scripts/docx_tool.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/docx/scripts/smoke_test.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/humanizer/LICENSE +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/humanizer/SKILL.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pdf/LICENSE +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pdf/SKILL.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pdf/references/examples.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pdf/references/limitations.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pdf/references/ocr.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pdf/references/operations.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pdf/references/quality.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pdf/references/redaction.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pdf/requirements-ocr-paddle.txt +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pdf/requirements-ocr-surya.txt +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pdf/requirements.txt +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pdf/scripts/pdf_tool.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pdf/scripts/smoke_test.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pptx/LICENSE +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pptx/SKILL.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pptx/references/examples.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pptx/references/limitations.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pptx/references/operations.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pptx/requirements.txt +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pptx/scripts/pptx_tool.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pptx/scripts/smoke_test.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/review/SKILL.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/review/references/github-publishing.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/skill-authoring/SKILL.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/skill-authoring/references/review-checklist.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/xlsx/LICENSE +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/xlsx/SKILL.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/xlsx/references/examples.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/xlsx/references/limitations.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/xlsx/references/operations.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/xlsx/references/quality.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/xlsx/requirements.txt +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/xlsx/scripts/smoke_test.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/xlsx/scripts/xlsx_tool.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/acp/__init__.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/acp/agent_factory.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/acp/bridge.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/acp/diffs.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/acp/permissions.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/acp/plans.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/acp/questions.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/acp/server.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/acp/session.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/acp/usage.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/baseagent.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/browseragent.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/coder.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/common.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/compression.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/context.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/conversation.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/custom_agents.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/edit_protocols.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/errors.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/eval/__init__.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/eval/bridge.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/eval/bundle-requirements.in +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/eval/bundle-requirements.txt +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/eval/env.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/eval/js_kernel.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/eval/kernel.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/eval/prelude.js +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/eval/prelude.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/eval/protocol.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/eval/py_kernel.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/eval/runner.js +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/eval/runner.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/generalagent.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/goal.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/handoff.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/investigationagent.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/model_routing.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/orchestration/__init__.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/orchestration/accounting.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/orchestration/budget.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/orchestration/context.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/orchestration/errors.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/orchestration/executor.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/orchestration/guide.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/orchestration/journal.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/orchestration/runtime.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/orchestration/types.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/planningagent.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_dump.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_overrides.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_provider.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/auxiliary/agent_loop/silent_turn_exhausted.user.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/auxiliary/agent_loop/silent_turn_nudge.user.md.j2 +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/auxiliary/agent_loop/truncated_turn_nudge.user.md.j2 +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/auxiliary/compression/summary.system.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/auxiliary/compression/summary.user.md.j2 +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/auxiliary/handoff/document.system.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/auxiliary/handoff/document.user.md.j2 +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/auxiliary/terminal/output_summary.system.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/auxiliary/terminal/safety.system.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/extensions/cli/build_questions.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/extensions/cli/current_plan_artifact.md.j2 +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/extensions/cli/mode_switch_notice.md.j2 +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/extensions/cli/planning_questions.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/extensions/cli/scratchpad.md.j2 +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/extensions/cli/shared_task_list.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/extensions/cli/shared_task_list_readonly.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/extensions/cli/worktree_control.md.j2 +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/extensions/skills/catalog.md.j2 +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/system/agents/browser.md.j2 +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/system/agents/coder_ask.md.j2 +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/system/agents/coder_base.md.j2 +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/system/agents/coder_cli.md.j2 +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/system/agents/general.md.j2 +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/system/agents/investigation.md.j2 +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/system/agents/planning.md.j2 +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/system/includes/agents_md_instructions.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/system/includes/context_updates.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/system/includes/environment_variables/workspace_env_vars.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/system/includes/frontend_guidance.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/system/includes/starter_templates/expo.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/system/includes/starter_templates/html_website.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/system/includes/starter_templates/mern_stack.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/system/includes/starter_templates/react_vite_shadcdn.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/system/includes/terminal_tools.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/apply_patch.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/ask_user_choice.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_click.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_close.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_console_messages.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_drag.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_drop.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_evaluate.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_file_upload.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_fill_form.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_find.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_handle_dialog.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_hover.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_navigate.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_navigate_back.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_network_request.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_network_requests.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_press_key.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_resize.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_scroll.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_select_option.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_snapshot.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_tabs.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_take_screenshot.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_type.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_wait_for.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/build_backend.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/build_frontend.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/claude_edit.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/claude_write.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/dispatch_agent.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/edit.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/eval.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/exec_command.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/get_host.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/get_task_list.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/get_task_list_readonly.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/hashline_edit.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/hashline_write.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/kill_command.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/list_agents.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/list_sessions.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/list_subagent_models.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/list_workflow_runs.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/lsp.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/lsp_edit.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/multi_edit.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/read.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/read_image.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/resolve.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/run_workflow.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/send_message.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/set_goal.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/skill.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/snapshot.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/switch_worktree.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/update_task_list.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/web_fetch.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/web_search.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/write.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/write_plan.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/write_stdin.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/user_tasks/cli/implement_plan.md.j2 +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/user_tasks/cli/init_agents.md.j2 +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompts.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/session_metadata.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/agent_tool.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/base_tool.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/browser_tool.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/build_tool.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/codex_patch.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/edit_preview.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/edit_tool.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/eval_tool.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/hashline_v2.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/lsp_tool.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/memory_tool.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/network_status.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/read_file_tool.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/read_image_tool.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/search_backends/__init__.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/search_backends/base.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/search_backends/duckduckgo.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/search_backends/errors.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/search_backends/firecrawl.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/search_backends/models.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/search_backends/searxng.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/search_backends/tavily.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/snapshot_tool.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/streaming_tool.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/terminal_tool.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/web_fetch/__init__.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/web_fetch/answering.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/web_fetch/documents.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/web_fetch/extractors.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/web_fetch/pipeline.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/web_fetch/retrieval.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/web_fetch_tool.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/web_search_tool.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/workflow_tool.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_definitions.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tools.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/utils/commands.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/volatile_context.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/auth/__init__.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/auth/_jwt.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/auth/chatgpt_oauth.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/auth/constants.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/auth/tokens.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/browser_extension/__init__.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/browser_extension/framing.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/browser_extension/installer.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/browser_extension/manager.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/browser_extension/multiplex.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/browser_extension/native_host.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/browser_extension/protocol.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/browser_extension/registry.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/browser_extension/runtime.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/__init__.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/acp.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/app.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/ask_output.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/atif_export.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/browser_backend.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/clipboard_image.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/config.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/connection.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/cron.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/diagnostics.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/file_index.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/gateway.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/goal.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/loop.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/main.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/mentions.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/messages.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/model_catalog.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/model_connection.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/peer_messaging.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/plan_artifacts.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/prompt_history.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/provider_registry.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/session_event_protocol.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/session_event_store.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/session_journal.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/session_store.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/session_usage.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/settings.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/skills.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/slash_commands.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/theme.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/__init__.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/agent_runtime.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/app_base.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/changes_screen.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/command_handlers.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/constants.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/custom_model.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/loop_runtime.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/memory_screen.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/onboarding_screen.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/pacing.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/prompt_flows.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/session_diff.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/settings_panel.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/settings_screen.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/state.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/status_dashboard.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/styles.tcss +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/sub_agent_screen.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/terminal_display.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/transcript.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/widgets.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/updater.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/config.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/events.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/extensions.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/__init__.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/access.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/adapters/__init__.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/adapters/base.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/adapters/echo.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/adapters/telegram/__init__.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/adapters/telegram/adapter.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/adapters/telegram/formatting.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/commands.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/config.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/control_relay.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/daemon.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/event_router.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/questions.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/redaction.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/router.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/sessions.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/stt.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/git_env.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/hooks/__init__.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/hooks/backends.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/hooks/config.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/hooks/dispatcher.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/hooks/events.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/hooks/matcher.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/hooks/outcome.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/client.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/exceptions.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/instrumented_client.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/ledger.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/models.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/providers/__init__.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/providers/_token_encoding.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/providers/anthropic.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/providers/base.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/providers/chatgpt_oauth.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/providers/deepseek_responses.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/providers/google.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/providers/models.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/providers/openai.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/providers/openai_responses.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/providers/perplexity_responses.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/providers/responses_common.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/providers/tinker.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/providers/tinker_trace.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/ratelimit.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/__init__.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/accessors.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/catalog/__init__.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/catalog/anthropic.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/catalog/dashscope.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/catalog/deepseek.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/catalog/fireworks.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/catalog/google.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/catalog/groq.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/catalog/kimi_coding.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/catalog/moonshot.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/catalog/ollama_cloud.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/catalog/openai.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/catalog/openai_chatgpt.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/catalog/openrouter.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/catalog/perplexity_agent.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/catalog/thinking_machines.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/catalog/tinker.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/catalog/together.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/catalog/xai.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/catalog/zai.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/custom_endpoints.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/ollama_cloud_catalog.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/openrouter_catalog.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/perplexity_catalog.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/thinking.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/tinker_catalog.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/types.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/validation.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/timeouts.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/tool_execution_ids.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/usage.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/local_state.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/mcp/__init__.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/mcp/config.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/mcp/oauth.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/mcp/service.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/mcp/state.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/mcp/tools.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/mcp/transport.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/memory/__init__.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/memory/identity.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/memory/manager.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/memory/manifest.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/memory/markdown.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/memory/models.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/memory/protocol.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/memory/registry.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/models/__init__.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/models/sandbox_terminal_state.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/permissions.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/runtime.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/sandbox/README.md +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/sandbox/__init__.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/sandbox/async_filesystem.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/sandbox/base.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/sandbox/browser.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/sandbox/event_loop.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/sandbox/filesystem.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/sandbox/local.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/sandbox/serializer.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/sandbox/terminal.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/sandbox/utils.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/scratchpad.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/security/__init__.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/security/secrets.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/services/base.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/services/browser.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/services/file_system.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/services/html.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/services/lsp/__init__.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/services/lsp/client.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/services/lsp/config.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/services/lsp/detector.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/services/lsp/diagnostics.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/services/lsp/edits.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/services/lsp/manager.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/services/lsp/registry.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/services/lsp/registry.yaml +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/services/snapshots.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/services/terminal.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/services/terminal_buffer.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/services/workspace_scan.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/session/__init__.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/session/control.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/session/inbox.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/session/inmemory.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/session/projection.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/session/recording.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/session/runtime.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/session/store.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/testing/__init__.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/testing/store_conformance.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/tools/__init__.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/tools/ask_user.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/tools/core.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/tools/definitions.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/tools/param_aliases.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/tools/registry.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/utils/__init__.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/utils/images.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/web/__init__.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/web/assets/fold.js +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/web/assets/player.css +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/web/assets/player.html +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/web/assets/player.js +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/web/bundle.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/web/hosting.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/web/redaction.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/web/server.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/web/singlefile.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/web/theme_css.py +0 -0
- {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/worktrees.py +0 -0
|
@@ -6,6 +6,18 @@ This project uses GitHub Releases for detailed generated release notes. This fil
|
|
|
6
6
|
|
|
7
7
|
## Unreleased
|
|
8
8
|
|
|
9
|
+
## 0.35.1 - 2026-09-03
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- **Gateway (Telegram):** the tool-activity status now re-appears below the
|
|
14
|
+
newest reply bubble. Previously it stayed stranded in an older message once
|
|
15
|
+
a reply opened, so later tool calls looked detached from the conversation.
|
|
16
|
+
Adapters without message-delete support keep the edit-in-place behavior.
|
|
17
|
+
- **Gateway service:** the background daemon now launches through the user's
|
|
18
|
+
login shell, so gateway-driven agent sessions see user-installed tools such
|
|
19
|
+
as Homebrew instead of the minimal `PATH` that launchd and systemd provide.
|
|
20
|
+
|
|
9
21
|
## 0.35.0 - 2026-09-03
|
|
10
22
|
|
|
11
23
|
### Added
|
|
@@ -12,8 +12,11 @@ turns:
|
|
|
12
12
|
- a placeholder reply is created on first content and edited in place on a
|
|
13
13
|
throttle until the turn ends (final-only transports get one message at the
|
|
14
14
|
end);
|
|
15
|
-
- tool activity lands in
|
|
16
|
-
|
|
15
|
+
- each round of tool activity lands in its own "working…" message below the
|
|
16
|
+
newest reply bubble: a round that starts after text was streamed opens a
|
|
17
|
+
fresh message (Telegram cannot move messages, so appending to an older one
|
|
18
|
+
would surface above the latest text), and the messages persist as a trail
|
|
19
|
+
of what the agent did during the turn;
|
|
17
20
|
- text is chunked at the adapter's limit; the first chunk is the edited
|
|
18
21
|
message and overflow chunks are sent as continuations on finalize.
|
|
19
22
|
|
|
@@ -34,10 +37,10 @@ from kolega_code.gateway.adapters.telegram.formatting import chunk_text
|
|
|
34
37
|
|
|
35
38
|
logger = logging.getLogger(__name__)
|
|
36
39
|
|
|
37
|
-
#: Cap on
|
|
40
|
+
#: Cap on a round message's lines so a chatty turn cannot spam an unbounded edit.
|
|
38
41
|
MAX_STATUS_LINES = 8
|
|
39
|
-
#:
|
|
40
|
-
|
|
42
|
+
#: Rendered status line: (icon, tool description, tool call id).
|
|
43
|
+
StatusLine = tuple[str, str, str]
|
|
41
44
|
|
|
42
45
|
|
|
43
46
|
class TurnRenderer:
|
|
@@ -69,10 +72,17 @@ class TurnRenderer:
|
|
|
69
72
|
self._reply_id: Optional[str] = None
|
|
70
73
|
self._edited_text = ""
|
|
71
74
|
self._last_flush = 0.0
|
|
75
|
+
#: The current tool round's message, one per burst of tool activity.
|
|
76
|
+
#: Older rounds' messages stay in the chat as a trail of the turn.
|
|
72
77
|
self._status_id: Optional[str] = None
|
|
73
|
-
self._status_lines: list[
|
|
78
|
+
self._status_lines: list[StatusLine] = []
|
|
74
79
|
self._status_sent_text = ""
|
|
75
80
|
self._last_status_flush = 0.0
|
|
81
|
+
#: Set when a reply message was sent after the current round message:
|
|
82
|
+
#: the next tool event then opens a fresh round message below the
|
|
83
|
+
#: newest bubble (Telegram cannot move messages) instead of appending
|
|
84
|
+
#: to the stale one higher up the chat.
|
|
85
|
+
self._status_stale = False
|
|
76
86
|
|
|
77
87
|
async def run(self, chunks: AsyncIterator[dict[str, Any]]) -> str:
|
|
78
88
|
"""Consume the turn generator and mirror it into the chat.
|
|
@@ -118,7 +128,6 @@ class TurnRenderer:
|
|
|
118
128
|
except asyncio.CancelledError:
|
|
119
129
|
pass
|
|
120
130
|
await self._adapter.set_typing(self._chat_id, False)
|
|
121
|
-
await self._finalize_status()
|
|
122
131
|
|
|
123
132
|
# -- Reply messages (one per response segment) -------------------------
|
|
124
133
|
|
|
@@ -144,6 +153,7 @@ class TurnRenderer:
|
|
|
144
153
|
return # final-only transports send once, at the end
|
|
145
154
|
self._reply_id = await self._adapter.send_text(self._chat_id, chunks[0])
|
|
146
155
|
self._edited_text = chunks[0]
|
|
156
|
+
self._status_stale = True
|
|
147
157
|
return
|
|
148
158
|
if not final:
|
|
149
159
|
if len(chunks) > 1:
|
|
@@ -155,6 +165,7 @@ class TurnRenderer:
|
|
|
155
165
|
await self._edit_reply(chunks[0])
|
|
156
166
|
for extra in chunks[1:]:
|
|
157
167
|
await self._adapter.send_text(self._chat_id, extra)
|
|
168
|
+
self._status_stale = True
|
|
158
169
|
|
|
159
170
|
async def _edit_reply(self, text: str) -> None:
|
|
160
171
|
if text == self._edited_text:
|
|
@@ -163,39 +174,58 @@ class TurnRenderer:
|
|
|
163
174
|
await self._adapter.edit_text(self._chat_id, self._reply_id or "", text)
|
|
164
175
|
self._edited_text = text
|
|
165
176
|
|
|
166
|
-
# -- Tool
|
|
177
|
+
# -- Tool round messages ----------------------------------------------
|
|
167
178
|
|
|
168
179
|
async def _event_pump(self) -> None:
|
|
169
180
|
try:
|
|
170
181
|
while True:
|
|
171
182
|
event = await self._events.get()
|
|
172
|
-
|
|
173
|
-
if
|
|
183
|
+
record = self._line_record_for(event)
|
|
184
|
+
if record is None:
|
|
174
185
|
continue
|
|
175
|
-
self.
|
|
176
|
-
|
|
186
|
+
if self._status_stale:
|
|
187
|
+
# The newest reply bubble was sent after the current round
|
|
188
|
+
# message: open a fresh round message below it instead of
|
|
189
|
+
# appending to the stale one higher up the chat.
|
|
190
|
+
self._status_stale = False
|
|
191
|
+
self._status_id = None
|
|
192
|
+
self._status_lines = []
|
|
193
|
+
self._record_line(record)
|
|
177
194
|
await self._flush_status()
|
|
178
195
|
except asyncio.CancelledError:
|
|
179
196
|
raise
|
|
180
197
|
|
|
181
198
|
@staticmethod
|
|
182
|
-
def
|
|
199
|
+
def _line_record_for(event: AgentEvent) -> Optional[StatusLine]:
|
|
183
200
|
if event.event_type != "chat_message":
|
|
184
201
|
return None
|
|
185
202
|
message_type = event.content.get("message_type")
|
|
203
|
+
description = str(event.content.get("tool_description") or "tool")
|
|
204
|
+
call_id = str(event.content.get("tool_call_id") or "")
|
|
186
205
|
if message_type == "tool_call":
|
|
187
|
-
|
|
188
|
-
return f"⏳ {description}"
|
|
206
|
+
return ("⏳", description, call_id)
|
|
189
207
|
if message_type == "tool_result":
|
|
190
|
-
return "✅
|
|
208
|
+
return ("✅", description, call_id)
|
|
191
209
|
if message_type == "tool_error":
|
|
192
|
-
return "❌
|
|
210
|
+
return ("❌", description, call_id)
|
|
193
211
|
return None
|
|
194
212
|
|
|
213
|
+
def _record_line(self, record: StatusLine) -> None:
|
|
214
|
+
icon, _, call_id = record
|
|
215
|
+
if icon != "⏳" and call_id:
|
|
216
|
+
# A finished call replaces its pending line so the round message
|
|
217
|
+
# reads as a settled trail (⏳ bash -> ✅ bash), not an append log.
|
|
218
|
+
for index, (pending_icon, _, pending_id) in enumerate(self._status_lines):
|
|
219
|
+
if pending_icon == "⏳" and pending_id == call_id:
|
|
220
|
+
self._status_lines[index] = record
|
|
221
|
+
return
|
|
222
|
+
self._status_lines.append(record)
|
|
223
|
+
self._status_lines = self._status_lines[-MAX_STATUS_LINES:]
|
|
224
|
+
|
|
195
225
|
async def _flush_status(self) -> None:
|
|
196
226
|
if not self._status_lines:
|
|
197
227
|
return
|
|
198
|
-
text = "\n".join(self._status_lines)
|
|
228
|
+
text = "\n".join(f"{icon} {description}" for icon, description, _ in self._status_lines)
|
|
199
229
|
if text == self._status_sent_text:
|
|
200
230
|
# Line-cap truncation can make a new event's rendered text
|
|
201
231
|
# identical to the previous one; re-sending the same content is a
|
|
@@ -206,20 +236,10 @@ class TurnRenderer:
|
|
|
206
236
|
return
|
|
207
237
|
self._last_status_flush = now
|
|
208
238
|
if self._status_id is None:
|
|
209
|
-
# No
|
|
239
|
+
# No round message on transports that cannot edit it away.
|
|
210
240
|
if not self._adapter.capabilities.supports_edits:
|
|
211
241
|
return
|
|
212
242
|
self._status_id = await self._adapter.send_text(self._chat_id, text)
|
|
213
243
|
else:
|
|
214
244
|
await self._adapter.edit_text(self._chat_id, self._status_id, text)
|
|
215
245
|
self._status_sent_text = text
|
|
216
|
-
|
|
217
|
-
async def _finalize_status(self) -> None:
|
|
218
|
-
if self._status_id is None:
|
|
219
|
-
return
|
|
220
|
-
message_id, self._status_id = self._status_id, None
|
|
221
|
-
if self._adapter.capabilities.supports_delete:
|
|
222
|
-
try:
|
|
223
|
-
await self._adapter.delete_message(self._chat_id, message_id)
|
|
224
|
-
except Exception: # noqa: BLE001 — a stuck status message is cosmetic
|
|
225
|
-
logger.debug("gateway: status delete failed for chat %s", self._chat_id)
|
|
@@ -50,6 +50,34 @@ class ServiceInstallResult:
|
|
|
50
50
|
unit_path: Optional[Path] = None
|
|
51
51
|
|
|
52
52
|
|
|
53
|
+
def login_shell(platform: Optional[str] = None) -> str:
|
|
54
|
+
"""The user's login shell: ``$SHELL`` when set, else the platform default.
|
|
55
|
+
|
|
56
|
+
launchd and systemd start service programs directly, so the daemon would
|
|
57
|
+
inherit the service manager's minimal environment (launchd gives agents
|
|
58
|
+
``PATH=/usr/bin:/bin:/usr/sbin:/sbin``), which starves gateway-driven
|
|
59
|
+
agent sessions of Homebrew and other user-installed tools. The service
|
|
60
|
+
therefore launches through the user's login shell: ``-l`` runs the shell
|
|
61
|
+
profile files, so the daemon's environment matches what an interactive
|
|
62
|
+
terminal sees, and nothing is captured at install time.
|
|
63
|
+
"""
|
|
64
|
+
platform = platform if platform is not None else sys.platform
|
|
65
|
+
from_env = os.environ.get("SHELL")
|
|
66
|
+
if from_env:
|
|
67
|
+
return from_env
|
|
68
|
+
return "/bin/zsh" if platform == "darwin" else "/bin/bash"
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
def service_launch_command(config: GatewayConfig, executable: str, *, shell: str) -> list[str]:
|
|
72
|
+
"""The service-level argv: the login shell exec-ing the daemon.
|
|
73
|
+
|
|
74
|
+
``exec`` replaces the shell process, so termination signals reach the
|
|
75
|
+
daemon directly and launchd/KeepAlive track the real process.
|
|
76
|
+
"""
|
|
77
|
+
inner = " ".join(shlex.quote(part) for part in service_command(config, executable))
|
|
78
|
+
return [shell, "-l", "-c", f"exec {inner}"]
|
|
79
|
+
|
|
80
|
+
|
|
53
81
|
def service_command(config: GatewayConfig, executable: str) -> list[str]:
|
|
54
82
|
"""The exact argv the service runs."""
|
|
55
83
|
return [
|
|
@@ -69,6 +97,7 @@ def install_service(
|
|
|
69
97
|
config: GatewayConfig,
|
|
70
98
|
*,
|
|
71
99
|
executable: Optional[str] = None,
|
|
100
|
+
shell: Optional[str] = None,
|
|
72
101
|
systemd_dir: Optional[Path] = None,
|
|
73
102
|
launchd_dir: Optional[Path] = None,
|
|
74
103
|
platform: Optional[str] = None,
|
|
@@ -76,12 +105,16 @@ def install_service(
|
|
|
76
105
|
"""Write the service definition.
|
|
77
106
|
|
|
78
107
|
``systemd_dir``/``launchd_dir`` are the unit destination directories;
|
|
79
|
-
callers resolve the platform defaults (tests pass temp dirs).
|
|
108
|
+
callers resolve the platform defaults (tests pass temp dirs). ``shell``
|
|
109
|
+
overrides the login shell the service launches through (tests pass one
|
|
110
|
+
for determinism); by default the user's ``$SHELL`` or the platform
|
|
111
|
+
default is used.
|
|
80
112
|
"""
|
|
81
113
|
platform = platform if platform is not None else sys.platform
|
|
82
114
|
executable = executable or shutil.which("kolega-code") or ""
|
|
83
115
|
if not executable:
|
|
84
116
|
raise RuntimeError("kolega-code executable not found; is it on PATH?")
|
|
117
|
+
launch_shell = shell or login_shell(platform)
|
|
85
118
|
config.state_dir.mkdir(parents=True, exist_ok=True)
|
|
86
119
|
result = ServiceInstallResult()
|
|
87
120
|
if platform == "darwin":
|
|
@@ -90,7 +123,7 @@ def install_service(
|
|
|
90
123
|
plist_path = launchd_dir / LAUNCHD_PLIST_NAME
|
|
91
124
|
plist: dict[str, object] = {
|
|
92
125
|
"Label": LAUNCHD_LABEL,
|
|
93
|
-
"ProgramArguments":
|
|
126
|
+
"ProgramArguments": service_launch_command(config, executable, shell=launch_shell),
|
|
94
127
|
"RunAtLoad": True,
|
|
95
128
|
"KeepAlive": True,
|
|
96
129
|
"StandardOutPath": str(config.state_dir / "gateway.log"),
|
|
@@ -103,10 +136,14 @@ def install_service(
|
|
|
103
136
|
systemd_dir = systemd_dir or (Path.home() / ".config" / "systemd" / "user")
|
|
104
137
|
systemd_dir.mkdir(parents=True, exist_ok=True)
|
|
105
138
|
unit_path = systemd_dir / SYSTEMD_UNIT_NAME
|
|
106
|
-
command = " ".join(shlex.quote(part) for part in
|
|
139
|
+
command = " ".join(shlex.quote(part) for part in service_launch_command(config, executable, shell=launch_shell))
|
|
107
140
|
unit_path.write_text(_SYSTEMD_UNIT_TEMPLATE.format(command=command), encoding="utf-8")
|
|
108
141
|
result.unit_path = unit_path
|
|
109
142
|
result.notes.append(f"systemd user unit written to {unit_path}")
|
|
143
|
+
result.notes.append(
|
|
144
|
+
f"the service launches via your login shell ({launch_shell}), so it inherits your "
|
|
145
|
+
"normal terminal environment; restart it after changing your shell profile"
|
|
146
|
+
)
|
|
110
147
|
result.notes.append(
|
|
111
148
|
"the service reads settings.json from the same state dir — make sure your provider "
|
|
112
149
|
"API keys are saved in Settings (they apply to the gateway too)"
|
|
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.35.0 → kolega_code-0.35.1}/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.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/docx/requirements.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/humanizer/LICENSE
RENAMED
|
File without changes
|
{kolega_code-0.35.0 → kolega_code-0.35.1}/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.35.0 → kolega_code-0.35.1}/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.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pdf/requirements.txt
RENAMED
|
File without changes
|
{kolega_code-0.35.0 → kolega_code-0.35.1}/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.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pptx/requirements.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kolega_code-0.35.0 → kolega_code-0.35.1}/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.35.0 → kolega_code-0.35.1}/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
|
|
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
|