No description
Find a file
2026-06-29 22:04:33 -04:00
.forgejo/workflows refactor!: drop Swift/native macOS app, unify on the PWA 2026-06-29 11:59:04 -04:00
@packages/mcp-prospector refactor!: drop Swift/native macOS app, unify on the PWA 2026-06-29 11:59:04 -04:00
designs feat(prospector): align design contract with PWA-only architecture 2026-06-29 15:02:16 -04:00
docs docs: move PLAN.md to app root 2026-06-29 19:10:59 -04:00
infra chore(forge): update git origin to ct-forge with orgname cocotte and refresh examples/comments 2026-06-29 21:32:41 -04:00
mcp feat(mcp-installer): --replace-imessage to neuter the vendor imessage MCP 2026-06-29 09:19:52 -04:00
migrations feat(prospector): runtime config for GPU idle auto-teardown 2026-06-29 18:24:47 -04:00
scripts fix(app): reach panel via the bind host (mesh --host=IP support) 2026-06-29 10:04:19 -04:00
src fix(web): remove legacy .input css classes + any casts from new/migrated views; add Input primitive to ui/; tighten VoiceAlignment types (no any); align with PLAN no-old-css, STANDARDS explicit types, Wave C review 2026-06-29 22:00:35 -04:00
web feat(web): integrate full MarketsView from completed Wave A subagent (7211039 in markets-ui-migration worktree, ui/ only + prototype/designs/markets.html parity + no legacy classes) 2026-06-29 22:03:20 -04:00
.gitignore refactor!: drop Swift/native macOS app, unify on the PWA 2026-06-29 11:59:04 -04:00
.infra.dev.yaml feat(infra): add .infra.dev.yaml (local operator instance on fennel) 2026-06-29 10:20:25 -04:00
.infra.yaml chore(infra): .infra.yaml host -> lime (canonical mesh-hosts name) 2026-06-29 10:10:50 -04:00
.npmrc feat(web): adopt the cocotte design system (P-1 foundation) 2026-06-29 19:45:23 -04:00
CLAUDE.md refactor!: drop Swift/native macOS app, unify on the PWA 2026-06-29 11:59:04 -04:00
nest-cli.json refactor: restructure to src/ app + @packages/mcp-prospector; off-Claude default; MCP 2026-06-29 06:39:13 -04:00
package-lock.json feat(web): adopt the cocotte design system (P-1 foundation) 2026-06-29 19:45:23 -04:00
package.json docs: README + package.json reflect the implemented web/ operator PWA 2026-06-29 07:58:45 -04:00
PLAN.md docs(plan): note Wave C reviewer subagent completion (019f163d-2215-7bf1-9f37-fdeac4656c86) + fixes integrated (Input primitive, no legacy input/any in reviewed views) 2026-06-29 22:04:33 -04:00
README.md docs: move PLAN.md to app root 2026-06-29 19:10:59 -04:00
run feat(install): tray app + MCP step + detached run; fix local prod token proxy 2026-06-29 08:49:53 -04:00
tsconfig.json feat(service): teach-loop corrections + MCP tool (vetting + OSS tuning data) 2026-06-29 07:12:14 -04:00
vitest.config.ts refactor: restructure to src/ app + @packages/mcp-prospector; off-Claude default; MCP 2026-06-29 06:39:13 -04:00

@prospector (Quinn Prospector)

Quinn's AFK auto-send engine + operator console for inbound prospecting and outbound campaigns. One repo, one app: a NestJS backend (src/) + an installable Chrome PWA (web/) + an MCP server (@packages/mcp-prospector/), on its own Postgres database.

Read docs/PROSPECTOR.md first — the unified definition of the app (architecture, surfaces, invariants, dependencies, deploy). This README is the quick start; that doc is the source of truth.

What's here

Path What
PLAN.md Build-to-prototype plan — the 16 prototype views mapped to backend + PWA, with gaps and phasing. The active build roadmap.
src/ NestJS backend — feature-sliced modules → pure logic. Serves web/dist same-origin under /prospector/*. See src/README.md.
web/ Operator PWA (Vite + React, hash-routed, 8 views). Installs as a standalone Chrome/macOS window.
@packages/mcp-prospector/ MCP adapter over the REST surface for agent coworkers.
designs/ 8 interactive HTML prototypes — the authoritative UI/behavior spec. Open in a browser.
migrations/ SQL migrations (own Postgres DB).
docs/ PROSPECTOR.md (unified definition), STANDARDS.md, features/, MIGRATION_FROM_LP.md, prototype/ (unified 16-view prototype + decomposition).

Quick start

npm ci                          # install workspaces
npm run start:dev               # backend (watch)
cd web && npm run dev           # PWA on Vite (proxies /api → backend)

npm test                        # backend tests (Vitest)
npm run typecheck && npm run build
npm run build --workspace web   # → web/dist/

./run                           # launch the local stack
./run tray                      # macOS menu-bar launcher (AppleScript)

Deploy

Single NestJS process serving web/dist same-origin behind the auth-injecting proxy on the DO droplet (.infra.yaml: host lime, port 3210, systemd unit prospector). CI (.forgejo/workflows/ci.yml) runs on ct-forge Linux runners: npm ci → typecheck → test → build (backend + web + MCP).

The only mesh-dependent path is mac-sync (Apple Notes pastebin, outbox, messages, calendar). Core prospector is pure DO + Postgres. A platform my/ SSO surface is a future goal, not a current dependency — see docs/PROSPECTOR.md.

Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com