glaip-sdk 0.0.15__py3-none-any.whl → 0.0.17__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/__init__.py +1 -1
- glaip_sdk/branding.py +28 -2
- glaip_sdk/cli/commands/agents.py +36 -27
- glaip_sdk/cli/commands/configure.py +46 -52
- glaip_sdk/cli/commands/mcps.py +19 -22
- glaip_sdk/cli/commands/tools.py +19 -13
- glaip_sdk/cli/config.py +42 -0
- glaip_sdk/cli/display.py +97 -30
- glaip_sdk/cli/main.py +141 -124
- glaip_sdk/cli/mcp_validators.py +2 -2
- glaip_sdk/cli/pager.py +3 -2
- glaip_sdk/cli/parsers/json_input.py +2 -2
- glaip_sdk/cli/resolution.py +12 -10
- glaip_sdk/cli/rich_helpers.py +29 -0
- glaip_sdk/cli/slash/agent_session.py +7 -0
- glaip_sdk/cli/slash/prompt.py +21 -2
- glaip_sdk/cli/slash/session.py +15 -21
- glaip_sdk/cli/update_notifier.py +8 -2
- glaip_sdk/cli/utils.py +115 -58
- glaip_sdk/client/_agent_payloads.py +504 -0
- glaip_sdk/client/agents.py +633 -559
- glaip_sdk/client/base.py +92 -20
- glaip_sdk/client/main.py +14 -0
- glaip_sdk/client/run_rendering.py +275 -0
- glaip_sdk/config/constants.py +4 -1
- glaip_sdk/exceptions.py +15 -0
- glaip_sdk/models.py +5 -0
- glaip_sdk/payload_schemas/__init__.py +19 -0
- glaip_sdk/payload_schemas/agent.py +87 -0
- glaip_sdk/rich_components.py +12 -0
- glaip_sdk/utils/client_utils.py +12 -0
- glaip_sdk/utils/import_export.py +2 -2
- glaip_sdk/utils/rendering/formatting.py +5 -0
- glaip_sdk/utils/rendering/models.py +22 -0
- glaip_sdk/utils/rendering/renderer/base.py +9 -1
- glaip_sdk/utils/rendering/renderer/panels.py +0 -1
- glaip_sdk/utils/rendering/steps.py +59 -0
- glaip_sdk/utils/serialization.py +24 -3
- {glaip_sdk-0.0.15.dist-info → glaip_sdk-0.0.17.dist-info}/METADATA +2 -2
- glaip_sdk-0.0.17.dist-info/RECORD +73 -0
- glaip_sdk-0.0.15.dist-info/RECORD +0 -67
- {glaip_sdk-0.0.15.dist-info → glaip_sdk-0.0.17.dist-info}/WHEEL +0 -0
- {glaip_sdk-0.0.15.dist-info → glaip_sdk-0.0.17.dist-info}/entry_points.txt +0 -0
glaip_sdk/utils/client_utils.py
CHANGED
|
@@ -41,6 +41,11 @@ class MultipartData:
|
|
|
41
41
|
self._exit_stack.close()
|
|
42
42
|
|
|
43
43
|
def __enter__(self) -> "MultipartData":
|
|
44
|
+
"""Enter context manager.
|
|
45
|
+
|
|
46
|
+
Returns:
|
|
47
|
+
Self instance for context manager protocol
|
|
48
|
+
"""
|
|
44
49
|
return self
|
|
45
50
|
|
|
46
51
|
def __exit__(
|
|
@@ -49,6 +54,13 @@ class MultipartData:
|
|
|
49
54
|
_exc_val: BaseException | None,
|
|
50
55
|
_exc_tb: Any,
|
|
51
56
|
) -> None:
|
|
57
|
+
"""Exit context manager and close all file handles.
|
|
58
|
+
|
|
59
|
+
Args:
|
|
60
|
+
_exc_type: Exception type (unused)
|
|
61
|
+
_exc_val: Exception value (unused)
|
|
62
|
+
_exc_tb: Exception traceback (unused)
|
|
63
|
+
"""
|
|
52
64
|
self.close()
|
|
53
65
|
|
|
54
66
|
|
glaip_sdk/utils/import_export.py
CHANGED
|
@@ -66,7 +66,7 @@ def convert_export_to_import_format(
|
|
|
66
66
|
|
|
67
67
|
def _get_default_array_fields() -> list[str]:
|
|
68
68
|
"""Get default array fields that should be merged."""
|
|
69
|
-
return ["tools", "agents"]
|
|
69
|
+
return ["tools", "agents", "mcps"]
|
|
70
70
|
|
|
71
71
|
|
|
72
72
|
def _should_use_cli_value(cli_value: Any) -> bool:
|
|
@@ -133,7 +133,7 @@ def merge_import_with_cli_args(
|
|
|
133
133
|
|
|
134
134
|
Notes:
|
|
135
135
|
- CLI arguments take precedence over imported data
|
|
136
|
-
- Array fields (tools, agents) are combined rather than replaced
|
|
136
|
+
- Array fields (tools, agents, mcps) are combined rather than replaced
|
|
137
137
|
- Empty arrays/lists are treated as None (no override)
|
|
138
138
|
"""
|
|
139
139
|
if array_fields is None:
|
|
@@ -141,6 +141,11 @@ def pretty_out(output: any, max_len: int = DEFAULT_ARGS_MAX_LEN) -> str:
|
|
|
141
141
|
|
|
142
142
|
|
|
143
143
|
def get_spinner_char() -> str:
|
|
144
|
+
"""Get the next character for a spinner animation.
|
|
145
|
+
|
|
146
|
+
Returns:
|
|
147
|
+
A single character from the spinner frames based on current time
|
|
148
|
+
"""
|
|
144
149
|
frames = "⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏"
|
|
145
150
|
return frames[int(time.time() * 10) % len(frames)]
|
|
146
151
|
|
|
@@ -13,6 +13,12 @@ from typing import Any
|
|
|
13
13
|
|
|
14
14
|
@dataclass(slots=True)
|
|
15
15
|
class Step:
|
|
16
|
+
"""Represents a single execution step in a workflow.
|
|
17
|
+
|
|
18
|
+
A step tracks the execution of tools, delegates, or agents with
|
|
19
|
+
timing information and metadata.
|
|
20
|
+
"""
|
|
21
|
+
|
|
16
22
|
step_id: str
|
|
17
23
|
kind: str # "tool" | "delegate" | "agent"
|
|
18
24
|
name: str
|
|
@@ -26,6 +32,11 @@ class Step:
|
|
|
26
32
|
duration_ms: int | None = None
|
|
27
33
|
|
|
28
34
|
def finish(self, duration_raw: float | None) -> None:
|
|
35
|
+
"""Mark the step as finished and calculate duration.
|
|
36
|
+
|
|
37
|
+
Args:
|
|
38
|
+
duration_raw: Raw duration in seconds, or None to calculate from started_at
|
|
39
|
+
"""
|
|
29
40
|
if isinstance(duration_raw, int | float) and duration_raw > 0:
|
|
30
41
|
# Use provided duration if it's a positive number (even if very small)
|
|
31
42
|
self.duration_ms = round(float(duration_raw) * 1000)
|
|
@@ -37,15 +48,26 @@ class Step:
|
|
|
37
48
|
|
|
38
49
|
@dataclass(slots=True)
|
|
39
50
|
class RunStats:
|
|
51
|
+
"""Statistics for a complete execution run.
|
|
52
|
+
|
|
53
|
+
Tracks timing and resource usage information for workflow executions.
|
|
54
|
+
"""
|
|
55
|
+
|
|
40
56
|
started_at: float = field(default_factory=monotonic)
|
|
41
57
|
finished_at: float | None = None
|
|
42
58
|
usage: dict[str, Any] = field(default_factory=dict)
|
|
43
59
|
|
|
44
60
|
def stop(self) -> None:
|
|
61
|
+
"""Mark the run as finished and record the end time."""
|
|
45
62
|
self.finished_at = monotonic()
|
|
46
63
|
|
|
47
64
|
@property
|
|
48
65
|
def duration_s(self) -> float | None:
|
|
66
|
+
"""Get the duration of the run in seconds.
|
|
67
|
+
|
|
68
|
+
Returns:
|
|
69
|
+
Duration in seconds if run is finished, None otherwise
|
|
70
|
+
"""
|
|
49
71
|
return (
|
|
50
72
|
None
|
|
51
73
|
if self.finished_at is None
|
|
@@ -57,6 +57,10 @@ class RendererState:
|
|
|
57
57
|
finalizing_ui: bool = False
|
|
58
58
|
|
|
59
59
|
def __post_init__(self) -> None:
|
|
60
|
+
"""Initialize renderer state after dataclass creation.
|
|
61
|
+
|
|
62
|
+
Ensures buffer is initialized as an empty list if not provided.
|
|
63
|
+
"""
|
|
60
64
|
if self.buffer is None:
|
|
61
65
|
self.buffer = []
|
|
62
66
|
|
|
@@ -401,7 +405,6 @@ class RichStreamRenderer:
|
|
|
401
405
|
|
|
402
406
|
def apply_verbosity(self, verbose: bool) -> None:
|
|
403
407
|
"""Update verbose behaviour at runtime."""
|
|
404
|
-
|
|
405
408
|
if self.verbose == verbose:
|
|
406
409
|
return
|
|
407
410
|
|
|
@@ -838,6 +841,11 @@ class RichStreamRenderer:
|
|
|
838
841
|
self._shutdown_live()
|
|
839
842
|
|
|
840
843
|
def __del__(self) -> None:
|
|
844
|
+
"""Destructor that ensures live rendering is properly shut down.
|
|
845
|
+
|
|
846
|
+
This is a safety net to prevent resource leaks if the renderer
|
|
847
|
+
is not explicitly stopped.
|
|
848
|
+
"""
|
|
841
849
|
# Destructors must never raise
|
|
842
850
|
try:
|
|
843
851
|
self._shutdown_live(reset_attr=False)
|
|
@@ -16,7 +16,6 @@ from glaip_sdk.rich_components import AIPPanel
|
|
|
16
16
|
|
|
17
17
|
def _spinner_renderable(message: str = "Processing...") -> Align:
|
|
18
18
|
"""Build a Rich spinner renderable for loading placeholders."""
|
|
19
|
-
|
|
20
19
|
spinner = Spinner(
|
|
21
20
|
"dots",
|
|
22
21
|
text=Text(f" {message}", style="dim"),
|
|
@@ -12,7 +12,18 @@ from glaip_sdk.utils.rendering.models import Step
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
class StepManager:
|
|
15
|
+
"""Manages the lifecycle and organization of execution steps.
|
|
16
|
+
|
|
17
|
+
Tracks step creation, parent-child relationships, and execution state
|
|
18
|
+
with automatic pruning of old steps when limits are reached.
|
|
19
|
+
"""
|
|
20
|
+
|
|
15
21
|
def __init__(self, max_steps: int = 200) -> None:
|
|
22
|
+
"""Initialize the step manager.
|
|
23
|
+
|
|
24
|
+
Args:
|
|
25
|
+
max_steps: Maximum number of steps to retain before pruning
|
|
26
|
+
"""
|
|
16
27
|
self.by_id: dict[str, Step] = {}
|
|
17
28
|
self.order: list[str] = []
|
|
18
29
|
self.children: dict[str, list[str]] = {}
|
|
@@ -62,6 +73,19 @@ class StepManager:
|
|
|
62
73
|
parent_id: str | None = None,
|
|
63
74
|
args: dict[str, object] | None = None,
|
|
64
75
|
) -> Step:
|
|
76
|
+
"""Start a new step or return existing running step with same parameters.
|
|
77
|
+
|
|
78
|
+
Args:
|
|
79
|
+
task_id: Task identifier
|
|
80
|
+
context_id: Context identifier
|
|
81
|
+
kind: Step kind (tool, delegate, agent)
|
|
82
|
+
name: Step name
|
|
83
|
+
parent_id: Parent step ID if this is a child step
|
|
84
|
+
args: Step arguments
|
|
85
|
+
|
|
86
|
+
Returns:
|
|
87
|
+
The Step instance (new or existing)
|
|
88
|
+
"""
|
|
65
89
|
existing = self.find_running(
|
|
66
90
|
task_id=task_id, context_id=context_id, kind=kind, name=name
|
|
67
91
|
)
|
|
@@ -149,6 +173,14 @@ class StepManager:
|
|
|
149
173
|
total -= subtree_size
|
|
150
174
|
|
|
151
175
|
def get_child_count(self, step_id: str) -> int:
|
|
176
|
+
"""Get the number of child steps for a given step.
|
|
177
|
+
|
|
178
|
+
Args:
|
|
179
|
+
step_id: The parent step ID
|
|
180
|
+
|
|
181
|
+
Returns:
|
|
182
|
+
Number of child steps
|
|
183
|
+
"""
|
|
152
184
|
return len(self.children.get(step_id, []))
|
|
153
185
|
|
|
154
186
|
def find_running(
|
|
@@ -159,6 +191,17 @@ class StepManager:
|
|
|
159
191
|
kind: str,
|
|
160
192
|
name: str,
|
|
161
193
|
) -> Step | None:
|
|
194
|
+
"""Find a currently running step with the given parameters.
|
|
195
|
+
|
|
196
|
+
Args:
|
|
197
|
+
task_id: Task identifier
|
|
198
|
+
context_id: Context identifier
|
|
199
|
+
kind: Step kind (tool, delegate, agent)
|
|
200
|
+
name: Step name
|
|
201
|
+
|
|
202
|
+
Returns:
|
|
203
|
+
The running Step if found, None otherwise
|
|
204
|
+
"""
|
|
162
205
|
key = (task_id, context_id, kind, name)
|
|
163
206
|
step_id = self._last_running.get(key)
|
|
164
207
|
if step_id:
|
|
@@ -191,6 +234,22 @@ class StepManager:
|
|
|
191
234
|
output: object | None = None,
|
|
192
235
|
duration_raw: float | None = None,
|
|
193
236
|
) -> Step:
|
|
237
|
+
"""Finish a step with the given parameters.
|
|
238
|
+
|
|
239
|
+
Args:
|
|
240
|
+
task_id: Task identifier
|
|
241
|
+
context_id: Context identifier
|
|
242
|
+
kind: Step kind (tool, delegate, agent)
|
|
243
|
+
name: Step name
|
|
244
|
+
output: Step output data
|
|
245
|
+
duration_raw: Raw duration in seconds
|
|
246
|
+
|
|
247
|
+
Returns:
|
|
248
|
+
The finished Step instance
|
|
249
|
+
|
|
250
|
+
Raises:
|
|
251
|
+
RuntimeError: If no matching step is found
|
|
252
|
+
"""
|
|
194
253
|
st = self.find_running(
|
|
195
254
|
task_id=task_id, context_id=context_id, kind=kind, name=name
|
|
196
255
|
)
|
glaip_sdk/utils/serialization.py
CHANGED
|
@@ -188,7 +188,6 @@ def collect_attributes_for_export(resource: Any) -> dict[str, Any]:
|
|
|
188
188
|
and callables are filtered out so the result only contains user-configurable
|
|
189
189
|
data.
|
|
190
190
|
"""
|
|
191
|
-
|
|
192
191
|
mapping = _coerce_resource_to_mapping(resource)
|
|
193
192
|
if (
|
|
194
193
|
mapping is None
|
|
@@ -204,12 +203,35 @@ def collect_attributes_for_export(resource: Any) -> dict[str, Any]:
|
|
|
204
203
|
for key, value in items:
|
|
205
204
|
if _should_include_attribute(key, value):
|
|
206
205
|
export[key] = value
|
|
206
|
+
|
|
207
|
+
# Post-process agent exports to clean up unwanted transformations
|
|
208
|
+
if hasattr(resource, "__class__") and resource.__class__.__name__ == "Agent":
|
|
209
|
+
export = _clean_agent_export_data(export)
|
|
210
|
+
|
|
207
211
|
return export
|
|
208
212
|
|
|
209
213
|
|
|
214
|
+
def _clean_agent_export_data(agent_data: dict[str, Any]) -> dict[str, Any]:
|
|
215
|
+
"""Clean up agent export data to remove unwanted transformations.
|
|
216
|
+
|
|
217
|
+
This function addresses the issue where the backend API transforms
|
|
218
|
+
the 'timeout' field into 'execution_timeout' in an 'agent_config' section
|
|
219
|
+
during export, which is not desired for clean agent configuration exports.
|
|
220
|
+
"""
|
|
221
|
+
cleaned = agent_data.copy()
|
|
222
|
+
|
|
223
|
+
# Remove execution_timeout from agent_config if it exists
|
|
224
|
+
if "agent_config" in cleaned and isinstance(cleaned["agent_config"], dict):
|
|
225
|
+
agent_config = cleaned["agent_config"]
|
|
226
|
+
if "execution_timeout" in agent_config:
|
|
227
|
+
# Move execution_timeout back to root level as timeout
|
|
228
|
+
cleaned["timeout"] = agent_config.pop("execution_timeout")
|
|
229
|
+
|
|
230
|
+
return cleaned
|
|
231
|
+
|
|
232
|
+
|
|
210
233
|
def _coerce_resource_to_mapping(resource: Any) -> dict[str, Any] | None:
|
|
211
234
|
"""Return a mapping representation of ``resource`` when possible."""
|
|
212
|
-
|
|
213
235
|
for attr in _PREFERRED_MAPPERS:
|
|
214
236
|
method = getattr(resource, attr, None)
|
|
215
237
|
if callable(method):
|
|
@@ -236,7 +258,6 @@ def _coerce_resource_to_mapping(resource: Any) -> dict[str, Any] | None:
|
|
|
236
258
|
|
|
237
259
|
def _iter_public_attribute_names(resource: Any) -> Iterable[str]:
|
|
238
260
|
"""Yield attribute names we should inspect on ``resource``."""
|
|
239
|
-
|
|
240
261
|
seen: set[str] = set()
|
|
241
262
|
names: list[str] = []
|
|
242
263
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: glaip-sdk
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.17
|
|
4
4
|
Summary: Python SDK for GL AIP (GDP Labs AI Agent Package) - Simplified CLI Design
|
|
5
5
|
License: MIT
|
|
6
6
|
Author: Raymond Christopher
|
|
@@ -22,7 +22,7 @@ Requires-Dist: readchar (>=4.2.1,<5.0.0)
|
|
|
22
22
|
Requires-Dist: rich (>=13.0.0)
|
|
23
23
|
Description-Content-Type: text/markdown
|
|
24
24
|
|
|
25
|
-
# GL AIP
|
|
25
|
+
# GL AIP — GDP Labs AI Agents Package
|
|
26
26
|
|
|
27
27
|
[](https://www.python.org/downloads/)
|
|
28
28
|
[](https://github.com/psf/black)
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
glaip_sdk/__init__.py,sha256=-Itm_1dz4QwhIUmqagvCwwvSjKYKYJI3lZSHD2bwtko,366
|
|
2
|
+
glaip_sdk/_version.py,sha256=tGkFWAVu2ry4Hy7j-u7ophGbPRX8y-ngBbXDhN1VBIQ,2007
|
|
3
|
+
glaip_sdk/branding.py,sha256=RwXVIc_gMDayKsNN4HBqo8c1fodTMvGFNhPnEZxpRIQ,6410
|
|
4
|
+
glaip_sdk/cli/__init__.py,sha256=xCCfuF1Yc7mpCDcfhHZTX0vizvtrDSLeT8MJ3V7m5A0,156
|
|
5
|
+
glaip_sdk/cli/agent_config.py,sha256=VHjebw68wAdhGUzYdPH8qz10oADZPRgUQcPW6F7iHIU,2421
|
|
6
|
+
glaip_sdk/cli/auth.py,sha256=eYdtGmJ3XgiO96hq_69GF6b3W-aRWZrDQ-6bHuaRX4M,13517
|
|
7
|
+
glaip_sdk/cli/commands/__init__.py,sha256=x0CZlZbZHoHvuzfoTWIyEch6WmNnbPzxajrox6riYp0,173
|
|
8
|
+
glaip_sdk/cli/commands/agents.py,sha256=FtWGhbl4QRlqxXFNMEnZUpw5mjQ0KPjY0_6o0hYyoaU,41251
|
|
9
|
+
glaip_sdk/cli/commands/configure.py,sha256=h2GgBpnBWYHAhp3zqkAiy8QNgwPD_7pToZBZRpuMoNM,7869
|
|
10
|
+
glaip_sdk/cli/commands/mcps.py,sha256=V41Te3IG8jNFRMb1v1XQV1t461uxpPsrmDFIO6cZPOk,28185
|
|
11
|
+
glaip_sdk/cli/commands/models.py,sha256=G1ce-wZOfvMP6SMnIVuSQ89CF444Kz8Ja6nrNOQXCqU,1729
|
|
12
|
+
glaip_sdk/cli/commands/tools.py,sha256=YfkB7HRBGcAOC6N-wXTV5Ch5XTXqjKTtyq-Cfb0-18c,18908
|
|
13
|
+
glaip_sdk/cli/config.py,sha256=jCLJxTBAnOU6EJI6JjcpwUTEAWCJRoALbMrhOvvAofc,946
|
|
14
|
+
glaip_sdk/cli/context.py,sha256=M4weRf8dmp5bMtPLRF3w1StnRB7Lo8FPFq2GQMv3Rv8,3617
|
|
15
|
+
glaip_sdk/cli/display.py,sha256=fNb2aBEV4V76TaRQ-L6EO-1fwq71VlzekDzZRTYKEPA,10758
|
|
16
|
+
glaip_sdk/cli/io.py,sha256=GPkw3pQMLBGoD5GH-KlbKpNRlVWFZOXHE17F7V3kQsI,3343
|
|
17
|
+
glaip_sdk/cli/main.py,sha256=gIF4b2mtLrWktsVdYcoHO91S07twtfn1w4D4RCqAMfc,13499
|
|
18
|
+
glaip_sdk/cli/masking.py,sha256=BOZjwUqxQf3LQlYgUMwq7UYgve8x4_1Qk04ixiJJPZ8,4399
|
|
19
|
+
glaip_sdk/cli/mcp_validators.py,sha256=SeDbgXkRuBXyDtCmUMpL-1Vh7fmGldz-shAaHhOqbCc,10125
|
|
20
|
+
glaip_sdk/cli/pager.py,sha256=n9ypOGPPSaseJlwPG1X38qSz1yV3pjRWunzA4xx5E7M,8052
|
|
21
|
+
glaip_sdk/cli/parsers/__init__.py,sha256=Ycd4HDfYmA7GUGFt0ndBPBo5uTbv15XsXnYUj-a89ug,183
|
|
22
|
+
glaip_sdk/cli/parsers/json_input.py,sha256=6NqzVM5l8g0pwCNLKeTVL9SeLM9W_Fl4H__X0dfaQEA,4039
|
|
23
|
+
glaip_sdk/cli/resolution.py,sha256=jXUNpKKhs30n7Ke0uz1Hbny5DTo2_sxvchIhTbeBubE,2393
|
|
24
|
+
glaip_sdk/cli/rich_helpers.py,sha256=ByUOmK16IisoXWE7nEiI55BF1KWDrm6KCYAxqHu0XOU,825
|
|
25
|
+
glaip_sdk/cli/slash/__init__.py,sha256=Vdv6Y8bu-pA8dxDlyP4XrhudBPivztUozhLAz9vaLig,682
|
|
26
|
+
glaip_sdk/cli/slash/agent_session.py,sha256=-woZkqH70YUSaEHDF9XpxP-cbh36Jx7yuJW7aA3JszI,7078
|
|
27
|
+
glaip_sdk/cli/slash/prompt.py,sha256=2CLAfdmX6yQedcNLnwZ4g6QFoV9TVv8il9OF8iaJwdc,7977
|
|
28
|
+
glaip_sdk/cli/slash/session.py,sha256=JsTHZB8gPFFdcp_bhtw-nig37Z61OWK_okPMx47H86c,31484
|
|
29
|
+
glaip_sdk/cli/update_notifier.py,sha256=nfQ-jRQKn-nZyt7EhxNfZq9Z7nBrYjZJKAgAtuHffnw,3410
|
|
30
|
+
glaip_sdk/cli/utils.py,sha256=pgbV0f5rdjAHeZ-ULCntH7HUG6FdFB9kODv0a9puB40,35503
|
|
31
|
+
glaip_sdk/cli/validators.py,sha256=USbBgY86AwuDHO-Q_g8g7hu-ot4NgITBsWjTWIl62ms,5569
|
|
32
|
+
glaip_sdk/client/__init__.py,sha256=nYLXfBVTTWwKjP0e63iumPYO4k5FifwWaELQPaPIKIg,188
|
|
33
|
+
glaip_sdk/client/_agent_payloads.py,sha256=sYlMzrfAdd8KC37qxokLy2uDd3aOhzQirnv7UYlvwYc,16385
|
|
34
|
+
glaip_sdk/client/agents.py,sha256=GpDlxzhUQaMn9IUq_kCsbZo5TBfwWXFYs1bbpPLiSok,35492
|
|
35
|
+
glaip_sdk/client/base.py,sha256=OPRlAWhZ77rUK0MRGA83-zW5NVhxJ1RgdfcfGOYr8rI,16267
|
|
36
|
+
glaip_sdk/client/main.py,sha256=tfyyx9utReq7nXdtHKOCXQIUXXeZ1-D6u4OGTu6h8Es,8632
|
|
37
|
+
glaip_sdk/client/mcps.py,sha256=-O-I15qjbwfSA69mouHY6g5_qgPWC4rM98VJLpOkh1A,8975
|
|
38
|
+
glaip_sdk/client/run_rendering.py,sha256=fXUj1FBw8n-nAzjI_zaG7-Ap_UXXe0z4tMdL7m2R7Ek,9213
|
|
39
|
+
glaip_sdk/client/tools.py,sha256=n8DIiOOf1YU_j9JK3Bx2-rDnkpckPi0MI9Ok2s1kwa4,16634
|
|
40
|
+
glaip_sdk/client/validators.py,sha256=NtPsWjQLjj25LiUnmR-WuS8lL5p4MVRaYT9UVRmj9bo,8809
|
|
41
|
+
glaip_sdk/config/constants.py,sha256=B9CSlYG8LYjQuo_vNpqy-eSks3ej37FMcvJMy6d_F4U,888
|
|
42
|
+
glaip_sdk/exceptions.py,sha256=ILquxC4QGPFR9eY6RpeXzkQsblfsvZMGFqz38ZjeW3E,2345
|
|
43
|
+
glaip_sdk/models.py,sha256=ofhnNOaKK0UK1mDiot73z8qS0-X2IKJXmm7YyOifGzg,8876
|
|
44
|
+
glaip_sdk/payload_schemas/__init__.py,sha256=fJamlkpS3IfS9xyKAQaUbnalvrtG5Ied69OUVAA3xvs,395
|
|
45
|
+
glaip_sdk/payload_schemas/agent.py,sha256=nlizuv2w4SVzmMJSE90rE6Ll0Hfpcr5hvPsW_NtXCV0,3204
|
|
46
|
+
glaip_sdk/rich_components.py,sha256=veaps1hrSkC3nSVunAevvynSux8Cg3yFEDmbJk66p7w,1267
|
|
47
|
+
glaip_sdk/utils/__init__.py,sha256=fmVGcUFa7G0CCfSMSqfNU2BqFl36G1gOFyDfTvtJfVw,926
|
|
48
|
+
glaip_sdk/utils/agent_config.py,sha256=b7_J5DELyk0b_XEoi7tsxbS3wqzAKbMa-3_C-65pPIY,6791
|
|
49
|
+
glaip_sdk/utils/client_utils.py,sha256=x27kHQNOxvyVN5GLUiymi0eHzkXRKw-x3s0q0VkMvY4,13938
|
|
50
|
+
glaip_sdk/utils/display.py,sha256=94s9lYF_8ra8jpeqOkbVrUm8oidtCE6OtucyxLQPKmU,3105
|
|
51
|
+
glaip_sdk/utils/general.py,sha256=V5hJrIpYDvDsldU_nChHpuvV2AwhFLUI7Qvcaihq_8A,2270
|
|
52
|
+
glaip_sdk/utils/import_export.py,sha256=jEhl5U6hWWMR1wo5AXpV-_jN_56DcWcemOa2UaFHapk,5217
|
|
53
|
+
glaip_sdk/utils/rendering/__init__.py,sha256=vXjwk5rPhhfPyD8S0DnV4GFFEtPJp4HCCg1Um9SXfs0,70
|
|
54
|
+
glaip_sdk/utils/rendering/formatting.py,sha256=I8nN4H3DxTOYIExn6gozcxyAn_GO1lSztbcrSCkcscg,7351
|
|
55
|
+
glaip_sdk/utils/rendering/models.py,sha256=AM9JbToyA3zrAzXQYjh6oxjBkgZDfWEbs5MmNKODnOY,2259
|
|
56
|
+
glaip_sdk/utils/rendering/renderer/__init__.py,sha256=EXwVBmGkSYcype4ocAXo69Z1kXu0gpNXmhH5LW0_B7A,2939
|
|
57
|
+
glaip_sdk/utils/rendering/renderer/base.py,sha256=HGljrxMcDq4QCsWcwR45qZYjKWZprBunnZJYYea8FTQ,42764
|
|
58
|
+
glaip_sdk/utils/rendering/renderer/config.py,sha256=-P35z9JO_1ypJXAqxJ1ybHraH4i-I1LPopeW3Lh7ACE,785
|
|
59
|
+
glaip_sdk/utils/rendering/renderer/console.py,sha256=4cLOw4Q1fkHkApuj6dWW8eYpeYdcT0t2SO5MbVt5UTc,1844
|
|
60
|
+
glaip_sdk/utils/rendering/renderer/debug.py,sha256=FEYxAu4ZB0CjrJKevqQ2TKDgElA2cf6GqZXCNm12sNQ,3721
|
|
61
|
+
glaip_sdk/utils/rendering/renderer/panels.py,sha256=N0Z6UZt3FUTxakRzHdOef1i3UnMR_Zr_TAvw0_MRpnQ,3363
|
|
62
|
+
glaip_sdk/utils/rendering/renderer/progress.py,sha256=i4HG_iNwtK4c3Gf2sviLCiOJ-5ydX4t-YE5dgtLOxNI,3438
|
|
63
|
+
glaip_sdk/utils/rendering/renderer/stream.py,sha256=1RP5TIV7tqg07X9gPN053XeabFGVT4jPplxaoPU0L38,8601
|
|
64
|
+
glaip_sdk/utils/rendering/steps.py,sha256=V7xFoJM_B-nWT1wMdcXGN5ytCrDTxEzKcX_YCWyJqkk,9051
|
|
65
|
+
glaip_sdk/utils/resource_refs.py,sha256=0YzblJNfRhz9xhpaKE9aE68XEV-6_ssr0fIkiMVOka0,5489
|
|
66
|
+
glaip_sdk/utils/rich_utils.py,sha256=-Ij-1bIJvnVAi6DrfftchIlMcvOTjVmSE0Qqax0EY_s,763
|
|
67
|
+
glaip_sdk/utils/run_renderer.py,sha256=d_VMI6LbvHPUUeRmGqh5wK_lHqDEIAcym2iqpbtDad0,1365
|
|
68
|
+
glaip_sdk/utils/serialization.py,sha256=AFbucakFaCtQDfcgsm2gHZ1iZDA8OaJSZUsS6FhWFR0,12820
|
|
69
|
+
glaip_sdk/utils/validation.py,sha256=QNORcdyvuliEs4EH2_mkDgmoyT9utgl7YNhaf45SEf8,6992
|
|
70
|
+
glaip_sdk-0.0.17.dist-info/METADATA,sha256=z1GiwKAgE5eXkCbBfUXrQuMZBUQ14XWuOZhgj5ugyAw,5164
|
|
71
|
+
glaip_sdk-0.0.17.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
|
72
|
+
glaip_sdk-0.0.17.dist-info/entry_points.txt,sha256=EGs8NO8J1fdFMWA3CsF7sKBEvtHb_fujdCoNPhfMouE,47
|
|
73
|
+
glaip_sdk-0.0.17.dist-info/RECORD,,
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
glaip_sdk/__init__.py,sha256=FD-oTyFUKsTB9xTuGiqvkhuFXfeZ-TspjkeXERglha8,370
|
|
2
|
-
glaip_sdk/_version.py,sha256=tGkFWAVu2ry4Hy7j-u7ophGbPRX8y-ngBbXDhN1VBIQ,2007
|
|
3
|
-
glaip_sdk/branding.py,sha256=xsHL7nRAWuwJrAvCi2fZhaPD-AWvdcLNoTVmlw4gZKc,5604
|
|
4
|
-
glaip_sdk/cli/__init__.py,sha256=xCCfuF1Yc7mpCDcfhHZTX0vizvtrDSLeT8MJ3V7m5A0,156
|
|
5
|
-
glaip_sdk/cli/agent_config.py,sha256=VHjebw68wAdhGUzYdPH8qz10oADZPRgUQcPW6F7iHIU,2421
|
|
6
|
-
glaip_sdk/cli/auth.py,sha256=eYdtGmJ3XgiO96hq_69GF6b3W-aRWZrDQ-6bHuaRX4M,13517
|
|
7
|
-
glaip_sdk/cli/commands/__init__.py,sha256=x0CZlZbZHoHvuzfoTWIyEch6WmNnbPzxajrox6riYp0,173
|
|
8
|
-
glaip_sdk/cli/commands/agents.py,sha256=Ejg_IFXfvajW2q3IrmotiLjljEYknKEcMejdvVCWoDs,40644
|
|
9
|
-
glaip_sdk/cli/commands/configure.py,sha256=eRDzsaKV4fl2lJt8ieS4g2-xRnaa02eAAPW8xBf-tqA,7507
|
|
10
|
-
glaip_sdk/cli/commands/mcps.py,sha256=I-cqVqAGqSiUDgWOEB6eUeKg_wMtteoPyyXwu96qq6Q,28207
|
|
11
|
-
glaip_sdk/cli/commands/models.py,sha256=G1ce-wZOfvMP6SMnIVuSQ89CF444Kz8Ja6nrNOQXCqU,1729
|
|
12
|
-
glaip_sdk/cli/commands/tools.py,sha256=P3zuKVapoC3yV4rnHGdFPO_snjLGWo5IpfuYHIUfMeU,18711
|
|
13
|
-
glaip_sdk/cli/context.py,sha256=M4weRf8dmp5bMtPLRF3w1StnRB7Lo8FPFq2GQMv3Rv8,3617
|
|
14
|
-
glaip_sdk/cli/display.py,sha256=jE20swoRKzpYUmc0jgbeonaXKeE9x95hfjWAEdnBYRc,8727
|
|
15
|
-
glaip_sdk/cli/io.py,sha256=GPkw3pQMLBGoD5GH-KlbKpNRlVWFZOXHE17F7V3kQsI,3343
|
|
16
|
-
glaip_sdk/cli/main.py,sha256=3Bl8u9t1MekzaNrAZqsx4TukbzzFdi6Wss6jvTDos00,12930
|
|
17
|
-
glaip_sdk/cli/masking.py,sha256=BOZjwUqxQf3LQlYgUMwq7UYgve8x4_1Qk04ixiJJPZ8,4399
|
|
18
|
-
glaip_sdk/cli/mcp_validators.py,sha256=PEJRzb7ogRkwNJwJK9k5Xmb8hvoQ58L2Qywqd_3Wayo,10125
|
|
19
|
-
glaip_sdk/cli/pager.py,sha256=KmOBhY66JHg2vRpiNJ69RnZiF8sFer7yR8NIdlxnALk,8007
|
|
20
|
-
glaip_sdk/cli/parsers/__init__.py,sha256=Ycd4HDfYmA7GUGFt0ndBPBo5uTbv15XsXnYUj-a89ug,183
|
|
21
|
-
glaip_sdk/cli/parsers/json_input.py,sha256=iISa31ZsDNYWfCVRy0cifRIg2gjnhI-XtdDLB-UOshg,4039
|
|
22
|
-
glaip_sdk/cli/resolution.py,sha256=BOw2NchReLKewAwBAZLWw_3_bI7u3tfzQEO7kQbIiGE,2067
|
|
23
|
-
glaip_sdk/cli/slash/__init__.py,sha256=Vdv6Y8bu-pA8dxDlyP4XrhudBPivztUozhLAz9vaLig,682
|
|
24
|
-
glaip_sdk/cli/slash/agent_session.py,sha256=pDOwGXNHuyJIulrGYu1pacyF3oxHWeDQY-Uv92h2qVg,6859
|
|
25
|
-
glaip_sdk/cli/slash/prompt.py,sha256=Pr5SSTOKFssRsi-AujOm5_BCW_f5MxgLwJ3CCji1ogM,7356
|
|
26
|
-
glaip_sdk/cli/slash/session.py,sha256=U5UEL6eIvNkIJcSz04Uf8Ql0EptmLJukqHxDCAJ-nOQ,31097
|
|
27
|
-
glaip_sdk/cli/update_notifier.py,sha256=uVbjZJnW4znTzx4AkqsDO4NfXiF-mtQiypTkJByAVuM,3236
|
|
28
|
-
glaip_sdk/cli/utils.py,sha256=IG1h0wY6rIYvDRcTZuOmSgAHiYlx6yD9SKHrTbDFHmc,33077
|
|
29
|
-
glaip_sdk/cli/validators.py,sha256=USbBgY86AwuDHO-Q_g8g7hu-ot4NgITBsWjTWIl62ms,5569
|
|
30
|
-
glaip_sdk/client/__init__.py,sha256=nYLXfBVTTWwKjP0e63iumPYO4k5FifwWaELQPaPIKIg,188
|
|
31
|
-
glaip_sdk/client/agents.py,sha256=FSKubF40wptMNIheC3_iawiX2CRbhTcNLFiz4qkPC6k,34659
|
|
32
|
-
glaip_sdk/client/base.py,sha256=O3dv3I7PqY91gH1FehBMRZcSXjwimfeBcJuiXidDmqw,13700
|
|
33
|
-
glaip_sdk/client/main.py,sha256=LlvYHP7-Hy7Eq1ep1kfk337K-Oue5SdKWJpqYfX9eXY,7993
|
|
34
|
-
glaip_sdk/client/mcps.py,sha256=-O-I15qjbwfSA69mouHY6g5_qgPWC4rM98VJLpOkh1A,8975
|
|
35
|
-
glaip_sdk/client/tools.py,sha256=n8DIiOOf1YU_j9JK3Bx2-rDnkpckPi0MI9Ok2s1kwa4,16634
|
|
36
|
-
glaip_sdk/client/validators.py,sha256=NtPsWjQLjj25LiUnmR-WuS8lL5p4MVRaYT9UVRmj9bo,8809
|
|
37
|
-
glaip_sdk/config/constants.py,sha256=ysEobMiXlLZGIOEaqTdHpPF8kmg5nbLn7BIcBvTCuHM,819
|
|
38
|
-
glaip_sdk/exceptions.py,sha256=DJgaIcvGA09qIX10-ypYgQQ5_k5N3qknmiIFP3p4Z7E,1872
|
|
39
|
-
glaip_sdk/models.py,sha256=0Y65LXpLqUY3IYVPIzP7jm8gdZUMw-EKRKGC1ZOLOcA,8758
|
|
40
|
-
glaip_sdk/rich_components.py,sha256=pmJd-81OQE8bC9UOXtga5rsax4zphKlzCZ1JoWbbQzQ,803
|
|
41
|
-
glaip_sdk/utils/__init__.py,sha256=fmVGcUFa7G0CCfSMSqfNU2BqFl36G1gOFyDfTvtJfVw,926
|
|
42
|
-
glaip_sdk/utils/agent_config.py,sha256=b7_J5DELyk0b_XEoi7tsxbS3wqzAKbMa-3_C-65pPIY,6791
|
|
43
|
-
glaip_sdk/utils/client_utils.py,sha256=M6rZloMKyONaZfI0RtU5tnkibwrIJL5Udw4wPMKkJcw,13588
|
|
44
|
-
glaip_sdk/utils/display.py,sha256=94s9lYF_8ra8jpeqOkbVrUm8oidtCE6OtucyxLQPKmU,3105
|
|
45
|
-
glaip_sdk/utils/general.py,sha256=V5hJrIpYDvDsldU_nChHpuvV2AwhFLUI7Qvcaihq_8A,2270
|
|
46
|
-
glaip_sdk/utils/import_export.py,sha256=az_0jCpMB7I6N5HygS2uc62-W6ddm4buEwm6gTsalhY,5203
|
|
47
|
-
glaip_sdk/utils/rendering/__init__.py,sha256=vXjwk5rPhhfPyD8S0DnV4GFFEtPJp4HCCg1Um9SXfs0,70
|
|
48
|
-
glaip_sdk/utils/rendering/formatting.py,sha256=_k8tkcobctmHvdygMljZF7-ALGXpD9-hHF1CNtM2KMU,7201
|
|
49
|
-
glaip_sdk/utils/rendering/models.py,sha256=SS34_00FaoGuSYn-viBkAtIbq7cJNwwPjpxnvyeUmxI,1567
|
|
50
|
-
glaip_sdk/utils/rendering/renderer/__init__.py,sha256=EXwVBmGkSYcype4ocAXo69Z1kXu0gpNXmhH5LW0_B7A,2939
|
|
51
|
-
glaip_sdk/utils/rendering/renderer/base.py,sha256=A_f8r3hWDVrQjzUR5CYzQMekPRIdG-l7Wjh9Hx492Xk,42425
|
|
52
|
-
glaip_sdk/utils/rendering/renderer/config.py,sha256=-P35z9JO_1ypJXAqxJ1ybHraH4i-I1LPopeW3Lh7ACE,785
|
|
53
|
-
glaip_sdk/utils/rendering/renderer/console.py,sha256=4cLOw4Q1fkHkApuj6dWW8eYpeYdcT0t2SO5MbVt5UTc,1844
|
|
54
|
-
glaip_sdk/utils/rendering/renderer/debug.py,sha256=FEYxAu4ZB0CjrJKevqQ2TKDgElA2cf6GqZXCNm12sNQ,3721
|
|
55
|
-
glaip_sdk/utils/rendering/renderer/panels.py,sha256=05u6SjU53iP9VD0YHTNruzD7sO6qYCp-P5dTTSdSZmU,3364
|
|
56
|
-
glaip_sdk/utils/rendering/renderer/progress.py,sha256=i4HG_iNwtK4c3Gf2sviLCiOJ-5ydX4t-YE5dgtLOxNI,3438
|
|
57
|
-
glaip_sdk/utils/rendering/renderer/stream.py,sha256=1RP5TIV7tqg07X9gPN053XeabFGVT4jPplxaoPU0L38,8601
|
|
58
|
-
glaip_sdk/utils/rendering/steps.py,sha256=4zdeyKxMbUzCal4-yv8yf18144cs5wwXaxhe6mt2KiE,7307
|
|
59
|
-
glaip_sdk/utils/resource_refs.py,sha256=0YzblJNfRhz9xhpaKE9aE68XEV-6_ssr0fIkiMVOka0,5489
|
|
60
|
-
glaip_sdk/utils/rich_utils.py,sha256=-Ij-1bIJvnVAi6DrfftchIlMcvOTjVmSE0Qqax0EY_s,763
|
|
61
|
-
glaip_sdk/utils/run_renderer.py,sha256=d_VMI6LbvHPUUeRmGqh5wK_lHqDEIAcym2iqpbtDad0,1365
|
|
62
|
-
glaip_sdk/utils/serialization.py,sha256=T1yt_8G2DCFpcxx7XnqFl5slksRXfBCUuLQJTreGYEQ,11806
|
|
63
|
-
glaip_sdk/utils/validation.py,sha256=QNORcdyvuliEs4EH2_mkDgmoyT9utgl7YNhaf45SEf8,6992
|
|
64
|
-
glaip_sdk-0.0.15.dist-info/METADATA,sha256=Hp6gkY7Ci5eTGCScvyovsLl2j0g7Dlw1kQ3chFWYwrI,5168
|
|
65
|
-
glaip_sdk-0.0.15.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
|
66
|
-
glaip_sdk-0.0.15.dist-info/entry_points.txt,sha256=EGs8NO8J1fdFMWA3CsF7sKBEvtHb_fujdCoNPhfMouE,47
|
|
67
|
-
glaip_sdk-0.0.15.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|