lionagi 0.15.0__tar.gz → 0.15.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.15.0 → lionagi-0.15.1}/PKG-INFO +1 -1
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/ln/_async_call.py +2 -1
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/ln/_list_call.py +2 -1
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/ln/_to_list.py +2 -1
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/ln/_types.py +1 -1
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/ln/concurrency/utils.py +2 -1
- lionagi-0.15.1/lionagi/operations/manager.py +23 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/operations/node.py +2 -3
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/generic/event.py +47 -6
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/session/branch.py +11 -2
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/session/session.py +55 -25
- lionagi-0.15.1/lionagi/version.py +1 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/pyproject.toml +1 -1
- {lionagi-0.15.0 → lionagi-0.15.1}/uv.lock +1 -1
- lionagi-0.15.0/lionagi/operations/manager.py +0 -21
- lionagi-0.15.0/lionagi/version.py +0 -1
- {lionagi-0.15.0 → lionagi-0.15.1}/.coveragerc +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/.env.example +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/.github/FUNDING.yml +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/.github/dependabot.yml +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/.github/workflows/ci.yml +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/.github/workflows/codeql.yml +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/.github/workflows/docs.yml +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/.github/workflows/release.yml +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/.gitignore +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/.pre-commit-config.yaml +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/.python-version +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/CODE_OF_CONDUCT.md +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/CONTRIBUTING.md +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/LICENSE +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/README.md +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/assets/operation_builder.gif +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/cookbooks/001_branch_converse.ipynb +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/cookbooks/002_branch_interact.ipynb +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/cookbooks/003_branch_info.ipynb +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/cookbooks/004_conversation_patterns.ipynb +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/cookbooks/005_react_basics.ipynb +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/cookbooks/006_operation_graphs_claim_extraction.ipynb +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/cookbooks/007_fan_out_in.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/cookbooks/claude_proxy/README.md +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/cookbooks/claude_proxy/claude_code_proxy.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/cookbooks/claude_proxy/run_w_claude_code_proxy.ipynb +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/cookbooks/data/002_comedian.json +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/cookbooks/data/002_critic.json +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/cookbooks/data/006_lion_proof_ch2.md +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/cookbooks/using_claude_code.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/docs/Makefile +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/docs/_static/custom.css +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/docs/_templates/layout.html +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/docs/conf.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/docs/discussions/anyio-migration.md +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/docs/index.rst +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/docs/modules/action.rst +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/docs/modules/adapter.rst +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/docs/modules/branch.rst +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/docs/modules/branch_operations.rst +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/docs/modules/concepts.rst +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/docs/modules/element_id.rst +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/docs/modules/event.rst +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/docs/modules/form.rst +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/docs/modules/graph.rst +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/docs/modules/index.rst +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/docs/modules/instruct.rst +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/docs/modules/lib_file.rst +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/docs/modules/lib_nested.rst +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/docs/modules/lib_package.rst +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/docs/modules/lib_schema.rst +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/docs/modules/lib_validate.rst +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/docs/modules/log.rst +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/docs/modules/mail.rst +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/docs/modules/message.rst +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/docs/modules/models.rst +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/docs/modules/operative_step.rst +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/docs/modules/pile.rst +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/docs/modules/processor.rst +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/docs/modules/progression.rst +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/docs/modules/service.rst +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/docs/modules/session.rst +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/docs/modules/utils.rst +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/docs/tutorials/get_started.rst +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/docs/tutorials/get_started_pt2.rst +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/docs/tutorials/get_started_pt3.rst +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/docs/tutorials/index.rst +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/_class_registry.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/_errors.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/_types.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/adapters/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/adapters/async_postgres_adapter.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/adapters/postgres_model_adapter.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/config.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/fields/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/fields/action.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/fields/base.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/fields/code.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/fields/file.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/fields/instruct.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/fields/reason.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/fields/research.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/concurrency.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/file/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/file/chunk.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/file/concat.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/file/concat_files.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/file/file_ops.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/file/params.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/file/process.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/file/save.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/nested/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/nested/flatten.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/nested/nfilter.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/nested/nget.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/nested/ninsert.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/nested/nmerge.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/nested/npop.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/nested/nset.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/nested/unflatten.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/nested/utils.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/package/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/package/imports.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/package/management.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/package/params.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/package/system.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/parse.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/schema/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/schema/as_readable.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/schema/extract_code_block.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/schema/extract_docstring.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/schema/function_to_schema.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/schema/json_schema.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/schema/load_pydantic_model_from_schema.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/token_transform/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/token_transform/base.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/token_transform/llmlingua.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/token_transform/perplexity.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/token_transform/symbolic_compress_context.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/token_transform/synthlang.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/token_transform/synthlang_/base.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/abstract_algebra.toml +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/category_theory.toml +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/complex_analysis.toml +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/framework_options.json +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/group_theory.toml +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/math_logic.toml +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/reflective_patterns.toml +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/set_theory.toml +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/topology_fundamentals.toml +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/token_transform/synthlang_/resources/mapping/lion_emoji_mapping.toml +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/token_transform/synthlang_/resources/mapping/python_math_mapping.toml +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/token_transform/synthlang_/resources/mapping/rust_chinese_mapping.toml +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/token_transform/synthlang_/resources/utility/base_synthlang_system_prompt.toml +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/token_transform/synthlang_/translate_to_synthlang.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/token_transform/types.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/unstructured/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/unstructured/pdf_to_image.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/unstructured/read_image_to_base64.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/validate/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/validate/common_field_validators.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/validate/fuzzy_match_keys.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/validate/fuzzy_validate_mapping.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/validate/string_similarity.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/validate/to_num.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/validate/validate_boolean.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/libs/validate/xml_parser.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/ln/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/ln/_hash.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/ln/_models.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/ln/concurrency/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/ln/concurrency/cancel.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/ln/concurrency/errors.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/ln/concurrency/patterns.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/ln/concurrency/primitives.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/ln/concurrency/resource_tracker.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/ln/concurrency/task.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/ln/concurrency/throttle.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/models/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/models/field_model.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/models/hashable_model.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/models/model_params.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/models/note.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/models/operable_model.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/models/schema_model.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/operations/ReAct/ReAct.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/operations/ReAct/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/operations/ReAct/utils.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/operations/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/operations/_act/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/operations/_act/act.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/operations/brainstorm/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/operations/brainstorm/brainstorm.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/operations/brainstorm/prompt.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/operations/builder.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/operations/chat/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/operations/chat/chat.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/operations/communicate/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/operations/communicate/communicate.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/operations/flow.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/operations/instruct/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/operations/instruct/instruct.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/operations/interpret/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/operations/interpret/interpret.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/operations/operate/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/operations/operate/operate.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/operations/parse/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/operations/parse/parse.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/operations/plan/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/operations/plan/plan.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/operations/plan/prompt.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/operations/select/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/operations/select/select.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/operations/select/utils.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/operations/translate/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/operations/translate/translate.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/operations/types.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/operations/utils.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/_concepts.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/action/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/action/function_calling.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/action/manager.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/action/tool.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/forms/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/forms/base.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/forms/flow.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/forms/form.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/forms/report.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/generic/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/generic/element.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/generic/log.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/generic/pile.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/generic/processor.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/generic/progression.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/graph/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/graph/edge.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/graph/graph.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/graph/node.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/mail/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/mail/exchange.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/mail/mail.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/mail/mailbox.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/mail/manager.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/mail/package.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/messages/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/messages/action_request.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/messages/action_response.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/messages/assistant_response.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/messages/base.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/messages/instruction.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/messages/manager.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/messages/message.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/messages/system.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/messages/templates/README.md +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/messages/templates/action_request.jinja2 +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/messages/templates/action_response.jinja2 +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/messages/templates/assistant_response.jinja2 +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/messages/templates/instruction_message.jinja2 +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/messages/templates/system_message.jinja2 +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/messages/templates/tool_schemas.jinja2 +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/operatives/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/operatives/operative.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/operatives/step.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/protocols/types.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/py.typed +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/service/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/service/connections/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/service/connections/api_calling.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/service/connections/endpoint.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/service/connections/endpoint_config.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/service/connections/header_factory.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/service/connections/match_endpoint.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/service/connections/providers/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/service/connections/providers/anthropic_.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/service/connections/providers/claude_code_.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/service/connections/providers/claude_code_cli.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/service/connections/providers/exa_.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/service/connections/providers/oai_.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/service/connections/providers/ollama_.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/service/connections/providers/perplexity_.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/service/connections/providers/types.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/service/hooks/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/service/hooks/_types.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/service/hooks/_utils.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/service/hooks/hook_event.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/service/hooks/hook_registry.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/service/imodel.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/service/manager.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/service/rate_limited_processor.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/service/resilience.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/service/third_party/README.md +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/service/third_party/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/service/third_party/anthropic_models.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/service/third_party/claude_code.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/service/third_party/exa_models.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/service/third_party/openai_model_names.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/service/third_party/pplx_models.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/service/token_calculator.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/service/types.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/session/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/session/prompts.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/settings.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/tools/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/tools/base.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/tools/file/__init__.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/tools/file/reader.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/tools/memory/tools.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/tools/types.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/lionagi/utils.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/main.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/scripts/README.md +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/scripts/concat.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/scripts/config.py +0 -0
- {lionagi-0.15.0 → lionagi-0.15.1}/scripts/update_openai_models.py +0 -0
@@ -1,6 +1,7 @@
|
|
1
|
+
from collections.abc import Iterable, Mapping
|
1
2
|
from dataclasses import dataclass
|
2
3
|
from enum import Enum as _Enum
|
3
|
-
from typing import Any, ClassVar
|
4
|
+
from typing import Any, ClassVar
|
4
5
|
|
5
6
|
from pydantic import BaseModel
|
6
7
|
from pydantic_core import PydanticUndefinedType
|
@@ -0,0 +1,23 @@
|
|
1
|
+
from collections.abc import Callable
|
2
|
+
|
3
|
+
from lionagi.protocols._concepts import Manager
|
4
|
+
from lionagi.utils import is_coro_func
|
5
|
+
|
6
|
+
"""
|
7
|
+
experimental
|
8
|
+
"""
|
9
|
+
|
10
|
+
|
11
|
+
class OperationManager(Manager):
|
12
|
+
def __init__(self):
|
13
|
+
super().__init__()
|
14
|
+
self.registry: dict[str, Callable] = {}
|
15
|
+
|
16
|
+
def register(self, operation: str, func: Callable, update: bool = False):
|
17
|
+
if operation in self.registry and not update:
|
18
|
+
raise ValueError(f"Operation '{operation}' is already registered.")
|
19
|
+
if not is_coro_func(func):
|
20
|
+
raise ValueError(
|
21
|
+
f"Operation '{operation}' must be an async function."
|
22
|
+
)
|
23
|
+
self.registry[operation] = func
|
@@ -26,7 +26,7 @@ logger = logging.getLogger("operation")
|
|
26
26
|
|
27
27
|
|
28
28
|
class Operation(Node, Event):
|
29
|
-
operation: BranchOperations
|
29
|
+
operation: BranchOperations | str
|
30
30
|
parameters: dict[str, Any] | BaseModel = Field(
|
31
31
|
default_factory=dict,
|
32
32
|
description="Parameters for the operation",
|
@@ -74,12 +74,11 @@ class Operation(Node, Event):
|
|
74
74
|
return self.execution.response if self.execution else None
|
75
75
|
|
76
76
|
async def invoke(self, branch: Branch):
|
77
|
-
meth =
|
77
|
+
meth = branch.get_operation(self.operation)
|
78
78
|
if meth is None:
|
79
79
|
raise ValueError(f"Unsupported operation type: {self.operation}")
|
80
80
|
|
81
81
|
start = asyncio.get_event_loop().time()
|
82
|
-
|
83
82
|
try:
|
84
83
|
self.execution.status = EventStatus.PROCESSING
|
85
84
|
self.branch_id = branch.id
|
@@ -2,11 +2,16 @@
|
|
2
2
|
#
|
3
3
|
# SPDX-License-Identifier: Apache-2.0
|
4
4
|
|
5
|
+
import contextlib
|
6
|
+
import json
|
5
7
|
from enum import Enum
|
6
8
|
from typing import Any
|
7
9
|
|
8
10
|
from pydantic import Field, field_serializer
|
9
11
|
|
12
|
+
from lionagi.ln import Unset
|
13
|
+
from lionagi.utils import to_dict
|
14
|
+
|
10
15
|
from .element import Element
|
11
16
|
|
12
17
|
__all__ = (
|
@@ -16,6 +21,9 @@ __all__ = (
|
|
16
21
|
)
|
17
22
|
|
18
23
|
|
24
|
+
_SIMPLE_TYPE = (str, bytes, bytearray, int, float, type(None), Enum)
|
25
|
+
|
26
|
+
|
19
27
|
class EventStatus(str, Enum):
|
20
28
|
"""Status states for tracking action execution progress.
|
21
29
|
|
@@ -79,6 +87,44 @@ class Execution:
|
|
79
87
|
f"response={self.response}, error={self.error})"
|
80
88
|
)
|
81
89
|
|
90
|
+
def to_dict(self) -> dict:
|
91
|
+
"""Converts the execution state to a dictionary.
|
92
|
+
|
93
|
+
Returns:
|
94
|
+
dict: A dictionary representation of the execution state.
|
95
|
+
"""
|
96
|
+
res_ = Unset
|
97
|
+
json_serializable = True
|
98
|
+
|
99
|
+
if not isinstance(self.response, _SIMPLE_TYPE):
|
100
|
+
json_serializable = False
|
101
|
+
try:
|
102
|
+
# check whether response is JSON serializable
|
103
|
+
json.dumps(self.response)
|
104
|
+
res_ = self.response
|
105
|
+
json_serializable = True
|
106
|
+
except Exception:
|
107
|
+
with contextlib.suppress(Exception):
|
108
|
+
# attempt to convert to dict
|
109
|
+
d_ = to_dict(
|
110
|
+
self.response,
|
111
|
+
recursive=True,
|
112
|
+
recursive_python_only=False,
|
113
|
+
)
|
114
|
+
json.dumps(d_)
|
115
|
+
res_ = d_
|
116
|
+
json_serializable = True
|
117
|
+
|
118
|
+
if res_ is Unset and not json_serializable:
|
119
|
+
res_ = "<unserializable>"
|
120
|
+
|
121
|
+
return {
|
122
|
+
"status": self.status.value,
|
123
|
+
"duration": self.duration,
|
124
|
+
"response": res_ or self.response,
|
125
|
+
"error": self.error,
|
126
|
+
}
|
127
|
+
|
82
128
|
|
83
129
|
class Event(Element):
|
84
130
|
"""Extends Element with an execution state.
|
@@ -101,12 +147,7 @@ class Event(Element):
|
|
101
147
|
dict: The serialized data containing status, duration, response,
|
102
148
|
and error fields.
|
103
149
|
"""
|
104
|
-
return
|
105
|
-
"status": val.status.value,
|
106
|
-
"duration": val.duration,
|
107
|
-
"response": val.response,
|
108
|
-
"error": val.error,
|
109
|
-
}
|
150
|
+
return val.to_dict()
|
110
151
|
|
111
152
|
@property
|
112
153
|
def response(self) -> Any:
|
@@ -2,7 +2,7 @@
|
|
2
2
|
#
|
3
3
|
# SPDX-License-Identifier: Apache-2.0
|
4
4
|
|
5
|
-
from collections.abc import AsyncGenerator
|
5
|
+
from collections.abc import AsyncGenerator, Callable
|
6
6
|
from enum import Enum
|
7
7
|
from typing import Any, Literal
|
8
8
|
|
@@ -14,6 +14,7 @@ from lionagi.config import settings
|
|
14
14
|
from lionagi.fields import Instruct
|
15
15
|
from lionagi.libs.schema.as_readable import as_readable
|
16
16
|
from lionagi.models.field_model import FieldModel
|
17
|
+
from lionagi.operations.manager import OperationManager
|
17
18
|
from lionagi.protocols.action.tool import FuncTool, Tool, ToolRef
|
18
19
|
from lionagi.protocols.types import (
|
19
20
|
ID,
|
@@ -49,7 +50,7 @@ from lionagi.settings import Settings
|
|
49
50
|
from lionagi.tools.base import LionTool
|
50
51
|
from lionagi.utils import UNDEFINED
|
51
52
|
from lionagi.utils import alcall as alcall_legacy
|
52
|
-
from lionagi.utils import copy
|
53
|
+
from lionagi.utils import copy, is_coro_func
|
53
54
|
|
54
55
|
from .prompts import LION_SYSTEM_MESSAGE
|
55
56
|
|
@@ -111,6 +112,7 @@ class Branch(Element, Communicatable, Relational):
|
|
111
112
|
_action_manager: ActionManager | None = PrivateAttr(None)
|
112
113
|
_imodel_manager: iModelManager | None = PrivateAttr(None)
|
113
114
|
_log_manager: LogManager | None = PrivateAttr(None)
|
115
|
+
_operation_manager: OperationManager | None = PrivateAttr(None)
|
114
116
|
|
115
117
|
def __init__(
|
116
118
|
self,
|
@@ -231,6 +233,8 @@ class Branch(Element, Communicatable, Relational):
|
|
231
233
|
else:
|
232
234
|
self._log_manager = LogManager(**Settings.Config.LOG, logs=logs)
|
233
235
|
|
236
|
+
self._operation_manager = OperationManager()
|
237
|
+
|
234
238
|
# -------------------------------------------------------------------------
|
235
239
|
# Properties to expose managers and core data
|
236
240
|
# -------------------------------------------------------------------------
|
@@ -304,6 +308,11 @@ class Branch(Element, Communicatable, Relational):
|
|
304
308
|
"""
|
305
309
|
return self._action_manager.registry
|
306
310
|
|
311
|
+
def get_operation(self, operation: str) -> Callable | None:
|
312
|
+
if hasattr(self, operation):
|
313
|
+
return getattr(self, operation)
|
314
|
+
return self._operation_manager.registry.get(operation)
|
315
|
+
|
307
316
|
# -------------------------------------------------------------------------
|
308
317
|
# Cloning
|
309
318
|
# -------------------------------------------------------------------------
|
@@ -7,7 +7,7 @@ from collections.abc import Callable
|
|
7
7
|
from typing import Any
|
8
8
|
|
9
9
|
import pandas as pd
|
10
|
-
from pydantic import Field, JsonValue, model_validator
|
10
|
+
from pydantic import Field, JsonValue, PrivateAttr, model_validator
|
11
11
|
from typing_extensions import Self
|
12
12
|
|
13
13
|
from lionagi.protocols.types import (
|
@@ -31,9 +31,9 @@ from lionagi.protocols.types import (
|
|
31
31
|
)
|
32
32
|
|
33
33
|
from .._errors import ItemNotFoundError
|
34
|
+
from ..ln import lcall
|
34
35
|
from ..service.imodel import iModel
|
35
|
-
from
|
36
|
-
from .branch import Branch
|
36
|
+
from .branch import Branch, OperationManager
|
37
37
|
|
38
38
|
|
39
39
|
class Session(Node, Communicatable, Relational):
|
@@ -56,6 +56,35 @@ class Session(Node, Communicatable, Relational):
|
|
56
56
|
default_factory=MailManager, exclude=True
|
57
57
|
)
|
58
58
|
name: str = Field(default="Session")
|
59
|
+
user: SenderRecipient | None = None
|
60
|
+
_operation_manager: OperationManager = PrivateAttr(
|
61
|
+
default_factory=OperationManager
|
62
|
+
)
|
63
|
+
|
64
|
+
async def ainclude_branches(self, branches: ID[Branch].ItemSeq):
|
65
|
+
async with self.branches:
|
66
|
+
self.include_branches(branches)
|
67
|
+
|
68
|
+
def include_branches(self, branches: ID[Branch].ItemSeq):
|
69
|
+
def _take_in_branch(branch: Branch):
|
70
|
+
if not branch in self.branches:
|
71
|
+
self.branches.include(branch)
|
72
|
+
self.mail_manager.add_sources(branch)
|
73
|
+
|
74
|
+
branch.user = self.id
|
75
|
+
branch._operation_manager = self._operation_manager
|
76
|
+
if self.default_branch is None:
|
77
|
+
self.default_branch = branch
|
78
|
+
|
79
|
+
branches = [branches] if isinstance(branches, Branch) else branches
|
80
|
+
|
81
|
+
for i in branches:
|
82
|
+
_take_in_branch(i)
|
83
|
+
|
84
|
+
def register_operation(
|
85
|
+
self, operation: str, func: Callable, *, update: bool = False
|
86
|
+
):
|
87
|
+
self._operation_manager.register(operation, func, update=update)
|
59
88
|
|
60
89
|
@model_validator(mode="after")
|
61
90
|
def _add_mail_sources(self) -> Self:
|
@@ -64,7 +93,7 @@ class Session(Node, Communicatable, Relational):
|
|
64
93
|
if self.default_branch not in self.branches:
|
65
94
|
self.branches.include(self.default_branch)
|
66
95
|
if self.branches:
|
67
|
-
self.
|
96
|
+
self.include_branches(self.branches)
|
68
97
|
return self
|
69
98
|
|
70
99
|
def _lookup_branch_by_name(self, name: str) -> Branch | None:
|
@@ -102,7 +131,8 @@ class Session(Node, Communicatable, Relational):
|
|
102
131
|
progress: Progression = None,
|
103
132
|
tool_manager: ActionManager = None,
|
104
133
|
tools: Tool | Callable | list = None,
|
105
|
-
|
134
|
+
as_default_branch: bool = False,
|
135
|
+
**kwargs,
|
106
136
|
) -> Branch:
|
107
137
|
kwargs["system"] = system
|
108
138
|
kwargs["system_sender"] = system_sender
|
@@ -116,13 +146,9 @@ class Session(Node, Communicatable, Relational):
|
|
116
146
|
kwargs["tools"] = tools
|
117
147
|
kwargs = {k: v for k, v in kwargs.items() if v is not None}
|
118
148
|
|
119
|
-
from .branch import Branch
|
120
|
-
|
121
149
|
branch = Branch(**kwargs) # type: ignore
|
122
|
-
|
123
|
-
|
124
|
-
self.mail_manager.add_sources(branch)
|
125
|
-
if self.default_branch is None:
|
150
|
+
self.include_branches(branch)
|
151
|
+
if as_default_branch:
|
126
152
|
self.default_branch = branch
|
127
153
|
return branch
|
128
154
|
|
@@ -179,7 +205,7 @@ class Session(Node, Communicatable, Relational):
|
|
179
205
|
"""
|
180
206
|
branch: Branch = self.branches[branch]
|
181
207
|
branch_clone = branch.clone(sender=self.id)
|
182
|
-
self.
|
208
|
+
self.include_branches(branch_clone)
|
183
209
|
return branch_clone
|
184
210
|
|
185
211
|
def change_default_branch(self, branch: ID.Ref):
|
@@ -230,10 +256,11 @@ class Session(Node, Communicatable, Relational):
|
|
230
256
|
lambda x: [
|
231
257
|
i for i in self.branches[x].messages if i not in exclude_flag
|
232
258
|
],
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
259
|
+
input_unique=True,
|
260
|
+
input_flatten=True,
|
261
|
+
input_dropna=True,
|
262
|
+
output_flatten=True,
|
263
|
+
output_unique=True,
|
237
264
|
)
|
238
265
|
return Pile(
|
239
266
|
collections=messages, item_type={RoledMessage}, strict_type=False
|
@@ -269,14 +296,15 @@ class Session(Node, Communicatable, Relational):
|
|
269
296
|
lcall(
|
270
297
|
to_,
|
271
298
|
lambda x: self.mail_manager.send(ID.get_id(x)),
|
272
|
-
|
273
|
-
|
274
|
-
|
299
|
+
input_unique=True,
|
300
|
+
input_flatten=True,
|
301
|
+
input_dropna=True,
|
302
|
+
input_use_values=True,
|
275
303
|
)
|
276
304
|
except Exception as e:
|
277
305
|
raise ValueError(f"Failed to send mail. Error: {e}")
|
278
306
|
|
279
|
-
async def acollect_send_all(self, receive_all: bool =
|
307
|
+
async def acollect_send_all(self, receive_all: bool = True):
|
280
308
|
"""
|
281
309
|
Collect and send mail for all branches, optionally receiving all mail.
|
282
310
|
|
@@ -286,7 +314,7 @@ class Session(Node, Communicatable, Relational):
|
|
286
314
|
async with self.mail_manager.sources:
|
287
315
|
self.collect_send_all(receive_all)
|
288
316
|
|
289
|
-
def collect_send_all(self, receive_all: bool =
|
317
|
+
def collect_send_all(self, receive_all: bool = True):
|
290
318
|
"""
|
291
319
|
Collect and send mail for all branches, optionally receiving all mail.
|
292
320
|
|
@@ -296,7 +324,8 @@ class Session(Node, Communicatable, Relational):
|
|
296
324
|
self.collect()
|
297
325
|
self.send()
|
298
326
|
if receive_all:
|
299
|
-
|
327
|
+
for i in self.branches:
|
328
|
+
i.receive_all()
|
300
329
|
|
301
330
|
def collect(self, from_: ID.RefSeq = None):
|
302
331
|
"""
|
@@ -316,9 +345,10 @@ class Session(Node, Communicatable, Relational):
|
|
316
345
|
lcall(
|
317
346
|
from_,
|
318
347
|
lambda x: self.mail_manager.collect(ID.get_id(x)),
|
319
|
-
|
320
|
-
|
321
|
-
|
348
|
+
input_flatten=True,
|
349
|
+
input_dropna=True,
|
350
|
+
input_unique=True,
|
351
|
+
input_use_values=True,
|
322
352
|
)
|
323
353
|
except Exception as e:
|
324
354
|
raise ValueError(f"Failed to collect mail. Error: {e}")
|
@@ -0,0 +1 @@
|
|
1
|
+
__version__ = "0.15.1"
|
@@ -1,21 +0,0 @@
|
|
1
|
-
from collections.abc import Callable
|
2
|
-
|
3
|
-
from lionagi.protocols._concepts import Manager
|
4
|
-
|
5
|
-
"""
|
6
|
-
experimental
|
7
|
-
"""
|
8
|
-
|
9
|
-
|
10
|
-
class OperationManager(Manager):
|
11
|
-
def __init__(self, *args, **kwargs):
|
12
|
-
super().__init__()
|
13
|
-
self.registry: dict[str, Callable] = {}
|
14
|
-
self.register_operations(*args, **kwargs)
|
15
|
-
|
16
|
-
def register_operations(self, *args, **kwargs) -> None:
|
17
|
-
operations = {}
|
18
|
-
if args:
|
19
|
-
operations = {i.__name__ for i in args if hasattr(i, "__name__")}
|
20
|
-
operations.update(kwargs)
|
21
|
-
self.registry.update(operations)
|
@@ -1 +0,0 @@
|
|
1
|
-
__version__ = "0.15.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
|