flock-core 0.4.527__py3-none-any.whl → 0.5.0b0__py3-none-any.whl
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/cli/execute_flock.py +1 -1
- flock/cli/manage_agents.py +6 -6
- flock/components/__init__.py +30 -0
- flock/components/evaluation/__init__.py +9 -0
- flock/components/evaluation/declarative_evaluation_component.py +222 -0
- flock/components/routing/__init__.py +15 -0
- flock/{routers/conditional/conditional_router.py → components/routing/conditional_routing_component.py} +61 -53
- flock/components/routing/default_routing_component.py +103 -0
- flock/components/routing/llm_routing_component.py +206 -0
- flock/components/utility/__init__.py +15 -0
- flock/{modules/enterprise_memory/enterprise_memory_module.py → components/utility/memory_utility_component.py} +195 -173
- flock/{modules/performance/metrics_module.py → components/utility/metrics_utility_component.py} +110 -95
- flock/{modules/output/output_module.py → components/utility/output_utility_component.py} +47 -45
- flock/core/__init__.py +26 -18
- flock/core/agent/__init__.py +16 -0
- flock/core/agent/flock_agent_components.py +104 -0
- flock/core/agent/flock_agent_execution.py +101 -0
- flock/core/agent/flock_agent_integration.py +206 -0
- flock/core/agent/flock_agent_lifecycle.py +177 -0
- flock/core/agent/flock_agent_serialization.py +381 -0
- flock/core/api/endpoints.py +2 -2
- flock/core/api/service.py +2 -2
- flock/core/component/__init__.py +15 -0
- flock/core/{flock_module.py → component/agent_component_base.py} +136 -34
- flock/core/component/evaluation_component.py +56 -0
- flock/core/component/routing_component.py +74 -0
- flock/core/component/utility_component.py +69 -0
- flock/core/config/flock_agent_config.py +49 -2
- flock/core/evaluation/utils.py +3 -2
- flock/core/execution/batch_executor.py +1 -1
- flock/core/execution/evaluation_executor.py +2 -2
- flock/core/execution/opik_executor.py +1 -1
- flock/core/flock.py +147 -493
- flock/core/flock_agent.py +195 -1032
- flock/core/flock_factory.py +114 -90
- flock/core/flock_scheduler.py +1 -1
- flock/core/flock_server_manager.py +8 -8
- flock/core/logging/logging.py +1 -0
- flock/core/mcp/flock_mcp_server.py +53 -48
- flock/core/mcp/{flock_mcp_tool_base.py → flock_mcp_tool.py} +2 -2
- flock/core/mcp/mcp_client.py +9 -9
- flock/core/mcp/mcp_client_manager.py +9 -9
- flock/core/mcp/mcp_config.py +24 -24
- flock/core/mixin/dspy_integration.py +5 -5
- flock/core/orchestration/__init__.py +18 -0
- flock/core/orchestration/flock_batch_processor.py +94 -0
- flock/core/orchestration/flock_evaluator.py +113 -0
- flock/core/orchestration/flock_execution.py +288 -0
- flock/core/orchestration/flock_initialization.py +125 -0
- flock/core/orchestration/flock_server_manager.py +67 -0
- flock/core/orchestration/flock_web_server.py +117 -0
- flock/core/registry/__init__.py +45 -0
- flock/core/registry/agent_registry.py +69 -0
- flock/core/registry/callable_registry.py +139 -0
- flock/core/registry/component_discovery.py +142 -0
- flock/core/registry/component_registry.py +64 -0
- flock/core/registry/config_mapping.py +64 -0
- flock/core/registry/decorators.py +137 -0
- flock/core/registry/registry_hub.py +205 -0
- flock/core/registry/server_registry.py +57 -0
- flock/core/registry/type_registry.py +86 -0
- flock/core/serialization/flock_serializer.py +36 -32
- flock/core/serialization/serialization_utils.py +28 -25
- flock/core/util/hydrator.py +1 -1
- flock/core/util/input_resolver.py +29 -2
- flock/mcp/servers/sse/flock_sse_server.py +10 -10
- flock/mcp/servers/stdio/flock_stdio_server.py +10 -10
- flock/mcp/servers/streamable_http/flock_streamable_http_server.py +10 -10
- flock/mcp/servers/websockets/flock_websocket_server.py +10 -10
- flock/platform/docker_tools.py +3 -3
- flock/webapp/app/chat.py +1 -1
- flock/webapp/app/main.py +9 -5
- flock/webapp/app/services/flock_service.py +1 -1
- flock/webapp/app/services/sharing_store.py +1 -0
- flock/workflow/activities.py +67 -92
- flock/workflow/agent_execution_activity.py +6 -6
- flock/workflow/flock_workflow.py +1 -1
- flock_core-0.5.0b0.dist-info/METADATA +272 -0
- {flock_core-0.4.527.dist-info → flock_core-0.5.0b0.dist-info}/RECORD +82 -95
- flock/core/flock_evaluator.py +0 -60
- flock/core/flock_registry.py +0 -702
- flock/core/flock_router.py +0 -83
- flock/evaluators/__init__.py +0 -1
- flock/evaluators/declarative/__init__.py +0 -1
- flock/evaluators/declarative/declarative_evaluator.py +0 -217
- flock/evaluators/memory/memory_evaluator.py +0 -90
- flock/evaluators/test/test_case_evaluator.py +0 -38
- flock/evaluators/zep/zep_evaluator.py +0 -59
- flock/modules/__init__.py +0 -1
- flock/modules/assertion/__init__.py +0 -1
- flock/modules/assertion/assertion_module.py +0 -286
- flock/modules/callback/__init__.py +0 -1
- flock/modules/callback/callback_module.py +0 -91
- flock/modules/enterprise_memory/README.md +0 -99
- flock/modules/mem0/__init__.py +0 -1
- flock/modules/mem0/mem0_module.py +0 -126
- flock/modules/mem0_async/__init__.py +0 -1
- flock/modules/mem0_async/async_mem0_module.py +0 -126
- flock/modules/memory/__init__.py +0 -1
- flock/modules/memory/memory_module.py +0 -429
- flock/modules/memory/memory_parser.py +0 -125
- flock/modules/memory/memory_storage.py +0 -736
- flock/modules/output/__init__.py +0 -1
- flock/modules/performance/__init__.py +0 -1
- flock/modules/zep/__init__.py +0 -1
- flock/modules/zep/zep_module.py +0 -192
- flock/routers/__init__.py +0 -1
- flock/routers/agent/__init__.py +0 -1
- flock/routers/agent/agent_router.py +0 -236
- flock/routers/agent/handoff_agent.py +0 -58
- flock/routers/default/__init__.py +0 -1
- flock/routers/default/default_router.py +0 -80
- flock/routers/feedback/feedback_router.py +0 -114
- flock/routers/list_generator/list_generator_router.py +0 -166
- flock/routers/llm/__init__.py +0 -1
- flock/routers/llm/llm_router.py +0 -365
- flock/tools/__init__.py +0 -0
- flock/tools/azure_tools.py +0 -781
- flock/tools/code_tools.py +0 -167
- flock/tools/file_tools.py +0 -149
- flock/tools/github_tools.py +0 -157
- flock/tools/markdown_tools.py +0 -205
- flock/tools/system_tools.py +0 -9
- flock/tools/text_tools.py +0 -810
- flock/tools/web_tools.py +0 -90
- flock/tools/zendesk_tools.py +0 -147
- flock_core-0.4.527.dist-info/METADATA +0 -674
- {flock_core-0.4.527.dist-info → flock_core-0.5.0b0.dist-info}/WHEEL +0 -0
- {flock_core-0.4.527.dist-info → flock_core-0.5.0b0.dist-info}/entry_points.txt +0 -0
- {flock_core-0.4.527.dist-info → flock_core-0.5.0b0.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: flock-core
|
|
3
|
+
Version: 0.5.0b0
|
|
4
|
+
Summary: Declarative LLM Orchestration at Scale
|
|
5
|
+
Author-email: Andre Ratzenberger <andre.ratzenberger@whiteduck.de>
|
|
6
|
+
License-File: LICENSE
|
|
7
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
8
|
+
Classifier: Operating System :: OS Independent
|
|
9
|
+
Classifier: Programming Language :: Python :: 3
|
|
10
|
+
Requires-Python: >=3.10
|
|
11
|
+
Requires-Dist: aiosqlite>=0.21.0
|
|
12
|
+
Requires-Dist: azure-data-tables>=12.7.0
|
|
13
|
+
Requires-Dist: chromadb>=0.6.3
|
|
14
|
+
Requires-Dist: cloudpickle>=3.1.1
|
|
15
|
+
Requires-Dist: croniter>=6.0.0
|
|
16
|
+
Requires-Dist: datasets>=3.2.0
|
|
17
|
+
Requires-Dist: devtools>=0.12.2
|
|
18
|
+
Requires-Dist: dspy==2.6.23
|
|
19
|
+
Requires-Dist: fastapi>=0.115.8
|
|
20
|
+
Requires-Dist: httpx>=0.28.1
|
|
21
|
+
Requires-Dist: litellm==1.69.3
|
|
22
|
+
Requires-Dist: loguru>=0.7.3
|
|
23
|
+
Requires-Dist: markdown2>=2.5.3
|
|
24
|
+
Requires-Dist: mcp>=1.7.1
|
|
25
|
+
Requires-Dist: msgpack>=1.1.0
|
|
26
|
+
Requires-Dist: neo4j>=5.28.1
|
|
27
|
+
Requires-Dist: openai==1.75.0
|
|
28
|
+
Requires-Dist: opentelemetry-api>=1.30.0
|
|
29
|
+
Requires-Dist: opentelemetry-exporter-jaeger-proto-grpc>=1.21.0
|
|
30
|
+
Requires-Dist: opentelemetry-exporter-jaeger>=1.21.0
|
|
31
|
+
Requires-Dist: opentelemetry-exporter-otlp>=1.30.0
|
|
32
|
+
Requires-Dist: opentelemetry-instrumentation-logging>=0.51b0
|
|
33
|
+
Requires-Dist: opentelemetry-sdk>=1.30.0
|
|
34
|
+
Requires-Dist: opik>=1.7.26
|
|
35
|
+
Requires-Dist: pandas>=2.2.3
|
|
36
|
+
Requires-Dist: pillow>=10.4.0
|
|
37
|
+
Requires-Dist: prometheus-client>=0.21.1
|
|
38
|
+
Requires-Dist: psutil>=6.1.1
|
|
39
|
+
Requires-Dist: pydantic-settings>=2.7.1
|
|
40
|
+
Requires-Dist: pydantic==2.10.5
|
|
41
|
+
Requires-Dist: python-box>=7.3.2
|
|
42
|
+
Requires-Dist: python-decouple>=3.8
|
|
43
|
+
Requires-Dist: python-dotenv>=1.0.1
|
|
44
|
+
Requires-Dist: pyyaml>=6.0
|
|
45
|
+
Requires-Dist: questionary>=2.1.0
|
|
46
|
+
Requires-Dist: rich>=13.9.4
|
|
47
|
+
Requires-Dist: rouge-score>=0.1.2
|
|
48
|
+
Requires-Dist: sentence-transformers>=3.4.1
|
|
49
|
+
Requires-Dist: temporalio>=1.9.0
|
|
50
|
+
Requires-Dist: thefuzz>=0.22.1
|
|
51
|
+
Requires-Dist: tiktoken>=0.8.0
|
|
52
|
+
Requires-Dist: toml>=0.10.2
|
|
53
|
+
Requires-Dist: tqdm>=4.60.1
|
|
54
|
+
Requires-Dist: uvicorn>=0.34.0
|
|
55
|
+
Requires-Dist: wd-di>=0.2.14
|
|
56
|
+
Requires-Dist: websockets>=15.0.1
|
|
57
|
+
Requires-Dist: werkzeug>=3.1.3
|
|
58
|
+
Provides-Extra: memory
|
|
59
|
+
Requires-Dist: matplotlib>=3.10.0; extra == 'memory'
|
|
60
|
+
Requires-Dist: mem0ai[graph]>=0.1.101; extra == 'memory'
|
|
61
|
+
Requires-Dist: zep-python>=2.0.2; extra == 'memory'
|
|
62
|
+
Description-Content-Type: text/markdown
|
|
63
|
+
|
|
64
|
+
<p align="center">
|
|
65
|
+
<!-- Placeholder for your Flock Logo/Banner - Replace URL -->
|
|
66
|
+
<img alt="Flock Banner" src="https://raw.githubusercontent.com/whiteducksoftware/flock/master/docs/assets/images/flock.png" width="600">
|
|
67
|
+
</p>
|
|
68
|
+
<p align="center">
|
|
69
|
+
<!-- Update badges -->
|
|
70
|
+
<a href="https://pypi.org/project/flock-core/" target="_blank"><img alt="PyPI Version" src="https://img.shields.io/pypi/v/flock-core?style=for-the-badge&logo=pypi&label=pip%20version"></a>
|
|
71
|
+
<img alt="Python Version" src="https://img.shields.io/badge/python-3.10%2B-blue?style=for-the-badge&logo=python">
|
|
72
|
+
<a href="https://github.com/whiteducksoftware/flock/actions/workflows/deploy-whiteduck-pypi.yml" target="_blank"><img alt="CI Status" src="https://img.shields.io/github/actions/workflow/status/whiteducksoftware/flock/deploy-whiteduck-pypi.yml?branch=master&style=for-the-badge&logo=githubactions&logoColor=white"></a>
|
|
73
|
+
<a href="https://github.com/whiteducksoftware/flock/blob/master/LICENSE" target="_blank"><img alt="License" src="https://img.shields.io/pypi/l/flock-core?style=for-the-badge"></a>
|
|
74
|
+
<a href="https://whiteduck.de" target="_blank"><img alt="Built by white duck" src="https://img.shields.io/badge/Built%20by-white%20duck%20GmbH-white?style=for-the-badge&labelColor=black"></a>
|
|
75
|
+
<a href="https://www.linkedin.com/company/whiteduck" target="_blank"><img alt="LinkedIn" src="https://img.shields.io/badge/linkedin-%230077B5.svg?style=for-the-badge&logo=linkedin&logoColor=white&label=whiteduck"></a>
|
|
76
|
+
<a href="https://bsky.app/profile/whiteduck-gmbh.bsky.social" target="_blank"><img alt="Bluesky" src="https://img.shields.io/badge/bluesky-Follow-blue?style=for-the-badge&logo=bluesky&logoColor=%23fff&color=%23333&labelColor=%230285FF&label=whiteduck-gmbh"></a>
|
|
77
|
+
</p>
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
## The Problem You Know Too Well
|
|
84
|
+
|
|
85
|
+
🤯 **Prompt Hell**: Brittle 500-line prompts that break with every model update.
|
|
86
|
+
💥 **System Failures**: One bad LLM response crashes your entire workflow
|
|
87
|
+
🧪 **Testing Nightmares**: "How do I unit test a prompt?" (You don't.)
|
|
88
|
+
🧪 **Measuring Quality**: "How do I know my prompts are close to optimal?" (You also don't.)
|
|
89
|
+
📄 **Output Chaos**: Parsing unstructured LLM responses into reliable data
|
|
90
|
+
⛓️ **Orchestration Limits**: Moving beyond simple chains and DAGs? Good luck
|
|
91
|
+
🚀 **Production Gap**: Jupyter notebooks don't scale to enterprise systems
|
|
92
|
+
|
|
93
|
+
*After building dozens of AI systems for enterprise clients, we realized the tooling was fundamentally broken.*
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
**Build with agents, not against them.**
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
## The Flock Solution
|
|
100
|
+
|
|
101
|
+
**What if you could just skip that 'prompt engineering' step?**
|
|
102
|
+
|
|
103
|
+
Flock is an agent framework for declarative AI workflows. You define what goes in and what should come out, the how is handled by the agent.
|
|
104
|
+
No brittle prompts. No guesswork. Just reliable, testable AI agents.
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
✅ **Declarative Contracts**: Define inputs/outputs with Pydantic models. Flock handles the LLM complexity.
|
|
108
|
+
⚡ **Built-in Resilience**: Automatic retries, state persistence, and workflow resumption via Temporal.io
|
|
109
|
+
🧪 **Actually Testable**: Clear contracts make agents unit-testable like any other code
|
|
110
|
+
🧪 **Optimal Quality**: Agents posses multiple self-optimization algorithms based on latest research
|
|
111
|
+
🚀 **Dynamic Workflows**: Self-correcting loops, conditional routing, and intelligent decision-making
|
|
112
|
+
🔧 **Zero-Config Production**: Deploy as REST APIs with one command. Scale without rewriting.
|
|
113
|
+
|
|
114
|
+
**Ready to see it in action?**
|
|
115
|
+
|
|
116
|
+
## ⚡ Quick Start
|
|
117
|
+
|
|
118
|
+
```python
|
|
119
|
+
from flock.core import Flock, FlockFactory
|
|
120
|
+
|
|
121
|
+
# 1. Create the main orchestrator
|
|
122
|
+
my_flock = Flock(model="openai/gpt-4.1")
|
|
123
|
+
|
|
124
|
+
# 2. Declaratively define an agent
|
|
125
|
+
brainstorm_agent = FlockFactory.create_default_agent(
|
|
126
|
+
name="idea_generator",
|
|
127
|
+
input="topic",
|
|
128
|
+
output="catchy_title, key_points"
|
|
129
|
+
)
|
|
130
|
+
|
|
131
|
+
# 3. Add the agent to the Flock
|
|
132
|
+
my_flock.add_agent(brainstorm_agent)
|
|
133
|
+
|
|
134
|
+
# 4. Run the agent!
|
|
135
|
+
input_data = {"topic": "The future of AI agents"}
|
|
136
|
+
result = my_flock.run(start_agent="idea_generator", input=input_data)
|
|
137
|
+
|
|
138
|
+
# The result is a Box object (dot-accessible dict)
|
|
139
|
+
print(f"Generated Title: {result.catchy_title}")
|
|
140
|
+
print(f"Key Points: {result.key_points}")
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
**No 20-line prompt fiddling. Just structured output, every time.**
|
|
144
|
+
|
|
145
|
+

|
|
146
|
+
|
|
147
|
+
**Explore more examples →** [**Flock Showcase Repository**](https://github.com/whiteducksoftware/flock-showcase)
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
## 💾 Installation - Use Flock in your project
|
|
152
|
+
|
|
153
|
+
Get started with the core Flock library:
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
# Using uv (recommended)
|
|
157
|
+
uv pip install flock-core
|
|
158
|
+
|
|
159
|
+
# Using pip
|
|
160
|
+
pip install flock-core
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
Extras: Install optional dependencies for specific features:
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
# Flock tools and mcp server
|
|
167
|
+
uv pip install flock-mcp
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
## 🔑 Installation - Develop Flock
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
git clone https://github.com/whiteducksoftware/flock.git
|
|
174
|
+
cd flock
|
|
175
|
+
|
|
176
|
+
# One-liner dev setup after cloning
|
|
177
|
+
pip install poethepoet && poe install
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
Additional provided `poe` tasks and commands:
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
poe install # Install the project
|
|
184
|
+
poe build # Build the project
|
|
185
|
+
poe docs # Serve the docs
|
|
186
|
+
poe format # Format the code
|
|
187
|
+
poe lint # Lint the code
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## 🔑 Environment Setup
|
|
191
|
+
|
|
192
|
+
Flock uses environment variables (typically in a .env file) for configuration, especially API keys. Create a .env file in your project root:
|
|
193
|
+
|
|
194
|
+
```bash
|
|
195
|
+
# .env - Example
|
|
196
|
+
|
|
197
|
+
# --- LLM Provider API Keys (Required by most examples) ---
|
|
198
|
+
# Add keys for providers you use (OpenAI, Anthropic, Gemini, Azure, etc.)
|
|
199
|
+
# Refer to litellm docs (https://docs.litellm.ai/docs/providers) for names
|
|
200
|
+
OPENAI_API_KEY="your-openai-api-key"
|
|
201
|
+
# ANTHROPIC_API_KEY="your-anthropic-api-key"
|
|
202
|
+
|
|
203
|
+
# --- Tool-Specific Keys (Optional) ---
|
|
204
|
+
# TAVILY_API_KEY="your-tavily-search-key"
|
|
205
|
+
# GITHUB_PAT="your-github-personal-access-token"
|
|
206
|
+
|
|
207
|
+
# --- Default Flock Settings (Optional) ---
|
|
208
|
+
DEFAULT_MODEL="openai/gpt-4o" # Default LLM if agent doesn't specify
|
|
209
|
+
|
|
210
|
+
# --- Flock CLI Settings (Managed by `flock settings`) ---
|
|
211
|
+
# SHOW_SECRETS="False"
|
|
212
|
+
# VARS_PER_PAGE="20"
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
Be sure that the .env file is added to your .gitignore!
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
## 🐤 New in Flock 0.5.0 `Kea` 🐤
|
|
219
|
+
|
|
220
|
+
Keas are one of the smartest birds in the world famous for figuring out multi-step puzzles, unlatching doors, and coordinating in small groups to get what it wants.
|
|
221
|
+
|
|
222
|
+
<Insert Kea Logo>
|
|
223
|
+
|
|
224
|
+
### Self-optimizing agents
|
|
225
|
+
|
|
226
|
+
### Everything you need to evaluate and optimize agents
|
|
227
|
+
|
|
228
|
+
### Benchmarks
|
|
229
|
+
|
|
230
|
+
### Smooth Jupyter experience
|
|
231
|
+
|
|
232
|
+
### Multi-Threading and Thread Safety
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
--------------------------------
|
|
236
|
+
|
|
237
|
+
## 📚 Examples & Tutorials
|
|
238
|
+
|
|
239
|
+
For a comprehensive set of examples, ranging from basic usage to complex projects and advanced features, please visit our dedicated showcase repository:
|
|
240
|
+
|
|
241
|
+
➡️ [github.com/whiteducksoftware/flock-showcase](https://github.com/whiteducksoftware/flock-showcase) ⬅️
|
|
242
|
+
|
|
243
|
+
The showcase includes:
|
|
244
|
+
|
|
245
|
+
- Step-by-step guides for core concepts.
|
|
246
|
+
- Examples of tool usage, routing, memory, and more.
|
|
247
|
+
- Complete mini-projects demonstrating practical applications.
|
|
248
|
+
|
|
249
|
+
## 📖 Documentation
|
|
250
|
+
|
|
251
|
+
Full documentation, including API references and conceptual explanations, can be found at:
|
|
252
|
+
|
|
253
|
+
➡️ [whiteducksoftware.github.io/flock/](https://whiteducksoftware.github.io/flock/) ⬅️
|
|
254
|
+
|
|
255
|
+
## 🤝 Contributing
|
|
256
|
+
|
|
257
|
+
We welcome contributions! Please see the CONTRIBUTING.md file (if available) or open an issue/pull request on GitHub.
|
|
258
|
+
|
|
259
|
+
Ways to contribute:
|
|
260
|
+
|
|
261
|
+
- Report bugs or suggest features.
|
|
262
|
+
- Improve documentation.
|
|
263
|
+
- Contribute new Modules, Evaluators, or Routers.
|
|
264
|
+
- Add examples to the flock-showcase repository.
|
|
265
|
+
|
|
266
|
+
## 📜 License
|
|
267
|
+
|
|
268
|
+
Flock is licensed under the MIT License. See the LICENSE file for details.
|
|
269
|
+
|
|
270
|
+
## 🏢 About
|
|
271
|
+
|
|
272
|
+
Flock is developed and maintained by white duck GmbH, your partner for cloud-native solutions and AI integration.
|
|
@@ -11,13 +11,13 @@ flock/cli/config.py,sha256=5DvFLObOx3ObisHnc9JfnUBnK83y0CBsUQzXfxPZve0,138
|
|
|
11
11
|
flock/cli/constants.py,sha256=ZA5YbLcKXlfiT5h1zCZrAvBWywv3HcuWZqoHWTPdAM0,973
|
|
12
12
|
flock/cli/create_agent.py,sha256=DkeLUlrb7rGx3nZ04aADU9HXXu5mZTf_DBwT0xhzIv4,7
|
|
13
13
|
flock/cli/create_flock.py,sha256=nrz4URy9boSAaKUKxNTBzNcHc6RBqCvmrR7xS8wKq5k,8463
|
|
14
|
-
flock/cli/execute_flock.py,sha256
|
|
14
|
+
flock/cli/execute_flock.py,sha256=lxb3rZpzc5GZ4R_HFs1Zb3tfjWbSNNXsw4uDrQWVpqA,19137
|
|
15
15
|
flock/cli/load_agent.py,sha256=DkeLUlrb7rGx3nZ04aADU9HXXu5mZTf_DBwT0xhzIv4,7
|
|
16
16
|
flock/cli/load_examples.py,sha256=DkeLUlrb7rGx3nZ04aADU9HXXu5mZTf_DBwT0xhzIv4,7
|
|
17
17
|
flock/cli/load_flock.py,sha256=sfZ9B9aiyC5TCEbn1xR5Yd5SoaVji6MBNYzXlWOpoZ4,7111
|
|
18
18
|
flock/cli/load_release_notes.py,sha256=bkMIjjQFfOngXkDCh2kB404lQYIToeR91LodzI2IUWM,555
|
|
19
19
|
flock/cli/loaded_flock_cli.py,sha256=lGZ9Y2O16v4OEr0dxvPQA8HqreB_bP25C9teg4ViSsA,8202
|
|
20
|
-
flock/cli/manage_agents.py,sha256=
|
|
20
|
+
flock/cli/manage_agents.py,sha256=LEnrg_ljcbVl9tAaOmyVQ37y5qitTT0Z8lTlWwNMMZc,13468
|
|
21
21
|
flock/cli/registry_management.py,sha256=mAHy3wT97YgODR0gVOkTXDqR5NIPzM-E-z9dEtw9-tw,29790
|
|
22
22
|
flock/cli/runner.py,sha256=TgiuhRLkpa6dn3C-3eCmWx-bWUlTjaH0sD7Y-O7MrYM,1122
|
|
23
23
|
flock/cli/settings.py,sha256=Z_TXBzCYlCmSaKrJ_CQCdYy-Cj29gpI4kbC_2KzoKqg,27025
|
|
@@ -25,38 +25,56 @@ flock/cli/utils.py,sha256=JJrvM-1D2tbWkicrtkhOgRqVqYb0MdA2XtHYGOYuPRw,4644
|
|
|
25
25
|
flock/cli/view_results.py,sha256=dOzK0O1FHSIDERnx48y-2Xke9BkOHS7pcOhs64AyIg0,781
|
|
26
26
|
flock/cli/yaml_editor.py,sha256=K3N0bh61G1TSDAZDnurqW9e_-hO6CtSQKXQqlDhCjVo,12527
|
|
27
27
|
flock/cli/assets/release_notes.md,sha256=bqnk50jxM3w5uY44Dc7MkdT8XmRREFxrVBAG9XCOSSU,4896
|
|
28
|
-
flock/
|
|
29
|
-
flock/
|
|
30
|
-
flock/
|
|
31
|
-
flock/
|
|
32
|
-
flock/
|
|
33
|
-
flock/
|
|
34
|
-
flock/
|
|
35
|
-
flock/
|
|
36
|
-
flock/
|
|
37
|
-
flock/
|
|
28
|
+
flock/components/__init__.py,sha256=qDcaP0O7_b5RlUEXluqwskpKCkhM73kSMeNXReze63M,963
|
|
29
|
+
flock/components/evaluation/__init__.py,sha256=_M3UlRFeNN90fEny6byt5VdLDE5o5khbd0EPT0o9S9k,303
|
|
30
|
+
flock/components/evaluation/declarative_evaluation_component.py,sha256=yxDv1g4ue5VsnLCEAEZepu4frh8eBwZVqTDogawyxTo,8597
|
|
31
|
+
flock/components/routing/__init__.py,sha256=BH_pFm9T6bUuf8HH4byDJ0dO0fzEVHv9m-ghUdDVdm0,542
|
|
32
|
+
flock/components/routing/conditional_routing_component.py,sha256=WqZLMz-0Dhfb97xvttNrJCIVe6FNMLEQ2m4KQTDpIbI,21374
|
|
33
|
+
flock/components/routing/default_routing_component.py,sha256=ZHt2Kjf-GHB5n7evU5NSGeQJ1Wuims5soeMswqaUb1E,3370
|
|
34
|
+
flock/components/routing/llm_routing_component.py,sha256=SAaOFjlnhnenM6QEBn3WIpjjNXO-tFpP44TS73zvqzQ,7502
|
|
35
|
+
flock/components/utility/__init__.py,sha256=JRj932upddjzZMWs1avOupEFr_GZNu21ac66Rhw_XgY,532
|
|
36
|
+
flock/components/utility/memory_utility_component.py,sha256=4Vpt6_McEPpN5lNTcXmj7JeZTBOT6rHI0uQE2Qy-3Gc,20103
|
|
37
|
+
flock/components/utility/metrics_utility_component.py,sha256=u3Bys0dP7FmTeyZOi4XdMhZHCRYc5miXXJ690-qS1Us,24440
|
|
38
|
+
flock/components/utility/output_utility_component.py,sha256=_YIqU6IaY2yeh1uJcWgZI7XTRSPoDsJjawQTKp_RGxA,7519
|
|
39
|
+
flock/core/__init__.py,sha256=ntCQ_wlgvRVNFph3drbFvyaqgtN30487V18YoJzcIFE,1332
|
|
40
|
+
flock/core/flock.py,sha256=dN-asYsN2QOolZtYM5U8bRWEWkGckKRyhyy2n1xQ9b8,23148
|
|
41
|
+
flock/core/flock_agent.py,sha256=jdEhtGnPFhYDqUyhzHJ6R3EcKp5ocqI3gEaCARCqirs,12027
|
|
42
|
+
flock/core/flock_factory.py,sha256=Y7d329deUYOJoD0lRyC8RNsahiO7Z9r0w5bfSE_4VKo,19946
|
|
43
|
+
flock/core/flock_scheduler.py,sha256=ng_s7gyijmc-AmYvBn5rtg61CSUZiIkXPRSlA1xO6VQ,8766
|
|
44
|
+
flock/core/flock_server_manager.py,sha256=tM_nOs37vAbEvxmhwy_DL2JPvgFViWroNxrRSu5MfUQ,4523
|
|
45
|
+
flock/core/agent/__init__.py,sha256=l32KFMJnC_gidMXpAXK8-OX228bWOhNc8OY_NzXm59Q,515
|
|
46
|
+
flock/core/agent/flock_agent_components.py,sha256=LamOgpRC7wDKuU3d6enDG0UFlNxyKPErLpH7SQ_Pi74,4539
|
|
47
|
+
flock/core/agent/flock_agent_execution.py,sha256=pdOddBGv8y1P89Ix8XFWa1eW9i3bWjOYiQQxeY2K0yo,4217
|
|
48
|
+
flock/core/agent/flock_agent_integration.py,sha256=JseDY72KaMPQAeMqGlvPpCtcfYR2iFr3UDYTWDDH0To,8285
|
|
49
|
+
flock/core/agent/flock_agent_lifecycle.py,sha256=msGKSNVRwV70_UvKBFLpdnLkTfvTu5FKJIMVZQC59NE,7292
|
|
50
|
+
flock/core/agent/flock_agent_serialization.py,sha256=U9UcX34G_ntT6O1pkiXKonc8bZWxQt-T3OWWxxqmwkk,16954
|
|
38
51
|
flock/core/api/__init__.py,sha256=KdzUwBOwhxqqy7lAMLpysKL5GvpIiwOy6CxXELZVWaY,186
|
|
39
52
|
flock/core/api/custom_endpoint.py,sha256=Mbk2owdcXVATaT5FtEWXFzllgursozcmqP8ouG5btc0,1305
|
|
40
|
-
flock/core/api/endpoints.py,sha256=
|
|
53
|
+
flock/core/api/endpoints.py,sha256=xFkTqg96JKuPeBAqA_A4lzvVQatsb-aJ6ojPppidbyk,12119
|
|
41
54
|
flock/core/api/main.py,sha256=MMKTWRLZQXcdoeiN8NOX7s5_vBrzH5reE-W_5xJn8fM,8716
|
|
42
55
|
flock/core/api/models.py,sha256=seqKuzhbN37nCNO7KrcJjI2mWuwiOKCLFcJcTPvTtag,3422
|
|
43
56
|
flock/core/api/run_store.py,sha256=bFodJvVyWogzoezVy0cOoWWU3MdEBXf_6_5sBqCRWps,9227
|
|
44
57
|
flock/core/api/runner.py,sha256=3izg6cVk1RoR1hDIDwMAO1gi3lnLcp8DPv7AnJBYx6A,1443
|
|
45
|
-
flock/core/api/service.py,sha256=
|
|
46
|
-
flock/core/
|
|
58
|
+
flock/core/api/service.py,sha256=52JBZ8jw4xgkrnY1nGgKr8MvtVgKnBsTrGRtop_SLZQ,11369
|
|
59
|
+
flock/core/component/__init__.py,sha256=84fXB3tlxio1bvjFw8UvL4_Kl6wcYZ3Nzwyuyc89k_U,450
|
|
60
|
+
flock/core/component/agent_component_base.py,sha256=ifHGcXI-7Q0JEcLCCS8OBrYNmLiuznHiKBhX5QpgInM,10665
|
|
61
|
+
flock/core/component/evaluation_component.py,sha256=IvhS6NgUTH-UWft42Cmk3hK03xGM87kYAmKlQcIcOfs,2016
|
|
62
|
+
flock/core/component/routing_component.py,sha256=gXUpMAf5Ty831FAQ20EAiAW8OkX8jjhgq7yCj4hGEBU,2669
|
|
63
|
+
flock/core/component/utility_component.py,sha256=05DTltnp8-xNGOPVpmKIxG8ry0VNB3PjojOzLZMyrI0,2322
|
|
64
|
+
flock/core/config/flock_agent_config.py,sha256=5Y9vJKYEkhtjU6I-bJAJBh0eLDYjGdPar_sJ9wMP65A,2132
|
|
47
65
|
flock/core/config/scheduled_agent_config.py,sha256=3okCjpggJSKkc1Dp8ZJuQP010tQvN3dk8n_llbTc5aE,1506
|
|
48
66
|
flock/core/context/context.py,sha256=zdQuB1YWPJmQVv_2_sm1HK7FSnusa3Jl-83PcTuaLUk,7791
|
|
49
67
|
flock/core/context/context_manager.py,sha256=FANSWa6DEhdhtZ7t_9Gza0v80UdpoDOhHbfVOccmjkA,1181
|
|
50
68
|
flock/core/context/context_vars.py,sha256=ASPA29hpENWub4mgRoG62FtTVakCHQZfn6IhJQKe3C8,347
|
|
51
|
-
flock/core/evaluation/utils.py,sha256=
|
|
52
|
-
flock/core/execution/batch_executor.py,sha256=
|
|
53
|
-
flock/core/execution/evaluation_executor.py,sha256=
|
|
69
|
+
flock/core/evaluation/utils.py,sha256=q3Z6PD6Ko9IY9S-aTV8vIwtG7GzyHFydrmtM9sHEpDM,15360
|
|
70
|
+
flock/core/execution/batch_executor.py,sha256=Qw3geig7ciCJJTFkayuKZikQ2iHC1Za4UlQCmIydqYg,15260
|
|
71
|
+
flock/core/execution/evaluation_executor.py,sha256=D2AwJXfcgFT1ir0pYdTFT6rug5H4Va-17bIVcy-v3nQ,17681
|
|
54
72
|
flock/core/execution/local_executor.py,sha256=rnIQvaJOs6zZORUcR3vvyS6LPREDJTjaygl_Db0M8ao,952
|
|
55
|
-
flock/core/execution/opik_executor.py,sha256=
|
|
73
|
+
flock/core/execution/opik_executor.py,sha256=tlxsgweWXbIveE4vW_F9qFdUTfmHF45XfLz-Xx8n4xE,3319
|
|
56
74
|
flock/core/execution/temporal_executor.py,sha256=dHcb0xuzPFWU_wbwTgI7glLNyyppei93Txs2sapjhaw,6283
|
|
57
75
|
flock/core/interpreter/python_interpreter.py,sha256=4-wRsxC6-gToEdRr_pp-n2idWwe_Y2zN0o3TbzUPhy0,26632
|
|
58
76
|
flock/core/logging/__init__.py,sha256=xn5fC-8IgsdIv0ywe_cICK1KVhTrVD8t-jYORg0ETUA,155
|
|
59
|
-
flock/core/logging/logging.py,sha256=
|
|
77
|
+
flock/core/logging/logging.py,sha256=y-V4XPxiwtWCjiAN_YoIRAUP1ialMSH_kT_TYircGjQ,19870
|
|
60
78
|
flock/core/logging/telemetry.py,sha256=Trssqx02SBovTL843YwY3L-ZGj3KvcfMHLMU7Syk8L0,6561
|
|
61
79
|
flock/core/logging/trace_and_logged.py,sha256=5vNrK1kxuPMoPJ0-QjQg-EDJL1oiEzvU6UNi6X8FiMs,2117
|
|
62
80
|
flock/core/logging/formatters/enum_builder.py,sha256=LgEYXUv84wK5vwHflZ5h8HBGgvLH3sByvUQe8tZiyY0,981
|
|
@@ -68,11 +86,11 @@ flock/core/logging/telemetry_exporter/base_exporter.py,sha256=rQJJzS6q9n2aojoSqw
|
|
|
68
86
|
flock/core/logging/telemetry_exporter/file_exporter.py,sha256=nKAjJSZtA7FqHSTuTiFtYYepaxOq7l1rDvs8U8rSBlA,3023
|
|
69
87
|
flock/core/logging/telemetry_exporter/sqlite_exporter.py,sha256=CDsiMb9QcqeXelZ6ZqPSS56ovMPGqOu6whzBZRK__Vg,3498
|
|
70
88
|
flock/core/mcp/__init__.py,sha256=g3hzM_9ntsr-Af9dE9cCZEjQ9YX2jk7-Jm-0JcHSk1A,25
|
|
71
|
-
flock/core/mcp/flock_mcp_server.py,sha256=
|
|
72
|
-
flock/core/mcp/
|
|
73
|
-
flock/core/mcp/mcp_client.py,sha256=
|
|
74
|
-
flock/core/mcp/mcp_client_manager.py,sha256=
|
|
75
|
-
flock/core/mcp/mcp_config.py,sha256=
|
|
89
|
+
flock/core/mcp/flock_mcp_server.py,sha256=Mkcod8l9jakljXDnnZQrw8JDynQ6LkAUSqJRmTsc76Y,26359
|
|
90
|
+
flock/core/mcp/flock_mcp_tool.py,sha256=Ed2aALKyV1ivZBbT11txUIlV-8ucssBKSbH3LmLllEI,6796
|
|
91
|
+
flock/core/mcp/mcp_client.py,sha256=JqY_sAYjWCDrIJDOxy-bMqhXjb7kTPHlqxth8SYKr7g,25893
|
|
92
|
+
flock/core/mcp/mcp_client_manager.py,sha256=P-m3loDqPoH2UEW5VeNamgxtoPdZPiG4iPwZ4t28Ctw,8020
|
|
93
|
+
flock/core/mcp/mcp_config.py,sha256=1cEC3u1JICXuXrGyffirAGcqNR1wdxUZG6hIKzGqHrw,16479
|
|
76
94
|
flock/core/mcp/types/__init__.py,sha256=YgEJvTXe5VfSMfJNlpefdBYJOmMbMWQsXzc_qmOAybg,25
|
|
77
95
|
flock/core/mcp/types/callbacks.py,sha256=M4dvL9-PUVmojPTK18fg8ngHqYd7AogMoO6HixM9q10,2494
|
|
78
96
|
flock/core/mcp/types/factories.py,sha256=T4fIyyJYibP8AGg_gjR1Pu5LO5xP5LsAfmBxyD6bBmY,3440
|
|
@@ -80,69 +98,48 @@ flock/core/mcp/types/handlers.py,sha256=VEpOx5ShvlvOEvgo2Fs5rql-x0obVQYgEpcb8FBr
|
|
|
80
98
|
flock/core/mcp/types/types.py,sha256=2amE-oastGe1GGVI4gbH2ltCX7QvYnJebSArATvttUU,11410
|
|
81
99
|
flock/core/mcp/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
82
100
|
flock/core/mcp/util/helpers.py,sha256=Xlf4iKW_lZxsVMTRoOnV29JsJfAppfmEJrb6sIcoCH4,636
|
|
83
|
-
flock/core/mixin/dspy_integration.py,sha256=
|
|
101
|
+
flock/core/mixin/dspy_integration.py,sha256=jS_hJvDK3YReyI5Y9tmNQQrVdW1t1zFtnDqjRVQovPo,17720
|
|
84
102
|
flock/core/mixin/prompt_parser.py,sha256=eOqI-FK3y17gVqpc_y5GF-WmK1Jv8mFlkZxTcgweoxI,5121
|
|
103
|
+
flock/core/orchestration/__init__.py,sha256=lu6VgCpza0c34lDVhTdtFBY9gCuXx-sdadGqxLlfHuQ,543
|
|
104
|
+
flock/core/orchestration/flock_batch_processor.py,sha256=2vqSOHd-Zk871UTai3jGXvITgcwSowaCNjvDkSWbkLg,3357
|
|
105
|
+
flock/core/orchestration/flock_evaluator.py,sha256=_Ctub0P5VOnePpaPQgb7Qw-gvJerns8uO8u2QVOyGYA,4082
|
|
106
|
+
flock/core/orchestration/flock_execution.py,sha256=KrUv9jeua9_2cSF64oa_l_urCbvtWKJNXMFmewMGlJk,11387
|
|
107
|
+
flock/core/orchestration/flock_initialization.py,sha256=zgP9lLszPdY0jCkzF2JQrP7LUMa2ZlZMJK4wN5yjDFQ,4554
|
|
108
|
+
flock/core/orchestration/flock_server_manager.py,sha256=idDds7QGsqneY21Y5oL9NHN7fz13FlPF4W1C5HsNhZE,2568
|
|
109
|
+
flock/core/orchestration/flock_web_server.py,sha256=uLTKW2pLf4vW3MqhrA2bl3K69zHRqRqcx6vkFZHRi70,3827
|
|
110
|
+
flock/core/registry/__init__.py,sha256=CWKLV1-lnIM1mQXbmZgyzbSFM177FDGeQDexfI5GDus,1324
|
|
111
|
+
flock/core/registry/agent_registry.py,sha256=GTRiziP70jT05--_Vn1-hBi4oM2QU7FG5wzbvesExWQ,2681
|
|
112
|
+
flock/core/registry/callable_registry.py,sha256=BpQZJ6VjUOrFqFGMg3EPkHsIigGDO8DIT9zzlpNlorc,6761
|
|
113
|
+
flock/core/registry/component_discovery.py,sha256=8xN00U044sSMRDRav0cGiKOv1yHK327buSiragjVWKo,6627
|
|
114
|
+
flock/core/registry/component_registry.py,sha256=hZF-xNPbPutlxesoXQbPW5BSmssSrcCar7olZvs6DeA,2617
|
|
115
|
+
flock/core/registry/config_mapping.py,sha256=ShSQd9QqNb2hiASsW_6h27aex23G75X2OzYy9SY-uxs,2392
|
|
116
|
+
flock/core/registry/decorators.py,sha256=nKLVHafnH4GQaMW6cRomJpzlAmIhYQfxs5VhtfBizXc,3765
|
|
117
|
+
flock/core/registry/registry_hub.py,sha256=_neypRON3x5RjjAP4PhhGnBcwOKj2Co8tseeWlTPBYM,8068
|
|
118
|
+
flock/core/registry/server_registry.py,sha256=hNw1ZnJF5Mt1FKMkgMMDBODu2Pmgq6aFZZSNbfoEC_Y,2093
|
|
119
|
+
flock/core/registry/type_registry.py,sha256=h1DVQH8gWS6u2Lc2MmpzcfXlbhP7U2mZrMIdHrAhq6U,3109
|
|
85
120
|
flock/core/serialization/__init__.py,sha256=CML7fPgG6p4c0CDBlJ_uwV1aZZhJKK9uy3IoIHfO87w,431
|
|
86
121
|
flock/core/serialization/callable_registry.py,sha256=sUZECTZWsM3fJ8FDRQ-FgLNW9hF26nY17AD6fJKADMc,1419
|
|
87
|
-
flock/core/serialization/flock_serializer.py,sha256=
|
|
122
|
+
flock/core/serialization/flock_serializer.py,sha256=xsv6Sg1HBbXG5-oyrPqBTbGRtzBeDNGRbWokUpJR3So,35427
|
|
88
123
|
flock/core/serialization/json_encoder.py,sha256=gAKj2zU_8wQiNvdkby2hksSA4fbPNwTjup_yz1Le1Vw,1229
|
|
89
124
|
flock/core/serialization/secure_serializer.py,sha256=n5-zRvvXddgJv1FFHsaQ2wuYdL3WUSGPvG_LGaffEJo,6144
|
|
90
125
|
flock/core/serialization/serializable.py,sha256=qlv8TsTqRuklXiNuCMrvro5VKz764xC2i3FlgLJSkdk,12129
|
|
91
|
-
flock/core/serialization/serialization_utils.py,sha256=
|
|
126
|
+
flock/core/serialization/serialization_utils.py,sha256=_TvGJw5zLP-asJxtAGJ65nqWNlLSEzeCSe2N-4JAST8,15283
|
|
92
127
|
flock/core/util/cli_helper.py,sha256=9MiAw8y0IRlWKF7lRYViRFzSwbWSeiiLv0usyhn8XlU,49966
|
|
93
128
|
flock/core/util/file_path_utils.py,sha256=Odf7uU32C-x1KNighbNERSiMtkzW4h8laABIoFK7A5M,6246
|
|
94
|
-
flock/core/util/hydrator.py,sha256=
|
|
95
|
-
flock/core/util/input_resolver.py,sha256=
|
|
129
|
+
flock/core/util/hydrator.py,sha256=qRfVTDBEwqv1-ET2D4s5NI25f-UA_tGsoAmt5jaJMDI,10693
|
|
130
|
+
flock/core/util/input_resolver.py,sha256=XNQlx0zRyAIkeVY4SSpfDnpyGQThsEwp3aj_ylv1hjo,5765
|
|
96
131
|
flock/core/util/loader.py,sha256=j3q2qem5bFMP2SmMuYjb-ISxsNGNZd1baQmpvAnRUUk,2244
|
|
97
132
|
flock/core/util/splitter.py,sha256=rDLnZX158PWkmW8vi2UfMLAMRXcHQFUIydAABd-lDGw,7154
|
|
98
|
-
flock/evaluators/__init__.py,sha256=Y0cEkx0dujRmy--TDpKoTqFSLzbyFz8BwEOv8kdSUhg,22
|
|
99
|
-
flock/evaluators/declarative/__init__.py,sha256=Y0cEkx0dujRmy--TDpKoTqFSLzbyFz8BwEOv8kdSUhg,22
|
|
100
|
-
flock/evaluators/declarative/declarative_evaluator.py,sha256=vEdScni2uzOKFliFgSZEE1mgcDWM0s9MdOEga6a_nUM,8186
|
|
101
|
-
flock/evaluators/memory/memory_evaluator.py,sha256=ySwz7kcc8suXMJ7gKNSWThW8iOMlE8lUcUzEAHvv8rw,3559
|
|
102
|
-
flock/evaluators/test/test_case_evaluator.py,sha256=3Emcoty0LOLLBIuPGxSpKphuZC9Fu1DTr1vbGg-hd0Q,1233
|
|
103
|
-
flock/evaluators/zep/zep_evaluator.py,sha256=6_5vTdU0yJAH8I8w3-MPXiAZx6iUPhAVCsHjrHzkPLM,2058
|
|
104
133
|
flock/mcp/servers/sse/__init__.py,sha256=r6YtleRSOMJqKhTtKQeFKd3QDaUJVz9R1BGJgOm_PF8,51
|
|
105
|
-
flock/mcp/servers/sse/flock_sse_server.py,sha256=
|
|
134
|
+
flock/mcp/servers/sse/flock_sse_server.py,sha256=MfEJPtU8xHl4PrTaHDJKab92FXHStjiMhboT-o38mNA,4940
|
|
106
135
|
flock/mcp/servers/stdio/__init__.py,sha256=36QMguWwHCklLbISNNe1m2cq-y9klAWRf_QnuYpD2aY,53
|
|
107
|
-
flock/mcp/servers/stdio/flock_stdio_server.py,sha256=
|
|
136
|
+
flock/mcp/servers/stdio/flock_stdio_server.py,sha256=GTKbPAB2exxZXnHLLh9f-yw1lwam8KF2AueexsdLbHA,4881
|
|
108
137
|
flock/mcp/servers/streamable_http/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
109
|
-
flock/mcp/servers/streamable_http/flock_streamable_http_server.py,sha256=
|
|
138
|
+
flock/mcp/servers/streamable_http/flock_streamable_http_server.py,sha256=5qjv_1JB468wihIB9MPQsmB0Fy42vYmD5c4PxChyQTw,5778
|
|
110
139
|
flock/mcp/servers/websockets/__init__.py,sha256=KeNgNQRdeCQ9xgpaHB1I0-HyYeBhkifAuZPTIA8eDqM,47
|
|
111
|
-
flock/mcp/servers/websockets/flock_websocket_server.py,sha256=
|
|
112
|
-
flock/
|
|
113
|
-
flock/modules/assertion/__init__.py,sha256=Y0cEkx0dujRmy--TDpKoTqFSLzbyFz8BwEOv8kdSUhg,22
|
|
114
|
-
flock/modules/assertion/assertion_module.py,sha256=2p9mIj8yBXRGgfe5pUWYXcLT86Ny13KyWHpRhe0Ehtg,12877
|
|
115
|
-
flock/modules/callback/__init__.py,sha256=Y0cEkx0dujRmy--TDpKoTqFSLzbyFz8BwEOv8kdSUhg,22
|
|
116
|
-
flock/modules/callback/callback_module.py,sha256=FnTYQeL828uQgYlpgGUnwCz0OzW_DKdOnQ3nwQCcu5o,2956
|
|
117
|
-
flock/modules/enterprise_memory/README.md,sha256=8xKfUi0mjX8tfVe77E3n9IoM97OuhlaCc1QE7PHSF1s,3111
|
|
118
|
-
flock/modules/enterprise_memory/enterprise_memory_module.py,sha256=XieINLCdRIiybhwmNY1_elIf7uyIut-Pas8Pz6PKR-c,21304
|
|
119
|
-
flock/modules/mem0/__init__.py,sha256=Y0cEkx0dujRmy--TDpKoTqFSLzbyFz8BwEOv8kdSUhg,22
|
|
120
|
-
flock/modules/mem0/mem0_module.py,sha256=EoQcD6OgxLuv1AxdLh76XNXZ_4f9zGPRd9LMCPBfgzk,4818
|
|
121
|
-
flock/modules/mem0_async/__init__.py,sha256=Y0cEkx0dujRmy--TDpKoTqFSLzbyFz8BwEOv8kdSUhg,22
|
|
122
|
-
flock/modules/mem0_async/async_mem0_module.py,sha256=F7RRzKgiOo1iySckTVVzOnqnv8epitVJjwalFWUFjzY,4936
|
|
123
|
-
flock/modules/memory/__init__.py,sha256=Y0cEkx0dujRmy--TDpKoTqFSLzbyFz8BwEOv8kdSUhg,22
|
|
124
|
-
flock/modules/memory/memory_module.py,sha256=RhkiBOB0eOkiLZb3hV2meFUZ95euYoAKUxKkfBaq1V4,15922
|
|
125
|
-
flock/modules/memory/memory_parser.py,sha256=FLH7GL8XThvHiCMfX3eQH7Sz-f62fzhAUmO6_gaDI7U,4372
|
|
126
|
-
flock/modules/memory/memory_storage.py,sha256=CNcLDMmvv0x7Z3YMKr6VveS_VCa7rKPw8l2d-XgqokA,27246
|
|
127
|
-
flock/modules/output/__init__.py,sha256=Y0cEkx0dujRmy--TDpKoTqFSLzbyFz8BwEOv8kdSUhg,22
|
|
128
|
-
flock/modules/output/output_module.py,sha256=gEn1_khPAJp-hqU6Rxdv1sQz0jTLVSzYJvNbK1uVNCY,7402
|
|
129
|
-
flock/modules/performance/__init__.py,sha256=Y0cEkx0dujRmy--TDpKoTqFSLzbyFz8BwEOv8kdSUhg,22
|
|
130
|
-
flock/modules/performance/metrics_module.py,sha256=O-FI6h8kbsrXDLoGYMWYT1Vgbp2S5-U4TMXzBHUfcDU,23987
|
|
131
|
-
flock/modules/zep/__init__.py,sha256=Y0cEkx0dujRmy--TDpKoTqFSLzbyFz8BwEOv8kdSUhg,22
|
|
132
|
-
flock/modules/zep/zep_module.py,sha256=gJXOqdoWIXcWOyzJoyqykgq5gU-Y2Dze3tLuQM_tMQc,6572
|
|
133
|
-
flock/platform/docker_tools.py,sha256=fpA7-6rJBjPOUBLdQP4ny2QPgJ_042nmqRn5GtKnoYw,1445
|
|
140
|
+
flock/mcp/servers/websockets/flock_websocket_server.py,sha256=Gt3i5mZHIszmNwVLNkj6Kkces-2Obb12mraoqpDAcdk,4284
|
|
141
|
+
flock/platform/docker_tools.py,sha256=2QFZtYhPKJsPgCVrQIANrCcQjHDMyBHGDikV4xPYSao,1463
|
|
134
142
|
flock/platform/jaeger_install.py,sha256=MyOMJQx4TQSMYvdUJxfiGSo3YCtsfkbNXcAcQ9bjETA,2898
|
|
135
|
-
flock/routers/__init__.py,sha256=w9uL34Auuo26-q_EGlE8Z9iHsw6S8qutTAH_ZI7pn7M,39
|
|
136
|
-
flock/routers/agent/__init__.py,sha256=0ZOYpR8BMnR5iCGfcUiv99g7aT_g13xvm2Shl-XzybY,65
|
|
137
|
-
flock/routers/agent/agent_router.py,sha256=d4rberqXguJFmDB_hLTaeaDP_rOvCnVQufPELA-pD6M,8327
|
|
138
|
-
flock/routers/agent/handoff_agent.py,sha256=p-0XEPXIyv1T3DGAhhXg2SYXmrwEaJ5pnuLgRSvbiZg,1903
|
|
139
|
-
flock/routers/conditional/conditional_router.py,sha256=eBFA8ZRFwCDCggtQcVLj8907K-piOk-K0fXezJfjnRg,21422
|
|
140
|
-
flock/routers/default/__init__.py,sha256=DOatGX_aE2DWvf55a0Tv7qDK05QFD-hL3sm7g58hmLU,61
|
|
141
|
-
flock/routers/default/default_router.py,sha256=RgJm6RcS8ah1S49mM9TccfJpenQ0SzzbPCX0K8ZtnHs,2384
|
|
142
|
-
flock/routers/feedback/feedback_router.py,sha256=RODEmPrrNZ-ODdZ0mGfmO8auEnH6KvHN3f5rmFGeq1M,4947
|
|
143
|
-
flock/routers/list_generator/list_generator_router.py,sha256=mofBBZFSfqek_uiYbiC-6avdfhTF8Q8tyEVka1xxALs,7741
|
|
144
|
-
flock/routers/llm/__init__.py,sha256=OV89ebq8RPWZwCJTS2_P46Q0yKD_03rwq_fBOsETd08,63
|
|
145
|
-
flock/routers/llm/llm_router.py,sha256=F2GAKaiJxWCdtvI1G9vLkoLaY6kR_DgJYoRLenVN9FI,12335
|
|
146
143
|
flock/themes/3024-day.toml,sha256=uOVHqEzSyHx0WlUk3D0lne4RBsNBAPCTy3C58yU7kEY,667
|
|
147
144
|
flock/themes/3024-night.toml,sha256=qsXUwd6ZYz6J-R129_Ao2TKlvvK60svhZJJjB5c8Tfo,1667
|
|
148
145
|
flock/themes/aardvark-blue.toml,sha256=5ZgsxP3pWLPN3yJ2Wd9ErCo7fy_VJpIfje4kriDKlqo,1667
|
|
@@ -479,23 +476,13 @@ flock/themes/zenburn.toml,sha256=NxOAR3cx-Z9PVErEKHFZ6jsjfKBtPmfyN_vGSri5_qo,171
|
|
|
479
476
|
flock/themes/zenburned.toml,sha256=UEmquBbcAO3Zj652XKUwCsNoC2iQSlIh-q5c6DH-7Kc,1664
|
|
480
477
|
flock/themes/zenwritten-dark.toml,sha256=To5l6520_3UqAGiEumpzGWsHhXxqu9ThrMildXKgIO0,1669
|
|
481
478
|
flock/themes/zenwritten-light.toml,sha256=G1iEheCPfBNsMTGaVpEVpDzYBHA_T-MV27rolUYolmE,1666
|
|
482
|
-
flock/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
483
|
-
flock/tools/azure_tools.py,sha256=OTJsb0B4l70GcD1W3ZMDHWd3X8nEnszhhz2sllD2z9E,30187
|
|
484
|
-
flock/tools/code_tools.py,sha256=xLpuFl84y_GVzmIBe4qrr7h9wI3yWpM-M21GgEUjSjE,5247
|
|
485
|
-
flock/tools/file_tools.py,sha256=VYjT942NqDMTnizHiF41O4Af6ySseSvahRNVVrGMXl8,4850
|
|
486
|
-
flock/tools/github_tools.py,sha256=HH47-4K3HL6tRJhZhUttWDo2aloP9Hs12wRC_f_-Vkc,5329
|
|
487
|
-
flock/tools/markdown_tools.py,sha256=94fjGAJ5DEutoioD0ke-YRbxF6IWJQKuPVBLkNqdBo4,6345
|
|
488
|
-
flock/tools/system_tools.py,sha256=IUB8MiSxtQH5ZfTGOck3vl4TKva8m1lfU4-W5D5b-4w,202
|
|
489
|
-
flock/tools/text_tools.py,sha256=mMQ8tkyYDxIorqqzl9ccGyWYjrSynYiYFIeP9qypfdg,22491
|
|
490
|
-
flock/tools/web_tools.py,sha256=Wl3qO5lKq4PYtmYahgeFGBQ8tDC0uKY4k9A1Zn-MqFw,2588
|
|
491
|
-
flock/tools/zendesk_tools.py,sha256=e7KMfHVl7wGbstwdz9CvoChyuoZfpS9n4TEtvrxawgI,5162
|
|
492
479
|
flock/webapp/__init__.py,sha256=YtRbbyciN3Z2oMB9fdXZuvM3e49R8m2mY5qHLDoapRA,37
|
|
493
480
|
flock/webapp/run.py,sha256=btKVwIqrFg3FhLRuj2RN_fazwaFat3Ue5yiFiIg60rQ,9054
|
|
494
481
|
flock/webapp/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
495
|
-
flock/webapp/app/chat.py,sha256=
|
|
482
|
+
flock/webapp/app/chat.py,sha256=SY-w0GQ9TUc-pyPlOzyReGU1GCBqtJetQbo6KFq5CEk,33153
|
|
496
483
|
flock/webapp/app/config.py,sha256=lqmneujnNZk-EFJV5cWpvxkqisxH3T3zT_YOI0JYThE,4809
|
|
497
484
|
flock/webapp/app/dependencies.py,sha256=JUcwY1N6SZplU141lMN2wk9dOC9er5HCedrKTJN9wJk,5533
|
|
498
|
-
flock/webapp/app/main.py,sha256=
|
|
485
|
+
flock/webapp/app/main.py,sha256=GSCx_trZGSma11BiDCLrdm_zU1VIsIUDbOZuQD1wbMk,58671
|
|
499
486
|
flock/webapp/app/middleware.py,sha256=5gkM-gqD7C6-JrsoTB1_UWpf05JI1N8KIWajn60QZk0,5721
|
|
500
487
|
flock/webapp/app/models_ui.py,sha256=vrEBLbhEp6FziAgBSFOLT1M7ckwadsTdT7qus5_NduE,329
|
|
501
488
|
flock/webapp/app/theme_mapper.py,sha256=QzWwLWpED78oYp3FjZ9zxv1KxCyj43m8MZ0fhfzz37w,34302
|
|
@@ -506,9 +493,9 @@ flock/webapp/app/api/execution.py,sha256=ovtjcBmm_S7Gyg1_hM4euBdIPDTZJZu-hCQa64t
|
|
|
506
493
|
flock/webapp/app/api/flock_management.py,sha256=1o-6-36kTnUjI3am_BqLpdrcz0aqFXrxE-hQHIFcCsg,4869
|
|
507
494
|
flock/webapp/app/api/registry_viewer.py,sha256=IoInxJiRR0yFlecG_l2_eRc6l35RQQyEDMG9BcBkipY,1020
|
|
508
495
|
flock/webapp/app/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
509
|
-
flock/webapp/app/services/flock_service.py,sha256=
|
|
496
|
+
flock/webapp/app/services/flock_service.py,sha256=cuJezcNvrRiyQM2f6Nu62NAmcqJBpqLydml6zI0_OuI,14935
|
|
510
497
|
flock/webapp/app/services/sharing_models.py,sha256=XeJk1akILV_1l-cIUaG8k_eYhjV3EWBCWZ2kpwbdImA,3609
|
|
511
|
-
flock/webapp/app/services/sharing_store.py,sha256=
|
|
498
|
+
flock/webapp/app/services/sharing_store.py,sha256=VJaKKaoepfy73b4ggD_Vnif6ekmcKyVs2r5Wxr0h6c0,26650
|
|
512
499
|
flock/webapp/app/templates/theme_mapper.html,sha256=z8ZY7nmk6PiUGzD_-px7wSXcEnuBM121rMq6u-2oaCo,14249
|
|
513
500
|
flock/webapp/static/css/chat.css,sha256=Njc9gXfQzbXMrqtFJH2Yda-IQlwNPd2z4apXxzfA0sY,8169
|
|
514
501
|
flock/webapp/static/css/components.css,sha256=WnicEHy3ptPzggKmyG9_oZp3X30EMJBUW3KEXaiUCUE,6018
|
|
@@ -556,14 +543,14 @@ flock/webapp/templates/partials/_sidebar.html,sha256=yfhEcF3xKI5j1c3iq46mU8mmPvg
|
|
|
556
543
|
flock/webapp/templates/partials/_structured_data_view.html,sha256=TEaXcMGba9ruxEc_MLxygIO1qWcuSTo1FnosFtGSKWI,2101
|
|
557
544
|
flock/webapp/templates/partials/_theme_preview.html,sha256=THeMYTXzgzHJxzWqaTtUhmJyBZT3saLRAa6wzZa4qnk,1347
|
|
558
545
|
flock/workflow/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
559
|
-
flock/workflow/activities.py,sha256=
|
|
546
|
+
flock/workflow/activities.py,sha256=iCGy_45YKUSrNEV89JyT7C4zOZyVEEvSYZUh3qSZR0E,8533
|
|
560
547
|
flock/workflow/agent_activities.py,sha256=NhBZscflEf2IMfSRa_pBM_TRP7uVEF_O0ROvWZ33eDc,963
|
|
561
|
-
flock/workflow/agent_execution_activity.py,sha256=
|
|
562
|
-
flock/workflow/flock_workflow.py,sha256=
|
|
548
|
+
flock/workflow/agent_execution_activity.py,sha256=CzTkbjGqrPoAbldaQOS_doesosDK9mT04M8cbtvP5ps,9432
|
|
549
|
+
flock/workflow/flock_workflow.py,sha256=ZhAF82ewNRY2vvDjNpXT1D9lCVQsLOSMTaZVzdcogJc,9674
|
|
563
550
|
flock/workflow/temporal_config.py,sha256=3_8O7SDEjMsSMXsWJBfnb6XTp0TFaz39uyzSlMTSF_I,3988
|
|
564
551
|
flock/workflow/temporal_setup.py,sha256=YIHnSBntzOchHfMSh8hoLeNXrz3B1UbR14YrR6soM7A,1606
|
|
565
|
-
flock_core-0.
|
|
566
|
-
flock_core-0.
|
|
567
|
-
flock_core-0.
|
|
568
|
-
flock_core-0.
|
|
569
|
-
flock_core-0.
|
|
552
|
+
flock_core-0.5.0b0.dist-info/METADATA,sha256=Yxb5yLI2gvzsQ91aPaY03JNuM9LT2Ci4tUd2dY0NTGQ,9941
|
|
553
|
+
flock_core-0.5.0b0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
554
|
+
flock_core-0.5.0b0.dist-info/entry_points.txt,sha256=rWaS5KSpkTmWySURGFZk6PhbJ87TmvcFQDi2uzjlagQ,37
|
|
555
|
+
flock_core-0.5.0b0.dist-info/licenses/LICENSE,sha256=iYEqWy0wjULzM9GAERaybP4LBiPeu7Z1NEliLUdJKSc,1072
|
|
556
|
+
flock_core-0.5.0b0.dist-info/RECORD,,
|
flock/core/flock_evaluator.py
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
"""Base classes and implementations for Flock evaluators."""
|
|
2
|
-
|
|
3
|
-
from abc import ABC, abstractmethod
|
|
4
|
-
from typing import Any, TypeVar
|
|
5
|
-
|
|
6
|
-
from pydantic import BaseModel, Field, create_model
|
|
7
|
-
|
|
8
|
-
T = TypeVar("T", bound="FlockEvaluatorConfig")
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
class FlockEvaluatorConfig(BaseModel):
|
|
12
|
-
"""Base configuration class for Flock modules.
|
|
13
|
-
|
|
14
|
-
This class serves as the base for all module-specific configurations.
|
|
15
|
-
Each module should define its own config class inheriting from this one.
|
|
16
|
-
|
|
17
|
-
Example:
|
|
18
|
-
class MemoryModuleConfig(FlockModuleConfig):
|
|
19
|
-
file_path: str = Field(default="memory.json")
|
|
20
|
-
save_after_update: bool = Field(default=True)
|
|
21
|
-
"""
|
|
22
|
-
|
|
23
|
-
model: str = Field(
|
|
24
|
-
default="", description="The model to use for evaluation"
|
|
25
|
-
)
|
|
26
|
-
|
|
27
|
-
@classmethod
|
|
28
|
-
def with_fields(cls: type[T], **field_definitions) -> type[T]:
|
|
29
|
-
"""Create a new config class with additional fields."""
|
|
30
|
-
return create_model(
|
|
31
|
-
f"Dynamic{cls.__name__}", __base__=cls, **field_definitions
|
|
32
|
-
)
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
class FlockEvaluator(ABC, BaseModel):
|
|
36
|
-
"""Base class for all evaluators in Flock.
|
|
37
|
-
|
|
38
|
-
An evaluator is responsible for taking inputs and producing outputs using
|
|
39
|
-
some evaluation strategy (e.g., DSPy, natural language, etc.).
|
|
40
|
-
"""
|
|
41
|
-
|
|
42
|
-
name: str = Field(..., description="Unique identifier for this evaluator")
|
|
43
|
-
config: FlockEvaluatorConfig = Field(
|
|
44
|
-
default_factory=FlockEvaluatorConfig,
|
|
45
|
-
description="Evaluator configuration",
|
|
46
|
-
)
|
|
47
|
-
|
|
48
|
-
def __init__(self, **data):
|
|
49
|
-
super().__init__(**data)
|
|
50
|
-
|
|
51
|
-
@abstractmethod
|
|
52
|
-
async def evaluate(
|
|
53
|
-
self,
|
|
54
|
-
agent: Any,
|
|
55
|
-
inputs: dict[str, Any],
|
|
56
|
-
tools: list[Any],
|
|
57
|
-
mcp_tools: list[Any] | None = None,
|
|
58
|
-
) -> dict[str, Any]:
|
|
59
|
-
"""Evaluate inputs to produce outputs."""
|
|
60
|
-
pass
|