registry  /  @skalpelai/prosumer-hook  /  0.3.20

@skalpelai/prosumer-hook@0.3.20

The lightweight Skalpel client for Claude Code / Codex. Sign in with Google, and each prompt is relayed to your hosted behavioral graph so the retrieved 'worked-vs-thrashed' fork is injected back into the model. No engine, no Python, no daemon, no binary

Static Scan Results

scanned 2h ago · by rust-scanner

Static analysis flagged 17 finding(s) at 72.0% confidence. This version is warn-only unless an AI or security-team review confirms malicious behavior.

Static reason
One or more suspicious static signals were detected.

Decision evidence

public snapshot
Behavioral surface
Source
ChildProcessCryptoEnvironmentVarsFilesystemNetworkShell
Supply chain
HighEntropyStringsUrlStrings
Manifest
NoLicense
scanned 10 file(s), 101 KB of source, external domains: 127.0.0.1, graph.skalpel.ai, kvluulenvmsmcjoconyw.supabase.co

Source & flagged code

8 flagged · loading source
package.jsonView file
scripts.postinstall = node postinstall.mjs
High
Install Time Lifecycle Scripts

Package defines install-time lifecycle scripts.

package.jsonView on unpkg
scripts.postinstall = node postinstall.mjs
Medium
Ambiguous Install Lifecycle Script

Install-time lifecycle script is not statically allowlisted and needs review.

package.jsonView on unpkg
login.mjsView file
21patternName = supabase_service_key severity = critical line = 21 matchedText = "eyJhbGc...CU";
Critical
Critical Secret

Package contains a critical-looking secret pattern.

login.mjsView on unpkg · L21
21patternName = supabase_service_key severity = critical line = 21 matchedText = "eyJhbGc...CU";
Critical
Secret Pattern

Supabase service role key (JWT) in login.mjs

login.mjsView on unpkg · L21
9// Requires (dashboard side, one-time): Google provider enabled in Supabase Auth, and L10: // http://localhost + http://127.0.0.1 added to the Auth → URL Configuration redirect allowlist. L11: import { createServer } from "node:http"; ... L14: import { join } from "node:path"; L15: import { spawn } from "node:child_process"; L16: import { createHash, randomBytes } from "node:crypto"; L17: L18: const SUPABASE_URL = process.env.SUPABASE_URL || "https://kvluulenvmsmcjoconyw.supabase.co"; L19: const SUPABASE_ANON_KEY = ... L22: L23: const AUTH_PATH = join(homedir(), ".skalpel", "auth.json"); L24:
High
Sandbox Evasion Gated Capability

Source gates dangerous network, credential, or execution behavior behind CI, host, platform, time, or geo fingerprint checks.

login.mjsView on unpkg · L9
setup.mjsView file
21import { fileURLToPath } from "node:url"; L22: import { spawn, spawnSync } from "node:child_process"; L23: import { identity as authIdentity } from "./auth.mjs";
High
Child Process

Package source references child process execution.

setup.mjsView on unpkg · L21
551const post = (token, gzip) => L552: fetch(`${API}/ingest`, { L553: method: "POST", ... L564: // Re-run the Google login ONCE for a fresh session, then retry — instead of dead-ending the user. L565: if (r.status === 401 && !process.env.SKALPEL_USER) { L566: sp.text("Session expired — re-opening sign-in…"); L567: spawnSync("node", [join(__dir, "login.mjs")], { stdio: "inherit" }); L568: const fresh = await identity();
High
Same File Env Network Execution

A single source file combines environment access, network access, and code or shell execution; review context before blocking.

setup.mjsView on unpkg · L551
auth.mjsView file
13patternName = supabase_service_key severity = critical line = 13 matchedText = "eyJhbGc...CU";
Critical
Secret Pattern

Supabase service role key (JWT) in auth.mjs

auth.mjsView on unpkg · L13

Findings

3 Critical5 High4 Medium5 Low
CriticalCritical Secretlogin.mjs
CriticalSecret Patternlogin.mjs
CriticalSecret Patternauth.mjs
HighInstall Time Lifecycle Scriptspackage.json
HighChild Processsetup.mjs
HighShell
HighSame File Env Network Executionsetup.mjs
HighSandbox Evasion Gated Capabilitylogin.mjs
MediumAmbiguous Install Lifecycle Scriptpackage.json
MediumNetwork
MediumEnvironment Vars
MediumStructural Risk Force Deep Review
LowScripts Present
LowFilesystem
LowHigh Entropy Strings
LowUrl Strings
LowNo License