Stream C frontend: ChatCoach page, nav update, README with AI providers + agent configs

Frontend:
- ChatCoach.jsx: streaming chat UI with SSE, provider indicator, suggestion
  chips, 'no AI configured' state with setup link
- App.jsx: import + /chat route + nav bar (More → Coach with brain emoji)
- api.js: getAIStatus() method

Documentation:
- README.md: 'Built-in AI Coach' section with 8-provider table, external
  agent config snippets for Claude Desktop, Claude Code, Cursor, Windsurf,
  and COROS multi-MCP pattern
- AGENT_GUIDE.md: multi-device integration, Strava AI/ML warning,
  provider-agnostic statement

Nav bar: Home | Log | Keto | Programs | Coach
Settings still reachable at /settings (linked from Coach setup prompt)
This commit is contained in:
Claude 2026-06-21 23:28:07 +00:00
parent 3ab88a3d2a
commit 0670bca9b1
5 changed files with 271 additions and 142 deletions

View file

@ -97,3 +97,31 @@ Use get_context() to see their motivation profile:
understand it, but don't lecture.
- Don't read back integration credentials. You can check status but
never retrieve stored secrets.
## Multi-Device Integration
If you have access to both Diligence tools and a device MCP (like COROS),
you can bridge data between them:
1. Read the user's recent workouts from the device MCP
2. Use Diligence's log_activity tool to import them
3. This earns the user points automatically
Example workflow with COROS MCP connected:
- Check COROS for today's activities
- For each unlogged activity, call log_activity with the details
- Report the points earned
## Strava Data Warning
Strava's API terms prohibit use of their data for AI/ML purposes.
If the user has Strava connected, you may see synced activities in
their log, but do not reference Strava-specific data in your coaching
advice. Treat Strava activities as user-reported workouts only.
## Provider-Agnostic
This guide works regardless of which LLM powers the coaching.
The same context, tools, and personality apply whether you are
GPT-4o, Claude, Llama, Gemini, or any other model. The user
chose you — respect their choice and focus on being helpful.