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.
Files changed (487) hide show
  1. {kolega_code-0.35.0 → kolega_code-0.35.1}/CHANGELOG.md +12 -0
  2. {kolega_code-0.35.0 → kolega_code-0.35.1}/PKG-INFO +1 -1
  3. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/__init__.py +1 -1
  4. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/__init__.py +1 -1
  5. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/bridge.py +49 -29
  6. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/service.py +40 -3
  7. {kolega_code-0.35.0 → kolega_code-0.35.1}/pyproject.toml +1 -1
  8. {kolega_code-0.35.0 → kolega_code-0.35.1}/.gitignore +0 -0
  9. {kolega_code-0.35.0 → kolega_code-0.35.1}/CONTRIBUTING.md +0 -0
  10. {kolega_code-0.35.0 → kolega_code-0.35.1}/LICENSE +0 -0
  11. {kolega_code-0.35.0 → kolega_code-0.35.1}/MIGRATION.md +0 -0
  12. {kolega_code-0.35.0 → kolega_code-0.35.1}/README.md +0 -0
  13. {kolega_code-0.35.0 → kolega_code-0.35.1}/RELEASING.md +0 -0
  14. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/LICENSE +0 -0
  15. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/manifest.json +0 -0
  16. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/deep-research/SKILL.md +0 -0
  17. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/deep-research/references/evidence-and-reporting.md +0 -0
  18. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/deep-research/references/gigacode-workflow.md +0 -0
  19. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/deep-research/scripts/deep-research.workflow +0 -0
  20. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/deep-research/scripts/materialize_report.py +0 -0
  21. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/docx/LICENSE +0 -0
  22. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/docx/SKILL.md +0 -0
  23. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/docx/references/examples.md +0 -0
  24. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/docx/references/limitations.md +0 -0
  25. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/docx/references/operations.md +0 -0
  26. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/docx/references/quality.md +0 -0
  27. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/docx/requirements.txt +0 -0
  28. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/docx/scripts/docx_tool.py +0 -0
  29. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/docx/scripts/smoke_test.py +0 -0
  30. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/humanizer/LICENSE +0 -0
  31. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/humanizer/SKILL.md +0 -0
  32. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pdf/LICENSE +0 -0
  33. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pdf/SKILL.md +0 -0
  34. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pdf/references/examples.md +0 -0
  35. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pdf/references/limitations.md +0 -0
  36. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pdf/references/ocr.md +0 -0
  37. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pdf/references/operations.md +0 -0
  38. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pdf/references/quality.md +0 -0
  39. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pdf/references/redaction.md +0 -0
  40. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pdf/requirements-ocr-paddle.txt +0 -0
  41. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pdf/requirements-ocr-surya.txt +0 -0
  42. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pdf/requirements.txt +0 -0
  43. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pdf/scripts/pdf_tool.py +0 -0
  44. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pdf/scripts/smoke_test.py +0 -0
  45. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pptx/LICENSE +0 -0
  46. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pptx/SKILL.md +0 -0
  47. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pptx/references/examples.md +0 -0
  48. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pptx/references/limitations.md +0 -0
  49. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pptx/references/operations.md +0 -0
  50. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pptx/requirements.txt +0 -0
  51. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pptx/scripts/pptx_tool.py +0 -0
  52. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/pptx/scripts/smoke_test.py +0 -0
  53. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/review/SKILL.md +0 -0
  54. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/review/references/github-publishing.md +0 -0
  55. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/skill-authoring/SKILL.md +0 -0
  56. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/skill-authoring/references/review-checklist.md +0 -0
  57. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/xlsx/LICENSE +0 -0
  58. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/xlsx/SKILL.md +0 -0
  59. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/xlsx/references/examples.md +0 -0
  60. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/xlsx/references/limitations.md +0 -0
  61. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/xlsx/references/operations.md +0 -0
  62. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/xlsx/references/quality.md +0 -0
  63. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/xlsx/requirements.txt +0 -0
  64. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/xlsx/scripts/smoke_test.py +0 -0
  65. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/_bundled_skills/skills/xlsx/scripts/xlsx_tool.py +0 -0
  66. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/acp/__init__.py +0 -0
  67. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/acp/agent_factory.py +0 -0
  68. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/acp/bridge.py +0 -0
  69. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/acp/diffs.py +0 -0
  70. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/acp/permissions.py +0 -0
  71. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/acp/plans.py +0 -0
  72. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/acp/questions.py +0 -0
  73. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/acp/server.py +0 -0
  74. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/acp/session.py +0 -0
  75. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/acp/usage.py +0 -0
  76. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/baseagent.py +0 -0
  77. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/browseragent.py +0 -0
  78. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/coder.py +0 -0
  79. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/common.py +0 -0
  80. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/compression.py +0 -0
  81. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/context.py +0 -0
  82. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/conversation.py +0 -0
  83. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/custom_agents.py +0 -0
  84. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/edit_protocols.py +0 -0
  85. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/errors.py +0 -0
  86. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/eval/__init__.py +0 -0
  87. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/eval/bridge.py +0 -0
  88. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/eval/bundle-requirements.in +0 -0
  89. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/eval/bundle-requirements.txt +0 -0
  90. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/eval/env.py +0 -0
  91. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/eval/js_kernel.py +0 -0
  92. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/eval/kernel.py +0 -0
  93. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/eval/prelude.js +0 -0
  94. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/eval/prelude.py +0 -0
  95. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/eval/protocol.py +0 -0
  96. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/eval/py_kernel.py +0 -0
  97. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/eval/runner.js +0 -0
  98. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/eval/runner.py +0 -0
  99. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/generalagent.py +0 -0
  100. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/goal.py +0 -0
  101. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/handoff.py +0 -0
  102. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/investigationagent.py +0 -0
  103. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/model_routing.py +0 -0
  104. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/orchestration/__init__.py +0 -0
  105. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/orchestration/accounting.py +0 -0
  106. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/orchestration/budget.py +0 -0
  107. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/orchestration/context.py +0 -0
  108. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/orchestration/errors.py +0 -0
  109. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/orchestration/executor.py +0 -0
  110. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/orchestration/guide.py +0 -0
  111. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/orchestration/journal.py +0 -0
  112. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/orchestration/runtime.py +0 -0
  113. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/orchestration/types.py +0 -0
  114. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/planningagent.py +0 -0
  115. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_dump.py +0 -0
  116. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_overrides.py +0 -0
  117. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_provider.py +0 -0
  118. {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
  119. {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
  120. {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
  121. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/auxiliary/compression/summary.system.md +0 -0
  122. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/auxiliary/compression/summary.user.md.j2 +0 -0
  123. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/auxiliary/handoff/document.system.md +0 -0
  124. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/auxiliary/handoff/document.user.md.j2 +0 -0
  125. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/auxiliary/terminal/output_summary.system.md +0 -0
  126. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/auxiliary/terminal/safety.system.md +0 -0
  127. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/extensions/cli/build_questions.md +0 -0
  128. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/extensions/cli/current_plan_artifact.md.j2 +0 -0
  129. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/extensions/cli/mode_switch_notice.md.j2 +0 -0
  130. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/extensions/cli/planning_questions.md +0 -0
  131. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/extensions/cli/scratchpad.md.j2 +0 -0
  132. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/extensions/cli/shared_task_list.md +0 -0
  133. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/extensions/cli/shared_task_list_readonly.md +0 -0
  134. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/extensions/cli/worktree_control.md.j2 +0 -0
  135. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/extensions/skills/catalog.md.j2 +0 -0
  136. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/system/agents/browser.md.j2 +0 -0
  137. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/system/agents/coder_ask.md.j2 +0 -0
  138. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/system/agents/coder_base.md.j2 +0 -0
  139. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/system/agents/coder_cli.md.j2 +0 -0
  140. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/system/agents/general.md.j2 +0 -0
  141. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/system/agents/investigation.md.j2 +0 -0
  142. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/system/agents/planning.md.j2 +0 -0
  143. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/system/includes/agents_md_instructions.md +0 -0
  144. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/system/includes/context_updates.md +0 -0
  145. {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
  146. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/system/includes/frontend_guidance.md +0 -0
  147. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/system/includes/starter_templates/expo.md +0 -0
  148. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/system/includes/starter_templates/html_website.md +0 -0
  149. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/system/includes/starter_templates/mern_stack.md +0 -0
  150. {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
  151. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/system/includes/terminal_tools.md +0 -0
  152. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/apply_patch.md +0 -0
  153. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/ask_user_choice.md +0 -0
  154. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_click.md +0 -0
  155. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_close.md +0 -0
  156. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_console_messages.md +0 -0
  157. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_drag.md +0 -0
  158. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_drop.md +0 -0
  159. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_evaluate.md +0 -0
  160. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_file_upload.md +0 -0
  161. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_fill_form.md +0 -0
  162. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_find.md +0 -0
  163. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_handle_dialog.md +0 -0
  164. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_hover.md +0 -0
  165. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_navigate.md +0 -0
  166. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_navigate_back.md +0 -0
  167. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_network_request.md +0 -0
  168. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_network_requests.md +0 -0
  169. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_press_key.md +0 -0
  170. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_resize.md +0 -0
  171. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_scroll.md +0 -0
  172. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_select_option.md +0 -0
  173. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_snapshot.md +0 -0
  174. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_tabs.md +0 -0
  175. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_take_screenshot.md +0 -0
  176. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_type.md +0 -0
  177. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/browser_wait_for.md +0 -0
  178. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/build_backend.md +0 -0
  179. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/build_frontend.md +0 -0
  180. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/claude_edit.md +0 -0
  181. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/claude_write.md +0 -0
  182. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/dispatch_agent.md +0 -0
  183. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/edit.md +0 -0
  184. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/eval.md +0 -0
  185. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/exec_command.md +0 -0
  186. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/get_host.md +0 -0
  187. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/get_task_list.md +0 -0
  188. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/get_task_list_readonly.md +0 -0
  189. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/hashline_edit.md +0 -0
  190. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/hashline_write.md +0 -0
  191. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/kill_command.md +0 -0
  192. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/list_agents.md +0 -0
  193. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/list_sessions.md +0 -0
  194. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/list_subagent_models.md +0 -0
  195. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/list_workflow_runs.md +0 -0
  196. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/lsp.md +0 -0
  197. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/lsp_edit.md +0 -0
  198. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/multi_edit.md +0 -0
  199. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/read.md +0 -0
  200. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/read_image.md +0 -0
  201. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/resolve.md +0 -0
  202. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/run_workflow.md +0 -0
  203. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/send_message.md +0 -0
  204. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/set_goal.md +0 -0
  205. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/skill.md +0 -0
  206. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/snapshot.md +0 -0
  207. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/switch_worktree.md +0 -0
  208. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/update_task_list.md +0 -0
  209. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/web_fetch.md +0 -0
  210. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/web_search.md +0 -0
  211. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/write.md +0 -0
  212. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/write_plan.md +0 -0
  213. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/tools/write_stdin.md +0 -0
  214. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/user_tasks/cli/implement_plan.md.j2 +0 -0
  215. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompt_templates/user_tasks/cli/init_agents.md.j2 +0 -0
  216. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/prompts.py +0 -0
  217. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/session_metadata.py +0 -0
  218. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/agent_tool.py +0 -0
  219. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/base_tool.py +0 -0
  220. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/browser_tool.py +0 -0
  221. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/build_tool.py +0 -0
  222. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/codex_patch.py +0 -0
  223. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/edit_preview.py +0 -0
  224. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/edit_tool.py +0 -0
  225. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/eval_tool.py +0 -0
  226. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/hashline_v2.py +0 -0
  227. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/lsp_tool.py +0 -0
  228. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/memory_tool.py +0 -0
  229. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/network_status.py +0 -0
  230. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/read_file_tool.py +0 -0
  231. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/read_image_tool.py +0 -0
  232. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/search_backends/__init__.py +0 -0
  233. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/search_backends/base.py +0 -0
  234. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/search_backends/duckduckgo.py +0 -0
  235. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/search_backends/errors.py +0 -0
  236. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/search_backends/firecrawl.py +0 -0
  237. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/search_backends/models.py +0 -0
  238. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/search_backends/searxng.py +0 -0
  239. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/search_backends/tavily.py +0 -0
  240. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/snapshot_tool.py +0 -0
  241. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/streaming_tool.py +0 -0
  242. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/terminal_tool.py +0 -0
  243. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/web_fetch/__init__.py +0 -0
  244. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/web_fetch/answering.py +0 -0
  245. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/web_fetch/documents.py +0 -0
  246. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/web_fetch/extractors.py +0 -0
  247. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/web_fetch/pipeline.py +0 -0
  248. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/web_fetch/retrieval.py +0 -0
  249. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/web_fetch_tool.py +0 -0
  250. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/web_search_tool.py +0 -0
  251. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_backend/workflow_tool.py +0 -0
  252. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tool_definitions.py +0 -0
  253. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/tools.py +0 -0
  254. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/utils/commands.py +0 -0
  255. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/agent/volatile_context.py +0 -0
  256. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/auth/__init__.py +0 -0
  257. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/auth/_jwt.py +0 -0
  258. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/auth/chatgpt_oauth.py +0 -0
  259. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/auth/constants.py +0 -0
  260. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/auth/tokens.py +0 -0
  261. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/browser_extension/__init__.py +0 -0
  262. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/browser_extension/framing.py +0 -0
  263. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/browser_extension/installer.py +0 -0
  264. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/browser_extension/manager.py +0 -0
  265. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/browser_extension/multiplex.py +0 -0
  266. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/browser_extension/native_host.py +0 -0
  267. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/browser_extension/protocol.py +0 -0
  268. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/browser_extension/registry.py +0 -0
  269. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/browser_extension/runtime.py +0 -0
  270. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/__init__.py +0 -0
  271. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/acp.py +0 -0
  272. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/app.py +0 -0
  273. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/ask_output.py +0 -0
  274. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/atif_export.py +0 -0
  275. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/browser_backend.py +0 -0
  276. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/clipboard_image.py +0 -0
  277. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/config.py +0 -0
  278. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/connection.py +0 -0
  279. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/cron.py +0 -0
  280. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/diagnostics.py +0 -0
  281. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/file_index.py +0 -0
  282. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/gateway.py +0 -0
  283. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/goal.py +0 -0
  284. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/loop.py +0 -0
  285. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/main.py +0 -0
  286. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/mentions.py +0 -0
  287. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/messages.py +0 -0
  288. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/model_catalog.py +0 -0
  289. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/model_connection.py +0 -0
  290. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/peer_messaging.py +0 -0
  291. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/plan_artifacts.py +0 -0
  292. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/prompt_history.py +0 -0
  293. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/provider_registry.py +0 -0
  294. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/session_event_protocol.py +0 -0
  295. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/session_event_store.py +0 -0
  296. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/session_journal.py +0 -0
  297. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/session_store.py +0 -0
  298. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/session_usage.py +0 -0
  299. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/settings.py +0 -0
  300. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/skills.py +0 -0
  301. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/slash_commands.py +0 -0
  302. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/theme.py +0 -0
  303. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/__init__.py +0 -0
  304. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/agent_runtime.py +0 -0
  305. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/app_base.py +0 -0
  306. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/changes_screen.py +0 -0
  307. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/command_handlers.py +0 -0
  308. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/constants.py +0 -0
  309. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/custom_model.py +0 -0
  310. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/loop_runtime.py +0 -0
  311. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/memory_screen.py +0 -0
  312. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/onboarding_screen.py +0 -0
  313. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/pacing.py +0 -0
  314. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/prompt_flows.py +0 -0
  315. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/session_diff.py +0 -0
  316. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/settings_panel.py +0 -0
  317. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/settings_screen.py +0 -0
  318. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/state.py +0 -0
  319. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/status_dashboard.py +0 -0
  320. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/styles.tcss +0 -0
  321. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/sub_agent_screen.py +0 -0
  322. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/terminal_display.py +0 -0
  323. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/transcript.py +0 -0
  324. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/tui/widgets.py +0 -0
  325. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/cli/updater.py +0 -0
  326. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/config.py +0 -0
  327. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/events.py +0 -0
  328. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/extensions.py +0 -0
  329. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/__init__.py +0 -0
  330. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/access.py +0 -0
  331. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/adapters/__init__.py +0 -0
  332. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/adapters/base.py +0 -0
  333. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/adapters/echo.py +0 -0
  334. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/adapters/telegram/__init__.py +0 -0
  335. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/adapters/telegram/adapter.py +0 -0
  336. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/adapters/telegram/formatting.py +0 -0
  337. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/commands.py +0 -0
  338. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/config.py +0 -0
  339. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/control_relay.py +0 -0
  340. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/daemon.py +0 -0
  341. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/event_router.py +0 -0
  342. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/questions.py +0 -0
  343. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/redaction.py +0 -0
  344. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/router.py +0 -0
  345. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/sessions.py +0 -0
  346. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/gateway/stt.py +0 -0
  347. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/git_env.py +0 -0
  348. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/hooks/__init__.py +0 -0
  349. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/hooks/backends.py +0 -0
  350. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/hooks/config.py +0 -0
  351. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/hooks/dispatcher.py +0 -0
  352. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/hooks/events.py +0 -0
  353. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/hooks/matcher.py +0 -0
  354. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/hooks/outcome.py +0 -0
  355. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/client.py +0 -0
  356. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/exceptions.py +0 -0
  357. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/instrumented_client.py +0 -0
  358. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/ledger.py +0 -0
  359. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/models.py +0 -0
  360. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/providers/__init__.py +0 -0
  361. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/providers/_token_encoding.py +0 -0
  362. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/providers/anthropic.py +0 -0
  363. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/providers/base.py +0 -0
  364. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/providers/chatgpt_oauth.py +0 -0
  365. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/providers/deepseek_responses.py +0 -0
  366. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/providers/google.py +0 -0
  367. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/providers/models.py +0 -0
  368. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/providers/openai.py +0 -0
  369. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/providers/openai_responses.py +0 -0
  370. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/providers/perplexity_responses.py +0 -0
  371. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/providers/responses_common.py +0 -0
  372. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/providers/tinker.py +0 -0
  373. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/providers/tinker_trace.py +0 -0
  374. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/ratelimit.py +0 -0
  375. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/__init__.py +0 -0
  376. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/accessors.py +0 -0
  377. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/catalog/__init__.py +0 -0
  378. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/catalog/anthropic.py +0 -0
  379. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/catalog/dashscope.py +0 -0
  380. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/catalog/deepseek.py +0 -0
  381. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/catalog/fireworks.py +0 -0
  382. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/catalog/google.py +0 -0
  383. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/catalog/groq.py +0 -0
  384. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/catalog/kimi_coding.py +0 -0
  385. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/catalog/moonshot.py +0 -0
  386. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/catalog/ollama_cloud.py +0 -0
  387. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/catalog/openai.py +0 -0
  388. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/catalog/openai_chatgpt.py +0 -0
  389. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/catalog/openrouter.py +0 -0
  390. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/catalog/perplexity_agent.py +0 -0
  391. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/catalog/thinking_machines.py +0 -0
  392. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/catalog/tinker.py +0 -0
  393. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/catalog/together.py +0 -0
  394. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/catalog/xai.py +0 -0
  395. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/catalog/zai.py +0 -0
  396. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/custom_endpoints.py +0 -0
  397. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/ollama_cloud_catalog.py +0 -0
  398. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/openrouter_catalog.py +0 -0
  399. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/perplexity_catalog.py +0 -0
  400. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/thinking.py +0 -0
  401. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/tinker_catalog.py +0 -0
  402. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/types.py +0 -0
  403. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/specs/validation.py +0 -0
  404. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/timeouts.py +0 -0
  405. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/tool_execution_ids.py +0 -0
  406. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/llm/usage.py +0 -0
  407. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/local_state.py +0 -0
  408. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/mcp/__init__.py +0 -0
  409. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/mcp/config.py +0 -0
  410. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/mcp/oauth.py +0 -0
  411. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/mcp/service.py +0 -0
  412. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/mcp/state.py +0 -0
  413. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/mcp/tools.py +0 -0
  414. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/mcp/transport.py +0 -0
  415. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/memory/__init__.py +0 -0
  416. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/memory/identity.py +0 -0
  417. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/memory/manager.py +0 -0
  418. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/memory/manifest.py +0 -0
  419. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/memory/markdown.py +0 -0
  420. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/memory/models.py +0 -0
  421. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/memory/protocol.py +0 -0
  422. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/memory/registry.py +0 -0
  423. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/models/__init__.py +0 -0
  424. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/models/sandbox_terminal_state.py +0 -0
  425. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/permissions.py +0 -0
  426. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/runtime.py +0 -0
  427. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/sandbox/README.md +0 -0
  428. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/sandbox/__init__.py +0 -0
  429. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/sandbox/async_filesystem.py +0 -0
  430. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/sandbox/base.py +0 -0
  431. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/sandbox/browser.py +0 -0
  432. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/sandbox/event_loop.py +0 -0
  433. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/sandbox/filesystem.py +0 -0
  434. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/sandbox/local.py +0 -0
  435. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/sandbox/serializer.py +0 -0
  436. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/sandbox/terminal.py +0 -0
  437. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/sandbox/utils.py +0 -0
  438. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/scratchpad.py +0 -0
  439. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/security/__init__.py +0 -0
  440. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/security/secrets.py +0 -0
  441. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/services/base.py +0 -0
  442. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/services/browser.py +0 -0
  443. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/services/file_system.py +0 -0
  444. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/services/html.py +0 -0
  445. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/services/lsp/__init__.py +0 -0
  446. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/services/lsp/client.py +0 -0
  447. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/services/lsp/config.py +0 -0
  448. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/services/lsp/detector.py +0 -0
  449. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/services/lsp/diagnostics.py +0 -0
  450. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/services/lsp/edits.py +0 -0
  451. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/services/lsp/manager.py +0 -0
  452. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/services/lsp/registry.py +0 -0
  453. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/services/lsp/registry.yaml +0 -0
  454. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/services/snapshots.py +0 -0
  455. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/services/terminal.py +0 -0
  456. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/services/terminal_buffer.py +0 -0
  457. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/services/workspace_scan.py +0 -0
  458. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/session/__init__.py +0 -0
  459. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/session/control.py +0 -0
  460. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/session/inbox.py +0 -0
  461. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/session/inmemory.py +0 -0
  462. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/session/projection.py +0 -0
  463. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/session/recording.py +0 -0
  464. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/session/runtime.py +0 -0
  465. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/session/store.py +0 -0
  466. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/testing/__init__.py +0 -0
  467. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/testing/store_conformance.py +0 -0
  468. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/tools/__init__.py +0 -0
  469. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/tools/ask_user.py +0 -0
  470. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/tools/core.py +0 -0
  471. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/tools/definitions.py +0 -0
  472. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/tools/param_aliases.py +0 -0
  473. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/tools/registry.py +0 -0
  474. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/utils/__init__.py +0 -0
  475. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/utils/images.py +0 -0
  476. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/web/__init__.py +0 -0
  477. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/web/assets/fold.js +0 -0
  478. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/web/assets/player.css +0 -0
  479. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/web/assets/player.html +0 -0
  480. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/web/assets/player.js +0 -0
  481. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/web/bundle.py +0 -0
  482. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/web/hosting.py +0 -0
  483. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/web/redaction.py +0 -0
  484. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/web/server.py +0 -0
  485. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/web/singlefile.py +0 -0
  486. {kolega_code-0.35.0 → kolega_code-0.35.1}/kolega_code/web/theme_css.py +0 -0
  487. {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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kolega-code
3
- Version: 0.35.0
3
+ Version: 0.35.1
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/
@@ -174,4 +174,4 @@ __all__ = [
174
174
  "parse_git_status_output",
175
175
  ]
176
176
 
177
- __version__ = "0.35.0"
177
+ __version__ = "0.35.1"
@@ -51,4 +51,4 @@ __all__ = [
51
51
  "ToolExtension",
52
52
  ]
53
53
 
54
- __version__ = "0.35.0"
54
+ __version__ = "0.35.1"
@@ -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 a separate "working…" status message, edited as
16
- events arrive and deleted when the turn finishes;
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 status-message lines so a chatty turn cannot spam an unbounded edit.
40
+ #: Cap on a round message's lines so a chatty turn cannot spam an unbounded edit.
38
41
  MAX_STATUS_LINES = 8
39
- #: Events the status pump renders; everything else on the stream is ignored.
40
- STATUS_MESSAGE_TYPES = {"tool_call", "tool_result", "tool_error"}
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[str] = []
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 status message ----------------------------------------------
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
- line = self._status_line_for(event)
173
- if line is None:
183
+ record = self._line_record_for(event)
184
+ if record is None:
174
185
  continue
175
- self._status_lines.append(line)
176
- self._status_lines = self._status_lines[-MAX_STATUS_LINES:]
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 _status_line_for(event: AgentEvent) -> Optional[str]:
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
- description = event.content.get("tool_description") or "tool"
188
- return f"⏳ {description}"
206
+ return ("⏳", description, call_id)
189
207
  if message_type == "tool_result":
190
- return "✅ tool finished"
208
+ return ("✅", description, call_id)
191
209
  if message_type == "tool_error":
192
- return "❌ tool failed"
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 status message on transports that cannot edit it away.
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": service_command(config, executable),
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 service_command(config, executable))
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)"
@@ -8,7 +8,7 @@ build-backend = "hatchling.build"
8
8
 
9
9
  [project]
10
10
  name = "kolega-code"
11
- version = "0.35.0"
11
+ version = "0.35.1"
12
12
  description = "Multi-agent coding in the terminal"
13
13
  readme = "README.md"
14
14
  license = "BUSL-1.1"
File without changes
File without changes
File without changes
File without changes
File without changes