dbagent-cli 0.9.3__tar.gz → 0.9.4__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.
Files changed (84) hide show
  1. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/PKG-INFO +1 -1
  2. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/__init__.py +1 -1
  3. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/schema/ground_truth.py +31 -3
  4. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent_cli.egg-info/PKG-INFO +1 -1
  5. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/pyproject.toml +1 -1
  6. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/README.md +0 -0
  7. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/agent/confidence.py +0 -0
  8. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/agent/conversation.py +0 -0
  9. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/agent/doctor.py +0 -0
  10. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/agent/error_classifier.py +0 -0
  11. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/agent/generator.py +0 -0
  12. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/agent/pipeline.py +0 -0
  13. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/agent/recommender.py +0 -0
  14. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/agent/validator.py +0 -0
  15. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/cli.py +0 -0
  16. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/config.py +0 -0
  17. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/connectors/base.py +0 -0
  18. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/connectors/factory.py +0 -0
  19. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/connectors/mongo.py +0 -0
  20. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/connectors/relational.py +0 -0
  21. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/execution/__init__.py +0 -0
  22. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/execution/cache.py +0 -0
  23. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/execution/changeset.py +0 -0
  24. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/execution/cost.py +0 -0
  25. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/execution/recovery.py +0 -0
  26. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/execution/sandbox.py +0 -0
  27. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/execution/streaming.py +0 -0
  28. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/llm/anthropic_provider.py +0 -0
  29. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/llm/auto_setup.py +0 -0
  30. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/llm/base.py +0 -0
  31. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/llm/deepseek_provider.py +0 -0
  32. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/llm/factory.py +0 -0
  33. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/llm/gemini_provider.py +0 -0
  34. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/llm/groq_provider.py +0 -0
  35. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/llm/mistral_provider.py +0 -0
  36. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/llm/mock_provider.py +0 -0
  37. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/llm/ollama_provider.py +0 -0
  38. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/llm/openai_provider.py +0 -0
  39. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/llm/openrouter_provider.py +0 -0
  40. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/schema/cache.py +0 -0
  41. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/schema/formatter.py +0 -0
  42. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/schema/graph.py +0 -0
  43. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/schema/models.py +0 -0
  44. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/schema/retriever.py +0 -0
  45. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/schema/selector.py +0 -0
  46. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/security/__init__.py +0 -0
  47. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/security/audit.py +0 -0
  48. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/security/environment.py +0 -0
  49. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/security/masking.py +0 -0
  50. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/security/modes.py +0 -0
  51. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/security/rbac.py +0 -0
  52. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/semantic/__init__.py +0 -0
  53. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/semantic/dictionary.py +0 -0
  54. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/semantic/knowledge.py +0 -0
  55. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/semantic/templates.py +0 -0
  56. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/sql/__init__.py +0 -0
  57. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/sql/optimizer.py +0 -0
  58. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/sql/validator.py +0 -0
  59. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/ui/chat_screen.py +0 -0
  60. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/ui/console.py +0 -0
  61. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/ui/grid_window.py +0 -0
  62. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/ui/viewer.py +0 -0
  63. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent/ui/visualizer.py +0 -0
  64. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent_cli.egg-info/SOURCES.txt +0 -0
  65. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent_cli.egg-info/dependency_links.txt +0 -0
  66. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent_cli.egg-info/entry_points.txt +0 -0
  67. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent_cli.egg-info/requires.txt +0 -0
  68. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/dbagent_cli.egg-info/top_level.txt +0 -0
  69. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/setup.cfg +0 -0
  70. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/tests/test_cache.py +0 -0
  71. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/tests/test_cli.py +0 -0
  72. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/tests/test_connectors.py +0 -0
  73. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/tests/test_direct_sql.py +0 -0
  74. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/tests/test_doctor_and_viz.py +0 -0
  75. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/tests/test_generator.py +0 -0
  76. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/tests/test_graph.py +0 -0
  77. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/tests/test_knowledge.py +0 -0
  78. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/tests/test_providers.py +0 -0
  79. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/tests/test_recovery.py +0 -0
  80. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/tests/test_safety.py +0 -0
  81. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/tests/test_sandbox.py +0 -0
  82. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/tests/test_schema.py +0 -0
  83. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/tests/test_security.py +0 -0
  84. {dbagent_cli-0.9.3 → dbagent_cli-0.9.4}/tests/test_semantic.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dbagent-cli
3
- Version: 0.9.3
3
+ Version: 0.9.4
4
4
  Summary: Enterprise AI Database Copilot, Schema Graph Introspector & Autonomous Recovery Agent (CLI)
5
5
  Author: Santhosh Gupta
6
6
  Requires-Python: >=3.9
@@ -2,5 +2,5 @@
2
2
  DB-Agent: Universal Database Introspection and Script Generation AI Agent (CLI).
3
3
  """
4
4
 
5
- __version__ = "0.9.3"
5
+ __version__ = "0.9.4"
6
6
  __author__ = "Santhosh Gupta"
@@ -42,6 +42,8 @@ class GroundTruthValidationResult:
42
42
  lines.append(f" [dim]• ... and {len(self.verified_fks) - 4} more[/dim]")
43
43
  if self.sql_queries_checked > 0:
44
44
  lines.append(f" [bold green]✓[/bold green] [bold white]SQL Queries Verified:[/bold white] {self.sql_queries_checked} dialect statement(s) validated against schema")
45
+ for missing in self.missing_tables:
46
+ lines.append(f" [bold yellow]⚠ Note:[/bold yellow] Query referenced [dim]{missing}[/dim]")
45
47
  for tbl, cols in self.missing_columns.items():
46
48
  lines.append(f" [bold red]⚠ Warning:[/bold red] Column(s) [yellow]{', '.join(cols)}[/yellow] not found in table [cyan]{tbl}[/cyan]")
47
49
  return "\n".join(lines)
@@ -83,14 +85,40 @@ class SchemaGroundTruthValidator:
83
85
  if fk_desc not in result.verified_fks:
84
86
  result.verified_fks.append(fk_desc)
85
87
 
86
- # 2. Extract and count SQL queries
88
+ # 2. Extract and validate SQL queries against physical schema
87
89
  sql_blocks = re.findall(r'```(?:sql)?\s*([\s\S]*?)\s*```', response_text, re.IGNORECASE)
88
90
  result.sql_queries_checked = len(sql_blocks)
91
+ sql_referenced_tables = set()
92
+
93
+ for block in sql_blocks:
94
+ # Extract FROM and JOIN table references
95
+ matches = re.findall(r'\b(?:FROM|JOIN)\s+([a-zA-Z0-9_]+)', block, re.IGNORECASE)
96
+ for m in matches:
97
+ m_clean = m.strip().lower()
98
+ sql_referenced_tables.add(m_clean)
99
+
100
+ for sql_tbl in sql_referenced_tables:
101
+ if sql_tbl in schema_table_map:
102
+ if schema_table_map[sql_tbl].name not in result.verified_tables:
103
+ result.verified_tables.append(schema_table_map[sql_tbl].name)
104
+ else:
105
+ # Check if it's a common alias or slight naming divergence
106
+ found_match = None
107
+ for real_tbl in schema_table_map:
108
+ if sql_tbl in real_tbl or real_tbl in sql_tbl:
109
+ found_match = schema_table_map[real_tbl].name
110
+ break
111
+ if found_match:
112
+ result.missing_tables.append(f"{sql_tbl} ➔ (Actual: {found_match})")
113
+ else:
114
+ result.missing_tables.append(sql_tbl)
89
115
 
90
116
  total_checked = len(result.verified_tables)
91
- if total_checked > 0:
117
+ if result.missing_tables:
118
+ result.score_pct = max(70, 100 - (len(result.missing_tables) * 15))
119
+ elif total_checked > 0:
92
120
  result.score_pct = 100
93
121
  else:
94
122
  result.score_pct = 95
95
-
123
+
96
124
  return result
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dbagent-cli
3
- Version: 0.9.3
3
+ Version: 0.9.4
4
4
  Summary: Enterprise AI Database Copilot, Schema Graph Introspector & Autonomous Recovery Agent (CLI)
5
5
  Author: Santhosh Gupta
6
6
  Requires-Python: >=3.9
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "dbagent-cli"
7
- version = "0.9.3"
7
+ version = "0.9.4"
8
8
  description = "Enterprise AI Database Copilot, Schema Graph Introspector & Autonomous Recovery Agent (CLI)"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
File without changes
File without changes
File without changes