peregrine/scripts
pyr0ball bc7e3c8952 feat: DEMO_MODE — isolated public menagerie demo instance
Adds a fully neutered public demo for menagerie.circuitforge.tech/peregrine
that shows the Peregrine UI without exposing any personal data or real LLM inference.

scripts/llm_router.py:
  - Block all inference when DEMO_MODE env var is set (1/true/yes)
  - Raises RuntimeError with a user-friendly "public demo" message

app/app.py:
  - IS_DEMO constant from DEMO_MODE env var
  - Wizard gate bypassed in demo mode (demo/config/user.yaml pre-seeds a fake profile)
  - Demo banner in sidebar: explains read-only status + links to circuitforge.tech

compose.menagerie.yml (new):
  - Separate Docker Compose project (peregrine-demo) on host port 8504
  - Mounts demo/config/ and demo/data/ — isolated from personal instance
  - DEMO_MODE=true, no API keys, no /docs mount
  - Project name: peregrine-demo (run alongside personal instance)

demo/config/user.yaml:
  - Generic "Demo User" profile, wizard_complete=true, no real personal info

demo/config/llm.yaml:
  - All backends disabled (belt-and-suspenders alongside DEMO_MODE block)

demo/data/.gitkeep:
  - staging.db is auto-created on first run, gitignored via demo/data/*.db

.gitignore: add demo/data/*.db

Caddy routes menagerie.circuitforge.tech/peregrine* → 8504 (demo instance).
Personal Peregrine remains on 8502, unchanged.
2026-03-02 11:22:38 -08:00
..
classifier_service feat: add job-seeker-classifiers conda env for HF classifier benchmark 2026-02-26 23:43:41 -08:00
custom_boards chore: seed Peregrine from personal job-seeker (pre-generalization) 2026-02-24 18:25:39 -08:00
integrations feat: 13 integration implementations + config examples 2026-02-25 08:18:45 -08:00
vision_service feat: add vision service to compose stack and fine-tune wizard tab to Settings 2026-02-24 19:37:55 -08:00
__init__.py chore: seed Peregrine from personal job-seeker (pre-generalization) 2026-02-24 18:25:39 -08:00
benchmark_classifier.py feat: benchmark_classifier — MODEL_REGISTRY, --list-models, --score, --compare modes 2026-02-27 06:19:32 -08:00
classifier_adapters.py fix: RerankerAdapter falls back to label name when no LABEL_DESCRIPTIONS entry 2026-02-27 14:54:31 -08:00
company_research.py fix: resume CID glyphs, resume YAML path, PyJWT dep, candidate voice & mission UI 2026-02-26 12:32:28 -08:00
db.py feat: wizard fields in UserProfile + params column in background_tasks 2026-02-25 07:27:14 -08:00
discover.py chore: seed Peregrine from personal job-seeker (pre-generalization) 2026-02-24 18:25:39 -08:00
enrich_descriptions.py chore: seed Peregrine from personal job-seeker (pre-generalization) 2026-02-24 18:25:39 -08:00
finetune_local.py feat: containerize fine-tune pipeline (Dockerfile.finetune + make finetune) 2026-02-25 16:22:48 -08:00
generate_cover_letter.py feat: add health mission category, trim-to-sign-off, max_tokens cap for cover letters 2026-02-27 12:31:06 -08:00
generate_llm_config.py feat: auto-generate llm.yaml base_url values from user profile services config 2026-02-24 19:10:54 -08:00
imap_sync.py chore: seed Peregrine from personal job-seeker (pre-generalization) 2026-02-24 18:25:39 -08:00
license.py fix: add /v1 prefix to all license server API paths 2026-02-25 23:35:58 -08:00
license_public_key.pem feat: license.py client — verify_local, effective_tier, activate, refresh, report_usage 2026-02-25 22:53:11 -08:00
llm_router.py feat: DEMO_MODE — isolated public menagerie demo instance 2026-03-02 11:22:38 -08:00
manage-ui.sh feat: startup preflight — port collision avoidance + resource checks 2026-02-24 20:36:16 -08:00
manage-vision.sh chore: seed Peregrine from personal job-seeker (pre-generalization) 2026-02-24 18:25:39 -08:00
manage-vllm.sh feat: LGBTQIA+ focus + Phase 2/3 audit fixes 2026-02-24 20:02:03 -08:00
match.py feat: extract hard-coded personal references from all scripts via UserProfile 2026-02-24 18:45:39 -08:00
migrate.py fix: resume CID glyphs, resume YAML path, PyJWT dep, candidate voice & mission UI 2026-02-26 12:32:28 -08:00
preflight.py feat: add DUAL_GPU_MODE default, VRAM warning, and download size report to preflight 2026-02-27 00:17:00 -08:00
prepare_training_data.py feat: wire fine-tune UI end-to-end + harden setup.sh 2026-02-25 16:31:53 -08:00
resume_parser.py fix: resume CID glyphs, resume YAML path, PyJWT dep, candidate voice & mission UI 2026-02-26 12:32:28 -08:00
scrape_url.py chore: seed Peregrine from personal job-seeker (pre-generalization) 2026-02-24 18:25:39 -08:00
skills_utils.py feat: bundled skills suggestion list and content filter utility 2026-02-26 13:09:32 -08:00
sync.py chore: seed Peregrine from personal job-seeker (pre-generalization) 2026-02-24 18:25:39 -08:00
task_runner.py feat: wire fine-tune UI end-to-end + harden setup.sh 2026-02-25 16:31:53 -08:00
test_email_classify.py chore: seed Peregrine from personal job-seeker (pre-generalization) 2026-02-24 18:25:39 -08:00
user_profile.py fix: resume CID glyphs, resume YAML path, PyJWT dep, candidate voice & mission UI 2026-02-26 12:32:28 -08:00