flock-core 0.4.527__tar.gz → 0.4.529__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.527 → flock_core-0.4.529}/CONTRIBUTING.md +8 -8
- {flock_core-0.4.527 → flock_core-0.4.529}/PKG-INFO +4 -1
- {flock_core-0.4.527 → flock_core-0.4.529}/SECURITY.md +1 -1
- flock_core-0.4.529/docs/about/changelog.md +133 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/about/contributing.md +1 -5
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/getting-started/installation.md +2 -2
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/getting-started/quickstart.md +4 -4
- {flock_core-0.4.527 → flock_core-0.4.529}/pyproject.toml +5 -2
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/app/api/execution.py +57 -146
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/app/chat.py +44 -123
- flock_core-0.4.529/src/flock/webapp/app/services/feedback_file_service.py +363 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/app/services/sharing_store.py +44 -30
- flock_core-0.4.529/src/flock/webapp/templates/partials/_execution_form.html +118 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_registry_viewer_content.html +12 -3
- {flock_core-0.4.527 → flock_core-0.4.529}/uv.lock +20 -2
- flock_core-0.4.527/docs/about/changelog.md +0 -37
- flock_core-0.4.527/src/flock/webapp/templates/partials/_execution_form.html +0 -106
- {flock_core-0.4.527 → flock_core-0.4.529}/.devcontainer/devcontainer.json +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/.env_template +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/.github/ISSUE_TEMPLATE/documentation_improvement.yaml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/.github/ISSUE_TEMPLATE/question_support_request.yaml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/.github/ISSUE_TEMPLATE/vulnerability_report.md +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/.github/workflows/.gitkeep +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/.github/workflows/deploy-documentation.yml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/.github/workflows/deploy-whiteduck-pypi.yml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/.gitignore +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/.gitmodules +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/.vscode/launch.json +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/.vscode/settings.json +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/.vscode/tasks.json +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/CODE_OF_CONDUCT.md +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/LICENSE +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/README.md +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/assets/drawio/architecture.drawio +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/assets/images/cli_outputs/out.png +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/assets/images/components_chart.png +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/assets/images/examples/01_01.png +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/assets/images/examples/01_02.png +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/assets/images/examples/01_03.png +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/assets/images/examples/01_04.png +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/assets/images/examples/01_05.png +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/assets/images/examples/01_06.png +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/assets/images/flock.png +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/assets/images/flock_cli.png +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/assets/images/flow_chart.png +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/assets/images/getting-started/first_agent_00.png +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/assets/images/hummingbird.png +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/assets/images/icon.png +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/assets/images/icon.png~ +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/assets/images/logo.png +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/assets/images/magpie.png +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/assets/images/memory_concepts.png +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/assets/images/memory_flow.png +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/assets/images/memory_flow_chart.png +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/assets/images/readme_output.png +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/components/evaluators.md +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/components/index.md +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/components/modules.md +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/components/tools.md +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/core-concepts/agents.md +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/core-concepts/declarative.md +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/core-concepts/di.md +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/core-concepts/index.md +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/core-concepts/workflows.md +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/create_doc_boilerplate.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/deployment/index.md +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/deployment/temporal.md +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/getting-started/concepts.md +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/getting-started/configuration.md +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/getting-started/index.md +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/guides/chaining-agents.md +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/guides/custom-endpoints.md +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/guides/index.md +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/guides/temporal-configuration.md +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/index.md +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/interacting-with-flock/cli-tool.md +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/interacting-with-flock/index.md +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/interacting-with-flock/interactive-cli.md +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/interacting-with-flock/programmatic.md +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/interacting-with-flock/rest-api.md +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/interacting-with-flock/web-ui.md +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/reference/flock_agent.md +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/reference/index.md +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/release-notes/magpie.md +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/stylesheets/extra.css +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/docs/wd-di.md +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/mkdocs.yml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/requirements.txt +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/scripts/code_collector.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/scripts/create_docs.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/scripts/ensure_uv.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/__init__.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/adapter/__init__.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/adapter/azure_adapter.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/adapter/chroma_adapter.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/adapter/faiss_adapter.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/adapter/pinecone_adapter.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/adapter/vector_base.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/cli/assets/release_notes.md +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/cli/config.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/cli/constants.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/cli/create_agent.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/cli/create_flock.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/cli/execute_flock.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/cli/load_agent.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/cli/load_examples.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/cli/load_flock.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/cli/load_release_notes.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/cli/loaded_flock_cli.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/cli/manage_agents.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/cli/registry_management.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/cli/runner.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/cli/settings.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/cli/utils.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/cli/view_results.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/cli/yaml_editor.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/config.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/__init__.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/api/__init__.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/api/custom_endpoint.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/api/endpoints.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/api/main.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/api/models.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/api/run_store.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/api/runner.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/api/service.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/config/flock_agent_config.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/config/scheduled_agent_config.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/context/context.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/context/context_manager.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/context/context_vars.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/evaluation/utils.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/execution/batch_executor.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/execution/evaluation_executor.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/execution/local_executor.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/execution/opik_executor.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/execution/temporal_executor.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/flock.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/flock_agent.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/flock_evaluator.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/flock_factory.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/flock_module.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/flock_registry.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/flock_router.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/flock_scheduler.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/flock_server_manager.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/interpreter/python_interpreter.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/logging/__init__.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/logging/formatters/enum_builder.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/logging/formatters/theme_builder.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/logging/formatters/themed_formatter.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/logging/formatters/themes.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/logging/logging.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/logging/span_middleware/baggage_span_processor.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/logging/telemetry.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/logging/telemetry_exporter/base_exporter.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/logging/telemetry_exporter/file_exporter.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/logging/telemetry_exporter/sqlite_exporter.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/logging/trace_and_logged.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/mcp/__init__.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/mcp/flock_mcp_server.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/mcp/flock_mcp_tool_base.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/mcp/mcp_client.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/mcp/mcp_client_manager.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/mcp/mcp_config.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/mcp/types/__init__.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/mcp/types/callbacks.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/mcp/types/factories.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/mcp/types/handlers.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/mcp/types/types.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/mcp/util/__init__.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/mcp/util/helpers.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/mixin/dspy_integration.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/mixin/prompt_parser.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/serialization/__init__.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/serialization/callable_registry.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/serialization/flock_serializer.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/serialization/json_encoder.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/serialization/secure_serializer.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/serialization/serializable.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/serialization/serialization_utils.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/util/cli_helper.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/util/file_path_utils.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/util/hydrator.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/util/input_resolver.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/util/loader.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/core/util/splitter.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/di.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/evaluators/__init__.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/evaluators/declarative/__init__.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/evaluators/declarative/declarative_evaluator.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/evaluators/memory/memory_evaluator.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/evaluators/test/test_case_evaluator.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/evaluators/zep/zep_evaluator.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/mcp/servers/sse/__init__.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/mcp/servers/sse/flock_sse_server.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/mcp/servers/stdio/__init__.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/mcp/servers/stdio/flock_stdio_server.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/mcp/servers/streamable_http/__init__.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/mcp/servers/streamable_http/flock_streamable_http_server.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/mcp/servers/websockets/__init__.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/mcp/servers/websockets/flock_websocket_server.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/modules/__init__.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/modules/assertion/__init__.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/modules/assertion/assertion_module.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/modules/callback/__init__.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/modules/callback/callback_module.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/modules/enterprise_memory/README.md +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/modules/enterprise_memory/enterprise_memory_module.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/modules/mem0/__init__.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/modules/mem0/mem0_module.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/modules/mem0_async/__init__.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/modules/mem0_async/async_mem0_module.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/modules/memory/__init__.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/modules/memory/memory_module.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/modules/memory/memory_parser.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/modules/memory/memory_storage.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/modules/output/__init__.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/modules/output/output_module.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/modules/performance/__init__.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/modules/performance/metrics_module.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/modules/zep/__init__.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/modules/zep/zep_module.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/platform/docker_tools.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/platform/jaeger_install.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/routers/__init__.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/routers/agent/__init__.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/routers/agent/agent_router.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/routers/agent/handoff_agent.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/routers/conditional/conditional_router.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/routers/default/__init__.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/routers/default/default_router.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/routers/feedback/feedback_router.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/routers/list_generator/list_generator_router.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/routers/llm/__init__.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/routers/llm/llm_router.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/3024-day.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/3024-night.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/aardvark-blue.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/abernathy.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/adventure.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/adventuretime.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/afterglow.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/alabaster.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/alienblood.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/andromeda.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/apple-classic.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/apple-system-colors.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/arcoiris.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/argonaut copy.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/argonaut.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/arthur.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/ateliersulphurpool.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/atom.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/atom_test.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/atomonelight.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/aurora.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/ayu copy.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/ayu-light.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/ayu-mirage.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/ayu.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/banana-blueberry.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/batman.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/belafonte-day.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/belafonte-night.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/birdsofparadise.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/blazer.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/blue-matrix.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/blueberrypie.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/bluedolphin.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/blulocodark.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/blulocolight.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/borland.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/breeze.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/bright-lights.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/broadcast.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/brogrammer.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/builtin-dark.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/builtin-light.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/builtin-pastel-dark.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/builtin-solarized-dark.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/builtin-solarized-light.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/builtin-tango-dark.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/builtin-tango-light.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/c64.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/calamity.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/catppuccin-frappe.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/catppuccin-latte.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/catppuccin-macchiato.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/catppuccin-mocha.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/cga.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/chalk.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/chalkboard.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/challengerdeep.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/chester.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/ciapre.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/clrs.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/cobalt-neon.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/cobalt2.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/coffee-theme.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/crayonponyfish.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/cutiepro.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/cyberdyne.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/cyberpunk.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/cyberpunkscarletprotocol.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/dark+.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/dark-pastel.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/darkermatrix.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/darkmatrix.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/darkside.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/dayfox.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/deep.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/desert.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/dimidium.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/dimmedmonokai.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/django.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/djangorebornagain.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/djangosmooth.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/doom-peacock.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/doomone.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/dotgov.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/dracula+.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/dracula.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/duckbones.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/duotone-dark.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/earthsong.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/elemental.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/elementary.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/encom.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/espresso-libre.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/espresso.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/everblush.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/fahrenheit.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/fairyfloss.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/farmhouse-dark.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/farmhouse-light.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/fideloper.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/firefly-traditional.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/firefoxdev.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/firewatch.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/fishtank.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/flat.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/flatland.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/flexoki-dark.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/flexoki-light.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/floraverse.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/forestblue.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/framer.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/frontenddelight.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/funforrest.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/galaxy.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/galizur.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/github-dark.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/github.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/glacier.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/grape.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/grass.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/grey-green.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/gruber-darker.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/gruvboxdark.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/gruvboxdarkhard.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/gruvboxlight.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/guezwhoz.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/hacktober.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/hardcore.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/harper.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/hax0r-blue.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/hax0r-gr33n.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/hax0r-r3d.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/highway.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/hipster-green.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/hivacruz.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/homebrew.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/hopscotch.256.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/hopscotch.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/hurtado.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/hybrid.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/ic-green-ppl.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/ic-orange-ppl.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/iceberg-dark.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/iceberg-light.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/idea.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/idletoes.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/ir-black.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/iterm2-dark-background.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/iterm2-default.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/iterm2-light-background.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/iterm2-pastel-dark-background.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/iterm2-smoooooth.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/iterm2-solarized-dark.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/iterm2-solarized-light.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/iterm2-tango-dark.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/iterm2-tango-light.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/jackie-brown.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/japanesque.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/jellybeans.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/jetbrains-darcula.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/jubi.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/kanagawabones.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/kibble.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/kolorit.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/konsolas.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/kurokula.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/lab-fox.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/laser.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/later-this-evening.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/lavandula.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/liquidcarbon.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/liquidcarbontransparent.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/liquidcarbontransparentinverse.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/lovelace.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/man-page.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/mariana.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/material.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/materialdark.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/materialdarker.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/materialdesigncolors.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/materialocean.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/mathias.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/matrix.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/medallion.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/mellifluous.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/midnight-in-mojave.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/mirage.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/misterioso.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/molokai.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/monalisa.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/monokai-remastered.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/monokai-soda.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/monokai-vivid.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/n0tch2k.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/neobones-dark.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/neobones-light.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/neon.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/neopolitan.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/neutron.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/night-owlish-light.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/nightfox.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/nightlion-v1.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/nightlion-v2.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/niji.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/nocturnal-winter.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/nord-light.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/nord.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/novel.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/nvimdark.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/nvimlight.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/obsidian.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/ocean.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/oceanic-next.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/oceanicmaterial.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/ollie.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/onehalfdark.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/onehalflight.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/operator-mono-dark.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/overnight-slumber.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/oxocarbon.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/palenighthc.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/pandora.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/paraiso-dark.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/paulmillr.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/pencildark.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/pencillight.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/peppermint.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/piatto-light.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/pnevma.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/popping-and-locking.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/primary.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/pro-light.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/pro.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/purple-rain.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/purplepeter.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/rapture.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/raycast-dark.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/raycast-light.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/rebecca.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/red-alert.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/red-planet.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/red-sands.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/relaxed.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/retro.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/rippedcasts.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/rose-pine-dawn.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/rose-pine-moon.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/rose-pine.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/rouge-2.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/royal.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/ryuuko.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/sakura.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/scarlet-protocol.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/seafoam-pastel.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/seashells.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/seoulbones-dark.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/seoulbones-light.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/seti.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/shades-of-purple.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/shaman.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/slate.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/sleepyhollow.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/smyck.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/snazzy.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/softserver.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/solarized-darcula.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/solarized-dark---patched.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/solarized-dark-higher-contrast.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/spacedust.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/spacegray-eighties-dull.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/spacegray-eighties.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/spacegray.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/spiderman.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/spring.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/square.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/sublette.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/subliminal.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/sugarplum.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/sundried.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/symfonic.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/synthwave-everything.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/synthwave.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/synthwavealpha.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/tango-adapted.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/tango-half-adapted.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/teerb.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/terafox.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/terminal-basic.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/thayer-bright.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/the-hulk.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/tinacious-design-(dark).toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/tinacious-design-(light).toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/tokyonight-day.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/tokyonight-storm.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/tokyonight.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/tomorrow-night-blue.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/tomorrow-night-bright.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/tomorrow-night-burns.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/tomorrow-night-eighties.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/tomorrow-night.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/tomorrow.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/toychest.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/treehouse.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/twilight.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/ubuntu.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/ultradark.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/ultraviolent.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/underthesea.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/unikitty.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/urple.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/vaughn.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/vesper.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/vibrantink.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/vimbones.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/violet-dark.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/violet-light.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/warmneon.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/wez.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/whimsy.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/wildcherry.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/wilmersdorf.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/wombat.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/wryan.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/xcodedark.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/xcodedarkhc.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/xcodelight.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/xcodelighthc.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/xcodewwdc.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/zenbones-dark.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/zenbones-light.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/zenbones.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/zenburn.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/zenburned.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/zenwritten-dark.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/themes/zenwritten-light.toml +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/tools/__init__.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/tools/azure_tools.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/tools/code_tools.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/tools/file_tools.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/tools/github_tools.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/tools/markdown_tools.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/tools/system_tools.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/tools/text_tools.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/tools/web_tools.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/tools/zendesk_tools.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/__init__.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/app/__init__.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/app/api/__init__.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/app/api/agent_management.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/app/api/flock_management.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/app/api/registry_viewer.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/app/config.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/app/dependencies.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/app/main.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/app/middleware.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/app/models_ui.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/app/services/__init__.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/app/services/flock_service.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/app/services/sharing_models.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/app/templates/theme_mapper.html +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/app/theme_mapper.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/app/utils.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/run.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/static/css/chat.css +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/static/css/components.css +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/static/css/header.css +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/static/css/layout.css +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/static/css/sidebar.css +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/static/css/two-pane.css +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/templates/base.html +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/templates/chat.html +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/templates/chat_settings.html +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/templates/flock_editor.html +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/templates/index.html +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_agent_detail_form.html +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_agent_list.html +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_agent_manager_view.html +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_agent_tools_checklist.html +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_chat_container.html +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_chat_messages.html +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_chat_settings_form.html +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_create_flock_form.html +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_dashboard_flock_detail.html +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_dashboard_flock_file_list.html +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_dashboard_flock_properties_preview.html +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_dashboard_upload_flock_form.html +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_dynamic_input_form_content.html +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_env_vars_table.html +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_execution_view_container.html +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_flock_file_list.html +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_flock_properties_form.html +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_flock_upload_form.html +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_header_flock_status.html +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_load_manager_view.html +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_registry_table.html +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_results_display.html +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_settings_env_content.html +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_settings_theme_content.html +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_settings_view.html +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_share_chat_link_snippet.html +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_share_link_snippet.html +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_sidebar.html +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_structured_data_view.html +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_theme_preview.html +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/templates/registry_viewer.html +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/webapp/templates/shared_run_page.html +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/workflow/__init__.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/workflow/activities.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/workflow/agent_activities.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/workflow/agent_execution_activity.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/workflow/flock_workflow.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/workflow/temporal_config.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/src/flock/workflow/temporal_setup.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/test_store_integration.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/tests/__init__.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/tests/api/test_custom_endpoints.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/tests/core/test_flock_batch.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/tests/core/test_flock_core.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/tests/integration/__init__.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/tests/integration/test_shared_link_store.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/tests/modules/test_enterprise_memory_store.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/tests/modules/test_vector_adapters.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/tests/serialization/__init__.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/tests/serialization/test_enhanced_serialization.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/tests/serialization/test_file_path_serialization.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/tests/serialization/test_flock_serializer.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/tests/serialization/test_nested_serialization.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/tests/serialization/test_yaml_serialization.py +0 -0
- {flock_core-0.4.527 → flock_core-0.4.529}/tests/tools/test_zendesk_tools.py +0 -0
|
@@ -40,7 +40,7 @@ We follow the [Contributor Covenant](https://www.contributor-covenant.org/) code
|
|
|
40
40
|
|
|
41
41
|
<!-- TOC --><a name="-reporting-issues"></a>
|
|
42
42
|
## ❗ Reporting Issues:
|
|
43
|
-
- Before submitting a new issue,
|
|
43
|
+
- Before submitting a new issue, please check [existing issues](https://github.com/whiteducksoftware/flock/issues) if it has already been reported.
|
|
44
44
|
- To submit a new issue, please use the provided **Issue Templates** and provide a clear and descriptive title along with a detailed description of the problem or feature request, including steps to reproduce if it's a bug.
|
|
45
45
|
|
|
46
46
|
<!-- TOC --><a name="-pull-requests"></a>
|
|
@@ -104,15 +104,15 @@ We follow the [Contributor Covenant](https://www.contributor-covenant.org/) code
|
|
|
104
104
|
<!-- TOC --><a name="a-few-best-practices-for-writing-good-documentation"></a>
|
|
105
105
|
### A few best practices for writing good documentation:
|
|
106
106
|
1. Document the **Why**, not just the how:
|
|
107
|
-
- Documentation should explain the
|
|
108
|
-
- This helps other developers understand the context and reasoning for the implementation, making the code more maintainable and
|
|
107
|
+
- Documentation should explain the rationale behind your decisions, rather than just describing the "how".
|
|
108
|
+
- This helps other developers understand the context and reasoning for the implementation, making the code more maintainable and modifiable.
|
|
109
109
|
2. Keep it Up to Date:
|
|
110
110
|
- Your documentation should evolve alongside the code. If you change the behavior of an existing component of Flock, please also take care to make sure the documentation reflects this fact.
|
|
111
111
|
3. Write for the Reader:
|
|
112
112
|
- Consider the audience for your documentation.
|
|
113
113
|
- It should be accessible and understandable for developers who are not intimately familiar with the code.
|
|
114
114
|
4. Document Intent and Design:
|
|
115
|
-
-
|
|
115
|
+
- Referring to Point 1, Document your decisions of **why** you chose to implement a new component or code change the way you did, if it is not immediately obvious.
|
|
116
116
|
5. Code as Documentation:
|
|
117
117
|
- Well-written code can serve as it's own documentation.
|
|
118
118
|
- Code should be clear, expressive and self-explanatory where possible.
|
|
@@ -120,19 +120,19 @@ We follow the [Contributor Covenant](https://www.contributor-covenant.org/) code
|
|
|
120
120
|
6. Provide Examples:
|
|
121
121
|
- Examples can help other developers understand your changes and are therefore encouraged.
|
|
122
122
|
7. Use Comments Wisely:
|
|
123
|
-
-
|
|
123
|
+
- Avoid redundant comments that merely restate what the code does, which can clutter the codebase and detract from its readability.
|
|
124
124
|
8. Be Pragmatic:
|
|
125
125
|
- There is no need for you to excessively comment every line of code you provide.
|
|
126
126
|
- Add documentation where necessary and focus on keeping documentation on a high level.
|
|
127
127
|
|
|
128
128
|
<!-- TOC --><a name="-testing-and-reliability"></a>
|
|
129
129
|
## 🔭 Testing and Reliability:
|
|
130
|
-
Flock aims to provide
|
|
130
|
+
Flock aims to provide an easy and reliable way to implement agentic applications. Therefore, well tested code is crucial.
|
|
131
131
|
|
|
132
132
|
- Test your changes thoroughly! Ensure that existing tests pass and add **new tests** for any new functionality.
|
|
133
133
|
- Follow Flock's testing conventions and use the provided testing framework.
|
|
134
134
|
- Run the tests before submitting your pull request to confirm that nothing is broken.
|
|
135
|
-
-
|
|
135
|
+
- Tests can be run locally with `pytest -q`
|
|
136
136
|
- Place new tests in `tests/` mirroring the package path.
|
|
137
137
|
- Use [`pytest`](https://docs.pytest.org/en/stable/) fixtures instead of duplicating setup code.
|
|
138
138
|
- For Temporal code, rely on the *Temporal Test Server* fixture.
|
|
@@ -140,7 +140,7 @@ Flock aims to provide a easy and reliable way to implement agentic applications.
|
|
|
140
140
|
|
|
141
141
|
<!-- TOC --><a name="release-process"></a>
|
|
142
142
|
## Release Process:
|
|
143
|
-
1. Maintainer bumps
|
|
143
|
+
1. Maintainer bumps version in `pyproject.toml` following **SemVer**.
|
|
144
144
|
2. Changelog entry added in `docs/about/changelog.md`.
|
|
145
145
|
3. `uv pip install -e .[all] && pytest`
|
|
146
146
|
4. `git tag v.X.Y.Z && git push --tags`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: flock-core
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.529
|
|
4
4
|
Summary: Declarative LLM Orchestration at Scale
|
|
5
5
|
Author-email: Andre Ratzenberger <andre.ratzenberger@whiteduck.de>
|
|
6
6
|
License-File: LICENSE
|
|
@@ -10,6 +10,7 @@ Classifier: Programming Language :: Python :: 3
|
|
|
10
10
|
Requires-Python: >=3.10
|
|
11
11
|
Requires-Dist: aiosqlite>=0.21.0
|
|
12
12
|
Requires-Dist: azure-data-tables>=12.7.0
|
|
13
|
+
Requires-Dist: azure-storage-blob>=12.25.1
|
|
13
14
|
Requires-Dist: cloudpickle>=3.1.1
|
|
14
15
|
Requires-Dist: croniter>=6.0.0
|
|
15
16
|
Requires-Dist: devtools>=0.12.2
|
|
@@ -49,6 +50,8 @@ Requires-Dist: tqdm>=4.60.1
|
|
|
49
50
|
Requires-Dist: uvicorn>=0.34.0
|
|
50
51
|
Requires-Dist: wd-di>=0.2.14
|
|
51
52
|
Requires-Dist: websockets>=15.0.1
|
|
53
|
+
Requires-Dist: werkzeug>=3.1.3
|
|
54
|
+
Requires-Dist: xlsxwriter>=3.2.3
|
|
52
55
|
Provides-Extra: all
|
|
53
56
|
Requires-Dist: azure-identity>=1.23.0; extra == 'all'
|
|
54
57
|
Requires-Dist: azure-search-documents>=11.5.2; extra == 'all'
|
|
@@ -15,7 +15,7 @@ and actively encourage our community-members to report
|
|
|
15
15
|
any issues with the Flock framework as soon as possible
|
|
16
16
|
in order to mitigate any potential risks.
|
|
17
17
|
|
|
18
|
-
To report a vulnerability, you have
|
|
18
|
+
To report a vulnerability, you have several options available:
|
|
19
19
|
|
|
20
20
|
### 1. Creating a Vulnerability Report (preferred):
|
|
21
21
|
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
---
|
|
2
|
+
hide: # Optional: Hide table of contents on simple pages
|
|
3
|
+
- toc
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Changelog 📝
|
|
7
|
+
|
|
8
|
+
All notable changes to **Flock** will be documented in this file.
|
|
9
|
+
|
|
10
|
+
The format loosely follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and adheres to [Semantic Versioning](https://semver.org/).
|
|
11
|
+
|
|
12
|
+
## [Unreleased]
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
- Core concepts & component documentation.
|
|
16
|
+
- Placeholder replacement across docs.
|
|
17
|
+
- Documentation improvements and typo fixes.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## [0.4.52] – 2025-05-30
|
|
22
|
+
|
|
23
|
+
### Added
|
|
24
|
+
- Package versioning updates and dependency improvements.
|
|
25
|
+
|
|
26
|
+
### Fixed
|
|
27
|
+
- Various bug fixes and stability improvements.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## [0.4.51] – 2025-05-24
|
|
32
|
+
|
|
33
|
+
### Added
|
|
34
|
+
- Enhanced error logging as default log level.
|
|
35
|
+
- Zendesk article count feature.
|
|
36
|
+
- Zendesk tools as MCP server.
|
|
37
|
+
- Configurable protocol support.
|
|
38
|
+
|
|
39
|
+
### Fixed
|
|
40
|
+
- Removed init definitions for tools to avoid requiring all tool dependencies.
|
|
41
|
+
- Chat in sidebar functionality.
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## [0.4.5] – 2025-05-21 "MCP Integration"
|
|
46
|
+
|
|
47
|
+
### Added
|
|
48
|
+
- **Model Context Protocol (MCP) Support**: Declaratively connect to thousands of different tools.
|
|
49
|
+
- MCP server creation with `FlockFactory.create_mcp_server()`.
|
|
50
|
+
- Support for WebSocket, SSE, and STDIO transport protocols.
|
|
51
|
+
- Tool discovery and integration through MCP servers.
|
|
52
|
+
- Enhanced server management and client handling.
|
|
53
|
+
|
|
54
|
+
### Fixed
|
|
55
|
+
- OTLPSpanExporter crash issues.
|
|
56
|
+
- Literal data type handling in Flock agents.
|
|
57
|
+
- Various serialization and deserialization improvements.
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## [0.4.3] – 2025-05-21
|
|
62
|
+
|
|
63
|
+
### Added
|
|
64
|
+
- High-level changelog documentation in README.
|
|
65
|
+
- Enhanced REST API deployment features.
|
|
66
|
+
|
|
67
|
+
### Changed
|
|
68
|
+
- Updated documentation structure and content.
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## [0.4.1] – 2025-05-21 "Magpie"
|
|
73
|
+
|
|
74
|
+
### Added
|
|
75
|
+
- **Magpie** release branding and logo.
|
|
76
|
+
- Enhanced CLI messaging with release information.
|
|
77
|
+
|
|
78
|
+
### Changed
|
|
79
|
+
- Updated version display in CLI helper.
|
|
80
|
+
- Improved UI design elements.
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## [0.4.0] – 2025-04-30 "Magpie" 🐤
|
|
85
|
+
|
|
86
|
+
### Added
|
|
87
|
+
- **REST API Deployment**: Deploy Flock agents as scalable REST API endpoints with `flock.serve()`.
|
|
88
|
+
- **Web UI**: Test and interact with Flock agents directly in browser with integrated web interface.
|
|
89
|
+
- **CLI Tool**: Manage configurations, run agents, and inspect results from terminal.
|
|
90
|
+
- **Enhanced Serialization**: Share, deploy, and run Flocks from YAML files with complete portability.
|
|
91
|
+
- **Batch and Evaluation Modes**: Process multiple inputs and benchmark agents against Q/A pairs.
|
|
92
|
+
- **First-Class Temporal Integration**: Production-grade workflows with retry policies and timeout control.
|
|
93
|
+
- **@flockclass Hydrator**: Turn any Pydantic model into a self-hydrating agent.
|
|
94
|
+
- Custom endpoint support with `FlockEndpoint` for business logic integration.
|
|
95
|
+
- Chat functionality and UI modes (standalone chat, agent execution).
|
|
96
|
+
- Shareable links with frozen agent configurations.
|
|
97
|
+
- Direct feedback system for issue reproduction.
|
|
98
|
+
|
|
99
|
+
### Changed
|
|
100
|
+
- Major architecture improvements for production deployment.
|
|
101
|
+
- Enhanced documentation with comprehensive guides and examples.
|
|
102
|
+
- Improved serialization system with type safety.
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## [0.3.0] – 2025-02-24 "Hummingbird"
|
|
107
|
+
|
|
108
|
+
### Added
|
|
109
|
+
- **Redesigned Core Architecture**: Modular and flexible design with Modules and Evaluators.
|
|
110
|
+
- **FlockFactory**: Pre-configured agents for rapid development.
|
|
111
|
+
- **Module System**: Lifecycle hooks (`initialize`, `pre_evaluate`, `post_evaluate`, `terminate`).
|
|
112
|
+
- **Evaluator System**: `DeclarativeEvaluator` and `NaturalLanguageEvaluator`.
|
|
113
|
+
- **Built-in Modules**: `MemoryModule`, `OutputModule`, and `MetricsModule`.
|
|
114
|
+
- **CLI Interface**: Load flocks, theme builder, settings, advanced mode, and web server.
|
|
115
|
+
- Release notes system with CLI integration.
|
|
116
|
+
|
|
117
|
+
### Changed
|
|
118
|
+
- `Flock` class initialization updated to include `init_console`.
|
|
119
|
+
- Improved modularity and extensibility throughout the framework.
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## [0.2.1] – 2025-01-15
|
|
124
|
+
|
|
125
|
+
### Added
|
|
126
|
+
- Initial public release to PyPI.
|
|
127
|
+
- Declarative agent framework foundation.
|
|
128
|
+
- Basic Temporal execution support.
|
|
129
|
+
- Core tools: `get_web_content_as_markdown`, Azure Blob helper, markdown utilities.
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
*Older history prior to open-source release is maintained internally.*
|
|
@@ -23,7 +23,7 @@ First off, thanks for taking the time to contribute! Flock is still early but w
|
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
## 2. Reporting Issues:
|
|
26
|
-
* Before submitting a new issue,
|
|
26
|
+
* Before submitting a new issue, please check [existing issues](https://github.com/whiteducksoftware/flock/issues) if it has already been reported.
|
|
27
27
|
* To submit a new issue, please use the provided **Issue Templates** and provide a clear and descriptive title along with a detailed description of the problem or feature request, including steps to reproduce if it's a bug.
|
|
28
28
|
|
|
29
29
|
---
|
|
@@ -84,8 +84,4 @@ mkdocs serve # live-reload at http://localhost:8000
|
|
|
84
84
|
|
|
85
85
|
---
|
|
86
86
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
87
|
Happy hacking! 🐦
|
|
@@ -98,6 +98,6 @@ print("Flock imported successfully!")
|
|
|
98
98
|
|
|
99
99
|
If this runs without errors, you're all set!
|
|
100
100
|
|
|
101
|
-
Next Steps
|
|
101
|
+
## Next Steps
|
|
102
102
|
|
|
103
|
-
With Flock installed, you're ready for the Quick Start guide to build and run your first agent!
|
|
103
|
+
With Flock installed, you're ready for the Quick Start guide to build and run your first agent!
|
|
@@ -102,14 +102,14 @@ Let's break down the magic:
|
|
|
102
102
|
|
|
103
103
|
**Define Your Agent Declaratively**: This is the core of Flock! Instead of writing a long prompt, you used FlockFactory.create_default_agent and simply declared:
|
|
104
104
|
|
|
105
|
-
input="topic: str"
|
|
105
|
+
`input="topic: str"`: The agent needs one input called topic, which should be a string.
|
|
106
106
|
|
|
107
|
-
output="fun_title: str, fun_slide_headers: list[str]"
|
|
107
|
+
`output="fun_title: str, fun_slide_headers: list[str]"`: The agent should produce two outputs: fun_title (a string) and fun_slide_headers (a list of strings).
|
|
108
108
|
Flock's default evaluator takes care of constructing the necessary instructions for the LLM based on these declarations and the agent's description.
|
|
109
109
|
|
|
110
110
|
**Add the Agent**: You registered your presentation_agent with the flock.
|
|
111
111
|
|
|
112
|
-
**Run the Flock**: flock.run() kicked off the process, starting with your specified agent and input.
|
|
112
|
+
**Run the Flock**: `flock.run()` kicked off the process, starting with your specified agent and input.
|
|
113
113
|
|
|
114
114
|
**Admire the Results**: Flock executed the agent (calling the LLM behind the scenes) and returned the output as a convenient Box object, allowing you to access the results using dot notation (like result.fun_title).
|
|
115
115
|
|
|
@@ -121,4 +121,4 @@ Explore adding Tools to give your agents superpowers (like web search or code ex
|
|
|
121
121
|
|
|
122
122
|
Learn how to Chain Agents together for more complex workflows.
|
|
123
123
|
|
|
124
|
-
Dive deeper into the Core Concepts that make Flock tick.
|
|
124
|
+
Dive deeper into the Core Concepts that make Flock tick.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "flock-core"
|
|
3
|
-
version = "0.4.
|
|
3
|
+
version = "0.4.529"
|
|
4
4
|
description = "Declarative LLM Orchestration at Scale"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
authors = [
|
|
@@ -54,6 +54,9 @@ dependencies = [
|
|
|
54
54
|
"opik>=1.7.26",
|
|
55
55
|
"azure-data-tables>=12.7.0",
|
|
56
56
|
"croniter>=6.0.0",
|
|
57
|
+
"werkzeug>=3.1.3",
|
|
58
|
+
"azure-storage-blob>=12.25.1",
|
|
59
|
+
"xlsxwriter>=3.2.3",
|
|
57
60
|
]
|
|
58
61
|
|
|
59
62
|
[project.optional-dependencies]
|
|
@@ -221,4 +224,4 @@ torch = { index = "pytorch" }
|
|
|
221
224
|
[[tool.uv.index]]
|
|
222
225
|
name = "pytorch"
|
|
223
226
|
url = "https://download.pytorch.org/whl/cpu"
|
|
224
|
-
explicit = true
|
|
227
|
+
explicit = true
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
# src/flock/webapp/app/api/execution.py
|
|
2
|
+
import html
|
|
2
3
|
import json
|
|
3
|
-
from datetime import datetime
|
|
4
4
|
from pathlib import Path
|
|
5
|
-
from typing import TYPE_CHECKING, Any
|
|
5
|
+
from typing import TYPE_CHECKING, Any, Literal
|
|
6
6
|
|
|
7
|
-
import html
|
|
8
7
|
import markdown2 # Import markdown2
|
|
9
8
|
from fastapi import ( # Ensure Form and HTTPException are imported
|
|
10
9
|
APIRouter,
|
|
@@ -15,6 +14,14 @@ from fastapi import ( # Ensure Form and HTTPException are imported
|
|
|
15
14
|
from fastapi.encoders import jsonable_encoder
|
|
16
15
|
from fastapi.responses import FileResponse, HTMLResponse
|
|
17
16
|
from fastapi.templating import Jinja2Templates
|
|
17
|
+
from werkzeug.utils import secure_filename
|
|
18
|
+
|
|
19
|
+
from flock.webapp.app.services.feedback_file_service import (
|
|
20
|
+
create_csv_feedback_file,
|
|
21
|
+
create_csv_feedback_file_for_agent,
|
|
22
|
+
create_xlsx_feedback_file,
|
|
23
|
+
create_xlsx_feedback_file_for_agent,
|
|
24
|
+
)
|
|
18
25
|
|
|
19
26
|
if TYPE_CHECKING:
|
|
20
27
|
from flock.core.flock import Flock
|
|
@@ -385,6 +392,8 @@ async def htmx_submit_feedback_shared(
|
|
|
385
392
|
expected_response: str | None = Form(None),
|
|
386
393
|
actual_response: str | None = Form(None),
|
|
387
394
|
flock_definition: str | None = Form(None),
|
|
395
|
+
flock_name: str | None = Form(None),
|
|
396
|
+
agent_name: str | None = Form(None),
|
|
388
397
|
store: SharedLinkStoreInterface = Depends(get_shared_link_store),
|
|
389
398
|
):
|
|
390
399
|
from uuid import uuid4
|
|
@@ -399,6 +408,8 @@ async def htmx_submit_feedback_shared(
|
|
|
399
408
|
expected_response=expected_response,
|
|
400
409
|
actual_response=actual_response,
|
|
401
410
|
flock_definition=flock_definition,
|
|
411
|
+
agent_name=agent_name,
|
|
412
|
+
flock_name=flock_name,
|
|
402
413
|
)
|
|
403
414
|
await store.save_feedback(record)
|
|
404
415
|
return HTMLResponse(
|
|
@@ -406,9 +417,10 @@ async def htmx_submit_feedback_shared(
|
|
|
406
417
|
)
|
|
407
418
|
|
|
408
419
|
|
|
409
|
-
@router.get("/htmx/feedback-download/", response_class=FileResponse)
|
|
420
|
+
@router.get("/htmx/feedback-download/{format}", response_class=FileResponse)
|
|
410
421
|
async def chat_feedback_download_all(
|
|
411
422
|
request: Request,
|
|
423
|
+
format: Literal["csv", "xlsx"] = "csv",
|
|
412
424
|
store: SharedLinkStoreInterface = Depends(get_shared_link_store),
|
|
413
425
|
):
|
|
414
426
|
"""Download all feedback records for all agents in the current flock as a CSV file.
|
|
@@ -421,170 +433,69 @@ async def chat_feedback_download_all(
|
|
|
421
433
|
store: The shared link store interface dependency
|
|
422
434
|
|
|
423
435
|
Returns:
|
|
424
|
-
FileResponse: CSV file containing all feedback records for all agents
|
|
436
|
+
FileResponse: CSV/XLSX file containing all feedback records for all agents
|
|
425
437
|
|
|
426
438
|
Raises:
|
|
427
439
|
HTTPException: If no flock is loaded or no agents are found in the flock
|
|
428
440
|
"""
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
current_flock_instance: Flock | None = getattr(
|
|
437
|
-
request.app.state, "flock_instance", None
|
|
438
|
-
)
|
|
439
|
-
|
|
440
|
-
if not current_flock_instance:
|
|
441
|
-
# If no flock is loaded, return an error response
|
|
442
|
-
from fastapi import HTTPException
|
|
443
|
-
|
|
444
|
-
raise HTTPException(
|
|
445
|
-
status_code=400, detail="No Flock loaded to download feedback for"
|
|
441
|
+
safe_format = secure_filename(format)
|
|
442
|
+
if safe_format == "csv":
|
|
443
|
+
return await create_csv_feedback_file(
|
|
444
|
+
request=request,
|
|
445
|
+
store=store,
|
|
446
|
+
separator=","
|
|
446
447
|
)
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
448
|
+
elif safe_format == "xlsx":
|
|
449
|
+
return await create_xlsx_feedback_file(
|
|
450
|
+
request=request,
|
|
451
|
+
store=store,
|
|
452
|
+
)
|
|
453
|
+
else:
|
|
453
454
|
from fastapi import HTTPException
|
|
454
455
|
|
|
455
456
|
raise HTTPException(
|
|
456
|
-
status_code=400,
|
|
457
|
+
status_code=400,
|
|
458
|
+
detail="Invalid file-format specified. Valid formats are: 'csv', 'xlsx'"
|
|
457
459
|
)
|
|
458
460
|
|
|
459
|
-
# Collect all feedback records from all agents
|
|
460
|
-
all_records = []
|
|
461
|
-
for agent_name in all_agent_names:
|
|
462
|
-
records = await store.get_all_feedback_records_for_agent(
|
|
463
|
-
agent_name=agent_name
|
|
464
|
-
)
|
|
465
|
-
all_records.extend(records)
|
|
466
|
-
|
|
467
|
-
# Create a temporary CSV file
|
|
468
|
-
temp_dir = tempfile.gettempdir()
|
|
469
|
-
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
|
|
470
|
-
csv_filename = f"flock_feedback_all_agents_{timestamp}.csv"
|
|
471
|
-
csv_path = Path(temp_dir) / csv_filename
|
|
472
|
-
|
|
473
|
-
# Define CSV headers based on FeedbackRecord fields
|
|
474
|
-
headers = [
|
|
475
|
-
"feedback_id",
|
|
476
|
-
"share_id",
|
|
477
|
-
"context_type",
|
|
478
|
-
"reason",
|
|
479
|
-
"expected_response",
|
|
480
|
-
"actual_response",
|
|
481
|
-
"created_at",
|
|
482
|
-
"flock_name",
|
|
483
|
-
"agent_name",
|
|
484
|
-
"flock_definition",
|
|
485
|
-
]
|
|
486
|
-
|
|
487
|
-
# Write records to CSV
|
|
488
|
-
with open(csv_path, "w", newline="", encoding="utf-8") as csvfile:
|
|
489
|
-
writer = csv.DictWriter(csvfile, fieldnames=headers)
|
|
490
|
-
writer.writeheader()
|
|
491
|
-
|
|
492
|
-
for record in all_records:
|
|
493
|
-
# Convert the Pydantic model to dict and ensure all fields are present
|
|
494
|
-
row_data = {}
|
|
495
|
-
for header in headers:
|
|
496
|
-
value = getattr(record, header, None)
|
|
497
|
-
# Convert datetime to ISO string for CSV
|
|
498
|
-
if header == "created_at" and value:
|
|
499
|
-
row_data[header] = (
|
|
500
|
-
value.isoformat()
|
|
501
|
-
if isinstance(value, datetime)
|
|
502
|
-
else str(value)
|
|
503
|
-
)
|
|
504
|
-
else:
|
|
505
|
-
row_data[header] = str(value) if value is not None else ""
|
|
506
|
-
writer.writerow(row_data)
|
|
507
|
-
|
|
508
|
-
# Return FileResponse with the CSV file
|
|
509
|
-
return FileResponse(
|
|
510
|
-
path=str(csv_path),
|
|
511
|
-
filename=csv_filename,
|
|
512
|
-
media_type="text/csv",
|
|
513
|
-
headers={"Content-Disposition": f"attachment; filename={csv_filename}"},
|
|
514
|
-
)
|
|
515
461
|
|
|
516
|
-
|
|
517
|
-
@router.get("/htmx/feedback-download/{agent_name}", response_class=FileResponse)
|
|
462
|
+
@router.get("/htmx/feedback-download/{agent_name}/{format}", response_class=FileResponse)
|
|
518
463
|
async def chat_feedback_download(
|
|
519
464
|
request: Request,
|
|
520
465
|
agent_name: str,
|
|
466
|
+
format: Literal["csv", "xlsx"] = "csv",
|
|
521
467
|
store: SharedLinkStoreInterface = Depends(get_shared_link_store),
|
|
522
468
|
):
|
|
523
|
-
"""Download all feedback records for a specific agent as a
|
|
469
|
+
"""Download all feedback records for a specific agent as a file.
|
|
524
470
|
|
|
525
471
|
Args:
|
|
526
472
|
request: The FastAPI request object
|
|
527
473
|
agent_name: Name of the agent to download feedback for
|
|
528
474
|
store: The shared link store interface dependency
|
|
475
|
+
format: Either 'csv' or 'xlsx' the file format to use
|
|
529
476
|
|
|
530
477
|
Returns:
|
|
531
|
-
FileResponse: CSV file containing all feedback records for the specified agent
|
|
478
|
+
FileResponse: CSV/XLSX file containing all feedback records for the specified agent
|
|
532
479
|
"""
|
|
533
|
-
|
|
534
|
-
import tempfile
|
|
535
|
-
from pathlib import Path
|
|
536
|
-
from werkzeug.utils import secure_filename
|
|
537
|
-
|
|
538
|
-
records = await store.get_all_feedback_records_for_agent(
|
|
539
|
-
agent_name=agent_name
|
|
540
|
-
)
|
|
541
|
-
|
|
542
|
-
# Create a temporary CSV file
|
|
543
|
-
temp_dir = tempfile.gettempdir()
|
|
544
|
-
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
|
|
480
|
+
safe_format = secure_filename(format)
|
|
545
481
|
safe_agent_name = secure_filename(agent_name)
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
writer.writeheader()
|
|
567
|
-
|
|
568
|
-
for record in records:
|
|
569
|
-
# Convert the Pydantic model to dict and ensure all fields are present
|
|
570
|
-
row_data = {}
|
|
571
|
-
for header in headers:
|
|
572
|
-
value = getattr(record, header, None)
|
|
573
|
-
# Convert datetime to ISO string for CSV
|
|
574
|
-
if header == "created_at" and value:
|
|
575
|
-
row_data[header] = (
|
|
576
|
-
value.isoformat()
|
|
577
|
-
if isinstance(value, datetime)
|
|
578
|
-
else str(value)
|
|
579
|
-
)
|
|
580
|
-
else:
|
|
581
|
-
row_data[header] = str(value) if value is not None else ""
|
|
582
|
-
writer.writerow(row_data)
|
|
583
|
-
|
|
584
|
-
# Return FileResponse with the CSV file
|
|
585
|
-
return FileResponse(
|
|
586
|
-
path=str(csv_path),
|
|
587
|
-
filename=csv_filename,
|
|
588
|
-
media_type="text/csv",
|
|
589
|
-
headers={"Content-Disposition": f"attachment; filename={csv_filename}"},
|
|
590
|
-
)
|
|
482
|
+
if safe_format == "csv":
|
|
483
|
+
return await create_csv_feedback_file_for_agent(
|
|
484
|
+
request=request,
|
|
485
|
+
store=store,
|
|
486
|
+
separator=",",
|
|
487
|
+
agent_name=safe_agent_name,
|
|
488
|
+
)
|
|
489
|
+
elif safe_format == "xlsx":
|
|
490
|
+
return await create_xlsx_feedback_file_for_agent(
|
|
491
|
+
request=request,
|
|
492
|
+
store=store,
|
|
493
|
+
agent_name=safe_agent_name,
|
|
494
|
+
)
|
|
495
|
+
else:
|
|
496
|
+
from fastapi import HTTPException
|
|
497
|
+
|
|
498
|
+
raise HTTPException(
|
|
499
|
+
status_code=400,
|
|
500
|
+
detail="Invalid file-format specified. Valid formats are: 'csv', 'xlsx'"
|
|
501
|
+
)
|