No description
Find a file
Natalie aa3e6eacda feat(tray): replace executable stub bin (MacOS/Prospector) with featureful dispatcher
The previous dumb stub just execd the applescript. Now the bin (still used as the bundle executable and for double-click) supports CLI features/subcommands while preserving default tray UI behavior:

- no arg / tray / menu: launch tray UI (status item + menu)
- launch / open / app: start services (delegates to launch.sh, matches menu "Open Prospector")
- stop: stop services (matches menu "Stop services")
- help: list features

Updated post-build messaging, tray.applescript header comment, scripts/README.md table, and ./run usage. Tested via TRAY_DEST=/tmp/... build + direct bin help invocation (and full make-tray success).
2026-06-29 23:23:51 -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 feat(tray): replace executable stub bin (MacOS/Prospector) with featureful dispatcher 2026-06-29 23:23:51 -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 perf(web): merge Wave C react perf pass from subagent (1708eff in wave-c-react-perf worktree) 2026-06-29 22:05:46 -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 react perf subagent completion (019f163d-1685-7541-8a68-6eefb4de78bb, 1708eff) + merge into main (memo on rows, useMemo filters, lazy+Suspense split; main chunk 320kB→237kB) 2026-06-29 22:06:07 -04:00
README.md docs: move PLAN.md to app root 2026-06-29 19:10:59 -04:00
run feat(tray): replace executable stub bin (MacOS/Prospector) with featureful dispatcher 2026-06-29 23:23:51 -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