lionagi 0.16.0__tar.gz → 0.16.1__tar.gz
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-0.16.0 → lionagi-0.16.1}/PKG-INFO +3 -3
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/adapters/async_postgres_adapter.py +1 -1
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/nested/ninsert.py +3 -6
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/nested/nmerge.py +1 -2
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/ReAct/utils.py +1 -2
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/action/function_calling.py +1 -4
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/generic/element.py +1 -58
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/graph/graph.py +1 -2
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/graph/node.py +2 -4
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/messages/instruction.py +1 -2
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/messages/manager.py +1 -2
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/messages/message.py +1 -4
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/connections/providers/claude_code_.py +1 -2
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/resilience.py +1 -2
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/tools/memory/tools.py +2 -4
- lionagi-0.16.1/lionagi/version.py +1 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/pyproject.toml +3 -3
- {lionagi-0.16.0 → lionagi-0.16.1}/uv.lock +7 -8
- lionagi-0.16.0/lionagi/version.py +0 -1
- {lionagi-0.16.0 → lionagi-0.16.1}/.coveragerc +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/.env.example +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/.github/FUNDING.yml +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/.github/dependabot.yml +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/.github/workflows/benchmarks.yml +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/.github/workflows/ci.yml +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/.github/workflows/codeql.yml +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/.github/workflows/docs-deploy.yml +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/.github/workflows/refresh-bench-baselines.yml +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/.github/workflows/release.yml +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/.gitignore +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/.pre-commit-config.yaml +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/.python-version +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/CODE_OF_CONDUCT.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/CONTRIBUTING.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/LICENSE +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/README.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/assets/operation_builder.gif +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/benchmarks/README.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/benchmarks/baselines/.gitkeep +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/benchmarks/baselines/concurrency-asyncio.json +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/benchmarks/baselines/concurrency-trio.json +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/benchmarks/baselines/fuzzy.json +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/benchmarks/baselines/ln-asyncio.json +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/benchmarks/baselines/ln-trio.json +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/benchmarks/ci_compare.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/benchmarks/concurrency_bench.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/benchmarks/fuzzy_bench.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/benchmarks/ln_bench.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/cookbooks/001_branch_converse.ipynb +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/cookbooks/002_branch_interact.ipynb +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/cookbooks/003_branch_info.ipynb +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/cookbooks/004_conversation_patterns.ipynb +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/cookbooks/005_react_basics.ipynb +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/cookbooks/006_operation_graphs_claim_extraction.ipynb +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/cookbooks/007_fan_out_in.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/cookbooks/claude_proxy/README.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/cookbooks/claude_proxy/claude_code_proxy.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/cookbooks/claude_proxy/run_w_claude_code_proxy.ipynb +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/cookbooks/data/002_comedian.json +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/cookbooks/data/002_critic.json +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/cookbooks/data/006_lion_proof_ch2.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/cookbooks/using_claude_code.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/DOCUMENTATION_STANDARDS.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/advanced/custom-operations.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/advanced/error-handling.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/advanced/flow-composition.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/advanced/index.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/advanced/observability.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/advanced/performance.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/code-of-conduct.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/comparisons/langgraph.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/contributing.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/cookbook/brainstorming.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/cookbook/claim-extraction.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/cookbook/code-review-crew.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/cookbook/data-persistence.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/cookbook/hr-automation.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/cookbook/index.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/cookbook/research-synthesis.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/core-concepts/index.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/core-concepts/lionagi-philosophy.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/core-concepts/messages-and-memory.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/core-concepts/models-and-providers.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/core-concepts/operations.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/core-concepts/sessions-and-branches.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/core-concepts/tools-and-functions.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/for-ai-agents/claude-code-usage.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/for-ai-agents/index.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/for-ai-agents/orchestration-guide.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/for-ai-agents/pattern-selection.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/for-ai-agents/self-improvement.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/includes/abbreviations.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/index.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/integrations/databases.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/integrations/dspy-optimization.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/integrations/index.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/integrations/llamaindex-rag.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/integrations/llm-providers.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/integrations/mcp-servers.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/integrations/tools.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/integrations/vector-stores.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/marketing/language-interoperability-manifesto.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/migration/from-autogen.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/migration/from-crewai.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/migration/from-langchain.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/migration/index.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/patterns/conditional-flows.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/patterns/fan-out-in.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/patterns/index.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/patterns/react-with-rag.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/patterns/sequential-analysis.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/patterns/tournament-validation.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/problem-statement.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/quickstart/claude-code-integration.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/quickstart/index.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/quickstart/installation.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/quickstart/orchestration-first.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/quickstart/your-first-flow.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/reference/api/index.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/reference/changelog.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/reference/troubleshooting.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/stylesheets/extra.css +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/thinking-in-lionagi/branches-as-agents.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/thinking-in-lionagi/builder-pattern.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/thinking-in-lionagi/graphs-over-chains.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/thinking-in-lionagi/index.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/docs/thinking-in-lionagi/why-lionagi.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/_class_registry.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/_errors.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/_types.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/adapters/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/adapters/_utils.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/adapters/postgres_model_adapter.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/config.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/fields/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/fields/action.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/fields/base.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/fields/code.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/fields/file.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/fields/instruct.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/fields/reason.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/fields/research.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/concurrency.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/file/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/file/_utils.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/file/chunk.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/file/concat.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/file/concat_files.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/file/file_ops.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/file/params.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/file/process.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/file/save.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/nested/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/nested/flatten.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/nested/nfilter.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/nested/nget.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/nested/npop.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/nested/nset.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/nested/unflatten.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/nested/utils.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/parse.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/schema/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/schema/as_readable.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/schema/extract_code_block.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/schema/extract_docstring.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/schema/function_to_schema.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/schema/json_schema.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/schema/load_pydantic_model_from_schema.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/base.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/llmlingua.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/perplexity.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/symbolic_compress_context.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/synthlang.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/synthlang_/base.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/abstract_algebra.toml +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/category_theory.toml +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/complex_analysis.toml +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/framework_options.json +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/group_theory.toml +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/math_logic.toml +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/reflective_patterns.toml +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/set_theory.toml +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/topology_fundamentals.toml +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/synthlang_/resources/mapping/lion_emoji_mapping.toml +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/synthlang_/resources/mapping/python_math_mapping.toml +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/synthlang_/resources/mapping/rust_chinese_mapping.toml +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/synthlang_/resources/utility/base_synthlang_system_prompt.toml +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/synthlang_/translate_to_synthlang.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/types.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/unstructured/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/unstructured/pdf_to_image.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/unstructured/read_image_to_base64.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/validate/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/validate/common_field_validators.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/validate/fuzzy_match_keys.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/validate/fuzzy_validate_mapping.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/validate/string_similarity.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/validate/to_num.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/validate/validate_boolean.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/validate/xml_parser.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/_async_call.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/_hash.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/_json_dump.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/_list_call.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/_to_list.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/_utils.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/concurrency/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/concurrency/_compat.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/concurrency/cancel.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/concurrency/errors.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/concurrency/patterns.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/concurrency/primitives.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/concurrency/resource_tracker.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/concurrency/task.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/concurrency/throttle.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/concurrency/utils.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/fuzzy/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/fuzzy/_extract_json.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/fuzzy/_fuzzy_json.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/fuzzy/_fuzzy_match.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/fuzzy/_fuzzy_validate.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/fuzzy/_string_similarity.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/types.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/models/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/models/field_model.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/models/hashable_model.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/models/model_params.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/models/note.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/models/operable_model.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/models/schema_model.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/ReAct/ReAct.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/ReAct/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/_act/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/_act/act.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/brainstorm/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/brainstorm/brainstorm.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/brainstorm/prompt.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/builder.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/chat/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/chat/chat.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/communicate/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/communicate/communicate.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/flow.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/instruct/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/instruct/instruct.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/interpret/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/interpret/interpret.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/manager.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/node.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/operate/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/operate/operate.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/parse/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/parse/parse.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/plan/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/plan/plan.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/plan/prompt.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/select/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/select/select.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/select/utils.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/translate/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/translate/translate.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/types.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/utils.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/_concepts.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/action/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/action/manager.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/action/tool.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/contracts.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/forms/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/forms/base.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/forms/flow.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/forms/form.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/forms/report.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/generic/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/generic/event.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/generic/log.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/generic/pile.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/generic/processor.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/generic/progression.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/graph/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/graph/_utils.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/graph/edge.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/ids.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/mail/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/mail/exchange.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/mail/mail.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/mail/mailbox.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/mail/manager.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/mail/package.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/messages/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/messages/action_request.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/messages/action_response.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/messages/assistant_response.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/messages/base.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/messages/system.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/messages/templates/README.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/messages/templates/action_request.jinja2 +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/messages/templates/action_response.jinja2 +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/messages/templates/assistant_response.jinja2 +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/messages/templates/instruction_message.jinja2 +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/messages/templates/system_message.jinja2 +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/messages/templates/tool_schemas.jinja2 +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/operatives/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/operatives/operative.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/operatives/step.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/types.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/py.typed +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/connections/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/connections/api_calling.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/connections/endpoint.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/connections/endpoint_config.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/connections/header_factory.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/connections/match_endpoint.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/connections/providers/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/connections/providers/anthropic_.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/connections/providers/claude_code_cli.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/connections/providers/exa_.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/connections/providers/nvidia_nim_.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/connections/providers/oai_.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/connections/providers/ollama_.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/connections/providers/perplexity_.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/connections/providers/types.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/hooks/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/hooks/_types.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/hooks/_utils.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/hooks/hook_event.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/hooks/hook_registry.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/imodel.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/manager.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/rate_limited_processor.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/third_party/README.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/third_party/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/third_party/anthropic_models.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/third_party/claude_code.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/third_party/exa_models.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/third_party/openai_model_names.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/third_party/pplx_models.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/token_calculator.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/types.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/session/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/session/branch.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/session/prompts.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/session/session.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/settings.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/tools/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/tools/base.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/tools/file/__init__.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/tools/file/reader.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/tools/types.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/utils.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/main.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/mkdocs.yml +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/scripts/README.md +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/scripts/concat.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/scripts/config.py +0 -0
- {lionagi-0.16.0 → lionagi-0.16.1}/scripts/update_openai_models.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: lionagi
|
3
|
-
Version: 0.16.
|
3
|
+
Version: 0.16.1
|
4
4
|
Summary: An Intelligence Operating System.
|
5
5
|
Author-email: HaiyangLi <quantocean.li@gmail.com>
|
6
6
|
License: Apache License
|
@@ -223,14 +223,14 @@ Requires-Dist: aiocache>=0.12.0
|
|
223
223
|
Requires-Dist: aiohttp>=3.11.0
|
224
224
|
Requires-Dist: anyio>=4.7.0
|
225
225
|
Requires-Dist: backoff>=2.0.0
|
226
|
-
Requires-Dist: exceptiongroup>=1.3.0
|
227
226
|
Requires-Dist: jinja2>=3.0.0
|
228
227
|
Requires-Dist: json-repair>=0.40.0
|
229
228
|
Requires-Dist: msgspec>=0.18.0
|
230
229
|
Requires-Dist: pillow>=10.0.0
|
231
230
|
Requires-Dist: psutil>=6.0.0
|
232
231
|
Requires-Dist: pydantic-settings>=2.8.0
|
233
|
-
Requires-Dist:
|
232
|
+
Requires-Dist: pydantic>=2.8.0
|
233
|
+
Requires-Dist: pydapter[pandas]>=1.1.1
|
234
234
|
Requires-Dist: python-dotenv>=1.1.0
|
235
235
|
Requires-Dist: tiktoken>=0.9.0
|
236
236
|
Requires-Dist: toml>=0.8.0
|
@@ -89,7 +89,7 @@ class LionAGIAsyncPostgresAdapter(AsyncPostgresAdapter[T]):
|
|
89
89
|
sa.Column("id", sa.String, primary_key=True),
|
90
90
|
sa.Column("content", json_type),
|
91
91
|
sa.Column("node_metadata", json_type),
|
92
|
-
sa.Column("created_at", sa.
|
92
|
+
sa.Column("created_at", sa.Float),
|
93
93
|
sa.Column("embedding", json_type, nullable=True),
|
94
94
|
).create(sync_conn, checkfirst=True)
|
95
95
|
)
|
@@ -50,8 +50,7 @@ def ninsert(
|
|
50
50
|
if isinstance(part, int):
|
51
51
|
if isinstance(nested_structure, dict):
|
52
52
|
raise TypeError(
|
53
|
-
f"Unsupported key type: {type(part).__name__}."
|
54
|
-
"Only string keys are acceptable.",
|
53
|
+
f"Unsupported key type: {type(part).__name__}.Only string keys are acceptable.",
|
55
54
|
)
|
56
55
|
while len(nested_structure) <= part:
|
57
56
|
nested_structure.append(None)
|
@@ -67,8 +66,7 @@ def ninsert(
|
|
67
66
|
raise TypeError("Cannot use NoneType as a key in a dictionary")
|
68
67
|
if isinstance(part, (float, complex)):
|
69
68
|
raise TypeError(
|
70
|
-
f"Unsupported key type: {type(part).__name__}."
|
71
|
-
"Only string keys are acceptable.",
|
69
|
+
f"Unsupported key type: {type(part).__name__}.Only string keys are acceptable.",
|
72
70
|
)
|
73
71
|
if part not in nested_structure:
|
74
72
|
next_part = indices[i + 1]
|
@@ -77,8 +75,7 @@ def ninsert(
|
|
77
75
|
)
|
78
76
|
else:
|
79
77
|
raise TypeError(
|
80
|
-
f"Invalid container type: {type(nested_structure)} "
|
81
|
-
"encountered during insertion"
|
78
|
+
f"Invalid container type: {type(nested_structure)} encountered during insertion"
|
82
79
|
)
|
83
80
|
|
84
81
|
nested_structure = nested_structure[part]
|
@@ -51,8 +51,7 @@ def nmerge(
|
|
51
51
|
return _merge_sequences(nested_structure, sort_list, custom_sort)
|
52
52
|
else:
|
53
53
|
raise TypeError(
|
54
|
-
"All items in the input list must be of the same type, "
|
55
|
-
"either dict, list, or Iterable."
|
54
|
+
"All items in the input list must be of the same type, either dict, list, or Iterable."
|
56
55
|
)
|
57
56
|
|
58
57
|
|
@@ -18,8 +18,7 @@ class PlannedAction(HashableModel):
|
|
18
18
|
action_type: str | None = Field(
|
19
19
|
default=None,
|
20
20
|
description=(
|
21
|
-
"The name or type of tool/action to invoke. "
|
22
|
-
"(e.g., 'search_exa', 'reader_tool')"
|
21
|
+
"The name or type of tool/action to invoke. (e.g., 'search_exa', 'reader_tool')"
|
23
22
|
),
|
24
23
|
)
|
25
24
|
description: str | None = Field(
|
@@ -130,10 +130,7 @@ class FunctionCalling(Event):
|
|
130
130
|
Returns:
|
131
131
|
A string containing the class name and key attributes.
|
132
132
|
"""
|
133
|
-
return (
|
134
|
-
f"FunctionCalling(function={self.func_tool.function}, "
|
135
|
-
f"arguments={self.arguments})"
|
136
|
-
)
|
133
|
+
return f"FunctionCalling(function={self.func_tool.function}, arguments={self.arguments})"
|
137
134
|
|
138
135
|
def to_dict(self) -> dict[str, Any]:
|
139
136
|
"""Convert instance to dictionary.
|
@@ -313,7 +313,6 @@ class Element(BaseModel, Observable):
|
|
313
313
|
if mode == "db":
|
314
314
|
dict_ = orjson.loads(self.to_json(decode=False))
|
315
315
|
dict_["node_metadata"] = dict_.pop("metadata", {})
|
316
|
-
dict_["created_at"] = self.created_datetime.isoformat(sep=" ")
|
317
316
|
return dict_
|
318
317
|
|
319
318
|
def as_jsonable(self) -> dict:
|
@@ -321,19 +320,13 @@ class Element(BaseModel, Observable):
|
|
321
320
|
return self.to_dict(mode="json")
|
322
321
|
|
323
322
|
@classmethod
|
324
|
-
def from_dict(cls, data: dict
|
323
|
+
def from_dict(cls, data: dict) -> Element:
|
325
324
|
"""Deserializes a dictionary into an Element or subclass of Element.
|
326
325
|
|
327
326
|
If `lion_class` in `metadata` refers to a subclass, this method
|
328
327
|
is polymorphic, it will attempt to create an instance of that subclass.
|
329
|
-
|
330
|
-
Args:
|
331
|
-
data (dict): A dictionary of field data.
|
332
|
-
mode (str): Format mode - "python" for normal dicts, "db" for database format.
|
333
328
|
"""
|
334
329
|
# Preprocess database format if needed
|
335
|
-
if mode == "db":
|
336
|
-
data = cls._preprocess_db_data(data.copy())
|
337
330
|
metadata = {}
|
338
331
|
|
339
332
|
if "node_metadata" in data:
|
@@ -367,56 +360,6 @@ class Element(BaseModel, Observable):
|
|
367
360
|
data["metadata"] = metadata
|
368
361
|
return cls.model_validate(data)
|
369
362
|
|
370
|
-
@classmethod
|
371
|
-
def _preprocess_db_data(cls, data: dict) -> dict:
|
372
|
-
"""Preprocess raw database data for Element compatibility."""
|
373
|
-
import datetime as dt
|
374
|
-
import json
|
375
|
-
|
376
|
-
# Handle created_at field - convert datetime string to timestamp
|
377
|
-
if "created_at" in data and isinstance(data["created_at"], str):
|
378
|
-
try:
|
379
|
-
# Parse datetime string and convert to timestamp
|
380
|
-
dt_obj = dt.datetime.fromisoformat(
|
381
|
-
data["created_at"].replace(" ", "T")
|
382
|
-
)
|
383
|
-
# Treat as UTC if naive
|
384
|
-
if dt_obj.tzinfo is None:
|
385
|
-
dt_obj = dt_obj.replace(tzinfo=dt.timezone.utc)
|
386
|
-
data["created_at"] = dt_obj.timestamp()
|
387
|
-
except (ValueError, TypeError):
|
388
|
-
# Keep as string if parsing fails
|
389
|
-
pass
|
390
|
-
|
391
|
-
# Handle JSON string fields - parse to dict/list
|
392
|
-
json_fields = ["content", "node_metadata", "embedding"]
|
393
|
-
for field in json_fields:
|
394
|
-
if field in data and isinstance(data[field], str):
|
395
|
-
if data[field] in ("null", ""):
|
396
|
-
data[field] = None if field == "embedding" else {}
|
397
|
-
else:
|
398
|
-
try:
|
399
|
-
data[field] = json.loads(data[field])
|
400
|
-
except (json.JSONDecodeError, TypeError):
|
401
|
-
# Keep as empty dict for metadata fields, None for embedding
|
402
|
-
data[field] = {} if field != "embedding" else None
|
403
|
-
|
404
|
-
# Handle node_metadata -> metadata mapping
|
405
|
-
if "node_metadata" in data:
|
406
|
-
if (
|
407
|
-
data["node_metadata"] == "null"
|
408
|
-
or data["node_metadata"] is None
|
409
|
-
):
|
410
|
-
data["metadata"] = {}
|
411
|
-
else:
|
412
|
-
data["metadata"] = (
|
413
|
-
data["node_metadata"] if data["node_metadata"] else {}
|
414
|
-
)
|
415
|
-
# Remove node_metadata to avoid Pydantic validation error
|
416
|
-
data.pop("node_metadata", None)
|
417
|
-
|
418
|
-
return data
|
419
|
-
|
420
363
|
def to_json(self, decode: bool = True) -> str:
|
421
364
|
"""Converts this Element to a JSON string."""
|
422
365
|
dict_ = self._to_dict()
|
@@ -87,8 +87,7 @@ class Graph(Element, Relational, Generic[T]):
|
|
87
87
|
or edge.tail not in self.internal_nodes
|
88
88
|
):
|
89
89
|
raise RelationError(
|
90
|
-
"Failed to add edge: Either edge head or tail node does"
|
91
|
-
" not exist in the graph."
|
90
|
+
"Failed to add edge: Either edge head or tail node does not exist in the graph."
|
92
91
|
)
|
93
92
|
try:
|
94
93
|
self.internal_edges.insert(len(self.internal_edges), edge)
|
@@ -63,7 +63,7 @@ class Node(Element, Relational, AsyncAdaptable, Adaptable):
|
|
63
63
|
self, obj_key: str, many=False, **kwargs: Any
|
64
64
|
) -> Any:
|
65
65
|
kwargs["adapt_meth"] = "to_dict"
|
66
|
-
kwargs["
|
66
|
+
kwargs["adapt_kw"] = {"mode": "db"}
|
67
67
|
return await super().adapt_to_async(
|
68
68
|
obj_key=obj_key, many=many, **kwargs
|
69
69
|
)
|
@@ -77,7 +77,6 @@ class Node(Element, Relational, AsyncAdaptable, Adaptable):
|
|
77
77
|
**kwargs: Any,
|
78
78
|
) -> Node:
|
79
79
|
kwargs["adapt_meth"] = "from_dict"
|
80
|
-
kwargs["mode"] = "db"
|
81
80
|
return await super().adapt_from_async(
|
82
81
|
obj, obj_key=obj_key, many=many, **kwargs
|
83
82
|
)
|
@@ -87,7 +86,7 @@ class Node(Element, Relational, AsyncAdaptable, Adaptable):
|
|
87
86
|
Convert this Node to another format using a registered adapter.
|
88
87
|
"""
|
89
88
|
kwargs["adapt_meth"] = "to_dict"
|
90
|
-
kwargs["
|
89
|
+
kwargs["adapt_kw"] = {"mode": "db"}
|
91
90
|
return super().adapt_to(obj_key=obj_key, many=many, **kwargs)
|
92
91
|
|
93
92
|
@classmethod
|
@@ -104,7 +103,6 @@ class Node(Element, Relational, AsyncAdaptable, Adaptable):
|
|
104
103
|
auto-delegate to the correct subclass via from_dict.
|
105
104
|
"""
|
106
105
|
kwargs["adapt_meth"] = "from_dict"
|
107
|
-
kwargs["mode"] = "db"
|
108
106
|
return super().adapt_from(obj, obj_key=obj_key, many=many, **kwargs)
|
109
107
|
|
110
108
|
@field_serializer("content")
|
@@ -587,8 +587,7 @@ class Instruction(RoledMessage):
|
|
587
587
|
|
588
588
|
if request_model and request_fields:
|
589
589
|
raise ValueError(
|
590
|
-
"You cannot pass both request_model and request_fields "
|
591
|
-
"to create_instruction"
|
590
|
+
"You cannot pass both request_model and request_fields to create_instruction"
|
592
591
|
)
|
593
592
|
if guidance:
|
594
593
|
self.guidance = guidance
|
@@ -216,8 +216,7 @@ class MessageManager(Manager):
|
|
216
216
|
"""
|
217
217
|
if not isinstance(action_request, ActionRequest):
|
218
218
|
raise ValueError(
|
219
|
-
"Error: please provide a corresponding action request for an "
|
220
|
-
"action response."
|
219
|
+
"Error: please provide a corresponding action request for an action response."
|
221
220
|
)
|
222
221
|
params = {
|
223
222
|
"action_request": action_request,
|
@@ -241,10 +241,7 @@ class RoledMessage(Node, Sendable):
|
|
241
241
|
if len(str(self.content)) > 75
|
242
242
|
else str(self.content)
|
243
243
|
)
|
244
|
-
return (
|
245
|
-
f"Message(role={self.role}, sender={self.sender}, "
|
246
|
-
f"content='{content_preview}')"
|
247
|
-
)
|
244
|
+
return f"Message(role={self.role}, sender={self.sender}, content='{content_preview}')"
|
248
245
|
|
249
246
|
|
250
247
|
# File: lionagi/protocols/messages/message.py
|
@@ -56,8 +56,7 @@ class ClaudeCodeEndpoint(Endpoint):
|
|
56
56
|
"Please install it with `uv pip install lionagi[claude_code_sdk]`."
|
57
57
|
)
|
58
58
|
warnings.warn(
|
59
|
-
"The claude_code `query` endpoint is deprecated. "
|
60
|
-
"Use `query_cli` endpoint instead.",
|
59
|
+
"The claude_code `query` endpoint is deprecated. Use `query_cli` endpoint instead.",
|
61
60
|
DeprecationWarning,
|
62
61
|
)
|
63
62
|
|
@@ -216,8 +216,7 @@ class CircuitBreaker:
|
|
216
216
|
self._metrics["rejected_count"] += 1
|
217
217
|
|
218
218
|
logger.warning(
|
219
|
-
f"Circuit '{self.name}' is HALF_OPEN and at capacity. "
|
220
|
-
f"Try again later."
|
219
|
+
f"Circuit '{self.name}' is HALF_OPEN and at capacity. Try again later."
|
221
220
|
)
|
222
221
|
|
223
222
|
return False
|
@@ -63,8 +63,7 @@ class MemoryRequest(BaseModel):
|
|
63
63
|
content: str | None = Field(
|
64
64
|
None,
|
65
65
|
description=(
|
66
|
-
"Content to store. REQUIRED if action='store'. "
|
67
|
-
"For other actions, leave it None."
|
66
|
+
"Content to store. REQUIRED if action='store'. For other actions, leave it None."
|
68
67
|
),
|
69
68
|
)
|
70
69
|
|
@@ -96,8 +95,7 @@ class MemoryRequest(BaseModel):
|
|
96
95
|
query: str | None = Field(
|
97
96
|
None,
|
98
97
|
description=(
|
99
|
-
"Query text for semantic search. "
|
100
|
-
"REQUIRED for actions: 'recall', 'search', 'explore'."
|
98
|
+
"Query text for semantic search. REQUIRED for actions: 'recall', 'search', 'explore'."
|
101
99
|
),
|
102
100
|
)
|
103
101
|
|
@@ -0,0 +1 @@
|
|
1
|
+
__version__ = "0.16.1"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[project]
|
2
2
|
name = "lionagi"
|
3
|
-
version = "0.16.
|
3
|
+
version = "0.16.1"
|
4
4
|
description = "An Intelligence Operating System."
|
5
5
|
authors = [
|
6
6
|
{ name = "HaiyangLi", email = "quantocean.li@gmail.com" },
|
@@ -12,14 +12,14 @@ dependencies = [
|
|
12
12
|
"aiohttp>=3.11.0",
|
13
13
|
"anyio>=4.7.0",
|
14
14
|
"backoff>=2.0.0",
|
15
|
-
"exceptiongroup>=1.3.0",
|
16
15
|
"jinja2>=3.0.0",
|
17
16
|
"json-repair>=0.40.0",
|
18
17
|
"msgspec>=0.18.0",
|
19
18
|
"pillow>=10.0.0",
|
20
19
|
"psutil>=6.0.0",
|
20
|
+
"pydantic>=2.8.0",
|
21
21
|
"pydantic-settings>=2.8.0",
|
22
|
-
"pydapter[pandas]>=1.
|
22
|
+
"pydapter[pandas]>=1.1.1",
|
23
23
|
"python-dotenv>=1.1.0",
|
24
24
|
"tiktoken>=0.9.0",
|
25
25
|
"toml>=0.8.0",
|
@@ -2065,19 +2065,19 @@ wheels = [
|
|
2065
2065
|
|
2066
2066
|
[[package]]
|
2067
2067
|
name = "lionagi"
|
2068
|
-
version = "0.16.
|
2068
|
+
version = "0.16.1"
|
2069
2069
|
source = { editable = "." }
|
2070
2070
|
dependencies = [
|
2071
2071
|
{ name = "aiocache" },
|
2072
2072
|
{ name = "aiohttp" },
|
2073
2073
|
{ name = "anyio" },
|
2074
2074
|
{ name = "backoff" },
|
2075
|
-
{ name = "exceptiongroup" },
|
2076
2075
|
{ name = "jinja2" },
|
2077
2076
|
{ name = "json-repair" },
|
2078
2077
|
{ name = "msgspec" },
|
2079
2078
|
{ name = "pillow" },
|
2080
2079
|
{ name = "psutil" },
|
2080
|
+
{ name = "pydantic" },
|
2081
2081
|
{ name = "pydantic-settings" },
|
2082
2082
|
{ name = "pydapter", extra = ["pandas"] },
|
2083
2083
|
{ name = "python-dotenv" },
|
@@ -2176,7 +2176,6 @@ requires-dist = [
|
|
2176
2176
|
{ name = "claude-code-sdk", marker = "extra == 'claude-code'", specifier = ">=0.0.15" },
|
2177
2177
|
{ name = "datamodel-code-generator", marker = "extra == 'schema'", specifier = ">=0.31.2" },
|
2178
2178
|
{ name = "docling", marker = "extra == 'reader'", specifier = ">=2.15.0" },
|
2179
|
-
{ name = "exceptiongroup", specifier = ">=1.3.0" },
|
2180
2179
|
{ name = "fastmcp", marker = "extra == 'mcp'", specifier = ">=2.10.5" },
|
2181
2180
|
{ name = "jinja2", specifier = ">=3.0.0" },
|
2182
2181
|
{ name = "json-repair", specifier = ">=0.40.0" },
|
@@ -2197,8 +2196,9 @@ requires-dist = [
|
|
2197
2196
|
{ name = "opencv-python", marker = "extra == 'unstructured'", specifier = ">=4.2.0.34" },
|
2198
2197
|
{ name = "pillow", specifier = ">=10.0.0" },
|
2199
2198
|
{ name = "psutil", specifier = ">=6.0.0" },
|
2199
|
+
{ name = "pydantic", specifier = ">=2.8.0" },
|
2200
2200
|
{ name = "pydantic-settings", specifier = ">=2.8.0" },
|
2201
|
-
{ name = "pydapter", extras = ["pandas"], specifier = ">=1.0
|
2201
|
+
{ name = "pydapter", extras = ["pandas"], specifier = ">=1.1.0" },
|
2202
2202
|
{ name = "pydapter", extras = ["postgres"], marker = "extra == 'postgres'" },
|
2203
2203
|
{ name = "python-dotenv", specifier = ">=1.1.0" },
|
2204
2204
|
{ name = "rich", marker = "extra == 'rich'", specifier = ">=13.0.0" },
|
@@ -3921,16 +3921,15 @@ wheels = [
|
|
3921
3921
|
|
3922
3922
|
[[package]]
|
3923
3923
|
name = "pydapter"
|
3924
|
-
version = "1.0
|
3924
|
+
version = "1.1.0"
|
3925
3925
|
source = { registry = "https://pypi.org/simple" }
|
3926
3926
|
dependencies = [
|
3927
3927
|
{ name = "orjson" },
|
3928
|
-
{ name = "pydantic" },
|
3929
3928
|
{ name = "toml" },
|
3930
3929
|
]
|
3931
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
3930
|
+
sdist = { url = "https://files.pythonhosted.org/packages/85/01/8d82c7f8bf6b6a872a943288587834e8b26569a10317e366e70ed00d7b3b/pydapter-1.1.0.tar.gz", hash = "sha256:04ec3f47f8f6cbab0675903f33406d24af6d6a17af48d739b51e78bf5dd13046", size = 410293, upload-time = "2025-09-06T01:54:50.626Z" }
|
3932
3931
|
wheels = [
|
3933
|
-
{ url = "https://files.pythonhosted.org/packages/
|
3932
|
+
{ url = "https://files.pythonhosted.org/packages/97/f0/8de7da8f235d656b349a5e2e018af4b8e16e421e10bba46b3dbbe18a9852/pydapter-1.1.0-py3-none-any.whl", hash = "sha256:b6e41a99b887d1a523a6396c283a29e876722e706cf4a429d10f516925cc48c2", size = 96457, upload-time = "2025-09-06T01:54:49.183Z" },
|
3934
3933
|
]
|
3935
3934
|
|
3936
3935
|
[package.optional-dependencies]
|
@@ -1 +0,0 @@
|
|
1
|
-
__version__ = "0.16.0"
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|