flock-core 0.4.0b13__py3-none-any.whl → 0.4.0b15__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 +8 -0
- flock/cli/manage_agents.py +2 -1
- flock/core/execution/batch_executor.py +13 -2
- flock/core/flock.py +8 -0
- flock/core/flock_agent.py +42 -3
- flock/core/flock_factory.py +2 -2
- flock/core/logging/formatters/themed_formatter.py +0 -4
- flock/evaluators/declarative/declarative_evaluator.py +2 -1
- flock/evaluators/test/test_case_evaluator.py +36 -0
- flock/modules/output/output_module.py +0 -46
- {flock_core-0.4.0b13.dist-info → flock_core-0.4.0b15.dist-info}/METADATA +1 -1
- {flock_core-0.4.0b13.dist-info → flock_core-0.4.0b15.dist-info}/RECORD +15 -14
- {flock_core-0.4.0b13.dist-info → flock_core-0.4.0b15.dist-info}/WHEEL +0 -0
- {flock_core-0.4.0b13.dist-info → flock_core-0.4.0b15.dist-info}/entry_points.txt +0 -0
- {flock_core-0.4.0b13.dist-info → flock_core-0.4.0b15.dist-info}/licenses/LICENSE +0 -0
flock/cli/execute_flock.py
CHANGED
|
@@ -495,6 +495,13 @@ def execute_flock_batch(flock: Flock):
|
|
|
495
495
|
default="batch_results.csv",
|
|
496
496
|
).ask()
|
|
497
497
|
|
|
498
|
+
hide_columns = questionary.text(
|
|
499
|
+
"Hide columns (comma-separated - leave blank for hiding no columns):",
|
|
500
|
+
default="",
|
|
501
|
+
).ask()
|
|
502
|
+
|
|
503
|
+
hide_columns = hide_columns.split(",") if hide_columns else []
|
|
504
|
+
|
|
498
505
|
# Logging options
|
|
499
506
|
enable_logging = questionary.confirm(
|
|
500
507
|
"Enable detailed logging?",
|
|
@@ -559,6 +566,7 @@ def execute_flock_batch(flock: Flock):
|
|
|
559
566
|
return_errors=True,
|
|
560
567
|
silent_mode=silent_mode,
|
|
561
568
|
write_to_csv=write_to_csv,
|
|
569
|
+
hide_columns=hide_columns,
|
|
562
570
|
)
|
|
563
571
|
|
|
564
572
|
# Display results summary
|
flock/cli/manage_agents.py
CHANGED
|
@@ -165,7 +165,8 @@ def _view_agent_details(agent: FlockAgent):
|
|
|
165
165
|
basic_info.add_row("Description", str(agent.description))
|
|
166
166
|
basic_info.add_row("Input", str(agent.input))
|
|
167
167
|
basic_info.add_row("Output", str(agent.output))
|
|
168
|
-
basic_info.add_row("
|
|
168
|
+
basic_info.add_row("Write to File", str(agent.write_to_file))
|
|
169
|
+
basic_info.add_row("Wait for input", str(agent.wait_for_input))
|
|
169
170
|
|
|
170
171
|
console.print(Panel(basic_info, title="Basic Information"))
|
|
171
172
|
|
|
@@ -52,6 +52,8 @@ class BatchProcessor:
|
|
|
52
52
|
return_errors: bool = False,
|
|
53
53
|
silent_mode: bool = False,
|
|
54
54
|
write_to_csv: str | None = None,
|
|
55
|
+
hide_columns: list[str] | None = None,
|
|
56
|
+
delimiter: str = ",",
|
|
55
57
|
) -> list[Box | dict | None | Exception]:
|
|
56
58
|
"""Runs the specified agent/workflow for each item in a batch asynchronously.
|
|
57
59
|
|
|
@@ -70,6 +72,7 @@ class BatchProcessor:
|
|
|
70
72
|
return_errors: If True, return Exception objects for failed runs instead of raising.
|
|
71
73
|
silent_mode: If True, suppress output and show progress bar instead.
|
|
72
74
|
write_to_csv: Path to save results as CSV file.
|
|
75
|
+
hide_columns: List of column names to hide from output.
|
|
73
76
|
|
|
74
77
|
Returns:
|
|
75
78
|
List containing results (Box/dict), None (if error and not return_errors),
|
|
@@ -81,7 +84,9 @@ class BatchProcessor:
|
|
|
81
84
|
Exception: First exception from a run if return_errors is False.
|
|
82
85
|
"""
|
|
83
86
|
effective_use_temporal = (
|
|
84
|
-
use_temporal
|
|
87
|
+
use_temporal
|
|
88
|
+
if use_temporal is not None
|
|
89
|
+
else self.flock.enable_temporal
|
|
85
90
|
)
|
|
86
91
|
exec_mode = (
|
|
87
92
|
"Temporal"
|
|
@@ -268,9 +273,11 @@ class BatchProcessor:
|
|
|
268
273
|
if write_to_csv:
|
|
269
274
|
try:
|
|
270
275
|
df = pd.DataFrame(results)
|
|
276
|
+
if hide_columns:
|
|
277
|
+
df = df.drop(columns=hide_columns)
|
|
271
278
|
# create write_to_csv directory if it doesn't exist
|
|
272
279
|
Path(write_to_csv).parent.mkdir(parents=True, exist_ok=True)
|
|
273
|
-
df.to_csv(write_to_csv, index=False)
|
|
280
|
+
df.to_csv(write_to_csv, index=False, sep=delimiter)
|
|
274
281
|
logger.info(f"Results written to CSV file: {write_to_csv}")
|
|
275
282
|
except Exception as e:
|
|
276
283
|
logger.error(f"Failed to write results to CSV: {e}")
|
|
@@ -290,6 +297,8 @@ class BatchProcessor:
|
|
|
290
297
|
return_errors: bool = False,
|
|
291
298
|
silent_mode: bool = False,
|
|
292
299
|
write_to_csv: str | None = None,
|
|
300
|
+
hide_columns: list[str] | None = None,
|
|
301
|
+
delimiter: str = ",",
|
|
293
302
|
) -> list[Box | dict | None | Exception]:
|
|
294
303
|
"""Synchronous wrapper for run_batch_async."""
|
|
295
304
|
# (Standard asyncio run wrapper - same as in previous suggestion)
|
|
@@ -313,6 +322,8 @@ class BatchProcessor:
|
|
|
313
322
|
return_errors=return_errors,
|
|
314
323
|
silent_mode=silent_mode,
|
|
315
324
|
write_to_csv=write_to_csv,
|
|
325
|
+
hide_columns=hide_columns,
|
|
326
|
+
delimiter=delimiter,
|
|
316
327
|
)
|
|
317
328
|
|
|
318
329
|
if asyncio.get_event_loop() is loop and not loop.is_running():
|
flock/core/flock.py
CHANGED
|
@@ -442,6 +442,8 @@ class Flock(BaseModel, Serializable):
|
|
|
442
442
|
return_errors: bool = False,
|
|
443
443
|
silent_mode: bool = False,
|
|
444
444
|
write_to_csv: str | None = None,
|
|
445
|
+
hide_columns: list[str] | None = None,
|
|
446
|
+
delimiter: str = ",",
|
|
445
447
|
) -> list[Box | dict | None | Exception]:
|
|
446
448
|
"""Runs the specified agent/workflow for each item in a batch asynchronously (delegated)."""
|
|
447
449
|
# Import processor locally
|
|
@@ -460,6 +462,8 @@ class Flock(BaseModel, Serializable):
|
|
|
460
462
|
return_errors=return_errors,
|
|
461
463
|
silent_mode=silent_mode,
|
|
462
464
|
write_to_csv=write_to_csv,
|
|
465
|
+
hide_columns=hide_columns,
|
|
466
|
+
delimiter=delimiter,
|
|
463
467
|
)
|
|
464
468
|
|
|
465
469
|
def run_batch(
|
|
@@ -475,6 +479,8 @@ class Flock(BaseModel, Serializable):
|
|
|
475
479
|
return_errors: bool = False,
|
|
476
480
|
silent_mode: bool = False,
|
|
477
481
|
write_to_csv: str | None = None,
|
|
482
|
+
hide_columns: list[str] | None = None,
|
|
483
|
+
delimiter: str = ",",
|
|
478
484
|
) -> list[Box | dict | None | Exception]:
|
|
479
485
|
"""Synchronous wrapper for run_batch_async."""
|
|
480
486
|
# (Standard asyncio run wrapper logic)
|
|
@@ -498,6 +504,8 @@ class Flock(BaseModel, Serializable):
|
|
|
498
504
|
return_errors=return_errors,
|
|
499
505
|
silent_mode=silent_mode,
|
|
500
506
|
write_to_csv=write_to_csv,
|
|
507
|
+
hide_columns=hide_columns,
|
|
508
|
+
delimiter=delimiter,
|
|
501
509
|
)
|
|
502
510
|
|
|
503
511
|
if asyncio.get_event_loop() is loop and not loop.is_running():
|
flock/core/flock_agent.py
CHANGED
|
@@ -2,10 +2,15 @@
|
|
|
2
2
|
"""FlockAgent is the core, declarative base class for all agents in the Flock framework."""
|
|
3
3
|
|
|
4
4
|
import asyncio
|
|
5
|
+
import json
|
|
6
|
+
import os
|
|
5
7
|
from abc import ABC
|
|
6
8
|
from collections.abc import Callable
|
|
9
|
+
from datetime import datetime
|
|
7
10
|
from typing import TYPE_CHECKING, Any, TypeVar
|
|
8
11
|
|
|
12
|
+
from flock.core.serialization.json_encoder import FlockJSONEncoder
|
|
13
|
+
|
|
9
14
|
if TYPE_CHECKING:
|
|
10
15
|
from flock.core.context.context import FlockContext
|
|
11
16
|
from flock.core.flock_evaluator import FlockEvaluator
|
|
@@ -14,6 +19,7 @@ if TYPE_CHECKING:
|
|
|
14
19
|
|
|
15
20
|
from opentelemetry import trace
|
|
16
21
|
from pydantic import BaseModel, Field
|
|
22
|
+
from rich.console import Console
|
|
17
23
|
|
|
18
24
|
# Core Flock components (ensure these are importable)
|
|
19
25
|
from flock.core.context.context import FlockContext
|
|
@@ -32,6 +38,8 @@ from flock.core.serialization.serialization_utils import (
|
|
|
32
38
|
serialize_item,
|
|
33
39
|
)
|
|
34
40
|
|
|
41
|
+
console = Console()
|
|
42
|
+
|
|
35
43
|
logger = get_logger("agent")
|
|
36
44
|
tracer = trace.get_tracer(__name__)
|
|
37
45
|
T = TypeVar("T", bound="FlockAgent")
|
|
@@ -73,9 +81,13 @@ class FlockAgent(BaseModel, Serializable, DSPyIntegrationMixin, ABC):
|
|
|
73
81
|
description="List of callable tools the agent can use. These must be registered.",
|
|
74
82
|
)
|
|
75
83
|
)
|
|
76
|
-
|
|
77
|
-
default=
|
|
78
|
-
description="
|
|
84
|
+
write_to_file: bool = Field(
|
|
85
|
+
default=False,
|
|
86
|
+
description="Write the agent's output to a file.",
|
|
87
|
+
)
|
|
88
|
+
wait_for_input: bool = Field(
|
|
89
|
+
default=False,
|
|
90
|
+
description="Wait for user input after the agent's output is displayed.",
|
|
79
91
|
)
|
|
80
92
|
|
|
81
93
|
# --- Components ---
|
|
@@ -169,6 +181,11 @@ class FlockAgent(BaseModel, Serializable, DSPyIntegrationMixin, ABC):
|
|
|
169
181
|
try:
|
|
170
182
|
for module in self.get_enabled_modules():
|
|
171
183
|
await module.terminate(self, inputs, result, self.context)
|
|
184
|
+
|
|
185
|
+
if self.write_to_file:
|
|
186
|
+
self._save_output(self.name, result)
|
|
187
|
+
if self.wait_for_input:
|
|
188
|
+
console.input(prompt="Press Enter to continue...")
|
|
172
189
|
except Exception as module_error:
|
|
173
190
|
logger.error(
|
|
174
191
|
"Error during terminate",
|
|
@@ -356,6 +373,28 @@ class FlockAgent(BaseModel, Serializable, DSPyIntegrationMixin, ABC):
|
|
|
356
373
|
|
|
357
374
|
# --- Serialization Implementation ---
|
|
358
375
|
|
|
376
|
+
def _save_output(self, agent_name: str, result: dict[str, Any]) -> None:
|
|
377
|
+
"""Save output to file if configured."""
|
|
378
|
+
if not self.write_to_file:
|
|
379
|
+
return
|
|
380
|
+
|
|
381
|
+
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
|
|
382
|
+
filename = f"{agent_name}_output_{timestamp}.json"
|
|
383
|
+
filepath = os.path.join("output/", filename)
|
|
384
|
+
os.makedirs("output/", exist_ok=True)
|
|
385
|
+
|
|
386
|
+
output_data = {
|
|
387
|
+
"agent": agent_name,
|
|
388
|
+
"timestamp": timestamp,
|
|
389
|
+
"output": result,
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
try:
|
|
393
|
+
with open(filepath, "w") as f:
|
|
394
|
+
json.dump(output_data, f, indent=2, cls=FlockJSONEncoder)
|
|
395
|
+
except Exception as e:
|
|
396
|
+
logger.warning(f"Failed to save output to file: {e}")
|
|
397
|
+
|
|
359
398
|
def to_dict(self) -> dict[str, Any]:
|
|
360
399
|
"""Convert instance to dictionary representation suitable for serialization."""
|
|
361
400
|
from flock.core.flock_registry import get_registry
|
flock/core/flock_factory.py
CHANGED
|
@@ -63,14 +63,14 @@ class FlockFactory:
|
|
|
63
63
|
model=model,
|
|
64
64
|
description=description,
|
|
65
65
|
evaluator=evaluator,
|
|
66
|
+
write_to_file=write_to_file,
|
|
67
|
+
wait_for_input=wait_for_input,
|
|
66
68
|
)
|
|
67
69
|
output_config = OutputModuleConfig(
|
|
68
70
|
render_table=enable_rich_tables,
|
|
69
71
|
theme=output_theme,
|
|
70
|
-
wait_for_input=wait_for_input,
|
|
71
72
|
no_output=no_output,
|
|
72
73
|
print_context=print_context,
|
|
73
|
-
write_to_file=write_to_file,
|
|
74
74
|
)
|
|
75
75
|
output_module = OutputModule("output", config=output_config)
|
|
76
76
|
|
|
@@ -415,14 +415,12 @@ class ThemedAgentResultFormatter:
|
|
|
415
415
|
theme: OutputTheme = OutputTheme.afterglow,
|
|
416
416
|
max_length: int = -1,
|
|
417
417
|
render_table: bool = True,
|
|
418
|
-
wait_for_input: bool = False,
|
|
419
418
|
):
|
|
420
419
|
"""Initialize the formatter with a theme and optional max length."""
|
|
421
420
|
self.theme = theme
|
|
422
421
|
self.styles = None
|
|
423
422
|
self.max_length = max_length
|
|
424
423
|
self.render_table = render_table
|
|
425
|
-
self.wait_for_input = wait_for_input
|
|
426
424
|
|
|
427
425
|
def format_result(
|
|
428
426
|
self,
|
|
@@ -546,5 +544,3 @@ class ThemedAgentResultFormatter:
|
|
|
546
544
|
styles=styles,
|
|
547
545
|
)
|
|
548
546
|
console.print(panel)
|
|
549
|
-
if self.wait_for_input:
|
|
550
|
-
console.input(prompt="Press Enter to continue...")
|
|
@@ -93,6 +93,7 @@ class DeclarativeEvaluator(
|
|
|
93
93
|
|
|
94
94
|
streaming_task = dspy.streamify(agent_task)
|
|
95
95
|
stream_generator: Generator = streaming_task(**inputs)
|
|
96
|
+
delta_content = ""
|
|
96
97
|
|
|
97
98
|
console.print("\n")
|
|
98
99
|
async for chunk in stream_generator:
|
|
@@ -117,7 +118,7 @@ class DeclarativeEvaluator(
|
|
|
117
118
|
logger.info(f"Evaluating agent '{agent.name}' without streaming.")
|
|
118
119
|
try:
|
|
119
120
|
# Ensure the call is awaited if the underlying task is async
|
|
120
|
-
result_obj =
|
|
121
|
+
result_obj = agent_task(**inputs)
|
|
121
122
|
result_dict = self._process_result(result_obj, inputs)
|
|
122
123
|
return result_dict
|
|
123
124
|
except Exception as e:
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
from typing import Any
|
|
2
|
+
|
|
3
|
+
from pydantic import Field
|
|
4
|
+
|
|
5
|
+
from flock.core.flock_agent import FlockAgent
|
|
6
|
+
from flock.core.flock_evaluator import FlockEvaluator, FlockEvaluatorConfig
|
|
7
|
+
from flock.core.mixin.dspy_integration import DSPyIntegrationMixin
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class TestCaseEvaluatorConfig(FlockEvaluatorConfig):
|
|
11
|
+
"""Configuration for the TestCaseEvaluator."""
|
|
12
|
+
|
|
13
|
+
pass
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class TestCaseEvaluator(FlockEvaluator, DSPyIntegrationMixin):
|
|
17
|
+
"""Evaluator for test cases."""
|
|
18
|
+
|
|
19
|
+
config: TestCaseEvaluatorConfig = Field(
|
|
20
|
+
default_factory=TestCaseEvaluatorConfig,
|
|
21
|
+
description="Evaluator configuration",
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
async def evaluate(
|
|
25
|
+
self, agent: FlockAgent, inputs: dict[str, Any], tools: list[Any]
|
|
26
|
+
) -> dict[str, Any]:
|
|
27
|
+
_dspy_signature = self.create_dspy_signature_class(
|
|
28
|
+
agent.name,
|
|
29
|
+
agent.description,
|
|
30
|
+
f"{agent.input} -> {agent.output}",
|
|
31
|
+
)
|
|
32
|
+
output_field_names = list(_dspy_signature.output_fields.keys())
|
|
33
|
+
result = {}
|
|
34
|
+
for output_field_name in output_field_names:
|
|
35
|
+
result[output_field_name] = "Test Result"
|
|
36
|
+
return result
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
"""Output formatting and display functionality for agents."""
|
|
2
2
|
|
|
3
|
-
import json
|
|
4
3
|
import os
|
|
5
|
-
from datetime import datetime
|
|
6
4
|
from typing import TYPE_CHECKING, Any
|
|
7
5
|
|
|
8
6
|
from pydantic import Field
|
|
@@ -19,7 +17,6 @@ from flock.core.logging.formatters.themed_formatter import (
|
|
|
19
17
|
)
|
|
20
18
|
from flock.core.logging.formatters.themes import OutputTheme
|
|
21
19
|
from flock.core.logging.logging import get_logger
|
|
22
|
-
from flock.core.serialization.json_encoder import FlockJSONEncoder
|
|
23
20
|
|
|
24
21
|
# from flock.core.logging.formatters.themes import OutputTheme
|
|
25
22
|
# from flock.core.logging.logging import get_logger
|
|
@@ -40,13 +37,6 @@ class OutputModuleConfig(FlockModuleConfig):
|
|
|
40
37
|
max_length: int = Field(
|
|
41
38
|
default=1000, description="Maximum length for displayed output"
|
|
42
39
|
)
|
|
43
|
-
wait_for_input: bool = Field(
|
|
44
|
-
default=False,
|
|
45
|
-
description="Whether to wait for user input after display",
|
|
46
|
-
)
|
|
47
|
-
write_to_file: bool = Field(
|
|
48
|
-
default=False, description="Whether to save output to file"
|
|
49
|
-
)
|
|
50
40
|
output_dir: str = Field(
|
|
51
41
|
default="output/", description="Directory for saving output files"
|
|
52
42
|
)
|
|
@@ -84,13 +74,10 @@ class OutputModule(FlockModule):
|
|
|
84
74
|
|
|
85
75
|
def __init__(self, name: str, config: OutputModuleConfig):
|
|
86
76
|
super().__init__(name=name, config=config)
|
|
87
|
-
if self.config.write_to_file:
|
|
88
|
-
os.makedirs(self.config.output_dir, exist_ok=True)
|
|
89
77
|
self._formatter = ThemedAgentResultFormatter(
|
|
90
78
|
theme=self.config.theme,
|
|
91
79
|
max_length=self.config.max_length,
|
|
92
80
|
render_table=self.config.render_table,
|
|
93
|
-
wait_for_input=self.config.wait_for_input,
|
|
94
81
|
)
|
|
95
82
|
|
|
96
83
|
def _format_value(self, value: Any, key: str) -> str:
|
|
@@ -146,34 +133,6 @@ class OutputModule(FlockModule):
|
|
|
146
133
|
)
|
|
147
134
|
return text
|
|
148
135
|
|
|
149
|
-
def _save_output(self, agent_name: str, result: dict[str, Any]) -> None:
|
|
150
|
-
"""Save output to file if configured."""
|
|
151
|
-
if not self.config.write_to_file:
|
|
152
|
-
return
|
|
153
|
-
|
|
154
|
-
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
|
|
155
|
-
filename = f"{agent_name}_output_{timestamp}.json"
|
|
156
|
-
filepath = os.path.join(self.config.output_dir, filename)
|
|
157
|
-
|
|
158
|
-
output_data = {
|
|
159
|
-
"agent": agent_name,
|
|
160
|
-
"timestamp": timestamp,
|
|
161
|
-
"output": result,
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
if self.config.show_metadata:
|
|
165
|
-
output_data["metadata"] = {
|
|
166
|
-
"formatted_at": datetime.now().isoformat(),
|
|
167
|
-
"theme": self.config.theme.value,
|
|
168
|
-
"max_length": self.config.max_length,
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
try:
|
|
172
|
-
with open(filepath, "w") as f:
|
|
173
|
-
json.dump(output_data, f, indent=2, cls=FlockJSONEncoder)
|
|
174
|
-
except Exception as e:
|
|
175
|
-
logger.warning(f"Failed to save output to file: {e}")
|
|
176
|
-
|
|
177
136
|
async def post_evaluate(
|
|
178
137
|
self,
|
|
179
138
|
agent: "FlockAgent",
|
|
@@ -191,8 +150,6 @@ class OutputModule(FlockModule):
|
|
|
191
150
|
|
|
192
151
|
if is_silent:
|
|
193
152
|
logger.debug("Output suppressed (config or batch silent mode).")
|
|
194
|
-
# Still save to file if configured, even in silent mode
|
|
195
|
-
self._save_output(agent.name, result)
|
|
196
153
|
return result # Skip console output
|
|
197
154
|
|
|
198
155
|
logger.debug("Formatting and displaying output to console.")
|
|
@@ -223,9 +180,6 @@ class OutputModule(FlockModule):
|
|
|
223
180
|
)
|
|
224
181
|
self._formatter.display_result(result_to_display, agent.name)
|
|
225
182
|
|
|
226
|
-
# Save to file if configured
|
|
227
|
-
self._save_output(agent.name, result) # Save the original result
|
|
228
|
-
|
|
229
183
|
return result # Return the original, unmodified result
|
|
230
184
|
|
|
231
185
|
def update_theme(self, new_theme: OutputTheme) -> None:
|
|
@@ -4,13 +4,13 @@ flock/cli/config.py,sha256=5DvFLObOx3ObisHnc9JfnUBnK83y0CBsUQzXfxPZve0,138
|
|
|
4
4
|
flock/cli/constants.py,sha256=ZyXtTW91P1hUMkbMwmOwp_JEL5e9-YkcuM3vHM5glP4,978
|
|
5
5
|
flock/cli/create_agent.py,sha256=DkeLUlrb7rGx3nZ04aADU9HXXu5mZTf_DBwT0xhzIv4,7
|
|
6
6
|
flock/cli/create_flock.py,sha256=wGS3azisS0QWYIDKQswoKDDJ7B0udU2o5b2IwacMN84,8634
|
|
7
|
-
flock/cli/execute_flock.py,sha256
|
|
7
|
+
flock/cli/execute_flock.py,sha256=udR0kze_E_dOybT7BC-HbfEfRZVrz3BwIMirM_WI6jE,18576
|
|
8
8
|
flock/cli/load_agent.py,sha256=DkeLUlrb7rGx3nZ04aADU9HXXu5mZTf_DBwT0xhzIv4,7
|
|
9
9
|
flock/cli/load_examples.py,sha256=DkeLUlrb7rGx3nZ04aADU9HXXu5mZTf_DBwT0xhzIv4,7
|
|
10
10
|
flock/cli/load_flock.py,sha256=sfZ9B9aiyC5TCEbn1xR5Yd5SoaVji6MBNYzXlWOpoZ4,7111
|
|
11
11
|
flock/cli/load_release_notes.py,sha256=qFcgUrMddAE_TP6x1P-6ZywTUjTknfhTDW5LTxtg1yk,599
|
|
12
12
|
flock/cli/loaded_flock_cli.py,sha256=IkeYvw52Bh3uFIm2O5xgppJ9KaY7jfh0VSFkiI46tTg,6855
|
|
13
|
-
flock/cli/manage_agents.py,sha256=
|
|
13
|
+
flock/cli/manage_agents.py,sha256=Psl014LCrJmBgwrjsp7O3WNlWvQmVd_IDud3rd0lnLI,12786
|
|
14
14
|
flock/cli/registry_management.py,sha256=mAHy3wT97YgODR0gVOkTXDqR5NIPzM-E-z9dEtw9-tw,29790
|
|
15
15
|
flock/cli/runner.py,sha256=TebsqwAfc_bTGzr-id6frgZXPCDJ5Xu1pBd9bZnqIDg,1120
|
|
16
16
|
flock/cli/settings.py,sha256=Z_TXBzCYlCmSaKrJ_CQCdYy-Cj29gpI4kbC_2KzoKqg,27025
|
|
@@ -18,10 +18,10 @@ flock/cli/view_results.py,sha256=dOzK0O1FHSIDERnx48y-2Xke9BkOHS7pcOhs64AyIg0,781
|
|
|
18
18
|
flock/cli/yaml_editor.py,sha256=K3N0bh61G1TSDAZDnurqW9e_-hO6CtSQKXQqlDhCjVo,12527
|
|
19
19
|
flock/cli/assets/release_notes.md,sha256=bqnk50jxM3w5uY44Dc7MkdT8XmRREFxrVBAG9XCOSSU,4896
|
|
20
20
|
flock/core/__init__.py,sha256=p7lmQULRu9ejIAELfanZiyMhW0CougIPvyFHW2nqBFQ,847
|
|
21
|
-
flock/core/flock.py,sha256=
|
|
22
|
-
flock/core/flock_agent.py,sha256=
|
|
21
|
+
flock/core/flock.py,sha256=g67jyWozK52ymqGEmYxMgXSkiL9ZpTXoDZMxwtWmRo4,25444
|
|
22
|
+
flock/core/flock_agent.py,sha256=ZmkiHd2oLao_263b7nmf26TQfyevX9_HNlhHPIkd3UM,33497
|
|
23
23
|
flock/core/flock_evaluator.py,sha256=dOXZeDOGZcAmJ9ahqq_2bdGUU1VOXY4skmwTVpAjiVw,1685
|
|
24
|
-
flock/core/flock_factory.py,sha256=
|
|
24
|
+
flock/core/flock_factory.py,sha256=qfeuAr6e028gbkxjj5jsq_HHqrWsmKHreJD6-QT8ets,2885
|
|
25
25
|
flock/core/flock_module.py,sha256=96aFVYAgwpKN53xGbivQDUpikOYGFCxK5mqhclOcxY0,3003
|
|
26
26
|
flock/core/flock_registry.py,sha256=ekYpQgSkZVnbyPbl8gA7nf54brt94rYZZBe2RwEGtUc,20828
|
|
27
27
|
flock/core/flock_router.py,sha256=A5GaxcGvtiFlRLHBTW7okh5RDm3BdKam2uXvRHRaj7k,2187
|
|
@@ -38,7 +38,7 @@ flock/core/context/context.py,sha256=8bjRLZ74oacRNBaHmDNXdQKfB-95poF7Pp03n2k0zcQ
|
|
|
38
38
|
flock/core/context/context_manager.py,sha256=FANSWa6DEhdhtZ7t_9Gza0v80UdpoDOhHbfVOccmjkA,1181
|
|
39
39
|
flock/core/context/context_vars.py,sha256=ASPA29hpENWub4mgRoG62FtTVakCHQZfn6IhJQKe3C8,347
|
|
40
40
|
flock/core/evaluation/utils.py,sha256=ZJkIMC9YT-HA2SPCZ4_bQ98isW1i6nbltVEYbjze-b0,12827
|
|
41
|
-
flock/core/execution/batch_executor.py,sha256=
|
|
41
|
+
flock/core/execution/batch_executor.py,sha256=nvsFOVaH4c4uPw_gwZ5jCIULpK59EL1kmcoPTja5kko,13745
|
|
42
42
|
flock/core/execution/evaluation_executor.py,sha256=D9EO0sU-2qWj3vomjmUUi-DOtHNJNFRf30kGDHuzREE,17702
|
|
43
43
|
flock/core/execution/local_executor.py,sha256=rnIQvaJOs6zZORUcR3vvyS6LPREDJTjaygl_Db0M8ao,952
|
|
44
44
|
flock/core/execution/temporal_executor.py,sha256=OF_uXgQsoUGp6U1ZkcuaidAEKyH7XDtbfrtdF10XQ_4,1675
|
|
@@ -49,7 +49,7 @@ flock/core/logging/telemetry.py,sha256=3E9Tyj6AUR6A5RlIufcdCdWm5BAA7tbOsCa7lHoUQ
|
|
|
49
49
|
flock/core/logging/trace_and_logged.py,sha256=5vNrK1kxuPMoPJ0-QjQg-EDJL1oiEzvU6UNi6X8FiMs,2117
|
|
50
50
|
flock/core/logging/formatters/enum_builder.py,sha256=LgEYXUv84wK5vwHflZ5h8HBGgvLH3sByvUQe8tZiyY0,981
|
|
51
51
|
flock/core/logging/formatters/theme_builder.py,sha256=Wnaal3HuUDA4HFg9tdql1BxYwK83ACOZBBQy-DXnxcA,17342
|
|
52
|
-
flock/core/logging/formatters/themed_formatter.py,sha256=
|
|
52
|
+
flock/core/logging/formatters/themed_formatter.py,sha256=f9BiIBUk3cLma6eAPbW8BnvUqTzPzcPhjLNQoia7pI4,20656
|
|
53
53
|
flock/core/logging/formatters/themes.py,sha256=80BRJJB0LZr11N0yQw2f8vdb_9179qjQO8PoeBaLMN0,10680
|
|
54
54
|
flock/core/logging/span_middleware/baggage_span_processor.py,sha256=gJfRl8FeB6jdtghTaRHCrOaTo4fhPMRKgjqtZj-8T48,1118
|
|
55
55
|
flock/core/logging/telemetry_exporter/base_exporter.py,sha256=rQJJzS6q9n2aojoSqwCnl7ZtHrh5LZZ-gkxUuI5WfrQ,1124
|
|
@@ -75,17 +75,18 @@ flock/core/util/file_path_utils.py,sha256=Odf7uU32C-x1KNighbNERSiMtkzW4h8laABIoF
|
|
|
75
75
|
flock/core/util/hydrator.py,sha256=6qNwOwCZB7r6y25BZ--0PGofrAlfMaXbDKFQeP5NLts,11196
|
|
76
76
|
flock/core/util/input_resolver.py,sha256=g9vDPdY4OH-G7qjas5ksGEHueokHGFPMoLOvC-ngeLo,5984
|
|
77
77
|
flock/core/util/loader.py,sha256=j3q2qem5bFMP2SmMuYjb-ISxsNGNZd1baQmpvAnRUUk,2244
|
|
78
|
-
flock/evaluators/declarative/declarative_evaluator.py,sha256=
|
|
78
|
+
flock/evaluators/declarative/declarative_evaluator.py,sha256=j3xCEOhKHMvYtI43K2uqqJk068Lw94ch8GtWOmmJX7g,4803
|
|
79
79
|
flock/evaluators/memory/azure_search_evaluator.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
80
80
|
flock/evaluators/memory/memory_evaluator.py,sha256=SmerXyNaqm8DTV0yw-WqWkn9DXIf6x-nPG1eyTV6NY8,3452
|
|
81
81
|
flock/evaluators/natural_language/natural_language_evaluator.py,sha256=6nVEeh8_uwv_h-d3FWlA0GbzDzRtdhvxCGKirHtyvOU,2012
|
|
82
|
+
flock/evaluators/test/test_case_evaluator.py,sha256=9vVhYbRrq68TNn8wo9z_yFD4UydhPKlygzy0mDmLLJU,1124
|
|
82
83
|
flock/evaluators/zep/zep_evaluator.py,sha256=9NOELl7JAuUcx_FQrxY6b-_vN3MjwDyW7ZppPIGeCFc,1954
|
|
83
84
|
flock/modules/azure-search/azure_search_module.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
84
85
|
flock/modules/callback/callback_module.py,sha256=volGGgHtY19qj1wHR6m5a_hmXSbV3Ca3uY6I76YmcfU,2833
|
|
85
86
|
flock/modules/memory/memory_module.py,sha256=bSkdFBW-Pp5ldHhXi8v4kfRM7zknfLR2fsOtbTosucI,14916
|
|
86
87
|
flock/modules/memory/memory_parser.py,sha256=FLH7GL8XThvHiCMfX3eQH7Sz-f62fzhAUmO6_gaDI7U,4372
|
|
87
88
|
flock/modules/memory/memory_storage.py,sha256=CNcLDMmvv0x7Z3YMKr6VveS_VCa7rKPw8l2d-XgqokA,27246
|
|
88
|
-
flock/modules/output/output_module.py,sha256=
|
|
89
|
+
flock/modules/output/output_module.py,sha256=2yKC2jBPmWIVPSSolYg8UuJ1VMm-Wd9ncrIl-EIG29s,7697
|
|
89
90
|
flock/modules/performance/metrics_module.py,sha256=UD9OjY4-zAvauMD7YyDYqE1gyIhzpdr3JkBT8j9knxY,16790
|
|
90
91
|
flock/modules/zep/zep_module.py,sha256=x7JG6O6xnwwum0RETIqKYbA3xzdcvX2aUuns0Cl0c2Q,6014
|
|
91
92
|
flock/platform/docker_tools.py,sha256=fpA7-6rJBjPOUBLdQP4ny2QPgJ_042nmqRn5GtKnoYw,1445
|
|
@@ -439,8 +440,8 @@ flock/workflow/activities.py,sha256=eVZDnxGJl_quNO-UTV3YgvTV8LrRaHN3QDAA1ANKzac,
|
|
|
439
440
|
flock/workflow/agent_activities.py,sha256=NhBZscflEf2IMfSRa_pBM_TRP7uVEF_O0ROvWZ33eDc,963
|
|
440
441
|
flock/workflow/temporal_setup.py,sha256=VWBgmBgfTBjwM5ruS_dVpA5AVxx6EZ7oFPGw4j3m0l0,1091
|
|
441
442
|
flock/workflow/workflow.py,sha256=I9MryXW_bqYVTHx-nl2epbTqeRy27CAWHHA7ZZA0nAk,1696
|
|
442
|
-
flock_core-0.4.
|
|
443
|
-
flock_core-0.4.
|
|
444
|
-
flock_core-0.4.
|
|
445
|
-
flock_core-0.4.
|
|
446
|
-
flock_core-0.4.
|
|
443
|
+
flock_core-0.4.0b15.dist-info/METADATA,sha256=JpQYGvSIRTmUQYKmPhe4uhDLhVr7-ZvdsPH0KGy0tbc,21101
|
|
444
|
+
flock_core-0.4.0b15.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
445
|
+
flock_core-0.4.0b15.dist-info/entry_points.txt,sha256=rWaS5KSpkTmWySURGFZk6PhbJ87TmvcFQDi2uzjlagQ,37
|
|
446
|
+
flock_core-0.4.0b15.dist-info/licenses/LICENSE,sha256=iYEqWy0wjULzM9GAERaybP4LBiPeu7Z1NEliLUdJKSc,1072
|
|
447
|
+
flock_core-0.4.0b15.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|