flock-core 0.2.13__tar.gz → 0.2.15__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.2.13 → flock_core-0.2.15}/PKG-INFO +2 -1
- {flock_core-0.2.13 → flock_core-0.2.15}/examples/01_introduction/01_simple_example.py +3 -1
- {flock_core-0.2.13 → flock_core-0.2.15}/examples/01_introduction/02_typed_output.py +9 -8
- {flock_core-0.2.13 → flock_core-0.2.15}/examples/01_introduction/03_tool_and_code_agent.py +7 -7
- {flock_core-0.2.13 → flock_core-0.2.15}/examples/01_introduction/05_typed_output2.py +0 -2
- {flock_core-0.2.13 → flock_core-0.2.15}/examples/01_introduction/06_simple_hand_off.py +7 -8
- {flock_core-0.2.13 → flock_core-0.2.15}/examples/02_cook_book/long_research_no_handoff.py +2 -2
- flock_core-0.2.15/examples/02_cook_book/save_and_load/load_01.py +14 -0
- flock_core-0.2.15/examples/02_cook_book/save_and_load/load_02.py +27 -0
- flock_core-0.2.15/examples/02_cook_book/save_and_load/load_03.py +10 -0
- flock_core-0.2.15/examples/02_cook_book/save_and_load/load_04.py +9 -0
- flock_core-0.2.15/examples/02_cook_book/save_and_load/save_01.py +13 -0
- flock_core-0.2.15/examples/02_cook_book/save_and_load/save_02.py +30 -0
- flock_core-0.2.15/examples/02_cook_book/save_and_load/save_03.py +40 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/examples/02_cook_book/self_improvement.py +22 -3
- {flock_core-0.2.13 → flock_core-0.2.15}/examples/03_misc_wip/logging_examples/02_temporal_logging.py +2 -2
- {flock_core-0.2.13 → flock_core-0.2.15}/pyproject.toml +2 -1
- flock_core-0.2.15/src/flock/__init__.py +57 -0
- flock_core-0.2.15/src/flock/cli/constants.py +23 -0
- flock_core-0.2.15/src/flock/cli/create_agent.py +1 -0
- flock_core-0.2.15/src/flock/cli/create_flock.py +1 -0
- flock_core-0.2.15/src/flock/cli/load_agent.py +1 -0
- flock_core-0.2.15/src/flock/cli/load_examples.py +1 -0
- flock_core-0.2.15/src/flock/cli/load_flock.py +38 -0
- flock_core-0.2.15/src/flock/cli/settings.py +1 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/config.py +0 -1
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/execution/local_executor.py +7 -3
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/execution/temporal_executor.py +1 -8
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/flock.py +197 -34
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/flock_agent.py +89 -9
- flock_core-0.2.15/src/flock/core/logging/formatters/enum_builder.py +38 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/logging/formatters/theme_builder.py +2 -6
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/logging/formatters/themed_formatter.py +127 -19
- flock_core-0.2.15/src/flock/core/logging/formatters/themes.py +340 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/logging/telemetry.py +1 -1
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/mixin/dspy_integration.py +6 -1
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/workflow/activities.py +2 -19
- {flock_core-0.2.13 → flock_core-0.2.15}/tests/unittests/test_flock.py +1 -1
- {flock_core-0.2.13 → flock_core-0.2.15}/uv.lock +18 -1
- flock_core-0.2.13/src/flock/__init__.py +0 -1
- flock_core-0.2.13/src/flock/core/logging/formatters/base_formatter.py +0 -36
- flock_core-0.2.13/src/flock/core/logging/formatters/formatter_factory.py +0 -38
- flock_core-0.2.13/src/flock/core/logging/formatters/pprint_formatter.py +0 -25
- flock_core-0.2.13/src/flock/core/logging/formatters/rich_formatters.py +0 -132
- {flock_core-0.2.13 → flock_core-0.2.15}/.devcontainer/devcontainer.json +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/.env_template +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/.github/workflows/.gitkeep +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/.github/workflows/deploy-whiteduck-pypi.yml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/.gitignore +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/.vscode/launch.json +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/.vscode/settings.json +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/.vscode/tasks.json +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/LICENSE +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/README.md +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/docs/agent_mechanics.md +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/docs/api/flock.md +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/docs/api/flock_agents.md +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/docs/api.md +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/docs/architecture.drawio +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/docs/examples/01_introduction/01_simple_example.md +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/docs/examples/01_introduction/02_typed_output.md +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/docs/examples/01_introduction/03_tool_and_code_agent.md +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/docs/examples/01_introduction/04_descriptions.md +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/docs/examples/01_introduction/05_typed_output2.md +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/docs/examples/01_introduction/06_simple_hand_off.md +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/docs/examples/02_cook_book_wip/flock_without_llms.md +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/docs/examples/02_cook_book_wip/project_manager.md +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/docs/examples.md +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/docs/generate_examples_docs.py +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/docs/generate_nav.py +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/docs/img/cli_outputs/out.png +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/docs/img/component_diagramm.png +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/docs/img/examples/01_01.png +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/docs/img/examples/01_02.png +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/docs/img/examples/01_03.png +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/docs/img/examples/01_04.png +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/docs/img/examples/01_05.png +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/docs/img/examples/01_06.png +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/docs/img/flock.png +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/docs/img/flock_cli.png +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/docs/img/flow_diagramm.png +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/docs/index.md +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/docs/installation.md +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/docs/overrides/extra.css +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/docs/overrides/extra.js +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/examples/01_introduction/04_descriptions.py +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/examples/02_cook_book/flock_without_llms.py +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/examples/02_cook_book/project_manager.py +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/examples/03_misc_wip/formatting/01_pretty_print.py +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/examples/03_misc_wip/formatting/02_r/303/255ch_table.py" +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/examples/03_misc_wip/formatting/03_themed_table.py +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/examples/03_misc_wip/logging_examples/01_basic_logging.py +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/examples/README.md +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/examples/notebooks_wip/Untitled-1.ipynb +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/examples/notebooks_wip/my_agent.json +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/mkdocs.yml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/requirements.txt +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/__init__.py +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/context/context.py +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/context/context_manager.py +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/context/context_vars.py +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/logging/__init__.py +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/logging/logging.py +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/logging/span_middleware/baggage_span_processor.py +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/logging/telemetry_exporter/base_exporter.py +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/logging/telemetry_exporter/file_exporter.py +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/logging/telemetry_exporter/sqlite_exporter.py +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/logging/trace_and_logged.py +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/mixin/prompt_parser.py +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/registry/agent_registry.py +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/tools/basic_tools.py +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/tools/dev_tools/github.py +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/util/cli_helper.py +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/util/input_resolver.py +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/util/serializable.py +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/interpreter/python_interpreter.py +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/platform/docker_tools.py +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/platform/jaeger_install.py +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/3024-day.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/3024-night.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/aardvark-blue.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/abernathy.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/adventure.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/adventuretime.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/afterglow.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/alabaster.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/alienblood.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/andromeda.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/apple-classic.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/apple-system-colors.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/arcoiris.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/argonaut copy.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/argonaut.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/arthur.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/ateliersulphurpool.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/atom.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/atom_test.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/atomonelight.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/aurora.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/ayu copy.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/ayu-light.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/ayu-mirage.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/ayu.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/banana-blueberry.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/batman.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/belafonte-day.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/belafonte-night.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/birdsofparadise.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/blazer.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/blue-matrix.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/blueberrypie.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/bluedolphin.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/blulocodark.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/blulocolight.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/borland.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/breeze.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/bright-lights.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/broadcast.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/brogrammer.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/builtin-dark.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/builtin-light.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/builtin-pastel-dark.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/builtin-solarized-dark.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/builtin-solarized-light.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/builtin-tango-dark.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/builtin-tango-light.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/c64.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/calamity.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/catppuccin-frappe.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/catppuccin-latte.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/catppuccin-macchiato.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/catppuccin-mocha.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/cga.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/chalk.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/chalkboard.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/challengerdeep.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/chester.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/ciapre.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/clrs.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/cobalt-neon.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/cobalt2.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/coffee-theme.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/crayonponyfish.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/cutiepro.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/cyberdyne.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/cyberpunk.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/cyberpunkscarletprotocol.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/dark+.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/dark-pastel.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/darkermatrix.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/darkmatrix.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/darkside.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/dayfox.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/deep.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/desert.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/dimidium.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/dimmedmonokai.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/django.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/djangorebornagain.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/djangosmooth.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/doom-peacock.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/doomone.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/dotgov.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/dracula+.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/dracula.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/duckbones.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/duotone-dark.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/earthsong.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/elemental.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/elementary.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/encom.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/espresso-libre.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/espresso.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/everblush.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/fahrenheit.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/fairyfloss.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/farmhouse-dark.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/farmhouse-light.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/fideloper.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/firefly-traditional.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/firefoxdev.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/firewatch.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/fishtank.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/flat.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/flatland.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/flexoki-dark.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/flexoki-light.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/floraverse.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/forestblue.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/framer.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/frontenddelight.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/funforrest.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/galaxy.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/galizur.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/github-dark.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/github.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/glacier.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/grape.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/grass.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/grey-green.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/gruber-darker.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/gruvboxdark.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/gruvboxdarkhard.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/gruvboxlight.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/guezwhoz.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/hacktober.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/hardcore.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/harper.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/hax0r-blue.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/hax0r-gr33n.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/hax0r-r3d.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/highway.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/hipster-green.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/hivacruz.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/homebrew.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/hopscotch.256.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/hopscotch.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/hurtado.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/hybrid.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/ic-green-ppl.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/ic-orange-ppl.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/iceberg-dark.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/iceberg-light.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/idea.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/idletoes.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/ir-black.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/iterm2-dark-background.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/iterm2-default.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/iterm2-light-background.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/iterm2-pastel-dark-background.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/iterm2-smoooooth.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/iterm2-solarized-dark.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/iterm2-solarized-light.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/iterm2-tango-dark.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/iterm2-tango-light.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/jackie-brown.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/japanesque.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/jellybeans.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/jetbrains-darcula.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/jubi.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/kanagawabones.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/kibble.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/kolorit.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/konsolas.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/kurokula.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/lab-fox.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/laser.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/later-this-evening.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/lavandula.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/liquidcarbon.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/liquidcarbontransparent.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/liquidcarbontransparentinverse.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/lovelace.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/man-page.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/mariana.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/material.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/materialdark.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/materialdarker.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/materialdesigncolors.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/materialocean.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/mathias.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/matrix.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/medallion.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/mellifluous.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/midnight-in-mojave.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/mirage.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/misterioso.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/molokai.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/monalisa.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/monokai-remastered.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/monokai-soda.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/monokai-vivid.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/n0tch2k.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/neobones-dark.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/neobones-light.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/neon.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/neopolitan.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/neutron.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/night-owlish-light.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/nightfox.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/nightlion-v1.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/nightlion-v2.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/niji.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/nocturnal-winter.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/nord-light.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/nord.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/novel.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/nvimdark.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/nvimlight.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/obsidian.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/ocean.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/oceanic-next.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/oceanicmaterial.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/ollie.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/onehalfdark.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/onehalflight.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/operator-mono-dark.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/overnight-slumber.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/oxocarbon.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/palenighthc.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/pandora.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/paraiso-dark.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/paulmillr.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/pencildark.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/pencillight.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/peppermint.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/piatto-light.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/pnevma.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/popping-and-locking.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/primary.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/pro-light.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/pro.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/purple-rain.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/purplepeter.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/rapture.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/raycast-dark.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/raycast-light.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/rebecca.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/red-alert.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/red-planet.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/red-sands.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/relaxed.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/retro.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/rippedcasts.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/rose-pine-dawn.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/rose-pine-moon.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/rose-pine.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/rouge-2.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/royal.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/ryuuko.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/sakura.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/scarlet-protocol.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/seafoam-pastel.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/seashells.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/seoulbones-dark.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/seoulbones-light.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/seti.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/shades-of-purple.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/shaman.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/slate.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/sleepyhollow.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/smyck.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/snazzy.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/softserver.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/solarized-darcula.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/solarized-dark---patched.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/solarized-dark-higher-contrast.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/spacedust.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/spacegray-eighties-dull.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/spacegray-eighties.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/spacegray.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/spiderman.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/spring.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/square.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/sublette.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/subliminal.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/sugarplum.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/sundried.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/symfonic.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/synthwave-everything.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/synthwave.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/synthwavealpha.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/tango-adapted.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/tango-half-adapted.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/teerb.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/terafox.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/terminal-basic.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/thayer-bright.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/the-hulk.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/tinacious-design-(dark).toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/tinacious-design-(light).toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/tokyonight-day.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/tokyonight-storm.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/tokyonight.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/tomorrow-night-blue.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/tomorrow-night-bright.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/tomorrow-night-burns.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/tomorrow-night-eighties.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/tomorrow-night.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/tomorrow.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/toychest.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/treehouse.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/twilight.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/ubuntu.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/ultradark.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/ultraviolent.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/underthesea.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/unikitty.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/urple.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/vaughn.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/vesper.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/vibrantink.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/vimbones.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/violet-dark.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/violet-light.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/warmneon.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/wez.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/whimsy.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/wildcherry.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/wilmersdorf.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/wombat.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/wryan.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/xcodedark.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/xcodedarkhc.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/xcodelight.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/xcodelighthc.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/xcodewwdc.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/zenbones-dark.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/zenbones-light.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/zenbones.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/zenburn.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/zenburned.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/zenwritten-dark.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/zenwritten-light.toml +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/workflow/__init__.py +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/workflow/agent_activities.py +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/workflow/temporal_setup.py +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/workflow/workflow.py +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/tests/integration/test_agent_integration.py +0 -0
- {flock_core-0.2.13 → flock_core-0.2.15}/tests/unittests/test_flock_agent.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: flock-core
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.15
|
|
4
4
|
Summary: Declarative LLM Orchestration at Scale
|
|
5
5
|
Author-email: Andre Ratzenberger <andre.ratzenberger@whiteduck.de>
|
|
6
6
|
License-File: LICENSE
|
|
@@ -24,6 +24,7 @@ Requires-Dist: opentelemetry-sdk>=1.30.0
|
|
|
24
24
|
Requires-Dist: pydantic>=2.10.5
|
|
25
25
|
Requires-Dist: python-box>=7.3.2
|
|
26
26
|
Requires-Dist: python-decouple>=3.8
|
|
27
|
+
Requires-Dist: questionary>=2.1.0
|
|
27
28
|
Requires-Dist: rich>=13.9.4
|
|
28
29
|
Requires-Dist: temporalio>=1.9.0
|
|
29
30
|
Requires-Dist: toml>=0.10.2
|
|
@@ -21,7 +21,9 @@ Let's get started!
|
|
|
21
21
|
import asyncio
|
|
22
22
|
|
|
23
23
|
from flock.core.flock import Flock
|
|
24
|
-
from flock.core.flock_agent import FlockAgent
|
|
24
|
+
from flock.core.flock_agent import FlockAgent, FlockAgentOutputConfig
|
|
25
|
+
from flock.core.logging.formatters.themes import OutputTheme
|
|
26
|
+
|
|
25
27
|
|
|
26
28
|
|
|
27
29
|
# --------------------------------
|
|
@@ -23,20 +23,15 @@ import asyncio
|
|
|
23
23
|
from pprint import pprint
|
|
24
24
|
|
|
25
25
|
from flock.core.flock import Flock
|
|
26
|
-
from flock.core.flock_agent import FlockAgent
|
|
27
|
-
from flock.core.logging.formatters.
|
|
28
|
-
from flock.core.logging.formatters.rich_formatters import RichTables
|
|
29
|
-
from flock.core.logging.formatters.themed_formatter import ThemedAgentResultFormatter
|
|
26
|
+
from flock.core.flock_agent import FlockAgent, FlockAgentOutputConfig
|
|
27
|
+
from flock.core.logging.formatters.themes import OutputTheme
|
|
30
28
|
from flock.core.tools import basic_tools
|
|
31
29
|
|
|
32
30
|
async def main():
|
|
33
31
|
# --------------------------------
|
|
34
32
|
# Create the flock
|
|
35
33
|
# --------------------------------
|
|
36
|
-
|
|
37
|
-
# See the formatting examples
|
|
38
|
-
format_options = FormatterOptions(RichTables)
|
|
39
|
-
flock = Flock(local_debug=True, output_formatter=format_options)
|
|
34
|
+
flock = Flock(local_debug=True)
|
|
40
35
|
|
|
41
36
|
|
|
42
37
|
# --------------------------------
|
|
@@ -48,12 +43,18 @@ async def main():
|
|
|
48
43
|
# - you can define if the agent should use the cache
|
|
49
44
|
# results will get cached and if true and if the input is the same as before, the agent will return the cached result
|
|
50
45
|
# this is useful for expensive operations like web scraping and for debugging
|
|
46
|
+
# Some people need some swag in their output
|
|
47
|
+
# Flock supports rendering the output as a table and you can choose a theme
|
|
51
48
|
agent = FlockAgent(
|
|
52
49
|
name="my_agent",
|
|
53
50
|
input="url",
|
|
54
51
|
output="title, headings: list[str], entities_and_metadata: list[dict[str, str]], type:Literal['news', 'blog', 'opinion piece', 'tweet']",
|
|
55
52
|
tools=[basic_tools.get_web_content_as_markdown],
|
|
56
53
|
use_cache=True,
|
|
54
|
+
output_config=FlockAgentOutputConfig(
|
|
55
|
+
render_table=True,
|
|
56
|
+
theme=OutputTheme.abernathy
|
|
57
|
+
)
|
|
57
58
|
)
|
|
58
59
|
flock.add_agent(agent)
|
|
59
60
|
|
|
@@ -23,10 +23,9 @@ from devtools import debug
|
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
from flock.core.flock import Flock
|
|
26
|
-
from flock.core.flock_agent import FlockAgent
|
|
27
|
-
from flock.core.logging.formatters.base_formatter import FormatterOptions
|
|
28
|
-
from flock.core.logging.formatters.rich_formatters import RichTables
|
|
26
|
+
from flock.core.flock_agent import FlockAgent, FlockAgentOutputConfig
|
|
29
27
|
from flock.core.logging.formatters.themed_formatter import ThemedAgentResultFormatter
|
|
28
|
+
from flock.core.logging.formatters.themes import OutputTheme
|
|
30
29
|
from flock.core.tools import basic_tools
|
|
31
30
|
|
|
32
31
|
MODEL = "openai/gpt-4o"
|
|
@@ -35,10 +34,7 @@ async def main():
|
|
|
35
34
|
# --------------------------------
|
|
36
35
|
# Create the flock
|
|
37
36
|
# --------------------------------
|
|
38
|
-
|
|
39
|
-
# The author had over 300 cli themes lying around....
|
|
40
|
-
format_options = FormatterOptions(ThemedAgentResultFormatter, wait_for_input=False, settings={"theme": "adventuretime"})
|
|
41
|
-
flock = Flock(local_debug=True, output_formatter=format_options)
|
|
37
|
+
flock = Flock(local_debug=True)
|
|
42
38
|
|
|
43
39
|
|
|
44
40
|
# --------------------------------
|
|
@@ -53,6 +49,10 @@ async def main():
|
|
|
53
49
|
input="a_person",
|
|
54
50
|
output="persons_age_in_days",
|
|
55
51
|
tools=[basic_tools.web_search_duckduckgo, basic_tools.code_eval],
|
|
52
|
+
output_config=FlockAgentOutputConfig(
|
|
53
|
+
render_table=True,
|
|
54
|
+
theme=OutputTheme.adventuretime
|
|
55
|
+
),
|
|
56
56
|
use_cache=True,
|
|
57
57
|
)
|
|
58
58
|
flock.add_agent(agent)
|
|
@@ -22,8 +22,6 @@ from typing import Literal
|
|
|
22
22
|
|
|
23
23
|
from flock.core.flock import Flock
|
|
24
24
|
from flock.core.flock_agent import FlockAgent
|
|
25
|
-
from flock.core.logging.formatters.base_formatter import FormatterOptions
|
|
26
|
-
from flock.core.logging.formatters.rich_formatters import RichTables
|
|
27
25
|
from flock.core.logging.formatters.themed_formatter import ThemedAgentResultFormatter
|
|
28
26
|
from flock.core.tools import basic_tools
|
|
29
27
|
|
|
@@ -28,23 +28,20 @@ In later examples, we will explore more advanced hand-off scenarios and fall bac
|
|
|
28
28
|
import asyncio
|
|
29
29
|
|
|
30
30
|
from flock.core.flock import Flock
|
|
31
|
-
from flock.core.flock_agent import FlockAgent
|
|
32
|
-
from flock.core.logging.formatters.
|
|
33
|
-
from flock.core.logging.formatters.rich_formatters import RichTables
|
|
31
|
+
from flock.core.flock_agent import FlockAgent, FlockAgentOutputConfig
|
|
32
|
+
from flock.core.logging.formatters.themes import OutputTheme
|
|
34
33
|
|
|
35
34
|
|
|
36
35
|
async def main():
|
|
37
36
|
|
|
38
|
-
flock = Flock(local_debug=True,
|
|
39
|
-
FormatterOptions(formatter=RichTables,
|
|
40
|
-
wait_for_input=True,
|
|
41
|
-
settings={}),
|
|
42
|
-
enable_logging=True)
|
|
37
|
+
flock = Flock(local_debug=True,enable_logging=True)
|
|
43
38
|
|
|
44
39
|
idea_agent = FlockAgent(
|
|
45
40
|
name="idea_agent",
|
|
46
41
|
input="query",
|
|
47
42
|
output="a_fun_software_project_idea",
|
|
43
|
+
output_config=FlockAgentOutputConfig(render_table=True,
|
|
44
|
+
wait_for_input=True), # wait for input to continue
|
|
48
45
|
use_cache=True,
|
|
49
46
|
)
|
|
50
47
|
|
|
@@ -52,6 +49,8 @@ async def main():
|
|
|
52
49
|
name="project_plan_agent",
|
|
53
50
|
input="a_fun_software_project_idea",
|
|
54
51
|
output="catchy_project_name, project_pitch, techstack, project_implementation_plan",
|
|
52
|
+
output_config=FlockAgentOutputConfig(render_table=True,
|
|
53
|
+
wait_for_input=True), # wait for input to continue
|
|
55
54
|
use_cache=True,
|
|
56
55
|
)
|
|
57
56
|
|
|
@@ -29,7 +29,7 @@ async def main():
|
|
|
29
29
|
description="Outline a thorough overview of a topic.",
|
|
30
30
|
input="topic",
|
|
31
31
|
output="title,sections: list[str],section_subheadings: dict[str, list[str]]|mapping from section headings to subheadings",
|
|
32
|
-
tools=[basic_tools.web_search_tavily],
|
|
32
|
+
tools=[basic_tools.web_search_tavily, basic_tools.get_web_content_as_markdown],
|
|
33
33
|
)
|
|
34
34
|
|
|
35
35
|
|
|
@@ -37,7 +37,7 @@ async def main():
|
|
|
37
37
|
name="draft_agent",
|
|
38
38
|
input="flock.topic,flock.section_heading,flock.section_subheadings: list[str]",
|
|
39
39
|
output="content|markdown-formatted section",
|
|
40
|
-
tools=[basic_tools.web_search_tavily],
|
|
40
|
+
tools=[basic_tools.web_search_tavily, basic_tools.get_web_content_as_markdown],
|
|
41
41
|
)
|
|
42
42
|
|
|
43
43
|
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
from flock.core import FlockAgent
|
|
4
|
+
from flock.core.logging.formatters.pprint_formatter import PrettyPrintFormatter
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
loaded_bloggy = FlockAgent.load_from_file("examples/data/bloggy.json")
|
|
8
|
+
|
|
9
|
+
result = loaded_bloggy.run(inputs={"blog_idea": "Idea for a blog post."})
|
|
10
|
+
PrettyPrintFormatter().display_data(result)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
from typing import Any, Dict
|
|
2
|
+
from flock.core import FlockAgent
|
|
3
|
+
from flock.core.logging.formatters.pprint_formatter import PrettyPrintFormatter
|
|
4
|
+
|
|
5
|
+
# Load agents with custom logic - Everything passed to the constructor is loaded
|
|
6
|
+
custom_bloggy = FlockAgent.load_from_file("examples/data/custom_bloggy.json")
|
|
7
|
+
|
|
8
|
+
result = custom_bloggy.run(inputs={"blog_idea": "Idea for a blog post."})
|
|
9
|
+
PrettyPrintFormatter().display_data(result)
|
|
10
|
+
|
|
11
|
+
# Inherited FlockAgents have to load from their own class
|
|
12
|
+
# so that the custom logic is loaded as well.
|
|
13
|
+
# this won't work:
|
|
14
|
+
inherited_agent = FlockAgent.load_from_file("examples/data/inherited_bloggy.json")
|
|
15
|
+
|
|
16
|
+
result = inherited_agent.run(inputs={"blog_idea": "This will fail"})
|
|
17
|
+
PrettyPrintFormatter().display_data(result)
|
|
18
|
+
|
|
19
|
+
# this will work:
|
|
20
|
+
class MyInheritedAgent(FlockAgent):
|
|
21
|
+
async def evaluate(self, inputs: Dict[str, Any]) -> Dict[str, Any]:
|
|
22
|
+
return {"result": "Hello, world!"}
|
|
23
|
+
|
|
24
|
+
inherited_agent = MyInheritedAgent.load_from_file("examples/data/inherited_bloggy.json")
|
|
25
|
+
|
|
26
|
+
result = inherited_agent.run(inputs={"blog_idea": "Idea for a blog post."})
|
|
27
|
+
PrettyPrintFormatter().display_data(result)
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
from flock.core import FlockAgent
|
|
4
|
+
from flock.core.logging.formatters.pprint_formatter import PrettyPrintFormatter
|
|
5
|
+
|
|
6
|
+
# chatty is a rather compley agent. no problem for Flock to load it.
|
|
7
|
+
loaded_bloggy = FlockAgent.load_from_file("examples/data/chatty.json")
|
|
8
|
+
|
|
9
|
+
result = loaded_bloggy.run(inputs={})
|
|
10
|
+
PrettyPrintFormatter().display_data(result)
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
from typing import Any, Dict, Type
|
|
4
|
+
from flock.core import FlockAgent
|
|
5
|
+
from flock.core.logging.formatters.pprint_formatter import PrettyPrintFormatter
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
# Save and load agents
|
|
9
|
+
|
|
10
|
+
bloggy = FlockAgent(name="bloggy", input="blog_idea", output="funny_blog_title, blog_headers")
|
|
11
|
+
bloggy.save_to_file("examples/data/bloggy.json")
|
|
12
|
+
|
|
13
|
+
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
from typing import Any, Dict, Type
|
|
4
|
+
from flock.core import FlockAgent
|
|
5
|
+
from flock.core.logging.formatters.pprint_formatter import PrettyPrintFormatter
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
# Save and load agents with custom logic
|
|
9
|
+
|
|
10
|
+
async def evaluate(self, inputs: Dict[str, Any]) -> Dict[str, Any]:
|
|
11
|
+
return {"result": "Hello, world!"}
|
|
12
|
+
|
|
13
|
+
async def on_terminate(agent,input,output):
|
|
14
|
+
print(f"Agent {agent.name} has been terminated.")
|
|
15
|
+
|
|
16
|
+
custom_bloggy = FlockAgent(name="custom_bloggy",
|
|
17
|
+
input="blog_idea",
|
|
18
|
+
output="result",
|
|
19
|
+
terminate_callback=on_terminate,
|
|
20
|
+
evaluate_callback=evaluate)
|
|
21
|
+
custom_bloggy.save_to_file("examples/data/custom_bloggy.json")
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class MyInheritedAgent(FlockAgent):
|
|
25
|
+
async def evaluate(self, inputs: Dict[str, Any]) -> Dict[str, Any]:
|
|
26
|
+
return {"result": "Hello, world!"}
|
|
27
|
+
|
|
28
|
+
inherited_agent = MyInheritedAgent(name="inherited_bloggy")
|
|
29
|
+
inherited_agent.save_to_file("examples/data/inherited_bloggy.json")
|
|
30
|
+
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Title: Building Your First Flock Agent
|
|
3
|
+
|
|
4
|
+
In this example, we'll walk you through creating and running a simple Flock system with a single agent.
|
|
5
|
+
Flock enables you to build LLM-powered agents by simply declaring what data each agent receives and what it
|
|
6
|
+
produces—no more tedious prompt engineering!
|
|
7
|
+
|
|
8
|
+
What you'll learn:
|
|
9
|
+
- How to set up the Flock model (using litellm; check out https://docs.litellm.ai/docs/providers for valid model IDs).
|
|
10
|
+
- How to create a Flock instance that serves as the central orchestrator and context holder.
|
|
11
|
+
- How to define a simple agent (named "bloggy") by declaring its input and output.
|
|
12
|
+
- How to add the agent to your Flock.
|
|
13
|
+
- How to run the agent workflow asynchronously in local debug mode (without needing Temporal).
|
|
14
|
+
|
|
15
|
+
The "bloggy" agent in this example is designed to take a blog idea as input and generate a funny blog title
|
|
16
|
+
along with a list of blog headers as output.
|
|
17
|
+
|
|
18
|
+
Let's get started!
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
import asyncio
|
|
22
|
+
|
|
23
|
+
from flock.core.flock import Flock
|
|
24
|
+
from flock.core.flock_agent import FlockAgent
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
MODEL = "openai/gpt-4o"
|
|
28
|
+
|
|
29
|
+
flock = Flock(model=MODEL, local_debug=True)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
bloggy = FlockAgent(
|
|
33
|
+
name="bloggy",
|
|
34
|
+
input="blog_idea",
|
|
35
|
+
output="funny_blog_title, blog_headers"
|
|
36
|
+
)
|
|
37
|
+
flock.add_agent(bloggy)
|
|
38
|
+
|
|
39
|
+
flock.save_to_file("examples/data/flock.json")
|
|
40
|
+
|
|
@@ -75,6 +75,14 @@ class Chat:
|
|
|
75
75
|
if self.user_query.lower() == "goodbye":
|
|
76
76
|
return None
|
|
77
77
|
return HandOff(next_agent="chatty")
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
def optimize_memory(optimized_memory:str):
|
|
81
|
+
try:
|
|
82
|
+
with open("memory.txt", "w") as file:
|
|
83
|
+
file.write(optimized_memory)
|
|
84
|
+
except FileNotFoundError:
|
|
85
|
+
pass
|
|
78
86
|
|
|
79
87
|
|
|
80
88
|
MODEL = "openai/gpt-4o"
|
|
@@ -87,18 +95,29 @@ async def main():
|
|
|
87
95
|
|
|
88
96
|
chatty = FlockAgent(
|
|
89
97
|
name="chatty",
|
|
90
|
-
description=f"You are Chatty, a friendly assistant that loves to chat.
|
|
98
|
+
description=f"""You are Chatty, a friendly assistant that loves to chat.
|
|
99
|
+
Today is {datetime.now().strftime('%A, %B %d, %Y')}.
|
|
100
|
+
Use web_search_duckduckgo to search the web,
|
|
101
|
+
+get_web_content_as_markdown to get web content as markdown,
|
|
102
|
+
and code_eval for all tasks that require code execution.
|
|
103
|
+
Save knowledge to memory for future reference.
|
|
104
|
+
Once in a while optimize your knowledge by calling the optimize_memory tool
|
|
105
|
+
with the optimized memory as input.
|
|
106
|
+
""",
|
|
91
107
|
input="user_query, memory | Memory of previous interactions, chat_history | the current chat history",
|
|
92
108
|
output="answer_to_query, important_new_knowledge_to_add_to_memory | Empty string if no knowledge to add",
|
|
93
109
|
initialize_callback=chat_helper.before_response,
|
|
94
110
|
terminate_callback=chat_helper.after_response,
|
|
95
111
|
config=FlockAgentConfig(disable_output=True),
|
|
96
|
-
tools=[basic_tools.
|
|
112
|
+
tools=[basic_tools.web_search_duckduckgo,
|
|
113
|
+
basic_tools.get_web_content_as_markdown,
|
|
114
|
+
basic_tools.code_eval,optimize_memory],
|
|
97
115
|
)
|
|
116
|
+
|
|
98
117
|
flock.add_agent(chatty)
|
|
99
118
|
|
|
100
119
|
chatty.hand_off = chat_helper.hand_off
|
|
101
|
-
|
|
120
|
+
|
|
102
121
|
await flock.run_async(
|
|
103
122
|
start_agent=chatty,
|
|
104
123
|
input={"memory": "","user_query": "","chat_history": ""}
|
{flock_core-0.2.13 → flock_core-0.2.15}/examples/03_misc_wip/logging_examples/02_temporal_logging.py
RENAMED
|
@@ -13,7 +13,7 @@ from flock.core.logging import flock_logger, live_update_handler, performance_ha
|
|
|
13
13
|
class TemporalLoggingAgent(FlockAgent):
|
|
14
14
|
"""Demo agent that showcases logging with Temporal integration."""
|
|
15
15
|
|
|
16
|
-
async def
|
|
16
|
+
async def run_async(self, context: FlockContext) -> dict:
|
|
17
17
|
workflow_id = context.state.get("workflow_id", "temporal-demo")
|
|
18
18
|
flock_logger.set_context(workflow_id=workflow_id)
|
|
19
19
|
|
|
@@ -97,7 +97,7 @@ async def main():
|
|
|
97
97
|
agent = TemporalLoggingAgent(name="local-demo", model="demo-model")
|
|
98
98
|
context = FlockContext()
|
|
99
99
|
context.state["workflow_id"] = workflow_id
|
|
100
|
-
await agent.
|
|
100
|
+
await agent.run_async(context)
|
|
101
101
|
else:
|
|
102
102
|
# Let our error handler format other errors beautifully
|
|
103
103
|
raise
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "flock-core"
|
|
3
|
-
version = "0.2.
|
|
3
|
+
version = "0.2.15"
|
|
4
4
|
description = "Declarative LLM Orchestration at Scale"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
authors = [
|
|
@@ -29,6 +29,7 @@ dependencies = [
|
|
|
29
29
|
"pydantic>=2.10.5",
|
|
30
30
|
"python-box>=7.3.2",
|
|
31
31
|
"python-decouple>=3.8",
|
|
32
|
+
"questionary>=2.1.0",
|
|
32
33
|
"rich>=13.9.4",
|
|
33
34
|
"temporalio>=1.9.0",
|
|
34
35
|
"toml>=0.10.2",
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"""Flock package initialization."""
|
|
2
|
+
|
|
3
|
+
from flock.cli.constants import CLI_THEME_BUILDER
|
|
4
|
+
from flock.core.logging.formatters.theme_builder import theme_builder
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def main():
|
|
8
|
+
"""Main function."""
|
|
9
|
+
import questionary
|
|
10
|
+
from rich.console import Console
|
|
11
|
+
|
|
12
|
+
from flock.cli.constants import (
|
|
13
|
+
CLI_CREATE_AGENT,
|
|
14
|
+
CLI_CREATE_FLOCK,
|
|
15
|
+
CLI_LOAD_AGENT,
|
|
16
|
+
CLI_LOAD_EXAMPLE,
|
|
17
|
+
CLI_LOAD_FLOCK,
|
|
18
|
+
CLI_SETTINGS,
|
|
19
|
+
CLI_START_ADVANCED_MODE,
|
|
20
|
+
CLI_START_WEB_SERVER,
|
|
21
|
+
)
|
|
22
|
+
from flock.cli.load_flock import load_flock
|
|
23
|
+
from flock.core.util.cli_helper import display_banner
|
|
24
|
+
|
|
25
|
+
console = Console()
|
|
26
|
+
|
|
27
|
+
display_banner()
|
|
28
|
+
|
|
29
|
+
console.print("Flock Management Console\n", style="bold green")
|
|
30
|
+
|
|
31
|
+
result = questionary.select(
|
|
32
|
+
"What do you want to do?",
|
|
33
|
+
choices=[
|
|
34
|
+
questionary.Separator(line=" "),
|
|
35
|
+
# CLI_CREATE_AGENT,
|
|
36
|
+
# CLI_CREATE_FLOCK,
|
|
37
|
+
# CLI_LOAD_AGENT,
|
|
38
|
+
CLI_LOAD_FLOCK,
|
|
39
|
+
# CLI_LOAD_EXAMPLE,
|
|
40
|
+
questionary.Separator(),
|
|
41
|
+
CLI_THEME_BUILDER,
|
|
42
|
+
CLI_SETTINGS,
|
|
43
|
+
questionary.Separator(),
|
|
44
|
+
CLI_START_ADVANCED_MODE,
|
|
45
|
+
CLI_START_WEB_SERVER,
|
|
46
|
+
"Exit",
|
|
47
|
+
],
|
|
48
|
+
).ask()
|
|
49
|
+
|
|
50
|
+
if result == CLI_LOAD_FLOCK:
|
|
51
|
+
load_flock()
|
|
52
|
+
if result == CLI_THEME_BUILDER:
|
|
53
|
+
theme_builder()
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
if __name__ == "__main__":
|
|
57
|
+
main()
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"""Constants for the CLI module."""
|
|
2
|
+
|
|
3
|
+
CLI_CREATE_AGENT = "Create an agent"
|
|
4
|
+
CLI_CREATE_FLOCK = "Create a flock"
|
|
5
|
+
CLI_LOAD_AGENT = "Load an agent"
|
|
6
|
+
CLI_LOAD_FLOCK = "Load a *.flock file"
|
|
7
|
+
CLI_THEME_BUILDER = "Theme builder"
|
|
8
|
+
CLI_LOAD_EXAMPLE = "Load a example"
|
|
9
|
+
CLI_SETTINGS = "Settings"
|
|
10
|
+
CLI_START_ADVANCED_MODE = "Start advanced mode (coming soon)"
|
|
11
|
+
CLI_START_WEB_SERVER = "Start web server (coming soon)"
|
|
12
|
+
CLI_EXIT = "Exit"
|
|
13
|
+
CLI_CHOICES = [
|
|
14
|
+
CLI_CREATE_AGENT,
|
|
15
|
+
CLI_CREATE_FLOCK,
|
|
16
|
+
CLI_LOAD_AGENT,
|
|
17
|
+
CLI_LOAD_FLOCK,
|
|
18
|
+
CLI_LOAD_EXAMPLE,
|
|
19
|
+
CLI_SETTINGS,
|
|
20
|
+
CLI_START_ADVANCED_MODE,
|
|
21
|
+
CLI_START_WEB_SERVER,
|
|
22
|
+
CLI_EXIT,
|
|
23
|
+
]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# TODO
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# TODO
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# TODO
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# TODO
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"""Load a Flock from a file."""
|
|
2
|
+
|
|
3
|
+
from pathlib import Path
|
|
4
|
+
|
|
5
|
+
import questionary
|
|
6
|
+
from rich.console import Console
|
|
7
|
+
from rich.markdown import Markdown
|
|
8
|
+
|
|
9
|
+
from flock.core.flock import Flock
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def filter(file_path) -> bool:
|
|
13
|
+
"""Filter function for file selection."""
|
|
14
|
+
path = Path(file_path)
|
|
15
|
+
if path.is_dir():
|
|
16
|
+
return True
|
|
17
|
+
return path.is_file() and path.suffix == ".flock"
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def load_flock():
|
|
21
|
+
"""Load a Flock from a file."""
|
|
22
|
+
console = Console()
|
|
23
|
+
|
|
24
|
+
console.print("\nPlease select a *.flock file\n", style="bold green")
|
|
25
|
+
|
|
26
|
+
result = questionary.path("", file_filter=filter).ask()
|
|
27
|
+
|
|
28
|
+
selected_file = Path(result)
|
|
29
|
+
if selected_file.is_file():
|
|
30
|
+
console.print(f"Selected file: {selected_file}", style="bold green")
|
|
31
|
+
|
|
32
|
+
flock = Flock.load_from_file(result)
|
|
33
|
+
|
|
34
|
+
console.line()
|
|
35
|
+
console.print(Markdown("# Flock loaded...."), style="bold orange")
|
|
36
|
+
console.line()
|
|
37
|
+
|
|
38
|
+
flock.run()
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# TODO
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
# src/your_package/core/execution/local_executor.py
|
|
2
2
|
from flock.core.context.context import FlockContext
|
|
3
3
|
from flock.core.logging.logging import get_logger
|
|
4
|
-
from flock.workflow.activities import
|
|
4
|
+
from flock.workflow.activities import (
|
|
5
|
+
run_agent, # This should be the local activity function
|
|
6
|
+
)
|
|
5
7
|
|
|
6
8
|
logger = get_logger("flock")
|
|
7
9
|
|
|
8
10
|
|
|
9
|
-
async def run_local_workflow(
|
|
11
|
+
async def run_local_workflow(
|
|
12
|
+
context: FlockContext, box_result: bool = True
|
|
13
|
+
) -> dict:
|
|
10
14
|
"""Execute the agent workflow locally (for debugging).
|
|
11
15
|
|
|
12
16
|
Args:
|
|
@@ -18,7 +22,7 @@ async def run_local_workflow(context: FlockContext, output_formatter, box_result
|
|
|
18
22
|
A dictionary containing the workflow result.
|
|
19
23
|
"""
|
|
20
24
|
logger.info("Running local debug workflow")
|
|
21
|
-
result = await run_agent(context
|
|
25
|
+
result = await run_agent(context)
|
|
22
26
|
if box_result:
|
|
23
27
|
from box import Box
|
|
24
28
|
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
# src/your_package/core/execution/temporal_executor.py
|
|
2
|
-
from devtools import pprint
|
|
3
2
|
|
|
4
3
|
from flock.core.context.context import FlockContext
|
|
5
4
|
from flock.core.context.context_vars import FLOCK_RUN_ID
|
|
6
|
-
from flock.core.logging.formatters.formatter_factory import FormatterFactory
|
|
7
5
|
from flock.core.logging.logging import get_logger
|
|
8
6
|
from flock.workflow.activities import (
|
|
9
7
|
run_agent, # Activity function used in Temporal
|
|
@@ -16,7 +14,6 @@ logger = get_logger("flock")
|
|
|
16
14
|
|
|
17
15
|
async def run_temporal_workflow(
|
|
18
16
|
context: FlockContext,
|
|
19
|
-
output_formatter,
|
|
20
17
|
box_result: bool = True,
|
|
21
18
|
) -> dict:
|
|
22
19
|
"""Execute the agent workflow via Temporal for robust, distributed processing.
|
|
@@ -43,11 +40,7 @@ async def run_temporal_workflow(
|
|
|
43
40
|
|
|
44
41
|
agent_name = context.get_variable("FLOCK_CURRENT_AGENT")
|
|
45
42
|
logger.debug("Formatting Temporal result", agent=agent_name)
|
|
46
|
-
|
|
47
|
-
formatter = FormatterFactory.create_formatter(output_formatter)
|
|
48
|
-
formatter.display(result, agent_name, output_formatter.wait_for_input)
|
|
49
|
-
else:
|
|
50
|
-
pprint(result)
|
|
43
|
+
|
|
51
44
|
if box_result:
|
|
52
45
|
from box import Box
|
|
53
46
|
|