ArchitectureNamespaces
Monorepo Structure
The repo now reflects a Core-first split: Next.js owns UI and proxying, Python Core owns normative behavior, and LINA keeps only interaction and voice-local domains.
Workspace Definition
packages:
- apps/*
- services/*
- packages/*
- documentation`apps/docs` is part of the same workspace graph, but it is the human-facing summary layer. Authoritative scope and runbook statements still live in the cited source artifacts.
Package Layout
apps/shark-app
Main Next.js product app: browser UI, BFF routes, and LINA-facing proxies.
apps/docs
Human-facing docs index and summary layer for the current architecture.
services/aijim-core
Python FastAPI Core with normative execution, conformance, governance, and audit logic.
services/voice-renderer
Dedicated LINA voice/STT/TTS runtime and operations surface.
API Namespace Split
| Namespace | Owner | Examples | Notes |
|---|---|---|---|
| /api/core/* | AIJIM Core via Next.js BFF proxies | /api/core/evidence/*, /api/core/stories/*, /api/core/audit-bundle/*, /api/core/signature/verify | Only namespace for Core-owned product routes. Browser clients never call Core directly. |
| /api/workspace/v1/* | AIJIM SHARK Product API | /api/workspace/v1/reads, /api/workspace/v1/writes, registered Product operations | Actor-bound Product reads and writes. These operations do not redefine Protocol or Core semantics. |
| /api/lina/* | LINA runtime | /api/lina/session-events, /api/lina/voice/*, /api/lina/voice-metrics, /api/lina/rag/* | Interaction, voice, and assistant-local state only. No new normative write paths belong here without a boundary amendment. |
| /api/dev/* | Bound non-production authentication recovery | /api/dev/auth/dummy-login | No Product seeding and no alternate persistence authority. The route is unavailable outside its explicit non-production gate. |
Retired Namespace
The newsroom runtime namespace is retired. Current docs should treat it as historical only, and the repo-level guard
scripts/check_retired_api_namespaces.shprevents the historical newsroom route family from re-entering runtime code. The ownership split is defined indocumentation/runbooks/AIJIM_CORE_FIRST_OWNERSHIP_MATRIX.md.