Seekmodo for MediaWiki

Extension v1.0.1 · GPL-2.0-or-later · seekmodo.com/plugins/mediawiki

Seekmodo subscription required for AI search. The extension package installs at no charge. Pair a Knowledge base tenant for ranked Special:Search, universal suggestions, and click-trained relevance. Native MediaWiki search remains the permanent fallback.

Install

# Install Seekmodo for MediaWiki

## Requirements

- MediaWiki **1.39+** (1.41+ recommended)
- PHP **8.0+** with `ext-json`, `ext-hash`, `ext-sodium`
- A Seekmodo account ([seekmodo.com](https://seekmodo.com)) — choose the **Knowledge base** vertical at signup

## Steps

1. Extract the release zip so the extension lives at:

   ```
   wikiroot/extensions/Seekmodo/
   ```

2. Add to `LocalSettings.php`:

   ```php
   wfLoadExtension( 'Seekmodo' );
   // Optional:
   // $wgSeekmodoIndexableNamespaces = [ NS_MAIN, NS_HELP ];
   // $wgSeekmodoTypeaheadUiEnabled = true;
   ```

3. Run:

   ```bash
   php maintenance/update.php
   ```

4. As a sysop, open **Special:Seekmodo** → **Connect to Seekmodo**.

5. After pairing, click **Queue full reindex** (or run):

   ```bash
   php extensions/Seekmodo/maintenance/SeekmodoIndex.php --full
   php maintenance/runJobs.php
   ```

6. On [admin.seekmodo.com](https://admin.seekmodo.com) set mode to `shadow`, then `active` / `enforce` when ready.

## Modes

| Mode | Behaviour |
|------|-----------|
| `off` | Native MediaWiki / CirrusSearch only |
| `shadow` | Gateway called for telemetry; native results shown |
| `active` | Auto-promote shadow ↔ enforce from health |
| `enforce` | Seekmodo-ranked Special:Search; native/Enhanced Native on failure |

## LTR

This connector emits `search` (via gateway), linked `click`, and `impression` events with `search_event_id`. Knowledge-base tenants use binary click labels (`accept_binary_labels=1`) — no cart/purchase events.

Configuration

# Configuration

## LocalSettings.php

| Variable | Default | Meaning |
|----------|---------|---------|
| `$wgSeekmodoGatewayUrl` | `https://mcp.seekmodo.com` | Gateway base (pairing JWT may override) |
| `$wgSeekmodoConnectBaseUrl` | `https://seekmodo.com` | Pairing redirect host |
| `$wgSeekmodoIndexableNamespaces` | `[0]` (NS_MAIN) | Namespaces to index |
| `$wgSeekmodoTypeaheadUiEnabled` | `true` | Load search-suggestions UI |
| `$wgSeekmodoSuggestLegacy` | `false` | Use flat `/v1/typeahead` instead of `<seekmodo-suggest>` |

## Stored after pairing (DB `seekmodo_config`)

Mirrored from `tenant.snapshot` every few minutes: `mode`, `auto_promote`, `storefront_host`, `fallback_bundle` (pins/synonyms/rescue), `redirect_rules`, `banner_rules`, `ask_ai_enabled`, branding.

Mode changes are authoritative on admin.seekmodo.com — Special:Seekmodo is read-only for mode.

Support

Email support@seekmodo.com.