glaip-sdk 0.0.20__py3-none-any.whl → 0.1.3__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.
Files changed (66) hide show
  1. glaip_sdk/_version.py +1 -3
  2. glaip_sdk/branding.py +2 -6
  3. glaip_sdk/cli/agent_config.py +2 -6
  4. glaip_sdk/cli/auth.py +11 -30
  5. glaip_sdk/cli/commands/agents.py +64 -107
  6. glaip_sdk/cli/commands/configure.py +12 -36
  7. glaip_sdk/cli/commands/mcps.py +25 -63
  8. glaip_sdk/cli/commands/models.py +2 -4
  9. glaip_sdk/cli/commands/tools.py +22 -35
  10. glaip_sdk/cli/commands/update.py +3 -8
  11. glaip_sdk/cli/config.py +1 -3
  12. glaip_sdk/cli/display.py +10 -13
  13. glaip_sdk/cli/io.py +8 -14
  14. glaip_sdk/cli/main.py +10 -30
  15. glaip_sdk/cli/mcp_validators.py +5 -15
  16. glaip_sdk/cli/pager.py +3 -9
  17. glaip_sdk/cli/parsers/json_input.py +11 -22
  18. glaip_sdk/cli/resolution.py +3 -9
  19. glaip_sdk/cli/rich_helpers.py +1 -3
  20. glaip_sdk/cli/slash/agent_session.py +5 -10
  21. glaip_sdk/cli/slash/prompt.py +3 -10
  22. glaip_sdk/cli/slash/session.py +46 -98
  23. glaip_sdk/cli/transcript/cache.py +6 -19
  24. glaip_sdk/cli/transcript/capture.py +45 -20
  25. glaip_sdk/cli/transcript/launcher.py +1 -3
  26. glaip_sdk/cli/transcript/viewer.py +224 -47
  27. glaip_sdk/cli/update_notifier.py +165 -21
  28. glaip_sdk/cli/utils.py +33 -91
  29. glaip_sdk/cli/validators.py +11 -12
  30. glaip_sdk/client/_agent_payloads.py +10 -30
  31. glaip_sdk/client/agents.py +33 -63
  32. glaip_sdk/client/base.py +77 -35
  33. glaip_sdk/client/mcps.py +1 -3
  34. glaip_sdk/client/run_rendering.py +121 -26
  35. glaip_sdk/client/tools.py +8 -24
  36. glaip_sdk/client/validators.py +20 -48
  37. glaip_sdk/exceptions.py +1 -3
  38. glaip_sdk/icons.py +9 -3
  39. glaip_sdk/models.py +14 -33
  40. glaip_sdk/payload_schemas/agent.py +1 -3
  41. glaip_sdk/utils/agent_config.py +4 -14
  42. glaip_sdk/utils/client_utils.py +7 -21
  43. glaip_sdk/utils/display.py +2 -6
  44. glaip_sdk/utils/general.py +1 -3
  45. glaip_sdk/utils/import_export.py +3 -9
  46. glaip_sdk/utils/rendering/formatting.py +52 -12
  47. glaip_sdk/utils/rendering/models.py +17 -8
  48. glaip_sdk/utils/rendering/renderer/__init__.py +1 -5
  49. glaip_sdk/utils/rendering/renderer/base.py +1181 -328
  50. glaip_sdk/utils/rendering/renderer/config.py +4 -10
  51. glaip_sdk/utils/rendering/renderer/debug.py +4 -14
  52. glaip_sdk/utils/rendering/renderer/panels.py +1 -3
  53. glaip_sdk/utils/rendering/renderer/progress.py +3 -11
  54. glaip_sdk/utils/rendering/renderer/stream.py +9 -42
  55. glaip_sdk/utils/rendering/renderer/summary_window.py +79 -0
  56. glaip_sdk/utils/rendering/renderer/toggle.py +182 -0
  57. glaip_sdk/utils/rendering/step_tree_state.py +100 -0
  58. glaip_sdk/utils/rendering/steps.py +899 -25
  59. glaip_sdk/utils/resource_refs.py +4 -13
  60. glaip_sdk/utils/serialization.py +14 -46
  61. glaip_sdk/utils/validation.py +4 -4
  62. {glaip_sdk-0.0.20.dist-info → glaip_sdk-0.1.3.dist-info}/METADATA +12 -1
  63. glaip_sdk-0.1.3.dist-info/RECORD +83 -0
  64. glaip_sdk-0.0.20.dist-info/RECORD +0 -80
  65. {glaip_sdk-0.0.20.dist-info → glaip_sdk-0.1.3.dist-info}/WHEEL +0 -0
  66. {glaip_sdk-0.0.20.dist-info → glaip_sdk-0.1.3.dist-info}/entry_points.txt +0 -0
@@ -95,9 +95,7 @@ def extract_names(items: list[str | Any] | None) -> list[str]:
95
95
  return names
96
96
 
97
97
 
98
- def find_by_name(
99
- items: list[Any], name: str, case_sensitive: bool = False
100
- ) -> list[Any]:
98
+ def find_by_name(items: list[Any], name: str, case_sensitive: bool = False) -> list[Any]:
101
99
  """Filter items by name with optional case sensitivity.
102
100
 
103
101
  This is a common pattern used across different clients for client-side
@@ -165,16 +163,12 @@ def validate_name_format(name: str, resource_type: str = "resource") -> str:
165
163
 
166
164
  # Check for valid characters (alphanumeric, hyphens, underscores)
167
165
  if not re.match(r"^[a-zA-Z0-9_-]+$", cleaned_name):
168
- raise ValueError(
169
- f"{display_type} name can only contain letters, numbers, hyphens, and underscores"
170
- )
166
+ raise ValueError(f"{display_type} name can only contain letters, numbers, hyphens, and underscores")
171
167
 
172
168
  return cleaned_name
173
169
 
174
170
 
175
- def validate_name_uniqueness(
176
- name: str, existing_names: list[str], resource_type: str = "resource"
177
- ) -> None:
171
+ def validate_name_uniqueness(name: str, existing_names: list[str], resource_type: str = "resource") -> None:
178
172
  """Validate that a resource name is unique.
179
173
 
180
174
  Args:
@@ -186,7 +180,4 @@ def validate_name_uniqueness(
186
180
  ValueError: If name is not unique
187
181
  """
188
182
  if name.lower() in [existing.lower() for existing in existing_names]:
189
- raise ValueError(
190
- f"A {resource_type.lower()} named '{name}' already exists. "
191
- "Please choose a unique name."
192
- )
183
+ raise ValueError(f"A {resource_type.lower()} named '{name}' already exists. Please choose a unique name.")
@@ -67,20 +67,12 @@ def read_yaml(file_path: Path) -> dict[str, Any]:
67
67
  data = yaml.safe_load(f)
68
68
 
69
69
  # Handle instruction_lines array format for user-friendly YAML
70
- if (
71
- isinstance(data, dict)
72
- and "instruction_lines" in data
73
- and isinstance(data["instruction_lines"], list)
74
- ):
70
+ if isinstance(data, dict) and "instruction_lines" in data and isinstance(data["instruction_lines"], list):
75
71
  data["instruction"] = "\n\n".join(data["instruction_lines"])
76
72
  del data["instruction_lines"]
77
73
 
78
74
  # Handle instruction as list from YAML export (convert back to string)
79
- if (
80
- isinstance(data, dict)
81
- and "instruction" in data
82
- and isinstance(data["instruction"], list)
83
- ):
75
+ if isinstance(data, dict) and "instruction" in data and isinstance(data["instruction"], list):
84
76
  data["instruction"] = "\n\n".join(data["instruction"])
85
77
 
86
78
  return data
@@ -98,9 +90,7 @@ def write_yaml(file_path: Path, data: dict[str, Any]) -> None:
98
90
  class LiteralString(str):
99
91
  pass
100
92
 
101
- def literal_string_representer(
102
- dumper: yaml.Dumper, data: "LiteralString"
103
- ) -> yaml.nodes.Node:
93
+ def literal_string_representer(dumper: yaml.Dumper, data: "LiteralString") -> yaml.nodes.Node:
104
94
  # Use literal block scalar (|) for multiline strings to preserve formatting
105
95
  if "\n" in data:
106
96
  return dumper.represent_scalar("tag:yaml.org,2002:str", data, style="|")
@@ -115,9 +105,7 @@ def write_yaml(file_path: Path, data: dict[str, Any]) -> None:
115
105
  data["instruction"] = LiteralString(data["instruction"])
116
106
 
117
107
  with open(file_path, "w", encoding="utf-8") as f:
118
- yaml.dump(
119
- data, f, default_flow_style=False, allow_unicode=True, sort_keys=False
120
- )
108
+ yaml.dump(data, f, default_flow_style=False, allow_unicode=True, sort_keys=False)
121
109
 
122
110
 
123
111
  def load_resource_from_file(file_path: Path) -> dict[str, Any]:
@@ -137,15 +125,10 @@ def load_resource_from_file(file_path: Path) -> dict[str, Any]:
137
125
  elif file_path.suffix.lower() == ".json":
138
126
  return read_json(file_path)
139
127
  else:
140
- raise ValueError(
141
- f"Unsupported file format: {file_path.suffix}. "
142
- f"Only JSON and YAML files are supported."
143
- )
128
+ raise ValueError(f"Unsupported file format: {file_path.suffix}. Only JSON and YAML files are supported.")
144
129
 
145
130
 
146
- def write_resource_export(
147
- file_path: Path, data: dict[str, Any], format: str = "json"
148
- ) -> None:
131
+ def write_resource_export(file_path: Path, data: dict[str, Any], format: str = "json") -> None:
149
132
  """Write resource export data to file.
150
133
 
151
134
  Args:
@@ -190,13 +173,8 @@ def collect_attributes_for_export(resource: Any) -> dict[str, Any]:
190
173
  data.
191
174
  """
192
175
  mapping = _coerce_resource_to_mapping(resource)
193
- if (
194
- mapping is None
195
- ): # pragma: no cover - defensive fallback when attribute introspection fails
196
- items = (
197
- (name, _safe_getattr(resource, name))
198
- for name in _iter_public_attribute_names(resource)
199
- )
176
+ if mapping is None: # pragma: no cover - defensive fallback when attribute introspection fails
177
+ items = ((name, _safe_getattr(resource, name)) for name in _iter_public_attribute_names(resource))
200
178
  else:
201
179
  items = mapping.items()
202
180
 
@@ -249,9 +227,7 @@ def _coerce_resource_to_mapping(resource: Any) -> dict[str, Any] | None:
249
227
  try:
250
228
  if hasattr(resource, "__dict__"):
251
229
  return dict(resource.__dict__)
252
- except (
253
- Exception
254
- ): # pragma: no cover - pathological objects can still defeat coercion
230
+ except Exception: # pragma: no cover - pathological objects can still defeat coercion
255
231
  return None
256
232
 
257
233
  return None
@@ -284,9 +260,7 @@ def _iter_public_attribute_names(resource: Any) -> Iterable[str]:
284
260
  return iter(names)
285
261
 
286
262
 
287
- def _collect_from_dict(
288
- resource: Any, collect_func: Callable[[Iterable[str]], None]
289
- ) -> None:
263
+ def _collect_from_dict(resource: Any, collect_func: Callable[[Iterable[str]], None]) -> None:
290
264
  """Safely collect attribute names from __dict__."""
291
265
  try:
292
266
  if hasattr(resource, "__dict__"):
@@ -297,18 +271,14 @@ def _collect_from_dict(
297
271
  pass
298
272
 
299
273
 
300
- def _collect_from_annotations(
301
- resource: Any, collect_func: Callable[[Iterable[str]], None]
302
- ) -> None:
274
+ def _collect_from_annotations(resource: Any, collect_func: Callable[[Iterable[str]], None]) -> None:
303
275
  """Safely collect attribute names from __annotations__."""
304
276
  annotations = getattr(resource, "__annotations__", {})
305
277
  if annotations:
306
278
  collect_func(annotations.keys())
307
279
 
308
280
 
309
- def _collect_from_dir(
310
- resource: Any, collect_func: Callable[[Iterable[str]], None]
311
- ) -> None:
281
+ def _collect_from_dir(resource: Any, collect_func: Callable[[Iterable[str]], None]) -> None:
312
282
  """Safely collect attribute names from dir()."""
313
283
  try:
314
284
  collect_func(name for name in dir(resource) if not name.startswith("__"))
@@ -387,9 +357,7 @@ def build_mcp_export_payload(
387
357
  ImportError: If required modules (auth helpers) are not available
388
358
  """
389
359
  auth_module = importlib.import_module("glaip_sdk.cli.auth")
390
- prepare_authentication_export = getattr(
391
- auth_module, "prepare_authentication_export"
392
- )
360
+ prepare_authentication_export = auth_module.prepare_authentication_export
393
361
 
394
362
  # Start with model dump (excludes None values automatically)
395
363
  payload = mcp.model_dump(exclude_none=True)
@@ -435,4 +403,4 @@ def validate_json_string(json_str: str) -> dict[str, Any]:
435
403
  try:
436
404
  return json.loads(json_str)
437
405
  except json.JSONDecodeError as e:
438
- raise ValueError(f"Invalid JSON: {e}")
406
+ raise ValueError(f"Invalid JSON: {e}") from e
@@ -155,13 +155,13 @@ def coerce_timeout(value: Any) -> int:
155
155
  try:
156
156
  fval = float(value)
157
157
  return validate_timeout(int(fval))
158
- except ValueError:
159
- raise ValueError(f"Invalid timeout value: {value}")
158
+ except ValueError as err:
159
+ raise ValueError(f"Invalid timeout value: {value}") from err
160
160
  else:
161
161
  try:
162
162
  return validate_timeout(int(value))
163
- except (TypeError, ValueError):
164
- raise ValueError(f"Invalid timeout value: {value}")
163
+ except (TypeError, ValueError) as err:
164
+ raise ValueError(f"Invalid timeout value: {value}") from err
165
165
 
166
166
 
167
167
  def validate_file_path(file_path: str | Path, must_exist: bool = True) -> Path:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: glaip-sdk
3
- Version: 0.0.20
3
+ Version: 0.1.3
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
@@ -170,6 +170,17 @@ aip agents run <AGENT_ID> --input "Hello world, what's the weather like?"
170
170
  - **🔄 Multi-Agent Patterns**: Hierarchical, parallel, sequential, router, and aggregator patterns
171
171
  - **💻 Modern CLI**: Rich terminal interface with fuzzy search and multiple output formats
172
172
 
173
+ ## 🌳 Live Steps Panel
174
+
175
+ The CLI steps panel now streams a fully hierarchical tree so you can audit complex agent runs without leaving the terminal.
176
+
177
+ - Renders parent/child relationships with `│├└` connectors, even when events arrive out of order
178
+ - Marks running steps with spinners and duration badges sourced from SSE metadata before local fallbacks
179
+ - Highlights failures inline (`✗ reason`) and raises warning glyphs on affected delegate branches
180
+ - Derives deterministic “💭 Thinking…” spans before/after each delegate or tool action to show scheduling gaps
181
+ - Flags parallel work with a dedicated glyph and argument-derived labels so simultaneous tool calls stay readable
182
+ - Try it locally: `poetry run python scripts/replay_steps_log.py --transcript tests/fixtures/rendering/transcripts/parallel_research.jsonl --output /tmp/parallel.log`
183
+
173
184
  ## 📚 Documentation
174
185
 
175
186
  📖 **[Complete Documentation](https://gdplabs.gitbook.io/gl-aip/gl-aip-sdk/overview)** - Visit our GitBook for comprehensive guides, tutorials, and API reference.
@@ -0,0 +1,83 @@
1
+ glaip_sdk/__init__.py,sha256=-Itm_1dz4QwhIUmqagvCwwvSjKYKYJI3lZSHD2bwtko,366
2
+ glaip_sdk/_version.py,sha256=OtLSiyZ-H-_74HFCQrCxYc3u5AAX5S7AlUKhIa28dvY,1977
3
+ glaip_sdk/branding.py,sha256=K-q7OjRNNgKsd6Z_h_pfWN8BUiDjX9BVxT9ePJ3AZfw,7318
4
+ glaip_sdk/cli/__init__.py,sha256=xCCfuF1Yc7mpCDcfhHZTX0vizvtrDSLeT8MJ3V7m5A0,156
5
+ glaip_sdk/cli/agent_config.py,sha256=YAbFKrTNTRqNA6b0i0Q3pH-01rhHDRi5v8dxSFwGSwM,2401
6
+ glaip_sdk/cli/auth.py,sha256=oZLgZTqVgx_o2ppcp1ueFwuu88acOUPUr9ed1WDe_HY,15860
7
+ glaip_sdk/cli/commands/__init__.py,sha256=N2go38u3C0MPxfDXk-K2zz93OnqSTpQyOE6dIC82lHg,191
8
+ glaip_sdk/cli/commands/agents.py,sha256=t80p_olOL4htn8VZJSBizj5ajeKomVaeN72iP1fk72I,43897
9
+ glaip_sdk/cli/commands/configure.py,sha256=7dmMSs-rMRETtpWgUDEGeNedSJl04yrp6VCRiLEpBUI,9074
10
+ glaip_sdk/cli/commands/mcps.py,sha256=oYzL52gUImi5x5mx8grbWkTwUTpAp7VoYGalOzEyLqU,37465
11
+ glaip_sdk/cli/commands/models.py,sha256=CQrjIwVeZED6AQXJ321UVB8IvmGrEjOIWrtlgDBu6HI,1775
12
+ glaip_sdk/cli/commands/tools.py,sha256=5y0ec1K1sNvLv0MwvEY0ggb5xiU2k2O2FsWL6k9NDxI,19102
13
+ glaip_sdk/cli/commands/update.py,sha256=rIZo_x-tvpvcwpQLpwYwso1ix6qTHuNNTL4egmn5fEM,1812
14
+ glaip_sdk/cli/config.py,sha256=sZLG0wPlLegl71g_J4PZxWb46wCZJgtEQQ5ppsr45CU,1297
15
+ glaip_sdk/cli/context.py,sha256=M4weRf8dmp5bMtPLRF3w1StnRB7Lo8FPFq2GQMv3Rv8,3617
16
+ glaip_sdk/cli/display.py,sha256=AIB81s85ejMg-nM-CIAQ5s3pmVDo6oNykUW680rluJw,11385
17
+ glaip_sdk/cli/io.py,sha256=_7qHA3K4VfzNXP7NYHShby_Bw9xigJ26oIaESXYDAQ8,3678
18
+ glaip_sdk/cli/main.py,sha256=ESxVe_m5NDXPUc9XMHhgneH4MtBVOZpxdwPyYDtNz64,17110
19
+ glaip_sdk/cli/masking.py,sha256=BOZjwUqxQf3LQlYgUMwq7UYgve8x4_1Qk04ixiJJPZ8,4399
20
+ glaip_sdk/cli/mcp_validators.py,sha256=cwbz7p_p7_9xVuuF96OBQOdmEgo5UObU6iWWQ2X03PI,10047
21
+ glaip_sdk/cli/pager.py,sha256=Cp1t47ViCUW3T3IkHdRBF2yNOrVLrnIBIemTxBso17Q,8049
22
+ glaip_sdk/cli/parsers/__init__.py,sha256=Ycd4HDfYmA7GUGFt0ndBPBo5uTbv15XsXnYUj-a89ug,183
23
+ glaip_sdk/cli/parsers/json_input.py,sha256=kxoxeIlgfsaH2jhe6apZAgSxAtwlpSINLTMRsZZYboQ,5630
24
+ glaip_sdk/cli/resolution.py,sha256=K-VaEHm9SYY_qfb9538VNHykL4_2N6F8iQqI1zMx_64,2402
25
+ glaip_sdk/cli/rich_helpers.py,sha256=kO47N8e506rxrN6Oc9mbAWN3Qb536oQPWZy1s9A616g,819
26
+ glaip_sdk/cli/slash/__init__.py,sha256=3kAXgOAnXmWkDheNtRuWqCooyIDaNYZMLTrbdhMGz9w,738
27
+ glaip_sdk/cli/slash/agent_session.py,sha256=LbG7MLAptr_JB5YnU6CtDCKUtpmxRzJS0mcQwaZX-5o,9427
28
+ glaip_sdk/cli/slash/prompt.py,sha256=4rCGSu56EEj24J42vHWAuJNwiUE5Cb6AK3gOhpms38k,7627
29
+ glaip_sdk/cli/slash/session.py,sha256=A8xO4gKZENmEwVGp6BN8791kuo2cjEJlaLlhsITc5vI,41191
30
+ glaip_sdk/cli/transcript/__init__.py,sha256=zQNgAETJsj2tO3OmuINgXiCQCmh_ODzI6HQPPmxMXVs,1816
31
+ glaip_sdk/cli/transcript/cache.py,sha256=1jZdrLo9CebXuKnD1tIiMJy2-6D-zjf0WmJcBJ5gOvE,9760
32
+ glaip_sdk/cli/transcript/capture.py,sha256=1Oguv9syhp7n4eb42-gw90X19RqEe4phnrq9T1oj8Pw,9397
33
+ glaip_sdk/cli/transcript/export.py,sha256=reCvrZVzli8_LzYe5ZNdaa-MwZ1ov2RjnDzKZWr_6-E,1117
34
+ glaip_sdk/cli/transcript/launcher.py,sha256=z5ivkPXDQJpATIqtRLUK8jH3p3WIZ72PvOPqYRDMJvw,2327
35
+ glaip_sdk/cli/transcript/viewer.py,sha256=dsEPki92XuVICneXZSfVq73rED_ryjxpu4_mY40qgwM,28030
36
+ glaip_sdk/cli/update_notifier.py,sha256=4h3F7q2DoMGyJSp8tu5NJHt8yeCVBOL-3A0ZyHyvRpw,9532
37
+ glaip_sdk/cli/utils.py,sha256=HxZfkauGNl0YfQe43zOHEi1pR9mis_2jVCcCjLchIHA,40589
38
+ glaip_sdk/cli/validators.py,sha256=Squ2W-fMz9kfvhtTt7pCcAYnzFU28ZxxTEqH1vF9r00,5620
39
+ glaip_sdk/client/__init__.py,sha256=nYLXfBVTTWwKjP0e63iumPYO4k5FifwWaELQPaPIKIg,188
40
+ glaip_sdk/client/_agent_payloads.py,sha256=QjaSqXZvDNX0bQVKC7Eb5nHj7KxhU0zLSfNUQiKf2J8,16269
41
+ glaip_sdk/client/agents.py,sha256=hRkt-D2ZRkeWamPqKsqKwl74ZjScKL4UHLbbVezGCWc,37597
42
+ glaip_sdk/client/base.py,sha256=ikW33raz2M6rXzo3JmhttfXXuVdMv5zBRKEZkU1F-4I,18176
43
+ glaip_sdk/client/main.py,sha256=tELAA36rzthnNKTgwZ6lLPb3Au8Wh1mF8Kz-9N-YtCg,8652
44
+ glaip_sdk/client/mcps.py,sha256=GQ1EBTSVc-WrFigyw8iocK34DT3TMW85XtnDeOawP9E,8945
45
+ glaip_sdk/client/run_rendering.py,sha256=gtXdOow1U-eol17l3kOf_EjaBwcuqHoKlgiQfuyI10w,12156
46
+ glaip_sdk/client/tools.py,sha256=xCPqDqtVNePCBeJvbKDqzZI-jbaduIeWd-6XbCSg_2Y,17324
47
+ glaip_sdk/client/validators.py,sha256=ioF9VCs-LG2yLkaRDd7Hff74lojDZZ0_Q3CiLbdm1RY,8381
48
+ glaip_sdk/config/constants.py,sha256=B9CSlYG8LYjQuo_vNpqy-eSks3ej37FMcvJMy6d_F4U,888
49
+ glaip_sdk/exceptions.py,sha256=iAChFClkytXRBLP0vZq1_YjoZxA9i4m4bW1gDLiGR1g,2321
50
+ glaip_sdk/icons.py,sha256=J5THz0ReAmDwIiIooh1_G3Le-mwTJyEjhJDdJ13KRxM,524
51
+ glaip_sdk/models.py,sha256=3ghS29EjcE6A9iHEiSxbPco5bCHqnVGpVbE2kGliz_o,8751
52
+ glaip_sdk/payload_schemas/__init__.py,sha256=fJamlkpS3IfS9xyKAQaUbnalvrtG5Ied69OUVAA3xvs,395
53
+ glaip_sdk/payload_schemas/agent.py,sha256=Nap68mI2Ba8eNGOhk79mGrYUoYUahcUJLof3DLWtVO4,3198
54
+ glaip_sdk/rich_components.py,sha256=rU3CD55WZlwjY81usctfX-S0bmsQ2Yd4nWEXhueGv7U,2090
55
+ glaip_sdk/utils/__init__.py,sha256=HLL4AX31lWo9gJn1dL1S-IPs2q4yPxqeHVCLJfSYyx4,892
56
+ glaip_sdk/utils/agent_config.py,sha256=RhcHsSOVwOaSC2ggnPuHn36Aa0keGJhs8KGb2InvzRk,7262
57
+ glaip_sdk/utils/client_utils.py,sha256=UdyEtFlpZ3TNFrvx2NsjPNzx8sm5Lkz3S13-9OrFjnE,13894
58
+ glaip_sdk/utils/display.py,sha256=_lQ9fHLJnsSgY7nJkYlGLBk47bwNjbqMTr3_GvOyRyM,3983
59
+ glaip_sdk/utils/general.py,sha256=RKRNWrwaxqj0F8Akg3it5lzsgfuCxjbfcl0c4donmAk,2264
60
+ glaip_sdk/utils/import_export.py,sha256=qeAlTycM2Tv4bV4_dI_X_0cNswCVNtxDMmnKxl9Y1-M,5192
61
+ glaip_sdk/utils/rendering/__init__.py,sha256=vXjwk5rPhhfPyD8S0DnV4GFFEtPJp4HCCg1Um9SXfs0,70
62
+ glaip_sdk/utils/rendering/formatting.py,sha256=PBT1jD6pxpkiUSs5RQOVWImmKgAwbWuQCUpgu0PNs3Q,8828
63
+ glaip_sdk/utils/rendering/models.py,sha256=wB9QtEiwN-AaY8k_YKBBT2qMQSBNMv27VcaZH88DdCM,2823
64
+ glaip_sdk/utils/rendering/renderer/__init__.py,sha256=gQEbZhZl9qXEVKDDTy0ijd-RnHWdqcazcJyOmORDwEk,2843
65
+ glaip_sdk/utils/rendering/renderer/base.py,sha256=Obm5J9UopxgPfYZSfXwU6AqhGDGNyFqsmiMVKGzgUZg,85660
66
+ glaip_sdk/utils/rendering/renderer/config.py,sha256=FgSAZpG1g7Atm2MXg0tY0lOEciY90MR-RO6YuGFhp0E,626
67
+ glaip_sdk/utils/rendering/renderer/console.py,sha256=4cLOw4Q1fkHkApuj6dWW8eYpeYdcT0t2SO5MbVt5UTc,1844
68
+ glaip_sdk/utils/rendering/renderer/debug.py,sha256=_qPP03RicGhCCCAEEJ2zoSEJaUT2ZvgL4xOF5ikg9Uw,5569
69
+ glaip_sdk/utils/rendering/renderer/panels.py,sha256=tbExgFXzK6NHlvuJlVwsejznGJY1ALwTi9KfIej9aWM,3784
70
+ glaip_sdk/utils/rendering/renderer/progress.py,sha256=iwAx76q0hdnjDrHMF_MB2AYQ2kAA4pwfIn0FiSAEkyg,4068
71
+ glaip_sdk/utils/rendering/renderer/stream.py,sha256=Y0egKCdWSdM5kGiiDG5Bwc1VQuimI-NUlal2kDojb08,7862
72
+ glaip_sdk/utils/rendering/renderer/summary_window.py,sha256=ffBsVHaUyy2RfIuXLjhfiO31HeeprVcPP_pe4cjDLsU,2286
73
+ glaip_sdk/utils/rendering/renderer/toggle.py,sha256=N3LB4g1r8EdDkQyItQdrP5gig6Sszz9uZ6WJuD0KUmk,5396
74
+ glaip_sdk/utils/rendering/step_tree_state.py,sha256=EItKFTV2FYvm5pSyHbXk7lkzJ-0DW_s-VENIBZe8sp4,4062
75
+ glaip_sdk/utils/rendering/steps.py,sha256=J9qEZLnGqxeEWrlsDczvAJS1pbCN19sjD5_OZbMoinA,42275
76
+ glaip_sdk/utils/resource_refs.py,sha256=OpwJxTCKq3RIqLAmKE0xspJplD4IhKqLCo0OqPafmAk,5418
77
+ glaip_sdk/utils/run_renderer.py,sha256=d_VMI6LbvHPUUeRmGqh5wK_lHqDEIAcym2iqpbtDad0,1365
78
+ glaip_sdk/utils/serialization.py,sha256=cvlPQ73y4jhsbJeQ6Bv7vaq0NV8uZ27p2vD_R-nyiRQ,12646
79
+ glaip_sdk/utils/validation.py,sha256=NPDexNgGUIoLkEIz6hl3K6EG7ZKSEkcNLDElqm8-Ng4,7019
80
+ glaip_sdk-0.1.3.dist-info/METADATA,sha256=xmqRfmzC1WiNwUVJgpRyfcyC2cxjvd8IxXQcgWqAMkc,6023
81
+ glaip_sdk-0.1.3.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
82
+ glaip_sdk-0.1.3.dist-info/entry_points.txt,sha256=EGs8NO8J1fdFMWA3CsF7sKBEvtHb_fujdCoNPhfMouE,47
83
+ glaip_sdk-0.1.3.dist-info/RECORD,,
@@ -1,80 +0,0 @@
1
- glaip_sdk/__init__.py,sha256=-Itm_1dz4QwhIUmqagvCwwvSjKYKYJI3lZSHD2bwtko,366
2
- glaip_sdk/_version.py,sha256=J-UdD2Nya3c8WAXCrTRY-2bWpKGvTYY_JIaubZ4OoEw,1999
3
- glaip_sdk/branding.py,sha256=BvLcD-z1D8CnYhNSGs0B1LeIrXgG1bHJ-fr4AInNhwE,7356
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=eMqMXss3v36yyimSgm4PN8uG85UvIFn1U_XOXUvcZmI,16026
7
- glaip_sdk/cli/commands/__init__.py,sha256=N2go38u3C0MPxfDXk-K2zz93OnqSTpQyOE6dIC82lHg,191
8
- glaip_sdk/cli/commands/agents.py,sha256=3v9oHuPaIXFGRuoJ5jt-_hL_U8BDg4vBO2C87s7qLK8,43770
9
- glaip_sdk/cli/commands/configure.py,sha256=xpryuPXzuwfCKyolxRqh-WpzxIv7sBVp7ZUjlnNrkcQ,9338
10
- glaip_sdk/cli/commands/mcps.py,sha256=miZgPIyqHEgFDGcvEVr53MHODABO4UuLJyqyNytz_1g,37855
11
- glaip_sdk/cli/commands/models.py,sha256=EUC-_3QPAjtqId4WobWbQZVPjgQ9Eo_srcGIRlhhPq8,1790
12
- glaip_sdk/cli/commands/tools.py,sha256=rWWgzyfLp_WOMYxU1XluombLkRzWQH8WrohlWc75piU,19212
13
- glaip_sdk/cli/commands/update.py,sha256=nV0C08bHDYn5byFP_N8rzdKbDc5_tDKXC19L_HftJX8,1869
14
- glaip_sdk/cli/config.py,sha256=vCanx4Pv_juPX4W9O-SL658-Bq49MqyCsawPtKscpJU,1313
15
- glaip_sdk/cli/context.py,sha256=M4weRf8dmp5bMtPLRF3w1StnRB7Lo8FPFq2GQMv3Rv8,3617
16
- glaip_sdk/cli/display.py,sha256=0iysRFznPpkShRHp6MEc0Obao14D9k_Tx1lKoraF5f4,11273
17
- glaip_sdk/cli/io.py,sha256=V8tIo0rc6t0CHGPM3cwhmlZAvzh4UPnlemUsrSFFtg8,3675
18
- glaip_sdk/cli/main.py,sha256=O1q9h0LRAVxW8cwsAEXEGy6NDCchVZQHe3OXGNAGS8M,17305
19
- glaip_sdk/cli/masking.py,sha256=BOZjwUqxQf3LQlYgUMwq7UYgve8x4_1Qk04ixiJJPZ8,4399
20
- glaip_sdk/cli/mcp_validators.py,sha256=SeDbgXkRuBXyDtCmUMpL-1Vh7fmGldz-shAaHhOqbCc,10125
21
- glaip_sdk/cli/pager.py,sha256=HZpdmgKjj367k0aZXXO9hyo38qyvWl0fUCD_VSeqJfs,8083
22
- glaip_sdk/cli/parsers/__init__.py,sha256=Ycd4HDfYmA7GUGFt0ndBPBo5uTbv15XsXnYUj-a89ug,183
23
- glaip_sdk/cli/parsers/json_input.py,sha256=ZBhJNUR4bKDX3A5s9lRvuCicaztvQyP0lWuiNYMIO08,5721
24
- glaip_sdk/cli/resolution.py,sha256=cRkz5u8TNzjD4ybOywtisUXPKV0V-jXqKB68nRUF3O4,2465
25
- glaip_sdk/cli/rich_helpers.py,sha256=ByUOmK16IisoXWE7nEiI55BF1KWDrm6KCYAxqHu0XOU,825
26
- glaip_sdk/cli/slash/__init__.py,sha256=3kAXgOAnXmWkDheNtRuWqCooyIDaNYZMLTrbdhMGz9w,738
27
- glaip_sdk/cli/slash/agent_session.py,sha256=Q1WUOthWMc6PglFwN_LCg60Yi51nvzPdjVdeumo_I8Y,9491
28
- glaip_sdk/cli/slash/prompt.py,sha256=JBwRvIJgK0MR2Wx0wt7XAqAKpVL2Etp28ifwtklIM9M,7669
29
- glaip_sdk/cli/slash/session.py,sha256=OE7WNJzN-jJIlIa_ljyJ6XwdEWIzaoCun0RAJFOhW2s,41577
30
- glaip_sdk/cli/transcript/__init__.py,sha256=zQNgAETJsj2tO3OmuINgXiCQCmh_ODzI6HQPPmxMXVs,1816
31
- glaip_sdk/cli/transcript/cache.py,sha256=_YGv2M-tZASljGrzbJCgiV59KmIf0w-r6Qq0bqtkZqc,9860
32
- glaip_sdk/cli/transcript/capture.py,sha256=EtSac3BBYGvcZTyCe9orPvKOZKZ8ooGBOlpKlmxAg_o,8325
33
- glaip_sdk/cli/transcript/export.py,sha256=reCvrZVzli8_LzYe5ZNdaa-MwZ1ov2RjnDzKZWr_6-E,1117
34
- glaip_sdk/cli/transcript/launcher.py,sha256=OBaTBcNywy8NbwfdYD4IIOlksXbLT_K3poGJDP6bNyE,2333
35
- glaip_sdk/cli/transcript/viewer.py,sha256=9fpxCpHdFUtj6ct5GjDCIg1b5LDogS9QI6_rnKzjpoM,21405
36
- glaip_sdk/cli/update_notifier.py,sha256=Zy4VJVGI4rfYFnMQ3J2IwXLKhDZ95ODSTXgfg7gdrxU,4175
37
- glaip_sdk/cli/utils.py,sha256=SoJlnmu3xgGoGGmY9pTDp6Eei31qSzgpSTDJh1WZ-nY,41050
38
- glaip_sdk/cli/validators.py,sha256=USbBgY86AwuDHO-Q_g8g7hu-ot4NgITBsWjTWIl62ms,5569
39
- glaip_sdk/client/__init__.py,sha256=nYLXfBVTTWwKjP0e63iumPYO4k5FifwWaELQPaPIKIg,188
40
- glaip_sdk/client/_agent_payloads.py,sha256=sYlMzrfAdd8KC37qxokLy2uDd3aOhzQirnv7UYlvwYc,16385
41
- glaip_sdk/client/agents.py,sha256=nGXYIAkz3jDL2glNyoROGjiAUpLwXdeqYrnc4Qxl8o0,37628
42
- glaip_sdk/client/base.py,sha256=OPRlAWhZ77rUK0MRGA83-zW5NVhxJ1RgdfcfGOYr8rI,16267
43
- glaip_sdk/client/main.py,sha256=tELAA36rzthnNKTgwZ6lLPb3Au8Wh1mF8Kz-9N-YtCg,8652
44
- glaip_sdk/client/mcps.py,sha256=-O-I15qjbwfSA69mouHY6g5_qgPWC4rM98VJLpOkh1A,8975
45
- glaip_sdk/client/run_rendering.py,sha256=WCAkVfj7FzZluBSSspWgSg37uj8tVljGjzaSy1l3Hs8,9184
46
- glaip_sdk/client/tools.py,sha256=rWxfNO30sS468513IoE5PfEaqNq6HBwmcHVh4FzhvYQ,17532
47
- glaip_sdk/client/validators.py,sha256=NtPsWjQLjj25LiUnmR-WuS8lL5p4MVRaYT9UVRmj9bo,8809
48
- glaip_sdk/config/constants.py,sha256=B9CSlYG8LYjQuo_vNpqy-eSks3ej37FMcvJMy6d_F4U,888
49
- glaip_sdk/exceptions.py,sha256=ILquxC4QGPFR9eY6RpeXzkQsblfsvZMGFqz38ZjeW3E,2345
50
- glaip_sdk/icons.py,sha256=G45gnd9XA68JCi6S9e37CFxJD5sl6UeCy135JlRAU2k,358
51
- glaip_sdk/models.py,sha256=uXWsC5VdXSxPci8GRYOofZrIdsFgradayrIzJyhc7u8,9188
52
- glaip_sdk/payload_schemas/__init__.py,sha256=fJamlkpS3IfS9xyKAQaUbnalvrtG5Ied69OUVAA3xvs,395
53
- glaip_sdk/payload_schemas/agent.py,sha256=nlizuv2w4SVzmMJSE90rE6Ll0Hfpcr5hvPsW_NtXCV0,3204
54
- glaip_sdk/rich_components.py,sha256=rU3CD55WZlwjY81usctfX-S0bmsQ2Yd4nWEXhueGv7U,2090
55
- glaip_sdk/utils/__init__.py,sha256=HLL4AX31lWo9gJn1dL1S-IPs2q4yPxqeHVCLJfSYyx4,892
56
- glaip_sdk/utils/agent_config.py,sha256=p3uK5qC0M5uQv9uY7-U8ej11Vh81fwKAPSsYcRoNdlk,7342
57
- glaip_sdk/utils/client_utils.py,sha256=OATfWztkcGlGNnrrLdM7C5eyCT7EoBD4xCLrl4rdo2w,13976
58
- glaip_sdk/utils/display.py,sha256=afHuUUKs6eQrCMh16r88kNufbEtOH6WQLT9yatPP610,4027
59
- glaip_sdk/utils/general.py,sha256=V5hJrIpYDvDsldU_nChHpuvV2AwhFLUI7Qvcaihq_8A,2270
60
- glaip_sdk/utils/import_export.py,sha256=jEhl5U6hWWMR1wo5AXpV-_jN_56DcWcemOa2UaFHapk,5217
61
- glaip_sdk/utils/rendering/__init__.py,sha256=vXjwk5rPhhfPyD8S0DnV4GFFEtPJp4HCCg1Um9SXfs0,70
62
- glaip_sdk/utils/rendering/formatting.py,sha256=NY4aYkCyhn38kbbTHtxizNHxAYMRkaxqIrPeVzRgYhM,7785
63
- glaip_sdk/utils/rendering/models.py,sha256=AM9JbToyA3zrAzXQYjh6oxjBkgZDfWEbs5MmNKODnOY,2259
64
- glaip_sdk/utils/rendering/renderer/__init__.py,sha256=EXwVBmGkSYcype4ocAXo69Z1kXu0gpNXmhH5LW0_B7A,2939
65
- glaip_sdk/utils/rendering/renderer/base.py,sha256=YgVb4vTzmrLKfvaM2TBHGS-xVDgO9JbnWDADHfZ4OAo,50650
66
- glaip_sdk/utils/rendering/renderer/config.py,sha256=-P35z9JO_1ypJXAqxJ1ybHraH4i-I1LPopeW3Lh7ACE,785
67
- glaip_sdk/utils/rendering/renderer/console.py,sha256=4cLOw4Q1fkHkApuj6dWW8eYpeYdcT0t2SO5MbVt5UTc,1844
68
- glaip_sdk/utils/rendering/renderer/debug.py,sha256=uVaBs33mfXo44lWm4Fi5LXcrlfVmT1_Kp_IXf09RzfI,5651
69
- glaip_sdk/utils/rendering/renderer/panels.py,sha256=Bv_dpUKiKlL6r0_aZ2okY7Ov7pp5-MxFjjftTWG71L4,3790
70
- glaip_sdk/utils/rendering/renderer/progress.py,sha256=RnnAnw5rFd24Ij0U8Qm2oFHud8mmzDQ9Fwg3QFrRJNg,4128
71
- glaip_sdk/utils/rendering/renderer/stream.py,sha256=1RP5TIV7tqg07X9gPN053XeabFGVT4jPplxaoPU0L38,8601
72
- glaip_sdk/utils/rendering/steps.py,sha256=V7xFoJM_B-nWT1wMdcXGN5ytCrDTxEzKcX_YCWyJqkk,9051
73
- glaip_sdk/utils/resource_refs.py,sha256=0YzblJNfRhz9xhpaKE9aE68XEV-6_ssr0fIkiMVOka0,5489
74
- glaip_sdk/utils/run_renderer.py,sha256=d_VMI6LbvHPUUeRmGqh5wK_lHqDEIAcym2iqpbtDad0,1365
75
- glaip_sdk/utils/serialization.py,sha256=3Bwxw2M0qR59Rx0GS0hrnWZz46Ht-gpda9dva07Pr_A,12893
76
- glaip_sdk/utils/validation.py,sha256=6jv1fExRllOK6sIvU7YX3a-Sf0AlFHar4KYiTC0Pzs4,6987
77
- glaip_sdk-0.0.20.dist-info/METADATA,sha256=57YytJ1dpdDIwZ6j8Yq481HEfGoY6P6J1OrMrERY20w,5164
78
- glaip_sdk-0.0.20.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
79
- glaip_sdk-0.0.20.dist-info/entry_points.txt,sha256=EGs8NO8J1fdFMWA3CsF7sKBEvtHb_fujdCoNPhfMouE,47
80
- glaip_sdk-0.0.20.dist-info/RECORD,,