When to use this
- You are cloning the repo for the first time and want to know which directory holds the code you need.
- You are running a build, typecheck, or test command and are unsure which manifest owns it.
- You are extending the API, frontend, or Python core and want to know where to add code and dependencies.
Project map
The root
package.json is a workspace coordinator, not a service manifest. It registers app/api and app/web/frontend as npm workspaces and exposes convenience scripts that delegate into each workspace.
Manifest ownership
Package definitions live with the project they describe. There is exactly one canonical manifest per runtime:- Python — the root
pyproject.tomlis the canonical package manifest.src/pyproject.tomlis a pointer-only stub kept for older scripts and docs; do not treat it as a build target. - Express API —
app/api/package.jsonandapp/api/tsconfig.jsonown the API’s dependencies and TypeScript config.app/api/package-lock.jsonis generated from that manifest. - React frontend —
app/web/frontend/package.jsonowns the dashboard’s dependencies and Vite/TypeScript config. - Workspace root — the root
package.jsononly lists workspaces, cross-project scripts, and shared devtools. Do not add API- or frontend-specific dependencies here.
Common commands
Run these from the repository root unless noted otherwise.Root workspace
Express API only
React frontend only
Python core
Cross-project boundaries
Keep these boundaries intact when adding code:- The Express API calls the Python core through
app/api/lib/pythonBridge.tsandsrc/api_bridge.py. It should not reimplement Python logic. - The React dashboard talks to the FastAPI backend on
/api/*, not the Express/api/v1/*surface. - The Python wheel packages
src/andapp/kernel/. It does not packageapp/api,app/web, orapp/scripts. - Environment files (
.env,app/api/.env,src/.env) are coordinated bysetup_secrets.sh. Preserve that flow when adding new secrets.
Archived and migration-only surfaces
Some directories are retained for reference or migration. Do not build new features on top of them:archive/legacy-web-api/— the previousapp/web/api/FastAPI copy. Replaced byapp/api/main.py. Kept for reference only.tests/(root) — legacy pytest tree. The canonical suite issrc/tests/. Add new tests undersrc/tests/, not here.src/Kernel/— placeholder that predatesapp/kernel/. The maintained kernel isapp/kernel/.memory/— mirrorssrc/memory/outside the package root. Kept as a compatibility shim; do not extend it.
docs/PROJECT_BOUNDARIES.md in the source repository.