versionhq 1.2.2.1__tar.gz → 1.2.2.2__tar.gz

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 (148) hide show
  1. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/PKG-INFO +1 -1
  2. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/pyproject.toml +1 -1
  3. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/__init__.py +1 -1
  4. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/agent_network/model.py +2 -0
  5. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/knowledge/source_docling.py +4 -4
  6. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/memory/contextual_memory.py +37 -15
  7. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/storage/ltm_sqlite_storage.py +1 -1
  8. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq.egg-info/PKG-INFO +1 -1
  9. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/tests/usecase_test.py +15 -0
  10. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/uv.lock +197 -216
  11. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/.env.sample +0 -0
  12. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/.github/workflows/deploy_docs.yml +0 -0
  13. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/.github/workflows/publish.yml +0 -0
  14. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/.github/workflows/publish_testpypi.yml +0 -0
  15. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/.github/workflows/run_tests.yml +0 -0
  16. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/.github/workflows/security_check.yml +0 -0
  17. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/.gitignore +0 -0
  18. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/.pre-commit-config.yaml +0 -0
  19. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/.python-version +0 -0
  20. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/LICENSE +0 -0
  21. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/README.md +0 -0
  22. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/SECURITY.md +0 -0
  23. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/db/preprocess.py +0 -0
  24. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/docs/CNAME +0 -0
  25. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/docs/_logos/favicon.ico +0 -0
  26. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/docs/_logos/logo192.png +0 -0
  27. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/docs/core/agent/config.md +0 -0
  28. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/docs/core/agent/index.md +0 -0
  29. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/docs/core/agent/task-handling.md +0 -0
  30. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/docs/core/agent-network/config.md +0 -0
  31. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/docs/core/agent-network/form.md +0 -0
  32. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/docs/core/agent-network/index.md +0 -0
  33. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/docs/core/agent-network/ref.md +0 -0
  34. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/docs/core/llm/index.md +0 -0
  35. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/docs/core/task/evaluation.md +0 -0
  36. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/docs/core/task/index.md +0 -0
  37. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/docs/core/task/response-field.md +0 -0
  38. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/docs/core/task/task-execution.md +0 -0
  39. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/docs/core/task/task-output.md +0 -0
  40. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/docs/core/task/task-ref.md +0 -0
  41. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/docs/core/task/task-strc-response.md +0 -0
  42. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/docs/core/task-graph/index.md +0 -0
  43. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/docs/core/tool.md +0 -0
  44. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/docs/index.md +0 -0
  45. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/docs/quickstart.md +0 -0
  46. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/docs/stylesheets/main.css +0 -0
  47. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/docs/tags.md +0 -0
  48. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/mkdocs.yml +0 -0
  49. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/requirements-dev.txt +0 -0
  50. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/requirements.txt +0 -0
  51. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/runtime.txt +0 -0
  52. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/setup.cfg +0 -0
  53. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/_utils/__init__.py +0 -0
  54. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/_utils/i18n.py +0 -0
  55. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/_utils/logger.py +0 -0
  56. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/_utils/process_config.py +0 -0
  57. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/_utils/usage_metrics.py +0 -0
  58. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/_utils/vars.py +0 -0
  59. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/agent/TEMPLATES/Backstory.py +0 -0
  60. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/agent/TEMPLATES/__init__.py +0 -0
  61. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/agent/__init__.py +0 -0
  62. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/agent/inhouse_agents.py +0 -0
  63. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/agent/model.py +0 -0
  64. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/agent/parser.py +0 -0
  65. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/agent/rpm_controller.py +0 -0
  66. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/agent_network/__init__.py +0 -0
  67. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/agent_network/formation.py +0 -0
  68. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/cli/__init__.py +0 -0
  69. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/clients/__init__.py +0 -0
  70. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/clients/customer/__init__.py +0 -0
  71. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/clients/customer/model.py +0 -0
  72. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/clients/product/__init__.py +0 -0
  73. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/clients/product/model.py +0 -0
  74. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/clients/workflow/__init__.py +0 -0
  75. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/clients/workflow/model.py +0 -0
  76. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/knowledge/__init__.py +0 -0
  77. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/knowledge/_utils.py +0 -0
  78. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/knowledge/embedding.py +0 -0
  79. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/knowledge/model.py +0 -0
  80. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/knowledge/source.py +0 -0
  81. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/knowledge/storage.py +0 -0
  82. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/llm/__init__.py +0 -0
  83. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/llm/llm_vars.py +0 -0
  84. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/llm/model.py +0 -0
  85. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/memory/__init__.py +0 -0
  86. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/memory/model.py +0 -0
  87. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/storage/__init__.py +0 -0
  88. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/storage/base.py +0 -0
  89. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/storage/mem0_storage.py +0 -0
  90. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/storage/rag_storage.py +0 -0
  91. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/storage/task_output_storage.py +0 -0
  92. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/storage/utils.py +0 -0
  93. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/task/TEMPLATES/Description.py +0 -0
  94. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/task/__init__.py +0 -0
  95. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/task/evaluation.py +0 -0
  96. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/task/formatter.py +0 -0
  97. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/task/model.py +0 -0
  98. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/task/structured_response.py +0 -0
  99. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/task_graph/__init__.py +0 -0
  100. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/task_graph/colors.py +0 -0
  101. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/task_graph/draft.py +0 -0
  102. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/task_graph/model.py +0 -0
  103. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/tool/__init__.py +0 -0
  104. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/tool/cache_handler.py +0 -0
  105. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/tool/composio_tool.py +0 -0
  106. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/tool/composio_tool_vars.py +0 -0
  107. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/tool/decorator.py +0 -0
  108. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/tool/model.py +0 -0
  109. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq/tool/tool_handler.py +0 -0
  110. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq.egg-info/SOURCES.txt +0 -0
  111. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq.egg-info/dependency_links.txt +0 -0
  112. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq.egg-info/requires.txt +0 -0
  113. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/src/versionhq.egg-info/top_level.txt +0 -0
  114. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/tests/__init__.py +0 -0
  115. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/tests/agent/__init__.py +0 -0
  116. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/tests/agent/agent_test.py +0 -0
  117. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/tests/agent/doc_test.py +0 -0
  118. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/tests/agent_network/Prompts/Demo_test.py +0 -0
  119. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/tests/agent_network/__init__.py +0 -0
  120. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/tests/agent_network/agent_network_test.py +0 -0
  121. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/tests/agent_network/doc_test.py +0 -0
  122. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/tests/cli/__init__.py +0 -0
  123. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/tests/clients/customer_test.py +0 -0
  124. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/tests/clients/product_test.py +0 -0
  125. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/tests/clients/workflow_test.py +0 -0
  126. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/tests/conftest.py +0 -0
  127. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/tests/doc_test.py +0 -0
  128. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/tests/formation_test.py +0 -0
  129. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/tests/knowledge/__init__.py +0 -0
  130. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/tests/knowledge/knowledge_test.py +0 -0
  131. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/tests/knowledge/mock_report_compressed.pdf +0 -0
  132. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/tests/llm/__init__.py +0 -0
  133. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/tests/llm/llm_test.py +0 -0
  134. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/tests/memory/__init__.py +0 -0
  135. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/tests/memory/memory_test.py +0 -0
  136. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/tests/task/__init__.py +0 -0
  137. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/tests/task/doc_taskoutput_test.py +0 -0
  138. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/tests/task/doc_test.py +0 -0
  139. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/tests/task/eval_test.py +0 -0
  140. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/tests/task/llm_connection_test.py +0 -0
  141. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/tests/task/task_test.py +0 -0
  142. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/tests/task_graph/__init__.py +0 -0
  143. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/tests/task_graph/doc_test.py +0 -0
  144. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/tests/task_graph/task_graph_test.py +0 -0
  145. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/tests/tool/__init__.py +0 -0
  146. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/tests/tool/composio_test.py +0 -0
  147. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/tests/tool/doc_test.py +0 -0
  148. {versionhq-1.2.2.1 → versionhq-1.2.2.2}/tests/tool/tool_test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: versionhq
3
- Version: 1.2.2.1
3
+ Version: 1.2.2.2
4
4
  Summary: An agentic orchestration framework for building agent networks that handle task automation.
5
5
  Author-email: Kuriko Iwai <kuriko@versi0n.io>
6
6
  License: MIT License
@@ -15,7 +15,7 @@ exclude = ["test*", "__pycache__", "*.egg-info"]
15
15
 
16
16
  [project]
17
17
  name = "versionhq"
18
- version = "1.2.2.1"
18
+ version = "1.2.2.2"
19
19
  authors = [{ name = "Kuriko Iwai", email = "kuriko@versi0n.io" }]
20
20
  description = "An agentic orchestration framework for building agent networks that handle task automation."
21
21
  readme = "README.md"
@@ -31,7 +31,7 @@ from versionhq.agent_network.formation import form_agent_network
31
31
  from versionhq.task_graph.draft import workflow
32
32
 
33
33
 
34
- __version__ = "1.2.2.1"
34
+ __version__ = "1.2.2.2"
35
35
  __all__ = [
36
36
  "Agent",
37
37
 
@@ -263,6 +263,8 @@ class AgentNetwork(BaseModel):
263
263
  task = self.tasks[0]
264
264
  responsible_agent = self._get_responsible_agent(task=task)
265
265
  res = task.execute(agent=responsible_agent)
266
+ node = Node(task=task)
267
+ task_graph = TaskGraph(nodes={ node.identifier: node, }, concl=res if res else None)
266
268
  return res, task_graph
267
269
 
268
270
  nodes = [
@@ -9,10 +9,10 @@ try:
9
9
  from docling_core.transforms.chunker.hierarchical_chunker import HierarchicalChunker
10
10
  from docling_core.types.doc.document import DoclingDocument
11
11
  DOCLING_AVAILABLE = True
12
- except ImportError:
13
- import envoy
14
- envoy.run("uv add docling --optional docling")
15
- DOCLING_AVAILABLE = True
12
+ # except ImportError:
13
+ # import envoy
14
+ # envoy.run("uv add docling --optional docling")
15
+ # DOCLING_AVAILABLE = True
16
16
  except:
17
17
  DOCLING_AVAILABLE = False
18
18
 
@@ -23,25 +23,25 @@ class ContextualMemory:
23
23
  self.um = um
24
24
 
25
25
 
26
- def build_context_for_task(self, query: str = None) -> str:
27
- """
28
- Automatically builds a minimal, highly relevant set of contextual information for a given task.
29
- """
26
+ def _sanitize_query(self, query: str = None) -> str:
30
27
  if not query:
31
28
  return ""
32
29
 
33
- context = []
34
- context.append(self._fetch_stm_context(query))
35
- if self.memory_provider == "mem0":
36
- context.append(self._fetch_user_context(query))
37
- return "\n".join(filter(None, context))
30
+ return query.replace("{", "").replace("}", "")
38
31
 
39
32
 
40
- def _fetch_stm_context(self, query) -> str:
33
+ def _fetch_stm_context(self, query: str = None) -> str:
41
34
  """
42
- Fetches recent relevant insights from STM related to the task's description and expected_output, formatted as bullet points.
35
+ Fetches recent relevant insights from STM
43
36
  """
37
+ if not query:
38
+ return ""
39
+
40
+
44
41
  stm_results = self.stm.search(query)
42
+ if not stm_results:
43
+ return ""
44
+
45
45
  formatted_results = "\n".join(
46
46
  [
47
47
  f"- {result['memory'] if self.memory_provider == 'mem0' else result['context']}"
@@ -51,13 +51,16 @@ class ContextualMemory:
51
51
  return f"Recent Insights:\n{formatted_results}" if stm_results else ""
52
52
 
53
53
 
54
- def _fetch_ltm_context(self, task) -> Optional[str]:
54
+ def _fetch_ltm_context(self, query: str = None) -> Optional[str]:
55
55
  """
56
56
  Fetches historical data or insights from LTM that are relevant to the task's description and expected_output, formatted as bullet points.
57
57
  """
58
- ltm_results = self.ltm.search(task, latest_n=2)
58
+ if not query:
59
+ return ""
60
+
61
+ ltm_results = self.ltm.search(query, latest_n=2)
59
62
  if not ltm_results:
60
- return None
63
+ return ""
61
64
 
62
65
  formatted_results = [suggestion for result in ltm_results for suggestion in result["metadata"]["suggestions"]]
63
66
  formatted_results = list(dict.fromkeys(formatted_results))
@@ -65,10 +68,12 @@ class ContextualMemory:
65
68
  return f"Historical Data:\n{formatted_results}" if ltm_results else ""
66
69
 
67
70
 
68
- def _fetch_user_context(self, query: str) -> str:
71
+ def _fetch_user_context(self, query: str = None) -> str:
69
72
  """
70
73
  Fetches and formats relevant user information from User Memory.
71
74
  """
75
+ if not query:
76
+ return ""
72
77
 
73
78
  user_memories = self.um.search(query)
74
79
  if not user_memories:
@@ -78,6 +83,23 @@ class ContextualMemory:
78
83
  return f"User memories/preferences:\n{formatted_memories}"
79
84
 
80
85
 
86
+ def build_context_for_task(self, query: str = None) -> str:
87
+ """
88
+ Automatically builds a minimal, highly relevant set of contextual information for a given task.
89
+ """
90
+ if not query:
91
+ return ""
92
+
93
+ query = self._sanitize_query(query=query)
94
+
95
+ context = []
96
+ context.append(self._fetch_stm_context(query))
97
+ context.append(self._fetch_ltm_context(query))
98
+ if self.memory_provider == "mem0":
99
+ context.append(self._fetch_user_context(query))
100
+ return "\n".join(filter(None, context))
101
+
102
+
81
103
  # def _fetch_entity_context(self, query) -> str:
82
104
  # """
83
105
  # Fetches relevant entity information from Entity Memory related to the task's description and expected_output,
@@ -97,7 +97,7 @@ class LTMSQLiteStorage:
97
97
  ]
98
98
 
99
99
  except sqlite3.Error as e:
100
- self._logger.log(level="error", message=f"MEMORY ERROR: An error occurred while querying LTM: {e}",color="red")
100
+ self._logger.log(level="error", message=f"MEMORY ERROR: An error occurred while querying LTM: {str(e)}",color="red")
101
101
  return None
102
102
 
103
103
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: versionhq
3
- Version: 1.2.2.1
3
+ Version: 1.2.2.2
4
4
  Summary: An agentic orchestration framework for building agent networks that handle task automation.
5
5
  Author-email: Kuriko Iwai <kuriko@versi0n.io>
6
6
  License: MIT License
@@ -55,3 +55,18 @@ def test_demo_agent_customization():
55
55
  assert agent.llm.temperature == 1 and agent.llm.top_p == 0.1 and agent.llm.n == 1 and agent.llm.stop == "test"
56
56
  assert agent.knowledge_sources == ['https://business.linkedin.com', f'{current_path}/demo.csv',]
57
57
  assert agent.with_memory == True
58
+
59
+
60
+ def test_solo_tg_eval():
61
+ import versionhq as vhq
62
+
63
+ network = vhq.form_agent_network(
64
+ task="test",
65
+ expected_outcome="test"
66
+ )
67
+
68
+ res, tg = network.launch()
69
+ eval = tg.evaluate(
70
+ eval_criteria=["cost", "", "{criteria_3}"]
71
+ )
72
+ assert isinstance(eval, vhq.Evaluation)