```ts
function applyEditScript(original: string, script: [string, any][]): string {
  if (typeof original !== 'string') {
    throw new Error('Invalid input: original must be a string');
  }

  let result = '';

  for (const op of script) {
    const [name, value] = op;

    switch (name) {
      case 'copy':
        if (!Number.isInteger(value) || value <= 0) {
          throw new Error('Invalid copy count: must be a positive integer');
        }
        result += original.slice(result.length, result.length + value);
        break;
      case 'skip':
        if (!Number.isInteger(value) || value <= 0) {
          throw new Error('Invalid skip count: must be a positive integer');
        }
        result += original.slice(result.length, result.length + value);
        break;
      case 'insert':
        if (typeof value !== 'string' || value === '') {
          throw new Error('Invalid insert text: must be a non-empty string');
        }
        result += value;
        break;
      default:
        throw new Error(`Unknown op name: ${name}`);
    }
  }

  return result;
}
```