-
Notifications
You must be signed in to change notification settings - Fork 0
03_Features Reference
Last updated: 2026-05-07
This is a quick map of what each Princeps feature does and where to look first.
Purpose:
- Email/password login, username support, sessions, forgot/reset password, profile identity.
Key files:
lib/auth/
components/auth/
app/api/auth/[...all]/route.ts
app/api/dev/reset-links/route.ts
app/(app)/(auth)/
app/(app)/profile/
Development password reset links are logged and exposed through /api/dev/reset-links only when NODE_ENV=development.
Purpose:
- User control center for appearance, assistant behavior, tools, usage, provider health, integrations, and subscription.
Key files:
app/(app)/settings/page.tsx
app/api/settings/
components/settings/
lib/settings/
messages/de.json
messages/en.json
Most preferences live in User.preferences. Timezone and tier are direct User fields.
Purpose:
- Multi-conversation streaming assistant grounded in live workspace context.
Key files:
app/(app)/chat/
app/api/chat/
components/chat/
components/chat-widget/
lib/chat/
lib/context/
lib/tools/
lib/llm-providers/
The assistant sees context slots and tier-filtered tools. Chat does not own tools or context; it consumes them.
Purpose:
- Upload documents, parse text, chunk, embed, search, and inject relevant chunks into assistant context.
Key files:
app/(app)/knowledge/
app/api/knowledge/
components/knowledge/
lib/knowledge/
lib/context/knowledge.slot.ts
lib/tools/registry/knowledge.registry.ts
Manual uploads and Drive imports both enforce knowledge quotas. Raw uploaded files are not stored.
Purpose:
- Track work with title, notes, status, priority, due date, labels, meeting links, and goal links.
Key files:
app/(app)/tasks/
app/api/tasks/
components/tasks/
lib/tasks/
lib/tools/registry/tasks.registry.ts
lib/tools/handlers/tasks.handler.ts
lib/context/tasks.slot.ts
Tasks are the cleanest reference for CRUD, labels, tier caps, LLM tools, and context.
Purpose:
- Manage meetings and appointments with participants, agenda, summary, prep packs, linked tasks, labels, and Calendar sync.
Key files:
app/(app)/meetings/
app/api/meetings/
components/meetings/
lib/meetings/
lib/integrations/google-calendar/
lib/context/meetings.slot.ts
Prep packs are AI-generated and quota-gated. Google Calendar side effects are best-effort.
Purpose:
- Store people, roles, companies, communication details, notes, labels, and interaction history.
Key files:
app/(app)/contacts/
app/api/contacts/
components/contact/
lib/contacts/
lib/tools/registry/contacts.registry.ts
lib/context/contacts.slot.ts
The component folder is singular legacy naming. New features should prefer components/<feature>/.
Purpose:
- Decisions capture choices and rationale.
- Goals organize larger work.
- Labels classify records across features.
- Memory stores durable assistant facts.
Key files:
app/(app)/decisions/ lib/decisions/
app/(app)/goals/ lib/goals/
app/(app)/labels/ lib/labels/
app/(app)/memory/ lib/memory/
lib/tools/registry/
lib/context/
These features are LLM-aware and may have tier gates.
Purpose:
- Briefings summarize current work.
- Reports record assistant/tool activity and can create system notifications.
Key files:
app/(app)/briefings/ lib/briefings/
app/(app)/reports/ lib/reports/
components/briefings/
components/reports/
lib/tools/registry/briefings.registry.ts
Briefings consume LLM quota. Reports are useful for audit and assistant transparency.
Purpose:
- Persistent assistant inbox, daily greetings, overdue-task nudges, system notices, and weather context.
Key files:
app/api/notifications/
app/api/cron/tasks-overdue/route.ts
components/notifications/
hooks/use-notifications.ts
lib/notifications/
lib/weather/
Notifications are soft-deleted with dismissed. Greetings are once per UTC day unless FORCE_GREETING=true.
Purpose:
- Connect external services as user-scoped data sources.
Key files:
app/api/integrations/
components/settings/IntegrationsTab.tsx
components/settings/IntegrationCard.tsx
lib/integrations/
prisma/schema.prisma
Current providers are Google Calendar and Google Drive. Future providers should use stable provider strings and provider-owned folders.
Purpose:
- Enforce usage limits and sync paid plan state.
Key files:
types/billing.ts
lib/tiers/
lib/stripe/
app/api/stripe/
components/pricing/
components/settings/SubscriptionTab.tsx
Stripe webhooks update User.tier; Settings -> Usage shows current quota consumption.
Princeps Wiki: USER_GUIDE.md | ARCHITECTURE.md | FEATURES_REFERENCE.md | DEVELOPER_PLAYBOOK.md
For implementation-level agent context, read CONTEXT/. For exact behavior, verify the current code.
<@coldbydefault>
© 2026 PRINCEPS All rights reserved.
Made by AnotherProject™ - ColdByDefault