flock-core 0.4.513__tar.gz → 0.4.514__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.
Potentially problematic release.
This version of flock-core might be problematic. Click here for more details.
- {flock_core-0.4.513 → flock_core-0.4.514}/PKG-INFO +4 -1
- {flock_core-0.4.513 → flock_core-0.4.514}/pyproject.toml +4 -1
- flock_core-0.4.514/src/flock/core/execution/opik_executor.py +103 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/interpreter/python_interpreter.py +87 -81
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/mixin/dspy_integration.py +1 -1
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/util/input_resolver.py +1 -1
- flock_core-0.4.514/src/flock/tools/code_tools.py +167 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/app/api/execution.py +1 -1
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/app/main.py +1 -1
- {flock_core-0.4.513 → flock_core-0.4.514}/uv.lock +22 -2
- flock_core-0.4.513/src/flock/tools/code_tools.py +0 -56
- {flock_core-0.4.513 → flock_core-0.4.514}/.devcontainer/devcontainer.json +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/.env_template +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/.github/ISSUE_TEMPLATE/documentation_improvement.yaml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/.github/ISSUE_TEMPLATE/question_support_request.yaml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/.github/ISSUE_TEMPLATE/vulnerability_report.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/.github/workflows/.gitkeep +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/.github/workflows/deploy-documentation.yml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/.github/workflows/deploy-whiteduck-pypi.yml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/.gitignore +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/.gitmodules +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/.vscode/launch.json +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/.vscode/settings.json +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/.vscode/tasks.json +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/CODE_OF_CONDUCT.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/CONTRIBUTING.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/LICENSE +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/README.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/SECURITY.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/about/changelog.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/about/contributing.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/assets/drawio/architecture.drawio +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/assets/images/cli_outputs/out.png +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/assets/images/components_chart.png +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/assets/images/examples/01_01.png +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/assets/images/examples/01_02.png +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/assets/images/examples/01_03.png +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/assets/images/examples/01_04.png +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/assets/images/examples/01_05.png +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/assets/images/examples/01_06.png +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/assets/images/flock.png +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/assets/images/flock_cli.png +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/assets/images/flow_chart.png +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/assets/images/getting-started/first_agent_00.png +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/assets/images/hummingbird.png +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/assets/images/icon.png +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/assets/images/icon.png~ +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/assets/images/logo.png +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/assets/images/magpie.png +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/assets/images/memory_concepts.png +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/assets/images/memory_flow.png +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/assets/images/memory_flow_chart.png +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/assets/images/readme_output.png +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/components/evaluators.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/components/index.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/components/modules.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/components/tools.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/core-concepts/agents.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/core-concepts/declarative.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/core-concepts/di.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/core-concepts/index.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/core-concepts/workflows.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/create_doc_boilerplate.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/deployment/index.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/deployment/temporal.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/getting-started/concepts.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/getting-started/configuration.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/getting-started/index.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/getting-started/installation.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/getting-started/quickstart.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/guides/chaining-agents.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/guides/custom-endpoints.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/guides/index.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/guides/temporal-configuration.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/index.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/interacting-with-flock/cli-tool.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/interacting-with-flock/index.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/interacting-with-flock/interactive-cli.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/interacting-with-flock/programmatic.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/interacting-with-flock/rest-api.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/interacting-with-flock/web-ui.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/reference/flock_agent.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/reference/index.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/release-notes/magpie.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/stylesheets/extra.css +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/docs/wd-di.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/mkdocs.yml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/requirements.txt +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/scripts/code_collector.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/scripts/create_docs.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/scripts/ensure_uv.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/__init__.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/adapter/__init__.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/adapter/azure_adapter.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/adapter/chroma_adapter.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/adapter/faiss_adapter.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/adapter/pinecone_adapter.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/adapter/vector_base.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/cli/assets/release_notes.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/cli/config.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/cli/constants.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/cli/create_agent.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/cli/create_flock.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/cli/execute_flock.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/cli/load_agent.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/cli/load_examples.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/cli/load_flock.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/cli/load_release_notes.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/cli/loaded_flock_cli.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/cli/manage_agents.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/cli/registry_management.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/cli/runner.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/cli/settings.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/cli/utils.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/cli/view_results.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/cli/yaml_editor.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/config.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/__init__.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/api/__init__.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/api/custom_endpoint.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/api/endpoints.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/api/main.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/api/models.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/api/run_store.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/api/runner.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/api/service.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/config/flock_agent_config.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/config/scheduled_agent_config.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/context/context.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/context/context_manager.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/context/context_vars.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/evaluation/utils.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/execution/batch_executor.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/execution/evaluation_executor.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/execution/local_executor.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/execution/temporal_executor.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/flock.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/flock_agent.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/flock_evaluator.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/flock_factory.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/flock_module.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/flock_registry.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/flock_router.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/flock_scheduler.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/flock_server_manager.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/logging/__init__.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/logging/formatters/enum_builder.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/logging/formatters/theme_builder.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/logging/formatters/themed_formatter.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/logging/formatters/themes.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/logging/logging.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/logging/span_middleware/baggage_span_processor.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/logging/telemetry.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/logging/telemetry_exporter/base_exporter.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/logging/telemetry_exporter/file_exporter.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/logging/telemetry_exporter/sqlite_exporter.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/logging/trace_and_logged.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/mcp/__init__.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/mcp/flock_mcp_server.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/mcp/flock_mcp_tool_base.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/mcp/mcp_client.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/mcp/mcp_client_manager.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/mcp/mcp_config.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/mcp/types/__init__.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/mcp/types/callbacks.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/mcp/types/factories.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/mcp/types/handlers.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/mcp/types/types.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/mcp/util/__init__.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/mcp/util/helpers.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/mixin/prompt_parser.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/serialization/__init__.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/serialization/callable_registry.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/serialization/flock_serializer.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/serialization/json_encoder.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/serialization/secure_serializer.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/serialization/serializable.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/serialization/serialization_utils.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/util/cli_helper.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/util/file_path_utils.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/util/hydrator.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/core/util/loader.py +0 -0
- /flock_core-0.4.513/src/flock/core/util/spliter.py → /flock_core-0.4.514/src/flock/core/util/splitter.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/di.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/evaluators/__init__.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/evaluators/declarative/__init__.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/evaluators/declarative/declarative_evaluator.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/evaluators/memory/memory_evaluator.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/evaluators/test/test_case_evaluator.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/evaluators/zep/zep_evaluator.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/mcp/servers/sse/__init__.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/mcp/servers/sse/flock_sse_server.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/mcp/servers/stdio/__init__.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/mcp/servers/stdio/flock_stdio_server.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/mcp/servers/streamable_http/__init__.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/mcp/servers/streamable_http/flock_streamable_http_server.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/mcp/servers/websockets/__init__.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/mcp/servers/websockets/flock_websocket_server.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/modules/__init__.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/modules/assertion/__init__.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/modules/assertion/assertion_module.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/modules/callback/__init__.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/modules/callback/callback_module.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/modules/enterprise_memory/README.md +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/modules/enterprise_memory/enterprise_memory_module.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/modules/mem0/__init__.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/modules/mem0/mem0_module.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/modules/mem0_async/__init__.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/modules/mem0_async/async_mem0_module.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/modules/memory/__init__.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/modules/memory/memory_module.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/modules/memory/memory_parser.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/modules/memory/memory_storage.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/modules/output/__init__.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/modules/output/output_module.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/modules/performance/__init__.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/modules/performance/metrics_module.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/modules/zep/__init__.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/modules/zep/zep_module.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/platform/docker_tools.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/platform/jaeger_install.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/routers/__init__.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/routers/agent/__init__.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/routers/agent/agent_router.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/routers/agent/handoff_agent.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/routers/conditional/conditional_router.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/routers/default/__init__.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/routers/default/default_router.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/routers/feedback/feedback_router.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/routers/list_generator/list_generator_router.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/routers/llm/__init__.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/routers/llm/llm_router.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/3024-day.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/3024-night.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/aardvark-blue.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/abernathy.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/adventure.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/adventuretime.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/afterglow.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/alabaster.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/alienblood.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/andromeda.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/apple-classic.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/apple-system-colors.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/arcoiris.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/argonaut copy.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/argonaut.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/arthur.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/ateliersulphurpool.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/atom.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/atom_test.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/atomonelight.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/aurora.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/ayu copy.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/ayu-light.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/ayu-mirage.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/ayu.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/banana-blueberry.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/batman.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/belafonte-day.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/belafonte-night.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/birdsofparadise.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/blazer.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/blue-matrix.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/blueberrypie.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/bluedolphin.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/blulocodark.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/blulocolight.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/borland.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/breeze.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/bright-lights.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/broadcast.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/brogrammer.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/builtin-dark.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/builtin-light.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/builtin-pastel-dark.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/builtin-solarized-dark.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/builtin-solarized-light.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/builtin-tango-dark.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/builtin-tango-light.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/c64.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/calamity.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/catppuccin-frappe.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/catppuccin-latte.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/catppuccin-macchiato.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/catppuccin-mocha.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/cga.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/chalk.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/chalkboard.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/challengerdeep.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/chester.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/ciapre.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/clrs.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/cobalt-neon.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/cobalt2.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/coffee-theme.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/crayonponyfish.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/cutiepro.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/cyberdyne.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/cyberpunk.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/cyberpunkscarletprotocol.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/dark+.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/dark-pastel.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/darkermatrix.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/darkmatrix.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/darkside.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/dayfox.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/deep.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/desert.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/dimidium.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/dimmedmonokai.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/django.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/djangorebornagain.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/djangosmooth.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/doom-peacock.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/doomone.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/dotgov.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/dracula+.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/dracula.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/duckbones.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/duotone-dark.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/earthsong.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/elemental.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/elementary.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/encom.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/espresso-libre.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/espresso.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/everblush.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/fahrenheit.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/fairyfloss.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/farmhouse-dark.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/farmhouse-light.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/fideloper.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/firefly-traditional.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/firefoxdev.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/firewatch.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/fishtank.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/flat.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/flatland.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/flexoki-dark.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/flexoki-light.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/floraverse.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/forestblue.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/framer.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/frontenddelight.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/funforrest.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/galaxy.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/galizur.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/github-dark.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/github.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/glacier.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/grape.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/grass.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/grey-green.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/gruber-darker.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/gruvboxdark.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/gruvboxdarkhard.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/gruvboxlight.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/guezwhoz.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/hacktober.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/hardcore.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/harper.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/hax0r-blue.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/hax0r-gr33n.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/hax0r-r3d.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/highway.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/hipster-green.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/hivacruz.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/homebrew.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/hopscotch.256.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/hopscotch.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/hurtado.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/hybrid.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/ic-green-ppl.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/ic-orange-ppl.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/iceberg-dark.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/iceberg-light.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/idea.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/idletoes.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/ir-black.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/iterm2-dark-background.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/iterm2-default.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/iterm2-light-background.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/iterm2-pastel-dark-background.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/iterm2-smoooooth.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/iterm2-solarized-dark.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/iterm2-solarized-light.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/iterm2-tango-dark.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/iterm2-tango-light.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/jackie-brown.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/japanesque.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/jellybeans.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/jetbrains-darcula.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/jubi.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/kanagawabones.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/kibble.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/kolorit.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/konsolas.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/kurokula.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/lab-fox.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/laser.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/later-this-evening.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/lavandula.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/liquidcarbon.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/liquidcarbontransparent.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/liquidcarbontransparentinverse.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/lovelace.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/man-page.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/mariana.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/material.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/materialdark.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/materialdarker.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/materialdesigncolors.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/materialocean.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/mathias.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/matrix.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/medallion.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/mellifluous.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/midnight-in-mojave.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/mirage.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/misterioso.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/molokai.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/monalisa.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/monokai-remastered.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/monokai-soda.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/monokai-vivid.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/n0tch2k.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/neobones-dark.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/neobones-light.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/neon.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/neopolitan.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/neutron.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/night-owlish-light.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/nightfox.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/nightlion-v1.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/nightlion-v2.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/niji.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/nocturnal-winter.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/nord-light.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/nord.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/novel.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/nvimdark.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/nvimlight.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/obsidian.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/ocean.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/oceanic-next.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/oceanicmaterial.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/ollie.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/onehalfdark.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/onehalflight.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/operator-mono-dark.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/overnight-slumber.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/oxocarbon.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/palenighthc.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/pandora.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/paraiso-dark.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/paulmillr.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/pencildark.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/pencillight.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/peppermint.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/piatto-light.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/pnevma.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/popping-and-locking.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/primary.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/pro-light.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/pro.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/purple-rain.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/purplepeter.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/rapture.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/raycast-dark.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/raycast-light.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/rebecca.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/red-alert.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/red-planet.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/red-sands.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/relaxed.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/retro.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/rippedcasts.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/rose-pine-dawn.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/rose-pine-moon.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/rose-pine.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/rouge-2.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/royal.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/ryuuko.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/sakura.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/scarlet-protocol.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/seafoam-pastel.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/seashells.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/seoulbones-dark.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/seoulbones-light.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/seti.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/shades-of-purple.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/shaman.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/slate.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/sleepyhollow.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/smyck.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/snazzy.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/softserver.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/solarized-darcula.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/solarized-dark---patched.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/solarized-dark-higher-contrast.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/spacedust.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/spacegray-eighties-dull.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/spacegray-eighties.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/spacegray.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/spiderman.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/spring.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/square.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/sublette.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/subliminal.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/sugarplum.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/sundried.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/symfonic.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/synthwave-everything.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/synthwave.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/synthwavealpha.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/tango-adapted.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/tango-half-adapted.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/teerb.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/terafox.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/terminal-basic.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/thayer-bright.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/the-hulk.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/tinacious-design-(dark).toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/tinacious-design-(light).toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/tokyonight-day.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/tokyonight-storm.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/tokyonight.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/tomorrow-night-blue.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/tomorrow-night-bright.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/tomorrow-night-burns.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/tomorrow-night-eighties.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/tomorrow-night.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/tomorrow.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/toychest.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/treehouse.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/twilight.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/ubuntu.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/ultradark.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/ultraviolent.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/underthesea.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/unikitty.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/urple.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/vaughn.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/vesper.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/vibrantink.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/vimbones.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/violet-dark.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/violet-light.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/warmneon.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/wez.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/whimsy.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/wildcherry.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/wilmersdorf.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/wombat.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/wryan.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/xcodedark.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/xcodedarkhc.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/xcodelight.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/xcodelighthc.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/xcodewwdc.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/zenbones-dark.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/zenbones-light.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/zenbones.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/zenburn.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/zenburned.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/zenwritten-dark.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/themes/zenwritten-light.toml +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/tools/__init__.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/tools/azure_tools.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/tools/file_tools.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/tools/github_tools.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/tools/markdown_tools.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/tools/system_tools.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/tools/text_tools.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/tools/web_tools.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/tools/zendesk_tools.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/__init__.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/app/__init__.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/app/api/__init__.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/app/api/agent_management.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/app/api/flock_management.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/app/api/registry_viewer.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/app/chat.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/app/config.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/app/dependencies.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/app/models_ui.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/app/services/__init__.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/app/services/flock_service.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/app/services/sharing_models.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/app/services/sharing_store.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/app/templates/theme_mapper.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/app/theme_mapper.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/app/utils.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/run.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/static/css/chat.css +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/static/css/components.css +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/static/css/header.css +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/static/css/layout.css +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/static/css/sidebar.css +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/static/css/two-pane.css +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/base.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/chat.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/chat_settings.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/flock_editor.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/index.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/partials/_agent_detail_form.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/partials/_agent_list.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/partials/_agent_manager_view.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/partials/_agent_tools_checklist.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/partials/_chat_container.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/partials/_chat_messages.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/partials/_chat_settings_form.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/partials/_create_flock_form.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/partials/_dashboard_flock_detail.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/partials/_dashboard_flock_file_list.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/partials/_dashboard_flock_properties_preview.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/partials/_dashboard_upload_flock_form.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/partials/_dynamic_input_form_content.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/partials/_env_vars_table.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/partials/_execution_form.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/partials/_execution_view_container.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/partials/_flock_file_list.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/partials/_flock_properties_form.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/partials/_flock_upload_form.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/partials/_header_flock_status.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/partials/_load_manager_view.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/partials/_registry_table.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/partials/_registry_viewer_content.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/partials/_results_display.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/partials/_settings_env_content.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/partials/_settings_theme_content.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/partials/_settings_view.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/partials/_share_chat_link_snippet.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/partials/_share_link_snippet.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/partials/_sidebar.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/partials/_structured_data_view.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/partials/_theme_preview.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/registry_viewer.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/webapp/templates/shared_run_page.html +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/workflow/__init__.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/workflow/activities.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/workflow/agent_activities.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/workflow/agent_execution_activity.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/workflow/flock_workflow.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/workflow/temporal_config.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/src/flock/workflow/temporal_setup.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/test_store_integration.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/tests/__init__.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/tests/api/test_custom_endpoints.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/tests/core/test_flock_batch.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/tests/core/test_flock_core.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/tests/integration/__init__.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/tests/integration/test_shared_link_store.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/tests/modules/test_enterprise_memory_store.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/tests/modules/test_vector_adapters.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/tests/serialization/__init__.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/tests/serialization/test_enhanced_serialization.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/tests/serialization/test_file_path_serialization.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/tests/serialization/test_flock_serializer.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/tests/serialization/test_nested_serialization.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/tests/serialization/test_yaml_serialization.py +0 -0
- {flock_core-0.4.513 → flock_core-0.4.514}/tests/tools/test_zendesk_tools.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: flock-core
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.514
|
|
4
4
|
Summary: Declarative LLM Orchestration at Scale
|
|
5
5
|
Author-email: Andre Ratzenberger <andre.ratzenberger@whiteduck.de>
|
|
6
6
|
License-File: LICENSE
|
|
@@ -69,6 +69,7 @@ Provides-Extra: all-tools
|
|
|
69
69
|
Requires-Dist: azure-identity>=1.23.0; extra == 'all-tools'
|
|
70
70
|
Requires-Dist: azure-search-documents>=11.5.2; extra == 'all-tools'
|
|
71
71
|
Requires-Dist: azure-storage-blob>=12.25.1; extra == 'all-tools'
|
|
72
|
+
Requires-Dist: docker>=7.1.0; extra == 'all-tools'
|
|
72
73
|
Requires-Dist: docling>=2.18.0; extra == 'all-tools'
|
|
73
74
|
Requires-Dist: duckduckgo-search>=7.3.2; extra == 'all-tools'
|
|
74
75
|
Requires-Dist: markdownify>=0.14.1; extra == 'all-tools'
|
|
@@ -83,6 +84,8 @@ Requires-Dist: docling>=2.18.0; extra == 'basic-tools'
|
|
|
83
84
|
Requires-Dist: duckduckgo-search>=7.3.2; extra == 'basic-tools'
|
|
84
85
|
Requires-Dist: markdownify>=0.14.1; extra == 'basic-tools'
|
|
85
86
|
Requires-Dist: tavily-python>=0.5.0; extra == 'basic-tools'
|
|
87
|
+
Provides-Extra: code-tools
|
|
88
|
+
Requires-Dist: docker>=7.1.0; extra == 'code-tools'
|
|
86
89
|
Provides-Extra: evaluation
|
|
87
90
|
Requires-Dist: datasets>=3.2.0; extra == 'evaluation'
|
|
88
91
|
Requires-Dist: rouge-score>=0.1.2; extra == 'evaluation'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "flock-core"
|
|
3
|
-
version = "0.4.
|
|
3
|
+
version = "0.4.514"
|
|
4
4
|
description = "Declarative LLM Orchestration at Scale"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
authors = [
|
|
@@ -54,6 +54,7 @@ dependencies = [
|
|
|
54
54
|
"opik>=1.7.26",
|
|
55
55
|
"azure-data-tables>=12.7.0",
|
|
56
56
|
"croniter>=6.0.0",
|
|
57
|
+
|
|
57
58
|
]
|
|
58
59
|
|
|
59
60
|
[project.optional-dependencies]
|
|
@@ -69,6 +70,7 @@ azure-tools = [
|
|
|
69
70
|
"azure-search-documents>=11.5.2",
|
|
70
71
|
]
|
|
71
72
|
llm-tools = ["nltk>=3.9.1"]
|
|
73
|
+
code-tools = [ "docker>=7.1.0"]
|
|
72
74
|
memory = [
|
|
73
75
|
"zep-python>=2.0.2",
|
|
74
76
|
"mem0ai[graph]>=0.1.101",
|
|
@@ -89,6 +91,7 @@ all-tools = [
|
|
|
89
91
|
"azure-storage-blob>=12.25.1",
|
|
90
92
|
"azure-search-documents>=11.5.2",
|
|
91
93
|
"nltk>=3.9.1",
|
|
94
|
+
"docker>=7.1.0",
|
|
92
95
|
]
|
|
93
96
|
all = [
|
|
94
97
|
"docling>=2.18.0",
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# src/flock/core/execution/evaluation_processor.py
|
|
2
|
+
"""Contains the EvaluationProcessor class responsible for evaluating Flock agents
|
|
3
|
+
against datasets using various metrics.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from pathlib import Path
|
|
7
|
+
from typing import (
|
|
8
|
+
TYPE_CHECKING,
|
|
9
|
+
Any,
|
|
10
|
+
Union,
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
from opik import Opik
|
|
14
|
+
from pandas import DataFrame
|
|
15
|
+
|
|
16
|
+
# Conditional pandas import
|
|
17
|
+
try:
|
|
18
|
+
import pandas as pd
|
|
19
|
+
|
|
20
|
+
PANDAS_AVAILABLE = True
|
|
21
|
+
except ImportError:
|
|
22
|
+
pd = None # type: ignore
|
|
23
|
+
PANDAS_AVAILABLE = False
|
|
24
|
+
|
|
25
|
+
# Box for results
|
|
26
|
+
from datasets import Dataset as HFDataset
|
|
27
|
+
|
|
28
|
+
from flock.core.evaluation.utils import (
|
|
29
|
+
normalize_dataset,
|
|
30
|
+
# Import metric calculation/aggregation helpers
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
# Flock core imports
|
|
34
|
+
from flock.core.logging.logging import get_logger
|
|
35
|
+
|
|
36
|
+
if TYPE_CHECKING:
|
|
37
|
+
from flock.core.flock import Flock
|
|
38
|
+
from flock.core.flock_agent import FlockAgent
|
|
39
|
+
# Conditional types
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
logger = get_logger("execution.opik")
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
class OpikExecutor:
|
|
46
|
+
"""Handles the evaluation of Flock agents against datasets."""
|
|
47
|
+
|
|
48
|
+
def __init__(self, flock_instance: "Flock"):
|
|
49
|
+
"""Initializes the EvaluationProcessor.
|
|
50
|
+
|
|
51
|
+
Args:
|
|
52
|
+
flock_instance: The Flock instance this processor will use.
|
|
53
|
+
"""
|
|
54
|
+
self.flock = flock_instance
|
|
55
|
+
|
|
56
|
+
async def evaluate_with_opik(
|
|
57
|
+
self,
|
|
58
|
+
dataset: str | Path | list[dict[str, Any]] | DataFrame | HFDataset,
|
|
59
|
+
start_agent: Union["FlockAgent", str],
|
|
60
|
+
input_mapping: dict[str, str],
|
|
61
|
+
answer_mapping: dict[str, str],) -> DataFrame | list[dict[str, Any]]:
|
|
62
|
+
"""Evaluates the Flock's performance against a dataset asynchronously."""
|
|
63
|
+
logger.info(f"Evaluating Flock's performance against dataset: {dataset}")
|
|
64
|
+
|
|
65
|
+
# Evaluation task
|
|
66
|
+
def evaluation_task(dataset_item):
|
|
67
|
+
flock_result = self.flock.run(start_agent=start_agent, input=dataset_item, box_result=False)
|
|
68
|
+
|
|
69
|
+
result = {
|
|
70
|
+
"input": dataset_item.get("test"),
|
|
71
|
+
"output": flock_result.get("answer"),
|
|
72
|
+
"context": ["placeholder string"]
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
return result
|
|
76
|
+
|
|
77
|
+
start_agent_name = (
|
|
78
|
+
start_agent.name if hasattr(start_agent, "name") else start_agent
|
|
79
|
+
)
|
|
80
|
+
dataset_name = str(dataset)
|
|
81
|
+
|
|
82
|
+
# --- 1. Normalize Dataset ---
|
|
83
|
+
try:
|
|
84
|
+
df = normalize_dataset(dataset) # Uses helper
|
|
85
|
+
if df is None or df.empty:
|
|
86
|
+
raise ValueError(
|
|
87
|
+
"Provided dataset is empty or could not be normalized."
|
|
88
|
+
)
|
|
89
|
+
logger.info(f"Normalized dataset with {len(df)} items.")
|
|
90
|
+
except Exception as e:
|
|
91
|
+
logger.error(
|
|
92
|
+
f"Failed to load or normalize dataset: {e}", exc_info=True
|
|
93
|
+
)
|
|
94
|
+
raise ValueError(f"Dataset processing failed: {e}") from e
|
|
95
|
+
|
|
96
|
+
logger.info(f"type(df): {type(df)}") # ➜ <class 'pandas.core.frame.DataFrame'>
|
|
97
|
+
logger.info(f"df.shape: {df.shape}") # e.g. (123456, N_COLUMNS+2)
|
|
98
|
+
logger.info(f"df['split'].value_counts(): {df['split'].value_counts()}")
|
|
99
|
+
logger.info(f"df['config'].unique(): {df['config'].unique()}")
|
|
100
|
+
client = Opik()
|
|
101
|
+
dataset = client.get_or_create_dataset(name=dataset_name)
|
|
102
|
+
dataset.insert_from_pandas(dataframe=df, ignore_keys=["source"])
|
|
103
|
+
logger.info(f"Imported dataset to Opik")
|
|
@@ -37,6 +37,14 @@ class InterpreterError(ValueError):
|
|
|
37
37
|
|
|
38
38
|
pass
|
|
39
39
|
|
|
40
|
+
class BreakException(Exception):
|
|
41
|
+
"""Signal a 'break' from the simulated loop."""
|
|
42
|
+
pass
|
|
43
|
+
|
|
44
|
+
class ContinueException(Exception):
|
|
45
|
+
"""Signal a 'continue' in the simulated loop."""
|
|
46
|
+
pass
|
|
47
|
+
|
|
40
48
|
|
|
41
49
|
class PythonInterpreter:
|
|
42
50
|
r"""A customized python interpreter to control the execution of
|
|
@@ -44,8 +52,6 @@ class PythonInterpreter:
|
|
|
44
52
|
functions given in action space and import white list. It also supports
|
|
45
53
|
fuzzy variable matching to receive uncertain input variable name.
|
|
46
54
|
|
|
47
|
-
[Documentation omitted for brevity]
|
|
48
|
-
|
|
49
55
|
Args:
|
|
50
56
|
action_space (Dict[str, Any]): A dictionary mapping action names to
|
|
51
57
|
their corresponding functions or objects.
|
|
@@ -76,6 +82,9 @@ class PythonInterpreter:
|
|
|
76
82
|
"enum",
|
|
77
83
|
"json",
|
|
78
84
|
"ast",
|
|
85
|
+
"numpy",
|
|
86
|
+
"sympy",
|
|
87
|
+
"pandas",
|
|
79
88
|
] # default imports
|
|
80
89
|
self.verbose = verbose
|
|
81
90
|
|
|
@@ -95,50 +104,57 @@ class PythonInterpreter:
|
|
|
95
104
|
|
|
96
105
|
[Documentation omitted for brevity]
|
|
97
106
|
"""
|
|
98
|
-
if state is not None:
|
|
99
|
-
self.state.update(state)
|
|
100
|
-
if fuzz_state is not None:
|
|
101
|
-
self.fuzz_state.update(fuzz_state)
|
|
102
|
-
|
|
103
107
|
try:
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
f"Syntax error in code at line {e.lineno}: {error_line}\nError: {e}"
|
|
109
|
-
)
|
|
108
|
+
if state is not None:
|
|
109
|
+
self.state.update(state)
|
|
110
|
+
if fuzz_state is not None:
|
|
111
|
+
self.fuzz_state.update(fuzz_state)
|
|
110
112
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
113
|
+
try:
|
|
114
|
+
expression = ast.parse(code)
|
|
115
|
+
except SyntaxError as e:
|
|
116
|
+
error_line = code.splitlines()[e.lineno - 1]
|
|
117
|
+
self.log(
|
|
118
|
+
f"[Interpreter] Syntax error in code at line {e.lineno}: {error_line}\nError: {e}")
|
|
119
|
+
return(
|
|
120
|
+
f"Syntax error in code at line {e.lineno}: {error_line}\nError: {e}"
|
|
121
|
+
)
|
|
114
122
|
|
|
115
|
-
|
|
116
|
-
# Log the AST node being executed (using unparse if available)
|
|
123
|
+
result = None
|
|
117
124
|
if self.verbose:
|
|
118
|
-
|
|
119
|
-
node_repr = ast.unparse(node)
|
|
120
|
-
except Exception:
|
|
121
|
-
node_repr = ast.dump(node)
|
|
122
|
-
self.log(f"[Interpreter] Executing node {idx}: {node_repr}")
|
|
125
|
+
self.log("[Interpreter] Starting code execution...")
|
|
123
126
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
except InterpreterError as e:
|
|
127
|
-
if not keep_state:
|
|
128
|
-
self.clear_state()
|
|
129
|
-
msg = f"Evaluation of the code stopped at node {idx}. See:\n{e}"
|
|
130
|
-
raise InterpreterError(msg)
|
|
131
|
-
if line_result is not None:
|
|
132
|
-
result = line_result
|
|
127
|
+
for idx, node in enumerate(expression.body):
|
|
128
|
+
# Log the AST node being executed (using unparse if available)
|
|
133
129
|
if self.verbose:
|
|
134
|
-
|
|
130
|
+
try:
|
|
131
|
+
node_repr = ast.unparse(node)
|
|
132
|
+
except Exception:
|
|
133
|
+
node_repr = ast.dump(node)
|
|
134
|
+
self.log(f"[Interpreter] Executing node {idx}: {node_repr}")
|
|
135
135
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
136
|
+
try:
|
|
137
|
+
line_result = self._execute_ast(node)
|
|
138
|
+
except InterpreterError as e:
|
|
139
|
+
if not keep_state:
|
|
140
|
+
self.clear_state()
|
|
141
|
+
msg = f"Evaluation of the code stopped at node {idx}. See:\n{e}"
|
|
142
|
+
return msg
|
|
143
|
+
if line_result is not None:
|
|
144
|
+
result = line_result
|
|
145
|
+
if self.verbose:
|
|
146
|
+
self.log(f"[Interpreter] Node {idx} result: {result}")
|
|
140
147
|
|
|
141
|
-
|
|
148
|
+
if self.verbose:
|
|
149
|
+
self.log("[Interpreter] Finished code execution.")
|
|
150
|
+
if not keep_state:
|
|
151
|
+
self.clear_state()
|
|
152
|
+
|
|
153
|
+
return result
|
|
154
|
+
except Exception as e:
|
|
155
|
+
self.log(
|
|
156
|
+
f"[Interpreter] Error during code execution: {e}")
|
|
157
|
+
return f"[Interpreter] Error during code execution: {e}"
|
|
142
158
|
|
|
143
159
|
def clear_state(self) -> None:
|
|
144
160
|
r"""Initialize :obj:`state` and :obj:`fuzz_state`"""
|
|
@@ -236,7 +252,7 @@ class PythonInterpreter:
|
|
|
236
252
|
elif isinstance(expression, ast.Assert):
|
|
237
253
|
return self._execute_assert(expression)
|
|
238
254
|
else:
|
|
239
|
-
|
|
255
|
+
return(
|
|
240
256
|
f"{expression.__class__.__name__} is not supported."
|
|
241
257
|
)
|
|
242
258
|
|
|
@@ -253,17 +269,17 @@ class PythonInterpreter:
|
|
|
253
269
|
self.state[target.id] = value
|
|
254
270
|
elif isinstance(target, ast.Tuple):
|
|
255
271
|
if not isinstance(value, tuple):
|
|
256
|
-
|
|
272
|
+
return(
|
|
257
273
|
f"Expected type tuple, but got {value.__class__.__name__} instead."
|
|
258
274
|
)
|
|
259
275
|
if len(target.elts) != len(value):
|
|
260
|
-
|
|
276
|
+
return(
|
|
261
277
|
f"Expected {len(target.elts)} values but got {len(value)}."
|
|
262
278
|
)
|
|
263
279
|
for t, v in zip(target.elts, value):
|
|
264
280
|
self.state[self._execute_ast(t)] = v
|
|
265
281
|
else:
|
|
266
|
-
|
|
282
|
+
return(
|
|
267
283
|
f"Unsupported variable type. Expected ast.Name or ast.Tuple, got {target.__class__.__name__} instead."
|
|
268
284
|
)
|
|
269
285
|
|
|
@@ -297,7 +313,7 @@ class PythonInterpreter:
|
|
|
297
313
|
isinstance(current_value, (int, float))
|
|
298
314
|
and isinstance(increment_value, (int, float))
|
|
299
315
|
):
|
|
300
|
-
|
|
316
|
+
return(
|
|
301
317
|
f"Invalid types for augmented assignment: {type(current_value)}, {type(increment_value)}"
|
|
302
318
|
)
|
|
303
319
|
if isinstance(augassign.op, ast.Add):
|
|
@@ -309,7 +325,7 @@ class PythonInterpreter:
|
|
|
309
325
|
elif isinstance(augassign.op, ast.Div):
|
|
310
326
|
new_value = current_value / increment_value
|
|
311
327
|
else:
|
|
312
|
-
|
|
328
|
+
return(
|
|
313
329
|
f"Augmented assignment operator {augassign.op} is not supported"
|
|
314
330
|
)
|
|
315
331
|
self._assign(augassign.target, new_value)
|
|
@@ -319,7 +335,7 @@ class PythonInterpreter:
|
|
|
319
335
|
index = self._execute_ast(subscript.slice)
|
|
320
336
|
value = self._execute_ast(subscript.value)
|
|
321
337
|
if not isinstance(subscript.ctx, ast.Load):
|
|
322
|
-
|
|
338
|
+
return(
|
|
323
339
|
f"{subscript.ctx.__class__.__name__} is not supported for subscript."
|
|
324
340
|
)
|
|
325
341
|
if isinstance(value, (list, tuple)):
|
|
@@ -330,7 +346,7 @@ class PythonInterpreter:
|
|
|
330
346
|
close_matches = difflib.get_close_matches(index, list(value.keys()))
|
|
331
347
|
if len(close_matches) > 0:
|
|
332
348
|
return value[close_matches[0]]
|
|
333
|
-
|
|
349
|
+
return(f"Could not index {value} with '{index}'.")
|
|
334
350
|
|
|
335
351
|
def _execute_name(self, name: ast.Name):
|
|
336
352
|
if name.id in dir(builtins):
|
|
@@ -340,7 +356,7 @@ class PythonInterpreter:
|
|
|
340
356
|
elif isinstance(name.ctx, ast.Load):
|
|
341
357
|
return self._get_value_from_state(name.id)
|
|
342
358
|
else:
|
|
343
|
-
|
|
359
|
+
return(f"{name.ctx} is not supported.")
|
|
344
360
|
|
|
345
361
|
def _execute_condition(self, condition):
|
|
346
362
|
if isinstance(condition, ast.BoolOp):
|
|
@@ -355,12 +371,12 @@ class PythonInterpreter:
|
|
|
355
371
|
]
|
|
356
372
|
return any(results)
|
|
357
373
|
else:
|
|
358
|
-
|
|
374
|
+
return(
|
|
359
375
|
f"Boolean operator {condition.op} is not supported"
|
|
360
376
|
)
|
|
361
377
|
elif isinstance(condition, ast.Compare):
|
|
362
378
|
if len(condition.ops) > 1:
|
|
363
|
-
|
|
379
|
+
return(
|
|
364
380
|
"Cannot evaluate conditions with multiple operators"
|
|
365
381
|
)
|
|
366
382
|
left = self._execute_ast(condition.left)
|
|
@@ -387,7 +403,7 @@ class PythonInterpreter:
|
|
|
387
403
|
elif isinstance(comparator, ast.NotIn):
|
|
388
404
|
return left not in right
|
|
389
405
|
else:
|
|
390
|
-
|
|
406
|
+
return("Unsupported comparison operator")
|
|
391
407
|
elif isinstance(condition, ast.UnaryOp):
|
|
392
408
|
return self._execute_unaryop(condition)
|
|
393
409
|
elif isinstance(condition, ast.Name) or isinstance(condition, ast.Call):
|
|
@@ -395,7 +411,7 @@ class PythonInterpreter:
|
|
|
395
411
|
elif isinstance(condition, ast.Constant):
|
|
396
412
|
return bool(condition.value)
|
|
397
413
|
else:
|
|
398
|
-
|
|
414
|
+
return(
|
|
399
415
|
f"Unsupported condition type: {type(condition).__name__}"
|
|
400
416
|
)
|
|
401
417
|
|
|
@@ -428,7 +444,7 @@ class PythonInterpreter:
|
|
|
428
444
|
|
|
429
445
|
def _execute_import_from(self, import_from: ast.ImportFrom):
|
|
430
446
|
if import_from.module is None:
|
|
431
|
-
|
|
447
|
+
return('"from . import" is not supported.')
|
|
432
448
|
for import_name in import_from.names:
|
|
433
449
|
full_name = import_from.module + f".{import_name.name}"
|
|
434
450
|
self._validate_import(full_name)
|
|
@@ -440,12 +456,6 @@ class PythonInterpreter:
|
|
|
440
456
|
# We keep both as provided, but you may wish to consolidate these in your code.
|
|
441
457
|
|
|
442
458
|
def _execute_for(self, for_statement: ast.For):
|
|
443
|
-
class BreakException(Exception):
|
|
444
|
-
pass
|
|
445
|
-
|
|
446
|
-
class ContinueException(Exception):
|
|
447
|
-
pass
|
|
448
|
-
|
|
449
459
|
result = None
|
|
450
460
|
try:
|
|
451
461
|
for value in self._execute_ast(for_statement.iter):
|
|
@@ -462,12 +472,6 @@ class PythonInterpreter:
|
|
|
462
472
|
return result
|
|
463
473
|
|
|
464
474
|
def _execute_while(self, while_statement: ast.While):
|
|
465
|
-
class BreakException(Exception):
|
|
466
|
-
pass
|
|
467
|
-
|
|
468
|
-
class ContinueException(Exception):
|
|
469
|
-
pass
|
|
470
|
-
|
|
471
475
|
result = None
|
|
472
476
|
try:
|
|
473
477
|
while self._execute_condition(while_statement.test):
|
|
@@ -540,7 +544,7 @@ class PythonInterpreter:
|
|
|
540
544
|
found_name = True
|
|
541
545
|
return
|
|
542
546
|
if not found_name:
|
|
543
|
-
|
|
547
|
+
return(
|
|
544
548
|
f"It is not permitted to import modules "
|
|
545
549
|
f"than module white list (try to import {full_name})."
|
|
546
550
|
)
|
|
@@ -577,7 +581,7 @@ class PythonInterpreter:
|
|
|
577
581
|
elif isinstance(operator, ast.MatMult):
|
|
578
582
|
return left @ right
|
|
579
583
|
else:
|
|
580
|
-
|
|
584
|
+
return(f"Operator not supported: {operator}")
|
|
581
585
|
|
|
582
586
|
def _execute_unaryop(self, unaryop: ast.UnaryOp):
|
|
583
587
|
operand = self._execute_ast(unaryop.operand)
|
|
@@ -592,31 +596,33 @@ class PythonInterpreter:
|
|
|
592
596
|
elif isinstance(operator, ast.Invert):
|
|
593
597
|
return ~operand
|
|
594
598
|
else:
|
|
595
|
-
|
|
599
|
+
return(f"Operator not supported: {operator}")
|
|
596
600
|
|
|
597
601
|
def _execute_listcomp(self, comp: ast.ListComp):
|
|
598
|
-
return
|
|
599
|
-
|
|
600
|
-
def _execute_dictcomp(self, comp: ast.DictComp):
|
|
601
|
-
return {
|
|
602
|
-
self._execute_comp(comp.key, comp.generators): self._execute_comp(
|
|
603
|
-
comp.value, comp.generators
|
|
604
|
-
)
|
|
605
|
-
}
|
|
602
|
+
return self._execute_comp(comp.elt, comp.generators)
|
|
606
603
|
|
|
607
604
|
def _execute_setcomp(self, comp: ast.SetComp):
|
|
608
|
-
return
|
|
605
|
+
return set(self._execute_comp(comp.elt, comp.generators))
|
|
606
|
+
|
|
607
|
+
def _execute_dictcomp(self, comp: ast.DictComp):
|
|
608
|
+
keys = self._execute_comp(comp.key, comp.generators)
|
|
609
|
+
values = self._execute_comp(comp.value, comp.generators)
|
|
610
|
+
return dict(zip(keys, values))
|
|
609
611
|
|
|
610
612
|
def _execute_comp(self, elt, generators):
|
|
613
|
+
# Base-case: wrap the single element in a list so that
|
|
614
|
+
# callers can safely .extend() it.
|
|
611
615
|
if not generators:
|
|
612
|
-
return self._execute_ast(elt)
|
|
616
|
+
return [self._execute_ast(elt)]
|
|
617
|
+
|
|
613
618
|
gen = generators[0]
|
|
614
|
-
|
|
619
|
+
acc: list[Any] = []
|
|
615
620
|
for value in self._execute_ast(gen.iter):
|
|
616
621
|
self._assign(gen.target, value)
|
|
617
622
|
if all(self._execute_condition(if_cond) for if_cond in gen.ifs):
|
|
618
|
-
|
|
619
|
-
return
|
|
623
|
+
acc.extend(self._execute_comp(elt, generators[1:]))
|
|
624
|
+
return acc
|
|
625
|
+
|
|
620
626
|
|
|
621
627
|
def _execute_generatorexp(self, genexp: ast.GeneratorExp):
|
|
622
628
|
def generator():
|
|
@@ -631,7 +637,7 @@ class PythonInterpreter:
|
|
|
631
637
|
elif key in self.fuzz_state:
|
|
632
638
|
return self.fuzz_state[key]
|
|
633
639
|
else:
|
|
634
|
-
|
|
640
|
+
return(f"The variable `{key}` is not defined.")
|
|
635
641
|
|
|
636
642
|
|
|
637
643
|
class TextPrompt(str):
|
|
@@ -9,7 +9,7 @@ from typing import Any, Literal
|
|
|
9
9
|
from dspy import Tool
|
|
10
10
|
|
|
11
11
|
from flock.core.logging.logging import get_logger
|
|
12
|
-
from flock.core.util.
|
|
12
|
+
from flock.core.util.splitter import split_top_level
|
|
13
13
|
|
|
14
14
|
# Import split_top_level (assuming it's moved or copied appropriately)
|
|
15
15
|
# Option 1: If moved to a shared util
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""Utility functions for resolving input keys to their corresponding values."""
|
|
2
2
|
|
|
3
3
|
from flock.core.context.context import FlockContext
|
|
4
|
-
from flock.core.util.
|
|
4
|
+
from flock.core.util.splitter import split_top_level
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
def get_callable_members(obj):
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
from flock.core.interpreter.python_interpreter import PythonInterpreter
|
|
2
|
+
from flock.core.logging.trace_and_logged import traced_and_logged
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
@traced_and_logged
|
|
6
|
+
def code_evaluate_math(expression: str) -> float:
|
|
7
|
+
try:
|
|
8
|
+
result = PythonInterpreter(
|
|
9
|
+
{},
|
|
10
|
+
[
|
|
11
|
+
"os",
|
|
12
|
+
"math",
|
|
13
|
+
"random",
|
|
14
|
+
"datetime",
|
|
15
|
+
"time",
|
|
16
|
+
"string",
|
|
17
|
+
"collections",
|
|
18
|
+
"itertools",
|
|
19
|
+
"functools",
|
|
20
|
+
"typing",
|
|
21
|
+
"enum",
|
|
22
|
+
"json",
|
|
23
|
+
"ast",
|
|
24
|
+
],
|
|
25
|
+
verbose=True,
|
|
26
|
+
).execute(expression)
|
|
27
|
+
return result
|
|
28
|
+
except Exception:
|
|
29
|
+
raise
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
@traced_and_logged
|
|
33
|
+
def code_code_eval(python_code: str) -> str:
|
|
34
|
+
"""A Python code evaluation tool that executes Python code and returns the result.
|
|
35
|
+
|
|
36
|
+
The code may not be markdown-escaped with triple backticks.
|
|
37
|
+
It is expected to be a valid Python code snippet that can be executed directly.
|
|
38
|
+
The code is executed in a controlled environment with a limited set of libraries.
|
|
39
|
+
It allows the use of the following libraries:
|
|
40
|
+
"os",
|
|
41
|
+
"math",
|
|
42
|
+
"random",
|
|
43
|
+
"datetime",
|
|
44
|
+
"time",
|
|
45
|
+
"string",
|
|
46
|
+
"collections",
|
|
47
|
+
"itertools",
|
|
48
|
+
"functools",
|
|
49
|
+
"typing",
|
|
50
|
+
"enum",
|
|
51
|
+
"json",
|
|
52
|
+
"ast",
|
|
53
|
+
"numpy",
|
|
54
|
+
"sympy",
|
|
55
|
+
"pandas",
|
|
56
|
+
"httpx",
|
|
57
|
+
"""
|
|
58
|
+
try:
|
|
59
|
+
result = PythonInterpreter(
|
|
60
|
+
{},
|
|
61
|
+
[
|
|
62
|
+
"os",
|
|
63
|
+
"math",
|
|
64
|
+
"random",
|
|
65
|
+
"datetime",
|
|
66
|
+
"time",
|
|
67
|
+
"string",
|
|
68
|
+
"collections",
|
|
69
|
+
"itertools",
|
|
70
|
+
"functools",
|
|
71
|
+
"typing",
|
|
72
|
+
"enum",
|
|
73
|
+
"json",
|
|
74
|
+
"ast",
|
|
75
|
+
"numpy",
|
|
76
|
+
"sympy",
|
|
77
|
+
"pandas",
|
|
78
|
+
],
|
|
79
|
+
verbose=True,
|
|
80
|
+
).execute(python_code)
|
|
81
|
+
return result
|
|
82
|
+
except Exception:
|
|
83
|
+
raise
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
@traced_and_logged
|
|
87
|
+
def docker_code_execute(python_code: str) -> str:
|
|
88
|
+
"""Execute Python code in a sandboxed Docker container."""
|
|
89
|
+
import ast
|
|
90
|
+
import os
|
|
91
|
+
import pathlib
|
|
92
|
+
import platform
|
|
93
|
+
import shutil
|
|
94
|
+
import textwrap
|
|
95
|
+
import uuid
|
|
96
|
+
|
|
97
|
+
import docker
|
|
98
|
+
def _auto_print_last_expr(code: str) -> str:
|
|
99
|
+
"""If the last top-level statement is a bare expression,
|
|
100
|
+
append a print() so script mode surfaces its value.
|
|
101
|
+
"""
|
|
102
|
+
tree = ast.parse(code, mode="exec")
|
|
103
|
+
if tree.body and isinstance(tree.body[-1], ast.Expr):
|
|
104
|
+
# Re-extract the exact source of that expression
|
|
105
|
+
expr_src = textwrap.dedent(
|
|
106
|
+
code.splitlines()[tree.body[-1].lineno - 1]
|
|
107
|
+
)
|
|
108
|
+
code += f"\nprint({expr_src})"
|
|
109
|
+
return code
|
|
110
|
+
# --- 1. Figure out a base directory that exists on this OS ----------
|
|
111
|
+
if platform.system() == "Windows":
|
|
112
|
+
base_dir = pathlib.Path(os.getenv("SANDBOX_BASE_DIR", r"C:\sandboxes"))
|
|
113
|
+
else: # Linux, macOS, WSL2
|
|
114
|
+
base_dir = pathlib.Path(os.getenv("SANDBOX_BASE_DIR", "/var/sandboxes"))
|
|
115
|
+
|
|
116
|
+
base_dir.mkdir(parents=True, exist_ok=True)
|
|
117
|
+
|
|
118
|
+
sandbox_id = f"sbox-{uuid.uuid4()}"
|
|
119
|
+
workdir = base_dir / sandbox_id
|
|
120
|
+
workdir.mkdir(parents=True, exist_ok=False)
|
|
121
|
+
|
|
122
|
+
# Docker’s HTTP API always wants POSIX‐style paths (“/”, drive letter allowed).
|
|
123
|
+
host_path = workdir.resolve().as_posix() # e.g. "C:/sandboxes/…"
|
|
124
|
+
|
|
125
|
+
client = docker.from_env()
|
|
126
|
+
image = "python:3.12-slim"
|
|
127
|
+
|
|
128
|
+
# --- 2. Decide whether we can / should request the gVisor runtime ---
|
|
129
|
+
runtime_args = {}
|
|
130
|
+
if platform.system() != "Windows" and shutil.which("runsc"):
|
|
131
|
+
runtime_args["runtime"] = "runsc" # gVisor on Linux & macOS
|
|
132
|
+
|
|
133
|
+
container = client.containers.run(
|
|
134
|
+
image,
|
|
135
|
+
name=sandbox_id,
|
|
136
|
+
command=["sleep", "infinity"],
|
|
137
|
+
user="65534:65534", # nobody
|
|
138
|
+
network_mode="none",
|
|
139
|
+
volumes={host_path: {"bind": "/workspace", "mode": "rw"}},
|
|
140
|
+
mem_limit="4g",
|
|
141
|
+
cpu_period=100_000,
|
|
142
|
+
cpu_quota=200_000, # 2 vCPU
|
|
143
|
+
security_opt=["no-new-privileges"],
|
|
144
|
+
detach=True,
|
|
145
|
+
**runtime_args,
|
|
146
|
+
)
|
|
147
|
+
|
|
148
|
+
try:
|
|
149
|
+
def exec_code(cmd: list[str], timeout: int = 30) -> str:
|
|
150
|
+
exec_id = client.api.exec_create(
|
|
151
|
+
container.id, cmd, workdir="/workspace"
|
|
152
|
+
)["Id"]
|
|
153
|
+
return client.api.exec_start(
|
|
154
|
+
exec_id, stream=False, demux=False, tty=False,
|
|
155
|
+
).decode()
|
|
156
|
+
|
|
157
|
+
# --- 3. Copy code in and execute --------------------------------
|
|
158
|
+
(workdir / "main.py").write_text(_auto_print_last_expr(python_code), encoding="utf-8")
|
|
159
|
+
stdout = exec_code(["python", "main.py"], timeout=30)
|
|
160
|
+
return stdout.strip()
|
|
161
|
+
|
|
162
|
+
finally:
|
|
163
|
+
# --- 4. Tear everything down ------------------------------------
|
|
164
|
+
container.remove(force=True)
|
|
165
|
+
shutil.rmtree(workdir, ignore_errors=True)
|
|
166
|
+
|
|
167
|
+
|