@ahtmljs/next 0.1.1 โ†’ 0.2.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.
package/README.md CHANGED
@@ -19,6 +19,34 @@ same HTML they always have.
19
19
  npm install @ahtmljs/next @ahtmljs/schema
20
20
  ```
21
21
 
22
+ ## ๐Ÿ“Š How well does an AI read it?
23
+
24
+ We asked an AI **20 questions** about the same page โ€” given in 4 different formats:
25
+
26
+ | Format you give the AI | Tokens used | Right answers |
27
+ |---|---:|---:|
28
+ | Plain HTML | 684 | 91% |
29
+ | llms.txt | 227 | 89% |
30
+ | **AHTML compact** | **338** | **95%** |
31
+ | **AHTML JSON** | **365** | **100%** โœ“ |
32
+
33
+ > **AHTML JSON: every answer right.** AHTML compact: ~50% fewer tokens than HTML โ€” and still more accurate.
34
+
35
+ <details>
36
+ <summary><sub><i>How we measured this โ€” open for details</i></sub></summary>
37
+ <sub>
38
+
39
+ - Real API calls to **gpt-4o-mini, claude-haiku-4.5, gemini-2.5-flash, llama-3.3-70b** at temperature=0.
40
+ - 20 hand-graded questions an AI agent actually wants to know: *price, in stock?, SKU, return window, confirmation needed?, author, publication date,* etc.
41
+ - Tokens counted with the official OpenAI + Anthropic tokenizers (`gpt-tokenizer`, `@anthropic-ai/tokenizer`). No `text.length/4` guessing.
42
+ - Cost from real provider usage ร— public prices.
43
+ - Reproduce: `git clone https://github.com/DibbayajyotiRoy/AHTML && cp .env.example .env && bash scripts/run-llm-benchmark.sh`
44
+
45
+ [Full report](https://github.com/DibbayajyotiRoy/AHTML/blob/main/benchmark-results-llm.md) ยท [Source](https://github.com/DibbayajyotiRoy/AHTML/tree/main/examples/llm-benchmark)
46
+
47
+ </sub>
48
+ </details>
49
+
22
50
  ## Quickstart โ€” three minutes, three files
23
51
 
24
52
  ### 1. Declare snapshots
@@ -92,24 +120,6 @@ export const { GET } = createLlmsTxtRoute();
92
120
  | `/.well-known/ahtml.json` | Discovery manifest | Any AHTML-aware agent |
93
121
  | `/llms.txt` | Markdown | IDE agents (Cursor, Continue, Cline) |
94
122
 
95
- ## Honest benchmark
96
-
97
- Measured live with `gpt-tokenizer` (OpenAI's tiktoken) and
98
- `@anthropic-ai/tokenizer` (Anthropic's official). Same source, four
99
- serializations:
100
-
101
- | Archetype | Raw HTML | AHTML compact | ร— fewer tokens |
102
- |---|---:|---:|---:|
103
- | Product detail | 4,269 | 581 | **7.3ร—** |
104
- | News article | 2,662 | 521 | **5.1ร—** |
105
- | SaaS dashboard | 3,328 | 741 | **4.5ร—** |
106
-
107
- These are on lean (~10โ€“15 KB) HTML. Real production HTML
108
- (200โ€“500 KB Shopify product pages) compresses 50โ€“100ร— because the
109
- snapshot stays near-constant while HTML scales with chrome.
110
-
111
- Reproduce: clone [the repo](https://github.com/DibbayajyotiRoy/AHTML) and
112
- `npm run benchmark`.
113
123
 
114
124
  ## Documentation
115
125
 
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../src/handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAKL,KAAK,QAAQ,EACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzD,MAAM,MAAM,eAAe,GAAG,CAC5B,YAAY,EAAE,MAAM,EAAE,EACtB,GAAG,EAAE,OAAO,KACT,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC;AAQhD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IAAE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,CAG5H;AAWD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,eAAe,EAAE,cAAc,CAAC,EAAE,WAAW;eAC7D,OAAO,OAAO;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,GAAG;YAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAA;KAAE,KAAG,OAAO,CAAC,QAAQ,CAAC;gBAwE/F,OAAO,OAAO;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,GAAG;YAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAA;KAAE,KAAG,OAAO,CAAC,QAAQ,CAAC;EAM1H"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../src/handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAKL,KAAK,QAAQ,EACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzD,MAAM,MAAM,eAAe,GAAG,CAC5B,YAAY,EAAE,MAAM,EAAE,EACtB,GAAG,EAAE,OAAO,KACT,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC;AAQhD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IAAE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,CAG5H;AAWD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,eAAe,EAAE,cAAc,CAAC,EAAE,WAAW;eAC7D,OAAO,OAAO;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,GAAG;YAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAA;KAAE,KAAG,OAAO,CAAC,QAAQ,CAAC;gBAgF/F,OAAO,OAAO;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,GAAG;YAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAA;KAAE,KAAG,OAAO,CAAC,QAAQ,CAAC;EAM1H"}
package/dist/handler.js CHANGED
@@ -70,6 +70,14 @@ export function createAHTMLRoute(builder, configOverride) {
70
70
  if (prev && (prev.etag === sinceEtag || computeEtag(prev) === sinceEtag)) {
71
71
  const d = diff(prev, snap);
72
72
  cacheSet(cacheKey, snap);
73
+ // Optimization: when there are no changes, return 304 โ€” saves
74
+ // ~150 B per page on no-change recrawls at scale.
75
+ if (d.changes.length === 0) {
76
+ return new Response(null, {
77
+ status: 304,
78
+ headers: { etag, 'cache-control': cacheControl(snap, config) },
79
+ });
80
+ }
73
81
  return new Response(JSON.stringify(d), {
74
82
  status: 200,
75
83
  headers: {
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../src/handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../src/handler.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,24 +1,51 @@
1
1
  {
2
2
  "name": "@ahtmljs/next",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "description": "Next.js plugin for AHTML. Turns your existing Next.js app into an MCP server, an OpenAPI provider, a JSON-LD source, and a token-optimal semantic snapshot โ€” all from one plugin. Zero migration.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
8
8
  "exports": {
9
- ".": { "types": "./dist/index.d.ts", "import": "./dist/index.js" },
10
- "./handler": { "types": "./dist/handler.d.ts", "import": "./dist/handler.js" },
11
- "./well-known": { "types": "./dist/well-known.d.ts", "import": "./dist/well-known.js" },
12
- "./llms-txt": { "types": "./dist/llms-txt.d.ts", "import": "./dist/llms-txt.js" },
13
- "./extractors": { "types": "./dist/extractors/index.d.ts", "import": "./dist/extractors/index.js" },
14
- "./mcp": { "types": "./dist/mcp.d.ts", "import": "./dist/mcp.js" },
15
- "./openapi": { "types": "./dist/openapi.d.ts", "import": "./dist/openapi.js" }
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ },
13
+ "./handler": {
14
+ "types": "./dist/handler.d.ts",
15
+ "import": "./dist/handler.js"
16
+ },
17
+ "./well-known": {
18
+ "types": "./dist/well-known.d.ts",
19
+ "import": "./dist/well-known.js"
20
+ },
21
+ "./llms-txt": {
22
+ "types": "./dist/llms-txt.d.ts",
23
+ "import": "./dist/llms-txt.js"
24
+ },
25
+ "./extractors": {
26
+ "types": "./dist/extractors/index.d.ts",
27
+ "import": "./dist/extractors/index.js"
28
+ },
29
+ "./mcp": {
30
+ "types": "./dist/mcp.d.ts",
31
+ "import": "./dist/mcp.js"
32
+ },
33
+ "./openapi": {
34
+ "types": "./dist/openapi.d.ts",
35
+ "import": "./dist/openapi.js"
36
+ }
37
+ },
38
+ "files": [
39
+ "dist",
40
+ "README.md"
41
+ ],
42
+ "publishConfig": {
43
+ "access": "public"
16
44
  },
17
- "files": ["dist", "README.md"],
18
- "publishConfig": { "access": "public" },
19
45
  "scripts": {
20
46
  "build": "tsc -p tsconfig.json",
21
- "dev": "tsc -p tsconfig.json --watch"
47
+ "dev": "tsc -p tsconfig.json --watch",
48
+ "test": "tsx --test src/__tests__/*.test.ts"
22
49
  },
23
50
  "repository": {
24
51
  "type": "git",
@@ -53,13 +80,15 @@
53
80
  "crawler"
54
81
  ],
55
82
  "dependencies": {
56
- "@ahtmljs/schema": "0.1.1"
83
+ "@ahtmljs/schema": "0.2.0"
57
84
  },
58
85
  "peerDependencies": {
59
86
  "next": ">=14"
60
87
  },
61
88
  "peerDependenciesMeta": {
62
- "next": { "optional": true }
89
+ "next": {
90
+ "optional": true
91
+ }
63
92
  },
64
93
  "license": "MIT"
65
94
  }