llmtxt 2026.4.1 → 2026.4.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/CHANGELOG.md CHANGED
@@ -7,6 +7,61 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [2026.4.3] - 2026-04-13
11
+
12
+ ### Added
13
+ - **multi-diff**: `multiWayDiff()` — LCS-aligned N-way comparison across up to 5 versions with per-line consensus, divergence, and insertion detection. WASM-backed via `multi_way_diff_wasm`
14
+ - **merge**: `cherryPickMerge()` — section-based cherry-pick merge from multiple versions. Heading-keyed claims, fill-from for unclaimed sections, provenance tracking. WASM-backed via `cherry_pick_merge_wasm`
15
+ - **types**: `MultiDiffResult`, `MultiDiffLine`, `MultiDiffVariant`, `MultiDiffStats`, `CherryPickResult`, `CherryPickProvenance`, `CherryPickStats` interfaces
16
+ - **types**: `"insertion"` line type added to `MultiDiffLine.type` union
17
+ - **backend**: `GET /documents/:slug/multi-diff?versions=2,3,4,5` — multi-version comparison endpoint
18
+ - **backend**: `POST /documents/:slug/merge` — cherry-pick merge endpoint with provenance in changelog
19
+ - **backend**: `agentId` alias accepted on PUT and POST /compress (maps to `createdBy`)
20
+ - **backend**: `targetState` alias accepted on POST /transition (maps to `state`)
21
+ - **backend**: HTTP 423 Locked response on PUT/merge/patch for LOCKED and ARCHIVED documents
22
+ - **backend**: `requireOwnerAllowAnon` middleware — anonymous doc owners can create signed URLs and transition state
23
+ - **backend**: Concurrent version creation wrapped in `BEGIN IMMEDIATE` transactions with retry on UNIQUE violation
24
+ - **backend**: Duplicate approval/rejection prevention (409 Conflict on second attempt from same reviewer)
25
+ - **backend**: Rejections cleared on REVIEW to DRAFT transition for fresh review cycles
26
+ - **backend**: autoLock race protection with atomic `WHERE state=REVIEW` check
27
+ - **frontend**: `MultiDiffViewer` component — version selector, consensus visualization, expandable divergent variants, insertion line rendering
28
+ - **frontend**: `MergeBuilder` component — cherry-pick merge UI with preview, provenance colors, inline validation
29
+ - **frontend**: Version selector dropdown on Content tab with "Version N of M" indicator
30
+ - **frontend**: Token stats clearly label original vs compressed counts
31
+ - **frontend**: Favicons, OG meta tags, Twitter cards, per-page dynamic OG tags
32
+ - **infra**: Cloudflare Configuration Rule bypassing bot detection for api.llmtxt.my
33
+
34
+ ### Changed
35
+ - **backend**: Anonymous sessions can now use lifecycle transitions, approvals, rejections, patches, and signed URL creation
36
+ - **backend**: Merge provenance `fromVersion` uses actual DB version numbers instead of 0-based indices
37
+ - **backend**: Similarity results use `title` field instead of `sectionTitle` (consistent with overview/plan-retrieval)
38
+ - **frontend**: Renamed `state` variable to `docState` to avoid Svelte 5 `$state` rune collision (77 svelte-check errors resolved)
39
+
40
+ ### Fixed
41
+ - Multi-diff false divergence when versions have line insertions/deletions (LCS alignment rewrite)
42
+ - Cherry-pick merge false "Overlapping line ranges" error on multi-version section merge
43
+ - Cherry-pick merge section duplication with hierarchical headings
44
+ - Concurrent version creation race condition (transaction + retry)
45
+ - HTTP 500 from async transaction callbacks in better-sqlite3 (switched to synchronous)
46
+ - Rejection permanently blocking consensus (now cleared on REVIEW to DRAFT)
47
+ - autoLock creating duplicate state transition records on simultaneous approvals
48
+ - LOCKED documents accepting write operations
49
+
50
+ ## [2026.4.2] - 2026-04-01
51
+
52
+ ### Added
53
+ - **diff**: `structuredDiff()` — WASM-backed structured line-level diff returning interleaved `{type, content, oldLine, newLine}` lines with summary counts. Replaces client-side patch parsing and backend set-based diff computation
54
+ - **types**: `StructuredDiffLine` and `StructuredDiffResult` interfaces exported from `llmtxt`
55
+
56
+ ### Changed
57
+ - **diff**: Backend `/documents/:slug/diff` endpoint now returns `lines` array (structured diff) instead of `addedLines`/`removedLines` string arrays
58
+ - **diff**: Frontend `DiffViewer` consumes structured diff lines directly from API — no more client-side unified diff parsing
59
+ - **backend**: PUT `/documents/:slug` now upserts contributor records with accurate token stats via `structuredDiff()`
60
+ - **frontend**: `Contributor` type aligned to actual DB schema fields (`agentId`, `versionsAuthored`, `lastContribution`)
61
+ - **frontend**: Version list redesigned as compact table rows with columns for version, changelog, tokens, contributor, and date
62
+ - **frontend**: Side-by-side comparison view now highlights added/removed lines vs base version
63
+ - **frontend**: Edit page uses `invalidateAll()` before navigation to prevent stale data
64
+
10
65
  ## [2026.4.1] - 2026-03-31
11
66
 
12
67
  ### Added
package/README.md CHANGED
@@ -17,6 +17,7 @@ npm install llmtxt
17
17
  import {
18
18
  compress, decompress, generateId, hashContent,
19
19
  createPatch, applyPatch, generateSignedUrl,
20
+ multiWayDiff, cherryPickMerge,
20
21
  } from 'llmtxt';
21
22
 
22
23
  const compressed = await compress('Hello world');
@@ -28,6 +29,27 @@ const patch = createPatch('hello\n', 'hello world\n');
28
29
  const rebuilt = applyPatch('hello\n', patch);
29
30
  ```
30
31
 
32
+ ## Multi-Way Diff and Cherry-Pick Merge
33
+
34
+ ```ts
35
+ import { multiWayDiff, cherryPickMerge } from 'llmtxt';
36
+
37
+ // Compare multiple agent versions against a base using LCS alignment
38
+ const diff = multiWayDiff(base, JSON.stringify([v2Content, v3Content, v4Content]));
39
+ // Returns MultiDiffResult: { sections, totalVersions, baseTokenCount }
40
+
41
+ // Selectively merge sections from different versions
42
+ const merged = cherryPickMerge(
43
+ base,
44
+ JSON.stringify([v2Content, v3Content]),
45
+ JSON.stringify([
46
+ { section: 'Introduction', fromVersion: 1 },
47
+ { section: 'API Reference', fromVersion: 2 },
48
+ ])
49
+ );
50
+ // Returns CherryPickResult: { content, provenance, stats }
51
+ ```
52
+
31
53
  ## SDK (Collaborative Documents)
32
54
 
33
55
  ```ts
@@ -50,6 +72,8 @@ import { buildGraph } from 'llmtxt/graph';
50
72
  - Compression, hashing, base62, token estimation (Rust WASM)
51
73
  - Signed URL generation and verification
52
74
  - Unified diff patch creation, application, version reconstruction
75
+ - Multi-way diff across up to 5 agent versions (LCS-aligned, WASM)
76
+ - Cherry-pick merge: selectively assemble sections from multiple versions (WASM)
53
77
  - Progressive disclosure: overview, section extraction, content search
54
78
  - Collaborative document lifecycle (DRAFT, REVIEW, LOCKED, ARCHIVED)
55
79
  - Version stack management with attribution tracking
@@ -4,6 +4,6 @@
4
4
  * All portable primitives delegate to the Rust WASM module — single
5
5
  * source of truth, zero drift between TypeScript and Rust consumers.
6
6
  */
7
- export { encodeBase62, decodeBase62, compress, decompress, generateId, hashContent, calculateTokens, calculateCompressionRatio, computeDiff, } from './wasm.js';
8
- export type { DiffResult } from './wasm.js';
7
+ export { encodeBase62, decodeBase62, compress, decompress, generateId, hashContent, calculateTokens, calculateCompressionRatio, computeDiff, structuredDiff, } from './wasm.js';
8
+ export type { DiffResult, StructuredDiffLine, StructuredDiffResult } from './wasm.js';
9
9
  //# sourceMappingURL=compression.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compression.d.ts","sourceRoot":"","sources":["../src/compression.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,UAAU,EACV,WAAW,EACX,eAAe,EACf,yBAAyB,EACzB,WAAW,GACZ,MAAM,WAAW,CAAC;AAEnB,YAAY,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"compression.d.ts","sourceRoot":"","sources":["../src/compression.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,UAAU,EACV,WAAW,EACX,eAAe,EACf,yBAAyB,EACzB,WAAW,EACX,cAAc,GACf,MAAM,WAAW,CAAC;AAEnB,YAAY,EAAE,UAAU,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC"}
@@ -4,5 +4,5 @@
4
4
  * All portable primitives delegate to the Rust WASM module — single
5
5
  * source of truth, zero drift between TypeScript and Rust consumers.
6
6
  */
7
- export { encodeBase62, decodeBase62, compress, decompress, generateId, hashContent, calculateTokens, calculateCompressionRatio, computeDiff, } from './wasm.js';
7
+ export { encodeBase62, decodeBase62, compress, decompress, generateId, hashContent, calculateTokens, calculateCompressionRatio, computeDiff, structuredDiff, } from './wasm.js';
8
8
  //# sourceMappingURL=compression.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compression.js","sourceRoot":"","sources":["../src/compression.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,UAAU,EACV,WAAW,EACX,eAAe,EACf,yBAAyB,EACzB,WAAW,GACZ,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"compression.js","sourceRoot":"","sources":["../src/compression.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,UAAU,EACV,WAAW,EACX,eAAe,EACf,yBAAyB,EACzB,WAAW,EACX,cAAc,GACf,MAAM,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"disclosure.d.ts","sourceRoot":"","sources":["../src/disclosure.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"disclosure.d.ts","sourceRoot":"","sources":["../src/disclosure.ts"],"names":[],"mappings":"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"}
@@ -126,7 +126,13 @@ export function detectDocumentFormat(content) {
126
126
  JSON.parse(trimmed);
127
127
  return 'json';
128
128
  }
129
- catch { /* not JSON */ }
129
+ catch {
130
+ // Content looks like JSON (starts with { or [) but has parse errors.
131
+ // Still treat as JSON for section parsing — better than falling to "text".
132
+ const jsonSignals = [/"[^"]*"\s*:/, /^\s*[{[]/m, /[}\]]\s*$/m];
133
+ if (jsonSignals.filter(r => r.test(trimmed)).length >= 2)
134
+ return 'json';
135
+ }
130
136
  }
131
137
  const markdownSignals = [
132
138
  /^#{1,6}\s/m,
@@ -351,7 +357,43 @@ function parseJsonSections(content, lines) {
351
357
  }
352
358
  }
353
359
  }
354
- catch { /* not valid JSON */ }
360
+ catch {
361
+ // JSON.parse failed — use regex fallback to find top-level keys.
362
+ // Match lines like ` "keyName": ...` at indent level 2 (top-level in pretty-printed JSON).
363
+ const topLevelKeyPattern = /^ "[^"]+"\s*:/;
364
+ let sectionStart = -1;
365
+ let sectionTitle = '';
366
+ for (let i = 0; i < lines.length; i++) {
367
+ const match = lines[i].match(/^ "([^"]+)"\s*:/);
368
+ if (match) {
369
+ if (sectionStart >= 0) {
370
+ const sectionContent = lines.slice(sectionStart, i).join('\n');
371
+ sections.push({
372
+ title: sectionTitle,
373
+ depth: 0,
374
+ startLine: sectionStart + 1,
375
+ endLine: i,
376
+ tokenCount: calculateTokens(sectionContent),
377
+ type: 'json-key',
378
+ });
379
+ }
380
+ sectionStart = i;
381
+ sectionTitle = match[1];
382
+ }
383
+ }
384
+ // Push final section
385
+ if (sectionStart >= 0) {
386
+ const sectionContent = lines.slice(sectionStart, lines.length).join('\n');
387
+ sections.push({
388
+ title: sectionTitle,
389
+ depth: 0,
390
+ startLine: sectionStart + 1,
391
+ endLine: lines.length,
392
+ tokenCount: calculateTokens(sectionContent),
393
+ type: 'json-key',
394
+ });
395
+ }
396
+ }
355
397
  return sections;
356
398
  }
357
399
  function parseMarkdownSections(lines) {
@@ -450,6 +492,23 @@ function parseTextSections(lines) {
450
492
  if (isBlank)
451
493
  currentStart = i + 1;
452
494
  }
495
+ // If the entire document is one paragraph (no blank lines), chunk by ~50 lines
496
+ if (sections.length <= 1 && lines.length > 50) {
497
+ const chunkSize = 50;
498
+ sections.length = 0;
499
+ for (let i = 0; i < lines.length; i += chunkSize) {
500
+ const end = Math.min(i + chunkSize, lines.length);
501
+ const sectionContent = lines.slice(i, end).join('\n');
502
+ sections.push({
503
+ title: `Lines ${i + 1}-${end}`,
504
+ depth: 0,
505
+ startLine: i + 1,
506
+ endLine: end,
507
+ tokenCount: calculateTokens(sectionContent),
508
+ type: 'heading',
509
+ });
510
+ }
511
+ }
453
512
  return sections;
454
513
  }
455
514
  // ── JSONPath Resolution ─────────────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"disclosure.js","sourceRoot":"","sources":["../src/disclosure.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"disclosure.js","sourceRoot":"","sources":["../src/disclosure.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -5,8 +5,8 @@
5
5
  * collaborative document lifecycle, versioning, and retrieval planning.
6
6
  * Provider-agnostic. Only external dependency: zod.
7
7
  */
8
- export { encodeBase62, decodeBase62, compress, decompress, generateId, hashContent, calculateTokens, calculateCompressionRatio, computeDiff, } from './compression.js';
9
- export type { DiffResult } from './compression.js';
8
+ export { encodeBase62, decodeBase62, compress, decompress, generateId, hashContent, calculateTokens, calculateCompressionRatio, computeDiff, structuredDiff, } from './compression.js';
9
+ export type { DiffResult, StructuredDiffLine, StructuredDiffResult } from './compression.js';
10
10
  export { validateJson, validateText, detectFormat, validateContent, autoValidate, DEFAULT_MAX_CONTENT_BYTES, DEFAULT_MAX_LINE_BYTES, } from './validation.js';
11
11
  export type { ValidationResult, ValidationError, ValidateContentOptions, } from './validation.js';
12
12
  export { jsonFormatSchema, textFormatSchema, markdownFormatSchema, promptMessageSchema, promptV1Schema, predefinedSchemas, isPredefinedSchema, getPredefinedSchema, compressRequestSchema, decompressRequestSchema, searchRequestSchema, } from './schemas.js';
@@ -18,6 +18,8 @@ export type { CacheStats, LRUCacheOptions, } from './cache.js';
18
18
  export { computeSignature, computeSignatureWithLength, computeOrgSignature, computeOrgSignatureWithLength, generateSignedUrl, generateOrgSignedUrl, verifySignedUrl, verifyOrgSignedUrl, generateTimedUrl, deriveSigningKey, isExpired, } from './signed-url.js';
19
19
  export type { SignedUrlParams, OrgSignedUrlParams, SignedUrlConfig, VerifyResult, } from './signed-url.js';
20
20
  export { createPatch, applyPatch, reconstructVersion, squashPatchesWasm } from './patch.js';
21
+ export { multiWayDiff, cherryPickMerge } from './patch.js';
22
+ export type { MultiDiffVariant, MultiDiffLine, MultiDiffStats, MultiDiffResult, CherryPickProvenance, CherryPickStats, CherryPickResult, } from './patch.js';
21
23
  export { compressSnapshot, decompressSnapshot, compressSessionData, decompressSessionData, snapshotSummary, } from './snapshot.js';
22
24
  export type { SnapshotMeta, CompressedSnapshot, SnapshotOptions, } from './snapshot.js';
23
25
  export { createClient } from './client.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,UAAU,EACV,WAAW,EACX,eAAe,EACf,yBAAyB,EACzB,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGnD,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,oBAAoB,EACpB,UAAU,EACV,UAAU,EACV,cAAc,EACd,QAAQ,EACR,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,aAAa,GACd,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,gBAAgB,EAChB,aAAa,EACb,UAAU,GACX,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,OAAO,EACP,gBAAgB,EAChB,YAAY,EACZ,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,YAAY,EACV,UAAU,EACV,eAAe,GAChB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,gBAAgB,EAChB,0BAA0B,EAC1B,mBAAmB,EACnB,6BAA6B,EAC7B,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,GACV,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,YAAY,GACb,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAG5F,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,eAAe,GAChB,MAAM,eAAe,CAAC;AAEvB,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,eAAe,GAChB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,YAAY,EACV,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,aAAa,EACb,YAAY,EACZ,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,SAAS,EACT,SAAS,GACV,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,SAAS,EACT,SAAS,EACT,cAAc,EACd,YAAY,GACb,MAAM,YAAY,CAAC;AAGpB,YAAY,EACV,aAAa,EACb,YAAY,EACZ,WAAW,EACX,cAAc,EACd,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,YAAY,EACV,aAAa,EACb,eAAe,EACf,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,cAAc,EACd,MAAM,EACN,cAAc,EACd,cAAc,GACf,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,cAAc,EACd,aAAa,EACb,gBAAgB,GACjB,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -6,7 +6,7 @@
6
6
  * Provider-agnostic. Only external dependency: zod.
7
7
  */
8
8
  // ── Compression & Encoding ──────────────────────────────────────
9
- export { encodeBase62, decodeBase62, compress, decompress, generateId, hashContent, calculateTokens, calculateCompressionRatio, computeDiff, } from './compression.js';
9
+ export { encodeBase62, decodeBase62, compress, decompress, generateId, hashContent, calculateTokens, calculateCompressionRatio, computeDiff, structuredDiff, } from './compression.js';
10
10
  // ── Validation ──────────────────────────────────────────────────
11
11
  export { validateJson, validateText, detectFormat, validateContent, autoValidate, DEFAULT_MAX_CONTENT_BYTES, DEFAULT_MAX_LINE_BYTES, } from './validation.js';
12
12
  // ── Schemas ─────────────────────────────────────────────────────
@@ -19,6 +19,8 @@ export { LRUCache } from './cache.js';
19
19
  export { computeSignature, computeSignatureWithLength, computeOrgSignature, computeOrgSignatureWithLength, generateSignedUrl, generateOrgSignedUrl, verifySignedUrl, verifyOrgSignedUrl, generateTimedUrl, deriveSigningKey, isExpired, } from './signed-url.js';
20
20
  // ── Patching ───────────────────────────────────────────────────
21
21
  export { createPatch, applyPatch, reconstructVersion, squashPatchesWasm } from './patch.js';
22
+ // ── Multi-way Diff & Cherry-Pick Merge ─────────────────────────
23
+ export { multiWayDiff, cherryPickMerge } from './patch.js';
22
24
  // ── Snapshot Compression ───────────────────────────────────────
23
25
  export { compressSnapshot, decompressSnapshot, compressSessionData, decompressSessionData, snapshotSummary, } from './snapshot.js';
24
26
  // ── Client ─────────────────────────────────────────────────────
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,mEAAmE;AACnE,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,UAAU,EACV,WAAW,EACX,eAAe,EACf,yBAAyB,EACzB,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAI1B,mEAAmE;AACnE,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AAQzB,mEAAmE;AACnE,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AActB,mEAAmE;AACnE,OAAO,EACL,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,gBAAgB,EAChB,aAAa,EACb,UAAU,GACX,MAAM,iBAAiB,CAAC;AASzB,mEAAmE;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAOtC,mEAAmE;AACnE,OAAO,EACL,gBAAgB,EAChB,0BAA0B,EAC1B,mBAAmB,EACnB,6BAA6B,EAC7B,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,GACV,MAAM,iBAAiB,CAAC;AASzB,kEAAkE;AAClE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE5F,kEAAkE;AAClE,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,eAAe,GAChB,MAAM,eAAe,CAAC;AAQvB,kEAAkE;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAU3C,kEAAkE;AAClE,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAEzB,kEAAkE;AAClE,OAAO,EACL,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,SAAS,EACT,SAAS,GACV,MAAM,YAAY,CAAC;AA2BpB,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,mEAAmE;AACnE,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,UAAU,EACV,WAAW,EACX,eAAe,EACf,yBAAyB,EACzB,WAAW,EACX,cAAc,GACf,MAAM,kBAAkB,CAAC;AAI1B,mEAAmE;AACnE,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AAQzB,mEAAmE;AACnE,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AActB,mEAAmE;AACnE,OAAO,EACL,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,gBAAgB,EAChB,aAAa,EACb,UAAU,GACX,MAAM,iBAAiB,CAAC;AASzB,mEAAmE;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAOtC,mEAAmE;AACnE,OAAO,EACL,gBAAgB,EAChB,0BAA0B,EAC1B,mBAAmB,EACnB,6BAA6B,EAC7B,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,GACV,MAAM,iBAAiB,CAAC;AASzB,kEAAkE;AAClE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE5F,kEAAkE;AAClE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAW3D,kEAAkE;AAClE,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,eAAe,GAChB,MAAM,eAAe,CAAC;AAQvB,kEAAkE;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAU3C,kEAAkE;AAClE,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAEzB,kEAAkE;AAClE,OAAO,EACL,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,SAAS,EACT,SAAS,GACV,MAAM,YAAY,CAAC;AA2BpB,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC"}
package/dist/patch.d.ts CHANGED
@@ -5,4 +5,6 @@
5
5
  * apply them deterministically using the same Rust core as native consumers.
6
6
  */
7
7
  export { createPatch, applyPatch, reconstructVersion, squashPatchesWasm } from './wasm.js';
8
+ export { multiWayDiff, cherryPickMerge } from './wasm.js';
9
+ export type { MultiDiffVariant, MultiDiffLine, MultiDiffStats, MultiDiffResult, CherryPickProvenance, CherryPickStats, CherryPickResult, } from './wasm.js';
8
10
  //# sourceMappingURL=patch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../src/patch.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../src/patch.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC1D,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,gBAAgB,GACjB,MAAM,WAAW,CAAC"}
package/dist/patch.js CHANGED
@@ -5,4 +5,5 @@
5
5
  * apply them deterministically using the same Rust core as native consumers.
6
6
  */
7
7
  export { createPatch, applyPatch, reconstructVersion, squashPatchesWasm } from './wasm.js';
8
+ export { multiWayDiff, cherryPickMerge } from './wasm.js';
8
9
  //# sourceMappingURL=patch.js.map
package/dist/patch.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"patch.js","sourceRoot":"","sources":["../src/patch.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"patch.js","sourceRoot":"","sources":["../src/patch.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC"}
package/dist/wasm.d.ts CHANGED
@@ -25,4 +25,93 @@ export interface DiffResult {
25
25
  removedTokens: number;
26
26
  }
27
27
  export declare function computeDiff(oldText: string, newText: string): DiffResult;
28
+ /** A single line in a structured diff with type annotation and line numbers. */
29
+ export interface StructuredDiffLine {
30
+ type: 'context' | 'added' | 'removed';
31
+ content: string;
32
+ oldLine: number | null;
33
+ newLine: number | null;
34
+ }
35
+ /** Full structured diff result with interleaved lines and summary counts. */
36
+ export interface StructuredDiffResult {
37
+ lines: StructuredDiffLine[];
38
+ addedLineCount: number;
39
+ removedLineCount: number;
40
+ addedTokens: number;
41
+ removedTokens: number;
42
+ }
43
+ /** Compute a structured line-level diff between two texts via the Rust LCS algorithm. */
44
+ export declare function structuredDiff(oldText: string, newText: string): StructuredDiffResult;
45
+ /** A single version variant at a divergent line position. */
46
+ export interface MultiDiffVariant {
47
+ versionIndex: number;
48
+ content: string;
49
+ }
50
+ /** One line entry in a multi-way diff result. */
51
+ export interface MultiDiffLine {
52
+ lineNumber: number;
53
+ /** "consensus" when all versions agree, "divergent" when versions differ,
54
+ * "insertion" when a version adds a line not present in the base. */
55
+ type: 'consensus' | 'divergent' | 'insertion';
56
+ content: string;
57
+ /** How many versions have `content` at this position. */
58
+ agreement: number;
59
+ /** Total number of versions (including the base). */
60
+ total: number;
61
+ /** Per-version contents when type is "divergent"; empty for "consensus". */
62
+ variants: MultiDiffVariant[];
63
+ }
64
+ /** Aggregate statistics for a multi-way diff. */
65
+ export interface MultiDiffStats {
66
+ totalLines: number;
67
+ consensusLines: number;
68
+ divergentLines: number;
69
+ consensusPercentage: number;
70
+ }
71
+ /** Full result of a multi-way diff. */
72
+ export interface MultiDiffResult {
73
+ baseVersion: number;
74
+ versionCount: number;
75
+ lines: MultiDiffLine[];
76
+ stats: MultiDiffStats;
77
+ }
78
+ /**
79
+ * Compute a multi-way diff across a base version and up to 4 additional versions.
80
+ *
81
+ * @param base - Base version content (typically v1).
82
+ * @param versionsJson - JSON array of strings, one per additional version.
83
+ * @returns Parsed MultiDiffResult.
84
+ * @throws Error if the Rust core returns an error object.
85
+ */
86
+ export declare function multiWayDiff(base: string, versionsJson: string): MultiDiffResult;
87
+ /** A single provenance entry in the cherry-pick merged output. */
88
+ export interface CherryPickProvenance {
89
+ lineStart: number;
90
+ lineEnd: number;
91
+ fromVersion: number;
92
+ fillFrom?: boolean;
93
+ }
94
+ /** Statistics for a cherry-pick merge operation. */
95
+ export interface CherryPickStats {
96
+ totalLines: number;
97
+ sourcesUsed: number;
98
+ sectionsExtracted: number;
99
+ lineRangesExtracted: number;
100
+ }
101
+ /** Return value of a cherry-pick merge operation. */
102
+ export interface CherryPickResult {
103
+ content: string;
104
+ provenance: CherryPickProvenance[];
105
+ stats: CherryPickStats;
106
+ }
107
+ /**
108
+ * Assemble document content from line ranges and sections across multiple versions.
109
+ *
110
+ * @param base - Base version content (index 0 if not supplied in versionsJson).
111
+ * @param versionsJson - JSON object mapping version index strings to content strings.
112
+ * @param selectionJson - JSON selection spec `{ sources: [...], fillFrom?: number }`.
113
+ * @returns Parsed CherryPickResult.
114
+ * @throws Error if the Rust core returns an error object.
115
+ */
116
+ export declare function cherryPickMerge(base: string, versionsJson: string, selectionJson: string): CherryPickResult;
28
117
  //# sourceMappingURL=wasm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wasm.d.ts","sourceRoot":"","sources":["../src/wasm.ts"],"names":[],"mappings":"AAYA,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAG5D;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE9D;AAID,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD;AAID,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAID,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD;AAID,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD;AAID,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,GACrB,MAAM,CAER;AAID,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,MAAM,CAER;AAED,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,MAAM,CAER;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,MAAM,CAER;AAED,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,MAAM,CAER;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEvD;AAKD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE5F;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAE3E;AAID,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAE/E;AAID,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAEtD;AAID,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,CAUxE"}
1
+ {"version":3,"file":"wasm.d.ts","sourceRoot":"","sources":["../src/wasm.ts"],"names":[],"mappings":"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"}
package/dist/wasm.js CHANGED
@@ -89,4 +89,42 @@ export function computeDiff(oldText, newText) {
89
89
  result.free();
90
90
  return out;
91
91
  }
92
+ /** Compute a structured line-level diff between two texts via the Rust LCS algorithm. */
93
+ export function structuredDiff(oldText, newText) {
94
+ const json = wasmModule.structured_diff(oldText, newText);
95
+ return JSON.parse(json);
96
+ }
97
+ /**
98
+ * Compute a multi-way diff across a base version and up to 4 additional versions.
99
+ *
100
+ * @param base - Base version content (typically v1).
101
+ * @param versionsJson - JSON array of strings, one per additional version.
102
+ * @returns Parsed MultiDiffResult.
103
+ * @throws Error if the Rust core returns an error object.
104
+ */
105
+ export function multiWayDiff(base, versionsJson) {
106
+ const json = wasmModule.multi_way_diff_wasm(base, versionsJson);
107
+ const parsed = JSON.parse(json);
108
+ if (parsed.error) {
109
+ throw new Error(`multiWayDiff failed: ${parsed.error}`);
110
+ }
111
+ return parsed;
112
+ }
113
+ /**
114
+ * Assemble document content from line ranges and sections across multiple versions.
115
+ *
116
+ * @param base - Base version content (index 0 if not supplied in versionsJson).
117
+ * @param versionsJson - JSON object mapping version index strings to content strings.
118
+ * @param selectionJson - JSON selection spec `{ sources: [...], fillFrom?: number }`.
119
+ * @returns Parsed CherryPickResult.
120
+ * @throws Error if the Rust core returns an error object.
121
+ */
122
+ export function cherryPickMerge(base, versionsJson, selectionJson) {
123
+ const json = wasmModule.cherry_pick_merge_wasm(base, versionsJson, selectionJson);
124
+ const parsed = JSON.parse(json);
125
+ if (parsed.error) {
126
+ throw new Error(`cherryPickMerge failed: ${parsed.error}`);
127
+ }
128
+ return parsed;
129
+ }
92
130
  //# sourceMappingURL=wasm.js.map
package/dist/wasm.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"wasm.js","sourceRoot":"","sources":["../src/wasm.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAC;AAErD,mEAAmE;AAEnE,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAY;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAY;IAC3C,OAAO,UAAU,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,mEAAmE;AAEnE,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,OAAO,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,OAAO,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,mEAAmE;AAEnE,MAAM,UAAU,UAAU;IACxB,OAAO,UAAU,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC;AAED,mEAAmE;AAEnE,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,mEAAmE;AAEnE,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAC3C,CAAC;AAED,mEAAmE;AAEnE,MAAM,UAAU,yBAAyB,CACvC,YAAoB,EACpB,cAAsB;IAEtB,OAAO,UAAU,CAAC,2BAA2B,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;AAC9E,CAAC;AAED,mEAAmE;AAEnE,MAAM,UAAU,gBAAgB,CAC9B,IAAY,EACZ,OAAe,EACf,cAAsB,EACtB,SAAiB,EACjB,MAAc;IAEd,OAAO,UAAU,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AACxF,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,IAAY,EACZ,OAAe,EACf,cAAsB,EACtB,SAAiB,EACjB,MAAc,EACd,SAAiB;IAEjB,OAAO,UAAU,CAAC,6BAA6B,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AAC/G,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,IAAY,EACZ,OAAe,EACf,cAAsB,EACtB,KAAa,EACb,SAAiB,EACjB,MAAc;IAEd,OAAO,UAAU,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AACnG,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,IAAY,EACZ,OAAe,EACf,cAAsB,EACtB,KAAa,EACb,SAAiB,EACjB,MAAc,EACd,SAAiB;IAEjB,OAAO,UAAU,CAAC,iCAAiC,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AAC1H,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC7C,OAAO,UAAU,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAC/C,CAAC;AAGD,oEAAoE;AAEpE,MAAM,UAAU,WAAW,CAAC,QAAgB,EAAE,QAAgB;IAC5D,OAAO,UAAU,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,QAAgB,EAAE,SAAiB;IAC5D,OAAO,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,WAAmB,EAAE,MAAc;IAClF,OAAO,UAAU,CAAC,mBAAmB,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,WAAmB;IACjE,OAAO,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AACtD,CAAC;AAED,mEAAmE;AAEnE,MAAM,UAAU,kBAAkB,CAAC,CAAS,EAAE,CAAS;IACrD,OAAO,UAAU,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;IACrE,OAAO,UAAU,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,mEAAmE;AAEnE,MAAM,UAAU,SAAS,CAAC,WAAmB;IAC3C,OAAO,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAC5C,CAAC;AAWD,MAAM,UAAU,WAAW,CAAC,OAAe,EAAE,OAAe;IAC1D,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACzD,MAAM,GAAG,GAAe;QACtB,UAAU,EAAE,MAAM,CAAC,WAAW;QAC9B,YAAY,EAAE,MAAM,CAAC,aAAa;QAClC,WAAW,EAAE,MAAM,CAAC,YAAY;QAChC,aAAa,EAAE,MAAM,CAAC,cAAc;KACrC,CAAC;IACF,MAAM,CAAC,IAAI,EAAE,CAAC;IACd,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"wasm.js","sourceRoot":"","sources":["../src/wasm.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "llmtxt",
3
- "version": "2026.4.1",
3
+ "version": "2026.4.3",
4
4
  "description": "Primitives and SDK for LLM agent content workflows: compression, patching, progressive disclosure, signed URLs, collaborative document lifecycle, and retrieval planning",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -45,6 +45,17 @@ export enum DocumentState {
45
45
  */
46
46
  export function apply_patch(original: string, patch_text: string): string;
47
47
 
48
+ /**
49
+ * Compare multiple versions against a base version in a single call.
50
+ *
51
+ * `version_numbers` is a JSON array of version numbers to compare: `[1, 3, 5, 8]`.
52
+ * Each is reconstructed from the patch chain and diffed against `base_version`.
53
+ * Returns a JSON array of diff results.
54
+ *
55
+ * This avoids N separate WASM calls and parses the patches JSON once.
56
+ */
57
+ export function batch_diff_versions(base: string, patches_json: string, base_version: number, version_numbers_json: string): string;
58
+
48
59
  /**
49
60
  * Calculate the compression ratio (original / compressed), rounded to 2 decimals.
50
61
  * Returns 1.0 when `compressed_size` is 0.
@@ -56,6 +67,15 @@ export function calculate_compression_ratio(original_size: number, compressed_si
56
67
  */
57
68
  export function calculate_tokens(text: string): number;
58
69
 
70
+ /**
71
+ * WASM binding for [`cherry_pick_merge`].
72
+ *
73
+ * Takes base content, a JSON versions map, and a JSON selection spec.
74
+ * Returns a JSON-serialised `CherryPickResult` on success, or
75
+ * `{"error": "<message>"}` on failure.
76
+ */
77
+ export function cherry_pick_merge_wasm(base: string, versions_json: string, selection_json: string): string;
78
+
59
79
  /**
60
80
  * Compress a UTF-8 string using zlib-wrapped deflate (RFC 1950).
61
81
  *
@@ -225,6 +245,15 @@ export function is_valid_transition_str(from: string, to: string): boolean;
225
245
  */
226
246
  export function mark_stale_reviews(reviews_json: string, current_version: number): string;
227
247
 
248
+ /**
249
+ * WASM binding for [`multi_way_diff`].
250
+ *
251
+ * Takes base content and a JSON array of version strings.
252
+ * Returns a JSON-serialised `MultiDiffResult` on success, or
253
+ * `{"error": "<message>"}` on failure.
254
+ */
255
+ export function multi_way_diff_wasm(base: string, versions_json: string): string;
256
+
228
257
  /**
229
258
  * Apply a sequence of patches to base content, returning the content at the
230
259
  * target version. This avoids N WASM boundary crossings by performing all
@@ -244,6 +273,18 @@ export function reconstruct_version(base: string, patches_json: string, target:
244
273
  */
245
274
  export function squash_patches(base: string, patches_json: string): string;
246
275
 
276
+ /**
277
+ * Compute a structured line-level diff between two texts.
278
+ *
279
+ * Returns a JSON-serialized [`StructuredDiffResult`] with interleaved
280
+ * context, added, and removed lines including line numbers for both
281
+ * old and new text. This is the single source of truth for diff display.
282
+ *
283
+ * Uses the same LCS algorithm as [`compute_diff`] but produces full
284
+ * line-by-line output instead of just counts.
285
+ */
286
+ export function structured_diff(old_text: string, new_text: string): string;
287
+
247
288
  /**
248
289
  * Compute character-level n-gram Jaccard similarity between two texts.
249
290
  * Returns 0.0 (no overlap) to 1.0 (identical). Default n=3.
@@ -103,6 +103,46 @@ function apply_patch(original, patch_text) {
103
103
  }
104
104
  exports.apply_patch = apply_patch;
105
105
 
106
+ /**
107
+ * Compare multiple versions against a base version in a single call.
108
+ *
109
+ * `version_numbers` is a JSON array of version numbers to compare: `[1, 3, 5, 8]`.
110
+ * Each is reconstructed from the patch chain and diffed against `base_version`.
111
+ * Returns a JSON array of diff results.
112
+ *
113
+ * This avoids N separate WASM calls and parses the patches JSON once.
114
+ * @param {string} base
115
+ * @param {string} patches_json
116
+ * @param {number} base_version
117
+ * @param {string} version_numbers_json
118
+ * @returns {string}
119
+ */
120
+ function batch_diff_versions(base, patches_json, base_version, version_numbers_json) {
121
+ let deferred5_0;
122
+ let deferred5_1;
123
+ try {
124
+ const ptr0 = passStringToWasm0(base, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
125
+ const len0 = WASM_VECTOR_LEN;
126
+ const ptr1 = passStringToWasm0(patches_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
127
+ const len1 = WASM_VECTOR_LEN;
128
+ const ptr2 = passStringToWasm0(version_numbers_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
129
+ const len2 = WASM_VECTOR_LEN;
130
+ const ret = wasm.batch_diff_versions(ptr0, len0, ptr1, len1, base_version, ptr2, len2);
131
+ var ptr4 = ret[0];
132
+ var len4 = ret[1];
133
+ if (ret[3]) {
134
+ ptr4 = 0; len4 = 0;
135
+ throw takeFromExternrefTable0(ret[2]);
136
+ }
137
+ deferred5_0 = ptr4;
138
+ deferred5_1 = len4;
139
+ return getStringFromWasm0(ptr4, len4);
140
+ } finally {
141
+ wasm.__wbindgen_free(deferred5_0, deferred5_1, 1);
142
+ }
143
+ }
144
+ exports.batch_diff_versions = batch_diff_versions;
145
+
106
146
  /**
107
147
  * Calculate the compression ratio (original / compressed), rounded to 2 decimals.
108
148
  * Returns 1.0 when `compressed_size` is 0.
@@ -129,6 +169,37 @@ function calculate_tokens(text) {
129
169
  }
130
170
  exports.calculate_tokens = calculate_tokens;
131
171
 
172
+ /**
173
+ * WASM binding for [`cherry_pick_merge`].
174
+ *
175
+ * Takes base content, a JSON versions map, and a JSON selection spec.
176
+ * Returns a JSON-serialised `CherryPickResult` on success, or
177
+ * `{"error": "<message>"}` on failure.
178
+ * @param {string} base
179
+ * @param {string} versions_json
180
+ * @param {string} selection_json
181
+ * @returns {string}
182
+ */
183
+ function cherry_pick_merge_wasm(base, versions_json, selection_json) {
184
+ let deferred4_0;
185
+ let deferred4_1;
186
+ try {
187
+ const ptr0 = passStringToWasm0(base, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
188
+ const len0 = WASM_VECTOR_LEN;
189
+ const ptr1 = passStringToWasm0(versions_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
190
+ const len1 = WASM_VECTOR_LEN;
191
+ const ptr2 = passStringToWasm0(selection_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
192
+ const len2 = WASM_VECTOR_LEN;
193
+ const ret = wasm.cherry_pick_merge_wasm(ptr0, len0, ptr1, len1, ptr2, len2);
194
+ deferred4_0 = ret[0];
195
+ deferred4_1 = ret[1];
196
+ return getStringFromWasm0(ret[0], ret[1]);
197
+ } finally {
198
+ wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);
199
+ }
200
+ }
201
+ exports.cherry_pick_merge_wasm = cherry_pick_merge_wasm;
202
+
132
203
  /**
133
204
  * Compress a UTF-8 string using zlib-wrapped deflate (RFC 1950).
134
205
  *
@@ -690,6 +761,34 @@ function mark_stale_reviews(reviews_json, current_version) {
690
761
  }
691
762
  exports.mark_stale_reviews = mark_stale_reviews;
692
763
 
764
+ /**
765
+ * WASM binding for [`multi_way_diff`].
766
+ *
767
+ * Takes base content and a JSON array of version strings.
768
+ * Returns a JSON-serialised `MultiDiffResult` on success, or
769
+ * `{"error": "<message>"}` on failure.
770
+ * @param {string} base
771
+ * @param {string} versions_json
772
+ * @returns {string}
773
+ */
774
+ function multi_way_diff_wasm(base, versions_json) {
775
+ let deferred3_0;
776
+ let deferred3_1;
777
+ try {
778
+ const ptr0 = passStringToWasm0(base, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
779
+ const len0 = WASM_VECTOR_LEN;
780
+ const ptr1 = passStringToWasm0(versions_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
781
+ const len1 = WASM_VECTOR_LEN;
782
+ const ret = wasm.multi_way_diff_wasm(ptr0, len0, ptr1, len1);
783
+ deferred3_0 = ret[0];
784
+ deferred3_1 = ret[1];
785
+ return getStringFromWasm0(ret[0], ret[1]);
786
+ } finally {
787
+ wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);
788
+ }
789
+ }
790
+ exports.multi_way_diff_wasm = multi_way_diff_wasm;
791
+
693
792
  /**
694
793
  * Apply a sequence of patches to base content, returning the content at the
695
794
  * target version. This avoids N WASM boundary crossings by performing all
@@ -760,6 +859,37 @@ function squash_patches(base, patches_json) {
760
859
  }
761
860
  exports.squash_patches = squash_patches;
762
861
 
862
+ /**
863
+ * Compute a structured line-level diff between two texts.
864
+ *
865
+ * Returns a JSON-serialized [`StructuredDiffResult`] with interleaved
866
+ * context, added, and removed lines including line numbers for both
867
+ * old and new text. This is the single source of truth for diff display.
868
+ *
869
+ * Uses the same LCS algorithm as [`compute_diff`] but produces full
870
+ * line-by-line output instead of just counts.
871
+ * @param {string} old_text
872
+ * @param {string} new_text
873
+ * @returns {string}
874
+ */
875
+ function structured_diff(old_text, new_text) {
876
+ let deferred3_0;
877
+ let deferred3_1;
878
+ try {
879
+ const ptr0 = passStringToWasm0(old_text, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
880
+ const len0 = WASM_VECTOR_LEN;
881
+ const ptr1 = passStringToWasm0(new_text, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
882
+ const len1 = WASM_VECTOR_LEN;
883
+ const ret = wasm.structured_diff(ptr0, len0, ptr1, len1);
884
+ deferred3_0 = ret[0];
885
+ deferred3_1 = ret[1];
886
+ return getStringFromWasm0(ret[0], ret[1]);
887
+ } finally {
888
+ wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);
889
+ }
890
+ }
891
+ exports.structured_diff = structured_diff;
892
+
763
893
  /**
764
894
  * Compute character-level n-gram Jaccard similarity between two texts.
765
895
  * Returns 0.0 (no overlap) to 1.0 (identical). Default n=3.
Binary file
@@ -1,10 +1,9 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
3
  export const memory: WebAssembly.Memory;
4
- export const __wbg_diffresult_free: (a: number, b: number) => void;
5
4
  export const calculate_tokens: (a: number, b: number) => number;
5
+ export const cherry_pick_merge_wasm: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
6
6
  export const compress: (a: number, b: number) => [number, number, number, number];
7
- export const compute_diff: (a: number, b: number, c: number, d: number) => number;
8
7
  export const compute_org_signature: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) => [number, number];
9
8
  export const compute_org_signature_with_length: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number) => [number, number];
10
9
  export const compute_signature: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number];
@@ -12,25 +11,28 @@ export const compute_signature_with_length: (a: number, b: number, c: number, d:
12
11
  export const decode_base62: (a: number, b: number) => bigint;
13
12
  export const decompress: (a: number, b: number) => [number, number, number, number];
14
13
  export const derive_signing_key: (a: number, b: number) => [number, number];
15
- export const diffresult_added_lines: (a: number) => number;
16
- export const diffresult_added_tokens: (a: number) => number;
17
- export const diffresult_removed_lines: (a: number) => number;
18
- export const diffresult_removed_tokens: (a: number) => number;
19
14
  export const encode_base62: (a: bigint) => [number, number];
20
15
  export const generate_id: () => [number, number];
21
16
  export const hash_content: (a: number, b: number) => [number, number];
22
17
  export const is_expired: (a: number) => number;
18
+ export const multi_way_diff_wasm: (a: number, b: number, c: number, d: number) => [number, number];
23
19
  export const text_similarity: (a: number, b: number, c: number, d: number) => number;
24
20
  export const text_similarity_ngram: (a: number, b: number, c: number, d: number, e: number) => number;
25
21
  export const calculate_compression_ratio: (a: number, b: number) => number;
26
22
  export const apply_patch: (a: number, b: number, c: number, d: number) => [number, number, number, number];
23
+ export const batch_diff_versions: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number];
27
24
  export const compute_sections_modified: (a: number, b: number, c: number, d: number) => [number, number];
28
25
  export const create_patch: (a: number, b: number, c: number, d: number) => [number, number];
29
26
  export const diff_versions: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
30
27
  export const reconstruct_version: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
31
28
  export const squash_patches: (a: number, b: number, c: number, d: number) => [number, number, number, number];
32
- export const evaluate_approvals: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
33
- export const mark_stale_reviews: (a: number, b: number, c: number) => [number, number, number, number];
29
+ export const __wbg_diffresult_free: (a: number, b: number) => void;
30
+ export const compute_diff: (a: number, b: number, c: number, d: number) => number;
31
+ export const diffresult_added_lines: (a: number) => number;
32
+ export const diffresult_added_tokens: (a: number) => number;
33
+ export const diffresult_removed_lines: (a: number) => number;
34
+ export const diffresult_removed_tokens: (a: number) => number;
35
+ export const structured_diff: (a: number, b: number, c: number, d: number) => [number, number];
34
36
  export const is_editable: (a: number) => number;
35
37
  export const is_editable_str: (a: number, b: number) => number;
36
38
  export const is_terminal: (a: number) => number;
@@ -38,6 +40,8 @@ export const is_terminal_str: (a: number, b: number) => number;
38
40
  export const is_valid_transition: (a: number, b: number) => number;
39
41
  export const is_valid_transition_str: (a: number, b: number, c: number, d: number) => number;
40
42
  export const validate_transition: (a: number, b: number, c: number, d: number) => [number, number];
43
+ export const evaluate_approvals: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
44
+ export const mark_stale_reviews: (a: number, b: number, c: number) => [number, number, number, number];
41
45
  export const __wbindgen_exn_store: (a: number) => void;
42
46
  export const __externref_table_alloc: () => number;
43
47
  export const __wbindgen_externrefs: WebAssembly.Table;
package/wasm/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "llmtxt-core",
3
3
  "description": "Core primitives for llmtxt: compression, patching, hashing, signing, and encoding",
4
- "version": "2026.4.1",
4
+ "version": "2026.4.3",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",