feat(execution): Add Docker Hub image support and comprehensive documentation
- Updated ImageRegistry to use public Docker Hub (anthonyrawlins namespace) - Modified image naming: chorus-base, chorus-rust-dev, chorus-go-dev, etc. - Added Docker Hub URLs and actual image sizes to metadata - Created comprehensive TaskExecutionEngine.md documentation covering: * Complete architecture and implementation details * Security isolation layers and threat mitigation * Performance characteristics and benchmarks * Real-world examples with resource usage metrics * Troubleshooting guide and FAQ * Comparisons with alternative approaches (SSH, VMs, native) Images now publicly available at docker.io/anthonyrawlins/chorus-* 🤖 Generated with Claude Code (https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
1676
docs/Modules/TaskExecutionEngine.md
Normal file
1676
docs/Modules/TaskExecutionEngine.md
Normal file
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@ import (
|
||||
|
||||
const (
|
||||
// ImageRegistry is the default registry for CHORUS development images
|
||||
ImageRegistry = "registry.home.deepblack.cloud/chorus"
|
||||
ImageRegistry = "anthonyrawlins"
|
||||
|
||||
// ImageVersion is the default version tag to use
|
||||
ImageVersion = "latest"
|
||||
@@ -44,21 +44,21 @@ func NewImageSelectorWithConfig(registry, version string) *ImageSelector {
|
||||
// SelectImage returns the appropriate image name for a given language
|
||||
func (s *ImageSelector) SelectImage(language string) string {
|
||||
imageMap := map[string]string{
|
||||
"rust": "rust-dev",
|
||||
"go": "go-dev",
|
||||
"golang": "go-dev",
|
||||
"python": "python-dev",
|
||||
"py": "python-dev",
|
||||
"javascript": "node-dev",
|
||||
"js": "node-dev",
|
||||
"typescript": "node-dev",
|
||||
"ts": "node-dev",
|
||||
"node": "node-dev",
|
||||
"nodejs": "node-dev",
|
||||
"java": "java-dev",
|
||||
"cpp": "cpp-dev",
|
||||
"c++": "cpp-dev",
|
||||
"c": "cpp-dev",
|
||||
"rust": "chorus-rust-dev",
|
||||
"go": "chorus-go-dev",
|
||||
"golang": "chorus-go-dev",
|
||||
"python": "chorus-python-dev",
|
||||
"py": "chorus-python-dev",
|
||||
"javascript": "chorus-node-dev",
|
||||
"js": "chorus-node-dev",
|
||||
"typescript": "chorus-node-dev",
|
||||
"ts": "chorus-node-dev",
|
||||
"node": "chorus-node-dev",
|
||||
"nodejs": "chorus-node-dev",
|
||||
"java": "chorus-java-dev",
|
||||
"cpp": "chorus-cpp-dev",
|
||||
"c++": "chorus-cpp-dev",
|
||||
"c": "chorus-cpp-dev",
|
||||
}
|
||||
|
||||
normalizedLang := strings.ToLower(strings.TrimSpace(language))
|
||||
@@ -68,7 +68,7 @@ func (s *ImageSelector) SelectImage(language string) string {
|
||||
}
|
||||
|
||||
// Default to base image if language not recognized
|
||||
return fmt.Sprintf("%s/base:%s", s.registry, s.version)
|
||||
return fmt.Sprintf("%s/chorus-base:%s", s.registry, s.version)
|
||||
}
|
||||
|
||||
// DetectLanguage analyzes task context to determine primary programming language
|
||||
@@ -202,7 +202,7 @@ func extractLanguageFromModel(modelName string) string {
|
||||
|
||||
// GetAvailableImages returns a list of all available development images
|
||||
func (s *ImageSelector) GetAvailableImages() []string {
|
||||
images := []string{"base", "rust-dev", "go-dev", "python-dev", "node-dev", "java-dev", "cpp-dev"}
|
||||
images := []string{"chorus-base", "chorus-rust-dev", "chorus-go-dev", "chorus-python-dev", "chorus-node-dev", "chorus-java-dev", "chorus-cpp-dev"}
|
||||
result := make([]string, len(images))
|
||||
|
||||
for i, img := range images {
|
||||
@@ -215,40 +215,47 @@ func (s *ImageSelector) GetAvailableImages() []string {
|
||||
// GetImageInfo returns metadata about a specific image
|
||||
func (s *ImageSelector) GetImageInfo(imageName string) map[string]string {
|
||||
infoMap := map[string]map[string]string{
|
||||
"base": {
|
||||
"chorus-base": {
|
||||
"description": "Base Debian development environment with common tools",
|
||||
"size": "~200MB",
|
||||
"size": "~643MB",
|
||||
"tools": "git, curl, build-essential, vim, jq",
|
||||
"registry": "docker.io/anthonyrawlins/chorus-base",
|
||||
},
|
||||
"rust-dev": {
|
||||
"chorus-rust-dev": {
|
||||
"description": "Rust development environment with cargo and tooling",
|
||||
"size": "~1.2GB",
|
||||
"size": "~2.42GB",
|
||||
"tools": "rustc, cargo, clippy, rustfmt, ripgrep, fd-find",
|
||||
"registry": "docker.io/anthonyrawlins/chorus-rust-dev",
|
||||
},
|
||||
"go-dev": {
|
||||
"chorus-go-dev": {
|
||||
"description": "Go development environment with standard tooling",
|
||||
"size": "~600MB",
|
||||
"size": "~1GB",
|
||||
"tools": "go1.22, gopls, delve, staticcheck, golangci-lint",
|
||||
"registry": "docker.io/anthonyrawlins/chorus-go-dev",
|
||||
},
|
||||
"python-dev": {
|
||||
"chorus-python-dev": {
|
||||
"description": "Python development environment with modern tooling",
|
||||
"size": "~800MB",
|
||||
"size": "~1.07GB",
|
||||
"tools": "python3.11, uv, ruff, black, pytest, mypy",
|
||||
"registry": "docker.io/anthonyrawlins/chorus-python-dev",
|
||||
},
|
||||
"node-dev": {
|
||||
"chorus-node-dev": {
|
||||
"description": "Node.js development environment with package managers",
|
||||
"size": "~700MB",
|
||||
"size": "~982MB",
|
||||
"tools": "node20, pnpm, yarn, typescript, eslint, prettier",
|
||||
"registry": "docker.io/anthonyrawlins/chorus-node-dev",
|
||||
},
|
||||
"java-dev": {
|
||||
"chorus-java-dev": {
|
||||
"description": "Java development environment with build tools",
|
||||
"size": "~1.5GB",
|
||||
"size": "~1.3GB",
|
||||
"tools": "openjdk-17, maven, gradle",
|
||||
"registry": "docker.io/anthonyrawlins/chorus-java-dev",
|
||||
},
|
||||
"cpp-dev": {
|
||||
"chorus-cpp-dev": {
|
||||
"description": "C/C++ development environment with compilers and tools",
|
||||
"size": "~900MB",
|
||||
"size": "~1.63GB",
|
||||
"tools": "gcc, g++, clang, cmake, ninja, gdb, valgrind",
|
||||
"registry": "docker.io/anthonyrawlins/chorus-cpp-dev",
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user