(args: string[])
| 1735 | } |
| 1736 | |
| 1737 | export function parseArgs(args: string[]): ParsedArgs { |
| 1738 | let verbose = false |
| 1739 | let sandbox = false |
| 1740 | let debugFile: string | undefined |
| 1741 | let sessionTimeoutMs: number | undefined |
| 1742 | let permissionMode: string | undefined |
| 1743 | let name: string | undefined |
| 1744 | let help = false |
| 1745 | let spawnMode: SpawnMode | undefined |
| 1746 | let capacity: number | undefined |
| 1747 | let createSessionInDir: boolean | undefined |
| 1748 | let sessionId: string | undefined |
| 1749 | let continueSession = false |
| 1750 | |
| 1751 | for (let i = 0; i < args.length; i++) { |
| 1752 | const arg = args[i]! |
| 1753 | if (arg === '--help' || arg === '-h') { |
| 1754 | help = true |
| 1755 | } else if (arg === '--verbose' || arg === '-v') { |
| 1756 | verbose = true |
| 1757 | } else if (arg === '--sandbox') { |
| 1758 | sandbox = true |
| 1759 | } else if (arg === '--no-sandbox') { |
| 1760 | sandbox = false |
| 1761 | } else if (arg === '--debug-file' && i + 1 < args.length) { |
| 1762 | debugFile = resolve(args[++i]!) |
| 1763 | } else if (arg.startsWith('--debug-file=')) { |
| 1764 | debugFile = resolve(arg.slice('--debug-file='.length)) |
| 1765 | } else if (arg === '--session-timeout' && i + 1 < args.length) { |
| 1766 | sessionTimeoutMs = parseInt(args[++i]!, 10) * 1000 |
| 1767 | } else if (arg.startsWith('--session-timeout=')) { |
| 1768 | sessionTimeoutMs = |
| 1769 | parseInt(arg.slice('--session-timeout='.length), 10) * 1000 |
| 1770 | } else if (arg === '--permission-mode' && i + 1 < args.length) { |
| 1771 | permissionMode = args[++i]! |
| 1772 | } else if (arg.startsWith('--permission-mode=')) { |
| 1773 | permissionMode = arg.slice('--permission-mode='.length) |
| 1774 | } else if (arg === '--name' && i + 1 < args.length) { |
| 1775 | name = args[++i]! |
| 1776 | } else if (arg.startsWith('--name=')) { |
| 1777 | name = arg.slice('--name='.length) |
| 1778 | } else if ( |
| 1779 | feature('KAIROS') && |
| 1780 | arg === '--session-id' && |
| 1781 | i + 1 < args.length |
| 1782 | ) { |
| 1783 | sessionId = args[++i]! |
| 1784 | if (!sessionId) { |
| 1785 | return makeError('--session-id requires a value') |
| 1786 | } |
| 1787 | } else if (feature('KAIROS') && arg.startsWith('--session-id=')) { |
| 1788 | sessionId = arg.slice('--session-id='.length) |
| 1789 | if (!sessionId) { |
| 1790 | return makeError('--session-id requires a value') |
| 1791 | } |
| 1792 | } else if (feature('KAIROS') && (arg === '--continue' || arg === '-c')) { |
| 1793 | continueSession = true |
| 1794 | } else if (arg === '--spawn' || arg.startsWith('--spawn=')) { |
no test coverage detected