sqlsaber 0.4.0__tar.gz → 0.4.1__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 (50) hide show
  1. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/CHANGELOG.md +7 -0
  2. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/PKG-INFO +36 -6
  3. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/README.md +35 -5
  4. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/pyproject.toml +1 -1
  5. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/cli/commands.py +3 -0
  6. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/cli/interactive.py +9 -6
  7. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/uv.lock +1 -1
  8. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/.github/workflows/publish.yml +0 -0
  9. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/.gitignore +0 -0
  10. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/.python-version +0 -0
  11. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/CLAUDE.md +0 -0
  12. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/LICENSE +0 -0
  13. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/pytest.ini +0 -0
  14. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/__init__.py +0 -0
  15. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/__main__.py +0 -0
  16. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/agents/__init__.py +0 -0
  17. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/agents/anthropic.py +0 -0
  18. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/agents/base.py +0 -0
  19. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/agents/mcp.py +0 -0
  20. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/agents/streaming.py +0 -0
  21. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/cli/__init__.py +0 -0
  22. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/cli/database.py +0 -0
  23. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/cli/display.py +0 -0
  24. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/cli/memory.py +0 -0
  25. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/cli/models.py +0 -0
  26. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/cli/streaming.py +0 -0
  27. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/config/__init__.py +0 -0
  28. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/config/api_keys.py +0 -0
  29. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/config/database.py +0 -0
  30. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/config/settings.py +0 -0
  31. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/database/__init__.py +0 -0
  32. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/database/connection.py +0 -0
  33. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/database/schema.py +0 -0
  34. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/mcp/__init__.py +0 -0
  35. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/mcp/mcp.py +0 -0
  36. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/memory/__init__.py +0 -0
  37. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/memory/manager.py +0 -0
  38. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/memory/storage.py +0 -0
  39. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/models/__init__.py +0 -0
  40. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/models/events.py +0 -0
  41. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/models/types.py +0 -0
  42. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/tests/__init__.py +0 -0
  43. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/tests/conftest.py +0 -0
  44. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/tests/test_cli/__init__.py +0 -0
  45. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/tests/test_cli/test_commands.py +0 -0
  46. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/tests/test_config/__init__.py +0 -0
  47. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/tests/test_config/test_database.py +0 -0
  48. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/tests/test_config/test_settings.py +0 -0
  49. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/tests/test_database/__init__.py +0 -0
  50. {sqlsaber-0.4.0 → sqlsaber-0.4.1}/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.4.1] - 2025-06-26
8
+
9
+ ### Added
10
+
11
+ - Show connected database information at the start of a session
12
+ - Update welcome message for clarity
13
+
7
14
  ## [0.4.0] - 2025-06-25
8
15
 
9
16
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlsaber
3
- Version: 0.4.0
3
+ Version: 0.4.1
4
4
  Summary: SQLSaber - Agentic SQL assistant like Claude Code
5
5
  License-File: LICENSE
6
6
  Requires-Python: >=3.12
@@ -24,7 +24,28 @@ Description-Content-Type: text/markdown
24
24
 
25
25
  SQLSaber is an agentic SQL assistant. Think Claude Code but for SQL.
26
26
 
27
- Ask your questions in natural language and it will gather the right context and answer your query by writing SQL and analyzing the results.
27
+ Ask your questions in natural language and it will gather the right context automatically and answer your query by writing SQL and analyzing the results.
28
+
29
+ ## Table of Contents
30
+
31
+ - [Features](#features)
32
+ - [Installation](#installation)
33
+ - [Configuration](#configuration)
34
+ - [Database Connection](#database-connection)
35
+ - [AI Model Configuration](#ai-model-configuration)
36
+ - [Memory Management](#memory-management)
37
+ - [Usage](#usage)
38
+ - [Interactive Mode](#interactive-mode)
39
+ - [Single Query](#single-query)
40
+ - [Database Selection](#database-selection)
41
+ - [Examples](#examples)
42
+ - [MCP Server Integration](#mcp-server-integration)
43
+ - [Starting the MCP Server](#starting-the-mcp-server)
44
+ - [Configuring MCP Clients](#configuring-mcp-clients)
45
+ - [Available MCP Tools](#available-mcp-tools)
46
+ - [How It Works](#how-it-works)
47
+ - [Contributing](#contributing)
48
+ - [License](#license)
28
49
 
29
50
  ## Features
30
51
 
@@ -39,16 +60,25 @@ Ask your questions in natural language and it will gather the right context and
39
60
 
40
61
  ## Installation
41
62
 
63
+ ### `uv`
64
+
42
65
  ```bash
43
66
  uv tool install sqlsaber
44
67
  ```
45
68
 
46
- or
69
+ ### `pipx`
47
70
 
48
71
  ```bash
49
72
  pipx install sqlsaber
50
73
  ```
51
74
 
75
+ ### `brew`
76
+
77
+ ```bash
78
+ brew install uv
79
+ uv tool install sqlsaber
80
+ ```
81
+
52
82
  ## Configuration
53
83
 
54
84
  ### Database Connection
@@ -151,7 +181,7 @@ SQLSaber includes an MCP (Model Context Protocol) server that allows AI agents l
151
181
  Run the MCP server using uvx:
152
182
 
153
183
  ```bash
154
- uvx saber-mcp
184
+ uvx --from sqlsaber saber-mcp
155
185
  ```
156
186
 
157
187
  ### Configuring MCP Clients
@@ -161,12 +191,12 @@ uvx saber-mcp
161
191
  Add SQLSaber as an MCP server in Claude Code:
162
192
 
163
193
  ```bash
164
- claude mcp add -- uvx saber-mcp
194
+ claude mcp add -- uvx --from sqlsaber saber-mcp
165
195
  ```
166
196
 
167
197
  #### Other MCP Clients
168
198
 
169
- For other MCP clients, configure them to run the command: `uvx saber-mcp`
199
+ For other MCP clients, configure them to run the command: `uvx --from sqlsaber saber-mcp`
170
200
 
171
201
  ### Available MCP Tools
172
202
 
@@ -4,7 +4,28 @@
4
4
 
5
5
  SQLSaber is an agentic SQL assistant. Think Claude Code but for SQL.
6
6
 
7
- Ask your questions in natural language and it will gather the right context and answer your query by writing SQL and analyzing the results.
7
+ Ask your questions in natural language and it will gather the right context automatically and answer your query by writing SQL and analyzing the results.
8
+
9
+ ## Table of Contents
10
+
11
+ - [Features](#features)
12
+ - [Installation](#installation)
13
+ - [Configuration](#configuration)
14
+ - [Database Connection](#database-connection)
15
+ - [AI Model Configuration](#ai-model-configuration)
16
+ - [Memory Management](#memory-management)
17
+ - [Usage](#usage)
18
+ - [Interactive Mode](#interactive-mode)
19
+ - [Single Query](#single-query)
20
+ - [Database Selection](#database-selection)
21
+ - [Examples](#examples)
22
+ - [MCP Server Integration](#mcp-server-integration)
23
+ - [Starting the MCP Server](#starting-the-mcp-server)
24
+ - [Configuring MCP Clients](#configuring-mcp-clients)
25
+ - [Available MCP Tools](#available-mcp-tools)
26
+ - [How It Works](#how-it-works)
27
+ - [Contributing](#contributing)
28
+ - [License](#license)
8
29
 
9
30
  ## Features
10
31
 
@@ -19,16 +40,25 @@ Ask your questions in natural language and it will gather the right context and
19
40
 
20
41
  ## Installation
21
42
 
43
+ ### `uv`
44
+
22
45
  ```bash
23
46
  uv tool install sqlsaber
24
47
  ```
25
48
 
26
- or
49
+ ### `pipx`
27
50
 
28
51
  ```bash
29
52
  pipx install sqlsaber
30
53
  ```
31
54
 
55
+ ### `brew`
56
+
57
+ ```bash
58
+ brew install uv
59
+ uv tool install sqlsaber
60
+ ```
61
+
32
62
  ## Configuration
33
63
 
34
64
  ### Database Connection
@@ -131,7 +161,7 @@ SQLSaber includes an MCP (Model Context Protocol) server that allows AI agents l
131
161
  Run the MCP server using uvx:
132
162
 
133
163
  ```bash
134
- uvx saber-mcp
164
+ uvx --from sqlsaber saber-mcp
135
165
  ```
136
166
 
137
167
  ### Configuring MCP Clients
@@ -141,12 +171,12 @@ uvx saber-mcp
141
171
  Add SQLSaber as an MCP server in Claude Code:
142
172
 
143
173
  ```bash
144
- claude mcp add -- uvx saber-mcp
174
+ claude mcp add -- uvx --from sqlsaber saber-mcp
145
175
  ```
146
176
 
147
177
  #### Other MCP Clients
148
178
 
149
- For other MCP clients, configure them to run the command: `uvx saber-mcp`
179
+ For other MCP clients, configure them to run the command: `uvx --from sqlsaber saber-mcp`
150
180
 
151
181
  ### Available MCP Tools
152
182
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "sqlsaber"
3
- version = "0.4.0"
3
+ version = "0.4.1"
4
4
  description = "SQLSaber - Agentic SQL assistant like Claude Code"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
@@ -117,6 +117,9 @@ def query(
117
117
  if query_text:
118
118
  # Single query mode with streaming
119
119
  streaming_handler = StreamingQueryHandler(console)
120
+ console.print(
121
+ f"[bold blue]Connected to:[/bold blue] {db_name} {agent._get_database_type_name()}\n"
122
+ )
120
123
  await streaming_handler.execute_streaming_query(query_text, agent)
121
124
  else:
122
125
  # Interactive mode
@@ -20,21 +20,24 @@ class InteractiveSession:
20
20
 
21
21
  def show_welcome_message(self):
22
22
  """Display welcome message for interactive mode."""
23
+ # Show database information
24
+ db_name = getattr(self.agent, "database_name", None) or "Unknown"
25
+ db_type = self.agent._get_database_type_name()
26
+
23
27
  self.console.print(
24
28
  Panel.fit(
25
29
  "[bold green]SQLSaber - Use the agent Luke![/bold green]\n\n"
26
- "Type your queries in natural language.\n\n"
27
- "Press Esc-Enter or Meta-Enter to submit your query.\n\n"
28
- "Type 'exit' or 'quit' to leave.",
30
+ "[bold]Your agentic SQL assistant.[/bold]\n\n\n"
31
+ "[dim]Use 'clear' to reset conversation, 'exit' or 'quit' to leave.[/dim]\n\n"
32
+ "[dim]Start a message with '#' to add something to agent's memory for this database.[/dim]",
29
33
  border_style="green",
30
34
  )
31
35
  )
32
-
33
36
  self.console.print(
34
- "[dim]Commands: 'clear' to reset conversation, 'exit' or 'quit' to leave[/dim]"
37
+ f"[bold blue]Connected to:[/bold blue] {db_name} ({db_type})\n"
35
38
  )
36
39
  self.console.print(
37
- "[dim]Memory: Start a message with '#' to add it as a memory for this database[/dim]\n"
40
+ "[dim]Press Esc-Enter or Meta-Enter to submit your query.[/dim]\n"
38
41
  )
39
42
 
40
43
  async def run(self):
@@ -854,7 +854,7 @@ wheels = [
854
854
 
855
855
  [[package]]
856
856
  name = "sqlsaber"
857
- version = "0.4.0"
857
+ version = "0.4.1"
858
858
  source = { editable = "." }
859
859
  dependencies = [
860
860
  { name = "aiomysql" },
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes