codymaster 4.5.4 → 4.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/CHANGELOG.md +46 -1
  2. package/README.md +86 -31
  3. package/dist/backends/viking-backend.js +235 -0
  4. package/dist/backends/viking-http-client.js +176 -0
  5. package/dist/browse-server.js +251 -0
  6. package/dist/cli/command-registry.js +26 -0
  7. package/dist/cli/commands/agent.js +120 -0
  8. package/dist/cli/commands/dashboard.js +93 -0
  9. package/dist/cli/commands/design-studio.js +111 -0
  10. package/dist/cli/commands/distro.js +25 -0
  11. package/dist/cli/commands/engineering.js +488 -0
  12. package/dist/cli/commands/project.js +324 -0
  13. package/dist/cli/commands/skill-chain.js +269 -0
  14. package/dist/cli/commands/system.js +89 -0
  15. package/dist/cli/commands/task.js +254 -0
  16. package/dist/cli/update-check.js +83 -0
  17. package/dist/cm-config.js +110 -0
  18. package/dist/cm-suggest.js +77 -0
  19. package/dist/continuity.js +8 -0
  20. package/dist/distro-validate.js +54 -0
  21. package/dist/guardian-core.js +74 -0
  22. package/dist/index.js +36 -2759
  23. package/dist/mcp-context-server.js +60 -1
  24. package/dist/mcp-skills-tools.js +81 -0
  25. package/dist/retro-summary.js +70 -0
  26. package/dist/second-opinion-providers.js +79 -0
  27. package/dist/sprint-pipeline.js +228 -0
  28. package/dist/storage-backend.js +63 -0
  29. package/dist/utils/cli-utils.js +76 -0
  30. package/dist/utils/skill-utils.js +32 -0
  31. package/install.sh +286 -58
  32. package/package.json +16 -5
  33. package/scripts/build-skills.mjs +51 -0
  34. package/scripts/gate-0-repo-hygiene.js +75 -0
  35. package/scripts/postinstall.js +56 -1
  36. package/scripts/security-scan.js +1 -1
  37. package/scripts/validate-skills.mjs +42 -0
  38. package/scripts/viking-demo.ts +105 -0
  39. package/skills/CLAUDE.md +2 -2
  40. package/skills/_shared/helpers.md +10 -0
  41. package/skills/cm-ads-tracker/SKILL.md +3 -6
  42. package/skills/cm-browse/SKILL.md +28 -0
  43. package/skills/cm-conductor-worktrees/SKILL.md +24 -0
  44. package/skills/cm-content-factory/SKILL.md +1 -1
  45. package/skills/cm-content-factory/landing/docs/content/changelog.md +36 -0
  46. package/skills/cm-content-factory/landing/docs/content/deployment.md +46 -0
  47. package/skills/cm-content-factory/landing/docs/content/execution-flow.md +67 -0
  48. package/skills/cm-content-factory/landing/docs/content/openspace.md +27 -0
  49. package/skills/cm-content-factory/landing/docs/content/openviking.md +33 -0
  50. package/skills/cm-content-factory/landing/docs/content/use-cases.md +26 -0
  51. package/skills/cm-content-factory/landing/docs/content/v5-intro.md +28 -0
  52. package/skills/cm-content-factory/landing/docs/index.html +240 -0
  53. package/skills/cm-content-factory/landing/index.html +99 -99
  54. package/skills/cm-content-factory/landing/script.js +42 -0
  55. package/skills/cm-content-factory/landing/translations.js +400 -400
  56. package/skills/cm-continuity/SKILL.md +33 -6
  57. package/skills/cm-design-studio/SKILL.md +30 -0
  58. package/skills/cm-ecosystem-roadmap/SKILL.md +11 -0
  59. package/skills/cm-engineering-meta/SKILL.md +69 -0
  60. package/skills/cm-growth-hacking/SKILL.md +1 -12
  61. package/skills/cm-guardian-runtime/SKILL.md +22 -0
  62. package/skills/cm-mcp-engineering/SKILL.md +18 -0
  63. package/skills/cm-notebooklm/SKILL.md +1 -17
  64. package/skills/cm-post-deploy-canary/SKILL.md +18 -0
  65. package/skills/cm-qa-visual-cli/SKILL.md +18 -0
  66. package/skills/cm-retro-cli/SKILL.md +19 -0
  67. package/skills/cm-second-opinion-cli/SKILL.md +19 -0
  68. package/skills/cm-secret-shield/SKILL.md +2 -2
  69. package/skills/cm-sprint-bus/SKILL.md +29 -0
  70. package/skills/cm-start/SKILL.md +11 -2
  71. package/skills/cm-tdd/SKILL.md +61 -74
  72. package/skills/profiles/README.md +21 -0
  73. package/skills/profiles/core.txt +23 -0
  74. package/skills/profiles/design.txt +6 -0
  75. package/skills/profiles/full.txt +58 -0
  76. package/skills/profiles/growth.txt +10 -0
  77. package/skills/profiles/knowledge.txt +7 -0
  78. package/scripts/test-gemini.js +0 -13
  79. package/skills/cm-frappe-agent/SKILL.md +0 -134
  80. package/skills/cm-frappe-agent/agents/doctype-architect.md +0 -596
  81. package/skills/cm-frappe-agent/agents/erpnext-customizer.md +0 -643
  82. package/skills/cm-frappe-agent/agents/frappe-backend.md +0 -814
  83. package/skills/cm-frappe-agent/agents/frappe-custom-frontend.md +0 -557
  84. package/skills/cm-frappe-agent/agents/frappe-debugger.md +0 -625
  85. package/skills/cm-frappe-agent/agents/frappe-fixer.md +0 -275
  86. package/skills/cm-frappe-agent/agents/frappe-frontend.md +0 -660
  87. package/skills/cm-frappe-agent/agents/frappe-installer.md +0 -158
  88. package/skills/cm-frappe-agent/agents/frappe-performance.md +0 -307
  89. package/skills/cm-frappe-agent/agents/frappe-planner.md +0 -419
  90. package/skills/cm-frappe-agent/agents/frappe-remote-ops.md +0 -153
  91. package/skills/cm-frappe-agent/agents/github-workflow.md +0 -286
  92. package/skills/cm-frappe-agent/commands/frappe-app.md +0 -351
  93. package/skills/cm-frappe-agent/commands/frappe-backend.md +0 -162
  94. package/skills/cm-frappe-agent/commands/frappe-bench.md +0 -254
  95. package/skills/cm-frappe-agent/commands/frappe-debug.md +0 -263
  96. package/skills/cm-frappe-agent/commands/frappe-doctype-create.md +0 -272
  97. package/skills/cm-frappe-agent/commands/frappe-doctype-field.md +0 -310
  98. package/skills/cm-frappe-agent/commands/frappe-erpnext.md +0 -210
  99. package/skills/cm-frappe-agent/commands/frappe-fix.md +0 -59
  100. package/skills/cm-frappe-agent/commands/frappe-frontend.md +0 -210
  101. package/skills/cm-frappe-agent/commands/frappe-fullstack.md +0 -243
  102. package/skills/cm-frappe-agent/commands/frappe-github.md +0 -57
  103. package/skills/cm-frappe-agent/commands/frappe-install.md +0 -52
  104. package/skills/cm-frappe-agent/commands/frappe-plan.md +0 -442
  105. package/skills/cm-frappe-agent/commands/frappe-remote.md +0 -58
  106. package/skills/cm-frappe-agent/commands/frappe-test.md +0 -356
  107. package/skills/cm-frappe-agent/docs/README.md +0 -51
  108. package/skills/cm-frappe-agent/docs/agents-catalog.md +0 -113
  109. package/skills/cm-frappe-agent/docs/architecture.md +0 -149
  110. package/skills/cm-frappe-agent/docs/commands-catalog.md +0 -82
  111. package/skills/cm-frappe-agent/docs/resources-catalog.md +0 -66
  112. package/skills/cm-frappe-agent/docs/sitemap-urls.txt +0 -52
  113. package/skills/cm-frappe-agent/docs/sitemap.md +0 -81
  114. package/skills/cm-frappe-agent/docs/sop/user-guide.md +0 -178
  115. package/skills/cm-frappe-agent/docs/sop/vibe-coding-guide.md +0 -122
  116. package/skills/cm-frappe-agent/resources/7-layer-architecture.md +0 -985
  117. package/skills/cm-frappe-agent/resources/bench_commands.md +0 -73
  118. package/skills/cm-frappe-agent/resources/code-patterns-guide.md +0 -948
  119. package/skills/cm-frappe-agent/resources/common_pitfalls.md +0 -266
  120. package/skills/cm-frappe-agent/resources/doctype-registry.md +0 -158
  121. package/skills/cm-frappe-agent/resources/installation-guide.md +0 -289
  122. package/skills/cm-frappe-agent/resources/rest-api-patterns.md +0 -182
  123. package/skills/cm-frappe-agent/resources/scaffold_checklist.md +0 -82
  124. package/skills/cm-frappe-agent/resources/upgrade_patterns.md +0 -113
  125. package/skills/cm-frappe-agent/resources/web-form-patterns.md +0 -252
  126. package/skills/cm-frappe-agent/skills/bench-commands/SKILL.md +0 -621
  127. package/skills/cm-frappe-agent/skills/client-scripts/SKILL.md +0 -642
  128. package/skills/cm-frappe-agent/skills/doctype-patterns/SKILL.md +0 -576
  129. package/skills/cm-frappe-agent/skills/frappe-api/SKILL.md +0 -740
  130. package/skills/cm-frappe-agent/skills/remote-operations/SKILL.md +0 -47
  131. package/skills/cm-frappe-agent/skills/server-scripts/SKILL.md +0 -608
  132. package/skills/cm-frappe-agent/skills/web-forms/SKILL.md +0 -46
  133. package/skills/frappe-app-builder.zip +0 -0
@@ -0,0 +1,27 @@
1
+ # OpenSpace Autonomous Workspace
2
+
3
+ **OpenSpace** is the execution engine of the Neural Spine architecture. It elevates your AI from being merely a static text-generator to an active, real-time engineering participant.
4
+
5
+ ## The Execution Gap
6
+
7
+ Most AI setups lack operational agency. Once an LLM outputs code, a human developer has to copy, paste, save, format, compile, and run tests. This process introduces massive friction and manual error into what should be an automated loop.
8
+
9
+ ## Enter OpenSpace
10
+
11
+ OpenSpace surrounds the agent with a secure execution container (sandbox) tightly coupled with your source control and operational tools.
12
+
13
+ ### Key Capabilities
14
+
15
+ - **Command Line Autonomy**: The agent can run raw terminal commands (`npm i`, `pytest`, `cargo run`) to verify that the code it generates compiles and passes logic tests.
16
+ - **Visual Self-Correction**: Using Playwright/Puppeteer bindings, OpenSpace can take screenshots of running frontends, parse the UI using Vision models, and autonomously adjust CSS alignments or missing padding without human intervention.
17
+ - **The Secret Shield**: OpenSpace filters shell execution to prevent agents from inadvertently deleting local databases, exposing secrets (via `.env` blockades), or committing raw tokens to GitHub.
18
+
19
+ ## Anatomy of a Session
20
+
21
+ When an agent is initialized in OpenSpace, it acts as a headless developer:
22
+ 1. It pulls semantic context from **[OpenViking](#openviking)**.
23
+ 2. It drafts a solution to isolated branch files.
24
+ 3. It spawns an OpenSpace terminal subprocess to run Linters and Unit Tests.
25
+ 4. If a test fails, it captures the `stderr` output within OpenSpace and self-heals the code until all checks pass.
26
+
27
+ This loop ensures that the code pushed to you is robust, tested, and fully autonomous.
@@ -0,0 +1,33 @@
1
+ # OpenViking Semantic Memory
2
+
3
+ **OpenViking** is CodyMaster's high-performance memory backend. It replaces chaotic keyword-based grep searches and blind RAG chunking with a highly structured Semantic Vector Engine.
4
+
5
+ ## The Problem with Standard AI Search
6
+
7
+ Typical AI coding agents use raw text searches or simple AST parsing limits to find context. This causes **Code Amnesia**:
8
+ - The agent forgets standard component library practices.
9
+ - The agent invents (hallucinates) missing variables.
10
+ - Scaling to million-line codebases overflows the token limit, crashing the session.
11
+
12
+ ## The OpenViking Solution
13
+
14
+ OpenViking introduces **L0/L1/L2 Progressive Summarization** coupled with SQLite FTS5 and Vector Embeddings.
15
+
16
+ ### How it works:
17
+
18
+ 1. **L0 (Skeleton Index)**: A fast map of the entire directory structure, capturing file names, exports, and imports.
19
+ 2. **L1 (Symbol Index)**: Extracts function signatures, class interfaces, and variable definitions without the bulky implementation details.
20
+ 3. **L2 (Full Context)**: The heavy vector embeddings (using local or API-driven embedding models) that store actual logic and edge cases.
21
+
22
+ When the agent attempts to refactor a component, OpenViking performs a semantic lookup on L1 and L2 databases, pulling *only* the exact functions and files impacted by the change.
23
+
24
+ ## Native Integration
25
+
26
+ OpenViking works autonomously in the background. When CodyMaster initializes in a project, it creates a `.viking` directory (ignored via `.gitignore`) mapped entirely to a rapid local SQLite store.
27
+
28
+ ```bash
29
+ # Force an on-demand re-index of the OpenViking graph
30
+ cody-master viking index --force
31
+ ```
32
+
33
+ By ensuring agents have a complete layout of the system at all times, OpenViking single-handedly eliminates structural regressions in mature projects.
@@ -0,0 +1,26 @@
1
+ # Neural Spine Use Cases
2
+
3
+ The true power of **CodyMaster v5** is fully realized when integrating semantic memory and autonomous execution together.
4
+
5
+ Here are the optimal scenarios where the Founders Edition architecture outperforms standard tools.
6
+
7
+ ## 1. Full-Stack Monolithic Refactoring
8
+ *The Challenge*: Changing an authentication provider or modifying deeply nested CSS logic across a massive 500,000-line React/Node.js monolith usually incites dozens of cascading regressions.
9
+ *The Spine Solution*:
10
+ - **OpenViking** maps exactly where the legacy authentication logic touches every API router.
11
+ - **OpenSpace** attempts the refactor in an isolated branch and continuously runs the test suite.
12
+ - The outcome is a tightly controlled refactoring PR that didn't miss a single edge case.
13
+
14
+ ## 2. Zero-Drop Multilingual Deployments
15
+ *The Challenge*: Localizing an application across EN, VI, ZH, and RU requires massive JSON string coordination, structural UI checks (text length variances), and routing configuration.
16
+ *The Spine Solution*:
17
+ - A translation skill is dispatched across multiple parallel agents.
18
+ - Instead of manual checks, OpenSpace spins up a staging server and runs Visual Regression Tests using Vision models to verify that the Russian text doesn't break button layouts.
19
+ - It automatically shifts paddings based on the visual output before committing.
20
+
21
+ ## 3. Immediate Tech-Debt Cleanup
22
+ *The Challenge*: Teams accrue dead code, unused imports, and unoptimized queries over years of product pivots.
23
+ *The Spine Solution*:
24
+ - An agent equipped with the `cm-clean-code` skill natively runs over the codebase at midnight via cron job.
25
+ - OpenSpace runs AST (Abstract Syntax Tree) evaluations against OpenViking indexing to guarantee no unused code is actually being referenced dynamically.
26
+ - The agent creates a PR each morning with a detailed breakdown of the removed complexity and the token savings achieved.
@@ -0,0 +1,28 @@
1
+ # The Neural Spine Architecture
2
+
3
+ Welcome to **CodyMaster v5**, the first Senior AI-Native Engineering Workspace designed for complete autonomous development.
4
+
5
+ While standard AI coding assistants excel at generating functions and isolated scripts, they lack the systemic awareness required to build, test, and ship complete applications securely. **CodyMaster v5** introduces the "Neural Spine" architecture to solve this.
6
+
7
+ ## Why a "Spine"?
8
+
9
+ A spine connects the brain to the nervous system, passing critical signals instantly and maintaining the structure of the body. In CodyMaster v5, the **Neural Spine** represents the underlying infrastructure that connects your AI agents to the real world:
10
+
11
+ - **Memory (OpenViking)**: Deep semantic retrieval and code comprehension spanning thousands of files.
12
+ - **Execution (OpenSpace)**: A sandboxed, secure environment for agents to run bash commands, databases, and testing suites.
13
+ - **State (Context Bus)**: A fluid mechanism to exchange parameters between specialized subagents without overflowing token limits.
14
+
15
+ ## Core Capabilities
16
+
17
+ 1. **Eliminating Context Drift**: Your agents no longer guess your architecture. They retrieve the exact semantic structure directly from OpenViking.
18
+ 2. **Zero-Regression Shipping**: OpenSpace guarantees that AI-generated code is thoroughly tested (TDD-first) via automated gates before reaching production.
19
+ 3. **Multi-Agent Orchestration**: Outsource frontend, backend, and security audits to specialized subagents running in parallel.
20
+
21
+ ## Getting Started
22
+
23
+ Explore the backbone technologies driving this paradigm shift:
24
+
25
+ - [Explore OpenViking Memory](#openviking)
26
+ - [Understand OpenSpace Containers](#openspace)
27
+ - [Real-world Use Cases](#use-cases)
28
+ - [Deploy the Framework](#deployment)
@@ -0,0 +1,240 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="UTF-8" />
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
+ <title>Documentation | CodyMaster v5 Neural Spine</title>
8
+ <!-- Fonts -->
9
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
10
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
11
+ <link
12
+ href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Inter:wght@400;500;600&display=swap"
13
+ rel="stylesheet" />
14
+ <!-- Markdown & Highlighting -->
15
+ <script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
16
+ <link href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism-tomorrow.min.css" rel="stylesheet" />
17
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js"></script>
18
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-javascript.min.js"></script>
19
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-json.min.js"></script>
20
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-markdown.min.js"></script>
21
+ <!-- Icons -->
22
+ <script src="https://unpkg.com/lucide@latest/dist/umd/lucide.js" defer></script>
23
+
24
+ <!-- Mermaid diagrams -->
25
+ <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
26
+ <script>mermaid.initialize({startOnLoad: false, theme: 'dark'});</script>
27
+
28
+ <style>
29
+ :root {
30
+ --bg: #050505;
31
+ --surface: #0a0a0a;
32
+ --border: rgba(255, 255, 255, 0.08);
33
+ --text: #e0e0e0;
34
+ --text-muted: #999;
35
+ --accent: #3b82f6;
36
+ --nav-width: 280px;
37
+ }
38
+
39
+ * {
40
+ margin: 0;
41
+ padding: 0;
42
+ box-sizing: border-box;
43
+ }
44
+
45
+ body {
46
+ font-family: 'Inter', sans-serif;
47
+ background: var(--bg);
48
+ color: var(--text);
49
+ line-height: 1.6;
50
+ overflow-x: hidden;
51
+ }
52
+
53
+ h1, h2, h3, h4 {
54
+ font-family: 'Plus Jakarta Sans', sans-serif;
55
+ color: #fff;
56
+ margin-bottom: 1rem;
57
+ }
58
+
59
+ /* Layout */
60
+ .docs-layout {
61
+ display: flex;
62
+ min-height: 100vh;
63
+ }
64
+
65
+ /* Sidebar */
66
+ .sidebar {
67
+ width: var(--nav-width);
68
+ background: var(--surface);
69
+ border-right: 1px border var(--border);
70
+ padding: 2rem 1.5rem;
71
+ position: fixed;
72
+ height: 100vh;
73
+ overflow-y: auto;
74
+ backdrop-filter: blur(10px);
75
+ }
76
+
77
+ .logo {
78
+ display: flex;
79
+ align-items: center;
80
+ gap: 10px;
81
+ font-weight: 700;
82
+ font-size: 1.25rem;
83
+ color: #fff;
84
+ text-decoration: none;
85
+ margin-bottom: 2.5rem;
86
+ font-family: 'Plus Jakarta Sans', sans-serif;
87
+ }
88
+
89
+ .nav-group {
90
+ margin-bottom: 2rem;
91
+ }
92
+
93
+ .nav-label {
94
+ font-size: 0.75rem;
95
+ text-transform: uppercase;
96
+ letter-spacing: 0.05em;
97
+ color: var(--text-muted);
98
+ margin-bottom: 0.75rem;
99
+ padding-left: 0.5rem;
100
+ }
101
+
102
+ .nav-link {
103
+ display: block;
104
+ padding: 0.6rem 0.75rem;
105
+ color: var(--text-muted);
106
+ text-decoration: none;
107
+ border-radius: 8px;
108
+ font-size: 0.95rem;
109
+ transition: all 0.2s;
110
+ margin-bottom: 0.2rem;
111
+ }
112
+
113
+ .nav-link:hover, .nav-link.active {
114
+ color: #fff;
115
+ background: rgba(255, 255, 255, 0.05);
116
+ }
117
+
118
+ .nav-link.active {
119
+ color: var(--accent);
120
+ font-weight: 500;
121
+ }
122
+
123
+ /* Main Content */
124
+ .content {
125
+ margin-left: var(--nav-width);
126
+ flex: 1;
127
+ padding: 4rem 6rem;
128
+ max-width: 1000px;
129
+ animation: fadeIn 0.5s ease;
130
+ }
131
+
132
+ @keyframes fadeIn {
133
+ from { opacity: 0; transform: translateY(10px); }
134
+ to { opacity: 1; transform: translateY(0); }
135
+ }
136
+
137
+ /* Markdown Styles */
138
+ .markdown-body h1 { font-size: 2.5rem; margin-bottom: 1.5rem; }
139
+ .markdown-body h2 { font-size: 1.75rem; margin-top: 2.5rem; border-bottom: 1px solid var(--border); padding-bottom: 0.5rem; }
140
+ .markdown-body p { margin-bottom: 1.25rem; font-size: 1.05rem; }
141
+ .markdown-body ul, .markdown-body ol { margin-bottom: 1.25rem; padding-left: 1.5rem; }
142
+ .markdown-body li { margin-bottom: 0.5rem; }
143
+ .markdown-body code { background: rgba(255,255,255,0.05); padding: 0.2rem 0.4rem; border-radius: 4px; font-size: 0.9em; }
144
+ .markdown-body pre { margin-bottom: 1.5rem; padding: 1rem; border-radius: 12px; background: #111 !important; border: 1px solid var(--border); }
145
+ .markdown-body blockquote { border-left: 4px solid var(--accent); padding-left: 1.5rem; font-style: italic; color: var(--text-muted); margin: 2rem 0; }
146
+
147
+ /* Mobile */
148
+ @media (max-width: 900px) {
149
+ .sidebar { transform: translateX(-100%); }
150
+ .content { margin-left: 0; padding: 2rem; }
151
+ }
152
+
153
+ </style>
154
+ </head>
155
+
156
+ <body>
157
+ <div class="docs-layout">
158
+ <aside class="sidebar">
159
+ <a href="../" class="logo">
160
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"
161
+ stroke-linecap="round" stroke-linejoin="round">
162
+ <path d="M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5" />
163
+ </svg>
164
+ CodyMaster v5
165
+ </a>
166
+
167
+ <div class="nav-group">
168
+ <p class="nav-label">Core Architecture</p>
169
+ <a href="#v5-intro" class="nav-link active" onclick="loadDoc('v5-intro')">The Neural Spine</a>
170
+ <a href="#changelog" class="nav-link" onclick="loadDoc('changelog')">What's New in v5</a>
171
+ <a href="#execution-flow" class="nav-link" onclick="loadDoc('execution-flow')">Execution Flow</a>
172
+ <a href="#openviking" class="nav-link" onclick="loadDoc('openviking')">OpenViking Memory</a>
173
+ <a href="#openspace" class="nav-link" onclick="loadDoc('openspace')">OpenSpace Workspace</a>
174
+ </div>
175
+
176
+ <div class="nav-group">
177
+ <p class="nav-label">Engineering Hub</p>
178
+ <a href="#use-cases" class="nav-link" onclick="loadDoc('use-cases')">Use Cases</a>
179
+ <a href="#deployment" class="nav-link" onclick="loadDoc('deployment')">Deployment Guide</a>
180
+ </div>
181
+
182
+ <div style="margin-top:auto; padding-top: 2rem;">
183
+ <a href="../" class="nav-link"><i data-lucide="arrow-left" style="width:14px;height:14px;vertical-align:middle;margin-right:8px;"></i> Back to Home</a>
184
+ </div>
185
+ </aside>
186
+
187
+ <main class="content">
188
+ <div id="doc-container" class="markdown-body">
189
+ Loading documentation...
190
+ </div>
191
+ </main>
192
+ </div>
193
+
194
+ <script>
195
+ async function loadDoc(docId) {
196
+ const container = document.getElementById('doc-container');
197
+ const links = document.querySelectorAll('.nav-link');
198
+
199
+ links.forEach(link => {
200
+ link.classList.toggle('active', link.getAttribute('href') === `#${docId}`);
201
+ });
202
+
203
+ try {
204
+ const response = await fetch(`content/${docId}.md`);
205
+ if (!response.ok) throw new Error('Document not found');
206
+ const text = await response.text();
207
+ container.innerHTML = marked.parse(text);
208
+
209
+ // Trigger Lucide
210
+ if (window.lucide) {
211
+ lucide.createIcons();
212
+ }
213
+
214
+ // Trigger Prism
215
+ Prism.highlightAll();
216
+
217
+ // Trigger Mermaid
218
+ document.querySelectorAll('code.language-mermaid').forEach((block) => {
219
+ const parent = block.parentElement;
220
+ const containerDiv = document.createElement('div');
221
+ containerDiv.className = 'mermaid';
222
+ containerDiv.textContent = block.textContent;
223
+ parent.parentElement.replaceChild(containerDiv, parent);
224
+ });
225
+ mermaid.init(undefined, document.querySelectorAll('.mermaid'));
226
+
227
+ } catch (err) {
228
+ container.innerHTML = `<h1>404</h1><p>The document "${docId}" could not be found.</p>`;
229
+ }
230
+ }
231
+
232
+ // Initial load
233
+ window.onload = () => {
234
+ const hash = window.location.hash.substring(1) || 'v5-intro';
235
+ loadDoc(hash);
236
+ }
237
+ </script>
238
+ </body>
239
+
240
+ </html>