flock-core 0.3.20__tar.gz → 0.3.22__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.3.22/.cursorignore +4 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/.gitignore +8 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/.project/SPECS.md +9 -1
- flock_core-0.3.22/.project/TASKS.md +47 -0
- flock_core-0.3.22/.project/USERSTORIES.md +21 -0
- flock_core-0.3.22/.project/planning_prompt.md +184 -0
- flock_core-0.3.22/.project/specs/09_cli_system.md +119 -0
- flock_core-0.3.22/.project/tasks/done/001-env-settings-editor.md +82 -0
- flock_core-0.3.22/.project/tasks/done/002-env-settings-ui-components.md +67 -0
- flock_core-0.3.22/.project/tasks/done/003-env-settings-file-operations.md +66 -0
- flock_core-0.3.22/.project/tasks/done/004-settings-security-features.md +66 -0
- flock_core-0.3.22/.project/tasks/done/005-env-profile-switching.md +73 -0
- flock_core-0.3.22/.project/userstories/US001-Settings-Editor.md +186 -0
- flock_core-0.3.22/.project/userstories/done/US001-Settings-Editor.md +186 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/.vscode/launch.json +10 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/.vscode/tasks.json +21 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/PKG-INFO +1 -1
- flock_core-0.3.22/docs/changelog.md +26 -0
- flock_core-0.3.22/docs/cli/index.md +62 -0
- flock_core-0.3.22/docs/cli/settings-editor.md +117 -0
- flock_core-0.3.22/examples/03_apps/dynamic_apps/main.py +53 -0
- flock_core-0.3.22/examples/03_apps/story_gen/main.py +117 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/mkdocs.yml +5 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/pyproject.toml +16 -1
- flock_core-0.3.22/scripts/code_collector.py +605 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/__init__.py +7 -1
- flock_core-0.3.22/src/flock/cli/settings.py +857 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/flock_agent.py +1 -8
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/flock_evaluator.py +4 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/flock_factory.py +2 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/logging/formatters/themed_formatter.py +0 -7
- flock_core-0.3.22/src/flock/core/serialization/__init__.py +7 -0
- flock_core-0.3.22/src/flock/core/serialization/json_encoder.py +41 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/modules/output/output_module.py +7 -4
- flock_core-0.3.22/tests/unit/core/test_flock_agent_unit.py +257 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/uv.lock +1 -1
- flock_core-0.3.20/examples/03_apps/story_gen/main.py +0 -656
- flock_core-0.3.20/src/flock/cli/settings.py +0 -1
- flock_core-0.3.20/tests/unit/core/test_flock_agent_unit.py +0 -18
- {flock_core-0.3.20 → flock_core-0.3.22}/.devcontainer/devcontainer.json +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/.env_template +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/.github/workflows/.gitkeep +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/.github/workflows/deploy-documentation.yml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/.github/workflows/deploy-whiteduck-pypi.yml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/.project/specs/01_core_architecture.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/.project/specs/02_agent_factory.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/.project/specs/03_module_system.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/.project/specs/04_evaluator_system.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/.project/specs/05_router_system.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/.project/specs/06_tool_system.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/.project/specs/07_execution_system.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/.project/specs/08_context_system.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/.vscode/settings.json +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/LICENSE +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/README.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/advanced/complex-workflows.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/advanced/custom-agents.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/advanced/performance.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/advanced/testing.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/api/flock-core.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/api/flockagent.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/api/types.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/api/utilities.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/architecture/components.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/architecture/design-decisions.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/architecture/overview.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/assets/drawio/architecture.drawio +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/assets/images/cli_outputs/out.png +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/assets/images/components_chart.png +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/assets/images/examples/01_01.png +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/assets/images/examples/01_02.png +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/assets/images/examples/01_03.png +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/assets/images/examples/01_04.png +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/assets/images/examples/01_05.png +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/assets/images/examples/01_06.png +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/assets/images/flock.png +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/assets/images/flock_cli.png +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/assets/images/flow_chart.png +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/assets/images/getting-started/first_agent_00.png +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/assets/images/hummingbird.png +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/assets/images/icon.png +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/assets/images/icon.png~ +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/assets/images/logo.png +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/assets/images/memory_concepts.png +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/assets/images/memory_flow.png +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/assets/images/memory_flow_chart.png +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/contributing/code-style.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/contributing/development.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/contributing/documentation.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/contributing/testing.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/core-concepts/agents.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/core-concepts/declarative.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/core-concepts/error-handling.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/core-concepts/evaluators.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/core-concepts/memory.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/core-concepts/modules/memory.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/core-concepts/modules/metrics.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/core-concepts/modules/output.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/core-concepts/modules.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/core-concepts/routers/agent.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/core-concepts/routers/default.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/core-concepts/routers/llm.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/core-concepts/routers.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/core-concepts/tools/azure-tools.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/core-concepts/tools/overview.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/core-concepts/type-system.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/core-concepts/workflows.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/create_doc_boilerplate.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/deployment/monitoring.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/deployment/production-setup.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/deployment/scalability.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/deployment/security.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/development/dev.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/development/replace-dspy/implementation_plan.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/development/topics.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/examples/chain-gang.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/examples/hello-flock.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/examples/pydantic.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/examples/type-system.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/features/agent-chaining.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/features/agent-definition.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/features/lifecycle-hooks.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/features/pydantic.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/features/type-safety.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/getting-started/concepts.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/getting-started/configuration.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/getting-started/installation.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/getting-started/quickstart.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/index.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/integrations/dspy.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/integrations/litellm.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/integrations/rest-api.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/integrations/tavily.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/integrations/temporal.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/release-notes/release_notes.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/stylesheets/extra.css +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/tutorials/blog-generator.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/tutorials/custom-tools.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/tutorials/error-recovery.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/docs/tutorials/multi-agent.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/01_introduction/01_simple_example.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/01_introduction/02_typed_output.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/01_introduction/03_tool_and_code_agent.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/01_introduction/04_descriptions.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/01_introduction/05_typed_output2.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/01_introduction/06_simple_hand_off.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/02_concepts/api/api_client.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/02_concepts/api/api_server.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/02_concepts/context/context.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/02_concepts/evaluator/multi_hops_memory.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/02_concepts/evaluator/multi_hops_zep.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/02_concepts/modules/use_modules.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/02_concepts/router/router_example.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/02_concepts/tools/azure_tools_example.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/03_apps/roguelike/game.py +0 -0
- /flock_core-0.3.20/examples/03_apps/story_gen/main copy.py → /flock_core-0.3.22/examples/03_apps/story_gen/cursor.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/04_comparison/rag_comparison/rag.ipynb +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/05_documentation/getting-started/first_agent_01.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/05_documentation/getting-started/first_agent_02.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/05_documentation/getting-started/first_agent_03.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/README.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/playground/02_cook_book/flock_without_llms.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/playground/02_cook_book/long_research_no_handoff.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/playground/02_cook_book/painting_by_numbers.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/playground/02_cook_book/project_manager.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/playground/02_cook_book/repo_analyzer/repo_analyzer.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/playground/02_cook_book/repo_analyzer/repo_analyzer_llm.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/playground/02_cook_book/save_and_load/load_01.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/playground/02_cook_book/save_and_load/load_02.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/playground/02_cook_book/save_and_load/load_03.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/playground/02_cook_book/save_and_load/load_04.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/playground/02_cook_book/save_and_load/save_01.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/playground/02_cook_book/save_and_load/save_02.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/playground/02_cook_book/save_and_load/save_03.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/playground/02_cook_book/self_improvement_with_memory.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/playground/hier/her_vis.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/playground/hier/hier_mem.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/playground/misc/memory.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/playground/misc/self_learner.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/playground/misc/self_learner2.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/examples/playground/website/app.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/requirements.txt +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/cli/assets/release_notes.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/cli/constants.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/cli/create_agent.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/cli/create_flock.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/cli/load_agent.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/cli/load_examples.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/cli/load_flock.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/cli/load_release_notes.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/config.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/__init__.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/context/context.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/context/context_manager.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/context/context_vars.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/execution/local_executor.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/execution/temporal_executor.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/flock.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/flock_api.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/flock_module.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/flock_router.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/interpreter/python_interpreter.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/logging/__init__.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/logging/formatters/enum_builder.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/logging/formatters/theme_builder.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/logging/formatters/themes.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/logging/logging.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/logging/span_middleware/baggage_span_processor.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/logging/telemetry.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/logging/telemetry_exporter/base_exporter.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/logging/telemetry_exporter/file_exporter.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/logging/telemetry_exporter/sqlite_exporter.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/logging/trace_and_logged.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/mixin/dspy_integration.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/mixin/prompt_parser.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/registry/agent_registry.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/serialization/secure_serializer.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/serialization/serializable.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/tools/azure_tools.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/tools/basic_tools.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/tools/dev_tools/github.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/tools/llm_tools.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/tools/markdown_tools.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/util/cli_helper.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/util/hydrator.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/core/util/input_resolver.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/evaluators/declarative/declarative_evaluator.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/evaluators/memory/azure_search_evaluator.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/evaluators/memory/memory_evaluator.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/evaluators/natural_language/natural_language_evaluator.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/evaluators/zep/zep_evaluator.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/modules/azure-search/azure_search_module.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/modules/callback/callback_module.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/modules/memory/memory_module.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/modules/memory/memory_parser.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/modules/memory/memory_storage.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/modules/performance/metrics_module.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/modules/zep/zep_module.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/platform/docker_tools.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/platform/jaeger_install.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/routers/__init__.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/routers/agent/__init__.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/routers/agent/agent_router.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/routers/agent/handoff_agent.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/routers/default/__init__.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/routers/default/default_router.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/routers/llm/__init__.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/routers/llm/llm_router.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/3024-day.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/3024-night.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/aardvark-blue.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/abernathy.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/adventure.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/adventuretime.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/afterglow.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/alabaster.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/alienblood.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/andromeda.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/apple-classic.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/apple-system-colors.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/arcoiris.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/argonaut copy.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/argonaut.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/arthur.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/ateliersulphurpool.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/atom.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/atom_test.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/atomonelight.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/aurora.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/ayu copy.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/ayu-light.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/ayu-mirage.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/ayu.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/banana-blueberry.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/batman.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/belafonte-day.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/belafonte-night.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/birdsofparadise.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/blazer.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/blue-matrix.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/blueberrypie.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/bluedolphin.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/blulocodark.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/blulocolight.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/borland.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/breeze.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/bright-lights.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/broadcast.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/brogrammer.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/builtin-dark.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/builtin-light.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/builtin-pastel-dark.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/builtin-solarized-dark.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/builtin-solarized-light.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/builtin-tango-dark.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/builtin-tango-light.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/c64.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/calamity.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/catppuccin-frappe.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/catppuccin-latte.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/catppuccin-macchiato.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/catppuccin-mocha.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/cga.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/chalk.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/chalkboard.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/challengerdeep.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/chester.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/ciapre.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/clrs.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/cobalt-neon.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/cobalt2.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/coffee-theme.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/crayonponyfish.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/cutiepro.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/cyberdyne.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/cyberpunk.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/cyberpunkscarletprotocol.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/dark+.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/dark-pastel.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/darkermatrix.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/darkmatrix.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/darkside.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/dayfox.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/deep.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/desert.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/dimidium.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/dimmedmonokai.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/django.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/djangorebornagain.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/djangosmooth.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/doom-peacock.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/doomone.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/dotgov.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/dracula+.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/dracula.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/duckbones.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/duotone-dark.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/earthsong.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/elemental.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/elementary.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/encom.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/espresso-libre.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/espresso.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/everblush.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/fahrenheit.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/fairyfloss.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/farmhouse-dark.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/farmhouse-light.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/fideloper.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/firefly-traditional.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/firefoxdev.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/firewatch.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/fishtank.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/flat.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/flatland.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/flexoki-dark.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/flexoki-light.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/floraverse.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/forestblue.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/framer.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/frontenddelight.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/funforrest.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/galaxy.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/galizur.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/github-dark.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/github.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/glacier.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/grape.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/grass.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/grey-green.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/gruber-darker.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/gruvboxdark.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/gruvboxdarkhard.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/gruvboxlight.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/guezwhoz.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/hacktober.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/hardcore.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/harper.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/hax0r-blue.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/hax0r-gr33n.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/hax0r-r3d.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/highway.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/hipster-green.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/hivacruz.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/homebrew.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/hopscotch.256.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/hopscotch.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/hurtado.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/hybrid.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/ic-green-ppl.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/ic-orange-ppl.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/iceberg-dark.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/iceberg-light.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/idea.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/idletoes.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/ir-black.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/iterm2-dark-background.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/iterm2-default.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/iterm2-light-background.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/iterm2-pastel-dark-background.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/iterm2-smoooooth.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/iterm2-solarized-dark.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/iterm2-solarized-light.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/iterm2-tango-dark.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/iterm2-tango-light.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/jackie-brown.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/japanesque.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/jellybeans.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/jetbrains-darcula.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/jubi.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/kanagawabones.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/kibble.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/kolorit.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/konsolas.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/kurokula.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/lab-fox.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/laser.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/later-this-evening.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/lavandula.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/liquidcarbon.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/liquidcarbontransparent.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/liquidcarbontransparentinverse.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/lovelace.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/man-page.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/mariana.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/material.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/materialdark.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/materialdarker.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/materialdesigncolors.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/materialocean.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/mathias.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/matrix.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/medallion.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/mellifluous.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/midnight-in-mojave.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/mirage.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/misterioso.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/molokai.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/monalisa.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/monokai-remastered.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/monokai-soda.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/monokai-vivid.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/n0tch2k.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/neobones-dark.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/neobones-light.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/neon.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/neopolitan.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/neutron.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/night-owlish-light.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/nightfox.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/nightlion-v1.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/nightlion-v2.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/niji.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/nocturnal-winter.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/nord-light.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/nord.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/novel.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/nvimdark.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/nvimlight.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/obsidian.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/ocean.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/oceanic-next.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/oceanicmaterial.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/ollie.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/onehalfdark.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/onehalflight.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/operator-mono-dark.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/overnight-slumber.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/oxocarbon.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/palenighthc.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/pandora.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/paraiso-dark.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/paulmillr.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/pencildark.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/pencillight.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/peppermint.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/piatto-light.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/pnevma.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/popping-and-locking.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/primary.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/pro-light.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/pro.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/purple-rain.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/purplepeter.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/rapture.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/raycast-dark.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/raycast-light.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/rebecca.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/red-alert.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/red-planet.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/red-sands.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/relaxed.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/retro.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/rippedcasts.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/rose-pine-dawn.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/rose-pine-moon.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/rose-pine.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/rouge-2.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/royal.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/ryuuko.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/sakura.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/scarlet-protocol.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/seafoam-pastel.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/seashells.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/seoulbones-dark.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/seoulbones-light.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/seti.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/shades-of-purple.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/shaman.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/slate.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/sleepyhollow.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/smyck.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/snazzy.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/softserver.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/solarized-darcula.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/solarized-dark---patched.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/solarized-dark-higher-contrast.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/spacedust.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/spacegray-eighties-dull.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/spacegray-eighties.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/spacegray.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/spiderman.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/spring.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/square.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/sublette.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/subliminal.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/sugarplum.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/sundried.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/symfonic.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/synthwave-everything.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/synthwave.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/synthwavealpha.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/tango-adapted.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/tango-half-adapted.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/teerb.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/terafox.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/terminal-basic.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/thayer-bright.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/the-hulk.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/tinacious-design-(dark).toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/tinacious-design-(light).toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/tokyonight-day.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/tokyonight-storm.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/tokyonight.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/tomorrow-night-blue.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/tomorrow-night-bright.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/tomorrow-night-burns.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/tomorrow-night-eighties.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/tomorrow-night.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/tomorrow.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/toychest.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/treehouse.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/twilight.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/ubuntu.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/ultradark.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/ultraviolent.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/underthesea.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/unikitty.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/urple.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/vaughn.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/vesper.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/vibrantink.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/vimbones.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/violet-dark.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/violet-light.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/warmneon.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/wez.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/whimsy.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/wildcherry.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/wilmersdorf.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/wombat.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/wryan.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/xcodedark.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/xcodedarkhc.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/xcodelight.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/xcodelighthc.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/xcodewwdc.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/zenbones-dark.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/zenbones-light.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/zenbones.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/zenburn.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/zenburned.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/zenwritten-dark.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/themes/zenwritten-light.toml +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/workflow/__init__.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/workflow/activities.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/workflow/agent_activities.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/workflow/temporal_setup.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/src/flock/workflow/workflow.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/tests/PLAN.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/tests/TESTING.md +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/tests/__init__.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/tests/api/__init__.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/tests/cli/__init__.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/tests/conftest.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/tests/e2e/__init__.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/tests/e2e/local/__init__.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/tests/e2e/local/test_simple_workflow_local.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/tests/e2e/temporal/__init__.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/tests/fixtures/__init__.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/tests/integration/__init__.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/tests/integration/core/__init__.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/tests/integration/core/test_flock_agent_integration.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/tests/integration/modules/__init__.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/tests/integration/temporal/__init__.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/tests/pytest.ini +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/tests/unit/__init__.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/tests/unit/core/__init__.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/tests/unit/evaluators/__init__.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/tests/unit/modules/__init__.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/tests/unit/routers/__init__.py +0 -0
- {flock_core-0.3.20 → flock_core-0.3.22}/tests/unit/utils/__init__.py +0 -0
|
@@ -6,6 +6,11 @@ __pycache__/
|
|
|
6
6
|
# C extensions
|
|
7
7
|
*.so
|
|
8
8
|
|
|
9
|
+
# ignore all .env* files except .env_template
|
|
10
|
+
*.env*
|
|
11
|
+
!*.env_template
|
|
12
|
+
|
|
13
|
+
|
|
9
14
|
# Distribution / packaging
|
|
10
15
|
.Python
|
|
11
16
|
build/
|
|
@@ -33,6 +38,9 @@ news/
|
|
|
33
38
|
.chroma/
|
|
34
39
|
hierarchical_memory/
|
|
35
40
|
.repomix-output.txt
|
|
41
|
+
output/
|
|
42
|
+
!src/flock/modules/output/output_module.py
|
|
43
|
+
.env.*
|
|
36
44
|
|
|
37
45
|
# PyInstaller
|
|
38
46
|
# Usually these files are written by a python script from a template
|
|
@@ -53,6 +53,12 @@ Flock is a declarative agent framework that focuses on simplifying the creation
|
|
|
53
53
|
- Defines context propagation requirements
|
|
54
54
|
- Specifies context access patterns
|
|
55
55
|
|
|
56
|
+
9. [**CLI System**](specs/09_cli_system.md)
|
|
57
|
+
- Defines the command-line interface architecture
|
|
58
|
+
- Specifies modules like the Settings Editor and Theme Builder
|
|
59
|
+
- Documents environment profile management
|
|
60
|
+
- Outlines UI components and navigation patterns
|
|
61
|
+
|
|
56
62
|
## Design Principles
|
|
57
63
|
|
|
58
64
|
These specifications reveal several core design principles that guided the development of Flock:
|
|
@@ -62,6 +68,7 @@ These specifications reveal several core design principles that guided the devel
|
|
|
62
68
|
3. **Declarative Over Imperative** - Focus on what agents do, not how they do it
|
|
63
69
|
4. **Production Readiness** - Support for distributed execution, observability, and error handling
|
|
64
70
|
5. **Developer Experience** - Simplified API with sensible defaults and clear patterns
|
|
71
|
+
6. **User-Friendly Interface** - Intuitive CLI with clear navigation and helpful feedback
|
|
65
72
|
|
|
66
73
|
## Implementation Status
|
|
67
74
|
|
|
@@ -75,4 +82,5 @@ Based on the specifications, potential future enhancements could include:
|
|
|
75
82
|
2. Enhanced observability and debugging tools
|
|
76
83
|
3. Additional module types for common agent patterns
|
|
77
84
|
4. Expanded router capabilities for complex workflows
|
|
78
|
-
5. Integration with additional execution engines beyond Temporal
|
|
85
|
+
5. Integration with additional execution engines beyond Temporal
|
|
86
|
+
6. Extended CLI functionality for agent management and monitoring
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Project Tasks
|
|
2
|
+
|
|
3
|
+
## Environment Settings Editor
|
|
4
|
+
|
|
5
|
+
The settings editor is a key feature of the Flock CLI that allows users to view, edit, add, and delete environment variables in the `.env` file.
|
|
6
|
+
|
|
7
|
+
### Implementation Tasks
|
|
8
|
+
|
|
9
|
+
| ID | Task | Priority | Status | Description |
|
|
10
|
+
|----|------|----------|--------|-------------|
|
|
11
|
+
| 001 | [Settings Editor Implementation](tasks/done/001-env-settings-editor.md) | High | Completed | Implement the core settings editor functionality |
|
|
12
|
+
| 002 | [Settings Editor UI Components](tasks/done/002-env-settings-ui-components.md) | High | Completed | Design and implement UI components for the settings editor |
|
|
13
|
+
| 003 | [Environment File Operations](tasks/done/003-env-settings-file-operations.md) | High | Completed | Implement robust file operations for the .env file |
|
|
14
|
+
| 004 | [Settings Security Features](tasks/done/004-settings-security-features.md) | High | Completed | Implement security features for protecting sensitive information |
|
|
15
|
+
| 005 | [Environment Profile Switching](tasks/done/005-env-profile-switching.md) | High | Completed | Implement feature to switch between multiple environment profiles (.env configurations) |
|
|
16
|
+
|
|
17
|
+
## Implementation Approach
|
|
18
|
+
|
|
19
|
+
The settings editor was implemented in stages:
|
|
20
|
+
|
|
21
|
+
1. **Core Functionality**: Parse and manipulate .env files, implement the main settings editor menu
|
|
22
|
+
2. **UI Components**: Create a user-friendly interface with proper formatting and navigation
|
|
23
|
+
3. **File Operations**: Ensure robust reading and writing of .env files with proper error handling
|
|
24
|
+
4. **Security Features**: Add protection for sensitive information like API keys and tokens
|
|
25
|
+
5. **Profile Management**: Implement ability to create and switch between different environment profiles
|
|
26
|
+
|
|
27
|
+
## Definition of Done
|
|
28
|
+
|
|
29
|
+
The implementation is considered complete as:
|
|
30
|
+
|
|
31
|
+
- Users can access the settings editor from the main CLI menu
|
|
32
|
+
- All core functionality (view, edit, add, delete) works correctly
|
|
33
|
+
- Users can switch between different environment profiles (dev, test, prod)
|
|
34
|
+
- The UI is intuitive and provides clear feedback
|
|
35
|
+
- File operations are robust and prevent data loss
|
|
36
|
+
- Sensitive information is properly protected
|
|
37
|
+
- Code is well-documented and follows project conventions
|
|
38
|
+
|
|
39
|
+
## Next Steps
|
|
40
|
+
|
|
41
|
+
After completing the settings editor, potential future enhancements could include:
|
|
42
|
+
|
|
43
|
+
- Settings groups/categories for better organization
|
|
44
|
+
- Import/export functionality for settings
|
|
45
|
+
- Presets for common configurations
|
|
46
|
+
- Integration with cloud-based secrets management
|
|
47
|
+
- Command history and autocomplete features
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# User Stories
|
|
2
|
+
|
|
3
|
+
This document provides an index of all user stories for the Flock project.
|
|
4
|
+
|
|
5
|
+
## Current User Stories
|
|
6
|
+
|
|
7
|
+
No active user stories.
|
|
8
|
+
|
|
9
|
+
## Completed User Stories
|
|
10
|
+
|
|
11
|
+
| ID | Title | Priority | Status | Description |
|
|
12
|
+
|----|-------|----------|--------|-------------|
|
|
13
|
+
| [US001](userstories/done/US001-Settings-Editor.md) | Environment Settings Editor with Profile Management | High | Completed | Implement a settings editor with profile switching capability |
|
|
14
|
+
|
|
15
|
+
## User Story Status Explanation
|
|
16
|
+
|
|
17
|
+
- **Not Started**: The user story has been defined but no work has been done
|
|
18
|
+
- **In Progress**: Work has started on the user story
|
|
19
|
+
- **Completed**: All tasks associated with the user story have been completed
|
|
20
|
+
- **On Hold**: The user story is temporarily paused
|
|
21
|
+
- **Blocked**: The user story cannot proceed due to external dependencies
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
# Planning Prompt Template
|
|
2
|
+
|
|
3
|
+
Use this prompt template when you want to create a new user story and related tasks for a feature in the Flock project.
|
|
4
|
+
|
|
5
|
+
## Prompt Template
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
I need to implement a new feature in my Flock CLI application. The feature is [BRIEF DESCRIPTION OF FEATURE].
|
|
9
|
+
|
|
10
|
+
Please help me plan this implementation by:
|
|
11
|
+
|
|
12
|
+
1. Creating a detailed user story that describes:
|
|
13
|
+
- The current state of the system related to this feature
|
|
14
|
+
- The desired state after implementation
|
|
15
|
+
- Technical details about the project structure and relevant files
|
|
16
|
+
- Clear acceptance criteria
|
|
17
|
+
- UI mockups (if applicable)
|
|
18
|
+
- Any edge cases or special considerations
|
|
19
|
+
|
|
20
|
+
2. Breaking down the implementation into specific tasks, where each task:
|
|
21
|
+
- Has a clear focus and scope
|
|
22
|
+
- Includes technical requirements
|
|
23
|
+
- Has a step-by-step implementation plan
|
|
24
|
+
- Defines "done" criteria
|
|
25
|
+
- Lists dependencies and related tasks
|
|
26
|
+
- Estimates effort required
|
|
27
|
+
|
|
28
|
+
3. Creating a task index that organizes all tasks with their priorities and statuses
|
|
29
|
+
|
|
30
|
+
Follow the structure and format used in the Settings Editor feature:
|
|
31
|
+
- Create files in `.project/userstories/` for the user story
|
|
32
|
+
- Create files in `.project/tasks/` for each task
|
|
33
|
+
- Update `.project/USERSTORIES.md` to include the new user story
|
|
34
|
+
- Update `.project/TASKS.md` to include the new tasks
|
|
35
|
+
|
|
36
|
+
Additional context about my project:
|
|
37
|
+
[PROVIDE ANY RELEVANT CONTEXT ABOUT YOUR PROJECT, SUCH AS CURRENT STRUCTURE, LIBRARIES USED, OR SPECIFIC REQUIREMENTS]
|
|
38
|
+
|
|
39
|
+
Before continuing with implementing the code, please let me review the user story and tasks first.
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Example Use
|
|
43
|
+
|
|
44
|
+
Here's an example of how to use this template for a specific feature:
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
I need to implement a new feature in my Flock CLI application. The feature is a command-line plugin system that allows users to create, install, and manage custom plugins to extend the functionality of the CLI.
|
|
48
|
+
|
|
49
|
+
Please help me plan this implementation by:
|
|
50
|
+
|
|
51
|
+
1. Creating a detailed user story that describes:
|
|
52
|
+
- The current state of the system related to this feature
|
|
53
|
+
- The desired state after implementation
|
|
54
|
+
- Technical details about the project structure and relevant files
|
|
55
|
+
- Clear acceptance criteria
|
|
56
|
+
- UI mockups (if applicable)
|
|
57
|
+
- Any edge cases or special considerations
|
|
58
|
+
|
|
59
|
+
2. Breaking down the implementation into specific tasks, where each task:
|
|
60
|
+
- Has a clear focus and scope
|
|
61
|
+
- Includes technical requirements
|
|
62
|
+
- Has a step-by-step implementation plan
|
|
63
|
+
- Defines "done" criteria
|
|
64
|
+
- Lists dependencies and related tasks
|
|
65
|
+
- Estimates effort required
|
|
66
|
+
|
|
67
|
+
3. Creating a task index that organizes all tasks with their priorities and statuses
|
|
68
|
+
|
|
69
|
+
Follow the structure and format used in the Settings Editor feature:
|
|
70
|
+
- Create files in `.project/userstories/` for the user story
|
|
71
|
+
- Create files in `.project/tasks/` for each task
|
|
72
|
+
- Update `.project/USERSTORIES.md` to include the new user story
|
|
73
|
+
- Update `.project/TASKS.md` to include the new tasks
|
|
74
|
+
|
|
75
|
+
Additional context about my project:
|
|
76
|
+
- The CLI is built in Python using Rich for UI and Questionary for input
|
|
77
|
+
- We use a plugin architecture similar to the one in Poetry/Pip
|
|
78
|
+
- Plugins should be installable from Git repositories or local directories
|
|
79
|
+
- The CLI currently has a modular structure in src/flock/cli/
|
|
80
|
+
|
|
81
|
+
Before continuing with implementing the code, please let me review the user story and tasks first.
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Tips for Getting the Best Results
|
|
85
|
+
|
|
86
|
+
1. **Be specific** about the feature you want to implement
|
|
87
|
+
2. **Provide context** about your project's structure and current state
|
|
88
|
+
3. **Mention any libraries or technologies** that should be used
|
|
89
|
+
4. **Include any specific requirements** or constraints
|
|
90
|
+
5. **Share examples** of similar features if available
|
|
91
|
+
6. **Identify potential edge cases** or challenges
|
|
92
|
+
7. **Specify the target audience** of the feature
|
|
93
|
+
8. **Indicate priority level** if relevant
|
|
94
|
+
|
|
95
|
+
## Template for User Story Structure
|
|
96
|
+
|
|
97
|
+
Your user story should typically follow this structure:
|
|
98
|
+
|
|
99
|
+
```markdown
|
|
100
|
+
# User Story: [Feature Name]
|
|
101
|
+
|
|
102
|
+
## ID
|
|
103
|
+
[ID Number]
|
|
104
|
+
|
|
105
|
+
## Title
|
|
106
|
+
[Concise Title]
|
|
107
|
+
|
|
108
|
+
## Description
|
|
109
|
+
As a [type of user], I want to [goal/action] so that [benefit/reason].
|
|
110
|
+
|
|
111
|
+
## Current State
|
|
112
|
+
[Description of how things currently work or the absence of functionality]
|
|
113
|
+
|
|
114
|
+
## Desired State
|
|
115
|
+
[Description of how things should work after implementation]
|
|
116
|
+
|
|
117
|
+
## Technical Details
|
|
118
|
+
[Technical information about implementation, including project structure and technologies]
|
|
119
|
+
|
|
120
|
+
## Related Tasks
|
|
121
|
+
[Links to related task files]
|
|
122
|
+
|
|
123
|
+
## Acceptance Criteria
|
|
124
|
+
[List of specific criteria that must be met for the feature to be considered complete]
|
|
125
|
+
|
|
126
|
+
## UI Mockups
|
|
127
|
+
[Text-based mockups if the feature has a UI component]
|
|
128
|
+
|
|
129
|
+
## Notes
|
|
130
|
+
[Any additional information, cautions, or special considerations]
|
|
131
|
+
|
|
132
|
+
## Stakeholders
|
|
133
|
+
[Who will be affected by or interested in this feature]
|
|
134
|
+
|
|
135
|
+
## Priority
|
|
136
|
+
[Priority level]
|
|
137
|
+
|
|
138
|
+
## Story Points / Effort
|
|
139
|
+
[Estimated effort required]
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
## Template for Task Structure
|
|
143
|
+
|
|
144
|
+
Your tasks should typically follow this structure:
|
|
145
|
+
|
|
146
|
+
```markdown
|
|
147
|
+
# [Task Name]
|
|
148
|
+
|
|
149
|
+
## Summary
|
|
150
|
+
[Brief description of the task]
|
|
151
|
+
|
|
152
|
+
## Description
|
|
153
|
+
[More detailed explanation of what this task entails]
|
|
154
|
+
|
|
155
|
+
## User Story
|
|
156
|
+
[Link to the related user story]
|
|
157
|
+
|
|
158
|
+
## Technical Requirements
|
|
159
|
+
[Specific technical requirements for this task]
|
|
160
|
+
|
|
161
|
+
## Implementation Plan
|
|
162
|
+
[Step-by-step plan for implementing this task]
|
|
163
|
+
|
|
164
|
+
## Definition of Done
|
|
165
|
+
[Specific criteria that must be met for this task to be considered complete]
|
|
166
|
+
|
|
167
|
+
## Dependencies
|
|
168
|
+
[Libraries, tools, or other tasks that this task depends on]
|
|
169
|
+
|
|
170
|
+
## Related Tasks
|
|
171
|
+
[Links to related task files]
|
|
172
|
+
|
|
173
|
+
## Estimated Effort
|
|
174
|
+
[Estimated time or complexity]
|
|
175
|
+
|
|
176
|
+
## Priority
|
|
177
|
+
[Priority level]
|
|
178
|
+
|
|
179
|
+
## Assignee
|
|
180
|
+
[Who is assigned to this task]
|
|
181
|
+
|
|
182
|
+
## Status
|
|
183
|
+
[Current status of the task]
|
|
184
|
+
```
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# CLI System Specification
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
The Command Line Interface (CLI) system provides an interactive terminal-based user interface for the Flock framework. It allows users to manage agents, flocks, settings, and other aspects of the framework through a console application.
|
|
6
|
+
|
|
7
|
+
## Components
|
|
8
|
+
|
|
9
|
+
### 1. Main CLI Application
|
|
10
|
+
|
|
11
|
+
- **Entry Point**: `src/flock/__init__.py`
|
|
12
|
+
- **Purpose**: Provides the main menu and dispatches to specific CLI modules
|
|
13
|
+
- **Implementation**: Uses Rich for formatting and Questionary for interactive prompts
|
|
14
|
+
- **Main Menu Options**:
|
|
15
|
+
- Load a flock file
|
|
16
|
+
- Theme builder
|
|
17
|
+
- Settings editor
|
|
18
|
+
- Advanced mode (future)
|
|
19
|
+
- Web server (future)
|
|
20
|
+
- Release notes
|
|
21
|
+
- Exit
|
|
22
|
+
|
|
23
|
+
### 2. Settings Editor
|
|
24
|
+
|
|
25
|
+
- **Module**: `src/flock/cli/settings.py`
|
|
26
|
+
- **Purpose**: View, edit, add, and delete environment variables in the `.env` file
|
|
27
|
+
- **Features**:
|
|
28
|
+
- Pagination of environment variables
|
|
29
|
+
- Masking of sensitive values (API keys, tokens, etc.)
|
|
30
|
+
- Environment profile management (dev, test, prod, etc.)
|
|
31
|
+
- Configurable variables per page
|
|
32
|
+
|
|
33
|
+
#### 2.1 Environment Variables Management
|
|
34
|
+
|
|
35
|
+
- View all environment variables with pagination
|
|
36
|
+
- Edit existing variables with proper validation
|
|
37
|
+
- Add new variables
|
|
38
|
+
- Delete existing variables
|
|
39
|
+
- Masking sensitive values (API keys, passwords, tokens)
|
|
40
|
+
- Toggle visibility of sensitive values
|
|
41
|
+
|
|
42
|
+
#### 2.2 Environment Profile System
|
|
43
|
+
|
|
44
|
+
- Multiple environment profiles (.env_dev, .env_prod, etc.)
|
|
45
|
+
- Active profile stored as .env
|
|
46
|
+
- Profile name stored as comment in first line: `# Profile: name`
|
|
47
|
+
- Profile operations:
|
|
48
|
+
- Switch between profiles
|
|
49
|
+
- Create new profiles
|
|
50
|
+
- Rename existing profiles
|
|
51
|
+
- Delete profiles
|
|
52
|
+
- Safe backup system before profile operations
|
|
53
|
+
|
|
54
|
+
#### 2.3 Settings Configuration
|
|
55
|
+
|
|
56
|
+
- Configurable settings stored in the .env file:
|
|
57
|
+
- `SHOW_SECRETS`: Controls visibility of sensitive values
|
|
58
|
+
- `VARS_PER_PAGE`: Controls pagination size (5-100 variables)
|
|
59
|
+
|
|
60
|
+
### 3. Theme Builder
|
|
61
|
+
|
|
62
|
+
- **Module**: `flock/core/logging/formatters/theme_builder`
|
|
63
|
+
- **Purpose**: Customize the visual appearance of the CLI
|
|
64
|
+
- **Features**: [To be expanded]
|
|
65
|
+
|
|
66
|
+
### 4. Flock Loader
|
|
67
|
+
|
|
68
|
+
- **Module**: `src/flock/cli/load_flock.py`
|
|
69
|
+
- **Purpose**: Load and execute .flock files
|
|
70
|
+
- **Features**: [To be expanded]
|
|
71
|
+
|
|
72
|
+
## Design Principles
|
|
73
|
+
|
|
74
|
+
1. **User-Friendly Interface**: Clear navigation, intuitive controls, and helpful feedback
|
|
75
|
+
2. **Data Safety**: Backup operations before destructive actions, confirmation prompts
|
|
76
|
+
3. **Efficient Workflow**: Keyboard shortcuts, pagination, customizable settings
|
|
77
|
+
4. **Security Conscious**: Masking of sensitive values, confirmation for showing secrets
|
|
78
|
+
5. **Consistent UI**: Using Rich for formatted output, Questionary for inputs
|
|
79
|
+
|
|
80
|
+
## UI Components
|
|
81
|
+
|
|
82
|
+
### Panels and Tables
|
|
83
|
+
|
|
84
|
+
- **Rich Panels**: Used for section headers and menus
|
|
85
|
+
- **Rich Tables**: Used for displaying structured data
|
|
86
|
+
- **Color Coding**: Green for success, yellow for warnings, red for errors
|
|
87
|
+
|
|
88
|
+
### Interactive Elements
|
|
89
|
+
|
|
90
|
+
- **Selection Menus**: Using Questionary.select for menu navigation
|
|
91
|
+
- **Text Inputs**: Using Questionary.text for data entry
|
|
92
|
+
- **Confirmations**: Using Questionary.confirm for destructive actions
|
|
93
|
+
|
|
94
|
+
## Navigation System
|
|
95
|
+
|
|
96
|
+
- **Main Menu**: Select from multiple modules
|
|
97
|
+
- **Module Menus**: Select operations within a module
|
|
98
|
+
- **Keyboard Shortcuts**: Single-key commands for common operations
|
|
99
|
+
- **Back Button**: Return to previous screen
|
|
100
|
+
- **Cancel Option**: Abort current operation
|
|
101
|
+
|
|
102
|
+
## File Operations
|
|
103
|
+
|
|
104
|
+
- **Load Operations**: Reading from the .env file and profile files
|
|
105
|
+
- **Save Operations**: Writing to the .env file with proper backup
|
|
106
|
+
- **Backup System**: Creating .env.bak before destructive operations
|
|
107
|
+
- **Profile Files**: Managing .env_[profile_name] files
|
|
108
|
+
|
|
109
|
+
## Future Enhancements
|
|
110
|
+
|
|
111
|
+
1. **Command History**: Remember previous commands and inputs
|
|
112
|
+
2. **Autocomplete**: Tab completion for variable names and commands
|
|
113
|
+
3. **Search/Filter**: Find specific variables by name or value
|
|
114
|
+
4. **Import/Export**: Support for importing/exporting profiles
|
|
115
|
+
5. **Template System**: Pre-defined templates for common setups
|
|
116
|
+
|
|
117
|
+
## Implementation Status
|
|
118
|
+
|
|
119
|
+
The CLI system is currently being implemented with the Settings Editor being the first major component completed. Additional components will be developed according to the project roadmap.
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Settings Editor Implementation
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
Implement a settings editor for the Flock CLI that allows users to view, edit, add, and delete variables in the `.env` file.
|
|
5
|
+
|
|
6
|
+
## Description
|
|
7
|
+
The Flock CLI has a "Settings" menu item that needs to load a settings editor when selected. This editor will allow users to:
|
|
8
|
+
1. View all current environment variables in the `.env` file
|
|
9
|
+
2. Edit existing environment variable values
|
|
10
|
+
3. Add new environment variables
|
|
11
|
+
4. Delete existing environment variables
|
|
12
|
+
5. Create and switch between different environment profiles (dev, test, prod)
|
|
13
|
+
|
|
14
|
+
The implementation should provide a smooth and elegant user experience, leveraging the existing libraries used in the project (Rich and Questionary).
|
|
15
|
+
|
|
16
|
+
## User Story
|
|
17
|
+
[US001 - Environment Settings Editor](../userstories/done/US001-Settings-Editor.md)
|
|
18
|
+
|
|
19
|
+
## Technical Requirements
|
|
20
|
+
- Create a new module in `src/flock/cli/settings.py` that implements the settings editor
|
|
21
|
+
- Use Rich for display and formatting of environment variables
|
|
22
|
+
- Use Questionary for interactive input and selection
|
|
23
|
+
- Handle edge cases such as:
|
|
24
|
+
- Missing `.env` file
|
|
25
|
+
- Invalid format in `.env` file
|
|
26
|
+
- Special characters in variable names or values
|
|
27
|
+
- Multi-line values
|
|
28
|
+
- Preserve comments and formatting in the `.env` file when possible
|
|
29
|
+
- Provide clear feedback after operations
|
|
30
|
+
- Implement confirmation for destructive operations (like deletion)
|
|
31
|
+
- Support managing multiple environment profiles
|
|
32
|
+
|
|
33
|
+
## Implementation Plan
|
|
34
|
+
1. Create a function to parse and load the `.env` file
|
|
35
|
+
2. Create a function to save the `.env` file
|
|
36
|
+
3. Implement a main menu for the settings editor
|
|
37
|
+
4. Implement view functionality with pagination
|
|
38
|
+
5. Implement edit functionality
|
|
39
|
+
6. Implement add functionality
|
|
40
|
+
7. Implement delete functionality
|
|
41
|
+
8. Implement profile switching and management
|
|
42
|
+
9. Connect the settings editor to the CLI main menu
|
|
43
|
+
|
|
44
|
+
## Definition of Done
|
|
45
|
+
- The settings editor can be accessed from the main CLI menu
|
|
46
|
+
- Users can view, edit, add, and delete environment variables
|
|
47
|
+
- Users can create, switch between, and manage different environment profiles
|
|
48
|
+
- The UI is responsive and provides clear feedback
|
|
49
|
+
- Edge cases are handled gracefully
|
|
50
|
+
- Code is well-documented and follows project conventions
|
|
51
|
+
- Changes to the `.env` file are properly preserved
|
|
52
|
+
|
|
53
|
+
## Dependencies
|
|
54
|
+
- Rich library
|
|
55
|
+
- Questionary library
|
|
56
|
+
- Python's os and dotenv modules
|
|
57
|
+
|
|
58
|
+
## Related Tasks
|
|
59
|
+
- [002-env-settings-ui-components.md](002-env-settings-ui-components.md)
|
|
60
|
+
- [003-env-settings-file-operations.md](003-env-settings-file-operations.md)
|
|
61
|
+
- [005-env-profile-switching.md](005-env-profile-switching.md)
|
|
62
|
+
|
|
63
|
+
## Estimated Effort
|
|
64
|
+
Medium - Approximately 4-6 hours of development time
|
|
65
|
+
|
|
66
|
+
## Priority
|
|
67
|
+
High - This is a core functionality for the CLI
|
|
68
|
+
|
|
69
|
+
## Assignee
|
|
70
|
+
TBD
|
|
71
|
+
|
|
72
|
+
## Status
|
|
73
|
+
Completed - May 21, 2024
|
|
74
|
+
|
|
75
|
+
## Implementation Notes
|
|
76
|
+
- Created settings_editor() function as the main entry point
|
|
77
|
+
- Implemented view_env_variables() with pagination and masking of sensitive values
|
|
78
|
+
- Added edit_env_variable(), add_env_variable(), and delete_env_variable() with proper validation
|
|
79
|
+
- Implemented profile management (switch_profile, create_profile, rename_profile, delete_profile)
|
|
80
|
+
- Added settings for show_secrets and vars_per_page control
|
|
81
|
+
- Ensured proper error handling and backups before destructive operations
|
|
82
|
+
- Connected the settings editor to the main CLI menu in src/flock/__init__.py
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Settings Editor UI Components
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
Design and implement the user interface components for the environment settings editor in the Flock CLI.
|
|
5
|
+
|
|
6
|
+
## Description
|
|
7
|
+
This task focuses on creating a well-designed, intuitive UI for the settings editor using Rich and Questionary. The UI should make it easy for users to navigate through settings, understand what they're editing, and get visual feedback on their actions.
|
|
8
|
+
|
|
9
|
+
## User Story
|
|
10
|
+
[US001 - Environment Settings Editor](../userstories/done/US001-Settings-Editor.md)
|
|
11
|
+
|
|
12
|
+
## Technical Requirements
|
|
13
|
+
- Create a consistent visual layout for the settings editor
|
|
14
|
+
- Implement color coding for different types of environment variables (secrets, URLs, paths, etc.)
|
|
15
|
+
- Design navigation elements for moving through settings
|
|
16
|
+
- Create input components for editing values with appropriate validation
|
|
17
|
+
- Implement status messages and confirmation dialogs
|
|
18
|
+
- Ensure the UI is responsive and works well in different terminal sizes
|
|
19
|
+
- Provide visual cues for required vs optional settings
|
|
20
|
+
|
|
21
|
+
## Implementation Plan
|
|
22
|
+
1. Design the main settings list view with pagination
|
|
23
|
+
2. Create a settings detail/edit view
|
|
24
|
+
3. Design confirmation dialogs for destructive actions
|
|
25
|
+
4. Implement status/feedback messages
|
|
26
|
+
5. Create a help/legend component to explain UI elements
|
|
27
|
+
6. Design the "add new setting" form
|
|
28
|
+
7. Ensure consistent styling across all components
|
|
29
|
+
|
|
30
|
+
## Definition of Done
|
|
31
|
+
- All UI components render correctly in different terminal environments
|
|
32
|
+
- Navigation is intuitive and efficient
|
|
33
|
+
- Visual feedback is clear and helpful
|
|
34
|
+
- Layout adapts to different terminal sizes
|
|
35
|
+
- Consistent styling throughout the application
|
|
36
|
+
- Input validation provides clear error messages
|
|
37
|
+
|
|
38
|
+
## Dependencies
|
|
39
|
+
- Rich library for formatted output
|
|
40
|
+
- Questionary for interactive input
|
|
41
|
+
- Task 001 (Settings Editor Implementation)
|
|
42
|
+
|
|
43
|
+
## Related Tasks
|
|
44
|
+
- [001-env-settings-editor.md](../tasks/done/001-env-settings-editor.md)
|
|
45
|
+
- [003-env-settings-file-operations.md](003-env-settings-file-operations.md)
|
|
46
|
+
|
|
47
|
+
## Estimated Effort
|
|
48
|
+
Medium - Approximately 3-4 hours of development time
|
|
49
|
+
|
|
50
|
+
## Priority
|
|
51
|
+
High - This is essential for user experience
|
|
52
|
+
|
|
53
|
+
## Assignee
|
|
54
|
+
TBD
|
|
55
|
+
|
|
56
|
+
## Status
|
|
57
|
+
Completed - May 21, 2024
|
|
58
|
+
|
|
59
|
+
## Implementation Notes
|
|
60
|
+
- Implemented UI components using Rich for formatted output
|
|
61
|
+
- Created Rich tables for variable display with proper column styling
|
|
62
|
+
- Added color-coded feedback messages (green for success, yellow for warnings, red for errors)
|
|
63
|
+
- Implemented intuitive navigation with clear options and keyboard shortcuts
|
|
64
|
+
- Added confirmation dialogs for destructive operations
|
|
65
|
+
- Created visual status indicators (e.g., for the show secrets setting)
|
|
66
|
+
- Added helpful hints and instructions for user operations
|
|
67
|
+
- Ensured consistent style and layout throughout the application
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Environment File Operations
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
Implement robust file operations for reading, parsing, and writing the .env file in the settings editor.
|
|
5
|
+
|
|
6
|
+
## Description
|
|
7
|
+
This task focuses on the backend functionality for safely manipulating the .env file, ensuring that changes are properly saved and the file format is preserved.
|
|
8
|
+
|
|
9
|
+
## User Story
|
|
10
|
+
[US001 - Environment Settings Editor](../userstories/done/US001-Settings-Editor.md)
|
|
11
|
+
|
|
12
|
+
## Technical Requirements
|
|
13
|
+
- Create a parser for .env files that preserves comments and formatting
|
|
14
|
+
- Implement a safe writing mechanism that prevents data loss
|
|
15
|
+
- Create backup functionality before making changes
|
|
16
|
+
- Handle missing or malformed .env files gracefully
|
|
17
|
+
- Support validation of key-value pairs
|
|
18
|
+
- Handle special characters and multi-line values correctly
|
|
19
|
+
- Implement error handling for file operations
|
|
20
|
+
|
|
21
|
+
## Implementation Plan
|
|
22
|
+
1. Create a function to parse .env files into a structured format
|
|
23
|
+
2. Implement a function to write changes back to the .env file
|
|
24
|
+
3. Add validation for environment variable names and values
|
|
25
|
+
4. Create backup functionality
|
|
26
|
+
5. Implement error handling for file operations
|
|
27
|
+
6. Add support for creating a new .env file if none exists
|
|
28
|
+
7. Add support for templates based on .env_template
|
|
29
|
+
|
|
30
|
+
## Definition of Done
|
|
31
|
+
- .env files can be loaded and parsed correctly
|
|
32
|
+
- Comments and formatting are preserved when saving
|
|
33
|
+
- Backups are created before destructive operations
|
|
34
|
+
- Error handling prevents data loss
|
|
35
|
+
- Special characters and multi-line values are handled correctly
|
|
36
|
+
- Missing .env files are handled gracefully
|
|
37
|
+
|
|
38
|
+
## Dependencies
|
|
39
|
+
- Python's os, io, and shutil modules
|
|
40
|
+
- Optional: python-dotenv library (if appropriate)
|
|
41
|
+
|
|
42
|
+
## Related Tasks
|
|
43
|
+
- [001-env-settings-editor.md](../tasks/done/001-env-settings-editor.md)
|
|
44
|
+
- [002-env-settings-ui-components.md](002-env-settings-ui-components.md)
|
|
45
|
+
|
|
46
|
+
## Estimated Effort
|
|
47
|
+
Medium - Approximately 3-4 hours of development time
|
|
48
|
+
|
|
49
|
+
## Priority
|
|
50
|
+
High - This is critical for data integrity
|
|
51
|
+
|
|
52
|
+
## Assignee
|
|
53
|
+
TBD
|
|
54
|
+
|
|
55
|
+
## Status
|
|
56
|
+
Completed - May 21, 2024
|
|
57
|
+
|
|
58
|
+
## Implementation Notes
|
|
59
|
+
- Created load_env_file() function to parse .env files preserving comments and empty lines
|
|
60
|
+
- Implemented save_env_file() function with proper error handling
|
|
61
|
+
- Added backup_env_file() function to create backups before changes
|
|
62
|
+
- Implemented graceful handling of missing or malformed .env files
|
|
63
|
+
- Added proper validation for variable names and values
|
|
64
|
+
- Ensured correct handling of special characters
|
|
65
|
+
- Implemented support for using .env_template when creating new profiles
|
|
66
|
+
- Added comprehensive error handling throughout file operations
|