trace-agent-server 0.2.0__tar.gz → 0.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/PKG-INFO +1 -1
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/pyproject.toml +1 -1
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server/services/otlp.py +13 -1
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server.egg-info/PKG-INFO +1 -1
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/tests/test_otlp_ingest.py +34 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/README.md +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/setup.cfg +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server/__init__.py +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server/api/__init__.py +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server/api/otlp.py +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server/api/runs.py +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server/cli.py +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server/config.py +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server/db.py +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server/main.py +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server/models.py +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server/schemas.py +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server/services/__init__.py +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server/services/analytics.py +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server/services/audit_guardrails.py +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server/services/compare.py +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server/services/dashboard.py +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server/services/events.py +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server/services/explanation.py +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server/services/graph.py +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server/services/observability.py +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server/services/otlp_decode.py +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server/services/provider.py +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server/services/run_lifecycle.py +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server/services/run_summary.py +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server.egg-info/SOURCES.txt +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server.egg-info/dependency_links.txt +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server.egg-info/entry_points.txt +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server.egg-info/requires.txt +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server.egg-info/top_level.txt +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/tests/test_audit_guardrails_api.py +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/tests/test_dashboard.py +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/tests/test_events.py +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/tests/test_framework_observations.py +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/tests/test_otlp_decode.py +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/tests/test_providers.py +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/tests/test_run_lifecycle.py +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/tests/test_runs_api.py +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/tests/test_sdk_wrappers.py +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/tests/test_sse.py +0 -0
- {trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/tests/test_turns.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: trace-agent-server
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: TraceAgent FastAPI backend server.
|
|
5
5
|
Author-email: Enrique Javier Villar Cea <villarcea.enriquejavier@gmail.com>, Javier Rodriguez Castellano <javirodriguezcastellano@gmail.com>
|
|
6
6
|
License: MIT
|
{trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server/services/otlp.py
RENAMED
|
@@ -89,6 +89,18 @@ def _parse_json(value: Any) -> Any:
|
|
|
89
89
|
return value
|
|
90
90
|
|
|
91
91
|
|
|
92
|
+
def _readable(text: Any) -> Any:
|
|
93
|
+
"""Decode the \\uXXXX escapes of a JSON text, so accents show as typed.
|
|
94
|
+
|
|
95
|
+
Some producers serialize results with json.dumps defaults, which escapes every non-ASCII character.
|
|
96
|
+
"""
|
|
97
|
+
if isinstance(text, str) and "\\u" in text:
|
|
98
|
+
parsed = _parse_json(text)
|
|
99
|
+
if parsed is not text:
|
|
100
|
+
return parsed
|
|
101
|
+
return text
|
|
102
|
+
|
|
103
|
+
|
|
92
104
|
def _error_of(span: SpanRecord) -> tuple[str, str]:
|
|
93
105
|
"""Error code (the exception class name) and message of a failed span."""
|
|
94
106
|
for event in span.events:
|
|
@@ -347,7 +359,7 @@ def _tool_steps(session: Session, run: Run, span: SpanRecord, capture_full: bool
|
|
|
347
359
|
parent_step_id=span.parent_span_id,
|
|
348
360
|
status="failed" if failed else "succeeded",
|
|
349
361
|
args=redact_payload(arguments if isinstance(arguments, dict) else {"input": arguments} if arguments is not None else {}),
|
|
350
|
-
output_summary=summarize_value(result_text) if result_text is not None else None,
|
|
362
|
+
output_summary=summarize_value(_readable(result_text)) if result_text is not None else None,
|
|
351
363
|
output_hash=stable_hash(result_text if not failed else {"error": message}),
|
|
352
364
|
error_code=code,
|
|
353
365
|
error_summary=message,
|
{trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server.egg-info/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: trace-agent-server
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: TraceAgent FastAPI backend server.
|
|
5
5
|
Author-email: Enrique Javier Villar Cea <villarcea.enriquejavier@gmail.com>, Javier Rodriguez Castellano <javirodriguezcastellano@gmail.com>
|
|
6
6
|
License: MIT
|
|
@@ -433,6 +433,40 @@ class TestPrivacy:
|
|
|
433
433
|
assert len(next(e for e in events if e.type == "tool.succeeded").summary) <= 220
|
|
434
434
|
|
|
435
435
|
|
|
436
|
+
class TestNonAsciiText:
|
|
437
|
+
def test_accents_in_a_tool_result_are_shown_as_typed(self, client) -> None:
|
|
438
|
+
spans = agent_spans()
|
|
439
|
+
spans[2].attributes["gen_ai__tool__call__result"] = json.dumps({"mensaje": "El OEE bajó"}, ensure_ascii=False)
|
|
440
|
+
|
|
441
|
+
post(client, export(*spans))
|
|
442
|
+
|
|
443
|
+
_, events = load(client)
|
|
444
|
+
summary = next(e for e in events if e.type == "tool.succeeded").summary
|
|
445
|
+
assert "El OEE bajó" in summary
|
|
446
|
+
assert "\\u" not in summary
|
|
447
|
+
|
|
448
|
+
def test_a_result_escaped_by_the_producer_is_decoded(self, client) -> None:
|
|
449
|
+
spans = agent_spans()
|
|
450
|
+
spans[2].attributes["gen_ai__tool__call__result"] = json.dumps({"mensaje": "El OEE bajó"})
|
|
451
|
+
assert "\\u00f3" in spans[2].attributes["gen_ai__tool__call__result"]
|
|
452
|
+
|
|
453
|
+
post(client, export(*spans))
|
|
454
|
+
|
|
455
|
+
_, events = load(client)
|
|
456
|
+
summary = next(e for e in events if e.type == "tool.succeeded").summary
|
|
457
|
+
assert "El OEE bajó" in summary
|
|
458
|
+
assert "\\u" not in summary
|
|
459
|
+
|
|
460
|
+
def test_a_plain_text_result_with_a_backslash_is_left_alone(self, client) -> None:
|
|
461
|
+
spans = agent_spans()
|
|
462
|
+
spans[2].attributes["gen_ai__tool__call__result"] = r"path C:\users\ana"
|
|
463
|
+
|
|
464
|
+
post(client, export(*spans))
|
|
465
|
+
|
|
466
|
+
_, events = load(client)
|
|
467
|
+
assert next(e for e in events if e.type == "tool.succeeded").summary == r"path C:\users\ana"
|
|
468
|
+
|
|
469
|
+
|
|
436
470
|
class TestEndpoint:
|
|
437
471
|
def test_the_response_is_a_valid_protobuf_export_response(self, client) -> None:
|
|
438
472
|
response = post(client, export(*agent_spans()))
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server/api/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server/services/__init__.py
RENAMED
|
File without changes
|
{trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server/services/analytics.py
RENAMED
|
File without changes
|
|
File without changes
|
{trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server/services/compare.py
RENAMED
|
File without changes
|
{trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server/services/dashboard.py
RENAMED
|
File without changes
|
{trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server/services/events.py
RENAMED
|
File without changes
|
{trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server/services/explanation.py
RENAMED
|
File without changes
|
{trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server/services/graph.py
RENAMED
|
File without changes
|
|
File without changes
|
{trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server/services/otlp_decode.py
RENAMED
|
File without changes
|
{trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server/services/provider.py
RENAMED
|
File without changes
|
|
File without changes
|
{trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server/services/run_summary.py
RENAMED
|
File without changes
|
{trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server.egg-info/requires.txt
RENAMED
|
File without changes
|
{trace_agent_server-0.2.0 → trace_agent_server-0.4.0}/src/trace_agent_server.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|