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,398 @@
1
+ """Provenance-bound optional workload prompting and ablation views.
2
+
3
+ AgentEvolve's behavioral workflow remains workload-neutral. A benchmark may,
4
+ however, publish static domain semantics that were frozen before an optimization
5
+ campaign: metric meanings, candidate-field semantics, legal invariants, action
6
+ semantics, or general reasoning guidance. These facts are context, not measured
7
+ search evidence, and must never be assembled from evaluator outcomes or prior
8
+ campaign traces.
9
+
10
+ The extension is deliberately a typed-JSON view rather than a free callback.
11
+ This makes its exact bytes precommittable, keeps it inside the existing request
12
+ and prompt hashes, and supports three explicit experimental arms:
13
+
14
+ ``SCHEMA_ONLY``
15
+ Omit the extension entirely.
16
+ ``SEMANTIC``
17
+ Render the workload-authored semantic payload.
18
+ ``MATCHED_CONTROL``
19
+ Render an optional workload-authored structure-matched control payload,
20
+ typically with stable opaque labels or neutral wording.
21
+
22
+ The API can enforce provenance declarations and structural matching. It
23
+ cannot prove that prose was written honestly; confirmatory experiments must
24
+ still freeze source artifacts and prompt bytes before optimizer outcomes.
25
+ """
26
+
27
+ from __future__ import annotations
28
+
29
+ import hashlib
30
+ import json
31
+ import re
32
+ from dataclasses import dataclass, field
33
+ from enum import Enum
34
+
35
+ from agent_evolve.domain.typed_json import (
36
+ FrozenJsonArray,
37
+ FrozenJsonObject,
38
+ freeze_json,
39
+ thaw_json,
40
+ typed_json_sha256,
41
+ )
42
+
43
+
44
+ WORKLOAD_PROMPT_EXTENSION_CONTEXT_KEY = "workload_prompt_extension"
45
+
46
+ _TOKEN = re.compile(r"^[a-z][a-z0-9_.-]{0,127}$")
47
+ _LOWER_SHA256 = frozenset("0123456789abcdef")
48
+ _MAX_PAYLOAD_BYTES = 65_536
49
+ _PROVENANCE_DOMAIN = b"agent-evolve:workload-prompt-provenance:v1\x00"
50
+ _EXTENSION_DOMAIN = b"agent-evolve:workload-prompt-extension:v1\x00"
51
+ _VIEW_DOMAIN = b"agent-evolve:workload-prompt-extension-view:v1\x00"
52
+
53
+ _ALLOWED_PAYLOAD_KEYS = frozenset(
54
+ {
55
+ "action_semantics",
56
+ "candidate_semantics",
57
+ "constraints_and_invariants",
58
+ "domain_context",
59
+ "metric_semantics",
60
+ "reasoning_guidance",
61
+ "reference_facts",
62
+ }
63
+ )
64
+
65
+
66
+ def _canonical_bytes(value: object) -> bytes:
67
+ return json.dumps(
68
+ value,
69
+ allow_nan=False,
70
+ ensure_ascii=True,
71
+ separators=(",", ":"),
72
+ sort_keys=True,
73
+ ).encode("ascii", errors="strict")
74
+
75
+
76
+ def _sha256(domain: bytes, value: object) -> str:
77
+ return hashlib.sha256(domain + _canonical_bytes(value)).hexdigest()
78
+
79
+
80
+ def _require_sha256(value: object, *, name: str) -> str:
81
+ if (
82
+ type(value) is not str
83
+ or len(value) != 64
84
+ or any(character not in _LOWER_SHA256 for character in value)
85
+ ):
86
+ raise ValueError(f"{name} must be a lowercase SHA-256 digest")
87
+ return value
88
+
89
+
90
+ def _require_token(value: object, *, name: str) -> str:
91
+ if type(value) is not str or _TOKEN.fullmatch(value) is None:
92
+ raise ValueError(f"{name} must use the closed lowercase token grammar")
93
+ return value
94
+
95
+
96
+ def _payload_shape(value: object) -> object:
97
+ """Return a value-free recursive shape for a matched prompt control."""
98
+
99
+ if type(value) is FrozenJsonObject:
100
+ return {
101
+ key: _payload_shape(child)
102
+ for key, child in value.items
103
+ }
104
+ if type(value) is FrozenJsonArray:
105
+ return [_payload_shape(child) for child in value.items]
106
+ if value is None:
107
+ return "null"
108
+ if type(value) is bool:
109
+ return "bool"
110
+ if type(value) is int:
111
+ return "int"
112
+ if type(value) is float:
113
+ return "float"
114
+ if type(value) is str:
115
+ return "string"
116
+ raise TypeError("prompt payload escaped frozen typed JSON")
117
+
118
+
119
+ def _validate_payload(value: object, *, name: str) -> FrozenJsonObject:
120
+ if type(value) is not FrozenJsonObject or freeze_json(value) is not value:
121
+ raise TypeError(f"{name} must be an exact frozen typed-JSON object")
122
+ if not value.items:
123
+ raise ValueError(f"{name} must not be empty")
124
+ unknown = {key for key, _ in value.items} - _ALLOWED_PAYLOAD_KEYS
125
+ if unknown:
126
+ raise ValueError(
127
+ f"{name} contains unsupported top-level keys: "
128
+ + ",".join(sorted(unknown))
129
+ )
130
+ size = len(_canonical_bytes(thaw_json(value)))
131
+ if size > _MAX_PAYLOAD_BYTES:
132
+ raise ValueError(
133
+ f"{name} exceeds the {_MAX_PAYLOAD_BYTES}-byte static prompt limit"
134
+ )
135
+ return value
136
+
137
+
138
+ class WorkloadPromptSourceKind(str, Enum):
139
+ """Closed provenance classes that predate campaign outcomes."""
140
+
141
+ BENCHMARK_SPECIFICATION = "benchmark_specification"
142
+ PREEXISTING_DOMAIN_KNOWLEDGE = "preexisting_domain_knowledge"
143
+ PUBLIC_REFERENCE = "public_reference"
144
+
145
+
146
+ class WorkloadPromptArm(str, Enum):
147
+ """Prospective arms for the workload-semantics ablation."""
148
+
149
+ SCHEMA_ONLY = "schema_only"
150
+ SEMANTIC = "semantic"
151
+ MATCHED_CONTROL = "matched_control"
152
+
153
+
154
+ @dataclass(frozen=True, slots=True)
155
+ class WorkloadPromptProvenance:
156
+ """Fail-closed declaration for static, outcome-free prompt knowledge."""
157
+
158
+ source_kind: WorkloadPromptSourceKind
159
+ source_artifact_sha256s: tuple[str, ...]
160
+ frozen_before_campaign: bool = True
161
+ evaluator_outcomes_accessed: bool = False
162
+ campaign_traces_accessed: bool = False
163
+ tuned_on_benchmark_outcomes: bool = False
164
+
165
+ def __post_init__(self) -> None:
166
+ if type(self.source_kind) is not WorkloadPromptSourceKind:
167
+ raise TypeError("source_kind must be an exact WorkloadPromptSourceKind")
168
+ if (
169
+ type(self.source_artifact_sha256s) is not tuple
170
+ or not self.source_artifact_sha256s
171
+ ):
172
+ raise ValueError("source_artifact_sha256s must be a non-empty tuple")
173
+ for value in self.source_artifact_sha256s:
174
+ _require_sha256(value, name="source_artifact_sha256")
175
+ if self.source_artifact_sha256s != tuple(
176
+ sorted(set(self.source_artifact_sha256s))
177
+ ):
178
+ raise ValueError("source artifact hashes must be unique and canonical")
179
+ for name in (
180
+ "frozen_before_campaign",
181
+ "evaluator_outcomes_accessed",
182
+ "campaign_traces_accessed",
183
+ "tuned_on_benchmark_outcomes",
184
+ ):
185
+ if type(getattr(self, name)) is not bool:
186
+ raise TypeError(f"{name} must be an exact bool")
187
+ if not self.frozen_before_campaign:
188
+ raise ValueError("workload prompt knowledge must be frozen before campaign")
189
+ if self.evaluator_outcomes_accessed:
190
+ raise ValueError("workload prompt knowledge cannot access evaluator outcomes")
191
+ if self.campaign_traces_accessed:
192
+ raise ValueError("workload prompt knowledge cannot access campaign traces")
193
+ if self.tuned_on_benchmark_outcomes:
194
+ raise ValueError("workload prompt knowledge cannot be outcome-tuned")
195
+
196
+ def to_record(self) -> dict[str, object]:
197
+ self.__post_init__()
198
+ return {
199
+ "schema_version": 1,
200
+ "source_kind": self.source_kind.value,
201
+ "source_artifact_sha256s": list(self.source_artifact_sha256s),
202
+ "frozen_before_campaign": self.frozen_before_campaign,
203
+ "evaluator_outcomes_accessed": self.evaluator_outcomes_accessed,
204
+ "campaign_traces_accessed": self.campaign_traces_accessed,
205
+ "tuned_on_benchmark_outcomes": self.tuned_on_benchmark_outcomes,
206
+ }
207
+
208
+ @property
209
+ def provenance_sha256(self) -> str:
210
+ return _sha256(_PROVENANCE_DOMAIN, self.to_record())
211
+
212
+
213
+ @dataclass(frozen=True, slots=True)
214
+ class WorkloadPromptExtensionView:
215
+ """One immutable model-visible arm derived from a complete extension."""
216
+
217
+ extension_id: str
218
+ extension_version: int
219
+ extension_definition_sha256: str
220
+ arm: WorkloadPromptArm
221
+ payload: FrozenJsonObject
222
+ provenance: WorkloadPromptProvenance
223
+ payload_sha256: str = field(init=False)
224
+ view_sha256: str = field(init=False)
225
+
226
+ def __post_init__(self) -> None:
227
+ _require_token(self.extension_id, name="extension_id")
228
+ if type(self.extension_version) is not int or self.extension_version <= 0:
229
+ raise ValueError("extension_version must be a positive exact integer")
230
+ _require_sha256(
231
+ self.extension_definition_sha256,
232
+ name="extension_definition_sha256",
233
+ )
234
+ if self.arm not in {
235
+ WorkloadPromptArm.SEMANTIC,
236
+ WorkloadPromptArm.MATCHED_CONTROL,
237
+ }:
238
+ raise ValueError("a rendered extension view must use a visible arm")
239
+ _validate_payload(self.payload, name="payload")
240
+ if type(self.provenance) is not WorkloadPromptProvenance:
241
+ raise TypeError("provenance must be exact WorkloadPromptProvenance")
242
+ WorkloadPromptProvenance.__post_init__(self.provenance)
243
+ payload_sha256 = typed_json_sha256(self.payload)
244
+ object.__setattr__(self, "payload_sha256", payload_sha256)
245
+ object.__setattr__(
246
+ self,
247
+ "view_sha256",
248
+ _sha256(_VIEW_DOMAIN, self._unsigned_binding_record()),
249
+ )
250
+
251
+ def _unsigned_binding_record(self) -> dict[str, object]:
252
+ return {
253
+ "schema_version": 1,
254
+ "extension_id": self.extension_id,
255
+ "extension_version": self.extension_version,
256
+ "extension_definition_sha256": self.extension_definition_sha256,
257
+ "arm": self.arm.value,
258
+ "payload_sha256": typed_json_sha256(self.payload),
259
+ "provenance_sha256": self.provenance.provenance_sha256,
260
+ }
261
+
262
+ def to_binding_record(self) -> dict[str, object]:
263
+ self.__post_init__()
264
+ return {
265
+ **self._unsigned_binding_record(),
266
+ "provenance": self.provenance.to_record(),
267
+ "view_sha256": self.view_sha256,
268
+ }
269
+
270
+ def to_prompt_record(self) -> dict[str, object]:
271
+ """Return the explicit static-context record rendered to the model."""
272
+
273
+ self.__post_init__()
274
+ return {
275
+ "schema_version": 1,
276
+ "extension_id": self.extension_id,
277
+ "extension_version": self.extension_version,
278
+ "extension_definition_sha256": self.extension_definition_sha256,
279
+ "arm": self.arm.value,
280
+ "view_sha256": self.view_sha256,
281
+ "payload": thaw_json(self.payload),
282
+ "evidence_status": (
283
+ "static_preoptimization_context_not_measured_search_evidence"
284
+ ),
285
+ "provenance": {
286
+ "source_kind": self.provenance.source_kind.value,
287
+ "source_artifact_sha256s": list(
288
+ self.provenance.source_artifact_sha256s
289
+ ),
290
+ "frozen_before_campaign": True,
291
+ "evaluator_outcomes_accessed": False,
292
+ "campaign_traces_accessed": False,
293
+ "tuned_on_benchmark_outcomes": False,
294
+ },
295
+ }
296
+
297
+
298
+ @dataclass(frozen=True, slots=True)
299
+ class WorkloadPromptExtension:
300
+ """Static semantic prompt plus an optional structure-matched control."""
301
+
302
+ extension_id: str
303
+ extension_version: int
304
+ semantic_payload: FrozenJsonObject
305
+ provenance: WorkloadPromptProvenance
306
+ matched_control_payload: FrozenJsonObject | None = None
307
+ definition_sha256: str = field(init=False)
308
+
309
+ def __post_init__(self) -> None:
310
+ _require_token(self.extension_id, name="extension_id")
311
+ if type(self.extension_version) is not int or self.extension_version <= 0:
312
+ raise ValueError("extension_version must be a positive exact integer")
313
+ _validate_payload(self.semantic_payload, name="semantic_payload")
314
+ if type(self.provenance) is not WorkloadPromptProvenance:
315
+ raise TypeError("provenance must be exact WorkloadPromptProvenance")
316
+ WorkloadPromptProvenance.__post_init__(self.provenance)
317
+ matched = self.matched_control_payload
318
+ if matched is not None:
319
+ _validate_payload(matched, name="matched_control_payload")
320
+ if _payload_shape(matched) != _payload_shape(self.semantic_payload):
321
+ raise ValueError(
322
+ "matched control payload must preserve the semantic payload shape"
323
+ )
324
+ if typed_json_sha256(matched) == typed_json_sha256(
325
+ self.semantic_payload
326
+ ):
327
+ raise ValueError("matched control must differ from semantic payload")
328
+ definition = {
329
+ "schema_version": 1,
330
+ "extension_id": self.extension_id,
331
+ "extension_version": self.extension_version,
332
+ "semantic_payload_sha256": typed_json_sha256(self.semantic_payload),
333
+ "matched_control_payload_sha256": (
334
+ None if matched is None else typed_json_sha256(matched)
335
+ ),
336
+ "provenance": self.provenance.to_record(),
337
+ "allowed_payload_keys": sorted(_ALLOWED_PAYLOAD_KEYS),
338
+ "outcome_access": False,
339
+ }
340
+ object.__setattr__(
341
+ self,
342
+ "definition_sha256",
343
+ _sha256(_EXTENSION_DOMAIN, definition),
344
+ )
345
+
346
+ def view(
347
+ self,
348
+ arm: WorkloadPromptArm,
349
+ ) -> WorkloadPromptExtensionView | None:
350
+ """Resolve one prospective ablation arm without inspecting outcomes."""
351
+
352
+ self.__post_init__()
353
+ if type(arm) is not WorkloadPromptArm:
354
+ raise TypeError("arm must be an exact WorkloadPromptArm")
355
+ if arm is WorkloadPromptArm.SCHEMA_ONLY:
356
+ return None
357
+ if arm is WorkloadPromptArm.SEMANTIC:
358
+ payload = self.semantic_payload
359
+ else:
360
+ payload = self.matched_control_payload
361
+ if payload is None:
362
+ raise ValueError(
363
+ "matched-control arm requires matched_control_payload"
364
+ )
365
+ return WorkloadPromptExtensionView(
366
+ extension_id=self.extension_id,
367
+ extension_version=self.extension_version,
368
+ extension_definition_sha256=self.definition_sha256,
369
+ arm=arm,
370
+ payload=payload,
371
+ provenance=self.provenance,
372
+ )
373
+
374
+ def to_record(self) -> dict[str, object]:
375
+ self.__post_init__()
376
+ return {
377
+ "schema_version": 1,
378
+ "extension_id": self.extension_id,
379
+ "extension_version": self.extension_version,
380
+ "definition_sha256": self.definition_sha256,
381
+ "semantic_payload_sha256": typed_json_sha256(self.semantic_payload),
382
+ "matched_control_payload_sha256": (
383
+ None
384
+ if self.matched_control_payload is None
385
+ else typed_json_sha256(self.matched_control_payload)
386
+ ),
387
+ "provenance": self.provenance.to_record(),
388
+ }
389
+
390
+
391
+ __all__ = [
392
+ "WORKLOAD_PROMPT_EXTENSION_CONTEXT_KEY",
393
+ "WorkloadPromptArm",
394
+ "WorkloadPromptExtension",
395
+ "WorkloadPromptExtensionView",
396
+ "WorkloadPromptProvenance",
397
+ "WorkloadPromptSourceKind",
398
+ ]