synth-ai 0.2.4.dev6__py3-none-any.whl → 0.2.4.dev8__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.
Files changed (256) hide show
  1. synth_ai/__init__.py +18 -9
  2. synth_ai/cli/__init__.py +10 -5
  3. synth_ai/cli/balance.py +25 -32
  4. synth_ai/cli/calc.py +2 -3
  5. synth_ai/cli/demo.py +3 -5
  6. synth_ai/cli/legacy_root_backup.py +58 -32
  7. synth_ai/cli/man.py +22 -19
  8. synth_ai/cli/recent.py +9 -8
  9. synth_ai/cli/root.py +58 -13
  10. synth_ai/cli/status.py +13 -6
  11. synth_ai/cli/traces.py +45 -21
  12. synth_ai/cli/watch.py +40 -37
  13. synth_ai/config/base_url.py +47 -2
  14. synth_ai/core/experiment.py +1 -2
  15. synth_ai/environments/__init__.py +2 -6
  16. synth_ai/environments/environment/artifacts/base.py +3 -1
  17. synth_ai/environments/environment/db/sqlite.py +1 -1
  18. synth_ai/environments/environment/registry.py +19 -20
  19. synth_ai/environments/environment/resources/sqlite.py +2 -3
  20. synth_ai/environments/environment/rewards/core.py +3 -2
  21. synth_ai/environments/environment/tools/__init__.py +6 -4
  22. synth_ai/environments/examples/crafter_classic/__init__.py +1 -1
  23. synth_ai/environments/examples/crafter_classic/engine.py +13 -13
  24. synth_ai/environments/examples/crafter_classic/engine_deterministic_patch.py +1 -0
  25. synth_ai/environments/examples/crafter_classic/engine_helpers/action_map.py +2 -1
  26. synth_ai/environments/examples/crafter_classic/engine_helpers/serialization.py +2 -1
  27. synth_ai/environments/examples/crafter_classic/engine_serialization_patch_v3.py +3 -2
  28. synth_ai/environments/examples/crafter_classic/environment.py +16 -15
  29. synth_ai/environments/examples/crafter_classic/taskset.py +2 -2
  30. synth_ai/environments/examples/crafter_classic/trace_hooks_v3.py +2 -3
  31. synth_ai/environments/examples/crafter_classic/world_config_patch_simple.py +2 -1
  32. synth_ai/environments/examples/crafter_custom/crafter/__init__.py +2 -2
  33. synth_ai/environments/examples/crafter_custom/crafter/config.py +2 -2
  34. synth_ai/environments/examples/crafter_custom/crafter/env.py +1 -5
  35. synth_ai/environments/examples/crafter_custom/crafter/objects.py +1 -2
  36. synth_ai/environments/examples/crafter_custom/crafter/worldgen.py +1 -2
  37. synth_ai/environments/examples/crafter_custom/dataset_builder.py +5 -5
  38. synth_ai/environments/examples/crafter_custom/environment.py +13 -13
  39. synth_ai/environments/examples/crafter_custom/run_dataset.py +5 -5
  40. synth_ai/environments/examples/enron/art_helpers/email_search_tools.py +2 -2
  41. synth_ai/environments/examples/enron/art_helpers/local_email_db.py +5 -4
  42. synth_ai/environments/examples/enron/art_helpers/types_enron.py +2 -1
  43. synth_ai/environments/examples/enron/engine.py +18 -14
  44. synth_ai/environments/examples/enron/environment.py +12 -11
  45. synth_ai/environments/examples/enron/taskset.py +7 -7
  46. synth_ai/environments/examples/minigrid/__init__.py +6 -6
  47. synth_ai/environments/examples/minigrid/engine.py +6 -6
  48. synth_ai/environments/examples/minigrid/environment.py +6 -6
  49. synth_ai/environments/examples/minigrid/puzzle_loader.py +3 -2
  50. synth_ai/environments/examples/minigrid/taskset.py +13 -13
  51. synth_ai/environments/examples/nethack/achievements.py +1 -1
  52. synth_ai/environments/examples/nethack/engine.py +8 -7
  53. synth_ai/environments/examples/nethack/environment.py +10 -9
  54. synth_ai/environments/examples/nethack/helpers/__init__.py +8 -9
  55. synth_ai/environments/examples/nethack/helpers/action_mapping.py +1 -1
  56. synth_ai/environments/examples/nethack/helpers/nle_wrapper.py +2 -1
  57. synth_ai/environments/examples/nethack/helpers/observation_utils.py +1 -1
  58. synth_ai/environments/examples/nethack/helpers/recording_wrapper.py +3 -4
  59. synth_ai/environments/examples/nethack/helpers/trajectory_recorder.py +6 -5
  60. synth_ai/environments/examples/nethack/helpers/visualization/replay_viewer.py +5 -5
  61. synth_ai/environments/examples/nethack/helpers/visualization/visualizer.py +7 -6
  62. synth_ai/environments/examples/nethack/taskset.py +5 -5
  63. synth_ai/environments/examples/red/engine.py +9 -8
  64. synth_ai/environments/examples/red/engine_helpers/reward_components.py +2 -1
  65. synth_ai/environments/examples/red/engine_helpers/reward_library/__init__.py +7 -7
  66. synth_ai/environments/examples/red/engine_helpers/reward_library/adaptive_rewards.py +2 -1
  67. synth_ai/environments/examples/red/engine_helpers/reward_library/battle_rewards.py +2 -1
  68. synth_ai/environments/examples/red/engine_helpers/reward_library/composite_rewards.py +2 -1
  69. synth_ai/environments/examples/red/engine_helpers/reward_library/economy_rewards.py +2 -1
  70. synth_ai/environments/examples/red/engine_helpers/reward_library/efficiency_rewards.py +2 -1
  71. synth_ai/environments/examples/red/engine_helpers/reward_library/exploration_rewards.py +2 -1
  72. synth_ai/environments/examples/red/engine_helpers/reward_library/novelty_rewards.py +2 -1
  73. synth_ai/environments/examples/red/engine_helpers/reward_library/pallet_town_rewards.py +2 -1
  74. synth_ai/environments/examples/red/engine_helpers/reward_library/pokemon_rewards.py +2 -1
  75. synth_ai/environments/examples/red/engine_helpers/reward_library/social_rewards.py +2 -1
  76. synth_ai/environments/examples/red/engine_helpers/reward_library/story_rewards.py +2 -1
  77. synth_ai/environments/examples/red/engine_helpers/screen_analysis.py +3 -2
  78. synth_ai/environments/examples/red/engine_helpers/state_extraction.py +2 -1
  79. synth_ai/environments/examples/red/environment.py +18 -15
  80. synth_ai/environments/examples/red/taskset.py +5 -3
  81. synth_ai/environments/examples/sokoban/engine.py +16 -13
  82. synth_ai/environments/examples/sokoban/engine_helpers/room_utils.py +3 -2
  83. synth_ai/environments/examples/sokoban/engine_helpers/vendored/__init__.py +2 -1
  84. synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/__init__.py +1 -1
  85. synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/boxoban_env.py +7 -5
  86. synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/render_utils.py +1 -1
  87. synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/room_utils.py +2 -1
  88. synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/sokoban_env.py +5 -4
  89. synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/sokoban_env_fixed_targets.py +3 -2
  90. synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/sokoban_env_pull.py +2 -1
  91. synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/sokoban_env_two_player.py +5 -4
  92. synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/sokoban_env_variations.py +1 -1
  93. synth_ai/environments/examples/sokoban/environment.py +15 -14
  94. synth_ai/environments/examples/sokoban/generate_verified_puzzles.py +5 -3
  95. synth_ai/environments/examples/sokoban/puzzle_loader.py +3 -2
  96. synth_ai/environments/examples/sokoban/taskset.py +13 -10
  97. synth_ai/environments/examples/tictactoe/engine.py +6 -6
  98. synth_ai/environments/examples/tictactoe/environment.py +8 -7
  99. synth_ai/environments/examples/tictactoe/taskset.py +6 -5
  100. synth_ai/environments/examples/verilog/engine.py +4 -3
  101. synth_ai/environments/examples/verilog/environment.py +11 -10
  102. synth_ai/environments/examples/verilog/taskset.py +14 -12
  103. synth_ai/environments/examples/wordle/__init__.py +5 -5
  104. synth_ai/environments/examples/wordle/engine.py +32 -25
  105. synth_ai/environments/examples/wordle/environment.py +21 -16
  106. synth_ai/environments/examples/wordle/helpers/generate_instances_wordfreq.py +6 -6
  107. synth_ai/environments/examples/wordle/taskset.py +20 -12
  108. synth_ai/environments/reproducibility/core.py +1 -1
  109. synth_ai/environments/reproducibility/tree.py +21 -21
  110. synth_ai/environments/service/app.py +3 -2
  111. synth_ai/environments/service/core_routes.py +104 -110
  112. synth_ai/environments/service/external_registry.py +1 -2
  113. synth_ai/environments/service/registry.py +1 -1
  114. synth_ai/environments/stateful/core.py +1 -2
  115. synth_ai/environments/stateful/engine.py +1 -1
  116. synth_ai/environments/tasks/api.py +4 -4
  117. synth_ai/environments/tasks/core.py +14 -12
  118. synth_ai/environments/tasks/filters.py +6 -4
  119. synth_ai/environments/tasks/utils.py +13 -11
  120. synth_ai/evals/base.py +2 -3
  121. synth_ai/experimental/synth_oss.py +4 -4
  122. synth_ai/http.py +102 -0
  123. synth_ai/inference/__init__.py +7 -0
  124. synth_ai/inference/client.py +20 -0
  125. synth_ai/jobs/client.py +246 -0
  126. synth_ai/learning/__init__.py +24 -0
  127. synth_ai/learning/client.py +149 -0
  128. synth_ai/learning/config.py +43 -0
  129. synth_ai/learning/constants.py +29 -0
  130. synth_ai/learning/ft_client.py +59 -0
  131. synth_ai/learning/gateway.py +1 -3
  132. synth_ai/learning/health.py +43 -0
  133. synth_ai/learning/jobs.py +205 -0
  134. synth_ai/learning/prompts/banking77_injection_eval.py +15 -10
  135. synth_ai/learning/prompts/hello_world_in_context_injection_ex.py +26 -14
  136. synth_ai/learning/prompts/mipro.py +61 -52
  137. synth_ai/learning/prompts/random_search.py +42 -43
  138. synth_ai/learning/prompts/run_mipro_banking77.py +32 -20
  139. synth_ai/learning/prompts/run_random_search_banking77.py +71 -52
  140. synth_ai/learning/rl_client.py +256 -0
  141. synth_ai/learning/sse.py +58 -0
  142. synth_ai/learning/validators.py +48 -0
  143. synth_ai/lm/__init__.py +5 -5
  144. synth_ai/lm/caching/ephemeral.py +9 -9
  145. synth_ai/lm/caching/handler.py +20 -20
  146. synth_ai/lm/caching/persistent.py +10 -10
  147. synth_ai/lm/config.py +3 -3
  148. synth_ai/lm/constants.py +7 -7
  149. synth_ai/lm/core/all.py +17 -3
  150. synth_ai/lm/core/exceptions.py +0 -2
  151. synth_ai/lm/core/main.py +26 -41
  152. synth_ai/lm/core/main_v3.py +33 -10
  153. synth_ai/lm/core/synth_models.py +48 -0
  154. synth_ai/lm/core/vendor_clients.py +26 -22
  155. synth_ai/lm/injection.py +7 -8
  156. synth_ai/lm/overrides.py +21 -19
  157. synth_ai/lm/provider_support/__init__.py +1 -1
  158. synth_ai/lm/provider_support/anthropic.py +15 -15
  159. synth_ai/lm/provider_support/openai.py +23 -21
  160. synth_ai/lm/structured_outputs/handler.py +34 -32
  161. synth_ai/lm/structured_outputs/inject.py +24 -27
  162. synth_ai/lm/structured_outputs/rehabilitate.py +19 -15
  163. synth_ai/lm/tools/base.py +17 -16
  164. synth_ai/lm/unified_interface.py +17 -18
  165. synth_ai/lm/vendors/base.py +20 -18
  166. synth_ai/lm/vendors/core/anthropic_api.py +36 -27
  167. synth_ai/lm/vendors/core/gemini_api.py +31 -36
  168. synth_ai/lm/vendors/core/mistral_api.py +19 -19
  169. synth_ai/lm/vendors/core/openai_api.py +42 -13
  170. synth_ai/lm/vendors/openai_standard.py +158 -101
  171. synth_ai/lm/vendors/openai_standard_responses.py +74 -61
  172. synth_ai/lm/vendors/retries.py +9 -1
  173. synth_ai/lm/vendors/supported/custom_endpoint.py +38 -28
  174. synth_ai/lm/vendors/supported/deepseek.py +10 -10
  175. synth_ai/lm/vendors/supported/grok.py +8 -8
  176. synth_ai/lm/vendors/supported/ollama.py +2 -1
  177. synth_ai/lm/vendors/supported/openrouter.py +11 -9
  178. synth_ai/lm/vendors/synth_client.py +425 -75
  179. synth_ai/lm/warmup.py +8 -7
  180. synth_ai/rl/__init__.py +30 -0
  181. synth_ai/rl/contracts.py +32 -0
  182. synth_ai/rl/env_keys.py +137 -0
  183. synth_ai/rl/secrets.py +19 -0
  184. synth_ai/scripts/verify_rewards.py +100 -0
  185. synth_ai/task/__init__.py +10 -0
  186. synth_ai/task/contracts.py +120 -0
  187. synth_ai/task/health.py +28 -0
  188. synth_ai/task/validators.py +12 -0
  189. synth_ai/tracing/__init__.py +22 -10
  190. synth_ai/tracing_v1/__init__.py +22 -20
  191. synth_ai/tracing_v3/__init__.py +7 -7
  192. synth_ai/tracing_v3/abstractions.py +56 -52
  193. synth_ai/tracing_v3/config.py +4 -2
  194. synth_ai/tracing_v3/db_config.py +6 -8
  195. synth_ai/tracing_v3/decorators.py +29 -30
  196. synth_ai/tracing_v3/examples/basic_usage.py +12 -12
  197. synth_ai/tracing_v3/hooks.py +24 -22
  198. synth_ai/tracing_v3/llm_call_record_helpers.py +85 -98
  199. synth_ai/tracing_v3/lm_call_record_abstractions.py +2 -4
  200. synth_ai/tracing_v3/migration_helper.py +3 -5
  201. synth_ai/tracing_v3/replica_sync.py +30 -32
  202. synth_ai/tracing_v3/session_tracer.py +158 -31
  203. synth_ai/tracing_v3/storage/__init__.py +1 -1
  204. synth_ai/tracing_v3/storage/base.py +8 -7
  205. synth_ai/tracing_v3/storage/config.py +4 -4
  206. synth_ai/tracing_v3/storage/factory.py +4 -4
  207. synth_ai/tracing_v3/storage/utils.py +9 -9
  208. synth_ai/tracing_v3/turso/__init__.py +3 -3
  209. synth_ai/tracing_v3/turso/daemon.py +9 -9
  210. synth_ai/tracing_v3/turso/manager.py +278 -48
  211. synth_ai/tracing_v3/turso/models.py +77 -19
  212. synth_ai/tracing_v3/utils.py +5 -5
  213. synth_ai/v0/tracing/abstractions.py +28 -28
  214. synth_ai/v0/tracing/base_client.py +9 -9
  215. synth_ai/v0/tracing/client_manager.py +7 -7
  216. synth_ai/v0/tracing/config.py +7 -7
  217. synth_ai/v0/tracing/context.py +6 -6
  218. synth_ai/v0/tracing/decorators.py +6 -5
  219. synth_ai/v0/tracing/events/manage.py +1 -1
  220. synth_ai/v0/tracing/events/store.py +5 -4
  221. synth_ai/v0/tracing/immediate_client.py +4 -5
  222. synth_ai/v0/tracing/local.py +3 -3
  223. synth_ai/v0/tracing/log_client_base.py +4 -5
  224. synth_ai/v0/tracing/retry_queue.py +5 -6
  225. synth_ai/v0/tracing/trackers.py +25 -25
  226. synth_ai/v0/tracing/upload.py +6 -0
  227. synth_ai/v0/tracing_v1/__init__.py +1 -1
  228. synth_ai/v0/tracing_v1/abstractions.py +28 -28
  229. synth_ai/v0/tracing_v1/base_client.py +9 -9
  230. synth_ai/v0/tracing_v1/client_manager.py +7 -7
  231. synth_ai/v0/tracing_v1/config.py +7 -7
  232. synth_ai/v0/tracing_v1/context.py +6 -6
  233. synth_ai/v0/tracing_v1/decorators.py +7 -6
  234. synth_ai/v0/tracing_v1/events/manage.py +1 -1
  235. synth_ai/v0/tracing_v1/events/store.py +5 -4
  236. synth_ai/v0/tracing_v1/immediate_client.py +4 -5
  237. synth_ai/v0/tracing_v1/local.py +3 -3
  238. synth_ai/v0/tracing_v1/log_client_base.py +4 -5
  239. synth_ai/v0/tracing_v1/retry_queue.py +5 -6
  240. synth_ai/v0/tracing_v1/trackers.py +25 -25
  241. synth_ai/v0/tracing_v1/upload.py +25 -24
  242. synth_ai/zyk/__init__.py +1 -0
  243. synth_ai-0.2.4.dev8.dist-info/METADATA +635 -0
  244. synth_ai-0.2.4.dev8.dist-info/RECORD +317 -0
  245. synth_ai/tui/__init__.py +0 -1
  246. synth_ai/tui/__main__.py +0 -13
  247. synth_ai/tui/cli/__init__.py +0 -1
  248. synth_ai/tui/cli/query_experiments.py +0 -165
  249. synth_ai/tui/cli/query_experiments_v3.py +0 -165
  250. synth_ai/tui/dashboard.py +0 -329
  251. synth_ai-0.2.4.dev6.dist-info/METADATA +0 -203
  252. synth_ai-0.2.4.dev6.dist-info/RECORD +0 -299
  253. {synth_ai-0.2.4.dev6.dist-info → synth_ai-0.2.4.dev8.dist-info}/WHEEL +0 -0
  254. {synth_ai-0.2.4.dev6.dist-info → synth_ai-0.2.4.dev8.dist-info}/entry_points.txt +0 -0
  255. {synth_ai-0.2.4.dev6.dist-info → synth_ai-0.2.4.dev8.dist-info}/licenses/LICENSE +0 -0
  256. {synth_ai-0.2.4.dev6.dist-info → synth_ai-0.2.4.dev8.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,317 @@
1
+ synth_ai/__init__.py,sha256=u8sOAEzlDIPKIpXgDIItSUIphvhr4RsQ55Us_Sx5Ywk,1354
2
+ synth_ai/__main__.py,sha256=Kh1xBKkTE5Vs2qNMtDuuOXerHUptMcOiF3YziOpC6DA,146
3
+ synth_ai/http.py,sha256=aKIGsGwMBi7S0Tg57Q1Nxdoxjh2sn9xzNziLYhfSA3c,4427
4
+ synth_ai/cli/__init__.py,sha256=Zp845vrQ4PXxTSnToGTQXzYIX7IOKu2mj6qLmdW64yw,1461
5
+ synth_ai/cli/balance.py,sha256=dlxGKCZ2kDeuHMZ5m8n5SHRWW-2CIWs3JcY5xpnWRVA,7798
6
+ synth_ai/cli/calc.py,sha256=RJyQJ41e02xn-V0vRRCAVkL59UHDqyz8XpYGsenfdm4,2085
7
+ synth_ai/cli/demo.py,sha256=Md37HDSPsaJcsIybw-vVA7H6YbnMBLcwK2twz5IM7pk,2474
8
+ synth_ai/cli/legacy_root_backup.py,sha256=KSMADyJ2g5OVpsq_CeBzqIeDC2Um-9GyINzsJH-75uw,15872
9
+ synth_ai/cli/man.py,sha256=JQDon73ZkuKP9xr1_vRh5fjV9_b5xiUb7zNjny7ArB8,3765
10
+ synth_ai/cli/recent.py,sha256=mHhM-QrR_MfjfKSzBvvPUEC-lkXTWUZrQwqYTmb2x0Y,4173
11
+ synth_ai/cli/root.py,sha256=xaeadlg144DW7t4CHZUXbjE5dl1S5bWQ_nr2JMXWgcs,7366
12
+ synth_ai/cli/status.py,sha256=M_bt7U58Ubi-q-ZlrIpgCASKq9_k6uMjpx926f6kLLA,4591
13
+ synth_ai/cli/traces.py,sha256=_QBdCR92u0Gv51U4DH0Ws1d5yCrbJRpaYKe7pmcHrHs,6484
14
+ synth_ai/cli/watch.py,sha256=HBKbAcpUkkPhGvsPRofckbu8oILiVqp35NXHkIEpTTc,17808
15
+ synth_ai/compound/cais.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
+ synth_ai/config/base_url.py,sha256=Bk7Bd9jKJP-LF0SW--WE01JhMfvOB6NUkFMRgPMnJuQ,3101
17
+ synth_ai/core/experiment.py,sha256=hLkPtzUFA7iY3-QpeJ5K8YjvQeyfqnjab5P2CFaojys,236
18
+ synth_ai/core/system.py,sha256=s-Z7np2ISYmYc1r9YN-y2yb3cgRlOalrh0iaqnxeo84,206
19
+ synth_ai/environments/__init__.py,sha256=BQW0Nc_BFQq_N-pcqTyJVjW56kSEXu7XZyaSer-U95Q,1032
20
+ synth_ai/environments/environment/__init__.py,sha256=EBol9AKxPTIPXWcbH9Tja-l3yL-N2kB8e5atyf6F66c,31
21
+ synth_ai/environments/environment/core.py,sha256=0jd0CZ88_s_qqA3d1lOgVsnv-ucw_1lJDAIUj1gTSt0,2201
22
+ synth_ai/environments/environment/registry.py,sha256=flHYYk5df3DiLfU4yFn-ec6AtoFtmLqRctDVgweq9lA,8847
23
+ synth_ai/environments/environment/results.py,sha256=IqIZqE7TxZudF63e3-OLIC57n2uiODybhwAOWkFEQxY,111
24
+ synth_ai/environments/environment/shared_engine.py,sha256=7moaV5eKDtNdPuM8euSaCNAPVLJ9E28v-hOu0fX0dkE,429
25
+ synth_ai/environments/environment/artifacts/__init__.py,sha256=RWyqjTyJB8jnLb6yNr9TgSBhLB_2XetuPzwaGUkFH4U,20
26
+ synth_ai/environments/environment/artifacts/base.py,sha256=yHO_PNWwAuM4KBRLOwCdggnNC3ODnuPXTD_BOkwUQQ8,1240
27
+ synth_ai/environments/environment/db/__init__.py,sha256=SMiJDPTgF7Nlgz9-AAlxFt82au4cshEmuDhPjfNJEvo,13
28
+ synth_ai/environments/environment/db/sqlite.py,sha256=h6pdGcLi8v6oj3zMCuCU8YL1hvNpiGMuer2oyuQVcCs,1635
29
+ synth_ai/environments/environment/resources/sqlite.py,sha256=h6pdGcLi8v6oj3zMCuCU8YL1hvNpiGMuer2oyuQVcCs,1635
30
+ synth_ai/environments/environment/rewards/__init__.py,sha256=5TpSHuCNeRy0W5N55ITVVoAI6oNYre9usbPhFnDrc7I,18
31
+ synth_ai/environments/environment/rewards/core.py,sha256=Iu5MKInKW1LGZ1vb3oc_qmsL3ZQvXxZFMnFffJ_M9BI,883
32
+ synth_ai/environments/environment/tools/__init__.py,sha256=ew_9CkNnt4t6nh_wjXa4BudWHhALVUbTycQsdUtAg-4,6900
33
+ synth_ai/environments/examples/__init__.py,sha256=POgz9O4n1tvPAW1rYNUNeQGrMlWxoPDmyht85o5Po0s,38
34
+ synth_ai/environments/examples/crafter_classic/__init__.py,sha256=8g6e991LpiUOkj3avOJo8qBbFiD7XSvrXb44ci98JRc,270
35
+ synth_ai/environments/examples/crafter_classic/config_logging.py,sha256=Eqq35s0lPAmBiU0neZM6vmHPct15gp9TwS3vogrNziM,3794
36
+ synth_ai/environments/examples/crafter_classic/debug_translation.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
+ synth_ai/environments/examples/crafter_classic/engine.py,sha256=i13hDJe-6BXWFqXAsdjNCrfjU_HpwWLE5-4KNT-VSbs,25257
38
+ synth_ai/environments/examples/crafter_classic/engine_deterministic_patch.py,sha256=IMmqt0S9wh0sdP42G_Q6W_2j22gKX4YQZVvuIqLzLWc,2802
39
+ synth_ai/environments/examples/crafter_classic/engine_serialization_patch_v3.py,sha256=oC1y_CdnB_xit4FH72dMo8ljlZW_Mpa3cMpbDVCtqyU,11127
40
+ synth_ai/environments/examples/crafter_classic/environment.py,sha256=x71ZPgX7Ij3NKaLO03ZzK0ZX4szpUg26tjztJbEvt_M,17219
41
+ synth_ai/environments/examples/crafter_classic/taskset.py,sha256=9uZpQOllUqMupIBwlz2Jv38hBYqY09czi1LOonCTk5c,9843
42
+ synth_ai/environments/examples/crafter_classic/trace_hooks_v3.py,sha256=lka-3tNuYsvYQ6acEvJjvBPkylbqgCzuCd2QMOjNCRs,7194
43
+ synth_ai/environments/examples/crafter_classic/world_config_patch_simple.py,sha256=wHT2pyOJ55Jlh9iq-UND4cd-GQdyKxQmo9ncCuQ_Jiw,10166
44
+ synth_ai/environments/examples/crafter_classic/engine_helpers/action_map.py,sha256=hSjplDgu-m7bbpd1uuZq7n5mejBp6vylEru6xPHooJI,230
45
+ synth_ai/environments/examples/crafter_classic/engine_helpers/serialization.py,sha256=7M8_FJsCAEzBTbdur0LRGiBAl2V4J3kFLORn6bB2t2s,2243
46
+ synth_ai/environments/examples/crafter_custom/__init__.py,sha256=139ewayoaO3Oxr-vG-1hxI89urYr1Dsy35JEeJEdvj0,190
47
+ synth_ai/environments/examples/crafter_custom/dataset_builder.py,sha256=9rG98Z7JoStsJdNqbb5yxEu5__41h-4mg8b1VUGATvk,12956
48
+ synth_ai/environments/examples/crafter_custom/environment.py,sha256=O5rOusbe1Ce4VMCNBNWhVzN0kMJnAuokHLRVyzgeeGM,14784
49
+ synth_ai/environments/examples/crafter_custom/run_dataset.py,sha256=SSPQ4puh55grB9xjqP-yt3LZF7ihW_sorTN3txgolpo,9959
50
+ synth_ai/environments/examples/crafter_custom/crafter/__init__.py,sha256=IwsX9FySJrnMXEVsHpEb-SxcYbohTMG5IOVUIsUUjSI,235
51
+ synth_ai/environments/examples/crafter_custom/crafter/config.py,sha256=maislluS06yuiry18rOedmiFpczw8EPFiC-45ZULiuI,5542
52
+ synth_ai/environments/examples/crafter_custom/crafter/constants.py,sha256=ZAHy89ZCWyLGzP1sQqlHHqGIMuIHqgsYWy7usD3ODB8,218
53
+ synth_ai/environments/examples/crafter_custom/crafter/engine.py,sha256=DFGknXHvOoliVtded7TnDsBrOOSnb79gbTdgpJNQKtE,9479
54
+ synth_ai/environments/examples/crafter_custom/crafter/env.py,sha256=y14Y7i53vjCC8wc4sqjcD2kEaSlrZvxY5DRSItIjt2Y,9273
55
+ synth_ai/environments/examples/crafter_custom/crafter/objects.py,sha256=8CMOwh5n2jfit-aqs-CJbf-lYMD71NOtc2mupVoz-tI,13009
56
+ synth_ai/environments/examples/crafter_custom/crafter/recorder.py,sha256=NcqecXkU8S5pJ4vE89KcZPIO8SknkKuV1AookEvQ2Gw,5898
57
+ synth_ai/environments/examples/crafter_custom/crafter/worldgen.py,sha256=m1lV-lTYVNkC5deVQrr3eb8iYr4LJVdRfrVH2jYe9F8,4115
58
+ synth_ai/environments/examples/enron/engine.py,sha256=kmyE3See-NPxs3XKz7HV7XL9IoH4YTxFvPrAz9MYY1M,11702
59
+ synth_ai/environments/examples/enron/environment.py,sha256=s3g8zAn6qS5d_shcz8pl8J903eWa0KFw04j3Wury4NE,5986
60
+ synth_ai/environments/examples/enron/taskset.py,sha256=KQBQMclCh24jSCBLbxsWDn7BveT1RlnEUDErm5AW57I,3171
61
+ synth_ai/environments/examples/enron/art_helpers/email_search_tools.py,sha256=bDiuxp8W5ZZEtM1vn1n0B0qxqBEqCwMwYDGHy93rBiQ,5545
62
+ synth_ai/environments/examples/enron/art_helpers/local_email_db.py,sha256=h3Q44pKs5pnz_on66bIFVhL4Ma5chdKzCDST_oYSQWA,9985
63
+ synth_ai/environments/examples/enron/art_helpers/types_enron.py,sha256=ZMpkH5bLmaCcm3OL_6FxzQxrgY9QI82LhC-W-a6T25o,734
64
+ synth_ai/environments/examples/minigrid/__init__.py,sha256=e7cd6mAcSiPbxtpVyDAGW9CE_sILNNF-BW8c2sJcSUc,1328
65
+ synth_ai/environments/examples/minigrid/engine.py,sha256=-PokRGnbzQarpF2mPfVW49auU7X_MMOyV1cGNmJA_Ng,22061
66
+ synth_ai/environments/examples/minigrid/environment.py,sha256=sRmxb4Ntm8B6ngzyQZTmQ9PR5KvXI4TzbKEBWrDIi5k,10490
67
+ synth_ai/environments/examples/minigrid/environment_mapping.py,sha256=N0JJ4Ako-sX-89nE9vCbPQIzVuhGpyy309Y_y7osNiA,7019
68
+ synth_ai/environments/examples/minigrid/puzzle_loader.py,sha256=fjLqZ_WW2Oc5F1zQM6SRS98pT2Tf04O3tkjFzI-svmc,14656
69
+ synth_ai/environments/examples/minigrid/taskset.py,sha256=k0XiC9bBV5te3NJpiMXUShBJ200X40zFDIQxv9EsOio,21305
70
+ synth_ai/environments/examples/nethack/__init__.py,sha256=viygo8pTUB891fGm_tb38s5thNcr17bLFffQdDOfiQ0,266
71
+ synth_ai/environments/examples/nethack/achievements.py,sha256=YKSYGPXSTva0hwI5Vom0qVEB5DX9rfSbVFUOSnSTTYA,12443
72
+ synth_ai/environments/examples/nethack/engine.py,sha256=7DPUA6w06vXrBpo_uqSZbm5IPxligXg0w_KbTDHy3y8,29957
73
+ synth_ai/environments/examples/nethack/environment.py,sha256=FBgjN2MxEoWrsKGBaNyx4NnU4v2_9YBhiffbY43LD1c,10042
74
+ synth_ai/environments/examples/nethack/taskset.py,sha256=VuRW1hGqtGycBYA6IDPLmr8Pevqg_-Ly-IM4b6vsFYk,11339
75
+ synth_ai/environments/examples/nethack/helpers/__init__.py,sha256=dvKHaTSS_zn2zLM09TvJsPotiwXgfYr_TiqLw1vAmAg,958
76
+ synth_ai/environments/examples/nethack/helpers/action_mapping.py,sha256=IzBWMxUHhYWf4a6sfH5gmSXb9OGCEFjKNTmWGcm0le0,9133
77
+ synth_ai/environments/examples/nethack/helpers/nle_wrapper.py,sha256=9EYtTXK8ITe9p871nuZ2P5Ua29cFChyPzO7g5R6_SZ8,15142
78
+ synth_ai/environments/examples/nethack/helpers/observation_utils.py,sha256=FlZUycZEtRTACq1rRIhIfUmOMCF-jVqRR1WSgWbAolM,12350
79
+ synth_ai/environments/examples/nethack/helpers/recording_wrapper.py,sha256=YJnwu-E72U7t4YIUr1__Chm_DyVQoDOtbNl61X_Kz0w,7447
80
+ synth_ai/environments/examples/nethack/helpers/trajectory_recorder.py,sha256=fpnCDmWnoVp5wyw3KoneS2B58pEBRxhNMTl1ggAuk6k,8988
81
+ synth_ai/environments/examples/nethack/helpers/visualization/replay_viewer.py,sha256=sqd-todPUhK2VogNcPAXLqtHE0ASw7ythTzYqVgSYRM,11902
82
+ synth_ai/environments/examples/nethack/helpers/visualization/visualizer.py,sha256=70reUQd5jk2Rs7hhX_NY8K4_zVxZObGmomPDYoVF2g4,14832
83
+ synth_ai/environments/examples/red/__init__.py,sha256=4uHc_oyMmFK9jllUs9BAY4mxMwt5_Q7sD7Meo8zuTa4,199
84
+ synth_ai/environments/examples/red/config_logging.py,sha256=jVjehrms140gnJ1aAaXK9oxRXqh8CuU23yGp4AZOh74,3710
85
+ synth_ai/environments/examples/red/engine.py,sha256=R8uVkQyd9VQe7LdIBzQjcRPRAhHsP3BW3iKwJfci73E,23836
86
+ synth_ai/environments/examples/red/environment.py,sha256=lhEYlWjmSGKZFfdD4_g0oA_E8VAFc_6ppyPXnL-JEao,9364
87
+ synth_ai/environments/examples/red/taskset.py,sha256=B7TjNjBscUDeWEXmNjJxvoNSGbwNzRqaxS0XUiOYgXg,2827
88
+ synth_ai/environments/examples/red/engine_helpers/__init__.py,sha256=YyNOk0TMWA_CI_EakcTMjbLJpkFKKRhJfVe792w-CXE,33
89
+ synth_ai/environments/examples/red/engine_helpers/memory_map.py,sha256=jOsBYaYYxUy2tz3L2pCoj7Y_3UdrViw6vNYdgbEZFDk,1193
90
+ synth_ai/environments/examples/red/engine_helpers/reward_components.py,sha256=zueBbdnERtim8LjgsGsSglowgqCx66F01NegHYqAscQ,9356
91
+ synth_ai/environments/examples/red/engine_helpers/screen_analysis.py,sha256=Z3MieifyTux37LATCRHYlcSsK8RX1Bc5tM3mKi4WXAo,12774
92
+ synth_ai/environments/examples/red/engine_helpers/state_extraction.py,sha256=klKNv5y_vURtPfFhwhNOLZ8qEGUjcfd5sCbNUB2etAU,4419
93
+ synth_ai/environments/examples/red/engine_helpers/reward_library/__init__.py,sha256=kVVAJLLrZqwlbcUIvxOdjaKGUUUnVV25LyCXzEfpoMk,4015
94
+ synth_ai/environments/examples/red/engine_helpers/reward_library/adaptive_rewards.py,sha256=-Wox3xUMfn_7flG3_PROl0209bVSTIgAMDqCxVR5grY,1891
95
+ synth_ai/environments/examples/red/engine_helpers/reward_library/battle_rewards.py,sha256=pXHjxQwRO5EFkKfFERdu0jCitC3xygPq236JkFEVcjM,10427
96
+ synth_ai/environments/examples/red/engine_helpers/reward_library/composite_rewards.py,sha256=wYvcnlGAT5cvAh-4kuZ_jYQAtwXUlSZ-k7Pr6s19RAA,5092
97
+ synth_ai/environments/examples/red/engine_helpers/reward_library/economy_rewards.py,sha256=8UpwTzQHOl0VqhjsWtb1SHbVxLmIGdjXzoUGl9LXoMc,5019
98
+ synth_ai/environments/examples/red/engine_helpers/reward_library/efficiency_rewards.py,sha256=Frkr6UE57dmA1WWaa9d933nK8TbbI07ucVC5bplM1ZQ,1818
99
+ synth_ai/environments/examples/red/engine_helpers/reward_library/exploration_rewards.py,sha256=1jKMphKjG_YJa7OKsEHLT3geBBHcrCYKi45tDOaCF-4,12392
100
+ synth_ai/environments/examples/red/engine_helpers/reward_library/novelty_rewards.py,sha256=ii6pZijxW5oDtQtPelWOoOKjNJ4NAoN9wtaDmOiyNCM,3612
101
+ synth_ai/environments/examples/red/engine_helpers/reward_library/pallet_town_rewards.py,sha256=8SaZP_76PIaXWs0bbmc2cwW2V0dz5XSXCzkHFB5ho9E,19890
102
+ synth_ai/environments/examples/red/engine_helpers/reward_library/pokemon_rewards.py,sha256=0WtJcdWtcjHD7Zk678KGZExZSlhd6nSmJ1JFzEYRe4o,10861
103
+ synth_ai/environments/examples/red/engine_helpers/reward_library/social_rewards.py,sha256=MjocMamUzUue6EgwGl1dd9nIUqA67mm1LgNN4L27p_c,5676
104
+ synth_ai/environments/examples/red/engine_helpers/reward_library/story_rewards.py,sha256=WOq39UtC7e0cTBQj88TIHwI6KatmR6UxhOKuJSS4SXI,8465
105
+ synth_ai/environments/examples/sokoban/__init__.py,sha256=Y5MpHrvlI9s5gEwlAJ0FM08bZpyC4QdnGWaTCyPQas8,35
106
+ synth_ai/environments/examples/sokoban/engine.py,sha256=e3jFsbrm3nr1u90aa3hXiCFoMs9dcyAq4xjRZWv2cA4,26354
107
+ synth_ai/environments/examples/sokoban/environment.py,sha256=Owy7ppk8X3FJoX2rIB4QVi9JmmkhBo9PpftzjJPInuM,9802
108
+ synth_ai/environments/examples/sokoban/generate_verified_puzzles.py,sha256=Wu1UMtUk_qk14LHHKSSkk108yuM9TFyhG1F9Dpi_Kk4,15511
109
+ synth_ai/environments/examples/sokoban/puzzle_loader.py,sha256=3FTMk_u6G9Ex1BBFsCxHDO5nTdENlSxM6BSIafXJ0_E,11498
110
+ synth_ai/environments/examples/sokoban/taskset.py,sha256=suFDtkh20_Fq-A-Oc3CtaLXhsOa2WQVZNPWafrdhikY,15506
111
+ synth_ai/environments/examples/sokoban/engine_helpers/__init__.py,sha256=ensyOUm01rMpYZPIoV012_v6vxnv95mwwi63hLJvwIw,29
112
+ synth_ai/environments/examples/sokoban/engine_helpers/room_utils.py,sha256=1qs8UmlqD-VKPXNvncqMG0X3ICF_LXif4BP5tUkJ-34,21758
113
+ synth_ai/environments/examples/sokoban/engine_helpers/vendored/__init__.py,sha256=aojjVMDT0WX5hhjt2sxTwDe4_BoS7ZogcFTz1andAq0,405
114
+ synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/__init__.py,sha256=9NnrZMdHGIqAqB2nJVOyxvbxElbZURt_LifmysF5CB8,134
115
+ synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/boxoban_env.py,sha256=St4GMPN2HtKd-Em9GXRq7Yjs9WaAizPBCKcvFbYuIHA,4134
116
+ synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/render_utils.py,sha256=oB2oEpusoTZDsq2-7MhUDS2zEWXICRGNFsMOlJahF_M,11375
117
+ synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/room_utils.py,sha256=Z9g8Q8RzHSHUVSkN_F29NSBFK-5k3BKLVPkvqM9lO64,10588
118
+ synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/sokoban_env.py,sha256=4F-tPHZAmaI1cIhPzVOAZQiKOOyL0s_5vmdlDaPqXu0,10382
119
+ synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/sokoban_env_fixed_targets.py,sha256=bFKXcif8NHNMzsDufD6Audws8ACVh_umL8myhkeEQdI,2552
120
+ synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/sokoban_env_pull.py,sha256=ZCEr6LoSxKvVQzbRGwRBN62RAQPP5jiLoNqI8c4Ij2Q,3808
121
+ synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/sokoban_env_two_player.py,sha256=99yZCBsbx3i5Wiuf786TiHQjq2tMEY0OKsOEa-obhXY,3763
122
+ synth_ai/environments/examples/sokoban/engine_helpers/vendored/envs/sokoban_env_variations.py,sha256=VKMXRVmVdIxfa0q_T5Dfll5HHadc5QHpktRQztEIxGs,15455
123
+ synth_ai/environments/examples/tictactoe/__init__.py,sha256=XGoOP8GEGXjG-TI_E_-3b1jOhpGNtl_LmR9G3K59Gig,31
124
+ synth_ai/environments/examples/tictactoe/engine.py,sha256=B2OYQ3TVi_c75BRy_zHIEWjcTSaO4vnZZQJTo6wFe7k,12430
125
+ synth_ai/environments/examples/tictactoe/environment.py,sha256=p_ZN5-AyYKUnIJ5Df46fXMlJZ6yRerkvXC9GA1W0Ht8,9336
126
+ synth_ai/environments/examples/tictactoe/taskset.py,sha256=q601JiFJXqJu9gjsvEXgYA8TkQ-u0pLZgzxHN7A4hBw,7812
127
+ synth_ai/environments/examples/verilog/__init__.py,sha256=JBf4ayWGO-VPK7PLitp_-jiKDi9gd3hhQ-PahNkiLJ0,262
128
+ synth_ai/environments/examples/verilog/engine.py,sha256=Vl-msE1hrtx1zSwy0p6Xq0nCgCo-AUHy2zkcJA715LA,12171
129
+ synth_ai/environments/examples/verilog/environment.py,sha256=UfdV8097c_oCtqoaL9TP7-J2nsYCz3tFQRdFoUW0pKA,12330
130
+ synth_ai/environments/examples/verilog/taskset.py,sha256=sJzLVjq3d4_gbmzKQPLJlFYBXIHonf8ybpB7HdZYdLo,13338
131
+ synth_ai/environments/examples/wordle/__init__.py,sha256=JksC4yMuWfnoO1nXS-bIrxRGPBL3AU93Kw4R1FYGj7E,804
132
+ synth_ai/environments/examples/wordle/engine.py,sha256=FyPczyaBCJHR5kM329w4fP4yDTKQl6uCw3F3iKj6fLI,13097
133
+ synth_ai/environments/examples/wordle/environment.py,sha256=bVQgDKX6l96unaY37cndf_8eBEiLJwvoPZ6DAgb5fQY,6378
134
+ synth_ai/environments/examples/wordle/taskset.py,sha256=E5EfE9cma_saVoUKmVkCL9FgYeKRnkpQDviZAkyuIoY,8236
135
+ synth_ai/environments/examples/wordle/helpers/generate_instances_wordfreq.py,sha256=QZmCX62GMfrR3U6VqzFth1C9nk7JL1JO7hpHcXUFrOw,2509
136
+ synth_ai/environments/reproducibility/core.py,sha256=jDhG1EARROJH7-Y7eKuMYdjbi4-t1QUbxddHbbG1Dxc,1499
137
+ synth_ai/environments/reproducibility/helpers.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
138
+ synth_ai/environments/reproducibility/tree.py,sha256=LMVTrKpPkBDjkZOfA5ptl3_n8JPc9GCnP49itPKL8zc,13703
139
+ synth_ai/environments/service/app.py,sha256=wS3xlqxEQmQ0uqMDTHvpXWE8FSIUPryixAIA_sX8iwI,2981
140
+ synth_ai/environments/service/core_routes.py,sha256=D3KMH6eIWxbcW0F8jIgdfYe7PF8Nb7kmKz1a9z0GwR8,38412
141
+ synth_ai/environments/service/external_registry.py,sha256=3PiWCsZr0PburC6K-IBjO9uHGVa-qnT0JHTFyyN4sZE,1765
142
+ synth_ai/environments/service/registry.py,sha256=R4bvjdEW1GtYJdZL4Vl9ogNCQc0iGCxmjs-NuzCo5f4,405
143
+ synth_ai/environments/stateful/__init__.py,sha256=UPNmotqxS2zXjSfhBui6R4qsDOIxKECL5xVTVDHcvsk,39
144
+ synth_ai/environments/stateful/core.py,sha256=hzQdicqHqffDUIBBEMz2eR5nt5M_zFV1s2mdlkvntMw,6377
145
+ synth_ai/environments/stateful/engine.py,sha256=aMzJS47T1asCOk2rZ6ourjiEneGehmLJwLexX3hpjbk,437
146
+ synth_ai/environments/stateful/state.py,sha256=UT-cZzXPtHYZccefQ8hgKbRl80UzriNBnXlIF_xEnVs,257
147
+ synth_ai/environments/tasks/api.py,sha256=cvfC8-aTHEkM22qnzx3_QI71kmIH3jDzkswb3y6M2FI,308
148
+ synth_ai/environments/tasks/core.py,sha256=lec-e94evJeGNdToqQPXbDVVj8SrGv3kd2aY0hFfZqw,1731
149
+ synth_ai/environments/tasks/filters.py,sha256=f4xSkyY90YvirhRZRo7dDU5T3XwzQ8Bw1Tqiuha9LBo,1376
150
+ synth_ai/environments/tasks/utils.py,sha256=ZyDCQmj9jVcVBCrxFR2es1o5eLr7SLJK8k2EdNknFzk,2608
151
+ synth_ai/environments/v0_observability/history.py,sha256=gW0SozHmxeL6PFNaTAQ7em8BNUlObsRpP4_MJ3drMBE,54
152
+ synth_ai/environments/v0_observability/log.py,sha256=B4LvbPh0a1_E5dki2PlKAVHESB8oCQz0CmDBvC0GwdQ,38
153
+ synth_ai/evals/base.py,sha256=EFupWBUxKIwvTvr4H29jX-LHWwAyIvNhzexHmG9w6QU,355
154
+ synth_ai/experimental/synth_oss.py,sha256=g9DQw3LqaDiVEcr-B49yg21M5Mus1HHId5-wMgJoK9Y,15636
155
+ synth_ai/inference/__init__.py,sha256=FMLFiLMfhZJlQERJCj641TtPqpiiJpaJQxxPFaFZ5jA,76
156
+ synth_ai/inference/client.py,sha256=zg2OXGxkURZihLONcm4jGTndlde7YDrORlE9uwGLFm8,711
157
+ synth_ai/jobs/client.py,sha256=wSSqzvIY_vmwG-CHeQYGoSsb-uOr0hDmE8ylNqNoQQQ,9498
158
+ synth_ai/learning/__init__.py,sha256=gBtKs-FtQYsqcYtpGvHQA3Ro-ezu1ILjoQAMTCJWFq0,743
159
+ synth_ai/learning/client.py,sha256=BtoSHkbUhBs6ALj4ylCNmJ7fyXMYMhrKzbeXhAKtkWY,6626
160
+ synth_ai/learning/config.py,sha256=-W1vsN08sKydgo3IEaaGVa45zrnMipm-rPRPE3WNhP8,1243
161
+ synth_ai/learning/constants.py,sha256=TnIEZrMpbPNpu7Zyk3bmyX3K2XGwWTwRuAUukxBYg64,538
162
+ synth_ai/learning/core.py,sha256=bA_Ng3YKeCJb1scnrSapp48HildL7Pd2fHkZ4zxurZU,440
163
+ synth_ai/learning/filtering.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
164
+ synth_ai/learning/ft_client.py,sha256=3kSiDHjea1wA8tZf2g7JOav-VtKpeYYTHh7OEBapfH8,2241
165
+ synth_ai/learning/gateway.py,sha256=8plVu9V_0PTt1ZI6awuh9wSFT4BqS-mLshaN77wGyDk,31
166
+ synth_ai/learning/health.py,sha256=YxvY0YY3nF_a_HO3IdL9gUj7dXcuVdGpnUEP0dUGMMo,1571
167
+ synth_ai/learning/jobs.py,sha256=5ShyHNJ1btpC7NY5coURTPl8X4V9fshTq2O-3figJEo,9692
168
+ synth_ai/learning/rl_client.py,sha256=feCYyFxC0iAXICSknG_W2fNrxr7CzUy4gLM3gfraszQ,11340
169
+ synth_ai/learning/sse.py,sha256=S0IxAB0SOSSliua-e8m2wilC84jEaNXM6TP4LElUWNU,1891
170
+ synth_ai/learning/validators.py,sha256=9p7Sqrh-NeFzyqNzsPZBSPQgOPsSlNAqqydtnVdNiWI,1823
171
+ synth_ai/learning/offline/dpo.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
172
+ synth_ai/learning/offline/providers.py,sha256=nrPYoOvns5ekC_o9FecWpV7MOtHR1sH-ldRpmrfMeGo,33
173
+ synth_ai/learning/offline/sft.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
174
+ synth_ai/learning/offline/shared.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
175
+ synth_ai/learning/online/grpo.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
176
+ synth_ai/learning/online/irft.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
177
+ synth_ai/learning/prompts/banking77_injection_eval.py,sha256=PFAfNC8OydKiC0Nr-DhPV0lwAgQBq5FoRkc5-xMUfzo,5704
178
+ synth_ai/learning/prompts/gepa.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
179
+ synth_ai/learning/prompts/hello_world_in_context_injection_ex.py,sha256=QCVggg3dbKDR8zi0Slx0tTEqZL7eMf6Y1qn05a6mUBE,9008
180
+ synth_ai/learning/prompts/mipro.py,sha256=--lTu7o9PBc0XDbu9R-sCFMPS9jdrjs0D2W6C2mvRy4,9560
181
+ synth_ai/learning/prompts/random_search.py,sha256=cL2sAT217So_rmWVGNbz8K-XD0nJbPjhuwaYJcci3Xg,8164
182
+ synth_ai/learning/prompts/run_mipro_banking77.py,sha256=7OwJ4E5xsKfqQL9gp09D47IuDY6qRUrL_dHkjHDBY3M,5337
183
+ synth_ai/learning/prompts/run_random_search_banking77.py,sha256=vdO-RnW_Yh0VViniW_PJqUXGz_ywERd90N_ldf0P4Hc,13578
184
+ synth_ai/lm/__init__.py,sha256=Yv8qzz_BxUvwmwRQcLquLU5uMudPtqYa93IY0q7PvDU,1142
185
+ synth_ai/lm/config.py,sha256=qsV-1w9WlSRju0hyDj8EI61N_jLwnCN3yhe-DLxkG-Y,3565
186
+ synth_ai/lm/constants.py,sha256=I7WRm8bRqH0mQQS0bbBysojzxdcvuJ77kJh81es8qZw,1227
187
+ synth_ai/lm/injection.py,sha256=pMWQSem8j_76cw5sMevcw54H6Kb3UG2uPSK-O64y8BU,2807
188
+ synth_ai/lm/overrides.py,sha256=-qsmSxDcXq9HoeiTU_Ox3YW9Xcb0-VMWddzQRZa5jX0,6887
189
+ synth_ai/lm/unified_interface.py,sha256=cHi90uhWoLq58jMNvNzd4xwbxR7JFK8QbF6pjKWHeIk,6436
190
+ synth_ai/lm/warmup.py,sha256=-h9H8PRPs6tiRIwhSTlfqaG4K5OQpVMBvxpd24Bst7Q,6740
191
+ synth_ai/lm/caching/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
192
+ synth_ai/lm/caching/constants.py,sha256=75etL2lff9oHv2xGitvTtxACS2ffuPECZc6RKiSX4DI,149
193
+ synth_ai/lm/caching/dbs.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
194
+ synth_ai/lm/caching/ephemeral.py,sha256=3uML-OEcb95UcfGwSedXkwQKpIqEJMegs0Zm5RTgT6w,3290
195
+ synth_ai/lm/caching/handler.py,sha256=vmW0ksarIqhS5AtYQ_bj2Cjm_0K0VOVhMv5vfwugf_U,4856
196
+ synth_ai/lm/caching/initialize.py,sha256=MG4DybeWkWDff76hLMdwWWniCDbZ1LpVXsYI4EX-caQ,405
197
+ synth_ai/lm/caching/persistent.py,sha256=j4b4biOnJwaUCMEAXU7KLKSbbpwB1aSlMlwhtmu9eWE,3806
198
+ synth_ai/lm/core/__init__.py,sha256=pFiA6qPyQu6e-KrZruL9A-soRlhSU4Vd_TmdqMzWaIU,136
199
+ synth_ai/lm/core/all.py,sha256=sRSuXgdXMrG46DbL7LeBA2g9PcnNgMKV0RhLkWecR1o,1765
200
+ synth_ai/lm/core/exceptions.py,sha256=YZ3dgwb--ZyLoa4gI9uDGkuWoGfh-TS4yFanSwQd-CM,98
201
+ synth_ai/lm/core/main.py,sha256=V1b-v8aySJwcilS_uziHyIVF-RUpOj8QK2_F828pHJ8,12801
202
+ synth_ai/lm/core/main_v3.py,sha256=TJQHZ0kg7B1jM6deZSF21gVM-u-X-zkr-Zs4GiGfxTw,24602
203
+ synth_ai/lm/core/synth_models.py,sha256=XEogTWiXbpyeznb0Px_WAkRUmKlT2WIS4nFrtnEm6-c,1646
204
+ synth_ai/lm/core/vendor_clients.py,sha256=yDJ4KxIP4sdxIaUkXJqF4G4_VS-47YA_OBQscj9v0B0,6890
205
+ synth_ai/lm/cost/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
206
+ synth_ai/lm/cost/monitor.py,sha256=DkeLUlrb7rGx3nZ04aADU9HXXu5mZTf_DBwT0xhzIv4,7
207
+ synth_ai/lm/cost/statefulness.py,sha256=SO-H9_R1_KL110z_ceRIJzH6n8D9gpx-R1-_mtO7pNI,37
208
+ synth_ai/lm/provider_support/__init__.py,sha256=dUyw3dK63eDvo6VmM4dol8ZGfyYk2V1vzQEAdZlZ8-s,225
209
+ synth_ai/lm/provider_support/anthropic.py,sha256=r1mnHd-NX65QZLqOSQqh980IUtYXqcT0D0LQHkn8F08,35515
210
+ synth_ai/lm/provider_support/openai.py,sha256=XLfmfoN_-8WwiIvhl1LjqVh5hvs7dh6_tloFmX_pmPY,40040
211
+ synth_ai/lm/provider_support/suppress_logging.py,sha256=CKk8yGVWUZT6YLqzALOf4PZ3WyqMC_DiUTx6vF9O0zo,1037
212
+ synth_ai/lm/structured_outputs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
213
+ synth_ai/lm/structured_outputs/handler.py,sha256=HMOsmvRdlrF09rkTXE-fT2xa36AeMMq7DcFCMV25XSE,17322
214
+ synth_ai/lm/structured_outputs/inject.py,sha256=gm9jo7zsAb4bYxovbxAzZWCxL-pc8dezsXYzwupMvas,11495
215
+ synth_ai/lm/structured_outputs/rehabilitate.py,sha256=glJ6ZMFIaHQg47ugMKzcTiIIktPUmD0V1GLr9mfUvwQ,7929
216
+ synth_ai/lm/tools/__init__.py,sha256=3JM5vqZqKloaeHaxuO49C8A_0qljys3pQ1yt70WKhho,51
217
+ synth_ai/lm/tools/base.py,sha256=sDiqopouPml_tEFKQXMZFl0M45JO-yJBWWjyaeAyV1Q,5722
218
+ synth_ai/lm/vendors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
219
+ synth_ai/lm/vendors/base.py,sha256=K9SmghoH_WoMtmx8Q1qrcKcj1VriWHrMm607tIUgNOI,2430
220
+ synth_ai/lm/vendors/openai_standard.py,sha256=ExZaaGc-No-xZ2kpVoyXEzh57tanDZbFFVJVpLLoG0Y,34039
221
+ synth_ai/lm/vendors/openai_standard_responses.py,sha256=iTmnXzLgeWQ_XfB8CtNMDdPRSPI97jccw4k5anhKLcg,10165
222
+ synth_ai/lm/vendors/retries.py,sha256=Ti72rZWoJsO7Kj6QtCMwmubX65AM-K4USf86zh-K3Go,565
223
+ synth_ai/lm/vendors/synth_client.py,sha256=F7VI5G02t1nerCE3QAxcsdn3byo98ifWfM7A_-fZNWo,27749
224
+ synth_ai/lm/vendors/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
225
+ synth_ai/lm/vendors/core/anthropic_api.py,sha256=mxJVF-uvSUOdbBRMmVfwBFCc7ntV5i_LNE5tQ2AxAbU,14986
226
+ synth_ai/lm/vendors/core/gemini_api.py,sha256=mHvQtRqoymuzsQDxNFgTDt4HsrgvIuVBSAE29QpRa34,11082
227
+ synth_ai/lm/vendors/core/mistral_api.py,sha256=4ggRg_4ajzZMBCb-0mHMX_ZTg10tteSfnIPE2NULFag,11875
228
+ synth_ai/lm/vendors/core/openai_api.py,sha256=7znI4-yFc0sI5z6eOckd-Ks-IJU66v9gCBzoLjSzY7A,8416
229
+ synth_ai/lm/vendors/core/synth_dev_api.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
230
+ synth_ai/lm/vendors/local/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
231
+ synth_ai/lm/vendors/local/ollama.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
232
+ synth_ai/lm/vendors/supported/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
233
+ synth_ai/lm/vendors/supported/custom_endpoint.py,sha256=dlJyb3d4c-ZIlCxBDsmBj8dtYBO8aoz1MxD8TuqmbG4,15314
234
+ synth_ai/lm/vendors/supported/deepseek.py,sha256=vTWdr0MYMsywhm2ajMzXOTTbgOcStT_P7xL8BDMcpNI,2329
235
+ synth_ai/lm/vendors/supported/grok.py,sha256=_dDUPhov6_T_nqCN3ygLuFiDeoSMcKGaztvfhPrR5UY,2226
236
+ synth_ai/lm/vendors/supported/groq.py,sha256=7W3kOg164C4R5zhDG6hb0IhaHDSz85xHc04uLz7umcQ,383
237
+ synth_ai/lm/vendors/supported/ollama.py,sha256=GMrDhKD0LJLk6wFwzEi4WCgreagkADC6WxcWZqBdGJ8,466
238
+ synth_ai/lm/vendors/supported/openrouter.py,sha256=N2slrvToudY8LIq8QHfHESm-IVo4GBriTAQF7RteO0E,2570
239
+ synth_ai/lm/vendors/supported/together.py,sha256=IFd6gJtfPuE_KLh51ywp1iIkvow_R26EHPcYXBnw8Vc,337
240
+ synth_ai/rl/__init__.py,sha256=MrO6d2ehaDpE7nWQdie13CtYbIvezms9IaVENPeymwE,724
241
+ synth_ai/rl/contracts.py,sha256=6LJUT2UWHWebkoMprbIgsycV9ET3qLY-3NN1v4bJacY,673
242
+ synth_ai/rl/env_keys.py,sha256=lb2kQwuk4zMXyTUnaVCAbYvIstiGznLCdx797rAsPFk,4960
243
+ synth_ai/rl/secrets.py,sha256=RJU7N0idDNhENHyG9uAStXJxRGQMQti45xpm5i3uUGc,586
244
+ synth_ai/scripts/verify_rewards.py,sha256=w1eFGi-H5It7J55Qyt5s1mPnSc4AldMmZ9roNzE0ulQ,3304
245
+ synth_ai/task/__init__.py,sha256=1mkw9Gfgg7eYKxgvJGHvffpGZmJG9xTNn7ESKhERDv0,253
246
+ synth_ai/task/contracts.py,sha256=-zzarbw-8XIBSbd9SPSU1UF0fYKuTFOweWh5yHrj9nk,3699
247
+ synth_ai/task/health.py,sha256=MItweOAtvYAVdhqDVaKJhRgvTOqgSLZylgY8m7YqVp8,985
248
+ synth_ai/task/validators.py,sha256=IGE9zTjHYXOehwakMkcOAaDLSaHw_0Tp8uzL2ydCZ9U,361
249
+ synth_ai/tracing/__init__.py,sha256=0Yy1YDMe_Duw976yu0HL1cbqPWdZEvtgEdtjDguNvcc,781
250
+ synth_ai/tracing_v1/__init__.py,sha256=uV6qf8_rJTxRx6tCsXvqnjHhA1mR0im2rANuh0McrHA,930
251
+ synth_ai/tracing_v3/__init__.py,sha256=9lKM-blbXo6Sk1oBpyYayjMVU43f9Y_35M1OvRynWoU,3251
252
+ synth_ai/tracing_v3/abstractions.py,sha256=FmVxWpRZAq5UmEmM-PjG-lFAT-1qgao7JGNh7AkU6b8,12368
253
+ synth_ai/tracing_v3/config.py,sha256=mPX2P4ILv1ktoI8oGKO_LyLc0O6Lnr2jbHA3QE-y6N0,3241
254
+ synth_ai/tracing_v3/db_config.py,sha256=9tG-0OC22bmpNHH4bz6pdb5a5JHgFzhav6p14POAqAQ,5827
255
+ synth_ai/tracing_v3/decorators.py,sha256=p8iXlNw7bIRC8-uG9doWMkDQiuJK5KSCm_awiifMjJw,13262
256
+ synth_ai/tracing_v3/hooks.py,sha256=iUKYY_I0abTSH_-Xe6Dfja7ff8xAhBVOU8AP2BEEcmA,7923
257
+ synth_ai/tracing_v3/llm_call_record_helpers.py,sha256=mqSQStFC02z9b7uoTO7FjgJfd8Kq1FWcBLi3k2lqRWs,12181
258
+ synth_ai/tracing_v3/lm_call_record_abstractions.py,sha256=j2RGuXVaV_EXmIosuXRDjptJSlrDXwb8x06k2fF6lqo,9195
259
+ synth_ai/tracing_v3/migration_helper.py,sha256=izm7SNHtG3VDv_5ZmMk_mmwKitmShxUK3joNFOArZIY,4177
260
+ synth_ai/tracing_v3/replica_sync.py,sha256=MoJRcMp6rZVC1QZF9EH2oUV70C7Br0N8DhEUZ9PeWks,8670
261
+ synth_ai/tracing_v3/session_tracer.py,sha256=_pNmKmoqUsnH410L5zDzC9_f804j_fOzTFSUTh782d0,16718
262
+ synth_ai/tracing_v3/utils.py,sha256=8fmysb6iHVaKtd7-ybFYC_hk2EnFh-wrywtHmdgx0ik,3409
263
+ synth_ai/tracing_v3/examples/basic_usage.py,sha256=wNpn8t0s0-2wusamBjn8WyyDUM_5Qz5_7TJuK4tSA98,7196
264
+ synth_ai/tracing_v3/storage/__init__.py,sha256=VPjBh180bcSPz1HsbqaqfnvguwqwomaEYKxkrhfGABY,332
265
+ synth_ai/tracing_v3/storage/base.py,sha256=6gzMy0wHnkPRK1gPWRQWZk5Q1EFhWtdcXHfuUP_F12E,3587
266
+ synth_ai/tracing_v3/storage/config.py,sha256=F20Vh5rBYtN9H2MFfVw9tQT8IjKmPsOtNfdcy1vIx8g,2077
267
+ synth_ai/tracing_v3/storage/exceptions.py,sha256=zqfsjb4r8qcZGlId0h9-x0RpJq2_DRDfdlzW6_KIRCw,708
268
+ synth_ai/tracing_v3/storage/factory.py,sha256=fztR3YxxFpRBFtRsJvvn5Gb7eNWfzMScX48cJiVIgos,1262
269
+ synth_ai/tracing_v3/storage/types.py,sha256=LevN8M12ilZ0EaiQ6Y3yONSMuLGEhSKNt0ir5wbVbek,613
270
+ synth_ai/tracing_v3/storage/utils.py,sha256=GTc0AYzuaCAwci6sg7UCgtMnluNIIUDbrBOJcP8LvmE,6056
271
+ synth_ai/tracing_v3/turso/__init__.py,sha256=MSvWojb9unyfLeTSaiVfw5T3dK72MzNQbvoCEZB9zag,414
272
+ synth_ai/tracing_v3/turso/daemon.py,sha256=RHcwab3pe3rbD8Ccl10_61KWgaieBv0fHVOsn9NkFfk,4334
273
+ synth_ai/tracing_v3/turso/manager.py,sha256=klWc5RHh5N_EGMse8yQCWjhY82lw87XKPq78QD8IBP8,31248
274
+ synth_ai/tracing_v3/turso/models.py,sha256=z_6UIq01RMpo1fHxbDrRQYU78tulWUPYSyp2edq9Q7M,16186
275
+ synth_ai/v0/tracing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
276
+ synth_ai/v0/tracing/abstractions.py,sha256=pL9XCf9UEWdX4IRizzRK9XUNBtDeBYfkVD51F8UOB0s,6898
277
+ synth_ai/v0/tracing/base_client.py,sha256=IZpyuM-GIClvBBFA9iv4tpOjzY1QHF1m7vkNCYk7xLo,2931
278
+ synth_ai/v0/tracing/client_manager.py,sha256=rDHpOClkf1t0_6cJecQtr9IaaRmEJOCQ8StaiHyXq1E,4512
279
+ synth_ai/v0/tracing/config.py,sha256=Rv_NWeYBFqxNdj_Pp7_EifdZUgFU00d81iE9MPqWU8k,3998
280
+ synth_ai/v0/tracing/context.py,sha256=QZRgMgSWMcmZtQ4WDA7eCJdIAKbgU85vWDM-aiRUpCE,5113
281
+ synth_ai/v0/tracing/decorators.py,sha256=WlpU6qfFBqg5W7uc6_l_sK0LKae4CJdcxXSlHUIr3po,30807
282
+ synth_ai/v0/tracing/immediate_client.py,sha256=M1J1zY9dC2u0Ta-xa6kK32mSa9g-va2Avu7hnB88tbo,6203
283
+ synth_ai/v0/tracing/local.py,sha256=sDNQ6ECVwZZkRlCC0_F33VOXuUUzZ1B0UVFBMKtN5R0,722
284
+ synth_ai/v0/tracing/log_client_base.py,sha256=Zl-dOknLd47xa-fh_3UBJkw1wF67uN1-4sm8N0Wl7CU,2297
285
+ synth_ai/v0/tracing/retry_queue.py,sha256=Crpt8ugbuxKfau3ioWt0jMJzsCafaxKPSC1X3gfPU34,6647
286
+ synth_ai/v0/tracing/trackers.py,sha256=I_5M9vAzFAsR_xKPGq_55yq2NkwztBZreMX8JhCK9UA,19005
287
+ synth_ai/v0/tracing/upload.py,sha256=orzoqYjfkBblTOE9lUIsSvCCDkM1hmVfVV9xRBNOdII,17343
288
+ synth_ai/v0/tracing/utils.py,sha256=FXoMW9qOIk8-2qv_7WpVK2UG3_0AAGwi6fQQJ5Eldqk,306
289
+ synth_ai/v0/tracing/events/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
290
+ synth_ai/v0/tracing/events/manage.py,sha256=ZDXXP-ZwLH9LCsmw7Ru9o55d7bl_diPtJV78_p7hhxQ,5956
291
+ synth_ai/v0/tracing/events/scope.py,sha256=BuBkhSpVHUJt8iGT9HJZF82rbb88mQcd2vM2shg-w2I,2550
292
+ synth_ai/v0/tracing/events/store.py,sha256=0342lvAcalyJbVEIzQFaPuMQGgwiFm7M5rE6gr-G0E8,9041
293
+ synth_ai/v0/tracing_v1/__init__.py,sha256=AHaSAzOMVAML9T_E4OrO2K9BheZDiKBUU3uyfGxIKxc,461
294
+ synth_ai/v0/tracing_v1/abstractions.py,sha256=pL9XCf9UEWdX4IRizzRK9XUNBtDeBYfkVD51F8UOB0s,6898
295
+ synth_ai/v0/tracing_v1/base_client.py,sha256=IZpyuM-GIClvBBFA9iv4tpOjzY1QHF1m7vkNCYk7xLo,2931
296
+ synth_ai/v0/tracing_v1/client_manager.py,sha256=rDHpOClkf1t0_6cJecQtr9IaaRmEJOCQ8StaiHyXq1E,4512
297
+ synth_ai/v0/tracing_v1/config.py,sha256=Rv_NWeYBFqxNdj_Pp7_EifdZUgFU00d81iE9MPqWU8k,3998
298
+ synth_ai/v0/tracing_v1/context.py,sha256=QZRgMgSWMcmZtQ4WDA7eCJdIAKbgU85vWDM-aiRUpCE,5113
299
+ synth_ai/v0/tracing_v1/decorators.py,sha256=iOTISzwBS9VT_leGzMroy_Et7ybHKRzlO-0_V0NBFT0,31660
300
+ synth_ai/v0/tracing_v1/immediate_client.py,sha256=M1J1zY9dC2u0Ta-xa6kK32mSa9g-va2Avu7hnB88tbo,6203
301
+ synth_ai/v0/tracing_v1/local.py,sha256=sDNQ6ECVwZZkRlCC0_F33VOXuUUzZ1B0UVFBMKtN5R0,722
302
+ synth_ai/v0/tracing_v1/log_client_base.py,sha256=Zl-dOknLd47xa-fh_3UBJkw1wF67uN1-4sm8N0Wl7CU,2297
303
+ synth_ai/v0/tracing_v1/retry_queue.py,sha256=P1XxTzZHBBPeFTHWSh_1oP5Byn4X3bNsXZqPc1rsu5U,6650
304
+ synth_ai/v0/tracing_v1/trackers.py,sha256=I_5M9vAzFAsR_xKPGq_55yq2NkwztBZreMX8JhCK9UA,19005
305
+ synth_ai/v0/tracing_v1/upload.py,sha256=_QvCvgNEUmxIpWik9C2y_7f_FBhY9XpgFPLO6zM-b3w,17980
306
+ synth_ai/v0/tracing_v1/utils.py,sha256=FXoMW9qOIk8-2qv_7WpVK2UG3_0AAGwi6fQQJ5Eldqk,306
307
+ synth_ai/v0/tracing_v1/events/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
308
+ synth_ai/v0/tracing_v1/events/manage.py,sha256=ZDXXP-ZwLH9LCsmw7Ru9o55d7bl_diPtJV78_p7hhxQ,5956
309
+ synth_ai/v0/tracing_v1/events/scope.py,sha256=BuBkhSpVHUJt8iGT9HJZF82rbb88mQcd2vM2shg-w2I,2550
310
+ synth_ai/v0/tracing_v1/events/store.py,sha256=0342lvAcalyJbVEIzQFaPuMQGgwiFm7M5rE6gr-G0E8,9041
311
+ synth_ai/zyk/__init__.py,sha256=htVLnzTYQ5rxzYpzSYBm7_o6uNKZ3pB_PrqkBrgTRS4,771
312
+ synth_ai-0.2.4.dev8.dist-info/licenses/LICENSE,sha256=ynhjRQUfqA_RdGRATApfFA_fBAy9cno04sLtLUqxVFM,1069
313
+ synth_ai-0.2.4.dev8.dist-info/METADATA,sha256=QXSSjKQqZTr1IOiV9xA9gwhvuvyttAw_fWEHU2IrTds,29293
314
+ synth_ai-0.2.4.dev8.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
315
+ synth_ai-0.2.4.dev8.dist-info/entry_points.txt,sha256=GSFXaJreq4PJXbixkUI0GHZwGh2dZDG5pYaoVmqr_KE,46
316
+ synth_ai-0.2.4.dev8.dist-info/top_level.txt,sha256=fBmtZyVHuKaGa29oHBaaUkrUIWTqSpoVMPiVdCDP3k8,9
317
+ synth_ai-0.2.4.dev8.dist-info/RECORD,,
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,165 +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
- from typing import Optional
9
- from synth_ai.tracing_v3.turso.manager import AsyncSQLTraceManager
10
- import pandas as pd
11
-
12
-
13
- async def list_experiments(db_url: str):
14
- """List all experiments in the database."""
15
- db = AsyncSQLTraceManager(db_url)
16
- await db.initialize()
17
-
18
- try:
19
- df = await db.query_traces("""
20
- SELECT
21
- e.experiment_id,
22
- e.name,
23
- e.description,
24
- e.created_at,
25
- COUNT(DISTINCT st.session_id) as num_sessions,
26
- COUNT(DISTINCT ev.id) as num_events,
27
- SUM(CASE WHEN ev.event_type = 'cais' THEN ev.cost_usd ELSE 0 END) / 100.0 as total_cost,
28
- SUM(CASE WHEN ev.event_type = 'cais' THEN ev.total_tokens ELSE 0 END) as total_tokens
29
- FROM experiments e
30
- LEFT JOIN session_traces st ON e.experiment_id = st.experiment_id
31
- LEFT JOIN events ev ON st.session_id = ev.session_id
32
- GROUP BY e.experiment_id, e.name, e.description, e.created_at
33
- ORDER BY e.created_at DESC
34
- """)
35
-
36
- if df.empty:
37
- print("No experiments found in database.")
38
- return
39
-
40
- print(f"\n{'=' * 100}")
41
- print(f"{'Experiments in ' + db_url:^100}")
42
- print(f"{'=' * 100}\n")
43
-
44
- for _, row in df.iterrows():
45
- print(f"🧪 {row['name']} (id: {row['experiment_id'][:8]}...)")
46
- print(f" Created: {row['created_at']}")
47
- print(f" Description: {row['description']}")
48
- print(f" Sessions: {row['num_sessions']}")
49
- print(f" Events: {row['num_events']:,}")
50
- if row["total_cost"] and row["total_cost"] > 0:
51
- print(f" Cost: ${row['total_cost']:.4f}")
52
- if row["total_tokens"] and row["total_tokens"] > 0:
53
- print(f" Tokens: {int(row['total_tokens']):,}")
54
- print()
55
- finally:
56
- await db.close()
57
-
58
-
59
- async def show_experiment_details(db_url: str, experiment_id: str):
60
- """Show detailed information about a specific experiment."""
61
- db = AsyncSQLTraceManager(db_url)
62
- await db.initialize()
63
-
64
- try:
65
- # Get experiment info
66
- exp_df = await db.query_traces(
67
- """
68
- SELECT * FROM experiments WHERE experiment_id LIKE :exp_id
69
- """,
70
- {"exp_id": f"{experiment_id}%"},
71
- )
72
-
73
- if exp_df.empty:
74
- print(f"No experiment found matching ID: {experiment_id}")
75
- return
76
-
77
- exp = exp_df.iloc[0]
78
- print(f"\n{'=' * 100}")
79
- print(f"Experiment: {exp['name']} ({exp['experiment_id']})")
80
- print(f"{'=' * 100}\n")
81
-
82
- # Get session statistics
83
- sessions_df = await db.get_sessions_by_experiment(exp["experiment_id"])
84
-
85
- if sessions_df:
86
- print(f"Sessions: {len(sessions_df)}")
87
-
88
- # Get aggregated stats
89
- stats_df = await db.query_traces(
90
- """
91
- SELECT
92
- COUNT(DISTINCT ev.id) as total_events,
93
- COUNT(DISTINCT m.id) as total_messages,
94
- SUM(CASE WHEN ev.event_type = 'cais' THEN ev.cost_usd ELSE 0 END) / 100.0 as total_cost,
95
- SUM(CASE WHEN ev.event_type = 'cais' THEN ev.total_tokens ELSE 0 END) as total_tokens
96
- FROM session_traces st
97
- LEFT JOIN events ev ON st.session_id = ev.session_id
98
- LEFT JOIN messages m ON st.session_id = m.session_id
99
- WHERE st.experiment_id = :exp_id
100
- """,
101
- {"exp_id": exp["experiment_id"]},
102
- )
103
-
104
- if not stats_df.empty:
105
- stats = stats_df.iloc[0]
106
- print(f"Total events: {int(stats['total_events']):,}")
107
- print(f"Total messages: {int(stats['total_messages']):,}")
108
- print(f"Total cost: ${stats['total_cost']:.4f}")
109
- print(f"Total tokens: {int(stats['total_tokens']):,}")
110
-
111
- # Show session list
112
- print("\nSession list:")
113
- for sess in sessions_df:
114
- print(f" - {sess['session_id']} ({sess['created_at']})")
115
- print(
116
- f" Timesteps: {sess['num_timesteps']}, Events: {sess['num_events']}, Messages: {sess['num_messages']}"
117
- )
118
- finally:
119
- await db.close()
120
-
121
-
122
- async def show_model_usage(db_url: str, model_name: Optional[str] = None):
123
- """Show model usage statistics."""
124
- db = AsyncSQLTraceManager(db_url)
125
- await db.initialize()
126
-
127
- try:
128
- df = await db.get_model_usage(model_name=model_name)
129
-
130
- if df.empty:
131
- print("No model usage data found.")
132
- return
133
-
134
- print(f"\n{'=' * 100}")
135
- print(f"{'Model Usage Statistics':^100}")
136
- print(f"{'=' * 100}\n")
137
-
138
- print(df.to_string(index=False))
139
- finally:
140
- await db.close()
141
-
142
-
143
- async def main():
144
- parser = argparse.ArgumentParser(description="Query experiments from Turso/sqld (v3)")
145
- parser.add_argument(
146
- "-u", "--url", default="sqlite+libsql://http://127.0.0.1:8080", help="Turso database URL"
147
- )
148
- parser.add_argument(
149
- "-e", "--experiment", help="Show details for specific experiment ID (can be partial)"
150
- )
151
- parser.add_argument("-m", "--model", help="Show usage for specific model")
152
- parser.add_argument("--usage", action="store_true", help="Show model usage statistics")
153
-
154
- args = parser.parse_args()
155
-
156
- if args.usage or args.model:
157
- await show_model_usage(args.url, args.model)
158
- elif args.experiment:
159
- await show_experiment_details(args.url, args.experiment)
160
- else:
161
- await list_experiments(args.url)
162
-
163
-
164
- if __name__ == "__main__":
165
- asyncio.run(main())