{
	"name": "pi-scraper",
	"version": "0.12.0",
	"description": "Crawl, map, and structured extraction for Pi — scraper-first, Pi-native, and local-first.",
	"keywords": [
		"crawler",
		"firecrawl",
		"pi",
		"pi-package",
		"scraping",
		"structured-extraction",
		"web-scraping"
	],
	"homepage": "https://github.com/brandonkramer/pi-scraper#readme",
	"bugs": {
		"url": "https://github.com/brandonkramer/pi-scraper/issues"
	},
	"license": "MIT",
	"repository": {
		"type": "git",
		"url": "https://github.com/brandonkramer/pi-scraper"
	},
	"files": [
		"src",
		"!src/**/*.test.ts",
		"!src/**/__tests__/**",
		"skills",
		"verticals",
		"README.md",
		"LICENSE"
	],
	"type": "module",
	"scripts": {
		"prepare": "lefthook install",
		"typecheck": "tsc --noEmit",
		"test": "vitest run",
		"test:tools": "vitest run src/tools/__tests__/tools-smoke.test.ts --reporter=verbose",
		"test:selection": "vitest run src/tools/__tests__/tool-contract.test.ts src/tools/__tests__/tool-selection-fixtures.test.ts eval/tool-selection/score.test.mjs --reporter=verbose",
		"eval:selection": "node eval/tool-selection/run.mjs",
		"eval:selection:pi": "PI_TOOL_SELECTION_EVAL_COMMAND='node eval/tool-selection/adapters/pi.mjs' node eval/tool-selection/run.mjs",
		"eval:selection:contract": "PI_TOOL_SELECTION_NO_CUES=1 PI_TOOL_SELECTION_EVAL_COMMAND='node eval/tool-selection/adapters/pi.mjs' node eval/tool-selection/run.mjs",
		"smoke:live": "vitest run src/tools/__tests__/tools-smoke.live.test.ts --reporter=verbose",
		"smoke:browser": "vitest run src/browser/__tests__/browser-smoke.test.ts --reporter=verbose",
		"audit:strict": "npm audit --omit=dev --audit-level=high",
		"lint:workflows": "github-actionlint .github/workflows/*.yml",
		"check": "npm run typecheck && npm test",
		"prepublishOnly": "npm run typecheck"
	},
	"dependencies": {
		"@earendil-works/pi-tui": "^0.79.4",
		"@mozilla/readability": "^0.6.0",
		"cloakbrowser": "^0.3.31",
		"css-select": "^7.0.0",
		"dom-serializer": "^3.1.1",
		"domhandler": "^6.0.1",
		"domutils": "^4.0.2",
		"htmlparser2": "^12.0.0",
		"impit": "^0.14.1",
		"linkedom": "^0.18.12",
		"playwright-core": "^1.60.0",
		"robots-parser": "^3.0.1",
		"socks": "^2.8.9",
		"turndown": "^7.2.4",
		"turndown-plugin-gfm": "^1.0.2",
		"typebox": "^1.2.10",
		"undici": "^8.4.1",
		"yaml": "^2.9.0"
	},
	"devDependencies": {
		"@earendil-works/pi-coding-agent": "^0.79.4",
		"@types/node": "latest",
		"@types/turndown": "^5.0.6",
		"cheerio": "^1.2.0",
		"defuddle": "^0.18.1",
		"github-actionlint": "^1.7.12",
		"html-to-text": "^10.0.0",
		"lefthook": "^2.1.9",
		"node-html-markdown": "^2.0.0",
		"oxfmt": "^0.54.0",
		"oxlint": "^1.63.0",
		"oxlint-tsgolint": "^0.23.0",
		"typescript": "latest",
		"vitest": "^4.1.8"
	},
	"peerDependencies": {
		"@earendil-works/pi-ai": "^0.79.4"
	},
	"peerDependenciesMeta": {
		"@earendil-works/pi-ai": {
			"optional": true
		}
	},
	"optionalDependencies": {
		"pdfjs-dist": "^6.0.227",
		"playwright": "^1.60.0"
	},
	"overrides": {
		"fast-xml-builder": "^1.1.7"
	},
	"engines": {
		"node": ">=22.19.0",
		"pi": ">=0.79.0"
	},
	"pi": {
		"extensions": [
			"./src/index.ts"
		],
		"skills": [
			"./skills"
		]
	}
}
