Abeautifulsnow
5f2b24d700
fix(ai): enforce SQL task contracts structurally instead of keyword heuristics
...
* fix: enforce agent task contracts
* fix(ai): enforce SQL task contracts structurally
2026-06-26 13:18:49 +08:00
Oleksandr Liakhevych
034cce47e0
fix(ai): Codex CLI provider reliability fixes for DBX Desktop
...
* fix(ai): resolve Codex CLI from shell PATH on macOS
* fix(ai): hide Codex CLI subprocess windows on Windows
* feat(ai): allow to set environment variable for Codex CLI
* fix(ai): parse Codex MCP tool events
* fix(mcp): honor Postgres TLS settings in direct queries
2026-06-25 22:31:14 +08:00
Oleksandr Liakhevych
4f5d09aaa8
feat(ai): add Codex CLI as a no-API-key AI provider for Desktop
...
* codex cli provider
* fixes
* mcp check
* reasoning
* simplify
* minor fixes
2026-06-19 08:51:10 +08:00
t8y2
c57e18bf3e
fix: resolve clippy warnings and missing struct fields in tests
2026-06-16 00:55:32 +08:00
t8y2
a7ba5b42ef
chore: remove duplicate imports and BOM from PR #1122
2026-06-12 19:58:32 +08:00
skyler
abacac3c07
feat(ai): agent loop Phase 2 — SQL execution tools, risk classification, and streaming tool calls
...
feat(ai): agent loop Phase 2 — SQL execution tools, risk classification, and streaming tool calls
2026-06-12 19:56:36 +08:00
t8y2
484658c6b7
feat(ai): streaming probe for connection test with latency measurement
2026-06-12 19:29:55 +08:00
runstone
094412d956
fix error
2026-06-12 19:00:27 +08:00
runstone
40f0f98540
Merge branch 'main' of https://github.com/Abeautifulsnow/dbx into feat/ai-agent-loop-phase1
2026-06-12 18:52:05 +08:00
runstone
100124da3e
feat(ai): Phase 2 SQL 风险分类 + Agent 模式工具调用结果渲染
...
后端:
- 新增 sql_risk.rs:基于 sqlparser AST 的 SQL 风险分类(ReadOnly/Write/Ddl/Transaction)
- agent_tools.rs:新增 execute_query 和 get_sample_data 工具,写操作/DDL 被风险分类阻止
- agent_loop.rs:支持 is_agent_mode 参数,Agent 模式下暴露全部工具,Ask 模式仅暴露只读工具
- agent_loop/web/tauri:mode 参数全链路传递(前端→HTTP→Tauri→Rust)
前端:
- AiAgentStepItem 接口扩展:toolName/toolArgs/toolResult/isError 字段
- AiAssistant.vue:工具调用结果实时+最终渲染,SQL 查询结果/错误信息展示
- ai.ts/http.ts/tauri.ts:mode 参数透传到后端
2026-06-12 17:42:23 +08:00
Abeautifulsnow
082e3bb4eb
feat(ai): add agent tool calling loop
2026-06-12 13:18:36 +08:00
runstone
9ab41795d6
@
...
feat(ai): add agent loop with tool calling, fix connection routing and Gemini compatibility
## 背景说明
将 dbx AI 助手从单次 SQL 文本生成器升级为具备 tool calling 的数据库 Agent。
Phase 1 实现 Agent Loop 框架 + 只读工具(list_tables、get_columns)。
参考:Pi agent-core,.trellis/tasks/06-11-feat-ai-agent-loop-tool-calling-upgrade
## 修改内容
- 新增 agent_loop.rs:Agent Loop 核心,支持 OpenAI/Claude/Gemini Provider 的 tool calling,最大 10 轮,Ollama 自动降级为 text-only
- 新增 agent_tools.rs:read_only_tools (list_tables, get_columns) 的工具定义与执行器
- 新增 agent_events.rs:AgentEvent/ToolCall/ToolResult/ToolDefinition 类型定义
- 修改 ai.rs:AiMessage 新增 tool_call_id 字段
- 修改 lib.rs:注册 agent_events、agent_loop、agent_tools 模块
- 修改 routes/ai.rs & commands/ai.rs:新增 ai_agent_stream SSE 端点
- 修改 tauri.ts & http.ts:新增 AgentEvent 类型与 aiAgentStream 函数
- 修改 api.ts:注册 aiAgentStream 转发
- 修改 ai.ts:新增 runAgentStream,AiContext 增加 connectionId 字段
- 修改 AiAssistant.vue:接入 runAgentStream,解析 AgentEvent 渲染工具调用步骤
- 修改 en.ts / zh-CN.ts:新增 agentSteps 国际化文案
## 修复的问题
- [#I01] connectionName 误传为 connectionId → add connectionId to AiContext
- [#I02] agent loop 取消操作无效 → add cancel checks before each turn
- [#C01] TODO 缺少 issue 引用 → add PRD reference to TODO
- [#C02] stream_with_tools 命名不准确 → add clarifying doc comment
- [#C03] Gemini functionResponse.name 解析错误 → fix tool_call_id format and extraction
## 测试建议
- execute_get_columns:合法表名/空表名/SQL 注入字符拒绝
- call_openai_with_tools:空 choices/空 tool_calls/非 JSON arguments
- call_gemini_with_tools:空 candidates/parts 无 functionCall
- runAgentStream:有效 connectionId 正常调用
@
2026-06-11 18:27:24 +08:00
Abeautifulsnow
222ebefa6a
feat(ai): add model list fetching in settings ( #364 )
...
- Add `ai_list_models` Tauri command and core support for fetching available models from OpenAI-compatible, Claude, and Ollama providers
- Replace manual model ID input with SearchableSelect in EditorSettingsDialog, including refresh button and loading state
- Add i18n translations for model list UI (en, es, zh-CN)
- Add tests for settings dialog layout and web driver management
2026-05-20 16:14:56 +08:00
t8y2
41445ff474
chore: add rustfmt.toml and apply unified code formatting
2026-05-05 14:16:18 +08:00
t8y2
f9a9945f1f
feat: migrate storage from JSON files to SQLite
...
Replace all JSON file storage (connections, secrets, history, AI config,
conversations, sidebar layout) with a single SQLite database (dbx.db).
Auto-migrates existing JSON data on first launch, renaming old files to
.bak. Remove keyring dependency — passwords now stored in SQLite.
2026-05-05 04:48:45 +08:00
t8y2
cf4f25fd52
feat: extract dbx-core crate for web deployment support
...
Refactor all database drivers, query execution, schema operations, and
business logic into a shared `dbx-core` crate. The Tauri desktop app
becomes a thin shell delegating to dbx-core, enabling future web and
CLI frontends to reuse the same core.
2026-05-05 03:16:24 +08:00
t8y2
eab5556b6f
feat: enhance AI streaming with reasoning support and UI updates
2026-05-02 20:43:49 +08:00
t8y2
3f71cd6dfa
feat: enhance AI functionality with conversation management and cancellation
2026-05-02 03:05:02 +08:00
t8y2
65cd285567
feat: add AiApiStyle support and integrate into AI completion and streaming functions
2026-05-01 12:10:32 +08:00
t8y2
1e15249da9
feat(ai): 添加流式数据处理和执行 SQL 功能
2026-04-30 21:46:57 +08:00
t8y2
9e7ed096b7
feat: add AI streaming functionality and enhance AI assistant features
2026-04-30 21:25:01 +08:00
t8y2
ccb3667a0c
feat: Enhance AI Assistant with new actions and context handling
2026-04-29 21:32:35 +08:00