shotgun-sh 0.2.3.dev2__py3-none-any.whl → 0.2.11.dev1__py3-none-any.whl

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.

Files changed (107) hide show
  1. shotgun/agents/agent_manager.py +524 -58
  2. shotgun/agents/common.py +62 -62
  3. shotgun/agents/config/constants.py +0 -6
  4. shotgun/agents/config/manager.py +14 -3
  5. shotgun/agents/config/models.py +16 -0
  6. shotgun/agents/config/provider.py +68 -13
  7. shotgun/agents/context_analyzer/__init__.py +28 -0
  8. shotgun/agents/context_analyzer/analyzer.py +493 -0
  9. shotgun/agents/context_analyzer/constants.py +9 -0
  10. shotgun/agents/context_analyzer/formatter.py +115 -0
  11. shotgun/agents/context_analyzer/models.py +212 -0
  12. shotgun/agents/conversation_history.py +125 -2
  13. shotgun/agents/conversation_manager.py +24 -2
  14. shotgun/agents/export.py +4 -5
  15. shotgun/agents/history/compaction.py +9 -4
  16. shotgun/agents/history/context_extraction.py +93 -6
  17. shotgun/agents/history/history_processors.py +14 -2
  18. shotgun/agents/history/token_counting/anthropic.py +32 -10
  19. shotgun/agents/models.py +50 -2
  20. shotgun/agents/plan.py +4 -5
  21. shotgun/agents/research.py +4 -5
  22. shotgun/agents/specify.py +4 -5
  23. shotgun/agents/tasks.py +4 -5
  24. shotgun/agents/tools/__init__.py +0 -2
  25. shotgun/agents/tools/codebase/codebase_shell.py +6 -0
  26. shotgun/agents/tools/codebase/directory_lister.py +6 -0
  27. shotgun/agents/tools/codebase/file_read.py +6 -0
  28. shotgun/agents/tools/codebase/query_graph.py +6 -0
  29. shotgun/agents/tools/codebase/retrieve_code.py +6 -0
  30. shotgun/agents/tools/file_management.py +71 -9
  31. shotgun/agents/tools/registry.py +217 -0
  32. shotgun/agents/tools/web_search/__init__.py +24 -12
  33. shotgun/agents/tools/web_search/anthropic.py +24 -3
  34. shotgun/agents/tools/web_search/gemini.py +22 -10
  35. shotgun/agents/tools/web_search/openai.py +21 -12
  36. shotgun/api_endpoints.py +7 -3
  37. shotgun/build_constants.py +1 -1
  38. shotgun/cli/clear.py +52 -0
  39. shotgun/cli/compact.py +186 -0
  40. shotgun/cli/context.py +111 -0
  41. shotgun/cli/models.py +1 -0
  42. shotgun/cli/update.py +16 -2
  43. shotgun/codebase/core/manager.py +10 -1
  44. shotgun/llm_proxy/__init__.py +5 -2
  45. shotgun/llm_proxy/clients.py +12 -7
  46. shotgun/logging_config.py +8 -10
  47. shotgun/main.py +70 -10
  48. shotgun/posthog_telemetry.py +9 -3
  49. shotgun/prompts/agents/export.j2 +18 -1
  50. shotgun/prompts/agents/partials/common_agent_system_prompt.j2 +5 -1
  51. shotgun/prompts/agents/partials/interactive_mode.j2 +24 -7
  52. shotgun/prompts/agents/plan.j2 +1 -1
  53. shotgun/prompts/agents/research.j2 +1 -1
  54. shotgun/prompts/agents/specify.j2 +270 -3
  55. shotgun/prompts/agents/state/system_state.j2 +4 -0
  56. shotgun/prompts/agents/tasks.j2 +1 -1
  57. shotgun/prompts/loader.py +2 -2
  58. shotgun/prompts/tools/web_search.j2 +14 -0
  59. shotgun/sentry_telemetry.py +4 -15
  60. shotgun/settings.py +238 -0
  61. shotgun/telemetry.py +15 -32
  62. shotgun/tui/app.py +203 -9
  63. shotgun/tui/commands/__init__.py +1 -1
  64. shotgun/tui/components/context_indicator.py +136 -0
  65. shotgun/tui/components/mode_indicator.py +70 -0
  66. shotgun/tui/components/status_bar.py +48 -0
  67. shotgun/tui/containers.py +93 -0
  68. shotgun/tui/dependencies.py +39 -0
  69. shotgun/tui/protocols.py +45 -0
  70. shotgun/tui/screens/chat/__init__.py +5 -0
  71. shotgun/tui/screens/chat/chat.tcss +54 -0
  72. shotgun/tui/screens/chat/chat_screen.py +1110 -0
  73. shotgun/tui/screens/chat/codebase_index_prompt_screen.py +64 -0
  74. shotgun/tui/screens/chat/codebase_index_selection.py +12 -0
  75. shotgun/tui/screens/chat/help_text.py +39 -0
  76. shotgun/tui/screens/chat/prompt_history.py +48 -0
  77. shotgun/tui/screens/chat.tcss +11 -0
  78. shotgun/tui/screens/chat_screen/command_providers.py +68 -2
  79. shotgun/tui/screens/chat_screen/history/__init__.py +22 -0
  80. shotgun/tui/screens/chat_screen/history/agent_response.py +66 -0
  81. shotgun/tui/screens/chat_screen/history/chat_history.py +116 -0
  82. shotgun/tui/screens/chat_screen/history/formatters.py +115 -0
  83. shotgun/tui/screens/chat_screen/history/partial_response.py +43 -0
  84. shotgun/tui/screens/chat_screen/history/user_question.py +42 -0
  85. shotgun/tui/screens/confirmation_dialog.py +151 -0
  86. shotgun/tui/screens/model_picker.py +30 -6
  87. shotgun/tui/screens/pipx_migration.py +153 -0
  88. shotgun/tui/screens/welcome.py +24 -5
  89. shotgun/tui/services/__init__.py +5 -0
  90. shotgun/tui/services/conversation_service.py +182 -0
  91. shotgun/tui/state/__init__.py +7 -0
  92. shotgun/tui/state/processing_state.py +185 -0
  93. shotgun/tui/widgets/__init__.py +5 -0
  94. shotgun/tui/widgets/widget_coordinator.py +247 -0
  95. shotgun/utils/datetime_utils.py +77 -0
  96. shotgun/utils/file_system_utils.py +3 -2
  97. shotgun/utils/update_checker.py +69 -14
  98. shotgun_sh-0.2.11.dev1.dist-info/METADATA +129 -0
  99. shotgun_sh-0.2.11.dev1.dist-info/RECORD +190 -0
  100. {shotgun_sh-0.2.3.dev2.dist-info → shotgun_sh-0.2.11.dev1.dist-info}/entry_points.txt +1 -0
  101. {shotgun_sh-0.2.3.dev2.dist-info → shotgun_sh-0.2.11.dev1.dist-info}/licenses/LICENSE +1 -1
  102. shotgun/agents/tools/user_interaction.py +0 -37
  103. shotgun/tui/screens/chat.py +0 -804
  104. shotgun/tui/screens/chat_screen/history.py +0 -352
  105. shotgun_sh-0.2.3.dev2.dist-info/METADATA +0 -467
  106. shotgun_sh-0.2.3.dev2.dist-info/RECORD +0 -154
  107. {shotgun_sh-0.2.3.dev2.dist-info → shotgun_sh-0.2.11.dev1.dist-info}/WHEEL +0 -0
@@ -0,0 +1,129 @@
1
+ Metadata-Version: 2.4
2
+ Name: shotgun-sh
3
+ Version: 0.2.11.dev1
4
+ Summary: AI-powered research, planning, and task management CLI tool
5
+ Project-URL: Homepage, https://shotgun.sh/
6
+ Project-URL: Repository, https://github.com/shotgun-sh/shotgun
7
+ Project-URL: Issues, https://github.com/shotgun-sh/shotgun-alpha/issues
8
+ Project-URL: Discord, https://discord.gg/5RmY6J2N7s
9
+ Author-email: "Proofs.io" <hello@proofs.io>
10
+ License: MIT
11
+ License-File: LICENSE
12
+ Keywords: agent,ai,cli,llm,planning,productivity,pydantic-ai,research,task-management
13
+ Classifier: Development Status :: 3 - Alpha
14
+ Classifier: Environment :: Console
15
+ Classifier: Intended Audience :: Developers
16
+ Classifier: License :: OSI Approved :: MIT License
17
+ Classifier: Operating System :: OS Independent
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
22
+ Classifier: Topic :: Utilities
23
+ Requires-Python: >=3.11
24
+ Requires-Dist: anthropic>=0.39.0
25
+ Requires-Dist: dependency-injector>=4.41.0
26
+ Requires-Dist: genai-prices>=0.0.27
27
+ Requires-Dist: httpx>=0.27.0
28
+ Requires-Dist: jinja2>=3.1.0
29
+ Requires-Dist: kuzu>=0.7.0
30
+ Requires-Dist: logfire>=2.0.0
31
+ Requires-Dist: openai>=1.0.0
32
+ Requires-Dist: packaging>=23.0
33
+ Requires-Dist: posthog>=3.0.0
34
+ Requires-Dist: pydantic-ai>=0.0.14
35
+ Requires-Dist: pydantic-settings>=2.0.0
36
+ Requires-Dist: rich>=13.0.0
37
+ Requires-Dist: sentencepiece>=0.2.0
38
+ Requires-Dist: sentry-sdk[pure-eval]>=2.0.0
39
+ Requires-Dist: tenacity>=8.0.0
40
+ Requires-Dist: textual-dev>=1.7.0
41
+ Requires-Dist: textual-serve>=0.1.0
42
+ Requires-Dist: textual>=6.1.0
43
+ Requires-Dist: tiktoken>=0.7.0
44
+ Requires-Dist: tree-sitter-go>=0.23.0
45
+ Requires-Dist: tree-sitter-javascript>=0.23.0
46
+ Requires-Dist: tree-sitter-python>=0.23.0
47
+ Requires-Dist: tree-sitter-rust>=0.23.0
48
+ Requires-Dist: tree-sitter-typescript>=0.23.0
49
+ Requires-Dist: tree-sitter>=0.21.0
50
+ Requires-Dist: typer>=0.12.0
51
+ Requires-Dist: watchdog>=4.0.0
52
+ Provides-Extra: dev
53
+ Requires-Dist: commitizen>=3.13.0; extra == 'dev'
54
+ Requires-Dist: lefthook>=1.12.0; extra == 'dev'
55
+ Requires-Dist: mypy>=1.11.0; extra == 'dev'
56
+ Requires-Dist: ruff>=0.6.0; extra == 'dev'
57
+ Description-Content-Type: text/markdown
58
+
59
+ # Shotgun
60
+
61
+ **Spec-Driven Development for AI Code Generation**
62
+
63
+ Shotgun is a CLI tool that turns work with AI code-gen tools from "I want to build X" into: **research → specs → plans → tasks → implementation**. It reads your entire codebase, coordinates AI agents to do the heavy lifting, and exports clean artifacts in the agents.md format so your code-gen tools actually know what they're building.
64
+
65
+ 🌐 **Learn more at [shotgun.sh](https://shotgun.sh/)**
66
+
67
+ ## Features
68
+
69
+ ### 📊 Complete Codebase Understanding
70
+
71
+ Before writing a single line, Shotgun reads all of it. Your patterns. Your dependencies. Your technical debt. Whether you're adding features, onboarding devs, planning migrations, or refactoring - Shotgun knows what you're working with.
72
+
73
+ ### 🔄 Five Modes. One Journey. Zero Gaps.
74
+
75
+ **Research** (what exists) → **Specify** (what to build) → **Plan** (how to build) → **Tasks** (break it down) → **Export** (to any tool)
76
+
77
+ Not another chatbot. A complete workflow where each mode feeds the next.
78
+
79
+ ### ➡️ Export to agents.md
80
+
81
+ Outputs plug into many code-generation tools including Codex, Cursor, Warp, Devin, opencode, Jules, and more.
82
+
83
+ ### 📝 Specs That Don't Die in Slack
84
+
85
+ Every research finding, every architectural decision, every "here's why we didn't use that library" - captured as markdown in your repo. Version controlled. Searchable.
86
+
87
+ ## Installation
88
+
89
+ ### Using uvx (Recommended)
90
+
91
+ **Quick start (ephemeral):**
92
+ ```bash
93
+ uvx shotgun-sh@latest
94
+ ```
95
+
96
+ **Install permanently:**
97
+ ```bash
98
+ uv tool install shotgun-sh
99
+ ```
100
+
101
+ If you don't have `uv` installed, get it at [astral.sh/uv](https://astral.sh/uv) or `curl -LsSf https://astral.sh/uv/install.sh | sh`
102
+
103
+ ## Quick Start
104
+
105
+ ```bash
106
+ # Research your codebase or a topic
107
+ shotgun research "What is our authentication flow?"
108
+
109
+ # Generate specifications
110
+ shotgun spec "Add OAuth2 authentication"
111
+
112
+ # Create an implementation plan
113
+ shotgun plan "Build user dashboard"
114
+
115
+ # Break down into tasks
116
+ shotgun tasks "Implement payment system"
117
+
118
+ # Export to agents.md format for your code-gen tools
119
+ shotgun export
120
+ ```
121
+
122
+ ## Support
123
+
124
+ Have questions? Join our community on **[Discord](https://discord.gg/5RmY6J2N7s)**
125
+
126
+ ---
127
+
128
+ **License:** MIT
129
+ **Python:** 3.11+
@@ -0,0 +1,190 @@
1
+ shotgun/__init__.py,sha256=P40K0fnIsb7SKcQrFnXZ4aREjpWchVDhvM1HxI4cyIQ,104
2
+ shotgun/api_endpoints.py,sha256=cHNkXbaxMOw6t9M7_SGHwEkz9bL1CH_kw8qIhgdXfi0,630
3
+ shotgun/build_constants.py,sha256=ffbErQTMR15TUKFFx5FYu5pji3Pr7UwTskgnAZsMswM,713
4
+ shotgun/logging_config.py,sha256=4IwirYcYSnSXehhgR5gYFbycX2xNNFVj0cxth6V8vjY,7321
5
+ shotgun/main.py,sha256=qt26mY6EzEplVPsL9oJFccjF8I1JoQMAUNMyrCAdTWY,7039
6
+ shotgun/posthog_telemetry.py,sha256=b_iZrDbKX4uWFl-SlF4hdYtCqNOK1NFhVnq8NCyxUoo,6363
7
+ shotgun/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
+ shotgun/sentry_telemetry.py,sha256=y9mYWsVmNSO9OBG236gRv0MXAb9oqvm4dsNaupq9zrI,2624
9
+ shotgun/settings.py,sha256=1pheWh5YRXCVzIWy7kGWiC1yGbJ8qTWxqQsxggs2BZI,7202
10
+ shotgun/telemetry.py,sha256=rnpzba6n54cbMbxwkviMdIxrSKUj_WZMhtTu0R-zOeA,2876
11
+ shotgun/agents/__init__.py,sha256=8Jzv1YsDuLyNPFJyckSr_qI4ehTVeDyIMDW4omsfPGc,25
12
+ shotgun/agents/agent_manager.py,sha256=r2AyIblommst6oKBW2lge39hbwBqsSrYKLH-8NIuCU8,44891
13
+ shotgun/agents/common.py,sha256=0F_dwEc72APvbY1b-lqM9VgPYuY1GpfhjSWv5-1pCB0,19032
14
+ shotgun/agents/conversation_history.py,sha256=djfzHu0ZQnEiRPDwqKaBIZK1KKPmdV7wE_L-7cAGb8M,7909
15
+ shotgun/agents/conversation_manager.py,sha256=X3DWZZIqrv0hS1SUasyoxexnLPBUrZMBg4ZmRAipkBE,4429
16
+ shotgun/agents/export.py,sha256=7ZNw7781WJ4peLSeoUc7zxKeaZVxFpow2y4nU4dCfbo,2919
17
+ shotgun/agents/llm.py,sha256=hs8j1wwTczGtehzahL1Z_5D4qus5QUx4-h9-m5ZPzm4,2209
18
+ shotgun/agents/messages.py,sha256=wNn0qC5AqASM8LMaSGFOerZEJPn5FsIOmaJs1bdosuU,1036
19
+ shotgun/agents/models.py,sha256=anNz8_U95B1__VPXgxFqfzk2BRIHrIO4clJlnfedVS8,9862
20
+ shotgun/agents/plan.py,sha256=lVhIoRUMCX2TsFbwbgKjS2HHhNreX35j_aZRqGxFAso,2980
21
+ shotgun/agents/research.py,sha256=EYqUda_wtrxmUNy6Mme3NFnO_uOXBCs94m2tZzheNOE,3224
22
+ shotgun/agents/specify.py,sha256=38z0n_7pAgWN3oJFuOxfiEHWtEqzMha-SyPhhZ9pWag,3087
23
+ shotgun/agents/tasks.py,sha256=AuriwtDn6uZz2G0eKfqBHYQrxYfJlbiAd-fcsw9lU3I,2949
24
+ shotgun/agents/usage_manager.py,sha256=5d9JC4_cthXwhTSytMfMExMDAUYp8_nkPepTJZXk13w,5017
25
+ shotgun/agents/config/__init__.py,sha256=Fl8K_81zBpm-OfOW27M_WWLSFdaHHek6lWz95iDREjQ,318
26
+ shotgun/agents/config/constants.py,sha256=GZ62PTrMd_yXDBvQwpNqh401GVlMHh5Li7_xM-zdp8Y,742
27
+ shotgun/agents/config/manager.py,sha256=Z8EQoWPQM7uj3MyklmxHQ1GR6va1uv9BjT5DDvAv3pY,18920
28
+ shotgun/agents/config/models.py,sha256=W9vFBHEHGkVYYwQQMxnUOOp0nypgAKQburu7gzZlclg,6042
29
+ shotgun/agents/config/provider.py,sha256=cMLYbkwxnwhpB59PL61VEWdVOTnBdvSXVYzEyG0TZcw,13390
30
+ shotgun/agents/context_analyzer/__init__.py,sha256=p-R3SVa3yDkXnHaZ7XV_SI_9FGhoYwvnbvDr3oxGU3M,732
31
+ shotgun/agents/context_analyzer/analyzer.py,sha256=kEMbqKYpFLkE8MLBGF5x4V2evompc8SP70S-shQLsjo,21213
32
+ shotgun/agents/context_analyzer/constants.py,sha256=oG8IJXEFN-V5wtnoz_ZBhOIGNXG1kjR4K_yOC5e95hY,323
33
+ shotgun/agents/context_analyzer/formatter.py,sha256=QovmxUdpGkBKwxegxhvXRmHrpNFF31MoD3LRYTVCKY8,4008
34
+ shotgun/agents/context_analyzer/models.py,sha256=Ww2NOgqaQlZ45tyBsVevt5r9bz0X-dQ4lNwAElfwAJk,8362
35
+ shotgun/agents/history/__init__.py,sha256=XFQj2a6fxDqVg0Q3juvN9RjV_RJbgvFZtQOCOjVJyp4,147
36
+ shotgun/agents/history/compaction.py,sha256=S7U00K3-tHOBHjSseGLaNSozkfmZknnqNyat8Hcixfk,3923
37
+ shotgun/agents/history/constants.py,sha256=yWY8rrTZarLA3flCCMB_hS2NMvUDRDTwP4D4j7MIh1w,446
38
+ shotgun/agents/history/context_extraction.py,sha256=yPF3oYpv5GFsFQT5y53ORKdADtrkGH4u8LwPdO0YVzU,7157
39
+ shotgun/agents/history/history_building.py,sha256=6LFDZ60MTPDoGAcmu_mjlnjVYu8YYWdIi-cGbF3jm7A,3532
40
+ shotgun/agents/history/history_processors.py,sha256=Xt025vfcTesV8WjcnOvdHBz1Sv0UwvvOBehH5-qtbj0,18708
41
+ shotgun/agents/history/message_utils.py,sha256=aPusAl2RYKbjc7lBxPaNprRHmZEG6fe97q7DQUlhlzU,2918
42
+ shotgun/agents/history/token_estimation.py,sha256=iRyKq-YDivEpJrULIbQgNpjhOuSC4nHVJYfsWEFV8sQ,4770
43
+ shotgun/agents/history/token_counting/__init__.py,sha256=YZt5Lus--fkF6l1hdkIlp1e_oAIpACNwHOI0FRP4q8s,924
44
+ shotgun/agents/history/token_counting/anthropic.py,sha256=0Nf4mR7yjDbGyy8WguHse-sOENyU4X4CkthPjzbBaog,4031
45
+ shotgun/agents/history/token_counting/base.py,sha256=TN4mzwSyWNQyTuOuCFaU-8AgLdAyquoX3af4qrmkxCs,1904
46
+ shotgun/agents/history/token_counting/openai.py,sha256=XJ2z2HaUG6f3Cw9tCK_yaOsaMJGHpSFF1I30-d3soSI,2350
47
+ shotgun/agents/history/token_counting/sentencepiece_counter.py,sha256=qj1bT7J5nCd5y6Mr42O9K1KTaele0rjdd09FeyyEA70,3987
48
+ shotgun/agents/history/token_counting/tokenizer_cache.py,sha256=Y0V6KMtEwn42M5-zJGAc7YudM8X6m5-j2ekA6YGL5Xk,2868
49
+ shotgun/agents/history/token_counting/utils.py,sha256=d124IDjtd0IYBYrr3gDJGWxSbdP10Vrc7ZistbUosMg,5002
50
+ shotgun/agents/tools/__init__.py,sha256=kYppd4f4MoJcfTEPzkY2rqtxL1suXRGa9IRUm1G82GY,717
51
+ shotgun/agents/tools/file_management.py,sha256=bVqDlbvSGmrEUFxyKMqPaWm2HEocYmJ9awjV4nYgvWY,9646
52
+ shotgun/agents/tools/registry.py,sha256=7F6qFcdGd5Hka6uEC9Xrc4ZCENed8R5_1QJMAgKHYqs,6458
53
+ shotgun/agents/tools/codebase/__init__.py,sha256=ceAGkK006NeOYaIJBLQsw7Q46sAyCRK9PYDs8feMQVw,661
54
+ shotgun/agents/tools/codebase/codebase_shell.py,sha256=XwrfxAyDGRTRBaZdO0ivcllwIZnDX-Dfbtdp-ncJXlM,8779
55
+ shotgun/agents/tools/codebase/directory_lister.py,sha256=dB38gPS2G02EnDBVFP99_Zu23rl7XyCjS4OwiDt8GcA,4904
56
+ shotgun/agents/tools/codebase/file_read.py,sha256=ZK1PPFOCTyn-yPCHcMyb603TR1fLQ1DXcypVcJAEnpA,5247
57
+ shotgun/agents/tools/codebase/models.py,sha256=8eR3_8DQiBNgB2twu0aC_evIJbugN9KW3gtxMZdGYCE,10087
58
+ shotgun/agents/tools/codebase/query_graph.py,sha256=taWU8yzADUoZ22Z9msGvw4xXFYZz91Xh-V2aAVVb_7M,2308
59
+ shotgun/agents/tools/codebase/retrieve_code.py,sha256=KCcKzro0YQ9cFetcm5NF8yKO8hkW7_9aBf67P3PlF2Q,3082
60
+ shotgun/agents/tools/web_search/__init__.py,sha256=166SzGDspEqRoHvAoguoy02WAT5EQfozoc5Ha5VubdY,3699
61
+ shotgun/agents/tools/web_search/anthropic.py,sha256=vvOjfUZIMcUIABmpJAeVbbm-dDibi8e6PbxDHKOGCyE,5688
62
+ shotgun/agents/tools/web_search/gemini.py,sha256=K9QpLMQ9-Or7ZU79y4aOGoxKQIWVZ1zOk2drNIvVjrU,3853
63
+ shotgun/agents/tools/web_search/openai.py,sha256=1SgZOMkY0eKcTBRGfxQ7eAOyQjwoGR6vvLcwUB9bdUc,3733
64
+ shotgun/agents/tools/web_search/utils.py,sha256=GLJ5QV9bT2ubFMuFN7caMN7tK9OTJ0R3GD57B-tCMF0,532
65
+ shotgun/cli/__init__.py,sha256=_F1uW2g87y4bGFxz8Gp8u7mq2voHp8vQIUtCmm8Tojo,40
66
+ shotgun/cli/clear.py,sha256=dJ2aAe8zdc-Xxn5Vdmpae8dAcyiFx5u_Cp7OelE53IM,1597
67
+ shotgun/cli/compact.py,sha256=oZV0MhpvM0u0sHUlhwTC6HP8OB1coGiMe-ktYLH-IEs,5896
68
+ shotgun/cli/config.py,sha256=lT_zXwui-Wv3hewjebQeu9eLwK3tYn1wla5vKit6eqs,7931
69
+ shotgun/cli/context.py,sha256=y2AnLowcpXmDoeo3M6ZBq0-531XALsl2mIc9F0zyPog,3801
70
+ shotgun/cli/export.py,sha256=3hIwK2_OM1MFYSTfzBxsGuuBGm5fo0XdxASfQ5Uqb3Y,2471
71
+ shotgun/cli/feedback.py,sha256=K8iFDl5051_g95jwDEm9gdKUjDWO8HBVZjlRN8uD7Mk,1300
72
+ shotgun/cli/models.py,sha256=cutimFStP6m5pXmg3kbhtWZjNA2us2cPQFJtz2pTdOU,208
73
+ shotgun/cli/plan.py,sha256=T-eu-I9z-dSoKqJ-KI8X5i5Mm0VL1BfornxRiUjTgnk,2324
74
+ shotgun/cli/research.py,sha256=qvBBtX3Wyn6pDZlJpcEvbeK-0iTOXegi71tm8HKVYaE,2490
75
+ shotgun/cli/specify.py,sha256=ErRQ72Zc75fmxopZbKy0vvnLPuYBLsGynpjj1X6-BwI,2166
76
+ shotgun/cli/tasks.py,sha256=17qWoGCVYpNIxa2vaoIH1P-xz2RcGLaK8SF4JlPsOWI,2420
77
+ shotgun/cli/update.py,sha256=sc3uuw3AXFF0kpskWah1JEoTwrKv67fCnqp9BjeND3o,5328
78
+ shotgun/cli/utils.py,sha256=umVWXDx8pelovMk-nT8B7m0c39AKY9hHsuAMnbw_Hcg,732
79
+ shotgun/cli/codebase/__init__.py,sha256=rKdvx33p0i_BYbNkz5_4DCFgEMwzOOqLi9f5p7XTLKM,73
80
+ shotgun/cli/codebase/commands.py,sha256=1N2yOGmok0ZarqXPIpWGcsQrwm_ZJcyWiMxy6tm0j70,8711
81
+ shotgun/cli/codebase/models.py,sha256=B9vs-d-Bq0aS6FZKebhHT-9tw90Y5f6k_t71VlZpL8k,374
82
+ shotgun/codebase/__init__.py,sha256=QBgFE2Abd5Vl7_NdYOglF9S6d-vIjkb3C0cpIYoHZEU,309
83
+ shotgun/codebase/models.py,sha256=5e_7zaPL032n_ghcvs01Uug3BH4jyKiQ3S3U5w21BSM,5296
84
+ shotgun/codebase/service.py,sha256=nyggapfHKdwkKXyuT9oA0tJ9qf4RNVsOxfY8lC5pHro,8006
85
+ shotgun/codebase/core/__init__.py,sha256=GWWhJEqChiDXAF4omYCgzgoZmJjwsAf6P1aZ5Bl8OE0,1170
86
+ shotgun/codebase/core/change_detector.py,sha256=kWCYLWzRzb3IGGOj71KBn7UOCOKMpINJbOBDf98aMxE,12409
87
+ shotgun/codebase/core/code_retrieval.py,sha256=_JVyyQKHDFm3dxOOua1mw9eIIOHIVz3-I8aZtEsEj1E,7927
88
+ shotgun/codebase/core/cypher_models.py,sha256=Yfysfa9lLguILftkmtuJCN3kLBFIo7WW7NigM-Zr-W4,1735
89
+ shotgun/codebase/core/ingestor.py,sha256=CNYbdoJycnbA2psYCD9uKcUwIe3Ao7I7T6NrPhTQE9k,64613
90
+ shotgun/codebase/core/language_config.py,sha256=vsqHyuFnumRPRBV1lMOxWKNOIiClO6FyfKQR0fGrtl4,8934
91
+ shotgun/codebase/core/manager.py,sha256=1ykkGSrR4ooEKiluGp-17q3n9hd2LSjonvZL10Xb0pk,66697
92
+ shotgun/codebase/core/nl_query.py,sha256=kPoSJXBlm5rLhzOofZhqPVMJ_Lj3rV2H6sld6BwtMdg,16115
93
+ shotgun/codebase/core/parser_loader.py,sha256=LZRrDS8Sp518jIu3tQW-BxdwJ86lnsTteI478ER9Td8,4278
94
+ shotgun/llm_proxy/__init__.py,sha256=3ST3ygtf2sXXSOjIFHxVZ5xqRbT3TF7jpNHwuZAtIwA,452
95
+ shotgun/llm_proxy/clients.py,sha256=Y19W8Gb2e-37w8rUKPmxJOqoTk6GlcPhZhoeAbbURU0,1341
96
+ shotgun/llm_proxy/constants.py,sha256=_4piKdyvM7pAIRdAGrzYexwWoDlueUZiEMfwWrOa4T0,381
97
+ shotgun/prompts/__init__.py,sha256=RswUm0HMdfm2m2YKUwUsEdRIwoczdbI7zlucoEvHYRo,132
98
+ shotgun/prompts/loader.py,sha256=_7CdUYrAo6ZwvTBUlXugKyLU0IDBg5CVzUIAHFPw418,4433
99
+ shotgun/prompts/agents/__init__.py,sha256=YRIJMbzpArojNX1BP5gfxxois334z_GQga8T-xyWMbY,39
100
+ shotgun/prompts/agents/export.j2,sha256=DGqVijH1PkpkY0rDauU52u_fMv15frEvOdXAPFZNMM4,17057
101
+ shotgun/prompts/agents/plan.j2,sha256=mbt505NdqmzmPxXzQYJS_gH5vkiVa2a3Dgz2K-15JZk,6093
102
+ shotgun/prompts/agents/research.j2,sha256=QFoSSiF_5v7c78RHaiucZEb9mOC_wF54BVKnJEH_DnI,3964
103
+ shotgun/prompts/agents/specify.j2,sha256=XdB2WehbVmszw9crl6PEHLyLgwvU08MV--ClV3hI4mA,12014
104
+ shotgun/prompts/agents/tasks.j2,sha256=SMvTQPzRR6eHlW3fcj-7Bl-Lh9HWaiF3uAKv77nMdZw,5956
105
+ shotgun/prompts/agents/partials/codebase_understanding.j2,sha256=7WH-PVd-TRBFQUdOdKkwwn9hAUaJznFZMAGHhO7IGGU,5633
106
+ shotgun/prompts/agents/partials/common_agent_system_prompt.j2,sha256=wfjsQGcMTWWGBk9l0pKDnPehG8NrwTHm5FFEqba__LI,2161
107
+ shotgun/prompts/agents/partials/content_formatting.j2,sha256=MG0JB7SSp8YV5akDWpbs2f9DcdREIYqLp38NnoWLeQ0,1854
108
+ shotgun/prompts/agents/partials/interactive_mode.j2,sha256=nyNTURRszG_Pl7M3TS_luUshekDn9yVHfBDMkHSZ1kw,1448
109
+ shotgun/prompts/agents/state/system_state.j2,sha256=RPweqBYmgWMiDuOjdEDl6NLgYU7HMaUGW1jBSnD5UzQ,1270
110
+ shotgun/prompts/agents/state/codebase/codebase_graphs_available.j2,sha256=U-hy-H9bPwV0sYIHTZ5TESxc5EOCtntI8GUZOmJipJw,601
111
+ shotgun/prompts/codebase/__init__.py,sha256=NYuPMtmYM2ptuwf3YxVuotNlJOUq0hnjmwlzKcJkGK4,42
112
+ shotgun/prompts/codebase/cypher_query_patterns.j2,sha256=ufTx_xT3VoS76KcVUbIgGQx-bJoJHx3bBE3dagAXv18,8913
113
+ shotgun/prompts/codebase/cypher_system.j2,sha256=jo8d_AIoyAd0zKCvPXSmYGBxvtulMsCfeaOTdOfeC5g,2620
114
+ shotgun/prompts/codebase/enhanced_query_context.j2,sha256=WzGnFaBLZO-mOdkZ_u_PewSu9niKy87DKNL4uzQq1Jg,724
115
+ shotgun/prompts/codebase/partials/cypher_rules.j2,sha256=yhptyyZNzFNJWFGmOkxpF5PzZtUAXWDF4xl9ADu7yDw,3200
116
+ shotgun/prompts/codebase/partials/graph_schema.j2,sha256=fUsD1ZgU1pIWUzrs97jHq3TatKeGSvZgG8XP5gCQUJc,1939
117
+ shotgun/prompts/codebase/partials/temporal_context.j2,sha256=yYHQHBQ4EeSs6TtKPm9fflGW3y6H0-yAANcTdsApkk4,1388
118
+ shotgun/prompts/history/__init__.py,sha256=wbMLQ8yWmYz1sfXXigEAUlNkFcM50KdQv0kp4VU_P58,43
119
+ shotgun/prompts/history/incremental_summarization.j2,sha256=GmnNh0pWTjaEaI1sPwKNsGCys5fK8xrzWqalAs_LhJw,2447
120
+ shotgun/prompts/history/summarization.j2,sha256=OYNVHg65zbuWB6_pXzTOs2T2k5qFD2gyfbmr6NP01rs,2268
121
+ shotgun/prompts/tools/web_search.j2,sha256=_F1m5UYiZENPQCqTUiO2du9Lkzs1SWujjAiauDD_5-Y,568
122
+ shotgun/sdk/__init__.py,sha256=ESV0WM9MigjXG30g9qVjcCMI40GQv-P-MSMGVuOisK4,380
123
+ shotgun/sdk/codebase.py,sha256=7doUvwwl27RDJZIbP56LQsAx26GANtAKEBptTUhLT6w,8842
124
+ shotgun/sdk/exceptions.py,sha256=qBcQv0v7ZTwP7CMcxZST4GqCsfOWtOUjSzGBo0-heqo,412
125
+ shotgun/sdk/models.py,sha256=X9nOTUHH0cdkQW1NfnMEDu-QgK9oUsEISh1Jtwr5Am4,5496
126
+ shotgun/sdk/services.py,sha256=J4PJFSxCQ6--u7rb3Ta-9eYtlYcxcbnzrMP6ThyCnw4,705
127
+ shotgun/shotgun_web/__init__.py,sha256=IB-TvK3WvLNrdKH0j9MwMGtIjqi81ASFIVwaZa0ifNg,461
128
+ shotgun/shotgun_web/client.py,sha256=n5DDuVfSa6VPZjhSsfSxQlSFOnhgDHyidRnB8Hv9XF4,4134
129
+ shotgun/shotgun_web/constants.py,sha256=eNvtjlu81bAVQaCwZXOVjSpDopUm9pf34XuZEvuMiko,661
130
+ shotgun/shotgun_web/models.py,sha256=Ie9VfqKZM2tIJhIjentU9qLoNaMZvnUJaIu-xg9kQsA,1391
131
+ shotgun/tui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
132
+ shotgun/tui/app.py,sha256=zXV2WIc5mdunDXRUBlrlSbaO4J8D__0UxikfxMDaR6k,12287
133
+ shotgun/tui/containers.py,sha256=OyKNgtB9TJZrQwObmEN44cYgodTyEL6xX4YAUFUw0Mg,3333
134
+ shotgun/tui/dependencies.py,sha256=gxLyejHMxS5Fef4Xf06GnMDVRJSaRt9j2JT9lyEIILQ,1319
135
+ shotgun/tui/filtered_codebase_service.py,sha256=lJ8gTMhIveTatmvmGLP299msWWTkVYKwvY_2FhuL2s4,1687
136
+ shotgun/tui/protocols.py,sha256=udScqPLb6yRGw1uDO6AuskRu33riaVVh0CAynEogvPM,1256
137
+ shotgun/tui/styles.tcss,sha256=ETyyw1bpMBOqTi5RLcAJUScdPWTvAWEqE9YcT0kVs_E,121
138
+ shotgun/tui/commands/__init__.py,sha256=qxYz-9aGhXAZF9VQ5AyALejI1TacsEc2cX2DH7vTXoM,2559
139
+ shotgun/tui/components/context_indicator.py,sha256=TNvzGmzALHGbOf-kPqImTy-0-spBibXGi63de7VbDHk,4270
140
+ shotgun/tui/components/mode_indicator.py,sha256=NWswddRaYxTY27XOd2oKsWKhaM4dFmCl_LyclRJJQR4,2354
141
+ shotgun/tui/components/prompt_input.py,sha256=Ss-htqraHZAPaehGE4x86ij0veMjc4UgadMXpbdXr40,2229
142
+ shotgun/tui/components/spinner.py,sha256=ovTDeaJ6FD6chZx_Aepia6R3UkPOVJ77EKHfRmn39MY,2427
143
+ shotgun/tui/components/splash.py,sha256=vppy9vEIEvywuUKRXn2y11HwXSRkQZHLYoVjhDVdJeU,1267
144
+ shotgun/tui/components/status_bar.py,sha256=ctfk1YcHBb9-iwAw3VOO6gLoSrcjvykFOxMl096eYsg,1703
145
+ shotgun/tui/components/vertical_tail.py,sha256=kROwTaRjUwVB7H35dtmNcUVPQqNYvvfq7K2tXBKEb6c,638
146
+ shotgun/tui/screens/chat.tcss,sha256=7jM4YTBj-N-5T4NIiU2AJiGtKYvYO50OAkI0o7_qimI,574
147
+ shotgun/tui/screens/confirmation_dialog.py,sha256=62RYcTSfZHLH77bewmtSEeGgLRyYvCQh16ZoZuIE1J0,4788
148
+ shotgun/tui/screens/directory_setup.py,sha256=lIZ1J4A6g5Q2ZBX8epW7BhR96Dmdcg22CyiM5S-I5WU,3237
149
+ shotgun/tui/screens/feedback.py,sha256=VxpW0PVxMp22ZvSfQkTtgixNrpEOlfWtekjqlVfYEjA,5708
150
+ shotgun/tui/screens/model_picker.py,sha256=I5lMa6GZci6uZ1TmE90S--L_bsgoUC5sMbXXNOsPODc,12752
151
+ shotgun/tui/screens/pipx_migration.py,sha256=i5g9pQLKeGfqwppVFddRTypXCBk9byaIQ_1wgYuDTfc,4326
152
+ shotgun/tui/screens/provider_config.py,sha256=UCnAzjXPoP7Y73gsXxZF2PNA4LdSgpgoGYwiOd6fERA,10902
153
+ shotgun/tui/screens/shotgun_auth.py,sha256=Y--7LZewV6gfDkucxymfAO7BCd7eI2C3H1ClDMztVio,10663
154
+ shotgun/tui/screens/splash.py,sha256=E2MsJihi3c9NY1L28o_MstDxGwrCnnV7zdq00MrGAsw,706
155
+ shotgun/tui/screens/welcome.py,sha256=XOKhd3hjhEUBjs9ZlUIZDdmrlIAvQ7qdO1_KKruGcqo,6134
156
+ shotgun/tui/screens/chat/__init__.py,sha256=wChPqpJG-7kPYVYZjE8BlkXWxfW_YABhTR2fQ51opHY,113
157
+ shotgun/tui/screens/chat/chat.tcss,sha256=7jM4YTBj-N-5T4NIiU2AJiGtKYvYO50OAkI0o7_qimI,574
158
+ shotgun/tui/screens/chat/chat_screen.py,sha256=3SbRSeRRcdy2XUYRcveDzM6ah9VRtXxdTc0QBEwv8Ho,45339
159
+ shotgun/tui/screens/chat/codebase_index_prompt_screen.py,sha256=QjqOOqaXJks-82prEHCUnIZbmNBoGb2FLqxet_dUUYM,2070
160
+ shotgun/tui/screens/chat/codebase_index_selection.py,sha256=Zz0vi3uLhWysdPHRO8Rye9QX4hIPeWhSAw6Y9-BlOVA,241
161
+ shotgun/tui/screens/chat/help_text.py,sha256=VMvQ9VTuTaVOrMiyLWid0_5iX9qhNhQMRUM9Yq57ggs,1405
162
+ shotgun/tui/screens/chat/prompt_history.py,sha256=uL3KVFb32vD09jN338mebFAi0QI-EJXTxcEQy-j6QdQ,1201
163
+ shotgun/tui/screens/chat_screen/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
164
+ shotgun/tui/screens/chat_screen/command_providers.py,sha256=vHqNS9ELQlP-Yjm5IoT_LkqqBAQXyshwucKVntW4d_Y,15098
165
+ shotgun/tui/screens/chat_screen/hint_message.py,sha256=WOpbk8q7qt7eOHTyyHvh_IQIaublVDeJGaLpsxEk9FA,933
166
+ shotgun/tui/screens/chat_screen/history/__init__.py,sha256=PRznBlnm9caNE0YYC08PkvNMAK-JpuULwmByaRNTKO0,581
167
+ shotgun/tui/screens/chat_screen/history/agent_response.py,sha256=m-RtSg77y-g_mzkVHOBMTMSW1ZE6RUCUYupn-PylPcc,2378
168
+ shotgun/tui/screens/chat_screen/history/chat_history.py,sha256=6owb83I3RefJzh7xtqgKHR-x5-3XYi6CGiIMyn5xfyI,4078
169
+ shotgun/tui/screens/chat_screen/history/formatters.py,sha256=R1roy6Ap04dUJ7clMLtYqSLkCMD6g2K6sVanOpDGwdc,4616
170
+ shotgun/tui/screens/chat_screen/history/partial_response.py,sha256=loMaUoXLphnRh3gl4xvmTtkfaFY-ULrSDjndAWQcy1s,1318
171
+ shotgun/tui/screens/chat_screen/history/user_question.py,sha256=BKl4FVKh4veszykkfr8RI06O5NEDIBZ17IZSCLzlImA,1305
172
+ shotgun/tui/services/__init__.py,sha256=-BKRCRYQSnQZI4PxxUpkbvq8eYhXGjWHJtVW06CYQ2o,149
173
+ shotgun/tui/services/conversation_service.py,sha256=ZViELMDrwaos_fSgTsuFtH_8CAGuAeW9J766-u6igAQ,6573
174
+ shotgun/tui/state/__init__.py,sha256=oPV_VsvoiXhuZPwnra38kCT3RyXLvVxkVKDOv-LXGgA,141
175
+ shotgun/tui/state/processing_state.py,sha256=O0SxqQmljWyaSAhdCAr2fNgS0ibFiIhGRNHpiUSCkW0,6234
176
+ shotgun/tui/utils/__init__.py,sha256=cFjDfoXTRBq29wgP7TGRWUu1eFfiIG-LLOzjIGfadgI,150
177
+ shotgun/tui/utils/mode_progress.py,sha256=lseRRo7kMWLkBzI3cU5vqJmS2ZcCjyRYf9Zwtvc-v58,10931
178
+ shotgun/tui/widgets/__init__.py,sha256=rfWJJ3R9ID9J-qWm4ESnGgTK5KpKZJ7bdO0BH0PLdPI,152
179
+ shotgun/tui/widgets/widget_coordinator.py,sha256=n91OOxeZ4XE9FlLgzxlFYAFqv1uLHQ_V_p3L0vv1doI,8508
180
+ shotgun/utils/__init__.py,sha256=WinIEp9oL2iMrWaDkXz2QX4nYVPAm8C9aBSKTeEwLtE,198
181
+ shotgun/utils/datetime_utils.py,sha256=x_uYmG1n9rkhSO2oR2uV9ttiuPL0nKa9os8YYaPfdWY,2592
182
+ shotgun/utils/env_utils.py,sha256=ulM3BRi9ZhS7uC-zorGeDQm4SHvsyFuuU9BtVPqdrHY,1418
183
+ shotgun/utils/file_system_utils.py,sha256=2SbEWaJnxNbAWUeBCcYNfHMiz-10EOALMIpgo8AYMjY,1020
184
+ shotgun/utils/source_detection.py,sha256=Co6Q03R3fT771TF3RzB-70stfjNP2S4F_ArZKibwzm8,454
185
+ shotgun/utils/update_checker.py,sha256=6fjiVUXgdxUrI54dfw0xBsrw7jlobYkjYNZaR-JoTpI,9667
186
+ shotgun_sh-0.2.11.dev1.dist-info/METADATA,sha256=f8AEKVtZ8oNsYQjeyBidIOTr-7MgzTaidqHUBomKLuc,4453
187
+ shotgun_sh-0.2.11.dev1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
188
+ shotgun_sh-0.2.11.dev1.dist-info/entry_points.txt,sha256=GQmtjKaPtviqYOuB3C0SMGlG5RZS9-VDDIKxV_IVHmY,75
189
+ shotgun_sh-0.2.11.dev1.dist-info/licenses/LICENSE,sha256=ZZEiPnjIkv3rNT-CJBMU6l7VukLUdddCo3bTwal1NIQ,1070
190
+ shotgun_sh-0.2.11.dev1.dist-info/RECORD,,
@@ -1,2 +1,3 @@
1
1
  [console_scripts]
2
2
  shotgun = shotgun.main:app
3
+ shotgun-sh = shotgun.main:app
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2024 Proofs.io
3
+ Copyright (c) 2025 Mimir AI, Inc.
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -1,37 +0,0 @@
1
- """User interaction tools for Pydantic AI agents."""
2
-
3
- from asyncio import get_running_loop
4
-
5
- from pydantic_ai import CallDeferred, RunContext
6
-
7
- from shotgun.agents.models import AgentDeps, UserQuestion
8
- from shotgun.logging_config import get_logger
9
-
10
- logger = get_logger(__name__)
11
-
12
-
13
- async def ask_user(ctx: RunContext[AgentDeps], question: str) -> str:
14
- """Ask the human a question and return the answer.
15
-
16
-
17
- Args:
18
- question: The question to ask the user with a clear CTA at the end. Needs to be is readable, clear, and easy to understand. Use Markdown formatting. Make key phrases and words stand out.
19
-
20
- Returns:
21
- The user's response as a string
22
- """
23
- tool_call_id = ctx.tool_call_id
24
- assert tool_call_id is not None # noqa: S101
25
-
26
- try:
27
- logger.debug("\n👉 %s\n", question)
28
- future = get_running_loop().create_future()
29
- await ctx.deps.queue.put(
30
- UserQuestion(question=question, tool_call_id=tool_call_id, result=future)
31
- )
32
- ctx.deps.tasks.append(future)
33
- raise CallDeferred(question)
34
-
35
- except (EOFError, KeyboardInterrupt):
36
- logger.warning("User input interrupted or unavailable")
37
- return "User input not available or interrupted"