DeepSeek Harness Remote
DeepSeek Harness Remote 可將手機或另一台電腦與你運行 DeepSeek Harness 的電腦安全連接,隨時隨地繼續你的工作,方便隨時查看進度並繼續工作。
AI 翻譯
尚未收集儲存庫資訊。
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗When to leave, what to bring, and how to get to class. Built from your class calendar and the forecast.
.ics files. They're merged, de-duplicated, and labeled by calendar. Then share your location (or type an address)npm install
cp .env.example .env.local # add keys (both optional)
npm run dev
| Env var | Needed? | What happens without it |
|---|---|---|
GEMINI_API_KEY | Optional | Used for the AI brief when set (free key) |
GROQ_API_KEY | Optional | Tried next (free key, no billing needed) |
ANTHROPIC_API_KEY | Optional | Tried last. With no working key, the brief and bring list come from rules |
ORS_API_KEY | Optional | Travel time is a straight-line estimate (dashed on the map) |
GEMINI_MODEL | Optional | Defaults to gemini-2.5-flash |
GROQ_MODEL | Optional | Defaults to llama-3.3-70b-versatile |
CLAUDE_MODEL | Optional | Defaults to claude-haiku-5-5 |
CAMPUS_CENTER | Optional | Geocoding bias, defaults to Penn State University Park (40.7982,-77.8599) |
Get a free OpenRouteService key at https://openrouteservice.org/dev/#/signup.
NEXT_PUBLIC_)browser ──POST /api/plan──▶ safeFetch (iCal) ─▶ parse + expand repeats
geocode (GEO → Nominatim → Open-Meteo)
Open-Meteo hourly forecast (one call)
OpenRouteService route per leg
leave-by = start − travel × weather − 5 min
Reality Check: weekly summary (week view)
Gemini → Groq → Claude → rules: bring list + brief
lib/safeFetch.ts allows only http/https/webcal on default ports, blocks private/loopback/link-local/metadata IPs, checks the IP at connect time (no DNS-rebinding gap), re-checks every redirect (max 3), and caps time (5 s) and size (2 MB).proxy.ts) blocks injected scripts, plus HSTS and other headers in next.config.ts./api/plan (in-memory, per instance).HttpOnly, Secure, SameSite=Strict cookie scoped to /api/remember for 15 days, so page scripts can't read it and it isn't sent with any other request. "Forget saved links" deletes it.npm test # SSRF guard, iCal + Canvas parsing, multi-calendar merge, leave-by math, Reality Check, AI providers, full API flow (mocked services)
npm run lint && npm run typecheck
| Path | What it does |
|---|---|
app/page.tsx | Planner UI (form, plan, PDF/email export) |
app/api/plan/route.ts | The one API route: calendars → geocode → weather → routes → AI |
lib/safeFetch.ts | SSRF-safe calendar fetcher |
lib/ical.ts, lib/calendars.ts | Parse, classify (class vs. due), merge and dedupe calendars |
lib/leaveTime.ts, lib/weekSummary.ts | Leave-by math and the Reality Check |
lib/ai.ts, lib/templatePlan.ts | AI brief (schema-checked) and the no-key rule-based fallback |
components/ui/ | shadcn/ui components (Base UI) |
Weather: Open-Meteo · Maps and geocoding: © OpenStreetMap contributors · Routes: openrouteservice · Built for HackPSU.