Andrey Antukh a16d40b954 🎉 Add semantic file projection RPC and analysis prototype
Add a main RPC command, get-semantic-file, that turns a Penpot file
into a small, neutral projection: pages, frames, text, links and
interactions, with libraries, geometry and assets stripped. The
projection is what a decision model sees, so the extractor stays
model-agnostic and the deterministic checks live outside it.

Add experiments/security-projection, a Node prototype that consumes
the command: analyze.mjs (file -> projection -> checks -> decision
model), compare.mjs (one file, several models), evaluate.mjs with a
labeled set of projections, and seed.mjs, which builds real files to
validate the extractor. It talks to OpenRouter decision models.

Tests: backend_tests.rpc-semantic-test (3 tests, 21 assertions) and
24 Node tests across the prototype.

AI-assisted-by: deepseek-v4.1-flash
2026-10-08 17:40:22 +00:00

15 lines
423 B
Plaintext

# Copy to .env and fill in. Real environment variables win over this file.
# Penpot instance
PENPOT_BASE_URL=http://localhost:3450
# Authentication: either email + password, or an access token.
PENPOT_EMAIL=profile1@example.com
PENPOT_PASSWORD=123123
# PENPOT_ACCESS_TOKEN=
# OpenRouter
OPENROUTER_API_KEY=
OPENROUTER_MODEL=upstage/solar-decide-flash
# OPENROUTER_DECISIONS_URL=https://openrouter.ai/api/alpha/decisions