versionhq 1.2.2.10__py3-none-any.whl → 1.2.3.1__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.
- versionhq/__init__.py +1 -1
- versionhq/clients/workflow/model.py +4 -71
- versionhq/task/TEMPLATES/Description.py +1 -1
- versionhq/task/evaluation.py +29 -61
- versionhq/task/model.py +11 -6
- versionhq/tool/rag_tool.py +5 -1
- {versionhq-1.2.2.10.dist-info → versionhq-1.2.3.1.dist-info}/METADATA +13 -16
- {versionhq-1.2.2.10.dist-info → versionhq-1.2.3.1.dist-info}/RECORD +11 -11
- {versionhq-1.2.2.10.dist-info → versionhq-1.2.3.1.dist-info}/LICENSE +0 -0
- {versionhq-1.2.2.10.dist-info → versionhq-1.2.3.1.dist-info}/WHEEL +0 -0
- {versionhq-1.2.2.10.dist-info → versionhq-1.2.3.1.dist-info}/top_level.txt +0 -0
versionhq/__init__.py
CHANGED
@@ -2,92 +2,25 @@ import uuid
|
|
2
2
|
from abc import ABC
|
3
3
|
from datetime import datetime
|
4
4
|
from typing import Any, Dict, List, Optional
|
5
|
-
|
5
|
+
|
6
6
|
from pydantic import UUID4, InstanceOf, BaseModel, ConfigDict, Field, field_validator, model_validator
|
7
7
|
from pydantic_core import PydanticCustomError
|
8
8
|
|
9
|
-
from versionhq.clients.product.model import Product
|
10
|
-
from versionhq.clients.customer.model import Customer
|
11
9
|
from versionhq.agent.model import Agent
|
12
10
|
from versionhq.agent_network.model import AgentNetwork
|
11
|
+
from versionhq.clients.product.model import Product
|
12
|
+
from versionhq.clients.customer.model import Customer
|
13
13
|
from versionhq.tool.composio_tool_vars import ComposioAppName
|
14
14
|
|
15
15
|
|
16
|
-
class ScoreFormat:
|
17
|
-
def __init__(self, rate: float | int = 0, weight: int = 1):
|
18
|
-
self.rate = rate
|
19
|
-
self.weight = weight
|
20
|
-
self.aggregate = rate * weight
|
21
|
-
|
22
|
-
|
23
|
-
class Score:
|
24
|
-
"""
|
25
|
-
Evaluate the score on 0 (no performance) to 1 scale.
|
26
|
-
`rate`: Any float from 0.0 to 1.0 given by an agent.
|
27
|
-
`weight`: Importance of each factor to the aggregated score.
|
28
|
-
"""
|
29
|
-
|
30
|
-
def __init__(
|
31
|
-
self,
|
32
|
-
brand_tone: ScoreFormat = ScoreFormat(0, 0),
|
33
|
-
audience: ScoreFormat = ScoreFormat(0, 0),
|
34
|
-
track_record: ScoreFormat = ScoreFormat(0, 0),
|
35
|
-
**kwargs: Optional[Dict[str, ScoreFormat]],
|
36
|
-
):
|
37
|
-
self.brand_tone = brand_tone
|
38
|
-
self.audience = audience
|
39
|
-
self.track_record = track_record
|
40
|
-
self.kwargs = kwargs
|
41
|
-
|
42
|
-
|
43
|
-
def result(self) -> int:
|
44
|
-
aggregate_score = int(self.brand_tone.aggregate) + int(self.audience.aggregate) + int(self.track_record.aggregate)
|
45
|
-
denominator = self.brand_tone.weight + self.audience.weight + self.track_record.weight
|
46
|
-
|
47
|
-
for k, v in self.kwargs.items():
|
48
|
-
aggregate_score += v.aggregate
|
49
|
-
denominator += v.weight
|
50
|
-
|
51
|
-
if denominator == 0:
|
52
|
-
return 0
|
53
|
-
|
54
|
-
return round(aggregate_score / denominator, 2)
|
55
|
-
|
56
|
-
|
57
|
-
|
58
16
|
class MessagingComponent(ABC, BaseModel):
|
59
17
|
layer_id: int = Field(default=0, description="add id of the layer: 0, 1, 2")
|
60
18
|
message: str = Field(default=None, max_length=1024, description="text message content to be sent")
|
61
|
-
score:
|
19
|
+
score: Optional[float | int] = Field(default=None)
|
62
20
|
condition: str = Field(default=None, description="condition to execute the next component")
|
63
21
|
interval: Optional[str] = Field(default=None, description="ideal interval to set to assess the condition")
|
64
22
|
|
65
23
|
|
66
|
-
def store_scoring_result(self, subject: str, score_raw: int | Score | ScoreFormat = None) -> Self:
|
67
|
-
"""
|
68
|
-
Set up the `score` field
|
69
|
-
"""
|
70
|
-
|
71
|
-
if isinstance(score_raw, Score):
|
72
|
-
setattr(self, "score", score_raw)
|
73
|
-
|
74
|
-
elif isinstance(score_raw, ScoreFormat):
|
75
|
-
score_instance = Score()
|
76
|
-
setattr(score_instance, subject, score_raw)
|
77
|
-
setattr(self, "score", score_instance)
|
78
|
-
|
79
|
-
elif isinstance(score_raw, int) or isinstance(score_raw, float):
|
80
|
-
score_instance, score_format_instance = Score(), ScoreFormat(rate=score_raw, weight=1)
|
81
|
-
setattr(score_instance, "kwargs", { subject: score_format_instance })
|
82
|
-
setattr(self, "score", score_instance)
|
83
|
-
|
84
|
-
else:
|
85
|
-
pass
|
86
|
-
|
87
|
-
return self
|
88
|
-
|
89
|
-
|
90
|
-
|
91
24
|
class MessagingWorkflow(ABC, BaseModel):
|
92
25
|
"""
|
93
26
|
Store 3 layers of messaging workflow sent to `customer` on the `product`
|
@@ -1,4 +1,4 @@
|
|
1
|
-
EVALUATE="""Evaluate the provided task output against the given task description, assigning a score between 0 (worst) and 1 (best) based on the specified criteria. Scores should be numerical (integers or decimals). Provide specific suggestions for improvement. Do not assign identical scores to different criteria unless otherwise you have clear reasons to do so:
|
1
|
+
EVALUATE="""Evaluate the provided task output against the given task description, assigning a score between 0 (worst) and 1 (best) based on the specified criteria. Scores should be numerical (integers or decimals). Weight should be numerical (integers or decimals) and represents importance of the criteria to the final result. Provide specific suggestions for improvement. Do not assign identical scores to different criteria unless otherwise you have clear reasons to do so:
|
2
2
|
Task output: {task_output}
|
3
3
|
Task description: {task_description}
|
4
4
|
Evaluation criteria: {eval_criteria}
|
versionhq/task/evaluation.py
CHANGED
@@ -2,63 +2,21 @@ from typing import List, Optional, Dict, Any
|
|
2
2
|
from typing_extensions import Self
|
3
3
|
|
4
4
|
from pydantic import BaseModel, model_validator
|
5
|
+
import pandas as pd
|
6
|
+
from sklearn.preprocessing import MinMaxScaler
|
5
7
|
|
6
8
|
from versionhq.memory.model import MemoryMetadata
|
7
9
|
|
8
|
-
"""
|
9
|
-
Evaluate task output from accuracy, token consumption, and latency perspectives, and mark the score from 0 to 1.
|
10
|
-
"""
|
11
|
-
|
12
|
-
|
13
|
-
class ScoreFormat:
|
14
|
-
def __init__(self, rate: float | int = 0, weight: int = 1):
|
15
|
-
self.rate = rate
|
16
|
-
self.weight = weight
|
17
|
-
self.aggregate = rate * weight
|
18
|
-
|
19
|
-
|
20
|
-
class Score:
|
21
|
-
"""
|
22
|
-
Evaluate the score on 0 (no performance) to 1 scale.
|
23
|
-
`rate`: Any float from 0.0 to 1.0 given by an agent.
|
24
|
-
`weight`: Importance of each factor to the aggregated score.
|
25
|
-
"""
|
26
|
-
|
27
|
-
def __init__(self, config: Optional[Dict[str, ScoreFormat]] = None):
|
28
|
-
self.config = config
|
29
|
-
|
30
|
-
if self.config:
|
31
|
-
for k, v in self.config.items():
|
32
|
-
if isinstance(v, ScoreFormat):
|
33
|
-
setattr(self, k, v)
|
34
|
-
|
35
|
-
|
36
|
-
def result(self) -> float:
|
37
|
-
aggregate_score, denominator = 0, 0
|
38
|
-
|
39
|
-
for k, v in self.__dict__.items():
|
40
|
-
aggregate_score += v.aggregate
|
41
|
-
denominator += v.weight
|
42
|
-
|
43
|
-
if denominator == 0:
|
44
|
-
return 0
|
45
|
-
|
46
|
-
return round(aggregate_score / denominator, 3)
|
47
|
-
|
48
10
|
|
49
11
|
class EvaluationItem(BaseModel):
|
50
12
|
"""
|
51
13
|
A Pydantic class to store the evaluation result with scoring and suggestion based on the given criteria.
|
14
|
+
This class will be used as a response format for the eval task.
|
52
15
|
"""
|
53
16
|
criteria: str
|
54
17
|
suggestion: str
|
55
18
|
score: float
|
56
|
-
|
57
|
-
def _format_score(self, weight: int = 1) -> ScoreFormat | None:
|
58
|
-
if self.score and isinstance(self.score, float):
|
59
|
-
return ScoreFormat(rate=self.score, weight=weight)
|
60
|
-
|
61
|
-
else: return None
|
19
|
+
weight: int = 1
|
62
20
|
|
63
21
|
|
64
22
|
class Evaluation(BaseModel):
|
@@ -111,33 +69,43 @@ class Evaluation(BaseModel):
|
|
111
69
|
return shot_prompt
|
112
70
|
|
113
71
|
|
114
|
-
|
115
|
-
def aggregate_score(self) -> float:
|
72
|
+
def _normalize_df(self) -> pd.DataFrame:
|
116
73
|
"""
|
117
|
-
|
74
|
+
Creates a pandas DataFrame from a list of EvaluationItem objects containing 'weight' and 'score' columns, and normalizes them using MinMaxScaler.
|
75
|
+
|
76
|
+
Args:
|
77
|
+
items: A list of EvaluationItem objects.
|
78
|
+
|
79
|
+
Returns:
|
80
|
+
A pandas DataFrame with normalized 'weight' and 'score' columns, or an empty DataFrame if the input is empty.
|
118
81
|
"""
|
119
82
|
if not self.items:
|
120
|
-
return
|
83
|
+
return pd.DataFrame()
|
121
84
|
|
122
|
-
|
123
|
-
|
85
|
+
data = { 'weight': [item.weight for item in self.items], 'score': [item.score for item in self.items] }
|
86
|
+
df = pd.DataFrame(data)
|
124
87
|
|
125
|
-
|
126
|
-
|
127
|
-
aggregate_score += score_format.aggregate if score_format else 0
|
128
|
-
denominator += score_format.weight if score_format else 0
|
88
|
+
scaler = MinMaxScaler(feature_range=(0, 1))
|
89
|
+
df[['weight', 'score']] = scaler.fit_transform(df[['weight', 'score']])
|
129
90
|
|
130
|
-
|
91
|
+
return df
|
92
|
+
|
93
|
+
|
94
|
+
@property
|
95
|
+
def aggregate_score(self) -> int | float:
|
96
|
+
if not self.items:
|
131
97
|
return 0
|
132
98
|
|
133
|
-
|
99
|
+
df = self._normalize_df()
|
100
|
+
df['weighted_score'] = df['weight'] * df['score']
|
101
|
+
aggregate_score = round(df['weighted_score'].sum(), 3)
|
102
|
+
return aggregate_score
|
134
103
|
|
135
104
|
|
136
105
|
@property
|
137
106
|
def suggestion_summary(self) -> str | None:
|
138
|
-
"""
|
139
|
-
|
140
|
-
"""
|
107
|
+
"""Returns a summary of the suggestions"""
|
108
|
+
|
141
109
|
if not self.items:
|
142
110
|
return None
|
143
111
|
|
versionhq/task/model.py
CHANGED
@@ -228,13 +228,21 @@ class TaskOutput(BaseModel):
|
|
228
228
|
self._tokens += task_eval._tokens
|
229
229
|
|
230
230
|
if res.pydantic:
|
231
|
-
item = EvaluationItem(
|
231
|
+
item = EvaluationItem(
|
232
|
+
score=res.pydantic.score,
|
233
|
+
weight=res.pydantic.weight,
|
234
|
+
suggestion=res.pydantic.suggestion,
|
235
|
+
criteria=res.pydantic.criteria
|
236
|
+
)
|
232
237
|
self.evaluation.items.append(item)
|
233
238
|
|
234
239
|
else:
|
235
240
|
try:
|
236
241
|
item = EvaluationItem(
|
237
|
-
score=float(res.json_dict["score"]),
|
242
|
+
score=float(res.json_dict["score"]),
|
243
|
+
weight=float(res.json_dict["weight"]),
|
244
|
+
suggestion=res.json_dict["suggestion"],
|
245
|
+
criteria=res.json_dict["criteria"]
|
238
246
|
)
|
239
247
|
self.evaluation.items.append(item)
|
240
248
|
except Exception as e:
|
@@ -246,10 +254,7 @@ class TaskOutput(BaseModel):
|
|
246
254
|
|
247
255
|
@property
|
248
256
|
def aggregate_score(self) -> float | int:
|
249
|
-
if self.evaluation is None
|
250
|
-
return 0
|
251
|
-
else:
|
252
|
-
self.evaluation.aggregate_score
|
257
|
+
return self.evaluation.aggregate_score if self.evaluation is not None else 0
|
253
258
|
|
254
259
|
|
255
260
|
@property
|
versionhq/tool/rag_tool.py
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
import re
|
2
2
|
import requests
|
3
|
-
import html2text
|
4
3
|
import gzip
|
5
4
|
import http.client
|
6
5
|
import urllib.request
|
@@ -37,6 +36,11 @@ class RagTool(BaseTool):
|
|
37
36
|
if isinstance(source_code, bytes):
|
38
37
|
source_code = source_code.decode('utf-8')
|
39
38
|
|
39
|
+
try:
|
40
|
+
import html2text
|
41
|
+
except:
|
42
|
+
Logger().log(message="Dependencies for tools are missing. Add tool packages by running: `uv add versionhq[tool]`.", color="red", level="error")
|
43
|
+
|
40
44
|
h = html2text.HTML2Text()
|
41
45
|
h.ignore_links = False
|
42
46
|
text = h.handle(source_code)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: versionhq
|
3
|
-
Version: 1.2.
|
3
|
+
Version: 1.2.3.1
|
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
|
@@ -34,13 +34,14 @@ Classifier: Programming Language :: Python
|
|
34
34
|
Classifier: Programming Language :: Python :: 3
|
35
35
|
Classifier: Programming Language :: Python :: 3.11
|
36
36
|
Classifier: Programming Language :: Python :: 3.12
|
37
|
+
Classifier: Programming Language :: Python :: 3.13
|
37
38
|
Classifier: License :: OSI Approved :: MIT License
|
38
39
|
Classifier: Operating System :: OS Independent
|
39
40
|
Classifier: Development Status :: 3 - Alpha
|
40
41
|
Classifier: Intended Audience :: Developers
|
41
42
|
Classifier: Intended Audience :: Information Technology
|
42
43
|
Classifier: Topic :: Software Development :: Build Tools
|
43
|
-
Requires-Python:
|
44
|
+
Requires-Python: >=3.11
|
44
45
|
Description-Content-Type: text/markdown
|
45
46
|
License-File: LICENSE
|
46
47
|
Requires-Dist: regex==2024.11.6
|
@@ -67,23 +68,24 @@ Requires-Dist: composio-core==0.7.0
|
|
67
68
|
Requires-Dist: networkx>=3.4.2
|
68
69
|
Requires-Dist: matplotlib>=3.10.0
|
69
70
|
Requires-Dist: boto3>=1.37.1
|
71
|
+
Requires-Dist: scikit-learn>=1.6.1
|
72
|
+
Requires-Dist: numpy>=1.26.4
|
73
|
+
Requires-Dist: pandas>=2.2.3
|
74
|
+
Provides-Extra: torch
|
75
|
+
Requires-Dist: torch>=2.6.0; extra == "torch"
|
76
|
+
Requires-Dist: torchvision>=0.21.0; extra == "torch"
|
77
|
+
Requires-Dist: pytorch-triton-xpu>=3.2.0; sys_platform == "linux" and extra == "torch"
|
70
78
|
Provides-Extra: docling
|
71
|
-
Requires-Dist: docling>=2.
|
79
|
+
Requires-Dist: docling>=2.25.2; extra == "docling"
|
72
80
|
Provides-Extra: mem0ai
|
73
81
|
Requires-Dist: mem0ai>=0.1.55; extra == "mem0ai"
|
74
82
|
Provides-Extra: pdfplumber
|
75
83
|
Requires-Dist: pdfplumber>=0.11.5; extra == "pdfplumber"
|
76
|
-
Provides-Extra: pandas
|
77
|
-
Requires-Dist: pandas>=2.2.3; extra == "pandas"
|
78
|
-
Provides-Extra: numpy
|
79
|
-
Requires-Dist: numpy>=1.26.4; extra == "numpy"
|
80
84
|
Provides-Extra: pygraphviz
|
81
85
|
Requires-Dist: pygraphviz>=1.14; extra == "pygraphviz"
|
82
86
|
Provides-Extra: tools
|
83
87
|
Requires-Dist: html2text>=2024.2.26; extra == "tools"
|
84
88
|
Requires-Dist: sec-api>=1.0.28; extra == "tools"
|
85
|
-
Provides-Extra: eval
|
86
|
-
Requires-Dist: scikit-learn>=1.6.1; extra == "eval"
|
87
89
|
|
88
90
|
# Overview
|
89
91
|
|
@@ -91,7 +93,7 @@ Requires-Dist: scikit-learn>=1.6.1; extra == "eval"
|
|
91
93
|

|
92
94
|
[](https://github.com/versionHQ/multi-agent-system/actions/workflows/publish.yml)
|
93
95
|

|
94
|
-

|
96
|
+

|
95
97
|

|
96
98
|
|
97
99
|
|
@@ -252,7 +254,7 @@ agent.update(
|
|
252
254
|
pip install versionhq
|
253
255
|
```
|
254
256
|
|
255
|
-
(Python 3.11
|
257
|
+
(Python 3.11 | 3.12 | 3.13)
|
256
258
|
|
257
259
|
|
258
260
|
### Launching an agent
|
@@ -384,7 +386,6 @@ Tasks can be delegated to a manager, peers within the agent network, or a comple
|
|
384
386
|
|
385
387
|
**Deployment**
|
386
388
|
|
387
|
-
* **Python**: Primary programming language. v3.12.x is recommended
|
388
389
|
* [uv](https://docs.astral.sh/uv/): Python package installer and resolver
|
389
390
|
* [pre-commit](https://pre-commit.com/): Manage and maintain pre-commit hooks
|
390
391
|
* [setuptools](https://pypi.org/project/setuptools/): Build python modules
|
@@ -473,8 +474,6 @@ pyproject.toml # Project config
|
|
473
474
|
uv sync --all-extras --no-extra pygraphviz
|
474
475
|
```
|
475
476
|
|
476
|
-
- `torch`/`Docling` related errors: Set up default Python version either `3.11.x` or `3.12.x` (same as AssertionError)
|
477
|
-
|
478
477
|
### Adding env secrets to .env file
|
479
478
|
|
480
479
|
Create `.env` file in the project root and add secret vars following `.env.sample` file.
|
@@ -580,8 +579,6 @@ Common issues and solutions:
|
|
580
579
|
|
581
580
|
* Memory errors: If processing large contracts, you may need to increase the available memory for the Python process.
|
582
581
|
|
583
|
-
* Issues related to the Python version: Docling/Pytorch is not ready for Python 3.13 as of Jan 2025. Use Python 3.12.x as default by running `uv venv --python 3.12.8` and `uv python pin 3.12.8`.
|
584
|
-
|
585
582
|
* Issues related to dependencies: `rm -rf uv.lock`, `uv cache clean`, `uv venv`, and run `uv pip install -r requirements.txt -v`.
|
586
583
|
|
587
584
|
* Issues related to agents and other systems: Check `.logs` directory located in the root directory for error messages and stack traces.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
versionhq/__init__.py,sha256=
|
1
|
+
versionhq/__init__.py,sha256=LPko4CGE6-EiJZ90ifes3Hg3LSLSOlcZmRZtGcNx-SU,2980
|
2
2
|
versionhq/_utils/__init__.py,sha256=d-vYVcORZKG-kkLe_fzE8VbViDpAk9DDOKe2fVK25ew,178
|
3
3
|
versionhq/_utils/i18n.py,sha256=TwA_PnYfDLA6VqlUDPuybdV9lgi3Frh_ASsb_X8jJo8,1483
|
4
4
|
versionhq/_utils/llm_as_a_judge.py,sha256=RM0oYfoeanuUyUL3Ewl6_8Xn1F5Axd285UMH46kxG1I,2378
|
@@ -23,7 +23,7 @@ versionhq/clients/customer/model.py,sha256=_AtaVVMm9MgCwrQ-HTRQ2oXUMKrSCEfZwE2Jd
|
|
23
23
|
versionhq/clients/product/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
24
24
|
versionhq/clients/product/model.py,sha256=3w__pug9XRe4LIm9wX8C8WKqi40r081Eb1q2vWk9UaU,3694
|
25
25
|
versionhq/clients/workflow/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
26
|
-
versionhq/clients/workflow/model.py,sha256=
|
26
|
+
versionhq/clients/workflow/model.py,sha256=_yCbmwzexjQqEGli7XX0vFG6yFnAOe9QDoMWQaU_qZE,3920
|
27
27
|
versionhq/knowledge/__init__.py,sha256=qW7IgssTA4_bFFV9ziOcYRfGjlq1c8bkb-HnfWknpuQ,567
|
28
28
|
versionhq/knowledge/_utils.py,sha256=YWRF8U533cfZes_gZqUvdj-K24MD2ri1R0gjc_aPYyc,402
|
29
29
|
versionhq/knowledge/embedding.py,sha256=KfHc__1THxb5jrg1EMrF-v944RDuIr2hE0l-MtM3Bp0,6826
|
@@ -45,11 +45,11 @@ versionhq/storage/rag_storage.py,sha256=bS2eE874obarYl-4hT6ZWYWTRsqtfuGpKgKzERmM
|
|
45
45
|
versionhq/storage/task_output_storage.py,sha256=M8vInLJ5idGAq17w1juHKXtyPyF-B-rK_P8UcqD-Px8,5357
|
46
46
|
versionhq/storage/utils.py,sha256=r5ghA_ktdR2IuzlzKqZYCjsNxztEMzyhWLneA4cFuWY,748
|
47
47
|
versionhq/task/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
48
|
-
versionhq/task/evaluation.py,sha256=
|
48
|
+
versionhq/task/evaluation.py,sha256=NmSAfyHLxXYQ7GuaFDLprlD3slGK5KuI3iammb0fK_A,3833
|
49
49
|
versionhq/task/formatter.py,sha256=N8Kmk9vtrMtBdgJ8J7RmlKNMdZWSmV8O1bDexmCWgU0,643
|
50
|
-
versionhq/task/model.py,sha256=
|
50
|
+
versionhq/task/model.py,sha256=8HQLzzAfM03gHL5M_7oL7UW-mZvI7rPCJ2Jxsv49VtI,29122
|
51
51
|
versionhq/task/structured_response.py,sha256=4q-hQPu7oMMHHXEzh9YW4SJ7N5eCZ7OfZ65juyl_jCI,5000
|
52
|
-
versionhq/task/TEMPLATES/Description.py,sha256=
|
52
|
+
versionhq/task/TEMPLATES/Description.py,sha256=hKhpbz0ztbkUMXz9KiL-P40fis9OB5ICOdL9jCtgAhU,864
|
53
53
|
versionhq/task_graph/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
54
54
|
versionhq/task_graph/colors.py,sha256=naJCx4Vho4iuJtbW8USUXb-M5uYvd5ds2p8qbjUfRus,669
|
55
55
|
versionhq/task_graph/draft.py,sha256=l18XacRsbDhAv6CvKMnUMI26IDuizA1UNWHbL1q5gn4,5099
|
@@ -60,10 +60,10 @@ versionhq/tool/composio_tool.py,sha256=IATfsEnF_1RPJyGtPBmAtEJh5XPcgDHpyG3SUR461
|
|
60
60
|
versionhq/tool/composio_tool_vars.py,sha256=FvBuEXsOQUYnN7RTFxT20kAkiEYkxWKkiVtgpqOzKZQ,1843
|
61
61
|
versionhq/tool/decorator.py,sha256=C4ZM7Xi2gwtEMaSeRo-geo_g_MAkY77WkSLkAuY0AyI,1205
|
62
62
|
versionhq/tool/model.py,sha256=Nc2f9frTK5tH4kh6EeEAk1Fi1w19kEXLOcsBwHCS1a4,12189
|
63
|
-
versionhq/tool/rag_tool.py,sha256=
|
63
|
+
versionhq/tool/rag_tool.py,sha256=dW5o-83V4bMFFJEj3PUm7XjblwrYJGmZVBlCpPj6CeM,3852
|
64
64
|
versionhq/tool/tool_handler.py,sha256=2m41K8qo5bGCCbwMFferEjT-XZ-mE9F0mDUOBkgivOI,1416
|
65
|
-
versionhq-1.2.
|
66
|
-
versionhq-1.2.
|
67
|
-
versionhq-1.2.
|
68
|
-
versionhq-1.2.
|
69
|
-
versionhq-1.2.
|
65
|
+
versionhq-1.2.3.1.dist-info/LICENSE,sha256=cRoGGdM73IiDs6nDWKqPlgSv7aR4n-qBXYnJlCMHCeE,1082
|
66
|
+
versionhq-1.2.3.1.dist-info/METADATA,sha256=Shh9wIIUGHZ8XIHQ2S1hvuZBYaSnkrVvqdFKXaI0Jyk,21415
|
67
|
+
versionhq-1.2.3.1.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
|
68
|
+
versionhq-1.2.3.1.dist-info/top_level.txt,sha256=DClQwxDWqIUGeRJkA8vBlgeNsYZs4_nJWMonzFt5Wj0,10
|
69
|
+
versionhq-1.2.3.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|