glaip-sdk 0.3.0__py3-none-any.whl → 0.4.0__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.
- glaip_sdk/cli/auth.py +2 -1
- glaip_sdk/cli/commands/agents.py +1 -1
- glaip_sdk/cli/commands/configure.py +2 -1
- glaip_sdk/cli/commands/mcps.py +191 -44
- glaip_sdk/cli/commands/transcripts.py +1 -1
- glaip_sdk/cli/display.py +1 -1
- glaip_sdk/cli/hints.py +58 -0
- glaip_sdk/cli/io.py +6 -3
- glaip_sdk/cli/main.py +2 -1
- glaip_sdk/cli/slash/agent_session.py +2 -1
- glaip_sdk/cli/slash/session.py +1 -1
- glaip_sdk/cli/transcript/capture.py +1 -1
- glaip_sdk/cli/transcript/viewer.py +13 -646
- glaip_sdk/cli/update_notifier.py +2 -1
- glaip_sdk/cli/utils.py +63 -110
- glaip_sdk/client/agents.py +2 -4
- glaip_sdk/client/main.py +2 -18
- glaip_sdk/client/mcps.py +11 -1
- glaip_sdk/client/run_rendering.py +90 -111
- glaip_sdk/client/shared.py +21 -0
- glaip_sdk/models.py +8 -7
- glaip_sdk/utils/display.py +23 -15
- glaip_sdk/utils/rendering/__init__.py +6 -13
- glaip_sdk/utils/rendering/formatting.py +5 -30
- glaip_sdk/utils/rendering/layout/__init__.py +64 -0
- glaip_sdk/utils/rendering/{renderer → layout}/panels.py +9 -0
- glaip_sdk/utils/rendering/{renderer → layout}/progress.py +70 -1
- glaip_sdk/utils/rendering/layout/summary.py +74 -0
- glaip_sdk/utils/rendering/layout/transcript.py +606 -0
- glaip_sdk/utils/rendering/models.py +1 -0
- glaip_sdk/utils/rendering/renderer/__init__.py +10 -28
- glaip_sdk/utils/rendering/renderer/base.py +214 -1469
- glaip_sdk/utils/rendering/renderer/debug.py +24 -0
- glaip_sdk/utils/rendering/renderer/factory.py +138 -0
- glaip_sdk/utils/rendering/renderer/thinking.py +273 -0
- glaip_sdk/utils/rendering/renderer/tool_panels.py +442 -0
- glaip_sdk/utils/rendering/renderer/transcript_mode.py +162 -0
- glaip_sdk/utils/rendering/state.py +204 -0
- glaip_sdk/utils/rendering/steps/__init__.py +34 -0
- glaip_sdk/utils/rendering/{steps.py → steps/event_processor.py} +53 -440
- glaip_sdk/utils/rendering/steps/format.py +176 -0
- glaip_sdk/utils/rendering/steps/manager.py +387 -0
- glaip_sdk/utils/rendering/timing.py +36 -0
- glaip_sdk/utils/rendering/viewer/__init__.py +21 -0
- glaip_sdk/utils/rendering/viewer/presenter.py +184 -0
- glaip_sdk/utils/validation.py +13 -21
- {glaip_sdk-0.3.0.dist-info → glaip_sdk-0.4.0.dist-info}/METADATA +1 -1
- {glaip_sdk-0.3.0.dist-info → glaip_sdk-0.4.0.dist-info}/RECORD +50 -34
- {glaip_sdk-0.3.0.dist-info → glaip_sdk-0.4.0.dist-info}/WHEEL +0 -0
- {glaip_sdk-0.3.0.dist-info → glaip_sdk-0.4.0.dist-info}/entry_points.txt +0 -0
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
"""Shared presenter utilities for CLI/offline transcript viewing.
|
|
2
|
+
|
|
3
|
+
Authors:
|
|
4
|
+
Raymond Christopher (raymond.christopher@gdplabs.id)
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
|
|
9
|
+
from dataclasses import dataclass
|
|
10
|
+
from typing import Any
|
|
11
|
+
|
|
12
|
+
from rich.console import Console
|
|
13
|
+
|
|
14
|
+
from glaip_sdk.utils.rendering.layout.transcript import (
|
|
15
|
+
DEFAULT_TRANSCRIPT_THEME,
|
|
16
|
+
TranscriptGlyphs,
|
|
17
|
+
TranscriptSnapshot,
|
|
18
|
+
build_transcript_snapshot,
|
|
19
|
+
build_transcript_view,
|
|
20
|
+
)
|
|
21
|
+
from glaip_sdk.utils.rendering.renderer.debug import render_debug_event_stream
|
|
22
|
+
from glaip_sdk.utils.rendering.state import RendererState, coerce_received_at
|
|
23
|
+
from glaip_sdk.utils.rendering.steps import StepManager
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
@dataclass(slots=True)
|
|
27
|
+
class ViewerContext:
|
|
28
|
+
"""Runtime context passed to transcript presenters."""
|
|
29
|
+
|
|
30
|
+
manifest_entry: dict[str, Any]
|
|
31
|
+
events: list[dict[str, Any]]
|
|
32
|
+
default_output: str
|
|
33
|
+
final_output: str
|
|
34
|
+
stream_started_at: float | None
|
|
35
|
+
meta: dict[str, Any]
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def render_post_run_view(
|
|
39
|
+
console: Console,
|
|
40
|
+
ctx: ViewerContext,
|
|
41
|
+
*,
|
|
42
|
+
glyphs: TranscriptGlyphs | None = None,
|
|
43
|
+
theme: str = DEFAULT_TRANSCRIPT_THEME,
|
|
44
|
+
) -> TranscriptSnapshot:
|
|
45
|
+
"""Render the default summary view and return the snapshot used."""
|
|
46
|
+
snapshot, _state = prepare_viewer_snapshot(
|
|
47
|
+
ctx,
|
|
48
|
+
glyphs=glyphs,
|
|
49
|
+
theme=theme,
|
|
50
|
+
)
|
|
51
|
+
render_transcript_view(console, snapshot, theme=theme)
|
|
52
|
+
return snapshot
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
def render_transcript_view(
|
|
56
|
+
console: Console,
|
|
57
|
+
snapshot: TranscriptSnapshot,
|
|
58
|
+
*,
|
|
59
|
+
theme: str = DEFAULT_TRANSCRIPT_THEME,
|
|
60
|
+
) -> None:
|
|
61
|
+
"""Render the transcript summary using a prepared snapshot."""
|
|
62
|
+
header, body = build_transcript_view(snapshot, theme=theme)
|
|
63
|
+
_print_renderables(console, header + body)
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
def render_transcript_events(console: Console, events: list[dict[str, Any]]) -> None:
|
|
67
|
+
"""Pretty-print transcript events using shared debug presenter."""
|
|
68
|
+
if not events:
|
|
69
|
+
console.print("[dim]No SSE events were captured for this run.[/dim]")
|
|
70
|
+
console.print()
|
|
71
|
+
return
|
|
72
|
+
|
|
73
|
+
console.print("[bold]Transcript Events[/bold]")
|
|
74
|
+
console.print("[dim]────────────────────────────────────────────────────────[/dim]")
|
|
75
|
+
|
|
76
|
+
render_debug_event_stream(
|
|
77
|
+
events,
|
|
78
|
+
console,
|
|
79
|
+
resolve_timestamp=lambda event: coerce_received_at(event.get("received_at")),
|
|
80
|
+
)
|
|
81
|
+
console.print()
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
def prepare_viewer_snapshot(
|
|
85
|
+
ctx: ViewerContext,
|
|
86
|
+
*,
|
|
87
|
+
glyphs: TranscriptGlyphs | None,
|
|
88
|
+
theme: str,
|
|
89
|
+
) -> tuple[TranscriptSnapshot, RendererState]:
|
|
90
|
+
"""Build a transcript snapshot plus renderer state for reusable viewing."""
|
|
91
|
+
state = _build_renderer_state(ctx)
|
|
92
|
+
manager = _build_steps_from_events(ctx.events)
|
|
93
|
+
query = _extract_query_from_manifest(ctx)
|
|
94
|
+
merged_meta = _merge_meta(ctx)
|
|
95
|
+
snapshot = build_transcript_snapshot(
|
|
96
|
+
state,
|
|
97
|
+
manager,
|
|
98
|
+
glyphs=glyphs,
|
|
99
|
+
query_text=query,
|
|
100
|
+
meta=merged_meta,
|
|
101
|
+
theme=theme,
|
|
102
|
+
)
|
|
103
|
+
return snapshot, state
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
def _build_renderer_state(ctx: ViewerContext) -> RendererState:
|
|
107
|
+
state = RendererState()
|
|
108
|
+
state.meta = dict(ctx.meta or {})
|
|
109
|
+
|
|
110
|
+
final_text = (ctx.final_output or "").strip()
|
|
111
|
+
default_text = (ctx.default_output or "").strip()
|
|
112
|
+
if final_text:
|
|
113
|
+
state.final_text = final_text
|
|
114
|
+
elif default_text:
|
|
115
|
+
state.final_text = default_text
|
|
116
|
+
state.buffer.append(default_text)
|
|
117
|
+
|
|
118
|
+
duration = _extract_final_duration(ctx.events)
|
|
119
|
+
if duration:
|
|
120
|
+
state.final_duration_text = duration # pragma: no cover - exercised indirectly via end-to-end tests
|
|
121
|
+
state.events = list(ctx.events or [])
|
|
122
|
+
return state
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
def _build_steps_from_events(events: list[dict[str, Any]]) -> StepManager:
|
|
126
|
+
manager = StepManager()
|
|
127
|
+
for event in events or []:
|
|
128
|
+
payload = _coerce_step_event(event)
|
|
129
|
+
if not payload:
|
|
130
|
+
continue
|
|
131
|
+
try:
|
|
132
|
+
manager.apply_event(payload)
|
|
133
|
+
except ValueError:
|
|
134
|
+
continue
|
|
135
|
+
return manager
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
def _coerce_step_event(event: dict[str, Any]) -> dict[str, Any] | None:
|
|
139
|
+
metadata = event.get("metadata")
|
|
140
|
+
if not isinstance(metadata, dict):
|
|
141
|
+
return None
|
|
142
|
+
if not isinstance(metadata.get("step_id"), str):
|
|
143
|
+
return None
|
|
144
|
+
return {
|
|
145
|
+
"metadata": metadata,
|
|
146
|
+
"status": event.get("status"),
|
|
147
|
+
"task_state": event.get("task_state"),
|
|
148
|
+
"content": event.get("content"),
|
|
149
|
+
"task_id": event.get("task_id"),
|
|
150
|
+
"context_id": event.get("context_id"),
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
def _extract_final_duration(events: list[dict[str, Any]]) -> str | None:
|
|
155
|
+
for event in events or []:
|
|
156
|
+
metadata = event.get("metadata") or {}
|
|
157
|
+
if metadata.get("kind") != "final_response":
|
|
158
|
+
continue
|
|
159
|
+
time_value = metadata.get("time")
|
|
160
|
+
if isinstance(time_value, (int, float)):
|
|
161
|
+
return f"{float(time_value):.2f}s"
|
|
162
|
+
return None
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
def _extract_query_from_manifest(ctx: ViewerContext) -> str | None:
|
|
166
|
+
query = ctx.manifest_entry.get("input_message") or ctx.meta.get("input_message") or ctx.meta.get("query")
|
|
167
|
+
if isinstance(query, str) and query.strip():
|
|
168
|
+
return query.strip()
|
|
169
|
+
return None
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
def _merge_meta(ctx: ViewerContext) -> dict[str, Any]:
|
|
173
|
+
merged = dict(ctx.meta or {})
|
|
174
|
+
manifest = ctx.manifest_entry or {}
|
|
175
|
+
for key in ("agent_name", "agent_id", "model", "run_id", "input_message"):
|
|
176
|
+
if key in manifest and manifest[key] and key not in merged:
|
|
177
|
+
merged[key] = manifest[key]
|
|
178
|
+
return merged
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
def _print_renderables(console: Console, renderables: list[Any]) -> None:
|
|
182
|
+
for renderable in renderables:
|
|
183
|
+
console.print(renderable)
|
|
184
|
+
console.print()
|
glaip_sdk/utils/validation.py
CHANGED
|
@@ -18,6 +18,16 @@ from glaip_sdk.utils.resource_refs import validate_name_format
|
|
|
18
18
|
RESERVED_NAMES = ["admin", "root", "system", "api", "test", "demo"]
|
|
19
19
|
|
|
20
20
|
|
|
21
|
+
def _validate_named_resource(name: str, resource_type: str) -> str:
|
|
22
|
+
"""Shared validator that prevents reserved-name duplication."""
|
|
23
|
+
cleaned_name = validate_name_format(name, resource_type)
|
|
24
|
+
|
|
25
|
+
if cleaned_name.lower() in RESERVED_NAMES:
|
|
26
|
+
raise ValueError(f"{resource_type.capitalize()} name '{cleaned_name}' is reserved and cannot be used")
|
|
27
|
+
|
|
28
|
+
return cleaned_name
|
|
29
|
+
|
|
30
|
+
|
|
21
31
|
def validate_agent_name(name: str) -> str:
|
|
22
32
|
"""Validate agent name and return cleaned version.
|
|
23
33
|
|
|
@@ -30,13 +40,7 @@ def validate_agent_name(name: str) -> str:
|
|
|
30
40
|
Raises:
|
|
31
41
|
ValueError: If name is invalid
|
|
32
42
|
"""
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
# Check for reserved names
|
|
36
|
-
if cleaned_name.lower() in RESERVED_NAMES:
|
|
37
|
-
raise ValueError(f"'{cleaned_name}' is a reserved name and cannot be used")
|
|
38
|
-
|
|
39
|
-
return cleaned_name
|
|
43
|
+
return _validate_named_resource(name, "agent")
|
|
40
44
|
|
|
41
45
|
|
|
42
46
|
def validate_agent_instruction(instruction: str) -> str:
|
|
@@ -74,13 +78,7 @@ def validate_tool_name(name: str) -> str:
|
|
|
74
78
|
Raises:
|
|
75
79
|
ValueError: If name is invalid
|
|
76
80
|
"""
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
# Check for reserved names
|
|
80
|
-
if cleaned_name.lower() in RESERVED_NAMES:
|
|
81
|
-
raise ValueError(f"'{cleaned_name}' is a reserved name and cannot be used")
|
|
82
|
-
|
|
83
|
-
return cleaned_name
|
|
81
|
+
return _validate_named_resource(name, "tool")
|
|
84
82
|
|
|
85
83
|
|
|
86
84
|
def validate_mcp_name(name: str) -> str:
|
|
@@ -95,13 +93,7 @@ def validate_mcp_name(name: str) -> str:
|
|
|
95
93
|
Raises:
|
|
96
94
|
ValueError: If name is invalid
|
|
97
95
|
"""
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
# Check for reserved names
|
|
101
|
-
if cleaned_name.lower() in RESERVED_NAMES:
|
|
102
|
-
raise ValueError(f"'{cleaned_name}' is a reserved name and cannot be used")
|
|
103
|
-
|
|
104
|
-
return cleaned_name
|
|
96
|
+
return _validate_named_resource(name, "mcp")
|
|
105
97
|
|
|
106
98
|
|
|
107
99
|
def validate_timeout(timeout: int) -> int:
|
|
@@ -3,21 +3,22 @@ glaip_sdk/_version.py,sha256=5CHGCxx_36fgmMWuEx6jJ2CzzM-i9eBFyQWFwBi23XE,2259
|
|
|
3
3
|
glaip_sdk/branding.py,sha256=tLqYCIHMkUf8p2smpuAGNptwaKUN38G4mlh0A0DOl_w,7823
|
|
4
4
|
glaip_sdk/cli/__init__.py,sha256=xCCfuF1Yc7mpCDcfhHZTX0vizvtrDSLeT8MJ3V7m5A0,156
|
|
5
5
|
glaip_sdk/cli/agent_config.py,sha256=YAbFKrTNTRqNA6b0i0Q3pH-01rhHDRi5v8dxSFwGSwM,2401
|
|
6
|
-
glaip_sdk/cli/auth.py,sha256=
|
|
6
|
+
glaip_sdk/cli/auth.py,sha256=wvzJJXKzOeRaGfuWSv7_VJMba-vbvID0Q5jRYpALOBg,15891
|
|
7
7
|
glaip_sdk/cli/commands/__init__.py,sha256=6Z3ASXDut0lAbUX_umBFtxPzzFyqoiZfVeTahThFu1A,219
|
|
8
|
-
glaip_sdk/cli/commands/agents.py,sha256=
|
|
9
|
-
glaip_sdk/cli/commands/configure.py,sha256=
|
|
10
|
-
glaip_sdk/cli/commands/mcps.py,sha256=
|
|
8
|
+
glaip_sdk/cli/commands/agents.py,sha256=RTfL-Hj-ORbbsJoRZMJD_MM-zO6P765GPZzZvGxUpYE,47686
|
|
9
|
+
glaip_sdk/cli/commands/configure.py,sha256=urq9Wdnd2JbHSY2KJMCy0-4rBMhQLYsdlWL_YMVgVu8,11420
|
|
10
|
+
glaip_sdk/cli/commands/mcps.py,sha256=tttqQnfM89iI9Pm94u8YRhiHMQNYNouecFX0brsT4cQ,42551
|
|
11
11
|
glaip_sdk/cli/commands/models.py,sha256=vfcGprK5CHprQ0CNpNzQlNNTELvdgKC7JxTG_ijOwmE,2009
|
|
12
12
|
glaip_sdk/cli/commands/tools.py,sha256=7_RMTuTI1Guu7psClovbyt2umfk4rkp7jSW19GXKA44,18440
|
|
13
|
-
glaip_sdk/cli/commands/transcripts.py,sha256=
|
|
13
|
+
glaip_sdk/cli/commands/transcripts.py,sha256=4kI6FoaL9K5ch10tKr7vdT10UPdFi5f5ANZhCDytyss,26377
|
|
14
14
|
glaip_sdk/cli/commands/update.py,sha256=rIZo_x-tvpvcwpQLpwYwso1ix6qTHuNNTL4egmn5fEM,1812
|
|
15
15
|
glaip_sdk/cli/config.py,sha256=2NZxFyt8jc6CMRUbuxx7sq_wsfTJXmwQGn09hhYHGnE,1341
|
|
16
16
|
glaip_sdk/cli/constants.py,sha256=zqcVtzfj6huW97gbCmhkFqntge1H-c1vnkGqTazADgU,895
|
|
17
17
|
glaip_sdk/cli/context.py,sha256=--Y5vc6lgoAV7cRoUAr9UxSQaLmkMg29FolA7EwoRqM,3803
|
|
18
|
-
glaip_sdk/cli/display.py,sha256=
|
|
19
|
-
glaip_sdk/cli/
|
|
20
|
-
glaip_sdk/cli/
|
|
18
|
+
glaip_sdk/cli/display.py,sha256=845_VGCFeQJfvwyLtAIj4E6Rs-alFNmTQXOOWpF-F5U,12137
|
|
19
|
+
glaip_sdk/cli/hints.py,sha256=ZnBvQFgODCmKwRPNIjFswi7XAFsKOyVgFBroxI4jvq4,1597
|
|
20
|
+
glaip_sdk/cli/io.py,sha256=ChP6CRKbtuENsNomNEaMDfPDU0iqO-WuVvl4_y7F2io,3871
|
|
21
|
+
glaip_sdk/cli/main.py,sha256=lPX7IoUuQshAXQQPtdOl563H6VhLWvxCwW9tsFLoJqM,16967
|
|
21
22
|
glaip_sdk/cli/masking.py,sha256=QRtUeHBVCJG02EXLxnPzfhRmD-leMxWf6QKxh4TCax0,3666
|
|
22
23
|
glaip_sdk/cli/mcp_validators.py,sha256=cwbz7p_p7_9xVuuF96OBQOdmEgo5UObU6iWWQ2X03PI,10047
|
|
23
24
|
glaip_sdk/cli/pager.py,sha256=XygkAB6UW3bte7I4KmK7-PUGCJiq2Pv-4-MfyXAmXCw,7925
|
|
@@ -26,30 +27,31 @@ glaip_sdk/cli/parsers/json_input.py,sha256=kxoxeIlgfsaH2jhe6apZAgSxAtwlpSINLTMRs
|
|
|
26
27
|
glaip_sdk/cli/resolution.py,sha256=K-VaEHm9SYY_qfb9538VNHykL4_2N6F8iQqI1zMx_64,2402
|
|
27
28
|
glaip_sdk/cli/rich_helpers.py,sha256=kO47N8e506rxrN6Oc9mbAWN3Qb536oQPWZy1s9A616g,819
|
|
28
29
|
glaip_sdk/cli/slash/__init__.py,sha256=J9TPL2UcNTkW8eifG6nRmAEGHhyEgdYMYk4cHaaObC0,386
|
|
29
|
-
glaip_sdk/cli/slash/agent_session.py,sha256=
|
|
30
|
+
glaip_sdk/cli/slash/agent_session.py,sha256=F11RYVBGs86Ox2zW7czXSBjojPx9jMAdgAiSxWdZl6k,11304
|
|
30
31
|
glaip_sdk/cli/slash/prompt.py,sha256=2urqR3QqN3O09lHmKKSEbhsIdlS4B7hm9O8AP_VwCSU,8034
|
|
31
32
|
glaip_sdk/cli/slash/remote_runs_controller.py,sha256=1kdnrH6HNlblqpRtTJVlWzWUeFPlmd6Ef_IDkqZ01CI,21354
|
|
32
|
-
glaip_sdk/cli/slash/session.py,sha256=
|
|
33
|
+
glaip_sdk/cli/slash/session.py,sha256=GB6rMHw5-5zl61XI1ShjtIKe6MOi3zc8biXJxPaw9do,57448
|
|
33
34
|
glaip_sdk/cli/slash/tui/__init__.py,sha256=ljBAeAFY2qNDkbJrZh5NgXxjwUlsv9-UxgKNIv0AF1Q,274
|
|
34
35
|
glaip_sdk/cli/slash/tui/remote_runs_app.py,sha256=MRAY8AeUML8dUaC9eHyDK1gwEa6H12bI1XgcO8w21MI,24763
|
|
35
36
|
glaip_sdk/cli/transcript/__init__.py,sha256=yiYHyNtebMCu3BXu56Xm5RBC2tDc865q8UGPnoe6QRs,920
|
|
36
37
|
glaip_sdk/cli/transcript/cache.py,sha256=Wi1uln6HP1U6F-MRTrfnxi9bn6XJTxwWXhREIRPoMqQ,17439
|
|
37
|
-
glaip_sdk/cli/transcript/capture.py,sha256=
|
|
38
|
+
glaip_sdk/cli/transcript/capture.py,sha256=5Zmg0HXPs01-M8v37pNl_JmdMR6WGk7NxIvXVq-bFaI,10343
|
|
38
39
|
glaip_sdk/cli/transcript/export.py,sha256=reCvrZVzli8_LzYe5ZNdaa-MwZ1ov2RjnDzKZWr_6-E,1117
|
|
39
40
|
glaip_sdk/cli/transcript/history.py,sha256=2FBjawxP8CX9gRPMUMP8bDjG50BGM2j2zk6IfHvAMH4,26211
|
|
40
41
|
glaip_sdk/cli/transcript/launcher.py,sha256=z5ivkPXDQJpATIqtRLUK8jH3p3WIZ72PvOPqYRDMJvw,2327
|
|
41
|
-
glaip_sdk/cli/transcript/viewer.py,sha256=
|
|
42
|
-
glaip_sdk/cli/update_notifier.py,sha256=
|
|
43
|
-
glaip_sdk/cli/utils.py,sha256=
|
|
42
|
+
glaip_sdk/cli/transcript/viewer.py,sha256=ar1SzRkhKIf3_DgFz1EG1RZGDmd2w2wogAe038DLL_M,13037
|
|
43
|
+
glaip_sdk/cli/update_notifier.py,sha256=qv-GfwTYZdrhlSbC_71I1AvKY9cV4QVBmtees16S2Xg,9807
|
|
44
|
+
glaip_sdk/cli/utils.py,sha256=rrkASWWpJMKrPPgV8UjrZdE3tsyH2rrCDQsyE0KBu6Y,53342
|
|
44
45
|
glaip_sdk/cli/validators.py,sha256=d-kq4y7HWMo6Gc7wLXWUsCt8JwFvJX_roZqRm1Nko1I,5622
|
|
45
46
|
glaip_sdk/client/__init__.py,sha256=F-eE_dRSzA0cc1it06oi0tZetZBHmSUjWSHGhJMLCls,263
|
|
46
47
|
glaip_sdk/client/_agent_payloads.py,sha256=VfBHoijuoqUOixGBf2SA2vlQIXQmBsjB3sXHZhXYiec,17681
|
|
47
48
|
glaip_sdk/client/agent_runs.py,sha256=tZSFEZZ3Yx0uYRgnwkLe-X0TlmgKJQ-ivzb6SrVnxY8,4862
|
|
48
|
-
glaip_sdk/client/agents.py,sha256=
|
|
49
|
+
glaip_sdk/client/agents.py,sha256=tKIjkU9-lMEehf1lJe8Bl35nNQntIiyvq02b4fsVN5c,43332
|
|
49
50
|
glaip_sdk/client/base.py,sha256=ikW33raz2M6rXzo3JmhttfXXuVdMv5zBRKEZkU1F-4I,18176
|
|
50
|
-
glaip_sdk/client/main.py,sha256
|
|
51
|
-
glaip_sdk/client/mcps.py,sha256=
|
|
52
|
-
glaip_sdk/client/run_rendering.py,sha256=
|
|
51
|
+
glaip_sdk/client/main.py,sha256=-grOD3mMNbjOPbx2s1ZIF0z0KpEaCaNuXLHX9dqcZgQ,8711
|
|
52
|
+
glaip_sdk/client/mcps.py,sha256=410HY1aC8hzaCDnEGnhrhKs8vC2xQ50PHvUy1PuuIIc,9364
|
|
53
|
+
glaip_sdk/client/run_rendering.py,sha256=ubBO-NzyZoYRELNwxVvrQFRGQVJCuLfqqJNiXrBZDoQ,14223
|
|
54
|
+
glaip_sdk/client/shared.py,sha256=esHlsR0LEfL-pFDaWebQjKKOLl09jsRY-2pllBUn4nU,522
|
|
53
55
|
glaip_sdk/client/tools.py,sha256=LP7ZRMMlaolBpsu6M14KUifiCM2MWrQoWwX_DYgNxhE,17293
|
|
54
56
|
glaip_sdk/client/validators.py,sha256=ioF9VCs-LG2yLkaRDd7Hff74lojDZZ0_Q3CiLbdm1RY,8381
|
|
55
57
|
glaip_sdk/config/constants.py,sha256=Y03c6op0e7K0jTQ8bmWXhWAqsnjWxkAhWniq8Z0iEKY,1081
|
|
@@ -57,7 +59,7 @@ glaip_sdk/exceptions.py,sha256=iAChFClkytXRBLP0vZq1_YjoZxA9i4m4bW1gDLiGR1g,2321
|
|
|
57
59
|
glaip_sdk/icons.py,sha256=J5THz0ReAmDwIiIooh1_G3Le-mwTJyEjhJDdJ13KRxM,524
|
|
58
60
|
glaip_sdk/models/__init__.py,sha256=DtFft8zH3eJjeedm6jov1z54wTLTcb6dyOKRwM9ZGbk,1756
|
|
59
61
|
glaip_sdk/models/agent_runs.py,sha256=oGUxS4UOq8C2QE4ilp0IQZ7ur1m0DPh6ybzTAOg2tcc,3808
|
|
60
|
-
glaip_sdk/models.py,sha256=
|
|
62
|
+
glaip_sdk/models.py,sha256=OyaGkh1OoWJeVAbIjnkPC8XhtuxJ7aylDvwsKC8LPqs,8504
|
|
61
63
|
glaip_sdk/payload_schemas/__init__.py,sha256=nTJmzwn2BbEpzZdq-8U24eVHQHxqYO3_-SABMV9lS_Q,142
|
|
62
64
|
glaip_sdk/payload_schemas/agent.py,sha256=Nap68mI2Ba8eNGOhk79mGrYUoYUahcUJLof3DLWtVO4,3198
|
|
63
65
|
glaip_sdk/rich_components.py,sha256=44Z0V1ZQleVh9gUDGwRR5mriiYFnVGOhm7fFxZYbP8c,4052
|
|
@@ -65,30 +67,44 @@ glaip_sdk/utils/__init__.py,sha256=Fy11SCrasMRNnP-qbZ-Rr9JMhxgHHcSGG2v7jd7PP20,1
|
|
|
65
67
|
glaip_sdk/utils/agent_config.py,sha256=RhcHsSOVwOaSC2ggnPuHn36Aa0keGJhs8KGb2InvzRk,7262
|
|
66
68
|
glaip_sdk/utils/client_utils.py,sha256=huMq2FWS4YnTTjWT23gaZABVdqRGRFLpcyhnQR8bs2c,14328
|
|
67
69
|
glaip_sdk/utils/datetime_helpers.py,sha256=QLknNLEAY56628-MTRKnCXAffATkF33erOqBubKmU98,1544
|
|
68
|
-
glaip_sdk/utils/display.py,sha256=
|
|
70
|
+
glaip_sdk/utils/display.py,sha256=zu3SYqxj9hPyEN8G1vIXv_yXBkV8jLLCXEg2rs8NlzM,4485
|
|
69
71
|
glaip_sdk/utils/export.py,sha256=1NxxE3wGsA1auzecG5oJw5ELB4VmPljoeIkGhrGOh1I,5006
|
|
70
72
|
glaip_sdk/utils/general.py,sha256=3HSVIopUsIymPaim-kP2lqLX75TkkdIVLe6g3UKabZ0,1507
|
|
71
73
|
glaip_sdk/utils/import_export.py,sha256=RCvoydm_6_L7_J1igcE6IYDunqgS5mQUbWT4VGrytMw,5510
|
|
72
|
-
glaip_sdk/utils/rendering/__init__.py,sha256=
|
|
73
|
-
glaip_sdk/utils/rendering/formatting.py,sha256=
|
|
74
|
-
glaip_sdk/utils/rendering/
|
|
75
|
-
glaip_sdk/utils/rendering/
|
|
76
|
-
glaip_sdk/utils/rendering/
|
|
74
|
+
glaip_sdk/utils/rendering/__init__.py,sha256=cJhhBEf46RnmUGJ1fivGkFuCoOn2pkJkSuRWoo1xlhE,3608
|
|
75
|
+
glaip_sdk/utils/rendering/formatting.py,sha256=tP-CKkKFDhiAHS1vpJQ3D6NmPVl0TX1ZOwBOoxia2eE,8009
|
|
76
|
+
glaip_sdk/utils/rendering/layout/__init__.py,sha256=Lz8eLXDO28wyK36BhKJ6o9YmsRjmQZrNhvZ2wwSjvPw,1609
|
|
77
|
+
glaip_sdk/utils/rendering/layout/panels.py,sha256=c7EhMznVxIiclrFERJuc3qem21t7sQI6BDcmujtdSAk,3905
|
|
78
|
+
glaip_sdk/utils/rendering/layout/progress.py,sha256=GhOhUPNQd8-e6JxTJsV76s6wIYhtTw2G1C3BY9yhtRk,6418
|
|
79
|
+
glaip_sdk/utils/rendering/layout/summary.py,sha256=K-gkDxwUxF67-4nF20y6hv95QEwRZCQI9Eb4KbA8eQY,2325
|
|
80
|
+
glaip_sdk/utils/rendering/layout/transcript.py,sha256=vbfywtbWCDzLY9B5Vvf4crhomftFq-UEz7zqySiLrD8,19052
|
|
81
|
+
glaip_sdk/utils/rendering/models.py,sha256=LtBgF0CyFnVW_oLAR8O62P-h8auCJwlgZaMUhmE8V-0,2882
|
|
82
|
+
glaip_sdk/utils/rendering/renderer/__init__.py,sha256=lpf0GnNGcPb8gq_hJM6Puflwy3eTigVK9qXP01nWRv0,1754
|
|
83
|
+
glaip_sdk/utils/rendering/renderer/base.py,sha256=YwUz0gS4C55BWEDmwD-gp35Tp_QCryxhld2gV--y8lE,38968
|
|
77
84
|
glaip_sdk/utils/rendering/renderer/config.py,sha256=FgSAZpG1g7Atm2MXg0tY0lOEciY90MR-RO6YuGFhp0E,626
|
|
78
85
|
glaip_sdk/utils/rendering/renderer/console.py,sha256=4cLOw4Q1fkHkApuj6dWW8eYpeYdcT0t2SO5MbVt5UTc,1844
|
|
79
|
-
glaip_sdk/utils/rendering/renderer/debug.py,sha256=
|
|
80
|
-
glaip_sdk/utils/rendering/renderer/
|
|
81
|
-
glaip_sdk/utils/rendering/renderer/progress.py,sha256=iwAx76q0hdnjDrHMF_MB2AYQ2kAA4pwfIn0FiSAEkyg,4068
|
|
86
|
+
glaip_sdk/utils/rendering/renderer/debug.py,sha256=qyqFXltYzKEqajwlu8QFSBU3P46JzMzIZqurejhx14o,5907
|
|
87
|
+
glaip_sdk/utils/rendering/renderer/factory.py,sha256=3p1Uga_UEN-wwTNerNaDB3qf3-yu1a9DfH4weXxeRdA,4711
|
|
82
88
|
glaip_sdk/utils/rendering/renderer/stream.py,sha256=htqm8pujXGKJncO86d-dfHixv9btACBgwPbO_brUQio,7812
|
|
83
89
|
glaip_sdk/utils/rendering/renderer/summary_window.py,sha256=ffBsVHaUyy2RfIuXLjhfiO31HeeprVcPP_pe4cjDLsU,2286
|
|
90
|
+
glaip_sdk/utils/rendering/renderer/thinking.py,sha256=09dYbtzpOrG5SlhuqpW9uqPCpiijPQuIntsNboMDDJ8,9399
|
|
84
91
|
glaip_sdk/utils/rendering/renderer/toggle.py,sha256=N3LB4g1r8EdDkQyItQdrP5gig6Sszz9uZ6WJuD0KUmk,5396
|
|
92
|
+
glaip_sdk/utils/rendering/renderer/tool_panels.py,sha256=ev7gZsakUMxfG4JoS_bBDey_MwMDyOLwVhTO536v608,17246
|
|
93
|
+
glaip_sdk/utils/rendering/renderer/transcript_mode.py,sha256=FBZVQYrXF5YH79g3gYizE6P_yL5k9ZSGViCmZhv6C4g,6013
|
|
94
|
+
glaip_sdk/utils/rendering/state.py,sha256=54ViIHCGoBHQE4yMOrB2ToK3FZuv7SsD0Qcyq3CEKe4,6540
|
|
85
95
|
glaip_sdk/utils/rendering/step_tree_state.py,sha256=EItKFTV2FYvm5pSyHbXk7lkzJ-0DW_s-VENIBZe8sp4,4062
|
|
86
|
-
glaip_sdk/utils/rendering/steps.py,sha256=
|
|
96
|
+
glaip_sdk/utils/rendering/steps/__init__.py,sha256=y1BJUPeT4bclXPmsy6B66KNZWiY8W5p-LnLnlrxynP8,840
|
|
97
|
+
glaip_sdk/utils/rendering/steps/event_processor.py,sha256=sGOHpxm7WmKxxY68l9Su6_YbDkXcoFblwkv1fToSX5k,29048
|
|
98
|
+
glaip_sdk/utils/rendering/steps/format.py,sha256=Chnq7OBaj8XMeBntSBxrX5zSmrYeGcOszooNeBe7_pM,5654
|
|
99
|
+
glaip_sdk/utils/rendering/steps/manager.py,sha256=BiBmTeQMQhjRMykgICXsXNYh1hGsss-fH9BIGVMWFi0,13194
|
|
100
|
+
glaip_sdk/utils/rendering/timing.py,sha256=__F1eFPoocm7Dps7Y1O_gJV24HsNTbx_FMiqEDN4T9o,1063
|
|
101
|
+
glaip_sdk/utils/rendering/viewer/__init__.py,sha256=XrxmE2cMAozqrzo1jtDFm8HqNtvDcYi2mAhXLXn5CjI,457
|
|
102
|
+
glaip_sdk/utils/rendering/viewer/presenter.py,sha256=mlLMTjnyeyPVtsyrAbz1BJu9lFGQSlS-voZ-_Cuugv0,5725
|
|
87
103
|
glaip_sdk/utils/resource_refs.py,sha256=vF34kyAtFBLnaKnQVrsr2st1JiSxVbIZ4yq0DelJvCI,5966
|
|
88
104
|
glaip_sdk/utils/run_renderer.py,sha256=d_VMI6LbvHPUUeRmGqh5wK_lHqDEIAcym2iqpbtDad0,1365
|
|
89
105
|
glaip_sdk/utils/serialization.py,sha256=z-qpvWLSBrGK3wbUclcA1UIKLXJedTnMSwPdq-FF4lo,13308
|
|
90
|
-
glaip_sdk/utils/validation.py,sha256=
|
|
91
|
-
glaip_sdk-0.
|
|
92
|
-
glaip_sdk-0.
|
|
93
|
-
glaip_sdk-0.
|
|
94
|
-
glaip_sdk-0.
|
|
106
|
+
glaip_sdk/utils/validation.py,sha256=Vt8oSnn7OM6ns5vjOl5FwGIMWBPb0yI6RD5XL_L5_4M,6826
|
|
107
|
+
glaip_sdk-0.4.0.dist-info/METADATA,sha256=3-W1vIpTHWJPyrCo9XrN1V-XSv_1cJRkctTVpIQiNdU,7053
|
|
108
|
+
glaip_sdk-0.4.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
|
109
|
+
glaip_sdk-0.4.0.dist-info/entry_points.txt,sha256=EGs8NO8J1fdFMWA3CsF7sKBEvtHb_fujdCoNPhfMouE,47
|
|
110
|
+
glaip_sdk-0.4.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|