glaip-sdk 0.0.20__py3-none-any.whl → 0.7.7__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 +44 -4
- glaip_sdk/_version.py +10 -3
- glaip_sdk/agents/__init__.py +27 -0
- glaip_sdk/agents/base.py +1250 -0
- glaip_sdk/branding.py +15 -6
- glaip_sdk/cli/account_store.py +540 -0
- glaip_sdk/cli/agent_config.py +2 -6
- glaip_sdk/cli/auth.py +271 -45
- glaip_sdk/cli/commands/__init__.py +2 -2
- glaip_sdk/cli/commands/accounts.py +746 -0
- glaip_sdk/cli/commands/agents/__init__.py +119 -0
- glaip_sdk/cli/commands/agents/_common.py +561 -0
- glaip_sdk/cli/commands/agents/create.py +151 -0
- glaip_sdk/cli/commands/agents/delete.py +64 -0
- glaip_sdk/cli/commands/agents/get.py +89 -0
- glaip_sdk/cli/commands/agents/list.py +129 -0
- glaip_sdk/cli/commands/agents/run.py +264 -0
- glaip_sdk/cli/commands/agents/sync_langflow.py +72 -0
- glaip_sdk/cli/commands/agents/update.py +112 -0
- glaip_sdk/cli/commands/common_config.py +104 -0
- glaip_sdk/cli/commands/configure.py +734 -143
- glaip_sdk/cli/commands/mcps/__init__.py +94 -0
- glaip_sdk/cli/commands/mcps/_common.py +459 -0
- glaip_sdk/cli/commands/mcps/connect.py +82 -0
- glaip_sdk/cli/commands/mcps/create.py +152 -0
- glaip_sdk/cli/commands/mcps/delete.py +73 -0
- glaip_sdk/cli/commands/mcps/get.py +212 -0
- glaip_sdk/cli/commands/mcps/list.py +69 -0
- glaip_sdk/cli/commands/mcps/tools.py +235 -0
- glaip_sdk/cli/commands/mcps/update.py +190 -0
- glaip_sdk/cli/commands/models.py +14 -12
- glaip_sdk/cli/commands/shared/__init__.py +21 -0
- glaip_sdk/cli/commands/shared/formatters.py +91 -0
- glaip_sdk/cli/commands/tools/__init__.py +69 -0
- glaip_sdk/cli/commands/tools/_common.py +80 -0
- glaip_sdk/cli/commands/tools/create.py +228 -0
- glaip_sdk/cli/commands/tools/delete.py +61 -0
- glaip_sdk/cli/commands/tools/get.py +103 -0
- glaip_sdk/cli/commands/tools/list.py +69 -0
- glaip_sdk/cli/commands/tools/script.py +49 -0
- glaip_sdk/cli/commands/tools/update.py +102 -0
- glaip_sdk/cli/commands/transcripts/__init__.py +90 -0
- glaip_sdk/cli/commands/transcripts/_common.py +9 -0
- glaip_sdk/cli/commands/transcripts/clear.py +5 -0
- glaip_sdk/cli/commands/transcripts/detail.py +5 -0
- glaip_sdk/cli/commands/transcripts_original.py +756 -0
- glaip_sdk/cli/commands/update.py +164 -23
- glaip_sdk/cli/config.py +49 -7
- glaip_sdk/cli/constants.py +38 -0
- glaip_sdk/cli/context.py +8 -0
- glaip_sdk/cli/core/__init__.py +79 -0
- glaip_sdk/cli/core/context.py +124 -0
- glaip_sdk/cli/core/output.py +851 -0
- glaip_sdk/cli/core/prompting.py +649 -0
- glaip_sdk/cli/core/rendering.py +187 -0
- glaip_sdk/cli/display.py +45 -32
- glaip_sdk/cli/entrypoint.py +20 -0
- glaip_sdk/cli/hints.py +57 -0
- glaip_sdk/cli/io.py +14 -17
- glaip_sdk/cli/main.py +344 -167
- glaip_sdk/cli/masking.py +21 -33
- glaip_sdk/cli/mcp_validators.py +5 -15
- glaip_sdk/cli/pager.py +15 -22
- glaip_sdk/cli/parsers/__init__.py +1 -3
- glaip_sdk/cli/parsers/json_input.py +11 -22
- glaip_sdk/cli/resolution.py +5 -10
- glaip_sdk/cli/rich_helpers.py +1 -3
- glaip_sdk/cli/slash/__init__.py +0 -9
- glaip_sdk/cli/slash/accounts_controller.py +580 -0
- glaip_sdk/cli/slash/accounts_shared.py +75 -0
- glaip_sdk/cli/slash/agent_session.py +65 -29
- glaip_sdk/cli/slash/prompt.py +24 -10
- glaip_sdk/cli/slash/remote_runs_controller.py +566 -0
- glaip_sdk/cli/slash/session.py +827 -232
- glaip_sdk/cli/slash/tui/__init__.py +34 -0
- glaip_sdk/cli/slash/tui/accounts.tcss +88 -0
- glaip_sdk/cli/slash/tui/accounts_app.py +933 -0
- glaip_sdk/cli/slash/tui/background_tasks.py +72 -0
- glaip_sdk/cli/slash/tui/clipboard.py +147 -0
- glaip_sdk/cli/slash/tui/context.py +59 -0
- glaip_sdk/cli/slash/tui/keybind_registry.py +235 -0
- glaip_sdk/cli/slash/tui/loading.py +58 -0
- glaip_sdk/cli/slash/tui/remote_runs_app.py +628 -0
- glaip_sdk/cli/slash/tui/terminal.py +402 -0
- glaip_sdk/cli/slash/tui/theme/__init__.py +15 -0
- glaip_sdk/cli/slash/tui/theme/catalog.py +79 -0
- glaip_sdk/cli/slash/tui/theme/manager.py +86 -0
- glaip_sdk/cli/slash/tui/theme/tokens.py +55 -0
- glaip_sdk/cli/slash/tui/toast.py +123 -0
- glaip_sdk/cli/transcript/__init__.py +12 -52
- glaip_sdk/cli/transcript/cache.py +258 -60
- glaip_sdk/cli/transcript/capture.py +72 -21
- glaip_sdk/cli/transcript/history.py +815 -0
- glaip_sdk/cli/transcript/launcher.py +1 -3
- glaip_sdk/cli/transcript/viewer.py +79 -329
- glaip_sdk/cli/update_notifier.py +385 -24
- glaip_sdk/cli/validators.py +16 -18
- glaip_sdk/client/__init__.py +3 -1
- glaip_sdk/client/_schedule_payloads.py +89 -0
- glaip_sdk/client/agent_runs.py +147 -0
- glaip_sdk/client/agents.py +370 -100
- glaip_sdk/client/base.py +78 -35
- glaip_sdk/client/hitl.py +136 -0
- glaip_sdk/client/main.py +25 -10
- glaip_sdk/client/mcps.py +166 -27
- glaip_sdk/client/payloads/agent/__init__.py +23 -0
- glaip_sdk/client/{_agent_payloads.py → payloads/agent/requests.py} +65 -74
- glaip_sdk/client/payloads/agent/responses.py +43 -0
- glaip_sdk/client/run_rendering.py +583 -79
- glaip_sdk/client/schedules.py +439 -0
- glaip_sdk/client/shared.py +21 -0
- glaip_sdk/client/tools.py +214 -56
- glaip_sdk/client/validators.py +20 -48
- glaip_sdk/config/constants.py +11 -0
- glaip_sdk/exceptions.py +1 -3
- glaip_sdk/hitl/__init__.py +48 -0
- glaip_sdk/hitl/base.py +64 -0
- glaip_sdk/hitl/callback.py +43 -0
- glaip_sdk/hitl/local.py +121 -0
- glaip_sdk/hitl/remote.py +523 -0
- glaip_sdk/icons.py +9 -3
- glaip_sdk/mcps/__init__.py +21 -0
- glaip_sdk/mcps/base.py +345 -0
- glaip_sdk/models/__init__.py +107 -0
- glaip_sdk/models/agent.py +47 -0
- glaip_sdk/models/agent_runs.py +117 -0
- glaip_sdk/models/common.py +42 -0
- glaip_sdk/models/mcp.py +33 -0
- glaip_sdk/models/schedule.py +224 -0
- glaip_sdk/models/tool.py +33 -0
- glaip_sdk/payload_schemas/__init__.py +1 -13
- glaip_sdk/payload_schemas/agent.py +1 -3
- glaip_sdk/registry/__init__.py +55 -0
- glaip_sdk/registry/agent.py +164 -0
- glaip_sdk/registry/base.py +139 -0
- glaip_sdk/registry/mcp.py +253 -0
- glaip_sdk/registry/tool.py +445 -0
- glaip_sdk/rich_components.py +58 -2
- glaip_sdk/runner/__init__.py +76 -0
- glaip_sdk/runner/base.py +84 -0
- glaip_sdk/runner/deps.py +112 -0
- glaip_sdk/runner/langgraph.py +872 -0
- glaip_sdk/runner/logging_config.py +77 -0
- glaip_sdk/runner/mcp_adapter/__init__.py +13 -0
- glaip_sdk/runner/mcp_adapter/base_mcp_adapter.py +43 -0
- glaip_sdk/runner/mcp_adapter/langchain_mcp_adapter.py +257 -0
- glaip_sdk/runner/mcp_adapter/mcp_config_builder.py +95 -0
- glaip_sdk/runner/tool_adapter/__init__.py +18 -0
- glaip_sdk/runner/tool_adapter/base_tool_adapter.py +44 -0
- glaip_sdk/runner/tool_adapter/langchain_tool_adapter.py +242 -0
- glaip_sdk/schedules/__init__.py +22 -0
- glaip_sdk/schedules/base.py +291 -0
- glaip_sdk/tools/__init__.py +22 -0
- glaip_sdk/tools/base.py +468 -0
- glaip_sdk/utils/__init__.py +59 -12
- glaip_sdk/utils/a2a/__init__.py +34 -0
- glaip_sdk/utils/a2a/event_processor.py +188 -0
- glaip_sdk/utils/agent_config.py +4 -14
- glaip_sdk/utils/bundler.py +403 -0
- glaip_sdk/utils/client.py +111 -0
- glaip_sdk/utils/client_utils.py +46 -28
- glaip_sdk/utils/datetime_helpers.py +58 -0
- glaip_sdk/utils/discovery.py +78 -0
- glaip_sdk/utils/display.py +25 -21
- glaip_sdk/utils/export.py +143 -0
- glaip_sdk/utils/general.py +1 -36
- glaip_sdk/utils/import_export.py +15 -16
- glaip_sdk/utils/import_resolver.py +524 -0
- glaip_sdk/utils/instructions.py +101 -0
- glaip_sdk/utils/rendering/__init__.py +115 -1
- glaip_sdk/utils/rendering/formatting.py +38 -23
- glaip_sdk/utils/rendering/layout/__init__.py +64 -0
- glaip_sdk/utils/rendering/{renderer → layout}/panels.py +10 -3
- glaip_sdk/utils/rendering/{renderer → layout}/progress.py +73 -12
- glaip_sdk/utils/rendering/layout/summary.py +74 -0
- glaip_sdk/utils/rendering/layout/transcript.py +606 -0
- glaip_sdk/utils/rendering/models.py +18 -8
- glaip_sdk/utils/rendering/renderer/__init__.py +9 -51
- glaip_sdk/utils/rendering/renderer/base.py +534 -882
- glaip_sdk/utils/rendering/renderer/config.py +4 -10
- glaip_sdk/utils/rendering/renderer/debug.py +30 -34
- glaip_sdk/utils/rendering/renderer/factory.py +138 -0
- glaip_sdk/utils/rendering/renderer/stream.py +13 -54
- glaip_sdk/utils/rendering/renderer/summary_window.py +79 -0
- glaip_sdk/utils/rendering/renderer/thinking.py +273 -0
- glaip_sdk/utils/rendering/renderer/toggle.py +182 -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/step_tree_state.py +100 -0
- glaip_sdk/utils/rendering/steps/__init__.py +34 -0
- glaip_sdk/utils/rendering/steps/event_processor.py +778 -0
- glaip_sdk/utils/rendering/steps/format.py +176 -0
- glaip_sdk/utils/rendering/{steps.py → steps/manager.py} +122 -26
- 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/resource_refs.py +29 -26
- glaip_sdk/utils/runtime_config.py +425 -0
- glaip_sdk/utils/serialization.py +32 -46
- glaip_sdk/utils/sync.py +162 -0
- glaip_sdk/utils/tool_detection.py +301 -0
- glaip_sdk/utils/tool_storage_provider.py +140 -0
- glaip_sdk/utils/validation.py +20 -28
- {glaip_sdk-0.0.20.dist-info → glaip_sdk-0.7.7.dist-info}/METADATA +78 -23
- glaip_sdk-0.7.7.dist-info/RECORD +213 -0
- {glaip_sdk-0.0.20.dist-info → glaip_sdk-0.7.7.dist-info}/WHEEL +2 -1
- glaip_sdk-0.7.7.dist-info/entry_points.txt +2 -0
- glaip_sdk-0.7.7.dist-info/top_level.txt +1 -0
- glaip_sdk/cli/commands/agents.py +0 -1412
- glaip_sdk/cli/commands/mcps.py +0 -1225
- glaip_sdk/cli/commands/tools.py +0 -597
- glaip_sdk/cli/utils.py +0 -1330
- glaip_sdk/models.py +0 -259
- glaip_sdk-0.0.20.dist-info/RECORD +0 -80
- glaip_sdk-0.0.20.dist-info/entry_points.txt +0 -3
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:
|
|
@@ -155,13 +147,13 @@ def coerce_timeout(value: Any) -> int:
|
|
|
155
147
|
try:
|
|
156
148
|
fval = float(value)
|
|
157
149
|
return validate_timeout(int(fval))
|
|
158
|
-
except ValueError:
|
|
159
|
-
raise ValueError(f"Invalid timeout value: {value}")
|
|
150
|
+
except ValueError as err:
|
|
151
|
+
raise ValueError(f"Invalid timeout value: {value}") from err
|
|
160
152
|
else:
|
|
161
153
|
try:
|
|
162
154
|
return validate_timeout(int(value))
|
|
163
|
-
except (TypeError, ValueError):
|
|
164
|
-
raise ValueError(f"Invalid timeout value: {value}")
|
|
155
|
+
except (TypeError, ValueError) as err:
|
|
156
|
+
raise ValueError(f"Invalid timeout value: {value}") from err
|
|
165
157
|
|
|
166
158
|
|
|
167
159
|
def validate_file_path(file_path: str | Path, must_exist: bool = True) -> Path:
|
|
@@ -213,7 +205,7 @@ def validate_directory_path(dir_path: str | Path, must_exist: bool = True) -> Pa
|
|
|
213
205
|
|
|
214
206
|
|
|
215
207
|
def validate_url(url: str) -> str:
|
|
216
|
-
"""Validate URL format.
|
|
208
|
+
"""Validate URL format (HTTPS only).
|
|
217
209
|
|
|
218
210
|
Args:
|
|
219
211
|
url: URL to validate
|
|
@@ -225,7 +217,7 @@ def validate_url(url: str) -> str:
|
|
|
225
217
|
ValueError: If URL is invalid
|
|
226
218
|
"""
|
|
227
219
|
url_pattern = re.compile(
|
|
228
|
-
r"^https
|
|
220
|
+
r"^https://" # https:// only
|
|
229
221
|
r"(?:(?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\.)+[A-Z]{2,6}\.?|" # domain...
|
|
230
222
|
r"localhost|" # localhost...
|
|
231
223
|
r"\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})" # ...or ip
|
|
@@ -235,7 +227,7 @@ def validate_url(url: str) -> str:
|
|
|
235
227
|
)
|
|
236
228
|
|
|
237
229
|
if not url_pattern.match(url):
|
|
238
|
-
raise ValueError(
|
|
230
|
+
raise ValueError("API URL must start with https:// and be a valid host.")
|
|
239
231
|
|
|
240
232
|
return url
|
|
241
233
|
|
|
@@ -1,30 +1,43 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: glaip-sdk
|
|
3
|
-
Version: 0.
|
|
4
|
-
Summary: Python SDK for GL AIP (GDP Labs AI Agent Package) -
|
|
3
|
+
Version: 0.7.7
|
|
4
|
+
Summary: Python SDK and CLI for GL AIP (GDP Labs AI Agent Package) - Build, run, and manage AI agents
|
|
5
|
+
Author-email: Raymond Christopher <raymond.christopher@gdplabs.id>
|
|
5
6
|
License: MIT
|
|
6
|
-
|
|
7
|
-
Author-email: raymond.christopher@gdplabs.id
|
|
8
|
-
Requires-Python: >=3.10
|
|
9
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
10
|
-
Classifier: Programming Language :: Python :: 3
|
|
11
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
12
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
14
|
-
Requires-Dist: click (>=8.2.0,<8.3.0)
|
|
15
|
-
Requires-Dist: httpx (>=0.28.1)
|
|
16
|
-
Requires-Dist: packaging (>=23.2)
|
|
17
|
-
Requires-Dist: pydantic (>=2.0.0)
|
|
18
|
-
Requires-Dist: python-dotenv (>=1.1.1,<2.0.0)
|
|
19
|
-
Requires-Dist: pyyaml (>=6.0.0)
|
|
20
|
-
Requires-Dist: questionary (>=2.1.0,<3.0.0)
|
|
21
|
-
Requires-Dist: readchar (>=4.2.1,<5.0.0)
|
|
22
|
-
Requires-Dist: rich (>=13.0.0)
|
|
7
|
+
Requires-Python: <3.13,>=3.11
|
|
23
8
|
Description-Content-Type: text/markdown
|
|
9
|
+
Requires-Dist: httpx>=0.28.1
|
|
10
|
+
Requires-Dist: pydantic>=2.0.0
|
|
11
|
+
Requires-Dist: pyyaml>=6.0.0
|
|
12
|
+
Requires-Dist: python-dotenv<2.0.0,>=1.1.1
|
|
13
|
+
Requires-Dist: readchar<5.0.0,>=4.2.1
|
|
14
|
+
Requires-Dist: questionary<3.0.0,>=2.1.0
|
|
15
|
+
Requires-Dist: click<8.3.0,>=8.2.0
|
|
16
|
+
Requires-Dist: rich>=13.0.0
|
|
17
|
+
Requires-Dist: packaging>=23.2
|
|
18
|
+
Requires-Dist: textual>=0.52.0
|
|
19
|
+
Requires-Dist: gllm-core-binary>=0.1.0
|
|
20
|
+
Requires-Dist: langchain-core>=0.3.0
|
|
21
|
+
Requires-Dist: gllm-tools-binary>=0.1.3
|
|
22
|
+
Provides-Extra: local
|
|
23
|
+
Requires-Dist: aip-agents-binary[local]>=0.5.21; (python_version >= "3.11" and python_version < "3.13") and extra == "local"
|
|
24
|
+
Provides-Extra: memory
|
|
25
|
+
Requires-Dist: aip-agents-binary[memory]>=0.5.21; (python_version >= "3.11" and python_version < "3.13") and extra == "memory"
|
|
26
|
+
Provides-Extra: privacy
|
|
27
|
+
Requires-Dist: aip-agents-binary[privacy]>=0.5.21; (python_version >= "3.11" and python_version < "3.13") and extra == "privacy"
|
|
28
|
+
Provides-Extra: dev
|
|
29
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
30
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
|
|
31
|
+
Requires-Dist: pytest-dotenv>=0.5.2; extra == "dev"
|
|
32
|
+
Requires-Dist: pre-commit>=4.3.0; extra == "dev"
|
|
33
|
+
Requires-Dist: pytest-xdist>=3.8.0; extra == "dev"
|
|
34
|
+
Requires-Dist: pytest-asyncio>=0.23.6; extra == "dev"
|
|
35
|
+
Requires-Dist: pytest-timeout>=2.3.1; extra == "dev"
|
|
36
|
+
Requires-Dist: ruff>=0.14.0; extra == "dev"
|
|
24
37
|
|
|
25
38
|
# GL AIP — GDP Labs AI Agents Package
|
|
26
39
|
|
|
27
|
-
[](https://www.python.org/downloads/)
|
|
28
41
|
[](https://github.com/psf/black)
|
|
29
42
|
|
|
30
43
|
GL stands for **GDP Labs**—GL AIP is our AI Agents Package for building, running, and operating agents.
|
|
@@ -35,15 +48,26 @@ GL stands for **GDP Labs**—GL AIP is our AI Agents Package for building, runni
|
|
|
35
48
|
|
|
36
49
|
### Installation
|
|
37
50
|
|
|
51
|
+
Installing `glaip-sdk` provides both the **Python SDK** and the **`aip` CLI command** in a single package.
|
|
52
|
+
|
|
38
53
|
```bash
|
|
39
54
|
# Using pip (recommended)
|
|
40
55
|
pip install --upgrade glaip-sdk
|
|
41
56
|
|
|
42
57
|
# Using uv (fast alternative)
|
|
43
58
|
uv tool install glaip-sdk
|
|
59
|
+
|
|
60
|
+
# Using pipx (CLI-focused, isolated environment)
|
|
61
|
+
pipx install glaip-sdk
|
|
44
62
|
```
|
|
45
63
|
|
|
46
|
-
**Requirements**: Python 3.
|
|
64
|
+
**Requirements**: Python 3.11 or 3.12
|
|
65
|
+
|
|
66
|
+
**Updating**: The `aip` CLI automatically detects your installation method and uses the correct update command:
|
|
67
|
+
|
|
68
|
+
- If installed via `pip`: Uses `pip install --upgrade glaip-sdk`
|
|
69
|
+
- If installed via `uv tool install`: Uses `uv tool install --upgrade glaip-sdk`
|
|
70
|
+
- You can also update manually using the same command you used to install
|
|
47
71
|
|
|
48
72
|
## 🐍 Hello World - Python SDK
|
|
49
73
|
|
|
@@ -120,7 +144,7 @@ print("--- Stream complete ---")
|
|
|
120
144
|
|
|
121
145
|
🎉 **SDK Success!** You're now ready to build AI-powered applications with Python.
|
|
122
146
|
|
|
123
|
-
|
|
147
|
+
______________________________________________________________________
|
|
124
148
|
|
|
125
149
|
## 💻 Hello World - CLI
|
|
126
150
|
|
|
@@ -170,6 +194,17 @@ aip agents run <AGENT_ID> --input "Hello world, what's the weather like?"
|
|
|
170
194
|
- **🔄 Multi-Agent Patterns**: Hierarchical, parallel, sequential, router, and aggregator patterns
|
|
171
195
|
- **💻 Modern CLI**: Rich terminal interface with fuzzy search and multiple output formats
|
|
172
196
|
|
|
197
|
+
## 🌳 Live Steps Panel
|
|
198
|
+
|
|
199
|
+
The CLI steps panel now streams a fully hierarchical tree so you can audit complex agent runs without leaving the terminal.
|
|
200
|
+
|
|
201
|
+
- Renders parent/child relationships with `│├└` connectors, even when events arrive out of order
|
|
202
|
+
- Marks running steps with spinners and duration badges sourced from SSE metadata before local fallbacks
|
|
203
|
+
- Highlights failures inline (`✗ reason`) and raises warning glyphs on affected delegate branches
|
|
204
|
+
- Derives deterministic “💭 Thinking…” spans before/after each delegate or tool action to show scheduling gaps
|
|
205
|
+
- Flags parallel work with a dedicated glyph and argument-derived labels so simultaneous tool calls stay readable
|
|
206
|
+
- Try it locally: `poetry run python scripts/replay_steps_log.py --transcript tests/fixtures/rendering/transcripts/parallel_research.jsonl --output /tmp/parallel.log`
|
|
207
|
+
|
|
173
208
|
## 📚 Documentation
|
|
174
209
|
|
|
175
210
|
📖 **[Complete Documentation](https://gdplabs.gitbook.io/gl-aip/gl-aip-sdk/overview)** - Visit our GitBook for comprehensive guides, tutorials, and API reference.
|
|
@@ -182,3 +217,23 @@ Quick links:
|
|
|
182
217
|
- **[MCP Integration](https://gdplabs.gitbook.io/gl-aip/gl-aip-sdk/guides/mcps-guide)**: Connect external services
|
|
183
218
|
- **[API Reference](https://gdplabs.gitbook.io/gl-aip/gl-aip-sdk/reference/python-sdk-reference)**: Complete SDK reference
|
|
184
219
|
|
|
220
|
+
## 🧪 Simulate the Update Notifier
|
|
221
|
+
|
|
222
|
+
Need to verify the in-session upgrade flow without hitting PyPI or actually running `pip install`? Use the bundled helper:
|
|
223
|
+
|
|
224
|
+
```bash
|
|
225
|
+
cd python/glaip-sdk
|
|
226
|
+
poetry run python scripts/mock_update_notifier.py
|
|
227
|
+
# or customize the mock payload:
|
|
228
|
+
# poetry run python scripts/mock_update_notifier.py --version 3.3.3 --marker "[nightly build]"
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
The script:
|
|
232
|
+
|
|
233
|
+
- Launches a SlashSession with prompt-toolkit disabled (so it runs cleanly in tests/CI).
|
|
234
|
+
- Forces the notifier to believe a newer version exists (`--version 9.9.9` by default).
|
|
235
|
+
- Appends a visible marker (default `[mock update]`) to the banner so you can prove the branding reload happened; pass `--marker ""` to skip.
|
|
236
|
+
- Auto-selects “Update now”, mocks the install step, and runs the real branding refresh logic.
|
|
237
|
+
- Resets module metadata afterwards so your environment remains untouched.
|
|
238
|
+
|
|
239
|
+
You should see the Rich banner re-render with the mocked version (and optional marker) at the end of the run.
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
glaip_sdk/__init__.py,sha256=YpePGKbCjwqCwvb8yig8cc64z876ch1oSlTlu-CiWfs,1722
|
|
2
|
+
glaip_sdk/_version.py,sha256=5CHGCxx_36fgmMWuEx6jJ2CzzM-i9eBFyQWFwBi23XE,2259
|
|
3
|
+
glaip_sdk/branding.py,sha256=tLqYCIHMkUf8p2smpuAGNptwaKUN38G4mlh0A0DOl_w,7823
|
|
4
|
+
glaip_sdk/exceptions.py,sha256=iAChFClkytXRBLP0vZq1_YjoZxA9i4m4bW1gDLiGR1g,2321
|
|
5
|
+
glaip_sdk/icons.py,sha256=J5THz0ReAmDwIiIooh1_G3Le-mwTJyEjhJDdJ13KRxM,524
|
|
6
|
+
glaip_sdk/rich_components.py,sha256=44Z0V1ZQleVh9gUDGwRR5mriiYFnVGOhm7fFxZYbP8c,4052
|
|
7
|
+
glaip_sdk/agents/__init__.py,sha256=VfYov56edbWuySXFEbWJ_jLXgwnFzPk1KB-9-mfsUCc,776
|
|
8
|
+
glaip_sdk/agents/base.py,sha256=GQnzCw2cqlrbxwdoWFfhBcBlEDgubY4tlD6gr1b3zps,44539
|
|
9
|
+
glaip_sdk/cli/__init__.py,sha256=xCCfuF1Yc7mpCDcfhHZTX0vizvtrDSLeT8MJ3V7m5A0,156
|
|
10
|
+
glaip_sdk/cli/account_store.py,sha256=TK4iTV93Q1uD9mCY_2ZMT6EazHKU2jX0qhgWfEM4V-4,18459
|
|
11
|
+
glaip_sdk/cli/agent_config.py,sha256=YAbFKrTNTRqNA6b0i0Q3pH-01rhHDRi5v8dxSFwGSwM,2401
|
|
12
|
+
glaip_sdk/cli/auth.py,sha256=bqOHMGIOCg3KXssme3uJBBjEbK0rCEppQ6oq-gJ-hzA,24276
|
|
13
|
+
glaip_sdk/cli/config.py,sha256=s0_xBB1e5YE4I_Wc4q-ayY3dwsBU1JrHAF-8ySlim7Y,3040
|
|
14
|
+
glaip_sdk/cli/constants.py,sha256=zqcVtzfj6huW97gbCmhkFqntge1H-c1vnkGqTazADgU,895
|
|
15
|
+
glaip_sdk/cli/context.py,sha256=--Y5vc6lgoAV7cRoUAr9UxSQaLmkMg29FolA7EwoRqM,3803
|
|
16
|
+
glaip_sdk/cli/display.py,sha256=ojgWdGeD5KUnGOmWNqqK4JP-1EaWHWX--DWze3BmIz0,12137
|
|
17
|
+
glaip_sdk/cli/entrypoint.py,sha256=ODrNZT1c7mFtNuXn4CrJgs06-xIhrqUMi1rKzkYJ21c,516
|
|
18
|
+
glaip_sdk/cli/hints.py,sha256=ca4krG103IS43s5BSLr0-N7uRMpte1_LY4nAXVvgDxo,1596
|
|
19
|
+
glaip_sdk/cli/io.py,sha256=ChP6CRKbtuENsNomNEaMDfPDU0iqO-WuVvl4_y7F2io,3871
|
|
20
|
+
glaip_sdk/cli/main.py,sha256=bi_SBrRWWMcdbl28zbNMrzp8i5SKCKTb2CWN-hLIx94,24680
|
|
21
|
+
glaip_sdk/cli/masking.py,sha256=2lrXQ-pfL7N-vNEQRT1s4Xq3JPDPDT8RC61OdaTtkkc,4060
|
|
22
|
+
glaip_sdk/cli/mcp_validators.py,sha256=cwbz7p_p7_9xVuuF96OBQOdmEgo5UObU6iWWQ2X03PI,10047
|
|
23
|
+
glaip_sdk/cli/pager.py,sha256=TmiMDNpUMuZju7QJ6A_ITqIoEf8Dhv8U6mTXx2Fga1k,7935
|
|
24
|
+
glaip_sdk/cli/resolution.py,sha256=AGvv7kllLcuvk_jdaArJqH3lId4IDEXpHceRZwy14xY,2448
|
|
25
|
+
glaip_sdk/cli/rich_helpers.py,sha256=kO47N8e506rxrN6Oc9mbAWN3Qb536oQPWZy1s9A616g,819
|
|
26
|
+
glaip_sdk/cli/update_notifier.py,sha256=0zpWxr4nSyz0tiLWyC7EEO2deAnVmsRcVlMV79G2QMI,18049
|
|
27
|
+
glaip_sdk/cli/validators.py,sha256=k4J2ACYJPF6UmWJfENt9OHWdp4RNArVxR3hoeqauO88,5629
|
|
28
|
+
glaip_sdk/cli/commands/__init__.py,sha256=6Z3ASXDut0lAbUX_umBFtxPzzFyqoiZfVeTahThFu1A,219
|
|
29
|
+
glaip_sdk/cli/commands/accounts.py,sha256=vUZYt5Ii-nWKJ1nXRU684NHILpPXj40Xfh4qN1tZsNc,24685
|
|
30
|
+
glaip_sdk/cli/commands/common_config.py,sha256=seZUw_3kV7GlDH31uYHnT_Khq6B3oEuO-fIerXasgEI,3730
|
|
31
|
+
glaip_sdk/cli/commands/configure.py,sha256=ZToy6LSQ3ulEBrB9YpuWiIAiOQ2XQ11MxPNtN3V1V_A,30273
|
|
32
|
+
glaip_sdk/cli/commands/models.py,sha256=kZKqwv2uzfyz8n_7b0hYTT8waaVZMDzVoSXtRvWa9jk,2042
|
|
33
|
+
glaip_sdk/cli/commands/transcripts_original.py,sha256=6KEAP_mMdoNgydpunxLjYl6QJIY-CJorwLTBSF3Cfuo,26416
|
|
34
|
+
glaip_sdk/cli/commands/update.py,sha256=QYz51JdYSbzbLVIH3-Q-qh5MIY4o-LtpbbfMwHYuExA,6658
|
|
35
|
+
glaip_sdk/cli/commands/agents/__init__.py,sha256=V-tRAqMcY4amDygp16clkEfQS4Sqw0vOR4BzAGHzNg0,3436
|
|
36
|
+
glaip_sdk/cli/commands/agents/_common.py,sha256=2Zg_LctV6CCyZVrXz3xFs6fDX624jVTDzv9VYHMq2JM,17812
|
|
37
|
+
glaip_sdk/cli/commands/agents/create.py,sha256=8IFWXZJexspy1M2059CUygVd_xmXXg3JZtVUskVwHMI,4819
|
|
38
|
+
glaip_sdk/cli/commands/agents/delete.py,sha256=WgNOr_JHqD8EF4jBU0vmUphIyAlbLHWbx68KuINxnz0,1684
|
|
39
|
+
glaip_sdk/cli/commands/agents/get.py,sha256=vwYa2GIFgxGPTmNiIPv3EceJ2NI3S92e6qaAVrgJm48,2682
|
|
40
|
+
glaip_sdk/cli/commands/agents/list.py,sha256=u4gGYYMLJZatKVtpIovcxqzU8caIyvZCuou1GzePcAo,4696
|
|
41
|
+
glaip_sdk/cli/commands/agents/run.py,sha256=XtahMOHhh8K3kaUODXGxbuvA4FfcVEO8yBGfCPqP8zY,8187
|
|
42
|
+
glaip_sdk/cli/commands/agents/sync_langflow.py,sha256=NVejCglmKAzy9WUnj_VkutyOl-jF8ro4Rh_JLul3xxs,2329
|
|
43
|
+
glaip_sdk/cli/commands/agents/update.py,sha256=uMX_-DFhOTBS-tboG-JEkGLlf1q-cfj1FGABGIQSh9g,3441
|
|
44
|
+
glaip_sdk/cli/commands/mcps/__init__.py,sha256=QRCdjBQlYc0ocXazbvqA0xA32FnrJF0XvErdb5OwVTE,2834
|
|
45
|
+
glaip_sdk/cli/commands/mcps/_common.py,sha256=YOSOijID1s8UMIm98K6fyXrp1jkHv2ovWS1x9ipFcP0,14578
|
|
46
|
+
glaip_sdk/cli/commands/mcps/connect.py,sha256=dxz4Y43boZivRGwe5jWM5KwwUNNqiZE6HLKb_BZWgD8,2416
|
|
47
|
+
glaip_sdk/cli/commands/mcps/create.py,sha256=QryzfgVeI8XPJRdY2FWnUYWktSBTrwlfJqtoZ5CphNU,4955
|
|
48
|
+
glaip_sdk/cli/commands/mcps/delete.py,sha256=yIEFuzY6DswVblTdEql3k6b6JSNstNqIHg0vZqazTXc,1945
|
|
49
|
+
glaip_sdk/cli/commands/mcps/get.py,sha256=XQns1wfydmN-7fiNGzlXLWTktLr4pwgW1jhoHVf9NYM,7072
|
|
50
|
+
glaip_sdk/cli/commands/mcps/list.py,sha256=e0qtTtkmOsZVsBNu_ytfyFPV0eDtdlVrUfTfcoI8Ivk,2051
|
|
51
|
+
glaip_sdk/cli/commands/mcps/tools.py,sha256=iMi2mfwQS-lE4yhhHRiBrVeK6qG-IfVKGyV1P4stZVs,7089
|
|
52
|
+
glaip_sdk/cli/commands/mcps/update.py,sha256=7a8b77nDdSRz1jwh-0RoSNbcKw6K6XuZsl2qSC1AnS0,6330
|
|
53
|
+
glaip_sdk/cli/commands/shared/__init__.py,sha256=LA1GQMwBSNpeSHifPOJ9V4VjOuGAlVOyD1MIQO1z1ms,465
|
|
54
|
+
glaip_sdk/cli/commands/shared/formatters.py,sha256=QWjVTihmQV7O6MjMI_8tnTycu0rgGHKF5vMh_FanZMg,2499
|
|
55
|
+
glaip_sdk/cli/commands/tools/__init__.py,sha256=KkcMYJNe164V25Eqp2Bygwf49LIcyECm3r5k59p6cQU,2111
|
|
56
|
+
glaip_sdk/cli/commands/tools/_common.py,sha256=IFJEoyP-lphu0X3eR6txr4QD8Qr1g-AP1kLtahZ29Fo,2190
|
|
57
|
+
glaip_sdk/cli/commands/tools/create.py,sha256=X0xSKG9MyuZC_ZdSGHX2RIk7xGvlfNzgT1WSobMA-Es,7134
|
|
58
|
+
glaip_sdk/cli/commands/tools/delete.py,sha256=lSACJivmpT4Z7KVWOYVErdcWb487UpnlBpjCrlMI_lM,1696
|
|
59
|
+
glaip_sdk/cli/commands/tools/get.py,sha256=VBexy7ZJI418OCYBGQhn5vUO9r22kTctGrTih78qDa8,3530
|
|
60
|
+
glaip_sdk/cli/commands/tools/list.py,sha256=cHHc5pj-NWJaGXpAgdbtuA1gOrqjecUk83eUOuFrp78,1991
|
|
61
|
+
glaip_sdk/cli/commands/tools/script.py,sha256=6mKmMlTkIc0rhvF4l3k4Tyf2d0nOtSJNVd12uR7iF18,1523
|
|
62
|
+
glaip_sdk/cli/commands/tools/update.py,sha256=fptBM6AnrkZQkHaqvDSR149kwFJXBGujpKJ8q9WadDQ,3599
|
|
63
|
+
glaip_sdk/cli/commands/transcripts/__init__.py,sha256=CSipOETWNbnzXts12qis35lkLChAf8-tJJ3Jlz4si6k,2870
|
|
64
|
+
glaip_sdk/cli/commands/transcripts/_common.py,sha256=O70Xg9jFXpz_zDzgWDSJxTmkEl-VkfegAGxzJsa1jDY,238
|
|
65
|
+
glaip_sdk/cli/commands/transcripts/clear.py,sha256=5E-gpazli2Y-KwRnZ44BRgDlFUYQErfc7wEGQ9QzrCc,157
|
|
66
|
+
glaip_sdk/cli/commands/transcripts/detail.py,sha256=tLahGWMPZxXk9xlvM2ye8elgq_b73QQLKzHBO8nCJ_g,159
|
|
67
|
+
glaip_sdk/cli/core/__init__.py,sha256=HTQqpijKNts6bYnwY97rpP3J324phoQmGFi6OXqi0E4,2116
|
|
68
|
+
glaip_sdk/cli/core/context.py,sha256=I22z5IhZ09g5FPtMycDGU9Aj20Qv3TOQLhA5enaU2qk,3970
|
|
69
|
+
glaip_sdk/cli/core/output.py,sha256=hj5F1M_rEqr4CChmdyW1QzGiWL0Mwzf-BFw-d6pjhjY,28304
|
|
70
|
+
glaip_sdk/cli/core/prompting.py,sha256=U6cxTSBNSa5-55M4W9zWCD_QSkkV912xTeOIRwXSDW8,21046
|
|
71
|
+
glaip_sdk/cli/core/rendering.py,sha256=QgbYzTcKH8wa7-BdR3UgiS3KBx1QYZjDcV2Hyy5ox_Q,5878
|
|
72
|
+
glaip_sdk/cli/parsers/__init__.py,sha256=NzLrSH6GOdNoewXtKNpB6GwrauA8rb_IGYV6cz5Hn3o,113
|
|
73
|
+
glaip_sdk/cli/parsers/json_input.py,sha256=kxoxeIlgfsaH2jhe6apZAgSxAtwlpSINLTMRsZZYboQ,5630
|
|
74
|
+
glaip_sdk/cli/slash/__init__.py,sha256=J9TPL2UcNTkW8eifG6nRmAEGHhyEgdYMYk4cHaaObC0,386
|
|
75
|
+
glaip_sdk/cli/slash/accounts_controller.py,sha256=SceJlc2F2ZdlSDkuWO3Js3akL89bVtQLyGM_oA-F2qI,24928
|
|
76
|
+
glaip_sdk/cli/slash/accounts_shared.py,sha256=Mq5HxlI0YsVEQ0KKISWvyBZhzOFFWCzwRbhF5xwvUbM,2626
|
|
77
|
+
glaip_sdk/cli/slash/agent_session.py,sha256=tuVOme-NbEyr6rwJvsBEKZYWQmsaRf4piJeRvIGu0ns,11384
|
|
78
|
+
glaip_sdk/cli/slash/prompt.py,sha256=q4f1c2zr7ZMUeO6AgOBF2Nz4qgMOXrVPt6WzPRQMbAM,8501
|
|
79
|
+
glaip_sdk/cli/slash/remote_runs_controller.py,sha256=a5X5rYgb9l6dHhvTewRUCj-hAo7mKRnuM_MwGvxs8jI,21363
|
|
80
|
+
glaip_sdk/cli/slash/session.py,sha256=Zn2hXND_Tfameh_PI8g4VIMd7GPWxwhtPNMN9p6cF7M,65081
|
|
81
|
+
glaip_sdk/cli/slash/tui/__init__.py,sha256=oBUzeoslYwPKVlhqhgg4I7480b77vQNc9ec0NgdTC1s,977
|
|
82
|
+
glaip_sdk/cli/slash/tui/accounts.tcss,sha256=BCjIuTetmVjydv6DCliY38Cze2LUEu7IY44sL5nIuLU,1194
|
|
83
|
+
glaip_sdk/cli/slash/tui/accounts_app.py,sha256=6ihnAnzKD49eeXYW3dYWUAdUEyoXNFwoEoi3kS3WtXM,35999
|
|
84
|
+
glaip_sdk/cli/slash/tui/background_tasks.py,sha256=SAe1mV2vXB3mJcSGhelU950vf8Lifjhws9iomyIVFKw,2422
|
|
85
|
+
glaip_sdk/cli/slash/tui/clipboard.py,sha256=HL_RWIdONyRmDtTYuDzxJTS_mRcLxuR37Ac9Ug5nh40,4730
|
|
86
|
+
glaip_sdk/cli/slash/tui/context.py,sha256=03mo2kgvpyUcNBYz7G2Uyu7X3FJlSUzVoP5Rt9MCZZY,2141
|
|
87
|
+
glaip_sdk/cli/slash/tui/keybind_registry.py,sha256=_rK05BxTxNudYc4iJ9gDxpgeUkjDAq8rarIT-9A-jyM,6739
|
|
88
|
+
glaip_sdk/cli/slash/tui/loading.py,sha256=nW5pv_Tnl9FUOPR3Qf2O5gt1AGHSo3b5-Uofg34F6AE,1909
|
|
89
|
+
glaip_sdk/cli/slash/tui/remote_runs_app.py,sha256=RCrI-c5ilKV6Iy1lz2Aok9xo2Ou02vqcXACMXTdodnE,24716
|
|
90
|
+
glaip_sdk/cli/slash/tui/terminal.py,sha256=iC31XChTL34gXY6vXdSIX3HmD36tuA9EYTPZ2Sn4uOI,12108
|
|
91
|
+
glaip_sdk/cli/slash/tui/toast.py,sha256=LP_myZwgnrdowrRxGK24lMlx7iZt7iOwFhrbc4NW0DY,3493
|
|
92
|
+
glaip_sdk/cli/slash/tui/theme/__init__.py,sha256=rtM2ik83YNCRcI1qh_Sf3rnxco2OvCNNT3NbHY6cLvw,432
|
|
93
|
+
glaip_sdk/cli/slash/tui/theme/catalog.py,sha256=G52eU3h8YI9D8XUALVg1KVZ4Lq65VnZdgPS3F_P7XLE,2544
|
|
94
|
+
glaip_sdk/cli/slash/tui/theme/manager.py,sha256=X600J_WIBM1CHgsQeMFGFPuaVAFCINFcBXFWmeD4B5Q,2707
|
|
95
|
+
glaip_sdk/cli/slash/tui/theme/tokens.py,sha256=ympMRny_d-gHtmnPR-lmNZ-C9SGBy2q-MH81l0L1h-Y,1423
|
|
96
|
+
glaip_sdk/cli/transcript/__init__.py,sha256=yiYHyNtebMCu3BXu56Xm5RBC2tDc865q8UGPnoe6QRs,920
|
|
97
|
+
glaip_sdk/cli/transcript/cache.py,sha256=Wi1uln6HP1U6F-MRTrfnxi9bn6XJTxwWXhREIRPoMqQ,17439
|
|
98
|
+
glaip_sdk/cli/transcript/capture.py,sha256=t8j_62cC6rhb51oCluZd17N04vcXqyjkhPRcRd3ZcmM,10291
|
|
99
|
+
glaip_sdk/cli/transcript/export.py,sha256=reCvrZVzli8_LzYe5ZNdaa-MwZ1ov2RjnDzKZWr_6-E,1117
|
|
100
|
+
glaip_sdk/cli/transcript/history.py,sha256=IAUaY41QCr9jKgQ1t8spDJiO3Me5r1vAoTX47QQu5z0,26217
|
|
101
|
+
glaip_sdk/cli/transcript/launcher.py,sha256=z5ivkPXDQJpATIqtRLUK8jH3p3WIZ72PvOPqYRDMJvw,2327
|
|
102
|
+
glaip_sdk/cli/transcript/viewer.py,sha256=Y4G40WR6v1g4TfxRbGSZqdrqhLcqBxoWkQgToQoGGxM,13198
|
|
103
|
+
glaip_sdk/client/__init__.py,sha256=s2REOumgE8Z8lA9dWJpwXqpgMdzSELSuCQkZ7sYngX0,381
|
|
104
|
+
glaip_sdk/client/_schedule_payloads.py,sha256=9BXa75CCx3clsKgwmG9AWyvhPY6kVwzQtoLvTTw40CQ,2759
|
|
105
|
+
glaip_sdk/client/agent_runs.py,sha256=tZSFEZZ3Yx0uYRgnwkLe-X0TlmgKJQ-ivzb6SrVnxY8,4862
|
|
106
|
+
glaip_sdk/client/agents.py,sha256=kUNklI6QS39dgPFWMy1F0uw8En4rZ2fDiPW9B87jaVU,49724
|
|
107
|
+
glaip_sdk/client/base.py,sha256=BhNaC2TJJ2jVWRTYmfxD3WjYgAyIuWNz9YURdNXXjJo,18245
|
|
108
|
+
glaip_sdk/client/hitl.py,sha256=dO_q-43miI0oGrJDyUrZ9MbettQp0hai4kjvPaYm010,3545
|
|
109
|
+
glaip_sdk/client/main.py,sha256=FqN-JIoCTN1pV-3O-ElIbe8t_cWYUDV4S0N8W018De0,9362
|
|
110
|
+
glaip_sdk/client/mcps.py,sha256=-JdaIkg0QE3egJ8p93eoOPULup8KbM2WRCcwlvqlqrA,14492
|
|
111
|
+
glaip_sdk/client/run_rendering.py,sha256=L1mPDPQW_NLs7yi6S1dtJlnTUWVl9R9ioxVzcC8xBrU,27262
|
|
112
|
+
glaip_sdk/client/schedules.py,sha256=ZfPzCYzk4YRuPkjkTTgLe5Rqa07mi-h2WmP4H91mMZ0,14113
|
|
113
|
+
glaip_sdk/client/shared.py,sha256=esHlsR0LEfL-pFDaWebQjKKOLl09jsRY-2pllBUn4nU,522
|
|
114
|
+
glaip_sdk/client/tools.py,sha256=NzQTIsn-bjYN9EfGWCBqqawCIVs7auaccFv7BM_3oCc,23871
|
|
115
|
+
glaip_sdk/client/validators.py,sha256=ioF9VCs-LG2yLkaRDd7Hff74lojDZZ0_Q3CiLbdm1RY,8381
|
|
116
|
+
glaip_sdk/client/payloads/agent/__init__.py,sha256=gItEH2zt2secVq6n60oGA-ztdE5mc0GLECn-QMX47ew,558
|
|
117
|
+
glaip_sdk/client/payloads/agent/requests.py,sha256=5FuGEuypaEXlWBhB07JrDca_ecLg4bvo8mjyFBxAV9U,17139
|
|
118
|
+
glaip_sdk/client/payloads/agent/responses.py,sha256=1eRMI4JAIGqTB5zY_7D9ILQDRHPXR06U7JqHSmRp3Qs,1243
|
|
119
|
+
glaip_sdk/config/constants.py,sha256=Y03c6op0e7K0jTQ8bmWXhWAqsnjWxkAhWniq8Z0iEKY,1081
|
|
120
|
+
glaip_sdk/hitl/__init__.py,sha256=hi_SwW1oBimNnSFPo9Yc-mZWVPzpytlnDWNq2h1_fPo,1572
|
|
121
|
+
glaip_sdk/hitl/base.py,sha256=EUN2igzydlYZ6_qmHU46Gyk3Bk9uyalZkCJ06XMRKJ8,1484
|
|
122
|
+
glaip_sdk/hitl/callback.py,sha256=icKxxa_f8lxFQuXrZVoTt6baWivFL4a4YioWG_U_8k8,1336
|
|
123
|
+
glaip_sdk/hitl/local.py,sha256=7Qf-O62YcVXpOHdckm1-g4wwvHQCvwg4D1ikK-xwgqA,4642
|
|
124
|
+
glaip_sdk/hitl/remote.py,sha256=cdO-wWwRGdyb0HYNMwIvHfvKwOqhqp-l7efnaC9b85M,18914
|
|
125
|
+
glaip_sdk/mcps/__init__.py,sha256=4jYrt8K__oxrxexHRcmnRBXt-W_tbJN61H9Kf2lVh4Q,551
|
|
126
|
+
glaip_sdk/mcps/base.py,sha256=jWwHjDF67_mtDGRp9p5SolANjVeB8jt1PSwPBtX876M,11654
|
|
127
|
+
glaip_sdk/models/__init__.py,sha256=Yfy5CKe9xt3MkyoRIiZ4PYy19LbEfv3GXi2PgqXW7iU,2973
|
|
128
|
+
glaip_sdk/models/agent.py,sha256=vtmUSDrrib1hvm0xnofIuOebqlrs-gIaLsny8hzg1iE,1523
|
|
129
|
+
glaip_sdk/models/agent_runs.py,sha256=rK0fTpivukyiqIxrS86evgNtfEwV8Xecq_NeUakFUFw,3829
|
|
130
|
+
glaip_sdk/models/common.py,sha256=O30MEGO2nKcGhKbnPNkoGzwNvDVUBjM-uU-Tpigaz5Y,1180
|
|
131
|
+
glaip_sdk/models/mcp.py,sha256=ti_8MUf4k7qbR1gPs9JhqhybMcLUhZxEELtHQrTv2-U,944
|
|
132
|
+
glaip_sdk/models/schedule.py,sha256=gfL_b9abaWToMtnCD_iXOsmonQ1sq2dZoLcInvCzZ2o,7248
|
|
133
|
+
glaip_sdk/models/tool.py,sha256=w3nL2DqyCtGgDPCd40Asi9obRGghQjLlC9Vt_p32Mpc,951
|
|
134
|
+
glaip_sdk/payload_schemas/__init__.py,sha256=nTJmzwn2BbEpzZdq-8U24eVHQHxqYO3_-SABMV9lS_Q,142
|
|
135
|
+
glaip_sdk/payload_schemas/agent.py,sha256=Nap68mI2Ba8eNGOhk79mGrYUoYUahcUJLof3DLWtVO4,3198
|
|
136
|
+
glaip_sdk/registry/__init__.py,sha256=mjvElYE-wwmbriGe-c6qy4on0ccEuWxW_EWWrSbptCw,1667
|
|
137
|
+
glaip_sdk/registry/agent.py,sha256=F0axW4BIUODqnttIOzxnoS5AqQkLZ1i48FTeZNnYkhA,5203
|
|
138
|
+
glaip_sdk/registry/base.py,sha256=0x2ZBhiERGUcf9mQeWlksSYs5TxDG6FxBYQToYZa5D4,4143
|
|
139
|
+
glaip_sdk/registry/mcp.py,sha256=kNJmiijIbZL9Btx5o2tFtbaT-WG6O4Xf_nl3wz356Ow,7978
|
|
140
|
+
glaip_sdk/registry/tool.py,sha256=c0Ja4rFYMOKs_1yjDLDZxCId4IjQzprwXzX0iIL8Fio,14979
|
|
141
|
+
glaip_sdk/runner/__init__.py,sha256=orJ3nLR9P-n1qMaAMWZ_xRS4368YnDpdltg-bX5BlUk,2210
|
|
142
|
+
glaip_sdk/runner/base.py,sha256=KIjcSAyDCP9_mn2H4rXR5gu1FZlwD9pe0gkTBmr6Yi4,2663
|
|
143
|
+
glaip_sdk/runner/deps.py,sha256=Du3hr2R5RHOYCRAv7RVmx661x-ayVXIeZ8JD7ODirTA,3884
|
|
144
|
+
glaip_sdk/runner/langgraph.py,sha256=HWzEkmkQqvAOKat3lENVf0zDaypj7HMeny5thDyprWY,33031
|
|
145
|
+
glaip_sdk/runner/logging_config.py,sha256=OrQgW23t42qQRqEXKH8U4bFg4JG5EEkUJTlbvtU65iE,2528
|
|
146
|
+
glaip_sdk/runner/mcp_adapter/__init__.py,sha256=Rdttfg3N6kg3-DaTCKqaGXKByZyBt0Mwf6FV8s_5kI8,462
|
|
147
|
+
glaip_sdk/runner/mcp_adapter/base_mcp_adapter.py,sha256=ic56fKgb3zgVZZQm3ClWUZi7pE1t4EVq8mOg6AM6hdA,1374
|
|
148
|
+
glaip_sdk/runner/mcp_adapter/langchain_mcp_adapter.py,sha256=b58GuadPz7q7aXoJyTYs0eeJ_oqp-wLR1tcr_5cbV1s,9723
|
|
149
|
+
glaip_sdk/runner/mcp_adapter/mcp_config_builder.py,sha256=fQcRaueDuyUzXUSVn9N8QxfaYNIteEO_R_uibx_0Icw,3440
|
|
150
|
+
glaip_sdk/runner/tool_adapter/__init__.py,sha256=scv8sSPxSWjlSNEace03R230YbmWgphLgqINKvDjWmM,480
|
|
151
|
+
glaip_sdk/runner/tool_adapter/base_tool_adapter.py,sha256=nL--eicV0St5_0PZZSEhRurHDZHNwhGN2cKOUh0C5IY,1400
|
|
152
|
+
glaip_sdk/runner/tool_adapter/langchain_tool_adapter.py,sha256=SgfQM5NgKyYBs34juxv3TCEicJbKgFIVPPZa22tA9AU,8484
|
|
153
|
+
glaip_sdk/schedules/__init__.py,sha256=Ty__lE8ta3a6O7EiEsSXliVOwA3EBLKxKRsjAJt2WUg,482
|
|
154
|
+
glaip_sdk/schedules/base.py,sha256=ZRKWknoxQOYMhX8mjQ7S7oqpy6Wr0xdbzcgIrycsEQ8,9727
|
|
155
|
+
glaip_sdk/tools/__init__.py,sha256=rhGzEqQFCzeMrxmikBuNrMz4PyYczwic28boDKVmoHs,585
|
|
156
|
+
glaip_sdk/tools/base.py,sha256=tEhOHPV8bL5p59l6aB0oYPa51_12bMznQKWAzESZ1FE,16354
|
|
157
|
+
glaip_sdk/utils/__init__.py,sha256=5a1kNLtUriwd1qAT6RU083GOyABS7LMZQacDP4yS9S4,2830
|
|
158
|
+
glaip_sdk/utils/agent_config.py,sha256=RhcHsSOVwOaSC2ggnPuHn36Aa0keGJhs8KGb2InvzRk,7262
|
|
159
|
+
glaip_sdk/utils/bundler.py,sha256=fLumFj1MqqqGA1Mwn05v_cEKPALv3rIPEMvaURpxZ80,15171
|
|
160
|
+
glaip_sdk/utils/client.py,sha256=otPUOIDvLCCsvFBNR8YMZFtRrORggmvvlFjl3YeeTqQ,3121
|
|
161
|
+
glaip_sdk/utils/client_utils.py,sha256=hzHxxNuM37mK4HhgIdS0qg4AqjAA5ai2irPO6Nr1Uzo,15350
|
|
162
|
+
glaip_sdk/utils/datetime_helpers.py,sha256=QLknNLEAY56628-MTRKnCXAffATkF33erOqBubKmU98,1544
|
|
163
|
+
glaip_sdk/utils/discovery.py,sha256=DbnPuCXuS5mwTZ9fMfsPHQDJltFV99Wf8Em0YttktVU,1994
|
|
164
|
+
glaip_sdk/utils/display.py,sha256=zu3SYqxj9hPyEN8G1vIXv_yXBkV8jLLCXEg2rs8NlzM,4485
|
|
165
|
+
glaip_sdk/utils/export.py,sha256=1NxxE3wGsA1auzecG5oJw5ELB4VmPljoeIkGhrGOh1I,5006
|
|
166
|
+
glaip_sdk/utils/general.py,sha256=3HSVIopUsIymPaim-kP2lqLX75TkkdIVLe6g3UKabZ0,1507
|
|
167
|
+
glaip_sdk/utils/import_export.py,sha256=RCvoydm_6_L7_J1igcE6IYDunqgS5mQUbWT4VGrytMw,5510
|
|
168
|
+
glaip_sdk/utils/import_resolver.py,sha256=X2qUV4_XmwStccGjnQ0YcxXAFyxZzwaKpfxjAW4Ev2o,17159
|
|
169
|
+
glaip_sdk/utils/instructions.py,sha256=MTk93lsq3I8aRnvnRMSXXNMzcpnaIM_Pm3Aiiiq3GBc,2997
|
|
170
|
+
glaip_sdk/utils/resource_refs.py,sha256=vF34kyAtFBLnaKnQVrsr2st1JiSxVbIZ4yq0DelJvCI,5966
|
|
171
|
+
glaip_sdk/utils/run_renderer.py,sha256=d_VMI6LbvHPUUeRmGqh5wK_lHqDEIAcym2iqpbtDad0,1365
|
|
172
|
+
glaip_sdk/utils/runtime_config.py,sha256=Gl9-CQ4lYZ39vRSgtdfcSU3CXshVDDuTOdSzjvsCgG0,14070
|
|
173
|
+
glaip_sdk/utils/serialization.py,sha256=z-qpvWLSBrGK3wbUclcA1UIKLXJedTnMSwPdq-FF4lo,13308
|
|
174
|
+
glaip_sdk/utils/sync.py,sha256=71egWp5qm_8tYpWZyGazvnP4NnyW16rcmzjGVicmQEE,6043
|
|
175
|
+
glaip_sdk/utils/tool_detection.py,sha256=B7xze014TZyqWI4JqLhkZrbtT5h32CjQEXRswtdcljI,9808
|
|
176
|
+
glaip_sdk/utils/tool_storage_provider.py,sha256=lampwUeWu4Uy8nBG7C4ZT-M6AHoWZS0m67HdLx21VDg,5396
|
|
177
|
+
glaip_sdk/utils/validation.py,sha256=hB_k3lvHdIFUiSwHStrC0Eqnhx0OG2UvwqASeem0HuQ,6859
|
|
178
|
+
glaip_sdk/utils/a2a/__init__.py,sha256=_X8AvDOsHeppo5n7rP5TeisVxlAdkZDTFReBk_9lmxo,876
|
|
179
|
+
glaip_sdk/utils/a2a/event_processor.py,sha256=9Mjvvd4_4VDYeOkAI7_vF7N7_Dn0Kn23ramKyK32b3c,5993
|
|
180
|
+
glaip_sdk/utils/rendering/__init__.py,sha256=cJhhBEf46RnmUGJ1fivGkFuCoOn2pkJkSuRWoo1xlhE,3608
|
|
181
|
+
glaip_sdk/utils/rendering/formatting.py,sha256=tP-CKkKFDhiAHS1vpJQ3D6NmPVl0TX1ZOwBOoxia2eE,8009
|
|
182
|
+
glaip_sdk/utils/rendering/models.py,sha256=LtBgF0CyFnVW_oLAR8O62P-h8auCJwlgZaMUhmE8V-0,2882
|
|
183
|
+
glaip_sdk/utils/rendering/state.py,sha256=54ViIHCGoBHQE4yMOrB2ToK3FZuv7SsD0Qcyq3CEKe4,6540
|
|
184
|
+
glaip_sdk/utils/rendering/step_tree_state.py,sha256=EItKFTV2FYvm5pSyHbXk7lkzJ-0DW_s-VENIBZe8sp4,4062
|
|
185
|
+
glaip_sdk/utils/rendering/timing.py,sha256=__F1eFPoocm7Dps7Y1O_gJV24HsNTbx_FMiqEDN4T9o,1063
|
|
186
|
+
glaip_sdk/utils/rendering/layout/__init__.py,sha256=Lz8eLXDO28wyK36BhKJ6o9YmsRjmQZrNhvZ2wwSjvPw,1609
|
|
187
|
+
glaip_sdk/utils/rendering/layout/panels.py,sha256=c7EhMznVxIiclrFERJuc3qem21t7sQI6BDcmujtdSAk,3905
|
|
188
|
+
glaip_sdk/utils/rendering/layout/progress.py,sha256=GhOhUPNQd8-e6JxTJsV76s6wIYhtTw2G1C3BY9yhtRk,6418
|
|
189
|
+
glaip_sdk/utils/rendering/layout/summary.py,sha256=K-gkDxwUxF67-4nF20y6hv95QEwRZCQI9Eb4KbA8eQY,2325
|
|
190
|
+
glaip_sdk/utils/rendering/layout/transcript.py,sha256=vbfywtbWCDzLY9B5Vvf4crhomftFq-UEz7zqySiLrD8,19052
|
|
191
|
+
glaip_sdk/utils/rendering/renderer/__init__.py,sha256=lpf0GnNGcPb8gq_hJM6Puflwy3eTigVK9qXP01nWRv0,1754
|
|
192
|
+
glaip_sdk/utils/rendering/renderer/base.py,sha256=CpkkwiTmJHi8j2EGBva7WBpVWNte0VoDGgF6UbiJ9J8,41929
|
|
193
|
+
glaip_sdk/utils/rendering/renderer/config.py,sha256=FgSAZpG1g7Atm2MXg0tY0lOEciY90MR-RO6YuGFhp0E,626
|
|
194
|
+
glaip_sdk/utils/rendering/renderer/console.py,sha256=4cLOw4Q1fkHkApuj6dWW8eYpeYdcT0t2SO5MbVt5UTc,1844
|
|
195
|
+
glaip_sdk/utils/rendering/renderer/debug.py,sha256=qyqFXltYzKEqajwlu8QFSBU3P46JzMzIZqurejhx14o,5907
|
|
196
|
+
glaip_sdk/utils/rendering/renderer/factory.py,sha256=3p1Uga_UEN-wwTNerNaDB3qf3-yu1a9DfH4weXxeRdA,4711
|
|
197
|
+
glaip_sdk/utils/rendering/renderer/stream.py,sha256=htqm8pujXGKJncO86d-dfHixv9btACBgwPbO_brUQio,7812
|
|
198
|
+
glaip_sdk/utils/rendering/renderer/summary_window.py,sha256=ffBsVHaUyy2RfIuXLjhfiO31HeeprVcPP_pe4cjDLsU,2286
|
|
199
|
+
glaip_sdk/utils/rendering/renderer/thinking.py,sha256=09dYbtzpOrG5SlhuqpW9uqPCpiijPQuIntsNboMDDJ8,9399
|
|
200
|
+
glaip_sdk/utils/rendering/renderer/toggle.py,sha256=N3LB4g1r8EdDkQyItQdrP5gig6Sszz9uZ6WJuD0KUmk,5396
|
|
201
|
+
glaip_sdk/utils/rendering/renderer/tool_panels.py,sha256=ev7gZsakUMxfG4JoS_bBDey_MwMDyOLwVhTO536v608,17246
|
|
202
|
+
glaip_sdk/utils/rendering/renderer/transcript_mode.py,sha256=FBZVQYrXF5YH79g3gYizE6P_yL5k9ZSGViCmZhv6C4g,6013
|
|
203
|
+
glaip_sdk/utils/rendering/steps/__init__.py,sha256=y1BJUPeT4bclXPmsy6B66KNZWiY8W5p-LnLnlrxynP8,840
|
|
204
|
+
glaip_sdk/utils/rendering/steps/event_processor.py,sha256=sGOHpxm7WmKxxY68l9Su6_YbDkXcoFblwkv1fToSX5k,29048
|
|
205
|
+
glaip_sdk/utils/rendering/steps/format.py,sha256=Chnq7OBaj8XMeBntSBxrX5zSmrYeGcOszooNeBe7_pM,5654
|
|
206
|
+
glaip_sdk/utils/rendering/steps/manager.py,sha256=BiBmTeQMQhjRMykgICXsXNYh1hGsss-fH9BIGVMWFi0,13194
|
|
207
|
+
glaip_sdk/utils/rendering/viewer/__init__.py,sha256=XrxmE2cMAozqrzo1jtDFm8HqNtvDcYi2mAhXLXn5CjI,457
|
|
208
|
+
glaip_sdk/utils/rendering/viewer/presenter.py,sha256=mlLMTjnyeyPVtsyrAbz1BJu9lFGQSlS-voZ-_Cuugv0,5725
|
|
209
|
+
glaip_sdk-0.7.7.dist-info/METADATA,sha256=ZmjKOkOJYka0gJNYNil9Z8BzTwzy2rMN896Wy0L3ZOI,8365
|
|
210
|
+
glaip_sdk-0.7.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
211
|
+
glaip_sdk-0.7.7.dist-info/entry_points.txt,sha256=NkhO6FfgX9Zrjn63GuKphf-dLw7KNJvucAcXc7P3aMk,54
|
|
212
|
+
glaip_sdk-0.7.7.dist-info/top_level.txt,sha256=td7yXttiYX2s94-4wFhv-5KdT0rSZ-pnJRSire341hw,10
|
|
213
|
+
glaip_sdk-0.7.7.dist-info/RECORD,,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
glaip_sdk
|