processSetupHooks function
Process setup hooks.
Implementation
Future<List<HookResultMessage>> processSetupHooks(
String trigger, {
bool? forceSyncExecution,
}) async {
if (_isBareMode()) return [];
final hookMessages = <HookResultMessage>[];
final additionalContexts = <String>[];
if (_loadPluginHooks != null) {
try {
await _loadPluginHooks!();
} catch (_) {}
}
if (_executeSetupHooks != null) {
await for (final hookResult in _executeSetupHooks!(
trigger,
forceSyncExecution: forceSyncExecution,
)) {
if (hookResult.content != null) {
hookMessages.add(hookResult);
}
if (hookResult.additionalContexts != null &&
hookResult.additionalContexts!.isNotEmpty) {
additionalContexts.addAll(hookResult.additionalContexts!);
}
}
}
if (additionalContexts.isNotEmpty) {
hookMessages.add(
HookResultMessage(
content: additionalContexts.join('\n'),
hookName: 'Setup',
toolUseId: 'Setup',
hookEvent: 'Setup',
),
);
}
return hookMessages;
}