upgrade to deepagents-0_5_2
This commit is contained in:
parent
b6976cc8bf
commit
788bb0089f
@ -4,7 +4,9 @@
|
||||
"""
|
||||
|
||||
from pathlib import Path
|
||||
from typing import Annotated, Literal, cast
|
||||
from typing import Annotated, cast
|
||||
import mimetypes
|
||||
import warnings
|
||||
|
||||
from langchain.tools import ToolRuntime
|
||||
from langchain_core.messages import ToolMessage
|
||||
@ -15,19 +17,24 @@ from deepagents.backends import StateBackend
|
||||
from deepagents.backends.composite import CompositeBackend
|
||||
from deepagents.backends.protocol import (
|
||||
BACKEND_TYPES,
|
||||
ReadResult,
|
||||
)
|
||||
from deepagents.backends.utils import _get_file_type, validate_path
|
||||
from langchain_core.messages.content import ContentBlock
|
||||
from deepagents.middleware.filesystem import (
|
||||
DEFAULT_READ_OFFSET,
|
||||
DEFAULT_READ_LIMIT,
|
||||
IMAGE_EXTENSIONS,
|
||||
IMAGE_MEDIA_TYPES,
|
||||
FilesystemMiddleware,
|
||||
FilesystemState,
|
||||
READ_FILE_TOOL_DESCRIPTION,
|
||||
READ_FILE_TRUNCATION_MSG,
|
||||
NUM_CHARS_PER_TOKEN,
|
||||
ReadFileSchema,
|
||||
check_empty_content,
|
||||
format_content_with_line_numbers,
|
||||
)
|
||||
|
||||
from langgraph.types import Command
|
||||
import base64
|
||||
from langchain_core.messages.content import create_image_block
|
||||
|
||||
|
||||
# SKILL.md 文件的行数限制(设置为较大的值以完整读取)
|
||||
@ -44,10 +51,62 @@ class CustomFilesystemMiddleware(FilesystemMiddleware):
|
||||
@override
|
||||
def _create_read_file_tool(self) -> BaseTool:
|
||||
"""创建自定义的 read_file 工具,支持 SKILL.md 完整读取。"""
|
||||
# 从父类获取工具描述
|
||||
tool_description = self._custom_tool_descriptions.get("read_file") or self._get_read_file_description()
|
||||
tool_description = self._custom_tool_descriptions.get("read_file") or READ_FILE_TOOL_DESCRIPTION
|
||||
token_limit = self._tool_token_limit_before_evict
|
||||
|
||||
def _truncate(content: str, file_path: str, limit: int) -> str:
|
||||
lines = content.splitlines(keepends=True)
|
||||
if len(lines) > limit:
|
||||
lines = lines[:limit]
|
||||
content = "".join(lines)
|
||||
|
||||
if token_limit and len(content) >= NUM_CHARS_PER_TOKEN * token_limit:
|
||||
truncation_msg = READ_FILE_TRUNCATION_MSG.format(file_path=file_path)
|
||||
max_content_length = NUM_CHARS_PER_TOKEN * token_limit - len(truncation_msg)
|
||||
content = content[:max_content_length] + truncation_msg
|
||||
|
||||
return content
|
||||
|
||||
def _handle_read_result(
|
||||
read_result: ReadResult | str,
|
||||
validated_path: str,
|
||||
tool_call_id: str | None,
|
||||
offset: int,
|
||||
limit: int,
|
||||
) -> ToolMessage | str:
|
||||
if isinstance(read_result, str):
|
||||
warnings.warn(
|
||||
"Returning a plain `str` from `backend.read()` is deprecated. ",
|
||||
DeprecationWarning,
|
||||
stacklevel=2,
|
||||
)
|
||||
return _truncate(read_result, validated_path, limit)
|
||||
|
||||
if read_result.error:
|
||||
return f"Error: {read_result.error}"
|
||||
|
||||
if read_result.file_data is None:
|
||||
return f"Error: no data returned for '{validated_path}'"
|
||||
|
||||
file_type = _get_file_type(validated_path)
|
||||
content = read_result.file_data["content"]
|
||||
|
||||
if file_type != "text":
|
||||
mime_type = mimetypes.guess_type("file" + Path(validated_path).suffix)[0] or "application/octet-stream"
|
||||
return ToolMessage(
|
||||
content_blocks=cast("list[ContentBlock]", [{"type": file_type, "base64": content, "mime_type": mime_type}]),
|
||||
name="read_file",
|
||||
tool_call_id=tool_call_id,
|
||||
additional_kwargs={"read_file_path": validated_path, "read_file_media_type": mime_type},
|
||||
)
|
||||
|
||||
empty_msg = check_empty_content(content)
|
||||
if empty_msg:
|
||||
return empty_msg
|
||||
|
||||
content = format_content_with_line_numbers(content, start_line=offset + 1)
|
||||
return _truncate(content, validated_path, limit)
|
||||
|
||||
def sync_read_file(
|
||||
file_path: Annotated[str, "Absolute path to the file to read. Must be absolute, not relative."],
|
||||
runtime: ToolRuntime[None, FilesystemState],
|
||||
@ -55,57 +114,18 @@ class CustomFilesystemMiddleware(FilesystemMiddleware):
|
||||
limit: Annotated[int, "Maximum number of lines to read. Use for pagination of large files."] = DEFAULT_READ_LIMIT,
|
||||
) -> ToolMessage | str:
|
||||
"""Synchronous wrapper for read_file tool with SKILL.md special handling."""
|
||||
from deepagents.backends.utils import validate_path
|
||||
from deepagents.middleware.filesystem import READ_FILE_TRUNCATION_MSG, NUM_CHARS_PER_TOKEN
|
||||
|
||||
resolved_backend = self._get_backend(runtime)
|
||||
try:
|
||||
validated_path = validate_path(file_path)
|
||||
except ValueError as e:
|
||||
return f"Error: {e}"
|
||||
|
||||
ext = Path(validated_path).suffix.lower()
|
||||
# 处理图片文件
|
||||
if ext in IMAGE_EXTENSIONS:
|
||||
responses = resolved_backend.download_files([validated_path])
|
||||
if responses and responses[0].content is not None:
|
||||
media_type = IMAGE_MEDIA_TYPES.get(ext, "image/png")
|
||||
image_b64 = base64.standard_b64encode(responses[0].content).decode("utf-8")
|
||||
return ToolMessage(
|
||||
content_blocks=[create_image_block(base64=image_b64, mime_type=media_type)],
|
||||
name="read_file",
|
||||
tool_call_id=runtime.tool_call_id,
|
||||
additional_kwargs={
|
||||
"read_file_path": validated_path,
|
||||
"read_file_media_type": media_type,
|
||||
},
|
||||
)
|
||||
if responses and responses[0].error:
|
||||
return f"Error reading image: {responses[0].error}"
|
||||
return "Error reading image: unknown error"
|
||||
|
||||
# 如果是 SKILL.md 文件,使用大限制读取完整内容
|
||||
if validated_path.endswith("SKILL.md") or validated_path.endswith("/SKILL.md"):
|
||||
actual_limit = SKILL_MD_READ_LIMIT
|
||||
else:
|
||||
actual_limit = limit
|
||||
limit = SKILL_MD_READ_LIMIT
|
||||
|
||||
result = resolved_backend.read(validated_path, offset=offset, limit=actual_limit)
|
||||
|
||||
lines = result.splitlines(keepends=True)
|
||||
if len(lines) > actual_limit:
|
||||
lines = lines[:actual_limit]
|
||||
result = "".join(lines)
|
||||
|
||||
# Check if result exceeds token threshold and truncate if necessary
|
||||
if token_limit and len(result) >= NUM_CHARS_PER_TOKEN * token_limit:
|
||||
# Calculate truncation message length to ensure final result stays under threshold
|
||||
truncation_msg = READ_FILE_TRUNCATION_MSG.format(file_path=validated_path)
|
||||
max_content_length = NUM_CHARS_PER_TOKEN * token_limit - len(truncation_msg)
|
||||
result = result[:max_content_length]
|
||||
result += truncation_msg
|
||||
|
||||
return result
|
||||
read_result = resolved_backend.read(validated_path, offset=offset, limit=limit)
|
||||
return _handle_read_result(read_result, validated_path, runtime.tool_call_id, offset, limit)
|
||||
|
||||
async def async_read_file(
|
||||
file_path: Annotated[str, "Absolute path to the file to read. Must be absolute, not relative."],
|
||||
@ -114,66 +134,28 @@ class CustomFilesystemMiddleware(FilesystemMiddleware):
|
||||
limit: Annotated[int, "Maximum number of lines to read. Use for pagination of large files."] = DEFAULT_READ_LIMIT,
|
||||
) -> ToolMessage | str:
|
||||
"""Asynchronous wrapper for read_file tool with SKILL.md special handling."""
|
||||
from deepagents.backends.utils import validate_path
|
||||
from deepagents.middleware.filesystem import READ_FILE_TRUNCATION_MSG, NUM_CHARS_PER_TOKEN
|
||||
|
||||
resolved_backend = self._get_backend(runtime)
|
||||
try:
|
||||
validated_path = validate_path(file_path)
|
||||
except ValueError as e:
|
||||
return f"Error: {e}"
|
||||
|
||||
ext = Path(validated_path).suffix.lower()
|
||||
# 处理图片文件
|
||||
if ext in IMAGE_EXTENSIONS:
|
||||
responses = await resolved_backend.adownload_files([validated_path])
|
||||
if responses and responses[0].content is not None:
|
||||
media_type = IMAGE_MEDIA_TYPES.get(ext, "image/png")
|
||||
image_b64 = base64.standard_b64encode(responses[0].content).decode("utf-8")
|
||||
return ToolMessage(
|
||||
content_blocks=[create_image_block(base64=image_b64, mime_type=media_type)],
|
||||
name="read_file",
|
||||
tool_call_id=runtime.tool_call_id,
|
||||
additional_kwargs={
|
||||
"read_file_path": validated_path,
|
||||
"read_file_media_type": media_type,
|
||||
},
|
||||
)
|
||||
if responses and responses[0].error:
|
||||
return f"Error reading image: {responses[0].error}"
|
||||
return "Error reading image: unknown error"
|
||||
|
||||
# 如果是 SKILL.md 文件,使用大限制读取完整内容
|
||||
if validated_path.endswith("SKILL.md") or validated_path.endswith("/SKILL.md"):
|
||||
actual_limit = SKILL_MD_READ_LIMIT
|
||||
else:
|
||||
actual_limit = limit
|
||||
limit = SKILL_MD_READ_LIMIT
|
||||
|
||||
result = await resolved_backend.aread(validated_path, offset=offset, limit=actual_limit)
|
||||
|
||||
lines = result.splitlines(keepends=True)
|
||||
if len(lines) > actual_limit:
|
||||
lines = lines[:actual_limit]
|
||||
result = "".join(lines)
|
||||
|
||||
# Check if result exceeds token threshold and truncate if necessary
|
||||
if token_limit and len(result) >= NUM_CHARS_PER_TOKEN * token_limit:
|
||||
# Calculate truncation message length to ensure final result stays under threshold
|
||||
truncation_msg = READ_FILE_TRUNCATION_MSG.format(file_path=validated_path)
|
||||
max_content_length = NUM_CHARS_PER_TOKEN * token_limit - len(truncation_msg)
|
||||
result = result[:max_content_length]
|
||||
result += truncation_msg
|
||||
|
||||
return result
|
||||
read_result = await resolved_backend.aread(validated_path, offset=offset, limit=limit)
|
||||
return _handle_read_result(read_result, validated_path, runtime.tool_call_id, offset, limit)
|
||||
|
||||
return StructuredTool.from_function(
|
||||
name="read_file",
|
||||
description=tool_description,
|
||||
func=sync_read_file,
|
||||
coroutine=async_read_file,
|
||||
infer_schema=False,
|
||||
args_schema=ReadFileSchema,
|
||||
)
|
||||
|
||||
def _get_read_file_description(self) -> str:
|
||||
"""获取 read_file 工具的描述,添加 SKILL.md 完整读取的说明。"""
|
||||
from deepagents.middleware.filesystem import READ_FILE_TOOL_DESCRIPTION
|
||||
return READ_FILE_TOOL_DESCRIPTION
|
||||
|
||||
@ -405,19 +405,22 @@ def create_custom_cli_agent(
|
||||
# Use LocalShellBackend for filesystem + shell execution
|
||||
backend = LocalShellBackend(
|
||||
root_dir=workspace_root,
|
||||
virtual_mode=False,
|
||||
inherit_env=True,
|
||||
env=final_shell_env,
|
||||
)
|
||||
else:
|
||||
# No shell access - use plain FilesystemBackend
|
||||
backend = FilesystemBackend(root_dir=workspace_root)
|
||||
backend = FilesystemBackend(root_dir=workspace_root, virtual_mode=True)
|
||||
|
||||
# Set up composite backend with routing (参考新版本实现)
|
||||
large_results_backend = FilesystemBackend(
|
||||
root_dir=tempfile.mkdtemp(prefix="deepagents_large_results_"),
|
||||
virtual_mode=True,
|
||||
)
|
||||
conversation_history_backend = FilesystemBackend(
|
||||
root_dir=tempfile.mkdtemp(prefix="deepagents_conversation_history_"),
|
||||
virtual_mode=True,
|
||||
)
|
||||
composite_backend = CompositeBackend(
|
||||
default=backend,
|
||||
@ -433,7 +436,7 @@ def create_custom_cli_agent(
|
||||
|
||||
agent_middleware.append(
|
||||
CustomSkillsMiddleware(
|
||||
backend=FilesystemBackend(root_dir=workspace_root),
|
||||
backend=FilesystemBackend(root_dir=workspace_root, virtual_mode=True),
|
||||
sources=skills_sources,
|
||||
)
|
||||
)
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
from ast import Str
|
||||
from langchain.agents.middleware import AgentState, AgentMiddleware, ModelRequest, ModelResponse
|
||||
from langchain_core.messages import convert_to_openai_messages
|
||||
from agent.prompt_loader import load_guideline_prompt
|
||||
|
||||
1653
poetry.lock
generated
1653
poetry.lock
generated
File diff suppressed because it is too large
Load Diff
@ -6,7 +6,7 @@ authors = [
|
||||
{name = "朱潮",email = "zhuchaowe@users.noreply.github.com"}
|
||||
]
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.12,<4.0"
|
||||
requires-python = ">=3.12,<3.15"
|
||||
dependencies = [
|
||||
"fastapi==0.116.1",
|
||||
"uvicorn==0.35.0",
|
||||
@ -26,12 +26,12 @@ dependencies = [
|
||||
"chardet>=5.0.0",
|
||||
"psutil (>=7.1.3,<8.0.0)",
|
||||
"uvloop (>=0.22.1,<0.23.0)",
|
||||
"deepagents (>=0.4.3,<0.5.0)",
|
||||
"deepagents (>=0.5.2,<0.6.0)",
|
||||
"langchain-mcp-adapters (>=0.2.1,<0.3.0)",
|
||||
"langchain-openai (>=1.1.1,<2.0.0)",
|
||||
"cachetools (>=6.2.4,<7.0.0)",
|
||||
"langgraph-checkpoint-postgres (>=3.0.0,<4.0.0)",
|
||||
"deepagents-cli (>=0.0.25,<0.0.26)",
|
||||
"deepagents-cli (>=0.0.37,<0.1.0)",
|
||||
"mem0ai (>=0.1.50,<0.3.0)",
|
||||
"psycopg2-binary (>=2.9.11,<3.0.0)",
|
||||
"json-repair (>=0.29.0,<0.30.0)",
|
||||
|
||||
397
requirements.txt
397
requirements.txt
@ -1,199 +1,202 @@
|
||||
aiofiles==24.1.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
aiohappyeyeballs==2.6.1 ; python_version >= "3.12" and python_version < "4.0"
|
||||
aiohttp-retry==2.9.1 ; python_version >= "3.12" and python_version < "4.0"
|
||||
aiohttp==3.13.1 ; python_version >= "3.12" and python_version < "4.0"
|
||||
aiosignal==1.4.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
aiosqlite==0.22.1 ; python_version >= "3.12" and python_version < "4.0"
|
||||
annotated-types==0.7.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
anthropic==0.84.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
anyio==4.11.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
attrs==25.4.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
backoff==2.2.1 ; python_version >= "3.12" and python_version < "4.0"
|
||||
beautifulsoup4==4.14.3 ; python_version >= "3.12" and python_version < "4.0"
|
||||
bracex==2.6 ; python_version >= "3.12" and python_version < "4.0"
|
||||
cachetools==6.2.4 ; python_version >= "3.12" and python_version < "4.0"
|
||||
cbor2==5.7.1 ; python_version >= "3.12" and python_version < "4.0"
|
||||
certifi==2025.10.5 ; python_version >= "3.12" and python_version < "4.0"
|
||||
cffi==2.0.0 ; python_version >= "3.12" and python_version < "4.0" and platform_python_implementation != "PyPy"
|
||||
chardet==5.2.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
charset-normalizer==3.4.4 ; python_version >= "3.12" and python_version < "4.0"
|
||||
click==8.3.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
colorama==0.4.6 ; python_version >= "3.12" and python_version < "4.0" and platform_system == "Windows"
|
||||
croniter==3.0.4 ; python_version >= "3.12" and python_version < "4.0"
|
||||
cryptography==46.0.5 ; python_version >= "3.12" and python_version < "4.0"
|
||||
daytona-api-client-async==0.127.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
daytona-api-client==0.127.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
daytona-toolbox-api-client-async==0.127.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
daytona-toolbox-api-client==0.127.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
daytona==0.127.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
deepagents-cli==0.0.25 ; python_version >= "3.12" and python_version < "4.0"
|
||||
deepagents==0.4.3 ; python_version >= "3.12" and python_version < "4.0"
|
||||
defusedxml==0.7.1 ; python_version >= "3.12" and python_version < "4.0"
|
||||
deprecated==1.3.1 ; python_version >= "3.12" and python_version < "4.0"
|
||||
distro==1.9.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
docstring-parser==0.17.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
environs==14.5.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
et-xmlfile==2.0.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
fastapi==0.116.1 ; python_version >= "3.12" and python_version < "4.0"
|
||||
filelock==3.20.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
filetype==1.2.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
frozenlist==1.8.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
fsspec==2025.9.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
google-auth==2.48.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
google-genai==1.65.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
greenlet==3.3.0 ; python_version >= "3.12" and python_version < "4.0" and (platform_machine == "aarch64" or platform_machine == "ppc64le" or platform_machine == "x86_64" or platform_machine == "amd64" or platform_machine == "AMD64" or platform_machine == "win32" or platform_machine == "WIN32")
|
||||
grpcio-tools==1.71.2 ; python_version >= "3.13" and python_version < "4.0"
|
||||
grpcio==1.76.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
grpclib==0.4.8 ; python_version >= "3.12" and python_version < "4.0"
|
||||
h11==0.16.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
h2==4.3.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
hf-xet==1.1.10 ; python_version >= "3.12" and python_version < "4.0" and (platform_machine == "x86_64" or platform_machine == "amd64" or platform_machine == "arm64" or platform_machine == "aarch64")
|
||||
hpack==4.1.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
httpcore==1.0.9 ; python_version >= "3.12" and python_version < "4.0"
|
||||
httpx-sse==0.4.3 ; python_version >= "3.12" and python_version < "4.0"
|
||||
httpx==0.28.1 ; python_version >= "3.12" and python_version < "4.0"
|
||||
huey==2.5.3 ; python_version >= "3.12" and python_version < "4.0"
|
||||
huggingface-hub==0.35.3 ; python_version >= "3.12" and python_version < "4.0"
|
||||
hyperframe==6.1.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
idna==3.11 ; python_version >= "3.12" and python_version < "4.0"
|
||||
jinja2==3.1.6 ; python_version >= "3.12" and python_version < "4.0"
|
||||
jiter==0.11.1 ; python_version >= "3.12" and python_version < "4.0"
|
||||
joblib==1.5.2 ; python_version >= "3.12" and python_version < "4.0"
|
||||
json-repair==0.29.10 ; python_version >= "3.12" and python_version < "4.0"
|
||||
json5==0.13.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
jsonpatch==1.33 ; python_version >= "3.12" and python_version < "4.0"
|
||||
jsonpointer==3.0.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
jsonschema-specifications==2025.9.1 ; python_version >= "3.12" and python_version < "4.0"
|
||||
jsonschema==4.25.1 ; python_version >= "3.12" and python_version < "4.0"
|
||||
langchain-anthropic==1.3.4 ; python_version >= "3.12" and python_version < "4.0"
|
||||
langchain-core==1.2.16 ; python_version >= "3.12" and python_version < "4.0"
|
||||
langchain-google-genai==4.2.1 ; python_version >= "3.12" and python_version < "4.0"
|
||||
langchain-mcp-adapters==0.2.1 ; python_version >= "3.12" and python_version < "4.0"
|
||||
langchain-openai==1.1.9 ; python_version >= "3.12" and python_version < "4.0"
|
||||
langchain==1.2.10 ; python_version >= "3.12" and python_version < "4.0"
|
||||
langgraph-checkpoint-postgres==3.0.4 ; python_version >= "3.12" and python_version < "4.0"
|
||||
langgraph-checkpoint-sqlite==3.0.3 ; python_version >= "3.12" and python_version < "4.0"
|
||||
langgraph-checkpoint==4.0.1 ; python_version >= "3.12" and python_version < "4.0"
|
||||
langgraph-prebuilt==1.0.8 ; python_version >= "3.12" and python_version < "4.0"
|
||||
langgraph-sdk==0.3.3 ; python_version >= "3.12" and python_version < "4.0"
|
||||
langgraph==1.0.10 ; python_version >= "3.12" and python_version < "4.0"
|
||||
langsmith==0.7.9 ; python_version >= "3.12" and python_version < "4.0"
|
||||
linkify-it-py==2.1.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
markdown-it-py==4.0.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
markdownify==1.2.2 ; python_version >= "3.12" and python_version < "4.0"
|
||||
markupsafe==3.0.3 ; python_version >= "3.12" and python_version < "4.0"
|
||||
marshmallow==4.1.1 ; python_version >= "3.12" and python_version < "4.0"
|
||||
mcp==1.12.4 ; python_version >= "3.12" and python_version < "4.0"
|
||||
mdit-py-plugins==0.5.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
mdurl==0.1.2 ; python_version >= "3.12" and python_version < "4.0"
|
||||
mem0ai==0.1.116 ; python_version >= "3.12" and python_version < "4.0"
|
||||
modal==1.2.1 ; python_version >= "3.12" and python_version < "4.0"
|
||||
mpmath==1.3.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
multidict==6.7.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
multipart==1.3.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
networkx==3.5 ; python_version >= "3.12" and python_version < "4.0"
|
||||
numpy==1.26.4 ; python_version >= "3.12" and python_version < "4.0"
|
||||
nvidia-cublas-cu12==12.1.3.1 ; python_version >= "3.12" and python_version < "4.0" and platform_system == "Linux" and platform_machine == "x86_64"
|
||||
nvidia-cuda-cupti-cu12==12.1.105 ; python_version >= "3.12" and python_version < "4.0" and platform_system == "Linux" and platform_machine == "x86_64"
|
||||
nvidia-cuda-nvrtc-cu12==12.1.105 ; python_version >= "3.12" and python_version < "4.0" and platform_system == "Linux" and platform_machine == "x86_64"
|
||||
nvidia-cuda-runtime-cu12==12.1.105 ; python_version >= "3.12" and python_version < "4.0" and platform_system == "Linux" and platform_machine == "x86_64"
|
||||
nvidia-cudnn-cu12==8.9.2.26 ; python_version >= "3.12" and python_version < "4.0" and platform_system == "Linux" and platform_machine == "x86_64"
|
||||
nvidia-cufft-cu12==11.0.2.54 ; python_version >= "3.12" and python_version < "4.0" and platform_system == "Linux" and platform_machine == "x86_64"
|
||||
nvidia-curand-cu12==10.3.2.106 ; python_version >= "3.12" and python_version < "4.0" and platform_system == "Linux" and platform_machine == "x86_64"
|
||||
nvidia-cusolver-cu12==11.4.5.107 ; python_version >= "3.12" and python_version < "4.0" and platform_system == "Linux" and platform_machine == "x86_64"
|
||||
nvidia-cusparse-cu12==12.1.0.106 ; python_version >= "3.12" and python_version < "4.0" and platform_system == "Linux" and platform_machine == "x86_64"
|
||||
nvidia-nccl-cu12==2.19.3 ; python_version >= "3.12" and python_version < "4.0" and platform_system == "Linux" and platform_machine == "x86_64"
|
||||
nvidia-nvjitlink-cu12==12.9.86 ; python_version >= "3.12" and python_version < "4.0" and platform_system == "Linux" and platform_machine == "x86_64"
|
||||
nvidia-nvtx-cu12==12.1.105 ; python_version >= "3.12" and python_version < "4.0" and platform_system == "Linux" and platform_machine == "x86_64"
|
||||
obstore==0.7.3 ; python_version >= "3.12" and python_version < "4.0"
|
||||
openai==2.5.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
openpyxl==3.1.5 ; python_version >= "3.12" and python_version < "4.0"
|
||||
orjson==3.11.5 ; python_version >= "3.12" and python_version < "4.0"
|
||||
ormsgpack==1.12.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
packaging==25.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
pandas==2.3.3 ; python_version >= "3.12" and python_version < "4.0"
|
||||
pillow==12.0.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
platformdirs==4.9.2 ; python_version >= "3.12" and python_version < "4.0"
|
||||
portalocker==2.10.1 ; python_version >= "3.13" and python_version < "4.0"
|
||||
agent-client-protocol==0.9.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
aiofiles==24.1.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
aiohappyeyeballs==2.6.1 ; python_version >= "3.12" and python_version < "3.15"
|
||||
aiohttp==3.13.1 ; python_version >= "3.12" and python_version < "3.15"
|
||||
aiosignal==1.4.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
aiosqlite==0.22.1 ; python_version >= "3.12" and python_version < "3.15"
|
||||
annotated-types==0.7.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
anthropic==0.94.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
anyio==4.11.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
attrs==25.4.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
backoff==2.2.1 ; python_version >= "3.12" and python_version < "3.15"
|
||||
beautifulsoup4==4.14.3 ; python_version >= "3.12" and python_version < "3.15"
|
||||
blockbuster==1.5.26 ; python_version >= "3.12" and python_version < "3.15"
|
||||
bracex==2.6 ; python_version >= "3.12" and python_version < "3.15"
|
||||
cachetools==6.2.4 ; python_version >= "3.12" and python_version < "3.15"
|
||||
certifi==2025.10.5 ; python_version >= "3.12" and python_version < "3.15"
|
||||
cffi==2.0.0 ; python_version >= "3.12" and python_version < "3.15" and platform_python_implementation != "PyPy"
|
||||
chardet==5.2.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
charset-normalizer==3.4.4 ; python_version >= "3.12" and python_version < "3.15"
|
||||
click==8.3.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
cloudpickle==3.1.2 ; python_version >= "3.12" and python_version < "3.15"
|
||||
colorama==0.4.6 ; python_version >= "3.12" and python_version < "3.15" and platform_system == "Windows"
|
||||
croniter==3.0.4 ; python_version >= "3.12" and python_version < "3.15"
|
||||
cryptography==46.0.5 ; python_version >= "3.12" and python_version < "3.15"
|
||||
deepagents-acp==0.0.5 ; python_version >= "3.12" and python_version < "3.15"
|
||||
deepagents-cli==0.0.37 ; python_version >= "3.12" and python_version < "3.15"
|
||||
deepagents==0.5.2 ; python_version >= "3.12" and python_version < "3.15"
|
||||
defusedxml==0.7.1 ; python_version >= "3.12" and python_version < "3.15"
|
||||
distro==1.9.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
docstring-parser==0.17.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
et-xmlfile==2.0.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
fastapi==0.116.1 ; python_version >= "3.12" and python_version < "3.15"
|
||||
filelock==3.20.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
filetype==1.2.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
forbiddenfruit==0.1.4 ; python_version >= "3.12" and python_version < "3.15" and implementation_name == "cpython"
|
||||
frozenlist==1.8.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
fsspec==2025.9.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
google-auth==2.48.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
google-genai==1.65.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
googleapis-common-protos==1.74.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
greenlet==3.3.0 ; python_version >= "3.12" and python_version < "3.15" and (platform_machine == "aarch64" or platform_machine == "ppc64le" or platform_machine == "x86_64" or platform_machine == "amd64" or platform_machine == "AMD64" or platform_machine == "win32" or platform_machine == "WIN32")
|
||||
grpcio-health-checking==1.78.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
grpcio-tools==1.78.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
grpcio==1.78.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
h11==0.16.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
h2==4.3.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
hf-xet==1.1.10 ; python_version >= "3.12" and python_version < "3.15" and (platform_machine == "x86_64" or platform_machine == "amd64" or platform_machine == "arm64" or platform_machine == "aarch64")
|
||||
hpack==4.1.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
httpcore==1.0.9 ; python_version >= "3.12" and python_version < "3.15"
|
||||
httptools==0.7.1 ; python_version >= "3.12" and python_version < "3.15" and platform_system != "Windows"
|
||||
httpx-sse==0.4.3 ; python_version >= "3.12" and python_version < "3.15"
|
||||
httpx==0.28.1 ; python_version >= "3.12" and python_version < "3.15"
|
||||
huey==2.5.3 ; python_version >= "3.12" and python_version < "3.15"
|
||||
huggingface-hub==0.35.3 ; python_version >= "3.12" and python_version < "3.15"
|
||||
hyperframe==6.1.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
idna==3.11 ; python_version >= "3.12" and python_version < "3.15"
|
||||
importlib-metadata==8.7.1 ; python_version >= "3.12" and python_version < "3.15"
|
||||
jinja2==3.1.6 ; python_version >= "3.12" and python_version < "3.15"
|
||||
jiter==0.11.1 ; python_version >= "3.12" and python_version < "3.15"
|
||||
joblib==1.5.2 ; python_version >= "3.12" and python_version < "3.15"
|
||||
json-repair==0.29.10 ; python_version >= "3.12" and python_version < "3.15"
|
||||
json5==0.13.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
jsonpatch==1.33 ; python_version >= "3.12" and python_version < "3.15"
|
||||
jsonpointer==3.0.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
jsonschema-rs==0.44.1 ; python_version >= "3.12" and python_version < "3.15"
|
||||
jsonschema-specifications==2025.9.1 ; python_version >= "3.12" and python_version < "3.15"
|
||||
jsonschema==4.25.1 ; python_version >= "3.12" and python_version < "3.15"
|
||||
langchain-anthropic==1.4.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
langchain-core==1.2.28 ; python_version >= "3.12" and python_version < "3.15"
|
||||
langchain-google-genai==4.2.1 ; python_version >= "3.12" and python_version < "3.15"
|
||||
langchain-mcp-adapters==0.2.1 ; python_version >= "3.12" and python_version < "3.15"
|
||||
langchain-openai==1.1.12 ; python_version >= "3.12" and python_version < "3.15"
|
||||
langchain==1.2.15 ; python_version >= "3.12" and python_version < "3.15"
|
||||
langgraph-api==0.7.100 ; python_version >= "3.12" and python_version < "3.15"
|
||||
langgraph-checkpoint-postgres==3.0.4 ; python_version >= "3.12" and python_version < "3.15"
|
||||
langgraph-checkpoint-sqlite==3.0.3 ; python_version >= "3.12" and python_version < "3.15"
|
||||
langgraph-checkpoint==4.0.1 ; python_version >= "3.12" and python_version < "3.15"
|
||||
langgraph-cli==0.4.21 ; python_version >= "3.12" and python_version < "3.15"
|
||||
langgraph-prebuilt==1.0.9 ; python_version >= "3.12" and python_version < "3.15"
|
||||
langgraph-runtime-inmem==0.27.3 ; python_version >= "3.12" and python_version < "3.15"
|
||||
langgraph-sdk==0.3.13 ; python_version >= "3.12" and python_version < "3.15"
|
||||
langgraph==1.1.6 ; python_version >= "3.12" and python_version < "3.15"
|
||||
langsmith==0.7.9 ; python_version >= "3.12" and python_version < "3.15"
|
||||
linkify-it-py==2.1.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
markdown-it-py==4.0.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
markdownify==1.2.2 ; python_version >= "3.12" and python_version < "3.15"
|
||||
markupsafe==3.0.3 ; python_version >= "3.12" and python_version < "3.15"
|
||||
mcp==1.12.4 ; python_version >= "3.12" and python_version < "3.15"
|
||||
mdit-py-plugins==0.5.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
mdurl==0.1.2 ; python_version >= "3.12" and python_version < "3.15"
|
||||
mem0ai==0.1.115 ; python_version >= "3.12" and python_version < "3.15"
|
||||
mpmath==1.3.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
multidict==6.7.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
networkx==3.5 ; python_version >= "3.12" and python_version < "3.15"
|
||||
numpy==1.26.4 ; python_version >= "3.12" and python_version < "3.15"
|
||||
nvidia-cublas-cu12==12.1.3.1 ; python_version >= "3.12" and python_version < "3.15" and platform_system == "Linux" and platform_machine == "x86_64"
|
||||
nvidia-cuda-cupti-cu12==12.1.105 ; python_version >= "3.12" and python_version < "3.15" and platform_system == "Linux" and platform_machine == "x86_64"
|
||||
nvidia-cuda-nvrtc-cu12==12.1.105 ; python_version >= "3.12" and python_version < "3.15" and platform_system == "Linux" and platform_machine == "x86_64"
|
||||
nvidia-cuda-runtime-cu12==12.1.105 ; python_version >= "3.12" and python_version < "3.15" and platform_system == "Linux" and platform_machine == "x86_64"
|
||||
nvidia-cudnn-cu12==8.9.2.26 ; python_version >= "3.12" and python_version < "3.15" and platform_system == "Linux" and platform_machine == "x86_64"
|
||||
nvidia-cufft-cu12==11.0.2.54 ; python_version >= "3.12" and python_version < "3.15" and platform_system == "Linux" and platform_machine == "x86_64"
|
||||
nvidia-curand-cu12==10.3.2.106 ; python_version >= "3.12" and python_version < "3.15" and platform_system == "Linux" and platform_machine == "x86_64"
|
||||
nvidia-cusolver-cu12==11.4.5.107 ; python_version >= "3.12" and python_version < "3.15" and platform_system == "Linux" and platform_machine == "x86_64"
|
||||
nvidia-cusparse-cu12==12.1.0.106 ; python_version >= "3.12" and python_version < "3.15" and platform_system == "Linux" and platform_machine == "x86_64"
|
||||
nvidia-nccl-cu12==2.19.3 ; python_version >= "3.12" and python_version < "3.15" and platform_system == "Linux" and platform_machine == "x86_64"
|
||||
nvidia-nvjitlink-cu12==12.9.86 ; python_version >= "3.12" and python_version < "3.15" and platform_system == "Linux" and platform_machine == "x86_64"
|
||||
nvidia-nvtx-cu12==12.1.105 ; python_version >= "3.12" and python_version < "3.15" and platform_system == "Linux" and platform_machine == "x86_64"
|
||||
openai==2.31.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
openpyxl==3.1.5 ; python_version >= "3.12" and python_version < "3.15"
|
||||
opentelemetry-api==1.41.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
opentelemetry-exporter-otlp-proto-common==1.41.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
opentelemetry-exporter-otlp-proto-http==1.41.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
opentelemetry-proto==1.41.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
opentelemetry-sdk==1.41.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
opentelemetry-semantic-conventions==0.62b0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
orjson==3.11.5 ; python_version >= "3.12" and python_version < "3.15"
|
||||
ormsgpack==1.12.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
packaging==25.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
pandas==2.3.3 ; python_version >= "3.12" and python_version < "3.15"
|
||||
pathspec==1.0.4 ; python_version >= "3.12" and python_version < "3.15"
|
||||
pillow==12.0.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
platformdirs==4.9.2 ; python_version >= "3.12" and python_version < "3.15"
|
||||
portalocker==2.10.1 ; python_version >= "3.13" and python_version < "3.15"
|
||||
portalocker==3.2.0 ; python_version == "3.12"
|
||||
posthog==7.6.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
prompt-toolkit==3.0.52 ; python_version >= "3.12" and python_version < "4.0"
|
||||
propcache==0.4.1 ; python_version >= "3.12" and python_version < "4.0"
|
||||
protobuf==5.29.5 ; python_version >= "3.12" and python_version < "4.0"
|
||||
psutil==7.1.3 ; python_version >= "3.12" and python_version < "4.0"
|
||||
psycopg-pool==3.3.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
psycopg2-binary==2.9.11 ; python_version >= "3.12" and python_version < "4.0"
|
||||
psycopg==3.3.2 ; python_version >= "3.12" and python_version < "4.0"
|
||||
pyasn1-modules==0.4.2 ; python_version >= "3.12" and python_version < "4.0"
|
||||
pyasn1==0.6.2 ; python_version >= "3.12" and python_version < "4.0"
|
||||
pycparser==3.0 ; python_version >= "3.12" and python_version < "4.0" and platform_python_implementation != "PyPy" and implementation_name != "PyPy"
|
||||
pydantic-core==2.27.2 ; python_version >= "3.12" and python_version < "4.0"
|
||||
pydantic-settings==2.11.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
pydantic==2.10.5 ; python_version >= "3.12" and python_version < "4.0"
|
||||
pygments==2.19.2 ; python_version >= "3.12" and python_version < "4.0"
|
||||
pyperclip==1.11.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
python-dateutil==2.8.2 ; python_version >= "3.12" and python_version < "4.0"
|
||||
python-dotenv==1.1.1 ; python_version >= "3.12" and python_version < "4.0"
|
||||
python-multipart==0.0.20 ; python_version >= "3.12" and python_version < "4.0"
|
||||
pytz==2025.2 ; python_version >= "3.12" and python_version < "4.0"
|
||||
pywin32==311 ; python_version >= "3.12" and python_version < "4.0" and (sys_platform == "win32" or platform_system == "Windows")
|
||||
pyyaml==6.0.3 ; python_version >= "3.12" and python_version < "4.0"
|
||||
qdrant-client==1.12.1 ; python_version >= "3.13" and python_version < "4.0"
|
||||
posthog==7.6.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
prompt-toolkit==3.0.52 ; python_version >= "3.12" and python_version < "3.15"
|
||||
propcache==0.4.1 ; python_version >= "3.12" and python_version < "3.15"
|
||||
protobuf==6.33.6 ; python_version >= "3.12" and python_version < "3.15"
|
||||
psutil==7.1.3 ; python_version >= "3.12" and python_version < "3.15"
|
||||
psycopg-pool==3.3.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
psycopg2-binary==2.9.11 ; python_version >= "3.12" and python_version < "3.15"
|
||||
psycopg==3.3.2 ; python_version >= "3.12" and python_version < "3.15"
|
||||
pyasn1-modules==0.4.2 ; python_version >= "3.12" and python_version < "3.15"
|
||||
pyasn1==0.6.2 ; python_version >= "3.12" and python_version < "3.15"
|
||||
pycparser==3.0 ; python_version >= "3.12" and python_version < "3.15" and platform_python_implementation != "PyPy" and implementation_name != "PyPy"
|
||||
pydantic-core==2.27.2 ; python_version >= "3.12" and python_version < "3.15"
|
||||
pydantic-settings==2.11.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
pydantic==2.10.5 ; python_version >= "3.12" and python_version < "3.15"
|
||||
pygments==2.19.2 ; python_version >= "3.12" and python_version < "3.15"
|
||||
pyjwt==2.12.1 ; python_version >= "3.12" and python_version < "3.15"
|
||||
pyperclip==1.11.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
python-dateutil==2.8.2 ; python_version >= "3.12" and python_version < "3.15"
|
||||
python-dotenv==1.2.2 ; python_version >= "3.12" and python_version < "3.15"
|
||||
python-multipart==0.0.20 ; python_version >= "3.12" and python_version < "3.15"
|
||||
pytz==2025.2 ; python_version >= "3.12" and python_version < "3.15"
|
||||
pywin32==311 ; python_version >= "3.12" and python_version < "3.15" and (sys_platform == "win32" or platform_system == "Windows")
|
||||
pyyaml==6.0.3 ; python_version >= "3.12" and python_version < "3.15"
|
||||
qdrant-client==1.12.1 ; python_version >= "3.13" and python_version < "3.15"
|
||||
qdrant-client==1.16.2 ; python_version == "3.12"
|
||||
referencing==0.37.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
regex==2025.9.18 ; python_version >= "3.12" and python_version < "4.0"
|
||||
requests-toolbelt==1.0.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
requests==2.32.5 ; python_version >= "3.12" and python_version < "4.0"
|
||||
rich==14.2.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
rpds-py==0.27.1 ; python_version >= "3.12" and python_version < "4.0"
|
||||
rsa==4.9.1 ; python_version >= "3.12" and python_version < "4.0"
|
||||
runloop-api-client==1.2.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
safetensors==0.6.2 ; python_version >= "3.12" and python_version < "4.0"
|
||||
scikit-learn==1.7.2 ; python_version >= "3.12" and python_version < "4.0"
|
||||
scipy==1.16.2 ; python_version >= "3.12" and python_version < "4.0"
|
||||
sentence-transformers==5.1.1 ; python_version >= "3.12" and python_version < "4.0"
|
||||
setuptools==80.9.0 ; python_version >= "3.13" and python_version < "4.0"
|
||||
shellingham==1.5.4 ; python_version >= "3.12" and python_version < "4.0"
|
||||
six==1.17.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
sniffio==1.3.1 ; python_version >= "3.12" and python_version < "4.0"
|
||||
soupsieve==2.8.1 ; python_version >= "3.12" and python_version < "4.0"
|
||||
sqlalchemy==2.0.45 ; python_version >= "3.12" and python_version < "4.0"
|
||||
sqlite-vec==0.1.6 ; python_version >= "3.12" and python_version < "4.0"
|
||||
sse-starlette==3.0.2 ; python_version >= "3.12" and python_version < "4.0"
|
||||
starlette==0.47.3 ; python_version >= "3.12" and python_version < "4.0"
|
||||
sympy==1.14.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
synchronicity==0.10.5 ; python_version >= "3.12" and python_version < "4.0"
|
||||
tavily-python==0.7.22 ; python_version >= "3.12" and python_version < "4.0"
|
||||
tenacity==9.1.2 ; python_version >= "3.12" and python_version < "4.0"
|
||||
textual-autocomplete==4.0.6 ; python_version >= "3.12" and python_version < "4.0"
|
||||
textual==8.0.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
threadpoolctl==3.6.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
tiktoken==0.12.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
tokenizers==0.22.1 ; python_version >= "3.12" and python_version < "4.0"
|
||||
toml==0.10.2 ; python_version >= "3.12" and python_version < "4.0"
|
||||
tomli-w==1.2.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
torch==2.2.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
tqdm==4.67.1 ; python_version >= "3.12" and python_version < "4.0"
|
||||
transformers==4.57.1 ; python_version >= "3.12" and python_version < "4.0"
|
||||
triton==2.2.0 ; python_version >= "3.12" and python_version < "4.0" and platform_system == "Linux" and platform_machine == "x86_64"
|
||||
typer==0.20.1 ; python_version >= "3.12" and python_version < "4.0"
|
||||
types-certifi==2021.10.8.3 ; python_version >= "3.12" and python_version < "4.0"
|
||||
types-toml==0.10.8.20240310 ; python_version >= "3.12" and python_version < "4.0"
|
||||
typing-extensions==4.15.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
typing-inspection==0.4.2 ; python_version >= "3.12" and python_version < "4.0"
|
||||
tzdata==2025.2 ; python_version >= "3.12" and python_version < "4.0"
|
||||
uc-micro-py==2.0.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
urllib3==2.5.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
uuid-utils==0.12.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
uvicorn==0.35.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
uvloop==0.22.1 ; python_version >= "3.12" and python_version < "4.0"
|
||||
watchfiles==1.1.1 ; python_version >= "3.12" and python_version < "4.0"
|
||||
wcmatch==10.1 ; python_version >= "3.12" and python_version < "4.0"
|
||||
wcwidth==0.2.14 ; python_version >= "3.12" and python_version < "4.0"
|
||||
websockets==15.0.1 ; python_version >= "3.12" and python_version < "4.0"
|
||||
wrapt==2.0.1 ; python_version >= "3.12" and python_version < "4.0"
|
||||
wsgidav==4.3.3 ; python_version >= "3.12" and python_version < "4.0"
|
||||
xlrd==2.0.2 ; python_version >= "3.12" and python_version < "4.0"
|
||||
xxhash==3.6.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
yarl==1.22.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
zstandard==0.25.0 ; python_version >= "3.12" and python_version < "4.0"
|
||||
referencing==0.37.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
regex==2025.9.18 ; python_version >= "3.12" and python_version < "3.15"
|
||||
requests-toolbelt==1.0.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
requests==2.32.5 ; python_version >= "3.12" and python_version < "3.15"
|
||||
rich==14.2.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
rpds-py==0.27.1 ; python_version >= "3.12" and python_version < "3.15"
|
||||
rsa==4.9.1 ; python_version >= "3.12" and python_version < "3.15"
|
||||
safetensors==0.6.2 ; python_version >= "3.12" and python_version < "3.15"
|
||||
scikit-learn==1.7.2 ; python_version >= "3.12" and python_version < "3.15"
|
||||
scipy==1.16.2 ; python_version >= "3.12" and python_version < "3.15"
|
||||
sentence-transformers==5.1.1 ; python_version >= "3.12" and python_version < "3.15"
|
||||
setuptools==80.9.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
six==1.17.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
sniffio==1.3.1 ; python_version >= "3.12" and python_version < "3.15"
|
||||
soupsieve==2.8.1 ; python_version >= "3.12" and python_version < "3.15"
|
||||
sqlalchemy==2.0.45 ; python_version >= "3.12" and python_version < "3.15"
|
||||
sqlite-vec==0.1.6 ; python_version >= "3.12" and python_version < "3.15"
|
||||
sse-starlette==3.0.2 ; python_version >= "3.12" and python_version < "3.15"
|
||||
starlette==0.47.3 ; python_version >= "3.12" and python_version < "3.15"
|
||||
structlog==25.5.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
sympy==1.14.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
tavily-python==0.7.22 ; python_version >= "3.12" and python_version < "3.15"
|
||||
tenacity==9.1.2 ; python_version >= "3.12" and python_version < "3.15"
|
||||
textual-autocomplete==4.0.6 ; python_version >= "3.12" and python_version < "3.15"
|
||||
textual-speedups==0.2.1 ; python_version >= "3.12" and python_version < "3.15"
|
||||
textual==8.0.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
threadpoolctl==3.6.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
tiktoken==0.12.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
tokenizers==0.22.1 ; python_version >= "3.12" and python_version < "3.15"
|
||||
tomli-w==1.2.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
torch==2.2.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
tqdm==4.67.1 ; python_version >= "3.12" and python_version < "3.15"
|
||||
transformers==4.57.1 ; python_version >= "3.12" and python_version < "3.15"
|
||||
triton==2.2.0 ; python_version >= "3.12" and python_version < "3.15" and platform_system == "Linux" and platform_machine == "x86_64"
|
||||
truststore==0.10.4 ; python_version >= "3.12" and python_version < "3.15"
|
||||
typing-extensions==4.15.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
typing-inspection==0.4.2 ; python_version >= "3.12" and python_version < "3.15"
|
||||
tzdata==2025.2 ; python_version >= "3.12" and python_version < "3.15"
|
||||
uc-micro-py==2.0.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
urllib3==2.5.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
uuid-utils==0.12.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
uvicorn==0.35.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
uvloop==0.22.1 ; python_version >= "3.12" and python_version < "3.15"
|
||||
watchfiles==1.1.1 ; python_version >= "3.12" and python_version < "3.15"
|
||||
wcmatch==10.1 ; python_version >= "3.12" and python_version < "3.15"
|
||||
wcwidth==0.2.14 ; python_version >= "3.12" and python_version < "3.15"
|
||||
websockets==15.0.1 ; python_version >= "3.12" and python_version < "3.15"
|
||||
wsgidav==4.3.3 ; python_version >= "3.12" and python_version < "3.15"
|
||||
xlrd==2.0.2 ; python_version >= "3.12" and python_version < "3.15"
|
||||
xxhash==3.6.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
yarl==1.22.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
zipp==3.23.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
zstandard==0.25.0 ; python_version >= "3.12" and python_version < "3.15"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user