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,265 @@
|
|
|
1
|
+
"""Stage-oriented public SmartSearch training recipe and verified artifact chain.
|
|
2
|
+
|
|
3
|
+
Native policy and GRPO runtimes differ, so stages run in explicit dedicated
|
|
4
|
+
processes. No implicit retry, fabricated empty selection, or unverified resume
|
|
5
|
+
is performed. Training-chain closure is not benchmark acceptance.
|
|
6
|
+
"""
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
|
|
9
|
+
import json
|
|
10
|
+
from dataclasses import dataclass
|
|
11
|
+
from pathlib import Path
|
|
12
|
+
|
|
13
|
+
from agentinputlab.contracts import ValidationError
|
|
14
|
+
from agentinputlab.contracts.serialization import content_hash
|
|
15
|
+
|
|
16
|
+
from .qrag import _file, _sha
|
|
17
|
+
from .smartsearch_curriculum import SmartSearchCurriculumPreparation
|
|
18
|
+
from .smartsearch_grpo_data import (
|
|
19
|
+
SmartSearchGRPOControls,
|
|
20
|
+
SmartSearchGRPODataArtifact,
|
|
21
|
+
prepare_smartsearch_grpo_data,
|
|
22
|
+
verify_smartsearch_grpo_source,
|
|
23
|
+
)
|
|
24
|
+
from .smartsearch_grpo_meter import SmartSearchGRPOCostLimits
|
|
25
|
+
from .smartsearch_grpo_tools import _new_output, _save
|
|
26
|
+
from .smartsearch_grpo_training import SmartSearchGRPOArtifact, SmartSearchNativeGRPOTraining
|
|
27
|
+
from .smartsearch_policy import (
|
|
28
|
+
SmartSearchNativePolicyTraining,
|
|
29
|
+
SmartSearchPolicyFitControls,
|
|
30
|
+
SmartSearchPolicyStageArtifact,
|
|
31
|
+
_curriculum,
|
|
32
|
+
_model,
|
|
33
|
+
_source,
|
|
34
|
+
)
|
|
35
|
+
from .smartsearch_sampling import SmartSearchPolicySampler, SmartSearchSamplingControls
|
|
36
|
+
from .smartsearch_teacher import SmartSearchProcessTeacher, SmartSearchTeacherControls
|
|
37
|
+
|
|
38
|
+
TRAINING_RECIPE_PROTOCOL = "agentinputlab.smartsearch.native_training_chain.v1"
|
|
39
|
+
_HF_POLICY_METADATA = {"config.json", "generation_config.json", "tokenizer.json", "tokenizer_config.json",
|
|
40
|
+
"special_tokens_map.json", "added_tokens.json", "vocab.json", "vocab.txt", "merges.txt"}
|
|
41
|
+
# An accepted older native export contains this inert Ollama descriptor. The
|
|
42
|
+
# native HF/SFT/DPO/GRPO loaders never read it; its hash remains in the snapshot
|
|
43
|
+
# manifest, but it is not falsely attributed to the trained checkpoint payload.
|
|
44
|
+
_NON_INFERENCE_AUXILIARY_FILES = {"Modelfile"}
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def _read(path):
|
|
48
|
+
return json.loads(_file(Path(path), "SmartSearch recipe receipt").read_text())
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
def _split_identity(audit):
|
|
52
|
+
"""Compare actual case IDs/questions, not incidental stage provenance."""
|
|
53
|
+
if not isinstance(audit, dict) or set(audit) != {"train", "validation", "test"}:
|
|
54
|
+
raise ValidationError("SmartSearch native chain needs explicit train/development/test split bindings")
|
|
55
|
+
result, all_ids, all_questions = {}, set(), set()
|
|
56
|
+
for role, item in audit.items():
|
|
57
|
+
if not isinstance(item, dict):
|
|
58
|
+
raise ValidationError("SmartSearch native split binding must be an object")
|
|
59
|
+
ids, questions = item.get("case_ids"), item.get("question_hashes")
|
|
60
|
+
if not isinstance(ids, (list, tuple)) or not isinstance(questions, (list, tuple)) or (
|
|
61
|
+
len(ids) != len(questions) or (role != "test" and not ids)
|
|
62
|
+
or any(not isinstance(v, str) or not v for v in ids)
|
|
63
|
+
or any(not isinstance(v, str) or len(v) != 64 or set(v) - set("0123456789abcdef") for v in questions)
|
|
64
|
+
or len(set(ids)) != len(ids) or len(set(questions)) != len(questions)
|
|
65
|
+
or all_ids & set(ids) or all_questions & set(questions)
|
|
66
|
+
):
|
|
67
|
+
raise ValidationError("SmartSearch native chain split IDs/questions duplicate, overlap or differ")
|
|
68
|
+
result[role] = dict(sorted(zip(ids, questions, strict=True)))
|
|
69
|
+
all_ids.update(ids)
|
|
70
|
+
all_questions.update(questions)
|
|
71
|
+
return result
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
def _snapshot_from_stage(stage, root, manifest, digest):
|
|
75
|
+
model, record = _model(root, manifest, digest)
|
|
76
|
+
checkpoint = _read(stage.root / "artifact.json")["checkpoint_files"]
|
|
77
|
+
required = {name for name in checkpoint if name in _HF_POLICY_METADATA or
|
|
78
|
+
name.endswith((".safetensors", ".safetensors.index.json", ".model", ".jinja"))}
|
|
79
|
+
identifiers = [record[key] for key in ("training_artifact_id", "native_merged_dpo_artifact_id") if key in record]
|
|
80
|
+
if not identifiers or any(identity != stage.artifact_id for identity in identifiers) or (
|
|
81
|
+
not required <= record["files"].keys()
|
|
82
|
+
) or any(
|
|
83
|
+
checkpoint.get(name) != value for name, value in record["files"].items()
|
|
84
|
+
if name not in _NON_INFERENCE_AUXILIARY_FILES
|
|
85
|
+
):
|
|
86
|
+
raise ValidationError("SmartSearch policy snapshot is not the same trained stage's safe file export")
|
|
87
|
+
return model, record
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
def _verify_chain(references):
|
|
91
|
+
if not isinstance(references, dict) or set(references) != {
|
|
92
|
+
"checkout", "sft_root", "sft_snapshot", "initial_curriculum_root", "dpo_root",
|
|
93
|
+
"dpo_curriculum_root", "merged_root", "merged_snapshot", "grpo_root", "grpo_data_root",
|
|
94
|
+
}:
|
|
95
|
+
raise ValidationError("SmartSearch native training chain reference set is incomplete")
|
|
96
|
+
source, binding = verify_smartsearch_grpo_source(references["checkout"])
|
|
97
|
+
_source(source)
|
|
98
|
+
policy = {name: SmartSearchPolicyStageArtifact.load(references[name + "_root"])
|
|
99
|
+
for name in ("sft", "dpo", "merged")}
|
|
100
|
+
if [policy[n].stage for n in ("sft", "dpo", "merged")] != ["sft", "dpo", "merged_dpo"]:
|
|
101
|
+
raise ValidationError("SmartSearch training chain must contain SFT, DPO and merged-DPO stages in order")
|
|
102
|
+
grpo = SmartSearchGRPOArtifact.load(references["grpo_root"])
|
|
103
|
+
records = {name: _read(artifact.root / "artifact.json") for name, artifact in {**policy, "grpo": grpo}.items()}
|
|
104
|
+
plans = {name: _read(artifact.root / "fit-plan.json") for name, artifact in {**policy, "grpo": grpo}.items()}
|
|
105
|
+
if any(record.get("source_commit") != binding["source_commit"] for record in records.values()):
|
|
106
|
+
raise ValidationError("SmartSearch training chain mixes different upstream source revisions")
|
|
107
|
+
seeds = [plan.get("controls", {}).get("seed") for plan in plans.values()]
|
|
108
|
+
if any(type(seed) is not int or seed < 0 for seed in seeds) or len(set(seeds)) != 1:
|
|
109
|
+
raise ValidationError("SmartSearch native chain stage seeds differ")
|
|
110
|
+
for name in ("sft_snapshot", "merged_snapshot"):
|
|
111
|
+
item = references[name]
|
|
112
|
+
if not isinstance(item, dict) or set(item) != {"model_root", "model_manifest", "model_manifest_sha256"}:
|
|
113
|
+
raise ValidationError("SmartSearch chain snapshots require explicit model/manifest/hash bindings")
|
|
114
|
+
sft_snapshot, merged_snapshot = references["sft_snapshot"], references["merged_snapshot"]
|
|
115
|
+
sft_model, sft_record = _snapshot_from_stage(policy["sft"], sft_snapshot["model_root"],
|
|
116
|
+
sft_snapshot["model_manifest"], sft_snapshot["model_manifest_sha256"])
|
|
117
|
+
merged_model, merged_record = _snapshot_from_stage(policy["merged"], merged_snapshot["model_root"],
|
|
118
|
+
merged_snapshot["model_manifest"], merged_snapshot["model_manifest_sha256"])
|
|
119
|
+
if any(records[name].get("base_model_manifest_sha256") != sft_snapshot["model_manifest_sha256"]
|
|
120
|
+
for name in ("dpo", "merged")) or records["merged"].get("dpo_artifact_id") != policy["dpo"].artifact_id:
|
|
121
|
+
raise ValidationError("SmartSearch DPO/merge does not use the same fitted SFT policy and adapter")
|
|
122
|
+
if plans["grpo"].get("model_manifest_sha256") != merged_snapshot["model_manifest_sha256"] or (
|
|
123
|
+
plans["grpo"].get("model_provenance", {}).get("merged_dpo_artifact_id") != policy["merged"].artifact_id
|
|
124
|
+
or plans["grpo"].get("model_revision") != merged_record["revision"]
|
|
125
|
+
):
|
|
126
|
+
raise ValidationError("SmartSearch GRPO is not based on the bound merged DPO policy")
|
|
127
|
+
_, initial, initial_id = _curriculum(references["initial_curriculum_root"], "sft", 64 * 1024**2)
|
|
128
|
+
_, dpo_data, dpo_id = _curriculum(references["dpo_curriculum_root"], "dpo", 64 * 1024**2)
|
|
129
|
+
if records["sft"].get("curriculum_artifact_id") != initial_id or records["dpo"].get("curriculum_artifact_id") != dpo_id:
|
|
130
|
+
raise ValidationError("SmartSearch policy fitting used a different native curriculum artifact")
|
|
131
|
+
data = SmartSearchGRPODataArtifact.load(references["grpo_data_root"])
|
|
132
|
+
data_record = _read(data.root / "manifest.json")
|
|
133
|
+
if records["grpo"].get("data_artifact_id") != data.artifact_id or data_record["source"] != binding:
|
|
134
|
+
raise ValidationError("SmartSearch GRPO data/source artifact differs from the training chain")
|
|
135
|
+
identities = [_split_identity(value["split_audit"]) for value in
|
|
136
|
+
(initial, dpo_data, plans["sft"], plans["dpo"], data_record)]
|
|
137
|
+
if any(identity != identities[0] for identity in identities[1:]):
|
|
138
|
+
raise ValidationError("SmartSearch SFT/DPO/GRPO stages use different training/development/test collections")
|
|
139
|
+
terminal = _read(grpo.root / "fit-terminal.json")
|
|
140
|
+
usage = terminal.get("usage", {})
|
|
141
|
+
if usage.get("failed") is not False or usage.get("pending_generation_tickets") != [] or (
|
|
142
|
+
usage.get("synchronized_optimizer_steps") != plans["grpo"].get("planned_actor_optimizer_steps")
|
|
143
|
+
or type(usage.get("synchronized_optimizer_steps")) is not int
|
|
144
|
+
or usage["synchronized_optimizer_steps"] < 1
|
|
145
|
+
or terminal.get("native_driver_result", {}).get("global_steps") != plans["grpo"].get("planned_global_steps")
|
|
146
|
+
):
|
|
147
|
+
raise ValidationError("SmartSearch native GRPO has unresolved costs or an incomplete optimizer plan")
|
|
148
|
+
summary = dict(source_commit=binding["source_commit"], split_identity=identities[0],
|
|
149
|
+
artifacts={name: record["artifact_id"] for name, record in records.items()},
|
|
150
|
+
initial_curriculum_artifact_id=initial_id, dpo_curriculum_artifact_id=dpo_id,
|
|
151
|
+
grpo_data_artifact_id=data.artifact_id,
|
|
152
|
+
receipt_files={name: dict(artifact_sha256=_sha(artifact.root / "artifact.json"),
|
|
153
|
+
plan_sha256=_sha(artifact.root / "fit-plan.json"), terminal_sha256=_sha(artifact.root / "fit-terminal.json"))
|
|
154
|
+
for name, artifact in {**policy, "grpo": grpo}.items()},
|
|
155
|
+
sft_snapshot_manifest_sha256=sft_snapshot["model_manifest_sha256"],
|
|
156
|
+
merged_snapshot_manifest_sha256=merged_snapshot["model_manifest_sha256"],
|
|
157
|
+
learned_grpo_manifest_sha256=_sha(grpo.root / "model-manifest.json"),
|
|
158
|
+
separately_hashed_non_inference_auxiliary_files={name: sorted(set(record["files"]) & _NON_INFERENCE_AUXILIARY_FILES)
|
|
159
|
+
for name, record in (("sft_snapshot", sft_record), ("merged_snapshot", merged_record))},
|
|
160
|
+
native_optimizer_and_safe_export_chain_closed=True,
|
|
161
|
+
sampling_teacher_provenance_and_heldout_acceptance_separate=True,
|
|
162
|
+
full_training_recipe_compatibility_certified=False, new_model_calls=0, new_optimizer_steps=0)
|
|
163
|
+
protected = [source, sft_model, merged_model, data.root, *[artifact.root for artifact in policy.values()], grpo.root,
|
|
164
|
+
Path(references["initial_curriculum_root"]).resolve(), Path(references["dpo_curriculum_root"]).resolve()]
|
|
165
|
+
return summary, protected
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
@dataclass(frozen=True, slots=True)
|
|
169
|
+
class SmartSearchTrainingChainArtifact:
|
|
170
|
+
root: Path
|
|
171
|
+
artifact_id: str
|
|
172
|
+
|
|
173
|
+
@classmethod
|
|
174
|
+
def load(cls, root):
|
|
175
|
+
supplied = Path(root)
|
|
176
|
+
if supplied.is_symlink() or not supplied.is_dir():
|
|
177
|
+
raise ValidationError("SmartSearch training-chain artifact must be a regular directory")
|
|
178
|
+
folder = supplied.resolve()
|
|
179
|
+
record = _read(folder / "artifact.json")
|
|
180
|
+
identity = record.pop("artifact_id", None)
|
|
181
|
+
if record.get("protocol") != TRAINING_RECIPE_PROTOCOL or identity != content_hash(record):
|
|
182
|
+
raise ValidationError("SmartSearch training-chain artifact identity differs")
|
|
183
|
+
summary, _ = _verify_chain(record.get("references"))
|
|
184
|
+
if summary != record.get("chain"):
|
|
185
|
+
raise ValidationError("SmartSearch training-chain input artifacts changed")
|
|
186
|
+
return cls(folder, identity)
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
class SmartSearchNativeTrainingRecipe:
|
|
190
|
+
"""Concrete native stage API; use each stage's dedicated dependency runtime.
|
|
191
|
+
|
|
192
|
+
`fit(stage=...)` executes the actual native SFT, DPO, merge or GRPO API.
|
|
193
|
+
`assemble` verifies an already completed optimizer/checkpoint chain without
|
|
194
|
+
re-running it. Neither operation declares all benchmark/model combinations
|
|
195
|
+
accepted, and no stage is automatically retried or skipped on failure.
|
|
196
|
+
"""
|
|
197
|
+
|
|
198
|
+
release_id = "training.smartsearch.sft_dpo_grpo"
|
|
199
|
+
|
|
200
|
+
def __init__(self, *, policy_controls=None, sampling_controls=None, teacher_controls=None,
|
|
201
|
+
grpo_controls=None, grpo_cost_limits=None):
|
|
202
|
+
controls = (("policy", policy_controls if policy_controls is not None else SmartSearchPolicyFitControls(), SmartSearchPolicyFitControls),
|
|
203
|
+
("sampling", sampling_controls if sampling_controls is not None else SmartSearchSamplingControls(), SmartSearchSamplingControls),
|
|
204
|
+
("teacher", teacher_controls if teacher_controls is not None else SmartSearchTeacherControls(), SmartSearchTeacherControls),
|
|
205
|
+
("grpo", grpo_controls if grpo_controls is not None else SmartSearchGRPOControls(), SmartSearchGRPOControls))
|
|
206
|
+
if any(not isinstance(value, kind) for _, value, kind in controls) or (
|
|
207
|
+
grpo_cost_limits is not None and not isinstance(grpo_cost_limits, SmartSearchGRPOCostLimits)
|
|
208
|
+
):
|
|
209
|
+
raise ValidationError("SmartSearch native recipe requires typed per-stage controls and aggregate GRPO limits")
|
|
210
|
+
if len({value.seed for _, value, _ in controls}) != 1:
|
|
211
|
+
raise ValidationError("SmartSearch native recipe stage seeds differ; declare a separate explicit variant")
|
|
212
|
+
for name, value, _ in controls:
|
|
213
|
+
setattr(self, name + "_controls", value)
|
|
214
|
+
self.grpo_cost_limits = grpo_cost_limits
|
|
215
|
+
|
|
216
|
+
def sample(self, *, model, retriever, **inputs):
|
|
217
|
+
return SmartSearchPolicySampler(model, retriever, controls=self.sampling_controls).sample(**inputs)
|
|
218
|
+
|
|
219
|
+
def annotate(self, *, generate, model_fingerprint_sha256, **inputs):
|
|
220
|
+
return SmartSearchProcessTeacher(generate, model_fingerprint_sha256=model_fingerprint_sha256,
|
|
221
|
+
controls=self.teacher_controls).annotate(**inputs)
|
|
222
|
+
|
|
223
|
+
def prepare_curriculum(self, **inputs):
|
|
224
|
+
return SmartSearchCurriculumPreparation().prepare(**inputs)
|
|
225
|
+
|
|
226
|
+
def prepare_grpo_data(self, **inputs):
|
|
227
|
+
return prepare_smartsearch_grpo_data(**inputs)
|
|
228
|
+
|
|
229
|
+
def inference(self, *, training_chain_root, model, retriever, controls=None):
|
|
230
|
+
"""Bind a completed fitted policy; never use the train/development sampler for tests."""
|
|
231
|
+
from .smartsearch_inference import SmartSearchTrainedPolicyInference
|
|
232
|
+
|
|
233
|
+
return SmartSearchTrainedPolicyInference(training_chain_root=training_chain_root,
|
|
234
|
+
model=model, retriever=retriever, controls=controls)
|
|
235
|
+
|
|
236
|
+
def fit(self, *, stage, **inputs):
|
|
237
|
+
if not isinstance(stage, str):
|
|
238
|
+
raise ValidationError("SmartSearch native stage must be an explicit string")
|
|
239
|
+
if stage in {"sft", "dpo"}:
|
|
240
|
+
return SmartSearchNativePolicyTraining(self.policy_controls).fit(stage=stage, **inputs)
|
|
241
|
+
if stage == "merged_dpo":
|
|
242
|
+
return SmartSearchNativePolicyTraining(self.policy_controls).merge(**inputs)
|
|
243
|
+
if stage == "grpo":
|
|
244
|
+
if self.grpo_cost_limits is None:
|
|
245
|
+
raise ValidationError("SmartSearch GRPO requires explicit aggregate cost limits before execution")
|
|
246
|
+
return SmartSearchNativeGRPOTraining(controls=self.grpo_controls,
|
|
247
|
+
cost_limits=self.grpo_cost_limits).fit(**inputs)
|
|
248
|
+
raise ValidationError("Run an explicit native stage: sft, dpo, merged_dpo or grpo; no implicit all-stage retry")
|
|
249
|
+
|
|
250
|
+
def assemble(self, *, output_root, **references):
|
|
251
|
+
summary, protected = _verify_chain(references)
|
|
252
|
+
output = Path(output_root).resolve(strict=False)
|
|
253
|
+
if any(output.is_relative_to(path) or path.is_relative_to(output) for path in protected):
|
|
254
|
+
raise ValidationError("SmartSearch training-chain receipt overlaps protected stage inputs")
|
|
255
|
+
root = _new_output(output_root)
|
|
256
|
+
references = {key: ({name: (str(Path(value).resolve()) if name != "model_manifest_sha256" else value)
|
|
257
|
+
for name, value in item.items()} if isinstance(item, dict)
|
|
258
|
+
else str(Path(item).resolve())) for key, item in references.items()}
|
|
259
|
+
record = dict(protocol=TRAINING_RECIPE_PROTOCOL, references=references, chain=summary,
|
|
260
|
+
no_model_or_optimizer_invocation=True, checkpoint_weights_not_copied=True,
|
|
261
|
+
relative_relocation_requires_explicit_rebinding=True,
|
|
262
|
+
not_benchmark_or_full_recipe_acceptance=True, toolkit_recipe_sha256=_sha(Path(__file__)))
|
|
263
|
+
identity = content_hash(record)
|
|
264
|
+
_save(root, "artifact.json", {**record, "artifact_id": identity})
|
|
265
|
+
return SmartSearchTrainingChainArtifact(root, identity)
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"""Algorithm registry public API."""
|
|
2
|
+
|
|
3
|
+
from .beta import BetaGateCheck, BetaReadinessReport, check_beta_readiness
|
|
4
|
+
from .loader import (
|
|
5
|
+
find_repository_registry,
|
|
6
|
+
load_packaged_registry,
|
|
7
|
+
load_registry_file,
|
|
8
|
+
load_registry_text,
|
|
9
|
+
registry_documents_equal,
|
|
10
|
+
validate_snapshot_sync,
|
|
11
|
+
)
|
|
12
|
+
from .result_manifest import (
|
|
13
|
+
ResultStudyReference,
|
|
14
|
+
ResultTableManifest,
|
|
15
|
+
validate_result_table_manifest,
|
|
16
|
+
)
|
|
17
|
+
from .runtime import AlgorithmRegistry, RegistryDoctorReport
|
|
18
|
+
from .schema import (
|
|
19
|
+
AlgorithmCard,
|
|
20
|
+
Publication,
|
|
21
|
+
RegistryDocument,
|
|
22
|
+
ReleaseProfile,
|
|
23
|
+
UpstreamSource,
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
__all__ = [
|
|
27
|
+
"AlgorithmCard",
|
|
28
|
+
"AlgorithmRegistry",
|
|
29
|
+
"BetaGateCheck",
|
|
30
|
+
"BetaReadinessReport",
|
|
31
|
+
"Publication",
|
|
32
|
+
"RegistryDoctorReport",
|
|
33
|
+
"RegistryDocument",
|
|
34
|
+
"ReleaseProfile",
|
|
35
|
+
"ResultStudyReference",
|
|
36
|
+
"ResultTableManifest",
|
|
37
|
+
"UpstreamSource",
|
|
38
|
+
"check_beta_readiness",
|
|
39
|
+
"find_repository_registry",
|
|
40
|
+
"load_packaged_registry",
|
|
41
|
+
"load_registry_file",
|
|
42
|
+
"load_registry_text",
|
|
43
|
+
"registry_documents_equal",
|
|
44
|
+
"validate_result_table_manifest",
|
|
45
|
+
"validate_snapshot_sync",
|
|
46
|
+
]
|