kolega-code 0.26.0__tar.gz → 0.26.2__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.26.0 → kolega_code-0.26.2}/CHANGELOG.md +61 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/PKG-INFO +91 -106
- kolega_code-0.26.2/README.md +227 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/__init__.py +1 -1
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/__init__.py +1 -1
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/orchestration/__init__.py +4 -3
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/orchestration/executor.py +4 -1
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/orchestration/guide.py +75 -6
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/orchestration/journal.py +66 -19
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/orchestration/runtime.py +222 -32
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/orchestration/types.py +2 -1
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/workflow_tool.py +183 -6
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tools.py +26 -2
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/app.py +4 -4
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/main.py +12 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/app_base.py +1 -1
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/command_handlers.py +3 -12
- {kolega_code-0.26.0 → kolega_code-0.26.2}/pyproject.toml +2 -2
- kolega_code-0.26.0/README.md +0 -242
- {kolega_code-0.26.0 → kolega_code-0.26.2}/.gitignore +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/CONTRIBUTING.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/LICENSE +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/MIGRATION.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/RELEASING.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/LICENSE +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/manifest.json +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/deep-research/SKILL.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/deep-research/references/evidence-and-reporting.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/deep-research/references/gigacode-workflow.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/deep-research/scripts/deep-research.workflow +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/deep-research/scripts/materialize_report.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/docx/LICENSE +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/docx/SKILL.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/docx/references/examples.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/docx/references/limitations.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/docx/references/operations.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/docx/references/quality.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/docx/requirements.txt +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/docx/scripts/docx_tool.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/docx/scripts/smoke_test.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/humanizer/LICENSE +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/humanizer/SKILL.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pdf/LICENSE +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pdf/SKILL.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pdf/references/examples.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pdf/references/limitations.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pdf/references/ocr.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pdf/references/operations.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pdf/references/quality.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pdf/references/redaction.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pdf/requirements-ocr-paddle.txt +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pdf/requirements-ocr-surya.txt +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pdf/requirements.txt +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pdf/scripts/pdf_tool.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pdf/scripts/smoke_test.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pptx/LICENSE +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pptx/SKILL.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pptx/references/examples.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pptx/references/limitations.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pptx/references/operations.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pptx/requirements.txt +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pptx/scripts/pptx_tool.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/pptx/scripts/smoke_test.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/review/SKILL.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/review/references/github-publishing.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/skill-authoring/SKILL.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/skill-authoring/references/review-checklist.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/xlsx/LICENSE +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/xlsx/SKILL.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/xlsx/references/examples.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/xlsx/references/limitations.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/xlsx/references/operations.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/xlsx/references/quality.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/xlsx/requirements.txt +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/xlsx/scripts/smoke_test.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/_bundled_skills/skills/xlsx/scripts/xlsx_tool.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/baseagent.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/browseragent.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/coder.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/common.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/compression.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/context.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/conversation.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/custom_agents.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/edit_protocols.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/errors.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/eval/__init__.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/eval/bridge.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/eval/bundle-requirements.in +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/eval/bundle-requirements.txt +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/eval/env.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/eval/js_kernel.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/eval/kernel.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/eval/prelude.js +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/eval/prelude.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/eval/protocol.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/eval/py_kernel.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/eval/runner.js +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/eval/runner.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/generalagent.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/goal.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/investigationagent.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/model_routing.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/orchestration/accounting.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/orchestration/budget.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/orchestration/context.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/orchestration/errors.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/planningagent.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_dump.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_overrides.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_provider.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/auxiliary/compression/summary.system.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/auxiliary/compression/summary.user.md.j2 +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/auxiliary/terminal/output_summary.system.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/auxiliary/terminal/safety.system.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/auxiliary/tools/think_hard.system.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/extensions/cli/build_questions.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/extensions/cli/current_plan_artifact.md.j2 +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/extensions/cli/planning_questions.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/extensions/cli/scratchpad.md.j2 +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/extensions/cli/shared_task_list.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/extensions/cli/shared_task_list_readonly.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/extensions/cli/worktree_control.md.j2 +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/extensions/skills/catalog.md.j2 +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/system/agents/browser.md.j2 +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/system/agents/coder_cli.md.j2 +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/system/agents/general.md.j2 +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/system/agents/investigation.md.j2 +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/system/agents/planning.md.j2 +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/system/includes/agents_md_instructions.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/system/includes/context_updates.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/system/includes/environment_variables/workspace_env_vars.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/system/includes/frontend_guidance.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/system/includes/starter_templates/expo.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/system/includes/starter_templates/html_website.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/system/includes/starter_templates/mern_stack.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/system/includes/starter_templates/react_vite_shadcdn.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/user_tasks/cli/implement_plan.md.j2 +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompt_templates/user_tasks/cli/init_agents.md.j2 +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/prompts.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/agent_tool.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/base_tool.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/browser_tool.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/build_tool.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/codex_patch.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/edit_preview.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/edit_tool.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/eval_tool.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/glob_tool.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/hashline_v2.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/list_directory_tool.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/lsp_tool.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/memory_tool.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/read_file_tool.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/read_image_tool.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/search_backends/__init__.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/search_backends/base.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/search_backends/duckduckgo.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/search_backends/errors.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/search_backends/firecrawl.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/search_backends/models.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/search_backends/searxng.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/search_backends/tavily.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/search_codebase_tool.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/snapshot_tool.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/streaming_tool.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/terminal_tool.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/think_hard_tool.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/web_fetch/__init__.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/web_fetch/answering.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/web_fetch/documents.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/web_fetch/extractors.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/web_fetch/pipeline.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/web_fetch/retrieval.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/web_fetch_tool.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/tool_backend/web_search_tool.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/utils/commands.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/agent/volatile_context.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/auth/__init__.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/auth/_jwt.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/auth/chatgpt_oauth.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/auth/constants.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/auth/tokens.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/browser_extension/__init__.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/browser_extension/framing.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/browser_extension/installer.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/browser_extension/manager.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/browser_extension/multiplex.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/browser_extension/native_host.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/browser_extension/protocol.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/browser_extension/registry.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/browser_extension/runtime.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/__init__.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/browser_backend.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/clipboard_image.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/config.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/connection.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/cron.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/diagnostics.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/file_index.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/goal.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/loop.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/mentions.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/messages.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/model_catalog.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/model_connection.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/plan_artifacts.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/provider_registry.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/session_event_store.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/session_journal.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/session_store.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/settings.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/skills.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/slash_commands.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/theme.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/__init__.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/agent_runtime.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/changes_screen.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/constants.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/custom_model.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/loop_runtime.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/memory_screen.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/onboarding_screen.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/prompt_flows.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/session_diff.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/settings_panel.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/settings_screen.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/state.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/status_dashboard.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/styles.tcss +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/sub_agent_screen.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/terminal_display.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/transcript.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/tui/widgets.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/cli/updater.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/config.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/events.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/git_env.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/hooks/__init__.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/hooks/backends.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/hooks/config.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/hooks/dispatcher.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/hooks/events.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/hooks/matcher.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/hooks/outcome.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/client.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/exceptions.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/instrumented_client.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/models.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/providers/__init__.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/providers/anthropic.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/providers/base.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/providers/chatgpt_oauth.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/providers/google.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/providers/models.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/providers/openai.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/providers/openai_responses.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/providers/responses_common.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/ratelimit.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/__init__.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/accessors.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/catalog/__init__.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/catalog/anthropic.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/catalog/dashscope.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/catalog/deepseek.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/catalog/fireworks.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/catalog/google.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/catalog/kimi_coding.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/catalog/moonshot.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/catalog/ollama_cloud.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/catalog/openai.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/catalog/openai_chatgpt.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/catalog/openrouter.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/catalog/together.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/catalog/xai.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/catalog/zai.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/openrouter_catalog.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/thinking.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/specs/types.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/timeouts.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/llm/tool_execution_ids.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/local_state.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/mcp/__init__.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/mcp/config.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/mcp/oauth.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/mcp/service.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/mcp/state.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/mcp/tools.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/mcp/transport.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/memory/__init__.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/memory/identity.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/memory/manager.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/memory/manifest.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/memory/markdown.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/memory/models.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/memory/protocol.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/memory/registry.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/models/__init__.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/models/sandbox_terminal_state.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/permissions.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/runtime.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/sandbox/README.md +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/sandbox/__init__.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/sandbox/async_filesystem.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/sandbox/base.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/sandbox/browser.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/sandbox/event_loop.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/sandbox/filesystem.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/sandbox/local.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/sandbox/serializer.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/sandbox/terminal.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/sandbox/utils.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/scratchpad.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/security/__init__.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/security/secrets.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/services/base.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/services/browser.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/services/file_system.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/services/html.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/services/lsp/__init__.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/services/lsp/client.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/services/lsp/config.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/services/lsp/detector.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/services/lsp/diagnostics.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/services/lsp/edits.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/services/lsp/manager.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/services/lsp/registry.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/services/lsp/registry.yaml +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/services/snapshots.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/services/terminal.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/services/terminal_buffer.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/services/workspace_scan.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/session/__init__.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/session/control.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/session/inmemory.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/session/projection.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/session/recording.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/session/runtime.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/session/store.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/testing/__init__.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/testing/store_conformance.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/tools/__init__.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/tools/core.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/tools/definitions.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/tools/registry.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/utils/__init__.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/utils/images.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/web/__init__.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/web/assets/fold.js +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/web/assets/player.css +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/web/assets/player.html +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/web/assets/player.js +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/web/bundle.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/web/hosting.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/web/redaction.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/web/server.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/web/singlefile.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/web/theme_css.py +0 -0
- {kolega_code-0.26.0 → kolega_code-0.26.2}/kolega_code/worktrees.py +0 -0
|
@@ -6,6 +6,67 @@ This project uses GitHub Releases for detailed generated release notes. This fil
|
|
|
6
6
|
|
|
7
7
|
## Unreleased
|
|
8
8
|
|
|
9
|
+
## 0.26.2 - 2026-07-31
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- `kolega-code ask --gigacode` enables gigacode workflow orchestration in
|
|
14
|
+
headless runs, matching the TUI's `/gigacode` toggle: the `run_workflow` and
|
|
15
|
+
`list_workflow_runs` tools are exposed and the authoring guide is injected.
|
|
16
|
+
The setting persists with the session, so `ask --session <id>` resumes with
|
|
17
|
+
gigacode still on.
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
|
|
21
|
+
- Gigacode's concurrent-worker cap is now a flat 8 instead of being derived from
|
|
22
|
+
the host's core count. Workers wait on provider responses rather than CPU, so
|
|
23
|
+
the old formula only made fan-out width vary with the machine — and collapse to
|
|
24
|
+
a single serial worker on a one-CPU host or container.
|
|
25
|
+
|
|
26
|
+
## 0.26.1 - 2026-07-31
|
|
27
|
+
|
|
28
|
+
### Fixed
|
|
29
|
+
|
|
30
|
+
- Gigacode resume now matches cached `agent()` results by call content instead
|
|
31
|
+
of call position, so completed work no longer re-runs after `pipeline()`
|
|
32
|
+
timing drift or script edits that shift call positions (one production resume
|
|
33
|
+
had salvaged only 6 of 91 completed calls). Resumed runs also journal what
|
|
34
|
+
they replayed, making a resume of a resume exact, and a duplicate `agent()`
|
|
35
|
+
label now logs a one-time authoring hint. Existing journals work unchanged.
|
|
36
|
+
- Workflow scripts now have a designated drafting location. The authoring
|
|
37
|
+
guide and `script_path` docs direct models to draft long scripts in the
|
|
38
|
+
session scratchpad instead of the project working tree — generated scripts
|
|
39
|
+
in the repo pollute `git status` and go stale for later sessions. The
|
|
40
|
+
executed script is persisted under the run directory either way.
|
|
41
|
+
- Workflow token budgets are harder to undersize by accident. The
|
|
42
|
+
`token_budget` schema, tool docstrings, and authoring guide now carry
|
|
43
|
+
evidence-based sizing anchors (measured across real runs: review calls
|
|
44
|
+
median ~6k/p90 ~24k output tokens, coder calls median ~20k/p90 ~80k,
|
|
45
|
+
reasoning included — size as review_calls × 15k + coder_calls × 50k,
|
|
46
|
+
doubled, or omit), the run warns in the progress log at 75% and 90% spend,
|
|
47
|
+
and a run
|
|
48
|
+
that dies on budget exhaustion tells the model in its tool result that it is
|
|
49
|
+
resumable — with the exact `resume_from_run_id` call and the count of
|
|
50
|
+
journaled calls that will replay free.
|
|
51
|
+
- Workflow fan-out failures are no longer silent. A `pipeline()` stage or
|
|
52
|
+
`parallel()` thunk that raises still drops its item to `None`, but the drop
|
|
53
|
+
is now reported live in the progress log and recorded in the transcript with
|
|
54
|
+
the exception and the offending script line; the `run_workflow` result warns
|
|
55
|
+
with an aggregate (e.g. `AttributeError at script line 299 (x6)`) and
|
|
56
|
+
`run.json` records `script_exception_drops`. A fan-out that comes back all
|
|
57
|
+
`None` with drops is called out as a likely script bug. Budget and agent-cap
|
|
58
|
+
exhaustion now propagate out of fan-outs and fail the run (cancelling and
|
|
59
|
+
draining the remaining chains) instead of shredding it into `None`s —
|
|
60
|
+
previously a run could report `completed` after a script bug silently
|
|
61
|
+
discarded every result.
|
|
62
|
+
- An interrupted gigacode workflow's run id is now recoverable. Runs are
|
|
63
|
+
stamped with their owning session, cancelling a turn marks the run
|
|
64
|
+
`interrupted` in `run.json`, and the new session-scoped `list_workflow_runs`
|
|
65
|
+
tool lists this session's runs (status, tokens, journaled calls, artifact
|
|
66
|
+
paths) so the agent can resume an interrupted run with `resume_from_run_id`
|
|
67
|
+
instead of re-running it from scratch — previously the run id was only
|
|
68
|
+
returned on normal completion, so an interrupted run's journal was orphaned.
|
|
69
|
+
|
|
9
70
|
## 0.26.0 - 2026-07-31
|
|
10
71
|
|
|
11
72
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: kolega-code
|
|
3
|
-
Version: 0.26.
|
|
3
|
+
Version: 0.26.2
|
|
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/
|
|
@@ -278,7 +278,7 @@ Description-Content-Type: text/markdown
|
|
|
278
278
|
|
|
279
279
|
# Kolega Code
|
|
280
280
|
|
|
281
|
-
**
|
|
281
|
+
**A terminal coding agent where the model writes its own multi-agent workflows.**
|
|
282
282
|
|
|
283
283
|
[](https://pypi.org/project/kolega-code/)
|
|
284
284
|
[](https://pypi.org/project/kolega-code/)
|
|
@@ -288,67 +288,73 @@ Description-Content-Type: text/markdown
|
|
|
288
288
|
[](https://kolega-ai.github.io/kolega-code/)
|
|
289
289
|
[](CHANGELOG.md)
|
|
290
290
|
|
|
291
|
-
Kolega Code is a local-first terminal coding agent
|
|
292
|
-
for one loop
|
|
293
|
-
|
|
294
|
-
settings, permissions, and credentials on your machine.
|
|
291
|
+
Kolega Code is a local-first terminal coding agent. For work that is too broad
|
|
292
|
+
for one agent loop, its **Gigacode** engine has the model write a Python program
|
|
293
|
+
that orchestrates multiple sub-agents. The runtime then executes that program.
|
|
295
294
|
|
|
296
295
|

|
|
297
296
|
|
|
298
|
-
##
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
-
|
|
297
|
+
## Gigacode: model-authored orchestration
|
|
298
|
+
|
|
299
|
+
For a repo-wide review, a migration, or a plan with independent workstreams, the
|
|
300
|
+
model writes an orchestration program instead of delegating workers one at a
|
|
301
|
+
time. The program can combine parallel phases, pipelines, adversarial
|
|
302
|
+
verification, judge panels, and synthesis gates to fit the task. The runtime
|
|
303
|
+
saves the script so it can be inspected and run again.
|
|
304
|
+
|
|
305
|
+
Claude Code uses the same model-authored approach for its dynamic workflows
|
|
306
|
+
(ultracode). Kolega Code provides an open, provider-agnostic implementation
|
|
307
|
+
whose runtime source is available in this repository.
|
|
308
|
+
|
|
309
|
+
The runtime journals each completed agent call to disk. Resume is content-keyed
|
|
310
|
+
rather than positional: when you use `resume_from_run_id`, calls with unchanged
|
|
311
|
+
semantic inputs replay from the journal at zero token cost. This still works if
|
|
312
|
+
the script was edited or reordered, and it works across sessions and process
|
|
313
|
+
restarts.
|
|
314
|
+
|
|
315
|
+
Read [how gigacode works](how-gigacode-works.md) for the architecture, or an
|
|
316
|
+
[unedited model-authored workflow](examples/parallel-code-review.py) with its
|
|
317
|
+
full provenance and execution record.
|
|
318
|
+
|
|
319
|
+
## How it works
|
|
320
|
+
|
|
321
|
+
The model investigates your repo, then writes a Python program against a small
|
|
322
|
+
runtime API (`agent`, `parallel`, `pipeline`, `phase`, `budget`). The runtime
|
|
323
|
+
enforces concurrency caps, an agent-count backstop, and token-budget accounting.
|
|
324
|
+
It dispatches typed sub-agents, including read-only investigators, coders, and
|
|
325
|
+
browser agents, whose activity streams into the TUI's sub-agent inspector.
|
|
326
|
+
|
|
327
|
+
As the run progresses, the runtime writes the script, per-call results,
|
|
328
|
+
transcripts, and final result to disk. An interrupted or budget-capped run keeps
|
|
329
|
+
its journal and can be resumed, with unchanged calls replaying free. The
|
|
330
|
+
mechanics, guarantees, and limitations are documented in
|
|
331
|
+
[how-gigacode-works.md](how-gigacode-works.md).
|
|
332
|
+
|
|
333
|
+
## The rest of the agent
|
|
334
|
+
|
|
335
|
+
Gigacode is off by default. Enable it with `/gigacode on`. For focused changes,
|
|
336
|
+
use Kolega Code as an ordinary terminal coding agent:
|
|
337
|
+
|
|
338
|
+
- **Plan/Build modes:** read-only Plan mode for investigation and a reviewable
|
|
339
|
+
task list, Build mode to implement (`Shift+Tab` to switch). In Plan mode,
|
|
340
|
+
workflow sub-agents are forced read-only too.
|
|
341
|
+
- **Repo tools:** read and search code, create files, apply precise edits, and
|
|
342
|
+
inspect session changes/diffs.
|
|
343
|
+
- **Terminal execution:** run shell commands with streamed output and
|
|
344
|
+
project-level permission controls.
|
|
345
|
+
- **Web search and browsing:** DuckDuckGo by default with no key; Firecrawl,
|
|
346
|
+
Tavily, and SearXNG configurable; direct URL fetch; a Playwright-powered
|
|
347
|
+
browser agent for interactive sites.
|
|
348
|
+
- **MCP servers:** connect `streamable_http`, `sse`, and `stdio` MCP servers
|
|
342
349
|
(including OAuth-enabled HTTP servers) as permission-gated tools.
|
|
343
|
-
- **
|
|
344
|
-
|
|
345
|
-
- **
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
- **
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
settings stay on your machine with restrictive permissions where applicable.
|
|
350
|
+
- **Interactive or scriptable:** Textual TUI with queued follow-ups, one-shot
|
|
351
|
+
`kolega-code ask` with JSON output, session list/export/resume, `doctor`.
|
|
352
|
+
- **Extensibility:** agent skills, project prompt-template overrides
|
|
353
|
+
([docs](https://kolega-ai.github.io/kolega-code/configuration/prompt-overrides/)),
|
|
354
|
+
lifecycle hooks, persistent project permission rules.
|
|
355
|
+
- **Local-first state:** sessions, settings, permissions, OAuth tokens, and
|
|
356
|
+
API-key settings stay on your machine with restrictive permissions where
|
|
357
|
+
applicable.
|
|
352
358
|
|
|
353
359
|
## Quick start
|
|
354
360
|
|
|
@@ -378,9 +384,9 @@ kolega-code .
|
|
|
378
384
|
```
|
|
379
385
|
|
|
380
386
|
**3. Connect a model.** Complete the first-run wizard with ChatGPT sign-in or an
|
|
381
|
-
API key. Later, open
|
|
382
|
-
|
|
383
|
-
|
|
387
|
+
API key. Later, open Settings from the sidebar or with `/settings`. Use
|
|
388
|
+
`Shift+Tab` to switch between **Plan** and **Build** mode, or run `/gigacode on`
|
|
389
|
+
when a task is broad enough for fan-out.
|
|
384
390
|
|
|
385
391
|
Resume a previous conversation:
|
|
386
392
|
|
|
@@ -396,7 +402,7 @@ kolega-code . --resume <id> # a specific Resume ID from `sessions list`
|
|
|
396
402
|
| **Interactive TUI** | `kolega-code .` | Day-to-day development, exploration, orchestration |
|
|
397
403
|
| **One-shot** | `kolega-code ask "…"` | Scripting, automation, quick questions, CI |
|
|
398
404
|
|
|
399
|
-
|
|
405
|
+
Helper commands for sessions and setup:
|
|
400
406
|
|
|
401
407
|
```bash
|
|
402
408
|
kolega-code ask "summarize this repository" --project .
|
|
@@ -404,10 +410,14 @@ kolega-code sessions list --project .
|
|
|
404
410
|
kolega-code doctor --project .
|
|
405
411
|
```
|
|
406
412
|
|
|
407
|
-
##
|
|
413
|
+
## Models and routing
|
|
408
414
|
|
|
409
|
-
Kolega Code
|
|
410
|
-
|
|
415
|
+
Kolega Code can route models by role. You can use a strong long-context model
|
|
416
|
+
for the main loop, a faster model for utility calls, and a dedicated model for
|
|
417
|
+
extended thinking. Per-agent-role overrides are available for planning,
|
|
418
|
+
building, investigation, general, and browser agents. A Gigacode workflow can
|
|
419
|
+
also pin cheaper models to individual calls with `model_override`, allowing one
|
|
420
|
+
model to write the orchestration while cheaper models run its agents.
|
|
411
421
|
|
|
412
422
|
Supported model providers:
|
|
413
423
|
|
|
@@ -428,38 +438,21 @@ Supported model providers:
|
|
|
428
438
|
- Ollama Cloud
|
|
429
439
|
- local Llama
|
|
430
440
|
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
-
|
|
435
|
-
- Tavily
|
|
436
|
-
- SearXNG — self-hosted option
|
|
441
|
+
With a paid **ChatGPT** plan (Plus, Pro, or Business), `/login chatgpt` runs
|
|
442
|
+
OpenAI models without a separate API key; tokens are stored locally (chmod `600`)
|
|
443
|
+
and refreshed automatically. See
|
|
444
|
+
[Sign in with ChatGPT](https://kolega-ai.github.io/kolega-code/configuration/sign-in-with-chatgpt/).
|
|
437
445
|
|
|
446
|
+
Web search backends include DuckDuckGo (the default, with no key), Firecrawl,
|
|
447
|
+
Tavily, and self-hosted SearXNG. Choose one in Settings or with
|
|
448
|
+
`KOLEGA_CODE_WEB_SEARCH_BACKEND`.
|
|
438
449
|
See [Providers & Models](https://kolega-ai.github.io/kolega-code/configuration/providers-and-models/)
|
|
439
450
|
for model IDs, role configuration, API-key variables, and thinking-effort options.
|
|
440
451
|
|
|
441
|
-
## Model routing
|
|
442
|
-
|
|
443
|
-
Kolega Code can assign different models to different operational roles: a strong
|
|
444
|
-
long-context model for the main coding loop, a faster model for utility calls, and
|
|
445
|
-
a dedicated model for extended thinking. You can also override models per agent
|
|
446
|
-
role — planning, building, investigation, general, and browser — so wide workflows
|
|
447
|
-
can use cheaper models where they fit and stronger models where they matter.
|
|
448
|
-
|
|
449
|
-
## Sign in with ChatGPT
|
|
450
|
-
|
|
451
|
-
If you have a paid **ChatGPT** plan (Plus, Pro, or Business), you can use it to run
|
|
452
|
-
OpenAI models instead of a separate API key. Run `/login chatgpt` in the TUI,
|
|
453
|
-
complete the browser sign-in, and Kolega Code switches to the **OpenAI (ChatGPT
|
|
454
|
-
subscription)** provider (default `gpt-5.6-sol`). Tokens are stored locally (chmod
|
|
455
|
-
`600`) and refreshed automatically; `/logout chatgpt` removes them. See
|
|
456
|
-
[Sign in with ChatGPT](https://kolega-ai.github.io/kolega-code/configuration/sign-in-with-chatgpt/).
|
|
457
|
-
|
|
458
452
|
## Configuration
|
|
459
453
|
|
|
460
|
-
Set
|
|
461
|
-
|
|
462
|
-
non-interactive use:
|
|
454
|
+
Set provider, model, and API keys from onboarding or the Settings editor, or via
|
|
455
|
+
environment variables and flags for non-interactive use:
|
|
463
456
|
|
|
464
457
|
```bash
|
|
465
458
|
export KOLEGA_CODE_PROVIDER=deepseek
|
|
@@ -467,24 +460,12 @@ export DEEPSEEK_API_KEY=...
|
|
|
467
460
|
kolega-code ask "summarize this repository" --project . --provider deepseek --model deepseek-v4-pro
|
|
468
461
|
```
|
|
469
462
|
|
|
470
|
-
API key variables only provide credentials
|
|
471
|
-
save
|
|
463
|
+
API key variables only provide credentials. Pick a provider and model explicitly
|
|
464
|
+
or save them in Settings. Local session state lives under your platform's state
|
|
472
465
|
directory unless `KOLEGA_CODE_STATE_DIR` is set. See the
|
|
473
466
|
[Configuration docs](https://kolega-ai.github.io/kolega-code/configuration/settings-and-api-keys/)
|
|
474
467
|
for the full story.
|
|
475
468
|
|
|
476
|
-
The `web_search` tool uses DuckDuckGo by default without a key. To choose another
|
|
477
|
-
backend, set it in **Settings** or export `KOLEGA_CODE_WEB_SEARCH_BACKEND` as
|
|
478
|
-
`firecrawl`, `tavily`, or `searxng`; use `FIRECRAWL_API_KEY`, `TAVILY_API_KEY`, or
|
|
479
|
-
`SEARXNG_BASE_URL` as needed.
|
|
480
|
-
|
|
481
|
-
Projects can override Kolega Code's base prompts with uppercase Markdown templates
|
|
482
|
-
in `.kolega/prompts/`. Generate editable starters with Jinja replacement tags using
|
|
483
|
-
`/prompts dump` in the TUI or `kolega-code prompts dump --project .` in a terminal.
|
|
484
|
-
To dump only selected starters, pass prompt names such as `coder`, `planning`, or
|
|
485
|
-
`compaction` (filename aliases like `CODER.md` work too). Validate existing
|
|
486
|
-
overrides with `/prompts validate` or `kolega-code prompts validate --project .`.
|
|
487
|
-
|
|
488
469
|
## Requirements
|
|
489
470
|
|
|
490
471
|
- **Python 3.11+**
|
|
@@ -493,8 +474,12 @@ overrides with `/prompts validate` or `kolega-code prompts validate --project .`
|
|
|
493
474
|
|
|
494
475
|
## Documentation
|
|
495
476
|
|
|
477
|
+
This repo includes the [Gigacode architecture document](how-gigacode-works.md)
|
|
478
|
+
and an [unedited model-authored example workflow](examples/parallel-code-review.py).
|
|
479
|
+
|
|
496
480
|
Full documentation lives at **[kolega-ai.github.io/kolega-code](https://kolega-ai.github.io/kolega-code/)**:
|
|
497
481
|
|
|
482
|
+
- [Gigacode user guide](https://kolega-ai.github.io/kolega-code/gigacode/)
|
|
498
483
|
- [Quick Start](https://kolega-ai.github.io/kolega-code/getting-started/quick-start/)
|
|
499
484
|
- [CLI overview](https://kolega-ai.github.io/kolega-code/cli/overview/)
|
|
500
485
|
- [How it works & concepts](https://kolega-ai.github.io/kolega-code/concepts/how-it-works/)
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
# Kolega Code
|
|
2
|
+
|
|
3
|
+
**A terminal coding agent where the model writes its own multi-agent workflows.**
|
|
4
|
+
|
|
5
|
+
[](https://pypi.org/project/kolega-code/)
|
|
6
|
+
[](https://pypi.org/project/kolega-code/)
|
|
7
|
+
[](LICENSE)
|
|
8
|
+
[](https://github.com/kolega-ai/kolega-code/actions/workflows/ci.yml)
|
|
9
|
+
[](https://github.com/kolega-ai/kolega-code/actions/workflows/ci.yml)
|
|
10
|
+
[](https://kolega-ai.github.io/kolega-code/)
|
|
11
|
+
[](CHANGELOG.md)
|
|
12
|
+
|
|
13
|
+
Kolega Code is a local-first terminal coding agent. For work that is too broad
|
|
14
|
+
for one agent loop, its **Gigacode** engine has the model write a Python program
|
|
15
|
+
that orchestrates multiple sub-agents. The runtime then executes that program.
|
|
16
|
+
|
|
17
|
+

|
|
18
|
+
|
|
19
|
+
## Gigacode: model-authored orchestration
|
|
20
|
+
|
|
21
|
+
For a repo-wide review, a migration, or a plan with independent workstreams, the
|
|
22
|
+
model writes an orchestration program instead of delegating workers one at a
|
|
23
|
+
time. The program can combine parallel phases, pipelines, adversarial
|
|
24
|
+
verification, judge panels, and synthesis gates to fit the task. The runtime
|
|
25
|
+
saves the script so it can be inspected and run again.
|
|
26
|
+
|
|
27
|
+
Claude Code uses the same model-authored approach for its dynamic workflows
|
|
28
|
+
(ultracode). Kolega Code provides an open, provider-agnostic implementation
|
|
29
|
+
whose runtime source is available in this repository.
|
|
30
|
+
|
|
31
|
+
The runtime journals each completed agent call to disk. Resume is content-keyed
|
|
32
|
+
rather than positional: when you use `resume_from_run_id`, calls with unchanged
|
|
33
|
+
semantic inputs replay from the journal at zero token cost. This still works if
|
|
34
|
+
the script was edited or reordered, and it works across sessions and process
|
|
35
|
+
restarts.
|
|
36
|
+
|
|
37
|
+
Read [how gigacode works](how-gigacode-works.md) for the architecture, or an
|
|
38
|
+
[unedited model-authored workflow](examples/parallel-code-review.py) with its
|
|
39
|
+
full provenance and execution record.
|
|
40
|
+
|
|
41
|
+
## How it works
|
|
42
|
+
|
|
43
|
+
The model investigates your repo, then writes a Python program against a small
|
|
44
|
+
runtime API (`agent`, `parallel`, `pipeline`, `phase`, `budget`). The runtime
|
|
45
|
+
enforces concurrency caps, an agent-count backstop, and token-budget accounting.
|
|
46
|
+
It dispatches typed sub-agents, including read-only investigators, coders, and
|
|
47
|
+
browser agents, whose activity streams into the TUI's sub-agent inspector.
|
|
48
|
+
|
|
49
|
+
As the run progresses, the runtime writes the script, per-call results,
|
|
50
|
+
transcripts, and final result to disk. An interrupted or budget-capped run keeps
|
|
51
|
+
its journal and can be resumed, with unchanged calls replaying free. The
|
|
52
|
+
mechanics, guarantees, and limitations are documented in
|
|
53
|
+
[how-gigacode-works.md](how-gigacode-works.md).
|
|
54
|
+
|
|
55
|
+
## The rest of the agent
|
|
56
|
+
|
|
57
|
+
Gigacode is off by default. Enable it with `/gigacode on`. For focused changes,
|
|
58
|
+
use Kolega Code as an ordinary terminal coding agent:
|
|
59
|
+
|
|
60
|
+
- **Plan/Build modes:** read-only Plan mode for investigation and a reviewable
|
|
61
|
+
task list, Build mode to implement (`Shift+Tab` to switch). In Plan mode,
|
|
62
|
+
workflow sub-agents are forced read-only too.
|
|
63
|
+
- **Repo tools:** read and search code, create files, apply precise edits, and
|
|
64
|
+
inspect session changes/diffs.
|
|
65
|
+
- **Terminal execution:** run shell commands with streamed output and
|
|
66
|
+
project-level permission controls.
|
|
67
|
+
- **Web search and browsing:** DuckDuckGo by default with no key; Firecrawl,
|
|
68
|
+
Tavily, and SearXNG configurable; direct URL fetch; a Playwright-powered
|
|
69
|
+
browser agent for interactive sites.
|
|
70
|
+
- **MCP servers:** connect `streamable_http`, `sse`, and `stdio` MCP servers
|
|
71
|
+
(including OAuth-enabled HTTP servers) as permission-gated tools.
|
|
72
|
+
- **Interactive or scriptable:** Textual TUI with queued follow-ups, one-shot
|
|
73
|
+
`kolega-code ask` with JSON output, session list/export/resume, `doctor`.
|
|
74
|
+
- **Extensibility:** agent skills, project prompt-template overrides
|
|
75
|
+
([docs](https://kolega-ai.github.io/kolega-code/configuration/prompt-overrides/)),
|
|
76
|
+
lifecycle hooks, persistent project permission rules.
|
|
77
|
+
- **Local-first state:** sessions, settings, permissions, OAuth tokens, and
|
|
78
|
+
API-key settings stay on your machine with restrictive permissions where
|
|
79
|
+
applicable.
|
|
80
|
+
|
|
81
|
+
## Quick start
|
|
82
|
+
|
|
83
|
+
**1. Install** with the script:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
curl -fsSL https://kolega.dev/install-kolega-code.sh | sh
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Or with [uv](https://docs.astral.sh/uv/) (or `pip`):
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
uv tool install kolega-code
|
|
93
|
+
# or: pip install kolega-code
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Verify the install:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
kolega-code --version
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**2. Start a session** in your project:
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
kolega-code .
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
**3. Connect a model.** Complete the first-run wizard with ChatGPT sign-in or an
|
|
109
|
+
API key. Later, open Settings from the sidebar or with `/settings`. Use
|
|
110
|
+
`Shift+Tab` to switch between **Plan** and **Build** mode, or run `/gigacode on`
|
|
111
|
+
when a task is broad enough for fan-out.
|
|
112
|
+
|
|
113
|
+
Resume a previous conversation:
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
kolega-code . --resume # latest session
|
|
117
|
+
kolega-code . --resume <id> # a specific Resume ID from `sessions list`
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Two ways to use it
|
|
121
|
+
|
|
122
|
+
| Mode | Command | Best for |
|
|
123
|
+
| --- | --- | --- |
|
|
124
|
+
| **Interactive TUI** | `kolega-code .` | Day-to-day development, exploration, orchestration |
|
|
125
|
+
| **One-shot** | `kolega-code ask "…"` | Scripting, automation, quick questions, CI |
|
|
126
|
+
|
|
127
|
+
Helper commands for sessions and setup:
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
kolega-code ask "summarize this repository" --project .
|
|
131
|
+
kolega-code sessions list --project .
|
|
132
|
+
kolega-code doctor --project .
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## Models and routing
|
|
136
|
+
|
|
137
|
+
Kolega Code can route models by role. You can use a strong long-context model
|
|
138
|
+
for the main loop, a faster model for utility calls, and a dedicated model for
|
|
139
|
+
extended thinking. Per-agent-role overrides are available for planning,
|
|
140
|
+
building, investigation, general, and browser agents. A Gigacode workflow can
|
|
141
|
+
also pin cheaper models to individual calls with `model_override`, allowing one
|
|
142
|
+
model to write the orchestration while cheaper models run its agents.
|
|
143
|
+
|
|
144
|
+
Supported model providers:
|
|
145
|
+
|
|
146
|
+
- Anthropic
|
|
147
|
+
- OpenAI API
|
|
148
|
+
- OpenAI via ChatGPT subscription sign-in
|
|
149
|
+
- Google
|
|
150
|
+
- Groq
|
|
151
|
+
- Together.ai
|
|
152
|
+
- Fireworks.ai
|
|
153
|
+
- xAI / Grok
|
|
154
|
+
- DashScope / Qwen
|
|
155
|
+
- OpenRouter (gateway to 250+ tool-capable models)
|
|
156
|
+
- Moonshot / Kimi
|
|
157
|
+
- DeepSeek
|
|
158
|
+
- Z.AI / GLM Coding Plan
|
|
159
|
+
- Kimi Coding Plan
|
|
160
|
+
- Ollama Cloud
|
|
161
|
+
- local Llama
|
|
162
|
+
|
|
163
|
+
With a paid **ChatGPT** plan (Plus, Pro, or Business), `/login chatgpt` runs
|
|
164
|
+
OpenAI models without a separate API key; tokens are stored locally (chmod `600`)
|
|
165
|
+
and refreshed automatically. See
|
|
166
|
+
[Sign in with ChatGPT](https://kolega-ai.github.io/kolega-code/configuration/sign-in-with-chatgpt/).
|
|
167
|
+
|
|
168
|
+
Web search backends include DuckDuckGo (the default, with no key), Firecrawl,
|
|
169
|
+
Tavily, and self-hosted SearXNG. Choose one in Settings or with
|
|
170
|
+
`KOLEGA_CODE_WEB_SEARCH_BACKEND`.
|
|
171
|
+
See [Providers & Models](https://kolega-ai.github.io/kolega-code/configuration/providers-and-models/)
|
|
172
|
+
for model IDs, role configuration, API-key variables, and thinking-effort options.
|
|
173
|
+
|
|
174
|
+
## Configuration
|
|
175
|
+
|
|
176
|
+
Set provider, model, and API keys from onboarding or the Settings editor, or via
|
|
177
|
+
environment variables and flags for non-interactive use:
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
export KOLEGA_CODE_PROVIDER=deepseek
|
|
181
|
+
export DEEPSEEK_API_KEY=...
|
|
182
|
+
kolega-code ask "summarize this repository" --project . --provider deepseek --model deepseek-v4-pro
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
API key variables only provide credentials. Pick a provider and model explicitly
|
|
186
|
+
or save them in Settings. Local session state lives under your platform's state
|
|
187
|
+
directory unless `KOLEGA_CODE_STATE_DIR` is set. See the
|
|
188
|
+
[Configuration docs](https://kolega-ai.github.io/kolega-code/configuration/settings-and-api-keys/)
|
|
189
|
+
for the full story.
|
|
190
|
+
|
|
191
|
+
## Requirements
|
|
192
|
+
|
|
193
|
+
- **Python 3.11+**
|
|
194
|
+
- An **API key**, ChatGPT sign-in, or local model for at least one supported model provider
|
|
195
|
+
- A terminal that supports a modern TUI (most do)
|
|
196
|
+
|
|
197
|
+
## Documentation
|
|
198
|
+
|
|
199
|
+
This repo includes the [Gigacode architecture document](how-gigacode-works.md)
|
|
200
|
+
and an [unedited model-authored example workflow](examples/parallel-code-review.py).
|
|
201
|
+
|
|
202
|
+
Full documentation lives at **[kolega-ai.github.io/kolega-code](https://kolega-ai.github.io/kolega-code/)**:
|
|
203
|
+
|
|
204
|
+
- [Gigacode user guide](https://kolega-ai.github.io/kolega-code/gigacode/)
|
|
205
|
+
- [Quick Start](https://kolega-ai.github.io/kolega-code/getting-started/quick-start/)
|
|
206
|
+
- [CLI overview](https://kolega-ai.github.io/kolega-code/cli/overview/)
|
|
207
|
+
- [How it works & concepts](https://kolega-ai.github.io/kolega-code/concepts/how-it-works/)
|
|
208
|
+
- [Configuration](https://kolega-ai.github.io/kolega-code/configuration/settings-and-api-keys/)
|
|
209
|
+
|
|
210
|
+
## Project resources
|
|
211
|
+
|
|
212
|
+
- [Documentation](https://kolega-ai.github.io/kolega-code/)
|
|
213
|
+
- [Releases](https://github.com/kolega-ai/kolega-code/releases)
|
|
214
|
+
- [Changelog](CHANGELOG.md)
|
|
215
|
+
- [Contributing](CONTRIBUTING.md)
|
|
216
|
+
- [Security policy](SECURITY.md)
|
|
217
|
+
- [Issue tracker](https://github.com/kolega-ai/kolega-code/issues)
|
|
218
|
+
|
|
219
|
+
## Contributing
|
|
220
|
+
|
|
221
|
+
Contributions are welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for local setup,
|
|
222
|
+
running the test suite, and building the docs site. Please report security issues
|
|
223
|
+
privately per [SECURITY.md](SECURITY.md).
|
|
224
|
+
|
|
225
|
+
## License
|
|
226
|
+
|
|
227
|
+
Released under the [Apache License 2.0](LICENSE).
|
|
@@ -19,8 +19,8 @@ from .errors import (
|
|
|
19
19
|
WorkflowScriptError,
|
|
20
20
|
)
|
|
21
21
|
from .executor import DEFAULT_MAX_AGENT_DEPTH, MAX_AGENT_DEPTH, extract_meta, run_script, safe_builtins
|
|
22
|
-
from .journal import RunJournal, saved_workflows_dir, workflows_root
|
|
23
|
-
from .runtime import DEFAULT_AGENT_CAP, MAX_FANOUT, WorkflowRuntime
|
|
22
|
+
from .journal import ResumeCache, RunJournal, saved_workflows_dir, workflows_root
|
|
23
|
+
from .runtime import DEFAULT_AGENT_CAP, DEFAULT_WORKFLOW_CONCURRENCY, MAX_FANOUT, WorkflowRuntime
|
|
24
24
|
from .types import AgentRunResult, AgentRunSpec, DispatchFn, EmitFn
|
|
25
25
|
|
|
26
26
|
__all__ = [
|
|
@@ -34,11 +34,12 @@ __all__ = [
|
|
|
34
34
|
"safe_builtins",
|
|
35
35
|
"DEFAULT_MAX_AGENT_DEPTH",
|
|
36
36
|
"MAX_AGENT_DEPTH",
|
|
37
|
+
"ResumeCache",
|
|
37
38
|
"RunJournal",
|
|
38
39
|
"workflows_root",
|
|
39
40
|
"saved_workflows_dir",
|
|
40
41
|
"WorkflowRuntime",
|
|
41
|
-
"
|
|
42
|
+
"DEFAULT_WORKFLOW_CONCURRENCY",
|
|
42
43
|
"MAX_FANOUT",
|
|
43
44
|
"DEFAULT_AGENT_CAP",
|
|
44
45
|
"AgentRunSpec",
|
|
@@ -20,6 +20,9 @@ from typing import Any, Dict
|
|
|
20
20
|
from .errors import WorkflowScriptError
|
|
21
21
|
|
|
22
22
|
WRAPPER_NAME = "__workflow_main__"
|
|
23
|
+
# Filename the script is compiled under; traceback frames with this filename
|
|
24
|
+
# carry line numbers into the authored source (AST wrapping preserves them).
|
|
25
|
+
SCRIPT_FILENAME = "<workflow>"
|
|
23
26
|
DEFAULT_MAX_AGENT_DEPTH = 1
|
|
24
27
|
MAX_AGENT_DEPTH = 2
|
|
25
28
|
|
|
@@ -173,7 +176,7 @@ async def run_script(source: str, namespace: Dict[str, Any]) -> Any:
|
|
|
173
176
|
"""
|
|
174
177
|
try:
|
|
175
178
|
module = _wrap_as_coroutine(source)
|
|
176
|
-
code = compile(module,
|
|
179
|
+
code = compile(module, SCRIPT_FILENAME, "exec")
|
|
177
180
|
except SyntaxError as exc:
|
|
178
181
|
raise WorkflowScriptError(f"workflow script has a syntax error: {exc}") from exc
|
|
179
182
|
|