dbagent-cli 0.9.5__tar.gz → 0.9.6__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.5 → dbagent_cli-0.9.6}/PKG-INFO +1 -1
  2. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/__init__.py +1 -1
  3. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/agent/generator.py +10 -0
  4. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/agent/pipeline.py +8 -2
  5. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/connectors/base.py +4 -1
  6. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent_cli.egg-info/PKG-INFO +1 -1
  7. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/pyproject.toml +1 -1
  8. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/README.md +0 -0
  9. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/agent/confidence.py +0 -0
  10. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/agent/conversation.py +0 -0
  11. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/agent/doctor.py +0 -0
  12. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/agent/error_classifier.py +0 -0
  13. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/agent/recommender.py +0 -0
  14. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/agent/validator.py +0 -0
  15. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/cli.py +0 -0
  16. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/config.py +0 -0
  17. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/connectors/factory.py +0 -0
  18. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/connectors/mongo.py +0 -0
  19. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/connectors/relational.py +0 -0
  20. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/execution/__init__.py +0 -0
  21. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/execution/cache.py +0 -0
  22. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/execution/changeset.py +0 -0
  23. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/execution/cost.py +0 -0
  24. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/execution/recovery.py +0 -0
  25. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/execution/sandbox.py +0 -0
  26. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/execution/streaming.py +0 -0
  27. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/llm/anthropic_provider.py +0 -0
  28. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/llm/auto_setup.py +0 -0
  29. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/llm/base.py +0 -0
  30. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/llm/deepseek_provider.py +0 -0
  31. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/llm/factory.py +0 -0
  32. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/llm/gemini_provider.py +0 -0
  33. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/llm/groq_provider.py +0 -0
  34. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/llm/mistral_provider.py +0 -0
  35. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/llm/mock_provider.py +0 -0
  36. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/llm/ollama_provider.py +0 -0
  37. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/llm/openai_provider.py +0 -0
  38. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/llm/openrouter_provider.py +0 -0
  39. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/schema/cache.py +0 -0
  40. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/schema/formatter.py +0 -0
  41. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/schema/graph.py +0 -0
  42. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/schema/ground_truth.py +0 -0
  43. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/schema/models.py +0 -0
  44. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/schema/retriever.py +0 -0
  45. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/schema/selector.py +0 -0
  46. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/security/__init__.py +0 -0
  47. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/security/audit.py +0 -0
  48. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/security/environment.py +0 -0
  49. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/security/masking.py +0 -0
  50. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/security/modes.py +0 -0
  51. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/security/rbac.py +0 -0
  52. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/semantic/__init__.py +0 -0
  53. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/semantic/dictionary.py +0 -0
  54. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/semantic/knowledge.py +0 -0
  55. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/semantic/templates.py +0 -0
  56. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/sql/__init__.py +0 -0
  57. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/sql/optimizer.py +0 -0
  58. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/sql/validator.py +0 -0
  59. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/ui/chat_screen.py +0 -0
  60. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/ui/console.py +0 -0
  61. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/ui/grid_window.py +0 -0
  62. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/ui/viewer.py +0 -0
  63. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent/ui/visualizer.py +0 -0
  64. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent_cli.egg-info/SOURCES.txt +0 -0
  65. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent_cli.egg-info/dependency_links.txt +0 -0
  66. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent_cli.egg-info/entry_points.txt +0 -0
  67. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent_cli.egg-info/requires.txt +0 -0
  68. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/dbagent_cli.egg-info/top_level.txt +0 -0
  69. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/setup.cfg +0 -0
  70. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/tests/test_cache.py +0 -0
  71. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/tests/test_cli.py +0 -0
  72. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/tests/test_connectors.py +0 -0
  73. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/tests/test_direct_sql.py +0 -0
  74. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/tests/test_doctor_and_viz.py +0 -0
  75. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/tests/test_generator.py +0 -0
  76. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/tests/test_graph.py +0 -0
  77. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/tests/test_knowledge.py +0 -0
  78. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/tests/test_providers.py +0 -0
  79. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/tests/test_recovery.py +0 -0
  80. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/tests/test_safety.py +0 -0
  81. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/tests/test_sandbox.py +0 -0
  82. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/tests/test_schema.py +0 -0
  83. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/tests/test_security.py +0 -0
  84. {dbagent_cli-0.9.5 → dbagent_cli-0.9.6}/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.5
3
+ Version: 0.9.6
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.5"
5
+ __version__ = "0.9.6"
6
6
  __author__ = "Santhosh Gupta"
@@ -168,11 +168,21 @@ class ScriptGenerator:
168
168
  "mappings also", "find all mappings", "check links", "check mappings",
169
169
  "is fk_", "are fk_", "is pk_", "are pk_", "difference between", "compare",
170
170
  "tell me", "check it and tell me", "check and tell me", "same or different",
171
+ "flow diagram", "flow chart", "give the flow diagram", "give the diagram",
172
+ "show flow diagram", "give diagram", "show diagram", "architecture diagram",
171
173
  ]
172
174
  for kw in analysis_keywords:
173
175
  if kw in prompt_lower:
174
176
  return "analysis"
175
177
 
178
+ # Regex for "how <X> and <Y> were/are linked/connected/related"
179
+ if re.search(r'\bhow\b.*\b(?:linked|connected|related|mapped|joined)\b', prompt_lower):
180
+ return "analysis"
181
+
182
+ # Regex for diagram / blueprint requests
183
+ if re.search(r'\b(?:flow\s+diagram|diagram|flow\s+chart|blueprint|er\s+diagram)\b', prompt_lower):
184
+ return "analysis"
185
+
176
186
  # Comparative analysis questions (e.g. "is fk_site_group_id and fk_group_id same", "are table_a and table_b related")
177
187
  if re.search(r'\b(?:is|are)\b.*\b(?:same|different|difference|related|equal|linked)\b', prompt_lower):
178
188
  return "analysis"
@@ -241,7 +241,7 @@ class QueryPipeline:
241
241
  if not exact and not fuzzy:
242
242
  inherited = self.conversation.get_active_tables()
243
243
  if inherited:
244
- exact = inherited[:4]
244
+ exact = inherited[:8]
245
245
 
246
246
  sub_schema, join_steps = self._get_fast_schema_context(user_prompt, exact, fuzzy)
247
247
  result.schema = sub_schema
@@ -594,10 +594,16 @@ class QueryPipeline:
594
594
  )
595
595
 
596
596
  if result.success:
597
+ sql_tables = set()
598
+ if result.sql:
599
+ import re as _re
600
+ for m in _re.findall(r'\b(?:FROM|JOIN)\s+([a-zA-Z0-9_]+)', result.sql, _re.IGNORECASE):
601
+ sql_tables.add(m.lower())
602
+ turn_tables = list(set((exact or []) + (fuzzy or []) + list(sql_tables)))
597
603
  self.conversation.add_turn(
598
604
  user_prompt=user_prompt,
599
605
  sql=result.sql,
600
- tables=exact or fuzzy,
606
+ tables=turn_tables,
601
607
  is_chat=False,
602
608
  )
603
609
 
@@ -63,7 +63,10 @@ class BaseConnector(ABC):
63
63
  "onto", "over", "under", "before", "after", "during", "since", "until", "across", "along",
64
64
  "throughout", "outside", "inside", "above", "below", "behind", "beyond", "plus", "except",
65
65
  "but", "against", "towards", "upon", "within", "without", "give", "also", "explain", "look",
66
- "know", "make", "take", "help", "view", "count", "done", "good", "nice", "okay", "fine"
66
+ "know", "make", "take", "help", "view", "count", "done", "good", "nice", "okay", "fine",
67
+ "flow", "diagram", "chart", "graph", "link", "links", "structure", "design", "model", "blueprint",
68
+ "mapping", "mappings", "overview", "query", "code", "script", "report", "summary", "relation",
69
+ "relations", "relationship", "relationships", "architecture"
67
70
  }
68
71
 
69
72
  raw_tokens = set(re.findall(r'\b[a-zA-Z0-9_]+\b', prompt_lower))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dbagent-cli
3
- Version: 0.9.5
3
+ Version: 0.9.6
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.5"
7
+ version = "0.9.6"
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