fusesell 1.2.9__tar.gz → 1.3.1__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.9 → fusesell-1.3.1}/CHANGELOG.md +337 -314
  2. {fusesell-1.2.9/fusesell.egg-info → fusesell-1.3.1}/PKG-INFO +1 -1
  3. {fusesell-1.2.9 → fusesell-1.3.1/fusesell.egg-info}/PKG-INFO +1 -1
  4. {fusesell-1.2.9 → fusesell-1.3.1}/fusesell_local/__init__.py +1 -1
  5. {fusesell-1.2.9 → fusesell-1.3.1}/fusesell_local/stages/initial_outreach.py +438 -208
  6. {fusesell-1.2.9 → fusesell-1.3.1}/fusesell_local/utils/data_manager.py +8 -0
  7. {fusesell-1.2.9 → fusesell-1.3.1}/fusesell_local/utils/event_scheduler.py +1 -1
  8. {fusesell-1.2.9 → fusesell-1.3.1}/pyproject.toml +1 -1
  9. {fusesell-1.2.9 → fusesell-1.3.1}/LICENSE +0 -0
  10. {fusesell-1.2.9 → fusesell-1.3.1}/MANIFEST.in +0 -0
  11. {fusesell-1.2.9 → fusesell-1.3.1}/README.md +0 -0
  12. {fusesell-1.2.9 → fusesell-1.3.1}/fusesell.egg-info/SOURCES.txt +0 -0
  13. {fusesell-1.2.9 → fusesell-1.3.1}/fusesell.egg-info/dependency_links.txt +0 -0
  14. {fusesell-1.2.9 → fusesell-1.3.1}/fusesell.egg-info/entry_points.txt +0 -0
  15. {fusesell-1.2.9 → fusesell-1.3.1}/fusesell.egg-info/requires.txt +0 -0
  16. {fusesell-1.2.9 → fusesell-1.3.1}/fusesell.egg-info/top_level.txt +0 -0
  17. {fusesell-1.2.9 → fusesell-1.3.1}/fusesell.py +0 -0
  18. {fusesell-1.2.9 → fusesell-1.3.1}/fusesell_local/api.py +0 -0
  19. {fusesell-1.2.9 → fusesell-1.3.1}/fusesell_local/cli.py +0 -0
  20. {fusesell-1.2.9 → fusesell-1.3.1}/fusesell_local/config/__init__.py +0 -0
  21. {fusesell-1.2.9 → fusesell-1.3.1}/fusesell_local/config/prompts.py +0 -0
  22. {fusesell-1.2.9 → fusesell-1.3.1}/fusesell_local/config/settings.py +0 -0
  23. {fusesell-1.2.9 → fusesell-1.3.1}/fusesell_local/pipeline.py +0 -0
  24. {fusesell-1.2.9 → fusesell-1.3.1}/fusesell_local/stages/__init__.py +0 -0
  25. {fusesell-1.2.9 → fusesell-1.3.1}/fusesell_local/stages/base_stage.py +0 -0
  26. {fusesell-1.2.9 → fusesell-1.3.1}/fusesell_local/stages/data_acquisition.py +0 -0
  27. {fusesell-1.2.9 → fusesell-1.3.1}/fusesell_local/stages/data_preparation.py +0 -0
  28. {fusesell-1.2.9 → fusesell-1.3.1}/fusesell_local/stages/follow_up.py +0 -0
  29. {fusesell-1.2.9 → fusesell-1.3.1}/fusesell_local/stages/lead_scoring.py +0 -0
  30. {fusesell-1.2.9 → fusesell-1.3.1}/fusesell_local/tests/conftest.py +0 -0
  31. {fusesell-1.2.9 → fusesell-1.3.1}/fusesell_local/tests/test_api.py +0 -0
  32. {fusesell-1.2.9 → fusesell-1.3.1}/fusesell_local/tests/test_cli.py +0 -0
  33. {fusesell-1.2.9 → fusesell-1.3.1}/fusesell_local/tests/test_data_manager_products.py +0 -0
  34. {fusesell-1.2.9 → fusesell-1.3.1}/fusesell_local/tests/test_data_manager_sales_process.py +0 -0
  35. {fusesell-1.2.9 → fusesell-1.3.1}/fusesell_local/tests/test_data_manager_teams.py +0 -0
  36. {fusesell-1.2.9 → fusesell-1.3.1}/fusesell_local/utils/__init__.py +0 -0
  37. {fusesell-1.2.9 → fusesell-1.3.1}/fusesell_local/utils/birthday_email_manager.py +0 -0
  38. {fusesell-1.2.9 → fusesell-1.3.1}/fusesell_local/utils/llm_client.py +0 -0
  39. {fusesell-1.2.9 → fusesell-1.3.1}/fusesell_local/utils/logger.py +0 -0
  40. {fusesell-1.2.9 → fusesell-1.3.1}/fusesell_local/utils/timezone_detector.py +0 -0
  41. {fusesell-1.2.9 → fusesell-1.3.1}/fusesell_local/utils/validators.py +0 -0
  42. {fusesell-1.2.9 → fusesell-1.3.1}/requirements.txt +0 -0
  43. {fusesell-1.2.9 → fusesell-1.3.1}/setup.cfg +0 -0
@@ -1,315 +1,338 @@
1
- # Changelog
2
-
3
- All notable changes to FuseSell Local will be documented in this file.
4
-
5
- # [1.2.9] - 2025-10-24
6
-
7
- ### Changed
8
- - Primary sales rep metadata from gs_team_rep now flows into draft prompts, reminders, and signatures so outreach reflects the configured sender.
9
- - Reminder scheduling stores the Unix timestamp (cron_ts) alongside the ISO string for easier downstream filtering.
10
- - Greeting sanitizer standardises the first paragraph and removes duplicate salutations while keeping HTML formatting intact.
11
-
12
- ### Fixed
13
- - Removed [Your ...] placeholder leftovers inside LLM responses and ensured drafts remain valid HTML even when the model mixes plain text and bullet lists.
14
- - Reminder creation no longer fails when the data acquisition stage supplies the email address, and follow-up reminders inherit the same customer metadata.
15
-
16
- # [1.2.8] - 2025-10-24
17
-
18
- ### Changed
19
- - Initial outreach resolves the primary sales rep from `gs_team_rep` and injects their identity into prompts, reminders, and draft metadata so outreach reflects real team settings.
20
-
21
- ### Fixed
22
- - Sanitizes generated email bodies to replace or remove `[Your …]` placeholders, ensuring signatures contain actual values even when optional rep fields are missing.
23
- - Reminder scheduling now preserves merged contact emails so follow-up records always carry `customer_email` for downstream automations.
24
-
25
- # [1.2.7] - 2025-10-24
26
-
27
- ### Changed
28
- - RealTimeX sales-process normalization now forwards `recipient_address`, `recipient_name`, and `customer_email` into the FuseSell pipeline so prompt generation and scheduling have complete context.
29
- - Default outreach prompt replacements enrich customer metadata with toolkit-derived contact details and enforce first-name greetings to match server quality.
30
-
31
- ### Fixed
32
- - Initial outreach stage now records generated drafts in the pipeline summary, seeds reminder_task rows with toolkit credentials, and schedules follow-up events when `send_immediately` is false.
33
- - Prompt-based draft generation no longer skips scheduling due to missing email fields and guarantees outputs without unresolved placeholders.
34
-
35
- # [1.2.6] - 2025-10-24
36
-
37
- ### Added
38
- - Automatically seed packaged prompt, scoring, and template JSON files into the writable `fusesell_data/config` directory so fresh installs immediately pick up the default initial outreach draft prompt.
39
- - Draft generation now records the scheduled reminder metadata in stage output while mirroring the server’s `schedule_auto_run` behaviour locally.
40
-
41
- ### Fixed
42
- - Bundled configuration files are used as a fallback when the data directory is missing overrides, preventing empty prompt loads that previously produced low-quality duplicate drafts.
43
-
44
- # [1.2.5] - 2025-10-24
45
-
46
- ### Added
47
- - Local `reminder_task` table and scheduler plumbing so scheduled outreach mirrors the server flow and can be consumed by RealTimeX orchestration.
48
- - Initial outreach and follow-up stages now emit reminder metadata whenever emails are scheduled, including team/customer context.
49
-
50
- ### Changed
51
- - Event scheduler returns reminder IDs alongside scheduled events while preserving immutable default prompts when layering team overrides.
52
-
53
- # [1.2.3] - 2025-10-21
54
-
55
- ### Added
56
- - `LocalDataManager.search_products()` for server-compatible product filtering (status, keyword, limit, sort).
57
- - CLI `product list` flags and `list_products.py` filters wired to the new search helper.
58
- - Regression tests covering keyword search, sorting, and limiting behavior.
59
-
60
- ### Changed
61
- - `get_products_by_org` now delegates to the filtered search path to avoid loading inactive results.
62
- - Product management documentation updated for RealTimeX flows and CLI filter usage.
63
-
64
- # [1.2.2] - 2025-10-21
65
-
66
- ### Added
67
- - LocalDataManager regression tests covering product/team CRUD flows and sales process tracking helpers.
68
-
69
- ### Fixed
70
- - Default team settings seeding now targets the `gs_team_*` columns, preventing initialization failures on fresh databases.
71
-
72
- # [1.2.1] - 2025-10-21
73
-
74
- ### Changed
75
- - Expose `__version__`, `__author__`, and `__description__` at the top-level `fusesell` module for easier runtime inspection.
76
-
77
- ### Fixed
78
- - `import fusesell; fusesell.__version__` now reports the installed version instead of `unknown`.
79
-
80
- ## [1.2.0] - 2025-10-20
81
-
82
- ### Added
83
- - Packaged CLI access via `FuseSellCLI` export to support embedded runtimes and automated tests.
84
- - pytest coverage (`fusesell_local/tests/test_cli.py`) ensuring the CLI dry-run path remains stable.
85
-
86
- ### Changed
87
- - Distribution renamed to `fusesell` to align with upcoming PyPI publication; console entry point now resolves to `fusesell_local.cli:main`.
88
- - CLI implementation moved into `fusesell_local/cli.py`, with top-level `fusesell.py` delegating for backward compatibility.
89
- - Documentation refreshed to instruct `pip install fusesell` and demonstrate programmatic CLI reuse.
90
- - Published version `1.2.0` to PyPI under the `fusesell` distribution name.
91
-
92
- ### Fixed
93
- - Ensured package metadata includes the CLI module so installations via pip expose the `fusesell` console script.
94
-
95
- ## [1.1.0] - 2025-10-20
96
-
97
- ### Added
98
- - Library-first API (`fusesell_local.api`) exposing `build_config`, `execute_pipeline`, and supporting helpers for embedding FuseSell in external runtimes.
99
- - Public exports in `fusesell_local.__init__` so consumers can import `FuseSellPipeline` and the new helpers directly.
100
- - Programmatic configuration validation error (`ConfigValidationError`) for clearer failures in host applications.
101
-
102
- ### Changed
103
- - CLI now delegates configuration/build/validation/logging to the shared library utilities, ensuring consistent behaviour across CLI and embedded usage.
104
- - Pipeline context now forwards scheduling preferences (timezone, send_immediately, business hour fields) from configuration to stages.
105
-
106
- ### Fixed
107
- - Continuation validation correctly requires `selected_draft_id` when performing `draft_rewrite` or `send` actions.
108
-
109
- ## [1.0.0] - 2025-01-07
110
-
111
- ### Added - Core Infrastructure Complete
112
-
113
- #### CLI Interface
114
- - Complete command-line interface with 25+ configuration options
115
- - Comprehensive argument validation and error handling
116
- - Multiple output formats (JSON, YAML, text)
117
- - Dry-run mode for safe testing
118
- - Process continuation support for resuming executions
119
-
120
- #### Pipeline Engine
121
- - Full pipeline orchestration with stage control
122
- - Business logic validation extracted from original YAML workflows
123
- - Sequential stage execution with data flow management
124
- - Human-in-the-loop controls and approval points
125
- - Comprehensive error handling and recovery mechanisms
126
- - Execution tracking and detailed logging
127
-
128
- #### Data Management
129
- - SQLite database with complete schema for all data entities
130
- - CRUD operations for executions, customers, lead scores, and email drafts
131
- - Data export/import functionality for backup and migration
132
- - Local data storage ensuring complete data ownership
133
-
134
- #### Configuration System
135
- - Team-specific configuration management
136
- - Customizable LLM prompts for all stages
137
- - Configurable scoring criteria and email templates
138
- - JSON-based configuration files with validation
139
-
140
- #### LLM Integration
141
- - OpenAI GPT-4o-mini client with error handling
142
- - Structured response parsing and validation
143
- - Token usage tracking and optimization
144
- - Response caching and retry mechanisms
145
-
146
- #### Documentation
147
- - Comprehensive README with installation and usage instructions
148
- - Technical documentation covering architecture and APIs
149
- - Business logic documentation extracted from original system
150
- - Troubleshooting guide and development workflow
151
-
152
- ### Technical Details
153
-
154
- #### Project Structure
155
- ```
156
- fusesell-local/
157
- fusesell.py # Main CLI entry point
158
- requirements.txt # Python dependencies
159
- setup.py # Package installation
160
- README.md # User documentation
161
- TECHNICAL.md # Technical documentation
162
- CHANGELOG.md # This file
163
- business_logic.md # Business logic documentation
164
- fusesell_local/ # Main package
165
- pipeline.py # Pipeline orchestrator
166
- stages/ # Pipeline stages (base implementation)
167
- utils/ # Utilities (data, LLM, validation, logging)
168
- config/ # Configuration management
169
- fusesell_data/ # Local data storage
170
- config/ # Configuration files
171
- drafts/ # Generated email drafts
172
- logs/ # Execution logs
173
- ```
174
-
175
- #### Key Features Implemented
176
- - **Local Execution**: Complete data ownership with no external dependencies except LLM API
177
- - **Business Logic Preservation**: All orchestration intelligence from original YAML workflows
178
- - **Flexible Data Sources**: Support for websites, business cards, social media, and manual input
179
- - **Stage Control**: Skip stages, stop after specific stages, save intermediate results
180
- - **Process Continuation**: Resume executions from any point with specific actions
181
- - **Comprehensive Validation**: Input validation, configuration validation, and error handling
182
- - **Extensible Architecture**: Modular design for easy customization and extension
183
-
184
- #### Database Schema
185
- - `executions`: Execution tracking and metadata
186
- - `stage_results`: Individual stage outputs and status
187
- - `customers`: Customer profiles and contact information
188
- - `lead_scores`: Scoring results and recommendations
189
- - `email_drafts`: Generated email content and variations
190
-
191
- #### Configuration Files
192
- - `prompts.json`: LLM prompts for all stages
193
- - `scoring_criteria.json`: Lead scoring rules and weights
194
- - `email_templates.json`: Email template variations
195
- - `team_settings.json`: Team-specific configurations
196
-
197
- ### Next Phase - Stage Implementations
198
-
199
- The core infrastructure is complete and ready for individual stage implementations:
200
-
201
- #### Planned Stage Development
202
- 1. **Data Acquisition**: Website scraping, business card OCR, social media extraction
203
- 2. **Data Preparation**: AI-powered data structuring and pain point identification
204
- 3. **Lead Scoring**: Product-customer fit evaluation with detailed breakdowns
205
- 4. **Initial Outreach**: Personalized email generation with multiple approaches
206
- 5. **Follow-up**: Context-aware follow-up sequences and timing optimization
207
-
208
- #### Development Status
209
- - Core infrastructure (CLI, pipeline, database, configuration)
210
- - Business logic validation and orchestration rules
211
- - Process continuation and human-in-the-loop controls
212
- - Comprehensive documentation and user guides
213
- - Individual stage implementations (next development phase)
214
-
215
- ### Migration from Server-Based System
216
-
217
- This release represents a complete conversion of the server-based FuseSell system to a local implementation:
218
-
219
- #### Preserved Features
220
- - All business logic and orchestration intelligence
221
- - Team-specific prompts and configuration
222
- - Human approval workflows and controls
223
- - Comprehensive logging and execution tracking
224
- - Multi-stage pipeline with flexible control
225
-
226
- #### Enhanced Features
227
- - Complete local data ownership and privacy
228
- - Command-line interface with extensive options
229
- - Process continuation and recovery capabilities
230
- - Flexible data source handling
231
- - Enhanced error handling and validation
232
-
233
- #### Architectural Improvements
234
- - Modular, extensible design
235
- - Comprehensive input validation
236
- - Local SQLite database for performance
237
- - Configuration-driven customization
238
- - Detailed technical documentation
239
-
240
- ### Installation and Usage
241
-
242
- #### Requirements
243
- - Python 3.8+
244
- - OpenAI API key
245
- - 50MB disk space for installation
246
- - Additional space for data storage (varies by usage)
247
-
248
- #### Quick Start
249
- ```bash
250
- # Install dependencies
251
- pip install -r requirements.txt
252
-
253
- # Run basic execution
254
- python fusesell.py --openai-api-key YOUR_API_KEY \
255
- --org-id your_org \
256
- --org-name "Your Company" \
257
- --customer-website "https://example.com"
258
- ```
259
-
260
- #### Advanced Usage
261
- ```bash
262
- # Full pipeline with custom settings
263
- python fusesell.py --openai-api-key sk-xxx \
264
- --org-id rta \
265
- --org-name "RTA Corp" \
266
- --customer-website "https://example.com" \
267
- --customer-name "Acme Inc" \
268
- --contact-name "John Doe" \
269
- --team-id sales_team_1 \
270
- --language english \
271
- --output-format json \
272
- --data-dir ./custom_data
273
- ```
274
-
275
- ### Support and Development
276
-
277
- For technical support, feature requests, or contributions:
278
- - Review the technical documentation in `TECHNICAL.md`
279
- - Check the troubleshooting guide for common issues
280
- - Refer to the business logic documentation for workflow details
281
- - Contact the development team for advanced customization needs
282
-
283
- ---
284
-
285
- ## Future Releases
286
-
287
- ### [1.1.0] - Planned
288
- - Complete data acquisition stage implementation
289
- - Website scraping with content extraction
290
- - Business card OCR processing
291
- - Social media profile data extraction
292
-
293
- ### [1.2.0] - Planned
294
- - Complete data preparation stage implementation
295
- - AI-powered customer profiling
296
- - Pain point identification and analysis
297
- - Financial and technology stack analysis
298
-
299
- ### [1.3.0] - Planned
300
- - Complete lead scoring stage implementation
301
- - Product-customer fit evaluation
302
- - Detailed scoring breakdowns and recommendations
303
- - Multi-product scoring capabilities
304
-
305
- ### [1.4.0] - Planned
306
- - Complete initial outreach stage implementation
307
- - Personalized email generation
308
- - Multiple draft variations and approaches
309
- - Human review workflow integration
310
-
311
- ### [1.5.0] - Planned
312
- - Complete follow-up stage implementation
313
- - Context-aware follow-up sequences
314
- - Interaction history analysis
1
+ # Changelog
2
+
3
+ All notable changes to FuseSell Local will be documented in this file.
4
+
5
+ # [1.3.1] - 2025-10-24
6
+
7
+ ### Changed
8
+ - Fallback draft generation now produces approach-specific HTML emails, ensuring usable output even when the LLM call fails.
9
+ - Deterministic template emails and mock drafts reuse the resolved recipient data and signatures so every record stays HTML-compliant.
10
+
11
+ ### Fixed
12
+ - Normalized draft creation to wrap plain-text results in <html><body> and removed duplicate drafts that previously occurred when the template path was used.
13
+
14
+ # [1.3.0] - 2025-10-24
15
+
16
+ ### Added
17
+ - Bundled prompt seeding now copies packaged defaults into fusesell_data/config automatically, guaranteeing the initial outreach stage always finds the shipped templates on first run.
18
+
19
+ ### Changed
20
+ - Updated the default initial-outreach and follow-up prompts to require fully wrapped <html><body> content, enforce first-name greetings, and eliminate placeholder signatures so LLM drafts arrive production-ready.
21
+ - Sanitization logic normalizes generated emails into HTML (including fallback/mock drafts), injects recipient metadata, and reuses the calculated first name across prompt, rewrite, and reminder flows.
22
+ - Reminder scheduling now records Unix timestamps (cron_ts) for every new entry, simplifying downstream polling in RealTimeX orchestration.
23
+
24
+ ### Fixed
25
+ - Draft generation once again prioritises the LLM prompt path; fallback templates only trigger when the prompt fails to load, preventing duplicate plain-text emails.
26
+ - Rewrites, dry-run mocks, and fallback drafts no longer emit duplicate greetings or unresolved [Your ...] placeholders, and they retain HTML formatting for downstream mailers.
27
+
28
+ # [1.2.9] - 2025-10-24
29
+
30
+ ### Changed
31
+ - Primary sales rep metadata from gs_team_rep now flows into draft prompts, reminders, and signatures so outreach reflects the configured sender.
32
+ - Reminder scheduling stores the Unix timestamp (cron_ts) alongside the ISO string for easier downstream filtering.
33
+ - Greeting sanitizer standardises the first paragraph and removes duplicate salutations while keeping HTML formatting intact.
34
+
35
+ ### Fixed
36
+ - Removed [Your ...] placeholder leftovers inside LLM responses and ensured drafts remain valid HTML even when the model mixes plain text and bullet lists.
37
+ - Reminder creation no longer fails when the data acquisition stage supplies the email address, and follow-up reminders inherit the same customer metadata.
38
+
39
+ # [1.2.8] - 2025-10-24
40
+
41
+ ### Changed
42
+ - Initial outreach resolves the primary sales rep from `gs_team_rep` and injects their identity into prompts, reminders, and draft metadata so outreach reflects real team settings.
43
+
44
+ ### Fixed
45
+ - Sanitizes generated email bodies to replace or remove `[Your …]` placeholders, ensuring signatures contain actual values even when optional rep fields are missing.
46
+ - Reminder scheduling now preserves merged contact emails so follow-up records always carry `customer_email` for downstream automations.
47
+
48
+ # [1.2.7] - 2025-10-24
49
+
50
+ ### Changed
51
+ - RealTimeX sales-process normalization now forwards `recipient_address`, `recipient_name`, and `customer_email` into the FuseSell pipeline so prompt generation and scheduling have complete context.
52
+ - Default outreach prompt replacements enrich customer metadata with toolkit-derived contact details and enforce first-name greetings to match server quality.
53
+
54
+ ### Fixed
55
+ - Initial outreach stage now records generated drafts in the pipeline summary, seeds reminder_task rows with toolkit credentials, and schedules follow-up events when `send_immediately` is false.
56
+ - Prompt-based draft generation no longer skips scheduling due to missing email fields and guarantees outputs without unresolved placeholders.
57
+
58
+ # [1.2.6] - 2025-10-24
59
+
60
+ ### Added
61
+ - Automatically seed packaged prompt, scoring, and template JSON files into the writable `ffusesell_data/config` directory so fresh installs immediately pick up the default initial outreach draft prompt.
62
+ - Draft generation now records the scheduled reminder metadata in stage output while mirroring the server’s `schedule_auto_run` behaviour locally.
63
+
64
+ ### Fixed
65
+ - Bundled configuration files are used as a fallback when the data directory is missing overrides, preventing empty prompt loads that previously produced low-quality duplicate drafts.
66
+
67
+ # [1.2.5] - 2025-10-24
68
+
69
+ ### Added
70
+ - Local `reminder_task` table and scheduler plumbing so scheduled outreach mirrors the server flow and can be consumed by RealTimeX orchestration.
71
+ - Initial outreach and follow-up stages now emit reminder metadata whenever emails are scheduled, including team/customer context.
72
+
73
+ ### Changed
74
+ - Event scheduler returns reminder IDs alongside scheduled events while preserving immutable default prompts when layering team overrides.
75
+
76
+ # [1.2.3] - 2025-10-21
77
+
78
+ ### Added
79
+ - `LocalDataManager.search_products()` for server-compatible product filtering (status, keyword, limit, sort).
80
+ - CLI `product list` flags and `list_products.py` filters wired to the new search helper.
81
+ - Regression tests covering keyword search, sorting, and limiting behavior.
82
+
83
+ ### Changed
84
+ - `get_products_by_org` now delegates to the filtered search path to avoid loading inactive results.
85
+ - Product management documentation updated for RealTimeX flows and CLI filter usage.
86
+
87
+ # [1.2.2] - 2025-10-21
88
+
89
+ ### Added
90
+ - LocalDataManager regression tests covering product/team CRUD flows and sales process tracking helpers.
91
+
92
+ ### Fixed
93
+ - Default team settings seeding now targets the `gs_team_*` columns, preventing initialization failures on fresh databases.
94
+
95
+ # [1.2.1] - 2025-10-21
96
+
97
+ ### Changed
98
+ - Expose `__version__`, `__author__`, and `__description__` at the top-level `fusesell` module for easier runtime inspection.
99
+
100
+ ### Fixed
101
+ - `import fusesell; fusesell.__version__` now reports the installed version instead of `unknown`.
102
+
103
+ ## [1.2.0] - 2025-10-20
104
+
105
+ ### Added
106
+ - Packaged CLI access via `FuseSellCLI` export to support embedded runtimes and automated tests.
107
+ - pytest coverage (`fusesell_local/tests/test_cli.py`) ensuring the CLI dry-run path remains stable.
108
+
109
+ ### Changed
110
+ - Distribution renamed to `fusesell` to align with upcoming PyPI publication; console entry point now resolves to `fusesell_local.cli:main`.
111
+ - CLI implementation moved into `fusesell_local/cli.py`, with top-level `fusesell.py` delegating for backward compatibility.
112
+ - Documentation refreshed to instruct `pip install fusesell` and demonstrate programmatic CLI reuse.
113
+ - Published version `1.2.0` to PyPI under the `fusesell` distribution name.
114
+
115
+ ### Fixed
116
+ - Ensured package metadata includes the CLI module so installations via pip expose the `fusesell` console script.
117
+
118
+ ## [1.1.0] - 2025-10-20
119
+
120
+ ### Added
121
+ - Library-first API (`fusesell_local.api`) exposing `build_config`, `execute_pipeline`, and supporting helpers for embedding FuseSell in external runtimes.
122
+ - Public exports in `fusesell_local.__init__` so consumers can import `FuseSellPipeline` and the new helpers directly.
123
+ - Programmatic configuration validation error (`ConfigValidationError`) for clearer failures in host applications.
124
+
125
+ ### Changed
126
+ - CLI now delegates configuration/build/validation/logging to the shared library utilities, ensuring consistent behaviour across CLI and embedded usage.
127
+ - Pipeline context now forwards scheduling preferences (timezone, send_immediately, business hour fields) from configuration to stages.
128
+
129
+ ### Fixed
130
+ - Continuation validation correctly requires `selected_draft_id` when performing `draft_rewrite` or `send` actions.
131
+
132
+ ## [1.0.0] - 2025-01-07
133
+
134
+ ### Added - Core Infrastructure Complete
135
+
136
+ #### CLI Interface
137
+ - Complete command-line interface with 25+ configuration options
138
+ - Comprehensive argument validation and error handling
139
+ - Multiple output formats (JSON, YAML, text)
140
+ - Dry-run mode for safe testing
141
+ - Process continuation support for resuming executions
142
+
143
+ #### Pipeline Engine
144
+ - Full pipeline orchestration with stage control
145
+ - Business logic validation extracted from original YAML workflows
146
+ - Sequential stage execution with data flow management
147
+ - Human-in-the-loop controls and approval points
148
+ - Comprehensive error handling and recovery mechanisms
149
+ - Execution tracking and detailed logging
150
+
151
+ #### Data Management
152
+ - SQLite database with complete schema for all data entities
153
+ - CRUD operations for executions, customers, lead scores, and email drafts
154
+ - Data export/import functionality for backup and migration
155
+ - Local data storage ensuring complete data ownership
156
+
157
+ #### Configuration System
158
+ - Team-specific configuration management
159
+ - Customizable LLM prompts for all stages
160
+ - Configurable scoring criteria and email templates
161
+ - JSON-based configuration files with validation
162
+
163
+ #### LLM Integration
164
+ - OpenAI GPT-4o-mini client with error handling
165
+ - Structured response parsing and validation
166
+ - Token usage tracking and optimization
167
+ - Response caching and retry mechanisms
168
+
169
+ #### Documentation
170
+ - Comprehensive README with installation and usage instructions
171
+ - Technical documentation covering architecture and APIs
172
+ - Business logic documentation extracted from original system
173
+ - Troubleshooting guide and development workflow
174
+
175
+ ### Technical Details
176
+
177
+ #### Project Structure
178
+ ```
179
+ fusesell-local/
180
+ fusesell.py # Main CLI entry point
181
+ requirements.txt # Python dependencies
182
+ setup.py # Package installation
183
+ README.md # User documentation
184
+ TECHNICAL.md # Technical documentation
185
+ CHANGELOG.md # This file
186
+ business_logic.md # Business logic documentation
187
+ fusesell_local/ # Main package
188
+ pipeline.py # Pipeline orchestrator
189
+ stages/ # Pipeline stages (base implementation)
190
+ utils/ # Utilities (data, LLM, validation, logging)
191
+ config/ # Configuration management
192
+ ffusesell_data/ # Local data storage
193
+ config/ # Configuration files
194
+ drafts/ # Generated email drafts
195
+ logs/ # Execution logs
196
+ ```
197
+
198
+ #### Key Features Implemented
199
+ - **Local Execution**: Complete data ownership with no external dependencies except LLM API
200
+ - **Business Logic Preservation**: All orchestration intelligence from original YAML workflows
201
+ - **Flexible Data Sources**: Support for websites, business cards, social media, and manual input
202
+ - **Stage Control**: Skip stages, stop after specific stages, save intermediate results
203
+ - **Process Continuation**: Resume executions from any point with specific actions
204
+ - **Comprehensive Validation**: Input validation, configuration validation, and error handling
205
+ - **Extensible Architecture**: Modular design for easy customization and extension
206
+
207
+ #### Database Schema
208
+ - `executions`: Execution tracking and metadata
209
+ - `stage_results`: Individual stage outputs and status
210
+ - `customers`: Customer profiles and contact information
211
+ - `lead_scores`: Scoring results and recommendations
212
+ - `email_drafts`: Generated email content and variations
213
+
214
+ #### Configuration Files
215
+ - `prompts.json`: LLM prompts for all stages
216
+ - `scoring_criteria.json`: Lead scoring rules and weights
217
+ - `email_templates.json`: Email template variations
218
+ - `team_settings.json`: Team-specific configurations
219
+
220
+ ### Next Phase - Stage Implementations
221
+
222
+ The core infrastructure is complete and ready for individual stage implementations:
223
+
224
+ #### Planned Stage Development
225
+ 1. **Data Acquisition**: Website scraping, business card OCR, social media extraction
226
+ 2. **Data Preparation**: AI-powered data structuring and pain point identification
227
+ 3. **Lead Scoring**: Product-customer fit evaluation with detailed breakdowns
228
+ 4. **Initial Outreach**: Personalized email generation with multiple approaches
229
+ 5. **Follow-up**: Context-aware follow-up sequences and timing optimization
230
+
231
+ #### Development Status
232
+ - Core infrastructure (CLI, pipeline, database, configuration)
233
+ - Business logic validation and orchestration rules
234
+ - Process continuation and human-in-the-loop controls
235
+ - Comprehensive documentation and user guides
236
+ - Individual stage implementations (next development phase)
237
+
238
+ ### Migration from Server-Based System
239
+
240
+ This release represents a complete conversion of the server-based FuseSell system to a local implementation:
241
+
242
+ #### Preserved Features
243
+ - All business logic and orchestration intelligence
244
+ - Team-specific prompts and configuration
245
+ - Human approval workflows and controls
246
+ - Comprehensive logging and execution tracking
247
+ - Multi-stage pipeline with flexible control
248
+
249
+ #### Enhanced Features
250
+ - Complete local data ownership and privacy
251
+ - Command-line interface with extensive options
252
+ - Process continuation and recovery capabilities
253
+ - Flexible data source handling
254
+ - Enhanced error handling and validation
255
+
256
+ #### Architectural Improvements
257
+ - Modular, extensible design
258
+ - Comprehensive input validation
259
+ - Local SQLite database for performance
260
+ - Configuration-driven customization
261
+ - Detailed technical documentation
262
+
263
+ ### Installation and Usage
264
+
265
+ #### Requirements
266
+ - Python 3.8+
267
+ - OpenAI API key
268
+ - 50MB disk space for installation
269
+ - Additional space for data storage (varies by usage)
270
+
271
+ #### Quick Start
272
+ ```bash
273
+ # Install dependencies
274
+ pip install -r requirements.txt
275
+
276
+ # Run basic execution
277
+ python fusesell.py --openai-api-key YOUR_API_KEY \
278
+ --org-id your_org \
279
+ --org-name "Your Company" \
280
+ --customer-website "https://example.com"
281
+ ```
282
+
283
+ #### Advanced Usage
284
+ ```bash
285
+ # Full pipeline with custom settings
286
+ python fusesell.py --openai-api-key sk-xxx \
287
+ --org-id rta \
288
+ --org-name "RTA Corp" \
289
+ --customer-website "https://example.com" \
290
+ --customer-name "Acme Inc" \
291
+ --contact-name "John Doe" \
292
+ --team-id sales_team_1 \
293
+ --language english \
294
+ --output-format json \
295
+ --data-dir ./custom_data
296
+ ```
297
+
298
+ ### Support and Development
299
+
300
+ For technical support, feature requests, or contributions:
301
+ - Review the technical documentation in `TECHNICAL.md`
302
+ - Check the troubleshooting guide for common issues
303
+ - Refer to the business logic documentation for workflow details
304
+ - Contact the development team for advanced customization needs
305
+
306
+ ---
307
+
308
+ ## Future Releases
309
+
310
+ ### [1.1.0] - Planned
311
+ - Complete data acquisition stage implementation
312
+ - Website scraping with content extraction
313
+ - Business card OCR processing
314
+ - Social media profile data extraction
315
+
316
+ ### [1.2.0] - Planned
317
+ - Complete data preparation stage implementation
318
+ - AI-powered customer profiling
319
+ - Pain point identification and analysis
320
+ - Financial and technology stack analysis
321
+
322
+ ### [1.3.0] - Planned
323
+ - Complete lead scoring stage implementation
324
+ - Product-customer fit evaluation
325
+ - Detailed scoring breakdowns and recommendations
326
+ - Multi-product scoring capabilities
327
+
328
+ ### [1.4.0] - Planned
329
+ - Complete initial outreach stage implementation
330
+ - Personalized email generation
331
+ - Multiple draft variations and approaches
332
+ - Human review workflow integration
333
+
334
+ ### [1.5.0] - Planned
335
+ - Complete follow-up stage implementation
336
+ - Context-aware follow-up sequences
337
+ - Interaction history analysis
315
338
  - Automated timing optimization