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,246 @@
|
|
|
1
|
+
"""Budget-enforced P&B extension: observed subproblem calls and final synthesis.
|
|
2
|
+
|
|
3
|
+
This is a controlled extension, not the native one-call soft-word solver.
|
|
4
|
+
"""
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
import math
|
|
8
|
+
from collections.abc import Mapping, Sequence
|
|
9
|
+
from dataclasses import replace
|
|
10
|
+
from types import MappingProxyType
|
|
11
|
+
|
|
12
|
+
from agentinputlab.backends.llm import GenerationRequest, LLMBackend, ModelCapability
|
|
13
|
+
from agentinputlab.contracts import (
|
|
14
|
+
AlgorithmOutputError,
|
|
15
|
+
ArtifactError,
|
|
16
|
+
BudgetExceededError,
|
|
17
|
+
CapabilityError,
|
|
18
|
+
CompositeResult,
|
|
19
|
+
ExecutionTrace,
|
|
20
|
+
FrozenAgentState,
|
|
21
|
+
InterventionContext,
|
|
22
|
+
SemanticFamily,
|
|
23
|
+
TraceEvent,
|
|
24
|
+
TracePhase,
|
|
25
|
+
ValidationError,
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
from .cached_soft_budget import (
|
|
29
|
+
P_AND_B_UPSTREAM_REVISION,
|
|
30
|
+
CachedPlanBudgetRecord,
|
|
31
|
+
DecaySchedule,
|
|
32
|
+
PlanAndBudgetCache,
|
|
33
|
+
_schedule_weights,
|
|
34
|
+
allocate_tokens,
|
|
35
|
+
)
|
|
36
|
+
from .regenerated_soft_budget import PlanAndBudgetRegeneratedSoftBudget
|
|
37
|
+
|
|
38
|
+
PAB_HARD_CAP_RELEASE = "plan.plan_and_budget.hard_cap_extension"
|
|
39
|
+
PAB_HARD_CAP_PROTOCOL = "agentinputlab.pab.credit_weighted_decode_caps.v1"
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def allocate_hard_token_caps(credits: Sequence[float], total_tokens: int,
|
|
43
|
+
per_step_cap: int = 512,
|
|
44
|
+
schedule: str | DecaySchedule = DecaySchedule.CONSTANT) -> tuple[int, ...]:
|
|
45
|
+
"""Minimum one/step, then weighted extras, redistributing saturation only.
|
|
46
|
+
|
|
47
|
+
Zero-credit steps keep their one-token minimum. If every positive-credit
|
|
48
|
+
step saturates, unused allocation remains unused rather than inventing weight.
|
|
49
|
+
This deterministic extension uses source-index ties, not NumPy tie parity.
|
|
50
|
+
"""
|
|
51
|
+
if (type(total_tokens) is not int or total_tokens < 0
|
|
52
|
+
or type(per_step_cap) is not int or per_step_cap < 1):
|
|
53
|
+
raise ValidationError("hard token pool/cap must be nonnegative/positive integers")
|
|
54
|
+
if isinstance(credits, (str, bytes)):
|
|
55
|
+
raise ValidationError("hard allocation requires a credit sequence")
|
|
56
|
+
values = tuple(credits)
|
|
57
|
+
if (not values or any(type(v) not in (int, float) or not math.isfinite(v) or v < 0 for v in values)
|
|
58
|
+
or not math.isfinite(sum(values)) or sum(values) <= 0):
|
|
59
|
+
raise ValidationError("hard allocation requires finite nonnegative credits with positive mass")
|
|
60
|
+
decay = DecaySchedule.parse(schedule)
|
|
61
|
+
weights = tuple(v*w for v,w in zip(values, _schedule_weights(decay,len(values)),strict=True))
|
|
62
|
+
if total_tokens < len(values):
|
|
63
|
+
raise BudgetExceededError("hard allocation needs at least one output token per subproblem")
|
|
64
|
+
caps = [1]*len(values)
|
|
65
|
+
remaining = min(total_tokens,len(values)*per_step_cap)-len(values)
|
|
66
|
+
active = [i for i,w in enumerate(weights) if w > 0 and caps[i] < per_step_cap]
|
|
67
|
+
while remaining and active:
|
|
68
|
+
additions = allocate_tokens(tuple(weights[i] for i in active),remaining)
|
|
69
|
+
spent = 0
|
|
70
|
+
for i, proposed in zip(active,additions,strict=True):
|
|
71
|
+
granted = min(proposed,per_step_cap-caps[i])
|
|
72
|
+
caps[i] += granted
|
|
73
|
+
spent += granted
|
|
74
|
+
assert spent > 0
|
|
75
|
+
remaining -= spent
|
|
76
|
+
active = [i for i in active if caps[i] < per_step_cap]
|
|
77
|
+
return tuple(caps)
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
class _HardCapPreparation(PlanAndBudgetRegeneratedSoftBudget):
|
|
81
|
+
# Original preparation prompts/parser; distinguish the new execution identity.
|
|
82
|
+
release_id = PAB_HARD_CAP_RELEASE
|
|
83
|
+
|
|
84
|
+
@staticmethod
|
|
85
|
+
def _backend(context):
|
|
86
|
+
backend = PlanAndBudgetRegeneratedSoftBudget._backend(context)
|
|
87
|
+
|
|
88
|
+
class RequestedCapGuard:
|
|
89
|
+
capabilities = backend.capabilities
|
|
90
|
+
|
|
91
|
+
def fingerprint(self):
|
|
92
|
+
return backend.fingerprint()
|
|
93
|
+
|
|
94
|
+
def generate(self,request):
|
|
95
|
+
response = backend.generate(request)
|
|
96
|
+
if response.usage.output_tokens > request.max_tokens:
|
|
97
|
+
raise BudgetExceededError("hard-cap P&B preparation exceeded the requested output cap")
|
|
98
|
+
return response
|
|
99
|
+
|
|
100
|
+
return RequestedCapGuard()
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
class PlanAndBudgetHardCapExtension:
|
|
104
|
+
"""Live or exact-cache preparation, capped sequential solving and synthesis."""
|
|
105
|
+
method_id = "plan_and_budget"
|
|
106
|
+
release_id = PAB_HARD_CAP_RELEASE
|
|
107
|
+
family = SemanticFamily.DECOMPOSE
|
|
108
|
+
|
|
109
|
+
def __init__(self, *, output_format: str,
|
|
110
|
+
records: Mapping[str,CachedPlanBudgetRecord] | PlanAndBudgetCache | None = None,
|
|
111
|
+
domain: str = "general question answering", initial_level: int = 3,
|
|
112
|
+
schedule: str | DecaySchedule = DecaySchedule.CONSTANT,
|
|
113
|
+
decomposition_max_tokens: int = 512, assessment_max_tokens: int = 512,
|
|
114
|
+
total_step_tokens: int = 512, per_step_max_tokens: int = 512, final_max_tokens: int = 512,
|
|
115
|
+
temperature: float = 0.0, profile_kind: str = "controlled_adapter"):
|
|
116
|
+
if not isinstance(output_format,str) or not output_format.strip():
|
|
117
|
+
raise ValidationError("hard-cap P&B requires an explicit final output format")
|
|
118
|
+
if type(initial_level) is not int or not 1 <= initial_level <= 5:
|
|
119
|
+
raise ValidationError("hard-cap P&B initial level must be an integer in [1,5]")
|
|
120
|
+
for cap in (decomposition_max_tokens,assessment_max_tokens,total_step_tokens,per_step_max_tokens,final_max_tokens):
|
|
121
|
+
if type(cap) is not int or cap < 1:
|
|
122
|
+
raise ValidationError("hard-cap P&B generation caps must be positive integers")
|
|
123
|
+
GenerationRequest(prompt="configuration",max_tokens=per_step_max_tokens,temperature=temperature)
|
|
124
|
+
if profile_kind not in {"controlled_adapter","factorial_adapter"}:
|
|
125
|
+
raise ValidationError("hard-cap P&B is a controlled/factorial extension")
|
|
126
|
+
self.output_format,self.per_step_max_tokens,self.final_max_tokens = output_format,per_step_max_tokens,final_max_tokens
|
|
127
|
+
self.total_step_tokens = total_step_tokens
|
|
128
|
+
self.temperature,self.profile_kind = temperature,profile_kind
|
|
129
|
+
self.schedule = DecaySchedule.parse(schedule)
|
|
130
|
+
self.cache_sha256 = records.artifact_sha256 if isinstance(records,PlanAndBudgetCache) else None
|
|
131
|
+
self.cache_verification = records.verification if isinstance(records,PlanAndBudgetCache) else None
|
|
132
|
+
if isinstance(records,PlanAndBudgetCache):
|
|
133
|
+
records = records.records
|
|
134
|
+
if records is not None and not isinstance(records,Mapping):
|
|
135
|
+
raise ArtifactError("hard-cap P&B cache must be keyed by exact task ID")
|
|
136
|
+
if records is not None and (not records or any(
|
|
137
|
+
not isinstance(v,CachedPlanBudgetRecord) or k != v.record_id or not 1 <= len(v.steps) <= 5
|
|
138
|
+
or any(not isinstance(s,str) or not s.strip() for s in v.steps)
|
|
139
|
+
for k,v in records.items())):
|
|
140
|
+
raise ArtifactError("hard-cap P&B requires solver-only records with one to five nonempty steps")
|
|
141
|
+
self.records = MappingProxyType(dict(records)) if records is not None else None
|
|
142
|
+
self.preparation = _HardCapPreparation(domain=domain,initial_level=initial_level,schedule=self.schedule,
|
|
143
|
+
decomposition_max_tokens=decomposition_max_tokens,assessment_max_tokens=assessment_max_tokens,
|
|
144
|
+
temperature=temperature)
|
|
145
|
+
|
|
146
|
+
def run(self,state: FrozenAgentState,context: InterventionContext) -> CompositeResult:
|
|
147
|
+
if not state.query.strip():
|
|
148
|
+
raise ValidationError("hard-cap P&B requires a non-empty query")
|
|
149
|
+
if state.messages or state.tool_names:
|
|
150
|
+
raise CapabilityError("hard-cap P&B supports visible QA context, not tool/history environments")
|
|
151
|
+
backend = context.backend
|
|
152
|
+
if not isinstance(backend,LLMBackend):
|
|
153
|
+
raise CapabilityError("hard-cap P&B requires an injected LLMBackend")
|
|
154
|
+
if ModelCapability.CHAT not in backend.capabilities:
|
|
155
|
+
raise CapabilityError("hard-cap P&B requires chat capability")
|
|
156
|
+
calls = inputs = outputs = 0
|
|
157
|
+
events = []
|
|
158
|
+
if self.records is not None:
|
|
159
|
+
record = self.records.get(state.task_id)
|
|
160
|
+
if record is None or record.query != state.query:
|
|
161
|
+
raise ArtifactError("hard-cap P&B cached ID/query mismatch; no live fallback")
|
|
162
|
+
if state.budget.max_model_calls < len(record.steps)+1 or state.budget.max_output_tokens < len(record.steps)+1:
|
|
163
|
+
raise BudgetExceededError("hard-cap P&B budget cannot cover all cached steps and final synthesis")
|
|
164
|
+
warnings = record.audit_warnings
|
|
165
|
+
else:
|
|
166
|
+
if state.budget.max_model_calls < 4 or state.budget.max_output_tokens < 4:
|
|
167
|
+
raise BudgetExceededError("live hard-cap P&B needs preparation, at least one step and a final call")
|
|
168
|
+
prep_state = replace(state,budget=replace(state.budget,
|
|
169
|
+
max_model_calls=2,max_output_tokens=state.budget.max_output_tokens-2))
|
|
170
|
+
patch = self.preparation.propose(prep_state,context)
|
|
171
|
+
decomposition,assessment = patch.trace.events[:2]
|
|
172
|
+
record = CachedPlanBudgetRecord(state.task_id or state.state_hash,state.query,
|
|
173
|
+
tuple(decomposition.payload["steps"]),tuple(assessment.payload["credits"]),
|
|
174
|
+
assessment.payload["evaluated_level"],patch.trace.warnings)
|
|
175
|
+
calls,inputs,outputs = 2,patch.trace.counters["input_tokens"],patch.trace.counters["output_tokens"]
|
|
176
|
+
events.extend(patch.trace.events[:2])
|
|
177
|
+
warnings = patch.trace.warnings
|
|
178
|
+
if calls+len(record.steps)+1 > state.budget.max_model_calls:
|
|
179
|
+
raise BudgetExceededError("generated plan exceeds remaining call budget; no steps silently dropped")
|
|
180
|
+
remaining = state.budget.max_output_tokens-outputs
|
|
181
|
+
count = len(record.steps)
|
|
182
|
+
if remaining < count+1:
|
|
183
|
+
raise BudgetExceededError("remaining output budget cannot cover all steps and final synthesis")
|
|
184
|
+
final_reservation = min(self.final_max_tokens,remaining-count)
|
|
185
|
+
pool = min(self.total_step_tokens,remaining-final_reservation,count*self.per_step_max_tokens)
|
|
186
|
+
caps = allocate_hard_token_caps(record.credits,pool,self.per_step_max_tokens,self.schedule)
|
|
187
|
+
events.append(TraceEvent(TracePhase.PREPARE,"hard_decoder_allocation",{
|
|
188
|
+
"protocol":PAB_HARD_CAP_PROTOCOL,"steps":record.steps,"credits":record.credits,
|
|
189
|
+
"schedule":self.schedule.value,"caps":caps,"pool":pool,"unallocated_pool":pool-sum(caps),
|
|
190
|
+
"final_reservation":final_reservation,"budget_unit":"output_tokens",
|
|
191
|
+
"minimum_per_step":1,"tie_policy":"stable_source_index","unused_step_cap_redistributed":False}))
|
|
192
|
+
reference = "\n\n".join(
|
|
193
|
+
(f"[{b.block_id}] " if b.block_id else "")+b.text
|
|
194
|
+
+(f"\nSource: {b.source}" if b.source else "")
|
|
195
|
+
+f"\nSupport ID: {b.metadata.get('official_support_id',b.block_id)}" for b in state.context)
|
|
196
|
+
answers = []
|
|
197
|
+
|
|
198
|
+
def generate(prompt,cap,stage):
|
|
199
|
+
nonlocal calls,inputs,outputs
|
|
200
|
+
if calls >= state.budget.max_model_calls or cap > state.budget.max_output_tokens-outputs:
|
|
201
|
+
raise BudgetExceededError("hard-cap P&B cannot reserve the next requested generation")
|
|
202
|
+
request = GenerationRequest(prompt=prompt,system=state.instruction,temperature=self.temperature,
|
|
203
|
+
max_tokens=cap,seed=context.seed+calls,metadata={"release_id":self.release_id,"stage":stage,
|
|
204
|
+
"hard_cap_protocol":PAB_HARD_CAP_PROTOCOL})
|
|
205
|
+
response = backend.generate(request)
|
|
206
|
+
calls += 1
|
|
207
|
+
inputs += response.usage.input_tokens
|
|
208
|
+
outputs += response.usage.output_tokens
|
|
209
|
+
if response.usage.output_tokens > cap:
|
|
210
|
+
raise BudgetExceededError("hard-cap P&B provider exceeded the requested decoder output cap")
|
|
211
|
+
if not response.text.strip():
|
|
212
|
+
raise AlgorithmOutputError(f"hard-cap P&B {stage} returned empty text; no retry")
|
|
213
|
+
events.append(TraceEvent(TracePhase.OBSERVE,stage,{
|
|
214
|
+
"request_hash":request.request_hash,"max_tokens":cap,"output_tokens":response.usage.output_tokens,
|
|
215
|
+
"finish_reason":response.finish_reason,"seed":request.seed,"answer":response.text}))
|
|
216
|
+
return response.text
|
|
217
|
+
|
|
218
|
+
for index,(step,cap) in enumerate(zip(record.steps,caps,strict=True),1):
|
|
219
|
+
prior = "\n\n".join(f"Sub-question {i}: {s}\nAnswer: {a}" for i,(s,a) in
|
|
220
|
+
enumerate(zip(record.steps,answers,strict=False),1))
|
|
221
|
+
prompt = (f"Original question: {state.query}\n\nVisible references:\n{reference}\n\n"
|
|
222
|
+
f"Previous sub-answers:\n{prior}\n\nCurrent sub-question {index}: {step}\n"
|
|
223
|
+
"Return a concise answer to this sub-question using the visible information. Do not invent evidence.")
|
|
224
|
+
answers.append(generate(prompt,cap,f"hard_capped_subproblem_{index}"))
|
|
225
|
+
prior = "\n\n".join(f"Sub-question {i}: {s}\nAnswer: {a}" for i,(s,a) in
|
|
226
|
+
enumerate(zip(record.steps,answers,strict=True),1))
|
|
227
|
+
final = generate(f"Original question: {state.query}\n\nVisible references:\n{reference}\n\n"
|
|
228
|
+
f"Sub-answers:\n{prior}\n\nSynthesize the final answer to the original question.\n{self.output_format}",
|
|
229
|
+
min(self.final_max_tokens,state.budget.max_output_tokens-outputs),"hard_capped_final_synthesis")
|
|
230
|
+
return CompositeResult(method_id=self.method_id,release_id=self.release_id,source_state_hash=state.state_hash,
|
|
231
|
+
final_answer=final,evidence=state.context,trace=ExecutionTrace(method_id=self.method_id,release_id=self.release_id,
|
|
232
|
+
events=tuple(events),counters={"model_calls":calls,"optimizer_model_calls":2 if self.records is None else 0,
|
|
233
|
+
"subproblem_model_calls":count,"input_tokens":inputs,"output_tokens":outputs},warnings=warnings),
|
|
234
|
+
implementation_identity=PAB_HARD_CAP_PROTOCOL,profile_kind=self.profile_kind,
|
|
235
|
+
metadata={"protocol":PAB_HARD_CAP_PROTOCOL,"source_preparation_revision":P_AND_B_UPSTREAM_REVISION,
|
|
236
|
+
"cached_decomposition":self.records is not None,"cache_artifact_sha256":self.cache_sha256,
|
|
237
|
+
"cache_verification":self.cache_verification,"per_step_hard_token_cap":True,"step_caps":caps,
|
|
238
|
+
"total_step_tokens":self.total_step_tokens,
|
|
239
|
+
"per_step_max_tokens":self.per_step_max_tokens,"final_max_tokens":self.final_max_tokens,
|
|
240
|
+
"actual_model_calls":calls,"actual_output_tokens":outputs,"final_call_in_shared_budget":True,
|
|
241
|
+
"allocation_unit":"output_tokens_not_words","official_native_parity_claimed":False,
|
|
242
|
+
"paper_result_parity_claimed":False,"automatic_retry":False,
|
|
243
|
+
"official_scoring":"caller_owned_independent_scorer","gold_fields_visible":False})
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
__all__ = ["PAB_HARD_CAP_PROTOCOL","PAB_HARD_CAP_RELEASE","PlanAndBudgetHardCapExtension","allocate_hard_token_caps"]
|