No description
Find a file
Natalie e9f948b318
Some checks failed
CI/CD / verify (push) Failing after 0s
CI/CD / deploy (push) Has been skipped
fix(edge): install Prospector Caddy as a conf.d snippet, not the main Caddyfile
ct.prod is a shared DMZ (Caddy also fronts macsync.ct.uvlava.com). Installing
apps.ftw.pw.Caddyfile AS /etc/caddy/Caddyfile overwrote macsync's site and caused
an edge outage. Install to /etc/caddy/conf.d/prospector.caddy with the main
Caddyfile import-only, so the two edges never clobber each other.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-01 16:41:39 -04:00
.forgejo/workflows ci(cd): finish the deploy job + retarget to ct.prod / apps.ftw.pw 2026-06-30 14:33:06 -04:00
@packages refactor(ai-harness): @prospector/ai-harness → @cocotte/ai-harness (publishable) 2026-07-01 06:53:44 -04:00
deploy fix(edge): install Prospector Caddy as a conf.d snippet, not the main Caddyfile 2026-07-01 16:41:39 -04:00
designs feat(prospector): align design contract with PWA-only architecture 2026-06-29 15:02:16 -04:00
docs docs(deploy): edge basic_auth + token injection resolved; open = https registry, ssh, wg1 2026-07-01 07:51:32 -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 fix(migrations): widen settings.mode + tasks.status CHECKs for DRAFT mode 2026-06-30 12:36:45 -04:00
scripts feat(sim): seed campaigns + voice corrections + pastebin stand-in 2026-06-30 14:31:12 -04:00
src refactor(ai-harness): @prospector/ai-harness → @cocotte/ai-harness (publishable) 2026-07-01 06:53:44 -04:00
tooling/eval docs: update PLAN + AI docs for the data→model lane (LoRA, e2e, infra-tools) 2026-07-01 07:37:06 -04:00
web fix(web): drop the faux desktop-window chrome — always fill the real window 2026-07-01 12:35:06 -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(deploy): retarget prospector to ct.prod (apps.ftw.pw edge) 2026-06-30 12:17:17 -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 chore(web): drop unused @cocotte/ui-fab/ui-icons/ui-zname dependencies 2026-07-01 10:19:52 -04:00
package.json refactor(ai-harness): @prospector/ai-harness → @cocotte/ai-harness (publishable) 2026-07-01 06:53:44 -04:00
PLAN.md docs(prospector): log theme-consistency + tech-debt follow-up in PLAN.md 2026-07-01 10:21:13 -04:00
README.md fix(clients)+chore: fetch deadlines on people/mrnumber, doc drift, drop dead Placeholder 2026-06-30 20:20:10 -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 Caddy edge on the hardened public host ct.prod (.infra.yaml: host ct.prod, port 3210, systemd unit prospector; public front door apps.ftw.pw; lime stays internal-only). See docs/features/deploy.md. 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