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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loopback-serve.d.ts","sourceRoot":"","sources":["../src/loopback-serve.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;CAChC;AAED,UAAU,oBAAoB;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,WAAW,CAAA;IACrB,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAA;CAC1D;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;KAAE,CAAA;CAC7F;AAgBD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,oBAAoB,EAC7B,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,EACzD,UAAU,EAAE,MAAM,GACjB,cAAc,CAahB"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Promotion manifests CLI (ALI-907): list | show | approve | reject | apply.
3
+ * Pure command logic with an injected fetcher and project resolver; the entry
4
+ * point owns argument parsing and human/JSON output. apply is idempotent on the
5
+ * server — re-applying returns the stored outcome.
6
+ *
7
+ * Every id-taking subcommand accepts a short-id PREFIX (ALI-1038/ALI-1092): a
8
+ * leading hex slice of the manifest UUID is resolved CLI-side against the
9
+ * project's manifest list — unique match wins, none/ambiguous is a clear error,
10
+ * never a server 500.
11
+ */
12
+ export type CliFetcher = (path: string, init?: RequestInit) => Promise<Response>;
13
+ export interface ManifestsCommandIo {
14
+ json: boolean;
15
+ print: (line: string) => void;
16
+ fetcher?: CliFetcher;
17
+ resolveProjectSlug?: (arg: string | null) => Promise<string>;
18
+ /** Injectable sleeper for the apply auto-retry loop (tests). */
19
+ sleep?: (ms: number) => Promise<void>;
20
+ }
21
+ export declare function manifestsCommand(args: string[], io: ManifestsCommandIo): Promise<number>;
22
+ //# sourceMappingURL=manifests-cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifests-cli.d.ts","sourceRoot":"","sources":["../src/manifests-cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEhF,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7B,OAAO,CAAC,EAAE,UAAU,CAAA;IACpB,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAC5D,gEAAgE;IAChE,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACtC;AA0PD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAkG9F"}
@@ -0,0 +1,7 @@
1
+ export declare const MARKDOWN_REPORT_MAX_BYTES: number;
2
+ export interface MarkdownReportInput {
3
+ markdown: string;
4
+ sourceName: string | null;
5
+ }
6
+ export declare function readMarkdownReportInput(args: readonly string[], reportLabel: 'Optimization' | 'Prompt' | 'Task'): MarkdownReportInput | null;
7
+ //# sourceMappingURL=markdown-report-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown-report-input.d.ts","sourceRoot":"","sources":["../src/markdown-report-input.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,yBAAyB,QAAkB,CAAA;AAsCxD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,WAAW,EAAE,cAAc,GAAG,QAAQ,GAAG,MAAM,GAC9C,mBAAmB,GAAG,IAAI,CA8C5B"}
@@ -1,5 +1,6 @@
1
1
  import { readFileSync } from 'fs';
2
2
  import { basename } from 'path';
3
+ import { hasCanonicalReportMarkdownContent } from './report-markdown-blankness.js';
3
4
  export const MARKDOWN_REPORT_MAX_BYTES = 2 * 1024 * 1024;
4
5
  function getArg(args, name) {
5
6
  const index = args.indexOf(name);
@@ -17,6 +18,11 @@ function rejectDashPrefixedOptionValue(name, value) {
17
18
  throw new Error(`Invalid value for ${name}: option values cannot start with a dash`);
18
19
  }
19
20
  }
21
+ function rejectMissingOptionValue(args, name) {
22
+ if (args.some((arg, index) => arg === name && index + 1 >= args.length)) {
23
+ throw new Error(`${name} requires a value`);
24
+ }
25
+ }
20
26
  function readSourceFile(pathArg) {
21
27
  const expandedPath = expandHomePath(pathArg);
22
28
  try {
@@ -31,6 +37,14 @@ function readSourceFile(pathArg) {
31
37
  }
32
38
  }
33
39
  export function readMarkdownReportInput(args, reportLabel) {
40
+ if (args.some(arg => arg.startsWith('--report='))) {
41
+ throw new Error('use --report <markdown|@file> with a space, not =');
42
+ }
43
+ if (args.some(arg => arg.startsWith('--report-file='))) {
44
+ throw new Error('use --report-file <path> with a space, not =');
45
+ }
46
+ rejectMissingOptionValue(args, '--report');
47
+ rejectMissingOptionValue(args, '--report-file');
34
48
  const report = getArg(args, '--report');
35
49
  const reportFile = getArg(args, '--report-file');
36
50
  rejectDashPrefixedOptionValue('--report', report);
@@ -57,7 +71,7 @@ export function readMarkdownReportInput(args, reportLabel) {
57
71
  markdown = report || '';
58
72
  sourceName = 'inline';
59
73
  }
60
- if (!markdown.trim()) {
74
+ if (!hasCanonicalReportMarkdownContent(markdown)) {
61
75
  throw new Error(`${reportLabel} report markdown must not be blank`);
62
76
  }
63
77
  if (Buffer.byteLength(markdown, 'utf8') > MARKDOWN_REPORT_MAX_BYTES) {
@@ -0,0 +1,155 @@
1
+ /**
2
+ * `orizu internal merge-job` — the one-shot merge sandbox ENTRYPOINT
3
+ * (ALI-1084, merge-sandbox-job Phase 2). The MergeJobCoordinator DO launches
4
+ * this inside a minimal, AGENT-FREE sandbox booted from the hosted snapshot;
5
+ * from here the sandbox pulls its own credentials under the established
6
+ * boot-secret PULL model and runs the SHARED merge core
7
+ * (deploy-key-merge-core.ts — the exact code the server path runs; no forked
8
+ * merge logic).
9
+ *
10
+ * FLOW (plan §2.2 step 4):
11
+ * a. exchange ORIZU_BOOT_SECRET at the DO for a single-use JOB TOKEN
12
+ * (`GET {coordinator}/merge-jobs/:jobKey/job-token`) — the token transits
13
+ * Cloudflare; the DEPLOY KEY never does;
14
+ * b. pull `{spec, privateKeyPem}` DIRECTLY from the control plane
15
+ * (`GET {orizu}/api/coordinator/merge-jobs/:jobId/payload`, job-token
16
+ * auth) — single-use, audited server-side before the key is returned;
17
+ * c. run the shared merge core (tmp worktree, 0600 key file, pinned GitHub
18
+ * host keys, expected-head verification, argv-asserted --no-ff merge)
19
+ * with the D8 PRE-PUSH GATE wired in: immediately before `git push` the
20
+ * core calls `GET .../gate`; `proceed: false` aborts WITHOUT pushing
21
+ * (terminal `superseded`). An UNREACHABLE gate also refuses the push
22
+ * (fail closed) but reports `failed` (retryable) — "unknown" is not
23
+ * "rejected";
24
+ * d. POST the terminal result to the DO (boot-secret auth). Reporting the
25
+ * terminal state — not the merge outcome — is this command's success:
26
+ * exit 0 on ANY reported terminal (conflict/superseded included), exit 1
27
+ * only when the env is invalid or the report itself failed.
28
+ *
29
+ * FROZEN ENV CONTRACT (the DO's merge-job sandbox env plan):
30
+ * ORIZU_BOOT_SECRET per-sandbox durable bootstrap secret;
31
+ * ORIZU_MERGE_JOB_ID the job's DO addressing key
32
+ * (`merge:<manifestId>:<expectedHeadSha>` — the
33
+ * control-plane job uuid rides the token response);
34
+ * ORIZU_COORDINATOR_URL the coordinator Worker origin;
35
+ * ORIZU_BASE_URL the Orizu control-plane origin.
36
+ *
37
+ * REDACTION: every reported detail passes through `redactSecrets` with the
38
+ * boot secret, the job token, and the private key PEM on the exact-match list
39
+ * (plus the shape-pattern net). Nothing here ever logs a secret.
40
+ */
41
+ import { type DeployKeyMergeResult, type GitCommandRunner } from './deploy-key-merge-core.js';
42
+ export type MergeJobFetch = (url: string, init?: RequestInit) => Promise<Response>;
43
+ export declare const REQUIRED_MERGE_JOB_ENV_VARS: readonly ["ORIZU_BOOT_SECRET", "ORIZU_MERGE_JOB_ID", "ORIZU_COORDINATOR_URL", "ORIZU_BASE_URL"];
44
+ export interface MergeJobEnv {
45
+ bootSecret: string;
46
+ /** The DO addressing key (`merge:<manifestId>:<expectedHeadSha>`). */
47
+ jobKey: string;
48
+ coordinatorUrl: string;
49
+ baseUrl: string;
50
+ }
51
+ export declare function resolveMergeJobEnv(env: Record<string, string | undefined>): {
52
+ ok: true;
53
+ value: MergeJobEnv;
54
+ } | {
55
+ ok: false;
56
+ missing: string[];
57
+ invalid: string[];
58
+ };
59
+ export type MergeJobTerminalStatus = 'succeeded' | 'conflict' | 'superseded' | 'failed';
60
+ export interface MergeJobReport {
61
+ status: MergeJobTerminalStatus;
62
+ result: {
63
+ merged: boolean;
64
+ sha: string | null;
65
+ alreadyMerged: boolean;
66
+ conflict: boolean;
67
+ } | null;
68
+ errorDetail: string | null;
69
+ }
70
+ /** Map the shared core's outcome to the job's terminal status. */
71
+ export declare function terminalFromMergeResult(result: DeployKeyMergeResult): MergeJobReport;
72
+ export interface ExchangedJobToken {
73
+ token: string;
74
+ /** The control-plane job id (merge_jobs uuid) — payload/gate URLs use it. */
75
+ jobId: string;
76
+ }
77
+ export declare function exchangeJobToken(opts: {
78
+ coordinatorUrl: string;
79
+ jobKey: string;
80
+ bootSecret: string;
81
+ fetchImpl: MergeJobFetch;
82
+ attempts?: number;
83
+ backoffMs?: number;
84
+ sleep?: (ms: number) => Promise<void>;
85
+ log?: (line: string) => void;
86
+ }): Promise<ExchangedJobToken>;
87
+ export interface MergeJobSpec {
88
+ op: 'merge';
89
+ jobId: string;
90
+ manifestId: string;
91
+ workspaceId: string;
92
+ repoFullName: string;
93
+ base: string;
94
+ sourceBranch: string;
95
+ expectedHeadSha: string;
96
+ commitMessage: string;
97
+ }
98
+ export interface MergeJobPayload {
99
+ spec: MergeJobSpec;
100
+ privateKeyPem: string;
101
+ }
102
+ export declare function fetchMergeJobPayload(opts: {
103
+ baseUrl: string;
104
+ jobId: string;
105
+ token: string;
106
+ fetchImpl: MergeJobFetch;
107
+ }): Promise<MergeJobPayload>;
108
+ export type GateOutcome = 'proceed' | 'superseded' | 'unavailable';
109
+ export declare function checkPrePushGate(opts: {
110
+ baseUrl: string;
111
+ jobId: string;
112
+ token: string;
113
+ fetchImpl: MergeJobFetch;
114
+ }): Promise<GateOutcome>;
115
+ export declare function postMergeJobResult(opts: {
116
+ coordinatorUrl: string;
117
+ jobKey: string;
118
+ bootSecret: string;
119
+ report: MergeJobReport;
120
+ fetchImpl: MergeJobFetch;
121
+ attempts?: number;
122
+ sleep?: (ms: number) => Promise<void>;
123
+ log?: (line: string) => void;
124
+ }): Promise<boolean>;
125
+ export interface RunMergeJobOptions {
126
+ env: MergeJobEnv;
127
+ fetchImpl?: MergeJobFetch;
128
+ /** Injectable git runner (tests). Default: the core's real spawn. */
129
+ runGit?: GitCommandRunner;
130
+ sleep?: (ms: number) => Promise<void>;
131
+ log?: (line: string) => void;
132
+ tokenAttempts?: number;
133
+ tokenBackoffMs?: number;
134
+ }
135
+ export interface MergeJobRunResult {
136
+ /** Whether the terminal state reached the DO — the command's success bar. */
137
+ reported: boolean;
138
+ status: MergeJobTerminalStatus;
139
+ detail: string | null;
140
+ }
141
+ export declare function runMergeJob(opts: RunMergeJobOptions): Promise<MergeJobRunResult>;
142
+ export interface MergeJobCommandIo {
143
+ print: (line: string) => void;
144
+ printErr?: (line: string) => void;
145
+ json?: boolean;
146
+ }
147
+ /**
148
+ * Read the frozen env contract and run the job. Exit 0 on ANY reported
149
+ * terminal outcome (the REPORT, not the merge, is the command's success —
150
+ * a conflict is a correctly-completed job); exit 1 when the env is invalid
151
+ * or the terminal report never reached the DO (the DO's job wall is the
152
+ * backstop then).
153
+ */
154
+ export declare function mergeJobCommand(io: MergeJobCommandIo): Promise<number>;
155
+ //# sourceMappingURL=merge-job.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-job.d.ts","sourceRoot":"","sources":["../src/merge-job.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export type CliFetcher = (path: string, init?: RequestInit) => Promise<Response>;
2
+ export interface ModelConfigSettingsVersion {
3
+ versionNumber: number;
4
+ settings: Record<string, unknown>;
5
+ }
6
+ export interface ModelConfig {
7
+ identity: string;
8
+ displayName: string;
9
+ currentSettingsVersion: ModelConfigSettingsVersion;
10
+ createdAt: string;
11
+ }
12
+ export interface ModelConfigsCommandIo {
13
+ json: boolean;
14
+ print: (line: string) => void;
15
+ fetcher?: CliFetcher;
16
+ resolveProjectSlug?: (arg: string | null) => Promise<string>;
17
+ }
18
+ export declare function modelConfigsCommand(args: string[], io: ModelConfigsCommandIo): Promise<number>;
19
+ //# sourceMappingURL=model-configs-cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-configs-cli.d.ts","sourceRoot":"","sources":["../src/model-configs-cli.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEhF,MAAM,WAAW,0BAA0B;IACzC,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClC;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,sBAAsB,EAAE,0BAA0B,CAAA;IAClD,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7B,OAAO,CAAC,EAAE,UAAU,CAAA;IACpB,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CAC7D;AAiDD,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CA8CpG"}
@@ -0,0 +1,104 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import { authedFetch } from './http.js';
3
+ function argValue(args, flag) {
4
+ const index = args.lastIndexOf(flag);
5
+ return index === -1 || !args[index + 1] || args[index + 1].startsWith('--') ? null : args[index + 1];
6
+ }
7
+ function positionalArgs(args) {
8
+ const values = [];
9
+ for (let index = 0; index < args.length; index += 1) {
10
+ if (args[index].startsWith('--')) {
11
+ if (args[index + 1] && !args[index + 1].startsWith('--'))
12
+ index += 1;
13
+ }
14
+ else
15
+ values.push(args[index]);
16
+ }
17
+ return values;
18
+ }
19
+ function readSettings(value, defaultToEmpty = false) {
20
+ if (!value) {
21
+ if (defaultToEmpty)
22
+ return {};
23
+ throw new Error('--settings is required');
24
+ }
25
+ const source = value.startsWith('@') ? readFileSync(value.slice(1), 'utf8') : value;
26
+ const parsed = JSON.parse(source);
27
+ if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
28
+ throw new Error('--settings must contain a JSON object');
29
+ }
30
+ return parsed;
31
+ }
32
+ async function responseMessage(response) {
33
+ try {
34
+ const body = await response.clone().json();
35
+ return typeof body.error === 'string' ? body.error : response.statusText;
36
+ }
37
+ catch {
38
+ return response.statusText;
39
+ }
40
+ }
41
+ async function requestJson(fetcher, path, init) {
42
+ const response = await fetcher(path, init);
43
+ if (!response.ok)
44
+ throw new Error(`Model config request failed (${response.status}): ${await responseMessage(response)}`);
45
+ return response.json();
46
+ }
47
+ function renderModelConfig(config) {
48
+ return `${config.identity} ${config.displayName} v${config.currentSettingsVersion.versionNumber}`;
49
+ }
50
+ export async function modelConfigsCommand(args, io) {
51
+ const positional = positionalArgs(args);
52
+ const [command, action, identity] = positional;
53
+ const resolveProjectSlug = io.resolveProjectSlug;
54
+ if (!resolveProjectSlug)
55
+ throw new Error('Project resolver unavailable');
56
+ const projectArg = argValue(args, '--project');
57
+ const project = projectArg || await resolveProjectSlug(null);
58
+ const fetcher = io.fetcher ?? authedFetch;
59
+ const root = `/api/cli/model-configs?project=${encodeURIComponent(project)}`;
60
+ let result;
61
+ if (command === 'list' && !action) {
62
+ result = await requestJson(fetcher, root, { method: 'GET' });
63
+ if (io.json)
64
+ io.print(JSON.stringify(result));
65
+ else
66
+ for (const config of (result.modelConfigs || []))
67
+ io.print(renderModelConfig(config));
68
+ return 0;
69
+ }
70
+ if (command === 'show' && action && !identity) {
71
+ result = await requestJson(fetcher, `/api/cli/model-configs/${encodeURIComponent(action)}?project=${encodeURIComponent(project)}`, { method: 'GET' });
72
+ }
73
+ else if (command === 'create' && action && !identity) {
74
+ result = await requestJson(fetcher, root, {
75
+ method: 'POST', headers: { 'content-type': 'application/json' },
76
+ body: JSON.stringify({ identity: action, displayName: argValue(args, '--name') || action, settings: readSettings(argValue(args, '--settings'), true) }),
77
+ });
78
+ }
79
+ else if (command === 'settings' && action === 'set' && identity) {
80
+ result = await requestJson(fetcher, `/api/cli/model-configs/${encodeURIComponent(identity)}/settings?project=${encodeURIComponent(project)}`, {
81
+ method: 'POST', headers: { 'content-type': 'application/json' }, body: JSON.stringify({ settings: readSettings(argValue(args, '--settings')) }),
82
+ });
83
+ }
84
+ else if (command === 'copy' && action && !identity) {
85
+ const to = argValue(args, '--to');
86
+ if (!to)
87
+ throw new Error('--to is required');
88
+ result = await requestJson(fetcher, `/api/cli/model-configs/${encodeURIComponent(action)}/copy?project=${encodeURIComponent(project)}`, {
89
+ method: 'POST', headers: { 'content-type': 'application/json' }, body: JSON.stringify({ to }),
90
+ });
91
+ }
92
+ else {
93
+ io.print('Usage: orizu model-configs <create|list|show|settings set|copy> [--project <team/project>] [--json]');
94
+ return 1;
95
+ }
96
+ if (io.json) {
97
+ io.print(JSON.stringify(result));
98
+ }
99
+ else {
100
+ const config = result.modelConfig;
101
+ io.print(renderModelConfig(config));
102
+ }
103
+ return 0;
104
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Human-output helpers for `orizu optimizations export`.
3
+ *
4
+ * Lives outside index.ts per the CLI line ratchet (ALI-976).
5
+ */
6
+ export interface OptimizationExportCliContext {
7
+ getArg: (name: string) => string | null;
8
+ getPositionalArg: (index: number) => string | null;
9
+ authedFetch: (path: string, init?: RequestInit) => Promise<Response>;
10
+ hasJsonFlag: () => boolean;
11
+ printJson: (value: Record<string, unknown>) => void;
12
+ printLine: (message?: string) => void;
13
+ expandHomePath: (path: string) => string;
14
+ writeTextFileEnsuringDir: (path: string, content: string) => void;
15
+ sanitizeTerminalText: (value: unknown) => string;
16
+ }
17
+ export declare function printDiffCommentsSuppressionMarker(ctx: OptimizationExportCliContext, data: Record<string, unknown>): void;
18
+ export declare function exportOptimizationRunCommand(ctx: OptimizationExportCliContext): Promise<void>;
19
+ //# sourceMappingURL=optimization-export-cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optimization-export-cli.d.ts","sourceRoot":"","sources":["../src/optimization-export-cli.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AAEH,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAA;IACvC,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAA;IAClD,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IACpE,WAAW,EAAE,MAAM,OAAO,CAAA;IAC1B,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IACnD,SAAS,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IACxC,wBAAwB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACjE,oBAAoB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAA;CACjD;AAED,wBAAgB,kCAAkC,CAChD,GAAG,EAAE,4BAA4B,EACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,IAAI,CASN;AAED,wBAAsB,4BAA4B,CAChD,GAAG,EAAE,4BAA4B,GAChC,OAAO,CAAC,IAAI,CAAC,CAgCf"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * ALI-1073: `orizu optimizations list` — enumerate the project's optimization
3
+ * runs (id, status, refs, promoted-version link) so an agent/human can
4
+ * discover a prior run.
5
+ *
6
+ * ALI-1175: best scores in this list derive from agent-reported score runs —
7
+ * the human output labels them so the list never implies server-attested
8
+ * evidence.
9
+ *
10
+ * Lives outside index.ts per the CLI index line ratchet (ALI-976): owns its
11
+ * own argument parsing and printing via injected io.
12
+ */
13
+ export interface OptimizationsListIo {
14
+ json: boolean;
15
+ print: (line: string) => void;
16
+ resolveProjectSlug: (projectArg: string | null) => Promise<string>;
17
+ fetcher?: (path: string, init?: RequestInit) => Promise<Response>;
18
+ }
19
+ export declare function listOptimizationRunsCommand(args: string[], io: OptimizationsListIo): Promise<void>;
20
+ //# sourceMappingURL=optimizations-list-cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optimizations-list-cli.d.ts","sourceRoot":"","sources":["../src/optimizations-list-cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7B,kBAAkB,EAAE,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAClE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;CAClE;AAqDD,wBAAsB,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0DxG"}
@@ -0,0 +1,8 @@
1
+ export interface OptimizationsPromoteIo {
2
+ json: boolean;
3
+ print: (line: string) => void;
4
+ resolveProjectSlug: (projectArg: string | null) => Promise<string>;
5
+ fetcher: (path: string, init?: RequestInit) => Promise<Response>;
6
+ }
7
+ export declare function promoteOptimizationCommand(args: string[], io: OptimizationsPromoteIo): Promise<void>;
8
+ //# sourceMappingURL=optimizations-promote-cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optimizations-promote-cli.d.ts","sourceRoot":"","sources":["../src/optimizations-promote-cli.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7B,kBAAkB,EAAE,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAClE,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;CACjE;AAOD,wBAAsB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyB1G"}
@@ -0,0 +1,34 @@
1
+ import { extractErrorMessage } from './error-response.js';
2
+ import { sanitizeTerminalText } from './json-response.js';
3
+ function option(args, name) {
4
+ const index = args.indexOf(name);
5
+ return index === -1 || !args[index + 1] || args[index + 1].startsWith('--') ? null : args[index + 1];
6
+ }
7
+ export async function promoteOptimizationCommand(args, io) {
8
+ const runId = args.find(arg => !arg.startsWith('--') && arg !== option(args, '--candidate') && arg !== option(args, '--label') && arg !== option(args, '--project'));
9
+ const candidateId = option(args, '--candidate');
10
+ const label = option(args, '--label');
11
+ if (!runId || !candidateId || (label !== null && label !== 'production')) {
12
+ throw new Error('Usage: orizu optimizations promote <run-id> --candidate <id> [--label production] [--project <team/project>] [--json]');
13
+ }
14
+ const project = await io.resolveProjectSlug(option(args, '--project'));
15
+ const response = await io.fetcher(`/api/cli/optimization-runs/${encodeURIComponent(runId)}/promote?project=${encodeURIComponent(project)}`, {
16
+ method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ candidateId, label }),
17
+ });
18
+ if (!response.ok)
19
+ throw new Error(`Failed to promote optimization candidate: ${await extractErrorMessage(response)}`);
20
+ const data = await response.json();
21
+ if (io.json) {
22
+ io.print(JSON.stringify(data.profileVersionId
23
+ ? { profileVersionId: data.profileVersionId, components: data.components ?? [] }
24
+ : { promptVersionId: data.promptVersionId }));
25
+ return;
26
+ }
27
+ if (data.profileVersionId) {
28
+ io.print(`Promoted profile version ${sanitizeTerminalText(data.profileVersionId)}`);
29
+ for (const component of data.components ?? [])
30
+ io.print(`${sanitizeTerminalText(component.key)}: ${sanitizeTerminalText(component.status)}`);
31
+ return;
32
+ }
33
+ io.print(`Promoted prompt version ${sanitizeTerminalText(data.promptVersionId ?? '')}`);
34
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Return the first dash-prefixed option that is not in a command's explicit
3
+ * allowlist. An unambiguously value-like single-dash token immediately
4
+ * following a value-taking option is data: this keeps inputs such as
5
+ * `--duration -5` and `--task "- fix the test"` available without allowing a
6
+ * stray token or mistyped short option.
7
+ *
8
+ * `valueOptions` permits the unambiguous `--option=value` form. A separate
9
+ * token beginning with `--`, or an option-like single-dash word, is parsed as
10
+ * an option so a missing value cannot swallow a typo. Callers whose value is
11
+ * itself option-like can use the inline form; Markdown list markers and finite
12
+ * negative numbers remain safe as separate values.
13
+ */
14
+ export declare function findUnknownOption(args: readonly string[], allowedOptions: ReadonlySet<string>, valueOptions?: ReadonlySet<string>): string | null;
15
+ //# sourceMappingURL=option-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"option-validation.d.ts","sourceRoot":"","sources":["../src/option-validation.ts"],"names":[],"mappings":"AA0BA;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,EACnC,YAAY,GAAE,WAAW,CAAC,MAAM,CAAa,GAC5C,MAAM,GAAG,IAAI,CAmBf"}
@@ -0,0 +1,63 @@
1
+ export declare const PREVIEW_RUNTIME_REGISTRY_VERSION = 1;
2
+ export declare const PREVIEW_ALLOWED_IMPORTS: Record<string, string[]>;
3
+ export interface AppPreviewOptions {
4
+ filePath: string;
5
+ inputSchema: Record<string, unknown>;
6
+ outputSchema: Record<string, unknown>;
7
+ sampleRow: Record<string, unknown>;
8
+ screenshotPath?: string;
9
+ headed?: boolean;
10
+ keepOpen?: boolean;
11
+ componentName?: string;
12
+ cwd?: string;
13
+ forceSnapshot?: boolean;
14
+ playwright?: PreviewPlaywright;
15
+ chromiumExecutablePath?: string | null;
16
+ }
17
+ export interface AppPreviewResult {
18
+ url: string;
19
+ screenshotPath?: string;
20
+ warnings: string[];
21
+ }
22
+ interface Issue {
23
+ level: 'error' | 'warn';
24
+ message: string;
25
+ }
26
+ interface PreviewPlaywright {
27
+ chromium: {
28
+ launch: (options: Record<string, unknown>) => Promise<PreviewBrowser>;
29
+ };
30
+ }
31
+ interface PreviewBrowser {
32
+ newPage: (options: Record<string, unknown>) => Promise<PreviewPage>;
33
+ close: () => Promise<void>;
34
+ once?: (event: string, listener: () => void) => unknown;
35
+ on?: (event: string, listener: () => void) => unknown;
36
+ off?: (event: string, listener: () => void) => unknown;
37
+ }
38
+ interface PreviewPage {
39
+ goto: (url: string, options: Record<string, unknown>) => Promise<unknown>;
40
+ waitForSelector: (selector: string, options: Record<string, unknown>) => Promise<unknown>;
41
+ screenshot: (options: {
42
+ path: string;
43
+ fullPage: boolean;
44
+ }) => Promise<unknown>;
45
+ waitForTimeout: (timeout: number) => Promise<unknown>;
46
+ once?: (event: string, listener: () => void) => unknown;
47
+ on?: (event: string, listener: () => void) => unknown;
48
+ off?: (event: string, listener: () => void) => unknown;
49
+ }
50
+ export declare function validatePreviewInputs(options: AppPreviewOptions): Issue[];
51
+ export declare function runLocalAppPreview(options: AppPreviewOptions): Promise<AppPreviewResult>;
52
+ /**
53
+ * ALI-1071: react/react-dom are no longer dependencies of the PUBLISHED CLI
54
+ * (app-grade packages were moved to devDependencies), so a bare global install
55
+ * may not carry them. Detect that BEFORE esbuild surfaces a raw
56
+ * `Could not resolve "react"` build error, so the preview command can fail with
57
+ * an actionable message instead. Exported for tests.
58
+ */
59
+ export declare function findMissingPreviewRuntimeDeps(nodeModuleDirs: string[]): string[];
60
+ export declare function buildPreviewCss(repoRoot: string | null, appPath: string): Promise<string>;
61
+ export declare function getPreviewSnapshotModulePaths(): string[];
62
+ export {};
63
+ //# sourceMappingURL=preview-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview-runtime.d.ts","sourceRoot":"","sources":["../src/preview-runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * ADR-007 P4 (ALI-1074): the session-scoped, commit-first prompt push.
3
+ *
4
+ * `orizu prompts|judges push --session <id>` creates the version through
5
+ * POST /api/cli/prompts/drafts: the server commits the artifact files to the
6
+ * session's `orizu/session-*` branch (one Git Data API commit) and then
7
+ * writes a DRAFT row pinning repo_path/content_sha/commit_sha. The draft
8
+ * seals — and gets its version number — when the session branch merges via
9
+ * `orizu session finish` + promotion-manifest apply.
10
+ *
11
+ * The primary text is ALWAYS committed as `prompt.md`: the server read side
12
+ * (lib/artifact-git-read.ts PROMPT_BODY_FILENAMES) prefers that name, so the
13
+ * git filename stays canonical regardless of what the local bundle calls its
14
+ * body file.
15
+ *
16
+ * Lives outside index.ts per the CLI line ratchet (ALI-976).
17
+ */
18
+ export declare const PROMPT_PRIMARY_GIT_FILENAME = "prompt.md";
19
+ export interface PromptDraftSidecar {
20
+ path: string;
21
+ content?: unknown;
22
+ [key: string]: unknown;
23
+ }
24
+ export interface PromptDraftFile {
25
+ path: string;
26
+ content: string;
27
+ }
28
+ /**
29
+ * Build the git file set for a prompt-version draft: the primary text at the
30
+ * canonical prompt.md plus every sidecar at its own relative path. A sidecar
31
+ * that collides with prompt.md is a hard error (it would silently overwrite
32
+ * the body in the committed tree).
33
+ */
34
+ export declare function buildPromptDraftFiles(primaryBody: string, sidecars: PromptDraftSidecar[]): PromptDraftFile[];
35
+ export interface PushPromptDraftInput {
36
+ kind: 'prompt' | 'judge';
37
+ project: string;
38
+ sessionId: string;
39
+ /** The parsed orizu.prompt.json manifest of the local bundle. */
40
+ manifest: Record<string, unknown>;
41
+ /** What to call the artifact in the success message (name or directory). */
42
+ displayName: string;
43
+ bodyKind: string;
44
+ primaryBody: string;
45
+ sidecars: PromptDraftSidecar[];
46
+ runnerVersionId: string;
47
+ parentVersionId?: string;
48
+ report?: {
49
+ markdown: string;
50
+ sourceName: string | null;
51
+ } | null;
52
+ /** Test seam; defaults to the authenticated CLI fetcher. */
53
+ fetcher?: (path: string, init?: RequestInit) => Promise<Response>;
54
+ }
55
+ export interface PushPromptDraftResult {
56
+ data: Record<string, unknown>;
57
+ message: string;
58
+ }
59
+ export declare function pushPromptDraft(input: PushPromptDraftInput): Promise<PushPromptDraftResult>;
60
+ //# sourceMappingURL=prompt-draft-push.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-draft-push.d.ts","sourceRoot":"","sources":["../src/prompt-draft-push.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;GAgBG;AAEH,eAAO,MAAM,2BAA2B,cAAc,CAAA;AAEtD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,kBAAkB,EAAE,GAC7B,eAAe,EAAE,CAYnB;AAMD,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAA;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,kBAAkB,EAAE,CAAA;IAC9B,eAAe,EAAE,MAAM,CAAA;IACvB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,MAAM,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAA;IAC/D,4DAA4D;IAC5D,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;CAClE;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,wBAAsB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA8DjG"}
@@ -0,0 +1,11 @@
1
+ interface PromptLabelCliContext {
2
+ getArg: (name: string) => string | null;
3
+ getPositionalArg: (index: number) => string | null;
4
+ json: boolean;
5
+ printJson: (value: Record<string, unknown>) => void;
6
+ printLine: (value: string) => void;
7
+ resolveProjectSlug: (project: string | null) => Promise<string>;
8
+ }
9
+ export declare function setPromptLabel(context: PromptLabelCliContext): Promise<void>;
10
+ export {};
11
+ //# sourceMappingURL=prompt-label-cli.d.ts.map