dbagent-cli 0.3.6__tar.gz → 0.3.7__tar.gz
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.
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/PKG-INFO +2 -2
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/__init__.py +1 -1
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/ui/console.py +34 -14
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent_cli.egg-info/PKG-INFO +2 -2
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/pyproject.toml +2 -2
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/README.md +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/agent/confidence.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/agent/conversation.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/agent/doctor.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/agent/error_classifier.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/agent/generator.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/agent/pipeline.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/agent/recommender.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/agent/validator.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/cli.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/config.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/connectors/base.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/connectors/factory.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/connectors/mongo.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/connectors/relational.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/execution/__init__.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/execution/cache.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/execution/changeset.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/execution/cost.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/execution/recovery.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/execution/sandbox.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/execution/streaming.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/llm/auto_setup.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/llm/base.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/llm/factory.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/llm/gemini_provider.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/llm/groq_provider.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/llm/mock_provider.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/llm/ollama_provider.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/llm/openrouter_provider.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/schema/cache.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/schema/formatter.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/schema/graph.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/schema/models.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/schema/retriever.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/schema/selector.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/security/__init__.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/security/audit.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/security/environment.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/security/masking.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/security/modes.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/security/rbac.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/semantic/__init__.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/semantic/dictionary.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/semantic/templates.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/sql/__init__.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/sql/optimizer.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/sql/validator.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/ui/viewer.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/ui/visualizer.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent_cli.egg-info/SOURCES.txt +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent_cli.egg-info/dependency_links.txt +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent_cli.egg-info/entry_points.txt +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent_cli.egg-info/requires.txt +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent_cli.egg-info/top_level.txt +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/setup.cfg +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/tests/test_cache.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/tests/test_cli.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/tests/test_connectors.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/tests/test_doctor_and_viz.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/tests/test_generator.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/tests/test_graph.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/tests/test_recovery.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/tests/test_safety.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/tests/test_sandbox.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/tests/test_schema.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/tests/test_security.py +0 -0
- {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/tests/test_semantic.py +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dbagent-cli
|
|
3
|
-
Version: 0.3.
|
|
4
|
-
Summary: Production-Grade AI Database Copilot with
|
|
3
|
+
Version: 0.3.7
|
|
4
|
+
Summary: Production-Grade AI Database Copilot with Seamless Column Scroller (CLI)
|
|
5
5
|
Author: Santhosh Gupta
|
|
6
6
|
Requires-Python: >=3.9
|
|
7
7
|
Description-Content-Type: text/markdown
|
|
@@ -135,22 +135,42 @@ def print_results_vertical(
|
|
|
135
135
|
|
|
136
136
|
def open_interactive_scroller(columns: List[str], rows: List[Dict[str, Any]]) -> None:
|
|
137
137
|
"""
|
|
138
|
-
|
|
138
|
+
Interactive Column Scroller allowing seamless navigation through wide tables.
|
|
139
139
|
"""
|
|
140
140
|
if not columns or not rows:
|
|
141
141
|
console.print("[dim]No data to display.[/dim]\n")
|
|
142
142
|
return
|
|
143
143
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
144
|
+
cols_per_page = 6
|
|
145
|
+
total_cols = len(columns)
|
|
146
|
+
total_pages = max(1, math.ceil(total_cols / cols_per_page))
|
|
147
|
+
current_page = 1
|
|
148
|
+
|
|
149
|
+
from rich.prompt import Prompt
|
|
150
|
+
|
|
151
|
+
console.print(f"\n[bold cyan]─── Interactive Multi-Column Scroller ({total_cols} columns, {len(rows)} rows) ───[/bold cyan]")
|
|
152
|
+
while True:
|
|
153
|
+
print_results_table(columns, rows, title="Column Scroller", col_page=current_page, cols_per_page=cols_per_page)
|
|
154
|
+
|
|
155
|
+
console.print(f"[bold cyan]Scroller Navigation:[/bold cyan] [bold]n[/bold]=Next Cols | [bold]p[/bold]=Prev Cols | [bold]1-{total_pages}[/bold]=Jump to Page | [bold]c[/bold]=Vertical Cards | [bold]q[/bold]=Exit Scroller")
|
|
156
|
+
choice = Prompt.ask("[dim]scroller>[/dim]", default="n").strip().lower()
|
|
157
|
+
|
|
158
|
+
if choice in ("q", "quit", "exit", "back"):
|
|
159
|
+
console.print("[dim]Exited scroller.[/dim]\n")
|
|
160
|
+
break
|
|
161
|
+
elif choice in ("n", "next", ""):
|
|
162
|
+
current_page = 1 if current_page >= total_pages else current_page + 1
|
|
163
|
+
elif choice in ("p", "prev", "previous"):
|
|
164
|
+
current_page = total_pages if current_page <= 1 else current_page - 1
|
|
165
|
+
elif choice in ("c", "card", "v", "vertical"):
|
|
166
|
+
print_results_vertical(columns, rows)
|
|
167
|
+
Prompt.ask("[dim]Press Enter to return to scroller...[/dim]")
|
|
168
|
+
else:
|
|
169
|
+
try:
|
|
170
|
+
page_num = int(choice)
|
|
171
|
+
if 1 <= page_num <= total_pages:
|
|
172
|
+
current_page = page_num
|
|
173
|
+
else:
|
|
174
|
+
console.print(f"[yellow]Invalid page. Please choose between 1 and {total_pages}.[/yellow]")
|
|
175
|
+
except ValueError:
|
|
176
|
+
pass
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dbagent-cli
|
|
3
|
-
Version: 0.3.
|
|
4
|
-
Summary: Production-Grade AI Database Copilot with
|
|
3
|
+
Version: 0.3.7
|
|
4
|
+
Summary: Production-Grade AI Database Copilot with Seamless Column Scroller (CLI)
|
|
5
5
|
Author: Santhosh Gupta
|
|
6
6
|
Requires-Python: >=3.9
|
|
7
7
|
Description-Content-Type: text/markdown
|
|
@@ -4,8 +4,8 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "dbagent-cli"
|
|
7
|
-
version = "0.3.
|
|
8
|
-
description = "Production-Grade AI Database Copilot with
|
|
7
|
+
version = "0.3.7"
|
|
8
|
+
description = "Production-Grade AI Database Copilot with Seamless Column Scroller (CLI)"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.9"
|
|
11
11
|
authors = [
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|