| 15 | } |
| 16 | |
| 17 | export function parseNonNegativeInteger( |
| 18 | value: string | undefined, |
| 19 | name: string, |
| 20 | ): number { |
| 21 | if (value === undefined || !/^\d+$/.test(value)) { |
| 22 | throw new Error(`${name} must be a non-negative integer`); |
| 23 | } |
| 24 | const parsed = Number(value); |
| 25 | if (!Number.isSafeInteger(parsed) || parsed < 0) { |
| 26 | throw new Error(`${name} must be a non-negative integer`); |
| 27 | } |
| 28 | return parsed; |
| 29 | } |
| 30 | |
| 31 | export function selectedPageIdFromToolResult(result: unknown): number { |
| 32 | if (isObject(result) && isObject(result.structuredContent)) { |