langroid 0.53.1__tar.gz → 0.53.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 (139) hide show
  1. {langroid-0.53.1 → langroid-0.53.2}/PKG-INFO +17 -1
  2. {langroid-0.53.1 → langroid-0.53.2}/README.md +16 -0
  3. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/tools/mcp/fastmcp_client.py +27 -1
  4. {langroid-0.53.1 → langroid-0.53.2}/pyproject.toml +1 -1
  5. {langroid-0.53.1 → langroid-0.53.2}/.gitignore +0 -0
  6. {langroid-0.53.1 → langroid-0.53.2}/LICENSE +0 -0
  7. {langroid-0.53.1 → langroid-0.53.2}/langroid/__init__.py +0 -0
  8. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/__init__.py +0 -0
  9. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/base.py +0 -0
  10. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/batch.py +0 -0
  11. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/callbacks/__init__.py +0 -0
  12. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/callbacks/chainlit.py +0 -0
  13. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/chat_agent.py +0 -0
  14. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/chat_document.py +0 -0
  15. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/openai_assistant.py +0 -0
  16. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/special/__init__.py +0 -0
  17. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/special/arangodb/__init__.py +0 -0
  18. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/special/arangodb/arangodb_agent.py +0 -0
  19. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/special/arangodb/system_messages.py +0 -0
  20. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/special/arangodb/tools.py +0 -0
  21. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/special/arangodb/utils.py +0 -0
  22. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/special/doc_chat_agent.py +0 -0
  23. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/special/doc_chat_task.py +0 -0
  24. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/special/lance_doc_chat_agent.py +0 -0
  25. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/special/lance_rag/__init__.py +0 -0
  26. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/special/lance_rag/critic_agent.py +0 -0
  27. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/special/lance_rag/lance_rag_task.py +0 -0
  28. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/special/lance_rag/query_planner_agent.py +0 -0
  29. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/special/lance_tools.py +0 -0
  30. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/special/neo4j/__init__.py +0 -0
  31. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/special/neo4j/csv_kg_chat.py +0 -0
  32. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/special/neo4j/neo4j_chat_agent.py +0 -0
  33. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/special/neo4j/system_messages.py +0 -0
  34. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/special/neo4j/tools.py +0 -0
  35. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/special/relevance_extractor_agent.py +0 -0
  36. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/special/retriever_agent.py +0 -0
  37. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/special/sql/__init__.py +0 -0
  38. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/special/sql/sql_chat_agent.py +0 -0
  39. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/special/sql/utils/__init__.py +0 -0
  40. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/special/sql/utils/description_extractors.py +0 -0
  41. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/special/sql/utils/populate_metadata.py +0 -0
  42. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/special/sql/utils/system_message.py +0 -0
  43. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/special/sql/utils/tools.py +0 -0
  44. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/special/table_chat_agent.py +0 -0
  45. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/task.py +0 -0
  46. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/tool_message.py +0 -0
  47. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/tools/__init__.py +0 -0
  48. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/tools/duckduckgo_search_tool.py +0 -0
  49. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/tools/exa_search_tool.py +0 -0
  50. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/tools/file_tools.py +0 -0
  51. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/tools/google_search_tool.py +0 -0
  52. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/tools/mcp/__init__.py +0 -0
  53. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/tools/mcp/decorators.py +0 -0
  54. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/tools/metaphor_search_tool.py +0 -0
  55. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/tools/orchestration.py +0 -0
  56. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/tools/recipient_tool.py +0 -0
  57. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/tools/retrieval_tool.py +0 -0
  58. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/tools/rewind_tool.py +0 -0
  59. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/tools/segment_extract_tool.py +0 -0
  60. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/tools/tavily_search_tool.py +0 -0
  61. {langroid-0.53.1 → langroid-0.53.2}/langroid/agent/xml_tool_message.py +0 -0
  62. {langroid-0.53.1 → langroid-0.53.2}/langroid/cachedb/__init__.py +0 -0
  63. {langroid-0.53.1 → langroid-0.53.2}/langroid/cachedb/base.py +0 -0
  64. {langroid-0.53.1 → langroid-0.53.2}/langroid/cachedb/redis_cachedb.py +0 -0
  65. {langroid-0.53.1 → langroid-0.53.2}/langroid/embedding_models/__init__.py +0 -0
  66. {langroid-0.53.1 → langroid-0.53.2}/langroid/embedding_models/base.py +0 -0
  67. {langroid-0.53.1 → langroid-0.53.2}/langroid/embedding_models/models.py +0 -0
  68. {langroid-0.53.1 → langroid-0.53.2}/langroid/embedding_models/protoc/__init__.py +0 -0
  69. {langroid-0.53.1 → langroid-0.53.2}/langroid/embedding_models/protoc/embeddings.proto +0 -0
  70. {langroid-0.53.1 → langroid-0.53.2}/langroid/embedding_models/protoc/embeddings_pb2.py +0 -0
  71. {langroid-0.53.1 → langroid-0.53.2}/langroid/embedding_models/protoc/embeddings_pb2.pyi +0 -0
  72. {langroid-0.53.1 → langroid-0.53.2}/langroid/embedding_models/protoc/embeddings_pb2_grpc.py +0 -0
  73. {langroid-0.53.1 → langroid-0.53.2}/langroid/embedding_models/remote_embeds.py +0 -0
  74. {langroid-0.53.1 → langroid-0.53.2}/langroid/exceptions.py +0 -0
  75. {langroid-0.53.1 → langroid-0.53.2}/langroid/language_models/__init__.py +0 -0
  76. {langroid-0.53.1 → langroid-0.53.2}/langroid/language_models/azure_openai.py +0 -0
  77. {langroid-0.53.1 → langroid-0.53.2}/langroid/language_models/base.py +0 -0
  78. {langroid-0.53.1 → langroid-0.53.2}/langroid/language_models/config.py +0 -0
  79. {langroid-0.53.1 → langroid-0.53.2}/langroid/language_models/mock_lm.py +0 -0
  80. {langroid-0.53.1 → langroid-0.53.2}/langroid/language_models/model_info.py +0 -0
  81. {langroid-0.53.1 → langroid-0.53.2}/langroid/language_models/openai_gpt.py +0 -0
  82. {langroid-0.53.1 → langroid-0.53.2}/langroid/language_models/prompt_formatter/__init__.py +0 -0
  83. {langroid-0.53.1 → langroid-0.53.2}/langroid/language_models/prompt_formatter/base.py +0 -0
  84. {langroid-0.53.1 → langroid-0.53.2}/langroid/language_models/prompt_formatter/hf_formatter.py +0 -0
  85. {langroid-0.53.1 → langroid-0.53.2}/langroid/language_models/prompt_formatter/llama2_formatter.py +0 -0
  86. {langroid-0.53.1 → langroid-0.53.2}/langroid/language_models/utils.py +0 -0
  87. {langroid-0.53.1 → langroid-0.53.2}/langroid/mytypes.py +0 -0
  88. {langroid-0.53.1 → langroid-0.53.2}/langroid/parsing/__init__.py +0 -0
  89. {langroid-0.53.1 → langroid-0.53.2}/langroid/parsing/agent_chats.py +0 -0
  90. {langroid-0.53.1 → langroid-0.53.2}/langroid/parsing/code_parser.py +0 -0
  91. {langroid-0.53.1 → langroid-0.53.2}/langroid/parsing/document_parser.py +0 -0
  92. {langroid-0.53.1 → langroid-0.53.2}/langroid/parsing/file_attachment.py +0 -0
  93. {langroid-0.53.1 → langroid-0.53.2}/langroid/parsing/md_parser.py +0 -0
  94. {langroid-0.53.1 → langroid-0.53.2}/langroid/parsing/para_sentence_split.py +0 -0
  95. {langroid-0.53.1 → langroid-0.53.2}/langroid/parsing/parse_json.py +0 -0
  96. {langroid-0.53.1 → langroid-0.53.2}/langroid/parsing/parser.py +0 -0
  97. {langroid-0.53.1 → langroid-0.53.2}/langroid/parsing/pdf_utils.py +0 -0
  98. {langroid-0.53.1 → langroid-0.53.2}/langroid/parsing/repo_loader.py +0 -0
  99. {langroid-0.53.1 → langroid-0.53.2}/langroid/parsing/routing.py +0 -0
  100. {langroid-0.53.1 → langroid-0.53.2}/langroid/parsing/search.py +0 -0
  101. {langroid-0.53.1 → langroid-0.53.2}/langroid/parsing/spider.py +0 -0
  102. {langroid-0.53.1 → langroid-0.53.2}/langroid/parsing/table_loader.py +0 -0
  103. {langroid-0.53.1 → langroid-0.53.2}/langroid/parsing/url_loader.py +0 -0
  104. {langroid-0.53.1 → langroid-0.53.2}/langroid/parsing/urls.py +0 -0
  105. {langroid-0.53.1 → langroid-0.53.2}/langroid/parsing/utils.py +0 -0
  106. {langroid-0.53.1 → langroid-0.53.2}/langroid/parsing/web_search.py +0 -0
  107. {langroid-0.53.1 → langroid-0.53.2}/langroid/prompts/__init__.py +0 -0
  108. {langroid-0.53.1 → langroid-0.53.2}/langroid/prompts/dialog.py +0 -0
  109. {langroid-0.53.1 → langroid-0.53.2}/langroid/prompts/prompts_config.py +0 -0
  110. {langroid-0.53.1 → langroid-0.53.2}/langroid/prompts/templates.py +0 -0
  111. {langroid-0.53.1 → langroid-0.53.2}/langroid/py.typed +0 -0
  112. {langroid-0.53.1 → langroid-0.53.2}/langroid/pydantic_v1/__init__.py +0 -0
  113. {langroid-0.53.1 → langroid-0.53.2}/langroid/pydantic_v1/main.py +0 -0
  114. {langroid-0.53.1 → langroid-0.53.2}/langroid/utils/__init__.py +0 -0
  115. {langroid-0.53.1 → langroid-0.53.2}/langroid/utils/algorithms/__init__.py +0 -0
  116. {langroid-0.53.1 → langroid-0.53.2}/langroid/utils/algorithms/graph.py +0 -0
  117. {langroid-0.53.1 → langroid-0.53.2}/langroid/utils/configuration.py +0 -0
  118. {langroid-0.53.1 → langroid-0.53.2}/langroid/utils/constants.py +0 -0
  119. {langroid-0.53.1 → langroid-0.53.2}/langroid/utils/git_utils.py +0 -0
  120. {langroid-0.53.1 → langroid-0.53.2}/langroid/utils/globals.py +0 -0
  121. {langroid-0.53.1 → langroid-0.53.2}/langroid/utils/logging.py +0 -0
  122. {langroid-0.53.1 → langroid-0.53.2}/langroid/utils/object_registry.py +0 -0
  123. {langroid-0.53.1 → langroid-0.53.2}/langroid/utils/output/__init__.py +0 -0
  124. {langroid-0.53.1 → langroid-0.53.2}/langroid/utils/output/citations.py +0 -0
  125. {langroid-0.53.1 → langroid-0.53.2}/langroid/utils/output/printing.py +0 -0
  126. {langroid-0.53.1 → langroid-0.53.2}/langroid/utils/output/status.py +0 -0
  127. {langroid-0.53.1 → langroid-0.53.2}/langroid/utils/pandas_utils.py +0 -0
  128. {langroid-0.53.1 → langroid-0.53.2}/langroid/utils/pydantic_utils.py +0 -0
  129. {langroid-0.53.1 → langroid-0.53.2}/langroid/utils/system.py +0 -0
  130. {langroid-0.53.1 → langroid-0.53.2}/langroid/utils/types.py +0 -0
  131. {langroid-0.53.1 → langroid-0.53.2}/langroid/vector_store/__init__.py +0 -0
  132. {langroid-0.53.1 → langroid-0.53.2}/langroid/vector_store/base.py +0 -0
  133. {langroid-0.53.1 → langroid-0.53.2}/langroid/vector_store/chromadb.py +0 -0
  134. {langroid-0.53.1 → langroid-0.53.2}/langroid/vector_store/lancedb.py +0 -0
  135. {langroid-0.53.1 → langroid-0.53.2}/langroid/vector_store/meilisearch.py +0 -0
  136. {langroid-0.53.1 → langroid-0.53.2}/langroid/vector_store/pineconedb.py +0 -0
  137. {langroid-0.53.1 → langroid-0.53.2}/langroid/vector_store/postgres.py +0 -0
  138. {langroid-0.53.1 → langroid-0.53.2}/langroid/vector_store/qdrantdb.py +0 -0
  139. {langroid-0.53.1 → langroid-0.53.2}/langroid/vector_store/weaviatedb.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: langroid
3
- Version: 0.53.1
3
+ Version: 0.53.2
4
4
  Summary: Harness LLMs with Multi-Agent Programming
5
5
  Author-email: Prasad Chalasani <pchalasani@gmail.com>
6
6
  License: MIT
@@ -338,6 +338,22 @@ teacher_task.run()
338
338
  <details>
339
339
  <summary> <b>Click to expand</b></summary>
340
340
 
341
+ - **Mar-Apr 2025:**
342
+ - [0.53.0](https://github.com/langroid/langroid/releases/tag/0.53.0) MCP Tools Support.
343
+ - [0.52.0](https://github.com/langroid/langroid/releases/tag/0.52.0) Multimodal support, i.e. allow PDF, image
344
+ inputs to LLM.
345
+ - [0.51.0](https://github.com/langroid/langroid/releases/tag/0.51.0) `LLMPdfParser`, generalizing
346
+ `GeminiPdfParser` to parse documents directly with LLM.
347
+ - [0.50.0](https://github.com/langroid/langroid/releases/tag/0.50.0) Structure-aware Markdown chunking with chunks
348
+ enriched by section headers.
349
+ - [0.49.0](https://github.com/langroid/langroid/releases/tag/0.49.0) Enable easy switch to LiteLLM Proxy-server
350
+ - [0.48.0](https://github.com/langroid/langroid/releases/tag/0.48.0) Exa Crawler, Markitdown Parser
351
+ - [0.47.0](https://github.com/langroid/langroid/releases/tag/0.47.0) Support Firecrawl URL scraper/crawler -
352
+ thanks @abab-dev
353
+ - [0.46.0](https://github.com/langroid/langroid/releases/tag/0.46.0) Support LangDB LLM Gateway - thanks @MrunmayS.
354
+ - [0.45.0](https://github.com/langroid/langroid/releases/tag/0.45.0) Markdown parsing with `Marker` - thanks @abab-dev
355
+ - [0.44.0](https://github.com/langroid/langroid/releases/tag/0.44.0) Late imports to reduce startup time. Thanks
356
+ @abab-dev
341
357
  - **Feb 2025:**
342
358
  - [0.43.0](https://github.com/langroid/langroid/releases/tag/0.43.0): `GeminiPdfParser` for parsing PDF using
343
359
  Gemini LLMs - Thanks @abab-dev.
@@ -137,6 +137,22 @@ teacher_task.run()
137
137
  <details>
138
138
  <summary> <b>Click to expand</b></summary>
139
139
 
140
+ - **Mar-Apr 2025:**
141
+ - [0.53.0](https://github.com/langroid/langroid/releases/tag/0.53.0) MCP Tools Support.
142
+ - [0.52.0](https://github.com/langroid/langroid/releases/tag/0.52.0) Multimodal support, i.e. allow PDF, image
143
+ inputs to LLM.
144
+ - [0.51.0](https://github.com/langroid/langroid/releases/tag/0.51.0) `LLMPdfParser`, generalizing
145
+ `GeminiPdfParser` to parse documents directly with LLM.
146
+ - [0.50.0](https://github.com/langroid/langroid/releases/tag/0.50.0) Structure-aware Markdown chunking with chunks
147
+ enriched by section headers.
148
+ - [0.49.0](https://github.com/langroid/langroid/releases/tag/0.49.0) Enable easy switch to LiteLLM Proxy-server
149
+ - [0.48.0](https://github.com/langroid/langroid/releases/tag/0.48.0) Exa Crawler, Markitdown Parser
150
+ - [0.47.0](https://github.com/langroid/langroid/releases/tag/0.47.0) Support Firecrawl URL scraper/crawler -
151
+ thanks @abab-dev
152
+ - [0.46.0](https://github.com/langroid/langroid/releases/tag/0.46.0) Support LangDB LLM Gateway - thanks @MrunmayS.
153
+ - [0.45.0](https://github.com/langroid/langroid/releases/tag/0.45.0) Markdown parsing with `Marker` - thanks @abab-dev
154
+ - [0.44.0](https://github.com/langroid/langroid/releases/tag/0.44.0) Late imports to reduce startup time. Thanks
155
+ @abab-dev
140
156
  - **Feb 2025:**
141
157
  - [0.43.0](https://github.com/langroid/langroid/releases/tag/0.43.0): `GeminiPdfParser` for parsing PDF using
142
158
  Gemini LLMs - Thanks @abab-dev.
@@ -134,6 +134,24 @@ class FastMCPClient:
134
134
  camel_case = "".join(part.capitalize() for part in parts)
135
135
  model_name = f"{camel_case}Tool"
136
136
 
137
+ from langroid.agent.tool_message import ToolMessage as _BaseToolMessage
138
+
139
+ # IMPORTANT: Avoid clashes with reserved field names in Langroid ToolMessage!
140
+ # First figure out which field names are reserved
141
+ reserved = set(_BaseToolMessage.__annotations__.keys())
142
+ reserved.update(["recipient", "_handler"])
143
+ renamed: Dict[str, str] = {}
144
+ new_fields: Dict[str, Tuple[type, Any]] = {}
145
+ for fname, (ftype, fld) in fields.items():
146
+ if fname in reserved:
147
+ new_name = fname + "__"
148
+ renamed[fname] = new_name
149
+ new_fields[new_name] = (ftype, fld)
150
+ else:
151
+ new_fields[fname] = (ftype, fld)
152
+ # now replace fields with our renamed‐aware mapping
153
+ fields = new_fields
154
+
137
155
  # create Langroid ToolMessage subclass, with expected fields.
138
156
  tool_model = cast(
139
157
  Type[ToolMessage],
@@ -146,6 +164,7 @@ class FastMCPClient:
146
164
  ),
147
165
  )
148
166
  tool_model._server = self.server # type: ignore[attr-defined]
167
+ tool_model._renamed_fields = renamed # type: ignore[attr-defined]
149
168
 
150
169
  # 2) define an arg-free call_tool_async()
151
170
  async def call_tool_async(self: ToolMessage) -> Any:
@@ -153,6 +172,12 @@ class FastMCPClient:
153
172
 
154
173
  # pack up the payload
155
174
  payload = self.dict(exclude=self.Config.schema_extra["exclude"])
175
+
176
+ # restore any renamed fields
177
+ for orig, new in self.__class__._renamed_fields.items(): # type: ignore
178
+ if new in payload:
179
+ payload[orig] = payload.pop(new)
180
+
156
181
  # open a fresh client, call the tool, then close
157
182
  async with FastMCPClient(self.__class__._server) as client: # type: ignore
158
183
  return await client.call_mcp_tool(self.request, payload)
@@ -185,7 +210,8 @@ class FastMCPClient:
185
210
 
186
211
  async def get_mcp_tool_async(self, name: str) -> Optional[Tool]:
187
212
  """Find the "original" MCP Tool (i.e. of type mcp.types.Tool) on the server
188
- matching `name`, or None if missing.
213
+ matching `name`, or None if missing. This contains the metadata for the tool:
214
+ name, description, inputSchema, etc.
189
215
 
190
216
  Args:
191
217
  name: Name of the tool to look up.
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "langroid"
3
- version = "0.53.1"
3
+ version = "0.53.2"
4
4
  authors = [
5
5
  {name = "Prasad Chalasani", email = "pchalasani@gmail.com"},
6
6
  ]
File without changes
File without changes
File without changes
File without changes