superqode 0.1.5__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 (288) hide show
  1. superqode/__init__.py +33 -0
  2. superqode/acp/__init__.py +23 -0
  3. superqode/acp/client.py +913 -0
  4. superqode/acp/permission_screen.py +457 -0
  5. superqode/acp/types.py +480 -0
  6. superqode/acp_discovery.py +856 -0
  7. superqode/agent/__init__.py +22 -0
  8. superqode/agent/edit_strategies.py +334 -0
  9. superqode/agent/loop.py +892 -0
  10. superqode/agent/qe_report_templates.py +39 -0
  11. superqode/agent/system_prompts.py +353 -0
  12. superqode/agent_output.py +721 -0
  13. superqode/agent_stream.py +953 -0
  14. superqode/agents/__init__.py +59 -0
  15. superqode/agents/acp_registry.py +305 -0
  16. superqode/agents/client.py +249 -0
  17. superqode/agents/data/augmentcode.com.toml +51 -0
  18. superqode/agents/data/cagent.dev.toml +51 -0
  19. superqode/agents/data/claude.com.toml +60 -0
  20. superqode/agents/data/codeassistant.dev.toml +51 -0
  21. superqode/agents/data/codex.openai.com.toml +57 -0
  22. superqode/agents/data/fastagent.ai.toml +66 -0
  23. superqode/agents/data/geminicli.com.toml +77 -0
  24. superqode/agents/data/goose.block.xyz.toml +54 -0
  25. superqode/agents/data/junie.jetbrains.com.toml +56 -0
  26. superqode/agents/data/kimi.moonshot.cn.toml +57 -0
  27. superqode/agents/data/llmlingagent.dev.toml +51 -0
  28. superqode/agents/data/molt.bot.toml +49 -0
  29. superqode/agents/data/opencode.ai.toml +60 -0
  30. superqode/agents/data/stakpak.dev.toml +51 -0
  31. superqode/agents/data/vtcode.dev.toml +51 -0
  32. superqode/agents/discovery.py +266 -0
  33. superqode/agents/messaging.py +160 -0
  34. superqode/agents/persona.py +166 -0
  35. superqode/agents/registry.py +421 -0
  36. superqode/agents/schema.py +72 -0
  37. superqode/agents/unified.py +367 -0
  38. superqode/app/__init__.py +111 -0
  39. superqode/app/constants.py +314 -0
  40. superqode/app/css.py +366 -0
  41. superqode/app/models.py +118 -0
  42. superqode/app/suggester.py +125 -0
  43. superqode/app/widgets.py +1591 -0
  44. superqode/app_enhanced.py +399 -0
  45. superqode/app_main.py +17187 -0
  46. superqode/approval.py +312 -0
  47. superqode/atomic.py +296 -0
  48. superqode/commands/__init__.py +1 -0
  49. superqode/commands/acp.py +965 -0
  50. superqode/commands/agents.py +180 -0
  51. superqode/commands/auth.py +278 -0
  52. superqode/commands/config.py +374 -0
  53. superqode/commands/init.py +826 -0
  54. superqode/commands/providers.py +819 -0
  55. superqode/commands/qe.py +1145 -0
  56. superqode/commands/roles.py +380 -0
  57. superqode/commands/serve.py +172 -0
  58. superqode/commands/suggestions.py +127 -0
  59. superqode/commands/superqe.py +460 -0
  60. superqode/config/__init__.py +51 -0
  61. superqode/config/loader.py +812 -0
  62. superqode/config/schema.py +498 -0
  63. superqode/core/__init__.py +111 -0
  64. superqode/core/roles.py +281 -0
  65. superqode/danger.py +386 -0
  66. superqode/data/superqode-template.yaml +1522 -0
  67. superqode/design_system.py +1080 -0
  68. superqode/dialogs/__init__.py +6 -0
  69. superqode/dialogs/base.py +39 -0
  70. superqode/dialogs/model.py +130 -0
  71. superqode/dialogs/provider.py +870 -0
  72. superqode/diff_view.py +919 -0
  73. superqode/enterprise.py +21 -0
  74. superqode/evaluation/__init__.py +25 -0
  75. superqode/evaluation/adapters.py +93 -0
  76. superqode/evaluation/behaviors.py +89 -0
  77. superqode/evaluation/engine.py +209 -0
  78. superqode/evaluation/scenarios.py +96 -0
  79. superqode/execution/__init__.py +36 -0
  80. superqode/execution/linter.py +538 -0
  81. superqode/execution/modes.py +347 -0
  82. superqode/execution/resolver.py +283 -0
  83. superqode/execution/runner.py +642 -0
  84. superqode/file_explorer.py +811 -0
  85. superqode/file_viewer.py +471 -0
  86. superqode/flash.py +183 -0
  87. superqode/guidance/__init__.py +58 -0
  88. superqode/guidance/config.py +203 -0
  89. superqode/guidance/prompts.py +71 -0
  90. superqode/harness/__init__.py +54 -0
  91. superqode/harness/accelerator.py +291 -0
  92. superqode/harness/config.py +319 -0
  93. superqode/harness/validator.py +147 -0
  94. superqode/history.py +279 -0
  95. superqode/integrations/superopt_runner.py +124 -0
  96. superqode/logging/__init__.py +49 -0
  97. superqode/logging/adapters.py +219 -0
  98. superqode/logging/formatter.py +923 -0
  99. superqode/logging/integration.py +341 -0
  100. superqode/logging/sinks.py +170 -0
  101. superqode/logging/unified_log.py +417 -0
  102. superqode/lsp/__init__.py +26 -0
  103. superqode/lsp/client.py +544 -0
  104. superqode/main.py +1069 -0
  105. superqode/mcp/__init__.py +89 -0
  106. superqode/mcp/auth_storage.py +380 -0
  107. superqode/mcp/client.py +1236 -0
  108. superqode/mcp/config.py +319 -0
  109. superqode/mcp/integration.py +337 -0
  110. superqode/mcp/oauth.py +436 -0
  111. superqode/mcp/oauth_callback.py +385 -0
  112. superqode/mcp/types.py +290 -0
  113. superqode/memory/__init__.py +31 -0
  114. superqode/memory/feedback.py +342 -0
  115. superqode/memory/store.py +522 -0
  116. superqode/notifications.py +369 -0
  117. superqode/optimization/__init__.py +5 -0
  118. superqode/optimization/config.py +33 -0
  119. superqode/permissions/__init__.py +25 -0
  120. superqode/permissions/rules.py +488 -0
  121. superqode/plan.py +323 -0
  122. superqode/providers/__init__.py +33 -0
  123. superqode/providers/gateway/__init__.py +165 -0
  124. superqode/providers/gateway/base.py +228 -0
  125. superqode/providers/gateway/litellm_gateway.py +1170 -0
  126. superqode/providers/gateway/openresponses_gateway.py +436 -0
  127. superqode/providers/health.py +297 -0
  128. superqode/providers/huggingface/__init__.py +74 -0
  129. superqode/providers/huggingface/downloader.py +472 -0
  130. superqode/providers/huggingface/endpoints.py +442 -0
  131. superqode/providers/huggingface/hub.py +531 -0
  132. superqode/providers/huggingface/inference.py +394 -0
  133. superqode/providers/huggingface/transformers_runner.py +516 -0
  134. superqode/providers/local/__init__.py +100 -0
  135. superqode/providers/local/base.py +438 -0
  136. superqode/providers/local/discovery.py +418 -0
  137. superqode/providers/local/lmstudio.py +256 -0
  138. superqode/providers/local/mlx.py +457 -0
  139. superqode/providers/local/ollama.py +486 -0
  140. superqode/providers/local/sglang.py +268 -0
  141. superqode/providers/local/tgi.py +260 -0
  142. superqode/providers/local/tool_support.py +477 -0
  143. superqode/providers/local/vllm.py +258 -0
  144. superqode/providers/manager.py +1338 -0
  145. superqode/providers/models.py +1016 -0
  146. superqode/providers/models_dev.py +578 -0
  147. superqode/providers/openresponses/__init__.py +87 -0
  148. superqode/providers/openresponses/converters/__init__.py +17 -0
  149. superqode/providers/openresponses/converters/messages.py +343 -0
  150. superqode/providers/openresponses/converters/tools.py +268 -0
  151. superqode/providers/openresponses/schema/__init__.py +56 -0
  152. superqode/providers/openresponses/schema/models.py +585 -0
  153. superqode/providers/openresponses/streaming/__init__.py +5 -0
  154. superqode/providers/openresponses/streaming/parser.py +338 -0
  155. superqode/providers/openresponses/tools/__init__.py +21 -0
  156. superqode/providers/openresponses/tools/apply_patch.py +352 -0
  157. superqode/providers/openresponses/tools/code_interpreter.py +290 -0
  158. superqode/providers/openresponses/tools/file_search.py +333 -0
  159. superqode/providers/openresponses/tools/mcp_adapter.py +252 -0
  160. superqode/providers/registry.py +716 -0
  161. superqode/providers/usage.py +332 -0
  162. superqode/pure_mode.py +384 -0
  163. superqode/qr/__init__.py +23 -0
  164. superqode/qr/dashboard.py +781 -0
  165. superqode/qr/generator.py +1018 -0
  166. superqode/qr/templates.py +135 -0
  167. superqode/safety/__init__.py +41 -0
  168. superqode/safety/sandbox.py +413 -0
  169. superqode/safety/warnings.py +256 -0
  170. superqode/server/__init__.py +33 -0
  171. superqode/server/lsp_server.py +775 -0
  172. superqode/server/web.py +250 -0
  173. superqode/session/__init__.py +25 -0
  174. superqode/session/persistence.py +580 -0
  175. superqode/session/sharing.py +477 -0
  176. superqode/session.py +475 -0
  177. superqode/sidebar.py +2991 -0
  178. superqode/stream_view.py +648 -0
  179. superqode/styles/__init__.py +3 -0
  180. superqode/superqe/__init__.py +184 -0
  181. superqode/superqe/acp_runner.py +1064 -0
  182. superqode/superqe/constitution/__init__.py +62 -0
  183. superqode/superqe/constitution/evaluator.py +308 -0
  184. superqode/superqe/constitution/loader.py +432 -0
  185. superqode/superqe/constitution/schema.py +250 -0
  186. superqode/superqe/events.py +591 -0
  187. superqode/superqe/frameworks/__init__.py +65 -0
  188. superqode/superqe/frameworks/base.py +234 -0
  189. superqode/superqe/frameworks/e2e.py +263 -0
  190. superqode/superqe/frameworks/executor.py +237 -0
  191. superqode/superqe/frameworks/javascript.py +409 -0
  192. superqode/superqe/frameworks/python.py +373 -0
  193. superqode/superqe/frameworks/registry.py +92 -0
  194. superqode/superqe/mcp_tools/__init__.py +47 -0
  195. superqode/superqe/mcp_tools/core_tools.py +418 -0
  196. superqode/superqe/mcp_tools/registry.py +230 -0
  197. superqode/superqe/mcp_tools/testing_tools.py +167 -0
  198. superqode/superqe/noise.py +89 -0
  199. superqode/superqe/orchestrator.py +778 -0
  200. superqode/superqe/roles.py +609 -0
  201. superqode/superqe/session.py +713 -0
  202. superqode/superqe/skills/__init__.py +57 -0
  203. superqode/superqe/skills/base.py +106 -0
  204. superqode/superqe/skills/core_skills.py +899 -0
  205. superqode/superqe/skills/registry.py +90 -0
  206. superqode/superqe/verifier.py +101 -0
  207. superqode/superqe_cli.py +76 -0
  208. superqode/tool_call.py +358 -0
  209. superqode/tools/__init__.py +93 -0
  210. superqode/tools/agent_tools.py +496 -0
  211. superqode/tools/base.py +324 -0
  212. superqode/tools/batch_tool.py +133 -0
  213. superqode/tools/diagnostics.py +311 -0
  214. superqode/tools/edit_tools.py +653 -0
  215. superqode/tools/enhanced_base.py +515 -0
  216. superqode/tools/file_tools.py +269 -0
  217. superqode/tools/file_tracking.py +45 -0
  218. superqode/tools/lsp_tools.py +610 -0
  219. superqode/tools/network_tools.py +350 -0
  220. superqode/tools/permissions.py +400 -0
  221. superqode/tools/question_tool.py +324 -0
  222. superqode/tools/search_tools.py +598 -0
  223. superqode/tools/shell_tools.py +259 -0
  224. superqode/tools/todo_tools.py +121 -0
  225. superqode/tools/validation.py +80 -0
  226. superqode/tools/web_tools.py +639 -0
  227. superqode/tui.py +1152 -0
  228. superqode/tui_integration.py +875 -0
  229. superqode/tui_widgets/__init__.py +27 -0
  230. superqode/tui_widgets/widgets/__init__.py +18 -0
  231. superqode/tui_widgets/widgets/progress.py +185 -0
  232. superqode/tui_widgets/widgets/tool_display.py +188 -0
  233. superqode/undo_manager.py +574 -0
  234. superqode/utils/__init__.py +5 -0
  235. superqode/utils/error_handling.py +323 -0
  236. superqode/utils/fuzzy.py +257 -0
  237. superqode/widgets/__init__.py +477 -0
  238. superqode/widgets/agent_collab.py +390 -0
  239. superqode/widgets/agent_store.py +936 -0
  240. superqode/widgets/agent_switcher.py +395 -0
  241. superqode/widgets/animation_manager.py +284 -0
  242. superqode/widgets/code_context.py +356 -0
  243. superqode/widgets/command_palette.py +412 -0
  244. superqode/widgets/connection_status.py +537 -0
  245. superqode/widgets/conversation_history.py +470 -0
  246. superqode/widgets/diff_indicator.py +155 -0
  247. superqode/widgets/enhanced_status_bar.py +385 -0
  248. superqode/widgets/enhanced_toast.py +476 -0
  249. superqode/widgets/file_browser.py +809 -0
  250. superqode/widgets/file_reference.py +585 -0
  251. superqode/widgets/issue_timeline.py +340 -0
  252. superqode/widgets/leader_key.py +264 -0
  253. superqode/widgets/mode_switcher.py +445 -0
  254. superqode/widgets/model_picker.py +234 -0
  255. superqode/widgets/permission_preview.py +1205 -0
  256. superqode/widgets/prompt.py +358 -0
  257. superqode/widgets/provider_connect.py +725 -0
  258. superqode/widgets/pty_shell.py +587 -0
  259. superqode/widgets/qe_dashboard.py +321 -0
  260. superqode/widgets/resizable_sidebar.py +377 -0
  261. superqode/widgets/response_changes.py +218 -0
  262. superqode/widgets/response_display.py +528 -0
  263. superqode/widgets/rich_tool_display.py +613 -0
  264. superqode/widgets/sidebar_panels.py +1180 -0
  265. superqode/widgets/slash_complete.py +356 -0
  266. superqode/widgets/split_view.py +612 -0
  267. superqode/widgets/status_bar.py +273 -0
  268. superqode/widgets/superqode_display.py +786 -0
  269. superqode/widgets/thinking_display.py +815 -0
  270. superqode/widgets/throbber.py +87 -0
  271. superqode/widgets/toast.py +206 -0
  272. superqode/widgets/unified_output.py +1073 -0
  273. superqode/workspace/__init__.py +75 -0
  274. superqode/workspace/artifacts.py +472 -0
  275. superqode/workspace/coordinator.py +353 -0
  276. superqode/workspace/diff_tracker.py +429 -0
  277. superqode/workspace/git_guard.py +373 -0
  278. superqode/workspace/git_snapshot.py +526 -0
  279. superqode/workspace/manager.py +750 -0
  280. superqode/workspace/snapshot.py +357 -0
  281. superqode/workspace/watcher.py +535 -0
  282. superqode/workspace/worktree.py +440 -0
  283. superqode-0.1.5.dist-info/METADATA +204 -0
  284. superqode-0.1.5.dist-info/RECORD +288 -0
  285. superqode-0.1.5.dist-info/WHEEL +5 -0
  286. superqode-0.1.5.dist-info/entry_points.txt +3 -0
  287. superqode-0.1.5.dist-info/licenses/LICENSE +648 -0
  288. superqode-0.1.5.dist-info/top_level.txt +1 -0
@@ -0,0 +1,477 @@
1
+ """SuperQode Textual widgets.
2
+
3
+ Core widgets are imported directly. QE-specific and advanced widgets
4
+ are available via lazy imports for performance.
5
+ """
6
+
7
+ from superqode.widgets.status_bar import StatusBar
8
+ from superqode.widgets.slash_complete import SlashComplete
9
+ from superqode.widgets.prompt import SmartPrompt
10
+ from superqode.widgets.command_palette import CommandPalette
11
+ from superqode.widgets.agent_switcher import AgentSwitcher
12
+ from superqode.widgets.throbber import Throbber
13
+ from superqode.widgets.toast import Toast, ToastContainer
14
+
15
+ # Core widgets (always imported)
16
+ __all__ = [
17
+ # Core widgets
18
+ "StatusBar",
19
+ "SlashComplete",
20
+ "SmartPrompt",
21
+ "CommandPalette",
22
+ "AgentSwitcher",
23
+ "Throbber",
24
+ "Toast",
25
+ "ToastContainer",
26
+ # QE widgets (lazy loaded)
27
+ "get_qe_dashboard",
28
+ "get_agent_collab",
29
+ "get_issue_timeline",
30
+ "get_code_context",
31
+ "get_animation_manager",
32
+ # Advanced widgets (lazy loaded)
33
+ "get_pty_shell",
34
+ "get_permission_preview",
35
+ "get_enhanced_toast",
36
+ "get_mode_switcher",
37
+ # TUI Enhancement widgets (lazy loaded)
38
+ "get_rich_tool_display",
39
+ "get_thinking_display",
40
+ "get_response_display",
41
+ "get_connection_status",
42
+ "get_conversation_history",
43
+ "get_enhanced_status_bar",
44
+ # SuperQode unique widgets (lazy loaded)
45
+ "get_superqode_display",
46
+ "get_split_view",
47
+ "get_resizable_sidebar",
48
+ "get_sidebar_panels",
49
+ "get_file_reference",
50
+ "get_leader_key",
51
+ # Unified output display (recommended for new code)
52
+ "get_unified_output",
53
+ ]
54
+
55
+
56
+ # Lazy loaders for QE widgets (avoid import overhead until needed)
57
+ def get_qe_dashboard():
58
+ """Lazy load the QE Dashboard widget."""
59
+ from superqode.widgets.qe_dashboard import QEDashboard, QualityMetric
60
+
61
+ return QEDashboard, QualityMetric
62
+
63
+
64
+ def get_agent_collab():
65
+ """Lazy load the Agent Collaboration view widget."""
66
+ from superqode.widgets.agent_collab import AgentCollabView, AgentNode, AgentState
67
+
68
+ return AgentCollabView, AgentNode, AgentState
69
+
70
+
71
+ def get_issue_timeline():
72
+ """Lazy load the Issue Timeline widget."""
73
+ from superqode.widgets.issue_timeline import (
74
+ IssueTimeline,
75
+ CompactIssueTimeline,
76
+ DiscoveredIssue,
77
+ IssueSeverity,
78
+ IssueCategory,
79
+ )
80
+
81
+ return IssueTimeline, CompactIssueTimeline, DiscoveredIssue, IssueSeverity, IssueCategory
82
+
83
+
84
+ def get_code_context():
85
+ """Lazy load the Code Context viewer widget."""
86
+ from superqode.widgets.code_context import (
87
+ CodeContextViewer,
88
+ CompactCodeContext,
89
+ CodeContext,
90
+ CodeLine,
91
+ LineType,
92
+ )
93
+
94
+ return CodeContextViewer, CompactCodeContext, CodeContext, CodeLine, LineType
95
+
96
+
97
+ def get_animation_manager():
98
+ """Lazy load the Animation Manager."""
99
+ from superqode.widgets.animation_manager import (
100
+ AnimationManager,
101
+ AnimationConfig,
102
+ AnimatedWidget,
103
+ ThrottledRefreshMixin,
104
+ )
105
+
106
+ return AnimationManager, AnimationConfig, AnimatedWidget, ThrottledRefreshMixin
107
+
108
+
109
+ def get_pty_shell():
110
+ """Lazy load the PTY Shell widget."""
111
+ from superqode.widgets.pty_shell import (
112
+ PTYShell,
113
+ PTYShellWidget,
114
+ ShellManager,
115
+ )
116
+
117
+ return PTYShell, PTYShellWidget, ShellManager
118
+
119
+
120
+ def get_permission_preview():
121
+ """Lazy load the Permission Preview widget."""
122
+ from superqode.widgets.permission_preview import (
123
+ PermissionPreview,
124
+ PermissionPreviewScreen,
125
+ PermissionContext,
126
+ PreviewType,
127
+ create_file_write_preview,
128
+ create_command_preview,
129
+ )
130
+
131
+ return (
132
+ PermissionPreview,
133
+ PermissionPreviewScreen,
134
+ PermissionContext,
135
+ PreviewType,
136
+ create_file_write_preview,
137
+ create_command_preview,
138
+ )
139
+
140
+
141
+ def get_enhanced_toast():
142
+ """Lazy load the Enhanced Toast system."""
143
+ from superqode.widgets.enhanced_toast import (
144
+ ToastType,
145
+ ToastConfig,
146
+ ToastWidget,
147
+ ToastContainer as EnhancedToastContainer,
148
+ toast_success,
149
+ toast_warning,
150
+ toast_error,
151
+ toast_info,
152
+ toast_progress,
153
+ )
154
+
155
+ return (
156
+ ToastType,
157
+ ToastConfig,
158
+ ToastWidget,
159
+ EnhancedToastContainer,
160
+ toast_success,
161
+ toast_warning,
162
+ toast_error,
163
+ toast_info,
164
+ toast_progress,
165
+ )
166
+
167
+
168
+ def get_mode_switcher():
169
+ """Lazy load the Mode Switcher widget."""
170
+ from superqode.widgets.mode_switcher import (
171
+ AppMode,
172
+ ModeSwitcher,
173
+ ModeIndicator,
174
+ ModeTransition,
175
+ MODES,
176
+ )
177
+
178
+ return AppMode, ModeSwitcher, ModeIndicator, ModeTransition, MODES
179
+
180
+
181
+ def get_rich_tool_display():
182
+ """Lazy load the Rich Tool Display widgets."""
183
+ from superqode.widgets.rich_tool_display import (
184
+ ToolCallPanel,
185
+ SingleToolDisplay,
186
+ ToolCallData,
187
+ ToolKind,
188
+ ToolState,
189
+ CompactToolIndicator,
190
+ create_file_read_tool,
191
+ create_file_write_tool,
192
+ create_shell_tool,
193
+ create_search_tool,
194
+ )
195
+
196
+ return (
197
+ ToolCallPanel,
198
+ SingleToolDisplay,
199
+ ToolCallData,
200
+ ToolKind,
201
+ ToolState,
202
+ CompactToolIndicator,
203
+ create_file_read_tool,
204
+ create_file_write_tool,
205
+ create_shell_tool,
206
+ create_search_tool,
207
+ )
208
+
209
+
210
+ def get_thinking_display():
211
+ """Lazy load the Thinking Display widgets."""
212
+ from superqode.widgets.thinking_display import (
213
+ ThinkingPanel,
214
+ ExtendedThinkingPanel,
215
+ ThinkingIndicator,
216
+ ThoughtChunk,
217
+ ThoughtType,
218
+ UnifiedThinkingManager,
219
+ ThinkingSource,
220
+ ThinkingStats,
221
+ )
222
+
223
+ return (
224
+ ThinkingPanel,
225
+ ExtendedThinkingPanel,
226
+ ThinkingIndicator,
227
+ ThoughtChunk,
228
+ ThoughtType,
229
+ UnifiedThinkingManager,
230
+ ThinkingSource,
231
+ ThinkingStats,
232
+ )
233
+
234
+
235
+ def get_response_display():
236
+ """Lazy load the Response Display widgets."""
237
+ from superqode.widgets.response_display import (
238
+ ResponseDisplay,
239
+ StreamingText,
240
+ CodeBlockWidget,
241
+ ParsedResponse,
242
+ ResponseState,
243
+ )
244
+
245
+ return ResponseDisplay, StreamingText, CodeBlockWidget, ParsedResponse, ResponseState
246
+
247
+
248
+ def get_connection_status():
249
+ """Lazy load the Connection Status widgets."""
250
+ from superqode.widgets.connection_status import (
251
+ ConnectionIndicator,
252
+ ConnectionPanel,
253
+ ModelSelector,
254
+ ConnectionInfo,
255
+ ConnectionType,
256
+ ConnectionState,
257
+ TokenUsage,
258
+ )
259
+
260
+ return (
261
+ ConnectionIndicator,
262
+ ConnectionPanel,
263
+ ModelSelector,
264
+ ConnectionInfo,
265
+ ConnectionType,
266
+ ConnectionState,
267
+ TokenUsage,
268
+ )
269
+
270
+
271
+ def get_conversation_history():
272
+ """Lazy load the Conversation History widgets."""
273
+ from superqode.widgets.conversation_history import (
274
+ ConversationTimeline,
275
+ MessageDetail,
276
+ ConversationNavigator,
277
+ HistoryMessage,
278
+ MessageType,
279
+ )
280
+
281
+ return ConversationTimeline, MessageDetail, ConversationNavigator, HistoryMessage, MessageType
282
+
283
+
284
+ def get_enhanced_status_bar():
285
+ """Lazy load the Enhanced Status Bar."""
286
+ from superqode.widgets.enhanced_status_bar import (
287
+ EnhancedStatusBar,
288
+ MiniStatusIndicator,
289
+ StatusBarState,
290
+ AgentStatus,
291
+ create_default_status_bar,
292
+ )
293
+
294
+ return (
295
+ EnhancedStatusBar,
296
+ MiniStatusIndicator,
297
+ StatusBarState,
298
+ AgentStatus,
299
+ create_default_status_bar,
300
+ )
301
+
302
+
303
+ def get_superqode_display():
304
+ """Lazy load the SuperQode Display widgets (unique design system)."""
305
+ from superqode.widgets.superqode_display import (
306
+ EnhancedStatusHeader,
307
+ EnhancedToolPanel,
308
+ EnhancedThinkingBar,
309
+ ToolStatus,
310
+ AgentState,
311
+ ToolCallInfo,
312
+ SessionStats,
313
+ show_agent_header,
314
+ show_tool_call,
315
+ show_thinking,
316
+ show_response,
317
+ show_completion_summary,
318
+ )
319
+
320
+ return (
321
+ EnhancedStatusHeader,
322
+ EnhancedToolPanel,
323
+ EnhancedThinkingBar,
324
+ ToolStatus,
325
+ AgentState,
326
+ ToolCallInfo,
327
+ SessionStats,
328
+ show_agent_header,
329
+ show_tool_call,
330
+ show_thinking,
331
+ show_response,
332
+ show_completion_summary,
333
+ )
334
+
335
+
336
+ def get_split_view():
337
+ """Lazy load the Split View widget."""
338
+ from superqode.widgets.split_view import (
339
+ SplitView,
340
+ CodeViewer,
341
+ TabBar,
342
+ FileTab,
343
+ SplitDivider,
344
+ )
345
+
346
+ return SplitView, CodeViewer, TabBar, FileTab, SplitDivider
347
+
348
+
349
+ def get_resizable_sidebar():
350
+ """Lazy load the Resizable Sidebar components."""
351
+ from superqode.widgets.resizable_sidebar import (
352
+ ResizableDivider,
353
+ ResizableSidebarContainer,
354
+ SidebarTabBar,
355
+ )
356
+
357
+ return ResizableDivider, ResizableSidebarContainer, SidebarTabBar
358
+
359
+
360
+ def get_sidebar_panels():
361
+ """Lazy load the Sidebar Panel widgets."""
362
+ from superqode.widgets.sidebar_panels import (
363
+ AgentPanel,
364
+ ContextPanel,
365
+ TerminalPanel,
366
+ DiffPanel,
367
+ HistoryPanel,
368
+ AgentInfo,
369
+ ContextFile,
370
+ FileDiff,
371
+ HistoryMessage,
372
+ )
373
+
374
+ return (
375
+ AgentPanel,
376
+ ContextPanel,
377
+ TerminalPanel,
378
+ DiffPanel,
379
+ HistoryPanel,
380
+ AgentInfo,
381
+ ContextFile,
382
+ FileDiff,
383
+ HistoryMessage,
384
+ )
385
+
386
+
387
+ def get_file_reference():
388
+ """Lazy load the File Reference widgets."""
389
+ from superqode.widgets.file_reference import (
390
+ FileAutocomplete,
391
+ FileReferenceInput,
392
+ FileScanner,
393
+ parse_file_references,
394
+ expand_file_references,
395
+ format_file_context,
396
+ )
397
+
398
+ return (
399
+ FileAutocomplete,
400
+ FileReferenceInput,
401
+ FileScanner,
402
+ parse_file_references,
403
+ expand_file_references,
404
+ format_file_context,
405
+ )
406
+
407
+
408
+ def get_leader_key():
409
+ """Lazy load the Leader Key widgets."""
410
+ from superqode.widgets.leader_key import (
411
+ LeaderKeyPopup,
412
+ LeaderKeyMixin,
413
+ LEADER_KEYS,
414
+ )
415
+
416
+ return LeaderKeyPopup, LeaderKeyMixin, LEADER_KEYS
417
+
418
+
419
+ def get_unified_output():
420
+ """
421
+ Lazy load the Unified Output Display.
422
+
423
+ This is the recommended widget for displaying agent output.
424
+ It works consistently across BYOK, ACP, and Local modes,
425
+ and supports copy to clipboard.
426
+
427
+ Usage:
428
+ (
429
+ UnifiedOutputDisplay,
430
+ ThinkingSection,
431
+ ResponseSection,
432
+ OutputMode,
433
+ OutputStats,
434
+ copy_to_clipboard,
435
+ ) = get_unified_output()
436
+
437
+ # In your app
438
+ output = UnifiedOutputDisplay(mode=OutputMode.BYOK)
439
+ output.set_agent_info("Claude", "claude-3-opus")
440
+ output.start_session()
441
+
442
+ # Handle streaming
443
+ output.start_thinking()
444
+ output.append_thinking("Analyzing the code...")
445
+ output.complete_thinking()
446
+
447
+ output.start_response()
448
+ output.append_response("Here's what I found...")
449
+ output.complete_response(prompt_tokens=100, completion_tokens=500)
450
+ """
451
+ from superqode.widgets.unified_output import (
452
+ UnifiedOutputDisplay,
453
+ ThinkingSection,
454
+ ResponseSection,
455
+ OutputMode,
456
+ OutputState,
457
+ OutputStats,
458
+ ThinkingEntry,
459
+ Theme,
460
+ CopyRequested,
461
+ CopyComplete,
462
+ copy_to_clipboard,
463
+ )
464
+
465
+ return (
466
+ UnifiedOutputDisplay,
467
+ ThinkingSection,
468
+ ResponseSection,
469
+ OutputMode,
470
+ OutputState,
471
+ OutputStats,
472
+ ThinkingEntry,
473
+ Theme,
474
+ CopyRequested,
475
+ CopyComplete,
476
+ copy_to_clipboard,
477
+ )