shotgun-sh 0.2.10.dev9__tar.gz → 0.2.10.dev11__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.
Potentially problematic release.
This version of shotgun-sh might be problematic. Click here for more details.
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/PKG-INFO +1 -1
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/pyproject.toml +1 -1
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/config/provider.py +28 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/tui/screens/chat.py +107 -48
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/tui/screens/model_picker.py +3 -2
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/tui/screens/pipx_migration.py +1 -1
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/.gitignore +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/LICENSE +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/README.md +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/README_PYPI.md +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/hatch_build.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/__init__.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/__init__.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/agent_manager.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/common.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/config/__init__.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/config/constants.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/config/manager.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/config/models.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/conversation_history.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/conversation_manager.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/export.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/history/__init__.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/history/compaction.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/history/constants.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/history/context_extraction.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/history/history_building.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/history/history_processors.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/history/message_utils.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/history/token_counting/__init__.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/history/token_counting/anthropic.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/history/token_counting/base.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/history/token_counting/openai.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/history/token_counting/sentencepiece_counter.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/history/token_counting/tokenizer_cache.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/history/token_counting/utils.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/history/token_estimation.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/llm.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/messages.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/models.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/plan.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/research.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/specify.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/tasks.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/tools/__init__.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/tools/codebase/__init__.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/tools/codebase/codebase_shell.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/tools/codebase/directory_lister.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/tools/codebase/file_read.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/tools/codebase/models.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/tools/codebase/query_graph.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/tools/codebase/retrieve_code.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/tools/file_management.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/tools/web_search/__init__.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/tools/web_search/anthropic.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/tools/web_search/gemini.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/tools/web_search/openai.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/tools/web_search/utils.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/usage_manager.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/api_endpoints.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/build_constants.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/cli/__init__.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/cli/codebase/__init__.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/cli/codebase/commands.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/cli/codebase/models.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/cli/config.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/cli/export.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/cli/feedback.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/cli/models.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/cli/plan.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/cli/research.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/cli/specify.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/cli/tasks.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/cli/update.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/cli/utils.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/codebase/__init__.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/codebase/core/__init__.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/codebase/core/change_detector.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/codebase/core/code_retrieval.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/codebase/core/cypher_models.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/codebase/core/ingestor.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/codebase/core/language_config.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/codebase/core/manager.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/codebase/core/nl_query.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/codebase/core/parser_loader.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/codebase/models.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/codebase/service.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/llm_proxy/__init__.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/llm_proxy/clients.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/llm_proxy/constants.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/logging_config.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/main.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/posthog_telemetry.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/prompts/__init__.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/prompts/agents/__init__.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/prompts/agents/export.j2 +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/prompts/agents/partials/codebase_understanding.j2 +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/prompts/agents/partials/common_agent_system_prompt.j2 +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/prompts/agents/partials/content_formatting.j2 +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/prompts/agents/partials/interactive_mode.j2 +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/prompts/agents/plan.j2 +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/prompts/agents/research.j2 +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/prompts/agents/specify.j2 +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/prompts/agents/state/codebase/codebase_graphs_available.j2 +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/prompts/agents/state/system_state.j2 +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/prompts/agents/tasks.j2 +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/prompts/codebase/__init__.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/prompts/codebase/cypher_query_patterns.j2 +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/prompts/codebase/cypher_system.j2 +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/prompts/codebase/enhanced_query_context.j2 +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/prompts/codebase/partials/cypher_rules.j2 +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/prompts/codebase/partials/graph_schema.j2 +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/prompts/codebase/partials/temporal_context.j2 +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/prompts/history/__init__.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/prompts/history/incremental_summarization.j2 +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/prompts/history/summarization.j2 +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/prompts/loader.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/prompts/tools/web_search.j2 +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/py.typed +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/sdk/__init__.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/sdk/codebase.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/sdk/exceptions.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/sdk/models.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/sdk/services.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/sentry_telemetry.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/shotgun_web/__init__.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/shotgun_web/client.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/shotgun_web/constants.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/shotgun_web/models.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/telemetry.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/tui/__init__.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/tui/app.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/tui/commands/__init__.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/tui/components/prompt_input.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/tui/components/spinner.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/tui/components/splash.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/tui/components/vertical_tail.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/tui/filtered_codebase_service.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/tui/screens/chat.tcss +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/tui/screens/chat_screen/__init__.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/tui/screens/chat_screen/command_providers.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/tui/screens/chat_screen/hint_message.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/tui/screens/chat_screen/history.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/tui/screens/directory_setup.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/tui/screens/feedback.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/tui/screens/provider_config.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/tui/screens/shotgun_auth.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/tui/screens/splash.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/tui/screens/welcome.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/tui/styles.tcss +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/tui/utils/__init__.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/tui/utils/mode_progress.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/utils/__init__.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/utils/datetime_utils.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/utils/env_utils.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/utils/file_system_utils.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/utils/source_detection.py +0 -0
- {shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/utils/update_checker.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: shotgun-sh
|
|
3
|
-
Version: 0.2.10.
|
|
3
|
+
Version: 0.2.10.dev11
|
|
4
4
|
Summary: AI-powered research, planning, and task management CLI tool
|
|
5
5
|
Project-URL: Homepage, https://shotgun.sh/
|
|
6
6
|
Project-URL: Repository, https://github.com/shotgun-sh/shotgun
|
|
@@ -32,6 +32,34 @@ logger = get_logger(__name__)
|
|
|
32
32
|
_model_cache: dict[tuple[ProviderType, KeyProvider, ModelName, str], Model] = {}
|
|
33
33
|
|
|
34
34
|
|
|
35
|
+
def get_default_model_for_provider(config: ShotgunConfig) -> ModelName:
|
|
36
|
+
"""Get the default model based on which provider/account is configured.
|
|
37
|
+
|
|
38
|
+
Checks API keys in priority order and returns appropriate default model.
|
|
39
|
+
Treats Shotgun Account as a provider context.
|
|
40
|
+
|
|
41
|
+
Args:
|
|
42
|
+
config: Shotgun configuration containing API keys
|
|
43
|
+
|
|
44
|
+
Returns:
|
|
45
|
+
Default ModelName for the configured provider/account
|
|
46
|
+
"""
|
|
47
|
+
# Priority 1: Shotgun Account
|
|
48
|
+
if _get_api_key(config.shotgun.api_key):
|
|
49
|
+
return ModelName.CLAUDE_HAIKU_4_5
|
|
50
|
+
|
|
51
|
+
# Priority 2: Individual provider keys
|
|
52
|
+
if _get_api_key(config.anthropic.api_key):
|
|
53
|
+
return ModelName.CLAUDE_HAIKU_4_5
|
|
54
|
+
if _get_api_key(config.openai.api_key):
|
|
55
|
+
return ModelName.GPT_5
|
|
56
|
+
if _get_api_key(config.google.api_key):
|
|
57
|
+
return ModelName.GEMINI_2_5_PRO
|
|
58
|
+
|
|
59
|
+
# Fallback: system-wide default
|
|
60
|
+
return ModelName.CLAUDE_HAIKU_4_5
|
|
61
|
+
|
|
62
|
+
|
|
35
63
|
def get_or_create_model(
|
|
36
64
|
provider: ProviderType,
|
|
37
65
|
key_provider: "KeyProvider",
|
|
@@ -39,7 +39,10 @@ from shotgun.agents.models import (
|
|
|
39
39
|
AgentType,
|
|
40
40
|
FileOperationTracker,
|
|
41
41
|
)
|
|
42
|
-
from shotgun.codebase.core.manager import
|
|
42
|
+
from shotgun.codebase.core.manager import (
|
|
43
|
+
CodebaseAlreadyIndexedError,
|
|
44
|
+
CodebaseGraphManager,
|
|
45
|
+
)
|
|
43
46
|
from shotgun.codebase.models import IndexProgress, ProgressPhase
|
|
44
47
|
from shotgun.posthog_telemetry import track_event
|
|
45
48
|
from shotgun.sdk.codebase import CodebaseSDK
|
|
@@ -785,6 +788,28 @@ class ChatScreen(Screen[None]):
|
|
|
785
788
|
except Exception as exc: # pragma: no cover - defensive UI path
|
|
786
789
|
self.notify(f"Failed to delete codebase: {exc}", severity="error")
|
|
787
790
|
|
|
791
|
+
def _is_kuzu_corruption_error(self, exception: Exception) -> bool:
|
|
792
|
+
"""Check if error is related to kuzu database corruption.
|
|
793
|
+
|
|
794
|
+
Args:
|
|
795
|
+
exception: The exception to check
|
|
796
|
+
|
|
797
|
+
Returns:
|
|
798
|
+
True if the error indicates kuzu database corruption
|
|
799
|
+
"""
|
|
800
|
+
error_str = str(exception).lower()
|
|
801
|
+
error_indicators = [
|
|
802
|
+
"not a directory",
|
|
803
|
+
"errno 20",
|
|
804
|
+
"corrupted",
|
|
805
|
+
".kuzu",
|
|
806
|
+
"ioexception",
|
|
807
|
+
"unordered_map", # C++ STL map errors from kuzu
|
|
808
|
+
"key not found", # unordered_map::at errors
|
|
809
|
+
"std::exception", # Generic C++ exceptions from kuzu
|
|
810
|
+
]
|
|
811
|
+
return any(indicator in error_str for indicator in error_indicators)
|
|
812
|
+
|
|
788
813
|
@work
|
|
789
814
|
async def index_codebase(self, selection: CodebaseIndexSelection) -> None:
|
|
790
815
|
label = self.query_one("#indexing-job-display", Static)
|
|
@@ -853,58 +878,92 @@ class ChatScreen(Screen[None]):
|
|
|
853
878
|
# Start progress animation timer (10 fps = 100ms interval)
|
|
854
879
|
progress_timer = self.set_interval(0.1, update_progress_display)
|
|
855
880
|
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
881
|
+
# Retry logic for handling kuzu corruption
|
|
882
|
+
max_retries = 3
|
|
883
|
+
|
|
884
|
+
for attempt in range(max_retries):
|
|
885
|
+
try:
|
|
886
|
+
# Clean up corrupted DBs before retry (skip on first attempt)
|
|
887
|
+
if attempt > 0:
|
|
888
|
+
logger.info(
|
|
889
|
+
f"Retry attempt {attempt + 1}/{max_retries} - cleaning up corrupted databases"
|
|
890
|
+
)
|
|
891
|
+
manager = CodebaseGraphManager(
|
|
892
|
+
self.codebase_sdk.service.storage_dir
|
|
893
|
+
)
|
|
894
|
+
cleaned = await manager.cleanup_corrupted_databases()
|
|
895
|
+
logger.info(f"Cleaned up {len(cleaned)} corrupted database(s)")
|
|
896
|
+
self.notify(
|
|
897
|
+
f"Retrying indexing after cleanup (attempt {attempt + 1}/{max_retries})...",
|
|
898
|
+
severity="information",
|
|
899
|
+
)
|
|
868
900
|
|
|
869
|
-
|
|
870
|
-
|
|
901
|
+
# Pass the current working directory as the indexed_from_cwd
|
|
902
|
+
logger.debug(
|
|
903
|
+
f"Starting indexing - repo_path: {selection.repo_path}, "
|
|
904
|
+
f"name: {selection.name}, cwd: {Path.cwd().resolve()}"
|
|
905
|
+
)
|
|
906
|
+
result = await self.codebase_sdk.index_codebase(
|
|
907
|
+
selection.repo_path,
|
|
908
|
+
selection.name,
|
|
909
|
+
indexed_from_cwd=str(Path.cwd().resolve()),
|
|
910
|
+
progress_callback=progress_callback,
|
|
911
|
+
)
|
|
871
912
|
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
label.update(f"[$foreground-muted]Indexing codebase: {final_bar} 100%[/]")
|
|
875
|
-
label.refresh()
|
|
913
|
+
# Success! Stop progress animation
|
|
914
|
+
progress_timer.stop()
|
|
876
915
|
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
timeout=8,
|
|
884
|
-
)
|
|
916
|
+
# Show 100% completion after indexing finishes
|
|
917
|
+
final_bar = create_progress_bar(100.0)
|
|
918
|
+
label.update(
|
|
919
|
+
f"[$foreground-muted]Indexing codebase: {final_bar} 100%[/]"
|
|
920
|
+
)
|
|
921
|
+
label.refresh()
|
|
885
922
|
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
923
|
+
logger.info(
|
|
924
|
+
f"Successfully indexed codebase '{result.name}' (ID: {result.graph_id})"
|
|
925
|
+
)
|
|
926
|
+
self.notify(
|
|
927
|
+
f"Indexed codebase '{result.name}' (ID: {result.graph_id})",
|
|
928
|
+
severity="information",
|
|
929
|
+
timeout=8,
|
|
930
|
+
)
|
|
931
|
+
break # Success - exit retry loop
|
|
932
|
+
|
|
933
|
+
except CodebaseAlreadyIndexedError as exc:
|
|
934
|
+
progress_timer.stop()
|
|
935
|
+
logger.warning(f"Codebase already indexed: {exc}")
|
|
936
|
+
self.notify(str(exc), severity="warning")
|
|
937
|
+
return
|
|
938
|
+
except InvalidPathError as exc:
|
|
939
|
+
progress_timer.stop()
|
|
940
|
+
logger.error(f"Invalid path error: {exc}")
|
|
941
|
+
self.notify(str(exc), severity="error")
|
|
942
|
+
return
|
|
943
|
+
|
|
944
|
+
except Exception as exc: # pragma: no cover - defensive UI path
|
|
945
|
+
# Check if this is a kuzu corruption error and we have retries left
|
|
946
|
+
if attempt < max_retries - 1 and self._is_kuzu_corruption_error(exc):
|
|
947
|
+
logger.warning(
|
|
948
|
+
f"Kuzu corruption detected on attempt {attempt + 1}/{max_retries}: {exc}. "
|
|
949
|
+
f"Will retry after cleanup..."
|
|
950
|
+
)
|
|
951
|
+
# Exponential backoff: 1s, 2s
|
|
952
|
+
await asyncio.sleep(2**attempt)
|
|
953
|
+
continue
|
|
954
|
+
|
|
955
|
+
# Either final retry failed OR not a corruption error - show error
|
|
956
|
+
logger.exception(
|
|
957
|
+
f"Failed to index codebase after {attempt + 1} attempts - "
|
|
958
|
+
f"repo_path: {selection.repo_path}, name: {selection.name}, error: {exc}"
|
|
959
|
+
)
|
|
960
|
+
self.notify(f"Failed to index codebase: {exc}", severity="error")
|
|
961
|
+
break
|
|
895
962
|
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
f"name: {selection.name}, error: {exc}"
|
|
901
|
-
)
|
|
902
|
-
self.notify(f"Failed to index codebase: {exc}", severity="error")
|
|
903
|
-
finally:
|
|
904
|
-
# Always stop the progress timer
|
|
905
|
-
progress_timer.stop()
|
|
906
|
-
label.update("")
|
|
907
|
-
label.refresh()
|
|
963
|
+
# Always stop the progress timer and clean up label
|
|
964
|
+
progress_timer.stop()
|
|
965
|
+
label.update("")
|
|
966
|
+
label.refresh()
|
|
908
967
|
|
|
909
968
|
@work
|
|
910
969
|
async def run_agent(self, message: str) -> None:
|
|
@@ -13,6 +13,7 @@ from textual.widgets import Button, Label, ListItem, ListView, Static
|
|
|
13
13
|
|
|
14
14
|
from shotgun.agents.config import ConfigManager
|
|
15
15
|
from shotgun.agents.config.models import MODEL_SPECS, ModelName, ShotgunConfig
|
|
16
|
+
from shotgun.agents.config.provider import get_default_model_for_provider
|
|
16
17
|
from shotgun.logging_config import get_logger
|
|
17
18
|
|
|
18
19
|
if TYPE_CHECKING:
|
|
@@ -111,7 +112,7 @@ class ModelPickerScreen(Screen[None]):
|
|
|
111
112
|
config_manager._provider_has_api_key(config.shotgun),
|
|
112
113
|
)
|
|
113
114
|
|
|
114
|
-
current_model = config.selected_model or
|
|
115
|
+
current_model = config.selected_model or get_default_model_for_provider(config)
|
|
115
116
|
self.selected_model = current_model
|
|
116
117
|
logger.debug("Current selected model: %s", current_model)
|
|
117
118
|
|
|
@@ -193,7 +194,7 @@ class ModelPickerScreen(Screen[None]):
|
|
|
193
194
|
"""
|
|
194
195
|
# Load config once with force_reload
|
|
195
196
|
config = self.config_manager.load(force_reload=True)
|
|
196
|
-
current_model = config.selected_model or
|
|
197
|
+
current_model = config.selected_model or get_default_model_for_provider(config)
|
|
197
198
|
|
|
198
199
|
# Update labels for available models only
|
|
199
200
|
for model_name in AVAILABLE_MODELS:
|
{shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/tui/screens/pipx_migration.py
RENAMED
|
@@ -101,7 +101,7 @@ Or install permanently: `uv tool install shotgun-sh`
|
|
|
101
101
|
|
|
102
102
|
**Discord:** https://discord.gg/5RmY6J2N7s
|
|
103
103
|
|
|
104
|
-
**Full Migration Guide:** https://github.com/shotgun-sh/shotgun
|
|
104
|
+
**Full Migration Guide:** https://github.com/shotgun-sh/shotgun/blob/main/PIPX_MIGRATION.md
|
|
105
105
|
"""
|
|
106
106
|
)
|
|
107
107
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/conversation_history.py
RENAMED
|
File without changes
|
{shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/conversation_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/history/context_extraction.py
RENAMED
|
File without changes
|
{shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/history/history_building.py
RENAMED
|
File without changes
|
{shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/history/history_processors.py
RENAMED
|
File without changes
|
{shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/history/message_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/history/token_counting/base.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/history/token_estimation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/tools/codebase/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/tools/codebase/file_read.py
RENAMED
|
File without changes
|
{shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/tools/codebase/models.py
RENAMED
|
File without changes
|
{shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/tools/codebase/query_graph.py
RENAMED
|
File without changes
|
|
File without changes
|
{shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/tools/file_management.py
RENAMED
|
File without changes
|
{shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/tools/web_search/__init__.py
RENAMED
|
File without changes
|
{shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/tools/web_search/anthropic.py
RENAMED
|
File without changes
|
{shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/tools/web_search/gemini.py
RENAMED
|
File without changes
|
{shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/tools/web_search/openai.py
RENAMED
|
File without changes
|
{shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/agents/tools/web_search/utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/codebase/core/change_detector.py
RENAMED
|
File without changes
|
{shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/codebase/core/code_retrieval.py
RENAMED
|
File without changes
|
{shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/codebase/core/cypher_models.py
RENAMED
|
File without changes
|
|
File without changes
|
{shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/codebase/core/language_config.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/codebase/core/parser_loader.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/prompts/agents/state/system_state.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/prompts/codebase/cypher_system.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/prompts/history/summarization.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/tui/components/prompt_input.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/tui/components/vertical_tail.py
RENAMED
|
File without changes
|
{shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/tui/filtered_codebase_service.py
RENAMED
|
File without changes
|
|
File without changes
|
{shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/tui/screens/chat_screen/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/tui/screens/chat_screen/history.py
RENAMED
|
File without changes
|
{shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/tui/screens/directory_setup.py
RENAMED
|
File without changes
|
|
File without changes
|
{shotgun_sh-0.2.10.dev9 → shotgun_sh-0.2.10.dev11}/src/shotgun/tui/screens/provider_config.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|