From 1a9375d6a6ad74afd9faf524f71524ca7e3d6bee Mon Sep 17 00:00:00 2001 From: James Liounis Date: Wed, 15 Jul 2026 18:45:08 -0700 Subject: [PATCH 1/5] Add Investor Signals + Sales Enrichment recipe A full-stack Python + React recipe on the Parallel Task & Monitor APIs: - Investor Signals pipeline: one daily event_stream Monitor per fund the user chooses, each detection chain-verified by a follow-up Task (previous_interaction_id), scored, CRM-checked, and delivered to Slack via a weekly cron digest or a real-time webhook receiver. - Sales Enrichment app: FastAPI + Vite/React app that turns a company into a fully-cited account brief (two concurrent Task runs) with a credibility rule that never fabricates uncited values. Built to be forked: - Watchlist is user-owned via monitor/investors.json (gitignored); no funds hardcoded. investors.example.json ships as the sample. - CRM is pluggable via a small adapter seam (backend/crm.py); Attio ships as the reference adapter, and AGENTS.md walks an agent through wiring up any CRM. - AGENTS.md is a paste-in, one-command onboarding prompt for coding agents. - No secrets or private data: .env, generated monitor artifacts, and derived portfolio lists are all gitignored; only .example fixtures are committed. Registered in README.md (Scheduled Research & Webhooks) and website/cookbook.json. Verified: ruff clean, 39 backend + 9 frontend tests pass, tsc + vite build clean. Co-Authored-By: Claude Opus 4.8 (1M context) Claude-Session: https://claude.ai/code/session_01KwAHtpTsa3PyXfb7kdhUfc --- README.md | 1 + .../parallel-investor-signals/.env.example | 44 + .../parallel-investor-signals/.gitignore | 238 ++ .../parallel-investor-signals/AGENTS.md | 190 ++ .../parallel-investor-signals/LICENSE | 21 + .../parallel-investor-signals/Makefile | 43 + .../parallel-investor-signals/README.md | 224 ++ .../docs/empty-state.png | Bin 0 -> 59145 bytes .../docs/results-dark.png | Bin 0 -> 156504 bytes .../docs/results-light.png | Bin 0 -> 163884 bytes .../monitor/README-monitor.md | 85 + .../monitor/build_portfolio.py | 71 + .../monitor/check.py | 163 ++ .../monitor/common.py | 147 ++ .../monitor/config.py | 122 + .../monitor/investors.example.json | 8 + .../monitor/monitors.py | 105 + .../monitor/portfolio_names.example.json | 14 + .../monitor/slack_notify.py | 60 + .../monitor/sweep.py | 75 + .../project/.gitignore | 26 + .../project/.oxlintrc.json | 8 + .../project/.vercelignore | 6 + .../project/README.md | 120 + .../project/api/index.py | 16 + .../project/backend/__init__.py | 1 + .../project/backend/attio_client.py | 136 + .../project/backend/crm.py | 94 + .../project/backend/investor_core.py | 447 ++++ .../project/backend/main.py | 468 ++++ .../project/backend/models.py | 126 + .../project/backend/parallel_client.py | 822 ++++++ .../project/backend/requirements.txt | 26 + .../project/backend/signals_service.py | 305 +++ .../project/index.html | 17 + .../project/package-lock.json | 2211 +++++++++++++++++ .../project/package.json | 31 + .../project/public/favicon.svg | 18 + .../project/requirements.txt | 5 + .../project/src/App.tsx | 317 +++ .../project/src/assets/logo/dark.svg | 18 + .../project/src/assets/logo/light.svg | 18 + .../project/src/assets/logo/wordmark_dark.svg | 10 + .../src/assets/logo/wordmark_light.svg | 10 + .../project/src/brand/parallel-theme.css | 131 + .../project/src/components/AccountCard.tsx | 128 + .../project/src/components/AskBar.tsx | 151 ++ .../project/src/components/BriefHeader.tsx | 114 + .../project/src/components/BulkPanel.tsx | 233 ++ .../project/src/components/ConfidencePill.tsx | 32 + .../project/src/components/ContactsTable.tsx | 115 + .../src/components/CustomFieldsEditor.tsx | 126 + .../src/components/EnrichSearchBar.tsx | 80 + .../project/src/components/FieldRow.tsx | 76 + .../project/src/components/Header.tsx | 80 + .../project/src/components/HomePage.tsx | 125 + .../src/components/LiveResearchState.tsx | 127 + .../project/src/components/PasswordGate.tsx | 94 + .../project/src/components/SignalsPanel.tsx | 274 ++ .../project/src/components/SourceDrawer.tsx | 119 + .../src/components/SourceDrawerContext.tsx | 23 + .../project/src/components/States.tsx | 60 + .../project/src/index.css | 54 + .../project/src/lib/api.ts | 140 ++ .../project/src/lib/auth.ts | 30 + .../project/src/lib/cache.test.ts | 52 + .../project/src/lib/cache.ts | 73 + .../project/src/lib/customFields.ts | 17 + .../project/src/lib/format.test.ts | 28 + .../project/src/lib/format.ts | 32 + .../project/src/lib/mock.ts | 125 + .../project/src/lib/profiles.ts | 70 + .../project/src/lib/useTheme.ts | 23 + .../project/src/main.tsx | 10 + .../project/src/types.ts | 159 ++ .../project/tsconfig.app.json | 26 + .../project/tsconfig.json | 7 + .../project/tsconfig.node.json | 23 + .../project/vercel.json | 17 + .../project/vite.config.ts | 19 + .../parallel-investor-signals/pyproject.toml | 34 + .../requirements-dev.txt | 3 + .../tests/conftest.py | 66 + .../tests/test_core_logic.py | 114 + .../tests/test_gate.py | 56 + .../tests/test_routes.py | 102 + .../tests/test_slack_blocks.py | 107 + website/cookbook.json | 12 + 88 files changed, 10354 insertions(+) create mode 100644 python-recipes/parallel-investor-signals/.env.example create mode 100644 python-recipes/parallel-investor-signals/.gitignore create mode 100644 python-recipes/parallel-investor-signals/AGENTS.md create mode 100644 python-recipes/parallel-investor-signals/LICENSE create mode 100644 python-recipes/parallel-investor-signals/Makefile create mode 100644 python-recipes/parallel-investor-signals/README.md create mode 100644 python-recipes/parallel-investor-signals/docs/empty-state.png create mode 100644 python-recipes/parallel-investor-signals/docs/results-dark.png create mode 100644 python-recipes/parallel-investor-signals/docs/results-light.png create mode 100644 python-recipes/parallel-investor-signals/monitor/README-monitor.md create mode 100644 python-recipes/parallel-investor-signals/monitor/build_portfolio.py create mode 100644 python-recipes/parallel-investor-signals/monitor/check.py create mode 100644 python-recipes/parallel-investor-signals/monitor/common.py create mode 100644 python-recipes/parallel-investor-signals/monitor/config.py create mode 100644 python-recipes/parallel-investor-signals/monitor/investors.example.json create mode 100644 python-recipes/parallel-investor-signals/monitor/monitors.py create mode 100644 python-recipes/parallel-investor-signals/monitor/portfolio_names.example.json create mode 100644 python-recipes/parallel-investor-signals/monitor/slack_notify.py create mode 100644 python-recipes/parallel-investor-signals/monitor/sweep.py create mode 100644 python-recipes/parallel-investor-signals/project/.gitignore create mode 100644 python-recipes/parallel-investor-signals/project/.oxlintrc.json create mode 100644 python-recipes/parallel-investor-signals/project/.vercelignore create mode 100644 python-recipes/parallel-investor-signals/project/README.md create mode 100644 python-recipes/parallel-investor-signals/project/api/index.py create mode 100644 python-recipes/parallel-investor-signals/project/backend/__init__.py create mode 100644 python-recipes/parallel-investor-signals/project/backend/attio_client.py create mode 100644 python-recipes/parallel-investor-signals/project/backend/crm.py create mode 100644 python-recipes/parallel-investor-signals/project/backend/investor_core.py create mode 100644 python-recipes/parallel-investor-signals/project/backend/main.py create mode 100644 python-recipes/parallel-investor-signals/project/backend/models.py create mode 100644 python-recipes/parallel-investor-signals/project/backend/parallel_client.py create mode 100644 python-recipes/parallel-investor-signals/project/backend/requirements.txt create mode 100644 python-recipes/parallel-investor-signals/project/backend/signals_service.py create mode 100644 python-recipes/parallel-investor-signals/project/index.html create mode 100644 python-recipes/parallel-investor-signals/project/package-lock.json create mode 100644 python-recipes/parallel-investor-signals/project/package.json create mode 100644 python-recipes/parallel-investor-signals/project/public/favicon.svg create mode 100644 python-recipes/parallel-investor-signals/project/requirements.txt create mode 100644 python-recipes/parallel-investor-signals/project/src/App.tsx create mode 100644 python-recipes/parallel-investor-signals/project/src/assets/logo/dark.svg create mode 100644 python-recipes/parallel-investor-signals/project/src/assets/logo/light.svg create mode 100644 python-recipes/parallel-investor-signals/project/src/assets/logo/wordmark_dark.svg create mode 100644 python-recipes/parallel-investor-signals/project/src/assets/logo/wordmark_light.svg create mode 100644 python-recipes/parallel-investor-signals/project/src/brand/parallel-theme.css create mode 100644 python-recipes/parallel-investor-signals/project/src/components/AccountCard.tsx create mode 100644 python-recipes/parallel-investor-signals/project/src/components/AskBar.tsx create mode 100644 python-recipes/parallel-investor-signals/project/src/components/BriefHeader.tsx create mode 100644 python-recipes/parallel-investor-signals/project/src/components/BulkPanel.tsx create mode 100644 python-recipes/parallel-investor-signals/project/src/components/ConfidencePill.tsx create mode 100644 python-recipes/parallel-investor-signals/project/src/components/ContactsTable.tsx create mode 100644 python-recipes/parallel-investor-signals/project/src/components/CustomFieldsEditor.tsx create mode 100644 python-recipes/parallel-investor-signals/project/src/components/EnrichSearchBar.tsx create mode 100644 python-recipes/parallel-investor-signals/project/src/components/FieldRow.tsx create mode 100644 python-recipes/parallel-investor-signals/project/src/components/Header.tsx create mode 100644 python-recipes/parallel-investor-signals/project/src/components/HomePage.tsx create mode 100644 python-recipes/parallel-investor-signals/project/src/components/LiveResearchState.tsx create mode 100644 python-recipes/parallel-investor-signals/project/src/components/PasswordGate.tsx create mode 100644 python-recipes/parallel-investor-signals/project/src/components/SignalsPanel.tsx create mode 100644 python-recipes/parallel-investor-signals/project/src/components/SourceDrawer.tsx create mode 100644 python-recipes/parallel-investor-signals/project/src/components/SourceDrawerContext.tsx create mode 100644 python-recipes/parallel-investor-signals/project/src/components/States.tsx create mode 100644 python-recipes/parallel-investor-signals/project/src/index.css create mode 100644 python-recipes/parallel-investor-signals/project/src/lib/api.ts create mode 100644 python-recipes/parallel-investor-signals/project/src/lib/auth.ts create mode 100644 python-recipes/parallel-investor-signals/project/src/lib/cache.test.ts create mode 100644 python-recipes/parallel-investor-signals/project/src/lib/cache.ts create mode 100644 python-recipes/parallel-investor-signals/project/src/lib/customFields.ts create mode 100644 python-recipes/parallel-investor-signals/project/src/lib/format.test.ts create mode 100644 python-recipes/parallel-investor-signals/project/src/lib/format.ts create mode 100644 python-recipes/parallel-investor-signals/project/src/lib/mock.ts create mode 100644 python-recipes/parallel-investor-signals/project/src/lib/profiles.ts create mode 100644 python-recipes/parallel-investor-signals/project/src/lib/useTheme.ts create mode 100644 python-recipes/parallel-investor-signals/project/src/main.tsx create mode 100644 python-recipes/parallel-investor-signals/project/src/types.ts create mode 100644 python-recipes/parallel-investor-signals/project/tsconfig.app.json create mode 100644 python-recipes/parallel-investor-signals/project/tsconfig.json create mode 100644 python-recipes/parallel-investor-signals/project/tsconfig.node.json create mode 100644 python-recipes/parallel-investor-signals/project/vercel.json create mode 100644 python-recipes/parallel-investor-signals/project/vite.config.ts create mode 100644 python-recipes/parallel-investor-signals/pyproject.toml create mode 100644 python-recipes/parallel-investor-signals/requirements-dev.txt create mode 100644 python-recipes/parallel-investor-signals/tests/conftest.py create mode 100644 python-recipes/parallel-investor-signals/tests/test_core_logic.py create mode 100644 python-recipes/parallel-investor-signals/tests/test_gate.py create mode 100644 python-recipes/parallel-investor-signals/tests/test_routes.py create mode 100644 python-recipes/parallel-investor-signals/tests/test_slack_blocks.py diff --git a/README.md b/README.md index 0abb61a..c45b222 100644 --- a/README.md +++ b/README.md @@ -116,6 +116,7 @@ Recurring research, cron jobs, and webhook delivery. | --- | --- | --- | --- | --- | | [**Daily Insights**](typescript-recipes/parallel-daily-insights) | Cron-triggered daily research feed — runs Tasks on a schedule, persists to KV, publishes a public data feed. Includes a `SPEC.md` showing the task spec used. | `Task` `Webhooks` `Cron` | Cloudflare Workers · KV | – | | [**Vendor Intelligence**](typescript-recipes/parallel-vendor-intelligence) | Researches vendor risk, watches the structured report for changes, and runs follow-up research only when a change crosses the review threshold. | `Task` `Deep Research` `Monitors` | TypeScript · Local scripts | – | +| [**Investor Signals + Sales Enrichment**](python-recipes/parallel-investor-signals) | Track VC funds *you* choose for new AI-native rounds — one daily Monitor per fund, each detection chain-verified by a follow-up Task, scored, CRM-checked, and posted to Slack — plus a cited company-enrichment app. Bring your own watchlist and CRM; includes an `AGENTS.md` one-command setup. | `Task` `Monitors` `Webhooks` `Cron` | Python · FastAPI · React · Vercel | – | ### Deep Research & Notebooks diff --git a/python-recipes/parallel-investor-signals/.env.example b/python-recipes/parallel-investor-signals/.env.example new file mode 100644 index 0000000..12fd7fe --- /dev/null +++ b/python-recipes/parallel-investor-signals/.env.example @@ -0,0 +1,44 @@ +# ── Required ──────────────────────────────────────────────────────────────── +# Parallel API key (platform.parallel.ai). Server-side only — never exposed +# to the browser; the frontend talks exclusively to your own /api routes. +PARALLEL_API_KEY="" + +# Shared passphrase for the app's access gate. The gate is CLOSED until this +# is set — there is no default. Rotate any time; stale sessions just re-gate. +DEMO_PASSWORD="" + +# ── Watchlist (optional override) ─────────────────────────────────────────── +# The funds you track normally live in monitor/investors.json (copy it from +# monitor/investors.example.json). Set this to a comma-separated list to +# override the file — handy for CI or one-off runs. Leave blank to use the file. +INVESTORS="" + +# ── Slack delivery (optional — pipeline runs fine without it) ─────────────── +# Incoming webhook for the signals channel. Unset = Slack quietly disabled. +SLACK_WEBHOOK_URL="" + +# ── Deployment (optional) ─────────────────────────────────────────────────── +# Public URL of the deployed app; used for "Enrich →" deep links in Slack. +APP_URL="" + +# Shared secret protecting /api/monitor/webhook (real-time push). Set the same +# value in your hosting env, then register with: +# python monitor/monitors.py set-webhook https:// +WEBHOOK_SECRET="" + +# Auth for the weekly-digest cron (Vercel sends "Authorization: Bearer " +# automatically when the env var is set on the project). +CRON_SECRET="" + +# ── CRM integration (optional) ────────────────────────────────────────────── +# The pipeline can check each signal against your CRM ("already in pipeline? +# active deals? who owns it?"). It's pluggable — Attio ships as the reference +# adapter. Pick the provider (default: attio) and set that provider's key. +# Add your own CRM by implementing one adapter file — see project/backend/crm.py +# and AGENTS.md. With no key set, signals fall back to the local known-companies +# label and everything else runs unchanged. +CRM_PROVIDER="attio" + +# Attio (the reference adapter): a Bearer token with record read scopes. +# Enables live checks (record + active deals + account owner + deep link). +ATTIO_API_KEY="" diff --git a/python-recipes/parallel-investor-signals/.gitignore b/python-recipes/parallel-investor-signals/.gitignore new file mode 100644 index 0000000..b9a3ccb --- /dev/null +++ b/python-recipes/parallel-investor-signals/.gitignore @@ -0,0 +1,238 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[codz] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +/lib/ +/lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py.cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +# Pipfile.lock + +# UV +# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# uv.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +# poetry.lock +# poetry.toml + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +# pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python. +# https://pdm-project.org/en/latest/usage/project/#working-with-version-control +# pdm.lock +# pdm.toml +.pdm-python +.pdm-build/ + +# pixi +# Similar to Pipfile.lock, it is generally recommended to include pixi.lock in version control. +# pixi.lock +# Pixi creates a virtual environment in the .pixi directory, just like venv module creates one +# in the .venv directory. It is recommended not to include this directory in version control. +.pixi + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# Redis +*.rdb +*.aof +*.pid + +# RabbitMQ +mnesia/ +rabbitmq/ +rabbitmq-data/ + +# ActiveMQ +activemq-data/ + +# SageMath parsed files +*.sage.py + +# Environments +.env +.envrc +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +# .idea/ + +# Abstra +# Abstra is an AI-powered process automation framework. +# Ignore directories containing user credentials, local state, and settings. +# Learn more at https://abstra.io/docs +.abstra/ + +# Visual Studio Code +# Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore +# that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore +# and can be added to the global gitignore or merged into this file. However, if you prefer, +# you could uncomment the following to ignore the entire vscode folder +# .vscode/ +# Temporary file for partial code execution +tempCodeRunnerFile.py + +# Ruff stuff: +.ruff_cache/ + +# PyPI configuration file +.pypirc + +# Marimo +marimo/_static/ +marimo/_lsp/ +__marimo__/ + +# Streamlit +.streamlit/secrets.toml + +# Backend venv +backend/.venv/ + +# Your GTM data — never commit (bring your own CSV export here) +data/ + +# Your watchlist — your target funds are your strategy, keep them private +monitor/investors.json + +# Monitor generated artifacts (ids, seen-event state, detected signals) +monitor/state.json +monitor/signals.json +monitor/monitors.json + +.DS_Store + +# Portfolio dedupe lists are derived from your own CRM export — never commit +monitor/portfolio_names.json +project/backend/portfolio_names.json diff --git a/python-recipes/parallel-investor-signals/AGENTS.md b/python-recipes/parallel-investor-signals/AGENTS.md new file mode 100644 index 0000000..b945a23 --- /dev/null +++ b/python-recipes/parallel-investor-signals/AGENTS.md @@ -0,0 +1,190 @@ +# AGENTS.md — onboarding for a coding agent + +> **How to use this file.** Paste its contents (or point your agent at it) from a fresh +> clone of this recipe. It tells the agent what the project is, the invariants it must not +> break, and the exact sequence to take it from clone → running — including wiring up the +> user's own CRM. It's written to be executed, not just read. + +--- + +## Your task, in one line + +Get **Investor Signals + Sales Enrichment** running for the user: install everything, +collect the few things you can't invent (their Parallel API key, their fund watchlist, and +which CRM they use), launch the app, wire up their CRM, and — if they want it — create the +investor monitors and run the first sweep. Follow the steps in order; pause only for the +inputs marked **ASK THE USER**. + +## What this project is + +Two workflows on the Parallel **Task** and **Monitor** APIs, sharing one Python core: + +1. **Investor Signals pipeline** (`monitor/`) — one daily Parallel Monitor per fund on the + user's watchlist detects new AI-native funding rounds (seed–Series B); each detection is + verified by a chained follow-up Task (`previous_interaction_id`), scored by a priority + policy, optionally checked against the user's CRM, and delivered to Slack (weekly digest + or real-time webhook). +2. **Sales Enrichment app** (`project/`) — a React + FastAPI app. Type a company → two + concurrent Task runs (account + contacts) merge into one cited `ResearchBrief`. Bulk CSV + mode and an ad-hoc "ask bar" too. + +**Stack:** FastAPI (Python ≥ 3.12) backend, Vite + React + TypeScript frontend, deployable +to Vercel as one serverless function + static build. `parallel-web` SDK. + +## Map of the code + +| Path | What it is | +|---|---| +| `project/backend/parallel_client.py` | ★ The **only** file that reads `PARALLEL_API_KEY` and calls the Task API. | +| `project/backend/investor_core.py` | ★ Shared core: qualification schema, priority policy, Slack Block Kit formatting. One source of truth for the CLI, the app, and the webhook. | +| `project/backend/crm.py` | ★ The **CRM adapter seam** — selects a provider and normalizes its result. This is where you plug in the user's CRM. | +| `project/backend/attio_client.py` | The reference CRM adapter (Attio). Copy it to add another CRM. | +| `project/backend/main.py` | FastAPI routes, the access gate, the webhook receiver, the cron endpoint. | +| `project/backend/signals_service.py` | Signals surfaces + the weekly-digest job. | +| `project/src/` | The React app. `types.ts` mirrors the backend `ResearchBrief` exactly. | +| `monitor/config.py` | Loads the watchlist + holds the monitor queries/schemas/processors. | +| `monitor/investors.example.json` | Sample watchlist. Copy to `investors.json` (gitignored). | +| `monitor/{sweep,monitors,check,slack_notify,build_portfolio}.py` | The pipeline CLI. | +| `tests/` | pytest suite (credibility gate, priority policy, routes, Slack blocks). | + +## Invariants — do not break these + +1. **The API key stays server-side.** Only `parallel_client.py` (and the async webhook in + `main.py`) touch `PARALLEL_API_KEY`. The browser talks exclusively to `/api/*`. Never + put the key in frontend code, logs, or anything committed. +2. **Never fabricate a value.** The credibility rule is load-bearing: any field without a + supporting citation is returned as `null`. Don't "helpfully" fill blanks. +3. **Don't touch the output JSON schemas or the `field-basis` beta header** in + `parallel_client.py` without updating `types.ts` and `to_research_brief()` in lockstep — + the field names map one-to-one to the UI. +4. **Secrets and private data never get committed.** `.env`, `monitor/investors.json`, + `data/`, and the generated `monitor/*.json` (`portfolio_names.json`, `monitors.json`, + `signals.json`, `state.json`) are all gitignored. Keep them that way. Use the + `.example` files for anything you commit. +5. **The watchlist and the CRM belong to the user.** There is no default fund list, and no + CRM is assumed — ask. + +## Setup sequence + +Run these from the recipe root (`python-recipes/parallel-investor-signals`). + +### Step 1 — install (safe to run unattended) + +```bash +make setup # creates the venv, installs backend + dev + frontend deps, scaffolds .env +``` + +### Step 2 — collect what you can't invent + +**ASK THE USER** for: + +- **Their Parallel API key** (from [platform.parallel.ai](https://platform.parallel.ai)). +- **The VC funds they want to track**, by press name (e.g. "Sequoia Capital", + "Andreessen Horowitz"). If they don't have a list yet, use the example list and tell them + they can edit `monitor/investors.json` later. +- **Which CRM they use** (Attio, HubSpot, Salesforce, Pipedrive, Affinity, none, …). You'll + wire it up in Step 4. + +Write the key and watchlist (do **not** echo the key back or commit `.env`): + +```bash +# .env — set at least these two +# PARALLEL_API_KEY= +# DEMO_PASSWORD= + +cp monitor/investors.example.json monitor/investors.json +# then edit monitor/investors.json → the "investors" array = their funds +``` + +Confirm the backend can see the key without printing it: + +```bash +source project/backend/.venv/bin/activate +python -c "import os,dotenv; dotenv.load_dotenv('.env'); print('key_loaded:', bool(os.environ.get('PARALLEL_API_KEY')))" +``` + +### Step 3 — run the enrichment app + +Launch both processes (background them or use two terminals): + +```bash +make backend # FastAPI on :8000 +make frontend # Vite on :5173 +``` + +Tell the user to open **http://localhost:5173**, unlock with their `DEMO_PASSWORD`, and try +`ramp.com`. Backend health (no secret leaked): `curl -s localhost:8000/api/health`. + +### Step 4 — wire up their CRM + +The CRM is **pluggable**. The signals pipeline asks one question about each company — +*already in our CRM? active deals? who owns it?* — through the small contract in +`project/backend/crm.py`. Your job: make that contract answer against the user's CRM. + +- **If they use Attio** → it's the reference adapter and already implemented. Just set + `CRM_PROVIDER="attio"` and `ATTIO_API_KEY=...` in `.env`. Done. +- **If they use another CRM** → build an adapter: + 1. **Find the API docs.** Look up that CRM's REST API — the endpoints for *search/query a + company by domain or name*, *list a company's deals/opportunities*, and *get the record + owner*, plus how auth works (usually a Bearer token or OAuth). Use web search / fetch + the official developer docs; confirm the exact request/response shapes before coding. + 2. **Implement the adapter.** Copy `project/backend/attio_client.py` to + `project/backend/_client.py` and implement the three names the contract requires + (read the docstring at the top of `crm.py`): + - `NAME: str` — e.g. `"HubSpot"` + - `def enabled() -> bool` — is its API key configured? + - `def check_pipeline(domain, company) -> dict | None` — return + `{in_crm, record_id, deal_count, owner, url}`, or `None` when unavailable. + 3. **Register it** in `crm.py`'s `_PROVIDERS` dict, add the key var to `.env.example`, and + set `CRM_PROVIDER=` + the API key in `.env`. + 4. **Verify** against a company you know is in their CRM: + ```bash + python -c "from project.backend import crm; print(crm.check_pipeline('ramp.com','Ramp'))" + ``` + (Run from the recipe root with the venv active; expect the normalized dict or `None`.) +- **If they use no CRM** → skip it. Signals fall back to the local known-companies label and + everything else runs unchanged. + +Keep the credibility and secrets invariants: the CRM key is server-side only, and never +invent fields the CRM API didn't return. + +### Step 5 — the investor-signals pipeline (only if the user wants it) + +Creating monitors **spends Parallel credits and creates cloud resources** — confirm with the +user before running `monitors.py create`. + +```bash +source project/backend/.venv/bin/activate +python monitor/sweep.py # once: 60-day backfill per fund → signals.json +python monitor/monitors.py create # once: one daily monitor per fund (cloud resource) +python monitor/check.py # drain + verify new events (run on any cadence) +python monitor/slack_notify.py --preview # dry-run the Slack format +``` + +To clean up the cloud monitors later: `python monitor/monitors.py cancel`. + +### Step 6 — verify your work + +```bash +make test # backend pytest + frontend vitest — must pass +make lint # ruff +``` + +If you added a CRM adapter, add a small unit test for its `check_pipeline` result mapping +(stub the HTTP call — no live CRM in tests, mirroring `tests/conftest.py`). + +## Deploying (only when asked) + +Vercel: static Vite build + FastAPI as one serverless function (`project/api/index.py`, +`project/vercel.json`). From `project/`: `vercel deploy --prod --yes`, then +`vercel env add production` for each required variable (including `CRM_PROVIDER` and +your CRM's key). See the README's [Deployment](README.md#deployment-vercel) section. For +real-time Slack push, register the webhook with +`python monitor/monitors.py set-webhook https://.vercel.app`. + +## When you're done + +Report to the user: what's running and on which ports, which CRM you wired up (and whether +its live check succeeded), whether monitors were created (that they cost credits + how to +cancel), whether tests passed, and the one or two things still in their hands. Never claim +the pipeline is "live" if you only ran setup — say exactly what you did. diff --git a/python-recipes/parallel-investor-signals/LICENSE b/python-recipes/parallel-investor-signals/LICENSE new file mode 100644 index 0000000..1a2d13e --- /dev/null +++ b/python-recipes/parallel-investor-signals/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 James Liounis + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/python-recipes/parallel-investor-signals/Makefile b/python-recipes/parallel-investor-signals/Makefile new file mode 100644 index 0000000..e41813a --- /dev/null +++ b/python-recipes/parallel-investor-signals/Makefile @@ -0,0 +1,43 @@ +# Developer ergonomics. Every target assumes repo root. +VENV := project/backend/.venv +PY := $(VENV)/bin/python +PIP := $(VENV)/bin/pip + +.PHONY: help setup dev backend frontend test test-backend test-frontend lint build clean + +help: ## List targets + @grep -E '^[a-zA-Z_-]+:.*?## ' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-15s\033[0m %s\n", $$1, $$2}' + +setup: ## One-time: venv + backend deps + dev tools + frontend deps + python3 -m venv $(VENV) + $(PIP) install -q -r project/backend/requirements.txt -r requirements-dev.txt + cd project && npm install + @test -f .env || cp .env.example .env + @echo "→ fill in .env (PARALLEL_API_KEY at minimum), then: make dev" + +backend: ## Run the FastAPI backend on :8000 + cd project && $(abspath $(PY)) -m uvicorn backend.main:app --reload --port 8000 + +frontend: ## Run the Vite dev server on :5173 + cd project && npm run dev + +dev: ## Print the two commands to run (separate terminals) + @echo "terminal 1: make backend" + @echo "terminal 2: make frontend" + +test: test-backend test-frontend ## All tests + +test-backend: ## Backend unit + integration tests + $(PY) -m pytest + +test-frontend: ## Frontend lib tests + cd project && npm run test -- --run + +lint: ## Ruff over Python + $(VENV)/bin/ruff check . + +build: ## Production frontend build (also typechecks) + cd project && npm run build + +clean: ## Remove generated artifacts + rm -rf project/dist project/node_modules $(VENV) diff --git a/python-recipes/parallel-investor-signals/README.md b/python-recipes/parallel-investor-signals/README.md new file mode 100644 index 0000000..5306094 --- /dev/null +++ b/python-recipes/parallel-investor-signals/README.md @@ -0,0 +1,224 @@ +# Investor Signals + Sales Enrichment + +[![License: MIT](https://img.shields.io/badge/License-MIT-black.svg)](LICENSE) + +**A GTM intelligence stack built on the [Parallel](https://parallel.ai) Task & Monitor APIs** — two production-grade workflows that replace stale data-vendor subscriptions with live, cited web research: + +1. **Investor Signals pipeline** — you pick the VC funds you want to track. Daily Parallel Monitors watch each fund for new AI-native investments (seed–Series B), verify every detection with a chained research task, check your CRM, score priority, and deliver a weekly Slack digest with warm-intro paths. +2. **Sales Enrichment app** — type a company, get a fully-sourced account brief in ~1 minute: firmographics, funding, tech stack, buying signals, decision-maker contacts. Every field traceable to the exact web page it came from. Bulk CSV mode included. + +> **You bring the watchlist.** Nothing about which funds to track is hardcoded — you list your own in `monitor/investors.json` (gitignored, never committed). See [Choose the funds you track](#1-choose-the-funds-you-track). + +![Results view — every field cited, with confidence ratings](docs/results-light.png) + +## Why this exists + +Data vendors ship you a **snapshot of a database**. This stack runs **live web research at request time**: + +- **Fresh, not stale** — funding rounds and hiring surges from this week, not last year's crawl. +- **Grounded, not asserted** — every value carries citations with source excerpts. A value with no supporting citation renders blank: the backend **never fabricates** (enforced server-side, covered by tests). +- **Honest about uncertainty** — per-field confidence ratings; contact emails are either citation-backed or clearly labeled as inferred patterns, never "verified." + +## What it shows + +- **Task API with structured output + research basis** — per-field citations, excerpts, and confidence on every enriched value. +- **Monitor API (`event_stream`)** — one daily monitor per fund, cheap wide detection with structured, cited output. +- **The monitor → task chain** — each detected event is passed as `previous_interaction_id` to a follow-up Task that verifies it with fresh citations. Detection is tuned for recall; verification for precision. +- **Webhooks + Cron** — real-time push via a serverless receiver, or a scheduled weekly digest. +- A credibility rule, priority policy, and Slack formatting that are all **one source of truth**, shared across the CLI pipeline, the web app, and the serverless webhook. + +--- + +## Setup for humans + +Everything you need to run this locally, step by step. If you'd rather have a coding agent do it for you, hand it [`AGENTS.md`](AGENTS.md) — a single paste-in prompt that sets the whole thing up (see [One-command agent setup](#one-command-agent-setup)). + +### Prerequisites + +- **Node ≥ 20** and **Python ≥ 3.12** +- A **Parallel API key** — create one at [platform.parallel.ai](https://platform.parallel.ai) +- *(optional)* a Slack incoming webhook, and an [Attio](https://attio.com) API key, for delivery + live CRM checks + +### 0. Clone and install + +```bash +git clone https://github.com/parallel-web/parallel-cookbook.git +cd parallel-cookbook/python-recipes/parallel-investor-signals + +make setup # venv + backend deps + dev tools + frontend deps + scaffolds .env +``` + +`make setup` copies `.env.example` to `.env`. Open `.env` and set at least: + +```dotenv +PARALLEL_API_KEY=your_key_here # server-side only — never exposed to the browser +DEMO_PASSWORD=pick-any-passphrase # the app's access gate is CLOSED until this is set +``` + +Every variable is documented in [`.env.example`](.env.example). All optional integrations (Slack, Attio, webhook push, cron) degrade gracefully when unset. + +### 1. Choose the funds you track + +The watchlist is **yours** — the repo ships no baked-in list. Copy the example and edit it: + +```bash +cp monitor/investors.example.json monitor/investors.json +``` + +```jsonc +// monitor/investors.json (gitignored — your target list stays private) +{ + "investors": [ + "Sequoia Capital", + "Andreessen Horowitz", + "Your Fund of Interest" + ] +} +``` + +List funds by the name they go by in the press. `monitor/investors.json` is gitignored, so your target list never lands in git. (You can also set an `INVESTORS="Fund A,Fund B"` env var, which overrides the file — handy in CI.) + +### 2. Run the enrichment app + +Two processes, two terminals: + +```bash +make backend # terminal 1 → FastAPI on http://localhost:8000 +make frontend # terminal 2 → Vite on http://localhost:5173 +``` + +Open **http://localhost:5173**, unlock with your `DEMO_PASSWORD`, and enrich a company (try `ramp.com`). Click any source marker to see the exact excerpt behind a claim. See [`project/README.md`](project/README.md) for the full app tour. + +### 3. Run the investor-signals pipeline + +```bash +source project/backend/.venv/bin/activate + +python monitor/sweep.py # once: 60-day backfill (monitors can't do history) +python monitor/monitors.py create # once: one daily Parallel monitor per fund +python monitor/check.py # any cadence: drain + verify new events → signals.json +python monitor/slack_notify.py --preview # inspect the Slack format, dry-run +``` + +`check.py` is the recurring entry point — run it manually, via cron, or wire it to a scheduler. Full pipeline details, design decisions, and Slack conventions are in [`monitor/README-monitor.md`](monitor/README-monitor.md). + +**Optional — label companies you already know.** To tag signals as "known" vs "net-new," derive a names-only list from any CRM/portfolio CSV export: + +```bash +python monitor/build_portfolio.py data/your-companies.csv --name-col Company +``` + +The raw CSV (`data/`) and the derived `portfolio_names.json` are both gitignored — only a fictional example fixture is committed. + +### 4. Run the tests + +```bash +make test # backend pytest + frontend vitest +make lint # ruff over Python +``` + +--- + +## Architecture + +``` + ┌─ Sales Enrichment (on demand) ─────────────────────────┐ +Browser ── /api/enrich ──▶│ FastAPI ─┬▶ Task run: ACCOUNT (firmo · funding · tech)│ + ▲ │ └▶ Task run: CONTACTS (concurrent) │ + └── cited ResearchBrief◀───────────── merged, credibility-rule enforced ────────┘ + + ┌─ Investor Signals (continuous) ────────────────────────┐ +Parallel Monitors (cloud) │ 1 event_stream monitor per fund on your watchlist, daily│ + │ events └────────────────────────────────────────────────────────┘ + ▼ +/api/signals/weekly-digest (Vercel Cron, Mondays) /api/monitor/webhook (real-time, optional) + │ strict 7-day gates → chained verification (previous_interaction_id) + │ → CRM check (Attio) → priority score (stage/raise/fit) + ▼ + ONE Slack message: every qualifying round, with sources + intro path + CRM link +``` + +Key design decisions, all covered by the test suite: + +| Rule | Where | +|---|---| +| **Credibility rule**: no citation → `null`, never a fabricated value | `backend/parallel_client.py` | +| **Detection ≠ qualification**: monitors are recall-tuned; every event passes a chained verification task before it becomes a signal | `backend/investor_core.py` | +| **Strict date windows**: unparseable dates are excluded, never assumed fresh | `backend/signals_service.py` | +| **Priority policy**: Seed/Series A weighted over Series B ("rip-and-replace" territory), + raise size + product-fit rating | `investor_core.priority_for` | +| **Server-side access gate**: every `/api` route requires a passphrase; closed until `DEMO_PASSWORD` is set | `backend/main.py` | + +## Repository map + +``` +├── project/ # the web app +│ ├── backend/ # FastAPI (Python) +│ │ ├── parallel_client.py # ★ the only file that talks to Parallel (Task API) +│ │ ├── investor_core.py # ★ signals pipeline core: schema, priority, Slack blocks +│ │ ├── signals_service.py # signals surfaces + weekly digest job +│ │ ├── attio_client.py # CRM pipeline checks (optional) +│ │ └── main.py # routes, access gate, webhook receiver, cron endpoint +│ └── src/ # React + TypeScript + Tailwind +├── monitor/ # the pipeline CLI (watchlist, monitors, sweep, drain, notify) +│ ├── investors.example.json # sample watchlist — copy to investors.json and make it yours +│ └── config.py # watchlist loader + query/schema/processor tuning surface +├── tests/ # backend unit + integration tests (pytest) +├── AGENTS.md # paste-in onboarding prompt for a coding agent +├── Makefile # make setup / dev / test / lint / build +└── .env.example # every configuration variable, documented +``` + +## Configuration + +All via environment (see [`.env.example`](.env.example)): + +| Variable | Required | Purpose | +|---|---|---| +| `PARALLEL_API_KEY` | ✅ | Parallel API access (server-side only) | +| `DEMO_PASSWORD` | ✅ | Access-gate passphrase — the API is closed without it | +| `INVESTORS` | – | Comma-separated watchlist override (otherwise read from `investors.json`) | +| `SLACK_WEBHOOK_URL` | for Slack | Incoming webhook; unset = delivery quietly disabled | +| `APP_URL` | for Slack links | Deployed app URL for "Enrich →" deep links | +| `CRON_SECRET` | for weekly digest | Auth for the Vercel cron (sent as a Bearer header automatically) | +| `WEBHOOK_SECRET` | for real-time push | Shared secret on the monitor webhook receiver | +| `ATTIO_API_KEY` | for CRM checks | Live in-pipeline / deal / owner lookups + record links | + +Beyond the watchlist, the two other tuning surfaces are the **priority thresholds** (`investor_core.STAGE_WEIGHT`, `priority_for`) and the **fit rubric** — the 1–10 prospect-scoring prompt (`investor_core.FIT_RUBRIC`). Adapt all three to your product and funds. + +## Deployment (Vercel) + +The app deploys as a static Vite build plus the FastAPI app running as a single Python serverless function (`project/api/index.py` re-exports it; `project/vercel.json` holds the routing, function limits, and cron schedule). + +```bash +cd project +vercel deploy --prod --yes +# then add each required var for production, e.g.: +vercel env add PARALLEL_API_KEY production +vercel env add DEMO_PASSWORD production +``` + +To turn on real-time Slack pings from the deployed receiver (no cron, no polling): + +```bash +# with SLACK_WEBHOOK_URL (and optionally WEBHOOK_SECRET) set in both .env and Vercel: +python monitor/monitors.py set-webhook https://.vercel.app +``` + +Notes: +- `maxDuration` is 300s — "Fast" lookups (~60–85s) fit comfortably; the deeper processor tier can exceed it. +- Bulk-mode job state is in-memory and does not survive serverless instance hops — run bulk against a persistent backend. +- The Signals UI tab is dev-only by default; set `VITE_SHOW_SIGNALS=1` at build time to expose it on a deploy. Slack is the intended production delivery channel. + +## One-command agent setup + +If you use a coding agent (Claude Code, Cursor, etc.), [`AGENTS.md`](AGENTS.md) is a self-contained onboarding prompt. Paste it into the agent from a fresh clone and it will: install everything, scaffold `.env`, help you set your watchlist, run the app, and — with your say-so — create the monitors and run the pipeline. It's the fastest path from clone to running. + +## Documentation + +- [`project/README.md`](project/README.md) — web app details, project structure, walkthrough +- [`monitor/README-monitor.md`](monitor/README-monitor.md) — pipeline architecture, design decisions, Slack conventions +- [`AGENTS.md`](AGENTS.md) — paste-in agent onboarding + +## License + +[MIT](LICENSE) diff --git a/python-recipes/parallel-investor-signals/docs/empty-state.png b/python-recipes/parallel-investor-signals/docs/empty-state.png new file mode 100644 index 0000000000000000000000000000000000000000..decc66780877a8d29210cbf410112912dd788ee5 GIT binary patch literal 59145 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 E0JTs{lK=n! literal 0 HcmV?d00001 diff --git a/python-recipes/parallel-investor-signals/docs/results-dark.png b/python-recipes/parallel-investor-signals/docs/results-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..a6224d98b1ec497a8a3d53039da6e982c0b84533 GIT binary patch literal 156504 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 literal 0 HcmV?d00001 diff --git a/python-recipes/parallel-investor-signals/docs/results-light.png b/python-recipes/parallel-investor-signals/docs/results-light.png new file mode 100644 index 0000000000000000000000000000000000000000..3baab10c349588e2c80c3f33e67f0de3f3abfcf0 GIT binary patch literal 163884 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 M^6C$AWQ||_FJJ`py#N3J literal 0 HcmV?d00001 diff --git a/python-recipes/parallel-investor-signals/monitor/README-monitor.md b/python-recipes/parallel-investor-signals/monitor/README-monitor.md new file mode 100644 index 0000000..c43e115 --- /dev/null +++ b/python-recipes/parallel-investor-signals/monitor/README-monitor.md @@ -0,0 +1,85 @@ +# Investor Signals — the monitoring pipeline + +**Goal:** flag every time a fund on *your* watchlist backs an AI-native company at seed–Series B, so your team can get ahead of the round. ([Full project context](../README.md).) + +Set your watchlist first — copy `investors.example.json` to `investors.json` and list the funds you care about (see the [top-level README](../README.md#1-choose-the-funds-you-track)). + +This pipeline uses the two Parallel APIs **together, not either alone**: + +| Layer | API | Why | +|---|---|---| +| **Bootstrap** (history) | Task API | Monitors only track forward from creation — the first exhaustive search of the last 60 days is a Task job | +| **Detect** (continuous) | Monitor API | One `event_stream` monitor per fund, daily, `lite` — cheap wide detection with structured output + citations | +| **Verify** (per event) | Task API, chained | Each event's `event_id` is passed as `previous_interaction_id` to a follow-up Task that confirms fund/stage/AI-nativeness with citations — the precision gate that prevents alert fatigue | + +## Files + +``` +monitor/ +├── config.py # watchlist loader, queries, schemas, processors — the tuning surface +├── investors.example.json # sample watchlist — copy to investors.json (gitignored) and make it yours +├── common.py # Parallel client, portco dedupe, signal store, task runner +├── sweep.py # bootstrap: exhaustive Task sweep (last 60 days per fund) +├── monitors.py # create | list | trigger | cancel the per-fund monitors +├── check.py # drain new events → chained verification → signals.json +├── build_portfolio.py # derive the names-only known-companies list from any CSV export +├── portfolio_names.example.json # fictional fixture (your real list is generated + gitignored) +└── signals.json # OUTPUT: qualified, cited signals (gitignored, generated) +``` + +`investors.json`, `data/` (raw CRM exports), and the derived `portfolio_names.json` are all **gitignored** — only fictional example fixtures are committed. Your target funds and CRM are yours; nothing about them ships in git. + +## Run it + +```bash +source project/backend/.venv/bin/activate +python monitor/sweep.py # once: backfill history, seed signals.json +python monitor/monitors.py create # once: start one daily monitor per fund +python monitor/check.py # any cadence: drain + verify new events +python monitor/monitors.py trigger # optional: force a run now (then check.py) +``` + +`check.py` is the recurring entry point — run it manually, via cron, or wire it to a scheduler. Each signal in `signals.json` carries: company, stage, amount, date, investors, AI-native one-liner, **source URLs**, whether it's already on your known-companies list, and the run/event IDs for provenance. + +## Design decisions + +- **One monitor per fund**, not one broad query — scoped intent-heavy queries perform better, `metadata.fund` routes events, and cadence/processor tune per fund. +- **Known companies are labeled, never suppressed** — a new round in a company you already know is still a signal; only live pipeline status (e.g. an Attio lookup) should suppress it. +- **Polling or webhooks** — `check.py` drains events on demand (zero public-endpoint complexity), or point the monitors at the deployed `/api/monitor/webhook` receiver for real-time push. Same verification chain either way. +- **Verification defaults on** (`check.py --raw` to skip): detection is optimized for recall, the chained Task run is optimized for precision. Alert quality is the product. + +## Slack delivery + +Delivery is a standard Slack incoming webhook + [Block Kit](https://api.slack.com/block-kit). `investor_core.post_to_slack` quietly no-ops when `SLACK_WEBHOOK_URL` is unset, so the pipeline runs fine without Slack — nothing breaks, signals still land in `signals.json`. + +House style, all in `build_signal_blocks`: + +- Emoji header by priority — 🚨 high / 🔔 medium / 🗞 digest +- A `•`-separated context line, then one labeled `section` per field +- A warm-intro-path section (intro via the investing partner) +- `📎 Sources:` numbered links, capped at 5 + +There are two delivery paths: + +- **Weekly digest** — one message on a schedule (Vercel Cron hits `/api/signals/weekly-digest`), rolling up the week's qualifying rounds. +- **Real-time webhook** — Parallel calls `/api/monitor/webhook` on `monitor.event.detected`; the FastAPI receiver parses the event → runs the chained verification Task → applies the priority gate → posts to Slack. `metadata.fund` routes the event; digest-priority events don't ping. + +Enable end-to-end push (no cron, no polling): + +```bash +# 1. Add SLACK_WEBHOOK_URL (and optionally WEBHOOK_SECRET) to .env + your host env +# 2. Point the monitors at the deployed receiver: +python monitor/monitors.py set-webhook https://.vercel.app +# From then on: monitor fires → host verifies via chained Task → Slack ping. +``` + +Test formatting anytime: `python monitor/slack_notify.py --preview` (dry-run) / `--send`. + +## Extending it + +Natural next steps, none required to run the pipeline: + +1. **Live CRM check** — replace the names-list label with a real "in pipeline?" lookup (an `ATTIO_API_KEY` wires this up today) and suppress or re-route accordingly. +2. **Full enrichment per signal** — auto-run the app's `ResearchBrief` for each new company so contacts + buying signals are ready before anyone opens the app. +3. **Feedback loop** — log ✅/❌ Slack reactions against signals to tune the qualification prompt. +4. **Curated key sources** — additional monitors with `source_policy.include_domains` for authority-weighted detection. diff --git a/python-recipes/parallel-investor-signals/monitor/build_portfolio.py b/python-recipes/parallel-investor-signals/monitor/build_portfolio.py new file mode 100644 index 0000000..6ea2c87 --- /dev/null +++ b/python-recipes/parallel-investor-signals/monitor/build_portfolio.py @@ -0,0 +1,71 @@ +""" +build_portfolio.py — regenerate the known-portfolio dedupe list from your CRM +export, so signals can be labeled "already known" vs "net-new". + +Input: a CSV with (at least) a company-name column — e.g. an export of your +investors' portfolio companies. Internal columns (notes, ratings, pipeline +state) are ignored on purpose: ONLY the normalized name and an optional +investor column make it into the output, which is safe to keep locally but is +still gitignored by default (see .gitignore). + +Usage (backend venv active): + python monitor/build_portfolio.py data/portcos.csv + python monitor/build_portfolio.py data/portcos.csv --name-col Company --investor-col Investor + +Writes monitor/portfolio_names.json and mirrors it to +project/backend/portfolio_names.json (the copy bundled into the deployed app +for serverless labeling). +""" + +from __future__ import annotations + +import argparse +import csv +import json +import sys +from pathlib import Path + +MONITOR_DIR = Path(__file__).resolve().parent +sys.path.insert(0, str(MONITOR_DIR.parent / "project")) + +from backend.investor_core import norm_company # noqa: E402 — single normalizer everywhere + + +def main() -> None: + ap = argparse.ArgumentParser(description="Derive the names-only portfolio list from a CSV.") + ap.add_argument("csv_path", help="CSV export containing your portfolio companies") + ap.add_argument("--name-col", default="Company", help="Column holding the company name") + ap.add_argument("--investor-col", default="Investor", help="Optional column holding the fund name") + args = ap.parse_args() + + with open(args.csv_path, newline="") as f: + rows = list(csv.DictReader(f)) + if not rows: + raise SystemExit("CSV appears to be empty.") + if args.name_col not in rows[0]: + raise SystemExit( + f"Column {args.name_col!r} not found. Available: {', '.join(rows[0].keys())}" + ) + + out = {} + for r in rows: + name = (r.get(args.name_col) or "").strip() + if not name: + continue + out[norm_company(name)] = { + "name": name, + "investor": (r.get(args.investor_col) or "").strip(), + } + + targets = [ + MONITOR_DIR / "portfolio_names.json", + MONITOR_DIR.parent / "project" / "backend" / "portfolio_names.json", + ] + payload = json.dumps(out, indent=1, sort_keys=True) + "\n" + for t in targets: + t.write_text(payload) + print(f"wrote {len(out)} companies -> {t.relative_to(MONITOR_DIR.parent)}") + + +if __name__ == "__main__": + main() diff --git a/python-recipes/parallel-investor-signals/monitor/check.py b/python-recipes/parallel-investor-signals/monitor/check.py new file mode 100644 index 0000000..1505fdc --- /dev/null +++ b/python-recipes/parallel-investor-signals/monitor/check.py @@ -0,0 +1,163 @@ +""" +check.py — drain new monitor events and run the monitor→task chain. + +For every event we haven't seen: + 1. Parse the monitor's structured output (company, round, investors, …). + 2. VERIFY via a follow-up Task run, passing the event's `event_id` as + `previous_interaction_id` — the documented chain that carries the monitor + event's full research context into the Task and preserves provenance. + The verification confirms: fund participation, seed–Series B stage, and + AI-nativeness — with citations. Detection is cheap and wide; this gate is + what keeps the signal feed high-precision. + 3. Label known portcos (never suppress — a round in a known portco is still + news; pipeline-status suppression arrives with the CRM integration). + 4. Append to signals.json and print a digest. + +Run on any cadence (manually, cron, or after `monitors.py trigger`): + python monitor/check.py # verify with follow-up tasks (default) + python monitor/check.py --raw # skip verification (just drain + label) +""" + +from __future__ import annotations + +import json +import sys + +from common import ( + MONITORS_FILE, STATE_FILE, append_signals, client, known_portco, + load_portfolio, print_signal, read_json, run_structured_task, utcnow, + write_json, +) +from config import ROUND_SCHEMA, VERIFY_PROCESSOR, priority_for, verify_input +from backend.investor_core import notify_signals_sync, slack_enabled +from backend.crm import check_pipeline, pipeline_label + + +def parse_event_content(event) -> dict: + """Monitor structured output arrives as a JSON string in output.content.""" + content = getattr(event.output, "content", None) if getattr(event, "output", None) else None + if isinstance(content, str): + try: + return json.loads(content) + except json.JSONDecodeError: + return {"summary": content} + return content or {} + + +def event_citations(event) -> list: + urls = [] + output = getattr(event, "output", None) + for fb in (getattr(output, "basis", None) or []): + for cit in (getattr(fb, "citations", None) or []): + u = getattr(cit, "url", None) + if u and u not in urls: + urls.append(u) + return urls + + +def verify_event(c, fund: str, detected: dict, event_id: str) -> list: + """The follow-up-task chain: monitor event -> verified, cited rounds.""" + res = run_structured_task( + c, + verify_input(detected), + ROUND_SCHEMA, + VERIFY_PROCESSOR, + previous_interaction_id=event_id, + ) + out = [] + for r in res["content"].get("rounds", []): + if str(r.get("is_ai_native", "")).lower() != "yes": + continue + out.append({**r, "sources": res["citations"], "verify_run_id": res["run_id"]}) + return out + + +def main() -> None: + raw = "--raw" in sys.argv + c = client() + portfolio = load_portfolio() + monitors = read_json(MONITORS_FILE, {}) + if not monitors: + raise SystemExit("No monitors yet — run: python monitor/monitors.py create") + + state = read_json(STATE_FILE, {"seen_event_ids": []}) + seen = set(state["seen_event_ids"]) + new_signals = [] + + for fund, info in monitors.items(): + result = c.monitor.events(info["monitor_id"], limit=50) + events = list(getattr(result, "events", None) or []) + fresh = [e for e in events if e.event_id not in seen] + print(f"[check] {fund}: {len(events)} events, {len(fresh)} new") + + for e in fresh: + seen.add(e.event_id) + detected = parse_event_content(e) + company = (detected.get("company_name") or "").strip() + if not company or company.upper() == "NA": + continue # not a specific funding event + + base = { + "fund_watched": fund, + "detected_via": "monitor", + "event_id": e.event_id, + "event_date": str(getattr(e, "event_date", "") or ""), + "detected_at": utcnow(), + } + + if raw: + new_signals.append({ + "company": company, + "round_stage": detected.get("round_stage"), + "amount": detected.get("amount"), + "announced_date": detected.get("announced_date"), + "investors": detected.get("investors"), + "summary": detected.get("summary"), + "known_portco": bool(known_portco(company, portfolio)), + "sources": event_citations(e), + **base, + }) + continue + + # Chained verification (previous_interaction_id = event_id) + for r in verify_event(c, fund, detected, e.event_id): + known = bool(known_portco(r.get("company", ""), portfolio)) + # Live CRM pipeline check (falls back to the local known-companies + # label when no CRM is configured). + match = check_pipeline(r.get("domain"), r.get("company", "")) + in_pipeline = match["in_crm"] if match else known + new_signals.append({ + **r, + "known_portco": in_pipeline, + "pipeline_label": pipeline_label(match, known), + "crm_url": (match or {}).get("url"), + "priority": priority_for( + r.get("round_stage", ""), r.get("amount_usd_millions", 0), + r.get("parallel_fit_rating", 0), bool(in_pipeline), + ), + **base, + }) + + state["seen_event_ids"] = sorted(seen) + write_json(STATE_FILE, state) + added = append_signals(new_signals) + + print(f"\n=== CHECK DIGEST — {added} new signals ===") + for s in new_signals: + print_signal(s) + if not new_signals: + print(" (no new qualifying events)") + + # Slack delivery: high/medium ping individually, + # digest-priority signals roll into one message. Quiet no-op if + # SLACK_WEBHOOK_URL isn't set in the root .env. + if new_signals: + if slack_enabled(): + sent = notify_signals_sync(new_signals, "Investor signals — new events") + print(f"[slack] {sent} message(s) posted") + else: + print("[slack] SLACK_WEBHOOK_URL not set — skipped (add it to .env to enable pings)") + + +if __name__ == "__main__": + main() diff --git a/python-recipes/parallel-investor-signals/monitor/common.py b/python-recipes/parallel-investor-signals/monitor/common.py new file mode 100644 index 0000000..3a43d77 --- /dev/null +++ b/python-recipes/parallel-investor-signals/monitor/common.py @@ -0,0 +1,147 @@ +""" +common.py — shared plumbing for the monitoring pipeline: Parallel client, the +known-portco dedupe list, signal storage, and a small structured-Task runner. + +Run everything with the backend venv python: + source project/backend/.venv/bin/activate + python monitor/ + + diff --git a/python-recipes/parallel-investor-signals/project/package-lock.json b/python-recipes/parallel-investor-signals/project/package-lock.json new file mode 100644 index 0000000..4401ffa --- /dev/null +++ b/python-recipes/parallel-investor-signals/project/package-lock.json @@ -0,0 +1,2211 @@ +{ + "name": "project", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "project", + "version": "0.0.0", + "dependencies": { + "papaparse": "^5.5.4", + "react": "^19.2.7", + "react-dom": "^19.2.7" + }, + "devDependencies": { + "@tailwindcss/vite": "^4.3.2", + "@types/node": "^24.13.2", + "@types/papaparse": "^5.5.2", + "@types/react": "^19.2.17", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react": "^6.0.3", + "oxlint": "^1.71.0", + "tailwindcss": "^4.3.2", + "typescript": "~6.0.2", + "vite": "^8.1.1", + "vitest": "^4.1.10" + } + }, + "node_modules/@emnapi/core": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz", + "integrity": "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.2", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz", + "integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz", + "integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.6.tgz", + "integrity": "sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.3" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1" + } + }, + "node_modules/@oxc-project/types": { + "version": "0.139.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.139.0.tgz", + "integrity": "sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/@oxlint/binding-android-arm-eabi": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm-eabi/-/binding-android-arm-eabi-1.73.0.tgz", + "integrity": "sha512-HZQRN/UMBu+Ut+/9MiAChkbP4qZqrNOWBcNI45vOT40GVhbGR0JgHB87L48D4iAqFQIdVmeQYtV9RF89AjTKkg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-android-arm64": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm64/-/binding-android-arm64-1.73.0.tgz", + "integrity": "sha512-Gp+KJRylv2aW7thRpG5p1KTxZq4ZJFbWowrKzufNq9d3ssl3r3JviYV45/+p+7CN1Nv0zDd1e8Ex0b/HUDq4TQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-darwin-arm64": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-darwin-arm64/-/binding-darwin-arm64-1.73.0.tgz", + "integrity": "sha512-3de96NdtXhxERMjIz7wsp2HYMY6pMQycGxFWac2mFecAx6VeARF/IqFb1QIaqiCRIdfzBwzTed+pCTCoiS+CYA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-darwin-x64": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-darwin-x64/-/binding-darwin-x64-1.73.0.tgz", + "integrity": "sha512-5zx/uPW32TiaOeVY1dQ/H5iOf0K1HOdFKOJhLqGl4o63+i1fpzoqqu/mKtd7OFgFjNCdhlyTGgjVkQTZm1ELcg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-freebsd-x64": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-freebsd-x64/-/binding-freebsd-x64-1.73.0.tgz", + "integrity": "sha512-qNe4gKHaGnLuZJ8toUg90JAa0S2vTVvDw+0bRi3q1avXZXDT4u5mMeECf3nD4HYrbdn1O7dXqWut4onY/yx/Xg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-arm-gnueabihf": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.73.0.tgz", + "integrity": "sha512-cCehYh5hTbfShm/fxTD6wwrGUWIpvX+N5OxmAMhFhDeTGXvw+BeNj889tpxsFQ9ZLatQ6wImuY8tsKLZ+FMz7w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-arm-musleabihf": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-1.73.0.tgz", + "integrity": "sha512-d5j5GDU/2dMgjVhw7TQT9ITrsIr1Y02KEXKyVGIXUkD+KiaxE9TP65FS2ZdgTBemQvoRL+gSBdbrIm3cQIeacg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-arm64-gnu": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.73.0.tgz", + "integrity": "sha512-Eyf1SrP3+yR1DI3OJgOY2Pvrr9dWP9TK37xPaDYycwTtlGlI45erJAVIfH5/m/xosDt6BupJYEFi47bvbTuuyw==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-arm64-musl": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.73.0.tgz", + "integrity": "sha512-IlT/OJApEDKaMmCooHuncgJZbbCe7T5QIWmTZBEtYscWvzPQuuEinVcid6kwQRVQOUdb7PUCz4jQHnaYXdfJXw==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-ppc64-gnu": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.73.0.tgz", + "integrity": "sha512-L+JYcb/vdg5fmcH08V6o0YYLU28cTH1SPNulwJdvK9NK49aXSkYy6oNpKBmddArVOXYqNepriDGiZ04G54kh1Q==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-riscv64-gnu": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-1.73.0.tgz", + "integrity": "sha512-Qtk0g3bKV6OwWjIm7R8kQN1uOZRKQt/MODK2a8QfkwhTpXBD53ozx5XLVWLGDQAVyp2otLW4D2wB98XfAfMPGA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-riscv64-musl": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-1.73.0.tgz", + "integrity": "sha512-wX0NQKZVxltkAOVmzFcpOaMpdaUvsq1Eqpx9tkAfl71UdkTlSo1R4AdAnGccR1Fm2+TzFgZ22CyyGuZ41RDr/A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-s390x-gnu": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.73.0.tgz", + "integrity": "sha512-vPe7UGBMWyiLTtnqS4xxgMQFSFGmtQwhwCxuiw6lXygaO6bVt0D8dFVg8Xv05eaiN3ybC0HXXHUAohFMFvqoCQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-x64-gnu": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.73.0.tgz", + "integrity": "sha512-2CwIWr9cemFC/CbRBWZvuk5mffz6ObmfFkfcC/9rTQ7f+icNhYr2kOjf9Rt8lLvugvkdGDOmkoVoFFHh6ClCTw==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-x64-musl": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-x64-musl/-/binding-linux-x64-musl-1.73.0.tgz", + "integrity": "sha512-nDadfJgg7NBBxG0N560wOe7LLX5QiYp6qBaI7viuk5EUORFBktU/NfV0MbTqU3gTqQDCh4VyxKdo5VADxk9w8Q==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-openharmony-arm64": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-openharmony-arm64/-/binding-openharmony-arm64-1.73.0.tgz", + "integrity": "sha512-wGjJC+NLH9xP+IKGn9RDW94ojJR/wPbg5WCnQjj/oReaOtCQthr8ws1zICe77JFmo4ouUdeTHHZL/ESGiF6Pmw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-win32-arm64-msvc": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.73.0.tgz", + "integrity": "sha512-I7X47GPGljw225YUQ5SbC/rb1Kkdrd0yQf0x+hYxeKS6DpfjMbo9ccQPQ6LNY6BoJQ1sHhgDUGuMn5Vg5gHT6w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-win32-ia32-msvc": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.73.0.tgz", + "integrity": "sha512-5lWj+3h+74Fm1jYOO9qkJA4xkAlZA099DkXppuXsk7UpnpZLttsefrZU469vChGaG6hcSqrkKXQOvMTZtbjeNg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-win32-x64-msvc": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.73.0.tgz", + "integrity": "sha512-WaNRvh4f6zY9CvUQk2YoA1O90ieWrIklI84+HXFr9Isjz9CSESrdqo/RtIYt4Dll/cAchqGDMehfaZd0vqEFZw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.1.5.tgz", + "integrity": "sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.1.5.tgz", + "integrity": "sha512-51Bnx9pNiMRKSUNtBfySkNJ9vMU9Hh3I1ozDd6gyPPYzaXCfnptUcEZxXGYFn+ul2dtcMUiqGR1Yai2K10uoTw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.1.5.tgz", + "integrity": "sha512-Tm+gbfC0aHu1tBA/JvKQh32S0K6YgCHkiAF4/W6xX0K0RmNuc94VeK419dJoE65R5aRxmo+noZQSWrAMF6yb6g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.1.5.tgz", + "integrity": "sha512-JMzDKCCXq93YccG5gz3hvOs1oXRKAf0XYpfOS88e+wZrC8Iugj6j68867vrYZkvpDDpKn/KoKORThmchMpF6TA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.1.5.tgz", + "integrity": "sha512-uML21j2K5TfPGutKxub+M+nLjZIrWjXQ5Grx4lCe/nimTj9B4L63zHpjXLl4y0L3mcm2htEQIb06oCG/szerNw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.1.5.tgz", + "integrity": "sha512-navSiuTMogvnQoZoM/v+l3ZWo50/NTwSHSzheABx/RCnmUPaKwq9qSo4Br2OYRs21+Fz8uFqITZM3H4opOB0/Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.1.5.tgz", + "integrity": "sha512-lAryqH7IteztmCXQXk0etKj4wBQ7Gx5S6LjKhsgp9zb8I5bsuvU/2llH1hDQcjsFeqIsovMVN339/8pUDDBXxA==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.1.5.tgz", + "integrity": "sha512-fsK/sNBnxzBlL4O1JNrZakVQxPspqpED5dLtNsZS9oOKmtSpdNIzxH2kkol5HYTWJN47sE20ztMJPxfZ89qGOg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.1.5.tgz", + "integrity": "sha512-gLYb4BIadlfTOYT5gO503n8zQjXflgzpD0FcyKh0Mzx3rqCZKnHoJWV9xe1KXUJ5lx2JfcSHr/mhzS0PC/McAA==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.1.5.tgz", + "integrity": "sha512-FjcpEKUyJygHgs1o50VYNvkt5+7Le/VEdYt0AkRpkL33MnyQfwr8l5mXwMmfmTbyMPr5vJLC+8/Gd9gXnwU1QQ==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.1.5.tgz", + "integrity": "sha512-Me+PfPI2TMeOQk0gYWfLQZtTktrmzbr8cDboqX83XKc7UrgAi55gF+2dUkWdxd19n55Essp2yeca+O9N5rBxHg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.1.5.tgz", + "integrity": "sha512-yc5WrLzXks6zCQfn9Oxr8pORKyl/pF+QjHmW/Qx3qu0oyrrNC+y2JLTU1E2rcWYAmzlnqngWXHQjy51VzW70Vw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-wasm32-wasi": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.1.5.tgz", + "integrity": "sha512-VbQGPX2b4r48TAMIM2cjgluIM1HYutm4pcTEJsle7iEP7sB1dFqtPLBVbdLAZCxy1txCcPxf4QFf4v8uvltPqA==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "1.11.1", + "@emnapi/runtime": "1.11.1", + "@napi-rs/wasm-runtime": "^1.1.6" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.1.5.tgz", + "integrity": "sha512-gHv82k63z4qpV5+Q1y/12KrK0ltWBukVDI8nZcbT7Tt/ZlOIVwppazneq0F93oDxTo3IgAMEDIoQh3E2n6mVsw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.1.5.tgz", + "integrity": "sha512-tTZuDBPw85tEN5PQi1pnEBzDy0Z49HtScLAbD5t6hyeU92A95pRWaSMw1GZZi/RwgSgUIl0xrSlXIT/9QzvYSA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", + "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tailwindcss/node": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.3.2.tgz", + "integrity": "sha512-yWP/sqEcBLaD8JuA6zNwxoYKr75qxTioYwlRwekj5Jr/I5GXnoJfjetH/psLUIv74cYTH2lBUEzBkinthoYcBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "enhanced-resolve": "5.21.6", + "jiti": "^2.7.0", + "lightningcss": "1.32.0", + "magic-string": "^0.30.21", + "source-map-js": "^1.2.1", + "tailwindcss": "4.3.2" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.3.2.tgz", + "integrity": "sha512-z8ZgnzX8gdNoWLBLqBPoh/sjnxkwvf9ZuWjnO0l0yIzbLa5/9S+eC5QxGZKRobVHIC3/1BoMWjHblqWjcgFgag==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 20" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.3.2", + "@tailwindcss/oxide-darwin-arm64": "4.3.2", + "@tailwindcss/oxide-darwin-x64": "4.3.2", + "@tailwindcss/oxide-freebsd-x64": "4.3.2", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.2", + "@tailwindcss/oxide-linux-arm64-gnu": "4.3.2", + "@tailwindcss/oxide-linux-arm64-musl": "4.3.2", + "@tailwindcss/oxide-linux-x64-gnu": "4.3.2", + "@tailwindcss/oxide-linux-x64-musl": "4.3.2", + "@tailwindcss/oxide-wasm32-wasi": "4.3.2", + "@tailwindcss/oxide-win32-arm64-msvc": "4.3.2", + "@tailwindcss/oxide-win32-x64-msvc": "4.3.2" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.2.tgz", + "integrity": "sha512-WHxqIuHpvZ5VtdX6GTl1Ik/Vp2YuN42Et+0CdeaVd/frQ9jAvGmvR8vLT+jk3e8/Q3x8kECB9+R17pgpp2BulA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.2.tgz", + "integrity": "sha512-GZypeUY/IDJW3877KeM+O67vbXr3MBnbtEL4aYhNErv/JWZhye2vGSWWG9tB6iiqR2MqRNkY8IOUy4NdSZV26w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.2.tgz", + "integrity": "sha512-UIIzmefR6KO1sDU7MzRqAxC8iBpft/VhkGjTjnhoS6k7Z3rQ9wEgA1ODSiyH/tcSYssulNm4Ci3hOeK1jH7ccQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.2.tgz", + "integrity": "sha512-GN+uAmcI6DNspnCDwtOAZrTz6oukJnp337qZvxqCGLd3BHBzJpO0ZbTLRvJNdztOeAmTzewewGIMPb0tk2R4WA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.2.tgz", + "integrity": "sha512-4ABn7qSbdHRwTiDiuWNegCyb5+2FJ4vKIKc3DmKrvAFw7MU1Lm11dIkTPwUaFdTzc7IsOpDbqBrlh0x6y36U/w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.2.tgz", + "integrity": "sha512-wDgEIGwoM8w8pufh9LVt1PahDgNdKXrLC2qfAnV3vAmococ9RWbxeAw4pxPttd/TsJfwjyLf90Dg1y9y8I6Emw==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.2.tgz", + "integrity": "sha512-J5Nuk0uZQIiMTJj3LEx4sAA9tMFUoXQZFv1J6An+QGYe53HKRJuFDi0rpq/tuouCZeAbOBY3kQ6g8qeD4TUjtA==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.2.tgz", + "integrity": "sha512-kqCZpSKOBEJO4mz7OqWoofBZeXTAwaVGPj0ErAj7CojmhKpWVWVOnrt9dE8odoIraZq4oj3ausM37kXi+Tow8w==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.2.tgz", + "integrity": "sha512-cixpqbh2toJDmkuCRI68nXA8ZxNmdK9Y+9v5h3MC3ZQKy/0BO8AWzlkWyRM7JAFSGBlfig4YVTPsK6MVgqz1uw==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.2.tgz", + "integrity": "sha512-4ec2Z/LOmRsAgU23CS4xeJfcJlmRg94A/XrbGRCF1gyU/zdDfRLYDVsS+ynSZCmGNxQ1jQriQOKMQeQxBA3Isw==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.11.1", + "@emnapi/runtime": "^1.11.1", + "@emnapi/wasi-threads": "^1.2.2", + "@napi-rs/wasm-runtime": "^1.1.4", + "@tybys/wasm-util": "^0.10.2", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.2.tgz", + "integrity": "sha512-Zyr/M0+XcYZu3bZrUytc7TXvrk0ftWfl8gN2MwekNDzhqhKRUucMPSeOzM0o0wH5AWOU49BsKRrfKxI2atCPMQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.2.tgz", + "integrity": "sha512-QI9BO7KlNZsp2GuO0jwAAj5jCDABOKXRkCk2XuKTSaNEFSdfzqswYVTtCHBNKHLsqyjFyFkqlDiwkNbTYSssMQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/vite": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.3.2.tgz", + "integrity": "sha512-eHpMeX4JXfVNJDEcsouTeCBubJBTcTLigeaw/NTUW6PB5ATKKXdyonnXgTBX2VuRbjz1hjfz6C5XAhr52ImQXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tailwindcss/node": "4.3.2", + "@tailwindcss/oxide": "4.3.2", + "tailwindcss": "4.3.2" + }, + "peerDependencies": { + "vite": "^5.2.0 || ^6 || ^7 || ^8" + } + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", + "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/chai": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/deep-eql": "*", + "assertion-error": "^2.0.1" + } + }, + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "24.13.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.13.3.tgz", + "integrity": "sha512-Dh8vAsV36ig5wa9OX4pXvMc9D3Veibfw2wix0CUwYODLD8nkj9UsLjASr49nPg+2eKzxhBV+v7L8pXvT4e639Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~7.18.0" + } + }, + "node_modules/@types/papaparse": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/@types/papaparse/-/papaparse-5.5.2.tgz", + "integrity": "sha512-gFnFp/JMzLHCwRf7tQHrNnfhN4eYBVYYI897CGX4MY1tzY9l2aLkVyx2IlKZ/SAqDbB3I1AOZW5gTMGGsqWliA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/react": { + "version": "19.2.17", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.17.tgz", + "integrity": "sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw==", + "dev": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.2.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", + "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.2.0" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.0.3.tgz", + "integrity": "sha512-vmFvco5/QuC2f9Oj+wTk0+9XeDFkHxSamwZKYc7MxYwKICfvUvlMhqKI0VuICPltGqh1neqBKDvO4kes1ya8vg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rolldown/pluginutils": "^1.0.1" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "@rolldown/plugin-babel": "^0.1.7 || ^0.2.0", + "babel-plugin-react-compiler": "^1.0.0", + "vite": "^8.0.0" + }, + "peerDependenciesMeta": { + "@rolldown/plugin-babel": { + "optional": true + }, + "babel-plugin-react-compiler": { + "optional": true + } + } + }, + "node_modules/@vitest/expect": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.10.tgz", + "integrity": "sha512-YsCn+qAk1GWjQOWFEsEcL2gNQ0zmVmQu3T03qP6UyjhtmdtwtbuI+DASn/7iQB3HGTXkdBwGddzxPlmiql5vlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@standard-schema/spec": "^1.1.0", + "@types/chai": "^5.2.2", + "@vitest/spy": "4.1.10", + "@vitest/utils": "4.1.10", + "chai": "^6.2.2", + "tinyrainbow": "^3.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/mocker": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.10.tgz", + "integrity": "sha512-v0xaezt+DKEmKfaxg133ldzADrwLGd7Ze1MfQQTYfvs8OqZIwbxyxaYURivwV7sWy5fqn3rH5uOrSp07bp44Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "4.1.10", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.21" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/pretty-format": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.10.tgz", + "integrity": "sha512-W1HsjSH4MXQ9YfmmhLAoIYf1HRfekQCGngeIgcei6MP5QQGWUe0gkopdZQaVCFO+JDJMrAJGwa5pRpNpvy4P8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^3.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.10.tgz", + "integrity": "sha512-IKI6kpIH+LmpROplyLwBBaCfMgOZOMsygVa6BARD6ahA04VRuJSa6OaVG7kRvSEMD870Vd91rSSw0eegtWyLGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "4.1.10", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.10.tgz", + "integrity": "sha512-xRkfOT1qpTAi/Ti4Y1LtfRc3kEuqxGw59eN2jN9pRWMtS/XDevekhcFSqvQqjUNGksfjMJu3Y+oJ+4Ypn2OaJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "4.1.10", + "@vitest/utils": "4.1.10", + "magic-string": "^0.30.21", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.10.tgz", + "integrity": "sha512-PLf/Ugvoq5wO/b4rwYCR1h2PSIdXz7wnkQFMiUpLdtM7l6pqVFcQIBEHyT1+l+cj7mNwAfZHzqXqDyjvOuwbDw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.10.tgz", + "integrity": "sha512-fy9am/HWxbaGt/Sawrp90vt6Y6jQwf1RX77cz3uwoJwJVMli/e1IEwRPnMNJ7vKfPTwo0diXifkpPvwH9v7nGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "4.1.10", + "convert-source-map": "^2.0.0", + "tinyrainbow": "^3.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/chai": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", + "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.21.6", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.21.6.tgz", + "integrity": "sha512-aNnGCvbJ/RIyWo1IuhNdVjnNF+EjH9wpzpNHt+ci/m9He9LJvUN8wrCcXjp9cWsGNAuvSpVFTx/vraAFQ8qGjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.3.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/es-module-lexer": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.0.tgz", + "integrity": "sha512-KLdwQm2NvGLDkQDCGvmiQrhkd0JbMzXthwQAUgWjQuQdBLFa3eiBP5arXZyA+f8x+x7OXgud6bq2rxjGtHV2tw==", + "dev": true, + "license": "MIT" + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/expect-type": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.4.0.tgz", + "integrity": "sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/jiti": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz", + "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/lightningcss": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", + "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.32.0", + "lightningcss-darwin-arm64": "1.32.0", + "lightningcss-darwin-x64": "1.32.0", + "lightningcss-freebsd-x64": "1.32.0", + "lightningcss-linux-arm-gnueabihf": "1.32.0", + "lightningcss-linux-arm64-gnu": "1.32.0", + "lightningcss-linux-arm64-musl": "1.32.0", + "lightningcss-linux-x64-gnu": "1.32.0", + "lightningcss-linux-x64-musl": "1.32.0", + "lightningcss-win32-arm64-msvc": "1.32.0", + "lightningcss-win32-x64-msvc": "1.32.0" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", + "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", + "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", + "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", + "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", + "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", + "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", + "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", + "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", + "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", + "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", + "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/nanoid": { + "version": "3.3.15", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.15.tgz", + "integrity": "sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/obug": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.3.tgz", + "integrity": "sha512-9miFgM2OFba7hB+pRgvtV84pYTBaoTHohvmIgiRt6dRIzbwEOIaNaP+dIlGs2fNFoB0SeISs0Jz5WFVRid6Xyg==", + "dev": true, + "funding": [ + "https://github.com/sponsors/sxzz", + "https://opencollective.com/debug" + ], + "license": "MIT", + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/oxlint": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/oxlint/-/oxlint-1.73.0.tgz", + "integrity": "sha512-u91G9TJzU6yqKWNZUYprQB07W7YvntZXaRxQ6CkoytepYhLWUXWsr1M8zUJ34VatNPuUAr3Z8GH+O2A331CluQ==", + "dev": true, + "license": "MIT", + "bin": { + "oxlint": "bin/oxlint" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/sponsors/Boshen" + }, + "optionalDependencies": { + "@oxlint/binding-android-arm-eabi": "1.73.0", + "@oxlint/binding-android-arm64": "1.73.0", + "@oxlint/binding-darwin-arm64": "1.73.0", + "@oxlint/binding-darwin-x64": "1.73.0", + "@oxlint/binding-freebsd-x64": "1.73.0", + "@oxlint/binding-linux-arm-gnueabihf": "1.73.0", + "@oxlint/binding-linux-arm-musleabihf": "1.73.0", + "@oxlint/binding-linux-arm64-gnu": "1.73.0", + "@oxlint/binding-linux-arm64-musl": "1.73.0", + "@oxlint/binding-linux-ppc64-gnu": "1.73.0", + "@oxlint/binding-linux-riscv64-gnu": "1.73.0", + "@oxlint/binding-linux-riscv64-musl": "1.73.0", + "@oxlint/binding-linux-s390x-gnu": "1.73.0", + "@oxlint/binding-linux-x64-gnu": "1.73.0", + "@oxlint/binding-linux-x64-musl": "1.73.0", + "@oxlint/binding-openharmony-arm64": "1.73.0", + "@oxlint/binding-win32-arm64-msvc": "1.73.0", + "@oxlint/binding-win32-ia32-msvc": "1.73.0", + "@oxlint/binding-win32-x64-msvc": "1.73.0" + }, + "peerDependencies": { + "oxlint-tsgolint": ">=0.24.0", + "vite-plus": "*" + }, + "peerDependenciesMeta": { + "oxlint-tsgolint": { + "optional": true + }, + "vite-plus": { + "optional": true + } + } + }, + "node_modules/papaparse": { + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.5.4.tgz", + "integrity": "sha512-SwzWD9gl/ElwYLCI0nUja1mFJzjq2D8ziShfNBa7zCHzkOozeOGDwHWQ+tvCzEZcewecWZ5U7kUopDnG+DFYEQ==", + "license": "MIT" + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.16", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.16.tgz", + "integrity": "sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.12", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/react": { + "version": "19.2.7", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.7.tgz", + "integrity": "sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.2.7", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.7.tgz", + "integrity": "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.27.0" + }, + "peerDependencies": { + "react": "^19.2.7" + } + }, + "node_modules/rolldown": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.1.5.tgz", + "integrity": "sha512-t9z29cJjXf/vxQ8dyhCSpt6H6aSwHTk8cT5I3iy6SMXuFpk5mB6PL6XfC8PCwrPTx93udwKUm9HRteAlTGBLiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.139.0", + "@rolldown/pluginutils": "^1.0.0" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.1.5", + "@rolldown/binding-darwin-arm64": "1.1.5", + "@rolldown/binding-darwin-x64": "1.1.5", + "@rolldown/binding-freebsd-x64": "1.1.5", + "@rolldown/binding-linux-arm-gnueabihf": "1.1.5", + "@rolldown/binding-linux-arm64-gnu": "1.1.5", + "@rolldown/binding-linux-arm64-musl": "1.1.5", + "@rolldown/binding-linux-ppc64-gnu": "1.1.5", + "@rolldown/binding-linux-s390x-gnu": "1.1.5", + "@rolldown/binding-linux-x64-gnu": "1.1.5", + "@rolldown/binding-linux-x64-musl": "1.1.5", + "@rolldown/binding-openharmony-arm64": "1.1.5", + "@rolldown/binding-wasm32-wasi": "1.1.5", + "@rolldown/binding-win32-arm64-msvc": "1.1.5", + "@rolldown/binding-win32-x64-msvc": "1.1.5" + } + }, + "node_modules/scheduler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT" + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true, + "license": "ISC" + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true, + "license": "MIT" + }, + "node_modules/std-env": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.2.0.tgz", + "integrity": "sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw==", + "dev": true, + "license": "MIT" + }, + "node_modules/tailwindcss": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.2.tgz", + "integrity": "sha512-WtctNNSH8A9jlMIqxzuYumOHU5uGZyRv0Q5svQl+oEPy5w84YpBxdb7MdqyiSPQge5jTJ6zFQLq0PFygdccSBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tapable": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", + "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.2.4.tgz", + "integrity": "sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyrainbow": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.0.tgz", + "integrity": "sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD", + "optional": true + }, + "node_modules/typescript": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", + "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.1.3.tgz", + "integrity": "sha512-Ds+gBRbj0lwRO2Y5hwnUBdxSwlAve9LeRyU4sNnAr0ewW0gWF0n5bgXgUzbgZ49MV9BVUAQUFYVcDUcilUExMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "lightningcss": "^1.32.0", + "picomatch": "^4.0.4", + "postcss": "^8.5.16", + "rolldown": "~1.1.3", + "tinyglobby": "^0.2.17" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "@vitejs/devtools": "^0.3.0", + "esbuild": "^0.27.0 || ^0.28.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "@vitejs/devtools": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vitest": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.10.tgz", + "integrity": "sha512-R9jUTe5S4Qb0HCd4TNqpC7oGcrMssMRGXLW80ubjWsW9VH5GF8y1Y0SFLY9AbqSk6nt0PnOx4H4WNJYZ13GUPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/expect": "4.1.10", + "@vitest/mocker": "4.1.10", + "@vitest/pretty-format": "4.1.10", + "@vitest/runner": "4.1.10", + "@vitest/snapshot": "4.1.10", + "@vitest/spy": "4.1.10", + "@vitest/utils": "4.1.10", + "es-module-lexer": "^2.0.0", + "expect-type": "^1.3.0", + "magic-string": "^0.30.21", + "obug": "^2.1.1", + "pathe": "^2.0.3", + "picomatch": "^4.0.3", + "std-env": "^4.0.0-rc.1", + "tinybench": "^2.9.0", + "tinyexec": "^1.0.2", + "tinyglobby": "^0.2.15", + "tinyrainbow": "^3.1.0", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@opentelemetry/api": "^1.9.0", + "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", + "@vitest/browser-playwright": "4.1.10", + "@vitest/browser-preview": "4.1.10", + "@vitest/browser-webdriverio": "4.1.10", + "@vitest/coverage-istanbul": "4.1.10", + "@vitest/coverage-v8": "4.1.10", + "@vitest/ui": "4.1.10", + "happy-dom": "*", + "jsdom": "*", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@opentelemetry/api": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser-playwright": { + "optional": true + }, + "@vitest/browser-preview": { + "optional": true + }, + "@vitest/browser-webdriverio": { + "optional": true + }, + "@vitest/coverage-istanbul": { + "optional": true + }, + "@vitest/coverage-v8": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + }, + "vite": { + "optional": false + } + } + }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + } + } +} diff --git a/python-recipes/parallel-investor-signals/project/package.json b/python-recipes/parallel-investor-signals/project/package.json new file mode 100644 index 0000000..763da7c --- /dev/null +++ b/python-recipes/parallel-investor-signals/project/package.json @@ -0,0 +1,31 @@ +{ + "name": "project", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc -b && vite build", + "lint": "oxlint", + "preview": "vite preview", + "test": "vitest" + }, + "dependencies": { + "papaparse": "^5.5.4", + "react": "^19.2.7", + "react-dom": "^19.2.7" + }, + "devDependencies": { + "@tailwindcss/vite": "^4.3.2", + "@types/node": "^24.13.2", + "@types/papaparse": "^5.5.2", + "@types/react": "^19.2.17", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react": "^6.0.3", + "oxlint": "^1.71.0", + "tailwindcss": "^4.3.2", + "typescript": "~6.0.2", + "vite": "^8.1.1", + "vitest": "^4.1.10" + } +} \ No newline at end of file diff --git a/python-recipes/parallel-investor-signals/project/public/favicon.svg b/python-recipes/parallel-investor-signals/project/public/favicon.svg new file mode 100644 index 0000000..1defc7a --- /dev/null +++ b/python-recipes/parallel-investor-signals/project/public/favicon.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/python-recipes/parallel-investor-signals/project/requirements.txt b/python-recipes/parallel-investor-signals/project/requirements.txt new file mode 100644 index 0000000..93e42ce --- /dev/null +++ b/python-recipes/parallel-investor-signals/project/requirements.txt @@ -0,0 +1,5 @@ +# Vercel Python function deps (subset of backend/requirements.txt — no +# uvicorn/uvloop/watchfiles: Vercel provides the ASGI server). +fastapi==0.139.0 +parallel-web==1.1.0 +python-dotenv==1.2.2 diff --git a/python-recipes/parallel-investor-signals/project/src/App.tsx b/python-recipes/parallel-investor-signals/project/src/App.tsx new file mode 100644 index 0000000..0687360 --- /dev/null +++ b/python-recipes/parallel-investor-signals/project/src/App.tsx @@ -0,0 +1,317 @@ +import { Suspense, lazy, useCallback, useEffect, useRef, useState } from "react"; +import type { CustomFieldResult, Depth, ResearchBrief } from "./types"; +import { ApiError, enrichCompany } from "./lib/api"; +import { MOCK_BRIEF } from "./lib/mock"; +import { getCached, recentQueries, saveCached } from "./lib/cache"; +import { + deleteProfile, + findProfile, + listProfiles, + saveProfile, + type SavedProfile, +} from "./lib/profiles"; +import { useTheme } from "./lib/useTheme"; +import { clearAccessKey, getAccessKey } from "./lib/auth"; +import { PasswordGate } from "./components/PasswordGate"; +import { Header, SHOW_SIGNALS, type Mode } from "./components/Header"; +import { EnrichSearchBar } from "./components/EnrichSearchBar"; +import { AskBar } from "./components/AskBar"; +import { BriefHeader } from "./components/BriefHeader"; +import { AccountCard } from "./components/AccountCard"; +import { ContactsTable } from "./components/ContactsTable"; +import { HomePage } from "./components/HomePage"; +import { EmptyState, ErrorState } from "./components/States"; + +// Code-split the secondary views: most sessions never open Bulk or Signals, +// so they load on demand instead of padding the main bundle. +const BulkPanel = lazy(() => + import("./components/BulkPanel").then((m) => ({ default: m.BulkPanel })), +); +const SignalsPanel = lazy(() => + import("./components/SignalsPanel").then((m) => ({ default: m.SignalsPanel })), +); +import { LiveResearchState } from "./components/LiveResearchState"; +import { SourceDrawer } from "./components/SourceDrawer"; +import { SourceDrawerContext, type SourceRequest } from "./components/SourceDrawerContext"; + +export default function App() { + const { theme, toggle } = useTheme(); + // Demo access gate: a stored key means previously unlocked. The backend is + // the enforcement point — a stale/rotated key just 401s and re-gates below. + const [authed, setAuthed] = useState(() => Boolean(getAccessKey())); + // Land on the dashboard: saved profiles are the daily entry point. + const [mode, setMode] = useState("home"); + + // Saved company profiles (localStorage; the Home dashboard's data). + const [profiles, setProfiles] = useState(() => listProfiles()); + + // Single-lookup state + const [depth, setDepth] = useState("fast"); + const [query, setQuery] = useState(""); + const [loading, setLoading] = useState(false); + const [brief, setBrief] = useState(null); + // When the shown brief came from the session cache or a saved profile, this + // is its saved-at time (used for the honest "cached · Xm ago" badge). + const [cachedAt, setCachedAt] = useState(null); + const [error, setError] = useState<{ message: string; hint?: string } | null>(null); + const [lastQuery, setLastQuery] = useState(""); + const [recents, setRecents] = useState(() => recentQueries()); + + // Source drawer (lifted to the root; opened from anywhere via context) + const [source, setSource] = useState(null); + + // Whether the on-screen brief has a saved profile (kept in sync on changes). + const briefSaved = brief + ? profiles.some((p) => p.query === brief.query.trim().toLowerCase()) + : false; + + // If this company is saved, push the latest brief into its profile. + const syncProfile = useCallback((b: ResearchBrief) => { + if (findProfile(b.query)) { + saveProfile(b); + setProfiles(listProfiles()); + } + }, []); + + // Dev/design aid: ?mock=1 renders a canned brief instantly (clearly not a + // live run — meta.run_ids are trun_mock_*). Never used in the normal flow. + useEffect(() => { + if (new URLSearchParams(window.location.search).get("mock") === "1") { + setBrief(MOCK_BRIEF); + setLastQuery(MOCK_BRIEF.query); + setQuery(MOCK_BRIEF.query); + setMode("single"); + } + }, []); + + + const runEnrich = useCallback( + async (query: string, opts?: { force?: boolean }) => { + setLastQuery(query); + setQuery(query); // keep the search input in sync (chips, retry, refresh) + setError(null); + + // Session cache: instant re-show during a call (unless a live refresh + // was requested). Cached results are labeled as such — never passed off + // as a fresh run. + if (!opts?.force) { + const hit = getCached(query, depth); + if (hit) { + setBrief(hit.brief); + setCachedAt(hit.savedAt); + return; + } + } + + setLoading(true); + setBrief(null); + setCachedAt(null); + try { + const result = await enrichCompany(query, depth); + setBrief(result); + saveCached(query, depth, result); + syncProfile(result); // saved company? keep its profile fresh + setRecents(recentQueries()); + } catch (e) { + if (e instanceof ApiError && e.status === 401) { + // Key was rotated/invalid: drop it and fall back to the gate. + clearAccessKey(); + setAuthed(false); + } else if (e instanceof ApiError) { + setError({ message: e.message, hint: e.hint }); + } else { + setError({ message: "Something went wrong reaching the enrichment service." }); + } + } finally { + setLoading(false); + } + }, + [depth, syncProfile], + ); + + // Deep link: ?q= auto-runs a lookup once unlocked — this is + // what the Slack "Enrich →" buttons open. Runs at most once. + const deepLinkRan = useRef(false); + useEffect(() => { + if (!authed || deepLinkRan.current) return; + const q = new URLSearchParams(window.location.search).get("q"); + if (q && q.trim()) { + deepLinkRan.current = true; + setMode("single"); + runEnrich(q.trim()); + } + }, [authed, runEnrich]); + + // "Add to profile" from the ask bar: append the cited answer to the brief's + // Custom Research card (deduped by question) and persist wherever it lives. + const addToProfile = useCallback( + (result: CustomFieldResult) => { + if (!brief) return; + const norm = (s: string) => s.trim().toLowerCase(); + const existing = brief.custom_fields ?? []; + if (existing.some((c) => norm(c.question) === norm(result.question))) return; + const next = { ...brief, custom_fields: [...existing, result] }; + setBrief(next); + saveCached(next.query, depth, next); + syncProfile(next); + }, + [brief, depth, syncProfile], + ); + + // --- Home dashboard handlers --- + const openProfile = useCallback((p: SavedProfile) => { + setBrief(p.brief); + setQuery(p.brief.query); + setLastQuery(p.brief.query); + setCachedAt(p.updatedAt); + setError(null); + setMode("single"); + }, []); + + const handleDeleteProfile = useCallback((id: string) => { + setProfiles(deleteProfile(id)); + }, []); + + const handleNewProfile = useCallback(() => { + setBrief(null); + setQuery(""); + setLastQuery(""); + setCachedAt(null); + setError(null); + setMode("single"); + }, []); + + const handleSaveProfile = useCallback(() => { + if (!brief) return; + saveProfile(brief); + setProfiles(listProfiles()); + }, [brief]); + + // "/" focuses the search input from anywhere (unless already typing). + useEffect(() => { + const onKey = (e: KeyboardEvent) => { + if (e.key !== "/" || e.metaKey || e.ctrlKey || e.altKey) return; + const el = document.activeElement; + if (el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement) return; + e.preventDefault(); + document.getElementById("enrich-input")?.focus(); + }; + window.addEventListener("keydown", onKey); + return () => window.removeEventListener("keydown", onKey); + }, []); + + // Everything (including ?mock=1) sits behind the gate. + if (!authed) { + return setAuthed(true)} />; + } + + return ( + +
+
{ + if (m === "home") setProfiles(listProfiles()); + setMode(m); + }} + /> + +
+ {mode === "home" && ( + + )} + + {mode === "single" && ( + <> + + + {/* Recent lookups — cached, so tapping one is instant */} + {!loading && recents.length > 0 && ( +
+ + Recent + + {recents.map((r) => ( + + ))} +
+ )} + + {loading && } + {!loading && error && ( + lastQuery && runEnrich(lastQuery, { force: true })} + /> + )} + {!loading && !error && !brief && } + {!loading && !error && brief && ( +
+ runEnrich(brief.query, { force: true })} + saved={briefSaved} + onSave={handleSaveProfile} + /> + +
+ +
+
+

+ Decision-makers +

+ +
+
+ )} + + )} + + {mode === "bulk" && ( + Loading…
}> + + + )} + + {mode === "signals" && SHOW_SIGNALS && ( + Loading…}> + { + // Hand a signal straight to the single-lookup flow — the + // signal→brief pipeline in one click. + setMode("single"); + runEnrich(company); + }} + /> + + )} + + + setSource(null)} /> + +
+ ); +} diff --git a/python-recipes/parallel-investor-signals/project/src/assets/logo/dark.svg b/python-recipes/parallel-investor-signals/project/src/assets/logo/dark.svg new file mode 100644 index 0000000..0bee08e --- /dev/null +++ b/python-recipes/parallel-investor-signals/project/src/assets/logo/dark.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/python-recipes/parallel-investor-signals/project/src/assets/logo/light.svg b/python-recipes/parallel-investor-signals/project/src/assets/logo/light.svg new file mode 100644 index 0000000..1defc7a --- /dev/null +++ b/python-recipes/parallel-investor-signals/project/src/assets/logo/light.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/python-recipes/parallel-investor-signals/project/src/assets/logo/wordmark_dark.svg b/python-recipes/parallel-investor-signals/project/src/assets/logo/wordmark_dark.svg new file mode 100644 index 0000000..92d8304 --- /dev/null +++ b/python-recipes/parallel-investor-signals/project/src/assets/logo/wordmark_dark.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/python-recipes/parallel-investor-signals/project/src/assets/logo/wordmark_light.svg b/python-recipes/parallel-investor-signals/project/src/assets/logo/wordmark_light.svg new file mode 100644 index 0000000..2318366 --- /dev/null +++ b/python-recipes/parallel-investor-signals/project/src/assets/logo/wordmark_light.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/python-recipes/parallel-investor-signals/project/src/brand/parallel-theme.css b/python-recipes/parallel-investor-signals/project/src/brand/parallel-theme.css new file mode 100644 index 0000000..2cb90d0 --- /dev/null +++ b/python-recipes/parallel-investor-signals/project/src/brand/parallel-theme.css @@ -0,0 +1,131 @@ +/* ========================================================================== + Parallel brand theme — drop-in CSS + Source of truth: the official Parallel docs (docs.json colors + style.css). + Import this once at the app root, then use the CSS variables below. + ========================================================================== */ + +/* --- Brand fonts (canonical, hosted by Parallel) -------------------------- */ +/* Gerstner Programm = display/body. FT System Mono = code/mono. + These are proprietary fonts served from Parallel's CDN; if they fail to + load (offline, or licensing), the fallback stacks below take over cleanly. */ + +@font-face { + font-family: "Gerstner Programm"; + src: url("https://assets.p0web.com/Gerstner-ProgrammRegular.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; +} +@font-face { + font-family: "Gerstner Programm"; + src: url("https://assets.p0web.com/Gerstner-ProgrammMedium.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; +} +@font-face { + font-family: "FT System Mono"; + src: url("https://assets.p0web.com/FTSystemMono-Regular.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; +} +@font-face { + font-family: "FT System Mono"; + src: url("https://assets.p0web.com/FTSystemMono-Medium.woff2") format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; +} + +/* --- Design tokens -------------------------------------------------------- */ +:root { + /* Brand */ + --parallel-orange: #fb631b; /* primary — the single accent. Use sparingly. */ + --parallel-ink: #1d1c1a; /* near-black brand ink (logo fill on light) */ + + /* Fonts */ + --font-sans: "Gerstner Programm", -apple-system, BlinkMacSystemFont, "Segoe UI", + Roboto, Oxygen, Ubuntu, Cantarell, sans-serif; + --font-mono: "FT System Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, + monospace; + + /* Radius (docs use rounded-md everywhere for cards + code) */ + --radius: 0.375rem; + + /* Semantic — LIGHT theme (docs default appearance) */ + --bg: #fcfcfa; /* app background (warm off-white) */ + --surface: #f6f6f6; /* cards / panels */ + --surface-2: #eeeeee; /* active/selected surface */ + --border: #e5e5e5; + --text: #1d1c1a; /* primary text */ + --text-muted: #4b5563; + --accent: var(--parallel-orange); + --on-accent: #fcfcfa; /* text/icon on an orange fill */ +} + +/* Semantic — DARK theme. Toggle by adding class="dark" on /, + or rely on prefers-color-scheme below. */ +.dark, +:root[data-theme="dark"] { + --bg: #1d1b16; /* warm near-black */ + --surface: #1a1a1a; + --surface-2: #2a2a2a; + --border: #2a2a2a; + --text: #fcfcfa; + --text-muted: #9ca3af; + --accent: var(--parallel-orange); + --on-accent: #fcfcfa; +} + +@media (prefers-color-scheme: dark) { + :root:not([data-theme="light"]):not(.light) { + --bg: #1d1b16; + --surface: #1a1a1a; + --surface-2: #2a2a2a; + --border: #2a2a2a; + --text: #fcfcfa; + --text-muted: #9ca3af; + } +} + +/* --- Base element styling ------------------------------------------------- */ +html, +body { + background-color: var(--bg); + color: var(--text); + font-family: var(--font-sans); + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; +} + +/* Parallel headings read at medium weight (500), not bold — a signature of + the brand's restrained, editorial feel. */ +h1, h2, h3, h4, h5, h6 { + font-weight: 500; + letter-spacing: -0.01em; +} + +code, pre, kbd, samp { + font-family: var(--font-mono); +} + +a { + color: var(--accent); + text-decoration: none; +} +a:hover { text-decoration: underline; } + +/* Utility surfaces you can apply directly */ +.parallel-card { + background-color: var(--surface); + border: 1px solid var(--border); + border-radius: var(--radius); +} +.parallel-btn { + background-color: var(--accent); + color: var(--on-accent); + border-radius: var(--radius); + font-family: var(--font-sans); + font-weight: 500; +} diff --git a/python-recipes/parallel-investor-signals/project/src/components/AccountCard.tsx b/python-recipes/parallel-investor-signals/project/src/components/AccountCard.tsx new file mode 100644 index 0000000..d2c9e44 --- /dev/null +++ b/python-recipes/parallel-investor-signals/project/src/components/AccountCard.tsx @@ -0,0 +1,128 @@ +import type { ResearchBrief } from "../types"; +import { FieldRow, SourceMarker } from "./FieldRow"; +import { ConfidencePill } from "./ConfidencePill"; + +// A titled group of claims. The eyebrow number encodes nothing sequential — +// it's a section index for scannability, kept in mono to match the console. +function Section({ + index, + title, + className, + children, +}: { + index: string; + title: string; + className?: string; + children: React.ReactNode; +}) { + return ( +
+
+ {index} +

+ {title} +

+
+
{children}
+
+ ); +} + +export function AccountCard({ brief }: { brief: ResearchBrief }) { + const { firmographics: f, funding: fn, technographics: t, buying_signals: bs } = brief; + const custom = brief.custom_fields ?? []; + + return ( +
+
+ + + + + +
+ +
+ + + ( + + {v.map((inv) => ( + + {inv} + + ))} + + )} + /> + + +
+ +
+ ( + + {v.map((tech) => ( + + {tech} + + ))} + + )} + /> +
+ +
+ {bs.value && bs.value.length ? ( +
+
+ {bs.confidence && } + +
+
    + {bs.value.map((s, i) => ( +
  • + + {s.type} + +
    +

    {s.headline}

    + {s.date && ( +

    {s.date}

    + )} +
    +
  • + ))} +
+
+ ) : ( +

No recent signals found.

+ )} +
+ + {custom.length > 0 && ( +
+ {custom.map((item) => ( + + ))} +
+ )} +
+ ); +} diff --git a/python-recipes/parallel-investor-signals/project/src/components/AskBar.tsx b/python-recipes/parallel-investor-signals/project/src/components/AskBar.tsx new file mode 100644 index 0000000..b3feb7b --- /dev/null +++ b/python-recipes/parallel-investor-signals/project/src/components/AskBar.tsx @@ -0,0 +1,151 @@ +import { useEffect, useRef, useState } from "react"; +import type { CustomFieldResult, Depth, ResearchBrief } from "../types"; +import { ApiError, enrichCustomFields } from "../lib/api"; +import { SourceMarker } from "./FieldRow"; +import { ConfidencePill } from "./ConfidencePill"; + +// Ad-hoc research about the company on screen: ask a question, get a cited +// answer inline. Nothing touches the profile unless the rep clicks "Add to +// profile" — answers here are ephemeral (and reset when the company changes). +export function AskBar({ + brief, + depth, + onAddToProfile, +}: { + brief: ResearchBrief; + depth: Depth; + onAddToProfile: (result: CustomFieldResult) => void; +}) { + const [question, setQuestion] = useState(""); + const [asking, setAsking] = useState(false); + const [pending, setPending] = useState(null); // question in flight + const [answers, setAnswers] = useState([]); // newest first + const [error, setError] = useState(null); + + // New company on screen -> clear the session Q&A. + const companyRef = useRef(brief.query); + useEffect(() => { + if (companyRef.current !== brief.query) { + companyRef.current = brief.query; + setAnswers([]); + setQuestion(""); + setError(null); + } + }, [brief.query]); + + const norm = (s: string) => s.trim().toLowerCase(); + const inProfile = new Set((brief.custom_fields ?? []).map((c) => norm(c.question))); + + const ask = async () => { + const q = question.trim(); + if (!q || asking) return; + // Already answered this session — just surface it (no repeat spend). + if (answers.some((a) => norm(a.question) === norm(q))) { + setQuestion(""); + return; + } + setError(null); + setAsking(true); + setPending(q); + try { + const res = await enrichCustomFields(brief.query, depth, [ + { label: q.slice(0, 60), question: q }, + ]); + const answer = res.custom_fields[0]; + if (answer) setAnswers((prev) => [answer, ...prev]); + setQuestion(""); + } catch (e) { + setError(e instanceof ApiError ? e.message : "Research failed. Try again."); + } finally { + setAsking(false); + setPending(null); + } + }; + + return ( +
+
+
+ + ? + + setQuestion(e.target.value)} + onKeyDown={(e) => e.key === "Enter" && ask()} + placeholder={`Ask anything about ${brief.company_name} — e.g. Are they SOC 2 compliant?`} + disabled={asking} + className="w-full rounded-brand border border-line bg-surface py-2.5 pl-8 pr-3 text-[14px] text-ink outline-none transition-colors placeholder:text-muted/50 focus:border-accent disabled:opacity-60" + /> +
+ +
+

+ Answered live from the web, with citations. No cited source → no answer. +

+ + {error &&

{error}

} + + {(pending || answers.length > 0) && ( +
+ {pending && ( +
+

{pending}

+ researching… +
+ )} + {answers.map((a) => { + const added = inProfile.has(norm(a.question)); + const has = a.field.value !== null; + return ( +
+

{a.question}

+
+ {has ? ( + <> + + {String(a.field.value)} + + {a.field.confidence && } + + + + ) : ( + + No cited answer found — not guessing. + + )} +
+
+ ); + })} +
+ )} +
+ ); +} diff --git a/python-recipes/parallel-investor-signals/project/src/components/BriefHeader.tsx b/python-recipes/parallel-investor-signals/project/src/components/BriefHeader.tsx new file mode 100644 index 0000000..d31d3f2 --- /dev/null +++ b/python-recipes/parallel-investor-signals/project/src/components/BriefHeader.tsx @@ -0,0 +1,114 @@ +import type { ResearchBrief } from "../types"; +import { formatLatency } from "../lib/format"; +import { agoLabel } from "../lib/cache"; + +// Counts how many of the ~15 account fields came back with a value — a quick +// "signal strength" read for the rep, and the trigger for a low-signal banner. +function coverage(brief: ResearchBrief): { filled: number; total: number } { + const f = brief.firmographics; + const fn = brief.funding; + const fields = [ + f.industry, f.hq, f.employee_count, f.founded_year, f.description, + fn.total_raised, fn.last_round, fn.investors, fn.valuation, fn.revenue_estimate, + brief.technographics.tech_stack, brief.buying_signals, + ]; + const filled = fields.filter((x) => { + const v = x.value; + return v !== null && v !== undefined && (!Array.isArray(v) || v.length > 0); + }).length; + return { filled, total: fields.length }; +} + +export function BriefHeader({ + brief, + cachedAt, + onRefresh, + saved = false, + onSave, +}: { + brief: ResearchBrief; + cachedAt?: number | null; + onRefresh?: () => void; + saved?: boolean; // this company already has a saved profile (kept in sync) + onSave?: () => void; +}) { + const { filled, total } = coverage(brief); + const lowSignal = filled <= 3; + + return ( +
+
+
+

{brief.company_name}

+ {brief.domain && ( + + {brief.domain} ↗ + + )} +
+
+ {/* Honest provenance: cached results say so, with one-click live refresh */} + {cachedAt ? ( + <> + + cached {agoLabel(cachedAt)} + + {onRefresh && ( + + )} + + ) : ( + + {formatLatency(brief.meta.latency_ms)} + + )} + + {brief.meta.processor} + + + {filled}/{total} fields + + {onSave && + (saved ? ( + + Saved ✓ + + ) : ( + + ))} +
+
+ + {lowSignal && ( +
+ Low signal — we found little public data for this query. Try the full + company name or its primary domain. +
+ )} + {brief.meta.partial && !lowSignal && ( +
+ Partial result — some fields timed out. The values shown are still + fully sourced. +
+ )} +
+ ); +} diff --git a/python-recipes/parallel-investor-signals/project/src/components/BulkPanel.tsx b/python-recipes/parallel-investor-signals/project/src/components/BulkPanel.tsx new file mode 100644 index 0000000..b5ff785 --- /dev/null +++ b/python-recipes/parallel-investor-signals/project/src/components/BulkPanel.tsx @@ -0,0 +1,233 @@ +import { useCallback, useEffect, useRef, useState } from "react"; +import Papa from "papaparse"; +import type { BulkJob, CustomFieldDef, Depth, ResearchBrief } from "../types"; +import { bulkExportUrl, pollBulk, startBulk } from "../lib/api"; +import { usableDefs } from "../lib/customFields"; +import { CustomFieldsEditor } from "./CustomFieldsEditor"; + +// Pull a list of company identifiers out of an uploaded CSV: prefer a column +// named company/domain/name/account; otherwise fall back to the first column. +function companiesFromCsv(text: string): string[] { + const parsed = Papa.parse(text.trim(), { skipEmptyLines: true }); + const rows = parsed.data as string[][]; + if (!rows.length) return []; + const header = rows[0].map((h) => (h || "").toLowerCase().trim()); + const preferred = ["company", "domain", "name", "account", "website"]; + let col = header.findIndex((h) => preferred.includes(h)); + const hasHeader = col !== -1 || header.some((h) => preferred.some((p) => h.includes(p))); + if (col === -1) col = 0; + const body = hasHeader ? rows.slice(1) : rows; + return body.map((r) => (r[col] || "").trim()).filter(Boolean); +} + +export function BulkPanel({ depth }: { depth: Depth }) { + const [companies, setCompanies] = useState([]); + const [raw, setRaw] = useState(""); + const [job, setJob] = useState(null); + const [error, setError] = useState(null); + // Batch-level custom questions -> one extra column each. Session-only state: + // deliberately not persisted, so a refresh starts clean. + const [customFields, setCustomFields] = useState([]); + // `submittedDefs` is frozen at run time so result columns stay stable while + // the job runs (independent of further edits to the editor). + const [submittedDefs, setSubmittedDefs] = useState([]); + const pollRef = useRef(null); + const fileRef = useRef(null); + + const running = job?.status === "running"; + + // Parse a pasted list (newline or comma separated) into companies. + const parsePasted = useCallback((text: string) => { + setRaw(text); + const list = text + .split(/[\n,]/) + .map((s) => s.trim()) + .filter(Boolean); + setCompanies(list); + }, []); + + const onFile = (file: File) => { + const reader = new FileReader(); + reader.onload = () => { + const list = companiesFromCsv(String(reader.result)); + setCompanies(list); + setRaw(list.join("\n")); + }; + reader.readAsText(file); + }; + + const run = async () => { + if (!companies.length || running) return; + setError(null); + setJob(null); + const defs = usableDefs(customFields); + setSubmittedDefs(defs); + try { + const { job_id } = await startBulk(companies, depth, defs); + setJob({ job_id, status: "running", done: 0, total: companies.length, results: [] }); + } catch (e) { + setError(e instanceof Error ? e.message : "Failed to start enrichment."); + } + }; + + // Poll the job while it runs. Cleaned up on unmount / completion. + useEffect(() => { + if (!job || job.status !== "running") return; + pollRef.current = window.setInterval(async () => { + try { + const next = await pollBulk(job.job_id); + setJob(next); + } catch (e) { + setError(e instanceof Error ? e.message : "Lost connection to the job."); + if (pollRef.current) window.clearInterval(pollRef.current); + } + }, 1500); + return () => { + if (pollRef.current) window.clearInterval(pollRef.current); + }; + }, [job?.job_id, job?.status]); + + return ( +
+
+

Bulk enrich a list

+

+ Paste companies (one per line) or drop a CSV. We enrich every row and + give you an enriched CSV back — the Monday-morning rep workflow. +

+ +
+