Skip to content

overview getting started

drferdi edited this page Sep 23, 2026 · 3 revisions

Getting started

MyPrompt is a standalone pnpm project. Everything runs from the capsule root the repository root with a pinned package manager.

Prerequisites

  • Node.js >= 22 (the contract records runtime 24.18.0)
  • pnpm 11.21.0 (pinned via packageManager in package.json)
  • For database features and authenticated Optimizer/Evaluator use: PostgreSQL with pgvector, and Supabase credentials
  • For a real Optimizer/Evaluator run: at least one provider key (XAI_API_KEY, OPENAI_API_KEY, ANTHROPIC_API_KEY, MISTRAL_API_KEY, or QWEN_API_KEY)

No credentials are committed. .env.example lists every variable name with empty values.

Install

pnpm install --frozen-lockfile

Prisma client generation is wired into build and typecheck, and uses a process-local placeholder PostgreSQL URL only when neither DATABASE_URL nor DIRECT_URL is set. It never connects to a database during verification.

Build

pnpm run build

build compiles the desktop TypeScript (tsconfig.desktop.json), stamps the version into the renderer HTML, and copies the renderer assets into dist-electron/.

Run

pnpm run start

start builds then launches Electron against dist-electron/desktop/bootstrap.js. On first launch the console sizes itself to a metric grid measured from the loaded font; a smoke mode (SENTRA_DESKTOP_SMOKE=1) exits after the window loads.

Verify

pnpm run lint
pnpm run typecheck
pnpm run test
pnpm run desktop:smoke
pnpm run deploy:dry-run

pnpm run verify chains all of the above, plus the two standalone proofs:

  • verify:structure — asserts the capsule has no workspace/parent dependency and no hard-coded D:\DEV\Monorepo or D:\Devops\abyss-monorepo paths.
  • verify:extraction — copies the capsule to a fresh temp directory, reinstalls from the frozen lockfile, and reruns the lifecycle checks there.

Full lifecycle contract

The commands in project.contract.json are the executable source of truth:

Stage Program Arguments
install pnpm install --frozen-lockfile
lint pnpm run lint
typecheck pnpm run typecheck
test pnpm run test
build pnpm run build
run pnpm run start
deployDryRun pnpm run deploy:dry-run

Clone this wiki locally