requireInput method

void requireInput(
  1. McpTaskRecord task,
  2. Map<String, Map<String, dynamic>> requests
)

Extension: ask the client for input. Keys must never have been issued for this task before.

Implementation

void requireInput(McpTaskRecord task, Map<String, Map<String, dynamic>> requests) {
  for (final key in requests.keys) {
    if (task._issuedKeys.contains(key)) {
      throw ArgumentError.value(key, 'requests', 'input request keys are unique over a task\'s life');
    }
  }
  if (!transition(task, McpTaskStatus.inputRequired) && task.status != McpTaskStatus.inputRequired) {
    throw StateError('Task ${task.taskId} is ${task.status}');
  }
  task._issuedKeys.addAll(requests.keys);
  task.inputRequests.addAll(requests);
}