v2.2.0
New errors.ts module with ToolError hierarchy: - ToolTimeoutError (TIMEOUT) command exceeded timeout - ToolPermissionError (PERMISSION_DENIED) safe mode blocked - ToolNotFoundError (NOT_FOUND) file/directory missing - ToolValidationError (VALIDATION) invalid parameters ToolResult now has optional errorCode field. All 6 built-in tools tag errors with codes. classifyError() utility for string-to-code. 10 new tests. Total: 60 tests, 96 expect() calls. Version bump: 2.1.0 2.2.0