Spaces:
Sleeping
Sleeping
Commit History
-
refactor: remove duplicate AgentResponse/ChatResult dataclasses from core/types
6657e32 -
refactor: convert PipelineResult from dataclass to Pydantic BaseModel
- Replace @dataclass with Pydantic BaseModel - Add model_config with arbitrary_types_allowed for ExecutionResult.cq.Workplane - Change exported_files default to Field(default_factory=dict) - Add TestPipelineResultModel with model_dump and default_exported_files tests - All 9 tests pass Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>2ebc6f1 -
refactor: add ToolConfig pydantic model, replace tool_config dicts
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>cdccbe3 -
refactor: extract derive_part_name, remove dead code from prompts.py
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>44c1e10 -
feat: add 3MF export and /api/models/{name}.3mf endpoint
- Add export_3mf() function to core/executor.py for slicer-ready 3MF format - Update export_all() to include 3MF alongside STEP and STL - Add GET /api/models/{name}.3mf endpoint to server/web.py - Add TestExport3MF test class with test_export_3mf and test_export_all_includes_3mf tests - All 217 tests pass including 2 new 3MF-specific tests This adds 3MF support for Cura/PrusaSlicer/Bambu Studio compatibility.38cfebe -
refactor: eliminate all Serializer classes, use Pydantic model_dump() directly
- Delete core/serializers.py entirely - Remove CAMResultSerializer from core/cam.py - ExecutionResult uses Field(serialization_alias=...) + model_dump(by_alias=True) - CNCValidationResult uses @computed_field for error_count/warning_count - All callers updated: .model_dump() replaces Serializer.to_dict() - 196 tests passing, zero Serializer references remain Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>2330e12 -
refactor: typed Pydantic config + Pydantic result models, eliminate dict access
- Replace all dict[str, Any] config fields with typed Pydantic sub-models (ServerConfig, PathsConfig, BackendsConfig, OrchestrationConfig, ValidationConfig, ExportConfig, CAMConfig, AgentConfig, RoutingConfig) - Convert ExecutionResult, CNCValidationResult, CNCIssue, CAMResult from dataclasses to Pydantic BaseModel with to_api_dict() methods - Simplify serializers to thin wrappers calling to_api_dict() - Update all 8 consumer files from dict bracket/get access to attribute access - 197 tests passing Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>e660ef7
-
feat(cam): add CAMPlan Pydantic model for structured output
9f38d9a -
feat(cam): add generate_gcode function with ocp-freecad-cam wrapper
Wraps ocp-freecad-cam to convert CadQuery shapes into G-code strings. Loads default tool config, post-processor, and stock offset from config.yaml cam section with hardcoded fallbacks. Returns CAMResult with graceful failure when ocp-freecad-cam is not installed. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>31d5bcb -
feat(cam): add CAMResult dataclass and serializer
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>f259b88 -
refactor: config-drive all backends, use LLMBackend ABC from types
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>33f166d -
refactor: config-drive CNC validation thresholds
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>ae6029b -
feat: add BackendFactory registry for centralized backend creation
e787a71 -
feat: add serializers for execution and validation results
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>b9e909b -
feat: add type system — enums, dataclasses, LLMBackend ABC
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>5ed3a9a
-
fix: address agentic review — security, prompts, retry, validation
- Security: remove __import__ from executor sandbox (RCE vector) - Prompts: resolve contradictory history instructions, unify CAD trigger keywords into single CAD_TRIGGER_KEYWORDS constant - Retry: add error-feedback retry loop for failed CadQuery execution (up to 2 retries via LLM self-correction) - Fallback: add role-appropriate fallback messages per agent instead of identical generic string; log backend fallback warnings - Validation: add Pydantic models (ChatRequest, ReportRequest) for /api/chat and /api/report request validation - Errors: sanitize error messages returned to client Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>edf10d0 -
refactor: reorganize codebase into core/, server/, agents/ packages
Extract pipeline.py into core/backends.py (LLM backends) and core/pipeline.py (run_pipeline). Move code_executor.py, cnc_validator.py, cadquery_system_prompt.py into core/. Move web_server.py and mcp_server.py into server/. Create agents/ skeleton. Update Dockerfile, docker-compose, and entrypoint for new package structure. Add crewai dependency. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>e32c964