Commit graph

12 commits

Author SHA1 Message Date
Natalie
bfb2bdf8f7 feat(sim): seed campaigns + voice corrections + pastebin stand-in
Some checks failed
CI / verify (push) Has been cancelled
Extends the simulator to light up the previously-empty Campaigns and Voice
surfaces from the live backend: launches sample campaigns via the real
facets→preview→launch flow, posts voice/tone corrections so the voice-
alignment lens returns pairs, and stands up an ephemeral macsync pastebin
stand-in so the template draft path renders real bodies offline. Verified:
GET /campaigns → 2 rows, /corrections/voice/alignment → 6 corrections / 4
pairs. (AI judge files left uncommitted per scope.)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 14:31:12 -04:00
Natalie
1157326a3b feat(ai-harness): self-hosted vLLM inference layer package
New @prospector/ai-harness workspace package — prospector's self-hosted
inference layer, replacing the model-boss coordinator. Owns a direct
OpenAI-compatible vLLM client over GPU_INFERENCE_URL (instance circuit
breaker + /health probe), a typed TASK_REGISTRY (prospect.classify /
prospect.draft / placeholder prospect.judge for the coming alignment
gate), the Quinn-voice prompt builders, and the request/response types
(ChatJsonOpts, ChatPriority, InferenceHealth). Framework-agnostic (no
NestJS, no process.env) so it is promotable to a shared @ct package.
Co-located Vitest (9 tests). Registered in root workspaces + backend dep.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 11:24:08 -04:00
Natalie
57c497989c feat(mcp-orchestrator): scaffold AI streaming orchestrator MCP + design doc
Some checks failed
CI / verify (push) Failing after 42s
Add the third prospector interface: an AI-facing streaming orchestrator MCP
that sits above the raw mcp-prospector adapter and alongside the operator PWA.
It ticks the system, reports status, detects items needing a human, raises
dedup'd nudges, and drives the GO/PAUSE/AWAY kill-switch — but never sends
(every send stays behind Gate-2 + the human_owned floor).

- @packages/mcp-orchestrator: package.json + tsconfig + src/{index,client,
  nudges,types}.ts. Six tools (orchestrate_tick, status_report, list_nudges,
  ack_nudge, set_mode, drive_loop) wired to the real REST surface; detection/
  loop logic left as documented PENDING stubs. Typechecks + builds clean.
- docs/features/ai-orchestrator.md: responsibilities, tool surface, streaming/
  nudge loop, nudge rules mapped to verified live endpoints, reuse + safety,
  open decisions.
- register the package in the root workspaces.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 10:23:52 -04:00
Natalie
bcbd558e9d refactor!: drop Swift/native macOS app, unify on the PWA
Some checks are pending
CI / verify (push) Waiting to run
Remove all Swift/legacy artifacts — no native app, no swift-react UI, no
tech debt. The Chrome PWA (web/) on the NestJS backend (src/) + MCP server
is the sole way forward.

Removed:
- @packages/prospector-client, @packages/prospector-ui (Swift packages)
- Sources/ (QuinnProspector, QuinnProspectorCore), Config/, project.yml,
  QuinnProspector.xcodeproj, Resources/
- PLAN.md (stale my/-port plan, superseded)

Rewired:
- .forgejo/workflows/ci.yml → Node CI (npm ci → typecheck/test/build for
  backend + web + MCP) instead of Swift build/test
- .gitignore → drop .build/, *.xcodeproj/

Unified definition:
- docs/PROSPECTOR.md — new single source of truth (architecture, surfaces,
  invariants, dependencies, build/deploy)
- README.md, CLAUDE.md, docs/README.md, src/README.md → PWA-forward,
  point at docs/PROSPECTOR.md, no Swift/legacy references

designs/ kept intact as the authoritative UI/behavior spec.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-29 11:59:04 -04:00
Natalie
3fafb943bb feat(ui+ mcp+docs): complete UI fusion (Triage sidebar+toolbar+bi matching designs/main+reports 4 fused with bi+Queue tabs+sim+log+Pastebin sync+Control PWA install); extend MCP with draft/send/thread/list/pastebin/reports/mr/markets for full legacy cockpit parity; update deploy.md with migration 0006 + notes. Per MIGRATION-PLAN Phases 1+3+5. Builds/tsc green. 2026-06-29 09:31:13 -04:00
Natalie
6ca7a32964 feat(prospector): enhance backend+MCP per MISSING_REQUIREMENTS.md (P0 gaps: real raw classify, booking triad+takeover verdict, composition+confidence, send safety floors incl vendor/human/known, structured returns; add /prospector/classify + mcp tool; richer inbound+runner+gate+people signals; update docs). Builds/tests green. Per PLAN.md + docs/features/mcp/MISSING_REQUIREMENTS.md. 2026-06-29 07:30:08 -04:00
Natalie
56e93b8cfb feat(service): teach-loop corrections + MCP tool (vetting + OSS tuning data)
POST/GET prospector/corrections (own-DB prospect_corrections): operator/coworker
records where the backend's decision or draft was wrong — the trial vetting signal
and the substrate for tuning the OSS models. Adds prospector_correction MCP tool.
Disable tsc incremental (nest deleteOutDir + stale tsbuildinfo dropped emitted
files). tsc clean; corrections POST/GET verified live.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-29 07:12:14 -04:00
Natalie
92c98b9ade refactor: restructure to src/ app + @packages/mcp-prospector; off-Claude default; MCP
Restructure to match the @mac-sync sister-app convention + operator direction:
- Backend service -> repo root (root package = the app); engine is CORE source,
  now src/engine/ (not a separate package); imports rewritten to relative.
- MCP server -> @packages/mcp-prospector/ (agent interface; thin REST wrapper so
  the coworker can trial this backend and fall back to legacy quinn-prospector).
- web/ stays a top-level surface.
- draft_engine default 'claude:sonnet' -> 'pastebin': the whole point is to run
  OFF hosted Claude (which refuses adult-services copy) on OSS-uncensored LLMs on
  raw GPU droplets; generative target is 'gpu:<model>'. Reuse LPv2's existing DO
  GPU provisioning, not model-boss.
- docs/features/mcp.md: how the MCP works + the coworker graceful-switch protocol.
- .gitignore: ignore Swift .build/.

Verified: tsc clean, 101 tests (92 engine + 9 runner), app boots from root,
mcp-prospector builds + boots, smoke tests green (scam held, settings=pastebin).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-29 06:39:13 -04:00
Natalie
8c5ec0f3b3 docs(prospector): pivot to primary webapp PWA containerless Chrome at my.transquinnftw.com/prospector/app (designs/ as spec; Swift now secondary). Update MVP, structure, principles per operator directive + plan. 2026-06-28 17:57:49 -04:00
Natalie
a83bfd2a93 fix(prospector): correct design tokens usage to AppColors.* (was LilithDesignTokens.Colors.*) + commit app skeleton sources/project for @prospector tree
- Fixed build error in prospector-ui + the co-located app Sources after migration.
- Updated to use AppColors (per tokens package API + tv-anarchy/quinn-ios patterns) + cleaned do/catch.
- These Sources/project were part of skeleton; now verified buildable with new packages.
- Cleans status for Wave 1 (designs, packages, app slice already present).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 17:41:46 -04:00
Natalie
553e686efd feat(prospector): migrate shared packages into @applications/@prospector/@packages/ (Wave 1)
- prospector-client/: merge of domain-models/ + api-client/ into single target/product 'ProspectorClient' with combined Sources/
- prospector-ui/: moved, product 'ProspectorUI' depends on prospector-client + adjusted @ui/ path deps
- Used terminal mv for content relocation (from @packages/@swift/@prospector/); git add in new repo
- Updated all internal: imports (LilithProspectorDomainModels → ProspectorClient or removed), Package.swift names/products/comments, tests (@testable), READMEs, source comments
- Added exact required note: 'Published from @applications/@prospector as part of restructure. Consumers use @lilith/prospector-client etc. See plan.md. Integrates with LP's prospect-runner, mcp-prospector, quinn-api, macsync Apple Notes pastebin.'
- Skeleton @prospector/ + @packages/ + top README also updated for structure/MVP/LP notes
- Independent of app migration (old app/project.yml still reference old; deprecation notes added)
- Old location: packages deleted via git rm + DEPRECATED.md left (in its own commit)
- See also DEPRECATED-PACKAGES.md in @quinn-prospector

Verification follows (ls/grep old names zero in new; swift build)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 17:39:04 -04:00
Natalie
c3e880a7bf feat(prospector): create @applications/@prospector/ skeleton with prospector-client and prospector-ui package skeletons (Wave 1 structure only)
- Per Quinn Prospector plan Wave 1 (independent): @applications/@prospector/ root + @packages/ sub structure.
- prospector-client/: Sources/ProspectorClient/ + Tests/ProspectorClientTests/ + Package.swift (product "ProspectorClient") + README.
- prospector-ui/: Sources/ProspectorUI/ + Tests/ProspectorUITests/ + Package.swift (product "ProspectorUI", depends on ../prospector-client) + README.
- Top-level placeholders: designs/, mcp/, docs/ + root README.md .
- All per task: basic skeletons, exact README migration note text, .gitkeep for dirs. No edits to old @quinn-prospector/ or @packages/@swift/@prospector/ sources.
- Verified pre-commit: list_dir + find + swift package describe (manifests valid; empty-target expected until migration in later wave).
- Git: scoped add only, on main, new repo no remote (commit local), pre-checked container git status clean for this change, no pollution per agent-cleanup.
- Follows Git Commit Protocol, safety-rules, zero tech debt, collective execution.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 17:36:20 -04:00