shotgun-sh 0.1.0__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 (130) hide show
  1. shotgun/__init__.py +5 -0
  2. shotgun/agents/__init__.py +1 -0
  3. shotgun/agents/agent_manager.py +651 -0
  4. shotgun/agents/common.py +549 -0
  5. shotgun/agents/config/__init__.py +13 -0
  6. shotgun/agents/config/constants.py +17 -0
  7. shotgun/agents/config/manager.py +294 -0
  8. shotgun/agents/config/models.py +185 -0
  9. shotgun/agents/config/provider.py +206 -0
  10. shotgun/agents/conversation_history.py +106 -0
  11. shotgun/agents/conversation_manager.py +105 -0
  12. shotgun/agents/export.py +96 -0
  13. shotgun/agents/history/__init__.py +5 -0
  14. shotgun/agents/history/compaction.py +85 -0
  15. shotgun/agents/history/constants.py +19 -0
  16. shotgun/agents/history/context_extraction.py +108 -0
  17. shotgun/agents/history/history_building.py +104 -0
  18. shotgun/agents/history/history_processors.py +426 -0
  19. shotgun/agents/history/message_utils.py +84 -0
  20. shotgun/agents/history/token_counting.py +429 -0
  21. shotgun/agents/history/token_estimation.py +138 -0
  22. shotgun/agents/messages.py +35 -0
  23. shotgun/agents/models.py +275 -0
  24. shotgun/agents/plan.py +98 -0
  25. shotgun/agents/research.py +108 -0
  26. shotgun/agents/specify.py +98 -0
  27. shotgun/agents/tasks.py +96 -0
  28. shotgun/agents/tools/__init__.py +34 -0
  29. shotgun/agents/tools/codebase/__init__.py +28 -0
  30. shotgun/agents/tools/codebase/codebase_shell.py +256 -0
  31. shotgun/agents/tools/codebase/directory_lister.py +141 -0
  32. shotgun/agents/tools/codebase/file_read.py +144 -0
  33. shotgun/agents/tools/codebase/models.py +252 -0
  34. shotgun/agents/tools/codebase/query_graph.py +67 -0
  35. shotgun/agents/tools/codebase/retrieve_code.py +81 -0
  36. shotgun/agents/tools/file_management.py +218 -0
  37. shotgun/agents/tools/user_interaction.py +37 -0
  38. shotgun/agents/tools/web_search/__init__.py +60 -0
  39. shotgun/agents/tools/web_search/anthropic.py +144 -0
  40. shotgun/agents/tools/web_search/gemini.py +85 -0
  41. shotgun/agents/tools/web_search/openai.py +98 -0
  42. shotgun/agents/tools/web_search/utils.py +20 -0
  43. shotgun/build_constants.py +20 -0
  44. shotgun/cli/__init__.py +1 -0
  45. shotgun/cli/codebase/__init__.py +5 -0
  46. shotgun/cli/codebase/commands.py +202 -0
  47. shotgun/cli/codebase/models.py +21 -0
  48. shotgun/cli/config.py +275 -0
  49. shotgun/cli/export.py +81 -0
  50. shotgun/cli/models.py +10 -0
  51. shotgun/cli/plan.py +73 -0
  52. shotgun/cli/research.py +85 -0
  53. shotgun/cli/specify.py +69 -0
  54. shotgun/cli/tasks.py +78 -0
  55. shotgun/cli/update.py +152 -0
  56. shotgun/cli/utils.py +25 -0
  57. shotgun/codebase/__init__.py +12 -0
  58. shotgun/codebase/core/__init__.py +46 -0
  59. shotgun/codebase/core/change_detector.py +358 -0
  60. shotgun/codebase/core/code_retrieval.py +243 -0
  61. shotgun/codebase/core/ingestor.py +1497 -0
  62. shotgun/codebase/core/language_config.py +297 -0
  63. shotgun/codebase/core/manager.py +1662 -0
  64. shotgun/codebase/core/nl_query.py +331 -0
  65. shotgun/codebase/core/parser_loader.py +128 -0
  66. shotgun/codebase/models.py +111 -0
  67. shotgun/codebase/service.py +206 -0
  68. shotgun/logging_config.py +227 -0
  69. shotgun/main.py +167 -0
  70. shotgun/posthog_telemetry.py +158 -0
  71. shotgun/prompts/__init__.py +5 -0
  72. shotgun/prompts/agents/__init__.py +1 -0
  73. shotgun/prompts/agents/export.j2 +350 -0
  74. shotgun/prompts/agents/partials/codebase_understanding.j2 +87 -0
  75. shotgun/prompts/agents/partials/common_agent_system_prompt.j2 +37 -0
  76. shotgun/prompts/agents/partials/content_formatting.j2 +65 -0
  77. shotgun/prompts/agents/partials/interactive_mode.j2 +26 -0
  78. shotgun/prompts/agents/plan.j2 +144 -0
  79. shotgun/prompts/agents/research.j2 +69 -0
  80. shotgun/prompts/agents/specify.j2 +51 -0
  81. shotgun/prompts/agents/state/codebase/codebase_graphs_available.j2 +19 -0
  82. shotgun/prompts/agents/state/system_state.j2 +31 -0
  83. shotgun/prompts/agents/tasks.j2 +143 -0
  84. shotgun/prompts/codebase/__init__.py +1 -0
  85. shotgun/prompts/codebase/cypher_query_patterns.j2 +223 -0
  86. shotgun/prompts/codebase/cypher_system.j2 +28 -0
  87. shotgun/prompts/codebase/enhanced_query_context.j2 +10 -0
  88. shotgun/prompts/codebase/partials/cypher_rules.j2 +24 -0
  89. shotgun/prompts/codebase/partials/graph_schema.j2 +30 -0
  90. shotgun/prompts/codebase/partials/temporal_context.j2 +21 -0
  91. shotgun/prompts/history/__init__.py +1 -0
  92. shotgun/prompts/history/incremental_summarization.j2 +53 -0
  93. shotgun/prompts/history/summarization.j2 +46 -0
  94. shotgun/prompts/loader.py +140 -0
  95. shotgun/py.typed +0 -0
  96. shotgun/sdk/__init__.py +13 -0
  97. shotgun/sdk/codebase.py +219 -0
  98. shotgun/sdk/exceptions.py +17 -0
  99. shotgun/sdk/models.py +189 -0
  100. shotgun/sdk/services.py +23 -0
  101. shotgun/sentry_telemetry.py +87 -0
  102. shotgun/telemetry.py +93 -0
  103. shotgun/tui/__init__.py +0 -0
  104. shotgun/tui/app.py +116 -0
  105. shotgun/tui/commands/__init__.py +76 -0
  106. shotgun/tui/components/prompt_input.py +69 -0
  107. shotgun/tui/components/spinner.py +86 -0
  108. shotgun/tui/components/splash.py +25 -0
  109. shotgun/tui/components/vertical_tail.py +13 -0
  110. shotgun/tui/screens/chat.py +782 -0
  111. shotgun/tui/screens/chat.tcss +43 -0
  112. shotgun/tui/screens/chat_screen/__init__.py +0 -0
  113. shotgun/tui/screens/chat_screen/command_providers.py +219 -0
  114. shotgun/tui/screens/chat_screen/hint_message.py +40 -0
  115. shotgun/tui/screens/chat_screen/history.py +221 -0
  116. shotgun/tui/screens/directory_setup.py +113 -0
  117. shotgun/tui/screens/provider_config.py +221 -0
  118. shotgun/tui/screens/splash.py +31 -0
  119. shotgun/tui/styles.tcss +10 -0
  120. shotgun/tui/utils/__init__.py +5 -0
  121. shotgun/tui/utils/mode_progress.py +257 -0
  122. shotgun/utils/__init__.py +5 -0
  123. shotgun/utils/env_utils.py +35 -0
  124. shotgun/utils/file_system_utils.py +36 -0
  125. shotgun/utils/update_checker.py +375 -0
  126. shotgun_sh-0.1.0.dist-info/METADATA +466 -0
  127. shotgun_sh-0.1.0.dist-info/RECORD +130 -0
  128. shotgun_sh-0.1.0.dist-info/WHEEL +4 -0
  129. shotgun_sh-0.1.0.dist-info/entry_points.txt +2 -0
  130. shotgun_sh-0.1.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,466 @@
1
+ Metadata-Version: 2.4
2
+ Name: shotgun-sh
3
+ Version: 0.1.0
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: google-generativeai>=0.8.5
26
+ Requires-Dist: httpx>=0.27.0
27
+ Requires-Dist: jinja2>=3.1.0
28
+ Requires-Dist: kuzu>=0.7.0
29
+ Requires-Dist: logfire[pydantic-ai]>=2.0.0
30
+ Requires-Dist: openai>=1.0.0
31
+ Requires-Dist: packaging>=23.0
32
+ Requires-Dist: posthog>=3.0.0
33
+ Requires-Dist: pydantic-ai>=0.0.14
34
+ Requires-Dist: rich>=13.0.0
35
+ Requires-Dist: sentry-sdk[pure-eval]>=2.0.0
36
+ Requires-Dist: textual-dev>=1.7.0
37
+ Requires-Dist: textual>=6.1.0
38
+ Requires-Dist: tiktoken>=0.7.0
39
+ Requires-Dist: tree-sitter-go>=0.23.0
40
+ Requires-Dist: tree-sitter-javascript>=0.23.0
41
+ Requires-Dist: tree-sitter-python>=0.23.0
42
+ Requires-Dist: tree-sitter-rust>=0.23.0
43
+ Requires-Dist: tree-sitter-typescript>=0.23.0
44
+ Requires-Dist: tree-sitter>=0.21.0
45
+ Requires-Dist: typer>=0.12.0
46
+ Requires-Dist: watchdog>=4.0.0
47
+ Provides-Extra: dev
48
+ Requires-Dist: commitizen>=3.13.0; extra == 'dev'
49
+ Requires-Dist: lefthook>=1.12.0; extra == 'dev'
50
+ Requires-Dist: mypy>=1.11.0; extra == 'dev'
51
+ Requires-Dist: ruff>=0.6.0; extra == 'dev'
52
+ Description-Content-Type: text/markdown
53
+
54
+ # Shotgun
55
+
56
+ A Python CLI tool for research, planning, and task management powered by AI agents.
57
+
58
+ ## Features
59
+
60
+ - **Research**: Perform research with agentic loops
61
+ - **Planning**: Generate structured plans for achieving goals
62
+ - **Tasks**: Generate prioritized task lists with agentic approaches
63
+
64
+ ## Installation
65
+
66
+ ### From PyPI (Recommended)
67
+
68
+ ```bash
69
+ pip install shotgun-sh
70
+ ```
71
+
72
+ ### From Source
73
+
74
+ ```bash
75
+ git clone https://github.com/shotgun-sh/shotgun.git
76
+ cd shotgun
77
+ uv sync --all-extras
78
+ ```
79
+
80
+ After installation from source, you can use either method:
81
+
82
+ **Method 1: Direct command (after uv sync)**
83
+ ```bash
84
+ shotgun --help
85
+ ```
86
+
87
+ **Method 2: Via uv run**
88
+ ```bash
89
+ uv run shotgun --help
90
+ ```
91
+
92
+ If installed from PyPI, simply use:
93
+ ```bash
94
+ shotgun --help
95
+ ```
96
+
97
+ ### Virtual Environment Setup (Optional)
98
+
99
+ If you prefer using a local virtual environment:
100
+
101
+ ```bash
102
+ uv venv
103
+ source .venv/bin/activate # On Windows: .venv\Scripts\activate
104
+ uv sync --all-extras
105
+ shotgun --help
106
+ ```
107
+
108
+ ## Usage
109
+
110
+ ### Using Direct Commands (after uv sync)
111
+
112
+ ```bash
113
+ # Research a topic
114
+ shotgun research "What is quantum computing?"
115
+
116
+ # Generate a plan
117
+ shotgun plan "Build a web application"
118
+ shotgun plan "build me a house"
119
+
120
+ # Generate tasks for a project
121
+ shotgun tasks "Create a machine learning model"
122
+ ```
123
+
124
+ ### Using uv run
125
+
126
+ ```bash
127
+ # Research a topic
128
+ uv run shotgun research "What is quantum computing?"
129
+
130
+ # Generate a plan
131
+ uv run shotgun plan "Build a web application"
132
+
133
+ # Generate tasks for a project
134
+ uv run shotgun tasks "Create a machine learning model"
135
+ ```
136
+
137
+ ## Auto-Updates
138
+
139
+ Shotgun automatically checks for updates to keep you on the latest version.
140
+
141
+ ### How it works
142
+
143
+ - Checks for updates on startup (runs in background, non-blocking)
144
+ - Caches results for 24 hours to minimize API calls
145
+ - Shows notification after command execution if an update is available
146
+ - Never auto-updates development versions
147
+
148
+ ### Update Commands
149
+
150
+ ```bash
151
+ # Check for available updates
152
+ shotgun update --check
153
+
154
+ # Install available updates
155
+ shotgun update
156
+
157
+ # Force update (even for dev versions with confirmation)
158
+ shotgun update --force
159
+ ```
160
+
161
+ ### Disable Update Checks
162
+
163
+ ```bash
164
+ # Disable for a single command
165
+ shotgun --no-update-check research "topic"
166
+ ```
167
+
168
+ ### Installation Methods
169
+
170
+ The update command automatically detects and uses the appropriate method:
171
+ - **pipx**: `pipx upgrade shotgun-sh`
172
+ - **pip**: `pip install --upgrade shotgun-sh`
173
+ - **venv**: Updates within the virtual environment
174
+
175
+ ## Development Setup
176
+
177
+ ### Requirements
178
+
179
+ - **Python 3.11+** (3.13 recommended)
180
+ - **uv** - Fast Python package installer and resolver
181
+ - **actionlint** (optional) - For GitHub Actions workflow validation
182
+
183
+ ### Quick Start
184
+
185
+ 1. **Clone and setup**:
186
+ ```bash
187
+ git clone https://github.com/shotgun-sh/shotgun.git
188
+ cd shotgun
189
+ ```
190
+
191
+ 2. **Install uv** (if not already installed):
192
+ ```bash
193
+ # macOS/Linux
194
+ curl -LsSf https://astral.sh/uv/install.sh | sh
195
+
196
+ # Or via brew
197
+ brew install uv
198
+ ```
199
+
200
+ 3. **Install dependencies**:
201
+ ```bash
202
+ uv sync --all-extras
203
+ ```
204
+
205
+ 4. **Install git hooks**:
206
+ ```bash
207
+ uv run lefthook install
208
+ ```
209
+
210
+ 5. **Verify setup**:
211
+ ```bash
212
+ uv run shotgun --version
213
+ ```
214
+
215
+ ### Development Commands
216
+
217
+ ```bash
218
+ # Run the CLI
219
+ uv run shotgun --help
220
+
221
+ # Run the TUI
222
+ uv run tui
223
+
224
+ # Run tests
225
+ uv run pytest
226
+
227
+ # Run tests with coverage
228
+ uv run pytest --cov=src --cov-report=term-missing --cov-report=html
229
+
230
+ # Run linting
231
+ uv run ruff check .
232
+
233
+ # Run formatting
234
+ uv run ruff format .
235
+
236
+ # Run type checking
237
+ uv run mypy src/
238
+
239
+ # Run all pre-commit hooks manually
240
+ uv run lefthook run pre-commit
241
+ ```
242
+
243
+ ### Code Coverage
244
+
245
+ To analyze test coverage and identify areas that need testing:
246
+
247
+ ```bash
248
+ # Run tests with coverage analysis
249
+ uv run pytest --cov=src --cov-report=term-missing --cov-report=html
250
+ ```
251
+
252
+ This will:
253
+ - Display coverage summary in the terminal
254
+ - Generate a detailed HTML coverage report
255
+
256
+ **Viewing the coverage report:**
257
+ Open `htmlcov/index.html` in your browser to see:
258
+ - Overall coverage percentage
259
+ - File-by-file coverage breakdown
260
+ - Line-by-line coverage highlighting
261
+ - Missing coverage areas
262
+
263
+ The coverage configuration is in `pyproject.toml` and will automatically run when you use `uv run pytest`.
264
+
265
+ ### Git Hooks (Lefthook)
266
+
267
+ This project uses [lefthook](https://github.com/evilmartians/lefthook) for git hooks. The hooks automatically run:
268
+
269
+ - **ruff** - Python linting with auto-fix
270
+ - **ruff-format** - Code formatting
271
+ - **mypy** - Type checking
272
+ - **commitizen** - Commit message validation
273
+ - **actionlint** - GitHub Actions workflow validation (if installed)
274
+
275
+ #### Installing actionlint (recommended)
276
+
277
+ ```bash
278
+ # macOS
279
+ brew install actionlint
280
+
281
+ # Linux/macOS (direct download)
282
+ curl -sSfL https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash | bash
283
+
284
+ # Go install
285
+ go install github.com/rhysd/actionlint/cmd/actionlint@latest
286
+ ```
287
+
288
+
289
+ ### Python Version Management
290
+
291
+ The project supports **Python 3.11+**. The `.python-version` file specifies Python 3.11 to ensure development against the minimum supported version.
292
+
293
+ If using **pyenv**:
294
+ ```bash
295
+ pyenv install 3.11
296
+ ```
297
+
298
+ If using **uv** (recommended):
299
+ ```bash
300
+ uv python install 3.11
301
+ uv sync --python 3.11
302
+ ```
303
+
304
+ ### Commit Message Convention
305
+
306
+ This project enforces **Conventional Commits** specification. All commit messages must follow this format:
307
+
308
+ ```
309
+ <type>[optional scope]: <description>
310
+ ```
311
+
312
+ **Required commit types:**
313
+ - `feat`: New feature
314
+ - `fix`: Bug fix
315
+ - `docs`: Documentation changes
316
+ - `style`: Code formatting changes
317
+ - `refactor`: Code restructuring without feature changes
318
+ - `perf`: Performance improvements
319
+ - `test`: Adding or updating tests
320
+ - `build`: Build system changes
321
+ - `ci`: CI/CD changes
322
+ - `chore`: Maintenance tasks
323
+ - `revert`: Reverting previous commits
324
+
325
+ **Examples:**
326
+ ```bash
327
+ feat: add user authentication system
328
+ fix: resolve memory leak in data processing
329
+ docs: update API documentation
330
+ refactor: simplify user validation logic
331
+ ```
332
+
333
+ **For interactive commit creation:**
334
+ ```bash
335
+ uv run cz commit
336
+ ```
337
+
338
+ ### Contributing
339
+
340
+ 1. Fork the repository
341
+ 2. Create a feature branch: `git checkout -b feat/feature-name`
342
+ 3. Make your changes
343
+ 4. Run the pre-commit hooks: `uv run lefthook run pre-commit`
344
+ 5. Commit with conventional format: `git commit -m "feat: add new feature"`
345
+ 6. Push to your fork: `git push origin feat/feature-name`
346
+ 7. Create a Pull Request with conventional title format
347
+
348
+ ### CI/CD
349
+
350
+ GitHub Actions automatically:
351
+ - Runs on pull requests and pushes to main
352
+ - Tests with Python 3.11
353
+ - Validates code with ruff, ruff-format, and mypy
354
+ - Ensures all checks pass before merge
355
+
356
+ ## Observability & Telemetry
357
+
358
+ Shotgun includes built-in observability with Sentry for error tracking and Logfire for logging and tracing. Both services track users anonymously using a UUID generated on first run.
359
+
360
+ ### Anonymous User Tracking
361
+
362
+ Each user gets a unique anonymous ID stored in their config:
363
+ ```bash
364
+ # Get your anonymous user ID
365
+ shotgun config get-user-id
366
+ ```
367
+
368
+ This ID is automatically included in:
369
+ - **Sentry**: Error reports and exceptions
370
+ - **Logfire**: All logs, traces, and spans
371
+
372
+ ### Logfire Queries
373
+
374
+ Logfire uses SQL for querying logs. Here are helpful queries for debugging and analysis:
375
+
376
+ #### Find all logs for a specific user
377
+ ```sql
378
+ SELECT * FROM records
379
+ WHERE attributes->>'user_id' = 'your-user-id-here'
380
+ ORDER BY timestamp DESC;
381
+ ```
382
+
383
+ #### Track user actions
384
+ ```sql
385
+ SELECT
386
+ timestamp,
387
+ span_name,
388
+ message,
389
+ attributes
390
+ FROM records
391
+ WHERE attributes->>'user_id' = 'your-user-id-here'
392
+ AND span_name LIKE '%research%'
393
+ ORDER BY timestamp DESC;
394
+ ```
395
+
396
+ #### Find slow operations for a user
397
+ ```sql
398
+ SELECT
399
+ span_name,
400
+ duration_ms,
401
+ attributes
402
+ FROM records
403
+ WHERE attributes->>'user_id' = 'your-user-id-here'
404
+ AND duration_ms > 1000
405
+ ORDER BY duration_ms DESC;
406
+ ```
407
+
408
+ #### Find errors for a user
409
+ ```sql
410
+ SELECT * FROM records
411
+ WHERE attributes->>'user_id' = 'your-user-id-here'
412
+ AND level = 'error'
413
+ ORDER BY timestamp DESC;
414
+ ```
415
+
416
+ #### Analyze user's AI provider usage
417
+ ```sql
418
+ SELECT
419
+ attributes->>'provider' as provider,
420
+ COUNT(*) as usage_count,
421
+ AVG(duration_ms) as avg_duration
422
+ FROM records
423
+ WHERE attributes->>'user_id' = 'your-user-id-here'
424
+ AND attributes->>'provider' IS NOT NULL
425
+ GROUP BY provider;
426
+ ```
427
+
428
+ #### Track feature usage by user
429
+ ```sql
430
+ SELECT
431
+ span_name,
432
+ COUNT(*) as usage_count
433
+ FROM records
434
+ WHERE attributes->>'user_id' = 'your-user-id-here'
435
+ AND span_name IN ('research', 'plan', 'tasks')
436
+ GROUP BY span_name
437
+ ORDER BY usage_count DESC;
438
+ ```
439
+
440
+ ### Setting Up Observability (Optional)
441
+
442
+ For local development with Logfire:
443
+ ```bash
444
+ # Set environment variables
445
+ export LOGFIRE_ENABLED=true
446
+ export LOGFIRE_TOKEN=your-logfire-token
447
+
448
+ # Run shotgun - will now send logs to Logfire
449
+ shotgun research "topic"
450
+ ```
451
+
452
+ For Sentry (automatically configured in production builds):
453
+ ```bash
454
+ # Set for local development
455
+ export SENTRY_DSN=your-sentry-dsn
456
+ ```
457
+
458
+ ### Privacy
459
+
460
+ - **No PII collected**: Only anonymous UUIDs are used for identification
461
+ - **Opt-in for development**: Telemetry requires explicit environment variables
462
+ - **Automatic in production**: Production builds include telemetry for error tracking
463
+
464
+ ## Support
465
+
466
+ Join our discord https://discord.gg/5RmY6J2N7s
@@ -0,0 +1,130 @@
1
+ shotgun/__init__.py,sha256=P40K0fnIsb7SKcQrFnXZ4aREjpWchVDhvM1HxI4cyIQ,104
2
+ shotgun/build_constants.py,sha256=hDFr6eO0lwN0iCqHQ1A5s0D68txR8sYrTJLGa7tSi0o,654
3
+ shotgun/logging_config.py,sha256=UKenihvgH8OA3W0b8ZFcItYaFJVe9MlsMYlcevyW1HY,7440
4
+ shotgun/main.py,sha256=5WEtPs5kwD1tdeWCnM-jIAwarcwQNc4dhaqdPKCyxug,5510
5
+ shotgun/posthog_telemetry.py,sha256=usfaJ8VyqckLIbLgoj2yhuNyDh0VWA5EJPRr7a0dyVs,5054
6
+ shotgun/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
+ shotgun/sentry_telemetry.py,sha256=0W0o810ewFpIcdPsi_q4uKLiaP6zDYRRE5MHpIbQIPo,2954
8
+ shotgun/telemetry.py,sha256=Ves6Ih3hshpKVNVAUUmwRdtW8NkTjFPg8hEqvFKZ0t0,3208
9
+ shotgun/agents/__init__.py,sha256=8Jzv1YsDuLyNPFJyckSr_qI4ehTVeDyIMDW4omsfPGc,25
10
+ shotgun/agents/agent_manager.py,sha256=7BjTRQ7s77OqxYHBdbM1IECOERTfv5GFAETDGz9YLy4,24444
11
+ shotgun/agents/common.py,sha256=vt7ECq1rT6GR5Rt63t0whH0R0cydrk7Mty2KyPL8mEg,19045
12
+ shotgun/agents/conversation_history.py,sha256=5J8_1yxdZiiWTq22aDio88DkBDZ4_Lh_p5Iy5_ENszc,3898
13
+ shotgun/agents/conversation_manager.py,sha256=fxAvXbEl3Cl2ugJ4N9aWXaqZtkrnfj3QzwjWC4LFXwI,3514
14
+ shotgun/agents/export.py,sha256=Zke952DbJ_lOBUmN-TPHw7qmjbfqsFu1uycBRQI_pkg,2969
15
+ shotgun/agents/messages.py,sha256=wNn0qC5AqASM8LMaSGFOerZEJPn5FsIOmaJs1bdosuU,1036
16
+ shotgun/agents/models.py,sha256=fljmjHoCzNXPWOHSA-1KmQk1epk8ovowqDM7j5zZKB8,7853
17
+ shotgun/agents/plan.py,sha256=s-WfILBOW4l8kY59RUOVtX5MJSuSzFm1nGp6b17If78,3030
18
+ shotgun/agents/research.py,sha256=lYG7Rytcitop8mXs3isMI3XvYzzI3JH9u0VZz6K9zfo,3274
19
+ shotgun/agents/specify.py,sha256=7MoMxfIn34G27mw6wrp_F0i2O5rid476L3kHFONDCd0,3137
20
+ shotgun/agents/tasks.py,sha256=nk8zIl24o01hfzOGyWSbeVWeke6OGseO4Ppciurh13U,2999
21
+ shotgun/agents/config/__init__.py,sha256=Fl8K_81zBpm-OfOW27M_WWLSFdaHHek6lWz95iDREjQ,318
22
+ shotgun/agents/config/constants.py,sha256=MogArrb2r5rFI6BBzc6NhPz1payGeM6K-t5oIFbJgxg,494
23
+ shotgun/agents/config/manager.py,sha256=kwMbPjz0kEH_WCQAamESGjHdE8d_P-ztel4NL4FWNUw,10662
24
+ shotgun/agents/config/models.py,sha256=vpVXrtiHsDt2D_h7BLyMiiQeT97vAz2L6lYKx2SEMjo,5909
25
+ shotgun/agents/config/provider.py,sha256=pVWf_WM3MNWH0v2fU-peBCqx49X-nW81piQ_M-AKWRE,7249
26
+ shotgun/agents/history/__init__.py,sha256=XFQj2a6fxDqVg0Q3juvN9RjV_RJbgvFZtQOCOjVJyp4,147
27
+ shotgun/agents/history/compaction.py,sha256=KY_ZvRvvlrB6eLPGqtlC6H8h4HPPOtuPcUkgQJUjK5I,2890
28
+ shotgun/agents/history/constants.py,sha256=yWY8rrTZarLA3flCCMB_hS2NMvUDRDTwP4D4j7MIh1w,446
29
+ shotgun/agents/history/context_extraction.py,sha256=yVka1U6TqNVsORR4JlxpWi9yBt3Quip8g_u3x2Vi9Gs,3564
30
+ shotgun/agents/history/history_building.py,sha256=6LFDZ60MTPDoGAcmu_mjlnjVYu8YYWdIi-cGbF3jm7A,3532
31
+ shotgun/agents/history/history_processors.py,sha256=PMfgiqQXsILzLeShfGnvTx6XxHxH96a57PT2vZTYlFA,15880
32
+ shotgun/agents/history/message_utils.py,sha256=aPusAl2RYKbjc7lBxPaNprRHmZEG6fe97q7DQUlhlzU,2918
33
+ shotgun/agents/history/token_counting.py,sha256=RasWy84eNjbmqyQDTGAzj1Q1I9ml_G_9R-maWN7gr8s,13839
34
+ shotgun/agents/history/token_estimation.py,sha256=iNqhDSqFzG0YYxGijMRzj54GALFglOp0qVMB6G59RhU,4690
35
+ shotgun/agents/tools/__init__.py,sha256=QaN80IqWvB5qEcjHqri1-PYvYlO74vdhcwLugoEdblo,772
36
+ shotgun/agents/tools/file_management.py,sha256=HYNe_QA4T3_bPzSWBYcFZcnWdj8eb4aQ3GB735-G8Nw,7138
37
+ shotgun/agents/tools/user_interaction.py,sha256=b3ncEpvoD06Cz4hwsS-ppVbQajQj640iWnVfA5WBjAA,1236
38
+ shotgun/agents/tools/codebase/__init__.py,sha256=ceAGkK006NeOYaIJBLQsw7Q46sAyCRK9PYDs8feMQVw,661
39
+ shotgun/agents/tools/codebase/codebase_shell.py,sha256=9b7ZStAVFprdGqp1O23ZgwkToMytlUdp_R4MhvmENhc,8584
40
+ shotgun/agents/tools/codebase/directory_lister.py,sha256=eX5GKDSmbKggKDvjPpYMa2WPSGPYQAtUEZ4eN01T0t8,4703
41
+ shotgun/agents/tools/codebase/file_read.py,sha256=EGK5yNqiS4cbIEQfDtdKVoJSJYk20NbZv1AQKNBUKVc,5051
42
+ shotgun/agents/tools/codebase/models.py,sha256=8eR3_8DQiBNgB2twu0aC_evIJbugN9KW3gtxMZdGYCE,10087
43
+ shotgun/agents/tools/codebase/query_graph.py,sha256=vOeyN4-OZj-vpTSk3Z9W5TjraZAepJ-Qjk_zzvum3fU,2115
44
+ shotgun/agents/tools/codebase/retrieve_code.py,sha256=2VjiqVKJMd9rPV-mGrL4C-N8fqGjYLW6ZInFGbcTxOM,2878
45
+ shotgun/agents/tools/web_search/__init__.py,sha256=Sj1tVokrCsJiLRWWTq0zrAolMHEGntRIYnqiyFi8L2E,1840
46
+ shotgun/agents/tools/web_search/anthropic.py,sha256=NDhj8MrdxLsmGwHp7uM0IQeJVW2poY58GCUTJEM9dew,4827
47
+ shotgun/agents/tools/web_search/gemini.py,sha256=hXjWUF-aTX3B9ViaKe5aF2aHXlaoBA5am40cgilinGE,2981
48
+ shotgun/agents/tools/web_search/openai.py,sha256=V8GeqwUAi5wrbRuU41Y38schpXRdyeIfw85-CT5rAhY,3415
49
+ shotgun/agents/tools/web_search/utils.py,sha256=GLJ5QV9bT2ubFMuFN7caMN7tK9OTJ0R3GD57B-tCMF0,532
50
+ shotgun/cli/__init__.py,sha256=_F1uW2g87y4bGFxz8Gp8u7mq2voHp8vQIUtCmm8Tojo,40
51
+ shotgun/cli/config.py,sha256=LbjxDNPdetYJiwlcyOYLnqwzALfgU-m54cfstUshbrs,8715
52
+ shotgun/cli/export.py,sha256=3hIwK2_OM1MFYSTfzBxsGuuBGm5fo0XdxASfQ5Uqb3Y,2471
53
+ shotgun/cli/models.py,sha256=LoajeEK7MEDUSnZXb1Li-dbhXqne812YZglx-LcVpiQ,181
54
+ shotgun/cli/plan.py,sha256=T-eu-I9z-dSoKqJ-KI8X5i5Mm0VL1BfornxRiUjTgnk,2324
55
+ shotgun/cli/research.py,sha256=qvBBtX3Wyn6pDZlJpcEvbeK-0iTOXegi71tm8HKVYaE,2490
56
+ shotgun/cli/specify.py,sha256=ErRQ72Zc75fmxopZbKy0vvnLPuYBLsGynpjj1X6-BwI,2166
57
+ shotgun/cli/tasks.py,sha256=17qWoGCVYpNIxa2vaoIH1P-xz2RcGLaK8SF4JlPsOWI,2420
58
+ shotgun/cli/update.py,sha256=3IWt3vbFprsyiRH8J-YYVSOuga7Spi7SrbQVvKH8r5U,4771
59
+ shotgun/cli/utils.py,sha256=umVWXDx8pelovMk-nT8B7m0c39AKY9hHsuAMnbw_Hcg,732
60
+ shotgun/cli/codebase/__init__.py,sha256=rKdvx33p0i_BYbNkz5_4DCFgEMwzOOqLi9f5p7XTLKM,73
61
+ shotgun/cli/codebase/commands.py,sha256=zvcM9gjHHO6styhXojb_1bnpq-Cozh2c77ZOIjw4B8s,6683
62
+ shotgun/cli/codebase/models.py,sha256=B9vs-d-Bq0aS6FZKebhHT-9tw90Y5f6k_t71VlZpL8k,374
63
+ shotgun/codebase/__init__.py,sha256=QBgFE2Abd5Vl7_NdYOglF9S6d-vIjkb3C0cpIYoHZEU,309
64
+ shotgun/codebase/models.py,sha256=hxjbfDUka8loTApXq9KTvkXKt272fzdjr5u2ImYrNtk,4367
65
+ shotgun/codebase/service.py,sha256=IK7h6IW84cblpHZVx5z9ulLDqJImGg6L9aZJimijBu8,6804
66
+ shotgun/codebase/core/__init__.py,sha256=GWWhJEqChiDXAF4omYCgzgoZmJjwsAf6P1aZ5Bl8OE0,1170
67
+ shotgun/codebase/core/change_detector.py,sha256=kWCYLWzRzb3IGGOj71KBn7UOCOKMpINJbOBDf98aMxE,12409
68
+ shotgun/codebase/core/code_retrieval.py,sha256=_JVyyQKHDFm3dxOOua1mw9eIIOHIVz3-I8aZtEsEj1E,7927
69
+ shotgun/codebase/core/ingestor.py,sha256=H_kVCqdOKmnQpjcXvUdPFpep8OC2AbOhhE-9HKr_XZM,59836
70
+ shotgun/codebase/core/language_config.py,sha256=vsqHyuFnumRPRBV1lMOxWKNOIiClO6FyfKQR0fGrtl4,8934
71
+ shotgun/codebase/core/manager.py,sha256=6gyjfACbC5n1Hdy-JQIEDH2aNAlesUS9plQP_FHoJ94,59277
72
+ shotgun/codebase/core/nl_query.py,sha256=vOc8S_5U5wJEzIznFPhV5KDB438M4Rr0dnpoGraEthM,11653
73
+ shotgun/codebase/core/parser_loader.py,sha256=LZRrDS8Sp518jIu3tQW-BxdwJ86lnsTteI478ER9Td8,4278
74
+ shotgun/prompts/__init__.py,sha256=RswUm0HMdfm2m2YKUwUsEdRIwoczdbI7zlucoEvHYRo,132
75
+ shotgun/prompts/loader.py,sha256=jy24-E02pCSmz2651aCT2NgHfRrHAGMYvKrD6gs0Er8,4424
76
+ shotgun/prompts/agents/__init__.py,sha256=YRIJMbzpArojNX1BP5gfxxois334z_GQga8T-xyWMbY,39
77
+ shotgun/prompts/agents/export.j2,sha256=GKpOfGbZA9PVa4TNtMORUYiBIAcN6JCo8URmTCWKlWw,15936
78
+ shotgun/prompts/agents/plan.j2,sha256=MyZDyOS21V-zrHNzbIhIdzcESGh_3KVbA4qh9rZR2_E,6086
79
+ shotgun/prompts/agents/research.j2,sha256=JBtjXaMVDRuNTt7-Ai8gUb2InfolfqCkQoEkn9PsQZk,3929
80
+ shotgun/prompts/agents/specify.j2,sha256=AP7XrA3KE7GZsCvW4guASxZHBM2mnrMw3irdZ3RUOBs,2808
81
+ shotgun/prompts/agents/tasks.j2,sha256=9gGCimCWVvpaQSxkAjt7WmIxFHXJY2FlmqhqomFxQTA,5949
82
+ shotgun/prompts/agents/partials/codebase_understanding.j2,sha256=7WH-PVd-TRBFQUdOdKkwwn9hAUaJznFZMAGHhO7IGGU,5633
83
+ shotgun/prompts/agents/partials/common_agent_system_prompt.j2,sha256=eFuc3z1pSJzQtPJfjMIDNHv5XX9lP6YVrmKcbbskJj8,1877
84
+ shotgun/prompts/agents/partials/content_formatting.j2,sha256=MG0JB7SSp8YV5akDWpbs2f9DcdREIYqLp38NnoWLeQ0,1854
85
+ shotgun/prompts/agents/partials/interactive_mode.j2,sha256=9sYPbyc46HXg3k1FT_LugIQvOyNDnMQwsMIgOgN-_aY,1100
86
+ shotgun/prompts/agents/state/system_state.j2,sha256=TQPnCLtmiNwQCbMxnCE7nLhXMJpKlBCnlNBKt7FTjuo,1033
87
+ shotgun/prompts/agents/state/codebase/codebase_graphs_available.j2,sha256=U-hy-H9bPwV0sYIHTZ5TESxc5EOCtntI8GUZOmJipJw,601
88
+ shotgun/prompts/codebase/__init__.py,sha256=NYuPMtmYM2ptuwf3YxVuotNlJOUq0hnjmwlzKcJkGK4,42
89
+ shotgun/prompts/codebase/cypher_query_patterns.j2,sha256=ufTx_xT3VoS76KcVUbIgGQx-bJoJHx3bBE3dagAXv18,8913
90
+ shotgun/prompts/codebase/cypher_system.j2,sha256=kV-OJ8gM3vsBo8hW4mLSEHpJW-wV_2tNaPck3HUM52c,1497
91
+ shotgun/prompts/codebase/enhanced_query_context.j2,sha256=WzGnFaBLZO-mOdkZ_u_PewSu9niKy87DKNL4uzQq1Jg,724
92
+ shotgun/prompts/codebase/partials/cypher_rules.j2,sha256=vtc5OqTp-z5Rq_ti-_RG31bVOIA_iNe80_x3CdxO6bs,2397
93
+ shotgun/prompts/codebase/partials/graph_schema.j2,sha256=fUsD1ZgU1pIWUzrs97jHq3TatKeGSvZgG8XP5gCQUJc,1939
94
+ shotgun/prompts/codebase/partials/temporal_context.j2,sha256=yYHQHBQ4EeSs6TtKPm9fflGW3y6H0-yAANcTdsApkk4,1388
95
+ shotgun/prompts/history/__init__.py,sha256=wbMLQ8yWmYz1sfXXigEAUlNkFcM50KdQv0kp4VU_P58,43
96
+ shotgun/prompts/history/incremental_summarization.j2,sha256=GmnNh0pWTjaEaI1sPwKNsGCys5fK8xrzWqalAs_LhJw,2447
97
+ shotgun/prompts/history/summarization.j2,sha256=OYNVHg65zbuWB6_pXzTOs2T2k5qFD2gyfbmr6NP01rs,2268
98
+ shotgun/sdk/__init__.py,sha256=ESV0WM9MigjXG30g9qVjcCMI40GQv-P-MSMGVuOisK4,380
99
+ shotgun/sdk/codebase.py,sha256=EYujvSl1EcQ1WfMjAvrX-h2H5_gHdcnmscQDaUxsCho,6965
100
+ shotgun/sdk/exceptions.py,sha256=qBcQv0v7ZTwP7CMcxZST4GqCsfOWtOUjSzGBo0-heqo,412
101
+ shotgun/sdk/models.py,sha256=X9nOTUHH0cdkQW1NfnMEDu-QgK9oUsEISh1Jtwr5Am4,5496
102
+ shotgun/sdk/services.py,sha256=J4PJFSxCQ6--u7rb3Ta-9eYtlYcxcbnzrMP6ThyCnw4,705
103
+ shotgun/tui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
104
+ shotgun/tui/app.py,sha256=t0IAQbGr0lKKEoBVnp85DcmZ-V92bi79SjyEE2uKpuw,3990
105
+ shotgun/tui/styles.tcss,sha256=ETyyw1bpMBOqTi5RLcAJUScdPWTvAWEqE9YcT0kVs_E,121
106
+ shotgun/tui/commands/__init__.py,sha256=8D5lvtpqMW5-fF7Bg3oJtUzU75cKOv6aUaHYYszydU8,2518
107
+ shotgun/tui/components/prompt_input.py,sha256=Ss-htqraHZAPaehGE4x86ij0veMjc4UgadMXpbdXr40,2229
108
+ shotgun/tui/components/spinner.py,sha256=ovTDeaJ6FD6chZx_Aepia6R3UkPOVJ77EKHfRmn39MY,2427
109
+ shotgun/tui/components/splash.py,sha256=vppy9vEIEvywuUKRXn2y11HwXSRkQZHLYoVjhDVdJeU,1267
110
+ shotgun/tui/components/vertical_tail.py,sha256=GavHXNMq1X8hc0juDLKDWTW9seRLk3VlhBBMl60uPG0,439
111
+ shotgun/tui/screens/chat.py,sha256=Qqi99X6II4FWZYa94bWdqGR7pWGiNFefNEEX4b3m8QY,28108
112
+ shotgun/tui/screens/chat.tcss,sha256=2Yq3E23jxsySYsgZf4G1AYrYVcpX0UDW6kNNI0tDmtM,437
113
+ shotgun/tui/screens/directory_setup.py,sha256=lIZ1J4A6g5Q2ZBX8epW7BhR96Dmdcg22CyiM5S-I5WU,3237
114
+ shotgun/tui/screens/provider_config.py,sha256=A_tvDHF5KLP5PV60LjMJ_aoOdT3TjI6_g04UIUqGPqM,7126
115
+ shotgun/tui/screens/splash.py,sha256=E2MsJihi3c9NY1L28o_MstDxGwrCnnV7zdq00MrGAsw,706
116
+ shotgun/tui/screens/chat_screen/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
117
+ shotgun/tui/screens/chat_screen/command_providers.py,sha256=55JIH9T8QnyHRsMoXhOi87FiVM-d6o7OKpCe82uDP9I,7840
118
+ shotgun/tui/screens/chat_screen/hint_message.py,sha256=WOpbk8q7qt7eOHTyyHvh_IQIaublVDeJGaLpsxEk9FA,933
119
+ shotgun/tui/screens/chat_screen/history.py,sha256=ZozEVG1ffdmruQ-XCr25qePWReFAJZFJACdwq9g8wIk,7461
120
+ shotgun/tui/utils/__init__.py,sha256=cFjDfoXTRBq29wgP7TGRWUu1eFfiIG-LLOzjIGfadgI,150
121
+ shotgun/tui/utils/mode_progress.py,sha256=lseRRo7kMWLkBzI3cU5vqJmS2ZcCjyRYf9Zwtvc-v58,10931
122
+ shotgun/utils/__init__.py,sha256=WinIEp9oL2iMrWaDkXz2QX4nYVPAm8C9aBSKTeEwLtE,198
123
+ shotgun/utils/env_utils.py,sha256=8QK5aw_f_V2AVTleQQlcL0RnD4sPJWXlDG46fsHu0d8,1057
124
+ shotgun/utils/file_system_utils.py,sha256=l-0p1bEHF34OU19MahnRFdClHufThfGAjQ431teAIp0,1004
125
+ shotgun/utils/update_checker.py,sha256=Xf-7w3Pos3etzCoT771gJe2HLkA8_V2GrqWy7ni9UqA,11373
126
+ shotgun_sh-0.1.0.dist-info/METADATA,sha256=jp2vg90VBxFdQdTxoWtaHtOzPk8tCofeV29NLeqaNjo,11191
127
+ shotgun_sh-0.1.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
128
+ shotgun_sh-0.1.0.dist-info/entry_points.txt,sha256=asZxLU4QILneq0MWW10saVCZc4VWhZfb0wFZvERnzfA,45
129
+ shotgun_sh-0.1.0.dist-info/licenses/LICENSE,sha256=YebsZl590zCHrF_acCU5pmNt0pnAfD2DmAnevJPB1tY,1065
130
+ shotgun_sh-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.27.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ shotgun = shotgun.main:app
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Proofs.io
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.