shotgun-sh 0.2.8.dev2__py3-none-any.whl → 0.2.17__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.
Files changed (117) hide show
  1. shotgun/agents/agent_manager.py +354 -46
  2. shotgun/agents/common.py +14 -8
  3. shotgun/agents/config/constants.py +0 -6
  4. shotgun/agents/config/manager.py +66 -35
  5. shotgun/agents/config/models.py +41 -1
  6. shotgun/agents/config/provider.py +33 -5
  7. shotgun/agents/context_analyzer/__init__.py +28 -0
  8. shotgun/agents/context_analyzer/analyzer.py +471 -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 +2 -0
  13. shotgun/agents/conversation_manager.py +35 -19
  14. shotgun/agents/export.py +2 -2
  15. shotgun/agents/history/compaction.py +9 -4
  16. shotgun/agents/history/history_processors.py +113 -5
  17. shotgun/agents/history/token_counting/anthropic.py +17 -1
  18. shotgun/agents/history/token_counting/base.py +14 -3
  19. shotgun/agents/history/token_counting/openai.py +11 -1
  20. shotgun/agents/history/token_counting/sentencepiece_counter.py +8 -0
  21. shotgun/agents/history/token_counting/tokenizer_cache.py +3 -1
  22. shotgun/agents/history/token_counting/utils.py +0 -3
  23. shotgun/agents/plan.py +2 -2
  24. shotgun/agents/research.py +3 -3
  25. shotgun/agents/specify.py +2 -2
  26. shotgun/agents/tasks.py +2 -2
  27. shotgun/agents/tools/codebase/codebase_shell.py +6 -0
  28. shotgun/agents/tools/codebase/directory_lister.py +6 -0
  29. shotgun/agents/tools/codebase/file_read.py +11 -2
  30. shotgun/agents/tools/codebase/query_graph.py +6 -0
  31. shotgun/agents/tools/codebase/retrieve_code.py +6 -0
  32. shotgun/agents/tools/file_management.py +27 -7
  33. shotgun/agents/tools/registry.py +217 -0
  34. shotgun/agents/tools/web_search/__init__.py +8 -8
  35. shotgun/agents/tools/web_search/anthropic.py +8 -2
  36. shotgun/agents/tools/web_search/gemini.py +7 -1
  37. shotgun/agents/tools/web_search/openai.py +7 -1
  38. shotgun/agents/tools/web_search/utils.py +2 -2
  39. shotgun/agents/usage_manager.py +16 -11
  40. shotgun/api_endpoints.py +7 -3
  41. shotgun/build_constants.py +3 -3
  42. shotgun/cli/clear.py +53 -0
  43. shotgun/cli/compact.py +186 -0
  44. shotgun/cli/config.py +8 -5
  45. shotgun/cli/context.py +111 -0
  46. shotgun/cli/export.py +1 -1
  47. shotgun/cli/feedback.py +4 -2
  48. shotgun/cli/models.py +1 -0
  49. shotgun/cli/plan.py +1 -1
  50. shotgun/cli/research.py +1 -1
  51. shotgun/cli/specify.py +1 -1
  52. shotgun/cli/tasks.py +1 -1
  53. shotgun/cli/update.py +16 -2
  54. shotgun/codebase/core/change_detector.py +5 -3
  55. shotgun/codebase/core/code_retrieval.py +4 -2
  56. shotgun/codebase/core/ingestor.py +10 -8
  57. shotgun/codebase/core/manager.py +13 -4
  58. shotgun/codebase/core/nl_query.py +1 -1
  59. shotgun/exceptions.py +32 -0
  60. shotgun/logging_config.py +18 -27
  61. shotgun/main.py +73 -11
  62. shotgun/posthog_telemetry.py +37 -28
  63. shotgun/prompts/agents/partials/common_agent_system_prompt.j2 +3 -2
  64. shotgun/sentry_telemetry.py +163 -16
  65. shotgun/settings.py +238 -0
  66. shotgun/telemetry.py +10 -33
  67. shotgun/tui/app.py +243 -43
  68. shotgun/tui/commands/__init__.py +1 -1
  69. shotgun/tui/components/context_indicator.py +179 -0
  70. shotgun/tui/components/mode_indicator.py +70 -0
  71. shotgun/tui/components/status_bar.py +48 -0
  72. shotgun/tui/containers.py +91 -0
  73. shotgun/tui/dependencies.py +39 -0
  74. shotgun/tui/protocols.py +45 -0
  75. shotgun/tui/screens/chat/__init__.py +5 -0
  76. shotgun/tui/screens/chat/chat.tcss +54 -0
  77. shotgun/tui/screens/chat/chat_screen.py +1254 -0
  78. shotgun/tui/screens/chat/codebase_index_prompt_screen.py +64 -0
  79. shotgun/tui/screens/chat/codebase_index_selection.py +12 -0
  80. shotgun/tui/screens/chat/help_text.py +40 -0
  81. shotgun/tui/screens/chat/prompt_history.py +48 -0
  82. shotgun/tui/screens/chat.tcss +11 -0
  83. shotgun/tui/screens/chat_screen/command_providers.py +78 -2
  84. shotgun/tui/screens/chat_screen/history/__init__.py +22 -0
  85. shotgun/tui/screens/chat_screen/history/agent_response.py +66 -0
  86. shotgun/tui/screens/chat_screen/history/chat_history.py +115 -0
  87. shotgun/tui/screens/chat_screen/history/formatters.py +115 -0
  88. shotgun/tui/screens/chat_screen/history/partial_response.py +43 -0
  89. shotgun/tui/screens/chat_screen/history/user_question.py +42 -0
  90. shotgun/tui/screens/confirmation_dialog.py +151 -0
  91. shotgun/tui/screens/feedback.py +4 -4
  92. shotgun/tui/screens/github_issue.py +102 -0
  93. shotgun/tui/screens/model_picker.py +49 -24
  94. shotgun/tui/screens/onboarding.py +431 -0
  95. shotgun/tui/screens/pipx_migration.py +153 -0
  96. shotgun/tui/screens/provider_config.py +50 -27
  97. shotgun/tui/screens/shotgun_auth.py +2 -2
  98. shotgun/tui/screens/welcome.py +14 -11
  99. shotgun/tui/services/__init__.py +5 -0
  100. shotgun/tui/services/conversation_service.py +184 -0
  101. shotgun/tui/state/__init__.py +7 -0
  102. shotgun/tui/state/processing_state.py +185 -0
  103. shotgun/tui/utils/mode_progress.py +14 -7
  104. shotgun/tui/widgets/__init__.py +5 -0
  105. shotgun/tui/widgets/widget_coordinator.py +263 -0
  106. shotgun/utils/file_system_utils.py +22 -2
  107. shotgun/utils/marketing.py +110 -0
  108. shotgun/utils/update_checker.py +69 -14
  109. shotgun_sh-0.2.17.dist-info/METADATA +465 -0
  110. shotgun_sh-0.2.17.dist-info/RECORD +194 -0
  111. {shotgun_sh-0.2.8.dev2.dist-info → shotgun_sh-0.2.17.dist-info}/entry_points.txt +1 -0
  112. {shotgun_sh-0.2.8.dev2.dist-info → shotgun_sh-0.2.17.dist-info}/licenses/LICENSE +1 -1
  113. shotgun/tui/screens/chat.py +0 -996
  114. shotgun/tui/screens/chat_screen/history.py +0 -335
  115. shotgun_sh-0.2.8.dev2.dist-info/METADATA +0 -126
  116. shotgun_sh-0.2.8.dev2.dist-info/RECORD +0 -155
  117. {shotgun_sh-0.2.8.dev2.dist-info → shotgun_sh-0.2.17.dist-info}/WHEEL +0 -0
@@ -0,0 +1,465 @@
1
+ Metadata-Version: 2.4
2
+ Name: shotgun-sh
3
+ Version: 0.2.17
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 :: 4 - Beta
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: aiofiles>=24.0.0
25
+ Requires-Dist: anthropic>=0.39.0
26
+ Requires-Dist: dependency-injector>=4.41.0
27
+ Requires-Dist: genai-prices>=0.0.27
28
+ Requires-Dist: httpx>=0.27.0
29
+ Requires-Dist: jinja2>=3.1.0
30
+ Requires-Dist: kuzu>=0.7.0
31
+ Requires-Dist: logfire>=2.0.0
32
+ Requires-Dist: openai>=1.0.0
33
+ Requires-Dist: packaging>=23.0
34
+ Requires-Dist: posthog>=3.0.0
35
+ Requires-Dist: pydantic-ai>=0.0.14
36
+ Requires-Dist: pydantic-settings>=2.0.0
37
+ Requires-Dist: rich>=13.0.0
38
+ Requires-Dist: sentencepiece>=0.2.0
39
+ Requires-Dist: sentry-sdk[pure-eval]>=2.0.0
40
+ Requires-Dist: tenacity>=8.0.0
41
+ Requires-Dist: textual-dev>=1.7.0
42
+ Requires-Dist: textual-serve>=0.1.0
43
+ Requires-Dist: textual>=6.1.0
44
+ Requires-Dist: tiktoken>=0.7.0
45
+ Requires-Dist: tree-sitter-go>=0.23.0
46
+ Requires-Dist: tree-sitter-javascript>=0.23.0
47
+ Requires-Dist: tree-sitter-python>=0.23.0
48
+ Requires-Dist: tree-sitter-rust>=0.23.0
49
+ Requires-Dist: tree-sitter-typescript>=0.23.0
50
+ Requires-Dist: tree-sitter>=0.21.0
51
+ Requires-Dist: typer>=0.12.0
52
+ Requires-Dist: watchdog>=4.0.0
53
+ Provides-Extra: dev
54
+ Requires-Dist: commitizen>=3.13.0; extra == 'dev'
55
+ Requires-Dist: lefthook>=1.12.0; extra == 'dev'
56
+ Requires-Dist: mypy>=1.11.0; extra == 'dev'
57
+ Requires-Dist: ruff>=0.6.0; extra == 'dev'
58
+ Description-Content-Type: text/markdown
59
+
60
+ <div align="center">
61
+ <img width="400" height="150" alt="Shotgun logo transparent background" src="https://github.com/user-attachments/assets/08f9ccd5-f2e8-4bf4-9cb2-2f0de866a76a" />
62
+
63
+ ### Spec-Driven Development
64
+
65
+
66
+ **Write codebase-aware specs for AI coding agents (Codex, Cursor, Claude Code) so they don't derail.**
67
+ <p align="center">
68
+ <a href="https://github.com/shotgun-sh/shotgun">
69
+ <img src="https://img.shields.io/badge/python-3.11+-blue?style=flat&logo=python&logoColor=white" />
70
+ </a>
71
+ <a href="https://www.producthunt.com/products/shotgun-cli/launches/shotgun-cli">
72
+ <img src="https://img.shields.io/badge/Product%20Hunt-%237%20Product%20of%20the%20Day-FF6154?style=flat&logo=producthunt&logoColor=white" />
73
+ </a>
74
+ <a href="https://github.com/shotgun-sh/shotgun?tab=contributing-ov-file">
75
+ <img src="https://img.shields.io/badge/PRs-welcome-brightgreen?style=flat" />
76
+ </a>
77
+ <a href="https://github.com/shotgun-sh/shotgun?tab=MIT-1-ov-file">
78
+ <img src="https://img.shields.io/badge/license-MIT-blue?style=flat" />
79
+ </a>
80
+ <a href="https://discord.com/invite/5RmY6J2N7s">
81
+ <img src="https://img.shields.io/badge/discord-150+%20online-5865F2?style=flat&logo=discord&logoColor=white" />
82
+ </a>
83
+ </p>
84
+
85
+ [![Website](https://img.shields.io/badge/-shotgun.sh-5865F2?style=social&logo=safari&logoColor=5865F2)](https://shotgun.sh) [![Follow @ShotgunCLI](https://img.shields.io/badge/Follow%20@ShotgunCLI-1DA1F2?style=social&logo=x&logoColor=000000)](https://x.com/ShotgunCLI) [![YouTube](https://img.shields.io/badge/-@shotgunCLI-FF0000?style=social&logo=youtube&logoColor=red)](https://www.youtube.com/@shotgunCLI)
86
+
87
+ </div>
88
+
89
+ ---
90
+
91
+ <table>
92
+ <tr>
93
+ <td>
94
+
95
+ **Shotgun is a CLI tool** that generates codebase-aware specs for AI coding agents like Cursor, Claude Code, and Lovable. **It reads your entire repository**, researches how new features should fit your architecture, and produces technical specifications that keep AI agents on track—so they build what you actually want instead of derailing halfway through. **Bring your own key (BYOK) or use a Shotgun subscription — $10 for $10 in usage.**
96
+
97
+ It includes research on existing patterns, implementation plans that respect your architecture, and task breakdowns ready to export as **AGENTS.md** files. Each spec is complete enough that your AI agent can work longer and further without losing context or creating conflicts.
98
+
99
+ <p align="center">
100
+ <img src="https://github.com/user-attachments/assets/9c7ca014-1ed3-4935-b310-9147b275fdc7" alt="Shotgun Demo" />
101
+ </p>
102
+
103
+ </td>
104
+ </tr>
105
+ </table>
106
+
107
+ ---
108
+
109
+ # 📦 Installation
110
+
111
+ ### 1. Install uv
112
+
113
+ Shotgun runs via `uvx` or `uv tool install`. First, install `uv` for your platform:
114
+
115
+ <table>
116
+ <tr>
117
+ <th>Platform</th>
118
+ <th>Installation Command</th>
119
+ </tr>
120
+ <tr>
121
+ <td><strong>macOS</strong> (Homebrew)</td>
122
+ <td>
123
+
124
+ ```bash
125
+ brew install uv
126
+ ```
127
+ </td>
128
+ </tr>
129
+ <tr>
130
+ <td><strong>macOS/Linux</strong> (curl)</td>
131
+ <td>
132
+
133
+ ```bash
134
+ curl -LsSf https://astral.sh/uv/install.sh | sh
135
+ ```
136
+ </td>
137
+ </tr>
138
+ <tr>
139
+ <td><strong>Windows</strong> (PowerShell)</td>
140
+ <td>
141
+
142
+ ```powershell
143
+ powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
144
+ ```
145
+ </td>
146
+ </tr>
147
+ </table>
148
+
149
+ _💡 Restart your terminal after installation_
150
+
151
+ ### 2. Run Shotgun
152
+
153
+ <table>
154
+ <tr>
155
+ <th>🚀 Try It Out (Ephemeral)</th>
156
+ <th>⚡ Regular Use (Permanent)</th>
157
+ </tr>
158
+ <tr>
159
+ <td>
160
+
161
+ **Best for:** Testing Shotgun first
162
+
163
+ ```bash
164
+ uvx shotgun-sh@latest
165
+ ```
166
+
167
+ No installation needed, runs immediately
168
+
169
+ </td>
170
+ <td>
171
+
172
+ **Best for:** Daily use
173
+
174
+ ```bash
175
+ uv tool install shotgun-sh
176
+ ```
177
+
178
+ Then run anywhere: ``` shotgun ```
179
+
180
+ </td>
181
+ </tr>
182
+ </table>
183
+
184
+ _**Why uv?** It's 10-100x faster than pip and handles binary wheels reliably—no cmake/build tool errors._
185
+
186
+ ### 3. Get Started
187
+
188
+ When you launch Shotgun, it will guide you through:
189
+
190
+ | Step | What Happens |
191
+ |------|--------------|
192
+ | **1. Codebase Indexing** | Builds a searchable graph of your entire repository |
193
+ | **2. LLM Setup** | Configure OpenAI, Anthropic, or Gemini |
194
+ | **3. First Research** | Start generating codebase-aware specs |
195
+
196
+ _**💡 Pro tip:** Run Shotgun in your IDE's terminal for the best experience._
197
+
198
+ > [!WARNING]
199
+ > **Upgrading from alpha?** Uninstall the old version first:
200
+ > ```bash
201
+ > npm uninstall -g @proofs-io/shotgun @proofs-io/shotgun-server
202
+ > ```
203
+
204
+ ---
205
+
206
+ # 🎥 Demo
207
+
208
+ <p align="center">
209
+ <a href="https://youtu.be/nR6iKbJ8l_I">
210
+ <img src="https://github.com/user-attachments/assets/37eae206-0d6f-4499-b980-2f33a5aed65d" alt="Watch the Shotgun demo" width="720" height="405">
211
+ </a>
212
+ </p>
213
+
214
+ _Click the image above to watch the full demo on YouTube_
215
+
216
+ ---
217
+
218
+ # 🎯 Usage
219
+
220
+ Shotgun's Terminal UI guides you through **5 specialized modes** — from research to export. Each mode has a dedicated AI agent optimized for that phase.
221
+
222
+ ### Launch Shotgun in your project directory:
223
+
224
+ | Already Installed | First Time / Try It Out |
225
+ |-------------------|------------------------|
226
+ | `shotgun` | `uvx shotgun-sh@latest` |
227
+
228
+ _The TUI opens automatically. **Press `Shift+Tab` to switch modes** or `Ctrl+P` for the command palette._
229
+
230
+ ### The 5-Phase Workflow
231
+
232
+ <table>
233
+ <tr>
234
+ <td align="center"><b>🔬 Research</b><br/>Explore & understand</td>
235
+ <td align="center">→</td>
236
+ <td align="center"><b>📝 Specify</b><br/>Define requirements</td>
237
+ <td align="center">→</td>
238
+ <td align="center"><b>📋 Plan</b><br/>Create roadmap</td>
239
+ <td align="center">→</td>
240
+ <td align="center"><b>✅ Tasks</b><br/>Break into steps</td>
241
+ <td align="center">→</td>
242
+ <td align="center"><b>📤 Export</b><br/>Format for AI</td>
243
+ </tr>
244
+ </table>
245
+
246
+ _Each phase builds on the previous one, creating a complete specification ready for AI coding agents._
247
+
248
+ ### Mode Reference
249
+
250
+ | Mode | What It Does | Example Prompt | Output |
251
+ |:-----|:-------------|:---------------|:-------|
252
+ | **🔬&nbsp;Research** | Searches codebase + web, identifies patterns | `How do we handle authentication in this codebase?` | `research.md` |
253
+ | **📝&nbsp;Specify** | Creates technical specs aware of architecture | `Add OAuth2 authentication with refresh token support` | `specification.md` |
254
+ | **📋&nbsp;Plan** | Generates implementation roadmap | `Create an implementation plan for the payment system` | `plan.md` |
255
+ | **✅&nbsp;Tasks** | Breaks plans into actionable items | `Break down the user dashboard plan into tasks` | `tasks.md` |
256
+ | **📤&nbsp;Export** | Formats for AI coding agents | `Export everything to AGENTS.md` | `AGENTS.md` |
257
+
258
+ _**Mode switching:** `Shift+Tab` cycles through modes_
259
+
260
+ _**Visual status:** See current mode and progress at bottom_
261
+
262
+ ### ⌨️ Keyboard Shortcuts
263
+
264
+ | Shortcut | Action |
265
+ |----------|--------|
266
+ | `Shift+Tab` | Switch modes |
267
+ | `Ctrl+P` | Open command palette |
268
+ | `Ctrl+C` | Cancel operation |
269
+ | `Escape` | Exit Q&A / stop agent |
270
+ | `Ctrl+U` | View usage stats |
271
+
272
+ ### Tips for Better Results
273
+
274
+ | Do This | Not This |
275
+ |---------|----------|
276
+ | ✅ `Research how we handle auth` | ❌ Jump straight to building |
277
+ | ✅ `Shotgun please ask me questions first` | ❌ Assume Shotgun knows your needs |
278
+ | ✅ `I'm working on payments, need refunds` | ❌ `Add refunds` (no context) |
279
+ | ✅ Follow Research → Specify → Plan → Tasks | ❌ Skip phases |
280
+
281
+ **Result:** Your AI coding agent gets complete context—what exists, why, and what to build.
282
+
283
+ **Note:** CLI available in [docs/CLI.md](docs/CLI.md), but TUI is recommended.
284
+
285
+ ---
286
+
287
+ # ✨ Features
288
+
289
+ ### What Makes Shotgun Different
290
+
291
+ <table>
292
+ <tr>
293
+ <th width="25%">Feature</th>
294
+ <th width="35%">Shotgun</th>
295
+ <th width="40%">Other Tools</th>
296
+ </tr>
297
+
298
+ <tr>
299
+ <td><strong>Codebase Understanding</strong></td>
300
+ <td>
301
+ Reads your <strong>entire repository</strong> before generating specs. Finds existing patterns, dependencies, and architecture.
302
+ </td>
303
+ <td>
304
+ Require manual context or search each time. No persistent understanding of your codebase structure.
305
+ </td>
306
+ </tr>
307
+
308
+ <tr>
309
+ <td><strong>Research Phase</strong></td>
310
+ <td>
311
+ Starts with research—discovers what you already have AND what exists externally before writing anything.
312
+ </td>
313
+ <td>
314
+ Start at specification. Build first, discover problems later.
315
+ </td>
316
+ </tr>
317
+
318
+ <tr>
319
+ <td><strong>Dedicated Agents Per Mode</strong></td>
320
+ <td>
321
+ Each mode (research, spec, plan, tasks, export) uses a <strong>separate specialized agent</strong> with prompts tailored specifically for that phase. 100% user-controllable via mode switching.
322
+ </td>
323
+ <td>
324
+ Single-agent or one-size-fits-all prompts.
325
+ </td>
326
+ </tr>
327
+
328
+ <tr>
329
+ <td><strong>Structured Workflow</strong></td>
330
+ <td>
331
+ 5-phase journey with checkpoints: Research → Spec → Plan → Tasks → Export
332
+ </td>
333
+ <td>
334
+ No structure. Just "prompt and hope."
335
+ </td>
336
+ </tr>
337
+
338
+ <tr>
339
+ <td><strong>Export Formats</strong></td>
340
+ <td>
341
+ <code>AGENTS.md</code> files ready for Cursor, Claude Code, Windsurf, Lovable—your choice of tool.
342
+ </td>
343
+ <td>
344
+ Locked into specific IDE or coding agent.
345
+ </td>
346
+ </tr>
347
+
348
+ </table>
349
+
350
+ ### Case Study - Real Example:
351
+
352
+ We had to implement payments. Cursor, Claude Code, and Copilot all suggested building a custom payment proxy — 3-4 weeks of development.
353
+
354
+ ⭐ Shotgun's research found [LiteLLM Proxy](https://docs.litellm.ai/docs/simple_proxy) instead—**30 minutes to discover, 5 days to deploy, first customer in 14 hours.**
355
+
356
+ ****80% less dev time. Near-zero technical debt.****
357
+
358
+ ### **[📖 Read the full case study](docs/CASE_STUDY.md)**
359
+
360
+ ---
361
+
362
+ # Use Cases
363
+
364
+ - **🚀 Onboarding** - New developer? Shotgun maps your entire architecture and generates docs that actually match the code
365
+ - **🔧 Refactoring** - Understand all dependencies before touching anything. Keep your refactor from becoming a rewrite
366
+ - **🌱 Greenfield Projects** - Research existing solutions globally before writing line one
367
+ - **➕ Adding Features** - Know exactly where your feature fits. Prevent duplicate functionality
368
+ - **📦 Migration** - Map the old, plan the new, track the delta. Break migration into safe stages
369
+
370
+ **📚 Want to see a detailed example?** Check out our [Case Study](docs/CASE_STUDY.md) showing Shotgun in action on a real-world project.
371
+
372
+ ---
373
+
374
+ # FAQ
375
+
376
+ **Q: Does Shotgun collect any stats or data?**
377
+
378
+ A: We only gather minimal, anonymous events (e.g., install, server start, tool call). We don't collect the content itself—only that an event occurred. We use Sentry for error reporting to improve stability.
379
+
380
+ **Q: Local LLMs?**
381
+
382
+ A: Planned. We'll publish compatibility notes and local provider integrations.
383
+
384
+ **Q: What LLM providers are supported?**
385
+
386
+ A: Currently OpenAI, Anthropic (Claude), and Google Gemini. Local LLM support is on the roadmap.
387
+
388
+ **Q: Can I use Shotgun offline?**
389
+
390
+ A: You need an internet connection for LLM API calls, but your codebase stays local.
391
+
392
+ **Q: How does the code graph work?**
393
+
394
+ A: Shotgun indexes your codebase using tree-sitter for accurate parsing and creates a searchable graph of your code structure, dependencies, and relationships.
395
+
396
+ ---
397
+ # Contributing
398
+
399
+ Shotgun is open-source and we welcome contributions. Whether you're fixing bugs, proposing features, improving docs, or spreading the word—we'd love to have you as part of the community.
400
+
401
+ ### Ways to contribute:
402
+
403
+ - **Bug Report:** Found an issue? [Create a bug report](https://github.com/shotgun-sh/shotgun/issues/new?template=bug_report.md)
404
+ - **Feature Request:** Have an idea to make Shotgun better? [Submit a feature request](https://github.com/shotgun-sh/shotgun/issues/new?template=feature_request.md)
405
+ - **Documentation:** See something missing in the docs? [Request documentation](https://github.com/shotgun-sh/shotgun/issues/new?template=documentation.md)
406
+
407
+ **Not sure where to start?** Join our Discord and we'll help you get started!
408
+
409
+ <div align="left">
410
+ <a href="https://discord.com/invite/5RmY6J2N7s">
411
+ <img src="https://img.shields.io/badge/Join%20our%20community-5865F2?style=for-the-badge&logo=discord&logoColor=white" alt="Join Discord" />
412
+ </a>
413
+ </div>
414
+
415
+ ### Development Resources
416
+
417
+ - **[Contributing Guide](docs/CONTRIBUTING.md)** - Setup, workflow, and guidelines
418
+ - **[Git Hooks](docs/GIT_HOOKS.md)** - Lefthook, trufflehog, and security scanning
419
+ - **[CI/CD](docs/CI_CD.md)** - GitHub Actions and automated testing
420
+ - **[Observability](docs/OBSERVABILITY.md)** - Telemetry, Logfire, and monitoring
421
+ - **[Docker](docs/DOCKER.md)** - Container setup and deployment
422
+
423
+ ---
424
+
425
+ <div align="center">
426
+
427
+ ## 🚀 Ready to Stop AI Agents from Derailing?
428
+
429
+ **Research → Specify → Plan → Tasks → Export** — Five phases that give AI agents the full picture.
430
+
431
+ ```bash
432
+ uvx shotgun-sh@latest
433
+ ```
434
+
435
+
436
+ ### ⭐ Star us on GitHub
437
+
438
+
439
+ <a href="https://github.com/shotgun-sh/shotgun">
440
+ <img src="https://img.shields.io/badge/⭐%20Star%20on%20GitHub-181717?style=for-the-badge&logo=github&logoColor=white" alt="Star Shotgun Repo" />
441
+ </a>
442
+
443
+ ### Star History
444
+
445
+ <a href="https://www.star-history.com/#shotgun-sh/shotgun&type=date&legend=bottom-right">
446
+ <picture>
447
+ <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=shotgun-sh/shotgun&type=date&theme=dark&legend=bottom-right" />
448
+ <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=shotgun-sh/shotgun&type=date&legend=bottom-right" />
449
+ <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=shotgun-sh/shotgun&type=date&legend=bottom-right" />
450
+ </picture>
451
+ </a>
452
+
453
+ </div>
454
+
455
+ ---
456
+
457
+ **License:** MIT | **Python:** 3.11+ | **Homepage:** [shotgun.sh](https://shotgun.sh/)
458
+
459
+ ---
460
+
461
+ ## Uninstall
462
+
463
+ ```bash
464
+ uv tool uninstall shotgun-sh
465
+ ```
@@ -0,0 +1,194 @@
1
+ shotgun/__init__.py,sha256=P40K0fnIsb7SKcQrFnXZ4aREjpWchVDhvM1HxI4cyIQ,104
2
+ shotgun/api_endpoints.py,sha256=cHNkXbaxMOw6t9M7_SGHwEkz9bL1CH_kw8qIhgdXfi0,630
3
+ shotgun/build_constants.py,sha256=NnG1QMjsJRkjzvgeqGVxv89D2nyON6yaFd-Sq2R-86k,701
4
+ shotgun/exceptions.py,sha256=qSt4_ZWBZ_DtDxMlZIFfdwyXRkGdCfG9dic_O-5QEKA,1102
5
+ shotgun/logging_config.py,sha256=fMnO0Ep76PIRxr0AqLcgE5QxUl4-WfqwLkMKCA2OVRc,7110
6
+ shotgun/main.py,sha256=XSb7ZeOxMXyZuQMxVGD6aCKl5DCgNKfYmXbZXtZBTMI,7072
7
+ shotgun/posthog_telemetry.py,sha256=uE8JeAL2wlf3kG0lA7hylcEPYpDRrzQ-Lb8DcC1PG6o,6450
8
+ shotgun/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
+ shotgun/sentry_telemetry.py,sha256=KIjkRAIio47bZtXseGXE6SSLXsCPThbz8_a_lw7pcSM,8419
10
+ shotgun/settings.py,sha256=1pheWh5YRXCVzIWy7kGWiC1yGbJ8qTWxqQsxggs2BZI,7202
11
+ shotgun/telemetry.py,sha256=6trR92Q6ERvSuUGyS8VyBCv1Dfs20vI1-4BYPieLcxM,2917
12
+ shotgun/agents/__init__.py,sha256=8Jzv1YsDuLyNPFJyckSr_qI4ehTVeDyIMDW4omsfPGc,25
13
+ shotgun/agents/agent_manager.py,sha256=q0g7qVTAVxyHUQkOUxDou_7Hw9XNpfop-S9e6pMeDKE,51266
14
+ shotgun/agents/common.py,sha256=U18bN5mokVddIuhtSEG5i_uRjiLw6kx1tEaDtsTdhIw,19183
15
+ shotgun/agents/conversation_history.py,sha256=djfzHu0ZQnEiRPDwqKaBIZK1KKPmdV7wE_L-7cAGb8M,7909
16
+ shotgun/agents/conversation_manager.py,sha256=CvmealftUc3n3pYXBGpZ29mpXGaM8bzmbGtT4KM9sdU,5280
17
+ shotgun/agents/export.py,sha256=aCuytVFgkp4VkcGWak1TlXYasEe1WbFTTRiA6TGfhVI,2931
18
+ shotgun/agents/llm.py,sha256=hs8j1wwTczGtehzahL1Z_5D4qus5QUx4-h9-m5ZPzm4,2209
19
+ shotgun/agents/messages.py,sha256=wNn0qC5AqASM8LMaSGFOerZEJPn5FsIOmaJs1bdosuU,1036
20
+ shotgun/agents/models.py,sha256=anNz8_U95B1__VPXgxFqfzk2BRIHrIO4clJlnfedVS8,9862
21
+ shotgun/agents/plan.py,sha256=7bP9VVQ5yfUE76fJEdBL-S2OIy3P-s5RdaorbThJQfc,2992
22
+ shotgun/agents/research.py,sha256=0bkEGdmwJiHz_ubJ835xvsp2dDQpZWKrr8Qd55OadJI,3242
23
+ shotgun/agents/specify.py,sha256=EsnHtQ-kRwZX_GRyp5D_y94yRaOo1gfLCIKeoF8ohNY,3099
24
+ shotgun/agents/tasks.py,sha256=rebwa9z2-YUAQTxEhxglUKeDO5i0gAq39CmR9_LXMKE,2961
25
+ shotgun/agents/usage_manager.py,sha256=0O1G7ovgYtJ_zCTITQ1Cks75eXMwvjl1SgGE1uoZ0x4,5383
26
+ shotgun/agents/config/__init__.py,sha256=Fl8K_81zBpm-OfOW27M_WWLSFdaHHek6lWz95iDREjQ,318
27
+ shotgun/agents/config/constants.py,sha256=GZ62PTrMd_yXDBvQwpNqh401GVlMHh5Li7_xM-zdp8Y,742
28
+ shotgun/agents/config/manager.py,sha256=p3RUm6SPGmiR-rdO0mI9a9zVl1OH1bbzvksI25bUnEw,20392
29
+ shotgun/agents/config/models.py,sha256=wSTHi-SagVuxDktkm9oN9gPHRU55jxS4UMw4DMWkvuo,6912
30
+ shotgun/agents/config/provider.py,sha256=fdL8STD1jgZMAK5NKxD0E0CaDLJ-3-Vn3Y7yPeElfk0,13402
31
+ shotgun/agents/context_analyzer/__init__.py,sha256=p-R3SVa3yDkXnHaZ7XV_SI_9FGhoYwvnbvDr3oxGU3M,732
32
+ shotgun/agents/context_analyzer/analyzer.py,sha256=3WNdzY6gp4cfzf6uDiFnVo7P2VnFSdbh8SE7uMx5ffQ,20005
33
+ shotgun/agents/context_analyzer/constants.py,sha256=oG8IJXEFN-V5wtnoz_ZBhOIGNXG1kjR4K_yOC5e95hY,323
34
+ shotgun/agents/context_analyzer/formatter.py,sha256=QovmxUdpGkBKwxegxhvXRmHrpNFF31MoD3LRYTVCKY8,4008
35
+ shotgun/agents/context_analyzer/models.py,sha256=Ww2NOgqaQlZ45tyBsVevt5r9bz0X-dQ4lNwAElfwAJk,8362
36
+ shotgun/agents/history/__init__.py,sha256=XFQj2a6fxDqVg0Q3juvN9RjV_RJbgvFZtQOCOjVJyp4,147
37
+ shotgun/agents/history/compaction.py,sha256=S7U00K3-tHOBHjSseGLaNSozkfmZknnqNyat8Hcixfk,3923
38
+ shotgun/agents/history/constants.py,sha256=yWY8rrTZarLA3flCCMB_hS2NMvUDRDTwP4D4j7MIh1w,446
39
+ shotgun/agents/history/context_extraction.py,sha256=yPF3oYpv5GFsFQT5y53ORKdADtrkGH4u8LwPdO0YVzU,7157
40
+ shotgun/agents/history/history_building.py,sha256=6LFDZ60MTPDoGAcmu_mjlnjVYu8YYWdIi-cGbF3jm7A,3532
41
+ shotgun/agents/history/history_processors.py,sha256=X1H8kuS0lfiBGBoPmfGhnIVSMLFCTTG4itx9zzePqDE,22503
42
+ shotgun/agents/history/message_utils.py,sha256=aPusAl2RYKbjc7lBxPaNprRHmZEG6fe97q7DQUlhlzU,2918
43
+ shotgun/agents/history/token_estimation.py,sha256=iRyKq-YDivEpJrULIbQgNpjhOuSC4nHVJYfsWEFV8sQ,4770
44
+ shotgun/agents/history/token_counting/__init__.py,sha256=YZt5Lus--fkF6l1hdkIlp1e_oAIpACNwHOI0FRP4q8s,924
45
+ shotgun/agents/history/token_counting/anthropic.py,sha256=kGxfDF4GyaPbNnS4DUiOM5EPThEBXBOgbxbO_W8iBXo,4575
46
+ shotgun/agents/history/token_counting/base.py,sha256=eVtNmFnnDcsX3E9GE-OH_4_ibdlwg4fETi2cq60sqLw,2327
47
+ shotgun/agents/history/token_counting/openai.py,sha256=lZgoMSVSlBN899Cp8sMFggYVDiSaqB-gTHUSaRoQ0yk,2746
48
+ shotgun/agents/history/token_counting/sentencepiece_counter.py,sha256=JTSWGAuCtqa7e2fJQzNQ52HqprSJJOcMZLnwxDId-vk,4201
49
+ shotgun/agents/history/token_counting/tokenizer_cache.py,sha256=owa4E12iMx8H1mNpCbHEtArE_b4vuwHl_0zKeRovv3w,2936
50
+ shotgun/agents/history/token_counting/utils.py,sha256=zL9pzrQHCyi5YMgUyLTnLI9WJmMr3UEEDUECgh4_TjE,4872
51
+ shotgun/agents/tools/__init__.py,sha256=kYppd4f4MoJcfTEPzkY2rqtxL1suXRGa9IRUm1G82GY,717
52
+ shotgun/agents/tools/file_management.py,sha256=29D9aF1e9wGhIFr7cW_NALNmkybtg_dRJZ-atMqa23M,9859
53
+ shotgun/agents/tools/registry.py,sha256=7F6qFcdGd5Hka6uEC9Xrc4ZCENed8R5_1QJMAgKHYqs,6458
54
+ shotgun/agents/tools/codebase/__init__.py,sha256=ceAGkK006NeOYaIJBLQsw7Q46sAyCRK9PYDs8feMQVw,661
55
+ shotgun/agents/tools/codebase/codebase_shell.py,sha256=XwrfxAyDGRTRBaZdO0ivcllwIZnDX-Dfbtdp-ncJXlM,8779
56
+ shotgun/agents/tools/codebase/directory_lister.py,sha256=dB38gPS2G02EnDBVFP99_Zu23rl7XyCjS4OwiDt8GcA,4904
57
+ shotgun/agents/tools/codebase/file_read.py,sha256=eQ-iS7y38cZhLoKrmKGzO4eLifheqjUHZnr8lC7AxbM,5373
58
+ shotgun/agents/tools/codebase/models.py,sha256=8eR3_8DQiBNgB2twu0aC_evIJbugN9KW3gtxMZdGYCE,10087
59
+ shotgun/agents/tools/codebase/query_graph.py,sha256=taWU8yzADUoZ22Z9msGvw4xXFYZz91Xh-V2aAVVb_7M,2308
60
+ shotgun/agents/tools/codebase/retrieve_code.py,sha256=KCcKzro0YQ9cFetcm5NF8yKO8hkW7_9aBf67P3PlF2Q,3082
61
+ shotgun/agents/tools/web_search/__init__.py,sha256=QKrTqD9JIrFavj7Ah6i-QeAw9stZsRAhZLVhnjr7eyU,3747
62
+ shotgun/agents/tools/web_search/anthropic.py,sha256=CqkKlMTBajz3bGbQfSvYYndy9npe00bTOSw8luLc5MY,5700
63
+ shotgun/agents/tools/web_search/gemini.py,sha256=Ruk2Om7jc85veSvaHlQ_pWDlu0pBjAoeuvBgAMH5QvM,3859
64
+ shotgun/agents/tools/web_search/openai.py,sha256=3KJpSLmmOjPqEEUCsJaR-LcmFaacu5_herUHbHOVt38,3739
65
+ shotgun/agents/tools/web_search/utils.py,sha256=O4IMu9mPBZe5551fNclfXbSmoL7fxP1hziqkWq8CRrI,544
66
+ shotgun/cli/__init__.py,sha256=_F1uW2g87y4bGFxz8Gp8u7mq2voHp8vQIUtCmm8Tojo,40
67
+ shotgun/cli/clear.py,sha256=_mAb3cjlLNGAk19Bu1fKoSF1fpBg05vRIRfSFZzhUyw,1625
68
+ shotgun/cli/compact.py,sha256=ZF8bS3hReJYG_uzRfWwCi9cINeZwzvre9SK7A-a9qRk,5914
69
+ shotgun/cli/config.py,sha256=wKBPSQ8ZVF6ITPS_bE2F46_xyWiI80QJhhgjt8uuDSY,8031
70
+ shotgun/cli/context.py,sha256=sRCNKM_irXASOJclAbYdz8-ftwdBIv68Qyin_w8KK8k,3813
71
+ shotgun/cli/export.py,sha256=xe14DKxeL9zN9M2bomuiXxa2JdqIZ1FBPPkTFBVhkxQ,2484
72
+ shotgun/cli/feedback.py,sha256=wMRIN6UtBI4832XfUwE7nQLjVLuVu4zjupMme02nfwc,1346
73
+ shotgun/cli/models.py,sha256=cutimFStP6m5pXmg3kbhtWZjNA2us2cPQFJtz2pTdOU,208
74
+ shotgun/cli/plan.py,sha256=PbD7ckPIgdDOp7RLQecf4F1S59W_Bag2qMTcR6QqlDw,2337
75
+ shotgun/cli/research.py,sha256=chFMuVcznuJqnGwDcK7o1Qk3RQ4q0cFPqRQjyW_GURw,2496
76
+ shotgun/cli/specify.py,sha256=gLbnZ4GP9QmRy1QFdhF2mnXqP9Fbo07CY-3GdmbbL3w,2179
77
+ shotgun/cli/tasks.py,sha256=GIgwS5a-B92BghjlD0lMDEZd35Izl0S4QguRrdFxciI,2433
78
+ shotgun/cli/update.py,sha256=sc3uuw3AXFF0kpskWah1JEoTwrKv67fCnqp9BjeND3o,5328
79
+ shotgun/cli/utils.py,sha256=umVWXDx8pelovMk-nT8B7m0c39AKY9hHsuAMnbw_Hcg,732
80
+ shotgun/cli/codebase/__init__.py,sha256=rKdvx33p0i_BYbNkz5_4DCFgEMwzOOqLi9f5p7XTLKM,73
81
+ shotgun/cli/codebase/commands.py,sha256=1N2yOGmok0ZarqXPIpWGcsQrwm_ZJcyWiMxy6tm0j70,8711
82
+ shotgun/cli/codebase/models.py,sha256=B9vs-d-Bq0aS6FZKebhHT-9tw90Y5f6k_t71VlZpL8k,374
83
+ shotgun/codebase/__init__.py,sha256=QBgFE2Abd5Vl7_NdYOglF9S6d-vIjkb3C0cpIYoHZEU,309
84
+ shotgun/codebase/models.py,sha256=5e_7zaPL032n_ghcvs01Uug3BH4jyKiQ3S3U5w21BSM,5296
85
+ shotgun/codebase/service.py,sha256=nyggapfHKdwkKXyuT9oA0tJ9qf4RNVsOxfY8lC5pHro,8006
86
+ shotgun/codebase/core/__init__.py,sha256=GWWhJEqChiDXAF4omYCgzgoZmJjwsAf6P1aZ5Bl8OE0,1170
87
+ shotgun/codebase/core/change_detector.py,sha256=uqqQLe8LPC_LVj64cDrmc1ctjKyZsfHfBBdTJQlSjE0,12486
88
+ shotgun/codebase/core/code_retrieval.py,sha256=8ob-xWjcSmEilpI1h5IU94ykd2dETMf84CfY36N_big,8015
89
+ shotgun/codebase/core/cypher_models.py,sha256=Yfysfa9lLguILftkmtuJCN3kLBFIo7WW7NigM-Zr-W4,1735
90
+ shotgun/codebase/core/ingestor.py,sha256=xWCz84Iwad4kXOqcb5JYHTtBc3YqLdYoPuUcWccrX-o,64708
91
+ shotgun/codebase/core/language_config.py,sha256=vsqHyuFnumRPRBV1lMOxWKNOIiClO6FyfKQR0fGrtl4,8934
92
+ shotgun/codebase/core/manager.py,sha256=8FbiLyTe2JDELgx1tpOv_Kqba8J7QSXyORCAO3dERmk,66722
93
+ shotgun/codebase/core/nl_query.py,sha256=qH32btb5w7eY2ij7-wc6Z0QXIDOqjz0pZXXRUboSbYs,16121
94
+ shotgun/codebase/core/parser_loader.py,sha256=LZRrDS8Sp518jIu3tQW-BxdwJ86lnsTteI478ER9Td8,4278
95
+ shotgun/llm_proxy/__init__.py,sha256=3ST3ygtf2sXXSOjIFHxVZ5xqRbT3TF7jpNHwuZAtIwA,452
96
+ shotgun/llm_proxy/clients.py,sha256=Y19W8Gb2e-37w8rUKPmxJOqoTk6GlcPhZhoeAbbURU0,1341
97
+ shotgun/llm_proxy/constants.py,sha256=_4piKdyvM7pAIRdAGrzYexwWoDlueUZiEMfwWrOa4T0,381
98
+ shotgun/prompts/__init__.py,sha256=RswUm0HMdfm2m2YKUwUsEdRIwoczdbI7zlucoEvHYRo,132
99
+ shotgun/prompts/loader.py,sha256=_7CdUYrAo6ZwvTBUlXugKyLU0IDBg5CVzUIAHFPw418,4433
100
+ shotgun/prompts/agents/__init__.py,sha256=YRIJMbzpArojNX1BP5gfxxois334z_GQga8T-xyWMbY,39
101
+ shotgun/prompts/agents/export.j2,sha256=DGqVijH1PkpkY0rDauU52u_fMv15frEvOdXAPFZNMM4,17057
102
+ shotgun/prompts/agents/plan.j2,sha256=mbt505NdqmzmPxXzQYJS_gH5vkiVa2a3Dgz2K-15JZk,6093
103
+ shotgun/prompts/agents/research.j2,sha256=QFoSSiF_5v7c78RHaiucZEb9mOC_wF54BVKnJEH_DnI,3964
104
+ shotgun/prompts/agents/specify.j2,sha256=XdB2WehbVmszw9crl6PEHLyLgwvU08MV--ClV3hI4mA,12014
105
+ shotgun/prompts/agents/tasks.j2,sha256=SMvTQPzRR6eHlW3fcj-7Bl-Lh9HWaiF3uAKv77nMdZw,5956
106
+ shotgun/prompts/agents/partials/codebase_understanding.j2,sha256=7WH-PVd-TRBFQUdOdKkwwn9hAUaJznFZMAGHhO7IGGU,5633
107
+ shotgun/prompts/agents/partials/common_agent_system_prompt.j2,sha256=Uc-dp-yR-mgBnYaXuY8BkplEsFgyDzZ67D6EBcL4zpE,2253
108
+ shotgun/prompts/agents/partials/content_formatting.j2,sha256=MG0JB7SSp8YV5akDWpbs2f9DcdREIYqLp38NnoWLeQ0,1854
109
+ shotgun/prompts/agents/partials/interactive_mode.j2,sha256=nyNTURRszG_Pl7M3TS_luUshekDn9yVHfBDMkHSZ1kw,1448
110
+ shotgun/prompts/agents/state/system_state.j2,sha256=RPweqBYmgWMiDuOjdEDl6NLgYU7HMaUGW1jBSnD5UzQ,1270
111
+ shotgun/prompts/agents/state/codebase/codebase_graphs_available.j2,sha256=U-hy-H9bPwV0sYIHTZ5TESxc5EOCtntI8GUZOmJipJw,601
112
+ shotgun/prompts/codebase/__init__.py,sha256=NYuPMtmYM2ptuwf3YxVuotNlJOUq0hnjmwlzKcJkGK4,42
113
+ shotgun/prompts/codebase/cypher_query_patterns.j2,sha256=ufTx_xT3VoS76KcVUbIgGQx-bJoJHx3bBE3dagAXv18,8913
114
+ shotgun/prompts/codebase/cypher_system.j2,sha256=jo8d_AIoyAd0zKCvPXSmYGBxvtulMsCfeaOTdOfeC5g,2620
115
+ shotgun/prompts/codebase/enhanced_query_context.j2,sha256=WzGnFaBLZO-mOdkZ_u_PewSu9niKy87DKNL4uzQq1Jg,724
116
+ shotgun/prompts/codebase/partials/cypher_rules.j2,sha256=yhptyyZNzFNJWFGmOkxpF5PzZtUAXWDF4xl9ADu7yDw,3200
117
+ shotgun/prompts/codebase/partials/graph_schema.j2,sha256=fUsD1ZgU1pIWUzrs97jHq3TatKeGSvZgG8XP5gCQUJc,1939
118
+ shotgun/prompts/codebase/partials/temporal_context.j2,sha256=yYHQHBQ4EeSs6TtKPm9fflGW3y6H0-yAANcTdsApkk4,1388
119
+ shotgun/prompts/history/__init__.py,sha256=wbMLQ8yWmYz1sfXXigEAUlNkFcM50KdQv0kp4VU_P58,43
120
+ shotgun/prompts/history/incremental_summarization.j2,sha256=GmnNh0pWTjaEaI1sPwKNsGCys5fK8xrzWqalAs_LhJw,2447
121
+ shotgun/prompts/history/summarization.j2,sha256=OYNVHg65zbuWB6_pXzTOs2T2k5qFD2gyfbmr6NP01rs,2268
122
+ shotgun/prompts/tools/web_search.j2,sha256=_F1m5UYiZENPQCqTUiO2du9Lkzs1SWujjAiauDD_5-Y,568
123
+ shotgun/sdk/__init__.py,sha256=ESV0WM9MigjXG30g9qVjcCMI40GQv-P-MSMGVuOisK4,380
124
+ shotgun/sdk/codebase.py,sha256=7doUvwwl27RDJZIbP56LQsAx26GANtAKEBptTUhLT6w,8842
125
+ shotgun/sdk/exceptions.py,sha256=qBcQv0v7ZTwP7CMcxZST4GqCsfOWtOUjSzGBo0-heqo,412
126
+ shotgun/sdk/models.py,sha256=X9nOTUHH0cdkQW1NfnMEDu-QgK9oUsEISh1Jtwr5Am4,5496
127
+ shotgun/sdk/services.py,sha256=J4PJFSxCQ6--u7rb3Ta-9eYtlYcxcbnzrMP6ThyCnw4,705
128
+ shotgun/shotgun_web/__init__.py,sha256=IB-TvK3WvLNrdKH0j9MwMGtIjqi81ASFIVwaZa0ifNg,461
129
+ shotgun/shotgun_web/client.py,sha256=n5DDuVfSa6VPZjhSsfSxQlSFOnhgDHyidRnB8Hv9XF4,4134
130
+ shotgun/shotgun_web/constants.py,sha256=eNvtjlu81bAVQaCwZXOVjSpDopUm9pf34XuZEvuMiko,661
131
+ shotgun/shotgun_web/models.py,sha256=Ie9VfqKZM2tIJhIjentU9qLoNaMZvnUJaIu-xg9kQsA,1391
132
+ shotgun/tui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
133
+ shotgun/tui/app.py,sha256=63eg_5bL3v2xfoep3wDA1YfikI6Gyn8WG2cXtMIIRuQ,12700
134
+ shotgun/tui/containers.py,sha256=c2gJnFWab873F8IDOwgUBM-2ukf2kbIlO7_s20JxH1w,3540
135
+ shotgun/tui/dependencies.py,sha256=I8xIPUujCeQqqkkKbNYrsL6dCA2MfQ8Vlh4Q0VGlAfI,1331
136
+ shotgun/tui/filtered_codebase_service.py,sha256=lJ8gTMhIveTatmvmGLP299msWWTkVYKwvY_2FhuL2s4,1687
137
+ shotgun/tui/protocols.py,sha256=udScqPLb6yRGw1uDO6AuskRu33riaVVh0CAynEogvPM,1256
138
+ shotgun/tui/styles.tcss,sha256=ETyyw1bpMBOqTi5RLcAJUScdPWTvAWEqE9YcT0kVs_E,121
139
+ shotgun/tui/commands/__init__.py,sha256=qxYz-9aGhXAZF9VQ5AyALejI1TacsEc2cX2DH7vTXoM,2559
140
+ shotgun/tui/components/context_indicator.py,sha256=GeEMvLYf09Hkw-sTqX1v8RDHb6rt6mXcUpI4DT9DVHQ,5792
141
+ shotgun/tui/components/mode_indicator.py,sha256=NWswddRaYxTY27XOd2oKsWKhaM4dFmCl_LyclRJJQR4,2354
142
+ shotgun/tui/components/prompt_input.py,sha256=Ss-htqraHZAPaehGE4x86ij0veMjc4UgadMXpbdXr40,2229
143
+ shotgun/tui/components/spinner.py,sha256=ovTDeaJ6FD6chZx_Aepia6R3UkPOVJ77EKHfRmn39MY,2427
144
+ shotgun/tui/components/splash.py,sha256=vppy9vEIEvywuUKRXn2y11HwXSRkQZHLYoVjhDVdJeU,1267
145
+ shotgun/tui/components/status_bar.py,sha256=ctfk1YcHBb9-iwAw3VOO6gLoSrcjvykFOxMl096eYsg,1703
146
+ shotgun/tui/components/vertical_tail.py,sha256=kROwTaRjUwVB7H35dtmNcUVPQqNYvvfq7K2tXBKEb6c,638
147
+ shotgun/tui/screens/chat.tcss,sha256=7jM4YTBj-N-5T4NIiU2AJiGtKYvYO50OAkI0o7_qimI,574
148
+ shotgun/tui/screens/confirmation_dialog.py,sha256=62RYcTSfZHLH77bewmtSEeGgLRyYvCQh16ZoZuIE1J0,4788
149
+ shotgun/tui/screens/directory_setup.py,sha256=lIZ1J4A6g5Q2ZBX8epW7BhR96Dmdcg22CyiM5S-I5WU,3237
150
+ shotgun/tui/screens/feedback.py,sha256=V4Fkk0Nqe-S7Cak-mzqGtGKNeEeluW4oCZGZKsOtiN0,5732
151
+ shotgun/tui/screens/github_issue.py,sha256=5i-Uo4U6q7T7Sdb-uj8LK2WJYbYGOkLgkpahUbFCex4,2902
152
+ shotgun/tui/screens/model_picker.py,sha256=JXtFs476WGhu4fhDNG0Bit59e4mtuykNziAM953CNEk,12930
153
+ shotgun/tui/screens/onboarding.py,sha256=inSdwIMbfMf376fOA0x3AdSDvNhJcxjWnDNKpMRMCp0,13821
154
+ shotgun/tui/screens/pipx_migration.py,sha256=i5g9pQLKeGfqwppVFddRTypXCBk9byaIQ_1wgYuDTfc,4326
155
+ shotgun/tui/screens/provider_config.py,sha256=bBPtgdcmUln8tPDoVrECmcWDq_2_BDfdsUVWumA4Ebo,12036
156
+ shotgun/tui/screens/shotgun_auth.py,sha256=g1mA4d0hlIH8AWwV8go95WNEQsPKoq9n6QJQ3vtviSo,10675
157
+ shotgun/tui/screens/splash.py,sha256=E2MsJihi3c9NY1L28o_MstDxGwrCnnV7zdq00MrGAsw,706
158
+ shotgun/tui/screens/welcome.py,sha256=Lr7fJqXccjZnbBF_9qn5UpewW1gHsRuVLAioWEKbhPE,6364
159
+ shotgun/tui/screens/chat/__init__.py,sha256=wChPqpJG-7kPYVYZjE8BlkXWxfW_YABhTR2fQ51opHY,113
160
+ shotgun/tui/screens/chat/chat.tcss,sha256=7jM4YTBj-N-5T4NIiU2AJiGtKYvYO50OAkI0o7_qimI,574
161
+ shotgun/tui/screens/chat/chat_screen.py,sha256=_VBKJy8ve2OkaRU8lfchvHolBpzqhzyOUHKP3NGHrhQ,51720
162
+ shotgun/tui/screens/chat/codebase_index_prompt_screen.py,sha256=QjqOOqaXJks-82prEHCUnIZbmNBoGb2FLqxet_dUUYM,2070
163
+ shotgun/tui/screens/chat/codebase_index_selection.py,sha256=Zz0vi3uLhWysdPHRO8Rye9QX4hIPeWhSAw6Y9-BlOVA,241
164
+ shotgun/tui/screens/chat/help_text.py,sha256=MkDq0Z7yQCXHVtLlnZaFU_Ijq1rbQX9KMOGVsb_1Hm8,1610
165
+ shotgun/tui/screens/chat/prompt_history.py,sha256=uL3KVFb32vD09jN338mebFAi0QI-EJXTxcEQy-j6QdQ,1201
166
+ shotgun/tui/screens/chat_screen/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
167
+ shotgun/tui/screens/chat_screen/command_providers.py,sha256=w8Ga9R2QDHa2Y-IzqZ5-ofZ0BqB-FjNErdgZieFqnZg,15482
168
+ shotgun/tui/screens/chat_screen/hint_message.py,sha256=WOpbk8q7qt7eOHTyyHvh_IQIaublVDeJGaLpsxEk9FA,933
169
+ shotgun/tui/screens/chat_screen/history/__init__.py,sha256=PRznBlnm9caNE0YYC08PkvNMAK-JpuULwmByaRNTKO0,581
170
+ shotgun/tui/screens/chat_screen/history/agent_response.py,sha256=m-RtSg77y-g_mzkVHOBMTMSW1ZE6RUCUYupn-PylPcc,2378
171
+ shotgun/tui/screens/chat_screen/history/chat_history.py,sha256=KYgeyvXUOgIFjSktpixS-dnLATwl6YKjnOyj2UDeT5g,4024
172
+ shotgun/tui/screens/chat_screen/history/formatters.py,sha256=R1roy6Ap04dUJ7clMLtYqSLkCMD6g2K6sVanOpDGwdc,4616
173
+ shotgun/tui/screens/chat_screen/history/partial_response.py,sha256=loMaUoXLphnRh3gl4xvmTtkfaFY-ULrSDjndAWQcy1s,1318
174
+ shotgun/tui/screens/chat_screen/history/user_question.py,sha256=BKl4FVKh4veszykkfr8RI06O5NEDIBZ17IZSCLzlImA,1305
175
+ shotgun/tui/services/__init__.py,sha256=-BKRCRYQSnQZI4PxxUpkbvq8eYhXGjWHJtVW06CYQ2o,149
176
+ shotgun/tui/services/conversation_service.py,sha256=iT8YP4c8nncbYiSk82t-1j06_71RBxLVUCUJnj5EmGE,6741
177
+ shotgun/tui/state/__init__.py,sha256=oPV_VsvoiXhuZPwnra38kCT3RyXLvVxkVKDOv-LXGgA,141
178
+ shotgun/tui/state/processing_state.py,sha256=O0SxqQmljWyaSAhdCAr2fNgS0ibFiIhGRNHpiUSCkW0,6234
179
+ shotgun/tui/utils/__init__.py,sha256=cFjDfoXTRBq29wgP7TGRWUu1eFfiIG-LLOzjIGfadgI,150
180
+ shotgun/tui/utils/mode_progress.py,sha256=6zh5NKtx0mF5eIOL9OPex93a4l_--s2uXrpOkqemAFU,11168
181
+ shotgun/tui/widgets/__init__.py,sha256=rfWJJ3R9ID9J-qWm4ESnGgTK5KpKZJ7bdO0BH0PLdPI,152
182
+ shotgun/tui/widgets/widget_coordinator.py,sha256=gxRJxbUejXTmpj6lHwfKm9u_FMNF-0VuAkkkQRT6Spk,9131
183
+ shotgun/utils/__init__.py,sha256=WinIEp9oL2iMrWaDkXz2QX4nYVPAm8C9aBSKTeEwLtE,198
184
+ shotgun/utils/datetime_utils.py,sha256=x_uYmG1n9rkhSO2oR2uV9ttiuPL0nKa9os8YYaPfdWY,2592
185
+ shotgun/utils/env_utils.py,sha256=ulM3BRi9ZhS7uC-zorGeDQm4SHvsyFuuU9BtVPqdrHY,1418
186
+ shotgun/utils/file_system_utils.py,sha256=zuuWO12bzSfeocTbi4DHVJKJTBekjP-_vRmb36FHrQ4,1525
187
+ shotgun/utils/marketing.py,sha256=WAPEtJDagNsDmIBdrZ0XBHOgsLONz_eT25wEng-HDBs,3759
188
+ shotgun/utils/source_detection.py,sha256=Co6Q03R3fT771TF3RzB-70stfjNP2S4F_ArZKibwzm8,454
189
+ shotgun/utils/update_checker.py,sha256=6fjiVUXgdxUrI54dfw0xBsrw7jlobYkjYNZaR-JoTpI,9667
190
+ shotgun_sh-0.2.17.dist-info/METADATA,sha256=4mHk0w7iQ27km4p-nal1o7knfPeB11bZZr3AdCJG7gg,15638
191
+ shotgun_sh-0.2.17.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
192
+ shotgun_sh-0.2.17.dist-info/entry_points.txt,sha256=GQmtjKaPtviqYOuB3C0SMGlG5RZS9-VDDIKxV_IVHmY,75
193
+ shotgun_sh-0.2.17.dist-info/licenses/LICENSE,sha256=ZZEiPnjIkv3rNT-CJBMU6l7VukLUdddCo3bTwal1NIQ,1070
194
+ shotgun_sh-0.2.17.dist-info/RECORD,,
@@ -1,2 +1,3 @@
1
1
  [console_scripts]
2
2
  shotgun = shotgun.main:app
3
+ shotgun-sh = shotgun.main:app