versionhq 1.1.7.9__py3-none-any.whl → 1.1.8__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 CHANGED
@@ -17,7 +17,7 @@ from versionhq.team.model import Team, TeamOutput
17
17
  from versionhq.tool.model import Tool
18
18
 
19
19
 
20
- __version__ = "1.1.7.9"
20
+ __version__ = "1.1.8"
21
21
  __all__ = [
22
22
  "Agent",
23
23
  "Customer",
@@ -11,11 +11,9 @@ from versionhq._utils.logger import Logger
11
11
 
12
12
  load_dotenv(override=True)
13
13
 
14
-
15
14
  def fetch_db_storage_path():
16
- project_directory_name = os.environ.get("STORAGE_DIR", Path.cwd().name)
17
- app_author = "versionhq"
18
- data_dir = Path(appdirs.user_data_dir(project_directory_name, app_author))
15
+ directory_name = Path.cwd().name
16
+ data_dir = Path(appdirs.user_data_dir(appname=directory_name, appauthor="Version IO Sdn Bhd.", version=None, roaming=False))
19
17
  data_dir.mkdir(parents=True, exist_ok=True)
20
18
  return data_dir
21
19
 
@@ -39,25 +37,25 @@ class TaskOutputSQLiteStorage:
39
37
  Initializes the SQLite database and creates LTM table.
40
38
  """
41
39
 
42
- try:
43
- with sqlite3.connect(self.db_path) as conn:
44
- cursor = conn.cursor()
45
- cursor.execute(
46
- """
47
- CREATE TABLE IF NOT EXISTS task_outputs (
48
- task_id TEXT PRIMARY KEY,
49
- output JSON,
50
- task_index INTEGER,
51
- inputs JSON,
52
- was_replayed BOOLEAN,
53
- timestamp DATETIME DEFAULT CURRENT_TIMESTAMP
54
- )
40
+ # try:
41
+ with sqlite3.connect(self.db_path) as conn:
42
+ cursor = conn.cursor()
43
+ cursor.execute(
55
44
  """
45
+ CREATE TABLE IF NOT EXISTS task_outputs (
46
+ task_id TEXT PRIMARY KEY,
47
+ output JSON,
48
+ task_index INTEGER,
49
+ inputs JSON,
50
+ was_replayed BOOLEAN,
51
+ timestamp DATETIME DEFAULT CURRENT_TIMESTAMP
56
52
  )
57
- conn.commit()
53
+ """
54
+ )
55
+ conn.commit()
58
56
 
59
- except sqlite3.Error as e:
60
- self._logger.log(level="error", message=f"DATABASE INITIALIZATION ERROR: {e}", color="red")
57
+ # except sqlite3.Error as e:
58
+ # self._logger.log(level="error", message=f"DATABASE INITIALIZATION ERROR: {e}", color="red")
61
59
 
62
60
 
63
61
  def add(self, task, output: Dict[str, Any], task_index: int, was_replayed: bool = False, inputs: Dict[str, Any] = {}):
@@ -81,13 +79,12 @@ class TaskOutputSQLiteStorage:
81
79
  try:
82
80
  with sqlite3.connect(self.db_path) as conn:
83
81
  cursor = conn.cursor()
84
-
85
82
  fields, values = [], []
86
83
  for k, v in kwargs.items():
87
84
  fields.append(f"{k} = ?")
88
85
  values.append(json.dumps(v) if isinstance(v, dict) else v)
89
86
 
90
- query = f"UPDATE latest_kickoff_task_outputs SET {', '.join(fields)} WHERE task_index = ?" # nosec
87
+ query = f"UPDATE latest_kickoff_task_outputs SET {', '.join(fields)} WHERE task_index = ?"
91
88
  values.append(task_index)
92
89
  cursor.execute(query, tuple(values))
93
90
  conn.commit()
versionhq/task/model.py CHANGED
@@ -206,10 +206,10 @@ Your outputs MUST adhere to the following format and should NOT include any irre
206
206
  @property
207
207
  def summary(self) -> str:
208
208
  return f"""
209
- Task: {self.id} - {self.description}
210
- "task_description": {self.description}
211
- "task_expected_output": {self.output_prompt}
212
- "task_tools": {", ".join([tool_called.tool.name for tool_called in self.tools_called])}
209
+ Task ID: {str(self.id)}
210
+ "Description": {self.description}
211
+ "Prompt": {self.output_prompt}
212
+ "Tools": {", ".join([tool_called.tool.name for tool_called in self.tools_called])}
213
213
  """
214
214
 
215
215
 
@@ -382,11 +382,7 @@ Your outputs MUST adhere to the following format and should NOT include any irre
382
382
  """
383
383
 
384
384
  future: Future[TaskOutput] = Future()
385
- threading.Thread(
386
- daemon=True,
387
- target=self._execute_task_async,
388
- args=(agent, context, tools, future),
389
- ).start()
385
+ threading.Thread(daemon=True, target=self._execute_task_async, args=(agent, context, tools, future)).start()
390
386
  return future
391
387
 
392
388
 
versionhq/team/model.py CHANGED
@@ -123,7 +123,7 @@ class Team(BaseModel):
123
123
  __hash__ = object.__hash__
124
124
  _execution_span: Any = PrivateAttr()
125
125
  _logger: Logger = PrivateAttr()
126
- # _inputs: Optional[Dict[str, Any]] = PrivateAttr(default=None)
126
+ _inputs: Optional[Dict[str, Any]] = PrivateAttr(default=None)
127
127
 
128
128
  id: UUID4 = Field(default_factory=uuid.uuid4, frozen=True)
129
129
  name: Optional[str] = Field(default=None)
@@ -382,14 +382,13 @@ class Team(BaseModel):
382
382
  futures.append((task, future, task_index))
383
383
  else:
384
384
  context = create_raw_outputs(tasks=[task,], task_outputs=([last_sync_output,] if last_sync_output else [] ))
385
- task_output = task.execute_sync(agent=responsible_agent, context=context, tools=responsible_agent.tools
386
- )
385
+ task_output = task.execute_sync(agent=responsible_agent, context=context, tools=responsible_agent.tools)
387
386
  if responsible_agent is self.manager_agent:
388
387
  lead_task_output = task_output
389
388
 
390
389
  task_outputs.append(task_output)
391
390
  # self._process_task_result(task, task_output)
392
- task._store_execution_log(task_index, was_replayed)
391
+ task._store_execution_log(task_index, was_replayed, self._inputs)
393
392
 
394
393
 
395
394
  if futures:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: versionhq
3
- Version: 1.1.7.9
3
+ Version: 1.1.8
4
4
  Summary: LLM orchestration frameworks for model-agnostic AI agents that handle complex outbound workflows
5
5
  Author-email: Kuriko Iwai <kuriko@versi0n.io>
6
6
  License: MIT License
@@ -1,4 +1,4 @@
1
- versionhq/__init__.py,sha256=bz4C48jhCjkQjethRmtw4_Ha_3OUdDDytk6PBCemiZU,871
1
+ versionhq/__init__.py,sha256=YtlTcx7b6upkn7qw-E_a5JS6NBXrhuyaRX4acr10Goc,869
2
2
  versionhq/_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  versionhq/_utils/cache_handler.py,sha256=zDQKzIn7vp-M2-uepHFxgJstjfftZS5mzXKL_-4uVvI,370
4
4
  versionhq/_utils/i18n.py,sha256=TwA_PnYfDLA6VqlUDPuybdV9lgi3Frh_ASsb_X8jJo8,1483
@@ -23,20 +23,20 @@ versionhq/llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
23
  versionhq/llm/llm_vars.py,sha256=YZoXqFBW7XpclUZ14_AAz7WOjoyCXnGcI959GSpX2q0,5343
24
24
  versionhq/llm/model.py,sha256=mXzSuf1s6MebGT7_yqgNppde0NIlAF8bjIXAp2MZ9Uw,8247
25
25
  versionhq/storage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
- versionhq/storage/task_output_storage.py,sha256=RxvF_lSRUuo2Af3zMAuc1aOymx1e6e_5VJ2y757_Hu0,4910
26
+ versionhq/storage/task_output_storage.py,sha256=xoBJHeqUyQt6iJoR1WQTghP-fyxXL66qslpX1QC2-4o,4827
27
27
  versionhq/task/__init__.py,sha256=g4mCATnn1mUXxsfQ5p6IpPawr8O421wVIT8kMKEcxQw,180
28
28
  versionhq/task/formatter.py,sha256=N8Kmk9vtrMtBdgJ8J7RmlKNMdZWSmV8O1bDexmCWgU0,643
29
29
  versionhq/task/log_handler.py,sha256=KJRrcNZgFSKhlNzvtYFnvtp6xukaF1s7ifX9u4zWrN8,1683
30
- versionhq/task/model.py,sha256=bUmERE6AZfs8qh2Hb9LES5BLUlXrkrOUyWxCU27M1ic,19317
30
+ versionhq/task/model.py,sha256=GoLri5JNn6k8vqOZF1JYQlGM4Nfn4vBFfNxHat4JTro,19233
31
31
  versionhq/team/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
- versionhq/team/model.py,sha256=T_71FarXEzAxrTn_8yYVWMwLS9p-UxSovexZtHYnYn0,18066
32
+ versionhq/team/model.py,sha256=qO3HQ-ZtsiHVQ9gWPSnG2ZHMdnh0yBeJBImH4M5_5no,18029
33
33
  versionhq/team/team_planner.py,sha256=B1UOn_DYVVterUn2CAd80jfO4sViJCCXPJA3abSSugg,2143
34
34
  versionhq/tool/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
35
  versionhq/tool/decorator.py,sha256=Y-j4jkoujD5LUvpe8uf3p5Zagk2XVaRKC9rkIE-2geo,1189
36
36
  versionhq/tool/model.py,sha256=s-y8323ikd5m5U2HG59ATgFW6L7yIFiPLLdOpeXQ8RI,6874
37
37
  versionhq/tool/tool_handler.py,sha256=esUqGp8HoREesai8fmh2klAf04Sjpsacmb03C7F6sNQ,1541
38
- versionhq-1.1.7.9.dist-info/LICENSE,sha256=7CCXuMrAjPVsUvZrsBq9DsxI2rLDUSYXR_qj4yO_ZII,1077
39
- versionhq-1.1.7.9.dist-info/METADATA,sha256=xv6DizWz6aDv59VePfs4pUnRClJK9WHuy-2T_4-_52g,15919
40
- versionhq-1.1.7.9.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
41
- versionhq-1.1.7.9.dist-info/top_level.txt,sha256=DClQwxDWqIUGeRJkA8vBlgeNsYZs4_nJWMonzFt5Wj0,10
42
- versionhq-1.1.7.9.dist-info/RECORD,,
38
+ versionhq-1.1.8.dist-info/LICENSE,sha256=7CCXuMrAjPVsUvZrsBq9DsxI2rLDUSYXR_qj4yO_ZII,1077
39
+ versionhq-1.1.8.dist-info/METADATA,sha256=SkS49iJDRvQY8La6yBICT8xvD19zM-GiYqnIjz_fsfE,15917
40
+ versionhq-1.1.8.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
41
+ versionhq-1.1.8.dist-info/top_level.txt,sha256=DClQwxDWqIUGeRJkA8vBlgeNsYZs4_nJWMonzFt5Wj0,10
42
+ versionhq-1.1.8.dist-info/RECORD,,