registry  /  @cat-factory/server  /  0.79.3

@cat-factory/server@0.79.3

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 7h ago · by lpm-firewall-ai

No confirmed malicious attack surface was established. The package is a runtime-neutral server layer with authenticated controllers, OAuth clients, GitHub integrations, web search and LLM proxy functionality activated by application routes or service calls.

Static reason
One or more suspicious static signals were detected.
Trigger
Runtime use of exported server controllers/services by a host application
Impact
No install-time execution, credential harvesting, persistence, or unconsented agent control-surface mutation identified
Mechanism
Package-aligned HTTP controllers and fetch-based upstream integrations
Rationale
Static inspection shows a server package with sensitive but expected runtime capabilities for its domain, and the scanner hits resolve to package-aligned routes, OAuth/proxy code, and documentation. There is no lifecycle execution, exfiltration path, persistence, destructive behavior, or unconsented mutation of external AI-agent control surfaces.
Evidence
package.jsondist/index.jsdist/crypto/encoding.jsdist/crypto/encoding.d.tsdist/modules/tasks/TaskSourceController.jsdist/modules/webSearch/upstreams.jsdist/modules/llmProxy/LlmProxyController.jsdist/agents/ContainerAgentExecutor.jsdist/auth/GoogleOAuth.jsdist/auth/LinearOAuth.jsdist/auth/GitHubOAuth.js
Network endpoints6
api.search.brave.com/res/v1/web/searchaccounts.google.comwww.googleapis.comoauth2.googleapis.com/tokenlinear.appapi.linear.app/oauth/token

Decision evidence

public snapshot
AI called this Clean at 90.0% confidence as Benign with low false-positive risk.
Evidence for block
  • Runtime controllers proxy OAuth, GitHub, web search, and LLM requests using configured credentials.
  • ContainerAgentExecutor builds job bodies that include repo clone coordinates and short-lived tokens for package-aligned agent runs.
Evidence against
  • package.json has no preinstall/install/postinstall lifecycle hooks or bin entrypoint.
  • dist/index.js only re-exports server modules; no import-time execution beyond module loading.
  • dist/crypto/encoding.d.ts secret hit is only PEM/PKCS#8 documentation, not an embedded key.
  • dist/modules/tasks/TaskSourceController.js defines Hono routes and delegates to configured services; no dynamic require found.
  • No child_process, fs writes, persistence hooks, or AI-agent control-surface file drops found in package source.
  • Network calls are runtime/user-flow aligned and include SSRF guards for user-configured SearXNG/local runner URLs.
Behavioral surface
Source
ChildProcessDynamicRequireFilesystemNetwork
Supply chain
HighEntropyStringsUrlStrings
Manifest
NoLicense
scanned 129 file(s), 808 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