synth-ai 0.2.4.dev7__py3-none-any.whl → 0.2.4.dev9__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of synth-ai might be problematic. Click here for more details.

Files changed (154) hide show
  1. synth_ai/__init__.py +1 -1
  2. synth_ai/cli/__init__.py +6 -0
  3. synth_ai/cli/balance.py +3 -15
  4. synth_ai/cli/demo.py +68 -9
  5. synth_ai/cli/rl_demo.py +137 -0
  6. synth_ai/cli/root.py +65 -0
  7. synth_ai/config/base_url.py +47 -0
  8. synth_ai/demos/core/__init__.py +1 -0
  9. synth_ai/demos/core/cli.py +621 -0
  10. synth_ai/demos/demo_task_apps/__init__.py +1 -0
  11. synth_ai/demos/demo_task_apps/core.py +374 -0
  12. synth_ai/demos/demo_task_apps/math/__init__.py +1 -0
  13. synth_ai/demos/demo_task_apps/math/app.py +37 -0
  14. synth_ai/demos/demo_task_apps/math/config.toml +44 -0
  15. synth_ai/demos/demo_task_apps/math/deploy_modal.py +60 -0
  16. synth_ai/demos/demo_task_apps/math/deploy_task_app.sh +22 -0
  17. synth_ai/environments/examples/bandit/__init__.py +33 -0
  18. synth_ai/environments/examples/bandit/engine.py +294 -0
  19. synth_ai/environments/examples/bandit/environment.py +194 -0
  20. synth_ai/environments/examples/bandit/taskset.py +200 -0
  21. synth_ai/environments/examples/crafter_classic/agent_demos/analyze_semantic_words_markdown.py +250 -0
  22. synth_ai/environments/examples/crafter_classic/agent_demos/crafter_comprehensive_evaluation.py +59 -0
  23. synth_ai/environments/examples/crafter_classic/agent_demos/crafter_evaluation_browser.py +152 -0
  24. synth_ai/environments/examples/crafter_classic/agent_demos/crafter_evaluation_config.toml +24 -0
  25. synth_ai/environments/examples/crafter_classic/agent_demos/crafter_evaluation_framework.py +1194 -0
  26. synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/crafter_synth_config.toml +56 -0
  27. synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/filter_config_modal.toml +32 -0
  28. synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/filter_traces_sft_turso.py +724 -0
  29. synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/kick_off_ft_modal.py +384 -0
  30. synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/analyze_action_results.py +53 -0
  31. synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/analyze_agent_actions.py +178 -0
  32. synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/analyze_latest_run.py +222 -0
  33. synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/analyze_lm_traces.py +183 -0
  34. synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/analyze_no_rewards.py +210 -0
  35. synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/analyze_trace_issue.py +206 -0
  36. synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/check_db_schema.py +49 -0
  37. synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/check_latest_results.py +64 -0
  38. synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/debug_agent_responses.py +88 -0
  39. synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/quick_trace_check.py +77 -0
  40. synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/compare_experiments.py +324 -0
  41. synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/filter_traces_sft_turso.py +580 -0
  42. synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/kick_off_ft_oai.py +362 -0
  43. synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/multi_model_config.toml +49 -0
  44. synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/analyze_enhanced_hooks.py +332 -0
  45. synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/analyze_hook_events.py +97 -0
  46. synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/analyze_hook_results.py +217 -0
  47. synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/check_hook_storage.py +87 -0
  48. synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/check_seeds.py +88 -0
  49. synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/compare_seed_performance.py +195 -0
  50. synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/custom_eval_pipelines.py +400 -0
  51. synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/plot_hook_frequency.py +195 -0
  52. synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/seed_analysis_summary.py +56 -0
  53. synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/run_rollouts_for_models_and_compare_v3.py +858 -0
  54. synth_ai/environments/examples/crafter_classic/agent_demos/crafter_quick_evaluation.py +52 -0
  55. synth_ai/environments/examples/crafter_classic/agent_demos/crafter_react_agent.py +874 -0
  56. synth_ai/environments/examples/crafter_classic/agent_demos/crafter_trace_evaluation.py +1412 -0
  57. synth_ai/environments/examples/crafter_classic/agent_demos/example_v3_usage.py +216 -0
  58. synth_ai/environments/examples/crafter_classic/agent_demos/old/compare_traces.py +296 -0
  59. synth_ai/environments/examples/crafter_classic/agent_demos/old/crafter_comprehensive_evaluation.py +58 -0
  60. synth_ai/environments/examples/crafter_classic/agent_demos/old/crafter_env_serialization.py +464 -0
  61. synth_ai/environments/examples/crafter_classic/agent_demos/old/crafter_evaluation_browser.py +152 -0
  62. synth_ai/environments/examples/crafter_classic/agent_demos/old/crafter_quick_evaluation.py +51 -0
  63. synth_ai/environments/examples/crafter_classic/agent_demos/old/crafter_trace_evaluation.py +1412 -0
  64. synth_ai/environments/examples/crafter_classic/agent_demos/old/debug_player_loss.py +112 -0
  65. synth_ai/environments/examples/crafter_classic/agent_demos/old/diagnose_service.py +203 -0
  66. synth_ai/environments/examples/crafter_classic/agent_demos/old/diagnose_slowness.py +305 -0
  67. synth_ai/environments/examples/crafter_classic/agent_demos/old/eval_by_difficulty.py +126 -0
  68. synth_ai/environments/examples/crafter_classic/agent_demos/old/eval_example.py +94 -0
  69. synth_ai/environments/examples/crafter_classic/agent_demos/old/explore_saved_states.py +142 -0
  70. synth_ai/environments/examples/crafter_classic/agent_demos/old/filter_traces_sft.py +26 -0
  71. synth_ai/environments/examples/crafter_classic/agent_demos/old/filter_traces_sft_OLD.py +984 -0
  72. synth_ai/environments/examples/crafter_classic/agent_demos/old/generate_ft_data_gemini.py +724 -0
  73. synth_ai/environments/examples/crafter_classic/agent_demos/old/generate_ft_data_modal.py +386 -0
  74. synth_ai/environments/examples/crafter_classic/agent_demos/old/generate_ft_metadata.py +205 -0
  75. synth_ai/environments/examples/crafter_classic/agent_demos/old/kick_off_ft_gemini.py +150 -0
  76. synth_ai/environments/examples/crafter_classic/agent_demos/old/kick_off_ft_modal.py +283 -0
  77. synth_ai/environments/examples/crafter_classic/agent_demos/old/prepare_vertex_ft.py +280 -0
  78. synth_ai/environments/examples/crafter_classic/agent_demos/old/profile_env_slowness.py +456 -0
  79. synth_ai/environments/examples/crafter_classic/agent_demos/old/replicate_issue.py +166 -0
  80. synth_ai/environments/examples/crafter_classic/agent_demos/old/run_and_eval.py +102 -0
  81. synth_ai/environments/examples/crafter_classic/agent_demos/old/run_comparison.py +128 -0
  82. synth_ai/environments/examples/crafter_classic/agent_demos/old/run_qwen_rollouts.py +655 -0
  83. synth_ai/environments/examples/crafter_classic/agent_demos/old/trace_eval_OLD.py +202 -0
  84. synth_ai/environments/examples/crafter_classic/agent_demos/old/validate_openai_format.py +166 -0
  85. synth_ai/environments/examples/crafter_classic/environment.py +41 -2
  86. synth_ai/environments/examples/crafter_custom/agent_demos/__init__.py +1 -0
  87. synth_ai/environments/examples/crafter_custom/agent_demos/trace_eval.py +202 -0
  88. synth_ai/environments/examples/crafter_custom/old/analyze_diamond_issue.py +159 -0
  89. synth_ai/environments/examples/crafter_custom/old/analyze_diamond_spawning.py +158 -0
  90. synth_ai/environments/examples/crafter_custom/old/compare_worlds.py +71 -0
  91. synth_ai/environments/examples/crafter_custom/old/dataset_stats.py +105 -0
  92. synth_ai/environments/examples/crafter_custom/old/diamond_spawning_summary.py +119 -0
  93. synth_ai/environments/examples/crafter_custom/old/example_dataset_usage.py +52 -0
  94. synth_ai/environments/examples/enron/units/keyword_stats.py +112 -0
  95. synth_ai/environments/examples/minigrid/agent_demos/minigrid_evaluation_framework.py +1188 -0
  96. synth_ai/environments/examples/minigrid/agent_demos/minigrid_quick_evaluation.py +48 -0
  97. synth_ai/environments/examples/minigrid/agent_demos/minigrid_react_agent.py +562 -0
  98. synth_ai/environments/examples/minigrid/agent_demos/minigrid_trace_evaluation.py +221 -0
  99. synth_ai/environments/examples/nethack/agent_demos/nethack_evaluation_framework.py +981 -0
  100. synth_ai/environments/examples/nethack/agent_demos/nethack_quick_evaluation.py +74 -0
  101. synth_ai/environments/examples/nethack/agent_demos/nethack_react_agent.py +831 -0
  102. synth_ai/environments/examples/red/agent_demos/__init__.py +1 -0
  103. synth_ai/environments/examples/red/units/__init__.py +1 -0
  104. synth_ai/environments/examples/sokoban/agent_demos/sokoban_full_eval.py +899 -0
  105. synth_ai/environments/examples/sokoban/units/astar_common.py +95 -0
  106. synth_ai/environments/service/app.py +8 -0
  107. synth_ai/http.py +102 -0
  108. synth_ai/inference/__init__.py +7 -0
  109. synth_ai/inference/client.py +20 -0
  110. synth_ai/install_sqld.sh +40 -0
  111. synth_ai/jobs/client.py +246 -0
  112. synth_ai/learning/__init__.py +24 -0
  113. synth_ai/learning/client.py +149 -0
  114. synth_ai/learning/config.py +43 -0
  115. synth_ai/learning/constants.py +29 -0
  116. synth_ai/learning/ft_client.py +59 -0
  117. synth_ai/learning/health.py +43 -0
  118. synth_ai/learning/jobs.py +205 -0
  119. synth_ai/learning/rl_client.py +256 -0
  120. synth_ai/learning/sse.py +58 -0
  121. synth_ai/learning/validators.py +48 -0
  122. synth_ai/lm/core/main_v3.py +13 -0
  123. synth_ai/lm/core/synth_models.py +48 -0
  124. synth_ai/lm/core/vendor_clients.py +9 -6
  125. synth_ai/lm/vendors/core/openai_api.py +31 -3
  126. synth_ai/lm/vendors/openai_standard.py +45 -14
  127. synth_ai/lm/vendors/supported/custom_endpoint.py +12 -2
  128. synth_ai/lm/vendors/synth_client.py +372 -28
  129. synth_ai/rl/__init__.py +30 -0
  130. synth_ai/rl/contracts.py +32 -0
  131. synth_ai/rl/env_keys.py +137 -0
  132. synth_ai/rl/secrets.py +19 -0
  133. synth_ai/scripts/verify_rewards.py +100 -0
  134. synth_ai/task/__init__.py +10 -0
  135. synth_ai/task/contracts.py +120 -0
  136. synth_ai/task/health.py +28 -0
  137. synth_ai/task/validators.py +12 -0
  138. synth_ai/tracing_v3/hooks.py +3 -1
  139. synth_ai/tracing_v3/session_tracer.py +123 -2
  140. synth_ai/tracing_v3/turso/manager.py +218 -0
  141. synth_ai/tracing_v3/turso/models.py +53 -0
  142. synth_ai-0.2.4.dev9.dist-info/METADATA +91 -0
  143. {synth_ai-0.2.4.dev7.dist-info → synth_ai-0.2.4.dev9.dist-info}/RECORD +147 -30
  144. {synth_ai-0.2.4.dev7.dist-info → synth_ai-0.2.4.dev9.dist-info}/entry_points.txt +1 -0
  145. synth_ai/tui/__init__.py +0 -1
  146. synth_ai/tui/__main__.py +0 -13
  147. synth_ai/tui/cli/__init__.py +0 -1
  148. synth_ai/tui/cli/query_experiments.py +0 -164
  149. synth_ai/tui/cli/query_experiments_v3.py +0 -164
  150. synth_ai/tui/dashboard.py +0 -340
  151. synth_ai-0.2.4.dev7.dist-info/METADATA +0 -193
  152. {synth_ai-0.2.4.dev7.dist-info → synth_ai-0.2.4.dev9.dist-info}/WHEEL +0 -0
  153. {synth_ai-0.2.4.dev7.dist-info → synth_ai-0.2.4.dev9.dist-info}/licenses/LICENSE +0 -0
  154. {synth_ai-0.2.4.dev7.dist-info → synth_ai-0.2.4.dev9.dist-info}/top_level.txt +0 -0
@@ -1,20 +1,32 @@
1
- synth_ai/__init__.py,sha256=3iDZAAWPI2zpj8g_QbTuQAr7wZ2tvZUB1H6yZDkC3FE,1354
1
+ synth_ai/__init__.py,sha256=u8sOAEzlDIPKIpXgDIItSUIphvhr4RsQ55Us_Sx5Ywk,1354
2
2
  synth_ai/__main__.py,sha256=Kh1xBKkTE5Vs2qNMtDuuOXerHUptMcOiF3YziOpC6DA,146
3
- synth_ai/cli/__init__.py,sha256=Zp845vrQ4PXxTSnToGTQXzYIX7IOKu2mj6qLmdW64yw,1461
4
- synth_ai/cli/balance.py,sha256=sE3-3IKpiUwEpVQeaZZwQyCgw8NQxOlme1GNO8NCWPo,8347
3
+ synth_ai/http.py,sha256=aKIGsGwMBi7S0Tg57Q1Nxdoxjh2sn9xzNziLYhfSA3c,4427
4
+ synth_ai/install_sqld.sh,sha256=AMBhlfq661PxeTTc6D4K_Nei_qwMvA84ei4NhQzmUUk,928
5
+ synth_ai/cli/__init__.py,sha256=ThBK5FykxAqX8Mz0E4gj94_PX9EwMEtXcmm-A8krv7E,1559
6
+ synth_ai/cli/balance.py,sha256=dlxGKCZ2kDeuHMZ5m8n5SHRWW-2CIWs3JcY5xpnWRVA,7798
5
7
  synth_ai/cli/calc.py,sha256=RJyQJ41e02xn-V0vRRCAVkL59UHDqyz8XpYGsenfdm4,2085
6
- synth_ai/cli/demo.py,sha256=Md37HDSPsaJcsIybw-vVA7H6YbnMBLcwK2twz5IM7pk,2474
8
+ synth_ai/cli/demo.py,sha256=GNVBxVtscxfAITFObyTOK8XPP2WGb-pv9LL4CiV_g6Q,4843
7
9
  synth_ai/cli/legacy_root_backup.py,sha256=KSMADyJ2g5OVpsq_CeBzqIeDC2Um-9GyINzsJH-75uw,15872
8
10
  synth_ai/cli/man.py,sha256=JQDon73ZkuKP9xr1_vRh5fjV9_b5xiUb7zNjny7ArB8,3765
9
11
  synth_ai/cli/recent.py,sha256=mHhM-QrR_MfjfKSzBvvPUEC-lkXTWUZrQwqYTmb2x0Y,4173
10
- synth_ai/cli/root.py,sha256=xaeadlg144DW7t4CHZUXbjE5dl1S5bWQ_nr2JMXWgcs,7366
12
+ synth_ai/cli/rl_demo.py,sha256=78GRff4kwi2RImwI5KjSMGXIfgoKR3Ckfc_EU0GZI8k,5349
13
+ synth_ai/cli/root.py,sha256=YAr7H2WYfnRt6_yxLix9O01-UnSy7OtYBVyNy4l5xIo,9614
11
14
  synth_ai/cli/status.py,sha256=M_bt7U58Ubi-q-ZlrIpgCASKq9_k6uMjpx926f6kLLA,4591
12
15
  synth_ai/cli/traces.py,sha256=_QBdCR92u0Gv51U4DH0Ws1d5yCrbJRpaYKe7pmcHrHs,6484
13
16
  synth_ai/cli/watch.py,sha256=HBKbAcpUkkPhGvsPRofckbu8oILiVqp35NXHkIEpTTc,17808
14
17
  synth_ai/compound/cais.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
- synth_ai/config/base_url.py,sha256=1RS7fXD9nb9Olo7hmXq7YW22jOS7UqVBDktxJDhjHi4,1319
18
+ synth_ai/config/base_url.py,sha256=Bk7Bd9jKJP-LF0SW--WE01JhMfvOB6NUkFMRgPMnJuQ,3101
16
19
  synth_ai/core/experiment.py,sha256=hLkPtzUFA7iY3-QpeJ5K8YjvQeyfqnjab5P2CFaojys,236
17
20
  synth_ai/core/system.py,sha256=s-Z7np2ISYmYc1r9YN-y2yb3cgRlOalrh0iaqnxeo84,206
21
+ synth_ai/demos/core/__init__.py,sha256=A2FjhY7KXGtyzdQXqeTPCkEhHfrH-eQg6bvP8HaYhZM,36
22
+ synth_ai/demos/core/cli.py,sha256=P5Dh25bz9GDrLsD5KDxcVQUTaqeak0b2tNGqkDBx-ME,26671
23
+ synth_ai/demos/demo_task_apps/__init__.py,sha256=8aUGEGpWUw11GRb3wQXRAmQ99yjAt5qd5FCTDJpXWjI,44
24
+ synth_ai/demos/demo_task_apps/core.py,sha256=3-C2dGdaqVqrVjnsxU2n6kGcuaprwuszBcTHePBypwo,13580
25
+ synth_ai/demos/demo_task_apps/math/__init__.py,sha256=WBzpZwSn7pRarBmhopQi34i9bEm05-71eM3siboOavY,43
26
+ synth_ai/demos/demo_task_apps/math/app.py,sha256=gNopoAhwM0vzdKuCa7AwQqSwiV2xagrjMxMH9YIniv4,1160
27
+ synth_ai/demos/demo_task_apps/math/config.toml,sha256=atyeLq8tJsm4BST2NwlKUMum5D_gxEAWBqYsQGLQimI,757
28
+ synth_ai/demos/demo_task_apps/math/deploy_modal.py,sha256=O4745sFuGEZTsygl-mz6ZOFJ7mog8CquXMgMyjFKr_c,2288
29
+ synth_ai/demos/demo_task_apps/math/deploy_task_app.sh,sha256=qVffbAmsiCAxzFDzcxNVF4f7yyLWnmqPc1cNydHT5BQ,791
18
30
  synth_ai/environments/__init__.py,sha256=BQW0Nc_BFQq_N-pcqTyJVjW56kSEXu7XZyaSer-U95Q,1032
19
31
  synth_ai/environments/environment/__init__.py,sha256=EBol9AKxPTIPXWcbH9Tja-l3yL-N2kB8e5atyf6F66c,31
20
32
  synth_ai/environments/environment/core.py,sha256=0jd0CZ88_s_qqA3d1lOgVsnv-ucw_1lJDAIUj1gTSt0,2201
@@ -30,22 +42,92 @@ synth_ai/environments/environment/rewards/__init__.py,sha256=5TpSHuCNeRy0W5N55IT
30
42
  synth_ai/environments/environment/rewards/core.py,sha256=Iu5MKInKW1LGZ1vb3oc_qmsL3ZQvXxZFMnFffJ_M9BI,883
31
43
  synth_ai/environments/environment/tools/__init__.py,sha256=ew_9CkNnt4t6nh_wjXa4BudWHhALVUbTycQsdUtAg-4,6900
32
44
  synth_ai/environments/examples/__init__.py,sha256=POgz9O4n1tvPAW1rYNUNeQGrMlWxoPDmyht85o5Po0s,38
45
+ synth_ai/environments/examples/bandit/__init__.py,sha256=gn_EP6oi33BQ3gIjf4aiyEXEklbPld7n7rpx0JoApT0,827
46
+ synth_ai/environments/examples/bandit/engine.py,sha256=j1uL1rqYqwCtmCJOgJCCddm9J_HPwwMuxuznck5V5_Y,11568
47
+ synth_ai/environments/examples/bandit/environment.py,sha256=15KufC8f8yAWnSXb7XL7zA01lVE8x-tzKmNK3oOIR8c,7419
48
+ synth_ai/environments/examples/bandit/taskset.py,sha256=L18RU9c5X_rXI-8scpJq1dEhQlrcTyCfr2pjlZWt9Kw,6775
33
49
  synth_ai/environments/examples/crafter_classic/__init__.py,sha256=8g6e991LpiUOkj3avOJo8qBbFiD7XSvrXb44ci98JRc,270
34
50
  synth_ai/environments/examples/crafter_classic/config_logging.py,sha256=Eqq35s0lPAmBiU0neZM6vmHPct15gp9TwS3vogrNziM,3794
35
51
  synth_ai/environments/examples/crafter_classic/debug_translation.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
36
52
  synth_ai/environments/examples/crafter_classic/engine.py,sha256=i13hDJe-6BXWFqXAsdjNCrfjU_HpwWLE5-4KNT-VSbs,25257
37
53
  synth_ai/environments/examples/crafter_classic/engine_deterministic_patch.py,sha256=IMmqt0S9wh0sdP42G_Q6W_2j22gKX4YQZVvuIqLzLWc,2802
38
54
  synth_ai/environments/examples/crafter_classic/engine_serialization_patch_v3.py,sha256=oC1y_CdnB_xit4FH72dMo8ljlZW_Mpa3cMpbDVCtqyU,11127
39
- synth_ai/environments/examples/crafter_classic/environment.py,sha256=x71ZPgX7Ij3NKaLO03ZzK0ZX4szpUg26tjztJbEvt_M,17219
55
+ synth_ai/environments/examples/crafter_classic/environment.py,sha256=dFJ4yup3TVWENHNi4_5pz3i-0Etmop5sdFMIECBhbKI,18950
40
56
  synth_ai/environments/examples/crafter_classic/taskset.py,sha256=9uZpQOllUqMupIBwlz2Jv38hBYqY09czi1LOonCTk5c,9843
41
57
  synth_ai/environments/examples/crafter_classic/trace_hooks_v3.py,sha256=lka-3tNuYsvYQ6acEvJjvBPkylbqgCzuCd2QMOjNCRs,7194
42
58
  synth_ai/environments/examples/crafter_classic/world_config_patch_simple.py,sha256=wHT2pyOJ55Jlh9iq-UND4cd-GQdyKxQmo9ncCuQ_Jiw,10166
59
+ synth_ai/environments/examples/crafter_classic/agent_demos/analyze_semantic_words_markdown.py,sha256=yLW0lX3vqkhN3CsdpHMKL3rIxuglbGx2Q3_xkqy_NBQ,9151
60
+ synth_ai/environments/examples/crafter_classic/agent_demos/crafter_comprehensive_evaluation.py,sha256=bAOMzobuAtpNrejkaNBZ8SYKxdkPHQPaaTx7KTqTC0E,1657
61
+ synth_ai/environments/examples/crafter_classic/agent_demos/crafter_evaluation_browser.py,sha256=UO5pP5xK91l_WuP9LfSsVK5wi_hJ4n-ekRvuMGv4MVw,4822
62
+ synth_ai/environments/examples/crafter_classic/agent_demos/crafter_evaluation_config.toml,sha256=U99N2PYZCmKT3-A2YmApRmgxJ4pjEhN8uyZ0ySm4Wbo,460
63
+ synth_ai/environments/examples/crafter_classic/agent_demos/crafter_evaluation_framework.py,sha256=aE0JQIgCEl4-ZZqIaPwTCD-byY25Iaigf8wR0DCU-hE,47695
64
+ synth_ai/environments/examples/crafter_classic/agent_demos/crafter_quick_evaluation.py,sha256=oXB463hrxRDD-L83ncIdzVQRHk3rD7Q9CIPEe6U6qic,1460
65
+ synth_ai/environments/examples/crafter_classic/agent_demos/crafter_react_agent.py,sha256=swHkJdDh_PnXGoXn7OmgK7v3h0Wlx-9xFeuxJzhCGuw,34455
66
+ synth_ai/environments/examples/crafter_classic/agent_demos/crafter_trace_evaluation.py,sha256=TIB4SsjJTtwvZj7N1YUYe11Vctznag00u0PKqGC073M,46735
67
+ synth_ai/environments/examples/crafter_classic/agent_demos/example_v3_usage.py,sha256=V0S6U_D9b-VVYkrCblylv3usA4ouV9YL3blki6vc1fs,6916
68
+ synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/crafter_synth_config.toml,sha256=xUAL54kT5ThnZPmMQI0eGWXoVe8Gn1_imnB0-DMOlo4,1104
69
+ synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/filter_config_modal.toml,sha256=Hws5eQUBSG00w825BgBgQDrUeuOq2KXwUsnDrkOC-2g,748
70
+ synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/filter_traces_sft_turso.py,sha256=TECpDH6a33Wk6ThsBpWSWsnl952OSxUFZmGvrU_rprg,27192
71
+ synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/kick_off_ft_modal.py,sha256=6NXSzpAXsKw3-NdKvZXCtXFA-9tZFHOlN2QVksygHFY,15284
72
+ synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/analyze_action_results.py,sha256=6n2xKD8VBFn5EKrtFNYQgR9nSxfK6jcpavrGnUgi4Eo,1550
73
+ synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/analyze_agent_actions.py,sha256=eUoPNPE2hMUhDTOkYJyLWeJCOrpQfEc5GtcgedUczKk,6302
74
+ synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/analyze_latest_run.py,sha256=tyvqPirMsLTHS0PwONv5Xaogc8hrQb7uSyjcTfk5hZk,8922
75
+ synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/analyze_lm_traces.py,sha256=uZllwyxURfZhwv9J27hRYwp2fWEH7VISjP4KErCHHk4,6261
76
+ synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/analyze_no_rewards.py,sha256=TOaviC_zxAHFVOd22KR6uXJDVdehGQcku7jba3c7q8I,8175
77
+ synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/analyze_trace_issue.py,sha256=saeqCuAxMu4dcJwBQYWJrSQc3txbZ2AzQ4VZSxgtjLw,7215
78
+ synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/check_db_schema.py,sha256=Ytab8HoDGFLaVhAmsFAyw_9bTgEqi6s9RgAU-xAlvdc,1698
79
+ synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/check_latest_results.py,sha256=uuqTStue3won-IrHR8z0ryUaPXrf4kBAm-FLuFdTyj8,2175
80
+ synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/debug_agent_responses.py,sha256=ycKHiX4FJiu0l1Sc__I4dQBMkSPLwdiguGN9m2MFJfw,3214
81
+ synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/quick_trace_check.py,sha256=VtMhfmvdJUx0xyDKTVTz-S7CwphaBC_z-UjTv2VeTn8,2652
82
+ synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/compare_experiments.py,sha256=6bS9hJdPiGkpx-JM6aS6YcjUlkliCQdDLJZ8RwJqzL4,11446
83
+ synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/filter_traces_sft_turso.py,sha256=gc-KO7FgiY1bNeZfM63cfdJJKSiosUQ0GeZlkPbuyqU,21015
84
+ synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/kick_off_ft_oai.py,sha256=E4Obn9k7JiXkqyPHvzmnkmSUqNWBvcXOhYnR5JAz72k,13521
85
+ synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/multi_model_config.toml,sha256=_7KIJo1TPwN0wia_TfJYX1azav56YEZxVyTp2vC3Dt4,1063
86
+ synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/run_rollouts_for_models_and_compare_v3.py,sha256=7Lq92rpMLkfYqlg6M14k6YMCJ-fw9LrCD4SNo8fVl5E,38439
87
+ synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/analyze_enhanced_hooks.py,sha256=vbyJZ-YonMXLrSFegQ1JZIYRPza6BLvCqQmFzAQuu64,12387
88
+ synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/analyze_hook_events.py,sha256=Jdmm3N6nPBjbwn0PkHb-YKY32_sS6YIKC6qz2WgCicw,3401
89
+ synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/analyze_hook_results.py,sha256=UCV_XZt2xmUdLM0x5pg_fw2lZGcwep86mRbMwJeD31o,8816
90
+ synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/check_hook_storage.py,sha256=cmfYUGuM6ArYVxCR1himSJ7yHeomUNXDMgsY6sJ0x5M,2982
91
+ synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/check_seeds.py,sha256=AFCeOvHVqCFT0dpICRDr1DIZrSOYlH-Ix8xEbd7Nzic,3382
92
+ synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/compare_seed_performance.py,sha256=464ZK4uGqpl8cGGEM48IoMTmo4KO4DxGzxHPUPH58xk,8091
93
+ synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/custom_eval_pipelines.py,sha256=APgU6iSmXkEYOq0EeT35mL1d1RUZp1flzbG9MdeB9rw,15991
94
+ synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/plot_hook_frequency.py,sha256=4MMeye3tzB9-cFjJw2ToxvJ4AMXj4yfWZjYGCIqgzig,7483
95
+ synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/seed_analysis_summary.py,sha256=XmwDeBt_kVcaQ9ydnS67b_tc7l_9rXqY0cUH7pGUTKw,3024
96
+ synth_ai/environments/examples/crafter_classic/agent_demos/old/compare_traces.py,sha256=MKGWuhcF-PbxCCw9EUVVADnz9-5uNAYk-Eas_rK6WdY,11348
97
+ synth_ai/environments/examples/crafter_classic/agent_demos/old/crafter_comprehensive_evaluation.py,sha256=ETfejFeIX-Bx0g-V3GAoikJMiUr9XKS1CAzpsyA0Bgs,1656
98
+ synth_ai/environments/examples/crafter_classic/agent_demos/old/crafter_env_serialization.py,sha256=XsdyiAeH3UHUZPAki1tt1LQHXZN_8IR1t_np9APqLPg,17609
99
+ synth_ai/environments/examples/crafter_classic/agent_demos/old/crafter_evaluation_browser.py,sha256=jftMYMvnZ0fbi8C5Thy7dT5SgsM6jqnxVzG_cmqIL5E,4817
100
+ synth_ai/environments/examples/crafter_classic/agent_demos/old/crafter_quick_evaluation.py,sha256=rVfNtcgvJwPmYFFIfHhptsSbgKYlcTKhdFkvNkJoxyQ,1459
101
+ synth_ai/environments/examples/crafter_classic/agent_demos/old/crafter_trace_evaluation.py,sha256=ig8_pJcDUeIqMKTurnv5-4KfhSPewWxJ1tF8J9nhyEo,46735
102
+ synth_ai/environments/examples/crafter_classic/agent_demos/old/debug_player_loss.py,sha256=cbSJWfVMjn6I-6Z7cM3-dF7pSxa2LU-MRdhSrEHtMDo,4045
103
+ synth_ai/environments/examples/crafter_classic/agent_demos/old/diagnose_service.py,sha256=o-Pl4wgc2t49oJVILTYqTxmYDW9_HPyv0EOLHbCT0F0,9037
104
+ synth_ai/environments/examples/crafter_classic/agent_demos/old/diagnose_slowness.py,sha256=VhxJJwvQH3qO0HJa01G-C80HGLS7vWDIP2AsBF7yoYk,11671
105
+ synth_ai/environments/examples/crafter_classic/agent_demos/old/eval_by_difficulty.py,sha256=HaErCiVb26k5YceZw8cTg_Il5NFMtU7DVKdMsipX8s4,5245
106
+ synth_ai/environments/examples/crafter_classic/agent_demos/old/eval_example.py,sha256=tD50s3OgzhimnpHXS6x5HvHkIj9uHXWhxbTEmG-pH3k,3523
107
+ synth_ai/environments/examples/crafter_classic/agent_demos/old/explore_saved_states.py,sha256=JxZxz_fE3YzfRJ23yWjqIsVfd4cLXZ1caY6p9i4QS2w,5174
108
+ synth_ai/environments/examples/crafter_classic/agent_demos/old/filter_traces_sft.py,sha256=sVnjLoKV3VBgSu9jOMBm8jTEYFUaaBxiKDkCqf01YTY,1005
109
+ synth_ai/environments/examples/crafter_classic/agent_demos/old/filter_traces_sft_OLD.py,sha256=DFlScN__3GgNtzaeeXHz8eFzwnJmdQYemEFNoE4-EPI,40754
110
+ synth_ai/environments/examples/crafter_classic/agent_demos/old/generate_ft_data_gemini.py,sha256=hMv8MSdqwSmbH_sdLLQukGOJ0YHtbJ43xtSD7theVs8,27809
111
+ synth_ai/environments/examples/crafter_classic/agent_demos/old/generate_ft_data_modal.py,sha256=mhNrVw0gmez4-DSStpb8GVjyE1aD8SNX1gndR9lUC60,14171
112
+ synth_ai/environments/examples/crafter_classic/agent_demos/old/generate_ft_metadata.py,sha256=UTobyTuzoI0XupmxOzfDXuqs_skz7g85jDeNKl8EumM,8162
113
+ synth_ai/environments/examples/crafter_classic/agent_demos/old/kick_off_ft_gemini.py,sha256=foBEAnBkWIKgXnj81MBi7bIXGDFWnc8R_bJcKigvnsE,5506
114
+ synth_ai/environments/examples/crafter_classic/agent_demos/old/kick_off_ft_modal.py,sha256=zZsTQE_Eyzqf2GVGouczJP0y-xs6YH_J-7eDvfpkT7k,10320
115
+ synth_ai/environments/examples/crafter_classic/agent_demos/old/prepare_vertex_ft.py,sha256=qctIj6ISDykFgUSEKVVaBUFfmq23N9tYCSrga4VMpC4,10715
116
+ synth_ai/environments/examples/crafter_classic/agent_demos/old/profile_env_slowness.py,sha256=x4ktCp0A-kisvy3RvMQSoK1yadggJOqjEMMhvIDxwHI,18433
117
+ synth_ai/environments/examples/crafter_classic/agent_demos/old/replicate_issue.py,sha256=OuPHpx2w16tBLxV1BTsyk4YVzA9FXF5x0sFgHHo92KE,6251
118
+ synth_ai/environments/examples/crafter_classic/agent_demos/old/run_and_eval.py,sha256=rKti-G8rZWUprqaKAj8bt6xKm1Es46dv3L9HW1Kn8EA,3294
119
+ synth_ai/environments/examples/crafter_classic/agent_demos/old/run_comparison.py,sha256=j-lWm8fyCcx1OgtBY7EGjIHpVuTZVHCoMG53HJume0I,4541
120
+ synth_ai/environments/examples/crafter_classic/agent_demos/old/run_qwen_rollouts.py,sha256=wSHjy0ng7CkIYWkUGXi3KUL_DwdH6cHiFiDSQ11xkvY,24291
121
+ synth_ai/environments/examples/crafter_classic/agent_demos/old/trace_eval_OLD.py,sha256=U0GdxlPVg2ljRHY_UVHBGk2cnQF3PpZIjKSL39jeI0o,7127
122
+ synth_ai/environments/examples/crafter_classic/agent_demos/old/validate_openai_format.py,sha256=yzBmVi4FXDjRK8R00rTyKCXkyzBk5gZca_Jw1ie9yZg,7466
43
123
  synth_ai/environments/examples/crafter_classic/engine_helpers/action_map.py,sha256=hSjplDgu-m7bbpd1uuZq7n5mejBp6vylEru6xPHooJI,230
44
124
  synth_ai/environments/examples/crafter_classic/engine_helpers/serialization.py,sha256=7M8_FJsCAEzBTbdur0LRGiBAl2V4J3kFLORn6bB2t2s,2243
45
125
  synth_ai/environments/examples/crafter_custom/__init__.py,sha256=139ewayoaO3Oxr-vG-1hxI89urYr1Dsy35JEeJEdvj0,190
46
126
  synth_ai/environments/examples/crafter_custom/dataset_builder.py,sha256=9rG98Z7JoStsJdNqbb5yxEu5__41h-4mg8b1VUGATvk,12956
47
127
  synth_ai/environments/examples/crafter_custom/environment.py,sha256=O5rOusbe1Ce4VMCNBNWhVzN0kMJnAuokHLRVyzgeeGM,14784
48
128
  synth_ai/environments/examples/crafter_custom/run_dataset.py,sha256=SSPQ4puh55grB9xjqP-yt3LZF7ihW_sorTN3txgolpo,9959
129
+ synth_ai/environments/examples/crafter_custom/agent_demos/__init__.py,sha256=IiyZdN_DdRxej8kqTeZ3ko5HbqjUY56BlnkatI5KZe4,59
130
+ synth_ai/environments/examples/crafter_custom/agent_demos/trace_eval.py,sha256=n9ssT5kHAYrZqOSgpPmfq_YkPanF8PkbRzm4It_x-LI,7127
49
131
  synth_ai/environments/examples/crafter_custom/crafter/__init__.py,sha256=IwsX9FySJrnMXEVsHpEb-SxcYbohTMG5IOVUIsUUjSI,235
50
132
  synth_ai/environments/examples/crafter_custom/crafter/config.py,sha256=maislluS06yuiry18rOedmiFpczw8EPFiC-45ZULiuI,5542
51
133
  synth_ai/environments/examples/crafter_custom/crafter/constants.py,sha256=ZAHy89ZCWyLGzP1sQqlHHqGIMuIHqgsYWy7usD3ODB8,218
@@ -54,23 +136,37 @@ synth_ai/environments/examples/crafter_custom/crafter/env.py,sha256=y14Y7i53vjCC
54
136
  synth_ai/environments/examples/crafter_custom/crafter/objects.py,sha256=8CMOwh5n2jfit-aqs-CJbf-lYMD71NOtc2mupVoz-tI,13009
55
137
  synth_ai/environments/examples/crafter_custom/crafter/recorder.py,sha256=NcqecXkU8S5pJ4vE89KcZPIO8SknkKuV1AookEvQ2Gw,5898
56
138
  synth_ai/environments/examples/crafter_custom/crafter/worldgen.py,sha256=m1lV-lTYVNkC5deVQrr3eb8iYr4LJVdRfrVH2jYe9F8,4115
139
+ synth_ai/environments/examples/crafter_custom/old/analyze_diamond_issue.py,sha256=yYgT1uUc4XQCGttnpCa4BOfFTGA3unFRAWal7AAgRy4,6288
140
+ synth_ai/environments/examples/crafter_custom/old/analyze_diamond_spawning.py,sha256=Xf0BKbxGiVWfObDsq6L51iN8tneDZeqXXeInLVFBGE8,7128
141
+ synth_ai/environments/examples/crafter_custom/old/compare_worlds.py,sha256=7D1GOrE0vrt8EuyU03hdosXNuzZVKmmyRQq9UFp-bOs,2327
142
+ synth_ai/environments/examples/crafter_custom/old/dataset_stats.py,sha256=c4Y-074cmMP98ybr_Aeme5yu-BybVMqtQmmaQF2oqvg,3584
143
+ synth_ai/environments/examples/crafter_custom/old/diamond_spawning_summary.py,sha256=YoyK_rhwGd7ONIQb8iot_Tz5KFsyGwtLMt3mxkS74dY,4558
144
+ synth_ai/environments/examples/crafter_custom/old/example_dataset_usage.py,sha256=p82QGjKiY5_wFscXybcc8prlWdHdQajJE2Ni65CSTxY,1296
57
145
  synth_ai/environments/examples/enron/engine.py,sha256=kmyE3See-NPxs3XKz7HV7XL9IoH4YTxFvPrAz9MYY1M,11702
58
146
  synth_ai/environments/examples/enron/environment.py,sha256=s3g8zAn6qS5d_shcz8pl8J903eWa0KFw04j3Wury4NE,5986
59
147
  synth_ai/environments/examples/enron/taskset.py,sha256=KQBQMclCh24jSCBLbxsWDn7BveT1RlnEUDErm5AW57I,3171
60
148
  synth_ai/environments/examples/enron/art_helpers/email_search_tools.py,sha256=bDiuxp8W5ZZEtM1vn1n0B0qxqBEqCwMwYDGHy93rBiQ,5545
61
149
  synth_ai/environments/examples/enron/art_helpers/local_email_db.py,sha256=h3Q44pKs5pnz_on66bIFVhL4Ma5chdKzCDST_oYSQWA,9985
62
150
  synth_ai/environments/examples/enron/art_helpers/types_enron.py,sha256=ZMpkH5bLmaCcm3OL_6FxzQxrgY9QI82LhC-W-a6T25o,734
151
+ synth_ai/environments/examples/enron/units/keyword_stats.py,sha256=MwB8toyTpwxu86AODyFdalUbsxFzXoonpnnu8jt-oSM,3084
63
152
  synth_ai/environments/examples/minigrid/__init__.py,sha256=e7cd6mAcSiPbxtpVyDAGW9CE_sILNNF-BW8c2sJcSUc,1328
64
153
  synth_ai/environments/examples/minigrid/engine.py,sha256=-PokRGnbzQarpF2mPfVW49auU7X_MMOyV1cGNmJA_Ng,22061
65
154
  synth_ai/environments/examples/minigrid/environment.py,sha256=sRmxb4Ntm8B6ngzyQZTmQ9PR5KvXI4TzbKEBWrDIi5k,10490
66
155
  synth_ai/environments/examples/minigrid/environment_mapping.py,sha256=N0JJ4Ako-sX-89nE9vCbPQIzVuhGpyy309Y_y7osNiA,7019
67
156
  synth_ai/environments/examples/minigrid/puzzle_loader.py,sha256=fjLqZ_WW2Oc5F1zQM6SRS98pT2Tf04O3tkjFzI-svmc,14656
68
157
  synth_ai/environments/examples/minigrid/taskset.py,sha256=k0XiC9bBV5te3NJpiMXUShBJ200X40zFDIQxv9EsOio,21305
158
+ synth_ai/environments/examples/minigrid/agent_demos/minigrid_evaluation_framework.py,sha256=r1r0K0uyZqNaByxB3osb9HhSYJ7vqMm6pooqITaMgZw,46597
159
+ synth_ai/environments/examples/minigrid/agent_demos/minigrid_quick_evaluation.py,sha256=GmPMhhmwbTeER7ywLY9IUOFmixoJdtxgaqm1QLblXx0,1478
160
+ synth_ai/environments/examples/minigrid/agent_demos/minigrid_react_agent.py,sha256=-W6-pUmpLwhxCrS2cA2g_UEWjrBultsBC5YZLUafkr0,20021
161
+ synth_ai/environments/examples/minigrid/agent_demos/minigrid_trace_evaluation.py,sha256=Y6NH7u6GWE25xfX6fNSUnwT1rZL_5EnojMw_xk74AS0,6989
69
162
  synth_ai/environments/examples/nethack/__init__.py,sha256=viygo8pTUB891fGm_tb38s5thNcr17bLFffQdDOfiQ0,266
70
163
  synth_ai/environments/examples/nethack/achievements.py,sha256=YKSYGPXSTva0hwI5Vom0qVEB5DX9rfSbVFUOSnSTTYA,12443
71
164
  synth_ai/environments/examples/nethack/engine.py,sha256=7DPUA6w06vXrBpo_uqSZbm5IPxligXg0w_KbTDHy3y8,29957
72
165
  synth_ai/environments/examples/nethack/environment.py,sha256=FBgjN2MxEoWrsKGBaNyx4NnU4v2_9YBhiffbY43LD1c,10042
73
166
  synth_ai/environments/examples/nethack/taskset.py,sha256=VuRW1hGqtGycBYA6IDPLmr8Pevqg_-Ly-IM4b6vsFYk,11339
167
+ synth_ai/environments/examples/nethack/agent_demos/nethack_evaluation_framework.py,sha256=YDovgJWS132dTOwQzfvJbQBYwJfd3a3nq4Pt02tatIE,38865
168
+ synth_ai/environments/examples/nethack/agent_demos/nethack_quick_evaluation.py,sha256=NY2pS27eto66YiVxXlVZMIjHelXtA5KD5LHyhcPVg2o,1992
169
+ synth_ai/environments/examples/nethack/agent_demos/nethack_react_agent.py,sha256=33z5BkGJwW282ti5yVqYA9PyFwVsQ_hm8fG-91Z93s4,34363
74
170
  synth_ai/environments/examples/nethack/helpers/__init__.py,sha256=dvKHaTSS_zn2zLM09TvJsPotiwXgfYr_TiqLw1vAmAg,958
75
171
  synth_ai/environments/examples/nethack/helpers/action_mapping.py,sha256=IzBWMxUHhYWf4a6sfH5gmSXb9OGCEFjKNTmWGcm0le0,9133
76
172
  synth_ai/environments/examples/nethack/helpers/nle_wrapper.py,sha256=9EYtTXK8ITe9p871nuZ2P5Ua29cFChyPzO7g5R6_SZ8,15142
@@ -84,6 +180,7 @@ synth_ai/environments/examples/red/config_logging.py,sha256=jVjehrms140gnJ1aAaXK
84
180
  synth_ai/environments/examples/red/engine.py,sha256=R8uVkQyd9VQe7LdIBzQjcRPRAhHsP3BW3iKwJfci73E,23836
85
181
  synth_ai/environments/examples/red/environment.py,sha256=lhEYlWjmSGKZFfdD4_g0oA_E8VAFc_6ppyPXnL-JEao,9364
86
182
  synth_ai/environments/examples/red/taskset.py,sha256=B7TjNjBscUDeWEXmNjJxvoNSGbwNzRqaxS0XUiOYgXg,2827
183
+ synth_ai/environments/examples/red/agent_demos/__init__.py,sha256=sz-ozQldJ4M1Fn0Qrxct63Ru3DyRNj5v3_n9Mtk-Awk,42
87
184
  synth_ai/environments/examples/red/engine_helpers/__init__.py,sha256=YyNOk0TMWA_CI_EakcTMjbLJpkFKKRhJfVe792w-CXE,33
88
185
  synth_ai/environments/examples/red/engine_helpers/memory_map.py,sha256=jOsBYaYYxUy2tz3L2pCoj7Y_3UdrViw6vNYdgbEZFDk,1193
89
186
  synth_ai/environments/examples/red/engine_helpers/reward_components.py,sha256=zueBbdnERtim8LjgsGsSglowgqCx66F01NegHYqAscQ,9356
@@ -101,12 +198,14 @@ synth_ai/environments/examples/red/engine_helpers/reward_library/pallet_town_rew
101
198
  synth_ai/environments/examples/red/engine_helpers/reward_library/pokemon_rewards.py,sha256=0WtJcdWtcjHD7Zk678KGZExZSlhd6nSmJ1JFzEYRe4o,10861
102
199
  synth_ai/environments/examples/red/engine_helpers/reward_library/social_rewards.py,sha256=MjocMamUzUue6EgwGl1dd9nIUqA67mm1LgNN4L27p_c,5676
103
200
  synth_ai/environments/examples/red/engine_helpers/reward_library/story_rewards.py,sha256=WOq39UtC7e0cTBQj88TIHwI6KatmR6UxhOKuJSS4SXI,8465
201
+ synth_ai/environments/examples/red/units/__init__.py,sha256=W-M8LkGSsM_OvQicjUOi5358XVY6E5CvuVhZVQ4JiTQ,41
104
202
  synth_ai/environments/examples/sokoban/__init__.py,sha256=Y5MpHrvlI9s5gEwlAJ0FM08bZpyC4QdnGWaTCyPQas8,35
105
203
  synth_ai/environments/examples/sokoban/engine.py,sha256=e3jFsbrm3nr1u90aa3hXiCFoMs9dcyAq4xjRZWv2cA4,26354
106
204
  synth_ai/environments/examples/sokoban/environment.py,sha256=Owy7ppk8X3FJoX2rIB4QVi9JmmkhBo9PpftzjJPInuM,9802
107
205
  synth_ai/environments/examples/sokoban/generate_verified_puzzles.py,sha256=Wu1UMtUk_qk14LHHKSSkk108yuM9TFyhG1F9Dpi_Kk4,15511
108
206
  synth_ai/environments/examples/sokoban/puzzle_loader.py,sha256=3FTMk_u6G9Ex1BBFsCxHDO5nTdENlSxM6BSIafXJ0_E,11498
109
207
  synth_ai/environments/examples/sokoban/taskset.py,sha256=suFDtkh20_Fq-A-Oc3CtaLXhsOa2WQVZNPWafrdhikY,15506
208
+ synth_ai/environments/examples/sokoban/agent_demos/sokoban_full_eval.py,sha256=q9S0ASGMt5II1yIuDzSkernn1Q1srErHF9QGT6Wm8yg,39845
110
209
  synth_ai/environments/examples/sokoban/engine_helpers/__init__.py,sha256=ensyOUm01rMpYZPIoV012_v6vxnv95mwwi63hLJvwIw,29
111
210
  synth_ai/environments/examples/sokoban/engine_helpers/room_utils.py,sha256=1qs8UmlqD-VKPXNvncqMG0X3ICF_LXif4BP5tUkJ-34,21758
112
211
  synth_ai/environments/examples/sokoban/engine_helpers/vendored/__init__.py,sha256=aojjVMDT0WX5hhjt2sxTwDe4_BoS7ZogcFTz1andAq0,405
@@ -119,6 +218,7 @@ synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/sokoban_env_
119
218
  synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/sokoban_env_pull.py,sha256=ZCEr6LoSxKvVQzbRGwRBN62RAQPP5jiLoNqI8c4Ij2Q,3808
120
219
  synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/sokoban_env_two_player.py,sha256=99yZCBsbx3i5Wiuf786TiHQjq2tMEY0OKsOEa-obhXY,3763
121
220
  synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/sokoban_env_variations.py,sha256=VKMXRVmVdIxfa0q_T5Dfll5HHadc5QHpktRQztEIxGs,15455
221
+ synth_ai/environments/examples/sokoban/units/astar_common.py,sha256=4vG-_JrGI-yX8HY22CTY9P3DXPqCV_AHMPwH-flr0Z4,3006
122
222
  synth_ai/environments/examples/tictactoe/__init__.py,sha256=XGoOP8GEGXjG-TI_E_-3b1jOhpGNtl_LmR9G3K59Gig,31
123
223
  synth_ai/environments/examples/tictactoe/engine.py,sha256=B2OYQ3TVi_c75BRy_zHIEWjcTSaO4vnZZQJTo6wFe7k,12430
124
224
  synth_ai/environments/examples/tictactoe/environment.py,sha256=p_ZN5-AyYKUnIJ5Df46fXMlJZ6yRerkvXC9GA1W0Ht8,9336
@@ -135,7 +235,7 @@ synth_ai/environments/examples/wordle/helpers/generate_instances_wordfreq.py,sha
135
235
  synth_ai/environments/reproducibility/core.py,sha256=jDhG1EARROJH7-Y7eKuMYdjbi4-t1QUbxddHbbG1Dxc,1499
136
236
  synth_ai/environments/reproducibility/helpers.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
137
237
  synth_ai/environments/reproducibility/tree.py,sha256=LMVTrKpPkBDjkZOfA5ptl3_n8JPc9GCnP49itPKL8zc,13703
138
- synth_ai/environments/service/app.py,sha256=wS3xlqxEQmQ0uqMDTHvpXWE8FSIUPryixAIA_sX8iwI,2981
238
+ synth_ai/environments/service/app.py,sha256=qVKqZcR9TE-3HXaQgMnYVVZKMmfP2iU5EmCkQZ32BLs,3266
139
239
  synth_ai/environments/service/core_routes.py,sha256=D3KMH6eIWxbcW0F8jIgdfYe7PF8Nb7kmKz1a9z0GwR8,38412
140
240
  synth_ai/environments/service/external_registry.py,sha256=3PiWCsZr0PburC6K-IBjO9uHGVa-qnT0JHTFyyN4sZE,1765
141
241
  synth_ai/environments/service/registry.py,sha256=R4bvjdEW1GtYJdZL4Vl9ogNCQc0iGCxmjs-NuzCo5f4,405
@@ -151,9 +251,22 @@ synth_ai/environments/v0_observability/history.py,sha256=gW0SozHmxeL6PFNaTAQ7em8
151
251
  synth_ai/environments/v0_observability/log.py,sha256=B4LvbPh0a1_E5dki2PlKAVHESB8oCQz0CmDBvC0GwdQ,38
152
252
  synth_ai/evals/base.py,sha256=EFupWBUxKIwvTvr4H29jX-LHWwAyIvNhzexHmG9w6QU,355
153
253
  synth_ai/experimental/synth_oss.py,sha256=g9DQw3LqaDiVEcr-B49yg21M5Mus1HHId5-wMgJoK9Y,15636
254
+ synth_ai/inference/__init__.py,sha256=FMLFiLMfhZJlQERJCj641TtPqpiiJpaJQxxPFaFZ5jA,76
255
+ synth_ai/inference/client.py,sha256=zg2OXGxkURZihLONcm4jGTndlde7YDrORlE9uwGLFm8,711
256
+ synth_ai/jobs/client.py,sha256=wSSqzvIY_vmwG-CHeQYGoSsb-uOr0hDmE8ylNqNoQQQ,9498
257
+ synth_ai/learning/__init__.py,sha256=gBtKs-FtQYsqcYtpGvHQA3Ro-ezu1ILjoQAMTCJWFq0,743
258
+ synth_ai/learning/client.py,sha256=BtoSHkbUhBs6ALj4ylCNmJ7fyXMYMhrKzbeXhAKtkWY,6626
259
+ synth_ai/learning/config.py,sha256=-W1vsN08sKydgo3IEaaGVa45zrnMipm-rPRPE3WNhP8,1243
260
+ synth_ai/learning/constants.py,sha256=TnIEZrMpbPNpu7Zyk3bmyX3K2XGwWTwRuAUukxBYg64,538
154
261
  synth_ai/learning/core.py,sha256=bA_Ng3YKeCJb1scnrSapp48HildL7Pd2fHkZ4zxurZU,440
155
262
  synth_ai/learning/filtering.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
263
+ synth_ai/learning/ft_client.py,sha256=3kSiDHjea1wA8tZf2g7JOav-VtKpeYYTHh7OEBapfH8,2241
156
264
  synth_ai/learning/gateway.py,sha256=8plVu9V_0PTt1ZI6awuh9wSFT4BqS-mLshaN77wGyDk,31
265
+ synth_ai/learning/health.py,sha256=YxvY0YY3nF_a_HO3IdL9gUj7dXcuVdGpnUEP0dUGMMo,1571
266
+ synth_ai/learning/jobs.py,sha256=5ShyHNJ1btpC7NY5coURTPl8X4V9fshTq2O-3figJEo,9692
267
+ synth_ai/learning/rl_client.py,sha256=feCYyFxC0iAXICSknG_W2fNrxr7CzUy4gLM3gfraszQ,11340
268
+ synth_ai/learning/sse.py,sha256=S0IxAB0SOSSliua-e8m2wilC84jEaNXM6TP4LElUWNU,1891
269
+ synth_ai/learning/validators.py,sha256=9p7Sqrh-NeFzyqNzsPZBSPQgOPsSlNAqqydtnVdNiWI,1823
157
270
  synth_ai/learning/offline/dpo.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
158
271
  synth_ai/learning/offline/providers.py,sha256=nrPYoOvns5ekC_o9FecWpV7MOtHR1sH-ldRpmrfMeGo,33
159
272
  synth_ai/learning/offline/sft.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -185,8 +298,9 @@ synth_ai/lm/core/__init__.py,sha256=pFiA6qPyQu6e-KrZruL9A-soRlhSU4Vd_TmdqMzWaIU,
185
298
  synth_ai/lm/core/all.py,sha256=sRSuXgdXMrG46DbL7LeBA2g9PcnNgMKV0RhLkWecR1o,1765
186
299
  synth_ai/lm/core/exceptions.py,sha256=YZ3dgwb--ZyLoa4gI9uDGkuWoGfh-TS4yFanSwQd-CM,98
187
300
  synth_ai/lm/core/main.py,sha256=V1b-v8aySJwcilS_uziHyIVF-RUpOj8QK2_F828pHJ8,12801
188
- synth_ai/lm/core/main_v3.py,sha256=ms0hWJFAUU2GWpufHSkpV1egHj8Os1Oy5x2l9apqUn4,23895
189
- synth_ai/lm/core/vendor_clients.py,sha256=Gij5uahIJfR2uJYE-QrcOFH5P0iW4rh60OzlbCqIrGU,6595
301
+ synth_ai/lm/core/main_v3.py,sha256=TJQHZ0kg7B1jM6deZSF21gVM-u-X-zkr-Zs4GiGfxTw,24602
302
+ synth_ai/lm/core/synth_models.py,sha256=XEogTWiXbpyeznb0Px_WAkRUmKlT2WIS4nFrtnEm6-c,1646
303
+ synth_ai/lm/core/vendor_clients.py,sha256=yDJ4KxIP4sdxIaUkXJqF4G4_VS-47YA_OBQscj9v0B0,6890
190
304
  synth_ai/lm/cost/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
191
305
  synth_ai/lm/cost/monitor.py,sha256=DkeLUlrb7rGx3nZ04aADU9HXXu5mZTf_DBwT0xhzIv4,7
192
306
  synth_ai/lm/cost/statefulness.py,sha256=SO-H9_R1_KL110z_ceRIJzH6n8D9gpx-R1-_mtO7pNI,37
@@ -202,26 +316,35 @@ synth_ai/lm/tools/__init__.py,sha256=3JM5vqZqKloaeHaxuO49C8A_0qljys3pQ1yt70WKhho
202
316
  synth_ai/lm/tools/base.py,sha256=sDiqopouPml_tEFKQXMZFl0M45JO-yJBWWjyaeAyV1Q,5722
203
317
  synth_ai/lm/vendors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
204
318
  synth_ai/lm/vendors/base.py,sha256=K9SmghoH_WoMtmx8Q1qrcKcj1VriWHrMm607tIUgNOI,2430
205
- synth_ai/lm/vendors/openai_standard.py,sha256=eJOZhZUi44R4edmUkmsPSy3dnKCNyQPX0mxCc6gQGkQ,32221
319
+ synth_ai/lm/vendors/openai_standard.py,sha256=ExZaaGc-No-xZ2kpVoyXEzh57tanDZbFFVJVpLLoG0Y,34039
206
320
  synth_ai/lm/vendors/openai_standard_responses.py,sha256=iTmnXzLgeWQ_XfB8CtNMDdPRSPI97jccw4k5anhKLcg,10165
207
321
  synth_ai/lm/vendors/retries.py,sha256=Ti72rZWoJsO7Kj6QtCMwmubX65AM-K4USf86zh-K3Go,565
208
- synth_ai/lm/vendors/synth_client.py,sha256=6zzFS-guI3Kgdy4ZLHqGDqvJT114hBqIkT3R2TqCWPo,15965
322
+ synth_ai/lm/vendors/synth_client.py,sha256=F7VI5G02t1nerCE3QAxcsdn3byo98ifWfM7A_-fZNWo,27749
209
323
  synth_ai/lm/vendors/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
210
324
  synth_ai/lm/vendors/core/anthropic_api.py,sha256=mxJVF-uvSUOdbBRMmVfwBFCc7ntV5i_LNE5tQ2AxAbU,14986
211
325
  synth_ai/lm/vendors/core/gemini_api.py,sha256=mHvQtRqoymuzsQDxNFgTDt4HsrgvIuVBSAE29QpRa34,11082
212
326
  synth_ai/lm/vendors/core/mistral_api.py,sha256=4ggRg_4ajzZMBCb-0mHMX_ZTg10tteSfnIPE2NULFag,11875
213
- synth_ai/lm/vendors/core/openai_api.py,sha256=v93ZawWfLl24g-CQfd1xEVE2EyRmdMR72gnXYrSWTBU,7104
327
+ synth_ai/lm/vendors/core/openai_api.py,sha256=7znI4-yFc0sI5z6eOckd-Ks-IJU66v9gCBzoLjSzY7A,8416
214
328
  synth_ai/lm/vendors/core/synth_dev_api.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
215
329
  synth_ai/lm/vendors/local/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
216
330
  synth_ai/lm/vendors/local/ollama.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
217
331
  synth_ai/lm/vendors/supported/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
218
- synth_ai/lm/vendors/supported/custom_endpoint.py,sha256=ujyj4OgUCsZA3W6UyNXVLSWuAP1OBqM_LdE_kxV9_A8,14763
332
+ synth_ai/lm/vendors/supported/custom_endpoint.py,sha256=dlJyb3d4c-ZIlCxBDsmBj8dtYBO8aoz1MxD8TuqmbG4,15314
219
333
  synth_ai/lm/vendors/supported/deepseek.py,sha256=vTWdr0MYMsywhm2ajMzXOTTbgOcStT_P7xL8BDMcpNI,2329
220
334
  synth_ai/lm/vendors/supported/grok.py,sha256=_dDUPhov6_T_nqCN3ygLuFiDeoSMcKGaztvfhPrR5UY,2226
221
335
  synth_ai/lm/vendors/supported/groq.py,sha256=7W3kOg164C4R5zhDG6hb0IhaHDSz85xHc04uLz7umcQ,383
222
336
  synth_ai/lm/vendors/supported/ollama.py,sha256=GMrDhKD0LJLk6wFwzEi4WCgreagkADC6WxcWZqBdGJ8,466
223
337
  synth_ai/lm/vendors/supported/openrouter.py,sha256=N2slrvToudY8LIq8QHfHESm-IVo4GBriTAQF7RteO0E,2570
224
338
  synth_ai/lm/vendors/supported/together.py,sha256=IFd6gJtfPuE_KLh51ywp1iIkvow_R26EHPcYXBnw8Vc,337
339
+ synth_ai/rl/__init__.py,sha256=MrO6d2ehaDpE7nWQdie13CtYbIvezms9IaVENPeymwE,724
340
+ synth_ai/rl/contracts.py,sha256=6LJUT2UWHWebkoMprbIgsycV9ET3qLY-3NN1v4bJacY,673
341
+ synth_ai/rl/env_keys.py,sha256=lb2kQwuk4zMXyTUnaVCAbYvIstiGznLCdx797rAsPFk,4960
342
+ synth_ai/rl/secrets.py,sha256=RJU7N0idDNhENHyG9uAStXJxRGQMQti45xpm5i3uUGc,586
343
+ synth_ai/scripts/verify_rewards.py,sha256=w1eFGi-H5It7J55Qyt5s1mPnSc4AldMmZ9roNzE0ulQ,3304
344
+ synth_ai/task/__init__.py,sha256=1mkw9Gfgg7eYKxgvJGHvffpGZmJG9xTNn7ESKhERDv0,253
345
+ synth_ai/task/contracts.py,sha256=-zzarbw-8XIBSbd9SPSU1UF0fYKuTFOweWh5yHrj9nk,3699
346
+ synth_ai/task/health.py,sha256=MItweOAtvYAVdhqDVaKJhRgvTOqgSLZylgY8m7YqVp8,985
347
+ synth_ai/task/validators.py,sha256=IGE9zTjHYXOehwakMkcOAaDLSaHw_0Tp8uzL2ydCZ9U,361
225
348
  synth_ai/tracing/__init__.py,sha256=0Yy1YDMe_Duw976yu0HL1cbqPWdZEvtgEdtjDguNvcc,781
226
349
  synth_ai/tracing_v1/__init__.py,sha256=uV6qf8_rJTxRx6tCsXvqnjHhA1mR0im2rANuh0McrHA,930
227
350
  synth_ai/tracing_v3/__init__.py,sha256=9lKM-blbXo6Sk1oBpyYayjMVU43f9Y_35M1OvRynWoU,3251
@@ -229,12 +352,12 @@ synth_ai/tracing_v3/abstractions.py,sha256=FmVxWpRZAq5UmEmM-PjG-lFAT-1qgao7JGNh7
229
352
  synth_ai/tracing_v3/config.py,sha256=mPX2P4ILv1ktoI8oGKO_LyLc0O6Lnr2jbHA3QE-y6N0,3241
230
353
  synth_ai/tracing_v3/db_config.py,sha256=9tG-0OC22bmpNHH4bz6pdb5a5JHgFzhav6p14POAqAQ,5827
231
354
  synth_ai/tracing_v3/decorators.py,sha256=p8iXlNw7bIRC8-uG9doWMkDQiuJK5KSCm_awiifMjJw,13262
232
- synth_ai/tracing_v3/hooks.py,sha256=1M0Xt_4JCpuxiNpDcCQ5rBBwy-Ll6bAXhigWNR8ELic,7826
355
+ synth_ai/tracing_v3/hooks.py,sha256=iUKYY_I0abTSH_-Xe6Dfja7ff8xAhBVOU8AP2BEEcmA,7923
233
356
  synth_ai/tracing_v3/llm_call_record_helpers.py,sha256=mqSQStFC02z9b7uoTO7FjgJfd8Kq1FWcBLi3k2lqRWs,12181
234
357
  synth_ai/tracing_v3/lm_call_record_abstractions.py,sha256=j2RGuXVaV_EXmIosuXRDjptJSlrDXwb8x06k2fF6lqo,9195
235
358
  synth_ai/tracing_v3/migration_helper.py,sha256=izm7SNHtG3VDv_5ZmMk_mmwKitmShxUK3joNFOArZIY,4177
236
359
  synth_ai/tracing_v3/replica_sync.py,sha256=MoJRcMp6rZVC1QZF9EH2oUV70C7Br0N8DhEUZ9PeWks,8670
237
- synth_ai/tracing_v3/session_tracer.py,sha256=21i1OXk4ArdNvqzLQ-RM9ZiIkNHMOFXWFz5_SnFbQ04,11271
360
+ synth_ai/tracing_v3/session_tracer.py,sha256=_pNmKmoqUsnH410L5zDzC9_f804j_fOzTFSUTh782d0,16718
238
361
  synth_ai/tracing_v3/utils.py,sha256=8fmysb6iHVaKtd7-ybFYC_hk2EnFh-wrywtHmdgx0ik,3409
239
362
  synth_ai/tracing_v3/examples/basic_usage.py,sha256=wNpn8t0s0-2wusamBjn8WyyDUM_5Qz5_7TJuK4tSA98,7196
240
363
  synth_ai/tracing_v3/storage/__init__.py,sha256=VPjBh180bcSPz1HsbqaqfnvguwqwomaEYKxkrhfGABY,332
@@ -246,14 +369,8 @@ synth_ai/tracing_v3/storage/types.py,sha256=LevN8M12ilZ0EaiQ6Y3yONSMuLGEhSKNt0ir
246
369
  synth_ai/tracing_v3/storage/utils.py,sha256=GTc0AYzuaCAwci6sg7UCgtMnluNIIUDbrBOJcP8LvmE,6056
247
370
  synth_ai/tracing_v3/turso/__init__.py,sha256=MSvWojb9unyfLeTSaiVfw5T3dK72MzNQbvoCEZB9zag,414
248
371
  synth_ai/tracing_v3/turso/daemon.py,sha256=RHcwab3pe3rbD8Ccl10_61KWgaieBv0fHVOsn9NkFfk,4334
249
- synth_ai/tracing_v3/turso/manager.py,sha256=qUj40_6SMIrQpxTtWEJVzfWCwtkQqpbGSbzTrRmODFw,21713
250
- synth_ai/tracing_v3/turso/models.py,sha256=wQ8Couit4YwLHd3xarjqgdUZ1A2_qDpMQ-DCWw47t9U,14050
251
- synth_ai/tui/__init__.py,sha256=URh-sqpBz93jF7BURdVagh7TcNTrUxyGosfSRF1uyMo,50
252
- synth_ai/tui/__main__.py,sha256=6L-3iTmRWkCyf6a4ECtLpI67nD99ObydtqwOh_Ao3rc,238
253
- synth_ai/tui/dashboard.py,sha256=l39EkQEM2awOjQIlMnsous5kp26UDpK4aCBHw04GWjM,10588
254
- synth_ai/tui/cli/__init__.py,sha256=a_vhwN7-ZGCpjz1sHT-w8m3Icr2zfatlOnYc3v3-X1M,49
255
- synth_ai/tui/cli/query_experiments.py,sha256=B-Cy1xvX9QYaVC59K6DgMslL56AOA3V0HKNQv5mnGTY,5819
256
- synth_ai/tui/cli/query_experiments_v3.py,sha256=B-Cy1xvX9QYaVC59K6DgMslL56AOA3V0HKNQv5mnGTY,5819
372
+ synth_ai/tracing_v3/turso/manager.py,sha256=klWc5RHh5N_EGMse8yQCWjhY82lw87XKPq78QD8IBP8,31248
373
+ synth_ai/tracing_v3/turso/models.py,sha256=z_6UIq01RMpo1fHxbDrRQYU78tulWUPYSyp2edq9Q7M,16186
257
374
  synth_ai/v0/tracing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
258
375
  synth_ai/v0/tracing/abstractions.py,sha256=pL9XCf9UEWdX4IRizzRK9XUNBtDeBYfkVD51F8UOB0s,6898
259
376
  synth_ai/v0/tracing/base_client.py,sha256=IZpyuM-GIClvBBFA9iv4tpOjzY1QHF1m7vkNCYk7xLo,2931
@@ -291,9 +408,9 @@ synth_ai/v0/tracing_v1/events/manage.py,sha256=ZDXXP-ZwLH9LCsmw7Ru9o55d7bl_diPtJ
291
408
  synth_ai/v0/tracing_v1/events/scope.py,sha256=BuBkhSpVHUJt8iGT9HJZF82rbb88mQcd2vM2shg-w2I,2550
292
409
  synth_ai/v0/tracing_v1/events/store.py,sha256=0342lvAcalyJbVEIzQFaPuMQGgwiFm7M5rE6gr-G0E8,9041
293
410
  synth_ai/zyk/__init__.py,sha256=htVLnzTYQ5rxzYpzSYBm7_o6uNKZ3pB_PrqkBrgTRS4,771
294
- synth_ai-0.2.4.dev7.dist-info/licenses/LICENSE,sha256=ynhjRQUfqA_RdGRATApfFA_fBAy9cno04sLtLUqxVFM,1069
295
- synth_ai-0.2.4.dev7.dist-info/METADATA,sha256=S2cLy-G23QRUzY_q3xs6FNAAUSUxkh0ZlHyv139y4qA,6699
296
- synth_ai-0.2.4.dev7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
297
- synth_ai-0.2.4.dev7.dist-info/entry_points.txt,sha256=GSFXaJreq4PJXbixkUI0GHZwGh2dZDG5pYaoVmqr_KE,46
298
- synth_ai-0.2.4.dev7.dist-info/top_level.txt,sha256=fBmtZyVHuKaGa29oHBaaUkrUIWTqSpoVMPiVdCDP3k8,9
299
- synth_ai-0.2.4.dev7.dist-info/RECORD,,
411
+ synth_ai-0.2.4.dev9.dist-info/licenses/LICENSE,sha256=ynhjRQUfqA_RdGRATApfFA_fBAy9cno04sLtLUqxVFM,1069
412
+ synth_ai-0.2.4.dev9.dist-info/METADATA,sha256=VP1AsvO6vMAOiN0X7bKYMd136c4NE9iewt6QQjoQqd0,3500
413
+ synth_ai-0.2.4.dev9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
414
+ synth_ai-0.2.4.dev9.dist-info/entry_points.txt,sha256=Neq-3bT7TAijjgOIR77pKL-WYg6TWBDeO8pp_nL4vGY,91
415
+ synth_ai-0.2.4.dev9.dist-info/top_level.txt,sha256=fBmtZyVHuKaGa29oHBaaUkrUIWTqSpoVMPiVdCDP3k8,9
416
+ synth_ai-0.2.4.dev9.dist-info/RECORD,,
@@ -1,2 +1,3 @@
1
1
  [console_scripts]
2
2
  synth-ai = synth_ai.cli:cli
3
+ synth-ai-demo = synth_ai.demos.core.cli:main
synth_ai/tui/__init__.py DELETED
@@ -1 +0,0 @@
1
- """Text User Interface utilities for synth-ai."""
synth_ai/tui/__main__.py DELETED
@@ -1,13 +0,0 @@
1
- #!/usr/bin/env python3
2
- """
3
- Entry point for Synth AI TUI dashboard.
4
-
5
- Usage:
6
- python -m synth_ai.tui
7
- python -m synth_ai.tui --url sqlite+aiosqlite:///path/to/db
8
- """
9
-
10
- from .dashboard import main
11
-
12
- if __name__ == "__main__":
13
- main()
@@ -1 +0,0 @@
1
- """Command Line Interface tools for synth-ai."""
@@ -1,164 +0,0 @@
1
- #!/usr/bin/env python3
2
- """
3
- Query experiments and sessions from Turso/sqld using v3 tracing.
4
- """
5
-
6
- import argparse
7
- import asyncio
8
-
9
- from synth_ai.tracing_v3.turso.manager import AsyncSQLTraceManager
10
-
11
-
12
- async def list_experiments(db_url: str):
13
- """List all experiments in the database."""
14
- db = AsyncSQLTraceManager(db_url)
15
- await db.initialize()
16
-
17
- try:
18
- df = await db.query_traces("""
19
- SELECT
20
- e.experiment_id,
21
- e.name,
22
- e.description,
23
- e.created_at,
24
- COUNT(DISTINCT st.session_id) as num_sessions,
25
- COUNT(DISTINCT ev.id) as num_events,
26
- SUM(CASE WHEN ev.event_type = 'cais' THEN ev.cost_usd ELSE 0 END) / 100.0 as total_cost,
27
- SUM(CASE WHEN ev.event_type = 'cais' THEN ev.total_tokens ELSE 0 END) as total_tokens
28
- FROM experiments e
29
- LEFT JOIN session_traces st ON e.experiment_id = st.experiment_id
30
- LEFT JOIN events ev ON st.session_id = ev.session_id
31
- GROUP BY e.experiment_id, e.name, e.description, e.created_at
32
- ORDER BY e.created_at DESC
33
- """)
34
-
35
- if df.empty:
36
- print("No experiments found in database.")
37
- return
38
-
39
- print(f"\n{'=' * 100}")
40
- print(f"{'Experiments in ' + db_url:^100}")
41
- print(f"{'=' * 100}\n")
42
-
43
- for _, row in df.iterrows():
44
- print(f"🧪 {row['name']} (id: {row['experiment_id'][:8]}...)")
45
- print(f" Created: {row['created_at']}")
46
- print(f" Description: {row['description']}")
47
- print(f" Sessions: {row['num_sessions']}")
48
- print(f" Events: {row['num_events']:,}")
49
- if row["total_cost"] and row["total_cost"] > 0:
50
- print(f" Cost: ${row['total_cost']:.4f}")
51
- if row["total_tokens"] and row["total_tokens"] > 0:
52
- print(f" Tokens: {int(row['total_tokens']):,}")
53
- print()
54
- finally:
55
- await db.close()
56
-
57
-
58
- async def show_experiment_details(db_url: str, experiment_id: str):
59
- """Show detailed information about a specific experiment."""
60
- db = AsyncSQLTraceManager(db_url)
61
- await db.initialize()
62
-
63
- try:
64
- # Get experiment info
65
- exp_df = await db.query_traces(
66
- """
67
- SELECT * FROM experiments WHERE experiment_id LIKE :exp_id
68
- """,
69
- {"exp_id": f"{experiment_id}%"},
70
- )
71
-
72
- if exp_df.empty:
73
- print(f"No experiment found matching ID: {experiment_id}")
74
- return
75
-
76
- exp = exp_df.iloc[0]
77
- print(f"\n{'=' * 100}")
78
- print(f"Experiment: {exp['name']} ({exp['experiment_id']})")
79
- print(f"{'=' * 100}\n")
80
-
81
- # Get session statistics
82
- sessions_df = await db.get_sessions_by_experiment(exp["experiment_id"])
83
-
84
- if sessions_df:
85
- print(f"Sessions: {len(sessions_df)}")
86
-
87
- # Get aggregated stats
88
- stats_df = await db.query_traces(
89
- """
90
- SELECT
91
- COUNT(DISTINCT ev.id) as total_events,
92
- COUNT(DISTINCT m.id) as total_messages,
93
- SUM(CASE WHEN ev.event_type = 'cais' THEN ev.cost_usd ELSE 0 END) / 100.0 as total_cost,
94
- SUM(CASE WHEN ev.event_type = 'cais' THEN ev.total_tokens ELSE 0 END) as total_tokens
95
- FROM session_traces st
96
- LEFT JOIN events ev ON st.session_id = ev.session_id
97
- LEFT JOIN messages m ON st.session_id = m.session_id
98
- WHERE st.experiment_id = :exp_id
99
- """,
100
- {"exp_id": exp["experiment_id"]},
101
- )
102
-
103
- if not stats_df.empty:
104
- stats = stats_df.iloc[0]
105
- print(f"Total events: {int(stats['total_events']):,}")
106
- print(f"Total messages: {int(stats['total_messages']):,}")
107
- print(f"Total cost: ${stats['total_cost']:.4f}")
108
- print(f"Total tokens: {int(stats['total_tokens']):,}")
109
-
110
- # Show session list
111
- print("\nSession list:")
112
- for sess in sessions_df:
113
- print(f" - {sess['session_id']} ({sess['created_at']})")
114
- print(
115
- f" Timesteps: {sess['num_timesteps']}, Events: {sess['num_events']}, Messages: {sess['num_messages']}"
116
- )
117
- finally:
118
- await db.close()
119
-
120
-
121
- async def show_model_usage(db_url: str, model_name: str | None = None):
122
- """Show model usage statistics."""
123
- db = AsyncSQLTraceManager(db_url)
124
- await db.initialize()
125
-
126
- try:
127
- df = await db.get_model_usage(model_name=model_name)
128
-
129
- if df.empty:
130
- print("No model usage data found.")
131
- return
132
-
133
- print(f"\n{'=' * 100}")
134
- print(f"{'Model Usage Statistics':^100}")
135
- print(f"{'=' * 100}\n")
136
-
137
- print(df.to_string(index=False))
138
- finally:
139
- await db.close()
140
-
141
-
142
- async def main():
143
- parser = argparse.ArgumentParser(description="Query experiments from Turso/sqld (v3)")
144
- parser.add_argument(
145
- "-u", "--url", default="sqlite+libsql://http://127.0.0.1:8080", help="Turso database URL"
146
- )
147
- parser.add_argument(
148
- "-e", "--experiment", help="Show details for specific experiment ID (can be partial)"
149
- )
150
- parser.add_argument("-m", "--model", help="Show usage for specific model")
151
- parser.add_argument("--usage", action="store_true", help="Show model usage statistics")
152
-
153
- args = parser.parse_args()
154
-
155
- if args.usage or args.model:
156
- await show_model_usage(args.url, args.model)
157
- elif args.experiment:
158
- await show_experiment_details(args.url, args.experiment)
159
- else:
160
- await list_experiments(args.url)
161
-
162
-
163
- if __name__ == "__main__":
164
- asyncio.run(main())