synth-ai 0.2.3__py3-none-any.whl → 0.2.4.dev2__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.
- synth_ai/compound/cais.py +0 -0
- synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/filter_traces_sft_turso.py +115 -1
- synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/test_crafter_react_agent_lm_synth.py +3 -3
- synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/test_crafter_react_agent_lm_synth_v2_backup.py +3 -3
- synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/run_rollouts_for_models_and_compare_v3.py +4 -4
- synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/test_crafter_react_agent_openai_v2_backup.py +3 -3
- synth_ai/environments/examples/crafter_classic/agent_demos/example_v3_usage.py +1 -1
- synth_ai/environments/examples/crafter_classic/environment.py +1 -1
- synth_ai/environments/examples/crafter_custom/environment.py +1 -1
- synth_ai/environments/service/core_routes.py +1 -1
- synth_ai/learning/prompts/mipro.py +8 -0
- synth_ai/lm/core/main_v3.py +219 -158
- synth_ai/tracing_v3/__init__.py +2 -2
- synth_ai/tracing_v3/abstractions.py +62 -17
- synth_ai/tracing_v3/hooks.py +1 -1
- synth_ai/tracing_v3/llm_call_record_helpers.py +350 -0
- synth_ai/tracing_v3/lm_call_record_abstractions.py +257 -0
- synth_ai/tracing_v3/session_tracer.py +5 -5
- synth_ai/tracing_v3/tests/test_concurrent_operations.py +1 -1
- synth_ai/tracing_v3/tests/test_llm_call_records.py +672 -0
- synth_ai/tracing_v3/tests/test_session_tracer.py +43 -9
- synth_ai/tracing_v3/tests/test_turso_manager.py +1 -1
- synth_ai/tracing_v3/turso/manager.py +10 -3
- synth_ai/tracing_v3/turso/models.py +1 -0
- {synth_ai-0.2.3.dist-info → synth_ai-0.2.4.dev2.dist-info}/METADATA +3 -2
- {synth_ai-0.2.3.dist-info → synth_ai-0.2.4.dev2.dist-info}/RECORD +30 -26
- {synth_ai-0.2.3.dist-info → synth_ai-0.2.4.dev2.dist-info}/WHEEL +0 -0
- {synth_ai-0.2.3.dist-info → synth_ai-0.2.4.dev2.dist-info}/entry_points.txt +0 -0
- {synth_ai-0.2.3.dist-info → synth_ai-0.2.4.dev2.dist-info}/licenses/LICENSE +0 -0
- {synth_ai-0.2.3.dist-info → synth_ai-0.2.4.dev2.dist-info}/top_level.txt +0 -0
@@ -12,6 +12,7 @@ import time
|
|
12
12
|
|
13
13
|
from synth_ai.tracing_v3.session_tracer import SessionTracer
|
14
14
|
from synth_ai.tracing_v3.abstractions import RuntimeEvent, EnvironmentEvent, LMCAISEvent, TimeRecord
|
15
|
+
from synth_ai.tracing_v3.lm_call_record_abstractions import LLMCallRecord, LLMUsage, LLMMessage, LLMContentPart
|
15
16
|
from synth_ai.tracing_v3.hooks import HookManager
|
16
17
|
from synth_ai.tracing_v3.decorators import get_session_id, SessionContext
|
17
18
|
|
@@ -49,8 +50,8 @@ class TestSessionTracer:
|
|
49
50
|
|
50
51
|
# Record message
|
51
52
|
await tracer.record_message(content="Test message", message_type="user")
|
52
|
-
assert len(tracer.current_session.
|
53
|
-
assert len(tracer.current_step.
|
53
|
+
assert len(tracer.current_session.markov_blanket_message_history) == 1
|
54
|
+
assert len(tracer.current_step.markov_blanket_messages) == 1
|
54
55
|
|
55
56
|
# End timestep
|
56
57
|
await tracer.end_timestep()
|
@@ -123,7 +124,7 @@ class TestSessionTracer:
|
|
123
124
|
|
124
125
|
assert len(trace.session_time_steps) == 3
|
125
126
|
assert len(trace.event_history) == 3
|
126
|
-
assert len(trace.
|
127
|
+
assert len(trace.markov_blanket_message_history) == 3
|
127
128
|
|
128
129
|
# Verify step indices
|
129
130
|
for i, step in enumerate(trace.session_time_steps):
|
@@ -225,8 +226,8 @@ class TestSessionTracer:
|
|
225
226
|
await tracer1.record_message("Tracer 1 message", "user")
|
226
227
|
|
227
228
|
# Verify isolation
|
228
|
-
assert len(tracer1.current_session.
|
229
|
-
assert len(tracer2.current_session.
|
229
|
+
assert len(tracer1.current_session.markov_blanket_message_history) == 1
|
230
|
+
assert len(tracer2.current_session.markov_blanket_message_history) == 0
|
230
231
|
|
231
232
|
await tracer1.end_session(save=False)
|
232
233
|
await tracer2.end_session(save=False)
|
@@ -242,7 +243,7 @@ class TestSessionTracer:
|
|
242
243
|
|
243
244
|
# Should complete without errors
|
244
245
|
assert trace is not None
|
245
|
-
assert len(trace.
|
246
|
+
assert len(trace.markov_blanket_message_history) == 1
|
246
247
|
|
247
248
|
async def test_session_context_variables(self):
|
248
249
|
"""Test session context variables."""
|
@@ -296,16 +297,45 @@ class TestSessionTracer:
|
|
296
297
|
)
|
297
298
|
await tracer.record_event(env_event)
|
298
299
|
|
299
|
-
# LM CAIS event
|
300
|
+
# LM CAIS event with call_records (new pattern)
|
301
|
+
import uuid
|
302
|
+
call_record = LLMCallRecord(
|
303
|
+
call_id=str(uuid.uuid4()),
|
304
|
+
api_type="chat_completions",
|
305
|
+
provider="openai",
|
306
|
+
model_name="gpt-4",
|
307
|
+
usage=LLMUsage(
|
308
|
+
input_tokens=100,
|
309
|
+
output_tokens=50,
|
310
|
+
total_tokens=150,
|
311
|
+
cost_usd=0.003
|
312
|
+
),
|
313
|
+
input_messages=[
|
314
|
+
LLMMessage(
|
315
|
+
role="user",
|
316
|
+
parts=[LLMContentPart(type="text", text="Test prompt")]
|
317
|
+
)
|
318
|
+
],
|
319
|
+
output_messages=[
|
320
|
+
LLMMessage(
|
321
|
+
role="assistant",
|
322
|
+
parts=[LLMContentPart(type="text", text="Test response")]
|
323
|
+
)
|
324
|
+
],
|
325
|
+
latency_ms=500
|
326
|
+
)
|
327
|
+
|
300
328
|
lm_event = LMCAISEvent(
|
301
329
|
system_instance_id="llm",
|
302
330
|
time_record=TimeRecord(event_time=time.time()),
|
303
|
-
|
331
|
+
# Aggregates at event level
|
304
332
|
input_tokens=100,
|
305
333
|
output_tokens=50,
|
306
334
|
total_tokens=150,
|
307
335
|
cost_usd=0.003,
|
308
336
|
latency_ms=500,
|
337
|
+
# Store the call record
|
338
|
+
call_records=[call_record]
|
309
339
|
)
|
310
340
|
await tracer.record_event(lm_event)
|
311
341
|
|
@@ -320,7 +350,11 @@ class TestSessionTracer:
|
|
320
350
|
# Verify metadata
|
321
351
|
assert trace.event_history[0].metadata["type"] == "runtime"
|
322
352
|
assert trace.event_history[1].reward == 0.5
|
323
|
-
|
353
|
+
# Verify new call_records structure
|
354
|
+
lm_event_from_trace = trace.event_history[2]
|
355
|
+
assert len(lm_event_from_trace.call_records) == 1
|
356
|
+
assert lm_event_from_trace.call_records[0].model_name == "gpt-4"
|
357
|
+
assert lm_event_from_trace.call_records[0].usage.total_tokens == 150
|
324
358
|
|
325
359
|
async def test_concurrent_timesteps_same_session(self):
|
326
360
|
"""Test that timesteps within a session are sequential, not concurrent."""
|
@@ -18,7 +18,7 @@ import pandas as pd
|
|
18
18
|
from synth_ai.tracing_v3.turso.manager import AsyncSQLTraceManager
|
19
19
|
from synth_ai.tracing_v3.session_tracer import SessionTracer
|
20
20
|
from synth_ai.tracing_v3.abstractions import (
|
21
|
-
|
21
|
+
SessionEventMarkovBlanketMessage,
|
22
22
|
TimeRecord,
|
23
23
|
RuntimeEvent,
|
24
24
|
EnvironmentEvent,
|
@@ -223,7 +223,7 @@ class AsyncSQLTraceManager:
|
|
223
223
|
created_at=trace.created_at,
|
224
224
|
num_timesteps=len(trace.session_time_steps),
|
225
225
|
num_events=len(trace.event_history),
|
226
|
-
num_messages=len(trace.
|
226
|
+
num_messages=len(trace.markov_blanket_message_history),
|
227
227
|
session_metadata=trace.metadata or {},
|
228
228
|
)
|
229
229
|
sess.add(db_session)
|
@@ -242,7 +242,7 @@ class AsyncSQLTraceManager:
|
|
242
242
|
started_at=step.timestamp,
|
243
243
|
completed_at=step.completed_at,
|
244
244
|
num_events=len(step.events),
|
245
|
-
num_messages=len(step.
|
245
|
+
num_messages=len(step.markov_blanket_messages),
|
246
246
|
step_metadata=step.step_metadata or {},
|
247
247
|
)
|
248
248
|
sess.add(db_step)
|
@@ -266,6 +266,12 @@ class AsyncSQLTraceManager:
|
|
266
266
|
}
|
267
267
|
|
268
268
|
if isinstance(event, LMCAISEvent):
|
269
|
+
# Serialize call_records if present
|
270
|
+
call_records_data = None
|
271
|
+
if event.call_records:
|
272
|
+
from dataclasses import asdict
|
273
|
+
call_records_data = [asdict(record) for record in event.call_records]
|
274
|
+
|
269
275
|
event_data.update(
|
270
276
|
{
|
271
277
|
"event_type": "cais",
|
@@ -280,6 +286,7 @@ class AsyncSQLTraceManager:
|
|
280
286
|
"trace_id": event.trace_id,
|
281
287
|
"system_state_before": event.system_state_before,
|
282
288
|
"system_state_after": event.system_state_after,
|
289
|
+
"call_records": call_records_data, # Store in the proper column
|
283
290
|
}
|
284
291
|
)
|
285
292
|
elif isinstance(event, EnvironmentEvent):
|
@@ -307,7 +314,7 @@ class AsyncSQLTraceManager:
|
|
307
314
|
sess.add(db_event)
|
308
315
|
|
309
316
|
# Insert messages
|
310
|
-
for msg in trace.
|
317
|
+
for msg in trace.markov_blanket_message_history:
|
311
318
|
db_msg = DBMessage(
|
312
319
|
session_id=trace.session_id,
|
313
320
|
timestep_id=step_id_map.get(msg.metadata.get("step_id"))
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: synth-ai
|
3
|
-
Version: 0.2.
|
3
|
+
Version: 0.2.4.dev2
|
4
4
|
Summary: Software for aiding the best and multiplying the will - Core AI functionality and tracing
|
5
5
|
Author-email: Synth AI <josh@usesynth.ai>
|
6
6
|
License-Expression: MIT
|
@@ -85,7 +85,7 @@ Modern Compound AI System Development
|
|
85
85
|
|
86
86
|
[](https://www.python.org/)
|
87
87
|
[](LICENSE)
|
88
|
-
[](https://pypi.org/project/synth-ai/)
|
89
89
|

|
90
90
|

|
91
91
|
|
@@ -189,6 +189,7 @@ Notes:
|
|
189
189
|
- `export LEARNING_V2_BASE_URL="http://localhost:8000/api"` (or your proxy)
|
190
190
|
- `export SYNTH_API_KEY="sk_live_..."`
|
191
191
|
- v3 trace data is stored under `traces/v3/synth_ai.db/` by default. Inspect with `uvx synth-ai traces`.
|
192
|
+
- LM tracing: all model calls (prompts, outputs, tool calls, token usage, latency, cost) are automatically captured via v3 tracing and stored locally; inspect with `uvx synth-ai traces`.
|
192
193
|
|
193
194
|
### One-Command Demos
|
194
195
|
|
@@ -12,6 +12,7 @@ synth_ai/cli/root.py,sha256=kcBcpBzfIIJjvDSllQ6mNYsx4zD6uE-ZMrwN8E2PiKs,6817
|
|
12
12
|
synth_ai/cli/status.py,sha256=ANQDpgeWzlhuM8sitP2Iza1qFxDy87giuTsxmQ8XsQA,4463
|
13
13
|
synth_ai/cli/traces.py,sha256=NtlWm25ceF5UAJ_RoINoJScX0utryS7Zom2AAelsBpI,5924
|
14
14
|
synth_ai/cli/watch.py,sha256=_KBI9fVvhX-cqGHKk55g3lOKQfwRyLuspHUnj8qC86A,17867
|
15
|
+
synth_ai/compound/cais.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
15
16
|
synth_ai/config/base_url.py,sha256=yvbVL_Rpo_G8eHFr2OqGM6y6m10aN9847kovwhBIeJg,1320
|
16
17
|
synth_ai/core/experiment.py,sha256=2n0CpmCjiRoIxejn9QP_0La-r7waBJTN17CP5gbgar4,260
|
17
18
|
synth_ai/core/system.py,sha256=s-Z7np2ISYmYc1r9YN-y2yb3cgRlOalrh0iaqnxeo84,206
|
@@ -36,7 +37,7 @@ synth_ai/environments/examples/crafter_classic/debug_translation.py,sha256=47DEQ
|
|
36
37
|
synth_ai/environments/examples/crafter_classic/engine.py,sha256=Nvp3aSd2Qqby6eJOPH1bLXuk-rU6EuUC-HEs8d-D-sY,25046
|
37
38
|
synth_ai/environments/examples/crafter_classic/engine_deterministic_patch.py,sha256=Jhn4dtLypG4-eLMsHxesagVTGJtzoGF6UssEfblEJYE,2801
|
38
39
|
synth_ai/environments/examples/crafter_classic/engine_serialization_patch_v3.py,sha256=E7EA1IODxeb8Fq6uV15pL5HFuv4q-KTwnmRGqweuM34,11126
|
39
|
-
synth_ai/environments/examples/crafter_classic/environment.py,sha256=
|
40
|
+
synth_ai/environments/examples/crafter_classic/environment.py,sha256=6Us77M0AhVOrBwZoaZesxC4QXC6q1tmVphga2BZvVv4,17218
|
40
41
|
synth_ai/environments/examples/crafter_classic/taskset.py,sha256=Jg3BgGetBjFor6MT3Fsx8BrrNRcS-RsffvusZsmi7v0,9843
|
41
42
|
synth_ai/environments/examples/crafter_classic/trace_hooks_v3.py,sha256=OuP_pm565jRIFc4AzzEAa7jrIvm0E4B5EAv6GnQWGzw,7195
|
42
43
|
synth_ai/environments/examples/crafter_classic/world_config_patch_simple.py,sha256=hrWo6OweT1Cyrck9YVP4TtxGdHmezbvITRTrhibWieo,10165
|
@@ -48,16 +49,16 @@ synth_ai/environments/examples/crafter_classic/agent_demos/crafter_evaluation_fr
|
|
48
49
|
synth_ai/environments/examples/crafter_classic/agent_demos/crafter_quick_evaluation.py,sha256=rVfNtcgvJwPmYFFIfHhptsSbgKYlcTKhdFkvNkJoxyQ,1459
|
49
50
|
synth_ai/environments/examples/crafter_classic/agent_demos/crafter_react_agent.py,sha256=16oWOO_o1FyLp4nLGfHled07CS7-VqqwXJeq5iA4Qbw,34453
|
50
51
|
synth_ai/environments/examples/crafter_classic/agent_demos/crafter_trace_evaluation.py,sha256=ig8_pJcDUeIqMKTurnv5-4KfhSPewWxJ1tF8J9nhyEo,46735
|
51
|
-
synth_ai/environments/examples/crafter_classic/agent_demos/example_v3_usage.py,sha256=
|
52
|
+
synth_ai/environments/examples/crafter_classic/agent_demos/example_v3_usage.py,sha256=4K4ixPl8nYR-mjhhxmV9n3PXbYvBY3UQlkOu45ZER38,6904
|
52
53
|
synth_ai/environments/examples/crafter_classic/agent_demos/test_crafter_react_agent.py,sha256=CHQE_pH-H-uXQ_c3oBFmT9WV5E2_dotjXt6a-DtLhNo,45590
|
53
54
|
synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/crafter_synth_config.toml,sha256=xUAL54kT5ThnZPmMQI0eGWXoVe8Gn1_imnB0-DMOlo4,1104
|
54
55
|
synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/filter_config_modal.toml,sha256=Hws5eQUBSG00w825BgBgQDrUeuOq2KXwUsnDrkOC-2g,748
|
55
56
|
synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/filter_traces_sft_duckdb_v2_backup.py,sha256=dGPfneZHib03d7CcEUF6XD9DJ20AubQ0d5Dx_ta7Pds,14361
|
56
|
-
synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/filter_traces_sft_turso.py,sha256=
|
57
|
+
synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/filter_traces_sft_turso.py,sha256=2k-ydq_nJbWl0afuBKfGzYjSyLE-6Rd0P0WLjz_j7UE,29316
|
57
58
|
synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/kick_off_ft_modal.py,sha256=plMiWNSsJQV2kr_8UztLJyadJlgtghxQmpcDrGv_Vf4,15268
|
58
59
|
synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/kick_off_ft_synth.py,sha256=8u8w2tv8Jdl-2T2HXaDUxm2RTPHg6scd2AkT7eI40o8,1287
|
59
|
-
synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/test_crafter_react_agent_lm_synth.py,sha256=
|
60
|
-
synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/test_crafter_react_agent_lm_synth_v2_backup.py,sha256=
|
60
|
+
synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/test_crafter_react_agent_lm_synth.py,sha256=D2wTo9LNZq4z8oSh5arOz689pQUmNKQENlf-zJJN9x4,76588
|
61
|
+
synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/test_crafter_react_agent_lm_synth_v2_backup.py,sha256=06OJXW0TmmnPo7HYiQw3oTfEEavxCCQPSCJFE0YKmgc,56290
|
61
62
|
synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/analyze_action_results.py,sha256=6n2xKD8VBFn5EKrtFNYQgR9nSxfK6jcpavrGnUgi4Eo,1550
|
62
63
|
synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/analyze_agent_actions.py,sha256=eUoPNPE2hMUhDTOkYJyLWeJCOrpQfEc5GtcgedUczKk,6302
|
63
64
|
synth_ai/environments/examples/crafter_classic/agent_demos/crafter_modal_ft/old/analyze_latest_run.py,sha256=tyvqPirMsLTHS0PwONv5Xaogc8hrQb7uSyjcTfk5hZk,8922
|
@@ -78,8 +79,8 @@ synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/fil
|
|
78
79
|
synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/kick_off_ft_oai.py,sha256=ZQh9vpIUdB3DGH0SMjBBznPuCOSlausr07Eij3aHZyQ,13521
|
79
80
|
synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/multi_model_config.toml,sha256=_7KIJo1TPwN0wia_TfJYX1azav56YEZxVyTp2vC3Dt4,1063
|
80
81
|
synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/run_rollouts_for_models_and_compare_v2_backup.py,sha256=yg93UMMq51EOKHkmf9EdtfOappFJKQdtMFwOgFXo86U,57598
|
81
|
-
synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/run_rollouts_for_models_and_compare_v3.py,sha256=
|
82
|
-
synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/test_crafter_react_agent_openai_v2_backup.py,sha256=
|
82
|
+
synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/run_rollouts_for_models_and_compare_v3.py,sha256=IYISpqgZiR0PomUWoVBcg6uveGQjI-vmGXAUNDgPgBc,38426
|
83
|
+
synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/test_crafter_react_agent_openai_v2_backup.py,sha256=bdL-90W-BGq1ckGj-qhXBr12TD-clgANISBC_n-Oagk,111873
|
83
84
|
synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/analyze_enhanced_hooks.py,sha256=vbyJZ-YonMXLrSFegQ1JZIYRPza6BLvCqQmFzAQuu64,12387
|
84
85
|
synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/analyze_hook_events.py,sha256=Jdmm3N6nPBjbwn0PkHb-YKY32_sS6YIKC6qz2WgCicw,3401
|
85
86
|
synth_ai/environments/examples/crafter_classic/agent_demos/crafter_openai_ft/old/analyze_hook_results.py,sha256=UCV_XZt2xmUdLM0x5pg_fw2lZGcwep86mRbMwJeD31o,8816
|
@@ -677,7 +678,7 @@ synth_ai/environments/examples/crafter_classic/old/trace_hooks.py,sha256=TgMbJh8
|
|
677
678
|
synth_ai/environments/examples/crafter_classic/old/world_config_patch.py,sha256=o5pSN2r_0utFbFNjrLkxB09-zBM8N3yt1_feMwHfGFE,22066
|
678
679
|
synth_ai/environments/examples/crafter_custom/__init__.py,sha256=139ewayoaO3Oxr-vG-1hxI89urYr1Dsy35JEeJEdvj0,190
|
679
680
|
synth_ai/environments/examples/crafter_custom/dataset_builder.py,sha256=QHoP45shr9kFvCjf0ta0aHPuVq9R6rU9MP1ZE1wk4L0,12956
|
680
|
-
synth_ai/environments/examples/crafter_custom/environment.py,sha256=
|
681
|
+
synth_ai/environments/examples/crafter_custom/environment.py,sha256=9RswjKlVa2NwSELqYuvqxeZnW9O3eOVClMKDmdVV0m0,14784
|
681
682
|
synth_ai/environments/examples/crafter_custom/run_dataset.py,sha256=DmyxqebahMcnUDLgTCQdprfHYzFXKho17U6ypbobuQs,9959
|
682
683
|
synth_ai/environments/examples/crafter_custom/agent_demos/__init__.py,sha256=IiyZdN_DdRxej8kqTeZ3ko5HbqjUY56BlnkatI5KZe4,59
|
683
684
|
synth_ai/environments/examples/crafter_custom/agent_demos/trace_eval.py,sha256=U0GdxlPVg2ljRHY_UVHBGk2cnQF3PpZIjKSL39jeI0o,7127
|
@@ -883,7 +884,7 @@ synth_ai/environments/reproducibility/core.py,sha256=y4__bivu_tdyIas509oK2EH9KUd
|
|
883
884
|
synth_ai/environments/reproducibility/helpers.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
884
885
|
synth_ai/environments/reproducibility/tree.py,sha256=bl0lfIjrJGxMNmcWs75uPBwurgd1ENjN_mI5RHfrANY,13743
|
885
886
|
synth_ai/environments/service/app.py,sha256=KoouFEIOHQFSfP1CfiS756VTK6ActRG-jZ1v6xrVq0U,2637
|
886
|
-
synth_ai/environments/service/core_routes.py,sha256=
|
887
|
+
synth_ai/environments/service/core_routes.py,sha256=vblHFC5ibOyCkLRmTusOXmJnrXBty_FStqVVMTsl-_w,37226
|
887
888
|
synth_ai/environments/service/external_registry.py,sha256=x7Qgbw83-1xcN69J337UHm4xPpWc5B0KUZrNUFtutLE,1795
|
888
889
|
synth_ai/environments/service/registry.py,sha256=Ex9c3ZwfZ-oW9nGz7bwCj1GNzvu78Z54rwufjKhsnMg,405
|
889
890
|
synth_ai/environments/stateful/__init__.py,sha256=UPNmotqxS2zXjSfhBui6R4qsDOIxKECL5xVTVDHcvsk,39
|
@@ -908,7 +909,7 @@ synth_ai/learning/offline/shared.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG
|
|
908
909
|
synth_ai/learning/online/grpo.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
909
910
|
synth_ai/learning/online/irft.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
910
911
|
synth_ai/learning/prompts/gepa.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
911
|
-
synth_ai/learning/prompts/mipro.py,sha256=
|
912
|
+
synth_ai/learning/prompts/mipro.py,sha256=nIw7v6t3DXA8MbmPFQTxKbpFhMa1ocMmWLtxhfONwoc,51
|
912
913
|
synth_ai/lm/__init__.py,sha256=aylYW_xWcQlRppFNfys7VtkNICMyYe6FMZmjVRN_BmM,1142
|
913
914
|
synth_ai/lm/config.py,sha256=LW5QG-U2heRdvXQ9qi5NWExOF8yprQi-cCo817nf28g,3604
|
914
915
|
synth_ai/lm/constants.py,sha256=ToYCu-ZeHgbb7VIRpDcCDV2D668P4UEHOKXM7urkp08,1248
|
@@ -925,7 +926,7 @@ synth_ai/lm/core/__init__.py,sha256=pFiA6qPyQu6e-KrZruL9A-soRlhSU4Vd_TmdqMzWaIU,
|
|
925
926
|
synth_ai/lm/core/all.py,sha256=AQGBbOqNvx0GhckR1rPl52gOp1PeH5I1GWEYynabtME,1518
|
926
927
|
synth_ai/lm/core/exceptions.py,sha256=K0BVdAzxVIchsvYZAaHEH1GAWBZvpxhFi-SPcJOjyPQ,205
|
927
928
|
synth_ai/lm/core/main.py,sha256=eqWhAnxQfSW8ZzgrPJWSJvnVjgpV-UOrG0CWf-79etU,13163
|
928
|
-
synth_ai/lm/core/main_v3.py,sha256=
|
929
|
+
synth_ai/lm/core/main_v3.py,sha256=V59VW0mSaPDyzb3_4damsgPk5Hrw1ylhV0jynDGGvzI,23815
|
929
930
|
synth_ai/lm/core/vendor_clients.py,sha256=2l-uF1kPbvYSdPMFY7jaqaBxRTS9TpOv1d-zL0bLRq4,6606
|
930
931
|
synth_ai/lm/cost/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
931
932
|
synth_ai/lm/cost/monitor.py,sha256=DkeLUlrb7rGx3nZ04aADU9HXXu5mZTf_DBwT0xhzIv4,7
|
@@ -964,15 +965,17 @@ synth_ai/lm/vendors/supported/openrouter.py,sha256=CCL3dYR9VQkZMoRBuPKWVA1cSk3_T
|
|
964
965
|
synth_ai/lm/vendors/supported/together.py,sha256=IFd6gJtfPuE_KLh51ywp1iIkvow_R26EHPcYXBnw8Vc,337
|
965
966
|
synth_ai/tracing/__init__.py,sha256=AFaclnZ3w2dLEPUKixEw04qAiviqlKzfiZm2vQvzDE8,726
|
966
967
|
synth_ai/tracing_v1/__init__.py,sha256=gjO9NpuiFo14zzLG1LBUYioWT6X0TyKSjcbUD0E_xFs,916
|
967
|
-
synth_ai/tracing_v3/__init__.py,sha256=
|
968
|
-
synth_ai/tracing_v3/abstractions.py,sha256=
|
968
|
+
synth_ai/tracing_v3/__init__.py,sha256=vEJ_PeQdf-uL8R48kwpA5mIC_At064T5hbjHQY-6ABw,3260
|
969
|
+
synth_ai/tracing_v3/abstractions.py,sha256=ivN58m0bR6MzL7KxuAeSbMBquVzkZvV7opAqSGBkYgQ,12509
|
969
970
|
synth_ai/tracing_v3/config.py,sha256=7-_4gA1b1u0A2Z4I2SaS-yauoe_GUXzOm0ZEDD_Mqcw,3227
|
970
971
|
synth_ai/tracing_v3/db_config.py,sha256=ntW_cxeoodmP1L9w5xGoFl3oP_YfT-_ZRAY5MAmVNno,5889
|
971
972
|
synth_ai/tracing_v3/decorators.py,sha256=bzaGIl3IP0noKVzUb9k60_vr7I-eecMF4hzSqcpuTLg,13372
|
972
|
-
synth_ai/tracing_v3/hooks.py,sha256=
|
973
|
+
synth_ai/tracing_v3/hooks.py,sha256=YFPbY7t-dHOOCZVF6eaRNZqR1bbNcdm2tpPGK5g_P8I,7988
|
974
|
+
synth_ai/tracing_v3/llm_call_record_helpers.py,sha256=DcIJbeVBU9OUcXjGW4Cun_XIkP-XARgkTVHom06-vHc,12453
|
975
|
+
synth_ai/tracing_v3/lm_call_record_abstractions.py,sha256=Wdg116VMKEWvpenHcbJfDN4cX6kkFiP6qtLId8lgtT0,9210
|
973
976
|
synth_ai/tracing_v3/migration_helper.py,sha256=q6G4v3UKJAU4nMytz7znIK1M3xeLGObxl1hUtYV5_ns,4238
|
974
977
|
synth_ai/tracing_v3/replica_sync.py,sha256=CP7hPCR2oETrdsInwQl79mdInFA5xL1Q4Nzp3KGLu5A,8879
|
975
|
-
synth_ai/tracing_v3/session_tracer.py,sha256=
|
978
|
+
synth_ai/tracing_v3/session_tracer.py,sha256=zPCtO73oXVsHN5N64_pleporKiMuAmue9dStAZSFESA,11379
|
976
979
|
synth_ai/tracing_v3/utils.py,sha256=RAFZTf8JyRCQsR9DwJ1ykelKkoY3OSrCBUStCLvpn8w,3431
|
977
980
|
synth_ai/tracing_v3/examples/basic_usage.py,sha256=zbl9bJaZawToMEV0skzvP4sIwLnmBeo7Pa_f1gJlkf8,7265
|
978
981
|
synth_ai/tracing_v3/storage/__init__.py,sha256=S_g7h34JZ6v1hoCcrlP7TaAAU-f0owKUx78QB8TUGkQ,332
|
@@ -983,14 +986,15 @@ synth_ai/tracing_v3/storage/factory.py,sha256=2h8aok1dAykVBshpB7dP0iwqVVrNoSj6Ku
|
|
983
986
|
synth_ai/tracing_v3/storage/types.py,sha256=LevN8M12ilZ0EaiQ6Y3yONSMuLGEhSKNt0ir5wbVbek,613
|
984
987
|
synth_ai/tracing_v3/storage/utils.py,sha256=B2mFgTJe4ivretu_6VZ_s7lDBZYyB_aCTrKimeYuZHQ,6057
|
985
988
|
synth_ai/tracing_v3/tests/__init__.py,sha256=0XskpPHyPm8CwwiIJyFTsIhdEpZ-hJHHMwHqMKlL_XE,28
|
986
|
-
synth_ai/tracing_v3/tests/test_concurrent_operations.py,sha256=
|
989
|
+
synth_ai/tracing_v3/tests/test_concurrent_operations.py,sha256=R0cewZB3iUKAVzBvC6dFmt2M-UewEDGKGv5U3ODhjWI,15307
|
990
|
+
synth_ai/tracing_v3/tests/test_llm_call_records.py,sha256=jzLsY0CQNfmExu0aVg0w9vlKES4P26tGa9LBBo6i1Lc,23317
|
987
991
|
synth_ai/tracing_v3/tests/test_replica_sync.py,sha256=gUt7fR6XoOjCYbfH1ObZ-UmobMwnpRph4OwMbHUI1fo,7637
|
988
|
-
synth_ai/tracing_v3/tests/test_session_tracer.py,sha256=
|
989
|
-
synth_ai/tracing_v3/tests/test_turso_manager.py,sha256=
|
992
|
+
synth_ai/tracing_v3/tests/test_session_tracer.py,sha256=OXeVAwFEbZQLSiBgpqgGEQRmKR7X_eqRYEOkjsk_E-s,13004
|
993
|
+
synth_ai/tracing_v3/tests/test_turso_manager.py,sha256=h5P70I8yxLiiP8zsrmaTpoJj5uRvkNVWfI9q-cml76c,21419
|
990
994
|
synth_ai/tracing_v3/turso/__init__.py,sha256=o4o-ck4AjcE4OXoCDR8qWzb5UMGyQSJzYfBzfL74_i4,414
|
991
995
|
synth_ai/tracing_v3/turso/daemon.py,sha256=EjNTSWg7i8gY-asDZgyXb0d12lMEtWOJBNTMfBMbYzg,4391
|
992
|
-
synth_ai/tracing_v3/turso/manager.py,sha256=
|
993
|
-
synth_ai/tracing_v3/turso/models.py,sha256=
|
996
|
+
synth_ai/tracing_v3/turso/manager.py,sha256=BbHbS3o-voUAhKlG0HoWxQ6AUYIsxX69-Qk1Gp2n1wc,21937
|
997
|
+
synth_ai/tracing_v3/turso/models.py,sha256=MCO0wvGJDLwTpO3RsgfN42IvDouaZz4Oc-bS3Cjugsc,14142
|
994
998
|
synth_ai/tui/__init__.py,sha256=URh-sqpBz93jF7BURdVagh7TcNTrUxyGosfSRF1uyMo,50
|
995
999
|
synth_ai/tui/__main__.py,sha256=Io-a8FyvgkXIYchhmZyiEnhEmosF5YXtf-dXt2XLKWg,237
|
996
1000
|
synth_ai/tui/dashboard.py,sha256=OYrwUB4M2ARqJQu_CeDFMo19nlXWOIY2l84cjkhMDXI,11067
|
@@ -1034,9 +1038,9 @@ synth_ai/v0/tracing_v1/events/manage.py,sha256=dgIlH43aEz7yA1_rj4IisJP6ROiROmLwD
|
|
1034
1038
|
synth_ai/v0/tracing_v1/events/scope.py,sha256=BuBkhSpVHUJt8iGT9HJZF82rbb88mQcd2vM2shg-w2I,2550
|
1035
1039
|
synth_ai/v0/tracing_v1/events/store.py,sha256=gVM3L_bV_PAEh9GD9eg2AQqNfANu-zH9ied7bAKk_Eg,9040
|
1036
1040
|
synth_ai/zyk/__init__.py,sha256=6HFa13sdHCouhzKOUPEWcJeVxKlzjWO7ERsrrwtTugs,752
|
1037
|
-
synth_ai-0.2.
|
1038
|
-
synth_ai-0.2.
|
1039
|
-
synth_ai-0.2.
|
1040
|
-
synth_ai-0.2.
|
1041
|
-
synth_ai-0.2.
|
1042
|
-
synth_ai-0.2.
|
1041
|
+
synth_ai-0.2.4.dev2.dist-info/licenses/LICENSE,sha256=ynhjRQUfqA_RdGRATApfFA_fBAy9cno04sLtLUqxVFM,1069
|
1042
|
+
synth_ai-0.2.4.dev2.dist-info/METADATA,sha256=Bw0eQ71X63-PmP9dMhObXDMKW3P--4pWVRrArk69XHc,7134
|
1043
|
+
synth_ai-0.2.4.dev2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
1044
|
+
synth_ai-0.2.4.dev2.dist-info/entry_points.txt,sha256=GSFXaJreq4PJXbixkUI0GHZwGh2dZDG5pYaoVmqr_KE,46
|
1045
|
+
synth_ai-0.2.4.dev2.dist-info/top_level.txt,sha256=fBmtZyVHuKaGa29oHBaaUkrUIWTqSpoVMPiVdCDP3k8,9
|
1046
|
+
synth_ai-0.2.4.dev2.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|