Feature: FileSystemError path parameter type hint
  As a developer using the CleverAgents exception hierarchy
  I want FileSystemError to accept str, pathlib.Path, and None for the path parameter
  So that static analysis tools can catch callers passing incompatible types

  Background:
    Given the FileSystemError class is imported from cleveragents.core.exceptions

  Scenario: Construct FileSystemError with a str path
    When I construct a FileSystemError with message "file not found" and path "/tmp/foo.txt"
    Then the FileSystemError is created successfully
    And the path attribute equals "/tmp/foo.txt"

  Scenario: Construct FileSystemError with a pathlib.Path path
    When I construct a FileSystemError with message "permission denied" and a pathlib.Path path
    Then the FileSystemError is created successfully
    And the path attribute is the pathlib.Path instance

  Scenario: Construct FileSystemError with None path
    When I construct a FileSystemError with message "unknown fs error" and no path
    Then the FileSystemError is created successfully
    And the path attribute is None

  Scenario: FileSystemError path type annotation is str or os.PathLike or None
    When I inspect the type annotation of the path parameter in FileSystemError.__init__
    Then the annotation is not Any
    And the annotation accepts str values
    And the annotation accepts os.PathLike values
    And the annotation accepts None
