github JavaScript re-analysis due

DataArche/SSWorld

github

MCP server for agent-authored 3D geo scenes: write SSDL, render on a real WebGPU engine, read the frame back.

maintainer
DataArche
licence
Apache-2.0
first seen
2026-09-12
last seen
2026-09-17
releases · 30d
4
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 12 tools
transport stdio · http counts 12 tools · 0 res · 0 prompts permission surface via README inference

tools

  • ssworld_capture_frame

    screenshot of the open preview through the engine (saveImage2Base64); stats with luma percentiles, exposure tails, colour-class coverage overall and per 3×3 region, top colours; runtime errors dedupli

  • ssworld_catalog

    component index / one contract / components: [...] in one call (detail: compact hoists shared members); catalog_digest + if_digest for cache hits; units and rotation conventions annotated per member

  • ssworld_compile

    SSDL 0.3 compiler with real diagnostics, node_count, budget usage and logic (declared properties, states, host calls); catalog/runtime mismatches are compile errors (Label without a font, material ani

  • ssworld_engine_status

    engine pair installed? (install: true to download)

  • ssworld_environment_read

    ask the engine what it actually received for the environment: the adopted sun's direction read back from the native sun and converted to azimuth/elevation at the anchor (with the deviation from the sc

  • ssworld_preview

    starts the local preview server, returns http://127.0.0.1:8880/projects/<name>/index.html, whether the page is open, page.clients (every browser syncing the page: id, visibility, canvas, user agent) a

  • ssworld_project_create

    new runnable project (anchored at lon/lat/height), compiled

  • ssworld_project_list

    projects in ~/.ssworld/projects

  • ssworld_scene_inspect

    compiled-scene facts without rendering: budget ratio, subtrees by size, leaf children by type, nodes per source file, primitive extent, the requested camera (lookAt-derived heading/pitch); render stat

  • ssworld_source_batch

    atomic multi-edit: text patches and node-level {node_id, set, unset} across files; all validated in memory before anything is written; validate: compile + rollback restores the previous sources on a f

  • ssworld_source_patch

    exact-span edit (old_string → new_string, uniqueness checked, replace_all opt-in) with the same digest guard

  • tool

    purpose

skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 50327d9 · analyzer v33 · 5d ago

skills & prompt files 1

danger signals1

code evidence vengine-32e8d76ff2d51b21 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 52

filesystem 26

  • fs DataArche-SSWorld-50327d9/src/catalog.mjs :2 import { readFileSync } from "node:fs";
  • fs DataArche-SSWorld-50327d9/src/compile.mjs :3 import { createReadStream, existsSync, readFileSync } from "node:fs";
  • fs DataArche-SSWorld-50327d9/src/diagnose.mjs :5 import { existsSync, readFileSync, readdirSync } from "node:fs";
  • fs DataArche-SSWorld-50327d9/src/engine.mjs :5 import { existsSync, mkdirSync, readFileSync, renameSync, statSync, writeFileSync } from "node:fs";
  • fs DataArche-SSWorld-50327d9/src/inspect.mjs :5 import { existsSync, readFileSync } from "node:fs";
  • fs DataArche-SSWorld-50327d9/src/install.mjs :4 import { cpSync, existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
  • fs DataArche-SSWorld-50327d9/src/page.mjs :4 import { existsSync, readFileSync, renameSync, writeFileSync } from "node:fs";
  • fs DataArche-SSWorld-50327d9/src/paths.mjs :4 import { existsSync, readFileSync } from "node:fs";
  • fs DataArche-SSWorld-50327d9/src/preview.mjs :5 import { createReadStream, existsSync, readdirSync, statSync } from "node:fs";
  • fs DataArche-SSWorld-50327d9/src/project.mjs :3 import { existsSync, mkdirSync, readFileSync, readdirSync, renameSync, statSync, writeFileSync } from "node:fs";
  • fs DataArche-SSWorld-50327d9/src/server.mjs :10 import { mkdirSync, writeFileSync } from "node:fs";
  • fs DataArche-SSWorld-50327d9/ssdl/compiler/src/compiler-0.3.mjs :1 import { readFileSync } from "node:fs";
show 14 more
  • fs (weak) DataArche-SSWorld-50327d9/test/asset-cache.test.mjs :3 import { readFileSync } from "node:fs";
  • fs (weak) DataArche-SSWorld-50327d9/test/budget.test.mjs :3 import { existsSync, mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs";
  • fs (weak) DataArche-SSWorld-50327d9/test/chase-camera.test.mjs :3 import { mkdtempSync, rmSync, writeFileSync } from "node:fs";
  • fs (weak) DataArche-SSWorld-50327d9/test/emissive.test.mjs :3 import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from "node:fs";
  • fs (weak) DataArche-SSWorld-50327d9/test/engine.test.mjs :4 import { createReadStream, existsSync, mkdtempSync, readFileSync, statSync, writeFileSync } from "node:fs";
  • fs (weak) DataArche-SSWorld-50327d9/test/game-logic.test.mjs :3 import { mkdtempSync, rmSync, writeFileSync } from "node:fs";
  • fs (weak) DataArche-SSWorld-50327d9/test/install.test.mjs :4 import { mkdtempSync, mkdirSync, readFileSync, writeFileSync, existsSync } from "node:fs";
  • fs (weak) DataArche-SSWorld-50327d9/test/instancing.test.mjs :3 import { mkdtempSync, rmSync, writeFileSync } from "node:fs";
  • fs (weak) DataArche-SSWorld-50327d9/test/iteration-surface.test.mjs :3 import { mkdtempSync, rmSync } from "node:fs";
  • fs (weak) DataArche-SSWorld-50327d9/test/scale-budgets.test.mjs :3 import { mkdtempSync, rmSync } from "node:fs";
  • fs (weak) DataArche-SSWorld-50327d9/test/sky-tint-policy.test.mjs :3 import { mkdtempSync, rmSync, writeFileSync } from "node:fs";
  • fs (weak) DataArche-SSWorld-50327d9/test/smoke.test.mjs :4 import { mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs";
  • fs (weak) DataArche-SSWorld-50327d9/test/sun-readback.test.mjs :3 import { readFileSync } from "node:fs";
  • fs (weak) DataArche-SSWorld-50327d9/test/tangent-policy.test.mjs :3 import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from "node:fs";

shell / exec 4

  • shell DataArche-SSWorld-50327d9/src/install.mjs :3 import { execFileSync, spawnSync } from "node:child_process";
  • shell (weak) DataArche-SSWorld-50327d9/test/engine.test.mjs :3 import { spawn, spawnSync } from "node:child_process";
  • shell (weak) DataArche-SSWorld-50327d9/test/install.test.mjs :3 import { spawnSync } from "node:child_process";
  • shell (weak) DataArche-SSWorld-50327d9/test/smoke.test.mjs :3 import { spawn } from "node:child_process";

network 5

  • net DataArche-SSWorld-50327d9/src/engine.mjs :52 const response = await fetch(url, { redirect: "follow" });
  • net DataArche-SSWorld-50327d9/src/preview.mjs :6 import http from "node:http";
  • net DataArche-SSWorld-50327d9/ssdl/engine-support/qtloader.js :128 const response = await fetch(path);
  • net (weak) DataArche-SSWorld-50327d9/test/engine.test.mjs :5 import http from "node:http";
  • net (weak) DataArche-SSWorld-50327d9/test/smoke.test.mjs :429 const syncAs = (clientId, clientStatus, results = []) => fetch(syncUrl, { method: "POST", headers: { "Content-Type": "application/json" },

perm:untrusted 1

  • untrusted (weak) DataArche-SSWorld-50327d9/test/smoke.test.mjs :688 const version = await fetch(`http://127.0.0.1:${PORT}/__ssdl_dev/version?path=projects/demo`).then((r) => r.json());