shotgun-sh 0.7.2.dev2__tar.gz → 0.7.3.dev1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (296) hide show
  1. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/PKG-INFO +1 -1
  2. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/pyproject.toml +1 -1
  3. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/chat/chat_screen.py +25 -5
  4. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/chat/help_text.py +4 -0
  5. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/chat_screen/hint_message.py +83 -0
  6. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/.gitignore +0 -0
  7. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/LICENSE +0 -0
  8. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/README.md +0 -0
  9. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/hatch_build.py +0 -0
  10. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/__init__.py +0 -0
  11. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/__init__.py +0 -0
  12. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/agent_manager.py +0 -0
  13. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/cancellation.py +0 -0
  14. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/common.py +0 -0
  15. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/config/README.md +0 -0
  16. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/config/__init__.py +0 -0
  17. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/config/constants.py +0 -0
  18. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/config/manager.py +0 -0
  19. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/config/models.py +0 -0
  20. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/config/provider.py +0 -0
  21. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/config/streaming_test.py +0 -0
  22. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/context_analyzer/__init__.py +0 -0
  23. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/context_analyzer/analyzer.py +0 -0
  24. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/context_analyzer/constants.py +0 -0
  25. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/context_analyzer/formatter.py +0 -0
  26. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/context_analyzer/models.py +0 -0
  27. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/conversation/__init__.py +0 -0
  28. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/conversation/filters.py +0 -0
  29. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/conversation/history/__init__.py +0 -0
  30. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/conversation/history/chunking.py +0 -0
  31. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/conversation/history/compaction.py +0 -0
  32. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/conversation/history/constants.py +0 -0
  33. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/conversation/history/context_extraction.py +0 -0
  34. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/conversation/history/file_content_deduplication.py +0 -0
  35. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/conversation/history/history_building.py +0 -0
  36. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/conversation/history/history_processors.py +0 -0
  37. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/conversation/history/message_utils.py +0 -0
  38. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/conversation/history/token_counting/__init__.py +0 -0
  39. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/conversation/history/token_counting/anthropic.py +0 -0
  40. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/conversation/history/token_counting/base.py +0 -0
  41. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/conversation/history/token_counting/openai.py +0 -0
  42. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/conversation/history/token_counting/sentencepiece_counter.py +0 -0
  43. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/conversation/history/token_counting/tokenizer_cache.py +0 -0
  44. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/conversation/history/token_counting/utils.py +0 -0
  45. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/conversation/history/token_estimation.py +0 -0
  46. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/conversation/manager.py +0 -0
  47. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/conversation/models.py +0 -0
  48. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/error/__init__.py +0 -0
  49. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/error/models.py +0 -0
  50. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/export.py +0 -0
  51. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/file_read.py +0 -0
  52. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/gemini3_patch.py +0 -0
  53. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/llm.py +0 -0
  54. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/messages.py +0 -0
  55. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/models.py +0 -0
  56. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/plan.py +0 -0
  57. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/research.py +0 -0
  58. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/router/__init__.py +0 -0
  59. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/router/models.py +0 -0
  60. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/router/router.py +0 -0
  61. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/router/tools/__init__.py +0 -0
  62. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/router/tools/delegation_tools.py +0 -0
  63. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/router/tools/plan_tools.py +0 -0
  64. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/runner.py +0 -0
  65. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/specify.py +0 -0
  66. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/tasks.py +0 -0
  67. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/tools/__init__.py +0 -0
  68. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/tools/codebase/__init__.py +0 -0
  69. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/tools/codebase/codebase_shell.py +0 -0
  70. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/tools/codebase/directory_lister.py +0 -0
  71. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/tools/codebase/file_read.py +0 -0
  72. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/tools/codebase/models.py +0 -0
  73. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/tools/codebase/query_graph.py +0 -0
  74. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/tools/codebase/retrieve_code.py +0 -0
  75. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/tools/file_management.py +0 -0
  76. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/tools/file_read_tools/__init__.py +0 -0
  77. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/tools/file_read_tools/multimodal_file_read.py +0 -0
  78. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/tools/markdown_tools/__init__.py +0 -0
  79. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/tools/markdown_tools/insert_section.py +0 -0
  80. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/tools/markdown_tools/models.py +0 -0
  81. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/tools/markdown_tools/remove_section.py +0 -0
  82. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/tools/markdown_tools/replace_section.py +0 -0
  83. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/tools/markdown_tools/utils.py +0 -0
  84. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/tools/mermaid_validation.py +0 -0
  85. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/tools/registry.py +0 -0
  86. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/tools/web_search/__init__.py +0 -0
  87. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/tools/web_search/anthropic.py +0 -0
  88. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/tools/web_search/gemini.py +0 -0
  89. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/tools/web_search/openai.py +0 -0
  90. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/tools/web_search/utils.py +0 -0
  91. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/agents/usage_manager.py +0 -0
  92. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/api_endpoints.py +0 -0
  93. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/attachments/__init__.py +0 -0
  94. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/attachments/errors.py +0 -0
  95. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/attachments/models.py +0 -0
  96. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/attachments/parser.py +0 -0
  97. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/attachments/processor.py +0 -0
  98. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/build_constants.py +0 -0
  99. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/cli/__init__.py +0 -0
  100. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/cli/clear.py +0 -0
  101. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/cli/codebase/__init__.py +0 -0
  102. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/cli/codebase/commands.py +0 -0
  103. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/cli/codebase/models.py +0 -0
  104. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/cli/compact.py +0 -0
  105. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/cli/config.py +0 -0
  106. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/cli/context.py +0 -0
  107. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/cli/error_handler.py +0 -0
  108. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/cli/feedback.py +0 -0
  109. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/cli/models.py +0 -0
  110. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/cli/run.py +0 -0
  111. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/cli/spec/__init__.py +0 -0
  112. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/cli/spec/backup.py +0 -0
  113. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/cli/spec/commands.py +0 -0
  114. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/cli/spec/models.py +0 -0
  115. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/cli/spec/pull_service.py +0 -0
  116. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/cli/update.py +0 -0
  117. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/cli/utils.py +0 -0
  118. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/__init__.py +0 -0
  119. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/benchmarks/__init__.py +0 -0
  120. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/benchmarks/benchmark_runner.py +0 -0
  121. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/benchmarks/exporters.py +0 -0
  122. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/benchmarks/formatters/__init__.py +0 -0
  123. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/benchmarks/formatters/base.py +0 -0
  124. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/benchmarks/formatters/json_formatter.py +0 -0
  125. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/benchmarks/formatters/markdown.py +0 -0
  126. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/benchmarks/models.py +0 -0
  127. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/core/__init__.py +0 -0
  128. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/core/call_resolution.py +0 -0
  129. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/core/change_detector.py +0 -0
  130. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/core/code_retrieval.py +0 -0
  131. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/core/cypher_models.py +0 -0
  132. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/core/errors.py +0 -0
  133. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/core/extractors/__init__.py +0 -0
  134. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/core/extractors/base.py +0 -0
  135. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/core/extractors/factory.py +0 -0
  136. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/core/extractors/go/__init__.py +0 -0
  137. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/core/extractors/go/extractor.py +0 -0
  138. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/core/extractors/javascript/__init__.py +0 -0
  139. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/core/extractors/javascript/extractor.py +0 -0
  140. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/core/extractors/protocol.py +0 -0
  141. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/core/extractors/python/__init__.py +0 -0
  142. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/core/extractors/python/extractor.py +0 -0
  143. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/core/extractors/rust/__init__.py +0 -0
  144. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/core/extractors/rust/extractor.py +0 -0
  145. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/core/extractors/types.py +0 -0
  146. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/core/extractors/typescript/__init__.py +0 -0
  147. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/core/extractors/typescript/extractor.py +0 -0
  148. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/core/gitignore.py +0 -0
  149. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/core/ingestor.py +0 -0
  150. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/core/kuzu_compat.py +0 -0
  151. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/core/language_config.py +0 -0
  152. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/core/manager.py +0 -0
  153. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/core/metrics_collector.py +0 -0
  154. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/core/metrics_types.py +0 -0
  155. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/core/nl_query.py +0 -0
  156. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/core/parallel_executor.py +0 -0
  157. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/core/parser_loader.py +0 -0
  158. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/core/work_distributor.py +0 -0
  159. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/core/worker.py +0 -0
  160. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/indexing_state.py +0 -0
  161. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/models.py +0 -0
  162. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/codebase/service.py +0 -0
  163. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/exceptions.py +0 -0
  164. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/llm_proxy/__init__.py +0 -0
  165. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/llm_proxy/client.py +0 -0
  166. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/llm_proxy/clients.py +0 -0
  167. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/llm_proxy/constants.py +0 -0
  168. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/llm_proxy/models.py +0 -0
  169. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/logging_config.py +0 -0
  170. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/main.py +0 -0
  171. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/posthog_telemetry.py +0 -0
  172. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/prompts/__init__.py +0 -0
  173. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/prompts/agents/__init__.py +0 -0
  174. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/prompts/agents/export.j2 +0 -0
  175. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/prompts/agents/file_read.j2 +0 -0
  176. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/prompts/agents/partials/codebase_understanding.j2 +0 -0
  177. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/prompts/agents/partials/common_agent_system_prompt.j2 +0 -0
  178. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/prompts/agents/partials/content_formatting.j2 +0 -0
  179. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/prompts/agents/partials/interactive_mode.j2 +0 -0
  180. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/prompts/agents/partials/router_delegation_mode.j2 +0 -0
  181. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/prompts/agents/plan.j2 +0 -0
  182. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/prompts/agents/research.j2 +0 -0
  183. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/prompts/agents/router.j2 +0 -0
  184. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/prompts/agents/specify.j2 +0 -0
  185. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/prompts/agents/state/codebase/codebase_graphs_available.j2 +0 -0
  186. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/prompts/agents/state/system_state.j2 +0 -0
  187. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/prompts/agents/tasks.j2 +0 -0
  188. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/prompts/codebase/__init__.py +0 -0
  189. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/prompts/codebase/cypher_query_patterns.j2 +0 -0
  190. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/prompts/codebase/cypher_system.j2 +0 -0
  191. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/prompts/codebase/enhanced_query_context.j2 +0 -0
  192. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/prompts/codebase/partials/cypher_rules.j2 +0 -0
  193. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/prompts/codebase/partials/graph_schema.j2 +0 -0
  194. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/prompts/codebase/partials/temporal_context.j2 +0 -0
  195. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/prompts/history/__init__.py +0 -0
  196. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/prompts/history/chunk_summarization.j2 +0 -0
  197. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/prompts/history/combine_summaries.j2 +0 -0
  198. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/prompts/history/incremental_summarization.j2 +0 -0
  199. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/prompts/history/summarization.j2 +0 -0
  200. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/prompts/loader.py +0 -0
  201. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/prompts/tools/web_search.j2 +0 -0
  202. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/py.typed +0 -0
  203. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/sdk/__init__.py +0 -0
  204. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/sdk/codebase.py +0 -0
  205. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/sdk/exceptions.py +0 -0
  206. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/sdk/models.py +0 -0
  207. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/sdk/services.py +0 -0
  208. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/settings.py +0 -0
  209. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/shotgun_web/__init__.py +0 -0
  210. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/shotgun_web/client.py +0 -0
  211. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/shotgun_web/constants.py +0 -0
  212. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/shotgun_web/exceptions.py +0 -0
  213. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/shotgun_web/models.py +0 -0
  214. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/shotgun_web/shared_specs/__init__.py +0 -0
  215. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/shotgun_web/shared_specs/file_scanner.py +0 -0
  216. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/shotgun_web/shared_specs/hasher.py +0 -0
  217. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/shotgun_web/shared_specs/models.py +0 -0
  218. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/shotgun_web/shared_specs/upload_pipeline.py +0 -0
  219. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/shotgun_web/shared_specs/utils.py +0 -0
  220. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/shotgun_web/specs_client.py +0 -0
  221. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/shotgun_web/supabase_client.py +0 -0
  222. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/telemetry.py +0 -0
  223. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/__init__.py +0 -0
  224. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/app.py +0 -0
  225. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/commands/__init__.py +0 -0
  226. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/components/attachment_bar.py +0 -0
  227. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/components/context_indicator.py +0 -0
  228. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/components/mode_indicator.py +0 -0
  229. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/components/prompt_input.py +0 -0
  230. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/components/spinner.py +0 -0
  231. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/components/splash.py +0 -0
  232. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/components/status_bar.py +0 -0
  233. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/components/update_indicator.py +0 -0
  234. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/components/vertical_tail.py +0 -0
  235. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/containers.py +0 -0
  236. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/dependencies.py +0 -0
  237. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/filtered_codebase_service.py +0 -0
  238. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/layout.py +0 -0
  239. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/protocols.py +0 -0
  240. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/chat/__init__.py +0 -0
  241. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/chat/chat.tcss +0 -0
  242. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/chat/codebase_index_prompt_screen.py +0 -0
  243. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/chat/codebase_index_selection.py +0 -0
  244. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/chat/prompt_history.py +0 -0
  245. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/chat.tcss +0 -0
  246. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/chat_screen/__init__.py +0 -0
  247. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/chat_screen/attachment_hint.py +0 -0
  248. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/chat_screen/command_providers.py +0 -0
  249. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/chat_screen/history/__init__.py +0 -0
  250. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/chat_screen/history/agent_response.py +0 -0
  251. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/chat_screen/history/chat_history.py +0 -0
  252. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/chat_screen/history/formatters.py +0 -0
  253. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/chat_screen/history/partial_response.py +0 -0
  254. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/chat_screen/history/user_question.py +0 -0
  255. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/chat_screen/messages.py +0 -0
  256. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/confirmation_dialog.py +0 -0
  257. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/database_locked_dialog.py +0 -0
  258. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/database_timeout_dialog.py +0 -0
  259. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/directory_setup.py +0 -0
  260. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/feedback.py +0 -0
  261. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/github_issue.py +0 -0
  262. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/kuzu_error_dialog.py +0 -0
  263. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/model_picker.py +0 -0
  264. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/models.py +0 -0
  265. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/pipx_migration.py +0 -0
  266. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/provider_config.py +0 -0
  267. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/shared_specs/__init__.py +0 -0
  268. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/shared_specs/create_spec_dialog.py +0 -0
  269. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/shared_specs/models.py +0 -0
  270. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/shared_specs/share_specs_dialog.py +0 -0
  271. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/shared_specs/upload_progress_screen.py +0 -0
  272. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/shotgun_auth.py +0 -0
  273. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/spec_pull.py +0 -0
  274. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/splash.py +0 -0
  275. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/screens/welcome.py +0 -0
  276. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/services/__init__.py +0 -0
  277. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/services/conversation_service.py +0 -0
  278. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/state/__init__.py +0 -0
  279. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/state/processing_state.py +0 -0
  280. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/styles.tcss +0 -0
  281. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/templates/app_index.html +0 -0
  282. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/utils/__init__.py +0 -0
  283. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/utils/mode_progress.py +0 -0
  284. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/widgets/__init__.py +0 -0
  285. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/widgets/approval_widget.py +0 -0
  286. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/widgets/cascade_confirmation_widget.py +0 -0
  287. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/widgets/plan_panel.py +0 -0
  288. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/widgets/step_checkpoint_widget.py +0 -0
  289. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/tui/widgets/widget_coordinator.py +0 -0
  290. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/utils/__init__.py +0 -0
  291. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/utils/datetime_utils.py +0 -0
  292. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/utils/env_utils.py +0 -0
  293. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/utils/file_system_utils.py +0 -0
  294. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/utils/marketing.py +0 -0
  295. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/src/shotgun/utils/source_detection.py +0 -0
  296. {shotgun_sh-0.7.2.dev2 → shotgun_sh-0.7.3.dev1}/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.7.2.dev2
3
+ Version: 0.7.3.dev1
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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "shotgun-sh"
3
- version = "0.7.2.dev2"
3
+ version = "0.7.3.dev1"
4
4
  description = "AI-powered research, planning, and task management CLI tool"
5
5
  readme = "README.md"
6
6
  license = { text = "MIT" }
@@ -100,6 +100,8 @@ from shotgun.tui.screens.chat.codebase_index_prompt_screen import (
100
100
  )
101
101
  from shotgun.tui.screens.chat.codebase_index_selection import CodebaseIndexSelection
102
102
  from shotgun.tui.screens.chat.help_text import (
103
+ GETTING_STARTED_LINK,
104
+ GETTING_STARTED_LINK_TEXT,
103
105
  help_text_empty_dir,
104
106
  help_text_with_codebase,
105
107
  )
@@ -502,16 +504,28 @@ class ChatScreen(Screen[None]):
502
504
  await self.codebase_sdk.list_codebases_for_directory()
503
505
  ).graphs
504
506
  if accessible_graphs:
505
- self.mount_hint(help_text_with_codebase(already_indexed=True))
507
+ self.mount_hint(
508
+ help_text_with_codebase(already_indexed=True),
509
+ link=GETTING_STARTED_LINK,
510
+ link_text=GETTING_STARTED_LINK_TEXT,
511
+ )
506
512
  return
507
513
 
508
514
  # Ask user if they want to index the current directory
509
515
  should_index = await self.app.push_screen_wait(CodebaseIndexPromptScreen())
510
516
  if not should_index:
511
- self.mount_hint(help_text_empty_dir())
517
+ self.mount_hint(
518
+ help_text_empty_dir(),
519
+ link=GETTING_STARTED_LINK,
520
+ link_text=GETTING_STARTED_LINK_TEXT,
521
+ )
512
522
  return
513
523
 
514
- self.mount_hint(help_text_with_codebase(already_indexed=False))
524
+ self.mount_hint(
525
+ help_text_with_codebase(already_indexed=False),
526
+ link=GETTING_STARTED_LINK,
527
+ link_text=GETTING_STARTED_LINK_TEXT,
528
+ )
515
529
 
516
530
  # Auto-index the current directory with its name
517
531
  cwd_name = cur_dir.name
@@ -963,8 +977,14 @@ class ChatScreen(Screen[None]):
963
977
  yield ContextIndicator(id="context-indicator")
964
978
  yield Static("", id="indexing-job-display")
965
979
 
966
- def mount_hint(self, markdown: str) -> None:
967
- hint = HintMessage(message=markdown)
980
+ def mount_hint(
981
+ self,
982
+ markdown: str,
983
+ *,
984
+ link: str | None = None,
985
+ link_text: str | None = None,
986
+ ) -> None:
987
+ hint = HintMessage(message=markdown, link=link, link_text=link_text)
968
988
  self.agent_manager.add_hint_message(hint)
969
989
 
970
990
  def _show_pull_hint(self) -> None:
@@ -1,5 +1,9 @@
1
1
  """Helper functions for chat screen help text."""
2
2
 
3
+ # Getting started guide link shown in welcome messages
4
+ GETTING_STARTED_LINK = "https://app.shotgun.sh/how-to-use"
5
+ GETTING_STARTED_LINK_TEXT = "Link to Getting started guide"
6
+
3
7
 
4
8
  def help_text_with_codebase(already_indexed: bool = False) -> str:
5
9
  """Generate help text for when a codebase is available.
@@ -1,3 +1,4 @@
1
+ import webbrowser
1
2
  from typing import Literal
2
3
 
3
4
  from pydantic import BaseModel
@@ -18,6 +19,9 @@ class HintMessage(BaseModel):
18
19
  # Optional email copy functionality
19
20
  email: str | None = None
20
21
  markdown_after: str | None = None
22
+ # Optional link functionality
23
+ link: str | None = None
24
+ link_text: str | None = None # Button label, defaults to "Open link"
21
25
 
22
26
 
23
27
  class HintMessageWidget(Widget):
@@ -63,6 +67,31 @@ class HintMessageWidget(Widget):
63
67
  content-align: left middle;
64
68
  }
65
69
 
70
+ HintMessageWidget .link-row {
71
+ width: auto;
72
+ height: auto;
73
+ margin: 1 0;
74
+ }
75
+
76
+ HintMessageWidget .link-text {
77
+ width: auto;
78
+ margin-right: 1;
79
+ content-align: left middle;
80
+ }
81
+
82
+ HintMessageWidget .link-btn {
83
+ width: auto;
84
+ min-width: 16;
85
+ margin-right: 1;
86
+ }
87
+
88
+ HintMessageWidget #link-status {
89
+ height: 1;
90
+ width: 100%;
91
+ margin-top: 1;
92
+ content-align: left middle;
93
+ }
94
+
66
95
  """
67
96
 
68
97
  def __init__(self, message: HintMessage) -> None:
@@ -87,6 +116,18 @@ class HintMessageWidget(Widget):
87
116
  if self.message.markdown_after:
88
117
  yield Markdown(self.message.markdown_after)
89
118
 
119
+ # Optional link section
120
+ if self.message.link:
121
+ button_label = self.message.link_text or "Open link"
122
+ # Link buttons on same line
123
+ with Horizontal(classes="link-row"):
124
+ yield Static(f"{button_label}:", classes="link-text")
125
+ yield Button("Open in browser", id="open-link-btn", classes="link-btn")
126
+ yield Button("Copy link", id="copy-link-btn", classes="link-btn")
127
+
128
+ # Status feedback label for link operations
129
+ yield Label("", id="link-status")
130
+
90
131
  @on(Button.Pressed, "#copy-email-btn")
91
132
  def _copy_email(self) -> None:
92
133
  """Copy email address to clipboard when button is pressed."""
@@ -113,3 +154,45 @@ class HintMessageWidget(Widget):
113
154
  except Exception as e:
114
155
  status_label.update(f"⚠️ Copy failed: {e}")
115
156
  logger.error(f"Failed to copy email to clipboard: {e}", exc_info=True)
157
+
158
+ @on(Button.Pressed, "#open-link-btn")
159
+ def _open_link(self) -> None:
160
+ """Open link in browser when button is pressed."""
161
+ if not self.message.link:
162
+ return
163
+
164
+ status_label = self.query_one("#link-status", Label)
165
+
166
+ try:
167
+ webbrowser.open(self.message.link)
168
+ status_label.update("✓ Opened in browser!")
169
+ logger.debug(f"Successfully opened link in browser: {self.message.link}")
170
+
171
+ except Exception as e:
172
+ status_label.update(f"⚠️ Failed to open browser: {e}")
173
+ logger.error(f"Failed to open link in browser: {e}", exc_info=True)
174
+
175
+ @on(Button.Pressed, "#copy-link-btn")
176
+ def _copy_link(self) -> None:
177
+ """Copy link to clipboard when button is pressed."""
178
+ if not self.message.link:
179
+ return
180
+
181
+ status_label = self.query_one("#link-status", Label)
182
+
183
+ try:
184
+ import pyperclip
185
+
186
+ pyperclip.copy(self.message.link)
187
+ status_label.update("✓ Copied to clipboard!")
188
+ logger.debug(f"Successfully copied link to clipboard: {self.message.link}")
189
+
190
+ except ImportError:
191
+ status_label.update(
192
+ f"⚠️ Clipboard unavailable. Please manually copy: {self.message.link}"
193
+ )
194
+ logger.warning("pyperclip not available for clipboard operations")
195
+
196
+ except Exception as e:
197
+ status_label.update(f"⚠️ Copy failed: {e}")
198
+ logger.error(f"Failed to copy link to clipboard: {e}", exc_info=True)
File without changes