DeepSeek Harness Remote
DeepSeek Harness Remote: DeepSeek Harness 실행 PC와 모바일·PC를 안전하게 연결해 어디서나 작업 이어받기
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. 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.