airtrain 0.1.61__py3-none-any.whl → 0.1.62__py3-none-any.whl

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.
airtrain/__init__.py CHANGED
@@ -5,7 +5,7 @@ This library provides a flexible framework for building AI agents
5
5
  that can complete complex tasks using AI models, skills, and tools.
6
6
  """
7
7
 
8
- __version__ = "0.1.61"
8
+ __version__ = "0.1.62"
9
9
 
10
10
  import sys
11
11
 
@@ -17,19 +17,18 @@ from .integrations import (
17
17
  # OpenAI
18
18
  OpenAICredentials,
19
19
  OpenAIChatSkill,
20
- OpenAICompletionSkill,
21
20
  # Anthropic
22
21
  AnthropicCredentials,
23
22
  AnthropicChatSkill,
24
23
  # Together.ai
25
24
  TogetherAICredentials,
26
- TogetherChatSkill,
25
+ TogetherAIChatSkill,
27
26
  # Fireworks
28
27
  FireworksCredentials,
29
28
  FireworksChatSkill,
30
29
  # Google
31
30
  GeminiCredentials,
32
- GeminiChatSkill,
31
+ GoogleChatSkill,
33
32
  # Search
34
33
  ExaCredentials,
35
34
  ExaSearchSkill,
@@ -88,19 +87,18 @@ __all__ = [
88
87
  # OpenAI Integration
89
88
  "OpenAICredentials",
90
89
  "OpenAIChatSkill",
91
- "OpenAICompletionSkill",
92
90
  # Anthropic Integration
93
91
  "AnthropicCredentials",
94
92
  "AnthropicChatSkill",
95
93
  # Together Integration
96
94
  "TogetherAICredentials",
97
- "TogetherChatSkill",
95
+ "TogetherAIChatSkill",
98
96
  # Fireworks Integration
99
97
  "FireworksCredentials",
100
98
  "FireworksChatSkill",
101
99
  # Google Integration
102
100
  "GeminiCredentials",
103
- "GeminiChatSkill",
101
+ "GoogleChatSkill",
104
102
  # Search Integration
105
103
  "ExaCredentials",
106
104
  "ExaSearchSkill",
@@ -3,7 +3,7 @@
3
3
  # Credentials imports
4
4
  from .openai.credentials import OpenAICredentials
5
5
  from .aws.credentials import AWSCredentials
6
- from .google.credentials import GoogleCloudCredentials
6
+ from .google.credentials import GoogleCloudCredentials, GeminiCredentials
7
7
  from .anthropic.credentials import AnthropicCredentials
8
8
  from .groq.credentials import GroqCredentials
9
9
  from .together.credentials import TogetherAICredentials
@@ -11,6 +11,8 @@ from .ollama.credentials import OllamaCredentials
11
11
  from .sambanova.credentials import SambanovaCredentials
12
12
  from .cerebras.credentials import CerebrasCredentials
13
13
  from .perplexity.credentials import PerplexityCredentials
14
+ from .fireworks.credentials import FireworksCredentials
15
+ from .search.exa.credentials import ExaCredentials
14
16
 
15
17
  # Skills imports
16
18
  from .openai.skills import OpenAIChatSkill, OpenAIParserSkill
@@ -23,6 +25,9 @@ from .ollama.skills import OllamaChatSkill
23
25
  from .sambanova.skills import SambanovaChatSkill
24
26
  from .cerebras.skills import CerebrasChatSkill
25
27
  from .perplexity.skills import PerplexityChatSkill, PerplexityStreamingChatSkill
28
+ from .fireworks.skills import FireworksChatSkill
29
+ from .search.exa.skills import ExaSearchSkill
30
+ from .search.exa import ExaSearchInputSchema, ExaSearchOutputSchema
26
31
 
27
32
  # Model configurations
28
33
  from .openai.models_config import OPENAI_MODELS, OpenAIModelConfig
@@ -48,6 +53,9 @@ __all__ = [
48
53
  "SambanovaCredentials",
49
54
  "CerebrasCredentials",
50
55
  "PerplexityCredentials",
56
+ "FireworksCredentials",
57
+ "GeminiCredentials",
58
+ "ExaCredentials",
51
59
  # Skills
52
60
  "OpenAIChatSkill",
53
61
  "OpenAIParserSkill",
@@ -61,6 +69,10 @@ __all__ = [
61
69
  "CerebrasChatSkill",
62
70
  "PerplexityChatSkill",
63
71
  "PerplexityStreamingChatSkill",
72
+ "FireworksChatSkill",
73
+ "ExaSearchSkill",
74
+ "ExaSearchInputSchema",
75
+ "ExaSearchOutputSchema",
64
76
  # Model configurations
65
77
  "OPENAI_MODELS",
66
78
  "OpenAIModelConfig",
@@ -17,8 +17,8 @@ from airtrain.integrations.cerebras.credentials import CerebrasCredentials
17
17
  from airtrain.integrations.sambanova.credentials import SambanovaCredentials
18
18
  from airtrain.integrations.perplexity.credentials import PerplexityCredentials
19
19
 
20
- # Import Perplexity list models
21
- from airtrain.integrations.perplexity.list_models import PerplexityListModelsSkill
20
+ # Remove this import to avoid circular dependency
21
+ # from airtrain.integrations.perplexity.list_models import PerplexityListModelsSkill
22
22
 
23
23
 
24
24
  # Generic list models input schema
@@ -175,7 +175,8 @@ class ListModelsSkillFactory:
175
175
  "groq": GroqListModelsSkill,
176
176
  "cerebras": CerebrasListModelsSkill,
177
177
  "sambanova": SambanovaListModelsSkill,
178
- "perplexity": PerplexityListModelsSkill,
178
+ # Remove perplexity from this map as we'll handle it separately
179
+ # "perplexity": PerplexityListModelsSkill,
179
180
  }
180
181
 
181
182
  @classmethod
@@ -194,8 +195,17 @@ class ListModelsSkillFactory:
194
195
  """
195
196
  provider = provider.lower()
196
197
 
198
+ # Special case for perplexity to avoid circular import
199
+ if provider == "perplexity":
200
+ # Import here to avoid circular import
201
+ from airtrain.integrations.perplexity.list_models import (
202
+ PerplexityListModelsSkill,
203
+ )
204
+
205
+ return PerplexityListModelsSkill(credentials=credentials)
206
+
197
207
  if provider not in cls._PROVIDER_MAP:
198
- supported = ", ".join(cls.get_supported_providers())
208
+ supported = ", ".join(cls.get_supported_providers() + ["perplexity"])
199
209
  raise ValueError(
200
210
  f"Unsupported provider: {provider}. "
201
211
  f"Supported providers are: {supported}"
@@ -207,4 +217,5 @@ class ListModelsSkillFactory:
207
217
  @classmethod
208
218
  def get_supported_providers(cls):
209
219
  """Return a list of supported provider names"""
210
- return list(cls._PROVIDER_MAP.keys())
220
+ # Add perplexity to the list of supported providers
221
+ return list(cls._PROVIDER_MAP.keys()) + ["perplexity"]
@@ -4,7 +4,7 @@ Schemas for Exa Search API.
4
4
  This module defines the input and output schemas for the Exa search API.
5
5
  """
6
6
 
7
- from typing import Dict, List, Optional, Any, Union, bool
7
+ from typing import Dict, List, Optional, Any, Union
8
8
  from pydantic import BaseModel, Field, HttpUrl
9
9
 
10
10
  from airtrain.core.schemas import InputSchema, OutputSchema
@@ -11,8 +11,7 @@ from typing import Optional, Dict, Any, List, cast
11
11
 
12
12
  from pydantic import ValidationError
13
13
 
14
- from airtrain.core.skills import Skill
15
- from airtrain.core.errors import ProcessingError
14
+ from airtrain.core.skills import Skill, ProcessingError
16
15
  from .credentials import ExaCredentials
17
16
  from .schemas import ExaSearchInputSchema, ExaSearchOutputSchema, ExaSearchResult
18
17
 
airtrain/tools/command.py CHANGED
@@ -218,7 +218,7 @@ class FindFilesTool(StatelessTool):
218
218
  }
219
219
 
220
220
 
221
- @register_tool("terminal_navigation")
221
+ @register_tool("terminal_navigation", tool_type="stateful")
222
222
  class TerminalNavigationTool(StatefulTool):
223
223
  """Tool for navigating through the terminal with state memory."""
224
224
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: airtrain
3
- Version: 0.1.61
3
+ Version: 0.1.62
4
4
  Summary: A platform for building and deploying AI agents with structured skills
5
5
  Home-page: https://github.com/rosaboyle/airtrain.dev
6
6
  Author: Dheeraj Pai
@@ -1,6 +1,6 @@
1
- airtrain/__init__.py,sha256=E3yMskC0rkqxxNnnn2IPtzBRsL2qT9UQMa2r9FT7jH4,3409
1
+ airtrain/__init__.py,sha256=gTO8GEuN1gIKjo5HlBOURfVnRtEuv61zF-HMxTXQYQk,3357
2
2
  airtrain/__main__.py,sha256=EU8ffFmCdC1G-UcHHt0Oo3lB1PGqfC6kwzH39CnYSwU,72
3
- airtrain/__pycache__/__init__.cpython-313.pyc,sha256=4F7gemzpt0TGbv_Y-BLiSLd3HL8hCsmEw82IzG2gdUk,2816
3
+ airtrain/__pycache__/__init__.cpython-313.pyc,sha256=gNzuKeI25qKWqhRq6MRzf8Otl1qJEekuX_QU0HAx7bE,2759
4
4
  airtrain/agents/__init__.py,sha256=r6v5_bblxamRgiaCT8CVhyzaDdWohGM7sSjLgIUpA5s,795
5
5
  airtrain/agents/example_agent.py,sha256=0dCS8QXIvUYYkxwyOEMLMdlQ4KgMAerQ56r7NcYGqTw,11681
6
6
  airtrain/agents/groq_agent.py,sha256=s-f-cGSrgsR4Jlrv6xzeg2Z0LAEHByhFMYVbTvu-Bkg,10558
@@ -19,10 +19,10 @@ airtrain/core/__init__.py,sha256=9h7iKwTzZocCPc9bU6j8bA02BokteWIOcO1uaqGMcrk,254
19
19
  airtrain/core/credentials.py,sha256=J1jd8vLrOfet0GhLI1J44d35o7skjriBsMgpODmXwfo,5592
20
20
  airtrain/core/schemas.py,sha256=MMXrDviC4gRea_QaPpbjgO--B_UKxnD7YrxqZOLJZZU,7003
21
21
  airtrain/core/skills.py,sha256=kIkI1MwIzuAwyoxdnZ5MGOb70BOB-njbVb_csJEdVvc,9244
22
- airtrain/core/__pycache__/__init__.cpython-313.pyc,sha256=E5o3fMQeU-E5G9UQoaEPyHXRN6uvDrcSdR88GvPb0cM,534
23
- airtrain/core/__pycache__/schemas.cpython-313.pyc,sha256=buRnJ0WO8QtpvaviXi7l7Qby6uOZIwmpsTJ2NMUd1o8,8327
24
- airtrain/core/__pycache__/skills.cpython-313.pyc,sha256=1-Q3pC2JXLvW1GarSKtqS38ImEztLTdWcsIwerJPBkk,11839
25
- airtrain/integrations/__init__.py,sha256=Fvr8keOQBe4PrxK7Is2B2jGodxY0J4zkcO6wT1T4e6A,2373
22
+ airtrain/core/__pycache__/__init__.cpython-313.pyc,sha256=aHwrmX5Hf3s9pSa8V0PH3ytqldRjB_X9AWwA6IDpzyk,534
23
+ airtrain/core/__pycache__/schemas.cpython-313.pyc,sha256=WpKRuARzTVGt_NDMApl8GNIQgF_jZcHV34z-KYs3g5g,8327
24
+ airtrain/core/__pycache__/skills.cpython-313.pyc,sha256=4EppdsB6rISIJNF8CbyCPHXlMCX1JKETeKxOS8hENLw,11839
25
+ airtrain/integrations/__init__.py,sha256=nGG3gZJ_sEaMzi_utsQCzExgnpHUjua8L9TyzofLQnw,2842
26
26
  airtrain/integrations/anthropic/__init__.py,sha256=K741w3v7fWsCknTo38ARqDL0D3HPlwDIvDuuBao9Tto,800
27
27
  airtrain/integrations/anthropic/credentials.py,sha256=hlTSw9HX66kYNaeQUtn0JjdZQBMNkzzFOJOoLOOzvcY,1246
28
28
  airtrain/integrations/anthropic/list_models.py,sha256=o7FABp0Cq3gs76zOF-CM9ohmYslWT6vK9qtQabV9XzI,3973
@@ -36,7 +36,7 @@ airtrain/integrations/cerebras/credentials.py,sha256=KDEH4r8FGT68L9p34MLZWK65wq_
36
36
  airtrain/integrations/cerebras/skills.py,sha256=BJEb_7TglCYAukD3kcx37R8ibnJWdxVrBrwf3ZTYP-4,4924
37
37
  airtrain/integrations/combined/__init__.py,sha256=EL_uZs8436abeZA6NbM-gLdur7kJr4YfGGOYybKOhjc,467
38
38
  airtrain/integrations/combined/groq_fireworks_skills.py,sha256=Kz8UDU4-Rl71znz3ml9qVMRz669iWx4sUl37iafW0NU,4612
39
- airtrain/integrations/combined/list_models_factory.py,sha256=3sQWQw3UwyzOzlNKDpRNzZiA-qN7zOIgyom7CDI0OiM,7724
39
+ airtrain/integrations/combined/list_models_factory.py,sha256=pFvIMeAZSRC7e51qknD9LzLkNhNgZL4pItzGNGzZdNY,8263
40
40
  airtrain/integrations/fireworks/__init__.py,sha256=GstUg0rYC-7Pg0DVbDXwL5eO1hp3WCSfroWazbGpfi0,545
41
41
  airtrain/integrations/fireworks/completion_skills.py,sha256=zxx7aNlum9scQMri5Ek0qN8VfAomhyUp3u8JJo_AFWM,5615
42
42
  airtrain/integrations/fireworks/conversation_manager.py,sha256=ifscKHYKWM_NDElin-oTzpRhyoh6pzBnklmMuH5geOY,3706
@@ -75,8 +75,8 @@ airtrain/integrations/sambanova/skills.py,sha256=SZ_GAimMiOCILiNkzyhNflyRR6bdC5r
75
75
  airtrain/integrations/search/__init__.py,sha256=r-hCYff5IdgI4IgQyMUzKzc_CVryl1oiweaGC3TwZ-8,405
76
76
  airtrain/integrations/search/exa/__init__.py,sha256=YdINIFcuT4pC72obDYx7DHVdMzlEg03BRQJi57SKc3g,486
77
77
  airtrain/integrations/search/exa/credentials.py,sha256=yOJIQdWs6RXX2Msk453VHH7FYQffpF946afaEWgVg4o,900
78
- airtrain/integrations/search/exa/schemas.py,sha256=hCdg-J__3p666h_ep0GbKngbYqQG74XlhYrcFvJBet4,3797
79
- airtrain/integrations/search/exa/skills.py,sha256=z2k3f-t_WZiBKj82pkmAxtaqm1-P9yU0H2J44vOJbb0,3786
78
+ airtrain/integrations/search/exa/schemas.py,sha256=QsTh-UfCAJ-YCy0TgjC7iJDADBCdY3Eu4NBi9BSGiuk,3791
79
+ airtrain/integrations/search/exa/skills.py,sha256=zCoSOxeJk27umLHdYVZbW5sDz-kcbuBzH0SE0C7lLZg,3754
80
80
  airtrain/integrations/together/__init__.py,sha256=5p2v5kvryl-Z8eSMxdrMQtgzynPo6zQ6vZqpxBADA1I,878
81
81
  airtrain/integrations/together/audio_models_config.py,sha256=GtqfmKR1vJ5x4B3kScvEO3x4exvzwNP78vcGVTk_fBE,1004
82
82
  airtrain/integrations/together/credentials.py,sha256=cYNhyIwgsxm8LfiFfT-omBvgV3mUP6SZeRSukyzzDlI,747
@@ -95,14 +95,14 @@ airtrain/telemetry/__init__.py,sha256=_xDHzSmQvRCqihT0QTmF7bS9yKEl2LaZ3Zq05hXaI3
95
95
  airtrain/telemetry/service.py,sha256=6IB2-FL3fGsYYgMIVQ9MNCp9UlSE5cVhLlB3VBYkAnY,5592
96
96
  airtrain/telemetry/views.py,sha256=qob1swyLNEk_UIpDi5VTwMDsEsGZhJheFQrGbP8T5hw,8115
97
97
  airtrain/tools/__init__.py,sha256=AauO_EEBcK09mkyCuvvVK_Oz0L5DOrnuySViWXCOt6Y,1021
98
- airtrain/tools/command.py,sha256=-2axK36InyWSHf0F2N9WafAsi6746akUs8er9TWSy6o,13333
98
+ airtrain/tools/command.py,sha256=dxvs6RzppjWmkUe1oMtxOc7w2mFOGFFZ9Gylwnm37Sw,13355
99
99
  airtrain/tools/filesystem.py,sha256=-YYdHj_KeSWPYXeRhWhIX9s_KujVA1R5tF3r93zRVTU,6324
100
100
  airtrain/tools/network.py,sha256=YR0AtMXDXkhCsXcx7_t2d12ItnKY8XXTmyP1kdj2M4c,3883
101
101
  airtrain/tools/registry.py,sha256=K-1H5EipYcDNDx2jdpsEY9gjfV4aNCGI1pY2UsgSpC0,10246
102
102
  airtrain/tools/search.py,sha256=MJNi17g6aBPSqbF0ChV8ZgMlzz_PoKSPAIpe_dazdt8,15081
103
103
  airtrain/tools/testing.py,sha256=q4ALEPRzukiadY6wFSPY7vA-T1o3XInLhXt18dsf6yY,4397
104
- airtrain-0.1.61.dist-info/METADATA,sha256=2igreLpEoXOlTprrUkh7KpgSCMy0CZSBlKJneL2WmoQ,6503
105
- airtrain-0.1.61.dist-info/WHEEL,sha256=DK49LOLCYiurdXXOXwGJm6U4DkHkg4lcxjhqwRa0CP4,91
106
- airtrain-0.1.61.dist-info/entry_points.txt,sha256=rrJ36IUsyq6n1dSfTWXqVAgpQLPRWDfCqwd6_3B-G0U,52
107
- airtrain-0.1.61.dist-info/top_level.txt,sha256=cFWW1vY6VMCb3AGVdz6jBDpZ65xxBRSqlsPyySxTkxY,9
108
- airtrain-0.1.61.dist-info/RECORD,,
104
+ airtrain-0.1.62.dist-info/METADATA,sha256=fAOQQht25N594JsKGN6sFuiqjVMPjKMtly_RP6JW9co,6503
105
+ airtrain-0.1.62.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
106
+ airtrain-0.1.62.dist-info/entry_points.txt,sha256=rrJ36IUsyq6n1dSfTWXqVAgpQLPRWDfCqwd6_3B-G0U,52
107
+ airtrain-0.1.62.dist-info/top_level.txt,sha256=cFWW1vY6VMCb3AGVdz6jBDpZ65xxBRSqlsPyySxTkxY,9
108
+ airtrain-0.1.62.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (78.0.2)
2
+ Generator: setuptools (78.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5