Commit Graph

10 Commits

Author SHA1 Message Date
rob 9e0f32513f fix: artifact-ai output duplication and provider update
- Add explicit output template {result} to prevent input being appended
- Switch provider from claude to opencode-deepseek for better PlantUML generation
- Fix plantuml cleanup to extract only first diagram when AI outputs duplicates
- Add mermaid cleanup to handle duplicate diagrams
- Set result variable instead of using print() for proper output capture

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 22:11:42 -04:00
rob 6c54b35291 fix: Add smarttools and GUI dependencies as defaults
- Add smarttools dependency from git URL
- Make PyQt6 and QScintilla default dependencies (not optional)
  since artifact-editor is primarily a GUI application

This ensures `pip install artifact-editor` works out of the box
without needing to specify [gui] extra.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 20:08:25 -04:00
rob 16d284c4df docs: Add Docker section to README
- Added Docker instructions for testing without local install
- Fixed clone URL to point to Gitea

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 01:21:57 -04:00
rob 6f4d136afb Add standalone docker-compose.yml
Self-contained Docker setup that clones SmartTools from Gitea during build.
Includes cli, test, gui, and shell services.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 01:01:36 -04:00
rob d20d7e5415 Complete implementation with Docker and SmartTools
- Full PyQt6 GUI for 6 artifact formats
- artifact-ai SmartTool for AI generation
- artifact-export SmartTool for format conversion
- Interactive SVG editing with drag/resize
- Voice dictation with countdown timer
- Docker support for clean-system testing

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 23:40:40 -04:00
rob 6aa226b136 docs: Update README with interactive SVG editing features
- Add interactive SVG editing to features list
- Document click-to-select, drag-to-move, resize handles
- Add Delete key and visual editing shortcuts
- Update SVG section with full feature list
- Note that undo/redo works for visual changes too

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 14:56:06 -04:00
rob d7c64c1621 feat: Add Delete key and undo/redo for preview changes
- Add Delete key shortcut to remove selected elements from preview
- Make preview changes (move, resize, delete) undoable with Ctrl+Z
- Use QTextCursor with beginEditBlock/endEditBlock for undoable updates
- Add Delete Selected action to Edit menu

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 14:55:03 -04:00
rob a8cc90c128 feat: Add scene-based SVG editing with exact element positioning
- Use QSvgRenderer.boundsOnElement() for pixel-perfect element positioning
- Add SVGSceneManager with QGraphicsItems for selection, drag, and resize
- Auto-add IDs to elements without them to enable bounds lookup
- Fix line rendering by setting local coords before setPos()
- Scale text to fit exact renderer bounds for accurate display
- Support rect, circle, ellipse, line, text, polygon, polyline, path elements
- Add resize handles on corners when element is selected
- Sync selection between canvas and elements list

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 05:00:32 -04:00
rob 1ac0b181e1 feat: Add PyQt6 GUI with full element editing support
Major features:
- Split-view interface with code editor and live preview
- Support for PlantUML, Mermaid, and OpenSCAD formats
- Elements panel for viewing and managing diagram elements
- Add/Edit/Delete dialogs for all element types

PlantUML support:
- Parse and edit classes, interfaces, actors, components
- Add relationships with various types
- Click-to-select elements in preview

Mermaid support:
- Parse flowchart nodes with shape detection
- Edit nodes with label and shape options
- Add connections between elements
- Sequence diagram participant support

OpenSCAD support:
- Add 3D primitives (cube, sphere, cylinder) and 2D shapes
- Boolean operations (union, difference, intersection)
- Transform wrappers (translate, rotate, scale)
- Insert at cursor, end of file, or inside modules
- Detect and edit existing transforms
- 3D preview with mouse rotation controls

Technical improvements:
- In-place element replacement using source position tracking
- Format-specific parsers with position tracking
- Template system for quick diagram creation
- Syntax highlighting for all formats

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 03:06:49 -04:00
rob 6ccdd84835 Initial scaffold for artifact-editor project 2025-12-18 22:06:34 -04:00