lionagi 0.12.0__tar.gz → 0.12.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.12.1/.coveragerc +13 -0
- lionagi-0.12.1/.github/workflows/ci.yml +35 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/.github/workflows/docs.yml +3 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/.github/workflows/release.yml +2 -6
- {lionagi-0.12.0 → lionagi-0.12.1}/PKG-INFO +1 -1
- lionagi-0.12.1/lionagi/service/providers/exa_/models.py +3 -0
- lionagi-0.12.1/lionagi/service/providers/perplexity_/models.py +5 -0
- lionagi-0.12.1/lionagi/version.py +1 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/pyproject.toml +3 -1
- {lionagi-0.12.0 → lionagi-0.12.1}/uv.lock +81 -1
- lionagi-0.12.0/.github/workflows/ci.yml +0 -68
- lionagi-0.12.0/lionagi/service/providers/exa_/models.py +0 -160
- lionagi-0.12.0/lionagi/service/providers/perplexity_/models.py +0 -144
- lionagi-0.12.0/lionagi/version.py +0 -1
- {lionagi-0.12.0 → lionagi-0.12.1}/.env.example +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/.github/dependabot.yml +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/.github/workflows/codeql.yml +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/.gitignore +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/.pre-commit-config.yaml +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/CODE_OF_CONDUCT.md +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/CONTRIBUTING.md +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/LICENSE +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/README.md +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/cookbooks/ch01_get_started.md +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/cookbooks/ch02_concepts.md +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/dev_tools/count_code_base_lines.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/docs/Makefile +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/docs/_static/custom.css +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/docs/_templates/layout.html +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/docs/conf.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/docs/index.rst +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/docs/modules/action.rst +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/docs/modules/adapter.rst +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/docs/modules/branch.rst +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/docs/modules/branch_operations.rst +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/docs/modules/concepts.rst +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/docs/modules/element_id.rst +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/docs/modules/event.rst +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/docs/modules/form.rst +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/docs/modules/graph.rst +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/docs/modules/index.rst +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/docs/modules/instruct.rst +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/docs/modules/lib_file.rst +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/docs/modules/lib_nested.rst +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/docs/modules/lib_package.rst +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/docs/modules/lib_schema.rst +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/docs/modules/lib_validate.rst +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/docs/modules/log.rst +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/docs/modules/mail.rst +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/docs/modules/message.rst +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/docs/modules/models.rst +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/docs/modules/operative_step.rst +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/docs/modules/pile.rst +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/docs/modules/processor.rst +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/docs/modules/progression.rst +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/docs/modules/service.rst +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/docs/modules/session.rst +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/docs/modules/utils.rst +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/docs/tutorials/get_started.rst +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/docs/tutorials/get_started_pt2.rst +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/docs/tutorials/get_started_pt3.rst +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/docs/tutorials/index.rst +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/_class_registry.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/_errors.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/_types.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/adapters/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/adapters/adapter.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/adapters/json_adapter.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/adapters/pandas_/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/adapters/pandas_/csv_adapter.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/adapters/pandas_/excel_adapter.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/adapters/pandas_/pd_dataframe_adapter.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/adapters/pandas_/pd_series_adapter.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/adapters/toml_adapter.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/adapters/types.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/fields/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/fields/action.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/fields/base.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/fields/code.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/fields/file.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/fields/instruct.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/fields/reason.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/fields/research.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/file/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/file/chunk.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/file/concat.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/file/concat_files.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/file/create_path.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/file/file_ops.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/file/file_util.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/file/params.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/file/process.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/file/save.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/nested/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/nested/flatten.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/nested/nfilter.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/nested/nget.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/nested/ninsert.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/nested/nmerge.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/nested/npop.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/nested/nset.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/nested/unflatten.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/nested/utils.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/package/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/package/imports.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/package/management.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/package/params.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/package/system.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/parse/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/parse/fuzzy_parse_json.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/parse/to_dict.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/parse/to_json.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/parse/to_num.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/parse/to_xml.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/parse/xml_parser.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/schema/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/schema/as_readable.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/schema/breakdown_pydantic_annotation.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/schema/extract_code_block.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/schema/extract_docstring.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/schema/function_to_schema.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/schema/json_schema.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/token_transform/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/token_transform/base.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/token_transform/llmlingua.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/token_transform/perplexity.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/token_transform/symbolic_compress_context.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/token_transform/synthlang.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/token_transform/synthlang_/base.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/abstract_algebra.toml +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/category_theory.toml +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/complex_analysis.toml +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/framework_options.json +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/group_theory.toml +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/math_logic.toml +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/reflective_patterns.toml +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/set_theory.toml +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/topology_fundamentals.toml +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/token_transform/synthlang_/resources/mapping/lion_emoji_mapping.toml +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/token_transform/synthlang_/resources/mapping/python_math_mapping.toml +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/token_transform/synthlang_/resources/mapping/rust_chinese_mapping.toml +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/token_transform/synthlang_/resources/utility/base_synthlang_system_prompt.toml +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/token_transform/synthlang_/translate_to_synthlang.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/token_transform/types.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/validate/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/validate/common_field_validators.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/validate/fuzzy_match_keys.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/validate/fuzzy_validate_mapping.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/validate/string_similarity.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/libs/validate/validate_boolean.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/models/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/models/field_model.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/models/hashable_model.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/models/model_params.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/models/note.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/models/operable_model.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/models/schema_model.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/operations/ReAct/ReAct.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/operations/ReAct/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/operations/ReAct/utils.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/operations/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/operations/_act/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/operations/_act/act.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/operations/brainstorm/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/operations/brainstorm/brainstorm.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/operations/brainstorm/prompt.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/operations/chat/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/operations/chat/chat.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/operations/communicate/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/operations/communicate/communicate.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/operations/instruct/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/operations/instruct/instruct.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/operations/interpret/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/operations/interpret/interpret.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/operations/manager.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/operations/operate/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/operations/operate/operate.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/operations/parse/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/operations/parse/parse.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/operations/plan/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/operations/plan/plan.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/operations/plan/prompt.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/operations/select/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/operations/select/select.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/operations/select/utils.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/operations/translate/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/operations/translate/translate.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/operations/types.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/operations/utils.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/_concepts.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/action/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/action/function_calling.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/action/manager.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/action/tool.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/forms/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/forms/base.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/forms/flow.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/forms/form.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/forms/report.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/generic/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/generic/element.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/generic/event.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/generic/log.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/generic/pile.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/generic/processor.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/generic/progression.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/graph/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/graph/edge.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/graph/graph.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/graph/node.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/mail/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/mail/exchange.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/mail/mail.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/mail/mailbox.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/mail/manager.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/mail/package.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/messages/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/messages/action_request.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/messages/action_response.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/messages/assistant_response.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/messages/base.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/messages/instruction.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/messages/manager.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/messages/message.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/messages/system.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/messages/templates/README.md +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/messages/templates/action_request.jinja2 +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/messages/templates/action_response.jinja2 +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/messages/templates/assistant_response.jinja2 +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/messages/templates/instruction_message.jinja2 +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/messages/templates/system_message.jinja2 +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/messages/templates/tool_schemas.jinja2 +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/operatives/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/operatives/operative.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/operatives/step.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/protocols/types.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/service/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/service/endpoints/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/service/endpoints/base.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/service/endpoints/chat_completion.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/service/endpoints/match_endpoint.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/service/endpoints/rate_limited_processor.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/service/endpoints/token_calculator.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/service/imodel.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/service/manager.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/service/providers/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/service/providers/anthropic_/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/service/providers/anthropic_/messages.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/service/providers/exa_/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/service/providers/exa_/search.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/service/providers/exa_/types.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/service/providers/groq_/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/service/providers/groq_/chat_completions.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/service/providers/ollama_/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/service/providers/ollama_/chat_completions.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/service/providers/openai_/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/service/providers/openai_/chat_completions.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/service/providers/openai_/spec.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/service/providers/openrouter_/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/service/providers/openrouter_/chat_completions.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/service/providers/perplexity_/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/service/providers/perplexity_/chat_completions.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/service/providers/types.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/service/types.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/session/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/session/branch.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/session/prompts.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/session/session.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/settings.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/tools/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/tools/base.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/tools/file/__init__.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/tools/file/reader.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/tools/types.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/lionagi/utils.py +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/prompts/doc_style.md +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/reports/ips/IP-601.md +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/reports/ips/IP-602.md +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/reports/ips/IP-603.md +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/reports/ips/IP-604.md +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/reports/tis/TI-601.md +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/reports/tis/TI-602.md +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/reports/tis/TI-603.md +0 -0
- {lionagi-0.12.0 → lionagi-0.12.1}/reports/tis/TI-604.md +0 -0
@@ -0,0 +1,35 @@
|
|
1
|
+
name: ci
|
2
|
+
on: [pull_request]
|
3
|
+
permissions:
|
4
|
+
contents: read
|
5
|
+
jobs:
|
6
|
+
test:
|
7
|
+
runs-on: ubuntu-latest
|
8
|
+
services:
|
9
|
+
docker:
|
10
|
+
image: docker:dind
|
11
|
+
options: --privileged
|
12
|
+
strategy:
|
13
|
+
matrix:
|
14
|
+
py: ["3.10", "3.11", "3.12", "3.13"]
|
15
|
+
steps:
|
16
|
+
- uses: actions/checkout@v4
|
17
|
+
- uses: actions/setup-python@v5
|
18
|
+
with:
|
19
|
+
python-version: "${{ matrix.py }}"
|
20
|
+
- run: pip install uv
|
21
|
+
- name: Create and activate virtual environment
|
22
|
+
run: |
|
23
|
+
uv venv .venv
|
24
|
+
echo "VIRTUAL_ENV=$GITHUB_WORKSPACE/.venv" >> $GITHUB_ENV
|
25
|
+
echo "$GITHUB_WORKSPACE/.venv/bin" >> $GITHUB_PATH
|
26
|
+
- name: Install dependencies
|
27
|
+
run: |
|
28
|
+
uv sync --extra all
|
29
|
+
- name: Run tests
|
30
|
+
run: uv run pytest -q --cov=lionagi --cov-report=xml
|
31
|
+
# - name: Upload coverage to Codecov
|
32
|
+
# uses: codecov/codecov-action@v3
|
33
|
+
# with:
|
34
|
+
# token: ${{ secrets.CODECOV_TOKEN }}
|
35
|
+
# fail_ci_if_error: true
|
@@ -27,13 +27,9 @@ jobs:
|
|
27
27
|
|
28
28
|
- name: Install dependencies
|
29
29
|
run: |
|
30
|
-
uv
|
31
|
-
uv build
|
32
|
-
|
30
|
+
uv sync --extra all
|
33
31
|
- name: Run tests
|
34
|
-
run:
|
35
|
-
source .venv/bin/activate
|
36
|
-
uv run pytest --asyncio-mode=auto --maxfail=1 --disable-warnings tests/
|
32
|
+
run: uv run pytest -q --cov=lionagi --cov-report=xml
|
37
33
|
|
38
34
|
deploy:
|
39
35
|
needs: test
|
@@ -0,0 +1 @@
|
|
1
|
+
__version__ = "0.12.1"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[project]
|
2
2
|
name = "lionagi"
|
3
|
-
version = "0.12.
|
3
|
+
version = "0.12.1"
|
4
4
|
description = "An Intelligence Operating System."
|
5
5
|
authors = [
|
6
6
|
{ name = "HaiyangLi", email = "quantocean.li@gmail.com" },
|
@@ -42,6 +42,7 @@ dev = [
|
|
42
42
|
"ipython>=8.36.0",
|
43
43
|
"ipykernel>=6.29.5",
|
44
44
|
"ipywidgets>=8.1.7",
|
45
|
+
"pytest-cov>=6.1.1",
|
45
46
|
]
|
46
47
|
|
47
48
|
[project.optional-dependencies]
|
@@ -83,6 +84,7 @@ markers = [
|
|
83
84
|
"performance: marks tests as performance",
|
84
85
|
"slow: marks tests as slow",
|
85
86
|
]
|
87
|
+
addopts = "-ra --cov=lionagi --cov-report=term-missing"
|
86
88
|
|
87
89
|
[build-system]
|
88
90
|
requires = ["hatchling"]
|
@@ -460,6 +460,71 @@ wheels = [
|
|
460
460
|
{ url = "https://files.pythonhosted.org/packages/e6/75/49e5bfe642f71f272236b5b2d2691cf915a7283cc0ceda56357b61daa538/comm-0.2.2-py3-none-any.whl", hash = "sha256:e6fb86cb70ff661ee8c9c14e7d36d6de3b4066f1441be4063df9c5009f0a64d3", size = 7180, upload-time = "2024-03-12T16:53:39.226Z" },
|
461
461
|
]
|
462
462
|
|
463
|
+
[[package]]
|
464
|
+
name = "coverage"
|
465
|
+
version = "7.8.0"
|
466
|
+
source = { registry = "https://pypi.org/simple" }
|
467
|
+
sdist = { url = "https://files.pythonhosted.org/packages/19/4f/2251e65033ed2ce1e68f00f91a0294e0f80c80ae8c3ebbe2f12828c4cd53/coverage-7.8.0.tar.gz", hash = "sha256:7a3d62b3b03b4b6fd41a085f3574874cf946cb4604d2b4d3e8dca8cd570ca501", size = 811872, upload-time = "2025-03-30T20:36:45.376Z" }
|
468
|
+
wheels = [
|
469
|
+
{ url = "https://files.pythonhosted.org/packages/78/01/1c5e6ee4ebaaa5e079db933a9a45f61172048c7efa06648445821a201084/coverage-7.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2931f66991175369859b5fd58529cd4b73582461877ecfd859b6549869287ffe", size = 211379, upload-time = "2025-03-30T20:34:53.904Z" },
|
470
|
+
{ url = "https://files.pythonhosted.org/packages/e9/16/a463389f5ff916963471f7c13585e5f38c6814607306b3cb4d6b4cf13384/coverage-7.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:52a523153c568d2c0ef8826f6cc23031dc86cffb8c6aeab92c4ff776e7951b28", size = 211814, upload-time = "2025-03-30T20:34:56.959Z" },
|
471
|
+
{ url = "https://files.pythonhosted.org/packages/b8/b1/77062b0393f54d79064dfb72d2da402657d7c569cfbc724d56ac0f9c67ed/coverage-7.8.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c8a5c139aae4c35cbd7cadca1df02ea8cf28a911534fc1b0456acb0b14234f3", size = 240937, upload-time = "2025-03-30T20:34:58.751Z" },
|
472
|
+
{ url = "https://files.pythonhosted.org/packages/d7/54/c7b00a23150083c124e908c352db03bcd33375494a4beb0c6d79b35448b9/coverage-7.8.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5a26c0c795c3e0b63ec7da6efded5f0bc856d7c0b24b2ac84b4d1d7bc578d676", size = 238849, upload-time = "2025-03-30T20:35:00.521Z" },
|
473
|
+
{ url = "https://files.pythonhosted.org/packages/f7/ec/a6b7cfebd34e7b49f844788fda94713035372b5200c23088e3bbafb30970/coverage-7.8.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:821f7bcbaa84318287115d54becb1915eece6918136c6f91045bb84e2f88739d", size = 239986, upload-time = "2025-03-30T20:35:02.307Z" },
|
474
|
+
{ url = "https://files.pythonhosted.org/packages/21/8c/c965ecef8af54e6d9b11bfbba85d4f6a319399f5f724798498387f3209eb/coverage-7.8.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a321c61477ff8ee705b8a5fed370b5710c56b3a52d17b983d9215861e37b642a", size = 239896, upload-time = "2025-03-30T20:35:04.141Z" },
|
475
|
+
{ url = "https://files.pythonhosted.org/packages/40/83/070550273fb4c480efa8381735969cb403fa8fd1626d74865bfaf9e4d903/coverage-7.8.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:ed2144b8a78f9d94d9515963ed273d620e07846acd5d4b0a642d4849e8d91a0c", size = 238613, upload-time = "2025-03-30T20:35:05.889Z" },
|
476
|
+
{ url = "https://files.pythonhosted.org/packages/07/76/fbb2540495b01d996d38e9f8897b861afed356be01160ab4e25471f4fed1/coverage-7.8.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:042e7841a26498fff7a37d6fda770d17519982f5b7d8bf5278d140b67b61095f", size = 238909, upload-time = "2025-03-30T20:35:07.76Z" },
|
477
|
+
{ url = "https://files.pythonhosted.org/packages/a3/7e/76d604db640b7d4a86e5dd730b73e96e12a8185f22b5d0799025121f4dcb/coverage-7.8.0-cp310-cp310-win32.whl", hash = "sha256:f9983d01d7705b2d1f7a95e10bbe4091fabc03a46881a256c2787637b087003f", size = 213948, upload-time = "2025-03-30T20:35:09.144Z" },
|
478
|
+
{ url = "https://files.pythonhosted.org/packages/5c/a7/f8ce4aafb4a12ab475b56c76a71a40f427740cf496c14e943ade72e25023/coverage-7.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:5a570cd9bd20b85d1a0d7b009aaf6c110b52b5755c17be6962f8ccd65d1dbd23", size = 214844, upload-time = "2025-03-30T20:35:10.734Z" },
|
479
|
+
{ url = "https://files.pythonhosted.org/packages/2b/77/074d201adb8383addae5784cb8e2dac60bb62bfdf28b2b10f3a3af2fda47/coverage-7.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e7ac22a0bb2c7c49f441f7a6d46c9c80d96e56f5a8bc6972529ed43c8b694e27", size = 211493, upload-time = "2025-03-30T20:35:12.286Z" },
|
480
|
+
{ url = "https://files.pythonhosted.org/packages/a9/89/7a8efe585750fe59b48d09f871f0e0c028a7b10722b2172dfe021fa2fdd4/coverage-7.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bf13d564d310c156d1c8e53877baf2993fb3073b2fc9f69790ca6a732eb4bfea", size = 211921, upload-time = "2025-03-30T20:35:14.18Z" },
|
481
|
+
{ url = "https://files.pythonhosted.org/packages/e9/ef/96a90c31d08a3f40c49dbe897df4f1fd51fb6583821a1a1c5ee30cc8f680/coverage-7.8.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5761c70c017c1b0d21b0815a920ffb94a670c8d5d409d9b38857874c21f70d7", size = 244556, upload-time = "2025-03-30T20:35:15.616Z" },
|
482
|
+
{ url = "https://files.pythonhosted.org/packages/89/97/dcd5c2ce72cee9d7b0ee8c89162c24972fb987a111b92d1a3d1d19100c61/coverage-7.8.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5ff52d790c7e1628241ffbcaeb33e07d14b007b6eb00a19320c7b8a7024c040", size = 242245, upload-time = "2025-03-30T20:35:18.648Z" },
|
483
|
+
{ url = "https://files.pythonhosted.org/packages/b2/7b/b63cbb44096141ed435843bbb251558c8e05cc835c8da31ca6ffb26d44c0/coverage-7.8.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d39fc4817fd67b3915256af5dda75fd4ee10621a3d484524487e33416c6f3543", size = 244032, upload-time = "2025-03-30T20:35:20.131Z" },
|
484
|
+
{ url = "https://files.pythonhosted.org/packages/97/e3/7fa8c2c00a1ef530c2a42fa5df25a6971391f92739d83d67a4ee6dcf7a02/coverage-7.8.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b44674870709017e4b4036e3d0d6c17f06a0e6d4436422e0ad29b882c40697d2", size = 243679, upload-time = "2025-03-30T20:35:21.636Z" },
|
485
|
+
{ url = "https://files.pythonhosted.org/packages/4f/b3/e0a59d8df9150c8a0c0841d55d6568f0a9195692136c44f3d21f1842c8f6/coverage-7.8.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8f99eb72bf27cbb167b636eb1726f590c00e1ad375002230607a844d9e9a2318", size = 241852, upload-time = "2025-03-30T20:35:23.525Z" },
|
486
|
+
{ url = "https://files.pythonhosted.org/packages/9b/82/db347ccd57bcef150c173df2ade97976a8367a3be7160e303e43dd0c795f/coverage-7.8.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b571bf5341ba8c6bc02e0baeaf3b061ab993bf372d982ae509807e7f112554e9", size = 242389, upload-time = "2025-03-30T20:35:25.09Z" },
|
487
|
+
{ url = "https://files.pythonhosted.org/packages/21/f6/3f7d7879ceb03923195d9ff294456241ed05815281f5254bc16ef71d6a20/coverage-7.8.0-cp311-cp311-win32.whl", hash = "sha256:e75a2ad7b647fd8046d58c3132d7eaf31b12d8a53c0e4b21fa9c4d23d6ee6d3c", size = 213997, upload-time = "2025-03-30T20:35:26.914Z" },
|
488
|
+
{ url = "https://files.pythonhosted.org/packages/28/87/021189643e18ecf045dbe1e2071b2747901f229df302de01c998eeadf146/coverage-7.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:3043ba1c88b2139126fc72cb48574b90e2e0546d4c78b5299317f61b7f718b78", size = 214911, upload-time = "2025-03-30T20:35:28.498Z" },
|
489
|
+
{ url = "https://files.pythonhosted.org/packages/aa/12/4792669473297f7973518bec373a955e267deb4339286f882439b8535b39/coverage-7.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:bbb5cc845a0292e0c520656d19d7ce40e18d0e19b22cb3e0409135a575bf79fc", size = 211684, upload-time = "2025-03-30T20:35:29.959Z" },
|
490
|
+
{ url = "https://files.pythonhosted.org/packages/be/e1/2a4ec273894000ebedd789e8f2fc3813fcaf486074f87fd1c5b2cb1c0a2b/coverage-7.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4dfd9a93db9e78666d178d4f08a5408aa3f2474ad4d0e0378ed5f2ef71640cb6", size = 211935, upload-time = "2025-03-30T20:35:31.912Z" },
|
491
|
+
{ url = "https://files.pythonhosted.org/packages/f8/3a/7b14f6e4372786709a361729164125f6b7caf4024ce02e596c4a69bccb89/coverage-7.8.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f017a61399f13aa6d1039f75cd467be388d157cd81f1a119b9d9a68ba6f2830d", size = 245994, upload-time = "2025-03-30T20:35:33.455Z" },
|
492
|
+
{ url = "https://files.pythonhosted.org/packages/54/80/039cc7f1f81dcbd01ea796d36d3797e60c106077e31fd1f526b85337d6a1/coverage-7.8.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0915742f4c82208ebf47a2b154a5334155ed9ef9fe6190674b8a46c2fb89cb05", size = 242885, upload-time = "2025-03-30T20:35:35.354Z" },
|
493
|
+
{ url = "https://files.pythonhosted.org/packages/10/e0/dc8355f992b6cc2f9dcd5ef6242b62a3f73264893bc09fbb08bfcab18eb4/coverage-7.8.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a40fcf208e021eb14b0fac6bdb045c0e0cab53105f93ba0d03fd934c956143a", size = 245142, upload-time = "2025-03-30T20:35:37.121Z" },
|
494
|
+
{ url = "https://files.pythonhosted.org/packages/43/1b/33e313b22cf50f652becb94c6e7dae25d8f02e52e44db37a82de9ac357e8/coverage-7.8.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a1f406a8e0995d654b2ad87c62caf6befa767885301f3b8f6f73e6f3c31ec3a6", size = 244906, upload-time = "2025-03-30T20:35:39.07Z" },
|
495
|
+
{ url = "https://files.pythonhosted.org/packages/05/08/c0a8048e942e7f918764ccc99503e2bccffba1c42568693ce6955860365e/coverage-7.8.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:77af0f6447a582fdc7de5e06fa3757a3ef87769fbb0fdbdeba78c23049140a47", size = 243124, upload-time = "2025-03-30T20:35:40.598Z" },
|
496
|
+
{ url = "https://files.pythonhosted.org/packages/5b/62/ea625b30623083c2aad645c9a6288ad9fc83d570f9adb913a2abdba562dd/coverage-7.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f2d32f95922927186c6dbc8bc60df0d186b6edb828d299ab10898ef3f40052fe", size = 244317, upload-time = "2025-03-30T20:35:42.204Z" },
|
497
|
+
{ url = "https://files.pythonhosted.org/packages/62/cb/3871f13ee1130a6c8f020e2f71d9ed269e1e2124aa3374d2180ee451cee9/coverage-7.8.0-cp312-cp312-win32.whl", hash = "sha256:769773614e676f9d8e8a0980dd7740f09a6ea386d0f383db6821df07d0f08545", size = 214170, upload-time = "2025-03-30T20:35:44.216Z" },
|
498
|
+
{ url = "https://files.pythonhosted.org/packages/88/26/69fe1193ab0bfa1eb7a7c0149a066123611baba029ebb448500abd8143f9/coverage-7.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:e5d2b9be5b0693cf21eb4ce0ec8d211efb43966f6657807f6859aab3814f946b", size = 214969, upload-time = "2025-03-30T20:35:45.797Z" },
|
499
|
+
{ url = "https://files.pythonhosted.org/packages/f3/21/87e9b97b568e223f3438d93072479c2f36cc9b3f6b9f7094b9d50232acc0/coverage-7.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5ac46d0c2dd5820ce93943a501ac5f6548ea81594777ca585bf002aa8854cacd", size = 211708, upload-time = "2025-03-30T20:35:47.417Z" },
|
500
|
+
{ url = "https://files.pythonhosted.org/packages/75/be/882d08b28a0d19c9c4c2e8a1c6ebe1f79c9c839eb46d4fca3bd3b34562b9/coverage-7.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:771eb7587a0563ca5bb6f622b9ed7f9d07bd08900f7589b4febff05f469bea00", size = 211981, upload-time = "2025-03-30T20:35:49.002Z" },
|
501
|
+
{ url = "https://files.pythonhosted.org/packages/7a/1d/ce99612ebd58082fbe3f8c66f6d8d5694976c76a0d474503fa70633ec77f/coverage-7.8.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42421e04069fb2cbcbca5a696c4050b84a43b05392679d4068acbe65449b5c64", size = 245495, upload-time = "2025-03-30T20:35:51.073Z" },
|
502
|
+
{ url = "https://files.pythonhosted.org/packages/dc/8d/6115abe97df98db6b2bd76aae395fcc941d039a7acd25f741312ced9a78f/coverage-7.8.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:554fec1199d93ab30adaa751db68acec2b41c5602ac944bb19187cb9a41a8067", size = 242538, upload-time = "2025-03-30T20:35:52.941Z" },
|
503
|
+
{ url = "https://files.pythonhosted.org/packages/cb/74/2f8cc196643b15bc096d60e073691dadb3dca48418f08bc78dd6e899383e/coverage-7.8.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5aaeb00761f985007b38cf463b1d160a14a22c34eb3f6a39d9ad6fc27cb73008", size = 244561, upload-time = "2025-03-30T20:35:54.658Z" },
|
504
|
+
{ url = "https://files.pythonhosted.org/packages/22/70/c10c77cd77970ac965734fe3419f2c98665f6e982744a9bfb0e749d298f4/coverage-7.8.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:581a40c7b94921fffd6457ffe532259813fc68eb2bdda60fa8cc343414ce3733", size = 244633, upload-time = "2025-03-30T20:35:56.221Z" },
|
505
|
+
{ url = "https://files.pythonhosted.org/packages/38/5a/4f7569d946a07c952688debee18c2bb9ab24f88027e3d71fd25dbc2f9dca/coverage-7.8.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f319bae0321bc838e205bf9e5bc28f0a3165f30c203b610f17ab5552cff90323", size = 242712, upload-time = "2025-03-30T20:35:57.801Z" },
|
506
|
+
{ url = "https://files.pythonhosted.org/packages/bb/a1/03a43b33f50475a632a91ea8c127f7e35e53786dbe6781c25f19fd5a65f8/coverage-7.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:04bfec25a8ef1c5f41f5e7e5c842f6b615599ca8ba8391ec33a9290d9d2db3a3", size = 244000, upload-time = "2025-03-30T20:35:59.378Z" },
|
507
|
+
{ url = "https://files.pythonhosted.org/packages/6a/89/ab6c43b1788a3128e4d1b7b54214548dcad75a621f9d277b14d16a80d8a1/coverage-7.8.0-cp313-cp313-win32.whl", hash = "sha256:dd19608788b50eed889e13a5d71d832edc34fc9dfce606f66e8f9f917eef910d", size = 214195, upload-time = "2025-03-30T20:36:01.005Z" },
|
508
|
+
{ url = "https://files.pythonhosted.org/packages/12/12/6bf5f9a8b063d116bac536a7fb594fc35cb04981654cccb4bbfea5dcdfa0/coverage-7.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:a9abbccd778d98e9c7e85038e35e91e67f5b520776781d9a1e2ee9d400869487", size = 214998, upload-time = "2025-03-30T20:36:03.006Z" },
|
509
|
+
{ url = "https://files.pythonhosted.org/packages/2a/e6/1e9df74ef7a1c983a9c7443dac8aac37a46f1939ae3499424622e72a6f78/coverage-7.8.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:18c5ae6d061ad5b3e7eef4363fb27a0576012a7447af48be6c75b88494c6cf25", size = 212541, upload-time = "2025-03-30T20:36:04.638Z" },
|
510
|
+
{ url = "https://files.pythonhosted.org/packages/04/51/c32174edb7ee49744e2e81c4b1414ac9df3dacfcb5b5f273b7f285ad43f6/coverage-7.8.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:95aa6ae391a22bbbce1b77ddac846c98c5473de0372ba5c463480043a07bff42", size = 212767, upload-time = "2025-03-30T20:36:06.503Z" },
|
511
|
+
{ url = "https://files.pythonhosted.org/packages/e9/8f/f454cbdb5212f13f29d4a7983db69169f1937e869a5142bce983ded52162/coverage-7.8.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e013b07ba1c748dacc2a80e69a46286ff145935f260eb8c72df7185bf048f502", size = 256997, upload-time = "2025-03-30T20:36:08.137Z" },
|
512
|
+
{ url = "https://files.pythonhosted.org/packages/e6/74/2bf9e78b321216d6ee90a81e5c22f912fc428442c830c4077b4a071db66f/coverage-7.8.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d766a4f0e5aa1ba056ec3496243150698dc0481902e2b8559314368717be82b1", size = 252708, upload-time = "2025-03-30T20:36:09.781Z" },
|
513
|
+
{ url = "https://files.pythonhosted.org/packages/92/4d/50d7eb1e9a6062bee6e2f92e78b0998848a972e9afad349b6cdde6fa9e32/coverage-7.8.0-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad80e6b4a0c3cb6f10f29ae4c60e991f424e6b14219d46f1e7d442b938ee68a4", size = 255046, upload-time = "2025-03-30T20:36:11.409Z" },
|
514
|
+
{ url = "https://files.pythonhosted.org/packages/40/9e/71fb4e7402a07c4198ab44fc564d09d7d0ffca46a9fb7b0a7b929e7641bd/coverage-7.8.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b87eb6fc9e1bb8f98892a2458781348fa37e6925f35bb6ceb9d4afd54ba36c73", size = 256139, upload-time = "2025-03-30T20:36:13.86Z" },
|
515
|
+
{ url = "https://files.pythonhosted.org/packages/49/1a/78d37f7a42b5beff027e807c2843185961fdae7fe23aad5a4837c93f9d25/coverage-7.8.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:d1ba00ae33be84066cfbe7361d4e04dec78445b2b88bdb734d0d1cbab916025a", size = 254307, upload-time = "2025-03-30T20:36:16.074Z" },
|
516
|
+
{ url = "https://files.pythonhosted.org/packages/58/e9/8fb8e0ff6bef5e170ee19d59ca694f9001b2ec085dc99b4f65c128bb3f9a/coverage-7.8.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f3c38e4e5ccbdc9198aecc766cedbb134b2d89bf64533973678dfcf07effd883", size = 255116, upload-time = "2025-03-30T20:36:18.033Z" },
|
517
|
+
{ url = "https://files.pythonhosted.org/packages/56/b0/d968ecdbe6fe0a863de7169bbe9e8a476868959f3af24981f6a10d2b6924/coverage-7.8.0-cp313-cp313t-win32.whl", hash = "sha256:379fe315e206b14e21db5240f89dc0774bdd3e25c3c58c2c733c99eca96f1ada", size = 214909, upload-time = "2025-03-30T20:36:19.644Z" },
|
518
|
+
{ url = "https://files.pythonhosted.org/packages/87/e9/d6b7ef9fecf42dfb418d93544af47c940aa83056c49e6021a564aafbc91f/coverage-7.8.0-cp313-cp313t-win_amd64.whl", hash = "sha256:2e4b6b87bb0c846a9315e3ab4be2d52fac905100565f4b92f02c445c8799e257", size = 216068, upload-time = "2025-03-30T20:36:21.282Z" },
|
519
|
+
{ url = "https://files.pythonhosted.org/packages/c4/f1/1da77bb4c920aa30e82fa9b6ea065da3467977c2e5e032e38e66f1c57ffd/coverage-7.8.0-pp39.pp310.pp311-none-any.whl", hash = "sha256:b8194fb8e50d556d5849753de991d390c5a1edeeba50f68e3a9253fbd8bf8ccd", size = 203443, upload-time = "2025-03-30T20:36:41.959Z" },
|
520
|
+
{ url = "https://files.pythonhosted.org/packages/59/f1/4da7717f0063a222db253e7121bd6a56f6fb1ba439dcc36659088793347c/coverage-7.8.0-py3-none-any.whl", hash = "sha256:dbf364b4c5e7bae9250528167dfe40219b62e2d573c854d74be213e1e52069f7", size = 203435, upload-time = "2025-03-30T20:36:43.61Z" },
|
521
|
+
]
|
522
|
+
|
523
|
+
[package.optional-dependencies]
|
524
|
+
toml = [
|
525
|
+
{ name = "tomli", marker = "python_full_version <= '3.11'" },
|
526
|
+
]
|
527
|
+
|
463
528
|
[[package]]
|
464
529
|
name = "debugpy"
|
465
530
|
version = "1.8.14"
|
@@ -1313,7 +1378,7 @@ wheels = [
|
|
1313
1378
|
|
1314
1379
|
[[package]]
|
1315
1380
|
name = "lionagi"
|
1316
|
-
version = "0.12.
|
1381
|
+
version = "0.12.1"
|
1317
1382
|
source = { editable = "." }
|
1318
1383
|
dependencies = [
|
1319
1384
|
{ name = "jinja2" },
|
@@ -1349,6 +1414,7 @@ dev = [
|
|
1349
1414
|
{ name = "pre-commit" },
|
1350
1415
|
{ name = "pytest" },
|
1351
1416
|
{ name = "pytest-asyncio" },
|
1417
|
+
{ name = "pytest-cov" },
|
1352
1418
|
{ name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" },
|
1353
1419
|
{ name = "sphinx", version = "8.2.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" },
|
1354
1420
|
{ name = "sphinx-autobuild" },
|
@@ -1379,6 +1445,7 @@ dev = [
|
|
1379
1445
|
{ name = "pre-commit", specifier = ">=4.0.1" },
|
1380
1446
|
{ name = "pytest", specifier = ">=8.3.4" },
|
1381
1447
|
{ name = "pytest-asyncio", specifier = ">=0.25.0" },
|
1448
|
+
{ name = "pytest-cov", specifier = ">=6.1.1" },
|
1382
1449
|
{ name = "sphinx", specifier = ">=8.1.3" },
|
1383
1450
|
{ name = "sphinx-autobuild", specifier = ">=2024.10.3" },
|
1384
1451
|
]
|
@@ -2717,6 +2784,19 @@ wheels = [
|
|
2717
2784
|
{ url = "https://files.pythonhosted.org/packages/20/7f/338843f449ace853647ace35870874f69a764d251872ed1b4de9f234822c/pytest_asyncio-0.26.0-py3-none-any.whl", hash = "sha256:7b51ed894f4fbea1340262bdae5135797ebbe21d8638978e35d31c6d19f72fb0", size = 19694, upload-time = "2025-03-25T06:22:27.807Z" },
|
2718
2785
|
]
|
2719
2786
|
|
2787
|
+
[[package]]
|
2788
|
+
name = "pytest-cov"
|
2789
|
+
version = "6.1.1"
|
2790
|
+
source = { registry = "https://pypi.org/simple" }
|
2791
|
+
dependencies = [
|
2792
|
+
{ name = "coverage", extra = ["toml"] },
|
2793
|
+
{ name = "pytest" },
|
2794
|
+
]
|
2795
|
+
sdist = { url = "https://files.pythonhosted.org/packages/25/69/5f1e57f6c5a39f81411b550027bf72842c4567ff5fd572bed1edc9e4b5d9/pytest_cov-6.1.1.tar.gz", hash = "sha256:46935f7aaefba760e716c2ebfbe1c216240b9592966e7da99ea8292d4d3e2a0a", size = 66857, upload-time = "2025-04-05T14:07:51.592Z" }
|
2796
|
+
wheels = [
|
2797
|
+
{ url = "https://files.pythonhosted.org/packages/28/d0/def53b4a790cfb21483016430ed828f64830dd981ebe1089971cd10cab25/pytest_cov-6.1.1-py3-none-any.whl", hash = "sha256:bddf29ed2d0ab6f4df17b4c55b0a657287db8684af9c42ea546b21b1041b3dde", size = 23841, upload-time = "2025-04-05T14:07:49.641Z" },
|
2798
|
+
]
|
2799
|
+
|
2720
2800
|
[[package]]
|
2721
2801
|
name = "python-bidi"
|
2722
2802
|
version = "0.6.6"
|
@@ -1,68 +0,0 @@
|
|
1
|
-
name: Continuous Integration
|
2
|
-
|
3
|
-
on:
|
4
|
-
push:
|
5
|
-
branches: [main, develop]
|
6
|
-
pull_request:
|
7
|
-
branches: [main, develop]
|
8
|
-
|
9
|
-
jobs:
|
10
|
-
test:
|
11
|
-
runs-on: ubuntu-latest
|
12
|
-
strategy:
|
13
|
-
matrix:
|
14
|
-
python-version: ["3.10", "3.11", "3.12", "3.13"]
|
15
|
-
steps:
|
16
|
-
- uses: actions/checkout@v4
|
17
|
-
- name: Set up Python ${{ matrix.python-version }}
|
18
|
-
uses: actions/setup-python@v5
|
19
|
-
with:
|
20
|
-
python-version: ${{ matrix.python-version }}
|
21
|
-
|
22
|
-
- name: Install uv
|
23
|
-
run: |
|
24
|
-
curl -LsSf https://astral.sh/uv/install.sh | sh
|
25
|
-
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
|
26
|
-
|
27
|
-
- name: Load cached dependencies
|
28
|
-
id: cached-uv-dependencies
|
29
|
-
uses: actions/cache@v4
|
30
|
-
with:
|
31
|
-
path: .venv
|
32
|
-
key: venv-${{ runner.os }}-${{ matrix.python-version }}-${{ hashFiles('pyproject.toml') }}
|
33
|
-
|
34
|
-
- name: Install dependencies
|
35
|
-
if: steps.cached-uv-dependencies.outputs.cache-hit != 'true'
|
36
|
-
run: |
|
37
|
-
uv venv
|
38
|
-
uv build
|
39
|
-
|
40
|
-
- name: Run tests
|
41
|
-
run: |
|
42
|
-
source .venv/bin/activate
|
43
|
-
uv run pytest --asyncio-mode=auto --maxfail=1 --disable-warnings tests/
|
44
|
-
|
45
|
-
- name: Check code style and compatibility
|
46
|
-
run: |
|
47
|
-
source .venv/bin/activate
|
48
|
-
uv run black --check .
|
49
|
-
uv run isort --check-only .
|
50
|
-
|
51
|
-
publish:
|
52
|
-
needs: test
|
53
|
-
runs-on: ubuntu-latest
|
54
|
-
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
|
55
|
-
steps:
|
56
|
-
- uses: actions/checkout@v4
|
57
|
-
- name: Set up Python
|
58
|
-
uses: actions/setup-python@v5
|
59
|
-
with:
|
60
|
-
python-version: "3.12"
|
61
|
-
|
62
|
-
- name: Install uv
|
63
|
-
run: |
|
64
|
-
curl -LsSf https://astral.sh/uv/install.sh | sh
|
65
|
-
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
|
66
|
-
|
67
|
-
- name: Build package
|
68
|
-
run: uv build
|
@@ -1,160 +0,0 @@
|
|
1
|
-
from enum import Enum
|
2
|
-
|
3
|
-
from pydantic import BaseModel, Field
|
4
|
-
|
5
|
-
|
6
|
-
class CategoryEnum(str, Enum):
|
7
|
-
company = "company"
|
8
|
-
research_paper = "research paper"
|
9
|
-
news = "news"
|
10
|
-
pdf = "pdf"
|
11
|
-
github = "github"
|
12
|
-
tweet = "tweet"
|
13
|
-
personal_site = "personal site"
|
14
|
-
linkedin_profile = "linkedin profile"
|
15
|
-
financial_report = "financial report"
|
16
|
-
|
17
|
-
|
18
|
-
class LivecrawlEnum(str, Enum):
|
19
|
-
never = "never"
|
20
|
-
fallback = "fallback"
|
21
|
-
always = "always"
|
22
|
-
|
23
|
-
|
24
|
-
class SearchTypeEnum(str, Enum):
|
25
|
-
keyword = "keyword"
|
26
|
-
neural = "neural"
|
27
|
-
auto = "auto"
|
28
|
-
|
29
|
-
|
30
|
-
class ContentsText(BaseModel):
|
31
|
-
includeHtmlTags: bool | None = Field(
|
32
|
-
default=False,
|
33
|
-
description="Whether to include HTML tags in the text. Set to True if you want to retain HTML structure for the LLM to interpret.",
|
34
|
-
)
|
35
|
-
maxCharacters: int | None = Field(
|
36
|
-
default=None,
|
37
|
-
description="The maximum number of characters to return from the webpage text.",
|
38
|
-
)
|
39
|
-
|
40
|
-
|
41
|
-
class ContentsHighlights(BaseModel):
|
42
|
-
highlightsPerUrl: int | None = Field(
|
43
|
-
default=1,
|
44
|
-
description="The number of highlight snippets you want per page.",
|
45
|
-
)
|
46
|
-
numSentences: int | None = Field(
|
47
|
-
default=5,
|
48
|
-
description="Number of sentences to return in each highlight snippet.",
|
49
|
-
)
|
50
|
-
query: None | str = Field(
|
51
|
-
default=None,
|
52
|
-
description="A specific query used to generate the highlight snippets.",
|
53
|
-
)
|
54
|
-
|
55
|
-
|
56
|
-
class ContentsSummary(BaseModel):
|
57
|
-
query: None | str = Field(
|
58
|
-
default=None,
|
59
|
-
description="A specific query used to generate a summary of the webpage.",
|
60
|
-
)
|
61
|
-
|
62
|
-
|
63
|
-
class ContentsExtras(BaseModel):
|
64
|
-
links: int | None = Field(
|
65
|
-
default=None, description="Number of links to return from each page."
|
66
|
-
)
|
67
|
-
imageLinks: int | None = Field(
|
68
|
-
default=None, description="Number of images to return for each result."
|
69
|
-
)
|
70
|
-
|
71
|
-
|
72
|
-
class Contents(BaseModel):
|
73
|
-
text: None | ContentsText = Field(
|
74
|
-
default=None,
|
75
|
-
description="Return full or partial text for each page, with optional HTML structure or size limit.",
|
76
|
-
)
|
77
|
-
highlights: None | ContentsHighlights = Field(
|
78
|
-
default=None, description="Return snippet highlights for each page."
|
79
|
-
)
|
80
|
-
summary: None | ContentsSummary = Field(
|
81
|
-
default=None, description="Return a short summary of each page."
|
82
|
-
)
|
83
|
-
livecrawl: None | LivecrawlEnum = Field(
|
84
|
-
default=LivecrawlEnum.never,
|
85
|
-
description="Livecrawling setting for each page. Options: never, fallback, always.",
|
86
|
-
)
|
87
|
-
livecrawlTimeout: int | None = Field(
|
88
|
-
default=10000,
|
89
|
-
description="Timeout in milliseconds for livecrawling. Default 10000.",
|
90
|
-
)
|
91
|
-
subpages: int | None = Field(
|
92
|
-
default=None,
|
93
|
-
description="Number of subpages to crawl within each URL.",
|
94
|
-
)
|
95
|
-
subpageTarget: None | str | list[str] = Field(
|
96
|
-
default=None,
|
97
|
-
description="A target subpage or multiple subpages (list) to crawl, e.g. 'cited papers'.",
|
98
|
-
)
|
99
|
-
extras: None | ContentsExtras = Field(
|
100
|
-
default=None,
|
101
|
-
description="Additional extras like links or images to return for each page.",
|
102
|
-
)
|
103
|
-
|
104
|
-
|
105
|
-
class ExaSearchRequest(BaseModel):
|
106
|
-
query: str = Field(
|
107
|
-
...,
|
108
|
-
description="The main query string describing what you're looking for.",
|
109
|
-
)
|
110
|
-
category: None | CategoryEnum = Field(
|
111
|
-
default=None,
|
112
|
-
description="A data category to focus on, such as 'company', 'research paper', 'news', etc.",
|
113
|
-
)
|
114
|
-
type: None | SearchTypeEnum = Field(
|
115
|
-
default=None,
|
116
|
-
description="The type of search to run. Can be 'auto', 'keyword', or 'neural'.",
|
117
|
-
)
|
118
|
-
useAutoprompt: None | bool = Field(
|
119
|
-
default=False,
|
120
|
-
description="If True, Exa auto-optimizes your query for best results (neural or auto search only).",
|
121
|
-
)
|
122
|
-
numResults: int | None = Field(
|
123
|
-
default=10, description="Number of results to return. Default is 10."
|
124
|
-
)
|
125
|
-
includeDomains: None | list[str] = Field(
|
126
|
-
default=None,
|
127
|
-
description="List of domains you want to include exclusively.",
|
128
|
-
)
|
129
|
-
excludeDomains: None | list[str] = Field(
|
130
|
-
default=None,
|
131
|
-
description="List of domains you do NOT want to see in the results.",
|
132
|
-
)
|
133
|
-
startCrawlDate: None | str = Field(
|
134
|
-
default=None,
|
135
|
-
description="Include results crawled after this ISO date (e.g., '2023-01-01T00:00:00.000Z').",
|
136
|
-
)
|
137
|
-
endCrawlDate: None | str = Field(
|
138
|
-
default=None,
|
139
|
-
description="Include results crawled before this ISO date.",
|
140
|
-
)
|
141
|
-
startPublishedDate: None | str = Field(
|
142
|
-
default=None,
|
143
|
-
description="Only return results published after this ISO date.",
|
144
|
-
)
|
145
|
-
endPublishedDate: None | str = Field(
|
146
|
-
default=None,
|
147
|
-
description="Only return results published before this ISO date.",
|
148
|
-
)
|
149
|
-
includeText: None | list[str] = Field(
|
150
|
-
default=None,
|
151
|
-
description="Strings that must appear in the webpage text. Only a single string up to 5 words is currently supported.",
|
152
|
-
)
|
153
|
-
excludeText: None | list[str] = Field(
|
154
|
-
default=None,
|
155
|
-
description="Strings that must NOT appear in the webpage text. Only a single string up to 5 words is currently supported.",
|
156
|
-
)
|
157
|
-
contents: None | Contents = Field(
|
158
|
-
default=None,
|
159
|
-
description="Dict defining the different ways you want to retrieve webpage contents, including text, highlights, or summaries.",
|
160
|
-
)
|
@@ -1,144 +0,0 @@
|
|
1
|
-
from enum import Enum
|
2
|
-
from typing import Any
|
3
|
-
|
4
|
-
from pydantic import BaseModel, Field, model_validator
|
5
|
-
|
6
|
-
|
7
|
-
class PerplexityRole(str, Enum):
|
8
|
-
"""Roles allowed in Perplexity's messages."""
|
9
|
-
|
10
|
-
system = "system"
|
11
|
-
user = "user"
|
12
|
-
assistant = "assistant"
|
13
|
-
|
14
|
-
|
15
|
-
class PerplexityMessage(BaseModel):
|
16
|
-
"""
|
17
|
-
A single message in the conversation.
|
18
|
-
`role` can be 'system', 'user', or 'assistant'.
|
19
|
-
`content` is the text for that conversation turn.
|
20
|
-
"""
|
21
|
-
|
22
|
-
role: PerplexityRole = Field(
|
23
|
-
...,
|
24
|
-
description="The role of the speaker. Must be system, user, or assistant.",
|
25
|
-
)
|
26
|
-
content: str = Field(..., description="The text content of this message.")
|
27
|
-
|
28
|
-
|
29
|
-
class PerplexityChatCompletionRequest(BaseModel):
|
30
|
-
"""
|
31
|
-
Represents the request body for Perplexity's Chat Completions endpoint.
|
32
|
-
Endpoint: POST https://api.perplexity.ai/chat/completions
|
33
|
-
"""
|
34
|
-
|
35
|
-
model: str = Field(
|
36
|
-
"sonar",
|
37
|
-
description="The model name, e.g. 'sonar', (the only model available at the time when this request model was updated, check doc for latest info).",
|
38
|
-
)
|
39
|
-
messages: list[PerplexityMessage] = Field(
|
40
|
-
..., description="A list of messages forming the conversation so far."
|
41
|
-
)
|
42
|
-
|
43
|
-
# Optional parameters
|
44
|
-
frequency_penalty: float | None = Field(
|
45
|
-
default=None,
|
46
|
-
gt=0,
|
47
|
-
description=(
|
48
|
-
"Multiplicative penalty > 0. Values > 1.0 penalize repeated tokens more strongly. "
|
49
|
-
"Value=1.0 means no penalty. Incompatible with presence_penalty."
|
50
|
-
),
|
51
|
-
)
|
52
|
-
presence_penalty: float | None = Field(
|
53
|
-
default=None,
|
54
|
-
ge=-2.0,
|
55
|
-
le=2.0,
|
56
|
-
description=(
|
57
|
-
"Penalizes tokens that have appeared so far (range -2 to 2). "
|
58
|
-
"Positive values encourage talking about new topics. Incompatible with frequency_penalty."
|
59
|
-
),
|
60
|
-
)
|
61
|
-
max_tokens: int | None = Field(
|
62
|
-
default=None,
|
63
|
-
description=(
|
64
|
-
"Maximum number of completion tokens. If omitted, model generates tokens until it "
|
65
|
-
"hits stop or context limit."
|
66
|
-
),
|
67
|
-
)
|
68
|
-
return_images: bool | None = Field(
|
69
|
-
default=None,
|
70
|
-
description="If True, attempt to return images (closed beta feature).",
|
71
|
-
)
|
72
|
-
return_related_questions: bool | None = Field(
|
73
|
-
default=None,
|
74
|
-
description="If True, attempt to return related questions (closed beta feature).",
|
75
|
-
)
|
76
|
-
search_domain_filter: list[Any] | None = Field(
|
77
|
-
default=None,
|
78
|
-
description=(
|
79
|
-
"List of domains to limit or exclude in the online search. Example: ['example.com', '-twitter.com']. "
|
80
|
-
"Supports up to 3 entries. (Closed beta feature.)"
|
81
|
-
),
|
82
|
-
)
|
83
|
-
search_recency_filter: str | None = Field(
|
84
|
-
default=None,
|
85
|
-
description=(
|
86
|
-
"Returns search results within a specified time interval: 'month', 'week', 'day', or 'hour'."
|
87
|
-
),
|
88
|
-
)
|
89
|
-
stream: bool | None = Field(
|
90
|
-
default=None,
|
91
|
-
description=(
|
92
|
-
"If True, response is returned incrementally via Server-Sent Events (SSE)."
|
93
|
-
),
|
94
|
-
)
|
95
|
-
temperature: float | None = Field(
|
96
|
-
default=None,
|
97
|
-
ge=0.0,
|
98
|
-
lt=2.0,
|
99
|
-
description=(
|
100
|
-
"Controls randomness of sampling, range [0, 2). Higher => more random. "
|
101
|
-
"Defaults to 0.2."
|
102
|
-
),
|
103
|
-
)
|
104
|
-
top_k: int | None = Field(
|
105
|
-
default=None,
|
106
|
-
ge=0,
|
107
|
-
le=2048,
|
108
|
-
description=(
|
109
|
-
"Top-K filtering. 0 disables top-k filtering. If set, only the top K tokens are considered. "
|
110
|
-
"We recommend altering either top_k or top_p, but not both."
|
111
|
-
),
|
112
|
-
)
|
113
|
-
top_p: float | None = Field(
|
114
|
-
default=None,
|
115
|
-
ge=0.0,
|
116
|
-
le=1.0,
|
117
|
-
description=(
|
118
|
-
"Nucleus sampling threshold. We recommend altering either top_k or top_p, but not both."
|
119
|
-
),
|
120
|
-
)
|
121
|
-
|
122
|
-
@model_validator(mode="before")
|
123
|
-
def validate_penalties(cls, values):
|
124
|
-
"""
|
125
|
-
Disallow using both frequency_penalty != 1.0 and presence_penalty != 0.0 at once,
|
126
|
-
since the docs say they're incompatible.
|
127
|
-
"""
|
128
|
-
freq_pen = values.get("frequency_penalty", 1.0)
|
129
|
-
pres_pen = values.get("presence_penalty", 0.0)
|
130
|
-
|
131
|
-
# The doc states frequency_penalty is incompatible with presence_penalty.
|
132
|
-
# We'll enforce that if presence_penalty != 0, frequency_penalty must be 1.0
|
133
|
-
# or vice versa. Adjust logic as needed.
|
134
|
-
if pres_pen != 0.0 and freq_pen != 1.0:
|
135
|
-
raise ValueError(
|
136
|
-
"presence_penalty is incompatible with frequency_penalty. "
|
137
|
-
"Please use only one: either presence_penalty=0 with freq_pen !=1, "
|
138
|
-
"or presence_penalty!=0 with freq_pen=1."
|
139
|
-
)
|
140
|
-
return values
|
141
|
-
|
142
|
-
def to_dict(self) -> dict:
|
143
|
-
"""Return a dict suitable for JSON serialization and sending to Perplexity API."""
|
144
|
-
return self.model_dump(exclude_none=True)
|
@@ -1 +0,0 @@
|
|
1
|
-
__version__ = "0.12.0"
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|