shotgun-sh 0.2.3.dev1__tar.gz → 0.2.3.dev2__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.3.dev1 → shotgun_sh-0.2.3.dev2}/PKG-INFO +1 -1
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/pyproject.toml +1 -1
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/config/manager.py +20 -0
- shotgun_sh-0.2.3.dev2/src/shotgun/api_endpoints.py +11 -0
- shotgun_sh-0.2.3.dev2/src/shotgun/llm_proxy/constants.py +15 -0
- shotgun_sh-0.2.3.dev2/src/shotgun/shotgun_web/constants.py +21 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/tui/app.py +13 -21
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/tui/screens/provider_config.py +3 -7
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/utils/env_utils.py +6 -5
- shotgun_sh-0.2.3.dev1/src/shotgun/llm_proxy/constants.py +0 -8
- shotgun_sh-0.2.3.dev1/src/shotgun/shotgun_web/constants.py +0 -17
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/.gitignore +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/LICENSE +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/README.md +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/hatch_build.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/__init__.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/__init__.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/agent_manager.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/common.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/config/__init__.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/config/constants.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/config/models.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/config/provider.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/conversation_history.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/conversation_manager.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/export.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/history/__init__.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/history/compaction.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/history/constants.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/history/context_extraction.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/history/history_building.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/history/history_processors.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/history/message_utils.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/history/token_counting/__init__.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/history/token_counting/anthropic.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/history/token_counting/base.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/history/token_counting/openai.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/history/token_counting/sentencepiece_counter.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/history/token_counting/tokenizer_cache.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/history/token_counting/utils.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/history/token_estimation.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/llm.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/messages.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/models.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/plan.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/research.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/specify.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/tasks.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/tools/__init__.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/tools/codebase/__init__.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/tools/codebase/codebase_shell.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/tools/codebase/directory_lister.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/tools/codebase/file_read.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/tools/codebase/models.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/tools/codebase/query_graph.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/tools/codebase/retrieve_code.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/tools/file_management.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/tools/user_interaction.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/tools/web_search/__init__.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/tools/web_search/anthropic.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/tools/web_search/gemini.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/tools/web_search/openai.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/tools/web_search/utils.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/usage_manager.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/build_constants.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/cli/__init__.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/cli/codebase/__init__.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/cli/codebase/commands.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/cli/codebase/models.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/cli/config.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/cli/export.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/cli/feedback.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/cli/models.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/cli/plan.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/cli/research.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/cli/specify.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/cli/tasks.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/cli/update.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/cli/utils.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/codebase/__init__.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/codebase/core/__init__.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/codebase/core/change_detector.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/codebase/core/code_retrieval.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/codebase/core/cypher_models.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/codebase/core/ingestor.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/codebase/core/language_config.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/codebase/core/manager.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/codebase/core/nl_query.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/codebase/core/parser_loader.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/codebase/models.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/codebase/service.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/llm_proxy/__init__.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/llm_proxy/clients.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/logging_config.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/main.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/posthog_telemetry.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/prompts/__init__.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/prompts/agents/__init__.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/prompts/agents/export.j2 +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/prompts/agents/partials/codebase_understanding.j2 +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/prompts/agents/partials/common_agent_system_prompt.j2 +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/prompts/agents/partials/content_formatting.j2 +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/prompts/agents/partials/interactive_mode.j2 +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/prompts/agents/plan.j2 +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/prompts/agents/research.j2 +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/prompts/agents/specify.j2 +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/prompts/agents/state/codebase/codebase_graphs_available.j2 +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/prompts/agents/state/system_state.j2 +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/prompts/agents/tasks.j2 +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/prompts/codebase/__init__.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/prompts/codebase/cypher_query_patterns.j2 +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/prompts/codebase/cypher_system.j2 +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/prompts/codebase/enhanced_query_context.j2 +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/prompts/codebase/partials/cypher_rules.j2 +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/prompts/codebase/partials/graph_schema.j2 +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/prompts/codebase/partials/temporal_context.j2 +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/prompts/history/__init__.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/prompts/history/incremental_summarization.j2 +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/prompts/history/summarization.j2 +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/prompts/loader.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/py.typed +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/sdk/__init__.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/sdk/codebase.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/sdk/exceptions.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/sdk/models.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/sdk/services.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/sentry_telemetry.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/shotgun_web/__init__.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/shotgun_web/client.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/shotgun_web/models.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/telemetry.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/tui/__init__.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/tui/commands/__init__.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/tui/components/prompt_input.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/tui/components/spinner.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/tui/components/splash.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/tui/components/vertical_tail.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/tui/filtered_codebase_service.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/tui/screens/chat.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/tui/screens/chat.tcss +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/tui/screens/chat_screen/__init__.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/tui/screens/chat_screen/command_providers.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/tui/screens/chat_screen/hint_message.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/tui/screens/chat_screen/history.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/tui/screens/directory_setup.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/tui/screens/feedback.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/tui/screens/model_picker.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/tui/screens/shotgun_auth.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/tui/screens/splash.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/tui/screens/welcome.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/tui/styles.tcss +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/tui/utils/__init__.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/tui/utils/mode_progress.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/utils/__init__.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/utils/file_system_utils.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/utils/source_detection.py +0 -0
- {shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/utils/update_checker.py +0 -0
|
@@ -81,6 +81,26 @@ class ConfigManager:
|
|
|
81
81
|
"Migrated config v2->v3: renamed user_id to shotgun_instance_id"
|
|
82
82
|
)
|
|
83
83
|
|
|
84
|
+
# Migration: Set shown_welcome_screen for existing BYOK users
|
|
85
|
+
# If shown_welcome_screen doesn't exist AND any BYOK provider has a key,
|
|
86
|
+
# set it to False so they see the welcome screen once
|
|
87
|
+
if "shown_welcome_screen" not in data:
|
|
88
|
+
has_byok_key = False
|
|
89
|
+
for section in ["openai", "anthropic", "google"]:
|
|
90
|
+
if (
|
|
91
|
+
section in data
|
|
92
|
+
and isinstance(data[section], dict)
|
|
93
|
+
and data[section].get("api_key")
|
|
94
|
+
):
|
|
95
|
+
has_byok_key = True
|
|
96
|
+
break
|
|
97
|
+
|
|
98
|
+
if has_byok_key:
|
|
99
|
+
data["shown_welcome_screen"] = False
|
|
100
|
+
logger.info(
|
|
101
|
+
"Existing BYOK user detected: set shown_welcome_screen=False to show welcome screen"
|
|
102
|
+
)
|
|
103
|
+
|
|
84
104
|
# Convert plain text secrets to SecretStr objects
|
|
85
105
|
self._convert_secrets_to_secretstr(data)
|
|
86
106
|
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"""Shotgun backend service API endpoints and URLs."""
|
|
2
|
+
|
|
3
|
+
# Shotgun Web API base URL (for authentication/subscription)
|
|
4
|
+
# Can be overridden with environment variable
|
|
5
|
+
SHOTGUN_WEB_BASE_URL = "https://api-219702594231.us-east4.run.app"
|
|
6
|
+
# Shotgun's LiteLLM proxy base URL (for AI model requests)
|
|
7
|
+
LITELLM_PROXY_BASE_URL = "https://litellm-219702594231.us-east4.run.app"
|
|
8
|
+
|
|
9
|
+
# Provider-specific LiteLLM proxy endpoints
|
|
10
|
+
LITELLM_PROXY_ANTHROPIC_BASE = f"{LITELLM_PROXY_BASE_URL}/anthropic"
|
|
11
|
+
LITELLM_PROXY_OPENAI_BASE = LITELLM_PROXY_BASE_URL
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"""LiteLLM proxy constants and configuration."""
|
|
2
|
+
|
|
3
|
+
# Import from centralized API endpoints module
|
|
4
|
+
from shotgun.api_endpoints import (
|
|
5
|
+
LITELLM_PROXY_ANTHROPIC_BASE,
|
|
6
|
+
LITELLM_PROXY_BASE_URL,
|
|
7
|
+
LITELLM_PROXY_OPENAI_BASE,
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
# Re-export for backward compatibility
|
|
11
|
+
__all__ = [
|
|
12
|
+
"LITELLM_PROXY_BASE_URL",
|
|
13
|
+
"LITELLM_PROXY_ANTHROPIC_BASE",
|
|
14
|
+
"LITELLM_PROXY_OPENAI_BASE",
|
|
15
|
+
]
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"""Constants for Shotgun Web API."""
|
|
2
|
+
|
|
3
|
+
# Import from centralized API endpoints module
|
|
4
|
+
from shotgun.api_endpoints import SHOTGUN_WEB_BASE_URL
|
|
5
|
+
|
|
6
|
+
# API endpoints
|
|
7
|
+
UNIFICATION_TOKEN_CREATE_PATH = "/api/unification/token/create" # noqa: S105
|
|
8
|
+
UNIFICATION_TOKEN_STATUS_PATH = "/api/unification/token/{token}/status" # noqa: S105
|
|
9
|
+
|
|
10
|
+
# Polling configuration
|
|
11
|
+
DEFAULT_POLL_INTERVAL_SECONDS = 3
|
|
12
|
+
DEFAULT_TOKEN_TIMEOUT_SECONDS = 1800 # 30 minutes
|
|
13
|
+
|
|
14
|
+
# Re-export for backward compatibility
|
|
15
|
+
__all__ = [
|
|
16
|
+
"SHOTGUN_WEB_BASE_URL",
|
|
17
|
+
"UNIFICATION_TOKEN_CREATE_PATH",
|
|
18
|
+
"UNIFICATION_TOKEN_STATUS_PATH",
|
|
19
|
+
"DEFAULT_POLL_INTERVAL_SECONDS",
|
|
20
|
+
"DEFAULT_TOKEN_TIMEOUT_SECONDS",
|
|
21
|
+
]
|
|
@@ -8,7 +8,6 @@ from textual.screen import Screen
|
|
|
8
8
|
from shotgun.agents.config import ConfigManager, get_config_manager
|
|
9
9
|
from shotgun.logging_config import get_logger
|
|
10
10
|
from shotgun.tui.screens.splash import SplashScreen
|
|
11
|
-
from shotgun.utils.env_utils import is_shotgun_account_enabled
|
|
12
11
|
from shotgun.utils.file_system_utils import get_shotgun_base_path
|
|
13
12
|
from shotgun.utils.update_checker import perform_auto_update_async
|
|
14
13
|
|
|
@@ -61,28 +60,21 @@ class ShotgunApp(App[None]):
|
|
|
61
60
|
|
|
62
61
|
def refresh_startup_screen(self) -> None:
|
|
63
62
|
"""Push the appropriate screen based on configured providers."""
|
|
64
|
-
if
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
self.push_screen(
|
|
72
|
-
WelcomeScreen(),
|
|
73
|
-
callback=lambda _arg: self.refresh_startup_screen(),
|
|
74
|
-
)
|
|
75
|
-
return
|
|
76
|
-
else:
|
|
77
|
-
if isinstance(self.screen, ProviderConfigScreen):
|
|
78
|
-
return
|
|
79
|
-
|
|
80
|
-
self.push_screen(
|
|
81
|
-
ProviderConfigScreen(),
|
|
82
|
-
callback=lambda _arg: self.refresh_startup_screen(),
|
|
83
|
-
)
|
|
63
|
+
# Show welcome screen if no providers are configured OR if user hasn't seen it yet
|
|
64
|
+
config = self.config_manager.load()
|
|
65
|
+
if (
|
|
66
|
+
not self.config_manager.has_any_provider_key()
|
|
67
|
+
or not config.shown_welcome_screen
|
|
68
|
+
):
|
|
69
|
+
if isinstance(self.screen, WelcomeScreen):
|
|
84
70
|
return
|
|
85
71
|
|
|
72
|
+
self.push_screen(
|
|
73
|
+
WelcomeScreen(),
|
|
74
|
+
callback=lambda _arg: self.refresh_startup_screen(),
|
|
75
|
+
)
|
|
76
|
+
return
|
|
77
|
+
|
|
86
78
|
if not self.check_local_shotgun_directory_exists():
|
|
87
79
|
if isinstance(self.screen, DirectorySetupScreen):
|
|
88
80
|
return
|
|
@@ -12,23 +12,19 @@ from textual.screen import Screen
|
|
|
12
12
|
from textual.widgets import Button, Input, Label, ListItem, ListView, Markdown, Static
|
|
13
13
|
|
|
14
14
|
from shotgun.agents.config import ConfigManager, ProviderType
|
|
15
|
-
from shotgun.utils.env_utils import is_shotgun_account_enabled
|
|
16
15
|
|
|
17
16
|
if TYPE_CHECKING:
|
|
18
17
|
from ..app import ShotgunApp
|
|
19
18
|
|
|
20
19
|
|
|
21
20
|
def get_configurable_providers() -> list[str]:
|
|
22
|
-
"""Get list of configurable providers
|
|
21
|
+
"""Get list of configurable providers.
|
|
23
22
|
|
|
24
23
|
Returns:
|
|
25
24
|
List of provider identifiers that can be configured.
|
|
26
|
-
Includes
|
|
25
|
+
Includes all providers: openai, anthropic, google, and shotgun.
|
|
27
26
|
"""
|
|
28
|
-
|
|
29
|
-
if is_shotgun_account_enabled():
|
|
30
|
-
providers.append("shotgun")
|
|
31
|
-
return providers
|
|
27
|
+
return ["openai", "anthropic", "google", "shotgun"]
|
|
32
28
|
|
|
33
29
|
|
|
34
30
|
class ProviderConfigScreen(Screen[None]):
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
"""Utilities for working with environment variables."""
|
|
2
2
|
|
|
3
|
-
import os
|
|
4
|
-
|
|
5
3
|
|
|
6
4
|
def is_shotgun_account_enabled() -> bool:
|
|
7
5
|
"""Check if Shotgun Account feature is enabled via environment variable.
|
|
8
6
|
|
|
9
7
|
Returns:
|
|
10
|
-
True
|
|
11
|
-
|
|
8
|
+
True always (Shotgun Account is now live for all users)
|
|
9
|
+
|
|
10
|
+
Note:
|
|
11
|
+
This function is deprecated and always returns True.
|
|
12
|
+
Shotgun Account is now available to all users by default.
|
|
12
13
|
"""
|
|
13
|
-
return
|
|
14
|
+
return True
|
|
14
15
|
|
|
15
16
|
|
|
16
17
|
def is_truthy(value: str | None) -> bool:
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"""LiteLLM proxy constants and configuration."""
|
|
2
|
-
|
|
3
|
-
# Shotgun's LiteLLM proxy base URL
|
|
4
|
-
LITELLM_PROXY_BASE_URL = "https://litellm-701197220809.us-east1.run.app"
|
|
5
|
-
|
|
6
|
-
# Provider-specific endpoints
|
|
7
|
-
LITELLM_PROXY_ANTHROPIC_BASE = f"{LITELLM_PROXY_BASE_URL}/anthropic"
|
|
8
|
-
LITELLM_PROXY_OPENAI_BASE = LITELLM_PROXY_BASE_URL
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"""Constants for Shotgun Web API."""
|
|
2
|
-
|
|
3
|
-
import os
|
|
4
|
-
|
|
5
|
-
# Shotgun Web API base URL
|
|
6
|
-
# Default to production URL, can be overridden with environment variable
|
|
7
|
-
SHOTGUN_WEB_BASE_URL = os.environ.get(
|
|
8
|
-
"SHOTGUN_WEB_BASE_URL", "https://api-701197220809.us-east1.run.app"
|
|
9
|
-
)
|
|
10
|
-
|
|
11
|
-
# API endpoints
|
|
12
|
-
UNIFICATION_TOKEN_CREATE_PATH = "/api/unification/token/create" # noqa: S105
|
|
13
|
-
UNIFICATION_TOKEN_STATUS_PATH = "/api/unification/token/{token}/status" # noqa: S105
|
|
14
|
-
|
|
15
|
-
# Polling configuration
|
|
16
|
-
DEFAULT_POLL_INTERVAL_SECONDS = 3
|
|
17
|
-
DEFAULT_TOKEN_TIMEOUT_SECONDS = 1800 # 30 minutes
|
|
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.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/history/context_extraction.py
RENAMED
|
File without changes
|
{shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/history/history_building.py
RENAMED
|
File without changes
|
{shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/history/history_processors.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/history/token_counting/base.py
RENAMED
|
File without changes
|
{shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/history/token_counting/openai.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/history/token_counting/utils.py
RENAMED
|
File without changes
|
{shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/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.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/tools/codebase/__init__.py
RENAMED
|
File without changes
|
{shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/tools/codebase/codebase_shell.py
RENAMED
|
File without changes
|
|
File without changes
|
{shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/tools/codebase/file_read.py
RENAMED
|
File without changes
|
|
File without changes
|
{shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/tools/codebase/query_graph.py
RENAMED
|
File without changes
|
{shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/tools/codebase/retrieve_code.py
RENAMED
|
File without changes
|
|
File without changes
|
{shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/tools/user_interaction.py
RENAMED
|
File without changes
|
{shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/tools/web_search/__init__.py
RENAMED
|
File without changes
|
{shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/tools/web_search/anthropic.py
RENAMED
|
File without changes
|
{shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/tools/web_search/gemini.py
RENAMED
|
File without changes
|
{shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/agents/tools/web_search/openai.py
RENAMED
|
File without changes
|
{shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/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
|
{shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/codebase/core/change_detector.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/codebase/core/language_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
|
|
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.3.dev1 → shotgun_sh-0.2.3.dev2}/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.3.dev1 → shotgun_sh-0.2.3.dev2}/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.3.dev1 → shotgun_sh-0.2.3.dev2}/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
|
|
File without changes
|
{shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/tui/filtered_codebase_service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/tui/screens/chat_screen/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/tui/screens/chat_screen/hint_message.py
RENAMED
|
File without changes
|
{shotgun_sh-0.2.3.dev1 → shotgun_sh-0.2.3.dev2}/src/shotgun/tui/screens/chat_screen/history.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
|