sqlsaber 0.8.1__tar.gz → 0.8.2__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.

Potentially problematic release.


This version of sqlsaber might be problematic. Click here for more details.

Files changed (66) hide show
  1. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/CHANGELOG.md +7 -0
  2. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/PKG-INFO +1 -1
  3. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/pyproject.toml +1 -1
  4. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/cli/display.py +7 -5
  5. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/cli/interactive.py +9 -2
  6. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/uv.lock +1 -1
  7. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/.github/workflows/publish.yml +0 -0
  8. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/.gitignore +0 -0
  9. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/.python-version +0 -0
  10. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/CLAUDE.md +0 -0
  11. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/LICENSE +0 -0
  12. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/README.md +0 -0
  13. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/pytest.ini +0 -0
  14. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/sqlsaber.svg +0 -0
  15. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/__init__.py +0 -0
  16. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/__main__.py +0 -0
  17. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/agents/__init__.py +0 -0
  18. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/agents/anthropic.py +0 -0
  19. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/agents/base.py +0 -0
  20. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/agents/mcp.py +0 -0
  21. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/agents/streaming.py +0 -0
  22. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/cli/__init__.py +0 -0
  23. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/cli/auth.py +0 -0
  24. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/cli/commands.py +0 -0
  25. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/cli/completers.py +0 -0
  26. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/cli/database.py +0 -0
  27. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/cli/memory.py +0 -0
  28. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/cli/models.py +0 -0
  29. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/cli/streaming.py +0 -0
  30. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/clients/__init__.py +0 -0
  31. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/clients/anthropic.py +0 -0
  32. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/clients/base.py +0 -0
  33. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/clients/exceptions.py +0 -0
  34. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/clients/models.py +0 -0
  35. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/clients/streaming.py +0 -0
  36. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/config/__init__.py +0 -0
  37. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/config/api_keys.py +0 -0
  38. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/config/auth.py +0 -0
  39. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/config/database.py +0 -0
  40. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/config/oauth_flow.py +0 -0
  41. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/config/oauth_tokens.py +0 -0
  42. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/config/settings.py +0 -0
  43. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/database/__init__.py +0 -0
  44. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/database/connection.py +0 -0
  45. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/database/schema.py +0 -0
  46. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/mcp/__init__.py +0 -0
  47. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/mcp/mcp.py +0 -0
  48. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/memory/__init__.py +0 -0
  49. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/memory/manager.py +0 -0
  50. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/memory/storage.py +0 -0
  51. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/models/__init__.py +0 -0
  52. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/models/events.py +0 -0
  53. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/src/sqlsaber/models/types.py +0 -0
  54. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/tests/__init__.py +0 -0
  55. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/tests/conftest.py +0 -0
  56. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/tests/test_agents/test_anthropic_oauth.py +0 -0
  57. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/tests/test_cli/__init__.py +0 -0
  58. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/tests/test_cli/test_commands.py +0 -0
  59. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/tests/test_clients/test_anthropic_client.py +0 -0
  60. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/tests/test_clients/test_streaming.py +0 -0
  61. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/tests/test_config/__init__.py +0 -0
  62. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/tests/test_config/test_database.py +0 -0
  63. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/tests/test_config/test_oauth.py +0 -0
  64. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/tests/test_config/test_settings.py +0 -0
  65. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/tests/test_database/__init__.py +0 -0
  66. {sqlsaber-0.8.1 → sqlsaber-0.8.2}/tests/test_database/test_connection.py +0 -0
@@ -4,6 +4,13 @@ All notable changes to SQLSaber will be documented in this file.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.8.2] - 2025-07-08
8
+
9
+ ## Changed
10
+
11
+ - Updated formatting for final answer display
12
+ - New ASCII art in interactive mode
13
+
7
14
  ## [0.8.1] - 2025-07-07
8
15
 
9
16
  ### Fixed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlsaber
3
- Version: 0.8.1
3
+ Version: 0.8.2
4
4
  Summary: SQLSaber - Agentic SQL assistant like Claude Code
5
5
  License-File: LICENSE
6
6
  Requires-Python: >=3.12
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "sqlsaber"
3
- version = "0.8.1"
3
+ version = "0.8.2"
4
4
  description = "SQLSaber - Agentic SQL assistant like Claude Code"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
@@ -4,6 +4,7 @@ import json
4
4
 
5
5
  from rich.console import Console
6
6
  from rich.markdown import Markdown
7
+ from rich.panel import Panel
7
8
  from rich.syntax import Syntax
8
9
  from rich.table import Table
9
10
 
@@ -244,7 +245,7 @@ class DisplayManager:
244
245
  self.show_error(f"Error displaying plot: {str(e)}")
245
246
 
246
247
  def show_markdown_response(self, content: list):
247
- """Display the assistant's response as rich markdown."""
248
+ """Display the assistant's response as rich markdown in a panel."""
248
249
  if not content:
249
250
  return
250
251
 
@@ -256,10 +257,11 @@ class DisplayManager:
256
257
  if text:
257
258
  text_parts.append(text)
258
259
 
259
- # Join all text parts and display as markdown
260
+ # Join all text parts and display as markdown in a panel
260
261
  full_text = "".join(text_parts).strip()
261
262
  if full_text:
262
- self.console.print() # Add spacing before markdown
263
+ self.console.print() # Add spacing before panel
263
264
  markdown = Markdown(full_text)
264
- self.console.print(markdown)
265
- self.console.print() # Add spacing after markdown
265
+ panel = Panel.fit(markdown, border_style="green")
266
+ self.console.print(panel)
267
+ self.console.print() # Add spacing after panel
@@ -36,8 +36,15 @@ class InteractiveSession:
36
36
 
37
37
  self.console.print(
38
38
  Panel.fit(
39
- "[bold green]SQLSaber - Use the agent Luke![/bold green]\n\n"
40
- "[bold]Your agentic SQL assistant.[/bold]\n\n\n"
39
+ """
40
+ ███████ ██████ ██ ███████ █████ ██████ ███████ ██████
41
+ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
42
+ ███████ ██ ██ ██ ███████ ███████ ██████ █████ ██████
43
+ ██ ██ ▄▄ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
44
+ ███████ ██████ ███████ ███████ ██ ██ ██████ ███████ ██ ██
45
+ ▀▀
46
+ """
47
+ "\n\n"
41
48
  "[dim]Use '/clear' to reset conversation, '/exit' or '/quit' to leave.[/dim]\n\n"
42
49
  "[dim]Start a message with '#' to add something to agent's memory for this database.[/dim]\n\n"
43
50
  "[dim]Type '@' to get table name completions.[/dim]",
@@ -863,7 +863,7 @@ wheels = [
863
863
 
864
864
  [[package]]
865
865
  name = "sqlsaber"
866
- version = "0.8.1"
866
+ version = "0.8.2"
867
867
  source = { editable = "." }
868
868
  dependencies = [
869
869
  { name = "aiomysql" },
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