veadk-python 0.2.4__py3-none-any.whl → 0.2.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.

Potentially problematic release.


This version of veadk-python might be problematic. Click here for more details.

Files changed (64) hide show
  1. veadk/agent.py +40 -8
  2. veadk/cli/cli_deploy.py +5 -1
  3. veadk/cli/cli_init.py +25 -6
  4. veadk/cloud/cloud_app.py +21 -6
  5. veadk/consts.py +33 -1
  6. veadk/database/database_adapter.py +88 -0
  7. veadk/database/kv/redis_database.py +47 -0
  8. veadk/database/local_database.py +22 -4
  9. veadk/database/relational/mysql_database.py +58 -0
  10. veadk/database/vector/opensearch_vector_database.py +6 -3
  11. veadk/database/viking/viking_database.py +72 -3
  12. veadk/integrations/ve_cr/__init__.py +13 -0
  13. veadk/integrations/ve_cr/ve_cr.py +205 -0
  14. veadk/integrations/ve_faas/template/cookiecutter.json +2 -1
  15. veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/clean.py +23 -0
  16. veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/app.py +28 -2
  17. veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/requirements.txt +3 -1
  18. veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/run.sh +5 -2
  19. veadk/integrations/ve_faas/ve_faas.py +2 -0
  20. veadk/integrations/ve_faas/web_template/cookiecutter.json +17 -0
  21. veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/__init__.py +13 -0
  22. veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/clean.py +23 -0
  23. veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/config.yaml.example +2 -0
  24. veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/deploy.py +41 -0
  25. veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/Dockerfile +23 -0
  26. veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/app.py +123 -0
  27. veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/init_db.py +46 -0
  28. veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/models.py +36 -0
  29. veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/requirements.txt +4 -0
  30. veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/run.sh +21 -0
  31. veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/static/css/style.css +368 -0
  32. veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/static/js/admin.js +0 -0
  33. veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/admin/dashboard.html +21 -0
  34. veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/admin/edit_post.html +24 -0
  35. veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/admin/login.html +21 -0
  36. veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/admin/posts.html +53 -0
  37. veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/base.html +45 -0
  38. veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/index.html +29 -0
  39. veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/post.html +14 -0
  40. veadk/integrations/ve_tos/ve_tos.py +238 -0
  41. veadk/knowledgebase/knowledgebase.py +8 -0
  42. veadk/runner.py +140 -34
  43. veadk/tools/builtin_tools/image_edit.py +236 -0
  44. veadk/tools/builtin_tools/image_generate.py +236 -0
  45. veadk/tools/builtin_tools/video_generate.py +326 -0
  46. veadk/tools/sandbox/browser_sandbox.py +19 -9
  47. veadk/tools/sandbox/code_sandbox.py +21 -11
  48. veadk/tools/sandbox/computer_sandbox.py +16 -9
  49. veadk/tracing/base_tracer.py +0 -19
  50. veadk/tracing/telemetry/attributes/extractors/common_attributes_extractors.py +5 -0
  51. veadk/tracing/telemetry/attributes/extractors/llm_attributes_extractors.py +311 -128
  52. veadk/tracing/telemetry/attributes/extractors/tool_attributes_extractors.py +20 -14
  53. veadk/tracing/telemetry/attributes/extractors/types.py +15 -4
  54. veadk/tracing/telemetry/exporters/inmemory_exporter.py +3 -0
  55. veadk/tracing/telemetry/opentelemetry_tracer.py +15 -6
  56. veadk/tracing/telemetry/telemetry.py +128 -24
  57. veadk/utils/misc.py +40 -0
  58. veadk/version.py +1 -1
  59. {veadk_python-0.2.4.dist-info → veadk_python-0.2.6.dist-info}/METADATA +1 -1
  60. {veadk_python-0.2.4.dist-info → veadk_python-0.2.6.dist-info}/RECORD +64 -37
  61. {veadk_python-0.2.4.dist-info → veadk_python-0.2.6.dist-info}/WHEEL +0 -0
  62. {veadk_python-0.2.4.dist-info → veadk_python-0.2.6.dist-info}/entry_points.txt +0 -0
  63. {veadk_python-0.2.4.dist-info → veadk_python-0.2.6.dist-info}/licenses/LICENSE +0 -0
  64. {veadk_python-0.2.4.dist-info → veadk_python-0.2.6.dist-info}/top_level.txt +0 -0
@@ -30,7 +30,10 @@ from typing_extensions import override
30
30
  from veadk.tracing.base_tracer import BaseTracer
31
31
  from veadk.tracing.telemetry.exporters.apmplus_exporter import APMPlusExporter
32
32
  from veadk.tracing.telemetry.exporters.base_exporter import BaseExporter
33
- from veadk.tracing.telemetry.exporters.inmemory_exporter import InMemoryExporter
33
+ from veadk.tracing.telemetry.exporters.inmemory_exporter import (
34
+ _INMEMORY_EXPORTER_INSTANCE,
35
+ InMemoryExporter,
36
+ )
34
37
  from veadk.utils.logger import get_logger
35
38
  from veadk.utils.patches import patch_google_adk_telemetry
36
39
 
@@ -55,6 +58,8 @@ class OpentelemetryTracer(BaseModel, BaseTracer):
55
58
  description="The exporters to export spans.",
56
59
  )
57
60
 
61
+ # Forbid InMemoryExporter in exporters list
62
+ # cause we need to set custom in-memory span processor by VeADK
58
63
  @field_validator("exporters")
59
64
  @classmethod
60
65
  def forbid_inmemory_exporter(cls, v: list[BaseExporter]) -> list[BaseExporter]:
@@ -64,14 +69,18 @@ class OpentelemetryTracer(BaseModel, BaseTracer):
64
69
  return v
65
70
 
66
71
  def model_post_init(self, context: Any) -> None:
72
+ # Replace Google ADK tracing funcs
73
+ # `trace_call_llm` and `trace_tool_call`
67
74
  patch_google_adk_telemetry()
68
- self._init_global_tracer_provider()
69
-
70
- # GoogleADKInstrumentor().instrument()
71
75
 
72
- def _init_global_tracer_provider(self) -> None:
76
+ # We save internal processors for tracing data dump
73
77
  self._processors = []
74
78
 
79
+ # Initialize global tracer provider to avoid VeFaaS global tracer
80
+ # provider conflicts
81
+ self._init_global_tracer_provider()
82
+
83
+ def _init_global_tracer_provider(self) -> None:
75
84
  # set provider anyway, then get global provider
76
85
  trace_api.set_tracer_provider(trace_sdk.TracerProvider())
77
86
  global_tracer_provider: TracerProvider = trace_api.get_tracer_provider() # type: ignore
@@ -110,7 +119,7 @@ class OpentelemetryTracer(BaseModel, BaseTracer):
110
119
  f"Add span processor for exporter `{exporter.__class__.__name__}` to OpentelemetryTracer failed."
111
120
  )
112
121
 
113
- self._inmemory_exporter = InMemoryExporter()
122
+ self._inmemory_exporter = _INMEMORY_EXPORTER_INSTANCE
114
123
  if self._inmemory_exporter.processor:
115
124
  # make sure the in memory exporter processor is added at index 0
116
125
  # because we use this to record all spans
@@ -28,6 +28,9 @@ from veadk.tracing.telemetry.attributes.extractors.types import (
28
28
  LLMAttributesParams,
29
29
  ToolAttributesParams,
30
30
  )
31
+ from veadk.tracing.telemetry.exporters.inmemory_exporter import (
32
+ _INMEMORY_EXPORTER_INSTANCE,
33
+ )
31
34
  from veadk.utils.logger import get_logger
32
35
 
33
36
  logger = get_logger(__name__)
@@ -48,14 +51,81 @@ def upload_metrics(
48
51
  exporter.meter_uploader.record(llm_request, llm_response)
49
52
 
50
53
 
51
- def trace_send_data(): ...
52
-
53
-
54
- def set_common_attributes(
55
- invocation_context: InvocationContext, current_span: _Span, **kwargs
54
+ def _set_agent_input_attribute(
55
+ span: _Span, invocation_context: InvocationContext
56
56
  ) -> None:
57
- from veadk.agent import Agent
57
+ # We only save the original user input as the agent input
58
+ # hence once the `agent.input` has been set, we don't overwrite it
59
+ event_names = [event.name for event in span.events]
60
+ if "gen_ai.user.message" in event_names:
61
+ return
58
62
 
63
+ # input = {
64
+ # "agent_name": invocation_context.agent.name,
65
+ # "app_name": invocation_context.session.app_name,
66
+ # "user_id": invocation_context.user_id,
67
+ # "session_id": invocation_context.session.id,
68
+ # "input": invocation_context.user_content.model_dump(exclude_none=True)
69
+ # if invocation_context.user_content
70
+ # else None,
71
+ # }
72
+
73
+ user_content = invocation_context.user_content
74
+ if user_content and user_content.parts:
75
+ span.add_event(
76
+ "gen_ai.user.message",
77
+ {
78
+ "agent_name": invocation_context.agent.name,
79
+ "app_name": invocation_context.session.app_name,
80
+ "user_id": invocation_context.user_id,
81
+ "session_id": invocation_context.session.id,
82
+ },
83
+ )
84
+ for idx, part in enumerate(user_content.parts):
85
+ if part.text:
86
+ span.add_event(
87
+ "gen_ai.user.message",
88
+ {f"parts.{idx}.type": "text", f"parts.{idx}.content": part.text},
89
+ )
90
+ if part.inline_data:
91
+ span.add_event(
92
+ "gen_ai.user.message",
93
+ {
94
+ f"parts.{idx}.type": "image_url",
95
+ f"parts.{idx}.image_url.name": (
96
+ part.inline_data.display_name.split("/")[-1]
97
+ if part.inline_data.display_name
98
+ else "<unknown_image_name>"
99
+ ),
100
+ f"parts.{idx}.image_url.url": (
101
+ part.inline_data.display_name
102
+ if part.inline_data.display_name
103
+ else "<unknown_image_url>"
104
+ ),
105
+ },
106
+ )
107
+
108
+
109
+ def _set_agent_output_attribute(span: _Span, llm_response: LlmResponse) -> None:
110
+ content = llm_response.content
111
+ if content and content.parts:
112
+ for idx, part in enumerate(content.parts):
113
+ if part.text:
114
+ span.add_event(
115
+ "gen_ai.choice",
116
+ {
117
+ f"message.parts.{idx}.type": "text",
118
+ f"message.parts.{idx}.text": part.text,
119
+ },
120
+ )
121
+
122
+
123
+ def set_common_attributes_on_model_span(
124
+ invocation_context: InvocationContext,
125
+ llm_response: LlmResponse,
126
+ current_span: _Span,
127
+ **kwargs,
128
+ ) -> None:
59
129
  if current_span.context:
60
130
  current_span_id = current_span.context.trace_id
61
131
  else:
@@ -64,34 +134,56 @@ def set_common_attributes(
64
134
  )
65
135
  return
66
136
 
67
- if isinstance(invocation_context.agent, Agent):
68
- try:
69
- from veadk.tracing.telemetry.opentelemetry_tracer import OpentelemetryTracer
137
+ try:
138
+ spans = _INMEMORY_EXPORTER_INSTANCE.processor.spans # type: ignore
70
139
 
71
- tracer: OpentelemetryTracer = invocation_context.agent.tracers[0] # type: ignore
72
- spans = tracer._inmemory_exporter.processor.spans # # type: ignore
140
+ spans_in_current_trace = [
141
+ span
142
+ for span in spans
143
+ if span.context and span.context.trace_id == current_span_id
144
+ ]
73
145
 
74
- spans_in_current_trace = [
75
- span
76
- for span in spans
77
- if span.context and span.context.trace_id == current_span_id
78
- ]
79
-
80
- common_attributes = ATTRIBUTES.get("common", {})
81
- for span in spans_in_current_trace:
146
+ common_attributes = ATTRIBUTES.get("common", {})
147
+ for span in spans_in_current_trace:
148
+ if span.is_recording():
82
149
  if span.name.startswith("invocation"):
83
150
  span.set_attribute("gen_ai.operation.name", "chain")
151
+ _set_agent_input_attribute(span, invocation_context)
152
+ _set_agent_output_attribute(span, llm_response)
84
153
  elif span.name.startswith("agent_run"):
85
154
  span.set_attribute("gen_ai.operation.name", "agent")
155
+ _set_agent_input_attribute(span, invocation_context)
156
+ _set_agent_output_attribute(span, llm_response)
86
157
  for attr_name, attr_extractor in common_attributes.items():
87
158
  value = attr_extractor(**kwargs)
88
159
  span.set_attribute(attr_name, value)
89
- except Exception as e:
90
- logger.error(f"Failed to set common attributes for spans: {e}")
91
- else:
160
+ except Exception as e:
161
+ logger.error(f"Failed to set common attributes for spans: {e}")
162
+
163
+
164
+ def set_common_attributes_on_tool_span(current_span: _Span) -> None:
165
+ # find parent span (generally a llm span)
166
+ if not current_span.context:
92
167
  logger.warning(
93
- "Failed to set common attributes for spans as your agent is not VeADK Agent. Skip this."
168
+ f"Get tool span's context failed. Skip setting common attributes for span {current_span.name}"
94
169
  )
170
+ return
171
+
172
+ if not current_span.parent:
173
+ logger.warning(
174
+ f"Get tool span's parent failed. Skip setting common attributes for span {current_span.name}"
175
+ )
176
+ return
177
+
178
+ parent_span_id = current_span.parent.span_id
179
+ for span in _INMEMORY_EXPORTER_INSTANCE.processor.spans: # type: ignore
180
+ if span.context.span_id == parent_span_id:
181
+ common_attributes = ATTRIBUTES.get("common", {})
182
+ for attr_name in common_attributes.keys():
183
+ current_span.set_attribute(attr_name, span.attributes[attr_name])
184
+
185
+
186
+ def trace_send_data(): ...
95
187
 
96
188
 
97
189
  def trace_tool_call(
@@ -101,6 +193,8 @@ def trace_tool_call(
101
193
  ) -> None:
102
194
  span = trace.get_current_span()
103
195
 
196
+ set_common_attributes_on_tool_span(current_span=span) # type: ignore
197
+
104
198
  tool_attributes_mapping = ATTRIBUTES.get("tool", {})
105
199
  params = ToolAttributesParams(tool, args, function_response_event)
106
200
 
@@ -119,8 +213,9 @@ def trace_call_llm(
119
213
 
120
214
  from veadk.agent import Agent
121
215
 
122
- set_common_attributes(
216
+ set_common_attributes_on_model_span(
123
217
  invocation_context=invocation_context,
218
+ llm_response=llm_response,
124
219
  current_span=span, # type: ignore
125
220
  agent_name=invocation_context.agent.name,
126
221
  user_id=invocation_context.user_id,
@@ -132,6 +227,15 @@ def trace_call_llm(
132
227
  model_name=invocation_context.agent.model_name
133
228
  if isinstance(invocation_context.agent, Agent)
134
229
  else "",
230
+ call_type=(
231
+ span.context.trace_state.get("call_type", "")
232
+ if (
233
+ hasattr(span, "context")
234
+ and hasattr(span.context, "trace_state")
235
+ and hasattr(span.context.trace_state, "get")
236
+ )
237
+ else ""
238
+ ),
135
239
  )
136
240
 
137
241
  llm_attributes_mapping = ATTRIBUTES.get("llm", {})
veadk/utils/misc.py CHANGED
@@ -13,9 +13,11 @@
13
13
  # limitations under the License.
14
14
 
15
15
  import importlib.util
16
+ import json
16
17
  import sys
17
18
  import time
18
19
  import types
20
+ from typing import Any, Dict, List, MutableMapping, Tuple
19
21
 
20
22
  import requests
21
23
 
@@ -60,3 +62,41 @@ def load_module_from_file(module_name: str, file_path: str) -> types.ModuleType:
60
62
  )
61
63
  else:
62
64
  raise ImportError(f"Could not load module {module_name} from {file_path}")
65
+
66
+
67
+ def flatten_dict(
68
+ d: MutableMapping[str, Any], parent_key: str = "", sep: str = "_"
69
+ ) -> Dict[str, Any]:
70
+ """Flatten a nested dictionary.
71
+
72
+ Input:
73
+ {"a": {"b": 1}}
74
+ Output:
75
+ {"a_b": 1}
76
+ """
77
+ items: List[Tuple[str, Any]] = []
78
+ for k, v in d.items():
79
+ new_key = f"{parent_key}{sep}{k}" if parent_key else k
80
+ if isinstance(v, MutableMapping):
81
+ items.extend(flatten_dict(v, new_key, sep=sep).items())
82
+ else:
83
+ items.append((new_key, v))
84
+ return dict(items)
85
+
86
+
87
+ def safe_json_serialize(obj) -> str:
88
+ """Convert any Python object to a JSON-serializable type or string.
89
+
90
+ Args:
91
+ obj: The object to serialize.
92
+
93
+ Returns:
94
+ The JSON-serialized object string or <non-serializable> if the object cannot be serialized.
95
+ """
96
+
97
+ try:
98
+ return json.dumps(
99
+ obj, ensure_ascii=False, default=lambda o: "<not serializable>"
100
+ )
101
+ except (TypeError, OverflowError):
102
+ return "<not serializable>"
veadk/version.py CHANGED
@@ -12,4 +12,4 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- VERSION = "0.2.4"
15
+ VERSION = "0.2.6"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: veadk-python
3
- Version: 0.2.4
3
+ Version: 0.2.6
4
4
  Summary: Volcengine agent development kit, integrations with Volcengine cloud services.
5
5
  Author-email: Yaozheng Fang <fangyozheng@gmail.com>, Guodong Li <cu.eric.lee@gmail.com>, Zhi Han <sliverydayday@gmail.com>, Meng Wang <mengwangwm@gmail.com>
6
6
  License: Apache License
@@ -1,10 +1,10 @@
1
1
  veadk/__init__.py,sha256=9l1lyb9ifhHQeetmIBWZnIdwUCVyMyz1EnKsKz8BBG8,1135
2
- veadk/agent.py,sha256=HmuWJ9Dolrg26XT0NnoH35pJwyI_6HKph36vChANgug,9852
2
+ veadk/agent.py,sha256=MOlarq6Zp84VVKnq5NWwSc9is4Iwa_AUepvFS3txJ9U,10998
3
3
  veadk/config.py,sha256=UFUgzL4fTRlM_LIyutP50dvxtKOuFeMhL5TPEOO7r2k,4109
4
- veadk/consts.py,sha256=DIVr-sXQahrlJoPiTfsDL0y_pX8w-LLXHDsubL5w13k,802
5
- veadk/runner.py,sha256=6GPt8UQN0J9GJOlDoWORQOA7JSyXMQvngyu1J7yDMvk,11570
4
+ veadk/consts.py,sha256=d3P0Gs2hLj-Ar84ZHx5nS9BFciRdH5iHmuL63giXbQg,1800
5
+ veadk/runner.py,sha256=INJgKq2oJiHEuBAdNfTooTkgBRLMXlI9Dbn6raX8AXI,15398
6
6
  veadk/types.py,sha256=zOOzG-QJy-MkzHeicWJzy2_L5U4ERrWziPubIUEbd8c,1656
7
- veadk/version.py,sha256=welcCTuA50lWrSlS8GjQD5rDpBsefQ102fU3w-N49NA,653
7
+ veadk/version.py,sha256=ki3fZMdcg5EVVl8GPW52Qz1GSTGdOJVZCkAFkE6841w,653
8
8
  veadk/a2a/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
9
9
  veadk/a2a/agent_card.py,sha256=lhtgW1acMpxYUdULHEZwVFXOi6Xh4lNkf4S7QIhbFFI,1525
10
10
  veadk/a2a/remote_ve_agent.py,sha256=vjV28Bs8ax21Xu_u4p8g11tlxfbyFMuHw-AA1Q74kNg,1261
@@ -16,27 +16,27 @@ veadk/agents/parallel_agent.py,sha256=XmobJHMONvsFyaaDSlnaPW9DbtHkX84X9Kvky1Ns04
16
16
  veadk/agents/sequential_agent.py,sha256=5sG-m0BqC3mU73Vx-PmG-4ags76J0iIvP70SiHaozao,2061
17
17
  veadk/cli/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
18
18
  veadk/cli/cli.py,sha256=mvJ_xeyEQ77Pwp_JFGbKYmvTNOqP1__Ww2zJ2Vp8Q_U,1157
19
- veadk/cli/cli_deploy.py,sha256=83Bc45L9vR2QjaalMNr5jd_ygeVfiWv201yEhqIQvio,5202
20
- veadk/cli/cli_init.py,sha256=EUR7H4s-k6vb2M_s2v8PHLchFNZ7hYAZ1_HxPnHMcmU,3370
19
+ veadk/cli/cli_deploy.py,sha256=IAlr1nrPPiB0k1sZQZQuHjZCxd8LSTR5EsqI1zCbGjk,5291
20
+ veadk/cli/cli_init.py,sha256=gsSF36mcLsZSoWMUolpaLS_H25pSbMsl0LOkPnvuSaU,3982
21
21
  veadk/cli/cli_prompt.py,sha256=R-vEL_EYhWV2VzMhIGjSpKlPrX6XQIL6b-LMWKpEYw0,2329
22
22
  veadk/cli/cli_web.py,sha256=xh4G2mdfjR5PPNOu4AptNWOREGsZbGvt6pIgUPvbb-M,5976
23
23
  veadk/cloud/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
24
24
  veadk/cloud/cloud_agent_engine.py,sha256=u-v-kkAhRgZY1r82CQRwfkYnj0n7ft8qIW_r-yhnMSI,8461
25
- veadk/cloud/cloud_app.py,sha256=4fjWJKSQKIVXJGUOBZ6BdMoeCd7MrAqFH_gcWEqZu_w,8276
25
+ veadk/cloud/cloud_app.py,sha256=2bmEf7RH1Kwz8HLZ0aY3pVn0R8xi1T7kcGRTRyaWawY,8746
26
26
  veadk/database/__init__.py,sha256=7mkw5JUz9-I-wF3UvG9PYDWyy3UYkzDul9_oU1ojjXk,712
27
27
  veadk/database/base_database.py,sha256=sdAaBKFnA9tOEzcJvtv3xSE3G_vBfFJdpAHVR4oRvgs,1217
28
- veadk/database/database_adapter.py,sha256=8nQiTg_ItNYBGIzBa9KEkTepPTs4WAytrMc2RVtfShM,9696
28
+ veadk/database/database_adapter.py,sha256=5ZDOocJ2REE4AED1JvqPLVDlgZD8MVvUybJIq7e5Zs8,13606
29
29
  veadk/database/database_factory.py,sha256=PuzEvehjGiAm1gO7L-qMlJSvvmJHCOSA-tXjknWdSk0,2804
30
- veadk/database/local_database.py,sha256=ql2Cxu-FQ1g5t7PGVZGmXRYBrZ4ElVYlNx0tCoKzqEY,1396
30
+ veadk/database/local_database.py,sha256=UKfRb5dv_Kyerex0TMS_onv807z9gtcYBBh5l7lEfn4,1985
31
31
  veadk/database/kv/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
32
- veadk/database/kv/redis_database.py,sha256=_NfKt_A8wvHyGZHD2xuH9tbeJjfDc-A0FwQhn5UXGKc,3775
32
+ veadk/database/kv/redis_database.py,sha256=sbTIPS3L-JrndLI8_wOKLu3l-aeSGTayePwZZivMaAo,5432
33
33
  veadk/database/relational/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
34
- veadk/database/relational/mysql_database.py,sha256=ZVy7iU8tBY0wwU1a3LkAgefXKaICM6sm5jIRkFMdmTk,3834
34
+ veadk/database/relational/mysql_database.py,sha256=GYar7EbR-Rqg1wdP5P958Rln6nt2r2EWBfOWHf9XpvM,6054
35
35
  veadk/database/vector/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
36
- veadk/database/vector/opensearch_vector_database.py,sha256=IZ-fuvVq9wlrVPlp26v4sd8y7WED1pq62hr9iENsgmQ,9370
36
+ veadk/database/vector/opensearch_vector_database.py,sha256=R0sThPZkBr0W7A-xASo9NrWtIIekt7pUknJp5zH-oAE,9443
37
37
  veadk/database/vector/type.py,sha256=tQXaHMs4YJrLLL6O1m6Hmyu4sdB6M7C467P3Mxk_bFg,1770
38
38
  veadk/database/viking/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
39
- veadk/database/viking/viking_database.py,sha256=Ni_lQcgxqhk0ZgSaUtewPKjRI6yXgoZUi3JqtOTFj7w,13756
39
+ veadk/database/viking/viking_database.py,sha256=SG1pCc7UhPogD7S3lqOYHu1wHQ5B_7XHgYl8ng3ogeI,15881
40
40
  veadk/database/viking/viking_memory_db.py,sha256=0Y5YMctAVO_8ylpD1T40ltiDQ2rjWAhBSUvEx9umOvQ,18162
41
41
  veadk/evaluation/__init__.py,sha256=Pwnv6x-QaQQiv4J_QNnR-Asl7wN0laF92EX9n0Sll1U,713
42
42
  veadk/evaluation/base_evaluator.py,sha256=FRViTJ16yia-xfNgTp3q3F8h5SgjhXG4QSHWGoqe1KY,14184
@@ -51,24 +51,48 @@ veadk/evaluation/utils/prometheus.py,sha256=6i_HuGqqh3cRDwjZCtk4i37iN_IGqRg0YJRQ
51
51
  veadk/integrations/ve_apig/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
52
52
  veadk/integrations/ve_apig/ve_apig.py,sha256=B4yPiNTGeXKFdji8RHWrCKmv0RomhfbCKgHM3IhaziU,8931
53
53
  veadk/integrations/ve_apig/ve_apig_utils.py,sha256=9eL7vu51PyPAZNoBMpoaDjWRatvqbY_Bb1BaBsjz-V8,10766
54
+ veadk/integrations/ve_cr/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
55
+ veadk/integrations/ve_cr/ve_cr.py,sha256=tj_jWidqdoHsA74QCodu5p04yPp6ZgymhTAxTwXZcw0,6768
54
56
  veadk/integrations/ve_faas/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
55
- veadk/integrations/ve_faas/ve_faas.py,sha256=801DpI9UJMmq7z8XgwRuZeB_v9ShQ0FGdntn9SLIido,14436
57
+ veadk/integrations/ve_faas/ve_faas.py,sha256=7j0rTNQnUxBvyy_1QwIIUOLKrWI1Xjptw1ywa9jx55A,14525
56
58
  veadk/integrations/ve_faas/ve_faas_utils.py,sha256=57INjzLs-k2pReHhyMaFwptUUuP5Wk7SWqFUzaE3bBw,13200
57
- veadk/integrations/ve_faas/template/cookiecutter.json,sha256=7tUt1fuQRU5zmuljXpnpU__szZgnc4jXsWBePRB1xwk,317
59
+ veadk/integrations/ve_faas/template/cookiecutter.json,sha256=IWEaMW-Oh24BzKS82oH0-MTsnuzjS9m3IrtskK66kg0,340
58
60
  veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
61
+ veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/clean.py,sha256=31mvoL_3--3lpwwir6orLZNwhOPdd5uJangMkkUz8C0,859
59
62
  veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/config.yaml.example,sha256=DdrObZmrhhOETxUgympG4UiN2D-2HVITwHMejcDscrQ,144
60
63
  veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/deploy.py,sha256=pXsGG1D4HcKKJ8t9dE9TI7vl-esVpK1hNVu_tfl0mz0,3534
61
64
  veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
62
65
  veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/agent.py,sha256=rqSq_wBDPA7Ojv6gepVZFSb9JS2TC7zuDP4YRAkkvwA,1096
63
- veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/app.py,sha256=v8XxOR8iebwElzeMgsoMFmhOoIoEQfQo_3pcAD75y-8,5251
64
- veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/requirements.txt,sha256=8PZwc8c9-zCkdGsBfPPaBNSYyY08RjsOPsP2yDAwWZc,12
65
- veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/run.sh,sha256=sSG75kL-v44DFlp-BWjj64DUA88Xruq0U03DuHSaZ-c,1216
66
+ veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/app.py,sha256=JOiUAqhFouyVpWI6Yp5Gkx42HsYTQWUopQXnrzxGAS8,6577
67
+ veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/requirements.txt,sha256=KFYmsHfQtWIQCnVD9xfF6gl7PVkufVDWB-nytORZ4y0,73
68
+ veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/run.sh,sha256=T1pu9J1HcLGU9h2VKvfX_4suCbqdXn5WeWEukqVauNA,1276
66
69
  "veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/{{ cookiecutter.app_name|replace('-', '_') }}/__init__.py",sha256=HEVMuauOZSfmC3AqbXnqSmHNJ1FlMuAwNktxnlTj8uY,575
67
70
  "veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/{{ cookiecutter.app_name|replace('-', '_') }}/agent.py",sha256=ESNxN1nZlif0hU-ol48fOXZz-HV2__uVMZe6U9G6Y6s,1061
71
+ veadk/integrations/ve_faas/web_template/cookiecutter.json,sha256=FLdj_Km_g5-fNxnqRtp5xLb_fEv0Vyro2ScaBee3rws,368
72
+ veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
73
+ veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/clean.py,sha256=31mvoL_3--3lpwwir6orLZNwhOPdd5uJangMkkUz8C0,859
74
+ veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/config.yaml.example,sha256=sM2vwHhj1VKUjkHGjqiZmuRJaC0PA8U1xIgZ69cGDCI,45
75
+ veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/deploy.py,sha256=8X4YZK6NPW3D8D2bwnm7lpxxOe_hq1Z5rgGoeAOyRYc,1581
76
+ veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/Dockerfile,sha256=gI1S114aoXgY9aT75JZhYUHqWEyX3GcUK4m8bi5wnoA,402
77
+ veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/app.py,sha256=DstbQKKkLpMydDbEutEOWtwpBfwI2Uxaax7ioABlcT0,4137
78
+ veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/init_db.py,sha256=SZz-rLr5o7vH8QZyqn9Sy13Z4K5zxrCGGnVVTw5v_d4,1755
79
+ veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/models.py,sha256=oqwNhSVQMtAsZb-oTegvWb1BxKkuG_iGUj81DNBM49I,1389
80
+ veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/requirements.txt,sha256=ua2Wr1GIsWvGczCZbtL49iqsYGGdPc8YvKXar0jV4l4,69
81
+ veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/run.sh,sha256=jRCoBtZ6JexR-4Yyl5tcRNZpyyClG0tsAnSl8oFLNJk,458
82
+ veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/static/css/style.css,sha256=2SfLhiOEqBCKUDT0YzkmjJ01zaUWIRYJhelBag8jHUA,5708
83
+ veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/static/js/admin.js,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
84
+ veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/base.html,sha256=QSu2ZgAcPuiy1ylbT5escFfW7gmZG5lkZ3QDJBOY-8Y,1483
85
+ veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/index.html,sha256=BuIwm3aK15yAvCSPYjcmU2_FXTzA1PgKvXWGIITHGyk,1017
86
+ veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/post.html,sha256=znZNnXe5yP-tIqjKUACX0lmA37jRO7wK4TG_dz5s2dc,460
87
+ veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/admin/dashboard.html,sha256=nFJqkWZsJMxlsXh4_cUv8q4tlEtCy5Q2KYp0cJpcj_w,548
88
+ veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/admin/edit_post.html,sha256=Y4D8iBQi-bzTzcG8I0I_BMvX4b5H96HfU3UFabT6mAA,877
89
+ veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/admin/login.html,sha256=pM4OXH3byt4ZQMiBH32bFeYhaLdop5HtP5Q40E5YK5o,661
90
+ veadk/integrations/ve_faas/web_template/{{cookiecutter.local_dir_name}}/src/templates/admin/posts.html,sha256=RW7zPXzkwEbxs1imSTa2THNVsfE6YHN0qEqKbRbE0dI,1810
68
91
  veadk/integrations/ve_prompt_pilot/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
69
92
  veadk/integrations/ve_prompt_pilot/ve_prompt_pilot.py,sha256=mwBXkKOcwHgnMN3KMkVHFw9F9w1ydgQb-e4iaNjgJNQ,2833
93
+ veadk/integrations/ve_tos/ve_tos.py,sha256=FNQmNdR0TqJOFahr9_uNU8V5Oncp6rT3XfpTRLO7rHo,8556
70
94
  veadk/knowledgebase/__init__.py,sha256=k-5WM0DAqNq94Dg64Rl12ozoS1BnE9i-MY_ZOR2s2CQ,705
71
- veadk/knowledgebase/knowledgebase.py,sha256=y_XmlAy2szsDjD6r9orD9ZsEJLfikVN5-wCZ2sSx674,3042
95
+ veadk/knowledgebase/knowledgebase.py,sha256=i5UNsctnCO5uq2gUvYZNwan-xcu_qu7JZHbh7PsSoWI,3433
72
96
  veadk/memory/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
73
97
  veadk/memory/long_term_memory.py,sha256=quRUcxSCbaxtjVVPc076daIsBPwAWmoSF_2XGvw97LU,5651
74
98
  veadk/memory/short_term_memory.py,sha256=iKBOQunBlbu1xpiezdunwrxb_DDreZgijJzk-Ze-2jM,4390
@@ -82,41 +106,44 @@ veadk/tools/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
82
106
  veadk/tools/demo_tools.py,sha256=Gu3sxygcYVS2cv3WqUOl-Gq4JhMlDAktoCHOFT0gbFQ,2216
83
107
  veadk/tools/load_knowledgebase_tool.py,sha256=n6RS-_EXfKgHDre0xFOQ85N_k8eD0H66F1YwbtEazs8,4380
84
108
  veadk/tools/builtin_tools/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
109
+ veadk/tools/builtin_tools/image_edit.py,sha256=kqff0gB6C1jzLaNv3Rg9yjHL4weo6WVvcRNGj_nGmPY,8871
110
+ veadk/tools/builtin_tools/image_generate.py,sha256=kcZ5hu4dfovDZ8zgs7DwBb2jwcLph2KXrLtiRFoZeiQ,8817
85
111
  veadk/tools/builtin_tools/lark.py,sha256=b2IWsN8fZFh9aweSGznaOqA30TCOLpVjNCDNa1LHZl4,2046
86
112
  veadk/tools/builtin_tools/las.py,sha256=rgKfnK5GsHVbmkp-rc7rtCvWg-yYNxMjeV0ayCyRpjM,913
87
113
  veadk/tools/builtin_tools/mcp_router.py,sha256=l3xcIHAHQ0AGCZG3mYyhwM0btqEMDe4TY2S-UYUM8M0,883
88
114
  veadk/tools/builtin_tools/vesearch.py,sha256=W8PZ-OivYT8DDLeQXsSem_iwxFUDWBNRLZZv8fEp1EE,1739
115
+ veadk/tools/builtin_tools/video_generate.py,sha256=DXOEnzR34FEQ8noZ4uJDc7LSmP85EFEWzzVRnkAHiL0,14184
89
116
  veadk/tools/builtin_tools/web_scraper.py,sha256=Ob9wENBUTCtATd3ASthB5ih71iSUrAwnfzhb-UYhaoE,2386
90
117
  veadk/tools/builtin_tools/web_search.py,sha256=IzthoJLzY7u8Nb3GqQQiWBroxV4vN2fEon56KrR4OrE,5734
91
118
  veadk/tools/sandbox/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
92
- veadk/tools/sandbox/browser_sandbox.py,sha256=8pxFVAYKmdP8Sdhssq2Btqx1JjFGdGgaRSno8tbPwzg,894
93
- veadk/tools/sandbox/code_sandbox.py,sha256=G9k4F3RDSstmFbsWzfSIWGU_TOPV2yFAH3-MWeGXyAo,968
94
- veadk/tools/sandbox/computer_sandbox.py,sha256=DOv5RTanSWiJNhpL0htITGxL3dkiUw76UiYw0_YZ7U4,897
119
+ veadk/tools/sandbox/browser_sandbox.py,sha256=2YxGM8BIQ1uCY73FDfkWWq72cOCFbp6YLsXIqRWEoSM,1172
120
+ veadk/tools/sandbox/code_sandbox.py,sha256=iOB7XxJxbckmnXOOUwzQ5t_0Tq1IA3JITEywKB6t7oM,1244
121
+ veadk/tools/sandbox/computer_sandbox.py,sha256=e0d3pwaxBbLLihK-rFv2tUU7bmAwPTvSphr2fC9bJBo,1150
95
122
  veadk/tracing/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
96
- veadk/tracing/base_tracer.py,sha256=tJzap_QRZDmq9TRZdkJZOqf2gqBRjYyXk4e4cobf4Ts,1839
123
+ veadk/tracing/base_tracer.py,sha256=AQQopQ81Y1dGt3BF1iT8el5iSJC7HH5NrW9sU9R92v8,1098
97
124
  veadk/tracing/telemetry/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
98
- veadk/tracing/telemetry/opentelemetry_tracer.py,sha256=pxK_1WURm7FFW6rog-yYg2uQxRlS-z5qQQg6AmteJY4,7336
99
- veadk/tracing/telemetry/telemetry.py,sha256=1m5F5s57lT6UZ0v4F8wzU724WqHRXT7tam1hs3C8NfM,5296
125
+ veadk/tracing/telemetry/opentelemetry_tracer.py,sha256=MQjAgN0ONvjnUTuK59XbJJBfSsz2gw85DeM0-vk0aJA,7714
126
+ veadk/tracing/telemetry/telemetry.py,sha256=DYKwuD_V96YWOfj08ItQeGrNLtKpTF6TgRrly8RBu-Q,9283
100
127
  veadk/tracing/telemetry/attributes/attributes.py,sha256=t08vbKenendKdlUrs3Q94p5F8TZEjh-oewBE5ABWDsE,1074
101
- veadk/tracing/telemetry/attributes/extractors/common_attributes_extractors.py,sha256=1y2z3Ja6FwHvw1YiPlyrTcgKI4s-5FrbIi1pfdc0PNQ,2594
102
- veadk/tracing/telemetry/attributes/extractors/llm_attributes_extractors.py,sha256=qiRCbqdcNgMt3tc9MIpQ_xLmt807zMYyod1PO0OkCQQ,15902
103
- veadk/tracing/telemetry/attributes/extractors/tool_attributes_extractors.py,sha256=hf7hr63pdnG5t14oxRsAPLqgoC9k-UTf9xZa_9z2vfw,2472
104
- veadk/tracing/telemetry/attributes/extractors/types.py,sha256=9K93smX6nQNeVr2DDP2ACfnN06X22XhPN2nHOt83KQ4,2532
128
+ veadk/tracing/telemetry/attributes/extractors/common_attributes_extractors.py,sha256=AcJEw9RFQskK0l9rii7BZJPJa-peHJtrWt8Ge0R5fLU,2753
129
+ veadk/tracing/telemetry/attributes/extractors/llm_attributes_extractors.py,sha256=-FFcqIJnS1IILy-k87FG6OHf-ft89EwvGE32O0g0OPE,24572
130
+ veadk/tracing/telemetry/attributes/extractors/tool_attributes_extractors.py,sha256=FjhSn69yfk7kdgEql7ne9PeIOnxEItMS06RqGMqIMAQ,2722
131
+ veadk/tracing/telemetry/attributes/extractors/types.py,sha256=ggyB2I42B6I5YqymqF7s8znFFu1rp887E6Gq4gXSEJ8,3077
105
132
  veadk/tracing/telemetry/exporters/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
106
133
  veadk/tracing/telemetry/exporters/apmplus_exporter.py,sha256=Z_r7vv4nMKNVX__gooFMYI3NYbDRSD7pZ-cx_vUjXdk,5977
107
134
  veadk/tracing/telemetry/exporters/base_exporter.py,sha256=uwYhOI2xP8JDjYc99S2zolYSzjh7lgwHT0T8O4XB5Po,1184
108
135
  veadk/tracing/telemetry/exporters/cozeloop_exporter.py,sha256=moe7UE0p1vMJ1Wa-eQTo5nPlszDTYA6LX9nJt9i5jiw,2561
109
- veadk/tracing/telemetry/exporters/inmemory_exporter.py,sha256=_WadIdE-qgxkdxhxsaSuj3tN8RHt9EBkKtIwTsQqX3w,3773
136
+ veadk/tracing/telemetry/exporters/inmemory_exporter.py,sha256=bDsoGtwUI90sgwF4fomVSbZbvMK5Kgvc3LtWainN_wM,3824
110
137
  veadk/tracing/telemetry/exporters/tls_exporter.py,sha256=sbNG6Tm-wMBqepxBR64sKoRq3uraj4nOP8WtCldD-FQ,2758
111
138
  veadk/utils/__init__.py,sha256=pkSabKw7_ai4NOo56pXKL40EcaxIDh6HYxPXOY7qWbo,634
112
139
  veadk/utils/logger.py,sha256=IeoLzHVOm7XaHNSSBKkzgKzqzLvt71wUN2jjRtllCfo,1601
113
140
  veadk/utils/mcp_utils.py,sha256=aET7pX3LXmRe2-Jh7_xRvxrVyl1dN7uPAUk16luwMlQ,1525
114
- veadk/utils/misc.py,sha256=HMA4pdG-dyLkiIkb3k1NYrWHY2kvFeZ6zXhDVfq7LC4,2075
141
+ veadk/utils/misc.py,sha256=qsEdlm644ISrs6hVj4ICjYhzvvGRDMTP6dTN6uwzfNI,3157
115
142
  veadk/utils/patches.py,sha256=dcHdlJ8IciyMjDuMy6-_6McUqJYyLz0yHmJ0xH8lWOw,2752
116
143
  veadk/utils/volcengine_sign.py,sha256=cU5CucU6MXV2FY8qLs7hWVwSO87_Opk-lgNnW9HYs_o,6498
117
- veadk_python-0.2.4.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
118
- veadk_python-0.2.4.dist-info/METADATA,sha256=MQW8nJP-CUd-ZbG14gv7YODrW1ITNdN0NWqDnP9_E9c,17668
119
- veadk_python-0.2.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
120
- veadk_python-0.2.4.dist-info/entry_points.txt,sha256=-g28D6dNV-2UvAiRP9VF0oOVSDSJ5zlLUIZ34ArAqF8,46
121
- veadk_python-0.2.4.dist-info/top_level.txt,sha256=Qqi3ycJ4anKiZWBXtUBIy8zK9ZuXJsFa05oFq8O8qqY,6
122
- veadk_python-0.2.4.dist-info/RECORD,,
144
+ veadk_python-0.2.6.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
145
+ veadk_python-0.2.6.dist-info/METADATA,sha256=FBQnDR34UKqe4CSor2xrNXAGwTsClIJ2JBLteLdhaQI,17668
146
+ veadk_python-0.2.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
147
+ veadk_python-0.2.6.dist-info/entry_points.txt,sha256=-g28D6dNV-2UvAiRP9VF0oOVSDSJ5zlLUIZ34ArAqF8,46
148
+ veadk_python-0.2.6.dist-info/top_level.txt,sha256=Qqi3ycJ4anKiZWBXtUBIy8zK9ZuXJsFa05oFq8O8qqY,6
149
+ veadk_python-0.2.6.dist-info/RECORD,,