synth-ai 0.2.8.dev9__tar.gz → 0.2.8.dev11__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.8.dev9/synth_ai.egg-info → synth_ai-0.2.8.dev11}/PKG-INFO +1 -1
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/pyproject.toml +1 -1
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/demos/core/cli.py +53 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/demos/demo_task_apps/math/modal_task_app.py +124 -109
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11/synth_ai.egg-info}/PKG-INFO +1 -1
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/LICENSE +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/MANIFEST.in +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/README.md +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/setup.cfg +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/__main__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/cli/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/cli/balance.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/cli/calc.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/cli/demo.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/cli/legacy_root_backup.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/cli/man.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/cli/recent.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/cli/rl_demo.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/cli/root.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/cli/status.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/cli/traces.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/cli/watch.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/compound/cais.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/config/base_url.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/core/experiment.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/core/system.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/demos/core/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/demos/demo_task_apps/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/demos/demo_task_apps/core.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/demos/demo_task_apps/math/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/demos/demo_task_apps/math/_common.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/demos/demo_task_apps/math/app.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/demos/demo_task_apps/math/config.toml +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/demos/demo_task_apps/math/deploy_modal.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/demos/demo_task_apps/math/deploy_task_app.sh +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/environment/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/environment/artifacts/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/environment/artifacts/base.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/environment/core.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/environment/db/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/environment/db/sqlite.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/environment/registry.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/environment/resources/sqlite.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/environment/results.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/environment/rewards/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/environment/rewards/core.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/environment/shared_engine.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/environment/tools/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/bandit/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/bandit/engine.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/bandit/environment.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/bandit/taskset.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/analyze_semantic_words_markdown.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_comprehensive_evaluation.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_evaluation_browser.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_evaluation_config.toml +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_evaluation_framework.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/crafter_synth_config.toml +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/filter_config_modal.toml +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/filter_traces_sft_turso.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/kick_off_ft_modal.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/analyze_action_results.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/analyze_agent_actions.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/analyze_latest_run.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/analyze_lm_traces.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/analyze_no_rewards.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/analyze_trace_issue.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/check_db_schema.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/check_latest_results.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/debug_agent_responses.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/quick_trace_check.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/compare_experiments.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/filter_traces_sft_turso.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/kick_off_ft_oai.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/multi_model_config.toml +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/analyze_enhanced_hooks.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/analyze_hook_events.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/analyze_hook_results.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/check_hook_storage.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/check_seeds.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/compare_seed_performance.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/custom_eval_pipelines.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/plot_hook_frequency.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/seed_analysis_summary.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/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.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_quick_evaluation.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_react_agent.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/crafter_trace_evaluation.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/example_v3_usage.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/old/compare_traces.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/old/crafter_comprehensive_evaluation.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/old/crafter_env_serialization.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/old/crafter_evaluation_browser.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/old/crafter_quick_evaluation.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/old/crafter_trace_evaluation.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/old/debug_player_loss.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/old/diagnose_service.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/old/diagnose_slowness.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/old/eval_by_difficulty.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/old/eval_example.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/old/explore_saved_states.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/old/filter_traces_sft.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/old/filter_traces_sft_OLD.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/old/generate_ft_data_gemini.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/old/generate_ft_data_modal.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/old/generate_ft_metadata.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/old/kick_off_ft_gemini.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/old/kick_off_ft_modal.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/old/prepare_vertex_ft.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/old/profile_env_slowness.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/old/replicate_issue.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/old/run_and_eval.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/old/run_comparison.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/old/run_qwen_rollouts.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/old/trace_eval_OLD.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/agent_demos/old/validate_openai_format.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/config_logging.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/debug_translation.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/engine.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/engine_deterministic_patch.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/engine_helpers/action_map.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/engine_helpers/serialization.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/engine_serialization_patch_v3.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/environment.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/taskset.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/trace_hooks_v3.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_classic/world_config_patch_simple.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_custom/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_custom/agent_demos/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_custom/agent_demos/trace_eval.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_custom/crafter/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_custom/crafter/config.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_custom/crafter/constants.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_custom/crafter/engine.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_custom/crafter/env.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_custom/crafter/objects.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_custom/crafter/recorder.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_custom/crafter/worldgen.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_custom/dataset_builder.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_custom/environment.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_custom/old/analyze_diamond_issue.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_custom/old/analyze_diamond_spawning.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_custom/old/compare_worlds.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_custom/old/dataset_stats.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_custom/old/diamond_spawning_summary.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_custom/old/example_dataset_usage.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/crafter_custom/run_dataset.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/enron/art_helpers/email_search_tools.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/enron/art_helpers/local_email_db.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/enron/art_helpers/types_enron.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/enron/engine.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/enron/environment.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/enron/taskset.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/enron/units/keyword_stats.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/minigrid/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/minigrid/agent_demos/minigrid_evaluation_framework.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/minigrid/agent_demos/minigrid_quick_evaluation.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/minigrid/agent_demos/minigrid_react_agent.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/minigrid/agent_demos/minigrid_trace_evaluation.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/minigrid/engine.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/minigrid/environment.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/minigrid/environment_mapping.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/minigrid/puzzle_loader.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/minigrid/taskset.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/nethack/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/nethack/achievements.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/nethack/agent_demos/nethack_evaluation_framework.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/nethack/agent_demos/nethack_quick_evaluation.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/nethack/agent_demos/nethack_react_agent.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/nethack/engine.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/nethack/environment.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/nethack/helpers/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/nethack/helpers/action_mapping.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/nethack/helpers/nle_wrapper.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/nethack/helpers/observation_utils.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/nethack/helpers/recording_wrapper.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/nethack/helpers/trajectory_recorder.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/nethack/helpers/visualization/replay_viewer.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/nethack/helpers/visualization/visualizer.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/nethack/taskset.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/red/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/red/agent_demos/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/red/config_logging.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/red/engine.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/red/engine_helpers/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/red/engine_helpers/memory_map.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/red/engine_helpers/reward_components.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/red/engine_helpers/reward_library/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/red/engine_helpers/reward_library/adaptive_rewards.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/red/engine_helpers/reward_library/battle_rewards.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/red/engine_helpers/reward_library/composite_rewards.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/red/engine_helpers/reward_library/economy_rewards.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/red/engine_helpers/reward_library/efficiency_rewards.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/red/engine_helpers/reward_library/exploration_rewards.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/red/engine_helpers/reward_library/novelty_rewards.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/red/engine_helpers/reward_library/pallet_town_rewards.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/red/engine_helpers/reward_library/pokemon_rewards.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/red/engine_helpers/reward_library/social_rewards.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/red/engine_helpers/reward_library/story_rewards.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/red/engine_helpers/screen_analysis.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/red/engine_helpers/state_extraction.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/red/environment.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/red/taskset.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/red/units/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/sokoban/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/sokoban/agent_demos/sokoban_full_eval.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/sokoban/engine.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/sokoban/engine_helpers/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/sokoban/engine_helpers/room_utils.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/sokoban/engine_helpers/vendored/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/boxoban_env.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/render_utils.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/room_utils.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/sokoban_env.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/sokoban_env_fixed_targets.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/sokoban_env_pull.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/sokoban_env_two_player.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/sokoban_env_variations.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/sokoban/environment.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/sokoban/generate_verified_puzzles.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/sokoban/puzzle_loader.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/sokoban/taskset.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/sokoban/units/astar_common.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/tictactoe/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/tictactoe/engine.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/tictactoe/environment.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/tictactoe/taskset.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/verilog/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/verilog/engine.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/verilog/environment.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/verilog/taskset.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/wordle/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/wordle/engine.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/wordle/environment.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/wordle/helpers/generate_instances_wordfreq.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/wordle/taskset.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/reproducibility/core.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/reproducibility/helpers.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/reproducibility/tree.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/service/app.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/service/core_routes.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/service/external_registry.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/service/registry.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/stateful/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/stateful/core.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/stateful/engine.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/stateful/state.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/tasks/api.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/tasks/core.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/tasks/filters.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/tasks/utils.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/v0_observability/history.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/v0_observability/log.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/evals/base.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/experimental/synth_oss.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/handshake.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/http.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/http_client.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/inference/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/inference/client.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/install_sqld.sh +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/jobs/client.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/learning/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/learning/client.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/learning/config.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/learning/constants.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/learning/core.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/learning/filtering.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/learning/ft_client.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/learning/gateway.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/learning/health.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/learning/jobs.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/learning/offline/dpo.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/learning/offline/providers.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/learning/offline/sft.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/learning/offline/shared.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/learning/online/grpo.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/learning/online/irft.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/learning/prompts/banking77_injection_eval.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/learning/prompts/gepa.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/learning/prompts/hello_world_in_context_injection_ex.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/learning/prompts/mipro.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/learning/prompts/random_search.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/learning/prompts/run_mipro_banking77.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/learning/prompts/run_random_search_banking77.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/learning/rl_client.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/learning/sse.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/learning/validators.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/caching/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/caching/constants.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/caching/dbs.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/caching/ephemeral.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/caching/handler.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/caching/initialize.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/caching/persistent.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/config.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/constants.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/core/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/core/all.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/core/exceptions.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/core/main.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/core/main_v3.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/core/synth_models.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/core/vendor_clients.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/cost/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/cost/monitor.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/cost/statefulness.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/injection.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/overrides.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/provider_support/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/provider_support/anthropic.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/provider_support/openai.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/provider_support/suppress_logging.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/structured_outputs/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/structured_outputs/handler.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/structured_outputs/inject.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/structured_outputs/rehabilitate.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/tools/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/tools/base.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/unified_interface.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/vendors/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/vendors/base.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/vendors/core/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/vendors/core/anthropic_api.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/vendors/core/gemini_api.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/vendors/core/mistral_api.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/vendors/core/openai_api.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/vendors/core/synth_dev_api.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/vendors/local/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/vendors/local/ollama.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/vendors/openai_standard.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/vendors/openai_standard_responses.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/vendors/retries.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/vendors/supported/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/vendors/supported/custom_endpoint.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/vendors/supported/deepseek.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/vendors/supported/grok.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/vendors/supported/groq.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/vendors/supported/ollama.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/vendors/supported/openrouter.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/vendors/supported/together.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/vendors/synth_client.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/lm/warmup.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/rl/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/rl/contracts.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/rl/env_keys.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/rl/secrets.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/scripts/verify_rewards.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/task/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/task/contracts.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/task/health.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/task/validators.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/tracing/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/tracing_v1/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/tracing_v3/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/tracing_v3/abstractions.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/tracing_v3/config.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/tracing_v3/db_config.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/tracing_v3/decorators.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/tracing_v3/examples/basic_usage.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/tracing_v3/hooks.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/tracing_v3/llm_call_record_helpers.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/tracing_v3/lm_call_record_abstractions.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/tracing_v3/migration_helper.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/tracing_v3/replica_sync.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/tracing_v3/session_tracer.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/tracing_v3/storage/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/tracing_v3/storage/base.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/tracing_v3/storage/config.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/tracing_v3/storage/exceptions.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/tracing_v3/storage/factory.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/tracing_v3/storage/types.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/tracing_v3/storage/utils.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/tracing_v3/turso/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/tracing_v3/turso/daemon.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/tracing_v3/turso/manager.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/tracing_v3/turso/models.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/tracing_v3/utils.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/v0/tracing/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/v0/tracing/abstractions.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/v0/tracing/base_client.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/v0/tracing/client_manager.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/v0/tracing/config.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/v0/tracing/context.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/v0/tracing/decorators.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/v0/tracing/events/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/v0/tracing/events/manage.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/v0/tracing/events/scope.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/v0/tracing/events/store.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/v0/tracing/immediate_client.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/v0/tracing/local.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/v0/tracing/log_client_base.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/v0/tracing/retry_queue.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/v0/tracing/trackers.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/v0/tracing/upload.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/v0/tracing/utils.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/v0/tracing_v1/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/v0/tracing_v1/abstractions.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/v0/tracing_v1/base_client.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/v0/tracing_v1/client_manager.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/v0/tracing_v1/config.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/v0/tracing_v1/context.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/v0/tracing_v1/decorators.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/v0/tracing_v1/events/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/v0/tracing_v1/events/manage.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/v0/tracing_v1/events/scope.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/v0/tracing_v1/events/store.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/v0/tracing_v1/immediate_client.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/v0/tracing_v1/local.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/v0/tracing_v1/log_client_base.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/v0/tracing_v1/retry_queue.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/v0/tracing_v1/trackers.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/v0/tracing_v1/upload.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/v0/tracing_v1/utils.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/zyk/__init__.py +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai.egg-info/SOURCES.txt +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai.egg-info/dependency_links.txt +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai.egg-info/entry_points.txt +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai.egg-info/requires.txt +0 -0
- {synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai.egg-info/top_level.txt +0 -0
|
@@ -1216,6 +1216,59 @@ def cmd_run(args: argparse.Namespace) -> int:
|
|
|
1216
1216
|
except Exception:
|
|
1217
1217
|
print(str(js))
|
|
1218
1218
|
print("Request body was:\n" + json.dumps(body, indent=2))
|
|
1219
|
+
try:
|
|
1220
|
+
auth_preview = _key_preview(env.synth_api_key or "", "SYNTH_API_KEY (auth)")
|
|
1221
|
+
print(f"[run] {auth_preview}")
|
|
1222
|
+
except Exception:
|
|
1223
|
+
pass
|
|
1224
|
+
try:
|
|
1225
|
+
data_block = body.get("data") if isinstance(body, dict) else None
|
|
1226
|
+
env_key_body = ""
|
|
1227
|
+
if isinstance(data_block, dict):
|
|
1228
|
+
env_key_body = str(data_block.get("environment_api_key") or "")
|
|
1229
|
+
if env_key_body:
|
|
1230
|
+
print(f"[run] {_key_preview(env_key_body, 'environment_api_key (body)')}")
|
|
1231
|
+
except Exception:
|
|
1232
|
+
pass
|
|
1233
|
+
try:
|
|
1234
|
+
current_env_key = env.env_api_key or ""
|
|
1235
|
+
if current_env_key:
|
|
1236
|
+
print(f"[run] {_key_preview(current_env_key, 'ENVIRONMENT_API_KEY (current)')}")
|
|
1237
|
+
except Exception:
|
|
1238
|
+
pass
|
|
1239
|
+
if isinstance(js, dict):
|
|
1240
|
+
detail = js.get("detail")
|
|
1241
|
+
if isinstance(detail, dict):
|
|
1242
|
+
try:
|
|
1243
|
+
sent_key = detail.get("sent_key")
|
|
1244
|
+
if isinstance(sent_key, str):
|
|
1245
|
+
print(f"[run] Backend detail.sent_key {_key_preview(sent_key, 'detail.sent_key')}")
|
|
1246
|
+
except Exception:
|
|
1247
|
+
pass
|
|
1248
|
+
try:
|
|
1249
|
+
sent_keys = detail.get("sent_keys")
|
|
1250
|
+
if isinstance(sent_keys, (list, tuple)):
|
|
1251
|
+
previews = []
|
|
1252
|
+
for idx, val in enumerate(sent_keys):
|
|
1253
|
+
if isinstance(val, str):
|
|
1254
|
+
previews.append(_key_preview(val, f"detail.sent_keys[{idx}]"))
|
|
1255
|
+
if previews:
|
|
1256
|
+
joined = "; ".join(previews)
|
|
1257
|
+
print(f"[run] Backend detail.sent_keys previews: {joined}")
|
|
1258
|
+
except Exception:
|
|
1259
|
+
pass
|
|
1260
|
+
try:
|
|
1261
|
+
key_prefix = detail.get("sent_key_prefix")
|
|
1262
|
+
if isinstance(key_prefix, str):
|
|
1263
|
+
print(f"[run] Backend detail.sent_key_prefix={key_prefix}")
|
|
1264
|
+
except Exception:
|
|
1265
|
+
pass
|
|
1266
|
+
try:
|
|
1267
|
+
health_url = detail.get("health_url")
|
|
1268
|
+
if isinstance(health_url, str):
|
|
1269
|
+
print(f"[run] Backend detail.health_url={health_url}")
|
|
1270
|
+
except Exception:
|
|
1271
|
+
pass
|
|
1219
1272
|
# Extra hints for auth failures
|
|
1220
1273
|
try:
|
|
1221
1274
|
sk = (env.synth_api_key or "").strip()
|
{synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/demos/demo_task_apps/math/modal_task_app.py
RENAMED
|
@@ -358,122 +358,137 @@ def fastapi_app():
|
|
|
358
358
|
pass
|
|
359
359
|
return []
|
|
360
360
|
|
|
361
|
-
#
|
|
361
|
+
# Single-step rollout: one agent call followed by evaluation of the returned tool answer
|
|
362
362
|
history: list[dict[str, Any]] = []
|
|
363
363
|
steps: list[dict[str, Any]] = []
|
|
364
364
|
total_reward = 0.0
|
|
365
|
-
last_llm_text: str | None = None
|
|
366
|
-
last_actions: list[str] = []
|
|
367
|
-
for op in ops or []:
|
|
368
|
-
if op == "agent":
|
|
369
|
-
user_prompt = (
|
|
370
|
-
str(question)
|
|
371
|
-
if isinstance(question, (str, int, float)) and str(question).strip()
|
|
372
|
-
else "Solve the problem. Provide answer steps succinctly."
|
|
373
|
-
)
|
|
374
|
-
payload = {
|
|
375
|
-
"model": model,
|
|
376
|
-
"messages": [{"role": "user", "content": user_prompt}],
|
|
377
|
-
"tools": [{
|
|
378
|
-
"type": "function",
|
|
379
|
-
"function": {"name": "interact", "parameters": {"type": "object", "properties": {"actions": {"type": "array", "items": {"type": "string"}}}, "required": ["actions"]}},
|
|
380
|
-
}],
|
|
381
|
-
"max_tokens": 256,
|
|
382
|
-
"temperature": 0.2,
|
|
383
|
-
}
|
|
384
|
-
to_send = _prepare_payload(model if isinstance(model, str) else None, payload)
|
|
385
|
-
# Print prompts and tools exposed to the model
|
|
386
|
-
try:
|
|
387
|
-
tool_names = []
|
|
388
|
-
for t in (payload.get("tools") or []):
|
|
389
|
-
if isinstance(t, dict):
|
|
390
|
-
fn = (t.get("function") or {}) if isinstance(t.get("function"), dict) else {}
|
|
391
|
-
name = fn.get("name")
|
|
392
|
-
if isinstance(name, str):
|
|
393
|
-
tool_names.append(name)
|
|
394
|
-
print(f"[math] system: <none>", flush=True)
|
|
395
|
-
print(f"[math] user: {user_prompt}", flush=True)
|
|
396
|
-
print(f"[math] tools: {tool_names}", flush=True)
|
|
397
|
-
except Exception:
|
|
398
|
-
pass
|
|
399
|
-
headers = {}
|
|
400
|
-
if "/proxy" in inference_url:
|
|
401
|
-
sk = os.environ.get("SYNTH_API_KEY")
|
|
402
|
-
if sk:
|
|
403
|
-
headers["Authorization"] = f"Bearer {sk}"
|
|
404
|
-
with httpx.Client(timeout=httpx.Timeout(180.0), follow_redirects=True) as client:
|
|
405
|
-
resp = client.post(f"{inference_url}/v1/chat/completions", json=to_send, headers=headers)
|
|
406
|
-
try:
|
|
407
|
-
data = resp.json()
|
|
408
|
-
except Exception:
|
|
409
|
-
data = {"error": "invalid_json", "raw": resp.text[:400]}
|
|
410
|
-
|
|
411
|
-
# Extract assistant text for visibility/correctness
|
|
412
|
-
llm_text = None
|
|
413
|
-
try:
|
|
414
|
-
_choices = data.get("choices") if isinstance(data, dict) else None
|
|
415
|
-
if isinstance(_choices, list) and _choices:
|
|
416
|
-
_msg = _choices[0].get("message", {}) if isinstance(_choices[0], dict) else {}
|
|
417
|
-
if isinstance(_msg, dict):
|
|
418
|
-
_content = _msg.get("content")
|
|
419
|
-
if isinstance(_content, str) and _content.strip():
|
|
420
|
-
llm_text = _content
|
|
421
|
-
except Exception:
|
|
422
|
-
llm_text = None
|
|
423
|
-
|
|
424
|
-
# Print question, model output, and correctness if we have an expected answer
|
|
425
|
-
try:
|
|
426
|
-
if question is not None:
|
|
427
|
-
print(f"[math] question: {question}", flush=True)
|
|
428
|
-
if llm_text is not None:
|
|
429
|
-
print(f"[math] llm: {llm_text}", flush=True)
|
|
430
|
-
if expected_answer is not None and llm_text is not None:
|
|
431
|
-
exp = str(expected_answer).strip()
|
|
432
|
-
got = llm_text.strip()
|
|
433
|
-
is_correct = exp and (exp in got)
|
|
434
|
-
print(f"[math] correct: {bool(is_correct)} (expected fragment: {exp})", flush=True)
|
|
435
|
-
except Exception:
|
|
436
|
-
pass
|
|
437
|
-
last_llm_text = llm_text
|
|
438
|
-
acts = _parse_tool_actions(data) or []
|
|
439
|
-
last_actions = acts if isinstance(acts, list) else []
|
|
440
|
-
steps.append({"obs": {}, "tool_calls": [{"tool_name": "interact", "arguments": _json.dumps({"actions": acts})}], "reward": None, "done": False, "truncated": False, "info": None})
|
|
441
|
-
history.append({"actions": acts})
|
|
442
|
-
elif op == "env":
|
|
443
|
-
# Compute a simple correctness-based reward if expected answer available
|
|
444
|
-
reward_val = 0.0
|
|
445
|
-
try:
|
|
446
|
-
if expected_answer is not None:
|
|
447
|
-
# Prefer explicit tool-call answer from last_actions
|
|
448
|
-
candidate = ""
|
|
449
|
-
if isinstance(last_actions, list) and last_actions:
|
|
450
|
-
# Take the last non-empty action as the final answer
|
|
451
|
-
for s in reversed(last_actions):
|
|
452
|
-
if isinstance(s, str) and s.strip():
|
|
453
|
-
candidate = s.strip()
|
|
454
|
-
break
|
|
455
|
-
# Fallback to parse from llm_text if tool actions absent
|
|
456
|
-
if not candidate and last_llm_text is not None:
|
|
457
|
-
candidate = _extract_boxed(last_llm_text) or last_llm_text
|
|
458
|
-
exp_raw = _extract_boxed(str(expected_answer)) or str(expected_answer)
|
|
459
|
-
got_raw = candidate
|
|
460
|
-
exp_n = _normalize_answer_text(exp_raw)
|
|
461
|
-
got_n = _normalize_answer_text(got_raw)
|
|
462
|
-
if exp_n and exp_n in got_n:
|
|
463
|
-
reward_val = 1.0
|
|
464
|
-
except Exception:
|
|
465
|
-
reward_val = 0.0
|
|
466
|
-
steps.append({"obs": {}, "tool_calls": [], "reward": reward_val, "done": False, "truncated": False, "info": None})
|
|
467
|
-
total_reward += float(reward_val)
|
|
468
|
-
else:
|
|
469
|
-
continue
|
|
470
365
|
|
|
471
|
-
|
|
366
|
+
user_prompt = (
|
|
367
|
+
str(question)
|
|
368
|
+
if isinstance(question, (str, int, float)) and str(question).strip()
|
|
369
|
+
else "Solve the problem. Provide answer steps succinctly."
|
|
370
|
+
)
|
|
371
|
+
payload = {
|
|
372
|
+
"model": model,
|
|
373
|
+
"messages": [{"role": "user", "content": user_prompt}],
|
|
374
|
+
"tools": [{
|
|
375
|
+
"type": "function",
|
|
376
|
+
"function": {"name": "interact", "parameters": {"type": "object", "properties": {"actions": {"type": "array", "items": {"type": "string"}}}, "required": ["actions"]}},
|
|
377
|
+
}],
|
|
378
|
+
"max_tokens": 256,
|
|
379
|
+
"temperature": 0.2,
|
|
380
|
+
}
|
|
381
|
+
to_send = _prepare_payload(model if isinstance(model, str) else None, payload)
|
|
382
|
+
|
|
383
|
+
try:
|
|
384
|
+
tool_names = []
|
|
385
|
+
for t in (payload.get("tools") or []):
|
|
386
|
+
if isinstance(t, dict):
|
|
387
|
+
fn = (t.get("function") or {}) if isinstance(t.get("function"), dict) else {}
|
|
388
|
+
name = fn.get("name")
|
|
389
|
+
if isinstance(name, str):
|
|
390
|
+
tool_names.append(name)
|
|
391
|
+
print(f"[math] system: <none>", flush=True)
|
|
392
|
+
print(f"[math] user: {user_prompt}", flush=True)
|
|
393
|
+
print(f"[math] tools: {tool_names}", flush=True)
|
|
394
|
+
except Exception:
|
|
395
|
+
pass
|
|
396
|
+
|
|
397
|
+
headers = {}
|
|
398
|
+
if "/proxy" in inference_url:
|
|
399
|
+
sk = os.environ.get("SYNTH_API_KEY")
|
|
400
|
+
if sk:
|
|
401
|
+
headers["Authorization"] = f"Bearer {sk}"
|
|
402
|
+
with httpx.Client(timeout=httpx.Timeout(180.0), follow_redirects=True) as client:
|
|
403
|
+
resp = client.post(f"{inference_url}/v1/chat/completions", json=to_send, headers=headers)
|
|
404
|
+
try:
|
|
405
|
+
data = resp.json()
|
|
406
|
+
except Exception:
|
|
407
|
+
data = {"error": "invalid_json", "raw": resp.text[:400]}
|
|
408
|
+
|
|
409
|
+
llm_text = None
|
|
410
|
+
try:
|
|
411
|
+
_choices = data.get("choices") if isinstance(data, dict) else None
|
|
412
|
+
if isinstance(_choices, list) and _choices:
|
|
413
|
+
_msg = _choices[0].get("message", {}) if isinstance(_choices[0], dict) else {}
|
|
414
|
+
if isinstance(_msg, dict):
|
|
415
|
+
_content = _msg.get("content")
|
|
416
|
+
if isinstance(_content, str) and _content.strip():
|
|
417
|
+
llm_text = _content
|
|
418
|
+
except Exception:
|
|
419
|
+
llm_text = None
|
|
420
|
+
|
|
421
|
+
try:
|
|
422
|
+
if question is not None:
|
|
423
|
+
print(f"[math] question: {question}", flush=True)
|
|
424
|
+
if llm_text is not None:
|
|
425
|
+
print(f"[math] llm: {llm_text}", flush=True)
|
|
426
|
+
if expected_answer is not None and llm_text is not None:
|
|
427
|
+
exp = str(expected_answer).strip()
|
|
428
|
+
got = llm_text.strip()
|
|
429
|
+
is_correct = exp and (exp in got)
|
|
430
|
+
print(f"[math] correct: {bool(is_correct)} (expected fragment: {exp})", flush=True)
|
|
431
|
+
except Exception:
|
|
432
|
+
pass
|
|
433
|
+
|
|
434
|
+
tool_actions = _parse_tool_actions(data)
|
|
435
|
+
history.append({"actions": tool_actions})
|
|
436
|
+
steps.append({
|
|
437
|
+
"obs": {},
|
|
438
|
+
"tool_calls": [{"tool_name": "interact", "arguments": _json.dumps({"actions": tool_actions})}],
|
|
439
|
+
"reward": None,
|
|
440
|
+
"done": False,
|
|
441
|
+
"truncated": False,
|
|
442
|
+
"info": None,
|
|
443
|
+
})
|
|
444
|
+
|
|
445
|
+
# Evaluate answer correctness using tool output (or fall back to assistant text)
|
|
446
|
+
reward_val = 0.0
|
|
447
|
+
candidate = ""
|
|
448
|
+
try:
|
|
449
|
+
if isinstance(tool_actions, list):
|
|
450
|
+
for s in reversed(tool_actions):
|
|
451
|
+
if isinstance(s, str) and s.strip():
|
|
452
|
+
candidate = s.strip()
|
|
453
|
+
break
|
|
454
|
+
if not candidate and llm_text is not None:
|
|
455
|
+
candidate = _extract_boxed(llm_text) or llm_text
|
|
456
|
+
if expected_answer is not None:
|
|
457
|
+
exp_raw = _extract_boxed(str(expected_answer)) or str(expected_answer)
|
|
458
|
+
got_raw = candidate
|
|
459
|
+
exp_n = _normalize_answer_text(exp_raw)
|
|
460
|
+
got_n = _normalize_answer_text(got_raw)
|
|
461
|
+
if exp_n and exp_n in got_n:
|
|
462
|
+
reward_val = 1.0
|
|
463
|
+
except Exception:
|
|
464
|
+
reward_val = 0.0
|
|
465
|
+
|
|
466
|
+
total_reward += float(reward_val)
|
|
467
|
+
steps.append({
|
|
468
|
+
"obs": {},
|
|
469
|
+
"tool_calls": [],
|
|
470
|
+
"reward": reward_val,
|
|
471
|
+
"done": True,
|
|
472
|
+
"truncated": False,
|
|
473
|
+
"info": None,
|
|
474
|
+
})
|
|
475
|
+
|
|
472
476
|
return {
|
|
473
477
|
"run_id": run_id,
|
|
474
|
-
"trajectories": [{
|
|
478
|
+
"trajectories": [{
|
|
479
|
+
"env_id": env_name,
|
|
480
|
+
"policy_id": (policy or {}).get("policy_name") or "math-react",
|
|
481
|
+
"steps": steps,
|
|
482
|
+
"final": {"observation": {}},
|
|
483
|
+
"length": len(steps),
|
|
484
|
+
}],
|
|
475
485
|
"branches": {},
|
|
476
|
-
"metrics": {
|
|
486
|
+
"metrics": {
|
|
487
|
+
"episode_returns": [total_reward],
|
|
488
|
+
"mean_return": float(total_reward),
|
|
489
|
+
"num_steps": len(steps),
|
|
490
|
+
"num_episodes": 1,
|
|
491
|
+
},
|
|
477
492
|
"aborted": False,
|
|
478
493
|
"ops_executed": len(steps),
|
|
479
494
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/demos/demo_task_apps/math/deploy_modal.py
RENAMED
|
File without changes
|
{synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/demos/demo_task_apps/math/deploy_task_app.sh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/environment/artifacts/__init__.py
RENAMED
|
File without changes
|
{synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/environment/artifacts/base.py
RENAMED
|
File without changes
|
|
File without changes
|
{synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/environment/db/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/environment/resources/sqlite.py
RENAMED
|
File without changes
|
|
File without changes
|
{synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/environment/rewards/__init__.py
RENAMED
|
File without changes
|
{synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/environment/rewards/core.py
RENAMED
|
File without changes
|
{synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/environment/shared_engine.py
RENAMED
|
File without changes
|
{synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/environment/tools/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/bandit/__init__.py
RENAMED
|
File without changes
|
{synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/bandit/engine.py
RENAMED
|
File without changes
|
{synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/bandit/environment.py
RENAMED
|
File without changes
|
{synth_ai-0.2.8.dev9 → synth_ai-0.2.8.dev11}/synth_ai/environments/examples/bandit/taskset.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|