flock-core 0.2.5__tar.gz → 0.2.7__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.5 → flock_core-0.2.7}/.vscode/settings.json +1 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/PKG-INFO +4 -2
- {flock_core-0.2.5 → flock_core-0.2.7}/README.md +3 -1
- flock_core-0.2.7/docs/img/flock_cli.png +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/examples/01_introduction/03_tool_and_code_agent.py +1 -1
- {flock_core-0.2.5 → flock_core-0.2.7}/examples/01_introduction/05_typed_output2.py +3 -1
- {flock_core-0.2.5 → flock_core-0.2.7}/pyproject.toml +1 -1
- flock_core-0.2.7/src/flock/__init__.py +1 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/config.py +3 -3
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/core/flock.py +4 -3
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/core/flock_agent.py +1 -1
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/core/logging/formatters/pprint_formatter.py +7 -6
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/core/mixin/dspy_integration.py +23 -10
- flock_core-0.2.7/src/flock/core/tools/basic_tools.py +197 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/core/tools/dev_tools/github.py +0 -33
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/core/util/input_resolver.py +19 -0
- flock_core-0.2.7/src/flock/interpreter/python_interpreter.py +675 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/uv.lock +1 -1
- flock_core-0.2.5/docs/img/flock_cli.png +0 -0
- flock_core-0.2.5/src/flock/__init__.py +0 -8
- flock_core-0.2.5/src/flock/core/tools/basic_tools.py +0 -296
- {flock_core-0.2.5 → flock_core-0.2.7}/.devcontainer/devcontainer.json +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/.env_template +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/.github/workflows/.gitkeep +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/.github/workflows/deploy-whiteduck-pypi.yml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/.gitignore +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/.vscode/launch.json +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/.vscode/tasks.json +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/LICENSE +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/docs/agent_mechanics.md +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/docs/api/flock.md +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/docs/api/flock_agents.md +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/docs/api.md +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/docs/architecture.drawio +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/docs/examples/01_introduction/01_simple_example.md +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/docs/examples/01_introduction/02_typed_output.md +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/docs/examples/01_introduction/03_tool_and_code_agent.md +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/docs/examples/01_introduction/04_descriptions.md +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/docs/examples/01_introduction/05_typed_output2.md +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/docs/examples/01_introduction/06_simple_hand_off.md +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/docs/examples/02_cook_book_wip/flock_without_llms.md +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/docs/examples/02_cook_book_wip/project_manager.md +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/docs/examples.md +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/docs/generate_examples_docs.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/docs/generate_nav.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/docs/img/cli_outputs/out.png +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/docs/img/component_diagramm.png +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/docs/img/examples/01_01.png +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/docs/img/examples/01_02.png +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/docs/img/examples/01_03.png +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/docs/img/examples/01_04.png +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/docs/img/examples/01_05.png +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/docs/img/examples/01_06.png +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/docs/img/flock.png +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/docs/img/flow_diagramm.png +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/docs/index.md +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/docs/installation.md +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/docs/overrides/extra.css +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/docs/overrides/extra.js +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/examples/01_introduction/01_simple_example.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/examples/01_introduction/02_typed_output.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/examples/01_introduction/04_descriptions.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/examples/01_introduction/06_simple_hand_off.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/examples/02_cook_book/flock_without_llms.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/examples/02_cook_book/long_research_no_handoff.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/examples/02_cook_book/project_manager.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/examples/02_cook_book/self_improvement.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/examples/03_misc_wip/formatting/01_pretty_print.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/examples/03_misc_wip/formatting/02_r/303/255ch_table.py" +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/examples/03_misc_wip/formatting/03_themed_table.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/examples/03_misc_wip/logging_examples/01_basic_logging.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/examples/03_misc_wip/logging_examples/02_temporal_logging.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/examples/README.md +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/examples/notebooks_wip/Untitled-1.ipynb +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/examples/notebooks_wip/my_agent.json +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/mkdocs.yml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/requirements.txt +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/core/__init__.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/core/context/context.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/core/context/context_manager.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/core/context/context_vars.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/core/execution/local_executor.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/core/execution/temporal_executor.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/core/logging/__init__.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/core/logging/formatters/base_formatter.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/core/logging/formatters/formatter_factory.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/core/logging/formatters/rich_formatters.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/core/logging/formatters/theme_builder.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/core/logging/formatters/themed_formatter.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/core/logging/logging.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/core/logging/span_middleware/baggage_span_processor.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/core/logging/telemetry.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/core/logging/telemetry_exporter/base_exporter.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/core/logging/telemetry_exporter/file_exporter.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/core/logging/telemetry_exporter/sqlite_exporter.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/core/logging/trace_and_logged.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/core/mixin/prompt_parser.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/core/registry/agent_registry.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/core/util/cli_helper.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/core/util/serializable.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/platform/docker_tools.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/platform/jaeger_install.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/3024-day.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/3024-night.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/aardvark-blue.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/abernathy.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/adventure.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/adventuretime.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/afterglow.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/alabaster.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/alienblood.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/andromeda.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/apple-classic.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/apple-system-colors.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/arcoiris.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/argonaut copy.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/argonaut.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/arthur.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/ateliersulphurpool.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/atom.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/atom_test.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/atomonelight.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/aurora.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/ayu copy.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/ayu-light.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/ayu-mirage.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/ayu.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/banana-blueberry.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/batman.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/belafonte-day.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/belafonte-night.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/birdsofparadise.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/blazer.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/blue-matrix.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/blueberrypie.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/bluedolphin.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/blulocodark.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/blulocolight.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/borland.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/breeze.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/bright-lights.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/broadcast.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/brogrammer.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/builtin-dark.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/builtin-light.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/builtin-pastel-dark.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/builtin-solarized-dark.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/builtin-solarized-light.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/builtin-tango-dark.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/builtin-tango-light.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/c64.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/calamity.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/catppuccin-frappe.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/catppuccin-latte.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/catppuccin-macchiato.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/catppuccin-mocha.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/cga.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/chalk.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/chalkboard.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/challengerdeep.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/chester.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/ciapre.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/clrs.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/cobalt-neon.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/cobalt2.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/coffee-theme.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/crayonponyfish.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/cutiepro.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/cyberdyne.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/cyberpunk.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/cyberpunkscarletprotocol.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/dark+.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/dark-pastel.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/darkermatrix.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/darkmatrix.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/darkside.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/dayfox.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/deep.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/desert.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/dimidium.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/dimmedmonokai.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/django.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/djangorebornagain.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/djangosmooth.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/doom-peacock.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/doomone.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/dotgov.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/dracula+.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/dracula.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/duckbones.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/duotone-dark.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/earthsong.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/elemental.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/elementary.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/encom.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/espresso-libre.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/espresso.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/everblush.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/fahrenheit.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/fairyfloss.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/farmhouse-dark.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/farmhouse-light.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/fideloper.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/firefly-traditional.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/firefoxdev.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/firewatch.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/fishtank.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/flat.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/flatland.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/flexoki-dark.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/flexoki-light.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/floraverse.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/forestblue.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/framer.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/frontenddelight.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/funforrest.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/galaxy.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/galizur.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/github-dark.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/github.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/glacier.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/grape.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/grass.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/grey-green.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/gruber-darker.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/gruvboxdark.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/gruvboxdarkhard.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/gruvboxlight.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/guezwhoz.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/hacktober.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/hardcore.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/harper.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/hax0r-blue.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/hax0r-gr33n.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/hax0r-r3d.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/highway.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/hipster-green.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/hivacruz.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/homebrew.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/hopscotch.256.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/hopscotch.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/hurtado.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/hybrid.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/ic-green-ppl.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/ic-orange-ppl.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/iceberg-dark.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/iceberg-light.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/idea.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/idletoes.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/ir-black.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/iterm2-dark-background.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/iterm2-default.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/iterm2-light-background.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/iterm2-pastel-dark-background.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/iterm2-smoooooth.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/iterm2-solarized-dark.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/iterm2-solarized-light.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/iterm2-tango-dark.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/iterm2-tango-light.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/jackie-brown.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/japanesque.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/jellybeans.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/jetbrains-darcula.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/jubi.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/kanagawabones.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/kibble.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/kolorit.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/konsolas.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/kurokula.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/lab-fox.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/laser.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/later-this-evening.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/lavandula.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/liquidcarbon.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/liquidcarbontransparent.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/liquidcarbontransparentinverse.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/lovelace.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/man-page.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/mariana.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/material.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/materialdark.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/materialdarker.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/materialdesigncolors.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/materialocean.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/mathias.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/matrix.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/medallion.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/mellifluous.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/midnight-in-mojave.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/mirage.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/misterioso.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/molokai.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/monalisa.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/monokai-remastered.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/monokai-soda.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/monokai-vivid.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/n0tch2k.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/neobones-dark.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/neobones-light.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/neon.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/neopolitan.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/neutron.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/night-owlish-light.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/nightfox.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/nightlion-v1.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/nightlion-v2.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/niji.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/nocturnal-winter.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/nord-light.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/nord.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/novel.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/nvimdark.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/nvimlight.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/obsidian.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/ocean.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/oceanic-next.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/oceanicmaterial.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/ollie.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/onehalfdark.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/onehalflight.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/operator-mono-dark.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/overnight-slumber.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/oxocarbon.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/palenighthc.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/pandora.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/paraiso-dark.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/paulmillr.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/pencildark.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/pencillight.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/peppermint.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/piatto-light.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/pnevma.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/popping-and-locking.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/primary.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/pro-light.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/pro.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/purple-rain.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/purplepeter.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/rapture.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/raycast-dark.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/raycast-light.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/rebecca.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/red-alert.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/red-planet.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/red-sands.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/relaxed.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/retro.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/rippedcasts.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/rose-pine-dawn.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/rose-pine-moon.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/rose-pine.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/rouge-2.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/royal.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/ryuuko.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/sakura.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/scarlet-protocol.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/seafoam-pastel.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/seashells.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/seoulbones-dark.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/seoulbones-light.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/seti.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/shades-of-purple.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/shaman.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/slate.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/sleepyhollow.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/smyck.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/snazzy.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/softserver.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/solarized-darcula.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/solarized-dark---patched.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/solarized-dark-higher-contrast.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/spacedust.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/spacegray-eighties-dull.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/spacegray-eighties.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/spacegray.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/spiderman.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/spring.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/square.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/sublette.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/subliminal.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/sugarplum.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/sundried.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/symfonic.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/synthwave-everything.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/synthwave.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/synthwavealpha.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/tango-adapted.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/tango-half-adapted.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/teerb.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/terafox.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/terminal-basic.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/thayer-bright.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/the-hulk.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/tinacious-design-(dark).toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/tinacious-design-(light).toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/tokyonight-day.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/tokyonight-storm.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/tokyonight.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/tomorrow-night-blue.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/tomorrow-night-bright.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/tomorrow-night-burns.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/tomorrow-night-eighties.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/tomorrow-night.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/tomorrow.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/toychest.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/treehouse.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/twilight.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/ubuntu.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/ultradark.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/ultraviolent.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/underthesea.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/unikitty.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/urple.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/vaughn.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/vesper.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/vibrantink.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/vimbones.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/violet-dark.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/violet-light.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/warmneon.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/wez.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/whimsy.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/wildcherry.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/wilmersdorf.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/wombat.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/wryan.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/xcodedark.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/xcodedarkhc.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/xcodelight.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/xcodelighthc.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/xcodewwdc.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/zenbones-dark.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/zenbones-light.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/zenbones.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/zenburn.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/zenburned.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/zenwritten-dark.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/themes/zenwritten-light.toml +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/workflow/__init__.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/workflow/activities.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/workflow/agent_activities.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/workflow/temporal_setup.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/src/flock/workflow/workflow.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/tests/integration/test_agent_integration.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/tests/unittests/test_flock.py +0 -0
- {flock_core-0.2.5 → flock_core-0.2.7}/tests/unittests/test_flock_agent.py +0 -0
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
"yaml.schemas": {
|
|
32
32
|
"https://squidfunk.github.io/mkdocs-material/schema.json": "mkdocs.yml"
|
|
33
33
|
},
|
|
34
|
+
"AREPL.customCSS": ".print { font-size: var(--vscode-editor-font-size); } .renderjson { font-family: var(--vscode-editor-font-family); font-size: var(--vscode-editor-font-size); line-height: initial; }",
|
|
34
35
|
"yaml.customTags": [
|
|
35
36
|
"!ENV scalar",
|
|
36
37
|
"!ENV sequence",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: flock-core
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.7
|
|
4
4
|
Summary: Declarative LLM Orchestration at Scale
|
|
5
5
|
Author-email: Andre Ratzenberger <andre.ratzenberger@whiteduck.de>
|
|
6
6
|
License-File: LICENSE
|
|
@@ -38,7 +38,9 @@ Description-Content-Type: text/markdown
|
|
|
38
38
|
|
|
39
39
|
<p align="center">
|
|
40
40
|
<img src="docs/img/flock.png" width="600"><br>
|
|
41
|
-
<img alt="Dynamic TOML Badge" src="https://img.shields.io/badge/dynamic/toml?url=https%3A%2F%2Fraw.githubusercontent.com%2Fwhiteducksoftware%2Fflock%2Frefs%2Fheads%
|
|
41
|
+
<img alt="Dynamic TOML Badge" src="https://img.shields.io/badge/dynamic/toml?url=https%3A%2F%2Fraw.githubusercontent.com%2Fwhiteducksoftware%2Fflock%2Frefs%2Fheads%2Fmaster%2Fpyproject.toml&query=%24.project.version&style=for-the-badge&logo=pypi&label=pip%20version">
|
|
42
|
+
<img alt="X (formerly Twitter) Follow" src="https://img.shields.io/twitter/follow/whiteduck_gmbh?style=for-the-badge&logo=X">
|
|
43
|
+
|
|
42
44
|
|
|
43
45
|
|
|
44
46
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
<p align="center">
|
|
2
2
|
<img src="docs/img/flock.png" width="600"><br>
|
|
3
|
-
<img alt="Dynamic TOML Badge" src="https://img.shields.io/badge/dynamic/toml?url=https%3A%2F%2Fraw.githubusercontent.com%2Fwhiteducksoftware%2Fflock%2Frefs%2Fheads%
|
|
3
|
+
<img alt="Dynamic TOML Badge" src="https://img.shields.io/badge/dynamic/toml?url=https%3A%2F%2Fraw.githubusercontent.com%2Fwhiteducksoftware%2Fflock%2Frefs%2Fheads%2Fmaster%2Fpyproject.toml&query=%24.project.version&style=for-the-badge&logo=pypi&label=pip%20version">
|
|
4
|
+
<img alt="X (formerly Twitter) Follow" src="https://img.shields.io/twitter/follow/whiteduck_gmbh?style=for-the-badge&logo=X">
|
|
5
|
+
|
|
4
6
|
|
|
5
7
|
|
|
6
8
|
|
|
Binary file
|
|
@@ -52,7 +52,7 @@ async def main():
|
|
|
52
52
|
name="my_celebrity_age_agent",
|
|
53
53
|
input="a_person",
|
|
54
54
|
output="persons_age_in_days",
|
|
55
|
-
tools=[basic_tools.
|
|
55
|
+
tools=[basic_tools.web_search_duckduckgo, basic_tools.code_eval],
|
|
56
56
|
use_cache=True,
|
|
57
57
|
)
|
|
58
58
|
flock.add_agent(agent)
|
|
@@ -39,6 +39,8 @@ class RandomPerson:
|
|
|
39
39
|
favorite_movie: str
|
|
40
40
|
short_bio: str
|
|
41
41
|
|
|
42
|
+
RandomUserList = list[RandomPerson]
|
|
43
|
+
|
|
42
44
|
async def main():
|
|
43
45
|
|
|
44
46
|
flock = Flock(local_debug=True)
|
|
@@ -53,7 +55,7 @@ async def main():
|
|
|
53
55
|
people_agent = FlockAgent(
|
|
54
56
|
name="people_agent",
|
|
55
57
|
input="amount_of_people",
|
|
56
|
-
output="random_user_list:
|
|
58
|
+
output="random_user_list: RandomUserList",
|
|
57
59
|
use_cache=True,
|
|
58
60
|
)
|
|
59
61
|
flock.add_agent(people_agent)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Flock package initialization."""
|
|
@@ -28,9 +28,9 @@ JAEGER_TRANSPORT = config(
|
|
|
28
28
|
).lower() # Options: "grpc" or "http"
|
|
29
29
|
OTEL_SQL_DATABASE_NAME = config("OTEL_SQL_DATABASE", "flock_events.db")
|
|
30
30
|
OTEL_FILE_NAME = config("OTEL_FILE_NAME", "flock_events.jsonl")
|
|
31
|
-
OTEL_ENABLE_SQL = config("OTEL_ENABLE_SQL", True)
|
|
32
|
-
OTEL_ENABLE_FILE = config("OTEL_ENABLE_FILE", True)
|
|
33
|
-
OTEL_ENABLE_JAEGER = config("OTEL_ENABLE_JAEGER", True)
|
|
31
|
+
OTEL_ENABLE_SQL: bool = config("OTEL_ENABLE_SQL", True) == "True"
|
|
32
|
+
OTEL_ENABLE_FILE: bool = config("OTEL_ENABLE_FILE", True) == "True"
|
|
33
|
+
OTEL_ENABLE_JAEGER: bool = config("OTEL_ENABLE_JAEGER", True) == "True"
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
TELEMETRY = TelemetryConfig(
|
|
@@ -40,6 +40,7 @@ class Flock:
|
|
|
40
40
|
output_formatter: FormatterOptions = FormatterOptions(
|
|
41
41
|
PrettyPrintFormatter
|
|
42
42
|
),
|
|
43
|
+
show_cli_banner: bool = True,
|
|
43
44
|
):
|
|
44
45
|
"""Initialize the Flock orchestrator.
|
|
45
46
|
|
|
@@ -66,10 +67,10 @@ class Flock:
|
|
|
66
67
|
session_id = get_baggage("session_id")
|
|
67
68
|
if not session_id:
|
|
68
69
|
session_id = str(uuid.uuid4())
|
|
69
|
-
|
|
70
|
-
span.set_attribute("session_id", get_baggage("session_id"))
|
|
70
|
+
set_baggage("session_id", session_id)
|
|
71
71
|
|
|
72
|
-
|
|
72
|
+
if show_cli_banner:
|
|
73
|
+
display_banner()
|
|
73
74
|
|
|
74
75
|
self.agents: dict[str, FlockAgent] = {}
|
|
75
76
|
self.registry = Registry()
|
|
@@ -151,7 +151,7 @@ class FlockAgent(BaseModel, ABC, PromptParserMixin, DSPyIntegrationMixin):
|
|
|
151
151
|
),
|
|
152
152
|
)
|
|
153
153
|
|
|
154
|
-
tools: list[Callable[..., Any]] | None = Field(
|
|
154
|
+
tools: list[Callable[..., Any] | Any] | None = Field(
|
|
155
155
|
default=None,
|
|
156
156
|
description="An optional list of callable tools that the agent can leverage during execution.",
|
|
157
157
|
)
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import json
|
|
2
1
|
from typing import Any
|
|
3
2
|
|
|
4
3
|
from flock.core.logging.formatters.base_formatter import BaseFormatter
|
|
@@ -9,16 +8,18 @@ class PrettyPrintFormatter(BaseFormatter):
|
|
|
9
8
|
self, result: dict[str, Any], agent_name: str, **kwargs
|
|
10
9
|
) -> None:
|
|
11
10
|
"""Print an agent's result using Rich formatting."""
|
|
11
|
+
from devtools import pformat
|
|
12
12
|
from rich.console import Console
|
|
13
|
-
from rich.
|
|
13
|
+
from rich.panel import Panel
|
|
14
14
|
|
|
15
15
|
console = Console()
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
s = pformat(result, highlight=False)
|
|
18
|
+
|
|
19
|
+
console.print(Panel(s, title=agent_name, highlight=True))
|
|
19
20
|
|
|
20
21
|
def display_data(self, data: dict[str, Any], **kwargs) -> None:
|
|
21
22
|
"""Print an agent's result using Rich formatting."""
|
|
22
|
-
from devtools import
|
|
23
|
+
from devtools import sprint
|
|
23
24
|
|
|
24
|
-
|
|
25
|
+
sprint(data, sprint.green)
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
"""Mixin class for integrating with the dspy library."""
|
|
2
2
|
|
|
3
|
+
import inspect
|
|
3
4
|
import sys
|
|
4
5
|
from typing import Any, Literal
|
|
5
6
|
|
|
6
7
|
from flock.core.logging.logging import get_logger
|
|
7
|
-
from flock.core.util.input_resolver import split_top_level
|
|
8
|
+
from flock.core.util.input_resolver import get_callable_members, split_top_level
|
|
8
9
|
|
|
9
10
|
logger = get_logger("flock")
|
|
10
11
|
|
|
@@ -68,15 +69,19 @@ class DSPyIntegrationMixin:
|
|
|
68
69
|
# TODO: We have to find a way to avoid using eval here.
|
|
69
70
|
# This is a security risk, as it allows arbitrary code execution.
|
|
70
71
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
72
|
+
field_type = dspy.PythonInterpreter(
|
|
73
|
+
sys.modules[__name__].__dict__
|
|
74
|
+
| sys.modules["__main__"].__dict__
|
|
75
|
+
).execute(type_str)
|
|
76
|
+
|
|
77
|
+
# try:
|
|
78
|
+
# field_type = eval(type_str, sys.modules[__name__].__dict__)
|
|
79
|
+
# except Exception:
|
|
80
|
+
# field_type = eval(
|
|
81
|
+
# type_str, sys.modules["__main__"].__dict__
|
|
82
|
+
# )
|
|
77
83
|
|
|
78
84
|
except Exception:
|
|
79
|
-
# If evaluation fails, default to str.
|
|
80
85
|
field_type = str
|
|
81
86
|
|
|
82
87
|
return name, field_type, desc
|
|
@@ -143,6 +148,14 @@ class DSPyIntegrationMixin:
|
|
|
143
148
|
"""
|
|
144
149
|
import dspy
|
|
145
150
|
|
|
151
|
+
processed_tools = []
|
|
152
|
+
if self.tools:
|
|
153
|
+
for tool in self.tools:
|
|
154
|
+
if inspect.ismodule(tool) or inspect.isclass(tool):
|
|
155
|
+
processed_tools.extend(get_callable_members(tool))
|
|
156
|
+
else:
|
|
157
|
+
processed_tools.append(tool)
|
|
158
|
+
|
|
146
159
|
dspy_solver = None
|
|
147
160
|
|
|
148
161
|
if agent_type_override:
|
|
@@ -153,7 +166,7 @@ class DSPyIntegrationMixin:
|
|
|
153
166
|
if agent_type_override == "ReAct":
|
|
154
167
|
dspy.ReAct(
|
|
155
168
|
signature,
|
|
156
|
-
tools=
|
|
169
|
+
tools=processed_tools,
|
|
157
170
|
max_iters=10,
|
|
158
171
|
)
|
|
159
172
|
if agent_type_override == "Completion":
|
|
@@ -164,7 +177,7 @@ class DSPyIntegrationMixin:
|
|
|
164
177
|
if self.tools:
|
|
165
178
|
dspy_solver = dspy.ReAct(
|
|
166
179
|
signature,
|
|
167
|
-
tools=
|
|
180
|
+
tools=processed_tools,
|
|
168
181
|
max_iters=10,
|
|
169
182
|
)
|
|
170
183
|
else:
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
"""This module contains basic agentic tools for performing various tasks."""
|
|
2
|
+
|
|
3
|
+
import importlib
|
|
4
|
+
import os
|
|
5
|
+
from typing import Literal
|
|
6
|
+
|
|
7
|
+
from flock.core.logging.trace_and_logged import traced_and_logged
|
|
8
|
+
from flock.interpreter.python_interpreter import PythonInterpreter
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@traced_and_logged
|
|
12
|
+
def web_search_tavily(query: str):
|
|
13
|
+
if importlib.util.find_spec("tavily") is not None:
|
|
14
|
+
from tavily import TavilyClient
|
|
15
|
+
|
|
16
|
+
client = TavilyClient(api_key=os.getenv("TAVILY_API_KEY"))
|
|
17
|
+
try:
|
|
18
|
+
response = client.search(query, include_answer=True) # type: ignore
|
|
19
|
+
return response
|
|
20
|
+
except Exception:
|
|
21
|
+
raise
|
|
22
|
+
else:
|
|
23
|
+
raise ImportError(
|
|
24
|
+
"Optional tool dependencies not installed. Install with 'pip install flock-core[tools]'."
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
@traced_and_logged
|
|
29
|
+
def web_search_duckduckgo(
|
|
30
|
+
keywords: str, search_type: Literal["news", "web"] = "web"
|
|
31
|
+
):
|
|
32
|
+
try:
|
|
33
|
+
from duckduckgo_search import DDGS
|
|
34
|
+
|
|
35
|
+
if search_type == "news":
|
|
36
|
+
response = DDGS().news(keywords)
|
|
37
|
+
else:
|
|
38
|
+
response = DDGS().text(keywords)
|
|
39
|
+
|
|
40
|
+
return response
|
|
41
|
+
except Exception:
|
|
42
|
+
raise
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
@traced_and_logged
|
|
46
|
+
def get_web_content_as_markdown(url: str):
|
|
47
|
+
if (
|
|
48
|
+
importlib.util.find_spec("httpx") is not None
|
|
49
|
+
and importlib.util.find_spec("markdownify") is not None
|
|
50
|
+
):
|
|
51
|
+
import httpx
|
|
52
|
+
from markdownify import markdownify as md
|
|
53
|
+
|
|
54
|
+
try:
|
|
55
|
+
response = httpx.get(url)
|
|
56
|
+
response.raise_for_status()
|
|
57
|
+
markdown = md(response.text)
|
|
58
|
+
return markdown
|
|
59
|
+
except Exception:
|
|
60
|
+
raise
|
|
61
|
+
else:
|
|
62
|
+
raise ImportError(
|
|
63
|
+
"Optional tool dependencies not installed. Install with 'pip install flock-core[tools]'."
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
@traced_and_logged
|
|
68
|
+
def get_anything_as_markdown(url_or_file_path: str):
|
|
69
|
+
if importlib.util.find_spec("docling") is not None:
|
|
70
|
+
from docling.document_converter import DocumentConverter
|
|
71
|
+
|
|
72
|
+
try:
|
|
73
|
+
converter = DocumentConverter()
|
|
74
|
+
result = converter.convert(url_or_file_path)
|
|
75
|
+
markdown = result.document.export_to_markdown()
|
|
76
|
+
return markdown
|
|
77
|
+
except Exception:
|
|
78
|
+
raise
|
|
79
|
+
else:
|
|
80
|
+
raise ImportError(
|
|
81
|
+
"Optional tool dependencies not installed. Install with 'pip install flock-core[all-tools]'."
|
|
82
|
+
)
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
@traced_and_logged
|
|
86
|
+
def evaluate_math(expression: str) -> float:
|
|
87
|
+
try:
|
|
88
|
+
result = PythonInterpreter(
|
|
89
|
+
{},
|
|
90
|
+
[
|
|
91
|
+
"os",
|
|
92
|
+
"math",
|
|
93
|
+
"random",
|
|
94
|
+
"datetime",
|
|
95
|
+
"time",
|
|
96
|
+
"string",
|
|
97
|
+
"collections",
|
|
98
|
+
"itertools",
|
|
99
|
+
"functools",
|
|
100
|
+
"typing",
|
|
101
|
+
"enum",
|
|
102
|
+
"json",
|
|
103
|
+
"ast",
|
|
104
|
+
],
|
|
105
|
+
verbose=True,
|
|
106
|
+
).execute(expression)
|
|
107
|
+
return result
|
|
108
|
+
except Exception:
|
|
109
|
+
raise
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
@traced_and_logged
|
|
113
|
+
def code_eval(python_code: str) -> str:
|
|
114
|
+
try:
|
|
115
|
+
result = PythonInterpreter(
|
|
116
|
+
{},
|
|
117
|
+
[
|
|
118
|
+
"os",
|
|
119
|
+
"math",
|
|
120
|
+
"random",
|
|
121
|
+
"datetime",
|
|
122
|
+
"time",
|
|
123
|
+
"string",
|
|
124
|
+
"collections",
|
|
125
|
+
"itertools",
|
|
126
|
+
"functools",
|
|
127
|
+
"typing",
|
|
128
|
+
"enum",
|
|
129
|
+
"json",
|
|
130
|
+
"ast",
|
|
131
|
+
],
|
|
132
|
+
verbose=True,
|
|
133
|
+
).execute(python_code)
|
|
134
|
+
return result
|
|
135
|
+
except Exception:
|
|
136
|
+
raise
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
@traced_and_logged
|
|
140
|
+
def get_current_time() -> str:
|
|
141
|
+
import datetime
|
|
142
|
+
|
|
143
|
+
time = datetime.datetime.now().isoformat()
|
|
144
|
+
return time
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
@traced_and_logged
|
|
148
|
+
def count_words(text: str) -> int:
|
|
149
|
+
count = len(text.split())
|
|
150
|
+
return count
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
@traced_and_logged
|
|
154
|
+
def extract_urls(text: str) -> list[str]:
|
|
155
|
+
import re
|
|
156
|
+
|
|
157
|
+
url_pattern = r"https?://(?:[-\w.]|(?:%[\da-fA-F]{2}))+"
|
|
158
|
+
urls = re.findall(url_pattern, text)
|
|
159
|
+
return urls
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
@traced_and_logged
|
|
163
|
+
def extract_numbers(text: str) -> list[float]:
|
|
164
|
+
import re
|
|
165
|
+
|
|
166
|
+
numbers = [float(x) for x in re.findall(r"-?\d*\.?\d+", text)]
|
|
167
|
+
return numbers
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
@traced_and_logged
|
|
171
|
+
def json_parse_safe(text: str) -> dict:
|
|
172
|
+
import json
|
|
173
|
+
|
|
174
|
+
try:
|
|
175
|
+
result = json.loads(text)
|
|
176
|
+
return result
|
|
177
|
+
except Exception:
|
|
178
|
+
return {}
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
@traced_and_logged
|
|
182
|
+
def save_to_file(content: str, filename: str):
|
|
183
|
+
try:
|
|
184
|
+
with open(filename, "w") as f:
|
|
185
|
+
f.write(content)
|
|
186
|
+
except Exception:
|
|
187
|
+
raise
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
@traced_and_logged
|
|
191
|
+
def read_from_file(filename: str) -> str:
|
|
192
|
+
try:
|
|
193
|
+
with open(filename) as f:
|
|
194
|
+
content = f.read()
|
|
195
|
+
return content
|
|
196
|
+
except Exception:
|
|
197
|
+
raise
|
|
@@ -10,23 +10,6 @@ from flock.core.logging.trace_and_logged import traced_and_logged
|
|
|
10
10
|
|
|
11
11
|
@traced_and_logged
|
|
12
12
|
def create_user_stories_as_github_issue(title: str, body: str) -> str:
|
|
13
|
-
"""Create a new GitHub issue representing a user story.
|
|
14
|
-
|
|
15
|
-
This function creates an issue in a GitHub repository using the specified title and body.
|
|
16
|
-
The title is used as the issue title, and the body should contain the full user story
|
|
17
|
-
description along with a formatted list of acceptance criteria. The following
|
|
18
|
-
environment variables must be set for this function to work correctly:
|
|
19
|
-
|
|
20
|
-
- GITHUB_PAT: Personal Access Token for GitHub API authentication.
|
|
21
|
-
- GITHUB_REPO: Repository identifier in the format "owner/repo".
|
|
22
|
-
|
|
23
|
-
Parameters:
|
|
24
|
-
title (str): The title for the GitHub issue (user story).
|
|
25
|
-
body (str): The detailed description including acceptance criteria.
|
|
26
|
-
|
|
27
|
-
Returns:
|
|
28
|
-
str: A message indicating whether the issue was created successfully or not.
|
|
29
|
-
"""
|
|
30
13
|
github_pat = os.getenv("GITHUB_PAT")
|
|
31
14
|
github_repo = os.getenv("GITHUB_REPO")
|
|
32
15
|
|
|
@@ -49,22 +32,6 @@ def create_user_stories_as_github_issue(title: str, body: str) -> str:
|
|
|
49
32
|
|
|
50
33
|
@traced_and_logged
|
|
51
34
|
def upload_readme(content: str):
|
|
52
|
-
"""Upload or update the README.md file in a GitHub repository.
|
|
53
|
-
|
|
54
|
-
This function uses the GitHub API to either create a new README.md file or update an
|
|
55
|
-
existing one in the specified repository. It encodes the provided content to base64 before
|
|
56
|
-
sending it via the API. The function requires the following environment variables to be set:
|
|
57
|
-
|
|
58
|
-
- GITHUB_USERNAME: Your GitHub username.
|
|
59
|
-
- GITHUB_REPO: The name of the repository.
|
|
60
|
-
- GITHUB_PAT: Your GitHub Personal Access Token for authentication.
|
|
61
|
-
|
|
62
|
-
Parameters:
|
|
63
|
-
content (str): The text content to be written into the README.md file.
|
|
64
|
-
|
|
65
|
-
Raises:
|
|
66
|
-
ValueError: If any of the required environment variables are missing.
|
|
67
|
-
"""
|
|
68
35
|
GITHUB_USERNAME = os.getenv("GITHUB_USERNAME")
|
|
69
36
|
REPO_NAME = os.getenv("GITHUB_REPO")
|
|
70
37
|
GITHUB_TOKEN = os.getenv("GITHUB_PAT")
|
|
@@ -3,6 +3,25 @@
|
|
|
3
3
|
from flock.core.context.context import FlockContext
|
|
4
4
|
|
|
5
5
|
|
|
6
|
+
def get_callable_members(obj):
|
|
7
|
+
"""Extract all callable (methods/functions) members from a module or class.
|
|
8
|
+
Returns a list of callable objects.
|
|
9
|
+
"""
|
|
10
|
+
import inspect
|
|
11
|
+
|
|
12
|
+
# Get all members of the object
|
|
13
|
+
members = inspect.getmembers(obj)
|
|
14
|
+
|
|
15
|
+
# Filter for callable members that don't start with underscore (to exclude private/special methods)
|
|
16
|
+
callables = [
|
|
17
|
+
member[1]
|
|
18
|
+
for member in members
|
|
19
|
+
if inspect.isroutine(member[1]) and not member[0].startswith("_")
|
|
20
|
+
]
|
|
21
|
+
|
|
22
|
+
return callables
|
|
23
|
+
|
|
24
|
+
|
|
6
25
|
def split_top_level(s: str) -> list[str]:
|
|
7
26
|
"""Split a string on commas that are not enclosed within brackets, parentheses, or quotes.
|
|
8
27
|
|