dbagent-cli 0.8.5__tar.gz → 0.8.6__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 (81) hide show
  1. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/PKG-INFO +1 -1
  2. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/__init__.py +1 -1
  3. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/ui/chat_screen.py +16 -17
  4. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent_cli.egg-info/PKG-INFO +1 -1
  5. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/pyproject.toml +1 -1
  6. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/README.md +0 -0
  7. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/agent/confidence.py +0 -0
  8. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/agent/conversation.py +0 -0
  9. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/agent/doctor.py +0 -0
  10. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/agent/error_classifier.py +0 -0
  11. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/agent/generator.py +0 -0
  12. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/agent/pipeline.py +0 -0
  13. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/agent/recommender.py +0 -0
  14. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/agent/validator.py +0 -0
  15. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/cli.py +0 -0
  16. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/config.py +0 -0
  17. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/connectors/base.py +0 -0
  18. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/connectors/factory.py +0 -0
  19. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/connectors/mongo.py +0 -0
  20. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/connectors/relational.py +0 -0
  21. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/execution/__init__.py +0 -0
  22. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/execution/cache.py +0 -0
  23. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/execution/changeset.py +0 -0
  24. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/execution/cost.py +0 -0
  25. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/execution/recovery.py +0 -0
  26. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/execution/sandbox.py +0 -0
  27. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/execution/streaming.py +0 -0
  28. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/llm/anthropic_provider.py +0 -0
  29. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/llm/auto_setup.py +0 -0
  30. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/llm/base.py +0 -0
  31. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/llm/deepseek_provider.py +0 -0
  32. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/llm/factory.py +0 -0
  33. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/llm/gemini_provider.py +0 -0
  34. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/llm/groq_provider.py +0 -0
  35. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/llm/mistral_provider.py +0 -0
  36. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/llm/mock_provider.py +0 -0
  37. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/llm/ollama_provider.py +0 -0
  38. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/llm/openai_provider.py +0 -0
  39. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/llm/openrouter_provider.py +0 -0
  40. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/schema/cache.py +0 -0
  41. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/schema/formatter.py +0 -0
  42. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/schema/graph.py +0 -0
  43. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/schema/models.py +0 -0
  44. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/schema/retriever.py +0 -0
  45. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/schema/selector.py +0 -0
  46. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/security/__init__.py +0 -0
  47. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/security/audit.py +0 -0
  48. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/security/environment.py +0 -0
  49. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/security/masking.py +0 -0
  50. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/security/modes.py +0 -0
  51. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/security/rbac.py +0 -0
  52. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/semantic/__init__.py +0 -0
  53. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/semantic/dictionary.py +0 -0
  54. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/semantic/templates.py +0 -0
  55. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/sql/__init__.py +0 -0
  56. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/sql/optimizer.py +0 -0
  57. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/sql/validator.py +0 -0
  58. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/ui/console.py +0 -0
  59. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/ui/grid_window.py +0 -0
  60. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/ui/viewer.py +0 -0
  61. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent/ui/visualizer.py +0 -0
  62. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent_cli.egg-info/SOURCES.txt +0 -0
  63. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent_cli.egg-info/dependency_links.txt +0 -0
  64. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent_cli.egg-info/entry_points.txt +0 -0
  65. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent_cli.egg-info/requires.txt +0 -0
  66. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/dbagent_cli.egg-info/top_level.txt +0 -0
  67. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/setup.cfg +0 -0
  68. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/tests/test_cache.py +0 -0
  69. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/tests/test_cli.py +0 -0
  70. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/tests/test_connectors.py +0 -0
  71. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/tests/test_direct_sql.py +0 -0
  72. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/tests/test_doctor_and_viz.py +0 -0
  73. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/tests/test_generator.py +0 -0
  74. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/tests/test_graph.py +0 -0
  75. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/tests/test_providers.py +0 -0
  76. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/tests/test_recovery.py +0 -0
  77. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/tests/test_safety.py +0 -0
  78. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/tests/test_sandbox.py +0 -0
  79. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/tests/test_schema.py +0 -0
  80. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/tests/test_security.py +0 -0
  81. {dbagent_cli-0.8.5 → dbagent_cli-0.8.6}/tests/test_semantic.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dbagent-cli
3
- Version: 0.8.5
3
+ Version: 0.8.6
4
4
  Summary: Enterprise AI Database Copilot, Schema Graph Introspector & Autonomous Recovery Agent (CLI)
5
5
  Author: Santhosh Gupta
6
6
  Requires-Python: >=3.9
@@ -2,5 +2,5 @@
2
2
  DB-Agent: Universal Database Introspection and Script Generation AI Agent (CLI).
3
3
  """
4
4
 
5
- __version__ = "0.8.5"
5
+ __version__ = "0.8.6"
6
6
  __author__ = "Santhosh Gupta"
@@ -91,13 +91,12 @@ def render_chat_header(
91
91
 
92
92
 
93
93
  def render_user_turn(user_prompt: str) -> None:
94
- """Render a user turn message bubble/card."""
95
- user_text = Text()
96
- user_text.append("💬 You: ", style="bold blue")
97
- user_text.append(user_prompt, style="bold white")
94
+ """Render a clean highlighted user prompt bar like Claude Code."""
98
95
  console.print("")
99
- console.print(Rule(style="dim blue"))
100
- console.print(user_text)
96
+ prompt_text = Text()
97
+ prompt_text.append("❯ ", style="bold cyan")
98
+ prompt_text.append(f"{user_prompt}", style="bold white")
99
+ console.print(Panel(prompt_text, box=None, style="on grey15", padding=(0, 1)))
101
100
 
102
101
 
103
102
  def render_assistant_turn(
@@ -107,38 +106,38 @@ def render_assistant_turn(
107
106
  ai_model: Optional[str] = None,
108
107
  ) -> None:
109
108
  """Render the assistant response card with SQL, data grid, and execution timing."""
109
+ timing_str = f"⚡ {result.execution_time_ms / 1000:.2f}s" if result.execution_time_ms > 0 else ""
110
+
110
111
  if result.is_direct_sql and result.retries == 0:
111
- agent_title = "[bold cyan]🤖 DB-Agent[/bold cyan] [dim](Direct SQL • 0 tokens)[/dim]"
112
+ agent_title = f"[bold cyan] DB-Agent[/bold cyan] [dim](Direct SQL • 0 tokens · {timing_str})[/dim]"
112
113
  else:
113
114
  model_display = f" ({ai_model})" if ai_model else ""
114
- agent_title = f"[bold cyan]🤖 DB-Agent{model_display}[/bold cyan]"
115
-
116
- timing_str = f"⚡ {result.execution_time_ms / 1000:.2f}s" if result.execution_time_ms > 0 else ""
115
+ agent_title = f"[bold cyan] DB-Agent{model_display}[/bold cyan] [dim]{timing_str}[/dim]"
117
116
 
118
117
  # Conversational Chat Response
119
118
  if result.is_chat and result.message:
120
- console.print(f"\n{agent_title} [dim]{timing_str}[/dim]")
119
+ console.print(f"\n{agent_title}")
121
120
  console.print(Markdown(result.message))
122
121
  console.print("")
123
122
  return
124
123
 
125
124
  # Error Response
126
125
  if result.error:
127
- console.print(f"\n[bold red]🤖 DB-Agent (Error)[/bold red] [dim]{timing_str}[/dim]")
126
+ console.print(f"\n[bold red] DB-Agent (Error)[/bold red] [dim]{timing_str}[/dim]")
128
127
  if result.friendly_error:
129
- print_error(result.friendly_error)
128
+ console.print(f" [dim]└[/dim] [bold yellow]{result.friendly_error}[/bold yellow]")
130
129
  else:
131
- print_error(f"Error: {result.error}")
130
+ console.print(f" [dim]└[/dim] [bold red]{result.error}[/bold red]")
132
131
 
133
132
  if result.error_suggestions:
134
- console.print(f"[dim]Did you mean: {', '.join(result.error_suggestions)}[/dim]")
133
+ console.print(f" [dim]Did you mean: {', '.join(result.error_suggestions)}[/dim]")
135
134
 
136
135
  if result.sql:
137
- console.print("[dim]Generated SQL:[/dim]")
136
+ console.print(" [dim]Generated SQL:[/dim]")
138
137
  syntax = Syntax(result.sql.strip(), "sql", theme="monokai", line_numbers=False)
139
138
  console.print(Panel(syntax, border_style="red", padding=(0, 1)))
140
139
  if result.retries > 0:
141
- console.print(f"[dim](Retried {result.retries} time(s))[/dim]")
140
+ console.print(f" [dim](Retried {result.retries} time(s))[/dim]")
142
141
  console.print("")
143
142
  return
144
143
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dbagent-cli
3
- Version: 0.8.5
3
+ Version: 0.8.6
4
4
  Summary: Enterprise AI Database Copilot, Schema Graph Introspector & Autonomous Recovery Agent (CLI)
5
5
  Author: Santhosh Gupta
6
6
  Requires-Python: >=3.9
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "dbagent-cli"
7
- version = "0.8.5"
7
+ version = "0.8.6"
8
8
  description = "Enterprise AI Database Copilot, Schema Graph Introspector & Autonomous Recovery Agent (CLI)"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
File without changes
File without changes
File without changes