| 986 | } |
| 987 | |
| 988 | static bool ha_dialect_event_supported(ha_lifecycle_dialect_t dialect, const char *event) { |
| 989 | if (!event) { |
| 990 | return false; |
| 991 | } |
| 992 | if (dialect == HA_DIALECT_HERMES) { |
| 993 | return strcmp(event, "pre_llm_call") == 0; |
| 994 | } |
| 995 | if (dialect == HA_DIALECT_QODER || dialect == HA_DIALECT_QWEN) { |
| 996 | return ha_lifecycle_event_supported(event); |
| 997 | } |
| 998 | if (dialect == HA_DIALECT_FACTORY) { |
| 999 | return strcmp(event, "SessionStart") == 0; |
| 1000 | } |
| 1001 | if (dialect == HA_DIALECT_GEMINI || dialect == HA_DIALECT_AUGMENT) { |
| 1002 | return false; |
| 1003 | } |
| 1004 | if (dialect == HA_DIALECT_KIMI) { |
| 1005 | return strcmp(event, "UserPromptSubmit") == 0; |
| 1006 | } |
| 1007 | if (dialect == HA_DIALECT_DEVIN) { |
| 1008 | return strcmp(event, "SessionStart") == 0 || strcmp(event, "UserPromptSubmit") == 0 || |
| 1009 | strcmp(event, "PostCompaction") == 0; |
| 1010 | } |
| 1011 | if (dialect == HA_DIALECT_CLINE) { |
| 1012 | return strcmp(event, "TaskStart") == 0 || strcmp(event, "TaskResume") == 0 || |
| 1013 | strcmp(event, "UserPromptSubmit") == 0 || strcmp(event, "PreCompact") == 0; |
| 1014 | } |
| 1015 | return ha_lifecycle_event_supported(event); |
| 1016 | } |
| 1017 | |
| 1018 | static bool ha_tool_event_supported(ha_lifecycle_dialect_t dialect, const char *event, |
| 1019 | const char *tool, bool *coverage) { |
no test coverage detected