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.
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/CHANGELOG.md +7 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/PKG-INFO +36 -6
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/README.md +35 -5
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/pyproject.toml +1 -1
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/cli/commands.py +3 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/cli/interactive.py +9 -6
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/uv.lock +1 -1
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/.github/workflows/publish.yml +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/.gitignore +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/.python-version +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/CLAUDE.md +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/LICENSE +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/pytest.ini +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/__init__.py +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/__main__.py +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/agents/__init__.py +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/agents/anthropic.py +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/agents/base.py +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/agents/mcp.py +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/agents/streaming.py +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/cli/__init__.py +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/cli/database.py +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/cli/display.py +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/cli/memory.py +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/cli/models.py +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/cli/streaming.py +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/config/__init__.py +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/config/api_keys.py +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/config/database.py +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/config/settings.py +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/database/__init__.py +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/database/connection.py +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/database/schema.py +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/mcp/__init__.py +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/mcp/mcp.py +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/memory/__init__.py +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/memory/manager.py +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/memory/storage.py +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/models/__init__.py +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/models/events.py +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/src/sqlsaber/models/types.py +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/tests/__init__.py +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/tests/conftest.py +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/tests/test_cli/__init__.py +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/tests/test_cli/test_commands.py +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/tests/test_config/__init__.py +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/tests/test_config/test_database.py +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/tests/test_config/test_settings.py +0 -0
- {sqlsaber-0.4.0 → sqlsaber-0.4.1}/tests/test_database/__init__.py +0 -0
- {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.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
|
@@ -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
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
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
|
-
"[
|
|
37
|
+
f"[bold blue]Connected to:[/bold blue] {db_name} ({db_type})\n"
|
|
35
38
|
)
|
|
36
39
|
self.console.print(
|
|
37
|
-
"[dim]
|
|
40
|
+
"[dim]Press Esc-Enter or Meta-Enter to submit your query.[/dim]\n"
|
|
38
41
|
)
|
|
39
42
|
|
|
40
43
|
async def run(self):
|
|
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
|