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,201 @@
1
+ """Deterministic prospective treatment-to-provider-slot assignment.
2
+
3
+ The permutation is derived only from public committed material, an identified
4
+ policy/domain, the occurrence count, and canonical input ordinals. Treatment,
5
+ occurrence, provider-slot, call, and request labels are intentionally excluded
6
+ from permutation ranks. They remain fully bound by the resulting receipt.
7
+ """
8
+
9
+ from __future__ import annotations
10
+
11
+ from collections.abc import Mapping
12
+ import hashlib
13
+ import json
14
+
15
+ from agent_evolve.ports.treatment_assignment import (
16
+ ProspectiveTreatmentAssignmentReceipt,
17
+ TreatmentAssignment,
18
+ TreatmentAssignmentInput,
19
+ TreatmentAssignmentPolicyBinding,
20
+ )
21
+
22
+
23
+ HASH_RANKED_TREATMENT_ASSIGNMENT_POLICY_ID = (
24
+ "hash_ranked_treatment_occurrence_assignment"
25
+ )
26
+ HASH_RANKED_TREATMENT_ASSIGNMENT_POLICY_VERSION = 1
27
+ HASH_RANKED_TREATMENT_ASSIGNMENT_PERMUTATION_DOMAIN = (
28
+ "agent-evolve:prospective-treatment-assignment-rank:v1"
29
+ )
30
+ HASH_RANKED_TREATMENT_ASSIGNMENT_POLICY_DEFINITION_SHA256 = hashlib.sha256(
31
+ b"agent-evolve:hash-ranked-treatment-occurrence-assignment:v1;"
32
+ b"rank=sha256(domain,policy_binding,experiment_commitment,public_seed_"
33
+ b"material,occurrence_count,occurrence_input_index);"
34
+ b"sort=rank_digest_then_occurrence_input_index;"
35
+ b"provider_slots=canonical_input_order;labels_excluded_from_rank;"
36
+ b"runtime_rng=forbidden"
37
+ ).hexdigest()
38
+
39
+
40
+ class TreatmentAssignmentVerificationError(RuntimeError):
41
+ """A supplied receipt differs from deterministic prospective replay."""
42
+
43
+
44
+ def _canonical_json(value: object) -> bytes:
45
+ return json.dumps(
46
+ value,
47
+ allow_nan=False,
48
+ ensure_ascii=True,
49
+ separators=(",", ":"),
50
+ sort_keys=True,
51
+ ).encode("ascii")
52
+
53
+
54
+ def hash_ranked_treatment_assignment_policy() -> TreatmentAssignmentPolicyBinding:
55
+ """Return the identified domain-neutral public permutation policy."""
56
+
57
+ return TreatmentAssignmentPolicyBinding(
58
+ policy_id=HASH_RANKED_TREATMENT_ASSIGNMENT_POLICY_ID,
59
+ policy_version=HASH_RANKED_TREATMENT_ASSIGNMENT_POLICY_VERSION,
60
+ policy_definition_sha256=(
61
+ HASH_RANKED_TREATMENT_ASSIGNMENT_POLICY_DEFINITION_SHA256
62
+ ),
63
+ permutation_domain=HASH_RANKED_TREATMENT_ASSIGNMENT_PERMUTATION_DOMAIN,
64
+ )
65
+
66
+
67
+ def treatment_assignment_ordinal_permutation(
68
+ assignment_input: TreatmentAssignmentInput,
69
+ *,
70
+ policy: TreatmentAssignmentPolicyBinding,
71
+ ) -> tuple[int, ...]:
72
+ """Derive the provider-slot-to-occurrence permutation without runtime RNG."""
73
+
74
+ if type(assignment_input) is not TreatmentAssignmentInput:
75
+ raise TypeError("assignment_input must be an exact TreatmentAssignmentInput")
76
+ assignment_input.__post_init__()
77
+ if type(policy) is not TreatmentAssignmentPolicyBinding:
78
+ raise TypeError("policy must be an exact TreatmentAssignmentPolicyBinding")
79
+ policy.__post_init__()
80
+
81
+ count = len(assignment_input.occurrences)
82
+ domain = policy.permutation_domain.encode("ascii") + b"\x00"
83
+ ranked: list[tuple[bytes, int]] = []
84
+ for occurrence_input_index in range(count):
85
+ rank_payload = {
86
+ "schema_version": 1,
87
+ "policy_binding_sha256": policy.binding_sha256,
88
+ "experiment_commitment_sha256": (
89
+ assignment_input.experiment_commitment_sha256
90
+ ),
91
+ "public_seed_material": assignment_input.public_seed_material,
92
+ "occurrence_count": count,
93
+ "occurrence_input_index": occurrence_input_index,
94
+ }
95
+ rank_digest = hashlib.sha256(
96
+ domain + _canonical_json(rank_payload)
97
+ ).digest()
98
+ ranked.append((rank_digest, occurrence_input_index))
99
+ return tuple(index for _, index in sorted(ranked))
100
+
101
+
102
+ def assign_treatment_occurrences(
103
+ assignment_input: TreatmentAssignmentInput,
104
+ *,
105
+ policy: TreatmentAssignmentPolicyBinding | None = None,
106
+ ) -> ProspectiveTreatmentAssignmentReceipt:
107
+ """Create one prospective, replayable assignment and authenticated inverse."""
108
+
109
+ if type(assignment_input) is not TreatmentAssignmentInput:
110
+ raise TypeError("assignment_input must be an exact TreatmentAssignmentInput")
111
+ assignment_input.__post_init__()
112
+ effective_policy = (
113
+ hash_ranked_treatment_assignment_policy() if policy is None else policy
114
+ )
115
+ if type(effective_policy) is not TreatmentAssignmentPolicyBinding:
116
+ raise TypeError("policy must be an exact TreatmentAssignmentPolicyBinding")
117
+ effective_policy.__post_init__()
118
+
119
+ permutation = treatment_assignment_ordinal_permutation(
120
+ assignment_input,
121
+ policy=effective_policy,
122
+ )
123
+ inverse_values = [0] * len(permutation)
124
+ slot_assignments: list[TreatmentAssignment] = []
125
+ for provider_slot_input_index, occurrence_input_index in enumerate(permutation):
126
+ inverse_values[occurrence_input_index] = provider_slot_input_index
127
+ occurrence = assignment_input.occurrences[occurrence_input_index]
128
+ slot_assignments.append(
129
+ TreatmentAssignment(
130
+ occurrence_id=occurrence.occurrence_id,
131
+ treatment_id=occurrence.treatment_id,
132
+ opaque_provider_slot_id=(
133
+ assignment_input.provider_slot_ids[provider_slot_input_index]
134
+ ),
135
+ occurrence_input_index=occurrence_input_index,
136
+ provider_slot_input_index=provider_slot_input_index,
137
+ call_identity=occurrence.call_identity,
138
+ request_identity_sha256=occurrence.request_identity_sha256,
139
+ )
140
+ )
141
+ inverse = tuple(inverse_values)
142
+ assignments_by_occurrence: list[TreatmentAssignment | None] = [
143
+ None
144
+ ] * len(permutation)
145
+ for assignment in slot_assignments:
146
+ assignments_by_occurrence[assignment.occurrence_input_index] = assignment
147
+ if any(value is None for value in assignments_by_occurrence):
148
+ raise RuntimeError("internal assignment construction lost an occurrence")
149
+
150
+ return ProspectiveTreatmentAssignmentReceipt(
151
+ policy=effective_policy,
152
+ assignment_input_sha256=assignment_input.input_sha256,
153
+ experiment_commitment_sha256=(
154
+ assignment_input.experiment_commitment_sha256
155
+ ),
156
+ public_seed_material=assignment_input.public_seed_material,
157
+ occurrence_input_order=assignment_input.occurrences,
158
+ provider_slot_input_order=assignment_input.provider_slot_ids,
159
+ ordinal_permutation=permutation,
160
+ inverse_ordinal_permutation=inverse,
161
+ slot_to_occurrence=tuple(slot_assignments),
162
+ occurrence_to_slot=tuple(
163
+ value for value in assignments_by_occurrence if value is not None
164
+ ),
165
+ )
166
+
167
+
168
+ def verify_treatment_assignment_receipt(
169
+ assignment_input: TreatmentAssignmentInput,
170
+ receipt: ProspectiveTreatmentAssignmentReceipt | Mapping[str, object],
171
+ *,
172
+ policy: TreatmentAssignmentPolicyBinding | None = None,
173
+ ) -> ProspectiveTreatmentAssignmentReceipt:
174
+ """Fail closed unless an object or serialized record equals public replay."""
175
+
176
+ expected = assign_treatment_occurrences(assignment_input, policy=policy)
177
+ if type(receipt) is ProspectiveTreatmentAssignmentReceipt:
178
+ receipt.__post_init__()
179
+ matches = receipt == expected
180
+ elif isinstance(receipt, Mapping):
181
+ matches = type(receipt) is dict and receipt == expected.to_record()
182
+ else:
183
+ raise TypeError("receipt must be an exact receipt or canonical dict record")
184
+ if not matches:
185
+ raise TreatmentAssignmentVerificationError(
186
+ "treatment assignment receipt differs from deterministic replay"
187
+ )
188
+ return expected
189
+
190
+
191
+ __all__ = [
192
+ "HASH_RANKED_TREATMENT_ASSIGNMENT_PERMUTATION_DOMAIN",
193
+ "HASH_RANKED_TREATMENT_ASSIGNMENT_POLICY_DEFINITION_SHA256",
194
+ "HASH_RANKED_TREATMENT_ASSIGNMENT_POLICY_ID",
195
+ "HASH_RANKED_TREATMENT_ASSIGNMENT_POLICY_VERSION",
196
+ "TreatmentAssignmentVerificationError",
197
+ "assign_treatment_occurrences",
198
+ "hash_ranked_treatment_assignment_policy",
199
+ "treatment_assignment_ordinal_permutation",
200
+ "verify_treatment_assignment_receipt",
201
+ ]
@@ -0,0 +1,217 @@
1
+ """Auditable binary64 objective evidence with LLM-readable decimal values.
2
+
3
+ Persistent AgentEvolve receipts use ``float.hex`` strings because they are
4
+ exact and replayable. Those strings are a poor cognitive interface: an LLM
5
+ can easily read a hexadecimal significand as an ordinary decimal number.
6
+ This codec preserves the exact machine representation while providing a
7
+ separate JSON numeric field and round-trip decimal text for reasoning.
8
+
9
+ The codec is objective-, workload-, model-, provider-, and prompt-neutral.
10
+ Adapters decide which already-observed values are disclosed; this module only
11
+ prevents their representation from changing their meaning.
12
+ """
13
+
14
+ from __future__ import annotations
15
+
16
+ import hashlib
17
+ import math
18
+ import re
19
+ from dataclasses import dataclass, field
20
+ from typing import Mapping
21
+
22
+ from agent_evolve.domain.typed_json import (
23
+ FrozenJsonObject,
24
+ freeze_json,
25
+ thaw_json,
26
+ )
27
+
28
+
29
+ TRUSTED_OBJECTIVE_EVIDENCE_CODEC_ID = (
30
+ "binary64_decimal_objective_evidence"
31
+ )
32
+ TRUSTED_OBJECTIVE_EVIDENCE_CODEC_VERSION = 1
33
+ TRUSTED_OBJECTIVE_EVIDENCE_CODEC_DEFINITION_SHA256 = hashlib.sha256(
34
+ b"agent-evolve:binary64-decimal-objective-evidence:v1;"
35
+ b"reasoning-value=json-finite-number;"
36
+ b"roundtrip-text=17-significant-decimal-digits;"
37
+ b"audit-value=python-binary64-hex;"
38
+ b"consistency=all-three-representations-must-roundtrip-identically;"
39
+ b"hex-is-explicitly-machine-audit-only;"
40
+ b"workload-objective-model-provider-branches=false"
41
+ ).hexdigest()
42
+
43
+ _METRIC = re.compile(r"^[A-Za-z][A-Za-z0-9_.:/-]{0,255}$")
44
+
45
+
46
+ def _finite_float(value: object, *, name: str) -> float:
47
+ if type(value) is not float or not math.isfinite(value):
48
+ raise TypeError(f"{name} must be a finite exact float")
49
+ return value
50
+
51
+
52
+ def _metric_id(value: object) -> str:
53
+ if type(value) is not str or _METRIC.fullmatch(value) is None:
54
+ raise ValueError("metric_id must use the closed metric grammar")
55
+ return value
56
+
57
+
58
+ @dataclass(frozen=True, slots=True)
59
+ class TrustedObjectiveEvidenceCodec:
60
+ """Render known objective values without asking a model to parse hex."""
61
+
62
+ codec_id: str = field(
63
+ init=False,
64
+ default=TRUSTED_OBJECTIVE_EVIDENCE_CODEC_ID,
65
+ )
66
+ codec_version: int = field(
67
+ init=False,
68
+ default=TRUSTED_OBJECTIVE_EVIDENCE_CODEC_VERSION,
69
+ )
70
+ definition_sha256: str = field(
71
+ init=False,
72
+ default=TRUSTED_OBJECTIVE_EVIDENCE_CODEC_DEFINITION_SHA256,
73
+ )
74
+
75
+ def prompt_contract(self) -> FrozenJsonObject:
76
+ value = freeze_json(
77
+ {
78
+ "codec_id": self.codec_id,
79
+ "codec_version": self.codec_version,
80
+ "definition_sha256": self.definition_sha256,
81
+ "reasoning_field": "numeric_values",
82
+ "exact_audit_field": "exact_binary64_hex",
83
+ "instructions": [
84
+ (
85
+ "Use numeric_values for comparisons, arithmetic, "
86
+ "forecasting, and optimization reasoning."
87
+ ),
88
+ (
89
+ "decimal_text is a round-trip decimal rendering of "
90
+ "the same binary64 values."
91
+ ),
92
+ (
93
+ "exact_binary64_hex is machine-audit evidence only; "
94
+ "never interpret its digits as a decimal magnitude."
95
+ ),
96
+ ],
97
+ "representations_consistency_checked": True,
98
+ "candidate_outcomes_disclosed_by_codec": False,
99
+ "workload_objective_model_provider_branches": False,
100
+ }
101
+ )
102
+ if type(value) is not FrozenJsonObject:
103
+ raise TypeError("prompt contract must have an object root")
104
+ return value
105
+
106
+ def encode_point(
107
+ self,
108
+ objectives: Mapping[str, float],
109
+ ) -> FrozenJsonObject:
110
+ """Encode one already-authorized objective mapping."""
111
+
112
+ if not isinstance(objectives, Mapping) or not objectives:
113
+ raise ValueError("objectives must be a non-empty mapping")
114
+ ordered: list[tuple[str, float]] = []
115
+ for metric_id, raw_value in objectives.items():
116
+ ordered.append(
117
+ (
118
+ _metric_id(metric_id),
119
+ _finite_float(
120
+ raw_value,
121
+ name=f"objective[{metric_id!r}]",
122
+ ),
123
+ )
124
+ )
125
+ ordered.sort(key=lambda value: value[0])
126
+ if len({name for name, _ in ordered}) != len(ordered):
127
+ raise ValueError("objectives repeat a metric")
128
+
129
+ value = freeze_json(
130
+ {
131
+ "numeric_values": {
132
+ metric_id: metric_value
133
+ for metric_id, metric_value in ordered
134
+ },
135
+ "decimal_text": {
136
+ metric_id: format(metric_value, ".17g")
137
+ for metric_id, metric_value in ordered
138
+ },
139
+ "exact_binary64_hex": {
140
+ metric_id: metric_value.hex()
141
+ for metric_id, metric_value in ordered
142
+ },
143
+ "reasoning_representation": "ordinary_json_numbers",
144
+ "exact_hex_is_machine_audit_only": True,
145
+ }
146
+ )
147
+ if type(value) is not FrozenJsonObject:
148
+ raise TypeError("objective evidence must have an object root")
149
+ self.verify_point(value)
150
+ return value
151
+
152
+ def verify_point(
153
+ self,
154
+ evidence: FrozenJsonObject,
155
+ ) -> tuple[tuple[str, float], ...]:
156
+ """Authenticate all public representations and return exact values."""
157
+
158
+ if (
159
+ type(evidence) is not FrozenJsonObject
160
+ or freeze_json(evidence) is not evidence
161
+ ):
162
+ raise TypeError("evidence must be an exact frozen object")
163
+ record = thaw_json(evidence)
164
+ numeric = record.get("numeric_values")
165
+ decimal = record.get("decimal_text")
166
+ exact = record.get("exact_binary64_hex")
167
+ if not all(
168
+ isinstance(value, dict)
169
+ for value in (numeric, decimal, exact)
170
+ ):
171
+ raise ValueError("objective evidence representations are absent")
172
+ assert isinstance(numeric, dict)
173
+ assert isinstance(decimal, dict)
174
+ assert isinstance(exact, dict)
175
+ if not numeric or set(numeric) != set(decimal) or set(numeric) != set(exact):
176
+ raise ValueError("objective evidence metric sets differ")
177
+ verified: list[tuple[str, float]] = []
178
+ for metric_id in sorted(numeric):
179
+ name = _metric_id(metric_id)
180
+ value = _finite_float(
181
+ numeric[metric_id],
182
+ name=f"numeric_values[{name!r}]",
183
+ )
184
+ text = decimal[metric_id]
185
+ hex_value = exact[metric_id]
186
+ if type(text) is not str or type(hex_value) is not str:
187
+ raise TypeError("objective text/hex evidence must be strings")
188
+ try:
189
+ from_decimal = float(text)
190
+ from_hex = float.fromhex(hex_value)
191
+ except ValueError as error:
192
+ raise ValueError(
193
+ "objective evidence contains an invalid representation"
194
+ ) from error
195
+ if (
196
+ not math.isfinite(from_decimal)
197
+ or not math.isfinite(from_hex)
198
+ or from_decimal.hex() != value.hex()
199
+ or from_hex.hex() != value.hex()
200
+ or text != format(value, ".17g")
201
+ or hex_value != value.hex()
202
+ ):
203
+ raise ValueError(
204
+ "objective evidence representations are inconsistent"
205
+ )
206
+ verified.append((name, value))
207
+ if record.get("exact_hex_is_machine_audit_only") is not True:
208
+ raise ValueError("objective evidence omitted the hex warning")
209
+ return tuple(verified)
210
+
211
+
212
+ __all__ = [
213
+ "TRUSTED_OBJECTIVE_EVIDENCE_CODEC_DEFINITION_SHA256",
214
+ "TRUSTED_OBJECTIVE_EVIDENCE_CODEC_ID",
215
+ "TRUSTED_OBJECTIVE_EVIDENCE_CODEC_VERSION",
216
+ "TrustedObjectiveEvidenceCodec",
217
+ ]