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,395 @@
1
+ """Canonical learning projection for identifiable campaign reflection.
2
+
3
+ The provider-facing reflection request deliberately receives only sealed,
4
+ direct, single-mutation evidence. This module closes the other side of that
5
+ boundary: it joins the exact request and validated provider result back to the
6
+ typed campaign input, then emits the one canonical learning envelope consumed
7
+ by :mod:`agent_evolve.application.campaign_learning_runtime`.
8
+
9
+ The projection is workload-neutral and side-effect free. In particular it
10
+ does not inspect a source-stage payload, consume recombination results, call a
11
+ provider, evaluate a candidate, or mutate campaign memory.
12
+ """
13
+
14
+ from __future__ import annotations
15
+
16
+ from agent_evolve.application.campaign_learning_runtime import (
17
+ CampaignReflectionLearningRecord,
18
+ CampaignReflectionLearningRecordCodec,
19
+ )
20
+ from agent_evolve.application.identifiable_reflection_evidence import (
21
+ IdentifiableMutationReflectionContrast,
22
+ )
23
+ from agent_evolve.application.identifiable_reflection_request import (
24
+ IDENTIFIABLE_REFLECTION_FACT_SCHEMA_DEFINITION_SHA256,
25
+ IDENTIFIABLE_REFLECTION_FACT_SCHEMA_ID,
26
+ IDENTIFIABLE_REFLECTION_FACT_SCHEMA_VERSION,
27
+ build_identifiable_reflection_generation_request,
28
+ identifiable_reflection_request_construction_record,
29
+ )
30
+ from agent_evolve.application.insight_memory import EmpiricalEvidenceSnapshot
31
+ from agent_evolve.application.portfolio_campaign_runtime import (
32
+ CampaignIdentifiableReflectionInput,
33
+ )
34
+ from agent_evolve.core.optimization_semantics import OptimizationSemantics
35
+ from agent_evolve.domain.finite_variation import FiniteActionEvidenceBinding
36
+ from agent_evolve.domain.patch import require_sha256
37
+ from agent_evolve.domain.typed_json import FrozenJsonObject, freeze_json, thaw_json
38
+ from agent_evolve.ports.agentic_generator import (
39
+ AgenticCallTelemetry,
40
+ ReflectionGenerationRequest,
41
+ ReflectionGenerationResult,
42
+ ReflectionInsightKind,
43
+ validate_reflection_evidence_catalog_result,
44
+ validate_reflection_insight_draft,
45
+ )
46
+ from agent_evolve.ports.decision_metric_projection import DecisionMetricProjection
47
+
48
+
49
+ def _object(value: dict[str, object]) -> FrozenJsonObject:
50
+ frozen = freeze_json(value)
51
+ if type(frozen) is not FrozenJsonObject: # pragma: no cover - closed root.
52
+ raise AssertionError("identifiable empirical facts did not freeze to an object")
53
+ return frozen
54
+
55
+
56
+ def _validate_exact_request(
57
+ *,
58
+ reflection_input: CampaignIdentifiableReflectionInput,
59
+ request: ReflectionGenerationRequest,
60
+ optimization_semantics: OptimizationSemantics,
61
+ ) -> dict[str, object]:
62
+ """Replay request construction and return its authenticated identity record."""
63
+
64
+ if type(reflection_input) is not CampaignIdentifiableReflectionInput:
65
+ raise TypeError("reflection_input must be exact")
66
+ CampaignIdentifiableReflectionInput.__post_init__(reflection_input)
67
+ if type(request) is not ReflectionGenerationRequest:
68
+ raise TypeError("request must be an exact ReflectionGenerationRequest")
69
+ ReflectionGenerationRequest.__post_init__(request)
70
+ if type(optimization_semantics) is not OptimizationSemantics:
71
+ raise TypeError("optimization_semantics must be exact")
72
+ OptimizationSemantics.__post_init__(optimization_semantics)
73
+ contract = request.insight_contract
74
+ catalog = request.evidence_catalog
75
+ if contract is None or catalog is None:
76
+ raise ValueError(
77
+ "identifiable reflection learning requires request contracts"
78
+ )
79
+
80
+ # Rebuilding through the only supported constructor rejects a handcrafted
81
+ # prompt, an overstated epistemic contract, reordered evidence, or foreign
82
+ # optimization semantics even when the outer dataclass remains well typed.
83
+ replay = build_identifiable_reflection_generation_request(
84
+ call_id=request.call_id,
85
+ evidence=reflection_input.evidence,
86
+ insight_contract=contract,
87
+ optimization_semantics=optimization_semantics,
88
+ max_output_tokens=request.max_output_tokens,
89
+ temperature=request.temperature,
90
+ max_insights=request.max_insights,
91
+ min_insights=request.min_insights,
92
+ )
93
+ if replay != request:
94
+ raise ValueError(
95
+ "reflection request differs from canonical identifiable construction"
96
+ )
97
+ return identifiable_reflection_request_construction_record(
98
+ request,
99
+ reflection_input.evidence,
100
+ )
101
+
102
+
103
+ def _validate_result(
104
+ request: ReflectionGenerationRequest,
105
+ result: ReflectionGenerationResult,
106
+ ) -> None:
107
+ if type(result) is not ReflectionGenerationResult:
108
+ raise TypeError("result must be an exact ReflectionGenerationResult")
109
+ ReflectionGenerationResult.__post_init__(result)
110
+ if type(result.telemetry) is not AgenticCallTelemetry:
111
+ raise TypeError("result telemetry must be exact AgenticCallTelemetry")
112
+ AgenticCallTelemetry.__post_init__(result.telemetry)
113
+ validate_reflection_evidence_catalog_result(request, result)
114
+ if not result.insights:
115
+ raise ValueError(
116
+ "identifiable reflection abstention is unsupported until campaign "
117
+ "memory accepts a typed empty-batch receipt"
118
+ )
119
+ if not request.min_insights <= len(result.insights) <= request.max_insights:
120
+ raise ValueError("reflection result insight count escaped request bounds")
121
+ normalized_claims = tuple(
122
+ " ".join(draft.claim.strip().casefold().split())
123
+ for draft in result.insights
124
+ )
125
+ if len(set(normalized_claims)) != len(normalized_claims):
126
+ raise ValueError("identifiable reflection produced duplicate normalized claims")
127
+ contract = request.insight_contract
128
+ if contract is None: # pragma: no cover - exact request validation precedes this.
129
+ raise AssertionError("validated identifiable request lost its contract")
130
+ for draft in result.insights:
131
+ validate_reflection_insight_draft(draft, contract)
132
+ if draft.insight_kind is not ReflectionInsightKind.EMPIRICAL_PREDICTIVE_RULE:
133
+ raise ValueError("identifiable mutation reflection is empirical-only")
134
+
135
+
136
+ def _finite_binding(
137
+ contrast: IdentifiableMutationReflectionContrast,
138
+ ) -> FiniteActionEvidenceBinding:
139
+ contrast.__post_init__()
140
+ # Finite-contract identity is mandatory in the identifiable contrast v2
141
+ # schema. Do not silently emit an unbound card if an older projection is
142
+ # injected at runtime.
143
+ require_sha256(
144
+ contrast.finite_contract_identity_sha256,
145
+ "finite_contract_identity_sha256",
146
+ )
147
+ return FiniteActionEvidenceBinding(
148
+ contrast_id=contrast.contrast_id,
149
+ option_id=contrast.option_id,
150
+ family=contrast.option_family,
151
+ option_identity_sha256=contrast.option_identity_sha256,
152
+ contract_identity_sha256=contrast.finite_contract_identity_sha256,
153
+ )
154
+
155
+
156
+ def _empirical_snapshot(
157
+ *,
158
+ contrast: IdentifiableMutationReflectionContrast,
159
+ citation_key: str,
160
+ reflection_input: CampaignIdentifiableReflectionInput,
161
+ request: ReflectionGenerationRequest,
162
+ request_identity_sha256: str,
163
+ optimization_semantics: OptimizationSemantics,
164
+ decision_metrics: DecisionMetricProjection,
165
+ action_semantics_compiler_id: str,
166
+ action_semantics_compiler_version: int,
167
+ action_semantics_definition_sha256: str,
168
+ ) -> EmpiricalEvidenceSnapshot:
169
+ contract = request.insight_contract
170
+ catalog = request.evidence_catalog
171
+ if contract is None or catalog is None: # pragma: no cover - validated first.
172
+ raise AssertionError("validated identifiable request lost its contracts")
173
+ facts = _object(
174
+ {
175
+ "schema_version": 1,
176
+ "design_kind": "direct_single_mutation",
177
+ "comparison_anchor": "current_parent",
178
+ "mechanism_identifying_design": False,
179
+ "permitted_insight_kinds": [
180
+ ReflectionInsightKind.EMPIRICAL_PREDICTIVE_RULE.value
181
+ ],
182
+ "request_binding": {
183
+ "campaign_identifiable_reflection_input_sha256": (
184
+ reflection_input.input_sha256
185
+ ),
186
+ "identifiable_reflection_request_identity_sha256": (
187
+ request_identity_sha256
188
+ ),
189
+ "evidence_snapshot_sha256": (
190
+ reflection_input.evidence.snapshot_sha256
191
+ ),
192
+ "evidence_catalog_identity_sha256": (
193
+ catalog.catalog_identity_sha256
194
+ ),
195
+ "insight_contract_identity_sha256": contract.identity_sha256,
196
+ "decision_metric_projection_definition_sha256": (
197
+ decision_metrics.definition_sha256
198
+ ),
199
+ "action_semantics_compiler": {
200
+ "compiler_id": action_semantics_compiler_id,
201
+ "compiler_version": action_semantics_compiler_version,
202
+ "definition_sha256": action_semantics_definition_sha256,
203
+ },
204
+ },
205
+ "source_scope": {
206
+ "source_observation_sha256": (
207
+ contrast.source_observation_sha256
208
+ ),
209
+ "source_evidence_id": contrast.source_evidence_id,
210
+ "event_index": contrast.event_index,
211
+ "workload_instance_sha256": contrast.workload_instance_sha256,
212
+ "evaluator_contract_sha256": contrast.evaluator_contract_sha256,
213
+ "campaign_sha256": contrast.campaign_sha256,
214
+ "evidence_citation_key": citation_key,
215
+ },
216
+ "occurrence_lineage": {
217
+ "parent_candidate_id": contrast.parent_candidate_id.value,
218
+ "child_candidate_id": contrast.child_candidate_id.value,
219
+ "operator_invocation_id": contrast.operator_invocation_id.value,
220
+ },
221
+ "finite_action": {
222
+ "option_id": contrast.option_id,
223
+ "option_identity_sha256": contrast.option_identity_sha256,
224
+ "option_family": contrast.option_family,
225
+ "finite_contract_identity_sha256": (
226
+ contrast.finite_contract_identity_sha256
227
+ ),
228
+ },
229
+ "local_intervention": {
230
+ "affected_path": contrast.affected_path,
231
+ "parent_value": thaw_json(contrast.parent_local_value),
232
+ "child_value": thaw_json(contrast.child_local_value),
233
+ },
234
+ "configuration_lineage": {
235
+ "parent_configuration_sha256": (
236
+ contrast.parent_configuration_sha256
237
+ ),
238
+ "child_configuration_sha256": contrast.child_configuration_sha256,
239
+ },
240
+ "outcome_lineage": {
241
+ "parent_outcome_sha256": contrast.parent_outcome_sha256,
242
+ "child_outcome_sha256": contrast.child_outcome_sha256,
243
+ },
244
+ "observed_metric_effects": [
245
+ value.to_record() for value in contrast.metrics
246
+ ],
247
+ }
248
+ )
249
+ return EmpiricalEvidenceSnapshot(
250
+ contrast_id=contrast.contrast_id,
251
+ fact_schema_id=IDENTIFIABLE_REFLECTION_FACT_SCHEMA_ID,
252
+ fact_schema_version=IDENTIFIABLE_REFLECTION_FACT_SCHEMA_VERSION,
253
+ fact_schema_definition_sha256=(
254
+ IDENTIFIABLE_REFLECTION_FACT_SCHEMA_DEFINITION_SHA256
255
+ ),
256
+ facts=facts,
257
+ optimization_semantics_definition_sha256=(
258
+ optimization_semantics.definition_sha256
259
+ ),
260
+ action_semantics_definition_sha256=action_semantics_definition_sha256,
261
+ )
262
+
263
+
264
+ def build_identifiable_campaign_reflection_learning_record(
265
+ *,
266
+ reflection_input: CampaignIdentifiableReflectionInput,
267
+ request: ReflectionGenerationRequest,
268
+ result: ReflectionGenerationResult,
269
+ optimization_semantics: OptimizationSemantics,
270
+ ) -> CampaignReflectionLearningRecord:
271
+ """Join one completed identifiable reflection to canonical campaign learning.
272
+
273
+ The trusted action-semantics compiler identity is derived from the
274
+ authenticated contrasts and must be identical across the evidence cohort.
275
+ It is intentionally not inferred from a decision projection, provider
276
+ request, or finite contract; those are distinct authorities.
277
+ """
278
+ construction = _validate_exact_request(
279
+ reflection_input=reflection_input,
280
+ request=request,
281
+ optimization_semantics=optimization_semantics,
282
+ )
283
+ _validate_result(request, result)
284
+ request_identity = construction["request_identity_sha256"]
285
+ if type(request_identity) is not str: # pragma: no cover - closed helper.
286
+ raise AssertionError("request construction emitted a non-string identity")
287
+ require_sha256(request_identity, "request_identity_sha256")
288
+ evidence = reflection_input.evidence
289
+ catalog = request.evidence_catalog
290
+ contract = request.insight_contract
291
+ if catalog is None or contract is None: # pragma: no cover - validated first.
292
+ raise AssertionError("validated identifiable request lost its contracts")
293
+ contrasts = evidence.contrasts
294
+ contrast_ids = tuple(value.contrast_id for value in contrasts)
295
+ if contrast_ids != catalog.contrast_ids:
296
+ raise ValueError("evidence catalog order differs from identifiable evidence")
297
+ decision_metrics = DecisionMetricProjection.from_optimization_semantics(
298
+ optimization_semantics
299
+ )
300
+ action_semantics_identities = {
301
+ (
302
+ value.action_semantics_compiler_id,
303
+ value.action_semantics_compiler_version,
304
+ value.action_semantics_definition_sha256,
305
+ )
306
+ for value in contrasts
307
+ }
308
+ if len(action_semantics_identities) != 1:
309
+ raise ValueError(
310
+ "identifiable evidence mixes action-semantics compiler identities"
311
+ )
312
+ (
313
+ action_semantics_compiler_id,
314
+ action_semantics_compiler_version,
315
+ action_semantics_definition_sha256,
316
+ ) = next(iter(action_semantics_identities))
317
+ require_sha256(
318
+ action_semantics_definition_sha256,
319
+ "action_semantics_definition_sha256",
320
+ )
321
+ bindings = tuple(_finite_binding(value) for value in contrasts)
322
+ if tuple(value.contrast_id for value in bindings) != catalog.contrast_ids:
323
+ raise AssertionError("finite binding projection lost canonical catalog order")
324
+ empirical = tuple(
325
+ _empirical_snapshot(
326
+ contrast=value,
327
+ citation_key=catalog.citation_key_for_contrast_id(value.contrast_id),
328
+ reflection_input=reflection_input,
329
+ request=request,
330
+ request_identity_sha256=request_identity,
331
+ optimization_semantics=optimization_semantics,
332
+ decision_metrics=decision_metrics,
333
+ action_semantics_compiler_id=action_semantics_compiler_id,
334
+ action_semantics_compiler_version=(
335
+ action_semantics_compiler_version
336
+ ),
337
+ action_semantics_definition_sha256=(
338
+ action_semantics_definition_sha256
339
+ ),
340
+ )
341
+ for value in contrasts
342
+ )
343
+ query = reflection_input.query
344
+ return CampaignReflectionLearningRecord(
345
+ reflection_generation_request_sha256=request_identity,
346
+ reflection_call_id=request.call_id,
347
+ source_generation=query.wave.source_generation,
348
+ source_stage_receipt_sha256=query.source_stage_receipt_sha256,
349
+ origin_cutoff_event_index=query.sealed_cutoff_event_index_inclusive,
350
+ source_operator_invocation_ids=tuple(
351
+ sorted({value.operator_invocation_id for value in contrasts})
352
+ ),
353
+ source_candidate_ids=tuple(
354
+ sorted(
355
+ {
356
+ candidate_id
357
+ for value in contrasts
358
+ for candidate_id in (
359
+ value.parent_candidate_id,
360
+ value.child_candidate_id,
361
+ )
362
+ }
363
+ )
364
+ ),
365
+ evidence_catalog=catalog,
366
+ insight_contract=contract,
367
+ insights=result.insights,
368
+ finite_action_bindings=bindings,
369
+ empirical_evidence=empirical,
370
+ )
371
+
372
+
373
+ def build_identifiable_campaign_reflection_learning_envelope(
374
+ *,
375
+ reflection_input: CampaignIdentifiableReflectionInput,
376
+ request: ReflectionGenerationRequest,
377
+ result: ReflectionGenerationResult,
378
+ optimization_semantics: OptimizationSemantics,
379
+ ) -> FrozenJsonObject:
380
+ """Return the strict codec envelope expected by campaign memory learning."""
381
+
382
+ return CampaignReflectionLearningRecordCodec.encode(
383
+ build_identifiable_campaign_reflection_learning_record(
384
+ reflection_input=reflection_input,
385
+ request=request,
386
+ result=result,
387
+ optimization_semantics=optimization_semantics,
388
+ )
389
+ )
390
+
391
+
392
+ __all__ = [
393
+ "build_identifiable_campaign_reflection_learning_envelope",
394
+ "build_identifiable_campaign_reflection_learning_record",
395
+ ]