Array of hook configurations with unique keys
Object with keys from hookConfigs and values as the signal responses
// Execute multiple research perspectives in parallel
const results = await MemFlow.workflow.execHookBatch<{
  optimistic: OptimisticResult;
  skeptical: SkepticalResult;
}>([
  {
    key: 'optimistic',
    options: {
      taskQueue: 'agents',
      workflowName: 'optimisticPerspective',
      args: [query],
      signalId: 'optimistic-complete'
    }
  },
  {
    key: 'skeptical', 
    options: {
      taskQueue: 'agents',
      workflowName: 'skepticalPerspective',
      args: [query],
      signalId: 'skeptical-complete'
    }
  }
]);
// results.optimistic contains the OptimisticResult
// results.skeptical contains the SkepticalResult
Executes multiple hooks in parallel and awaits all their signal responses. This solves the race condition where Promise.all() with execHook() would prevent all waitFor() registrations from completing.
The method ensures all waitFor() registrations happen before any hooks execute, preventing signals from being sent before the framework is ready to receive them.