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,335 @@
|
|
|
1
|
+
"""Integrity-bound projections from insight memory into selector cards.
|
|
2
|
+
|
|
3
|
+
The application owns the trusted join between an immutable memory entry and
|
|
4
|
+
the framework-neutral portfolio port. Benchmark adapters choose only the
|
|
5
|
+
prompt/evidence projection and its source receipt; they cannot substitute a
|
|
6
|
+
different finite action without invalidating the resulting source binding.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from __future__ import annotations
|
|
10
|
+
|
|
11
|
+
import math
|
|
12
|
+
import re
|
|
13
|
+
|
|
14
|
+
from agent_evolve.application.insight_memory import (
|
|
15
|
+
InsightEvidenceLineage,
|
|
16
|
+
InsightMemoryEntry,
|
|
17
|
+
)
|
|
18
|
+
from agent_evolve.domain.finite_variation import (
|
|
19
|
+
FiniteVariationContract,
|
|
20
|
+
validated_finite_variation_identity_index,
|
|
21
|
+
)
|
|
22
|
+
from agent_evolve.domain.insight import InsightRef
|
|
23
|
+
from agent_evolve.domain.typed_json import (
|
|
24
|
+
FrozenJsonArray,
|
|
25
|
+
FrozenJsonObject,
|
|
26
|
+
FrozenJsonValue,
|
|
27
|
+
freeze_json,
|
|
28
|
+
)
|
|
29
|
+
from agent_evolve.ports.agentic_generator import InsightDraft
|
|
30
|
+
from agent_evolve.ports.portfolio_selection import (
|
|
31
|
+
CardScoreComponent,
|
|
32
|
+
PortfolioCard,
|
|
33
|
+
PortfolioExperimentalArm,
|
|
34
|
+
PortfolioExperimentalViewReceipt,
|
|
35
|
+
PortfolioCardSourceBinding,
|
|
36
|
+
PortfolioCardSourceRegistry,
|
|
37
|
+
_bind_portfolio_card_source,
|
|
38
|
+
_issue_portfolio_card_source_registry,
|
|
39
|
+
portfolio_card_snapshot_sha256,
|
|
40
|
+
validate_portfolio_experimental_view,
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def project_action_neutral_insight_prompt_payload(
|
|
45
|
+
entry: InsightMemoryEntry,
|
|
46
|
+
*,
|
|
47
|
+
prompt_payload: FrozenJsonObject,
|
|
48
|
+
finite_variation_contracts: tuple[FiniteVariationContract, ...],
|
|
49
|
+
) -> FrozenJsonObject:
|
|
50
|
+
"""Remove exact finite-action identity from free-form insight prose.
|
|
51
|
+
|
|
52
|
+
Reflection text is provider-authored and may repeat option IDs or evidence
|
|
53
|
+
hashes that were visible in its evidence catalog. Scientific M/N views
|
|
54
|
+
carry those identities exclusively through structured
|
|
55
|
+
``finite_action_evidence``. This projection therefore replaces every
|
|
56
|
+
exact current-catalog or source-evidence identity in arbitrary typed JSON
|
|
57
|
+
strings (including object keys) with deterministic punctuation-only
|
|
58
|
+
aliases. Families and other action-neutral mechanism prose are retained.
|
|
59
|
+
|
|
60
|
+
Multiple contracts are accepted because a single admitted card population
|
|
61
|
+
can be shared by several stable parent lanes with different parent-bound
|
|
62
|
+
action catalogs. The output is independent of contract input order.
|
|
63
|
+
"""
|
|
64
|
+
|
|
65
|
+
lineage = _validate_source_entry(entry)
|
|
66
|
+
if type(prompt_payload) is not FrozenJsonObject:
|
|
67
|
+
raise TypeError("prompt_payload must be an exact FrozenJsonObject")
|
|
68
|
+
if freeze_json(prompt_payload) is not prompt_payload:
|
|
69
|
+
raise TypeError("prompt_payload must already be frozen typed JSON")
|
|
70
|
+
if type(finite_variation_contracts) is not tuple or not (
|
|
71
|
+
finite_variation_contracts
|
|
72
|
+
):
|
|
73
|
+
raise ValueError(
|
|
74
|
+
"finite_variation_contracts must be a non-empty exact tuple"
|
|
75
|
+
)
|
|
76
|
+
if any(
|
|
77
|
+
type(contract) is not FiniteVariationContract
|
|
78
|
+
for contract in finite_variation_contracts
|
|
79
|
+
):
|
|
80
|
+
raise TypeError(
|
|
81
|
+
"finite_variation_contracts must contain exact "
|
|
82
|
+
"FiniteVariationContract values"
|
|
83
|
+
)
|
|
84
|
+
|
|
85
|
+
indexes_by_identity = {}
|
|
86
|
+
for contract in finite_variation_contracts:
|
|
87
|
+
index = validated_finite_variation_identity_index(contract)
|
|
88
|
+
indexes_by_identity[index.contract_identity_sha256] = index
|
|
89
|
+
|
|
90
|
+
forbidden: set[str] = set()
|
|
91
|
+
for contract_identity in sorted(indexes_by_identity):
|
|
92
|
+
index = indexes_by_identity[contract_identity]
|
|
93
|
+
forbidden.update(index.option_ids)
|
|
94
|
+
forbidden.add(index.contract_identity_sha256)
|
|
95
|
+
forbidden.update(index.option_identity_sha256s)
|
|
96
|
+
forbidden.update(index.child_configuration_sha256s)
|
|
97
|
+
for binding in lineage.finite_action_bindings:
|
|
98
|
+
forbidden.update(
|
|
99
|
+
(
|
|
100
|
+
binding.option_id,
|
|
101
|
+
binding.option_identity_sha256,
|
|
102
|
+
binding.contract_identity_sha256,
|
|
103
|
+
binding.contrast_id,
|
|
104
|
+
binding.identity_sha256,
|
|
105
|
+
)
|
|
106
|
+
)
|
|
107
|
+
|
|
108
|
+
canonical_tokens = tuple(sorted({value.casefold() for value in forbidden}))
|
|
109
|
+
aliases = {
|
|
110
|
+
token: f"[#{ordinal:04d}]"
|
|
111
|
+
for ordinal, token in enumerate(canonical_tokens, start=1)
|
|
112
|
+
}
|
|
113
|
+
matcher = re.compile(
|
|
114
|
+
"|".join(
|
|
115
|
+
re.escape(token)
|
|
116
|
+
for token in sorted(canonical_tokens, key=lambda value: (-len(value), value))
|
|
117
|
+
),
|
|
118
|
+
flags=re.IGNORECASE,
|
|
119
|
+
)
|
|
120
|
+
|
|
121
|
+
def redact_text(value: str) -> str:
|
|
122
|
+
return matcher.sub(lambda match: aliases[match.group(0).casefold()], value)
|
|
123
|
+
|
|
124
|
+
def visit(value: FrozenJsonValue) -> object:
|
|
125
|
+
if type(value) is str:
|
|
126
|
+
return redact_text(value)
|
|
127
|
+
if type(value) is FrozenJsonArray:
|
|
128
|
+
return [visit(item) for item in value.items]
|
|
129
|
+
if type(value) is FrozenJsonObject:
|
|
130
|
+
projected: dict[str, object] = {}
|
|
131
|
+
for key, item in value.items:
|
|
132
|
+
projected_key = redact_text(key)
|
|
133
|
+
if projected_key in projected:
|
|
134
|
+
raise ValueError(
|
|
135
|
+
"action-neutral projection caused an object-key collision"
|
|
136
|
+
)
|
|
137
|
+
projected[projected_key] = visit(item)
|
|
138
|
+
return projected
|
|
139
|
+
return value
|
|
140
|
+
|
|
141
|
+
projected = freeze_json(visit(prompt_payload))
|
|
142
|
+
if type(projected) is not FrozenJsonObject: # pragma: no cover - root sealed.
|
|
143
|
+
raise AssertionError("action-neutral prompt projection lost its object root")
|
|
144
|
+
return projected
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
def _validate_source_entry(entry: InsightMemoryEntry) -> InsightEvidenceLineage:
|
|
148
|
+
if type(entry) is not InsightMemoryEntry:
|
|
149
|
+
raise TypeError("entry must be an exact InsightMemoryEntry")
|
|
150
|
+
InsightMemoryEntry.__post_init__(entry)
|
|
151
|
+
if type(entry.reference) is not InsightRef:
|
|
152
|
+
raise TypeError("entry.reference must be an exact InsightRef")
|
|
153
|
+
InsightRef.__post_init__(entry.reference)
|
|
154
|
+
if type(entry.draft) is not InsightDraft:
|
|
155
|
+
raise TypeError("entry.draft must be an exact InsightDraft")
|
|
156
|
+
InsightDraft.__post_init__(entry.draft)
|
|
157
|
+
if type(entry.initial_score) is not float or not math.isfinite(
|
|
158
|
+
entry.initial_score
|
|
159
|
+
):
|
|
160
|
+
raise TypeError("entry.initial_score must be a finite canonical float")
|
|
161
|
+
lineage = entry.evidence_lineage
|
|
162
|
+
if type(lineage) is not InsightEvidenceLineage:
|
|
163
|
+
raise ValueError(
|
|
164
|
+
"source-bound portfolio projection requires reflection evidence lineage"
|
|
165
|
+
)
|
|
166
|
+
InsightEvidenceLineage.__post_init__(lineage)
|
|
167
|
+
return lineage
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
def portfolio_card_from_insight_entry(
|
|
171
|
+
entry: InsightMemoryEntry,
|
|
172
|
+
*,
|
|
173
|
+
card_key: str,
|
|
174
|
+
prompt_payload: FrozenJsonObject,
|
|
175
|
+
evidence_sha256: str,
|
|
176
|
+
source_receipt_sha256: str,
|
|
177
|
+
score_components: tuple[CardScoreComponent, ...] = (),
|
|
178
|
+
assigned_score: float | None = None,
|
|
179
|
+
) -> PortfolioCard:
|
|
180
|
+
"""Project one reflection entry with integrity-bound action lineage.
|
|
181
|
+
|
|
182
|
+
``source_receipt_sha256`` identifies the durable evidence/projection receipt
|
|
183
|
+
trusted by the caller. The returned receipt hash-binds the entry reference,
|
|
184
|
+
complete draft content, evidence-lineage identity, exact finite actions,
|
|
185
|
+
prompt view, evidence identity, and score state.
|
|
186
|
+
"""
|
|
187
|
+
|
|
188
|
+
lineage = _validate_source_entry(entry)
|
|
189
|
+
if type(prompt_payload) is not FrozenJsonObject:
|
|
190
|
+
raise TypeError("prompt_payload must be an exact FrozenJsonObject")
|
|
191
|
+
if freeze_json(prompt_payload) is not prompt_payload:
|
|
192
|
+
raise TypeError("prompt_payload must already be frozen typed JSON")
|
|
193
|
+
source_binding = _bind_portfolio_card_source(
|
|
194
|
+
reference=entry.reference,
|
|
195
|
+
content_sha256=entry.draft.content_sha256,
|
|
196
|
+
evidence_lineage_identity_sha256=lineage.identity_sha256,
|
|
197
|
+
finite_action_evidence=lineage.portfolio_action_evidence,
|
|
198
|
+
prompt_payload=prompt_payload,
|
|
199
|
+
evidence_sha256=evidence_sha256,
|
|
200
|
+
score_components=score_components,
|
|
201
|
+
assigned_score=assigned_score,
|
|
202
|
+
source_receipt_sha256=source_receipt_sha256,
|
|
203
|
+
)
|
|
204
|
+
return PortfolioCard(
|
|
205
|
+
card_key=card_key,
|
|
206
|
+
reference=entry.reference,
|
|
207
|
+
content_sha256=entry.draft.content_sha256,
|
|
208
|
+
evidence_sha256=evidence_sha256,
|
|
209
|
+
prompt_payload=prompt_payload,
|
|
210
|
+
score_components=score_components,
|
|
211
|
+
assigned_score=assigned_score,
|
|
212
|
+
finite_action_evidence=lineage.portfolio_action_evidence,
|
|
213
|
+
source_binding=source_binding,
|
|
214
|
+
)
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
def admit_portfolio_card_sources(
|
|
218
|
+
entries: tuple[InsightMemoryEntry, ...],
|
|
219
|
+
cards: tuple[PortfolioCard, ...],
|
|
220
|
+
) -> PortfolioCardSourceRegistry:
|
|
221
|
+
"""Admit an exact source-entry set for one scientific selector request.
|
|
222
|
+
|
|
223
|
+
The caller designates ``entries`` as trusted memory state. This function
|
|
224
|
+
performs the authoritative entry-to-binding join and issues a closed
|
|
225
|
+
integrity registry; it does not provide cryptographic authenticity. Every
|
|
226
|
+
supplied card must be source-bound, and the entry/card reference sets must
|
|
227
|
+
be exactly equal so neither stale nor adapter-synthesized bindings slip in.
|
|
228
|
+
"""
|
|
229
|
+
|
|
230
|
+
if type(entries) is not tuple or not entries:
|
|
231
|
+
raise ValueError("entries must be a non-empty exact tuple")
|
|
232
|
+
if any(type(entry) is not InsightMemoryEntry for entry in entries):
|
|
233
|
+
raise TypeError("entries must contain exact InsightMemoryEntry values")
|
|
234
|
+
if type(cards) is not tuple or not cards:
|
|
235
|
+
raise ValueError("cards must be a non-empty exact tuple")
|
|
236
|
+
if any(type(card) is not PortfolioCard for card in cards):
|
|
237
|
+
raise TypeError("cards must contain exact PortfolioCard values")
|
|
238
|
+
|
|
239
|
+
entries_by_reference: dict[InsightRef, InsightMemoryEntry] = {}
|
|
240
|
+
for entry in entries:
|
|
241
|
+
_validate_source_entry(entry)
|
|
242
|
+
if entry.reference in entries_by_reference:
|
|
243
|
+
raise ValueError("entries cannot repeat an insight reference")
|
|
244
|
+
entries_by_reference[entry.reference] = entry
|
|
245
|
+
|
|
246
|
+
bindings: list[PortfolioCardSourceBinding] = []
|
|
247
|
+
card_references: set[InsightRef] = set()
|
|
248
|
+
for card in cards:
|
|
249
|
+
card.__post_init__()
|
|
250
|
+
binding = card.source_binding
|
|
251
|
+
if binding is None:
|
|
252
|
+
raise ValueError("source admission rejects unbound legacy cards")
|
|
253
|
+
if card.reference in card_references:
|
|
254
|
+
raise ValueError("cards cannot repeat an insight reference")
|
|
255
|
+
card_references.add(card.reference)
|
|
256
|
+
entry = entries_by_reference.get(card.reference)
|
|
257
|
+
if entry is None:
|
|
258
|
+
raise ValueError("card source is absent from the trusted entry set")
|
|
259
|
+
lineage = entry.evidence_lineage
|
|
260
|
+
assert type(lineage) is InsightEvidenceLineage
|
|
261
|
+
if (
|
|
262
|
+
binding.reference != entry.reference
|
|
263
|
+
or binding.content_sha256 != entry.draft.content_sha256
|
|
264
|
+
or binding.evidence_lineage_identity_sha256
|
|
265
|
+
!= lineage.identity_sha256
|
|
266
|
+
or binding.finite_action_evidence
|
|
267
|
+
!= lineage.portfolio_action_evidence
|
|
268
|
+
):
|
|
269
|
+
raise ValueError("card source binding differs from its trusted entry")
|
|
270
|
+
bindings.append(binding)
|
|
271
|
+
if card_references != set(entries_by_reference):
|
|
272
|
+
raise ValueError("trusted entry set differs from the card source set")
|
|
273
|
+
|
|
274
|
+
canonical_bindings = tuple(
|
|
275
|
+
sorted(bindings, key=lambda binding: binding.binding_sha256)
|
|
276
|
+
)
|
|
277
|
+
return _issue_portfolio_card_source_registry(canonical_bindings)
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
def bind_portfolio_experimental_view(
|
|
281
|
+
*,
|
|
282
|
+
arm: PortfolioExperimentalArm,
|
|
283
|
+
cards: tuple[PortfolioCard, ...],
|
|
284
|
+
finite_variation_contract: FiniteVariationContract,
|
|
285
|
+
source_registry: PortfolioCardSourceRegistry,
|
|
286
|
+
policy_id: str,
|
|
287
|
+
policy_version: int,
|
|
288
|
+
policy_definition_sha256: str,
|
|
289
|
+
) -> PortfolioExperimentalViewReceipt:
|
|
290
|
+
"""Bind and validate one complete scientific M/P/N card population.
|
|
291
|
+
|
|
292
|
+
The finite contract is typed at the port trust boundary so this application
|
|
293
|
+
helper stays a thin issuer rather than duplicating domain validation.
|
|
294
|
+
"""
|
|
295
|
+
|
|
296
|
+
source_donor_pairs: tuple[tuple[str, str], ...] = ()
|
|
297
|
+
if arm is PortfolioExperimentalArm.PERMUTED_PLACEBO:
|
|
298
|
+
inferred: list[tuple[str, str]] = []
|
|
299
|
+
for card in cards:
|
|
300
|
+
if type(card) is not PortfolioCard or card.source_binding is None:
|
|
301
|
+
raise ValueError("P requires source-bound portfolio cards")
|
|
302
|
+
view = card.derived_view_receipt
|
|
303
|
+
if view is None or view.prompt_source_binding_sha256 is None:
|
|
304
|
+
raise ValueError("P requires donor-bound derived card views")
|
|
305
|
+
inferred.append(
|
|
306
|
+
(
|
|
307
|
+
card.source_binding.binding_sha256,
|
|
308
|
+
view.prompt_source_binding_sha256,
|
|
309
|
+
)
|
|
310
|
+
)
|
|
311
|
+
source_donor_pairs = tuple(sorted(inferred))
|
|
312
|
+
receipt = PortfolioExperimentalViewReceipt(
|
|
313
|
+
arm=arm,
|
|
314
|
+
source_registry_sha256=source_registry.registry_sha256,
|
|
315
|
+
card_snapshot_sha256=portfolio_card_snapshot_sha256(cards),
|
|
316
|
+
source_donor_binding_pairs=source_donor_pairs,
|
|
317
|
+
policy_id=policy_id,
|
|
318
|
+
policy_version=policy_version,
|
|
319
|
+
policy_definition_sha256=policy_definition_sha256,
|
|
320
|
+
)
|
|
321
|
+
validate_portfolio_experimental_view(
|
|
322
|
+
cards=cards,
|
|
323
|
+
finite_variation_contract=finite_variation_contract,
|
|
324
|
+
source_registry=source_registry,
|
|
325
|
+
receipt=receipt,
|
|
326
|
+
)
|
|
327
|
+
return receipt
|
|
328
|
+
|
|
329
|
+
|
|
330
|
+
__all__ = [
|
|
331
|
+
"admit_portfolio_card_sources",
|
|
332
|
+
"bind_portfolio_experimental_view",
|
|
333
|
+
"portfolio_card_from_insight_entry",
|
|
334
|
+
"project_action_neutral_insight_prompt_payload",
|
|
335
|
+
]
|