v2 foundation: shared contracts, app profile schema, wiring stubs

- projects: app profile columns + one app per org; project_external_git,
  deploy_targets, org_model_grants tables (migration a0f0e1d2c3b4)
- ports + fakes: RepoWorkspace, DeliveryHooks, DeployTarget, Memory,
  ModelGrants, WorkforceBootstrap; AppProfile + AppProfileRepository
- per-workstream wiring (container_org/engine/delivery), config blocks,
  empty routers, delivery worker, MCP/delivery service shells, web stubs
- admin nav derives from ADMIN_ITEMS; plan docs updated for ext4 worktrees

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
mjalmoudy94
2026-10-13 23:21:17 +03:30
co-authored by Claude Sonnet 5.5
parent 3a68b0fa07
commit 0cd9194b64
58 changed files with 1576 additions and 26 deletions
@@ -0,0 +1,11 @@
"""owner domain routes: /admin/domains/*.
Owned by Agent 3 (see docs/plan/PLAN-v2.md §6). Registered in ``rpc_app.py`` already; give each
route its full path (no prefix is applied here besides ``/api``).
"""
from __future__ import annotations
from fastapi import APIRouter
router = APIRouter(tags=["admin-domains"])
@@ -0,0 +1,11 @@
"""owner model grants and org policies: /admin/model-grants/*, /admin/org-policies/*.
Owned by Agent 1 (see docs/plan/PLAN-v2.md §6). Registered in ``rpc_app.py`` already; give each
route its full path (no prefix is applied here besides ``/api``).
"""
from __future__ import annotations
from fastapi import APIRouter
router = APIRouter(tags=["admin-grants"])
@@ -0,0 +1,11 @@
"""org wizard, app profile, deploy-target settings: /setup/*, /organizations/{org}/app/*.
Owned by Agent 1 (see docs/plan/PLAN-v2.md §6). Registered in ``rpc_app.py`` already; give each
route its full path (no prefix is applied here besides ``/api``).
"""
from __future__ import annotations
from fastapi import APIRouter
router = APIRouter(tags=["app-setup"])
@@ -0,0 +1,11 @@
"""CI/CD runs, releases, production deploy: /organizations/{org}/delivery/*.
Owned by Agent 3 (see docs/plan/PLAN-v2.md §6). Registered in ``rpc_app.py`` already; give each
route its full path (no prefix is applied here besides ``/api``).
"""
from __future__ import annotations
from fastapi import APIRouter
router = APIRouter(tags=["delivery"])
@@ -0,0 +1,11 @@
"""MCP tokens: /organizations/{org}/mcp-tokens/*, /admin/mcp/*.
Owned by Agent 1 (see docs/plan/PLAN-v2.md §6). Registered in ``rpc_app.py`` already; give each
route its full path (no prefix is applied here besides ``/api``).
"""
from __future__ import annotations
from fastapi import APIRouter
router = APIRouter(tags=["mcp-tokens"])
@@ -0,0 +1,11 @@
"""org memory: /organizations/{org}/memory/*.
Owned by Agent 1 (see docs/plan/PLAN-v2.md §6). Registered in ``rpc_app.py`` already; give each
route its full path (no prefix is applied here besides ``/api``).
"""
from __future__ import annotations
from fastapi import APIRouter
router = APIRouter(tags=["memory"])