gllm-core-binary 0.3.34__cp312-cp312-win_amd64.whl → 0.4.1__cp312-cp312-win_amd64.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,25 +1,9 @@
1
- from _typeshed import Incomplete
2
1
  from gllm_core.schema.tool import Tool as Tool
3
2
  from typing import Any
4
3
 
5
- class LangChainToolKeys:
6
- """Constants for LangChain tool attribute keys."""
7
- FUNC: str
8
- COROUTINE: str
9
- RUN: str
10
- ARUN: str
11
- NAME: str
12
- DESCRIPTION: str
13
- ARGS_SCHEMA: str
14
-
15
- LANGCHAIN_FUNCTION_ATTRS: Incomplete
16
-
17
4
  def from_langchain_tool(langchain_tool: Any) -> Tool:
18
5
  """Convert a LangChain tool into the SDK Tool representation.
19
6
 
20
- This function handles both traditional LangChain tools created with the @tool decorator
21
- and tools created by subclassing the LangChain Tool class.
22
-
23
7
  Args:
24
8
  langchain_tool (Any): The LangChain tool to convert.
25
9
 
gllm_core/constants.pyi CHANGED
@@ -13,7 +13,6 @@ class EventType(StrEnum):
13
13
  """Defines event types for the event emitter module."""
14
14
  ACTIVITY = 'activity'
15
15
  CODE = 'code'
16
- DATA = 'data'
17
16
  REFERENCE = 'reference'
18
17
  RESPONSE = 'response'
19
18
  STATUS = 'status'
@@ -1,11 +1,11 @@
1
1
  from _typeshed import Incomplete
2
- from gllm_core.constants import EventLevel as EventLevel, EventType as EventType
2
+ from gllm_core.constants import EventLevel as EventLevel
3
3
  from gllm_core.event.handler import ConsoleEventHandler as ConsoleEventHandler, PrintEventHandler as PrintEventHandler, StreamEventHandler as StreamEventHandler
4
4
  from gllm_core.event.handler.event_handler import BaseEventHandler as BaseEventHandler
5
5
  from gllm_core.event.hook.event_hook import BaseEventHook as BaseEventHook
6
6
  from gllm_core.schema import Event as Event
7
7
  from gllm_core.utils import validate_string_enum as validate_string_enum
8
- from typing import Any, AsyncGenerator
8
+ from typing import AsyncGenerator
9
9
 
10
10
  class EventEmitter:
11
11
  '''Handles events emitting using event handlers with various levels and types.
@@ -123,31 +123,19 @@ class EventEmitter:
123
123
  Returns:
124
124
  EventEmitter: A new instance of the EventEmitter class with a single StreamEventHandler.
125
125
  """
126
- async def emit(self, value: str | dict[str, Any] | Event, event_level: EventLevel = ..., event_type: str = ..., metadata: dict[str, Any] | None = None, event_id: str | None = None, disabled_handlers: list[str] | None = None) -> None:
127
- '''Emits an event using the configured event handlers.
126
+ async def emit(self, event: Event, disabled_handlers: list[str] | None = None) -> None:
127
+ """Emits an event using the configured event handlers.
128
128
 
129
- If the value is an Event object, it is used directly and other parameters are ignored.
130
- Otherwise, a new Event object is created with the provided parameters. The event is
131
- then passed to all handlers except those listed in disabled_handlers. Events are only
132
- processed if their severity level meets or exceeds the EventEmitter\'s configured level.
129
+ Events are emitted by passing them to all handlers except those listed in disabled_handlers.
130
+ Events are only processed if their severity level meets or exceeds the EventEmitter's configured level.
133
131
 
134
132
  Args:
135
- value (str | dict[str, Any] | Event): The event value or Event object to emit. If an Event object
136
- is provided, other parameters are ignored and the Event is used as-is.
137
- event_level (EventLevel, optional): The severity level of the event.
138
- Defaults to EventLevel.DEBUG.
139
- event_type (str, optional): The type of event (e.g., "status", "response").
140
- Defaults to EventType.STATUS.value.
141
- metadata (dict[str, Any] | None, optional): Additional metadata for the event.
142
- Defaults to None, which creates an empty dictionary.
143
- event_id (str | None, optional): Unique identifier for the event.
144
- Defaults to None, which creates an empty string.
145
- disabled_handlers (list[str] | None, optional): Names of handlers to skip for
146
- this event. Defaults to None.
133
+ event (Event): The event to emit.
134
+ disabled_handlers (list[str] | None, optional): Names of handlers to skip for this event. Defaults to None.
147
135
 
148
136
  Raises:
149
137
  ValueError: If the provided event_level is not a valid EventLevel.
150
- '''
138
+ """
151
139
  async def close(self) -> None:
152
140
  """Closes all handlers in the handler list.
153
141
 
@@ -1,5 +1,4 @@
1
1
  from _typeshed import Incomplete
2
- from gllm_core.constants import EventType as EventType
3
2
  from gllm_core.event.handler.event_handler import BaseEventHandler as BaseEventHandler
4
3
  from gllm_core.schema import Event as Event
5
4
 
@@ -15,7 +15,7 @@ class PrintEventHandler(BaseEventHandler):
15
15
  """
16
16
  padding_char: Incomplete
17
17
  console: Incomplete
18
- def __init__(self, name: str | None = None, color_map: dict[str, str] | None = None, padding_char: str = '=', separator_length: int | None = None) -> None:
18
+ def __init__(self, name: str | None = None, color_map: dict[str, str] | None = None, padding_char: str = '=') -> None:
19
19
  '''Initializes a new instance of the PrintEventHandler class.
20
20
 
21
21
  Args:
@@ -24,7 +24,6 @@ class PrintEventHandler(BaseEventHandler):
24
24
  color_map (dict[str, str], optional): The dictionary that maps certain event types to their corresponding
25
25
  colors in Rich format. Defaults to None, in which case the default color map will be used.
26
26
  padding_char (str, optional): The character to use for padding. Defaults to "=".
27
- separator_length (int | None, optional): Deprecated parameter. Defaults to None.
28
27
  '''
29
28
  async def emit(self, event: Event) -> None:
30
29
  """Emits the given event.
@@ -1,43 +1,70 @@
1
- import abc
2
- from abc import ABC
3
1
  from gllm_core.event.event_emitter import EventEmitter as EventEmitter
2
+ from gllm_core.schema.schema_generator import generate_params_model as generate_params_model
4
3
  from gllm_core.utils import BinaryHandlingStrategy as BinaryHandlingStrategy, binary_handler_factory as binary_handler_factory
5
- from gllm_core.utils.analyzer import MethodSignature as MethodSignature, ParameterInfo as ParameterInfo, ParameterKind as ParameterKind, RunAnalyzer as RunAnalyzer, RunProfile as RunProfile
4
+ from gllm_core.utils.analyzer import MethodSignature as MethodSignature, ParameterInfo as ParameterInfo, ParameterKind as ParameterKind, RunProfile as RunProfile, analyze_method as analyze_method
6
5
  from gllm_core.utils.logger_manager import LoggerManager as LoggerManager
6
+ from gllm_core.utils.main_method_resolver import MainMethodResolver as MainMethodResolver
7
+ from pydantic import BaseModel as BaseModel
7
8
  from typing import Any, Callable
8
9
 
9
10
  def main(method: Callable) -> Callable:
10
11
  """Decorate a Component method as the async main entrypoint.
11
12
 
12
- Note:
13
- In v0.3, this decorator marks the method for forward compatibility
14
- with v0.4+. The actual main method resolution still uses `_run()`.
13
+ Usage:
14
+ Declare the coroutine that should act as the primary execution path
15
+ for a `Component` subclass. The decorated coroutine will be resolved by
16
+ `Component.run()` unless another subclass overrides the decoration.
15
17
 
16
18
  Args:
17
19
  method (Callable): Coroutine to mark as the main entrypoint.
18
20
 
19
21
  Returns:
20
- Callable: The same coroutine, unchanged except for an `__is_main__` marker.
22
+ Callable: The same coroutine that is passed to the decorator. The decorator only marks the method as the main
23
+ entrypoint. It does not wrap or change its behavior or signature.
21
24
 
22
- Warns:
23
- UserWarning: If the decorated callable is not asynchronous.
25
+ Raises:
26
+ TypeError: If the decorated callable is not asynchronous.
24
27
  """
25
28
 
26
- class Component(ABC, metaclass=abc.ABCMeta):
29
+ class Component:
27
30
  '''An abstract base class for all components used throughout the Gen AI applications.
28
31
 
29
32
  Every instance of Component has access to class-level `_default_log_level` and `_logger`, as detailed below.
30
33
  For components that require high observability, it is recommended to set `_default_log_level` to `logging.INFO`
31
34
  or higher.
32
35
 
33
- Example:
34
- ```python
35
- class MyComponent(Component):
36
- _default_log_level = logging.INFO
36
+ Defining Custom Components:
37
+ There are two ways to define the main execution logic for a component:
37
38
 
38
- def _run(self, **kwargs: Any) -> Any:
39
- return "Hello, World!"
40
- ```
39
+ 1. **Using the @main decorator (Recommended)**:
40
+ Decorate an async method with `@main` to mark it as the primary entrypoint.
41
+ This is the preferred approach as it provides explicit control over the main method.
42
+
43
+ ```python
44
+ class MyComponent(Component):
45
+ _default_log_level = logging.INFO
46
+
47
+ @main
48
+ async def execute(self, **kwargs: Any) -> Any:
49
+ return "Hello from @main!"
50
+ ```
51
+
52
+ 2. **Implementing _run method (Deprecated)**:
53
+ Override the abstract `_run` method. This is the traditional approach and still supported.
54
+
55
+ ```python
56
+ class MyComponent(Component):
57
+ _default_log_level = logging.INFO
58
+
59
+ async def _run(self, **kwargs: Any) -> Any:
60
+ return "Hello, World!"
61
+ ```
62
+
63
+ The `run()` method resolves the main entrypoint using the following precedence:
64
+ 1. Method decorated with @main in the current class.
65
+ 2. Method decorated with @main in the nearest ancestor class.
66
+ 3. Method named in __main_method__ property.
67
+ 4. The _run method (with deprecation warning).
41
68
 
42
69
  Attributes:
43
70
  run_profile (RunProfile): The profile of the `_run` method.
@@ -48,21 +75,93 @@ class Component(ABC, metaclass=abc.ABCMeta):
48
75
  **Do not override this property in your subclass.**
49
76
 
50
77
  You also do not need to write this attribute in your component\'s docstring.
51
- _default_log_level (int): The default log level for the component. Defaults to DEBUG.
52
- _logger (logging.Logger): The logger instance for the component.
53
78
  '''
79
+ def __init_subclass__(cls, **kwargs) -> None:
80
+ """Hook called when a subclass is created.
81
+
82
+ This validates the __main_method__ property and checks for multiple @main decorators
83
+ within the current class definition. Uses MainMethodResolver for consistent validation logic.
84
+
85
+ Note: Multiple inheritance conflicts are intentionally deferred to runtime (get_main())
86
+ to allow class definition to succeed.
87
+
88
+ Raises:
89
+ AttributeError: If __main_method__ refers to a non-existent method.
90
+ TypeError: If multiple methods are decorated with @main in the same class.
91
+ """
92
+ @classmethod
93
+ def get_main(cls) -> Callable | None:
94
+ """Return the resolved main coroutine for this Component class.
95
+
96
+ This method resolves the main method for the Component class following
97
+ the precedence rules:
98
+ 1. Most derived coroutine decorated with `@main`.
99
+ 2. Method named by `__main_method__`.
100
+ 3. `_run` coroutine as a deprecated fallback.
101
+
102
+ Results are cached for performance.
103
+
104
+ Returns:
105
+ Callable | None: The coroutine that will be executed by `run()` or
106
+ `None` when no entrypoint can be determined.
107
+
108
+ Raises:
109
+ TypeError: If conflicting main methods are inherited from multiple ancestors.
110
+ """
111
+ @property
112
+ def input_params(self) -> type[BaseModel] | None:
113
+ '''Return the Pydantic model describing this component\'s main method input parameters.
114
+
115
+ Returns:
116
+ type[BaseModel] | None: The cached model that mirrors the signature of
117
+ the resolved main method, or `None` if no main method can be
118
+ determined.
119
+
120
+ Example:
121
+ ```python
122
+ from pydantic import ValidationError
123
+
124
+ component = SomeComponent()
125
+ ParamsModel = component.input_params
126
+ assert ParamsModel.__name__ == "SomeComponentParams"
127
+ fields = list(ParamsModel.model_fields)
128
+
129
+ # Validation with valid params
130
+ params = ParamsModel(text="hello")
131
+
132
+ # Validation catches missing required fields
133
+ try:
134
+ invalid_params = ParamsModel() # Missing required \'text\' field
135
+ except ValidationError as e:
136
+ print(f"Validation failed: {e.error_count()} errors")
137
+
138
+ # Argument construction
139
+ payload = params.model_dump()
140
+ result = await component.run(**payload)
141
+ ```
142
+ '''
54
143
  async def run(self, **kwargs: Any) -> Any:
55
144
  """Runs the operations defined for the component.
56
145
 
57
- This method emits the provided input arguments using an EventEmitter instance if available, executes a process
58
- defined in the `_run` method, and emits the resulting output if the EventEmitter is provided.
146
+ This method emits the provided input arguments using an EventEmitter instance if available, executes the
147
+ resolved main method, and emits the resulting output if the EventEmitter is provided.
148
+
149
+ The main method is resolved using the following precedence:
150
+ 1. Method decorated with @main in the current class.
151
+ 2. Method decorated with @main in the nearest ancestor class.
152
+ 3. Method named in __main_method__ property.
153
+ 4. The _run method (with deprecation warning).
59
154
 
60
155
  Args:
61
156
  **kwargs (Any): A dictionary of arguments to be processed. May include an `event_emitter`
62
157
  key with an EventEmitter instance.
63
158
 
64
159
  Returns:
65
- Any: The result of the `_run` method.
160
+ Any: The result of the resolved main method.
161
+
162
+ Raises:
163
+ TypeError: If conflicting main methods are inherited from multiple ancestors.
164
+ AttributeError: If __main_method__ refers to a non-existent method.
66
165
  """
67
166
  @property
68
167
  def run_profile(self) -> RunProfile:
@@ -0,0 +1,35 @@
1
+ from gllm_core.utils.analyzer import analyze_method as analyze_method
2
+ from pydantic import BaseModel as BaseModel
3
+ from typing import Callable
4
+
5
+ def generate_params_model(method: Callable, class_name: str) -> type[BaseModel]:
6
+ '''Generate a Pydantic model representing a component method signature.
7
+
8
+ The generated class is named `{class_name}Params` and contains one field for
9
+ every parameter in `method`. The first `self` parameter is ignored, `*args` are
10
+ skipped entirely, and `**kwargs` trigger `extra="allow"` to permit arbitrary
11
+ keyword arguments at runtime.
12
+
13
+ For legacy `_run` methods with only `**kwargs`, this function will use
14
+ RunAnalyzer to infer parameters from the method body usage patterns.
15
+
16
+ Args:
17
+ method (Callable): Method whose signature should be represented.
18
+ class_name (str): Component class name used to derive the generated model name.
19
+
20
+ Returns:
21
+ type[BaseModel]: A Pydantic `BaseModel` subclass describing the method\'s
22
+ parameters.
23
+
24
+ Example:
25
+ ```python
26
+ class_name = "TextProcessor"
27
+
28
+ def process(self, text: str, count: int = 5) -> str:
29
+ return text * count
30
+
31
+ Model = generate_params_model(process, class_name)
32
+ assert Model.__name__ == "TextProcessorParams"
33
+ assert Model(text="hello", count=2).model_dump() == {"text": "hello", "count": 2}
34
+ ```
35
+ '''
@@ -5,8 +5,9 @@ from gllm_core.utils.concurrency import asyncify as asyncify, get_default_portal
5
5
  from gllm_core.utils.event_formatter import format_chunk_message as format_chunk_message, get_placeholder_keys as get_placeholder_keys
6
6
  from gllm_core.utils.google_sheets import load_gsheets as load_gsheets
7
7
  from gllm_core.utils.logger_manager import LoggerManager as LoggerManager
8
+ from gllm_core.utils.main_method_resolver import MainMethodResolver as MainMethodResolver
8
9
  from gllm_core.utils.merger_method import MergerMethod as MergerMethod
9
10
  from gllm_core.utils.retry import RetryConfig as RetryConfig, retry as retry
10
11
  from gllm_core.utils.validation import validate_string_enum as validate_string_enum
11
12
 
12
- __all__ = ['BinaryHandlingStrategy', 'ChunkMetadataMerger', 'LoggerManager', 'MergerMethod', 'RunAnalyzer', 'RetryConfig', 'asyncify', 'get_default_portal', 'binary_handler_factory', 'format_chunk_message', 'get_placeholder_keys', 'load_gsheets', 'syncify', 'retry', 'validate_string_enum']
13
+ __all__ = ['BinaryHandlingStrategy', 'ChunkMetadataMerger', 'LoggerManager', 'MainMethodResolver', 'MergerMethod', 'RunAnalyzer', 'RetryConfig', 'asyncify', 'get_default_portal', 'binary_handler_factory', 'format_chunk_message', 'get_placeholder_keys', 'load_gsheets', 'syncify', 'retry', 'validate_string_enum']
@@ -2,7 +2,7 @@ import ast
2
2
  from _typeshed import Incomplete
3
3
  from enum import StrEnum
4
4
  from pydantic import BaseModel
5
- from typing import Any
5
+ from typing import Any, Callable
6
6
 
7
7
  class ParameterKind(StrEnum):
8
8
  """Enum representing the different kinds of parameters a method can have."""
@@ -107,3 +107,17 @@ class RunAnalyzer(ast.NodeVisitor):
107
107
  Args:
108
108
  node (ast.Subscript): The Subscript node to visit.
109
109
  '''
110
+
111
+ def analyze_method(cls, method: Callable) -> RunProfile:
112
+ """Analyze a method using RunAnalyzer.
113
+
114
+ This function encapsulates the common analysis logic used by both
115
+ Component._analyze_run_method() and schema_generator._generate_from_analyzer().
116
+
117
+ Args:
118
+ cls (type): The class containing the method (for analyzer context).
119
+ method (Callable): The method to analyze.
120
+
121
+ Returns:
122
+ RunProfile: The analysis results.
123
+ """
@@ -9,6 +9,7 @@ DEFAULT_DATE_FORMAT: str
9
9
  TEXT_COLOR_MAP: Incomplete
10
10
  LOG_FORMAT_KEY: str
11
11
  RICH_CLOSE_TAG: str
12
+ JSON_LOG_FIELDS: Incomplete
12
13
  JSON_ERROR_FIELDS_MAP: Incomplete
13
14
 
14
15
  class TextRichHandler(RichHandler):
@@ -0,0 +1,54 @@
1
+ from _typeshed import Incomplete
2
+ from gllm_core.utils.logger_manager import LoggerManager as LoggerManager
3
+ from typing import Callable
4
+
5
+ class MainMethodResolver:
6
+ """Resolves the main entrypoint method for Component classes.
7
+
8
+ This resolver implements the precedence rules for determining which method
9
+ should be used as the main entrypoint:
10
+ 1. Method decorated with @main in the most derived class.
11
+ 2. Method named by __main_method__ property.
12
+ 3. _run method (with deprecation warning).
13
+
14
+ Attributes:
15
+ cls (type): The Component class to resolve the main method for.
16
+ """
17
+ cls: Incomplete
18
+ def __init__(self, component_class: type) -> None:
19
+ """Initialize the resolver with a Component class.
20
+
21
+ Args:
22
+ component_class (type): The Component class to resolve the main method for.
23
+ """
24
+ @staticmethod
25
+ def validate_class(component_class: type) -> None:
26
+ """Validate main method configuration at class definition time.
27
+
28
+ This performs early validation that can be done when a Component subclass
29
+ is defined, before any instances are created or methods are called.
30
+
31
+ Validations performed:
32
+ 1. Check that __main_method__ property points to an existing method
33
+ 2. Check that only one @main decorator is used within the same class
34
+
35
+ Note: Multiple inheritance conflicts are intentionally NOT checked here,
36
+ as they are deferred to runtime (get_main()) to allow class definition
37
+ to succeed.
38
+
39
+ Args:
40
+ component_class (type): The Component class to validate.
41
+
42
+ Raises:
43
+ AttributeError: If __main_method__ refers to a non-existent method.
44
+ TypeError: If multiple methods are decorated with @main in the same class.
45
+ """
46
+ def resolve(self) -> Callable | None:
47
+ """Resolve the main method following precedence rules.
48
+
49
+ Returns:
50
+ Callable | None: The resolved main method, or None if not found.
51
+
52
+ Raises:
53
+ TypeError: If conflicting main methods are inherited from multiple ancestors.
54
+ """
gllm_core/utils/retry.pyi CHANGED
@@ -15,7 +15,6 @@ class RetryConfig(BaseModel):
15
15
  max_retries (int): Maximum number of retry attempts.
16
16
  base_delay (float): Base delay in seconds between retries.
17
17
  max_delay (float): Maximum delay in seconds between retries.
18
- exponential_base (float): Base for exponential backoff. Deprecated and will be removed in v0.4.
19
18
  jitter (bool): Whether to add random jitter to delays.
20
19
  timeout (float | None): Overall timeout in seconds for the entire operation. If None, timeout is disabled.
21
20
  retry_on_exceptions (tuple[type[Exception], ...]): Tuple of exception types to retry on.
@@ -23,7 +22,6 @@ class RetryConfig(BaseModel):
23
22
  max_retries: int
24
23
  base_delay: float
25
24
  max_delay: float
26
- exponential_base: float
27
25
  jitter: bool
28
26
  timeout: float | None
29
27
  retry_on_exceptions: tuple[type[Exception], ...]
Binary file
gllm_core.pyi CHANGED
@@ -14,33 +14,33 @@ import gllm_core.adapters.tool.from_langchain_tool
14
14
  import asyncio
15
15
  import typing
16
16
  import enum
17
- import datetime
18
17
  import gllm_core.event.handler.ConsoleEventHandler
19
18
  import gllm_core.event.handler.PrintEventHandler
20
19
  import gllm_core.event.handler.StreamEventHandler
21
20
  import gllm_core.schema.Event
22
21
  import gllm_core.utils.validate_string_enum
23
- import json
24
22
  import rich
25
23
  import rich.console
26
24
  import abc
27
25
  import gllm_core.utils.LoggerManager
28
26
  import rich.panel
29
27
  import rich.style
28
+ import json
30
29
  import gllm_core.event.EventEmitter
31
30
  import gllm_core.schema.Component
32
31
  import gllm_core.utils.get_placeholder_keys
33
32
  import uuid
34
33
  import pydantic
35
34
  import __future__
36
- import ast
37
35
  import inspect
38
36
  import logging
39
- import textwrap
40
37
  import warnings
41
38
  import functools
42
39
  import traceback
43
40
  import gllm_core.utils.BinaryHandlingStrategy
41
+ import datetime
42
+ import ast
43
+ import textwrap
44
44
  import base64
45
45
  import atexit
46
46
  import threading
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: gllm-core-binary
3
- Version: 0.3.34
3
+ Version: 0.4.1
4
4
  Summary: A library containing core components for Gen AI applications.
5
5
  Author-email: Dimitrij Ray <dimitrij.ray@gdplabs.id>, Henry Wicaksono <henry.wicaksono@gdplabs.id>, Resti Febriana <resti.febriana@gdplabs.id>
6
6
  Requires-Python: <3.14,>=3.11
@@ -18,7 +18,7 @@ Requires-Dist: pydantic<3.0.0,>=2.11.4
18
18
  Requires-Dist: python-json-logger<4.0.0,>=3.3.0
19
19
  Requires-Dist: rich<15.0.0,>=14.1.0
20
20
  Requires-Dist: scipy<2.0.0,>=1.15.1
21
- Requires-Dist: virtualenv>=20.36.1
21
+ Requires-Dist: virtualenv==20.30.0
22
22
  Provides-Extra: dev
23
23
  Requires-Dist: coverage<8.0.0,>=7.4.4; extra == "dev"
24
24
  Requires-Dist: mypy<2.0.0,>=1.15.0; extra == "dev"
@@ -1,42 +1,44 @@
1
- gllm_core.cp312-win_amd64.pyd,sha256=V3LNHA3LKULnhf7c7Pb9bI5BUQhEkx2pxuWIwbu4P4Y,1151488
2
- gllm_core.pyi,sha256=zffCuoWXO09wVDCEg8PZX9O3_14ECViuz1efa2KVvTo,1446
1
+ gllm_core.cp312-win_amd64.pyd,sha256=49gLN9araoPnOBg4B0kgVbUT9u6oeMou8essgb3_2_0,1204224
2
+ gllm_core.pyi,sha256=n1D4ZCjhQUKv7qxTYLWh-afK6ECPZCddwckzt6afO2w,1446
3
3
  gllm_core/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- gllm_core/constants.pyi,sha256=p7-Sr-sNmjv6mboGJmALDd3UtTZ4y0m_gmUXIBbAzBk,923
4
+ gllm_core/constants.pyi,sha256=9M5UxEkdttu4fSJTLxhjt7q1xTRYbjTFheM5EjQ5Bs4,904
5
5
  gllm_core/adapters/__init__.pyi,sha256=N8JBGr2mPUMAGaMd__7XxGr2NAzfaFMuNH15QkSfbrA,187
6
6
  gllm_core/adapters/tool/__init__.pyi,sha256=zRmMo1ilDaYF-cErfkQqy8zGnArHebdWmox-P34_7fI,244
7
7
  gllm_core/adapters/tool/google_adk.pyi,sha256=0awaKRXmmK5NiAP9vNNYjMARDPWfWyQqy29k3WHoX2s,953
8
- gllm_core/adapters/tool/langchain.pyi,sha256=LBqox8xFm6jSxPfBEftJr_zUmXwPk_qHNwU3bZaphhE,855
8
+ gllm_core/adapters/tool/langchain.pyi,sha256=J2vRizEVUORs-GI4uyIBNpm05Np65PmJ4gyd1DwaAcU,415
9
9
  gllm_core/event/__init__.pyi,sha256=HVs5C80lFzVEH7mO8KJTUqEPi_7KyPvNeMLuoG-hDeE,177
10
- gllm_core/event/event_emitter.pyi,sha256=7WcK-SV4xVwh48rsc-gt_41J8qksBTxbWSWfnr85dYk,8386
10
+ gllm_core/event/event_emitter.pyi,sha256=dzhlOGnA2h5-OSRZHt-AJ-THul-rDUatfwr6dyYzYu8,7297
11
11
  gllm_core/event/messenger.pyi,sha256=8Nvra-a7RqnfX0PAtm-Of5M8CvsYr0L_1k3HgdNCR5I,3190
12
12
  gllm_core/event/handler/__init__.pyi,sha256=gZ21Fjjog3-e3-_Xv5sTpX9_Mx8X2LUzTrqp_tPisCg,377
13
- gllm_core/event/handler/console_event_handler.pyi,sha256=h3Dpj6-UeZnKUm7iFFOmRWk8k2Hw6YsvP28FUWYjU4U,1550
13
+ gllm_core/event/handler/console_event_handler.pyi,sha256=eCv0SaZEpbu8W2jQPLnWwXNzhGOSM5KAtDVUYfvlvMs,1494
14
14
  gllm_core/event/handler/event_handler.pyi,sha256=chEYnw3Rp9Lk3Cz4dSn6EVlzje4BG-SlM82J-4UE5Hw,2153
15
- gllm_core/event/handler/print_event_handler.pyi,sha256=Z34M73brc4eaDLDt_nmdo638qsyUVuuMLyIJ0PdBt6c,1805
15
+ gllm_core/event/handler/print_event_handler.pyi,sha256=D_xNtpcBsGl7NVSCvFKEGvaUqfMTxPaQV8zXECwmZ2Q,1674
16
16
  gllm_core/event/handler/stream_event_handler.pyi,sha256=5faGSFQLBN7XMqd4nIfGkdTBI_ALVaE-fmxVAjzca9w,2908
17
17
  gllm_core/event/hook/__init__.pyi,sha256=gSDHYl0yi00zHHMRvU_Eg8qLqsGHESTvoNE3MXig-g0,149
18
18
  gllm_core/event/hook/event_hook.pyi,sha256=rMatofdNAwHI65ya_7-q3NAfmTuKhc2WkXeiGPAvcKI,600
19
19
  gllm_core/event/hook/json_stringify_event_hook.pyi,sha256=I-QxbaLc4rEyqhW_f4INN5UxBg_ZofHHN1HQKfPJ7rs,585
20
20
  gllm_core/schema/__init__.pyi,sha256=X7Gv3xgtl4Ylzsg9iuGgjJPkQey7OdvvIC_X1e5_LAI,310
21
21
  gllm_core/schema/chunk.pyi,sha256=ZVYQitMtvMStiFssnTCgtSIcj30VSsK2dKscSysl3R4,2378
22
- gllm_core/schema/component.pyi,sha256=c3pL5FAW05WyL-BJ3dARYJEM58ZLZci8DkaOXnbi6gA,3403
22
+ gllm_core/schema/component.pyi,sha256=ucGtxWq6Q41y_iqKtPSurn2vLCTFa1F00LpVKKlvOD8,7861
23
23
  gllm_core/schema/event.pyi,sha256=Yd74uSWhIO1lx0_p70rYt-LMz4FZHbbbqJP7xhVh_pY,1335
24
+ gllm_core/schema/schema_generator.pyi,sha256=ToadC6UKEq35k32wUK1VaMKiICRtENXUYdAQOMlTg3U,1445
24
25
  gllm_core/schema/tool.pyi,sha256=T5TufJZPYUzYoSPZBX0FkqgZ9u03VAIsZdwvY1PS7nw,8848
25
- gllm_core/utils/__init__.pyi,sha256=U13s25K_edFp2WoCHfB0NyTROXvnP62P5A2YRukSIhs,1246
26
- gllm_core/utils/analyzer.pyi,sha256=M7_KYdBqz5S5fEPvnd49e6ij01dOvJD-k7amAlvRwNQ,3989
26
+ gllm_core/utils/__init__.pyi,sha256=ZFilGPXXqc2JGwy8AV8N7pf6zmtd9clzuk310PIGkBs,1359
27
+ gllm_core/utils/analyzer.pyi,sha256=M48PRor76L5eAQBpSqpv3EkZ4kU1t5Zm3CPFd34dxWM,4470
27
28
  gllm_core/utils/binary_handler_factory.pyi,sha256=imcuCL2oa-7uwTnC_vI-_KvE1hGu1-5U4ZiF5fShDmQ,1739
28
29
  gllm_core/utils/chunk_metadata_merger.pyi,sha256=J1lHTFV-0IiC6xKzzC7x1D1wBoki249muEU2HrF6C58,2317
29
30
  gllm_core/utils/concurrency.pyi,sha256=n_Mb9D_2hJAQ7VSwDBxhgmDv7hyFRKevDlhcHoAjvyA,3959
30
31
  gllm_core/utils/event_formatter.pyi,sha256=ocQ_Ev_XorRhLzj0c2szlclz8V3_Ysbg6qHmjhmur3k,1375
31
32
  gllm_core/utils/google_sheets.pyi,sha256=IjKdc7H3hBLAp8I8jxnwDfKP79D1EIBIRQKKFTUNqjM,939
32
33
  gllm_core/utils/imports.pyi,sha256=-KM0pyw7yFVCUZjHjoNBRFgEnI8hlr0pquKuhcA2X9M,2196
33
- gllm_core/utils/logger_manager.pyi,sha256=uix04SafH9aXQSPiGNwleCiBRlTJfqZB3H8zxsJocuI,7130
34
+ gllm_core/utils/logger_manager.pyi,sha256=IDRgA-5jRDu4miO5Ru_tFJHql2JlHdr1GvZdmdS9Sg8,7159
35
+ gllm_core/utils/main_method_resolver.pyi,sha256=dHozSqFMwCyVorQ0ZE9N-c2V4PkpF8FdU1VGGPvTjK4,2178
34
36
  gllm_core/utils/merger_method.pyi,sha256=JsgHnO47cqenqNxCrHqhAR-nnR_dEqE-7wprVrd8ZFg,1868
35
- gllm_core/utils/retry.pyi,sha256=UMrS9GsKi_HFsXNeYybSuZPrFkkX5yrLyovJvbNVb6s,1748
37
+ gllm_core/utils/retry.pyi,sha256=KxlPzURzZfCSgKC44v98nR2bqamzHqtbRuXLDEuX29c,1614
36
38
  gllm_core/utils/similarity.pyi,sha256=HmSxE5VfPwYZYih_bSIz8QRDbkouO_jij-FX6TSCEdM,439
37
39
  gllm_core/utils/validation.pyi,sha256=-RdMmb8afH7F7q4Ao7x6FbwaDfxUHn3hA3WiOgzB-3s,397
38
40
  gllm_core.build/.gitignore,sha256=aEiIwOuxfzdCmLZe4oB1JsBmCUxwG8x-u-HBCV9JT8E,1
39
- gllm_core_binary-0.3.34.dist-info/METADATA,sha256=-hTLcqi0YiYIjR8j5BmUeOTUaDHTusFjp7KirAoTO48,4680
40
- gllm_core_binary-0.3.34.dist-info/WHEEL,sha256=x5rgv--I0NI0IT1Lh9tN1VG2cI637p3deednwYLKnxc,96
41
- gllm_core_binary-0.3.34.dist-info/top_level.txt,sha256=UYoTGvK_Yec95-_QUuVCKEr6PUXb5Lc7Dr-x8SeX9uM,10
42
- gllm_core_binary-0.3.34.dist-info/RECORD,,
41
+ gllm_core_binary-0.4.1.dist-info/METADATA,sha256=u-7q92Ir814MskzOGNcOIUcGbZ5cSlX7mkssju-XHmQ,4679
42
+ gllm_core_binary-0.4.1.dist-info/WHEEL,sha256=x5rgv--I0NI0IT1Lh9tN1VG2cI637p3deednwYLKnxc,96
43
+ gllm_core_binary-0.4.1.dist-info/top_level.txt,sha256=UYoTGvK_Yec95-_QUuVCKEr6PUXb5Lc7Dr-x8SeX9uM,10
44
+ gllm_core_binary-0.4.1.dist-info/RECORD,,