lionagi 0.17.9__py3-none-any.whl → 0.17.11__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.
Files changed (151) hide show
  1. lionagi/__init__.py +1 -2
  2. lionagi/_class_registry.py +1 -2
  3. lionagi/_errors.py +1 -2
  4. lionagi/adapters/async_postgres_adapter.py +2 -10
  5. lionagi/config.py +1 -2
  6. lionagi/fields/action.py +1 -2
  7. lionagi/fields/base.py +3 -0
  8. lionagi/fields/code.py +3 -0
  9. lionagi/fields/file.py +3 -0
  10. lionagi/fields/instruct.py +1 -2
  11. lionagi/fields/reason.py +3 -2
  12. lionagi/fields/research.py +3 -0
  13. lionagi/libs/__init__.py +1 -2
  14. lionagi/libs/file/__init__.py +1 -2
  15. lionagi/libs/file/chunk.py +1 -2
  16. lionagi/libs/file/process.py +1 -2
  17. lionagi/libs/schema/__init__.py +1 -2
  18. lionagi/libs/schema/as_readable.py +1 -2
  19. lionagi/libs/schema/extract_code_block.py +1 -2
  20. lionagi/libs/schema/extract_docstring.py +1 -2
  21. lionagi/libs/schema/function_to_schema.py +1 -2
  22. lionagi/libs/schema/load_pydantic_model_from_schema.py +1 -2
  23. lionagi/libs/validate/__init__.py +1 -2
  24. lionagi/libs/validate/common_field_validators.py +1 -2
  25. lionagi/libs/validate/validate_boolean.py +1 -2
  26. lionagi/ln/fuzzy/_string_similarity.py +1 -2
  27. lionagi/ln/types.py +45 -0
  28. lionagi/models/__init__.py +1 -2
  29. lionagi/models/field_model.py +392 -286
  30. lionagi/models/hashable_model.py +98 -14
  31. lionagi/models/model_params.py +272 -271
  32. lionagi/models/operable_model.py +9 -10
  33. lionagi/models/schema_model.py +1 -2
  34. lionagi/operations/ReAct/ReAct.py +1 -2
  35. lionagi/operations/ReAct/__init__.py +1 -2
  36. lionagi/operations/ReAct/utils.py +1 -2
  37. lionagi/operations/__init__.py +1 -2
  38. lionagi/operations/_act/__init__.py +1 -2
  39. lionagi/operations/_act/act.py +1 -2
  40. lionagi/operations/brainstorm/__init__.py +1 -2
  41. lionagi/operations/brainstorm/brainstorm.py +1 -2
  42. lionagi/operations/brainstorm/prompt.py +1 -2
  43. lionagi/operations/builder.py +1 -2
  44. lionagi/operations/chat/__init__.py +1 -2
  45. lionagi/operations/chat/chat.py +1 -2
  46. lionagi/operations/communicate/communicate.py +1 -2
  47. lionagi/operations/flow.py +1 -2
  48. lionagi/operations/instruct/__init__.py +1 -2
  49. lionagi/operations/instruct/instruct.py +1 -2
  50. lionagi/operations/interpret/__init__.py +1 -2
  51. lionagi/operations/interpret/interpret.py +1 -2
  52. lionagi/operations/operate/__init__.py +1 -2
  53. lionagi/operations/operate/operate.py +1 -2
  54. lionagi/operations/parse/__init__.py +1 -2
  55. lionagi/operations/parse/parse.py +1 -2
  56. lionagi/operations/plan/__init__.py +1 -2
  57. lionagi/operations/plan/plan.py +1 -2
  58. lionagi/operations/plan/prompt.py +1 -2
  59. lionagi/operations/select/__init__.py +1 -2
  60. lionagi/operations/select/select.py +1 -2
  61. lionagi/operations/select/utils.py +1 -2
  62. lionagi/operations/types.py +1 -2
  63. lionagi/operations/utils.py +1 -2
  64. lionagi/protocols/__init__.py +1 -2
  65. lionagi/protocols/_concepts.py +1 -2
  66. lionagi/protocols/action/__init__.py +1 -2
  67. lionagi/protocols/action/function_calling.py +3 -20
  68. lionagi/protocols/action/manager.py +34 -4
  69. lionagi/protocols/action/tool.py +1 -2
  70. lionagi/protocols/contracts.py +1 -2
  71. lionagi/protocols/forms/__init__.py +1 -2
  72. lionagi/protocols/forms/base.py +1 -2
  73. lionagi/protocols/forms/flow.py +1 -2
  74. lionagi/protocols/forms/form.py +1 -2
  75. lionagi/protocols/forms/report.py +1 -2
  76. lionagi/protocols/generic/__init__.py +1 -2
  77. lionagi/protocols/generic/element.py +17 -65
  78. lionagi/protocols/generic/event.py +1 -2
  79. lionagi/protocols/generic/log.py +14 -12
  80. lionagi/protocols/generic/pile.py +6 -4
  81. lionagi/protocols/generic/processor.py +1 -2
  82. lionagi/protocols/generic/progression.py +1 -2
  83. lionagi/protocols/graph/__init__.py +1 -2
  84. lionagi/protocols/graph/edge.py +1 -2
  85. lionagi/protocols/graph/graph.py +1 -2
  86. lionagi/protocols/graph/node.py +1 -2
  87. lionagi/protocols/ids.py +1 -2
  88. lionagi/protocols/mail/__init__.py +1 -2
  89. lionagi/protocols/mail/exchange.py +1 -2
  90. lionagi/protocols/mail/mail.py +1 -2
  91. lionagi/protocols/mail/mailbox.py +1 -2
  92. lionagi/protocols/mail/manager.py +1 -2
  93. lionagi/protocols/mail/package.py +1 -2
  94. lionagi/protocols/messages/__init__.py +1 -2
  95. lionagi/protocols/messages/action_request.py +1 -2
  96. lionagi/protocols/messages/action_response.py +1 -2
  97. lionagi/protocols/messages/assistant_response.py +1 -2
  98. lionagi/protocols/messages/base.py +1 -2
  99. lionagi/protocols/messages/instruction.py +1 -2
  100. lionagi/protocols/messages/manager.py +1 -2
  101. lionagi/protocols/messages/message.py +1 -2
  102. lionagi/protocols/messages/system.py +1 -2
  103. lionagi/protocols/operatives/__init__.py +1 -2
  104. lionagi/protocols/operatives/operative.py +30 -8
  105. lionagi/protocols/operatives/step.py +1 -2
  106. lionagi/protocols/types.py +1 -2
  107. lionagi/service/connections/__init__.py +1 -2
  108. lionagi/service/connections/api_calling.py +1 -2
  109. lionagi/service/connections/endpoint.py +1 -2
  110. lionagi/service/connections/endpoint_config.py +1 -2
  111. lionagi/service/connections/header_factory.py +1 -2
  112. lionagi/service/connections/match_endpoint.py +1 -2
  113. lionagi/service/connections/mcp/__init__.py +1 -2
  114. lionagi/service/connections/mcp/wrapper.py +1 -2
  115. lionagi/service/connections/providers/__init__.py +1 -2
  116. lionagi/service/connections/providers/anthropic_.py +1 -2
  117. lionagi/service/connections/providers/claude_code_cli.py +1 -2
  118. lionagi/service/connections/providers/exa_.py +1 -2
  119. lionagi/service/connections/providers/nvidia_nim_.py +2 -27
  120. lionagi/service/connections/providers/oai_.py +1 -2
  121. lionagi/service/connections/providers/ollama_.py +1 -2
  122. lionagi/service/connections/providers/perplexity_.py +1 -2
  123. lionagi/service/hooks/__init__.py +1 -1
  124. lionagi/service/hooks/_types.py +1 -1
  125. lionagi/service/hooks/_utils.py +1 -1
  126. lionagi/service/hooks/hook_event.py +1 -1
  127. lionagi/service/hooks/hook_registry.py +1 -1
  128. lionagi/service/hooks/hooked_event.py +1 -2
  129. lionagi/service/imodel.py +1 -2
  130. lionagi/service/manager.py +1 -2
  131. lionagi/service/rate_limited_processor.py +1 -2
  132. lionagi/service/resilience.py +1 -2
  133. lionagi/service/third_party/anthropic_models.py +3 -5
  134. lionagi/service/third_party/claude_code.py +1 -2
  135. lionagi/service/token_calculator.py +1 -2
  136. lionagi/service/types.py +1 -2
  137. lionagi/session/__init__.py +1 -2
  138. lionagi/session/branch.py +1 -2
  139. lionagi/session/session.py +1 -2
  140. lionagi/tools/__init__.py +1 -2
  141. lionagi/tools/base.py +1 -2
  142. lionagi/tools/file/__init__.py +1 -2
  143. lionagi/tools/file/reader.py +1 -2
  144. lionagi/tools/types.py +1 -2
  145. lionagi/utils.py +1 -2
  146. lionagi/version.py +1 -1
  147. {lionagi-0.17.9.dist-info → lionagi-0.17.11.dist-info}/METADATA +2 -2
  148. lionagi-0.17.11.dist-info/RECORD +199 -0
  149. lionagi-0.17.9.dist-info/RECORD +0 -199
  150. {lionagi-0.17.9.dist-info → lionagi-0.17.11.dist-info}/WHEEL +0 -0
  151. {lionagi-0.17.9.dist-info → lionagi-0.17.11.dist-info}/licenses/LICENSE +0 -0
lionagi/__init__.py CHANGED
@@ -1,5 +1,4 @@
1
- # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
- #
1
+ # Copyright (c) 2023-2025, HaiyangLi <quantocean.li at gmail dot com>
3
2
  # SPDX-License-Identifier: Apache-2.0
4
3
 
5
4
  import logging
@@ -1,5 +1,4 @@
1
- # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
- #
1
+ # Copyright (c) 2023-2025, HaiyangLi <quantocean.li at gmail dot com>
3
2
  # SPDX-License-Identifier: Apache-2.0
4
3
 
5
4
  import ast
lionagi/_errors.py CHANGED
@@ -1,5 +1,4 @@
1
- # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
- #
1
+ # Copyright (c) 2023-2025, HaiyangLi <quantocean.li at gmail dot com>
3
2
  # SPDX-License-Identifier: Apache-2.0
4
3
 
5
4
  from __future__ import annotations
@@ -1,13 +1,5 @@
1
- """
2
- Simplified LionAGI async PostgreSQL adapter for pydapter v1.0.4+
3
-
4
- This adapter leverages pydapter's improved raw SQL handling.
5
- No workarounds needed - pydapter now properly handles:
6
- - Raw SQL without table parameter
7
- - No table inspection for raw SQL
8
- - ORDER BY operations
9
- - Both SQLite and PostgreSQL connections
10
- """
1
+ # Copyright (c) 2023-2025, HaiyangLi <quantocean.li at gmail dot com>
2
+ # SPDX-License-Identifier: Apache-2.0
11
3
 
12
4
  from __future__ import annotations
13
5
 
lionagi/config.py CHANGED
@@ -1,5 +1,4 @@
1
- # Copyright (c) 2025, HaiyangLi <quantocean.li at gmail dot com>
2
- #
1
+ # Copyright (c) 2023-2025, HaiyangLi <quantocean.li at gmail dot com>
3
2
  # SPDX-License-Identifier: Apache-2.0
4
3
 
5
4
  from typing import Any, ClassVar
lionagi/fields/action.py CHANGED
@@ -1,5 +1,4 @@
1
- # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
- #
1
+ # Copyright (c) 2023-2025, HaiyangLi <quantocean.li at gmail dot com>
3
2
  # SPDX-License-Identifier: Apache-2.0
4
3
 
5
4
  import re
lionagi/fields/base.py CHANGED
@@ -1,3 +1,6 @@
1
+ # Copyright (c) 2023-2025, HaiyangLi <quantocean.li at gmail dot com>
2
+ # SPDX-License-Identifier: Apache-2.0
3
+
1
4
  from enum import Enum
2
5
 
3
6
  from pydantic import Field, HttpUrl
lionagi/fields/code.py CHANGED
@@ -1,3 +1,6 @@
1
+ # Copyright (c) 2023-2025, HaiyangLi <quantocean.li at gmail dot com>
2
+ # SPDX-License-Identifier: Apache-2.0
3
+
1
4
  from enum import Enum
2
5
 
3
6
  from pydantic import Field
lionagi/fields/file.py CHANGED
@@ -1,3 +1,6 @@
1
+ # Copyright (c) 2023-2025, HaiyangLi <quantocean.li at gmail dot com>
2
+ # SPDX-License-Identifier: Apache-2.0
3
+
1
4
  from abc import abstractmethod
2
5
  from pathlib import Path
3
6
 
@@ -1,5 +1,4 @@
1
- # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
- #
1
+ # Copyright (c) 2023-2025, HaiyangLi <quantocean.li at gmail dot com>
3
2
  # SPDX-License-Identifier: Apache-2.0
4
3
 
5
4
  from typing import Any, ClassVar, Literal
lionagi/fields/reason.py CHANGED
@@ -1,5 +1,4 @@
1
- # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
- #
1
+ # Copyright (c) 2023-2025, HaiyangLi <quantocean.li at gmail dot com>
3
2
  # SPDX-License-Identifier: Apache-2.0
4
3
 
5
4
  from pydantic import Field, field_validator
@@ -32,6 +31,8 @@ class Reason(HashableModel):
32
31
 
33
32
 
34
33
  def validate_confidence_score(cls, v):
34
+ if v is None:
35
+ return None
35
36
  try:
36
37
  return to_num(
37
38
  v,
@@ -1,3 +1,6 @@
1
+ # Copyright (c) 2023-2025, HaiyangLi <quantocean.li at gmail dot com>
2
+ # SPDX-License-Identifier: Apache-2.0
3
+
1
4
  from pydantic import Field
2
5
 
3
6
  from lionagi.models import HashableModel
lionagi/libs/__init__.py CHANGED
@@ -1,3 +1,2 @@
1
- # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
- #
1
+ # Copyright (c) 2023-2025, HaiyangLi <quantocean.li at gmail dot com>
3
2
  # SPDX-License-Identifier: Apache-2.0
@@ -1,3 +1,2 @@
1
- # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
- #
1
+ # Copyright (c) 2023-2025, HaiyangLi <quantocean.li at gmail dot com>
3
2
  # SPDX-License-Identifier: Apache-2.0
@@ -1,5 +1,4 @@
1
- # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
- #
1
+ # Copyright (c) 2023-2025, HaiyangLi <quantocean.li at gmail dot com>
3
2
  # SPDX-License-Identifier: Apache-2.0
4
3
 
5
4
  import math
@@ -1,5 +1,4 @@
1
- # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
- #
1
+ # Copyright (c) 2023-2025, HaiyangLi <quantocean.li at gmail dot com>
3
2
  # SPDX-License-Identifier: Apache-2.0
4
3
 
5
4
  import logging
@@ -1,3 +1,2 @@
1
- # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
- #
1
+ # Copyright (c) 2023-2025, HaiyangLi <quantocean.li at gmail dot com>
3
2
  # SPDX-License-Identifier: Apache-2.0
@@ -1,5 +1,4 @@
1
- # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
- #
1
+ # Copyright (c) 2023-2025, HaiyangLi <quantocean.li at gmail dot com>
3
2
  # SPDX-License-Identifier: Apache-2.0
4
3
 
5
4
  import json
@@ -1,5 +1,4 @@
1
- # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
- #
1
+ # Copyright (c) 2023-2025, HaiyangLi <quantocean.li at gmail dot com>
3
2
  # SPDX-License-Identifier: Apache-2.0
4
3
 
5
4
  import re
@@ -1,5 +1,4 @@
1
- # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
- #
1
+ # Copyright (c) 2023-2025, HaiyangLi <quantocean.li at gmail dot com>
3
2
  # SPDX-License-Identifier: Apache-2.0
4
3
 
5
4
  import inspect
@@ -1,5 +1,4 @@
1
- # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
- #
1
+ # Copyright (c) 2023-2025, HaiyangLi <quantocean.li at gmail dot com>
3
2
  # SPDX-License-Identifier: Apache-2.0
4
3
 
5
4
  import inspect
@@ -1,5 +1,4 @@
1
- # Copyright (c) 2025, HaiyangLi <quantocean.li at gmail dot com>
2
- #
1
+ # Copyright (c) 2023-2025, HaiyangLi <quantocean.li at gmail dot com>
3
2
  # SPDX-License-Identifier: Apache-2.0
4
3
 
5
4
  import importlib.util
@@ -1,3 +1,2 @@
1
- # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
- #
1
+ # Copyright (c) 2023-2025, HaiyangLi <quantocean.li at gmail dot com>
3
2
  # SPDX-License-Identifier: Apache-2.0
@@ -1,5 +1,4 @@
1
- # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
- #
1
+ # Copyright (c) 2023-2025, HaiyangLi <quantocean.li at gmail dot com>
3
2
  # SPDX-License-Identifier: Apache-2.0
4
3
 
5
4
  from pydantic import BaseModel, JsonValue
@@ -1,5 +1,4 @@
1
- # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
- #
1
+ # Copyright (c) 2023-2025, HaiyangLi <quantocean.li at gmail dot com>
3
2
  # SPDX-License-Identifier: Apache-2.0
4
3
 
5
4
  from numbers import Complex
@@ -1,5 +1,4 @@
1
- # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
- #
1
+ # Copyright (c) 2023-2025, HaiyangLi <quantocean.li at gmail dot com>
3
2
  # SPDX-License-Identifier: Apache-2.0
4
3
 
5
4
  from collections.abc import Callable
lionagi/ln/types.py CHANGED
@@ -24,6 +24,7 @@ __all__ = (
24
24
  "Params",
25
25
  "DataClass",
26
26
  "KeysLike",
27
+ "Meta",
27
28
  )
28
29
 
29
30
  T = TypeVar("T")
@@ -312,3 +313,47 @@ class DataClass:
312
313
 
313
314
 
314
315
  KeysLike = Sequence[str] | KeysDict
316
+
317
+
318
+ @dataclass(slots=True, frozen=True)
319
+ class Meta:
320
+ """Immutable metadata container for field templates and other configurations."""
321
+
322
+ key: str
323
+ value: Any
324
+
325
+ @override
326
+ def __hash__(self) -> int:
327
+ """Make metadata hashable for caching.
328
+
329
+ Note: For callables, we hash by id to maintain identity semantics.
330
+ """
331
+ # For callables, use their id
332
+ if callable(self.value):
333
+ return hash((self.key, id(self.value)))
334
+ # For other values, try to hash directly
335
+ try:
336
+ return hash((self.key, self.value))
337
+ except TypeError:
338
+ # Fallback for unhashable types
339
+ return hash((self.key, str(self.value)))
340
+
341
+ @override
342
+ def __eq__(self, other: object) -> bool:
343
+ """Compare metadata for equality.
344
+
345
+ For callables, compare by id to increase cache hits when the same
346
+ validator instance is reused. For other values, use standard equality.
347
+ """
348
+ if not isinstance(other, Meta):
349
+ return NotImplemented
350
+
351
+ if self.key != other.key:
352
+ return False
353
+
354
+ # For callables, compare by identity
355
+ if callable(self.value) and callable(other.value):
356
+ return id(self.value) == id(other.value)
357
+
358
+ # For other values, use standard equality
359
+ return bool(self.value == other.value)
@@ -1,5 +1,4 @@
1
- # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
- #
1
+ # Copyright (c) 2023-2025, HaiyangLi <quantocean.li at gmail dot com>
3
2
  # SPDX-License-Identifier: Apache-2.0
4
3
 
5
4
  from .field_model import FieldModel