orchestrator-core 4.6.3rc1__tar.gz → 4.6.5__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.
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/PKG-INFO +17 -16
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/__init__.py +1 -1
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/search/index_llm.py +8 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/resolvers/helpers.py +15 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/resolvers/process.py +5 -3
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/resolvers/product.py +3 -2
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/resolvers/product_block.py +3 -2
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/resolvers/resource_type.py +3 -2
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/resolvers/scheduled_tasks.py +3 -1
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/resolvers/settings.py +2 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/resolvers/subscription.py +5 -3
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/resolvers/version.py +2 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/resolvers/workflow.py +3 -2
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/filters/date_filters.py +4 -5
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/indexing/indexer.py +43 -7
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/indexing/registry.py +16 -1
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/indexing/tasks.py +22 -1
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/indexing/traverse.py +30 -8
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/query/builder.py +3 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/query/results.py +60 -2
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/retrieval/retrievers/__init__.py +2 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/retrieval/retrievers/base.py +8 -1
- orchestrator_core-4.6.5/orchestrator/search/retrieval/retrievers/process.py +225 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/workflows/translations/en-GB.json +1 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/pyproject.toml +17 -16
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/LICENSE +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/README.md +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/agentic_app.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/api/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/api/api_v1/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/api/api_v1/api.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/api/api_v1/endpoints/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/api/api_v1/endpoints/agent.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/api/api_v1/endpoints/health.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/api/api_v1/endpoints/processes.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/api/api_v1/endpoints/product_blocks.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/api/api_v1/endpoints/products.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/api/api_v1/endpoints/resource_types.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/api/api_v1/endpoints/search.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/api/api_v1/endpoints/settings.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/api/api_v1/endpoints/subscription_customer_descriptions.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/api/api_v1/endpoints/subscriptions.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/api/api_v1/endpoints/translations.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/api/api_v1/endpoints/user.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/api/api_v1/endpoints/workflows.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/api/api_v1/endpoints/ws.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/api/error_handling.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/api/helpers.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/api/models.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/app.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/database.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/domain_gen_helpers/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/domain_gen_helpers/fixed_input_helpers.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/domain_gen_helpers/helpers.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/domain_gen_helpers/product_block_helpers.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/domain_gen_helpers/product_helpers.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/domain_gen_helpers/resource_type_helpers.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/domain_gen_helpers/types.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generate.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/custom_templates/README +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/custom_templates/additional_create_imports.j2 +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/custom_templates/additional_create_input_fields.j2 +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/custom_templates/additional_create_steps.j2 +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/custom_templates/additional_modify_imports.j2 +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/custom_templates/additional_modify_input_fields.j2 +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/custom_templates/additional_modify_steps.j2 +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/custom_templates/additional_terminate_imports.j2 +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/custom_templates/additional_terminate_input_fields.j2 +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/custom_templates/additional_terminate_steps.j2 +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/generator/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/generator/enums.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/generator/helpers.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/generator/migration.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/generator/product.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/generator/product_block.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/generator/settings.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/generator/translations.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/generator/unittest.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/generator/validations.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/generator/workflow.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/products/workshop/circuit.yaml +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/products/workshop/node.yaml +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/products/workshop/user.yaml +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/products/workshop/user_group.yaml +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/templates/additional_create_imports.j2 +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/templates/additional_create_steps.j2 +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/templates/additional_modify_imports.j2 +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/templates/additional_modify_steps.j2 +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/templates/additional_terminate_steps.j2 +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/templates/constrained_int_definitions.j2 +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/templates/create_data_head.j2 +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/templates/create_product.j2 +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/templates/enums.j2 +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/templates/lazy_workflow_instance.j2 +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/templates/list_definitions.j2 +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/templates/macros.j2 +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/templates/modify_product.j2 +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/templates/new_product_migration.j2 +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/templates/product.j2 +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/templates/product_block.j2 +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/templates/shared_forms.j2 +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/templates/shared_workflows.j2 +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/templates/subscription_model_registry.j2 +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/templates/terminate_product.j2 +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/templates/test_create_workflow.j2 +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/templates/test_modify_workflow.j2 +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/templates/test_product_type.j2 +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/templates/test_terminate_workflow.j2 +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/templates/test_validate_workflow.j2 +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/generator/templates/validate_product.j2 +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/helpers/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/helpers/input_helpers.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/helpers/print_helpers.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/main.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/migrate_domain_models.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/migrate_tasks.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/migrate_workflows.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/migration_helpers.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/scheduler.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/search/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/search/display.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/search/resize_embedding.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/search/search_explore.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/cli/search/speedtest.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/config/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/config/assignee.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/db/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/db/database.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/db/filters/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/db/filters/filters.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/db/filters/process.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/db/filters/product.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/db/filters/product_block.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/db/filters/resource_type.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/db/filters/search_filters/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/db/filters/search_filters/inferred_filter.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/db/filters/subscription.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/db/filters/workflow.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/db/helpers.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/db/listeners.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/db/loaders.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/db/models.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/db/queries/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/db/queries/subscription.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/db/queries/subscription_instance.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/db/range/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/db/range/range.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/db/sorting/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/db/sorting/process.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/db/sorting/product.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/db/sorting/product_block.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/db/sorting/resource_type.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/db/sorting/sorting.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/db/sorting/subscription.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/db/sorting/workflow.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/devtools/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/devtools/populator.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/devtools/scripts/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/devtools/scripts/migrate_20.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/devtools/scripts/migrate_30.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/devtools/scripts/shared.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/distlock/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/distlock/distlock_manager.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/distlock/managers/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/distlock/managers/memory_distlock_manager.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/distlock/managers/redis_distlock_manager.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/domain/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/domain/base.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/domain/context_cache.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/domain/customer_description.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/domain/helpers.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/domain/lifecycle.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/domain/subscription_instance_transform.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/exception_handlers.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/forms/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/forms/validators/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/forms/validators/customer_contact_list.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/forms/validators/customer_id.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/forms/validators/display_subscription.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/forms/validators/network_type_validators.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/forms/validators/product_id.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/autoregistration.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/extensions/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/extensions/model_cache.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/extensions/stats.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/loaders/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/loaders/subscriptions.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/mutations/customer_description.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/mutations/start_process.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/pagination.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/resolvers/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/resolvers/customer.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/schema.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/schemas/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/schemas/customer.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/schemas/customer_description.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/schemas/errors.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/schemas/fixed_input.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/schemas/helpers.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/schemas/process.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/schemas/product.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/schemas/product_block.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/schemas/resource_type.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/schemas/scheduled_task.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/schemas/settings.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/schemas/strawberry_pydantic_patch.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/schemas/subscription.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/schemas/version.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/schemas/workflow.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/types.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/utils/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/utils/create_resolver_error_handler.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/utils/get_query_loaders.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/utils/get_selected_fields.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/utils/get_selected_paths.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/utils/get_subscription_product_blocks.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/utils/is_query_detailed.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/utils/override_class.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/utils/to_graphql_result_page.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/llm_settings.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/log_config.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/metrics/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/metrics/engine.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/metrics/init.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/metrics/processes.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/metrics/subscriptions.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/migrations/README +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/migrations/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/migrations/alembic.ini +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/migrations/env.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/migrations/helpers.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/migrations/script.py.mako +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/migrations/templates/alembic.ini.j2 +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/migrations/templates/env.py.j2 +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/migrations/templates/helpers.py.j2 +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/migrations/versions/schema/2020-10-19_3323bcb934e7_fix_tsv_triggers.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/migrations/versions/schema/2020-10-19_a76b9185b334_add_generic_workflows_to_core.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/migrations/versions/schema/2020-10-19_c112305b07d3_initial_schema_migration.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/migrations/versions/schema/2021-04-06_3c8b9185c221_add_validate_products_task.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/migrations/versions/schema/2021-07-01_6896a54e9483_add_product_block_relations.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/migrations/versions/schema/2021-11-17_19cdd3ab86f6_fix_parse_websearch.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/migrations/versions/schema/2022-02-16_bed6bc0b197a_rename_parent_and_child_block_relations.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/migrations/versions/schema/2023-03-06_e05bb1967eff_add_subscriptions_search_view.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/migrations/versions/schema/2023-05-25_b1970225392d_add_subscription_metadata_workflow.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/migrations/versions/schema/2023-06-28_a09ac125ea73_add_throttling_to_refresh_subscriptions.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/migrations/versions/schema/2023-06-28_a09ac125ea73_add_throttling_to_refresh_subscriptions.sql +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/migrations/versions/schema/2023-07-17_165303a20fb1_customer_id_to_varchar.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/migrations/versions/schema/2023-07-17_165303a20fb1_customer_id_to_varchar.sql +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/migrations/versions/schema/2023-09-25_da5c9f4cce1c_add_subscription_metadata_to_fulltext_.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/migrations/versions/schema/2023-09-25_da5c9f4cce1c_add_subscription_metadata_to_fulltext_.sql +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/migrations/versions/schema/2023-12-06_048219045729_add_workflow_id_to_processes_table.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/migrations/versions/schema/2024-09-27_460ec6748e37_add_uuid_search_workaround.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/migrations/versions/schema/2024-09-27_460ec6748e37_add_uuid_search_workaround.sql +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/migrations/versions/schema/2025-01-08_4c5859620539_add_version_column_to_subscription.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/migrations/versions/schema/2025-01-19_4fjdn13f83ga_add_validate_product_type_task.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/migrations/versions/schema/2025-02-12_bac6be6f2b4f_added_input_state_table.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/migrations/versions/schema/2025-02-20_68d14db1b8da_make_workflow_description_mandatory.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/migrations/versions/schema/2025-03-06_42b3d076a85b_subscription_instance_as_json_function.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/migrations/versions/schema/2025-03-06_42b3d076a85b_subscription_instance_as_json_function.sql +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/migrations/versions/schema/2025-04-09_fc5c993a4b4a_add_cascade_constraint_on_processes_.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/migrations/versions/schema/2025-05-08_161918133bec_add_is_task_to_workflow.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/migrations/versions/schema/2025-07-01_93fc5834c7e5_changed_timestamping_fields_in_process_steps.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/migrations/versions/schema/2025-07-04_4b58e336d1bf_deprecating_workflow_target_in_.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/migrations/versions/schema/2025-07-28_850dccac3b02_update_description_of_resume_workflows_.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/py.typed +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/schedules/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/schedules/resume_workflows.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/schedules/scheduler.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/schedules/scheduling.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/schedules/task_vacuum.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/schedules/validate_products.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/schedules/validate_subscriptions.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/schemas/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/schemas/base.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/schemas/engine_settings.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/schemas/fixed_input.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/schemas/problem_detail.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/schemas/process.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/schemas/product.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/schemas/product_block.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/schemas/resource_type.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/schemas/search.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/schemas/search_requests.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/schemas/subscription.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/schemas/subscription_descriptions.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/schemas/workflow.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/agent/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/agent/agent.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/agent/handlers.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/agent/json_patch.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/agent/prompts.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/agent/state.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/agent/tools.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/agent/validation.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/aggregations/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/aggregations/base.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/core/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/core/embedding.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/core/exceptions.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/core/types.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/core/validators.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/docs/index.md +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/docs/running_local_text_embedding_inference.md +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/filters/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/filters/base.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/filters/definitions.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/filters/ltree_filters.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/filters/numeric_filter.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/indexing/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/llm_migration.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/query/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/query/engine.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/query/exceptions.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/query/export.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/query/mixins.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/query/queries.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/query/state.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/query/validation.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/retrieval/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/retrieval/pagination.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/retrieval/retrievers/fuzzy.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/retrieval/retrievers/hybrid.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/retrieval/retrievers/semantic.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/retrieval/retrievers/structured.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/security.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/services/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/services/executors/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/services/executors/celery.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/services/executors/threadpool.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/services/fixed_inputs.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/services/input_state.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/services/process_broadcast_thread.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/services/processes.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/services/products.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/services/resource_types.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/services/settings.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/services/settings_env_variables.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/services/subscription_relations.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/services/subscriptions.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/services/tasks.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/services/translations.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/services/workflows.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/settings.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/targets.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/types.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/utils/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/utils/auth.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/utils/crypt.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/utils/datetime.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/utils/deprecation_logger.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/utils/docs.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/utils/enrich_process.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/utils/errors.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/utils/expose_settings.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/utils/fixed_inputs.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/utils/functional.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/utils/get_subscription_dict.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/utils/get_updated_properties.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/utils/helpers.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/utils/json.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/utils/redis.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/utils/redis_client.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/utils/search_query.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/utils/state.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/utils/strings.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/utils/validate_data_version.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/version.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/websocket/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/websocket/managers/broadcast_websocket_manager.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/websocket/managers/memory_websocket_manager.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/websocket/websocket_manager.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/workflow.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/workflows/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/workflows/modify_note.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/workflows/removed_workflow.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/workflows/steps.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/workflows/tasks/__init__.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/workflows/tasks/cleanup_tasks_log.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/workflows/tasks/resume_workflows.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/workflows/tasks/validate_product_type.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/workflows/tasks/validate_products.py +0 -0
- {orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/workflows/utils.py +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: orchestrator-core
|
|
3
|
-
Version: 4.6.
|
|
3
|
+
Version: 4.6.5
|
|
4
4
|
Summary: This is the orchestrator workflow engine.
|
|
5
5
|
Author-email: SURF <automation-beheer@surf.nl>
|
|
6
|
-
Requires-Python: >=3.11,<3.
|
|
6
|
+
Requires-Python: >=3.11,<3.15
|
|
7
7
|
Description-Content-Type: text/markdown
|
|
8
8
|
License-Expression: Apache-2.0
|
|
9
9
|
Classifier: Development Status :: 5 - Production/Stable
|
|
@@ -20,6 +20,7 @@ Classifier: Programming Language :: Python :: 3
|
|
|
20
20
|
Classifier: Programming Language :: Python :: 3.11
|
|
21
21
|
Classifier: Programming Language :: Python :: 3.12
|
|
22
22
|
Classifier: Programming Language :: Python :: 3.13
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
23
24
|
Classifier: Programming Language :: Python
|
|
24
25
|
Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
|
|
25
26
|
Classifier: Topic :: Internet :: WWW/HTTP
|
|
@@ -30,39 +31,39 @@ Classifier: Topic :: Software Development :: Libraries
|
|
|
30
31
|
Classifier: Topic :: Software Development
|
|
31
32
|
Classifier: Typing :: Typed
|
|
32
33
|
License-File: LICENSE
|
|
33
|
-
Requires-Dist: alembic==1.
|
|
34
|
+
Requires-Dist: alembic==1.17.2
|
|
34
35
|
Requires-Dist: anyio>=3.7.0
|
|
35
36
|
Requires-Dist: apscheduler>=3.11.0
|
|
36
37
|
Requires-Dist: click==8.*
|
|
37
38
|
Requires-Dist: deepmerge==2.0
|
|
38
39
|
Requires-Dist: deprecated>=1.2.18
|
|
39
|
-
Requires-Dist: fastapi~=0.
|
|
40
|
+
Requires-Dist: fastapi~=0.121.1
|
|
40
41
|
Requires-Dist: fastapi-etag==0.4.0
|
|
41
42
|
Requires-Dist: itsdangerous>=2.2.0
|
|
42
43
|
Requires-Dist: jinja2==3.1.6
|
|
43
|
-
Requires-Dist: more-itertools~=10.
|
|
44
|
-
Requires-Dist: nwa-stdlib~=1.
|
|
44
|
+
Requires-Dist: more-itertools~=10.8.0
|
|
45
|
+
Requires-Dist: nwa-stdlib~=1.11.0
|
|
45
46
|
Requires-Dist: oauth2-lib>=2.5.0
|
|
46
|
-
Requires-Dist: orjson==3.
|
|
47
|
+
Requires-Dist: orjson==3.11.4
|
|
47
48
|
Requires-Dist: pgvector>=0.4.1
|
|
48
|
-
Requires-Dist: prometheus-client==0.
|
|
49
|
+
Requires-Dist: prometheus-client==0.23.1
|
|
49
50
|
Requires-Dist: psycopg2-binary==2.9.11
|
|
50
51
|
Requires-Dist: pydantic-forms>=1.4.0
|
|
51
|
-
Requires-Dist: pydantic-settings~=2.
|
|
52
|
-
Requires-Dist: pydantic[email]~=2.
|
|
53
|
-
Requires-Dist: python-dateutil==2.
|
|
54
|
-
Requires-Dist: python-rapidjson>=1.
|
|
52
|
+
Requires-Dist: pydantic-settings~=2.12.0
|
|
53
|
+
Requires-Dist: pydantic[email]~=2.12.4
|
|
54
|
+
Requires-Dist: python-dateutil==2.9.0.post0
|
|
55
|
+
Requires-Dist: python-rapidjson>=1.22,<1.23
|
|
55
56
|
Requires-Dist: pytz==2025.2
|
|
56
|
-
Requires-Dist: redis==5.
|
|
57
|
+
Requires-Dist: redis==5.3.1
|
|
57
58
|
Requires-Dist: semver==3.0.4
|
|
58
59
|
Requires-Dist: sentry-sdk[fastapi]>=2.29.1
|
|
59
60
|
Requires-Dist: sqlalchemy==2.0.44
|
|
60
|
-
Requires-Dist: sqlalchemy-utils==0.
|
|
61
|
+
Requires-Dist: sqlalchemy-utils==0.42.0
|
|
61
62
|
Requires-Dist: strawberry-graphql>=0.281.0,<0.285.0
|
|
62
63
|
Requires-Dist: structlog>=25.4.0
|
|
63
64
|
Requires-Dist: tabulate==0.9.0
|
|
64
|
-
Requires-Dist: typer==0.
|
|
65
|
-
Requires-Dist: uvicorn[standard]~=0.
|
|
65
|
+
Requires-Dist: typer==0.20.0
|
|
66
|
+
Requires-Dist: uvicorn[standard]~=0.38.0
|
|
66
67
|
Requires-Dist: pydantic-ai-slim >=1.9.0 ; extra == "agent"
|
|
67
68
|
Requires-Dist: ag-ui-protocol>=0.1.8 ; extra == "agent"
|
|
68
69
|
Requires-Dist: litellm>=1.75.7 ; extra == "agent"
|
|
@@ -14,6 +14,7 @@ def subscriptions_command(
|
|
|
14
14
|
subscription_id: str | None = typer.Option(None, help="UUID (default = all)"),
|
|
15
15
|
dry_run: bool = typer.Option(False, help="No DB writes"),
|
|
16
16
|
force_index: bool = typer.Option(False, help="Force re-index (ignore hash cache)"),
|
|
17
|
+
show_progress: bool = typer.Option(False, help="Show per-entity progress"),
|
|
17
18
|
) -> None:
|
|
18
19
|
"""Index subscription_search_index."""
|
|
19
20
|
run_indexing_for_entity(
|
|
@@ -21,6 +22,7 @@ def subscriptions_command(
|
|
|
21
22
|
entity_id=subscription_id,
|
|
22
23
|
dry_run=dry_run,
|
|
23
24
|
force_index=force_index,
|
|
25
|
+
show_progress=show_progress,
|
|
24
26
|
)
|
|
25
27
|
|
|
26
28
|
|
|
@@ -29,6 +31,7 @@ def products_command(
|
|
|
29
31
|
product_id: str | None = typer.Option(None, help="UUID (default = all)"),
|
|
30
32
|
dry_run: bool = typer.Option(False, help="No DB writes"),
|
|
31
33
|
force_index: bool = typer.Option(False, help="Force re-index (ignore hash cache)"),
|
|
34
|
+
show_progress: bool = typer.Option(False, help="Show per-entity progress"),
|
|
32
35
|
) -> None:
|
|
33
36
|
"""Index product_search_index."""
|
|
34
37
|
run_indexing_for_entity(
|
|
@@ -36,6 +39,7 @@ def products_command(
|
|
|
36
39
|
entity_id=product_id,
|
|
37
40
|
dry_run=dry_run,
|
|
38
41
|
force_index=force_index,
|
|
42
|
+
show_progress=show_progress,
|
|
39
43
|
)
|
|
40
44
|
|
|
41
45
|
|
|
@@ -44,6 +48,7 @@ def processes_command(
|
|
|
44
48
|
process_id: str | None = typer.Option(None, help="UUID (default = all)"),
|
|
45
49
|
dry_run: bool = typer.Option(False, help="No DB writes"),
|
|
46
50
|
force_index: bool = typer.Option(False, help="Force re-index (ignore hash cache)"),
|
|
51
|
+
show_progress: bool = typer.Option(False, help="Show per-entity progress"),
|
|
47
52
|
) -> None:
|
|
48
53
|
"""Index process_search_index."""
|
|
49
54
|
run_indexing_for_entity(
|
|
@@ -51,6 +56,7 @@ def processes_command(
|
|
|
51
56
|
entity_id=process_id,
|
|
52
57
|
dry_run=dry_run,
|
|
53
58
|
force_index=force_index,
|
|
59
|
+
show_progress=show_progress,
|
|
54
60
|
)
|
|
55
61
|
|
|
56
62
|
|
|
@@ -59,6 +65,7 @@ def workflows_command(
|
|
|
59
65
|
workflow_id: str | None = typer.Option(None, help="UUID (default = all)"),
|
|
60
66
|
dry_run: bool = typer.Option(False, help="No DB writes"),
|
|
61
67
|
force_index: bool = typer.Option(False, help="Force re-index (ignore hash cache)"),
|
|
68
|
+
show_progress: bool = typer.Option(False, help="Show per-entity progress"),
|
|
62
69
|
) -> None:
|
|
63
70
|
"""Index workflow_search_index."""
|
|
64
71
|
run_indexing_for_entity(
|
|
@@ -66,6 +73,7 @@ def workflows_command(
|
|
|
66
73
|
entity_id=workflow_id,
|
|
67
74
|
dry_run=dry_run,
|
|
68
75
|
force_index=force_index,
|
|
76
|
+
show_progress=show_progress,
|
|
69
77
|
)
|
|
70
78
|
|
|
71
79
|
|
{orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/resolvers/helpers.py
RENAMED
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
from collections.abc import Sequence
|
|
2
|
+
from functools import wraps
|
|
3
|
+
from typing import Callable, Coroutine
|
|
2
4
|
|
|
5
|
+
import structlog
|
|
3
6
|
from sqlalchemy import CompoundSelect, Select, select
|
|
4
7
|
from sqlalchemy.orm.strategy_options import _AbstractLoad
|
|
8
|
+
from starlette.concurrency import run_in_threadpool
|
|
5
9
|
|
|
6
10
|
from orchestrator.db import db
|
|
7
11
|
from orchestrator.db.database import BaseModel
|
|
8
12
|
|
|
13
|
+
logger = structlog.get_logger(__name__)
|
|
14
|
+
|
|
9
15
|
|
|
10
16
|
def rows_from_statement(
|
|
11
17
|
stmt: Select | CompoundSelect,
|
|
@@ -19,3 +25,12 @@ def rows_from_statement(
|
|
|
19
25
|
result = db.session.scalars(from_stmt)
|
|
20
26
|
uresult = result.unique() if unique else result
|
|
21
27
|
return uresult.all()
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def make_async(f: Callable): # type: ignore
|
|
31
|
+
@wraps(f)
|
|
32
|
+
async def wrapper(*args, **kwargs) -> Coroutine: # type: ignore
|
|
33
|
+
logger.debug(f"**async, calling fn {f.__name__}")
|
|
34
|
+
return await run_in_threadpool(f, *args, **kwargs)
|
|
35
|
+
|
|
36
|
+
return wrapper
|
{orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/resolvers/process.py
RENAMED
|
@@ -25,7 +25,7 @@ from orchestrator.db.range import apply_range_to_statement
|
|
|
25
25
|
from orchestrator.db.sorting import Sort
|
|
26
26
|
from orchestrator.db.sorting.process import process_sort_fields, sort_processes
|
|
27
27
|
from orchestrator.graphql.pagination import Connection
|
|
28
|
-
from orchestrator.graphql.resolvers.helpers import rows_from_statement
|
|
28
|
+
from orchestrator.graphql.resolvers.helpers import make_async, rows_from_statement
|
|
29
29
|
from orchestrator.graphql.schemas.process import ProcessType
|
|
30
30
|
from orchestrator.graphql.types import GraphqlFilter, GraphqlSort, OrchestratorInfo
|
|
31
31
|
from orchestrator.graphql.utils import (
|
|
@@ -55,7 +55,8 @@ def _enrich_process(process: ProcessTable, with_details: bool = False) -> Proces
|
|
|
55
55
|
return ProcessSchema(**process_data)
|
|
56
56
|
|
|
57
57
|
|
|
58
|
-
|
|
58
|
+
@make_async
|
|
59
|
+
def resolve_process(info: OrchestratorInfo, process_id: UUID) -> ProcessType | None:
|
|
59
60
|
query_loaders = get_query_loaders_for_gql_fields(ProcessTable, info)
|
|
60
61
|
stmt = select(ProcessTable).options(*query_loaders).where(ProcessTable.process_id == process_id)
|
|
61
62
|
if process := db.session.scalar(stmt):
|
|
@@ -64,7 +65,8 @@ async def resolve_process(info: OrchestratorInfo, process_id: UUID) -> ProcessTy
|
|
|
64
65
|
return None
|
|
65
66
|
|
|
66
67
|
|
|
67
|
-
|
|
68
|
+
@make_async
|
|
69
|
+
def resolve_processes(
|
|
68
70
|
info: OrchestratorInfo,
|
|
69
71
|
filter_by: list[GraphqlFilter] | None = None,
|
|
70
72
|
sort_by: list[GraphqlSort] | None = None,
|
{orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/resolvers/product.py
RENAMED
|
@@ -9,7 +9,7 @@ from orchestrator.db.range.range import apply_range_to_statement
|
|
|
9
9
|
from orchestrator.db.sorting import Sort
|
|
10
10
|
from orchestrator.db.sorting.product import product_sort_fields, sort_products
|
|
11
11
|
from orchestrator.graphql.pagination import Connection
|
|
12
|
-
from orchestrator.graphql.resolvers.helpers import rows_from_statement
|
|
12
|
+
from orchestrator.graphql.resolvers.helpers import make_async, rows_from_statement
|
|
13
13
|
from orchestrator.graphql.schemas.product import ProductType
|
|
14
14
|
from orchestrator.graphql.types import GraphqlFilter, GraphqlSort, OrchestratorInfo
|
|
15
15
|
from orchestrator.graphql.utils import create_resolver_error_handler, is_querying_page_data, to_graphql_result_page
|
|
@@ -19,7 +19,8 @@ from orchestrator.utils.search_query import create_sqlalchemy_select
|
|
|
19
19
|
logger = structlog.get_logger(__name__)
|
|
20
20
|
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
@make_async
|
|
23
|
+
def resolve_products(
|
|
23
24
|
info: OrchestratorInfo,
|
|
24
25
|
filter_by: list[GraphqlFilter] | None = None,
|
|
25
26
|
sort_by: list[GraphqlSort] | None = None,
|
|
@@ -13,7 +13,7 @@ from orchestrator.db.range.range import apply_range_to_statement
|
|
|
13
13
|
from orchestrator.db.sorting import Sort
|
|
14
14
|
from orchestrator.db.sorting.product_block import product_block_sort_fields, sort_product_blocks
|
|
15
15
|
from orchestrator.graphql.pagination import Connection
|
|
16
|
-
from orchestrator.graphql.resolvers.helpers import rows_from_statement
|
|
16
|
+
from orchestrator.graphql.resolvers.helpers import make_async, rows_from_statement
|
|
17
17
|
from orchestrator.graphql.schemas.product_block import ProductBlock
|
|
18
18
|
from orchestrator.graphql.types import GraphqlFilter, GraphqlSort, OrchestratorInfo
|
|
19
19
|
from orchestrator.graphql.utils import create_resolver_error_handler, is_querying_page_data, to_graphql_result_page
|
|
@@ -23,7 +23,8 @@ from orchestrator.utils.search_query import create_sqlalchemy_select
|
|
|
23
23
|
logger = structlog.get_logger(__name__)
|
|
24
24
|
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
@make_async
|
|
27
|
+
def resolve_product_blocks(
|
|
27
28
|
info: OrchestratorInfo,
|
|
28
29
|
filter_by: list[GraphqlFilter] | None = None,
|
|
29
30
|
sort_by: list[GraphqlSort] | None = None,
|
|
@@ -13,7 +13,7 @@ from orchestrator.db.range import apply_range_to_statement
|
|
|
13
13
|
from orchestrator.db.sorting import Sort
|
|
14
14
|
from orchestrator.db.sorting.resource_type import resource_type_sort_fields, sort_resource_types
|
|
15
15
|
from orchestrator.graphql.pagination import Connection
|
|
16
|
-
from orchestrator.graphql.resolvers.helpers import rows_from_statement
|
|
16
|
+
from orchestrator.graphql.resolvers.helpers import make_async, rows_from_statement
|
|
17
17
|
from orchestrator.graphql.schemas.resource_type import ResourceType
|
|
18
18
|
from orchestrator.graphql.types import GraphqlFilter, GraphqlSort, OrchestratorInfo
|
|
19
19
|
from orchestrator.graphql.utils import create_resolver_error_handler, is_querying_page_data, to_graphql_result_page
|
|
@@ -23,7 +23,8 @@ from orchestrator.utils.search_query import create_sqlalchemy_select
|
|
|
23
23
|
logger = structlog.get_logger(__name__)
|
|
24
24
|
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
@make_async
|
|
27
|
+
def resolve_resource_types(
|
|
27
28
|
info: OrchestratorInfo,
|
|
28
29
|
filter_by: list[GraphqlFilter] | None = None,
|
|
29
30
|
sort_by: list[GraphqlSort] | None = None,
|
|
@@ -3,6 +3,7 @@ import structlog
|
|
|
3
3
|
from orchestrator.db.filters import Filter
|
|
4
4
|
from orchestrator.db.sorting import Sort
|
|
5
5
|
from orchestrator.graphql.pagination import Connection
|
|
6
|
+
from orchestrator.graphql.resolvers.helpers import make_async
|
|
6
7
|
from orchestrator.graphql.schemas.scheduled_task import ScheduledTaskGraphql
|
|
7
8
|
from orchestrator.graphql.types import GraphqlFilter, GraphqlSort, OrchestratorInfo
|
|
8
9
|
from orchestrator.graphql.utils import create_resolver_error_handler, to_graphql_result_page
|
|
@@ -12,7 +13,8 @@ from orchestrator.schedules.scheduler import get_scheduler_tasks, scheduled_task
|
|
|
12
13
|
logger = structlog.get_logger(__name__)
|
|
13
14
|
|
|
14
15
|
|
|
15
|
-
|
|
16
|
+
@make_async
|
|
17
|
+
def resolve_scheduled_tasks(
|
|
16
18
|
info: OrchestratorInfo,
|
|
17
19
|
filter_by: list[GraphqlFilter] | None = None,
|
|
18
20
|
sort_by: list[GraphqlSort] | None = None,
|
{orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/resolvers/settings.py
RENAMED
|
@@ -4,6 +4,7 @@ from redis.asyncio import Redis as AIORedis
|
|
|
4
4
|
|
|
5
5
|
from oauth2_lib.strawberry import authenticated_mutation_field
|
|
6
6
|
from orchestrator.api.api_v1.endpoints.settings import generate_engine_status_response
|
|
7
|
+
from orchestrator.graphql.resolvers.helpers import make_async
|
|
7
8
|
from orchestrator.graphql.schemas.errors import Error
|
|
8
9
|
from orchestrator.graphql.schemas.settings import (
|
|
9
10
|
CACHE_FLUSH_OPTIONS,
|
|
@@ -27,6 +28,7 @@ logger = structlog.get_logger(__name__)
|
|
|
27
28
|
|
|
28
29
|
|
|
29
30
|
# Queries
|
|
31
|
+
@make_async
|
|
30
32
|
def resolve_settings(info: OrchestratorInfo) -> StatusType:
|
|
31
33
|
selected_fields = get_selected_fields(info)
|
|
32
34
|
|
|
@@ -18,6 +18,7 @@ from graphql import GraphQLError
|
|
|
18
18
|
from pydantic.alias_generators import to_camel as to_lower_camel
|
|
19
19
|
from sqlalchemy import Select, func, select
|
|
20
20
|
from sqlalchemy.orm import contains_eager
|
|
21
|
+
from starlette.concurrency import run_in_threadpool
|
|
21
22
|
from strawberry.experimental.pydantic.conversion_types import StrawberryTypeFromPydantic
|
|
22
23
|
|
|
23
24
|
from nwastdlib.asyncio import gather_nice
|
|
@@ -101,7 +102,7 @@ async def format_subscription(info: OrchestratorInfo, subscription: Subscription
|
|
|
101
102
|
async def resolve_subscription(info: OrchestratorInfo, id: UUID) -> SubscriptionInterface | None:
|
|
102
103
|
stmt = select(SubscriptionTable).where(SubscriptionTable.subscription_id == id)
|
|
103
104
|
|
|
104
|
-
if subscription := db.session.scalar
|
|
105
|
+
if subscription := await run_in_threadpool(db.session.scalar, stmt):
|
|
105
106
|
return await format_subscription(info, subscription)
|
|
106
107
|
return None
|
|
107
108
|
|
|
@@ -141,12 +142,13 @@ async def resolve_subscriptions(
|
|
|
141
142
|
stmt = filter_by_query_string(stmt, query)
|
|
142
143
|
|
|
143
144
|
stmt = cast(Select, sort_subscriptions(stmt, pydantic_sort_by, _error_handler))
|
|
144
|
-
total = db.session.scalar
|
|
145
|
+
total = await run_in_threadpool(db.session.scalar, select(func.count()).select_from(stmt.subquery()))
|
|
145
146
|
stmt = apply_range_to_statement(stmt, after, after + first + 1)
|
|
146
147
|
|
|
147
148
|
graphql_subscriptions: list[SubscriptionInterface] = []
|
|
148
149
|
if is_querying_page_data(info):
|
|
149
|
-
|
|
150
|
+
scalars = await run_in_threadpool(db.session.scalars, stmt)
|
|
151
|
+
subscriptions = scalars.all()
|
|
150
152
|
graphql_subscriptions = list(await gather_nice((format_subscription(info, p) for p in subscriptions))) # type: ignore
|
|
151
153
|
logger.info("Resolve subscriptions", filter_by=filter_by, total=total)
|
|
152
154
|
|
{orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/resolvers/version.py
RENAMED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from structlog import get_logger
|
|
2
2
|
|
|
3
3
|
from orchestrator import __version__
|
|
4
|
+
from orchestrator.graphql.resolvers.helpers import make_async
|
|
4
5
|
from orchestrator.graphql.schemas.version import VersionType
|
|
5
6
|
from orchestrator.graphql.types import OrchestratorInfo
|
|
6
7
|
from orchestrator.graphql.utils import create_resolver_error_handler
|
|
@@ -11,6 +12,7 @@ logger = get_logger(__name__)
|
|
|
11
12
|
VERSIONS = [f"orchestrator-core: {__version__}"]
|
|
12
13
|
|
|
13
14
|
|
|
15
|
+
@make_async
|
|
14
16
|
def resolve_version(info: OrchestratorInfo) -> VersionType | None:
|
|
15
17
|
logger.debug("resolve_version() called")
|
|
16
18
|
_error_handler = create_resolver_error_handler(info)
|
{orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/graphql/resolvers/workflow.py
RENAMED
|
@@ -9,7 +9,7 @@ from orchestrator.db.range.range import apply_range_to_statement
|
|
|
9
9
|
from orchestrator.db.sorting import Sort
|
|
10
10
|
from orchestrator.db.sorting.workflow import sort_workflows, workflow_sort_fields
|
|
11
11
|
from orchestrator.graphql.pagination import Connection
|
|
12
|
-
from orchestrator.graphql.resolvers.helpers import rows_from_statement
|
|
12
|
+
from orchestrator.graphql.resolvers.helpers import make_async, rows_from_statement
|
|
13
13
|
from orchestrator.graphql.schemas.workflow import Workflow
|
|
14
14
|
from orchestrator.graphql.types import GraphqlFilter, GraphqlSort, OrchestratorInfo
|
|
15
15
|
from orchestrator.graphql.utils import create_resolver_error_handler, is_querying_page_data, to_graphql_result_page
|
|
@@ -19,7 +19,8 @@ from orchestrator.utils.search_query import create_sqlalchemy_select
|
|
|
19
19
|
logger = structlog.get_logger(__name__)
|
|
20
20
|
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
@make_async
|
|
23
|
+
def resolve_workflows(
|
|
23
24
|
info: OrchestratorInfo,
|
|
24
25
|
filter_by: list[GraphqlFilter] | None = None,
|
|
25
26
|
sort_by: list[GraphqlSort] | None = None,
|
{orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/filters/date_filters.py
RENAMED
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
from datetime import date, datetime
|
|
15
15
|
from typing import Annotated, Any, Literal
|
|
16
16
|
|
|
17
|
-
from dateutil.parser import parse as dt_parse
|
|
18
17
|
from pydantic import BaseModel, BeforeValidator, Field, model_validator
|
|
19
18
|
from sqlalchemy import TIMESTAMP, and_
|
|
20
19
|
from sqlalchemy import cast as sa_cast
|
|
@@ -27,10 +26,10 @@ def _validate_date_string(v: Any) -> Any:
|
|
|
27
26
|
if not isinstance(v, str):
|
|
28
27
|
return v
|
|
29
28
|
try:
|
|
30
|
-
|
|
29
|
+
datetime.fromisoformat(v)
|
|
31
30
|
return v
|
|
32
31
|
except Exception as exc:
|
|
33
|
-
raise ValueError("is not a valid date or datetime string") from exc
|
|
32
|
+
raise ValueError("is not a valid ISO-8601 date or datetime string") from exc
|
|
34
33
|
|
|
35
34
|
|
|
36
35
|
DateValue = datetime | date | str
|
|
@@ -44,8 +43,8 @@ class DateRange(BaseModel):
|
|
|
44
43
|
|
|
45
44
|
@model_validator(mode="after")
|
|
46
45
|
def _order(self) -> "DateRange":
|
|
47
|
-
to_datetime =
|
|
48
|
-
from_datetime =
|
|
46
|
+
to_datetime = datetime.fromisoformat(str(self.end))
|
|
47
|
+
from_datetime = datetime.fromisoformat(str(self.start))
|
|
49
48
|
if to_datetime <= from_datetime:
|
|
50
49
|
raise ValueError("'to' must be after 'from'")
|
|
51
50
|
return self
|
{orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/indexing/indexer.py
RENAMED
|
@@ -45,6 +45,23 @@ def _maybe_begin(session: Session | None) -> Iterator[None]:
|
|
|
45
45
|
yield
|
|
46
46
|
|
|
47
47
|
|
|
48
|
+
@contextmanager
|
|
49
|
+
def _maybe_progress(show_progress: bool, total_count: int | None, label: str) -> Iterator[Any]:
|
|
50
|
+
"""Context manager that optionally creates a progress bar."""
|
|
51
|
+
if show_progress:
|
|
52
|
+
import typer
|
|
53
|
+
|
|
54
|
+
with typer.progressbar(
|
|
55
|
+
length=total_count,
|
|
56
|
+
label=label,
|
|
57
|
+
show_eta=True,
|
|
58
|
+
show_percent=bool(total_count),
|
|
59
|
+
) as progress:
|
|
60
|
+
yield progress
|
|
61
|
+
else:
|
|
62
|
+
yield None
|
|
63
|
+
|
|
64
|
+
|
|
48
65
|
class Indexer:
|
|
49
66
|
"""Index entities into `AiSearchIndex` using streaming reads and batched writes.
|
|
50
67
|
|
|
@@ -89,11 +106,21 @@ class Indexer:
|
|
|
89
106
|
8) Repeat until the stream is exhausted.
|
|
90
107
|
"""
|
|
91
108
|
|
|
92
|
-
def __init__(
|
|
109
|
+
def __init__(
|
|
110
|
+
self,
|
|
111
|
+
config: EntityConfig,
|
|
112
|
+
dry_run: bool,
|
|
113
|
+
force_index: bool,
|
|
114
|
+
chunk_size: int = 1000,
|
|
115
|
+
show_progress: bool = False,
|
|
116
|
+
total_count: int | None = None,
|
|
117
|
+
) -> None:
|
|
93
118
|
self.config = config
|
|
94
119
|
self.dry_run = dry_run
|
|
95
120
|
self.force_index = force_index
|
|
96
121
|
self.chunk_size = chunk_size
|
|
122
|
+
self.show_progress = show_progress
|
|
123
|
+
self.total_count = total_count
|
|
97
124
|
self.embedding_model = llm_settings.EMBEDDING_MODEL
|
|
98
125
|
self.logger = logger.bind(entity_kind=config.entity_kind.value)
|
|
99
126
|
self._entity_titles: dict[str, str] = {}
|
|
@@ -116,13 +143,22 @@ class Indexer:
|
|
|
116
143
|
|
|
117
144
|
with write_scope as database:
|
|
118
145
|
session: Session | None = getattr(database, "session", None)
|
|
119
|
-
for entity in entities:
|
|
120
|
-
chunk.append(entity)
|
|
121
|
-
if len(chunk) >= self.chunk_size:
|
|
122
|
-
flush()
|
|
123
146
|
|
|
124
|
-
|
|
125
|
-
|
|
147
|
+
with _maybe_progress(
|
|
148
|
+
self.show_progress, self.total_count, f"Indexing {self.config.entity_kind.value}"
|
|
149
|
+
) as progress:
|
|
150
|
+
for entity in entities:
|
|
151
|
+
chunk.append(entity)
|
|
152
|
+
|
|
153
|
+
if len(chunk) >= self.chunk_size:
|
|
154
|
+
flush()
|
|
155
|
+
if progress:
|
|
156
|
+
progress.update(self.chunk_size)
|
|
157
|
+
|
|
158
|
+
if chunk:
|
|
159
|
+
flush()
|
|
160
|
+
if progress:
|
|
161
|
+
progress.update(len(chunk))
|
|
126
162
|
|
|
127
163
|
final_log_message = (
|
|
128
164
|
f"processed {total_records_processed} records and skipped {total_identical_records} identical records."
|
{orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/indexing/registry.py
RENAMED
|
@@ -66,6 +66,21 @@ class EntityConfig(Generic[ModelT]):
|
|
|
66
66
|
return "UNKNOWN"
|
|
67
67
|
|
|
68
68
|
|
|
69
|
+
@dataclass(frozen=True)
|
|
70
|
+
class ProcessConfig(EntityConfig[ProcessTable]):
|
|
71
|
+
"""Processes need to eager load workflow for workflow_name field."""
|
|
72
|
+
|
|
73
|
+
def get_all_query(self, entity_id: str | None = None) -> Query | Select:
|
|
74
|
+
from sqlalchemy.orm import selectinload
|
|
75
|
+
|
|
76
|
+
# Only load workflow, not subscriptions (keeps it lightweight)
|
|
77
|
+
query = self.table.query.options(selectinload(ProcessTable.workflow))
|
|
78
|
+
if entity_id:
|
|
79
|
+
pk_column = getattr(self.table, self.pk_name)
|
|
80
|
+
query = query.filter(pk_column == UUID(entity_id))
|
|
81
|
+
return query
|
|
82
|
+
|
|
83
|
+
|
|
69
84
|
@dataclass(frozen=True)
|
|
70
85
|
class WorkflowConfig(EntityConfig[WorkflowTable]):
|
|
71
86
|
"""Workflows have a custom select() function that filters out deleted workflows."""
|
|
@@ -95,7 +110,7 @@ ENTITY_CONFIG_REGISTRY: dict[EntityType, EntityConfig] = {
|
|
|
95
110
|
root_name="product",
|
|
96
111
|
title_paths=["product.description", "product.name"],
|
|
97
112
|
),
|
|
98
|
-
EntityType.PROCESS:
|
|
113
|
+
EntityType.PROCESS: ProcessConfig(
|
|
99
114
|
entity_kind=EntityType.PROCESS,
|
|
100
115
|
table=ProcessTable,
|
|
101
116
|
traverser=ProcessTraverser,
|
{orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/indexing/tasks.py
RENAMED
|
@@ -11,7 +11,10 @@
|
|
|
11
11
|
# See the License for the specific language governing permissions and
|
|
12
12
|
# limitations under the License.
|
|
13
13
|
|
|
14
|
+
from typing import Any
|
|
15
|
+
|
|
14
16
|
import structlog
|
|
17
|
+
from sqlalchemy import func, select
|
|
15
18
|
from sqlalchemy.orm import Query
|
|
16
19
|
|
|
17
20
|
from orchestrator.db import db
|
|
@@ -23,12 +26,20 @@ from orchestrator.search.indexing.registry import ENTITY_CONFIG_REGISTRY
|
|
|
23
26
|
logger = structlog.get_logger(__name__)
|
|
24
27
|
|
|
25
28
|
|
|
29
|
+
def _get_entity_count(stmt: Any) -> int | None:
|
|
30
|
+
"""Get total count of entities from a select statement."""
|
|
31
|
+
|
|
32
|
+
count_stmt = select(func.count()).select_from(stmt.subquery())
|
|
33
|
+
return db.session.execute(count_stmt).scalar()
|
|
34
|
+
|
|
35
|
+
|
|
26
36
|
def run_indexing_for_entity(
|
|
27
37
|
entity_kind: EntityType,
|
|
28
38
|
entity_id: str | None = None,
|
|
29
39
|
dry_run: bool = False,
|
|
30
40
|
force_index: bool = False,
|
|
31
41
|
chunk_size: int = 1000,
|
|
42
|
+
show_progress: bool = False,
|
|
32
43
|
) -> None:
|
|
33
44
|
"""Stream and index entities for the given kind.
|
|
34
45
|
|
|
@@ -46,6 +57,7 @@ def run_indexing_for_entity(
|
|
|
46
57
|
existing hashes.
|
|
47
58
|
chunk_size (int): Number of rows fetched per round-trip and passed to
|
|
48
59
|
the indexer per batch.
|
|
60
|
+
show_progress (bool): When True, logs progress for each processed entity.
|
|
49
61
|
|
|
50
62
|
Returns:
|
|
51
63
|
None
|
|
@@ -60,10 +72,19 @@ def run_indexing_for_entity(
|
|
|
60
72
|
else:
|
|
61
73
|
stmt = q
|
|
62
74
|
|
|
75
|
+
total_count = _get_entity_count(stmt) if show_progress else None
|
|
76
|
+
|
|
63
77
|
stmt = stmt.execution_options(stream_results=True, yield_per=chunk_size)
|
|
64
78
|
entities = db.session.execute(stmt).scalars()
|
|
65
79
|
|
|
66
|
-
indexer = Indexer(
|
|
80
|
+
indexer = Indexer(
|
|
81
|
+
config=config,
|
|
82
|
+
dry_run=dry_run,
|
|
83
|
+
force_index=force_index,
|
|
84
|
+
chunk_size=chunk_size,
|
|
85
|
+
show_progress=show_progress,
|
|
86
|
+
total_count=total_count,
|
|
87
|
+
)
|
|
67
88
|
|
|
68
89
|
with cache_subscription_models():
|
|
69
90
|
indexer.run(entities)
|
{orchestrator_core-4.6.3rc1 → orchestrator_core-4.6.5}/orchestrator/search/indexing/traverse.py
RENAMED
|
@@ -29,7 +29,7 @@ from orchestrator.domain.base import ProductBlockModel, ProductModel
|
|
|
29
29
|
from orchestrator.domain.lifecycle import (
|
|
30
30
|
lookup_specialized_type,
|
|
31
31
|
)
|
|
32
|
-
from orchestrator.schemas.process import
|
|
32
|
+
from orchestrator.schemas.process import ProcessBaseSchema
|
|
33
33
|
from orchestrator.schemas.workflow import WorkflowSchema
|
|
34
34
|
from orchestrator.search.core.exceptions import ModelLoadError, ProductNotInRegistryError
|
|
35
35
|
from orchestrator.search.core.types import LTREE_SEPARATOR, ExtractedField, FieldType
|
|
@@ -307,17 +307,39 @@ class ProductTraverser(BaseTraverser):
|
|
|
307
307
|
|
|
308
308
|
|
|
309
309
|
class ProcessTraverser(BaseTraverser):
|
|
310
|
-
"""Traverser for process entities using
|
|
310
|
+
"""Traverser for process entities using ProcessBaseSchema.
|
|
311
311
|
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
- Related workflow information beyond workflow_name
|
|
312
|
+
Only indexes top-level process fields (no subscriptions or steps)
|
|
313
|
+
to keep the index size manageable.
|
|
315
314
|
"""
|
|
316
315
|
|
|
316
|
+
EXCLUDED_FIELDS = {"traceback", "failed_reason"}
|
|
317
|
+
|
|
318
|
+
@classmethod
|
|
319
|
+
def _load_model(cls, entity: ProcessTable) -> ProcessBaseSchema | None:
|
|
320
|
+
return cls._load_model_with_schema(entity, ProcessBaseSchema, "process_id")
|
|
321
|
+
|
|
317
322
|
@classmethod
|
|
318
|
-
def
|
|
319
|
-
"""
|
|
320
|
-
|
|
323
|
+
def get_fields(cls, entity: ProcessTable, pk_name: str, root_name: str) -> list[ExtractedField]: # type: ignore[override]
|
|
324
|
+
"""Extract fields from process, excluding fields in EXCLUDED_FIELDS."""
|
|
325
|
+
try:
|
|
326
|
+
model = cls._load_model(entity)
|
|
327
|
+
if model is None:
|
|
328
|
+
return []
|
|
329
|
+
|
|
330
|
+
return sorted(
|
|
331
|
+
(
|
|
332
|
+
field
|
|
333
|
+
for field in cls.traverse(model, root_name)
|
|
334
|
+
if field.path.split(LTREE_SEPARATOR)[-1] not in cls.EXCLUDED_FIELDS
|
|
335
|
+
),
|
|
336
|
+
key=lambda f: f.path,
|
|
337
|
+
)
|
|
338
|
+
|
|
339
|
+
except (ProductNotInRegistryError, ModelLoadError) as e:
|
|
340
|
+
entity_id = getattr(entity, pk_name, "unknown")
|
|
341
|
+
logger.error(f"Failed to extract fields from {entity.__class__.__name__}", id=str(entity_id), error=str(e))
|
|
342
|
+
return []
|
|
321
343
|
|
|
322
344
|
|
|
323
345
|
class WorkflowTraverser(BaseTraverser):
|