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,467 @@
1
+ :root {
2
+ --bg: #090b0c;
3
+ --surface: #0e1112;
4
+ --surface-raised: #131718;
5
+ --line: #252a2b;
6
+ --line-soft: #1b2021;
7
+ --text: #f0f4f1;
8
+ --muted: #8f9995;
9
+ --dim: #5c6662;
10
+ --accent: #69ddb7;
11
+ --accent-ink: #07110e;
12
+ --warning: #e7bf73;
13
+ --danger: #ee8585;
14
+ --sidebar-width: 244px;
15
+ --radius: 10px;
16
+ font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
17
+ color: var(--text);
18
+ background: var(--bg);
19
+ font-synthesis: none;
20
+ }
21
+
22
+ * { box-sizing: border-box; }
23
+ [hidden] { display: none !important; }
24
+ html { scroll-behavior: smooth; }
25
+ body { margin: 0; min-width: 320px; min-height: 100vh; background: var(--bg); color: var(--text); }
26
+ button, input, select { font: inherit; }
27
+ button, a { -webkit-tap-highlight-color: transparent; }
28
+ a { color: inherit; text-decoration: none; }
29
+ button { color: inherit; }
30
+ ::selection { color: var(--accent-ink); background: var(--accent); }
31
+
32
+ body::before {
33
+ position: fixed;
34
+ inset: 0;
35
+ z-index: -1;
36
+ pointer-events: none;
37
+ content: "";
38
+ opacity: 0.28;
39
+ background-image:
40
+ linear-gradient(var(--line-soft) 1px, transparent 1px),
41
+ linear-gradient(90deg, var(--line-soft) 1px, transparent 1px);
42
+ background-size: 48px 48px;
43
+ mask-image: linear-gradient(to bottom, black, transparent 52%);
44
+ }
45
+
46
+ .app-shell { display: grid; grid-template-columns: var(--sidebar-width) minmax(0, 1fr); min-height: 100vh; }
47
+ .sidebar {
48
+ position: fixed;
49
+ inset: 0 auto 0 0;
50
+ z-index: 10;
51
+ display: flex;
52
+ width: var(--sidebar-width);
53
+ flex-direction: column;
54
+ padding: 30px 22px 22px;
55
+ background: #0b0e0f;
56
+ border-right: 1px solid var(--line);
57
+ }
58
+
59
+ .brand { display: flex; align-items: center; gap: 12px; }
60
+ .brand-mark {
61
+ display: grid;
62
+ width: 34px;
63
+ height: 34px;
64
+ place-items: center;
65
+ color: var(--accent-ink);
66
+ background: var(--accent);
67
+ border-radius: 7px;
68
+ font: 800 11px/1 ui-monospace, SFMono-Regular, Menlo, monospace;
69
+ letter-spacing: -0.04em;
70
+ }
71
+ .brand strong, .brand small { display: block; }
72
+ .brand strong { font-size: 14px; letter-spacing: -0.01em; }
73
+ .brand small { margin-top: 3px; color: var(--muted); font-size: 11px; }
74
+
75
+ .primary-nav { display: grid; gap: 4px; margin-top: 58px; }
76
+ .nav-link {
77
+ display: flex;
78
+ align-items: center;
79
+ gap: 11px;
80
+ min-height: 40px;
81
+ padding: 0 10px;
82
+ color: var(--muted);
83
+ border-radius: 7px;
84
+ font-size: 13px;
85
+ transition: color 160ms ease, background-color 160ms ease, transform 160ms ease;
86
+ }
87
+ .nav-link span { color: var(--dim); font: 10px/1 ui-monospace, SFMono-Regular, Menlo, monospace; }
88
+ .nav-link:hover { color: var(--text); background: #111516; transform: translateX(2px); }
89
+ .nav-link.active { color: var(--text); background: var(--surface-raised); }
90
+ .nav-link.active span { color: var(--accent); }
91
+ .sidebar-spacer { flex: 1; }
92
+ .local-policy { padding: 16px 3px 18px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
93
+ .policy-heading { display: flex; align-items: center; gap: 8px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; }
94
+ .local-policy p { margin: 10px 0 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
95
+ .status-dot { width: 7px; height: 7px; flex: none; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 4px rgb(105 221 183 / 9%); }
96
+ .status-dot.offline { background: var(--danger); box-shadow: 0 0 0 4px rgb(238 133 133 / 9%); }
97
+ .build-label { margin-top: 17px; color: var(--dim); font: 9px/1 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: 0.12em; }
98
+
99
+ .main-canvas { grid-column: 2; width: min(1420px, 100%); padding: 42px clamp(28px, 4vw, 66px) 80px; }
100
+ .topbar, .result-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; }
101
+ .eyebrow, .section-index { margin: 0 0 9px; color: var(--accent); font: 10px/1.2 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: 0.12em; }
102
+ h1, h2, h3, p { text-wrap: pretty; }
103
+ h1 { margin: 0; font-size: clamp(32px, 4vw, 52px); font-weight: 580; letter-spacing: -0.045em; line-height: 1; }
104
+ h2 { margin: 0; font-size: 24px; font-weight: 560; letter-spacing: -0.025em; }
105
+ h3 { margin: 0; font-size: 17px; font-weight: 600; letter-spacing: -0.015em; }
106
+ .topbar-meta { display: flex; align-items: center; gap: 14px; color: var(--muted); font-size: 11px; }
107
+ .local-chip, .mono-tag {
108
+ display: inline-flex;
109
+ width: max-content;
110
+ padding: 5px 7px;
111
+ color: var(--accent);
112
+ border: 1px solid rgb(105 221 183 / 28%);
113
+ border-radius: 5px;
114
+ font: 9px/1 ui-monospace, SFMono-Regular, Menlo, monospace;
115
+ letter-spacing: 0.1em;
116
+ }
117
+
118
+ .workflow { margin-top: 42px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
119
+ .step-rail { display: grid; grid-template-columns: repeat(4, 1fr); border-bottom: 1px solid var(--line); }
120
+ .step {
121
+ position: relative;
122
+ display: grid;
123
+ grid-template-columns: 26px 1fr;
124
+ min-width: 0;
125
+ padding: 19px 22px 18px;
126
+ text-align: left;
127
+ background: transparent;
128
+ border: 0;
129
+ border-right: 1px solid var(--line-soft);
130
+ cursor: pointer;
131
+ }
132
+ .step:last-child { border-right: 0; }
133
+ .step > span { grid-row: 1 / 3; color: var(--dim); font: 10px/1.4 ui-monospace, SFMono-Regular, Menlo, monospace; }
134
+ .step strong { color: var(--muted); font-size: 12px; font-weight: 650; }
135
+ .step small { margin-top: 4px; color: var(--dim); font-size: 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
136
+ .step::after { position: absolute; right: 22px; bottom: -1px; left: 22px; height: 2px; content: ""; background: var(--accent); transform: scaleX(0); transform-origin: left; transition: transform 220ms ease; }
137
+ .step:hover strong, .step.active strong { color: var(--text); }
138
+ .step.active > span { color: var(--accent); }
139
+ .step.active::after { transform: scaleX(1); }
140
+
141
+ .workspace-grid { display: grid; grid-template-columns: minmax(0, 1fr) 330px; min-height: 470px; }
142
+ .config-pane { padding: clamp(32px, 4vw, 54px); }
143
+ .config-section.active { animation: panel-in 230ms ease both; }
144
+ .section-heading { display: flex; justify-content: space-between; gap: 35px; align-items: flex-start; padding-bottom: 28px; border-bottom: 1px solid var(--line); }
145
+ .section-heading > p { max-width: 320px; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
146
+ .field-grid { display: grid; gap: 18px; margin-top: 30px; }
147
+ .field-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
148
+ .field { display: grid; gap: 9px; min-width: 0; }
149
+ .field > span { color: #c8cfcc; font-size: 11px; font-weight: 650; letter-spacing: 0.01em; }
150
+ .field small { min-height: 15px; color: var(--muted); font-size: 10px; line-height: 1.5; }
151
+ .field select, .field input {
152
+ width: 100%;
153
+ min-height: 46px;
154
+ padding: 0 13px;
155
+ color: var(--text);
156
+ background: #0a0d0e;
157
+ border: 1px solid #303637;
158
+ border-radius: 7px;
159
+ outline: none;
160
+ transition: border-color 150ms ease, box-shadow 150ms ease, background-color 150ms ease;
161
+ }
162
+ .field select { padding-right: 34px; }
163
+ .field select:focus, .field input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgb(105 221 183 / 10%); background: #0c1010; }
164
+ .field select option:disabled { color: #626967; }
165
+ .full-field { margin-top: 30px; }
166
+ .method-note, .sample-preview { display: flex; align-items: flex-start; gap: 13px; margin-top: 26px; padding-top: 21px; border-top: 1px solid var(--line-soft); }
167
+ .method-note p, .sample-preview p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
168
+ .parameter-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px 16px; margin-top: 26px; }
169
+ .field.compact input { min-height: 42px; }
170
+ .parameter-help { margin: 25px 0 0; color: var(--dim); font-size: 10px; }
171
+ .dataset-spec { margin-top: 26px; }
172
+ .dataset-spec dl { display: grid; grid-template-columns: 1fr 1fr; margin: 0; }
173
+ .dataset-spec dl > div { padding: 15px 0; border-bottom: 1px solid var(--line-soft); }
174
+ .dataset-spec dl > div:nth-child(odd) { padding-right: 20px; }
175
+ dt { color: var(--muted); font-size: 10px; }
176
+ dd { margin: 6px 0 0; font-size: 12px; line-height: 1.45; }
177
+ .control-list { margin-top: 18px; }
178
+ .toggle-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 66px; border-bottom: 1px solid var(--line-soft); cursor: pointer; }
179
+ .toggle-row > span { display: grid; gap: 4px; }
180
+ .toggle-row strong { font-size: 12px; }
181
+ .toggle-row small { color: var(--muted); font-size: 10px; line-height: 1.45; }
182
+ .toggle-row input { position: absolute; opacity: 0; pointer-events: none; }
183
+ .toggle-row i { position: relative; width: 34px; height: 19px; flex: none; background: #282e2f; border-radius: 20px; transition: background-color 170ms ease; }
184
+ .toggle-row i::after { position: absolute; top: 3px; left: 3px; width: 13px; height: 13px; content: ""; background: #8d9692; border-radius: 50%; transition: transform 170ms ease, background-color 170ms ease; }
185
+ .toggle-row input:checked + i { background: rgb(105 221 183 / 22%); }
186
+ .toggle-row input:checked + i::after { background: var(--accent); transform: translateX(15px); }
187
+ .toggle-row input:focus-visible + i { outline: 2px solid var(--accent); outline-offset: 3px; }
188
+
189
+ .inspector { padding: 37px 30px; background: #0b0e0f; border-left: 1px solid var(--line); }
190
+ .inspector-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
191
+ .inspector-heading .section-index { margin: 0; }
192
+ .validation-state, .run-status { padding: 5px 7px; border-radius: 5px; font: 9px/1 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: 0.08em; }
193
+ .validation-state.valid, .run-status.completed { color: var(--accent); background: rgb(105 221 183 / 10%); }
194
+ .validation-state.invalid, .run-status.failed, .run-status.completed_with_failures { color: var(--danger); background: rgb(238 133 133 / 10%); }
195
+ .validation-state.checking, .run-status.waiting, .run-status.queued, .run-status.running { color: var(--warning); background: rgb(231 191 115 / 10%); }
196
+ .inspector h3 { margin-top: 25px; }
197
+ .inspector > p { margin: 10px 0 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
198
+ .issue-list { display: grid; gap: 8px; padding: 0; margin: 21px 0 0; list-style: none; }
199
+ .issue-list li { display: grid; grid-template-columns: 8px 1fr; gap: 9px; color: var(--muted); font-size: 10px; line-height: 1.45; }
200
+ .issue-list li::before { width: 5px; height: 5px; margin-top: 5px; content: ""; background: var(--danger); border-radius: 50%; }
201
+ .issue-list li.warning::before { background: var(--warning); }
202
+ .issue-list li.ok::before { background: var(--accent); }
203
+ .manifest-preview { margin-top: 30px; padding-top: 24px; border-top: 1px solid var(--line); }
204
+ .manifest-preview dl { display: grid; gap: 14px; margin: 18px 0 0; }
205
+ .manifest-preview dl > div { display: flex; justify-content: space-between; gap: 15px; }
206
+ .manifest-preview dd { max-width: 190px; margin: 0; overflow: hidden; color: #c5cdca; font: 9px/1.4 ui-monospace, SFMono-Regular, Menlo, monospace; text-align: right; text-overflow: ellipsis; white-space: nowrap; }
207
+
208
+ .run-bar { display: flex; align-items: center; justify-content: space-between; padding: 18px 22px; background: #0b0e0f; border-top: 1px solid var(--line); }
209
+ .run-bar > div { display: flex; align-items: center; gap: 12px; }
210
+ .run-bar p { display: grid; gap: 3px; margin: 0; }
211
+ .run-bar strong { font-size: 11px; }
212
+ .run-bar small { color: var(--muted); font-size: 9px; }
213
+ .primary-action {
214
+ display: inline-flex;
215
+ min-height: 42px;
216
+ align-items: center;
217
+ justify-content: center;
218
+ gap: 28px;
219
+ padding: 0 14px 0 18px;
220
+ color: var(--accent-ink);
221
+ background: var(--accent);
222
+ border: 0;
223
+ border-radius: 7px;
224
+ font-size: 11px;
225
+ font-weight: 750;
226
+ cursor: pointer;
227
+ transition: transform 170ms ease, opacity 170ms ease, background-color 170ms ease;
228
+ }
229
+ .primary-action b { font-size: 15px; transition: transform 170ms ease; }
230
+ .primary-action:hover:not(:disabled) { transform: translateY(-1px); }
231
+ .primary-action:hover:not(:disabled) b { transform: translate(2px, -2px); }
232
+ .primary-action:disabled { cursor: not-allowed; opacity: 0.28; }
233
+ .primary-action.running { pointer-events: none; }
234
+ .primary-action.running span::after { content: "…"; animation: ellipsis 1s steps(3, end) infinite; }
235
+
236
+ .runs-section { margin-top: 58px; }
237
+ .runs-heading, .result-section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; }
238
+ .text-button { padding: 7px 0; color: var(--muted); background: transparent; border: 0; border-bottom: 1px solid var(--line); font-size: 10px; cursor: pointer; }
239
+ .text-button:hover { color: var(--text); border-color: var(--accent); }
240
+ .runs-table-wrap { margin-top: 21px; overflow-x: auto; border-top: 1px solid var(--line); }
241
+ .runs-table { width: 100%; border-collapse: collapse; font-size: 11px; }
242
+ .runs-table th { padding: 13px 12px; color: var(--dim); font: 9px/1 ui-monospace, SFMono-Regular, Menlo, monospace; text-align: left; text-transform: uppercase; letter-spacing: 0.08em; border-bottom: 1px solid var(--line); }
243
+ .runs-table td { padding: 16px 12px; color: var(--muted); border-bottom: 1px solid var(--line-soft); }
244
+ .runs-table td:first-child { color: var(--text); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
245
+ .run-table-status { display: inline-flex; align-items: center; gap: 7px; color: var(--text); }
246
+ .run-table-status::before { width: 6px; height: 6px; content: ""; background: var(--muted); border-radius: 50%; }
247
+ .run-table-status.running::before, .run-table-status.queued::before { background: var(--warning); animation: pulse 1.2s ease-in-out infinite; }
248
+ .run-table-status.completed::before { background: var(--accent); }
249
+ .run-table-status.failed::before, .run-table-status.completed_with_failures::before { background: var(--danger); }
250
+ .result-link { color: var(--accent); font-size: 10px; }
251
+ .result-link:hover { text-decoration: underline; text-underline-offset: 3px; }
252
+ .empty-row { height: 90px; text-align: center; }
253
+ .toast { position: fixed; right: 24px; bottom: 24px; z-index: 50; max-width: 360px; padding: 12px 15px; color: var(--text); background: #171c1d; border: 1px solid #333a3a; border-radius: 7px; box-shadow: 0 16px 40px rgb(0 0 0 / 38%); font-size: 11px; opacity: 0; transform: translateY(8px); pointer-events: none; transition: opacity 180ms ease, transform 180ms ease; }
254
+ .toast.visible { opacity: 1; transform: translateY(0); }
255
+
256
+ /* Research campaign workspace */
257
+ .campaign-canvas { max-width: 1520px; }
258
+ .campaign-subtitle { max-width: 680px; margin: 14px 0 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
259
+ .campaign-workspace {
260
+ display: grid;
261
+ grid-template-columns: 270px minmax(0, 1fr);
262
+ min-height: 720px;
263
+ margin-top: 38px;
264
+ overflow: hidden;
265
+ background: var(--surface);
266
+ border: 1px solid var(--line);
267
+ border-radius: var(--radius);
268
+ }
269
+ .campaign-profile-rail { padding: 31px 22px; background: #0b0e0f; border-right: 1px solid var(--line); }
270
+ .campaign-section-heading { padding: 0 5px 24px; border-bottom: 1px solid var(--line); }
271
+ .campaign-section-heading p:last-child { margin: 9px 0 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
272
+ .campaign-profile-list { display: grid; margin-top: 13px; }
273
+ .campaign-profile-option {
274
+ display: grid;
275
+ grid-template-columns: 24px minmax(0, 1fr) 15px;
276
+ gap: 10px;
277
+ align-items: center;
278
+ width: 100%;
279
+ min-height: 72px;
280
+ padding: 12px 5px;
281
+ text-align: left;
282
+ background: transparent;
283
+ border: 0;
284
+ border-bottom: 1px solid var(--line-soft);
285
+ cursor: pointer;
286
+ transition: color 160ms ease, transform 160ms ease;
287
+ }
288
+ .campaign-profile-option > span:first-child { color: var(--dim); font: 9px/1 ui-monospace, SFMono-Regular, Menlo, monospace; }
289
+ .campaign-profile-option > span:nth-child(2) { display: grid; gap: 5px; min-width: 0; }
290
+ .campaign-profile-option strong { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
291
+ .campaign-profile-option small { overflow: hidden; color: var(--muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
292
+ .campaign-profile-option b { color: var(--dim); font-size: 13px; font-weight: 400; transition: transform 160ms ease; }
293
+ .campaign-profile-option:hover, .campaign-profile-option[aria-selected="true"] { color: var(--accent); transform: translateX(3px); }
294
+ .campaign-profile-option:hover b, .campaign-profile-option[aria-selected="true"] b { transform: translateX(3px); }
295
+ .campaign-profile-option[aria-selected="true"] > span:first-child { color: var(--accent); }
296
+ .campaign-plan-pane { min-width: 0; padding: clamp(30px, 4vw, 52px); }
297
+ .campaign-empty-state { display: grid; max-width: 520px; justify-items: start; margin: 130px auto; }
298
+ .campaign-empty-state > span { color: var(--accent); font-size: 42px; }
299
+ .campaign-empty-state h2 { margin-top: 18px; font-size: 29px; }
300
+ .campaign-empty-state p { margin: 12px 0 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
301
+ .campaign-profile-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; }
302
+ .campaign-profile-header > div > p:last-child { max-width: 640px; margin: 11px 0 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
303
+ .campaign-identity-line { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 22px; margin: 30px 0 0; padding: 18px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
304
+ .campaign-identity-line dd { overflow: hidden; color: #c6cecb; font: 9px/1.4 ui-monospace, SFMono-Regular, Menlo, monospace; text-overflow: ellipsis; white-space: nowrap; }
305
+ .campaign-plan-status { display: grid; grid-template-columns: minmax(240px, 1fr) minmax(360px, 1.45fr); gap: 45px; align-items: end; padding: 34px 0; border-bottom: 1px solid var(--line); }
306
+ .campaign-plan-status h3 { margin-top: 14px; }
307
+ .campaign-plan-status > div > p { margin: 8px 0 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
308
+ .campaign-stat-strip { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0; }
309
+ .campaign-stat-strip > div { padding: 0 16px; border-left: 1px solid var(--line); }
310
+ .campaign-stat-strip dd { margin-top: 9px; font: 19px/1 ui-monospace, SFMono-Regular, Menlo, monospace; }
311
+ .campaign-detail-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 52px; padding: 35px 0; border-bottom: 1px solid var(--line); }
312
+ .campaign-subheading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; }
313
+ .campaign-subheading .section-index { margin: 0; }
314
+ .campaign-subheading > span { color: var(--muted); font: 9px/1.4 ui-monospace, SFMono-Regular, Menlo, monospace; }
315
+ .campaign-issue-list { max-height: 270px; overflow: auto; }
316
+ .campaign-arm-list { max-height: 290px; margin-top: 14px; overflow: auto; border-top: 1px solid var(--line-soft); }
317
+ .campaign-arm-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 54px; border-bottom: 1px solid var(--line-soft); }
318
+ .campaign-arm-row > span:first-child { display: grid; gap: 4px; min-width: 0; }
319
+ .campaign-arm-row strong, .campaign-arm-row small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
320
+ .campaign-arm-row strong { font-size: 10px; }
321
+ .campaign-arm-row small { color: var(--muted); font-size: 9px; }
322
+ .campaign-placeholder { margin: 22px 0; color: var(--muted); font-size: 10px; }
323
+ .campaign-cells-section { padding: 35px 0 0; }
324
+ .campaign-cells-section .campaign-subheading > div .section-index { margin-bottom: 7px; }
325
+ .campaign-table-wrap { max-height: 350px; margin-top: 20px; overflow: auto; border-top: 1px solid var(--line); }
326
+ .campaign-cells-table { min-width: 920px; }
327
+ .campaign-cells-table td { max-width: 270px; overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
328
+ .campaign-confirmation { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, .85fr); gap: 55px; align-items: center; margin: 44px clamp(-52px, -4vw, -30px) clamp(-52px, -4vw, -30px); padding: 32px clamp(30px, 4vw, 52px); background: #0b0e0f; border-top: 1px solid var(--line); }
329
+ .campaign-confirmation > div:first-child > p:last-child { max-width: 600px; margin: 10px 0 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
330
+ .campaign-confirm-controls { display: grid; gap: 17px; }
331
+ .campaign-confirm-check { display: flex; gap: 11px; align-items: flex-start; color: var(--muted); font-size: 10px; line-height: 1.45; cursor: pointer; }
332
+ .campaign-confirm-check input { width: 15px; height: 15px; margin: 0; accent-color: var(--accent); }
333
+ .campaign-confirm-check input:disabled + span { opacity: .45; }
334
+
335
+ /* Result view */
336
+ .result-canvas { max-width: 1320px; }
337
+ .result-header { align-items: flex-start; padding-bottom: 31px; border-bottom: 1px solid var(--line); }
338
+ .result-header .eyebrow { margin-top: 30px; }
339
+ .result-subtitle { max-width: 720px; margin: 13px 0 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
340
+ .back-link { color: var(--muted); font-size: 10px; }
341
+ .back-link:hover { color: var(--accent); }
342
+ .result-empty { display: grid; max-width: 480px; justify-items: start; margin: 120px auto; }
343
+ .empty-glyph { color: var(--accent); font-size: 45px; }
344
+ .result-empty h2 { margin-top: 23px; font-size: 30px; }
345
+ .result-empty p { margin: 13px 0 24px; color: var(--muted); font-size: 12px; line-height: 1.6; }
346
+ .inline-action { padding: 0 14px 0 17px; }
347
+ .metric-strip { display: grid; grid-template-columns: repeat(5, 1fr); margin-top: 28px; padding: 24px 0; border-bottom: 1px solid var(--line); }
348
+ .metric-strip > div { min-width: 0; padding: 0 20px; border-right: 1px solid var(--line); }
349
+ .metric-strip > div:first-child { padding-left: 0; }
350
+ .metric-strip > div:last-child { border-right: 0; }
351
+ .metric-strip span, .metric-strip small { display: block; color: var(--muted); font-size: 9px; }
352
+ .metric-strip strong { display: block; margin: 9px 0 6px; overflow: hidden; font-size: clamp(22px, 3vw, 34px); font-weight: 530; letter-spacing: -0.04em; text-overflow: ellipsis; }
353
+ .result-section { padding: 45px 0; border-bottom: 1px solid var(--line); }
354
+ .result-section-heading > p { margin: 0; color: var(--muted); font-size: 10px; }
355
+ .quality-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) 340px; gap: 70px; margin-top: 40px; }
356
+ .bar-compare { display: grid; align-content: center; gap: 22px; }
357
+ .bar-row { display: grid; grid-template-columns: 70px minmax(100px, 1fr) 48px; align-items: center; gap: 14px; }
358
+ .bar-row > span { color: var(--muted); font-size: 10px; }
359
+ .bar-row > strong { font: 12px/1 ui-monospace, SFMono-Regular, Menlo, monospace; text-align: right; }
360
+ .bar-track { height: 8px; overflow: hidden; background: #232829; border-radius: 10px; }
361
+ .bar-track i { display: block; width: 0; height: 100%; background: #66706c; border-radius: inherit; transition: width 700ms cubic-bezier(.2,.8,.2,1); }
362
+ .bar-row.treatment .bar-track i { background: var(--accent); }
363
+ .effect-list, .dense-list { margin: 0; }
364
+ .effect-list > div, .dense-list > div { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; padding: 12px 0; border-bottom: 1px solid var(--line-soft); }
365
+ .effect-list dd, .dense-list dd { margin: 0; font: 11px/1.4 ui-monospace, SFMono-Regular, Menlo, monospace; text-align: right; }
366
+ .runtime-columns { display: grid; grid-template-columns: repeat(3, 1fr); gap: 35px; margin-top: 31px; }
367
+ .dense-list::before { display: block; margin-bottom: 7px; color: var(--accent); font: 9px/1 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: 0.1em; }
368
+ #usage-list::before { content: "USAGE"; }
369
+ #timing-list::before { content: "TIMING"; }
370
+ #fairness-list::before { content: "FAIRNESS"; }
371
+ .sample-list { margin-top: 26px; border-top: 1px solid var(--line); }
372
+ .sample-item { border-bottom: 1px solid var(--line-soft); }
373
+ .sample-item summary { display: grid; grid-template-columns: 34px minmax(0, 1fr) 90px 90px 20px; gap: 14px; align-items: center; min-height: 58px; cursor: pointer; list-style: none; }
374
+ .sample-item summary::-webkit-details-marker { display: none; }
375
+ .sample-index { color: var(--dim); font: 9px/1 ui-monospace, SFMono-Regular, Menlo, monospace; }
376
+ .sample-query { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
377
+ .sample-score { color: var(--muted); font: 10px/1 ui-monospace, SFMono-Regular, Menlo, monospace; text-align: right; }
378
+ .sample-chevron { color: var(--muted); transition: transform 150ms ease; }
379
+ .sample-item[open] .sample-chevron { transform: rotate(45deg); }
380
+ .sample-detail { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; padding: 0 34px 26px; }
381
+ .sample-detail h3 { margin-bottom: 8px; color: var(--muted); font-size: 9px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: 0.08em; }
382
+ .sample-detail p { margin: 0; font-size: 11px; line-height: 1.55; overflow-wrap: anywhere; }
383
+ .sample-detail dl { margin: 18px 0 0; }
384
+ .sample-detail dl > div { display: flex; justify-content: space-between; padding: 7px 0; border-top: 1px solid var(--line-soft); }
385
+ .sample-detail dd { margin: 0; font: 9px/1.4 ui-monospace, SFMono-Regular, Menlo, monospace; }
386
+ .failure-list { margin-top: 25px; }
387
+ .failure-item { display: grid; grid-template-columns: 160px 1fr 80px; gap: 20px; padding: 13px 0; border-top: 1px solid var(--line-soft); font-size: 10px; }
388
+ .failure-item strong { color: var(--danger); }
389
+ .failure-item span { color: var(--muted); }
390
+ .no-failures { padding: 22px 0; color: var(--muted); font-size: 11px; }
391
+ .trace-list { margin-top: 28px; }
392
+ .trace-group { display: grid; grid-template-columns: 180px 1fr; gap: 25px; padding: 18px 0; border-top: 1px solid var(--line-soft); }
393
+ .trace-group > div:first-child { display: grid; align-content: start; gap: 5px; }
394
+ .trace-group strong { font-size: 10px; }
395
+ .trace-group small { color: var(--dim); font: 8px/1.4 ui-monospace, SFMono-Regular, Menlo, monospace; overflow-wrap: anywhere; }
396
+ .trace-events { display: grid; gap: 11px; }
397
+ .trace-event { position: relative; padding-left: 17px; }
398
+ .trace-event::before { position: absolute; top: 4px; left: 0; width: 6px; height: 6px; content: ""; background: var(--accent); border-radius: 50%; }
399
+ .trace-event.monitor-event::before { background: var(--warning); }
400
+ .trace-event strong { display: block; color: #c7cfcc; }
401
+ .trace-event p { margin: 5px 0 0; color: var(--muted); font: 9px/1.5 ui-monospace, SFMono-Regular, Menlo, monospace; overflow-wrap: anywhere; }
402
+ .raw-json { max-height: 520px; margin: 28px 0 0; padding: 20px; overflow: auto; color: #afbab6; background: #080a0b; border: 1px solid var(--line); border-radius: 7px; font: 9px/1.55 ui-monospace, SFMono-Regular, Menlo, monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
403
+
404
+ .entrance { animation: entrance 500ms both; }
405
+ .entrance-delay-1 { animation-delay: 70ms; }
406
+ .entrance-delay-2 { animation-delay: 140ms; }
407
+ .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
408
+
409
+ @keyframes entrance { from { opacity: 0; transform: translateY(9px); } to { opacity: 1; transform: translateY(0); } }
410
+ @keyframes panel-in { from { opacity: 0; transform: translateX(7px); } to { opacity: 1; transform: translateX(0); } }
411
+ @keyframes pulse { 0%, 100% { opacity: .45; box-shadow: 0 0 0 0 rgb(231 191 115 / 22%); } 50% { opacity: 1; box-shadow: 0 0 0 5px rgb(231 191 115 / 0%); } }
412
+ @keyframes ellipsis { 0% { content: ""; } 33% { content: "."; } 66% { content: ".."; } 100% { content: "…"; } }
413
+
414
+ @media (max-width: 1060px) {
415
+ :root { --sidebar-width: 206px; }
416
+ .sidebar { padding-inline: 16px; }
417
+ .workspace-grid { grid-template-columns: 1fr; }
418
+ .inspector { border-top: 1px solid var(--line); border-left: 0; }
419
+ .quality-layout { grid-template-columns: 1fr; gap: 35px; }
420
+ .runtime-columns { grid-template-columns: 1fr 1fr; }
421
+ .campaign-workspace { grid-template-columns: 220px minmax(0, 1fr); }
422
+ .campaign-plan-status, .campaign-detail-grid, .campaign-confirmation { grid-template-columns: 1fr; }
423
+ }
424
+
425
+ @media (max-width: 760px) {
426
+ .app-shell { display: block; }
427
+ .sidebar { position: sticky; top: 0; width: 100%; height: 58px; flex-direction: row; align-items: center; padding: 0 16px; border-right: 0; border-bottom: 1px solid var(--line); }
428
+ .brand small, .sidebar-spacer, .local-policy, .build-label { display: none; }
429
+ .primary-nav { display: flex; margin: 0 0 0 auto; }
430
+ .nav-link { min-height: 34px; padding: 0 8px; font-size: 0; }
431
+ .nav-link span { font-size: 9px; }
432
+ .main-canvas { padding: 28px 16px 60px; }
433
+ .topbar, .result-header { align-items: flex-start; flex-direction: column; }
434
+ h1 { font-size: 34px; }
435
+ .workflow { margin-top: 30px; }
436
+ .step { display: flex; min-height: 48px; justify-content: center; padding: 15px 8px; }
437
+ .step strong, .step small { display: none; }
438
+ .step::after { right: 8px; left: 8px; }
439
+ .config-pane { padding: 28px 20px; }
440
+ .section-heading { display: block; }
441
+ .section-heading > p { margin-top: 12px; }
442
+ .field-grid.two, .parameter-grid, .dataset-spec dl { grid-template-columns: 1fr; }
443
+ .dataset-spec dl > div:nth-child(odd) { padding-right: 0; }
444
+ .run-bar { align-items: stretch; flex-direction: column; gap: 14px; }
445
+ .primary-action { width: 100%; }
446
+ .runs-heading { align-items: flex-end; }
447
+ .metric-strip { grid-template-columns: 1fr 1fr; row-gap: 24px; }
448
+ .metric-strip > div { border-right: 0; }
449
+ .metric-strip > div:first-child { padding-left: 20px; }
450
+ .runtime-columns { grid-template-columns: 1fr; }
451
+ .sample-item summary { grid-template-columns: 26px minmax(0, 1fr) 70px 18px; }
452
+ .sample-item summary .sample-score:nth-of-type(2) { display: none; }
453
+ .sample-detail { grid-template-columns: 1fr; padding-left: 26px; }
454
+ .trace-group { grid-template-columns: 1fr; gap: 14px; }
455
+ .campaign-workspace { display: block; }
456
+ .campaign-profile-rail { border-right: 0; border-bottom: 1px solid var(--line); }
457
+ .campaign-profile-list { grid-template-columns: 1fr 1fr; gap: 0 16px; }
458
+ .campaign-profile-header { align-items: stretch; flex-direction: column; }
459
+ .campaign-identity-line { grid-template-columns: 1fr; }
460
+ .campaign-stat-strip { grid-template-columns: 1fr 1fr; gap: 20px 0; }
461
+ .campaign-confirmation { margin-top: 34px; }
462
+ }
463
+
464
+ @media (prefers-reduced-motion: reduce) {
465
+ html { scroll-behavior: auto; }
466
+ *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: 0.01ms !important; }
467
+ }
@@ -0,0 +1,22 @@
1
+ cff-version: 1.2.0
2
+ message: "If you use AgentInputLab, please cite the software and its preferred project paper."
3
+ title: "AgentInputLab"
4
+ type: software
5
+ authors:
6
+ - family-names: Zhao
7
+ given-names: Chuang
8
+ - family-names: Li
9
+ given-names: Xiaomeng
10
+ version: 0.1.0a1
11
+ date-released: 2026-10-15
12
+ repository-code: "https://github.com/Data-Designer/AgentInputLab"
13
+ license: MIT
14
+ preferred-citation:
15
+ type: generic
16
+ title: "Not Every Better Query Is the Same Task: When Input Optimization Helps and Hurts LLM Agents"
17
+ authors:
18
+ - family-names: Zhao
19
+ given-names: Chuang
20
+ - family-names: Li
21
+ given-names: Xiaomeng
22
+ year: 2026