import { setupManifest } from '@start9labs/start-sdk' /** * Boardroom Map manifest. * * Like the LLaMA-Factory and Nightshift services, this is a CONTROL PLANE — it * does not run any GPU workload itself. It is a small web UI + job runner that * SSHes into one or two NVIDIA DGX Sparks to: * 1. serve a panel of local LLMs with vLLM (loaded in waves to fit GPU memory), * 2. extract text from the board decks you drop into inbox// * (PDF/DOCX/TXT/MD — done on the StartOS box), ship it to the Sparks, and * launch a panel of sandboxed "grader" containers (each a model + a * persona) that grade each deck against the BDEF v1.1 framework * (Girdley + Munger/Buffett), * 3. optionally run a local "adjudicator" that reconciles the panel, after * which Python computes a deterministic composite (quant KPI attainment 60 * incl. profitability 30, qualitative categories 40, red-flag penalties * up to -15) and appends it to the company's running scorecard ledger. * * There is NO frontier model and NO cloud API key. In the default `airgapped` * network mode the grader containers can reach ONLY the on-Spark model proxy — * the decks and their grades never touch the internet. * * NOTE: s9pk.mk extracts the package identifier from the single-quoted value on * the line below, so keep that field on one line and avoid stray quotes above it. */ export const manifest = setupManifest({ id: 'boardroom-map', title: 'Boardroom Map', license: 'Apache-2.0', packageRepo: 'https://github.com/ten31/boardroom-map', upstreamRepo: 'https://github.com/ten31/boardroom-map', marketingUrl: 'https://github.com/ten31/boardroom-map', donationUrl: null, description: { short: 'Grade portfolio-company board decks with local LLMs on your DGX Sparks — BDEF scoring, per-company running scorecards', long: 'Boardroom Map turns your DGX Sparks into a private board-deck grading ' + 'panel. Drop each portfolio company\'s deck into its inbox folder and a ' + 'panel of local LLMs (each a model + a persona) grades it against the ' + 'BDEF v1.1 framework (Girdley + Munger/Buffett); an optional local ' + 'adjudicator reconciles the panel, then a deterministic scorer computes a ' + '0-100 composite — quantitative KPI attainment worth 60 (profitability ' + 'alone 30, plus forecast integrity: deck N actuals vs deck N-1 promises), ' + 'qualitative categories worth 40, and red-flag penalties up to -15. Each ' + 'company keeps a running scorecard ledger, and a web dashboard shows the ' + 'trends. There is no frontier model and no cloud key: in the default ' + 'air-gapped mode the graders reach only the on-Spark model endpoint, so ' + 'your confidential decks never leave your hardware. No GPU is needed on ' + 'the StartOS host.', }, // Arch-agnostic orchestrator. Docker build paths are relative to the PROJECT // ROOT (where the Makefile runs), matching the Start9 convention. images: { main: { source: { dockerBuild: { dockerfile: './orchestrator.Dockerfile', workdir: '.', }, }, arch: ['x86_64', 'aarch64'], // The orchestrator only SSHes out + extracts deck text on CPU; it never // touches a local GPU. nvidiaContainer: false, }, }, volumes: ['main'], dependencies: {}, hardwareRequirements: { ram: 2048, }, alerts: { install: 'Boardroom Map drives work on REMOTE machines (your DGX Sparks) over SSH; ' + 'nothing serves or runs on your StartOS server, and your confidential ' + 'board decks stay on your LAN. After install: (1) "Configure Sparks" for ' + 'SSH access, (2) "Configure Models" for the local models to serve, ' + '(3) "Configure Graders" for the panel + personas, (4) "Configure Grading" ' + 'for the BDEF rubric, air-gap mode, and scoring weights, (5) "Configure ' + 'Companies" for slugs and pinned KPI targets. Then drop decks into ' + 'inbox// and run "Grade Decks".', }, })