synth-optimizers 0.2.11.dev20260816__tar.gz → 0.2.12.dev20260816__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.
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/PKG-INFO +1 -1
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/pyproject.toml +1 -1
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_gepa/openapi/gepa-service-v1.yaml +41 -1
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_gepa/src/service.rs +39 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/Cargo.lock +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/Cargo.toml +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/README.md +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_gepa/Cargo.toml +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_gepa/README.md +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_gepa/src/codex_app_server.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_gepa/src/jesterky_workflow.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_gepa/src/lib.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_gepa/src/machines.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_gepa/src/pipeline.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_gepa/src/planner.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_gepa/src/prompting_best_practices.md +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_gepa/src/runtime.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/Cargo.toml +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/README.md +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/agent_runtime/README.md +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/agent_runtime/app_server.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/agent_runtime/codex_home.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/agent_runtime/daytona.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/agent_runtime/docker.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/agent_runtime/jsonrpc_read_window.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/agent_runtime/limits.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/agent_runtime/local.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/agent_runtime/mod.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/agent_runtime/nano.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/agent_runtime/role_agent.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/agent_runtime/session.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/agent_runtime/substrate.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/agent_runtime/supervisor.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/agent_runtime/usage.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/artifact_store.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/artifacts.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/cache.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/candidates.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/checkpoints.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/config.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/configured_limits.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/container_contract.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/data_models.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/disk_budget.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/error.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/event_visualization.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/events.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/evidence.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/failures.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/fsm.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/http.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/invariants.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/jesterky.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/jobs.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/levers.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/lib.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/limit_engine.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/limits.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/observability.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/operations.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/process.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/projections.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/prompt_program.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/registry.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/resources.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/rollouts.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/runtime_records.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/scores.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/sensors.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/state_machine.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/stopper.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/storage_maintenance.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/usage.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizer_platform/src/workspace.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizers_py/Cargo.toml +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizers_py/README.md +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/rust/crates/synth_optimizers_py/src/lib.rs +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/src/synth_optimizers/README.md +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/src/synth_optimizers/__init__.py +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/src/synth_optimizers/_synth_optimizers.pyi +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/src/synth_optimizers/board_server.py +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/src/synth_optimizers/cli.py +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/src/synth_optimizers/discovery.py +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/src/synth_optimizers/docs/gelo/00-index.md +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/src/synth_optimizers/docs/gelo/10-cli.md +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/src/synth_optimizers/docs/gelo/20-sdk.md +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/src/synth_optimizers/docs/gelo/30-hosted.md +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/src/synth_optimizers/docs/gelo/containers/00-overview.md +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/src/synth_optimizers/docs/gelo/containers/20-contract.md +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/src/synth_optimizers/docs/gepa/00-index.md +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/src/synth_optimizers/docs/gepa/10-cli.md +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/src/synth_optimizers/docs/gepa/20-sdk.md +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/src/synth_optimizers/docs/gepa/algorithms/00-overview.md +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/src/synth_optimizers/docs/gepa/algorithms/10-pipeline-modes.md +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/src/synth_optimizers/docs/gepa/algorithms/20-proposer-and-policies.md +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/src/synth_optimizers/docs/gepa/assets/synth-logo.png +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/src/synth_optimizers/docs/gepa/containers/00-overview.md +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/src/synth_optimizers/docs/gepa/containers/10-catalog.md +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/src/synth_optimizers/docs/gepa/containers/20-contract.md +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/src/synth_optimizers/docs_server.py +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/src/synth_optimizers/eval_stats.py +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/src/synth_optimizers/future_algorithms.py +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/src/synth_optimizers/gelo.py +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/src/synth_optimizers/gepa.py +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/src/synth_optimizers/hosted.py +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/src/synth_optimizers/hosted_config.py +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/src/synth_optimizers/o11y.py +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/src/synth_optimizers/observability.py +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/src/synth_optimizers/py.typed +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/src/synth_optimizers/sdk.py +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/src/synth_optimizers/tunnels.py +0 -0
- {synth_optimizers-0.2.11.dev20260816 → synth_optimizers-0.2.12.dev20260816}/src/synth_optimizers/victorialogs.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "synth-optimizers"
|
|
3
|
-
version = "0.2.
|
|
3
|
+
version = "0.2.12.dev20260816"
|
|
4
4
|
description = "Public Synth optimizer tooling with a Rust GEPA core."
|
|
5
5
|
authors = [{name = "Synth Laboratories", email = "josh@usesynth.ai"}]
|
|
6
6
|
readme = "README.md"
|
|
@@ -32,6 +32,28 @@ servers:
|
|
|
32
32
|
description: Local single-workspace server
|
|
33
33
|
|
|
34
34
|
paths:
|
|
35
|
+
/v1/optimizer/capabilities:
|
|
36
|
+
get:
|
|
37
|
+
operationId: getOptimizerCapabilities
|
|
38
|
+
summary: Advertise Workshop optimizer compatibility
|
|
39
|
+
responses:
|
|
40
|
+
'200':
|
|
41
|
+
description: Optimizer algorithms, recipes, and runtime capabilities.
|
|
42
|
+
content:
|
|
43
|
+
application/json:
|
|
44
|
+
schema: { $ref: '#/components/schemas/OptimizerCapabilities' }
|
|
45
|
+
|
|
46
|
+
/v1/optimizer/status:
|
|
47
|
+
get:
|
|
48
|
+
operationId: getOptimizerStatus
|
|
49
|
+
summary: Return the Workshop-compatible optimizer status document
|
|
50
|
+
responses:
|
|
51
|
+
'200':
|
|
52
|
+
description: Alias of the optimizer capability document for compatibility.
|
|
53
|
+
content:
|
|
54
|
+
application/json:
|
|
55
|
+
schema: { $ref: '#/components/schemas/OptimizerCapabilities' }
|
|
56
|
+
|
|
35
57
|
# ---------------------------------------------------------------------------
|
|
36
58
|
# Submission + lifecycle
|
|
37
59
|
# ---------------------------------------------------------------------------
|
|
@@ -648,7 +670,6 @@ paths:
|
|
|
648
670
|
|
|
649
671
|
# =============================================================================
|
|
650
672
|
components:
|
|
651
|
-
|
|
652
673
|
parameters:
|
|
653
674
|
RunId:
|
|
654
675
|
name: run_id
|
|
@@ -698,6 +719,25 @@ components:
|
|
|
698
719
|
schema: { $ref: '#/components/schemas/ErrorEnvelope' }
|
|
699
720
|
|
|
700
721
|
schemas:
|
|
722
|
+
OptimizerCapabilities:
|
|
723
|
+
type: object
|
|
724
|
+
required: [status, algorithms, recipes, replay, cancellation, compatibleTemplateIds]
|
|
725
|
+
properties:
|
|
726
|
+
status: { type: string, const: ok }
|
|
727
|
+
algorithms:
|
|
728
|
+
type: array
|
|
729
|
+
minItems: 1
|
|
730
|
+
items: { type: string }
|
|
731
|
+
recipes:
|
|
732
|
+
type: array
|
|
733
|
+
minItems: 1
|
|
734
|
+
items: { type: string }
|
|
735
|
+
replay: { type: boolean }
|
|
736
|
+
cancellation: { type: boolean }
|
|
737
|
+
compatibleTemplateIds:
|
|
738
|
+
type: array
|
|
739
|
+
minItems: 1
|
|
740
|
+
items: { type: string }
|
|
701
741
|
|
|
702
742
|
# ---- Enums -------------------------------------------------------------
|
|
703
743
|
RunStatus:
|
|
@@ -1508,6 +1508,9 @@ fn route_request(request: HttpRequest, runtime: GepaServiceRuntime) -> HttpRespo
|
|
|
1508
1508
|
let config = &runtime.config;
|
|
1509
1509
|
match (request.method.as_str(), segments.as_slice()) {
|
|
1510
1510
|
("GET", ["health"]) => json_response(200, &json!({"status": "ok"})),
|
|
1511
|
+
("GET", ["v1", "optimizer", "capabilities"]) | ("GET", ["v1", "optimizer", "status"]) => {
|
|
1512
|
+
json_response(200, &optimizer_capabilities_payload())
|
|
1513
|
+
}
|
|
1511
1514
|
("GET", ["whoami"]) => json_response(
|
|
1512
1515
|
200,
|
|
1513
1516
|
&service_identity_payload(config, &runtime.service_url, &runtime.started_at, None),
|
|
@@ -1592,6 +1595,25 @@ fn route_request(request: HttpRequest, runtime: GepaServiceRuntime) -> HttpRespo
|
|
|
1592
1595
|
}
|
|
1593
1596
|
}
|
|
1594
1597
|
|
|
1598
|
+
fn optimizer_capabilities_payload() -> Value {
|
|
1599
|
+
json!({
|
|
1600
|
+
"status": "ok",
|
|
1601
|
+
"algorithms": ["gepa"],
|
|
1602
|
+
"recipes": [
|
|
1603
|
+
"gepa.banking77.smoke.v1",
|
|
1604
|
+
"gepa.banking77.luna.v1",
|
|
1605
|
+
"gepa.banking77.sol.v1",
|
|
1606
|
+
"gepa.craftax.smoke.v1"
|
|
1607
|
+
],
|
|
1608
|
+
"replay": true,
|
|
1609
|
+
"cancellation": true,
|
|
1610
|
+
"compatibleTemplateIds": [
|
|
1611
|
+
"optimizer.gepa.live.v1",
|
|
1612
|
+
"optimizer.run.v1"
|
|
1613
|
+
]
|
|
1614
|
+
})
|
|
1615
|
+
}
|
|
1616
|
+
|
|
1595
1617
|
fn handle_websocket_connection(
|
|
1596
1618
|
stream: &mut TcpStream,
|
|
1597
1619
|
runtime: GepaServiceRuntime,
|
|
@@ -5772,6 +5794,23 @@ mod tests {
|
|
|
5772
5794
|
);
|
|
5773
5795
|
}
|
|
5774
5796
|
|
|
5797
|
+
#[test]
|
|
5798
|
+
fn workshop_capability_handshake_is_complete() {
|
|
5799
|
+
let capabilities = optimizer_capabilities_payload();
|
|
5800
|
+
for field in ["algorithms", "recipes", "compatibleTemplateIds"] {
|
|
5801
|
+
let values = capabilities[field].as_array().unwrap();
|
|
5802
|
+
assert!(!values.is_empty());
|
|
5803
|
+
assert!(values.iter().all(Value::is_string));
|
|
5804
|
+
}
|
|
5805
|
+
assert_eq!(capabilities["replay"], true);
|
|
5806
|
+
assert_eq!(capabilities["cancellation"], true);
|
|
5807
|
+
assert!(capabilities["recipes"]
|
|
5808
|
+
.as_array()
|
|
5809
|
+
.unwrap()
|
|
5810
|
+
.iter()
|
|
5811
|
+
.any(|recipe| recipe == "gepa.banking77.smoke.v1"));
|
|
5812
|
+
}
|
|
5813
|
+
|
|
5775
5814
|
#[test]
|
|
5776
5815
|
fn optimizer_event_pages_are_cursor_idempotent_and_run_isolated() {
|
|
5777
5816
|
let path = scratch_path("cursor");
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|