shotgun-sh 0.3.3.dev1__py3-none-any.whl → 0.4.0.dev1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. shotgun/agents/agent_manager.py +191 -23
  2. shotgun/agents/common.py +78 -77
  3. shotgun/agents/config/manager.py +42 -1
  4. shotgun/agents/config/models.py +16 -0
  5. shotgun/agents/conversation/history/file_content_deduplication.py +66 -43
  6. shotgun/agents/export.py +12 -13
  7. shotgun/agents/models.py +66 -1
  8. shotgun/agents/plan.py +12 -13
  9. shotgun/agents/research.py +13 -10
  10. shotgun/agents/router/__init__.py +47 -0
  11. shotgun/agents/router/models.py +376 -0
  12. shotgun/agents/router/router.py +185 -0
  13. shotgun/agents/router/tools/__init__.py +18 -0
  14. shotgun/agents/router/tools/delegation_tools.py +503 -0
  15. shotgun/agents/router/tools/plan_tools.py +322 -0
  16. shotgun/agents/specify.py +12 -13
  17. shotgun/agents/tasks.py +12 -13
  18. shotgun/agents/tools/file_management.py +49 -1
  19. shotgun/agents/tools/registry.py +2 -0
  20. shotgun/agents/tools/web_search/__init__.py +1 -2
  21. shotgun/agents/tools/web_search/gemini.py +1 -3
  22. shotgun/codebase/core/change_detector.py +1 -1
  23. shotgun/codebase/core/ingestor.py +1 -1
  24. shotgun/codebase/core/manager.py +1 -1
  25. shotgun/prompts/agents/export.j2 +2 -0
  26. shotgun/prompts/agents/partials/common_agent_system_prompt.j2 +5 -10
  27. shotgun/prompts/agents/partials/router_delegation_mode.j2 +36 -0
  28. shotgun/prompts/agents/plan.j2 +24 -12
  29. shotgun/prompts/agents/research.j2 +70 -31
  30. shotgun/prompts/agents/router.j2 +440 -0
  31. shotgun/prompts/agents/specify.j2 +39 -16
  32. shotgun/prompts/agents/state/system_state.j2 +15 -6
  33. shotgun/prompts/agents/tasks.j2 +58 -34
  34. shotgun/tui/app.py +5 -6
  35. shotgun/tui/components/mode_indicator.py +120 -25
  36. shotgun/tui/components/status_bar.py +2 -2
  37. shotgun/tui/dependencies.py +64 -9
  38. shotgun/tui/protocols.py +37 -0
  39. shotgun/tui/screens/chat/chat.tcss +9 -1
  40. shotgun/tui/screens/chat/chat_screen.py +643 -11
  41. shotgun/tui/screens/chat_screen/command_providers.py +0 -87
  42. shotgun/tui/screens/chat_screen/history/agent_response.py +7 -3
  43. shotgun/tui/screens/chat_screen/history/chat_history.py +12 -0
  44. shotgun/tui/screens/chat_screen/history/formatters.py +53 -15
  45. shotgun/tui/screens/chat_screen/history/partial_response.py +11 -1
  46. shotgun/tui/screens/chat_screen/messages.py +219 -0
  47. shotgun/tui/screens/onboarding.py +30 -26
  48. shotgun/tui/utils/mode_progress.py +20 -86
  49. shotgun/tui/widgets/__init__.py +2 -1
  50. shotgun/tui/widgets/approval_widget.py +152 -0
  51. shotgun/tui/widgets/cascade_confirmation_widget.py +203 -0
  52. shotgun/tui/widgets/plan_panel.py +129 -0
  53. shotgun/tui/widgets/step_checkpoint_widget.py +180 -0
  54. {shotgun_sh-0.3.3.dev1.dist-info → shotgun_sh-0.4.0.dev1.dist-info}/METADATA +3 -3
  55. {shotgun_sh-0.3.3.dev1.dist-info → shotgun_sh-0.4.0.dev1.dist-info}/RECORD +58 -45
  56. {shotgun_sh-0.3.3.dev1.dist-info → shotgun_sh-0.4.0.dev1.dist-info}/WHEEL +0 -0
  57. {shotgun_sh-0.3.3.dev1.dist-info → shotgun_sh-0.4.0.dev1.dist-info}/entry_points.txt +0 -0
  58. {shotgun_sh-0.3.3.dev1.dist-info → shotgun_sh-0.4.0.dev1.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,180 @@
1
+ """Step checkpoint widget for Planning mode.
2
+
3
+ This widget displays after each step completes in Planning mode,
4
+ allowing the user to continue, modify the plan, or stop execution.
5
+ """
6
+
7
+ from textual import events, on
8
+ from textual.app import ComposeResult
9
+ from textual.containers import Horizontal
10
+ from textual.css.query import NoMatches
11
+ from textual.widget import Widget
12
+ from textual.widgets import Button, Static
13
+
14
+ from shotgun.agents.router.models import ExecutionStep
15
+ from shotgun.tui.screens.chat_screen.messages import (
16
+ CheckpointContinue,
17
+ CheckpointModify,
18
+ CheckpointStop,
19
+ )
20
+
21
+
22
+ class StepCheckpointWidget(Widget):
23
+ """Widget for step completion checkpoints in Planning mode.
24
+
25
+ Displays information about the completed step and provides
26
+ action buttons for the user to choose how to proceed.
27
+
28
+ Attributes:
29
+ step: The step that was just completed.
30
+ next_step: The next step to execute, or None if this was the last step.
31
+ """
32
+
33
+ DEFAULT_CSS = """
34
+ StepCheckpointWidget {
35
+ background: $secondary-background-darken-1;
36
+ height: auto;
37
+ margin: 1;
38
+ padding: 1;
39
+ }
40
+
41
+ StepCheckpointWidget .checkpoint-header {
42
+ margin-bottom: 1;
43
+ }
44
+
45
+ StepCheckpointWidget .next-step-preview {
46
+ color: $text-muted;
47
+ }
48
+
49
+ StepCheckpointWidget .checkpoint-buttons {
50
+ height: auto;
51
+ width: 100%;
52
+ margin-top: 1;
53
+ }
54
+
55
+ StepCheckpointWidget Button {
56
+ margin-right: 1;
57
+ min-width: 14;
58
+ }
59
+
60
+ StepCheckpointWidget #btn-continue {
61
+ background: $success;
62
+ }
63
+
64
+ StepCheckpointWidget #btn-modify {
65
+ background: $warning;
66
+ }
67
+
68
+ StepCheckpointWidget #btn-stop {
69
+ background: $error;
70
+ }
71
+
72
+ StepCheckpointWidget #btn-done {
73
+ background: $success;
74
+ }
75
+ """
76
+
77
+ def __init__(self, step: ExecutionStep, next_step: ExecutionStep | None) -> None:
78
+ """Initialize the checkpoint widget.
79
+
80
+ Args:
81
+ step: The step that was just completed.
82
+ next_step: The next step to execute, or None if last step.
83
+ """
84
+ super().__init__()
85
+ self.step = step
86
+ self.next_step = next_step
87
+
88
+ def compose(self) -> ComposeResult:
89
+ """Compose the checkpoint widget layout."""
90
+ if self.next_step:
91
+ # Mid-plan checkpoint: show step completed with next step preview
92
+ yield Static(
93
+ f"[bold green]✅ Step completed:[/] {self.step.title}",
94
+ classes="checkpoint-header",
95
+ )
96
+ yield Static(
97
+ f"[dim]Next:[/] {self.next_step.title}",
98
+ classes="next-step-preview",
99
+ )
100
+ with Horizontal(classes="checkpoint-buttons"):
101
+ yield Button("Continue", id="btn-continue")
102
+ yield Button("Modify plan", id="btn-modify")
103
+ yield Button("Stop here", id="btn-stop")
104
+ else:
105
+ # Plan completed: show completion message with Done button only
106
+ yield Static(
107
+ "[bold green]✅ Plan completed![/]",
108
+ classes="checkpoint-header",
109
+ )
110
+ yield Static(
111
+ f"[dim]Final step:[/] {self.step.title}",
112
+ classes="next-step-preview",
113
+ )
114
+ with Horizontal(classes="checkpoint-buttons"):
115
+ yield Button("Done", id="btn-done")
116
+
117
+ def on_mount(self) -> None:
118
+ """Auto-focus the appropriate button on mount."""
119
+ # Auto-focus Continue button if available, otherwise Done, then Modify
120
+ try:
121
+ continue_btn = self.query_one("#btn-continue", Button)
122
+ continue_btn.focus()
123
+ except NoMatches:
124
+ try:
125
+ done_btn = self.query_one("#btn-done", Button)
126
+ done_btn.focus()
127
+ except NoMatches:
128
+ try:
129
+ modify_btn = self.query_one("#btn-modify", Button)
130
+ modify_btn.focus()
131
+ except NoMatches:
132
+ pass # No buttons to focus
133
+
134
+ @on(Button.Pressed, "#btn-continue")
135
+ def handle_continue(self) -> None:
136
+ """Handle Continue button press."""
137
+ self.post_message(CheckpointContinue())
138
+
139
+ @on(Button.Pressed, "#btn-modify")
140
+ def handle_modify(self) -> None:
141
+ """Handle Modify plan button press."""
142
+ self.post_message(CheckpointModify())
143
+
144
+ @on(Button.Pressed, "#btn-stop")
145
+ def handle_stop(self) -> None:
146
+ """Handle Stop here button press."""
147
+ self.post_message(CheckpointStop())
148
+
149
+ @on(Button.Pressed, "#btn-done")
150
+ def handle_done(self) -> None:
151
+ """Handle Done button press (plan completed)."""
152
+ self.post_message(CheckpointStop())
153
+
154
+ def on_key(self, event: events.Key) -> None:
155
+ """Handle keyboard shortcuts for checkpoint actions.
156
+
157
+ Shortcuts:
158
+ Enter/C: Continue to next step (if available), or Done (if plan complete)
159
+ M: Modify the plan (only if not complete)
160
+ S/Escape: Stop execution (only if not complete)
161
+ """
162
+ if event.key in ("enter", "c", "C"):
163
+ if self.next_step:
164
+ self.post_message(CheckpointContinue())
165
+ else:
166
+ # Plan complete - Enter dismisses
167
+ self.post_message(CheckpointStop())
168
+ event.stop()
169
+ elif event.key in ("m", "M"):
170
+ if self.next_step:
171
+ self.post_message(CheckpointModify())
172
+ event.stop()
173
+ elif event.key in ("s", "S", "escape"):
174
+ if self.next_step:
175
+ self.post_message(CheckpointStop())
176
+ event.stop()
177
+ else:
178
+ # Plan complete - Escape also dismisses
179
+ self.post_message(CheckpointStop())
180
+ event.stop()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: shotgun-sh
3
- Version: 0.3.3.dev1
3
+ Version: 0.4.0.dev1
4
4
  Summary: AI-powered research, planning, and task management CLI tool
5
5
  Project-URL: Homepage, https://shotgun.sh/
6
6
  Project-URL: Repository, https://github.com/shotgun-sh/shotgun
@@ -20,14 +20,13 @@ Classifier: Programming Language :: Python :: 3.11
20
20
  Classifier: Programming Language :: Python :: 3.12
21
21
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
22
22
  Classifier: Topic :: Utilities
23
- Requires-Python: >=3.11
23
+ Requires-Python: <3.14,>=3.11
24
24
  Requires-Dist: aiofiles>=24.0.0
25
25
  Requires-Dist: anthropic>=0.39.0
26
26
  Requires-Dist: dependency-injector>=4.41.0
27
27
  Requires-Dist: genai-prices>=0.0.27
28
28
  Requires-Dist: httpx>=0.27.0
29
29
  Requires-Dist: jinja2>=3.1.0
30
- Requires-Dist: kuzu>=0.7.0
31
30
  Requires-Dist: logfire>=2.0.0
32
31
  Requires-Dist: openai>=1.0.0
33
32
  Requires-Dist: packaging>=23.0
@@ -35,6 +34,7 @@ Requires-Dist: posthog>=3.0.0
35
34
  Requires-Dist: pydantic-ai>=1.26.0
36
35
  Requires-Dist: pydantic-settings>=2.0.0
37
36
  Requires-Dist: pyperclip>=1.10.0
37
+ Requires-Dist: real-ladybug>=0.12.0
38
38
  Requires-Dist: rich>=13.0.0
39
39
  Requires-Dist: sentencepiece>=0.2.0
40
40
  Requires-Dist: sentry-sdk[pure-eval]>=2.0.0
@@ -10,23 +10,23 @@ shotgun/sentry_telemetry.py,sha256=KIjkRAIio47bZtXseGXE6SSLXsCPThbz8_a_lw7pcSM,8
10
10
  shotgun/settings.py,sha256=c9FfswsmjWc0fe0HPwmZNtHVicaT_MogdHaN9B4iXg4,7359
11
11
  shotgun/telemetry.py,sha256=6trR92Q6ERvSuUGyS8VyBCv1Dfs20vI1-4BYPieLcxM,2917
12
12
  shotgun/agents/__init__.py,sha256=8Jzv1YsDuLyNPFJyckSr_qI4ehTVeDyIMDW4omsfPGc,25
13
- shotgun/agents/agent_manager.py,sha256=H2txCp-_zE46pDtPPYuulCFPUxDnGtN0IgV14ts9NpM,52197
14
- shotgun/agents/common.py,sha256=JO-xf_MG2LhtjLWGDYH3YrhcV315Vof9aIdoOqcILkw,19196
15
- shotgun/agents/export.py,sha256=aCuytVFgkp4VkcGWak1TlXYasEe1WbFTTRiA6TGfhVI,2931
13
+ shotgun/agents/agent_manager.py,sha256=iPePns8x00fSRlhLGQSNeYsHKzinSH-GEtKZv5dBe8Q,59259
14
+ shotgun/agents/common.py,sha256=yTzrDkOLP-r7EDYLtTf5HmNRyxMjdzo2pqQd91epiCA,18621
15
+ shotgun/agents/export.py,sha256=FW2fJjLzWusu2SLEFMKV_hGudobzA3_1f7_MO-EqHFE,2922
16
16
  shotgun/agents/llm.py,sha256=hs8j1wwTczGtehzahL1Z_5D4qus5QUx4-h9-m5ZPzm4,2209
17
17
  shotgun/agents/messages.py,sha256=wNn0qC5AqASM8LMaSGFOerZEJPn5FsIOmaJs1bdosuU,1036
18
- shotgun/agents/models.py,sha256=anNz8_U95B1__VPXgxFqfzk2BRIHrIO4clJlnfedVS8,9862
19
- shotgun/agents/plan.py,sha256=7bP9VVQ5yfUE76fJEdBL-S2OIy3P-s5RdaorbThJQfc,2992
20
- shotgun/agents/research.py,sha256=0bkEGdmwJiHz_ubJ835xvsp2dDQpZWKrr8Qd55OadJI,3242
18
+ shotgun/agents/models.py,sha256=0v6jNTvRoY3GQMSGTiwywBMSeglFC-P7YTyYuOw9x9k,12178
19
+ shotgun/agents/plan.py,sha256=90KUnDaIfPurWoHnV5ogUirXme-FPsSI2EntLBnM9ho,3035
20
+ shotgun/agents/research.py,sha256=KluBLucQza_TTKo6Da1v4IEQraVNBc1Jjd97jp7xZwE,3505
21
21
  shotgun/agents/runner.py,sha256=sMgv1sZZz6jKQ095u9GudBMhQ91ozzYXBq5aHHlBmxo,8784
22
- shotgun/agents/specify.py,sha256=EsnHtQ-kRwZX_GRyp5D_y94yRaOo1gfLCIKeoF8ohNY,3099
23
- shotgun/agents/tasks.py,sha256=rebwa9z2-YUAQTxEhxglUKeDO5i0gAq39CmR9_LXMKE,2961
22
+ shotgun/agents/specify.py,sha256=ly_A1VeZonMoyZy41xxfwVoE3MwLSBr8_UYwUzc9-HI,3084
23
+ shotgun/agents/tasks.py,sha256=QuCuVxJ9ODV3eXCXhb32c9HbPCLLVMuv3PTx1lyC4gY,2958
24
24
  shotgun/agents/usage_manager.py,sha256=0O1G7ovgYtJ_zCTITQ1Cks75eXMwvjl1SgGE1uoZ0x4,5383
25
25
  shotgun/agents/config/README.md,sha256=Cjgt91aAhedUOPDf-powj1jXym_SvVzLcUSvROsqS2c,3294
26
26
  shotgun/agents/config/__init__.py,sha256=QuGC057dzMrzhrdRJ7c8KNwWzFqISiSk3t5LqnvOVN0,471
27
27
  shotgun/agents/config/constants.py,sha256=GZ62PTrMd_yXDBvQwpNqh401GVlMHh5Li7_xM-zdp8Y,742
28
- shotgun/agents/config/manager.py,sha256=fFSR6SnfcuOLhMbSs7gcTBQskyboIM_dbxTZVKL2Sdg,29483
29
- shotgun/agents/config/models.py,sha256=pETlro2kZR_aQ39HH-lvbiCgXhmeN6Ik1yD1dUf1pMk,9433
28
+ shotgun/agents/config/manager.py,sha256=revq2JGo_ayjoCAj3-Oha5NCqL2eOY5ZNzSx9xP7duw,30594
29
+ shotgun/agents/config/models.py,sha256=vBzLd5qASyfKn-SkR7qfcO3YixPisG0wmfMoPi5ze3o,9940
30
30
  shotgun/agents/config/provider.py,sha256=gEL-NY2pBm5UgS4_TBjusVLsze5RB7poLRz7pvt-Bck,15146
31
31
  shotgun/agents/config/streaming_test.py,sha256=ALOM4fjYf7dH7bsY-onKYJBcYH8ujx-50RdMwvw6RXM,4443
32
32
  shotgun/agents/context_analyzer/__init__.py,sha256=p-R3SVa3yDkXnHaZ7XV_SI_9FGhoYwvnbvDr3oxGU3M,732
@@ -43,7 +43,7 @@ shotgun/agents/conversation/history/chunking.py,sha256=aiUte-nO54swbtDGG1ZglB7TK
43
43
  shotgun/agents/conversation/history/compaction.py,sha256=G5WWsmlZn19VBkdh89YKkvQRSYEIppuJR2LYrxGjkNM,4992
44
44
  shotgun/agents/conversation/history/constants.py,sha256=xwDgaazdIXT2Dd7lNxuyt4-wKJK5y903F0WKe4Hi3WY,708
45
45
  shotgun/agents/conversation/history/context_extraction.py,sha256=yPF3oYpv5GFsFQT5y53ORKdADtrkGH4u8LwPdO0YVzU,7157
46
- shotgun/agents/conversation/history/file_content_deduplication.py,sha256=yNNMktZfUMTxoHY2VTxKS0w8ET2Cp5JtxdxKRxEB-wE,7610
46
+ shotgun/agents/conversation/history/file_content_deduplication.py,sha256=agwKqOeukNiCuPtpB4Ku6GYpaoZryd1UzFuN78lM9Qw,8543
47
47
  shotgun/agents/conversation/history/history_building.py,sha256=6LFDZ60MTPDoGAcmu_mjlnjVYu8YYWdIi-cGbF3jm7A,3532
48
48
  shotgun/agents/conversation/history/history_processors.py,sha256=OZMU6c9hFBXg9J783wRE5uWqgMcrDS-esEjMnnYkfIQ,31519
49
49
  shotgun/agents/conversation/history/message_utils.py,sha256=aPusAl2RYKbjc7lBxPaNprRHmZEG6fe97q7DQUlhlzU,2918
@@ -57,9 +57,15 @@ shotgun/agents/conversation/history/token_counting/tokenizer_cache.py,sha256=owa
57
57
  shotgun/agents/conversation/history/token_counting/utils.py,sha256=zL9pzrQHCyi5YMgUyLTnLI9WJmMr3UEEDUECgh4_TjE,4872
58
58
  shotgun/agents/error/__init__.py,sha256=7md1HR_iAoCmTe5mzgQT0y3VBoC8D5zvRI4vQch4Ess,231
59
59
  shotgun/agents/error/models.py,sha256=SLUCsMR0UPH0Lxm5AJKXBKTuL6wtdTzJJ3NHDzAIk_I,501
60
+ shotgun/agents/router/__init__.py,sha256=Cs3cobiGHGH-qaRuX7BGZ04a6tJ12NmyZIZf9rngBwM,1040
61
+ shotgun/agents/router/models.py,sha256=GHuOzB_BkRq5IdkgJ8ZcAeqydxXcEagaTLSxMvjFEms,14015
62
+ shotgun/agents/router/router.py,sha256=oZzV-55gK8tX1SHPgjVHm8_z2b_YmkEqX_r-Ob6fXpo,6288
63
+ shotgun/agents/router/tools/__init__.py,sha256=ogt35kGrWSzjFauSL4EgieY7fGtu8jlfhDAzHOcw8nY,378
64
+ shotgun/agents/router/tools/delegation_tools.py,sha256=7p6lD0FmtVd3T7JZMHZKizJKe44ID1HV65jF2Uspez0,15341
65
+ shotgun/agents/router/tools/plan_tools.py,sha256=vugLtWvggK6qHB8u6ZBjPVRu-KTcnW3mI8d7FlY5z6k,9827
60
66
  shotgun/agents/tools/__init__.py,sha256=kYppd4f4MoJcfTEPzkY2rqtxL1suXRGa9IRUm1G82GY,717
61
- shotgun/agents/tools/file_management.py,sha256=29D9aF1e9wGhIFr7cW_NALNmkybtg_dRJZ-atMqa23M,9859
62
- shotgun/agents/tools/registry.py,sha256=7F6qFcdGd5Hka6uEC9Xrc4ZCENed8R5_1QJMAgKHYqs,6458
67
+ shotgun/agents/tools/file_management.py,sha256=Uk1Az9v7h18PYEuAr1XeCi-6ZPf8amXM9ShdIkHSsB0,11414
68
+ shotgun/agents/tools/registry.py,sha256=QwBikPEL2vE3iu7En4vjVbCbiSU394v0_zNs6Jf9OhM,6514
63
69
  shotgun/agents/tools/codebase/__init__.py,sha256=ceAGkK006NeOYaIJBLQsw7Q46sAyCRK9PYDs8feMQVw,661
64
70
  shotgun/agents/tools/codebase/codebase_shell.py,sha256=XwrfxAyDGRTRBaZdO0ivcllwIZnDX-Dfbtdp-ncJXlM,8779
65
71
  shotgun/agents/tools/codebase/directory_lister.py,sha256=dB38gPS2G02EnDBVFP99_Zu23rl7XyCjS4OwiDt8GcA,4904
@@ -67,9 +73,9 @@ shotgun/agents/tools/codebase/file_read.py,sha256=eQ-iS7y38cZhLoKrmKGzO4eLifheqj
67
73
  shotgun/agents/tools/codebase/models.py,sha256=8eR3_8DQiBNgB2twu0aC_evIJbugN9KW3gtxMZdGYCE,10087
68
74
  shotgun/agents/tools/codebase/query_graph.py,sha256=taWU8yzADUoZ22Z9msGvw4xXFYZz91Xh-V2aAVVb_7M,2308
69
75
  shotgun/agents/tools/codebase/retrieve_code.py,sha256=KCcKzro0YQ9cFetcm5NF8yKO8hkW7_9aBf67P3PlF2Q,3082
70
- shotgun/agents/tools/web_search/__init__.py,sha256=QKrTqD9JIrFavj7Ah6i-QeAw9stZsRAhZLVhnjr7eyU,3747
76
+ shotgun/agents/tools/web_search/__init__.py,sha256=HN-EXSQzX5Z5c08w04kcoluQhAVqmkJdvBn_rFi82As,3707
71
77
  shotgun/agents/tools/web_search/anthropic.py,sha256=CqkKlMTBajz3bGbQfSvYYndy9npe00bTOSw8luLc5MY,5700
72
- shotgun/agents/tools/web_search/gemini.py,sha256=Ruk2Om7jc85veSvaHlQ_pWDlu0pBjAoeuvBgAMH5QvM,3859
78
+ shotgun/agents/tools/web_search/gemini.py,sha256=PlU90AkWxvLieBKw-nC2AT2dWoyvq3Zb6K_UickI-UQ,3818
73
79
  shotgun/agents/tools/web_search/openai.py,sha256=eSL1qgQWpW5qbkbrf90jIbh3D7wjq-zeg44ky3pqRYE,3708
74
80
  shotgun/agents/tools/web_search/utils.py,sha256=O4IMu9mPBZe5551fNclfXbSmoL7fxP1hziqkWq8CRrI,544
75
81
  shotgun/cli/__init__.py,sha256=_F1uW2g87y4bGFxz8Gp8u7mq2voHp8vQIUtCmm8Tojo,40
@@ -99,12 +105,12 @@ shotgun/codebase/__init__.py,sha256=QBgFE2Abd5Vl7_NdYOglF9S6d-vIjkb3C0cpIYoHZEU,
99
105
  shotgun/codebase/models.py,sha256=F-FT5DVBWvDg9F4HJH2UphqB56DQrMI6SkmLEZyEPu0,5444
100
106
  shotgun/codebase/service.py,sha256=nyggapfHKdwkKXyuT9oA0tJ9qf4RNVsOxfY8lC5pHro,8006
101
107
  shotgun/codebase/core/__init__.py,sha256=GWWhJEqChiDXAF4omYCgzgoZmJjwsAf6P1aZ5Bl8OE0,1170
102
- shotgun/codebase/core/change_detector.py,sha256=uqqQLe8LPC_LVj64cDrmc1ctjKyZsfHfBBdTJQlSjE0,12486
108
+ shotgun/codebase/core/change_detector.py,sha256=9xc1hA0Knt9ijaVHiizoOxooLj0b0maDj3BfAihNvx4,12502
103
109
  shotgun/codebase/core/code_retrieval.py,sha256=8ob-xWjcSmEilpI1h5IU94ykd2dETMf84CfY36N_big,8015
104
110
  shotgun/codebase/core/cypher_models.py,sha256=Yfysfa9lLguILftkmtuJCN3kLBFIo7WW7NigM-Zr-W4,1735
105
- shotgun/codebase/core/ingestor.py,sha256=aNdf_tRPvfHXZnWCUX4Ne-_tg6qLZ5cmPWF9-tfi2jI,69510
111
+ shotgun/codebase/core/ingestor.py,sha256=LXGckVi9HWvRSa-UInF78HXsn-55NFTICzuuwuxYVOA,69526
106
112
  shotgun/codebase/core/language_config.py,sha256=vsqHyuFnumRPRBV1lMOxWKNOIiClO6FyfKQR0fGrtl4,8934
107
- shotgun/codebase/core/manager.py,sha256=8FbiLyTe2JDELgx1tpOv_Kqba8J7QSXyORCAO3dERmk,66722
113
+ shotgun/codebase/core/manager.py,sha256=-bGOGIBISfgD4fo25XhpHVQN-qSv9pDLwjjjZ696nfs,66738
108
114
  shotgun/codebase/core/nl_query.py,sha256=qH32btb5w7eY2ij7-wc6Z0QXIDOqjz0pZXXRUboSbYs,16121
109
115
  shotgun/codebase/core/parser_loader.py,sha256=LZRrDS8Sp518jIu3tQW-BxdwJ86lnsTteI478ER9Td8,4278
110
116
  shotgun/llm_proxy/__init__.py,sha256=z7YnPfyhW0WYrz6tHOoVcVOoi6iO0zWjUHbpu6o38oA,817
@@ -115,16 +121,18 @@ shotgun/llm_proxy/models.py,sha256=KzYcBjE5yiiU9hpkvExQKCnySrv44EdgTTM9XSxRBVE,4
115
121
  shotgun/prompts/__init__.py,sha256=RswUm0HMdfm2m2YKUwUsEdRIwoczdbI7zlucoEvHYRo,132
116
122
  shotgun/prompts/loader.py,sha256=_7CdUYrAo6ZwvTBUlXugKyLU0IDBg5CVzUIAHFPw418,4433
117
123
  shotgun/prompts/agents/__init__.py,sha256=YRIJMbzpArojNX1BP5gfxxois334z_GQga8T-xyWMbY,39
118
- shotgun/prompts/agents/export.j2,sha256=DGqVijH1PkpkY0rDauU52u_fMv15frEvOdXAPFZNMM4,17057
119
- shotgun/prompts/agents/plan.j2,sha256=TkDY_wCzchhNS3rAc3uWGu6D1I3s8NXeO5K8SiL3cMg,7167
120
- shotgun/prompts/agents/research.j2,sha256=RQ421S2Qb2tIICEB_pjvwTy8wluzW6aoZ2zXuO8U7Uw,4870
121
- shotgun/prompts/agents/specify.j2,sha256=6qpMZWqKrLvvmrFRcmfOrCB7VLoc1_wXvisw8ymENWs,14666
122
- shotgun/prompts/agents/tasks.j2,sha256=j7ctZ-g1iOQ19YJDNKDrwuk8XidWOsD3I5X9-We7v04,7061
124
+ shotgun/prompts/agents/export.j2,sha256=o-4pdwRNOtXZR9akcWLcJYwF_V1wMOyF8sbLtKKXtDo,17116
125
+ shotgun/prompts/agents/plan.j2,sha256=okyBe_EcYvEuF3iPVjxzu06Vv-AdGRR0FNJUWyEoZ2c,6993
126
+ shotgun/prompts/agents/research.j2,sha256=TRCf6wOfrOhpz49mwENpdJqt0LpN49iJi1MG_gqOMVA,5619
127
+ shotgun/prompts/agents/router.j2,sha256=ShOC-1lx4kYz5ShreCmwjyIe2-sWUlEvlYqxcRz3PZg,14855
128
+ shotgun/prompts/agents/specify.j2,sha256=LpTTrMEr11nASRo-JP945qBXOgZelRgIQaAkucvn1IA,15179
129
+ shotgun/prompts/agents/tasks.j2,sha256=4U-1jIkv05TztAzUweErvWz9MrpHUnWafB5VrOeCMtg,8359
123
130
  shotgun/prompts/agents/partials/codebase_understanding.j2,sha256=7WH-PVd-TRBFQUdOdKkwwn9hAUaJznFZMAGHhO7IGGU,5633
124
- shotgun/prompts/agents/partials/common_agent_system_prompt.j2,sha256=Q5-JGGAOCxRqZGVJkAWA8marSTCb4hy96_yUwPVCdxg,4109
131
+ shotgun/prompts/agents/partials/common_agent_system_prompt.j2,sha256=a0omqPZ2O3vWCzEP-EqYYusrqgwrhBHypHFtaLWhPEg,3255
125
132
  shotgun/prompts/agents/partials/content_formatting.j2,sha256=MG0JB7SSp8YV5akDWpbs2f9DcdREIYqLp38NnoWLeQ0,1854
126
133
  shotgun/prompts/agents/partials/interactive_mode.j2,sha256=BTxsuNp1sgxPn81HALFDFQYTXjHkMxq5km7Ffyc-9f0,1516
127
- shotgun/prompts/agents/state/system_state.j2,sha256=BLNPhYoJByeVS0RYXpqXPGGIPw6DCfZ6PqmvuV92xqc,1163
134
+ shotgun/prompts/agents/partials/router_delegation_mode.j2,sha256=-XlWuJYRSjQBfSssm5GBcLGMo_O7OXxsyOyJMJKR4jw,1531
135
+ shotgun/prompts/agents/state/system_state.j2,sha256=6CqKny1WvMj8bH81qwRX8gSFln8mqMFVeI4_5t-z3Kk,1361
128
136
  shotgun/prompts/agents/state/codebase/codebase_graphs_available.j2,sha256=U-hy-H9bPwV0sYIHTZ5TESxc5EOCtntI8GUZOmJipJw,601
129
137
  shotgun/prompts/codebase/__init__.py,sha256=NYuPMtmYM2ptuwf3YxVuotNlJOUq0hnjmwlzKcJkGK4,42
130
138
  shotgun/prompts/codebase/cypher_query_patterns.j2,sha256=ufTx_xT3VoS76KcVUbIgGQx-bJoJHx3bBE3dagAXv18,8913
@@ -158,20 +166,20 @@ shotgun/shotgun_web/shared_specs/models.py,sha256=RkKWw4POBMvmaIwGiSq1pho2mgw6zo
158
166
  shotgun/shotgun_web/shared_specs/upload_pipeline.py,sha256=rowaQ6pJFyBLLyGmSoOSaQ2napGX1OQTQXl8qMq_R1w,10549
159
167
  shotgun/shotgun_web/shared_specs/utils.py,sha256=8hXchaiYhSyG9FP_O6YXk8tMupJQiVgGXZKKWhD_SsU,812
160
168
  shotgun/tui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
161
- shotgun/tui/app.py,sha256=RDspU-G918YzHJ6lBBUuV_Dis-KNWUK6EtblcG094ic,15423
169
+ shotgun/tui/app.py,sha256=Vhj3p6KJOsTauofx-eEnGOdyMd-bAB6ZlddaTY2bsBQ,15413
162
170
  shotgun/tui/containers.py,sha256=g7sx0WOHZXXboP7gJLgOkSUSIaPemO8VZcESoXdzmSQ,3532
163
- shotgun/tui/dependencies.py,sha256=I8xIPUujCeQqqkkKbNYrsL6dCA2MfQ8Vlh4Q0VGlAfI,1331
171
+ shotgun/tui/dependencies.py,sha256=TnJFbVgP0FlXBcISDIQSX13nIpNOH0d3B4lSukMbB7w,3149
164
172
  shotgun/tui/filtered_codebase_service.py,sha256=lJ8gTMhIveTatmvmGLP299msWWTkVYKwvY_2FhuL2s4,1687
165
173
  shotgun/tui/layout.py,sha256=_hCXwbdPGLXgN8h54ri2Pnk8Gpw6B3pTP3horBlyZz0,247
166
- shotgun/tui/protocols.py,sha256=udScqPLb6yRGw1uDO6AuskRu33riaVVh0CAynEogvPM,1256
174
+ shotgun/tui/protocols.py,sha256=TjhNRX-_byJxzt56YseGe3vKKv5Ak3CYg2C0rR8rqKY,2288
167
175
  shotgun/tui/styles.tcss,sha256=ETyyw1bpMBOqTi5RLcAJUScdPWTvAWEqE9YcT0kVs_E,121
168
176
  shotgun/tui/commands/__init__.py,sha256=qxYz-9aGhXAZF9VQ5AyALejI1TacsEc2cX2DH7vTXoM,2559
169
177
  shotgun/tui/components/context_indicator.py,sha256=GeEMvLYf09Hkw-sTqX1v8RDHb6rt6mXcUpI4DT9DVHQ,5792
170
- shotgun/tui/components/mode_indicator.py,sha256=NWswddRaYxTY27XOd2oKsWKhaM4dFmCl_LyclRJJQR4,2354
178
+ shotgun/tui/components/mode_indicator.py,sha256=yTi7cnWgLjg2jZaJlMoLPVrS4YhNmFhrRz1EWwNVuww,5514
171
179
  shotgun/tui/components/prompt_input.py,sha256=Ss-htqraHZAPaehGE4x86ij0veMjc4UgadMXpbdXr40,2229
172
180
  shotgun/tui/components/spinner.py,sha256=ovTDeaJ6FD6chZx_Aepia6R3UkPOVJ77EKHfRmn39MY,2427
173
181
  shotgun/tui/components/splash.py,sha256=vppy9vEIEvywuUKRXn2y11HwXSRkQZHLYoVjhDVdJeU,1267
174
- shotgun/tui/components/status_bar.py,sha256=ctfk1YcHBb9-iwAw3VOO6gLoSrcjvykFOxMl096eYsg,1703
182
+ shotgun/tui/components/status_bar.py,sha256=ta-5_SUg0FINMXRKYjGxhWA7RerbcuYzQckyvBrVw-I,1703
175
183
  shotgun/tui/components/vertical_tail.py,sha256=kROwTaRjUwVB7H35dtmNcUVPQqNYvvfq7K2tXBKEb6c,638
176
184
  shotgun/tui/screens/chat.tcss,sha256=7jM4YTBj-N-5T4NIiU2AJiGtKYvYO50OAkI0o7_qimI,574
177
185
  shotgun/tui/screens/confirmation_dialog.py,sha256=g2DqxNiVx7OCsGlvuot_iGuHZjrlBlQN91hSTlhGXC4,6113
@@ -179,7 +187,7 @@ shotgun/tui/screens/directory_setup.py,sha256=cwtl9KRsSnpm7HbGx84TE6wahUXKeXbi8L
179
187
  shotgun/tui/screens/feedback.py,sha256=BRrAcgDMAVsEvCNFYjuqdF6FmqzuqiBxeLz4Ah7MGMQ,5955
180
188
  shotgun/tui/screens/github_issue.py,sha256=OdjaNLb997UOqVTWMq-GawVbTPjxarynMb-y0ktxeCA,3178
181
189
  shotgun/tui/screens/model_picker.py,sha256=Jsol6zf2tIjL2Ut5yodtR3W8aRxb8I6MDOX4UQm-GmY,13955
182
- shotgun/tui/screens/onboarding.py,sha256=ogcb5US-MCdfhBXLxj8ajYANLIw2kfm1CqPGCC1VTUs,18497
190
+ shotgun/tui/screens/onboarding.py,sha256=oV7IOA6MyOVuVzrSZDL1S7D_8cVZ2g2S4RHX-YzWnnM,18472
183
191
  shotgun/tui/screens/pipx_migration.py,sha256=e9DojUzdlxj7_8IC7T_UMLEjIOk4eOF0uro2s8oAAvs,6145
184
192
  shotgun/tui/screens/provider_config.py,sha256=VrlSnYZ-l1VG_qi5H-4G0yuNaJP8BFW20Vxgv8IcS28,13903
185
193
  shotgun/tui/screens/shotgun_auth.py,sha256=tFKEMaQ6pocAdMG4JoRXQVjmjgluNGoYNZHBFCgTfck,13951
@@ -187,20 +195,21 @@ shotgun/tui/screens/spec_pull.py,sha256=LYD_ca2c4Je34daU4KFNWKnJ_rfMGGIXN-kJbdLT
187
195
  shotgun/tui/screens/splash.py,sha256=E2MsJihi3c9NY1L28o_MstDxGwrCnnV7zdq00MrGAsw,706
188
196
  shotgun/tui/screens/welcome.py,sha256=WJ35Cnoj9aHN47qgfBmGg99IXQQzkJ2Ipl-vfzU6oBs,10398
189
197
  shotgun/tui/screens/chat/__init__.py,sha256=wChPqpJG-7kPYVYZjE8BlkXWxfW_YABhTR2fQ51opHY,113
190
- shotgun/tui/screens/chat/chat.tcss,sha256=7jM4YTBj-N-5T4NIiU2AJiGtKYvYO50OAkI0o7_qimI,574
191
- shotgun/tui/screens/chat/chat_screen.py,sha256=2wDtRo15Esxndk1XEAWS-_qek_JW04eXajLlUaM5KgI,63683
198
+ shotgun/tui/screens/chat/chat.tcss,sha256=G1p1TUptDM6c2mQgxu5tv5nZX-WkuH6g8W94aAdTnNM,722
199
+ shotgun/tui/screens/chat/chat_screen.py,sha256=Kct9c4iB1mRSRQyatBVOq6cBVN1pqSsNdYoHKQ0_by4,87805
192
200
  shotgun/tui/screens/chat/codebase_index_prompt_screen.py,sha256=GSzyAKZVsD3UPGUFDvfdwdhJucRNX77iUcJAq0_D4U4,7855
193
201
  shotgun/tui/screens/chat/codebase_index_selection.py,sha256=Zz0vi3uLhWysdPHRO8Rye9QX4hIPeWhSAw6Y9-BlOVA,241
194
202
  shotgun/tui/screens/chat/help_text.py,sha256=MkDq0Z7yQCXHVtLlnZaFU_Ijq1rbQX9KMOGVsb_1Hm8,1610
195
203
  shotgun/tui/screens/chat/prompt_history.py,sha256=uL3KVFb32vD09jN338mebFAi0QI-EJXTxcEQy-j6QdQ,1201
196
204
  shotgun/tui/screens/chat_screen/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
197
- shotgun/tui/screens/chat_screen/command_providers.py,sha256=JaD09uoOKUgPM49VjijLUvIVg7oJxd-UGpmwY43Md7Y,15980
205
+ shotgun/tui/screens/chat_screen/command_providers.py,sha256=sr-cCM_7K1o1zWUckapBqmbzUXrWqHySsBpTqv9jtj4,12711
198
206
  shotgun/tui/screens/chat_screen/hint_message.py,sha256=aeG3TB8lamc7VeGUST16A96y6dYc8u3FuTxymM5BI-w,3361
207
+ shotgun/tui/screens/chat_screen/messages.py,sha256=IYHrRixB3EyTmKm4rcKeDR3MqN5snR3GaE1ZHg-AkY0,6563
199
208
  shotgun/tui/screens/chat_screen/history/__init__.py,sha256=PRznBlnm9caNE0YYC08PkvNMAK-JpuULwmByaRNTKO0,581
200
- shotgun/tui/screens/chat_screen/history/agent_response.py,sha256=m-RtSg77y-g_mzkVHOBMTMSW1ZE6RUCUYupn-PylPcc,2378
201
- shotgun/tui/screens/chat_screen/history/chat_history.py,sha256=KYgeyvXUOgIFjSktpixS-dnLATwl6YKjnOyj2UDeT5g,4024
202
- shotgun/tui/screens/chat_screen/history/formatters.py,sha256=R1roy6Ap04dUJ7clMLtYqSLkCMD6g2K6sVanOpDGwdc,4616
203
- shotgun/tui/screens/chat_screen/history/partial_response.py,sha256=loMaUoXLphnRh3gl4xvmTtkfaFY-ULrSDjndAWQcy1s,1318
209
+ shotgun/tui/screens/chat_screen/history/agent_response.py,sha256=hGny1oaUV4lMtkO4rhXZriKbQQuxd94yIH2QOyq2yic,2567
210
+ shotgun/tui/screens/chat_screen/history/chat_history.py,sha256=qUA-dB0R47qRgq2CGOZwe-Nrr3QF8Sq6fsyrHFftj3s,4563
211
+ shotgun/tui/screens/chat_screen/history/formatters.py,sha256=nczDAL7F1QufGQzBYLoLmbAh0Pg63uFDpoZ5no-UsyU,5657
212
+ shotgun/tui/screens/chat_screen/history/partial_response.py,sha256=r1KAJGrtDmTGEJSV66_pg_TAU55BH9foFA63-MHJfCM,1690
204
213
  shotgun/tui/screens/chat_screen/history/user_question.py,sha256=BKl4FVKh4veszykkfr8RI06O5NEDIBZ17IZSCLzlImA,1305
205
214
  shotgun/tui/screens/shared_specs/__init__.py,sha256=HTsjeZ2E6ICS8vd1KmG_H0-B0fpjcaVSR3_7AI8jXqU,631
206
215
  shotgun/tui/screens/shared_specs/create_spec_dialog.py,sha256=Sp7s0tWJl1AQmOZ118VGM3zhMZF9FqN-eNJLWeU_tcE,7654
@@ -212,8 +221,12 @@ shotgun/tui/services/conversation_service.py,sha256=l8v991gTFLpgsv7drmZ5MSZ77_zm
212
221
  shotgun/tui/state/__init__.py,sha256=oPV_VsvoiXhuZPwnra38kCT3RyXLvVxkVKDOv-LXGgA,141
213
222
  shotgun/tui/state/processing_state.py,sha256=O0SxqQmljWyaSAhdCAr2fNgS0ibFiIhGRNHpiUSCkW0,6234
214
223
  shotgun/tui/utils/__init__.py,sha256=cFjDfoXTRBq29wgP7TGRWUu1eFfiIG-LLOzjIGfadgI,150
215
- shotgun/tui/utils/mode_progress.py,sha256=6zh5NKtx0mF5eIOL9OPex93a4l_--s2uXrpOkqemAFU,11168
216
- shotgun/tui/widgets/__init__.py,sha256=rfWJJ3R9ID9J-qWm4ESnGgTK5KpKZJ7bdO0BH0PLdPI,152
224
+ shotgun/tui/utils/mode_progress.py,sha256=IdDFAIpIZHL5YTTUGvN_CaSZsN2vdm89Q6d7gNsAvBI,7323
225
+ shotgun/tui/widgets/__init__.py,sha256=6l-rU3Kq4hxKZQif49ZrZvvQlguC5qR20MJxi0kPwWQ,230
226
+ shotgun/tui/widgets/approval_widget.py,sha256=ewbVusx2wzJCXgw81iFsWEdH5nFWRtet1FtajRxgS6I,4382
227
+ shotgun/tui/widgets/cascade_confirmation_widget.py,sha256=AY4KnqGb9vLFqoU2KXMZB9K4st6Z4sLdZ7IMVnrAKlU,6890
228
+ shotgun/tui/widgets/plan_panel.py,sha256=hmIcpKGw4rWvzEh0kWDLWUqwTJ5MKWzLySXqtybMYrI,3607
229
+ shotgun/tui/widgets/step_checkpoint_widget.py,sha256=hiwT9EyQ-ue8iGmOed7CBqau1EWo7jtdFjRk9uTvYu8,5963
217
230
  shotgun/tui/widgets/widget_coordinator.py,sha256=rol2APsRfQv0TKMidqKidjDJ7haKm11e6KZuUOrrAW8,9140
218
231
  shotgun/utils/__init__.py,sha256=WinIEp9oL2iMrWaDkXz2QX4nYVPAm8C9aBSKTeEwLtE,198
219
232
  shotgun/utils/datetime_utils.py,sha256=x_uYmG1n9rkhSO2oR2uV9ttiuPL0nKa9os8YYaPfdWY,2592
@@ -222,8 +235,8 @@ shotgun/utils/file_system_utils.py,sha256=zuuWO12bzSfeocTbi4DHVJKJTBekjP-_vRmb36
222
235
  shotgun/utils/marketing.py,sha256=WAPEtJDagNsDmIBdrZ0XBHOgsLONz_eT25wEng-HDBs,3759
223
236
  shotgun/utils/source_detection.py,sha256=Co6Q03R3fT771TF3RzB-70stfjNP2S4F_ArZKibwzm8,454
224
237
  shotgun/utils/update_checker.py,sha256=6fjiVUXgdxUrI54dfw0xBsrw7jlobYkjYNZaR-JoTpI,9667
225
- shotgun_sh-0.3.3.dev1.dist-info/METADATA,sha256=DAnkRU298tp1LaYdt47Ls7-QGcSQ6hH0GzlOkAxBPp0,15981
226
- shotgun_sh-0.3.3.dev1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
227
- shotgun_sh-0.3.3.dev1.dist-info/entry_points.txt,sha256=GQmtjKaPtviqYOuB3C0SMGlG5RZS9-VDDIKxV_IVHmY,75
228
- shotgun_sh-0.3.3.dev1.dist-info/licenses/LICENSE,sha256=ZZEiPnjIkv3rNT-CJBMU6l7VukLUdddCo3bTwal1NIQ,1070
229
- shotgun_sh-0.3.3.dev1.dist-info/RECORD,,
238
+ shotgun_sh-0.4.0.dev1.dist-info/METADATA,sha256=wpYttbgUKX1ru8F8H2dBGrQnyFQpR9L-OLsBU7GbMzg,15996
239
+ shotgun_sh-0.4.0.dev1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
240
+ shotgun_sh-0.4.0.dev1.dist-info/entry_points.txt,sha256=GQmtjKaPtviqYOuB3C0SMGlG5RZS9-VDDIKxV_IVHmY,75
241
+ shotgun_sh-0.4.0.dev1.dist-info/licenses/LICENSE,sha256=ZZEiPnjIkv3rNT-CJBMU6l7VukLUdddCo3bTwal1NIQ,1070
242
+ shotgun_sh-0.4.0.dev1.dist-info/RECORD,,