registry  /  @dreki-gg/pi-lsp  /  0.5.0

@dreki-gg/pi-lsp@0.5.0

Language-agnostic LSP code intelligence for pi — diagnostics, hover, definitions, references, symbols, and call hierarchy

AI Security Review

scanned 3h ago · by lpm-firewall-ai

LPM treats this as warn-only first-party agent extension lifecycle risk. The Pi extension creates a first-party LSP starter config on session start when no config exists. It can later execute user-configured LSP servers, including an `npx` fallback; no autonomous malicious chain is established.

Static reason
No blocking static signals were detected.
Trigger
Pi session start; later LSP use after a user enables/configures a server
Impact
Creates a disabled Pi extension config and can run commands selected in that config.
Mechanism
first-party config scaffolding and user-configured LSP process launch
Rationale
No concrete malicious behavior was found. Flag as warn because it mutates a first-party Pi extension config during lifecycle startup and launches user-configured processes.
Evidence
package.jsonextensions/lsp/index.tsextensions/lsp/config.tsextensions/lsp/effects/command.tsextensions/lsp/protocol.ts~/.pi/agent/extensions/lsp/config.json.pi/lsp.json

Decision evidence

public snapshot
AI called this Suspicious at 86.0% confidence as Dangerous Capability with low false-positive risk.
Evidence for warning
  • `extensions/lsp/index.ts` runs config scaffolding at Pi session start.
  • `extensions/lsp/config.ts` writes `~/.pi/agent/extensions/lsp/config.json` if no global or project config exists.
  • `extensions/lsp/protocol.ts` spawns configured LSP commands; `effects/command.ts` may invoke `npx --yes`.
Evidence against
  • `package.json` has no preinstall/install/postinstall hooks.
  • Starter server entries are all `disabled: true`; no server auto-starts by default.
  • Commands and environment overrides come from user-controlled Pi config files.
  • No HTTP/network client, credential harvesting, payload download, or destructive file operations found.
Behavioral surface
Source
ChildProcessEnvironmentVarsFilesystemShell
Supply chain
HighEntropyStrings
Manifest
WildcardDependency
scanned 13 file(s), 81.0 KB of source

Source & flagged code

3 flagged · loading source
extensions/lsp/index.tsView file
Published source reference
Medium
Ai Review Evidence

`extensions/lsp/index.ts` runs config scaffolding at Pi session start.

extensions/lsp/index.tsView on unpkg
extensions/lsp/config.tsView file
Published source reference
Medium
Ai Review Evidence

`extensions/lsp/config.ts` writes `~/.pi/agent/extensions/lsp/config.json` if no global or project config exists.

extensions/lsp/config.tsView on unpkg
extensions/lsp/protocol.tsView file
Published source reference
Medium
Ai Review Evidence

`extensions/lsp/protocol.ts` spawns configured LSP commands; `effects/command.ts` may invoke `npx --yes`.

extensions/lsp/protocol.tsView on unpkg

Findings

5 Medium3 Low
MediumEnvironment Vars
MediumWildcard Dependency
MediumAi Review Evidenceextensions/lsp/index.ts
MediumAi Review Evidenceextensions/lsp/config.ts
MediumAi Review Evidenceextensions/lsp/protocol.ts
LowScripts Present
LowFilesystem
LowHigh Entropy Strings