Package family
24 packages, one umbrella
Products may import @ottili/foundation-framework for the standard case, or reach for individual packages when they need a narrower surface. Every number on this page is read from the repository at build time — no hand-maintained marketing figures.
24
packages
22 ship at runtime, the rest are quality gates
41 954
source lines
across 264 files, tests excluded
24 397
test lines
95 suites
58%
test-to-source ratio
by line count, not by coverage
Dependency direction · SoT §8.9
Layers, not a graph of favours
Contracts depend on nothing. Core depends on contracts and stays free of React. UI depends on contracts and core. Feature runtimes layer on top. Circular dependencies fail the architecture test suite.
Inventory
Every package in the family
| Package | Layer | Responsibility | Source | Tests | SoT |
|---|---|---|---|---|---|
| @ottili/foundation-contracts v1.0.0 | Contracts | Pure TypeScript contracts for the Ottili Foundation Framework. No React, no browser globals — see docs/OTTILI_FOUNDATION_FRAMEWORK_SOURCE_OF_TRUTH.md §8.1. | 2 215 21 files | 175 1 suites | §8.1. |
| @ottili/product-contracts v1.0.0 | Contracts | Stable cross-product composition contracts: product manifests, accent helpers and validation | 317 4 files | 105 1 suites | §9 §35 |
| @ottili/foundation-core v1.0.0 | Core logic | Framework-agnostic Foundation logic: manifest validation, contribution merge, feature-state resolution, cache keys, stable ids. No React | 6 177 23 files | 5 565 23 suites | §8.2 §8.9 |
| @ottili/foundation-ui v1.0.0 | Design system | Foundation design system: SoT §14 tokens, themes, density, and the §47 component inventory. | 10 555 85 files | 2 710 8 suites | §14 §47 |
| @ottili/foundation-shell v1.0.0 | Shell | Topbar, sidebar, mobile nav, inspector and switchers | 1 276 8 files | 717 3 suites | §8.4 §15 |
| @ottili/foundation-auth v1.0.0 | Runtime | Auth redirect, PKCE code exchange, session state machine, refresh, expiry and account switch | 837 6 files | 579 3 suites | §8.6 §12 |
| @ottili/foundation-context v1.0.0 | Runtime | Company/product/locale context, context revision, cache invalidation and cross-tab coordination | 671 6 files | 578 1 suites | §8.7 §11 §12.5 |
| @ottili/foundation-runtime v1.0.0 | Runtime | Bootstrap loader, generated-client transport, contribution assembly and error boundaries | 507 3 files | 565 1 suites | §8.5 |
| @ottili/unified-api-client v1.0.0 | Runtime | Canonical public client surface for the Unified API: FoundationClient re-exported from @ottili/foundation-runtime, plus response validation, cursor pagination, SSE and streaming uploads. | 310 6 files | 403 5 suites | §10.6 |
| @ottili/foundation-capabilities v1.0.0 | Feature runtimes | Shared capability runtime: AI, Files, Flows, Approvals, Activity, Jobs | 6 912 30 files | 4 336 15 suites | §8.8 §25 |
| @ottili/foundation-extensions v1.0.0 | Feature runtimes | Extension runtime: manifest validation, compatibility, lifecycle, activation, sandboxed host and the RPC bridge | 2 325 10 files | 1 581 6 suites | §8.8 §27 §33 §34 |
| @ottili/foundation-command v1.0.0 | Feature runtimes | Search providers, command palette, command parser and the Ottili Workbench | 2 307 8 files | 1 639 5 suites | §8.8 §20 §21 |
| @ottili/foundation-dashboard v1.0.0 | Feature runtimes | Dashboard grid engine, widget runtime and legacy importer | 1 835 9 files | 1 209 4 suites | §8.8 §22 |
| @ottili/foundation-customization v1.0.0 | Feature runtimes | White-label inheritance, draft/publish lifecycle and validation mirroring | 1 632 7 files | 1 291 5 suites | §8.8 §18 §48 |
| @ottili/foundation-notifications v1.0.0 | Feature runtimes | Notification inbox, realtime transport and preferences | 1 349 7 files | 1 121 4 suites | §8.8 §23 |
| @ottili/foundation-navigation v1.0.0 | Feature runtimes | Navigation resolution, favorites, recents and breadcrumbs | 224 3 files | 202 1 suites | §8.8 §19 |
| @ottili/foundation-settings v1.0.0 | Feature runtimes | Foundation settings runtime with React bindings Re-exports the core settings module and adds hooks and UI components. | 93 3 files | 157 1 suites | §24 |
| @ottili/foundation-integrations v1.0.0 | Feature runtimes | Public surface for the Foundation integration runtime | 43 3 files | 57 1 suites | §26 |
| @ottili/foundation-platform v1.0.0 | Distribution | Distribution adapters: web, PWA, Tauri and Electron behind one contract | 1 183 7 files | 735 1 suites | §8.8 §29 |
| @ottili/foundation-observability v1.0.0 | Platform services | Telemetry and observability React bindings | 66 3 files | 64 1 suites | §32 |
| @ottili/extension-sdk v1.0.0 | Extension SDK | Stable SDK for approved Ottili extensions Exposes only contracts and core helpers — no Foundation private internals. | 929 6 files | 187 1 suites | §27 §34 |
| @ottili/foundation-framework v1.0.0 | Umbrella | Umbrella package that re-exports the public Foundation Framework surface | 31 1 files | 31 1 suites | §1 |
| @ottili/foundation-testing v1.0.0 | Quality gates | Test factories and helpers for Foundation consumers | 153 4 files | 65 1 suites | §41 |
| @ottili/foundation-architecture v1.0.0 | Quality gates | Package boundary and architecture tests for the Foundation Framework | 7 1 files | 325 2 suites | §37 §39 |
Internal edges
Who depends on whom
Only @ottili/* dependencies are listed. Third-party dependencies are deliberately few — the framework does not want a transitive dependency to decide how an Ottili product renders.
@ottili/foundation-auth
@ottili/foundation-capabilities
@ottili/foundation-command
@ottili/foundation-context
@ottili/foundation-core
@ottili/foundation-customization
@ottili/foundation-dashboard
@ottili/extension-sdk
@ottili/foundation-extensions
@ottili/foundation-framework
@ottili/foundation-integrations
@ottili/foundation-navigation
@ottili/foundation-notifications
@ottili/foundation-observability
@ottili/foundation-platform
@ottili/product-contracts
@ottili/foundation-runtime
@ottili/foundation-settings
@ottili/foundation-shell
@ottili/foundation-testing
@ottili/foundation-ui
@ottili/unified-api-client