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.

Files changed (130) hide show
  1. flock/cli/execute_flock.py +1 -1
  2. flock/cli/manage_agents.py +6 -6
  3. flock/components/__init__.py +30 -0
  4. flock/components/evaluation/__init__.py +9 -0
  5. flock/components/evaluation/declarative_evaluation_component.py +222 -0
  6. flock/components/routing/__init__.py +15 -0
  7. flock/{routers/conditional/conditional_router.py → components/routing/conditional_routing_component.py} +61 -53
  8. flock/components/routing/default_routing_component.py +103 -0
  9. flock/components/routing/llm_routing_component.py +206 -0
  10. flock/components/utility/__init__.py +15 -0
  11. flock/{modules/enterprise_memory/enterprise_memory_module.py → components/utility/memory_utility_component.py} +195 -173
  12. flock/{modules/performance/metrics_module.py → components/utility/metrics_utility_component.py} +110 -95
  13. flock/{modules/output/output_module.py → components/utility/output_utility_component.py} +47 -45
  14. flock/core/__init__.py +26 -18
  15. flock/core/agent/__init__.py +16 -0
  16. flock/core/agent/flock_agent_components.py +104 -0
  17. flock/core/agent/flock_agent_execution.py +101 -0
  18. flock/core/agent/flock_agent_integration.py +206 -0
  19. flock/core/agent/flock_agent_lifecycle.py +177 -0
  20. flock/core/agent/flock_agent_serialization.py +381 -0
  21. flock/core/api/endpoints.py +2 -2
  22. flock/core/api/service.py +2 -2
  23. flock/core/component/__init__.py +15 -0
  24. flock/core/{flock_module.py → component/agent_component_base.py} +136 -34
  25. flock/core/component/evaluation_component.py +56 -0
  26. flock/core/component/routing_component.py +74 -0
  27. flock/core/component/utility_component.py +69 -0
  28. flock/core/config/flock_agent_config.py +49 -2
  29. flock/core/evaluation/utils.py +3 -2
  30. flock/core/execution/batch_executor.py +1 -1
  31. flock/core/execution/evaluation_executor.py +2 -2
  32. flock/core/execution/opik_executor.py +1 -1
  33. flock/core/flock.py +147 -493
  34. flock/core/flock_agent.py +195 -1032
  35. flock/core/flock_factory.py +114 -90
  36. flock/core/flock_scheduler.py +1 -1
  37. flock/core/flock_server_manager.py +8 -8
  38. flock/core/logging/logging.py +1 -0
  39. flock/core/mcp/flock_mcp_server.py +53 -48
  40. flock/core/mcp/{flock_mcp_tool_base.py → flock_mcp_tool.py} +2 -2
  41. flock/core/mcp/mcp_client.py +9 -9
  42. flock/core/mcp/mcp_client_manager.py +9 -9
  43. flock/core/mcp/mcp_config.py +24 -24
  44. flock/core/mixin/dspy_integration.py +5 -5
  45. flock/core/orchestration/__init__.py +18 -0
  46. flock/core/orchestration/flock_batch_processor.py +94 -0
  47. flock/core/orchestration/flock_evaluator.py +113 -0
  48. flock/core/orchestration/flock_execution.py +288 -0
  49. flock/core/orchestration/flock_initialization.py +125 -0
  50. flock/core/orchestration/flock_server_manager.py +67 -0
  51. flock/core/orchestration/flock_web_server.py +117 -0
  52. flock/core/registry/__init__.py +45 -0
  53. flock/core/registry/agent_registry.py +69 -0
  54. flock/core/registry/callable_registry.py +139 -0
  55. flock/core/registry/component_discovery.py +142 -0
  56. flock/core/registry/component_registry.py +64 -0
  57. flock/core/registry/config_mapping.py +64 -0
  58. flock/core/registry/decorators.py +137 -0
  59. flock/core/registry/registry_hub.py +205 -0
  60. flock/core/registry/server_registry.py +57 -0
  61. flock/core/registry/type_registry.py +86 -0
  62. flock/core/serialization/flock_serializer.py +36 -32
  63. flock/core/serialization/serialization_utils.py +28 -25
  64. flock/core/util/hydrator.py +1 -1
  65. flock/core/util/input_resolver.py +29 -2
  66. flock/mcp/servers/sse/flock_sse_server.py +10 -10
  67. flock/mcp/servers/stdio/flock_stdio_server.py +10 -10
  68. flock/mcp/servers/streamable_http/flock_streamable_http_server.py +10 -10
  69. flock/mcp/servers/websockets/flock_websocket_server.py +10 -10
  70. flock/platform/docker_tools.py +3 -3
  71. flock/webapp/app/chat.py +1 -1
  72. flock/webapp/app/main.py +9 -5
  73. flock/webapp/app/services/flock_service.py +1 -1
  74. flock/webapp/app/services/sharing_store.py +1 -0
  75. flock/workflow/activities.py +67 -92
  76. flock/workflow/agent_execution_activity.py +6 -6
  77. flock/workflow/flock_workflow.py +1 -1
  78. flock_core-0.5.0b0.dist-info/METADATA +272 -0
  79. {flock_core-0.4.527.dist-info → flock_core-0.5.0b0.dist-info}/RECORD +82 -95
  80. flock/core/flock_evaluator.py +0 -60
  81. flock/core/flock_registry.py +0 -702
  82. flock/core/flock_router.py +0 -83
  83. flock/evaluators/__init__.py +0 -1
  84. flock/evaluators/declarative/__init__.py +0 -1
  85. flock/evaluators/declarative/declarative_evaluator.py +0 -217
  86. flock/evaluators/memory/memory_evaluator.py +0 -90
  87. flock/evaluators/test/test_case_evaluator.py +0 -38
  88. flock/evaluators/zep/zep_evaluator.py +0 -59
  89. flock/modules/__init__.py +0 -1
  90. flock/modules/assertion/__init__.py +0 -1
  91. flock/modules/assertion/assertion_module.py +0 -286
  92. flock/modules/callback/__init__.py +0 -1
  93. flock/modules/callback/callback_module.py +0 -91
  94. flock/modules/enterprise_memory/README.md +0 -99
  95. flock/modules/mem0/__init__.py +0 -1
  96. flock/modules/mem0/mem0_module.py +0 -126
  97. flock/modules/mem0_async/__init__.py +0 -1
  98. flock/modules/mem0_async/async_mem0_module.py +0 -126
  99. flock/modules/memory/__init__.py +0 -1
  100. flock/modules/memory/memory_module.py +0 -429
  101. flock/modules/memory/memory_parser.py +0 -125
  102. flock/modules/memory/memory_storage.py +0 -736
  103. flock/modules/output/__init__.py +0 -1
  104. flock/modules/performance/__init__.py +0 -1
  105. flock/modules/zep/__init__.py +0 -1
  106. flock/modules/zep/zep_module.py +0 -192
  107. flock/routers/__init__.py +0 -1
  108. flock/routers/agent/__init__.py +0 -1
  109. flock/routers/agent/agent_router.py +0 -236
  110. flock/routers/agent/handoff_agent.py +0 -58
  111. flock/routers/default/__init__.py +0 -1
  112. flock/routers/default/default_router.py +0 -80
  113. flock/routers/feedback/feedback_router.py +0 -114
  114. flock/routers/list_generator/list_generator_router.py +0 -166
  115. flock/routers/llm/__init__.py +0 -1
  116. flock/routers/llm/llm_router.py +0 -365
  117. flock/tools/__init__.py +0 -0
  118. flock/tools/azure_tools.py +0 -781
  119. flock/tools/code_tools.py +0 -167
  120. flock/tools/file_tools.py +0 -149
  121. flock/tools/github_tools.py +0 -157
  122. flock/tools/markdown_tools.py +0 -205
  123. flock/tools/system_tools.py +0 -9
  124. flock/tools/text_tools.py +0 -810
  125. flock/tools/web_tools.py +0 -90
  126. flock/tools/zendesk_tools.py +0 -147
  127. flock_core-0.4.527.dist-info/METADATA +0 -674
  128. {flock_core-0.4.527.dist-info → flock_core-0.5.0b0.dist-info}/WHEEL +0 -0
  129. {flock_core-0.4.527.dist-info → flock_core-0.5.0b0.dist-info}/entry_points.txt +0 -0
  130. {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
+ ![image](https://github.com/user-attachments/assets/37a897cb-910f-49fc-89d4-510a780ad775)
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=-_DQ8zLGoj2YWHXyY_1kDadEyasb8Zxggau3RZMpeXk,19143
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=cWEHNPDaEAOYaxFhGbt1jmWvIhxmUNjZ24lMP8gH2y8,13506
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/core/__init__.py,sha256=juwyNr3QqKXUS5-E3hlMYRhgqHgQBqgtP12OF3tUCAI,1249
29
- flock/core/flock.py,sha256=iR4i0_z0w2ns_iHbP7FqN--7wlsPIWch1H-BVecPs_I,38205
30
- flock/core/flock_agent.py,sha256=Hl6TONSiJi2I-N_49-1hkW2q_hyPXMebMr-5oZLI-PY,48842
31
- flock/core/flock_evaluator.py,sha256=TPy6u6XX3cqkY1r9NW1w2lTwCMNW7pxhFYKLefnEbXg,1820
32
- flock/core/flock_factory.py,sha256=QI5qzxSyg3z3T3wRHoTOyegeaquyfUO5cJjpT_QgRl8,18814
33
- flock/core/flock_module.py,sha256=ObILimpVaPnaaqYvcBYJJ20lQzfrjgTdADplaNRjHU0,7448
34
- flock/core/flock_registry.py,sha256=KzdFfc3QC-Dk42G24hdf6Prp3HvGj9ymXR3TTBe-T-A,27161
35
- flock/core/flock_router.py,sha256=1OAXDsdaIIFApEfo6SRfFEDoTuGt3Si7n2MXiySEfis,2644
36
- flock/core/flock_scheduler.py,sha256=fu99UXMhs8qkbTLi1q1h4-mR4TxmsyA156EGXuXZ3-Q,8772
37
- flock/core/flock_server_manager.py,sha256=YU6HOcg_IBXtnkbTIBNBONh3MZkvIjdKWHaiSOo16sE,4555
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=YoqnGscF02OxGXrvOxkn-9hnCwcZD9Vx6YkeHoC8pSk,12187
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=HRHs4xt-bGeSm5hdN92H1vWQtLzqZalhZxIh6iwww8Y,11381
46
- flock/core/config/flock_agent_config.py,sha256=XP96-Ceh4CfVsHFHXT-YxyRnX_URvabz1xlwdHkD8go,282
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=S5M0uTFcClphZsR5EylEzrRNK-1434yImiGYL4pR_5o,15380
52
- flock/core/execution/batch_executor.py,sha256=mHwCI-DHqApCv_EVCN0ZOUd-LCQLjREpxKbAUPC0pcY,15266
53
- flock/core/execution/evaluation_executor.py,sha256=D9EO0sU-2qWj3vomjmUUi-DOtHNJNFRf30kGDHuzREE,17702
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=tl2Ti9NM_9WtcjXvJ0c7up-syRNq_OsLmiuYWqkGV4k,3325
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=VyBsin-3q8UQ0DY-K72t8FtrGJQbUwIfzxaC7rIWMvQ,19820
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=WgvQDMq5qFj-PzuTXght0uFsztodYEkcIUXQ5TC4Q4M,25852
72
- flock/core/mcp/flock_mcp_tool_base.py,sha256=ZY6bUJEW3FY0Q5W5vNW0F8RqIovzKZU-X0JrVmK0TuA,6804
73
- flock/core/mcp/mcp_client.py,sha256=Nf-fC5EtX2egeoqgDx02EIWlwEd6aaNuT1n2DEbnvg0,25934
74
- flock/core/mcp/mcp_client_manager.py,sha256=hn97F9xEpYNbs02ruEbrtQo4PYD7TNKQAC0AwuAh6xw,8061
75
- flock/core/mcp/mcp_config.py,sha256=izO07hTD-2CrAhilqF9WDTpHNaK5l1T4UwFn6VsDwYc,16575
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=rsZ9bkCKlT3jJRncnwwngTtffKcF2WloFvSleaZ0QRk,17746
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=mpBHGPlYrm6QOchOnw8v4l10unb4TXqO9_G60yMutEs,35461
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=AHRf90trgnj2Q6aaGaq5eja5PRcuJANUsp2wafGUeig,15257
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=ARg4ufXNlfAESDaxPeU8j6TOJ2ywzfl00KAIfVHGIxo,10699
95
- flock/core/util/input_resolver.py,sha256=QE3EjP7xTRNHuH6o77O3YhlhiCWOcnDg8cnSXzngKnM,4704
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=YesBrgdbxOsZO6Lgm8EQ8SsDDqhQGkTUPcEuLcqy89A,4980
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=E78F7iJ6hDyiHREZqNvou5-31NOBRGAYnpeEcRUF5VA,4921
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=3bKxx5zBkVXZIvD9qz31oL1ucsMeEO4kdOpv4S558zo,5818
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=ntDLKMM20xTGd7k2TbNEK3ToJAF14oyW6vwofNzvqtM,4324
112
- flock/modules/__init__.py,sha256=Y0cEkx0dujRmy--TDpKoTqFSLzbyFz8BwEOv8kdSUhg,22
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=Wm7yr3j2Zjh2t6i5QF461m8FXZFfBMFtf7Sy_s2cigA,33159
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=J3NiwW4fFTrp_YKa-HFXs3gLtLC6qu9LjIb_i-jJHMk,58426
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=olU1My3YYkrTCVIOYPgRted-8YgAop-Yi7G4gbRHTrg,14941
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=vUIFSDppxPL65DP2OWczYe5aheuv_oHO2cynCtsRgtE,26649
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=fyvefDOWZhhj5gCYIHR9Aqm2DbE6XI6-sXESFnnYRuc,9911
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=Gy6FtuVAjf0NiUXmC3syS2eJpNQF4R3pmwMq47NYW3U,9462
562
- flock/workflow/flock_workflow.py,sha256=iSUF_soFvWar0ffpkzE4irkDZRx0p4HnwmEBi_Ne2sY,9666
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.4.527.dist-info/METADATA,sha256=RvdNldnNPaR7aVN0c_pULSlP166YPJr5uJwey78shgo,22786
566
- flock_core-0.4.527.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
567
- flock_core-0.4.527.dist-info/entry_points.txt,sha256=rWaS5KSpkTmWySURGFZk6PhbJ87TmvcFQDi2uzjlagQ,37
568
- flock_core-0.4.527.dist-info/licenses/LICENSE,sha256=iYEqWy0wjULzM9GAERaybP4LBiPeu7Z1NEliLUdJKSc,1072
569
- flock_core-0.4.527.dist-info/RECORD,,
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,,
@@ -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