engineConfigBaseDir returns the base config directory for the given engine ID, determined by looking up the engine in the global registry and reading the first AgentManifestPathPrefix from the AgentFileProvider interface. Falls back to ".github" when the engine is not found or provides no path prefi
(engineID string)
| 13 | // AgentManifestPathPrefix from the AgentFileProvider interface. |
| 14 | // Falls back to ".github" when the engine is not found or provides no path prefixes. |
| 15 | func engineConfigBaseDir(engineID string) string { |
| 16 | registry := GetGlobalEngineRegistry() |
| 17 | engine, err := registry.GetEngine(strings.ToLower(engineID)) |
| 18 | if err == nil { |
| 19 | if provider, ok := engine.(AgentFileProvider); ok { |
| 20 | if prefixes := provider.GetAgentManifestPathPrefixes(); len(prefixes) > 0 { |
| 21 | baseDir := strings.TrimSuffix(prefixes[0], "/") |
| 22 | engineConfigDirLog.Printf("Resolved config base dir for engine %q to %q", engineID, baseDir) |
| 23 | return baseDir |
| 24 | } |
| 25 | } |
| 26 | } |
| 27 | engineConfigDirLog.Printf("Falling back to .github config base dir for engine %q (lookup err=%v)", engineID, err) |
| 28 | return ".github" |
| 29 | } |
| 30 | |
| 31 | // GetEngineSkillDir returns the relative directory (from repo root / tmp base) used |
| 32 | // to store inline skill files for a given engine. |
no test coverage detected