{
  "$schema": "https://json.schemastore.org/package.json",
  "name": "@coda/search",
  "description": "Search engine primitives for hybrid (keyword + vector + glossary) search with pluggable stages, signals, and score fusion",
  "version": "0.1.0",
  "private": true,
  "keywords": [
    "search",
    "hybrid-search",
    "bm25",
    "hnsw",
    "vector-search",
    "keyword-search",
    "score-fusion",
    "rrf",
    "glossary",
    "ranking"
  ],
  "repository": {
    "type": "git",
    "url": "https://github.com/theorchard/ows-coda.git",
    "directory": "packages/search"
  },
  "type": "module",
  "sideEffects": false,
  "engines": {
    "node": ">=24.0.0"
  },
  "exports": {
    ".": {
      "source": "./src/index.ts",
      "types": "./dist/index.d.mts",
      "default": "./dist/index.mjs"
    },
    "./engine": {
      "source": "./src/engine.ts",
      "types": "./dist/engine.d.mts",
      "default": "./dist/engine.mjs"
    },
    "./events": {
      "source": "./src/events.ts",
      "types": "./dist/events.d.mts",
      "default": "./dist/events.mjs"
    },
    "./snapshot": {
      "source": "./src/snapshot.ts",
      "types": "./dist/snapshot.d.mts",
      "default": "./dist/snapshot.mjs"
    }
  },
  "files": [
    "dist"
  ],
  "scripts": {
    "build": "tsdown",
    "dev": "tsdown --watch",
    "typecheck": "tsc --noEmit",
    "lint": "eslint src/ --max-warnings 0",
    "format": "prettier --write --log-level warn src/",
    "format:check": "prettier --check src/",
    "test": "pnpm test:unit --coverage",
    "test:unit": "vitest run --passWithNoTests",
    "clean": "rm -rf dist coverage"
  },
  "dependencies": {
    "@coda/common": "workspace:*",
    "@coda/data-structures": "workspace:*",
    "lru-cache": "^11.0.0",
    "snowball-stemmers": "^0.6.0",
    "stopwords-iso": "^1.1.0"
  },
  "devDependencies": {
    "@types/node": "^24.0.0",
    "eslint": "^10.0.3",
    "minisearch": "^7.2.0",
    "tsdown": "^0.21.7",
    "typescript": "~5.9.3"
  }
}
