Type: Explainer Status: Active Systems: Core Role: Root Author: Phil / Claude Date: 2026-06-01 Related: LLP 0001, LLP 0002
Root orientation document for HypAware. Decomposed from
hypaware-design.md(Mission, Design Summary). Subsystem detail lives in the LLPs linked below.
HypAware is a modular logs and telemetry collector that stores data in the most efficient way possible and surfaces it for efficient LLM-native querying.
HypAware is split into three pieces:
- Core kernel: the host runtime. Owns the mechanics that should be identical for every plugin: plugin discovery/manifest/dependency/activation lifecycle, the versioned capability registry, config parsing and validation, the CLI command registry, source lifecycle, the sink registry and export driver, the query/dataset registry and SQL surface, the intrinsic Iceberg-backed cache, result formatting, and managed state directories.
- Server package: the enterprise companion that receives logs forwarded from HypAware instances across an org, composes them into files, and uploads them to a sink. Full server design is out of tree for now (TK).
- Plugins: every piece of domain behavior. A plugin's category is
expressed by what it
requires,provides, andcontributes, not by a privileged variant. See plugin categories.
Storage and query are intrinsic, not plugin-provided. Every plugin can assume Iceberg-backed storage with a SQL surface in front of it, and every plugin that registers a dataset gets query and formatting for free.
- Source plugins: produce normalized rows and own a daemon lifecycle (proxy listener, OTLP receiver, gascity subscriber). See LLP 0012.
- Sink plugins: export targets, not the write path. Captured data always lands in the intrinsic local query cache; sinks receive scheduled exports out of it. See LLP 0014.
- Client adapter plugins: wire an external tool (Claude Code, Codex) to a HypAware capability such as the AI gateway.
- Composition plugins: init presets, skill scaffolds; small surface, no daemon.
| Area | LLP | Type |
|---|---|---|
| V1 scope & cutover decisions | 0002 | Decision |
| Core vs plugin surface | 0003 | Spec |
| Activation, paths, state dirs | 0004 | Spec |
| Plugin manifest | 0005 | Spec |
| Dependencies & capabilities | 0006 | Spec |
| Plugin install & lock file | 0007 | Decision |
| Plugin runtime dependencies | 0008 | Decision |
| CLI registry & bridge | 0009 | Spec |
| Config model v2 | 0010 | Spec |
| Setup & first-run wizard | 0011 | Decision |
| Sources model | 0012 | Spec |
| Local query cache | 0013 | Decision |
| Sinks driver & scheduling | 0014 | Spec |
| Query, datasets & collect | 0015 | Spec |
| AI gateway as a plugin | 0016 | Decision |
| Daemon runtime & installers | 0017 | Decision |
| Observability & self-instrumentation | 0021 | Spec |
| Iceberg export partitioning | 0022 | Spec |
| Context-graph T0 projection | 0023 | Decision |
| Vector search plugin | 0024 | Decision |
| Remote config & join flow | 0025 | Spec |
| Layered config (central + local) | 0031 | Decision |
| Context-graph T1/T2 enrichment + completion | 0028 | Decision |
| MCP hosting intrinsic (verbs → tools) | 0034 | Decision |
| Remote attach (client consumer half) | 0033 | Spec |
| Token-usage normalization (net input) | 0035 | Decision |
- New to the codebase: read this, then LLP 0002 for what actually shipped in V1 (it diverges from the broader design in a few deliberate ways).
- Working on a subsystem: read the LLP tagged with its
Systemsvalue before changing code, and add@ref LLP NNNN#anchorannotations for non-obvious decisions you implement. - The aspirational target architecture (separate plugin repos, post-V1 sinks) lives in the tombstoned design doc; the active LLPs above describe current guidance.
- One source, one table. Each dataset table has exactly one producer plugin
and is named after it (
ai_gateway_messages,gascity_messages,logs). See LLP 0016. - Sources never see sinks. Sources write only to the cache; the export pipeline reads the cache and pushes to sinks.
- Config is explicit. The written config enumerates chosen plugins in
plugins[]; there is no implicit "use defaults" mode. See LLP 0010. - The kernel never runs
npm installon a user's machine; plugins ship pre-bundled JS. See LLP 0008.