openconvert 1.0.0__tar.gz → 1.1.0__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.
Files changed (64) hide show
  1. {openconvert-1.0.0 → openconvert-1.1.0}/MANIFEST.in +3 -0
  2. {openconvert-1.0.0 → openconvert-1.1.0}/PKG-INFO +2 -2
  3. {openconvert-1.0.0 → openconvert-1.1.0}/pyproject.toml +7 -2
  4. {openconvert-1.0.0 → openconvert-1.1.0}/setup.py +3 -2
  5. openconvert-1.1.0/src/openconvert/__init__.py +100 -0
  6. {openconvert-1.0.0 → openconvert-1.1.0/src}/openconvert/__main__.py +1 -1
  7. {openconvert-1.0.0 → openconvert-1.1.0/src}/openconvert/openconvert_cli.py +1 -4
  8. openconvert-1.1.0/src/openconvert.egg-info/PKG-INFO +504 -0
  9. {openconvert-1.0.0 → openconvert-1.1.0/src}/openconvert.egg-info/SOURCES.txt +11 -9
  10. openconvert-1.1.0/src/openconvert.egg-info/dependency_links.txt +1 -0
  11. openconvert-1.1.0/src/openconvert.egg-info/entry_points.txt +2 -0
  12. openconvert-1.1.0/src/openconvert.egg-info/not-zip-safe +1 -0
  13. openconvert-1.1.0/src/openconvert.egg-info/requires.txt +17 -0
  14. openconvert-1.1.0/src/openconvert.egg-info/top_level.txt +1 -0
  15. openconvert-1.0.0/openconvert/__init__.py +0 -112
  16. openconvert-1.0.0/service/README.md +0 -162
  17. openconvert-1.0.0/service/network_config.yaml +0 -97
  18. openconvert-1.0.0/service/run_agent.py +0 -509
  19. openconvert-1.0.0/service/test_end_to_end.py +0 -416
  20. openconvert-1.0.0/service/test_txt_to_md.py +0 -117
  21. {openconvert-1.0.0 → openconvert-1.1.0}/.readthedocs.yaml +0 -0
  22. {openconvert-1.0.0 → openconvert-1.1.0}/LICENSE +0 -0
  23. {openconvert-1.0.0 → openconvert-1.1.0}/PYPI_UPLOAD.md +0 -0
  24. {openconvert-1.0.0 → openconvert-1.1.0}/README.md +0 -0
  25. {openconvert-1.0.0 → openconvert-1.1.0}/demo.py +0 -0
  26. {openconvert-1.0.0 → openconvert-1.1.0}/docs/_build/html/_sources/api/cli.rst.txt +0 -0
  27. {openconvert-1.0.0 → openconvert-1.1.0}/docs/_build/html/_sources/api/client.rst.txt +0 -0
  28. {openconvert-1.0.0 → openconvert-1.1.0}/docs/_build/html/_sources/api/openconvert.rst.txt +0 -0
  29. {openconvert-1.0.0 → openconvert-1.1.0}/docs/_build/html/_sources/deployment/network-setup.rst.txt +0 -0
  30. {openconvert-1.0.0 → openconvert-1.1.0}/docs/_build/html/_sources/development/contributing.rst.txt +0 -0
  31. {openconvert-1.0.0 → openconvert-1.1.0}/docs/_build/html/_sources/examples/batch-processing.rst.txt +0 -0
  32. {openconvert-1.0.0 → openconvert-1.1.0}/docs/_build/html/_sources/examples/python-integration.rst.txt +0 -0
  33. {openconvert-1.0.0 → openconvert-1.1.0}/docs/_build/html/_sources/getting-started/basic-usage.rst.txt +0 -0
  34. {openconvert-1.0.0 → openconvert-1.1.0}/docs/_build/html/_sources/getting-started/installation.rst.txt +0 -0
  35. {openconvert-1.0.0 → openconvert-1.1.0}/docs/_build/html/_sources/getting-started/quickstart.rst.txt +0 -0
  36. {openconvert-1.0.0 → openconvert-1.1.0}/docs/_build/html/_sources/index.rst.txt +0 -0
  37. {openconvert-1.0.0 → openconvert-1.1.0}/docs/_build/html/_sources/user-guide/advanced-usage.rst.txt +0 -0
  38. {openconvert-1.0.0 → openconvert-1.1.0}/docs/_build/html/_sources/user-guide/cli-reference.rst.txt +0 -0
  39. {openconvert-1.0.0 → openconvert-1.1.0}/docs/_build/html/_sources/user-guide/python-api.rst.txt +0 -0
  40. {openconvert-1.0.0 → openconvert-1.1.0}/docs/_build/html/_sources/user-guide/supported-formats.rst.txt +0 -0
  41. {openconvert-1.0.0 → openconvert-1.1.0}/docs/_build/html/_sources/user-guide/troubleshooting.rst.txt +0 -0
  42. {openconvert-1.0.0 → openconvert-1.1.0}/docs/api/cli.rst +0 -0
  43. {openconvert-1.0.0 → openconvert-1.1.0}/docs/api/client.rst +0 -0
  44. {openconvert-1.0.0 → openconvert-1.1.0}/docs/api/openconvert.rst +0 -0
  45. {openconvert-1.0.0 → openconvert-1.1.0}/docs/conf.py +0 -0
  46. {openconvert-1.0.0 → openconvert-1.1.0}/docs/deployment/network-setup.rst +0 -0
  47. {openconvert-1.0.0 → openconvert-1.1.0}/docs/development/contributing.rst +0 -0
  48. {openconvert-1.0.0 → openconvert-1.1.0}/docs/examples/batch-processing.rst +0 -0
  49. {openconvert-1.0.0 → openconvert-1.1.0}/docs/examples/python-integration.rst +0 -0
  50. {openconvert-1.0.0 → openconvert-1.1.0}/docs/getting-started/basic-usage.rst +0 -0
  51. {openconvert-1.0.0 → openconvert-1.1.0}/docs/getting-started/installation.rst +0 -0
  52. {openconvert-1.0.0 → openconvert-1.1.0}/docs/getting-started/quickstart.rst +0 -0
  53. {openconvert-1.0.0 → openconvert-1.1.0}/docs/index.rst +0 -0
  54. {openconvert-1.0.0 → openconvert-1.1.0}/docs/requirements.txt +0 -0
  55. {openconvert-1.0.0 → openconvert-1.1.0}/docs/user-guide/advanced-usage.rst +0 -0
  56. {openconvert-1.0.0 → openconvert-1.1.0}/docs/user-guide/cli-reference.rst +0 -0
  57. {openconvert-1.0.0 → openconvert-1.1.0}/docs/user-guide/python-api.rst +0 -0
  58. {openconvert-1.0.0 → openconvert-1.1.0}/docs/user-guide/supported-formats.rst +0 -0
  59. {openconvert-1.0.0 → openconvert-1.1.0}/docs/user-guide/troubleshooting.rst +0 -0
  60. {openconvert-1.0.0 → openconvert-1.1.0}/scripts/README.md +0 -0
  61. {openconvert-1.0.0 → openconvert-1.1.0}/scripts/launch_agents.py +0 -0
  62. {openconvert-1.0.0 → openconvert-1.1.0}/scripts/launch_agents.sh +0 -0
  63. {openconvert-1.0.0 → openconvert-1.1.0}/setup.cfg +0 -0
  64. {openconvert-1.0.0 → openconvert-1.1.0/src}/openconvert/client.py +0 -0
@@ -10,6 +10,9 @@ include .readthedocs.yaml
10
10
  # Include scripts
11
11
  recursive-include scripts *.py *.sh *.md
12
12
 
13
+ # Include source code (src layout)
14
+ recursive-include src *.py
15
+
13
16
  # Exclude unnecessary files
14
17
  global-exclude *.pyc
15
18
  global-exclude __pycache__
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openconvert
3
- Version: 1.0.0
3
+ Version: 1.1.0
4
4
  Summary: CLI tool for connecting to OpenConvert OpenAgents network for file conversion
5
5
  Home-page: https://github.com/acenta-ai/openconvert
6
6
  Author: OpenAgents Team
@@ -35,7 +35,7 @@ Requires-Python: >=3.8
35
35
  Description-Content-Type: text/markdown
36
36
  License-File: LICENSE
37
37
  Requires-Dist: pyyaml>=5.4.0
38
- Requires-Dist: openagents>=0.5.0
38
+ Requires-Dist: openagents>=0.5.1
39
39
  Provides-Extra: dev
40
40
  Requires-Dist: pytest>=6.0.0; extra == "dev"
41
41
  Requires-Dist: pytest-asyncio>=0.18.0; extra == "dev"
@@ -44,7 +44,7 @@ classifiers = [
44
44
  requires-python = ">=3.8"
45
45
  dependencies = [
46
46
  "pyyaml>=5.4.0",
47
- "openagents>=0.5.0",
47
+ "openagents>=0.5.1",
48
48
  ]
49
49
  dynamic = ["version"]
50
50
 
@@ -78,6 +78,7 @@ openconvert = "openconvert.openconvert_cli:main"
78
78
  include-package-data = true
79
79
 
80
80
  [tool.setuptools.packages.find]
81
+ where = ["src"]
81
82
  include = ["openconvert*"]
82
83
 
83
84
  [tool.setuptools.dynamic]
@@ -115,6 +116,8 @@ warn_unused_ignores = true
115
116
  warn_no_return = true
116
117
  warn_unreachable = true
117
118
  strict_equality = true
119
+ # mypy needs to know the package path for src layout
120
+ mypy_path = "src"
118
121
 
119
122
  [tool.pytest.ini_options]
120
123
  minversion = "6.0"
@@ -122,4 +125,6 @@ addopts = "-ra -q"
122
125
  testpaths = [
123
126
  "tests",
124
127
  ]
125
- asyncio_mode = "auto"
128
+ asyncio_mode = "auto"
129
+ # pytest needs to know where to find the package
130
+ pythonpath = ["src"]
@@ -15,7 +15,7 @@ def read_readme():
15
15
 
16
16
  # Get version from __init__.py
17
17
  def get_version():
18
- init_path = os.path.join(os.path.dirname(__file__), "openconvert", "__init__.py")
18
+ init_path = os.path.join(os.path.dirname(__file__), "src", "openconvert", "__init__.py")
19
19
  with open(init_path, "r", encoding="utf-8") as f:
20
20
  content = f.read()
21
21
  version_match = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]", content, re.M)
@@ -39,7 +39,8 @@ setup(
39
39
  "Source": "https://github.com/acenta-ai/openconvert",
40
40
  "Documentation": "https://openconvert.readthedocs.io/",
41
41
  },
42
- packages=find_packages(),
42
+ package_dir={"": "src"},
43
+ packages=find_packages(where="src"),
43
44
  include_package_data=True,
44
45
  install_requires=[
45
46
  "pyyaml>=5.4.0",
@@ -0,0 +1,100 @@
1
+ """
2
+ OpenConvert CLI Tool
3
+
4
+ A command-line interface for connecting to the OpenConvert OpenAgents network
5
+ to discover file conversion services and perform file conversions.
6
+ """
7
+
8
+ import asyncio
9
+ from pathlib import Path
10
+ from typing import Optional, List
11
+
12
+ __version__ = "1.1.0"
13
+ __author__ = "OpenAgents Team"
14
+ __email__ = "team@openagents.com"
15
+
16
+ # Import the async convert function
17
+ try:
18
+ from openconvert.openconvert_cli import convert as _async_convert
19
+ except ImportError:
20
+ from openconvert_cli import convert as _async_convert
21
+
22
+
23
+ def convert(
24
+ input_files: List[Path],
25
+ output_path: Path,
26
+ host: str = "network.openconvert.ai",
27
+ port: int = 8765,
28
+ ) -> bool:
29
+ """
30
+ Convert files using the OpenConvert network.
31
+
32
+ Args:
33
+ input_files: List of input file paths to convert
34
+ output_path: Output file path
35
+ host: OpenConvert network host (default: network.openconvert.ai)
36
+ port: OpenConvert network port (default: 8765)
37
+
38
+ Returns:
39
+ bool: True if conversion successful, False otherwise
40
+ """
41
+ try:
42
+ result = asyncio.run(_async_convert(
43
+ input_files=input_files,
44
+ output_path=output_path,
45
+ host=host,
46
+ port=port
47
+ ))
48
+ return result
49
+ except Exception as e:
50
+ print(f"Conversion failed: {e}")
51
+ return False
52
+
53
+
54
+ def convert_file(
55
+ input_path: str,
56
+ output_path: str,
57
+ host: str = "network.openconvert.ai",
58
+ port: int = 8765
59
+ ) -> bool:
60
+ """
61
+ Convert a single file using the OpenConvert network.
62
+
63
+ Args:
64
+ input_path: Path to input file
65
+ output_path: Path for output file
66
+ host: OpenConvert network host (default: network.openconvert.ai)
67
+ port: OpenConvert network port (default: 8765)
68
+
69
+ Returns:
70
+ bool: True if conversion successful, False otherwise
71
+
72
+ Example:
73
+ >>> from openconvert import convert_file
74
+ >>> success = convert_file("document.txt", "document.pdf")
75
+ >>> if success:
76
+ ... print("Conversion completed!")
77
+ """
78
+ try:
79
+ input_files = [Path(input_path)]
80
+ output_file = Path(output_path)
81
+
82
+ return convert(
83
+ input_files=input_files,
84
+ output_path=output_file,
85
+ host=host,
86
+ port=port
87
+ )
88
+ except Exception as e:
89
+ print(f"File conversion failed: {e}")
90
+ return False
91
+
92
+
93
+ # Export main functions
94
+ __all__ = [
95
+ "convert",
96
+ "convert_file",
97
+ "__version__",
98
+ "__author__",
99
+ "__email__",
100
+ ]
@@ -7,7 +7,7 @@ Allows running the OpenConvert CLI as a module:
7
7
  """
8
8
 
9
9
  import sys
10
- from .openconvert_cli import main
10
+ from openconvert.openconvert_cli import main
11
11
 
12
12
  if __name__ == "__main__":
13
13
  sys.exit(main())
@@ -25,10 +25,7 @@ current_dir = Path(__file__).resolve().parent
25
25
  openagents_root = current_dir.parent.parent
26
26
  sys.path.insert(0, str(openagents_root / "src"))
27
27
 
28
- try:
29
- from .client import OpenConvertClient
30
- except ImportError:
31
- from client import OpenConvertClient
28
+ from openconvert.client import OpenConvertClient
32
29
 
33
30
  # Set up logging
34
31
  logging.basicConfig(
@@ -0,0 +1,504 @@
1
+ Metadata-Version: 2.4
2
+ Name: openconvert
3
+ Version: 1.1.0
4
+ Summary: CLI tool for connecting to OpenConvert OpenAgents network for file conversion
5
+ Home-page: https://github.com/acenta-ai/openconvert
6
+ Author: OpenAgents Team
7
+ Author-email: OpenAgents Team <team@openagents.com>
8
+ Maintainer: OpenAgents Team
9
+ Maintainer-email: OpenAgents Team <team@openagents.com>
10
+ License: MIT
11
+ Project-URL: Homepage, https://github.com/acenta-ai/openconvert
12
+ Project-URL: Documentation, https://openconvert.readthedocs.io/
13
+ Project-URL: Repository, https://github.com/acenta-ai/openconvert
14
+ Project-URL: Bug Reports, https://github.com/acenta-ai/openconvert/issues
15
+ Keywords: file conversion,openagents,cli,network,format conversion,document conversion
16
+ Classifier: Development Status :: 4 - Beta
17
+ Classifier: Intended Audience :: Developers
18
+ Classifier: Intended Audience :: End Users/Desktop
19
+ Classifier: License :: OSI Approved :: MIT License
20
+ Classifier: Operating System :: OS Independent
21
+ Classifier: Programming Language :: Python :: 3
22
+ Classifier: Programming Language :: Python :: 3.8
23
+ Classifier: Programming Language :: Python :: 3.9
24
+ Classifier: Programming Language :: Python :: 3.10
25
+ Classifier: Programming Language :: Python :: 3.11
26
+ Classifier: Programming Language :: Python :: 3.12
27
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
28
+ Classifier: Topic :: Communications
29
+ Classifier: Topic :: Internet
30
+ Classifier: Topic :: Multimedia :: Graphics :: Graphics Conversion
31
+ Classifier: Topic :: Office/Business :: Office Suites
32
+ Classifier: Topic :: Text Processing :: Markup
33
+ Classifier: Topic :: Utilities
34
+ Requires-Python: >=3.8
35
+ Description-Content-Type: text/markdown
36
+ License-File: LICENSE
37
+ Requires-Dist: pyyaml>=5.4.0
38
+ Requires-Dist: openagents>=0.5.1
39
+ Provides-Extra: dev
40
+ Requires-Dist: pytest>=6.0.0; extra == "dev"
41
+ Requires-Dist: pytest-asyncio>=0.18.0; extra == "dev"
42
+ Requires-Dist: black>=22.0.0; extra == "dev"
43
+ Requires-Dist: flake8>=4.0.0; extra == "dev"
44
+ Requires-Dist: mypy>=0.910; extra == "dev"
45
+ Provides-Extra: docs
46
+ Requires-Dist: sphinx>=4.0.0; extra == "docs"
47
+ Requires-Dist: sphinx-rtd-theme>=1.0.0; extra == "docs"
48
+ Requires-Dist: myst-parser>=0.17.0; extra == "docs"
49
+ Provides-Extra: service
50
+ Requires-Dist: agconvert; extra == "service"
51
+ Dynamic: author
52
+ Dynamic: home-page
53
+ Dynamic: license-file
54
+ Dynamic: maintainer
55
+ Dynamic: requires-python
56
+
57
+ <div align="center">
58
+
59
+ # 🔄 OpenConvert CLI
60
+
61
+ ### *Intelligent File Conversion for the Distributed Age*
62
+
63
+ [![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)
64
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
65
+ [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](http://makeapullrequest.com)
66
+ [![OpenAgents](https://img.shields.io/badge/powered%20by-OpenAgents-orange.svg)](https://github.com/openagents/openagents)
67
+
68
+ *Transform any file to any format using distributed AI agents*
69
+
70
+ [🚀 Quick Start](#-quick-start) • [📖 Documentation](#-usage) • [🤝 Contributing](#-contributing) • [💬 Community](#-community)
71
+
72
+ </div>
73
+
74
+ ---
75
+
76
+ ## 🌟 **What is OpenConvert?**
77
+
78
+ OpenConvert CLI is a command-line tool that connects to distributed OpenAgents networks to discover and utilize file conversion services. Instead of installing multiple conversion tools, OpenConvert leverages distributed agents to handle various file conversion tasks.
79
+
80
+ ### ✅ **Currently Implemented**
81
+
82
+ 🔗 **Network-Powered** • Connect to OpenAgents conversion networks
83
+ 🤖 **Prompt Support** • Use natural language prompts (agent-dependent)
84
+ 📁 **Batch Processing** • Convert files and directories
85
+ 🔍 **Auto-Detection** • Automatic MIME type detection
86
+ 🛡️ **Error Handling** • Comprehensive error reporting
87
+ ⚡ **Async Operations** • Non-blocking network operations
88
+ 🔧 **Python API** • Import and use `from openconvert import convert`
89
+ 📊 **Format Discovery** • `--list-formats` to see available conversions
90
+
91
+ ### 🚧 **Planned Features**
92
+
93
+ 🚀 **Enhanced Format Support** • Expand to 50+ formats as agents join
94
+ 🐳 **Easy Deployment** • Docker and Kubernetes support
95
+ ⚙️ **Configuration Files** • YAML config for defaults and preferences
96
+
97
+ ---
98
+
99
+ ## 🎬 **See It In Action**
100
+
101
+ ```bash
102
+ # Convert a document with AI enhancement
103
+ openconvert -i data.csv -o report.pdf --prompt "Create a professional report with charts"
104
+
105
+ # Batch convert an entire photo library
106
+ openconvert -i photos/ -o pdfs/ --from image/jpeg --to application/pdf
107
+
108
+ # Simple format conversion
109
+ openconvert -i document.txt -o document.pdf
110
+
111
+ # Discover available conversions
112
+ openconvert --list-formats
113
+ ```
114
+
115
+ > 💡 **Pro Tip**: Use natural language prompts to guide conversions (depends on agent capabilities)!
116
+
117
+ ---
118
+
119
+ ## 🚀 **Quick Start**
120
+
121
+ ### Installation
122
+
123
+ ```bash
124
+ # Currently: Install from source
125
+ git clone https://github.com/openagents/openconvert.git
126
+ cd openconvert
127
+ pip install -e .
128
+
129
+ # Future: PyPI package (planned)
130
+ # pip install openconvert
131
+ ```
132
+
133
+ ### Your First Conversion
134
+
135
+ ```bash
136
+ # Start an OpenConvert network (one-time setup)
137
+ openagents launch-network demos/openconvert/network_config.yaml
138
+
139
+ # Launch some conversion agents
140
+ python demos/openconvert/run_agent.py doc &
141
+ python demos/openconvert/run_agent.py image &
142
+
143
+ # Convert your first file!
144
+ openconvert -i document.txt -o document.pdf
145
+ ```
146
+
147
+ That's it! 🎉
148
+
149
+ > ⚠️ **Current Status**: This is an early-stage project. Basic functionality works, but many advanced features are still in development.
150
+
151
+ ---
152
+
153
+ ## 📖 **Usage**
154
+
155
+ ### **Basic Syntax**
156
+
157
+ ```bash
158
+ openconvert -i INPUT -o OUTPUT [OPTIONS]
159
+ ```
160
+
161
+ ### **Real-World Examples**
162
+
163
+ <details>
164
+ <summary><b>📄 Document Conversions</b></summary>
165
+
166
+ ```bash
167
+ # Text to PDF with custom styling
168
+ openconvert -i notes.txt -o notes.pdf --prompt "Use a professional layout with headers"
169
+
170
+ # Markdown to Word document
171
+ openconvert -i README.md -o README.docx
172
+
173
+ # CSV to formatted Excel with charts
174
+ openconvert -i sales.csv -o sales.xlsx --prompt "Add charts and formatting"
175
+ ```
176
+ </details>
177
+
178
+ <details>
179
+ <summary><b>🖼️ Image Processing</b></summary>
180
+
181
+ ```bash
182
+ # Convert and compress images
183
+ openconvert -i photos/ -o thumbnails/ --from image/jpeg --to image/webp --prompt "Resize to 800px width"
184
+
185
+ # Create PDF from images
186
+ openconvert -i scans/ -o document.pdf --from image/png --to application/pdf
187
+
188
+ # Batch image format conversion
189
+ openconvert -i raw_images/ -o processed/ --from image/tiff --to image/png
190
+ ```
191
+ </details>
192
+
193
+ <details>
194
+ <summary><b>🎵 Media Files</b></summary>
195
+
196
+ ```bash
197
+ # Audio format conversion
198
+ openconvert -i music.wav -o music.mp3 --prompt "High quality encoding"
199
+
200
+ # Video format conversion
201
+ openconvert -i video.avi -o video.mp4 --prompt "Optimize for web streaming"
202
+
203
+ # Extract audio from video
204
+ openconvert -i movie.mp4 -o soundtrack.mp3
205
+ ```
206
+ </details>
207
+
208
+ <details>
209
+ <summary><b>🗂️ Archives & Data</b></summary>
210
+
211
+ ```bash
212
+ # Create compressed archives
213
+ openconvert -i project/ -o project.zip
214
+
215
+ # Convert between archive formats
216
+ openconvert -i backup.rar -o backup.tar.gz
217
+
218
+ # JSON to other formats
219
+ openconvert -i data.json -o data.xlsx --prompt "Create tables with proper headers"
220
+ ```
221
+ </details>
222
+
223
+ ### **Command-Line Options**
224
+
225
+ | Option | Description | Example |
226
+ |--------|-------------|---------|
227
+ | `-i, --input` | Input file or directory | `-i documents/` |
228
+ | `-o, --output` | Output file or directory | `-o converted/` |
229
+ | `--from` | Source MIME type | `--from image/png` |
230
+ | `--to` | Target MIME type | `--to application/pdf` |
231
+ | `--prompt` | AI conversion instructions | `--prompt "Compress by 50%"` |
232
+ | `--host` | Network host | `--host remote.example.com` |
233
+ | `--port` | Network port | `--port 8765` |
234
+ | `-v, --verbose` | Detailed output | `-v` |
235
+ | `-q, --quiet` | Minimal output | `-q` |
236
+ | `--list-formats` | Discover available conversions | `--list-formats` |
237
+
238
+ ---
239
+
240
+ ## 🌐 **Supported Formats**
241
+
242
+ <div align="center">
243
+
244
+ | Category | Formats | Count |
245
+ |----------|---------|-------|
246
+ | **📄 Documents** | txt, pdf, docx, html, md, rtf, csv, xlsx, epub | 9+ |
247
+ | **🖼️ Images** | png, jpg, gif, bmp, tiff, svg, webp, ico | 8+ |
248
+ | **🎵 Audio** | mp3, wav, ogg, flac, aac, m4a | 6+ |
249
+ | **🎬 Video** | mp4, avi, mkv, mov, webm, gif | 6+ |
250
+ | **🗜️ Archives** | zip, rar, 7z, tar, gz, bz2 | 6+ |
251
+ | **💻 Code** | json, xml, yaml, html, css, js, py | 7+ |
252
+ | **🎯 3D Models** | stl, obj, fbx, ply, glb | 5+ |
253
+
254
+ **Total: 50+ formats supported!**
255
+
256
+ </div>
257
+
258
+ > 📈 **Growing Library**: New formats added regularly as agents join the network
259
+
260
+ ---
261
+
262
+ ## 🏗️ **Network Setup**
263
+
264
+ ### **Quick Network Setup**
265
+
266
+ ```bash
267
+ # 1. Clone the OpenAgents repository
268
+ git clone https://github.com/openagents/openagents.git
269
+ cd openagents
270
+
271
+ # 2. Start the network
272
+ openagents launch-network demos/openconvert/network_config.yaml
273
+
274
+ # 3. Launch conversion agents (in separate terminals)
275
+ python demos/openconvert/run_agent.py doc # Document conversions
276
+ python demos/openconvert/run_agent.py image # Image processing
277
+ python demos/openconvert/run_agent.py audio # Audio conversions
278
+ python demos/openconvert/run_agent.py video # Video processing
279
+ ```
280
+
281
+ ### **Production Deployment (Planned)**
282
+
283
+ > 🚧 **Coming Soon**: Docker and Kubernetes deployment configurations are being developed.
284
+ >
285
+ > Currently: Use the manual setup method above for development and testing.
286
+
287
+ ---
288
+
289
+ ## 🔧 **Advanced Usage**
290
+
291
+ ### **Batch Processing Power**
292
+
293
+ ```bash
294
+ # Convert all images in a folder structure
295
+ find ./photos -name "*.raw" -exec openconvert -i {} -o {}.jpg \;
296
+
297
+ # Parallel processing with xargs
298
+ ls *.txt | xargs -I {} -P 4 openconvert -i {} -o {}.pdf
299
+
300
+ # Directory-wide conversions
301
+ openconvert -i ./documents --from text/plain --to application/pdf --prompt "Professional formatting"
302
+ ```
303
+
304
+ ### **Python Integration**
305
+
306
+ ```python
307
+ # Simple file conversion
308
+ from openconvert import convert_file
309
+
310
+ success = convert_file("document.txt", "document.pdf")
311
+ if success:
312
+ print("✅ Conversion successful!")
313
+
314
+ # Advanced batch conversion
315
+ from openconvert import convert
316
+ from pathlib import Path
317
+
318
+ success = convert(
319
+ input_files=[Path("file1.txt"), Path("file2.txt")],
320
+ output_path=Path("merged.pdf"),
321
+ from_format="text/plain",
322
+ to_format="application/pdf",
323
+ prompt="Merge into single document with table of contents"
324
+ )
325
+
326
+ # Advanced async usage (for custom integrations)
327
+ from openconvert.client import OpenConvertClient
328
+
329
+ async def custom_conversion():
330
+ client = OpenConvertClient()
331
+ await client.connect("my-network.com", 8765)
332
+
333
+ result = await client.convert_file(
334
+ input_file=Path("data.xlsx"),
335
+ output_file=Path("report.pdf"),
336
+ source_format="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
337
+ target_format="application/pdf",
338
+ prompt="Create executive summary with charts"
339
+ )
340
+
341
+ await client.disconnect()
342
+ return result
343
+ ```
344
+
345
+ ### **Configuration Files (Planned)**
346
+
347
+ > 🚧 **Coming Soon**: Configuration file support is planned for future releases.
348
+
349
+ ---
350
+
351
+ ## 🛠️ **Development**
352
+
353
+ ### **Project Structure**
354
+
355
+ ```
356
+ openconvert/
357
+ ├── 📁 openconvert/ # Main package
358
+ │ ├── 🐍 __init__.py # Package init
359
+ │ ├── 🖥️ openconvert_cli.py # CLI interface
360
+ │ ├── 🌐 client.py # Network client
361
+ │ └── 📄 __main__.py # Module entry
362
+ ├── 🧪 tests/ # Test suite
363
+ ├── 📖 docs/ # Documentation
364
+ ├── 🐳 docker/ # Docker configs
365
+ ├── ⚙️ setup.py # Installation
366
+ └── 📋 README.md # This file
367
+ ```
368
+
369
+ ### **Contributing Workflow**
370
+
371
+ ```bash
372
+ # 1. Fork & clone
373
+ git clone https://github.com/yourusername/openconvert.git
374
+ cd openconvert
375
+
376
+ # 2. Create feature branch
377
+ git checkout -b feature/amazing-feature
378
+
379
+ # 3. Set up development environment
380
+ pip install -e ".[dev]"
381
+ pre-commit install
382
+
383
+ # 4. Make changes & test
384
+ pytest tests/
385
+ black openconvert/
386
+ flake8 openconvert/
387
+
388
+ # 5. Submit PR
389
+ git push origin feature/amazing-feature
390
+ ```
391
+
392
+ ### **Running Tests**
393
+
394
+ ```bash
395
+ # Unit tests
396
+ pytest tests/
397
+
398
+ # Integration tests (requires network)
399
+ pytest tests/integration/ --network
400
+
401
+ # Performance tests
402
+ pytest tests/performance/ --benchmark
403
+
404
+ # Coverage report
405
+ pytest --cov=openconvert --cov-report=html
406
+ ```
407
+
408
+ ---
409
+
410
+ ## 🤝 **Contributing**
411
+
412
+ We ❤️ contributions! Here's how you can help:
413
+
414
+ ### **🐛 Found a Bug?**
415
+ - [Open an issue](https://github.com/openagents/openconvert/issues/new?template=bug_report.md)
416
+ - Include reproduction steps
417
+ - Mention your OS and Python version
418
+
419
+ ### **💡 Have an Idea?**
420
+ - [Start a discussion](https://github.com/openagents/openconvert/discussions)
421
+ - Propose new features or improvements
422
+ - Share your use cases
423
+
424
+ ### **🛠️ Want to Code?**
425
+ - Check [good first issues](https://github.com/openagents/openconvert/labels/good%20first%20issue)
426
+ - Read our [contributing guide](CONTRIBUTING.md)
427
+ - Join our [developer Discord](https://discord.gg/openagents)
428
+
429
+ ### **📝 Improve Documentation?**
430
+ - Fix typos or unclear sections
431
+ - Add examples and tutorials
432
+ - Translate to other languages
433
+
434
+ ---
435
+
436
+ ## 💬 **Community**
437
+
438
+ <div align="center">
439
+
440
+ [![Discord](https://img.shields.io/discord/123456789?logo=discord&label=Discord)](https://discord.gg/openagents)
441
+ [![Twitter Follow](https://img.shields.io/twitter/follow/openagents?style=social)](https://twitter.com/openagents)
442
+ [![GitHub Discussions](https://img.shields.io/github/discussions/openagents/openconvert)](https://github.com/openagents/openconvert/discussions)
443
+
444
+ </div>
445
+
446
+ - **💬 Chat**: [Discord Server](https://discord.gg/openagents)
447
+ - **🐦 Updates**: [@openagents](https://twitter.com/openagents)
448
+ - **💡 Discussions**: [GitHub Discussions](https://github.com/openagents/openconvert/discussions)
449
+ - **📧 Email**: hello@openagents.org
450
+
451
+ ---
452
+
453
+ ## 🗺️ **Roadmap**
454
+
455
+ ### **🚀 Coming Soon**
456
+
457
+ - [ ] **Plugin System** - Custom conversion agents
458
+ - [ ] **Web Interface** - Browser-based UI
459
+ - [ ] **API Gateway** - REST API for integrations
460
+ - [ ] **Cloud Hosting** - Managed OpenConvert service
461
+ - [ ] **Mobile Apps** - iOS and Android clients
462
+
463
+ ### **🎯 Long Term**
464
+
465
+ - [ ] **AI-Generated Agents** - Automatic agent creation
466
+ - [ ] **Blockchain Integration** - Decentralized agent rewards
467
+ - [ ] **Real-time Collaboration** - Multi-user conversion workflows
468
+ - [ ] **Format Prediction** - ML-powered format suggestions
469
+
470
+ ---
471
+
472
+ ## 🏆 **Acknowledgments**
473
+
474
+ Special thanks to:
475
+
476
+ - **OpenAgents Team** - For the amazing framework
477
+ - **Contributors** - Everyone who helps improve OpenConvert
478
+ - **Community** - Users who provide feedback and ideas
479
+ - **Dependencies** - All the great open source libraries we use
480
+
481
+ ### **Built With**
482
+
483
+ - [OpenAgents](https://github.com/openagents/openagents) - Distributed agent framework
484
+ - [Click](https://click.palletsprojects.com/) - Command line interface
485
+ - [AsyncIO](https://docs.python.org/3/library/asyncio.html) - Asynchronous programming
486
+ - [Typer](https://typer.tiangolo.com/) - CLI framework
487
+
488
+ ---
489
+
490
+ ## 📄 **License**
491
+
492
+ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
493
+
494
+ ---
495
+
496
+ <div align="center">
497
+
498
+ **[⭐ Star this repo](https://github.com/openagents/openconvert) if you found it helpful!**
499
+
500
+ Made with ❤️ by the OpenAgents community
501
+
502
+ *Transforming files, one conversion at a time* 🔄
503
+
504
+ </div>