sqlsaber 0.18.0__tar.gz → 0.19.0__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.18.0 → sqlsaber-0.19.0}/PKG-INFO +2 -1
- sqlsaber-0.19.0/docs/CLAUDE.md +40 -0
- sqlsaber-0.19.0/docs/astro.config.mjs +57 -0
- sqlsaber-0.18.0/CHANGELOG.md → sqlsaber-0.19.0/docs/src/content/docs/changelog.md +75 -60
- sqlsaber-0.19.0/docs/src/content/docs/guides/authentication.mdx +135 -0
- sqlsaber-0.19.0/docs/src/content/docs/guides/database-setup.mdx +151 -0
- sqlsaber-0.19.0/docs/src/content/docs/guides/getting-started.mdx +161 -0
- sqlsaber-0.19.0/docs/src/content/docs/guides/memory.mdx +127 -0
- sqlsaber-0.19.0/docs/src/content/docs/guides/models.mdx +78 -0
- sqlsaber-0.19.0/docs/src/content/docs/guides/queries.mdx +144 -0
- sqlsaber-0.19.0/docs/src/content/docs/guides/threads.md +69 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/docs/src/content/docs/index.mdx +6 -6
- sqlsaber-0.19.0/docs/src/content/docs/installation.mdx +72 -0
- sqlsaber-0.19.0/docs/src/content/docs/reference/commands.md +360 -0
- sqlsaber-0.19.0/legislators.db +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/pyproject.toml +2 -1
- sqlsaber-0.19.0/sqlsaber.gif +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/cli/interactive.py +45 -9
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/uv.lock +906 -904
- sqlsaber-0.18.0/docs/astro.config.mjs +0 -38
- sqlsaber-0.18.0/docs/src/content/docs/guides/example.md +0 -11
- sqlsaber-0.18.0/docs/src/content/docs/reference/example.md +0 -11
- sqlsaber-0.18.0/sqlsaber.gif +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/.github/workflows/claude-code-review.yml +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/.github/workflows/claude.yml +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/.github/workflows/deploy-docs.yml +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/.github/workflows/publish.yml +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/.github/workflows/test.yml +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/.gitignore +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/.python-version +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/AGENT.md +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/CLAUDE.md +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/LICENSE +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/README.md +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/docs/.gitignore +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/docs/.vscode/extensions.json +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/docs/.vscode/launch.json +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/docs/package-lock.json +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/docs/package.json +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/docs/public/CNAME +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/docs/public/favicon.svg +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/docs/src/assets/sqlsaber-hero.svg +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/docs/src/content.config.ts +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/docs/src/styles/global.css +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/docs/tsconfig.json +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/pytest.ini +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/sqlsaber.svg +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/__init__.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/__main__.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/agents/__init__.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/agents/base.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/agents/mcp.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/agents/pydantic_ai_agent.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/cli/__init__.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/cli/auth.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/cli/commands.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/cli/completers.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/cli/database.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/cli/display.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/cli/memory.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/cli/models.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/cli/streaming.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/cli/threads.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/config/__init__.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/config/api_keys.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/config/auth.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/config/database.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/config/oauth_flow.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/config/oauth_tokens.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/config/providers.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/config/settings.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/database/__init__.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/database/connection.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/database/resolver.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/database/schema.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/mcp/__init__.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/mcp/mcp.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/memory/__init__.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/memory/manager.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/memory/storage.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/threads/__init__.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/threads/storage.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/tools/__init__.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/tools/base.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/tools/enums.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/tools/instructions.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/tools/registry.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/src/sqlsaber/tools/sql_tools.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/tests/__init__.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/tests/conftest.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/tests/test_cli/__init__.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/tests/test_cli/test_auth_reset.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/tests/test_cli/test_commands.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/tests/test_cli/test_threads.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/tests/test_config/__init__.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/tests/test_config/test_database.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/tests/test_config/test_oauth.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/tests/test_config/test_providers.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/tests/test_config/test_settings.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/tests/test_database/__init__.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/tests/test_database/test_connection.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/tests/test_database_resolver.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/tests/test_threads_storage.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/tests/test_tools/__init__.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/tests/test_tools/test_base.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/tests/test_tools/test_instructions.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/tests/test_tools/test_registry.py +0 -0
- {sqlsaber-0.18.0 → sqlsaber-0.19.0}/tests/test_tools/test_sql_tools.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sqlsaber
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.19.0
|
|
4
4
|
Summary: SQLsaber - Open-source agentic SQL assistant
|
|
5
5
|
License-File: LICENSE
|
|
6
6
|
Requires-Python: >=3.12
|
|
@@ -13,6 +13,7 @@ Requires-Dist: httpx>=0.28.1
|
|
|
13
13
|
Requires-Dist: keyring>=25.6.0
|
|
14
14
|
Requires-Dist: pandas>=2.0.0
|
|
15
15
|
Requires-Dist: platformdirs>=4.0.0
|
|
16
|
+
Requires-Dist: prompt-toolkit>3.0.51
|
|
16
17
|
Requires-Dist: pydantic-ai
|
|
17
18
|
Requires-Dist: questionary>=2.1.0
|
|
18
19
|
Requires-Dist: rich>=13.7.0
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# CLAUDE.md
|
|
2
|
+
|
|
3
|
+
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
4
|
+
|
|
5
|
+
## Commands
|
|
6
|
+
|
|
7
|
+
- **Development server**: `npm run dev` or `npm start`
|
|
8
|
+
- **Build documentation**: `npm run build`
|
|
9
|
+
- **Preview built site**: `npm run preview`
|
|
10
|
+
|
|
11
|
+
## Architecture
|
|
12
|
+
|
|
13
|
+
- **Documentation Site**: Built with Astro and Starlight for SQLsaber project documentation
|
|
14
|
+
- **Framework**: Astro 5.x with Starlight integration for documentation structure
|
|
15
|
+
- **Styling**: TailwindCSS 4.x with Starlight-specific Tailwind integration
|
|
16
|
+
- **Content**: MDX files in `src/content/docs/` for documentation pages
|
|
17
|
+
- **Assets**: Static images and SVGs in `src/assets/` and `public/`
|
|
18
|
+
|
|
19
|
+
## Project Context
|
|
20
|
+
|
|
21
|
+
This is the documentation website (`/docs`) for SQLsaber, an open-source agentic SQL assistant. The main SQLsaber Python project is in the parent directory with its own development workflow using uv/Python.
|
|
22
|
+
|
|
23
|
+
Key documentation areas:
|
|
24
|
+
- Landing page: `src/content/docs/index.mdx` (splash template with hero section)
|
|
25
|
+
- Guides: `src/content/docs/guides/` (tutorial content)
|
|
26
|
+
- Reference: `src/content/docs/reference/` (API and technical reference)
|
|
27
|
+
|
|
28
|
+
## Configuration Files
|
|
29
|
+
|
|
30
|
+
- `astro.config.mjs`: Main Astro configuration with Starlight integration
|
|
31
|
+
- `package.json`: Node.js dependencies and scripts
|
|
32
|
+
- `tsconfig.json`: TypeScript configuration for the Astro project
|
|
33
|
+
- Site URL configured for https://sqlsaber.com
|
|
34
|
+
|
|
35
|
+
## Content Structure
|
|
36
|
+
|
|
37
|
+
- Starlight sidebar automatically generates from `src/content/docs/` structure
|
|
38
|
+
- Use `.mdx` extension for components in markdown
|
|
39
|
+
- Use components available via `@astrojs/starlight/components`
|
|
40
|
+
- Asciinema integration for terminal recordings/demos
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
|
|
3
|
+
import starlight from "@astrojs/starlight";
|
|
4
|
+
import tailwindcss from "@tailwindcss/vite";
|
|
5
|
+
import { defineConfig } from "astro/config";
|
|
6
|
+
|
|
7
|
+
// https://astro.build/config
|
|
8
|
+
export default defineConfig({
|
|
9
|
+
integrations: [
|
|
10
|
+
starlight({
|
|
11
|
+
title: "SQLsaber",
|
|
12
|
+
customCss: ["./src/styles/global.css"],
|
|
13
|
+
social: [
|
|
14
|
+
{
|
|
15
|
+
icon: "github",
|
|
16
|
+
label: "GitHub",
|
|
17
|
+
href: "https://github.com/SarthakJariwala/sqlsaber",
|
|
18
|
+
},
|
|
19
|
+
],
|
|
20
|
+
sidebar: [
|
|
21
|
+
{
|
|
22
|
+
label: "Getting Started",
|
|
23
|
+
items: [
|
|
24
|
+
{ label: "Installation", slug: "installation" },
|
|
25
|
+
{ label: "Quick Start", slug: "guides/getting-started" },
|
|
26
|
+
],
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
label: "Guides",
|
|
30
|
+
items: [
|
|
31
|
+
{ label: "Database Setup", slug: "guides/database-setup" },
|
|
32
|
+
{ label: "Authentication", slug: "guides/authentication" },
|
|
33
|
+
{ label: "Models", slug: "guides/models" },
|
|
34
|
+
{ label: "Running Queries", slug: "guides/queries" },
|
|
35
|
+
{ label: "Conversation Threads", slug: "guides/threads" },
|
|
36
|
+
{ label: "Memory Management", slug: "guides/memory" },
|
|
37
|
+
],
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
label: "Reference",
|
|
41
|
+
items: [
|
|
42
|
+
{ label: "Commands", slug: "reference/commands" },
|
|
43
|
+
],
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
label: "Project",
|
|
47
|
+
items: [
|
|
48
|
+
{ label: "Changelog", slug: "changelog" },
|
|
49
|
+
],
|
|
50
|
+
},
|
|
51
|
+
],
|
|
52
|
+
}),
|
|
53
|
+
],
|
|
54
|
+
vite: { plugins: [tailwindcss()] },
|
|
55
|
+
|
|
56
|
+
site: "https://sqlsaber.com",
|
|
57
|
+
});
|
|
@@ -1,18 +1,34 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
title: Changelog
|
|
3
|
+
description: Release history and notable changes to SQLsaber
|
|
4
|
+
---
|
|
2
5
|
|
|
3
6
|
All notable changes to SQLsaber will be documented here.
|
|
4
7
|
|
|
5
|
-
|
|
8
|
+
### Unreleased
|
|
6
9
|
|
|
7
|
-
|
|
10
|
+
---
|
|
8
11
|
|
|
9
|
-
###
|
|
12
|
+
### v0.19.0 - 2025-09-09
|
|
13
|
+
|
|
14
|
+
#### Added
|
|
15
|
+
|
|
16
|
+
- Notable improvements to user prompt interface
|
|
17
|
+
- Ctrl+D to exit the application without having to use "/exit" or "/quit" slash command
|
|
18
|
+
- Display multiline input submission info as bottom toolbar
|
|
19
|
+
- Pressing up and down arrow keys now help navigate through prior user prompts
|
|
20
|
+
- Visual improvements to user prompt area
|
|
21
|
+
- Added mouse support - users can now click around text to edit
|
|
22
|
+
|
|
23
|
+
### v0.18.0 - 2025-09-08
|
|
24
|
+
|
|
25
|
+
#### Changed
|
|
10
26
|
|
|
11
27
|
- Improved CLI startup time
|
|
12
28
|
|
|
13
|
-
|
|
29
|
+
### v0.17.0 - 2025-09-08
|
|
14
30
|
|
|
15
|
-
|
|
31
|
+
#### Added
|
|
16
32
|
|
|
17
33
|
- Conversation threads system for storing, displaying, and resuming conversations
|
|
18
34
|
- Automatic thread creation for both interactive and non-interactive sessions
|
|
@@ -23,28 +39,28 @@ All notable changes to SQLsaber will be documented here.
|
|
|
23
39
|
- Thread persistence with metadata (title, model, database, last activity)
|
|
24
40
|
- Seamless resumption of conversation context and history
|
|
25
41
|
|
|
26
|
-
|
|
42
|
+
#### Removed
|
|
27
43
|
|
|
28
44
|
- Removed visualization tools and plotting capabilities
|
|
29
45
|
- Removed PlotDataTool and uniplot dependency
|
|
30
46
|
- Cleaned up visualization-related code from CLI, registry, and instructions
|
|
31
47
|
|
|
32
|
-
|
|
48
|
+
### v0.16.1 - 2025-09-04
|
|
33
49
|
|
|
34
|
-
|
|
50
|
+
#### Added
|
|
35
51
|
|
|
36
52
|
- Compile python byte code during installation
|
|
37
53
|
- Updated CLI help string
|
|
38
54
|
|
|
39
|
-
|
|
55
|
+
### v0.16.0 - 2025-09-04
|
|
40
56
|
|
|
41
|
-
|
|
57
|
+
#### Added
|
|
42
58
|
|
|
43
59
|
- Migrated to Pydantic-AI agent runtime with model-agnostic interfaces
|
|
44
60
|
- Added multi-provider model support: Anthropic, OpenAI, Google, Groq, Mistral, Cohere, Hugging Face
|
|
45
61
|
- Provider registry tests to ensure invariants and alias normalization
|
|
46
62
|
|
|
47
|
-
|
|
63
|
+
#### Changed
|
|
48
64
|
|
|
49
65
|
- Reworked agents to use new pydantic-ai-based agent implementation
|
|
50
66
|
- Updated CLI modules and settings to integrate provider selection and authentication
|
|
@@ -55,28 +71,28 @@ All notable changes to SQLsaber will be documented here.
|
|
|
55
71
|
- Centralized provider definitions in `sqlsaber.config.providers` and refactored CLI, config, and agent code to use the registry (single source of truth)
|
|
56
72
|
- Normalized provider aliases (e.g., `google-gla` → `google`) for consistent behavior across modules
|
|
57
73
|
|
|
58
|
-
|
|
74
|
+
#### Removed
|
|
59
75
|
|
|
60
76
|
- Deprecated custom `clients` module and Anthropic-specific client code
|
|
61
77
|
- Removed legacy streaming and events modules and related tests
|
|
62
78
|
|
|
63
|
-
|
|
79
|
+
### v0.15.0 - 2025-08-18
|
|
64
80
|
|
|
65
|
-
|
|
81
|
+
#### Added
|
|
66
82
|
|
|
67
83
|
- Tool abstraction system with centralized registry (new `Tool` base class, `ToolRegistry`, decorators)
|
|
68
84
|
- Dynamic instruction generation system (`InstructionBuilder`)
|
|
69
85
|
- Comprehensive test suite for the tools module
|
|
70
86
|
|
|
71
|
-
|
|
87
|
+
#### Changed
|
|
72
88
|
|
|
73
89
|
- Refactored agents to use centralized tool registry instead of hardcoded tools
|
|
74
90
|
- Enhanced MCP server with dynamic tool registration
|
|
75
91
|
- Moved core SQL functionality to dedicated tool classes
|
|
76
92
|
|
|
77
|
-
|
|
93
|
+
### v0.14.0 - 2025-08-01
|
|
78
94
|
|
|
79
|
-
|
|
95
|
+
#### Added
|
|
80
96
|
|
|
81
97
|
- Local conversation storage between user and agent
|
|
82
98
|
- Store conversation history persistently
|
|
@@ -85,49 +101,49 @@ All notable changes to SQLsaber will be documented here.
|
|
|
85
101
|
- New GitHub Actions workflow for running tests
|
|
86
102
|
- Updated code review workflow
|
|
87
103
|
|
|
88
|
-
|
|
104
|
+
#### Fixed
|
|
89
105
|
|
|
90
106
|
- Fixed CLI commands test suite (#11)
|
|
91
107
|
|
|
92
|
-
|
|
108
|
+
#### Changed
|
|
93
109
|
|
|
94
110
|
- Removed schema caching from SchemaManager
|
|
95
111
|
- Simplified schema introspection by removing cache logic
|
|
96
112
|
- Direct database queries for schema information
|
|
97
113
|
|
|
98
|
-
|
|
114
|
+
### v0.13.0 - 2025-07-26
|
|
99
115
|
|
|
100
|
-
|
|
116
|
+
#### Added
|
|
101
117
|
|
|
102
118
|
- Database resolver abstraction for unified connection handling
|
|
103
119
|
- Extended `-d` flag to accept PostgreSQL and MySQL connection strings (e.g., `postgresql://user:pass@host:5432/db`)
|
|
104
120
|
- Support for direct connection strings alongside existing file path and configured database support
|
|
105
121
|
- Examples: `saber -d "postgresql://user:pass@host:5432/db" "show users"`
|
|
106
122
|
|
|
107
|
-
|
|
123
|
+
### v0.12.0 - 2025-07-23
|
|
108
124
|
|
|
109
|
-
|
|
125
|
+
#### Added
|
|
110
126
|
|
|
111
127
|
- Add support for ad-hoc SQLite files via `--database`/`-d` flag
|
|
112
128
|
|
|
113
|
-
|
|
129
|
+
### v0.11.0 - 2025-07-09
|
|
114
130
|
|
|
115
|
-
|
|
131
|
+
#### Changed
|
|
116
132
|
|
|
117
133
|
- Removed row counting from `list_tables` tool for all database types
|
|
118
134
|
|
|
119
|
-
|
|
135
|
+
### v0.10.0 - 2025-07-08
|
|
120
136
|
|
|
121
|
-
|
|
137
|
+
#### Added
|
|
122
138
|
|
|
123
139
|
- Support for reading queries from stdin via pipe operator
|
|
124
140
|
- `echo 'show me all users' | saber` now works
|
|
125
141
|
- `cat query.txt | saber` reads query from file via stdin
|
|
126
142
|
- Allows integration with other command-line tools and scripts
|
|
127
143
|
|
|
128
|
-
|
|
144
|
+
### v0.9.0 - 2025-07-08
|
|
129
145
|
|
|
130
|
-
|
|
146
|
+
#### Changed
|
|
131
147
|
|
|
132
148
|
- Migrated from Typer to Cyclopts for CLI framework
|
|
133
149
|
- Improved command structure and parameter handling
|
|
@@ -137,22 +153,22 @@ All notable changes to SQLsaber will be documented here.
|
|
|
137
153
|
- `saber "question"` executes a single query (previously `saber query "question"`)
|
|
138
154
|
- Removed the `query` subcommand for a cleaner interface
|
|
139
155
|
|
|
140
|
-
|
|
156
|
+
### v0.8.2 - 2025-07-08
|
|
141
157
|
|
|
142
|
-
|
|
158
|
+
#### Changed
|
|
143
159
|
|
|
144
160
|
- Updated formatting for final answer display
|
|
145
161
|
- New ASCII art in interactive mode
|
|
146
162
|
|
|
147
|
-
|
|
163
|
+
### v0.8.1 - 2025-07-07
|
|
148
164
|
|
|
149
|
-
|
|
165
|
+
#### Fixed
|
|
150
166
|
|
|
151
167
|
- Fixed OAuth validation logic to not require API key when Claude Pro OAuth is configured
|
|
152
168
|
|
|
153
|
-
|
|
169
|
+
### v0.8.0 - 2025-07-07
|
|
154
170
|
|
|
155
|
-
|
|
171
|
+
#### Added
|
|
156
172
|
|
|
157
173
|
- OAuth support for Claude Pro/Max subscriptions
|
|
158
174
|
- Authentication management with `saber auth` command
|
|
@@ -164,28 +180,27 @@ All notable changes to SQLsaber will be documented here.
|
|
|
164
180
|
- New `clients` module with custom Anthropic API client
|
|
165
181
|
- `AnthropicClient` for direct API communication
|
|
166
182
|
|
|
167
|
-
|
|
183
|
+
#### Changed
|
|
168
184
|
|
|
169
185
|
- Enhanced authentication system to support both API keys and OAuth tokens
|
|
170
186
|
- Replaced Anthropic SDK with direct API implementation using httpx
|
|
171
187
|
- Modernized type annotations throughout the codebase
|
|
172
188
|
- Refactored query streaming into smaller, more maintainable functions
|
|
173
189
|
|
|
174
|
-
|
|
190
|
+
### v0.7.0 - 2025-07-01
|
|
175
191
|
|
|
176
|
-
|
|
192
|
+
#### Added
|
|
177
193
|
|
|
178
194
|
- Table name autocomplete with "@" prefix in interactive mode
|
|
179
|
-
|
|
180
195
|
- Type "@" followed by table name to get fuzzy matching completions
|
|
181
196
|
- Supports schema-aware completions (e.g., "@sample" matches "public.sample")
|
|
182
197
|
|
|
183
198
|
- Rich markdown display for assistant responses
|
|
184
199
|
- After streaming completes, the final response is displayed as formatted markdown
|
|
185
200
|
|
|
186
|
-
|
|
201
|
+
### v0.6.0 - 2025-06-30
|
|
187
202
|
|
|
188
|
-
|
|
203
|
+
#### Added
|
|
189
204
|
|
|
190
205
|
- Slash command autocomplete in interactive mode
|
|
191
206
|
- Commands now use slash prefix: `/clear`, `/exit`, `/quit`
|
|
@@ -195,7 +210,7 @@ All notable changes to SQLsaber will be documented here.
|
|
|
195
210
|
- Press Ctrl+C during query execution to gracefully cancel ongoing operations
|
|
196
211
|
- Preserves conversation history up to the interruption point
|
|
197
212
|
|
|
198
|
-
|
|
213
|
+
#### Changed
|
|
199
214
|
|
|
200
215
|
- Updated table display for better readability: limit to first 15 columns on wide tables
|
|
201
216
|
- Shows warning when columns are truncated
|
|
@@ -205,47 +220,47 @@ All notable changes to SQLsaber will be documented here.
|
|
|
205
220
|
- `quit` → `/quit`
|
|
206
221
|
- Removed default limit of 100. Now model will decide it.
|
|
207
222
|
|
|
208
|
-
|
|
223
|
+
### v0.5.0 - 2025-06-27
|
|
209
224
|
|
|
210
|
-
|
|
225
|
+
#### Added
|
|
211
226
|
|
|
212
227
|
- Added support for plotting data from query results.
|
|
213
228
|
- The agent can decide if plotting will useful and create a plot with query results.
|
|
214
229
|
- Small updates to system prompt
|
|
215
230
|
|
|
216
|
-
|
|
231
|
+
### v0.4.1 - 2025-06-26
|
|
217
232
|
|
|
218
|
-
|
|
233
|
+
#### Added
|
|
219
234
|
|
|
220
235
|
- Show connected database information at the start of a session
|
|
221
236
|
- Update welcome message for clarity
|
|
222
237
|
|
|
223
|
-
|
|
238
|
+
### v0.4.0 - 2025-06-25
|
|
224
239
|
|
|
225
|
-
|
|
240
|
+
#### Added
|
|
226
241
|
|
|
227
242
|
- MCP (Model Context Protocol) server support
|
|
228
243
|
- `saber-mcp` console script for running MCP server
|
|
229
244
|
- MCP tools: `get_databases()`, `list_tables()`, `introspect_schema()`, `execute_sql()`
|
|
230
245
|
- Instructions and documentation for configuring MCP clients (Claude Code, etc.)
|
|
231
246
|
|
|
232
|
-
|
|
247
|
+
### v0.3.0 - 2025-06-25
|
|
233
248
|
|
|
234
|
-
|
|
249
|
+
#### Added
|
|
235
250
|
|
|
236
251
|
- Support for CSV files as a database option: `saber query -d mydata.csv`
|
|
237
252
|
|
|
238
|
-
|
|
253
|
+
#### Changed
|
|
239
254
|
|
|
240
255
|
- Extracted tools to BaseSQLAgent for better inheritance across SQLAgents
|
|
241
256
|
|
|
242
|
-
|
|
257
|
+
#### Fixed
|
|
243
258
|
|
|
244
259
|
- Fixed getting row counts for SQLite
|
|
245
260
|
|
|
246
|
-
|
|
261
|
+
### v0.2.0 - 2025-06-24
|
|
247
262
|
|
|
248
|
-
|
|
263
|
+
#### Added
|
|
249
264
|
|
|
250
265
|
- SSL support for database connections during configuration
|
|
251
266
|
- Memory feature similar to Claude Code
|
|
@@ -256,7 +271,7 @@ All notable changes to SQLsaber will be documented here.
|
|
|
256
271
|
- Interactive questionary for all user interactions
|
|
257
272
|
- Test suite implementation
|
|
258
273
|
|
|
259
|
-
|
|
274
|
+
#### Changed
|
|
260
275
|
|
|
261
276
|
- Package renamed from original name to sqlsaber
|
|
262
277
|
- Better configuration handling
|
|
@@ -266,20 +281,20 @@ All notable changes to SQLsaber will be documented here.
|
|
|
266
281
|
- Extracted table display functionality
|
|
267
282
|
- Refactored and cleaned up codebase structure
|
|
268
283
|
|
|
269
|
-
|
|
284
|
+
#### Fixed
|
|
270
285
|
|
|
271
286
|
- Fixed list_tables tool functionality
|
|
272
287
|
- Fixed introspect schema tool
|
|
273
288
|
- Fixed minor type checking errors
|
|
274
289
|
- Check before adding new database to prevent duplicates
|
|
275
290
|
|
|
276
|
-
|
|
291
|
+
#### Removed
|
|
277
292
|
|
|
278
293
|
- Removed write support completely for security
|
|
279
294
|
|
|
280
|
-
|
|
295
|
+
### v0.1.0 - 2025-06-19
|
|
281
296
|
|
|
282
|
-
|
|
297
|
+
#### Added
|
|
283
298
|
|
|
284
299
|
- First working version of SQLSaber
|
|
285
300
|
- Streaming tool response and status messages
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Authentication
|
|
3
|
+
description: Configure LLM provider authentication for SQLsaber
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
import { Aside } from '@astrojs/starlight/components';
|
|
7
|
+
|
|
8
|
+
SQLsaber supports multiple LLM providers.
|
|
9
|
+
|
|
10
|
+
### Providers
|
|
11
|
+
|
|
12
|
+
SQLsaber supports the following LLM providers and authentication methods:
|
|
13
|
+
|
|
14
|
+
- **Anthropic** - API key or Claude Pro/Max subscription
|
|
15
|
+
- **OpenAI** - API key
|
|
16
|
+
- **Google** - API key
|
|
17
|
+
- **Groq** - API key
|
|
18
|
+
- **Mistral** - API key
|
|
19
|
+
- **Cohere** - API key
|
|
20
|
+
- **Hugging Face** - API key
|
|
21
|
+
|
|
22
|
+
<Aside type="note">
|
|
23
|
+
API keys and OAuth tokens securely using your operating system's credentials store.
|
|
24
|
+
</Aside>
|
|
25
|
+
|
|
26
|
+
### Quick Setup
|
|
27
|
+
|
|
28
|
+
The fastest way to configure authentication:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
saber auth setup
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
This interactive command will:
|
|
35
|
+
1. Let you choose your AI provider
|
|
36
|
+
2. Guide you through the authentication process
|
|
37
|
+
3. Securely store your credentials
|
|
38
|
+
|
|
39
|
+
#### Anthropic
|
|
40
|
+
|
|
41
|
+
SQLsaber uses Claude Sonnet 4 by default and supports two authentication methods:
|
|
42
|
+
|
|
43
|
+
##### Claude Pro/Max subscription (Recommended)
|
|
44
|
+
|
|
45
|
+
> If you have a Claude Pro or Max subscription, you can use it with SQLsaber:
|
|
46
|
+
|
|
47
|
+
1. Run the setup:
|
|
48
|
+
```bash
|
|
49
|
+
saber auth setup
|
|
50
|
+
```
|
|
51
|
+
2. Choose "Anthropic" as your provider
|
|
52
|
+
3. Select "Claude Pro/Max (OAuth)" as the authentication method
|
|
53
|
+
4. Follow the browser-based OAuth flow
|
|
54
|
+
|
|
55
|
+
##### API Key
|
|
56
|
+
|
|
57
|
+
1. Get an API key from [Anthropic Console](https://console.anthropic.com/)
|
|
58
|
+
2. Run the setup:
|
|
59
|
+
```bash
|
|
60
|
+
saber auth setup
|
|
61
|
+
```
|
|
62
|
+
3. Choose "Anthropic" as your provider
|
|
63
|
+
4. Select "API key" as the authentication method
|
|
64
|
+
5. Enter your API key when prompted
|
|
65
|
+
|
|
66
|
+
<Aside type="note">
|
|
67
|
+
Follow the same steps for setting up other providers.
|
|
68
|
+
</Aside>
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
### Managing Authentication
|
|
72
|
+
|
|
73
|
+
#### Check Authentication Status
|
|
74
|
+
|
|
75
|
+
See which providers are configured:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
saber auth status
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
This shows:
|
|
82
|
+
- Currently configured providers
|
|
83
|
+
- Authentication methods (API key vs OAuth)
|
|
84
|
+
|
|
85
|
+
#### Reset Authentication
|
|
86
|
+
|
|
87
|
+
To remove stored credentials for a provider:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
saber auth reset
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
This will:
|
|
94
|
+
1. Ask you to select which provider to reset
|
|
95
|
+
2. Remove API keys from your OS credentials store
|
|
96
|
+
|
|
97
|
+
### Multiple Providers
|
|
98
|
+
|
|
99
|
+
You can configure multiple providers and switch between them when selecting models. Each provider's credentials are stored securely and independently.
|
|
100
|
+
|
|
101
|
+
### Environment Variables
|
|
102
|
+
|
|
103
|
+
You can also use environment variables for setting API keys.
|
|
104
|
+
|
|
105
|
+
Example:
|
|
106
|
+
```bash
|
|
107
|
+
# Anthropic
|
|
108
|
+
export ANTHROPIC_API_KEY="your-api-key"
|
|
109
|
+
|
|
110
|
+
# OpenAI
|
|
111
|
+
export OPENAI_API_KEY="your-api-key"
|
|
112
|
+
|
|
113
|
+
# Google
|
|
114
|
+
export GOOGLE_API_KEY="your-api-key"
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Environment variables take precedence over stored credentials.
|
|
118
|
+
|
|
119
|
+
### Getting Help
|
|
120
|
+
|
|
121
|
+
Check authentication status and configuration:
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
saber auth status
|
|
125
|
+
saber auth --help
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### What's Next?
|
|
129
|
+
|
|
130
|
+
After setting up authentication:
|
|
131
|
+
|
|
132
|
+
1. [Configure your preferred models](/guides/models)
|
|
133
|
+
2. [Set up database connections](/guides/database-setup)
|
|
134
|
+
3. [Start querying your data](/guides/getting-started)
|
|
135
|
+
4. [Learn about different query modes](/guides/queries)
|