MCPcopy Create free account
hub / github.com/github/gh-aw / NewEngineRegistry

Function NewEngineRegistry

pkg/workflow/agentic_engine.go:481–516  ·  view source on GitHub ↗

NewEngineRegistry creates a new engine registry with built-in engines. Panics on invalid built-in engine registration.

()

Source from the content-addressed store, hash-verified

479// NewEngineRegistry creates a new engine registry with built-in engines.
480// Panics on invalid built-in engine registration.
481func NewEngineRegistry() *EngineRegistry {
482 agenticEngineLog.Print("Creating new engine registry")
483
484 registry := &EngineRegistry{
485 engines: make(map[string]CodingAgentEngine),
486 }
487
488 // Register built-in engines
489 builtins := []CodingAgentEngine{
490 NewClaudeEngine(),
491 NewCodexEngine(),
492 NewCopilotEngine(),
493 NewGeminiEngine(),
494 NewAntigravityEngine(),
495 NewOpenCodeEngine(),
496 NewCrushEngine(),
497 NewPiEngine(),
498 }
499 for _, engine := range builtins {
500 if err := registry.Register(engine); err != nil {
501 panic(fmt.Sprintf("BUG: failed to register built-in engine: %v", err))
502 }
503 }
504
505 agenticEngineLog.Printf("Registered %d engines", len(registry.engines))
506
507 // Pre-compute and cache the manifest file/folder lists now that all engines are
508 // registered. These lists are derived solely from the registered engine set, which
509 // is fixed after construction. Pre-computing here guarantees thread-safe access:
510 // callers that read the cached slices later see a fully-initialised, immutable
511 // value and never trigger concurrent writes.
512 registry.cachedManifestFolders = registry.computeAllAgentManifestFolders()
513 registry.cachedManifestFiles = registry.computeAllAgentManifestFiles()
514
515 return registry
516}
517
518// GetGlobalEngineRegistry returns the singleton engine registry
519func GetGlobalEngineRegistry() *EngineRegistry {

Calls 13

RegisterMethod · 0.95
NewClaudeEngineFunction · 0.85
NewCodexEngineFunction · 0.85
NewCopilotEngineFunction · 0.85
NewGeminiEngineFunction · 0.85
NewAntigravityEngineFunction · 0.85
NewOpenCodeEngineFunction · 0.85
NewCrushEngineFunction · 0.85
NewPiEngineFunction · 0.85
PrintMethod · 0.80