136 lines
3.9 KiB
Markdown
136 lines
3.9 KiB
Markdown
# Artifact Editor
|
|
|
|
**AI-enhanced editor for creating diagrams, sketches, 3D models, and other artifacts from code.**
|
|
|
|
A standalone editor that can be launched from any application to create visual artifacts. Designed to integrate with discussion tools, documentation systems, and IDEs.
|
|
|
|
## Vision
|
|
|
|
Enable users to create rich visual artifacts through multiple input methods:
|
|
- **Code editing** - Write Mermaid, PlantUML, OpenSCAD, SVG directly
|
|
- **Graphical interface** - Drag-and-drop, visual editing
|
|
- **Voice input** - Describe what you want, AI generates the code
|
|
- **AI assistance** - "Add a database to this diagram", "Make the cube hollow"
|
|
|
|
## Supported Artifact Types
|
|
|
|
| Type | Description | Output Formats |
|
|
|------|-------------|----------------|
|
|
| `mermaid` | Flowcharts, sequence, ER, state diagrams | SVG, PNG, PDF |
|
|
| `plantuml` | UML diagrams (class, sequence, etc.) | SVG, PNG |
|
|
| `openscad` | 3D parametric CAD models | STL, PNG, SVG |
|
|
| `solidpython` | Python-based 3D CAD (via SolidPython) | STL, PNG, SCAD |
|
|
| `svg` | Raw SVG vector graphics | SVG |
|
|
| `asciiart` | ASCII/Unicode box drawing | TXT, PNG |
|
|
| `excalidraw` | Hand-drawn style diagrams | SVG, PNG |
|
|
| `code` | Syntax-highlighted code snippets | SVG, PNG, HTML |
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
pip install artifact-editor
|
|
|
|
# Optional renderers
|
|
npm install -g @mermaid-js/mermaid-cli # For Mermaid
|
|
sudo apt install openscad # For 3D CAD
|
|
pip install solidpython2 # For SolidPython
|
|
```
|
|
|
|
## Usage
|
|
|
|
### As a Standalone Editor
|
|
|
|
```bash
|
|
# Launch editor for a new Mermaid diagram
|
|
artifact-editor --type mermaid --output diagram.svg
|
|
|
|
# Edit an existing artifact
|
|
artifact-editor --type openscad --output model.stl --initial-file model.scad
|
|
|
|
# Headless AI generation
|
|
artifact-editor --type mermaid --output flow.svg --headless \
|
|
--prompt "Create a flowchart for user authentication"
|
|
```
|
|
|
|
### Integration with Other Applications
|
|
|
|
The editor follows a simple contract for integration:
|
|
|
|
```bash
|
|
# Launch
|
|
artifact-editor --type TYPE --output /path/to/output.svg [--project NAME]
|
|
|
|
# Exit behavior:
|
|
# - Exit code 0: Saved successfully
|
|
# stdout: "ARTIFACT_SAVED:/path/to/output.svg"
|
|
#
|
|
# - Exit code 1: Cancelled by user
|
|
# (no output)
|
|
#
|
|
# - Exit code 2: Error
|
|
# stderr: error message
|
|
```
|
|
|
|
Example integration (Python):
|
|
```python
|
|
import subprocess
|
|
|
|
result = subprocess.run([
|
|
"artifact-editor",
|
|
"--type", "mermaid",
|
|
"--output", "/tmp/diagram.svg",
|
|
"--project", "my-project"
|
|
], capture_output=True, text=True)
|
|
|
|
if result.returncode == 0:
|
|
# Parse output to get file path
|
|
for line in result.stdout.split('\n'):
|
|
if line.startswith("ARTIFACT_SAVED:"):
|
|
artifact_path = line.split(":", 1)[1]
|
|
print(f"Created: {artifact_path}")
|
|
```
|
|
|
|
## Architecture
|
|
|
|
```
|
|
artifact-editor/
|
|
├── src/artifact_editor/
|
|
│ ├── cli.py # CLI entry point
|
|
│ ├── editor.py # TUI editor (urwid-based)
|
|
│ ├── ai_assist.py # AI generation/modification
|
|
│ ├── renderers/ # Convert source to visual output
|
|
│ │ ├── mermaid.py
|
|
│ │ ├── plantuml.py
|
|
│ │ ├── openscad.py
|
|
│ │ ├── svg.py
|
|
│ │ └── ...
|
|
│ └── ui/ # UI components
|
|
│ ├── code_editor.py
|
|
│ ├── preview.py
|
|
│ └── ai_panel.py
|
|
```
|
|
|
|
## Roadmap
|
|
|
|
- [ ] Basic TUI with code editor and preview
|
|
- [ ] Mermaid renderer
|
|
- [ ] OpenSCAD/SolidPython renderer
|
|
- [ ] AI assistance integration (via SmartTools)
|
|
- [ ] Voice input (via SmartTools dictate)
|
|
- [ ] PlantUML renderer
|
|
- [ ] SVG direct editing
|
|
- [ ] Excalidraw-style sketching
|
|
- [ ] Plugin system for custom renderers
|
|
|
|
## Integration Goals
|
|
|
|
This editor is designed to integrate with:
|
|
- **orchestrated-discussions** - Add artifacts to discussion comments
|
|
- **Documentation systems** - Embed diagrams in docs
|
|
- **IDEs** - Quick diagram creation from code
|
|
- **Chat applications** - Share visual explanations
|
|
|
|
## License
|
|
|
|
MIT
|