{
  "$schema": "https://ambiqai.github.io/helia-ui/schema/reference-model-1.json",
  "generatedFrom": {
    "sourceCommit": "2b72ffc71f90df792825645ac9c9647f296ca019",
    "tool": "pyref",
    "version": "1.7.3"
  },
  "language": "python",
  "modules": [
    {
      "description": "Canonical Python package for neuralspotx tooling.\n\nThe names exposed here form the **public Python API** of NSX. Anything\nimportable from a private ``_<name>`` module is, by convention,\ninternal and may change without notice.\n\nEvery name here is Provisional until 1.0; see\nhttps://ambiqai.github.io/neuralspotx/reference/releases/ for what that\nmeans and how to pin. ``tests/test_public_surface_doc.py`` keeps the\npublished symbol catalog and ``__all__`` from drifting.",
      "name": "neuralspotx",
      "path": "neuralspotx",
      "submodules": [
        {
          "description": "Programmatic API for the NSX workflow.\n\nStable public surface for embedders. The actual implementations live in\nsibling submodules (``_requests``, ``_app``, ``_modules``, ``_lock``,\n``_cache``, ``_sbom``); this facade re-exports them so existing\n``from neuralspotx.api import …`` imports keep working.",
          "name": "api",
          "path": "neuralspotx.api",
          "submodules": [],
          "summary": "Programmatic API for the NSX workflow.",
          "symbols": [
            {
              "description": "Return a snapshot of the NSX module artifact cache.\n\nThe result includes the cache root, an \"is the cache disabled\nvia NSX_DISABLE_MODULE_CACHE\" flag, and one\n:class:`~neuralspotx.models.CacheEntry` per content-addressed\nartifact directory. ``CacheInfo.total_size_bytes`` is computed\nby walking each entry — best-effort, errors are silently ignored\nper file. Performs no I/O on stdout.",
              "examples": [],
              "id": "neuralspotx.api.cache_info",
              "kind": "function",
              "language": "python",
              "members": [],
              "name": "cache_info",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "cache_info() -> CacheInfo",
              "source": {
                "line": 9,
                "path": "src/neuralspotx/api/_cache.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_cache.py#L9"
              },
              "summary": "Return a snapshot of the NSX module artifact cache."
            },
            {
              "description": "Generate a Software Bill of Materials for the app at *app_dir*.\n\nReads ``nsx.lock`` and emits a single JSON document describing\nevery vendored module by upstream URL, commit SHA, and\n``content_hash``. The returned string is ready to write to disk\nor pipe into another SBOM tool.",
              "examples": [],
              "id": "neuralspotx.api.generate_sbom",
              "kind": "function",
              "language": "python",
              "members": [],
              "name": "generate_sbom",
              "params": [
                {
                  "description": "App root containing ``nsx.lock``.",
                  "name": "app_dir",
                  "type": "PathLike"
                },
                {
                  "default": "'spdx'",
                  "description": "``\"spdx\"`` for SPDX 2.3 JSON (default) or\n``\"cyclonedx\"`` for CycloneDX 1.5 JSON.",
                  "name": "format",
                  "type": "str"
                }
              ],
              "raises": [
                {
                  "description": "``nsx.lock`` is missing, or *format* is not\none of ``{\"spdx\", \"cyclonedx\"}``.",
                  "type": "NSXConfigError"
                }
              ],
              "returns": [],
              "signature": "generate_sbom(app_dir: PathLike, *, format: str = 'spdx') -> str",
              "source": {
                "line": 12,
                "path": "src/neuralspotx/api/_sbom.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_sbom.py#L12"
              },
              "summary": "Generate a Software Bill of Materials for the app at appdir."
            },
            {
              "description": "`cached`\n\nReturn the packaged NSX registry with derived starter profiles.\n\nThe result is loaded from the installed ``registry.lock.yaml`` and cached\nin-process. No network or git operations are performed.",
              "examples": [],
              "id": "neuralspotx.api.load_registry",
              "kind": "function",
              "language": "python",
              "members": [],
              "name": "load_registry",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "load_registry() -> dict[str, Any]",
              "source": {
                "line": 12,
                "path": "src/neuralspotx/api/_registry.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_registry.py#L12"
              },
              "summary": "Return the packaged NSX registry with derived starter profiles."
            },
            {
              "description": "Scaffold a custom board that inherits a registered EVB baseline.",
              "examples": [],
              "id": "neuralspotx.api.create_board",
              "kind": "function",
              "language": "python",
              "members": [],
              "name": "create_board",
              "params": [
                {
                  "description": "Either the new board identifier or a typed request object.",
                  "name": "name",
                  "type": "str | BoardCreateRequest"
                },
                {
                  "default": "None",
                  "description": "Parent EVB to inherit from (required unless ``name`` is a\n:class:`BoardCreateRequest`).",
                  "name": "from_board",
                  "type": "str | None"
                },
                {
                  "default": "'.'",
                  "description": "App root under which ``boards/<name>/`` is written.",
                  "name": "app_dir",
                  "type": "PathLike"
                },
                {
                  "default": "False",
                  "description": "Overwrite an existing ``boards/<name>/`` directory.",
                  "name": "force",
                  "type": "bool"
                },
                {
                  "default": "None",
                  "description": "Optional event sink for progress/next-step messages.",
                  "name": "emit",
                  "type": "Emitter | None"
                }
              ],
              "raises": [],
              "returns": [
                {
                  "description": "The freshly parsed :class:`BoardDescriptor` for the new board.",
                  "type": "BoardDescriptor"
                }
              ],
              "signature": "create_board(\n    name: str | BoardCreateRequest,\n    *,\n    from_board: str | None = None,\n    app_dir: PathLike = '.',\n    force: bool = False,\n    emit: Emitter | None = None,\n) -> BoardDescriptor",
              "source": {
                "line": 16,
                "path": "src/neuralspotx/api/_board.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_board.py#L16"
              },
              "summary": "Scaffold a custom board that inherits a registered EVB baseline."
            },
            {
              "description": "`dataclass`\n\nRequest parameters for creating a new NSX app.",
              "examples": [],
              "id": "neuralspotx.api.AppCreateRequest",
              "kind": "class",
              "language": "python",
              "members": [
                {
                  "description": "Target app root.",
                  "examples": [],
                  "id": "neuralspotx.api.AppCreateRequest.app_dir",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "app_dir",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "app_dir: PathLike",
                  "source": {
                    "line": 31,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L31"
                  },
                  "summary": ""
                },
                {
                  "description": "Target board identifier.",
                  "examples": [],
                  "id": "neuralspotx.api.AppCreateRequest.board",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "board",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "board: str = DEFAULT_BOARD",
                  "source": {
                    "line": 32,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L32"
                  },
                  "summary": ""
                },
                {
                  "description": "Optional SoC override. When omitted, NSX infers it from ``board``.",
                  "examples": [],
                  "id": "neuralspotx.api.AppCreateRequest.soc",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "soc",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "soc: str | None = None",
                  "source": {
                    "line": 33,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L33"
                  },
                  "summary": ""
                },
                {
                  "description": "Allow writing into a non-empty app directory.",
                  "examples": [],
                  "id": "neuralspotx.api.AppCreateRequest.force",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "force",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "force: bool = False",
                  "source": {
                    "line": 34,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L34"
                  },
                  "summary": ""
                },
                {
                  "description": "Skip starter-module initialization.",
                  "examples": [],
                  "id": "neuralspotx.api.AppCreateRequest.no_bootstrap",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "no_bootstrap",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "no_bootstrap: bool = False",
                  "source": {
                    "line": 35,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L35"
                  },
                  "summary": ""
                },
                {
                  "description": "App template name (see ``operations.APP_TEMPLATES``).",
                  "examples": [],
                  "id": "neuralspotx.api.AppCreateRequest.template",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "template",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "template: str = 'default'",
                  "source": {
                    "line": 36,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L36"
                  },
                  "summary": ""
                }
              ],
              "name": "AppCreateRequest",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "AppCreateRequest(\n    app_dir: PathLike,\n    board: str = DEFAULT_BOARD,\n    soc: str | None = None,\n    force: bool = False,\n    no_bootstrap: bool = False,\n    template: str = 'default',\n) -> None",
              "source": {
                "line": 18,
                "path": "src/neuralspotx/api/_requests.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L18"
              },
              "summary": "Request parameters for creating a new NSX app."
            },
            {
              "description": "`dataclass`\n\nDescribe a custom-module skeleton to create.",
              "examples": [],
              "id": "neuralspotx.api.ModuleInitRequest",
              "kind": "class",
              "language": "python",
              "members": [
                {
                  "description": "Destination directory for the generated module.",
                  "examples": [],
                  "id": "neuralspotx.api.ModuleInitRequest.module_dir",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "module_dir",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "module_dir: PathLike",
                  "source": {
                    "line": 36,
                    "path": "src/neuralspotx/models/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_requests.py#L36"
                  },
                  "summary": ""
                },
                {
                  "description": "Manifest module name. Defaults to the destination directory name.",
                  "examples": [],
                  "id": "neuralspotx.api.ModuleInitRequest.module_name",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "module_name",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "module_name: str | None = None",
                  "source": {
                    "line": 37,
                    "path": "src/neuralspotx/models/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_requests.py#L37"
                  },
                  "summary": ""
                },
                {
                  "description": "NSX module type written to ``nsx-module.yaml``.",
                  "examples": [],
                  "id": "neuralspotx.api.ModuleInitRequest.module_type",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "module_type",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "module_type: str = 'runtime'",
                  "source": {
                    "line": 38,
                    "path": "src/neuralspotx/models/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_requests.py#L38"
                  },
                  "summary": ""
                },
                {
                  "description": "Human-readable module summary. A placeholder is generated when omitted.",
                  "examples": [],
                  "id": "neuralspotx.api.ModuleInitRequest.summary",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "summary",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "summary: str | None = None",
                  "source": {
                    "line": 39,
                    "path": "src/neuralspotx/models/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_requests.py#L39"
                  },
                  "summary": ""
                },
                {
                  "description": "Initial semantic version written to the module metadata.",
                  "examples": [],
                  "id": "neuralspotx.api.ModuleInitRequest.version",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "version",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "version: str = '0.1.0'",
                  "source": {
                    "line": 40,
                    "path": "src/neuralspotx/models/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_requests.py#L40"
                  },
                  "summary": ""
                },
                {
                  "description": "Required NSX module names, in declaration order.",
                  "examples": [],
                  "id": "neuralspotx.api.ModuleInitRequest.dependencies",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "dependencies",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "dependencies: list[str] | None = None",
                  "source": {
                    "line": 41,
                    "path": "src/neuralspotx/models/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_requests.py#L41"
                  },
                  "summary": ""
                },
                {
                  "description": "Compatible board names. Defaults to all boards.",
                  "examples": [],
                  "id": "neuralspotx.api.ModuleInitRequest.boards",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "boards",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "boards: list[str] | None = None",
                  "source": {
                    "line": 42,
                    "path": "src/neuralspotx/models/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_requests.py#L42"
                  },
                  "summary": ""
                },
                {
                  "description": "Compatible SoC names. Defaults to all SoCs.",
                  "examples": [],
                  "id": "neuralspotx.api.ModuleInitRequest.socs",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "socs",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "socs: list[str] | None = None",
                  "source": {
                    "line": 43,
                    "path": "src/neuralspotx/models/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_requests.py#L43"
                  },
                  "summary": ""
                },
                {
                  "description": "Compatible toolchain names. Defaults to the NSX default toolchain.",
                  "examples": [],
                  "id": "neuralspotx.api.ModuleInitRequest.toolchains",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "toolchains",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "toolchains: list[str] | None = None",
                  "source": {
                    "line": 44,
                    "path": "src/neuralspotx/models/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_requests.py#L44"
                  },
                  "summary": ""
                },
                {
                  "description": "Allow generation into an existing non-empty directory.",
                  "examples": [],
                  "id": "neuralspotx.api.ModuleInitRequest.force",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "force",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "force: bool = False",
                  "source": {
                    "line": 45,
                    "path": "src/neuralspotx/models/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_requests.py#L45"
                  },
                  "summary": ""
                }
              ],
              "name": "ModuleInitRequest",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "ModuleInitRequest(\n    module_dir: PathLike,\n    module_name: str | None = None,\n    module_type: str = 'runtime',\n    summary: str | None = None,\n    version: str = '0.1.0',\n    dependencies: list[str] | None = None,\n    boards: list[str] | None = None,\n    socs: list[str] | None = None,\n    toolchains: list[str] | None = None,\n    force: bool = False,\n) -> None",
              "source": {
                "line": 19,
                "path": "src/neuralspotx/models/_requests.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_requests.py#L19"
              },
              "summary": "Describe a custom-module skeleton to create."
            },
            {
              "description": "Add a module to an app.",
              "examples": [],
              "id": "neuralspotx.api.add_module",
              "kind": "function",
              "language": "python",
              "members": [],
              "name": "add_module",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "add_module(\n    app_dir: PathLike | ModuleChangeRequest,\n    module: str | None = None,\n    *,\n    dry_run: bool = False,\n    local: bool = False,\n    vendored: bool = False,\n    path: str | None = None,\n    boards: tuple[str, ...] = (),\n) -> list[ModuleChange]",
              "source": {
                "line": 22,
                "path": "src/neuralspotx/api/_modules.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_modules.py#L22"
              },
              "summary": "Add a module to an app."
            },
            {
              "description": "Resolve module constraints and write ``nsx.lock``.\n\nReturns the resolved :class:`~neuralspotx.nsx_lock.NsxLock`. The\nfilesystem path to the lock file is available on ``lock.path``.\n*timeout_s* applies per ``git`` / ``git ls-remote`` subprocess.\n*resolve_ttl_s* overrides the ``NSX_RESOLVE_TTL`` env for this call\n(e.g. ``1800`` for 30 min in long workflows; ``0`` to disable).",
              "examples": [],
              "id": "neuralspotx.api.lock_app",
              "kind": "function",
              "language": "python",
              "members": [],
              "name": "lock_app",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "lock_app(\n    app_dir: PathLike | AppLockRequest,\n    *,\n    update: bool = False,\n    modules: list[str] | None = None,\n    check: bool = False,\n    quiet: bool = False,\n    timeout_s: float | None = None,\n    resolve_ttl_s: float | None = None,\n    emit: Emitter | None = None,\n) -> NsxLock",
              "source": {
                "line": 22,
                "path": "src/neuralspotx/api/_lock.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_lock.py#L22"
              },
              "summary": "Resolve module constraints and write nsx.lock."
            },
            {
              "description": "Delete every entry in the NSX module artifact cache.\n\nWith ``dry_run=True`` no entries are removed; the returned\n:class:`~neuralspotx.models.CacheCleanResult.removed_count`\nreflects how many entries *would* be removed by an unconditional\ninvocation. Performs no I/O on stdout.",
              "examples": [],
              "id": "neuralspotx.api.clean_cache",
              "kind": "function",
              "language": "python",
              "members": [],
              "name": "clean_cache",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "clean_cache(*, dry_run: bool = False) -> CacheCleanResult",
              "source": {
                "line": 23,
                "path": "src/neuralspotx/api/_cache.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_cache.py#L23"
              },
              "summary": "Delete every entry in the NSX module artifact cache."
            },
            {
              "description": "Return the ``{board}_minimal`` starter profile, or ``None`` if absent.",
              "examples": [],
              "id": "neuralspotx.api.starter_profile",
              "kind": "function",
              "language": "python",
              "members": [],
              "name": "starter_profile",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "starter_profile(board: str) -> dict[str, Any] | None",
              "source": {
                "line": 24,
                "path": "src/neuralspotx/api/_registry.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_registry.py#L24"
              },
              "summary": "Return the {board}minimal starter profile, or None if absent."
            },
            {
              "description": "Create a new NSX app project.",
              "examples": [],
              "id": "neuralspotx.api.create_app",
              "kind": "function",
              "language": "python",
              "members": [],
              "name": "create_app",
              "params": [
                {
                  "description": "Either an app-root path or a typed request object.",
                  "name": "app_dir",
                  "type": "PathLike | AppCreateRequest"
                },
                {
                  "default": "DEFAULT_BOARD",
                  "description": "Target board identifier.",
                  "name": "board",
                  "type": "str"
                },
                {
                  "default": "None",
                  "description": "Optional SoC override.",
                  "name": "soc",
                  "type": "str | None"
                },
                {
                  "default": "False",
                  "description": "Allow writing into a non-empty app directory.",
                  "name": "force",
                  "type": "bool"
                },
                {
                  "default": "False",
                  "description": "Skip starter-module initialization.",
                  "name": "no_bootstrap",
                  "type": "bool"
                },
                {
                  "default": "'default'",
                  "description": "App template name (see ``operations.APP_TEMPLATES``).",
                  "name": "template",
                  "type": "str"
                }
              ],
              "raises": [],
              "returns": [
                {
                  "description": "The resolved app-root :class:`pathlib.Path`. Suitable for",
                  "type": "Path"
                },
                {
                  "description": "chaining into :func:`configure_app`, :func:`build_app`, etc.",
                  "type": "Path"
                }
              ],
              "signature": "create_app(\n    app_dir: PathLike | AppCreateRequest,\n    *,\n    board: str = DEFAULT_BOARD,\n    soc: str | None = None,\n    force: bool = False,\n    no_bootstrap: bool = False,\n    template: str = 'default',\n    emit: Emitter | None = None,\n) -> Path",
              "source": {
                "line": 26,
                "path": "src/neuralspotx/api/_app.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_app.py#L26"
              },
              "summary": "Create a new NSX app project."
            },
            {
              "description": "Resolve a module name to its owning project via the packaged registry.\n\nReturns ``None`` when the module has no packaged registry entry (for\nexample, a local opaque module supplied by the caller).",
              "examples": [],
              "id": "neuralspotx.api.registry_module_project",
              "kind": "function",
              "language": "python",
              "members": [],
              "name": "registry_module_project",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "registry_module_project(name: str) -> str | None",
              "source": {
                "line": 30,
                "path": "src/neuralspotx/api/_registry.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_registry.py#L30"
              },
              "summary": "Resolve a module name to its owning project via the packaged registry."
            },
            {
              "description": "`dataclass`\n\nRequest parameters for scaffolding a custom board.",
              "examples": [],
              "id": "neuralspotx.api.BoardCreateRequest",
              "kind": "class",
              "language": "python",
              "members": [
                {
                  "description": "New custom board identifier (becomes ``boards/<name>/``).",
                  "examples": [],
                  "id": "neuralspotx.api.BoardCreateRequest.name",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "name",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "name: str",
                  "source": {
                    "line": 50,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L50"
                  },
                  "summary": ""
                },
                {
                  "description": "Parent EVB whose SoC/provider/CPU facts are inherited.",
                  "examples": [],
                  "id": "neuralspotx.api.BoardCreateRequest.from_board",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "from_board",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "from_board: str",
                  "source": {
                    "line": 51,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L51"
                  },
                  "summary": ""
                },
                {
                  "description": "App root under which ``boards/<name>/`` is written.",
                  "examples": [],
                  "id": "neuralspotx.api.BoardCreateRequest.app_dir",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "app_dir",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "app_dir: PathLike = '.'",
                  "source": {
                    "line": 52,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L52"
                  },
                  "summary": ""
                },
                {
                  "description": "Overwrite an existing ``boards/<name>/`` directory.",
                  "examples": [],
                  "id": "neuralspotx.api.BoardCreateRequest.force",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "force",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "force: bool = False",
                  "source": {
                    "line": 53,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L53"
                  },
                  "summary": ""
                }
              ],
              "name": "BoardCreateRequest",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "BoardCreateRequest(name: str, from_board: str, app_dir: PathLike = '.', force: bool = False) -> None",
              "source": {
                "line": 39,
                "path": "src/neuralspotx/api/_requests.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L39"
              },
              "summary": "Request parameters for scaffolding a custom board."
            },
            {
              "description": "`dataclass`\n\nBase request for app-scoped actions.\n\n``frozen`` and ``timeout_s`` are keyword-only so subclasses (e.g.\n:class:`AppBuildRequest`) keep their existing positional argument\norder — inserting a new positional field into this base class would\nsilently shift the meaning of positional construction like\n``AppBuildRequest(app_dir, None, None, None, None, \"all\", 4)``.\nConstruct with ``AppBuildRequest(app_dir, target=\"all\", jobs=4,\ntimeout_s=300)``.",
              "examples": [],
              "id": "neuralspotx.api.AppActionRequest",
              "kind": "class",
              "language": "python",
              "members": [
                {
                  "description": "App directory containing ``nsx.yml``.",
                  "examples": [],
                  "id": "neuralspotx.api.AppActionRequest.app_dir",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "app_dir",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "app_dir: PathLike",
                  "source": {
                    "line": 90,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L90"
                  },
                  "summary": ""
                },
                {
                  "description": "Optional board override.",
                  "examples": [],
                  "id": "neuralspotx.api.AppActionRequest.board",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "board",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "board: str | None = None",
                  "source": {
                    "line": 91,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L91"
                  },
                  "summary": ""
                },
                {
                  "description": "Optional build directory override.",
                  "examples": [],
                  "id": "neuralspotx.api.AppActionRequest.build_dir",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "build_dir",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "build_dir: PathLike | None = None",
                  "source": {
                    "line": 92,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L92"
                  },
                  "summary": ""
                },
                {
                  "description": "Optional toolchain override (``gcc``, ``armclang``).",
                  "examples": [],
                  "id": "neuralspotx.api.AppActionRequest.toolchain",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "toolchain",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "toolchain: str | None = None",
                  "source": {
                    "line": 93,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L93"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.api.AppActionRequest.probe_serial",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "probe_serial",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "probe_serial: str | None = None",
                  "source": {
                    "line": 94,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L94"
                  },
                  "summary": ""
                },
                {
                  "description": "Optional out-of-tree AmbiqSuite root passed through as\n``-DNSX_AMBIQSUITE_ROOT_OVERRIDE=...`` during CMake configure.",
                  "examples": [],
                  "id": "neuralspotx.api.AppActionRequest.sdk_root",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "sdk_root",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "sdk_root: PathLike | None = field(default=None, kw_only=True)",
                  "source": {
                    "line": 95,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L95"
                  },
                  "summary": ""
                },
                {
                  "description": "When a module sync is needed (fresh workspace, or an\nexisting build directory reconfiguring), verify ``modules/``\nagainst ``nsx.lock`` and raise instead of silently\nre-vendoring on any drift; modules missing from disk are\nfetched at their locked revision and verified. Mirrors\n``AppSyncRequest.frozen``.\nUse this to iterate on a hand-patched vendored module\nwithout ``configure``/``build``/``flash`` silently reverting\nit on the next run.",
                  "examples": [],
                  "id": "neuralspotx.api.AppActionRequest.frozen",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "frozen",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "frozen: bool = field(default=False, kw_only=True)",
                  "source": {
                    "line": 96,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L96"
                  },
                  "summary": ""
                },
                {
                  "description": "Per-subprocess wall-clock budget (seconds).  ``None``\ndisables the timeout.  When the budget elapses, the entire\nchild process group is SIGTERM/SIGKILL'd and\n:class:`NSXError` is raised.",
                  "examples": [],
                  "id": "neuralspotx.api.AppActionRequest.timeout_s",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "timeout_s",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "timeout_s: float | None = field(default=None, kw_only=True)",
                  "source": {
                    "line": 97,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L97"
                  },
                  "summary": ""
                }
              ],
              "name": "AppActionRequest",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "AppActionRequest(\n    app_dir: PathLike,\n    board: str | None = None,\n    build_dir: PathLike | None = None,\n    toolchain: str | None = None,\n    probe_serial: str | None = None,\n    *,\n    sdk_root: PathLike | None = None,\n    frozen: bool = False,\n    timeout_s: float | None = None,\n) -> None",
              "source": {
                "line": 56,
                "path": "src/neuralspotx/api/_requests.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L56"
              },
              "summary": "Base request for app-scoped actions."
            },
            {
              "description": "Remove a module from an app.",
              "examples": [],
              "id": "neuralspotx.api.remove_module",
              "kind": "function",
              "language": "python",
              "members": [],
              "name": "remove_module",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "remove_module(\n    app_dir: PathLike | ModuleChangeRequest,\n    module: str | None = None,\n    *,\n    dry_run: bool = False,\n) -> list[ModuleChange]",
              "source": {
                "line": 60,
                "path": "src/neuralspotx/api/_modules.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_modules.py#L60"
              },
              "summary": "Remove a module from an app."
            },
            {
              "description": "Run the NSX environment diagnostics.\n\nReturns the structured :class:`DoctorReport`. Never raises on a\nfailed check — embedders are expected to inspect ``report.ok`` and\ndecide how to react. The CLI handler raises\n:class:`~neuralspotx._errors.NSXToolchainError` so ``nsx doctor``\nkeeps its historic non-zero exit code.",
              "examples": [],
              "id": "neuralspotx.api.doctor",
              "kind": "function",
              "language": "python",
              "members": [],
              "name": "doctor",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "doctor(*, emit: Emitter | None = None) -> DoctorReport",
              "source": {
                "line": 74,
                "path": "src/neuralspotx/api/_app.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_app.py#L74"
              },
              "summary": "Run the NSX environment diagnostics."
            },
            {
              "description": "Materialise ``modules/`` so it exactly matches ``nsx.lock``.\n\n*timeout_s* applies per individual ``git clone`` / ``git fetch``\ninvoked during the sync (not to the whole sync run).",
              "examples": [],
              "id": "neuralspotx.api.sync_app",
              "kind": "function",
              "language": "python",
              "members": [],
              "name": "sync_app",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "sync_app(\n    app_dir: PathLike | AppSyncRequest,\n    *,\n    frozen: bool = False,\n    force: bool = False,\n    timeout_s: float | None = None,\n    emit: Emitter | None = None,\n) -> None",
              "source": {
                "line": 74,
                "path": "src/neuralspotx/api/_lock.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_lock.py#L74"
              },
              "summary": "Materialise modules/ so it exactly matches nsx.lock."
            },
            {
              "description": "Refresh one or more enabled modules from the registry.",
              "examples": [],
              "id": "neuralspotx.api.update_modules",
              "kind": "function",
              "language": "python",
              "members": [],
              "name": "update_modules",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "update_modules(\n    app_dir: PathLike | ModuleUpdateRequest,\n    *,\n    module: str | None = None,\n    dry_run: bool = False,\n) -> list[ModuleChange]",
              "source": {
                "line": 86,
                "path": "src/neuralspotx/api/_modules.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_modules.py#L86"
              },
              "summary": "Refresh one or more enabled modules from the registry."
            },
            {
              "description": "Configure an app build directory with CMake.\n\n*timeout_s* sets a wall-clock budget for the underlying ``cmake``\nsubprocess; the whole process group is killed on timeout.\n\n*frozen* verifies ``modules/`` against ``nsx.lock`` and raises on any\ndrift instead of silently re-vendoring — see :class:`AppActionRequest`.",
              "examples": [],
              "id": "neuralspotx.api.configure_app",
              "kind": "function",
              "language": "python",
              "members": [],
              "name": "configure_app",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "configure_app(\n    app_dir: PathLike | AppActionRequest,\n    *,\n    board: str | None = None,\n    build_dir: PathLike | None = None,\n    toolchain: str | None = None,\n    probe_serial: str | None = None,\n    sdk_root: PathLike | None = None,\n    frozen: bool = False,\n    timeout_s: float | None = None,\n    emit: Emitter | None = None,\n) -> None",
              "source": {
                "line": 88,
                "path": "src/neuralspotx/api/_app.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_app.py#L88"
              },
              "summary": "Configure an app build directory with CMake."
            },
            {
              "description": "`dataclass`\n\nRequest parameters for launching the SWO viewer.",
              "examples": [],
              "id": "neuralspotx.api.AppViewRequest",
              "kind": "class",
              "language": "python",
              "members": [
                {
                  "description": "When True, reset the target once the viewer\nattaches. When False, attach without resetting. When None\n(default), choose the board-appropriate policy.",
                  "examples": [],
                  "id": "neuralspotx.api.AppViewRequest.reset_on_open",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "reset_on_open",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "reset_on_open: bool | None = None",
                  "source": {
                    "line": 117,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L117"
                  },
                  "summary": ""
                },
                {
                  "description": "Delay between attaching the viewer and issuing\nthe reset, in milliseconds.",
                  "examples": [],
                  "id": "neuralspotx.api.AppViewRequest.reset_delay_ms",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "reset_delay_ms",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "reset_delay_ms: int = 400",
                  "source": {
                    "line": 118,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L118"
                  },
                  "summary": ""
                },
                {
                  "description": "When set, terminate the viewer after this many\nseconds so the command always returns (instead of running\nuntil interrupted).",
                  "examples": [],
                  "id": "neuralspotx.api.AppViewRequest.duration_s",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "duration_s",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "duration_s: float | None = None",
                  "source": {
                    "line": 119,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L119"
                  },
                  "summary": ""
                },
                {
                  "description": "When set, line-stream the viewer's output to this file\nin addition to stdout.",
                  "examples": [],
                  "id": "neuralspotx.api.AppViewRequest.capture",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "capture",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "capture: PathLike | None = None",
                  "source": {
                    "line": 120,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L120"
                  },
                  "summary": ""
                }
              ],
              "name": "AppViewRequest",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "AppViewRequest(\n    app_dir: PathLike,\n    board: str | None = None,\n    build_dir: PathLike | None = None,\n    toolchain: str | None = None,\n    probe_serial: str | None = None,\n    reset_on_open: bool | None = None,\n    reset_delay_ms: int = 400,\n    duration_s: float | None = None,\n    capture: PathLike | None = None,\n    *,\n    sdk_root: PathLike | None = None,\n    frozen: bool = False,\n    timeout_s: float | None = None,\n) -> None",
              "source": {
                "line": 100,
                "path": "src/neuralspotx/api/_requests.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L100"
              },
              "summary": "Request parameters for launching the SWO viewer."
            },
            {
              "description": "Report git modules whose locked commit lags the upstream constraint.\n\nReturns an :class:`OutdatedReport` describing every git-hosted\nmodule inspected (``checked``) and any that could not be resolved\n(``skipped``). Callers that need machine-readable output should\nuse ``report.to_dict()``.\n*timeout_s* applies per ``git ls-remote`` subprocess invoked while\ncomparing locked commits to upstream tips.",
              "examples": [],
              "id": "neuralspotx.api.outdated_app",
              "kind": "function",
              "language": "python",
              "members": [],
              "name": "outdated_app",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "outdated_app(app_dir: PathLike | AppOutdatedRequest, *, timeout_s: float | None = None) -> OutdatedReport",
              "source": {
                "line": 101,
                "path": "src/neuralspotx/api/_lock.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_lock.py#L101"
              },
              "summary": "Report git modules whose locked commit lags the upstream constraint."
            },
            {
              "description": "Register an app-local module override.",
              "examples": [],
              "id": "neuralspotx.api.register_module",
              "kind": "function",
              "language": "python",
              "members": [],
              "name": "register_module",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "register_module(\n    app_dir: PathLike | ModuleRegisterRequest,\n    module: str | None = None,\n    *,\n    metadata: PathLike | None = None,\n    project: str | None = None,\n    project_url: str | None = None,\n    project_revision: str | None = None,\n    project_path: str | None = None,\n    project_local_path: PathLike | None = None,\n    override: bool = False,\n    dry_run: bool = False,\n) -> ModuleChange",
              "source": {
                "line": 110,
                "path": "src/neuralspotx/api/_modules.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_modules.py#L110"
              },
              "summary": "Register an app-local module override."
            },
            {
              "description": "`dataclass`\n\nRequest parameters for building an app.",
              "examples": [],
              "id": "neuralspotx.api.AppBuildRequest",
              "kind": "class",
              "language": "python",
              "members": [
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.api.AppBuildRequest.target",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "target",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "target: str | None = None",
                  "source": {
                    "line": 127,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L127"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.api.AppBuildRequest.jobs",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "jobs",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "jobs: int = 8",
                  "source": {
                    "line": 128,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L128"
                  },
                  "summary": ""
                }
              ],
              "name": "AppBuildRequest",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "AppBuildRequest(\n    app_dir: PathLike,\n    board: str | None = None,\n    build_dir: PathLike | None = None,\n    toolchain: str | None = None,\n    probe_serial: str | None = None,\n    target: str | None = None,\n    jobs: int = 8,\n    *,\n    sdk_root: PathLike | None = None,\n    frozen: bool = False,\n    timeout_s: float | None = None,\n) -> None",
              "source": {
                "line": 123,
                "path": "src/neuralspotx/api/_requests.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L123"
              },
              "summary": "Request parameters for building an app."
            },
            {
              "description": "Re-resolve module constraints to upstream tip and re-vendor.\n\nEquivalent to ``nsx lock --update [--module ...] && nsx sync``.\n*timeout_s* applies per individual ``git`` subprocess invoked\nduring the re-resolve and re-vendor phases.",
              "examples": [],
              "id": "neuralspotx.api.update_app",
              "kind": "function",
              "language": "python",
              "members": [],
              "name": "update_app",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "update_app(\n    app_dir: PathLike | AppUpdateRequest,\n    *,\n    modules: list[str] | None = None,\n    timeout_s: float | None = None,\n    emit: Emitter | None = None,\n) -> None",
              "source": {
                "line": 127,
                "path": "src/neuralspotx/api/_lock.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_lock.py#L127"
              },
              "summary": "Re-resolve module constraints to upstream tip and re-vendor."
            },
            {
              "description": "`dataclass`\n\nRequest parameters for flashing an app.",
              "examples": [],
              "id": "neuralspotx.api.AppFlashRequest",
              "kind": "class",
              "language": "python",
              "members": [
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.api.AppFlashRequest.target",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "target",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "target: str | None = field(default=None, kw_only=True)",
                  "source": {
                    "line": 135,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L135"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.api.AppFlashRequest.jobs",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "jobs",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "jobs: int = 8",
                  "source": {
                    "line": 136,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L136"
                  },
                  "summary": ""
                }
              ],
              "name": "AppFlashRequest",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "AppFlashRequest(\n    app_dir: PathLike,\n    board: str | None = None,\n    build_dir: PathLike | None = None,\n    toolchain: str | None = None,\n    probe_serial: str | None = None,\n    jobs: int = 8,\n    *,\n    sdk_root: PathLike | None = None,\n    frozen: bool = False,\n    timeout_s: float | None = None,\n    target: str | None = None,\n) -> None",
              "source": {
                "line": 131,
                "path": "src/neuralspotx/api/_requests.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L131"
              },
              "summary": "Request parameters for flashing an app."
            },
            {
              "description": "Build an NSX app.\n\n*timeout_s* sets a wall-clock budget for each underlying\n``cmake`` / ``ninja`` subprocess; the whole process group is killed\non timeout.\n\n*frozen* verifies ``modules/`` against ``nsx.lock`` and raises on any\ndrift instead of silently re-vendoring, when a (re)configure is\ntriggered (no ``build.ninja`` yet) — see :class:`AppActionRequest`.",
              "examples": [],
              "id": "neuralspotx.api.build_app",
              "kind": "function",
              "language": "python",
              "members": [],
              "name": "build_app",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "build_app(\n    app_dir: PathLike | AppBuildRequest,\n    *,\n    board: str | None = None,\n    build_dir: PathLike | None = None,\n    toolchain: str | None = None,\n    target: str | None = None,\n    jobs: int = 8,\n    sdk_root: PathLike | None = None,\n    frozen: bool = False,\n    timeout_s: float | None = None,\n    emit: Emitter | None = None,\n    on_line: Callable[[str], None] | None = None,\n) -> None",
              "source": {
                "line": 135,
                "path": "src/neuralspotx/api/_app.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_app.py#L135"
              },
              "summary": "Build an NSX app."
            },
            {
              "description": "`dataclass`\n\nRequest parameters for cleaning an app build.",
              "examples": [],
              "id": "neuralspotx.api.AppCleanRequest",
              "kind": "class",
              "language": "python",
              "members": [
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.api.AppCleanRequest.full",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "full",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "full: bool = False",
                  "source": {
                    "line": 143,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L143"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.api.AppCleanRequest.reset",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "reset",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "reset: bool = False",
                  "source": {
                    "line": 144,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L144"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.api.AppCleanRequest.force",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "force",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "force: bool = False",
                  "source": {
                    "line": 145,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L145"
                  },
                  "summary": ""
                }
              ],
              "name": "AppCleanRequest",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "AppCleanRequest(\n    app_dir: PathLike,\n    board: str | None = None,\n    build_dir: PathLike | None = None,\n    toolchain: str | None = None,\n    probe_serial: str | None = None,\n    full: bool = False,\n    reset: bool = False,\n    force: bool = False,\n    *,\n    sdk_root: PathLike | None = None,\n    frozen: bool = False,\n    timeout_s: float | None = None,\n) -> None",
              "source": {
                "line": 139,
                "path": "src/neuralspotx/api/_requests.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L139"
              },
              "summary": "Request parameters for cleaning an app build."
            },
            {
              "description": "`dataclass`\n\nRequest parameters for resolving and writing ``nsx.lock``.",
              "examples": [],
              "id": "neuralspotx.api.AppLockRequest",
              "kind": "class",
              "language": "python",
              "members": [
                {
                  "description": "App directory containing ``nsx.yml``.",
                  "examples": [],
                  "id": "neuralspotx.api.AppLockRequest.app_dir",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "app_dir",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "app_dir: PathLike",
                  "source": {
                    "line": 164,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L164"
                  },
                  "summary": ""
                },
                {
                  "description": "Re-resolve module constraints to current upstream HEAD/tag.",
                  "examples": [],
                  "id": "neuralspotx.api.AppLockRequest.update",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "update",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "update: bool = False",
                  "source": {
                    "line": 165,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L165"
                  },
                  "summary": ""
                },
                {
                  "description": "When given alongside ``update``, only re-resolve these.",
                  "examples": [],
                  "id": "neuralspotx.api.AppLockRequest.modules",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "modules",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "modules: list[str] | None = None",
                  "source": {
                    "line": 166,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L166"
                  },
                  "summary": ""
                },
                {
                  "description": "Read-only mode — fail if ``nsx.lock`` would change.",
                  "examples": [],
                  "id": "neuralspotx.api.AppLockRequest.check",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "check",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "check: bool = False",
                  "source": {
                    "line": 167,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L167"
                  },
                  "summary": ""
                },
                {
                  "description": "Suppress the post-write summary print.",
                  "examples": [],
                  "id": "neuralspotx.api.AppLockRequest.quiet",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "quiet",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "quiet: bool = False",
                  "source": {
                    "line": 168,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L168"
                  },
                  "summary": ""
                },
                {
                  "description": "Per-subprocess wall-clock budget (seconds).",
                  "examples": [],
                  "id": "neuralspotx.api.AppLockRequest.timeout_s",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "timeout_s",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "timeout_s: float | None = None",
                  "source": {
                    "line": 169,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L169"
                  },
                  "summary": ""
                },
                {
                  "description": "Override the resolve-ref cache TTL for this call.\n``None`` uses the ``NSX_RESOLVE_TTL`` env var (default 300s).\n``0`` disables caching.",
                  "examples": [],
                  "id": "neuralspotx.api.AppLockRequest.resolve_ttl_s",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "resolve_ttl_s",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "resolve_ttl_s: float | None = None",
                  "source": {
                    "line": 170,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L170"
                  },
                  "summary": ""
                }
              ],
              "name": "AppLockRequest",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "AppLockRequest(\n    app_dir: PathLike,\n    update: bool = False,\n    modules: list[str] | None = None,\n    check: bool = False,\n    quiet: bool = False,\n    timeout_s: float | None = None,\n    resolve_ttl_s: float | None = None,\n) -> None",
              "source": {
                "line": 148,
                "path": "src/neuralspotx/api/_requests.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L148"
              },
              "summary": "Request parameters for resolving and writing nsx.lock."
            },
            {
              "description": "Create a standard custom-module skeleton on disk.",
              "examples": [],
              "id": "neuralspotx.api.init_module",
              "kind": "function",
              "language": "python",
              "members": [],
              "name": "init_module",
              "params": [
                {
                  "description": "Destination directory or a fully populated request object. When a request\nobject is supplied, the remaining keyword arguments are ignored.",
                  "name": "module_dir",
                  "type": "PathLike | ModuleInitRequest"
                },
                {
                  "default": "None",
                  "description": "Manifest module name. Defaults to the destination directory name.",
                  "name": "module_name",
                  "type": "str | None"
                },
                {
                  "default": "'runtime'",
                  "description": "NSX module type written to ``nsx-module.yaml``.",
                  "name": "module_type",
                  "type": "str"
                },
                {
                  "default": "None",
                  "description": "Human-readable module summary. A placeholder is generated when omitted.",
                  "name": "summary",
                  "type": "str | None"
                },
                {
                  "default": "'0.1.0'",
                  "description": "Initial semantic version written to the module metadata.",
                  "name": "version",
                  "type": "str"
                },
                {
                  "default": "None",
                  "description": "Required NSX module names, in declaration order.",
                  "name": "dependencies",
                  "type": "list[str] | None"
                },
                {
                  "default": "None",
                  "description": "Compatible board names. Defaults to all boards.",
                  "name": "boards",
                  "type": "list[str] | None"
                },
                {
                  "default": "None",
                  "description": "Compatible SoC names. Defaults to all SoCs.",
                  "name": "socs",
                  "type": "list[str] | None"
                },
                {
                  "default": "None",
                  "description": "Compatible toolchain names. Defaults to the NSX default toolchain.",
                  "name": "toolchains",
                  "type": "list[str] | None"
                },
                {
                  "default": "False",
                  "description": "Allow generation into an existing non-empty directory.",
                  "name": "force",
                  "type": "bool"
                }
              ],
              "raises": [
                {
                  "description": "The module name is empty or the destination cannot be safely used.",
                  "type": "NSXModuleError"
                },
                {
                  "description": "Packaged templates are unavailable.",
                  "type": "NSXConfigError"
                },
                {
                  "description": "Generated metadata is invalid.",
                  "type": "ValueError"
                }
              ],
              "returns": [
                {
                  "description": "A change record describing the newly generated module.",
                  "type": "ModuleChange"
                }
              ],
              "signature": "init_module(\n    module_dir: PathLike | ModuleInitRequest,\n    *,\n    module_name: str | None = None,\n    module_type: str = 'runtime',\n    summary: str | None = None,\n    version: str = '0.1.0',\n    dependencies: list[str] | None = None,\n    boards: list[str] | None = None,\n    socs: list[str] | None = None,\n    toolchains: list[str] | None = None,\n    force: bool = False,\n) -> ModuleChange",
              "source": {
                "line": 159,
                "path": "src/neuralspotx/api/_modules.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_modules.py#L159"
              },
              "summary": "Create a standard custom-module skeleton on disk."
            },
            {
              "description": "`dataclass`\n\nRequest parameters for materialising ``modules/`` from ``nsx.lock``.",
              "examples": [],
              "id": "neuralspotx.api.AppSyncRequest",
              "kind": "class",
              "language": "python",
              "members": [
                {
                  "description": "App directory containing ``nsx.lock``.",
                  "examples": [],
                  "id": "neuralspotx.api.AppSyncRequest.app_dir",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "app_dir",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "app_dir: PathLike",
                  "source": {
                    "line": 189,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L189"
                  },
                  "summary": ""
                },
                {
                  "description": "Never modify a vendored tree — verify content hashes and\nfail on drift. Modules missing from disk are still fetched\n(over the network for git modules) at their locked revision\nand must match the lock exactly.",
                  "examples": [],
                  "id": "neuralspotx.api.AppSyncRequest.frozen",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "frozen",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "frozen: bool = False",
                  "source": {
                    "line": 190,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L190"
                  },
                  "summary": ""
                },
                {
                  "description": "Re-vendor every module even if content_hash matches.",
                  "examples": [],
                  "id": "neuralspotx.api.AppSyncRequest.force",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "force",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "force: bool = False",
                  "source": {
                    "line": 191,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L191"
                  },
                  "summary": ""
                },
                {
                  "description": "Per-subprocess wall-clock budget (seconds).  Applied\nto every individual ``git clone`` / ``git fetch`` invoked\nduring the sync.",
                  "examples": [],
                  "id": "neuralspotx.api.AppSyncRequest.timeout_s",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "timeout_s",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "timeout_s: float | None = None",
                  "source": {
                    "line": 192,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L192"
                  },
                  "summary": ""
                }
              ],
              "name": "AppSyncRequest",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "AppSyncRequest(app_dir: PathLike, frozen: bool = False, force: bool = False, timeout_s: float | None = None) -> None",
              "source": {
                "line": 173,
                "path": "src/neuralspotx/api/_requests.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L173"
              },
              "summary": "Request parameters for materialising modules/ from nsx.lock."
            },
            {
              "description": "Build and flash an NSX app.\n\n*timeout_s* sets a wall-clock budget for each underlying ``cmake``\ninvocation (including the J-Link flash target); the whole process\ngroup is killed on timeout so a hung ``JLinkExe`` cannot leak.\n\n*frozen* verifies ``modules/`` against ``nsx.lock`` and raises on any\ndrift instead of silently re-vendoring, when a (re)configure is\ntriggered — see :class:`AppActionRequest` and\n:func:`neuralspotx.operations.flash_app_impl` for why passing\n*probe_serial* always forces a reconfigure regardless of *frozen*.",
              "examples": [],
              "id": "neuralspotx.api.flash_app",
              "kind": "function",
              "language": "python",
              "members": [],
              "name": "flash_app",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "flash_app(\n    app_dir: PathLike | AppFlashRequest,\n    *,\n    board: str | None = None,\n    build_dir: PathLike | None = None,\n    toolchain: str | None = None,\n    target: str | None = None,\n    probe_serial: str | None = None,\n    jobs: int = 8,\n    sdk_root: PathLike | None = None,\n    frozen: bool = False,\n    timeout_s: float | None = None,\n    emit: Emitter | None = None,\n    on_line: Callable[[str], None] | None = None,\n) -> FlashResult",
              "source": {
                "line": 189,
                "path": "src/neuralspotx/api/_app.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_app.py#L189"
              },
              "summary": "Build and flash an NSX app."
            },
            {
              "description": "`dataclass`\n\nRequest parameters for the ``nsx outdated`` report.",
              "examples": [],
              "id": "neuralspotx.api.AppOutdatedRequest",
              "kind": "class",
              "language": "python",
              "members": [
                {
                  "description": "App directory containing ``nsx.lock``.",
                  "examples": [],
                  "id": "neuralspotx.api.AppOutdatedRequest.app_dir",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "app_dir",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "app_dir: PathLike",
                  "source": {
                    "line": 206,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L206"
                  },
                  "summary": ""
                },
                {
                  "description": "Per-subprocess wall-clock budget (seconds). Applied\nto each ``git ls-remote`` invoked while comparing locked\ncommits to upstream tips. ``None`` disables the timeout.",
                  "examples": [],
                  "id": "neuralspotx.api.AppOutdatedRequest.timeout_s",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "timeout_s",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "timeout_s: float | None = None",
                  "source": {
                    "line": 207,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L207"
                  },
                  "summary": ""
                }
              ],
              "name": "AppOutdatedRequest",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "AppOutdatedRequest(app_dir: PathLike, timeout_s: float | None = None) -> None",
              "source": {
                "line": 195,
                "path": "src/neuralspotx/api/_requests.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L195"
              },
              "summary": "Request parameters for the nsx outdated report."
            },
            {
              "description": "`dataclass`\n\nRequest parameters for ``nsx update`` (lock --update + sync).",
              "examples": [],
              "id": "neuralspotx.api.AppUpdateRequest",
              "kind": "class",
              "language": "python",
              "members": [
                {
                  "description": "App directory containing ``nsx.yml``.",
                  "examples": [],
                  "id": "neuralspotx.api.AppUpdateRequest.app_dir",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "app_dir",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "app_dir: PathLike",
                  "source": {
                    "line": 222,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L222"
                  },
                  "summary": ""
                },
                {
                  "description": "Optional list of module names to update; ``None`` means all.",
                  "examples": [],
                  "id": "neuralspotx.api.AppUpdateRequest.modules",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "modules",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "modules: list[str] | None = None",
                  "source": {
                    "line": 223,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L223"
                  },
                  "summary": ""
                },
                {
                  "description": "Per-subprocess wall-clock budget (seconds).  Applied\nto every individual ``git`` subprocess invoked during the\nre-resolve and re-vendor phases.",
                  "examples": [],
                  "id": "neuralspotx.api.AppUpdateRequest.timeout_s",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "timeout_s",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "timeout_s: float | None = None",
                  "source": {
                    "line": 224,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L224"
                  },
                  "summary": ""
                }
              ],
              "name": "AppUpdateRequest",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "AppUpdateRequest(app_dir: PathLike, modules: list[str] | None = None, timeout_s: float | None = None) -> None",
              "source": {
                "line": 210,
                "path": "src/neuralspotx/api/_requests.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L210"
              },
              "summary": "Request parameters for nsx update (lock --update + sync)."
            },
            {
              "description": "Validate an ``nsx-module.yaml`` file and return the parsed data.\n\nRaises ``NSXError`` when the file is missing, malformed, or fails\nrequired-field checks.",
              "examples": [],
              "id": "neuralspotx.api.validate_module_metadata",
              "kind": "function",
              "language": "python",
              "members": [],
              "name": "validate_module_metadata",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "validate_module_metadata(metadata: PathLike) -> dict[str, Any]",
              "source": {
                "line": 215,
                "path": "src/neuralspotx/api/_modules.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_modules.py#L215"
              },
              "summary": "Validate an nsx-module.yaml file and return the parsed data."
            },
            {
              "description": "`dataclass`\n\nRequest parameters for adding or removing a module.",
              "examples": [],
              "id": "neuralspotx.api.ModuleChangeRequest",
              "kind": "class",
              "language": "python",
              "members": [
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.api.ModuleChangeRequest.app_dir",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "app_dir",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "app_dir: PathLike",
                  "source": {
                    "line": 231,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L231"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.api.ModuleChangeRequest.module",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "module",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "module: str",
                  "source": {
                    "line": 232,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L232"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.api.ModuleChangeRequest.dry_run",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "dry_run",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "dry_run: bool = False",
                  "source": {
                    "line": 233,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L233"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.api.ModuleChangeRequest.local",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "local",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "local: bool = False",
                  "source": {
                    "line": 234,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L234"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.api.ModuleChangeRequest.vendored",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "vendored",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "vendored: bool = False",
                  "source": {
                    "line": 235,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L235"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.api.ModuleChangeRequest.path",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "path",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "path: str | None = None",
                  "source": {
                    "line": 236,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L236"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.api.ModuleChangeRequest.boards",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "boards",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "boards: tuple[str, ...] = ()",
                  "source": {
                    "line": 237,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L237"
                  },
                  "summary": ""
                }
              ],
              "name": "ModuleChangeRequest",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "ModuleChangeRequest(\n    app_dir: PathLike,\n    module: str,\n    dry_run: bool = False,\n    local: bool = False,\n    vendored: bool = False,\n    path: str | None = None,\n    boards: tuple[str, ...] = (),\n) -> None",
              "source": {
                "line": 227,
                "path": "src/neuralspotx/api/_requests.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L227"
              },
              "summary": "Request parameters for adding or removing a module."
            },
            {
              "description": "Find the nearest app root containing ``nsx.yml``.",
              "examples": [],
              "id": "neuralspotx.api.find_app_root",
              "kind": "function",
              "language": "python",
              "members": [],
              "name": "find_app_root",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "find_app_root(start: PathLike | None = None) -> Path | None",
              "source": {
                "line": 235,
                "path": "src/neuralspotx/api/_modules.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_modules.py#L235"
              },
              "summary": "Find the nearest app root containing nsx.yml."
            },
            {
              "description": "`dataclass`\n\nRequest parameters for updating one or more modules.",
              "examples": [],
              "id": "neuralspotx.api.ModuleUpdateRequest",
              "kind": "class",
              "language": "python",
              "members": [
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.api.ModuleUpdateRequest.app_dir",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "app_dir",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "app_dir: PathLike",
                  "source": {
                    "line": 244,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L244"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.api.ModuleUpdateRequest.module",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "module",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "module: str | None = None",
                  "source": {
                    "line": 245,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L245"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.api.ModuleUpdateRequest.dry_run",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "dry_run",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "dry_run: bool = False",
                  "source": {
                    "line": 246,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L246"
                  },
                  "summary": ""
                }
              ],
              "name": "ModuleUpdateRequest",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "ModuleUpdateRequest(app_dir: PathLike, module: str | None = None, dry_run: bool = False) -> None",
              "source": {
                "line": 240,
                "path": "src/neuralspotx/api/_requests.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L240"
              },
              "summary": "Request parameters for updating one or more modules."
            },
            {
              "description": "Resolve an app directory from an explicit path or upward search.",
              "examples": [],
              "id": "neuralspotx.api.resolve_app_dir",
              "kind": "function",
              "language": "python",
              "members": [],
              "name": "resolve_app_dir",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "resolve_app_dir(explicit: PathLike | None) -> Path",
              "source": {
                "line": 243,
                "path": "src/neuralspotx/api/_modules.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_modules.py#L243"
              },
              "summary": "Resolve an app directory from an explicit path or upward search."
            },
            {
              "description": "Perform an explicit J-Link reset without changing flash policy.\n\n``swpoi`` writes ``0x1B`` to Ambiq RSTGEN at ``0x40000004``. The\nresulting target disconnect is accepted only when J-Link output contains\nthe expected interrupted-write signature. ``verify_reconnect`` performs\na separate bounded connection after either reset kind.",
              "examples": [],
              "id": "neuralspotx.api.reset_target",
              "kind": "function",
              "language": "python",
              "members": [],
              "name": "reset_target",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "reset_target(\n    *,\n    device: str,\n    probe_serial: str | None = None,\n    kind: Literal['debug', 'swpoi'] = 'debug',\n    interface: str = 'SWD',\n    speed_khz: int = 4000,\n    timeout_s: float | None = None,\n    verify_reconnect: bool = False,\n    emit: Emitter | None = None,\n) -> ResetResult",
              "source": {
                "line": 248,
                "path": "src/neuralspotx/api/_app.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_app.py#L248"
              },
              "summary": "Perform an explicit J-Link reset without changing flash policy."
            },
            {
              "description": "`dataclass`\n\nRequest parameters for registering an app-local module override.",
              "examples": [],
              "id": "neuralspotx.api.ModuleRegisterRequest",
              "kind": "class",
              "language": "python",
              "members": [
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.api.ModuleRegisterRequest.app_dir",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "app_dir",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "app_dir: PathLike",
                  "source": {
                    "line": 253,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L253"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.api.ModuleRegisterRequest.module",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "module",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "module: str",
                  "source": {
                    "line": 254,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L254"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.api.ModuleRegisterRequest.metadata",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "metadata",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "metadata: PathLike",
                  "source": {
                    "line": 255,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L255"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.api.ModuleRegisterRequest.project",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "project",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "project: str",
                  "source": {
                    "line": 256,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L256"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.api.ModuleRegisterRequest.project_url",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "project_url",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "project_url: str | None = None",
                  "source": {
                    "line": 257,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L257"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.api.ModuleRegisterRequest.project_revision",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "project_revision",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "project_revision: str | None = None",
                  "source": {
                    "line": 258,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L258"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.api.ModuleRegisterRequest.project_path",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "project_path",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "project_path: str | None = None",
                  "source": {
                    "line": 259,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L259"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.api.ModuleRegisterRequest.project_local_path",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "project_local_path",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "project_local_path: PathLike | None = None",
                  "source": {
                    "line": 260,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L260"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.api.ModuleRegisterRequest.override",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "override",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "override: bool = False",
                  "source": {
                    "line": 261,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L261"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.api.ModuleRegisterRequest.dry_run",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "dry_run",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "dry_run: bool = False",
                  "source": {
                    "line": 262,
                    "path": "src/neuralspotx/api/_requests.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L262"
                  },
                  "summary": ""
                }
              ],
              "name": "ModuleRegisterRequest",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "ModuleRegisterRequest(\n    app_dir: PathLike,\n    module: str,\n    metadata: PathLike,\n    project: str,\n    project_url: str | None = None,\n    project_revision: str | None = None,\n    project_path: str | None = None,\n    project_local_path: PathLike | None = None,\n    override: bool = False,\n    dry_run: bool = False,\n) -> None",
              "source": {
                "line": 249,
                "path": "src/neuralspotx/api/_requests.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_requests.py#L249"
              },
              "summary": "Request parameters for registering an app-local module override."
            },
            {
              "description": "List available modules from the effective registry context.\n\nBy default returns lightweight records without parsing each module's\n``nsx-module.yaml`` (cheap directory listing). Pass\n``include_metadata=True`` for the full record set used by\n``nsx module list --json`` / ``nsx module describe``.",
              "examples": [],
              "id": "neuralspotx.api.list_modules",
              "kind": "function",
              "language": "python",
              "members": [],
              "name": "list_modules",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "list_modules(\n    *,\n    app_dir: PathLike | None = None,\n    registry_only: bool = False,\n    include_metadata: bool = False,\n) -> list[DiscoveryRecord]",
              "source": {
                "line": 249,
                "path": "src/neuralspotx/api/_modules.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_modules.py#L249"
              },
              "summary": "List available modules from the effective registry context."
            },
            {
              "description": "Describe a single module from the effective registry context.",
              "examples": [],
              "id": "neuralspotx.api.describe_module",
              "kind": "function",
              "language": "python",
              "members": [],
              "name": "describe_module",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "describe_module(module: str, *, app_dir: PathLike | None = None) -> DiscoveryRecord",
              "source": {
                "line": 270,
                "path": "src/neuralspotx/api/_modules.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_modules.py#L270"
              },
              "summary": "Describe a single module from the effective registry context."
            },
            {
              "description": "Launch the SEGGER SWO viewer for an app.\n\n*frozen* verifies ``modules/`` against ``nsx.lock`` and raises on any\ndrift instead of silently re-vendoring, when a (re)configure is\ntriggered (same trigger rule as :func:`flash_app`) — see\n:class:`AppActionRequest`.",
              "examples": [],
              "id": "neuralspotx.api.view_app",
              "kind": "function",
              "language": "python",
              "members": [],
              "name": "view_app",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "view_app(\n    app_dir: PathLike | AppViewRequest,\n    *,\n    board: str | None = None,\n    build_dir: PathLike | None = None,\n    toolchain: str | None = None,\n    probe_serial: str | None = None,\n    sdk_root: PathLike | None = None,\n    frozen: bool = False,\n    reset_on_open: bool | None = None,\n    reset_delay_ms: int = 400,\n    duration_s: float | None = None,\n    capture: PathLike | None = None,\n    timeout_s: float | None = None,\n    emit: Emitter | None = None,\n) -> None",
              "source": {
                "line": 278,
                "path": "src/neuralspotx/api/_app.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_app.py#L278"
              },
              "summary": "Launch the SEGGER SWO viewer for an app."
            },
            {
              "description": "Search modules by keyword and target compatibility context.",
              "examples": [],
              "id": "neuralspotx.api.search_modules",
              "kind": "function",
              "language": "python",
              "members": [],
              "name": "search_modules",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "search_modules(\n    query: str,\n    *,\n    app_dir: PathLike | None = None,\n    board: str | None = None,\n    soc: str | None = None,\n    toolchain: str | None = None,\n    include_incompatible: bool = False,\n) -> list[SearchResult]",
              "source": {
                "line": 283,
                "path": "src/neuralspotx/api/_modules.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_modules.py#L283"
              },
              "summary": "Search modules by keyword and target compatibility context."
            },
            {
              "description": "Clean or fully remove an app build directory.\n\n*timeout_s* sets a wall-clock budget for the underlying ``cmake``\nclean subprocess; the whole process group is killed on timeout.",
              "examples": [],
              "id": "neuralspotx.api.clean_app",
              "kind": "function",
              "language": "python",
              "members": [],
              "name": "clean_app",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "clean_app(\n    app_dir: PathLike | AppCleanRequest,\n    *,\n    board: str | None = None,\n    build_dir: PathLike | None = None,\n    toolchain: str | None = None,\n    full: bool = False,\n    reset: bool = False,\n    force: bool = False,\n    timeout_s: float | None = None,\n    emit: Emitter | None = None,\n) -> None",
              "source": {
                "line": 336,
                "path": "src/neuralspotx/api/_app.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_app.py#L336"
              },
              "summary": "Clean or fully remove an app build directory."
            }
          ]
        },
        {
          "description": "Typed internal models for NSX registry, manifest, and app metadata.\n\nThis module is a thin facade: every name below is re-exported from a\nsibling submodule under :mod:`neuralspotx.models`. Importers using the\nhistoric ``from neuralspotx.models import X`` path continue to work\nunchanged. New code may import from the leaf submodules directly.",
          "name": "models",
          "path": "neuralspotx.models",
          "submodules": [],
          "summary": "Typed internal models for NSX registry, manifest, and app metadata.",
          "symbols": [
            {
              "description": "`dataclass`\n\nA single entry in the NSX module artifact cache.",
              "examples": [],
              "id": "neuralspotx.models.CacheEntry",
              "kind": "class",
              "language": "python",
              "members": [
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.CacheEntry.digest",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "digest",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "digest: str",
                  "source": {
                    "line": 13,
                    "path": "src/neuralspotx/models/_cache.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_cache.py#L13"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.CacheEntry.path",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "path",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "path: str",
                  "source": {
                    "line": 14,
                    "path": "src/neuralspotx/models/_cache.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_cache.py#L14"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.CacheEntry.size_bytes",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "size_bytes",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "size_bytes: int",
                  "source": {
                    "line": 15,
                    "path": "src/neuralspotx/models/_cache.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_cache.py#L15"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.CacheEntry.to_dict",
                  "kind": "method",
                  "language": "python",
                  "members": [],
                  "name": "to_dict",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "to_dict() -> dict[str, Any]",
                  "source": {
                    "line": 17,
                    "path": "src/neuralspotx/models/_cache.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_cache.py#L17"
                  },
                  "summary": ""
                }
              ],
              "name": "CacheEntry",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "CacheEntry(digest: str, path: str, size_bytes: int) -> None",
              "source": {
                "line": 9,
                "path": "src/neuralspotx/models/_cache.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_cache.py#L9"
              },
              "summary": "A single entry in the NSX module artifact cache."
            },
            {
              "description": "`dataclass`\n\nOutcome of flashing one executable from an NSX app.\n\n``programming_verified`` records that J-Link confirmed the target holds\nthe loaded image -- bytes freshly programmed, or programming skipped\nbecause the contents already matched. It does not mean bytes moved.",
              "examples": [],
              "id": "neuralspotx.models.FlashResult",
              "kind": "class",
              "language": "python",
              "members": [
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.FlashResult.target",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "target",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "target: str",
                  "source": {
                    "line": 19,
                    "path": "src/neuralspotx/models/_hardware.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_hardware.py#L19"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.FlashResult.artifact",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "artifact",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "artifact: Path",
                  "source": {
                    "line": 20,
                    "path": "src/neuralspotx/models/_hardware.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_hardware.py#L20"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.FlashResult.recipe",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "recipe",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "recipe: Path",
                  "source": {
                    "line": 21,
                    "path": "src/neuralspotx/models/_hardware.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_hardware.py#L21"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.FlashResult.probe_serial",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "probe_serial",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "probe_serial: str | None",
                  "source": {
                    "line": 22,
                    "path": "src/neuralspotx/models/_hardware.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_hardware.py#L22"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.FlashResult.programming_verified",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "programming_verified",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "programming_verified: bool",
                  "source": {
                    "line": 23,
                    "path": "src/neuralspotx/models/_hardware.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_hardware.py#L23"
                  },
                  "summary": ""
                }
              ],
              "name": "FlashResult",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "FlashResult(target: str, artifact: Path, recipe: Path, probe_serial: str | None, programming_verified: bool) -> None",
              "source": {
                "line": 10,
                "path": "src/neuralspotx/models/_hardware.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_hardware.py#L10"
              },
              "summary": "Outcome of flashing one executable from an NSX app."
            },
            {
              "description": "`dataclass`\n\nOne git-hosted module's drift between locked commit and upstream tip.\n\n*status* is a ``str``-mixed enum value (``OutdatedStatus``) so plain\nstring comparisons against ``\"up-to-date\"`` / ``\"outdated\"`` keep\nworking for embedders that don't import the enum.",
              "examples": [],
              "id": "neuralspotx.models.OutdatedModule",
              "kind": "class",
              "language": "python",
              "members": [
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.OutdatedModule.name",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "name",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "name: str",
                  "source": {
                    "line": 22,
                    "path": "src/neuralspotx/models/_outdated.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_outdated.py#L22"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.OutdatedModule.constraint",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "constraint",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "constraint: str",
                  "source": {
                    "line": 23,
                    "path": "src/neuralspotx/models/_outdated.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_outdated.py#L23"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.OutdatedModule.locked",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "locked",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "locked: str",
                  "source": {
                    "line": 24,
                    "path": "src/neuralspotx/models/_outdated.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_outdated.py#L24"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.OutdatedModule.upstream",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "upstream",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "upstream: str",
                  "source": {
                    "line": 25,
                    "path": "src/neuralspotx/models/_outdated.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_outdated.py#L25"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.OutdatedModule.status",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "status",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "status: str",
                  "source": {
                    "line": 26,
                    "path": "src/neuralspotx/models/_outdated.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_outdated.py#L26"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.OutdatedModule.url",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "url",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "url: str = ''",
                  "source": {
                    "line": 27,
                    "path": "src/neuralspotx/models/_outdated.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_outdated.py#L27"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.OutdatedModule.is_outdated",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "is_outdated",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "is_outdated: bool",
                  "source": {
                    "line": 30,
                    "path": "src/neuralspotx/models/_outdated.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_outdated.py#L30"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.OutdatedModule.to_dict",
                  "kind": "method",
                  "language": "python",
                  "members": [],
                  "name": "to_dict",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "to_dict() -> dict[str, str]",
                  "source": {
                    "line": 33,
                    "path": "src/neuralspotx/models/_outdated.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_outdated.py#L33"
                  },
                  "summary": ""
                }
              ],
              "name": "OutdatedModule",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "OutdatedModule(name: str, constraint: str, locked: str, upstream: str, status: str, url: str = '') -> None",
              "source": {
                "line": 13,
                "path": "src/neuralspotx/models/_outdated.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_outdated.py#L13"
              },
              "summary": "One git-hosted module's drift between locked commit and upstream tip."
            },
            {
              "description": "Category tag for CLI command graph hints.",
              "examples": [],
              "id": "neuralspotx.models.CommandCategory",
              "kind": "class",
              "language": "python",
              "members": [
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.CommandCategory.ENTRYPOINT",
                  "kind": "constant",
                  "language": "python",
                  "members": [],
                  "name": "ENTRYPOINT",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "ENTRYPOINT = 'entrypoint'",
                  "source": {
                    "line": 17,
                    "path": "src/neuralspotx/models/_command.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_command.py#L17"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.CommandCategory.DISCOVERY",
                  "kind": "constant",
                  "language": "python",
                  "members": [],
                  "name": "DISCOVERY",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "DISCOVERY = 'discovery'",
                  "source": {
                    "line": 18,
                    "path": "src/neuralspotx/models/_command.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_command.py#L18"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.CommandCategory.APP_CREATION",
                  "kind": "constant",
                  "language": "python",
                  "members": [],
                  "name": "APP_CREATION",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "APP_CREATION = 'app-creation'",
                  "source": {
                    "line": 19,
                    "path": "src/neuralspotx/models/_command.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_command.py#L19"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.CommandCategory.DIAGNOSTICS",
                  "kind": "constant",
                  "language": "python",
                  "members": [],
                  "name": "DIAGNOSTICS",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "DIAGNOSTICS = 'diagnostics'",
                  "source": {
                    "line": 20,
                    "path": "src/neuralspotx/models/_command.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_command.py#L20"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.CommandCategory.BUILD",
                  "kind": "constant",
                  "language": "python",
                  "members": [],
                  "name": "BUILD",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "BUILD = 'build'",
                  "source": {
                    "line": 21,
                    "path": "src/neuralspotx/models/_command.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_command.py#L21"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.CommandCategory.DEPLOY",
                  "kind": "constant",
                  "language": "python",
                  "members": [],
                  "name": "DEPLOY",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "DEPLOY = 'deploy'",
                  "source": {
                    "line": 22,
                    "path": "src/neuralspotx/models/_command.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_command.py#L22"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.CommandCategory.MODULES",
                  "kind": "constant",
                  "language": "python",
                  "members": [],
                  "name": "MODULES",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "MODULES = 'modules'",
                  "source": {
                    "line": 23,
                    "path": "src/neuralspotx/models/_command.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_command.py#L23"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.CommandCategory.MAINTENANCE",
                  "kind": "constant",
                  "language": "python",
                  "members": [],
                  "name": "MAINTENANCE",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "MAINTENANCE = 'maintenance'",
                  "source": {
                    "line": 24,
                    "path": "src/neuralspotx/models/_command.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_command.py#L24"
                  },
                  "summary": ""
                }
              ],
              "name": "CommandCategory",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "CommandCategory()",
              "source": {
                "line": 14,
                "path": "src/neuralspotx/models/_command.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_command.py#L14"
              },
              "summary": "Category tag for CLI command graph hints."
            },
            {
              "description": "`dataclass`\n\nOne state-change applied to a module by an api.* mutation.",
              "examples": [],
              "id": "neuralspotx.models.ModuleChange",
              "kind": "class",
              "language": "python",
              "members": [
                {
                  "description": "Module name.",
                  "examples": [],
                  "id": "neuralspotx.models.ModuleChange.name",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "name",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "name: str",
                  "source": {
                    "line": 36,
                    "path": "src/neuralspotx/models/_changes.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_changes.py#L36"
                  },
                  "summary": ""
                },
                {
                  "description": "The recorded revision (or ``None`` when the module did\nnot exist beforehand). May be ``None`` for ``init_module``\nsince there is no app-side state.",
                  "examples": [],
                  "id": "neuralspotx.models.ModuleChange.before",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "before",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "before: str | None",
                  "source": {
                    "line": 37,
                    "path": "src/neuralspotx/models/_changes.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_changes.py#L37"
                  },
                  "summary": ""
                },
                {
                  "description": "The resolved revision after the operation (or ``None``\nwhen the module was removed).",
                  "examples": [],
                  "id": "neuralspotx.models.ModuleChange.after",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "after",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "after: str | None",
                  "source": {
                    "line": 38,
                    "path": "src/neuralspotx/models/_changes.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_changes.py#L38"
                  },
                  "summary": ""
                },
                {
                  "description": "One of ``\"added\"``, ``\"removed\"``, ``\"updated\"``,\n``\"noop\"``. ``\"added\"`` covers ``add_module``/\n``register_module``/``init_module`` and any transitive\ndependencies pulled in. ``\"removed\"`` covers cascaded\nremovals. ``\"updated\"`` is recorded by ``update_modules``\nwhen the resolved revision changed; ``\"noop\"`` when it did\nnot.",
                  "examples": [],
                  "id": "neuralspotx.models.ModuleChange.action",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "action",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "action: str",
                  "source": {
                    "line": 39,
                    "path": "src/neuralspotx/models/_changes.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_changes.py#L39"
                  },
                  "summary": ""
                },
                {
                  "description": "``True`` when the change was predicted by a\n``dry_run=True`` call and not actually applied.",
                  "examples": [],
                  "id": "neuralspotx.models.ModuleChange.dry_run",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "dry_run",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "dry_run: bool = False",
                  "source": {
                    "line": 40,
                    "path": "src/neuralspotx/models/_changes.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_changes.py#L40"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.ModuleChange.to_dict",
                  "kind": "method",
                  "language": "python",
                  "members": [],
                  "name": "to_dict",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "to_dict() -> dict[str, Any]",
                  "source": {
                    "line": 42,
                    "path": "src/neuralspotx/models/_changes.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_changes.py#L42"
                  },
                  "summary": ""
                }
              ],
              "name": "ModuleChange",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "ModuleChange(name: str, before: str | None, after: str | None, action: str, dry_run: bool = False) -> None",
              "source": {
                "line": 14,
                "path": "src/neuralspotx/models/_changes.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_changes.py#L14"
              },
              "summary": "One state-change applied to a module by an api."
            },
            {
              "description": "`dataclass`\n\nA single field match from module search scoring.",
              "examples": [],
              "id": "neuralspotx.models.SearchMatch",
              "kind": "class",
              "language": "python",
              "members": [
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.SearchMatch.field",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "field",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "field: str",
                  "source": {
                    "line": 18,
                    "path": "src/neuralspotx/models/_discovery.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_discovery.py#L18"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.SearchMatch.term",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "term",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "term: str",
                  "source": {
                    "line": 19,
                    "path": "src/neuralspotx/models/_discovery.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_discovery.py#L19"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.SearchMatch.value",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "value",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "value: str",
                  "source": {
                    "line": 20,
                    "path": "src/neuralspotx/models/_discovery.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_discovery.py#L20"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.SearchMatch.to_dict",
                  "kind": "method",
                  "language": "python",
                  "members": [],
                  "name": "to_dict",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "to_dict() -> dict[str, str]",
                  "source": {
                    "line": 22,
                    "path": "src/neuralspotx/models/_discovery.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_discovery.py#L22"
                  },
                  "summary": ""
                }
              ],
              "name": "SearchMatch",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "SearchMatch(field: str, term: str, value: str) -> None",
              "source": {
                "line": 14,
                "path": "src/neuralspotx/models/_discovery.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_discovery.py#L14"
              },
              "summary": "A single field match from module search scoring."
            },
            {
              "description": "`dataclass`\n\nSnapshot of the NSX module artifact cache.",
              "examples": [],
              "id": "neuralspotx.models.CacheInfo",
              "kind": "class",
              "language": "python",
              "members": [
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.CacheInfo.root",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "root",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "root: str",
                  "source": {
                    "line": 25,
                    "path": "src/neuralspotx/models/_cache.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_cache.py#L25"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.CacheInfo.disabled",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "disabled",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "disabled: bool",
                  "source": {
                    "line": 26,
                    "path": "src/neuralspotx/models/_cache.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_cache.py#L26"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.CacheInfo.entries",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "entries",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "entries: tuple[CacheEntry, ...]",
                  "source": {
                    "line": 27,
                    "path": "src/neuralspotx/models/_cache.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_cache.py#L27"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.CacheInfo.entry_count",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "entry_count",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "entry_count: int",
                  "source": {
                    "line": 30,
                    "path": "src/neuralspotx/models/_cache.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_cache.py#L30"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.CacheInfo.total_size_bytes",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "total_size_bytes",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "total_size_bytes: int",
                  "source": {
                    "line": 34,
                    "path": "src/neuralspotx/models/_cache.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_cache.py#L34"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.CacheInfo.to_dict",
                  "kind": "method",
                  "language": "python",
                  "members": [],
                  "name": "to_dict",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "to_dict() -> dict[str, Any]",
                  "source": {
                    "line": 37,
                    "path": "src/neuralspotx/models/_cache.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_cache.py#L37"
                  },
                  "summary": ""
                }
              ],
              "name": "CacheInfo",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "CacheInfo(root: str, disabled: bool, entries: tuple[CacheEntry, ...]) -> None",
              "source": {
                "line": 21,
                "path": "src/neuralspotx/models/_cache.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_cache.py#L21"
              },
              "summary": "Snapshot of the NSX module artifact cache."
            },
            {
              "description": "`dataclass`\n\nOutcome of an explicit J-Link reset operation.",
              "examples": [],
              "id": "neuralspotx.models.ResetResult",
              "kind": "class",
              "language": "python",
              "members": [
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.ResetResult.device",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "device",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "device: str",
                  "source": {
                    "line": 30,
                    "path": "src/neuralspotx/models/_hardware.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_hardware.py#L30"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.ResetResult.kind",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "kind",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "kind: Literal['debug', 'swpoi']",
                  "source": {
                    "line": 31,
                    "path": "src/neuralspotx/models/_hardware.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_hardware.py#L31"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.ResetResult.probe_serial",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "probe_serial",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "probe_serial: str | None",
                  "source": {
                    "line": 32,
                    "path": "src/neuralspotx/models/_hardware.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_hardware.py#L32"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.ResetResult.interface",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "interface",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "interface: str",
                  "source": {
                    "line": 33,
                    "path": "src/neuralspotx/models/_hardware.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_hardware.py#L33"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.ResetResult.speed_khz",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "speed_khz",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "speed_khz: int",
                  "source": {
                    "line": 34,
                    "path": "src/neuralspotx/models/_hardware.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_hardware.py#L34"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.ResetResult.expected_disconnect",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "expected_disconnect",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "expected_disconnect: bool",
                  "source": {
                    "line": 35,
                    "path": "src/neuralspotx/models/_hardware.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_hardware.py#L35"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.ResetResult.reconnect_verified",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "reconnect_verified",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "reconnect_verified: bool | None",
                  "source": {
                    "line": 36,
                    "path": "src/neuralspotx/models/_hardware.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_hardware.py#L36"
                  },
                  "summary": ""
                }
              ],
              "name": "ResetResult",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "ResetResult(\n    device: str,\n    kind: Literal['debug', 'swpoi'],\n    probe_serial: str | None,\n    interface: str,\n    speed_khz: int,\n    expected_disconnect: bool,\n    reconnect_verified: bool | None,\n) -> None",
              "source": {
                "line": 26,
                "path": "src/neuralspotx/models/_hardware.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_hardware.py#L26"
              },
              "summary": "Outcome of an explicit J-Link reset operation."
            },
            {
              "description": "Scope tag for CLI command graph hints.",
              "examples": [],
              "id": "neuralspotx.models.CommandScope",
              "kind": "class",
              "language": "python",
              "members": [
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.CommandScope.GLOBAL",
                  "kind": "constant",
                  "language": "python",
                  "members": [],
                  "name": "GLOBAL",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "GLOBAL = 'global'",
                  "source": {
                    "line": 30,
                    "path": "src/neuralspotx/models/_command.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_command.py#L30"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.CommandScope.APP",
                  "kind": "constant",
                  "language": "python",
                  "members": [],
                  "name": "APP",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "APP = 'app'",
                  "source": {
                    "line": 31,
                    "path": "src/neuralspotx/models/_command.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_command.py#L31"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.CommandScope.ENVIRONMENT",
                  "kind": "constant",
                  "language": "python",
                  "members": [],
                  "name": "ENVIRONMENT",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "ENVIRONMENT = 'environment'",
                  "source": {
                    "line": 32,
                    "path": "src/neuralspotx/models/_command.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_command.py#L32"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.CommandScope.FILESYSTEM",
                  "kind": "constant",
                  "language": "python",
                  "members": [],
                  "name": "FILESYSTEM",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "FILESYSTEM = 'filesystem'",
                  "source": {
                    "line": 33,
                    "path": "src/neuralspotx/models/_command.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_command.py#L33"
                  },
                  "summary": ""
                }
              ],
              "name": "CommandScope",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "CommandScope()",
              "source": {
                "line": 27,
                "path": "src/neuralspotx/models/_command.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_command.py#L27"
              },
              "summary": "Scope tag for CLI command graph hints."
            },
            {
              "description": "`dataclass`\n\nTyped metadata hint for a CLI command in the command graph.",
              "examples": [],
              "id": "neuralspotx.models.CommandHint",
              "kind": "class",
              "language": "python",
              "members": [
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.CommandHint.category",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "category",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "category: CommandCategory",
                  "source": {
                    "line": 40,
                    "path": "src/neuralspotx/models/_command.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_command.py#L40"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.CommandHint.scope",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "scope",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "scope: CommandScope",
                  "source": {
                    "line": 41,
                    "path": "src/neuralspotx/models/_command.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_command.py#L41"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.CommandHint.next_commands",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "next_commands",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "next_commands: tuple[str, ...] = ()",
                  "source": {
                    "line": 42,
                    "path": "src/neuralspotx/models/_command.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_command.py#L42"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.CommandHint.alias_for",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "alias_for",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "alias_for: str | None = None",
                  "source": {
                    "line": 43,
                    "path": "src/neuralspotx/models/_command.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_command.py#L43"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.CommandHint.to_dict",
                  "kind": "method",
                  "language": "python",
                  "members": [],
                  "name": "to_dict",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "to_dict() -> dict[str, str | list[str]]",
                  "source": {
                    "line": 45,
                    "path": "src/neuralspotx/models/_command.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_command.py#L45"
                  },
                  "summary": ""
                }
              ],
              "name": "CommandHint",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "CommandHint(\n    category: CommandCategory,\n    scope: CommandScope,\n    next_commands: tuple[str, ...] = (),\n    alias_for: str | None = None,\n) -> None",
              "source": {
                "line": 36,
                "path": "src/neuralspotx/models/_command.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_command.py#L36"
              },
              "summary": "Typed metadata hint for a CLI command in the command graph."
            },
            {
              "description": "`dataclass`\n\nTyped module discovery record returned by list/describe/search APIs.",
              "examples": [],
              "id": "neuralspotx.models.DiscoveryRecord",
              "kind": "class",
              "language": "python",
              "members": [
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.DiscoveryRecord.name",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "name",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "name: str",
                  "source": {
                    "line": 46,
                    "path": "src/neuralspotx/models/_discovery.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_discovery.py#L46"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.DiscoveryRecord.project",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "project",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "project: str",
                  "source": {
                    "line": 47,
                    "path": "src/neuralspotx/models/_discovery.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_discovery.py#L47"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.DiscoveryRecord.revision",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "revision",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "revision: str",
                  "source": {
                    "line": 48,
                    "path": "src/neuralspotx/models/_discovery.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_discovery.py#L48"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.DiscoveryRecord.metadata",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "metadata",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "metadata: str | None",
                  "source": {
                    "line": 49,
                    "path": "src/neuralspotx/models/_discovery.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_discovery.py#L49"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.DiscoveryRecord.enabled",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "enabled",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "enabled: bool",
                  "source": {
                    "line": 50,
                    "path": "src/neuralspotx/models/_discovery.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_discovery.py#L50"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.DiscoveryRecord.metadata_available",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "metadata_available",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "metadata_available: bool = False",
                  "source": {
                    "line": 53,
                    "path": "src/neuralspotx/models/_discovery.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_discovery.py#L53"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.DiscoveryRecord.metadata_error",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "metadata_error",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "metadata_error: str | None = None",
                  "source": {
                    "line": 54,
                    "path": "src/neuralspotx/models/_discovery.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_discovery.py#L54"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.DiscoveryRecord.module",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "module",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "module: dict[str, Any] | None = None",
                  "source": {
                    "line": 57,
                    "path": "src/neuralspotx/models/_discovery.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_discovery.py#L57"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.DiscoveryRecord.support",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "support",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "support: dict[str, Any] | None = None",
                  "source": {
                    "line": 58,
                    "path": "src/neuralspotx/models/_discovery.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_discovery.py#L58"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.DiscoveryRecord.build",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "build",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "build: dict[str, Any] | None = None",
                  "source": {
                    "line": 59,
                    "path": "src/neuralspotx/models/_discovery.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_discovery.py#L59"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.DiscoveryRecord.depends",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "depends",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "depends: dict[str, Any] | None = None",
                  "source": {
                    "line": 60,
                    "path": "src/neuralspotx/models/_discovery.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_discovery.py#L60"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.DiscoveryRecord.compatibility",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "compatibility",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "compatibility: dict[str, Any] | None = None",
                  "source": {
                    "line": 61,
                    "path": "src/neuralspotx/models/_discovery.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_discovery.py#L61"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.DiscoveryRecord.summary",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "summary",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "summary: str | None = None",
                  "source": {
                    "line": 64,
                    "path": "src/neuralspotx/models/_discovery.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_discovery.py#L64"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.DiscoveryRecord.capabilities",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "capabilities",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "capabilities: list[str] | None = None",
                  "source": {
                    "line": 65,
                    "path": "src/neuralspotx/models/_discovery.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_discovery.py#L65"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.DiscoveryRecord.use_cases",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "use_cases",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "use_cases: list[str] | None = None",
                  "source": {
                    "line": 66,
                    "path": "src/neuralspotx/models/_discovery.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_discovery.py#L66"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.DiscoveryRecord.anti_use_cases",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "anti_use_cases",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "anti_use_cases: list[str] | None = None",
                  "source": {
                    "line": 67,
                    "path": "src/neuralspotx/models/_discovery.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_discovery.py#L67"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.DiscoveryRecord.agent_keywords",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "agent_keywords",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "agent_keywords: list[str] | None = None",
                  "source": {
                    "line": 68,
                    "path": "src/neuralspotx/models/_discovery.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_discovery.py#L68"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.DiscoveryRecord.example_refs",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "example_refs",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "example_refs: list[Any] | None = None",
                  "source": {
                    "line": 69,
                    "path": "src/neuralspotx/models/_discovery.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_discovery.py#L69"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.DiscoveryRecord.composition_hints",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "composition_hints",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "composition_hints: dict[str, Any] | None = None",
                  "source": {
                    "line": 70,
                    "path": "src/neuralspotx/models/_discovery.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_discovery.py#L70"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.DiscoveryRecord.provides",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "provides",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "provides: dict[str, Any] | None = None",
                  "source": {
                    "line": 71,
                    "path": "src/neuralspotx/models/_discovery.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_discovery.py#L71"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.DiscoveryRecord.constraints",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "constraints",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "constraints: dict[str, Any] | None = None",
                  "source": {
                    "line": 72,
                    "path": "src/neuralspotx/models/_discovery.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_discovery.py#L72"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.DiscoveryRecord.integrations",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "integrations",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "integrations: dict[str, Any] | None = None",
                  "source": {
                    "line": 73,
                    "path": "src/neuralspotx/models/_discovery.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_discovery.py#L73"
                  },
                  "summary": ""
                },
                {
                  "description": "Serialize to a dict matching the legacy discovery record format.",
                  "examples": [],
                  "id": "neuralspotx.models.DiscoveryRecord.to_dict",
                  "kind": "method",
                  "language": "python",
                  "members": [],
                  "name": "to_dict",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "to_dict() -> dict[str, Any]",
                  "source": {
                    "line": 75,
                    "path": "src/neuralspotx/models/_discovery.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_discovery.py#L75"
                  },
                  "summary": "Serialize to a dict matching the legacy discovery record format."
                }
              ],
              "name": "DiscoveryRecord",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "DiscoveryRecord(\n    name: str,\n    project: str,\n    revision: str,\n    metadata: str | None,\n    enabled: bool,\n    metadata_available: bool = False,\n    metadata_error: str | None = None,\n    module: dict[str, Any] | None = None,\n    support: dict[str, Any] | None = None,\n    build: dict[str, Any] | None = None,\n    depends: dict[str, Any] | None = None,\n    compatibility: dict[str, Any] | None = None,\n    summary: str | None = None,\n    capabilities: list[str] | None = None,\n    use_cases: list[str] | None = None,\n    anti_use_cases: list[str] | None = None,\n    agent_keywords: list[str] | None = None,\n    example_refs: list[Any] | None = None,\n    composition_hints: dict[str, Any] | None = None,\n    provides: dict[str, Any] | None = None,\n    constraints: dict[str, Any] | None = None,\n    integrations: dict[str, Any] | None = None,\n) -> None",
              "source": {
                "line": 41,
                "path": "src/neuralspotx/models/_discovery.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_discovery.py#L41"
              },
              "summary": "Typed module discovery record returned by list/describe/search APIs."
            },
            {
              "description": "`dataclass`\n\nA module that ``api.outdated_app`` could not check, with a reason.",
              "examples": [],
              "id": "neuralspotx.models.OutdatedSkip",
              "kind": "class",
              "language": "python",
              "members": [
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.OutdatedSkip.name",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "name",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "name: str",
                  "source": {
                    "line": 48,
                    "path": "src/neuralspotx/models/_outdated.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_outdated.py#L48"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.OutdatedSkip.reason",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "reason",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "reason: str",
                  "source": {
                    "line": 49,
                    "path": "src/neuralspotx/models/_outdated.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_outdated.py#L49"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.OutdatedSkip.to_dict",
                  "kind": "method",
                  "language": "python",
                  "members": [],
                  "name": "to_dict",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "to_dict() -> dict[str, str]",
                  "source": {
                    "line": 51,
                    "path": "src/neuralspotx/models/_outdated.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_outdated.py#L51"
                  },
                  "summary": ""
                }
              ],
              "name": "OutdatedSkip",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "OutdatedSkip(name: str, reason: str) -> None",
              "source": {
                "line": 44,
                "path": "src/neuralspotx/models/_outdated.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_outdated.py#L44"
              },
              "summary": "A module that api.outdatedapp could not check, with a reason."
            },
            {
              "description": "`dataclass`\n\nOutcome of an :func:`api.clean_cache` invocation.",
              "examples": [],
              "id": "neuralspotx.models.CacheCleanResult",
              "kind": "class",
              "language": "python",
              "members": [
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.CacheCleanResult.root",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "root",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "root: str",
                  "source": {
                    "line": 51,
                    "path": "src/neuralspotx/models/_cache.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_cache.py#L51"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.CacheCleanResult.removed_count",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "removed_count",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "removed_count: int",
                  "source": {
                    "line": 52,
                    "path": "src/neuralspotx/models/_cache.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_cache.py#L52"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.CacheCleanResult.dry_run",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "dry_run",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "dry_run: bool = False",
                  "source": {
                    "line": 53,
                    "path": "src/neuralspotx/models/_cache.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_cache.py#L53"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.CacheCleanResult.to_dict",
                  "kind": "method",
                  "language": "python",
                  "members": [],
                  "name": "to_dict",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "to_dict() -> dict[str, Any]",
                  "source": {
                    "line": 55,
                    "path": "src/neuralspotx/models/_cache.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_cache.py#L55"
                  },
                  "summary": ""
                }
              ],
              "name": "CacheCleanResult",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "CacheCleanResult(root: str, removed_count: int, dry_run: bool = False) -> None",
              "source": {
                "line": 47,
                "path": "src/neuralspotx/models/_cache.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_cache.py#L47"
              },
              "summary": "Outcome of an :func:api.cleancache invocation."
            },
            {
              "description": "`dataclass`\n\nAggregate result returned by ``api.outdated_app()``.\n\n``checked`` preserves the order in which modules were inspected so\nembedders can render a deterministic table; ``skipped`` records\nmodules that could not be resolved (no URL, ``git ls-remote``\nfailure, etc.). The ``outdated`` property is a convenience filter\nthat mirrors what the historic CLI returned as an integer count.",
              "examples": [],
              "id": "neuralspotx.models.OutdatedReport",
              "kind": "class",
              "language": "python",
              "members": [
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.OutdatedReport.checked",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "checked",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "checked: tuple[OutdatedModule, ...]",
                  "source": {
                    "line": 66,
                    "path": "src/neuralspotx/models/_outdated.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_outdated.py#L66"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.OutdatedReport.skipped",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "skipped",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "skipped: tuple[OutdatedSkip, ...] = ()",
                  "source": {
                    "line": 67,
                    "path": "src/neuralspotx/models/_outdated.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_outdated.py#L67"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.OutdatedReport.outdated",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "outdated",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "outdated: tuple[OutdatedModule, ...]",
                  "source": {
                    "line": 70,
                    "path": "src/neuralspotx/models/_outdated.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_outdated.py#L70"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.OutdatedReport.outdated_count",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "outdated_count",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "outdated_count: int",
                  "source": {
                    "line": 74,
                    "path": "src/neuralspotx/models/_outdated.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_outdated.py#L74"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.OutdatedReport.to_dict",
                  "kind": "method",
                  "language": "python",
                  "members": [],
                  "name": "to_dict",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "to_dict() -> dict[str, Any]",
                  "source": {
                    "line": 77,
                    "path": "src/neuralspotx/models/_outdated.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_outdated.py#L77"
                  },
                  "summary": ""
                }
              ],
              "name": "OutdatedReport",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "OutdatedReport(checked: tuple[OutdatedModule, ...], skipped: tuple[OutdatedSkip, ...] = ()) -> None",
              "source": {
                "line": 55,
                "path": "src/neuralspotx/models/_outdated.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_outdated.py#L55"
              },
              "summary": "Aggregate result returned by api.outdatedapp()."
            },
            {
              "description": "`dataclass`\n\nOne environment / toolchain check produced by ``api.doctor()``.\n\n*required* discriminates checks that gate ``ok`` (e.g. ``cmake``)\nfrom informational ones (e.g. ATfE when ``ATFE_ROOT`` is set, or\nindividual armclang components when the toolchain was detected).",
              "examples": [],
              "id": "neuralspotx.models.DoctorCheck",
              "kind": "class",
              "language": "python",
              "members": [
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.DoctorCheck.label",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "label",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "label: str",
                  "source": {
                    "line": 65,
                    "path": "src/neuralspotx/models/_command.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_command.py#L65"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.DoctorCheck.ok",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "ok",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "ok: bool",
                  "source": {
                    "line": 66,
                    "path": "src/neuralspotx/models/_command.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_command.py#L66"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.DoctorCheck.required",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "required",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "required: bool = True",
                  "source": {
                    "line": 67,
                    "path": "src/neuralspotx/models/_command.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_command.py#L67"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.DoctorCheck.detail",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "detail",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "detail: str | None = None",
                  "source": {
                    "line": 68,
                    "path": "src/neuralspotx/models/_command.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_command.py#L68"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.DoctorCheck.hint",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "hint",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "hint: str | None = None",
                  "source": {
                    "line": 69,
                    "path": "src/neuralspotx/models/_command.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_command.py#L69"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.DoctorCheck.to_dict",
                  "kind": "method",
                  "language": "python",
                  "members": [],
                  "name": "to_dict",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "to_dict() -> dict[str, Any]",
                  "source": {
                    "line": 71,
                    "path": "src/neuralspotx/models/_command.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_command.py#L71"
                  },
                  "summary": ""
                }
              ],
              "name": "DoctorCheck",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "DoctorCheck(label: str, ok: bool, required: bool = True, detail: str | None = None, hint: str | None = None) -> None",
              "source": {
                "line": 56,
                "path": "src/neuralspotx/models/_command.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_command.py#L56"
              },
              "summary": "One environment / toolchain check produced by api.doctor()."
            },
            {
              "description": "`dataclass`\n\nAggregate result returned by ``api.doctor()``.\n\n``ok`` is ``True`` iff every *required* check passed.\n``checks`` preserves the order in which checks ran so embedders can\nrender a deterministic table. ``notes`` carries free-form lines\n(e.g. \"ATfE toolchain not detected — optional\") for parity with the\nhistoric CLI output.",
              "examples": [],
              "id": "neuralspotx.models.DoctorReport",
              "kind": "class",
              "language": "python",
              "members": [
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.DoctorReport.checks",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "checks",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "checks: tuple[DoctorCheck, ...]",
                  "source": {
                    "line": 92,
                    "path": "src/neuralspotx/models/_command.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_command.py#L92"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.DoctorReport.notes",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "notes",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "notes: tuple[str, ...] = ()",
                  "source": {
                    "line": 93,
                    "path": "src/neuralspotx/models/_command.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_command.py#L93"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.DoctorReport.ok",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "ok",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "ok: bool",
                  "source": {
                    "line": 96,
                    "path": "src/neuralspotx/models/_command.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_command.py#L96"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.DoctorReport.to_dict",
                  "kind": "method",
                  "language": "python",
                  "members": [],
                  "name": "to_dict",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "to_dict() -> dict[str, Any]",
                  "source": {
                    "line": 99,
                    "path": "src/neuralspotx/models/_command.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_command.py#L99"
                  },
                  "summary": ""
                }
              ],
              "name": "DoctorReport",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "DoctorReport(checks: tuple[DoctorCheck, ...], notes: tuple[str, ...] = ()) -> None",
              "source": {
                "line": 81,
                "path": "src/neuralspotx/models/_command.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_command.py#L81"
              },
              "summary": "Aggregate result returned by api.doctor()."
            },
            {
              "description": "`dataclass`\n\nA discovery record augmented with search scoring.",
              "examples": [],
              "id": "neuralspotx.models.SearchResult",
              "kind": "class",
              "language": "python",
              "members": [
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.SearchResult.score",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "score",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "score: int = 0",
                  "source": {
                    "line": 106,
                    "path": "src/neuralspotx/models/_discovery.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_discovery.py#L106"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.SearchResult.matches",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "matches",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "matches: tuple[SearchMatch, ...] = ()",
                  "source": {
                    "line": 107,
                    "path": "src/neuralspotx/models/_discovery.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_discovery.py#L107"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.SearchResult.compatible",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "compatible",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "compatible: bool | None = None",
                  "source": {
                    "line": 108,
                    "path": "src/neuralspotx/models/_discovery.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_discovery.py#L108"
                  },
                  "summary": ""
                },
                {
                  "description": "`classmethod`",
                  "examples": [],
                  "id": "neuralspotx.models.SearchResult.from_record",
                  "kind": "method",
                  "language": "python",
                  "members": [],
                  "name": "from_record",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "from_record(\n    record: DiscoveryRecord,\n    *,\n    score: int,\n    matches: tuple[SearchMatch, ...],\n    compatible: bool | None,\n) -> SearchResult",
                  "source": {
                    "line": 110,
                    "path": "src/neuralspotx/models/_discovery.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_discovery.py#L110"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.models.SearchResult.to_dict",
                  "kind": "method",
                  "language": "python",
                  "members": [],
                  "name": "to_dict",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "to_dict() -> dict[str, Any]",
                  "source": {
                    "line": 122,
                    "path": "src/neuralspotx/models/_discovery.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_discovery.py#L122"
                  },
                  "summary": ""
                }
              ],
              "name": "SearchResult",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "SearchResult(\n    name: str,\n    project: str,\n    revision: str,\n    metadata: str | None,\n    enabled: bool,\n    metadata_available: bool = False,\n    metadata_error: str | None = None,\n    module: dict[str, Any] | None = None,\n    support: dict[str, Any] | None = None,\n    build: dict[str, Any] | None = None,\n    depends: dict[str, Any] | None = None,\n    compatibility: dict[str, Any] | None = None,\n    summary: str | None = None,\n    capabilities: list[str] | None = None,\n    use_cases: list[str] | None = None,\n    anti_use_cases: list[str] | None = None,\n    agent_keywords: list[str] | None = None,\n    example_refs: list[Any] | None = None,\n    composition_hints: dict[str, Any] | None = None,\n    provides: dict[str, Any] | None = None,\n    constraints: dict[str, Any] | None = None,\n    integrations: dict[str, Any] | None = None,\n    score: int = 0,\n    matches: tuple[SearchMatch, ...] = (),\n    compatible: bool | None = None,\n) -> None",
              "source": {
                "line": 102,
                "path": "src/neuralspotx/models/_discovery.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/models/_discovery.py#L102"
              },
              "summary": "A discovery record augmented with search scoring."
            }
          ]
        },
        {
          "description": "nsx.lock — resolution receipt for an NSX app.\n\nPhase 1 of the lock/sync system. Records, per app, the exact resolved\ngit commit and content hash of every vendored module so that builds are\nreproducible and `nsx sync` can deterministically restore the modules/\ntree.\n\nSchema (YAML, v4):\n\n```yaml\nschema_version: 4\ntargets:\n  <board>:                      # one resolution section per board\n    generated_at: <ISO 8601 UTC>\n    nsx_tool: { version: <pkg version> }\n    manifest: { path: nsx.yml, hash: sha256:<hex> }\n    target: { board, soc, toolchain }\n    modules:\n      <module-name>:\n        project: <project-key>\n        kind: git | packaged | local | vendored | unresolved\n        constraint: <revision string from nsx.yml>\n        resolved:\n          # git only:\n          url: <repo url>\n          tag: <tag name>           # set when constraint resolved through a tag\n          commit: <40-char SHA>     # ALWAYS the underlying commit SHA, not\n                                    # the annotated-tag-object SHA\n          # all kinds:\n          vendored_at: <relpath under app dir>\n          content_hash: sha256:<hex>\n          acquired_at: <ISO 8601 UTC>\n          # packaged only:\n          tool_version: <neuralspotx pkg version>\n```\n\nEvery app — single- or multi-target — keeps exactly one ``nsx.lock``\nwhose ``targets`` map holds a resolution section per board, so the app\nroot has one manifest (``nsx.yml``) and one lock (``nsx.lock``).\n\n``content_hash`` semantics (v3, cargo/uv-style — hashes the *upstream\nartifact*, never the on-disk vendored tree):\n\n    git        — hash of the git working tree at the locked commit\n                  (computed by cloning at ``commit`` into a tempdir,\n                  stripping ``.git``, and hashing). Independent of\n                  whether/how the module is currently vendored under\n                  ``modules/``.\n    packaged   — hash of the packaged source tree shipped inside the\n                  ``neuralspotx`` Python wheel (the registry resource\n                  dir).\n    local      — if the registry project has a ``local_path``: hash of\n                  that source directory. Otherwise (in-tree local, e.g.\n                  ``nsx module add --local``): hash of\n                  ``modules/<name>/`` itself — the directory IS the\n                  source.\n    vendored   — hash of ``modules/<name>/`` itself — the directory IS\n                  the source (committed in the app).\n    unresolved — last-known hash of ``modules/<name>/`` from the\n                  previous lock or the current on-disk tree, since\n                  upstream is unreachable.\n\nThis decoupling means ``nsx lock`` can produce real hashes on a fresh\ncheckout (no ``modules/`` populated yet) and ``nsx sync`` never needs\nto modify the lock to keep it in sync with reality — the lock is\nwritten exactly once per actual change to the upstream resolution.\n\n:::note[v4 changes vs v3]\n* Single combined lock file. Previously single-target apps wrote a\n  flat ``nsx.lock`` and multi-target apps wrote one\n  ``nsx.<board>.lock`` per board; v4 collapses both into one\n  ``nsx.lock`` with a ``targets: { <board>: <section> }`` map.\n  ``schema_version`` is recorded once at the document root.\n* ``acquired_at`` / ``generated_at`` are preserved across re-locks\n  when the resolution is unchanged, so a no-op ``nsx lock`` produces\n  a byte-identical file (no timestamp-only diff churn).\n\n:::\n\n:::note[v3 changes vs v2]\n* ``content_hash`` is now the upstream-artifact hash, not the\n  materialized tree hash. Schema-wise the field is identical; the\n  bump signals the semantic change so v2 lockfiles are regenerated.\n\n:::\n\n:::note[v2 changes vs v1]\n* Drop `ref:` (was always equal to `constraint:`).\n* Add `tag:` — distinct from `constraint:` so we can tell whether the\n  constraint resolved via a tag (vs a branch or raw SHA).\n* `commit:` is guaranteed to be the underlying commit SHA. v1 stored\n  the annotated-tag-object SHA when the constraint was an annotated\n  tag, which broke `git checkout` reproducibility if the tag was\n  later force-moved.\n\n:::\n\nNo back-compat reads for older schemas: pre-1.0, only one user; old\nlocks are rejected and the user is told to run ``nsx lock``.\n\nKinds (the user-facing 'source:' field in nsx.yml maps to a kind):\n    git        -> registry git module (default; sync re-clones at locked SHA)\n    packaged   -> shipped inside the neuralspotx package (sync re-copies)\n    local      -> linked from an external path (legacy ``local: true``)\n    vendored   -> source: { vendored: true }  (committed in app; sync hands-off)\n    unresolved -> registry module whose upstream was unreachable at lock time\n                  (content-only entry; sync verifies hash, can't re-fetch)\n\nPublic API kept intentionally small so the CLI/operations layer can\ncompose these primitives. The module is implemented as a package\n(``nsx_lock/``) split into focused submodules; this ``__init__`` is a\nfacade that re-exports the historical flat API so\n``from neuralspotx.nsx_lock import X`` keeps working unchanged.",
          "name": "nsx_lock",
          "path": "neuralspotx.nsx_lock",
          "submodules": [],
          "summary": "nsx.lock — resolution receipt for an NSX app.",
          "symbols": [
            {
              "description": "Resolution kind for a single lock entry.\n\nMixed with ``str`` so existing code that compares ``entry.kind ==\n\"git\"`` keeps working unchanged. New code should prefer the enum\nmembers (``LockKind.GIT``) for static checking and refactor safety.",
              "examples": [],
              "id": "neuralspotx.nsx_lock.LockKind",
              "kind": "class",
              "language": "python",
              "members": [
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.nsx_lock.LockKind.GIT",
                  "kind": "constant",
                  "language": "python",
                  "members": [],
                  "name": "GIT",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "GIT = 'git'",
                  "source": {
                    "line": 16,
                    "path": "src/neuralspotx/nsx_lock/_kinds.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/nsx_lock/_kinds.py#L16"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.nsx_lock.LockKind.PACKAGED",
                  "kind": "constant",
                  "language": "python",
                  "members": [],
                  "name": "PACKAGED",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "PACKAGED = 'packaged'",
                  "source": {
                    "line": 17,
                    "path": "src/neuralspotx/nsx_lock/_kinds.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/nsx_lock/_kinds.py#L17"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.nsx_lock.LockKind.LOCAL",
                  "kind": "constant",
                  "language": "python",
                  "members": [],
                  "name": "LOCAL",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "LOCAL = 'local'",
                  "source": {
                    "line": 18,
                    "path": "src/neuralspotx/nsx_lock/_kinds.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/nsx_lock/_kinds.py#L18"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.nsx_lock.LockKind.VENDORED",
                  "kind": "constant",
                  "language": "python",
                  "members": [],
                  "name": "VENDORED",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "VENDORED = 'vendored'",
                  "source": {
                    "line": 19,
                    "path": "src/neuralspotx/nsx_lock/_kinds.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/nsx_lock/_kinds.py#L19"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.nsx_lock.LockKind.UNRESOLVED",
                  "kind": "constant",
                  "language": "python",
                  "members": [],
                  "name": "UNRESOLVED",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "UNRESOLVED = 'unresolved'",
                  "source": {
                    "line": 20,
                    "path": "src/neuralspotx/nsx_lock/_kinds.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/nsx_lock/_kinds.py#L20"
                  },
                  "summary": ""
                }
              ],
              "name": "LockKind",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "LockKind()",
              "source": {
                "line": 8,
                "path": "src/neuralspotx/nsx_lock/_kinds.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/nsx_lock/_kinds.py#L8"
              },
              "summary": "Resolution kind for a single lock entry."
            },
            {
              "description": "`dataclass`\n\nResolution record for one module.",
              "examples": [],
              "id": "neuralspotx.nsx_lock.ResolvedModule",
              "kind": "class",
              "language": "python",
              "members": [
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.nsx_lock.ResolvedModule.project",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "project",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "project: str",
                  "source": {
                    "line": 18,
                    "path": "src/neuralspotx/nsx_lock/_models.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/nsx_lock/_models.py#L18"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.nsx_lock.ResolvedModule.kind",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "kind",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "kind: LockKind",
                  "source": {
                    "line": 19,
                    "path": "src/neuralspotx/nsx_lock/_models.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/nsx_lock/_models.py#L19"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.nsx_lock.ResolvedModule.constraint",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "constraint",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "constraint: str",
                  "source": {
                    "line": 20,
                    "path": "src/neuralspotx/nsx_lock/_models.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/nsx_lock/_models.py#L20"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.nsx_lock.ResolvedModule.vendored_at",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "vendored_at",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "vendored_at: str",
                  "source": {
                    "line": 21,
                    "path": "src/neuralspotx/nsx_lock/_models.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/nsx_lock/_models.py#L21"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.nsx_lock.ResolvedModule.content_hash",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "content_hash",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "content_hash: str",
                  "source": {
                    "line": 22,
                    "path": "src/neuralspotx/nsx_lock/_models.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/nsx_lock/_models.py#L22"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.nsx_lock.ResolvedModule.acquired_at",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "acquired_at",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "acquired_at: str",
                  "source": {
                    "line": 23,
                    "path": "src/neuralspotx/nsx_lock/_models.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/nsx_lock/_models.py#L23"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.nsx_lock.ResolvedModule.url",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "url",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "url: str | None = None",
                  "source": {
                    "line": 24,
                    "path": "src/neuralspotx/nsx_lock/_models.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/nsx_lock/_models.py#L24"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.nsx_lock.ResolvedModule.tag",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "tag",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "tag: str | None = None",
                  "source": {
                    "line": 25,
                    "path": "src/neuralspotx/nsx_lock/_models.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/nsx_lock/_models.py#L25"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.nsx_lock.ResolvedModule.commit",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "commit",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "commit: str | None = None",
                  "source": {
                    "line": 26,
                    "path": "src/neuralspotx/nsx_lock/_models.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/nsx_lock/_models.py#L26"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.nsx_lock.ResolvedModule.tool_version",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "tool_version",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "tool_version: str | None = None",
                  "source": {
                    "line": 27,
                    "path": "src/neuralspotx/nsx_lock/_models.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/nsx_lock/_models.py#L27"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.nsx_lock.ResolvedModule.to_yaml_dict",
                  "kind": "method",
                  "language": "python",
                  "members": [],
                  "name": "to_yaml_dict",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "to_yaml_dict() -> dict[str, Any]",
                  "source": {
                    "line": 29,
                    "path": "src/neuralspotx/nsx_lock/_models.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/nsx_lock/_models.py#L29"
                  },
                  "summary": ""
                },
                {
                  "description": "`classmethod`",
                  "examples": [],
                  "id": "neuralspotx.nsx_lock.ResolvedModule.from_yaml_dict",
                  "kind": "method",
                  "language": "python",
                  "members": [],
                  "name": "from_yaml_dict",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "from_yaml_dict(name: str, data: dict[str, Any]) -> 'ResolvedModule'",
                  "source": {
                    "line": 50,
                    "path": "src/neuralspotx/nsx_lock/_models.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/nsx_lock/_models.py#L50"
                  },
                  "summary": ""
                }
              ],
              "name": "ResolvedModule",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "ResolvedModule(\n    project: str,\n    kind: LockKind,\n    constraint: str,\n    vendored_at: str,\n    content_hash: str,\n    acquired_at: str,\n    url: str | None = None,\n    tag: str | None = None,\n    commit: str | None = None,\n    tool_version: str | None = None,\n) -> None",
              "source": {
                "line": 14,
                "path": "src/neuralspotx/nsx_lock/_models.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/nsx_lock/_models.py#L14"
              },
              "summary": "Resolution record for one module."
            },
            {
              "description": "`dataclass`\n\nTop-level nsx.lock document.",
              "examples": [],
              "id": "neuralspotx.nsx_lock.NsxLock",
              "kind": "class",
              "language": "python",
              "members": [
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.nsx_lock.NsxLock.schema_version",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "schema_version",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "schema_version: int = LOCK_SCHEMA_VERSION",
                  "source": {
                    "line": 78,
                    "path": "src/neuralspotx/nsx_lock/_models.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/nsx_lock/_models.py#L78"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.nsx_lock.NsxLock.generated_at",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "generated_at",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "generated_at: str = ''",
                  "source": {
                    "line": 79,
                    "path": "src/neuralspotx/nsx_lock/_models.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/nsx_lock/_models.py#L79"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.nsx_lock.NsxLock.nsx_tool_version",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "nsx_tool_version",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "nsx_tool_version: str | None = None",
                  "source": {
                    "line": 80,
                    "path": "src/neuralspotx/nsx_lock/_models.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/nsx_lock/_models.py#L80"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.nsx_lock.NsxLock.manifest_path",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "manifest_path",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "manifest_path: str = 'nsx.yml'",
                  "source": {
                    "line": 81,
                    "path": "src/neuralspotx/nsx_lock/_models.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/nsx_lock/_models.py#L81"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.nsx_lock.NsxLock.manifest_hash",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "manifest_hash",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "manifest_hash: str = ''",
                  "source": {
                    "line": 82,
                    "path": "src/neuralspotx/nsx_lock/_models.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/nsx_lock/_models.py#L82"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.nsx_lock.NsxLock.target",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "target",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "target: dict[str, str] = field(default_factory=dict)",
                  "source": {
                    "line": 83,
                    "path": "src/neuralspotx/nsx_lock/_models.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/nsx_lock/_models.py#L83"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.nsx_lock.NsxLock.modules",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "modules",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "modules: dict[str, ResolvedModule] = field(default_factory=dict)",
                  "source": {
                    "line": 84,
                    "path": "src/neuralspotx/nsx_lock/_models.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/nsx_lock/_models.py#L84"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.nsx_lock.NsxLock.path",
                  "kind": "attribute",
                  "language": "python",
                  "members": [],
                  "name": "path",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "path: Path | None = field(default=None, compare=False, repr=False)",
                  "source": {
                    "line": 89,
                    "path": "src/neuralspotx/nsx_lock/_models.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/nsx_lock/_models.py#L89"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.nsx_lock.NsxLock.to_yaml_dict",
                  "kind": "method",
                  "language": "python",
                  "members": [],
                  "name": "to_yaml_dict",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "to_yaml_dict() -> dict[str, Any]",
                  "source": {
                    "line": 91,
                    "path": "src/neuralspotx/nsx_lock/_models.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/nsx_lock/_models.py#L91"
                  },
                  "summary": ""
                },
                {
                  "description": "Serialize as a per-board section of a combined :class:`LockFile`.\n\nIdentical to :meth:`to_yaml_dict` minus ``schema_version`` — the\nschema version is hoisted to the combined document root so it is\nrecorded once, not once per target.",
                  "examples": [],
                  "id": "neuralspotx.nsx_lock.NsxLock.to_section_dict",
                  "kind": "method",
                  "language": "python",
                  "members": [],
                  "name": "to_section_dict",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "to_section_dict() -> dict[str, Any]",
                  "source": {
                    "line": 101,
                    "path": "src/neuralspotx/nsx_lock/_models.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/nsx_lock/_models.py#L101"
                  },
                  "summary": "Serialize as a per-board section of a combined :class:LockFile."
                },
                {
                  "description": "`classmethod`",
                  "examples": [],
                  "id": "neuralspotx.nsx_lock.NsxLock.from_yaml_dict",
                  "kind": "method",
                  "language": "python",
                  "members": [],
                  "name": "from_yaml_dict",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "from_yaml_dict(data: dict[str, Any]) -> 'NsxLock'",
                  "source": {
                    "line": 117,
                    "path": "src/neuralspotx/nsx_lock/_models.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/nsx_lock/_models.py#L117"
                  },
                  "summary": ""
                },
                {
                  "description": "`classmethod`\n\nParse a per-board section of a combined :class:`LockFile`.\n\nThe section carries no ``schema_version`` of its own (it is\nvalidated once at the document root); the returned object is\nstamped with the current :data:`LOCK_SCHEMA_VERSION`.",
                  "examples": [],
                  "id": "neuralspotx.nsx_lock.NsxLock.from_section_dict",
                  "kind": "method",
                  "language": "python",
                  "members": [],
                  "name": "from_section_dict",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "from_section_dict(data: dict[str, Any]) -> 'NsxLock'",
                  "source": {
                    "line": 143,
                    "path": "src/neuralspotx/nsx_lock/_models.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/nsx_lock/_models.py#L143"
                  },
                  "summary": "Parse a per-board section of a combined :class:LockFile."
                }
              ],
              "name": "NsxLock",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "NsxLock(\n    schema_version: int = LOCK_SCHEMA_VERSION,\n    generated_at: str = '',\n    nsx_tool_version: str | None = None,\n    manifest_path: str = 'nsx.yml',\n    manifest_hash: str = '',\n    target: dict[str, str] = dict(),\n    modules: dict[str, ResolvedModule] = dict(),\n    path: Path | None = None,\n) -> None",
              "source": {
                "line": 74,
                "path": "src/neuralspotx/nsx_lock/_models.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/nsx_lock/_models.py#L74"
              },
              "summary": "Top-level nsx.lock document."
            }
          ]
        },
        {
          "description": "Shared NSX workflow operations for CLI and programmatic use.\n\nThe package implements every ``*_impl`` workhorse behind\n``neuralspotx.api`` and ``nsx`` (the CLI) in focused sub-modules. The\npublic surface is re-exported here so existing callers (``api``,\n``cli``, tests) can reference ``neuralspotx.operations.<name>``\nunchanged.\n\nSub-module layout\n-----------------\n\n* ``_common``         — verbosity context (``set_verbosity``,\n                        ``get_verbosity``, ``verbosity``), status\n                        enums, name helpers, build-context resolver,\n                        vendored-module scaffolder.\n* ``_app_lifecycle``  — ``create_app_impl``, ``init_module_impl``.\n* ``_doctor``         — ``doctor_impl``.\n* ``_lock``           — ``lock_app_impl``, ``outdated_app_impl`` and helpers.\n* ``_sync``           — ``sync_app_impl``, ``update_app_impl``,\n                        ``_ensure_app_modules``.\n* ``_build``          — ``configure_app_impl``, ``build_app_impl``,\n                        ``flash_app_impl``, ``view_app_impl``,\n                        ``clean_app_impl``.\n* ``_modules``        — ``add_module_impl``, ``remove_module_impl``,\n                        ``update_modules_impl``, ``register_module_impl``.\n* ``_cache``          — ``cache_info_impl``, ``clean_cache_impl``.\n\nTests that need to monkeypatch helpers imported by a specific sub-module\nshould target that sub-module directly (e.g. ``operations._lock.resolve_ref``)\nrather than the package, since ``from .nsx_lock import resolve_ref`` binds\nthe name in the importing sub-module's globals.",
          "name": "operations",
          "path": "neuralspotx.operations",
          "submodules": [],
          "summary": "Shared NSX workflow operations for CLI and programmatic use.",
          "symbols": [
            {
              "description": "Per-module status emitted by ``nsx outdated``.\n\nMixed with ``str`` so callers comparing against the legacy\n``\"up-to-date\"`` / ``\"outdated\"`` spellings keep working.",
              "examples": [],
              "id": "neuralspotx.operations.OutdatedStatus",
              "kind": "class",
              "language": "python",
              "members": [
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.operations.OutdatedStatus.UP_TO_DATE",
                  "kind": "constant",
                  "language": "python",
                  "members": [],
                  "name": "UP_TO_DATE",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "UP_TO_DATE = 'up-to-date'",
                  "source": {
                    "line": 76,
                    "path": "src/neuralspotx/operations/_common.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/operations/_common.py#L76"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.operations.OutdatedStatus.OUTDATED",
                  "kind": "constant",
                  "language": "python",
                  "members": [],
                  "name": "OUTDATED",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "OUTDATED = 'outdated'",
                  "source": {
                    "line": 77,
                    "path": "src/neuralspotx/operations/_common.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/operations/_common.py#L77"
                  },
                  "summary": ""
                }
              ],
              "name": "OutdatedStatus",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "OutdatedStatus()",
              "source": {
                "line": 69,
                "path": "src/neuralspotx/operations/_common.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/operations/_common.py#L69"
              },
              "summary": "Per-module status emitted by nsx outdated."
            },
            {
              "description": "Profile lifecycle marker stored in ``nsx.yml``.\n\n``ACTIVE`` — profile is fully supported.\n``SCAFFOLD`` — profile exists but build bring-up may be incomplete.",
              "examples": [],
              "id": "neuralspotx.operations.ProfileStatus",
              "kind": "class",
              "language": "python",
              "members": [
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.operations.ProfileStatus.ACTIVE",
                  "kind": "constant",
                  "language": "python",
                  "members": [],
                  "name": "ACTIVE",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "ACTIVE = 'active'",
                  "source": {
                    "line": 90,
                    "path": "src/neuralspotx/operations/_common.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/operations/_common.py#L90"
                  },
                  "summary": ""
                },
                {
                  "description": "",
                  "examples": [],
                  "id": "neuralspotx.operations.ProfileStatus.SCAFFOLD",
                  "kind": "constant",
                  "language": "python",
                  "members": [],
                  "name": "SCAFFOLD",
                  "params": [],
                  "raises": [],
                  "returns": [],
                  "signature": "SCAFFOLD = 'scaffold'",
                  "source": {
                    "line": 91,
                    "path": "src/neuralspotx/operations/_common.py",
                    "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/operations/_common.py#L91"
                  },
                  "summary": ""
                }
              ],
              "name": "ProfileStatus",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "ProfileStatus()",
              "source": {
                "line": 83,
                "path": "src/neuralspotx/operations/_common.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/operations/_common.py#L83"
              },
              "summary": "Profile lifecycle marker stored in nsx.yml."
            }
          ]
        }
      ],
      "summary": "Canonical Python package for neuralspotx tooling.",
      "symbols": [
        {
          "description": "",
          "examples": [],
          "id": "neuralspotx.PathLike",
          "kind": "attribute",
          "language": "python",
          "members": [],
          "name": "PathLike",
          "params": [],
          "raises": [],
          "returns": [],
          "signature": "PathLike = str | Path",
          "source": {
            "line": 23,
            "path": "src/neuralspotx/api/_app.py",
            "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/api/_app.py#L23"
          },
          "summary": ""
        },
        {
          "description": "",
          "examples": [],
          "id": "neuralspotx.EventKind",
          "kind": "attribute",
          "language": "python",
          "members": [],
          "name": "EventKind",
          "params": [],
          "raises": [],
          "returns": [],
          "signature": "EventKind = Literal['info', 'warn', 'error', 'step', 'line']",
          "source": {
            "line": 35,
            "path": "src/neuralspotx/_io.py",
            "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/_io.py#L35"
          },
          "summary": ""
        },
        {
          "description": "",
          "examples": [],
          "id": "neuralspotx.Emitter",
          "kind": "attribute",
          "language": "python",
          "members": [],
          "name": "Emitter",
          "params": [],
          "raises": [],
          "returns": [],
          "signature": "Emitter = Callable[[Event], None]",
          "source": {
            "line": 59,
            "path": "src/neuralspotx/_io.py",
            "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/_io.py#L59"
          },
          "summary": ""
        },
        {
          "description": "Raised when an NSX workflow operation fails.\n\nLibrary consumers catch typed errors via ``except NSXError:`` (or one\nof the more specific subclasses below).  The CLI wrapper translates\nthese into a non-zero process exit code at the top level; embedders\nhandle them as ordinary Python exceptions.",
          "examples": [],
          "id": "neuralspotx.NSXError",
          "kind": "class",
          "language": "python",
          "members": [],
          "name": "NSXError",
          "params": [],
          "raises": [],
          "returns": [],
          "signature": "NSXError()",
          "source": {
            "line": 16,
            "path": "src/neuralspotx/_errors.py",
            "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/_errors.py#L16"
          },
          "summary": "Raised when an NSX workflow operation fails."
        },
        {
          "description": "Raised when an NSX subprocess exceeded its ``timeout_s`` budget.",
          "examples": [],
          "id": "neuralspotx.NSXTimeoutError",
          "kind": "class",
          "language": "python",
          "members": [
            {
              "description": "",
              "examples": [],
              "id": "neuralspotx.NSXTimeoutError.command",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "command",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "command = command",
              "source": {
                "line": 37,
                "path": "src/neuralspotx/_errors.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/_errors.py#L37"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "neuralspotx.NSXTimeoutError.timeout_s",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "timeout_s",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "timeout_s = timeout_s",
              "source": {
                "line": 38,
                "path": "src/neuralspotx/_errors.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/_errors.py#L38"
              },
              "summary": ""
            }
          ],
          "name": "NSXTimeoutError",
          "params": [],
          "raises": [],
          "returns": [],
          "signature": "NSXTimeoutError(message: str, *, command: str | None = None, timeout_s: float | None = None) -> None",
          "source": {
            "line": 26,
            "path": "src/neuralspotx/_errors.py",
            "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/_errors.py#L26"
          },
          "summary": "Raised when an NSX subprocess exceeded its timeouts budget."
        },
        {
          "description": "`dataclass`\n\nOne emitted event from the operations layer.",
          "examples": [],
          "id": "neuralspotx.Event",
          "kind": "class",
          "language": "python",
          "members": [
            {
              "description": "Event category.  ``info``/``step`` are progress;\n``warn``/``error`` flag problems; ``line`` is raw\nmachine-readable output (e.g. a diagnostic row).",
              "examples": [],
              "id": "neuralspotx.Event.kind",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "kind",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "kind: EventKind",
              "source": {
                "line": 51,
                "path": "src/neuralspotx/_io.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/_io.py#L51"
              },
              "summary": ""
            },
            {
              "description": "The fully-formatted text that would have been printed.",
              "examples": [],
              "id": "neuralspotx.Event.message",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "message",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "message: str",
              "source": {
                "line": 52,
                "path": "src/neuralspotx/_io.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/_io.py#L52"
              },
              "summary": ""
            },
            {
              "description": "Optional structured payload for embedders that want to\nact on the event without re-parsing the message.",
              "examples": [],
              "id": "neuralspotx.Event.data",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "data",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "data: dict[str, Any] = field(default_factory=dict)",
              "source": {
                "line": 53,
                "path": "src/neuralspotx/_io.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/_io.py#L53"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "neuralspotx.Event.to_dict",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "to_dict",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "to_dict() -> dict[str, Any]",
              "source": {
                "line": 55,
                "path": "src/neuralspotx/_io.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/_io.py#L55"
              },
              "summary": ""
            }
          ],
          "name": "Event",
          "params": [],
          "raises": [],
          "returns": [],
          "signature": "Event(kind: EventKind, message: str, data: dict[str, Any] = dict()) -> None",
          "source": {
            "line": 38,
            "path": "src/neuralspotx/_io.py",
            "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/_io.py#L38"
          },
          "summary": "One emitted event from the operations layer."
        },
        {
          "description": "Raised for invalid or missing app / registry configuration.\n\nThe optional ``field`` attribute names the offending YAML key path\n(dot-separated, with ``[i]`` for list indices, e.g.\n``\"modules[2].name\"``) so structured callers can map an error back\nto a specific location in ``nsx.yml`` without re-parsing the\nmessage.",
          "examples": [],
          "id": "neuralspotx.NSXConfigError",
          "kind": "class",
          "language": "python",
          "members": [
            {
              "description": "",
              "examples": [],
              "id": "neuralspotx.NSXConfigError.field",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "field",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "field = field",
              "source": {
                "line": 53,
                "path": "src/neuralspotx/_errors.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/_errors.py#L53"
              },
              "summary": ""
            }
          ],
          "name": "NSXConfigError",
          "params": [],
          "raises": [],
          "returns": [],
          "signature": "NSXConfigError(message: str, *, field: str | None = None) -> None",
          "source": {
            "line": 41,
            "path": "src/neuralspotx/_errors.py",
            "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/_errors.py#L41"
          },
          "summary": "Raised for invalid or missing app / registry configuration."
        },
        {
          "description": "`dataclass`\n\nDeclarative metadata for a single board.\n\n``registered`` controls whether the board participates in the legacy\n``constants.DEFAULT_SOC_FOR_BOARD`` / ``BOARD_SDK_PROVIDER`` tables.\nA board may ship a full package while remaining unregistered.",
          "examples": [],
          "id": "neuralspotx.BoardDescriptor",
          "kind": "class",
          "language": "python",
          "members": [
            {
              "description": "",
              "examples": [],
              "id": "neuralspotx.BoardDescriptor.name",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "name",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "name: str",
              "source": {
                "line": 56,
                "path": "src/neuralspotx/board_descriptors.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/board_descriptors.py#L56"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "neuralspotx.BoardDescriptor.tier",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "tier",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "tier: str",
              "source": {
                "line": 57,
                "path": "src/neuralspotx/board_descriptors.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/board_descriptors.py#L57"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "neuralspotx.BoardDescriptor.soc",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "soc",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "soc: str",
              "source": {
                "line": 58,
                "path": "src/neuralspotx/board_descriptors.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/board_descriptors.py#L58"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "neuralspotx.BoardDescriptor.sdk_provider",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "sdk_provider",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "sdk_provider: str",
              "source": {
                "line": 59,
                "path": "src/neuralspotx/board_descriptors.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/board_descriptors.py#L59"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "neuralspotx.BoardDescriptor.registered",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "registered",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "registered: bool",
              "source": {
                "line": 60,
                "path": "src/neuralspotx/board_descriptors.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/board_descriptors.py#L60"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "neuralspotx.BoardDescriptor.cpu",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "cpu",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "cpu: BoardCpu",
              "source": {
                "line": 61,
                "path": "src/neuralspotx/board_descriptors.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/board_descriptors.py#L61"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "neuralspotx.BoardDescriptor.toolchains",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "toolchains",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "toolchains: tuple[str, ...]",
              "source": {
                "line": 62,
                "path": "src/neuralspotx/board_descriptors.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/board_descriptors.py#L62"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "neuralspotx.BoardDescriptor.path",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "path",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "path: Path",
              "source": {
                "line": 63,
                "path": "src/neuralspotx/board_descriptors.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/board_descriptors.py#L63"
              },
              "summary": ""
            }
          ],
          "name": "BoardDescriptor",
          "params": [],
          "raises": [],
          "returns": [],
          "signature": "BoardDescriptor(\n    name: str,\n    tier: str,\n    soc: str,\n    sdk_provider: str,\n    registered: bool,\n    cpu: BoardCpu,\n    toolchains: tuple[str, ...],\n    path: Path,\n) -> None",
          "source": {
            "line": 47,
            "path": "src/neuralspotx/board_descriptors.py",
            "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/board_descriptors.py#L47"
          },
          "summary": "Declarative metadata for a single board."
        },
        {
          "description": "Raised when an on-disk NSX cache file is unreadable or has an\nunsupported ``schema_version``.\n\nCatch alongside :class:`NSXError` for general failure handling, or\nspecifically when offering remediation steps such as ``nsx cache\nclean``.",
          "examples": [],
          "id": "neuralspotx.NSXCacheError",
          "kind": "class",
          "language": "python",
          "members": [],
          "name": "NSXCacheError",
          "params": [],
          "raises": [],
          "returns": [],
          "signature": "NSXCacheError()",
          "source": {
            "line": 56,
            "path": "src/neuralspotx/_errors.py",
            "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/_errors.py#L56"
          },
          "summary": "Raised when an on-disk NSX cache file is unreadable or has an unsupported schemaversion."
        },
        {
          "description": "Write *event* to stderr (info/warn/error/step) or stdout (line).\n\nOutput is intentionally identical to the legacy ``print(message)``\nbehavior modulo the destination stream.",
          "examples": [],
          "id": "neuralspotx.default_emitter",
          "kind": "function",
          "language": "python",
          "members": [],
          "name": "default_emitter",
          "params": [],
          "raises": [],
          "returns": [],
          "signature": "default_emitter(event: Event) -> None",
          "source": {
            "line": 62,
            "path": "src/neuralspotx/_io.py",
            "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/_io.py#L62"
          },
          "summary": "Write event to stderr (info/warn/error/step) or stdout (line)."
        },
        {
          "description": "Raised for git-ref resolution or lock-file consistency failures.",
          "examples": [],
          "id": "neuralspotx.NSXResolutionError",
          "kind": "class",
          "language": "python",
          "members": [],
          "name": "NSXResolutionError",
          "params": [],
          "raises": [],
          "returns": [],
          "signature": "NSXResolutionError()",
          "source": {
            "line": 66,
            "path": "src/neuralspotx/_errors.py",
            "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/_errors.py#L66"
          },
          "summary": "Raised for git-ref resolution or lock-file consistency failures."
        },
        {
          "description": "Raised for failures in the per-app advisory-lock subsystem.\n\nCovers both runtime acquisition failures (the platform lock\nprimitive errors out, the lock is held by another process in\nnon-blocking mode) and on-disk ``nsx.lock`` schema/format\nincompatibilities surfaced by readers like ``sync`` and\n``outdated``.",
          "examples": [],
          "id": "neuralspotx.NSXLockError",
          "kind": "class",
          "language": "python",
          "members": [],
          "name": "NSXLockError",
          "params": [],
          "raises": [],
          "returns": [],
          "signature": "NSXLockError()",
          "source": {
            "line": 70,
            "path": "src/neuralspotx/_errors.py",
            "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/_errors.py#L70"
          },
          "summary": "Raised for failures in the per-app advisory-lock subsystem."
        },
        {
          "description": "Raised for module-name lookup or dependency-closure failures.",
          "examples": [],
          "id": "neuralspotx.NSXModuleError",
          "kind": "class",
          "language": "python",
          "members": [],
          "name": "NSXModuleError",
          "params": [],
          "raises": [],
          "returns": [],
          "signature": "NSXModuleError()",
          "source": {
            "line": 81,
            "path": "src/neuralspotx/_errors.py",
            "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/_errors.py#L81"
          },
          "summary": "Raised for module-name lookup or dependency-closure failures."
        },
        {
          "description": "Raised when a vendored module's content hash does not match\nthe value recorded in ``nsx.lock``.\n\nSurfaced primarily by ``nsx sync --frozen`` when the on-disk tree\nhas been mutated since the lock was written. Subclasses\n:class:`NSXModuleError` so existing ``except NSXModuleError`` sites\ncontinue to catch the failure.",
          "examples": [],
          "id": "neuralspotx.NSXIntegrityError",
          "kind": "class",
          "language": "python",
          "members": [
            {
              "description": "",
              "examples": [],
              "id": "neuralspotx.NSXIntegrityError.module",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "module",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "module = module",
              "source": {
                "line": 97,
                "path": "src/neuralspotx/_errors.py",
                "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/_errors.py#L97"
              },
              "summary": ""
            }
          ],
          "name": "NSXIntegrityError",
          "params": [],
          "raises": [],
          "returns": [],
          "signature": "NSXIntegrityError(message: str, *, module: str | None = None) -> None",
          "source": {
            "line": 85,
            "path": "src/neuralspotx/_errors.py",
            "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/_errors.py#L85"
          },
          "summary": "Raised when a vendored module's content hash does not match the value recorded in nsx.lock."
        },
        {
          "description": "Raised for unsafe or rejected ``git`` operations.\n\nUsed by ``git_clone_at_commit`` to refuse registry URLs that name\ndisallowed transports such as ``ext::`` (arbitrary command\nexecution) or ``file://`` / ``file::`` (local-filesystem\nredirection), which would otherwise bypass the registry's\nintended ``http(s)``/``ssh``/``git`` allow-list.",
          "examples": [],
          "id": "neuralspotx.NSXGitError",
          "kind": "class",
          "language": "python",
          "members": [],
          "name": "NSXGitError",
          "params": [],
          "raises": [],
          "returns": [],
          "signature": "NSXGitError()",
          "source": {
            "line": 100,
            "path": "src/neuralspotx/_errors.py",
            "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/_errors.py#L100"
          },
          "summary": "Raised for unsafe or rejected git operations."
        },
        {
          "description": "Raised for missing or unsupported toolchain configuration.",
          "examples": [],
          "id": "neuralspotx.NSXToolchainError",
          "kind": "class",
          "language": "python",
          "members": [],
          "name": "NSXToolchainError",
          "params": [],
          "raises": [],
          "returns": [],
          "signature": "NSXToolchainError()",
          "source": {
            "line": 111,
            "path": "src/neuralspotx/_errors.py",
            "url": "https://github.com/AmbiqAI/neuralspotx/blob/2b72ffc71f90df792825645ac9c9647f296ca019/src/neuralspotx/_errors.py#L111"
          },
          "summary": "Raised for missing or unsupported toolchain configuration."
        }
      ]
    }
  ],
  "name": "neuralspotx"
}
