.. include:: /Includes.rst.txt .. _architecture: ============ Architecture ============ The extension has two independent flows: **emitting tools** at page render time and **ingesting usage events** at call time. They share only the tool registry. .. contents:: :local: :depth: 1 Emitting tools (frontend render) ================================ .. code-block:: text ToolProvider(s) one small PHP class per tool │ manifest($cObj, $processedData) → Manifest | null ▼ ToolRegistry::collect() drops providers that return null │ list ▼ ToolManifestProcessor TYPO3 data processor │ JSON: { endpoint, tools:[…] } (JSON_HEX_* escaped) ▼