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.
Files changed (73) hide show
  1. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/PKG-INFO +2 -2
  2. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/__init__.py +1 -1
  3. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/ui/console.py +34 -14
  4. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent_cli.egg-info/PKG-INFO +2 -2
  5. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/pyproject.toml +2 -2
  6. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/README.md +0 -0
  7. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/agent/confidence.py +0 -0
  8. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/agent/conversation.py +0 -0
  9. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/agent/doctor.py +0 -0
  10. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/agent/error_classifier.py +0 -0
  11. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/agent/generator.py +0 -0
  12. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/agent/pipeline.py +0 -0
  13. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/agent/recommender.py +0 -0
  14. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/agent/validator.py +0 -0
  15. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/cli.py +0 -0
  16. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/config.py +0 -0
  17. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/connectors/base.py +0 -0
  18. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/connectors/factory.py +0 -0
  19. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/connectors/mongo.py +0 -0
  20. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/connectors/relational.py +0 -0
  21. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/execution/__init__.py +0 -0
  22. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/execution/cache.py +0 -0
  23. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/execution/changeset.py +0 -0
  24. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/execution/cost.py +0 -0
  25. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/execution/recovery.py +0 -0
  26. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/execution/sandbox.py +0 -0
  27. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/execution/streaming.py +0 -0
  28. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/llm/auto_setup.py +0 -0
  29. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/llm/base.py +0 -0
  30. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/llm/factory.py +0 -0
  31. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/llm/gemini_provider.py +0 -0
  32. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/llm/groq_provider.py +0 -0
  33. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/llm/mock_provider.py +0 -0
  34. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/llm/ollama_provider.py +0 -0
  35. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/llm/openrouter_provider.py +0 -0
  36. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/schema/cache.py +0 -0
  37. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/schema/formatter.py +0 -0
  38. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/schema/graph.py +0 -0
  39. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/schema/models.py +0 -0
  40. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/schema/retriever.py +0 -0
  41. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/schema/selector.py +0 -0
  42. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/security/__init__.py +0 -0
  43. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/security/audit.py +0 -0
  44. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/security/environment.py +0 -0
  45. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/security/masking.py +0 -0
  46. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/security/modes.py +0 -0
  47. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/security/rbac.py +0 -0
  48. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/semantic/__init__.py +0 -0
  49. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/semantic/dictionary.py +0 -0
  50. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/semantic/templates.py +0 -0
  51. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/sql/__init__.py +0 -0
  52. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/sql/optimizer.py +0 -0
  53. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/sql/validator.py +0 -0
  54. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/ui/viewer.py +0 -0
  55. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent/ui/visualizer.py +0 -0
  56. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent_cli.egg-info/SOURCES.txt +0 -0
  57. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent_cli.egg-info/dependency_links.txt +0 -0
  58. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent_cli.egg-info/entry_points.txt +0 -0
  59. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent_cli.egg-info/requires.txt +0 -0
  60. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/dbagent_cli.egg-info/top_level.txt +0 -0
  61. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/setup.cfg +0 -0
  62. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/tests/test_cache.py +0 -0
  63. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/tests/test_cli.py +0 -0
  64. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/tests/test_connectors.py +0 -0
  65. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/tests/test_doctor_and_viz.py +0 -0
  66. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/tests/test_generator.py +0 -0
  67. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/tests/test_graph.py +0 -0
  68. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/tests/test_recovery.py +0 -0
  69. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/tests/test_safety.py +0 -0
  70. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/tests/test_sandbox.py +0 -0
  71. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/tests/test_schema.py +0 -0
  72. {dbagent_cli-0.3.6 → dbagent_cli-0.3.7}/tests/test_security.py +0 -0
  73. {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.6
4
- Summary: Production-Grade AI Database Copilot with Interactive Multi-Column Scroller & High-Speed Inference (CLI)
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
@@ -2,5 +2,5 @@
2
2
  DB-Agent: Universal Database Introspection and Script Generation AI Agent (CLI).
3
3
  """
4
4
 
5
- __version__ = "0.3.6"
5
+ __version__ = "0.3.7"
6
6
  __author__ = "Santhosh Gupta"
@@ -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
- Opens full multi-column table in an interactive terminal scroller / pager (supports arrow navigation).
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
- table = Table(title=f"All Results ({len(columns)} columns, {len(rows)} rows)", show_header=True, header_style="bold cyan")
145
- for col in columns:
146
- table.add_column(str(col), overflow="fold")
147
-
148
- for row in rows:
149
- row_vals = []
150
- for col in columns:
151
- v = row.get(col)
152
- row_vals.append(str(v) if v is not None else "NULL")
153
- table.add_row(*row_vals)
154
-
155
- with console.pager(styles=True):
156
- console.print(table)
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.6
4
- Summary: Production-Grade AI Database Copilot with Interactive Multi-Column Scroller & High-Speed Inference (CLI)
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.6"
8
- description = "Production-Grade AI Database Copilot with Interactive Multi-Column Scroller & High-Speed Inference (CLI)"
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