@absolutejs/rag 0.11.0 → 0.13.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/CHANGELOG.md CHANGED
@@ -6,6 +6,26 @@ This file is generated by `absolute-changelog` from the entries in
6
6
  `changelog/`. Edit an entry, not this file — and add new ones under
7
7
  `changelog/unreleased/`.
8
8
 
9
+ ## 0.13.0 — 2026-09-18
10
+
11
+ ### Added
12
+
13
+ - **Expose stop reasons and actual incomplete page reads separately from unvisited links; guide targeted continuation and concise nontechnical answers.** (`readRAGWebsite`)
14
+
15
+ ### Changed
16
+
17
+ - **Balance repeated customer, service and company reads across an eight-page default budget (maximum twelve) with 48000 characters, preventing case-study archives from starving service details.** (`readRAGWebsite`)
18
+
19
+ ## 0.12.0 — 2026-09-18
20
+
21
+ ### Added
22
+
23
+ - **Add bounded multi-page website research with exact page citations, semantic links and image labels, media and caption evidence, redirect chains and explicit coverage limits.**
24
+
25
+ ### Changed
26
+
27
+ - **Expand website result and renderer contracts with semantic evidence, redirect hops and explicit readiness/coverage metadata; existing renderers may omit the new optional renderer fields.** (`WebFetchResult`, `WebReadResult`, `WebRenderer`, `readRAGWebpage`, `createPlaywrightWebRenderer`)
28
+
9
29
  ## 0.11.0 — 2026-09-18
10
30
 
11
31
  ### Added
package/README.md CHANGED
@@ -162,3 +162,25 @@ bounded. The reader does not bypass login, CAPTCHA or access restrictions, and
162
162
  reports these failures separately from incomplete rendering. A page read is not
163
163
  a crawl of every page on a domain. Host-supplied renderers/fetch implementations
164
164
  must enforce equivalent network controls.
165
+
166
+ ### Research related website pages with attributable evidence
167
+
168
+ `readRAGWebsite` from `@absolutejs/rag/web` reads up to eight pages by default, balancing
169
+ same-origin customer, service and company pages so service details are not
170
+ starved by large case-study archives. The configurable ceiling is twelve pages;
171
+ the overall deadline remains 75 seconds and default text budget is 48,000 characters. Pass the
172
+ optional Playwright renderer as for `readRAGWebpage`. `maxPages: 1` retains a
173
+ single-page read; `mode: "browser"` retries content missed by static extraction.
174
+ Results attribute text to exact page URLs and retain per-page redirects,
175
+ retrieval attempts, semantic image labels, link destinations, media URLs and
176
+ available caption text. Coverage includes unvisited relevant links and deadline
177
+ limits. `incompleteReads` identifies failed, partial or truncated page reads;
178
+ unvisited links and successful browser fallback are not failed reads.
179
+ `stopReason` distinguishes a page limit, deadline and exhausted relevant links.
180
+ A per-call limit is not a reason to stop research when a material question remains:
181
+ use targeted follow-up reads. Present business answers first and keep technical
182
+ diagnostics for explicit debugging requests. HTTP redirects carry their actual status; client navigation is labeled
183
+ separately. Empty image labels are not proof of an absent client list, and media
184
+ URLs are not proof that a video was watched. Consumers must cite source URLs,
185
+ distinguish extracted evidence from inference, and finish the requested research
186
+ without treating a successful page fetch as complete company coverage.
package/changelog.json CHANGED
@@ -2,6 +2,47 @@
2
2
  "contract": 1,
3
3
  "name": "@absolutejs/rag",
4
4
  "releases": [
5
+ {
6
+ "changes": [
7
+ {
8
+ "kind": "changed",
9
+ "summary": "Balance repeated customer, service and company reads across an eight-page default budget (maximum twelve) with 48000 characters, preventing case-study archives from starving service details.",
10
+ "symbols": [
11
+ "readRAGWebsite"
12
+ ]
13
+ },
14
+ {
15
+ "kind": "added",
16
+ "summary": "Expose stop reasons and actual incomplete page reads separately from unvisited links; guide targeted continuation and concise nontechnical answers.",
17
+ "symbols": [
18
+ "readRAGWebsite"
19
+ ]
20
+ }
21
+ ],
22
+ "date": "2026-09-18",
23
+ "version": "0.13.0"
24
+ },
25
+ {
26
+ "changes": [
27
+ {
28
+ "kind": "added",
29
+ "summary": "Add bounded multi-page website research with exact page citations, semantic links and image labels, media and caption evidence, redirect chains and explicit coverage limits."
30
+ },
31
+ {
32
+ "kind": "changed",
33
+ "summary": "Expand website result and renderer contracts with semantic evidence, redirect hops and explicit readiness/coverage metadata; existing renderers may omit the new optional renderer fields.",
34
+ "symbols": [
35
+ "WebFetchResult",
36
+ "WebReadResult",
37
+ "WebRenderer",
38
+ "readRAGWebpage",
39
+ "createPlaywrightWebRenderer"
40
+ ]
41
+ }
42
+ ],
43
+ "date": "2026-09-18",
44
+ "version": "0.12.0"
45
+ },
5
46
  {
6
47
  "changes": [
7
48
  {
@@ -1,5 +1,37 @@
1
1
  // @bun
2
+ var __create = Object.create;
3
+ var __getProtoOf = Object.getPrototypeOf;
2
4
  var __defProp = Object.defineProperty;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ function __accessProp(key) {
8
+ return this[key];
9
+ }
10
+ var __toESMCache_node;
11
+ var __toESMCache_esm;
12
+ var __toESM = (mod, isNodeMode, target) => {
13
+ var canCache = mod != null && typeof mod === "object";
14
+ if (canCache) {
15
+ var cache = isNodeMode ? __toESMCache_node ??= new WeakMap : __toESMCache_esm ??= new WeakMap;
16
+ var cached = cache.get(mod);
17
+ if (cached)
18
+ return cached;
19
+ }
20
+ target = mod != null ? __create(__getProtoOf(mod)) : {};
21
+ const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
22
+ if (mod && typeof mod === "object" || typeof mod === "function") {
23
+ for (let key of __getOwnPropNames(mod))
24
+ if (!__hasOwnProp.call(to, key))
25
+ __defProp(to, key, {
26
+ get: __accessProp.bind(mod, key),
27
+ enumerable: true
28
+ });
29
+ }
30
+ if (canCache)
31
+ cache.set(mod, to);
32
+ return to;
33
+ };
34
+ var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
3
35
  var __returnValue = (v) => v;
4
36
  function __exportSetter(name, newValue) {
5
37
  this[name] = __returnValue.bind(null, newValue);
@@ -13,6 +45,7 @@ var __export = (target, all) => {
13
45
  set: __exportSetter.bind(all, name)
14
46
  });
15
47
  };
48
+ var __require = import.meta.require;
16
49
 
17
50
  // src/quality/quality.ts
18
51
  import { mkdir, readFile } from "fs/promises";
@@ -31417,5 +31450,5 @@ export {
31417
31450
  summarizeSQLiteCandidateCoverage
31418
31451
  };
31419
31452
 
31420
- //# debugId=9FE93518A40B2B4664756E2164756E21
31453
+ //# debugId=77D38FB1F044066A64756E2164756E21
31421
31454
  //# sourceMappingURL=index.js.map