neo.mjs 10.6.0 → 10.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.
@@ -1,33 +1,100 @@
1
- # AI Knowledge Base Quick Start
1
+ # AI Knowledge Base Quick Start Guide
2
2
 
3
- This guide assumes you have already cloned the `neo` repository and have all the necessary files.
3
+ This guide provides a comprehensive walkthrough for setting up and using the local AI Knowledge Base
4
+ for the Neo.mjs repository.
4
5
 
5
- ## Prerequisites
6
+ ## 1. Prerequisites
6
7
 
7
- 1. **Node.js**: v18 or later
8
- 2. **Google AI API Key**: A `GEMINI_API_KEY` from Google AI Studio.
8
+ Before you begin, ensure you have the following:
9
9
 
10
- ## Setup Steps
10
+ 1. **Google Account**: You'll need one to access Google AI Studio for an API key. If you don't have one,
11
+ you can create it at [accounts.google.com](https://accounts.google.com).
12
+ 2. **Node.js**: Version 18 or later. If you don't have it, you can install it from [nodejs.org](https://nodejs.org).
13
+ 3. **Forked & Cloned Neo.mjs Repository**: To contribute, you should first fork the repository on GitHub,
14
+ and then clone your personal fork.
15
+ ```bash
16
+ # In your browser, visit https://github.com/neomjs/neo and click the "Fork" button.
17
+ # Then, clone your fork (replace YOUR_USERNAME):
18
+ git clone https://github.com/YOUR_USERNAME/neo.git
19
+ cd neo
20
+ ```
21
+ 4. **Internet Access**: Required for the initial installation of tools and for generating your API key.
22
+
23
+ ## 2. A Note on Cost
24
+
25
+ This entire process uses the free tier of the Google Gemini API. The free tier is generous and more than sufficient for
26
+ this development workflow, typically allowing up to **60 queries per minute** for the embedding model used here.
27
+ You can check your specific limits in the Google AI Studio.
28
+
29
+ ## 3. Setup and Configuration
30
+
31
+ ### Step 3.1: Obtain a Gemini API Key
32
+
33
+ The API key authenticates your requests to Google's Gemini models.
34
+
35
+ 1. **Visit Google AI Studio**: Go to [https://aistudio.google.com/app/apikey](https://aistudio.google.com/app/apikey).
36
+ 2. **Sign In**: Use your Google account credentials. Complete any two-factor authentication (2FA) if prompted.
37
+ 3. **Create API Key**: Click the "Create API key" button. The key will be generated instantly.
38
+ 4. **Copy and Secure the Key**: Click the copy icon next to the key. **Treat this key like a password and never commit
39
+ it to version control.**
40
+
41
+ ### Step 3.2: Configure Your Local Environment
42
+
43
+ 1. **Navigate to Repo Root**: Make sure you are in the root directory of your cloned `neo` repository.
44
+ 2. **Create `.env` file**: Create a new file named `.env`.
45
+ 3. **Add API Key**: Add the following line to the `.env` file, replacing `YOUR_API_KEY_HERE` with the key you just copied:
46
+ ```
47
+ GEMINI_API_KEY="YOUR_API_KEY_HERE"
48
+ ```
49
+ This file is already listed in `.gitignore` to prevent you from accidentally committing your key.
50
+
51
+ ## 4. Build the Knowledge Base
11
52
 
12
- 1. **Configure Environment**
13
- - Create a `.env` file in the root of the repository.
14
- - Add your API key to it: `GEMINI_API_KEY="YOUR_API_KEY_HERE"`
53
+ With the configuration in place, you can now build the local vector database.
15
54
 
16
- 2. **Start the AI Server**
17
- In a separate terminal, run:
55
+ 1. **Start the AI Server**: In a new terminal window, start the ChromaDB server. Keep this process running in the background.
18
56
  ```bash
19
57
  npm run ai:server
20
58
  ```
21
- Keep this server running.
22
-
23
- 3. **Build the Knowledge Base**
24
- In another terminal, run:
59
+ 2. **Build the Knowledge Base**: In another terminal, run the following commands sequentially. This may take a few
60
+ minutes on the first run.
25
61
  ```bash
62
+ # 1. Generates docs/output/structure.json for codebase mapping
26
63
  npm run generate-docs-json
64
+
65
+ # 2. Creates, embeds, and stores all content in the local ChromaDB
27
66
  npm run ai:build-kb
28
67
  ```
29
68
 
30
- 4. **Query the Knowledge Base**
69
+ ## 5. The AI-Native Workflow in Action
70
+
71
+ The goal of this system is not for you to manually run queries, but to empower an AI agent to do it for you. Here’s how
72
+ the intended workflow looks:
73
+
74
+ 1. **Start your AI Agent**: From the repo root, launch your AI agent of choice (e.g., Gemini CLI).
31
75
  ```bash
32
- npm run ai:query -- -q "Your query here"
76
+ gemini
33
77
  ```
78
+ 2. **Give a High-Level Prompt**: Instead of feeding the AI context, you give it a goal and instruct it to use the tools
79
+ available in the repository.
80
+
81
+ > **Your Prompt:** "Explain the Neo.mjs two-tier reactivity model and provide a simple code example."
82
+
83
+ 3. **The AI Takes Over**: An AI agent following the `AGENTS.md` protocol will then:
84
+ * **Formulate a query**: It will determine that "reactivity" is the key concept.
85
+ * **Execute the tool**: It will run `npm run ai:query -- -q "reactivity" -t guide` and
86
+ `npm run ai:query -- -q "reactivity" -t src` on its own.
87
+ * **Synthesize the answer**: After getting the paths to the most relevant guides and source files, it will read
88
+ them and use that fresh, accurate context to generate a comprehensive explanation and code example.
89
+
90
+ This is the crucial difference: you are delegating the *research* task to the AI, making it a true partner that can
91
+ autonomously navigate and understand your codebase.
92
+
93
+ ## 6. Common Troubleshooting
94
+
95
+ - **API Key Errors**: If queries fail with authentication issues, try regenerating the key in Google AI Studio or
96
+ check your usage quotas.
97
+ - **`gemini` Command Not Found**: If you installed the Gemini CLI but the command isn't found, ensure your system's
98
+ PATH includes the global npm binaries directory. You can find this directory by running `npm bin -g`.
99
+ - **Memory Issues during Build**: The `ai:build-kb` script can be memory-intensive. If it fails, you can try increasing
100
+ the heap size available to Node.js: `node --max-old-space-size=4096 ./buildScripts/ai/embedKnowledgeBase.mjs`.
@@ -0,0 +1,41 @@
1
+ ---
2
+ date: 2025-09-21
3
+ version: 10.7.0
4
+ ---
5
+ # Neo.mjs v10.7.0 Release Notes
6
+
7
+ Version 10.7.0 massively enhances the **AI-Native Developer Experience** introduced in v10.6.0, making it more powerful, scalable, and deeply integrated into the development workflow. This release also delivers substantial new learning content to accelerate developer onboarding.
8
+
9
+ ## 🚀 Highlights
10
+
11
+ - **Major AI Knowledge Base Upgrade:** Building on the foundation from v10.6.0, the AI Knowledge Base has been re-architected for scalability and enriched with more content. It now uses a streaming pipeline for memory-efficient processing and includes all blog posts, making it a more comprehensive and performant resource.
12
+ - **Formalized AI-Driven Development:** The new `AGENTS.md` file provides a comprehensive operational manual for AI agents, formalizing the process for AI-driven development within the repository.
13
+ - **Extensive New Learning Content:** This version adds three major new guides covering **Styling and Theming**, **Unit Testing**, and **Application Routing**, plus a new blog post on the framework's AI-native architecture.
14
+
15
+ ## ✨ New Features
16
+
17
+ - **AI Agent Guidelines (`#7220`, `#7221`):** A new `AGENTS.md` file has been created to provide a comprehensive operational manual for AI agents working within the repository.
18
+ - **New Guide: [Styling and Theming](https://github.com/neomjs/neo/blob/dev/learn/guides/uibuildingblocks/StylingAndTheming.md) (`#6778`):** A new, in-depth guide covering all aspects of styling and theming in Neo.mjs.
19
+ - **New Guide: [Unit Testing with Siesta](https://github.com/neomjs/neo/blob/dev/learn/guides/testing/UnitTestingWithSiesta.md) (`#7222`):** A new guide providing a step-by-step introduction to the unit testing workflow.
20
+ - **New Tutorial: [Multi-Page App Routing](https://github.com/neomjs/neo/blob/dev/learn/tutorials/Routing.md) (`#7223`):** A new tutorial that walks developers through building a simple single-page application with client-side routing.
21
+ - **New Blog Post (`#7226`, `d7492da61`):** Added the blog post "[The UI Revolution: How JSON Blueprints & Shared Workers Power Next-Gen AI Interfaces](https://github.com/neomjs/neo/blob/dev/learn/blog/json-blueprints-and-shared-workers.md)" to the repository.
22
+
23
+ ## 💡 Enhancements
24
+
25
+ - **AI Knowledge Base:**
26
+ - **Blog Integration (`#7216`):** The knowledge base now includes content from all blog posts.
27
+ - **Streaming for Memory Efficiency (`#7215`):** The knowledge base generation scripts now use a streaming pipeline, significantly lowering memory footprint.
28
+ - **Query Scoring Refactor (`#7218`):** The query scoring algorithm has been refactored for improved performance and relevance.
29
+ - **Query Performance (`0a667b35d`):** Query script performance has been drastically improved by moving score adjustment logic to the embedding phase.
30
+ - **Content Filtering (`#7217`):** The `learn/comparisons` folder is now excluded from the knowledge base.
31
+ - **AI Tooling & Developer Experience:**
32
+ - **Intent-Driven JSDoc Comments (`#7219`):** Core AI scripts have been enhanced with intent-driven JSDoc comments.
33
+ - **README.md (`d7e3c6ebe`):** The main README now includes a section on the "AI-Native by Design" philosophy.
34
+
35
+ ---
36
+
37
+ ## Try the AI-Native Experience
38
+
39
+ With the significant enhancements to the AI Knowledge Base and the new `AGENTS.md` guidelines, the Neo.mjs repository is now fully equipped for AI-driven development. We encourage you to try it out using tools like Gemini CLI or your own custom agents.
40
+
41
+ Get started in minutes by following our **[AI Quick Start Guide](./AI_QUICK_START.md)**.
@@ -0,0 +1,33 @@
1
+ # Neo.mjs v10.8.0 Release Notes
2
+
3
+ ## Summary
4
+
5
+ Version 10.8.0 is a significant minor release focused on enhancing the AI-Native development experience. This version formalizes a more advanced, query-driven documentation strategy and introduces a new blog post detailing the philosophy and architecture behind Neo.mjs's AI-first approach.
6
+
7
+ ## Key Enhancements
8
+
9
+ ### 1. Refined AI Agent Workflow & Query Tool
10
+
11
+ The AI agent guidelines (`AGENTS.md`) and the underlying query engine have been significantly enhanced to improve the entire AI-native development workflow.
12
+
13
+ - **Advanced Query Filtering:** The knowledge base query script (`queryKnowledgeBase.mjs`) was refactored to use `commander` and now includes a powerful `--type` flag. This allows developers and AI agents to filter search results by content type (`all`, `blog`, `guide`, `src`, `example`), making it much easier to find specific kinds of information.
14
+ - **Query-Driven Documentation:** The agent protocol was updated with the "Contributing Queryable, Intent-Driven Comments" strategy. This requires agents to enrich source code with conceptual keywords, `@summary` tags, and `@see` links, turning our codebase into a more discoverable knowledge base.
15
+ - **Structural Improvements:** The `AGENTS.md` document flow was improved by relocating key sections and fixing cross-references for better readability.
16
+ - **Regression Testing:** The agent guidelines now include a prompt to create regression tests for all bug fixes, with a direct link to the `UnitTestingWithSiesta.md` guide to ensure issues, once solved, stay solved.
17
+
18
+ This change transforms the AI from a simple code generator into a true contributor to the project's long-term health and maintainability.
19
+
20
+ ### 2. Enhanced StateProvider Example
21
+
22
+ As the first implementation of our new documentation strategy, the advanced StateProvider example (`examples/stateProvider/advanced/`) has been updated with comprehensive, intent-driven JSDoc comments. This makes the example a much clearer, self-documenting resource for understanding hierarchical state management in Neo.mjs.
23
+
24
+ ### 3. New Blog Post: "AI-Native, Not AI-Assisted"
25
+
26
+ A new in-depth article has been added to our blog, which covers:
27
+
28
+ - The core philosophy behind building an AI-Native framework.
29
+ - A technical deep-dive into our local-first, Retrieval-Augmented Generation (RAG) system.
30
+ - A comparison of Neo.mjs's approach with other industry implementations like Angular's MCP.
31
+ - The future roadmap for extending these AI capabilities to user-created workspaces.
32
+
33
+ This article is now accessible via the documentation portal.
package/AGENTS.md ADDED
@@ -0,0 +1,237 @@
1
+ # AI Agent Guidelines
2
+
3
+ Welcome, AI assistant! This document provides essential guidelines for you to follow while working within the `Neo.mjs`
4
+ repository. Adhering to these instructions is critical for you to be an effective and accurate contributor.
5
+
6
+ ## 1. Your Role and Primary Directive
7
+
8
+ Your role is that of an **expert Neo.mjs developer and architect**. Your primary directive is to assist in the
9
+ development and maintenance of the Neo.mjs framework.
10
+
11
+ **CRITICAL:** Your training data is outdated regarding Neo.mjs. You **MUST NOT** rely on any prior knowledge you have
12
+ about the framework. The **ONLY** source of truth is the content within this repository.
13
+
14
+ ## 2. Session Initialization
15
+
16
+ At the beginning of every new session, you **MUST** perform the following steps to ground your understanding of the framework:
17
+
18
+ 1. **Read the Codebase Structure:** Parse the file `docs/output/structure.json`. This will give you a complete map of
19
+ all files, directories, and class names in the project. If this file is missing, you can generate it by running
20
+ `npm run generate-docs-json`.
21
+
22
+ 2. **Read the Core Concepts (`src/Neo.mjs`):** When reading this file, focus on understanding:
23
+ - `Neo.setupClass()`: The final processing step for all classes. This is the most critical function for understanding
24
+ how configs, mixins, and reactivity are initialized. Pay special attention to its "first one wins" gatekeeper logic,
25
+ which is key to Neo's mixed-environment support.
26
+ - `Neo.create()`: The factory method for creating instances.
27
+ - The distinction between class namespaces (e.g., `Neo.component.Base`) and `ntype` shortcuts (e.g., `'button'`).
28
+
29
+ 3. **Read the Base Class (`src/core/Base.mjs`):** This is the foundation for all components and classes. Focus on:
30
+ - The `static config` system: Understand the difference between reactive configs (e.g., `myConfig_`) which generate
31
+ hooks, and non-reactive configs which are set on the prototype.
32
+ - The instance lifecycle: `construct()`, `onConstructed()`, `initAsync()`, and `destroy()`.
33
+ - The reactivity hooks: `beforeGet*`, `beforeSet*`, `afterSet*`.
34
+
35
+ 4. **Understand the Two Component Models:** Read the file `learn/gettingstarted/DescribingTheUI.md` to understand the
36
+ difference between functional and class-based components, and how they interoperate.
37
+
38
+ ## 3. The Knowledge Base: Your Primary Source of Truth
39
+
40
+ Your primary directive is to rely on the project's internal knowledge base, not your pre-existing training data.
41
+
42
+ ### The Anti-Hallucination Policy
43
+
44
+ You must **NEVER** make guesses, assumptions, or "hallucinate" answers about the Neo.mjs framework. If you do not know
45
+ something, you must find the answer using the query tool.
46
+
47
+ - **BAD Example:** ❌ *"Based on typical React patterns, you should use `useState` here..."*
48
+ - **GOOD Example:** ✅ *"Let me query the knowledge base to understand Neo.mjs state management patterns..."*
49
+
50
+ ### The Query Command
51
+
52
+ Your most important tool is the local AI knowledge base. To use it, execute the following shell command:
53
+ ```bash
54
+ npm run ai:query -- -q "Your question here" -t <type>
55
+ ```
56
+ - The `-t` or `--type` flag is optional and allows you to filter results by content type.
57
+ - Supported types are: `all` (default), `blog`, `guide`, `src`, `example`.
58
+
59
+ ### How to Interpret Query Results
60
+
61
+ The query tool will return a ranked list of source file paths based on relevance. The output will look like this:
62
+ ```
63
+ Most relevant source files (by weighted score):
64
+ - /path/to/relevant/file1.mjs (Score: 350)
65
+ - /path/to/relevant/file2.md (Score: 210)
66
+ - /path/to/relevant/file3.mjs (Score: 150)
67
+
68
+ Top result: /path/to/relevant/file1.mjs
69
+ ```
70
+ You should always start by reading the top-ranked file. After reading the top result, scan the next 5-10 files in the list,
71
+ paying attention to the file types. Since `.md` guides often provide valuable conceptual context that `.mjs` source
72
+ files may lack, it is highly recommended to read the most relevant guide file from the top results, even if it is not
73
+ the #1 ranked file. A good heuristic is to aim to read the top 1-2 source files and the top 1-2 relevant guides to get
74
+ a balanced understanding.
75
+
76
+ ### Query Strategies
77
+
78
+ Do not assume you will get the perfect answer on the first try. Use a systematic approach to querying.
79
+
80
+ #### 1. Discovery Pattern (Broad to Narrow)
81
+
82
+ When you need to understand a new concept or feature area:
83
+ 1. **Start broad:** Use conceptual queries to get a high-level overview.
84
+ - `npm run ai:query -- -q "framework architecture"`
85
+ - `npm run ai:query -- -q "show me examples for Neo.tab.Container"`
86
+ 2. **Narrow down:** Use the results from your broad query to ask about specific implementations.
87
+ - `npm run ai:query -- -q "Button component examples"`
88
+ - `npm run ai:query -- -q "what is Neo.component.Base?"`
89
+ 3. **Find related patterns:** Look for common conventions and approaches.
90
+ - `npm run ai:query -- -q "form validation patterns"`
91
+ - `npm run ai:query -- -q "how are stores implemented?"`
92
+
93
+ #### 2. Targeted Content-Type Searching
94
+
95
+ Use the `--type` (`-t`) flag to focus your search on specific types of content.
96
+ This is a powerful way to get more relevant results.
97
+
98
+ - **To find conceptual explanations:**
99
+ - `npm run ai:query -- -q "state management" -t guide`
100
+ - **To find concrete usage examples:**
101
+ - `npm run ai:query -- -q "Button component" -t example`
102
+ - **To dive deep into implementation details:**
103
+ - `npm run ai:query -- -q "afterSet hook" -t src`
104
+
105
+ **Strategy:** If a broad query returns too many source files and not enough conceptual documents, re-run the query with
106
+ `-t guide`. Conversely, if you have read the guides but need to see the actual implementation,
107
+ re-run with `-t src` or `-t example`.
108
+
109
+ #### 3. Knowledge Base Enhancement Strategy: Contributing Queryable, Intent-Driven Comments
110
+
111
+ When analyzing source files (e.g., during step 2 of the Development Workflow), if you encounter code that lacks
112
+ sufficient intent-driven comments or clear documentation, immediately enhance it with meaningful, structured
113
+ documentation before proceeding with your implementation. The goal is not just to explain the code, but to make it
114
+ more discoverable for future queries.
115
+
116
+ 1. **Analyze the Implementation**: Study the source code carefully to understand:
117
+ - What the code does (mechanics).
118
+ - Why it does it (intent).
119
+ - How it fits into the broader architecture.
120
+ - What patterns it follows.
121
+
122
+ 2. **Generate Structured, Intent-Driven Comments**: For class-level comments, add meaningful JSDoc tags that explain:
123
+ - `@summary`: A concise, one-sentence explanation of the class's purpose.
124
+ - A detailed description of the class's role, responsibilities, and architectural context.
125
+ - `@see`: Links to other relevant classes, guides, or examples.
126
+
127
+ 3. **Anticipate Future Queries**: After documenting the class's purpose, think like a user. What broad concepts or
128
+ keywords would someone search for if this class were the answer? Explicitly include these concepts in the
129
+ class description. This acts as a "semantic signpost" that makes the class more discoverable. For example, a
130
+ component that manages state should mention concepts like `state management`, `reactivity`, or `data binding`.
131
+
132
+ 4. **Enhance for Future Sessions**: Your rich, structured comments become part of the knowledge base, helping future
133
+ AI sessions understand the code's purpose and context more effectively and improving query results for everyone.
134
+
135
+ **Example of a Good Query-Driven Class Comment:**
136
+ ```javascript
137
+ /**
138
+ * @summary Manages the state and lifecycle of a tab container's header.
139
+ *
140
+ * This class is a core part of the tab container's view logic. It is responsible for rendering the tab
141
+ * buttons, handling user interactions (like clicks and keyboard navigation), and synchronizing the
142
+ * header's UI with the active tab in the main container. It works closely with the main Tab.Container
143
+ * and its layout to ensure a seamless user experience.
144
+ *
145
+ * This class is a key example of the framework's **reactivity** model and demonstrates concepts like
146
+ * **component composition**, **event handling**, and **data binding**.
147
+ *
148
+ * @see Neo.tab.Container
149
+ * @see Neo.examples.tab.Container
150
+ */
151
+ class TabHeader extends Component {
152
+ // Implementation details...
153
+ }
154
+ ```
155
+
156
+ #### 4. When Queries Fail to Find Information
157
+
158
+ If you cannot find relevant information after systematic querying (including using the Knowledge Base Enhancement Strategy):
159
+
160
+ 1. **Try alternative query terms**: Use synonyms, broader concepts, or different technical terminology
161
+ 2. **Query for related concepts**: Look for similar patterns or analogous implementations
162
+ 3. **Check fundamental concepts**: Ensure you understand the basic architecture before seeking specific solutions
163
+
164
+ If queries consistently return no relevant results for your task:
165
+
166
+ **STOP implementation and document the gap:**
167
+ - Clearly describe what you were trying to accomplish
168
+ - List the queries you attempted
169
+ - Explain why existing results were insufficient
170
+ - Suggest what type of documentation would help (guide, example, architectural explanation)
171
+
172
+ **Example escalation:**
173
+ ```
174
+ Unable to find information about: "implementing custom layout managers in Neo.mjs"
175
+
176
+ Queries attempted:
177
+ - "custom layout manager"
178
+ - "layout implementation patterns"
179
+ - "extending layout base class"
180
+
181
+ Gap identified: Need learning guide covering layout manager development patterns,
182
+ lifecycle methods, and integration with container components.
183
+ ```
184
+
185
+ **Do NOT:**
186
+ - Implement solutions based on incomplete information
187
+ - Use patterns from other frameworks inappropriately
188
+ - Create code based on assumptions or training data
189
+
190
+ ### Handling Technical Failures
191
+
192
+ If a query search returns no results, do not guess. Rephrase your query. Try to be more specific or use different
193
+ keywords based on the knowledge you've gathered from reading the core files.
194
+
195
+ If the `npm run ai:query` command itself fails or throws an error, consult the setup guide at `.github/AI_QUICK_START.md`
196
+ to ensure the environment is configured correctly and the knowledge base is properly built.
197
+
198
+ ## 4. Development Workflow
199
+
200
+ Integrate the query tool into your development process.
201
+
202
+ 1. **Understand the Task & Query:** For any new task (e.g., "implement a new component," "fix a bug in the grid"),
203
+ start by using the **Discovery Pattern** to understand the context and find relevant files.
204
+ 2. **Analyze Existing Code & Enhance Documentation:** Read the top 1-3 files returned by your queries. When reading,
205
+ focus on understanding the existing class structure, method signatures, configuration patterns, and overall architecture.
206
+ **If you encounter source code lacking intent-driven comments, apply the "Knowledge Base Enhancement Strategy" to add
207
+ meaningful documentation before proceeding.** Your goal is to make your changes fit in seamlessly.
208
+ 3. **Implement Changes:** Write or modify the code, strictly adhering to the conventions you observed.
209
+ 4. **Verify:** After making changes, run any relevant verification tools, such as tests, to ensure your changes are
210
+ correct and meet the project's standards. For bug fixes, ensure you've created regression tests
211
+ (see `learn/guides/UnitTestingWithSiesta.md` for guidance).
212
+ 5. **Use `text` over `html` in VDOM:** When creating VDOM nodes, always prefer using the `text` property over the `html`
213
+ property. `text` is mapped to the `textContent` DOM attribute, which is inherently secure against XSS attacks. `html`
214
+ is mapped to `innerHTML` and should be avoided unless you are intentionally rendering trusted HTML content.
215
+ This is especially important as the framework defaults to a `domApiRenderer` where `textContent` is also more performant.
216
+
217
+ ## This Changes the Workflow
218
+
219
+ The enhanced workflow becomes:
220
+
221
+ 1. **Query for understanding** (as before)
222
+ 2. **Read available documentation**
223
+ 3. **If source lacks context**: Analyze the code and **add meaningful comments**
224
+ 4. **Implement your changes** with the new understanding
225
+ 5. **The knowledge base gets richer** for the next session
226
+
227
+ This approach transforms the AI agent from just a consumer of documentation to a **contributor** to the project's
228
+ long-term maintainability.
229
+
230
+ ## 5. Session Maintenance
231
+
232
+ Your initialization is a snapshot in time. The codebase can change. If you pull new changes from the repository, you
233
+ should consider re-running your initialization steps (reading `structure.json`, `Neo.mjs`, and `core/Base.mjs`) to
234
+ ensure your understanding is up-to-date.
235
+
236
+ Furthermore, after pulling changes, the local knowledge base may be out of sync.
237
+ You should run `npm run ai:build-kb` to re-embed the latest changes into the database.
package/README.md CHANGED
@@ -141,6 +141,8 @@ That’s Neo.mjs in action — solving problems others can’t touch.
141
141
 
142
142
  * **Async-Aware Component Lifecycle**: With the `initAsync()` lifecycle method, components can handle asynchronous setup (like fetching data or lazy-loading modules) *before* they are considered "ready." This eliminates entire classes of race conditions and UI flicker, allowing you to build complex, data-dependent components with confidence.
143
143
 
144
+ * **AI-Native by Design**: Neo.mjs is architected to be developed *by* AI agents. With a deterministic structure, a local knowledge base for querying, and clear guidelines ([AGENTS.md](./AGENTS.md)), the framework is ready for the next generation of software development. This architectural discipline not only enables AI collaboration but also results in a cleaner, more predictable, and more maintainable codebase for human developers.
145
+
144
146
  <p align="center">
145
147
  <img src="./resources/images/workers-focus.svg" alt="Neo.mjs Worker Architecture Diagram - Shows Main Thread, App Worker, VDom Worker, Canvas Worker, Data Worker, Service Worker, Backend connections.">
146
148
  </p>
package/ServiceWorker.mjs CHANGED
@@ -20,9 +20,9 @@ class ServiceWorker extends ServiceBase {
20
20
  */
21
21
  singleton: true,
22
22
  /**
23
- * @member {String} version='10.6.0'
23
+ * @member {String} version='10.8.0'
24
24
  */
25
- version: '10.6.0'
25
+ version: '10.8.0'
26
26
  }
27
27
 
28
28
  /**
@@ -16,7 +16,7 @@
16
16
  "@type": "Organization",
17
17
  "name": "Neo.mjs"
18
18
  },
19
- "datePublished": "2025-09-19",
19
+ "datePublished": "2025-09-23",
20
20
  "publisher": {
21
21
  "@type": "Organization",
22
22
  "name": "Neo.mjs"
@@ -1,4 +1,16 @@
1
1
  [{
2
+ "author" : "Tobias Uhlig",
3
+ "authorImage" : "author_TobiasUhlig.jpeg",
4
+ "date" : "Sep 23, 2025",
5
+ "id" : 71,
6
+ "image" : "PlatformAnswersQuestions.jpg",
7
+ "name" : "AI-Native, Not AI-Assisted: A Platform That Answers Your Questions",
8
+ "provider" : "Medium",
9
+ "publisher" : "",
10
+ "selectedInto": [],
11
+ "type" : "Blog Post",
12
+ "url" : "https://tobiasuhlig.medium.com/ai-native-not-ai-assisted-a-platform-that-answers-your-questions-0c08f5a336ae?source=friends_link&sk=45cc238e4f342672d3eb3244136b7770"
13
+ }, {
2
14
  "author" : "Tobias Uhlig",
3
15
  "authorImage" : "author_TobiasUhlig.jpeg",
4
16
  "date" : "Sep 17, 2025",
@@ -123,9 +123,9 @@ class Viewport extends BaseViewport {
123
123
  * @returns {String}
124
124
  */
125
125
  getSize(width) {
126
- if (width <= 640) {return 'x-small'}
127
- if (width <= 1024) {return 'small'}
128
- if (width <= 1296) {return 'medium'}
126
+ if (width <= 640) return 'x-small';
127
+ if (width <= 1024) return 'small';
128
+ if (width <= 1296) return 'medium';
129
129
  return 'large'
130
130
  }
131
131
 
@@ -108,7 +108,7 @@ class FooterContainer extends Container {
108
108
  }, {
109
109
  module: Component,
110
110
  cls : ['neo-version'],
111
- text : 'v10.6.0'
111
+ text : 'v10.8.0'
112
112
  }]
113
113
  }],
114
114
  /**
@@ -8,7 +8,7 @@ const
8
8
  regexLabOpen = /<!--\s*lab\s*-->/g,
9
9
  regexLivePreview = /```(javascript|html|css|json)\s+live-preview\s*\n([\s\S]*?)\n\s*```/g,
10
10
  regexNeoComponent = /```json\s+neo-component\s*\n([\s\S]*?)\n\s*```/g,
11
- regexReadonly = /```(javascript|html|css|json)\s+readonly\s*\n([\s\S]*?)\n\s*```/g;
11
+ regexReadonly = /```(bash|javascript|html|css|json|scss)\s+readonly\s*\n([\s\S]*?)\n\s*```/g;
12
12
 
13
13
  /**
14
14
  * @class Portal.view.learn.ContentComponent