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.
- agentinputlab/__init__.py +28 -0
- agentinputlab/algorithms/__init__.py +6 -0
- agentinputlab/algorithms/acquire/__init__.py +145 -0
- agentinputlab/algorithms/acquire/adaptive_rag/__init__.py +43 -0
- agentinputlab/algorithms/acquire/adaptive_rag/replay.py +367 -0
- agentinputlab/algorithms/acquire/adaptive_rag/runtime.py +1202 -0
- agentinputlab/algorithms/acquire/adaptive_rag_common_support.py +542 -0
- agentinputlab/algorithms/acquire/hyde.py +296 -0
- agentinputlab/algorithms/acquire/hyde_controlled.py +200 -0
- agentinputlab/algorithms/acquire/hyde_external.py +148 -0
- agentinputlab/algorithms/acquire/ircot.py +28 -0
- agentinputlab/algorithms/acquire/ircot_common_support.py +478 -0
- agentinputlab/algorithms/acquire/ircot_native.py +355 -0
- agentinputlab/algorithms/acquire/ircot_replay.py +327 -0
- agentinputlab/algorithms/acquire/qrag/__init__.py +79 -0
- agentinputlab/algorithms/acquire/qrag/bridge.py +828 -0
- agentinputlab/algorithms/acquire/qrag/common_support.py +891 -0
- agentinputlab/algorithms/acquire/qrag/native_axis.py +71 -0
- agentinputlab/algorithms/acquire/qrag/reader_adapter.py +139 -0
- agentinputlab/algorithms/acquire/r2ag/__init__.py +57 -0
- agentinputlab/algorithms/acquire/r2ag/bridge.py +1312 -0
- agentinputlab/algorithms/acquire/r2ag/common_support.py +1029 -0
- agentinputlab/algorithms/acquire/r2ag/socket_runtime.py +255 -0
- agentinputlab/algorithms/clarify/__init__.py +61 -0
- agentinputlab/algorithms/clarify/_structured.py +64 -0
- agentinputlab/algorithms/clarify/active_task_disambiguation.py +371 -0
- agentinputlab/algorithms/clarify/ask_or_assume/__init__.py +17 -0
- agentinputlab/algorithms/clarify/ask_or_assume/monitor.py +410 -0
- agentinputlab/algorithms/clarify/future_turns.py +379 -0
- agentinputlab/algorithms/clarify/udcs.py +255 -0
- agentinputlab/algorithms/clarify/udcs_deterministic.py +196 -0
- agentinputlab/algorithms/curate/__init__.py +65 -0
- agentinputlab/algorithms/curate/acon/__init__.py +27 -0
- agentinputlab/algorithms/curate/acon/common.py +284 -0
- agentinputlab/algorithms/curate/acon/common_support.py +136 -0
- agentinputlab/algorithms/curate/acon/history_bridge.py +309 -0
- agentinputlab/algorithms/curate/acon/observation_bridge.py +290 -0
- agentinputlab/algorithms/curate/llmlingua/__init__.py +30 -0
- agentinputlab/algorithms/curate/llmlingua/adapters.py +537 -0
- agentinputlab/algorithms/curate/llmlingua/budget.py +48 -0
- agentinputlab/algorithms/curate/llmlingua/controlled.py +175 -0
- agentinputlab/algorithms/curate/llmlingua/multilingual.py +105 -0
- agentinputlab/algorithms/curate/llmlingua/span_map.py +167 -0
- agentinputlab/algorithms/curate/recomp/__init__.py +47 -0
- agentinputlab/algorithms/curate/recomp/external.py +1129 -0
- agentinputlab/algorithms/curate/recomp/selective.py +304 -0
- agentinputlab/algorithms/decompose/__init__.py +107 -0
- agentinputlab/algorithms/decompose/decomp/__init__.py +53 -0
- agentinputlab/algorithms/decompose/decomp/common_support.py +478 -0
- agentinputlab/algorithms/decompose/decomp/planner_component.py +199 -0
- agentinputlab/algorithms/decompose/decomp/worker_bridge.py +416 -0
- agentinputlab/algorithms/decompose/llm_compiler/__init__.py +35 -0
- agentinputlab/algorithms/decompose/llm_compiler/bridge.py +520 -0
- agentinputlab/algorithms/decompose/llm_compiler/common_support.py +504 -0
- agentinputlab/algorithms/decompose/plan_and_budget/__init__.py +43 -0
- agentinputlab/algorithms/decompose/plan_and_budget/cached_soft_budget.py +362 -0
- agentinputlab/algorithms/decompose/plan_and_budget/decomposer_component.py +107 -0
- agentinputlab/algorithms/decompose/plan_and_budget/full.py +205 -0
- agentinputlab/algorithms/decompose/plan_and_budget/hard_cap.py +246 -0
- agentinputlab/algorithms/decompose/plan_and_budget/regenerated_soft_budget.py +448 -0
- agentinputlab/algorithms/decompose/plan_and_solve/__init__.py +33 -0
- agentinputlab/algorithms/decompose/plan_and_solve/plan_component.py +192 -0
- agentinputlab/algorithms/decompose/plan_and_solve/ps_prompt.py +127 -0
- agentinputlab/algorithms/decompose/self_ask/__init__.py +27 -0
- agentinputlab/algorithms/decompose/self_ask/loop.py +362 -0
- agentinputlab/algorithms/decompose/self_ask/planner_component.py +117 -0
- agentinputlab/algorithms/reformulate/__init__.py +85 -0
- agentinputlab/algorithms/reformulate/infocqr/__init__.py +40 -0
- agentinputlab/algorithms/reformulate/infocqr/cache_replay.py +362 -0
- agentinputlab/algorithms/reformulate/infocqr/external.py +675 -0
- agentinputlab/algorithms/reformulate/infocqr/student.py +189 -0
- agentinputlab/algorithms/reformulate/query2doc/__init__.py +42 -0
- agentinputlab/algorithms/reformulate/query2doc/controlled_live.py +190 -0
- agentinputlab/algorithms/reformulate/query2doc/models.py +95 -0
- agentinputlab/algorithms/reformulate/query2doc/official_cached.py +335 -0
- agentinputlab/algorithms/reformulate/query2doc/querygym_bridge.py +223 -0
- agentinputlab/algorithms/reformulate/query2doc/querygym_runtime.py +326 -0
- agentinputlab/algorithms/reformulate/reformer/__init__.py +23 -0
- agentinputlab/algorithms/reformulate/reformer/external.py +417 -0
- agentinputlab/algorithms/reformulate/rrr.py +696 -0
- agentinputlab/annotation/__init__.py +5 -0
- agentinputlab/annotation/independent.py +428 -0
- agentinputlab/annotation/server.py +233 -0
- agentinputlab/annotation/static/app.js +121 -0
- agentinputlab/annotation/static/index.html +60 -0
- agentinputlab/annotation/static/review.css +2 -0
- agentinputlab/annotation/static/review.html +10 -0
- agentinputlab/annotation/static/review.js +11 -0
- agentinputlab/annotation/static/styles.css +55 -0
- agentinputlab/annotation/store.py +444 -0
- agentinputlab/api.py +368 -0
- agentinputlab/artifacts/__init__.py +15 -0
- agentinputlab/artifacts/json_file.py +104 -0
- agentinputlab/artifacts/manifest.py +98 -0
- agentinputlab/artifacts/store.py +157 -0
- agentinputlab/backends/__init__.py +98 -0
- agentinputlab/backends/embedding/__init__.py +25 -0
- agentinputlab/backends/embedding/base.py +145 -0
- agentinputlab/backends/embedding/callable.py +75 -0
- agentinputlab/backends/embedding/replay.py +129 -0
- agentinputlab/backends/llm/__init__.py +31 -0
- agentinputlab/backends/llm/base.py +149 -0
- agentinputlab/backends/llm/callable.py +108 -0
- agentinputlab/backends/llm/decomp_completion.py +88 -0
- agentinputlab/backends/llm/final_content_stop.py +72 -0
- agentinputlab/backends/llm/gpt_oss_final_channel.py +84 -0
- agentinputlab/backends/llm/openai_compatible.py +332 -0
- agentinputlab/backends/llm/transformers.py +171 -0
- agentinputlab/backends/retrieval/__init__.py +35 -0
- agentinputlab/backends/retrieval/base.py +50 -0
- agentinputlab/backends/retrieval/dense.py +777 -0
- agentinputlab/backends/retrieval/memory.py +119 -0
- agentinputlab/backends/retrieval/sqlite_fts.py +155 -0
- agentinputlab/backends/user/__init__.py +15 -0
- agentinputlab/backends/user/base.py +66 -0
- agentinputlab/backends/user/callable.py +54 -0
- agentinputlab/backends/user/replay.py +89 -0
- agentinputlab/backends/vector.py +38 -0
- agentinputlab/benchmarks/__init__.py +246 -0
- agentinputlab/benchmarks/acquisition.py +106 -0
- agentinputlab/benchmarks/ale.py +540 -0
- agentinputlab/benchmarks/appworld_ul.py +669 -0
- agentinputlab/benchmarks/assets.py +226 -0
- agentinputlab/benchmarks/base.py +68 -0
- agentinputlab/benchmarks/beir_archive.py +235 -0
- agentinputlab/benchmarks/beir_sample.py +269 -0
- agentinputlab/benchmarks/bfcl_native.py +245 -0
- agentinputlab/benchmarks/bfcl_v3.py +607 -0
- agentinputlab/benchmarks/cache.py +218 -0
- agentinputlab/benchmarks/clariq.py +203 -0
- agentinputlab/benchmarks/data/registry.json +321 -0
- agentinputlab/benchmarks/data/smoke_assets.json +511 -0
- agentinputlab/benchmarks/data/statebench_v0_8_1_task_ids.json +475 -0
- agentinputlab/benchmarks/data/toolsandbox_165848b_scenario_names.json +1 -0
- agentinputlab/benchmarks/execution.py +1111 -0
- agentinputlab/benchmarks/interactive.py +257 -0
- agentinputlab/benchmarks/ir_query.py +204 -0
- agentinputlab/benchmarks/longbench.py +203 -0
- agentinputlab/benchmarks/paired_replay.py +479 -0
- agentinputlab/benchmarks/preprocess.py +2313 -0
- agentinputlab/benchmarks/production.py +236 -0
- agentinputlab/benchmarks/qa.py +963 -0
- agentinputlab/benchmarks/registry.py +110 -0
- agentinputlab/benchmarks/retrieval.py +459 -0
- agentinputlab/benchmarks/runtime.py +509 -0
- agentinputlab/benchmarks/statebench.py +938 -0
- agentinputlab/benchmarks/tau3.py +725 -0
- agentinputlab/benchmarks/toolsandbox.py +626 -0
- agentinputlab/benchmarks/trec_dl_sample.py +263 -0
- agentinputlab/campaign.py +654 -0
- agentinputlab/campaign_runner.py +953 -0
- agentinputlab/cli/__init__.py +6 -0
- agentinputlab/cli/main.py +933 -0
- agentinputlab/connectors/__init__.py +46 -0
- agentinputlab/connectors/knowledge/__init__.py +4 -0
- agentinputlab/connectors/tools/__init__.py +30 -0
- agentinputlab/connectors/tools/base.py +57 -0
- agentinputlab/connectors/tools/mcp.py +222 -0
- agentinputlab/connectors/tools/memory.py +41 -0
- agentinputlab/connectors/tools/openapi.py +695 -0
- agentinputlab/connectors/tools/schema.py +102 -0
- agentinputlab/contracts/__init__.py +91 -0
- agentinputlab/contracts/availability.py +24 -0
- agentinputlab/contracts/dependency.py +58 -0
- agentinputlab/contracts/enums.py +82 -0
- agentinputlab/contracts/errors.py +63 -0
- agentinputlab/contracts/evidence.py +43 -0
- agentinputlab/contracts/intent.py +110 -0
- agentinputlab/contracts/lifecycle.py +164 -0
- agentinputlab/contracts/patch.py +167 -0
- agentinputlab/contracts/serialization.py +93 -0
- agentinputlab/contracts/state.py +127 -0
- agentinputlab/contracts/trace.py +59 -0
- agentinputlab/contracts/worker.py +42 -0
- agentinputlab/core/__init__.py +7 -0
- agentinputlab/data/__init__.py +32 -0
- agentinputlab/data/checksums.py +9 -0
- agentinputlab/data/downloader.py +235 -0
- agentinputlab/data/http.py +171 -0
- agentinputlab/data/index.py +21 -0
- agentinputlab/data/overlap.py +28 -0
- agentinputlab/data/preprocess.py +32 -0
- agentinputlab/data/storage.py +57 -0
- agentinputlab/data/trec_sample.py +427 -0
- agentinputlab/evaluation/__init__.py +5 -0
- agentinputlab/evaluation/outcomes.py +32 -0
- agentinputlab/experiments/__init__.py +278 -0
- agentinputlab/experiments/analysis.py +981 -0
- agentinputlab/experiments/artifacts.py +687 -0
- agentinputlab/experiments/automatic_measurement.py +678 -0
- agentinputlab/experiments/auxiliary_matrix.py +203 -0
- agentinputlab/experiments/bindings.py +430 -0
- agentinputlab/experiments/blueprints.py +147 -0
- agentinputlab/experiments/builders/__init__.py +45 -0
- agentinputlab/experiments/builders/executable_external_payload.py +423 -0
- agentinputlab/experiments/builders/external_process_arena.py +1018 -0
- agentinputlab/experiments/builders/registry_intervention.py +463 -0
- agentinputlab/experiments/cli.py +158 -0
- agentinputlab/experiments/controls.py +340 -0
- agentinputlab/experiments/driver_guard.py +205 -0
- agentinputlab/experiments/drivers/__init__.py +89 -0
- agentinputlab/experiments/drivers/external_arena.py +2908 -0
- agentinputlab/experiments/drivers/method_process.py +662 -0
- agentinputlab/experiments/drivers/parity_process.py +1484 -0
- agentinputlab/experiments/drivers/static_production.py +1574 -0
- agentinputlab/experiments/executor.py +448 -0
- agentinputlab/experiments/loader.py +605 -0
- agentinputlab/experiments/measurement.py +675 -0
- agentinputlab/experiments/paper_analysis.py +1818 -0
- agentinputlab/experiments/parity_identity.py +605 -0
- agentinputlab/experiments/plan.py +277 -0
- agentinputlab/experiments/production_builders.py +3739 -0
- agentinputlab/experiments/readiness.py +432 -0
- agentinputlab/experiments/schema.py +514 -0
- agentinputlab/experiments/secrets.py +177 -0
- agentinputlab/experiments/stateful_analysis.py +1738 -0
- agentinputlab/experiments/transfer_analysis.py +1316 -0
- agentinputlab/experiments/unseen_analysis.py +1025 -0
- agentinputlab/integrations/__init__.py +1 -0
- agentinputlab/integrations/action_space/__init__.py +1 -0
- agentinputlab/integrations/external_workers/__init__.py +76 -0
- agentinputlab/integrations/external_workers/ace.py +431 -0
- agentinputlab/integrations/external_workers/base.py +181 -0
- agentinputlab/integrations/external_workers/decomp_live.py +249 -0
- agentinputlab/integrations/external_workers/decomp_planner.py +30 -0
- agentinputlab/integrations/external_workers/infocqr_student.py +280 -0
- agentinputlab/integrations/external_workers/ircot.py +576 -0
- agentinputlab/integrations/external_workers/llmcompiler_live.py +360 -0
- agentinputlab/integrations/external_workers/longllmlingua.py +162 -0
- agentinputlab/integrations/external_workers/method.py +314 -0
- agentinputlab/integrations/external_workers/process.py +678 -0
- agentinputlab/integrations/external_workers/supervisor.py +1071 -0
- agentinputlab/integrations/full_architecture/__init__.py +1 -0
- agentinputlab/integrations/full_architecture/hyde.py +212 -0
- agentinputlab/integrations/full_architecture/plan_and_budget.py +188 -0
- agentinputlab/integrations/live_history.py +222 -0
- agentinputlab/integrations/prompt_optimization/__init__.py +1 -0
- agentinputlab/integrations/training/__init__.py +1 -0
- agentinputlab/metrics/__init__.py +50 -0
- agentinputlab/metrics/catalog.py +313 -0
- agentinputlab/metrics/harm.py +95 -0
- agentinputlab/metrics/paired.py +40 -0
- agentinputlab/metrics/qa.py +76 -0
- agentinputlab/metrics/text.py +33 -0
- agentinputlab/metrics/third_party.py +161 -0
- agentinputlab/models/__init__.py +4 -0
- agentinputlab/observability/__init__.py +56 -0
- agentinputlab/observability/budget.py +316 -0
- agentinputlab/observability/instrumentation.py +754 -0
- agentinputlab/observability/models.py +403 -0
- agentinputlab/observability/monitor.py +380 -0
- agentinputlab/optimizers/__init__.py +1 -0
- agentinputlab/optimizers/clarify/__init__.py +12 -0
- agentinputlab/optimizers/context/__init__.py +22 -0
- agentinputlab/optimizers/decompose/__init__.py +64 -0
- agentinputlab/optimizers/evidence/__init__.py +22 -0
- agentinputlab/optimizers/rewrite/__init__.py +30 -0
- agentinputlab/parity/__init__.py +5 -0
- agentinputlab/parity/base.py +206 -0
- agentinputlab/production_campaign.py +763 -0
- agentinputlab/py.typed +1 -0
- agentinputlab/recipes/__init__.py +333 -0
- agentinputlab/recipes/ace.py +418 -0
- agentinputlab/recipes/ace_bfcl.py +273 -0
- agentinputlab/recipes/ace_common_support.py +169 -0
- agentinputlab/recipes/ace_native_plan.py +322 -0
- agentinputlab/recipes/ace_online.py +711 -0
- agentinputlab/recipes/ace_retrieval.py +330 -0
- agentinputlab/recipes/ace_statebench.py +382 -0
- agentinputlab/recipes/ace_tau.py +463 -0
- agentinputlab/recipes/ace_toolsandbox.py +432 -0
- agentinputlab/recipes/acon_guideline.py +22 -0
- agentinputlab/recipes/adaptive_rag.py +822 -0
- agentinputlab/recipes/llmlingua2_inference.py +146 -0
- agentinputlab/recipes/llmlingua2_training.py +796 -0
- agentinputlab/recipes/mce.py +1486 -0
- agentinputlab/recipes/mce_final.py +335 -0
- agentinputlab/recipes/mce_text_fit.py +499 -0
- agentinputlab/recipes/mce_text_only.py +298 -0
- agentinputlab/recipes/qrag.py +729 -0
- agentinputlab/recipes/qrag_inference.py +364 -0
- agentinputlab/recipes/r2ag_features.py +236 -0
- agentinputlab/recipes/r2ag_inference.py +503 -0
- agentinputlab/recipes/r2ag_training.py +948 -0
- agentinputlab/recipes/recomp_abstractive.py +592 -0
- agentinputlab/recipes/recomp_extractive.py +525 -0
- agentinputlab/recipes/reformer.py +17 -0
- agentinputlab/recipes/rqrag.py +1516 -0
- agentinputlab/recipes/rqrag_common_support.py +193 -0
- agentinputlab/recipes/rqrag_completion.py +147 -0
- agentinputlab/recipes/skillopt.py +462 -0
- agentinputlab/recipes/skillopt_common_support.py +154 -0
- agentinputlab/recipes/skillopt_environment.py +165 -0
- agentinputlab/recipes/skillopt_environment_cli.py +5 -0
- agentinputlab/recipes/skillopt_retrieval.py +188 -0
- agentinputlab/recipes/smartsearch.py +897 -0
- agentinputlab/recipes/smartsearch_curriculum.py +283 -0
- agentinputlab/recipes/smartsearch_grpo_contracts.py +58 -0
- agentinputlab/recipes/smartsearch_grpo_data.py +314 -0
- agentinputlab/recipes/smartsearch_grpo_meter.py +324 -0
- agentinputlab/recipes/smartsearch_grpo_prefix.py +144 -0
- agentinputlab/recipes/smartsearch_grpo_rollout.py +119 -0
- agentinputlab/recipes/smartsearch_grpo_tools.py +364 -0
- agentinputlab/recipes/smartsearch_grpo_training.py +305 -0
- agentinputlab/recipes/smartsearch_grpo_transport.py +248 -0
- agentinputlab/recipes/smartsearch_grpo_worker.py +364 -0
- agentinputlab/recipes/smartsearch_inference.py +524 -0
- agentinputlab/recipes/smartsearch_native_data.py +172 -0
- agentinputlab/recipes/smartsearch_policy.py +616 -0
- agentinputlab/recipes/smartsearch_policy_worker.py +9 -0
- agentinputlab/recipes/smartsearch_sampling.py +232 -0
- agentinputlab/recipes/smartsearch_teacher.py +203 -0
- agentinputlab/recipes/smartsearch_training.py +265 -0
- agentinputlab/registry/__init__.py +46 -0
- agentinputlab/registry/beta.py +727 -0
- agentinputlab/registry/data/algorithms.json +1959 -0
- agentinputlab/registry/data/auxiliary_method_profiles.json +34 -0
- agentinputlab/registry/loader.py +100 -0
- agentinputlab/registry/result_manifest.py +184 -0
- agentinputlab/registry/runtime.py +195 -0
- agentinputlab/registry/schema.py +449 -0
- agentinputlab/runner/__init__.py +30 -0
- agentinputlab/runner/balance.py +248 -0
- agentinputlab/runner/cache.py +135 -0
- agentinputlab/runner/composite.py +130 -0
- agentinputlab/runner/engine.py +285 -0
- agentinputlab/runner/runtime_guard.py +268 -0
- agentinputlab/runner/worker.py +80 -0
- agentinputlab/runtime_bootstrap.py +288 -0
- agentinputlab/selectors/__init__.py +196 -0
- agentinputlab/selectors/advanced.py +1514 -0
- agentinputlab/selectors/artifacts.py +1087 -0
- agentinputlab/selectors/base.py +112 -0
- agentinputlab/selectors/campaigns.py +1893 -0
- agentinputlab/selectors/catalog.py +86 -0
- agentinputlab/selectors/discovery.py +1860 -0
- agentinputlab/selectors/evaluation.py +1348 -0
- agentinputlab/selectors/features.py +383 -0
- agentinputlab/selectors/learned.py +502 -0
- agentinputlab/selectors/no_op.py +28 -0
- agentinputlab/selectors/outcome_table.py +475 -0
- agentinputlab/selectors/producer.py +853 -0
- agentinputlab/selectors/rules.py +109 -0
- agentinputlab/selectors/runtime.py +420 -0
- agentinputlab/studies/__init__.py +16 -0
- agentinputlab/studies/design.py +165 -0
- agentinputlab/studies/paired.py +322 -0
- agentinputlab/studio/__init__.py +6 -0
- agentinputlab/studio/campaigns.py +819 -0
- agentinputlab/studio/engine.py +1408 -0
- agentinputlab/studio/model_backends.py +425 -0
- agentinputlab/studio/prepared.py +410 -0
- agentinputlab/studio/server.py +613 -0
- agentinputlab/studio/static/app.js +397 -0
- agentinputlab/studio/static/campaigns.html +175 -0
- agentinputlab/studio/static/campaigns.js +426 -0
- agentinputlab/studio/static/index.html +192 -0
- agentinputlab/studio/static/result.html +103 -0
- agentinputlab/studio/static/result.js +273 -0
- agentinputlab/studio/static/styles.css +467 -0
- agentinputlab-0.1.0a1.data/data/share/agentinputlab/CITATION.cff +22 -0
- agentinputlab-0.1.0a1.dist-info/METADATA +392 -0
- agentinputlab-0.1.0a1.dist-info/RECORD +469 -0
- agentinputlab-0.1.0a1.dist-info/WHEEL +5 -0
- agentinputlab-0.1.0a1.dist-info/entry_points.txt +6 -0
- agentinputlab-0.1.0a1.dist-info/licenses/LICENSE +21 -0
- agentinputlab-0.1.0a1.dist-info/licenses/NOTICE +31 -0
- agentinputlab-0.1.0a1.dist-info/licenses/THIRD_PARTY_NOTICES.md +94 -0
- agentinputlab-0.1.0a1.dist-info/top_level.txt +2 -0
- workers/README.md +94 -0
- workers/ace/README.md +261 -0
- workers/ace/__init__.py +1 -0
- workers/ace/compatibility_manifest.json +39 -0
- workers/ace/driver.py +1682 -0
- workers/acon/README.md +215 -0
- workers/acon/__init__.py +5 -0
- workers/acon/compatibility_manifest.json +93 -0
- workers/acon/driver.py +1859 -0
- workers/acon/fitted.py +395 -0
- workers/acon/guideline.py +470 -0
- workers/acon/guideline_source_manifest.json +20 -0
- workers/adaptive_rag/README.md +96 -0
- workers/adaptive_rag/__init__.py +15 -0
- workers/adaptive_rag/compatibility_manifest.json +61 -0
- workers/adaptive_rag/driver.py +1470 -0
- workers/adaptive_rag/fixture_runtime.py +163 -0
- workers/adaptive_rag/runtime.py +252 -0
- workers/ask_or_assume/README.md +124 -0
- workers/ask_or_assume/__init__.py +1 -0
- workers/ask_or_assume/compatibility_manifest.json +36 -0
- workers/ask_or_assume/driver.py +1227 -0
- workers/decomp/README.md +133 -0
- workers/decomp/UPSTREAM_LICENSE.Apache-2.0.txt +201 -0
- workers/decomp/__init__.py +5 -0
- workers/decomp/compatibility_manifest.json +205 -0
- workers/decomp/driver.py +1015 -0
- workers/decomp/live.py +137 -0
- workers/decomp/runtime.py +231 -0
- workers/infocqr/README.md +106 -0
- workers/infocqr/__init__.py +1 -0
- workers/infocqr/compatibility_manifest.json +84 -0
- workers/infocqr/driver.py +1766 -0
- workers/ircot/README.md +167 -0
- workers/ircot/__init__.py +7 -0
- workers/ircot/compatibility_manifest.json +121 -0
- workers/ircot/controlled.py +457 -0
- workers/ircot/driver.py +1373 -0
- workers/ircot/fixture_bindings.json +39 -0
- workers/ircot/fixture_config.json +48 -0
- workers/ircot/fixture_prompt.txt +2 -0
- workers/ircot/native_qa.py +398 -0
- workers/ircot/qa_compatibility_manifest.json +57 -0
- workers/ircot/runtime.py +97 -0
- workers/llmcompiler/README.md +160 -0
- workers/llmcompiler/__init__.py +1 -0
- workers/llmcompiler/compatibility_manifest.json +45 -0
- workers/llmcompiler/driver.py +1514 -0
- workers/llmcompiler/export_prompts.py +74 -0
- workers/llmcompiler/live.py +174 -0
- workers/llmcompiler/patch_manifest.json +147 -0
- workers/mce/README.md +198 -0
- workers/mce/__init__.py +29 -0
- workers/mce/compatibility_manifest.json +115 -0
- workers/mce/driver.py +2585 -0
- workers/mce/final_eval.py +173 -0
- workers/official_arenas/README.md +25 -0
- workers/official_arenas/__init__.py +1 -0
- workers/official_arenas/capture_records.py +110 -0
- workers/official_arenas/driver.py +619 -0
- workers/official_arenas/protocol.py +334 -0
- workers/official_arenas/providers/__init__.py +1 -0
- workers/official_arenas/providers/_live_history.py +228 -0
- workers/official_arenas/providers/_message_compat.py +77 -0
- workers/official_arenas/providers/appworld_ul.py +196 -0
- workers/official_arenas/providers/fixture.py +112 -0
- workers/official_arenas/providers/statebench.py +960 -0
- workers/official_arenas/providers/tau3.py +1672 -0
- workers/official_arenas/providers/tau_retail.py +586 -0
- workers/official_arenas/providers/toolsandbox.py +1321 -0
- workers/official_arenas/providers/tooltalk.py +699 -0
- workers/official_arenas/retail_capture.py +188 -0
- workers/official_arenas/retail_driver.py +275 -0
- workers/qrag/README.md +172 -0
- workers/qrag/__init__.py +1 -0
- workers/qrag/compatibility_manifest.json +64 -0
- workers/qrag/driver.py +673 -0
- workers/r2ag/README.md +154 -0
- workers/r2ag/__init__.py +5 -0
- workers/r2ag/compatibility_manifest.json +55 -0
- workers/r2ag/driver.py +1287 -0
- workers/r2ag/feature_schema.json +8 -0
- workers/r2ag/runtime.py +589 -0
- workers/recomp/README.md +120 -0
- workers/recomp/__init__.py +1 -0
- workers/recomp/compatibility_manifest.json +43 -0
- workers/recomp/driver.py +1653 -0
- workers/reformer/README.md +125 -0
- workers/reformer/__init__.py +1 -0
- workers/reformer/compatibility_manifest.json +68 -0
- workers/reformer/driver.py +1459 -0
- workers/reformer/induction.py +457 -0
- workers/rrr/README.md +126 -0
- workers/rrr/__init__.py +1 -0
- workers/rrr/compatibility_manifest.json +57 -0
- workers/rrr/driver.py +1133 -0
- workers/smartsearch/README.md +331 -0
- workers/smartsearch/__init__.py +1 -0
- workers/smartsearch/compatibility_manifest.json +41 -0
- workers/smartsearch/driver.py +1643 -0
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
"""Shared, auditable transport for paper-specific external workers.
|
|
2
|
+
|
|
3
|
+
This module standardizes only the transport envelope, dependency fingerprints,
|
|
4
|
+
usage accounting, and identity checks. Method modules still validate the
|
|
5
|
+
original algorithm trajectory and materialize its exact intervention.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
import math
|
|
11
|
+
from collections.abc import Mapping, Sequence
|
|
12
|
+
from dataclasses import dataclass, field
|
|
13
|
+
from typing import Any
|
|
14
|
+
|
|
15
|
+
from agentinputlab.contracts import (
|
|
16
|
+
AlgorithmOutputError,
|
|
17
|
+
ExternalDependencyError,
|
|
18
|
+
InterventionContext,
|
|
19
|
+
ValidationError,
|
|
20
|
+
)
|
|
21
|
+
from agentinputlab.contracts.serialization import content_hash, freeze_mapping, to_jsonable
|
|
22
|
+
from agentinputlab.observability import ResourceUsage, normalize_external_usage
|
|
23
|
+
|
|
24
|
+
from .base import WorkerClient
|
|
25
|
+
|
|
26
|
+
_RESERVATION_FIELDS = frozenset({"model_calls", "retrieval_calls", "tool_calls", "embedding_calls"})
|
|
27
|
+
_ALGORITHM_OUTPUT_FAILURE_CODES = frozenset(
|
|
28
|
+
{
|
|
29
|
+
"BACKEND_OUTPUT_INVALID",
|
|
30
|
+
"INVALID_JSON",
|
|
31
|
+
"MODEL_RESPONSE_INVALID",
|
|
32
|
+
"PATTERN_SELECTION_OUTSIDE_LIBRARY",
|
|
33
|
+
"QUERY_PARSE_FAILURE",
|
|
34
|
+
"TEXT_INVALID",
|
|
35
|
+
"UPSTREAM_OUTPUT_INVALID",
|
|
36
|
+
}
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
@dataclass(frozen=True, slots=True)
|
|
41
|
+
class MethodWorkerRequest:
|
|
42
|
+
"""Versioned request envelope used by one pinned upstream integration."""
|
|
43
|
+
|
|
44
|
+
method_id: str
|
|
45
|
+
release_id: str
|
|
46
|
+
upstream_commit: str
|
|
47
|
+
state_hash: str
|
|
48
|
+
payload: Mapping[str, Any]
|
|
49
|
+
dependency_fingerprints: Mapping[str, Any] = field(default_factory=dict)
|
|
50
|
+
minimum_reservation: Mapping[str, int] = field(default_factory=dict)
|
|
51
|
+
protocol_version: str = "agentinputlab.method-worker.v1"
|
|
52
|
+
request_id: str = field(init=False)
|
|
53
|
+
|
|
54
|
+
def __post_init__(self) -> None:
|
|
55
|
+
for name in (
|
|
56
|
+
"method_id",
|
|
57
|
+
"release_id",
|
|
58
|
+
"upstream_commit",
|
|
59
|
+
"state_hash",
|
|
60
|
+
"protocol_version",
|
|
61
|
+
):
|
|
62
|
+
value = getattr(self, name)
|
|
63
|
+
if not isinstance(value, str) or not value.strip():
|
|
64
|
+
raise ValidationError(f"worker request {name} must be a non-empty string")
|
|
65
|
+
if not isinstance(self.payload, Mapping):
|
|
66
|
+
raise ValidationError("worker request payload must be a mapping")
|
|
67
|
+
if not isinstance(self.dependency_fingerprints, Mapping):
|
|
68
|
+
raise ValidationError("worker request dependency_fingerprints must be a mapping")
|
|
69
|
+
try:
|
|
70
|
+
payload = freeze_mapping(self.payload)
|
|
71
|
+
dependencies = freeze_mapping(self.dependency_fingerprints)
|
|
72
|
+
except TypeError as exc:
|
|
73
|
+
raise ValidationError(f"worker request envelope is not canonical: {exc}") from exc
|
|
74
|
+
reservation = _validate_reservation(self.minimum_reservation)
|
|
75
|
+
object.__setattr__(self, "payload", payload)
|
|
76
|
+
object.__setattr__(self, "dependency_fingerprints", dependencies)
|
|
77
|
+
object.__setattr__(self, "minimum_reservation", reservation)
|
|
78
|
+
identity = {
|
|
79
|
+
"method_id": self.method_id,
|
|
80
|
+
"release_id": self.release_id,
|
|
81
|
+
"upstream_commit": self.upstream_commit,
|
|
82
|
+
"state_hash": self.state_hash,
|
|
83
|
+
"payload": payload,
|
|
84
|
+
"dependency_fingerprints": dependencies,
|
|
85
|
+
"minimum_reservation": reservation,
|
|
86
|
+
"protocol_version": self.protocol_version,
|
|
87
|
+
}
|
|
88
|
+
object.__setattr__(self, "request_id", content_hash(identity))
|
|
89
|
+
|
|
90
|
+
def as_dict(self) -> dict[str, Any]:
|
|
91
|
+
return to_jsonable(self)
|
|
92
|
+
|
|
93
|
+
def external_reservation(self) -> Mapping[str, int]:
|
|
94
|
+
return self.minimum_reservation
|
|
95
|
+
|
|
96
|
+
def raise_for_external_status(self, result: object) -> None:
|
|
97
|
+
if not isinstance(result, Mapping):
|
|
98
|
+
return
|
|
99
|
+
if str(result.get("status", "")) == "ok":
|
|
100
|
+
return
|
|
101
|
+
code = str(result.get("failure_code", "WORKER_FAILURE"))
|
|
102
|
+
if code in _ALGORITHM_OUTPUT_FAILURE_CODES:
|
|
103
|
+
raise AlgorithmOutputError(f"{self.release_id} worker failed with {code}")
|
|
104
|
+
raise ExternalDependencyError(f"{self.release_id} worker failed with {code}")
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
@dataclass(frozen=True, slots=True)
|
|
108
|
+
class MethodWorkerResponse:
|
|
109
|
+
"""Identity-checked response envelope with normalized resource usage."""
|
|
110
|
+
|
|
111
|
+
request_id: str
|
|
112
|
+
upstream_commit: str
|
|
113
|
+
protocol_version: str
|
|
114
|
+
payload: Mapping[str, Any]
|
|
115
|
+
usage: ResourceUsage
|
|
116
|
+
|
|
117
|
+
def __post_init__(self) -> None:
|
|
118
|
+
for name in ("request_id", "upstream_commit", "protocol_version"):
|
|
119
|
+
value = getattr(self, name)
|
|
120
|
+
if not isinstance(value, str) or not value.strip():
|
|
121
|
+
raise ValidationError(f"worker response {name} must be a non-empty string")
|
|
122
|
+
if not isinstance(self.payload, Mapping):
|
|
123
|
+
raise ValidationError("worker response payload must be a mapping")
|
|
124
|
+
if not isinstance(self.usage, ResourceUsage):
|
|
125
|
+
raise ValidationError("worker response usage must be ResourceUsage")
|
|
126
|
+
try:
|
|
127
|
+
object.__setattr__(self, "payload", freeze_mapping(self.payload))
|
|
128
|
+
except TypeError as exc:
|
|
129
|
+
raise ValidationError(f"worker response payload is not canonical: {exc}") from exc
|
|
130
|
+
|
|
131
|
+
@classmethod
|
|
132
|
+
def from_mapping(
|
|
133
|
+
cls,
|
|
134
|
+
value: Mapping[str, Any],
|
|
135
|
+
*,
|
|
136
|
+
request: MethodWorkerRequest,
|
|
137
|
+
) -> MethodWorkerResponse:
|
|
138
|
+
if str(value.get("status", "")) != "ok":
|
|
139
|
+
code = str(value.get("failure_code", "WORKER_FAILURE"))
|
|
140
|
+
raise ExternalDependencyError(f"{request.release_id} worker failed with {code}")
|
|
141
|
+
request_id = required_text(value, "request_id", label="worker response")
|
|
142
|
+
if request_id != request.request_id:
|
|
143
|
+
raise AlgorithmOutputError("external worker response request_id mismatch")
|
|
144
|
+
upstream_commit = required_text(value, "upstream_commit", label="worker response")
|
|
145
|
+
if upstream_commit != request.upstream_commit:
|
|
146
|
+
raise AlgorithmOutputError("external worker response upstream revision mismatch")
|
|
147
|
+
protocol_version = required_text(value, "protocol_version", label="worker response")
|
|
148
|
+
if protocol_version != request.protocol_version:
|
|
149
|
+
raise AlgorithmOutputError("external worker response protocol version mismatch")
|
|
150
|
+
payload = value.get("payload")
|
|
151
|
+
if not isinstance(payload, Mapping):
|
|
152
|
+
raise AlgorithmOutputError("external worker response payload must be a mapping")
|
|
153
|
+
return cls(
|
|
154
|
+
request_id=request_id,
|
|
155
|
+
upstream_commit=upstream_commit,
|
|
156
|
+
protocol_version=protocol_version,
|
|
157
|
+
payload=dict(payload),
|
|
158
|
+
usage=normalize_external_usage(value.get("usage")),
|
|
159
|
+
)
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
def resolve_worker(
|
|
163
|
+
configured: WorkerClient | None,
|
|
164
|
+
context: InterventionContext,
|
|
165
|
+
*,
|
|
166
|
+
label: str,
|
|
167
|
+
) -> WorkerClient:
|
|
168
|
+
"""Resolve one explicit worker without permitting hidden ambiguity."""
|
|
169
|
+
|
|
170
|
+
injected = context.external_runtime
|
|
171
|
+
if injected is not None and configured is not None and injected is not configured:
|
|
172
|
+
raise ValidationError(
|
|
173
|
+
f"{label} worker is ambiguous; use either the constructor or "
|
|
174
|
+
"InterventionContext.external_runtime"
|
|
175
|
+
)
|
|
176
|
+
worker = injected if injected is not None else configured
|
|
177
|
+
if worker is None:
|
|
178
|
+
raise ExternalDependencyError(f"{label} requires a pinned external WorkerClient")
|
|
179
|
+
if not isinstance(worker, WorkerClient):
|
|
180
|
+
raise ValidationError(f"{label} external runtime does not implement WorkerClient")
|
|
181
|
+
worker_fingerprint(worker, label=label)
|
|
182
|
+
return worker
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
def call_worker(
|
|
186
|
+
worker: WorkerClient,
|
|
187
|
+
request: MethodWorkerRequest,
|
|
188
|
+
) -> MethodWorkerResponse:
|
|
189
|
+
controlled = getattr(worker, "call_controlled", None)
|
|
190
|
+
raw = controlled(request) if callable(controlled) else worker.call(request.as_dict())
|
|
191
|
+
if not isinstance(raw, Mapping):
|
|
192
|
+
raise AlgorithmOutputError("external worker returned a non-mapping response")
|
|
193
|
+
return MethodWorkerResponse.from_mapping(raw, request=request)
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
def worker_fingerprint(worker: WorkerClient, *, label: str) -> Mapping[str, Any]:
|
|
197
|
+
identity = worker.fingerprint()
|
|
198
|
+
if not isinstance(identity, Mapping) or not identity:
|
|
199
|
+
raise ValidationError(f"{label} worker fingerprint must be a non-empty mapping")
|
|
200
|
+
try:
|
|
201
|
+
return freeze_mapping(identity)
|
|
202
|
+
except TypeError as exc:
|
|
203
|
+
raise ValidationError(f"{label} worker fingerprint is not canonical: {exc}") from exc
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
def dependency_fingerprint(value: Any, *, label: str, required: bool = False) -> Mapping[str, Any]:
|
|
207
|
+
if value is None:
|
|
208
|
+
if required:
|
|
209
|
+
raise ExternalDependencyError(f"{label} dependency is required")
|
|
210
|
+
return {}
|
|
211
|
+
fingerprint = getattr(value, "fingerprint", None)
|
|
212
|
+
if not callable(fingerprint):
|
|
213
|
+
raise ExternalDependencyError(f"{label} dependency must expose fingerprint()")
|
|
214
|
+
identity = fingerprint()
|
|
215
|
+
if not isinstance(identity, Mapping) or not identity:
|
|
216
|
+
raise ValidationError(f"{label} fingerprint must be a non-empty mapping")
|
|
217
|
+
try:
|
|
218
|
+
return freeze_mapping(identity)
|
|
219
|
+
except TypeError as exc:
|
|
220
|
+
raise ValidationError(f"{label} fingerprint is not canonical: {exc}") from exc
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
def required_text(value: Mapping[str, Any], key: str, *, label: str) -> str:
|
|
224
|
+
result = value.get(key)
|
|
225
|
+
if not isinstance(result, str) or not result.strip():
|
|
226
|
+
raise AlgorithmOutputError(f"{label} requires non-empty {key}")
|
|
227
|
+
return result
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
def optional_text(value: Mapping[str, Any], key: str, *, label: str) -> str:
|
|
231
|
+
result = value.get(key, "")
|
|
232
|
+
if not isinstance(result, str):
|
|
233
|
+
raise AlgorithmOutputError(f"{label} {key} must be text")
|
|
234
|
+
return result
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
def string_tuple(
|
|
238
|
+
value: Any,
|
|
239
|
+
*,
|
|
240
|
+
label: str,
|
|
241
|
+
allow_empty: bool = True,
|
|
242
|
+
unique: bool = False,
|
|
243
|
+
) -> tuple[str, ...]:
|
|
244
|
+
if isinstance(value, (str, bytes)) or not isinstance(value, Sequence):
|
|
245
|
+
raise AlgorithmOutputError(f"{label} must be a sequence of strings")
|
|
246
|
+
result = tuple(value)
|
|
247
|
+
if not all(isinstance(item, str) and item.strip() for item in result):
|
|
248
|
+
raise AlgorithmOutputError(f"{label} must contain non-empty strings")
|
|
249
|
+
if not allow_empty and not result:
|
|
250
|
+
raise AlgorithmOutputError(f"{label} must not be empty")
|
|
251
|
+
if unique and len(result) != len(set(result)):
|
|
252
|
+
raise AlgorithmOutputError(f"{label} must not contain duplicates")
|
|
253
|
+
return result
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
def mapping_sequence(value: Any, *, label: str) -> tuple[Mapping[str, Any], ...]:
|
|
257
|
+
if isinstance(value, (str, bytes)) or not isinstance(value, Sequence):
|
|
258
|
+
raise AlgorithmOutputError(f"{label} must be a sequence")
|
|
259
|
+
result: list[Mapping[str, Any]] = []
|
|
260
|
+
for index, item in enumerate(value):
|
|
261
|
+
if not isinstance(item, Mapping):
|
|
262
|
+
raise AlgorithmOutputError(f"{label}[{index}] must be a mapping")
|
|
263
|
+
result.append(item)
|
|
264
|
+
return tuple(result)
|
|
265
|
+
|
|
266
|
+
|
|
267
|
+
def finite_number(value: Any, *, label: str) -> float:
|
|
268
|
+
if isinstance(value, bool) or not isinstance(value, (int, float)):
|
|
269
|
+
raise AlgorithmOutputError(f"{label} must be numeric")
|
|
270
|
+
try:
|
|
271
|
+
result = float(value)
|
|
272
|
+
except OverflowError as exc:
|
|
273
|
+
raise AlgorithmOutputError(f"{label} must be finite") from exc
|
|
274
|
+
if not math.isfinite(result):
|
|
275
|
+
raise AlgorithmOutputError(f"{label} must be finite")
|
|
276
|
+
return result
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
def nonnegative_integer(value: Any, *, label: str) -> int:
|
|
280
|
+
if isinstance(value, bool) or not isinstance(value, int) or value < 0:
|
|
281
|
+
raise AlgorithmOutputError(f"{label} must be a non-negative integer")
|
|
282
|
+
return value
|
|
283
|
+
|
|
284
|
+
|
|
285
|
+
def _validate_reservation(value: Mapping[str, int]) -> Mapping[str, int]:
|
|
286
|
+
if not isinstance(value, Mapping):
|
|
287
|
+
raise ValidationError("worker minimum_reservation must be a mapping")
|
|
288
|
+
unknown = set(value) - _RESERVATION_FIELDS
|
|
289
|
+
if unknown:
|
|
290
|
+
raise ValidationError(
|
|
291
|
+
"worker minimum_reservation contains unsupported fields: " + ", ".join(sorted(unknown))
|
|
292
|
+
)
|
|
293
|
+
normalized: dict[str, int] = {}
|
|
294
|
+
for key, amount in value.items():
|
|
295
|
+
if isinstance(amount, bool) or not isinstance(amount, int) or amount < 0:
|
|
296
|
+
raise ValidationError(f"worker reservation {key} must be a non-negative integer")
|
|
297
|
+
normalized[key] = amount
|
|
298
|
+
return freeze_mapping(normalized) # type: ignore[return-value]
|
|
299
|
+
|
|
300
|
+
|
|
301
|
+
__all__ = [
|
|
302
|
+
"MethodWorkerRequest",
|
|
303
|
+
"MethodWorkerResponse",
|
|
304
|
+
"call_worker",
|
|
305
|
+
"dependency_fingerprint",
|
|
306
|
+
"finite_number",
|
|
307
|
+
"mapping_sequence",
|
|
308
|
+
"nonnegative_integer",
|
|
309
|
+
"optional_text",
|
|
310
|
+
"required_text",
|
|
311
|
+
"resolve_worker",
|
|
312
|
+
"string_tuple",
|
|
313
|
+
"worker_fingerprint",
|
|
314
|
+
]
|