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,330 @@
|
|
|
1
|
+
"""Authenticated, workload-neutral Pareto-frontier context projection.
|
|
2
|
+
|
|
3
|
+
The projector accepts only a frozen affine archive cutoff and the selected
|
|
4
|
+
parent's already-evaluated objective vector. It exposes normalized geometry
|
|
5
|
+
in decimal text so language models are not asked to interpret binary64 hex
|
|
6
|
+
exponents. No option outcome, current-wave result, model profile, provider
|
|
7
|
+
field, workload identifier, or action name is consulted.
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
from __future__ import annotations
|
|
11
|
+
|
|
12
|
+
import hashlib
|
|
13
|
+
import math
|
|
14
|
+
from dataclasses import dataclass
|
|
15
|
+
from enum import Enum
|
|
16
|
+
from typing import TYPE_CHECKING
|
|
17
|
+
|
|
18
|
+
from agent_evolve.domain.typed_json import FrozenJsonObject, freeze_json, thaw_json
|
|
19
|
+
from agent_evolve.ports.archive_context import (
|
|
20
|
+
CampaignPortfolioArchiveContextProjection,
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
if TYPE_CHECKING:
|
|
24
|
+
from agent_evolve.application.agentic_evolution import EvolutionCandidate
|
|
25
|
+
from agent_evolve.application.evolution_campaign import ArchiveUtilitySnapshot
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
PROJECTOR_ID = "authenticated_affine_frontier_context"
|
|
29
|
+
PROJECTOR_VERSION = 1
|
|
30
|
+
PROJECTOR_DEFINITION_SHA256 = hashlib.sha256(
|
|
31
|
+
b"agent-evolve:authenticated-affine-frontier-context:v1;"
|
|
32
|
+
b"input=frozen-affine-archive-cutoff,selected-evaluated-parent;"
|
|
33
|
+
b"dimensions=2-or-3;orientation=normalized-lower-is-better;"
|
|
34
|
+
b"archive-points,parent-point,axis-gaps,reference-directions=true;"
|
|
35
|
+
b"numeric-rendering=roundtrip-decimal;"
|
|
36
|
+
b"model-provider-workload-action-current-outcome-fields=false"
|
|
37
|
+
).hexdigest()
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class AffineFrontierContextMode(str, Enum):
|
|
41
|
+
"""Closed composition-root switch for the optional generic projection."""
|
|
42
|
+
|
|
43
|
+
OFF = "off"
|
|
44
|
+
AUTHENTICATED_AFFINE_V1 = "authenticated_affine_v1"
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def _object(value: dict[str, object]) -> FrozenJsonObject:
|
|
48
|
+
result = freeze_json(value)
|
|
49
|
+
if type(result) is not FrozenJsonObject: # pragma: no cover - closed root.
|
|
50
|
+
raise AssertionError("frontier projection did not freeze to an object")
|
|
51
|
+
return result
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def _finite_hex(value: object, name: str) -> float:
|
|
55
|
+
if type(value) is not str:
|
|
56
|
+
raise TypeError(f"{name} must be a binary64 hex string")
|
|
57
|
+
result = float.fromhex(value)
|
|
58
|
+
if not math.isfinite(result):
|
|
59
|
+
raise ValueError(f"{name} must be finite")
|
|
60
|
+
return result
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
def _decimal(value: float) -> str:
|
|
64
|
+
if not math.isfinite(value):
|
|
65
|
+
raise ValueError("frontier projection cannot render a non-finite value")
|
|
66
|
+
normalized = 0.0 if value == 0.0 else value
|
|
67
|
+
return format(normalized, ".17g")
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
def _normalize(value: float, *, goal: str, ideal: float, reference: float) -> float:
|
|
71
|
+
if goal == "min":
|
|
72
|
+
if not reference > ideal:
|
|
73
|
+
raise ValueError("minimization reference must exceed its ideal")
|
|
74
|
+
return (value - ideal) / (reference - ideal)
|
|
75
|
+
if goal == "max":
|
|
76
|
+
if not ideal > reference:
|
|
77
|
+
raise ValueError("maximization ideal must exceed its reference")
|
|
78
|
+
return (ideal - value) / (ideal - reference)
|
|
79
|
+
raise ValueError("affine frontier axis goal must be min or max")
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
def _reference_directions(dimension: int) -> list[dict[str, object]]:
|
|
83
|
+
directions: list[tuple[str, tuple[float, ...]]] = [
|
|
84
|
+
(
|
|
85
|
+
f"axis_{index + 1}_extreme",
|
|
86
|
+
tuple(1.0 if index == other else 0.0 for other in range(dimension)),
|
|
87
|
+
)
|
|
88
|
+
for index in range(dimension)
|
|
89
|
+
]
|
|
90
|
+
if dimension == 3:
|
|
91
|
+
directions.extend(
|
|
92
|
+
(
|
|
93
|
+
f"axes_{left + 1}_{right + 1}_tradeoff",
|
|
94
|
+
tuple(
|
|
95
|
+
0.5 if index in (left, right) else 0.0
|
|
96
|
+
for index in range(dimension)
|
|
97
|
+
),
|
|
98
|
+
)
|
|
99
|
+
for left, right in ((0, 1), (0, 2), (1, 2))
|
|
100
|
+
)
|
|
101
|
+
directions.append(
|
|
102
|
+
(
|
|
103
|
+
"balanced_tradeoff",
|
|
104
|
+
tuple(1.0 / dimension for _ in range(dimension)),
|
|
105
|
+
)
|
|
106
|
+
)
|
|
107
|
+
return [
|
|
108
|
+
{
|
|
109
|
+
"direction_id": identifier,
|
|
110
|
+
"normalized_importance_decimal": [_decimal(value) for value in weights],
|
|
111
|
+
}
|
|
112
|
+
for identifier, weights in directions
|
|
113
|
+
]
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
@dataclass(frozen=True, slots=True)
|
|
117
|
+
class AuthenticatedAffineFrontierContextProjector:
|
|
118
|
+
"""Project 2-D/3-D affine archive geometry without domain special cases."""
|
|
119
|
+
|
|
120
|
+
projector_id: str = PROJECTOR_ID
|
|
121
|
+
projector_version: int = PROJECTOR_VERSION
|
|
122
|
+
definition_sha256: str = PROJECTOR_DEFINITION_SHA256
|
|
123
|
+
|
|
124
|
+
def __post_init__(self) -> None:
|
|
125
|
+
if (
|
|
126
|
+
self.projector_id != PROJECTOR_ID
|
|
127
|
+
or self.projector_version != PROJECTOR_VERSION
|
|
128
|
+
or self.definition_sha256 != PROJECTOR_DEFINITION_SHA256
|
|
129
|
+
):
|
|
130
|
+
raise ValueError("affine frontier projector identity drifted")
|
|
131
|
+
|
|
132
|
+
def project(
|
|
133
|
+
self,
|
|
134
|
+
*,
|
|
135
|
+
archive_utility: ArchiveUtilitySnapshot,
|
|
136
|
+
parent: EvolutionCandidate,
|
|
137
|
+
) -> CampaignPortfolioArchiveContextProjection:
|
|
138
|
+
from agent_evolve.application.agentic_evolution import EvolutionCandidate
|
|
139
|
+
from agent_evolve.application.evolution_campaign import ArchiveUtilitySnapshot
|
|
140
|
+
|
|
141
|
+
self.__post_init__()
|
|
142
|
+
if type(archive_utility) is not ArchiveUtilitySnapshot:
|
|
143
|
+
raise TypeError("archive_utility must be an exact frozen snapshot")
|
|
144
|
+
ArchiveUtilitySnapshot.__post_init__(archive_utility)
|
|
145
|
+
if type(parent) is not EvolutionCandidate:
|
|
146
|
+
raise TypeError("parent must be an exact EvolutionCandidate")
|
|
147
|
+
EvolutionCandidate.__post_init__(parent)
|
|
148
|
+
if not parent.valid:
|
|
149
|
+
raise ValueError("frontier context requires an evaluated valid parent")
|
|
150
|
+
|
|
151
|
+
snapshot = thaw_json(archive_utility.snapshot_receipt)
|
|
152
|
+
if type(snapshot) is not dict:
|
|
153
|
+
raise TypeError("affine snapshot receipt must be an object")
|
|
154
|
+
if snapshot.get("definition_sha256") != archive_utility.definition_sha256:
|
|
155
|
+
raise ValueError("affine snapshot and outer utility definitions differ")
|
|
156
|
+
spec = snapshot.get("spec")
|
|
157
|
+
axes = spec.get("axes") if type(spec) is dict else None
|
|
158
|
+
if type(axes) is not list or len(axes) not in (2, 3):
|
|
159
|
+
raise ValueError("frontier projection supports exact affine 2-D or 3-D")
|
|
160
|
+
dimension = len(axes)
|
|
161
|
+
parsed_axes: list[dict[str, object]] = []
|
|
162
|
+
metric_ids: list[str] = []
|
|
163
|
+
for index, axis in enumerate(axes):
|
|
164
|
+
if type(axis) is not dict or type(axis.get("metric_id")) is not str:
|
|
165
|
+
raise ValueError("affine axis record is malformed")
|
|
166
|
+
metric_id = axis["metric_id"]
|
|
167
|
+
goal = axis.get("goal")
|
|
168
|
+
if goal not in ("min", "max"):
|
|
169
|
+
raise ValueError("affine axis goal is malformed")
|
|
170
|
+
ideal = _finite_hex(axis.get("ideal_hex"), f"axis[{index}].ideal")
|
|
171
|
+
reference = _finite_hex(
|
|
172
|
+
axis.get("reference_hex"), f"axis[{index}].reference"
|
|
173
|
+
)
|
|
174
|
+
_normalize(ideal, goal=goal, ideal=ideal, reference=reference)
|
|
175
|
+
metric_ids.append(metric_id)
|
|
176
|
+
parsed_axes.append(
|
|
177
|
+
{
|
|
178
|
+
"axis_index": index,
|
|
179
|
+
"metric_id": metric_id,
|
|
180
|
+
"source_goal": goal,
|
|
181
|
+
"normalized_goal": "minimize",
|
|
182
|
+
"ideal_decimal": _decimal(ideal),
|
|
183
|
+
"reference_decimal": _decimal(reference),
|
|
184
|
+
"normalized_ideal_decimal": "0",
|
|
185
|
+
"normalized_reference_decimal": "1",
|
|
186
|
+
"_ideal": ideal,
|
|
187
|
+
"_reference": reference,
|
|
188
|
+
}
|
|
189
|
+
)
|
|
190
|
+
if len(set(metric_ids)) != dimension:
|
|
191
|
+
raise ValueError("affine axes must use distinct metric IDs")
|
|
192
|
+
parent_objectives = parent.objective_map
|
|
193
|
+
if set(parent_objectives) != set(metric_ids):
|
|
194
|
+
raise ValueError("parent objective vector differs from affine axes")
|
|
195
|
+
parent_point = tuple(
|
|
196
|
+
_normalize(
|
|
197
|
+
float(parent_objectives[str(axis["metric_id"])]),
|
|
198
|
+
goal=str(axis["source_goal"]),
|
|
199
|
+
ideal=float(axis["_ideal"]),
|
|
200
|
+
reference=float(axis["_reference"]),
|
|
201
|
+
)
|
|
202
|
+
for axis in parsed_axes
|
|
203
|
+
)
|
|
204
|
+
|
|
205
|
+
raw_normalized_points = snapshot.get("normalized_archive_points")
|
|
206
|
+
if type(raw_normalized_points) is not list or not raw_normalized_points:
|
|
207
|
+
raise ValueError("affine snapshot requires normalized archive points")
|
|
208
|
+
normalized_points: tuple[tuple[float, ...], ...] = tuple(
|
|
209
|
+
tuple(
|
|
210
|
+
_finite_hex(value, f"archive[{point_index}][{axis_index}]")
|
|
211
|
+
for axis_index, value in enumerate(point)
|
|
212
|
+
)
|
|
213
|
+
for point_index, point in enumerate(raw_normalized_points)
|
|
214
|
+
if type(point) is list and len(point) == dimension
|
|
215
|
+
)
|
|
216
|
+
if len(normalized_points) != len(raw_normalized_points):
|
|
217
|
+
raise ValueError("normalized archive point dimension is malformed")
|
|
218
|
+
axis_best = tuple(
|
|
219
|
+
min(point[index] for point in normalized_points)
|
|
220
|
+
for index in range(dimension)
|
|
221
|
+
)
|
|
222
|
+
axis_worst = tuple(
|
|
223
|
+
max(point[index] for point in normalized_points)
|
|
224
|
+
for index in range(dimension)
|
|
225
|
+
)
|
|
226
|
+
dominated_by_archive = any(
|
|
227
|
+
all(source <= target for source, target in zip(point, parent_point))
|
|
228
|
+
and any(source < target for source, target in zip(point, parent_point))
|
|
229
|
+
for point in normalized_points
|
|
230
|
+
)
|
|
231
|
+
dominates_archive_count = sum(
|
|
232
|
+
all(source <= target for source, target in zip(parent_point, point))
|
|
233
|
+
and any(source < target for source, target in zip(parent_point, point))
|
|
234
|
+
for point in normalized_points
|
|
235
|
+
)
|
|
236
|
+
public_axes = [
|
|
237
|
+
{key: value for key, value in axis.items() if not key.startswith("_")}
|
|
238
|
+
for axis in parsed_axes
|
|
239
|
+
]
|
|
240
|
+
inner_snapshot_sha256 = snapshot.get("snapshot_sha256")
|
|
241
|
+
if type(inner_snapshot_sha256) is not str:
|
|
242
|
+
raise ValueError("affine snapshot lacks its inner identity")
|
|
243
|
+
payload = _object(
|
|
244
|
+
{
|
|
245
|
+
"schema_version": 1,
|
|
246
|
+
"epistemic_cutoff": {
|
|
247
|
+
"generation": archive_utility.generation,
|
|
248
|
+
"archive_sha256": archive_utility.archive_sha256,
|
|
249
|
+
"outer_archive_utility_snapshot_sha256": (
|
|
250
|
+
archive_utility.snapshot_sha256
|
|
251
|
+
),
|
|
252
|
+
"inner_affine_snapshot_sha256": inner_snapshot_sha256,
|
|
253
|
+
"current_or_future_candidate_outcomes_consulted": False,
|
|
254
|
+
},
|
|
255
|
+
"optimization_frame": {
|
|
256
|
+
"indicator": spec.get("indicator"),
|
|
257
|
+
"dimension": dimension,
|
|
258
|
+
"normalized_orientation": "lower_is_better_on_every_axis",
|
|
259
|
+
"target": "expand_the_pareto_frontier_under_the_fixed_reference",
|
|
260
|
+
"simultaneous_improvement_on_every_axis_required": False,
|
|
261
|
+
"tradeoffs_can_be_frontier_improving": True,
|
|
262
|
+
"base_hypervolume_decimal": _decimal(
|
|
263
|
+
_finite_hex(
|
|
264
|
+
snapshot.get("base_hypervolume_hex"),
|
|
265
|
+
"base_hypervolume",
|
|
266
|
+
)
|
|
267
|
+
),
|
|
268
|
+
"axes": public_axes,
|
|
269
|
+
"reference_directions": _reference_directions(dimension),
|
|
270
|
+
},
|
|
271
|
+
"archive": {
|
|
272
|
+
"point_count": len(normalized_points),
|
|
273
|
+
"normalized_points_decimal": [
|
|
274
|
+
[_decimal(value) for value in point]
|
|
275
|
+
for point in normalized_points
|
|
276
|
+
],
|
|
277
|
+
"axis_best_decimal": [_decimal(value) for value in axis_best],
|
|
278
|
+
"axis_worst_decimal": [_decimal(value) for value in axis_worst],
|
|
279
|
+
},
|
|
280
|
+
"parent": {
|
|
281
|
+
"candidate_id": parent.candidate_id.value,
|
|
282
|
+
"configuration_sha256": parent.occurrence.configuration_hash,
|
|
283
|
+
"normalized_point_decimal": [
|
|
284
|
+
_decimal(value) for value in parent_point
|
|
285
|
+
],
|
|
286
|
+
"axis_gap_from_archive_best_decimal": [
|
|
287
|
+
_decimal(value - best)
|
|
288
|
+
for value, best in zip(parent_point, axis_best)
|
|
289
|
+
],
|
|
290
|
+
"axis_slack_to_reference_decimal": [
|
|
291
|
+
_decimal(1.0 - value) for value in parent_point
|
|
292
|
+
],
|
|
293
|
+
"dominated_by_an_archive_point": dominated_by_archive,
|
|
294
|
+
"strictly_dominates_archive_point_count": (
|
|
295
|
+
dominates_archive_count
|
|
296
|
+
),
|
|
297
|
+
},
|
|
298
|
+
}
|
|
299
|
+
)
|
|
300
|
+
return CampaignPortfolioArchiveContextProjection(
|
|
301
|
+
projector_id=self.projector_id,
|
|
302
|
+
projector_version=self.projector_version,
|
|
303
|
+
definition_sha256=self.definition_sha256,
|
|
304
|
+
archive_utility_snapshot_sha256=archive_utility.snapshot_sha256,
|
|
305
|
+
parent_configuration_sha256=parent.occurrence.configuration_hash,
|
|
306
|
+
payload=payload,
|
|
307
|
+
)
|
|
308
|
+
|
|
309
|
+
|
|
310
|
+
def affine_frontier_context_projector(
|
|
311
|
+
mode: AffineFrontierContextMode | str,
|
|
312
|
+
) -> AuthenticatedAffineFrontierContextProjector | None:
|
|
313
|
+
"""Resolve one explicit mechanism arm without reading process state."""
|
|
314
|
+
|
|
315
|
+
selected = mode if type(mode) is AffineFrontierContextMode else AffineFrontierContextMode(mode)
|
|
316
|
+
if selected is AffineFrontierContextMode.OFF:
|
|
317
|
+
return None
|
|
318
|
+
if selected is AffineFrontierContextMode.AUTHENTICATED_AFFINE_V1:
|
|
319
|
+
return AuthenticatedAffineFrontierContextProjector()
|
|
320
|
+
raise AssertionError("unreachable affine frontier context mode")
|
|
321
|
+
|
|
322
|
+
|
|
323
|
+
__all__ = [
|
|
324
|
+
"AffineFrontierContextMode",
|
|
325
|
+
"AuthenticatedAffineFrontierContextProjector",
|
|
326
|
+
"PROJECTOR_DEFINITION_SHA256",
|
|
327
|
+
"PROJECTOR_ID",
|
|
328
|
+
"PROJECTOR_VERSION",
|
|
329
|
+
"affine_frontier_context_projector",
|
|
330
|
+
]
|