shotgun-sh 0.1.0.dev12__py3-none-any.whl → 0.1.0.dev14__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 (73) hide show
  1. shotgun/agents/agent_manager.py +16 -3
  2. shotgun/agents/artifact_state.py +58 -0
  3. shotgun/agents/common.py +137 -88
  4. shotgun/agents/config/constants.py +18 -0
  5. shotgun/agents/config/manager.py +68 -16
  6. shotgun/agents/config/models.py +61 -0
  7. shotgun/agents/config/provider.py +11 -6
  8. shotgun/agents/history/compaction.py +85 -0
  9. shotgun/agents/history/constants.py +19 -0
  10. shotgun/agents/history/context_extraction.py +108 -0
  11. shotgun/agents/history/history_building.py +104 -0
  12. shotgun/agents/history/history_processors.py +354 -157
  13. shotgun/agents/history/message_utils.py +46 -0
  14. shotgun/agents/history/token_counting.py +429 -0
  15. shotgun/agents/history/token_estimation.py +138 -0
  16. shotgun/agents/models.py +131 -1
  17. shotgun/agents/plan.py +15 -37
  18. shotgun/agents/research.py +10 -45
  19. shotgun/agents/specify.py +97 -0
  20. shotgun/agents/tasks.py +7 -36
  21. shotgun/agents/tools/artifact_management.py +482 -0
  22. shotgun/agents/tools/file_management.py +31 -12
  23. shotgun/agents/tools/web_search/anthropic.py +78 -17
  24. shotgun/agents/tools/web_search/gemini.py +1 -1
  25. shotgun/agents/tools/web_search/openai.py +16 -2
  26. shotgun/artifacts/__init__.py +17 -0
  27. shotgun/artifacts/exceptions.py +89 -0
  28. shotgun/artifacts/manager.py +530 -0
  29. shotgun/artifacts/models.py +334 -0
  30. shotgun/artifacts/service.py +463 -0
  31. shotgun/artifacts/templates/__init__.py +10 -0
  32. shotgun/artifacts/templates/loader.py +252 -0
  33. shotgun/artifacts/templates/models.py +136 -0
  34. shotgun/artifacts/templates/plan/delivery_and_release_plan.yaml +66 -0
  35. shotgun/artifacts/templates/research/market_research.yaml +585 -0
  36. shotgun/artifacts/templates/research/sdk_comparison.yaml +257 -0
  37. shotgun/artifacts/templates/specify/prd.yaml +331 -0
  38. shotgun/artifacts/templates/specify/product_spec.yaml +301 -0
  39. shotgun/artifacts/utils.py +76 -0
  40. shotgun/cli/plan.py +1 -4
  41. shotgun/cli/specify.py +69 -0
  42. shotgun/cli/tasks.py +0 -4
  43. shotgun/codebase/core/nl_query.py +4 -4
  44. shotgun/logging_config.py +23 -7
  45. shotgun/main.py +7 -6
  46. shotgun/prompts/agents/partials/artifact_system.j2 +35 -0
  47. shotgun/prompts/agents/partials/codebase_understanding.j2 +1 -2
  48. shotgun/prompts/agents/partials/common_agent_system_prompt.j2 +28 -2
  49. shotgun/prompts/agents/partials/content_formatting.j2 +65 -0
  50. shotgun/prompts/agents/partials/interactive_mode.j2 +10 -2
  51. shotgun/prompts/agents/plan.j2 +33 -32
  52. shotgun/prompts/agents/research.j2 +39 -29
  53. shotgun/prompts/agents/specify.j2 +32 -0
  54. shotgun/prompts/agents/state/artifact_templates_available.j2 +18 -0
  55. shotgun/prompts/agents/state/codebase/codebase_graphs_available.j2 +3 -1
  56. shotgun/prompts/agents/state/existing_artifacts_available.j2 +23 -0
  57. shotgun/prompts/agents/state/system_state.j2 +9 -1
  58. shotgun/prompts/agents/tasks.j2 +27 -12
  59. shotgun/prompts/history/incremental_summarization.j2 +53 -0
  60. shotgun/sdk/artifact_models.py +186 -0
  61. shotgun/sdk/artifacts.py +448 -0
  62. shotgun/sdk/services.py +14 -0
  63. shotgun/tui/app.py +26 -7
  64. shotgun/tui/screens/chat.py +32 -5
  65. shotgun/tui/screens/directory_setup.py +113 -0
  66. shotgun/utils/file_system_utils.py +6 -1
  67. {shotgun_sh-0.1.0.dev12.dist-info → shotgun_sh-0.1.0.dev14.dist-info}/METADATA +3 -2
  68. shotgun_sh-0.1.0.dev14.dist-info/RECORD +138 -0
  69. shotgun/prompts/user/research.j2 +0 -5
  70. shotgun_sh-0.1.0.dev12.dist-info/RECORD +0 -104
  71. {shotgun_sh-0.1.0.dev12.dist-info → shotgun_sh-0.1.0.dev14.dist-info}/WHEEL +0 -0
  72. {shotgun_sh-0.1.0.dev12.dist-info → shotgun_sh-0.1.0.dev14.dist-info}/entry_points.txt +0 -0
  73. {shotgun_sh-0.1.0.dev12.dist-info → shotgun_sh-0.1.0.dev14.dist-info}/licenses/LICENSE +0 -0
shotgun/tui/app.py CHANGED
@@ -4,16 +4,22 @@ from textual.binding import Binding
4
4
  from shotgun.agents.config import ConfigManager, get_config_manager
5
5
  from shotgun.logging_config import get_logger
6
6
  from shotgun.tui.screens.splash import SplashScreen
7
+ from shotgun.utils.file_system_utils import get_shotgun_base_path
7
8
  from shotgun.utils.update_checker import check_for_updates_async
8
9
 
9
10
  from .screens.chat import ChatScreen
11
+ from .screens.directory_setup import DirectorySetupScreen
10
12
  from .screens.provider_config import ProviderConfigScreen
11
13
 
12
14
  logger = get_logger(__name__)
13
15
 
14
16
 
15
17
  class ShotgunApp(App[None]):
16
- SCREENS = {"chat": ChatScreen, "provider_config": ProviderConfigScreen}
18
+ SCREENS = {
19
+ "chat": ChatScreen,
20
+ "provider_config": ProviderConfigScreen,
21
+ "directory_setup": DirectorySetupScreen,
22
+ }
17
23
  BINDINGS = [
18
24
  Binding("ctrl+c", "quit", "Quit the app"),
19
25
  ]
@@ -43,21 +49,34 @@ class ShotgunApp(App[None]):
43
49
  self.push_screen(
44
50
  SplashScreen(), callback=lambda _arg: self.refresh_startup_screen()
45
51
  )
46
- # self.refresh_startup_screen()
47
52
 
48
53
  def refresh_startup_screen(self) -> None:
49
54
  """Push the appropriate screen based on configured providers."""
50
- if self.config_manager.has_any_provider_key():
51
- if isinstance(self.screen, ChatScreen):
52
- return
53
- self.push_screen("chat")
54
- else:
55
+ if not self.config_manager.has_any_provider_key():
55
56
  if isinstance(self.screen, ProviderConfigScreen):
56
57
  return
57
58
 
58
59
  self.push_screen(
59
60
  "provider_config", callback=lambda _arg: self.refresh_startup_screen()
60
61
  )
62
+ return
63
+
64
+ if not self.check_local_shotgun_directory_exists():
65
+ if isinstance(self.screen, DirectorySetupScreen):
66
+ return
67
+
68
+ self.push_screen(
69
+ "directory_setup", callback=lambda _arg: self.refresh_startup_screen()
70
+ )
71
+ return
72
+
73
+ if isinstance(self.screen, ChatScreen):
74
+ return
75
+ self.push_screen("chat")
76
+
77
+ def check_local_shotgun_directory_exists(self) -> bool:
78
+ shotgun_dir = get_shotgun_base_path()
79
+ return shotgun_dir.exists() and shotgun_dir.is_dir()
61
80
 
62
81
  async def action_quit(self) -> None:
63
82
  """Override quit action to show update notification."""
@@ -1,7 +1,7 @@
1
1
  from collections.abc import AsyncGenerator
2
2
  from typing import cast
3
3
 
4
- from pydantic_ai import DeferredToolResults
4
+ from pydantic_ai import DeferredToolResults, RunContext
5
5
  from pydantic_ai.messages import (
6
6
  BuiltinToolCallPart,
7
7
  BuiltinToolReturnPart,
@@ -24,13 +24,18 @@ from textual.widgets import Markdown
24
24
  from shotgun.agents.agent_manager import AgentManager, AgentType, MessageHistoryUpdated
25
25
  from shotgun.agents.config import get_provider_model
26
26
  from shotgun.agents.models import AgentDeps, UserAnswer, UserQuestion
27
- from shotgun.sdk.services import get_codebase_service
27
+ from shotgun.sdk.services import get_artifact_service, get_codebase_service
28
28
 
29
29
  from ..components.prompt_input import PromptInput
30
30
  from ..components.spinner import Spinner
31
31
  from ..components.vertical_tail import VerticalTail
32
32
 
33
33
 
34
+ def _dummy_system_prompt_fn(ctx: RunContext[AgentDeps]) -> str:
35
+ """Dummy system prompt function for TUI chat interface."""
36
+ return "You are a helpful AI assistant."
37
+
38
+
34
39
  class PromptHistory:
35
40
  def __init__(self) -> None:
36
41
  self.prompts: list[str] = ["Hello there!"]
@@ -289,6 +294,18 @@ class ChatScreen(Screen[None]):
289
294
 
290
295
  COMMANDS = {AgentModeProvider, ProviderSetupProvider}
291
296
 
297
+ _PLACEHOLDER_BY_MODE: dict[AgentType, str] = {
298
+ AgentType.RESEARCH: (
299
+ "Ask for investigations, e.g. research strengths and weaknesses of PydanticAI vs its rivals"
300
+ ),
301
+ AgentType.PLAN: (
302
+ "Describe a goal to plan, e.g. draft a rollout plan for launching our Slack automation"
303
+ ),
304
+ AgentType.TASKS: (
305
+ "Request actionable work, e.g. break down tasks to wire OpenTelemetry into the API"
306
+ ),
307
+ }
308
+
292
309
  value = reactive("")
293
310
  mode = reactive(AgentType.RESEARCH)
294
311
  history: PromptHistory = PromptHistory()
@@ -298,13 +315,16 @@ class ChatScreen(Screen[None]):
298
315
 
299
316
  def __init__(self) -> None:
300
317
  super().__init__()
301
- # Get the model configuration and codebase service
318
+ # Get the model configuration and services
302
319
  model_config = get_provider_model()
303
320
  codebase_service = get_codebase_service()
321
+ artifact_service = get_artifact_service()
304
322
  self.deps = AgentDeps(
305
323
  interactive_mode=True,
306
324
  llm_model=model_config,
307
325
  codebase_service=codebase_service,
326
+ artifact_service=artifact_service,
327
+ system_prompt_fn=_dummy_system_prompt_fn,
308
328
  )
309
329
  self.agent_manager = AgentManager(deps=self.deps, initial_type=self.mode)
310
330
 
@@ -323,6 +343,10 @@ class ChatScreen(Screen[None]):
323
343
  mode_indicator.mode = new_mode
324
344
  mode_indicator.refresh()
325
345
 
346
+ prompt_input = self.query_one(PromptInput)
347
+ prompt_input.placeholder = self._placeholder_for_mode(new_mode)
348
+ prompt_input.refresh()
349
+
326
350
  def watch_working(self, is_working: bool) -> None:
327
351
  """Show or hide the spinner based on working state."""
328
352
  if self.is_mounted:
@@ -379,7 +403,7 @@ class ChatScreen(Screen[None]):
379
403
  text=self.value,
380
404
  highlight_cursor_line=False,
381
405
  id="prompt-input",
382
- placeholder="Type your message",
406
+ placeholder=self._placeholder_for_mode(self.mode),
383
407
  )
384
408
  yield ModeIndicator(mode=self.mode)
385
409
 
@@ -398,7 +422,10 @@ class ChatScreen(Screen[None]):
398
422
 
399
423
  prompt_input = self.query_one(PromptInput)
400
424
  prompt_input.clear()
401
- prompt_input.focus()
425
+
426
+ def _placeholder_for_mode(self, mode: AgentType) -> str:
427
+ """Return the placeholder text appropriate for the current mode."""
428
+ return self._PLACEHOLDER_BY_MODE.get(mode, "Type your message")
402
429
 
403
430
  @work
404
431
  async def run_agent(self, message: str) -> None:
@@ -0,0 +1,113 @@
1
+ """Screen for setting up the local .shotgun directory."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from pathlib import Path
6
+
7
+ from textual import on
8
+ from textual.app import ComposeResult
9
+ from textual.containers import Horizontal, Vertical
10
+ from textual.screen import Screen
11
+ from textual.widgets import Button, Static
12
+
13
+ from shotgun.utils.file_system_utils import ensure_shotgun_directory_exists
14
+
15
+
16
+ class DirectorySetupScreen(Screen[None]):
17
+ """Prompt the user to initialize the .shotgun directory."""
18
+
19
+ CSS = """
20
+ DirectorySetupScreen {
21
+ layout: vertical;
22
+ }
23
+
24
+ DirectorySetupScreen > * {
25
+ height: auto;
26
+ }
27
+
28
+ #titlebox {
29
+ height: auto;
30
+ margin: 2 0;
31
+ padding: 1;
32
+ border: hkey $border;
33
+ content-align: center middle;
34
+
35
+ & > * {
36
+ text-align: center;
37
+ }
38
+ }
39
+
40
+ #directory-setup-title {
41
+ padding: 1 0;
42
+ text-style: bold;
43
+ color: $text-accent;
44
+ }
45
+
46
+ #directory-setup-summary {
47
+ padding: 0 1;
48
+ }
49
+
50
+ #directory-actions {
51
+ padding: 1;
52
+ content-align: center middle;
53
+ align: center middle;
54
+ }
55
+
56
+ #directory-actions > * {
57
+ margin-right: 2;
58
+ }
59
+ """
60
+
61
+ BINDINGS = [
62
+ ("enter", "confirm", "Initialize"),
63
+ ("escape", "cancel", "Exit"),
64
+ ]
65
+
66
+ def compose(self) -> ComposeResult:
67
+ with Vertical(id="titlebox"):
68
+ yield Static("Directory setup", id="directory-setup-title")
69
+ yield Static("Shotgun keeps workspace data in a .shotgun directory.\n")
70
+ yield Static("Initialize it in the current directory?\n")
71
+ yield Static(f"[$foreground-muted]({Path.cwd().resolve()})[/]")
72
+ with Horizontal(id="directory-actions"):
73
+ yield Button(
74
+ "Initialize and proceed \\[ENTER]", variant="primary", id="initialize"
75
+ )
76
+ yield Button("Exit without setup \\[ESC]", variant="default", id="exit")
77
+
78
+ def on_mount(self) -> None:
79
+ self.set_focus(self.query_one("#initialize", Button))
80
+
81
+ def action_confirm(self) -> None:
82
+ self._initialize_directory()
83
+
84
+ def action_cancel(self) -> None:
85
+ self._exit_application()
86
+
87
+ @on(Button.Pressed, "#initialize")
88
+ def _on_initialize_pressed(self) -> None:
89
+ self._initialize_directory()
90
+
91
+ @on(Button.Pressed, "#exit")
92
+ def _on_exit_pressed(self) -> None:
93
+ self._exit_application()
94
+
95
+ def _initialize_directory(self) -> None:
96
+ try:
97
+ path = ensure_shotgun_directory_exists()
98
+ except Exception as exc: # pragma: no cover - defensive; textual path
99
+ self.notify(f"Failed to initialize directory: {exc}", severity="error")
100
+ return
101
+
102
+ # Double-check a directory now exists; guard against unexpected filesystem state.
103
+ if not path.is_dir():
104
+ self.notify(
105
+ "Unable to initialize .shotgun directory due to filesystem conflict.",
106
+ severity="error",
107
+ )
108
+ return
109
+
110
+ self.dismiss()
111
+
112
+ def _exit_application(self) -> None:
113
+ self.app.exit()
@@ -4,6 +4,11 @@ import os
4
4
  from pathlib import Path
5
5
 
6
6
 
7
+ def get_shotgun_base_path() -> Path:
8
+ """Get the absolute path to the .shotgun directory."""
9
+ return Path.cwd() / ".shotgun"
10
+
11
+
7
12
  def get_shotgun_home() -> Path:
8
13
  """Get the Shotgun home directory path.
9
14
 
@@ -25,7 +30,7 @@ def ensure_shotgun_directory_exists() -> Path:
25
30
  Returns:
26
31
  Path: The path to the .shotgun directory.
27
32
  """
28
- shotgun_dir = Path.cwd() / ".shotgun"
33
+ shotgun_dir = get_shotgun_base_path()
29
34
  shotgun_dir.mkdir(exist_ok=True)
30
35
  # Note: Removed logger to avoid circular dependency with logging_config
31
36
  return shotgun_dir
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: shotgun-sh
3
- Version: 0.1.0.dev12
3
+ Version: 0.1.0.dev14
4
4
  Summary: AI-powered research, planning, and task management CLI tool
5
5
  Project-URL: Homepage, https://shotgun.sh/
6
6
  Project-URL: Repository, https://github.com/shotgun-sh/shotgun
@@ -23,7 +23,7 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
23
23
  Classifier: Topic :: Utilities
24
24
  Requires-Python: >=3.10
25
25
  Requires-Dist: anthropic>=0.39.0
26
- Requires-Dist: google-generativeai>=0.8.0
26
+ Requires-Dist: google-generativeai>=0.8.5
27
27
  Requires-Dist: httpx>=0.27.0
28
28
  Requires-Dist: jinja2>=3.1.0
29
29
  Requires-Dist: kuzu>=0.7.0
@@ -36,6 +36,7 @@ Requires-Dist: rich>=13.0.0
36
36
  Requires-Dist: sentry-sdk[pure-eval]>=2.0.0
37
37
  Requires-Dist: textual-dev>=1.7.0
38
38
  Requires-Dist: textual>=6.1.0
39
+ Requires-Dist: tiktoken>=0.7.0
39
40
  Requires-Dist: tree-sitter-go>=0.23.0
40
41
  Requires-Dist: tree-sitter-javascript>=0.23.0
41
42
  Requires-Dist: tree-sitter-python>=0.23.0
@@ -0,0 +1,138 @@
1
+ shotgun/__init__.py,sha256=P40K0fnIsb7SKcQrFnXZ4aREjpWchVDhvM1HxI4cyIQ,104
2
+ shotgun/build_constants.py,sha256=RXNxMz46HaB5jucgMVpw8a2yCJqjbhTOh0PddyEVMN8,713
3
+ shotgun/logging_config.py,sha256=qWPTKu6IhaA_qiHQFhx8zTphm6oHMZFXox2nieyV32M,6795
4
+ shotgun/main.py,sha256=gDH81bxf9gG8Qoq-zs9cMorCzLCyDJpFg2cmUnGMoiI,4790
5
+ shotgun/posthog_telemetry.py,sha256=7drAXtedvZmpPqq4_9dI19kJ_xEHGk7XKXQk797QvCM,4954
6
+ shotgun/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
+ shotgun/sentry_telemetry.py,sha256=3r9on0GQposn9aX6Dkb9mrfaVQl_dIZzhu9BjE838AU,2854
8
+ shotgun/telemetry.py,sha256=aBwCRFU97oiIK5K13OhT7yYCQUAVQyrvnoG-aX3k2ZE,3109
9
+ shotgun/agents/__init__.py,sha256=8Jzv1YsDuLyNPFJyckSr_qI4ehTVeDyIMDW4omsfPGc,25
10
+ shotgun/agents/agent_manager.py,sha256=aTBqSbrAMfy_oCLw80nOoygStRaZSLBi7qD_4nzUT34,7008
11
+ shotgun/agents/artifact_state.py,sha256=WkspYQe-9CvBS90PapBsX997yvJ5KWH-qtSXIWmfvp0,2121
12
+ shotgun/agents/common.py,sha256=my-Y7VNNpDDYxDJ4hlRmTs7lIS8tBKFvR9ew7uKxcPE,11369
13
+ shotgun/agents/models.py,sha256=I3Mv8nmLUgbdF-I9BvsgZtVEVfD5hPgDs1mc8AlM9Fs,6515
14
+ shotgun/agents/plan.py,sha256=mn0S4r-uXWjerMTzfJLJo7n0pweNp_v8TI53wOxMdZ4,2984
15
+ shotgun/agents/research.py,sha256=tee5gHT0d1Iupr5MI9ogNTh35xqh0j2N71rmb4dUtG0,3224
16
+ shotgun/agents/specify.py,sha256=E9hYxTTVEOkpym-D-q74FI3L_mwllY6QOu8C3U6SEww,3088
17
+ shotgun/agents/tasks.py,sha256=ChPet4pw1cIJUWqBM05CKIKzEXOFAlAov9QqQOcPK-w,2935
18
+ shotgun/agents/config/__init__.py,sha256=Fl8K_81zBpm-OfOW27M_WWLSFdaHHek6lWz95iDREjQ,318
19
+ shotgun/agents/config/constants.py,sha256=c1k7LFvx29rzQCUXxyfr2PukwS5ol8rH8AXQaxALPVM,526
20
+ shotgun/agents/config/manager.py,sha256=kwMbPjz0kEH_WCQAamESGjHdE8d_P-ztel4NL4FWNUw,10662
21
+ shotgun/agents/config/models.py,sha256=CSA7bt22fYB1OJ17hngcoL2XyKD2QmZrRBtAc7fPoFE,6019
22
+ shotgun/agents/config/provider.py,sha256=qvgHKpKrI2pC9Qb9ahojgaNAD1DqM6vPg9o6NPaX0-0,5949
23
+ shotgun/agents/history/__init__.py,sha256=XFQj2a6fxDqVg0Q3juvN9RjV_RJbgvFZtQOCOjVJyp4,147
24
+ shotgun/agents/history/compaction.py,sha256=KY_ZvRvvlrB6eLPGqtlC6H8h4HPPOtuPcUkgQJUjK5I,2890
25
+ shotgun/agents/history/constants.py,sha256=yWY8rrTZarLA3flCCMB_hS2NMvUDRDTwP4D4j7MIh1w,446
26
+ shotgun/agents/history/context_extraction.py,sha256=yVka1U6TqNVsORR4JlxpWi9yBt3Quip8g_u3x2Vi9Gs,3564
27
+ shotgun/agents/history/history_building.py,sha256=6LFDZ60MTPDoGAcmu_mjlnjVYu8YYWdIi-cGbF3jm7A,3532
28
+ shotgun/agents/history/history_processors.py,sha256=beipmLkHxhQDxrtoCGGK86arOIzcu8aa1fFCvxa5v2o,15097
29
+ shotgun/agents/history/message_utils.py,sha256=S7wqix4W3uvC8rChs6TMxp7yjnjr8a2AqPxLIKnDyjI,1526
30
+ shotgun/agents/history/token_counting.py,sha256=RasWy84eNjbmqyQDTGAzj1Q1I9ml_G_9R-maWN7gr8s,13839
31
+ shotgun/agents/history/token_estimation.py,sha256=iNqhDSqFzG0YYxGijMRzj54GALFglOp0qVMB6G59RhU,4690
32
+ shotgun/agents/tools/__init__.py,sha256=QaN80IqWvB5qEcjHqri1-PYvYlO74vdhcwLugoEdblo,772
33
+ shotgun/agents/tools/artifact_management.py,sha256=Oq5FMguiTQWsJXfoa-0VR-LmUeD8v9yH5p7cKzJOIZA,17240
34
+ shotgun/agents/tools/file_management.py,sha256=6ru6DXAl-S6DiCt2HLGTDrK2rJBJpn-t6RkSHzYbxc4,4571
35
+ shotgun/agents/tools/user_interaction.py,sha256=7l0OY8EdgO-9gkKy-yOv0V0P_Uzzfk0jMU39d4XN1xM,1087
36
+ shotgun/agents/tools/codebase/__init__.py,sha256=ceAGkK006NeOYaIJBLQsw7Q46sAyCRK9PYDs8feMQVw,661
37
+ shotgun/agents/tools/codebase/codebase_shell.py,sha256=2zEq8YXzdcYttYAfKso_JGRqXHyy3xgAuWlf0unopFg,8635
38
+ shotgun/agents/tools/codebase/directory_lister.py,sha256=MCLGDEc0F-4J8-UrquxdJrIQYs5xzYgws65mjf7Q7X4,4724
39
+ shotgun/agents/tools/codebase/file_read.py,sha256=mqS04CI9OEmWiSHjL5SPUCUgPzoQa33QUZT71iOm9Zk,5072
40
+ shotgun/agents/tools/codebase/models.py,sha256=8eR3_8DQiBNgB2twu0aC_evIJbugN9KW3gtxMZdGYCE,10087
41
+ shotgun/agents/tools/codebase/query_graph.py,sha256=ffm8kTZap0KwPTtae5hvYLy_AQDjpDHUcx0ui9nX2OQ,2136
42
+ shotgun/agents/tools/codebase/retrieve_code.py,sha256=yhWCiam6Dgs9Pyx0mVVzsC4KhQb2NmP5DEToOj3q1Vw,2899
43
+ shotgun/agents/tools/web_search/__init__.py,sha256=Sj1tVokrCsJiLRWWTq0zrAolMHEGntRIYnqiyFi8L2E,1840
44
+ shotgun/agents/tools/web_search/anthropic.py,sha256=IEcSujX5F7-b-87HZqcCHfp3C_E0WSSlb3Hvjq43KvE,4908
45
+ shotgun/agents/tools/web_search/gemini.py,sha256=hXjWUF-aTX3B9ViaKe5aF2aHXlaoBA5am40cgilinGE,2981
46
+ shotgun/agents/tools/web_search/openai.py,sha256=V8GeqwUAi5wrbRuU41Y38schpXRdyeIfw85-CT5rAhY,3415
47
+ shotgun/agents/tools/web_search/utils.py,sha256=GLJ5QV9bT2ubFMuFN7caMN7tK9OTJ0R3GD57B-tCMF0,532
48
+ shotgun/artifacts/__init__.py,sha256=FMgUfa1XzmLVMyYdTFWN1NpQDB9LfmJdnvhRvbVZaDA,494
49
+ shotgun/artifacts/exceptions.py,sha256=iaGYlTw7iOqjyzunrSvZS8FZXtL_BZHJmKMkZKqRZoI,3074
50
+ shotgun/artifacts/manager.py,sha256=DtL0P8SldF4Qb8lL8lg-WRdSvdK0DDJEIjVHxtzSh1E,19533
51
+ shotgun/artifacts/models.py,sha256=RjqLBKnymgXrT-FqvzgzDW7IHUO--L1ODuSQF6lXNew,12291
52
+ shotgun/artifacts/service.py,sha256=EJR9F8UcGI9qjOzq_SzF7J0qHTrPBML3cYk9RA6bcMA,14546
53
+ shotgun/artifacts/utils.py,sha256=UNz1hkPH2qaHJsS2KWMT0BUcSaDydIKmQPrVtNiLWHg,2176
54
+ shotgun/artifacts/templates/__init__.py,sha256=X0qT2IofYOdotDMi7a7JGbgKOLCRWksHS7Pcz81vHRk,246
55
+ shotgun/artifacts/templates/loader.py,sha256=qLAOibYH55l1kF3Yd3GU5uLVfF0CDUml-vtqgTZ9YhA,8742
56
+ shotgun/artifacts/templates/models.py,sha256=Y4BhTNhbjZJvBHsf5op569meRq96imggrt5ZjnkeaDg,4879
57
+ shotgun/artifacts/templates/plan/delivery_and_release_plan.yaml,sha256=HOdOCvVpEu9Qnrf5gll0oqY9v-_vapczyfmaB6c8cAg,3289
58
+ shotgun/artifacts/templates/research/market_research.yaml,sha256=uoOw5s6kUVwSBhhk6LfcCqZQZUC4BNUQnkeEYEYQ1VE,24744
59
+ shotgun/artifacts/templates/research/sdk_comparison.yaml,sha256=UgDGMzYfcmDpY8qaHB2UWpXp-cKcbNQvJfcGopcnzs0,11150
60
+ shotgun/artifacts/templates/specify/prd.yaml,sha256=LTtTOERjYe1iGV7Wj-WJEExcbHp-zb3LMgweuboXmiM,10784
61
+ shotgun/artifacts/templates/specify/product_spec.yaml,sha256=BAubivc75VnNZVRqGK9kX1TxZDn-e2_eYbuZGaKvk2U,13953
62
+ shotgun/cli/__init__.py,sha256=_F1uW2g87y4bGFxz8Gp8u7mq2voHp8vQIUtCmm8Tojo,40
63
+ shotgun/cli/config.py,sha256=LbjxDNPdetYJiwlcyOYLnqwzALfgU-m54cfstUshbrs,8715
64
+ shotgun/cli/models.py,sha256=LoajeEK7MEDUSnZXb1Li-dbhXqne812YZglx-LcVpiQ,181
65
+ shotgun/cli/plan.py,sha256=T-eu-I9z-dSoKqJ-KI8X5i5Mm0VL1BfornxRiUjTgnk,2324
66
+ shotgun/cli/research.py,sha256=qvBBtX3Wyn6pDZlJpcEvbeK-0iTOXegi71tm8HKVYaE,2490
67
+ shotgun/cli/specify.py,sha256=ErRQ72Zc75fmxopZbKy0vvnLPuYBLsGynpjj1X6-BwI,2166
68
+ shotgun/cli/tasks.py,sha256=17qWoGCVYpNIxa2vaoIH1P-xz2RcGLaK8SF4JlPsOWI,2420
69
+ shotgun/cli/update.py,sha256=3IWt3vbFprsyiRH8J-YYVSOuga7Spi7SrbQVvKH8r5U,4771
70
+ shotgun/cli/utils.py,sha256=umVWXDx8pelovMk-nT8B7m0c39AKY9hHsuAMnbw_Hcg,732
71
+ shotgun/cli/codebase/__init__.py,sha256=rKdvx33p0i_BYbNkz5_4DCFgEMwzOOqLi9f5p7XTLKM,73
72
+ shotgun/cli/codebase/commands.py,sha256=zvcM9gjHHO6styhXojb_1bnpq-Cozh2c77ZOIjw4B8s,6683
73
+ shotgun/cli/codebase/models.py,sha256=B9vs-d-Bq0aS6FZKebhHT-9tw90Y5f6k_t71VlZpL8k,374
74
+ shotgun/codebase/__init__.py,sha256=QBgFE2Abd5Vl7_NdYOglF9S6d-vIjkb3C0cpIYoHZEU,309
75
+ shotgun/codebase/models.py,sha256=A-54QxpP9Kjg5M6UesQVmyHjAGT_s8yaWRTXBFQRmv0,4163
76
+ shotgun/codebase/service.py,sha256=FS-6JqM2RbetMVaxSnEyfviMOUre1XVfwINu-IFIJjw,4688
77
+ shotgun/codebase/core/__init__.py,sha256=GWWhJEqChiDXAF4omYCgzgoZmJjwsAf6P1aZ5Bl8OE0,1170
78
+ shotgun/codebase/core/change_detector.py,sha256=kWCYLWzRzb3IGGOj71KBn7UOCOKMpINJbOBDf98aMxE,12409
79
+ shotgun/codebase/core/code_retrieval.py,sha256=_JVyyQKHDFm3dxOOua1mw9eIIOHIVz3-I8aZtEsEj1E,7927
80
+ shotgun/codebase/core/ingestor.py,sha256=zMjadeqDOEr2v3vhTS25Jvx0WsLPXpgwquZfbdiz57o,59810
81
+ shotgun/codebase/core/language_config.py,sha256=vsqHyuFnumRPRBV1lMOxWKNOIiClO6FyfKQR0fGrtl4,8934
82
+ shotgun/codebase/core/manager.py,sha256=5GlJKykDGvnb6nTr9w3kyCPTL4OQgmBoesnWr28wvTg,55419
83
+ shotgun/codebase/core/nl_query.py,sha256=iV6NbsyDd1SQpT9U9BtgxcZPsNoEW3OHrkk475r_jAY,11410
84
+ shotgun/codebase/core/parser_loader.py,sha256=LZRrDS8Sp518jIu3tQW-BxdwJ86lnsTteI478ER9Td8,4278
85
+ shotgun/prompts/__init__.py,sha256=RswUm0HMdfm2m2YKUwUsEdRIwoczdbI7zlucoEvHYRo,132
86
+ shotgun/prompts/loader.py,sha256=jy24-E02pCSmz2651aCT2NgHfRrHAGMYvKrD6gs0Er8,4424
87
+ shotgun/prompts/agents/__init__.py,sha256=YRIJMbzpArojNX1BP5gfxxois334z_GQga8T-xyWMbY,39
88
+ shotgun/prompts/agents/plan.j2,sha256=N6nv3S2up4SPVuB3OZSj7vLqsLfNzynFVjvb9I7Jn3U,2899
89
+ shotgun/prompts/agents/research.j2,sha256=YQUlYQX2w4pD8mQ5vOAu7EVrbtZlbGDuwias950JEyc,2997
90
+ shotgun/prompts/agents/specify.j2,sha256=vBwMTEDUOCLSJl7J9_oVL5tTk5uFV4LJWlo5Tnw93Zw,1918
91
+ shotgun/prompts/agents/tasks.j2,sha256=0gmbZe6J9IyORx8w66Z0cEYrs3TcXO1jSxM1DWd6Fdw,3614
92
+ shotgun/prompts/agents/partials/artifact_system.j2,sha256=AD1CvHDSZEmjplmDw443PeOmcXUgM5JdNLu1_mz18kM,1678
93
+ shotgun/prompts/agents/partials/codebase_understanding.j2,sha256=AQmN04VRzGmLbxKKthMK4hkJZ9mIU1NMKIpTDOHJrPM,5051
94
+ shotgun/prompts/agents/partials/common_agent_system_prompt.j2,sha256=UgEHSudzfsCcKHp-Nt6tlsel8ap93z7yevbt0r9SSSg,1663
95
+ shotgun/prompts/agents/partials/content_formatting.j2,sha256=MG0JB7SSp8YV5akDWpbs2f9DcdREIYqLp38NnoWLeQ0,1854
96
+ shotgun/prompts/agents/partials/interactive_mode.j2,sha256=QYpG7Nyjmylpp0fLQhJQfY6QBV3ET6eigSTu4foIUys,671
97
+ shotgun/prompts/agents/state/artifact_templates_available.j2,sha256=gs8k50_RTSfo_6DYj7MMXDm4mwXyr2yUnVQ8PQGGr5I,720
98
+ shotgun/prompts/agents/state/existing_artifacts_available.j2,sha256=Z5yobwaf7sfTt94LmQ1L9vZY5upGvQeOGCPMnFkdr08,686
99
+ shotgun/prompts/agents/state/system_state.j2,sha256=NFuBOo7cGy0tQrnDUs3wGO19oytGNHK2K8tgoG4cw1M,274
100
+ shotgun/prompts/agents/state/codebase/codebase_graphs_available.j2,sha256=IX9Xrg1d2uh_C4096shY_hpqhuu0RJLZpH0NbXEMSXI,413
101
+ shotgun/prompts/codebase/__init__.py,sha256=NYuPMtmYM2ptuwf3YxVuotNlJOUq0hnjmwlzKcJkGK4,42
102
+ shotgun/prompts/codebase/cypher_query_patterns.j2,sha256=4vIqiQ2JG9fQ4Xf0nSbUpZQtTNgQ1e0JhBRi2mSkGhc,8850
103
+ shotgun/prompts/codebase/cypher_system.j2,sha256=kV-OJ8gM3vsBo8hW4mLSEHpJW-wV_2tNaPck3HUM52c,1497
104
+ shotgun/prompts/codebase/enhanced_query_context.j2,sha256=WzGnFaBLZO-mOdkZ_u_PewSu9niKy87DKNL4uzQq1Jg,724
105
+ shotgun/prompts/codebase/partials/cypher_rules.j2,sha256=vtc5OqTp-z5Rq_ti-_RG31bVOIA_iNe80_x3CdxO6bs,2397
106
+ shotgun/prompts/codebase/partials/graph_schema.j2,sha256=hSzfxQ4C6Pfs6BIMeBekpMwfzQLUWmrLJkFVcYJFKMs,1832
107
+ shotgun/prompts/codebase/partials/temporal_context.j2,sha256=yYHQHBQ4EeSs6TtKPm9fflGW3y6H0-yAANcTdsApkk4,1388
108
+ shotgun/prompts/history/__init__.py,sha256=wbMLQ8yWmYz1sfXXigEAUlNkFcM50KdQv0kp4VU_P58,43
109
+ shotgun/prompts/history/incremental_summarization.j2,sha256=GmnNh0pWTjaEaI1sPwKNsGCys5fK8xrzWqalAs_LhJw,2447
110
+ shotgun/prompts/history/summarization.j2,sha256=OYNVHg65zbuWB6_pXzTOs2T2k5qFD2gyfbmr6NP01rs,2268
111
+ shotgun/sdk/__init__.py,sha256=ESV0WM9MigjXG30g9qVjcCMI40GQv-P-MSMGVuOisK4,380
112
+ shotgun/sdk/artifact_models.py,sha256=5txP6KCCqwmGl9eBbJt5yyic9p1FeTk58ox8AZ_u6aw,5550
113
+ shotgun/sdk/artifacts.py,sha256=YbGPdDFd9ORt1vDWSbbPhGlSZ6MXLS6N0kcucxDDEc4,14818
114
+ shotgun/sdk/codebase.py,sha256=T8QprL7_PKmAFNpo341NjHczJsd1lfptAR2ZQ-oNK3Q,6064
115
+ shotgun/sdk/exceptions.py,sha256=qBcQv0v7ZTwP7CMcxZST4GqCsfOWtOUjSzGBo0-heqo,412
116
+ shotgun/sdk/models.py,sha256=RsR9e2wiVrNGP2zTvjIZVvBlibgluuhDZlCNcw8JTTA,5488
117
+ shotgun/sdk/services.py,sha256=WJi_AANWJZPdWdq9LntP5nlYgLxLlsFyXt28DGYNoJo,1132
118
+ shotgun/tui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
119
+ shotgun/tui/app.py,sha256=kaRBsz2-09ij_peNopkAxhPPHBy7zsgR8V_5tAs8VRk,3381
120
+ shotgun/tui/styles.tcss,sha256=ETyyw1bpMBOqTi5RLcAJUScdPWTvAWEqE9YcT0kVs_E,121
121
+ shotgun/tui/components/prompt_input.py,sha256=Ss-htqraHZAPaehGE4x86ij0veMjc4UgadMXpbdXr40,2229
122
+ shotgun/tui/components/spinner.py,sha256=ovTDeaJ6FD6chZx_Aepia6R3UkPOVJ77EKHfRmn39MY,2427
123
+ shotgun/tui/components/splash.py,sha256=vppy9vEIEvywuUKRXn2y11HwXSRkQZHLYoVjhDVdJeU,1267
124
+ shotgun/tui/components/vertical_tail.py,sha256=kkCH0WjAh54jDvRzIaOffRZXUKn_zHFZ_ichfUpgzaE,1071
125
+ shotgun/tui/screens/chat.py,sha256=4Vq0_BNFTgyVyBvMUuHY9wOjT27uQN-rIbf2depgtVM,15620
126
+ shotgun/tui/screens/chat.tcss,sha256=MV7-HhXSpBxIsSbB57RugNeM0wOpqMpIVke7qCf4-yQ,312
127
+ shotgun/tui/screens/directory_setup.py,sha256=lIZ1J4A6g5Q2ZBX8epW7BhR96Dmdcg22CyiM5S-I5WU,3237
128
+ shotgun/tui/screens/provider_config.py,sha256=A_tvDHF5KLP5PV60LjMJ_aoOdT3TjI6_g04UIUqGPqM,7126
129
+ shotgun/tui/screens/splash.py,sha256=E2MsJihi3c9NY1L28o_MstDxGwrCnnV7zdq00MrGAsw,706
130
+ shotgun/utils/__init__.py,sha256=WinIEp9oL2iMrWaDkXz2QX4nYVPAm8C9aBSKTeEwLtE,198
131
+ shotgun/utils/env_utils.py,sha256=8QK5aw_f_V2AVTleQQlcL0RnD4sPJWXlDG46fsHu0d8,1057
132
+ shotgun/utils/file_system_utils.py,sha256=l-0p1bEHF34OU19MahnRFdClHufThfGAjQ431teAIp0,1004
133
+ shotgun/utils/update_checker.py,sha256=Xf-7w3Pos3etzCoT771gJe2HLkA8_V2GrqWy7ni9UqA,11373
134
+ shotgun_sh-0.1.0.dev14.dist-info/METADATA,sha256=PeZXTSdfZOzPV3pgQXw5zwykwo6_ya3tzMR07V2sP_M,11271
135
+ shotgun_sh-0.1.0.dev14.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
136
+ shotgun_sh-0.1.0.dev14.dist-info/entry_points.txt,sha256=asZxLU4QILneq0MWW10saVCZc4VWhZfb0wFZvERnzfA,45
137
+ shotgun_sh-0.1.0.dev14.dist-info/licenses/LICENSE,sha256=YebsZl590zCHrF_acCU5pmNt0pnAfD2DmAnevJPB1tY,1065
138
+ shotgun_sh-0.1.0.dev14.dist-info/RECORD,,
@@ -1,5 +0,0 @@
1
- Research the USER_QUERY thoroughly and provide comprehensive findings:
2
-
3
- <USER_QUERY>
4
- {{ user_query }}
5
- </USER_QUERY>
@@ -1,104 +0,0 @@
1
- shotgun/__init__.py,sha256=P40K0fnIsb7SKcQrFnXZ4aREjpWchVDhvM1HxI4cyIQ,104
2
- shotgun/build_constants.py,sha256=RXNxMz46HaB5jucgMVpw8a2yCJqjbhTOh0PddyEVMN8,713
3
- shotgun/logging_config.py,sha256=3fZy0_MSNXNtkmy_Wwpu_VCu7NUR1yt0OZ4uy-vXeA8,6249
4
- shotgun/main.py,sha256=7gXkTNmwqW2phBnENn76bUyh5Qm68Iq7NBf3GnWG6J0,4618
5
- shotgun/posthog_telemetry.py,sha256=7drAXtedvZmpPqq4_9dI19kJ_xEHGk7XKXQk797QvCM,4954
6
- shotgun/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
- shotgun/sentry_telemetry.py,sha256=3r9on0GQposn9aX6Dkb9mrfaVQl_dIZzhu9BjE838AU,2854
8
- shotgun/telemetry.py,sha256=aBwCRFU97oiIK5K13OhT7yYCQUAVQyrvnoG-aX3k2ZE,3109
9
- shotgun/agents/__init__.py,sha256=8Jzv1YsDuLyNPFJyckSr_qI4ehTVeDyIMDW4omsfPGc,25
10
- shotgun/agents/agent_manager.py,sha256=1Aof8btrV2Ei3V3bNn8bLzdBiBsJ-sjaQq0t7bnwbpo,6564
11
- shotgun/agents/common.py,sha256=xNlbvwt68de2588930iI4JnNVyPMGsUEwf_ySFXttFE,9439
12
- shotgun/agents/models.py,sha256=EY84zpsZW1g-K6-JHVDJoO6R_Q6ZM7YKyUtZO1j0Gmo,2453
13
- shotgun/agents/plan.py,sha256=mSkaMfavZ1-WNJ-Yk-8ivbNtmbOz-TZI4oO8vIXXu5Y,3537
14
- shotgun/agents/research.py,sha256=zDoS1BLVn7Wvcc4VAoYWOZ33IhtaHCY_CIlvEFiD1_A,4089
15
- shotgun/agents/tasks.py,sha256=8miXmOB6zp-9jTZgzpgs-109M5BWAg0n5-TD5D8tm1c,3648
16
- shotgun/agents/config/__init__.py,sha256=Fl8K_81zBpm-OfOW27M_WWLSFdaHHek6lWz95iDREjQ,318
17
- shotgun/agents/config/manager.py,sha256=gUeLtJHk9WUXgWeP9ftZAj1e57wLynjazane0IV7SZY,8601
18
- shotgun/agents/config/models.py,sha256=AsstJiAJ1J0_7Lv3IuyKsJYQG_g2CHwwKJoWD3eCtgg,3678
19
- shotgun/agents/config/provider.py,sha256=tN__agB1MiaNL49HTDUz1QzvOXTegLRoJ9xQKoklK-k,5820
20
- shotgun/agents/history/__init__.py,sha256=XFQj2a6fxDqVg0Q3juvN9RjV_RJbgvFZtQOCOjVJyp4,147
21
- shotgun/agents/history/history_processors.py,sha256=U0HiJM4zVLfwUnlZ6_2YoXNRteedMxwmr52KE4jky5w,7036
22
- shotgun/agents/tools/__init__.py,sha256=QaN80IqWvB5qEcjHqri1-PYvYlO74vdhcwLugoEdblo,772
23
- shotgun/agents/tools/file_management.py,sha256=Lua9KZ_zZMbKl8mLO9EIkfjQwjjCnJ3E3R97GzjO460,3985
24
- shotgun/agents/tools/user_interaction.py,sha256=7l0OY8EdgO-9gkKy-yOv0V0P_Uzzfk0jMU39d4XN1xM,1087
25
- shotgun/agents/tools/codebase/__init__.py,sha256=ceAGkK006NeOYaIJBLQsw7Q46sAyCRK9PYDs8feMQVw,661
26
- shotgun/agents/tools/codebase/codebase_shell.py,sha256=2zEq8YXzdcYttYAfKso_JGRqXHyy3xgAuWlf0unopFg,8635
27
- shotgun/agents/tools/codebase/directory_lister.py,sha256=MCLGDEc0F-4J8-UrquxdJrIQYs5xzYgws65mjf7Q7X4,4724
28
- shotgun/agents/tools/codebase/file_read.py,sha256=mqS04CI9OEmWiSHjL5SPUCUgPzoQa33QUZT71iOm9Zk,5072
29
- shotgun/agents/tools/codebase/models.py,sha256=8eR3_8DQiBNgB2twu0aC_evIJbugN9KW3gtxMZdGYCE,10087
30
- shotgun/agents/tools/codebase/query_graph.py,sha256=ffm8kTZap0KwPTtae5hvYLy_AQDjpDHUcx0ui9nX2OQ,2136
31
- shotgun/agents/tools/codebase/retrieve_code.py,sha256=yhWCiam6Dgs9Pyx0mVVzsC4KhQb2NmP5DEToOj3q1Vw,2899
32
- shotgun/agents/tools/web_search/__init__.py,sha256=Sj1tVokrCsJiLRWWTq0zrAolMHEGntRIYnqiyFi8L2E,1840
33
- shotgun/agents/tools/web_search/anthropic.py,sha256=v6R4z_c5L_YbBX3FPNWYUKXUBgFQwTxEgHvtGDlqlgk,3092
34
- shotgun/agents/tools/web_search/gemini.py,sha256=RB7AeGDBvjlsA2RLCI8ErxZh3gOPtA0rhxtW28NyOeE,3025
35
- shotgun/agents/tools/web_search/openai.py,sha256=ItpV3IquamYJ13ZNUHYjXrSsgOROD51jDd2mwnz0KCE,2972
36
- shotgun/agents/tools/web_search/utils.py,sha256=GLJ5QV9bT2ubFMuFN7caMN7tK9OTJ0R3GD57B-tCMF0,532
37
- shotgun/cli/__init__.py,sha256=_F1uW2g87y4bGFxz8Gp8u7mq2voHp8vQIUtCmm8Tojo,40
38
- shotgun/cli/config.py,sha256=LbjxDNPdetYJiwlcyOYLnqwzALfgU-m54cfstUshbrs,8715
39
- shotgun/cli/models.py,sha256=LoajeEK7MEDUSnZXb1Li-dbhXqne812YZglx-LcVpiQ,181
40
- shotgun/cli/plan.py,sha256=PNlqpmGkcoEaqK-8khveX1xX9i3-Xmdv-JJbPmlgIMA,2492
41
- shotgun/cli/research.py,sha256=qvBBtX3Wyn6pDZlJpcEvbeK-0iTOXegi71tm8HKVYaE,2490
42
- shotgun/cli/tasks.py,sha256=OUdxbB7EU5XVe0QeiTlVTayhLKlQN9HrzDyjoAMf708,2597
43
- shotgun/cli/update.py,sha256=3IWt3vbFprsyiRH8J-YYVSOuga7Spi7SrbQVvKH8r5U,4771
44
- shotgun/cli/utils.py,sha256=umVWXDx8pelovMk-nT8B7m0c39AKY9hHsuAMnbw_Hcg,732
45
- shotgun/cli/codebase/__init__.py,sha256=rKdvx33p0i_BYbNkz5_4DCFgEMwzOOqLi9f5p7XTLKM,73
46
- shotgun/cli/codebase/commands.py,sha256=zvcM9gjHHO6styhXojb_1bnpq-Cozh2c77ZOIjw4B8s,6683
47
- shotgun/cli/codebase/models.py,sha256=B9vs-d-Bq0aS6FZKebhHT-9tw90Y5f6k_t71VlZpL8k,374
48
- shotgun/codebase/__init__.py,sha256=QBgFE2Abd5Vl7_NdYOglF9S6d-vIjkb3C0cpIYoHZEU,309
49
- shotgun/codebase/models.py,sha256=A-54QxpP9Kjg5M6UesQVmyHjAGT_s8yaWRTXBFQRmv0,4163
50
- shotgun/codebase/service.py,sha256=FS-6JqM2RbetMVaxSnEyfviMOUre1XVfwINu-IFIJjw,4688
51
- shotgun/codebase/core/__init__.py,sha256=GWWhJEqChiDXAF4omYCgzgoZmJjwsAf6P1aZ5Bl8OE0,1170
52
- shotgun/codebase/core/change_detector.py,sha256=kWCYLWzRzb3IGGOj71KBn7UOCOKMpINJbOBDf98aMxE,12409
53
- shotgun/codebase/core/code_retrieval.py,sha256=_JVyyQKHDFm3dxOOua1mw9eIIOHIVz3-I8aZtEsEj1E,7927
54
- shotgun/codebase/core/ingestor.py,sha256=zMjadeqDOEr2v3vhTS25Jvx0WsLPXpgwquZfbdiz57o,59810
55
- shotgun/codebase/core/language_config.py,sha256=vsqHyuFnumRPRBV1lMOxWKNOIiClO6FyfKQR0fGrtl4,8934
56
- shotgun/codebase/core/manager.py,sha256=5GlJKykDGvnb6nTr9w3kyCPTL4OQgmBoesnWr28wvTg,55419
57
- shotgun/codebase/core/nl_query.py,sha256=ZQRVc9qBNEqPwdPIHmgePCKgBZrWzqos8Xd1dALRMYY,11377
58
- shotgun/codebase/core/parser_loader.py,sha256=LZRrDS8Sp518jIu3tQW-BxdwJ86lnsTteI478ER9Td8,4278
59
- shotgun/prompts/__init__.py,sha256=RswUm0HMdfm2m2YKUwUsEdRIwoczdbI7zlucoEvHYRo,132
60
- shotgun/prompts/loader.py,sha256=jy24-E02pCSmz2651aCT2NgHfRrHAGMYvKrD6gs0Er8,4424
61
- shotgun/prompts/agents/__init__.py,sha256=YRIJMbzpArojNX1BP5gfxxois334z_GQga8T-xyWMbY,39
62
- shotgun/prompts/agents/plan.j2,sha256=AkV41ST5_rE_-P5tEvr6eyH2HAfYyNLOWQ1NB4Uff5A,2565
63
- shotgun/prompts/agents/research.j2,sha256=B7OS1C1jAFm-K40bK4HnsXZPH8sMnoCtZnCKeXO-2Mc,1912
64
- shotgun/prompts/agents/tasks.j2,sha256=M30lSdkfy6TMqmT8ZyymUuIzZGoibQ82_DqVm0gaTRU,3136
65
- shotgun/prompts/agents/partials/codebase_understanding.j2,sha256=HpSCplcInmutlSEPTT4DSzpBCr0pcedv6pAqFp_bXXU,5102
66
- shotgun/prompts/agents/partials/common_agent_system_prompt.j2,sha256=qpq1W4SsyKHXJVL5D6HSWqPPozKU0TiZYfuSssEvOxI,253
67
- shotgun/prompts/agents/partials/interactive_mode.j2,sha256=JkOj85JzUFDhhdoUyTAduY0bOeKYVAPc1tesFD7VZEk,328
68
- shotgun/prompts/agents/state/system_state.j2,sha256=jy9FAakhNt6Bf5Ds8Tbg_w8QOLw7kqfSk3tJNRI_zPo,66
69
- shotgun/prompts/agents/state/codebase/codebase_graphs_available.j2,sha256=7qtyNJ0D4YIVa-G6RLtK4HhccDhV8XIp6z8deW52JqQ,355
70
- shotgun/prompts/codebase/__init__.py,sha256=NYuPMtmYM2ptuwf3YxVuotNlJOUq0hnjmwlzKcJkGK4,42
71
- shotgun/prompts/codebase/cypher_query_patterns.j2,sha256=4vIqiQ2JG9fQ4Xf0nSbUpZQtTNgQ1e0JhBRi2mSkGhc,8850
72
- shotgun/prompts/codebase/cypher_system.j2,sha256=kV-OJ8gM3vsBo8hW4mLSEHpJW-wV_2tNaPck3HUM52c,1497
73
- shotgun/prompts/codebase/enhanced_query_context.j2,sha256=WzGnFaBLZO-mOdkZ_u_PewSu9niKy87DKNL4uzQq1Jg,724
74
- shotgun/prompts/codebase/partials/cypher_rules.j2,sha256=vtc5OqTp-z5Rq_ti-_RG31bVOIA_iNe80_x3CdxO6bs,2397
75
- shotgun/prompts/codebase/partials/graph_schema.j2,sha256=hSzfxQ4C6Pfs6BIMeBekpMwfzQLUWmrLJkFVcYJFKMs,1832
76
- shotgun/prompts/codebase/partials/temporal_context.j2,sha256=yYHQHBQ4EeSs6TtKPm9fflGW3y6H0-yAANcTdsApkk4,1388
77
- shotgun/prompts/history/__init__.py,sha256=wbMLQ8yWmYz1sfXXigEAUlNkFcM50KdQv0kp4VU_P58,43
78
- shotgun/prompts/history/summarization.j2,sha256=OYNVHg65zbuWB6_pXzTOs2T2k5qFD2gyfbmr6NP01rs,2268
79
- shotgun/prompts/user/research.j2,sha256=Ds7aP0VcZI5LdxvJgp9hao0SayIkMqy4HmWcY8bd3TU,116
80
- shotgun/sdk/__init__.py,sha256=ESV0WM9MigjXG30g9qVjcCMI40GQv-P-MSMGVuOisK4,380
81
- shotgun/sdk/codebase.py,sha256=T8QprL7_PKmAFNpo341NjHczJsd1lfptAR2ZQ-oNK3Q,6064
82
- shotgun/sdk/exceptions.py,sha256=qBcQv0v7ZTwP7CMcxZST4GqCsfOWtOUjSzGBo0-heqo,412
83
- shotgun/sdk/models.py,sha256=RsR9e2wiVrNGP2zTvjIZVvBlibgluuhDZlCNcw8JTTA,5488
84
- shotgun/sdk/services.py,sha256=J4PJFSxCQ6--u7rb3Ta-9eYtlYcxcbnzrMP6ThyCnw4,705
85
- shotgun/tui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
86
- shotgun/tui/app.py,sha256=gHxqOWjJ9hGDRz6esnoM2JTyaP_IWTWmsYnO8pwpeDQ,2762
87
- shotgun/tui/styles.tcss,sha256=ETyyw1bpMBOqTi5RLcAJUScdPWTvAWEqE9YcT0kVs_E,121
88
- shotgun/tui/components/prompt_input.py,sha256=Ss-htqraHZAPaehGE4x86ij0veMjc4UgadMXpbdXr40,2229
89
- shotgun/tui/components/spinner.py,sha256=ovTDeaJ6FD6chZx_Aepia6R3UkPOVJ77EKHfRmn39MY,2427
90
- shotgun/tui/components/splash.py,sha256=vppy9vEIEvywuUKRXn2y11HwXSRkQZHLYoVjhDVdJeU,1267
91
- shotgun/tui/components/vertical_tail.py,sha256=kkCH0WjAh54jDvRzIaOffRZXUKn_zHFZ_ichfUpgzaE,1071
92
- shotgun/tui/screens/chat.py,sha256=FLzBeh-UJGloAnhMlQx_XDiREWDx640vI58ux_YeVe4,14428
93
- shotgun/tui/screens/chat.tcss,sha256=MV7-HhXSpBxIsSbB57RugNeM0wOpqMpIVke7qCf4-yQ,312
94
- shotgun/tui/screens/provider_config.py,sha256=A_tvDHF5KLP5PV60LjMJ_aoOdT3TjI6_g04UIUqGPqM,7126
95
- shotgun/tui/screens/splash.py,sha256=E2MsJihi3c9NY1L28o_MstDxGwrCnnV7zdq00MrGAsw,706
96
- shotgun/utils/__init__.py,sha256=WinIEp9oL2iMrWaDkXz2QX4nYVPAm8C9aBSKTeEwLtE,198
97
- shotgun/utils/env_utils.py,sha256=8QK5aw_f_V2AVTleQQlcL0RnD4sPJWXlDG46fsHu0d8,1057
98
- shotgun/utils/file_system_utils.py,sha256=KQCxgkspb1CR8VE1n66q7-oT6O7MmV_edCXFEEO-CNY,871
99
- shotgun/utils/update_checker.py,sha256=Xf-7w3Pos3etzCoT771gJe2HLkA8_V2GrqWy7ni9UqA,11373
100
- shotgun_sh-0.1.0.dev12.dist-info/METADATA,sha256=H4VyO7ozmgQV1Jzi_txB-hCwFmGmOanWlLhdFTBe1xU,11240
101
- shotgun_sh-0.1.0.dev12.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
102
- shotgun_sh-0.1.0.dev12.dist-info/entry_points.txt,sha256=asZxLU4QILneq0MWW10saVCZc4VWhZfb0wFZvERnzfA,45
103
- shotgun_sh-0.1.0.dev12.dist-info/licenses/LICENSE,sha256=YebsZl590zCHrF_acCU5pmNt0pnAfD2DmAnevJPB1tY,1065
104
- shotgun_sh-0.1.0.dev12.dist-info/RECORD,,