Loading npm security reports…
@jait/gateway@0.1.876: Manual Review npm security report (Allow) | LPM Firewall
Allowed — no malicious behavior detected
No malicious behavior detected. 35 low-signal pattern(s) reviewed.
@jait/gateway@0.1.876 ⚠ Under review Jait AI gateway — local-first AI coding agent with terminal, filesystem, and browser control
AI Security Reviewscanned 14d ago · by lpm-firewall-ai Inspected source shows a pinned runtime installer, configured web-search requests, and session-scoped pi MCP setup; it does not establish malicious behavior. Clean status cannot be supported because required citation coverage exceeds the limit and includes a binary file that cannot be cited as source.
Static reason
High-risk behavior combination matched malicious policy.; source matched previously finalized malicious package; routed for review
Trigger
Package installation runs the postinstall hook; web searches and pi MCP provisioning occur during their respective user-requested operations.
Impact
No malicious impact was established from the inspected source; the full clean assessment is incomplete.
Mechanism
The inspected installer creates a private Python environment for a pinned runtime. Web search sends configured credentials to a validated endpoint, and pi MCP provisioning uses a per-session config.
AI rationale
Inspected source shows a pinned runtime installer, configured web-search requests, and session-scoped pi MCP setup; it does not establish malicious behavior. Clean status cannot be supported because required citation coverage exceeds the limit and includes a binary file that cannot be cited as source.
Evidence
bin/install-runtime.mjs dist/services/code-graph/graphify-runtime.js dist/tools/browser-tools.js dist/providers/pi-mcp-provision.js dist/providers/acp-provider.js
Decision evidencepublic snapshot AI called this Manual Review at 72.0% confidence as Unknown with medium false-positive risk.
AI review observations
The postinstall hook runs a runtime installer that provisions a pinned Graphify release in a private Python environment. The flagged web search code selects configured API keys and validates the chosen endpoint before sending a search request; no hidden recipient was identified. Pi MCP configuration is provisioned during pi session startup using a per-session config and wrapper. Evidence against
The inspected source does not establish credential theft, an unrelated fixed recipient, or an unconsented write to a broad agent configuration surface. Behavioral surface
Source ChildProcess Crypto DynamicRequire EnvironmentVars Eval Filesystem Network Shell WebSocket
Supply chain HighEntropyStrings Minified PossibleObfuscation UrlStrings
Manifest
Source & flagged code28 flagged · loading source • scripts.postinstall = node ./bin/install-runtime.mjs
High Install Time Lifecycle Scripts
Package defines install-time lifecycle scripts.
package.json View on unpkg 30 import { fileURLToPath } from "node:url";
L31: import { execFileSync, execSync, spawn, spawnSync } from "node:child_process";
L32: import { createConnection } from "node:net";
742 L743: const execArgs = [nodePath, jaitBin];
L744: if (existsSync(envFlag)) execArgs.push("--env", envFlag);
Findings2 Critical 23 High 6 Medium 4 Low
Critical Credential Exfiltration dist/tools/browser-tools.js
Critical Trigger Reachable Dangerous Capability dist/tools/browser-tools.js
High Install Time Lifecycle Scripts package.json
High Child Process bin/jait.mjs
High Shell bin/jait.mjs
High Eval dist/tools/screenshot-tools.js
High Entrypoint Build Divergence bin/jait.mjs
High Same File Env Network Execution dist/tools/redeploy-tools.js
High Copied Package Dependency Bridge dist/surfaces/browser.js
High Trigger Reachable Credential Exfiltration dist/services/git-forge.js
High Runtime Package Install dist/tools/redeploy-tools.js
Affected versions and remediation This report applies to @jait/gateway@0.1.876 .
See all versions of @jait/gateway for other recorded verdicts.
Review the evidence and your use of @jait/gateway@0.1.876 before allowing it. Restrict the permissions described in this report. Choose an independently verified alternative or release. This report does not establish that other versions are safe. Evidence last updated: 2026-10-09 05:34:20.486Z (UTC) .
Think this verdict is wrong? Dispute it on GitHub or read how reports are produced .
No manifest risk signals triggered.
scanned 725 file(s), 16.7 MB of source, external domains: 127.0.0.1, accounts.google.com, api.bitbucket.org, api.botframework.com, api.elevenlabs.io, api.github.com, api.moonshot.ai, api.openai.com, api.perplexity.ai, api.search.brave.com, api.telegram.org, api.typesafe.ai, api.x.ai, cdn.agentclientprotocol.com, chevrotain.io, clawhub.ai, dev.azure.com, en.wikipedia.org, fcm.googleapis.com, generativelanguage.googleapis.com, github.com, gmail.googleapis.com, graph.microsoft.com, ipapi.co, langium.org, login.botframework.com, login.microsoftonline.com, oauth2.googleapis.com, ollama.com, openrouter.ai, packages.mozilla.org, react.dev, registry.npmjs.org, sts.windows.net, t.me, wttr.in, www.googleapis.com, www.w3.or, www.w3.org
Oversized source lightweight scan
web-dist/assets/index-BdxEyjT0.js 4.05 MB file, sampled 256 KB
Network WebSocket HighEntropyStrings Minified UrlStrings react.dev www.w3.or www.w3.org
30 Manifest entrypoint (scripts.start) carries capability families absent from dist/build output: environment+network, sensitive-file+network, execution+network
L30: import { fileURLToPath } from "node:url";
L31: import { execFileSync, execSync, spawn, spawnSync } from "node:child_process";
L32: import { createConnection } from "node:net";
L33: import { createInterface } from "node:readline";
L34:
L35: const __dirname = dirname(fileURLToPath(import.meta.url));
L36: const pkg = JSON.parse(
L37: readFileSync(resolve(__dirname, "..", "package.json"), "utf8"),
L38: );
...
L118: } catch (err) {
L119: if (silent) return err.stdout || "";
L120: throw err;
High Entrypoint Build Divergence
Manifest entrypoint contains risky behavior absent from dist/build output.
bin/jait.mjs View on unpkg · L30 • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = bin/jait.mjs
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
bin/jait.mjs View on unpkg 59 try {
L60: const loadPlaywright = new Function("return import('playwright')");
L61: const mod = (await loadPlaywright());
High Eval
Package source references dynamic code evaluation.
dist/tools/screenshot-tools.js View on unpkg · L59 20 try {
L21: const { ensureGraphifyRuntime } = await import(runtimeModule);
L22: await ensureGraphifyRuntime({
Medium Dynamic Require
Package source references dynamic require/import behavior.
bin/install-runtime.mjs View on unpkg · L20 110 log(`🐤 Starting canary on port ${canaryPort}...\n`);
L111: const canary = spawn("jait", ["--port", String(canaryPort)], {
L112: stdio: "ignore",
L113: detached: true,
L114: env: { ...process.env, PORT: String(canaryPort), __JAIT_CLI: "1" },
L115: windowsHide: true,
...
L117: canary.unref();
L118: const healthy = await waitForHealth(`http://127.0.0.1:${canaryPort}`, 30_000);
L119: if (!healthy) {
High Same File Env Network Execution
A single source file combines environment access, network access, and code or shell execution; review context before blocking.
dist/tools/redeploy-tools.js View on unpkg · L110 6 * **systemd** (detected when INVOCATION_ID is set):
L7: * 1. npm install -g @jait/gateway@latest
L8: * 2. Spawn canary on PORT+1, health-check it
...
L19: */
L20: import { execSync, spawn } from "node:child_process";
L21: import { describeUpdateFailure } from "../routes/update-failure.js";
High Runtime Package Install
Package source invokes a package manager install command at runtime.
dist/tools/redeploy-tools.js View on unpkg · L6 5 const DEFAULT_BROWSER_ID = "browser-default";
L6: const DEFAULT_OPENAI_BASE_URL = "https://api.openai.com/v1";
L7: const DEFAULT_OPENAI_WEB_SEARCH_MODEL = "gpt-5";
...
L132: message: `Navigated to ${snapshot.url}`,
L133: data: buildSnapshotPayload(surface.id, snapshot, session),
L134: };
...
L363: const timeout = setTimeout(() => controller.abort(), timeoutMs);
L364: const ignoreTlsErrors = input.ignoreTlsErrors === true || process.env["WEB_FETCH_IGNORE_TLS_ERRORS"] === "true";
L365: try {
...
L371: }, ignoreTlsErrors);
L372: const text = await response.text();
L373: return {
Critical Credential Exfiltration
Source appears to send environment or credential material to an external endpoint.
dist/tools/browser-tools.js View on unpkg · L5 5 Trigger-reachable chain: manifest.main -> dist/index.js -> dist/tools/index.js -> dist/tools/browser-tools.js
L5: const DEFAULT_BROWSER_ID = "browser-default";
L6: const DEFAULT_OPENAI_BASE_URL = "https://api.openai.com/v1";
L7: const DEFAULT_OPENAI_WEB_SEARCH_MODEL = "gpt-5";
...
L132: message: `Navigated to ${snapshot.url}`,
L133: data: buildSnapshotPayload(surface.id, snapshot, session),
L134: };
...
L363: const timeout = setTimeout(() => controller.abort(), timeoutMs);
L364: const ignoreTlsErrors = input.ignoreTlsErrors === true || process.env["WEB_FETCH_IGNORE_TLS_ERRORS"] === "true";
L365: try {
...
L371: }, ignoreTlsErrors);
L372: const text = await response.text();
L373: return {
Critical Trigger Reachable Dangerous Capability
A package entrypoint or install-time lifecycle script reaches a source file with blocking dangerous behavior.
dist/tools/browser-tools.js View on unpkg · L5 398 package = @jait/gateway; repositoryIdentity = jait; dependency = playwright
L398: // boot in environments that do not need browser automation.
L399: const loadPlaywright = new Function("return import('playwright')");
L400: let mod;
High Copied Package Dependency Bridge
Package metadata claims a different repository identity while copied source loads a runtime dependency bridge.
dist/surfaces/browser.js View on unpkg · L398 6 Trigger-reachable credential exfiltration chain: manifest.main -> dist/index.js -> dist/services/thread-review-sync.js -> dist/services/git-forge.js
L6: */
L7: import { exec as execCb } from "node:child_process";
L8: import { writeFile, unlink } from "node:fs/promises";
...
L13: return new Promise((resolve, reject) => {
L14: execCb(cmd, { encoding: "utf-8", windowsHide: true, ...opts }, (error, stdout, stderr) => {
L15: if (error) {
...
L27: function cleanGhEnv() {
L28: const { GH_REPO, GH_HOST, GH_TOKEN, GITHUB_TOKEN, ...rest } = process.env;
L29: return rest;
...
L101: proc.on("error", () => resolve(null));
L102: proc.stdin.write("protocol=https\nhost=github.com\n\n");
L103: proc.stdin.end();
High Trigger Reachable Credential Exfiltration
A manifest entrypoint or package-local install chain reaches credential exfiltration behavior.
dist/services/git-forge.js View on unpkg · L6 • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/services/git-forge.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/services/git-forge.js View on unpkg web-dist/noVNC/app/images/icons/Makefile View file • path = web-[redacted]
kind = build_helper
sizeBytes = 1331
magicHex = [redacted]
Medium Ships Build Helper
Package ships non-JavaScript build or shell helper files.
web-dist/noVNC/app/images/icons/Makefile View on unpkg • path = web-dist/noVNC/app/sounds/bell.oga
kind = high_entropy_blob
sizeBytes = 8495
magicHex = [redacted]
High Ships High Entropy Blob
Package ships high-entropy non-source blobs.
web-dist/noVNC/app/sounds/bell.oga View on unpkg • path = web-dist/assets/index-BdxEyjT0.js
kind = oversized_source_file
sizeBytes = 4249774
magicHex = [redacted]
Medium Oversized Source File
Package contains source files above the normal full-analysis size ceiling.
web-dist/assets/index-BdxEyjT0.js View on unpkg dist/os-control/windows-driver.js#virtual:normalized:round1 View file • stage = ast_semantic_analysis; reason = ast_parse_error; limitedFiles = 13
High Semantic Analysis Limited
A bounded semantic-analysis stage reached its safety limit; remaining detectors completed, but this package requires AI review.
dist/os-control/windows-driver.js#virtual:normalized:round1 View on unpkg • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/routes/network.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/routes/network.js View on unpkg • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/cli/doctor.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/cli/doctor.js View on unpkg dist/providers/acp-binary-launcher.js View file • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/providers/acp-binary-launcher.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/providers/acp-binary-launcher.js View on unpkg • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/services/primary-link.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/services/primary-link.js View on unpkg • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/clawhub/client.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/clawhub/client.js View on unpkg • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/os-control/windows-driver.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/os-control/windows-driver.js View on unpkg • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/security/sandbox-manager.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/security/sandbox-manager.js View on unpkg • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/services/git.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/services/git.js View on unpkg • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/services/preview-runner.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/services/preview-runner.js View on unpkg • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/skills/install.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/skills/install.js View on unpkg High
Ships High Entropy Blob
web-dist/noVNC/app/sounds/bell.oga
High Semantic Analysis Limited dist/os-control/windows-driver.js#virtual:normalized:round1
High Known Malware Source Similarity dist/routes/network.js
High Known Malware Source Similarity dist/cli/doctor.js
High Known Malware Source Similarity dist/providers/acp-binary-launcher.js
High Known Malware Source Similarity dist/services/primary-link.js
High Known Malware Source Similarity bin/jait.mjs
High Known Malware Source Similarity dist/clawhub/client.js
High Known Malware Source Similarity dist/os-control/windows-driver.js
High Known Malware Source Similarity dist/security/sandbox-manager.js
High Known Malware Source Similarity dist/services/git-forge.js
High Known Malware Source Similarity dist/services/git.js
High Known Malware Source Similarity dist/services/preview-runner.js
High Known Malware Source Similarity dist/skills/install.js
Medium Dynamic Require bin/install-runtime.mjs
Medium Ships Build Helper web-dist/noVNC/app/images/icons/Makefile
Medium Oversized Source File web-dist/assets/index-BdxEyjT0.js
Medium Structural Risk Force Deep Review
Entrypoints main → dist/index.js types → dist/index.d.ts bin → jait
Runtime node >=22.5.0
Artifact 66.6 MB · 2,055 files 2 signature(s)
Install lifecycle postinstall
Behavioral surface ChildProcess Crypto DynamicRequire EnvironmentVars Eval Filesystem Network Shell WebSocket HighEntropyStrings Minified PossibleObfuscation UrlStrings Manifest: clean
Source & flagged code28 flagged Lines 6-46 json
7 "main" : "dist/index.js" ,
8 "types" : "dist/index.d.ts" ,
10 "jait" : "./bin/jait.mjs"
19 "prebuild" : "bun run --filter @jait/web build && bun run bundle-web" ,
20 "bundle-web" : "node scripts/bundle-web.mjs" ,
21 "build" : "node scripts/embed-shell-integration.mjs && tsc && node scripts/copy-shell-integration.mjs" ,
22 "copy-assets" : "node scripts/copy-shell-integration.mjs" ,
23 "embed-shell-integration" : "node scripts/embed-shell-integration.mjs" ,
24 "dev" : "bun run --filter @jait/web build && bun --watch src/index.ts" ,
25 "start" : "node ./bin/jait.mjs" ,
26 "postinstall" : "node ./bin/install-runtime.mjs" ,
High Install Time Lifecycle Scripts
Package defines install-time lifecycle scripts.
package.json View on unpkg · L26 27 "typecheck" : "tsc --noEmit"
40 "url" : "https://github.com/Widev-e-U/Jait.git" ,
41 "directory" : "packages/gateway"
43 "homepage" : "https://jait.dev" ,
30 import { fileURLToPath } from "node:url";
L31: import { execFileSync, execSync, spawn, spawnSync } from "node:child_process";
L32: import { createConnection } from "node:net";
742 L743: const execArgs = [nodePath, jaitBin];
L744: if (existsSync(envFlag)) execArgs.push("--env", envFlag);
30 Manifest entrypoint (scripts.start) carries capability families absent from dist/build output: environment+network, sensitive-file+network, execution+network
L30: import { fileURLToPath } from "node:url";
L31: import { execFileSync, execSync, spawn, spawnSync } from "node:child_process";
L32: import { createConnection } from "node:net";
L33: import { createInterface } from "node:readline";
L34:
L35: const __dirname = dirname(fileURLToPath(import.meta.url));
L36: const pkg = JSON.parse(
L37: readFileSync(resolve(__dirname, "..", "package.json"), "utf8"),
L38: );
...
L118: } catch (err) {
L119: if (silent) return err.stdout || "";
L120: throw err;
High Entrypoint Build Divergence
Manifest entrypoint contains risky behavior absent from dist/build output.
bin/jait.mjs View on unpkg · L30 • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = bin/jait.mjs
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
Lines 39-79 javascript
39 description : "Click these elements before capturing (in order)." ,
43 items : { type : "string" ,
20 try {
L21: const { ensureGraphifyRuntime } = await import(runtimeModule);
L22: await ensureGraphifyRuntime({
Medium Dynamic Require
Package source references dynamic require/import behavior.
bin/install-runtime.mjs View on unpkg · L20 Lines 90-130 javascript
90 const explanation = failure.hint ?? failure.detail;
91 log ( `✗ npm install failed [${ failure . code }]: ${ failure . detail } \n ` );
Lines 1-25 javascript
1 import { parseJaitBackendInstances } from "@jait/shared" ;
2 import { BrowserSurface } from "../surfaces/browser.js" ;
3 import { SSRFGuard } from "../security/ssrf-guard.js" ;
4 import { SandboxManager } from "../security/sandbox-manager.js"
398 package = @jait/gateway; repositoryIdentity = jait; dependency = playwright
L398: // boot in environments that do not need browser automation.
L399: const loadPlaywright = new Function("return import('playwright')");
L400: let mod;
High Copied Package Dependency Bridge
Package metadata claims a different repository identity while copied source loads a runtime dependency bridge.
dist/surfaces/browser.js View on unpkg · L398 6 Trigger-reachable credential exfiltration chain: manifest.main -> dist/index.js -> dist/services/thread-review-sync.js -> dist/services/git-forge.js
L6: */
L7: import { exec as execCb } from "node:child_process";
L8: import { writeFile, unlink } from "node:fs/promises";
...
L13: return new Promise((resolve, reject) => {
L14: execCb(cmd, { encoding: "utf-8", windowsHide: true, ...opts }, (error, stdout, stderr) => {
L15: if (error) {
...
L27: function cleanGhEnv() {
L28: const { GH_REPO, GH_HOST, GH_TOKEN, GITHUB_TOKEN, ...rest } = process.env;
L29: return rest;
...
L101: proc.on("error", () => resolve(null));
L102: proc.stdin.write("protocol=https\nhost=github.com\n\n");
L103: proc.stdin.end();
High Trigger Reachable Credential Exfiltration
A manifest entrypoint or package-local install chain reaches credential exfiltration behavior.
dist/services/git-forge.js View on unpkg · L6 • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/services/git-forge.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/services/git-forge.js View on unpkg web-dist/noVNC/app/images/icons/Makefile View file • path = web-[redacted]
kind = build_helper
sizeBytes = 1331
magicHex = [redacted]
Medium Ships Build Helper
Package ships non-JavaScript build or shell helper files.
web-dist/noVNC/app/images/icons/Makefile View on unpkg • path = web-dist/noVNC/app/sounds/bell.oga
kind = high_entropy_blob
sizeBytes = 8495
magicHex = [redacted]
High Ships High Entropy Blob
Package ships high-entropy non-source blobs.
web-dist/noVNC/app/sounds/bell.oga View on unpkg • path = web-dist/assets/index-BdxEyjT0.js
kind = oversized_source_file
sizeBytes = 4249774
magicHex = [redacted]
Medium Oversized Source File
Package contains source files above the normal full-analysis size ceiling.
web-dist/assets/index-BdxEyjT0.js View on unpkg dist/os-control/windows-driver.js#virtual:normalized:round1 View file • stage = ast_semantic_analysis; reason = ast_parse_error; limitedFiles = 13
High Semantic Analysis Limited
A bounded semantic-analysis stage reached its safety limit; remaining detectors completed, but this package requires AI review.
dist/os-control/windows-driver.js#virtual:normalized:round1 View on unpkg • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/routes/network.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/routes/network.js View on unpkg • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/cli/doctor.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/cli/doctor.js View on unpkg dist/providers/acp-binary-launcher.js View file • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/providers/acp-binary-launcher.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/providers/acp-binary-launcher.js View on unpkg • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/services/primary-link.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/services/primary-link.js View on unpkg • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/clawhub/client.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/clawhub/client.js View on unpkg • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/os-control/windows-driver.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/os-control/windows-driver.js View on unpkg • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/security/sandbox-manager.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/security/sandbox-manager.js View on unpkg • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/services/git.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/services/git.js View on unpkg • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/services/preview-runner.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/services/preview-runner.js View on unpkg • matchType = normalized_sha256
matchedPackage = @jait/gateway@0.1.848
matchedPath = dist/skills/install.js
matchedIdentity = npm:QGphaXQvZ2F0ZXdheQ:0.1.848
similarity = 1.000
summary = normalized source hash matched finalized malicious source
High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
dist/skills/install.js View on unpkg High Known Malware Source Similarity
Source file is highly similar to a previously finalized malicious package; route for source-aware review.
bin/jait.mjs View on unpkg description
:
"'selector:text' pair"
},
44 description : "Fill inputs before capturing. Each item is 'cssSelector:text'." ,
49 async execute (input, context) {
50 if (context.signal?.aborted)
51 return { ok: false , message: "Cancelled" };
52 const outPath = resolveOutPath (input.path);
53 const url = resolveTarget (input.target, context.projectRoot);
54 const width = input.mobile ? 393 : Number (input.width ?? 1280 );
55 const height = input.mobile ? 851 : Number (input.height ?? 800 );
56 const deviceScaleFactor = input.mobile ? 3 : 2 ;
57 const fullPage = input.fullPage !== false && ! input.selector;
60 const loadPlaywright = new Function ( "return import('playwright')" );
61 const mod = ( await loadPlaywright ());
High Eval
Package source references dynamic code evaluation.
dist/tools/screenshot-tools.js View on unpkg · L59 62 chromium = mod.chromium;
64 throw new Error ( "chromium not found in playwright module" );
69 message: `Playwright unavailable: ${ err instanceof Error ? err . message : String ( err ) }` ,
72 // Ensure output directory exists
73 const fs = await import ( "node:fs" );
74 const pathMod = await import ( "node:path" );
75 fs. mkdirSync (pathMod. dirname (outPath), { recursive: true });
78 browser = ( await chromium. launch ());
79 const ctx = await browser. newContext ({
return
{
94 message: `npm install failed [${ failure . code }]: ${ explanation }` ,
97 // ── 3. Read new version ───────────────────────────────────────────
98 let newVersion = "unknown" ;
100 const raw = execSync ( "npm list -g @jait/gateway --depth=0 --json" , { encoding: "utf8" , timeout: 10_000 , windowsHide: true , stdio: "pipe" });
101 newVersion = JSON . parse (raw).dependencies?.[ "@jait/gateway" ]?.version ?? "unknown" ;
106 log ( `✓ Installed @jait/gateway ${ newVersion } (was ${ oldVersion }) \n ` );
107 // ── 4. Canary health check ────────────────────────────────────────
109 const canaryPort = deps.port + 1 ;
110 log ( `🐤 Starting canary on port ${ canaryPort }... \n ` );
111 const canary = spawn ( "jait" , [ "--port" , String (canaryPort)], {
114 env: { ... process.env, PORT: String (canaryPort), __JAIT_CLI: "1" },
118 const healthy = await waitForHealth ( `http://127.0.0.1:${ canaryPort }` , 30_000 );
119 if ( ! healthy) {
High Same File Env Network Execution
A single source file combines environment access, network access, and code or shell execution; review context before blocking.
dist/tools/redeploy-tools.js View on unpkg · L110 121 process. kill ( - canary.pid, "SIGTERM" );
123 catch { /* ignore */ }
126 message: `Canary failed health check on port ${ canaryPort }. ` +
127 `Update installed but NOT activated. Current gateway is still running.` ,
128 data: { oldVersion, newVersion, canaryPort },
6 * **systemd** (detected when INVOCATION_ID is set):
L7: * 1. npm install -g @jait/gateway@latest
L8: * 2. Spawn canary on PORT+1, health-check it
...
L19: */
L20: import { execSync, spawn } from "node:child_process";
L21: import { describeUpdateFailure } from "../routes/update-failure.js";
High Runtime Package Install
Package source invokes a package manager install command at runtime.
dist/tools/redeploy-tools.js View on unpkg · L6 ;
5 const DEFAULT_BROWSER_ID = "browser-default" ;
6 const DEFAULT_OPENAI_BASE_URL = "https://api.openai.com/v1" ;
7 const DEFAULT_OPENAI_WEB_SEARCH_MODEL = "gpt-5" ;
Critical Credential Exfiltration
Source appears to send environment or credential material to an external endpoint.
dist/tools/browser-tools.js View on unpkg · L5 8 const DEFAULT_PERPLEXITY_MODEL = "sonar-pro" ;
9 const DEFAULT_PERPLEXITY_OPENROUTER_MODEL = "perplexity/sonar-pro" ;
10 const DEFAULT_GROK_MODEL = "grok-4-1212" ;
11 const DEFAULT_GEMINI_MODEL = "gemini-2.0-flash" ;
12 const DEFAULT_KIMI_BASE_URL = "https://api.moonshot.ai/v1" ;
13 const DEFAULT_KIMI_MODEL = "moonshot-v1-128k" ;
14 function resolveActivePreviewSession ( collaboration , context ) {
15 const sessionId = context.sessionId?. trim ();
16 if ( ! sessionId || ! collaboration)
18 const getter = collaboration.getSessionByPreviewSessionId;
19 if ( typeof getter !== "function" )
21 return getter. call (collaboration, sessionId);
23 function assertPreviewBrowserSelection ( previewSession , browserId ) {
5 Trigger-reachable chain: manifest.main -> dist/index.js -> dist/tools/index.js -> dist/tools/browser-tools.js
L5: const DEFAULT_BROWSER_ID = "browser-default";
L6: const DEFAULT_OPENAI_BASE_URL = "https://api.openai.com/v1";
L7: const DEFAULT_OPENAI_WEB_SEARCH_MODEL = "gpt-5";
...
L132: message: `Navigated to ${snapshot.url}`,
L133: data: buildSnapshotPayload(surface.id, snapshot, session),
L134: };
...
L363: const timeout = setTimeout(() => controller.abort(), timeoutMs);
L364: const ignoreTlsErrors = input.ignoreTlsErrors === true || process.env["WEB_FETCH_IGNORE_TLS_ERRORS"] === "true";
L365: try {
...
L371: }, ignoreTlsErrors);
L372: const text = await response.text();
L373: return {
Critical Trigger Reachable Dangerous Capability
A package entrypoint or install-time lifecycle script reaches a source file with blocking dangerous behavior.
dist/tools/browser-tools.js View on unpkg · L5