agentx-dev 3.1.1__tar.gz → 3.1.2__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 (68) hide show
  1. {agentx_dev-3.1.1/agentx_dev.egg-info → agentx_dev-3.1.2}/PKG-INFO +1 -1
  2. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/agentx_dev/Evals.py +8 -2
  3. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/agentx_dev/Tools.py +54 -0
  4. {agentx_dev-3.1.1 → agentx_dev-3.1.2/agentx_dev.egg-info}/PKG-INFO +1 -1
  5. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/pyproject.toml +1 -1
  6. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/AGENTX.md +0 -0
  7. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/LICENSE +0 -0
  8. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/MANIFEST.in +0 -0
  9. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/README.md +0 -0
  10. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/agentx_dev/Agents/Agent.py +0 -0
  11. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/agentx_dev/Agents/__init__.py +0 -0
  12. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/agentx_dev/AsyncTools.py +0 -0
  13. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/agentx_dev/AutoSetup.py +0 -0
  14. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/agentx_dev/Cache.py +0 -0
  15. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/agentx_dev/ChatModel.py +0 -0
  16. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/agentx_dev/Compiler.py +0 -0
  17. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/agentx_dev/Config.py +0 -0
  18. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/agentx_dev/DefaultTools.py +0 -0
  19. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/agentx_dev/Embeddings.py +0 -0
  20. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/agentx_dev/Handoffs.py +0 -0
  21. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/agentx_dev/Loader.py +0 -0
  22. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/agentx_dev/MCP.py +0 -0
  23. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/agentx_dev/Memory.py +0 -0
  24. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/agentx_dev/Observability.py +0 -0
  25. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/agentx_dev/Planner.py +0 -0
  26. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/agentx_dev/Runner/AgentRun.py +0 -0
  27. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/agentx_dev/Runner/AsyncAgentRun.py +0 -0
  28. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/agentx_dev/Runner/__init__.py +0 -0
  29. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/agentx_dev/Runner/promptTemplate.yaml +0 -0
  30. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/agentx_dev/Session.py +0 -0
  31. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/agentx_dev/Splitters.py +0 -0
  32. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/agentx_dev/Streaming.py +0 -0
  33. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/agentx_dev/Supervisor.py +0 -0
  34. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/agentx_dev/VectorStores/__init__.py +0 -0
  35. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/agentx_dev/VectorStores/chroma_store.py +0 -0
  36. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/agentx_dev/VectorStores/pg_store.py +0 -0
  37. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/agentx_dev/VectorStores/qdrant_store.py +0 -0
  38. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/agentx_dev/WebTools.py +0 -0
  39. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/agentx_dev/__init__.py +0 -0
  40. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/agentx_dev/resources/__init__.py +0 -0
  41. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/agentx_dev/resources/promptTemplate.yaml +0 -0
  42. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/agentx_dev.egg-info/SOURCES.txt +0 -0
  43. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/agentx_dev.egg-info/dependency_links.txt +0 -0
  44. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/agentx_dev.egg-info/requires.txt +0 -0
  45. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/agentx_dev.egg-info/top_level.txt +0 -0
  46. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/examples/README.md +0 -0
  47. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/examples/agentic_rag_demo.py +0 -0
  48. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/examples/async_example.py +0 -0
  49. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/examples/async_quickstart.py +0 -0
  50. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/examples/auto_features_example.py +0 -0
  51. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/examples/caching_example.py +0 -0
  52. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/examples/chatbot_example.py +0 -0
  53. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/examples/complete_example.py +0 -0
  54. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/examples/concurrent_example.py +0 -0
  55. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/examples/concurrent_tool_example.py +0 -0
  56. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/examples/file_agent_demo.py +0 -0
  57. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/examples/function_calling_demo.py +0 -0
  58. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/examples/mcp_demo.py +0 -0
  59. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/examples/observability_example.py +0 -0
  60. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/examples/orchestration_demo.py +0 -0
  61. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/examples/planner_example.py +0 -0
  62. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/examples/supervisor_codebase_analysis_demo.py +0 -0
  63. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/examples/supervisor_example.py +0 -0
  64. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/examples/sync_quickstart.py +0 -0
  65. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/examples/v3_1_1_features_demo.py +0 -0
  66. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/examples/v3_1_comprehensive_demo.py +0 -0
  67. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/examples/v3_1_features_demo.py +0 -0
  68. {agentx_dev-3.1.1 → agentx_dev-3.1.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentx-dev
3
- Version: 3.1.1
3
+ Version: 3.1.2
4
4
  Summary: A production-grade Python framework for building LLM agents. Multi-provider chat, permission-gated tools, RAG (in-mem + Chroma/Qdrant/pgvector), semantic memory, Supervisor + Handoffs multi-agent orchestration with streaming, evals harness, prompt caching, Batch API, prompt-optimizer, MCP integration.
5
5
  Author-email: Bruce-Arhin Shadrach <brucearhin098@gmail.com>
6
6
  License: MIT License
@@ -168,8 +168,14 @@ def llm_judge(
168
168
  except Exception as e:
169
169
  return False, f"llm_judge({criterion!r}): ERROR calling judge -- {e}"
170
170
  first_line = reply.splitlines()[0] if reply else ""
171
- first_word = first_line.split(None, 1)[0].upper() if first_line else ""
172
- ok = first_word == "YES"
171
+ # Match YES or NO at the start of the reply, respecting word
172
+ # boundaries. Different providers punctuate the verdict
173
+ # differently ("YES", "Yes.", "YES,", "yes -- ") -- all of
174
+ # these should register as YES.
175
+ import re as _re
176
+ m = _re.match(r"\s*(YES|NO)\b", first_line, _re.IGNORECASE)
177
+ verdict = m.group(1).upper() if m else ""
178
+ ok = verdict == "YES"
173
179
  return ok, f"llm_judge({criterion!r}): {'PASS' if ok else 'FAIL'} -- {first_line[:120]}"
174
180
  return _check
175
181
 
@@ -167,6 +167,60 @@ from typing import List, Dict, Any
167
167
  # # Suggestion: Placing local application imports after standard library imports is a common convention.
168
168
 
169
169
 
170
+ # ---------------------------------------------------------------------------
171
+ # Convenience re-exports so `agentx_dev.Tools` is a one-stop namespace
172
+ #
173
+ # Users can now import any tool from this module:
174
+ #
175
+ # from agentx_dev.Tools import (
176
+ # StandardTool, StructuredTool, # wrappers (defined above)
177
+ # web_search_tool, web_fetch_tool, # web
178
+ # vector_search_tool, # RAG
179
+ # handoff_tool, # multi-agent
180
+ # DefaultTools, Permissions, # sandboxed filesystem tools
181
+ # )
182
+ #
183
+ # The top-level imports (from agentx_dev import ...) still work; this is
184
+ # purely additive so callers who prefer the namespaced form get it too.
185
+ # Lazy-import-inside-getattr keeps import time low and avoids circular
186
+ # imports with modules that already import from Tools.py.
187
+ # ---------------------------------------------------------------------------
188
+
189
+ _TOOL_EXPORTS = {
190
+ # Web tools
191
+ "web_search_tool": ("agentx_dev.WebTools", "web_search_tool"),
192
+ "web_fetch_tool": ("agentx_dev.WebTools", "web_fetch_tool"),
193
+ # RAG
194
+ "vector_search_tool": ("agentx_dev.Embeddings", "vector_search_tool"),
195
+ # Multi-agent handoffs
196
+ "handoff_tool": ("agentx_dev.Handoffs", "handoff_tool"),
197
+ # Async tool wrappers (siblings to Standard/Structured)
198
+ "AsyncStandardTool": ("agentx_dev.AsyncTools", "AsyncStandardTool"),
199
+ "AsyncStructuredTool": ("agentx_dev.AsyncTools", "AsyncStructuredTool"),
200
+ # Filesystem / permissions
201
+ "DefaultTools": ("agentx_dev.DefaultTools", "DefaultTools"),
202
+ "Permissions": ("agentx_dev.DefaultTools", "Permissions"),
203
+ }
204
+
205
+
206
+ def __getattr__(name):
207
+ """PEP 562 module __getattr__: lazy-load re-exports on first access."""
208
+ if name in _TOOL_EXPORTS:
209
+ import importlib
210
+ mod_name, attr_name = _TOOL_EXPORTS[name]
211
+ mod = importlib.import_module(mod_name)
212
+ obj = getattr(mod, attr_name)
213
+ # Cache on the module so subsequent lookups skip the importlib call.
214
+ globals()[name] = obj
215
+ return obj
216
+ raise AttributeError(f"module 'agentx_dev.Tools' has no attribute {name!r}")
217
+
218
+
219
+ def __dir__():
220
+ """Expose the re-exports to `dir(agentx_dev.Tools)` and IDE autocomplete."""
221
+ return sorted(list(globals().keys()) + list(_TOOL_EXPORTS.keys()))
222
+
223
+
170
224
 
171
225
 
172
226
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentx-dev
3
- Version: 3.1.1
3
+ Version: 3.1.2
4
4
  Summary: A production-grade Python framework for building LLM agents. Multi-provider chat, permission-gated tools, RAG (in-mem + Chroma/Qdrant/pgvector), semantic memory, Supervisor + Handoffs multi-agent orchestration with streaming, evals harness, prompt caching, Batch API, prompt-optimizer, MCP integration.
5
5
  Author-email: Bruce-Arhin Shadrach <brucearhin098@gmail.com>
6
6
  License: MIT License
@@ -1,7 +1,7 @@
1
1
  [project]
2
2
 
3
3
  name = "agentx-dev"
4
- version = "3.1.1"
4
+ version = "3.1.2"
5
5
  description = "A production-grade Python framework for building LLM agents. Multi-provider chat, permission-gated tools, RAG (in-mem + Chroma/Qdrant/pgvector), semantic memory, Supervisor + Handoffs multi-agent orchestration with streaming, evals harness, prompt caching, Batch API, prompt-optimizer, MCP integration."
6
6
  authors = [{ name = "Bruce-Arhin Shadrach", email = "brucearhin098@gmail.com" }]
7
7
  # Best practice: link to the license file
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes