agentevolve-optimizer 0.5.0__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.
- agent_evolve/__init__.py +722 -0
- agent_evolve/agentic.py +2800 -0
- agent_evolve/api.py +767 -0
- agent_evolve/application/__init__.py +1580 -0
- agent_evolve/application/action_allocation.py +744 -0
- agent_evolve/application/action_allocation_frame.py +347 -0
- agent_evolve/application/action_allocation_frame_commit.py +185 -0
- agent_evolve/application/action_allocation_frame_commit_v3.py +184 -0
- agent_evolve/application/action_allocation_frame_v3.py +338 -0
- agent_evolve/application/action_archive_value.py +497 -0
- agent_evolve/application/action_evidence_consistency.py +455 -0
- agent_evolve/application/action_forecast_partitioning.py +1471 -0
- agent_evolve/application/action_metric_projection.py +211 -0
- agent_evolve/application/action_role_value.py +680 -0
- agent_evolve/application/action_score_authorities.py +363 -0
- agent_evolve/application/action_structural_signature.py +116 -0
- agent_evolve/application/action_target_realization.py +402 -0
- agent_evolve/application/agentic_evolution.py +7734 -0
- agent_evolve/application/agentic_portfolio_residual_expert.py +835 -0
- agent_evolve/application/anchor_residual_identification.py +463 -0
- agent_evolve/application/archive_conditioned_action_target.py +208 -0
- agent_evolve/application/artifact_journal.py +246 -0
- agent_evolve/application/artifact_replay.py +347 -0
- agent_evolve/application/budgeted_optimizer.py +1828 -0
- agent_evolve/application/calibrated_campaign.py +485 -0
- agent_evolve/application/calibrated_current_prefix_forecast_opportunity.py +322 -0
- agent_evolve/application/calibrated_positive_gain_opportunity.py +1581 -0
- agent_evolve/application/campaign_capacity_recourse.py +254 -0
- agent_evolve/application/campaign_contextual_outcomes.py +119 -0
- agent_evolve/application/campaign_diagnostic_blocks.py +930 -0
- agent_evolve/application/campaign_evidence_registry.py +262 -0
- agent_evolve/application/campaign_execution.py +2537 -0
- agent_evolve/application/campaign_generation_audit.py +942 -0
- agent_evolve/application/campaign_learning.py +1812 -0
- agent_evolve/application/campaign_learning_runtime.py +1977 -0
- agent_evolve/application/campaign_search_phase.py +227 -0
- agent_evolve/application/campaign_selector_context_extension.py +220 -0
- agent_evolve/application/campaign_variation_envelope.py +649 -0
- agent_evolve/application/campaign_variation_trace.py +451 -0
- agent_evolve/application/candidate_archive_consequence.py +128 -0
- agent_evolve/application/causal_opportunity_portfolio_gate.py +385 -0
- agent_evolve/application/composite_outcome_updater.py +145 -0
- agent_evolve/application/composition_portfolio_selection.py +363 -0
- agent_evolve/application/concurrent_stage.py +144 -0
- agent_evolve/application/contextual_action_allocation.py +181 -0
- agent_evolve/application/contextual_campaign_outcomes.py +267 -0
- agent_evolve/application/contextual_campaign_planning.py +1366 -0
- agent_evolve/application/contextual_delayed_credit.py +651 -0
- agent_evolve/application/contextual_search_controller.py +2374 -0
- agent_evolve/application/current_prefix_forecast_opportunity.py +714 -0
- agent_evolve/application/decision_metric_projection.py +112 -0
- agent_evolve/application/derived_action_semantics.py +129 -0
- agent_evolve/application/detailed_evaluation.py +449 -0
- agent_evolve/application/earned_lineage.py +1011 -0
- agent_evolve/application/effective_choice_audit.py +484 -0
- agent_evolve/application/empirical_consequence_calibration.py +908 -0
- agent_evolve/application/evaluation_accounting.py +325 -0
- agent_evolve/application/evaluation_cache.py +199 -0
- agent_evolve/application/evaluation_escrow.py +547 -0
- agent_evolve/application/evaluation_recourse.py +253 -0
- agent_evolve/application/event_recorder.py +151 -0
- agent_evolve/application/evolution_campaign.py +1840 -0
- agent_evolve/application/executable_hypothesis.py +323 -0
- agent_evolve/application/factorial_branch_pilot.py +772 -0
- agent_evolve/application/finite_acquisition_capacity_recourse.py +672 -0
- agent_evolve/application/finite_acquisition_residual_expert.py +373 -0
- agent_evolve/application/finite_acquisition_variation_envelope.py +802 -0
- agent_evolve/application/finite_action_hypothesis_semantics.py +446 -0
- agent_evolve/application/finite_action_selection.py +188 -0
- agent_evolve/application/finite_action_set.py +306 -0
- agent_evolve/application/finite_action_transition.py +537 -0
- agent_evolve/application/finite_variation_eligibility.py +296 -0
- agent_evolve/application/forecast_geometry_portfolio.py +799 -0
- agent_evolve/application/forecast_opportunity_shadow_calibration.py +316 -0
- agent_evolve/application/front_proximity_admission.py +311 -0
- agent_evolve/application/front_proximity_parent_basis.py +458 -0
- agent_evolve/application/frozen_hurdle_score.py +659 -0
- agent_evolve/application/g3_causal_screen.py +2257 -0
- agent_evolve/application/g3_causal_validation.py +1046 -0
- agent_evolve/application/g3_postseal_curation.py +818 -0
- agent_evolve/application/gated_agentic_generator.py +205 -0
- agent_evolve/application/generation_feedback.py +293 -0
- agent_evolve/application/generative_proposal_journal.py +185 -0
- agent_evolve/application/geometry_conditional_elasticity.py +453 -0
- agent_evolve/application/global_wave_action_allocation.py +1151 -0
- agent_evolve/application/head_mass_conditional_seat.py +268 -0
- agent_evolve/application/identifiable_reflection_evidence.py +1147 -0
- agent_evolve/application/identifiable_reflection_learning.py +395 -0
- agent_evolve/application/identifiable_reflection_request.py +364 -0
- agent_evolve/application/in_memory_residual_archive.py +341 -0
- agent_evolve/application/insight_memory.py +1804 -0
- agent_evolve/application/live_runtime_manifest.py +758 -0
- agent_evolve/application/llm_task_queue.py +769 -0
- agent_evolve/application/matched_finite_action_block.py +409 -0
- agent_evolve/application/materialized_action_broker.py +2328 -0
- agent_evolve/application/materialized_action_constraints.py +83 -0
- agent_evolve/application/materialized_variation.py +211 -0
- agent_evolve/application/multi_option_evolution.py +1536 -0
- agent_evolve/application/outcome_adaptive_action_racing.py +2827 -0
- agent_evolve/application/outcome_adaptive_residual_campaign_runtime.py +580 -0
- agent_evolve/application/outcome_adaptive_residual_portfolio_evolution.py +3671 -0
- agent_evolve/application/outcome_conditioned_portfolio_selection.py +1374 -0
- agent_evolve/application/outcome_relation.py +193 -0
- agent_evolve/application/paired_allocation_comparison.py +241 -0
- agent_evolve/application/paired_block_schedule.py +127 -0
- agent_evolve/application/parent_measurement.py +226 -0
- agent_evolve/application/pareto_archive.py +811 -0
- agent_evolve/application/portfolio_campaign_runtime.py +4739 -0
- agent_evolve/application/portfolio_evolution.py +2950 -0
- agent_evolve/application/portfolio_hypothesis_observations.py +814 -0
- agent_evolve/application/portfolio_memory_attribution.py +581 -0
- agent_evolve/application/portfolio_memory_dose.py +788 -0
- agent_evolve/application/portfolio_memory_matched_control.py +938 -0
- agent_evolve/application/portfolio_memory_transfer.py +297 -0
- agent_evolve/application/portfolio_optimization_memory.py +363 -0
- agent_evolve/application/portfolio_outcome_feedback.py +1613 -0
- agent_evolve/application/portfolio_projection.py +335 -0
- agent_evolve/application/portfolio_recombination.py +2032 -0
- agent_evolve/application/post_evolution_reflection.py +834 -0
- agent_evolve/application/postcommit_rank_authority.py +245 -0
- agent_evolve/application/precommitted_portfolio_racing.py +2762 -0
- agent_evolve/application/prequential_archive_opportunity_calibration.py +1154 -0
- agent_evolve/application/prequential_residual_exploration.py +343 -0
- agent_evolve/application/prequential_score_portfolio.py +954 -0
- agent_evolve/application/projections.py +292 -0
- agent_evolve/application/protected_action_committee.py +1027 -0
- agent_evolve/application/protected_branch_pilot.py +376 -0
- agent_evolve/application/protected_current_prefix_forecast_opportunity.py +552 -0
- agent_evolve/application/provider_replay.py +910 -0
- agent_evolve/application/rank_balanced_causal_pilot.py +1372 -0
- agent_evolve/application/recombination_residual_expert.py +403 -0
- agent_evolve/application/reflection_workflow.py +571 -0
- agent_evolve/application/region_conditional_credit.py +911 -0
- agent_evolve/application/residual_campaign_runtime.py +531 -0
- agent_evolve/application/residual_headroom_campaign_runtime.py +459 -0
- agent_evolve/application/residual_headroom_ledger.py +1544 -0
- agent_evolve/application/residual_learning_transaction.py +396 -0
- agent_evolve/application/residual_portfolio_evolution.py +1228 -0
- agent_evolve/application/residual_reachability.py +749 -0
- agent_evolve/application/residual_stage_credit.py +499 -0
- agent_evolve/application/same_prefix_paired_audit.py +1580 -0
- agent_evolve/application/semantic_coverage_score_portfolio.py +838 -0
- agent_evolve/application/sequential_lineage_allocation.py +1017 -0
- agent_evolve/application/sequential_market_replay.py +1395 -0
- agent_evolve/application/sequential_residual_campaign_runtime.py +305 -0
- agent_evolve/application/sequential_residual_portfolio_evolution.py +940 -0
- agent_evolve/application/single_score_action_allocation.py +299 -0
- agent_evolve/application/source_exposure_allocation.py +906 -0
- agent_evolve/application/staged_memory.py +210 -0
- agent_evolve/application/stratified_cold_start_allocation.py +732 -0
- agent_evolve/application/support_guarded_hurdle_score.py +549 -0
- agent_evolve/application/target_conditioned_action_forecast.py +595 -0
- agent_evolve/application/target_conditioned_campaign.py +566 -0
- agent_evolve/application/treatment_assignment.py +201 -0
- agent_evolve/application/trusted_objective_evidence.py +217 -0
- agent_evolve/application/two_stage_action_evolution.py +1131 -0
- agent_evolve/application/v8lite_allocation_policy.py +1083 -0
- agent_evolve/application/v9_candidate_policy.py +1303 -0
- agent_evolve/bootstrap.py +108 -0
- agent_evolve/campaign_presets.py +517 -0
- agent_evolve/campaign_profiles.py +452 -0
- agent_evolve/campaign_variation_topology.py +288 -0
- agent_evolve/campaign_workload.py +950 -0
- agent_evolve/cli.py +797 -0
- agent_evolve/contract.py +241 -0
- agent_evolve/core/__init__.py +91 -0
- agent_evolve/core/action_semantics.py +411 -0
- agent_evolve/core/authored.py +105 -0
- agent_evolve/core/formatting.py +286 -0
- agent_evolve/core/optimization_semantics.py +324 -0
- agent_evolve/core/problem.py +167 -0
- agent_evolve/core/results.py +323 -0
- agent_evolve/core/stats.py +70 -0
- agent_evolve/core/telemetry.py +100 -0
- agent_evolve/domain/__init__.py +89 -0
- agent_evolve/domain/artifact.py +162 -0
- agent_evolve/domain/durable_text.py +68 -0
- agent_evolve/domain/event.py +1454 -0
- agent_evolve/domain/finite_action_set.py +426 -0
- agent_evolve/domain/finite_variation.py +526 -0
- agent_evolve/domain/generative_emission.py +559 -0
- agent_evolve/domain/ids.py +163 -0
- agent_evolve/domain/inline_text.py +106 -0
- agent_evolve/domain/insight.py +27 -0
- agent_evolve/domain/lineage.py +737 -0
- agent_evolve/domain/llm_task_queue.py +960 -0
- agent_evolve/domain/outcome.py +96 -0
- agent_evolve/domain/patch.py +854 -0
- agent_evolve/domain/typed_json.py +542 -0
- agent_evolve/domain/variation_space.py +158 -0
- agent_evolve/driver.py +1014 -0
- agent_evolve/harness/__init__.py +29 -0
- agent_evolve/harness/base.py +242 -0
- agent_evolve/harness/directives.py +163 -0
- agent_evolve/harness/generative_seal.py +479 -0
- agent_evolve/harness/registry.py +41 -0
- agent_evolve/infrastructure/__init__.py +39 -0
- agent_evolve/infrastructure/artifacts/__init__.py +6 -0
- agent_evolve/infrastructure/artifacts/_verification.py +67 -0
- agent_evolve/infrastructure/artifacts/filesystem.py +343 -0
- agent_evolve/infrastructure/artifacts/in_memory.py +73 -0
- agent_evolve/infrastructure/asyncio_runtime.py +109 -0
- agent_evolve/infrastructure/authored_runtime.py +188 -0
- agent_evolve/infrastructure/authored_worker.py +171 -0
- agent_evolve/infrastructure/clock.py +53 -0
- agent_evolve/infrastructure/events/__init__.py +6 -0
- agent_evolve/infrastructure/events/_validation.py +89 -0
- agent_evolve/infrastructure/events/in_memory.py +56 -0
- agent_evolve/infrastructure/events/jsonl.py +193 -0
- agent_evolve/infrastructure/exception_provenance.py +215 -0
- agent_evolve/infrastructure/ids.py +118 -0
- agent_evolve/infrastructure/lineage_codec.py +1836 -0
- agent_evolve/infrastructure/outcome_adaptive_phase_journal.py +170 -0
- agent_evolve/infrastructure/residual_headroom_journal.py +221 -0
- agent_evolve/infrastructure/resource_lease.py +370 -0
- agent_evolve/infrastructure/sanitization/__init__.py +8 -0
- agent_evolve/infrastructure/sanitization/strict_json.py +484 -0
- agent_evolve/infrastructure/sequential_phase_journal.py +170 -0
- agent_evolve/infrastructure/stream_liveness.py +383 -0
- agent_evolve/infrastructure/subprocess_boundary.py +136 -0
- agent_evolve/integrations/__init__.py +1 -0
- agent_evolve/integrations/botorch/__init__.py +28 -0
- agent_evolve/integrations/botorch/finite_qlognehvi.py +190 -0
- agent_evolve/integrations/botorch/finite_qlognehvi_batch.py +155 -0
- agent_evolve/integrations/botorch/finite_qlognehvi_batch_identity.py +20 -0
- agent_evolve/integrations/botorch/finite_qlognehvi_batch_worker.py +55 -0
- agent_evolve/integrations/botorch/finite_qlognehvi_identity.py +22 -0
- agent_evolve/integrations/botorch/finite_qlognehvi_worker.py +55 -0
- agent_evolve/integrations/botorch/subprocess_qlognehvi.py +261 -0
- agent_evolve/integrations/botorch/subprocess_qlognehvi_batch.py +273 -0
- agent_evolve/integrations/completion.py +242 -0
- agent_evolve/integrations/pydantic_ai/__init__.py +441 -0
- agent_evolve/integrations/pydantic_ai/action_forecast.py +1068 -0
- agent_evolve/integrations/pydantic_ai/agentic_generator.py +2308 -0
- agent_evolve/integrations/pydantic_ai/async_generator.py +1604 -0
- agent_evolve/integrations/pydantic_ai/boundary_codec.py +1526 -0
- agent_evolve/integrations/pydantic_ai/calibrated_portfolio_campaign.py +756 -0
- agent_evolve/integrations/pydantic_ai/calibrated_portfolio_selection.py +7537 -0
- agent_evolve/integrations/pydantic_ai/campaign_acquisition.py +609 -0
- agent_evolve/integrations/pydantic_ai/execution_binding.py +138 -0
- agent_evolve/integrations/pydantic_ai/forecast_geometry_action_committee.py +217 -0
- agent_evolve/integrations/pydantic_ai/harness.py +159 -0
- agent_evolve/integrations/pydantic_ai/heterogeneous_model_execution.py +306 -0
- agent_evolve/integrations/pydantic_ai/hierarchical_residual_adaptive_semantic_view.py +179 -0
- agent_evolve/integrations/pydantic_ai/json_schema_dialect.py +108 -0
- agent_evolve/integrations/pydantic_ai/materialized_hierarchical_residual_expert.py +952 -0
- agent_evolve/integrations/pydantic_ai/materialized_portfolio_judge.py +520 -0
- agent_evolve/integrations/pydantic_ai/model_execution_profile.py +659 -0
- agent_evolve/integrations/pydantic_ai/outbound_request_manifest.py +1170 -0
- agent_evolve/integrations/pydantic_ai/portable_residual_consequence_features.py +575 -0
- agent_evolve/integrations/pydantic_ai/portfolio_selection.py +422 -0
- agent_evolve/integrations/pydantic_ai/progress_aware_openrouter.py +416 -0
- agent_evolve/integrations/pydantic_ai/provider_attempt_join.py +1523 -0
- agent_evolve/integrations/pydantic_ai/provider_free_calibrated_runner.py +607 -0
- agent_evolve/integrations/pydantic_ai/queued_runner.py +2634 -0
- agent_evolve/integrations/pydantic_ai/reconciled_residual_reachability.py +1417 -0
- agent_evolve/integrations/pydantic_ai/residual_forecast_geometry.py +445 -0
- agent_evolve/integrations/pydantic_ai/residual_reachability.py +674 -0
- agent_evolve/integrations/pydantic_ai/residual_semantic_cells.py +239 -0
- agent_evolve/integrations/pydantic_ai/sealed_output_replay.py +1068 -0
- agent_evolve/integrations/pydantic_ai/semantic_coverage_residual_portfolio.py +770 -0
- agent_evolve/integrations/pydantic_ai/semantic_decision_replay.py +383 -0
- agent_evolve/integrations/pydantic_ai/support_adaptive_residual_portfolio.py +135 -0
- agent_evolve/integrations/pydantic_ai/trusted_residual_prompt_context.py +143 -0
- agent_evolve/integrations/pydantic_ai/validated_openrouter_model.py +107 -0
- agent_evolve/integrations/pymoo_adapter.py +242 -0
- agent_evolve/policies/__init__.py +17 -0
- agent_evolve/policies/check.py +469 -0
- agent_evolve/policies/emit_scaffold.py +451 -0
- agent_evolve/policies/feedback/__init__.py +37 -0
- agent_evolve/policies/feedback/held_out_asn.py +1325 -0
- agent_evolve/policies/genetic.py +607 -0
- agent_evolve/policies/llm_backoff.py +183 -0
- agent_evolve/policies/llm_chooser.py +226 -0
- agent_evolve/policies/llm_generator.py +1760 -0
- agent_evolve/policies/llm_init.py +267 -0
- agent_evolve/policies/llm_operator.py +109 -0
- agent_evolve/policies/llm_prior.py +194 -0
- agent_evolve/policies/llm_surrogate.py +334 -0
- agent_evolve/policies/measurement_evidence.py +704 -0
- agent_evolve/policies/memory/__init__.py +223 -0
- agent_evolve/policies/memory/balanced_subset_blocks.py +707 -0
- agent_evolve/policies/memory/compatibility_matching.py +593 -0
- agent_evolve/policies/memory/global_falsification.py +1841 -0
- agent_evolve/policies/memory/prompt_shape.py +503 -0
- agent_evolve/policies/memory/randomized_subset.py +714 -0
- agent_evolve/policies/memory/staged_causal.py +1270 -0
- agent_evolve/policies/memory/treatment_compliance.py +759 -0
- agent_evolve/policies/objective_resolution/__init__.py +17 -0
- agent_evolve/policies/objective_resolution/fixed_grid.py +364 -0
- agent_evolve/policies/operator_portfolio.py +407 -0
- agent_evolve/policies/reguidance.py +1133 -0
- agent_evolve/policies/reward/__init__.py +83 -0
- agent_evolve/policies/reward/affine_candidate_consequence.py +156 -0
- agent_evolve/policies/reward/affine_candidate_consequence_3d.py +159 -0
- agent_evolve/policies/reward/affine_hypervolume.py +490 -0
- agent_evolve/policies/reward/affine_hypervolume_3d.py +567 -0
- agent_evolve/policies/reward/contextual_marginal_utility.py +318 -0
- agent_evolve/policies/reward/frozen_archive.py +360 -0
- agent_evolve/policies/reward/frozen_wave_archive.py +368 -0
- agent_evolve/policies/search_state.py +208 -0
- agent_evolve/policies/selection/__init__.py +345 -0
- agent_evolve/policies/selection/acquisition_certified_slate.py +684 -0
- agent_evolve/policies/selection/affine_frontier_context.py +330 -0
- agent_evolve/policies/selection/affine_frontier_target.py +473 -0
- agent_evolve/policies/selection/archive_elite.py +1346 -0
- agent_evolve/policies/selection/calibrated_portfolio_binding.py +640 -0
- agent_evolve/policies/selection/calibrated_slate.py +1394 -0
- agent_evolve/policies/selection/calibrated_slate_codec.py +579 -0
- agent_evolve/policies/selection/common_candidate_pool.py +685 -0
- agent_evolve/policies/selection/diagnostic_sampling.py +319 -0
- agent_evolve/policies/selection/disjoint_pairs.py +479 -0
- agent_evolve/policies/selection/elite_explorer.py +719 -0
- agent_evolve/policies/selection/finite_action.py +187 -0
- agent_evolve/policies/selection/finite_option_prompt_projection.py +377 -0
- agent_evolve/policies/selection/finite_palette_evidence.py +247 -0
- agent_evolve/policies/selection/forecast_calibration.py +922 -0
- agent_evolve/policies/selection/frontier_probe_slate.py +814 -0
- agent_evolve/policies/selection/frozen_archive_pairs.py +762 -0
- agent_evolve/policies/selection/full_support_slate.py +91 -0
- agent_evolve/policies/selection/meaningful_direction.py +240 -0
- agent_evolve/policies/selection/memory_dose_feasibility.py +259 -0
- agent_evolve/policies/selection/model_anchored_slate.py +826 -0
- agent_evolve/policies/selection/phenotype_recourse.py +979 -0
- agent_evolve/policies/selection/proposal_support.py +368 -0
- agent_evolve/policies/selection/random_portfolio.py +254 -0
- agent_evolve/policies/selection/regret_bounded_slate.py +1084 -0
- agent_evolve/policies/selection/residual_frontier.py +463 -0
- agent_evolve/policies/selection/residual_frontier_target.py +605 -0
- agent_evolve/policies/selection/structural_posterior_slate.py +1571 -0
- agent_evolve/policies/selection/target_conditioned_allocator.py +648 -0
- agent_evolve/policies/selection/target_conditioned_features.py +812 -0
- agent_evolve/policies/selection/target_conditioned_prequential.py +1527 -0
- agent_evolve/policies/selection/task_keyed_palette.py +906 -0
- agent_evolve/policies/semantics.py +147 -0
- agent_evolve/policies/structure.py +362 -0
- agent_evolve/policies/structured_output_budget.py +62 -0
- agent_evolve/policies/surrogate.py +696 -0
- agent_evolve/policies/variation/__init__.py +1 -0
- agent_evolve/policies/variation/compositional_finite_catalog.py +426 -0
- agent_evolve/policies/variation/crossover_inheritance.py +575 -0
- agent_evolve/policies/variation/disjoint_recombination.py +611 -0
- agent_evolve/policies/variation/exact_composition_capacity.py +214 -0
- agent_evolve/policies/variation/exact_parent_crossover.py +950 -0
- agent_evolve/policies/variation/multiscale_restart_catalog.py +372 -0
- agent_evolve/policies/variation/source_union_finite_catalog.py +403 -0
- agent_evolve/policies/variation/typed_patch.py +1981 -0
- agent_evolve/policies/weighted_prior.py +394 -0
- agent_evolve/ports/__init__.py +383 -0
- agent_evolve/ports/action_allocation.py +733 -0
- agent_evolve/ports/action_allocation_frame.py +1153 -0
- agent_evolve/ports/action_allocation_frame_commit.py +294 -0
- agent_evolve/ports/action_allocation_frame_commit_v3.py +432 -0
- agent_evolve/ports/action_allocation_frame_v3.py +995 -0
- agent_evolve/ports/action_forecast.py +1568 -0
- agent_evolve/ports/action_metric_projection.py +165 -0
- agent_evolve/ports/agentic_generator.py +1561 -0
- agent_evolve/ports/archive_context.py +136 -0
- agent_evolve/ports/artifact_sanitizer.py +44 -0
- agent_evolve/ports/artifact_store.py +225 -0
- agent_evolve/ports/clock.py +13 -0
- agent_evolve/ports/contextual_search_allocation.py +827 -0
- agent_evolve/ports/decision_metric_projection.py +258 -0
- agent_evolve/ports/event_store.py +55 -0
- agent_evolve/ports/executable_hypothesis.py +557 -0
- agent_evolve/ports/finite_acquisition.py +377 -0
- agent_evolve/ports/finite_acquisition_batch.py +296 -0
- agent_evolve/ports/finite_acquisition_batch_json.py +164 -0
- agent_evolve/ports/finite_acquisition_json.py +247 -0
- agent_evolve/ports/finite_acquisition_space.py +168 -0
- agent_evolve/ports/finite_action_selection.py +348 -0
- agent_evolve/ports/finite_action_set.py +256 -0
- agent_evolve/ports/frontier_target.py +396 -0
- agent_evolve/ports/generation_failure.py +43 -0
- agent_evolve/ports/hard_feasibility.py +233 -0
- agent_evolve/ports/id_factory.py +34 -0
- agent_evolve/ports/llm_task_queue.py +93 -0
- agent_evolve/ports/objective_resolution.py +419 -0
- agent_evolve/ports/paired_allocation_comparison.py +401 -0
- agent_evolve/ports/paired_block_schedule.py +475 -0
- agent_evolve/ports/parent_measurement.py +336 -0
- agent_evolve/ports/portfolio_memory_dose.py +643 -0
- agent_evolve/ports/portfolio_selection.py +3169 -0
- agent_evolve/ports/postcommit_rank_authority.py +467 -0
- agent_evolve/ports/presented_action_evidence.py +794 -0
- agent_evolve/ports/resource_lease.py +162 -0
- agent_evolve/ports/structured_generator.py +734 -0
- agent_evolve/ports/structured_output_budget.py +120 -0
- agent_evolve/ports/subprocess_boundary.py +138 -0
- agent_evolve/ports/treatment_assignment.py +466 -0
- agent_evolve/ports/variation_catalog.py +76 -0
- agent_evolve/ports/variation_source.py +226 -0
- agent_evolve/proposal_mode.py +157 -0
- agent_evolve/proposers/__init__.py +10 -0
- agent_evolve/proposers/random_proposer.py +188 -0
- agent_evolve/provider_accounting.py +163 -0
- agent_evolve/py.typed +0 -0
- agent_evolve/reference_method.py +1570 -0
- agent_evolve/session/__init__.py +11 -0
- agent_evolve/session/authorship.py +864 -0
- agent_evolve/session/evaluate.py +236 -0
- agent_evolve/session/fidelity.py +237 -0
- agent_evolve/session/genetic_loop.py +742 -0
- agent_evolve/session/loop.py +803 -0
- agent_evolve/session/screening.py +671 -0
- agent_evolve/settings.py +376 -0
- agent_evolve/workload_kit.py +368 -0
- agent_evolve/workload_prompt.py +398 -0
- agentevolve_optimizer-0.5.0.dist-info/METADATA +599 -0
- agentevolve_optimizer-0.5.0.dist-info/RECORD +414 -0
- agentevolve_optimizer-0.5.0.dist-info/WHEEL +5 -0
- agentevolve_optimizer-0.5.0.dist-info/entry_points.txt +2 -0
- agentevolve_optimizer-0.5.0.dist-info/licenses/LICENSE +21 -0
- agentevolve_optimizer-0.5.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,770 @@
|
|
|
1
|
+
"""Composition root for the generic semantic-coverage residual portfolio."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from dataclasses import dataclass
|
|
6
|
+
|
|
7
|
+
from agent_evolve.application.action_score_authorities import (
|
|
8
|
+
NativeRankMaterializedActionScorer,
|
|
9
|
+
TargetEmpiricalReturnMaterializedActionScorer,
|
|
10
|
+
)
|
|
11
|
+
from agent_evolve.application.agentic_evolution import EvolutionCandidate
|
|
12
|
+
from agent_evolve.application.candidate_archive_consequence import (
|
|
13
|
+
CandidateArchiveConsequenceUtilityPort,
|
|
14
|
+
CandidateArchivePortfolioConsequenceUtilityPort,
|
|
15
|
+
)
|
|
16
|
+
from agent_evolve.application.forecast_geometry_portfolio import (
|
|
17
|
+
ForecastGeometryPortfolioMode,
|
|
18
|
+
ForecastGeometryPortfolioPolicy,
|
|
19
|
+
MaterializedForecastGeometryProjectionPort,
|
|
20
|
+
)
|
|
21
|
+
from agent_evolve.application.frozen_hurdle_score import (
|
|
22
|
+
FrozenHurdleScoreKind,
|
|
23
|
+
FrozenStandardizedLinearModel,
|
|
24
|
+
MaterializedActionFeatureProjectionPort,
|
|
25
|
+
WinsorizedFrozenHurdleMaterializedActionScorer,
|
|
26
|
+
)
|
|
27
|
+
from agent_evolve.application.materialized_action_broker import (
|
|
28
|
+
RegretBrokeredMaterializedActionPolicy,
|
|
29
|
+
)
|
|
30
|
+
from agent_evolve.application.precommitted_portfolio_racing import (
|
|
31
|
+
PortfolioRaceDisagreementPolicyPort,
|
|
32
|
+
PortfolioRacePolicyBinding,
|
|
33
|
+
PortfolioRacePriorProjectionPort,
|
|
34
|
+
PrecommittedPortfolioRacePlanner,
|
|
35
|
+
)
|
|
36
|
+
from agent_evolve.application.residual_portfolio_evolution import (
|
|
37
|
+
MaterializedActionAllocationPolicyPort,
|
|
38
|
+
)
|
|
39
|
+
from agent_evolve.application.semantic_coverage_score_portfolio import (
|
|
40
|
+
MaterializedActionSemanticCellProjectionPort,
|
|
41
|
+
SemanticCoverageScorePortfolioPolicy,
|
|
42
|
+
)
|
|
43
|
+
from agent_evolve.application.sequential_lineage_allocation import (
|
|
44
|
+
CandidateArchiveMarginalPilotOutcomeProjector,
|
|
45
|
+
FrozenBranchSequentialLineagePlanner,
|
|
46
|
+
)
|
|
47
|
+
from agent_evolve.application.source_exposure_allocation import (
|
|
48
|
+
MaterializedActionSourceGroupProjectionPort,
|
|
49
|
+
MinimumSourceExposureAllocationPolicy,
|
|
50
|
+
)
|
|
51
|
+
from agent_evolve.application.support_guarded_hurdle_score import (
|
|
52
|
+
FrozenFeatureSupportGroup,
|
|
53
|
+
SupportGuardedFrozenHurdleMaterializedActionScorer,
|
|
54
|
+
)
|
|
55
|
+
from agent_evolve.ports.hard_feasibility import HardFeasibilityPort
|
|
56
|
+
|
|
57
|
+
from .portable_residual_consequence_features import (
|
|
58
|
+
PORTABLE_RESIDUAL_CONSEQUENCE_FEATURE_GROUPS,
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
PRIMARY_SCORER_ID = "portable_positive_probability"
|
|
62
|
+
TRANSPORT_SCORER_ID = "portable_cross_domain_expected_gain"
|
|
63
|
+
DEFAULT_LINEAGE_CAPACITY_FRACTION = 0.25
|
|
64
|
+
DEFAULT_COVERAGE_STRENGTH = 1.0 / 3.0
|
|
65
|
+
FORECAST_NEUTRAL_FEATURE_GROUP_AUTHORITIES = tuple(
|
|
66
|
+
sorted(
|
|
67
|
+
(
|
|
68
|
+
group_id,
|
|
69
|
+
0.0 if group_id == "forecast" else 1.0,
|
|
70
|
+
)
|
|
71
|
+
for group_id, _feature_names
|
|
72
|
+
in PORTABLE_RESIDUAL_CONSEQUENCE_FEATURE_GROUPS
|
|
73
|
+
)
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
@dataclass(frozen=True, slots=True)
|
|
78
|
+
class SemanticCoverageResidualPortfolio:
|
|
79
|
+
"""Four score authorities and one portable semantic allocation policy."""
|
|
80
|
+
|
|
81
|
+
primary: SupportGuardedFrozenHurdleMaterializedActionScorer
|
|
82
|
+
transport: WinsorizedFrozenHurdleMaterializedActionScorer
|
|
83
|
+
provider_native: NativeRankMaterializedActionScorer
|
|
84
|
+
target_empirical: TargetEmpiricalReturnMaterializedActionScorer
|
|
85
|
+
allocation: SemanticCoverageScorePortfolioPolicy
|
|
86
|
+
|
|
87
|
+
def __post_init__(self) -> None:
|
|
88
|
+
if (
|
|
89
|
+
type(self.primary)
|
|
90
|
+
is not SupportGuardedFrozenHurdleMaterializedActionScorer
|
|
91
|
+
or type(self.transport)
|
|
92
|
+
is not WinsorizedFrozenHurdleMaterializedActionScorer
|
|
93
|
+
or type(self.provider_native)
|
|
94
|
+
is not NativeRankMaterializedActionScorer
|
|
95
|
+
or type(self.target_empirical)
|
|
96
|
+
is not TargetEmpiricalReturnMaterializedActionScorer
|
|
97
|
+
or type(self.allocation)
|
|
98
|
+
is not SemanticCoverageScorePortfolioPolicy
|
|
99
|
+
):
|
|
100
|
+
raise TypeError(
|
|
101
|
+
"semantic coverage portfolio contains a foreign component"
|
|
102
|
+
)
|
|
103
|
+
self.primary.__post_init__()
|
|
104
|
+
self.transport.__post_init__()
|
|
105
|
+
self.provider_native.__post_init__()
|
|
106
|
+
self.target_empirical.__post_init__()
|
|
107
|
+
self.allocation.__post_init__()
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
@dataclass(frozen=True, slots=True)
|
|
111
|
+
class SequentialSemanticCoverageResidualPortfolio:
|
|
112
|
+
"""Two frozen allocation branches and their real-outcome pilot seam."""
|
|
113
|
+
|
|
114
|
+
locked: SemanticCoverageResidualPortfolio
|
|
115
|
+
unlocked: SemanticCoverageResidualPortfolio
|
|
116
|
+
planner: FrozenBranchSequentialLineagePlanner
|
|
117
|
+
pilot_outcome_projector: (
|
|
118
|
+
CandidateArchiveMarginalPilotOutcomeProjector
|
|
119
|
+
)
|
|
120
|
+
|
|
121
|
+
def __post_init__(self) -> None:
|
|
122
|
+
if type(self.locked) is not SemanticCoverageResidualPortfolio:
|
|
123
|
+
raise TypeError("locked portfolio must be exact")
|
|
124
|
+
if type(self.unlocked) is not SemanticCoverageResidualPortfolio:
|
|
125
|
+
raise TypeError("unlocked portfolio must be exact")
|
|
126
|
+
self.locked.__post_init__()
|
|
127
|
+
self.unlocked.__post_init__()
|
|
128
|
+
if type(self.planner) is not FrozenBranchSequentialLineagePlanner:
|
|
129
|
+
raise TypeError("planner must be exact")
|
|
130
|
+
self.planner.__post_init__()
|
|
131
|
+
if (
|
|
132
|
+
type(self.pilot_outcome_projector)
|
|
133
|
+
is not CandidateArchiveMarginalPilotOutcomeProjector
|
|
134
|
+
):
|
|
135
|
+
raise TypeError("pilot_outcome_projector must be exact")
|
|
136
|
+
self.pilot_outcome_projector.__post_init__()
|
|
137
|
+
if self.locked.allocation.allow_recursive_score_lane_spillover:
|
|
138
|
+
raise ValueError("locked branch permits recursive spillover")
|
|
139
|
+
if not self.unlocked.allocation.allow_recursive_score_lane_spillover:
|
|
140
|
+
raise ValueError("unlocked branch forbids recursive spillover")
|
|
141
|
+
|
|
142
|
+
@property
|
|
143
|
+
def primary(self) -> SupportGuardedFrozenHurdleMaterializedActionScorer:
|
|
144
|
+
"""Canonical support telemetry; both branches use the same fit."""
|
|
145
|
+
|
|
146
|
+
return self.locked.primary
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
@dataclass(frozen=True, slots=True)
|
|
150
|
+
class RacingSemanticCoverageResidualPortfolio:
|
|
151
|
+
"""Calibrated and forecast-neutral slates behind one generic race."""
|
|
152
|
+
|
|
153
|
+
calibrated_locked: SemanticCoverageResidualPortfolio
|
|
154
|
+
calibrated_unlocked: SemanticCoverageResidualPortfolio
|
|
155
|
+
forecast_neutral_unlocked: SemanticCoverageResidualPortfolio
|
|
156
|
+
planner: PrecommittedPortfolioRacePlanner
|
|
157
|
+
pilot_outcome_projector: (
|
|
158
|
+
CandidateArchiveMarginalPilotOutcomeProjector
|
|
159
|
+
)
|
|
160
|
+
|
|
161
|
+
def __post_init__(self) -> None:
|
|
162
|
+
for value in (
|
|
163
|
+
self.calibrated_locked,
|
|
164
|
+
self.calibrated_unlocked,
|
|
165
|
+
self.forecast_neutral_unlocked,
|
|
166
|
+
):
|
|
167
|
+
if type(value) is not SemanticCoverageResidualPortfolio:
|
|
168
|
+
raise TypeError("race portfolios must be exact")
|
|
169
|
+
value.__post_init__()
|
|
170
|
+
if type(self.planner) is not PrecommittedPortfolioRacePlanner:
|
|
171
|
+
raise TypeError("race planner must be exact")
|
|
172
|
+
self.planner.__post_init__()
|
|
173
|
+
if (
|
|
174
|
+
type(self.pilot_outcome_projector)
|
|
175
|
+
is not CandidateArchiveMarginalPilotOutcomeProjector
|
|
176
|
+
):
|
|
177
|
+
raise TypeError("pilot_outcome_projector must be exact")
|
|
178
|
+
self.pilot_outcome_projector.__post_init__()
|
|
179
|
+
if self.calibrated_locked.allocation.allow_recursive_score_lane_spillover:
|
|
180
|
+
raise ValueError("calibrated locked branch permits spillover")
|
|
181
|
+
if not (
|
|
182
|
+
self.calibrated_unlocked.allocation.allow_recursive_score_lane_spillover
|
|
183
|
+
and self.forecast_neutral_unlocked.allocation.allow_recursive_score_lane_spillover
|
|
184
|
+
):
|
|
185
|
+
raise ValueError("race unlocked branches must permit spillover")
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
@dataclass(frozen=True, slots=True)
|
|
189
|
+
class ForecastGeometryArmSpec:
|
|
190
|
+
"""One interceptable, workload-neutral consequence-policy branch."""
|
|
191
|
+
|
|
192
|
+
branch_id: str
|
|
193
|
+
mode: ForecastGeometryPortfolioMode
|
|
194
|
+
scenario_id: str
|
|
195
|
+
adverse_scenario_id: str | None = None
|
|
196
|
+
risk_aversion: float = 0.0
|
|
197
|
+
prior_mean: float = 0.5
|
|
198
|
+
|
|
199
|
+
def __post_init__(self) -> None:
|
|
200
|
+
if type(self.branch_id) is not str or not self.branch_id:
|
|
201
|
+
raise ValueError("branch_id must be non-empty")
|
|
202
|
+
if type(self.mode) is not ForecastGeometryPortfolioMode:
|
|
203
|
+
raise TypeError("mode must be an exact forecast geometry mode")
|
|
204
|
+
if type(self.scenario_id) is not str or not self.scenario_id:
|
|
205
|
+
raise ValueError("scenario_id must be non-empty")
|
|
206
|
+
if self.adverse_scenario_id is not None and (
|
|
207
|
+
type(self.adverse_scenario_id) is not str
|
|
208
|
+
or not self.adverse_scenario_id
|
|
209
|
+
):
|
|
210
|
+
raise ValueError("adverse_scenario_id must be non-empty or None")
|
|
211
|
+
for value, name in (
|
|
212
|
+
(self.risk_aversion, "risk_aversion"),
|
|
213
|
+
(self.prior_mean, "prior_mean"),
|
|
214
|
+
):
|
|
215
|
+
if type(value) is not float:
|
|
216
|
+
raise TypeError(f"{name} must be an exact float")
|
|
217
|
+
if self.risk_aversion < 0.0:
|
|
218
|
+
raise ValueError("risk_aversion must be non-negative")
|
|
219
|
+
if not 0.0 <= self.prior_mean <= 1.0:
|
|
220
|
+
raise ValueError("prior_mean must lie in [0, 1]")
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
DEFAULT_FORECAST_GEOMETRY_ARM_SPECS = (
|
|
224
|
+
ForecastGeometryArmSpec(
|
|
225
|
+
branch_id="forecast_favorable",
|
|
226
|
+
mode=ForecastGeometryPortfolioMode.SCENARIO,
|
|
227
|
+
scenario_id="favorable",
|
|
228
|
+
),
|
|
229
|
+
ForecastGeometryArmSpec(
|
|
230
|
+
branch_id="forecast_median",
|
|
231
|
+
mode=ForecastGeometryPortfolioMode.SCENARIO,
|
|
232
|
+
scenario_id="median",
|
|
233
|
+
),
|
|
234
|
+
ForecastGeometryArmSpec(
|
|
235
|
+
branch_id="forecast_reliability",
|
|
236
|
+
mode=(
|
|
237
|
+
ForecastGeometryPortfolioMode.RELIABILITY_ADJUSTED_SCENARIO
|
|
238
|
+
),
|
|
239
|
+
scenario_id="median",
|
|
240
|
+
),
|
|
241
|
+
ForecastGeometryArmSpec(
|
|
242
|
+
branch_id="forecast_risk",
|
|
243
|
+
mode=ForecastGeometryPortfolioMode.RISK_ADJUSTED_SCENARIO,
|
|
244
|
+
scenario_id="median",
|
|
245
|
+
adverse_scenario_id="adverse",
|
|
246
|
+
risk_aversion=1.0,
|
|
247
|
+
),
|
|
248
|
+
)
|
|
249
|
+
|
|
250
|
+
|
|
251
|
+
@dataclass(frozen=True, slots=True)
|
|
252
|
+
class ForecastGeometryRacingResidualPortfolio:
|
|
253
|
+
"""Protected structural arm plus typed consequence-geometry arms."""
|
|
254
|
+
|
|
255
|
+
forecast_neutral: SemanticCoverageResidualPortfolio
|
|
256
|
+
forecast_arms: tuple[
|
|
257
|
+
tuple[str, ForecastGeometryPortfolioPolicy],
|
|
258
|
+
...,
|
|
259
|
+
]
|
|
260
|
+
planner: PrecommittedPortfolioRacePlanner
|
|
261
|
+
pilot_outcome_projector: CandidateArchiveMarginalPilotOutcomeProjector
|
|
262
|
+
|
|
263
|
+
def __post_init__(self) -> None:
|
|
264
|
+
if type(self.forecast_neutral) is not SemanticCoverageResidualPortfolio:
|
|
265
|
+
raise TypeError("forecast_neutral must be an exact portfolio")
|
|
266
|
+
self.forecast_neutral.__post_init__()
|
|
267
|
+
if not self.forecast_neutral.allocation.allow_recursive_score_lane_spillover:
|
|
268
|
+
raise ValueError("forecast-neutral branch must permit spillover")
|
|
269
|
+
if (
|
|
270
|
+
type(self.forecast_arms) is not tuple
|
|
271
|
+
or not self.forecast_arms
|
|
272
|
+
or self.forecast_arms
|
|
273
|
+
!= tuple(sorted(self.forecast_arms, key=lambda value: value[0]))
|
|
274
|
+
):
|
|
275
|
+
raise ValueError("forecast_arms must be non-empty and canonical")
|
|
276
|
+
branch_ids = []
|
|
277
|
+
for branch_id, policy in self.forecast_arms:
|
|
278
|
+
if type(branch_id) is not str or not branch_id:
|
|
279
|
+
raise ValueError("forecast arm branch IDs must be non-empty")
|
|
280
|
+
if type(policy) is not ForecastGeometryPortfolioPolicy:
|
|
281
|
+
raise TypeError("forecast arms must contain exact policies")
|
|
282
|
+
policy.__post_init__()
|
|
283
|
+
branch_ids.append(branch_id)
|
|
284
|
+
if len(branch_ids) != len(set(branch_ids)):
|
|
285
|
+
raise ValueError("forecast arms repeat a branch ID")
|
|
286
|
+
if type(self.planner) is not PrecommittedPortfolioRacePlanner:
|
|
287
|
+
raise TypeError("planner must be exact")
|
|
288
|
+
self.planner.__post_init__()
|
|
289
|
+
expected_ids = tuple(sorted(("forecast_neutral", *branch_ids)))
|
|
290
|
+
if tuple(
|
|
291
|
+
value.branch_id for value in self.planner.branch_bindings
|
|
292
|
+
) != expected_ids:
|
|
293
|
+
raise ValueError("planner branches differ from forecast arms")
|
|
294
|
+
if (
|
|
295
|
+
type(self.pilot_outcome_projector)
|
|
296
|
+
is not CandidateArchiveMarginalPilotOutcomeProjector
|
|
297
|
+
):
|
|
298
|
+
raise TypeError("pilot_outcome_projector must be exact")
|
|
299
|
+
self.pilot_outcome_projector.__post_init__()
|
|
300
|
+
|
|
301
|
+
|
|
302
|
+
def compose_semantic_coverage_residual_portfolio(
|
|
303
|
+
*,
|
|
304
|
+
projection: MaterializedActionFeatureProjectionPort,
|
|
305
|
+
semantic_projection: MaterializedActionSemanticCellProjectionPort,
|
|
306
|
+
primary_positive_model: FrozenStandardizedLinearModel,
|
|
307
|
+
primary_magnitude_model: FrozenStandardizedLinearModel,
|
|
308
|
+
primary_source_fit_sha256: str,
|
|
309
|
+
transport_positive_model: FrozenStandardizedLinearModel,
|
|
310
|
+
transport_magnitude_model: FrozenStandardizedLinearModel,
|
|
311
|
+
transport_source_fit_sha256: str,
|
|
312
|
+
broker: RegretBrokeredMaterializedActionPolicy,
|
|
313
|
+
lineage_capacity_fraction: float = (
|
|
314
|
+
DEFAULT_LINEAGE_CAPACITY_FRACTION
|
|
315
|
+
),
|
|
316
|
+
coverage_strength: float = DEFAULT_COVERAGE_STRENGTH,
|
|
317
|
+
allow_recursive_score_lane_spillover: bool = False,
|
|
318
|
+
hard_feasibility: HardFeasibilityPort | None = None,
|
|
319
|
+
feature_group_authorities: tuple[tuple[str, float], ...] | None = None,
|
|
320
|
+
) -> SemanticCoverageResidualPortfolio:
|
|
321
|
+
"""Compose the same four-lane mechanism for any workload or model."""
|
|
322
|
+
|
|
323
|
+
expected_group_ids = tuple(
|
|
324
|
+
sorted(
|
|
325
|
+
group_id
|
|
326
|
+
for group_id, _feature_names
|
|
327
|
+
in PORTABLE_RESIDUAL_CONSEQUENCE_FEATURE_GROUPS
|
|
328
|
+
)
|
|
329
|
+
)
|
|
330
|
+
authorities = (
|
|
331
|
+
tuple((group_id, 1.0) for group_id in expected_group_ids)
|
|
332
|
+
if feature_group_authorities is None
|
|
333
|
+
else feature_group_authorities
|
|
334
|
+
)
|
|
335
|
+
if (
|
|
336
|
+
type(authorities) is not tuple
|
|
337
|
+
or authorities != tuple(sorted(authorities))
|
|
338
|
+
or tuple(value[0] for value in authorities) != expected_group_ids
|
|
339
|
+
):
|
|
340
|
+
raise ValueError(
|
|
341
|
+
"feature_group_authorities must exactly cover portable groups"
|
|
342
|
+
)
|
|
343
|
+
authority_by_group = dict(authorities)
|
|
344
|
+
groups = tuple(
|
|
345
|
+
FrozenFeatureSupportGroup(
|
|
346
|
+
group_id=group_id,
|
|
347
|
+
feature_names=tuple(feature_names),
|
|
348
|
+
base_authority=authority_by_group[group_id],
|
|
349
|
+
)
|
|
350
|
+
for group_id, feature_names in sorted(
|
|
351
|
+
PORTABLE_RESIDUAL_CONSEQUENCE_FEATURE_GROUPS
|
|
352
|
+
)
|
|
353
|
+
)
|
|
354
|
+
primary = SupportGuardedFrozenHurdleMaterializedActionScorer(
|
|
355
|
+
scorer_id=PRIMARY_SCORER_ID,
|
|
356
|
+
projection=projection,
|
|
357
|
+
positive_model=primary_positive_model,
|
|
358
|
+
magnitude_model=primary_magnitude_model,
|
|
359
|
+
score_kind=FrozenHurdleScoreKind.POSITIVE_PROBABILITY,
|
|
360
|
+
source_fit_sha256=primary_source_fit_sha256,
|
|
361
|
+
support_groups=groups,
|
|
362
|
+
)
|
|
363
|
+
transport = WinsorizedFrozenHurdleMaterializedActionScorer(
|
|
364
|
+
scorer_id=TRANSPORT_SCORER_ID,
|
|
365
|
+
projection=projection,
|
|
366
|
+
positive_model=transport_positive_model,
|
|
367
|
+
magnitude_model=transport_magnitude_model,
|
|
368
|
+
score_kind=FrozenHurdleScoreKind.EXPECTED_POSITIVE_MAGNITUDE,
|
|
369
|
+
source_fit_sha256=transport_source_fit_sha256,
|
|
370
|
+
winsorization_limit=3.0,
|
|
371
|
+
)
|
|
372
|
+
provider_native = NativeRankMaterializedActionScorer()
|
|
373
|
+
target_empirical = TargetEmpiricalReturnMaterializedActionScorer(
|
|
374
|
+
broker=broker
|
|
375
|
+
)
|
|
376
|
+
scorers = tuple(
|
|
377
|
+
sorted(
|
|
378
|
+
(primary, transport, provider_native, target_empirical),
|
|
379
|
+
key=lambda value: value.scorer_id,
|
|
380
|
+
)
|
|
381
|
+
)
|
|
382
|
+
score_lane_capacity = 1.0 - lineage_capacity_fraction
|
|
383
|
+
allocation = SemanticCoverageScorePortfolioPolicy(
|
|
384
|
+
scorers=scorers,
|
|
385
|
+
scorer_capacity_fractions=tuple(
|
|
386
|
+
sorted(
|
|
387
|
+
(
|
|
388
|
+
(
|
|
389
|
+
primary.scorer_id,
|
|
390
|
+
score_lane_capacity * (2.0 / 3.0),
|
|
391
|
+
),
|
|
392
|
+
(transport.scorer_id, 0.0),
|
|
393
|
+
(
|
|
394
|
+
provider_native.scorer_id,
|
|
395
|
+
score_lane_capacity * (1.0 / 6.0),
|
|
396
|
+
),
|
|
397
|
+
(
|
|
398
|
+
target_empirical.scorer_id,
|
|
399
|
+
score_lane_capacity * (1.0 / 6.0),
|
|
400
|
+
),
|
|
401
|
+
)
|
|
402
|
+
)
|
|
403
|
+
),
|
|
404
|
+
lineage_scorer_id=transport.scorer_id,
|
|
405
|
+
lineage_member_scorer_id=provider_native.scorer_id,
|
|
406
|
+
lineage_deficit_refill_scorer_id=primary.scorer_id,
|
|
407
|
+
lineage_capacity_fraction=lineage_capacity_fraction,
|
|
408
|
+
semantic_projection=semantic_projection,
|
|
409
|
+
coverage_strength=coverage_strength,
|
|
410
|
+
allow_recursive_score_lane_spillover=(
|
|
411
|
+
allow_recursive_score_lane_spillover
|
|
412
|
+
),
|
|
413
|
+
hard_feasibility=hard_feasibility,
|
|
414
|
+
)
|
|
415
|
+
return SemanticCoverageResidualPortfolio(
|
|
416
|
+
primary=primary,
|
|
417
|
+
transport=transport,
|
|
418
|
+
provider_native=provider_native,
|
|
419
|
+
target_empirical=target_empirical,
|
|
420
|
+
allocation=allocation,
|
|
421
|
+
)
|
|
422
|
+
|
|
423
|
+
|
|
424
|
+
def compose_sequential_semantic_coverage_residual_portfolio(
|
|
425
|
+
*,
|
|
426
|
+
prior_candidates: tuple[EvolutionCandidate, ...],
|
|
427
|
+
archive_utility: CandidateArchiveConsequenceUtilityPort,
|
|
428
|
+
projection: MaterializedActionFeatureProjectionPort,
|
|
429
|
+
semantic_projection: MaterializedActionSemanticCellProjectionPort,
|
|
430
|
+
primary_positive_model: FrozenStandardizedLinearModel,
|
|
431
|
+
primary_magnitude_model: FrozenStandardizedLinearModel,
|
|
432
|
+
primary_source_fit_sha256: str,
|
|
433
|
+
transport_positive_model: FrozenStandardizedLinearModel,
|
|
434
|
+
transport_magnitude_model: FrozenStandardizedLinearModel,
|
|
435
|
+
transport_source_fit_sha256: str,
|
|
436
|
+
broker: RegretBrokeredMaterializedActionPolicy,
|
|
437
|
+
lineage_capacity_fraction: float = (
|
|
438
|
+
DEFAULT_LINEAGE_CAPACITY_FRACTION
|
|
439
|
+
),
|
|
440
|
+
coverage_strength: float = DEFAULT_COVERAGE_STRENGTH,
|
|
441
|
+
hard_feasibility: HardFeasibilityPort | None = None,
|
|
442
|
+
) -> SequentialSemanticCoverageResidualPortfolio:
|
|
443
|
+
"""Compose outcome-blind locked/unlocked branches for any workload."""
|
|
444
|
+
|
|
445
|
+
common = {
|
|
446
|
+
"projection": projection,
|
|
447
|
+
"semantic_projection": semantic_projection,
|
|
448
|
+
"primary_positive_model": primary_positive_model,
|
|
449
|
+
"primary_magnitude_model": primary_magnitude_model,
|
|
450
|
+
"primary_source_fit_sha256": primary_source_fit_sha256,
|
|
451
|
+
"transport_positive_model": transport_positive_model,
|
|
452
|
+
"transport_magnitude_model": transport_magnitude_model,
|
|
453
|
+
"transport_source_fit_sha256": transport_source_fit_sha256,
|
|
454
|
+
"broker": broker,
|
|
455
|
+
"lineage_capacity_fraction": lineage_capacity_fraction,
|
|
456
|
+
"coverage_strength": coverage_strength,
|
|
457
|
+
"hard_feasibility": hard_feasibility,
|
|
458
|
+
}
|
|
459
|
+
locked = compose_semantic_coverage_residual_portfolio(
|
|
460
|
+
**common,
|
|
461
|
+
allow_recursive_score_lane_spillover=False,
|
|
462
|
+
)
|
|
463
|
+
unlocked = compose_semantic_coverage_residual_portfolio(
|
|
464
|
+
**common,
|
|
465
|
+
allow_recursive_score_lane_spillover=True,
|
|
466
|
+
)
|
|
467
|
+
return SequentialSemanticCoverageResidualPortfolio(
|
|
468
|
+
locked=locked,
|
|
469
|
+
unlocked=unlocked,
|
|
470
|
+
planner=FrozenBranchSequentialLineagePlanner(
|
|
471
|
+
locked_policy=locked.allocation,
|
|
472
|
+
unlocked_policy=unlocked.allocation,
|
|
473
|
+
),
|
|
474
|
+
pilot_outcome_projector=(
|
|
475
|
+
CandidateArchiveMarginalPilotOutcomeProjector(
|
|
476
|
+
prior_candidates=prior_candidates,
|
|
477
|
+
utility=archive_utility,
|
|
478
|
+
)
|
|
479
|
+
),
|
|
480
|
+
)
|
|
481
|
+
|
|
482
|
+
|
|
483
|
+
def compose_racing_semantic_coverage_residual_portfolio(
|
|
484
|
+
*,
|
|
485
|
+
prior_candidates: tuple[EvolutionCandidate, ...],
|
|
486
|
+
archive_utility: CandidateArchiveConsequenceUtilityPort,
|
|
487
|
+
projection: MaterializedActionFeatureProjectionPort,
|
|
488
|
+
semantic_projection: MaterializedActionSemanticCellProjectionPort,
|
|
489
|
+
primary_positive_model: FrozenStandardizedLinearModel,
|
|
490
|
+
primary_magnitude_model: FrozenStandardizedLinearModel,
|
|
491
|
+
primary_source_fit_sha256: str,
|
|
492
|
+
transport_positive_model: FrozenStandardizedLinearModel,
|
|
493
|
+
transport_magnitude_model: FrozenStandardizedLinearModel,
|
|
494
|
+
transport_source_fit_sha256: str,
|
|
495
|
+
broker: RegretBrokeredMaterializedActionPolicy,
|
|
496
|
+
lineage_capacity_fraction: float = (
|
|
497
|
+
DEFAULT_LINEAGE_CAPACITY_FRACTION
|
|
498
|
+
),
|
|
499
|
+
coverage_strength: float = DEFAULT_COVERAGE_STRENGTH,
|
|
500
|
+
pilot_slots: int = 3,
|
|
501
|
+
disagreement_policy: PortfolioRaceDisagreementPolicyPort | None = None,
|
|
502
|
+
prior_projection: PortfolioRacePriorProjectionPort | None = None,
|
|
503
|
+
source_group_projection: (
|
|
504
|
+
MaterializedActionSourceGroupProjectionPort | None
|
|
505
|
+
) = None,
|
|
506
|
+
minimum_source_exposures: tuple[tuple[str, int], ...] = (),
|
|
507
|
+
hard_feasibility: HardFeasibilityPort | None = None,
|
|
508
|
+
) -> RacingSemanticCoverageResidualPortfolio:
|
|
509
|
+
"""Compose three portable complete slates and a branch-level pilot race."""
|
|
510
|
+
|
|
511
|
+
common = {
|
|
512
|
+
"projection": projection,
|
|
513
|
+
"semantic_projection": semantic_projection,
|
|
514
|
+
"primary_positive_model": primary_positive_model,
|
|
515
|
+
"primary_magnitude_model": primary_magnitude_model,
|
|
516
|
+
"primary_source_fit_sha256": primary_source_fit_sha256,
|
|
517
|
+
"transport_positive_model": transport_positive_model,
|
|
518
|
+
"transport_magnitude_model": transport_magnitude_model,
|
|
519
|
+
"transport_source_fit_sha256": transport_source_fit_sha256,
|
|
520
|
+
"broker": broker,
|
|
521
|
+
"lineage_capacity_fraction": lineage_capacity_fraction,
|
|
522
|
+
"coverage_strength": coverage_strength,
|
|
523
|
+
"hard_feasibility": hard_feasibility,
|
|
524
|
+
}
|
|
525
|
+
calibrated_locked = compose_semantic_coverage_residual_portfolio(
|
|
526
|
+
**common,
|
|
527
|
+
allow_recursive_score_lane_spillover=False,
|
|
528
|
+
)
|
|
529
|
+
calibrated_unlocked = compose_semantic_coverage_residual_portfolio(
|
|
530
|
+
**common,
|
|
531
|
+
allow_recursive_score_lane_spillover=True,
|
|
532
|
+
)
|
|
533
|
+
forecast_neutral_unlocked = (
|
|
534
|
+
compose_semantic_coverage_residual_portfolio(
|
|
535
|
+
**common,
|
|
536
|
+
allow_recursive_score_lane_spillover=True,
|
|
537
|
+
feature_group_authorities=(
|
|
538
|
+
FORECAST_NEUTRAL_FEATURE_GROUP_AUTHORITIES
|
|
539
|
+
),
|
|
540
|
+
)
|
|
541
|
+
)
|
|
542
|
+
if (source_group_projection is None) != (
|
|
543
|
+
not minimum_source_exposures
|
|
544
|
+
):
|
|
545
|
+
raise ValueError(
|
|
546
|
+
"source-group projection and minimum exposures must co-occur"
|
|
547
|
+
)
|
|
548
|
+
|
|
549
|
+
def allocation(
|
|
550
|
+
value: SemanticCoverageResidualPortfolio,
|
|
551
|
+
):
|
|
552
|
+
if source_group_projection is None:
|
|
553
|
+
return value.allocation
|
|
554
|
+
return MinimumSourceExposureAllocationPolicy(
|
|
555
|
+
base_policy=value.allocation,
|
|
556
|
+
priority_scorer=value.primary,
|
|
557
|
+
source_projection=source_group_projection,
|
|
558
|
+
minimum_exposures=minimum_source_exposures,
|
|
559
|
+
)
|
|
560
|
+
|
|
561
|
+
return RacingSemanticCoverageResidualPortfolio(
|
|
562
|
+
calibrated_locked=calibrated_locked,
|
|
563
|
+
calibrated_unlocked=calibrated_unlocked,
|
|
564
|
+
forecast_neutral_unlocked=forecast_neutral_unlocked,
|
|
565
|
+
planner=PrecommittedPortfolioRacePlanner(
|
|
566
|
+
branch_bindings=(
|
|
567
|
+
PortfolioRacePolicyBinding(
|
|
568
|
+
branch_id="calibrated_locked",
|
|
569
|
+
policy=allocation(calibrated_locked),
|
|
570
|
+
),
|
|
571
|
+
PortfolioRacePolicyBinding(
|
|
572
|
+
branch_id="calibrated_unlocked",
|
|
573
|
+
policy=allocation(calibrated_unlocked),
|
|
574
|
+
),
|
|
575
|
+
PortfolioRacePolicyBinding(
|
|
576
|
+
branch_id="forecast_neutral_unlocked",
|
|
577
|
+
policy=allocation(forecast_neutral_unlocked),
|
|
578
|
+
),
|
|
579
|
+
),
|
|
580
|
+
pilot_policy=None,
|
|
581
|
+
pilot_slots=pilot_slots,
|
|
582
|
+
disagreement_policy=disagreement_policy,
|
|
583
|
+
prior_projection=prior_projection,
|
|
584
|
+
),
|
|
585
|
+
pilot_outcome_projector=(
|
|
586
|
+
CandidateArchiveMarginalPilotOutcomeProjector(
|
|
587
|
+
prior_candidates=prior_candidates,
|
|
588
|
+
utility=archive_utility,
|
|
589
|
+
)
|
|
590
|
+
),
|
|
591
|
+
)
|
|
592
|
+
|
|
593
|
+
|
|
594
|
+
def compose_forecast_geometry_racing_residual_portfolio(
|
|
595
|
+
*,
|
|
596
|
+
prior_candidates: tuple[EvolutionCandidate, ...],
|
|
597
|
+
archive_utility: CandidateArchivePortfolioConsequenceUtilityPort,
|
|
598
|
+
forecast_geometry_projection: (
|
|
599
|
+
MaterializedForecastGeometryProjectionPort
|
|
600
|
+
),
|
|
601
|
+
projection: MaterializedActionFeatureProjectionPort,
|
|
602
|
+
semantic_projection: MaterializedActionSemanticCellProjectionPort,
|
|
603
|
+
primary_positive_model: FrozenStandardizedLinearModel,
|
|
604
|
+
primary_magnitude_model: FrozenStandardizedLinearModel,
|
|
605
|
+
primary_source_fit_sha256: str,
|
|
606
|
+
transport_positive_model: FrozenStandardizedLinearModel,
|
|
607
|
+
transport_magnitude_model: FrozenStandardizedLinearModel,
|
|
608
|
+
transport_source_fit_sha256: str,
|
|
609
|
+
broker: RegretBrokeredMaterializedActionPolicy,
|
|
610
|
+
lineage_capacity_fraction: float = (
|
|
611
|
+
DEFAULT_LINEAGE_CAPACITY_FRACTION
|
|
612
|
+
),
|
|
613
|
+
coverage_strength: float = DEFAULT_COVERAGE_STRENGTH,
|
|
614
|
+
pilot_slots: int = 3,
|
|
615
|
+
disagreement_policy: PortfolioRaceDisagreementPolicyPort | None = None,
|
|
616
|
+
prior_projection: PortfolioRacePriorProjectionPort | None = None,
|
|
617
|
+
arm_specs: tuple[ForecastGeometryArmSpec, ...] = (
|
|
618
|
+
DEFAULT_FORECAST_GEOMETRY_ARM_SPECS
|
|
619
|
+
),
|
|
620
|
+
forecast_neutral_prior_mean: float = 0.5,
|
|
621
|
+
max_exact_reliability_members: int = 8,
|
|
622
|
+
source_group_projection: (
|
|
623
|
+
MaterializedActionSourceGroupProjectionPort | None
|
|
624
|
+
) = None,
|
|
625
|
+
minimum_source_exposures: tuple[tuple[str, int], ...] = (),
|
|
626
|
+
hard_feasibility: HardFeasibilityPort | None = None,
|
|
627
|
+
) -> ForecastGeometryRacingResidualPortfolio:
|
|
628
|
+
"""Compose protected scenario arms behind the same generic race.
|
|
629
|
+
|
|
630
|
+
Workload adapters supply only ordinary objective senses through the
|
|
631
|
+
forecast-geometry projection and the authoritative joint archive utility.
|
|
632
|
+
Arm definitions, source floors, pilot accounting, and current-outcome
|
|
633
|
+
exclusion remain inside reusable application policies.
|
|
634
|
+
"""
|
|
635
|
+
|
|
636
|
+
if (
|
|
637
|
+
type(arm_specs) is not tuple
|
|
638
|
+
or not arm_specs
|
|
639
|
+
or any(type(value) is not ForecastGeometryArmSpec for value in arm_specs)
|
|
640
|
+
):
|
|
641
|
+
raise TypeError("arm_specs must contain exact non-empty specs")
|
|
642
|
+
for value in arm_specs:
|
|
643
|
+
value.__post_init__()
|
|
644
|
+
branch_ids = tuple(value.branch_id for value in arm_specs)
|
|
645
|
+
if (
|
|
646
|
+
branch_ids != tuple(sorted(set(branch_ids)))
|
|
647
|
+
or "forecast_neutral" in branch_ids
|
|
648
|
+
):
|
|
649
|
+
raise ValueError(
|
|
650
|
+
"arm_specs must be canonical, unique, and reserve forecast_neutral"
|
|
651
|
+
)
|
|
652
|
+
if (
|
|
653
|
+
type(forecast_neutral_prior_mean) is not float
|
|
654
|
+
or not 0.0 <= forecast_neutral_prior_mean <= 1.0
|
|
655
|
+
):
|
|
656
|
+
raise ValueError("forecast_neutral_prior_mean must lie in [0, 1]")
|
|
657
|
+
if (source_group_projection is None) != (
|
|
658
|
+
not minimum_source_exposures
|
|
659
|
+
):
|
|
660
|
+
raise ValueError(
|
|
661
|
+
"source-group projection and minimum exposures must co-occur"
|
|
662
|
+
)
|
|
663
|
+
|
|
664
|
+
forecast_neutral = compose_semantic_coverage_residual_portfolio(
|
|
665
|
+
projection=projection,
|
|
666
|
+
semantic_projection=semantic_projection,
|
|
667
|
+
primary_positive_model=primary_positive_model,
|
|
668
|
+
primary_magnitude_model=primary_magnitude_model,
|
|
669
|
+
primary_source_fit_sha256=primary_source_fit_sha256,
|
|
670
|
+
transport_positive_model=transport_positive_model,
|
|
671
|
+
transport_magnitude_model=transport_magnitude_model,
|
|
672
|
+
transport_source_fit_sha256=transport_source_fit_sha256,
|
|
673
|
+
broker=broker,
|
|
674
|
+
lineage_capacity_fraction=lineage_capacity_fraction,
|
|
675
|
+
coverage_strength=coverage_strength,
|
|
676
|
+
allow_recursive_score_lane_spillover=True,
|
|
677
|
+
hard_feasibility=hard_feasibility,
|
|
678
|
+
feature_group_authorities=(
|
|
679
|
+
FORECAST_NEUTRAL_FEATURE_GROUP_AUTHORITIES
|
|
680
|
+
),
|
|
681
|
+
)
|
|
682
|
+
forecast_arms = tuple(
|
|
683
|
+
(
|
|
684
|
+
spec.branch_id,
|
|
685
|
+
ForecastGeometryPortfolioPolicy(
|
|
686
|
+
prior_candidates=prior_candidates,
|
|
687
|
+
projection=forecast_geometry_projection,
|
|
688
|
+
archive_utility=archive_utility,
|
|
689
|
+
mode=spec.mode,
|
|
690
|
+
scenario_id=spec.scenario_id,
|
|
691
|
+
adverse_scenario_id=spec.adverse_scenario_id,
|
|
692
|
+
risk_aversion=spec.risk_aversion,
|
|
693
|
+
max_exact_reliability_members=(
|
|
694
|
+
max_exact_reliability_members
|
|
695
|
+
),
|
|
696
|
+
hard_feasibility=hard_feasibility,
|
|
697
|
+
),
|
|
698
|
+
)
|
|
699
|
+
for spec in arm_specs
|
|
700
|
+
)
|
|
701
|
+
|
|
702
|
+
def with_source_floor(
|
|
703
|
+
policy: MaterializedActionAllocationPolicyPort,
|
|
704
|
+
) -> MaterializedActionAllocationPolicyPort:
|
|
705
|
+
if source_group_projection is None:
|
|
706
|
+
return policy
|
|
707
|
+
return MinimumSourceExposureAllocationPolicy(
|
|
708
|
+
base_policy=policy,
|
|
709
|
+
priority_scorer=forecast_neutral.primary,
|
|
710
|
+
source_projection=source_group_projection,
|
|
711
|
+
minimum_exposures=minimum_source_exposures,
|
|
712
|
+
)
|
|
713
|
+
|
|
714
|
+
prior_by_branch = {
|
|
715
|
+
value.branch_id: value.prior_mean for value in arm_specs
|
|
716
|
+
}
|
|
717
|
+
bindings = [
|
|
718
|
+
PortfolioRacePolicyBinding(
|
|
719
|
+
branch_id="forecast_neutral",
|
|
720
|
+
policy=with_source_floor(forecast_neutral.allocation),
|
|
721
|
+
prior_mean=forecast_neutral_prior_mean,
|
|
722
|
+
)
|
|
723
|
+
]
|
|
724
|
+
bindings.extend(
|
|
725
|
+
PortfolioRacePolicyBinding(
|
|
726
|
+
branch_id=branch_id,
|
|
727
|
+
policy=with_source_floor(policy),
|
|
728
|
+
prior_mean=prior_by_branch[branch_id],
|
|
729
|
+
)
|
|
730
|
+
for branch_id, policy in forecast_arms
|
|
731
|
+
)
|
|
732
|
+
planner = PrecommittedPortfolioRacePlanner(
|
|
733
|
+
branch_bindings=tuple(
|
|
734
|
+
sorted(bindings, key=lambda value: value.branch_id)
|
|
735
|
+
),
|
|
736
|
+
pilot_policy=None,
|
|
737
|
+
pilot_slots=pilot_slots,
|
|
738
|
+
disagreement_policy=disagreement_policy,
|
|
739
|
+
prior_projection=prior_projection,
|
|
740
|
+
)
|
|
741
|
+
return ForecastGeometryRacingResidualPortfolio(
|
|
742
|
+
forecast_neutral=forecast_neutral,
|
|
743
|
+
forecast_arms=forecast_arms,
|
|
744
|
+
planner=planner,
|
|
745
|
+
pilot_outcome_projector=(
|
|
746
|
+
CandidateArchiveMarginalPilotOutcomeProjector(
|
|
747
|
+
prior_candidates=prior_candidates,
|
|
748
|
+
utility=archive_utility,
|
|
749
|
+
)
|
|
750
|
+
),
|
|
751
|
+
)
|
|
752
|
+
|
|
753
|
+
|
|
754
|
+
__all__ = [
|
|
755
|
+
"DEFAULT_FORECAST_GEOMETRY_ARM_SPECS",
|
|
756
|
+
"DEFAULT_COVERAGE_STRENGTH",
|
|
757
|
+
"DEFAULT_LINEAGE_CAPACITY_FRACTION",
|
|
758
|
+
"FORECAST_NEUTRAL_FEATURE_GROUP_AUTHORITIES",
|
|
759
|
+
"ForecastGeometryArmSpec",
|
|
760
|
+
"ForecastGeometryRacingResidualPortfolio",
|
|
761
|
+
"PRIMARY_SCORER_ID",
|
|
762
|
+
"TRANSPORT_SCORER_ID",
|
|
763
|
+
"RacingSemanticCoverageResidualPortfolio",
|
|
764
|
+
"SemanticCoverageResidualPortfolio",
|
|
765
|
+
"SequentialSemanticCoverageResidualPortfolio",
|
|
766
|
+
"compose_forecast_geometry_racing_residual_portfolio",
|
|
767
|
+
"compose_racing_semantic_coverage_residual_portfolio",
|
|
768
|
+
"compose_semantic_coverage_residual_portfolio",
|
|
769
|
+
"compose_sequential_semantic_coverage_residual_portfolio",
|
|
770
|
+
]
|