glaip-sdk 0.6.5b6__py3-none-any.whl → 0.6.6__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.
@@ -1,7 +1,7 @@
1
1
  glaip_sdk/__init__.py,sha256=0PAFfodqAEdggIiV1Es_JryDokZrhYLFFIXosqdguJU,420
2
2
  glaip_sdk/_version.py,sha256=5CHGCxx_36fgmMWuEx6jJ2CzzM-i9eBFyQWFwBi23XE,2259
3
3
  glaip_sdk/agents/__init__.py,sha256=VfYov56edbWuySXFEbWJ_jLXgwnFzPk1KB-9-mfsUCc,776
4
- glaip_sdk/agents/base.py,sha256=xCu4vZ2EOXbpsY38Cbebdqz-7ZNmZK9_wo8DxyZh7eA,39577
4
+ glaip_sdk/agents/base.py,sha256=OXoosHYh_J3ZCDJXNYNS78vaMbSOC5F4bk1DE31XcMc,37874
5
5
  glaip_sdk/branding.py,sha256=tLqYCIHMkUf8p2smpuAGNptwaKUN38G4mlh0A0DOl_w,7823
6
6
  glaip_sdk/cli/__init__.py,sha256=xCCfuF1Yc7mpCDcfhHZTX0vizvtrDSLeT8MJ3V7m5A0,156
7
7
  glaip_sdk/cli/account_store.py,sha256=TK4iTV93Q1uD9mCY_2ZMT6EazHKU2jX0qhgWfEM4V-4,18459
@@ -37,15 +37,15 @@ glaip_sdk/cli/parsers/json_input.py,sha256=kxoxeIlgfsaH2jhe6apZAgSxAtwlpSINLTMRs
37
37
  glaip_sdk/cli/resolution.py,sha256=K-VaEHm9SYY_qfb9538VNHykL4_2N6F8iQqI1zMx_64,2402
38
38
  glaip_sdk/cli/rich_helpers.py,sha256=kO47N8e506rxrN6Oc9mbAWN3Qb536oQPWZy1s9A616g,819
39
39
  glaip_sdk/cli/slash/__init__.py,sha256=J9TPL2UcNTkW8eifG6nRmAEGHhyEgdYMYk4cHaaObC0,386
40
- glaip_sdk/cli/slash/accounts_controller.py,sha256=BDKaEfVbMh1B2T4GW3FF5hJo0SCe9_Pmy8vvyXtI9LY,21562
40
+ glaip_sdk/cli/slash/accounts_controller.py,sha256=-7v_4nTAVCqXySbOLtTfMpUpsqCzDTWmZYkBU880AzI,24803
41
41
  glaip_sdk/cli/slash/accounts_shared.py,sha256=Mq5HxlI0YsVEQ0KKISWvyBZhzOFFWCzwRbhF5xwvUbM,2626
42
- glaip_sdk/cli/slash/agent_session.py,sha256=9r1xNRk5mk6rfJXV6KIf2Yo4B4hjknimd9fkxH1LO3c,11304
43
- glaip_sdk/cli/slash/prompt.py,sha256=2urqR3QqN3O09lHmKKSEbhsIdlS4B7hm9O8AP_VwCSU,8034
42
+ glaip_sdk/cli/slash/agent_session.py,sha256=ZK51zrwhFtun26Lu3a70Kcp3VFh0jwu37crWDKx7Ivk,11377
43
+ glaip_sdk/cli/slash/prompt.py,sha256=q4f1c2zr7ZMUeO6AgOBF2Nz4qgMOXrVPt6WzPRQMbAM,8501
44
44
  glaip_sdk/cli/slash/remote_runs_controller.py,sha256=Ok6CezIeF1CPGQ8-QN3TRx5kGGEACOrgyPwH_BRRCyI,21354
45
- glaip_sdk/cli/slash/session.py,sha256=8pfO21vAbpxWnE71fthXXsR0TijYBDDhHR-8LFFapUs,63028
45
+ glaip_sdk/cli/slash/session.py,sha256=JieIjUCTMW350LDqdSOdfPP8U0OJSmRYvqPBbddO2bw,64333
46
46
  glaip_sdk/cli/slash/tui/__init__.py,sha256=ljBAeAFY2qNDkbJrZh5NgXxjwUlsv9-UxgKNIv0AF1Q,274
47
47
  glaip_sdk/cli/slash/tui/accounts.tcss,sha256=xuQjQ0tBM08K1DUv6lI5Sfu1zgZzQxg60c9-RlEWB4s,1160
48
- glaip_sdk/cli/slash/tui/accounts_app.py,sha256=dE0w10MSGPgjE7YQl8LzF1pSYu6LKX-L6eYMFOM2530,33593
48
+ glaip_sdk/cli/slash/tui/accounts_app.py,sha256=QDaOpVStS6Z51tfXcS8GRRjTrVfMO26-guHepqysU9k,33715
49
49
  glaip_sdk/cli/slash/tui/background_tasks.py,sha256=SAe1mV2vXB3mJcSGhelU950vf8Lifjhws9iomyIVFKw,2422
50
50
  glaip_sdk/cli/slash/tui/loading.py,sha256=nW5pv_Tnl9FUOPR3Qf2O5gt1AGHSo3b5-Uofg34F6AE,1909
51
51
  glaip_sdk/cli/slash/tui/remote_runs_app.py,sha256=RCrI-c5ilKV6Iy1lz2Aok9xo2Ou02vqcXACMXTdodnE,24716
@@ -55,7 +55,7 @@ glaip_sdk/cli/transcript/capture.py,sha256=t8j_62cC6rhb51oCluZd17N04vcXqyjkhPRcR
55
55
  glaip_sdk/cli/transcript/export.py,sha256=reCvrZVzli8_LzYe5ZNdaa-MwZ1ov2RjnDzKZWr_6-E,1117
56
56
  glaip_sdk/cli/transcript/history.py,sha256=2FBjawxP8CX9gRPMUMP8bDjG50BGM2j2zk6IfHvAMH4,26211
57
57
  glaip_sdk/cli/transcript/launcher.py,sha256=z5ivkPXDQJpATIqtRLUK8jH3p3WIZ72PvOPqYRDMJvw,2327
58
- glaip_sdk/cli/transcript/viewer.py,sha256=ar1SzRkhKIf3_DgFz1EG1RZGDmd2w2wogAe038DLL_M,13037
58
+ glaip_sdk/cli/transcript/viewer.py,sha256=HKL3U-FrhluKSmxLdE_kTbdTalG-LCE0wu1MXsf22Ao,13189
59
59
  glaip_sdk/cli/update_notifier.py,sha256=FnTjzS8YT94RmP6c5aU_XNIyRi7FRHvAskMy-VJikl8,10064
60
60
  glaip_sdk/cli/utils.py,sha256=iemmKkpPndoZFBasoVqV7QArplchtr08yYWLA2efMzg,11996
61
61
  glaip_sdk/cli/validators.py,sha256=d-kq4y7HWMo6Gc7wLXWUsCt8JwFvJX_roZqRm1Nko1I,5622
@@ -68,7 +68,7 @@ glaip_sdk/client/main.py,sha256=RTREAOgGouYm4lFKkpNBQ9dmxalnBsIpSSaQLWVFSmU,9054
68
68
  glaip_sdk/client/mcps.py,sha256=gFRuLOGeh6ieIhR4PeD6yNVT6NhvUMTqPq9iuu1vkAY,13019
69
69
  glaip_sdk/client/run_rendering.py,sha256=ubBO-NzyZoYRELNwxVvrQFRGQVJCuLfqqJNiXrBZDoQ,14223
70
70
  glaip_sdk/client/shared.py,sha256=esHlsR0LEfL-pFDaWebQjKKOLl09jsRY-2pllBUn4nU,522
71
- glaip_sdk/client/tools.py,sha256=RR7345wECqPtofDXPW12VOnLtus554tXleL0YHQy82U,22435
71
+ glaip_sdk/client/tools.py,sha256=kK0rBwX1e_5AlGQRjlO6rNz6gDlohhXWdlxN9AwotdE,22585
72
72
  glaip_sdk/client/validators.py,sha256=ioF9VCs-LG2yLkaRDd7Hff74lojDZZ0_Q3CiLbdm1RY,8381
73
73
  glaip_sdk/config/constants.py,sha256=Y03c6op0e7K0jTQ8bmWXhWAqsnjWxkAhWniq8Z0iEKY,1081
74
74
  glaip_sdk/exceptions.py,sha256=iAChFClkytXRBLP0vZq1_YjoZxA9i4m4bW1gDLiGR1g,2321
@@ -87,24 +87,11 @@ glaip_sdk/registry/__init__.py,sha256=mjvElYE-wwmbriGe-c6qy4on0ccEuWxW_EWWrSbptC
87
87
  glaip_sdk/registry/agent.py,sha256=F0axW4BIUODqnttIOzxnoS5AqQkLZ1i48FTeZNnYkhA,5203
88
88
  glaip_sdk/registry/base.py,sha256=0x2ZBhiERGUcf9mQeWlksSYs5TxDG6FxBYQToYZa5D4,4143
89
89
  glaip_sdk/registry/mcp.py,sha256=kNJmiijIbZL9Btx5o2tFtbaT-WG6O4Xf_nl3wz356Ow,7978
90
- glaip_sdk/registry/tool.py,sha256=Aq6eryE9hOF9XFnjaBwfnrQgii5uyMdMkLaqm9D9BEk,7765
90
+ glaip_sdk/registry/tool.py,sha256=Y3mubiT84TOGByxOab1gF5ROBzcak_6o__JEGiv7uyM,7871
91
91
  glaip_sdk/rich_components.py,sha256=44Z0V1ZQleVh9gUDGwRR5mriiYFnVGOhm7fFxZYbP8c,4052
92
- glaip_sdk/runner/__init__.py,sha256=8RrngoGfpF8x9X27RPdX4gJjch75ZvhtVt_6UV0ULLQ,1615
93
- glaip_sdk/runner/base.py,sha256=KIjcSAyDCP9_mn2H4rXR5gu1FZlwD9pe0gkTBmr6Yi4,2663
94
- glaip_sdk/runner/deps.py,sha256=3ZDWyvWu4LFJOGHd18tv3VzVo8NY5gb1VeZIelMknyI,3934
95
- glaip_sdk/runner/langgraph.py,sha256=OPuD44EERJgrlQoM8iGEgGV5pA7e-WeCPHMSe4znYPs,21840
96
- glaip_sdk/runner/mcp_adapter/__init__.py,sha256=Rdttfg3N6kg3-DaTCKqaGXKByZyBt0Mwf6FV8s_5kI8,462
97
- glaip_sdk/runner/mcp_adapter/base_mcp_adapter.py,sha256=ic56fKgb3zgVZZQm3ClWUZi7pE1t4EVq8mOg6AM6hdA,1374
98
- glaip_sdk/runner/mcp_adapter/langchain_mcp_adapter.py,sha256=88moaeTDW7KPxu6qh8mK4pr6oqpOLKLgXX66gFB-5J0,5715
99
- glaip_sdk/runner/mcp_adapter/mcp_config_builder.py,sha256=fQcRaueDuyUzXUSVn9N8QxfaYNIteEO_R_uibx_0Icw,3440
100
- glaip_sdk/runner/tool_adapter/__init__.py,sha256=scv8sSPxSWjlSNEace03R230YbmWgphLgqINKvDjWmM,480
101
- glaip_sdk/runner/tool_adapter/base_tool_adapter.py,sha256=nL--eicV0St5_0PZZSEhRurHDZHNwhGN2cKOUh0C5IY,1400
102
- glaip_sdk/runner/tool_adapter/langchain_tool_adapter.py,sha256=tmRYyPhih0a4_8c7Cg7ariYP2AEtHW69TRxqukwa2Ko,5438
103
92
  glaip_sdk/tools/__init__.py,sha256=rhGzEqQFCzeMrxmikBuNrMz4PyYczwic28boDKVmoHs,585
104
93
  glaip_sdk/tools/base.py,sha256=bvumLJ-DiQTmuYKgq2yCnlwrTZ9nYXpOwWU0e1vWR5g,15185
105
94
  glaip_sdk/utils/__init__.py,sha256=ntohV7cxlY2Yksi2nFuFm_Mg2XVJbBbSJVRej7Mi9YE,2770
106
- glaip_sdk/utils/a2a/__init__.py,sha256=_X8AvDOsHeppo5n7rP5TeisVxlAdkZDTFReBk_9lmxo,876
107
- glaip_sdk/utils/a2a/event_processor.py,sha256=9Mjvvd4_4VDYeOkAI7_vF7N7_Dn0Kn23ramKyK32b3c,5993
108
95
  glaip_sdk/utils/agent_config.py,sha256=RhcHsSOVwOaSC2ggnPuHn36Aa0keGJhs8KGb2InvzRk,7262
109
96
  glaip_sdk/utils/bundler.py,sha256=fQWAv0e5qNjF1Lah-FGoA9W5Q59YaHbQfX_4ZB84YRw,9120
110
97
  glaip_sdk/utils/client.py,sha256=otPUOIDvLCCsvFBNR8YMZFtRrORggmvvlFjl3YeeTqQ,3121
@@ -148,12 +135,11 @@ glaip_sdk/utils/rendering/viewer/__init__.py,sha256=XrxmE2cMAozqrzo1jtDFm8HqNtvD
148
135
  glaip_sdk/utils/rendering/viewer/presenter.py,sha256=mlLMTjnyeyPVtsyrAbz1BJu9lFGQSlS-voZ-_Cuugv0,5725
149
136
  glaip_sdk/utils/resource_refs.py,sha256=vF34kyAtFBLnaKnQVrsr2st1JiSxVbIZ4yq0DelJvCI,5966
150
137
  glaip_sdk/utils/run_renderer.py,sha256=d_VMI6LbvHPUUeRmGqh5wK_lHqDEIAcym2iqpbtDad0,1365
151
- glaip_sdk/utils/runtime_config.py,sha256=SPvc2qF7qGio745kMwOOtzXY1-pHI3Vi3BJHcHFhwiE,13634
138
+ glaip_sdk/utils/runtime_config.py,sha256=Y6frWR_PjD3CV2Jl3AqKxhhsJCkrxSuX27jw0-2aX2M,10124
152
139
  glaip_sdk/utils/serialization.py,sha256=z-qpvWLSBrGK3wbUclcA1UIKLXJedTnMSwPdq-FF4lo,13308
153
140
  glaip_sdk/utils/sync.py,sha256=3VKqs1UfNGWSobgRXohBKP7mMMzdUW3SU0bJQ1uxOgw,4872
154
- glaip_sdk/utils/tool_detection.py,sha256=g410GNug_PhLye8rd9UU-LVFIKq3jHPbmSItEkLxPTc,807
155
141
  glaip_sdk/utils/validation.py,sha256=hB_k3lvHdIFUiSwHStrC0Eqnhx0OG2UvwqASeem0HuQ,6859
156
- glaip_sdk-0.6.5b6.dist-info/METADATA,sha256=b7tq7eogU3i0Ran1V93NFYHCZzww92JDohcL7ggH9Ac,7622
157
- glaip_sdk-0.6.5b6.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
158
- glaip_sdk-0.6.5b6.dist-info/entry_points.txt,sha256=EGs8NO8J1fdFMWA3CsF7sKBEvtHb_fujdCoNPhfMouE,47
159
- glaip_sdk-0.6.5b6.dist-info/RECORD,,
142
+ glaip_sdk-0.6.6.dist-info/METADATA,sha256=Zkv31LdC1Z-bni8mO5w299kmI56EnnkiU0ZDw9lO5FM,7128
143
+ glaip_sdk-0.6.6.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
144
+ glaip_sdk-0.6.6.dist-info/entry_points.txt,sha256=EGs8NO8J1fdFMWA3CsF7sKBEvtHb_fujdCoNPhfMouE,47
145
+ glaip_sdk-0.6.6.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 2.1.3
2
+ Generator: poetry-core 1.9.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -1,59 +0,0 @@
1
- """Local agent execution runners.
2
-
3
- This module provides runners for executing glaip-sdk agents locally
4
- without requiring the AIP backend server. The primary runner is
5
- LangGraphRunner which uses the aip-agents library.
6
-
7
- To use local execution, install with the [local] extra:
8
- pip install "glaip-sdk[local]"
9
-
10
- Authors:
11
- Christian Trisno Sen Long Chen (christian.t.s.l.chen@gdplabs.id)
12
-
13
- Example:
14
- >>> from glaip_sdk.runner import get_default_runner
15
- >>> from glaip_sdk.agents import Agent
16
- >>>
17
- >>> agent = Agent(name="my-agent", instruction="You are helpful.")
18
- >>> runner = get_default_runner()
19
- >>> result = runner.run(agent, "Hello!")
20
- """
21
-
22
- from glaip_sdk.runner.deps import (
23
- LOCAL_RUNTIME_AVAILABLE,
24
- check_local_runtime_available,
25
- get_local_runtime_missing_message,
26
- )
27
- from glaip_sdk.runner.langgraph import LangGraphRunner
28
-
29
- # Default runner instance
30
- _default_runner: LangGraphRunner | None = None
31
-
32
-
33
- def get_default_runner() -> LangGraphRunner:
34
- """Get the default runner instance for local agent execution.
35
-
36
- Returns:
37
- The default LangGraphRunner instance.
38
-
39
- Raises:
40
- RuntimeError: If local runtime dependencies are not available.
41
- """
42
- global _default_runner
43
-
44
- if not check_local_runtime_available():
45
- raise RuntimeError(get_local_runtime_missing_message())
46
-
47
- if _default_runner is None:
48
- _default_runner = LangGraphRunner()
49
-
50
- return _default_runner
51
-
52
-
53
- __all__ = [
54
- "LOCAL_RUNTIME_AVAILABLE",
55
- "LangGraphRunner",
56
- "check_local_runtime_available",
57
- "get_default_runner",
58
- "get_local_runtime_missing_message",
59
- ]
glaip_sdk/runner/base.py DELETED
@@ -1,84 +0,0 @@
1
- """Abstract base class for agent execution runners.
2
-
3
- Authors:
4
- Christian Trisno Sen Long Chen (christian.t.s.l.chen@gdplabs.id)
5
- """
6
-
7
- from __future__ import annotations
8
-
9
- from abc import ABC, abstractmethod
10
- from typing import TYPE_CHECKING, Any
11
-
12
- if TYPE_CHECKING:
13
- from glaip_sdk.agents.base import Agent
14
-
15
-
16
- class BaseRunner(ABC):
17
- """Abstract base class for agent execution runners.
18
-
19
- Runners are responsible for executing glaip-sdk Agent instances
20
- and returning results. Different runner implementations may use
21
- different execution backends (LangGraph, Google ADK, etc.).
22
- """
23
-
24
- @abstractmethod
25
- def run(
26
- self,
27
- agent: Agent,
28
- message: str,
29
- verbose: bool = False,
30
- runtime_config: dict[str, Any] | None = None,
31
- chat_history: list[dict[str, str]] | None = None,
32
- **kwargs: Any,
33
- ) -> str:
34
- """Execute agent synchronously and return final response text.
35
-
36
- Args:
37
- agent: The glaip_sdk Agent to execute.
38
- message: The user message to send to the agent.
39
- verbose: If True, emit debug trace output during execution.
40
- Defaults to False.
41
- runtime_config: Optional runtime configuration for tools, MCPs, etc.
42
- Defaults to None.
43
- chat_history: Optional list of prior conversation messages.
44
- Defaults to None.
45
- **kwargs: Additional keyword arguments passed to the backend.
46
-
47
- Returns:
48
- The final response text from the agent.
49
-
50
- Raises:
51
- RuntimeError: If execution fails.
52
- """
53
- ...
54
-
55
- @abstractmethod
56
- async def arun(
57
- self,
58
- agent: Agent,
59
- message: str,
60
- verbose: bool = False,
61
- runtime_config: dict[str, Any] | None = None,
62
- chat_history: list[dict[str, str]] | None = None,
63
- **kwargs: Any,
64
- ) -> str:
65
- """Execute agent asynchronously and return final response text.
66
-
67
- Args:
68
- agent: The glaip_sdk Agent to execute.
69
- message: The user message to send to the agent.
70
- verbose: If True, emit debug trace output during execution.
71
- Defaults to False.
72
- runtime_config: Optional runtime configuration for tools, MCPs, etc.
73
- Defaults to None.
74
- chat_history: Optional list of prior conversation messages.
75
- Defaults to None.
76
- **kwargs: Additional keyword arguments passed to the backend.
77
-
78
- Returns:
79
- The final response text from the agent.
80
-
81
- Raises:
82
- RuntimeError: If execution fails.
83
- """
84
- ...
glaip_sdk/runner/deps.py DELETED
@@ -1,115 +0,0 @@
1
- """Dependency detection utilities for the runner module.
2
-
3
- This module provides helpers to detect whether the local runtime dependencies
4
- (aip-agents) are installed and to generate actionable error messages when they
5
- are not available.
6
-
7
- Authors:
8
- Christian Trisno Sen Long Chen (christian.t.s.l.chen@gdplabs.id)
9
-
10
- Example:
11
- >>> from glaip_sdk.runner.deps import check_local_runtime_available
12
- >>> if not check_local_runtime_available():
13
- ... print(get_local_runtime_missing_message())
14
- """
15
-
16
- from __future__ import annotations
17
-
18
- from gllm_core.utils import LoggerManager
19
-
20
- logger = LoggerManager().get_logger(__name__)
21
-
22
- # Module-level cache for import availability check
23
- _local_runtime_available: bool | None = None
24
-
25
-
26
- def _probe_aip_agents_import() -> bool:
27
- """Attempt to import aip_agents and return success status.
28
-
29
- Returns:
30
- True if aip_agents can be imported successfully, False otherwise.
31
- """
32
- try:
33
- import aip_agents # noqa: F401, PLC0415
34
-
35
- return True
36
- except ImportError:
37
- return False
38
-
39
-
40
- def check_local_runtime_available() -> bool:
41
- """Check if the local runtime dependencies are installed and importable.
42
-
43
- This function probes for the aip_agents module which provides the
44
- LangGraphReactAgent for local execution. Results are cached for efficiency.
45
-
46
- Returns:
47
- True if local runtime is available, False otherwise.
48
- """
49
- global _local_runtime_available
50
-
51
- if _local_runtime_available is None:
52
- _local_runtime_available = _probe_aip_agents_import()
53
- if _local_runtime_available:
54
- logger.debug("Local runtime dependencies (aip-agents) detected")
55
- else:
56
- logger.debug("Local runtime dependencies (aip-agents) not available")
57
-
58
- return _local_runtime_available
59
-
60
-
61
- # Cached availability flag for use in conditions without function call overhead
62
- LOCAL_RUNTIME_AVAILABLE: bool = check_local_runtime_available()
63
-
64
-
65
- def get_local_runtime_missing_message() -> str:
66
- """Generate an actionable error message when local runtime is not available.
67
-
68
- Returns:
69
- A user-friendly message explaining how to install local runtime dependencies
70
- or how to use server-backed execution as an alternative.
71
- """
72
- return (
73
- "Local runtime dependencies are not installed. "
74
- "To run agents locally without an AIP server, install with:\n\n"
75
- ' pip install "glaip-sdk[local]"\n\n'
76
- "Alternatively, call deploy() to run this agent on the AIP server."
77
- )
78
-
79
-
80
- def get_local_mode_not_supported_for_tool_message(tool_ref: str) -> str:
81
- """Generate an error message for tools that cannot be used in local mode.
82
-
83
- Args:
84
- tool_ref: A string identifier for the tool (name, ID, or type description).
85
-
86
- Returns:
87
- Error message explaining that the tool type is not supported locally.
88
- """
89
- return (
90
- f"Tool '{tool_ref}' cannot be used in local mode. "
91
- "Local runtime only supports LangChain-compatible tool classes/instances "
92
- "and Tool.from_langchain(...) references. "
93
- "Native platform tools (Tool.from_native()) require server-backed execution "
94
- "via deploy()."
95
- )
96
-
97
-
98
- def get_uuid_not_supported_message(key_type: str, uuid_value: str) -> str:
99
- """Generate an error message when a UUID is used in local mode.
100
-
101
- In local mode, runtime_config keys must be tool/agent/MCP objects or names,
102
- not UUIDs which require platform registry resolution.
103
-
104
- Args:
105
- key_type: The type of key (e.g., "tool", "agent", "mcp").
106
- uuid_value: The UUID that was incorrectly provided.
107
-
108
- Returns:
109
- Error message explaining that UUIDs are not supported in local mode.
110
- """
111
- return (
112
- f"UUID-like {key_type} key '{uuid_value}' is not supported in local mode. "
113
- f"Local runtime cannot resolve {key_type} IDs - pass the {key_type} "
114
- f"class/instance or name instead."
115
- )