flock-core 0.2.18__py3-none-any.whl → 0.3.2__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 (34) hide show
  1. flock/__init__.py +39 -29
  2. flock/cli/assets/release_notes.md +111 -0
  3. flock/cli/constants.py +1 -0
  4. flock/cli/load_release_notes.py +23 -0
  5. flock/core/__init__.py +12 -1
  6. flock/core/context/context.py +10 -5
  7. flock/core/flock.py +61 -21
  8. flock/core/flock_agent.py +112 -442
  9. flock/core/flock_evaluator.py +49 -0
  10. flock/core/flock_factory.py +73 -0
  11. flock/core/flock_module.py +77 -0
  12. flock/{interpreter → core/interpreter}/python_interpreter.py +9 -1
  13. flock/core/logging/formatters/themes.py +1 -1
  14. flock/core/logging/logging.py +119 -15
  15. flock/core/mixin/dspy_integration.py +11 -8
  16. flock/core/registry/agent_registry.py +4 -2
  17. flock/core/tools/basic_tools.py +1 -1
  18. flock/core/util/cli_helper.py +41 -3
  19. flock/evaluators/declarative/declarative_evaluator.py +52 -0
  20. flock/evaluators/natural_language/natural_language_evaluator.py +66 -0
  21. flock/evaluators/zep/zep_evaluator.py +55 -0
  22. flock/modules/callback/callback_module.py +86 -0
  23. flock/modules/memory/memory_module.py +235 -0
  24. flock/modules/memory/memory_parser.py +125 -0
  25. flock/modules/memory/memory_storage.py +736 -0
  26. flock/modules/output/output_module.py +194 -0
  27. flock/modules/performance/metrics_module.py +477 -0
  28. flock/modules/zep/zep_module.py +177 -0
  29. flock/themes/aardvark-blue.toml +1 -1
  30. {flock_core-0.2.18.dist-info → flock_core-0.3.2.dist-info}/METADATA +49 -2
  31. {flock_core-0.2.18.dist-info → flock_core-0.3.2.dist-info}/RECORD +34 -19
  32. {flock_core-0.2.18.dist-info → flock_core-0.3.2.dist-info}/WHEEL +0 -0
  33. {flock_core-0.2.18.dist-info → flock_core-0.3.2.dist-info}/entry_points.txt +0 -0
  34. {flock_core-0.2.18.dist-info → flock_core-0.3.2.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,177 @@
1
+ import uuid
2
+ from typing import Any
3
+
4
+ from pydantic import Field
5
+ from zep_python.client import Zep
6
+ from zep_python.types import Message as ZepMessage, SessionSearchResult
7
+
8
+ from flock.core.flock_agent import FlockAgent
9
+ from flock.core.flock_module import FlockModule, FlockModuleConfig
10
+ from flock.core.logging.logging import get_logger
11
+
12
+ logger = get_logger("module.zep")
13
+
14
+
15
+ class ZepModuleConfig(FlockModuleConfig):
16
+ """Configuration for the Zep module."""
17
+
18
+ zep_url: str = "http://localhost:8000"
19
+ zep_api_key: str = "apikey"
20
+ min_fact_rating: float = Field(
21
+ default=0.7, description="Minimum rating for facts to be considered"
22
+ )
23
+ enable_read: bool = True
24
+ enable_write: bool = False
25
+
26
+
27
+ class ZepModule(FlockModule):
28
+ """Module that adds Zep capabilities to a Flock agent."""
29
+
30
+ name: str = "zep"
31
+ config: ZepModuleConfig = ZepModuleConfig()
32
+ session_id: str | None = None
33
+ user_id: str | None = None
34
+
35
+ def __init__(self, name, config: ZepModuleConfig) -> None:
36
+ """Initialize Zep module."""
37
+ super().__init__(name=name, config=config)
38
+ logger.debug("Initializing Zep module")
39
+ zep_client = Zep(
40
+ base_url=self.config.zep_url, api_key=self.config.zep_api_key
41
+ )
42
+ self.user_id = self.name
43
+ self._setup_user(zep_client)
44
+ self.session_id = str(uuid.uuid4())
45
+ self._setup_session(zep_client)
46
+
47
+ def _setup_user(self, zep_client: Zep) -> None:
48
+ """Set up user in Zep."""
49
+ if not zep_client or not self.user_id:
50
+ raise ValueError("Zep service or user_id not initialized")
51
+
52
+ try:
53
+ user = zep_client.user.get(user_id=self.user_id)
54
+ if not user:
55
+ zep_client.user.add(user_id=self.user_id)
56
+ except Exception:
57
+ zep_client.user.add(user_id=self.user_id)
58
+
59
+ def _setup_session(self, zep_client: Zep) -> None:
60
+ """Set up new session."""
61
+ if not zep_client or not self.user_id or not self.session_id:
62
+ raise ValueError(
63
+ "Zep service, user_id, or session_id not initialized"
64
+ )
65
+
66
+ zep_client.memory.add_session(
67
+ user_id=self.user_id,
68
+ session_id=self.session_id,
69
+ )
70
+
71
+ def get_client(self) -> Zep:
72
+ """Get Zep client."""
73
+ return Zep(
74
+ base_url=self.config.zep_url, api_key=self.config.zep_api_key
75
+ )
76
+
77
+ def get_memory(self, zep_client: Zep) -> str | None:
78
+ """Get memory for the current session."""
79
+ if not zep_client or not self.session_id:
80
+ logger.error("Zep service or session_id not initialized")
81
+ return None
82
+
83
+ try:
84
+ memory = zep_client.memory.get(
85
+ self.session_id, min_rating=self.config.min_fact_rating
86
+ )
87
+ if memory:
88
+ return f"{memory.relevant_facts}"
89
+ except Exception as e:
90
+ logger.error(f"Error fetching memory: {e}")
91
+ return None
92
+
93
+ return None
94
+
95
+ def split_text(
96
+ self, text: str | None, max_length: int = 1000
97
+ ) -> list[ZepMessage]:
98
+ """Split text into smaller chunks."""
99
+ result: list[ZepMessage] = []
100
+ if not text:
101
+ return result
102
+ if len(text) <= max_length:
103
+ return [ZepMessage(role="user", content=text, role_type="user")]
104
+ for i in range(0, len(text), max_length):
105
+ result.append(
106
+ ZepMessage(
107
+ role="user",
108
+ content=text[i : i + max_length],
109
+ role_type="user",
110
+ )
111
+ )
112
+ return result
113
+
114
+ def add_to_memory(self, text: str, zep_client: Zep) -> None:
115
+ """Add text to memory."""
116
+ if not zep_client or not self.session_id:
117
+ logger.error("Zep service or session_id not initialized")
118
+ return
119
+
120
+ messages = self.split_text(text)
121
+ zep_client.memory.add(session_id=self.session_id, messages=messages)
122
+
123
+ def search_memory(
124
+ self, query: str, zep_client: Zep
125
+ ) -> list[SessionSearchResult]:
126
+ """Search memory for a query."""
127
+ if not zep_client or not self.user_id:
128
+ logger.error("Zep service or user_id not initialized")
129
+ return []
130
+
131
+ response = zep_client.memory.search_sessions(
132
+ text=query,
133
+ user_id=self.user_id,
134
+ search_scope="facts",
135
+ min_fact_rating=self.config.min_fact_rating,
136
+ )
137
+ if not response.results:
138
+ return []
139
+ return response.results
140
+
141
+ async def post_evaluate(
142
+ self, agent: FlockAgent, inputs: dict[str, Any], result: dict[str, Any]
143
+ ) -> dict[str, Any]:
144
+ """Format and display the output."""
145
+ if not self.config.enable_write:
146
+ return result
147
+ logger.debug("Saving data to memory")
148
+ zep_client = Zep(
149
+ base_url=self.config.zep_url, api_key=self.config.zep_api_key
150
+ )
151
+ self.add_to_memory(str(result), zep_client)
152
+ return result
153
+
154
+ async def pre_evaluate(
155
+ self, agent: FlockAgent, inputs: dict[str, Any]
156
+ ) -> dict[str, Any]:
157
+ """Format and display the output."""
158
+ if not self.config.enable_read:
159
+ return inputs
160
+
161
+ zep_client = Zep(
162
+ base_url=self.config.zep_url, api_key=self.config.zep_api_key
163
+ )
164
+
165
+ logger.debug("Searching memory")
166
+ facts = self.search_memory(str(inputs), zep_client)
167
+
168
+ # Add memory to inputs
169
+ facts_str = ""
170
+ if facts:
171
+ for fact in facts:
172
+ facts_str += fact.fact.fact + "\n"
173
+ logger.debug("Found facts in memory: {}", facts_str)
174
+ agent.input = agent.input + ", memory"
175
+ inputs["memory"] = facts_str
176
+
177
+ return inputs
@@ -28,7 +28,7 @@ table_show_lines = true
28
28
  table_box = "ROUNDED"
29
29
  panel_padding = [ 1, 2,]
30
30
  panel_title_align = "center"
31
- table_row_styles = [ "", "underline",]
31
+ table_row_styles = [ "", "bold",]
32
32
  table_safe_box = true
33
33
  table_padding = [ 0, 1,]
34
34
  table_collapse_padding = false
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flock-core
3
- Version: 0.2.18
3
+ Version: 0.3.2
4
4
  Summary: Declarative LLM Orchestration at Scale
5
5
  Author-email: Andre Ratzenberger <andre.ratzenberger@whiteduck.de>
6
6
  License-File: LICENSE
@@ -14,6 +14,7 @@ Requires-Dist: dspy==2.5.42
14
14
  Requires-Dist: duckduckgo-search>=7.3.2
15
15
  Requires-Dist: httpx>=0.28.1
16
16
  Requires-Dist: loguru>=0.7.3
17
+ Requires-Dist: matplotlib>=3.10.0
17
18
  Requires-Dist: msgpack>=1.1.0
18
19
  Requires-Dist: opentelemetry-api>=1.30.0
19
20
  Requires-Dist: opentelemetry-exporter-jaeger-proto-grpc>=1.21.0
@@ -21,13 +22,19 @@ Requires-Dist: opentelemetry-exporter-jaeger>=1.21.0
21
22
  Requires-Dist: opentelemetry-exporter-otlp>=1.30.0
22
23
  Requires-Dist: opentelemetry-instrumentation-logging>=0.51b0
23
24
  Requires-Dist: opentelemetry-sdk>=1.30.0
25
+ Requires-Dist: pillow>=10.4.0
26
+ Requires-Dist: prometheus-client>=0.21.1
24
27
  Requires-Dist: pydantic>=2.10.5
25
28
  Requires-Dist: python-box>=7.3.2
26
29
  Requires-Dist: python-decouple>=3.8
27
30
  Requires-Dist: questionary>=2.1.0
28
31
  Requires-Dist: rich>=13.9.4
32
+ Requires-Dist: sentence-transformers>=3.4.1
29
33
  Requires-Dist: temporalio>=1.9.0
34
+ Requires-Dist: tiktoken>=0.8.0
30
35
  Requires-Dist: toml>=0.10.2
36
+ Requires-Dist: tqdm>=4.67.1
37
+ Requires-Dist: zep-python>=2.0.2
31
38
  Provides-Extra: all-tools
32
39
  Requires-Dist: docling>=2.18.0; extra == 'all-tools'
33
40
  Requires-Dist: markdownify>=0.14.1; extra == 'all-tools'
@@ -350,9 +357,49 @@ Super simple rules to remember:
350
357
  1. Point the first agent to the next one using `hand_off`
351
358
  2. Make sure their inputs and outputs match up
352
359
 
360
+ ### Tools of the trade
361
+
362
+ Of couse no agent framework is complete without using tools.
363
+ Flock enables agents to use any python function you pass as tool or to use one of the plenty default tools
364
+
365
+ ```python
366
+ bloggy = FlockAgent(
367
+ name="bloggy",
368
+ input="blog_idea: str|The topic to blog about",
369
+ output=(
370
+ "funny_blog_title: str|A catchy title for the blog, "
371
+ "blog_headers: list[str]|List of section headers for the blog"
372
+ "analysis_results: dict[str,Any] | Result of calculated analysis if necessary"
373
+ )
374
+ tools=[basic_tools.web_search_duckduckgo, basic_tools.code_eval],
375
+ )
376
+
377
+ result = flock.run(
378
+ input={"blog_idea": "A blog about cats, with an analysis how old the oldest cat became in days"},
379
+ start_agent=bloggy
380
+ )
381
+ ```
382
+
383
+ These tools are available out of the box (needs `flock-core[tools]`):
384
+
385
+ - web_search_tavily
386
+ - web_search_duckduckgo
387
+ - get_web_content_as_markdown
388
+ - get_anything_as_markdown (uses docling and needs `flock-core[all-tools]`)
389
+ - evaluate_math
390
+ - code_eval
391
+ - get_current_time
392
+ - count_words
393
+ - extract_urls
394
+ - extract_numbers
395
+ - json_parse_safe
396
+ - save_to_file
397
+ - read_from_file
398
+
399
+
353
400
  That's all there is to it! `bloggy` comes up with amazing headers, and `content_writer` turns them into full blog sections. No more writer's block! 🎉
354
401
 
355
- And this is just the beginning - you can chain as many agents as you want. Maybe add a proofreader? Or an SEO optimizer? But let's not get ahead of ourselves! 😉
402
+ And this is just the beginning - you can chain as many agents as you want. Maybe add a proofreader? Or add memory? Or an SEO optimizer? But let's not get ahead of ourselves! 😉
356
403
 
357
404
  So far we've barely scratched the surface of what flock has to offer, and we're currently hard at work building up the documentation for all the other super cool features Flock has up its sleeve! Stay tuned! 🚀
358
405
 
@@ -1,47 +1,62 @@
1
- flock/__init__.py,sha256=Aw2FBlpdyOMFlV87CgBQkyHZx-FChzzGcBbZaE5EW0A,1420
1
+ flock/__init__.py,sha256=9BfhaVhkV3ZadIXp6xpZYlt8_N_OBmQSxxJHwpXYPic,1867
2
2
  flock/config.py,sha256=O5QJGlStf4DWSK4ovZsKw01ud4YK3_ij6Ay8sWU8ih0,1522
3
- flock/cli/constants.py,sha256=nKdpNBPTjpoq7bfX8GP3fouRG_rYREsIgS-NffCWmaA,627
3
+ flock/cli/constants.py,sha256=UWshD25IGos5Ks4P9paGPalY8BXy9YynzHk6HB4xfOo,669
4
4
  flock/cli/create_agent.py,sha256=DkeLUlrb7rGx3nZ04aADU9HXXu5mZTf_DBwT0xhzIv4,7
5
5
  flock/cli/create_flock.py,sha256=DkeLUlrb7rGx3nZ04aADU9HXXu5mZTf_DBwT0xhzIv4,7
6
6
  flock/cli/load_agent.py,sha256=DkeLUlrb7rGx3nZ04aADU9HXXu5mZTf_DBwT0xhzIv4,7
7
7
  flock/cli/load_examples.py,sha256=DkeLUlrb7rGx3nZ04aADU9HXXu5mZTf_DBwT0xhzIv4,7
8
8
  flock/cli/load_flock.py,sha256=3JdECvt5X7uyOG2vZS3-Zk5C5SI_84_QZjcsB3oJmfA,932
9
+ flock/cli/load_release_notes.py,sha256=qFcgUrMddAE_TP6x1P-6ZywTUjTknfhTDW5LTxtg1yk,599
9
10
  flock/cli/settings.py,sha256=DkeLUlrb7rGx3nZ04aADU9HXXu5mZTf_DBwT0xhzIv4,7
10
- flock/core/__init__.py,sha256=0Xq_txurlxxjKGXjRn6GNJusGTiBcd7zw2eF0L7JyuU,183
11
- flock/core/flock.py,sha256=RoLatRW91dSJjFhq6T5t03y_zsIYPxcatn6IHpRUcVc,17435
12
- flock/core/flock_agent.py,sha256=WWhYMnLGvaeJ47gVX5s3v6sJx1VsGkcU6NDrA3ELbVY,30723
13
- flock/core/context/context.py,sha256=jH06w4C_O5CEL-YxjX_x_dmgLe9Rcllnn1Ebs0dvwaE,6171
11
+ flock/cli/assets/release_notes.md,sha256=K-upUm5vuUuRSSU2FkMdgDfai_YlDk_vTCp0s4s2WO0,3419
12
+ flock/core/__init__.py,sha256=ZTp6qNY-kNH_Xn0xFfCAYceYqWFdahXYMm5wWPb30Go,501
13
+ flock/core/flock.py,sha256=4Kcnw39YiPRND6U8TWLZ0LyjNTykIk56VPruUEGwBrk,19116
14
+ flock/core/flock_agent.py,sha256=RzKX0GRrRJz16YbQFheMo8TqJPXOZSHWNloTbp35zwI,12229
15
+ flock/core/flock_evaluator.py,sha256=j7riJj_KsWoBnKmLiGp-U0CRhxDyJbgEdLGN26tfKm8,1588
16
+ flock/core/flock_factory.py,sha256=vyDq0eyFT4MyE_n2JyNU7YaFx2ljmjSDmZ07OIsmIOE,2694
17
+ flock/core/flock_module.py,sha256=VWFlBiY2RHZLTlGYfcchuT41M3m_JrZcmzw07u7KayM,2581
18
+ flock/core/context/context.py,sha256=fb7SsGAXmhQ1CvHV3_GihGiJG-4oLJ_DcexJ8vsrbHM,6371
14
19
  flock/core/context/context_manager.py,sha256=qMySVny_dbTNLh21RHK_YT0mNKIOrqJDZpi9ZVdBsxU,1103
15
20
  flock/core/context/context_vars.py,sha256=0Hn6fM2iNc0_jIIU0B7KX-K2o8qXqtZ5EYtwujETQ7U,272
16
21
  flock/core/execution/local_executor.py,sha256=rnIQvaJOs6zZORUcR3vvyS6LPREDJTjaygl_Db0M8ao,952
17
22
  flock/core/execution/temporal_executor.py,sha256=OF_uXgQsoUGp6U1ZkcuaidAEKyH7XDtbfrtdF10XQ_4,1675
23
+ flock/core/interpreter/python_interpreter.py,sha256=RaUMZuufsKBNQ4FAeSaOgUuxzs8VYu5TgUUs-xwaxxM,26376
18
24
  flock/core/logging/__init__.py,sha256=Q8hp9-1ilPIUIV0jLgJ3_cP7COrea32cVwL7dicPnlM,82
19
- flock/core/logging/logging.py,sha256=dOo_McbAt9_dST9Hr8RTpAGU-MHR_QvskIdmXrSvZRc,4789
25
+ flock/core/logging/logging.py,sha256=RigZwiu5gsLMqHwhplGkGrmw74xe8M-5KLGIBSsjouY,7620
20
26
  flock/core/logging/telemetry.py,sha256=3E9Tyj6AUR6A5RlIufcdCdWm5BAA7tbOsCa7lHoUQaU,5404
21
27
  flock/core/logging/trace_and_logged.py,sha256=5vNrK1kxuPMoPJ0-QjQg-EDJL1oiEzvU6UNi6X8FiMs,2117
22
28
  flock/core/logging/formatters/enum_builder.py,sha256=LgEYXUv84wK5vwHflZ5h8HBGgvLH3sByvUQe8tZiyY0,981
23
29
  flock/core/logging/formatters/theme_builder.py,sha256=Wnaal3HuUDA4HFg9tdql1BxYwK83ACOZBBQy-DXnxcA,17342
24
30
  flock/core/logging/formatters/themed_formatter.py,sha256=6WO9RPr6Su05rJEX9bRXd8peE-QzGCQeO5veIjQH-Vc,21086
25
- flock/core/logging/formatters/themes.py,sha256=vZqDyPlxZ1RGwzp8QCm0-Y0aXBZ62gTllulK6nbi_L4,10675
31
+ flock/core/logging/formatters/themes.py,sha256=80BRJJB0LZr11N0yQw2f8vdb_9179qjQO8PoeBaLMN0,10680
26
32
  flock/core/logging/span_middleware/baggage_span_processor.py,sha256=gJfRl8FeB6jdtghTaRHCrOaTo4fhPMRKgjqtZj-8T48,1118
27
33
  flock/core/logging/telemetry_exporter/base_exporter.py,sha256=rQJJzS6q9n2aojoSqwCnl7ZtHrh5LZZ-gkxUuI5WfrQ,1124
28
34
  flock/core/logging/telemetry_exporter/file_exporter.py,sha256=nKAjJSZtA7FqHSTuTiFtYYepaxOq7l1rDvs8U8rSBlA,3023
29
35
  flock/core/logging/telemetry_exporter/sqlite_exporter.py,sha256=CDsiMb9QcqeXelZ6ZqPSS56ovMPGqOu6whzBZRK__Vg,3498
30
- flock/core/mixin/dspy_integration.py,sha256=d4O3UdF6QTNWM29YtBNVb_iLWUrTUj6ovfy_iJs7DUc,8316
36
+ flock/core/mixin/dspy_integration.py,sha256=P5G4Y04nl5hFwFbJXCkQ-0TMR1L4skLL2IM_FlUjH_c,8364
31
37
  flock/core/mixin/prompt_parser.py,sha256=eOqI-FK3y17gVqpc_y5GF-WmK1Jv8mFlkZxTcgweoxI,5121
32
- flock/core/registry/agent_registry.py,sha256=YkYIyvFNjm7gYKRAiQQdOvVYMtsYH5cijfrv_GP4ZHc,4889
33
- flock/core/tools/basic_tools.py,sha256=OwWaFu4NoVrc3Uijj56RY9XDDaP_mOnEa5B3wSWwwLE,4756
38
+ flock/core/registry/agent_registry.py,sha256=TUClh9e3eA6YzZC1CMTlsTPvQeqb9jYHewi-zPpcWM8,4987
39
+ flock/core/tools/basic_tools.py,sha256=fI9r81_ktRiRhNLwT-jSJ9rkjl28LC1ZfL-njnno2iw,4761
34
40
  flock/core/tools/dev_tools/github.py,sha256=a2OTPXS7kWOVA4zrZHynQDcsmEi4Pac5MfSjQOLePzA,5308
35
- flock/core/util/cli_helper.py,sha256=oJGbVaOolMKpXWqWKuT4VJUjyFnlUgHxtGyeK0IDJFg,1644
41
+ flock/core/util/cli_helper.py,sha256=IOl9r4cz_MJv_Bp5R8dhHX8f-unAqA9vDS6-0E90Vzk,49813
36
42
  flock/core/util/hydrator.py,sha256=6qNwOwCZB7r6y25BZ--0PGofrAlfMaXbDKFQeP5NLts,11196
37
43
  flock/core/util/input_resolver.py,sha256=g9vDPdY4OH-G7qjas5ksGEHueokHGFPMoLOvC-ngeLo,5984
38
44
  flock/core/util/serializable.py,sha256=SymJ0YrjBx48mOBItYSqoRpKuzIc4vKWRS6ScTzre7s,2573
39
- flock/interpreter/python_interpreter.py,sha256=pq2e7KJfAYtBCP2hhbtFNeg18QdMFF66esoYn3MHfA4,26177
45
+ flock/evaluators/declarative/declarative_evaluator.py,sha256=f8ldgZZp94zC4CoGzBufKvbvtckCGBe9EHTOoAZfZK0,1695
46
+ flock/evaluators/natural_language/natural_language_evaluator.py,sha256=6nVEeh8_uwv_h-d3FWlA0GbzDzRtdhvxCGKirHtyvOU,2012
47
+ flock/evaluators/zep/zep_evaluator.py,sha256=hEHQdgIwGsbC4ci9RvtdA2k7f4M0yznIok4v4XltNwg,1885
48
+ flock/modules/callback/callback_module.py,sha256=hCCw-HNYjK4aHnUQfvw26ZP1Q_jdlKb9kDh3BHzbCQA,2916
49
+ flock/modules/memory/memory_module.py,sha256=2grdmvw7FJWZvz0IjgASbDPCfyS1w4gWkRzOWtK7BFM,8214
50
+ flock/modules/memory/memory_parser.py,sha256=2S7CmVEsm22gD7-MiFj4318FTg8wd_jB-RKMwXI14WM,4369
51
+ flock/modules/memory/memory_storage.py,sha256=CNcLDMmvv0x7Z3YMKr6VveS_VCa7rKPw8l2d-XgqokA,27246
52
+ flock/modules/output/output_module.py,sha256=_Hid4ycGEl14m7GEsVGE9wp88SYkQ3eq_x4avUQcTWI,6985
53
+ flock/modules/performance/metrics_module.py,sha256=K5z5bizIjA4ZEUjBk5ShwTR9ZElR-Vmqa7H38dJ3z_0,16735
54
+ flock/modules/zep/zep_module.py,sha256=BIJ5K-hg2bLeJmGKoDcVY1rVN7_0yYETiSaVrO-gtMI,5830
40
55
  flock/platform/docker_tools.py,sha256=fpA7-6rJBjPOUBLdQP4ny2QPgJ_042nmqRn5GtKnoYw,1445
41
56
  flock/platform/jaeger_install.py,sha256=MyOMJQx4TQSMYvdUJxfiGSo3YCtsfkbNXcAcQ9bjETA,2898
42
57
  flock/themes/3024-day.toml,sha256=uOVHqEzSyHx0WlUk3D0lne4RBsNBAPCTy3C58yU7kEY,667
43
58
  flock/themes/3024-night.toml,sha256=qsXUwd6ZYz6J-R129_Ao2TKlvvK60svhZJJjB5c8Tfo,1667
44
- flock/themes/aardvark-blue.toml,sha256=Px1qevE6J1ZAc_jAqF_FX674KdIv_3pAYNKmmvDxIbE,1672
59
+ flock/themes/aardvark-blue.toml,sha256=5ZgsxP3pWLPN3yJ2Wd9ErCo7fy_VJpIfje4kriDKlqo,1667
45
60
  flock/themes/abernathy.toml,sha256=T-FeYc_Nkz4dXxj-1SwKhr1BpBPg0bmqAt2Wve9cqUo,1667
46
61
  flock/themes/adventure.toml,sha256=sgT63QdUaoq9yatWTnm9H5jp7G6DTsECvfnVon_4LK4,1658
47
62
  flock/themes/adventuretime.toml,sha256=ZIrnONaakvI4uqVWfMF4U7OhxtpA-uwzxzlpBgFSQu8,1664
@@ -380,8 +395,8 @@ flock/workflow/activities.py,sha256=2zcYyDoCuYs9oQbnhLjCzBUdEi7d5IEIemKJ7TV_B8w,
380
395
  flock/workflow/agent_activities.py,sha256=NhBZscflEf2IMfSRa_pBM_TRP7uVEF_O0ROvWZ33eDc,963
381
396
  flock/workflow/temporal_setup.py,sha256=VWBgmBgfTBjwM5ruS_dVpA5AVxx6EZ7oFPGw4j3m0l0,1091
382
397
  flock/workflow/workflow.py,sha256=I9MryXW_bqYVTHx-nl2epbTqeRy27CAWHHA7ZZA0nAk,1696
383
- flock_core-0.2.18.dist-info/METADATA,sha256=GG1FxcQ-Bh96SEo-dQvASbumhdiaAoBh7zNpYYKtgrM,19050
384
- flock_core-0.2.18.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
385
- flock_core-0.2.18.dist-info/entry_points.txt,sha256=rWaS5KSpkTmWySURGFZk6PhbJ87TmvcFQDi2uzjlagQ,37
386
- flock_core-0.2.18.dist-info/licenses/LICENSE,sha256=iYEqWy0wjULzM9GAERaybP4LBiPeu7Z1NEliLUdJKSc,1072
387
- flock_core-0.2.18.dist-info/RECORD,,
398
+ flock_core-0.3.2.dist-info/METADATA,sha256=QOuH26c81HAZMQhKeUf869saWNfRHeOW2BMzdI7tC5o,20431
399
+ flock_core-0.3.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
400
+ flock_core-0.3.2.dist-info/entry_points.txt,sha256=rWaS5KSpkTmWySURGFZk6PhbJ87TmvcFQDi2uzjlagQ,37
401
+ flock_core-0.3.2.dist-info/licenses/LICENSE,sha256=iYEqWy0wjULzM9GAERaybP4LBiPeu7Z1NEliLUdJKSc,1072
402
+ flock_core-0.3.2.dist-info/RECORD,,