lionagi 0.17.4__py3-none-any.whl → 0.17.5__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.
- lionagi/__init__.py +45 -7
- lionagi/ln/_async_call.py +13 -2
- lionagi/ln/_hash.py +12 -2
- lionagi/ln/_to_list.py +23 -12
- lionagi/ln/fuzzy/_fuzzy_validate.py +6 -4
- lionagi/service/connections/api_calling.py +1 -5
- lionagi/service/connections/mcp/wrapper.py +8 -15
- lionagi/utils.py +0 -8
- lionagi/version.py +1 -1
- {lionagi-0.17.4.dist-info → lionagi-0.17.5.dist-info}/METADATA +3 -3
- {lionagi-0.17.4.dist-info → lionagi-0.17.5.dist-info}/RECORD +13 -13
- {lionagi-0.17.4.dist-info → lionagi-0.17.5.dist-info}/WHEEL +0 -0
- {lionagi-0.17.4.dist-info → lionagi-0.17.5.dist-info}/licenses/LICENSE +0 -0
lionagi/__init__.py
CHANGED
@@ -3,15 +3,19 @@
|
|
3
3
|
# SPDX-License-Identifier: Apache-2.0
|
4
4
|
|
5
5
|
import logging
|
6
|
+
from typing import TYPE_CHECKING
|
6
7
|
|
7
|
-
from
|
8
|
-
|
9
|
-
from . import ln as ln
|
10
|
-
from .operations.node import Operation
|
11
|
-
from .service.imodel import iModel
|
12
|
-
from .session.session import Branch, Session
|
8
|
+
from . import ln as ln # Lightweight concurrency utilities
|
13
9
|
from .version import __version__
|
14
10
|
|
11
|
+
if TYPE_CHECKING:
|
12
|
+
# Type hints only - not imported at runtime
|
13
|
+
from pydantic import BaseModel, Field
|
14
|
+
|
15
|
+
from .operations.node import Operation
|
16
|
+
from .service.imodel import iModel
|
17
|
+
from .session.session import Branch, Session
|
18
|
+
|
15
19
|
logger = logging.getLogger(__name__)
|
16
20
|
logger.setLevel(logging.INFO)
|
17
21
|
|
@@ -24,7 +28,40 @@ def __getattr__(name: str):
|
|
24
28
|
if name in _lazy_imports:
|
25
29
|
return _lazy_imports[name]
|
26
30
|
|
27
|
-
|
31
|
+
# Lazy load core components
|
32
|
+
if name == "Session":
|
33
|
+
from .session.session import Session
|
34
|
+
|
35
|
+
_lazy_imports[name] = Session
|
36
|
+
return Session
|
37
|
+
elif name == "Branch":
|
38
|
+
from .session.session import Branch
|
39
|
+
|
40
|
+
_lazy_imports[name] = Branch
|
41
|
+
return Branch
|
42
|
+
# Lazy load Pydantic components
|
43
|
+
elif name == "BaseModel":
|
44
|
+
from pydantic import BaseModel
|
45
|
+
|
46
|
+
_lazy_imports[name] = BaseModel
|
47
|
+
return BaseModel
|
48
|
+
elif name == "Field":
|
49
|
+
from pydantic import Field
|
50
|
+
|
51
|
+
_lazy_imports[name] = Field
|
52
|
+
return Field
|
53
|
+
# Lazy load operations
|
54
|
+
elif name == "Operation":
|
55
|
+
from .operations.node import Operation
|
56
|
+
|
57
|
+
_lazy_imports[name] = Operation
|
58
|
+
return Operation
|
59
|
+
elif name == "iModel":
|
60
|
+
from .service.imodel import iModel
|
61
|
+
|
62
|
+
_lazy_imports[name] = iModel
|
63
|
+
return iModel
|
64
|
+
elif name == "types":
|
28
65
|
from . import _types as types
|
29
66
|
|
30
67
|
_lazy_imports["types"] = types
|
@@ -54,5 +91,6 @@ __all__ = (
|
|
54
91
|
"logger",
|
55
92
|
"Builder",
|
56
93
|
"Operation",
|
94
|
+
"load_mcp_tools",
|
57
95
|
"ln",
|
58
96
|
)
|
lionagi/ln/_async_call.py
CHANGED
@@ -5,7 +5,6 @@ from typing import Any, ClassVar
|
|
5
5
|
|
6
6
|
import anyio
|
7
7
|
import anyio.to_thread
|
8
|
-
from pydantic import BaseModel
|
9
8
|
|
10
9
|
from ._to_list import to_list
|
11
10
|
from .concurrency import Lock as ConcurrencyLock
|
@@ -18,6 +17,10 @@ from .concurrency import (
|
|
18
17
|
)
|
19
18
|
from .types import Params, T, Unset, not_sentinel
|
20
19
|
|
20
|
+
_INITIALIZED = False
|
21
|
+
_MODEL_LIKE = None
|
22
|
+
|
23
|
+
|
21
24
|
__all__ = (
|
22
25
|
"alcall",
|
23
26
|
"bcall",
|
@@ -54,6 +57,14 @@ async def alcall(
|
|
54
57
|
retries, timeout, and output processing.
|
55
58
|
"""
|
56
59
|
|
60
|
+
global _INITIALIZED, _MODEL_LIKE
|
61
|
+
if _INITIALIZED is False:
|
62
|
+
from msgspec import Struct
|
63
|
+
from pydantic import BaseModel
|
64
|
+
|
65
|
+
_MODEL_LIKE = (BaseModel, Struct)
|
66
|
+
_INITIALIZED = True
|
67
|
+
|
57
68
|
# Validate func is a single callable
|
58
69
|
if not callable(func):
|
59
70
|
# If func is not callable, maybe it's an iterable. Extract one callable if possible.
|
@@ -82,7 +93,7 @@ async def alcall(
|
|
82
93
|
else:
|
83
94
|
if not isinstance(input_, list):
|
84
95
|
# Attempt to iterate
|
85
|
-
if isinstance(input_,
|
96
|
+
if isinstance(input_, _MODEL_LIKE):
|
86
97
|
# Pydantic model, convert to list
|
87
98
|
input_ = [input_]
|
88
99
|
else:
|
lionagi/ln/_hash.py
CHANGED
@@ -3,10 +3,13 @@ from __future__ import annotations
|
|
3
3
|
import copy
|
4
4
|
|
5
5
|
import msgspec
|
6
|
-
from pydantic import BaseModel as PydanticBaseModel
|
7
6
|
|
8
7
|
__all__ = ("hash_dict",)
|
9
8
|
|
9
|
+
# Global initialization state
|
10
|
+
_INITIALIZED = False
|
11
|
+
PydanticBaseModel = None
|
12
|
+
|
10
13
|
# --- Canonical Representation Generator ---
|
11
14
|
_PRIMITIVE_TYPES = (str, int, float, bool, type(None))
|
12
15
|
_TYPE_MARKER_DICT = 0
|
@@ -35,7 +38,7 @@ def _generate_hashable_representation(item: any) -> any:
|
|
35
38
|
_generate_hashable_representation(msgspec.to_builtins(item)),
|
36
39
|
)
|
37
40
|
|
38
|
-
if isinstance(item, PydanticBaseModel):
|
41
|
+
if PydanticBaseModel and isinstance(item, PydanticBaseModel):
|
39
42
|
# Process the Pydantic model by first dumping it to a dict, then processing that dict.
|
40
43
|
# The type marker distinguishes this from a regular dictionary.
|
41
44
|
return (
|
@@ -117,6 +120,13 @@ def _generate_hashable_representation(item: any) -> any:
|
|
117
120
|
|
118
121
|
|
119
122
|
def hash_dict(data: any, strict: bool = False) -> int:
|
123
|
+
global _INITIALIZED, PydanticBaseModel
|
124
|
+
if _INITIALIZED is False:
|
125
|
+
from pydantic import BaseModel
|
126
|
+
|
127
|
+
PydanticBaseModel = BaseModel
|
128
|
+
_INITIALIZED = True
|
129
|
+
|
120
130
|
data_to_process = data
|
121
131
|
if strict:
|
122
132
|
data_to_process = copy.deepcopy(data)
|
lionagi/ln/_to_list.py
CHANGED
@@ -3,24 +3,20 @@ from dataclasses import dataclass
|
|
3
3
|
from enum import Enum as _Enum
|
4
4
|
from typing import Any, ClassVar
|
5
5
|
|
6
|
-
from msgspec import Struct
|
7
|
-
from pydantic import BaseModel
|
8
|
-
from pydantic_core import PydanticUndefinedType
|
9
|
-
|
10
6
|
from ._hash import hash_dict
|
11
|
-
from .types import Params
|
7
|
+
from .types import Params
|
12
8
|
|
13
9
|
__all__ = ("to_list", "ToListParams")
|
14
10
|
|
15
11
|
|
12
|
+
_INITIALIZED = False
|
13
|
+
_MODEL_LIKE = None
|
14
|
+
_MAP_LIKE = None
|
15
|
+
_SINGLETONE_TYPES = None
|
16
|
+
_SKIP_TYPE = None
|
17
|
+
_SKIP_TUPLE_SET = None
|
16
18
|
_BYTE_LIKE = (str, bytes, bytearray)
|
17
|
-
_MODEL_LIKE = (BaseModel, Struct)
|
18
|
-
_MAP_LIKE = (Mapping, *_MODEL_LIKE)
|
19
19
|
_TUPLE_SET = (tuple, set, frozenset)
|
20
|
-
_SINGLETONE_TYPES = (UndefinedType, UnsetType, PydanticUndefinedType)
|
21
|
-
|
22
|
-
_SKIP_TYPE = (*_BYTE_LIKE, *_MAP_LIKE, _Enum)
|
23
|
-
_SKIP_TUPLE_SET = (*_SKIP_TYPE, *_TUPLE_SET)
|
24
20
|
|
25
21
|
|
26
22
|
def to_list(
|
@@ -50,6 +46,21 @@ def to_list(
|
|
50
46
|
Raises:
|
51
47
|
ValueError: If unique=True is used without flatten=True.
|
52
48
|
"""
|
49
|
+
global _INITIALIZED
|
50
|
+
if _INITIALIZED is False:
|
51
|
+
from msgspec import Struct
|
52
|
+
from pydantic import BaseModel
|
53
|
+
from pydantic_core import PydanticUndefinedType
|
54
|
+
|
55
|
+
from .types import UndefinedType, UnsetType
|
56
|
+
|
57
|
+
global _MODEL_LIKE, _MAP_LIKE, _SINGLETONE_TYPES, _SKIP_TYPE, _SKIP_TUPLE_SET
|
58
|
+
_MODEL_LIKE = (BaseModel, Struct)
|
59
|
+
_MAP_LIKE = (Mapping, *_MODEL_LIKE)
|
60
|
+
_SINGLETONE_TYPES = (UndefinedType, UnsetType, PydanticUndefinedType)
|
61
|
+
_SKIP_TYPE = (*_BYTE_LIKE, *_MAP_LIKE, _Enum)
|
62
|
+
_SKIP_TUPLE_SET = (*_SKIP_TYPE, *_TUPLE_SET)
|
63
|
+
_INITIALIZED = True
|
53
64
|
|
54
65
|
def _process_list(
|
55
66
|
lst: list[Any],
|
@@ -117,7 +128,7 @@ def to_list(
|
|
117
128
|
else [input_]
|
118
129
|
)
|
119
130
|
|
120
|
-
if isinstance(input_,
|
131
|
+
if isinstance(input_, _MODEL_LIKE):
|
121
132
|
return [input_]
|
122
133
|
|
123
134
|
if isinstance(input_, Iterable) and not isinstance(input_, _BYTE_LIKE):
|
@@ -1,7 +1,5 @@
|
|
1
1
|
from collections.abc import Callable, Sequence
|
2
|
-
from typing import Any, Literal
|
3
|
-
|
4
|
-
from pydantic import BaseModel
|
2
|
+
from typing import TYPE_CHECKING, Any, Literal
|
5
3
|
|
6
4
|
from lionagi._errors import ValidationError
|
7
5
|
|
@@ -11,13 +9,17 @@ from ._fuzzy_match import FuzzyMatchKeysParams, fuzzy_match_keys
|
|
11
9
|
from ._string_similarity import SIMILARITY_TYPE
|
12
10
|
from ._to_dict import to_dict
|
13
11
|
|
12
|
+
if TYPE_CHECKING:
|
13
|
+
from pydantic import BaseModel
|
14
|
+
|
15
|
+
|
14
16
|
__all__ = ("fuzzy_validate_pydantic",)
|
15
17
|
|
16
18
|
|
17
19
|
def fuzzy_validate_pydantic(
|
18
20
|
text,
|
19
21
|
/,
|
20
|
-
model_type: type[BaseModel],
|
22
|
+
model_type: "type[BaseModel]",
|
21
23
|
fuzzy_parse: bool = True,
|
22
24
|
fuzzy_match: bool = False,
|
23
25
|
fuzzy_match_params: FuzzyMatchKeysParams | dict = None,
|
@@ -85,20 +85,16 @@ class APICalling(Event):
|
|
85
85
|
TOKEN_LIMITS = {
|
86
86
|
# OpenAI models
|
87
87
|
"gpt-4": 128_000,
|
88
|
-
"gpt-4-turbo": 128_000,
|
89
|
-
"o1-mini": 128_000,
|
90
|
-
"o1-preview": 128_000,
|
91
88
|
"o1": 200_000,
|
92
89
|
"o3": 200_000,
|
93
90
|
"gpt-4.1": 1_000_000,
|
91
|
+
"gpt-5": 1_000_000,
|
94
92
|
# Anthropic models
|
95
93
|
"sonnet": 200_000,
|
96
94
|
"haiku": 200_000,
|
97
95
|
"opus": 200_000,
|
98
96
|
# Google models
|
99
97
|
"gemini": 1_000_000,
|
100
|
-
# Alibaba models
|
101
|
-
"qwen-turbo": 1_000_000,
|
102
98
|
}
|
103
99
|
|
104
100
|
token_msg = (
|
@@ -7,15 +7,7 @@ import json
|
|
7
7
|
import logging
|
8
8
|
import os
|
9
9
|
from pathlib import Path
|
10
|
-
from typing import Any
|
11
|
-
|
12
|
-
try:
|
13
|
-
from fastmcp import Client as FastMCPClient
|
14
|
-
|
15
|
-
FASTMCP_AVAILABLE = True
|
16
|
-
except ImportError:
|
17
|
-
FASTMCP_AVAILABLE = False
|
18
|
-
FastMCPClient = None
|
10
|
+
from typing import Any
|
19
11
|
|
20
12
|
# Suppress MCP server logging by default
|
21
13
|
logging.getLogger("mcp").setLevel(logging.WARNING)
|
@@ -88,11 +80,6 @@ class MCPConnectionPool:
|
|
88
80
|
@classmethod
|
89
81
|
async def get_client(cls, server_config: dict[str, Any]) -> Any:
|
90
82
|
"""Get or create a pooled MCP client."""
|
91
|
-
if not FASTMCP_AVAILABLE:
|
92
|
-
raise ImportError(
|
93
|
-
"FastMCP not installed. Run: pip install fastmcp"
|
94
|
-
)
|
95
|
-
|
96
83
|
# Generate unique key for this config
|
97
84
|
if "server" in server_config:
|
98
85
|
# Server reference from .mcp.json
|
@@ -149,6 +136,13 @@ class MCPConnectionPool:
|
|
149
136
|
if not any(k in config for k in ["url", "command"]):
|
150
137
|
raise ValueError("Config must have either 'url' or 'command' key")
|
151
138
|
|
139
|
+
try:
|
140
|
+
from fastmcp import Client as FastMCPClient
|
141
|
+
except ImportError:
|
142
|
+
raise ImportError(
|
143
|
+
"FastMCP not installed. Run: pip install fastmcp"
|
144
|
+
)
|
145
|
+
|
152
146
|
# Handle different config formats
|
153
147
|
if "url" in config:
|
154
148
|
# Direct URL connection
|
@@ -172,7 +166,6 @@ class MCPConnectionPool:
|
|
172
166
|
# Common environment variables to suppress logging
|
173
167
|
env.setdefault("LOG_LEVEL", "ERROR")
|
174
168
|
env.setdefault("PYTHONWARNINGS", "ignore")
|
175
|
-
env.setdefault("KHIVEMCP_LOG_LEVEL", "ERROR")
|
176
169
|
# Suppress FastMCP server logs
|
177
170
|
env.setdefault("FASTMCP_QUIET", "true")
|
178
171
|
env.setdefault("MCP_QUIET", "true")
|
lionagi/utils.py
CHANGED
@@ -87,8 +87,6 @@ __all__ = (
|
|
87
87
|
"max_concurrent",
|
88
88
|
"force_async",
|
89
89
|
"breakdown_pydantic_annotation",
|
90
|
-
"run_package_manager_command",
|
91
|
-
"StringEnum",
|
92
90
|
"Enum",
|
93
91
|
"hash_dict",
|
94
92
|
"is_union_type",
|
@@ -106,12 +104,6 @@ __all__ = (
|
|
106
104
|
)
|
107
105
|
|
108
106
|
|
109
|
-
# --- General Global Utilities Types ---
|
110
|
-
@deprecated("String Enum is deprecated, use `Enum` instead.")
|
111
|
-
class StringEnum(str, Enum):
|
112
|
-
pass
|
113
|
-
|
114
|
-
|
115
107
|
# --- General Global Utilities Functions ---
|
116
108
|
def time(
|
117
109
|
*,
|
lionagi/version.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
__version__ = "0.17.
|
1
|
+
__version__ = "0.17.5"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: lionagi
|
3
|
-
Version: 0.17.
|
3
|
+
Version: 0.17.5
|
4
4
|
Summary: An Intelligence Operating System.
|
5
5
|
Author-email: HaiyangLi <quantocean.li@gmail.com>
|
6
6
|
License: Apache License
|
@@ -330,8 +330,8 @@ from pydantic import BaseModel
|
|
330
330
|
class Joke(BaseModel):
|
331
331
|
joke: str
|
332
332
|
|
333
|
-
res = await hunter.
|
334
|
-
"Tell me a short dragon joke",
|
333
|
+
res = await hunter.operate(
|
334
|
+
instruction="Tell me a short dragon joke",
|
335
335
|
response_format=Joke
|
336
336
|
)
|
337
337
|
print(type(res))
|
@@ -1,12 +1,12 @@
|
|
1
|
-
lionagi/__init__.py,sha256=
|
1
|
+
lionagi/__init__.py,sha256=MeFKg1esCCVXzKG_ZSS68dg-q2W26sVzRSju_prw37w,2398
|
2
2
|
lionagi/_class_registry.py,sha256=pfUO1DjFZIqr3OwnNMkFqL_fiEBrrf8-swkGmP_KDLE,3112
|
3
3
|
lionagi/_errors.py,sha256=ia_VWhPSyr5FIJLSdPpl04SrNOLI2skN40VC8ePmzeQ,3748
|
4
4
|
lionagi/_types.py,sha256=COWRrmstmABGKKn-h_cKiAREGsMp_Ik49OdR4lSS3P8,1263
|
5
5
|
lionagi/config.py,sha256=D13nnjpgJKz_LlQrzaKKVefm4hqesz_dP9ROjWmGuLE,3811
|
6
6
|
lionagi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
7
7
|
lionagi/settings.py,sha256=HDuKCEJCpc4HudKodBnhoQUGuTGhRHdlIFhbtf3VBtY,1633
|
8
|
-
lionagi/utils.py,sha256=
|
9
|
-
lionagi/version.py,sha256=
|
8
|
+
lionagi/utils.py,sha256=mCe1ZDtOWp0p-CMBygmTQHmPujjyFDgY0Bwa3BOVceA,17850
|
9
|
+
lionagi/version.py,sha256=ZIYpuZI41Jfj-0NfW9-SGHVIJ9A014nURtKnLa84glc,23
|
10
10
|
lionagi/adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
11
11
|
lionagi/adapters/_utils.py,sha256=sniMG1LDDkwJNzUF2K32jv7rA6Y1QcohgyNclYsptzI,453
|
12
12
|
lionagi/adapters/async_postgres_adapter.py,sha256=2XlxYNPow78dFHIQs8W1oJ2zkVD5Udn3aynMBF9Nf3k,3498
|
@@ -38,11 +38,11 @@ lionagi/libs/validate/common_field_validators.py,sha256=1BHznXnJYcLQrHqvHKUnP6aq
|
|
38
38
|
lionagi/libs/validate/to_num.py,sha256=ZRHDjpTCykPfDIZZa4rZKNaR_8ZHbPDFlw9rc02DrII,11610
|
39
39
|
lionagi/libs/validate/validate_boolean.py,sha256=bjiX_WZ3Bg8XcqoWLzE1G9BpO0AisrlZUxrpye_mlGk,3614
|
40
40
|
lionagi/ln/__init__.py,sha256=dQvfTU1MHUrG4C4KoqEs7Xg801seML-GNjihbdUtp3E,1575
|
41
|
-
lionagi/ln/_async_call.py,sha256=
|
42
|
-
lionagi/ln/_hash.py,sha256=
|
41
|
+
lionagi/ln/_async_call.py,sha256=1HyYZYec_fcla2of-4xduPtqyZIcyEKOXLwM5IZzoao,9610
|
42
|
+
lionagi/ln/_hash.py,sha256=dIrQgOAdrWkVQcaCJXN-XIaA1sIZSYtAU302fywrtJU,4756
|
43
43
|
lionagi/ln/_json_dump.py,sha256=zOeoOE3JbaGAzL-lfAdMqdgaXWYXFliqcgXsZ_pxonI,10347
|
44
44
|
lionagi/ln/_list_call.py,sha256=zvISmCeNAH7yjBcusQI1s17n556tILgePhRMdAM2plA,2831
|
45
|
-
lionagi/ln/_to_list.py,sha256=
|
45
|
+
lionagi/ln/_to_list.py,sha256=V9hC3dpyMhRJwuuyOCU_wJygzEB6sJVZ0fmIRtM6uTg,6993
|
46
46
|
lionagi/ln/_utils.py,sha256=5Z_AsDxdtH5wNB-P4IiihhH0dYUcZMT-hTxFQBQPwL0,4303
|
47
47
|
lionagi/ln/types.py,sha256=MfLUa5iZnOdAJI4owNXA-w41l1ZL7Fs8DVE4OGXQPF8,8517
|
48
48
|
lionagi/ln/concurrency/__init__.py,sha256=xt_GLZ1Zb-nC-RnrNt8jOBWb_uf1md__B1R5cplMShg,1190
|
@@ -59,7 +59,7 @@ lionagi/ln/fuzzy/__init__.py,sha256=Py7hPV7uk5rPRGvQ4yPjMzXS32aQ7QVkO-mX69FfsMM,
|
|
59
59
|
lionagi/ln/fuzzy/_extract_json.py,sha256=rYHaK36yzRpie8qO-T7mZKOue2yqCLx3ixiuKhsaKvg,2224
|
60
60
|
lionagi/ln/fuzzy/_fuzzy_json.py,sha256=S0lCkNvprn7XZHoYdRfzXueexSbjxTeLPkpyJ9IAO3A,3860
|
61
61
|
lionagi/ln/fuzzy/_fuzzy_match.py,sha256=MBL2qB180MsGkIvhiHQpVObfikBFjcLcFWG9T6vLZQ0,5915
|
62
|
-
lionagi/ln/fuzzy/_fuzzy_validate.py,sha256=
|
62
|
+
lionagi/ln/fuzzy/_fuzzy_validate.py,sha256=rNp8iCgLAeKtANtrI79SELAXkoUOXrAwblKj6x_ChIA,5252
|
63
63
|
lionagi/ln/fuzzy/_string_similarity.py,sha256=axgLjDgDfBT-soxZFU2iH2bZYmGePSzc9Mxl3WlOxAA,8718
|
64
64
|
lionagi/ln/fuzzy/_to_dict.py,sha256=H9W6f5-QWR0_40kzKLf5_CMF4iUd1IRqBDwPmthsX5c,11844
|
65
65
|
lionagi/models/__init__.py,sha256=b7A4AaVGq4pZvYyTG8N_yvtRzwWJ8MxE9Y6mDZb8U0k,422
|
@@ -160,13 +160,13 @@ lionagi/service/resilience.py,sha256=91RPFtQY4QyNga_nuSNLsbzNE26pXJMTAfLaQqVdvmg
|
|
160
160
|
lionagi/service/token_calculator.py,sha256=piTidArzUkIMCtOLC_HBLoZNYZcENQywgeKM31bxezM,6457
|
161
161
|
lionagi/service/types.py,sha256=KxUM3m6LMPqIO3l1nNdaSJ8vt46ozOKWFZyI4LXBTRk,1532
|
162
162
|
lionagi/service/connections/__init__.py,sha256=yHQZ7OJpCftd6CStYR8inbxjJydYdmv9kCvbUBhJ2zU,362
|
163
|
-
lionagi/service/connections/api_calling.py,sha256=
|
163
|
+
lionagi/service/connections/api_calling.py,sha256=J_njj3nwoG80vc39T0MZeM2BBniPWsAZPVvMqEJll1M,9941
|
164
164
|
lionagi/service/connections/endpoint.py,sha256=0r4-8NPyAvLNey09BBsUr5KGJCXchBmVZm2pCe3Nbq4,15165
|
165
165
|
lionagi/service/connections/endpoint_config.py,sha256=6sA06uCzriT6p0kFxhDCFH8N6V6MVp8ytlOw5ctBhDI,5169
|
166
166
|
lionagi/service/connections/header_factory.py,sha256=IYeTQQk7r8FXcdhmW7orCxHjNO-Nb1EOXhgNK7CAp-I,1821
|
167
167
|
lionagi/service/connections/match_endpoint.py,sha256=QlOw9CbR1peExP-b-XlkRpqqGIksfNefI2EZCw9P7_E,2575
|
168
168
|
lionagi/service/connections/mcp/__init__.py,sha256=3lzOakDoBWmMaNnT2g-YwktPKa_Wme4lnPRSmOQfayY,105
|
169
|
-
lionagi/service/connections/mcp/wrapper.py,sha256=
|
169
|
+
lionagi/service/connections/mcp/wrapper.py,sha256=M7k-XH7x1__SZ0pq7ddnM0_G0t5ZZD3c8O_AbldkSjA,9158
|
170
170
|
lionagi/service/connections/providers/__init__.py,sha256=3lzOakDoBWmMaNnT2g-YwktPKa_Wme4lnPRSmOQfayY,105
|
171
171
|
lionagi/service/connections/providers/anthropic_.py,sha256=vok8mIyFiuV3K83tOjdYfruA6cv1h_57ML6RtpuW-bU,3157
|
172
172
|
lionagi/service/connections/providers/claude_code_cli.py,sha256=kqEOnCUOOh2O_3NGi6W7r-gdLsbW-Jcp11tm30VEv4Q,4455
|
@@ -197,7 +197,7 @@ lionagi/tools/base.py,sha256=hEGnE4MD0CM4UqnF0xsDRKB0aM-pyrTFHl8utHhyJLU,1897
|
|
197
197
|
lionagi/tools/types.py,sha256=XtJLY0m-Yi_ZLWhm0KycayvqMCZd--HxfQ0x9vFUYDE,230
|
198
198
|
lionagi/tools/file/__init__.py,sha256=5y5joOZzfFWERl75auAcNcKC3lImVJ5ZZGvvHZUFCJM,112
|
199
199
|
lionagi/tools/file/reader.py,sha256=2YKgU3VKo76zfL_buDAUQJoPLC56f6WJ4_mdJjlMDIM,9509
|
200
|
-
lionagi-0.17.
|
201
|
-
lionagi-0.17.
|
202
|
-
lionagi-0.17.
|
203
|
-
lionagi-0.17.
|
200
|
+
lionagi-0.17.5.dist-info/METADATA,sha256=b-FrYNzfNbUOTbBqNJ5gTjzfMz4Zf5Wlt-J-Dg_RI5M,23440
|
201
|
+
lionagi-0.17.5.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
202
|
+
lionagi-0.17.5.dist-info/licenses/LICENSE,sha256=VXFWsdoN5AAknBCgFqQNgPWYx7OPp-PFEP961zGdOjc,11288
|
203
|
+
lionagi-0.17.5.dist-info/RECORD,,
|
File without changes
|
File without changes
|