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.
Files changed (414) hide show
  1. agent_evolve/__init__.py +722 -0
  2. agent_evolve/agentic.py +2800 -0
  3. agent_evolve/api.py +767 -0
  4. agent_evolve/application/__init__.py +1580 -0
  5. agent_evolve/application/action_allocation.py +744 -0
  6. agent_evolve/application/action_allocation_frame.py +347 -0
  7. agent_evolve/application/action_allocation_frame_commit.py +185 -0
  8. agent_evolve/application/action_allocation_frame_commit_v3.py +184 -0
  9. agent_evolve/application/action_allocation_frame_v3.py +338 -0
  10. agent_evolve/application/action_archive_value.py +497 -0
  11. agent_evolve/application/action_evidence_consistency.py +455 -0
  12. agent_evolve/application/action_forecast_partitioning.py +1471 -0
  13. agent_evolve/application/action_metric_projection.py +211 -0
  14. agent_evolve/application/action_role_value.py +680 -0
  15. agent_evolve/application/action_score_authorities.py +363 -0
  16. agent_evolve/application/action_structural_signature.py +116 -0
  17. agent_evolve/application/action_target_realization.py +402 -0
  18. agent_evolve/application/agentic_evolution.py +7734 -0
  19. agent_evolve/application/agentic_portfolio_residual_expert.py +835 -0
  20. agent_evolve/application/anchor_residual_identification.py +463 -0
  21. agent_evolve/application/archive_conditioned_action_target.py +208 -0
  22. agent_evolve/application/artifact_journal.py +246 -0
  23. agent_evolve/application/artifact_replay.py +347 -0
  24. agent_evolve/application/budgeted_optimizer.py +1828 -0
  25. agent_evolve/application/calibrated_campaign.py +485 -0
  26. agent_evolve/application/calibrated_current_prefix_forecast_opportunity.py +322 -0
  27. agent_evolve/application/calibrated_positive_gain_opportunity.py +1581 -0
  28. agent_evolve/application/campaign_capacity_recourse.py +254 -0
  29. agent_evolve/application/campaign_contextual_outcomes.py +119 -0
  30. agent_evolve/application/campaign_diagnostic_blocks.py +930 -0
  31. agent_evolve/application/campaign_evidence_registry.py +262 -0
  32. agent_evolve/application/campaign_execution.py +2537 -0
  33. agent_evolve/application/campaign_generation_audit.py +942 -0
  34. agent_evolve/application/campaign_learning.py +1812 -0
  35. agent_evolve/application/campaign_learning_runtime.py +1977 -0
  36. agent_evolve/application/campaign_search_phase.py +227 -0
  37. agent_evolve/application/campaign_selector_context_extension.py +220 -0
  38. agent_evolve/application/campaign_variation_envelope.py +649 -0
  39. agent_evolve/application/campaign_variation_trace.py +451 -0
  40. agent_evolve/application/candidate_archive_consequence.py +128 -0
  41. agent_evolve/application/causal_opportunity_portfolio_gate.py +385 -0
  42. agent_evolve/application/composite_outcome_updater.py +145 -0
  43. agent_evolve/application/composition_portfolio_selection.py +363 -0
  44. agent_evolve/application/concurrent_stage.py +144 -0
  45. agent_evolve/application/contextual_action_allocation.py +181 -0
  46. agent_evolve/application/contextual_campaign_outcomes.py +267 -0
  47. agent_evolve/application/contextual_campaign_planning.py +1366 -0
  48. agent_evolve/application/contextual_delayed_credit.py +651 -0
  49. agent_evolve/application/contextual_search_controller.py +2374 -0
  50. agent_evolve/application/current_prefix_forecast_opportunity.py +714 -0
  51. agent_evolve/application/decision_metric_projection.py +112 -0
  52. agent_evolve/application/derived_action_semantics.py +129 -0
  53. agent_evolve/application/detailed_evaluation.py +449 -0
  54. agent_evolve/application/earned_lineage.py +1011 -0
  55. agent_evolve/application/effective_choice_audit.py +484 -0
  56. agent_evolve/application/empirical_consequence_calibration.py +908 -0
  57. agent_evolve/application/evaluation_accounting.py +325 -0
  58. agent_evolve/application/evaluation_cache.py +199 -0
  59. agent_evolve/application/evaluation_escrow.py +547 -0
  60. agent_evolve/application/evaluation_recourse.py +253 -0
  61. agent_evolve/application/event_recorder.py +151 -0
  62. agent_evolve/application/evolution_campaign.py +1840 -0
  63. agent_evolve/application/executable_hypothesis.py +323 -0
  64. agent_evolve/application/factorial_branch_pilot.py +772 -0
  65. agent_evolve/application/finite_acquisition_capacity_recourse.py +672 -0
  66. agent_evolve/application/finite_acquisition_residual_expert.py +373 -0
  67. agent_evolve/application/finite_acquisition_variation_envelope.py +802 -0
  68. agent_evolve/application/finite_action_hypothesis_semantics.py +446 -0
  69. agent_evolve/application/finite_action_selection.py +188 -0
  70. agent_evolve/application/finite_action_set.py +306 -0
  71. agent_evolve/application/finite_action_transition.py +537 -0
  72. agent_evolve/application/finite_variation_eligibility.py +296 -0
  73. agent_evolve/application/forecast_geometry_portfolio.py +799 -0
  74. agent_evolve/application/forecast_opportunity_shadow_calibration.py +316 -0
  75. agent_evolve/application/front_proximity_admission.py +311 -0
  76. agent_evolve/application/front_proximity_parent_basis.py +458 -0
  77. agent_evolve/application/frozen_hurdle_score.py +659 -0
  78. agent_evolve/application/g3_causal_screen.py +2257 -0
  79. agent_evolve/application/g3_causal_validation.py +1046 -0
  80. agent_evolve/application/g3_postseal_curation.py +818 -0
  81. agent_evolve/application/gated_agentic_generator.py +205 -0
  82. agent_evolve/application/generation_feedback.py +293 -0
  83. agent_evolve/application/generative_proposal_journal.py +185 -0
  84. agent_evolve/application/geometry_conditional_elasticity.py +453 -0
  85. agent_evolve/application/global_wave_action_allocation.py +1151 -0
  86. agent_evolve/application/head_mass_conditional_seat.py +268 -0
  87. agent_evolve/application/identifiable_reflection_evidence.py +1147 -0
  88. agent_evolve/application/identifiable_reflection_learning.py +395 -0
  89. agent_evolve/application/identifiable_reflection_request.py +364 -0
  90. agent_evolve/application/in_memory_residual_archive.py +341 -0
  91. agent_evolve/application/insight_memory.py +1804 -0
  92. agent_evolve/application/live_runtime_manifest.py +758 -0
  93. agent_evolve/application/llm_task_queue.py +769 -0
  94. agent_evolve/application/matched_finite_action_block.py +409 -0
  95. agent_evolve/application/materialized_action_broker.py +2328 -0
  96. agent_evolve/application/materialized_action_constraints.py +83 -0
  97. agent_evolve/application/materialized_variation.py +211 -0
  98. agent_evolve/application/multi_option_evolution.py +1536 -0
  99. agent_evolve/application/outcome_adaptive_action_racing.py +2827 -0
  100. agent_evolve/application/outcome_adaptive_residual_campaign_runtime.py +580 -0
  101. agent_evolve/application/outcome_adaptive_residual_portfolio_evolution.py +3671 -0
  102. agent_evolve/application/outcome_conditioned_portfolio_selection.py +1374 -0
  103. agent_evolve/application/outcome_relation.py +193 -0
  104. agent_evolve/application/paired_allocation_comparison.py +241 -0
  105. agent_evolve/application/paired_block_schedule.py +127 -0
  106. agent_evolve/application/parent_measurement.py +226 -0
  107. agent_evolve/application/pareto_archive.py +811 -0
  108. agent_evolve/application/portfolio_campaign_runtime.py +4739 -0
  109. agent_evolve/application/portfolio_evolution.py +2950 -0
  110. agent_evolve/application/portfolio_hypothesis_observations.py +814 -0
  111. agent_evolve/application/portfolio_memory_attribution.py +581 -0
  112. agent_evolve/application/portfolio_memory_dose.py +788 -0
  113. agent_evolve/application/portfolio_memory_matched_control.py +938 -0
  114. agent_evolve/application/portfolio_memory_transfer.py +297 -0
  115. agent_evolve/application/portfolio_optimization_memory.py +363 -0
  116. agent_evolve/application/portfolio_outcome_feedback.py +1613 -0
  117. agent_evolve/application/portfolio_projection.py +335 -0
  118. agent_evolve/application/portfolio_recombination.py +2032 -0
  119. agent_evolve/application/post_evolution_reflection.py +834 -0
  120. agent_evolve/application/postcommit_rank_authority.py +245 -0
  121. agent_evolve/application/precommitted_portfolio_racing.py +2762 -0
  122. agent_evolve/application/prequential_archive_opportunity_calibration.py +1154 -0
  123. agent_evolve/application/prequential_residual_exploration.py +343 -0
  124. agent_evolve/application/prequential_score_portfolio.py +954 -0
  125. agent_evolve/application/projections.py +292 -0
  126. agent_evolve/application/protected_action_committee.py +1027 -0
  127. agent_evolve/application/protected_branch_pilot.py +376 -0
  128. agent_evolve/application/protected_current_prefix_forecast_opportunity.py +552 -0
  129. agent_evolve/application/provider_replay.py +910 -0
  130. agent_evolve/application/rank_balanced_causal_pilot.py +1372 -0
  131. agent_evolve/application/recombination_residual_expert.py +403 -0
  132. agent_evolve/application/reflection_workflow.py +571 -0
  133. agent_evolve/application/region_conditional_credit.py +911 -0
  134. agent_evolve/application/residual_campaign_runtime.py +531 -0
  135. agent_evolve/application/residual_headroom_campaign_runtime.py +459 -0
  136. agent_evolve/application/residual_headroom_ledger.py +1544 -0
  137. agent_evolve/application/residual_learning_transaction.py +396 -0
  138. agent_evolve/application/residual_portfolio_evolution.py +1228 -0
  139. agent_evolve/application/residual_reachability.py +749 -0
  140. agent_evolve/application/residual_stage_credit.py +499 -0
  141. agent_evolve/application/same_prefix_paired_audit.py +1580 -0
  142. agent_evolve/application/semantic_coverage_score_portfolio.py +838 -0
  143. agent_evolve/application/sequential_lineage_allocation.py +1017 -0
  144. agent_evolve/application/sequential_market_replay.py +1395 -0
  145. agent_evolve/application/sequential_residual_campaign_runtime.py +305 -0
  146. agent_evolve/application/sequential_residual_portfolio_evolution.py +940 -0
  147. agent_evolve/application/single_score_action_allocation.py +299 -0
  148. agent_evolve/application/source_exposure_allocation.py +906 -0
  149. agent_evolve/application/staged_memory.py +210 -0
  150. agent_evolve/application/stratified_cold_start_allocation.py +732 -0
  151. agent_evolve/application/support_guarded_hurdle_score.py +549 -0
  152. agent_evolve/application/target_conditioned_action_forecast.py +595 -0
  153. agent_evolve/application/target_conditioned_campaign.py +566 -0
  154. agent_evolve/application/treatment_assignment.py +201 -0
  155. agent_evolve/application/trusted_objective_evidence.py +217 -0
  156. agent_evolve/application/two_stage_action_evolution.py +1131 -0
  157. agent_evolve/application/v8lite_allocation_policy.py +1083 -0
  158. agent_evolve/application/v9_candidate_policy.py +1303 -0
  159. agent_evolve/bootstrap.py +108 -0
  160. agent_evolve/campaign_presets.py +517 -0
  161. agent_evolve/campaign_profiles.py +452 -0
  162. agent_evolve/campaign_variation_topology.py +288 -0
  163. agent_evolve/campaign_workload.py +950 -0
  164. agent_evolve/cli.py +797 -0
  165. agent_evolve/contract.py +241 -0
  166. agent_evolve/core/__init__.py +91 -0
  167. agent_evolve/core/action_semantics.py +411 -0
  168. agent_evolve/core/authored.py +105 -0
  169. agent_evolve/core/formatting.py +286 -0
  170. agent_evolve/core/optimization_semantics.py +324 -0
  171. agent_evolve/core/problem.py +167 -0
  172. agent_evolve/core/results.py +323 -0
  173. agent_evolve/core/stats.py +70 -0
  174. agent_evolve/core/telemetry.py +100 -0
  175. agent_evolve/domain/__init__.py +89 -0
  176. agent_evolve/domain/artifact.py +162 -0
  177. agent_evolve/domain/durable_text.py +68 -0
  178. agent_evolve/domain/event.py +1454 -0
  179. agent_evolve/domain/finite_action_set.py +426 -0
  180. agent_evolve/domain/finite_variation.py +526 -0
  181. agent_evolve/domain/generative_emission.py +559 -0
  182. agent_evolve/domain/ids.py +163 -0
  183. agent_evolve/domain/inline_text.py +106 -0
  184. agent_evolve/domain/insight.py +27 -0
  185. agent_evolve/domain/lineage.py +737 -0
  186. agent_evolve/domain/llm_task_queue.py +960 -0
  187. agent_evolve/domain/outcome.py +96 -0
  188. agent_evolve/domain/patch.py +854 -0
  189. agent_evolve/domain/typed_json.py +542 -0
  190. agent_evolve/domain/variation_space.py +158 -0
  191. agent_evolve/driver.py +1014 -0
  192. agent_evolve/harness/__init__.py +29 -0
  193. agent_evolve/harness/base.py +242 -0
  194. agent_evolve/harness/directives.py +163 -0
  195. agent_evolve/harness/generative_seal.py +479 -0
  196. agent_evolve/harness/registry.py +41 -0
  197. agent_evolve/infrastructure/__init__.py +39 -0
  198. agent_evolve/infrastructure/artifacts/__init__.py +6 -0
  199. agent_evolve/infrastructure/artifacts/_verification.py +67 -0
  200. agent_evolve/infrastructure/artifacts/filesystem.py +343 -0
  201. agent_evolve/infrastructure/artifacts/in_memory.py +73 -0
  202. agent_evolve/infrastructure/asyncio_runtime.py +109 -0
  203. agent_evolve/infrastructure/authored_runtime.py +188 -0
  204. agent_evolve/infrastructure/authored_worker.py +171 -0
  205. agent_evolve/infrastructure/clock.py +53 -0
  206. agent_evolve/infrastructure/events/__init__.py +6 -0
  207. agent_evolve/infrastructure/events/_validation.py +89 -0
  208. agent_evolve/infrastructure/events/in_memory.py +56 -0
  209. agent_evolve/infrastructure/events/jsonl.py +193 -0
  210. agent_evolve/infrastructure/exception_provenance.py +215 -0
  211. agent_evolve/infrastructure/ids.py +118 -0
  212. agent_evolve/infrastructure/lineage_codec.py +1836 -0
  213. agent_evolve/infrastructure/outcome_adaptive_phase_journal.py +170 -0
  214. agent_evolve/infrastructure/residual_headroom_journal.py +221 -0
  215. agent_evolve/infrastructure/resource_lease.py +370 -0
  216. agent_evolve/infrastructure/sanitization/__init__.py +8 -0
  217. agent_evolve/infrastructure/sanitization/strict_json.py +484 -0
  218. agent_evolve/infrastructure/sequential_phase_journal.py +170 -0
  219. agent_evolve/infrastructure/stream_liveness.py +383 -0
  220. agent_evolve/infrastructure/subprocess_boundary.py +136 -0
  221. agent_evolve/integrations/__init__.py +1 -0
  222. agent_evolve/integrations/botorch/__init__.py +28 -0
  223. agent_evolve/integrations/botorch/finite_qlognehvi.py +190 -0
  224. agent_evolve/integrations/botorch/finite_qlognehvi_batch.py +155 -0
  225. agent_evolve/integrations/botorch/finite_qlognehvi_batch_identity.py +20 -0
  226. agent_evolve/integrations/botorch/finite_qlognehvi_batch_worker.py +55 -0
  227. agent_evolve/integrations/botorch/finite_qlognehvi_identity.py +22 -0
  228. agent_evolve/integrations/botorch/finite_qlognehvi_worker.py +55 -0
  229. agent_evolve/integrations/botorch/subprocess_qlognehvi.py +261 -0
  230. agent_evolve/integrations/botorch/subprocess_qlognehvi_batch.py +273 -0
  231. agent_evolve/integrations/completion.py +242 -0
  232. agent_evolve/integrations/pydantic_ai/__init__.py +441 -0
  233. agent_evolve/integrations/pydantic_ai/action_forecast.py +1068 -0
  234. agent_evolve/integrations/pydantic_ai/agentic_generator.py +2308 -0
  235. agent_evolve/integrations/pydantic_ai/async_generator.py +1604 -0
  236. agent_evolve/integrations/pydantic_ai/boundary_codec.py +1526 -0
  237. agent_evolve/integrations/pydantic_ai/calibrated_portfolio_campaign.py +756 -0
  238. agent_evolve/integrations/pydantic_ai/calibrated_portfolio_selection.py +7537 -0
  239. agent_evolve/integrations/pydantic_ai/campaign_acquisition.py +609 -0
  240. agent_evolve/integrations/pydantic_ai/execution_binding.py +138 -0
  241. agent_evolve/integrations/pydantic_ai/forecast_geometry_action_committee.py +217 -0
  242. agent_evolve/integrations/pydantic_ai/harness.py +159 -0
  243. agent_evolve/integrations/pydantic_ai/heterogeneous_model_execution.py +306 -0
  244. agent_evolve/integrations/pydantic_ai/hierarchical_residual_adaptive_semantic_view.py +179 -0
  245. agent_evolve/integrations/pydantic_ai/json_schema_dialect.py +108 -0
  246. agent_evolve/integrations/pydantic_ai/materialized_hierarchical_residual_expert.py +952 -0
  247. agent_evolve/integrations/pydantic_ai/materialized_portfolio_judge.py +520 -0
  248. agent_evolve/integrations/pydantic_ai/model_execution_profile.py +659 -0
  249. agent_evolve/integrations/pydantic_ai/outbound_request_manifest.py +1170 -0
  250. agent_evolve/integrations/pydantic_ai/portable_residual_consequence_features.py +575 -0
  251. agent_evolve/integrations/pydantic_ai/portfolio_selection.py +422 -0
  252. agent_evolve/integrations/pydantic_ai/progress_aware_openrouter.py +416 -0
  253. agent_evolve/integrations/pydantic_ai/provider_attempt_join.py +1523 -0
  254. agent_evolve/integrations/pydantic_ai/provider_free_calibrated_runner.py +607 -0
  255. agent_evolve/integrations/pydantic_ai/queued_runner.py +2634 -0
  256. agent_evolve/integrations/pydantic_ai/reconciled_residual_reachability.py +1417 -0
  257. agent_evolve/integrations/pydantic_ai/residual_forecast_geometry.py +445 -0
  258. agent_evolve/integrations/pydantic_ai/residual_reachability.py +674 -0
  259. agent_evolve/integrations/pydantic_ai/residual_semantic_cells.py +239 -0
  260. agent_evolve/integrations/pydantic_ai/sealed_output_replay.py +1068 -0
  261. agent_evolve/integrations/pydantic_ai/semantic_coverage_residual_portfolio.py +770 -0
  262. agent_evolve/integrations/pydantic_ai/semantic_decision_replay.py +383 -0
  263. agent_evolve/integrations/pydantic_ai/support_adaptive_residual_portfolio.py +135 -0
  264. agent_evolve/integrations/pydantic_ai/trusted_residual_prompt_context.py +143 -0
  265. agent_evolve/integrations/pydantic_ai/validated_openrouter_model.py +107 -0
  266. agent_evolve/integrations/pymoo_adapter.py +242 -0
  267. agent_evolve/policies/__init__.py +17 -0
  268. agent_evolve/policies/check.py +469 -0
  269. agent_evolve/policies/emit_scaffold.py +451 -0
  270. agent_evolve/policies/feedback/__init__.py +37 -0
  271. agent_evolve/policies/feedback/held_out_asn.py +1325 -0
  272. agent_evolve/policies/genetic.py +607 -0
  273. agent_evolve/policies/llm_backoff.py +183 -0
  274. agent_evolve/policies/llm_chooser.py +226 -0
  275. agent_evolve/policies/llm_generator.py +1760 -0
  276. agent_evolve/policies/llm_init.py +267 -0
  277. agent_evolve/policies/llm_operator.py +109 -0
  278. agent_evolve/policies/llm_prior.py +194 -0
  279. agent_evolve/policies/llm_surrogate.py +334 -0
  280. agent_evolve/policies/measurement_evidence.py +704 -0
  281. agent_evolve/policies/memory/__init__.py +223 -0
  282. agent_evolve/policies/memory/balanced_subset_blocks.py +707 -0
  283. agent_evolve/policies/memory/compatibility_matching.py +593 -0
  284. agent_evolve/policies/memory/global_falsification.py +1841 -0
  285. agent_evolve/policies/memory/prompt_shape.py +503 -0
  286. agent_evolve/policies/memory/randomized_subset.py +714 -0
  287. agent_evolve/policies/memory/staged_causal.py +1270 -0
  288. agent_evolve/policies/memory/treatment_compliance.py +759 -0
  289. agent_evolve/policies/objective_resolution/__init__.py +17 -0
  290. agent_evolve/policies/objective_resolution/fixed_grid.py +364 -0
  291. agent_evolve/policies/operator_portfolio.py +407 -0
  292. agent_evolve/policies/reguidance.py +1133 -0
  293. agent_evolve/policies/reward/__init__.py +83 -0
  294. agent_evolve/policies/reward/affine_candidate_consequence.py +156 -0
  295. agent_evolve/policies/reward/affine_candidate_consequence_3d.py +159 -0
  296. agent_evolve/policies/reward/affine_hypervolume.py +490 -0
  297. agent_evolve/policies/reward/affine_hypervolume_3d.py +567 -0
  298. agent_evolve/policies/reward/contextual_marginal_utility.py +318 -0
  299. agent_evolve/policies/reward/frozen_archive.py +360 -0
  300. agent_evolve/policies/reward/frozen_wave_archive.py +368 -0
  301. agent_evolve/policies/search_state.py +208 -0
  302. agent_evolve/policies/selection/__init__.py +345 -0
  303. agent_evolve/policies/selection/acquisition_certified_slate.py +684 -0
  304. agent_evolve/policies/selection/affine_frontier_context.py +330 -0
  305. agent_evolve/policies/selection/affine_frontier_target.py +473 -0
  306. agent_evolve/policies/selection/archive_elite.py +1346 -0
  307. agent_evolve/policies/selection/calibrated_portfolio_binding.py +640 -0
  308. agent_evolve/policies/selection/calibrated_slate.py +1394 -0
  309. agent_evolve/policies/selection/calibrated_slate_codec.py +579 -0
  310. agent_evolve/policies/selection/common_candidate_pool.py +685 -0
  311. agent_evolve/policies/selection/diagnostic_sampling.py +319 -0
  312. agent_evolve/policies/selection/disjoint_pairs.py +479 -0
  313. agent_evolve/policies/selection/elite_explorer.py +719 -0
  314. agent_evolve/policies/selection/finite_action.py +187 -0
  315. agent_evolve/policies/selection/finite_option_prompt_projection.py +377 -0
  316. agent_evolve/policies/selection/finite_palette_evidence.py +247 -0
  317. agent_evolve/policies/selection/forecast_calibration.py +922 -0
  318. agent_evolve/policies/selection/frontier_probe_slate.py +814 -0
  319. agent_evolve/policies/selection/frozen_archive_pairs.py +762 -0
  320. agent_evolve/policies/selection/full_support_slate.py +91 -0
  321. agent_evolve/policies/selection/meaningful_direction.py +240 -0
  322. agent_evolve/policies/selection/memory_dose_feasibility.py +259 -0
  323. agent_evolve/policies/selection/model_anchored_slate.py +826 -0
  324. agent_evolve/policies/selection/phenotype_recourse.py +979 -0
  325. agent_evolve/policies/selection/proposal_support.py +368 -0
  326. agent_evolve/policies/selection/random_portfolio.py +254 -0
  327. agent_evolve/policies/selection/regret_bounded_slate.py +1084 -0
  328. agent_evolve/policies/selection/residual_frontier.py +463 -0
  329. agent_evolve/policies/selection/residual_frontier_target.py +605 -0
  330. agent_evolve/policies/selection/structural_posterior_slate.py +1571 -0
  331. agent_evolve/policies/selection/target_conditioned_allocator.py +648 -0
  332. agent_evolve/policies/selection/target_conditioned_features.py +812 -0
  333. agent_evolve/policies/selection/target_conditioned_prequential.py +1527 -0
  334. agent_evolve/policies/selection/task_keyed_palette.py +906 -0
  335. agent_evolve/policies/semantics.py +147 -0
  336. agent_evolve/policies/structure.py +362 -0
  337. agent_evolve/policies/structured_output_budget.py +62 -0
  338. agent_evolve/policies/surrogate.py +696 -0
  339. agent_evolve/policies/variation/__init__.py +1 -0
  340. agent_evolve/policies/variation/compositional_finite_catalog.py +426 -0
  341. agent_evolve/policies/variation/crossover_inheritance.py +575 -0
  342. agent_evolve/policies/variation/disjoint_recombination.py +611 -0
  343. agent_evolve/policies/variation/exact_composition_capacity.py +214 -0
  344. agent_evolve/policies/variation/exact_parent_crossover.py +950 -0
  345. agent_evolve/policies/variation/multiscale_restart_catalog.py +372 -0
  346. agent_evolve/policies/variation/source_union_finite_catalog.py +403 -0
  347. agent_evolve/policies/variation/typed_patch.py +1981 -0
  348. agent_evolve/policies/weighted_prior.py +394 -0
  349. agent_evolve/ports/__init__.py +383 -0
  350. agent_evolve/ports/action_allocation.py +733 -0
  351. agent_evolve/ports/action_allocation_frame.py +1153 -0
  352. agent_evolve/ports/action_allocation_frame_commit.py +294 -0
  353. agent_evolve/ports/action_allocation_frame_commit_v3.py +432 -0
  354. agent_evolve/ports/action_allocation_frame_v3.py +995 -0
  355. agent_evolve/ports/action_forecast.py +1568 -0
  356. agent_evolve/ports/action_metric_projection.py +165 -0
  357. agent_evolve/ports/agentic_generator.py +1561 -0
  358. agent_evolve/ports/archive_context.py +136 -0
  359. agent_evolve/ports/artifact_sanitizer.py +44 -0
  360. agent_evolve/ports/artifact_store.py +225 -0
  361. agent_evolve/ports/clock.py +13 -0
  362. agent_evolve/ports/contextual_search_allocation.py +827 -0
  363. agent_evolve/ports/decision_metric_projection.py +258 -0
  364. agent_evolve/ports/event_store.py +55 -0
  365. agent_evolve/ports/executable_hypothesis.py +557 -0
  366. agent_evolve/ports/finite_acquisition.py +377 -0
  367. agent_evolve/ports/finite_acquisition_batch.py +296 -0
  368. agent_evolve/ports/finite_acquisition_batch_json.py +164 -0
  369. agent_evolve/ports/finite_acquisition_json.py +247 -0
  370. agent_evolve/ports/finite_acquisition_space.py +168 -0
  371. agent_evolve/ports/finite_action_selection.py +348 -0
  372. agent_evolve/ports/finite_action_set.py +256 -0
  373. agent_evolve/ports/frontier_target.py +396 -0
  374. agent_evolve/ports/generation_failure.py +43 -0
  375. agent_evolve/ports/hard_feasibility.py +233 -0
  376. agent_evolve/ports/id_factory.py +34 -0
  377. agent_evolve/ports/llm_task_queue.py +93 -0
  378. agent_evolve/ports/objective_resolution.py +419 -0
  379. agent_evolve/ports/paired_allocation_comparison.py +401 -0
  380. agent_evolve/ports/paired_block_schedule.py +475 -0
  381. agent_evolve/ports/parent_measurement.py +336 -0
  382. agent_evolve/ports/portfolio_memory_dose.py +643 -0
  383. agent_evolve/ports/portfolio_selection.py +3169 -0
  384. agent_evolve/ports/postcommit_rank_authority.py +467 -0
  385. agent_evolve/ports/presented_action_evidence.py +794 -0
  386. agent_evolve/ports/resource_lease.py +162 -0
  387. agent_evolve/ports/structured_generator.py +734 -0
  388. agent_evolve/ports/structured_output_budget.py +120 -0
  389. agent_evolve/ports/subprocess_boundary.py +138 -0
  390. agent_evolve/ports/treatment_assignment.py +466 -0
  391. agent_evolve/ports/variation_catalog.py +76 -0
  392. agent_evolve/ports/variation_source.py +226 -0
  393. agent_evolve/proposal_mode.py +157 -0
  394. agent_evolve/proposers/__init__.py +10 -0
  395. agent_evolve/proposers/random_proposer.py +188 -0
  396. agent_evolve/provider_accounting.py +163 -0
  397. agent_evolve/py.typed +0 -0
  398. agent_evolve/reference_method.py +1570 -0
  399. agent_evolve/session/__init__.py +11 -0
  400. agent_evolve/session/authorship.py +864 -0
  401. agent_evolve/session/evaluate.py +236 -0
  402. agent_evolve/session/fidelity.py +237 -0
  403. agent_evolve/session/genetic_loop.py +742 -0
  404. agent_evolve/session/loop.py +803 -0
  405. agent_evolve/session/screening.py +671 -0
  406. agent_evolve/settings.py +376 -0
  407. agent_evolve/workload_kit.py +368 -0
  408. agent_evolve/workload_prompt.py +398 -0
  409. agentevolve_optimizer-0.5.0.dist-info/METADATA +599 -0
  410. agentevolve_optimizer-0.5.0.dist-info/RECORD +414 -0
  411. agentevolve_optimizer-0.5.0.dist-info/WHEEL +5 -0
  412. agentevolve_optimizer-0.5.0.dist-info/entry_points.txt +2 -0
  413. agentevolve_optimizer-0.5.0.dist-info/licenses/LICENSE +21 -0
  414. 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
+ ]