Skip to content

Add web search microservice with multi-provider aggregation#2

Merged
konard merged 5 commits intomainfrom
issue-1-f5075fecd37d
Jan 26, 2026
Merged

Add web search microservice with multi-provider aggregation#2
konard merged 5 commits intomainfrom
issue-1-f5075fecd37d

Conversation

@konard
Copy link
Contributor

@konard konard commented Jan 26, 2026

Summary

  • Add multi-provider web search aggregation (Google, DuckDuckGo, Bing)
  • Implement result merger with RRF, weighted, and interleave strategies
  • Add browser-commander integration for direct browser search testing
  • Create REST API microservice with Express.js (JavaScript) and Axum (Rust)
  • Add CLI tool for command-line usage

Details

JavaScript Library

  • Multi-provider search with API-first design and scraping fallback
  • Result merger with three strategies: Reciprocal Rank Fusion (RRF), weighted scoring, interleaving
  • URL normalization for proper deduplication across providers
  • Express.js REST API server with comprehensive endpoints
  • CLI tool (web-search) for command-line usage
  • browser-commander integration for browser-based search testing

Rust Library

  • Async search providers using reqwest and scraper
  • Same merge strategies as JavaScript implementation
  • Axum REST API server
  • CLI with clap argument parsing
  • Cross-platform support (Linux, macOS, Windows)

REST API Endpoints

  • GET /search?q=<query> - Search all providers
  • POST /search - Search with options in body
  • GET /search/:provider?q=<query> - Search single provider
  • GET /providers - List available providers
  • GET /health - Health check

CI/CD

  • Added rust.yml workflow for Rust CI (lint, test matrix, build)

Test plan

  • All 22 unit tests passing
  • Linting passes with zero warnings
  • Rust code compiles and passes clippy
  • TypeScript definitions complete

Fixes #1

🤖 Generated with Claude Code

Adding CLAUDE.md with task information for AI processing.
This file will be removed when the task is complete.

Issue: #1
@konard konard self-assigned this Jan 26, 2026
Implement a complete web search microservice prototype:

JavaScript Library:
- Multi-provider search (Google, DuckDuckGo, Bing)
- Result merger with RRF, weighted, interleave strategies
- URL normalization for deduplication
- API-first design with scraping fallback
- browser-commander integration for browser testing
- Express.js REST API server
- CLI tool for command-line usage

Rust Library:
- Async search providers using reqwest and scraper
- Same merge strategies as JavaScript
- Axum REST API server
- CLI with clap

REST API Endpoints:
- GET /search?q=<query> - Search all providers
- POST /search - Search with options
- GET /search/:provider?q=<query> - Single provider
- GET /providers - List providers
- GET /health - Health check

Also adds:
- rust.yml CI workflow for Rust
- TypeScript definitions
- Unit tests (22 tests passing)

Closes #1

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@konard konard changed the title [WIP] Make web search microservice prototype Add web search microservice with multi-provider aggregation Jan 26, 2026
@konard konard marked this pull request as ready for review January 26, 2026 12:43
konard and others added 3 commits January 26, 2026 13:44
Update PACKAGE_NAME constant in all release scripts to match
the package.json name (@link-assistant/web-search).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix TypeScript definitions formatting (src/index.d.ts)
- Add --allow-env to Deno test command for process.env access
- Add rust/target to .prettierignore to skip build artifacts

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@konard
Copy link
Contributor Author

konard commented Jan 26, 2026

🤖 Solution Draft Log

This log file contains the complete execution trace of the AI solution draft process.

💰 Cost estimation:

  • Public pricing estimate: $12.831142 USD
  • Calculated by Anthropic: $9.558967 USD
  • Difference: $-3.272176 (-25.50%)
    📎 Log file uploaded as Gist (1518KB)
    🔗 View complete solution draft log

Now working session is ended, feel free to review and add any feedback on the solution draft.

@konard konard merged commit 5316944 into main Jan 26, 2026
21 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Make web search microservice prototype

1 participant