@adia-ai/a2ui-compose 0.6.1 → 0.6.4

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,32 @@ generator graph.
11
11
 
12
12
  _No pending changes._
13
13
 
14
+ ## [0.6.4] - 2026-05-18
15
+
16
+ ### v0.6.4 — Lockstep ride-along
17
+
18
+ TS Phase 5: a2ui.schema.json schema-driven codegen (§359). No source changes in this package.
19
+
20
+
21
+
22
+ ## [0.6.3] - 2026-05-18
23
+
24
+ ### v0.6.3 — Phase 5 branded IDs
25
+
26
+ `strategies/zettel/types.ts` adds `FragmentId`, `ChunkId`, `CompositionId` branded types.
27
+ **No BREAKING changes.**
28
+
29
+
30
+
31
+ ## [0.6.2] - 2026-05-18
32
+
33
+ ### v0.6.2 — TS-MIG-001 closed
34
+
35
+ `skipLibCheck: true` override removed from `tsconfig.json`. Phase 4 retrieval +
36
+ mcp `.ts` sources provide real declarations. **No BREAKING changes.**
37
+
38
+
39
+
14
40
  ## [0.6.1] - 2026-05-18
15
41
 
16
42
  ### v0.6.1 §355 — TypeScript-first Phase 3: `@adia-ai/a2ui-compose` sources → `.ts`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adia-ai/a2ui-compose",
3
- "version": "0.6.1",
3
+ "version": "0.6.4",
4
4
  "description": "AdiaUI A2UI compose engine \u2014 framework-agnostic. Takes natural-language intents + a catalog and produces A2UI protocol messages. Pairs with `@adia-ai/a2ui-retrieval` (intent classification, catalog lookup) and `@adia-ai/a2ui-validator` (schema + semantic checks).",
5
5
  "type": "module",
6
6
  "exports": {
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Zettel strategy — branded primitive ID types.
3
+ *
4
+ * Three distinct ID spaces coexist in the zettel strategy: fragment IDs,
5
+ * chunk IDs, and composition IDs. All are plain strings at runtime, but
6
+ * cross-contamination (passing a ChunkId where a FragmentId is expected)
7
+ * caused the v0.4.7 §72 regression. Branded types make that a compile error.
8
+ *
9
+ * Per migration plan §7.3 and spec §7.3: brand discipline is opt-in per
10
+ * ID type. We brand when two ID spaces of the same primitive type cross
11
+ * in the same function body. Internal helpers that never cross boundaries
12
+ * stay on plain `string`.
13
+ *
14
+ * No enums — `erasableSyntaxOnly` requires plain type aliases.
15
+ */
16
+
17
+ /** Unique identifier for a retrieved fragment within the corpus. */
18
+ export type FragmentId = string & { readonly __brand: 'FragmentId' };
19
+
20
+ /** Unique identifier for a chunk in the chunk-library. */
21
+ export type ChunkId = string & { readonly __brand: 'ChunkId' };
22
+
23
+ /** Unique identifier for a composed composition record. */
24
+ export type CompositionId = string & { readonly __brand: 'CompositionId' };
25
+
26
+ /**
27
+ * Cast a plain string to FragmentId at a trust boundary.
28
+ * Only use at the point where an ID originates (e.g. reading from corpus JSON).
29
+ */
30
+ export function asFragmentId(id: string): FragmentId {
31
+ return id as FragmentId;
32
+ }
33
+
34
+ export function asChunkId(id: string): ChunkId {
35
+ return id as ChunkId;
36
+ }
37
+
38
+ export function asCompositionId(id: string): CompositionId {
39
+ return id as CompositionId;
40
+ }