orizu 0.5.19 → 0.5.21

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 (378) hide show
  1. package/README.md +23 -0
  2. package/dist/archive-artifacts-cli.d.ts +50 -0
  3. package/dist/archive-artifacts-cli.d.ts.map +1 -0
  4. package/dist/artifact-archive.d.ts +48 -0
  5. package/dist/artifact-archive.d.ts.map +1 -0
  6. package/dist/artifact-pull.d.ts +22 -0
  7. package/dist/artifact-pull.d.ts.map +1 -0
  8. package/dist/banner.d.ts +3 -0
  9. package/dist/banner.d.ts.map +1 -0
  10. package/dist/connectors-cli.d.ts +31 -0
  11. package/dist/connectors-cli.d.ts.map +1 -0
  12. package/dist/credentials.d.ts +46 -0
  13. package/dist/credentials.d.ts.map +1 -0
  14. package/dist/csv.d.ts +49 -0
  15. package/dist/csv.d.ts.map +1 -0
  16. package/dist/dataset-download.d.ts +6 -0
  17. package/dist/dataset-download.d.ts.map +1 -0
  18. package/dist/dataset-edit-rows.d.ts +10 -0
  19. package/dist/dataset-edit-rows.d.ts.map +1 -0
  20. package/dist/dataset-upload-snapshot.d.ts +13 -0
  21. package/dist/dataset-upload-snapshot.d.ts.map +1 -0
  22. package/dist/daytona-slice-rehearsal.d.ts +89 -0
  23. package/dist/daytona-slice-rehearsal.d.ts.map +1 -0
  24. package/dist/daytona-slice.d.ts +106 -0
  25. package/dist/daytona-slice.d.ts.map +1 -0
  26. package/dist/deploy-key-merge-core.d.ts +121 -0
  27. package/dist/deploy-key-merge-core.d.ts.map +1 -0
  28. package/dist/diff-comments-cli.d.ts +12 -0
  29. package/dist/diff-comments-cli.d.ts.map +1 -0
  30. package/dist/diff-comments-cli.js +21 -2
  31. package/dist/egress-allowlist-cli.d.ts +23 -0
  32. package/dist/egress-allowlist-cli.d.ts.map +1 -0
  33. package/dist/egress-policy.d.ts +108 -0
  34. package/dist/egress-policy.d.ts.map +1 -0
  35. package/dist/error-response.d.ts +9 -0
  36. package/dist/error-response.d.ts.map +1 -0
  37. package/dist/file-parser.d.ts +5 -0
  38. package/dist/file-parser.d.ts.map +1 -0
  39. package/dist/gepa-engine-dispatch.d.ts +9 -0
  40. package/dist/gepa-engine-dispatch.d.ts.map +1 -0
  41. package/dist/gepa-engine-dispatch.js +307 -0
  42. package/dist/gepa-python-command.d.ts +6 -0
  43. package/dist/gepa-python-command.d.ts.map +1 -0
  44. package/dist/gepa-python-command.js +26 -0
  45. package/dist/gepa-python-paths.d.ts +6 -0
  46. package/dist/gepa-python-paths.d.ts.map +1 -0
  47. package/dist/gepa-python-paths.js +42 -0
  48. package/dist/git-credential.d.ts +69 -0
  49. package/dist/git-credential.d.ts.map +1 -0
  50. package/dist/git-recovery-environment.d.ts +31 -0
  51. package/dist/git-recovery-environment.d.ts.map +1 -0
  52. package/dist/github-setup.d.ts +122 -0
  53. package/dist/github-setup.d.ts.map +1 -0
  54. package/dist/global-flags.d.ts +12 -0
  55. package/dist/global-flags.d.ts.map +1 -0
  56. package/dist/help.d.ts +46 -0
  57. package/dist/help.d.ts.map +1 -0
  58. package/dist/help.js +93 -25
  59. package/dist/hosted-boot.d.ts +273 -0
  60. package/dist/hosted-boot.d.ts.map +1 -0
  61. package/dist/hosted-bootstrap-rehearsal.d.ts +86 -0
  62. package/dist/hosted-bootstrap-rehearsal.d.ts.map +1 -0
  63. package/dist/hosted-bootstrap.d.ts +188 -0
  64. package/dist/hosted-bootstrap.d.ts.map +1 -0
  65. package/dist/hosted-broker-server.d.ts +50 -0
  66. package/dist/hosted-broker-server.d.ts.map +1 -0
  67. package/dist/hosted-git-http-server.d.ts +36 -0
  68. package/dist/hosted-git-http-server.d.ts.map +1 -0
  69. package/dist/hosted-harness-claude.d.ts +195 -0
  70. package/dist/hosted-harness-claude.d.ts.map +1 -0
  71. package/dist/hosted-harness-opencode.d.ts +227 -0
  72. package/dist/hosted-harness-opencode.d.ts.map +1 -0
  73. package/dist/hosted-harness.d.ts +118 -0
  74. package/dist/hosted-harness.d.ts.map +1 -0
  75. package/dist/hosted-harvest.d.ts +68 -0
  76. package/dist/hosted-harvest.d.ts.map +1 -0
  77. package/dist/hosted-headless.d.ts +72 -0
  78. package/dist/hosted-headless.d.ts.map +1 -0
  79. package/dist/hosted-loop-lifecycle.d.ts +206 -0
  80. package/dist/hosted-loop-lifecycle.d.ts.map +1 -0
  81. package/dist/hosted-loop.d.ts +170 -0
  82. package/dist/hosted-loop.d.ts.map +1 -0
  83. package/dist/hosted-run-event-sink.d.ts +222 -0
  84. package/dist/hosted-run-event-sink.d.ts.map +1 -0
  85. package/dist/hosted-runtime-assets.d.ts +186 -0
  86. package/dist/hosted-runtime-assets.d.ts.map +1 -0
  87. package/dist/hosted-session-cli.d.ts +258 -0
  88. package/dist/hosted-session-cli.d.ts.map +1 -0
  89. package/dist/hosted-skill-staging.d.ts +73 -0
  90. package/dist/hosted-skill-staging.d.ts.map +1 -0
  91. package/dist/http.d.ts +8 -0
  92. package/dist/http.d.ts.map +1 -0
  93. package/dist/index.d.ts +22 -0
  94. package/dist/index.d.ts.map +1 -0
  95. package/dist/index.js +119 -129
  96. package/dist/instruction-set-gepa-launch.d.ts +3 -0
  97. package/dist/instruction-set-gepa-launch.d.ts.map +1 -0
  98. package/dist/instruction-set-gepa-launch.js +15 -0
  99. package/dist/instruction-set-loader.d.ts +6 -0
  100. package/dist/instruction-set-loader.d.ts.map +1 -0
  101. package/dist/instruction-set-loader.js +59 -0
  102. package/dist/instruction-set-manifest.d.ts +14 -0
  103. package/dist/instruction-set-manifest.d.ts.map +1 -0
  104. package/dist/instruction-set-manifest.js +162 -0
  105. package/dist/instruction-sets-cli.d.ts +40 -0
  106. package/dist/instruction-sets-cli.d.ts.map +1 -0
  107. package/dist/instruction-sets-cli.js +361 -0
  108. package/dist/json-response.d.ts +4 -0
  109. package/dist/json-response.d.ts.map +1 -0
  110. package/dist/jsonl-stream.d.ts +8 -0
  111. package/dist/jsonl-stream.d.ts.map +1 -0
  112. package/dist/kill-switch-cli.d.ts +30 -0
  113. package/dist/kill-switch-cli.d.ts.map +1 -0
  114. package/dist/loopback-serve.d.ts +25 -0
  115. package/dist/loopback-serve.d.ts.map +1 -0
  116. package/dist/manifests-cli.d.ts +22 -0
  117. package/dist/manifests-cli.d.ts.map +1 -0
  118. package/dist/markdown-report-input.d.ts +7 -0
  119. package/dist/markdown-report-input.d.ts.map +1 -0
  120. package/dist/markdown-report-input.js +15 -1
  121. package/dist/merge-job.d.ts +155 -0
  122. package/dist/merge-job.d.ts.map +1 -0
  123. package/dist/model-configs-cli.d.ts +19 -0
  124. package/dist/model-configs-cli.d.ts.map +1 -0
  125. package/dist/model-configs-cli.js +104 -0
  126. package/dist/optimization-export-cli.d.ts +19 -0
  127. package/dist/optimization-export-cli.d.ts.map +1 -0
  128. package/dist/optimizations-list-cli.d.ts +20 -0
  129. package/dist/optimizations-list-cli.d.ts.map +1 -0
  130. package/dist/optimizations-promote-cli.d.ts +8 -0
  131. package/dist/optimizations-promote-cli.d.ts.map +1 -0
  132. package/dist/optimizations-promote-cli.js +34 -0
  133. package/dist/option-validation.d.ts +15 -0
  134. package/dist/option-validation.d.ts.map +1 -0
  135. package/dist/preview-runtime.d.ts +63 -0
  136. package/dist/preview-runtime.d.ts.map +1 -0
  137. package/dist/prompt-draft-push.d.ts +60 -0
  138. package/dist/prompt-draft-push.d.ts.map +1 -0
  139. package/dist/prompt-label-cli.d.ts +11 -0
  140. package/dist/prompt-label-cli.d.ts.map +1 -0
  141. package/dist/prompt-label-cli.js +29 -0
  142. package/dist/prompt-length-wire.d.ts +28 -0
  143. package/dist/prompt-length-wire.d.ts.map +1 -0
  144. package/dist/prompt-length-wire.js +2 -2
  145. package/dist/prompt-report-cli.d.ts +10 -0
  146. package/dist/prompt-report-cli.d.ts.map +1 -0
  147. package/dist/prompt-report-cli.js +2 -2
  148. package/dist/prompt-summary-table.d.ts +15 -0
  149. package/dist/prompt-summary-table.d.ts.map +1 -0
  150. package/dist/prompt-summary-table.js +6 -0
  151. package/dist/registration-tag-warning.d.ts +32 -0
  152. package/dist/registration-tag-warning.d.ts.map +1 -0
  153. package/dist/report-comments-cli.d.ts +16 -0
  154. package/dist/report-comments-cli.d.ts.map +1 -0
  155. package/dist/report-markdown-blankness.d.ts +2 -0
  156. package/dist/report-markdown-blankness.d.ts.map +1 -0
  157. package/dist/report-markdown-blankness.js +6 -0
  158. package/dist/report-replacement-warning.d.ts +17 -0
  159. package/dist/report-replacement-warning.d.ts.map +1 -0
  160. package/dist/report-replacement-warning.js +31 -0
  161. package/dist/repository-backup-core.d.ts +225 -0
  162. package/dist/repository-backup-core.d.ts.map +1 -0
  163. package/dist/repository-recovery-manifest.d.ts +83 -0
  164. package/dist/repository-recovery-manifest.d.ts.map +1 -0
  165. package/dist/run-event-digest.d.ts +74 -0
  166. package/dist/run-event-digest.d.ts.map +1 -0
  167. package/dist/runner-dir-verify.d.ts +66 -0
  168. package/dist/runner-dir-verify.d.ts.map +1 -0
  169. package/dist/runner-instruction-set-contract.d.ts +24 -0
  170. package/dist/runner-instruction-set-contract.d.ts.map +1 -0
  171. package/dist/runner-instruction-set-contract.js +50 -0
  172. package/dist/sandbox-hygiene.d.ts +45 -0
  173. package/dist/sandbox-hygiene.d.ts.map +1 -0
  174. package/dist/sandbox-provider.d.ts +193 -0
  175. package/dist/sandbox-provider.d.ts.map +1 -0
  176. package/dist/scorer-draft-push.d.ts +50 -0
  177. package/dist/scorer-draft-push.d.ts.map +1 -0
  178. package/dist/scorers-cli.d.ts +20 -0
  179. package/dist/scorers-cli.d.ts.map +1 -0
  180. package/dist/scorers-cli.js +22 -0
  181. package/dist/scorers-verify-parity-bridge.d.ts +16 -0
  182. package/dist/scorers-verify-parity-bridge.d.ts.map +1 -0
  183. package/dist/scorers-verify-parity-bridge.js +90 -0
  184. package/dist/scorers-verify-parity.d.ts +81 -0
  185. package/dist/scorers-verify-parity.d.ts.map +1 -0
  186. package/dist/scorers-verify-parity.js +502 -0
  187. package/dist/scores-accept-cli.d.ts +21 -0
  188. package/dist/scores-accept-cli.d.ts.map +1 -0
  189. package/dist/secret-redaction.d.ts +47 -0
  190. package/dist/secret-redaction.d.ts.map +1 -0
  191. package/dist/session-timeline.d.ts +54 -0
  192. package/dist/session-timeline.d.ts.map +1 -0
  193. package/dist/setup-prompt.d.ts +5 -0
  194. package/dist/setup-prompt.d.ts.map +1 -0
  195. package/dist/skill-installer.d.ts +68 -0
  196. package/dist/skill-installer.d.ts.map +1 -0
  197. package/dist/skilled-proposer-launch.d.ts +7 -0
  198. package/dist/skilled-proposer-launch.d.ts.map +1 -0
  199. package/dist/skilled-proposer-launch.js +60 -0
  200. package/dist/smoke.d.ts +102 -0
  201. package/dist/smoke.d.ts.map +1 -0
  202. package/dist/start-intent.d.ts +12 -0
  203. package/dist/start-intent.d.ts.map +1 -0
  204. package/dist/task-assignment-manifest.d.ts +15 -0
  205. package/dist/task-assignment-manifest.d.ts.map +1 -0
  206. package/dist/task-create-error.d.ts +18 -0
  207. package/dist/task-create-error.d.ts.map +1 -0
  208. package/dist/team-connectors-cli.d.ts +29 -0
  209. package/dist/team-connectors-cli.d.ts.map +1 -0
  210. package/dist/types.d.ts +39 -0
  211. package/dist/types.d.ts.map +1 -0
  212. package/dist/vercel-sandbox-provider.d.ts +156 -0
  213. package/dist/vercel-sandbox-provider.d.ts.map +1 -0
  214. package/dist/workbench-cli.d.ts +233 -0
  215. package/dist/workbench-cli.d.ts.map +1 -0
  216. package/dist/workspace-sync.d.ts +207 -0
  217. package/dist/workspace-sync.d.ts.map +1 -0
  218. package/dist/workspace.d.ts +92 -0
  219. package/dist/workspace.d.ts.map +1 -0
  220. package/dist/zip-draft-push.d.ts +55 -0
  221. package/dist/zip-draft-push.d.ts.map +1 -0
  222. package/package.json +15 -2
  223. package/requirements/README.md +138 -0
  224. package/requirements/skilled-proposer.in +66 -0
  225. package/requirements/skilled-proposer.lock +265 -0
  226. package/scripts/build-cli-dist.mjs +30 -0
  227. package/scripts/ensure-skilled-proposer-venv.mjs +5 -0
  228. package/scripts/orizu-source-checkout.d.mts +1 -0
  229. package/scripts/orizu-source-checkout.mjs +10 -0
  230. package/scripts/refresh-skilled-proposer-lock.mjs +256 -0
  231. package/scripts/vendor-gepa-python.mjs +187 -4
  232. package/src/diff-comments-cli.ts +41 -3
  233. package/src/gepa-engine-dispatch.ts +340 -0
  234. package/src/gepa-python-command.ts +31 -0
  235. package/src/gepa-python-paths.ts +56 -0
  236. package/src/help.ts +95 -25
  237. package/src/index.ts +131 -166
  238. package/src/instruction-set-gepa-launch.ts +28 -0
  239. package/src/instruction-set-loader.ts +37 -0
  240. package/src/instruction-set-manifest.ts +120 -0
  241. package/src/instruction-sets-cli.ts +306 -0
  242. package/src/markdown-report-input.ts +19 -1
  243. package/src/model-configs-cli.ts +119 -0
  244. package/src/optimizations-promote-cli.ts +41 -0
  245. package/src/prompt-label-cli.ts +55 -0
  246. package/src/prompt-length-wire.ts +1 -1
  247. package/src/prompt-report-cli.ts +2 -2
  248. package/src/prompt-summary-table.ts +12 -0
  249. package/src/report-markdown-blankness.ts +6 -0
  250. package/src/report-replacement-warning.ts +35 -0
  251. package/src/runner-instruction-set-contract.ts +64 -0
  252. package/src/scorers-cli.ts +40 -0
  253. package/src/scorers-verify-parity-bridge.ts +90 -0
  254. package/src/scorers-verify-parity.ts +564 -0
  255. package/src/skilled-proposer-launch.ts +89 -0
  256. package/src/skilled-proposer-venv-manager.mjs +757 -0
  257. package/tsconfig.json +2 -0
  258. package/vendor/gepa-python/LICENSE +7 -0
  259. package/vendor/gepa-python/manifest.json +107 -0
  260. package/vendor/gepa-python/src/gepa/__init__.py +22 -0
  261. package/vendor/gepa-python/src/gepa/adapters/__init__.py +0 -0
  262. package/vendor/gepa-python/src/gepa/adapters/anymaths_adapter/__init__.py +1 -0
  263. package/vendor/gepa-python/src/gepa/adapters/anymaths_adapter/anymaths_adapter.py +174 -0
  264. package/vendor/gepa-python/src/gepa/adapters/confidence_adapter/__init__.py +26 -0
  265. package/vendor/gepa-python/src/gepa/adapters/confidence_adapter/confidence_adapter.py +618 -0
  266. package/vendor/gepa-python/src/gepa/adapters/confidence_adapter/scoring.py +206 -0
  267. package/vendor/gepa-python/src/gepa/adapters/default_adapter/__init__.py +0 -0
  268. package/vendor/gepa-python/src/gepa/adapters/default_adapter/default_adapter.py +206 -0
  269. package/vendor/gepa-python/src/gepa/adapters/dspy_adapter/__init__.py +0 -0
  270. package/vendor/gepa-python/src/gepa/adapters/dspy_adapter/dspy_adapter.py +525 -0
  271. package/vendor/gepa-python/src/gepa/adapters/dspy_adapter/instruction_proposal.py +500 -0
  272. package/vendor/gepa-python/src/gepa/adapters/dspy_full_program_adapter/__init__.py +6 -0
  273. package/vendor/gepa-python/src/gepa/adapters/dspy_full_program_adapter/dspy_program_proposal_signature.py +137 -0
  274. package/vendor/gepa-python/src/gepa/adapters/dspy_full_program_adapter/full_program_adapter.py +269 -0
  275. package/vendor/gepa-python/src/gepa/adapters/generic_rag_adapter/__init__.py +56 -0
  276. package/vendor/gepa-python/src/gepa/adapters/generic_rag_adapter/evaluation_metrics.py +226 -0
  277. package/vendor/gepa-python/src/gepa/adapters/generic_rag_adapter/generic_rag_adapter.py +496 -0
  278. package/vendor/gepa-python/src/gepa/adapters/generic_rag_adapter/rag_pipeline.py +238 -0
  279. package/vendor/gepa-python/src/gepa/adapters/generic_rag_adapter/vector_store_interface.py +212 -0
  280. package/vendor/gepa-python/src/gepa/adapters/generic_rag_adapter/vector_stores/__init__.py +2 -0
  281. package/vendor/gepa-python/src/gepa/adapters/generic_rag_adapter/vector_stores/chroma_store.py +196 -0
  282. package/vendor/gepa-python/src/gepa/adapters/generic_rag_adapter/vector_stores/lancedb_store.py +422 -0
  283. package/vendor/gepa-python/src/gepa/adapters/generic_rag_adapter/vector_stores/milvus_store.py +409 -0
  284. package/vendor/gepa-python/src/gepa/adapters/generic_rag_adapter/vector_stores/qdrant_store.py +368 -0
  285. package/vendor/gepa-python/src/gepa/adapters/generic_rag_adapter/vector_stores/weaviate_store.py +418 -0
  286. package/vendor/gepa-python/src/gepa/adapters/langchain_adapter/__init__.py +11 -0
  287. package/vendor/gepa-python/src/gepa/adapters/langchain_adapter/langchain_adapter.py +261 -0
  288. package/vendor/gepa-python/src/gepa/adapters/mcp_adapter/__init__.py +37 -0
  289. package/vendor/gepa-python/src/gepa/adapters/mcp_adapter/mcp_adapter.py +693 -0
  290. package/vendor/gepa-python/src/gepa/adapters/mcp_adapter/mcp_client.py +364 -0
  291. package/vendor/gepa-python/src/gepa/adapters/optimize_anything_adapter/optimize_anything_adapter.py +879 -0
  292. package/vendor/gepa-python/src/gepa/adapters/terminal_bench_adapter/__init__.py +0 -0
  293. package/vendor/gepa-python/src/gepa/adapters/terminal_bench_adapter/terminal_bench_adapter.py +217 -0
  294. package/vendor/gepa-python/src/gepa/api.py +468 -0
  295. package/vendor/gepa-python/src/gepa/core/__init__.py +0 -0
  296. package/vendor/gepa-python/src/gepa/core/adapter.py +227 -0
  297. package/vendor/gepa-python/src/gepa/core/callbacks.py +551 -0
  298. package/vendor/gepa-python/src/gepa/core/data_loader.py +74 -0
  299. package/vendor/gepa-python/src/gepa/core/engine.py +1025 -0
  300. package/vendor/gepa-python/src/gepa/core/result.py +271 -0
  301. package/vendor/gepa-python/src/gepa/core/state.py +706 -0
  302. package/vendor/gepa-python/src/gepa/examples/__init__.py +0 -0
  303. package/vendor/gepa-python/src/gepa/examples/aime.py +24 -0
  304. package/vendor/gepa-python/src/gepa/examples/anymaths-bench/eval_default.py +111 -0
  305. package/vendor/gepa-python/src/gepa/examples/anymaths-bench/train_anymaths.py +177 -0
  306. package/vendor/gepa-python/src/gepa/examples/mcp_adapter/__init__.py +4 -0
  307. package/vendor/gepa-python/src/gepa/examples/mcp_adapter/mcp_optimization_example.py +456 -0
  308. package/vendor/gepa-python/src/gepa/examples/rag_adapter/__init__.py +9 -0
  309. package/vendor/gepa-python/src/gepa/examples/rag_adapter/rag_optimization.py +824 -0
  310. package/vendor/gepa-python/src/gepa/examples/terminal-bench/train_terminus.py +161 -0
  311. package/vendor/gepa-python/src/gepa/gepa_utils.py +117 -0
  312. package/vendor/gepa-python/src/gepa/gskill/__init__.py +1 -0
  313. package/vendor/gepa-python/src/gepa/gskill/gskill/__init__.py +0 -0
  314. package/vendor/gepa-python/src/gepa/gskill/gskill/cost_tracker.py +194 -0
  315. package/vendor/gepa-python/src/gepa/gskill/gskill/evaluate/__init__.py +0 -0
  316. package/vendor/gepa-python/src/gepa/gskill/gskill/evaluate/claude_code.py +1117 -0
  317. package/vendor/gepa-python/src/gepa/gskill/gskill/evaluate/claude_code_skills.py +613 -0
  318. package/vendor/gepa-python/src/gepa/gskill/gskill/evaluate/mini_swe_agent.py +440 -0
  319. package/vendor/gepa-python/src/gepa/gskill/gskill/experiment_logger.py +367 -0
  320. package/vendor/gepa-python/src/gepa/gskill/gskill/swe_fitness_fn.py +209 -0
  321. package/vendor/gepa-python/src/gepa/gskill/gskill/swe_harness.py +352 -0
  322. package/vendor/gepa-python/src/gepa/gskill/gskill/train_optimize_anything.py +830 -0
  323. package/vendor/gepa-python/src/gepa/image.py +104 -0
  324. package/vendor/gepa-python/src/gepa/lm.py +261 -0
  325. package/vendor/gepa-python/src/gepa/logging/__init__.py +0 -0
  326. package/vendor/gepa-python/src/gepa/logging/experiment_tracker.py +457 -0
  327. package/vendor/gepa-python/src/gepa/logging/logger.py +75 -0
  328. package/vendor/gepa-python/src/gepa/logging/utils.py +130 -0
  329. package/vendor/gepa-python/src/gepa/optimize_anything.py +1701 -0
  330. package/vendor/gepa-python/src/gepa/proposer/__init__.py +0 -0
  331. package/vendor/gepa-python/src/gepa/proposer/base.py +53 -0
  332. package/vendor/gepa-python/src/gepa/proposer/merge.py +403 -0
  333. package/vendor/gepa-python/src/gepa/proposer/reflective_mutation/__init__.py +0 -0
  334. package/vendor/gepa-python/src/gepa/proposer/reflective_mutation/base.py +64 -0
  335. package/vendor/gepa-python/src/gepa/proposer/reflective_mutation/reflection_lm.py +178 -0
  336. package/vendor/gepa-python/src/gepa/proposer/reflective_mutation/reflective_mutation.py +641 -0
  337. package/vendor/gepa-python/src/gepa/py.typed +0 -0
  338. package/vendor/gepa-python/src/gepa/strategies/__init__.py +0 -0
  339. package/vendor/gepa-python/src/gepa/strategies/acceptance.py +66 -0
  340. package/vendor/gepa-python/src/gepa/strategies/batch_sampler.py +103 -0
  341. package/vendor/gepa-python/src/gepa/strategies/candidate_selector.py +82 -0
  342. package/vendor/gepa-python/src/gepa/strategies/component_selector.py +36 -0
  343. package/vendor/gepa-python/src/gepa/strategies/eval_policy.py +64 -0
  344. package/vendor/gepa-python/src/gepa/strategies/instruction_proposal.py +153 -0
  345. package/vendor/gepa-python/src/gepa/strategies/proposal_sampling.py +128 -0
  346. package/vendor/gepa-python/src/gepa/strategies/proposal_selection.py +84 -0
  347. package/vendor/gepa-python/src/gepa/utils/__init__.py +63 -0
  348. package/vendor/gepa-python/src/gepa/utils/code_execution.py +626 -0
  349. package/vendor/gepa-python/src/gepa/utils/stdio_capture.py +145 -0
  350. package/vendor/gepa-python/src/gepa/utils/stop_condition.py +230 -0
  351. package/vendor/gepa-python/src/gepa/visualization.py +359 -0
  352. package/vendor/orizu-gepa/pyproject.toml +18 -0
  353. package/vendor/orizu-gepa/src/orizu_gepa_connector/__init__.py +9 -0
  354. package/vendor/orizu-gepa/src/orizu_gepa_connector/__main__.py +5 -0
  355. package/vendor/orizu-gepa/src/orizu_gepa_connector/adapter.py +138 -0
  356. package/vendor/orizu-gepa/src/orizu_gepa_connector/callbacks.py +666 -0
  357. package/vendor/orizu-gepa/src/orizu_gepa_connector/cli.py +7 -0
  358. package/vendor/orizu-gepa/src/orizu_gepa_connector/engine.py +269 -0
  359. package/vendor/orizu-gepa/src/orizu_gepa_connector/instruction_set_loader.py +52 -0
  360. package/vendor/orizu-gepa/src/orizu_gepa_connector/preflight.py +64 -0
  361. package/vendor/orizu-gepa/src/orizu_gepa_connector/reflection.py +186 -0
  362. package/vendor/orizu-gepa/src/orizu_gepa_connector/runtime.py +721 -0
  363. package/vendor/orizu-gepa/src/orizu_gepa_connector/skilled_proposer_bridge.py +381 -0
  364. package/vendor/orizu-gepa/src/orizu_gepa_connector/stop_conditions.py +55 -0
  365. package/vendor/orizu-gepa/src/orizu_gepa_connector/translator.py +203 -0
  366. package/vendor/orizu-gepa-python/pyproject.toml +1 -1
  367. package/vendor/orizu-gepa-python/src/orizu_gepa/cli.py +1 -0
  368. package/vendor/orizu-gepa-python/src/orizu_gepa/client.py +52 -7
  369. package/vendor/orizu-gepa-python/src/orizu_gepa/local_log.py +52 -0
  370. package/vendor/orizu-gepa-python/src/orizu_gepa/optimizer.py +10 -5
  371. package/vendor/orizu-gepa-python/src/orizu_gepa/reflection.py +323 -68
  372. package/vendor/orizu-gepa-python/src/orizu_gepa/runner.py +207 -13
  373. package/vendor/skills/orizu-cli/SKILL.md +3 -1
  374. package/vendor/skills/orizu-cli/references/cli-reference.md +85 -1
  375. package/vendor/skills/orizu-cli/references/migrate-existing-gepa-setup.md +303 -0
  376. package/vendor/skills/orizu-cli/references/optimization-reports.md +1 -1
  377. package/vendor/skills/orizu-cli/references/optimization-with-gepa.md +26 -1
  378. package/vendor/skills/orizu-cli/references/prompt-control-plane.md +113 -10
package/tsconfig.json CHANGED
@@ -4,6 +4,8 @@
4
4
  "module": "NodeNext",
5
5
  "moduleResolution": "NodeNext",
6
6
  "outDir": "dist",
7
+ "declaration": true,
8
+ "declarationMap": true,
7
9
  "rootDir": "src",
8
10
  "strict": true,
9
11
  "esModuleInterop": true,
@@ -0,0 +1,7 @@
1
+ Copyright © 2025 Lakshya A Agrawal
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4
+
5
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6
+
7
+ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,107 @@
1
+ {
2
+ "schemaVersion": "gepa-vendor.v1",
3
+ "upstream": {
4
+ "package": "gepa",
5
+ "version": "0.1.4",
6
+ "repositoryCommit": "8b0ce6cd99a234f6b74daf37558a2ac0ce18f975",
7
+ "wheel": {
8
+ "filename": "gepa-0.1.4-py3-none-any.whl",
9
+ "sha256": "12b971039599625c156d2231f6d72a29c31a22e9c237689459b5f1a3c353f532"
10
+ }
11
+ },
12
+ "files": {
13
+ "LICENSE": "10c47467a961feb40adf3294fe27dd9cba79d4d1b7cf27173b1c34586d4126c3",
14
+ "src/gepa/__init__.py": "61cdac47f24d1f24315b8beb8d65e834a67a2a7a6cf9b667ecf6c669ddc6f4a6",
15
+ "src/gepa/adapters/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
16
+ "src/gepa/adapters/anymaths_adapter/__init__.py": "121e49528d57b20e76150d409ed1a1ef8b0f08532fa0ad7dfd0a49263eb2fe71",
17
+ "src/gepa/adapters/anymaths_adapter/anymaths_adapter.py": "70dc1619f8447b1beb8de354cd6cbdf9cf39b913f5b36b9a365eacad9827c3d3",
18
+ "src/gepa/adapters/confidence_adapter/__init__.py": "d13275271f681d040c0905607bfac3fdf84f204fc8aebb5a144930b891e43223",
19
+ "src/gepa/adapters/confidence_adapter/confidence_adapter.py": "b4b7c24d495e40cae61fb9f4b17b2f7fa951837e38d2fcfedc41f62dabd57e5a",
20
+ "src/gepa/adapters/confidence_adapter/scoring.py": "e218f1dacf2497ab577e6f93fe39a98f7cd7cb66f14bae9b1f1c1845e5e82af2",
21
+ "src/gepa/adapters/default_adapter/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
22
+ "src/gepa/adapters/default_adapter/default_adapter.py": "9583ceb97990d2230450410913d748761fdbf9f279b9e6dcd7011200dec8063e",
23
+ "src/gepa/adapters/dspy_adapter/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
24
+ "src/gepa/adapters/dspy_adapter/dspy_adapter.py": "35d82248aef5a4ed9b6f88cfbe7fba9c04e8d653b4e49416158c3007dcce21d0",
25
+ "src/gepa/adapters/dspy_adapter/instruction_proposal.py": "de61058caf84610b7e87635b1fe3fc848ab65318ef95d1a1e5a807e39f5b292d",
26
+ "src/gepa/adapters/dspy_full_program_adapter/__init__.py": "93ca8fc801342d9f8a0181faf650cc0559d1d93ba6f475221f2f775ddec3bd42",
27
+ "src/gepa/adapters/dspy_full_program_adapter/dspy_program_proposal_signature.py": "bf28deb7752bf27eb27f7b2917ce6525b3c9d06b0462a59ac430fce42b79b743",
28
+ "src/gepa/adapters/dspy_full_program_adapter/full_program_adapter.py": "de8d2838d390aacbb8f0146625d7ba8778eb3dc6e9f4c96c968e6ea4823d0431",
29
+ "src/gepa/adapters/generic_rag_adapter/__init__.py": "f30f03f9ec9b4b25f88ab76ab9a664c8b234e983a326efec73ad98cc93f04c58",
30
+ "src/gepa/adapters/generic_rag_adapter/evaluation_metrics.py": "7fb9d73b48e9ed897ab52e9f03e1120c8b0eea23f5a489ca9a69d81721f06c34",
31
+ "src/gepa/adapters/generic_rag_adapter/generic_rag_adapter.py": "cbe1152a045770022aa34fe5e0743561c0c76f6c581f6f63a9cbe5250b93c597",
32
+ "src/gepa/adapters/generic_rag_adapter/rag_pipeline.py": "8dba4dc5fef4763d59f7f1f354f5a442738aef651dc15e7539e6974ae203eef7",
33
+ "src/gepa/adapters/generic_rag_adapter/vector_store_interface.py": "a5d8b0f7bcbdf7750ae1a9a769bff741ad4469ecd91a08e5e858414b457e2bf3",
34
+ "src/gepa/adapters/generic_rag_adapter/vector_stores/__init__.py": "25006b3989e8b257028019b128739692b2345c2fd17ce46469066fd73ba06afb",
35
+ "src/gepa/adapters/generic_rag_adapter/vector_stores/chroma_store.py": "b8d527b8562577daf3d7beb2521c2c419735d4834626f0072ddea09ddefb3dc6",
36
+ "src/gepa/adapters/generic_rag_adapter/vector_stores/lancedb_store.py": "31fc5919c5b9251de60675ad126844885959abadf46f203d0d031d09e40ca804",
37
+ "src/gepa/adapters/generic_rag_adapter/vector_stores/milvus_store.py": "40b82f6464dbdf1f2161f3c5b080b37721224cbd7b73b6f20fbf7caebb35f777",
38
+ "src/gepa/adapters/generic_rag_adapter/vector_stores/qdrant_store.py": "4bd98e1973f44cfb011f1ae0d5d6693516a0f7521285fec5ee68cd75a0c85f8e",
39
+ "src/gepa/adapters/generic_rag_adapter/vector_stores/weaviate_store.py": "75b1297a31964e6e392f181065a508b259d22afccb3a078fa3f5e5657024a80c",
40
+ "src/gepa/adapters/langchain_adapter/__init__.py": "d7de53a334ab4775ebf71be526ff946af29c7eec0f0cf86f8bee54bce6a1dd8e",
41
+ "src/gepa/adapters/langchain_adapter/langchain_adapter.py": "001ea36c4272a77add647fa2c4758c42b4590d001c02267a9b22a973c4d1f5db",
42
+ "src/gepa/adapters/mcp_adapter/__init__.py": "516969aa27da083b8abeddc190af410bd46458f286915c6249edb5a52f8a5400",
43
+ "src/gepa/adapters/mcp_adapter/mcp_adapter.py": "8366e013d5bcad90eb55b998aa6d2b81859c831c0d58b5d6eeb47c005ded2c65",
44
+ "src/gepa/adapters/mcp_adapter/mcp_client.py": "f420efcb09ac01a9d6ed85a205eb2ca8a90de0b641bece22444a873e1b0d8653",
45
+ "src/gepa/adapters/optimize_anything_adapter/optimize_anything_adapter.py": "36f27ae8fa7f96c550e1a298ba20d353fa846424cb457c727e2961a7aaf7e4d8",
46
+ "src/gepa/adapters/terminal_bench_adapter/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
47
+ "src/gepa/adapters/terminal_bench_adapter/terminal_bench_adapter.py": "7d87934f5ffca6740a630ea981158db2407c5f5f2ce68cdb3806aab70c9a72d8",
48
+ "src/gepa/api.py": "228c4f80c782dc36afc19492bbb023eba12f257aaa22b947009efc473c4572f9",
49
+ "src/gepa/core/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
50
+ "src/gepa/core/adapter.py": "51f47f94802987555202ba4bbe1f8dddf328fce822d1ec02b25a7a049320cef8",
51
+ "src/gepa/core/callbacks.py": "7f1e8a8a40546e659b900b2e769ab231cb05c38f35bc8bb164df5f99f2cc01d4",
52
+ "src/gepa/core/data_loader.py": "b1343c92ca654bca51d42819d1b2e4b0edfa3c40124e3316ed060297837810bd",
53
+ "src/gepa/core/engine.py": "ba361b477de74c20eb813b277b0fb85b6898ca534e09c8e878604fb1c8980c53",
54
+ "src/gepa/core/result.py": "5ee9ccfdf31e2d4d1262793c569e44ef7b39659a3e971e4f3dc7d656d69a1d85",
55
+ "src/gepa/core/state.py": "9ad128c981c7344ba0e89d053c2fe33e98a2d74d830679d620cb7cd0d7b1820c",
56
+ "src/gepa/examples/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
57
+ "src/gepa/examples/aime.py": "75bba7b19456748529eba34b28b34efe64390ac921a4ee10b336ef58591327b6",
58
+ "src/gepa/examples/anymaths-bench/eval_default.py": "8ba17775c96ff8e0c214f06c477b95854a53ace6b03a2344b8ac20fbb23b9322",
59
+ "src/gepa/examples/anymaths-bench/train_anymaths.py": "09210464ce712b70eb5494a46175ecb1a1d62fdf73905b549741c701ed3cf0e8",
60
+ "src/gepa/examples/mcp_adapter/__init__.py": "a1f9d400525fe9e53167a4c6446f89dc7c022bf5fcf0db76ee7b309f6ac4ffba",
61
+ "src/gepa/examples/mcp_adapter/mcp_optimization_example.py": "053d70352444c5a7fe6724d666b16154b2ca2e0117c0159fd0f98d28dfde22ed",
62
+ "src/gepa/examples/rag_adapter/__init__.py": "ec18895a1c95bda4ac9924ee9e38397372d037582577171990768da4652b7004",
63
+ "src/gepa/examples/rag_adapter/rag_optimization.py": "dd38b601bdd9cac81f9090976ddf4f8d492d588a57bcc3e457f1fb35d132089e",
64
+ "src/gepa/examples/terminal-bench/train_terminus.py": "682cfa266ce670bf5bcab108d46ab6159a4979fa759c32c90685c867d30626c3",
65
+ "src/gepa/gepa_utils.py": "60aca7024e31a3e273a01187a6329f381f297a77ec7b6add4b9c90b4d64e9b6c",
66
+ "src/gepa/gskill/__init__.py": "762995e85daa1619696e6084937ccc0ea7a408eaead55f93943f32b953e1f546",
67
+ "src/gepa/gskill/gskill/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
68
+ "src/gepa/gskill/gskill/cost_tracker.py": "e4b8d1856bd78a44ca5913948a7a1f6ff6f017c3ba8313b48fdb3cad67fcba74",
69
+ "src/gepa/gskill/gskill/evaluate/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
70
+ "src/gepa/gskill/gskill/evaluate/claude_code.py": "2d073fd336730288402f42fd42841fa3f03ca90d550fbb6df431168701067d71",
71
+ "src/gepa/gskill/gskill/evaluate/claude_code_skills.py": "29782c68162e407d27788b89db98b5b340826915749b96d6cf1d9445c9badb66",
72
+ "src/gepa/gskill/gskill/evaluate/mini_swe_agent.py": "da679ca79f70c8404966380cc01e422ec6b072fa20a7b9ce8b88732cb280ffb8",
73
+ "src/gepa/gskill/gskill/experiment_logger.py": "e03c78cf1ad4760753f89a22bdcf4e4888b9b1a643a1daf9dac5a43693725ce6",
74
+ "src/gepa/gskill/gskill/swe_fitness_fn.py": "6b8c6a7efd7696a60287371a8da98b6a5272a61925f3fac2a9d9b8c4e456c78f",
75
+ "src/gepa/gskill/gskill/swe_harness.py": "34e783289e5172a33638a2e153c0e58eaeaf0f93aff2990da9e45e2dfab56e4c",
76
+ "src/gepa/gskill/gskill/train_optimize_anything.py": "91c9750500fb733a24ea634bfab849bf3bc6130e2b8d138d25e5afe5d7d4b43f",
77
+ "src/gepa/image.py": "9a567eb78747c365742e945aa8279007d7d38c2bd9163cdfb35f2191fd13d919",
78
+ "src/gepa/lm.py": "ac3680ba1986a907b98b824165cfd9f6bdbb7c3e77caf76b5d97e029a82244d8",
79
+ "src/gepa/logging/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
80
+ "src/gepa/logging/experiment_tracker.py": "e6b6e54d18c9ced038c9c7d2f776183db7c9d928ba032673172504370b6d1dd2",
81
+ "src/gepa/logging/logger.py": "10977fa9f2b28a708ad2416f00d129dfdfb18200883bee1c5d6fe0a91b003d4a",
82
+ "src/gepa/logging/utils.py": "43f488abf884b363083d2f76b288cb517c30f03e893322321857a28aa9c2e536",
83
+ "src/gepa/optimize_anything.py": "bd021ab277c44d5f988cf19a186127b9087b88d59656f560bb07e654524a7f26",
84
+ "src/gepa/proposer/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
85
+ "src/gepa/proposer/base.py": "75242e6c71758444d97949fb5c38ff84cd52f2f77f5464c894f6229c9beb210c",
86
+ "src/gepa/proposer/merge.py": "cd0a3254927e399d0cae4a212076f7577161027b3c4ff19d03c3d2150408ee5a",
87
+ "src/gepa/proposer/reflective_mutation/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
88
+ "src/gepa/proposer/reflective_mutation/base.py": "f183a12536999004eca9e0d889b53f82bea7e159b4f1c013a3e762251fe3afc1",
89
+ "src/gepa/proposer/reflective_mutation/reflection_lm.py": "a7357585f90b9cae52c9930805c8020d982119489e4aaee853c3366df67bff85",
90
+ "src/gepa/proposer/reflective_mutation/reflective_mutation.py": "73eac4a18249fdf84e4cd048bf9527cf9084a565424887a470e004ba047a6a87",
91
+ "src/gepa/py.typed": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
92
+ "src/gepa/strategies/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
93
+ "src/gepa/strategies/acceptance.py": "a6234c188fdeab0f7181dd1f01d767fc91779512773ed4ad952df68855c1d3a4",
94
+ "src/gepa/strategies/batch_sampler.py": "9d009fb88a65663bf22681accfd198261d6689bf4a88931b74bbb76b6d1e2278",
95
+ "src/gepa/strategies/candidate_selector.py": "c2565e251d0cdc00d7548dde7fd0316190c97a64bc130ea86ea6e2fc8a232cfd",
96
+ "src/gepa/strategies/component_selector.py": "248cc6eb125eeddaa98f90b7780db2754ec0444a6143aeb1f97ff5660cf39568",
97
+ "src/gepa/strategies/eval_policy.py": "a54c5969ac47b82c5699e2bc0077ed09efbb046fa077661c10e8ed5f356055ce",
98
+ "src/gepa/strategies/instruction_proposal.py": "c3848586365c546afdbfb7ffd6f80b6f49def7575821ff352a29bbcf624bd977",
99
+ "src/gepa/strategies/proposal_sampling.py": "6a00c84708698adf24c207fa4ea5fdbd8a98a31009a84ecf3fffec5b2e5b3dac",
100
+ "src/gepa/strategies/proposal_selection.py": "8866ac697928ab0824653117876e08af7087d4cbfe24a4feaedb8ceef9b75b18",
101
+ "src/gepa/utils/__init__.py": "bc700cabd70b16ebce92ea16b579a256a0fdbb31900f226ddc3d0e9446f1f2da",
102
+ "src/gepa/utils/code_execution.py": "d21c5449193d8cb63a95593c9e3e7c450adea422b6f2453563eee9842efff8aa",
103
+ "src/gepa/utils/stdio_capture.py": "e2a24d14eb8dd79644554d32ff453ad83f13ffd937f0d97979c99f0d91dd778c",
104
+ "src/gepa/utils/stop_condition.py": "d33475e411a38353f34272b12b0b2a7af24bbbeca2c2e4fe6c204fa476e87fdb",
105
+ "src/gepa/visualization.py": "57261cff28ec8bdb2c00a3cd2b461ad24c60e69614c8f44721a95ab2065026ca"
106
+ }
107
+ }
@@ -0,0 +1,22 @@
1
+ # Copyright (c) 2025 Lakshya A Agrawal and the GEPA contributors
2
+ # https://github.com/gepa-ai/gepa
3
+
4
+ from . import (
5
+ optimize_anything, # expose submodule; use `from gepa.optimize_anything import optimize_anything` for the function
6
+ )
7
+ from .adapters import default_adapter
8
+ from .api import optimize
9
+ from .core.adapter import EvaluationBatch, GEPAAdapter
10
+ from .core.result import GEPAResult
11
+ from .examples import aime
12
+ from .image import Image
13
+ from .utils.stop_condition import (
14
+ CompositeStopper,
15
+ FileStopper,
16
+ MaxMetricCallsStopper,
17
+ NoImprovementStopper,
18
+ ScoreThresholdStopper,
19
+ SignalStopper,
20
+ StopperProtocol,
21
+ TimeoutStopCondition,
22
+ )
@@ -0,0 +1 @@
1
+ from .anymaths_adapter import AnyMathsAdapter
@@ -0,0 +1,174 @@
1
+ from typing import Any, TypedDict
2
+
3
+ import litellm
4
+ from pydantic import BaseModel, Field
5
+
6
+ from gepa.core.adapter import EvaluationBatch, GEPAAdapter
7
+
8
+
9
+ class AnyMathsDataInst(TypedDict):
10
+ input: str
11
+ additional_context: dict[str, str]
12
+ answer: str
13
+
14
+
15
+ class AnyMathsTrajectory(TypedDict):
16
+ data: AnyMathsDataInst
17
+ full_assistant_response: str
18
+
19
+
20
+ class AnyMathsRolloutOutput(TypedDict):
21
+ full_assistant_response: str
22
+
23
+
24
+ class AnyMathsStructuredOutput(BaseModel):
25
+ final_answer: str = Field(
26
+ ..., description="The final answer to the mathematical problem (i.e., no units, no other text)"
27
+ )
28
+ solution_pad: str = Field(..., description="The solution pad containing the step-by-step solution to the problem.")
29
+
30
+
31
+ class AnyMathsAdapter(GEPAAdapter[AnyMathsDataInst, AnyMathsTrajectory, AnyMathsRolloutOutput]):
32
+ """AnyMaths Adapter is a GEPAAdapter for any dataset that contains mathematical word problems
33
+ of varying complexity and structure. It is designed to handle a wide range of mathematical
34
+ tasks, including arithmetic, algebra, and more.
35
+
36
+ Note: Ollama must be installed and configured to use this adapter.
37
+ """
38
+
39
+ def __init__(
40
+ self,
41
+ model: str,
42
+ failure_score: float = 0.0,
43
+ api_base: str | None = "http://localhost:11434",
44
+ max_litellm_workers: int = 10,
45
+ ) -> None:
46
+ import litellm
47
+
48
+ self.model = model
49
+ self.failure_score = failure_score
50
+ self.litellm = litellm
51
+ self.max_litellm_workers = max_litellm_workers
52
+ self.api_base = api_base
53
+
54
+ if self.model.startswith("ollama"):
55
+ assert self.api_base is not None, "API base URL must be provided when using Ollama."
56
+
57
+ if self.api_base is None or self.api_base == "":
58
+ self.api_base = None
59
+
60
+ def evaluate(
61
+ self,
62
+ batch: list[AnyMathsDataInst],
63
+ candidate: dict[str, str],
64
+ capture_traces: bool = False,
65
+ ) -> EvaluationBatch[AnyMathsTrajectory, AnyMathsRolloutOutput]:
66
+ import ast
67
+
68
+ outputs: list[AnyMathsRolloutOutput] = []
69
+ scores: list[float] = []
70
+ trajectories: list[AnyMathsTrajectory] | None = [] if capture_traces else None
71
+
72
+ if not candidate:
73
+ raise ValueError("Candidate must contain at least one component text.")
74
+
75
+ system_content = next(iter(candidate.values()))
76
+
77
+ litellm_requests = []
78
+
79
+ for data in batch:
80
+ user_content = f"{data['input']}"
81
+
82
+ messages = [
83
+ {"role": "system", "content": system_content},
84
+ {"role": "user", "content": user_content},
85
+ ]
86
+
87
+ litellm_requests.append(messages)
88
+
89
+ try:
90
+ responses = self.litellm.batch_completion(
91
+ model=self.model,
92
+ messages=litellm_requests,
93
+ api_base=self.api_base,
94
+ max_workers=self.max_litellm_workers,
95
+ format=AnyMathsStructuredOutput.model_json_schema(),
96
+ response_format={
97
+ "type": "json_object",
98
+ "response_schema": AnyMathsStructuredOutput.model_json_schema(),
99
+ "enforce_validation": True,
100
+ },
101
+ )
102
+ except litellm.exceptions.JSONSchemaValidationError as e:
103
+ raise e
104
+
105
+ for data, response in zip(batch, responses, strict=False):
106
+ correct_output_format = True
107
+ try:
108
+ assistant_response = ast.literal_eval(response.choices[0].message.content.strip())
109
+ except Exception:
110
+ assistant_response = "Assistant failed to respond with the correct answer or format."
111
+ correct_output_format = False
112
+
113
+ if correct_output_format:
114
+ structured_assistant_response = f"Assistant's Solution: {assistant_response['solution_pad']}\n"
115
+ structured_assistant_response += f"Final Answer: {assistant_response['final_answer']}"
116
+ output = {"full_assistant_response": structured_assistant_response}
117
+ score = 1.0 if data["answer"] in assistant_response["final_answer"] else self.failure_score
118
+ else:
119
+ output = {"full_assistant_response": assistant_response}
120
+ score = self.failure_score
121
+
122
+ outputs.append(output)
123
+ scores.append(score)
124
+
125
+ if capture_traces:
126
+ trajectories.append({"data": data, "full_assistant_response": output["full_assistant_response"]})
127
+ # Return results for the entire batch (not just the first item)
128
+ return EvaluationBatch(outputs=outputs, scores=scores, trajectories=trajectories)
129
+
130
+ def make_reflective_dataset(
131
+ self,
132
+ candidate: dict[str, str],
133
+ eval_batch: EvaluationBatch[AnyMathsTrajectory, AnyMathsRolloutOutput],
134
+ components_to_update: list[str],
135
+ ) -> dict[str, list[dict[str, Any]]]:
136
+ ret_d: dict[str, list[dict[str, Any]]] = {}
137
+
138
+ assert len(components_to_update) == 1
139
+ comp = components_to_update[0]
140
+
141
+ items: list[dict[str, Any]] = []
142
+ trace_instances = list(zip(eval_batch.trajectories, eval_batch.scores, eval_batch.outputs, strict=False))
143
+
144
+ for trace_instance in trace_instances:
145
+ traj, score, _ = trace_instance
146
+ data = traj["data"]
147
+ generated_outputs = traj["full_assistant_response"]
148
+
149
+ if score > 0.0:
150
+ feedback = f"The generated response is correct. The final answer is: {data['answer']}."
151
+ else:
152
+ additional_context_str = "\n".join(f"{k}: {v}" for k, v in data["additional_context"].items())
153
+ if additional_context_str:
154
+ feedback = (
155
+ f"The generated response is incorrect. The correct answer is: {data['answer']}. "
156
+ "Ensure that the correct answer is included in the response exactly as it is. "
157
+ f"Here is some additional context that might be helpful:\n{additional_context_str}"
158
+ )
159
+ else:
160
+ feedback = (
161
+ f"The generated response is incorrect. The correct answer is: {data['answer']}. "
162
+ "Ensure that the correct answer is included in the response exactly as it is."
163
+ )
164
+
165
+ d = {"Inputs": data["input"], "Generated Outputs": generated_outputs, "Feedback": feedback}
166
+
167
+ items.append(d)
168
+
169
+ ret_d[comp] = items
170
+
171
+ if len(items) == 0:
172
+ raise Exception("No valid predictions found for any module.")
173
+
174
+ return ret_d
@@ -0,0 +1,26 @@
1
+ # Copyright (c) 2025 Lakshya A Agrawal and the GEPA contributors
2
+ # https://github.com/gepa-ai/gepa
3
+
4
+ from .confidence_adapter import (
5
+ ConfidenceAdapter,
6
+ ConfidenceDataInst,
7
+ ConfidenceRolloutOutput,
8
+ ConfidenceTrajectory,
9
+ )
10
+ from .scoring import (
11
+ LinearBlendScoring,
12
+ ScoringStrategy,
13
+ SigmoidScoring,
14
+ ThresholdScoring,
15
+ )
16
+
17
+ __all__ = [
18
+ "ConfidenceAdapter",
19
+ "ConfidenceDataInst",
20
+ "ConfidenceRolloutOutput",
21
+ "ConfidenceTrajectory",
22
+ "LinearBlendScoring",
23
+ "ScoringStrategy",
24
+ "SigmoidScoring",
25
+ "ThresholdScoring",
26
+ ]