Awesome-omni-skill add-search-engine

Integrate a new LLM search provider into Mentha

install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data-ai/add-search-engine" ~/.claude/skills/diegosouzapw-awesome-omni-skill-add-search-engine && rm -rf "$T"
manifest: skills/data-ai/add-search-engine/SKILL.md
source content

Add Search Engine Skill

When the user requests to add a new AI search engine (e.g., "Integrate Claude 3", "Add Anthropic"), follow these steps:

Steps

  1. Create Provider File

    • Create
      src/infrastructure/search/{provider-name}.provider.ts
    • Import the
      ISearchProvider
      interface from
      src/domain/search/types.ts
    • Implement all required methods
  2. Provider Template

    import { ISearchProvider, SearchOptions, SearchResult } from '../../domain/search/types.js';
    import { env } from '../../config/index.js';
    
    export class {ProviderName}Provider implements ISearchProvider {
      private readonly apiKey: string;
    
      constructor() {
        this.apiKey = env.{PROVIDER}_API_KEY ?? '';
        if (!this.apiKey) {
          throw new Error('{PROVIDER}_API_KEY is required');
        }
      }
    
      async search(query: string, options?: SearchOptions): Promise<SearchResult> {
        // Implementation
      }
    }
    
  3. Update Factory

    • Edit
      src/infrastructure/search/factory.ts
    • Add the new provider to the
      createProvider
      function
    • Add the provider enum value
  4. Update Environment

    • Add
      {PROVIDER}_API_KEY
      to
      .env.example
    • Add to the env schema in
      src/config/env.ts
  5. Update Schema

    • Add provider to the engines enum in controller schemas
  6. Test

    • Run
      npm run typecheck
      to verify compilation
    • Create a basic integration test

Validation Checklist

  • Provider implements
    ISearchProvider
    interface
  • Environment variable documented in
    .env.example
  • Factory updated with new provider
  • Controller enum includes new provider
  • No TypeScript errors