synth-ai 0.2.9.dev17__tar.gz → 0.2.12__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.9.dev17/synth_ai.egg-info → synth_ai-0.2.12}/PKG-INFO +33 -88
- synth_ai-0.2.12/README.md +59 -0
- synth_ai-0.2.12/examples/dev/qwen3_32b_qlora_4xh100.toml +40 -0
- synth_ai-0.2.12/examples/multi_step/crafter_rl_lora.md +29 -0
- synth_ai-0.2.12/examples/multi_step/task_app_config_notes.md +488 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/qwen_coder/infer_ft_smoke.py +1 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/qwen_coder/scripts/infer_coder.sh +1 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/qwen_coder/scripts/train_coder_30b.sh +1 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/qwen_coder/subset_jsonl.py +1 -0
- synth_ai-0.2.12/examples/qwen_coder/todos.md +38 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/qwen_coder/validate_jsonl.py +1 -0
- synth_ai-0.2.12/examples/vlm/PROPOSAL.md +53 -0
- synth_ai-0.2.12/examples/warming_up_to_rl/configs/eval_stepwise_complex.toml +33 -0
- synth_ai-0.2.12/examples/warming_up_to_rl/configs/eval_stepwise_consistent.toml +26 -0
- synth_ai-0.2.12/examples/warming_up_to_rl/configs/eval_stepwise_per_achievement.toml +36 -0
- synth_ai-0.2.12/examples/warming_up_to_rl/configs/eval_stepwise_simple.toml +30 -0
- synth_ai-0.2.12/examples/warming_up_to_rl/old/event_rewards.md +234 -0
- synth_ai-0.2.12/examples/warming_up_to_rl/old/notes.md +73 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/run_eval.py +142 -25
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/task_app/synth_envs_hosted/rollout.py +146 -2
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/pyproject.toml +6 -8
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/__init__.py +5 -20
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/api/train/builders.py +25 -14
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/api/train/cli.py +29 -6
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/api/train/env_resolver.py +18 -19
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/api/train/supported_algos.py +8 -5
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/api/train/utils.py +6 -1
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/cli/__init__.py +4 -2
- synth_ai-0.2.12/synth_ai/cli/_storage.py +19 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/cli/balance.py +14 -2
- synth_ai-0.2.12/synth_ai/cli/calc.py +84 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/cli/legacy_root_backup.py +12 -14
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/cli/recent.py +12 -7
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/cli/root.py +1 -23
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/cli/status.py +4 -3
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/cli/task_apps.py +143 -137
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/cli/traces.py +4 -3
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/cli/watch.py +3 -2
- synth_ai-0.2.12/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/filter_traces_sft_turso.py +738 -0
- synth_ai-0.2.12/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/filter_traces_sft_turso.py +580 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/jobs/client.py +15 -3
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/task/server.py +14 -7
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/tracing_v3/decorators.py +51 -26
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/tracing_v3/examples/basic_usage.py +12 -7
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/tracing_v3/llm_call_record_helpers.py +107 -53
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/tracing_v3/replica_sync.py +8 -4
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/tracing_v3/storage/utils.py +11 -9
- synth_ai-0.2.12/synth_ai/tracing_v3/turso/__init__.py +12 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/tracing_v3/turso/daemon.py +2 -1
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/tracing_v3/turso/native_manager.py +28 -15
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12/synth_ai.egg-info}/PKG-INFO +33 -88
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai.egg-info/SOURCES.txt +15 -3
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai.egg-info/top_level.txt +0 -1
- synth_ai-0.2.9.dev17/README.md +0 -112
- synth_ai-0.2.9.dev17/synth/__init__.py +0 -14
- synth_ai-0.2.9.dev17/synth_ai/_docs_message.py +0 -10
- synth_ai-0.2.9.dev17/synth_ai/cli/calc.py +0 -69
- synth_ai-0.2.9.dev17/synth_ai/main.py +0 -5
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/LICENSE +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/MANIFEST.in +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/analyze_semantic_words.sh +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/crafter_debug_render.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/qwen_coder/README.md +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/qwen_coder/_shared.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/qwen_coder/configs/coder_lora_30b.toml +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/qwen_coder/configs/coder_lora_4b.toml +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/qwen_coder/configs/coder_lora_small.toml +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/qwen_coder/generate_dataset.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/qwen_coder/infer_prod_proxy.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/qwen_coder/infer_via_synth.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/qwen_coder/sft_full_17b.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/qwen_coder/sft_lora_30b.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/rl/README.md +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/rl/configs/eval_base_qwen.toml +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/rl/configs/eval_rl_qwen.toml +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/rl/configs/rl_from_base_qwen.toml +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/rl/configs/rl_from_base_qwen17.toml +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/rl/configs/rl_from_ft_qwen.toml +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/rl/download_dataset.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/rl/run_eval.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/rl/run_rl_and_save.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/rl/task_app/README.md +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/rl/task_app/math_single_step.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/rl/task_app/math_task_app.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/run_crafter_demo.sh +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/sft/README.md +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/sft/configs/crafter_fft_qwen0p6b.toml +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/sft/configs/crafter_lora_qwen0p6b.toml +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/sft/evaluate.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/sft/export_dataset.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/sft/generate_traces.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/swe/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/swe/task_app/README.md +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/swe/task_app/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/swe/task_app/grpo_swe_mini.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/swe/task_app/grpo_swe_mini_task_app.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/swe/task_app/hosted/README.md +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/swe/task_app/hosted/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/swe/task_app/hosted/branching.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/swe/task_app/hosted/environment_routes.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/swe/task_app/hosted/envs/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/swe/task_app/hosted/envs/crafter/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/swe/task_app/hosted/envs/crafter/app.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/swe/task_app/hosted/envs/crafter/environment.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/swe/task_app/hosted/envs/crafter/policy.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/swe/task_app/hosted/envs/crafter/react_agent.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/swe/task_app/hosted/envs/crafter/shared.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/swe/task_app/hosted/envs/crafter/tools.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/swe/task_app/hosted/envs/mini_swe/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/swe/task_app/hosted/envs/mini_swe/environment.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/swe/task_app/hosted/envs/mini_swe/policy.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/swe/task_app/hosted/envs/mini_swe/shared.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/swe/task_app/hosted/envs/mini_swe/tools.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/swe/task_app/hosted/hosted_app.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/swe/task_app/hosted/inference/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/swe/task_app/hosted/inference/openai_client.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/swe/task_app/hosted/main.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/swe/task_app/hosted/policy_routes.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/swe/task_app/hosted/registry.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/swe/task_app/hosted/rollout.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/swe/task_app/hosted/storage/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/swe/task_app/hosted/storage/volume.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/swe/task_app/hosted/test_agents.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/swe/task_app/hosted/test_service.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/swe/task_app/hosted/utils.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/vlm/README.md +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/vlm/configs/crafter_vlm_gpt4o.toml +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/vlm/crafter_image_only_agent.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/vlm/crafter_openai_vlm_agent.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/vlm/filter_image_rows.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/vlm/run_crafter_vlm_benchmark.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/analyze_trace_db.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/configs/crafter_fft.toml +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/configs/crafter_fft_4b.toml +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/configs/eval_fft_qwen4b.toml +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/configs/eval_groq_qwen32b.toml +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/configs/eval_modal_qwen4b.toml +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/configs/rl_from_base_qwen4b.toml +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/configs/rl_from_ft.toml +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/export_trace_sft.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/groq_test.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/manage_secrets.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/readme.md +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/run_fft_and_save.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/run_local_rollout.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/run_local_rollout_modal.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/run_local_rollout_parallel.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/run_local_rollout_traced.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/run_rl_and_save.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/run_rollout_remote.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/task_app/README.md +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/task_app/grpo_crafter.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/task_app/grpo_crafter_task_app.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/task_app/synth_envs_hosted/README.md +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/task_app/synth_envs_hosted/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/task_app/synth_envs_hosted/branching.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/task_app/synth_envs_hosted/environment_routes.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/task_app/synth_envs_hosted/envs/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/task_app/synth_envs_hosted/envs/crafter/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/task_app/synth_envs_hosted/envs/crafter/app.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/task_app/synth_envs_hosted/envs/crafter/environment.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/task_app/synth_envs_hosted/envs/crafter/policy.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/task_app/synth_envs_hosted/envs/crafter/react_agent.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/task_app/synth_envs_hosted/envs/crafter/shared.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/task_app/synth_envs_hosted/envs/crafter/tools.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/task_app/synth_envs_hosted/hosted_app.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/task_app/synth_envs_hosted/inference/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/task_app/synth_envs_hosted/inference/openai_client.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/task_app/synth_envs_hosted/main.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/task_app/synth_envs_hosted/policy_routes.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/task_app/synth_envs_hosted/registry.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/task_app/synth_envs_hosted/storage/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/task_app/synth_envs_hosted/storage/volume.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/task_app/synth_envs_hosted/test_agents.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/task_app/synth_envs_hosted/test_service.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/examples/warming_up_to_rl/task_app/synth_envs_hosted/utils.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/setup.cfg +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/__main__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/api/models/supported.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/api/train/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/api/train/config_finder.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/api/train/pollers.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/api/train/task_app.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/cli/_modal_wrapper.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/cli/_typer_patch.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/cli/demo.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/cli/man.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/cli/rl_demo.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/cli/turso.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/compound/cais.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/config/base_url.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/core/experiment.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/core/system.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/demo_registry.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/demos/core/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/demos/core/cli.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/demos/demo_task_apps/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/demos/demo_task_apps/core.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/demos/demo_task_apps/crafter/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/demos/demo_task_apps/crafter/configs/crafter_fft_4b.toml +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/demos/demo_task_apps/crafter/configs/rl_from_base_qwen4b.toml +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/demos/demo_task_apps/crafter/grpo_crafter_task_app.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/demos/demo_task_apps/math/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/demos/demo_task_apps/math/_common.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/demos/demo_task_apps/math/app.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/demos/demo_task_apps/math/config.toml +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/demos/demo_task_apps/math/deploy_modal.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/demos/demo_task_apps/math/deploy_task_app.sh +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/demos/demo_task_apps/math/modal_task_app.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/demos/demo_task_apps/math/task_app_entry.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/environment/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/environment/artifacts/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/environment/artifacts/base.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/environment/core.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/environment/db/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/environment/db/sqlite.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/environment/registry.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/environment/resources/sqlite.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/environment/results.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/environment/rewards/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/environment/rewards/core.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/environment/shared_engine.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/environment/tools/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/bandit/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/bandit/engine.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/bandit/environment.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/bandit/taskset.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/analyze_semantic_words_markdown.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_comprehensive_evaluation.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_evaluation_browser.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_evaluation_config.toml +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_evaluation_framework.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/crafter_synth_config.toml +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/filter_config_modal.toml +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/kick_off_ft_modal.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/analyze_action_results.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/analyze_agent_actions.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/analyze_latest_run.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/analyze_lm_traces.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/analyze_no_rewards.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/analyze_trace_issue.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/check_db_schema.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/check_latest_results.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/debug_agent_responses.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/quick_trace_check.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/compare_experiments.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/kick_off_ft_oai.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/multi_model_config.toml +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/analyze_enhanced_hooks.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/analyze_hook_events.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/analyze_hook_results.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/check_hook_storage.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/check_seeds.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/compare_seed_performance.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/custom_eval_pipelines.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/plot_hook_frequency.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/seed_analysis_summary.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/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.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_quick_evaluation.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_react_agent.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_trace_evaluation.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/example_v3_usage.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/old/compare_traces.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/old/crafter_comprehensive_evaluation.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/old/crafter_env_serialization.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/old/crafter_evaluation_browser.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/old/crafter_quick_evaluation.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/old/crafter_trace_evaluation.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/old/debug_player_loss.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/old/diagnose_service.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/old/diagnose_slowness.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/old/eval_by_difficulty.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/old/eval_example.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/old/explore_saved_states.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/old/filter_traces_sft.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/old/filter_traces_sft_OLD.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/old/generate_ft_data_gemini.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/old/generate_ft_data_modal.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/old/generate_ft_metadata.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/old/kick_off_ft_gemini.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/old/kick_off_ft_modal.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/old/prepare_vertex_ft.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/old/profile_env_slowness.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/old/replicate_issue.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/old/run_and_eval.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/old/run_comparison.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/old/run_qwen_rollouts.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/old/trace_eval_OLD.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/agent_demos/old/validate_openai_format.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/config_logging.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/debug_translation.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/engine.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/engine_deterministic_patch.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/engine_helpers/action_map.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/engine_helpers/serialization.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/engine_serialization_patch_v3.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/environment.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/taskset.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/trace_hooks_v3.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_classic/world_config_patch_simple.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_custom/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_custom/agent_demos/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_custom/agent_demos/trace_eval.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_custom/crafter/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_custom/crafter/config.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_custom/crafter/constants.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_custom/crafter/engine.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_custom/crafter/env.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_custom/crafter/objects.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_custom/crafter/recorder.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_custom/crafter/worldgen.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_custom/dataset_builder.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_custom/environment.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_custom/old/analyze_diamond_issue.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_custom/old/analyze_diamond_spawning.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_custom/old/compare_worlds.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_custom/old/dataset_stats.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_custom/old/diamond_spawning_summary.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_custom/old/example_dataset_usage.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/crafter_custom/run_dataset.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/enron/art_helpers/email_search_tools.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/enron/art_helpers/local_email_db.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/enron/art_helpers/types_enron.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/enron/engine.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/enron/environment.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/enron/taskset.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/enron/units/keyword_stats.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/minigrid/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/minigrid/agent_demos/minigrid_evaluation_framework.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/minigrid/agent_demos/minigrid_quick_evaluation.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/minigrid/agent_demos/minigrid_react_agent.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/minigrid/agent_demos/minigrid_trace_evaluation.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/minigrid/engine.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/minigrid/environment.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/minigrid/environment_mapping.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/minigrid/puzzle_loader.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/minigrid/taskset.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/nethack/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/nethack/achievements.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/nethack/agent_demos/nethack_evaluation_framework.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/nethack/agent_demos/nethack_quick_evaluation.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/nethack/agent_demos/nethack_react_agent.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/nethack/engine.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/nethack/environment.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/nethack/helpers/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/nethack/helpers/action_mapping.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/nethack/helpers/nle_wrapper.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/nethack/helpers/observation_utils.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/nethack/helpers/recording_wrapper.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/nethack/helpers/trajectory_recorder.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/nethack/helpers/visualization/replay_viewer.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/nethack/helpers/visualization/visualizer.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/nethack/taskset.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/red/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/red/agent_demos/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/red/config_logging.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/red/engine.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/red/engine_helpers/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/red/engine_helpers/memory_map.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/red/engine_helpers/reward_components.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/red/engine_helpers/reward_library/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/red/engine_helpers/reward_library/adaptive_rewards.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/red/engine_helpers/reward_library/battle_rewards.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/red/engine_helpers/reward_library/composite_rewards.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/red/engine_helpers/reward_library/economy_rewards.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/red/engine_helpers/reward_library/efficiency_rewards.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/red/engine_helpers/reward_library/exploration_rewards.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/red/engine_helpers/reward_library/novelty_rewards.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/red/engine_helpers/reward_library/pallet_town_rewards.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/red/engine_helpers/reward_library/pokemon_rewards.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/red/engine_helpers/reward_library/social_rewards.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/red/engine_helpers/reward_library/story_rewards.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/red/engine_helpers/screen_analysis.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/red/engine_helpers/state_extraction.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/red/environment.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/red/taskset.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/red/units/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/sokoban/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/sokoban/agent_demos/sokoban_full_eval.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/sokoban/engine.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/sokoban/engine_helpers/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/sokoban/engine_helpers/room_utils.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/sokoban/engine_helpers/vendored/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/boxoban_env.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/render_utils.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/room_utils.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/sokoban_env.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/sokoban_env_fixed_targets.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/sokoban_env_pull.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/sokoban_env_two_player.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/sokoban_env_variations.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/sokoban/environment.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/sokoban/generate_verified_puzzles.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/sokoban/puzzle_loader.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/sokoban/taskset.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/tictactoe/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/tictactoe/engine.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/tictactoe/environment.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/tictactoe/taskset.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/verilog/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/verilog/engine.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/verilog/environment.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/verilog/taskset.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/wordle/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/wordle/engine.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/wordle/environment.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/wordle/helpers/generate_instances_wordfreq.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/examples/wordle/taskset.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/reproducibility/core.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/reproducibility/helpers.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/reproducibility/tree.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/service/app.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/service/core_routes.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/service/external_registry.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/service/registry.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/stateful/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/stateful/core.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/stateful/engine.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/stateful/state.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/tasks/api.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/tasks/core.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/tasks/filters.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/tasks/utils.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/v0_observability/history.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/environments/v0_observability/log.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/evals/base.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/handshake.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/http.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/http_client.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/inference/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/inference/client.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/learning/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/learning/algorithms.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/learning/client.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/learning/config.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/learning/constants.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/learning/core.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/learning/ft_client.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/learning/gateway.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/learning/health.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/learning/jobs.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/learning/rl/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/learning/rl/client.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/learning/rl/config.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/learning/rl/contracts.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/learning/rl/env_keys.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/learning/rl/secrets.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/learning/rl_client.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/learning/sft/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/learning/sft/client.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/learning/sft/config.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/learning/sft/data.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/learning/sse.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/learning/validators.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/lm/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/task/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/task/apps/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/task/auth.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/task/client.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/task/contracts.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/task/datasets.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/task/errors.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/task/health.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/task/json.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/task/proxy.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/task/rubrics.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/task/tracing_utils.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/task/validators.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/task/vendors.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/tracing_v3/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/tracing_v3/abstractions.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/tracing_v3/config.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/tracing_v3/db_config.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/tracing_v3/hooks.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/tracing_v3/lm_call_record_abstractions.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/tracing_v3/migration_helper.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/tracing_v3/session_tracer.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/tracing_v3/storage/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/tracing_v3/storage/base.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/tracing_v3/storage/config.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/tracing_v3/storage/exceptions.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/tracing_v3/storage/factory.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/tracing_v3/storage/types.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/tracing_v3/turso/models.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/tracing_v3/utils.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/api/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/api/models/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/api/models/supported.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/config/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/config/base_url.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/caching/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/caching/constants.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/caching/dbs.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/caching/ephemeral.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/caching/handler.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/caching/initialize.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/caching/persistent.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/config.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/constants.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/core/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/core/all.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/core/exceptions.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/core/main.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/core/main_v3.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/core/synth_models.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/core/vendor_clients.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/cost/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/cost/monitor.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/cost/statefulness.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/injection.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/overrides.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/provider_support/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/provider_support/anthropic.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/provider_support/openai.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/provider_support/suppress_logging.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/structured_outputs/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/structured_outputs/handler.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/structured_outputs/inject.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/structured_outputs/rehabilitate.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/tools/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/tools/base.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/unified_interface.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/vendors/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/vendors/base.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/vendors/core/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/vendors/core/anthropic_api.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/vendors/core/gemini_api.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/vendors/core/mistral_api.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/vendors/core/openai_api.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/vendors/core/synth_dev_api.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/vendors/local/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/vendors/local/ollama.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/vendors/openai_standard.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/vendors/openai_standard_responses.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/vendors/retries.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/vendors/supported/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/vendors/supported/custom_endpoint.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/vendors/supported/deepseek.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/vendors/supported/grok.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/vendors/supported/groq.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/vendors/supported/ollama.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/vendors/supported/openrouter.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/vendors/supported/together.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/vendors/synth_client.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/lm/warmup.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing/abstractions.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing/base_client.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing/client_manager.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing/config.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing/context.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing/decorators.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing/events/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing/events/manage.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing/events/scope.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing/events/store.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing/immediate_client.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing/local.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing/log_client_base.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing/retry_queue.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing/trackers.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing/upload.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing/utils.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing_v1/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing_v1/abstractions.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing_v1/base_client.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing_v1/client_manager.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing_v1/config.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing_v1/context.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing_v1/decorators.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing_v1/events/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing_v1/events/manage.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing_v1/events/scope.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing_v1/events/store.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing_v1/immediate_client.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing_v1/local.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing_v1/log_client_base.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing_v1/retry_queue.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing_v1/trackers.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing_v1/upload.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing_v1/utils.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing_v3/__init__.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing_v3/abstractions.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing_v3/decorators.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing_v3/llm_call_record_helpers.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai/v0/tracing_v3/session_tracer.py +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai.egg-info/dependency_links.txt +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai.egg-info/entry_points.txt +0 -0
- {synth_ai-0.2.9.dev17 → synth_ai-0.2.12}/synth_ai.egg-info/requires.txt +0 -0
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: synth-ai
|
|
3
|
-
Version: 0.2.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 0.2.12
|
|
4
|
+
Summary: RL as a service SDK - Core AI functionality and tracing
|
|
5
5
|
Author-email: Synth AI <josh@usesynth.ai>
|
|
6
6
|
License-Expression: MIT
|
|
7
|
-
Project-URL: Homepage, https://
|
|
8
|
-
Project-URL: Documentation, https://docs.usesynth.ai/sdk/get-started
|
|
9
|
-
Project-URL: Changelog, https://docs.usesynth.ai/changelog
|
|
7
|
+
Project-URL: Homepage, https://github.com/synth-laboratories/synth-ai
|
|
10
8
|
Project-URL: Repository, https://github.com/synth-laboratories/synth-ai
|
|
11
9
|
Project-URL: Issues, https://github.com/synth-laboratories/synth-ai/issues
|
|
12
10
|
Requires-Python: >=3.11
|
|
@@ -77,7 +75,7 @@ Provides-Extra: analytics
|
|
|
77
75
|
Requires-Dist: pandas>=2.2.3; extra == "analytics"
|
|
78
76
|
Dynamic: license-file
|
|
79
77
|
|
|
80
|
-
# Synth-AI
|
|
78
|
+
# Synth-AI
|
|
81
79
|
|
|
82
80
|
[](https://www.python.org/)
|
|
83
81
|
[](LICENSE)
|
|
@@ -86,106 +84,53 @@ Dynamic: license-file
|
|
|
86
84
|

|
|
87
85
|

|
|
88
86
|
|
|
89
|
-
|
|
90
|
-
> **Docs:** [Get Started →](https://docs.usesynth.ai/sdk/get-started)
|
|
87
|
+
Docs: [Synth‑AI Documentation](https://docs.usesynth.ai/welcome/introduction)
|
|
91
88
|
|
|
92
|
-
|
|
89
|
+
Fast and effective reinforcement learning for agents, via an API
|
|
93
90
|
|
|
94
|
-
|
|
91
|
+
> Latest: 0.2.10 published to PyPI (uv publish)
|
|
95
92
|
|
|
96
|
-
|
|
97
|
-
pip install synth-ai
|
|
98
|
-
# or
|
|
99
|
-
uv add synth-ai
|
|
100
|
-
```
|
|
93
|
+
## Highlights
|
|
101
94
|
|
|
102
|
-
|
|
95
|
+
- Easily scale gpu topologies - train on 3 a10gs or 8 H100s (multi-node available upon request)
|
|
96
|
+
- Requires only a thin fastapi wrapper to integrate with existing agent software.
|
|
97
|
+
- Supports the best OSS models like Qwen3. (gpt-oss available upon request, GA soon)
|
|
98
|
+
- Own your trained models
|
|
103
99
|
|
|
104
|
-
|
|
105
|
-
import synth_ai
|
|
106
|
-
```
|
|
100
|
+
## Getting Started
|
|
107
101
|
|
|
108
|
-
|
|
102
|
+
synth-ai comes with a built-in RL example tailored for training Qwen/Qwen3-0.6B to succeed at Math.
|
|
103
|
+
|
|
104
|
+
Please create an account at [Synth](https://usesynth.ai) and [Modal](https://modal.com) for the Math hello‑world test run. Then run:
|
|
109
105
|
|
|
110
106
|
```bash
|
|
111
|
-
uvx synth-ai setup
|
|
112
107
|
uvx synth-ai demo
|
|
108
|
+
uvx synth-ai setup
|
|
113
109
|
uvx synth-ai deploy
|
|
114
110
|
uvx synth-ai run
|
|
115
111
|
```
|
|
116
112
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
---
|
|
120
|
-
|
|
121
|
-
## 🧩 About
|
|
122
|
-
|
|
123
|
-
Fast and effective reinforcement learning for agents, via an API.
|
|
124
|
-
Easily scale GPU topologies, train multi-node, and integrate with existing agent software.
|
|
125
|
-
|
|
126
|
-
### Highlights
|
|
127
|
-
|
|
128
|
-
- Scale GPU topologies (A10Gs, H100s, multi-node available on request)
|
|
129
|
-
- Thin FastAPI wrapper integration
|
|
130
|
-
- Supports OSS models like **Qwen3** (GPT-OSS GA soon)
|
|
131
|
-
- Own your trained models
|
|
132
|
-
|
|
133
|
-
---
|
|
113
|
+
To walk through kicking off your first RL run, see the [Synth‑AI Documentation](https://docs.usesynth.ai/welcome/introduction).
|
|
134
114
|
|
|
135
|
-
|
|
115
|
+
### What `setup` does now
|
|
136
116
|
|
|
137
|
-
|
|
117
|
+
When you run `uvx synth-ai setup` (or the legacy `uvx synth-ai rl_demo 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:
|
|
138
118
|
|
|
139
|
-
|
|
140
|
-
|
|
119
|
+
- Detect your current user and organization
|
|
120
|
+
- Ensure both API keys exist for that user+org
|
|
121
|
+
- Write the keys to your project’s `.env` file as `SYNTH_API_KEY` and `ENVIRONMENT_API_KEY`
|
|
141
122
|
|
|
142
|
-
|
|
143
|
-
uvx synth-ai demo
|
|
144
|
-
uvx synth-ai setup
|
|
145
|
-
uvx synth-ai deploy
|
|
146
|
-
uvx synth-ai run
|
|
147
|
-
```
|
|
123
|
+
No keys are printed or requested interactively. You’ll see a confirmation like:
|
|
148
124
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
## 🔐 SDK → Dashboard Pairing
|
|
155
|
-
|
|
156
|
-
When you run `uvx synth-ai setup` (or legacy `uvx synth-ai rl_demo setup`):
|
|
157
|
-
|
|
158
|
-
- The SDK opens your browser to the Synth dashboard to pair your SDK with your signed-in session.
|
|
159
|
-
- Automatically detects your **user + organization**
|
|
160
|
-
- Ensures both **API keys** exist
|
|
161
|
-
- Writes them to your project’s `.env` as:
|
|
162
|
-
|
|
163
|
-
```
|
|
164
|
-
SYNTH_API_KEY=
|
|
165
|
-
ENVIRONMENT_API_KEY=
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
✅ No keys printed or requested interactively — all handled via browser pairing.
|
|
169
|
-
|
|
170
|
-
### Environment overrides
|
|
171
|
-
|
|
172
|
-
- `SYNTH_CANONICAL_ORIGIN` → override dashboard base URL (default: https://www.usesynth.ai/dashboard)
|
|
173
|
-
- `SYNTH_CANONICAL_DEV` → `1|true|on` to use local dashboard (http://localhost:3000)
|
|
174
|
-
|
|
175
|
-
---
|
|
176
|
-
|
|
177
|
-
## 📚 Documentation
|
|
178
|
-
|
|
179
|
-
- **SDK Docs:** [https://docs.usesynth.ai/sdk/get-started](https://docs.usesynth.ai/sdk/get-started)
|
|
180
|
-
- **CLI Reference:** [https://docs.usesynth.ai/cli](https://docs.usesynth.ai/cli)
|
|
181
|
-
- **API Reference:** [https://docs.usesynth.ai/api](https://docs.usesynth.ai/api)
|
|
182
|
-
- **Changelog:** [https://docs.usesynth.ai/changelog](https://docs.usesynth.ai/changelog)
|
|
125
|
+
```
|
|
126
|
+
Connecting SDK to your browser session…
|
|
127
|
+
Connected to Acme Labs via browser.
|
|
128
|
+
```
|
|
183
129
|
|
|
184
|
-
|
|
130
|
+
If your browser isn’t already signed in, sign in when prompted and the pairing completes automatically. The dashboard’s welcome modal will reflect a successful pairing.
|
|
185
131
|
|
|
186
|
-
|
|
132
|
+
Environment variables:
|
|
187
133
|
|
|
188
|
-
-
|
|
189
|
-
-
|
|
190
|
-
-
|
|
191
|
-
- License: MIT
|
|
134
|
+
- `SYNTH_CANONICAL_ORIGIN` (optional): override the dashboard base URL the SDK uses for the handshake (defaults to `https://www.usesynth.ai/dashboard`).
|
|
135
|
+
- `SYNTH_CANONICAL_DEV` (optional): set to `1`, `true`, `yes`, or `on` to target the local dashboard at `http://localhost:3000`.
|
|
136
|
+
- Keys are stored only in your project’s `.env` file, not exported to your shell.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Synth-AI
|
|
2
|
+
|
|
3
|
+
[](https://www.python.org/)
|
|
4
|
+
[](LICENSE)
|
|
5
|
+
[](https://pypi.org/project/synth-ai/)
|
|
6
|
+

|
|
7
|
+

|
|
8
|
+

|
|
9
|
+
|
|
10
|
+
Docs: [Synth‑AI Documentation](https://docs.usesynth.ai/welcome/introduction)
|
|
11
|
+
|
|
12
|
+
Fast and effective reinforcement learning for agents, via an API
|
|
13
|
+
|
|
14
|
+
> Latest: 0.2.10 published to PyPI (uv publish)
|
|
15
|
+
|
|
16
|
+
## Highlights
|
|
17
|
+
|
|
18
|
+
- Easily scale gpu topologies - train on 3 a10gs or 8 H100s (multi-node available upon request)
|
|
19
|
+
- Requires only a thin fastapi wrapper to integrate with existing agent software.
|
|
20
|
+
- Supports the best OSS models like Qwen3. (gpt-oss available upon request, GA soon)
|
|
21
|
+
- Own your trained models
|
|
22
|
+
|
|
23
|
+
## Getting Started
|
|
24
|
+
|
|
25
|
+
synth-ai comes with a built-in RL example tailored for training Qwen/Qwen3-0.6B to succeed at Math.
|
|
26
|
+
|
|
27
|
+
Please create an account at [Synth](https://usesynth.ai) and [Modal](https://modal.com) for the Math hello‑world test run. Then run:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
uvx synth-ai demo
|
|
31
|
+
uvx synth-ai setup
|
|
32
|
+
uvx synth-ai deploy
|
|
33
|
+
uvx synth-ai run
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
To walk through kicking off your first RL run, see the [Synth‑AI Documentation](https://docs.usesynth.ai/welcome/introduction).
|
|
37
|
+
|
|
38
|
+
### What `setup` does now
|
|
39
|
+
|
|
40
|
+
When you run `uvx synth-ai setup` (or the legacy `uvx synth-ai rl_demo 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:
|
|
41
|
+
|
|
42
|
+
- Detect your current user and organization
|
|
43
|
+
- Ensure both API keys exist for that user+org
|
|
44
|
+
- Write the keys to your project’s `.env` file as `SYNTH_API_KEY` and `ENVIRONMENT_API_KEY`
|
|
45
|
+
|
|
46
|
+
No keys are printed or requested interactively. You’ll see a confirmation like:
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
Connecting SDK to your browser session…
|
|
50
|
+
Connected to Acme Labs via browser.
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
If your browser isn’t already signed in, sign in when prompted and the pairing completes automatically. The dashboard’s welcome modal will reflect a successful pairing.
|
|
54
|
+
|
|
55
|
+
Environment variables:
|
|
56
|
+
|
|
57
|
+
- `SYNTH_CANONICAL_ORIGIN` (optional): override the dashboard base URL the SDK uses for the handshake (defaults to `https://www.usesynth.ai/dashboard`).
|
|
58
|
+
- `SYNTH_CANONICAL_DEV` (optional): set to `1`, `true`, `yes`, or `on` to target the local dashboard at `http://localhost:3000`.
|
|
59
|
+
- Keys are stored only in your project’s `.env` file, not exported to your shell.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
[job]
|
|
2
|
+
model = "Qwen/Qwen3-32B"
|
|
3
|
+
# Optionally set here; you can also pass --dataset
|
|
4
|
+
# data = "/abs/path/to/train.jsonl"
|
|
5
|
+
|
|
6
|
+
[compute]
|
|
7
|
+
gpu_type = "H100"
|
|
8
|
+
gpu_count = 4
|
|
9
|
+
nodes = 1
|
|
10
|
+
|
|
11
|
+
[data]
|
|
12
|
+
# Optional; forwarded into metadata.effective_config.data.topology
|
|
13
|
+
topology = { container_count = 4 }
|
|
14
|
+
|
|
15
|
+
[training]
|
|
16
|
+
mode = "sft_offline"
|
|
17
|
+
use_qlora = true
|
|
18
|
+
|
|
19
|
+
[training.validation]
|
|
20
|
+
enabled = true
|
|
21
|
+
evaluation_strategy = "steps"
|
|
22
|
+
eval_steps = 20
|
|
23
|
+
save_best_model_at_end = true
|
|
24
|
+
metric_for_best_model = "val.loss"
|
|
25
|
+
greater_is_better = false
|
|
26
|
+
|
|
27
|
+
[hyperparameters]
|
|
28
|
+
n_epochs = 1
|
|
29
|
+
per_device_batch = 1
|
|
30
|
+
gradient_accumulation_steps = 64
|
|
31
|
+
sequence_length = 4096
|
|
32
|
+
learning_rate = 5e-6
|
|
33
|
+
warmup_ratio = 0.03
|
|
34
|
+
|
|
35
|
+
[hyperparameters.parallelism]
|
|
36
|
+
use_deepspeed = true
|
|
37
|
+
deepspeed_stage = 2
|
|
38
|
+
bf16 = true
|
|
39
|
+
fp16 = false
|
|
40
|
+
fsdp = false
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Crafter RL LoRA (10-step runs)
|
|
2
|
+
|
|
3
|
+
This walkthrough shows how to fine-tune the Crafter task app with our 10-step RL LoRA config.
|
|
4
|
+
|
|
5
|
+
1. **Start the Crafter task app on Modal (with tracing + text-only prompts)**
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
BACKEND_BASE_URL=https://agent-learning.onrender.com/api \
|
|
9
|
+
uvx synth-ai modal-serve grpo-crafter \
|
|
10
|
+
--env-file examples/warming_up_to_rl/.env \
|
|
11
|
+
--name grpo-crafter-task-app
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
* Deploys the Modal task app with the tracing/text-only fixes baked in.*
|
|
15
|
+
|
|
16
|
+
2. **Launch the RL job using the updated LoRA config**
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
uvx synth-ai train --type rl \
|
|
20
|
+
--config tests/artifacts/configs/rl.lora.small.toml \
|
|
21
|
+
--backend https://agent-learning.onrender.com/api \
|
|
22
|
+
--env-file .env \
|
|
23
|
+
--no-poll
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
* This config forces 10 agent turns per rollout, reduces batch size to avoid OOMs, and enforces Crafter-specific defaults.*
|
|
27
|
+
|
|
28
|
+
INFO - 🎉 Training completed successfully!
|
|
29
|
+
INFO - All batch rewards: [0.0625, 0.0625, 0.125, 0.0625, 0.0625, 0.3125, 0.375, 0.4375, 0.5, 0.9375]
|