()
| 18 | } |
| 19 | |
| 20 | func NewCrushEngine() *CrushEngine { |
| 21 | return &CrushEngine{ |
| 22 | UniversalLLMConsumerEngine: UniversalLLMConsumerEngine{ |
| 23 | BaseEngine: BaseEngine{ |
| 24 | id: "crush", |
| 25 | displayName: "Crush", |
| 26 | description: "Crush CLI with headless mode and multi-provider LLM support", |
| 27 | experimental: true, // Start as experimental until smoke tests pass consistently |
| 28 | capabilities: EngineCapabilities{ |
| 29 | ToolsAllowlist: false, // Crush manages its own tool permissions via .crush.json |
| 30 | MaxTurns: true, // AWF max-turns is supported for Crush runs |
| 31 | WebSearch: false, // Has built-in websearch but not exposed via gh-aw neutral tools yet |
| 32 | }, |
| 33 | }, |
| 34 | }, |
| 35 | } |
| 36 | } |
| 37 | |
| 38 | // GetModelEnvVarName returns the native environment variable name that the Crush CLI uses |
| 39 | // for model selection. Setting CRUSH_MODEL is equivalent to passing --model to the CLI. |
no outgoing calls