registry  /  @cat-factory/server  /  0.69.1

@cat-factory/server@0.69.1

Runtime-neutral HTTP layer for the Agent Architecture Board: the Hono controllers, middleware (auth/authz/CORS/error), request helpers and the gateway seams shared by every deployment facade (Cloudflare Worker, Node service).

AI Security Review

scanned 2d ago · by lpm-firewall-ai

No confirmed malicious attack surface was established. The package is a runtime-neutral HTTP server layer with user/runtime-invoked controllers for OAuth, web search, GitHub, task sources, and LLM proxying.

Static reason
One or more suspicious static signals were detected.
Trigger
Application imports and mounts exported Hono controllers or helper classes.
Impact
No evidence of unconsented credential harvesting, exfiltration, persistence, destructive behavior, or install-time execution.
Mechanism
Package-aligned server route handling and upstream API proxying
Rationale
Static inspection found a normal published dist-only server package with no lifecycle execution, hidden payload, credential exfiltration, or destructive primitives. The scanner findings are explained by legitimate HTTP/OAuth/search/GitHub server features and a PEM parsing helper, so the package should be marked clean.
Evidence
package.jsondist/index.jsdist/modules/tasks/TaskSourceController.jsdist/crypto/encoding.jsdist/crypto/encoding.d.tsdist/modules/webSearch/upstreams.jsdist/modules/llmProxy/LlmProxyController.js
Network endpoints8
api.search.brave.com/res/v1/web/searchlinear.appapi.linear.app/oauth/tokenaccounts.google.comwww.googleapis.comoauth2.googleapis.com/tokengithub.comapi.github.com

Decision evidence

public snapshot
AI called this Clean at 90.0% confidence as Benign with low false-positive risk.
Evidence for block
  • Runtime routes proxy LLM/web-search/OAuth/GitHub requests using fetch in dist/modules/llmProxy/LlmProxyController.js and dist/modules/webSearch/upstreams.js.
  • Package exports agent/container and GitHub repository helpers from dist/index.js, creating powerful but documented server-side capabilities.
Evidence against
  • package.json has no lifecycle scripts and only exposes ./dist/index.js as the main export.
  • dist/modules/tasks/TaskSourceController.js contains Hono route handlers and service delegation; no dynamic require/import was found there.
  • dist/crypto/encoding.d.ts only documents PEM formats; dist/crypto/encoding.js parses caller-supplied PEM and contains no embedded private key.
  • rg found no child_process, eval, Function constructor, package-code file writes, destructive commands, or install/import-time execution.
  • Network endpoints are aligned with the HTTP server package: Brave/SearXNG search, OAuth providers, GitHub APIs, and LLM upstream forwarding after session validation.
  • No prompt/reviewer manipulation or AI-agent control-surface writes were found in inspected package files.
Behavioral surface
Source
ChildProcessDynamicRequireFilesystemNetwork
Supply chain
HighEntropyStringsUrlStrings
Manifest
NoLicense
scanned 124 file(s), 735 KB of source, external domains: accounts.google.com, api.github.com, api.linear.app, api.search.brave.com, github.com, linear.app, oauth2.googleapis.com, www.googleapis.com

Source & flagged code

7 flagged · loading source
dist/crypto/encoding.d.tsView file
7patternName = private_key_rsa severity = critical line = 7 matchedText = * (`----...CS#1
Critical
Critical Secret

Package contains a critical-looking secret pattern.

dist/crypto/encoding.d.tsView on unpkg · L7
7patternName = private_key_rsa severity = critical line = 7 matchedText = * (`----...CS#1
Critical
Secret Pattern

RSA private key in dist/crypto/encoding.d.ts

dist/crypto/encoding.d.tsView on unpkg · L7
8patternName = private_key_rsa severity = critical line = 8 matchedText = * (`----... via
Critical
Secret Pattern

RSA private key in dist/crypto/encoding.d.ts

dist/crypto/encoding.d.tsView on unpkg · L8
dist/modules/tasks/TaskSourceController.jsView file
188return unavailable(c); L189: const task = await tasks.importService.import(param(c, 'workspaceId'), sourceParam(c), c.req.valid('json').ref); L190: return c.json(task, 201);
Medium
Dynamic Require

Package source references dynamic require/import behavior.

dist/modules/tasks/TaskSourceController.jsView on unpkg · L188
dist/crypto/encoding.jsView file
30patternName = private_key_rsa severity = critical line = 30 matchedText = * (`----...CS#1
Critical
Secret Pattern

RSA private key in dist/crypto/encoding.js

dist/crypto/encoding.jsView on unpkg · L30
31patternName = private_key_rsa severity = critical line = 31 matchedText = * (`----... via
Critical
Secret Pattern

RSA private key in dist/crypto/encoding.js

dist/crypto/encoding.jsView on unpkg · L31
dist/github/GitHubAppAuth.d.tsView file
4patternName = private_key_rsa severity = critical line = 4 matchedText = /** App .... */
Critical
Secret Pattern

RSA private key in dist/github/GitHubAppAuth.d.ts

dist/github/GitHubAppAuth.d.tsView on unpkg · L4

Findings

6 Critical2 Medium5 Low
CriticalCritical Secretdist/crypto/encoding.d.ts
CriticalSecret Patterndist/crypto/encoding.d.ts
CriticalSecret Patterndist/crypto/encoding.d.ts
CriticalSecret Patterndist/crypto/encoding.js
CriticalSecret Patterndist/crypto/encoding.js
CriticalSecret Patterndist/github/GitHubAppAuth.d.ts
MediumDynamic Requiredist/modules/tasks/TaskSourceController.js
MediumNetwork
LowScripts Present
LowFilesystem
LowHigh Entropy Strings
LowUrl Strings
LowNo License