{
"name": "surf-agent-skill",
  "version": "7.0.0",
  "description": "Autonomous web research for AI coding agents. surf-ai runs the entire loop inside the CLI — an LLM (DeepSeek v4 Pro via OpenRouter) plans the queries, they all run concurrently across Tavily + Parallel + Brave with automatic key rotation and provider fallback, the LLM analyzes what is still open, launches more searches, and writes the final cited answer in the shape the calling agent asked for. Two modes: surf-search-normal (one round, fitted inside the agent's bash timeout) and surf-search-unlimit (as many rounds as the question needs). Also ships surf-plan-agent-skill (research-driven execution planning) and surf-free-agent-skill (free keyless search via Wikipedia + DuckDuckGo), plus `surf` interactive setup with live key validation and a Node library.",
  "type": "module",
  "main": "./src/index.mjs",
  "exports": {
    ".": "./src/index.mjs",
    "./ai": "./src/lib/ai/orchestrator.mjs",
    "./plan": "./src/plan/plan-file.mjs",
    "./validators": "./src/validators/index.mjs",
    "./package.json": "./package.json"
  },
  "bin": {
    "surf": "./bin/surf.mjs",
    "surf-research-skill": "./bin/surf-research-skill.mjs",
    "surf-search-normal": "./bin/surf-search-normal.mjs",
    "surf-search-unlimit": "./bin/surf-search-unlimit.mjs",
    "surf-plan-skill": "./bin/surf-plan-skill.mjs",
    "surf-free-skill": "./bin/surf-free-skill.mjs"
  },
  "files": [
    "bin/",
    "src/",
    "skills/",
    "references/",
    "SKILL.md",
    "README.md",
    "CHANGELOG.md",
    "LICENSE",
    "logo.png"
  ],
  "scripts": {
    "postinstall": "node ./src/install/postinstall.mjs || true",
    "preuninstall": "node ./src/install/preuninstall.mjs || true",
    "build": "npm run test:syntax",
    "predev": "npm run build",
    "dev": "node ./bin/surf.mjs",
    "predev:search": "npm run build",
    "dev:search": "node ./bin/surf-research-skill.mjs",
    "predev:plan": "npm run build",
    "dev:plan": "node ./bin/surf-plan-skill.mjs",
    "predev:free": "npm run build",
    "dev:free": "node ./bin/surf-free-skill.mjs",
    "predev:ai": "npm run build",
    "dev:ai": "node ./bin/surf-search-normal.mjs",
    "predev:ai-unlimit": "npm run build",
    "dev:ai-unlimit": "node ./bin/surf-search-unlimit.mjs",
    "predev:install": "npm run build",
    "dev:install": "SURF_DEV=1 node ./src/install/postinstall.mjs",
    "dev:uninstall": "SURF_DEV=1 node ./src/install/preuninstall.mjs",
    "test": "npm run test:syntax && node ./test/smoke.mjs",
    "test:syntax": "for f in bin/*.mjs src/index.mjs src/env.mjs src/install/*.mjs src/lib/*.mjs src/lib/ai/*.mjs src/lib/providers/*.mjs src/lib/api/*.mjs src/plan/*.mjs src/validators/*.mjs; do node --check \"$f\" || exit 1; done && echo syntax-ok"
  },
  "engines": {
    "node": ">=18"
  },
  "keywords": [
    "agent-skill",
    "tavily",
    "parallel-ai",
    "brave-search",
    "web-search",
    "connector",
    "planning",
    "spec-driven",
    "research-driven",
    "execution-plan",
    "claude-code",
    "copilot-cli",
    "pi-coding-agent",
    "anthropic-skill",
    "fallback",
    "multi-provider",
    "research"
  ],
  "repository": {
    "type": "git",
    "url": "git+https://github.com/frederico-kluser/surf-agent-skill.git"
  },
  "homepage": "https://github.com/frederico-kluser/surf-agent-skill#readme",
  "bugs": {
    "url": "https://github.com/frederico-kluser/surf-agent-skill/issues"
  },
  "license": "MIT",
  "author": "frederico-kluser"
}
