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,432 @@
1
+ """Exact treatment executions for durable operational allocator-v3 commits."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import hashlib
6
+ import json
7
+ from dataclasses import dataclass, field
8
+
9
+ from agent_evolve.domain.patch import require_sha256
10
+ from agent_evolve.ports.action_allocation_frame_commit import (
11
+ validate_treatment_occurrence_frame_request,
12
+ )
13
+ from agent_evolve.ports.action_allocation_frame_v3 import (
14
+ OperationalFrameActionAllocationRequest,
15
+ OperationalFrameActionAllocationResult,
16
+ validate_operational_frame_action_allocation_result,
17
+ )
18
+ from agent_evolve.ports.treatment_assignment import (
19
+ ProspectiveTreatmentAssignmentReceipt,
20
+ TreatmentOccurrence,
21
+ )
22
+
23
+
24
+ _COMMIT_INPUT_DOMAIN = b"agent-evolve:operational-frame-allocation-commit-input:v1\x00"
25
+ _EXECUTION_DOMAIN = b"agent-evolve:operational-frame-allocation-execution:v1\x00"
26
+ _PAIRED_STRUCTURE_DOMAIN = b"agent-evolve:allocation-v3-paired-structure:v1\x00"
27
+ _ELIGIBLE_STRUCTURE_DOMAIN = b"agent-evolve:allocation-v3-eligible-structure:v1\x00"
28
+ _TERMINAL_LEDGER_DURABILITY_SCOPE = (
29
+ "external_materialization_and_fsync_required_before_commit"
30
+ )
31
+
32
+
33
+ def _canonical_json(value: object) -> bytes:
34
+ return json.dumps(
35
+ value,
36
+ allow_nan=False,
37
+ ensure_ascii=True,
38
+ separators=(",", ":"),
39
+ sort_keys=True,
40
+ ).encode("ascii")
41
+
42
+
43
+ def _hash(domain: bytes, value: object) -> str:
44
+ return hashlib.sha256(domain + _canonical_json(value)).hexdigest()
45
+
46
+
47
+ def paired_comparison_structure_record(
48
+ request: OperationalFrameActionAllocationRequest,
49
+ ) -> dict[str, object]:
50
+ """Return mechanically comparable task/protocol facts for one v3 arm.
51
+
52
+ This record binds provider-neutral forecast-policy identity and the common
53
+ inference protocol, but deliberately excludes forecast values and source
54
+ receipts. Those treatment-specific values remain authenticated by each
55
+ exact frame and by the upstream durable allocation commit.
56
+ """
57
+
58
+ if type(request) is not OperationalFrameActionAllocationRequest:
59
+ raise TypeError("request must be an exact operational frame request")
60
+ request.__post_init__()
61
+ base = request.allocation
62
+ frame = base.frame
63
+ index_by_id = {
64
+ forecast.option_id: index
65
+ for index, forecast in zip(
66
+ frame.global_row_indices,
67
+ frame.forecasts,
68
+ strict=True,
69
+ )
70
+ }
71
+ forecast_by_id = {value.option_id: value for value in frame.forecasts}
72
+ eligible = [
73
+ {
74
+ "global_row_index": index_by_id[option_id],
75
+ "option_id": option_id,
76
+ "option_identity_sha256": forecast_by_id[
77
+ option_id
78
+ ].option_identity_sha256,
79
+ "child_configuration_sha256": forecast_by_id[
80
+ option_id
81
+ ].child_configuration_sha256,
82
+ "family": forecast_by_id[option_id].family,
83
+ }
84
+ for option_id in base.eligible_option_ids
85
+ ]
86
+ block = None if frame.block_request is None else frame.block_request.block
87
+ record = {
88
+ "schema_version": 1,
89
+ "utility_policy": base.utility.to_record(),
90
+ "portfolio_size": base.portfolio_size,
91
+ "finite_contract_identity_sha256": (
92
+ frame.request.finite_variation_contract.identity_sha256
93
+ ),
94
+ "optimization_semantics": frame.request.optimization_semantics.to_record(),
95
+ "action_semantics": frame.request.action_semantics.to_record(),
96
+ "parent_metric_values": [
97
+ value.to_record() for value in frame.request.parent_metric_values
98
+ ],
99
+ "metric_scales": [
100
+ value.to_record() for value in frame.request.metric_scales
101
+ ],
102
+ "forecast_generation_policy": {
103
+ "policy_id": frame.policy_identity[0],
104
+ "policy_version": frame.policy_identity[1],
105
+ "policy_definition_sha256": frame.policy_identity[2],
106
+ },
107
+ "inference_protocol": {
108
+ "operation": frame.request.operation,
109
+ "max_output_tokens": frame.request.max_output_tokens,
110
+ "temperature_hex": (
111
+ None
112
+ if frame.request.temperature is None
113
+ else float(frame.request.temperature).hex()
114
+ ),
115
+ },
116
+ "frame_kind": frame.frame_kind.value,
117
+ "global_row_indices": list(frame.global_row_indices),
118
+ "eligible_options": eligible,
119
+ "eligible_options_structure_sha256": _hash(
120
+ _ELIGIBLE_STRUCTURE_DOMAIN,
121
+ eligible,
122
+ ),
123
+ "subset_policy": (
124
+ None if frame.subset_policy is None else frame.subset_policy.to_record()
125
+ ),
126
+ "partition_structure": (
127
+ None
128
+ if block is None
129
+ else {
130
+ "layout_sha256": frame.block_request.layout.layout_sha256,
131
+ "block_spec_sha256": block.block_spec_sha256,
132
+ "block_index": block.block_index,
133
+ "global_row_start": block.global_row_start,
134
+ "global_row_stop": block.global_row_stop,
135
+ }
136
+ ),
137
+ }
138
+ return record
139
+
140
+
141
+ def paired_comparison_structure_sha256(
142
+ request: OperationalFrameActionAllocationRequest,
143
+ ) -> str:
144
+ return _hash(_PAIRED_STRUCTURE_DOMAIN, paired_comparison_structure_record(request))
145
+
146
+
147
+ def _validate_common_configuration(
148
+ requests: tuple[OperationalFrameActionAllocationRequest, ...],
149
+ ) -> tuple[str, str]:
150
+ first = requests[0]
151
+ expected_utility_callable = first.allocation.utility.utility
152
+ if any(
153
+ value.allocation.utility.utility is not expected_utility_callable
154
+ for value in requests
155
+ ):
156
+ raise ValueError(
157
+ "all treatment arms must share the same in-process utility executable"
158
+ )
159
+ expected_configuration = first.allocator_configuration_sha256
160
+ if any(
161
+ value.allocator_configuration_sha256 != expected_configuration
162
+ for value in requests
163
+ ):
164
+ raise ValueError(
165
+ "all treatment arms must share one allocator-v3 configuration, "
166
+ "resolution, public seed, mode, and allocation-unit key"
167
+ )
168
+ expected_structure = paired_comparison_structure_sha256(first)
169
+ if any(
170
+ paired_comparison_structure_sha256(value) != expected_structure
171
+ for value in requests
172
+ ):
173
+ raise ValueError(
174
+ "all treatment arms must share utility, portfolio budget, eligible "
175
+ "actions, finite contract, structural frame, and metric semantics"
176
+ )
177
+ return expected_configuration, expected_structure
178
+
179
+
180
+ @dataclass(frozen=True, slots=True, eq=False)
181
+ class OperationalFrameActionAllocationCommitInput:
182
+ """Complete common-key v3 allocation inputs for one treatment wave.
183
+
184
+ Utility policy metadata is the durable, cross-process source commitment.
185
+ Construction additionally requires object identity for the injected utility
186
+ callable across this in-process wave. Python object identity is deliberately
187
+ not serialized because it is neither stable nor replayable across processes.
188
+ """
189
+
190
+ upstream_input_sha256: str
191
+ terminal_provider_ledger_commitment_sha256: str
192
+ treatment_assignment: ProspectiveTreatmentAssignmentReceipt = field(
193
+ repr=False,
194
+ compare=False,
195
+ )
196
+ allocation_requests: tuple[OperationalFrameActionAllocationRequest, ...] = field(
197
+ repr=False,
198
+ compare=False,
199
+ )
200
+
201
+ def __post_init__(self) -> None:
202
+ require_sha256(self.upstream_input_sha256, "upstream_input_sha256")
203
+ require_sha256(
204
+ self.terminal_provider_ledger_commitment_sha256,
205
+ "terminal_provider_ledger_commitment_sha256",
206
+ )
207
+ if type(self.treatment_assignment) is not ProspectiveTreatmentAssignmentReceipt:
208
+ raise TypeError(
209
+ "treatment_assignment must be an exact prospective receipt"
210
+ )
211
+ self.treatment_assignment.__post_init__()
212
+ if type(self.allocation_requests) is not tuple or not (
213
+ self.allocation_requests
214
+ ) or any(
215
+ type(value) is not OperationalFrameActionAllocationRequest
216
+ for value in self.allocation_requests
217
+ ):
218
+ raise ValueError(
219
+ "allocation_requests must be a non-empty exact v3 request tuple"
220
+ )
221
+ if len(self.allocation_requests) != len(
222
+ self.treatment_assignment.occurrence_input_order
223
+ ):
224
+ raise ValueError("v3 requests must cover every treatment occurrence")
225
+ for occurrence, request in zip(
226
+ self.treatment_assignment.occurrence_input_order,
227
+ self.allocation_requests,
228
+ strict=True,
229
+ ):
230
+ request.__post_init__()
231
+ validate_treatment_occurrence_frame_request(
232
+ occurrence,
233
+ request.allocation,
234
+ )
235
+ _validate_common_configuration(self.allocation_requests)
236
+
237
+ @property
238
+ def common_allocator_configuration_sha256(self) -> str:
239
+ self.__post_init__()
240
+ return self.allocation_requests[0].allocator_configuration_sha256
241
+
242
+ @property
243
+ def common_paired_comparison_structure_sha256(self) -> str:
244
+ self.__post_init__()
245
+ return paired_comparison_structure_sha256(self.allocation_requests[0])
246
+
247
+ @property
248
+ def terminal_provider_ledger_commitment_record(self) -> dict[str, object]:
249
+ return {
250
+ "commitment_sha256": (
251
+ self.terminal_provider_ledger_commitment_sha256
252
+ ),
253
+ "durability_scope": _TERMINAL_LEDGER_DURABILITY_SCOPE,
254
+ "digest_alone_proves_durability": False,
255
+ }
256
+
257
+ def _unsigned_record(self) -> dict[str, object]:
258
+ self.__post_init__()
259
+ return {
260
+ "schema_version": 1,
261
+ "upstream_input_sha256": self.upstream_input_sha256,
262
+ "terminal_provider_ledger_commitment": (
263
+ self.terminal_provider_ledger_commitment_record
264
+ ),
265
+ "preregistration_chronology_boundary": {
266
+ "seed_provenance_digest_alone_proves_pre_forecast_timing": False,
267
+ "external_durable_release_required_for_chronology_claim": True,
268
+ "external_release_must_be_bound_by_upstream_input": True,
269
+ "upstream_input_sha256": self.upstream_input_sha256,
270
+ },
271
+ "treatment_assignment": self.treatment_assignment.to_record(),
272
+ "treatment_occurrence_order": [
273
+ value.to_record()
274
+ for value in self.treatment_assignment.occurrence_input_order
275
+ ],
276
+ "common_allocator_configuration_sha256": (
277
+ self.common_allocator_configuration_sha256
278
+ ),
279
+ "utility_executable_boundary": {
280
+ "same_object_identity_required_in_process": True,
281
+ "object_identity_serialized": False,
282
+ "durable_source_commitment": (
283
+ self.allocation_requests[0].allocation.utility.to_record()
284
+ ),
285
+ },
286
+ "common_score_resolution": (
287
+ self.allocation_requests[0].score_resolution.to_record()
288
+ ),
289
+ "common_tie_selection": (
290
+ self.allocation_requests[0].tie_selection.to_record()
291
+ ),
292
+ "common_paired_comparison_structure": paired_comparison_structure_record(
293
+ self.allocation_requests[0]
294
+ ),
295
+ "common_paired_comparison_structure_sha256": (
296
+ self.common_paired_comparison_structure_sha256
297
+ ),
298
+ "common_public_seed_uint64": (
299
+ self.allocation_requests[0].tie_selection.public_seed
300
+ ),
301
+ "common_allocation_unit_key": (
302
+ self.allocation_requests[0].tie_selection.allocation_unit_key
303
+ ),
304
+ "ordered_allocation_inputs": [
305
+ {
306
+ "treatment_occurrence_id": occurrence.occurrence_id.value,
307
+ "operational_request_sha256": request.request_sha256,
308
+ "base_allocation_request_sha256": (
309
+ request.allocation.request_sha256
310
+ ),
311
+ "frame_receipt_sha256": request.allocation.frame.receipt_sha256,
312
+ "source_forecast_receipt_sha256": (
313
+ request.allocation.frame.source_forecast_receipt_sha256
314
+ ),
315
+ "eligible_options_sha256": (
316
+ request.allocation.eligible_options_sha256
317
+ ),
318
+ }
319
+ for occurrence, request in zip(
320
+ self.treatment_assignment.occurrence_input_order,
321
+ self.allocation_requests,
322
+ strict=True,
323
+ )
324
+ ],
325
+ }
326
+
327
+ @property
328
+ def input_sha256(self) -> str:
329
+ return _hash(_COMMIT_INPUT_DOMAIN, self._unsigned_record())
330
+
331
+ def to_record(self) -> dict[str, object]:
332
+ record = self._unsigned_record()
333
+ return {**record, "input_sha256": _hash(_COMMIT_INPUT_DOMAIN, record)}
334
+
335
+ def __eq__(self, other: object) -> bool:
336
+ return (
337
+ type(other) is OperationalFrameActionAllocationCommitInput
338
+ and self.input_sha256 == other.input_sha256
339
+ )
340
+
341
+ __hash__ = None
342
+
343
+
344
+ @dataclass(frozen=True, slots=True, eq=False)
345
+ class OperationalFrameActionAllocationTreatmentExecution:
346
+ """One prospective treatment occurrence's exact allocator-v3 execution."""
347
+
348
+ treatment_assignment: ProspectiveTreatmentAssignmentReceipt = field(
349
+ repr=False,
350
+ compare=False,
351
+ )
352
+ treatment_occurrence: TreatmentOccurrence
353
+ request: OperationalFrameActionAllocationRequest = field(
354
+ repr=False,
355
+ compare=False,
356
+ )
357
+ result: OperationalFrameActionAllocationResult = field(
358
+ repr=False,
359
+ compare=False,
360
+ )
361
+
362
+ def __post_init__(self) -> None:
363
+ if type(self.treatment_assignment) is not ProspectiveTreatmentAssignmentReceipt:
364
+ raise TypeError(
365
+ "treatment_assignment must be an exact prospective receipt"
366
+ )
367
+ self.treatment_assignment.__post_init__()
368
+ if type(self.treatment_occurrence) is not TreatmentOccurrence:
369
+ raise TypeError("treatment_occurrence must be exact")
370
+ self.treatment_occurrence.__post_init__()
371
+ by_id = {
372
+ value.occurrence_id: value
373
+ for value in self.treatment_assignment.occurrence_input_order
374
+ }
375
+ expected = by_id.get(self.treatment_occurrence.occurrence_id)
376
+ if expected is None or expected != self.treatment_occurrence:
377
+ raise ValueError(
378
+ "treatment occurrence differs from its prospective assignment"
379
+ )
380
+ if type(self.request) is not OperationalFrameActionAllocationRequest:
381
+ raise TypeError("request must be an exact operational frame request")
382
+ self.request.__post_init__()
383
+ validate_treatment_occurrence_frame_request(
384
+ self.treatment_occurrence,
385
+ self.request.allocation,
386
+ )
387
+ if type(self.result) is not OperationalFrameActionAllocationResult:
388
+ raise TypeError("result must be an exact operational frame result")
389
+ validate_operational_frame_action_allocation_result(
390
+ self.request,
391
+ self.result,
392
+ )
393
+
394
+ def _unsigned_record(self) -> dict[str, object]:
395
+ self.__post_init__()
396
+ return {
397
+ "schema_version": 1,
398
+ "treatment_assignment_receipt_sha256": (
399
+ self.treatment_assignment.receipt_sha256
400
+ ),
401
+ "treatment_occurrence": self.treatment_occurrence.to_record(),
402
+ "frame": self.request.allocation.frame.to_record(),
403
+ "base_allocation_request": self.request.allocation.to_record(),
404
+ "operational_allocation_request": self.request.to_record(),
405
+ "decision": self.result.decision.to_record(),
406
+ "audit": self.result.audit.to_record(),
407
+ "operational_result_receipt_sha256": self.result.receipt_sha256,
408
+ }
409
+
410
+ @property
411
+ def receipt_sha256(self) -> str:
412
+ return _hash(_EXECUTION_DOMAIN, self._unsigned_record())
413
+
414
+ def to_record(self) -> dict[str, object]:
415
+ record = self._unsigned_record()
416
+ return {**record, "receipt_sha256": _hash(_EXECUTION_DOMAIN, record)}
417
+
418
+ def __eq__(self, other: object) -> bool:
419
+ return (
420
+ type(other) is OperationalFrameActionAllocationTreatmentExecution
421
+ and self.receipt_sha256 == other.receipt_sha256
422
+ )
423
+
424
+ __hash__ = None
425
+
426
+
427
+ __all__ = [
428
+ "OperationalFrameActionAllocationCommitInput",
429
+ "OperationalFrameActionAllocationTreatmentExecution",
430
+ "paired_comparison_structure_record",
431
+ "paired_comparison_structure_sha256",
432
+ ]