Initial public push: docs cosmos v4 + AI module + framework groundwork

This is the snapshot the production landing site (nibiru-framework.com) is
deployed from. Brings together the recent splash + docs migration to the v4
"Cosmos" design system, the new in-framework AI module, and the framework
groundwork that backs the framework-reference extraction.

What lands:
- docs/: Astro + Starlight site with the v4 dark cosmic palette, GalaxyHero
  canvas constellation, Mission Control chat (wired to /api/oracle →
  api.neuronetz.ai via providers.mjs Ollama), 5-panel MMVC stage
  (Model · AI · Module · Controller · View), translated EN/DE/JA/ES/FR
  content, PWA + sitemap + llms.txt + Umami analytics.
- docs/design-system/: canonical mockup bundle (source/index-v2.html for
  splash, source/docs-system.html + preview/ for docs, SPEC.md, tokens).
- docs/scripts/extraction/framework-reference-v2.md: deep framework
  reference (~1.6k lines, file:line citations, every public factory and
  idiom — basis for the LoRA training corpus.
- application/module/ai/: AI module with chat / embed / RAG / agent
  plugins, plus pdoQuery / httpGet / fileRead tools and Modelfile +
  smoke-test in training/.
- application/module/users/: user / ACL / form-factory traits used as the
  reference plugin pattern for the framework docs.
- application/settings/config/database/: schema + seed migrations
  including the AI module tables (200–203).
- Form factory + autogenerator changes the framework-reference-v2 covers.

Production secrets stay out: docs/.env, settings.production.ini and
ai.production.ini are all gitignored (.example files are in tree).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
stephan
2026-05-08 15:22:18 +02:00
parent a60ce90643
commit 48c839d927
662 changed files with 172811 additions and 1 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

View File

@@ -0,0 +1,91 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 720 760" role="img" aria-label="Request lifecycle: Browser → index.php → framework.php → Dispatcher → Router/Modules/Autoloader → applicationController.php (navigationAction → action → pageAction) → Smarty render.">
<defs>
<linearGradient id="lc-box" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#faf7f0"/>
<stop offset="100%" stop-color="#ece6f3"/>
</linearGradient>
<linearGradient id="lc-box-strong" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#ece6f3"/>
<stop offset="100%" stop-color="#ddd3eb"/>
</linearGradient>
<marker id="lc-arrow" viewBox="0 0 12 12" refX="10" refY="6" markerWidth="9" markerHeight="9" orient="auto-start-reverse">
<path d="M0 0 L12 6 L0 12 Z" fill="#7c70ab"/>
</marker>
<filter id="lc-shadow" x="-10%" y="-10%" width="120%" height="120%">
<feDropShadow dx="0" dy="2" stdDeviation="3" flood-color="#5e548c" flood-opacity="0.18"/>
</filter>
</defs>
<g fill="none" stroke="#7c70ab" stroke-width="1.6" marker-end="url(#lc-arrow)">
<path d="M360 70 L360 100"/>
<path d="M360 160 L360 192"/>
<path d="M360 252 L360 284"/>
<path d="M360 344 L360 360 L150 360 L150 388"/>
<path d="M360 360 L360 388"/>
<path d="M360 360 L570 360 L570 388"/>
<path d="M360 448 L360 488"/>
<path d="M360 638 L360 670"/>
</g>
<g font-family="'JetBrains Mono', monospace" font-size="11" fill="#847b94">
<text x="370" y="86">HTTP</text>
<text x="370" y="178">require</text>
<text x="370" y="270">boots framework</text>
<text x="370" y="660">View::assign(…)</text>
</g>
<g font-family="'Bricolage Grotesque','Inter',sans-serif" font-weight="600" font-size="15" fill="#1f1b2e">
<g filter="url(#lc-shadow)">
<rect x="290" y="20" width="140" height="50" rx="4" fill="url(#lc-box)" stroke="#b6adcd"/>
<text x="360" y="51" text-anchor="middle">Browser</text>
</g>
<g filter="url(#lc-shadow)">
<rect x="290" y="110" width="140" height="50" rx="4" fill="url(#lc-box)" stroke="#b6adcd"/>
<text x="360" y="141" text-anchor="middle" font-family="'JetBrains Mono',monospace">index.php</text>
</g>
<g filter="url(#lc-shadow)">
<rect x="270" y="202" width="180" height="50" rx="4" fill="url(#lc-box)" stroke="#b6adcd"/>
<text x="360" y="233" text-anchor="middle" font-family="'JetBrains Mono',monospace">core/framework.php</text>
</g>
<g filter="url(#lc-shadow)">
<rect x="280" y="294" width="160" height="50" rx="4" fill="url(#lc-box-strong)" stroke="#7c70ab"/>
<text x="360" y="319" text-anchor="middle">Dispatcher</text>
<text x="360" y="335" text-anchor="middle" font-family="'JetBrains Mono',monospace" font-weight="400" font-size="11" fill="#5e548c">::run()</text>
</g>
<g filter="url(#lc-shadow)">
<rect x="90" y="388" width="120" height="60" rx="4" fill="url(#lc-box)" stroke="#b6adcd"/>
<text x="150" y="415" text-anchor="middle">Router</text>
<text x="150" y="432" text-anchor="middle" font-family="'JetBrains Mono',monospace" font-weight="400" font-size="11" fill="#5e548c">::route()</text>
</g>
<g filter="url(#lc-shadow)">
<rect x="300" y="388" width="120" height="60" rx="4" fill="url(#lc-box)" stroke="#b6adcd"/>
<text x="360" y="415" text-anchor="middle">Modules</text>
<text x="360" y="432" text-anchor="middle" font-family="'JetBrains Mono',monospace" font-weight="400" font-size="11" fill="#5e548c">Registry</text>
</g>
<g filter="url(#lc-shadow)">
<rect x="510" y="388" width="120" height="60" rx="4" fill="url(#lc-box)" stroke="#b6adcd"/>
<text x="570" y="415" text-anchor="middle">Autoloader</text>
<text x="570" y="432" text-anchor="middle" font-family="'JetBrains Mono',monospace" font-weight="400" font-size="11" fill="#5e548c">models + modules</text>
</g>
<g filter="url(#lc-shadow)">
<rect x="200" y="488" width="320" height="150" rx="4" fill="url(#lc-box-strong)" stroke="#7c70ab"/>
<text x="360" y="513" text-anchor="middle" font-family="'JetBrains Mono',monospace">applicationController.php</text>
<line x1="220" y1="525" x2="500" y2="525" stroke="#b6adcd" stroke-width="1"/>
<text x="360" y="550" text-anchor="middle" font-family="'JetBrains Mono',monospace" font-weight="400" font-size="13" fill="#4a4258">navigationAction()</text>
<text x="360" y="580" text-anchor="middle" font-family="'JetBrains Mono',monospace" font-weight="400" font-size="13" fill="#4a4258">&lt;_action&gt;Action()</text>
<text x="360" y="610" text-anchor="middle" font-family="'JetBrains Mono',monospace" font-weight="400" font-size="13" fill="#4a4258">pageAction()</text>
</g>
<g filter="url(#lc-shadow)">
<rect x="270" y="680" width="180" height="60" rx="4" fill="url(#lc-box)" stroke="#7db7dc"/>
<text x="360" y="708" text-anchor="middle">Smarty</text>
<text x="360" y="725" text-anchor="middle" font-family="'JetBrains Mono',monospace" font-weight="400" font-size="11" fill="#4a8fb7">templates/&lt;ctrl&gt;.tpl + shared/*</text>
</g>
</g>
<g font-family="'Bricolage Grotesque',sans-serif" font-size="12" fill="#4a4258">
<line x1="450" y1="227" x2="490" y2="227" stroke="#7c70ab" stroke-width="1.4" marker-end="url(#lc-arrow)" stroke-dasharray="3 3"/>
<text x="498" y="220">boots Config, Router, Engine,</text>
<text x="498" y="237">Smarty, all 28 form types,</text>
<text x="498" y="254">DB drivers, Auth.</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
docs/public/img/pwa-192.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

BIN
docs/public/img/pwa-512.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB