fusesell 1.2.3__tar.gz → 1.2.4__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.

Potentially problematic release.


This version of fusesell might be problematic. Click here for more details.

Files changed (43) hide show
  1. {fusesell-1.2.3/fusesell.egg-info → fusesell-1.2.4}/PKG-INFO +4 -2
  2. {fusesell-1.2.3 → fusesell-1.2.4}/README.md +5 -3
  3. {fusesell-1.2.3 → fusesell-1.2.4/fusesell.egg-info}/PKG-INFO +4 -2
  4. {fusesell-1.2.3 → fusesell-1.2.4}/fusesell_local/__init__.py +1 -1
  5. {fusesell-1.2.3 → fusesell-1.2.4}/fusesell_local/utils/data_manager.py +81 -4
  6. {fusesell-1.2.3 → fusesell-1.2.4}/pyproject.toml +1 -1
  7. {fusesell-1.2.3 → fusesell-1.2.4}/CHANGELOG.md +0 -0
  8. {fusesell-1.2.3 → fusesell-1.2.4}/LICENSE +0 -0
  9. {fusesell-1.2.3 → fusesell-1.2.4}/MANIFEST.in +0 -0
  10. {fusesell-1.2.3 → fusesell-1.2.4}/fusesell.egg-info/SOURCES.txt +0 -0
  11. {fusesell-1.2.3 → fusesell-1.2.4}/fusesell.egg-info/dependency_links.txt +0 -0
  12. {fusesell-1.2.3 → fusesell-1.2.4}/fusesell.egg-info/entry_points.txt +0 -0
  13. {fusesell-1.2.3 → fusesell-1.2.4}/fusesell.egg-info/requires.txt +0 -0
  14. {fusesell-1.2.3 → fusesell-1.2.4}/fusesell.egg-info/top_level.txt +0 -0
  15. {fusesell-1.2.3 → fusesell-1.2.4}/fusesell.py +0 -0
  16. {fusesell-1.2.3 → fusesell-1.2.4}/fusesell_local/api.py +0 -0
  17. {fusesell-1.2.3 → fusesell-1.2.4}/fusesell_local/cli.py +0 -0
  18. {fusesell-1.2.3 → fusesell-1.2.4}/fusesell_local/config/__init__.py +0 -0
  19. {fusesell-1.2.3 → fusesell-1.2.4}/fusesell_local/config/prompts.py +0 -0
  20. {fusesell-1.2.3 → fusesell-1.2.4}/fusesell_local/config/settings.py +0 -0
  21. {fusesell-1.2.3 → fusesell-1.2.4}/fusesell_local/pipeline.py +0 -0
  22. {fusesell-1.2.3 → fusesell-1.2.4}/fusesell_local/stages/__init__.py +0 -0
  23. {fusesell-1.2.3 → fusesell-1.2.4}/fusesell_local/stages/base_stage.py +0 -0
  24. {fusesell-1.2.3 → fusesell-1.2.4}/fusesell_local/stages/data_acquisition.py +0 -0
  25. {fusesell-1.2.3 → fusesell-1.2.4}/fusesell_local/stages/data_preparation.py +0 -0
  26. {fusesell-1.2.3 → fusesell-1.2.4}/fusesell_local/stages/follow_up.py +0 -0
  27. {fusesell-1.2.3 → fusesell-1.2.4}/fusesell_local/stages/initial_outreach.py +0 -0
  28. {fusesell-1.2.3 → fusesell-1.2.4}/fusesell_local/stages/lead_scoring.py +0 -0
  29. {fusesell-1.2.3 → fusesell-1.2.4}/fusesell_local/tests/conftest.py +0 -0
  30. {fusesell-1.2.3 → fusesell-1.2.4}/fusesell_local/tests/test_api.py +0 -0
  31. {fusesell-1.2.3 → fusesell-1.2.4}/fusesell_local/tests/test_cli.py +0 -0
  32. {fusesell-1.2.3 → fusesell-1.2.4}/fusesell_local/tests/test_data_manager_products.py +0 -0
  33. {fusesell-1.2.3 → fusesell-1.2.4}/fusesell_local/tests/test_data_manager_sales_process.py +0 -0
  34. {fusesell-1.2.3 → fusesell-1.2.4}/fusesell_local/tests/test_data_manager_teams.py +0 -0
  35. {fusesell-1.2.3 → fusesell-1.2.4}/fusesell_local/utils/__init__.py +0 -0
  36. {fusesell-1.2.3 → fusesell-1.2.4}/fusesell_local/utils/birthday_email_manager.py +0 -0
  37. {fusesell-1.2.3 → fusesell-1.2.4}/fusesell_local/utils/event_scheduler.py +0 -0
  38. {fusesell-1.2.3 → fusesell-1.2.4}/fusesell_local/utils/llm_client.py +0 -0
  39. {fusesell-1.2.3 → fusesell-1.2.4}/fusesell_local/utils/logger.py +0 -0
  40. {fusesell-1.2.3 → fusesell-1.2.4}/fusesell_local/utils/timezone_detector.py +0 -0
  41. {fusesell-1.2.3 → fusesell-1.2.4}/fusesell_local/utils/validators.py +0 -0
  42. {fusesell-1.2.3 → fusesell-1.2.4}/requirements.txt +0 -0
  43. {fusesell-1.2.3 → fusesell-1.2.4}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fusesell
3
- Version: 1.2.3
3
+ Version: 1.2.4
4
4
  Summary: Local implementation of FuseSell AI sales automation pipeline
5
5
  Author-email: FuseSell Team <team@fusesell.ai>
6
6
  License-Expression: MIT
@@ -45,7 +45,9 @@ Dynamic: license-file
45
45
 
46
46
  FuseSell Local is a production-ready implementation of the FuseSell AI sales automation system, converted from server-based YAML workflows to a comprehensive Python command-line tool with full data ownership and privacy control.
47
47
 
48
- > Latest release: `fusesell==1.2.1` is available on PyPI via `pip install fusesell`.
48
+ Latest release: `fusesell==1.2.1` is available on PyPI via `pip install fusesell`.
49
+
50
+ Contributors should review the [Repository Guidelines](AGENTS.md) before opening a pull request.
49
51
 
50
52
  ## 🚀 Complete Pipeline Overview
51
53
 
@@ -2,9 +2,11 @@
2
2
 
3
3
  **Complete AI-powered sales automation pipeline that runs entirely on your local machine.**
4
4
 
5
- FuseSell Local is a production-ready implementation of the FuseSell AI sales automation system, converted from server-based YAML workflows to a comprehensive Python command-line tool with full data ownership and privacy control.
6
-
7
- > Latest release: `fusesell==1.2.1` is available on PyPI via `pip install fusesell`.
5
+ FuseSell Local is a production-ready implementation of the FuseSell AI sales automation system, converted from server-based YAML workflows to a comprehensive Python command-line tool with full data ownership and privacy control.
6
+
7
+ Latest release: `fusesell==1.2.1` is available on PyPI via `pip install fusesell`.
8
+
9
+ Contributors should review the [Repository Guidelines](AGENTS.md) before opening a pull request.
8
10
 
9
11
  ## 🚀 Complete Pipeline Overview
10
12
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fusesell
3
- Version: 1.2.3
3
+ Version: 1.2.4
4
4
  Summary: Local implementation of FuseSell AI sales automation pipeline
5
5
  Author-email: FuseSell Team <team@fusesell.ai>
6
6
  License-Expression: MIT
@@ -45,7 +45,9 @@ Dynamic: license-file
45
45
 
46
46
  FuseSell Local is a production-ready implementation of the FuseSell AI sales automation system, converted from server-based YAML workflows to a comprehensive Python command-line tool with full data ownership and privacy control.
47
47
 
48
- > Latest release: `fusesell==1.2.1` is available on PyPI via `pip install fusesell`.
48
+ Latest release: `fusesell==1.2.1` is available on PyPI via `pip install fusesell`.
49
+
50
+ Contributors should review the [Repository Guidelines](AGENTS.md) before opening a pull request.
49
51
 
50
52
  ## 🚀 Complete Pipeline Overview
51
53
 
@@ -32,6 +32,6 @@ __all__ = [
32
32
  "validate_config",
33
33
  ]
34
34
 
35
- __version__ = "1.2.3"
35
+ __version__ = "1.2.4"
36
36
  __author__ = "FuseSell Team"
37
37
  __description__ = "Local implementation of FuseSell AI sales automation pipeline"
@@ -4,10 +4,10 @@ Handles SQLite database operations and local file management
4
4
  """
5
5
 
6
6
  import sqlite3
7
- import json
8
- import os
9
- import uuid
10
- from typing import Dict, Any, List, Optional, Union
7
+ import json
8
+ import os
9
+ import uuid
10
+ from typing import Dict, Any, List, Optional, Sequence, Union
11
11
  from datetime import datetime
12
12
  import logging
13
13
  from pathlib import Path
@@ -1408,6 +1408,83 @@ class LocalDataManager:
1408
1408
  self.logger.error(f"Failed to get team settings: {str(e)}")
1409
1409
  raise
1410
1410
 
1411
+ def build_team_settings_snapshot(
1412
+ self,
1413
+ team_id: str,
1414
+ sections: Optional[Sequence[str]] = None
1415
+ ) -> Dict[str, Any]:
1416
+ """
1417
+ Build a response payload containing team settings in the expected RealTimeX format.
1418
+
1419
+ Args:
1420
+ team_id: Team identifier
1421
+ sections: Optional sequence of section names to include. Accepts either
1422
+ full keys (e.g. ``gs_team_product``) or shorthand without the prefix.
1423
+
1424
+ Returns:
1425
+ Dictionary shaped as ``{"data": [{...}]}``. When no settings exist,
1426
+ returns ``{"data": []}``.
1427
+ """
1428
+ settings = self.get_team_settings(team_id)
1429
+ if not settings:
1430
+ return {"data": []}
1431
+
1432
+ available_fields = [
1433
+ 'gs_team_organization',
1434
+ 'gs_team_rep',
1435
+ 'gs_team_product',
1436
+ 'gs_team_schedule_time',
1437
+ 'gs_team_initial_outreach',
1438
+ 'gs_team_follow_up',
1439
+ 'gs_team_auto_interaction',
1440
+ 'gs_team_followup_schedule_time',
1441
+ 'gs_team_birthday_email',
1442
+ ]
1443
+
1444
+ if sections:
1445
+ normalized = set()
1446
+ for item in sections:
1447
+ if not item:
1448
+ continue
1449
+ item = item.strip()
1450
+ if not item:
1451
+ continue
1452
+ if item.startswith("gs_team_"):
1453
+ normalized.add(item)
1454
+ else:
1455
+ normalized.add(f"gs_team_{item}")
1456
+ fields_to_include = [field for field in available_fields if field in normalized]
1457
+ else:
1458
+ fields_to_include = available_fields
1459
+
1460
+ list_like_fields = {
1461
+ 'gs_team_organization',
1462
+ 'gs_team_rep',
1463
+ 'gs_team_product',
1464
+ 'gs_team_auto_interaction',
1465
+ }
1466
+
1467
+ snapshot: Dict[str, Any] = {}
1468
+ for field in fields_to_include:
1469
+ value = settings.get(field)
1470
+ if value is None:
1471
+ continue
1472
+
1473
+ if field in list_like_fields:
1474
+ if isinstance(value, list):
1475
+ snapshot[field] = value
1476
+ elif value:
1477
+ snapshot[field] = [value]
1478
+ else:
1479
+ snapshot[field] = []
1480
+ else:
1481
+ snapshot[field] = value
1482
+
1483
+ if not snapshot:
1484
+ return {"data": []}
1485
+
1486
+ return {"data": [snapshot]}
1487
+
1411
1488
  def _deserialize_product_row(self, row: sqlite3.Row) -> Dict[str, Any]:
1412
1489
  """
1413
1490
  Convert a product row into a dictionary with JSON fields parsed.
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "fusesell"
7
- version = "1.2.3"
7
+ version = "1.2.4"
8
8
  description = "Local implementation of FuseSell AI sales automation pipeline"
9
9
  readme = "README.md"
10
10
  license = "MIT"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes