pomera-ai-commander 0.1.0
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.
- package/LICENSE +21 -0
- package/README.md +680 -0
- package/bin/pomera-ai-commander.js +62 -0
- package/core/__init__.py +66 -0
- package/core/__pycache__/__init__.cpython-313.pyc +0 -0
- package/core/__pycache__/app_context.cpython-313.pyc +0 -0
- package/core/__pycache__/async_text_processor.cpython-313.pyc +0 -0
- package/core/__pycache__/backup_manager.cpython-313.pyc +0 -0
- package/core/__pycache__/backup_recovery_manager.cpython-313.pyc +0 -0
- package/core/__pycache__/content_hash_cache.cpython-313.pyc +0 -0
- package/core/__pycache__/context_menu.cpython-313.pyc +0 -0
- package/core/__pycache__/data_validator.cpython-313.pyc +0 -0
- package/core/__pycache__/database_connection_manager.cpython-313.pyc +0 -0
- package/core/__pycache__/database_curl_settings_manager.cpython-313.pyc +0 -0
- package/core/__pycache__/database_promera_ai_settings_manager.cpython-313.pyc +0 -0
- package/core/__pycache__/database_schema.cpython-313.pyc +0 -0
- package/core/__pycache__/database_schema_manager.cpython-313.pyc +0 -0
- package/core/__pycache__/database_settings_manager.cpython-313.pyc +0 -0
- package/core/__pycache__/database_settings_manager_interface.cpython-313.pyc +0 -0
- package/core/__pycache__/dialog_manager.cpython-313.pyc +0 -0
- package/core/__pycache__/efficient_line_numbers.cpython-313.pyc +0 -0
- package/core/__pycache__/error_handler.cpython-313.pyc +0 -0
- package/core/__pycache__/error_service.cpython-313.pyc +0 -0
- package/core/__pycache__/event_consolidator.cpython-313.pyc +0 -0
- package/core/__pycache__/memory_efficient_text_widget.cpython-313.pyc +0 -0
- package/core/__pycache__/migration_manager.cpython-313.pyc +0 -0
- package/core/__pycache__/migration_test_suite.cpython-313.pyc +0 -0
- package/core/__pycache__/migration_validator.cpython-313.pyc +0 -0
- package/core/__pycache__/optimized_find_replace.cpython-313.pyc +0 -0
- package/core/__pycache__/optimized_pattern_engine.cpython-313.pyc +0 -0
- package/core/__pycache__/optimized_search_highlighter.cpython-313.pyc +0 -0
- package/core/__pycache__/performance_monitor.cpython-313.pyc +0 -0
- package/core/__pycache__/persistence_manager.cpython-313.pyc +0 -0
- package/core/__pycache__/progressive_stats_calculator.cpython-313.pyc +0 -0
- package/core/__pycache__/regex_pattern_cache.cpython-313.pyc +0 -0
- package/core/__pycache__/regex_pattern_library.cpython-313.pyc +0 -0
- package/core/__pycache__/search_operation_manager.cpython-313.pyc +0 -0
- package/core/__pycache__/settings_defaults_registry.cpython-313.pyc +0 -0
- package/core/__pycache__/settings_integrity_validator.cpython-313.pyc +0 -0
- package/core/__pycache__/settings_serializer.cpython-313.pyc +0 -0
- package/core/__pycache__/settings_validator.cpython-313.pyc +0 -0
- package/core/__pycache__/smart_stats_calculator.cpython-313.pyc +0 -0
- package/core/__pycache__/statistics_update_manager.cpython-313.pyc +0 -0
- package/core/__pycache__/stats_config_manager.cpython-313.pyc +0 -0
- package/core/__pycache__/streaming_text_handler.cpython-313.pyc +0 -0
- package/core/__pycache__/task_scheduler.cpython-313.pyc +0 -0
- package/core/__pycache__/visibility_monitor.cpython-313.pyc +0 -0
- package/core/__pycache__/widget_cache.cpython-313.pyc +0 -0
- package/core/app_context.py +482 -0
- package/core/async_text_processor.py +422 -0
- package/core/backup_manager.py +656 -0
- package/core/backup_recovery_manager.py +1034 -0
- package/core/content_hash_cache.py +509 -0
- package/core/context_menu.py +313 -0
- package/core/data_validator.py +1067 -0
- package/core/database_connection_manager.py +745 -0
- package/core/database_curl_settings_manager.py +609 -0
- package/core/database_promera_ai_settings_manager.py +447 -0
- package/core/database_schema.py +412 -0
- package/core/database_schema_manager.py +396 -0
- package/core/database_settings_manager.py +1508 -0
- package/core/database_settings_manager_interface.py +457 -0
- package/core/dialog_manager.py +735 -0
- package/core/efficient_line_numbers.py +511 -0
- package/core/error_handler.py +747 -0
- package/core/error_service.py +431 -0
- package/core/event_consolidator.py +512 -0
- package/core/mcp/__init__.py +43 -0
- package/core/mcp/__pycache__/__init__.cpython-313.pyc +0 -0
- package/core/mcp/__pycache__/protocol.cpython-313.pyc +0 -0
- package/core/mcp/__pycache__/schema.cpython-313.pyc +0 -0
- package/core/mcp/__pycache__/server_stdio.cpython-313.pyc +0 -0
- package/core/mcp/__pycache__/tool_registry.cpython-313.pyc +0 -0
- package/core/mcp/protocol.py +288 -0
- package/core/mcp/schema.py +251 -0
- package/core/mcp/server_stdio.py +299 -0
- package/core/mcp/tool_registry.py +2345 -0
- package/core/memory_efficient_text_widget.py +712 -0
- package/core/migration_manager.py +915 -0
- package/core/migration_test_suite.py +1086 -0
- package/core/migration_validator.py +1144 -0
- package/core/optimized_find_replace.py +715 -0
- package/core/optimized_pattern_engine.py +424 -0
- package/core/optimized_search_highlighter.py +553 -0
- package/core/performance_monitor.py +675 -0
- package/core/persistence_manager.py +713 -0
- package/core/progressive_stats_calculator.py +632 -0
- package/core/regex_pattern_cache.py +530 -0
- package/core/regex_pattern_library.py +351 -0
- package/core/search_operation_manager.py +435 -0
- package/core/settings_defaults_registry.py +1087 -0
- package/core/settings_integrity_validator.py +1112 -0
- package/core/settings_serializer.py +558 -0
- package/core/settings_validator.py +1824 -0
- package/core/smart_stats_calculator.py +710 -0
- package/core/statistics_update_manager.py +619 -0
- package/core/stats_config_manager.py +858 -0
- package/core/streaming_text_handler.py +723 -0
- package/core/task_scheduler.py +596 -0
- package/core/update_pattern_library.py +169 -0
- package/core/visibility_monitor.py +596 -0
- package/core/widget_cache.py +498 -0
- package/mcp.json +61 -0
- package/package.json +57 -0
- package/pomera.py +7483 -0
- package/pomera_mcp_server.py +144 -0
- package/tools/__init__.py +5 -0
- package/tools/__pycache__/__init__.cpython-313.pyc +0 -0
- package/tools/__pycache__/ai_tools.cpython-313.pyc +0 -0
- package/tools/__pycache__/ascii_art_generator.cpython-313.pyc +0 -0
- package/tools/__pycache__/base64_tools.cpython-313.pyc +0 -0
- package/tools/__pycache__/base_tool.cpython-313.pyc +0 -0
- package/tools/__pycache__/case_tool.cpython-313.pyc +0 -0
- package/tools/__pycache__/column_tools.cpython-313.pyc +0 -0
- package/tools/__pycache__/cron_tool.cpython-313.pyc +0 -0
- package/tools/__pycache__/curl_history.cpython-313.pyc +0 -0
- package/tools/__pycache__/curl_processor.cpython-313.pyc +0 -0
- package/tools/__pycache__/curl_settings.cpython-313.pyc +0 -0
- package/tools/__pycache__/curl_tool.cpython-313.pyc +0 -0
- package/tools/__pycache__/diff_viewer.cpython-313.pyc +0 -0
- package/tools/__pycache__/email_extraction_tool.cpython-313.pyc +0 -0
- package/tools/__pycache__/email_header_analyzer.cpython-313.pyc +0 -0
- package/tools/__pycache__/extraction_tools.cpython-313.pyc +0 -0
- package/tools/__pycache__/find_replace.cpython-313.pyc +0 -0
- package/tools/__pycache__/folder_file_reporter.cpython-313.pyc +0 -0
- package/tools/__pycache__/folder_file_reporter_adapter.cpython-313.pyc +0 -0
- package/tools/__pycache__/generator_tools.cpython-313.pyc +0 -0
- package/tools/__pycache__/hash_generator.cpython-313.pyc +0 -0
- package/tools/__pycache__/html_tool.cpython-313.pyc +0 -0
- package/tools/__pycache__/huggingface_helper.cpython-313.pyc +0 -0
- package/tools/__pycache__/jsonxml_tool.cpython-313.pyc +0 -0
- package/tools/__pycache__/line_tools.cpython-313.pyc +0 -0
- package/tools/__pycache__/list_comparator.cpython-313.pyc +0 -0
- package/tools/__pycache__/markdown_tools.cpython-313.pyc +0 -0
- package/tools/__pycache__/mcp_widget.cpython-313.pyc +0 -0
- package/tools/__pycache__/notes_widget.cpython-313.pyc +0 -0
- package/tools/__pycache__/number_base_converter.cpython-313.pyc +0 -0
- package/tools/__pycache__/regex_extractor.cpython-313.pyc +0 -0
- package/tools/__pycache__/slug_generator.cpython-313.pyc +0 -0
- package/tools/__pycache__/sorter_tools.cpython-313.pyc +0 -0
- package/tools/__pycache__/string_escape_tool.cpython-313.pyc +0 -0
- package/tools/__pycache__/text_statistics_tool.cpython-313.pyc +0 -0
- package/tools/__pycache__/text_wrapper.cpython-313.pyc +0 -0
- package/tools/__pycache__/timestamp_converter.cpython-313.pyc +0 -0
- package/tools/__pycache__/tool_loader.cpython-313.pyc +0 -0
- package/tools/__pycache__/translator_tools.cpython-313.pyc +0 -0
- package/tools/__pycache__/url_link_extractor.cpython-313.pyc +0 -0
- package/tools/__pycache__/url_parser.cpython-313.pyc +0 -0
- package/tools/__pycache__/whitespace_tools.cpython-313.pyc +0 -0
- package/tools/__pycache__/word_frequency_counter.cpython-313.pyc +0 -0
- package/tools/ai_tools.py +2892 -0
- package/tools/ascii_art_generator.py +353 -0
- package/tools/base64_tools.py +184 -0
- package/tools/base_tool.py +511 -0
- package/tools/case_tool.py +309 -0
- package/tools/column_tools.py +396 -0
- package/tools/cron_tool.py +885 -0
- package/tools/curl_history.py +601 -0
- package/tools/curl_processor.py +1208 -0
- package/tools/curl_settings.py +503 -0
- package/tools/curl_tool.py +5467 -0
- package/tools/diff_viewer.py +1072 -0
- package/tools/email_extraction_tool.py +249 -0
- package/tools/email_header_analyzer.py +426 -0
- package/tools/extraction_tools.py +250 -0
- package/tools/find_replace.py +1751 -0
- package/tools/folder_file_reporter.py +1463 -0
- package/tools/folder_file_reporter_adapter.py +480 -0
- package/tools/generator_tools.py +1217 -0
- package/tools/hash_generator.py +256 -0
- package/tools/html_tool.py +657 -0
- package/tools/huggingface_helper.py +449 -0
- package/tools/jsonxml_tool.py +730 -0
- package/tools/line_tools.py +419 -0
- package/tools/list_comparator.py +720 -0
- package/tools/markdown_tools.py +562 -0
- package/tools/mcp_widget.py +1417 -0
- package/tools/notes_widget.py +973 -0
- package/tools/number_base_converter.py +373 -0
- package/tools/regex_extractor.py +572 -0
- package/tools/slug_generator.py +311 -0
- package/tools/sorter_tools.py +459 -0
- package/tools/string_escape_tool.py +393 -0
- package/tools/text_statistics_tool.py +366 -0
- package/tools/text_wrapper.py +431 -0
- package/tools/timestamp_converter.py +422 -0
- package/tools/tool_loader.py +710 -0
- package/tools/translator_tools.py +523 -0
- package/tools/url_link_extractor.py +262 -0
- package/tools/url_parser.py +205 -0
- package/tools/whitespace_tools.py +356 -0
- package/tools/word_frequency_counter.py +147 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 MatBanik
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,680 @@
|
|
|
1
|
+
# Pomera AI Commander
|
|
2
|
+
|
|
3
|
+
A comprehensive text processing GUI application built with Python and Tkinter, featuring advanced performance monitoring, intelligent caching, and AI-powered tools.
|
|
4
|
+
|
|
5
|
+
[](https://github.com/matbanik/Pomera-AI-Commander/releases)
|
|
6
|
+
|
|
7
|
+
## ๐ธ Screenshots
|
|
8
|
+
|
|
9
|
+
<div align="center">
|
|
10
|
+
|
|
11
|
+

|
|
12
|
+
*Main interface with multi-tab text processing*
|
|
13
|
+
|
|
14
|
+

|
|
15
|
+
*Advanced tools and AI integration*
|
|
16
|
+
|
|
17
|
+

|
|
18
|
+
*Diff viewer with side-by-side comparison*
|
|
19
|
+
|
|
20
|
+

|
|
21
|
+
*Performance monitoring dashboard*
|
|
22
|
+
|
|
23
|
+

|
|
24
|
+
*Text statistics and analysis tools*
|
|
25
|
+
|
|
26
|
+

|
|
27
|
+
*Export capabilities and format options*
|
|
28
|
+
|
|
29
|
+

|
|
30
|
+
*Settings and configuration panel*
|
|
31
|
+
|
|
32
|
+
</div>
|
|
33
|
+
|
|
34
|
+
## ๐ Documentation
|
|
35
|
+
|
|
36
|
+
### Quick Links
|
|
37
|
+
- **[Tools Documentation](docs/TOOLS_DOCUMENTATION.md)** - Comprehensive guide to all available tools
|
|
38
|
+
- **[MCP Server Guide](#troubleshooting-mcp-integration)** - MCP server setup and integration
|
|
39
|
+
- **[Troubleshooting Guide](docs/TROUBLESHOOTING.md)** - Solutions for common issues
|
|
40
|
+
- **[Release Process Guide](docs/RELEASE_PROCESS.md)** - Detailed release procedures for maintainers
|
|
41
|
+
- **[Release Testing Guide](docs/RELEASE_TESTING.md)** - Testing procedures for releases
|
|
42
|
+
- **[Testing Quick Start Guide](docs/TESTING_QUICK_START.md)** - Rapid testing setup and procedures
|
|
43
|
+
|
|
44
|
+
## ๐ Features
|
|
45
|
+
|
|
46
|
+
### Core Text Processing
|
|
47
|
+
- **Multi-tab Interface** - Work with multiple text inputs and outputs simultaneously
|
|
48
|
+
- **Advanced Find & Replace** - Powerful text search and replacement with regex support
|
|
49
|
+
- **Case Conversion Tools** - Sentence case, title case, upper/lower case transformations
|
|
50
|
+
- **Text Statistics** - Real-time byte, word, line, and paragraph counting
|
|
51
|
+
- **Export Capabilities** - Save to TXT, CSV, PDF, and DOCX formats
|
|
52
|
+
|
|
53
|
+
### Advanced Tools
|
|
54
|
+
- **Email Processing** - Extract and analyze email addresses and headers
|
|
55
|
+
- **URL Tools** - Extract URLs and parse URL components
|
|
56
|
+
- **Code Utilities** - Base64 encoding/decoding, binary translation, Morse code
|
|
57
|
+
- **Text Generators** - Password generation, repeating text, alphabetical sorting
|
|
58
|
+
- **Diff Viewer** - Side-by-side text comparison with word-level highlighting
|
|
59
|
+
|
|
60
|
+
### AI Integration
|
|
61
|
+
- **AI Tools Widget** - Integrated AI-powered text processing capabilities
|
|
62
|
+
- **Multiple AI Providers** - Support for various AI services and models
|
|
63
|
+
- **Smart Processing** - Context-aware text analysis and transformation
|
|
64
|
+
|
|
65
|
+
### MCP Server (Model Context Protocol)
|
|
66
|
+
- **Expose Tools to AI Assistants** - Run Pomera as an MCP server for AI IDE integration
|
|
67
|
+
- **33 Text Processing Tools** - All major tools available via MCP protocol
|
|
68
|
+
- **Notes Database** - Store, retrieve, and search notes via MCP
|
|
69
|
+
- **Multiple Transports** - stdio transport for seamless subprocess integration
|
|
70
|
+
- **Works with Cursor, Claude Desktop** - Compatible with any MCP-enabled client
|
|
71
|
+
|
|
72
|
+
### Performance Features
|
|
73
|
+
- **Intelligent Caching** - Smart caching system for improved performance
|
|
74
|
+
- **Async Processing** - Non-blocking text processing for large files
|
|
75
|
+
- **Progressive Search** - Optimized search with real-time highlighting
|
|
76
|
+
- **Memory Optimization** - Efficient memory usage for large text files
|
|
77
|
+
- **Performance Monitoring** - Built-in performance tracking and optimization
|
|
78
|
+
|
|
79
|
+
## ๐ ๏ธ Installation
|
|
80
|
+
|
|
81
|
+
### Prerequisites
|
|
82
|
+
- Python 3.8 or higher
|
|
83
|
+
- Required Python packages (install via pip):
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
pip install tkinter requests reportlab python-docx
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Optional Dependencies
|
|
90
|
+
For enhanced functionality:
|
|
91
|
+
```bash
|
|
92
|
+
pip install pyaudio numpy psutil huggingface-hub
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Quick Start
|
|
96
|
+
|
|
97
|
+
#### Option 1: Download Pre-built Executable (Recommended)
|
|
98
|
+
|
|
99
|
+
1. Go to the [**Releases page**](https://github.com/matbanik/Pomera-AI-Commander/releases)
|
|
100
|
+
2. Download the latest version for your platform:
|
|
101
|
+
- **Windows**: `pomera-v1.0.0-windows.exe`
|
|
102
|
+
- **Linux**: `pomera-v1.0.0-linux`
|
|
103
|
+
- **macOS (Apple Silicon)**: `pomera-v1.0.0-macos-arm64`
|
|
104
|
+
3. Run the executable directly (no Python installation required)
|
|
105
|
+
|
|
106
|
+
#### Option 2: Run from Source
|
|
107
|
+
1. Clone the repository:
|
|
108
|
+
```bash
|
|
109
|
+
git clone https://github.com/matbanik/Pomera-AI-Commander.git
|
|
110
|
+
cd Pomera-AI-Commander
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
2. Run the application:
|
|
114
|
+
```bash
|
|
115
|
+
python pomera.py
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## ๐ฆ Releases and Downloads
|
|
119
|
+
|
|
120
|
+
### Getting the Latest Release
|
|
121
|
+
|
|
122
|
+
Visit the [**Releases page**](https://github.com/matbanik/Pomera-AI-Commander/releases) to download pre-built executables for your platform. Each release includes:
|
|
123
|
+
|
|
124
|
+
- **Cross-platform executables** - No Python installation required
|
|
125
|
+
- **SHA256 checksums** - For security verification
|
|
126
|
+
- **Release notes** - What's new and changed
|
|
127
|
+
- **Installation instructions** - Platform-specific setup guides
|
|
128
|
+
|
|
129
|
+
### Platform-Specific Installation
|
|
130
|
+
|
|
131
|
+
#### Windows
|
|
132
|
+
1. Download `pomera-v1.0.0-windows.exe`
|
|
133
|
+
2. **Optional**: Verify the download using SHA256 checksum from `checksums.txt`
|
|
134
|
+
3. Double-click the executable to run
|
|
135
|
+
4. **Note**: Windows may show a security warning for unsigned executables - click "More info" โ "Run anyway"
|
|
136
|
+
|
|
137
|
+
#### Linux
|
|
138
|
+
1. Download `pomera-v1.0.0-linux`
|
|
139
|
+
2. Make executable and run:
|
|
140
|
+
```bash
|
|
141
|
+
chmod +x pomera-v1.0.0-linux
|
|
142
|
+
./pomera-v1.0.0-linux
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
#### macOS
|
|
146
|
+
|
|
147
|
+
**Apple Silicon Macs (M1/M2/M3/M4)**:
|
|
148
|
+
1. Download `pomera-v1.0.0-macos-arm64`
|
|
149
|
+
2. Make executable and run:
|
|
150
|
+
```bash
|
|
151
|
+
chmod +x pomera-v1.0.0-macos-arm64
|
|
152
|
+
./pomera-v1.0.0-macos-arm64
|
|
153
|
+
```
|
|
154
|
+
3. **Note**: macOS may require allowing the app in System Preferences โ Security & Privacy
|
|
155
|
+
|
|
156
|
+
### Release Process (For Maintainers)
|
|
157
|
+
|
|
158
|
+
#### Triggering a Release
|
|
159
|
+
1. **Create a version tag** following semantic versioning:
|
|
160
|
+
```bash
|
|
161
|
+
git tag v1.0.0
|
|
162
|
+
git push origin v1.0.0
|
|
163
|
+
```
|
|
164
|
+
2. **GitHub Actions automatically**:
|
|
165
|
+
- Builds executables for Windows, Linux, and macOS
|
|
166
|
+
- Generates SHA256 checksums
|
|
167
|
+
- Creates a GitHub release
|
|
168
|
+
- Uploads all artifacts
|
|
169
|
+
|
|
170
|
+
#### Version Tag Format
|
|
171
|
+
- Use semantic versioning: `v1.0.0`, `v1.2.3`, `v2.0.0-beta.1`
|
|
172
|
+
- Tags must start with `v` to trigger the release workflow
|
|
173
|
+
- Pre-release tags (containing `-alpha`, `-beta`, `-rc`) create pre-releases
|
|
174
|
+
|
|
175
|
+
#### Release Workflow
|
|
176
|
+
```mermaid
|
|
177
|
+
graph LR
|
|
178
|
+
A[Push version tag] --> B[GitHub Actions triggers]
|
|
179
|
+
B --> C[Build on 3 platforms]
|
|
180
|
+
C --> D[Generate checksums]
|
|
181
|
+
D --> E[Create GitHub release]
|
|
182
|
+
E --> F[Upload artifacts]
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### Troubleshooting Downloads
|
|
186
|
+
|
|
187
|
+
#### Common Issues
|
|
188
|
+
|
|
189
|
+
**Windows: "Windows protected your PC" warning**
|
|
190
|
+
- This is normal for unsigned executables
|
|
191
|
+
- Click "More info" โ "Run anyway"
|
|
192
|
+
- Alternative: Run from source if you prefer
|
|
193
|
+
|
|
194
|
+
**Linux/macOS: "Permission denied" error**
|
|
195
|
+
- The executable needs execute permissions
|
|
196
|
+
- Run: `chmod +x pomera-v1.0.0-linux` (or macos)
|
|
197
|
+
|
|
198
|
+
**macOS: "App can't be opened because it is from an unidentified developer"**
|
|
199
|
+
- Go to System Preferences โ Security & Privacy
|
|
200
|
+
- Click "Open Anyway" next to the blocked app message
|
|
201
|
+
- Alternative: Run `xattr -d com.apple.quarantine pomera-v1.0.0-macos-arm64`
|
|
202
|
+
|
|
203
|
+
**Download verification fails**
|
|
204
|
+
- Re-download the file (may be corrupted)
|
|
205
|
+
- Check you're comparing against the correct checksum from `checksums.txt`
|
|
206
|
+
- Ensure you downloaded the checksum file from the same release
|
|
207
|
+
|
|
208
|
+
**Executable won't start**
|
|
209
|
+
- Check system requirements (64-bit OS)
|
|
210
|
+
- Try running from command line to see error messages
|
|
211
|
+
- For older systems, try running from source instead
|
|
212
|
+
|
|
213
|
+
#### Getting Help
|
|
214
|
+
- Check the [Troubleshooting Guide](docs/TROUBLESHOOTING.md) for detailed solutions
|
|
215
|
+
- Search [existing issues](https://github.com/matbanik/Pomera-AI-Commander/issues) for known problems
|
|
216
|
+
- Create a new issue with:
|
|
217
|
+
- Your operating system and version
|
|
218
|
+
- The exact error message
|
|
219
|
+
- Steps you tried to resolve it
|
|
220
|
+
|
|
221
|
+
Pomera-AI-Commander/
|
|
222
|
+
โโโ pomera.py # Main application (supports --mcp-server flag)
|
|
223
|
+
โโโ tools/ # All tool modules
|
|
224
|
+
โ โโโ __init__.py
|
|
225
|
+
โ โโโ ai_tools.py
|
|
226
|
+
โ โโโ base64_tools.py
|
|
227
|
+
โ โโโ case_tool.py
|
|
228
|
+
โ โโโ diff_viewer.py
|
|
229
|
+
โ โโโ email_extraction_tool.py
|
|
230
|
+
โ โโโ email_header_analyzer.py
|
|
231
|
+
โ โโโ find_replace.py
|
|
232
|
+
โ โโโ generator_tools.py
|
|
233
|
+
โ โโโ list_comparator.py
|
|
234
|
+
โ โโโ mcp_widget.py # MCP Manager UI
|
|
235
|
+
โ โโโ sorter_tools.py
|
|
236
|
+
โ โโโ translator_tools.py
|
|
237
|
+
โ โโโ url_link_extractor.py
|
|
238
|
+
โ โโโ url_parser.py
|
|
239
|
+
โ โโโ word_frequency_counter.py
|
|
240
|
+
โโโ core/ # All core utility modules
|
|
241
|
+
โ โโโ __init__.py
|
|
242
|
+
โ โโโ async_text_processor.py
|
|
243
|
+
โ โโโ content_hash_cache.py
|
|
244
|
+
โ โโโ mcp/ # MCP Server implementation
|
|
245
|
+
โ โ โโโ __init__.py
|
|
246
|
+
โ โ โโโ schema.py # MCP message schemas
|
|
247
|
+
โ โ โโโ protocol.py # JSON-RPC protocol handling
|
|
248
|
+
โ โ โโโ tool_registry.py # Tool registration and adapters
|
|
249
|
+
โ โ โโโ server_stdio.py # stdio transport server
|
|
250
|
+
โ โโโ memory_efficient_text_widget.py
|
|
251
|
+
โ โโโ optimized_find_replace.py
|
|
252
|
+
โ โโโ [other modules...]
|
|
253
|
+
โโโ docs/
|
|
254
|
+
โโโ MCP_PROJECT.md # MCP server documentation
|
|
255
|
+
โโโ MCP_TASKS.md # MCP implementation status
|
|
256
|
+
|
|
257
|
+
|
|
258
|
+
## ๐ Usage
|
|
259
|
+
|
|
260
|
+
### Basic Text Processing
|
|
261
|
+
1. **Input Text** - Enter or paste text in the input tabs
|
|
262
|
+
2. **Select Tool** - Choose from the dropdown menu of available tools
|
|
263
|
+
3. **Process** - Click "Apply Tool" or use automatic processing
|
|
264
|
+
4. **View Results** - See processed text in the output tabs
|
|
265
|
+
5. **Export** - Save results in your preferred format
|
|
266
|
+
|
|
267
|
+
### Comprehensive Tool Documentation
|
|
268
|
+
For detailed information about all available tools, features, and usage examples, see the [**Tools Documentation**](docs/TOOLS_DOCUMENTATION.md).
|
|
269
|
+
|
|
270
|
+
### Advanced Features
|
|
271
|
+
- **Diff Viewer** - Compare two texts side-by-side with highlighting
|
|
272
|
+
- **Performance Dashboard** - Monitor application performance and optimize settings
|
|
273
|
+
- **AI Tools** - Access AI-powered text processing capabilities
|
|
274
|
+
- **Batch Processing** - Process multiple texts efficiently
|
|
275
|
+
- **MCP Manager** - Configure and test MCP server integration (Widgets โ MCP Manager)
|
|
276
|
+
|
|
277
|
+
### Keyboard Shortcuts
|
|
278
|
+
- `Ctrl+Z` / `Ctrl+Y` - Undo/Redo
|
|
279
|
+
- `Ctrl+S` - Save settings
|
|
280
|
+
- `Ctrl+O` - Open file
|
|
281
|
+
- `Ctrl+E` - Export current output
|
|
282
|
+
- `Ctrl+M` - Open MCP Manager
|
|
283
|
+
|
|
284
|
+
## โ๏ธ Configuration
|
|
285
|
+
|
|
286
|
+
### Settings
|
|
287
|
+
The application automatically saves settings to `settings.json`, including:
|
|
288
|
+
- Tool preferences and configurations
|
|
289
|
+
- Performance optimization settings
|
|
290
|
+
- UI layout and preferences
|
|
291
|
+
- Export paths and formats
|
|
292
|
+
|
|
293
|
+
### Performance Optimization
|
|
294
|
+
- **Automatic Mode** - Intelligent performance adjustments based on content size
|
|
295
|
+
- **Manual Mode** - Fine-tune performance settings for your system
|
|
296
|
+
- **Memory Management** - Optimize memory usage for large files
|
|
297
|
+
- **Async Processing** - Enable background processing for better responsiveness
|
|
298
|
+
|
|
299
|
+
## ๐ MCP Server Integration
|
|
300
|
+
|
|
301
|
+
Pomera can run as an MCP (Model Context Protocol) server, exposing all its text processing tools to AI assistants like Cursor, Claude Desktop, or any MCP-compatible client.
|
|
302
|
+
|
|
303
|
+
### Quick Setup for Cursor
|
|
304
|
+
|
|
305
|
+
1. Open MCP Manager: `Widgets โ MCP Manager` or `Ctrl+M`
|
|
306
|
+
2. Go to the **Configuration** tab
|
|
307
|
+
3. Copy the JSON configuration
|
|
308
|
+
4. Add it to your Cursor MCP settings (`~/.cursor/mcp.json`)
|
|
309
|
+
|
|
310
|
+
### Running as MCP Server
|
|
311
|
+
|
|
312
|
+
```bash
|
|
313
|
+
# From source
|
|
314
|
+
python pomera.py --mcp-server
|
|
315
|
+
|
|
316
|
+
# From compiled executable
|
|
317
|
+
pomera.exe --mcp-server
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
### Available MCP Tools (33 total)
|
|
321
|
+
|
|
322
|
+
| Category | Tools |
|
|
323
|
+
|----------|-------|
|
|
324
|
+
| **Text Transform** | `pomera_case_transform`, `pomera_whitespace`, `pomera_line_tools`, `pomera_sort` |
|
|
325
|
+
| **Encoding** | `pomera_base64`, `pomera_hash`, `pomera_string_escape`, `pomera_slug` |
|
|
326
|
+
| **Data Formats** | `pomera_json_xml`, `pomera_markdown`, `pomera_column_tools` |
|
|
327
|
+
| **Extraction** | `pomera_regex_extract`, `pomera_extract_emails`, `pomera_extract_urls`, `pomera_html`, `pomera_email_header_analyzer` |
|
|
328
|
+
| **Utilities** | `pomera_url_parse`, `pomera_timestamp`, `pomera_cron`, `pomera_number_base`, `pomera_text_wrap`, `pomera_text_stats`, `pomera_word_frequency`, `pomera_list_compare` |
|
|
329
|
+
| **Generators** | `pomera_generators`, `pomera_translator` |
|
|
330
|
+
| **Notes** | `pomera_notes_save`, `pomera_notes_get`, `pomera_notes_list`, `pomera_notes_search`, `pomera_notes_update`, `pomera_notes_delete` |
|
|
331
|
+
|
|
332
|
+
### MCP Configuration Example
|
|
333
|
+
|
|
334
|
+
```json
|
|
335
|
+
{
|
|
336
|
+
"mcpServers": {
|
|
337
|
+
"pomera": {
|
|
338
|
+
"command": "python",
|
|
339
|
+
"args": ["C:/path/to/pomera.py", "--mcp-server"]
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
For detailed MCP documentation, see [**MCP Server Guide**](docs/MCP_PROJECT.md).
|
|
346
|
+
|
|
347
|
+
### Setting Up Pomera MCP Server with Cursor
|
|
348
|
+
|
|
349
|
+
Cursor IDE supports MCP servers natively. Follow these steps to integrate Pomera:
|
|
350
|
+
|
|
351
|
+
#### Step 1: Locate Your MCP Configuration File
|
|
352
|
+
|
|
353
|
+
**Windows:**
|
|
354
|
+
```
|
|
355
|
+
%USERPROFILE%\.cursor\mcp.json
|
|
356
|
+
```
|
|
357
|
+
Example: `C:\Users\YourName\.cursor\mcp.json`
|
|
358
|
+
|
|
359
|
+
**macOS:**
|
|
360
|
+
```
|
|
361
|
+
~/.cursor/mcp.json
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
**Linux:**
|
|
365
|
+
```
|
|
366
|
+
~/.cursor/mcp.json
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
#### Step 2: Add Pomera to MCP Configuration
|
|
370
|
+
|
|
371
|
+
Open or create the `mcp.json` file and add the Pomera server configuration:
|
|
372
|
+
|
|
373
|
+
**Using Python (from source):**
|
|
374
|
+
```json
|
|
375
|
+
{
|
|
376
|
+
"mcpServers": {
|
|
377
|
+
"pomera": {
|
|
378
|
+
"command": "python",
|
|
379
|
+
"args": ["C:/path/to/Pomera-AI-Commander/pomera.py", "--mcp-server"]
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
**Using Compiled Executable (Windows):**
|
|
386
|
+
```json
|
|
387
|
+
{
|
|
388
|
+
"mcpServers": {
|
|
389
|
+
"pomera": {
|
|
390
|
+
"command": "C:/path/to/pomera.exe",
|
|
391
|
+
"args": ["--mcp-server"]
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
**Using Compiled Executable (Linux/macOS):**
|
|
398
|
+
```json
|
|
399
|
+
{
|
|
400
|
+
"mcpServers": {
|
|
401
|
+
"pomera": {
|
|
402
|
+
"command": "/path/to/pomera",
|
|
403
|
+
"args": ["--mcp-server"]
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
#### Step 3: Restart Cursor
|
|
410
|
+
|
|
411
|
+
After saving the configuration, restart Cursor IDE for the changes to take effect.
|
|
412
|
+
|
|
413
|
+
#### Step 4: Verify the Connection
|
|
414
|
+
|
|
415
|
+
1. Open Cursor's MCP panel (usually in settings or via command palette)
|
|
416
|
+
2. You should see "pomera" listed as an available server
|
|
417
|
+
3. The 33 Pomera tools will be available to the AI assistant
|
|
418
|
+
|
|
419
|
+
#### Using Pomera Tools in Cursor
|
|
420
|
+
|
|
421
|
+
Once configured, you can ask Cursor's AI to use Pomera tools:
|
|
422
|
+
|
|
423
|
+
```
|
|
424
|
+
"Use pomera_case_transform to convert this text to title case"
|
|
425
|
+
"Hash this text using pomera_hash with SHA256"
|
|
426
|
+
"Extract all URLs from this document using pomera_extract_urls"
|
|
427
|
+
"Save this as a note using pomera_notes_save"
|
|
428
|
+
```
|
|
429
|
+
|
|
430
|
+
### Setting Up Pomera MCP Server with Visual Studio Code
|
|
431
|
+
|
|
432
|
+
VS Code requires the [MCP extension](https://marketplace.visualstudio.com/items?itemName=anthropics.claude-mcp) or a compatible AI extension that supports MCP.
|
|
433
|
+
|
|
434
|
+
#### Step 1: Install MCP Extension
|
|
435
|
+
|
|
436
|
+
1. Open VS Code
|
|
437
|
+
2. Go to Extensions (`Ctrl+Shift+X`)
|
|
438
|
+
3. Search for "MCP" or "Claude MCP"
|
|
439
|
+
4. Install the official MCP extension
|
|
440
|
+
|
|
441
|
+
#### Step 2: Configure the MCP Server
|
|
442
|
+
|
|
443
|
+
**Option A: Using VS Code Settings (settings.json)**
|
|
444
|
+
|
|
445
|
+
Open your VS Code settings (`Ctrl+,` โ Open Settings JSON) and add:
|
|
446
|
+
|
|
447
|
+
```json
|
|
448
|
+
{
|
|
449
|
+
"mcp.servers": {
|
|
450
|
+
"pomera": {
|
|
451
|
+
"command": "python",
|
|
452
|
+
"args": ["C:/path/to/Pomera-AI-Commander/pomera.py", "--mcp-server"]
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
**Option B: Using Workspace Configuration**
|
|
459
|
+
|
|
460
|
+
Create a `.vscode/mcp.json` file in your workspace:
|
|
461
|
+
|
|
462
|
+
```json
|
|
463
|
+
{
|
|
464
|
+
"servers": {
|
|
465
|
+
"pomera": {
|
|
466
|
+
"command": "python",
|
|
467
|
+
"args": ["${workspaceFolder}/../Pomera-AI-Commander/pomera.py", "--mcp-server"]
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
```
|
|
472
|
+
|
|
473
|
+
#### Step 3: Reload VS Code
|
|
474
|
+
|
|
475
|
+
Use `Ctrl+Shift+P` โ "Developer: Reload Window" to apply the configuration.
|
|
476
|
+
|
|
477
|
+
### Setting Up with Claude Desktop
|
|
478
|
+
|
|
479
|
+
Claude Desktop also supports MCP servers. Add Pomera to your Claude configuration:
|
|
480
|
+
|
|
481
|
+
**Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
|
|
482
|
+
**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
483
|
+
|
|
484
|
+
```json
|
|
485
|
+
{
|
|
486
|
+
"mcpServers": {
|
|
487
|
+
"pomera": {
|
|
488
|
+
"command": "python",
|
|
489
|
+
"args": ["C:/path/to/Pomera-AI-Commander/pomera.py", "--mcp-server"]
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
```
|
|
494
|
+
|
|
495
|
+
### Troubleshooting MCP Integration
|
|
496
|
+
|
|
497
|
+
#### Server Not Starting
|
|
498
|
+
|
|
499
|
+
1. **Check the path**: Ensure the path to `pomera.py` or the executable is correct
|
|
500
|
+
2. **Check Python**: Make sure Python is in your system PATH
|
|
501
|
+
3. **Test manually**: Run `python pomera.py --mcp-server` in terminal to see errors
|
|
502
|
+
|
|
503
|
+
#### Tools Not Appearing
|
|
504
|
+
|
|
505
|
+
1. **Restart the IDE**: Sometimes a full restart is needed
|
|
506
|
+
2. **Check logs**: Look for MCP-related errors in the IDE's developer console
|
|
507
|
+
3. **Verify JSON syntax**: Ensure your configuration file has valid JSON
|
|
508
|
+
|
|
509
|
+
#### Permission Issues (Linux/macOS)
|
|
510
|
+
|
|
511
|
+
```bash
|
|
512
|
+
# Make the executable runnable
|
|
513
|
+
chmod +x /path/to/pomera
|
|
514
|
+
|
|
515
|
+
# If using Python, ensure it's accessible
|
|
516
|
+
which python
|
|
517
|
+
```
|
|
518
|
+
|
|
519
|
+
#### Common Error Messages
|
|
520
|
+
|
|
521
|
+
| Error | Solution |
|
|
522
|
+
|-------|----------|
|
|
523
|
+
| "Command not found" | Check the command path, ensure Python/executable is in PATH |
|
|
524
|
+
| "Connection refused" | Server crashed on startup, check logs |
|
|
525
|
+
| "Invalid JSON" | Fix syntax errors in your mcp.json file |
|
|
526
|
+
| "Permission denied" | Add execute permissions to the file |
|
|
527
|
+
|
|
528
|
+
### MCP Server Logs
|
|
529
|
+
|
|
530
|
+
To debug issues, you can check the MCP server logs:
|
|
531
|
+
|
|
532
|
+
```bash
|
|
533
|
+
# Run with verbose output
|
|
534
|
+
python pomera.py --mcp-server 2>&1 | tee mcp_debug.log
|
|
535
|
+
```
|
|
536
|
+
|
|
537
|
+
The server logs are also written to `mcp_filesystem.log` in the Pomera directory.
|
|
538
|
+
|
|
539
|
+
## ๐๏ธ Architecture
|
|
540
|
+
|
|
541
|
+
### Core Components
|
|
542
|
+
- **Main Application** (`pomera.py`) - Primary GUI and application logic
|
|
543
|
+
- **Text Processors** - Specialized modules for different text operations
|
|
544
|
+
- **Performance System** - Monitoring, caching, and optimization components
|
|
545
|
+
- **AI Integration** - AI tools and provider interfaces
|
|
546
|
+
|
|
547
|
+
### Performance Optimizations
|
|
548
|
+
- **Lazy Loading** - Modules loaded only when needed
|
|
549
|
+
- **Intelligent Caching** - Smart caching for frequently used operations
|
|
550
|
+
- **Async Processing** - Non-blocking operations for large files
|
|
551
|
+
- **Memory Efficiency** - Optimized memory usage patterns
|
|
552
|
+
|
|
553
|
+
## ๐งช Testing
|
|
554
|
+
|
|
555
|
+
For quick testing setup and procedures, see the [**Testing Quick Start Guide**](docs/TESTING_QUICK_START.md).
|
|
556
|
+
|
|
557
|
+
### Test Coverage
|
|
558
|
+
- **Functionality Tests** - Core feature validation
|
|
559
|
+
- **Performance Tests** - Startup time and memory usage
|
|
560
|
+
- **Integration Tests** - AI tools and external service integration
|
|
561
|
+
- **Regression Tests** - Ensure optimizations don't break functionality
|
|
562
|
+
|
|
563
|
+
## ๐ Performance
|
|
564
|
+
|
|
565
|
+
### Benchmarks
|
|
566
|
+
- **Startup Time** - Optimized to ~0.47 seconds
|
|
567
|
+
- **Memory Usage** - Efficient memory management with lazy loading
|
|
568
|
+
- **Processing Speed** - Async processing for large files
|
|
569
|
+
- **Responsiveness** - Non-blocking UI operations
|
|
570
|
+
|
|
571
|
+
### Optimization Features
|
|
572
|
+
- **Smart Caching** - Intelligent result caching
|
|
573
|
+
- **Lazy Loading** - Modules loaded on-demand
|
|
574
|
+
- **Memory Pools** - Efficient memory allocation
|
|
575
|
+
- **Background Processing** - Non-blocking operations
|
|
576
|
+
|
|
577
|
+
## ๐ค Contributing
|
|
578
|
+
|
|
579
|
+
### Development Setup
|
|
580
|
+
1. Fork the repository
|
|
581
|
+
2. Create a feature branch
|
|
582
|
+
3. Make your changes
|
|
583
|
+
4. Run the validation framework
|
|
584
|
+
5. Submit a pull request
|
|
585
|
+
|
|
586
|
+
### Code Style
|
|
587
|
+
- Follow PEP 8 guidelines
|
|
588
|
+
- Use type hints where appropriate
|
|
589
|
+
- Include docstrings for functions and classes
|
|
590
|
+
- Maintain test coverage for new features
|
|
591
|
+
|
|
592
|
+
### Performance Considerations
|
|
593
|
+
- Profile performance impact of changes
|
|
594
|
+
- Use lazy loading for optional features
|
|
595
|
+
- Implement proper error handling
|
|
596
|
+
- Consider memory usage implications
|
|
597
|
+
|
|
598
|
+
### Release Process (Maintainers)
|
|
599
|
+
|
|
600
|
+
#### Creating a Release
|
|
601
|
+
1. **Prepare the release**:
|
|
602
|
+
- Ensure all changes are merged to main branch
|
|
603
|
+
- Update version numbers if needed
|
|
604
|
+
- Test the application thoroughly
|
|
605
|
+
|
|
606
|
+
2. **Create and push a version tag**:
|
|
607
|
+
```bash
|
|
608
|
+
git tag v1.0.0
|
|
609
|
+
git push origin v1.0.0
|
|
610
|
+
```
|
|
611
|
+
|
|
612
|
+
3. **Automated build process**:
|
|
613
|
+
- GitHub Actions automatically builds executables for all platforms
|
|
614
|
+
- Creates GitHub release with generated release notes
|
|
615
|
+
- Uploads executables and checksums
|
|
616
|
+
|
|
617
|
+
4. **Post-release verification**:
|
|
618
|
+
- Download and test executables from the release page
|
|
619
|
+
- Verify checksums match
|
|
620
|
+
- Update documentation if needed
|
|
621
|
+
|
|
622
|
+
#### Version Numbering
|
|
623
|
+
- Use semantic versioning: `v1.0.0`, `v1.2.3`, `v2.0.0`
|
|
624
|
+
- Pre-releases: `v1.0.0-beta.1`, `v2.0.0-rc.1`
|
|
625
|
+
- Tags must start with `v` to trigger the release workflow
|
|
626
|
+
|
|
627
|
+
#### Release Testing
|
|
628
|
+
- See [**Release Testing Guide**](docs/RELEASE_TESTING.md) for comprehensive testing procedures
|
|
629
|
+
- See [**Release Process Guide**](docs/RELEASE_PROCESS.md) for detailed release procedures
|
|
630
|
+
- See [**Testing Quick Start Guide**](docs/TESTING_QUICK_START.md) for rapid testing setup
|
|
631
|
+
- Test on multiple platforms before tagging
|
|
632
|
+
- Verify all core functionality works in built executables
|
|
633
|
+
|
|
634
|
+
## ๐ License
|
|
635
|
+
|
|
636
|
+
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
|
637
|
+
|
|
638
|
+
## ๐ Acknowledgments
|
|
639
|
+
|
|
640
|
+
- Built with Python and Tkinter
|
|
641
|
+
- AI integration powered by various AI service providers
|
|
642
|
+
- Performance optimizations inspired by modern software engineering practices
|
|
643
|
+
- Community feedback and contributions
|
|
644
|
+
|
|
645
|
+
## ๐ Support
|
|
646
|
+
|
|
647
|
+
### Documentation
|
|
648
|
+
- **[Tools Documentation](docs/TOOLS_DOCUMENTATION.md)** - Comprehensive tool reference
|
|
649
|
+
- **[Troubleshooting Guide](docs/TROUBLESHOOTING.md)** - Solutions for common issues
|
|
650
|
+
- **[Release Testing Guide](docs/RELEASE_TESTING.md)** - Testing procedures
|
|
651
|
+
- **[Release Process Guide](docs/RELEASE_PROCESS.md)** - Detailed release procedures
|
|
652
|
+
- **[Testing Quick Start Guide](docs/TESTING_QUICK_START.md)** - Rapid testing setup
|
|
653
|
+
- Check the built-in help system
|
|
654
|
+
- Review the performance dashboard for optimization tips
|
|
655
|
+
|
|
656
|
+
### Issues and Bug Reports
|
|
657
|
+
- **Search existing issues** first: [GitHub Issues](https://github.com/matbanik/Pomera-AI-Commander/issues)
|
|
658
|
+
- **Report bugs** with detailed information:
|
|
659
|
+
- Operating system and version
|
|
660
|
+
- Exact error messages
|
|
661
|
+
- Steps to reproduce the issue
|
|
662
|
+
- Expected vs actual behavior
|
|
663
|
+
|
|
664
|
+
### Feature Requests
|
|
665
|
+
- Submit feature requests via [GitHub Issues](https://github.com/matbanik/Pomera-AI-Commander/issues)
|
|
666
|
+
- Use the "Feature Request" template
|
|
667
|
+
- Describe the use case and expected behavior
|
|
668
|
+
- Consider performance and compatibility implications
|
|
669
|
+
|
|
670
|
+
### Getting Help
|
|
671
|
+
1. **Check the troubleshooting guide** for common solutions
|
|
672
|
+
2. **Search existing issues** to see if your problem is known
|
|
673
|
+
3. **Create a detailed issue** if you can't find a solution
|
|
674
|
+
4. **Join discussions** for general questions and community support
|
|
675
|
+
|
|
676
|
+
---
|
|
677
|
+
|
|
678
|
+
**Pomera AI Commander** - Empowering text processing with AI, performance optimization, and MCP server integration.
|
|
679
|
+
|
|
680
|
+
*Last updated: December 2025*
|