agentinputlab 0.1.0a1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (469) hide show
  1. agentinputlab/__init__.py +28 -0
  2. agentinputlab/algorithms/__init__.py +6 -0
  3. agentinputlab/algorithms/acquire/__init__.py +145 -0
  4. agentinputlab/algorithms/acquire/adaptive_rag/__init__.py +43 -0
  5. agentinputlab/algorithms/acquire/adaptive_rag/replay.py +367 -0
  6. agentinputlab/algorithms/acquire/adaptive_rag/runtime.py +1202 -0
  7. agentinputlab/algorithms/acquire/adaptive_rag_common_support.py +542 -0
  8. agentinputlab/algorithms/acquire/hyde.py +296 -0
  9. agentinputlab/algorithms/acquire/hyde_controlled.py +200 -0
  10. agentinputlab/algorithms/acquire/hyde_external.py +148 -0
  11. agentinputlab/algorithms/acquire/ircot.py +28 -0
  12. agentinputlab/algorithms/acquire/ircot_common_support.py +478 -0
  13. agentinputlab/algorithms/acquire/ircot_native.py +355 -0
  14. agentinputlab/algorithms/acquire/ircot_replay.py +327 -0
  15. agentinputlab/algorithms/acquire/qrag/__init__.py +79 -0
  16. agentinputlab/algorithms/acquire/qrag/bridge.py +828 -0
  17. agentinputlab/algorithms/acquire/qrag/common_support.py +891 -0
  18. agentinputlab/algorithms/acquire/qrag/native_axis.py +71 -0
  19. agentinputlab/algorithms/acquire/qrag/reader_adapter.py +139 -0
  20. agentinputlab/algorithms/acquire/r2ag/__init__.py +57 -0
  21. agentinputlab/algorithms/acquire/r2ag/bridge.py +1312 -0
  22. agentinputlab/algorithms/acquire/r2ag/common_support.py +1029 -0
  23. agentinputlab/algorithms/acquire/r2ag/socket_runtime.py +255 -0
  24. agentinputlab/algorithms/clarify/__init__.py +61 -0
  25. agentinputlab/algorithms/clarify/_structured.py +64 -0
  26. agentinputlab/algorithms/clarify/active_task_disambiguation.py +371 -0
  27. agentinputlab/algorithms/clarify/ask_or_assume/__init__.py +17 -0
  28. agentinputlab/algorithms/clarify/ask_or_assume/monitor.py +410 -0
  29. agentinputlab/algorithms/clarify/future_turns.py +379 -0
  30. agentinputlab/algorithms/clarify/udcs.py +255 -0
  31. agentinputlab/algorithms/clarify/udcs_deterministic.py +196 -0
  32. agentinputlab/algorithms/curate/__init__.py +65 -0
  33. agentinputlab/algorithms/curate/acon/__init__.py +27 -0
  34. agentinputlab/algorithms/curate/acon/common.py +284 -0
  35. agentinputlab/algorithms/curate/acon/common_support.py +136 -0
  36. agentinputlab/algorithms/curate/acon/history_bridge.py +309 -0
  37. agentinputlab/algorithms/curate/acon/observation_bridge.py +290 -0
  38. agentinputlab/algorithms/curate/llmlingua/__init__.py +30 -0
  39. agentinputlab/algorithms/curate/llmlingua/adapters.py +537 -0
  40. agentinputlab/algorithms/curate/llmlingua/budget.py +48 -0
  41. agentinputlab/algorithms/curate/llmlingua/controlled.py +175 -0
  42. agentinputlab/algorithms/curate/llmlingua/multilingual.py +105 -0
  43. agentinputlab/algorithms/curate/llmlingua/span_map.py +167 -0
  44. agentinputlab/algorithms/curate/recomp/__init__.py +47 -0
  45. agentinputlab/algorithms/curate/recomp/external.py +1129 -0
  46. agentinputlab/algorithms/curate/recomp/selective.py +304 -0
  47. agentinputlab/algorithms/decompose/__init__.py +107 -0
  48. agentinputlab/algorithms/decompose/decomp/__init__.py +53 -0
  49. agentinputlab/algorithms/decompose/decomp/common_support.py +478 -0
  50. agentinputlab/algorithms/decompose/decomp/planner_component.py +199 -0
  51. agentinputlab/algorithms/decompose/decomp/worker_bridge.py +416 -0
  52. agentinputlab/algorithms/decompose/llm_compiler/__init__.py +35 -0
  53. agentinputlab/algorithms/decompose/llm_compiler/bridge.py +520 -0
  54. agentinputlab/algorithms/decompose/llm_compiler/common_support.py +504 -0
  55. agentinputlab/algorithms/decompose/plan_and_budget/__init__.py +43 -0
  56. agentinputlab/algorithms/decompose/plan_and_budget/cached_soft_budget.py +362 -0
  57. agentinputlab/algorithms/decompose/plan_and_budget/decomposer_component.py +107 -0
  58. agentinputlab/algorithms/decompose/plan_and_budget/full.py +205 -0
  59. agentinputlab/algorithms/decompose/plan_and_budget/hard_cap.py +246 -0
  60. agentinputlab/algorithms/decompose/plan_and_budget/regenerated_soft_budget.py +448 -0
  61. agentinputlab/algorithms/decompose/plan_and_solve/__init__.py +33 -0
  62. agentinputlab/algorithms/decompose/plan_and_solve/plan_component.py +192 -0
  63. agentinputlab/algorithms/decompose/plan_and_solve/ps_prompt.py +127 -0
  64. agentinputlab/algorithms/decompose/self_ask/__init__.py +27 -0
  65. agentinputlab/algorithms/decompose/self_ask/loop.py +362 -0
  66. agentinputlab/algorithms/decompose/self_ask/planner_component.py +117 -0
  67. agentinputlab/algorithms/reformulate/__init__.py +85 -0
  68. agentinputlab/algorithms/reformulate/infocqr/__init__.py +40 -0
  69. agentinputlab/algorithms/reformulate/infocqr/cache_replay.py +362 -0
  70. agentinputlab/algorithms/reformulate/infocqr/external.py +675 -0
  71. agentinputlab/algorithms/reformulate/infocqr/student.py +189 -0
  72. agentinputlab/algorithms/reformulate/query2doc/__init__.py +42 -0
  73. agentinputlab/algorithms/reformulate/query2doc/controlled_live.py +190 -0
  74. agentinputlab/algorithms/reformulate/query2doc/models.py +95 -0
  75. agentinputlab/algorithms/reformulate/query2doc/official_cached.py +335 -0
  76. agentinputlab/algorithms/reformulate/query2doc/querygym_bridge.py +223 -0
  77. agentinputlab/algorithms/reformulate/query2doc/querygym_runtime.py +326 -0
  78. agentinputlab/algorithms/reformulate/reformer/__init__.py +23 -0
  79. agentinputlab/algorithms/reformulate/reformer/external.py +417 -0
  80. agentinputlab/algorithms/reformulate/rrr.py +696 -0
  81. agentinputlab/annotation/__init__.py +5 -0
  82. agentinputlab/annotation/independent.py +428 -0
  83. agentinputlab/annotation/server.py +233 -0
  84. agentinputlab/annotation/static/app.js +121 -0
  85. agentinputlab/annotation/static/index.html +60 -0
  86. agentinputlab/annotation/static/review.css +2 -0
  87. agentinputlab/annotation/static/review.html +10 -0
  88. agentinputlab/annotation/static/review.js +11 -0
  89. agentinputlab/annotation/static/styles.css +55 -0
  90. agentinputlab/annotation/store.py +444 -0
  91. agentinputlab/api.py +368 -0
  92. agentinputlab/artifacts/__init__.py +15 -0
  93. agentinputlab/artifacts/json_file.py +104 -0
  94. agentinputlab/artifacts/manifest.py +98 -0
  95. agentinputlab/artifacts/store.py +157 -0
  96. agentinputlab/backends/__init__.py +98 -0
  97. agentinputlab/backends/embedding/__init__.py +25 -0
  98. agentinputlab/backends/embedding/base.py +145 -0
  99. agentinputlab/backends/embedding/callable.py +75 -0
  100. agentinputlab/backends/embedding/replay.py +129 -0
  101. agentinputlab/backends/llm/__init__.py +31 -0
  102. agentinputlab/backends/llm/base.py +149 -0
  103. agentinputlab/backends/llm/callable.py +108 -0
  104. agentinputlab/backends/llm/decomp_completion.py +88 -0
  105. agentinputlab/backends/llm/final_content_stop.py +72 -0
  106. agentinputlab/backends/llm/gpt_oss_final_channel.py +84 -0
  107. agentinputlab/backends/llm/openai_compatible.py +332 -0
  108. agentinputlab/backends/llm/transformers.py +171 -0
  109. agentinputlab/backends/retrieval/__init__.py +35 -0
  110. agentinputlab/backends/retrieval/base.py +50 -0
  111. agentinputlab/backends/retrieval/dense.py +777 -0
  112. agentinputlab/backends/retrieval/memory.py +119 -0
  113. agentinputlab/backends/retrieval/sqlite_fts.py +155 -0
  114. agentinputlab/backends/user/__init__.py +15 -0
  115. agentinputlab/backends/user/base.py +66 -0
  116. agentinputlab/backends/user/callable.py +54 -0
  117. agentinputlab/backends/user/replay.py +89 -0
  118. agentinputlab/backends/vector.py +38 -0
  119. agentinputlab/benchmarks/__init__.py +246 -0
  120. agentinputlab/benchmarks/acquisition.py +106 -0
  121. agentinputlab/benchmarks/ale.py +540 -0
  122. agentinputlab/benchmarks/appworld_ul.py +669 -0
  123. agentinputlab/benchmarks/assets.py +226 -0
  124. agentinputlab/benchmarks/base.py +68 -0
  125. agentinputlab/benchmarks/beir_archive.py +235 -0
  126. agentinputlab/benchmarks/beir_sample.py +269 -0
  127. agentinputlab/benchmarks/bfcl_native.py +245 -0
  128. agentinputlab/benchmarks/bfcl_v3.py +607 -0
  129. agentinputlab/benchmarks/cache.py +218 -0
  130. agentinputlab/benchmarks/clariq.py +203 -0
  131. agentinputlab/benchmarks/data/registry.json +321 -0
  132. agentinputlab/benchmarks/data/smoke_assets.json +511 -0
  133. agentinputlab/benchmarks/data/statebench_v0_8_1_task_ids.json +475 -0
  134. agentinputlab/benchmarks/data/toolsandbox_165848b_scenario_names.json +1 -0
  135. agentinputlab/benchmarks/execution.py +1111 -0
  136. agentinputlab/benchmarks/interactive.py +257 -0
  137. agentinputlab/benchmarks/ir_query.py +204 -0
  138. agentinputlab/benchmarks/longbench.py +203 -0
  139. agentinputlab/benchmarks/paired_replay.py +479 -0
  140. agentinputlab/benchmarks/preprocess.py +2313 -0
  141. agentinputlab/benchmarks/production.py +236 -0
  142. agentinputlab/benchmarks/qa.py +963 -0
  143. agentinputlab/benchmarks/registry.py +110 -0
  144. agentinputlab/benchmarks/retrieval.py +459 -0
  145. agentinputlab/benchmarks/runtime.py +509 -0
  146. agentinputlab/benchmarks/statebench.py +938 -0
  147. agentinputlab/benchmarks/tau3.py +725 -0
  148. agentinputlab/benchmarks/toolsandbox.py +626 -0
  149. agentinputlab/benchmarks/trec_dl_sample.py +263 -0
  150. agentinputlab/campaign.py +654 -0
  151. agentinputlab/campaign_runner.py +953 -0
  152. agentinputlab/cli/__init__.py +6 -0
  153. agentinputlab/cli/main.py +933 -0
  154. agentinputlab/connectors/__init__.py +46 -0
  155. agentinputlab/connectors/knowledge/__init__.py +4 -0
  156. agentinputlab/connectors/tools/__init__.py +30 -0
  157. agentinputlab/connectors/tools/base.py +57 -0
  158. agentinputlab/connectors/tools/mcp.py +222 -0
  159. agentinputlab/connectors/tools/memory.py +41 -0
  160. agentinputlab/connectors/tools/openapi.py +695 -0
  161. agentinputlab/connectors/tools/schema.py +102 -0
  162. agentinputlab/contracts/__init__.py +91 -0
  163. agentinputlab/contracts/availability.py +24 -0
  164. agentinputlab/contracts/dependency.py +58 -0
  165. agentinputlab/contracts/enums.py +82 -0
  166. agentinputlab/contracts/errors.py +63 -0
  167. agentinputlab/contracts/evidence.py +43 -0
  168. agentinputlab/contracts/intent.py +110 -0
  169. agentinputlab/contracts/lifecycle.py +164 -0
  170. agentinputlab/contracts/patch.py +167 -0
  171. agentinputlab/contracts/serialization.py +93 -0
  172. agentinputlab/contracts/state.py +127 -0
  173. agentinputlab/contracts/trace.py +59 -0
  174. agentinputlab/contracts/worker.py +42 -0
  175. agentinputlab/core/__init__.py +7 -0
  176. agentinputlab/data/__init__.py +32 -0
  177. agentinputlab/data/checksums.py +9 -0
  178. agentinputlab/data/downloader.py +235 -0
  179. agentinputlab/data/http.py +171 -0
  180. agentinputlab/data/index.py +21 -0
  181. agentinputlab/data/overlap.py +28 -0
  182. agentinputlab/data/preprocess.py +32 -0
  183. agentinputlab/data/storage.py +57 -0
  184. agentinputlab/data/trec_sample.py +427 -0
  185. agentinputlab/evaluation/__init__.py +5 -0
  186. agentinputlab/evaluation/outcomes.py +32 -0
  187. agentinputlab/experiments/__init__.py +278 -0
  188. agentinputlab/experiments/analysis.py +981 -0
  189. agentinputlab/experiments/artifacts.py +687 -0
  190. agentinputlab/experiments/automatic_measurement.py +678 -0
  191. agentinputlab/experiments/auxiliary_matrix.py +203 -0
  192. agentinputlab/experiments/bindings.py +430 -0
  193. agentinputlab/experiments/blueprints.py +147 -0
  194. agentinputlab/experiments/builders/__init__.py +45 -0
  195. agentinputlab/experiments/builders/executable_external_payload.py +423 -0
  196. agentinputlab/experiments/builders/external_process_arena.py +1018 -0
  197. agentinputlab/experiments/builders/registry_intervention.py +463 -0
  198. agentinputlab/experiments/cli.py +158 -0
  199. agentinputlab/experiments/controls.py +340 -0
  200. agentinputlab/experiments/driver_guard.py +205 -0
  201. agentinputlab/experiments/drivers/__init__.py +89 -0
  202. agentinputlab/experiments/drivers/external_arena.py +2908 -0
  203. agentinputlab/experiments/drivers/method_process.py +662 -0
  204. agentinputlab/experiments/drivers/parity_process.py +1484 -0
  205. agentinputlab/experiments/drivers/static_production.py +1574 -0
  206. agentinputlab/experiments/executor.py +448 -0
  207. agentinputlab/experiments/loader.py +605 -0
  208. agentinputlab/experiments/measurement.py +675 -0
  209. agentinputlab/experiments/paper_analysis.py +1818 -0
  210. agentinputlab/experiments/parity_identity.py +605 -0
  211. agentinputlab/experiments/plan.py +277 -0
  212. agentinputlab/experiments/production_builders.py +3739 -0
  213. agentinputlab/experiments/readiness.py +432 -0
  214. agentinputlab/experiments/schema.py +514 -0
  215. agentinputlab/experiments/secrets.py +177 -0
  216. agentinputlab/experiments/stateful_analysis.py +1738 -0
  217. agentinputlab/experiments/transfer_analysis.py +1316 -0
  218. agentinputlab/experiments/unseen_analysis.py +1025 -0
  219. agentinputlab/integrations/__init__.py +1 -0
  220. agentinputlab/integrations/action_space/__init__.py +1 -0
  221. agentinputlab/integrations/external_workers/__init__.py +76 -0
  222. agentinputlab/integrations/external_workers/ace.py +431 -0
  223. agentinputlab/integrations/external_workers/base.py +181 -0
  224. agentinputlab/integrations/external_workers/decomp_live.py +249 -0
  225. agentinputlab/integrations/external_workers/decomp_planner.py +30 -0
  226. agentinputlab/integrations/external_workers/infocqr_student.py +280 -0
  227. agentinputlab/integrations/external_workers/ircot.py +576 -0
  228. agentinputlab/integrations/external_workers/llmcompiler_live.py +360 -0
  229. agentinputlab/integrations/external_workers/longllmlingua.py +162 -0
  230. agentinputlab/integrations/external_workers/method.py +314 -0
  231. agentinputlab/integrations/external_workers/process.py +678 -0
  232. agentinputlab/integrations/external_workers/supervisor.py +1071 -0
  233. agentinputlab/integrations/full_architecture/__init__.py +1 -0
  234. agentinputlab/integrations/full_architecture/hyde.py +212 -0
  235. agentinputlab/integrations/full_architecture/plan_and_budget.py +188 -0
  236. agentinputlab/integrations/live_history.py +222 -0
  237. agentinputlab/integrations/prompt_optimization/__init__.py +1 -0
  238. agentinputlab/integrations/training/__init__.py +1 -0
  239. agentinputlab/metrics/__init__.py +50 -0
  240. agentinputlab/metrics/catalog.py +313 -0
  241. agentinputlab/metrics/harm.py +95 -0
  242. agentinputlab/metrics/paired.py +40 -0
  243. agentinputlab/metrics/qa.py +76 -0
  244. agentinputlab/metrics/text.py +33 -0
  245. agentinputlab/metrics/third_party.py +161 -0
  246. agentinputlab/models/__init__.py +4 -0
  247. agentinputlab/observability/__init__.py +56 -0
  248. agentinputlab/observability/budget.py +316 -0
  249. agentinputlab/observability/instrumentation.py +754 -0
  250. agentinputlab/observability/models.py +403 -0
  251. agentinputlab/observability/monitor.py +380 -0
  252. agentinputlab/optimizers/__init__.py +1 -0
  253. agentinputlab/optimizers/clarify/__init__.py +12 -0
  254. agentinputlab/optimizers/context/__init__.py +22 -0
  255. agentinputlab/optimizers/decompose/__init__.py +64 -0
  256. agentinputlab/optimizers/evidence/__init__.py +22 -0
  257. agentinputlab/optimizers/rewrite/__init__.py +30 -0
  258. agentinputlab/parity/__init__.py +5 -0
  259. agentinputlab/parity/base.py +206 -0
  260. agentinputlab/production_campaign.py +763 -0
  261. agentinputlab/py.typed +1 -0
  262. agentinputlab/recipes/__init__.py +333 -0
  263. agentinputlab/recipes/ace.py +418 -0
  264. agentinputlab/recipes/ace_bfcl.py +273 -0
  265. agentinputlab/recipes/ace_common_support.py +169 -0
  266. agentinputlab/recipes/ace_native_plan.py +322 -0
  267. agentinputlab/recipes/ace_online.py +711 -0
  268. agentinputlab/recipes/ace_retrieval.py +330 -0
  269. agentinputlab/recipes/ace_statebench.py +382 -0
  270. agentinputlab/recipes/ace_tau.py +463 -0
  271. agentinputlab/recipes/ace_toolsandbox.py +432 -0
  272. agentinputlab/recipes/acon_guideline.py +22 -0
  273. agentinputlab/recipes/adaptive_rag.py +822 -0
  274. agentinputlab/recipes/llmlingua2_inference.py +146 -0
  275. agentinputlab/recipes/llmlingua2_training.py +796 -0
  276. agentinputlab/recipes/mce.py +1486 -0
  277. agentinputlab/recipes/mce_final.py +335 -0
  278. agentinputlab/recipes/mce_text_fit.py +499 -0
  279. agentinputlab/recipes/mce_text_only.py +298 -0
  280. agentinputlab/recipes/qrag.py +729 -0
  281. agentinputlab/recipes/qrag_inference.py +364 -0
  282. agentinputlab/recipes/r2ag_features.py +236 -0
  283. agentinputlab/recipes/r2ag_inference.py +503 -0
  284. agentinputlab/recipes/r2ag_training.py +948 -0
  285. agentinputlab/recipes/recomp_abstractive.py +592 -0
  286. agentinputlab/recipes/recomp_extractive.py +525 -0
  287. agentinputlab/recipes/reformer.py +17 -0
  288. agentinputlab/recipes/rqrag.py +1516 -0
  289. agentinputlab/recipes/rqrag_common_support.py +193 -0
  290. agentinputlab/recipes/rqrag_completion.py +147 -0
  291. agentinputlab/recipes/skillopt.py +462 -0
  292. agentinputlab/recipes/skillopt_common_support.py +154 -0
  293. agentinputlab/recipes/skillopt_environment.py +165 -0
  294. agentinputlab/recipes/skillopt_environment_cli.py +5 -0
  295. agentinputlab/recipes/skillopt_retrieval.py +188 -0
  296. agentinputlab/recipes/smartsearch.py +897 -0
  297. agentinputlab/recipes/smartsearch_curriculum.py +283 -0
  298. agentinputlab/recipes/smartsearch_grpo_contracts.py +58 -0
  299. agentinputlab/recipes/smartsearch_grpo_data.py +314 -0
  300. agentinputlab/recipes/smartsearch_grpo_meter.py +324 -0
  301. agentinputlab/recipes/smartsearch_grpo_prefix.py +144 -0
  302. agentinputlab/recipes/smartsearch_grpo_rollout.py +119 -0
  303. agentinputlab/recipes/smartsearch_grpo_tools.py +364 -0
  304. agentinputlab/recipes/smartsearch_grpo_training.py +305 -0
  305. agentinputlab/recipes/smartsearch_grpo_transport.py +248 -0
  306. agentinputlab/recipes/smartsearch_grpo_worker.py +364 -0
  307. agentinputlab/recipes/smartsearch_inference.py +524 -0
  308. agentinputlab/recipes/smartsearch_native_data.py +172 -0
  309. agentinputlab/recipes/smartsearch_policy.py +616 -0
  310. agentinputlab/recipes/smartsearch_policy_worker.py +9 -0
  311. agentinputlab/recipes/smartsearch_sampling.py +232 -0
  312. agentinputlab/recipes/smartsearch_teacher.py +203 -0
  313. agentinputlab/recipes/smartsearch_training.py +265 -0
  314. agentinputlab/registry/__init__.py +46 -0
  315. agentinputlab/registry/beta.py +727 -0
  316. agentinputlab/registry/data/algorithms.json +1959 -0
  317. agentinputlab/registry/data/auxiliary_method_profiles.json +34 -0
  318. agentinputlab/registry/loader.py +100 -0
  319. agentinputlab/registry/result_manifest.py +184 -0
  320. agentinputlab/registry/runtime.py +195 -0
  321. agentinputlab/registry/schema.py +449 -0
  322. agentinputlab/runner/__init__.py +30 -0
  323. agentinputlab/runner/balance.py +248 -0
  324. agentinputlab/runner/cache.py +135 -0
  325. agentinputlab/runner/composite.py +130 -0
  326. agentinputlab/runner/engine.py +285 -0
  327. agentinputlab/runner/runtime_guard.py +268 -0
  328. agentinputlab/runner/worker.py +80 -0
  329. agentinputlab/runtime_bootstrap.py +288 -0
  330. agentinputlab/selectors/__init__.py +196 -0
  331. agentinputlab/selectors/advanced.py +1514 -0
  332. agentinputlab/selectors/artifacts.py +1087 -0
  333. agentinputlab/selectors/base.py +112 -0
  334. agentinputlab/selectors/campaigns.py +1893 -0
  335. agentinputlab/selectors/catalog.py +86 -0
  336. agentinputlab/selectors/discovery.py +1860 -0
  337. agentinputlab/selectors/evaluation.py +1348 -0
  338. agentinputlab/selectors/features.py +383 -0
  339. agentinputlab/selectors/learned.py +502 -0
  340. agentinputlab/selectors/no_op.py +28 -0
  341. agentinputlab/selectors/outcome_table.py +475 -0
  342. agentinputlab/selectors/producer.py +853 -0
  343. agentinputlab/selectors/rules.py +109 -0
  344. agentinputlab/selectors/runtime.py +420 -0
  345. agentinputlab/studies/__init__.py +16 -0
  346. agentinputlab/studies/design.py +165 -0
  347. agentinputlab/studies/paired.py +322 -0
  348. agentinputlab/studio/__init__.py +6 -0
  349. agentinputlab/studio/campaigns.py +819 -0
  350. agentinputlab/studio/engine.py +1408 -0
  351. agentinputlab/studio/model_backends.py +425 -0
  352. agentinputlab/studio/prepared.py +410 -0
  353. agentinputlab/studio/server.py +613 -0
  354. agentinputlab/studio/static/app.js +397 -0
  355. agentinputlab/studio/static/campaigns.html +175 -0
  356. agentinputlab/studio/static/campaigns.js +426 -0
  357. agentinputlab/studio/static/index.html +192 -0
  358. agentinputlab/studio/static/result.html +103 -0
  359. agentinputlab/studio/static/result.js +273 -0
  360. agentinputlab/studio/static/styles.css +467 -0
  361. agentinputlab-0.1.0a1.data/data/share/agentinputlab/CITATION.cff +22 -0
  362. agentinputlab-0.1.0a1.dist-info/METADATA +392 -0
  363. agentinputlab-0.1.0a1.dist-info/RECORD +469 -0
  364. agentinputlab-0.1.0a1.dist-info/WHEEL +5 -0
  365. agentinputlab-0.1.0a1.dist-info/entry_points.txt +6 -0
  366. agentinputlab-0.1.0a1.dist-info/licenses/LICENSE +21 -0
  367. agentinputlab-0.1.0a1.dist-info/licenses/NOTICE +31 -0
  368. agentinputlab-0.1.0a1.dist-info/licenses/THIRD_PARTY_NOTICES.md +94 -0
  369. agentinputlab-0.1.0a1.dist-info/top_level.txt +2 -0
  370. workers/README.md +94 -0
  371. workers/ace/README.md +261 -0
  372. workers/ace/__init__.py +1 -0
  373. workers/ace/compatibility_manifest.json +39 -0
  374. workers/ace/driver.py +1682 -0
  375. workers/acon/README.md +215 -0
  376. workers/acon/__init__.py +5 -0
  377. workers/acon/compatibility_manifest.json +93 -0
  378. workers/acon/driver.py +1859 -0
  379. workers/acon/fitted.py +395 -0
  380. workers/acon/guideline.py +470 -0
  381. workers/acon/guideline_source_manifest.json +20 -0
  382. workers/adaptive_rag/README.md +96 -0
  383. workers/adaptive_rag/__init__.py +15 -0
  384. workers/adaptive_rag/compatibility_manifest.json +61 -0
  385. workers/adaptive_rag/driver.py +1470 -0
  386. workers/adaptive_rag/fixture_runtime.py +163 -0
  387. workers/adaptive_rag/runtime.py +252 -0
  388. workers/ask_or_assume/README.md +124 -0
  389. workers/ask_or_assume/__init__.py +1 -0
  390. workers/ask_or_assume/compatibility_manifest.json +36 -0
  391. workers/ask_or_assume/driver.py +1227 -0
  392. workers/decomp/README.md +133 -0
  393. workers/decomp/UPSTREAM_LICENSE.Apache-2.0.txt +201 -0
  394. workers/decomp/__init__.py +5 -0
  395. workers/decomp/compatibility_manifest.json +205 -0
  396. workers/decomp/driver.py +1015 -0
  397. workers/decomp/live.py +137 -0
  398. workers/decomp/runtime.py +231 -0
  399. workers/infocqr/README.md +106 -0
  400. workers/infocqr/__init__.py +1 -0
  401. workers/infocqr/compatibility_manifest.json +84 -0
  402. workers/infocqr/driver.py +1766 -0
  403. workers/ircot/README.md +167 -0
  404. workers/ircot/__init__.py +7 -0
  405. workers/ircot/compatibility_manifest.json +121 -0
  406. workers/ircot/controlled.py +457 -0
  407. workers/ircot/driver.py +1373 -0
  408. workers/ircot/fixture_bindings.json +39 -0
  409. workers/ircot/fixture_config.json +48 -0
  410. workers/ircot/fixture_prompt.txt +2 -0
  411. workers/ircot/native_qa.py +398 -0
  412. workers/ircot/qa_compatibility_manifest.json +57 -0
  413. workers/ircot/runtime.py +97 -0
  414. workers/llmcompiler/README.md +160 -0
  415. workers/llmcompiler/__init__.py +1 -0
  416. workers/llmcompiler/compatibility_manifest.json +45 -0
  417. workers/llmcompiler/driver.py +1514 -0
  418. workers/llmcompiler/export_prompts.py +74 -0
  419. workers/llmcompiler/live.py +174 -0
  420. workers/llmcompiler/patch_manifest.json +147 -0
  421. workers/mce/README.md +198 -0
  422. workers/mce/__init__.py +29 -0
  423. workers/mce/compatibility_manifest.json +115 -0
  424. workers/mce/driver.py +2585 -0
  425. workers/mce/final_eval.py +173 -0
  426. workers/official_arenas/README.md +25 -0
  427. workers/official_arenas/__init__.py +1 -0
  428. workers/official_arenas/capture_records.py +110 -0
  429. workers/official_arenas/driver.py +619 -0
  430. workers/official_arenas/protocol.py +334 -0
  431. workers/official_arenas/providers/__init__.py +1 -0
  432. workers/official_arenas/providers/_live_history.py +228 -0
  433. workers/official_arenas/providers/_message_compat.py +77 -0
  434. workers/official_arenas/providers/appworld_ul.py +196 -0
  435. workers/official_arenas/providers/fixture.py +112 -0
  436. workers/official_arenas/providers/statebench.py +960 -0
  437. workers/official_arenas/providers/tau3.py +1672 -0
  438. workers/official_arenas/providers/tau_retail.py +586 -0
  439. workers/official_arenas/providers/toolsandbox.py +1321 -0
  440. workers/official_arenas/providers/tooltalk.py +699 -0
  441. workers/official_arenas/retail_capture.py +188 -0
  442. workers/official_arenas/retail_driver.py +275 -0
  443. workers/qrag/README.md +172 -0
  444. workers/qrag/__init__.py +1 -0
  445. workers/qrag/compatibility_manifest.json +64 -0
  446. workers/qrag/driver.py +673 -0
  447. workers/r2ag/README.md +154 -0
  448. workers/r2ag/__init__.py +5 -0
  449. workers/r2ag/compatibility_manifest.json +55 -0
  450. workers/r2ag/driver.py +1287 -0
  451. workers/r2ag/feature_schema.json +8 -0
  452. workers/r2ag/runtime.py +589 -0
  453. workers/recomp/README.md +120 -0
  454. workers/recomp/__init__.py +1 -0
  455. workers/recomp/compatibility_manifest.json +43 -0
  456. workers/recomp/driver.py +1653 -0
  457. workers/reformer/README.md +125 -0
  458. workers/reformer/__init__.py +1 -0
  459. workers/reformer/compatibility_manifest.json +68 -0
  460. workers/reformer/driver.py +1459 -0
  461. workers/reformer/induction.py +457 -0
  462. workers/rrr/README.md +126 -0
  463. workers/rrr/__init__.py +1 -0
  464. workers/rrr/compatibility_manifest.json +57 -0
  465. workers/rrr/driver.py +1133 -0
  466. workers/smartsearch/README.md +331 -0
  467. workers/smartsearch/__init__.py +1 -0
  468. workers/smartsearch/compatibility_manifest.json +41 -0
  469. workers/smartsearch/driver.py +1643 -0
@@ -0,0 +1,326 @@
1
+ """Pinned QueryGym runtime backed by an AgentInputLab LLM backend.
2
+
3
+ This module is deliberately a thin execution adapter. QueryGym continues to
4
+ own prompt rendering, Query2Doc's fallback behavior, and its five-query-plus-
5
+ pseudo-document concatenation. AgentInputLab only verifies the pinned source
6
+ closure, adapts the model call to :class:`LLMBackend`, and returns auditable
7
+ usage information to the existing :class:`QueryGymLiveBridge`.
8
+ """
9
+
10
+ from __future__ import annotations
11
+
12
+ import hashlib
13
+ import importlib.util
14
+ import subprocess
15
+ import sys
16
+ import threading
17
+ from collections.abc import Mapping, Sequence
18
+ from dataclasses import dataclass
19
+ from pathlib import Path
20
+ from types import ModuleType
21
+ from typing import Any
22
+
23
+ from agentinputlab.backends.llm import GenerationRequest, GenerationResponse, LLMBackend
24
+ from agentinputlab.contracts import (
25
+ AlgorithmOutputError,
26
+ ArtifactError,
27
+ ExternalDependencyError,
28
+ Message,
29
+ ValidationError,
30
+ )
31
+ from agentinputlab.contracts.serialization import content_hash, freeze_mapping
32
+
33
+ from .models import QueryGymMode, QueryGymRawResult, QueryGymRequest
34
+ from .querygym_bridge import QUERYGYM_REVISION
35
+
36
+ _SOURCE_SHA256 = freeze_mapping(
37
+ {
38
+ "querygym/methods/query2doc.py": (
39
+ "5af116ce29492cf1571c178c6f8b82e68a9d20cbc23e38be78b1819bf88f655e"
40
+ ),
41
+ "querygym/core/base.py": (
42
+ "e0d35055c5086ad498293f3e0373b9b5d48587cb28f963f0e223e5fb42900210"
43
+ ),
44
+ "querygym/core/prompts.py": (
45
+ "ca76d5878d158b9ba529bed92fd86db26a6e935f617b9edc33e17d1041d1433a"
46
+ ),
47
+ "querygym/prompt_bank.yaml": (
48
+ "3e056850e52245860331a668426be566fc7a6cc0888f1764685a3416ef593e39"
49
+ ),
50
+ }
51
+ )
52
+ _IMPORT_LOCK = threading.RLock()
53
+
54
+
55
+ @dataclass(frozen=True, slots=True)
56
+ class _UpstreamSymbols:
57
+ method_config: type[Any]
58
+ prompt_bank: type[Any]
59
+ query_item: type[Any]
60
+ query2doc: type[Any]
61
+
62
+
63
+ class _BackendChatClient:
64
+ """Expose QueryGym's one-method ``chat`` seam without changing prompts."""
65
+
66
+ def __init__(self, backend: LLMBackend, *, seed: int) -> None:
67
+ self.backend = backend
68
+ self.seed = seed
69
+ self.last_messages: tuple[Mapping[str, str], ...] = ()
70
+ self.last_response: GenerationResponse | None = None
71
+
72
+ def chat(self, messages: Sequence[Mapping[str, str]], **kwargs: Any) -> str:
73
+ normalized: list[Message] = []
74
+ raw_messages: list[Mapping[str, str]] = []
75
+ for item in messages:
76
+ if not isinstance(item, Mapping) or set(item) != {"role", "content"}:
77
+ raise AlgorithmOutputError("QueryGym emitted an invalid chat message")
78
+ role = item["role"]
79
+ content = item["content"]
80
+ if not isinstance(role, str) or not isinstance(content, str):
81
+ raise AlgorithmOutputError("QueryGym chat messages require string fields")
82
+ normalized.append(Message(role=role, content=content))
83
+ raw_messages.append(freeze_mapping({"role": role, "content": content}))
84
+ temperature = kwargs.pop("temperature", 0.7)
85
+ max_tokens = kwargs.pop("max_tokens", 256)
86
+ if kwargs:
87
+ raise ValidationError(
88
+ "QueryGym passed unsupported LLM options: " + ", ".join(sorted(kwargs))
89
+ )
90
+ response = self.backend.generate(
91
+ GenerationRequest(
92
+ messages=tuple(normalized),
93
+ temperature=temperature,
94
+ max_tokens=max_tokens,
95
+ seed=self.seed,
96
+ metadata={
97
+ "method_id": "query2doc",
98
+ "release_id": "rewrite.query2doc.querygym_live",
99
+ "upstream_revision": QUERYGYM_REVISION,
100
+ },
101
+ )
102
+ )
103
+ self.last_messages = tuple(raw_messages)
104
+ self.last_response = response
105
+ return response.text
106
+
107
+
108
+ class PinnedQueryGymRuntime:
109
+ """Execute QueryGym Query2Doc from an exact, source-verified checkout."""
110
+
111
+ worker_id = "querygym-query2doc-pinned"
112
+
113
+ def __init__(self, checkout: str | Path, backend: LLMBackend) -> None:
114
+ if not isinstance(backend, LLMBackend):
115
+ raise TypeError("PinnedQueryGymRuntime requires an LLMBackend")
116
+ self.checkout = Path(checkout).expanduser().resolve()
117
+ self.backend = backend
118
+ self.checkout_identity = _checkout_identity(self.checkout)
119
+ self._symbols = _load_upstream_symbols(self.checkout)
120
+
121
+ def fingerprint(self) -> Mapping[str, Any]:
122
+ return freeze_mapping(
123
+ {
124
+ "implementation": "agentinputlab.querygym.pinned_runtime.v1",
125
+ "revision": QUERYGYM_REVISION,
126
+ "source_closure_sha256": self.checkout_identity["source_closure_sha256"],
127
+ "source_files": dict(_SOURCE_SHA256),
128
+ "backend": dict(self.backend.fingerprint()),
129
+ "upstream_logic_owner": "ls3-lab/QueryGym",
130
+ }
131
+ )
132
+
133
+ def reformulate(self, request: QueryGymRequest) -> QueryGymRawResult:
134
+ if not isinstance(request, QueryGymRequest):
135
+ raise TypeError("PinnedQueryGymRuntime requires QueryGymRequest")
136
+ expected_backend = dict(self.backend.fingerprint())
137
+ if request.backend_fingerprint and content_hash(
138
+ request.backend_fingerprint
139
+ ) != content_hash(expected_backend):
140
+ raise ValidationError("QueryGym request backend fingerprint differs from runtime")
141
+ if request.mode is QueryGymMode.FEW_SHOT:
142
+ raise ExternalDependencyError(
143
+ "pinned QueryGym few-shot execution requires an explicit training-data binding; "
144
+ "use zero-shot or CoT for the production smoke"
145
+ )
146
+ upstream_mode = "cot" if request.mode is QueryGymMode.COT else "zs"
147
+ config = self._symbols.method_config(
148
+ name="query2doc",
149
+ params={"mode": upstream_mode},
150
+ llm={
151
+ "model": self.backend.model_id,
152
+ "temperature": request.temperature,
153
+ "max_tokens": request.max_tokens,
154
+ },
155
+ seed=request.seed,
156
+ retries=0,
157
+ )
158
+ client = _BackendChatClient(self.backend, seed=request.seed)
159
+ prompts = self._symbols.prompt_bank(self.checkout / "querygym" / "prompt_bank.yaml")
160
+ method = self._symbols.query2doc(config, client, prompts)
161
+ result = method.reformulate(self._symbols.query_item(request.query_id, request.query))
162
+ metadata = getattr(result, "metadata", None)
163
+ reformulated = getattr(result, "reformulated", None)
164
+ if not isinstance(metadata, Mapping) or not isinstance(reformulated, str):
165
+ raise AlgorithmOutputError("QueryGym returned an invalid ReformulationResult")
166
+ fallback = bool(metadata.get("fallback", False))
167
+ response = client.last_response
168
+ if response is None:
169
+ if not fallback:
170
+ raise AlgorithmOutputError("QueryGym returned without an observable model call")
171
+ usage = {
172
+ "model_calls": 1,
173
+ "retrieval_calls": 0,
174
+ "input_tokens": 0,
175
+ "output_tokens": 0,
176
+ }
177
+ messages: tuple[Mapping[str, str], ...] = ()
178
+ else:
179
+ usage = {
180
+ "model_calls": 1,
181
+ "retrieval_calls": 0,
182
+ "input_tokens": response.usage.input_tokens,
183
+ "output_tokens": response.usage.output_tokens,
184
+ }
185
+ if response.usage.cost_usd is not None:
186
+ usage["cost_usd"] = response.usage.cost_usd
187
+ messages = client.last_messages
188
+ generated = metadata.get("pseudo_doc", "")
189
+ if not isinstance(generated, str):
190
+ raise AlgorithmOutputError("QueryGym pseudo_doc metadata must be text")
191
+ return QueryGymRawResult(
192
+ reformulated=reformulated,
193
+ generated_text=generated,
194
+ prompt_hash=content_hash(messages),
195
+ fallback=fallback,
196
+ usage=usage,
197
+ metadata={
198
+ **dict(metadata),
199
+ "upstream_revision": QUERYGYM_REVISION,
200
+ "source_closure_sha256": self.checkout_identity["source_closure_sha256"],
201
+ },
202
+ )
203
+
204
+
205
+ def _sha256(path: Path) -> str:
206
+ digest = hashlib.sha256()
207
+ with path.open("rb") as handle:
208
+ for block in iter(lambda: handle.read(1024 * 1024), b""):
209
+ digest.update(block)
210
+ return digest.hexdigest()
211
+
212
+
213
+ def _checkout_identity(root: Path) -> Mapping[str, Any]:
214
+ if root.is_symlink() or not root.is_dir():
215
+ raise ArtifactError("QueryGym checkout must be a non-symlink directory")
216
+ try:
217
+ revision = subprocess.run(
218
+ ["git", "-C", str(root), "rev-parse", "HEAD"],
219
+ check=True,
220
+ capture_output=True,
221
+ text=True,
222
+ timeout=10,
223
+ ).stdout.strip()
224
+ except (OSError, subprocess.SubprocessError) as exc:
225
+ raise ArtifactError("cannot verify QueryGym checkout revision") from exc
226
+ if revision != QUERYGYM_REVISION:
227
+ raise ArtifactError("QueryGym checkout does not match the pinned revision")
228
+ observed: dict[str, str] = {}
229
+ for relative, expected in _SOURCE_SHA256.items():
230
+ path = root / relative
231
+ if path.is_symlink() or not path.is_file():
232
+ raise ArtifactError(f"QueryGym source file is unavailable: {relative}")
233
+ actual = _sha256(path)
234
+ if actual != expected:
235
+ raise ArtifactError(f"QueryGym source checksum mismatch: {relative}")
236
+ observed[relative] = actual
237
+ return freeze_mapping(
238
+ {
239
+ "revision": revision,
240
+ "source_closure_sha256": content_hash(observed),
241
+ }
242
+ )
243
+
244
+
245
+ def _load_upstream_symbols(root: Path) -> _UpstreamSymbols:
246
+ """Load only Query2Doc's audited source closure.
247
+
248
+ Importing ``querygym.core.base`` normally executes QueryGym's top-level
249
+ ``__init__`` and therefore imports every optional method, search adapter,
250
+ and data loader. That is both unnecessary and a source of hidden runtime
251
+ dependencies. The isolated namespace below executes the four pinned
252
+ modules (plus the small registry module) with their original relative
253
+ imports and does not modify their algorithm logic.
254
+ """
255
+
256
+ with _IMPORT_LOCK:
257
+ namespace = (
258
+ "_agentinputlab_querygym_" + str(_checkout_identity(root)["source_closure_sha256"])[:16]
259
+ )
260
+ existing = sys.modules.get(f"{namespace}.methods.query2doc")
261
+ if isinstance(existing, ModuleType):
262
+ return _symbols_from_modules(
263
+ sys.modules[f"{namespace}.core.base"],
264
+ sys.modules[f"{namespace}.core.prompts"],
265
+ existing,
266
+ )
267
+ try:
268
+ _install_namespace_package(namespace, root / "querygym")
269
+ _install_namespace_package(f"{namespace}.core", root / "querygym" / "core")
270
+ _install_namespace_package(f"{namespace}.methods", root / "querygym" / "methods")
271
+ base = _load_source_module(
272
+ f"{namespace}.core.base", root / "querygym" / "core" / "base.py"
273
+ )
274
+ prompts = _load_source_module(
275
+ f"{namespace}.core.prompts", root / "querygym" / "core" / "prompts.py"
276
+ )
277
+ _load_source_module(
278
+ f"{namespace}.core.registry", root / "querygym" / "core" / "registry.py"
279
+ )
280
+ method = _load_source_module(
281
+ f"{namespace}.methods.query2doc",
282
+ root / "querygym" / "methods" / "query2doc.py",
283
+ )
284
+ except (ImportError, ModuleNotFoundError, OSError) as exc:
285
+ raise ExternalDependencyError(
286
+ "the pinned QueryGym checkout is missing a runtime dependency; "
287
+ "install agentinputlab[querygym]"
288
+ ) from exc
289
+ return _symbols_from_modules(base, prompts, method)
290
+
291
+
292
+ def _install_namespace_package(name: str, path: Path) -> None:
293
+ package = sys.modules.get(name)
294
+ if package is not None:
295
+ return
296
+ package = ModuleType(name)
297
+ package.__package__ = name
298
+ package.__path__ = [str(path)] # type: ignore[attr-defined]
299
+ sys.modules[name] = package
300
+
301
+
302
+ def _load_source_module(name: str, path: Path) -> ModuleType:
303
+ spec = importlib.util.spec_from_file_location(name, path)
304
+ if spec is None or spec.loader is None:
305
+ raise ArtifactError(f"cannot load pinned QueryGym module: {path}")
306
+ module = importlib.util.module_from_spec(spec)
307
+ sys.modules[name] = module
308
+ try:
309
+ spec.loader.exec_module(module)
310
+ except Exception:
311
+ sys.modules.pop(name, None)
312
+ raise
313
+ return module
314
+
315
+
316
+ def _symbols_from_modules(
317
+ base: ModuleType,
318
+ prompts: ModuleType,
319
+ method: ModuleType,
320
+ ) -> _UpstreamSymbols:
321
+ return _UpstreamSymbols(
322
+ method_config=base.MethodConfig,
323
+ prompt_bank=prompts.PromptBank,
324
+ query_item=base.QueryItem,
325
+ query2doc=method.Query2Doc,
326
+ )
@@ -0,0 +1,23 @@
1
+ """ReFormeR profiles preserving repository and paper query semantics."""
2
+
3
+ from .external import (
4
+ REFORMER_PROMPT_ARTIFACT_SHA256,
5
+ REFORMER_UPSTREAM_COMMIT,
6
+ ReFormeRControlledConcat,
7
+ ReFormeRControlledROnly,
8
+ ReFormeRControls,
9
+ ReFormeRExternal,
10
+ ReFormeRPaperConcat,
11
+ ReFormeRRepoNative,
12
+ )
13
+
14
+ __all__ = [
15
+ "REFORMER_PROMPT_ARTIFACT_SHA256",
16
+ "REFORMER_UPSTREAM_COMMIT",
17
+ "ReFormeRControlledConcat",
18
+ "ReFormeRControlledROnly",
19
+ "ReFormeRControls",
20
+ "ReFormeRExternal",
21
+ "ReFormeRPaperConcat",
22
+ "ReFormeRRepoNative",
23
+ ]