shotgun-sh 0.4.0.dev1__py3-none-any.whl → 0.6.2__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 (135) hide show
  1. shotgun/agents/agent_manager.py +307 -8
  2. shotgun/agents/cancellation.py +103 -0
  3. shotgun/agents/common.py +12 -0
  4. shotgun/agents/config/README.md +0 -1
  5. shotgun/agents/config/manager.py +10 -7
  6. shotgun/agents/config/models.py +5 -27
  7. shotgun/agents/config/provider.py +44 -27
  8. shotgun/agents/conversation/history/token_counting/base.py +51 -9
  9. shotgun/agents/file_read.py +176 -0
  10. shotgun/agents/messages.py +15 -3
  11. shotgun/agents/models.py +24 -1
  12. shotgun/agents/router/models.py +8 -0
  13. shotgun/agents/router/tools/delegation_tools.py +55 -1
  14. shotgun/agents/router/tools/plan_tools.py +88 -7
  15. shotgun/agents/runner.py +17 -2
  16. shotgun/agents/tools/__init__.py +8 -0
  17. shotgun/agents/tools/codebase/directory_lister.py +27 -39
  18. shotgun/agents/tools/codebase/file_read.py +26 -35
  19. shotgun/agents/tools/codebase/query_graph.py +9 -0
  20. shotgun/agents/tools/codebase/retrieve_code.py +9 -0
  21. shotgun/agents/tools/file_management.py +32 -2
  22. shotgun/agents/tools/file_read_tools/__init__.py +7 -0
  23. shotgun/agents/tools/file_read_tools/multimodal_file_read.py +167 -0
  24. shotgun/agents/tools/markdown_tools/__init__.py +62 -0
  25. shotgun/agents/tools/markdown_tools/insert_section.py +148 -0
  26. shotgun/agents/tools/markdown_tools/models.py +86 -0
  27. shotgun/agents/tools/markdown_tools/remove_section.py +114 -0
  28. shotgun/agents/tools/markdown_tools/replace_section.py +119 -0
  29. shotgun/agents/tools/markdown_tools/utils.py +453 -0
  30. shotgun/agents/tools/registry.py +44 -6
  31. shotgun/agents/tools/web_search/openai.py +42 -23
  32. shotgun/attachments/__init__.py +41 -0
  33. shotgun/attachments/errors.py +60 -0
  34. shotgun/attachments/models.py +107 -0
  35. shotgun/attachments/parser.py +257 -0
  36. shotgun/attachments/processor.py +193 -0
  37. shotgun/build_constants.py +4 -7
  38. shotgun/cli/clear.py +2 -2
  39. shotgun/cli/codebase/commands.py +181 -65
  40. shotgun/cli/compact.py +2 -2
  41. shotgun/cli/context.py +2 -2
  42. shotgun/cli/error_handler.py +2 -2
  43. shotgun/cli/run.py +90 -0
  44. shotgun/cli/spec/backup.py +2 -1
  45. shotgun/codebase/__init__.py +2 -0
  46. shotgun/codebase/benchmarks/__init__.py +35 -0
  47. shotgun/codebase/benchmarks/benchmark_runner.py +309 -0
  48. shotgun/codebase/benchmarks/exporters.py +119 -0
  49. shotgun/codebase/benchmarks/formatters/__init__.py +49 -0
  50. shotgun/codebase/benchmarks/formatters/base.py +34 -0
  51. shotgun/codebase/benchmarks/formatters/json_formatter.py +106 -0
  52. shotgun/codebase/benchmarks/formatters/markdown.py +136 -0
  53. shotgun/codebase/benchmarks/models.py +129 -0
  54. shotgun/codebase/core/__init__.py +4 -0
  55. shotgun/codebase/core/call_resolution.py +91 -0
  56. shotgun/codebase/core/change_detector.py +11 -6
  57. shotgun/codebase/core/errors.py +159 -0
  58. shotgun/codebase/core/extractors/__init__.py +23 -0
  59. shotgun/codebase/core/extractors/base.py +138 -0
  60. shotgun/codebase/core/extractors/factory.py +63 -0
  61. shotgun/codebase/core/extractors/go/__init__.py +7 -0
  62. shotgun/codebase/core/extractors/go/extractor.py +122 -0
  63. shotgun/codebase/core/extractors/javascript/__init__.py +7 -0
  64. shotgun/codebase/core/extractors/javascript/extractor.py +132 -0
  65. shotgun/codebase/core/extractors/protocol.py +109 -0
  66. shotgun/codebase/core/extractors/python/__init__.py +7 -0
  67. shotgun/codebase/core/extractors/python/extractor.py +141 -0
  68. shotgun/codebase/core/extractors/rust/__init__.py +7 -0
  69. shotgun/codebase/core/extractors/rust/extractor.py +139 -0
  70. shotgun/codebase/core/extractors/types.py +15 -0
  71. shotgun/codebase/core/extractors/typescript/__init__.py +7 -0
  72. shotgun/codebase/core/extractors/typescript/extractor.py +92 -0
  73. shotgun/codebase/core/gitignore.py +252 -0
  74. shotgun/codebase/core/ingestor.py +644 -354
  75. shotgun/codebase/core/kuzu_compat.py +119 -0
  76. shotgun/codebase/core/language_config.py +239 -0
  77. shotgun/codebase/core/manager.py +256 -46
  78. shotgun/codebase/core/metrics_collector.py +310 -0
  79. shotgun/codebase/core/metrics_types.py +347 -0
  80. shotgun/codebase/core/parallel_executor.py +424 -0
  81. shotgun/codebase/core/work_distributor.py +254 -0
  82. shotgun/codebase/core/worker.py +768 -0
  83. shotgun/codebase/indexing_state.py +86 -0
  84. shotgun/codebase/models.py +94 -0
  85. shotgun/codebase/service.py +13 -0
  86. shotgun/exceptions.py +9 -9
  87. shotgun/main.py +3 -16
  88. shotgun/posthog_telemetry.py +165 -24
  89. shotgun/prompts/agents/file_read.j2 +48 -0
  90. shotgun/prompts/agents/partials/common_agent_system_prompt.j2 +19 -47
  91. shotgun/prompts/agents/partials/content_formatting.j2 +12 -33
  92. shotgun/prompts/agents/partials/interactive_mode.j2 +9 -32
  93. shotgun/prompts/agents/partials/router_delegation_mode.j2 +21 -22
  94. shotgun/prompts/agents/plan.j2 +14 -0
  95. shotgun/prompts/agents/router.j2 +531 -258
  96. shotgun/prompts/agents/specify.j2 +14 -0
  97. shotgun/prompts/agents/state/codebase/codebase_graphs_available.j2 +14 -1
  98. shotgun/prompts/agents/state/system_state.j2 +13 -11
  99. shotgun/prompts/agents/tasks.j2 +14 -0
  100. shotgun/settings.py +49 -10
  101. shotgun/tui/app.py +149 -18
  102. shotgun/tui/commands/__init__.py +9 -1
  103. shotgun/tui/components/attachment_bar.py +87 -0
  104. shotgun/tui/components/prompt_input.py +25 -28
  105. shotgun/tui/components/status_bar.py +14 -7
  106. shotgun/tui/dependencies.py +3 -8
  107. shotgun/tui/protocols.py +18 -0
  108. shotgun/tui/screens/chat/chat.tcss +15 -0
  109. shotgun/tui/screens/chat/chat_screen.py +766 -235
  110. shotgun/tui/screens/chat/codebase_index_prompt_screen.py +8 -4
  111. shotgun/tui/screens/chat_screen/attachment_hint.py +40 -0
  112. shotgun/tui/screens/chat_screen/command_providers.py +0 -10
  113. shotgun/tui/screens/chat_screen/history/chat_history.py +54 -14
  114. shotgun/tui/screens/chat_screen/history/formatters.py +22 -0
  115. shotgun/tui/screens/chat_screen/history/user_question.py +25 -3
  116. shotgun/tui/screens/database_locked_dialog.py +219 -0
  117. shotgun/tui/screens/database_timeout_dialog.py +158 -0
  118. shotgun/tui/screens/kuzu_error_dialog.py +135 -0
  119. shotgun/tui/screens/model_picker.py +1 -3
  120. shotgun/tui/screens/models.py +11 -0
  121. shotgun/tui/state/processing_state.py +19 -0
  122. shotgun/tui/widgets/widget_coordinator.py +18 -0
  123. shotgun/utils/file_system_utils.py +4 -1
  124. {shotgun_sh-0.4.0.dev1.dist-info → shotgun_sh-0.6.2.dist-info}/METADATA +87 -34
  125. {shotgun_sh-0.4.0.dev1.dist-info → shotgun_sh-0.6.2.dist-info}/RECORD +128 -79
  126. shotgun/cli/export.py +0 -81
  127. shotgun/cli/plan.py +0 -73
  128. shotgun/cli/research.py +0 -93
  129. shotgun/cli/specify.py +0 -70
  130. shotgun/cli/tasks.py +0 -78
  131. shotgun/sentry_telemetry.py +0 -232
  132. shotgun/tui/screens/onboarding.py +0 -584
  133. {shotgun_sh-0.4.0.dev1.dist-info → shotgun_sh-0.6.2.dist-info}/WHEEL +0 -0
  134. {shotgun_sh-0.4.0.dev1.dist-info → shotgun_sh-0.6.2.dist-info}/entry_points.txt +0 -0
  135. {shotgun_sh-0.4.0.dev1.dist-info → shotgun_sh-0.6.2.dist-info}/licenses/LICENSE +0 -0
@@ -1,33 +1,34 @@
1
1
  shotgun/__init__.py,sha256=P40K0fnIsb7SKcQrFnXZ4aREjpWchVDhvM1HxI4cyIQ,104
2
2
  shotgun/api_endpoints.py,sha256=cHNkXbaxMOw6t9M7_SGHwEkz9bL1CH_kw8qIhgdXfi0,630
3
- shotgun/build_constants.py,sha256=trtP6Yz4N9fntWVWrRlSicQxahOoImwNnAnz5Laeq00,760
4
- shotgun/exceptions.py,sha256=ddCsPbfr-c_ZsEgWOVuGDv01_60EeTLYamgrJTnqxJE,12631
3
+ shotgun/build_constants.py,sha256=SB4-57hLh6G5VLRlVd5QBjJ_zxVJskv7GV8biVEohUM,528
4
+ shotgun/exceptions.py,sha256=kowOxDbs46D31siIAetP41C17RBaLviyeCos1Sdp9Kg,12678
5
5
  shotgun/logging_config.py,sha256=o9erNhWl5CvXpgEIzdpm9BmVwO1PBVm1VmgTPjpm8OI,8460
6
- shotgun/main.py,sha256=UpVKrCDt2O3EMEGWRZ22h2OAQto2cr7iidPKF5Fagxk,7289
7
- shotgun/posthog_telemetry.py,sha256=XkslipKYaPDy2bICBgE_dJt4RsBcEBW2EfktAfAi_KM,6442
6
+ shotgun/main.py,sha256=wfmUc1Sii2qWQMa3YYU9M95eFO-XVp8m01WTMOdsKUI,6716
7
+ shotgun/posthog_telemetry.py,sha256=kpGqX9kFQInvgruvkYzVuAuuOHKxKpUoJVMrBgPWd6g,11525
8
8
  shotgun/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
- shotgun/sentry_telemetry.py,sha256=KIjkRAIio47bZtXseGXE6SSLXsCPThbz8_a_lw7pcSM,8419
10
- shotgun/settings.py,sha256=c9FfswsmjWc0fe0HPwmZNtHVicaT_MogdHaN9B4iXg4,7359
9
+ shotgun/settings.py,sha256=TYewUc1NT-bs4adLOZfQxJyQvSc8rtwBNSM89UgVrLU,8503
11
10
  shotgun/telemetry.py,sha256=6trR92Q6ERvSuUGyS8VyBCv1Dfs20vI1-4BYPieLcxM,2917
12
11
  shotgun/agents/__init__.py,sha256=8Jzv1YsDuLyNPFJyckSr_qI4ehTVeDyIMDW4omsfPGc,25
13
- shotgun/agents/agent_manager.py,sha256=iPePns8x00fSRlhLGQSNeYsHKzinSH-GEtKZv5dBe8Q,59259
14
- shotgun/agents/common.py,sha256=yTzrDkOLP-r7EDYLtTf5HmNRyxMjdzo2pqQd91epiCA,18621
12
+ shotgun/agents/agent_manager.py,sha256=60lscqXVJEYV1hpQuq4K6d0j-StzBm7_8Thp7FXCGWY,71543
13
+ shotgun/agents/cancellation.py,sha256=KTYwR2gHYnJ0FyhrHKc4sSuxLMEiLaTR7KJhFiluKVQ,3643
14
+ shotgun/agents/common.py,sha256=2cG03e7NDET3Z_6_b3GxcmNToxnWG6TTb4jKQ01G_lw,19067
15
15
  shotgun/agents/export.py,sha256=FW2fJjLzWusu2SLEFMKV_hGudobzA3_1f7_MO-EqHFE,2922
16
+ shotgun/agents/file_read.py,sha256=A12NCN_mlPGW_8AIFyI2ig778ZaFhjS8IVYsx9izkxU,5647
16
17
  shotgun/agents/llm.py,sha256=hs8j1wwTczGtehzahL1Z_5D4qus5QUx4-h9-m5ZPzm4,2209
17
- shotgun/agents/messages.py,sha256=wNn0qC5AqASM8LMaSGFOerZEJPn5FsIOmaJs1bdosuU,1036
18
- shotgun/agents/models.py,sha256=0v6jNTvRoY3GQMSGTiwywBMSeglFC-P7YTyYuOw9x9k,12178
18
+ shotgun/agents/messages.py,sha256=ckjkBv50pS9UbsHfviQkiZmbS3nSnWNfHYbhcTiBEaM,1451
19
+ shotgun/agents/models.py,sha256=VRPiyCMoNtpO9HyiDITl94kSu9xEVEhYjNay4UoJuww,13007
19
20
  shotgun/agents/plan.py,sha256=90KUnDaIfPurWoHnV5ogUirXme-FPsSI2EntLBnM9ho,3035
20
21
  shotgun/agents/research.py,sha256=KluBLucQza_TTKo6Da1v4IEQraVNBc1Jjd97jp7xZwE,3505
21
- shotgun/agents/runner.py,sha256=sMgv1sZZz6jKQ095u9GudBMhQ91ozzYXBq5aHHlBmxo,8784
22
+ shotgun/agents/runner.py,sha256=VuoJnoWUBS9kE7aZUezErEiL7IgI0QgwJKgdcOVW6rQ,9395
22
23
  shotgun/agents/specify.py,sha256=ly_A1VeZonMoyZy41xxfwVoE3MwLSBr8_UYwUzc9-HI,3084
23
24
  shotgun/agents/tasks.py,sha256=QuCuVxJ9ODV3eXCXhb32c9HbPCLLVMuv3PTx1lyC4gY,2958
24
25
  shotgun/agents/usage_manager.py,sha256=0O1G7ovgYtJ_zCTITQ1Cks75eXMwvjl1SgGE1uoZ0x4,5383
25
- shotgun/agents/config/README.md,sha256=Cjgt91aAhedUOPDf-powj1jXym_SvVzLcUSvROsqS2c,3294
26
+ shotgun/agents/config/README.md,sha256=-2Amj3h1_WnwGABo6P1kUzDFK6o-pK8JKj-HMDsLrb4,3243
26
27
  shotgun/agents/config/__init__.py,sha256=QuGC057dzMrzhrdRJ7c8KNwWzFqISiSk3t5LqnvOVN0,471
27
28
  shotgun/agents/config/constants.py,sha256=GZ62PTrMd_yXDBvQwpNqh401GVlMHh5Li7_xM-zdp8Y,742
28
- shotgun/agents/config/manager.py,sha256=revq2JGo_ayjoCAj3-Oha5NCqL2eOY5ZNzSx9xP7duw,30594
29
- shotgun/agents/config/models.py,sha256=vBzLd5qASyfKn-SkR7qfcO3YixPisG0wmfMoPi5ze3o,9940
30
- shotgun/agents/config/provider.py,sha256=gEL-NY2pBm5UgS4_TBjusVLsze5RB7poLRz7pvt-Bck,15146
29
+ shotgun/agents/config/manager.py,sha256=Edh0NB_3r3AaK9-MmxbuML2mCdSNtEegV0m4bOzLlfY,30694
30
+ shotgun/agents/config/models.py,sha256=hcVK4w38u2dSzx3Xs8iCsMLwZDgKZCMldSxTfyK1Wv8,9043
31
+ shotgun/agents/config/provider.py,sha256=sail0z4kfqcPdmz9MsrV9hd0ND5L43cOQsV36xJt9O0,15694
31
32
  shotgun/agents/config/streaming_test.py,sha256=ALOM4fjYf7dH7bsY-onKYJBcYH8ujx-50RdMwvw6RXM,4443
32
33
  shotgun/agents/context_analyzer/__init__.py,sha256=p-R3SVa3yDkXnHaZ7XV_SI_9FGhoYwvnbvDr3oxGU3M,732
33
34
  shotgun/agents/context_analyzer/analyzer.py,sha256=6-LaICd53RUD7GpXZ_H-jwE8YfW7lmWRiWssBvpQ-Cw,20049
@@ -50,7 +51,7 @@ shotgun/agents/conversation/history/message_utils.py,sha256=aPusAl2RYKbjc7lBxPaN
50
51
  shotgun/agents/conversation/history/token_estimation.py,sha256=iRyKq-YDivEpJrULIbQgNpjhOuSC4nHVJYfsWEFV8sQ,4770
51
52
  shotgun/agents/conversation/history/token_counting/__init__.py,sha256=YZt5Lus--fkF6l1hdkIlp1e_oAIpACNwHOI0FRP4q8s,924
52
53
  shotgun/agents/conversation/history/token_counting/anthropic.py,sha256=999gzwEn3Q31nmCDlJqJtt3maU4NtkEgr9PaUJdVKa4,4931
53
- shotgun/agents/conversation/history/token_counting/base.py,sha256=eVtNmFnnDcsX3E9GE-OH_4_ibdlwg4fETi2cq60sqLw,2327
54
+ shotgun/agents/conversation/history/token_counting/base.py,sha256=bFiTrKlcbvtCd1uXJN48Tza4Mq38u84T9Qs2MEo8S6c,4169
54
55
  shotgun/agents/conversation/history/token_counting/openai.py,sha256=lZgoMSVSlBN899Cp8sMFggYVDiSaqB-gTHUSaRoQ0yk,2746
55
56
  shotgun/agents/conversation/history/token_counting/sentencepiece_counter.py,sha256=JTSWGAuCtqa7e2fJQzNQ52HqprSJJOcMZLnwxDId-vk,4201
56
57
  shotgun/agents/conversation/history/token_counting/tokenizer_cache.py,sha256=owa4E12iMx8H1mNpCbHEtArE_b4vuwHl_0zKeRovv3w,2936
@@ -58,61 +59,103 @@ shotgun/agents/conversation/history/token_counting/utils.py,sha256=zL9pzrQHCyi5Y
58
59
  shotgun/agents/error/__init__.py,sha256=7md1HR_iAoCmTe5mzgQT0y3VBoC8D5zvRI4vQch4Ess,231
59
60
  shotgun/agents/error/models.py,sha256=SLUCsMR0UPH0Lxm5AJKXBKTuL6wtdTzJJ3NHDzAIk_I,501
60
61
  shotgun/agents/router/__init__.py,sha256=Cs3cobiGHGH-qaRuX7BGZ04a6tJ12NmyZIZf9rngBwM,1040
61
- shotgun/agents/router/models.py,sha256=GHuOzB_BkRq5IdkgJ8ZcAeqydxXcEagaTLSxMvjFEms,14015
62
+ shotgun/agents/router/models.py,sha256=yvUU6sX6M0gn_hCiT-gretolsCYyj2eFVTo07WE6dSk,14392
62
63
  shotgun/agents/router/router.py,sha256=oZzV-55gK8tX1SHPgjVHm8_z2b_YmkEqX_r-Ob6fXpo,6288
63
64
  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
66
- shotgun/agents/tools/__init__.py,sha256=kYppd4f4MoJcfTEPzkY2rqtxL1suXRGa9IRUm1G82GY,717
67
- shotgun/agents/tools/file_management.py,sha256=Uk1Az9v7h18PYEuAr1XeCi-6ZPf8amXM9ShdIkHSsB0,11414
68
- shotgun/agents/tools/registry.py,sha256=QwBikPEL2vE3iu7En4vjVbCbiSU394v0_zNs6Jf9OhM,6514
65
+ shotgun/agents/router/tools/delegation_tools.py,sha256=_Gtfy7n_5vNqazotn5mpZHrEBg4yBLP_M1brwuHhKz4,17380
66
+ shotgun/agents/router/tools/plan_tools.py,sha256=P9hgDFFQGMRhZdZZhG2cAOdpMW-mY_FQ4dwfNuWujbw,12850
67
+ shotgun/agents/tools/__init__.py,sha256=Tlej5fcXUrEcdb9fxqLEzb152ExpL0RQOeuYEc0K3Os,931
68
+ shotgun/agents/tools/file_management.py,sha256=zMoO_04ug0HzhrTmUNluvRKmeL-FSI_lnPcCiQCqv00,12729
69
+ shotgun/agents/tools/registry.py,sha256=uNZU_y-CQ5oQE96pAxIHj1HdeG5tq3Z_qQjkG1paeqw,7677
69
70
  shotgun/agents/tools/codebase/__init__.py,sha256=ceAGkK006NeOYaIJBLQsw7Q46sAyCRK9PYDs8feMQVw,661
70
71
  shotgun/agents/tools/codebase/codebase_shell.py,sha256=XwrfxAyDGRTRBaZdO0ivcllwIZnDX-Dfbtdp-ncJXlM,8779
71
- shotgun/agents/tools/codebase/directory_lister.py,sha256=dB38gPS2G02EnDBVFP99_Zu23rl7XyCjS4OwiDt8GcA,4904
72
- shotgun/agents/tools/codebase/file_read.py,sha256=eQ-iS7y38cZhLoKrmKGzO4eLifheqjUHZnr8lC7AxbM,5373
72
+ shotgun/agents/tools/codebase/directory_lister.py,sha256=Gb7NTUQpSafal3l8G1yEFgYZ1QQsqBGBgWSLrJJ5XiE,4752
73
+ shotgun/agents/tools/codebase/file_read.py,sha256=ZTtMoESx7sOTC95BjFqO6ScLfNfHA3GEC6BhaK4_tCk,5326
73
74
  shotgun/agents/tools/codebase/models.py,sha256=8eR3_8DQiBNgB2twu0aC_evIJbugN9KW3gtxMZdGYCE,10087
74
- shotgun/agents/tools/codebase/query_graph.py,sha256=taWU8yzADUoZ22Z9msGvw4xXFYZz91Xh-V2aAVVb_7M,2308
75
- shotgun/agents/tools/codebase/retrieve_code.py,sha256=KCcKzro0YQ9cFetcm5NF8yKO8hkW7_9aBf67P3PlF2Q,3082
75
+ shotgun/agents/tools/codebase/query_graph.py,sha256=YsO87YwU87F7e_3ABNzSd2rWILGgAo7SSJFspEKUZQ0,2661
76
+ shotgun/agents/tools/codebase/retrieve_code.py,sha256=wuyDLp4SY5ViuafkIAuq9Nk4vX1lE0bwf5ZowDYUt7g,3452
77
+ shotgun/agents/tools/file_read_tools/__init__.py,sha256=gCRYzSaHeScLX9Jal_OsaELlUOzy7NmOzasEEmbon4o,186
78
+ shotgun/agents/tools/file_read_tools/multimodal_file_read.py,sha256=SV-wZEl34ZMXoIm-a2OvrQ-8gByjZnN4pEJg2iD3TUk,5719
79
+ shotgun/agents/tools/markdown_tools/__init__.py,sha256=1uts7dXktSaeWxXZzA-YYMtp5uxOuNiJkqsswpBSY7c,1540
80
+ shotgun/agents/tools/markdown_tools/insert_section.py,sha256=Tdg48gUWf9n4-KWgSAuKZWSjPTwH7Eqn6zye6n6_1eE,5505
81
+ shotgun/agents/tools/markdown_tools/models.py,sha256=dOt_pLeKmfb6tnedpc9aXl5rAt67wrdFvC3oQLVWiGk,2293
82
+ shotgun/agents/tools/markdown_tools/remove_section.py,sha256=dJFOFt6Zgj7oMFcl8RXgHzMhCLiXDhu3zML5E5GpQ6U,3977
83
+ shotgun/agents/tools/markdown_tools/replace_section.py,sha256=xvplMVDIsOPAOTd_OD3u0APoY4zZBsJSEXcn4S7Wcyc,4189
84
+ shotgun/agents/tools/markdown_tools/utils.py,sha256=aJapRcrtG0AvNiNtW6q1WSkToa7FX8BA4E4gK9aZRsE,13742
76
85
  shotgun/agents/tools/web_search/__init__.py,sha256=HN-EXSQzX5Z5c08w04kcoluQhAVqmkJdvBn_rFi82As,3707
77
86
  shotgun/agents/tools/web_search/anthropic.py,sha256=CqkKlMTBajz3bGbQfSvYYndy9npe00bTOSw8luLc5MY,5700
78
87
  shotgun/agents/tools/web_search/gemini.py,sha256=PlU90AkWxvLieBKw-nC2AT2dWoyvq3Zb6K_UickI-UQ,3818
79
- shotgun/agents/tools/web_search/openai.py,sha256=eSL1qgQWpW5qbkbrf90jIbh3D7wjq-zeg44ky3pqRYE,3708
88
+ shotgun/agents/tools/web_search/openai.py,sha256=74llmbNGgtMRTO1cBY9TUK2UOnTfI-zbbUEPcYhEJpk,4459
80
89
  shotgun/agents/tools/web_search/utils.py,sha256=O4IMu9mPBZe5551fNclfXbSmoL7fxP1hziqkWq8CRrI,544
90
+ shotgun/attachments/__init__.py,sha256=ekcmX00vMC_tpMnTu3bD4JMtYlRjfLVi6H5u3WlnvXI,1041
91
+ shotgun/attachments/errors.py,sha256=zDSCj2vTY2yt8iAkJj_jocQ_q5HlL9sroiwg9yZ1fVw,1901
92
+ shotgun/attachments/models.py,sha256=9p4a8FE1mESdMWzrCY4Po8PO9G3HHaNtOM7-r7Q74is,3328
93
+ shotgun/attachments/parser.py,sha256=_7AdkdVXbszO4M_vQe8NVQxKwGhldb4ue7iQzE9amd4,7629
94
+ shotgun/attachments/processor.py,sha256=7IbRGzfQhkMgbNPyJ45jWAgaA_y-pIjP0OGd7A779V8,5660
81
95
  shotgun/cli/__init__.py,sha256=_F1uW2g87y4bGFxz8Gp8u7mq2voHp8vQIUtCmm8Tojo,40
82
- shotgun/cli/clear.py,sha256=_zdcvJvFSC2srYLrgh61dyttFu4O47hTNYRCAiSTKQg,1617
83
- shotgun/cli/compact.py,sha256=vq_9spjhKF-S2pOezX0F6I3OkDN8JEH7OGeB0eQCMLU,5941
96
+ shotgun/cli/clear.py,sha256=vn-1ihd1qmdQUnTUJK7kDKTGQGOBGkvmqDN_a5Fu4mE,1626
97
+ shotgun/cli/compact.py,sha256=9YNgpCbP2NtVxMucA-OFaJ3l1nEE8xrji2XraMdX5xw,5950
84
98
  shotgun/cli/config.py,sha256=wKBPSQ8ZVF6ITPS_bE2F46_xyWiI80QJhhgjt8uuDSY,8031
85
- shotgun/cli/context.py,sha256=5BIiBbcmJ4ePuAiusWKTaKoDZFfGn39uvMoS1ZdHO08,5430
86
- shotgun/cli/error_handler.py,sha256=neU0dL5zAv4HbrJGIw3Py2wqyA6BzJo3tbpWaZtPidk,646
87
- shotgun/cli/export.py,sha256=k3g32DPMlGlwE8Nd5pLiuMQ64Aa_FY-DOP_yCt3ae1c,2651
99
+ shotgun/cli/context.py,sha256=Us6iconXv0TbHuCHk-zHpBXis4uSMUhTVTldmJ98DHU,5439
100
+ shotgun/cli/error_handler.py,sha256=ThtvjNHnBUXUj1NHFOkRLfe1gdA570e_ZK1W3mzCfCI,636
88
101
  shotgun/cli/feedback.py,sha256=wMRIN6UtBI4832XfUwE7nQLjVLuVu4zjupMme02nfwc,1346
89
102
  shotgun/cli/models.py,sha256=cutimFStP6m5pXmg3kbhtWZjNA2us2cPQFJtz2pTdOU,208
90
- shotgun/cli/plan.py,sha256=mbM-OiCkrR3uWHIwm2M0Zub7wk3GOd5Mnl6_dPZjmKQ,2496
91
- shotgun/cli/research.py,sha256=WUnMjV0a7u6ATAEydyWOAhEWyrtcalvhFq1_ERYPiD0,3010
92
- shotgun/cli/specify.py,sha256=TrvcWP9XfxJqeD3IXRKAZ6RkudLFDjsLbTcm5vy_nPU,2383
93
- shotgun/cli/tasks.py,sha256=1_H6PGjNljMw6UeeTFAhwhsxsMLVF0shuyFGaN_w0rM,2590
103
+ shotgun/cli/run.py,sha256=weN2OovWmBbUn7P0it04MPf_vys0Xx3EsgB-al1e3lY,2825
94
104
  shotgun/cli/update.py,sha256=sc3uuw3AXFF0kpskWah1JEoTwrKv67fCnqp9BjeND3o,5328
95
105
  shotgun/cli/utils.py,sha256=umVWXDx8pelovMk-nT8B7m0c39AKY9hHsuAMnbw_Hcg,732
96
106
  shotgun/cli/codebase/__init__.py,sha256=rKdvx33p0i_BYbNkz5_4DCFgEMwzOOqLi9f5p7XTLKM,73
97
- shotgun/cli/codebase/commands.py,sha256=1N2yOGmok0ZarqXPIpWGcsQrwm_ZJcyWiMxy6tm0j70,8711
107
+ shotgun/cli/codebase/commands.py,sha256=ObCmIsfoj6leLiPk8yuu8Fq7WsYu_SWtakbWHlq8f_8,12966
98
108
  shotgun/cli/codebase/models.py,sha256=B9vs-d-Bq0aS6FZKebhHT-9tw90Y5f6k_t71VlZpL8k,374
99
109
  shotgun/cli/spec/__init__.py,sha256=GZe-ODzMudZcM5NCbz1TTLwK1K5ws7X4KlNT0CBPXEs,69
100
- shotgun/cli/spec/backup.py,sha256=47FUxj3BBSxgP55JMqqrdI6yCyBGiTt1f2CxFp9ocrM,2570
110
+ shotgun/cli/spec/backup.py,sha256=jid6lXAvE5kct2ejIMx6psXm-w2Mop7n9V2_vY37P3o,2604
101
111
  shotgun/cli/spec/commands.py,sha256=em-b4P_9qls3HmRENqONqBoFJvjC7AqjyixGtnNdzyM,4733
102
112
  shotgun/cli/spec/models.py,sha256=3M8fgemjMT1iAITM64q0VlroUa2Bx9L0arINevY1XfQ,1428
103
113
  shotgun/cli/spec/pull_service.py,sha256=5wiDTlWJYi5GQbVm_B-uOpz4yJXbRn5o5OCkbwwlN5M,7171
104
- shotgun/codebase/__init__.py,sha256=QBgFE2Abd5Vl7_NdYOglF9S6d-vIjkb3C0cpIYoHZEU,309
105
- shotgun/codebase/models.py,sha256=F-FT5DVBWvDg9F4HJH2UphqB56DQrMI6SkmLEZyEPu0,5444
106
- shotgun/codebase/service.py,sha256=nyggapfHKdwkKXyuT9oA0tJ9qf4RNVsOxfY8lC5pHro,8006
107
- shotgun/codebase/core/__init__.py,sha256=GWWhJEqChiDXAF4omYCgzgoZmJjwsAf6P1aZ5Bl8OE0,1170
108
- shotgun/codebase/core/change_detector.py,sha256=9xc1hA0Knt9ijaVHiizoOxooLj0b0maDj3BfAihNvx4,12502
114
+ shotgun/codebase/__init__.py,sha256=Hqk7773pk2tB9nr2E5Evz3O5C_OpeXXZisQ-q9_q6Gw,388
115
+ shotgun/codebase/indexing_state.py,sha256=g_fhCWXaCr_z3ePMWu3D14g-_3i-V_YQjHzZgA656i8,2672
116
+ shotgun/codebase/models.py,sha256=B7Erqzy8W57Q_PxoPMeYN6jqF28ouXnTIWPRJ86ryUI,9125
117
+ shotgun/codebase/service.py,sha256=8gctzuZQvTPJKggxv4_rd76PoERlG8LC4KIGjBbEDQY,8455
118
+ shotgun/codebase/benchmarks/__init__.py,sha256=ut_phK8qrs70fXoM_-O4JtHI6SGR0p97z3wW_y2XzFY,875
119
+ shotgun/codebase/benchmarks/benchmark_runner.py,sha256=_o6IsnD_Cq-mQX-UPBtfbOQ-eLV5yA756JKKebnnRvE,10273
120
+ shotgun/codebase/benchmarks/exporters.py,sha256=zqONftGzlRFiRCVWCaJCBo71TvyiykY8PEPNXInGq-I,3667
121
+ shotgun/codebase/benchmarks/models.py,sha256=X8mb5FeHrCovqbPAKXTRSRkKyHr1rUP0f-6z9oVgNQo,3815
122
+ shotgun/codebase/benchmarks/formatters/__init__.py,sha256=zFBW3yOLLPVGHfRA3VKs9Dp1axSLKDJMwQLDvWwWhb4,1386
123
+ shotgun/codebase/benchmarks/formatters/base.py,sha256=WZeBsQRKn784nxNcg3TVjWqYXVOJUqsIgoCqf40FBzU,795
124
+ shotgun/codebase/benchmarks/formatters/json_formatter.py,sha256=ehGI2WPas06XvSzMl2_ZlSlclRLbS2ku_KndF4AyLB0,3869
125
+ shotgun/codebase/benchmarks/formatters/markdown.py,sha256=zIfC-XRg0UZH8NVlCutSsk2e0TIZk_jwWEU-4Um_eE4,4811
126
+ shotgun/codebase/core/__init__.py,sha256=HmCwFQcWYdx9lfQ6g_l1_-aLoMOAnWf4IN4e-jX3Ts8,1335
127
+ shotgun/codebase/core/call_resolution.py,sha256=xL1kqRtRTnf7aUr1ofwP7zDEznuwFBQ62GinlsUf3J8,3301
128
+ shotgun/codebase/core/change_detector.py,sha256=9XDrQmE8BA0ryby8auEukHrS2lcN_dpjJ9FKzmmMWkE,12732
109
129
  shotgun/codebase/core/code_retrieval.py,sha256=8ob-xWjcSmEilpI1h5IU94ykd2dETMf84CfY36N_big,8015
110
130
  shotgun/codebase/core/cypher_models.py,sha256=Yfysfa9lLguILftkmtuJCN3kLBFIo7WW7NigM-Zr-W4,1735
111
- shotgun/codebase/core/ingestor.py,sha256=LXGckVi9HWvRSa-UInF78HXsn-55NFTICzuuwuxYVOA,69526
112
- shotgun/codebase/core/language_config.py,sha256=vsqHyuFnumRPRBV1lMOxWKNOIiClO6FyfKQR0fGrtl4,8934
113
- shotgun/codebase/core/manager.py,sha256=-bGOGIBISfgD4fo25XhpHVQN-qSv9pDLwjjjZ696nfs,66738
131
+ shotgun/codebase/core/errors.py,sha256=I32FqYrqlHZLC5z0rTs9S7P7COvBYNib3JJlrTcn6aU,5375
132
+ shotgun/codebase/core/gitignore.py,sha256=Gb8v8exZhidDwFXL-UeT7g7IVpCkIbn6vsCSbV5rq4Q,8404
133
+ shotgun/codebase/core/ingestor.py,sha256=ekGLz5Y4Rqis6j5puwMxIEBvnAeNNeISXP3h7wlEhv8,81516
134
+ shotgun/codebase/core/kuzu_compat.py,sha256=dfI2JwefnAYBCvBf9v3lIohrOPZGZhXIobok8NZ9CGs,3269
135
+ shotgun/codebase/core/language_config.py,sha256=bcsWP6qw72aWAdnyiPOVKmn9y_Amx2nEB2EJaiA_5hE,14426
136
+ shotgun/codebase/core/manager.py,sha256=3Jmb5w1ATCu5AceKAh8__CQ5kUwE3Tr-PNP1YPBLZvI,75000
137
+ shotgun/codebase/core/metrics_collector.py,sha256=V4kImfuQiEFaQxx0st2K-JnSgVLDlArIW2y5FU4t1FA,11023
138
+ shotgun/codebase/core/metrics_types.py,sha256=sNTf9hdEeSBTaZDMHAcSQW9kZVfxbLuuj_G3JKbhW3U,13129
114
139
  shotgun/codebase/core/nl_query.py,sha256=qH32btb5w7eY2ij7-wc6Z0QXIDOqjz0pZXXRUboSbYs,16121
140
+ shotgun/codebase/core/parallel_executor.py,sha256=jdPlylitL-xrnCBoTRv3d1J6KPH_SyPfCNUxF9KRwvU,15990
115
141
  shotgun/codebase/core/parser_loader.py,sha256=LZRrDS8Sp518jIu3tQW-BxdwJ86lnsTteI478ER9Td8,4278
142
+ shotgun/codebase/core/work_distributor.py,sha256=l8gYcgFDJ1oF-K_Du1vGBjGbG33AkHhjHRy6MsIbzVI,8587
143
+ shotgun/codebase/core/worker.py,sha256=zOjSdeEL1DFtQ_N9ZFb24orek5HP3o9DZavykDixjg0,26040
144
+ shotgun/codebase/core/extractors/__init__.py,sha256=-wgJkjQjoqLamwMJihcDNNzwEk51Md69Zn9aYkDWH9o,616
145
+ shotgun/codebase/core/extractors/base.py,sha256=ismvBVjK4SGwg9SmI6wIodvKJmNA8ncbm4Tu53iQLKk,4386
146
+ shotgun/codebase/core/extractors/factory.py,sha256=q2YvgFTsJQw6sxCMagW1cCgIc79ae5dYw8pm7-QIUHY,1823
147
+ shotgun/codebase/core/extractors/protocol.py,sha256=Ay01Dvbs9Omb34C3JpGZBDN06b2y4t6ZyeLcumKMfBo,3062
148
+ shotgun/codebase/core/extractors/types.py,sha256=oNLGj2dPkEJhSvxyi4EOEkNtaIwhKw5Oi25kVdoHrR0,325
149
+ shotgun/codebase/core/extractors/go/__init__.py,sha256=t4BzF5GQY7cPzBqeawdywm6tv-EWEsPQDj5AxWuHFog,128
150
+ shotgun/codebase/core/extractors/go/extractor.py,sha256=_94AvqfC4WcqmJbugEII8WUiybfRPP85CqFM3LOp57k,4289
151
+ shotgun/codebase/core/extractors/javascript/__init__.py,sha256=MaSTREM8b6l8dYV0ZQdzDJI7acFHwxq276tYbjxLKMg,152
152
+ shotgun/codebase/core/extractors/javascript/extractor.py,sha256=HPCAeAzWKEh80m9DdKkB9HwQPmpYpfHJFVH5nQVS0Ak,4602
153
+ shotgun/codebase/core/extractors/python/__init__.py,sha256=VzZqaV0g3jTpWBdBJ0wINIEJYo_h5Yxh1F6fFz9EGjQ,140
154
+ shotgun/codebase/core/extractors/python/extractor.py,sha256=522HsOJQ0wg7Xt_KZTyR1MnjukQSLz8jH95j6V8DhZo,5156
155
+ shotgun/codebase/core/extractors/rust/__init__.py,sha256=Mp-HCbuKGnjw-9mJJctQP2ytEfO_fI_R-bwFZCrf_dk,134
156
+ shotgun/codebase/core/extractors/rust/extractor.py,sha256=fk6vNscNBdnH-76WC7nDzFbL0akrIU1x4IsRPcrpiU0,4871
157
+ shotgun/codebase/core/extractors/typescript/__init__.py,sha256=tVdvxoSRO72XZkVkBHSTKCcsKRAH9fh4LdVJTIx3FrQ,152
158
+ shotgun/codebase/core/extractors/typescript/extractor.py,sha256=ILQ2kJFkV4AeuBwA3iV_uGQNcNJkuUpEe3ebnaX7IrY,3236
116
159
  shotgun/llm_proxy/__init__.py,sha256=z7YnPfyhW0WYrz6tHOoVcVOoi6iO0zWjUHbpu6o38oA,817
117
160
  shotgun/llm_proxy/client.py,sha256=qtmJng-ESRbiXqw-Dn8zMduF5MEiNJdkPbG4uu4u4XU,6507
118
161
  shotgun/llm_proxy/clients.py,sha256=Y19W8Gb2e-37w8rUKPmxJOqoTk6GlcPhZhoeAbbURU0,1341
@@ -122,18 +165,19 @@ shotgun/prompts/__init__.py,sha256=RswUm0HMdfm2m2YKUwUsEdRIwoczdbI7zlucoEvHYRo,1
122
165
  shotgun/prompts/loader.py,sha256=_7CdUYrAo6ZwvTBUlXugKyLU0IDBg5CVzUIAHFPw418,4433
123
166
  shotgun/prompts/agents/__init__.py,sha256=YRIJMbzpArojNX1BP5gfxxois334z_GQga8T-xyWMbY,39
124
167
  shotgun/prompts/agents/export.j2,sha256=o-4pdwRNOtXZR9akcWLcJYwF_V1wMOyF8sbLtKKXtDo,17116
125
- shotgun/prompts/agents/plan.j2,sha256=okyBe_EcYvEuF3iPVjxzu06Vv-AdGRR0FNJUWyEoZ2c,6993
168
+ shotgun/prompts/agents/file_read.j2,sha256=kyv5WAy6LLKIg3J2Q50lLjcGZaYdu9Rrm5hVwhkfHB4,1967
169
+ shotgun/prompts/agents/plan.j2,sha256=l0eH-AC8h1m7SQmVxCEY3OOg_o9Eg3zabg05dIO26U4,7545
126
170
  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
171
+ shotgun/prompts/agents/router.j2,sha256=w6VAaKjJqKmDDZ__2-ntvZkLI2ufknUdWJC1YJ9goAc,28564
172
+ shotgun/prompts/agents/specify.j2,sha256=nCJfauEn080peif6iWAZ3X2mKAFH-hrAflAcEELPIC8,15748
173
+ shotgun/prompts/agents/tasks.j2,sha256=2le3wZ00NVPba1lgs7jk2xf4eQ2MPMa6cnaKE9hPuI8,8929
130
174
  shotgun/prompts/agents/partials/codebase_understanding.j2,sha256=7WH-PVd-TRBFQUdOdKkwwn9hAUaJznFZMAGHhO7IGGU,5633
131
- shotgun/prompts/agents/partials/common_agent_system_prompt.j2,sha256=a0omqPZ2O3vWCzEP-EqYYusrqgwrhBHypHFtaLWhPEg,3255
132
- shotgun/prompts/agents/partials/content_formatting.j2,sha256=MG0JB7SSp8YV5akDWpbs2f9DcdREIYqLp38NnoWLeQ0,1854
133
- shotgun/prompts/agents/partials/interactive_mode.j2,sha256=BTxsuNp1sgxPn81HALFDFQYTXjHkMxq5km7Ffyc-9f0,1516
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
136
- shotgun/prompts/agents/state/codebase/codebase_graphs_available.j2,sha256=U-hy-H9bPwV0sYIHTZ5TESxc5EOCtntI8GUZOmJipJw,601
175
+ shotgun/prompts/agents/partials/common_agent_system_prompt.j2,sha256=03SRfJ-UlszT_s6kc4VC6dgWQ1j2x5aARwdhemChJ0M,1937
176
+ shotgun/prompts/agents/partials/content_formatting.j2,sha256=zM80rlH8T79GBYXithsZQO0A4PZ_3ht6yC4fmvjEEHY,1459
177
+ shotgun/prompts/agents/partials/interactive_mode.j2,sha256=xyJGKrGrOPz5_74ELUcF7sEWZDzk5gMkU4SqrC-xIuk,1175
178
+ shotgun/prompts/agents/partials/router_delegation_mode.j2,sha256=c9UcRkpo2bZ4dOd6sfI7K1y_vXYO4bVofMTMM3wjoXY,1339
179
+ shotgun/prompts/agents/state/system_state.j2,sha256=WnOczRSfiETWwl0L0Mzvldvg-V8c55ZW0jon8R179ZY,1477
180
+ shotgun/prompts/agents/state/codebase/codebase_graphs_available.j2,sha256=YZA11xCSdwAm7Xh176xas2Y2xtO-PBzW-Xx9tl_xpGk,1306
137
181
  shotgun/prompts/codebase/__init__.py,sha256=NYuPMtmYM2ptuwf3YxVuotNlJOUq0hnjmwlzKcJkGK4,42
138
182
  shotgun/prompts/codebase/cypher_query_patterns.j2,sha256=ufTx_xT3VoS76KcVUbIgGQx-bJoJHx3bBE3dagAXv18,8913
139
183
  shotgun/prompts/codebase/cypher_system.j2,sha256=jo8d_AIoyAd0zKCvPXSmYGBxvtulMsCfeaOTdOfeC5g,2620
@@ -166,28 +210,32 @@ shotgun/shotgun_web/shared_specs/models.py,sha256=RkKWw4POBMvmaIwGiSq1pho2mgw6zo
166
210
  shotgun/shotgun_web/shared_specs/upload_pipeline.py,sha256=rowaQ6pJFyBLLyGmSoOSaQ2napGX1OQTQXl8qMq_R1w,10549
167
211
  shotgun/shotgun_web/shared_specs/utils.py,sha256=8hXchaiYhSyG9FP_O6YXk8tMupJQiVgGXZKKWhD_SsU,812
168
212
  shotgun/tui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
169
- shotgun/tui/app.py,sha256=Vhj3p6KJOsTauofx-eEnGOdyMd-bAB6ZlddaTY2bsBQ,15413
213
+ shotgun/tui/app.py,sha256=kVB-EjjMw8NCDzRueOG_fNMj1l09Yu7fz17uu4LpuJ8,20591
170
214
  shotgun/tui/containers.py,sha256=g7sx0WOHZXXboP7gJLgOkSUSIaPemO8VZcESoXdzmSQ,3532
171
- shotgun/tui/dependencies.py,sha256=TnJFbVgP0FlXBcISDIQSX13nIpNOH0d3B4lSukMbB7w,3149
215
+ shotgun/tui/dependencies.py,sha256=m_5FoN5ktSS71rIb7Bj7GIYJDMbzhsF2hA0rc2z6c4o,2950
172
216
  shotgun/tui/filtered_codebase_service.py,sha256=lJ8gTMhIveTatmvmGLP299msWWTkVYKwvY_2FhuL2s4,1687
173
217
  shotgun/tui/layout.py,sha256=_hCXwbdPGLXgN8h54ri2Pnk8Gpw6B3pTP3horBlyZz0,247
174
- shotgun/tui/protocols.py,sha256=TjhNRX-_byJxzt56YseGe3vKKv5Ak3CYg2C0rR8rqKY,2288
218
+ shotgun/tui/protocols.py,sha256=bIswoPRdLhzrXaju_K8hvYFSJfaBLDf59eckn9NmhLo,2776
175
219
  shotgun/tui/styles.tcss,sha256=ETyyw1bpMBOqTi5RLcAJUScdPWTvAWEqE9YcT0kVs_E,121
176
- shotgun/tui/commands/__init__.py,sha256=qxYz-9aGhXAZF9VQ5AyALejI1TacsEc2cX2DH7vTXoM,2559
220
+ shotgun/tui/commands/__init__.py,sha256=ckUzWOegC5znk9vMweyrRgKKNvFjXtmFWjQTGYoRpb4,2936
221
+ shotgun/tui/components/attachment_bar.py,sha256=JZtXc9hWm_BNPxqXn-HhGNj0hK2vT4ht6t5H_0ChGog,2607
177
222
  shotgun/tui/components/context_indicator.py,sha256=GeEMvLYf09Hkw-sTqX1v8RDHb6rt6mXcUpI4DT9DVHQ,5792
178
223
  shotgun/tui/components/mode_indicator.py,sha256=yTi7cnWgLjg2jZaJlMoLPVrS4YhNmFhrRz1EWwNVuww,5514
179
- shotgun/tui/components/prompt_input.py,sha256=Ss-htqraHZAPaehGE4x86ij0veMjc4UgadMXpbdXr40,2229
224
+ shotgun/tui/components/prompt_input.py,sha256=eHeQPnkf-0OtcXvE2ayr3GlVxCPHvKB500bNYzRtbDk,2154
180
225
  shotgun/tui/components/spinner.py,sha256=ovTDeaJ6FD6chZx_Aepia6R3UkPOVJ77EKHfRmn39MY,2427
181
226
  shotgun/tui/components/splash.py,sha256=vppy9vEIEvywuUKRXn2y11HwXSRkQZHLYoVjhDVdJeU,1267
182
- shotgun/tui/components/status_bar.py,sha256=ta-5_SUg0FINMXRKYjGxhWA7RerbcuYzQckyvBrVw-I,1703
227
+ shotgun/tui/components/status_bar.py,sha256=3d7POlrxLQa9U0sLoJW4ERnqB6JzoX8WWASlBGml4Ww,2097
183
228
  shotgun/tui/components/vertical_tail.py,sha256=kROwTaRjUwVB7H35dtmNcUVPQqNYvvfq7K2tXBKEb6c,638
184
229
  shotgun/tui/screens/chat.tcss,sha256=7jM4YTBj-N-5T4NIiU2AJiGtKYvYO50OAkI0o7_qimI,574
185
230
  shotgun/tui/screens/confirmation_dialog.py,sha256=g2DqxNiVx7OCsGlvuot_iGuHZjrlBlQN91hSTlhGXC4,6113
231
+ shotgun/tui/screens/database_locked_dialog.py,sha256=VMOXWOSAopahIhwsX06ZlYVJL93QeT-EgSggfxemqow,7693
232
+ shotgun/tui/screens/database_timeout_dialog.py,sha256=FcpbqKP2hKrE-WU-FxNmVxhp3wPmfGVbMcVe5QfOLSs,5086
186
233
  shotgun/tui/screens/directory_setup.py,sha256=cwtl9KRsSnpm7HbGx84TE6wahUXKeXbi8L0TRtCfYJQ,3274
187
234
  shotgun/tui/screens/feedback.py,sha256=BRrAcgDMAVsEvCNFYjuqdF6FmqzuqiBxeLz4Ah7MGMQ,5955
188
235
  shotgun/tui/screens/github_issue.py,sha256=OdjaNLb997UOqVTWMq-GawVbTPjxarynMb-y0ktxeCA,3178
189
- shotgun/tui/screens/model_picker.py,sha256=Jsol6zf2tIjL2Ut5yodtR3W8aRxb8I6MDOX4UQm-GmY,13955
190
- shotgun/tui/screens/onboarding.py,sha256=oV7IOA6MyOVuVzrSZDL1S7D_8cVZ2g2S4RHX-YzWnnM,18472
236
+ shotgun/tui/screens/kuzu_error_dialog.py,sha256=SRgeS-VSero_O0tjG685QM3jOwKC1_YpWS4HiDvkDvE,4292
237
+ shotgun/tui/screens/model_picker.py,sha256=W693qUjP9OuIae2OIdTjfZzt1inQJ-giMWG_O0Rk4_Y,13800
238
+ shotgun/tui/screens/models.py,sha256=hsS62WEKpJkGOBbmT0UqVw1Hrunm-4b9ZEzgblwtHaY,223
191
239
  shotgun/tui/screens/pipx_migration.py,sha256=e9DojUzdlxj7_8IC7T_UMLEjIOk4eOF0uro2s8oAAvs,6145
192
240
  shotgun/tui/screens/provider_config.py,sha256=VrlSnYZ-l1VG_qi5H-4G0yuNaJP8BFW20Vxgv8IcS28,13903
193
241
  shotgun/tui/screens/shotgun_auth.py,sha256=tFKEMaQ6pocAdMG4JoRXQVjmjgluNGoYNZHBFCgTfck,13951
@@ -195,22 +243,23 @@ shotgun/tui/screens/spec_pull.py,sha256=LYD_ca2c4Je34daU4KFNWKnJ_rfMGGIXN-kJbdLT
195
243
  shotgun/tui/screens/splash.py,sha256=E2MsJihi3c9NY1L28o_MstDxGwrCnnV7zdq00MrGAsw,706
196
244
  shotgun/tui/screens/welcome.py,sha256=WJ35Cnoj9aHN47qgfBmGg99IXQQzkJ2Ipl-vfzU6oBs,10398
197
245
  shotgun/tui/screens/chat/__init__.py,sha256=wChPqpJG-7kPYVYZjE8BlkXWxfW_YABhTR2fQ51opHY,113
198
- shotgun/tui/screens/chat/chat.tcss,sha256=G1p1TUptDM6c2mQgxu5tv5nZX-WkuH6g8W94aAdTnNM,722
199
- shotgun/tui/screens/chat/chat_screen.py,sha256=Kct9c4iB1mRSRQyatBVOq6cBVN1pqSsNdYoHKQ0_by4,87805
200
- shotgun/tui/screens/chat/codebase_index_prompt_screen.py,sha256=GSzyAKZVsD3UPGUFDvfdwdhJucRNX77iUcJAq0_D4U4,7855
246
+ shotgun/tui/screens/chat/chat.tcss,sha256=mJyLkrN20TS4pvmiLLWRajMZDaCMp13QjljotNeiaqs,922
247
+ shotgun/tui/screens/chat/chat_screen.py,sha256=K-W66vgnCWj2ItFjDBY9AQUCfaSjuuomu5uEsQC-33s,110474
248
+ shotgun/tui/screens/chat/codebase_index_prompt_screen.py,sha256=T_mk5Ma4jzdVaW-ojsSfOXIefZ_5hUt10yJsuz3Iu5E,7945
201
249
  shotgun/tui/screens/chat/codebase_index_selection.py,sha256=Zz0vi3uLhWysdPHRO8Rye9QX4hIPeWhSAw6Y9-BlOVA,241
202
250
  shotgun/tui/screens/chat/help_text.py,sha256=MkDq0Z7yQCXHVtLlnZaFU_Ijq1rbQX9KMOGVsb_1Hm8,1610
203
251
  shotgun/tui/screens/chat/prompt_history.py,sha256=uL3KVFb32vD09jN338mebFAi0QI-EJXTxcEQy-j6QdQ,1201
204
252
  shotgun/tui/screens/chat_screen/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
205
- shotgun/tui/screens/chat_screen/command_providers.py,sha256=sr-cCM_7K1o1zWUckapBqmbzUXrWqHySsBpTqv9jtj4,12711
253
+ shotgun/tui/screens/chat_screen/attachment_hint.py,sha256=4N2RnkTqw7jlCddzHG7KGkltmMzXHCcTTJXZ7RpPqBc,1122
254
+ shotgun/tui/screens/chat_screen/command_providers.py,sha256=fT4cJnP678IsDUqqQWAlmu8B2OrsmFM1VrvGF1OoKoc,12327
206
255
  shotgun/tui/screens/chat_screen/hint_message.py,sha256=aeG3TB8lamc7VeGUST16A96y6dYc8u3FuTxymM5BI-w,3361
207
256
  shotgun/tui/screens/chat_screen/messages.py,sha256=IYHrRixB3EyTmKm4rcKeDR3MqN5snR3GaE1ZHg-AkY0,6563
208
257
  shotgun/tui/screens/chat_screen/history/__init__.py,sha256=PRznBlnm9caNE0YYC08PkvNMAK-JpuULwmByaRNTKO0,581
209
258
  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
259
+ shotgun/tui/screens/chat_screen/history/chat_history.py,sha256=oAQPgIEazTKOK5DSTD7uVEg4jzYzmxUpD95FFBwHt_4,6091
260
+ shotgun/tui/screens/chat_screen/history/formatters.py,sha256=u2P2OWqJ7-YZbI6PktVym_aOqN-nJtviRKjqI8tzv_4,6831
212
261
  shotgun/tui/screens/chat_screen/history/partial_response.py,sha256=r1KAJGrtDmTGEJSV66_pg_TAU55BH9foFA63-MHJfCM,1690
213
- shotgun/tui/screens/chat_screen/history/user_question.py,sha256=BKl4FVKh4veszykkfr8RI06O5NEDIBZ17IZSCLzlImA,1305
262
+ shotgun/tui/screens/chat_screen/history/user_question.py,sha256=q_6aWax8TH0oImOfjo7QhqT02Y7snrSB7WemZbMmCkg,2249
214
263
  shotgun/tui/screens/shared_specs/__init__.py,sha256=HTsjeZ2E6ICS8vd1KmG_H0-B0fpjcaVSR3_7AI8jXqU,631
215
264
  shotgun/tui/screens/shared_specs/create_spec_dialog.py,sha256=Sp7s0tWJl1AQmOZ118VGM3zhMZF9FqN-eNJLWeU_tcE,7654
216
265
  shotgun/tui/screens/shared_specs/models.py,sha256=dxNRmWD9xrqGdkTeSHoV3IyMFESyuyTqWKKKMcapNNU,1431
@@ -219,7 +268,7 @@ shotgun/tui/screens/shared_specs/upload_progress_screen.py,sha256=VY0uioZvtA8p8Z
219
268
  shotgun/tui/services/__init__.py,sha256=-BKRCRYQSnQZI4PxxUpkbvq8eYhXGjWHJtVW06CYQ2o,149
220
269
  shotgun/tui/services/conversation_service.py,sha256=l8v991gTFLpgsv7drmZ5MSZ77_zmqYHc2ejh2zjZt7I,6703
221
270
  shotgun/tui/state/__init__.py,sha256=oPV_VsvoiXhuZPwnra38kCT3RyXLvVxkVKDOv-LXGgA,141
222
- shotgun/tui/state/processing_state.py,sha256=O0SxqQmljWyaSAhdCAr2fNgS0ibFiIhGRNHpiUSCkW0,6234
271
+ shotgun/tui/state/processing_state.py,sha256=R596JgFKnS4NDt_0k5ix9fyRw4xnxdzkzsWe4Zz1bfI,6927
223
272
  shotgun/tui/utils/__init__.py,sha256=cFjDfoXTRBq29wgP7TGRWUu1eFfiIG-LLOzjIGfadgI,150
224
273
  shotgun/tui/utils/mode_progress.py,sha256=IdDFAIpIZHL5YTTUGvN_CaSZsN2vdm89Q6d7gNsAvBI,7323
225
274
  shotgun/tui/widgets/__init__.py,sha256=6l-rU3Kq4hxKZQif49ZrZvvQlguC5qR20MJxi0kPwWQ,230
@@ -227,16 +276,16 @@ shotgun/tui/widgets/approval_widget.py,sha256=ewbVusx2wzJCXgw81iFsWEdH5nFWRtet1F
227
276
  shotgun/tui/widgets/cascade_confirmation_widget.py,sha256=AY4KnqGb9vLFqoU2KXMZB9K4st6Z4sLdZ7IMVnrAKlU,6890
228
277
  shotgun/tui/widgets/plan_panel.py,sha256=hmIcpKGw4rWvzEh0kWDLWUqwTJ5MKWzLySXqtybMYrI,3607
229
278
  shotgun/tui/widgets/step_checkpoint_widget.py,sha256=hiwT9EyQ-ue8iGmOed7CBqau1EWo7jtdFjRk9uTvYu8,5963
230
- shotgun/tui/widgets/widget_coordinator.py,sha256=rol2APsRfQv0TKMidqKidjDJ7haKm11e6KZuUOrrAW8,9140
279
+ shotgun/tui/widgets/widget_coordinator.py,sha256=J16RinNmB6OMkw9JDwdFOwuuZ3qBKuC_fHolLmrtNh4,9808
231
280
  shotgun/utils/__init__.py,sha256=WinIEp9oL2iMrWaDkXz2QX4nYVPAm8C9aBSKTeEwLtE,198
232
281
  shotgun/utils/datetime_utils.py,sha256=x_uYmG1n9rkhSO2oR2uV9ttiuPL0nKa9os8YYaPfdWY,2592
233
282
  shotgun/utils/env_utils.py,sha256=ulM3BRi9ZhS7uC-zorGeDQm4SHvsyFuuU9BtVPqdrHY,1418
234
- shotgun/utils/file_system_utils.py,sha256=zuuWO12bzSfeocTbi4DHVJKJTBekjP-_vRmb36FHrQ4,1525
283
+ shotgun/utils/file_system_utils.py,sha256=62l6OtAUzTLxkvsKqib7DB-l03mQUr_Hs2D9_1cLoSE,1702
235
284
  shotgun/utils/marketing.py,sha256=WAPEtJDagNsDmIBdrZ0XBHOgsLONz_eT25wEng-HDBs,3759
236
285
  shotgun/utils/source_detection.py,sha256=Co6Q03R3fT771TF3RzB-70stfjNP2S4F_ArZKibwzm8,454
237
286
  shotgun/utils/update_checker.py,sha256=6fjiVUXgdxUrI54dfw0xBsrw7jlobYkjYNZaR-JoTpI,9667
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,,
287
+ shotgun_sh-0.6.2.dist-info/METADATA,sha256=jHIsI_xXi3dQ83rEJl01-hkf9wjc8_CnyX63jrUQbSk,18145
288
+ shotgun_sh-0.6.2.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
289
+ shotgun_sh-0.6.2.dist-info/entry_points.txt,sha256=GQmtjKaPtviqYOuB3C0SMGlG5RZS9-VDDIKxV_IVHmY,75
290
+ shotgun_sh-0.6.2.dist-info/licenses/LICENSE,sha256=ZZEiPnjIkv3rNT-CJBMU6l7VukLUdddCo3bTwal1NIQ,1070
291
+ shotgun_sh-0.6.2.dist-info/RECORD,,
shotgun/cli/export.py DELETED
@@ -1,81 +0,0 @@
1
- """Export command for shotgun CLI."""
2
-
3
- import asyncio
4
- from typing import Annotated
5
-
6
- import typer
7
-
8
- from shotgun.agents.config import ProviderType
9
- from shotgun.agents.export import (
10
- create_export_agent,
11
- run_export_agent,
12
- )
13
- from shotgun.agents.models import AgentRuntimeOptions
14
- from shotgun.cli.error_handler import print_agent_error
15
- from shotgun.exceptions import ErrorNotPickedUpBySentry
16
- from shotgun.logging_config import get_logger
17
- from shotgun.posthog_telemetry import track_event
18
-
19
- app = typer.Typer(
20
- name="export", help="Export artifacts to various formats with agentic approach"
21
- )
22
- logger = get_logger(__name__)
23
-
24
-
25
- @app.callback(invoke_without_command=True)
26
- def export(
27
- instruction: Annotated[
28
- str, typer.Argument(help="Export instruction or format specification")
29
- ],
30
- non_interactive: Annotated[
31
- bool,
32
- typer.Option(
33
- "--non-interactive", "-n", help="Disable user interaction (for CI/CD)"
34
- ),
35
- ] = False,
36
- provider: Annotated[
37
- ProviderType | None,
38
- typer.Option("--provider", "-p", help="AI provider to use (overrides default)"),
39
- ] = None,
40
- ) -> None:
41
- """Export artifacts and findings to various formats.
42
-
43
- This command exports research, plans, tasks, and other project artifacts
44
- to different formats like Markdown, HTML, JSON, CSV, or project management
45
- tool formats. The AI agent will analyze available content and transform
46
- it according to your export requirements.
47
- """
48
-
49
- logger.info("📤 Export Instruction: %s", instruction)
50
-
51
- # Track export command usage
52
- track_event(
53
- "export_command",
54
- {
55
- "non_interactive": non_interactive,
56
- "provider": provider.value if provider else "default",
57
- },
58
- )
59
-
60
- # Create agent dependencies
61
- agent_runtime_options = AgentRuntimeOptions(interactive_mode=not non_interactive)
62
-
63
- # Create the export agent with deps and provider
64
- agent, deps = asyncio.run(create_export_agent(agent_runtime_options, provider))
65
-
66
- # Start export process with error handling
67
- logger.info("🎯 Starting export...")
68
-
69
- async def async_export() -> None:
70
- try:
71
- result = await run_export_agent(agent, instruction, deps)
72
- logger.info("✅ Export Complete!")
73
- logger.info("📤 Results:")
74
- logger.info("%s", result.output)
75
- except ErrorNotPickedUpBySentry as e:
76
- print_agent_error(e)
77
- except Exception as e:
78
- logger.exception("Unexpected error in export command")
79
- print(f"⚠️ An unexpected error occurred: {str(e)}")
80
-
81
- asyncio.run(async_export())
shotgun/cli/plan.py DELETED
@@ -1,73 +0,0 @@
1
- """Plan command for shotgun CLI."""
2
-
3
- import asyncio
4
- from typing import Annotated
5
-
6
- import typer
7
-
8
- from shotgun.agents.config import ProviderType
9
- from shotgun.agents.models import AgentRuntimeOptions
10
- from shotgun.agents.plan import create_plan_agent, run_plan_agent
11
- from shotgun.cli.error_handler import print_agent_error
12
- from shotgun.exceptions import ErrorNotPickedUpBySentry
13
- from shotgun.logging_config import get_logger
14
- from shotgun.posthog_telemetry import track_event
15
-
16
- app = typer.Typer(name="plan", help="Generate structured plans", no_args_is_help=True)
17
- logger = get_logger(__name__)
18
-
19
-
20
- @app.callback(invoke_without_command=True)
21
- def plan(
22
- goal: Annotated[str, typer.Argument(help="Goal or objective to plan for")],
23
- non_interactive: Annotated[
24
- bool,
25
- typer.Option(
26
- "--non-interactive", "-n", help="Disable user interaction (for CI/CD)"
27
- ),
28
- ] = False,
29
- provider: Annotated[
30
- ProviderType | None,
31
- typer.Option("--provider", "-p", help="AI provider to use (overrides default)"),
32
- ] = None,
33
- ) -> None:
34
- """Generate a structured plan for achieving the given goal.
35
-
36
- This command will create detailed, actionable plans broken down into steps
37
- and milestones to help achieve your specified objective. It can also update
38
- existing plans based on new requirements or refinements.
39
- """
40
-
41
- logger.info("📋 Planning Goal: %s", goal)
42
-
43
- # Track plan command usage
44
- track_event(
45
- "plan_command",
46
- {
47
- "non_interactive": non_interactive,
48
- "provider": provider.value if provider else "default",
49
- },
50
- )
51
-
52
- # Create agent dependencies
53
- agent_runtime_options = AgentRuntimeOptions(interactive_mode=not non_interactive)
54
-
55
- # Create the plan agent with deps and provider
56
- agent, deps = asyncio.run(create_plan_agent(agent_runtime_options, provider))
57
-
58
- # Start planning process with error handling
59
- logger.info("🎯 Starting planning...")
60
-
61
- async def async_plan() -> None:
62
- try:
63
- result = await run_plan_agent(agent, goal, deps)
64
- logger.info("✅ Planning Complete!")
65
- logger.info("📋 Results:")
66
- logger.info("%s", result.output)
67
- except ErrorNotPickedUpBySentry as e:
68
- print_agent_error(e)
69
- except Exception as e:
70
- logger.exception("Unexpected error in plan command")
71
- print(f"⚠️ An unexpected error occurred: {str(e)}")
72
-
73
- asyncio.run(async_plan())
shotgun/cli/research.py DELETED
@@ -1,93 +0,0 @@
1
- """Research command for shotgun CLI."""
2
-
3
- import asyncio
4
- from typing import Annotated
5
-
6
- import typer
7
-
8
- from shotgun.agents.config import ProviderType
9
- from shotgun.agents.models import AgentRuntimeOptions
10
- from shotgun.agents.research import (
11
- create_research_agent,
12
- run_research_agent,
13
- )
14
- from shotgun.cli.error_handler import print_agent_error
15
- from shotgun.exceptions import ErrorNotPickedUpBySentry
16
- from shotgun.logging_config import get_logger
17
- from shotgun.posthog_telemetry import track_event
18
-
19
- app = typer.Typer(
20
- name="research", help="Perform research with agentic loops", no_args_is_help=True
21
- )
22
- logger = get_logger(__name__)
23
-
24
-
25
- @app.callback(invoke_without_command=True)
26
- def research(
27
- query: Annotated[str, typer.Argument(help="Research query or topic")],
28
- non_interactive: Annotated[
29
- bool,
30
- typer.Option(
31
- "--non-interactive", "-n", help="Disable user interaction (for CI/CD)"
32
- ),
33
- ] = False,
34
- provider: Annotated[
35
- ProviderType | None,
36
- typer.Option("--provider", "-p", help="AI provider to use (overrides default)"),
37
- ] = None,
38
- ) -> None:
39
- """Perform research on a given query using agentic loops.
40
-
41
- This command will use AI agents to iteratively research the provided topic,
42
- gathering information from multiple sources and refining the search process.
43
- """
44
-
45
- logger.info("🔍 Research Query: %s", query)
46
-
47
- try:
48
- # Run everything in the same event loop
49
- asyncio.run(async_research(query, non_interactive, provider))
50
-
51
- except Exception as e:
52
- logger.error("❌ Error during research: %s", str(e))
53
- import traceback
54
-
55
- logger.debug("Full traceback:\n%s", traceback.format_exc())
56
-
57
-
58
- async def async_research(
59
- query: str,
60
- non_interactive: bool,
61
- provider: ProviderType | None = None,
62
- ) -> None:
63
- """Async wrapper for research process."""
64
- # Track research command usage
65
- track_event(
66
- "research_command",
67
- {
68
- "non_interactive": non_interactive,
69
- "provider": provider.value if provider else "default",
70
- },
71
- )
72
-
73
- # Create agent dependencies
74
- agent_runtime_options = AgentRuntimeOptions(interactive_mode=not non_interactive)
75
-
76
- # Create the research agent with deps and provider
77
- agent, deps = await create_research_agent(agent_runtime_options, provider)
78
-
79
- # Start research process with error handling
80
- logger.info("🔬 Starting research...")
81
- try:
82
- result = await run_research_agent(agent, query, deps)
83
- # Display results
84
- print("✅ Research Complete!")
85
- print("📋 Findings:")
86
- print(result.output)
87
- except ErrorNotPickedUpBySentry as e:
88
- # All user-actionable errors - display with plain text
89
- print_agent_error(e)
90
- except Exception as e:
91
- # Unexpected errors that weren't wrapped (shouldn't happen)
92
- logger.exception("Unexpected error in research command")
93
- print(f"⚠️ An unexpected error occurred: {str(e)}")