```python
def apply_edit_script(original: str, script: list) -> str:
    if not isinstance(original, str):
        raise ValueError("Original must be a string")
    
    result = ""
    i = 0
    
    for op, count in script:
        if op not in ["copy", "skip", "insert"]:
            raise ValueError(f"Unknown op: {op}")
        
        if op == "copy":
            if count <= 0:
                raise ValueError("Copy count must be positive")
            if i + count > len(original):
                raise ValueError("Copy count exceeds original length")
            result += original[i:i + count]
            i += count
        elif op == "skip":
            if count <= 0:
                raise ValueError("Skip count must be positive")
            i += count
        elif op == "insert":
            if not isinstance(count, int) or count <= 0:
                raise ValueError("Insert count must be a positive integer")
            if i + count > len(original):
                raise ValueError("Insert count exceeds original length")
            result += count * " "
            i += count
    
    if i != len(original):
        raise ValueError("Script stops before original is used up")
    
    return result
```