+
{
{String(children).replace(/\n$/, "")}
) : (
-
+
{children}
);
},
+ // Add heading styles
+ h1: ({children}) => (
+ {children}
+ ),
+ h2: ({children}) => (
+
+ {children}
+
+ ),
+ h3: ({children}) => (
+ {children}
+ ),
+ // Add paragraph styles
+ p: ({children}) => (
+ {children}
+ ),
+ // Style output code blocks
+ pre: ({children}) => (
+ {children}
+ ),
+ // Style emojis and status indicators
+ strong: ({children}) => {
+ const text = String(children);
+ if (text.includes("✅")) {
+ return {children};
+ } else if (text.includes("❌")) {
+ return {children};
+ }
+ return {children};
+ },
+ // Style links
+ a: ({children, href}) => (
+
+ {children}
+
+ ),
+ // Style lists
+ ul: ({children}) => (
+
+ ),
+ ol: ({children}) => (
+ {children}
+ ),
+ li: ({children}) => (
+ {children}
+ ),
}}
/>
diff --git a/ta-browser/core/orchestrator.py b/ta-browser/core/orchestrator.py
index 9dbf16e..f112130 100644
--- a/ta-browser/core/orchestrator.py
+++ b/ta-browser/core/orchestrator.py
@@ -676,7 +676,7 @@ async def run(self, command):
self.log_token_usage(
agent_type='planner',
- usage=planner_response._usage,
+ usage=planner_response.usage,
step=self.iteration_counter
)
@@ -719,7 +719,7 @@ async def run(self, command):
self.log_token_usage(
agent_type='browser',
- usage=browser_response._usage,
+ usage=browser_response.usage,
step=self.iteration_counter
)
@@ -780,7 +780,7 @@ async def run(self, command):
self.log_token_usage(
agent_type='critique',
- usage=critique_response._usage,
+ usage=critique_response.usage,
step=self.iteration_counter
)
diff --git a/ta-browser/core/skills/final_response.py b/ta-browser/core/skills/final_response.py
index fe3e3a9..c658b8d 100644
--- a/ta-browser/core/skills/final_response.py
+++ b/ta-browser/core/skills/final_response.py
@@ -50,14 +50,14 @@ def get_final_response_provider():
from core.utils.anthropic_client import get_client as get_anthropic_client
from pydantic_ai.models.anthropic import AnthropicModel
client = get_anthropic_client()
- model = AnthropicModel(model_name=model_name, anthropic_client=client)
+ model = AnthropicModel(model_name=model_name, provider = "anthropic")
provider = "anthropic"
else:
# OpenAI provider (default)
from core.utils.openai_client import get_client as get_openai_client
from pydantic_ai.models.openai import OpenAIModel
client = get_openai_client()
- model = OpenAIModel(model_name=model_name, openai_client=client)
+ model = OpenAIModel(model_name=model_name, provider = "openai")
provider = "openai"
return provider, client, model
diff --git a/ta-browser/core/utils/init_client.py b/ta-browser/core/utils/init_client.py
index 7d170c6..d33fa37 100644
--- a/ta-browser/core/utils/init_client.py
+++ b/ta-browser/core/utils/init_client.py
@@ -34,7 +34,7 @@ async def initialize_client():
# Create model instance
from pydantic_ai.models.anthropic import AnthropicModel
- model_instance = AnthropicModel(model_name=model_name, anthropic_client=client_instance)
+ model_instance = AnthropicModel(model_name=model_name, provider = "anthropic")
logger.info(f"Anthropic client initialized successfully with model: {model_name}")
return client_instance, model_instance
diff --git a/ta-browser/requirements.txt b/ta-browser/requirements.txt
index af8c9b0..7d51ddb 100644
--- a/ta-browser/requirements.txt
+++ b/ta-browser/requirements.txt
@@ -6,7 +6,7 @@ aiosignal==1.3.2
aiosmtplib==3.0.2
alembic==1.14.1
annotated-types==0.7.0
-anthropic==0.42.0
+anthropic==0.49.0
anyio==4.8.0
asgiref==3.8.1
asyncpg==0.30.0
@@ -41,7 +41,7 @@ google-auth==2.37.0
googleapis-common-protos==1.66.0
greenlet==3.0.3
griffe==1.5.4
-groq==0.13.1
+groq==0.15.0
grpcio==1.67.0
grpcio-status==1.62.3
h11==0.14.0
@@ -69,7 +69,7 @@ mypy-extensions==1.0.0
nest-asyncio==1.6.0
nltk==3.8.1
numpy==1.26.4
-openai==1.59.3
+openai==1.74.0
opentelemetry-api==1.29.0
opentelemetry-exporter-otlp-proto-common==1.29.0
opentelemetry-exporter-otlp-proto-http==1.29.0
@@ -96,8 +96,8 @@ pyautogen==0.2.27
pycparser==2.22
pycryptodome==3.20.0
pydantic==2.10.4
-pydantic-ai==0.0.17
-pydantic-ai-slim==0.0.17
+pydantic-ai==0.1.0
+pydantic-ai-slim==0.1.0
pydantic-core==2.27.2
pyee==11.1.0
pygments==2.18.0
@@ -137,7 +137,6 @@ typing-inspect==0.9.0
uritemplate==4.1.1
urllib3==2.3.0
uvicorn==0.30.3
-uvloop==0.21.0
watchfiles==0.24.0
websockets==13.1
wrapt==1.17.0