@adia-ai/a2ui-mcp 0.0.4 → 0.0.5

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/CHANGELOG.md CHANGED
@@ -11,6 +11,38 @@ zettel strategies.
11
11
 
12
12
  ---
13
13
 
14
+ ## [0.0.5] - 2026-04-28
15
+
16
+ **Retires the legacy exemplar auto-ingest.** Server boot no longer pulls
17
+ 70 patterns from the prose exemplars on every start. The chunk corpus
18
+ + chunk-aware synthesizer is the training surface now (`compose_from_chunks`
19
+ + `search_chunks` + `get_chunk` + `lookup_chunk` from 0.0.2).
20
+
21
+ ### Changed
22
+
23
+ - **`server.js` boot path** — removed the `auto-ingest` block that called
24
+ `ingestAll()` at startup. The runtime pattern library reverts from 225
25
+ (155 hand-authored + 70 ingested) to **155 hand-authored only**. Eval
26
+ metrics confirm no regression: `eval:diff zettel` still reports
27
+ coverage 83 / score 89; `smoke:chunks` still 33/33; `eval:chunk-synthesis`
28
+ still PASS at 100% / 9 retrieval / 1 synthesis on the hold-out set.
29
+ - **`test:a2ui` test 6 updated** — was asserting "post-ingest count ≥ 200
30
+ patterns"; now asserts the two training-corpus surfaces independently:
31
+ pattern library ≥ 100 hand-authored entries (155 today), chunk corpus
32
+ ≥ 500 unique chunks (701 today).
33
+
34
+ ### Dependencies
35
+
36
+ - Bumps `@adia-ai/a2ui-corpus` requirement from `^0.0.5` to `^0.0.6`.
37
+
38
+ ### Migration (none required)
39
+
40
+ - Pure runtime simplification. Existing MCP consumers experience the
41
+ same tool surface; the only observable change is faster boot (no
42
+ ingest round trip) and a smaller in-memory pattern library.
43
+
44
+ ---
45
+
14
46
  ## [0.0.4] - 2026-04-28
15
47
 
16
48
  Dependency-only bump to pull `@adia-ai/a2ui-corpus@^0.0.5` (one fewer
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adia-ai/a2ui-mcp",
3
- "version": "0.0.4",
3
+ "version": "0.0.5",
4
4
  "description": "AdiaUI A2UI MCP server. Exposes the compose engine over MCP with an engine selector for monolithic + zettel strategies.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -29,7 +29,7 @@
29
29
  "@adia-ai/a2ui-compose": "^0.0.1",
30
30
  "@adia-ai/a2ui-retrieval": "^0.0.1",
31
31
  "@adia-ai/a2ui-validator": "^0.0.1",
32
- "@adia-ai/a2ui-corpus": "^0.0.5",
32
+ "@adia-ai/a2ui-corpus": "^0.0.6",
33
33
  "zod": "^3.24.0"
34
34
  }
35
35
  }
@@ -236,28 +236,32 @@ if (!THINKING) {
236
236
  }
237
237
  }
238
238
 
239
- // ── Test 6: Training data ingestion ─────────────────────────────────
239
+ // ── Test 6: Training corpus surfaces ────────────────────────────────
240
+ // (The legacy exemplar extract → ingest path was retired 2026-04-28 in
241
+ // mcp 0.0.5. The chunk corpus is the training surface now.)
240
242
 
241
- console.log('\n6. Training data ingestion');
243
+ console.log('\n6. Training corpus surfaces');
242
244
 
245
+ // 6a. Hand-authored pattern library — should be ≥ 100 entries.
246
+ const patterns = listPatterns();
247
+ if (patterns.length >= 100) {
248
+ ok('Pattern library', `${patterns.length} hand-authored patterns`);
249
+ } else {
250
+ bad('Pattern library', `only ${patterns.length} (expected ≥ 100)`);
251
+ }
252
+
253
+ // 6b. Gen-UI chunk corpus — should be ≥ 500 unique chunks across
254
+ // page / panel / block kinds.
243
255
  try {
244
- const { ingestAll } = await import('../../corpus/scripts/ingest.js');
245
- const result = await ingestAll();
246
- if (result.registered >= 0 && result.pages > 0) {
247
- ok('Ingestion', `${result.pages} pages ${result.registered} new, ${result.replaced} replaced, ${result.skipped} skipped`);
256
+ const { getChunkIndex } = await import('../../corpus/scripts/chunk-library.js');
257
+ const idx = getChunkIndex();
258
+ if (idx && idx.unique_names >= 500 && idx.by_kind.block && idx.by_kind.page) {
259
+ ok('Chunk corpus', `${idx.unique_names} chunks (${idx.total_instances} instances; block=${idx.by_kind.block}, panel=${idx.by_kind.panel || 0}, page=${idx.by_kind.page})`);
248
260
  } else {
249
- bad('Ingestion', `unexpected result: ${JSON.stringify(result)}`);
261
+ bad('Chunk corpus', `unexpected index: ${JSON.stringify(idx)}`);
250
262
  }
251
263
  } catch (e) {
252
- bad('Ingestion', e.message);
253
- }
254
-
255
- // Final check: pattern count after ingestion
256
- const afterPatterns = listPatterns();
257
- if (afterPatterns.length >= 200) {
258
- ok('Post-ingest count', `${afterPatterns.length} patterns`);
259
- } else {
260
- bad('Post-ingest count', `only ${afterPatterns.length} (expected 200+)`);
264
+ bad('Chunk corpus', e.message);
261
265
  }
262
266
 
263
267
  // ── Summary ─────────────────────────────────────────────────────────
package/server.js CHANGED
@@ -752,16 +752,10 @@ plan to skip the LLM call and just materialize HTML.`,
752
752
  async function main() {
753
753
  const transport = new StdioServerTransport();
754
754
 
755
- // Auto-ingest training data into pattern library
756
- try {
757
- const { ingestAll } = await import('../corpus/scripts/ingest.js');
758
- const result = await ingestAll();
759
- if (result.registered > 0 || result.replaced > 0) {
760
- console.error(`Training: ingested ${result.registered} new + ${result.replaced} replaced patterns (${result.pages} pages, ${result.chunks} chunks)`);
761
- }
762
- } catch (e) {
763
- console.error(`Training: ingest skipped — ${e.message}`);
764
- }
755
+ // (Auto-ingest of exemplar-derived patterns retired 2026-04-28 in
756
+ // mcp 0.0.5. The chunk corpus + chunk-aware synthesizer are the
757
+ // training surface now; the legacy extract → ingest path that pulled
758
+ // 70 patterns from prose exemplars on every server boot is gone.)
765
759
 
766
760
  await server.connect(transport);
767
761
  const catalog = await getCatalog();