nuxt-ai-ready 0.2.1 → 0.2.3

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.
package/README.md CHANGED
@@ -21,10 +21,10 @@ Nuxt AI Ready converts your indexable pages into clean markdown that AI systems
21
21
 
22
22
  ## Features
23
23
 
24
- - 📄 **LLM Optimized Output**: Generate `llms.txt` as well as `llms.toon` (tabular, token efficient) artifacts
25
- - 🚀 **On-Demand Markdown**: Any route available as `.md` (e.g., `/about` → `/about.md`)
26
- - 🤖 **Smart Bot Detection**: Serves markdown to AI crawlers automatically
27
- - 📡 **Content Signals**: Help AI systems understand how to use your pages
24
+ - 📄 **LLM Optimized Output**: Generate `llms.txt` artifacts including [TOON format](https://toonformat.dev)
25
+ - 🚀 **On-Demand Markdown**: Any route available as `.md` (e.g., `/about` → `/about.md`), automatically served to AI crawlers
26
+ - 📡 **Content Signals**: Signals AI Crawlers using [Nuxt Robots](https://nuxtseo.com/robots)
27
+ - 🌐 **Indexable Pages**: Integrating with [Nuxt Sitemap](https://nuxtseo.com/sitemap) to index only AI-allowed pages
28
28
  - 📦 **Bulk Chunk Export**: Exported token optimized chunks ready for RAG and semantic search
29
29
  - ⚡ **MCP Integration**: Let AI agents query your site directly
30
30
 
package/dist/module.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as _nuxt_schema from '@nuxt/schema';
2
- import { BulkChunk, ModuleOptions } from '../dist/runtime/types.js';
2
+ import { BulkChunk, LlmsTxtConfig, ModuleOptions } from '../dist/runtime/types.js';
3
3
  export { BulkChunk, ModuleOptions } from '../dist/runtime/types.js';
4
4
 
5
5
  interface ModuleHooks {
@@ -20,6 +20,13 @@ interface ModuleHooks {
20
20
  description: string;
21
21
  headings: Array<Record<string, string>>;
22
22
  }) => void | Promise<void>;
23
+ /**
24
+ * Hook to modify llms.txt configuration before it is finalized
25
+ */
26
+ 'ai-ready:llms-txt': (payload: {
27
+ sections: LlmsTxtConfig['sections'];
28
+ notes: string[];
29
+ }) => void | Promise<void>;
23
30
  }
24
31
  interface ModulePublicRuntimeConfig {
25
32
  debug: boolean;
package/dist/module.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "nuxt": ">=4.0.0"
5
5
  },
6
6
  "configKey": "aiReady",
7
- "version": "0.2.1",
7
+ "version": "0.2.3",
8
8
  "builder": {
9
9
  "@nuxt/module-builder": "1.0.2",
10
10
  "unbuild": "3.6.1"
package/dist/module.mjs CHANGED
@@ -63,9 +63,9 @@ function setupPrerenderHandler(llmsTxtConfig) {
63
63
  writer = stream.getWriter();
64
64
  mkdirSync(dirname(pagesChunksPath), { recursive: true });
65
65
  mkdirSync(dirname(pagesPath), { recursive: true });
66
- chunksStream = createWriteStream(pagesChunksPath, "utf-8");
66
+ chunksStream = createWriteStream(pagesChunksPath, { encoding: "utf-8" });
67
67
  chunksStream.write("pageChunks[999999]{id,route,content}:\n");
68
- pagesStream = createWriteStream(pagesPath, "utf-8");
68
+ pagesStream = createWriteStream(pagesPath, { encoding: "utf-8" });
69
69
  pagesStream.write("pages[999999]{route,title,description,headings,chunkIds}:\n");
70
70
  }
71
71
  const { chunks, title, description, headings } = JSON.parse(route.contents || "{}");
@@ -196,7 +196,7 @@ function setupPrerenderHandler(llmsTxtConfig) {
196
196
  });
197
197
  }
198
198
 
199
- const module = defineNuxtModule({
199
+ const module$1 = defineNuxtModule({
200
200
  meta: {
201
201
  name: "nuxt-ai-ready",
202
202
  compatibility: {
@@ -379,4 +379,4 @@ export {}
379
379
  }
380
380
  });
381
381
 
382
- export { module as default };
382
+ export { module$1 as default };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "nuxt-ai-ready",
3
3
  "type": "module",
4
- "version": "0.2.1",
4
+ "version": "0.2.3",
5
5
  "description": "Best practice AI & LLM discoverability for Nuxt sites.",
6
6
  "author": {
7
7
  "name": "Harlan Wilton",
@@ -46,19 +46,19 @@
46
46
  "ufo": "^1.6.1"
47
47
  },
48
48
  "devDependencies": {
49
- "@antfu/eslint-config": "^6.3.0",
49
+ "@antfu/eslint-config": "^6.4.1",
50
50
  "@arethetypeswrong/cli": "^0.18.2",
51
51
  "@headlessui/vue": "^1.7.23",
52
52
  "@nuxt/content": "^3.9.0",
53
53
  "@nuxt/devtools-ui-kit": "^3.1.1",
54
54
  "@nuxt/module-builder": "^1.0.2",
55
- "@nuxt/test-utils": "^3.20.1",
55
+ "@nuxt/test-utils": "^3.21.0",
56
56
  "@nuxtjs/color-mode": "^4.0.0",
57
57
  "@nuxtjs/eslint-config-typescript": "^12.1.0",
58
58
  "@nuxtjs/i18n": "^10.2.1",
59
59
  "@nuxtjs/mcp-toolkit": "^0.5.1",
60
60
  "@nuxtjs/robots": "^5.6.0",
61
- "@nuxtjs/sitemap": "^7.4.7",
61
+ "@nuxtjs/sitemap": "^7.4.8",
62
62
  "@vitest/coverage-v8": "^4.0.15",
63
63
  "@vueuse/nuxt": "^14.1.0",
64
64
  "better-sqlite3": "^12.5.0",
@@ -79,7 +79,7 @@
79
79
  "zod": "^4.1.13"
80
80
  },
81
81
  "resolutions": {
82
- "nuxt-ai-ready": "workspace:*"
82
+ "nuxt-ai-ready": "wo rkspace:*"
83
83
  },
84
84
  "scripts": {
85
85
  "lint": "eslint . --fix",