fluxloop-cli 0.2.2__tar.gz → 0.2.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of fluxloop-cli might be problematic. Click here for more details.

Files changed (35) hide show
  1. {fluxloop_cli-0.2.2 → fluxloop_cli-0.2.3}/PKG-INFO +1 -1
  2. {fluxloop_cli-0.2.2 → fluxloop_cli-0.2.3}/fluxloop_cli/__init__.py +1 -1
  3. {fluxloop_cli-0.2.2 → fluxloop_cli-0.2.3}/fluxloop_cli/config_loader.py +27 -3
  4. {fluxloop_cli-0.2.2 → fluxloop_cli-0.2.3}/fluxloop_cli/validators.py +10 -0
  5. {fluxloop_cli-0.2.2 → fluxloop_cli-0.2.3}/fluxloop_cli.egg-info/PKG-INFO +1 -1
  6. {fluxloop_cli-0.2.2 → fluxloop_cli-0.2.3}/pyproject.toml +1 -1
  7. {fluxloop_cli-0.2.2 → fluxloop_cli-0.2.3}/README.md +0 -0
  8. {fluxloop_cli-0.2.2 → fluxloop_cli-0.2.3}/fluxloop_cli/arg_binder.py +0 -0
  9. {fluxloop_cli-0.2.2 → fluxloop_cli-0.2.3}/fluxloop_cli/commands/__init__.py +0 -0
  10. {fluxloop_cli-0.2.2 → fluxloop_cli-0.2.3}/fluxloop_cli/commands/config.py +0 -0
  11. {fluxloop_cli-0.2.2 → fluxloop_cli-0.2.3}/fluxloop_cli/commands/generate.py +0 -0
  12. {fluxloop_cli-0.2.2 → fluxloop_cli-0.2.3}/fluxloop_cli/commands/init.py +0 -0
  13. {fluxloop_cli-0.2.2 → fluxloop_cli-0.2.3}/fluxloop_cli/commands/parse.py +0 -0
  14. {fluxloop_cli-0.2.2 → fluxloop_cli-0.2.3}/fluxloop_cli/commands/record.py +0 -0
  15. {fluxloop_cli-0.2.2 → fluxloop_cli-0.2.3}/fluxloop_cli/commands/run.py +0 -0
  16. {fluxloop_cli-0.2.2 → fluxloop_cli-0.2.3}/fluxloop_cli/commands/status.py +0 -0
  17. {fluxloop_cli-0.2.2 → fluxloop_cli-0.2.3}/fluxloop_cli/config_schema.py +0 -0
  18. {fluxloop_cli-0.2.2 → fluxloop_cli-0.2.3}/fluxloop_cli/constants.py +0 -0
  19. {fluxloop_cli-0.2.2 → fluxloop_cli-0.2.3}/fluxloop_cli/input_generator.py +0 -0
  20. {fluxloop_cli-0.2.2 → fluxloop_cli-0.2.3}/fluxloop_cli/llm_generator.py +0 -0
  21. {fluxloop_cli-0.2.2 → fluxloop_cli-0.2.3}/fluxloop_cli/main.py +0 -0
  22. {fluxloop_cli-0.2.2 → fluxloop_cli-0.2.3}/fluxloop_cli/project_paths.py +0 -0
  23. {fluxloop_cli-0.2.2 → fluxloop_cli-0.2.3}/fluxloop_cli/runner.py +0 -0
  24. {fluxloop_cli-0.2.2 → fluxloop_cli-0.2.3}/fluxloop_cli/target_loader.py +0 -0
  25. {fluxloop_cli-0.2.2 → fluxloop_cli-0.2.3}/fluxloop_cli/templates.py +0 -0
  26. {fluxloop_cli-0.2.2 → fluxloop_cli-0.2.3}/fluxloop_cli.egg-info/SOURCES.txt +0 -0
  27. {fluxloop_cli-0.2.2 → fluxloop_cli-0.2.3}/fluxloop_cli.egg-info/dependency_links.txt +0 -0
  28. {fluxloop_cli-0.2.2 → fluxloop_cli-0.2.3}/fluxloop_cli.egg-info/entry_points.txt +0 -0
  29. {fluxloop_cli-0.2.2 → fluxloop_cli-0.2.3}/fluxloop_cli.egg-info/requires.txt +0 -0
  30. {fluxloop_cli-0.2.2 → fluxloop_cli-0.2.3}/fluxloop_cli.egg-info/top_level.txt +0 -0
  31. {fluxloop_cli-0.2.2 → fluxloop_cli-0.2.3}/setup.cfg +0 -0
  32. {fluxloop_cli-0.2.2 → fluxloop_cli-0.2.3}/tests/test_arg_binder.py +0 -0
  33. {fluxloop_cli-0.2.2 → fluxloop_cli-0.2.3}/tests/test_config_command.py +0 -0
  34. {fluxloop_cli-0.2.2 → fluxloop_cli-0.2.3}/tests/test_input_generator.py +0 -0
  35. {fluxloop_cli-0.2.2 → fluxloop_cli-0.2.3}/tests/test_target_loader.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fluxloop-cli
3
- Version: 0.2.2
3
+ Version: 0.2.3
4
4
  Summary: FluxLoop CLI for running agent simulations
5
5
  Author-email: FluxLoop Team <team@fluxloop.dev>
6
6
  License: Apache-2.0
@@ -2,7 +2,7 @@
2
2
  FluxLoop CLI - Command-line interface for running agent simulations.
3
3
  """
4
4
 
5
- __version__ = "0.2.2"
5
+ __version__ = "0.2.3"
6
6
 
7
7
  from .main import app
8
8
 
@@ -253,11 +253,35 @@ def _normalize_variation_strategies(payload: Dict[str, Any]) -> None:
253
253
  if not candidate:
254
254
  continue
255
255
 
256
- normalized.append(
257
- candidate.strip().lower().replace(" ", "_").replace("-", "_")
256
+ canonical = (
257
+ candidate.strip()
258
+ .lower()
259
+ .replace(" ", "_")
260
+ .replace("-", "_")
258
261
  )
259
262
 
260
- payload["variation_strategies"] = normalized
263
+ alias_map = {
264
+ "error_prone": (
265
+ VariationStrategy.ERROR_PRONE.value
266
+ if hasattr(VariationStrategy, "ERROR_PRONE")
267
+ else VariationStrategy.TYPO.value
268
+ ),
269
+ }
270
+
271
+ canonical = alias_map.get(canonical, canonical)
272
+
273
+ normalized.append(canonical)
274
+
275
+ # Remove duplicates while preserving order
276
+ seen = set()
277
+ deduped = []
278
+ for item in normalized:
279
+ if item in seen:
280
+ continue
281
+ seen.add(item)
282
+ deduped.append(item)
283
+
284
+ payload["variation_strategies"] = deduped
261
285
 
262
286
 
263
287
  def _detect_config_context(resolved_path: Path) -> tuple[str, Path, Path]:
@@ -13,11 +13,21 @@ def parse_variation_strategies(values: Iterable[str]) -> List[VariationStrategy]
13
13
  """Parse CLI-provided variation strategy names."""
14
14
 
15
15
  strategies: List[VariationStrategy] = []
16
+ alias_map = {
17
+ "error_prone": (
18
+ VariationStrategy.ERROR_PRONE.value
19
+ if hasattr(VariationStrategy, "ERROR_PRONE")
20
+ else VariationStrategy.TYPO.value
21
+ )
22
+ }
23
+
16
24
  for value in values:
17
25
  normalized = value.strip().lower().replace("-", "_")
18
26
  if not normalized:
19
27
  continue
20
28
 
29
+ normalized = alias_map.get(normalized, normalized)
30
+
21
31
  try:
22
32
  strategies.append(VariationStrategy(normalized))
23
33
  except ValueError as exc: # pragma: no cover - exercised via Typer
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fluxloop-cli
3
- Version: 0.2.2
3
+ Version: 0.2.3
4
4
  Summary: FluxLoop CLI for running agent simulations
5
5
  Author-email: FluxLoop Team <team@fluxloop.dev>
6
6
  License: Apache-2.0
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "fluxloop-cli"
7
- version = "0.2.2"
7
+ version = "0.2.3"
8
8
  description = "FluxLoop CLI for running agent simulations"
9
9
  authors = [
10
10
  {name = "FluxLoop Team", email = "team@fluxloop.dev"}
File without changes
File without changes