#
tokens: 44266/50000 1/216 files (page 32/35)
lines: on (toggle) GitHub
raw markdown copy reset
This is page 32 of 35. Use http://codebase.md/pragmar/mcp_server_webcrawl/crawlers/katana/adapter.html?lines=true&page={x} to view the full context.

# Directory Structure

```
├── .gitignore
├── CONTRIBUTING.md
├── docs
│   ├── _images
│   │   ├── interactive.document.webp
│   │   ├── interactive.search.webp
│   │   └── mcpswc.svg
│   ├── _modules
│   │   ├── index.html
│   │   ├── mcp_server_webcrawl
│   │   │   ├── crawlers
│   │   │   │   ├── archivebox
│   │   │   │   │   ├── adapter.html
│   │   │   │   │   ├── crawler.html
│   │   │   │   │   └── tests.html
│   │   │   │   ├── base
│   │   │   │   │   ├── adapter.html
│   │   │   │   │   ├── api.html
│   │   │   │   │   ├── crawler.html
│   │   │   │   │   ├── indexed.html
│   │   │   │   │   └── tests.html
│   │   │   │   ├── httrack
│   │   │   │   │   ├── adapter.html
│   │   │   │   │   ├── crawler.html
│   │   │   │   │   └── tests.html
│   │   │   │   ├── interrobot
│   │   │   │   │   ├── adapter.html
│   │   │   │   │   ├── crawler.html
│   │   │   │   │   └── tests.html
│   │   │   │   ├── katana
│   │   │   │   │   ├── adapter.html
│   │   │   │   │   ├── crawler.html
│   │   │   │   │   └── tests.html
│   │   │   │   ├── siteone
│   │   │   │   │   ├── adapter.html
│   │   │   │   │   ├── crawler.html
│   │   │   │   │   └── tests.html
│   │   │   │   ├── warc
│   │   │   │   │   ├── adapter.html
│   │   │   │   │   ├── crawler.html
│   │   │   │   │   └── tests.html
│   │   │   │   └── wget
│   │   │   │       ├── adapter.html
│   │   │   │       ├── crawler.html
│   │   │   │       └── tests.html
│   │   │   ├── crawlers.html
│   │   │   ├── extras
│   │   │   │   ├── markdown.html
│   │   │   │   ├── regex.html
│   │   │   │   ├── snippets.html
│   │   │   │   ├── thumbnails.html
│   │   │   │   └── xpath.html
│   │   │   ├── interactive
│   │   │   │   ├── highlights.html
│   │   │   │   ├── search.html
│   │   │   │   ├── session.html
│   │   │   │   └── ui.html
│   │   │   ├── main.html
│   │   │   ├── models
│   │   │   │   ├── resources.html
│   │   │   │   └── sites.html
│   │   │   ├── templates
│   │   │   │   └── tests.html
│   │   │   ├── utils
│   │   │   │   ├── blobs.html
│   │   │   │   ├── cli.html
│   │   │   │   ├── logger.html
│   │   │   │   ├── querycache.html
│   │   │   │   ├── server.html
│   │   │   │   └── tools.html
│   │   │   └── utils.html
│   │   └── re.html
│   ├── _sources
│   │   ├── guides
│   │   │   ├── archivebox.rst.txt
│   │   │   ├── httrack.rst.txt
│   │   │   ├── interrobot.rst.txt
│   │   │   ├── katana.rst.txt
│   │   │   ├── siteone.rst.txt
│   │   │   ├── warc.rst.txt
│   │   │   └── wget.rst.txt
│   │   ├── guides.rst.txt
│   │   ├── index.rst.txt
│   │   ├── installation.rst.txt
│   │   ├── interactive.rst.txt
│   │   ├── mcp_server_webcrawl.crawlers.archivebox.rst.txt
│   │   ├── mcp_server_webcrawl.crawlers.base.rst.txt
│   │   ├── mcp_server_webcrawl.crawlers.httrack.rst.txt
│   │   ├── mcp_server_webcrawl.crawlers.interrobot.rst.txt
│   │   ├── mcp_server_webcrawl.crawlers.katana.rst.txt
│   │   ├── mcp_server_webcrawl.crawlers.rst.txt
│   │   ├── mcp_server_webcrawl.crawlers.siteone.rst.txt
│   │   ├── mcp_server_webcrawl.crawlers.warc.rst.txt
│   │   ├── mcp_server_webcrawl.crawlers.wget.rst.txt
│   │   ├── mcp_server_webcrawl.extras.rst.txt
│   │   ├── mcp_server_webcrawl.interactive.rst.txt
│   │   ├── mcp_server_webcrawl.models.rst.txt
│   │   ├── mcp_server_webcrawl.rst.txt
│   │   ├── mcp_server_webcrawl.templates.rst.txt
│   │   ├── mcp_server_webcrawl.utils.rst.txt
│   │   ├── modules.rst.txt
│   │   ├── prompts.rst.txt
│   │   └── usage.rst.txt
│   ├── _static
│   │   ├── _sphinx_javascript_frameworks_compat.js
│   │   ├── basic.css
│   │   ├── css
│   │   │   ├── badge_only.css
│   │   │   ├── fonts
│   │   │   │   ├── fontawesome-webfont.eot
│   │   │   │   ├── fontawesome-webfont.svg
│   │   │   │   ├── fontawesome-webfont.ttf
│   │   │   │   ├── fontawesome-webfont.woff
│   │   │   │   ├── fontawesome-webfont.woff2
│   │   │   │   ├── lato-bold-italic.woff
│   │   │   │   ├── lato-bold-italic.woff2
│   │   │   │   ├── lato-bold.woff
│   │   │   │   ├── lato-bold.woff2
│   │   │   │   ├── lato-normal-italic.woff
│   │   │   │   ├── lato-normal-italic.woff2
│   │   │   │   ├── lato-normal.woff
│   │   │   │   ├── lato-normal.woff2
│   │   │   │   ├── Roboto-Slab-Bold.woff
│   │   │   │   ├── Roboto-Slab-Bold.woff2
│   │   │   │   ├── Roboto-Slab-Regular.woff
│   │   │   │   └── Roboto-Slab-Regular.woff2
│   │   │   └── theme.css
│   │   ├── doctools.js
│   │   ├── documentation_options.js
│   │   ├── file.png
│   │   ├── fonts
│   │   │   ├── Lato
│   │   │   │   ├── lato-bold.eot
│   │   │   │   ├── lato-bold.ttf
│   │   │   │   ├── lato-bold.woff
│   │   │   │   ├── lato-bold.woff2
│   │   │   │   ├── lato-bolditalic.eot
│   │   │   │   ├── lato-bolditalic.ttf
│   │   │   │   ├── lato-bolditalic.woff
│   │   │   │   ├── lato-bolditalic.woff2
│   │   │   │   ├── lato-italic.eot
│   │   │   │   ├── lato-italic.ttf
│   │   │   │   ├── lato-italic.woff
│   │   │   │   ├── lato-italic.woff2
│   │   │   │   ├── lato-regular.eot
│   │   │   │   ├── lato-regular.ttf
│   │   │   │   ├── lato-regular.woff
│   │   │   │   └── lato-regular.woff2
│   │   │   └── RobotoSlab
│   │   │       ├── roboto-slab-v7-bold.eot
│   │   │       ├── roboto-slab-v7-bold.ttf
│   │   │       ├── roboto-slab-v7-bold.woff
│   │   │       ├── roboto-slab-v7-bold.woff2
│   │   │       ├── roboto-slab-v7-regular.eot
│   │   │       ├── roboto-slab-v7-regular.ttf
│   │   │       ├── roboto-slab-v7-regular.woff
│   │   │       └── roboto-slab-v7-regular.woff2
│   │   ├── images
│   │   │   ├── interactive.document.png
│   │   │   ├── interactive.document.webp
│   │   │   ├── interactive.search.png
│   │   │   ├── interactive.search.webp
│   │   │   └── mcpswc.svg
│   │   ├── jquery.js
│   │   ├── js
│   │   │   ├── badge_only.js
│   │   │   ├── theme.js
│   │   │   └── versions.js
│   │   ├── language_data.js
│   │   ├── minus.png
│   │   ├── plus.png
│   │   ├── pygments.css
│   │   ├── searchtools.js
│   │   └── sphinx_highlight.js
│   ├── .buildinfo
│   ├── .nojekyll
│   ├── genindex.html
│   ├── guides
│   │   ├── archivebox.html
│   │   ├── httrack.html
│   │   ├── interrobot.html
│   │   ├── katana.html
│   │   ├── siteone.html
│   │   ├── warc.html
│   │   └── wget.html
│   ├── guides.html
│   ├── index.html
│   ├── installation.html
│   ├── interactive.html
│   ├── mcp_server_webcrawl.crawlers.archivebox.html
│   ├── mcp_server_webcrawl.crawlers.base.html
│   ├── mcp_server_webcrawl.crawlers.html
│   ├── mcp_server_webcrawl.crawlers.httrack.html
│   ├── mcp_server_webcrawl.crawlers.interrobot.html
│   ├── mcp_server_webcrawl.crawlers.katana.html
│   ├── mcp_server_webcrawl.crawlers.siteone.html
│   ├── mcp_server_webcrawl.crawlers.warc.html
│   ├── mcp_server_webcrawl.crawlers.wget.html
│   ├── mcp_server_webcrawl.extras.html
│   ├── mcp_server_webcrawl.html
│   ├── mcp_server_webcrawl.interactive.html
│   ├── mcp_server_webcrawl.models.html
│   ├── mcp_server_webcrawl.templates.html
│   ├── mcp_server_webcrawl.utils.html
│   ├── modules.html
│   ├── objects.inv
│   ├── prompts.html
│   ├── py-modindex.html
│   ├── search.html
│   ├── searchindex.js
│   └── usage.html
├── LICENSE
├── MANIFEST.in
├── prompts
│   ├── audit404.md
│   ├── auditfiles.md
│   ├── auditperf.md
│   ├── auditseo.md
│   ├── gopher.md
│   ├── README.md
│   └── testsearch.md
├── pyproject.toml
├── README.md
├── setup.py
├── sphinx
│   ├── _static
│   │   └── images
│   │       ├── interactive.document.png
│   │       ├── interactive.document.webp
│   │       ├── interactive.search.png
│   │       ├── interactive.search.webp
│   │       └── mcpswc.svg
│   ├── _templates
│   │   └── layout.html
│   ├── conf.py
│   ├── guides
│   │   ├── archivebox.rst
│   │   ├── httrack.rst
│   │   ├── interrobot.rst
│   │   ├── katana.rst
│   │   ├── siteone.rst
│   │   ├── warc.rst
│   │   └── wget.rst
│   ├── guides.rst
│   ├── index.rst
│   ├── installation.rst
│   ├── interactive.rst
│   ├── make.bat
│   ├── Makefile
│   ├── mcp_server_webcrawl.crawlers.archivebox.rst
│   ├── mcp_server_webcrawl.crawlers.base.rst
│   ├── mcp_server_webcrawl.crawlers.httrack.rst
│   ├── mcp_server_webcrawl.crawlers.interrobot.rst
│   ├── mcp_server_webcrawl.crawlers.katana.rst
│   ├── mcp_server_webcrawl.crawlers.rst
│   ├── mcp_server_webcrawl.crawlers.siteone.rst
│   ├── mcp_server_webcrawl.crawlers.warc.rst
│   ├── mcp_server_webcrawl.crawlers.wget.rst
│   ├── mcp_server_webcrawl.extras.rst
│   ├── mcp_server_webcrawl.interactive.rst
│   ├── mcp_server_webcrawl.models.rst
│   ├── mcp_server_webcrawl.rst
│   ├── mcp_server_webcrawl.templates.rst
│   ├── mcp_server_webcrawl.utils.rst
│   ├── modules.rst
│   ├── prompts.rst
│   ├── readme.txt
│   └── usage.rst
└── src
    └── mcp_server_webcrawl
        ├── __init__.py
        ├── crawlers
        │   ├── __init__.py
        │   ├── archivebox
        │   │   ├── __init__.py
        │   │   ├── adapter.py
        │   │   ├── crawler.py
        │   │   └── tests.py
        │   ├── base
        │   │   ├── __init__.py
        │   │   ├── adapter.py
        │   │   ├── api.py
        │   │   ├── crawler.py
        │   │   ├── indexed.py
        │   │   └── tests.py
        │   ├── httrack
        │   │   ├── __init__.py
        │   │   ├── adapter.py
        │   │   ├── crawler.py
        │   │   └── tests.py
        │   ├── interrobot
        │   │   ├── __init__.py
        │   │   ├── adapter.py
        │   │   ├── crawler.py
        │   │   └── tests.py
        │   ├── katana
        │   │   ├── __init__.py
        │   │   ├── adapter.py
        │   │   ├── crawler.py
        │   │   └── tests.py
        │   ├── siteone
        │   │   ├── __init__.py
        │   │   ├── adapter.py
        │   │   ├── crawler.py
        │   │   └── tests.py
        │   ├── warc
        │   │   ├── __init__.py
        │   │   ├── adapter.py
        │   │   ├── crawler.py
        │   │   └── tests.py
        │   └── wget
        │       ├── __init__.py
        │       ├── adapter.py
        │       ├── crawler.py
        │       └── tests.py
        ├── extras
        │   ├── __init__.py
        │   ├── markdown.py
        │   ├── regex.py
        │   ├── snippets.py
        │   ├── thumbnails.py
        │   └── xpath.py
        ├── interactive
        │   ├── __init__.py
        │   ├── highlights.py
        │   ├── search.py
        │   ├── session.py
        │   ├── ui.py
        │   └── views
        │       ├── base.py
        │       ├── document.py
        │       ├── help.py
        │       ├── requirements.py
        │       ├── results.py
        │       └── searchform.py
        ├── main.py
        ├── models
        │   ├── __init__.py
        │   ├── base.py
        │   ├── resources.py
        │   └── sites.py
        ├── settings.py
        ├── templates
        │   ├── __init__.py
        │   ├── markdown.xslt
        │   ├── tests_core.html
        │   └── tests.py
        └── utils
            ├── __init__.py
            ├── cli.py
            ├── logger.py
            ├── parser.py
            ├── parsetab.py
            ├── search.py
            ├── server.py
            ├── tests.py
            └── tools.py
```

# Files

--------------------------------------------------------------------------------
/docs/mcp_server_webcrawl.interactive.html:
--------------------------------------------------------------------------------

```html
   1 | 
   2 | 
   3 | <!DOCTYPE html>
   4 | <html class="writer-html5" lang="en" data-content_root="./">
   5 | <head>
   6 |   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
   7 | 
   8 |   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   9 |   <title>mcp_server_webcrawl.interactive package &mdash; mcp-server-webcrawl  documentation</title>
  10 |       <link rel="stylesheet" type="text/css" href="_static/pygments.css?v=80d5e7a1" />
  11 |       <link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=e59714d7" />
  12 | 
  13 |   
  14 |       <script src="_static/jquery.js?v=5d32c60e"></script>
  15 |       <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
  16 |       <script src="_static/documentation_options.js?v=5929fcd5"></script>
  17 |       <script src="_static/doctools.js?v=888ff710"></script>
  18 |       <script src="_static/sphinx_highlight.js?v=dc90522c"></script>
  19 |     <script src="_static/js/theme.js"></script>
  20 |     <link rel="index" title="Index" href="genindex.html" />
  21 |     <link rel="search" title="Search" href="search.html" />
  22 |     <link rel="next" title="mcp_server_webcrawl.models package" href="mcp_server_webcrawl.models.html" />
  23 |     <link rel="prev" title="mcp_server_webcrawl.extras package" href="mcp_server_webcrawl.extras.html" /> 
  24 | </head>
  25 | 
  26 | <body class="wy-body-for-nav"> 
  27 |   <div class="wy-grid-for-nav">
  28 |     <nav data-toggle="wy-nav-shift" class="wy-nav-side">
  29 |       <div class="wy-side-scroll">
  30 |         <div class="wy-side-nav-search" >
  31 | 
  32 |           
  33 |           
  34 |           <a href="index.html" class="icon icon-home">
  35 |             mcp-server-webcrawl
  36 |           </a>
  37 | <div role="search">
  38 |   <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
  39 |     <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
  40 |     <input type="hidden" name="check_keywords" value="yes" />
  41 |     <input type="hidden" name="area" value="default" />
  42 |   </form>
  43 | </div>
  44 |         </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
  45 |               <p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
  46 | <ul class="current">
  47 | <li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
  48 | <li class="toctree-l1"><a class="reference internal" href="guides.html">Setup Guides</a></li>
  49 | <li class="toctree-l1"><a class="reference internal" href="usage.html">Usage</a></li>
  50 | <li class="toctree-l1"><a class="reference internal" href="prompts.html">Prompt Routines</a></li>
  51 | <li class="toctree-l1"><a class="reference internal" href="interactive.html">Interactive Mode</a></li>
  52 | <li class="toctree-l1 current"><a class="reference internal" href="modules.html">mcp_server_webcrawl</a><ul class="current">
  53 | <li class="toctree-l2 current"><a class="reference internal" href="mcp_server_webcrawl.html">mcp_server_webcrawl package</a></li>
  54 | </ul>
  55 | </li>
  56 | </ul>
  57 | 
  58 |         </div>
  59 |       </div>
  60 |     </nav>
  61 | 
  62 |     <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
  63 |           <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
  64 |           <a href="index.html">mcp-server-webcrawl</a>
  65 |       </nav>
  66 | 
  67 |       <div class="wy-nav-content">
  68 |         <div class="rst-content">
  69 |           <div role="navigation" aria-label="Page navigation">
  70 |   <ul class="wy-breadcrumbs">
  71 |       <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
  72 |           <li class="breadcrumb-item"><a href="modules.html">mcp_server_webcrawl</a></li>
  73 |           <li class="breadcrumb-item"><a href="mcp_server_webcrawl.html">mcp_server_webcrawl package</a></li>
  74 |       <li class="breadcrumb-item active">mcp_server_webcrawl.interactive package</li>
  75 |       <li class="wy-breadcrumbs-aside">
  76 |             <a href="_sources/mcp_server_webcrawl.interactive.rst.txt" rel="nofollow"> View page source</a>
  77 |       </li>
  78 |   </ul>
  79 |   <hr/>
  80 | </div>
  81 |           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
  82 |            <div itemprop="articleBody">
  83 |              
  84 |   <section id="mcp-server-webcrawl-interactive-package">
  85 | <h1>mcp_server_webcrawl.interactive package<a class="headerlink" href="#mcp-server-webcrawl-interactive-package" title="Link to this heading"></a></h1>
  86 | <section id="submodules">
  87 | <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this heading"></a></h2>
  88 | </section>
  89 | <section id="module-mcp_server_webcrawl.interactive.highlights">
  90 | <span id="mcp-server-webcrawl-interactive-highlights-module"></span><h2>mcp_server_webcrawl.interactive.highlights module<a class="headerlink" href="#module-mcp_server_webcrawl.interactive.highlights" title="Link to this heading"></a></h2>
  91 | <dl class="py class">
  92 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.highlights.HighlightSpan">
  93 | <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">HighlightSpan</span></span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/highlights.html#HighlightSpan"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.highlights.HighlightSpan" title="Link to this definition"></a></dt>
  94 | <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.14)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p>
  95 | <p>Represents a highlight span in text</p>
  96 | <dl class="py attribute">
  97 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.highlights.HighlightSpan.start">
  98 | <span class="sig-name descname"><span class="pre">start</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><span class="pre">int</span></a></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.highlights.HighlightSpan.start" title="Link to this definition"></a></dt>
  99 | <dd></dd></dl>
 100 | 
 101 | <dl class="py attribute">
 102 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.highlights.HighlightSpan.end">
 103 | <span class="sig-name descname"><span class="pre">end</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><span class="pre">int</span></a></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.highlights.HighlightSpan.end" title="Link to this definition"></a></dt>
 104 | <dd></dd></dl>
 105 | 
 106 | <dl class="py attribute">
 107 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.highlights.HighlightSpan.text">
 108 | <span class="sig-name descname"><span class="pre">text</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.highlights.HighlightSpan.text" title="Link to this definition"></a></dt>
 109 | <dd></dd></dl>
 110 | 
 111 | <dl class="py method">
 112 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.highlights.HighlightSpan.__init__">
 113 | <span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">start</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">end</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">text</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#mcp_server_webcrawl.interactive.highlights.HighlightSpan.__init__" title="Link to this definition"></a></dt>
 114 | <dd><dl class="field-list simple">
 115 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 116 | <dd class="field-odd"><ul class="simple">
 117 | <li><p><strong>start</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><em>int</em></a>) – </p></li>
 118 | <li><p><strong>end</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><em>int</em></a>) – </p></li>
 119 | <li><p><strong>text</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><em>str</em></a>) – </p></li>
 120 | </ul>
 121 | </dd>
 122 | <dt class="field-even">Return type<span class="colon">:</span></dt>
 123 | <dd class="field-even"><p>None</p>
 124 | </dd>
 125 | </dl>
 126 | </dd></dl>
 127 | 
 128 | </dd></dl>
 129 | 
 130 | <dl class="py class">
 131 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.highlights.HighlightProcessor">
 132 | <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">HighlightProcessor</span></span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/highlights.html#HighlightProcessor"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.highlights.HighlightProcessor" title="Link to this definition"></a></dt>
 133 | <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.14)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p>
 134 | <p>Shared highlight processing utilities</p>
 135 | <dl class="py attribute">
 136 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.highlights.HighlightProcessor.QUOTED_PHRASE_PATTERN">
 137 | <span class="sig-name descname"><span class="pre">QUOTED_PHRASE_PATTERN</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">re.compile('&quot;([^&quot;]+)&quot;')</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.highlights.HighlightProcessor.QUOTED_PHRASE_PATTERN" title="Link to this definition"></a></dt>
 138 | <dd></dd></dl>
 139 | 
 140 | <dl class="py attribute">
 141 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.highlights.HighlightProcessor.WORD_PATTERN">
 142 | <span class="sig-name descname"><span class="pre">WORD_PATTERN</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">re.compile('\\b\\w+\\b')</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.highlights.HighlightProcessor.WORD_PATTERN" title="Link to this definition"></a></dt>
 143 | <dd></dd></dl>
 144 | 
 145 | <dl class="py attribute">
 146 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.highlights.HighlightProcessor.SNIPPET_MARKER_PATTERN">
 147 | <span class="sig-name descname"><span class="pre">SNIPPET_MARKER_PATTERN</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">re.compile(&quot;\\*\\*([a-zA-Z\\-_'</span> <span class="pre">]+)\\*\\*&quot;)</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.highlights.HighlightProcessor.SNIPPET_MARKER_PATTERN" title="Link to this definition"></a></dt>
 148 | <dd></dd></dl>
 149 | 
 150 | <dl class="py attribute">
 151 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.highlights.HighlightProcessor.IGNORE_WORDS">
 152 | <span class="sig-name descname"><span class="pre">IGNORE_WORDS</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">{'AND',</span> <span class="pre">'NOT',</span> <span class="pre">'OR',</span> <span class="pre">'and',</span> <span class="pre">'id',</span> <span class="pre">'not',</span> <span class="pre">'or',</span> <span class="pre">'size',</span> <span class="pre">'status',</span> <span class="pre">'type',</span> <span class="pre">'url'}</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.highlights.HighlightProcessor.IGNORE_WORDS" title="Link to this definition"></a></dt>
 153 | <dd></dd></dl>
 154 | 
 155 | <dl class="py method">
 156 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.highlights.HighlightProcessor.extract_search_terms">
 157 | <em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">extract_search_terms</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">query</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/highlights.html#HighlightProcessor.extract_search_terms"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.highlights.HighlightProcessor.extract_search_terms" title="Link to this definition"></a></dt>
 158 | <dd><p>Extract search terms from query, handling quoted phrases and individual keywords.</p>
 159 | <dl class="field-list simple">
 160 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 161 | <dd class="field-odd"><p><strong>query</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><em>str</em></a>) – </p>
 162 | </dd>
 163 | <dt class="field-even">Return type<span class="colon">:</span></dt>
 164 | <dd class="field-even"><p><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.List" title="(in Python v3.14)"><em>List</em></a>[<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)">str</a>]</p>
 165 | </dd>
 166 | </dl>
 167 | </dd></dl>
 168 | 
 169 | <dl class="py method">
 170 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.highlights.HighlightProcessor.find_highlights_in_text">
 171 | <em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">find_highlights_in_text</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">text</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">search_terms</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/highlights.html#HighlightProcessor.find_highlights_in_text"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.highlights.HighlightProcessor.find_highlights_in_text" title="Link to this definition"></a></dt>
 172 | <dd><p>Find all highlight spans in text for the given search terms.</p>
 173 | <dl class="field-list simple">
 174 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 175 | <dd class="field-odd"><ul class="simple">
 176 | <li><p><strong>text</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><em>str</em></a>) – </p></li>
 177 | <li><p><strong>search_terms</strong> (<a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.List" title="(in Python v3.14)"><em>List</em></a><em>[</em><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><em>str</em></a><em>]</em>) – </p></li>
 178 | </ul>
 179 | </dd>
 180 | <dt class="field-even">Return type<span class="colon">:</span></dt>
 181 | <dd class="field-even"><p><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.List" title="(in Python v3.14)"><em>List</em></a>[<a class="reference internal" href="#mcp_server_webcrawl.interactive.highlights.HighlightSpan" title="mcp_server_webcrawl.interactive.highlights.HighlightSpan"><em>HighlightSpan</em></a>]</p>
 182 | </dd>
 183 | </dl>
 184 | </dd></dl>
 185 | 
 186 | <dl class="py method">
 187 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.highlights.HighlightProcessor.extract_snippet_highlights">
 188 | <em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">extract_snippet_highlights</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">snippet_text</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/highlights.html#HighlightProcessor.extract_snippet_highlights"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.highlights.HighlightProcessor.extract_snippet_highlights" title="Link to this definition"></a></dt>
 189 | <dd><p>Extract highlights from snippet text with <strong>markers</strong>, returning clean text and highlights.</p>
 190 | <dl class="field-list simple">
 191 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 192 | <dd class="field-odd"><p><strong>snippet_text</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><em>str</em></a>) – </p>
 193 | </dd>
 194 | <dt class="field-even">Return type<span class="colon">:</span></dt>
 195 | <dd class="field-even"><p><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#tuple" title="(in Python v3.14)">tuple</a>[<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)">str</a>, <a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.List" title="(in Python v3.14)"><em>List</em></a>[<a class="reference internal" href="#mcp_server_webcrawl.interactive.highlights.HighlightSpan" title="mcp_server_webcrawl.interactive.highlights.HighlightSpan"><em>HighlightSpan</em></a>]]</p>
 196 | </dd>
 197 | </dl>
 198 | </dd></dl>
 199 | 
 200 | <dl class="py method">
 201 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.highlights.HighlightProcessor.merge_overlapping_highlights">
 202 | <em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">merge_overlapping_highlights</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">highlights</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">text</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/highlights.html#HighlightProcessor.merge_overlapping_highlights"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.highlights.HighlightProcessor.merge_overlapping_highlights" title="Link to this definition"></a></dt>
 203 | <dd><p>Merge overlapping or adjacent highlight spans.</p>
 204 | <dl class="field-list simple">
 205 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 206 | <dd class="field-odd"><ul class="simple">
 207 | <li><p><strong>highlights</strong> (<a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.List" title="(in Python v3.14)"><em>List</em></a><em>[</em><a class="reference internal" href="#mcp_server_webcrawl.interactive.highlights.HighlightSpan" title="mcp_server_webcrawl.interactive.highlights.HighlightSpan"><em>HighlightSpan</em></a><em>]</em>) – </p></li>
 208 | <li><p><strong>text</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><em>str</em></a>) – </p></li>
 209 | </ul>
 210 | </dd>
 211 | <dt class="field-even">Return type<span class="colon">:</span></dt>
 212 | <dd class="field-even"><p><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.List" title="(in Python v3.14)"><em>List</em></a>[<a class="reference internal" href="#mcp_server_webcrawl.interactive.highlights.HighlightSpan" title="mcp_server_webcrawl.interactive.highlights.HighlightSpan"><em>HighlightSpan</em></a>]</p>
 213 | </dd>
 214 | </dl>
 215 | </dd></dl>
 216 | 
 217 | <dl class="py method">
 218 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.highlights.HighlightProcessor.render_text_with_highlights">
 219 | <em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">render_text_with_highlights</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stdscr</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">text</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">highlights</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">x</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">y</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_width</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">normal_style</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">hit_style</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/highlights.html#HighlightProcessor.render_text_with_highlights"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.highlights.HighlightProcessor.render_text_with_highlights" title="Link to this definition"></a></dt>
 220 | <dd><p>Render text with highlights applied.</p>
 221 | <dl class="field-list simple">
 222 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 223 | <dd class="field-odd"><ul class="simple">
 224 | <li><p><strong>stdscr</strong> (<em>window</em>) – </p></li>
 225 | <li><p><strong>text</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><em>str</em></a>) – </p></li>
 226 | <li><p><strong>highlights</strong> (<a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.List" title="(in Python v3.14)"><em>List</em></a><em>[</em><a class="reference internal" href="#mcp_server_webcrawl.interactive.highlights.HighlightSpan" title="mcp_server_webcrawl.interactive.highlights.HighlightSpan"><em>HighlightSpan</em></a><em>]</em>) – </p></li>
 227 | <li><p><strong>x</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><em>int</em></a>) – </p></li>
 228 | <li><p><strong>y</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><em>int</em></a>) – </p></li>
 229 | <li><p><strong>max_width</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><em>int</em></a>) – </p></li>
 230 | <li><p><strong>normal_style</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><em>int</em></a>) – </p></li>
 231 | <li><p><strong>hit_style</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><em>int</em></a>) – </p></li>
 232 | </ul>
 233 | </dd>
 234 | <dt class="field-even">Return type<span class="colon">:</span></dt>
 235 | <dd class="field-even"><p>None</p>
 236 | </dd>
 237 | </dl>
 238 | </dd></dl>
 239 | 
 240 | </dd></dl>
 241 | 
 242 | </section>
 243 | <section id="module-mcp_server_webcrawl.interactive.search">
 244 | <span id="mcp-server-webcrawl-interactive-search-module"></span><h2>mcp_server_webcrawl.interactive.search module<a class="headerlink" href="#module-mcp_server_webcrawl.interactive.search" title="Link to this heading"></a></h2>
 245 | <dl class="py class">
 246 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.search.SearchManager">
 247 | <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">SearchManager</span></span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/search.html#SearchManager"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.search.SearchManager" title="Link to this definition"></a></dt>
 248 | <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.14)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p>
 249 | <p>Manages search operations including async search and debouncing.
 250 | Works with session’s controlled interface - never touches private state directly.</p>
 251 | <dl class="py method">
 252 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.search.SearchManager.__init__">
 253 | <span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">session</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/search.html#SearchManager.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.search.SearchManager.__init__" title="Link to this definition"></a></dt>
 254 | <dd><dl class="field-list simple">
 255 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 256 | <dd class="field-odd"><p><strong>session</strong> (<a class="reference internal" href="#mcp_server_webcrawl.interactive.session.InteractiveSession" title="mcp_server_webcrawl.interactive.session.InteractiveSession"><em>InteractiveSession</em></a>) – </p>
 257 | </dd>
 258 | </dl>
 259 | </dd></dl>
 260 | 
 261 | <dl class="py method">
 262 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.search.SearchManager.autosearch">
 263 | <span class="sig-name descname"><span class="pre">autosearch</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">immediate</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/search.html#SearchManager.autosearch"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.search.SearchManager.autosearch" title="Link to this definition"></a></dt>
 264 | <dd><p>Trigger search with optional immediate execution.</p>
 265 | <dl class="field-list simple">
 266 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 267 | <dd class="field-odd"><p><strong>immediate</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)"><em>bool</em></a>) – If True, execute search synchronously without debouncing.
 268 | If False, use debounced async execution (default).</p>
 269 | </dd>
 270 | <dt class="field-even">Return type<span class="colon">:</span></dt>
 271 | <dd class="field-even"><p>None</p>
 272 | </dd>
 273 | </dl>
 274 | </dd></dl>
 275 | 
 276 | <dl class="py method">
 277 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.search.SearchManager.cancel_pending">
 278 | <span class="sig-name descname"><span class="pre">cancel_pending</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/search.html#SearchManager.cancel_pending"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.search.SearchManager.cancel_pending" title="Link to this definition"></a></dt>
 279 | <dd><p>Cancel any pending search timer.</p>
 280 | <dl class="field-list simple">
 281 | <dt class="field-odd">Return type<span class="colon">:</span></dt>
 282 | <dd class="field-odd"><p>None</p>
 283 | </dd>
 284 | </dl>
 285 | </dd></dl>
 286 | 
 287 | <dl class="py method">
 288 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.search.SearchManager.check_pending">
 289 | <span class="sig-name descname"><span class="pre">check_pending</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/search.html#SearchManager.check_pending"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.search.SearchManager.check_pending" title="Link to this definition"></a></dt>
 290 | <dd><p>Check if there are pending search results and update the UI.</p>
 291 | <dl class="field-list simple">
 292 | <dt class="field-odd">Return type<span class="colon">:</span></dt>
 293 | <dd class="field-odd"><p>None</p>
 294 | </dd>
 295 | </dl>
 296 | </dd></dl>
 297 | 
 298 | <dl class="py method">
 299 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.search.SearchManager.cleanup">
 300 | <span class="sig-name descname"><span class="pre">cleanup</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/search.html#SearchManager.cleanup"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.search.SearchManager.cleanup" title="Link to this definition"></a></dt>
 301 | <dd><p>Clean up any pending operations.</p>
 302 | <dl class="field-list simple">
 303 | <dt class="field-odd">Return type<span class="colon">:</span></dt>
 304 | <dd class="field-odd"><p>None</p>
 305 | </dd>
 306 | </dl>
 307 | </dd></dl>
 308 | 
 309 | <dl class="py method">
 310 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.search.SearchManager.has_pending">
 311 | <span class="sig-name descname"><span class="pre">has_pending</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/search.html#SearchManager.has_pending"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.search.SearchManager.has_pending" title="Link to this definition"></a></dt>
 312 | <dd><p>Check if there’s a pending debounced search.</p>
 313 | <dl class="field-list simple">
 314 | <dt class="field-odd">Return type<span class="colon">:</span></dt>
 315 | <dd class="field-odd"><p><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)">bool</a></p>
 316 | </dd>
 317 | </dl>
 318 | </dd></dl>
 319 | 
 320 | <dl class="py method">
 321 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.search.SearchManager.is_searching">
 322 | <span class="sig-name descname"><span class="pre">is_searching</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/search.html#SearchManager.is_searching"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.search.SearchManager.is_searching" title="Link to this definition"></a></dt>
 323 | <dd><p>Check if a search is currently in progress or on a timer.</p>
 324 | <dl class="field-list simple">
 325 | <dt class="field-odd">Return type<span class="colon">:</span></dt>
 326 | <dd class="field-odd"><p><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)">bool</a></p>
 327 | </dd>
 328 | </dl>
 329 | </dd></dl>
 330 | 
 331 | </dd></dl>
 332 | 
 333 | </section>
 334 | <section id="module-mcp_server_webcrawl.interactive.session">
 335 | <span id="mcp-server-webcrawl-interactive-session-module"></span><h2>mcp_server_webcrawl.interactive.session module<a class="headerlink" href="#module-mcp_server_webcrawl.interactive.session" title="Link to this heading"></a></h2>
 336 | <dl class="py class">
 337 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.session.InteractiveSession">
 338 | <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">InteractiveSession</span></span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/session.html#InteractiveSession"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.session.InteractiveSession" title="Link to this definition"></a></dt>
 339 | <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.14)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p>
 340 | <p>Main session coordinator that manages the interactive terminal application.</p>
 341 | <p>Initialize the interactive session with crawler and data source.</p>
 342 | <dl class="py method">
 343 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.session.InteractiveSession.__init__">
 344 | <span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">crawler</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">datasrc</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/session.html#InteractiveSession.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.session.InteractiveSession.__init__" title="Link to this definition"></a></dt>
 345 | <dd><p>Initialize the interactive session with crawler and data source.</p>
 346 | <dl class="field-list simple">
 347 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 348 | <dd class="field-odd"><ul class="simple">
 349 | <li><p><strong>crawler</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><em>str</em></a>) – </p></li>
 350 | <li><p><strong>datasrc</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><em>str</em></a>) – </p></li>
 351 | </ul>
 352 | </dd>
 353 | </dl>
 354 | </dd></dl>
 355 | 
 356 | <dl class="py property">
 357 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.session.InteractiveSession.ui_state">
 358 | <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">ui_state</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference internal" href="#mcp_server_webcrawl.interactive.ui.UiState" title="mcp_server_webcrawl.interactive.ui.UiState"><span class="pre">UiState</span></a></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.session.InteractiveSession.ui_state" title="Link to this definition"></a></dt>
 359 | <dd></dd></dl>
 360 | 
 361 | <dl class="py property">
 362 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.session.InteractiveSession.ui_focused">
 363 | <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">ui_focused</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference internal" href="#mcp_server_webcrawl.interactive.ui.UiFocusable" title="mcp_server_webcrawl.interactive.ui.UiFocusable"><span class="pre">UiFocusable</span></a></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.session.InteractiveSession.ui_focused" title="Link to this definition"></a></dt>
 364 | <dd></dd></dl>
 365 | 
 366 | <dl class="py property">
 367 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.session.InteractiveSession.crawler">
 368 | <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">crawler</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference internal" href="mcp_server_webcrawl.crawlers.base.html#mcp_server_webcrawl.crawlers.base.crawler.BaseCrawler" title="mcp_server_webcrawl.crawlers.base.crawler.BaseCrawler"><span class="pre">BaseCrawler</span></a></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.session.InteractiveSession.crawler" title="Link to this definition"></a></dt>
 369 | <dd></dd></dl>
 370 | 
 371 | <dl class="py property">
 372 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.session.InteractiveSession.document">
 373 | <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">document</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">SearchDocumentView</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.session.InteractiveSession.document" title="Link to this definition"></a></dt>
 374 | <dd></dd></dl>
 375 | 
 376 | <dl class="py property">
 377 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.session.InteractiveSession.results">
 378 | <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">results</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">SearchResultsView</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.session.InteractiveSession.results" title="Link to this definition"></a></dt>
 379 | <dd></dd></dl>
 380 | 
 381 | <dl class="py property">
 382 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.session.InteractiveSession.searchform">
 383 | <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">searchform</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">SearchFormView</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.session.InteractiveSession.searchform" title="Link to this definition"></a></dt>
 384 | <dd></dd></dl>
 385 | 
 386 | <dl class="py property">
 387 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.session.InteractiveSession.searchman">
 388 | <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">searchman</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference internal" href="#mcp_server_webcrawl.interactive.search.SearchManager" title="mcp_server_webcrawl.interactive.search.SearchManager"><span class="pre">SearchManager</span></a></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.session.InteractiveSession.searchman" title="Link to this definition"></a></dt>
 389 | <dd></dd></dl>
 390 | 
 391 | <dl class="py property">
 392 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.session.InteractiveSession.sites">
 393 | <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">sites</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.14)"><span class="pre">list</span></a><span class="p"><span class="pre">[</span></span><a class="reference internal" href="mcp_server_webcrawl.models.html#mcp_server_webcrawl.models.sites.SiteResult" title="mcp_server_webcrawl.models.sites.SiteResult"><span class="pre">SiteResult</span></a><span class="p"><span class="pre">]</span></span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.session.InteractiveSession.sites" title="Link to this definition"></a></dt>
 394 | <dd></dd></dl>
 395 | 
 396 | <dl class="py method">
 397 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.session.InteractiveSession.debug_add">
 398 | <span class="sig-name descname"><span class="pre">debug_add</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">msg</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/session.html#InteractiveSession.debug_add"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.session.InteractiveSession.debug_add" title="Link to this definition"></a></dt>
 399 | <dd><p>Add line of debug.</p>
 400 | <dl class="field-list simple">
 401 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 402 | <dd class="field-odd"><p><strong>msg</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><em>str</em></a>) – </p>
 403 | </dd>
 404 | <dt class="field-even">Return type<span class="colon">:</span></dt>
 405 | <dd class="field-even"><p>None</p>
 406 | </dd>
 407 | </dl>
 408 | </dd></dl>
 409 | 
 410 | <dl class="py method">
 411 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.session.InteractiveSession.debug_clear">
 412 | <span class="sig-name descname"><span class="pre">debug_clear</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/session.html#InteractiveSession.debug_clear"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.session.InteractiveSession.debug_clear" title="Link to this definition"></a></dt>
 413 | <dd><p>Clear debug statements.</p>
 414 | <dl class="field-list simple">
 415 | <dt class="field-odd">Return type<span class="colon">:</span></dt>
 416 | <dd class="field-odd"><p>None</p>
 417 | </dd>
 418 | </dl>
 419 | </dd></dl>
 420 | 
 421 | <dl class="py method">
 422 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.session.InteractiveSession.run">
 423 | <span class="sig-name descname"><span class="pre">run</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/session.html#InteractiveSession.run"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.session.InteractiveSession.run" title="Link to this definition"></a></dt>
 424 | <dd><p>Public interface to launch the interactive terminal application.</p>
 425 | <dl class="field-list simple">
 426 | <dt class="field-odd">Return type<span class="colon">:</span></dt>
 427 | <dd class="field-odd"><p>None</p>
 428 | </dd>
 429 | </dl>
 430 | </dd></dl>
 431 | 
 432 | <dl class="py method">
 433 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.session.InteractiveSession.set_ui_state">
 434 | <span class="sig-name descname"><span class="pre">set_ui_state</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">state</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">focus</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/session.html#InteractiveSession.set_ui_state"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.session.InteractiveSession.set_ui_state" title="Link to this definition"></a></dt>
 435 | <dd><p>Transition between UI states cleanly.</p>
 436 | <dl class="field-list simple">
 437 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 438 | <dd class="field-odd"><ul class="simple">
 439 | <li><p><strong>state</strong> (<a class="reference internal" href="#mcp_server_webcrawl.interactive.ui.UiState" title="mcp_server_webcrawl.interactive.ui.UiState"><em>UiState</em></a>) – </p></li>
 440 | <li><p><strong>focus</strong> (<a class="reference internal" href="#mcp_server_webcrawl.interactive.ui.UiFocusable" title="mcp_server_webcrawl.interactive.ui.UiFocusable"><em>UiFocusable</em></a><em> | </em><em>None</em>) – </p></li>
 441 | </ul>
 442 | </dd>
 443 | <dt class="field-even">Return type<span class="colon">:</span></dt>
 444 | <dd class="field-even"><p>None</p>
 445 | </dd>
 446 | </dl>
 447 | </dd></dl>
 448 | 
 449 | <dl class="py method">
 450 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.session.InteractiveSession.set_init_input_args">
 451 | <span class="sig-name descname"><span class="pre">set_init_input_args</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">crawler</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">datasrc</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/session.html#InteractiveSession.set_init_input_args"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.session.InteractiveSession.set_init_input_args" title="Link to this definition"></a></dt>
 452 | <dd><dl class="field-list simple">
 453 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 454 | <dd class="field-odd"><ul class="simple">
 455 | <li><p><strong>crawler</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><em>str</em></a>) – </p></li>
 456 | <li><p><strong>datasrc</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><em>str</em></a>) – </p></li>
 457 | </ul>
 458 | </dd>
 459 | <dt class="field-even">Return type<span class="colon">:</span></dt>
 460 | <dd class="field-even"><p>None</p>
 461 | </dd>
 462 | </dl>
 463 | </dd></dl>
 464 | 
 465 | <dl class="py method">
 466 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.session.InteractiveSession.set_init_crawler">
 467 | <span class="sig-name descname"><span class="pre">set_init_crawler</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">crawler</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/session.html#InteractiveSession.set_init_crawler"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.session.InteractiveSession.set_init_crawler" title="Link to this definition"></a></dt>
 468 | <dd><dl class="field-list simple">
 469 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 470 | <dd class="field-odd"><p><strong>crawler</strong> (<a class="reference internal" href="mcp_server_webcrawl.crawlers.base.html#mcp_server_webcrawl.crawlers.base.crawler.BaseCrawler" title="mcp_server_webcrawl.crawlers.base.crawler.BaseCrawler"><em>BaseCrawler</em></a>) – </p>
 471 | </dd>
 472 | <dt class="field-even">Return type<span class="colon">:</span></dt>
 473 | <dd class="field-even"><p>None</p>
 474 | </dd>
 475 | </dl>
 476 | </dd></dl>
 477 | 
 478 | <dl class="py method">
 479 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.session.InteractiveSession.set_init_sites">
 480 | <span class="sig-name descname"><span class="pre">set_init_sites</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">sites</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/session.html#InteractiveSession.set_init_sites"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.session.InteractiveSession.set_init_sites" title="Link to this definition"></a></dt>
 481 | <dd><dl class="field-list simple">
 482 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 483 | <dd class="field-odd"><p><strong>sites</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><em>str</em></a>) – </p>
 484 | </dd>
 485 | <dt class="field-even">Return type<span class="colon">:</span></dt>
 486 | <dd class="field-even"><p>None</p>
 487 | </dd>
 488 | </dl>
 489 | </dd></dl>
 490 | 
 491 | <dl class="py method">
 492 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.session.InteractiveSession.set_init_searchform">
 493 | <span class="sig-name descname"><span class="pre">set_init_searchform</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">searchform</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/session.html#InteractiveSession.set_init_searchform"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.session.InteractiveSession.set_init_searchform" title="Link to this definition"></a></dt>
 494 | <dd><dl class="field-list simple">
 495 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 496 | <dd class="field-odd"><p><strong>searchform</strong> (<em>BaseCursesView</em>) – </p>
 497 | </dd>
 498 | <dt class="field-even">Return type<span class="colon">:</span></dt>
 499 | <dd class="field-even"><p>None</p>
 500 | </dd>
 501 | </dl>
 502 | </dd></dl>
 503 | 
 504 | <dl class="py method">
 505 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.session.InteractiveSession.get_theme_color_pair">
 506 | <span class="sig-name descname"><span class="pre">get_theme_color_pair</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">theme</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/session.html#InteractiveSession.get_theme_color_pair"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.session.InteractiveSession.get_theme_color_pair" title="Link to this definition"></a></dt>
 507 | <dd><dl class="field-list simple">
 508 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 509 | <dd class="field-odd"><p><strong>theme</strong> (<a class="reference internal" href="#mcp_server_webcrawl.interactive.ui.ThemeDefinition" title="mcp_server_webcrawl.interactive.ui.ThemeDefinition"><em>ThemeDefinition</em></a>) – </p>
 510 | </dd>
 511 | <dt class="field-even">Return type<span class="colon">:</span></dt>
 512 | <dd class="field-even"><p><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)">int</a> | None</p>
 513 | </dd>
 514 | </dl>
 515 | </dd></dl>
 516 | 
 517 | </dd></dl>
 518 | 
 519 | </section>
 520 | <section id="module-mcp_server_webcrawl.interactive.ui">
 521 | <span id="mcp-server-webcrawl-interactive-ui-module"></span><h2>mcp_server_webcrawl.interactive.ui module<a class="headerlink" href="#module-mcp_server_webcrawl.interactive.ui" title="Link to this heading"></a></h2>
 522 | <dl class="py class">
 523 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.DocumentMode">
 524 | <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">DocumentMode</span></span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#DocumentMode"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.DocumentMode" title="Link to this definition"></a></dt>
 525 | <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/enum.html#enum.Enum" title="(in Python v3.14)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Enum</span></code></a></p>
 526 | <p>An enumeration.</p>
 527 | <dl class="py attribute">
 528 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.DocumentMode.MARKDOWN">
 529 | <span class="sig-name descname"><span class="pre">MARKDOWN</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">1</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.DocumentMode.MARKDOWN" title="Link to this definition"></a></dt>
 530 | <dd></dd></dl>
 531 | 
 532 | <dl class="py attribute">
 533 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.DocumentMode.RAW">
 534 | <span class="sig-name descname"><span class="pre">RAW</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">2</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.DocumentMode.RAW" title="Link to this definition"></a></dt>
 535 | <dd></dd></dl>
 536 | 
 537 | <dl class="py attribute">
 538 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.DocumentMode.HEADERS">
 539 | <span class="sig-name descname"><span class="pre">HEADERS</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">3</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.DocumentMode.HEADERS" title="Link to this definition"></a></dt>
 540 | <dd></dd></dl>
 541 | 
 542 | </dd></dl>
 543 | 
 544 | <dl class="py class">
 545 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.NavigationDirection">
 546 | <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">NavigationDirection</span></span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#NavigationDirection"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.NavigationDirection" title="Link to this definition"></a></dt>
 547 | <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/enum.html#enum.Enum" title="(in Python v3.14)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Enum</span></code></a></p>
 548 | <p>An enumeration.</p>
 549 | <dl class="py attribute">
 550 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.NavigationDirection.UP">
 551 | <span class="sig-name descname"><span class="pre">UP</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">1</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.NavigationDirection.UP" title="Link to this definition"></a></dt>
 552 | <dd></dd></dl>
 553 | 
 554 | <dl class="py attribute">
 555 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.NavigationDirection.DOWN">
 556 | <span class="sig-name descname"><span class="pre">DOWN</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">2</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.NavigationDirection.DOWN" title="Link to this definition"></a></dt>
 557 | <dd></dd></dl>
 558 | 
 559 | <dl class="py attribute">
 560 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.NavigationDirection.LEFT">
 561 | <span class="sig-name descname"><span class="pre">LEFT</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">3</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.NavigationDirection.LEFT" title="Link to this definition"></a></dt>
 562 | <dd></dd></dl>
 563 | 
 564 | <dl class="py attribute">
 565 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.NavigationDirection.RIGHT">
 566 | <span class="sig-name descname"><span class="pre">RIGHT</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">4</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.NavigationDirection.RIGHT" title="Link to this definition"></a></dt>
 567 | <dd></dd></dl>
 568 | 
 569 | </dd></dl>
 570 | 
 571 | <dl class="py class">
 572 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.ScrollDirection">
 573 | <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">ScrollDirection</span></span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#ScrollDirection"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.ScrollDirection" title="Link to this definition"></a></dt>
 574 | <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/enum.html#enum.Enum" title="(in Python v3.14)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Enum</span></code></a></p>
 575 | <p>An enumeration.</p>
 576 | <dl class="py attribute">
 577 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.ScrollDirection.UP">
 578 | <span class="sig-name descname"><span class="pre">UP</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">1</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.ScrollDirection.UP" title="Link to this definition"></a></dt>
 579 | <dd></dd></dl>
 580 | 
 581 | <dl class="py attribute">
 582 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.ScrollDirection.DOWN">
 583 | <span class="sig-name descname"><span class="pre">DOWN</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">2</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.ScrollDirection.DOWN" title="Link to this definition"></a></dt>
 584 | <dd></dd></dl>
 585 | 
 586 | </dd></dl>
 587 | 
 588 | <dl class="py class">
 589 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.SearchFilterType">
 590 | <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">SearchFilterType</span></span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#SearchFilterType"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.SearchFilterType" title="Link to this definition"></a></dt>
 591 | <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/enum.html#enum.Enum" title="(in Python v3.14)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Enum</span></code></a></p>
 592 | <p>An enumeration.</p>
 593 | <dl class="py attribute">
 594 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.SearchFilterType.ANY">
 595 | <span class="sig-name descname"><span class="pre">ANY</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">0</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.SearchFilterType.ANY" title="Link to this definition"></a></dt>
 596 | <dd></dd></dl>
 597 | 
 598 | <dl class="py attribute">
 599 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.SearchFilterType.PAGES">
 600 | <span class="sig-name descname"><span class="pre">PAGES</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">1</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.SearchFilterType.PAGES" title="Link to this definition"></a></dt>
 601 | <dd></dd></dl>
 602 | 
 603 | </dd></dl>
 604 | 
 605 | <dl class="py class">
 606 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.ThemeDefinition">
 607 | <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">ThemeDefinition</span></span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#ThemeDefinition"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.ThemeDefinition" title="Link to this definition"></a></dt>
 608 | <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/enum.html#enum.Enum" title="(in Python v3.14)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Enum</span></code></a></p>
 609 | <p>An enumeration.</p>
 610 | <dl class="py attribute">
 611 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.ThemeDefinition.DOCUMENT_MODE">
 612 | <span class="sig-name descname"><span class="pre">DOCUMENT_MODE</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">(1,</span> <span class="pre">1,</span> <span class="pre">51)</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.ThemeDefinition.DOCUMENT_MODE" title="Link to this definition"></a></dt>
 613 | <dd></dd></dl>
 614 | 
 615 | <dl class="py attribute">
 616 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.ThemeDefinition.HEADER_ACTIVE">
 617 | <span class="sig-name descname"><span class="pre">HEADER_ACTIVE</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">(2,</span> <span class="pre">7,</span> <span class="pre">17)</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.ThemeDefinition.HEADER_ACTIVE" title="Link to this definition"></a></dt>
 618 | <dd></dd></dl>
 619 | 
 620 | <dl class="py attribute">
 621 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.ThemeDefinition.HEADER_INACTIVE">
 622 | <span class="sig-name descname"><span class="pre">HEADER_INACTIVE</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">(3,</span> <span class="pre">7,</span> <span class="pre">233)</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.ThemeDefinition.HEADER_INACTIVE" title="Link to this definition"></a></dt>
 623 | <dd></dd></dl>
 624 | 
 625 | <dl class="py attribute">
 626 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.ThemeDefinition.HEADER_OUTER">
 627 | <span class="sig-name descname"><span class="pre">HEADER_OUTER</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">(4,</span> <span class="pre">7,</span> <span class="pre">235)</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.ThemeDefinition.HEADER_OUTER" title="Link to this definition"></a></dt>
 628 | <dd></dd></dl>
 629 | 
 630 | <dl class="py attribute">
 631 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.ThemeDefinition.HELP_LINK">
 632 | <span class="sig-name descname"><span class="pre">HELP_LINK</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">(5,</span> <span class="pre">7,</span> <span class="pre">27)</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.ThemeDefinition.HELP_LINK" title="Link to this definition"></a></dt>
 633 | <dd></dd></dl>
 634 | 
 635 | <dl class="py attribute">
 636 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.ThemeDefinition.HTTP_ERROR">
 637 | <span class="sig-name descname"><span class="pre">HTTP_ERROR</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">(6,</span> <span class="pre">7,</span> <span class="pre">88)</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.ThemeDefinition.HTTP_ERROR" title="Link to this definition"></a></dt>
 638 | <dd></dd></dl>
 639 | 
 640 | <dl class="py attribute">
 641 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.ThemeDefinition.HTTP_WARN">
 642 | <span class="sig-name descname"><span class="pre">HTTP_WARN</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">(7,</span> <span class="pre">7,</span> <span class="pre">130)</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.ThemeDefinition.HTTP_WARN" title="Link to this definition"></a></dt>
 643 | <dd></dd></dl>
 644 | 
 645 | <dl class="py attribute">
 646 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.ThemeDefinition.INACTIVE_QUERY">
 647 | <span class="sig-name descname"><span class="pre">INACTIVE_QUERY</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">(8,</span> <span class="pre">245,</span> <span class="pre">237)</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.ThemeDefinition.INACTIVE_QUERY" title="Link to this definition"></a></dt>
 648 | <dd></dd></dl>
 649 | 
 650 | <dl class="py attribute">
 651 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.ThemeDefinition.SNIPPET_DEFAULT">
 652 | <span class="sig-name descname"><span class="pre">SNIPPET_DEFAULT</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">(9,</span> <span class="pre">243,</span> <span class="pre">0)</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.ThemeDefinition.SNIPPET_DEFAULT" title="Link to this definition"></a></dt>
 653 | <dd></dd></dl>
 654 | 
 655 | <dl class="py attribute">
 656 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.ThemeDefinition.SNIPPET_HIGHLIGHT">
 657 | <span class="sig-name descname"><span class="pre">SNIPPET_HIGHLIGHT</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">(10,</span> <span class="pre">232,</span> <span class="pre">51)</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.ThemeDefinition.SNIPPET_HIGHLIGHT" title="Link to this definition"></a></dt>
 658 | <dd></dd></dl>
 659 | 
 660 | <dl class="py attribute">
 661 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.ThemeDefinition.UI_ERROR">
 662 | <span class="sig-name descname"><span class="pre">UI_ERROR</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">(11,</span> <span class="pre">7,</span> <span class="pre">88)</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.ThemeDefinition.UI_ERROR" title="Link to this definition"></a></dt>
 663 | <dd></dd></dl>
 664 | 
 665 | </dd></dl>
 666 | 
 667 | <dl class="py class">
 668 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.UiFocusable">
 669 | <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">UiFocusable</span></span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#UiFocusable"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.UiFocusable" title="Link to this definition"></a></dt>
 670 | <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/enum.html#enum.Enum" title="(in Python v3.14)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Enum</span></code></a></p>
 671 | <p>An enumeration.</p>
 672 | <dl class="py attribute">
 673 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.UiFocusable.UNDEFINED">
 674 | <span class="sig-name descname"><span class="pre">UNDEFINED</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">1</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.UiFocusable.UNDEFINED" title="Link to this definition"></a></dt>
 675 | <dd></dd></dl>
 676 | 
 677 | <dl class="py attribute">
 678 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.UiFocusable.SEARCH_FORM">
 679 | <span class="sig-name descname"><span class="pre">SEARCH_FORM</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">2</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.UiFocusable.SEARCH_FORM" title="Link to this definition"></a></dt>
 680 | <dd></dd></dl>
 681 | 
 682 | <dl class="py attribute">
 683 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.UiFocusable.SEARCH_RESULTS">
 684 | <span class="sig-name descname"><span class="pre">SEARCH_RESULTS</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">3</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.UiFocusable.SEARCH_RESULTS" title="Link to this definition"></a></dt>
 685 | <dd></dd></dl>
 686 | 
 687 | </dd></dl>
 688 | 
 689 | <dl class="py class">
 690 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.UiState">
 691 | <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">UiState</span></span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#UiState"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.UiState" title="Link to this definition"></a></dt>
 692 | <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/enum.html#enum.Enum" title="(in Python v3.14)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Enum</span></code></a></p>
 693 | <p>An enumeration.</p>
 694 | <dl class="py attribute">
 695 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.UiState.UNDEFINED">
 696 | <span class="sig-name descname"><span class="pre">UNDEFINED</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">1</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.UiState.UNDEFINED" title="Link to this definition"></a></dt>
 697 | <dd></dd></dl>
 698 | 
 699 | <dl class="py attribute">
 700 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.UiState.REQUIREMENTS">
 701 | <span class="sig-name descname"><span class="pre">REQUIREMENTS</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">2</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.UiState.REQUIREMENTS" title="Link to this definition"></a></dt>
 702 | <dd></dd></dl>
 703 | 
 704 | <dl class="py attribute">
 705 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.UiState.SEARCH_INIT">
 706 | <span class="sig-name descname"><span class="pre">SEARCH_INIT</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">3</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.UiState.SEARCH_INIT" title="Link to this definition"></a></dt>
 707 | <dd></dd></dl>
 708 | 
 709 | <dl class="py attribute">
 710 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.UiState.SEARCH_RESULTS">
 711 | <span class="sig-name descname"><span class="pre">SEARCH_RESULTS</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">4</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.UiState.SEARCH_RESULTS" title="Link to this definition"></a></dt>
 712 | <dd></dd></dl>
 713 | 
 714 | <dl class="py attribute">
 715 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.UiState.DOCUMENT">
 716 | <span class="sig-name descname"><span class="pre">DOCUMENT</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">5</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.UiState.DOCUMENT" title="Link to this definition"></a></dt>
 717 | <dd></dd></dl>
 718 | 
 719 | <dl class="py attribute">
 720 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.UiState.HELP">
 721 | <span class="sig-name descname"><span class="pre">HELP</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">6</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.UiState.HELP" title="Link to this definition"></a></dt>
 722 | <dd></dd></dl>
 723 | 
 724 | </dd></dl>
 725 | 
 726 | <dl class="py function">
 727 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.safe_addstr">
 728 | <span class="sig-name descname"><span class="pre">safe_addstr</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stdscr</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">y</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">x</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">text</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">style</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#safe_addstr"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.safe_addstr" title="Link to this definition"></a></dt>
 729 | <dd><p>Safe addstr that handles screen edge errors.</p>
 730 | <dl class="field-list simple">
 731 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 732 | <dd class="field-odd"><ul class="simple">
 733 | <li><p><strong>stdscr</strong> (<em>window</em>) – </p></li>
 734 | <li><p><strong>y</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><em>int</em></a>) – </p></li>
 735 | <li><p><strong>x</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><em>int</em></a>) – </p></li>
 736 | <li><p><strong>text</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><em>str</em></a>) – </p></li>
 737 | <li><p><strong>style</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><em>int</em></a>) – </p></li>
 738 | </ul>
 739 | </dd>
 740 | <dt class="field-even">Return type<span class="colon">:</span></dt>
 741 | <dd class="field-even"><p>None</p>
 742 | </dd>
 743 | </dl>
 744 | </dd></dl>
 745 | 
 746 | <dl class="py class">
 747 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadio">
 748 | <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">InputRadio</span></span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputRadio"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadio" title="Link to this definition"></a></dt>
 749 | <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.14)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p>
 750 | <p>Radio input with 2-3 possible states (e.g., on/off or state1/state2/off)</p>
 751 | <dl class="field-list simple">
 752 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 753 | <dd class="field-odd"><ul class="simple">
 754 | <li><p><strong>group</strong> – The InputRadioGroup this radio belongs to</p></li>
 755 | <li><p><strong>name</strong> – The form radio group name</p></li>
 756 | <li><p><strong>label</strong> – The form radio label</p></li>
 757 | <li><p><strong>index</strong> – The current state index</p></li>
 758 | <li><p><strong>states</strong> – List of InputRadioState objects defining each possible state</p></li>
 759 | </ul>
 760 | </dd>
 761 | </dl>
 762 | <dl class="py method">
 763 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadio.__init__">
 764 | <span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">group</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">name</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">label</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">index</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">states</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputRadio.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadio.__init__" title="Link to this definition"></a></dt>
 765 | <dd><p>Radio input with 2-3 possible states (e.g., on/off or state1/state2/off)</p>
 766 | <dl class="field-list simple">
 767 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 768 | <dd class="field-odd"><ul class="simple">
 769 | <li><p><strong>group</strong> – The InputRadioGroup this radio belongs to</p></li>
 770 | <li><p><strong>name</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><em>str</em></a>) – The form radio group name</p></li>
 771 | <li><p><strong>label</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><em>str</em></a>) – The form radio label</p></li>
 772 | <li><p><strong>index</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><em>int</em></a>) – The current state index</p></li>
 773 | <li><p><strong>states</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.14)"><em>list</em></a><em> | </em><em>None</em>) – List of InputRadioState objects defining each possible state</p></li>
 774 | </ul>
 775 | </dd>
 776 | </dl>
 777 | </dd></dl>
 778 | 
 779 | <dl class="py property">
 780 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadio.current_state">
 781 | <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">current_state</span></span><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadio.current_state" title="Link to this definition"></a></dt>
 782 | <dd><p>Get the current state</p>
 783 | </dd></dl>
 784 | 
 785 | <dl class="py property">
 786 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadio.display_label">
 787 | <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">display_label</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadio.display_label" title="Link to this definition"></a></dt>
 788 | <dd><p>Get the current display label</p>
 789 | </dd></dl>
 790 | 
 791 | <dl class="py property">
 792 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadio.value">
 793 | <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">value</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadio.value" title="Link to this definition"></a></dt>
 794 | <dd><p>Get the current value</p>
 795 | </dd></dl>
 796 | 
 797 | <dl class="py method">
 798 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadio.next_state">
 799 | <span class="sig-name descname"><span class="pre">next_state</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputRadio.next_state"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadio.next_state" title="Link to this definition"></a></dt>
 800 | <dd><p>Cycle to the next state</p>
 801 | <dl class="field-list simple">
 802 | <dt class="field-odd">Return type<span class="colon">:</span></dt>
 803 | <dd class="field-odd"><p>None</p>
 804 | </dd>
 805 | </dl>
 806 | </dd></dl>
 807 | 
 808 | <dl class="py method">
 809 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadio.render">
 810 | <span class="sig-name descname"><span class="pre">render</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stdscr</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">y</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">x</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">field_index</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_width</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">focused</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputRadio.render"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadio.render" title="Link to this definition"></a></dt>
 811 | <dd><p>Render a single radio option.</p>
 812 | <dl class="field-list simple">
 813 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 814 | <dd class="field-odd"><ul class="simple">
 815 | <li><p><strong>stdscr</strong> (<em>window</em>) – </p></li>
 816 | <li><p><strong>y</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><em>int</em></a>) – </p></li>
 817 | <li><p><strong>x</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><em>int</em></a>) – </p></li>
 818 | <li><p><strong>field_index</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><em>int</em></a>) – </p></li>
 819 | <li><p><strong>max_width</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><em>int</em></a><em> | </em><em>None</em>) – </p></li>
 820 | <li><p><strong>focused</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)"><em>bool</em></a>) – </p></li>
 821 | </ul>
 822 | </dd>
 823 | <dt class="field-even">Return type<span class="colon">:</span></dt>
 824 | <dd class="field-even"><p>None</p>
 825 | </dd>
 826 | </dl>
 827 | </dd></dl>
 828 | 
 829 | <dl class="py method">
 830 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadio.set_state">
 831 | <span class="sig-name descname"><span class="pre">set_state</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">index</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputRadio.set_state"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadio.set_state" title="Link to this definition"></a></dt>
 832 | <dd><p>Set the current state by index</p>
 833 | <dl class="field-list simple">
 834 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 835 | <dd class="field-odd"><p><strong>index</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><em>int</em></a>) – </p>
 836 | </dd>
 837 | <dt class="field-even">Return type<span class="colon">:</span></dt>
 838 | <dd class="field-even"><p>None</p>
 839 | </dd>
 840 | </dl>
 841 | </dd></dl>
 842 | 
 843 | <dl class="py method">
 844 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadio.set_states">
 845 | <span class="sig-name descname"><span class="pre">set_states</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">states</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputRadio.set_states"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadio.set_states" title="Link to this definition"></a></dt>
 846 | <dd><p>Set the current state by index</p>
 847 | <dl class="field-list simple">
 848 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 849 | <dd class="field-odd"><p><strong>states</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.14)"><em>list</em></a>) – </p>
 850 | </dd>
 851 | <dt class="field-even">Return type<span class="colon">:</span></dt>
 852 | <dd class="field-even"><p>None</p>
 853 | </dd>
 854 | </dl>
 855 | </dd></dl>
 856 | 
 857 | </dd></dl>
 858 | 
 859 | <dl class="py class">
 860 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadioGroup">
 861 | <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">InputRadioGroup</span></span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputRadioGroup"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadioGroup" title="Link to this definition"></a></dt>
 862 | <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.14)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p>
 863 | <p>Radio group with navigation and layout management capabilities.</p>
 864 | <p>Radio input group with layout and navigation support.</p>
 865 | <dl class="field-list simple">
 866 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 867 | <dd class="field-odd"><ul class="simple">
 868 | <li><p><strong>name</strong> – The form radio group name (“filter”, “sort”, “site”, or “crawler”)</p></li>
 869 | <li><p><strong>sites</strong> – List of SiteResult objects, required only for “site” group type</p></li>
 870 | </ul>
 871 | </dd>
 872 | </dl>
 873 | <dl class="py method">
 874 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadioGroup.__init__">
 875 | <span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sites</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputRadioGroup.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadioGroup.__init__" title="Link to this definition"></a></dt>
 876 | <dd><p>Radio input group with layout and navigation support.</p>
 877 | <dl class="field-list simple">
 878 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 879 | <dd class="field-odd"><ul class="simple">
 880 | <li><p><strong>name</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><em>str</em></a>) – The form radio group name (“filter”, “sort”, “site”, or “crawler”)</p></li>
 881 | <li><p><strong>sites</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.14)"><em>list</em></a><em> | </em><em>None</em>) – List of SiteResult objects, required only for “site” group type</p></li>
 882 | </ul>
 883 | </dd>
 884 | </dl>
 885 | </dd></dl>
 886 | 
 887 | <dl class="py property">
 888 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadioGroup.value">
 889 | <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">value</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadioGroup.value" title="Link to this definition"></a></dt>
 890 | <dd></dd></dl>
 891 | 
 892 | <dl class="py method">
 893 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadioGroup.calculate_group_width">
 894 | <span class="sig-name descname"><span class="pre">calculate_group_width</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputRadioGroup.calculate_group_width"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadioGroup.calculate_group_width" title="Link to this definition"></a></dt>
 895 | <dd><p>Calculate the display width needed for a radio group.</p>
 896 | <dl class="field-list simple">
 897 | <dt class="field-odd">Return type<span class="colon">:</span></dt>
 898 | <dd class="field-odd"><p><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)">int</a></p>
 899 | </dd>
 900 | </dl>
 901 | </dd></dl>
 902 | 
 903 | <dl class="py method">
 904 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadioGroup.clear">
 905 | <span class="sig-name descname"><span class="pre">clear</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputRadioGroup.clear"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadioGroup.clear" title="Link to this definition"></a></dt>
 906 | <dd><dl class="field-list simple">
 907 | <dt class="field-odd">Return type<span class="colon">:</span></dt>
 908 | <dd class="field-odd"><p>None</p>
 909 | </dd>
 910 | </dl>
 911 | </dd></dl>
 912 | 
 913 | <dl class="py method">
 914 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadioGroup.set_layout_constraints">
 915 | <span class="sig-name descname"><span class="pre">set_layout_constraints</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">available_width</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">available_height</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">is_constrained</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputRadioGroup.set_layout_constraints"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadioGroup.set_layout_constraints" title="Link to this definition"></a></dt>
 916 | <dd><p>Set layout constraints for grid-based groups (like sites).</p>
 917 | <dl class="field-list simple">
 918 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 919 | <dd class="field-odd"><ul class="simple">
 920 | <li><p><strong>available_width</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><em>int</em></a>) – Available horizontal space</p></li>
 921 | <li><p><strong>available_height</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><em>int</em></a>) – Available vertical space</p></li>
 922 | <li><p><strong>is_constrained</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)"><em>bool</em></a>) – Whether layout is constrained (affects sites per column)</p></li>
 923 | </ul>
 924 | </dd>
 925 | <dt class="field-even">Return type<span class="colon">:</span></dt>
 926 | <dd class="field-even"><p>None</p>
 927 | </dd>
 928 | </dl>
 929 | </dd></dl>
 930 | 
 931 | <dl class="py method">
 932 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadioGroup.get_grid_position">
 933 | <span class="sig-name descname"><span class="pre">get_grid_position</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">radio_index</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputRadioGroup.get_grid_position"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadioGroup.get_grid_position" title="Link to this definition"></a></dt>
 934 | <dd><p>Convert linear radio index to grid position.
 935 | Only applies to site groups; other groups return (radio_index, 0).</p>
 936 | <dl class="field-list simple">
 937 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 938 | <dd class="field-odd"><p><strong>radio_index</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><em>int</em></a>) – Linear index in radios list</p>
 939 | </dd>
 940 | <dt class="field-even">Returns<span class="colon">:</span></dt>
 941 | <dd class="field-even"><p>(row, column) position in grid layout</p>
 942 | </dd>
 943 | <dt class="field-odd">Return type<span class="colon">:</span></dt>
 944 | <dd class="field-odd"><p><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#tuple" title="(in Python v3.14)">tuple</a></p>
 945 | </dd>
 946 | </dl>
 947 | </dd></dl>
 948 | 
 949 | <dl class="py method">
 950 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadioGroup.get_index_from_grid">
 951 | <span class="sig-name descname"><span class="pre">get_index_from_grid</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">row</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">col</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputRadioGroup.get_index_from_grid"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadioGroup.get_index_from_grid" title="Link to this definition"></a></dt>
 952 | <dd><p>Convert grid position to linear radio index.
 953 | Only works for site groups; returns None for other group types.</p>
 954 | <dl class="field-list simple">
 955 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 956 | <dd class="field-odd"><ul class="simple">
 957 | <li><p><strong>row</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><em>int</em></a>) – Row in grid (0-based)</p></li>
 958 | <li><p><strong>col</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><em>int</em></a>) – Column in grid (0-based)</p></li>
 959 | </ul>
 960 | </dd>
 961 | <dt class="field-even">Returns<span class="colon">:</span></dt>
 962 | <dd class="field-even"><p>Linear index if position exists within grid bounds, None otherwise</p>
 963 | </dd>
 964 | <dt class="field-odd">Return type<span class="colon">:</span></dt>
 965 | <dd class="field-odd"><p><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)">int</a> | None</p>
 966 | </dd>
 967 | </dl>
 968 | </dd></dl>
 969 | 
 970 | <dl class="py method">
 971 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadioGroup.navigate_left">
 972 | <span class="sig-name descname"><span class="pre">navigate_left</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">current_radio_index</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputRadioGroup.navigate_left"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadioGroup.navigate_left" title="Link to this definition"></a></dt>
 973 | <dd><p>Navigate left within this group’s layout.</p>
 974 | <dl class="field-list simple">
 975 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 976 | <dd class="field-odd"><p><strong>current_radio_index</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><em>int</em></a>) – Current position in radios list</p>
 977 | </dd>
 978 | <dt class="field-even">Returns<span class="colon">:</span></dt>
 979 | <dd class="field-even"><p>New radio index if navigation successful, None if should exit group</p>
 980 | </dd>
 981 | <dt class="field-odd">Return type<span class="colon">:</span></dt>
 982 | <dd class="field-odd"><p><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)">int</a> | None</p>
 983 | </dd>
 984 | </dl>
 985 | </dd></dl>
 986 | 
 987 | <dl class="py method">
 988 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadioGroup.navigate_right">
 989 | <span class="sig-name descname"><span class="pre">navigate_right</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">current_radio_index</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputRadioGroup.navigate_right"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadioGroup.navigate_right" title="Link to this definition"></a></dt>
 990 | <dd><p>Navigate right within this group’s layout.</p>
 991 | <dl class="field-list simple">
 992 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 993 | <dd class="field-odd"><p><strong>current_radio_index</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><em>int</em></a>) – Current position in radios list</p>
 994 | </dd>
 995 | <dt class="field-even">Returns<span class="colon">:</span></dt>
 996 | <dd class="field-even"><p>New radio index if navigation successful, None if should exit group</p>
 997 | </dd>
 998 | <dt class="field-odd">Return type<span class="colon">:</span></dt>
 999 | <dd class="field-odd"><p><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)">int</a> | None</p>
1000 | </dd>
1001 | </dl>
1002 | </dd></dl>
1003 | 
1004 | <dl class="py method">
1005 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadioGroup.navigate_to_row">
1006 | <span class="sig-name descname"><span class="pre">navigate_to_row</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">target_row</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">from_column</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputRadioGroup.navigate_to_row"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadioGroup.navigate_to_row" title="Link to this definition"></a></dt>
1007 | <dd><p>Navigate to a specific row from an external column position.</p>
1008 | <dl class="field-list simple">
1009 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
1010 | <dd class="field-odd"><ul class="simple">
1011 | <li><p><strong>target_row</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><em>int</em></a>) – </p></li>
1012 | <li><p><strong>from_column</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><em>int</em></a>) – </p></li>
1013 | </ul>
1014 | </dd>
1015 | <dt class="field-even">Return type<span class="colon">:</span></dt>
1016 | <dd class="field-even"><p><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)">int</a> | None</p>
1017 | </dd>
1018 | </dl>
1019 | </dd></dl>
1020 | 
1021 | <dl class="py method">
1022 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadioGroup.get_row_from_index">
1023 | <span class="sig-name descname"><span class="pre">get_row_from_index</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">radio_index</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputRadioGroup.get_row_from_index"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadioGroup.get_row_from_index" title="Link to this definition"></a></dt>
1024 | <dd><p>Get the row number for navigation between groups.</p>
1025 | <dl class="field-list simple">
1026 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
1027 | <dd class="field-odd"><p><strong>radio_index</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><em>int</em></a>) – Linear index in radios list</p>
1028 | </dd>
1029 | <dt class="field-even">Returns<span class="colon">:</span></dt>
1030 | <dd class="field-even"><p>Row number for inter-group navigation</p>
1031 | </dd>
1032 | <dt class="field-odd">Return type<span class="colon">:</span></dt>
1033 | <dd class="field-odd"><p><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)">int</a></p>
1034 | </dd>
1035 | </dl>
1036 | </dd></dl>
1037 | 
1038 | </dd></dl>
1039 | 
1040 | <dl class="py class">
1041 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadioState">
1042 | <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">InputRadioState</span></span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputRadioState"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadioState" title="Link to this definition"></a></dt>
1043 | <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.NamedTuple" title="(in Python v3.14)"><code class="xref py py-class docutils literal notranslate"><span class="pre">NamedTuple</span></code></a></p>
1044 | <p>InputRadioState(label, value)</p>
1045 | <p>Create new instance of InputRadioState(label, value)</p>
1046 | <dl class="py attribute">
1047 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadioState.label">
1048 | <span class="sig-name descname"><span class="pre">label</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadioState.label" title="Link to this definition"></a></dt>
1049 | <dd><p>Alias for field number 0</p>
1050 | </dd></dl>
1051 | 
1052 | <dl class="py attribute">
1053 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadioState.value">
1054 | <span class="sig-name descname"><span class="pre">value</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><span class="pre">str</span></a></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadioState.value" title="Link to this definition"></a></dt>
1055 | <dd><p>Alias for field number 1</p>
1056 | </dd></dl>
1057 | 
1058 | <dl class="py method">
1059 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadioState.__new__">
1060 | <em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">__new__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">_cls</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">label</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">value</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadioState.__new__" title="Link to this definition"></a></dt>
1061 | <dd><p>Create new instance of InputRadioState(label, value)</p>
1062 | <dl class="field-list simple">
1063 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
1064 | <dd class="field-odd"><ul class="simple">
1065 | <li><p><strong>label</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><em>str</em></a>) – </p></li>
1066 | <li><p><strong>value</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><em>str</em></a>) – </p></li>
1067 | </ul>
1068 | </dd>
1069 | </dl>
1070 | </dd></dl>
1071 | 
1072 | </dd></dl>
1073 | 
1074 | <dl class="py class">
1075 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputText">
1076 | <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">InputText</span></span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputText"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputText" title="Link to this definition"></a></dt>
1077 | <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.14)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p>
1078 | <p>A reusable text input field with cursor management, rendering, and input handling.
1079 | Consolidates the common text input functionality used across the application.</p>
1080 | <p>Initialize the text input field.</p>
1081 | <dl class="field-list simple">
1082 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
1083 | <dd class="field-odd"><ul class="simple">
1084 | <li><p><strong>initial_value</strong> – Starting text value</p></li>
1085 | <li><p><strong>max_length</strong> – Maximum allowed text length (None for unlimited)</p></li>
1086 | <li><p><strong>label</strong> – Display label for the field</p></li>
1087 | </ul>
1088 | </dd>
1089 | </dl>
1090 | <dl class="py method">
1091 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputText.__init__">
1092 | <span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">initial_value</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_length</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">label</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputText.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputText.__init__" title="Link to this definition"></a></dt>
1093 | <dd><p>Initialize the text input field.</p>
1094 | <dl class="field-list simple">
1095 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
1096 | <dd class="field-odd"><ul class="simple">
1097 | <li><p><strong>initial_value</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><em>str</em></a>) – Starting text value</p></li>
1098 | <li><p><strong>max_length</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><em>int</em></a><em> | </em><em>None</em>) – Maximum allowed text length (None for unlimited)</p></li>
1099 | <li><p><strong>label</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><em>str</em></a>) – Display label for the field</p></li>
1100 | </ul>
1101 | </dd>
1102 | </dl>
1103 | </dd></dl>
1104 | 
1105 | <dl class="py method">
1106 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputText.backspace">
1107 | <span class="sig-name descname"><span class="pre">backspace</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputText.backspace"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputText.backspace" title="Link to this definition"></a></dt>
1108 | <dd><p>Remove the character before the cursor.</p>
1109 | <dl class="field-list simple">
1110 | <dt class="field-odd">Return type<span class="colon">:</span></dt>
1111 | <dd class="field-odd"><p>None</p>
1112 | </dd>
1113 | </dl>
1114 | </dd></dl>
1115 | 
1116 | <dl class="py method">
1117 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputText.clear">
1118 | <span class="sig-name descname"><span class="pre">clear</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputText.clear"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputText.clear" title="Link to this definition"></a></dt>
1119 | <dd><p>Clear all text and reset cursor.</p>
1120 | <dl class="field-list simple">
1121 | <dt class="field-odd">Return type<span class="colon">:</span></dt>
1122 | <dd class="field-odd"><p>None</p>
1123 | </dd>
1124 | </dl>
1125 | </dd></dl>
1126 | 
1127 | <dl class="py method">
1128 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputText.delete">
1129 | <span class="sig-name descname"><span class="pre">delete</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputText.delete"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputText.delete" title="Link to this definition"></a></dt>
1130 | <dd><p>Remove the character at the cursor position.</p>
1131 | <dl class="field-list simple">
1132 | <dt class="field-odd">Return type<span class="colon">:</span></dt>
1133 | <dd class="field-odd"><p>None</p>
1134 | </dd>
1135 | </dl>
1136 | </dd></dl>
1137 | 
1138 | <dl class="py method">
1139 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputText.end">
1140 | <span class="sig-name descname"><span class="pre">end</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputText.end"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputText.end" title="Link to this definition"></a></dt>
1141 | <dd><p>Move cursor to the end of the text.</p>
1142 | <dl class="field-list simple">
1143 | <dt class="field-odd">Return type<span class="colon">:</span></dt>
1144 | <dd class="field-odd"><p>None</p>
1145 | </dd>
1146 | </dl>
1147 | </dd></dl>
1148 | 
1149 | <dl class="py method">
1150 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputText.handle_input">
1151 | <span class="sig-name descname"><span class="pre">handle_input</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputText.handle_input"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputText.handle_input" title="Link to this definition"></a></dt>
1152 | <dd><p>Handle keyboard input for the text field.</p>
1153 | <dl class="field-list simple">
1154 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
1155 | <dd class="field-odd"><p><strong>key</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><em>int</em></a>) – The curses key code</p>
1156 | </dd>
1157 | <dt class="field-even">Returns<span class="colon">:</span></dt>
1158 | <dd class="field-even"><p>True if the input was handled, False otherwise</p>
1159 | </dd>
1160 | <dt class="field-odd">Return type<span class="colon">:</span></dt>
1161 | <dd class="field-odd"><p><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)">bool</a></p>
1162 | </dd>
1163 | </dl>
1164 | </dd></dl>
1165 | 
1166 | <dl class="py method">
1167 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputText.home">
1168 | <span class="sig-name descname"><span class="pre">home</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputText.home"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputText.home" title="Link to this definition"></a></dt>
1169 | <dd><p>Move cursor to the beginning of the text.</p>
1170 | <dl class="field-list simple">
1171 | <dt class="field-odd">Return type<span class="colon">:</span></dt>
1172 | <dd class="field-odd"><p>None</p>
1173 | </dd>
1174 | </dl>
1175 | </dd></dl>
1176 | 
1177 | <dl class="py method">
1178 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputText.insert_char">
1179 | <span class="sig-name descname"><span class="pre">insert_char</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">char</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputText.insert_char"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputText.insert_char" title="Link to this definition"></a></dt>
1180 | <dd><p>Insert a character at the current cursor position.</p>
1181 | <dl class="field-list simple">
1182 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
1183 | <dd class="field-odd"><p><strong>char</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><em>str</em></a>) – </p>
1184 | </dd>
1185 | <dt class="field-even">Return type<span class="colon">:</span></dt>
1186 | <dd class="field-even"><p>None</p>
1187 | </dd>
1188 | </dl>
1189 | </dd></dl>
1190 | 
1191 | <dl class="py method">
1192 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputText.is_empty">
1193 | <span class="sig-name descname"><span class="pre">is_empty</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputText.is_empty"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputText.is_empty" title="Link to this definition"></a></dt>
1194 | <dd><p>Check if the text field is empty.</p>
1195 | <dl class="field-list simple">
1196 | <dt class="field-odd">Return type<span class="colon">:</span></dt>
1197 | <dd class="field-odd"><p><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)">bool</a></p>
1198 | </dd>
1199 | </dl>
1200 | </dd></dl>
1201 | 
1202 | <dl class="py method">
1203 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputText.move_cursor_left">
1204 | <span class="sig-name descname"><span class="pre">move_cursor_left</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputText.move_cursor_left"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputText.move_cursor_left" title="Link to this definition"></a></dt>
1205 | <dd><p>Move cursor one position to the left.</p>
1206 | <dl class="field-list simple">
1207 | <dt class="field-odd">Return type<span class="colon">:</span></dt>
1208 | <dd class="field-odd"><p>None</p>
1209 | </dd>
1210 | </dl>
1211 | </dd></dl>
1212 | 
1213 | <dl class="py method">
1214 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputText.move_cursor_right">
1215 | <span class="sig-name descname"><span class="pre">move_cursor_right</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputText.move_cursor_right"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputText.move_cursor_right" title="Link to this definition"></a></dt>
1216 | <dd><p>Move cursor one position to the right.</p>
1217 | <dl class="field-list simple">
1218 | <dt class="field-odd">Return type<span class="colon">:</span></dt>
1219 | <dd class="field-odd"><p>None</p>
1220 | </dd>
1221 | </dl>
1222 | </dd></dl>
1223 | 
1224 | <dl class="py method">
1225 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputText.render">
1226 | <span class="sig-name descname"><span class="pre">render</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stdscr</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">y</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">x</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">width</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">focused</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">style</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputText.render"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputText.render" title="Link to this definition"></a></dt>
1227 | <dd><p>Render the text input field with box, text, and cursor.</p>
1228 | <dl class="field-list simple">
1229 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
1230 | <dd class="field-odd"><ul class="simple">
1231 | <li><p><strong>stdscr</strong> (<em>window</em>) – The curses window</p></li>
1232 | <li><p><strong>y</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><em>int</em></a>) – Y position to render at</p></li>
1233 | <li><p><strong>x</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><em>int</em></a>) – X position to render at</p></li>
1234 | <li><p><strong>width</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><em>int</em></a>) – Total width of the input box</p></li>
1235 | <li><p><strong>focused</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.14)"><em>bool</em></a>) – Whether this field has focus (shows cursor)</p></li>
1236 | <li><p><strong>style</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><em>int</em></a><em> | </em><em>None</em>) – Curses style attributes to apply</p></li>
1237 | </ul>
1238 | </dd>
1239 | <dt class="field-even">Return type<span class="colon">:</span></dt>
1240 | <dd class="field-even"><p>None</p>
1241 | </dd>
1242 | </dl>
1243 | </dd></dl>
1244 | 
1245 | <dl class="py method">
1246 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputText.set_value">
1247 | <span class="sig-name descname"><span class="pre">set_value</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">new_value</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputText.set_value"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputText.set_value" title="Link to this definition"></a></dt>
1248 | <dd><p>Set the text value and adjust cursor if needed.</p>
1249 | <dl class="field-list simple">
1250 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
1251 | <dd class="field-odd"><p><strong>new_value</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.14)"><em>str</em></a>) – </p>
1252 | </dd>
1253 | <dt class="field-even">Return type<span class="colon">:</span></dt>
1254 | <dd class="field-even"><p>None</p>
1255 | </dd>
1256 | </dl>
1257 | </dd></dl>
1258 | 
1259 | </dd></dl>
1260 | 
1261 | <dl class="py class">
1262 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.ViewBounds">
1263 | <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">ViewBounds</span></span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#ViewBounds"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.ViewBounds" title="Link to this definition"></a></dt>
1264 | <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.14)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p>
1265 | <dl class="py method">
1266 | <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.ViewBounds.__init__">
1267 | <span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">y</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">width</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">height</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#ViewBounds.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.ViewBounds.__init__" title="Link to this definition"></a></dt>
1268 | <dd><dl class="field-list simple">
1269 | <dt class="field-odd">Parameters<span class="colon">:</span></dt>
1270 | <dd class="field-odd"><ul class="simple">
1271 | <li><p><strong>x</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><em>int</em></a>) – </p></li>
1272 | <li><p><strong>y</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><em>int</em></a>) – </p></li>
1273 | <li><p><strong>width</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><em>int</em></a>) – </p></li>
1274 | <li><p><strong>height</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.14)"><em>int</em></a>) – </p></li>
1275 | </ul>
1276 | </dd>
1277 | </dl>
1278 | </dd></dl>
1279 | 
1280 | </dd></dl>
1281 | 
1282 | </section>
1283 | <section id="module-mcp_server_webcrawl.interactive">
1284 | <span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-mcp_server_webcrawl.interactive" title="Link to this heading"></a></h2>
1285 | </section>
1286 | </section>
1287 | 
1288 | 
1289 |            </div>
1290 |           </div>
1291 |           <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
1292 |         <a href="mcp_server_webcrawl.extras.html" class="btn btn-neutral float-left" title="mcp_server_webcrawl.extras package" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
1293 |         <a href="mcp_server_webcrawl.models.html" class="btn btn-neutral float-right" title="mcp_server_webcrawl.models package" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
1294 |     </div>
1295 | 
1296 |   <hr/>
1297 | 
1298 |   <div role="contentinfo">
1299 |     <p>&#169; Copyright 2025, pragmar.</p>
1300 |   </div>
1301 | 
1302 |   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
1303 |     <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
1304 |     provided by <a href="https://readthedocs.org">Read the Docs</a>.
1305 |    
1306 | 
1307 | </footer>
1308 |         </div>
1309 |       </div>
1310 |     </section>
1311 |   </div>
1312 |   <script>
1313 |       jQuery(function () {
1314 |           SphinxRtdTheme.Navigation.enable(true);
1315 |       });
1316 |   </script> 
1317 | 
1318 | </body>
1319 | </html>
```
Page 32/35FirstPrevNextLast