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,364 @@
|
|
|
1
|
+
"""Provider-neutral request construction for identifiable campaign reflection.
|
|
2
|
+
|
|
3
|
+
This boundary turns a sealed, mutation-only evidence snapshot into the exact
|
|
4
|
+
structured request consumed by an :class:`AgenticGenerator`. Workloads inject
|
|
5
|
+
optimization semantics and a closed reflection vocabulary; the builder owns no
|
|
6
|
+
benchmark prose, provider transport, retry policy, memory state, or evaluator.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from __future__ import annotations
|
|
10
|
+
|
|
11
|
+
import hashlib
|
|
12
|
+
import json
|
|
13
|
+
from dataclasses import replace
|
|
14
|
+
|
|
15
|
+
from agent_evolve.application.identifiable_reflection_evidence import (
|
|
16
|
+
IdentifiableReflectionEvidenceSnapshot,
|
|
17
|
+
)
|
|
18
|
+
from agent_evolve.core.optimization_semantics import (
|
|
19
|
+
MetricSense,
|
|
20
|
+
OptimizationSemantics,
|
|
21
|
+
)
|
|
22
|
+
from agent_evolve.domain.ids import LLMCallId
|
|
23
|
+
from agent_evolve.domain.typed_json import (
|
|
24
|
+
canonical_typed_json_bytes,
|
|
25
|
+
freeze_json,
|
|
26
|
+
typed_json_sha256,
|
|
27
|
+
)
|
|
28
|
+
from agent_evolve.ports.agentic_generator import (
|
|
29
|
+
MetricComparisonAnchorKind,
|
|
30
|
+
ReflectionEvidenceCatalog,
|
|
31
|
+
ReflectionGenerationRequest,
|
|
32
|
+
ReflectionInsightContract,
|
|
33
|
+
ReflectionInsightKind,
|
|
34
|
+
)
|
|
35
|
+
from agent_evolve.ports.decision_metric_projection import DecisionMetricProjection
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
IDENTIFIABLE_REFLECTION_FACT_SCHEMA_ID = "direct_single_mutation_contrast"
|
|
39
|
+
IDENTIFIABLE_REFLECTION_FACT_SCHEMA_VERSION = 2
|
|
40
|
+
IDENTIFIABLE_REFLECTION_FACT_SCHEMA_DEFINITION_SHA256 = hashlib.sha256(
|
|
41
|
+
b"agent-evolve:direct-single-mutation-contrast-facts:v2;"
|
|
42
|
+
b"request-scoped-citation;bounded-local-intervention;"
|
|
43
|
+
b"parent-relative-metric-effects;decimal-and-hex-delta;"
|
|
44
|
+
b"empirical-prediction-only"
|
|
45
|
+
).hexdigest()
|
|
46
|
+
IDENTIFIABLE_REFLECTION_REQUEST_BUILDER_ID = (
|
|
47
|
+
"sealed_identifiable_mutation_reflection_request"
|
|
48
|
+
)
|
|
49
|
+
IDENTIFIABLE_REFLECTION_REQUEST_BUILDER_VERSION = 3
|
|
50
|
+
IDENTIFIABLE_REFLECTION_REQUEST_BUILDER_DEFINITION_SHA256 = hashlib.sha256(
|
|
51
|
+
b"agent-evolve:sealed-identifiable-mutation-reflection-request:v3;"
|
|
52
|
+
b"canonical-typed-evidence-window;request-scoped-citations;"
|
|
53
|
+
b"empirical-only-single-intervention-facts;closed-action-vocabulary;"
|
|
54
|
+
b"explicit-optimization-semantics;decimal-authoritative-magnitude;"
|
|
55
|
+
b"citation-direction-consistency;exact-action-citation-binding;"
|
|
56
|
+
b"exact-insight-cardinality"
|
|
57
|
+
).hexdigest()
|
|
58
|
+
_REQUEST_IDENTITY_DOMAIN = b"agent-evolve:identifiable-reflection-request:v4\x00"
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
def _sha_text(value: str) -> str:
|
|
62
|
+
return hashlib.sha256(value.encode("utf-8", errors="strict")).hexdigest()
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
def _identity(value: dict[str, object]) -> str:
|
|
66
|
+
frozen = freeze_json(value)
|
|
67
|
+
return hashlib.sha256(
|
|
68
|
+
_REQUEST_IDENTITY_DOMAIN + canonical_typed_json_bytes(frozen)
|
|
69
|
+
).hexdigest()
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
def _validate_semantic_join(
|
|
73
|
+
evidence: IdentifiableReflectionEvidenceSnapshot,
|
|
74
|
+
contract: ReflectionInsightContract,
|
|
75
|
+
semantics: OptimizationSemantics,
|
|
76
|
+
) -> None:
|
|
77
|
+
evidence.__post_init__()
|
|
78
|
+
ReflectionInsightContract.__post_init__(contract)
|
|
79
|
+
OptimizationSemantics.__post_init__(semantics)
|
|
80
|
+
if not contract.is_semantic_v3:
|
|
81
|
+
raise ValueError("identifiable reflection requires semantic-v3")
|
|
82
|
+
if contract.allowed_insight_kinds != (
|
|
83
|
+
ReflectionInsightKind.EMPIRICAL_PREDICTIVE_RULE,
|
|
84
|
+
):
|
|
85
|
+
raise ValueError(
|
|
86
|
+
"direct single-mutation evidence permits empirical rules only"
|
|
87
|
+
)
|
|
88
|
+
if contract.allowed_comparison_anchor_kinds != (
|
|
89
|
+
MetricComparisonAnchorKind.CURRENT_PARENT,
|
|
90
|
+
):
|
|
91
|
+
raise ValueError(
|
|
92
|
+
"identifiable mutation reflection requires current-parent anchors"
|
|
93
|
+
)
|
|
94
|
+
decision_metrics = DecisionMetricProjection.from_optimization_semantics(semantics)
|
|
95
|
+
if decision_metrics.metric_ids != contract.required_metric_ids:
|
|
96
|
+
raise ValueError(
|
|
97
|
+
"decision metric projection differs from the reflection contract"
|
|
98
|
+
)
|
|
99
|
+
if any(
|
|
100
|
+
value.sense not in (MetricSense.MINIMIZE, MetricSense.MAXIMIZE)
|
|
101
|
+
for value in decision_metrics.metrics
|
|
102
|
+
):
|
|
103
|
+
raise ValueError(
|
|
104
|
+
"identifiable reflection currently supports monotone metrics only"
|
|
105
|
+
)
|
|
106
|
+
allowed_families = set(contract.allowed_option_families)
|
|
107
|
+
allowed_paths = set(contract.allowed_decision_paths)
|
|
108
|
+
allowed_ids = set(contract.allowed_option_ids)
|
|
109
|
+
for contrast in evidence.contrasts:
|
|
110
|
+
if tuple(value.metric_id for value in contrast.metrics) != (
|
|
111
|
+
contract.required_metric_ids
|
|
112
|
+
):
|
|
113
|
+
raise ValueError("contrast metrics differ from the reflection contract")
|
|
114
|
+
if contrast.option_family not in allowed_families:
|
|
115
|
+
raise ValueError("contrast option family escaped the reflection contract")
|
|
116
|
+
if contrast.affected_path not in allowed_paths:
|
|
117
|
+
raise ValueError("contrast path escaped the reflection contract")
|
|
118
|
+
if allowed_ids and contrast.option_id not in allowed_ids:
|
|
119
|
+
raise ValueError("contrast option ID escaped the reflection contract")
|
|
120
|
+
if contrast.permitted_insight_kinds != contract.allowed_insight_kinds:
|
|
121
|
+
raise ValueError("reflection contract overstates the evidence design")
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
def bind_reflection_contract_to_evidence_actions(
|
|
125
|
+
contract: ReflectionInsightContract,
|
|
126
|
+
evidence: IdentifiableReflectionEvidenceSnapshot,
|
|
127
|
+
) -> ReflectionInsightContract:
|
|
128
|
+
"""Require reflections to name an exact action observed in their evidence.
|
|
129
|
+
|
|
130
|
+
Family/path-only rules remain useful for descriptive reflection, but they
|
|
131
|
+
are too broad for executable memory: a target-specific prose claim can
|
|
132
|
+
otherwise be silently interpreted as every replacement at the same locus.
|
|
133
|
+
This provider-free projection derives the request-scoped option vocabulary
|
|
134
|
+
from authenticated direct interventions, without parsing model prose or
|
|
135
|
+
consulting outcomes beyond the already sealed evidence window.
|
|
136
|
+
"""
|
|
137
|
+
|
|
138
|
+
if type(contract) is not ReflectionInsightContract:
|
|
139
|
+
raise TypeError("contract must be an exact ReflectionInsightContract")
|
|
140
|
+
ReflectionInsightContract.__post_init__(contract)
|
|
141
|
+
if type(evidence) is not IdentifiableReflectionEvidenceSnapshot:
|
|
142
|
+
raise TypeError("evidence must be an exact identifiable snapshot")
|
|
143
|
+
evidence.__post_init__()
|
|
144
|
+
exact_ids = tuple(sorted({value.option_id for value in evidence.contrasts}))
|
|
145
|
+
if not exact_ids: # pragma: no cover - snapshot validation already closes this.
|
|
146
|
+
raise ValueError("exact-action reflection requires at least one action")
|
|
147
|
+
if contract.allowed_option_ids and not set(exact_ids).issubset(
|
|
148
|
+
contract.allowed_option_ids
|
|
149
|
+
):
|
|
150
|
+
raise ValueError("evidence action IDs escape the adapter vocabulary")
|
|
151
|
+
return replace(contract, allowed_option_ids=exact_ids)
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
def build_identifiable_reflection_generation_request(
|
|
155
|
+
*,
|
|
156
|
+
call_id: LLMCallId,
|
|
157
|
+
evidence: IdentifiableReflectionEvidenceSnapshot,
|
|
158
|
+
insight_contract: ReflectionInsightContract,
|
|
159
|
+
optimization_semantics: OptimizationSemantics,
|
|
160
|
+
max_output_tokens: int,
|
|
161
|
+
temperature: float | None,
|
|
162
|
+
max_insights: int = 2,
|
|
163
|
+
min_insights: int = 1,
|
|
164
|
+
) -> ReflectionGenerationRequest:
|
|
165
|
+
"""Build one exact mutation-evidence reflection request without I/O.
|
|
166
|
+
|
|
167
|
+
``min_insights`` remains positive until the campaign learning lifecycle has
|
|
168
|
+
a typed abstention receipt. Silently accepting an empty batch today would
|
|
169
|
+
fail later at memory publication and misreport a successful reflection.
|
|
170
|
+
"""
|
|
171
|
+
|
|
172
|
+
if type(call_id) is not LLMCallId:
|
|
173
|
+
raise TypeError("call_id must be an exact LLMCallId")
|
|
174
|
+
LLMCallId.__post_init__(call_id)
|
|
175
|
+
if type(evidence) is not IdentifiableReflectionEvidenceSnapshot:
|
|
176
|
+
raise TypeError("evidence must be an exact identifiable snapshot")
|
|
177
|
+
if type(insight_contract) is not ReflectionInsightContract:
|
|
178
|
+
raise TypeError("insight_contract must be exact")
|
|
179
|
+
if type(optimization_semantics) is not OptimizationSemantics:
|
|
180
|
+
raise TypeError("optimization_semantics must be exact")
|
|
181
|
+
if type(min_insights) is not int or min_insights <= 0:
|
|
182
|
+
raise ValueError(
|
|
183
|
+
"min_insights must stay positive until typed abstention is supported"
|
|
184
|
+
)
|
|
185
|
+
_validate_semantic_join(evidence, insight_contract, optimization_semantics)
|
|
186
|
+
available = tuple(value.contrast_id for value in evidence.contrasts)
|
|
187
|
+
catalog = ReflectionEvidenceCatalog.from_contrast_ids(available)
|
|
188
|
+
decision_metrics = DecisionMetricProjection.from_optimization_semantics(
|
|
189
|
+
optimization_semantics
|
|
190
|
+
)
|
|
191
|
+
prompt = json.dumps(
|
|
192
|
+
{
|
|
193
|
+
"task": (
|
|
194
|
+
"Derive bounded, falsifiable empirical predictive rules for a "
|
|
195
|
+
"later finite-mutation selector. Use only the authenticated "
|
|
196
|
+
"direct single-intervention observations below. Each rule must "
|
|
197
|
+
"name exactly one allowed decision path, predict every required "
|
|
198
|
+
"metric relative to the current parent, recommend only allowed "
|
|
199
|
+
"finite action families or IDs, and cite request-scoped evidence "
|
|
200
|
+
"keys. Each delta_decimal is child minus parent in raw metric "
|
|
201
|
+
"units and is the authoritative text for numerical magnitude; "
|
|
202
|
+
"copy it verbatim when stating a magnitude and do not reinterpret "
|
|
203
|
+
"the binary exponent in delta_hex. Evidence cited by one rule "
|
|
204
|
+
"must agree on affected path, intervention, and predicted metric "
|
|
205
|
+
"directions; otherwise abstain or emit separate bounded rules. "
|
|
206
|
+
"When exact option IDs are available, every rule must recommend "
|
|
207
|
+
"exactly the option ID shared by all evidence keys it cites; do "
|
|
208
|
+
"not generalize that target action to another value at the same "
|
|
209
|
+
"path. "
|
|
210
|
+
"The observations do not identify a causal mechanism: the "
|
|
211
|
+
"required mechanism field is a prospective testable rationale, "
|
|
212
|
+
"not an established mechanistic or causal conclusion."
|
|
213
|
+
),
|
|
214
|
+
"optimization_semantics": optimization_semantics.to_record(),
|
|
215
|
+
"decision_metric_projection": decision_metrics.to_record(),
|
|
216
|
+
"action_vocabulary": {
|
|
217
|
+
"allowed_decision_paths": list(
|
|
218
|
+
insight_contract.allowed_decision_paths
|
|
219
|
+
),
|
|
220
|
+
"allowed_option_families": list(
|
|
221
|
+
insight_contract.allowed_option_families
|
|
222
|
+
),
|
|
223
|
+
"allowed_option_ids": list(insight_contract.allowed_option_ids),
|
|
224
|
+
"allowed_insight_kinds": [
|
|
225
|
+
value.value for value in insight_contract.allowed_insight_kinds
|
|
226
|
+
],
|
|
227
|
+
},
|
|
228
|
+
"evidence_window": {
|
|
229
|
+
"snapshot_sha256": evidence.snapshot_sha256,
|
|
230
|
+
"prior_cutoff_event_index_exclusive": (
|
|
231
|
+
evidence.prior_cutoff_event_index_exclusive
|
|
232
|
+
),
|
|
233
|
+
"sealed_cutoff_event_index_inclusive": (
|
|
234
|
+
evidence.sealed_cutoff_event_index_inclusive
|
|
235
|
+
),
|
|
236
|
+
"excluded_observation_counts": [
|
|
237
|
+
{"reason": reason.value, "count": count}
|
|
238
|
+
for reason, count in evidence.exclusions
|
|
239
|
+
],
|
|
240
|
+
},
|
|
241
|
+
"identifiable_mutation_contrasts": [
|
|
242
|
+
value.to_prompt_record(
|
|
243
|
+
evidence_citation_key=catalog.citation_key_for_contrast_id(
|
|
244
|
+
value.contrast_id
|
|
245
|
+
)
|
|
246
|
+
)
|
|
247
|
+
for value in evidence.contrasts
|
|
248
|
+
],
|
|
249
|
+
"prior_falsifications": [
|
|
250
|
+
value.to_prompt_record() for value in evidence.prior_falsifications
|
|
251
|
+
],
|
|
252
|
+
"falsification_instruction": (
|
|
253
|
+
"Do not repeat a prior deprecated prediction unless new "
|
|
254
|
+
"single-intervention evidence directly resolves its counterexample."
|
|
255
|
+
),
|
|
256
|
+
"quarantine": (
|
|
257
|
+
"Outputs are unverified hypotheses and remain quarantined until "
|
|
258
|
+
"a later preregistered diagnostic block closes."
|
|
259
|
+
),
|
|
260
|
+
},
|
|
261
|
+
allow_nan=False,
|
|
262
|
+
ensure_ascii=True,
|
|
263
|
+
separators=(",", ":"),
|
|
264
|
+
sort_keys=True,
|
|
265
|
+
)
|
|
266
|
+
if any(value in prompt for value in available):
|
|
267
|
+
raise AssertionError("full contrast identities leaked into the model prompt")
|
|
268
|
+
return ReflectionGenerationRequest(
|
|
269
|
+
call_id=call_id,
|
|
270
|
+
operation="extract_identifiable_insights",
|
|
271
|
+
prompt=prompt,
|
|
272
|
+
max_insights=max_insights,
|
|
273
|
+
min_insights=min_insights,
|
|
274
|
+
max_output_tokens=max_output_tokens,
|
|
275
|
+
temperature=temperature,
|
|
276
|
+
available_contrast_ids=available,
|
|
277
|
+
insight_contract=insight_contract,
|
|
278
|
+
evidence_catalog=catalog,
|
|
279
|
+
)
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
def identifiable_reflection_request_construction_record(
|
|
283
|
+
request: ReflectionGenerationRequest,
|
|
284
|
+
evidence: IdentifiableReflectionEvidenceSnapshot,
|
|
285
|
+
) -> dict[str, object]:
|
|
286
|
+
"""Authenticate the exact prompt, snapshot, contract, and citation map."""
|
|
287
|
+
|
|
288
|
+
if type(request) is not ReflectionGenerationRequest:
|
|
289
|
+
raise TypeError("request must be an exact ReflectionGenerationRequest")
|
|
290
|
+
ReflectionGenerationRequest.__post_init__(request)
|
|
291
|
+
if type(evidence) is not IdentifiableReflectionEvidenceSnapshot:
|
|
292
|
+
raise TypeError("evidence must be an exact identifiable snapshot")
|
|
293
|
+
evidence.__post_init__()
|
|
294
|
+
catalog = request.evidence_catalog
|
|
295
|
+
contract = request.insight_contract
|
|
296
|
+
if catalog is None or contract is None:
|
|
297
|
+
raise ValueError("identifiable reflection requires both sealed contracts")
|
|
298
|
+
if request.available_contrast_ids != tuple(
|
|
299
|
+
value.contrast_id for value in evidence.contrasts
|
|
300
|
+
):
|
|
301
|
+
raise ValueError("request evidence differs from the sealed snapshot")
|
|
302
|
+
parsed = json.loads(request.prompt)
|
|
303
|
+
if type(parsed) is not dict:
|
|
304
|
+
raise ValueError("reflection prompt root must be an object")
|
|
305
|
+
rows = parsed.get("identifiable_mutation_contrasts")
|
|
306
|
+
if type(rows) is not list or any(type(value) is not dict for value in rows):
|
|
307
|
+
raise ValueError("reflection prompt lost its identifiable contrasts")
|
|
308
|
+
observed_keys = tuple(value.get("evidence_citation_key") for value in rows)
|
|
309
|
+
if observed_keys != catalog.citation_keys:
|
|
310
|
+
raise ValueError("prompt citation keys differ from the evidence catalog")
|
|
311
|
+
window = parsed.get("evidence_window")
|
|
312
|
+
if type(window) is not dict or window.get("snapshot_sha256") != (
|
|
313
|
+
evidence.snapshot_sha256
|
|
314
|
+
):
|
|
315
|
+
raise ValueError("prompt names a foreign evidence snapshot")
|
|
316
|
+
mapping = [value.to_record() for value in catalog.entries]
|
|
317
|
+
identity_record: dict[str, object] = {
|
|
318
|
+
"schema_version": 2,
|
|
319
|
+
"request_builder": {
|
|
320
|
+
"builder_id": IDENTIFIABLE_REFLECTION_REQUEST_BUILDER_ID,
|
|
321
|
+
"builder_version": IDENTIFIABLE_REFLECTION_REQUEST_BUILDER_VERSION,
|
|
322
|
+
"definition_sha256": (
|
|
323
|
+
IDENTIFIABLE_REFLECTION_REQUEST_BUILDER_DEFINITION_SHA256
|
|
324
|
+
),
|
|
325
|
+
},
|
|
326
|
+
"call_id": request.call_id.value,
|
|
327
|
+
"operation": request.operation,
|
|
328
|
+
"prompt_sha256": _sha_text(request.prompt),
|
|
329
|
+
"max_insights": request.max_insights,
|
|
330
|
+
"min_insights": request.min_insights,
|
|
331
|
+
"max_output_tokens": request.max_output_tokens,
|
|
332
|
+
"temperature_hex": (
|
|
333
|
+
None
|
|
334
|
+
if request.temperature is None
|
|
335
|
+
else float(request.temperature).hex()
|
|
336
|
+
),
|
|
337
|
+
"evidence_snapshot_sha256": evidence.snapshot_sha256,
|
|
338
|
+
"available_contrast_ids": list(request.available_contrast_ids),
|
|
339
|
+
"evidence_catalog_identity_sha256": catalog.catalog_identity_sha256,
|
|
340
|
+
"insight_contract_identity_sha256": contract.identity_sha256,
|
|
341
|
+
"evidence_citation_mapping_sha256": typed_json_sha256(
|
|
342
|
+
freeze_json({"schema_version": 1, "entries": mapping})
|
|
343
|
+
),
|
|
344
|
+
"full_contrast_ids_exposed_to_model": False,
|
|
345
|
+
}
|
|
346
|
+
return {
|
|
347
|
+
**identity_record,
|
|
348
|
+
"request_identity_sha256": _identity(identity_record),
|
|
349
|
+
"prompt_utf8_bytes": len(request.prompt.encode("utf-8", errors="strict")),
|
|
350
|
+
"evidence_citation_mapping": mapping,
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
|
|
354
|
+
__all__ = [
|
|
355
|
+
"IDENTIFIABLE_REFLECTION_FACT_SCHEMA_DEFINITION_SHA256",
|
|
356
|
+
"IDENTIFIABLE_REFLECTION_FACT_SCHEMA_ID",
|
|
357
|
+
"IDENTIFIABLE_REFLECTION_FACT_SCHEMA_VERSION",
|
|
358
|
+
"IDENTIFIABLE_REFLECTION_REQUEST_BUILDER_DEFINITION_SHA256",
|
|
359
|
+
"IDENTIFIABLE_REFLECTION_REQUEST_BUILDER_ID",
|
|
360
|
+
"IDENTIFIABLE_REFLECTION_REQUEST_BUILDER_VERSION",
|
|
361
|
+
"build_identifiable_reflection_generation_request",
|
|
362
|
+
"bind_reflection_contract_to_evidence_actions",
|
|
363
|
+
"identifiable_reflection_request_construction_record",
|
|
364
|
+
]
|