synth-ai 0.2.13.dev2__tar.gz → 0.2.16__tar.gz
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.
Potentially problematic release.
This version of synth-ai might be problematic. Click here for more details.
- synth_ai-0.2.16/PKG-INFO +193 -0
- synth_ai-0.2.16/README.md +113 -0
- synth_ai-0.2.16/examples/README.md +1 -0
- synth_ai-0.2.16/examples/multi_step/SFT_README.md +147 -0
- synth_ai-0.2.16/examples/multi_step/configs/README_verilog_rl.md +77 -0
- synth_ai-0.2.16/examples/multi_step/configs/VERILOG_REWARDS.md +90 -0
- synth_ai-0.2.16/examples/multi_step/configs/VERILOG_RL_CHECKLIST.md +183 -0
- synth_ai-0.2.16/examples/multi_step/configs/crafter_eval_synth_qwen4b.toml +35 -0
- synth_ai-0.2.16/examples/multi_step/configs/crafter_eval_text_only_groq_qwen32b.toml +36 -0
- synth_ai-0.2.16/examples/multi_step/configs/crafter_rl_stepwise_hosted_judge.toml +187 -0
- synth_ai-0.2.16/examples/multi_step/configs/crafter_sft_qwen30b_lora.toml +62 -0
- synth_ai-0.2.16/examples/multi_step/configs/crafter_synth_backend.md +40 -0
- synth_ai-0.2.16/examples/multi_step/configs/verilog_eval_groq_qwen32b.toml +31 -0
- synth_ai-0.2.16/examples/multi_step/configs/verilog_eval_synth_qwen8b.toml +33 -0
- synth_ai-0.2.16/examples/multi_step/configs/verilog_rl_lora.toml +190 -0
- synth_ai-0.2.16/examples/multi_step/convert_traces_to_sft.py +84 -0
- synth_ai-0.2.16/examples/multi_step/judges/crafter_backend_judge.py +220 -0
- synth_ai-0.2.16/examples/multi_step/judges/verilog_backend_judge.py +234 -0
- synth_ai-0.2.16/examples/multi_step/readme.md +48 -0
- synth_ai-0.2.16/examples/multi_step/run_sft_qwen30b.sh +45 -0
- synth_ai-0.2.16/examples/multi_step/verilog_rl_lora.md +218 -0
- synth_ai-0.2.16/examples/qwen_coder/configs/coder_lora_30b.toml +62 -0
- synth_ai-0.2.16/examples/qwen_coder/configs/coder_lora_4b.toml +58 -0
- synth_ai-0.2.16/examples/qwen_coder/configs/coder_lora_small.toml +59 -0
- synth_ai-0.2.16/examples/qwen_vl/BUGS_AND_FIXES.md +232 -0
- synth_ai-0.2.16/examples/qwen_vl/IMAGE_VALIDATION_COMPLETE.md +271 -0
- synth_ai-0.2.16/examples/qwen_vl/IMAGE_VALIDATION_SUMMARY.md +260 -0
- synth_ai-0.2.16/examples/qwen_vl/INFERENCE_SFT_TESTS.md +412 -0
- synth_ai-0.2.16/examples/qwen_vl/NEXT_STEPS_2B.md +325 -0
- synth_ai-0.2.16/examples/qwen_vl/QUICKSTART.md +327 -0
- synth_ai-0.2.16/examples/qwen_vl/QUICKSTART_RL_VISION.md +110 -0
- synth_ai-0.2.16/examples/qwen_vl/README.md +154 -0
- synth_ai-0.2.16/examples/qwen_vl/RL_VISION_COMPLETE.md +475 -0
- synth_ai-0.2.16/examples/qwen_vl/RL_VISION_TESTING.md +333 -0
- synth_ai-0.2.16/examples/qwen_vl/SDK_VISION_INTEGRATION.md +328 -0
- synth_ai-0.2.16/examples/qwen_vl/SETUP_COMPLETE.md +275 -0
- synth_ai-0.2.16/examples/qwen_vl/VISION_TESTS_COMPLETE.md +490 -0
- synth_ai-0.2.16/examples/qwen_vl/VLM_PIPELINE_COMPLETE.md +242 -0
- synth_ai-0.2.16/examples/qwen_vl/__init__.py +2 -0
- synth_ai-0.2.16/examples/qwen_vl/collect_data_via_cli.md +423 -0
- synth_ai-0.2.16/examples/qwen_vl/collect_vision_traces.py +368 -0
- synth_ai-0.2.16/examples/qwen_vl/configs/crafter_rl_vision_qwen3vl4b.toml +127 -0
- synth_ai-0.2.16/examples/qwen_vl/configs/crafter_vlm_sft_example.toml +60 -0
- synth_ai-0.2.16/examples/qwen_vl/configs/eval_gpt4o_mini_vision.toml +43 -0
- synth_ai-0.2.16/examples/qwen_vl/configs/eval_gpt4o_vision_proper.toml +29 -0
- synth_ai-0.2.16/examples/qwen_vl/configs/eval_gpt5nano_vision.toml +45 -0
- synth_ai-0.2.16/examples/qwen_vl/configs/eval_qwen2vl_vision.toml +44 -0
- synth_ai-0.2.16/examples/qwen_vl/configs/filter_qwen2vl_sft.toml +50 -0
- synth_ai-0.2.16/examples/qwen_vl/configs/filter_vision_sft.toml +53 -0
- synth_ai-0.2.16/examples/qwen_vl/configs/filter_vision_test.toml +8 -0
- synth_ai-0.2.16/examples/qwen_vl/configs/sft_qwen3_vl_2b_test.toml +54 -0
- synth_ai-0.2.16/examples/qwen_vl/crafter_gpt5nano_agent.py +308 -0
- synth_ai-0.2.16/examples/qwen_vl/crafter_qwen_vl_agent.py +300 -0
- synth_ai-0.2.16/examples/qwen_vl/run_vision_comparison.sh +62 -0
- synth_ai-0.2.16/examples/qwen_vl/run_vision_sft_pipeline.sh +175 -0
- synth_ai-0.2.16/examples/qwen_vl/test_image_validation.py +201 -0
- synth_ai-0.2.16/examples/qwen_vl/test_sft_vision_data.py +110 -0
- synth_ai-0.2.16/examples/rl/README.md +169 -0
- synth_ai-0.2.16/examples/rl/configs/eval_base_qwen.toml +17 -0
- synth_ai-0.2.16/examples/rl/configs/eval_rl_qwen.toml +13 -0
- synth_ai-0.2.16/examples/rl/configs/rl_from_base_qwen.toml +37 -0
- synth_ai-0.2.16/examples/rl/configs/rl_from_base_qwen17.toml +76 -0
- synth_ai-0.2.16/examples/rl/configs/rl_from_ft_qwen.toml +37 -0
- synth_ai-0.2.16/examples/rl/task_app/math_single_step.py +990 -0
- synth_ai-0.2.16/examples/rl/task_app/math_task_app.py +111 -0
- synth_ai-0.2.16/examples/sft/README.md +139 -0
- synth_ai-0.2.16/examples/sft/configs/crafter_fft_qwen0p6b.toml +46 -0
- synth_ai-0.2.16/examples/sft/configs/crafter_lora_qwen0p6b.toml +46 -0
- synth_ai-0.2.16/examples/sft/evaluate.py +117 -0
- synth_ai-0.2.16/examples/sft/export_dataset.py +120 -0
- synth_ai-0.2.16/examples/sft/generate_traces.py +164 -0
- synth_ai-0.2.16/examples/swe/task_app/README.md +105 -0
- synth_ai-0.2.16/examples/swe/task_app/grpo_swe_mini.py +600 -0
- synth_ai-0.2.16/examples/swe/task_app/grpo_swe_mini_task_app.py +124 -0
- synth_ai-0.2.16/examples/swe/task_app/hosted/envs/mini_swe/environment.py +1164 -0
- synth_ai-0.2.16/examples/swe/task_app/hosted/policy_routes.py +1077 -0
- synth_ai-0.2.16/examples/swe/task_app/hosted/rollout.py +1903 -0
- synth_ai-0.2.16/examples/task_apps/IMAGE_ONLY_EVAL_QUICKSTART.md +258 -0
- synth_ai-0.2.16/examples/task_apps/crafter/CREATE_SFT_DATASET.md +273 -0
- synth_ai-0.2.16/examples/task_apps/crafter/EVAL_IMAGE_ONLY_RESULTS.md +152 -0
- synth_ai-0.2.16/examples/task_apps/crafter/FILTER_COMMAND_STATUS.md +174 -0
- synth_ai-0.2.16/examples/task_apps/crafter/FILTER_COMMAND_SUCCESS.md +268 -0
- synth_ai-0.2.16/examples/task_apps/crafter/QUERY_EXAMPLES.md +203 -0
- synth_ai-0.2.16/examples/task_apps/crafter/README_IMAGE_ONLY_EVAL.md +316 -0
- synth_ai-0.2.16/examples/task_apps/crafter/eval_image_only_gpt4o.toml +28 -0
- synth_ai-0.2.16/examples/task_apps/crafter/eval_text_only_groq_llama.toml +36 -0
- synth_ai-0.2.16/examples/task_apps/crafter/filter_sft_dataset.toml +16 -0
- synth_ai-0.2.16/examples/task_apps/crafter/task_app/__init__.py +5 -0
- synth_ai-0.2.16/examples/task_apps/crafter/task_app/grpo_crafter.py +970 -0
- synth_ai-0.2.16/examples/task_apps/crafter/task_app/synth_envs_hosted/envs/crafter/environment.py +532 -0
- synth_ai-0.2.16/examples/task_apps/crafter/task_app/synth_envs_hosted/envs/crafter/policy.py +605 -0
- synth_ai-0.2.16/examples/task_apps/crafter/task_app/synth_envs_hosted/envs/crafter/react_agent.py +123 -0
- synth_ai-0.2.16/examples/task_apps/crafter/task_app/synth_envs_hosted/inference/openai_client.py +734 -0
- synth_ai-0.2.16/examples/task_apps/crafter/task_app/synth_envs_hosted/policy_routes.py +1183 -0
- synth_ai-0.2.16/examples/task_apps/crafter/task_app/synth_envs_hosted/rollout.py +2162 -0
- synth_ai-0.2.16/examples/task_apps/crafter/task_app/synth_envs_hosted/utils.py +218 -0
- synth_ai-0.2.16/examples/task_apps/enron/__init__.py +2 -0
- synth_ai-0.2.16/examples/task_apps/enron/filter_sft.toml +5 -0
- synth_ai-0.2.16/examples/task_apps/enron/tests/__init__.py +4 -0
- synth_ai-0.2.16/examples/task_apps/enron/tests/integration/__init__.py +4 -0
- synth_ai-0.2.16/examples/task_apps/enron/tests/integration/test_enron_eval.py +179 -0
- synth_ai-0.2.16/examples/task_apps/enron/tests/unit/__init__.py +4 -0
- synth_ai-0.2.16/examples/task_apps/math/README.md +22 -0
- synth_ai-0.2.16/examples/task_apps/pokemon_red/EVAL_IMAGE_ONLY_COMPLETE.md +283 -0
- synth_ai-0.2.16/examples/task_apps/pokemon_red/EVAL_IMAGE_ONLY_STATUS.md +155 -0
- synth_ai-0.2.16/examples/task_apps/pokemon_red/README_IMAGE_ONLY_EVAL.md +415 -0
- synth_ai-0.2.16/examples/task_apps/pokemon_red/eval_image_only_gpt4o.toml +29 -0
- synth_ai-0.2.16/examples/task_apps/pokemon_red/pallet_town_rl_config.toml +75 -0
- synth_ai-0.2.16/examples/task_apps/pokemon_red/task_app.py +799 -0
- synth_ai-0.2.16/examples/task_apps/pokemon_red/test_pallet_town_rewards.py +193 -0
- synth_ai-0.2.16/examples/task_apps/sokoban/filter_sft.toml +5 -0
- synth_ai-0.2.16/examples/task_apps/sokoban/tests/__init__.py +4 -0
- synth_ai-0.2.16/examples/task_apps/sokoban/tests/integration/__init__.py +4 -0
- synth_ai-0.2.16/examples/task_apps/sokoban/tests/unit/__init__.py +4 -0
- synth_ai-0.2.16/examples/task_apps/verilog/eval_groq_qwen32b.toml +24 -0
- synth_ai-0.2.16/examples/task_apps/verilog/filter_sft.toml +5 -0
- synth_ai-0.2.16/examples/task_apps/verilog/task_app/grpo_verilog.py +1166 -0
- synth_ai-0.2.16/examples/task_apps/verilog/tests/__init__.py +4 -0
- synth_ai-0.2.16/examples/task_apps/verilog/tests/integration/__init__.py +4 -0
- synth_ai-0.2.16/examples/task_apps/verilog/tests/integration/test_verilog_eval.py +181 -0
- synth_ai-0.2.16/examples/task_apps/verilog/tests/unit/__init__.py +4 -0
- synth_ai-0.2.16/examples/vlm/README.md +68 -0
- synth_ai-0.2.16/examples/vlm/configs/crafter_vlm_gpt4o.toml +46 -0
- synth_ai-0.2.16/examples/vlm/crafter_openai_vlm_agent.py +275 -0
- synth_ai-0.2.16/examples/vlm/filter_image_rows.py +63 -0
- synth_ai-0.2.16/examples/vlm/run_crafter_vlm_benchmark.py +316 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/_utils.py +92 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/analyze_trace_db.py +422 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/configs/crafter_fft.toml +50 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/configs/crafter_fft_4b.toml +56 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/configs/eval_fft_qwen4b.toml +22 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/configs/eval_groq_qwen32b.toml +15 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/configs/eval_modal_qwen4b.toml +24 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/configs/rl_from_base_qwen4b.toml +84 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/configs/rl_from_ft.toml +58 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/export_trace_sft.py +837 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/groq_test.py +97 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/readme.md +110 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/run_fft_and_save.py +380 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/run_local_rollout.py +239 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/run_local_rollout_modal.py +248 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/run_local_rollout_parallel.py +405 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/run_local_rollout_traced.py +477 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/run_rl_and_save.py +124 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/run_rollout_remote.py +156 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/task_app/README.md +42 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/task_app/grpo_crafter.py +696 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/task_app/grpo_crafter_task_app.py +135 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/task_app/synth_envs_hosted/README.md +173 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/task_app/synth_envs_hosted/__init__.py +5 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/task_app/synth_envs_hosted/branching.py +143 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/task_app/synth_envs_hosted/environment_routes.py +1226 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/task_app/synth_envs_hosted/envs/__init__.py +1 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/task_app/synth_envs_hosted/envs/crafter/__init__.py +6 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/task_app/synth_envs_hosted/envs/crafter/app.py +1 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/task_app/synth_envs_hosted/envs/crafter/policy.py +478 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/task_app/synth_envs_hosted/envs/crafter/shared.py +305 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/task_app/synth_envs_hosted/envs/crafter/tools.py +47 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/task_app/synth_envs_hosted/hosted_app.py +204 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/task_app/synth_envs_hosted/inference/__init__.py +5 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/task_app/synth_envs_hosted/inference/openai_client.py +618 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/task_app/synth_envs_hosted/main.py +100 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/task_app/synth_envs_hosted/policy_routes.py +1081 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/task_app/synth_envs_hosted/registry.py +195 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/task_app/synth_envs_hosted/rollout.py +1861 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/task_app/synth_envs_hosted/storage/__init__.py +5 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/task_app/synth_envs_hosted/storage/volume.py +211 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/task_app/synth_envs_hosted/test_agents.py +161 -0
- synth_ai-0.2.16/examples/warming_up_to_rl/task_app/synth_envs_hosted/test_service.py +137 -0
- synth_ai-0.2.16/examples/workflows/math_rl/run_eval.py +436 -0
- synth_ai-0.2.16/examples/workflows/math_rl/run_rl_and_save.py +111 -0
- synth_ai-0.2.16/pyproject.toml +216 -0
- synth_ai-0.2.16/synth_ai/__init__.py +91 -0
- synth_ai-0.2.16/synth_ai/_utils/__init__.py +47 -0
- synth_ai-0.2.16/synth_ai/_utils/base_url.py +10 -0
- synth_ai-0.2.16/synth_ai/_utils/http.py +10 -0
- synth_ai-0.2.16/synth_ai/_utils/prompts.py +10 -0
- synth_ai-0.2.16/synth_ai/_utils/task_app_state.py +12 -0
- synth_ai-0.2.16/synth_ai/_utils/user_config.py +10 -0
- synth_ai-0.2.16/synth_ai/api/models/supported.py +514 -0
- synth_ai-0.2.16/synth_ai/api/train/__init__.py +17 -0
- synth_ai-0.2.16/synth_ai/api/train/cli.py +658 -0
- synth_ai-0.2.16/synth_ai/api/train/config_finder.py +235 -0
- synth_ai-0.2.16/synth_ai/api/train/env_resolver.py +352 -0
- synth_ai-0.2.16/synth_ai/cli/__init__.py +90 -0
- synth_ai-0.2.16/synth_ai/cli/_modal_wrapper.py +31 -0
- synth_ai-0.2.16/synth_ai/cli/_typer_patch.py +47 -0
- synth_ai-0.2.16/synth_ai/cli/_validate_task_app.py +29 -0
- synth_ai-0.2.16/synth_ai/cli/legacy_root_backup.py +470 -0
- synth_ai-0.2.16/synth_ai/cli/lib/__init__.py +10 -0
- synth_ai-0.2.16/synth_ai/cli/lib/task_app_discovery.py +7 -0
- synth_ai-0.2.16/synth_ai/cli/lib/task_app_env.py +518 -0
- synth_ai-0.2.16/synth_ai/cli/recent.py +133 -0
- synth_ai-0.2.16/synth_ai/cli/setup.py +266 -0
- synth_ai-0.2.16/synth_ai/cli/task_app_deploy.py +16 -0
- synth_ai-0.2.16/synth_ai/cli/task_app_list.py +25 -0
- synth_ai-0.2.16/synth_ai/cli/task_app_modal_serve.py +16 -0
- synth_ai-0.2.16/synth_ai/cli/task_app_serve.py +18 -0
- synth_ai-0.2.16/synth_ai/cli/task_apps.py +4563 -0
- synth_ai-0.2.16/synth_ai/cli/train.py +18 -0
- synth_ai-0.2.16/synth_ai/cli/tui.py +62 -0
- synth_ai-0.2.16/synth_ai/demos/__init__.py +10 -0
- synth_ai-0.2.16/synth_ai/demos/core/__init__.py +28 -0
- synth_ai-0.2.16/synth_ai/demos/crafter/crafter_fft_4b.toml +55 -0
- synth_ai-0.2.16/synth_ai/demos/crafter/grpo_crafter_task_app.py +185 -0
- synth_ai-0.2.16/synth_ai/demos/crafter/rl_from_base_qwen4b.toml +74 -0
- synth_ai-0.2.16/synth_ai/demos/demo_registry.py +176 -0
- synth_ai-0.2.16/synth_ai/demos/demo_task_apps/crafter/__init__.py +1 -0
- synth_ai-0.2.16/synth_ai/demos/demo_task_apps/crafter/grpo_crafter_task_app.py +184 -0
- synth_ai-0.2.16/synth_ai/demos/math/__init__.py +1 -0
- synth_ai-0.2.16/synth_ai/demos/math/_common.py +16 -0
- synth_ai-0.2.16/synth_ai/demos/math/app.py +38 -0
- synth_ai-0.2.16/synth_ai/demos/math/config.toml +76 -0
- synth_ai-0.2.16/synth_ai/demos/math/deploy_modal.py +54 -0
- synth_ai-0.2.16/synth_ai/demos/math/modal_task_app.py +702 -0
- synth_ai-0.2.16/synth_ai/demos/math/task_app_entry.py +51 -0
- synth_ai-0.2.16/synth_ai/environments/environment/core.py +73 -0
- synth_ai-0.2.16/synth_ai/environments/examples/bandit/engine.py +301 -0
- synth_ai-0.2.16/synth_ai/environments/examples/bandit/environment.py +193 -0
- synth_ai-0.2.16/synth_ai/environments/examples/crafter_classic/environment.py +495 -0
- synth_ai-0.2.16/synth_ai/environments/examples/verilog/engine.py +421 -0
- synth_ai-0.2.16/synth_ai/environments/examples/wordle/environment.py +158 -0
- synth_ai-0.2.16/synth_ai/evals/base.py +24 -0
- synth_ai-0.2.16/synth_ai/evals/client.py +82 -0
- synth_ai-0.2.16/synth_ai/inference/client.py +34 -0
- synth_ai-0.2.16/synth_ai/learning/client.py +241 -0
- synth_ai-0.2.16/synth_ai/learning/health.py +49 -0
- synth_ai-0.2.16/synth_ai/learning/jobs.py +201 -0
- synth_ai-0.2.16/synth_ai/learning/rl/client.py +267 -0
- synth_ai-0.2.16/synth_ai/learning/rl/env_keys.py +166 -0
- synth_ai-0.2.16/synth_ai/learning/rl/secrets.py +13 -0
- synth_ai-0.2.16/synth_ai/learning/sft/client.py +68 -0
- synth_ai-0.2.16/synth_ai/learning/sft/data.py +698 -0
- synth_ai-0.2.16/synth_ai/learning/validators.py +52 -0
- synth_ai-0.2.16/synth_ai/task/__init__.py +121 -0
- synth_ai-0.2.16/synth_ai/task/apps/__init__.py +131 -0
- synth_ai-0.2.16/synth_ai/task/config.py +259 -0
- synth_ai-0.2.16/synth_ai/task/contracts.py +236 -0
- synth_ai-0.2.16/synth_ai/task/rubrics/__init__.py +55 -0
- synth_ai-0.2.16/synth_ai/task/rubrics/loaders.py +156 -0
- synth_ai-0.2.16/synth_ai/task/rubrics/scoring.py +116 -0
- synth_ai-0.2.16/synth_ai/task/rubrics.py +219 -0
- synth_ai-0.2.16/synth_ai/task/trace_correlation_helpers.py +328 -0
- synth_ai-0.2.16/synth_ai/task/tracing_utils.py +95 -0
- synth_ai-0.2.16/synth_ai/task/validators.py +417 -0
- synth_ai-0.2.16/synth_ai/tracing_v3/config.py +86 -0
- synth_ai-0.2.16/synth_ai/tracing_v3/constants.py +21 -0
- synth_ai-0.2.16/synth_ai/tracing_v3/db_config.py +196 -0
- synth_ai-0.2.16/synth_ai/tracing_v3/decorators.py +401 -0
- synth_ai-0.2.16/synth_ai/tracing_v3/session_tracer.py +540 -0
- synth_ai-0.2.16/synth_ai/tracing_v3/turso/daemon.py +150 -0
- synth_ai-0.2.16/synth_ai/tracing_v3/turso/native_manager.py +1217 -0
- synth_ai-0.2.16/synth_ai/tracing_v3/utils.py +108 -0
- synth_ai-0.2.16/synth_ai/tui/__init__.py +5 -0
- synth_ai-0.2.16/synth_ai/tui/__main__.py +13 -0
- synth_ai-0.2.16/synth_ai/tui/cli/__init__.py +1 -0
- synth_ai-0.2.16/synth_ai/tui/cli/query_experiments.py +164 -0
- synth_ai-0.2.16/synth_ai/tui/cli/query_experiments_v3.py +164 -0
- synth_ai-0.2.16/synth_ai/tui/dashboard.py +911 -0
- synth_ai-0.2.16/synth_ai/utils/__init__.py +101 -0
- synth_ai-0.2.16/synth_ai/utils/base_url.py +94 -0
- synth_ai-0.2.16/synth_ai/utils/cli.py +131 -0
- synth_ai-0.2.16/synth_ai/utils/env.py +287 -0
- synth_ai-0.2.16/synth_ai/utils/http.py +169 -0
- synth_ai-0.2.16/synth_ai/utils/modal.py +308 -0
- synth_ai-0.2.16/synth_ai/utils/process.py +212 -0
- synth_ai-0.2.16/synth_ai/utils/prompts.py +39 -0
- synth_ai-0.2.16/synth_ai/utils/sqld.py +122 -0
- synth_ai-0.2.16/synth_ai/utils/task_app_discovery.py +882 -0
- synth_ai-0.2.16/synth_ai/utils/task_app_env.py +186 -0
- synth_ai-0.2.16/synth_ai/utils/task_app_state.py +318 -0
- synth_ai-0.2.16/synth_ai/utils/user_config.py +137 -0
- synth_ai-0.2.16/synth_ai/v0/config/__init__.py +11 -0
- synth_ai-0.2.16/synth_ai/v0/config/base_url.py +6 -0
- synth_ai-0.2.16/synth_ai/v0/tracing/config.py +142 -0
- synth_ai-0.2.16/synth_ai/v0/tracing/decorators.py +682 -0
- synth_ai-0.2.16/synth_ai/v0/tracing/upload.py +409 -0
- synth_ai-0.2.16/synth_ai/v0/tracing_v1/config.py +142 -0
- synth_ai-0.2.16/synth_ai/v0/tracing_v1/decorators.py +703 -0
- synth_ai-0.2.16/synth_ai/v0/tracing_v1/upload.py +527 -0
- synth_ai-0.2.16/synth_ai.egg-info/PKG-INFO +193 -0
- synth_ai-0.2.16/synth_ai.egg-info/SOURCES.txt +878 -0
- synth_ai-0.2.13.dev2/PKG-INFO +0 -139
- synth_ai-0.2.13.dev2/README.md +0 -59
- synth_ai-0.2.13.dev2/examples/multi_step/configs/crafter_rl_stepwise_hosted_judge.toml +0 -186
- synth_ai-0.2.13.dev2/examples/qwen_coder/configs/coder_lora_30b.toml +0 -61
- synth_ai-0.2.13.dev2/examples/qwen_coder/configs/coder_lora_4b.toml +0 -57
- synth_ai-0.2.13.dev2/examples/qwen_coder/configs/coder_lora_small.toml +0 -58
- synth_ai-0.2.13.dev2/examples/rl/README.md +0 -169
- synth_ai-0.2.13.dev2/examples/sft/README.md +0 -139
- synth_ai-0.2.13.dev2/examples/sft/configs/crafter_fft_qwen0p6b.toml +0 -44
- synth_ai-0.2.13.dev2/examples/sft/configs/crafter_lora_qwen0p6b.toml +0 -45
- synth_ai-0.2.13.dev2/examples/sft/evaluate.py +0 -117
- synth_ai-0.2.13.dev2/examples/sft/export_dataset.py +0 -117
- synth_ai-0.2.13.dev2/examples/sft/generate_traces.py +0 -162
- synth_ai-0.2.13.dev2/examples/swe/task_app/README.md +0 -105
- synth_ai-0.2.13.dev2/examples/swe/task_app/grpo_swe_mini.py +0 -600
- synth_ai-0.2.13.dev2/examples/swe/task_app/grpo_swe_mini_task_app.py +0 -136
- synth_ai-0.2.13.dev2/examples/swe/task_app/hosted/envs/mini_swe/environment.py +0 -1164
- synth_ai-0.2.13.dev2/examples/swe/task_app/hosted/policy_routes.py +0 -1079
- synth_ai-0.2.13.dev2/examples/swe/task_app/hosted/rollout.py +0 -1909
- synth_ai-0.2.13.dev2/examples/task_apps/crafter/task_app/__init__.py +0 -2
- synth_ai-0.2.13.dev2/examples/task_apps/crafter/task_app/grpo_crafter.py +0 -675
- synth_ai-0.2.13.dev2/examples/task_apps/crafter/task_app/synth_envs_hosted/envs/crafter/policy.py +0 -534
- synth_ai-0.2.13.dev2/examples/task_apps/crafter/task_app/synth_envs_hosted/inference/openai_client.py +0 -682
- synth_ai-0.2.13.dev2/examples/task_apps/crafter/task_app/synth_envs_hosted/policy_routes.py +0 -1101
- synth_ai-0.2.13.dev2/examples/task_apps/crafter/task_app/synth_envs_hosted/rollout.py +0 -2062
- synth_ai-0.2.13.dev2/examples/task_apps/enron/tests/__init__.py +0 -2
- synth_ai-0.2.13.dev2/examples/task_apps/enron/tests/integration/__init__.py +0 -2
- synth_ai-0.2.13.dev2/examples/task_apps/enron/tests/integration/test_enron_eval.py +0 -177
- synth_ai-0.2.13.dev2/examples/task_apps/enron/tests/unit/__init__.py +0 -2
- synth_ai-0.2.13.dev2/examples/task_apps/pokemon_red/pallet_town_rl_config.toml +0 -73
- synth_ai-0.2.13.dev2/examples/task_apps/pokemon_red/task_app.py +0 -606
- synth_ai-0.2.13.dev2/examples/task_apps/pokemon_red/test_pallet_town_rewards.py +0 -191
- synth_ai-0.2.13.dev2/examples/task_apps/sokoban/tests/__init__.py +0 -2
- synth_ai-0.2.13.dev2/examples/task_apps/sokoban/tests/integration/__init__.py +0 -2
- synth_ai-0.2.13.dev2/examples/task_apps/sokoban/tests/unit/__init__.py +0 -2
- synth_ai-0.2.13.dev2/examples/task_apps/verilog/eval_groq_qwen32b.toml +0 -20
- synth_ai-0.2.13.dev2/examples/task_apps/verilog/task_app/__init__.py +0 -1
- synth_ai-0.2.13.dev2/examples/task_apps/verilog/task_app/grpo_verilog.py +0 -931
- synth_ai-0.2.13.dev2/examples/task_apps/verilog/tests/__init__.py +0 -2
- synth_ai-0.2.13.dev2/examples/task_apps/verilog/tests/integration/__init__.py +0 -2
- synth_ai-0.2.13.dev2/examples/task_apps/verilog/tests/integration/test_verilog_eval.py +0 -179
- synth_ai-0.2.13.dev2/examples/task_apps/verilog/tests/unit/__init__.py +0 -2
- synth_ai-0.2.13.dev2/examples/vlm/README.md +0 -68
- synth_ai-0.2.13.dev2/examples/vlm/configs/crafter_vlm_gpt4o.toml +0 -44
- synth_ai-0.2.13.dev2/examples/vlm/crafter_openai_vlm_agent.py +0 -277
- synth_ai-0.2.13.dev2/examples/vlm/filter_image_rows.py +0 -63
- synth_ai-0.2.13.dev2/examples/vlm/run_crafter_vlm_benchmark.py +0 -316
- synth_ai-0.2.13.dev2/examples/warming_up_to_rl/analyze_trace_db.py +0 -422
- synth_ai-0.2.13.dev2/examples/warming_up_to_rl/configs/crafter_fft.toml +0 -48
- synth_ai-0.2.13.dev2/examples/warming_up_to_rl/configs/crafter_fft_4b.toml +0 -54
- synth_ai-0.2.13.dev2/examples/warming_up_to_rl/configs/eval_fft_qwen4b.toml +0 -20
- synth_ai-0.2.13.dev2/examples/warming_up_to_rl/configs/eval_groq_qwen32b.toml +0 -13
- synth_ai-0.2.13.dev2/examples/warming_up_to_rl/configs/eval_modal_qwen4b.toml +0 -23
- synth_ai-0.2.13.dev2/examples/warming_up_to_rl/configs/rl_from_base_qwen4b.toml +0 -83
- synth_ai-0.2.13.dev2/examples/warming_up_to_rl/configs/rl_from_ft.toml +0 -56
- synth_ai-0.2.13.dev2/examples/warming_up_to_rl/export_trace_sft.py +0 -723
- synth_ai-0.2.13.dev2/examples/warming_up_to_rl/groq_test.py +0 -95
- synth_ai-0.2.13.dev2/examples/warming_up_to_rl/readme.md +0 -179
- synth_ai-0.2.13.dev2/examples/warming_up_to_rl/run_fft_and_save.py +0 -380
- synth_ai-0.2.13.dev2/examples/warming_up_to_rl/run_local_rollout.py +0 -237
- synth_ai-0.2.13.dev2/examples/warming_up_to_rl/run_local_rollout_modal.py +0 -246
- synth_ai-0.2.13.dev2/examples/warming_up_to_rl/run_local_rollout_parallel.py +0 -403
- synth_ai-0.2.13.dev2/examples/warming_up_to_rl/run_local_rollout_traced.py +0 -475
- synth_ai-0.2.13.dev2/examples/warming_up_to_rl/run_rl_and_save.py +0 -124
- synth_ai-0.2.13.dev2/examples/warming_up_to_rl/run_rollout_remote.py +0 -154
- synth_ai-0.2.13.dev2/pyproject.toml +0 -214
- synth_ai-0.2.13.dev2/synth_ai/__init__.py +0 -77
- synth_ai-0.2.13.dev2/synth_ai/api/models/supported.py +0 -376
- synth_ai-0.2.13.dev2/synth_ai/api/train/__init__.py +0 -5
- synth_ai-0.2.13.dev2/synth_ai/api/train/cli.py +0 -635
- synth_ai-0.2.13.dev2/synth_ai/api/train/config_finder.py +0 -228
- synth_ai-0.2.13.dev2/synth_ai/api/train/env_resolver.py +0 -349
- synth_ai-0.2.13.dev2/synth_ai/cli/__init__.py +0 -73
- synth_ai-0.2.13.dev2/synth_ai/cli/_modal_wrapper.py +0 -28
- synth_ai-0.2.13.dev2/synth_ai/cli/_typer_patch.py +0 -49
- synth_ai-0.2.13.dev2/synth_ai/cli/_validate_task_app.py +0 -11
- synth_ai-0.2.13.dev2/synth_ai/cli/legacy_root_backup.py +0 -468
- synth_ai-0.2.13.dev2/synth_ai/cli/man.py +0 -106
- synth_ai-0.2.13.dev2/synth_ai/cli/recent.py +0 -132
- synth_ai-0.2.13.dev2/synth_ai/cli/task_apps.py +0 -4312
- synth_ai-0.2.13.dev2/synth_ai/compound/cais.py +0 -0
- synth_ai-0.2.13.dev2/synth_ai/core/experiment.py +0 -13
- synth_ai-0.2.13.dev2/synth_ai/core/system.py +0 -15
- synth_ai-0.2.13.dev2/synth_ai/demo_registry.py +0 -295
- synth_ai-0.2.13.dev2/synth_ai/demos/core/__init__.py +0 -1
- synth_ai-0.2.13.dev2/synth_ai/demos/demo_task_apps/crafter/grpo_crafter_task_app.py +0 -184
- synth_ai-0.2.13.dev2/synth_ai/environments/environment/core.py +0 -67
- synth_ai-0.2.13.dev2/synth_ai/environments/examples/bandit/engine.py +0 -302
- synth_ai-0.2.13.dev2/synth_ai/environments/examples/bandit/environment.py +0 -194
- synth_ai-0.2.13.dev2/synth_ai/environments/examples/crafter_classic/environment.py +0 -495
- synth_ai-0.2.13.dev2/synth_ai/environments/examples/verilog/engine.py +0 -355
- synth_ai-0.2.13.dev2/synth_ai/environments/examples/wordle/environment.py +0 -159
- synth_ai-0.2.13.dev2/synth_ai/evals/base.py +0 -13
- synth_ai-0.2.13.dev2/synth_ai/evals/client.py +0 -82
- synth_ai-0.2.13.dev2/synth_ai/handshake.py +0 -109
- synth_ai-0.2.13.dev2/synth_ai/http.py +0 -26
- synth_ai-0.2.13.dev2/synth_ai/inference/client.py +0 -34
- synth_ai-0.2.13.dev2/synth_ai/learning/client.py +0 -241
- synth_ai-0.2.13.dev2/synth_ai/learning/health.py +0 -49
- synth_ai-0.2.13.dev2/synth_ai/learning/jobs.py +0 -201
- synth_ai-0.2.13.dev2/synth_ai/learning/rl/client.py +0 -267
- synth_ai-0.2.13.dev2/synth_ai/learning/rl/env_keys.py +0 -166
- synth_ai-0.2.13.dev2/synth_ai/learning/rl/secrets.py +0 -13
- synth_ai-0.2.13.dev2/synth_ai/learning/sft/client.py +0 -68
- synth_ai-0.2.13.dev2/synth_ai/learning/sft/data.py +0 -295
- synth_ai-0.2.13.dev2/synth_ai/learning/validators.py +0 -49
- synth_ai-0.2.13.dev2/synth_ai/task/__init__.py +0 -111
- synth_ai-0.2.13.dev2/synth_ai/task/apps/__init__.py +0 -128
- synth_ai-0.2.13.dev2/synth_ai/task/contracts.py +0 -223
- synth_ai-0.2.13.dev2/synth_ai/task/rubrics/__init__.py +0 -53
- synth_ai-0.2.13.dev2/synth_ai/task/rubrics/loaders.py +0 -133
- synth_ai-0.2.13.dev2/synth_ai/task/rubrics/scoring.py +0 -113
- synth_ai-0.2.13.dev2/synth_ai/task/tracing_utils.py +0 -84
- synth_ai-0.2.13.dev2/synth_ai/task/validators.py +0 -274
- synth_ai-0.2.13.dev2/synth_ai/tracing_v3/config.py +0 -84
- synth_ai-0.2.13.dev2/synth_ai/tracing_v3/db_config.py +0 -194
- synth_ai-0.2.13.dev2/synth_ai/tracing_v3/decorators.py +0 -398
- synth_ai-0.2.13.dev2/synth_ai/tracing_v3/session_tracer.py +0 -530
- synth_ai-0.2.13.dev2/synth_ai/tracing_v3/turso/daemon.py +0 -150
- synth_ai-0.2.13.dev2/synth_ai/tracing_v3/turso/native_manager.py +0 -1186
- synth_ai-0.2.13.dev2/synth_ai/tracing_v3/utils.py +0 -108
- synth_ai-0.2.13.dev2/synth_ai/v0/config/__init__.py +0 -15
- synth_ai-0.2.13.dev2/synth_ai/v0/config/base_url.py +0 -12
- synth_ai-0.2.13.dev2/synth_ai/v0/tracing/config.py +0 -142
- synth_ai-0.2.13.dev2/synth_ai/v0/tracing/decorators.py +0 -682
- synth_ai-0.2.13.dev2/synth_ai/v0/tracing/upload.py +0 -409
- synth_ai-0.2.13.dev2/synth_ai/v0/tracing_v1/config.py +0 -142
- synth_ai-0.2.13.dev2/synth_ai/v0/tracing_v1/decorators.py +0 -703
- synth_ai-0.2.13.dev2/synth_ai/v0/tracing_v1/upload.py +0 -527
- synth_ai-0.2.13.dev2/synth_ai.egg-info/PKG-INFO +0 -139
- synth_ai-0.2.13.dev2/synth_ai.egg-info/SOURCES.txt +0 -727
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/LICENSE +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/MANIFEST.in +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/analyze_semantic_words.sh +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/crafter_debug_render.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/dev/qwen3_32b_qlora_4xh100.toml +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/multi_step/configs/crafter_rl_outcome.toml +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/multi_step/configs/crafter_rl_stepwise_shaped.toml +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/multi_step/configs/crafter_rl_stepwise_simple.toml +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/multi_step/crafter_rl_lora.md +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/multi_step/sse_metrics_streaming_notes.md +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/multi_step/task_app_config_notes.md +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/qwen_coder/README.md +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/qwen_coder/_shared.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/qwen_coder/generate_dataset.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/qwen_coder/infer_ft_smoke.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/qwen_coder/infer_prod_proxy.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/qwen_coder/infer_via_synth.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/qwen_coder/scripts/infer_coder.sh +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/qwen_coder/scripts/train_coder_30b.sh +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/qwen_coder/sft_full_17b.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/qwen_coder/sft_lora_30b.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/qwen_coder/subset_jsonl.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/qwen_coder/todos.md +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/qwen_coder/validate_jsonl.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/rl/download_dataset.py +0 -0
- {synth_ai-0.2.13.dev2/examples/workflows/math_rl → synth_ai-0.2.16/examples/rl}/run_eval.py +0 -0
- {synth_ai-0.2.13.dev2/examples/workflows/math_rl → synth_ai-0.2.16/examples/rl}/run_rl_and_save.py +0 -0
- {synth_ai-0.2.13.dev2/examples/task_apps/math → synth_ai-0.2.16/examples/rl/task_app}/README.md +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/run_crafter_demo.sh +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/swe/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/swe/task_app/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/swe/task_app/hosted/README.md +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/swe/task_app/hosted/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/swe/task_app/hosted/branching.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/swe/task_app/hosted/environment_routes.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/swe/task_app/hosted/envs/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/swe/task_app/hosted/envs/crafter/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/swe/task_app/hosted/envs/crafter/app.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/swe/task_app/hosted/envs/crafter/environment.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/swe/task_app/hosted/envs/crafter/policy.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/swe/task_app/hosted/envs/crafter/react_agent.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/swe/task_app/hosted/envs/crafter/shared.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/swe/task_app/hosted/envs/crafter/tools.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/swe/task_app/hosted/envs/mini_swe/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/swe/task_app/hosted/envs/mini_swe/policy.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/swe/task_app/hosted/envs/mini_swe/shared.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/swe/task_app/hosted/envs/mini_swe/tools.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/swe/task_app/hosted/hosted_app.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/swe/task_app/hosted/inference/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/swe/task_app/hosted/inference/openai_client.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/swe/task_app/hosted/main.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/swe/task_app/hosted/registry.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/swe/task_app/hosted/storage/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/swe/task_app/hosted/storage/volume.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/swe/task_app/hosted/test_agents.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/swe/task_app/hosted/test_service.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/swe/task_app/hosted/utils.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/TESTING.md +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/crafter/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/crafter/task_app/README.md +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/crafter/task_app/grpo_crafter_task_app.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/crafter/task_app/synth_envs_hosted/README.md +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/crafter/task_app/synth_envs_hosted/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/crafter/task_app/synth_envs_hosted/branching.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/crafter/task_app/synth_envs_hosted/environment_routes.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/crafter/task_app/synth_envs_hosted/envs/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/crafter/task_app/synth_envs_hosted/envs/crafter/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/crafter/task_app/synth_envs_hosted/envs/crafter/app.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/crafter/task_app/synth_envs_hosted/envs/crafter/shared.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/crafter/task_app/synth_envs_hosted/envs/crafter/tools.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/crafter/task_app/synth_envs_hosted/hosted_app.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/crafter/task_app/synth_envs_hosted/inference/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/crafter/task_app/synth_envs_hosted/main.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/crafter/task_app/synth_envs_hosted/registry.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/crafter/task_app/synth_envs_hosted/storage/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/crafter/task_app/synth_envs_hosted/storage/volume.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/crafter/task_app/synth_envs_hosted/test_agents.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/crafter/task_app/synth_envs_hosted/test_service.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/README.md +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/agent/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/agent/action.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/agent/memory.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/agent/perception.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/agent/planning.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/agent/simple.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/agent/system_prompt.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/grab_map.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/manual.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/pokemon_env/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/pokemon_env/emerald_utils.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/pokemon_env/emulator.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/pokemon_env/enums.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/pokemon_env/memory_reader.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/pokemon_env/types.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/pokemon_env/utils.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/pyproject.toml +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/run.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/server/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/server/app.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/server/client.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/server/frame_server.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/tests/README.md +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/tests/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/tests/run_tests.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/tests/test_agent_direct.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/tests/test_agent_prompts.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/tests/test_battle_state_formatting.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/tests/test_dialogue_detection.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/tests/test_dialogue_detection_comprehensive.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/tests/test_direct_agent_emulator.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/tests/test_fps_adjustment_pytest.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/tests/test_house_to_outside_direct.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/tests/test_house_to_outside_transition.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/tests/test_map_ground_truth_comparison.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/tests/test_memory_map.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/tests/test_server_map_validation.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/tests/test_torchic_state.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/utils/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/utils/anticheat.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/utils/checkpoint.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/utils/error_handler.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/utils/get_local_ip.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/utils/helpers.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/utils/llm_logger.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/utils/map_formatter.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/utils/map_stitcher.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/utils/map_stitcher_singleton.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/utils/map_trimmer.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/utils/map_visualizer.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/utils/ocr_dialogue.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/utils/recording.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/utils/state_formatter.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/external/pokeagent-speedrun/utils/vlm.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/modal_app.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/task_app/README.md +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/task_app/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/dev/pokemon_emerald/task_app/pokemon_emerald.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/enron/eval_groq_qwen32.toml +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/enron/task_app/README.md +0 -0
- {synth_ai-0.2.13.dev2/examples/task_apps/enron → synth_ai-0.2.16/examples/task_apps/enron/task_app}/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/enron/task_app/grpo_enron.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/enron/task_app/grpo_enron_task_app.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/enron/tests/conftest.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/enron/tests/integration/test_enron_rollout.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/enron/tests/unit/test_enron_environment.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/math/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/math/math_single_step.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/math/math_task_app.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/pokemon_battle/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/pokemon_battle/modal_app.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/pokemon_battle/task_app/README.md +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/pokemon_battle/task_app/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/pokemon_battle/task_app/pokemon_showdown.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/pokemon_red/README.md +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/pokemon_red/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/pokemon_red/eval_pokemon_red_policy.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/sokoban/README.md +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/sokoban/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/sokoban/eval_groq_qwen32.toml +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/sokoban/eval_openai_gpt5.toml +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/sokoban/task_app.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/sokoban/tests/conftest.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/sokoban/tests/integration/test_sokoban_eval.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/sokoban/tests/integration/test_sokoban_rollout.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/sokoban/tests/unit/test_sokoban_environment.py +0 -0
- {synth_ai-0.2.13.dev2/examples/task_apps/enron/task_app → synth_ai-0.2.16/examples/task_apps/verilog}/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/verilog/task_app/README.md +0 -0
- {synth_ai-0.2.13.dev2/examples/task_apps/verilog → synth_ai-0.2.16/examples/task_apps/verilog/task_app}/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/verilog/task_app/grpo_verilog_task_app.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/verilog/tests/conftest.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/verilog/tests/integration/test_verilog_rollout.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/task_apps/verilog/tests/unit/test_verilog_scoring.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/vlm/PROPOSAL.md +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/vlm/crafter_image_only_agent.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/warming_up_to_rl/configs/eval_stepwise_complex.toml +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/warming_up_to_rl/configs/eval_stepwise_consistent.toml +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/warming_up_to_rl/configs/eval_stepwise_per_achievement.toml +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/warming_up_to_rl/configs/eval_stepwise_simple.toml +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/warming_up_to_rl/manage_secrets.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/warming_up_to_rl/old/event_rewards.md +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/warming_up_to_rl/old/notes.md +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/warming_up_to_rl/run_eval.py +0 -0
- {synth_ai-0.2.13.dev2/examples/task_apps/crafter → synth_ai-0.2.16/examples/warming_up_to_rl}/task_app/synth_envs_hosted/envs/crafter/environment.py +0 -0
- {synth_ai-0.2.13.dev2/examples/task_apps/crafter → synth_ai-0.2.16/examples/warming_up_to_rl}/task_app/synth_envs_hosted/envs/crafter/react_agent.py +0 -0
- {synth_ai-0.2.13.dev2/examples/task_apps/crafter → synth_ai-0.2.16/examples/warming_up_to_rl}/task_app/synth_envs_hosted/utils.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/workflows/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/workflows/math_rl/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/workflows/math_rl/configs/eval_base_qwen.toml +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/workflows/math_rl/configs/eval_rl_qwen.toml +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/workflows/math_rl/configs/rl_from_base_qwen.toml +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/workflows/math_rl/configs/rl_from_base_qwen17.toml +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/workflows/math_rl/configs/rl_from_ft_qwen.toml +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/examples/workflows/math_rl/download_dataset.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/setup.cfg +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/__main__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/api/train/builders.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/api/train/configs/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/api/train/configs/rl.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/api/train/configs/sft.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/api/train/configs/shared.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/api/train/pollers.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/api/train/supported_algos.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/api/train/task_app.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/api/train/utils.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/cli/_storage.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/cli/balance.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/cli/calc.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/cli/demo.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/cli/rl_demo.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/cli/root.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/cli/status.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/cli/traces.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/cli/turso.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/cli/watch.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/config/base_url.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/demos/core/cli.py +0 -0
- {synth_ai-0.2.13.dev2/synth_ai/demos/demo_task_apps → synth_ai-0.2.16/synth_ai/demos}/crafter/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/demos/demo_task_apps/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/demos/demo_task_apps/core.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/demos/demo_task_apps/crafter/configs/crafter_fft_4b.toml +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/demos/demo_task_apps/crafter/configs/rl_from_base_qwen4b.toml +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/demos/demo_task_apps/math/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/demos/demo_task_apps/math/_common.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/demos/demo_task_apps/math/app.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/demos/demo_task_apps/math/config.toml +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/demos/demo_task_apps/math/deploy_modal.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/demos/demo_task_apps/math/deploy_task_app.sh +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/demos/demo_task_apps/math/modal_task_app.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/demos/demo_task_apps/math/task_app_entry.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/environment/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/environment/artifacts/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/environment/artifacts/base.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/environment/db/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/environment/db/sqlite.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/environment/registry.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/environment/resources/sqlite.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/environment/results.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/environment/rewards/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/environment/rewards/core.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/environment/shared_engine.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/environment/tools/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/bandit/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/bandit/taskset.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/analyze_semantic_words_markdown.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_comprehensive_evaluation.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_evaluation_browser.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_evaluation_config.toml +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_evaluation_framework.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/crafter_synth_config.toml +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/filter_config_modal.toml +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/filter_traces_sft_turso.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/kick_off_ft_modal.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/analyze_action_results.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/analyze_agent_actions.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/analyze_latest_run.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/analyze_lm_traces.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/analyze_no_rewards.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/analyze_trace_issue.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/check_db_schema.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/check_latest_results.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/debug_agent_responses.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/quick_trace_check.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/compare_experiments.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/filter_traces_sft_turso.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/kick_off_ft_oai.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/multi_model_config.toml +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/analyze_enhanced_hooks.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/analyze_hook_events.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/analyze_hook_results.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/check_hook_storage.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/check_seeds.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/compare_seed_performance.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/custom_eval_pipelines.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/plot_hook_frequency.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/seed_analysis_summary.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/run_rollouts_for_models_and_compare_v3.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_quick_evaluation.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_react_agent.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_trace_evaluation.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/example_v3_usage.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/old/compare_traces.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/old/crafter_comprehensive_evaluation.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/old/crafter_env_serialization.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/old/crafter_evaluation_browser.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/old/crafter_quick_evaluation.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/old/crafter_trace_evaluation.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/old/debug_player_loss.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/old/diagnose_service.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/old/diagnose_slowness.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/old/eval_by_difficulty.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/old/eval_example.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/old/explore_saved_states.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/old/filter_traces_sft.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/old/filter_traces_sft_OLD.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/old/generate_ft_data_gemini.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/old/generate_ft_data_modal.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/old/generate_ft_metadata.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/old/kick_off_ft_gemini.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/old/kick_off_ft_modal.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/old/prepare_vertex_ft.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/old/profile_env_slowness.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/old/replicate_issue.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/old/run_and_eval.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/old/run_comparison.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/old/run_qwen_rollouts.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/old/trace_eval_OLD.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/agent_demos/old/validate_openai_format.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/config_logging.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/debug_translation.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/engine.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/engine_deterministic_patch.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/engine_helpers/action_map.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/engine_helpers/serialization.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/engine_serialization_patch_v3.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/taskset.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/trace_hooks_v3.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_classic/world_config_patch_simple.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_custom/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_custom/agent_demos/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_custom/agent_demos/trace_eval.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_custom/crafter/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_custom/crafter/config.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_custom/crafter/constants.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_custom/crafter/engine.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_custom/crafter/env.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_custom/crafter/objects.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_custom/crafter/recorder.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_custom/crafter/worldgen.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_custom/dataset_builder.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_custom/environment.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_custom/old/analyze_diamond_issue.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_custom/old/analyze_diamond_spawning.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_custom/old/compare_worlds.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_custom/old/dataset_stats.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_custom/old/diamond_spawning_summary.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_custom/old/example_dataset_usage.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/crafter_custom/run_dataset.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/enron/art_helpers/email_search_tools.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/enron/art_helpers/local_email_db.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/enron/art_helpers/types_enron.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/enron/engine.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/enron/environment.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/enron/taskset.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/enron/units/keyword_stats.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/minigrid/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/minigrid/agent_demos/minigrid_evaluation_framework.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/minigrid/agent_demos/minigrid_quick_evaluation.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/minigrid/agent_demos/minigrid_react_agent.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/minigrid/agent_demos/minigrid_trace_evaluation.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/minigrid/engine.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/minigrid/environment.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/minigrid/environment_mapping.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/minigrid/puzzle_loader.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/minigrid/taskset.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/nethack/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/nethack/achievements.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/nethack/agent_demos/nethack_evaluation_framework.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/nethack/agent_demos/nethack_quick_evaluation.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/nethack/agent_demos/nethack_react_agent.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/nethack/engine.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/nethack/environment.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/nethack/helpers/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/nethack/helpers/action_mapping.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/nethack/helpers/nle_wrapper.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/nethack/helpers/observation_utils.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/nethack/helpers/recording_wrapper.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/nethack/helpers/trajectory_recorder.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/nethack/helpers/visualization/replay_viewer.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/nethack/helpers/visualization/visualizer.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/nethack/taskset.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/red/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/red/agent_demos/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/red/config_logging.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/red/engine.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/red/engine_helpers/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/red/engine_helpers/memory_map.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/red/engine_helpers/reward_components.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/red/engine_helpers/reward_library/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/red/engine_helpers/reward_library/adaptive_rewards.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/red/engine_helpers/reward_library/battle_rewards.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/red/engine_helpers/reward_library/composite_rewards.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/red/engine_helpers/reward_library/economy_rewards.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/red/engine_helpers/reward_library/efficiency_rewards.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/red/engine_helpers/reward_library/exploration_rewards.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/red/engine_helpers/reward_library/novelty_rewards.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/red/engine_helpers/reward_library/pallet_town_progression.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/red/engine_helpers/reward_library/pallet_town_rewards.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/red/engine_helpers/reward_library/pokemon_rewards.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/red/engine_helpers/reward_library/social_rewards.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/red/engine_helpers/reward_library/story_rewards.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/red/engine_helpers/screen_analysis.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/red/engine_helpers/state_extraction.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/red/environment.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/red/taskset.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/red/units/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/sokoban/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/sokoban/agent_demos/sokoban_full_eval.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/sokoban/engine.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/sokoban/engine_helpers/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/sokoban/engine_helpers/room_utils.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/sokoban/engine_helpers/vendored/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/boxoban_env.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/render_utils.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/room_utils.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/sokoban_env.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/sokoban_env_fixed_targets.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/sokoban_env_pull.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/sokoban_env_two_player.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/sokoban_env_variations.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/sokoban/environment.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/sokoban/generate_verified_puzzles.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/sokoban/puzzle_loader.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/sokoban/taskset.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/tictactoe/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/tictactoe/engine.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/tictactoe/environment.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/tictactoe/taskset.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/verilog/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/verilog/environment.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/verilog/taskset.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/wordle/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/wordle/engine.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/wordle/helpers/generate_instances_wordfreq.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/examples/wordle/taskset.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/reproducibility/core.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/reproducibility/helpers.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/reproducibility/tree.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/service/app.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/service/core_routes.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/service/external_registry.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/service/registry.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/stateful/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/stateful/core.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/stateful/engine.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/stateful/state.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/tasks/api.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/tasks/core.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/tasks/filters.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/tasks/utils.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/v0_observability/history.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/environments/v0_observability/log.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/evals/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/evals/types.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/http_client.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/inference/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/jobs/client.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/judge_schemas.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/learning/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/learning/algorithms.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/learning/config.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/learning/constants.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/learning/core.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/learning/ft_client.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/learning/gateway.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/learning/rl/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/learning/rl/config.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/learning/rl/contracts.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/learning/rl_client.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/learning/sft/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/learning/sft/config.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/learning/sse.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/lm/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/py.typed +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/task/auth.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/task/client.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/task/datasets.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/task/errors.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/task/health.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/task/json.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/task/proxy.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/task/rubrics/models.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/task/rubrics/strict.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/task/server.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/task/vendors.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/tracing_v3/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/tracing_v3/abstractions.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/tracing_v3/examples/basic_usage.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/tracing_v3/hooks.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/tracing_v3/llm_call_record_helpers.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/tracing_v3/lm_call_record_abstractions.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/tracing_v3/migration_helper.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/tracing_v3/replica_sync.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/tracing_v3/serialization.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/tracing_v3/storage/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/tracing_v3/storage/base.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/tracing_v3/storage/config.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/tracing_v3/storage/exceptions.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/tracing_v3/storage/factory.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/tracing_v3/storage/types.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/tracing_v3/storage/utils.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/tracing_v3/trace_utils.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/tracing_v3/turso/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/tracing_v3/turso/models.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/api/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/api/models/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/api/models/supported.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/caching/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/caching/constants.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/caching/dbs.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/caching/ephemeral.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/caching/handler.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/caching/initialize.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/caching/persistent.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/config.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/constants.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/core/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/core/all.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/core/exceptions.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/core/main.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/core/main_v3.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/core/synth_models.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/core/vendor_clients.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/cost/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/cost/monitor.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/cost/statefulness.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/injection.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/overrides.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/provider_support/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/provider_support/anthropic.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/provider_support/openai.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/provider_support/suppress_logging.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/structured_outputs/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/structured_outputs/handler.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/structured_outputs/inject.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/structured_outputs/rehabilitate.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/tools/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/tools/base.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/unified_interface.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/vendors/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/vendors/base.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/vendors/core/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/vendors/core/anthropic_api.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/vendors/core/gemini_api.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/vendors/core/mistral_api.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/vendors/core/openai_api.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/vendors/core/synth_dev_api.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/vendors/local/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/vendors/local/ollama.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/vendors/openai_standard.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/vendors/openai_standard_responses.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/vendors/retries.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/vendors/supported/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/vendors/supported/custom_endpoint.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/vendors/supported/deepseek.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/vendors/supported/grok.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/vendors/supported/groq.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/vendors/supported/ollama.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/vendors/supported/openrouter.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/vendors/supported/together.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/vendors/synth_client.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/lm/warmup.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/tracing/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/tracing/abstractions.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/tracing/base_client.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/tracing/client_manager.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/tracing/context.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/tracing/events/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/tracing/events/manage.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/tracing/events/scope.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/tracing/events/store.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/tracing/immediate_client.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/tracing/local.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/tracing/log_client_base.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/tracing/retry_queue.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/tracing/trackers.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/tracing/utils.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/tracing_v1/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/tracing_v1/abstractions.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/tracing_v1/base_client.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/tracing_v1/client_manager.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/tracing_v1/context.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/tracing_v1/events/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/tracing_v1/events/manage.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/tracing_v1/events/scope.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/tracing_v1/events/store.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/tracing_v1/immediate_client.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/tracing_v1/local.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/tracing_v1/log_client_base.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/tracing_v1/retry_queue.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/tracing_v1/trackers.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/tracing_v1/utils.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/tracing_v3/__init__.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/tracing_v3/abstractions.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/tracing_v3/decorators.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/tracing_v3/llm_call_record_helpers.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai/v0/tracing_v3/session_tracer.py +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai.egg-info/dependency_links.txt +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai.egg-info/entry_points.txt +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai.egg-info/requires.txt +0 -0
- {synth_ai-0.2.13.dev2 → synth_ai-0.2.16}/synth_ai.egg-info/top_level.txt +0 -0
synth_ai-0.2.16/PKG-INFO
ADDED
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: synth-ai
|
|
3
|
+
Version: 0.2.16
|
|
4
|
+
Summary: RL as a service SDK - Core AI functionality and tracing
|
|
5
|
+
Author-email: Synth AI <josh@usesynth.ai>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/synth-laboratories/synth-ai
|
|
8
|
+
Project-URL: Repository, https://github.com/synth-laboratories/synth-ai
|
|
9
|
+
Project-URL: Issues, https://github.com/synth-laboratories/synth-ai/issues
|
|
10
|
+
Requires-Python: >=3.11
|
|
11
|
+
Description-Content-Type: text/markdown
|
|
12
|
+
License-File: LICENSE
|
|
13
|
+
Requires-Dist: pydantic>=2.0.0
|
|
14
|
+
Requires-Dist: python-dotenv>=1.0.1
|
|
15
|
+
Requires-Dist: requests>=2.32.3
|
|
16
|
+
Requires-Dist: urllib3>=2.3.0
|
|
17
|
+
Requires-Dist: certifi>=2024.8.30
|
|
18
|
+
Requires-Dist: tqdm>=4.66.4
|
|
19
|
+
Requires-Dist: jsonschema>=4.23.0
|
|
20
|
+
Requires-Dist: backoff>=2.0.0
|
|
21
|
+
Requires-Dist: typing_extensions>=4.0.0
|
|
22
|
+
Requires-Dist: openai>=1.99.0
|
|
23
|
+
Requires-Dist: anthropic>=0.42.0
|
|
24
|
+
Requires-Dist: langfuse<3.0.0,>=2.53.9
|
|
25
|
+
Requires-Dist: opentelemetry-api<1.27.0,>=1.26.0
|
|
26
|
+
Requires-Dist: opentelemetry-sdk<1.27.0,>=1.26.0
|
|
27
|
+
Requires-Dist: diskcache>=5.6.3
|
|
28
|
+
Requires-Dist: groq>=0.30.0
|
|
29
|
+
Requires-Dist: google-genai>=1.26.0
|
|
30
|
+
Requires-Dist: together>=1.5.21
|
|
31
|
+
Requires-Dist: mistralai>=1.9.2
|
|
32
|
+
Requires-Dist: fastapi>=0.115.12
|
|
33
|
+
Requires-Dist: uvicorn>=0.34.2
|
|
34
|
+
Requires-Dist: numpy>=2.2.3
|
|
35
|
+
Requires-Dist: networkx>=3.4.2
|
|
36
|
+
Requires-Dist: redis>=6.2.0
|
|
37
|
+
Requires-Dist: duckdb>=1.0.0
|
|
38
|
+
Requires-Dist: ty>=0.0.1a5
|
|
39
|
+
Requires-Dist: toml>=0.10.2
|
|
40
|
+
Requires-Dist: sqlalchemy>=2.0.42
|
|
41
|
+
Requires-Dist: aiosqlite>=0.21.0
|
|
42
|
+
Requires-Dist: greenlet>=3.2.3
|
|
43
|
+
Requires-Dist: libsql>=0.1.8
|
|
44
|
+
Requires-Dist: pynacl>=1.5.0
|
|
45
|
+
Requires-Dist: google-api-core>=2.25.1
|
|
46
|
+
Requires-Dist: google-generativeai>=0.8.5
|
|
47
|
+
Requires-Dist: crafter>=1.8.3
|
|
48
|
+
Requires-Dist: click<8.2,>=8.1.7
|
|
49
|
+
Requires-Dist: textual>=1.1.0
|
|
50
|
+
Requires-Dist: openai-harmony>=0.0.1
|
|
51
|
+
Requires-Dist: asyncpg>=0.30.0
|
|
52
|
+
Requires-Dist: aiohttp>=3.8.0
|
|
53
|
+
Requires-Dist: httpx>=0.28.1
|
|
54
|
+
Requires-Dist: datasets>=4.0.0
|
|
55
|
+
Requires-Dist: transformers>=4.56.1
|
|
56
|
+
Requires-Dist: modal==1.1.4
|
|
57
|
+
Requires-Dist: pyboy>=2.6.0
|
|
58
|
+
Requires-Dist: setuptools>=80.9.0
|
|
59
|
+
Provides-Extra: dev
|
|
60
|
+
Requires-Dist: build>=1.2.2.post1; extra == "dev"
|
|
61
|
+
Requires-Dist: twine>=4.0.0; extra == "dev"
|
|
62
|
+
Requires-Dist: keyring>=24.0.0; extra == "dev"
|
|
63
|
+
Requires-Dist: pytest>=8.3.3; extra == "dev"
|
|
64
|
+
Requires-Dist: pytest-xdist>=3.6.1; extra == "dev"
|
|
65
|
+
Requires-Dist: pytest-timeout>=2.3.1; extra == "dev"
|
|
66
|
+
Requires-Dist: pytest-asyncio>=0.24.0; extra == "dev"
|
|
67
|
+
Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
|
|
68
|
+
Requires-Dist: pyright>=1.1.350; extra == "dev"
|
|
69
|
+
Requires-Dist: coverage[toml]>=7.3.0; extra == "dev"
|
|
70
|
+
Requires-Dist: ruff>=0.1.0; extra == "dev"
|
|
71
|
+
Provides-Extra: research
|
|
72
|
+
Requires-Dist: crafter>=1.8.3; extra == "research"
|
|
73
|
+
Requires-Dist: datasets>=4.0.0; extra == "research"
|
|
74
|
+
Provides-Extra: all
|
|
75
|
+
Requires-Dist: crafter>=1.8.3; extra == "all"
|
|
76
|
+
Requires-Dist: datasets>=4.0.0; extra == "all"
|
|
77
|
+
Provides-Extra: analytics
|
|
78
|
+
Requires-Dist: pandas>=2.2.3; extra == "analytics"
|
|
79
|
+
Dynamic: license-file
|
|
80
|
+
|
|
81
|
+
# Synth-AI SDK
|
|
82
|
+
|
|
83
|
+
[](https://www.python.org/)
|
|
84
|
+
[](LICENSE)
|
|
85
|
+
[](https://pypi.org/project/synth-ai/)
|
|
86
|
+

|
|
87
|
+

|
|
88
|
+

|
|
89
|
+
|
|
90
|
+
> **Synth-AI** — Reinforcement Learning-as-a-Service for agents.
|
|
91
|
+
> **Docs:** [Get Started →](https://docs.usesynth.ai/sdk/get-started)
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## 🚀 Install
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
pip install synth-ai
|
|
99
|
+
# or
|
|
100
|
+
uv add synth-ai
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
**Import:**
|
|
104
|
+
|
|
105
|
+
```python
|
|
106
|
+
import synth_ai
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
**CLI (with uvx):**
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
uvx synth-ai setup
|
|
113
|
+
uvx synth-ai demo
|
|
114
|
+
uvx synth-ai deploy
|
|
115
|
+
uvx synth-ai run
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
> Full quickstart: [https://docs.usesynth.ai/sdk/get-started](https://docs.usesynth.ai/sdk/get-started)
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
When you run `uvx synth-ai setup`, the SDK opens your browser to the Synth dashboard for a one‑time pairing (handshake) with your signed‑in session. The SDK will automatically:
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
Fast and effective reinforcement learning for agents, via an API.
|
|
126
|
+
Easily scale GPU topologies, train multi-node, and integrate with existing agent software.
|
|
127
|
+
|
|
128
|
+
### Highlights
|
|
129
|
+
|
|
130
|
+
- Scale GPU topologies (A10Gs, H100s, multi-node available on request)
|
|
131
|
+
- Thin FastAPI wrapper integration
|
|
132
|
+
- Supports OSS models like **Qwen3** (GPT-OSS GA soon)
|
|
133
|
+
- Own your trained models
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## ⚙️ Getting Started
|
|
138
|
+
|
|
139
|
+
Synth-AI ships with a built-in RL example: training **Qwen3-0.6B** on math reasoning.
|
|
140
|
+
|
|
141
|
+
1. Create accounts at [Synth](https://usesynth.ai) and [Modal](https://modal.com)
|
|
142
|
+
2. Then run:
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
uvx synth-ai demo
|
|
146
|
+
uvx synth-ai setup
|
|
147
|
+
uvx synth-ai deploy
|
|
148
|
+
uvx synth-ai run
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
3. To walk through your first RL run, see
|
|
152
|
+
👉 [Synth-AI SDK Docs](https://docs.usesynth.ai/sdk/get-started)
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## 🔐 SDK → Dashboard Pairing
|
|
157
|
+
|
|
158
|
+
When you run `uvx synth-ai setup` (or legacy `uvx synth-ai rl_demo setup`):
|
|
159
|
+
|
|
160
|
+
- The SDK opens your browser to the Synth dashboard to pair your SDK with your signed-in session.
|
|
161
|
+
- Automatically detects your **user + organization**
|
|
162
|
+
- Ensures both **API keys** exist
|
|
163
|
+
- Writes them to your project’s `.env` as:
|
|
164
|
+
|
|
165
|
+
```
|
|
166
|
+
SYNTH_API_KEY=
|
|
167
|
+
ENVIRONMENT_API_KEY=
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
✅ No keys printed or requested interactively — all handled via browser pairing.
|
|
171
|
+
|
|
172
|
+
### Environment overrides
|
|
173
|
+
|
|
174
|
+
- `SYNTH_CANONICAL_ORIGIN` → override dashboard base URL (default: https://www.usesynth.ai/dashboard)
|
|
175
|
+
- `SYNTH_CANONICAL_DEV` → `1|true|on` to use local dashboard (http://localhost:3000)
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## 📚 Documentation
|
|
180
|
+
|
|
181
|
+
- **SDK Docs:** [https://docs.usesynth.ai/sdk/get-started](https://docs.usesynth.ai/sdk/get-started)
|
|
182
|
+
- **CLI Reference:** [https://docs.usesynth.ai/cli](https://docs.usesynth.ai/cli)
|
|
183
|
+
- **API Reference:** [https://docs.usesynth.ai/api](https://docs.usesynth.ai/api)
|
|
184
|
+
- **Changelog:** [https://docs.usesynth.ai/changelog](https://docs.usesynth.ai/changelog)
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## 🧠 Meta
|
|
189
|
+
|
|
190
|
+
- Package: [`synth-ai`](https://pypi.org/project/synth-ai)
|
|
191
|
+
- Import: `synth_ai`
|
|
192
|
+
- Source: [github.com/synth-laboratories/synth-ai](https://github.com/synth-laboratories/synth-ai)
|
|
193
|
+
- License: MIT
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# Synth-AI SDK
|
|
2
|
+
|
|
3
|
+
[](https://www.python.org/)
|
|
4
|
+
[](LICENSE)
|
|
5
|
+
[](https://pypi.org/project/synth-ai/)
|
|
6
|
+

|
|
7
|
+

|
|
8
|
+

|
|
9
|
+
|
|
10
|
+
> **Synth-AI** — Reinforcement Learning-as-a-Service for agents.
|
|
11
|
+
> **Docs:** [Get Started →](https://docs.usesynth.ai/sdk/get-started)
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 🚀 Install
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
pip install synth-ai
|
|
19
|
+
# or
|
|
20
|
+
uv add synth-ai
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
**Import:**
|
|
24
|
+
|
|
25
|
+
```python
|
|
26
|
+
import synth_ai
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**CLI (with uvx):**
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
uvx synth-ai setup
|
|
33
|
+
uvx synth-ai demo
|
|
34
|
+
uvx synth-ai deploy
|
|
35
|
+
uvx synth-ai run
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
> Full quickstart: [https://docs.usesynth.ai/sdk/get-started](https://docs.usesynth.ai/sdk/get-started)
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
When you run `uvx synth-ai setup`, the SDK opens your browser to the Synth dashboard for a one‑time pairing (handshake) with your signed‑in session. The SDK will automatically:
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
Fast and effective reinforcement learning for agents, via an API.
|
|
46
|
+
Easily scale GPU topologies, train multi-node, and integrate with existing agent software.
|
|
47
|
+
|
|
48
|
+
### Highlights
|
|
49
|
+
|
|
50
|
+
- Scale GPU topologies (A10Gs, H100s, multi-node available on request)
|
|
51
|
+
- Thin FastAPI wrapper integration
|
|
52
|
+
- Supports OSS models like **Qwen3** (GPT-OSS GA soon)
|
|
53
|
+
- Own your trained models
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## ⚙️ Getting Started
|
|
58
|
+
|
|
59
|
+
Synth-AI ships with a built-in RL example: training **Qwen3-0.6B** on math reasoning.
|
|
60
|
+
|
|
61
|
+
1. Create accounts at [Synth](https://usesynth.ai) and [Modal](https://modal.com)
|
|
62
|
+
2. Then run:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
uvx synth-ai demo
|
|
66
|
+
uvx synth-ai setup
|
|
67
|
+
uvx synth-ai deploy
|
|
68
|
+
uvx synth-ai run
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
3. To walk through your first RL run, see
|
|
72
|
+
👉 [Synth-AI SDK Docs](https://docs.usesynth.ai/sdk/get-started)
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## 🔐 SDK → Dashboard Pairing
|
|
77
|
+
|
|
78
|
+
When you run `uvx synth-ai setup` (or legacy `uvx synth-ai rl_demo setup`):
|
|
79
|
+
|
|
80
|
+
- The SDK opens your browser to the Synth dashboard to pair your SDK with your signed-in session.
|
|
81
|
+
- Automatically detects your **user + organization**
|
|
82
|
+
- Ensures both **API keys** exist
|
|
83
|
+
- Writes them to your project’s `.env` as:
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
SYNTH_API_KEY=
|
|
87
|
+
ENVIRONMENT_API_KEY=
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
✅ No keys printed or requested interactively — all handled via browser pairing.
|
|
91
|
+
|
|
92
|
+
### Environment overrides
|
|
93
|
+
|
|
94
|
+
- `SYNTH_CANONICAL_ORIGIN` → override dashboard base URL (default: https://www.usesynth.ai/dashboard)
|
|
95
|
+
- `SYNTH_CANONICAL_DEV` → `1|true|on` to use local dashboard (http://localhost:3000)
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## 📚 Documentation
|
|
100
|
+
|
|
101
|
+
- **SDK Docs:** [https://docs.usesynth.ai/sdk/get-started](https://docs.usesynth.ai/sdk/get-started)
|
|
102
|
+
- **CLI Reference:** [https://docs.usesynth.ai/cli](https://docs.usesynth.ai/cli)
|
|
103
|
+
- **API Reference:** [https://docs.usesynth.ai/api](https://docs.usesynth.ai/api)
|
|
104
|
+
- **Changelog:** [https://docs.usesynth.ai/changelog](https://docs.usesynth.ai/changelog)
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## 🧠 Meta
|
|
109
|
+
|
|
110
|
+
- Package: [`synth-ai`](https://pypi.org/project/synth-ai)
|
|
111
|
+
- Import: `synth_ai`
|
|
112
|
+
- Source: [github.com/synth-laboratories/synth-ai](https://github.com/synth-laboratories/synth-ai)
|
|
113
|
+
- License: MIT
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
### The instructions for how to create and configure a task app are documented at https://docs.usesynth.ai/sdk/task-apps
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
# SFT Training for Qwen3-Coder-30B with LoRA
|
|
2
|
+
|
|
3
|
+
Supervised Fine-Tuning configuration for the same 30B MoE model used in RL training.
|
|
4
|
+
|
|
5
|
+
## Configuration Overview
|
|
6
|
+
|
|
7
|
+
**Model:** `Qwen/Qwen3-Coder-30B-A3B-Instruct` (Mixture of Experts)
|
|
8
|
+
|
|
9
|
+
**Hardware:** 4x H200 GPUs (561GB total VRAM)
|
|
10
|
+
|
|
11
|
+
**Parallelism Strategy:**
|
|
12
|
+
- **Tensor Parallel (TP)**: 2 GPUs - Splits the model across 2 GPUs for inference/forward pass
|
|
13
|
+
- **Data Parallel (DP)**: 2 GPUs - Splits batches across 2 GPUs for training throughput
|
|
14
|
+
|
|
15
|
+
**LoRA Configuration:**
|
|
16
|
+
- Rank (r): 16
|
|
17
|
+
- Alpha: 32
|
|
18
|
+
- Dropout: 0.05
|
|
19
|
+
- Target modules: `["all-linear"]` - Applies LoRA to all linear layers
|
|
20
|
+
|
|
21
|
+
## Memory Breakdown per GPU
|
|
22
|
+
|
|
23
|
+
With 4x H200 (141GB each):
|
|
24
|
+
|
|
25
|
+
**Model Split (TP=2):**
|
|
26
|
+
- 2 GPUs hold the base model (70GB each)
|
|
27
|
+
- ~70GB free per GPU for activations and gradients
|
|
28
|
+
|
|
29
|
+
**Training (DP=2):**
|
|
30
|
+
- 2 GPUs process different batches
|
|
31
|
+
- LoRA adapters: ~5-10GB per GPU
|
|
32
|
+
- Gradients/optimizer states: ~20-30GB per GPU
|
|
33
|
+
- **Total per training GPU: ~50-60GB** ✅
|
|
34
|
+
|
|
35
|
+
## Quick Start
|
|
36
|
+
|
|
37
|
+
### 1. Prepare Your Dataset
|
|
38
|
+
|
|
39
|
+
Your dataset should be in JSONL format with conversation turns:
|
|
40
|
+
|
|
41
|
+
```jsonl
|
|
42
|
+
{"messages": [{"role": "system", "content": "..."}, {"role": "user", "content": "..."}, {"role": "assistant", "content": "..."}]}
|
|
43
|
+
{"messages": [{"role": "user", "content": "..."}, {"role": "assistant", "content": "..."}]}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### 2. Run Training
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
# Using the helper script
|
|
50
|
+
./examples/multi_step/run_sft_qwen30b.sh path/to/your/dataset.jsonl
|
|
51
|
+
|
|
52
|
+
# Or directly with synth-ai CLI
|
|
53
|
+
uvx synth-ai train \
|
|
54
|
+
--type sft \
|
|
55
|
+
--config examples/multi_step/configs/crafter_sft_qwen30b_lora.toml \
|
|
56
|
+
--dataset path/to/your/dataset.jsonl \
|
|
57
|
+
--env-file backend/.env.dev
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### 3. Monitor Training
|
|
61
|
+
|
|
62
|
+
Check the Synth dashboard for:
|
|
63
|
+
- Training loss curve
|
|
64
|
+
- Validation metrics (if validation set provided)
|
|
65
|
+
- GPU utilization
|
|
66
|
+
- Training throughput (tokens/sec)
|
|
67
|
+
|
|
68
|
+
## Hyperparameters
|
|
69
|
+
|
|
70
|
+
**Batch Configuration:**
|
|
71
|
+
- Per-device batch size: 1
|
|
72
|
+
- Gradient accumulation: 64 steps
|
|
73
|
+
- **Effective global batch size: 128** (1 × 64 × 2 GPUs)
|
|
74
|
+
|
|
75
|
+
**Learning Rate:**
|
|
76
|
+
- Initial LR: 5e-6
|
|
77
|
+
- Warmup ratio: 3%
|
|
78
|
+
- Schedule: Linear decay
|
|
79
|
+
|
|
80
|
+
**Sequence Length:** 4096 tokens
|
|
81
|
+
|
|
82
|
+
**Training:**
|
|
83
|
+
- Epochs: 1
|
|
84
|
+
- Mixed precision: BF16
|
|
85
|
+
- DeepSpeed: Stage 2 (optimizer state sharding)
|
|
86
|
+
- Activation checkpointing: Enabled
|
|
87
|
+
|
|
88
|
+
## Configuration File Structure
|
|
89
|
+
|
|
90
|
+
```toml
|
|
91
|
+
[algorithm]
|
|
92
|
+
type = "offline" # Supervised (not RL)
|
|
93
|
+
method = "sft" # Supervised fine-tuning
|
|
94
|
+
variety = "lora" # Using LoRA adapters
|
|
95
|
+
|
|
96
|
+
[compute]
|
|
97
|
+
gpu_type = "H200"
|
|
98
|
+
gpu_count = 4
|
|
99
|
+
|
|
100
|
+
[data.topology]
|
|
101
|
+
tensor_parallel = 2 # Split model across 2 GPUs
|
|
102
|
+
data_parallel = 2 # Split batches across 2 GPUs
|
|
103
|
+
|
|
104
|
+
[training]
|
|
105
|
+
mode = "lora"
|
|
106
|
+
use_qlora = true # Quantized LoRA (4-bit base model)
|
|
107
|
+
|
|
108
|
+
[lora]
|
|
109
|
+
r = 16 # LoRA rank
|
|
110
|
+
alpha = 32 # LoRA scaling
|
|
111
|
+
dropout = 0.05
|
|
112
|
+
target_modules = ["all-linear"] # Apply to all linear layers
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Comparison with RL Config
|
|
116
|
+
|
|
117
|
+
| Aspect | SFT | RL |
|
|
118
|
+
|--------|-----|-----|
|
|
119
|
+
| Purpose | Supervised learning | Reinforcement learning |
|
|
120
|
+
| Data | Labeled examples | Environment interactions |
|
|
121
|
+
| Topology | TP=2, DP=2 | Split: 2 inference + 2 training |
|
|
122
|
+
| Batch size | 128 (effective) | Variable (episode-based) |
|
|
123
|
+
| Training | Standard backprop | Policy gradient (GSPO) |
|
|
124
|
+
|
|
125
|
+
## Tips
|
|
126
|
+
|
|
127
|
+
1. **Start Small:** Test with a small dataset first to verify the pipeline
|
|
128
|
+
2. **Validation:** Add a validation set to monitor overfitting
|
|
129
|
+
3. **Checkpointing:** Training saves checkpoints every 100 steps
|
|
130
|
+
4. **Resume:** Can resume from checkpoint if training is interrupted
|
|
131
|
+
5. **Inference:** After training, use the LoRA adapter with the base model
|
|
132
|
+
|
|
133
|
+
## Output
|
|
134
|
+
|
|
135
|
+
After training completes, you'll get:
|
|
136
|
+
- LoRA adapter weights (saved to volume)
|
|
137
|
+
- Training metrics and logs
|
|
138
|
+
- Best checkpoint (based on validation loss)
|
|
139
|
+
- Model ready for inference or RL initialization
|
|
140
|
+
|
|
141
|
+
## Next Steps
|
|
142
|
+
|
|
143
|
+
1. **Evaluate:** Test your fine-tuned model on held-out data
|
|
144
|
+
2. **RL Training:** Use this as initialization for RL (`init_from_sft = true`)
|
|
145
|
+
3. **Deploy:** Load LoRA adapter for inference
|
|
146
|
+
4. **Iterate:** Adjust hyperparameters based on performance
|
|
147
|
+
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Verilog RL with LoRA (Qwen3-0.6B)
|
|
2
|
+
|
|
3
|
+
## Quick Start
|
|
4
|
+
|
|
5
|
+
1. **Deploy Verilog Task App**:
|
|
6
|
+
```bash
|
|
7
|
+
cd synth-ai
|
|
8
|
+
uvx synth-ai modal-serve grpo-verilog
|
|
9
|
+
```
|
|
10
|
+
Note the Modal URL and update `task_url` in `verilog_rl_lora.toml`.
|
|
11
|
+
|
|
12
|
+
2. **Run Training**:
|
|
13
|
+
```bash
|
|
14
|
+
uvx synth-ai rl run --config examples/multi_step/configs/verilog_rl_lora.toml
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Configuration Overview
|
|
18
|
+
|
|
19
|
+
### **Key Adaptations from Crafter**:
|
|
20
|
+
|
|
21
|
+
- **Model**: `Qwen/Qwen3-0.6B` (✅ proven in SFT configs)
|
|
22
|
+
- **Environment**: `verilog` instead of `crafter`
|
|
23
|
+
- **Steps**: 15 turns (vs Crafter's 10) for compilation workflows
|
|
24
|
+
- **Rewards**: Adjusted for sparser Verilog rewards (0.5 vs 1.0 indicator_lambda)
|
|
25
|
+
- **Rubrics**: Verilog-specific judging criteria
|
|
26
|
+
|
|
27
|
+
### **Hardware Requirements** (Standard RL setup):
|
|
28
|
+
- ✅ **2x H100 GPUs** (vLLM inference + LoRA training split)
|
|
29
|
+
- ✅ **No tensor parallelism** needed for 0.6B model
|
|
30
|
+
- ✅ **4x faster inference** than 32B model
|
|
31
|
+
- ✅ **Same compute pattern** as Crafter (just smaller model)
|
|
32
|
+
|
|
33
|
+
### **Expected Workflow**:
|
|
34
|
+
1. Agent writes Verilog code (`write_file`)
|
|
35
|
+
2. Compiles to check syntax (`compile`)
|
|
36
|
+
3. Simulates to verify behavior (`simulate`)
|
|
37
|
+
4. Submits if tests pass (`submit`)
|
|
38
|
+
5. **Rewards**: +1.0 for compilation success, +10.0 for passing tests
|
|
39
|
+
|
|
40
|
+
## Rubric Design
|
|
41
|
+
|
|
42
|
+
### **Event Rewards** (per decision):
|
|
43
|
+
- **Compilation Success**: 70% weight (1.0 for success, 0.0 for errors)
|
|
44
|
+
- **Process Efficiency**: 30% weight (penalizes redundant operations)
|
|
45
|
+
|
|
46
|
+
### **Outcome Rewards** (final score):
|
|
47
|
+
- **Tests Passed**: 80% weight (full credit when all tests pass)
|
|
48
|
+
- **Design Quality**: 20% weight (code clarity, documentation)
|
|
49
|
+
|
|
50
|
+
## Troubleshooting
|
|
51
|
+
|
|
52
|
+
### **If training fails**:
|
|
53
|
+
1. Check Modal URL in `task_url` field
|
|
54
|
+
2. Verify `GROQ_API_KEY` for inference
|
|
55
|
+
3. Ensure `OPENAI_API_KEY` for judging
|
|
56
|
+
|
|
57
|
+
### **Memory issues** (unlikely with 0.6B):
|
|
58
|
+
- Reduce `batch_size` to 2
|
|
59
|
+
- Set `gradient_accumulation_steps = 2`
|
|
60
|
+
- Verify 2x GPU split is working (vLLM on GPU 0, training on GPU 1)
|
|
61
|
+
|
|
62
|
+
### **Slow training**:
|
|
63
|
+
- Increase `episodes_per_batch` to 6-8
|
|
64
|
+
- Check network latency to Modal task app
|
|
65
|
+
|
|
66
|
+
## Expected Results
|
|
67
|
+
|
|
68
|
+
- **Convergence**: Should learn basic compilation workflow in 1-2 hours
|
|
69
|
+
- **Success Rate**: 20-40% initial test pass rate (improves with training)
|
|
70
|
+
- **Learning**: Agent learns to debug compilation errors and write correct Verilog
|
|
71
|
+
|
|
72
|
+
## Next Steps
|
|
73
|
+
|
|
74
|
+
1. **Monitor reward progression** in training logs
|
|
75
|
+
2. **Adjust rubrics** if agent struggles with compilation errors
|
|
76
|
+
3. **Scale to 8B model** once 0.6B baseline works
|
|
77
|
+
4. **Add domain-specific fine-tuning** for Verilog syntax
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# Verilog Reward Structure (Normalized to 1.0)
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
All rewards in the Verilog task app are normalized so the maximum possible reward is **1.0**.
|
|
5
|
+
|
|
6
|
+
## Reward Components
|
|
7
|
+
|
|
8
|
+
### 1. Step Penalty: **-0.001** per step
|
|
9
|
+
- Applied to every action taken
|
|
10
|
+
- Encourages efficient solutions
|
|
11
|
+
- Normalized from `-0.01` (original)
|
|
12
|
+
|
|
13
|
+
### 2. Compile Success: **+0.01**
|
|
14
|
+
- Awarded when `iverilog` compilation succeeds (returncode 0)
|
|
15
|
+
- Validates syntax correctness
|
|
16
|
+
- Normalized from `+0.1` (original)
|
|
17
|
+
|
|
18
|
+
### 3. Simulation Pass: **+0.1**
|
|
19
|
+
- Awarded when `vvp` simulation passes all tests
|
|
20
|
+
- Validates behavioral correctness
|
|
21
|
+
- Normalized from `+1.0` (original)
|
|
22
|
+
|
|
23
|
+
### 4. Submit Success: **+1.0** (maximum reward)
|
|
24
|
+
- Awarded when final submission passes all verification tests
|
|
25
|
+
- This is the goal state
|
|
26
|
+
- Normalized from `+10.0` (original)
|
|
27
|
+
|
|
28
|
+
## Typical Reward Trajectories
|
|
29
|
+
|
|
30
|
+
### ✅ Optimal Path (3 steps)
|
|
31
|
+
```
|
|
32
|
+
Step 1: write_file → -0.001
|
|
33
|
+
Step 2: compile (success) → +0.01 - 0.001 = +0.009
|
|
34
|
+
Step 3: simulate (pass) → +0.1 - 0.001 = +0.099
|
|
35
|
+
Total: ~0.107
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### ✅ Good Path (4 steps with submit)
|
|
39
|
+
```
|
|
40
|
+
Step 1: write_file → -0.001
|
|
41
|
+
Step 2: compile (success) → +0.009
|
|
42
|
+
Step 3: simulate (pass) → +0.099
|
|
43
|
+
Step 4: submit (success) → +1.0 - 0.001 = +0.999
|
|
44
|
+
Total: ~1.106
|
|
45
|
+
```
|
|
46
|
+
*Note: Can exceed 1.0 if intermediate rewards stack with final submit*
|
|
47
|
+
|
|
48
|
+
### ❌ Failure Path (compilation errors)
|
|
49
|
+
```
|
|
50
|
+
Step 1: write_file → -0.001
|
|
51
|
+
Step 2: compile (fail) → -0.001
|
|
52
|
+
Step 3: write_file (fix) → -0.001
|
|
53
|
+
Step 4: compile (success) → +0.009
|
|
54
|
+
Step 5: simulate (pass) → +0.099
|
|
55
|
+
Total: ~0.105
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Implementation Details
|
|
59
|
+
|
|
60
|
+
### Location
|
|
61
|
+
- **Reward components**: `synth_ai/environments/examples/verilog/engine.py`
|
|
62
|
+
- `VerilogCompileSuccessComponent`: +0.01
|
|
63
|
+
- `VerilogSimulationPassComponent`: +0.1
|
|
64
|
+
- `VerilogSubmitSuccessComponent`: +1.0
|
|
65
|
+
- `VerilogStepPenaltyComponent`: -0.001
|
|
66
|
+
|
|
67
|
+
### Normalization Ratio
|
|
68
|
+
All rewards were divided by **10.0** to normalize:
|
|
69
|
+
- Original max: ~10.0
|
|
70
|
+
- Normalized max: ~1.0
|
|
71
|
+
- Ratio: 10.0
|
|
72
|
+
|
|
73
|
+
## Why Normalize?
|
|
74
|
+
|
|
75
|
+
1. **Consistency**: Makes it easier to compare rewards across different task types
|
|
76
|
+
2. **RL Training**: Standard reward scales improve learning stability
|
|
77
|
+
3. **Interpretability**: Rewards as percentages (0.0 to 1.0) are intuitive
|
|
78
|
+
4. **Judge Compatibility**: Rubric scores typically range 0-1, making blending easier
|
|
79
|
+
|
|
80
|
+
## Testing
|
|
81
|
+
```bash
|
|
82
|
+
# Run eval to verify normalized rewards
|
|
83
|
+
uvx synth-ai eval --config examples/multi_step/configs/verilog_eval_groq_qwen32b.toml
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Expected output for successful rollout:
|
|
87
|
+
- `mean_return` ≈ 0.1 (if only compile+simulate)
|
|
88
|
+
- `mean_return` ≈ 1.0+ (if full submit success)
|
|
89
|
+
|
|
90
|
+
|