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,426 @@
1
+ """Immutable, outcome-blind finite action sets for matched selector tests.
2
+
3
+ The exact recommendation attached to an insight remains an anchor. A finite
4
+ action set is a separate experimental authority that exposes a small local
5
+ neighbourhood around that anchor to both a model and an engine comparator.
6
+ """
7
+
8
+ from __future__ import annotations
9
+
10
+ import hashlib
11
+ import json
12
+ import re
13
+ from dataclasses import dataclass, field
14
+ from enum import Enum
15
+
16
+ from agent_evolve.domain.finite_variation import (
17
+ FiniteVariationContract,
18
+ FiniteVariationOption,
19
+ validate_finite_variation_contract,
20
+ validate_finite_variation_option,
21
+ )
22
+ from agent_evolve.domain.ids import CandidateId
23
+ from agent_evolve.domain.insight import InsightRef
24
+ from agent_evolve.domain.patch import require_sha256
25
+
26
+
27
+ MIN_MATCHED_FINITE_ACTIONS = 4
28
+ MAX_MATCHED_FINITE_ACTIONS = 8
29
+
30
+ _TOKEN = re.compile(r"^[a-z][a-z0-9_.-]{0,95}$")
31
+ _PATH = re.compile(
32
+ r"^\$\.[^.\[\]\s]+(?:\.[^.\[\]\s]+|\[(?:0|[1-9][0-9]*)\])*$"
33
+ )
34
+ _OPTION_PROMPT_DOMAIN = b"agent-evolve:finite-action-option-prompt:v1\x00"
35
+ _PRESENTATION_DOMAIN = b"agent-evolve:finite-action-presentation:v1\x00"
36
+ _SUPPORT_DOMAIN = b"agent-evolve:finite-action-support:v1\x00"
37
+ _CARD_DOMAIN = b"agent-evolve:finite-action-card:v1\x00"
38
+ _AUTHORITY_DOMAIN = b"agent-evolve:finite-action-set-authority:v1\x00"
39
+
40
+
41
+ def _canonical_json(value: object) -> bytes:
42
+ return json.dumps(
43
+ value,
44
+ ensure_ascii=True,
45
+ allow_nan=False,
46
+ separators=(",", ":"),
47
+ sort_keys=True,
48
+ ).encode("ascii")
49
+
50
+
51
+ def _hash(domain: bytes, value: object) -> str:
52
+ return hashlib.sha256(domain + _canonical_json(value)).hexdigest()
53
+
54
+
55
+ def _policy_identity(
56
+ policy_id: str,
57
+ policy_version: int,
58
+ definition_sha256: str,
59
+ *,
60
+ name: str,
61
+ ) -> None:
62
+ if type(policy_id) is not str or _TOKEN.fullmatch(policy_id) is None:
63
+ raise ValueError(f"{name} policy_id must use the token grammar")
64
+ if type(policy_version) is not int or policy_version <= 0:
65
+ raise ValueError(f"{name} policy_version must be positive")
66
+ require_sha256(definition_sha256, f"{name} definition_sha256")
67
+
68
+
69
+ def _canonical_paths(values: tuple[str, ...]) -> None:
70
+ if type(values) is not tuple or not values:
71
+ raise ValueError("changed_paths must be a non-empty exact tuple")
72
+ if any(type(value) is not str or _PATH.fullmatch(value) is None for value in values):
73
+ raise TypeError("changed_paths must contain canonical rooted JSON paths")
74
+ if values != tuple(sorted(set(values))):
75
+ raise ValueError("changed_paths must be unique and canonical")
76
+
77
+
78
+ class FiniteActionSourceMode(str, Enum):
79
+ COMPILED_ACTIVE_CARD = "compiled_active_card"
80
+ COMPILED_SHUFFLED_CARD = "compiled_shuffled_card"
81
+ EVIDENCE_FREE_CARD = "evidence_free_card"
82
+
83
+
84
+ @dataclass(frozen=True, slots=True)
85
+ class FiniteActionOptionAuthority:
86
+ """One full child plus its path, phenotype, and prompt identities."""
87
+
88
+ option: FiniteVariationOption
89
+ changed_paths: tuple[str, ...]
90
+ phenotype_policy_id: str
91
+ phenotype_policy_version: int
92
+ phenotype_identity_sha256: str
93
+ prompt_record_sha256: str = field(init=False)
94
+
95
+ def __post_init__(self) -> None:
96
+ if type(self.option) is not FiniteVariationOption:
97
+ raise TypeError("option must be an exact FiniteVariationOption")
98
+ validate_finite_variation_option(self.option)
99
+ _canonical_paths(self.changed_paths)
100
+ if type(self.phenotype_policy_id) is not str or _TOKEN.fullmatch(
101
+ self.phenotype_policy_id
102
+ ) is None:
103
+ raise ValueError("phenotype_policy_id must use the token grammar")
104
+ if type(self.phenotype_policy_version) is not int or self.phenotype_policy_version <= 0:
105
+ raise ValueError("phenotype_policy_version must be positive")
106
+ require_sha256(
107
+ self.phenotype_identity_sha256,
108
+ "phenotype_identity_sha256",
109
+ )
110
+ object.__setattr__(
111
+ self,
112
+ "prompt_record_sha256",
113
+ _hash(_OPTION_PROMPT_DOMAIN, self.option.prompt_record()),
114
+ )
115
+
116
+ def to_record(self) -> dict[str, object]:
117
+ return {
118
+ "option": self.option.evidence_record(),
119
+ "changed_paths": list(self.changed_paths),
120
+ "phenotype_policy_id": self.phenotype_policy_id,
121
+ "phenotype_policy_version": self.phenotype_policy_version,
122
+ "phenotype_identity_sha256": self.phenotype_identity_sha256,
123
+ "prompt_record_sha256": self.prompt_record_sha256,
124
+ }
125
+
126
+
127
+ @dataclass(frozen=True, slots=True)
128
+ class FiniteActionPresentationAuthority:
129
+ """Exact provider-visible ordering and structural prompt commitment."""
130
+
131
+ policy_id: str
132
+ policy_version: int
133
+ definition_sha256: str
134
+ ordered_option_ids: tuple[str, ...]
135
+ ordered_prompt_record_sha256s: tuple[str, ...]
136
+ prompt_shape_sha256: str
137
+ presentation_sha256: str = field(init=False)
138
+
139
+ def __post_init__(self) -> None:
140
+ _policy_identity(
141
+ self.policy_id,
142
+ self.policy_version,
143
+ self.definition_sha256,
144
+ name="presentation",
145
+ )
146
+ count = len(self.ordered_option_ids)
147
+ if type(self.ordered_option_ids) is not tuple or not self.ordered_option_ids:
148
+ raise ValueError("ordered_option_ids must be a non-empty exact tuple")
149
+ if any(type(value) is not str or not value for value in self.ordered_option_ids):
150
+ raise TypeError("ordered_option_ids must contain non-empty strings")
151
+ if len(set(self.ordered_option_ids)) != count:
152
+ raise ValueError("ordered_option_ids must be unique")
153
+ if (
154
+ type(self.ordered_prompt_record_sha256s) is not tuple
155
+ or len(self.ordered_prompt_record_sha256s) != count
156
+ ):
157
+ raise ValueError("prompt-record identities must cover every option")
158
+ for value in self.ordered_prompt_record_sha256s:
159
+ require_sha256(value, "ordered_prompt_record_sha256")
160
+ require_sha256(self.prompt_shape_sha256, "prompt_shape_sha256")
161
+ object.__setattr__(
162
+ self,
163
+ "presentation_sha256",
164
+ _hash(_PRESENTATION_DOMAIN, self.to_record()),
165
+ )
166
+
167
+ def to_record(self) -> dict[str, object]:
168
+ return {
169
+ "schema_version": 1,
170
+ "policy_id": self.policy_id,
171
+ "policy_version": self.policy_version,
172
+ "definition_sha256": self.definition_sha256,
173
+ "ordered_option_ids": list(self.ordered_option_ids),
174
+ "ordered_prompt_record_sha256s": list(
175
+ self.ordered_prompt_record_sha256s
176
+ ),
177
+ "prompt_shape_sha256": self.prompt_shape_sha256,
178
+ }
179
+
180
+
181
+ @dataclass(frozen=True, slots=True)
182
+ class FiniteActionSupportAuthority:
183
+ """The exact K children shared by every matched selector on one parent."""
184
+
185
+ parent_candidate_id: CandidateId
186
+ source_contract_sha256: str
187
+ support_contract: FiniteVariationContract
188
+ endpoint_definition_sha256: str
189
+ context_projection_sha256: str
190
+ options: tuple[FiniteActionOptionAuthority, ...]
191
+ anchor_option_id: str
192
+ presentation: FiniteActionPresentationAuthority
193
+ compatible_option_count: int
194
+ support_sha256: str = field(init=False)
195
+
196
+ def __post_init__(self) -> None:
197
+ if type(self.parent_candidate_id) is not CandidateId:
198
+ raise TypeError("parent_candidate_id must be an exact CandidateId")
199
+ CandidateId.__post_init__(self.parent_candidate_id)
200
+ require_sha256(self.source_contract_sha256, "source_contract_sha256")
201
+ validate_finite_variation_contract(self.support_contract)
202
+ for name in ("endpoint_definition_sha256", "context_projection_sha256"):
203
+ require_sha256(getattr(self, name), name)
204
+ count = len(self.options)
205
+ if type(self.options) is not tuple or not (
206
+ MIN_MATCHED_FINITE_ACTIONS <= count <= MAX_MATCHED_FINITE_ACTIONS
207
+ ):
208
+ raise ValueError(
209
+ "finite action support cardinality must lie in "
210
+ f"[{MIN_MATCHED_FINITE_ACTIONS},{MAX_MATCHED_FINITE_ACTIONS}]"
211
+ )
212
+ if any(type(value) is not FiniteActionOptionAuthority for value in self.options):
213
+ raise TypeError("options must contain exact option authorities")
214
+ for value in self.options:
215
+ FiniteActionOptionAuthority.__post_init__(value)
216
+ if tuple(value.option for value in self.options) != self.support_contract.options:
217
+ raise ValueError("option authorities differ from the support contract")
218
+ if len({value.option.option_id for value in self.options}) != count:
219
+ raise ValueError("support option IDs must be unique")
220
+ if len({value.option.identity_sha256 for value in self.options}) != count:
221
+ raise ValueError("support option identities must be unique")
222
+ if len({value.option.child_configuration_sha256 for value in self.options}) != count:
223
+ raise ValueError("support children must be unique")
224
+ if len({value.phenotype_identity_sha256 for value in self.options}) != count:
225
+ raise ValueError("support phenotypes must be unique")
226
+ if type(self.anchor_option_id) is not str or self.anchor_option_id not in {
227
+ value.option.option_id for value in self.options
228
+ }:
229
+ raise ValueError("anchor_option_id must identify exactly one support option")
230
+ if type(self.presentation) is not FiniteActionPresentationAuthority:
231
+ raise TypeError("presentation must be exact")
232
+ FiniteActionPresentationAuthority.__post_init__(self.presentation)
233
+ if self.presentation.ordered_option_ids != tuple(
234
+ value.option.option_id for value in self.options
235
+ ):
236
+ raise ValueError("presentation order differs from the support")
237
+ if self.presentation.ordered_prompt_record_sha256s != tuple(
238
+ value.prompt_record_sha256 for value in self.options
239
+ ):
240
+ raise ValueError("presentation prompt records differ from the support")
241
+ if type(self.compatible_option_count) is not int or self.compatible_option_count != count:
242
+ raise ValueError("every support option must pass prospective compatibility")
243
+ object.__setattr__(
244
+ self,
245
+ "support_sha256",
246
+ _hash(_SUPPORT_DOMAIN, self.to_record()),
247
+ )
248
+
249
+ @property
250
+ def cardinality(self) -> int:
251
+ return len(self.options)
252
+
253
+ @property
254
+ def parent_configuration_sha256(self) -> str:
255
+ return self.support_contract.parent_configuration_sha256
256
+
257
+ def to_record(self) -> dict[str, object]:
258
+ return {
259
+ "schema_version": 1,
260
+ "parent_candidate_id": self.parent_candidate_id.value,
261
+ "parent_configuration_sha256": self.parent_configuration_sha256,
262
+ "source_contract_sha256": self.source_contract_sha256,
263
+ "support_contract": self.support_contract.evidence_record(),
264
+ "endpoint_definition_sha256": self.endpoint_definition_sha256,
265
+ "context_projection_sha256": self.context_projection_sha256,
266
+ "options": [value.to_record() for value in self.options],
267
+ "anchor_option_id": self.anchor_option_id,
268
+ "presentation": {
269
+ **self.presentation.to_record(),
270
+ "presentation_sha256": self.presentation.presentation_sha256,
271
+ },
272
+ "compatible_option_count": self.compatible_option_count,
273
+ }
274
+
275
+
276
+ @dataclass(frozen=True, slots=True)
277
+ class FiniteActionCardAuthority:
278
+ """Immutable card provenance; K neighbours never become recommendations."""
279
+
280
+ source_mode: FiniteActionSourceMode
281
+ reference: InsightRef
282
+ card_content_sha256: str
283
+ registered_source_evidence_sha256: str | None
284
+ exact_anchor_requirement_sha256: str
285
+ compilation_request_sha256: str | None
286
+ compilation_receipt_sha256: str | None
287
+ executable_spec_sha256: str | None
288
+ prompt_card_record_sha256: str
289
+ card_authority_sha256: str = field(init=False)
290
+
291
+ def __post_init__(self) -> None:
292
+ if type(self.source_mode) is not FiniteActionSourceMode:
293
+ raise TypeError("source_mode must be an exact FiniteActionSourceMode")
294
+ if type(self.reference) is not InsightRef:
295
+ raise TypeError("reference must be an exact InsightRef")
296
+ InsightRef.__post_init__(self.reference)
297
+ for name in (
298
+ "card_content_sha256",
299
+ "exact_anchor_requirement_sha256",
300
+ "prompt_card_record_sha256",
301
+ ):
302
+ require_sha256(getattr(self, name), name)
303
+ optional = (
304
+ self.registered_source_evidence_sha256,
305
+ self.compilation_request_sha256,
306
+ self.compilation_receipt_sha256,
307
+ self.executable_spec_sha256,
308
+ )
309
+ if self.source_mode is FiniteActionSourceMode.EVIDENCE_FREE_CARD:
310
+ if any(value is not None for value in optional[1:]):
311
+ raise ValueError("evidence-free card cannot claim compiler evidence")
312
+ else:
313
+ if any(value is None for value in optional):
314
+ raise ValueError("compiled card authority requires complete evidence")
315
+ for value in optional:
316
+ if value is not None:
317
+ require_sha256(value, "optional card evidence SHA-256")
318
+ object.__setattr__(
319
+ self,
320
+ "card_authority_sha256",
321
+ _hash(_CARD_DOMAIN, self.to_record()),
322
+ )
323
+
324
+ def to_record(self) -> dict[str, object]:
325
+ return {
326
+ "schema_version": 1,
327
+ "source_mode": self.source_mode.value,
328
+ "reference": {
329
+ "insight_id": self.reference.insight_id.value,
330
+ "version": self.reference.version,
331
+ },
332
+ "card_content_sha256": self.card_content_sha256,
333
+ "registered_source_evidence_sha256": (
334
+ self.registered_source_evidence_sha256
335
+ ),
336
+ "exact_anchor_requirement_sha256": (
337
+ self.exact_anchor_requirement_sha256
338
+ ),
339
+ "compilation_request_sha256": self.compilation_request_sha256,
340
+ "compilation_receipt_sha256": self.compilation_receipt_sha256,
341
+ "executable_spec_sha256": self.executable_spec_sha256,
342
+ "prompt_card_record_sha256": self.prompt_card_record_sha256,
343
+ }
344
+
345
+
346
+ @dataclass(frozen=True, slots=True)
347
+ class FiniteActionSetAuthority:
348
+ """Card plus matched support, sealed before any current candidate outcome."""
349
+
350
+ support: FiniteActionSupportAuthority
351
+ card: FiniteActionCardAuthority
352
+ support_compilation_request_sha256: str
353
+ support_compilation_draft_sha256: str
354
+ support_compiler_policy_id: str
355
+ support_compiler_policy_version: int
356
+ support_compiler_definition_sha256: str
357
+ current_outcome_access: bool = False
358
+ authority_sha256: str = field(init=False)
359
+
360
+ def __post_init__(self) -> None:
361
+ if type(self.support) is not FiniteActionSupportAuthority:
362
+ raise TypeError("support must be exact")
363
+ FiniteActionSupportAuthority.__post_init__(self.support)
364
+ if type(self.card) is not FiniteActionCardAuthority:
365
+ raise TypeError("card must be exact")
366
+ FiniteActionCardAuthority.__post_init__(self.card)
367
+ require_sha256(
368
+ self.support_compilation_request_sha256,
369
+ "support_compilation_request_sha256",
370
+ )
371
+ require_sha256(
372
+ self.support_compilation_draft_sha256,
373
+ "support_compilation_draft_sha256",
374
+ )
375
+ _policy_identity(
376
+ self.support_compiler_policy_id,
377
+ self.support_compiler_policy_version,
378
+ self.support_compiler_definition_sha256,
379
+ name="support compiler",
380
+ )
381
+ if type(self.current_outcome_access) is not bool:
382
+ raise TypeError("current_outcome_access must be bool")
383
+ if self.current_outcome_access:
384
+ raise ValueError("finite action set authority must be outcome-blind")
385
+ object.__setattr__(
386
+ self,
387
+ "authority_sha256",
388
+ _hash(_AUTHORITY_DOMAIN, self.to_record()),
389
+ )
390
+
391
+ def to_record(self) -> dict[str, object]:
392
+ return {
393
+ "schema_version": 1,
394
+ "support": {
395
+ **self.support.to_record(),
396
+ "support_sha256": self.support.support_sha256,
397
+ },
398
+ "card": {
399
+ **self.card.to_record(),
400
+ "card_authority_sha256": self.card.card_authority_sha256,
401
+ },
402
+ "support_compilation_request_sha256": (
403
+ self.support_compilation_request_sha256
404
+ ),
405
+ "support_compilation_draft_sha256": (
406
+ self.support_compilation_draft_sha256
407
+ ),
408
+ "support_compiler_policy_id": self.support_compiler_policy_id,
409
+ "support_compiler_policy_version": self.support_compiler_policy_version,
410
+ "support_compiler_definition_sha256": (
411
+ self.support_compiler_definition_sha256
412
+ ),
413
+ "current_outcome_access": self.current_outcome_access,
414
+ }
415
+
416
+
417
+ __all__ = [
418
+ "FiniteActionCardAuthority",
419
+ "FiniteActionOptionAuthority",
420
+ "FiniteActionPresentationAuthority",
421
+ "FiniteActionSetAuthority",
422
+ "FiniteActionSourceMode",
423
+ "FiniteActionSupportAuthority",
424
+ "MAX_MATCHED_FINITE_ACTIONS",
425
+ "MIN_MATCHED_FINITE_ACTIONS",
426
+ ]