UNPKG

pi-lens

Version:

Real-time code feedback for pi — LSP, linters, formatters, type-checking, structural analysis & booboo

173 lines (172 loc) • 8.72 kB
{ "name": "pi-lens", "version": "4.4.0", "type": "module", "description": "Real-time code feedback for pi — LSP, linters, formatters, type-checking, structural analysis & booboo", "repository": { "type": "git", "url": "git+https://github.com/apmantza/pi-lens.git" }, "main": "./dist/index.js", "bin": { "pi-lens": "dist/mcp/cli.js", "pi-lens-mcp": "dist/mcp/server.js", "pi-lens-analyze": "dist/mcp/analyze-cli.js" }, "scripts": { "build": "tsc --project tsconfig.build.json", "build:dist": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && node scripts/build-dist-tsc.mjs tsconfig.dist.json && npm run bundle:dist", "bundle:dist": "node scripts/bundle-dist.mjs", "prepare": "npm run build:dist && node scripts/download-grammars.js --core --dest grammars && node scripts/setup-git-hooks.mjs && node scripts/stamp-package-lock.mjs && node scripts/warm-loader-cache.mjs", "prepack": "node scripts/strip-dev-deps-for-pack.mjs --strip", "postpack": "node scripts/strip-dev-deps-for-pack.mjs --restore", "lint": "tsc --project tsconfig.json && npm run lint:js && npm run lint:js:tests", "lint:js": "oxlint --deny-warnings --import-plugin --promise-plugin -D block-scoped-var -D import/default -D import/namespace -D import/no-absolute-path -D import/no-empty-named-blocks -D import/no-named-as-default -D import/no-self-import -D no-extend-native -D no-extra-bind -D no-implied-eval -D no-new -D no-unexpected-multiline -D no-useless-constructor -D oxc/approx-constant -D oxc/misrefactored-assign-op -D oxc/no-accumulating-spread -D oxc/no-async-endpoint-handlers -D oxc/no-this-in-exported-function -D promise/no-callback-in-promise -D promise/no-multiple-resolved -D promise/no-new-statics -D promise/valid-params -D typescript/no-confusing-non-null-assertion -D typescript/no-extraneous-class -D typescript/no-unnecessary-type-constraint -D typescript/no-unsafe-enum-comparison -D unicorn/no-accessor-recursion -D unicorn/no-array-fill-with-reference-type -D unicorn/no-confusing-array-with -D unicorn/no-instanceof-builtins -D unicorn/prefer-array-flat-map -D unicorn/require-module-specifiers --ignore-pattern \"tests/**/*.ts\" --ignore-pattern \"tests/**/*.tsx\" --ignore-pattern \"**/*.d.mts\" --ignore-pattern \"tests/fixtures/autofix-smoke/**\" --ignore-pattern \"tests/fixtures/format-smoke/**\" --ignore-pattern \"tests/fixtures/tool-smoke/**\" --ignore-pattern \"tests/fixtures/call-graph/javascript/**\" --ignore-pattern \"tests/fixtures/function-facts/javascript-parameter.js\" .", "lint:js:advisory": "node scripts/lint-js-advisory.mjs --deny-warnings --format unix -D correctness -D suspicious -D perf --import-plugin --promise-plugin --type-aware -A no-underscore-dangle -A no-await-in-loop -A unicorn/no-array-sort -A unicorn/consistent-function-scoping -A promise/no-promise-in-callback -A no-useless-call -A import/no-unassigned-import -A no-unmodified-loop-condition --ignore-pattern \"**/*.d.mts\" --ignore-pattern \"tests/fixtures/autofix-smoke/**\" --ignore-pattern \"tests/fixtures/format-smoke/**\" --ignore-pattern \"tests/fixtures/tool-smoke/**\" --ignore-pattern \"tests/fixtures/call-graph/javascript/**\" --ignore-pattern \"tests/fixtures/function-facts/javascript-parameter.js\" .", "lint:js:tests": "node scripts/lint-js-advisory.mjs --deny-warnings --format unix --type-aware -A correctness -A suspicious -A perf --ignore-pattern \"tests/fixtures/**\" tests", "depcruise:check": "depcruise --validate --config .dependency-cruiser.cjs --ignore-known .dependency-cruiser-known-violations.json --output-type err index.ts \"clients/**/*.ts\"", "fmt": "oxfmt", "fmt:check": "oxfmt --check", "taplo": "taplo check $(git ls-files '*.toml' ':!tests/fixtures/**') && taplo fmt --check $(git ls-files '*.toml' ':!tests/fixtures/**' ':!config/ruff/core.toml') # taplo 0.7.0 panics on this file's comments; lint it above", "watch": "tsc --watch", "test": "node scripts/with-test-lock.mjs -- vitest run", "test:unit": "node scripts/with-test-lock.mjs -- vitest run", "test:integration": "node scripts/with-test-lock.mjs -- vitest run tests/index-integration.test.ts tests/clients/lsp/integration.test.ts", "test:targeted": "node scripts/with-test-lock.mjs --shared -- vitest run", "test:watch": "vitest", "test:real-harness": "node scripts/with-test-lock.mjs --shared -- vitest run", "mutation:diff": "node scripts/stryker-diff.mjs --base origin/master --max-files 6", "hygiene": "node scripts/prune-agent-worktrees.mjs", "check": "node scripts/check-extensions.mjs", "selftest:install": "node scripts/install-selftest.mjs", "check:lockfile": "node scripts/check-lockfile-sync.mjs", "check:allow-scripts": "node scripts/check-allow-scripts.mjs", "preflight": "node scripts/pr-preflight.mjs", "knip": "node scripts/run-knip.mjs", "check:grammars": "node scripts/check-grammar-provenance.mjs", "check:grammar-load": "node scripts/check-grammar-load.mjs", "audit:tree-sitter": "node scripts/audit-tree-sitter-rules.mjs", "audit:rule-catalog": "node scripts/validate-rule-catalog.mjs", "audit:astgrep-rule-pairs": "node scripts/audit-astgrep-rule-pairs.mjs", "astgrep:self-scan": "node scripts/run-astgrep-pi-lens.mjs", "lane:check": "node scripts/lane-check.mjs", "astgrep:self-scan:update-baseline": "node scripts/run-astgrep-pi-lens.mjs --update-baseline", "audit:playground": "node scripts/playground-verify-rule.mjs", "bench:cascade-budget": "node scripts/bench-cascade-budget.mjs", "bench:word-index-replacement": "node scripts/bench-word-index-replacement.mjs", "logs:smells": "node scripts/analyze-pi-lens-logs.mjs", "complexity": "node scripts/complexity-report.mjs", "changelog:check": "node scripts/rollup-changelog.mjs --check", "contributors:update": "node scripts/update-contributors.mjs", "test:regen": "node scripts/regen-test-baseline.mjs", "changelog:release": "node scripts/changelog-release.mjs", "changelog:extract": "node scripts/changelog-extract.mjs", "release:backfill-notes": "node scripts/backfill-github-releases.mjs", "release:backfill-thanks": "node scripts/backfill-release-thanks.mjs", "docs:rule-catalogs": "node scripts/gen-rule-catalogs.mjs", "banner": "npx -y sharp-cli --input banner.svg --output banner.png resize 2200 620", "download-grammars": "node scripts/download-grammars.js", "harness:poc": "node scripts/run-harness.mjs cases/ts/pipeline-dispatch-poc", "harness:python-poc": "node scripts/run-harness.mjs cases/python/pipeline-dispatch-poc", "harness:ts-format-poc": "node scripts/run-harness.mjs cases/ts/format-default-poc", "harness:python-autofix-poc": "node scripts/run-harness.mjs cases/python/autofix-default-poc", "harness:go-poc": "node scripts/run-harness.mjs cases/go/pipeline-dispatch-poc" }, "keywords": [ "pi", "pi-extension", "pi-package", "linter", "biome", "ast-grep", "ruff", "typescript", "code-quality", "feedback", "type-coverage", "jscpd", "knip" ], "author": "Apostolos Mantzaris", "license": "MIT", "engines": { "node": ">=22.19.0" }, "packageManager": "npm@11.18.0", "files": [ "dist/index.js", "dist/chunk-*.js", "dist/mcp/cli.js", "dist/mcp/server.js", "dist/mcp/analyze-cli.js", "dist/mcp/worker.js", "dist/workers/", "dist/probes/", "docs/", "grammars/", "vendor/grammars/", "config/", "rules/", "skills/", "scripts/download-grammars.js", "scripts/grammars.lock.json", "scripts/analyze-pi-lens-logs.mjs", "scripts/install-selftest.mjs", "scripts/lib/host-provided-deps.mjs", "scripts/lib/skills-predicate.mjs", "scripts/lib/web-tree-sitter-dir.mjs", "scripts/lib/warm-loader-cache.mjs", "scripts/warm-loader-cache.mjs", "scripts/rpc-load-check.mjs", "README.md", "CHANGELOG.md", "banner.svg", "banner.png" ], "dependencies": { "@ast-grep/cli": "0.45.3", "@ast-grep/napi": "^0.45.0", "js-yaml": "^5.2.2", "minimatch": "^10.2.6", "pidusage": "^4.0.1", "vscode-jsonrpc": "^9.0.0" }, "peerDependencies": { "@earendil-works/pi-coding-agent": "*", "@earendil-works/pi-tui": "*", "typebox": "^1.0.0" }, "peerDependenciesMeta": { "@earendil-works/pi-coding-agent": { "optional": true }, "@earendil-works/pi-tui": { "optional": true }, "typebox": { "optional": true } }, "optionalDependencies": { "jiti": "^2.7.0", "web-tree-sitter": "0.25.10" }, "pi": { "extensions": [ "./dist/index.js" ], "skills": [ "./skills" ] }, "allowScripts": { "@ast-grep/cli@0.45.3": true, "@google/genai@2.21.0": true, "esbuild@0.28.2": true, "fsevents@2.3.3": false, "protobufjs@7.6.6": true }, "overrides": { "qs": "^6.15.4" } }