wiki-graph 0.8.1 → 0.8.2

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/dist/gc-worker.js CHANGED
@@ -3,28 +3,28 @@ import { fileURLToPath as __WIKIGRAPH_FILE_URL_TO_PATH__ } from "url";
3
3
  import { resolve as __WIKIGRAPH_RESOLVE__ } from "path";
4
4
  globalThis.__WIKIGRAPH_CLI_DIST_DIR__ ??= __WIKIGRAPH_RESOLVE__(__WIKIGRAPH_FILE_URL_TO_PATH__(new URL(".", import.meta.url)));
5
5
  globalThis.__WIKIGRAPH_DATA_DIR__ ??= __WIKIGRAPH_RESOLVE__(__WIKIGRAPH_FILE_URL_TO_PATH__(new URL("./data", import.meta.url)));
6
- var Yw=Object.defineProperty;var i=(t,e)=>()=>(t&&(e=t(t=0)),e);var Zw=(t,e)=>{for(var n in e)Yw(t,n,{get:e[n],enumerable:!0})};async function ui(t){let e=await t.openReader();try{return e.size}finally{await e.close()}}async function wt(t){return await ui(t)===0}async function ae(t){return new TextDecoder().decode(await Vt(t))}async function Vt(t){let e=await t.openReader();try{let n=new Uint8Array(e.size);for(let r=0;r<e.size;){let a=await e.read(r,Math.min(65536,e.size-r));n.set(a,r),r+=a.byteLength}return n}finally{await e.close()}}async function me(t,e){let n=await t.openWriter();try{await n.write(e),await n.commit()}catch(r){throw await n.abort().catch(()=>{}),r}}async function Ie(t){if(U(t)){let e=0;for(let n of await t.list())e+=await Ie(n);return e}return await ui(t)}async function Ye(t){return await t.getLastModified?.()}function U(t){return t.kind==="directory"}var Au=i(()=>{"use strict"});function lo(t){Yt().installedPlatform=t}function A(){let{installedPlatform:t}=Yt();if(t===void 0)throw new Error("No WikiGraph runtime platform has been installed. Provide a runtime adapter before using wiki-graph-core.");return t}async function kt(t){if(typeof t!="string")return t;let e=await A().resources.getFile(t);if(e===void 0)throw new Error("Host file is unavailable");return e}async function J(t,e){let n=e.replaceAll("\\","/").split("/").filter(Boolean);if(n.some(o=>o==="."||o===".."))throw new TypeError(`Directory path must remain relative: ${e}`);let r=n.pop();if(!r)return;let a=t;for(let o of n){let s=await a.getDirectory(o);if(!s)return;a=s}return await a.getFile(r)}async function We(t,e){let n=mo(e),r=t;for(let a of n){let o=await r.getDirectory(a);if(!o)return;r=o}return r}async function z(t,e){let n=mo(e),r=t;for(let a of n){let o=await r.getDirectory(a);if(o!==void 0){r=o;continue}try{r=await r.createDirectory(a)}catch(s){let d=await r.getDirectory(a);if(d===void 0)throw s;r=d}}return r}async function H(t,e){let n=mo(e),r=n.pop();if(!r)throw new TypeError("File name must remain relative");let a=await z(t,n.join("/")),o=await a.getFile(r);if(o!==void 0)return o;try{return await a.createFile(r)}catch(s){let d=await a.getFile(r);if(d!==void 0)return d;throw s}}function mo(t){let e=t.replaceAll("\\","/");if(e.startsWith("/"))throw new TypeError(`Directory path must remain relative: ${t}`);let n=e.split("/").filter(Boolean);if(n.some(r=>r==="."||r===".."))throw new TypeError(`Directory path must remain relative: ${t}`);return n}function Yt(){let t=globalThis,e=t[Lu];if(e!==void 0)return e;let n={storageContext:new uo};return Object.defineProperty(t,Lu,{configurable:!1,enumerable:!1,value:n,writable:!1}),n}function po(t){Yt().installedStorage=t}async function mi(t,e){return t===void 0?await e():await Yt().storageContext.run(t,e)}function R(){let{installedStorage:t,storageContext:e}=Yt(),n=e.getStore()??t;if(n===void 0)throw new Error("No WikiGraph storage roots have been configured. Pass storage to WikiGraph or install process-default storage.");return n}var Lu,uo,y=i(()=>{"use strict";Au();Lu=Symbol.for("wiki-graph-core.runtime.v1");uo=class{#e;#t;run(e,n){let r=this.#n();if(r!==void 0)return r.run(e,n);let a=this.#t;this.#t=e;try{return n()}finally{this.#t=a}}enterWith(e){let n=this.#n();n!==void 0?n.enterWith(e):this.#t=e}getStore(){return this.#n()?.getStore()??this.#t}#n(){if(this.#e!==void 0)return this.#e;let{installedPlatform:e}=Yt();if(e!==void 0)return this.#e=e.asyncContext.create(),this.#t!==void 0&&(this.#e.enterWith(this.#t),this.#t=void 0),this.#e}}});function pi(t){if(tk.test(t))throw new Error(`invalid template name ${t}`);let n=t.replace(nk,"").replace(ek,"");if(n.split("/").includes(".."))throw new Error(`invalid template name ${t}`);return`${n}.jinja`}var ek,tk,nk,Fn=i(()=>{"use strict";y();ek=/\.jinja$/iu,tk=/^\.+\//u,nk=/^\/+/u});var Nu=i(()=>{"use strict";y();Fn()});import*as Du from"async_hooks";import*as Mu from"crypto";import*as fi from"fs";import*as B from"fs/promises";import*as Fu from"os";import*as O from"path";import*as bo from"process";import{Readable as Gu,Writable as rk}from"stream";import{pipeline as ik}from"stream/promises";import*as So from"sqlite3";import*as ju from"yauzl";import*as Uu from"yazl";import{Environment as ak,Loader as ok}from"nunjucks";async function Wu(t,e,n){let r=Buffer.from(e),a=0;for(;a<r.byteLength;){let o=await t.write(r,a,r.byteLength-a,n===void 0?null:n+a);if(o.bytesWritten===0)throw new Error("File writer made no progress");a+=o.bytesWritten}}function Bu(t,e,n){if(qu(t),!Number.isSafeInteger(e)||e<0)throw new RangeError("File read length must be a non-negative safe integer");if(t>n||e>n-t)throw new RangeError("File read range exceeds the file size")}function qu(t){if(!Number.isSafeInteger(t)||t<0)throw new RangeError("File offset must be a non-negative safe integer")}function Hu(t,e){return`node-${t}:${Buffer.from(O.resolve(e),"utf8").toString("base64url")}`}function ho(t,e){let n=`node-${e}:`;if(!t.startsWith(n))return O.isAbsolute(t)?t:void 0;try{return Buffer.from(t.slice(n.length),"base64url").toString("utf8")}catch{return}}function Gn(t){if(t.length===0||t==="."||t===".."||O.isAbsolute(t)||t.includes("/")||t.includes("\\"))throw new TypeError(`Directory child must be a relative name: ${t}`)}async function sk(t,e){let n=(e.mode==="readonly"?jn.OPEN_READONLY:jn.OPEN_READWRITE|(e.create?jn.OPEN_CREATE:0))|jn.OPEN_FULLMUTEX;return new yo(await dk(t,n))}async function dk(t,e){let n=$u(t,"file");if(n===void 0)throw new TypeError("The Node database adapter requires a NodeFile");return await new Promise((r,a)=>{let o=new jn.Database(n,e,s=>{s?a(s):r(o)})})}async function ck(t){let e=$u(t,"file");if(e===void 0)throw new TypeError("The Node ZIP adapter requires a NodeFile");let n=await new Promise((o,s)=>{ju.open(e,{autoClose:!1,lazyEntries:!0},(d,c)=>{d||c===void 0?s(d??new Error("Cannot open ZIP")):o(c)})}),r=await new Promise((o,s)=>{let d=new Map,c=m=>{n.close(),s(m instanceof Error?m:new Error("Cannot scan ZIP central directory"))},u=()=>{n.off("error",c),o(d)};n.on("entry",m=>{m.fileName.endsWith("/")||d.set(m.fileName,m),n.readEntry()}),n.once("error",c),n.once("end",u),n.readEntry()}),a=!1;return{close:()=>(a||n.close(),a=!0,Promise.resolve()),copyEntry:async(o,s)=>{if(a)throw new Error("Cannot read a closed ZIP archive");let d=r.get(o);return d===void 0?!1:(await uk(n,d,s),!0)},getEntrySize:o=>{if(a)throw new Error("Cannot read a closed ZIP archive");return Promise.resolve(r.get(o)?.uncompressedSize)},listEntries:()=>Promise.resolve([...r.keys()]),readEntryRange:async(o,s,d)=>{if(a)throw new Error("Cannot read a closed ZIP archive");let c=r.get(o);if(c!==void 0)return await mk(n,c,s,d)},readEntry:async o=>{if(a)throw new Error("Cannot read a closed ZIP archive");let s=r.get(o);if(s!==void 0)return await lk(n,s)}}}async function uk(t,e,n){let r=await n.openWriter();try{let a=await hi(t,e);await Ju(a,r),await r.commit()}catch(a){throw await r.abort().catch(()=>{}),a}}async function lk(t,e){return await Ku(await hi(t,e))}async function mk(t,e,n,r){if(Bu(n,r,e.uncompressedSize),r===0)return new Uint8Array;if(e.compressionMethod!==0){let o=await pk(await hi(t,e),n,r);return new Uint8Array(o.buffer,o.byteOffset,o.byteLength)}let a=await Ku(await hi(t,e,{decompress:null,decrypt:null,end:n+r,start:n}));return new Uint8Array(a.buffer,a.byteOffset,a.byteLength)}async function pk(t,e,n){let r=[],a=e+n,o=0,s=0;for await(let d of t){let c=Buffer.isBuffer(d)?d:Buffer.from(d),u=o+c.byteLength;if(u>e&&o<a){let m=c.subarray(Math.max(0,e-o),Math.min(c.byteLength,a-o));r.push(m),s+=m.byteLength}if(o=u,o>=a)break}if(s!==n)throw new Error("ZIP entry changed while reading its byte range");return Buffer.concat(r,s)}async function hi(t,e,n){return await new Promise((r,a)=>{let o=(s,d)=>{s||d===void 0?a(s??new Error(`Cannot read ZIP entry: ${e.fileName}`)):r(d)};n===void 0?t.openReadStream(e,o):t.openReadStream(e,n,o)})}async function hk(t,e){let n=new Uu.ZipFile,r=await t.openWriter(),a=n.outputStream,o=Ju(a,r),s={cancelled:!1,complete:!1},d;try{d=bk(e);let c=fk(n,d,s);if(await Promise.race([c,o]),!s.complete)throw new Error("ZIP output ended before entry production completed");n.end(),await o,await r.commit()}catch(c){throw s.cancelled=!0,!s.complete&&d!==void 0&&Sk(d),a.destroyed||a.destroy(c instanceof Error?c:new Error("Cannot write ZIP archive")),await o.catch(()=>{}),await r.abort().catch(()=>{}),c}}async function fk(t,e,n){for(;!n.cancelled;){let r=await e.next();if(n.cancelled)return;if(r.done){n.complete=!0;return}"file"in r.value?t.addReadStream(yk(r.value.file),r.value.name,{compress:!1}):"data"in r.value?t.addBuffer(Buffer.from(r.value.data),r.value.name,{compress:!1}):t.addReadStream(gk(r.value),r.value.name,{compress:!1,size:r.value.size})}}function yk(t){return Gu.from((async function*(){let e=await t.openReader();try{for(let n=0;n<e.size;){let r=await e.read(n,Math.min(65536,e.size-n));n+=r.byteLength,yield r}}finally{await e.close()}})())}function $u(t,e){if(typeof t!="object"||t===null)return;let n=t;return n[wo]===e&&typeof n.path=="string"?n.path:void 0}function gk(t){return Gu.from((async function*(){for(let e=0;e<t.size;){let n=await t.read(e,Math.min(65536,t.size-e));e+=n.byteLength,yield n}})())}function bk(t){let e=t[Symbol.asyncIterator];return e===void 0?t[Symbol.iterator]():e.call(t)}function Sk(t){if(t.return!==void 0)try{Promise.resolve(t.return()).catch(()=>{})}catch{}}async function Ju(t,e){await ik(t,new rk({write:(n,r,a)=>{e.write(n).then(()=>a(),o=>a(o instanceof Error?o:new Error("Cannot stream ZIP archive")))}}))}async function Ku(t){return await new Promise((e,n)=>{let r=[];t.on("data",a=>r.push(a)),t.once("error",n),t.once("end",()=>e(Buffer.concat(r)))})}function kk(){let t=globalThis.__WIKIGRAPH_DATA_DIR__;if(typeof t=="string"&&t!=="")return t;let e=fo.cwd();for(;;){for(let r of[O.join(e,"data"),O.join(e,"packages","core","data")])try{if(fi.statSync(r).isDirectory())return r}catch{}let n=O.dirname(e);if(n===e)throw new Error("Could not locate data directory");e=n}}function zu(t=O.join(Fu.homedir(),".wikigraph")){return{library:new De(t),documentStore:new De(O.join(t,"documents"))}}function Un(t){lo(wk),po(zu(t))}async function Zt(t,e){return await mi(t===void 0?void 0:zu(t),e)}var fo,jn,wo,se,De,yo,wk,go,de=i(()=>{"use strict";Nu();fo=bo.default??bo,jn=So.default??So,wo=Symbol.for("wiki-graph-sdk.node-resource.v1"),se=class{constructor(e,n=O.basename(e)){this.path=e;this.identity=Hu("file",e),this.name=n}path;kind="file";[wo]="file";identity;name;async openReader(){let e=await B.open(this.path,"r"),n=!1;try{let r=await e.stat();if(!r.isFile())throw new Error("File reader requires a regular file");let{size:a}=r;return{size:a,close:async()=>{n||await e.close(),n=!0},read:async(o,s)=>{if(n)throw new Error("Cannot read from a closed FileReader");Bu(o,s,a);let d=Buffer.allocUnsafe(s),c=0;for(;c<s;){let u=await e.read(d,c,s-c,o+c);if(u.bytesRead===0)throw new Error("File changed while reading its byte range");c+=u.bytesRead}return new Uint8Array(d.buffer,d.byteOffset,c)}}}catch(r){throw await e.close(),r}}async getLastModified(){try{return(await B.stat(this.path)).mtimeMs}catch(e){if(typeof e=="object"&&e!==null&&"code"in e&&e.code==="ENOENT")return;throw e}}async openWriter(){await B.mkdir(O.dirname(this.path),{recursive:!0});let e=`${this.path}.tmp-${Mu.randomUUID()}`,n=await B.open(e,"wx"),r=!1;return{write:async a=>{if(r)throw new Error("Cannot write to a closed FileWriter");await Wu(n,a)},writeAt:async(a,o)=>{if(r)throw new Error("Cannot write to a closed FileWriter");qu(a),await Wu(n,o,a)},commit:async()=>{r||(await n.close(),await B.rename(e,this.path)),r=!0},abort:async()=>{r||(await n.close(),await B.rm(e,{force:!0})),r=!0}}}};De=class t{constructor(e){this.path=e;this.identity=Hu("directory",e),this.name=O.basename(e)}path;kind="directory";[wo]="directory";identity;name;async getFile(e){Gn(e);let n=new se(O.join(this.path,e));try{return(await B.stat(n.path)).isFile()?n:void 0}catch{return}}async getLastModified(){try{return(await B.stat(this.path)).mtimeMs}catch(e){if(typeof e=="object"&&e!==null&&"code"in e&&e.code==="ENOENT")return;throw e}}async getDirectory(e){Gn(e);let n=new t(O.join(this.path,e));try{return(await B.stat(n.path)).isDirectory()?n:void 0}catch{return}}async list(){return(await B.readdir(this.path,{withFileTypes:!0})).map(n=>n.isDirectory()?new t(O.join(this.path,n.name)):new se(O.join(this.path,n.name),n.name))}async createFile(e){Gn(e),await B.mkdir(this.path,{recursive:!0});let n=new se(O.join(this.path,e));return await B.writeFile(n.path,"",{flag:"wx"}),n}async createDirectory(e){Gn(e),await B.mkdir(this.path,{recursive:!0});let n=new t(O.join(this.path,e));return await B.mkdir(n.path),n}async remove(e,n){Gn(e),await B.rm(O.join(this.path,e),{force:!0,recursive:n?.recursive===!0})}};yo=class{constructor(e){this.database=e}database;async close(){await new Promise((e,n)=>{this.database.close(r=>{r?n(r):e()})})}async execute(e){await new Promise((n,r)=>{this.database.exec(e,a=>{a?r(a):n()})})}async queryAll(e,n=[]){return await new Promise((r,a)=>{this.database.all(e,[...n],(o,s)=>{o?a(o):r(s)})})}async queryOne(e,n=[]){return await new Promise((r,a)=>{this.database.get(e,[...n],(o,s)=>{o?a(o):r(s)})})}async run(e,n=[]){await new Promise((r,a)=>{this.database.run(e,[...n],o=>{o?a(o):r()})})}};wk={asyncContext:{create:()=>new Du.AsyncLocalStorage},database:{open:sk},lifecycle:{instanceId:`node-process:${fo.pid}`,isInstanceAlive:t=>{let e=/^node-process:(\d+)$/u.exec(t);if(e===null)return Promise.resolve(void 0);try{return fo.kill(Number(e[1]),0),Promise.resolve(!0)}catch(n){return typeof n=="object"&&n!==null&&"code"in n&&n.code==="ESRCH"?Promise.resolve(!1):Promise.resolve(!0)}}},resources:{getDirectory:t=>{let e=ho(t,"directory");return Promise.resolve(e===void 0?void 0:new De(e))},getFile:t=>{let e=ho(t,"file");return Promise.resolve(e===void 0?void 0:new se(e))},resolveLegacyDirectory:t=>{let e=ho(t,"directory");return Promise.resolve(e===void 0?void 0:new De(e))}},templates:{createEnvironment:t=>new ak(new go,t)},zip:{open:ck,write:hk}},go=class extends ok{#e;constructor(e){super(),this.#e=e}getSource(e){let n=pi(e),r=O.join(this.#e??kk(),n);return{noCache:!1,path:n,src:fi.readFileSync(r,"utf8")}}}});var Me=i(()=>{"use strict"});function Qu(t){return new TextEncoder().encode(t)}function xt(t){let e="";for(let n of t)e+=n.toString(16).padStart(2,"0");return e}var Ee=i(()=>{"use strict"});import{sha1 as xk}from"@noble/hashes/legacy.js";import{sha256 as Ik,sha512 as Ek}from"@noble/hashes/sha2.js";function oe(t){let e=vk(t);return{update(n){return e.update(typeof n=="string"?Qu(n):n),this},digest(n){let r=e.digest();return n==="hex"?xt(r):r}}}function Bn(t){let e=new Uint8Array(t);return globalThis.crypto.getRandomValues(e),e}function Ze(){if(typeof globalThis.crypto.randomUUID=="function")return globalThis.crypto.randomUUID();let t=Bn(16);t[6]=t[6]&15|64,t[8]=t[8]&63|128;let e=xt(t);return`${e.slice(0,8)}-${e.slice(8,12)}-${e.slice(12,16)}-${e.slice(16,20)}-${e.slice(20)}`}function vk(t){switch(t){case"sha1":return xk.create();case"sha256":return Ik.create();case"sha512":return Ek.create()}}var F=i(()=>{"use strict";Ee()});var yi=i(()=>{"use strict";F()});var Vu=i(()=>{"use strict";y()});var Yu=i(()=>{"use strict";Vu()});var Zu=i(()=>{"use strict"});function Fe(t){return t instanceof Error}function en(t){let e=[],n=new Set,r=t;for(;r!==void 0&&!n.has(r);){if(n.add(r),r instanceof Error){el(e,Ak(r)),r=r.cause;continue}el(e,String(r));break}return e.join(": ")}function Ak(t){let e=t,n=t.message.trim(),r=typeof e.code=="string"&&e.code!==""?e.code:void 0;return r==="ENOENT"?"File not found (ENOENT)":r==="EACCES"||r==="EPERM"?`Permission denied (${r})`:r!==void 0&&Lk(n)?`${t.name} (${r})`:n===""?t.name:r===void 0?n:`${n} (${r})`}function Lk(t){return/(?:^|[\s:'"(=])\/(?:[^\s/]+\/)*[^\s/]+/u.test(t)||/(?:^|[\s:'"(=])[A-Za-z]:[\\/]/u.test(t)||/\bfile:\/\//iu.test(t)}function el(t,e){let n=e.trim();if(n==="")return;let r=t.at(-1);if(r===void 0){t.push(n);return}if(!(r===n||r.includes(n))){if(n.includes(r)){t[t.length-1]=n;return}t.push(n)}}var pe=i(()=>{"use strict";y()});var tl=i(()=>{"use strict";pe()});var nl=i(()=>{"use strict"});import{APICallError as tA}from"ai";var rl=i(()=>{"use strict";y()});var et=i(()=>{"use strict";y()});var It,Hn=i(()=>{"use strict";It=class{#e=0;#t;#n=[];constructor(e){if(!Number.isInteger(e)||e<1)throw new RangeError("concurrency must be a positive integer");this.#t=e}async use(e){await this.#r();try{return await e()}finally{this.#i()}}async#r(){if(this.#e<this.#t){this.#e+=1;return}await new Promise(e=>{this.#n.push(()=>{this.#e+=1,e()})})}#i(){this.#e-=1,this.#n.shift()?.()}}});var xo=i(()=>{"use strict";et()});var Io=i(()=>{"use strict"});var il=i(()=>{"use strict";y()});var Eo=i(()=>{"use strict"});import{generateText as TA,streamText as _A}from"ai";var ol=i(()=>{"use strict";Yu();Zu();tl();nl();rl();et();Fn();Hn();yi();pe();xo();Io();il();Eo()});var sl=i(()=>{"use strict";ol()});var Ro=i(()=>{"use strict";sl();xo();Io();Eo()});var Dk,Co,dl,tn=i(()=>{"use strict";Dk=Object.freeze(["serial-generation/editor-compress","serial-generation/editor-review","serial-generation/editor-review-guide","serial-generation/reader-choice","serial-generation/reader-extraction"]),Co=Object.freeze({compress:"serial-generation/editor-compress",review:"serial-generation/editor-review",reviewGuide:"serial-generation/editor-review-guide"}),dl=Object.freeze({choice:"serial-generation/reader-choice",extraction:"serial-generation/reader-extraction"})});var Q,Z=i(()=>{"use strict";Q=class extends Error{code;details;constructor(e,n,r={},a={}){super(n,a),this.name="WikiGraphError",this.code=e,this.details=r}}});var To=i(()=>{"use strict"});async function Fk(t){try{return await wt(t)}catch(e){if(Fe(e)&&e.code==="ENOENT")return!0;throw e}}function S(t,e){let n=t[e];if(typeof n!="number")throw new TypeError(`Expected ${e} to be a number`);return n}function E(t,e){let n=t[e];if(typeof n!="string")throw new TypeError(`Expected ${e} to be a string`);return n}var Mk,N,_o,w=i(()=>{"use strict";y();pe();Mk=900*1e3;N=class t{#e;#t;#n;#r;#i=!1;#u=Promise.resolve();#d=0;constructor(e,n={}){this.#e=e,this.#t=n.onWrite,this.#n=A().asyncContext.create()}static async open(e,n,r){let a=await kt(e),o=r.mode==="readwrite"&&r.create&&n.trim()!==""&&await Fk(a),s=r.mode==="readonly"?await A().database.open(a,{mode:"readonly"}):await A().database.open(a,{create:r.create,mode:"readwrite"}),d;try{return d=new t(new _o(s),r),await d.#o(`PRAGMA busy_timeout = ${Mk}`),r.mode==="readwrite"&&n.trim()!==""&&(await d.#o(n),o&&d.#c()),d}catch(c){throw d===void 0?await s.close().catch(()=>{}):await d.close().catch(()=>{}),c}}static async initialize(e,n){let r=await t.open(e,"",{create:!0,mode:"readwrite"});try{n.trim()!==""&&await r.#o(n)}finally{await r.close()}}async queryAll(e,n,r){return await this.#a(async()=>(this.#s(),(await this.#m(e,n)).map(r)))}async queryOne(e,n,r){return await this.#a(async()=>{this.#s();let a=await this.#p(e,n);return a===void 0?void 0:r(a)})}async run(e,n){await this.#a(async()=>{this.#s(),await this.#h(e,n),this.#c()})}async execute(e){await this.#a(async()=>{this.#s(),await this.#o(e),this.#c()})}async transaction(e){return await this.#a(async()=>{this.#s();let n=this.#d===0,r=this.#r??Symbol("database transaction scope");n&&(await this.#o("BEGIN IMMEDIATE"),this.#r=r),this.#d+=1;try{let a=await this.#n.run(r,e);return n&&await this.#o("COMMIT"),a}catch(a){throw n&&await this.#o("ROLLBACK"),a}finally{this.#d-=1,n&&(this.#r=void 0)}})}async flush(){await this.#a(()=>{this.#s()})}async close(){await this.#a(async()=>{this.#i||(await this.#l(),this.#i=!0)})}async getLastInsertRowId(){let e=await this.queryOne("SELECT last_insert_rowid() AS row_id",void 0,n=>S(n,"row_id"));if(e===void 0)throw new Error("Could not read last_insert_rowid()");return e}#s(){if(this.#i)throw new Error("Database is already closed")}async#a(e){let n=this.#n.getStore();if(n!==void 0&&n===this.#r)return await e();let r=this.#u.then(e);return this.#u=r.then(()=>{},()=>{}),await r}#c(){this.#t?.()}async#l(){await this.#e.close()}async#o(e){await this.#e.execute(e)}async#m(e,n){return await this.#e.queryAll(e,n)}async#p(e,n){return await this.#e.queryOne(e,n)}async#h(e,n){await this.#e.run(e,n)}};_o=class{#e;constructor(e){this.#e=e}async close(){await this.#e.close()}async execute(e){await this.#e.execute(e)}async queryAll(e,n){return[...await this.#e.queryAll(e,n)]}async queryOne(e,n){return await this.#e.queryOne(e,n)}async run(e,n){await this.#e.run(e,n)}}});async function Et(){let t=R().library,e=bi.get(t.identity);if(e!==void 0){await e;return}let n=jk(t);bi.set(t.identity,n);try{await n}finally{bi.get(t.identity)===n&&bi.delete(t.identity)}}async function Ii(){let t=await J(R().library,"core.sqlite");if(t===void 0||await Ei(t))return 0;let e=await N.open(t,"",{mode:"readonly"});try{return await nn(e,"schema_versions")?await e.queryOne("SELECT version FROM schema_versions WHERE scope = ?",["home"],n=>S(n,"version"))??1:1}finally{await e.close()}}async function jk(t){let e=await Ii();if(e>Po)throw new Error(`Unsupported Wiki Graph home schema version: ${e}.`);let n=await H(t,"core.sqlite");if(e===0){await Si(n,Po);return}for(;e<Po;)switch(e){case 1:await cl(t),await Si(n,2),e=2;break;case 2:await cl(t),await Si(n,3),e=3;break;case 3:await Uk(n),await Si(n,4),e=4;break;default:throw new Error(`Unsupported Wiki Graph home schema version: ${e}.`)}}async function cl(t){await hl(t),await pl(t)}async function Uk(t){let e=R().library;await hl(e),await Bk(t),await pl(e)}async function Bk(t){let e=await N.open(t,"",{create:!1,mode:"readwrite"});try{if(!await nn(e,"libraries"))return;let n=await ki(e,"libraries"),r=n.has("folder_identity")?"folder_identity":n.has("folder_path")?"folder_path":void 0;if(r===void 0)throw new Error("Cannot migrate library registry without a folder reference.");let a=await e.queryAll(`SELECT id, ${r} AS folder_reference FROM libraries ORDER BY id`,void 0,s=>({id:S(s,"id"),reference:E(s,"folder_reference")})),o=[];for(let s of a){let d=A().resources,c=r==="folder_identity"||d.resolveLegacyDirectory===void 0?await d.getDirectory(s.reference):await d.resolveLegacyDirectory(s.reference);if(c===void 0)throw new Error(`Cannot migrate unavailable library Directory for registry id ${s.id}.`);o.push({id:s.id,identity:c.identity})}await e.transaction(async()=>{n.has("folder_identity")||await e.run("ALTER TABLE libraries RENAME COLUMN folder_path TO folder_identity");for(let s of o)await e.run("UPDATE libraries SET folder_identity = ? WHERE id = ?",[s.identity,s.id])})}finally{await e.close()}}async function Si(t,e){let n=await N.open(t,"",{create:!0,mode:"readwrite"});try{await n.execute(Gk),await n.run(`INSERT INTO schema_versions (scope, version, updated_at)
6
+ var ak=Object.defineProperty;var i=(t,e)=>()=>(t&&(e=t(t=0)),e);var ok=(t,e)=>{for(var n in e)ak(t,n,{get:e[n],enumerable:!0})};async function ui(t){let e=await t.openReader();try{return e.size}finally{await e.close()}}async function wt(t){return await ui(t)===0}async function ae(t){return new TextDecoder().decode(await Vt(t))}async function Vt(t){let e=await t.openReader();try{let n=new Uint8Array(e.size);for(let r=0;r<e.size;){let a=await e.read(r,Math.min(65536,e.size-r));n.set(a,r),r+=a.byteLength}return n}finally{await e.close()}}async function me(t,e){let n=await t.openWriter();try{await n.write(e),await n.commit()}catch(r){throw await n.abort().catch(()=>{}),r}}async function Ie(t){if(U(t)){let e=0;for(let n of await t.list())e+=await Ie(n);return e}return await ui(t)}async function Ye(t){return await t.getLastModified?.()}function U(t){return t.kind==="directory"}var Uu=i(()=>{"use strict"});function Yt(t){Zt().installedPlatform=t}function _(){let{installedPlatform:t}=Zt();if(t===void 0)throw new Error("No WikiGraph runtime platform has been installed. Provide a runtime adapter before using wiki-graph-core.");return t}async function kt(t){if(typeof t!="string")return t;let e=await _().resources.getFile(t);if(e===void 0)throw new Error("Host file is unavailable");return e}async function J(t,e){let n=e.replaceAll("\\","/").split("/").filter(Boolean);if(n.some(o=>o==="."||o===".."))throw new TypeError(`Directory path must remain relative: ${e}`);let r=n.pop();if(!r)return;let a=t;for(let o of n){let s=await a.getDirectory(o);if(!s)return;a=s}return await a.getFile(r)}async function We(t,e){let n=yo(e),r=t;for(let a of n){let o=await r.getDirectory(a);if(!o)return;r=o}return r}async function z(t,e){let n=yo(e),r=t;for(let a of n){let o=await r.getDirectory(a);if(o!==void 0){r=o;continue}try{r=await r.createDirectory(a)}catch(s){let d=await r.getDirectory(a);if(d===void 0)throw s;r=d}}return r}async function H(t,e){let n=yo(e),r=n.pop();if(!r)throw new TypeError("File name must remain relative");let a=await z(t,n.join("/")),o=await a.getFile(r);if(o!==void 0)return o;try{return await a.createFile(r)}catch(s){let d=await a.getFile(r);if(d!==void 0)return d;throw s}}function yo(t){let e=t.replaceAll("\\","/");if(e.startsWith("/"))throw new TypeError(`Directory path must remain relative: ${t}`);let n=e.split("/").filter(Boolean);if(n.some(r=>r==="."||r===".."))throw new TypeError(`Directory path must remain relative: ${t}`);return n}function Zt(){let t=globalThis,e=t[qu];if(e!==void 0)return e;let n={storageContext:new fo};return Object.defineProperty(t,qu,{configurable:!1,enumerable:!1,value:n,writable:!1}),n}function mi(t){Zt().installedStorage=t}async function en(t,e){return t===void 0?await e():await Zt().storageContext.run(t,e)}function R(){let{installedStorage:t,storageContext:e}=Zt(),n=e.getStore()??t;if(n===void 0)throw new Error("No WikiGraph storage roots have been configured. Pass storage to WikiGraph or install process-default storage.");return n}var qu,fo,y=i(()=>{"use strict";Uu();qu=Symbol.for("wiki-graph-core.runtime.v1");fo=class{#e;#t;run(e,n){let r=this.#n();if(r!==void 0)return r.run(e,n);let a=this.#t;this.#t=e;try{return n()}finally{this.#t=a}}enterWith(e){let n=this.#n();n!==void 0?n.enterWith(e):this.#t=e}getStore(){return this.#n()?.getStore()??this.#t}#n(){if(this.#e!==void 0)return this.#e;let{installedPlatform:e}=Zt();if(e!==void 0)return this.#e=e.asyncContext.create(),this.#t!==void 0&&(this.#e.enterWith(this.#t),this.#t=void 0),this.#e}}});function pi(t){if(dk.test(t))throw new Error(`invalid template name ${t}`);let n=t.replace(ck,"").replace(sk,"");if(n.split("/").includes(".."))throw new Error(`invalid template name ${t}`);return`${n}.jinja`}var sk,dk,ck,Gn=i(()=>{"use strict";y();sk=/\.jinja$/iu,dk=/^\.+\//u,ck=/^\/+/u});var go=i(()=>{"use strict";y();Gn()});import*as $u from"async_hooks";import*as Ju from"crypto";import*as fi from"fs";import*as q from"fs/promises";import*as Ku from"os";import*as O from"path";import*as xo from"process";import{Readable as zu,Writable as uk}from"stream";import{pipeline as lk}from"stream/promises";import*as Io from"sqlite3";import*as Qu from"yauzl";import*as Xu from"yazl";import{Environment as mk,Loader as pk}from"nunjucks";async function Hu(t,e,n){let r=Buffer.from(e),a=0;for(;a<r.byteLength;){let o=await t.write(r,a,r.byteLength-a,n===void 0?null:n+a);if(o.bytesWritten===0)throw new Error("File writer made no progress");a+=o.bytesWritten}}function Vu(t,e,n){if(Yu(t),!Number.isSafeInteger(e)||e<0)throw new RangeError("File read length must be a non-negative safe integer");if(t>n||e>n-t)throw new RangeError("File read range exceeds the file size")}function Yu(t){if(!Number.isSafeInteger(t)||t<0)throw new RangeError("File offset must be a non-negative safe integer")}function Zu(t,e){return`node-${t}:${Buffer.from(O.resolve(e),"utf8").toString("base64url")}`}function bo(t,e){let n=`node-${e}:`;if(!t.startsWith(n))return O.isAbsolute(t)?t:void 0;try{return Buffer.from(t.slice(n.length),"base64url").toString("utf8")}catch{return}}function jn(t){if(t.length===0||t==="."||t===".."||O.isAbsolute(t)||t.includes("/")||t.includes("\\"))throw new TypeError(`Directory child must be a relative name: ${t}`)}async function hk(t,e){let n=(e.mode==="readonly"?Un.OPEN_READONLY:Un.OPEN_READWRITE|(e.create?Un.OPEN_CREATE:0))|Un.OPEN_FULLMUTEX;return new wo(await fk(t,n))}async function fk(t,e){let n=el(t,"file");if(n===void 0)throw new TypeError("The Node database adapter requires a NodeFile");return await new Promise((r,a)=>{let o=new Un.Database(n,e,s=>{s?a(s):r(o)})})}async function yk(t){let e=el(t,"file");if(e===void 0)throw new TypeError("The Node ZIP adapter requires a NodeFile");let n=await new Promise((o,s)=>{Qu.open(e,{autoClose:!1,lazyEntries:!0},(d,c)=>{d||c===void 0?s(d??new Error("Cannot open ZIP")):o(c)})}),r=await new Promise((o,s)=>{let d=new Map,c=m=>{n.close(),s(m instanceof Error?m:new Error("Cannot scan ZIP central directory"))},u=()=>{n.off("error",c),o(d)};n.on("entry",m=>{m.fileName.endsWith("/")||d.set(m.fileName,m),n.readEntry()}),n.once("error",c),n.once("end",u),n.readEntry()}),a=!1;return{close:()=>(a||n.close(),a=!0,Promise.resolve()),copyEntry:async(o,s)=>{if(a)throw new Error("Cannot read a closed ZIP archive");let d=r.get(o);return d===void 0?!1:(await gk(n,d,s),!0)},getEntrySize:o=>{if(a)throw new Error("Cannot read a closed ZIP archive");return Promise.resolve(r.get(o)?.uncompressedSize)},listEntries:()=>Promise.resolve([...r.keys()]),readEntryRange:async(o,s,d)=>{if(a)throw new Error("Cannot read a closed ZIP archive");let c=r.get(o);if(c!==void 0)return await Sk(n,c,s,d)},readEntry:async o=>{if(a)throw new Error("Cannot read a closed ZIP archive");let s=r.get(o);if(s!==void 0)return await bk(n,s)}}}async function gk(t,e,n){let r=await n.openWriter();try{let a=await hi(t,e);await tl(a,r),await r.commit()}catch(a){throw await r.abort().catch(()=>{}),a}}async function bk(t,e){return await nl(await hi(t,e))}async function Sk(t,e,n,r){if(Vu(n,r,e.uncompressedSize),r===0)return new Uint8Array;if(e.compressionMethod!==0){let o=await wk(await hi(t,e),n,r);return new Uint8Array(o.buffer,o.byteOffset,o.byteLength)}let a=await nl(await hi(t,e,{decompress:null,decrypt:null,end:n+r,start:n}));return new Uint8Array(a.buffer,a.byteOffset,a.byteLength)}async function wk(t,e,n){let r=[],a=e+n,o=0,s=0;for await(let d of t){let c=Buffer.isBuffer(d)?d:Buffer.from(d),u=o+c.byteLength;if(u>e&&o<a){let m=c.subarray(Math.max(0,e-o),Math.min(c.byteLength,a-o));r.push(m),s+=m.byteLength}if(o=u,o>=a)break}if(s!==n)throw new Error("ZIP entry changed while reading its byte range");return Buffer.concat(r,s)}async function hi(t,e,n){return await new Promise((r,a)=>{let o=(s,d)=>{s||d===void 0?a(s??new Error(`Cannot read ZIP entry: ${e.fileName}`)):r(d)};n===void 0?t.openReadStream(e,o):t.openReadStream(e,n,o)})}async function kk(t,e){let n=new Xu.ZipFile,r=await t.openWriter(),a=n.outputStream,o=tl(a,r),s={cancelled:!1,complete:!1},d;try{d=vk(e);let c=xk(n,d,s);if(await Promise.race([c,o]),!s.complete)throw new Error("ZIP output ended before entry production completed");n.end(),await o,await r.commit()}catch(c){throw s.cancelled=!0,!s.complete&&d!==void 0&&Rk(d),a.destroyed||a.destroy(c instanceof Error?c:new Error("Cannot write ZIP archive")),await o.catch(()=>{}),await r.abort().catch(()=>{}),c}}async function xk(t,e,n){for(;!n.cancelled;){let r=await e.next();if(n.cancelled)return;if(r.done){n.complete=!0;return}"file"in r.value?t.addReadStream(Ik(r.value.file),r.value.name,{compress:!1}):"data"in r.value?t.addBuffer(Buffer.from(r.value.data),r.value.name,{compress:!1}):t.addReadStream(Ek(r.value),r.value.name,{compress:!1,size:r.value.size})}}function Ik(t){return zu.from((async function*(){let e=await t.openReader();try{for(let n=0;n<e.size;){let r=await e.read(n,Math.min(65536,e.size-n));n+=r.byteLength,yield r}}finally{await e.close()}})())}function el(t,e){if(typeof t!="object"||t===null)return;let n=t;return n[Eo]===e&&typeof n.path=="string"?n.path:void 0}function Ek(t){return zu.from((async function*(){for(let e=0;e<t.size;){let n=await t.read(e,Math.min(65536,t.size-e));e+=n.byteLength,yield n}})())}function vk(t){let e=t[Symbol.asyncIterator];return e===void 0?t[Symbol.iterator]():e.call(t)}function Rk(t){if(t.return!==void 0)try{Promise.resolve(t.return()).catch(()=>{})}catch{}}async function tl(t,e){await lk(t,new uk({write:(n,r,a)=>{e.write(n).then(()=>a(),o=>a(o instanceof Error?o:new Error("Cannot stream ZIP archive")))}}))}async function nl(t){return await new Promise((e,n)=>{let r=[];t.on("data",a=>r.push(a)),t.once("error",n),t.once("end",()=>e(Buffer.concat(r)))})}function Ck(){let t=globalThis.__WIKIGRAPH_DATA_DIR__;if(typeof t=="string"&&t!=="")return t;let e=So.cwd();for(;;){for(let r of[O.join(e,"data"),O.join(e,"packages","core","data")])try{if(fi.statSync(r).isDirectory())return r}catch{}let n=O.dirname(e);if(n===e)throw new Error("Could not locate data directory");e=n}}function vo(t=O.join(Ku.homedir(),".wikigraph")){let e=typeof t=="string"?t:t.libraryRoot,n=typeof t=="string"?O.join(t,"documents"):t.documentStoreRoot;return{library:new De(e),documentStore:new De(n)}}function il(t){Yt(rl),mi(vo(t))}function al(){try{_()}catch{Yt(rl)}try{R()}catch{mi(vo())}}async function yi(t,e){return await en(t===void 0?void 0:vo(t),e)}var So,Un,Eo,se,De,wo,rl,ko,ce=i(()=>{"use strict";go();So=xo.default??xo,Un=Io.default??Io,Eo=Symbol.for("wiki-graph-sdk.node-resource.v1"),se=class{constructor(e,n=O.basename(e)){this.path=e;this.identity=Zu("file",e),this.name=n}path;kind="file";[Eo]="file";identity;name;async openReader(){let e=await q.open(this.path,"r"),n=!1;try{let r=await e.stat();if(!r.isFile())throw new Error("File reader requires a regular file");let{size:a}=r;return{size:a,close:async()=>{n||await e.close(),n=!0},read:async(o,s)=>{if(n)throw new Error("Cannot read from a closed FileReader");Vu(o,s,a);let d=Buffer.allocUnsafe(s),c=0;for(;c<s;){let u=await e.read(d,c,s-c,o+c);if(u.bytesRead===0)throw new Error("File changed while reading its byte range");c+=u.bytesRead}return new Uint8Array(d.buffer,d.byteOffset,c)}}}catch(r){throw await e.close(),r}}async getLastModified(){try{return(await q.stat(this.path)).mtimeMs}catch(e){if(typeof e=="object"&&e!==null&&"code"in e&&e.code==="ENOENT")return;throw e}}async openWriter(){await q.mkdir(O.dirname(this.path),{recursive:!0});let e=`${this.path}.tmp-${Ju.randomUUID()}`,n=await q.open(e,"wx"),r=!1;return{write:async a=>{if(r)throw new Error("Cannot write to a closed FileWriter");await Hu(n,a)},writeAt:async(a,o)=>{if(r)throw new Error("Cannot write to a closed FileWriter");Yu(a),await Hu(n,o,a)},commit:async()=>{r||(await n.close(),await q.rename(e,this.path)),r=!0},abort:async()=>{r||(await n.close(),await q.rm(e,{force:!0})),r=!0}}}};De=class t{constructor(e){this.path=e;this.identity=Zu("directory",e),this.name=O.basename(e)}path;kind="directory";[Eo]="directory";identity;name;async getFile(e){jn(e);let n=new se(O.join(this.path,e));try{return(await q.stat(n.path)).isFile()?n:void 0}catch{return}}async getLastModified(){try{return(await q.stat(this.path)).mtimeMs}catch(e){if(typeof e=="object"&&e!==null&&"code"in e&&e.code==="ENOENT")return;throw e}}async getDirectory(e){jn(e);let n=new t(O.join(this.path,e));try{return(await q.stat(n.path)).isDirectory()?n:void 0}catch{return}}async list(){return(await q.readdir(this.path,{withFileTypes:!0})).map(n=>n.isDirectory()?new t(O.join(this.path,n.name)):new se(O.join(this.path,n.name),n.name))}async createFile(e){jn(e),await q.mkdir(this.path,{recursive:!0});let n=new se(O.join(this.path,e));return await q.writeFile(n.path,"",{flag:"wx"}),n}async createDirectory(e){jn(e),await q.mkdir(this.path,{recursive:!0});let n=new t(O.join(this.path,e));return await q.mkdir(n.path),n}async remove(e,n){jn(e),await q.rm(O.join(this.path,e),{force:!0,recursive:n?.recursive===!0})}};wo=class{constructor(e){this.database=e}database;async close(){await new Promise((e,n)=>{this.database.close(r=>{r?n(r):e()})})}async execute(e){await new Promise((n,r)=>{this.database.exec(e,a=>{a?r(a):n()})})}async queryAll(e,n=[]){return await new Promise((r,a)=>{this.database.all(e,[...n],(o,s)=>{o?a(o):r(s)})})}async queryOne(e,n=[]){return await new Promise((r,a)=>{this.database.get(e,[...n],(o,s)=>{o?a(o):r(s)})})}async run(e,n=[]){await new Promise((r,a)=>{this.database.run(e,[...n],o=>{o?a(o):r()})})}};rl={asyncContext:{create:()=>new $u.AsyncLocalStorage},database:{open:hk},lifecycle:{instanceId:`node-process:${So.pid}`,isInstanceAlive:t=>{let e=/^node-process:(\d+)$/u.exec(t);if(e===null)return Promise.resolve(void 0);try{return So.kill(Number(e[1]),0),Promise.resolve(!0)}catch(n){return typeof n=="object"&&n!==null&&"code"in n&&n.code==="ESRCH"?Promise.resolve(!1):Promise.resolve(!0)}}},resources:{getDirectory:t=>{let e=bo(t,"directory");return Promise.resolve(e===void 0?void 0:new De(e))},getFile:t=>{let e=bo(t,"file");return Promise.resolve(e===void 0?void 0:new se(e))},resolveLegacyDirectory:t=>{let e=bo(t,"directory");return Promise.resolve(e===void 0?void 0:new De(e))}},templates:{createEnvironment:t=>new mk(new ko,t)},zip:{open:yk,write:kk}},ko=class extends pk{#e;constructor(e){super(),this.#e=e}getSource(e){let n=pi(e),r=O.join(this.#e??Ck(),n);return{noCache:!1,path:n,src:fi.readFileSync(r,"utf8")}}}});var Me=i(()=>{"use strict"});function ol(t){return new TextEncoder().encode(t)}function xt(t){let e="";for(let n of t)e+=n.toString(16).padStart(2,"0");return e}var Ee=i(()=>{"use strict"});import{sha1 as Tk}from"@noble/hashes/legacy.js";import{sha256 as _k,sha512 as Pk}from"@noble/hashes/sha2.js";function oe(t){let e=Ak(t);return{update(n){return e.update(typeof n=="string"?ol(n):n),this},digest(n){let r=e.digest();return n==="hex"?xt(r):r}}}function qn(t){let e=new Uint8Array(t);return globalThis.crypto.getRandomValues(e),e}function Ze(){if(typeof globalThis.crypto.randomUUID=="function")return globalThis.crypto.randomUUID();let t=qn(16);t[6]=t[6]&15|64,t[8]=t[8]&63|128;let e=xt(t);return`${e.slice(0,8)}-${e.slice(8,12)}-${e.slice(12,16)}-${e.slice(16,20)}-${e.slice(20)}`}function Ak(t){switch(t){case"sha1":return Tk.create();case"sha256":return _k.create();case"sha512":return Pk.create()}}var F=i(()=>{"use strict";Ee()});var gi=i(()=>{"use strict";F()});var dl=i(()=>{"use strict";y()});var cl=i(()=>{"use strict";dl()});var ul=i(()=>{"use strict"});function Fe(t){return t instanceof Error}function tn(t){let e=[],n=new Set,r=t;for(;r!==void 0&&!n.has(r);){if(n.add(r),r instanceof Error){ll(e,Mk(r)),r=r.cause;continue}ll(e,String(r));break}return e.join(": ")}function Mk(t){let e=t,n=t.message.trim(),r=typeof e.code=="string"&&e.code!==""?e.code:void 0;return r==="ENOENT"?"File not found (ENOENT)":r==="EACCES"||r==="EPERM"?`Permission denied (${r})`:r!==void 0&&Fk(n)?`${t.name} (${r})`:n===""?t.name:r===void 0?n:`${n} (${r})`}function Fk(t){return/(?:^|[\s:'"(=])\/(?:[^\s/]+\/)*[^\s/]+/u.test(t)||/(?:^|[\s:'"(=])[A-Za-z]:[\\/]/u.test(t)||/\bfile:\/\//iu.test(t)}function ll(t,e){let n=e.trim();if(n==="")return;let r=t.at(-1);if(r===void 0){t.push(n);return}if(!(r===n||r.includes(n))){if(n.includes(r)){t[t.length-1]=n;return}t.push(n)}}var pe=i(()=>{"use strict";y()});var ml=i(()=>{"use strict";pe()});var pl=i(()=>{"use strict"});import{APICallError as oA}from"ai";var hl=i(()=>{"use strict";y()});var et=i(()=>{"use strict";y()});var It,Hn=i(()=>{"use strict";It=class{#e=0;#t;#n=[];constructor(e){if(!Number.isInteger(e)||e<1)throw new RangeError("concurrency must be a positive integer");this.#t=e}async use(e){await this.#r();try{return await e()}finally{this.#i()}}async#r(){if(this.#e<this.#t){this.#e+=1;return}await new Promise(e=>{this.#n.push(()=>{this.#e+=1,e()})})}#i(){this.#e-=1,this.#n.shift()?.()}}});var Co=i(()=>{"use strict";et()});var To=i(()=>{"use strict"});var fl=i(()=>{"use strict";y()});var _o=i(()=>{"use strict"});import{generateText as OA,streamText as NA}from"ai";var gl=i(()=>{"use strict";cl();ul();ml();pl();hl();et();Gn();Hn();gi();pe();Co();To();fl();_o()});var bl=i(()=>{"use strict";gl()});var Ao=i(()=>{"use strict";bl();Co();To();_o()});var qk,Lo,Sl,nn=i(()=>{"use strict";qk=Object.freeze(["serial-generation/editor-compress","serial-generation/editor-review","serial-generation/editor-review-guide","serial-generation/reader-choice","serial-generation/reader-extraction"]),Lo=Object.freeze({compress:"serial-generation/editor-compress",review:"serial-generation/editor-review",reviewGuide:"serial-generation/editor-review-guide"}),Sl=Object.freeze({choice:"serial-generation/reader-choice",extraction:"serial-generation/reader-extraction"})});var Q,Z=i(()=>{"use strict";Q=class extends Error{code;details;constructor(e,n,r={},a={}){super(n,a),this.name="WikiGraphError",this.code=e,this.details=r}}});var Oo=i(()=>{"use strict"});async function Hk(t){try{return await wt(t)}catch(e){if(Fe(e)&&e.code==="ENOENT")return!0;throw e}}function S(t,e){let n=t[e];if(typeof n!="number")throw new TypeError(`Expected ${e} to be a number`);return n}function E(t,e){let n=t[e];if(typeof n!="string")throw new TypeError(`Expected ${e} to be a string`);return n}var Bk,N,No,w=i(()=>{"use strict";y();pe();Bk=900*1e3;N=class t{#e;#t;#n;#r;#i=!1;#u=Promise.resolve();#d=0;constructor(e,n={}){this.#e=e,this.#t=n.onWrite,this.#n=_().asyncContext.create()}static async open(e,n,r){let a=await kt(e),o=r.mode==="readwrite"&&r.create&&n.trim()!==""&&await Hk(a),s=r.mode==="readonly"?await _().database.open(a,{mode:"readonly"}):await _().database.open(a,{create:r.create,mode:"readwrite"}),d;try{return d=new t(new No(s),r),await d.#o(`PRAGMA busy_timeout = ${Bk}`),r.mode==="readwrite"&&n.trim()!==""&&(await d.#o(n),o&&d.#c()),d}catch(c){throw d===void 0?await s.close().catch(()=>{}):await d.close().catch(()=>{}),c}}static async initialize(e,n){let r=await t.open(e,"",{create:!0,mode:"readwrite"});try{n.trim()!==""&&await r.#o(n)}finally{await r.close()}}async queryAll(e,n,r){return await this.#a(async()=>(this.#s(),(await this.#m(e,n)).map(r)))}async queryOne(e,n,r){return await this.#a(async()=>{this.#s();let a=await this.#p(e,n);return a===void 0?void 0:r(a)})}async run(e,n){await this.#a(async()=>{this.#s(),await this.#h(e,n),this.#c()})}async execute(e){await this.#a(async()=>{this.#s(),await this.#o(e),this.#c()})}async transaction(e){return await this.#a(async()=>{this.#s();let n=this.#d===0,r=this.#r??Symbol("database transaction scope");n&&(await this.#o("BEGIN IMMEDIATE"),this.#r=r),this.#d+=1;try{let a=await this.#n.run(r,e);return n&&await this.#o("COMMIT"),a}catch(a){throw n&&await this.#o("ROLLBACK"),a}finally{this.#d-=1,n&&(this.#r=void 0)}})}async flush(){await this.#a(()=>{this.#s()})}async close(){await this.#a(async()=>{this.#i||(await this.#l(),this.#i=!0)})}async getLastInsertRowId(){let e=await this.queryOne("SELECT last_insert_rowid() AS row_id",void 0,n=>S(n,"row_id"));if(e===void 0)throw new Error("Could not read last_insert_rowid()");return e}#s(){if(this.#i)throw new Error("Database is already closed")}async#a(e){let n=this.#n.getStore();if(n!==void 0&&n===this.#r)return await e();let r=this.#u.then(e);return this.#u=r.then(()=>{},()=>{}),await r}#c(){this.#t?.()}async#l(){await this.#e.close()}async#o(e){await this.#e.execute(e)}async#m(e,n){return await this.#e.queryAll(e,n)}async#p(e,n){return await this.#e.queryOne(e,n)}async#h(e,n){await this.#e.run(e,n)}};No=class{#e;constructor(e){this.#e=e}async close(){await this.#e.close()}async execute(e){await this.#e.execute(e)}async queryAll(e,n){return[...await this.#e.queryAll(e,n)]}async queryOne(e,n){return await this.#e.queryOne(e,n)}async run(e,n){await this.#e.run(e,n)}}});async function Et(){let t=R().library,e=Si.get(t.identity);if(e!==void 0){await e;return}let n=Jk(t);Si.set(t.identity,n);try{await n}finally{Si.get(t.identity)===n&&Si.delete(t.identity)}}async function Ei(){let t=await J(R().library,"core.sqlite");if(t===void 0||await vi(t))return 0;let e=await N.open(t,"",{mode:"readonly"});try{return await rn(e,"schema_versions")?await e.queryOne("SELECT version FROM schema_versions WHERE scope = ?",["home"],n=>S(n,"version"))??1:1}finally{await e.close()}}async function Jk(t){let e=await Ei();if(e>Wo)throw new Error(`Unsupported Wiki Graph home schema version: ${e}.`);let n=await H(t,"core.sqlite");if(e===0){await wi(n,Wo);return}for(;e<Wo;)switch(e){case 1:await wl(t),await wi(n,2),e=2;break;case 2:await wl(t),await wi(n,3),e=3;break;case 3:await Kk(n),await wi(n,4),e=4;break;default:throw new Error(`Unsupported Wiki Graph home schema version: ${e}.`)}}async function wl(t){await vl(t),await El(t)}async function Kk(t){let e=R().library;await vl(e),await zk(t),await El(e)}async function zk(t){let e=await N.open(t,"",{create:!1,mode:"readwrite"});try{if(!await rn(e,"libraries"))return;let n=await xi(e,"libraries"),r=n.has("folder_identity")?"folder_identity":n.has("folder_path")?"folder_path":void 0;if(r===void 0)throw new Error("Cannot migrate library registry without a folder reference.");let a=await e.queryAll(`SELECT id, ${r} AS folder_reference FROM libraries ORDER BY id`,void 0,s=>({id:S(s,"id"),reference:E(s,"folder_reference")})),o=[];for(let s of a){let d=_().resources,c=r==="folder_identity"||d.resolveLegacyDirectory===void 0?await d.getDirectory(s.reference):await d.resolveLegacyDirectory(s.reference);if(c===void 0)throw new Error(`Cannot migrate unavailable library Directory for registry id ${s.id}.`);o.push({id:s.id,identity:c.identity})}await e.transaction(async()=>{n.has("folder_identity")||await e.run("ALTER TABLE libraries RENAME COLUMN folder_path TO folder_identity");for(let s of o)await e.run("UPDATE libraries SET folder_identity = ? WHERE id = ?",[s.identity,s.id])})}finally{await e.close()}}async function wi(t,e){let n=await N.open(t,"",{create:!0,mode:"readwrite"});try{await n.execute($k),await n.run(`INSERT INTO schema_versions (scope, version, updated_at)
7
7
  VALUES (?, ?, ?)
8
8
  ON CONFLICT(scope) DO UPDATE SET
9
9
  version = excluded.version,
10
- updated_at = excluded.updated_at`,["home",e,new Date().toISOString()])}finally{await n.close()}}async function pl(t){await $n(await t.getDirectory("cache"),["search-sessions.sqlite","continuation-cursors.sqlite","cache.sqlite"]);let e=await t.getDirectory("staging");await $n(e,["library","work"]),await wi(e,"staging.sqlite");let n=await t.getDirectory("tmp");await wi(n,"gc.sqlite"),await wi(n,"wikg-coordinator.sqlite"),await $n(n,["gc.last-run"]);let r=await t.getDirectory("jobs");await $n(r,["cache","work"]),await wi(r,"job.sqlite");let a=R().documentStore,o;try{o=await a.list()}catch(s){if(Fe(s)&&s.code==="ENOENT")return;throw s}for(let s of o)(s.name===".wikg-work"||s.name===".wikg-cache"||s.name.startsWith(".wikg-session-")||s.name.startsWith(".wikg-upgrade-"))&&await a.remove(s.name,{recursive:U(s)})}async function wi(t,e){await $n(t,[e,`${e}-wal`,`${e}-shm`])}async function $n(t,e){if(t===void 0)return;let n=new Map((await t.list()).map(r=>[r.name,r]));for(let r of e){let a=n.get(r);a!==void 0&&await t.remove(r,{recursive:U(a)})}}async function hl(t){await ll(await J(t,"core.sqlite"),[["library_locks","Cannot upgrade home with active library locks."],["state_locks","Cannot upgrade home with active state locks."]]),await ll(await J(t,"tmp/gc.sqlite"),[["gc_locks","Cannot upgrade home with an active GC lock."]]),await qk(await J(t,"jobs/job.sqlite")),await ul(await J(t,"staging/staging.sqlite"),"legacy coordinator"),await ul(await J(t,"tmp/wikg-coordinator.sqlite"),"coordinator")}async function qk(t){if(t===void 0||await Ei(t))return;let e=await N.open(t,"",{mode:"readonly"});try{if(await nn(e,"build_worker_lease")){let n=await ki(e,"build_worker_lease"),a=["owner_id","owner_pid"].filter(s=>n.has(s)).map(s=>`${s} IS NOT NULL`).join(" OR ");if(await e.queryOne(`SELECT 1 AS active FROM build_worker_lease
10
+ updated_at = excluded.updated_at`,["home",e,new Date().toISOString()])}finally{await n.close()}}async function El(t){await $n(await t.getDirectory("cache"),["search-sessions.sqlite","continuation-cursors.sqlite","cache.sqlite"]);let e=await t.getDirectory("staging");await $n(e,["library","work"]),await ki(e,"staging.sqlite");let n=await t.getDirectory("tmp");await ki(n,"gc.sqlite"),await ki(n,"wikg-coordinator.sqlite"),await $n(n,["gc.last-run"]);let r=await t.getDirectory("jobs");await $n(r,["cache","work"]),await ki(r,"job.sqlite");let a=R().documentStore,o;try{o=await a.list()}catch(s){if(Fe(s)&&s.code==="ENOENT")return;throw s}for(let s of o)(s.name===".wikg-work"||s.name===".wikg-cache"||s.name.startsWith(".wikg-session-")||s.name.startsWith(".wikg-upgrade-"))&&await a.remove(s.name,{recursive:U(s)})}async function ki(t,e){await $n(t,[e,`${e}-wal`,`${e}-shm`])}async function $n(t,e){if(t===void 0)return;let n=new Map((await t.list()).map(r=>[r.name,r]));for(let r of e){let a=n.get(r);a!==void 0&&await t.remove(r,{recursive:U(a)})}}async function vl(t){await xl(await J(t,"core.sqlite"),[["library_locks","Cannot upgrade home with active library locks."],["state_locks","Cannot upgrade home with active state locks."]]),await xl(await J(t,"tmp/gc.sqlite"),[["gc_locks","Cannot upgrade home with an active GC lock."]]),await Qk(await J(t,"jobs/job.sqlite")),await kl(await J(t,"staging/staging.sqlite"),"legacy coordinator"),await kl(await J(t,"tmp/wikg-coordinator.sqlite"),"coordinator")}async function Qk(t){if(t===void 0||await vi(t))return;let e=await N.open(t,"",{mode:"readonly"});try{if(await rn(e,"build_worker_lease")){let n=await xi(e,"build_worker_lease"),a=["owner_id","owner_pid"].filter(s=>n.has(s)).map(s=>`${s} IS NOT NULL`).join(" OR ");if(await e.queryOne(`SELECT 1 AS active FROM build_worker_lease
11
11
  WHERE heartbeat_at IS NOT NULL
12
12
  AND heartbeat_at >= ?
13
13
  ${a===""?"":`AND (${a})`}
14
- LIMIT 1`,[Date.now()-xi],()=>!0)===!0)throw Jn("Cannot upgrade home with an active build worker.")}}finally{await e.close()}}async function ul(t,e){if(t===void 0||await Ei(t))return;let n=await N.open(t,"",{mode:"readonly"});try{if(await nn(n,"archive_owners")){let r=await ki(n,"archive_owners"),a=await n.queryAll(`SELECT heartbeat_at${r.has("host_instance_id")?", host_instance_id":""}
15
- FROM archive_owners`,void 0,o=>({heartbeatAt:S(o,"heartbeat_at"),hostInstanceId:typeof o.host_instance_id=="string"?o.host_instance_id:void 0}));for(let o of a){if(o.hostInstanceId===void 0){if(ml(o.heartbeatAt))throw Jn(`Cannot upgrade home with active ${e} state.`);continue}let s=await A().lifecycle.isInstanceAlive(o.hostInstanceId);if(s===!0||s===void 0&&ml(o.heartbeatAt))throw Jn(`Cannot upgrade home with active ${e} state.`)}}for(let r of["entry_locks","entry_sqlite_leases","archive_commit_locks"]){if(!await nn(n,r)||!(await ki(n,r)).has("heartbeat_at"))continue;if(await n.queryOne(`SELECT 1 AS active FROM ${r} WHERE heartbeat_at >= ? LIMIT 1`,[Date.now()-xi],()=>!0)===!0)throw Jn(`Cannot upgrade home with active ${e} state.`)}}finally{await n.close()}}async function ll(t,e){if(t===void 0||await Ei(t))return;let n=await N.open(t,"",{mode:"readonly"});try{for(let[r,a]of e){if(!await nn(n,r))continue;if(await n.queryOne(`SELECT 1 AS active FROM ${r} WHERE heartbeat_at >= ? LIMIT 1`,[Date.now()-xi],()=>!0)===!0)throw Jn(a)}}finally{await n.close()}}function Jn(t){return new Q("home_upgrade_blocked",t)}function ml(t){return t!==void 0&&Date.now()-t<=xi}async function Ei(t){return await wt(t)}async function ki(t,e){return new Set(await t.queryAll(`PRAGMA table_info(${e})`,void 0,n=>E(n,"name")))}async function nn(t,e){return await t.queryOne("SELECT 1 AS present FROM sqlite_master WHERE type = 'table' AND name = ?",[e],()=>!0)===!0}var Po,xi,Gk,bi,vi=i(()=>{"use strict";y();pe();Z();w();Po=4,xi=300*1e3,Gk=`
14
+ LIMIT 1`,[Date.now()-Ii],()=>!0)===!0)throw Jn("Cannot upgrade home with an active build worker.")}}finally{await e.close()}}async function kl(t,e){if(t===void 0||await vi(t))return;let n=await N.open(t,"",{mode:"readonly"});try{if(await rn(n,"archive_owners")){let r=await xi(n,"archive_owners"),a=await n.queryAll(`SELECT heartbeat_at${r.has("host_instance_id")?", host_instance_id":""}
15
+ FROM archive_owners`,void 0,o=>({heartbeatAt:S(o,"heartbeat_at"),hostInstanceId:typeof o.host_instance_id=="string"?o.host_instance_id:void 0}));for(let o of a){if(o.hostInstanceId===void 0){if(Il(o.heartbeatAt))throw Jn(`Cannot upgrade home with active ${e} state.`);continue}let s=await _().lifecycle.isInstanceAlive(o.hostInstanceId);if(s===!0||s===void 0&&Il(o.heartbeatAt))throw Jn(`Cannot upgrade home with active ${e} state.`)}}for(let r of["entry_locks","entry_sqlite_leases","archive_commit_locks"]){if(!await rn(n,r)||!(await xi(n,r)).has("heartbeat_at"))continue;if(await n.queryOne(`SELECT 1 AS active FROM ${r} WHERE heartbeat_at >= ? LIMIT 1`,[Date.now()-Ii],()=>!0)===!0)throw Jn(`Cannot upgrade home with active ${e} state.`)}}finally{await n.close()}}async function xl(t,e){if(t===void 0||await vi(t))return;let n=await N.open(t,"",{mode:"readonly"});try{for(let[r,a]of e){if(!await rn(n,r))continue;if(await n.queryOne(`SELECT 1 AS active FROM ${r} WHERE heartbeat_at >= ? LIMIT 1`,[Date.now()-Ii],()=>!0)===!0)throw Jn(a)}}finally{await n.close()}}function Jn(t){return new Q("home_upgrade_blocked",t)}function Il(t){return t!==void 0&&Date.now()-t<=Ii}async function vi(t){return await wt(t)}async function xi(t,e){return new Set(await t.queryAll(`PRAGMA table_info(${e})`,void 0,n=>E(n,"name")))}async function rn(t,e){return await t.queryOne("SELECT 1 AS present FROM sqlite_master WHERE type = 'table' AND name = ?",[e],()=>!0)===!0}var Wo,Ii,$k,Si,Ri=i(()=>{"use strict";y();pe();Z();w();Wo=4,Ii=300*1e3,$k=`
16
16
  CREATE TABLE IF NOT EXISTS schema_versions (
17
17
  scope TEXT PRIMARY KEY,
18
18
  version INTEGER NOT NULL,
19
19
  updated_at TEXT NOT NULL
20
20
  );
21
- `,bi=new Map});async function X(t,e,n={create:!0,mode:"readwrite"}){await Et();let r=await H(R().library,t);return n.mode==="readonly"?await Kn(r,e,n):await Kn(r,e,n)}async function Kn(t,e,n={create:!0,mode:"readwrite"}){let r=await kt(t);return n.mode==="readonly"?await N.open(r,e,n):await N.open(r,e,n)}var fl=i(()=>{"use strict";y();vi();w()});function Ci(...t){let e=[];for(let n of t)for(let r of n.replaceAll("\\","/").split("/"))if(!(r===""||r==="."))if(r===".."){if(e.length===0)throw new TypeError("Relative path escapes its root");e.pop()}else e.push(r);return e.join("/")}function Ao(t){return Ci(t).split("/").at(-1)??""}var vt=i(()=>{"use strict"});var zn=i(()=>{"use strict";vt()});var yl=i(()=>{"use strict"});function rn(t){let e=new Set(Object.values(t));return n=>e.has(n)}function Qn(t,e){let n=rn(t);return r=>{if(n(r))return r;throw new Error(`Unknown ${e}: ${r}`)}}var Lo=i(()=>{"use strict"});var he,gl,Oo,ve,bl,Ti,Re=i(()=>{"use strict";Lo();he=(a=>(a.Verbatim="verbatim",a.Detailed="detailed",a.Focused="focused",a.Relevant="relevant",a))(he||{}),gl=rn(he),Oo=Qn(he,"chunk retention"),ve=(r=>(r.Critical="critical",r.Important="important",r.Helpful="helpful",r))(ve||{}),bl=rn(ve),Ti=Qn(ve,"chunk importance")});var No=i(()=>{"use strict";Re()});function tt(t){let e=0,n=!1;for(let r of t.trim()){if(Hk.test(r)){e+=1,n=!1;continue}if($k.test(r)){n||(e+=1),n=!0;continue}n&&Jk.test(r)||(n=!1)}return e}var Hk,$k,Jk,nt=i(()=>{"use strict";Hk=new RegExp("\\p{Script=Han}","u"),$k=/[\p{Letter}\p{Number}]/u,Jk=new RegExp("\\p{Mark}","u")});var wl=i(()=>{"use strict";nt();Re()});var _i=i(()=>{"use strict"});var Do=i(()=>{"use strict";zn();Re();No();wl();_i()});var kl=i(()=>{"use strict";zn();yl();Do()});var Mo=i(()=>{"use strict";kl();No();Do();_i()});var Pi=i(()=>{"use strict";y();vt()});var Fo=i(()=>{"use strict"});var Il=i(()=>{"use strict";vt();Pi()});var El=i(()=>{"use strict";nt()});var Go=i(()=>{"use strict"});var jo=i(()=>{"use strict";vt();pe();Fo();Pi();Il();El();Go()});var vl=i(()=>{"use strict";vt();Pi();jo()});var Uo=i(()=>{"use strict";vl();Fo();jo();Go()});import{z as fe}from"zod";var Bo,Ge,Rl,qo,Xn=i(()=>{"use strict";Bo=["epub","pdf","txt","markdown"],Ge=1,Rl=fe.enum(Bo),qo=fe.object({version:fe.literal(Ge),sourceFormat:Rl,title:fe.string().min(1).nullable().default(null),authors:fe.array(fe.string().min(1)),language:fe.string().min(1).nullable(),identifier:fe.string().min(1).nullable(),publisher:fe.string().min(1).nullable(),publishedAt:fe.string().min(1).nullable(),description:fe.string().min(1).nullable()})});function Cl(t,e="chapter key"){if(t===""||t==="."||t===".."||t.includes("/"))throw new Error(`Invalid ${e}: chapter paths do not support empty, '.', '..', or relative segments.`);if(!/^[a-z0-9][a-z0-9-]*$/u.test(t))throw new Error(`Invalid ${e}: ${t}. Use lowercase letters, numbers, and hyphens.`);if(/^\d+$/u.test(t))throw new Error(`Invalid ${e}: numeric chapter keys are not accepted.`);if(ex.has(t))throw new Error(`Invalid ${e}: ${t} is reserved.`);return t}var ex,ye=i(()=>{"use strict";Ee();F();ex=new Set(["tree","source","summary","title","state","chunk","entity","triple","cover","meta","job","help"])});import{z as je}from"zod";var rt,Ho,Tl,$o=i(()=>{"use strict";ye();rt=1,Ho=je.object({key:je.string().min(1).transform(t=>Cl(t)).optional(),title:je.string().min(1).nullable().optional(),serialId:je.number().int().nonnegative().optional(),children:je.lazy(()=>je.array(Ho))}),Tl=je.object({version:je.literal(rt),items:je.array(Ho)})});function Ce(t){let e=[];for(let n of t.replaceAll("\\","/").trim().split("/"))n===""||n==="."||(n===".."?e.pop():e.push(n));return e.join("/")}function tx(t){let[e]=t.split("#",1);return Ce(e??"")}function Jo(t){if(t===void 0)return;let e=t.startsWith("#")?t.slice(1):t;return e===""?void 0:e}function Vn(t){let[e,n]=t.split("#",2);return{path:Ce(e??""),fragment:Jo(n)}}function nx(t){return t.split("/").slice(0,-1).join("/")}function rx(...t){return t.filter(Boolean).join("/")}var Ai,Yn=i(()=>{"use strict";y();F();Ai=class t{#e;#t;#n;#r;constructor(e,n,r,a){this.#e=e,this.#n=n,this.#t=r,this.#r=a}static async open(e){let n=await e.openReader(),r=oe("sha256");try{for(let s=0;s<n.size;){let d=await n.read(s,Math.min(65536,n.size-s));r.update(d),s+=d.byteLength}}finally{await n.close()}let a=r.digest("hex"),o=await A().zip.open(e);try{let s=new Map;for(let d of await o.listEntries()){let c=Ce(d);c!==""&&s.set(c,d)}return new t(e,o,s,a)}catch(s){throw await o.close(),s}}close(){return this.#n.close()}hasEntry(e){return this.#t.has(Ce(e))}listEntries(){return[...this.#t.keys()]}async readText(e){return new TextDecoder().decode(await this.readBuffer(e))}async readBuffer(e){let n=this.#i(e),r=await this.#n.readEntry(n);if(r===void 0)throw new Error(`EPUB entry does not exist: ${Ce(e)}`);return r}resolveRelativePath(e,n){let r=tx(n);if(r==="")throw new Error(`Invalid EPUB href: ${n}`);return Ce(rx(nx(Ce(e)),r))}createSectionId(e,n){let r=Ce(e);return n===void 0||n===""?r:`${r}#${n}`}createSyntheticSectionId(e,n){let r=Ce(e);return`toc:${oe("sha1").update(`${r}:${n??""}`).digest("hex").slice(0,10)}`}get name(){return this.#e.name}get digest(){return this.#r}#i(e){let n=Ce(e),r=this.#t.get(n);if(r===void 0)throw new Error(`EPUB entry does not exist: ${n}`);return r}}});import{parseDocument as ix}from"htmlparser2";async function Nl(t,e){let n=new Map;for(let[r,a]of e.entries()){let o=await Wl(t,r),s=Dl(o,a);for(let d of a){let c=s.get(d.id)??"";n.set(d.id,{hasContent:c.trim()!=="",wordsCount:tt(c)})}}return n}function sx(t){let e=new Map;for(let[n,r]of t.entries())for(let a of r)e.set(a.id,{path:n,targets:r});return e}async function Wl(t,e){return await t.readText(e)}function Dl(t,e){let n=Ml(t,e,!1);return new Map([...n.entries()].map(([r,a])=>[e[r].id,a.text]))}function dx(t,e,n){let r=Ml(t,e,!0),a=e.findIndex(s=>s.id===n),o=r.get(a);if(o===void 0)throw new Error("EPUB section content could not be parsed.");return o}function Ml(t,e,n){let r=new Map,a=new Map,o=[...e],d=o[0]?.fragment===void 0&&o[0]!==void 0?0:-1;o.forEach((g,C)=>{a.set(C,[]),g.fragment!==void 0&&!r.has(g.fragment)&&r.set(g.fragment,C)});let c=ix(t,{decodeEntities:!0}),u=(c.children??[]).find(Al);if(u===void 0){if(n)throw new Error("EPUB XHTML document has no root element for CFI.");m(c,"")}else m(u,"");return new Map([...a.entries()].map(([g,C])=>{let L=ux(C);return[g,{segments:L.segments,text:L.text}]}));function m(g,C){if(Pl(g)){if(d<0||d>=o.length)return;let j=g.data??"";if(j==="")return;let ie=o[d],St=ie?.spineIndex;if(n&&St===void 0)throw new Error(`EPUB section ${ie?.id??"unknown"} cannot produce a CFI locator.`);let ci=n&&St!==void 0?Ol(St,C,0,j.length):Ko;f(d,j,ci,n?0:void 0,n?j.length:void 0);return}let L=px(g);if(L===void 0){b(g,C);return}if(ox.has(L))return;let K=C,q=g.attribs?.id??g.attribs?.["xml:id"];if(q!==void 0){let j=r.get(q);j!==void 0&&j>d&&(d=j)}L==="br"&&k(d,`
22
- `,K),b(g,K),ax.has(L)&&k(d,`
21
+ `,Si=new Map});async function X(t,e,n={create:!0,mode:"readwrite"}){await Et();let r=await H(R().library,t);return n.mode==="readonly"?await Kn(r,e,n):await Kn(r,e,n)}async function Kn(t,e,n={create:!0,mode:"readwrite"}){let r=await kt(t);return n.mode==="readonly"?await N.open(r,e,n):await N.open(r,e,n)}var Rl=i(()=>{"use strict";y();Ri();w()});function Ti(...t){let e=[];for(let n of t)for(let r of n.replaceAll("\\","/").split("/"))if(!(r===""||r==="."))if(r===".."){if(e.length===0)throw new TypeError("Relative path escapes its root");e.pop()}else e.push(r);return e.join("/")}function Do(t){return Ti(t).split("/").at(-1)??""}var vt=i(()=>{"use strict"});var zn=i(()=>{"use strict";vt()});var Cl=i(()=>{"use strict"});function an(t){let e=new Set(Object.values(t));return n=>e.has(n)}function Qn(t,e){let n=an(t);return r=>{if(n(r))return r;throw new Error(`Unknown ${e}: ${r}`)}}var Mo=i(()=>{"use strict"});var he,Tl,Fo,ve,_l,_i,Re=i(()=>{"use strict";Mo();he=(a=>(a.Verbatim="verbatim",a.Detailed="detailed",a.Focused="focused",a.Relevant="relevant",a))(he||{}),Tl=an(he),Fo=Qn(he,"chunk retention"),ve=(r=>(r.Critical="critical",r.Important="important",r.Helpful="helpful",r))(ve||{}),_l=an(ve),_i=Qn(ve,"chunk importance")});var Go=i(()=>{"use strict";Re()});function tt(t){let e=0,n=!1;for(let r of t.trim()){if(Xk.test(r)){e+=1,n=!1;continue}if(Vk.test(r)){n||(e+=1),n=!0;continue}n&&Yk.test(r)||(n=!1)}return e}var Xk,Vk,Yk,nt=i(()=>{"use strict";Xk=new RegExp("\\p{Script=Han}","u"),Vk=/[\p{Letter}\p{Number}]/u,Yk=new RegExp("\\p{Mark}","u")});var Al=i(()=>{"use strict";nt();Re()});var Pi=i(()=>{"use strict"});var Uo=i(()=>{"use strict";zn();Re();Go();Al();Pi()});var Ll=i(()=>{"use strict";zn();Cl();Uo()});var qo=i(()=>{"use strict";Ll();Go();Uo();Pi()});var Ai=i(()=>{"use strict";y();vt()});var Bo=i(()=>{"use strict"});var Nl=i(()=>{"use strict";vt();Ai()});var Wl=i(()=>{"use strict";nt()});var Ho=i(()=>{"use strict"});var $o=i(()=>{"use strict";vt();pe();Bo();Ai();Nl();Wl();Ho()});var Dl=i(()=>{"use strict";vt();Ai();$o()});var Jo=i(()=>{"use strict";Dl();Bo();$o();Ho()});import{z as fe}from"zod";var Ko,Ge,Ml,zo,Xn=i(()=>{"use strict";Ko=["epub","pdf","txt","markdown"],Ge=1,Ml=fe.enum(Ko),zo=fe.object({version:fe.literal(Ge),sourceFormat:Ml,title:fe.string().min(1).nullable().default(null),authors:fe.array(fe.string().min(1)),language:fe.string().min(1).nullable(),identifier:fe.string().min(1).nullable(),publisher:fe.string().min(1).nullable(),publishedAt:fe.string().min(1).nullable(),description:fe.string().min(1).nullable()})});function Fl(t,e="chapter key"){if(t===""||t==="."||t===".."||t.includes("/"))throw new Error(`Invalid ${e}: chapter paths do not support empty, '.', '..', or relative segments.`);if(!/^[a-z0-9][a-z0-9-]*$/u.test(t))throw new Error(`Invalid ${e}: ${t}. Use lowercase letters, numbers, and hyphens.`);if(/^\d+$/u.test(t))throw new Error(`Invalid ${e}: numeric chapter keys are not accepted.`);if(ox.has(t))throw new Error(`Invalid ${e}: ${t} is reserved.`);return t}var ox,ye=i(()=>{"use strict";Ee();F();ox=new Set(["tree","source","summary","title","state","chunk","entity","triple","cover","meta","job","help"])});import{z as je}from"zod";var rt,Qo,Gl,Xo=i(()=>{"use strict";ye();rt=1,Qo=je.object({key:je.string().min(1).transform(t=>Fl(t)).optional(),title:je.string().min(1).nullable().optional(),serialId:je.number().int().nonnegative().optional(),children:je.lazy(()=>je.array(Qo))}),Gl=je.object({version:je.literal(rt),items:je.array(Qo)})});function Ce(t){let e=[];for(let n of t.replaceAll("\\","/").trim().split("/"))n===""||n==="."||(n===".."?e.pop():e.push(n));return e.join("/")}function sx(t){let[e]=t.split("#",1);return Ce(e??"")}function Vo(t){if(t===void 0)return;let e=t.startsWith("#")?t.slice(1):t;return e===""?void 0:e}function Vn(t){let[e,n]=t.split("#",2);return{path:Ce(e??""),fragment:Vo(n)}}function dx(t){return t.split("/").slice(0,-1).join("/")}function cx(...t){return t.filter(Boolean).join("/")}var Li,Yn=i(()=>{"use strict";y();F();Li=class t{#e;#t;#n;#r;constructor(e,n,r,a){this.#e=e,this.#n=n,this.#t=r,this.#r=a}static async open(e){let n=await e.openReader(),r=oe("sha256");try{for(let s=0;s<n.size;){let d=await n.read(s,Math.min(65536,n.size-s));r.update(d),s+=d.byteLength}}finally{await n.close()}let a=r.digest("hex"),o=await _().zip.open(e);try{let s=new Map;for(let d of await o.listEntries()){let c=Ce(d);c!==""&&s.set(c,d)}return new t(e,o,s,a)}catch(s){throw await o.close(),s}}close(){return this.#n.close()}hasEntry(e){return this.#t.has(Ce(e))}listEntries(){return[...this.#t.keys()]}async readText(e){return new TextDecoder().decode(await this.readBuffer(e))}async readBuffer(e){let n=this.#i(e),r=await this.#n.readEntry(n);if(r===void 0)throw new Error(`EPUB entry does not exist: ${Ce(e)}`);return r}resolveRelativePath(e,n){let r=sx(n);if(r==="")throw new Error(`Invalid EPUB href: ${n}`);return Ce(cx(dx(Ce(e)),r))}createSectionId(e,n){let r=Ce(e);return n===void 0||n===""?r:`${r}#${n}`}createSyntheticSectionId(e,n){let r=Ce(e);return`toc:${oe("sha1").update(`${r}:${n??""}`).digest("hex").slice(0,10)}`}get name(){return this.#e.name}get digest(){return this.#r}#i(e){let n=Ce(e),r=this.#t.get(n);if(r===void 0)throw new Error(`EPUB entry does not exist: ${n}`);return r}}});import{parseDocument as ux}from"htmlparser2";async function $l(t,e){let n=new Map;for(let[r,a]of e.entries()){let o=await Jl(t,r),s=Kl(o,a);for(let d of a){let c=s.get(d.id)??"";n.set(d.id,{hasContent:c.trim()!=="",wordsCount:tt(c)})}}return n}function px(t){let e=new Map;for(let[n,r]of t.entries())for(let a of r)e.set(a.id,{path:n,targets:r});return e}async function Jl(t,e){return await t.readText(e)}function Kl(t,e){let n=zl(t,e,!1);return new Map([...n.entries()].map(([r,a])=>[e[r].id,a.text]))}function hx(t,e,n){let r=zl(t,e,!0),a=e.findIndex(s=>s.id===n),o=r.get(a);if(o===void 0)throw new Error("EPUB section content could not be parsed.");return o}function zl(t,e,n){let r=new Map,a=new Map,o=[...e],d=o[0]?.fragment===void 0&&o[0]!==void 0?0:-1;o.forEach((g,C)=>{a.set(C,[]),g.fragment!==void 0&&!r.has(g.fragment)&&r.set(g.fragment,C)});let c=ux(t,{decodeEntities:!0}),u=(c.children??[]).find(ql);if(u===void 0){if(n)throw new Error("EPUB XHTML document has no root element for CFI.");m(c,"")}else m(u,"");return new Map([...a.entries()].map(([g,C])=>{let L=yx(C);return[g,{segments:L.segments,text:L.text}]}));function m(g,C){if(Ul(g)){if(d<0||d>=o.length)return;let j=g.data??"";if(j==="")return;let ie=o[d],St=ie?.spineIndex;if(n&&St===void 0)throw new Error(`EPUB section ${ie?.id??"unknown"} cannot produce a CFI locator.`);let ci=n&&St!==void 0?Hl(St,C,0,j.length):Yo;f(d,j,ci,n?0:void 0,n?j.length:void 0);return}let L=Sx(g);if(L===void 0){b(g,C);return}if(mx.has(L))return;let K=C,B=g.attribs?.id??g.attribs?.["xml:id"];if(B!==void 0){let j=r.get(B);j!==void 0&&j>d&&(d=j)}L==="br"&&k(d,`
22
+ `,K),b(g,K),lx.has(L)&&k(d,`
23
23
 
24
- `,K)}function b(g,C){let L=0,K=new Map;for(let q of g.children??[]){if(Pl(q)){if(d<0||d>=o.length)continue;let ie=q.data??"";if(ie==="")continue;let St=L*2+1,ci=K.get(St)??0;K.set(St,ci+ie.length);let Vw=Ll(C,St,!0);v(q,Vw,ci,ie.length);continue}if(!Al(q))continue;let j=Ll(C,L,!1,q.attribs?.id??q.attribs?.["xml:id"]);L+=1,m(q,j)}}function v(g,C,L,K){if(d<0||d>=o.length)return;let q=g.data??"",j=o[d],ie=j?.spineIndex;if(n&&ie===void 0)throw new Error(`EPUB section ${j?.id??"unknown"} cannot produce a CFI locator.`);f(d,q,n&&ie!==void 0?Ol(ie,C,L,L+K):Ko,n?L:void 0,n?L+K:void 0)}function f(g,C,L,K,q){let j=a.get(g);j!==void 0&&j.push({locator:L,...q===void 0?{}:{locatorEnd:q},...K===void 0?{}:{locatorStart:K},text:C})}function k(g,C,L){if(g<0||g>=o.length)return;let K=o[g],q=K?.spineIndex;if(n&&q===void 0)throw new Error(`EPUB section ${K?.id??"unknown"} cannot produce a CFI locator.`);f(g,C,n&&q!==void 0?fx(q,L):Ko)}}function cx(t,e){let n=[],r=0;for(let a of t){let o=r;r+=Array.from(a.text).length,o!==r&&n.push({artifactDigest:e,locator:a.locator,sourceEnd:r,sourceStart:o})}return n}function ux(t){let e=[];for(let c of t){let u=Array.from(c.text),m=0;for(let b=0;b<u.length;b+=1){let v=u[b],f=c.locatorStart===void 0?void 0:c.locatorStart+m;m+=v.length;let k=c.locatorEnd===void 0||c.locatorStart===void 0?void 0:c.locatorStart+m;v==="\r"&&u[b+1]===`
24
+ `,K)}function b(g,C){let L=0,K=new Map;for(let B of g.children??[]){if(Ul(B)){if(d<0||d>=o.length)continue;let ie=B.data??"";if(ie==="")continue;let St=L*2+1,ci=K.get(St)??0;K.set(St,ci+ie.length);let ik=Bl(C,St,!0);v(B,ik,ci,ie.length);continue}if(!ql(B))continue;let j=Bl(C,L,!1,B.attribs?.id??B.attribs?.["xml:id"]);L+=1,m(B,j)}}function v(g,C,L,K){if(d<0||d>=o.length)return;let B=g.data??"",j=o[d],ie=j?.spineIndex;if(n&&ie===void 0)throw new Error(`EPUB section ${j?.id??"unknown"} cannot produce a CFI locator.`);f(d,B,n&&ie!==void 0?Hl(ie,C,L,L+K):Yo,n?L:void 0,n?L+K:void 0)}function f(g,C,L,K,B){let j=a.get(g);j!==void 0&&j.push({locator:L,...B===void 0?{}:{locatorEnd:B},...K===void 0?{}:{locatorStart:K},text:C})}function k(g,C,L){if(g<0||g>=o.length)return;let K=o[g],B=K?.spineIndex;if(n&&B===void 0)throw new Error(`EPUB section ${K?.id??"unknown"} cannot produce a CFI locator.`);f(g,C,n&&B!==void 0?kx(B,L):Yo)}}function fx(t,e){let n=[],r=0;for(let a of t){let o=r;r+=Array.from(a.text).length,o!==r&&n.push({artifactDigest:e,locator:a.locator,sourceEnd:r,sourceStart:o})}return n}function yx(t){let e=[];for(let c of t){let u=Array.from(c.text),m=0;for(let b=0;b<u.length;b+=1){let v=u[b],f=c.locatorStart===void 0?void 0:c.locatorStart+m;m+=v.length;let k=c.locatorEnd===void 0||c.locatorStart===void 0?void 0:c.locatorStart+m;v==="\r"&&u[b+1]===`
25
25
  `?(m+=1,k=c.locatorStart===void 0?void 0:c.locatorStart+m,e.push({baseLocator:c.locator,char:`
26
- `,locator:zo(c.locator,f,k),locatorEnd:k,locatorStart:f}),b+=1):e.push({baseLocator:c.locator,char:v,locator:zo(c.locator,f,k),locatorEnd:k,locatorStart:f})}}let n=[],r=0;for(let c of e){if(c.char===`
27
- `){if(r+=1,r>2)continue}else r=0;n.push(c)}let a=0;for(;a<n.length&&n[a].char.trim()==="";)a+=1;let o=n.length;for(;o>a&&n[o-1].char.trim()==="";)o-=1;let s=n.slice(a,o),d=[];for(let c of s){let u=d.at(-1);u!==void 0&&u.locatorBase===c.baseLocator&&u.locatorEnd===c.locatorStart&&u.locatorStart!==void 0&&c.locatorEnd!==void 0?d[d.length-1]={locatorBase:u.locatorBase,locator:zo(u.locatorBase??u.locator,u.locatorStart,c.locatorEnd),locatorEnd:c.locatorEnd,locatorStart:u.locatorStart,text:u.text+c.char}:u!==void 0&&u.locatorBase===c.baseLocator&&u.locatorStart===void 0&&c.locatorStart===void 0?d[d.length-1]={locatorBase:u.locatorBase,locator:u.locator,text:u.text+c.char}:d.push({locatorBase:c.baseLocator,locator:c.locator,...c.locatorEnd===void 0?{}:{locatorEnd:c.locatorEnd},...c.locatorStart===void 0?{}:{locatorStart:c.locatorStart},text:c.char})}return{segments:d,text:s.map(c=>c.char).join("")}}function zo(t,e,n){if(e===void 0||n===void 0)return t;let r=t.cfi;if(typeof r!="string")throw new Error("EPUB text mapping is missing a CFI locator.");let a=lx(r);if(a===void 0)throw new Error("EPUB text mapping has an invalid CFI range locator.");return{...t,cfi:`epubcfi(${a.parentPath},${_l(a.startPath,e)},${_l(a.endPath,n)})`}}function lx(t){if(!t.startsWith("epubcfi(")||!t.endsWith(")"))return;let e=mx(t.slice(8,-1));if(e.length!==3||e.some(o=>o===""))return;let[n,r,a]=e;if(!(n===void 0||r===void 0||a===void 0))return{endPath:a,parentPath:n,startPath:r}}function mx(t){let e=[],n=0,r=0,a=!1;for(let o=0;o<t.length;o+=1){let s=t[o];if(a){a=!1;continue}if(s==="^"){a=!0;continue}if(s==="["){r+=1;continue}if(s==="]"){r-=1;continue}s===","&&r===0&&(e.push(t.slice(n,o)),n=o+1)}return e.push(t.slice(n)),e}function _l(t,e){if(!/:\d+$/u.test(t))throw new Error("EPUB text mapping has an invalid CFI offset.");return t.replace(/:\d+$/u,`:${e}`)}function px(t){return t.name?.toLowerCase()}function Pl(t){return t.type==="text"}function Al(t){return t.name!==void 0&&t.type!=="directive"}function Ll(t,e,n,r){let a=n?e:(e+1)*2,o=n||r===void 0?"":`[${gx(r)}]`;return`${t}/${a}${o}`}function Ol(t,e,n,r){let a=Fl(t),{parentPath:o,textPath:s}=hx(e),d=o===""?a:`${a}!${o}`,c=o===""?`!${s}:${n}`:`${s}:${n}`,u=o===""?`!${s}:${r}`:`${s}:${r}`;return{cfi:`epubcfi(${d},${c},${u})`}}function hx(t){let e=t.lastIndexOf("/");if(e<0||e===t.length-1)throw new Error(`EPUB text mapping has an invalid CFI path: ${t}`);return{parentPath:t.slice(0,e),textPath:t.slice(e)}}function fx(t,e){return{cfi:`epubcfi(${yx(t)}${e})`}}function yx(t){return`${Fl(t)}!`}function Fl(t){return`/6/${(t+1)*2}`}function gx(t){return[...t].map(e=>"[]^(),;=".includes(e)?`^${e}`:e).join("")}var ax,ox,Ko,Li,Gl=i(()=>{"use strict";nt();ax=new Set(["address","article","aside","blockquote","br","dd","div","dl","dt","figcaption","figure","footer","h1","h2","h3","h4","h5","h6","header","hr","li","main","nav","ol","p","pre","section","table","td","th","tr","ul"]),ox=new Set(["script","style"]),Ko={},Li=class{#e;#t;constructor(e,n){this.#e=e,this.#t=sx(n)}async openSection(e){let n=this.#t.get(e);return n===void 0?[]:[(await this.#n(n.path,n.targets)).get(e)??""]}async openSectionWithProvenance(e,n){let r=this.#t.get(e);if(r===void 0)return{stream:[]};if(r.targets.find(c=>c.id===e)?.spineIndex===void 0)throw new Error(`EPUB section ${e} is not associated with a spine item.`);let o=await this.#e.readText(r.path),s=dx(o,r.targets,e),d=cx(s.segments,n.digest);if(s.text.length>0&&d.length===0)throw new Error(`EPUB section ${e} produced text without provenance mappings.`);return{provenance:{artifacts:[n],mappings:d},stream:[s.text]}}async#n(e,n){let r=await Wl(this.#e,e);return Dl(r,n)}}});import{SaxesParser as bx}from"saxes";function an(t){let e=new bx({xmlns:!1}),n=[],r;if(e.on("opentag",a=>{let o={name:a.name,attributes:Object.fromEntries(Object.entries(a.attributes).map(([d,c])=>[d,String(c)])),children:[],text:""},s=n[n.length-1];s===void 0?r=o:s.children.push(o),n.push(o)}),e.on("text",a=>{let o=n[n.length-1];o!==void 0&&(o.text+=a)}),e.on("cdata",a=>{let o=n[n.length-1];o!==void 0&&(o.text+=a)}),e.on("closetag",()=>{n.pop()}),e.write(t).close(),r===void 0)throw new Error("XML document is empty");return jl(r)}function ge(t,e){return t.children.find(n=>er(n.name)===e)}function Ue(t,e){return t.children.filter(n=>er(n.name)===e)}function ee(t,e){return t.attributes[e]}function Zn(t){let e=t.text;for(let n of t.children)e+=Zn(n);return e}function er(t){let e=t.indexOf(":");return e===-1?t:t.slice(e+1)}function jl(t){return{name:t.name,attributes:Object.freeze({...t.attributes}),children:Object.freeze(t.children.map(jl)),text:t.text}}var Oi=i(()=>{"use strict"});async function Bl(t){let e=await kx(t),n=an(await t.readText(e)),r=xx(ee(n,"version")),a=ge(n,"metadata"),o=ge(n,"manifest"),s=ge(n,"spine"),d=ge(n,"guide"),c=Ex(t,e,o),u=new Map([...c.values()].map(C=>[C.path,C])),m=vx(s,c),b=Rx(t,e,d),v=Ix(a),f=Cx(c),k=Tx(c,s),g=_x(c,a);return{version:r,opfPath:e,metadata:{...v,version:Ge,sourceFormat:"epub"},manifest:c,manifestByPath:u,spine:m,navPath:f,ncxPath:k,coverPath:g?.path,coverMediaType:g?.mediaType,guideNonContentPaths:b}}async function kx(t){let e=an(await t.readText("META-INF/container.xml")),r=ge(e,"rootfiles")?.children.find(o=>er(o.name)==="rootfile"),a=r===void 0?void 0:ee(r,"full-path");if(a===void 0||a.trim()==="")throw new Error("EPUB container.xml does not contain an OPF rootfile");return a}function xx(t){return t?.trim().startsWith("3")===!0?3:2}function Ix(t){if(t===void 0)return Ul();let e=Rt(t,"title"),n=Rt(t,"creator"),r=Rt(t,"language"),a=Rt(t,"identifier"),o=Rt(t,"publisher"),s=Rt(t,"date"),d=Rt(t,"description");return{...Ul(),title:e[0]??null,authors:[...n],language:r[0]??null,identifier:a[0]??null,publisher:o[0]??null,publishedAt:s[0]??null,description:d[0]??null}}function Ul(){return{version:Ge,sourceFormat:"epub",title:null,authors:[],language:null,identifier:null,publisher:null,publishedAt:null,description:null}}function Rt(t,e){return t.children.filter(n=>er(n.name)===e).map(n=>Ax(Zn(n))).filter(n=>n!==void 0)}function Ex(t,e,n){let r=new Map;if(n===void 0)return r;for(let a of Ue(n,"item")){let o=ee(a,"id"),s=ee(a,"href"),d=ee(a,"media-type")??"";o===void 0||s===void 0||r.set(o,{id:o,path:t.resolveRelativePath(e,s),mediaType:d,properties:new Set((ee(a,"properties")??"").split(/\s+/u).map(c=>c.trim().toLowerCase()).filter(c=>c!==""))})}return r}function vx(t,e){return t===void 0?[]:Ue(t,"itemref").map((n,r)=>{let a=ee(n,"idref");if(a===void 0)return;let o=e.get(a);if(!(o===void 0||o.mediaType!=="application/xhtml+xml"&&o.mediaType!=="text/html"))return{idref:a,path:o.path,mediaType:o.mediaType,spineIndex:r}}).filter(n=>n!==void 0)}function Rx(t,e,n){let r=new Set;if(n===void 0)return r;for(let a of Ue(n,"reference")){let o=(ee(a,"type")??"").trim().toLowerCase();if(!wx.has(o))continue;let s=ee(a,"href");s===void 0||s.trim()===""||r.add(t.resolveRelativePath(e,Vn(s).path))}return r}function Cx(t){for(let e of t.values())if(e.properties.has("nav"))return e.path}function Tx(t,e){let n=e===void 0?void 0:ee(e,"toc");if(n!==void 0)return t.get(n)?.path;for(let r of t.values())if(r.mediaType==="application/x-dtbncx+xml")return r.path}function _x(t,e){for(let r of t.values())if(r.properties.has("cover-image")&&r.mediaType.startsWith("image/"))return r;let n=Px(e);if(n!==void 0){let r=t.get(n);if(r?.mediaType.startsWith("image/")===!0)return r}for(let r of Sx){let a=t.get(r);if(a?.mediaType.startsWith("image/")===!0)return a}for(let r of t.values())if(r.mediaType.startsWith("image/")&&Ao(r.path).toLowerCase().includes("cover"))return r}function Px(t){if(t!==void 0)for(let e of Ue(t,"meta")){if((ee(e,"name")??"").trim().toLowerCase()!=="cover")continue;let r=ee(e,"content");if(r!==void 0&&r.trim()!=="")return r.trim()}}function Ax(t){let e=t.replace(/\s+/gu," ").trim();return e===""?void 0:e}var Sx,wx,Qo=i(()=>{"use strict";vt();Xn();Yn();Oi();Sx=["cover-image","coverimg","cover-img","cover"],wx=new Set(["cover","titlepage","other.titlepage"])});import{parseDocument as Lx}from"htmlparser2";async function Hl(t,e){let n=await Nx(t,e)??await Wx(t,e)??[];if(n.length===0)return ql(e,new Set);let r=Kl(n),a=ql(e,r);return a.length===0?n:[...n,...a]}async function Nx(t,e){if(e.navPath===void 0)return;let n=Lx(await t.readText(e.navPath),{decodeEntities:!0}),r=Xo(n,s=>it(s)!=="nav"?!1:(s.attribs?.["epub:type"]??s.attribs?.type??"").split(/\s+/u).map(c=>c.trim().toLowerCase()).includes("toc"));if(r===void 0)return;let a=Xo(r,s=>it(s)==="ol");if(a===void 0)return;let o=tr(a).filter(s=>it(s)==="li").map(s=>$l(t,e.navPath,s)).filter(s=>s!==void 0);return o.length===0?void 0:o}async function Wx(t,e){if(e.ncxPath===void 0)return;let n=an(await t.readText(e.ncxPath)),r=ge(n,"navMap");if(r===void 0)return;let a=Ue(r,"navPoint").map(o=>Jl(t,e.ncxPath,o)).filter(o=>o!==void 0);return a.length===0?void 0:a}function $l(t,e,n){let r=zl(n),a=r===void 0?void 0:Vl(Ql(r)),o=r!==void 0&&it(r)==="a"?r.attribs?.href:void 0,s=Mx(t,e,o),d=tr(n).filter(c=>it(c)==="ol").flatMap(c=>tr(c)).filter(c=>it(c)==="li").map(c=>$l(t,e,c)).filter(c=>c!==void 0);if(!(a===void 0&&s.path===void 0&&d.length===0))return{title:a,path:s.path,fragment:s.fragment,children:d}}function Jl(t,e,n){let r=ge(n,"navLabel"),a=r===void 0?void 0:ge(r,"text"),o=a===void 0?void 0:Vl(Zn(a)),s=ge(n,"content"),d=Fx(t,e,ee(s??n,"src")),c=Ue(n,"navPoint").map(u=>Jl(t,e,u)).filter(u=>u!==void 0);if(!(o===void 0&&d.path===void 0&&c.length===0))return{title:o,path:d.path,fragment:d.fragment,children:c}}function ql(t,e){return t.spine.filter(n=>!Dx(t,n.path,e)).filter(n=>!e.has(n.path)).map(n=>({title:Gx(n.path),path:n.path,fragment:void 0,children:[]}))}function Dx(t,e,n){if(t.guideNonContentPaths.has(e))return!0;let r=Vo(e).toLowerCase();return t.navPath===e?!0:Ox.has(r)&&!n.has(e)}function Kl(t){let e=new Set;for(let n of t){n.path!==void 0&&e.add(n.path);for(let r of Kl(n.children))e.add(r)}return e}function Mx(t,e,n){if(n===void 0||n.trim()==="")return{path:void 0,fragment:void 0};let{path:r,fragment:a}=Vn(n);return{path:r===""?void 0:t.resolveRelativePath(e,r),fragment:a}}function Fx(t,e,n){if(n===void 0||n.trim()==="")return{path:void 0,fragment:void 0};let{path:r,fragment:a}=Vn(n);return{path:r===""?void 0:t.resolveRelativePath(e,r),fragment:a}}function Xo(t,e){if(Xl(t)&&e(t))return t;for(let n of t.children??[]){let r=Xo(n,e);if(r!==void 0)return r}}function zl(t){for(let e of tr(t)){let n=it(e);if(n==="a"||n==="span")return e}for(let e of tr(t)){if(it(e)==="ol")continue;let n=zl(e);if(n!==void 0)return n}}function Ql(t){return t.type==="text"?t.data??"":(t.children??[]).map(Ql).join("")}function tr(t){return(t.children??[]).filter(Xl)}function Xl(t){return t.type==="tag"||t.type==="script"||t.type==="style"}function it(t){return t.name?.toLowerCase()}function Gx(t){let e=jx(t),n=Vo(t).slice(0,-e.length||void 0).trim();return n===""?void 0:n}function Vo(t){return t.replaceAll("\\","/").split("/").at(-1)??""}function jx(t){let e=Vo(t),n=e.lastIndexOf(".");return n<=0?"":e.slice(n)}function Vl(t){let e=t.replace(/\s+/gu," ").trim();return e===""?void 0:e}var Ox,Yl=i(()=>{"use strict";Yn();Qo();Oi();Ox=new Set(["toc.xhtml","nav.xhtml","contents.xhtml","tableofcontents.xhtml","cover.xhtml","titlepage.xhtml"])});function Ux(t){if(t.hasEntry("META-INF/encryption.xml"))throw new Error("Encrypted EPUB is not supported: found META-INF/encryption.xml.")}async function Bx(t,e){if(!(e.coverPath===void 0||e.coverMediaType===void 0))return{path:e.coverPath,mediaType:e.coverMediaType,data:await t.readBuffer(e.coverPath)}}function qx(t,e){let n=new Map;return e.map((r,a)=>Zl(t,r,[a],n))}function Zl(t,e,n,r){let a=Jo(e.fragment),o=e.path===void 0?`toc:${n.join(".")}`:t.createSectionId(e.path,a),s=Hx(o,r);return{hasContent:e.path!==void 0,id:s,title:e.title,path:e.path,fragment:a,wordsCount:0,children:e.children.map((d,c)=>Zl(t,d,[...n,c],r))}}function em(t,e){return t.map(n=>{let r=e.get(n.id);return{...n,hasContent:r?.hasContent??!1,wordsCount:r?.wordsCount??0,children:em(n.children,e)}})}function Hx(t,e){let n=e.get(t)??0;return e.set(t,n+1),n===0?t:`${t}~${n+1}`}function $x(t,e){let n=new Map,r=new Map(e.spine.map(a=>[a.path,a.spineIndex]));for(let a of tm(t)){if(a.path===void 0)continue;let o=n.get(a.path)??[];o.push({id:a.id,path:a.path,fragment:a.fragment,spineIndex:r.get(a.path)}),n.set(a.path,o)}return n}function tm(t){let e=[];for(let n of t)e.push(n),e.push(...tm(n.children));return e}var Yo,Zo,nr,es,nm=i(()=>{"use strict";Yn();Yn();Gl();Yl();Qo();Yo=class t{#e;#t;constructor(e,n){this.#e=e,this.#t=n}get id(){return this.#t.id}get hasContent(){return this.#t.hasContent}get title(){return this.#t.title}get wordsCount(){return this.#t.wordsCount}get children(){return this.#t.children.map(e=>new t(this.#e,e))}async open(){return await this.#e.openSection(this.#t.id)}async openWithProvenance(){return await this.#e.openSectionWithProvenance(this.#t.id)}},Zo=class t{#e;#t;#n;#r;#i;constructor(e,n,r,a,o){this.#e=e,this.#t=n,this.#n=r,this.#r=a,this.#i=o}static async open(e){Ux(e);let n=await Bl(e),r={digest:e.digest,mediaType:"application/epub+zip",name:e.name,...n.metadata.identifier===null?{}:{identifier:n.metadata.identifier}},a=await Hl(e,n),o=qx(e,a),s=$x(o,n),d=await Nl(e,s),c=em(o,d),u=await Bx(e,n);return new t(r,n,u,c,new Li(e,s))}readMeta(){return Promise.resolve(this.#t.metadata)}readCover(){return Promise.resolve(this.#n)}readSections(){return Promise.resolve(this.#r.map(e=>new Yo(this,e)))}async openSection(e){return await this.#i.openSection(e)}async openSectionWithProvenance(e){return await this.#i.openSectionWithProvenance(e,this.#e)}},nr=class{get format(){return"epub"}async openSession(e,n){let r=await Ai.open(e);try{let a=await Zo.open(r);return await n(a)}finally{await r.close()}}},es=new nr});var rm=i(()=>{"use strict";nm()});var im=i(()=>{"use strict";y()});import{SaxesParser as pN}from"saxes";var am=i(()=>{"use strict";nt();Oi();im()});var sm=i(()=>{"use strict";am()});async function*Kx(t){let e=await t.openReader(),n=new TextDecoder,r="";try{for(let a=0;a<e.size;){let o=await e.read(a,Math.min(65536,e.size-a));a+=o.byteLength,r+=n.decode(o,{stream:a<e.size});let s=r.split(/(?<=\n)/u);r=s.pop()??"";for(let d of s)d!==""&&(yield d)}r+=n.decode(),r!==""&&(yield r)}finally{await e.close()}}function zx(t){let e=t.lastIndexOf("."),n=(e<=0?t:t.slice(0,e)).trim();return n===""?null:n}var Jx,ts,ns,rr,dm,cm,um=i(()=>{"use strict";Xn();Jx="root",ts=class{#e;#t;constructor(e,n=Jx){this.#e=e,this.#t=n}get id(){return this.#t}get hasContent(){return!0}get title(){}get children(){return[]}open(){return Promise.resolve(Kx(this.#e))}},ns=class{#e;#t;#n;constructor(e,n){this.#t=e,this.#n=n,this.#e=new ts(e)}readMeta(){return Promise.resolve({version:Ge,sourceFormat:this.#n,title:zx(this.#t.name),authors:[],language:null,identifier:null,publisher:null,publishedAt:null,description:null})}readCover(){return Promise.resolve(void 0)}readSections(){return Promise.resolve([this.#e])}},rr=class{#e;constructor(e){this.#e=e}get format(){return this.#e}async openSession(e,n){return await(await e.openReader()).close(),await n(new ns(e,this.#e))}},dm=new rr("txt"),cm=new rr("markdown")});var ir=i(()=>{"use strict"});import{z as ue}from"zod";var vN,RN,lm=i(()=>{"use strict";ir();vN=ue.object({type:ue.literal("artifact"),digest:ue.string().regex(/^[0-9a-f]{64}$/iu),mediaType:ue.string().min(1),name:ue.string().optional(),identifier:ue.string().max(1024).optional()}),RN=ue.object({type:ue.literal("text"),text:ue.string(),locator:ue.record(ue.string(),ue.unknown())})});var at=i(()=>{"use strict";Xn();rm();sm();um();lm();$o()});var is=i(()=>{"use strict"});var ar=i(()=>{"use strict";at();ye();is();Z()});var Qx,pm,hm,fm,or=i(()=>{"use strict";w();ir();Qx=`
26
+ `,locator:Zo(c.locator,f,k),locatorEnd:k,locatorStart:f}),b+=1):e.push({baseLocator:c.locator,char:v,locator:Zo(c.locator,f,k),locatorEnd:k,locatorStart:f})}}let n=[],r=0;for(let c of e){if(c.char===`
27
+ `){if(r+=1,r>2)continue}else r=0;n.push(c)}let a=0;for(;a<n.length&&n[a].char.trim()==="";)a+=1;let o=n.length;for(;o>a&&n[o-1].char.trim()==="";)o-=1;let s=n.slice(a,o),d=[];for(let c of s){let u=d.at(-1);u!==void 0&&u.locatorBase===c.baseLocator&&u.locatorEnd===c.locatorStart&&u.locatorStart!==void 0&&c.locatorEnd!==void 0?d[d.length-1]={locatorBase:u.locatorBase,locator:Zo(u.locatorBase??u.locator,u.locatorStart,c.locatorEnd),locatorEnd:c.locatorEnd,locatorStart:u.locatorStart,text:u.text+c.char}:u!==void 0&&u.locatorBase===c.baseLocator&&u.locatorStart===void 0&&c.locatorStart===void 0?d[d.length-1]={locatorBase:u.locatorBase,locator:u.locator,text:u.text+c.char}:d.push({locatorBase:c.baseLocator,locator:c.locator,...c.locatorEnd===void 0?{}:{locatorEnd:c.locatorEnd},...c.locatorStart===void 0?{}:{locatorStart:c.locatorStart},text:c.char})}return{segments:d,text:s.map(c=>c.char).join("")}}function Zo(t,e,n){if(e===void 0||n===void 0)return t;let r=t.cfi;if(typeof r!="string")throw new Error("EPUB text mapping is missing a CFI locator.");let a=gx(r);if(a===void 0)throw new Error("EPUB text mapping has an invalid CFI range locator.");return{...t,cfi:`epubcfi(${a.parentPath},${jl(a.startPath,e)},${jl(a.endPath,n)})`}}function gx(t){if(!t.startsWith("epubcfi(")||!t.endsWith(")"))return;let e=bx(t.slice(8,-1));if(e.length!==3||e.some(o=>o===""))return;let[n,r,a]=e;if(!(n===void 0||r===void 0||a===void 0))return{endPath:a,parentPath:n,startPath:r}}function bx(t){let e=[],n=0,r=0,a=!1;for(let o=0;o<t.length;o+=1){let s=t[o];if(a){a=!1;continue}if(s==="^"){a=!0;continue}if(s==="["){r+=1;continue}if(s==="]"){r-=1;continue}s===","&&r===0&&(e.push(t.slice(n,o)),n=o+1)}return e.push(t.slice(n)),e}function jl(t,e){if(!/:\d+$/u.test(t))throw new Error("EPUB text mapping has an invalid CFI offset.");return t.replace(/:\d+$/u,`:${e}`)}function Sx(t){return t.name?.toLowerCase()}function Ul(t){return t.type==="text"}function ql(t){return t.name!==void 0&&t.type!=="directive"}function Bl(t,e,n,r){let a=n?e:(e+1)*2,o=n||r===void 0?"":`[${Ix(r)}]`;return`${t}/${a}${o}`}function Hl(t,e,n,r){let a=Ql(t),{parentPath:o,textPath:s}=wx(e),d=o===""?a:`${a}!${o}`,c=o===""?`!${s}:${n}`:`${s}:${n}`,u=o===""?`!${s}:${r}`:`${s}:${r}`;return{cfi:`epubcfi(${d},${c},${u})`}}function wx(t){let e=t.lastIndexOf("/");if(e<0||e===t.length-1)throw new Error(`EPUB text mapping has an invalid CFI path: ${t}`);return{parentPath:t.slice(0,e),textPath:t.slice(e)}}function kx(t,e){return{cfi:`epubcfi(${xx(t)}${e})`}}function xx(t){return`${Ql(t)}!`}function Ql(t){return`/6/${(t+1)*2}`}function Ix(t){return[...t].map(e=>"[]^(),;=".includes(e)?`^${e}`:e).join("")}var lx,mx,Yo,Oi,Xl=i(()=>{"use strict";nt();lx=new Set(["address","article","aside","blockquote","br","dd","div","dl","dt","figcaption","figure","footer","h1","h2","h3","h4","h5","h6","header","hr","li","main","nav","ol","p","pre","section","table","td","th","tr","ul"]),mx=new Set(["script","style"]),Yo={},Oi=class{#e;#t;constructor(e,n){this.#e=e,this.#t=px(n)}async openSection(e){let n=this.#t.get(e);return n===void 0?[]:[(await this.#n(n.path,n.targets)).get(e)??""]}async openSectionWithProvenance(e,n){let r=this.#t.get(e);if(r===void 0)return{stream:[]};if(r.targets.find(c=>c.id===e)?.spineIndex===void 0)throw new Error(`EPUB section ${e} is not associated with a spine item.`);let o=await this.#e.readText(r.path),s=hx(o,r.targets,e),d=fx(s.segments,n.digest);if(s.text.length>0&&d.length===0)throw new Error(`EPUB section ${e} produced text without provenance mappings.`);return{provenance:{artifacts:[n],mappings:d},stream:[s.text]}}async#n(e,n){let r=await Jl(this.#e,e);return Kl(r,n)}}});import{SaxesParser as Ex}from"saxes";function on(t){let e=new Ex({xmlns:!1}),n=[],r;if(e.on("opentag",a=>{let o={name:a.name,attributes:Object.fromEntries(Object.entries(a.attributes).map(([d,c])=>[d,String(c)])),children:[],text:""},s=n[n.length-1];s===void 0?r=o:s.children.push(o),n.push(o)}),e.on("text",a=>{let o=n[n.length-1];o!==void 0&&(o.text+=a)}),e.on("cdata",a=>{let o=n[n.length-1];o!==void 0&&(o.text+=a)}),e.on("closetag",()=>{n.pop()}),e.write(t).close(),r===void 0)throw new Error("XML document is empty");return Vl(r)}function ge(t,e){return t.children.find(n=>er(n.name)===e)}function Ue(t,e){return t.children.filter(n=>er(n.name)===e)}function ee(t,e){return t.attributes[e]}function Zn(t){let e=t.text;for(let n of t.children)e+=Zn(n);return e}function er(t){let e=t.indexOf(":");return e===-1?t:t.slice(e+1)}function Vl(t){return{name:t.name,attributes:Object.freeze({...t.attributes}),children:Object.freeze(t.children.map(Vl)),text:t.text}}var Ni=i(()=>{"use strict"});async function Zl(t){let e=await Cx(t),n=on(await t.readText(e)),r=Tx(ee(n,"version")),a=ge(n,"metadata"),o=ge(n,"manifest"),s=ge(n,"spine"),d=ge(n,"guide"),c=Px(t,e,o),u=new Map([...c.values()].map(C=>[C.path,C])),m=Ax(s,c),b=Lx(t,e,d),v=_x(a),f=Ox(c),k=Nx(c,s),g=Wx(c,a);return{version:r,opfPath:e,metadata:{...v,version:Ge,sourceFormat:"epub"},manifest:c,manifestByPath:u,spine:m,navPath:f,ncxPath:k,coverPath:g?.path,coverMediaType:g?.mediaType,guideNonContentPaths:b}}async function Cx(t){let e=on(await t.readText("META-INF/container.xml")),r=ge(e,"rootfiles")?.children.find(o=>er(o.name)==="rootfile"),a=r===void 0?void 0:ee(r,"full-path");if(a===void 0||a.trim()==="")throw new Error("EPUB container.xml does not contain an OPF rootfile");return a}function Tx(t){return t?.trim().startsWith("3")===!0?3:2}function _x(t){if(t===void 0)return Yl();let e=Rt(t,"title"),n=Rt(t,"creator"),r=Rt(t,"language"),a=Rt(t,"identifier"),o=Rt(t,"publisher"),s=Rt(t,"date"),d=Rt(t,"description");return{...Yl(),title:e[0]??null,authors:[...n],language:r[0]??null,identifier:a[0]??null,publisher:o[0]??null,publishedAt:s[0]??null,description:d[0]??null}}function Yl(){return{version:Ge,sourceFormat:"epub",title:null,authors:[],language:null,identifier:null,publisher:null,publishedAt:null,description:null}}function Rt(t,e){return t.children.filter(n=>er(n.name)===e).map(n=>Mx(Zn(n))).filter(n=>n!==void 0)}function Px(t,e,n){let r=new Map;if(n===void 0)return r;for(let a of Ue(n,"item")){let o=ee(a,"id"),s=ee(a,"href"),d=ee(a,"media-type")??"";o===void 0||s===void 0||r.set(o,{id:o,path:t.resolveRelativePath(e,s),mediaType:d,properties:new Set((ee(a,"properties")??"").split(/\s+/u).map(c=>c.trim().toLowerCase()).filter(c=>c!==""))})}return r}function Ax(t,e){return t===void 0?[]:Ue(t,"itemref").map((n,r)=>{let a=ee(n,"idref");if(a===void 0)return;let o=e.get(a);if(!(o===void 0||o.mediaType!=="application/xhtml+xml"&&o.mediaType!=="text/html"))return{idref:a,path:o.path,mediaType:o.mediaType,spineIndex:r}}).filter(n=>n!==void 0)}function Lx(t,e,n){let r=new Set;if(n===void 0)return r;for(let a of Ue(n,"reference")){let o=(ee(a,"type")??"").trim().toLowerCase();if(!Rx.has(o))continue;let s=ee(a,"href");s===void 0||s.trim()===""||r.add(t.resolveRelativePath(e,Vn(s).path))}return r}function Ox(t){for(let e of t.values())if(e.properties.has("nav"))return e.path}function Nx(t,e){let n=e===void 0?void 0:ee(e,"toc");if(n!==void 0)return t.get(n)?.path;for(let r of t.values())if(r.mediaType==="application/x-dtbncx+xml")return r.path}function Wx(t,e){for(let r of t.values())if(r.properties.has("cover-image")&&r.mediaType.startsWith("image/"))return r;let n=Dx(e);if(n!==void 0){let r=t.get(n);if(r?.mediaType.startsWith("image/")===!0)return r}for(let r of vx){let a=t.get(r);if(a?.mediaType.startsWith("image/")===!0)return a}for(let r of t.values())if(r.mediaType.startsWith("image/")&&Do(r.path).toLowerCase().includes("cover"))return r}function Dx(t){if(t!==void 0)for(let e of Ue(t,"meta")){if((ee(e,"name")??"").trim().toLowerCase()!=="cover")continue;let r=ee(e,"content");if(r!==void 0&&r.trim()!=="")return r.trim()}}function Mx(t){let e=t.replace(/\s+/gu," ").trim();return e===""?void 0:e}var vx,Rx,es=i(()=>{"use strict";vt();Xn();Yn();Ni();vx=["cover-image","coverimg","cover-img","cover"],Rx=new Set(["cover","titlepage","other.titlepage"])});import{parseDocument as Fx}from"htmlparser2";async function tm(t,e){let n=await jx(t,e)??await Ux(t,e)??[];if(n.length===0)return em(e,new Set);let r=im(n),a=em(e,r);return a.length===0?n:[...n,...a]}async function jx(t,e){if(e.navPath===void 0)return;let n=Fx(await t.readText(e.navPath),{decodeEntities:!0}),r=ts(n,s=>it(s)!=="nav"?!1:(s.attribs?.["epub:type"]??s.attribs?.type??"").split(/\s+/u).map(c=>c.trim().toLowerCase()).includes("toc"));if(r===void 0)return;let a=ts(r,s=>it(s)==="ol");if(a===void 0)return;let o=tr(a).filter(s=>it(s)==="li").map(s=>nm(t,e.navPath,s)).filter(s=>s!==void 0);return o.length===0?void 0:o}async function Ux(t,e){if(e.ncxPath===void 0)return;let n=on(await t.readText(e.ncxPath)),r=ge(n,"navMap");if(r===void 0)return;let a=Ue(r,"navPoint").map(o=>rm(t,e.ncxPath,o)).filter(o=>o!==void 0);return a.length===0?void 0:a}function nm(t,e,n){let r=am(n),a=r===void 0?void 0:dm(om(r)),o=r!==void 0&&it(r)==="a"?r.attribs?.href:void 0,s=Bx(t,e,o),d=tr(n).filter(c=>it(c)==="ol").flatMap(c=>tr(c)).filter(c=>it(c)==="li").map(c=>nm(t,e,c)).filter(c=>c!==void 0);if(!(a===void 0&&s.path===void 0&&d.length===0))return{title:a,path:s.path,fragment:s.fragment,children:d}}function rm(t,e,n){let r=ge(n,"navLabel"),a=r===void 0?void 0:ge(r,"text"),o=a===void 0?void 0:dm(Zn(a)),s=ge(n,"content"),d=Hx(t,e,ee(s??n,"src")),c=Ue(n,"navPoint").map(u=>rm(t,e,u)).filter(u=>u!==void 0);if(!(o===void 0&&d.path===void 0&&c.length===0))return{title:o,path:d.path,fragment:d.fragment,children:c}}function em(t,e){return t.spine.filter(n=>!qx(t,n.path,e)).filter(n=>!e.has(n.path)).map(n=>({title:$x(n.path),path:n.path,fragment:void 0,children:[]}))}function qx(t,e,n){if(t.guideNonContentPaths.has(e))return!0;let r=ns(e).toLowerCase();return t.navPath===e?!0:Gx.has(r)&&!n.has(e)}function im(t){let e=new Set;for(let n of t){n.path!==void 0&&e.add(n.path);for(let r of im(n.children))e.add(r)}return e}function Bx(t,e,n){if(n===void 0||n.trim()==="")return{path:void 0,fragment:void 0};let{path:r,fragment:a}=Vn(n);return{path:r===""?void 0:t.resolveRelativePath(e,r),fragment:a}}function Hx(t,e,n){if(n===void 0||n.trim()==="")return{path:void 0,fragment:void 0};let{path:r,fragment:a}=Vn(n);return{path:r===""?void 0:t.resolveRelativePath(e,r),fragment:a}}function ts(t,e){if(sm(t)&&e(t))return t;for(let n of t.children??[]){let r=ts(n,e);if(r!==void 0)return r}}function am(t){for(let e of tr(t)){let n=it(e);if(n==="a"||n==="span")return e}for(let e of tr(t)){if(it(e)==="ol")continue;let n=am(e);if(n!==void 0)return n}}function om(t){return t.type==="text"?t.data??"":(t.children??[]).map(om).join("")}function tr(t){return(t.children??[]).filter(sm)}function sm(t){return t.type==="tag"||t.type==="script"||t.type==="style"}function it(t){return t.name?.toLowerCase()}function $x(t){let e=Jx(t),n=ns(t).slice(0,-e.length||void 0).trim();return n===""?void 0:n}function ns(t){return t.replaceAll("\\","/").split("/").at(-1)??""}function Jx(t){let e=ns(t),n=e.lastIndexOf(".");return n<=0?"":e.slice(n)}function dm(t){let e=t.replace(/\s+/gu," ").trim();return e===""?void 0:e}var Gx,cm=i(()=>{"use strict";Yn();es();Ni();Gx=new Set(["toc.xhtml","nav.xhtml","contents.xhtml","tableofcontents.xhtml","cover.xhtml","titlepage.xhtml"])});function Kx(t){if(t.hasEntry("META-INF/encryption.xml"))throw new Error("Encrypted EPUB is not supported: found META-INF/encryption.xml.")}async function zx(t,e){if(!(e.coverPath===void 0||e.coverMediaType===void 0))return{path:e.coverPath,mediaType:e.coverMediaType,data:await t.readBuffer(e.coverPath)}}function Qx(t,e){let n=new Map;return e.map((r,a)=>um(t,r,[a],n))}function um(t,e,n,r){let a=Vo(e.fragment),o=e.path===void 0?`toc:${n.join(".")}`:t.createSectionId(e.path,a),s=Xx(o,r);return{hasContent:e.path!==void 0,id:s,title:e.title,path:e.path,fragment:a,wordsCount:0,children:e.children.map((d,c)=>um(t,d,[...n,c],r))}}function lm(t,e){return t.map(n=>{let r=e.get(n.id);return{...n,hasContent:r?.hasContent??!1,wordsCount:r?.wordsCount??0,children:lm(n.children,e)}})}function Xx(t,e){let n=e.get(t)??0;return e.set(t,n+1),n===0?t:`${t}~${n+1}`}function Vx(t,e){let n=new Map,r=new Map(e.spine.map(a=>[a.path,a.spineIndex]));for(let a of mm(t)){if(a.path===void 0)continue;let o=n.get(a.path)??[];o.push({id:a.id,path:a.path,fragment:a.fragment,spineIndex:r.get(a.path)}),n.set(a.path,o)}return n}function mm(t){let e=[];for(let n of t)e.push(n),e.push(...mm(n.children));return e}var rs,is,nr,as,pm=i(()=>{"use strict";Yn();Yn();Xl();cm();es();rs=class t{#e;#t;constructor(e,n){this.#e=e,this.#t=n}get id(){return this.#t.id}get hasContent(){return this.#t.hasContent}get title(){return this.#t.title}get wordsCount(){return this.#t.wordsCount}get children(){return this.#t.children.map(e=>new t(this.#e,e))}async open(){return await this.#e.openSection(this.#t.id)}async openWithProvenance(){return await this.#e.openSectionWithProvenance(this.#t.id)}},is=class t{#e;#t;#n;#r;#i;constructor(e,n,r,a,o){this.#e=e,this.#t=n,this.#n=r,this.#r=a,this.#i=o}static async open(e){Kx(e);let n=await Zl(e),r={digest:e.digest,mediaType:"application/epub+zip",name:e.name,...n.metadata.identifier===null?{}:{identifier:n.metadata.identifier}},a=await tm(e,n),o=Qx(e,a),s=Vx(o,n),d=await $l(e,s),c=lm(o,d),u=await zx(e,n);return new t(r,n,u,c,new Oi(e,s))}readMeta(){return Promise.resolve(this.#t.metadata)}readCover(){return Promise.resolve(this.#n)}readSections(){return Promise.resolve(this.#r.map(e=>new rs(this,e)))}async openSection(e){return await this.#i.openSection(e)}async openSectionWithProvenance(e){return await this.#i.openSectionWithProvenance(e,this.#e)}},nr=class{get format(){return"epub"}async openSession(e,n){let r=await Li.open(e);try{let a=await is.open(r);return await n(a)}finally{await r.close()}}},as=new nr});var hm=i(()=>{"use strict";pm()});var fm=i(()=>{"use strict";y()});import{SaxesParser as bN}from"saxes";var ym=i(()=>{"use strict";nt();Ni();fm()});var bm=i(()=>{"use strict";ym()});async function*Zx(t){let e=await t.openReader(),n=new TextDecoder,r="";try{for(let a=0;a<e.size;){let o=await e.read(a,Math.min(65536,e.size-a));a+=o.byteLength,r+=n.decode(o,{stream:a<e.size});let s=r.split(/(?<=\n)/u);r=s.pop()??"";for(let d of s)d!==""&&(yield d)}r+=n.decode(),r!==""&&(yield r)}finally{await e.close()}}function eI(t){let e=t.lastIndexOf("."),n=(e<=0?t:t.slice(0,e)).trim();return n===""?null:n}var Yx,os,ss,rr,Sm,wm,km=i(()=>{"use strict";Xn();Yx="root",os=class{#e;#t;constructor(e,n=Yx){this.#e=e,this.#t=n}get id(){return this.#t}get hasContent(){return!0}get title(){}get children(){return[]}open(){return Promise.resolve(Zx(this.#e))}},ss=class{#e;#t;#n;constructor(e,n){this.#t=e,this.#n=n,this.#e=new os(e)}readMeta(){return Promise.resolve({version:Ge,sourceFormat:this.#n,title:eI(this.#t.name),authors:[],language:null,identifier:null,publisher:null,publishedAt:null,description:null})}readCover(){return Promise.resolve(void 0)}readSections(){return Promise.resolve([this.#e])}},rr=class{#e;constructor(e){this.#e=e}get format(){return this.#e}async openSession(e,n){return await(await e.openReader()).close(),await n(new ss(e,this.#e))}},Sm=new rr("txt"),wm=new rr("markdown")});var ir=i(()=>{"use strict"});import{z as ue}from"zod";var PN,AN,xm=i(()=>{"use strict";ir();PN=ue.object({type:ue.literal("artifact"),digest:ue.string().regex(/^[0-9a-f]{64}$/iu),mediaType:ue.string().min(1),name:ue.string().optional(),identifier:ue.string().max(1024).optional()}),AN=ue.object({type:ue.literal("text"),text:ue.string(),locator:ue.record(ue.string(),ue.unknown())})});var at=i(()=>{"use strict";Xn();hm();bm();km();xm();Xo()});var ds=i(()=>{"use strict"});var ar=i(()=>{"use strict";at();ye();ds();Z()});var tI,Em,vm,Rm,or=i(()=>{"use strict";w();ir();tI=`
28
28
  id INTEGER PRIMARY KEY AUTOINCREMENT,
29
29
  digest BLOB NOT NULL UNIQUE,
30
30
  short_uid TEXT NOT NULL UNIQUE
@@ -34,7 +34,7 @@ var Yw=Object.defineProperty;var i=(t,e)=>()=>(t&&(e=t(t=0)),e);var Zw=(t,e)=>{f
34
34
  media_type TEXT NOT NULL,
35
35
  name TEXT,
36
36
  identifier TEXT
37
- `,pm=`
37
+ `,Em=`
38
38
  CREATE TABLE IF NOT EXISTS serials (
39
39
  id INTEGER PRIMARY KEY,
40
40
  document_order INTEGER NOT NULL DEFAULT 0
@@ -330,7 +330,7 @@ var Yw=Object.defineProperty;var i=(t,e)=>()=>(t&&(e=t(t=0)),e);var Zw=(t,e)=>{f
330
330
  ON text_sentence_records(kind, chapter_id, sentence_index);
331
331
 
332
332
  CREATE TABLE IF NOT EXISTS source_artifacts (
333
- ${Qx}
333
+ ${tI}
334
334
  );
335
335
 
336
336
  CREATE TABLE IF NOT EXISTS source_locators (
@@ -396,7 +396,7 @@ ${Qx}
396
396
  triple_predicate,
397
397
  triple_object_qid
398
398
  );
399
- `,hm=`
399
+ `,vm=`
400
400
  id INTEGER PRIMARY KEY,
401
401
  archive_id INTEGER NOT NULL,
402
402
  kind INTEGER NOT NULL,
@@ -406,14 +406,14 @@ ${Qx}
406
406
  byte_offset INTEGER NOT NULL DEFAULT 0,
407
407
  byte_length INTEGER NOT NULL DEFAULT 0,
408
408
  UNIQUE(archive_id, kind, chapter_id, sentence_index)
409
- `,fm=`
409
+ `,Rm=`
410
410
  CREATE TABLE IF NOT EXISTS search_index_state (
411
411
  key TEXT PRIMARY KEY,
412
412
  value TEXT NOT NULL
413
413
  );
414
414
 
415
415
  CREATE TABLE IF NOT EXISTS text_sentence_records (
416
- ${hm}
416
+ ${vm}
417
417
  );
418
418
 
419
419
  CREATE INDEX IF NOT EXISTS idx_text_sentence_records_chapter
@@ -470,22 +470,22 @@ ${hm}
470
470
  updated_at INTEGER NOT NULL,
471
471
  PRIMARY KEY (archive_id, chapter_id)
472
472
  );
473
- `});var Ct=i(()=>{"use strict";w();Re()});var ym=i(()=>{"use strict";w();Ct()});var gm=i(()=>{"use strict";w()});var bm=i(()=>{"use strict";w();yi()});var Sm=i(()=>{"use strict";w();Re()});var wm=i(()=>{"use strict";w();Ct()});var km=i(()=>{"use strict";w();Ct()});var xm=i(()=>{"use strict";w();Ct()});var Im=i(()=>{"use strict";w();Ct()});var Em=i(()=>{"use strict";w();Ct()});var Cm=i(()=>{"use strict";Ee();w();ir()});var Tm=i(()=>{"use strict";w()});var _m=i(()=>{"use strict";w()});var Pm=i(()=>{"use strict";w()});var Am=i(()=>{"use strict";Tm();_m();Pm()});var ds=i(()=>{"use strict";ym();gm();bm();Sm();wm();km();xm();Im();Em();Cm();Am()});var cs=i(()=>{"use strict"});var $m=i(()=>{"use strict";y()});var Jm=i(()=>{"use strict";pe();zn()});var Tt=i(()=>{"use strict"});var Km=i(()=>{"use strict";y();w();or();Tt()});var zm=i(()=>{"use strict";pe();cs()});var Qm=i(()=>{"use strict"});import{z as us}from"zod";var iM,Vm=i(()=>{"use strict";y();Xn();$o();ar();w();Mo();or();ds();Re();cs();$m();Jm();Km();zn();zm();Qm();iM=us.object({mediaType:us.string().min(1),path:us.string()})});var Ym=i(()=>{"use strict"});var ms=i(()=>{"use strict";Vm();Ym()});var ep=i(()=>{"use strict";Uo()});var _=i(()=>{"use strict";w();fl();Mo();Uo();ms();ep();or();ir();ds();Re()});var hs=i(()=>{"use strict"});var qe=i(()=>{"use strict";hs()});async function ip(t){let e=await nI(t);try{return await tI(e,t),await e.queryOne(`
473
+ `});var Ct=i(()=>{"use strict";w();Re()});var Cm=i(()=>{"use strict";w();Ct()});var Tm=i(()=>{"use strict";w()});var _m=i(()=>{"use strict";w();gi()});var Pm=i(()=>{"use strict";w();Re()});var Am=i(()=>{"use strict";w();Ct()});var Lm=i(()=>{"use strict";w();Ct()});var Om=i(()=>{"use strict";w();Ct()});var Nm=i(()=>{"use strict";w();Ct()});var Wm=i(()=>{"use strict";w();Ct()});var Fm=i(()=>{"use strict";Ee();w();ir()});var Gm=i(()=>{"use strict";w()});var jm=i(()=>{"use strict";w()});var Um=i(()=>{"use strict";w()});var qm=i(()=>{"use strict";Gm();jm();Um()});var ms=i(()=>{"use strict";Cm();Tm();_m();Pm();Am();Lm();Om();Nm();Wm();Fm();qm()});var ps=i(()=>{"use strict"});var np=i(()=>{"use strict";y()});var rp=i(()=>{"use strict";pe();zn()});var Tt=i(()=>{"use strict"});var ip=i(()=>{"use strict";y();w();or();Tt()});var ap=i(()=>{"use strict";pe();ps()});var op=i(()=>{"use strict"});import{z as hs}from"zod";var cM,dp=i(()=>{"use strict";y();Xn();Xo();ar();w();qo();or();ms();Re();ps();np();rp();ip();zn();ap();op();cM=hs.object({mediaType:hs.string().min(1),path:hs.string()})});var cp=i(()=>{"use strict"});var ys=i(()=>{"use strict";dp();cp()});var lp=i(()=>{"use strict";Jo()});var P=i(()=>{"use strict";w();Rl();qo();Jo();ys();lp();or();ir();ms();Re()});var bs=i(()=>{"use strict"});var Be=i(()=>{"use strict";bs()});async function hp(t){let e=await dI(t);try{return await sI(e,t),await e.queryOne(`
474
474
  SELECT 1 AS active
475
475
  FROM state_locks
476
476
  WHERE scope = ? AND resource_key = ?
477
477
  LIMIT 1
478
- `,[t.scope,t.resourceKey],()=>!0)===!0}finally{await e.close()}}async function tI(t,e){let n=[],r=[];e.scope!==void 0&&(n.push("scope = ?"),r.push(e.scope)),e.resourceKey!==void 0&&(n.push("resource_key = ?"),r.push(e.resourceKey));let a=await t.queryAll(`
478
+ `,[t.scope,t.resourceKey],()=>!0)===!0}finally{await e.close()}}async function sI(t,e){let n=[],r=[];e.scope!==void 0&&(n.push("scope = ?"),r.push(e.scope)),e.resourceKey!==void 0&&(n.push("resource_key = ?"),r.push(e.resourceKey));let a=await t.queryAll(`
479
479
  SELECT scope, resource_key, mode, owner_id, owner_pid, heartbeat_at
480
480
  FROM state_locks
481
481
  ${n.length===0?"":`WHERE ${n.join(" AND ")}`}
482
- `,r,o=>({lock:rI(o),resourceKey:E(o,"resource_key"),scope:E(o,"scope")}));for(let{lock:o,resourceKey:s,scope:d}of a)aI(o,e.staleMs)&&await t.run(`
482
+ `,r,o=>({lock:cI(o),resourceKey:E(o,"resource_key"),scope:E(o,"scope")}));for(let{lock:o,resourceKey:s,scope:d}of a)lI(o,e.staleMs)&&await t.run(`
483
483
  DELETE FROM state_locks
484
484
  WHERE scope = ?
485
485
  AND resource_key = ?
486
486
  AND owner_id = ?
487
487
  AND heartbeat_at = ?
488
- `,[d,s,o.ownerId,o.heartbeatAt])}async function nI(t){if(t.databaseFile!==void 0)return await N.open(t.databaseFile,rp,{create:!0,mode:"readwrite"});if(t.stateDatabaseName!==void 0)return await X(t.stateDatabaseName,rp);throw new Error("State lock requires a database File or state database name.")}function rI(t){return{heartbeatAt:S(t,"heartbeat_at"),mode:iI(E(t,"mode")),ownerId:E(t,"owner_id")}}function iI(t){return t==="read"||t==="write"?t:"write"}function aI(t,e=eI){return Date.now()-t.heartbeatAt>e}var rp,eI,Ni=i(()=>{"use strict";F();w();_();rp=`
488
+ `,[d,s,o.ownerId,o.heartbeatAt])}async function dI(t){if(t.databaseFile!==void 0)return await N.open(t.databaseFile,pp,{create:!0,mode:"readwrite"});if(t.stateDatabaseName!==void 0)return await X(t.stateDatabaseName,pp);throw new Error("State lock requires a database File or state database name.")}function cI(t){return{heartbeatAt:S(t,"heartbeat_at"),mode:uI(E(t,"mode")),ownerId:E(t,"owner_id")}}function uI(t){return t==="read"||t==="write"?t:"write"}function lI(t,e=oI){return Date.now()-t.heartbeatAt>e}var pp,oI,Mi=i(()=>{"use strict";F();w();P();pp=`
489
489
  CREATE TABLE IF NOT EXISTS state_locks (
490
490
  scope TEXT NOT NULL,
491
491
  resource_key TEXT NOT NULL,
@@ -499,7 +499,7 @@ ${hm}
499
499
 
500
500
  CREATE INDEX IF NOT EXISTS idx_state_locks_resource
501
501
  ON state_locks(scope, resource_key);
502
- `,eI=300*1e3});async function sp(t){return await ip({stateDatabaseName:"core.sqlite",resourceKey:dI(t),scope:sI,staleMs:op})||await cI(t)}function dI(t){return String(t)}async function cI(t){let e=await uI();try{let n=await e.queryOne("SELECT owner_pid, heartbeat_at FROM library_locks WHERE library_id = ?",[t],r=>({heartbeatAt:S(r,"heartbeat_at"),ownerPid:S(r,"owner_pid")}));return n!==void 0&&mI(n)}finally{await e.close()}}async function uI(){let t=await X("core.sqlite",oI);return await lI(t),t}async function lI(t){new Set(await t.queryAll("PRAGMA table_info(library_locks)",void 0,n=>E(n,"name"))).has("heartbeat_at")||await t.run("ALTER TABLE library_locks ADD COLUMN heartbeat_at INTEGER NOT NULL DEFAULT 0")}function mI(t){return Date.now()-t.heartbeatAt<=op}var oI,sI,op,_t=i(()=>{"use strict";w();_();Ni();oI=`
502
+ `,oI=300*1e3});async function gp(t){return await hp({stateDatabaseName:"core.sqlite",resourceKey:hI(t),scope:pI,staleMs:yp})||await fI(t)}function hI(t){return String(t)}async function fI(t){let e=await yI();try{let n=await e.queryOne("SELECT owner_pid, heartbeat_at FROM library_locks WHERE library_id = ?",[t],r=>({heartbeatAt:S(r,"heartbeat_at"),ownerPid:S(r,"owner_pid")}));return n!==void 0&&bI(n)}finally{await e.close()}}async function yI(){let t=await X("core.sqlite",mI);return await gI(t),t}async function gI(t){new Set(await t.queryAll("PRAGMA table_info(library_locks)",void 0,n=>E(n,"name"))).has("heartbeat_at")||await t.run("ALTER TABLE library_locks ADD COLUMN heartbeat_at INTEGER NOT NULL DEFAULT 0")}function bI(t){return Date.now()-t.heartbeatAt<=yp}var mI,pI,yp,_t=i(()=>{"use strict";w();P();Mi();mI=`
503
503
  CREATE TABLE IF NOT EXISTS library_locks (
504
504
  library_id INTEGER PRIMARY KEY,
505
505
  mode TEXT NOT NULL,
@@ -508,7 +508,7 @@ ${hm}
508
508
  heartbeat_at INTEGER NOT NULL,
509
509
  created_at INTEGER NOT NULL
510
510
  );
511
- `,sI="library",op=300*1e3});var qM,Lt=i(()=>{"use strict";y();w();_();qe();Ee();F();_t();hs();qM=Promise.resolve()});var $M,dr=i(()=>{"use strict";$M=new RegExp("\\p{Script=Han}","u")});var ys=i(()=>{"use strict";Ee()});var gs,Ot=i(()=>{"use strict";gs=`
511
+ `,pI="library",yp=300*1e3});var zM,Lt=i(()=>{"use strict";y();w();P();Be();Ee();F();_t();bs();zM=Promise.resolve()});var XM,dr=i(()=>{"use strict";XM=new RegExp("\\p{Script=Han}","u")});var ws=i(()=>{"use strict";Ee()});var ks,Ot=i(()=>{"use strict";ks=`
512
512
  CREATE TABLE IF NOT EXISTS search_sessions (
513
513
  session_id TEXT PRIMARY KEY,
514
514
  archive_key TEXT NOT NULL,
@@ -612,31 +612,31 @@ ON search_sessions(expires_at);
612
612
 
613
613
  CREATE INDEX IF NOT EXISTS idx_search_sessions_prune
614
614
  ON search_sessions(accessed_at DESC, created_at DESC, session_id);
615
- `});async function on(){let t=await X("cache/search-sessions.sqlite",gs);return bs?t:await hI(t)?(bs=!0,t):(await pI(t),bs=!0,t)}async function pI(t){await t.execute(`
615
+ `});async function sn(){let t=await X("cache/search-sessions.sqlite",ks);return xs?t:await wI(t)?(xs=!0,t):(await SI(t),xs=!0,t)}async function SI(t){await t.execute(`
616
616
  DROP TABLE IF EXISTS search_evidence_hit_events;
617
617
  DROP TABLE IF EXISTS search_triple_hits;
618
618
  DROP TABLE IF EXISTS search_entity_hits;
619
619
  DROP TABLE IF EXISTS search_chunk_hits;
620
620
  DROP TABLE IF EXISTS search_sessions;
621
- ${gs}
622
- `)}async function hI(t){return await Wi(t,"search_entity_hits","archive_id")&&await Wi(t,"search_chunk_hits","archive_id")&&await Wi(t,"search_triple_hits","archive_id")&&await Wi(t,"search_evidence_hit_events","archive_id")}async function Wi(t,e,n){return(await t.queryAll(`PRAGMA table_info(${e})`,void 0,a=>String(a.name))).includes(n)}var bs,sn=i(()=>{"use strict";_();Ot();bs=!1});var Di=i(()=>{"use strict"});async function up(t,e){await lp(t,e),await t.run("DELETE FROM search_sessions WHERE session_id = ?",[e])}async function lp(t,e){await t.run("DELETE FROM search_results WHERE session_id = ?",[e]),await t.run("DELETE FROM search_evidence_hit_events WHERE session_id = ?",[e]),await t.run("DELETE FROM search_entity_hits WHERE session_id = ?",[e]),await t.run("DELETE FROM search_triple_hits WHERE session_id = ?",[e]),await t.run("DELETE FROM search_chunk_hits WHERE session_id = ?",[e])}async function mp(t){await t.run(`
621
+ ${ks}
622
+ `)}async function wI(t){return await Fi(t,"search_entity_hits","archive_id")&&await Fi(t,"search_chunk_hits","archive_id")&&await Fi(t,"search_triple_hits","archive_id")&&await Fi(t,"search_evidence_hit_events","archive_id")}async function Fi(t,e,n){return(await t.queryAll(`PRAGMA table_info(${e})`,void 0,a=>String(a.name))).includes(n)}var xs,dn=i(()=>{"use strict";P();Ot();xs=!1});var Gi=i(()=>{"use strict"});async function wp(t,e){await kp(t,e),await t.run("DELETE FROM search_sessions WHERE session_id = ?",[e])}async function kp(t,e){await t.run("DELETE FROM search_results WHERE session_id = ?",[e]),await t.run("DELETE FROM search_evidence_hit_events WHERE session_id = ?",[e]),await t.run("DELETE FROM search_entity_hits WHERE session_id = ?",[e]),await t.run("DELETE FROM search_triple_hits WHERE session_id = ?",[e]),await t.run("DELETE FROM search_chunk_hits WHERE session_id = ?",[e])}async function xp(t){await t.run(`
623
623
  DELETE FROM predicate_dictionary
624
624
  WHERE NOT EXISTS (
625
625
  SELECT 1
626
626
  FROM search_triple_hits
627
627
  WHERE search_triple_hits.predicate_id = predicate_dictionary.id
628
628
  )
629
- `)}var Ss=i(()=>{"use strict";w();sn();Di();Ot()});async function Mi(t){let e=await on();try{let n=await pp(e),r=await e.queryOne("SELECT COUNT(*) AS count FROM search_sessions",void 0,c=>S(c,"count")),a=t.force?await bI(e):await gI(e,t.now),o=t.force?[]:await SI(e),s=[...new Set([...a,...o])].sort();!t.dryRun&&s.length>0&&(await e.transaction(async()=>{for(let c of s)await up(e,c);await mp(e)}),await e.run("VACUUM"));let d=await pp(e);return{freedBytes:Math.max(0,n-d),removed:s.length,scanned:r??0}}finally{await e.close()}}async function gI(t,e){return await t.queryAll(`
629
+ `)}var Is=i(()=>{"use strict";w();dn();Gi();Ot()});async function ji(t){let e=await sn();try{let n=await Ip(e),r=await e.queryOne("SELECT COUNT(*) AS count FROM search_sessions",void 0,c=>S(c,"count")),a=t.force?await EI(e):await II(e,t.now),o=t.force?[]:await vI(e),s=[...new Set([...a,...o])].sort();!t.dryRun&&s.length>0&&(await e.transaction(async()=>{for(let c of s)await wp(e,c);await xp(e)}),await e.run("VACUUM"));let d=await Ip(e);return{freedBytes:Math.max(0,n-d),removed:s.length,scanned:r??0}}finally{await e.close()}}async function II(t,e){return await t.queryAll(`
630
630
  SELECT session_id
631
631
  FROM search_sessions
632
632
  WHERE expires_at < ?
633
- `,[e],n=>E(n,"session_id"))}async function bI(t){return await t.queryAll("SELECT session_id FROM search_sessions",void 0,e=>E(e,"session_id"))}async function SI(t){return await t.queryAll(`
633
+ `,[e],n=>E(n,"session_id"))}async function EI(t){return await t.queryAll("SELECT session_id FROM search_sessions",void 0,e=>E(e,"session_id"))}async function vI(t){return await t.queryAll(`
634
634
  SELECT session_id
635
635
  FROM search_sessions
636
636
  ORDER BY accessed_at DESC, created_at DESC, session_id
637
637
  LIMIT -1 OFFSET ?
638
- `,[500],e=>E(e,"session_id"))}async function pp(t){let e=await t.queryOne("PRAGMA page_count",void 0,r=>S(r,"page_count"))??0,n=await t.queryOne("PRAGMA page_size",void 0,r=>S(r,"page_size"))??0;return e*n}var hp=i(()=>{"use strict";w();sn();Ot();Ss()});var fp=i(()=>{"use strict";Ot()});var ws=i(()=>{"use strict"});var Fi=i(()=>{"use strict";w();sn();Di();fp();ws()});var gp=i(()=>{"use strict";F();Ot()});var bp=i(()=>{"use strict";w();ys();sn();Fi();gp();Di();Ot();Ss()});var Sp=i(()=>{"use strict";w();sn();Fi()});var Wt=i(()=>{"use strict";ys();hp();Fi();bp();Sp();ws()});var Gi=i(()=>{"use strict"});var ji=i(()=>{"use strict";at()});var xs=i(()=>{"use strict";Ee()});var Ui=i(()=>{"use strict"});var Is=i(()=>{"use strict";Ui()});var Es=i(()=>{"use strict";Ui()});var Bi=i(()=>{"use strict";Gi();xs();Is();Es()});var Lp=i(()=>{"use strict";qe()});var Op=i(()=>{"use strict";Gi();ji();xs();Ui();Bi();Is();Es();Lp()});var W=i(()=>{"use strict";Op()});var Rs=i(()=>{"use strict"});var Cs=i(()=>{"use strict";Z();ar();is();Rs()});var Np=i(()=>{"use strict";Cs()});var Y=i(()=>{"use strict";Cs();Np();Rs()});var uj,lj,Dt=i(()=>{"use strict";F();uj=new RegExp("\\p{Script=Han}+","gu"),lj=new RegExp("^\\p{Script=Han}+$","u")});var qi=i(()=>{"use strict";F()});var Ps=i(()=>{"use strict";Tt()});var Hi=i(()=>{"use strict";w();Ps()});var Mp=i(()=>{"use strict";Dt();qi();Hi();Tt()});var Gp=i(()=>{"use strict";Tt()});var jp=i(()=>{"use strict";Dt()});var Up=i(()=>{"use strict"});var Ws=i(()=>{"use strict";w();Up();qi()});var qp=i(()=>{"use strict";w();Dt();jp();Ps();Tt();Ws();Hi()});var Hp=i(()=>{"use strict";Mp();Gp();qi();qp();Ws();Tt();Hi()});var $e=i(()=>{"use strict";Hp();Dt()});var Mt=i(()=>{"use strict";Y();$e();Dt();ji()});var ne=i(()=>{"use strict";ye();qe();W()});var Se=i(()=>{"use strict";qe();W()});var Te=i(()=>{"use strict";Y();nt();W();ne()});var Pe=i(()=>{"use strict";Y();$e();W();ne();Se();Te();W();Mt()});var mn=i(()=>{"use strict";Wt();$e();Pe();Se()});var Bs=i(()=>{"use strict";Y();dr();W();ne();Te();Se()});var hr=i(()=>{"use strict";Z()});var Ae=i(()=>{"use strict";Y();hr();W();ne();Te()});var Qi=i(()=>{"use strict"});var fr=i(()=>{"use strict"});var yr=i(()=>{"use strict";Te();Ae()});var qs=i(()=>{"use strict";W();Ae();fr();yr()});var rh=i(()=>{"use strict";$e();Mt();W();Pe();Qi();Ae();fr();qs();yr();yr();fr()});var ih=i(()=>{"use strict";rh();qs();fr();yr()});var br=i(()=>{"use strict";ih()});var oh=i(()=>{"use strict";Wt();W();ne();Te();Ae();Se();br()});var Sr=i(()=>{"use strict";ne();Ae();W();Se();br();oh()});var Js=i(()=>{"use strict";Y();W();ne();Te();Ae();Sr();wr();Se()});var wr=i(()=>{"use strict";W();ne();Te();Se();Js()});var Zi=i(()=>{"use strict";W();Pe();Se()});var ea=i(()=>{"use strict";W();$e()});var ta=i(()=>{"use strict";Y();dr();Wt();$e();W();mn();Bs();Sr();wr();Pe();Zi();ea()});var hn=i(()=>{"use strict";$e()});var ph=i(()=>{"use strict";dr();Wt();W();Mt();mn();Bs();Sr();wr();ta();Pe();hn()});var hh=i(()=>{"use strict";ph();Zi();ea();ta();mn();Pe()});var na=i(()=>{"use strict";Ae();br();ne()});var kr=i(()=>{"use strict";W()});var ra=i(()=>{"use strict";W();Mt();ne();Pe();mn();$e();kr()});var Qs=i(()=>{"use strict";W();Se();na();ra();kr()});var Xs=i(()=>{"use strict"});var gh=i(()=>{"use strict";hr();W();Ae();na();Qs();ra();kr();Xs();ne();Qi()});var oa=i(()=>{"use strict";gh();Qs();na();ra();kr();Xs()});var Vs=i(()=>{"use strict";_();qe();Y();hr();W();Ae();br();wr();Se();oa();ne();Te()});var bh=i(()=>{"use strict";_();Y();ye();qe();Ee();W();Te()});var Sh=i(()=>{"use strict";Vs();oa();ne()});var rd=i(()=>{"use strict";hh();Vs();oa();Mt();ne();Js();Sr();bh();Sh()});var xh=i(()=>{"use strict";rd()});var EE,Ih=i(()=>{"use strict";Ee();F();w();_();EE=10080*60*1e3});var Eh=i(()=>{"use strict"});var vh=i(()=>{"use strict";w();Ih();Eh()});var Rh=i(()=>{"use strict"});var Ch=i(()=>{"use strict";vh();Rh()});var ct=i(()=>{"use strict";xh();Ch();Wt()});var Je=i(()=>{"use strict"});var ut=i(()=>{"use strict";Je()});import{z as dd}from"zod";var Tr,ua,cd,f1,lt=i(()=>{"use strict";Je();Tr=1,ua=5,cd=`${JSON.stringify({formatVersion:Tr,schemaVersion:ua})}
639
- `,f1=dd.object({formatVersion:dd.literal(Tr),schemaVersion:dd.number().int().positive().optional()})});var Oh=i(()=>{"use strict";y();ut();Je();lt()});var la=i(()=>{"use strict";y();Je();lt();ut()});var Nh=i(()=>{"use strict";Je()});var Dh=i(()=>{"use strict";y();Je();Nh();lt();ut()});var jh=i(()=>{"use strict";Oh();la();lt();Dh()});var Kh=i(()=>{"use strict";qe()});var zh=i(()=>{"use strict";Z()});var ga=i(()=>{"use strict"});var Ar=i(()=>{"use strict";To();Fn()});var hd=i(()=>{"use strict";y();ga();Ar()});var Qh=i(()=>{"use strict";Ar()});var Xh=i(()=>{"use strict";ga();Ar()});var fd=i(()=>{"use strict";Ar()});var Vh=i(()=>{"use strict";hd();Qh();Xh();fd();ga();Z()});var Yh=i(()=>{"use strict";hd();Vh();fd()});var Zh=i(()=>{"use strict";zh();Yh()});var ba=i(()=>{"use strict";Z();y();Zh();Le()});var mt=i(()=>{"use strict"});var $J,Lr=i(()=>{"use strict";y();w();Hn();mt();$J=new It(1)});var gd=i(()=>{"use strict";w();F();mt();Lr()});var Sa=i(()=>{"use strict";y();F()});var bd=i(()=>{"use strict";F();Lr();Sa()});var kd=i(()=>{"use strict";y();lt();Je();ut();la();mt();gd();bd();Lr()});var af=i(()=>{"use strict";mt();ut()});var xd=i(()=>{"use strict";y();F();Lr()});var Id=i(()=>{"use strict";y();F();la();lt();ut();mt();kd();af();gd();xd();bd();Sa()});var of=i(()=>{"use strict";F();Id();kd();xd();mt()});async function wa(t){let e=R().documentStore,n=0,r=0,a=0,o;try{o=await e.list()}catch(d){if(Fe(d)&&d.code==="ENOENT")return{freedBytes:a,removed:r,scanned:n};throw d}for(let d of o){if(!U(d)||!d.name.startsWith(".wikg-session-"))continue;n+=1;let c=await Ye(d);!t.force&&(c===void 0||t.now-c<$E)||(a+=await Ie(d),t.dryRun||await e.remove(d.name,{recursive:!0}),r+=1)}let s=await e.getDirectory(".wikg-cache");if(s!==void 0)for(let d of await s.list())U(d)&&(n+=1,t.force&&(a+=await Ie(d),t.dryRun||await s.remove(d.name,{recursive:!0}),r+=1));return{freedBytes:a,removed:r,scanned:n}}var $E,sf=i(()=>{"use strict";y();pe();$E=3600*1e3});var df=i(()=>{"use strict";w();y();F();mt();Sa()});var vd=i(()=>{"use strict";of();Id();sf();df()});var Rd=i(()=>{"use strict";vd()});var cf=i(()=>{"use strict";_();ba();ct();Rd()});var Le=i(()=>{"use strict";jh();Kh();cf();Rd()});var Td,_d=i(()=>{"use strict";Td=["queued","running","canceling","paused","succeeded","failed","canceled"]});async function uf(){return await z(R().library,"jobs/work")}async function lf(t){let e=await R().library.getDirectory("jobs");if(e!==void 0)for(let[n,r,a]of[["work",t,!0],["cache",t,!0],["logs",t,!0],["events",`${t}.ndjson`,!1]]){let o=await e.getDirectory(n);o!==void 0&&await o.remove(r,{recursive:a})}}var Or=i(()=>{"use strict";y()});var Nr=i(()=>{"use strict";F()});var Pd=i(()=>{"use strict"});var Wr=i(()=>{"use strict";y()});var mf,pf=i(()=>{"use strict";mf=`
638
+ `,[500],e=>E(e,"session_id"))}async function Ip(t){let e=await t.queryOne("PRAGMA page_count",void 0,r=>S(r,"page_count"))??0,n=await t.queryOne("PRAGMA page_size",void 0,r=>S(r,"page_size"))??0;return e*n}var Ep=i(()=>{"use strict";w();dn();Ot();Is()});var vp=i(()=>{"use strict";Ot()});var Es=i(()=>{"use strict"});var Ui=i(()=>{"use strict";w();dn();Gi();vp();Es()});var Cp=i(()=>{"use strict";F();Ot()});var Tp=i(()=>{"use strict";w();ws();dn();Ui();Cp();Gi();Ot();Is()});var _p=i(()=>{"use strict";w();dn();Ui()});var Wt=i(()=>{"use strict";ws();Ep();Ui();Tp();_p();Es()});var qi=i(()=>{"use strict"});var Bi=i(()=>{"use strict";at()});var Rs=i(()=>{"use strict";Ee()});var Hi=i(()=>{"use strict"});var Cs=i(()=>{"use strict";Hi()});var Ts=i(()=>{"use strict";Hi()});var $i=i(()=>{"use strict";qi();Rs();Cs();Ts()});var Up=i(()=>{"use strict";Be()});var qp=i(()=>{"use strict";qi();Bi();Rs();Hi();$i();Cs();Ts();Up()});var W=i(()=>{"use strict";qp()});var As=i(()=>{"use strict"});var Ls=i(()=>{"use strict";Z();ar();ds();As()});var Bp=i(()=>{"use strict";Ls()});var Y=i(()=>{"use strict";Ls();Bp();As()});var fj,yj,Dt=i(()=>{"use strict";F();fj=new RegExp("\\p{Script=Han}+","gu"),yj=new RegExp("^\\p{Script=Han}+$","u")});var Ji=i(()=>{"use strict";F()});var Ws=i(()=>{"use strict";Tt()});var Ki=i(()=>{"use strict";w();Ws()});var Jp=i(()=>{"use strict";Dt();Ji();Ki();Tt()});var zp=i(()=>{"use strict";Tt()});var Qp=i(()=>{"use strict";Dt()});var Xp=i(()=>{"use strict"});var js=i(()=>{"use strict";w();Xp();Ji()});var Yp=i(()=>{"use strict";w();Dt();Qp();Ws();Tt();js();Ki()});var Zp=i(()=>{"use strict";Jp();zp();Ji();Yp();js();Tt();Ki()});var $e=i(()=>{"use strict";Zp();Dt()});var Mt=i(()=>{"use strict";Y();$e();Dt();Bi()});var ne=i(()=>{"use strict";ye();Be();W()});var Se=i(()=>{"use strict";Be();W()});var Te=i(()=>{"use strict";Y();nt();W();ne()});var Pe=i(()=>{"use strict";Y();$e();W();ne();Se();Te();W();Mt()});var pn=i(()=>{"use strict";Wt();$e();Pe();Se()});var Ks=i(()=>{"use strict";Y();dr();W();ne();Te();Se()});var hr=i(()=>{"use strict";Z()});var Ae=i(()=>{"use strict";Y();hr();W();ne();Te()});var Yi=i(()=>{"use strict"});var fr=i(()=>{"use strict"});var yr=i(()=>{"use strict";Te();Ae()});var zs=i(()=>{"use strict";W();Ae();fr();yr()});var mh=i(()=>{"use strict";$e();Mt();W();Pe();Yi();Ae();fr();zs();yr();yr();fr()});var ph=i(()=>{"use strict";mh();zs();fr();yr()});var br=i(()=>{"use strict";ph()});var fh=i(()=>{"use strict";Wt();W();ne();Te();Ae();Se();br()});var Sr=i(()=>{"use strict";ne();Ae();W();Se();br();fh()});var Vs=i(()=>{"use strict";Y();W();ne();Te();Ae();Sr();wr();Se()});var wr=i(()=>{"use strict";W();ne();Te();Se();Vs()});var na=i(()=>{"use strict";W();Pe();Se()});var ra=i(()=>{"use strict";W();$e()});var ia=i(()=>{"use strict";Y();dr();Wt();$e();W();pn();Ks();Sr();wr();Pe();na();ra()});var fn=i(()=>{"use strict";$e()});var Ih=i(()=>{"use strict";dr();Wt();W();Mt();pn();Ks();Sr();wr();ia();Pe();fn()});var Eh=i(()=>{"use strict";Ih();na();ra();ia();pn();Pe()});var aa=i(()=>{"use strict";Ae();br();ne()});var kr=i(()=>{"use strict";W()});var oa=i(()=>{"use strict";W();Mt();ne();Pe();pn();$e();kr()});var ed=i(()=>{"use strict";W();Se();aa();oa();kr()});var td=i(()=>{"use strict"});var Ch=i(()=>{"use strict";hr();W();Ae();aa();ed();oa();kr();td();ne();Yi()});var ca=i(()=>{"use strict";Ch();ed();aa();oa();kr();td()});var nd=i(()=>{"use strict";P();Be();Y();hr();W();Ae();br();wr();Se();ca();ne();Te()});var Th=i(()=>{"use strict";P();Y();ye();Be();Ee();W();Te()});var _h=i(()=>{"use strict";nd();ca();ne()});var dd=i(()=>{"use strict";Eh();nd();ca();Mt();ne();Vs();Sr();Th();_h()});var Lh=i(()=>{"use strict";dd()});var PE,Oh=i(()=>{"use strict";Ee();F();w();P();PE=10080*60*1e3});var Nh=i(()=>{"use strict"});var Wh=i(()=>{"use strict";w();Oh();Nh()});var Dh=i(()=>{"use strict"});var Mh=i(()=>{"use strict";Wh();Dh()});var ct=i(()=>{"use strict";Lh();Mh();Wt()});var Je=i(()=>{"use strict"});var ut=i(()=>{"use strict";Je()});import{z as pd}from"zod";var Tr,pa,hd,I1,lt=i(()=>{"use strict";Je();Tr=1,pa=5,hd=`${JSON.stringify({formatVersion:Tr,schemaVersion:pa})}
639
+ `,I1=pd.object({formatVersion:pd.literal(Tr),schemaVersion:pd.number().int().positive().optional()})});var Bh=i(()=>{"use strict";y();ut();Je();lt()});var ha=i(()=>{"use strict";y();Je();lt();ut()});var Hh=i(()=>{"use strict";Je()});var Jh=i(()=>{"use strict";y();Je();Hh();lt();ut()});var Xh=i(()=>{"use strict";Bh();ha();lt();Jh()});var Yh=i(()=>{"use strict";Be()});var Zh=i(()=>{"use strict";Z()});var wa=i(()=>{"use strict"});var Ar=i(()=>{"use strict";Oo();Gn()});var Ed=i(()=>{"use strict";y();wa();Ar()});var ef=i(()=>{"use strict";Ar()});var tf=i(()=>{"use strict";wa();Ar()});var vd=i(()=>{"use strict";Ar()});var nf=i(()=>{"use strict";Ed();ef();tf();vd();wa();Z()});var rf=i(()=>{"use strict";Ed();nf();vd()});var af=i(()=>{"use strict";Zh();rf()});var ka=i(()=>{"use strict";Z();y();af();Le()});var mt=i(()=>{"use strict"});var ZJ,Lr=i(()=>{"use strict";y();w();Hn();mt();ZJ=new It(1)});var Cd=i(()=>{"use strict";w();F();mt();Lr()});var xa=i(()=>{"use strict";y();F()});var Td=i(()=>{"use strict";F();Lr();xa()});var Ad=i(()=>{"use strict";y();lt();Je();ut();ha();mt();Cd();Td();Lr()});var uf=i(()=>{"use strict";mt();ut()});var Ld=i(()=>{"use strict";y();F();Lr()});var Od=i(()=>{"use strict";y();F();ha();lt();ut();mt();Ad();uf();Cd();Ld();Td();xa()});var lf=i(()=>{"use strict";F();Od();Ad();Ld();mt()});async function Ia(t){let e=R().documentStore,n=0,r=0,a=0,o;try{o=await e.list()}catch(d){if(Fe(d)&&d.code==="ENOENT")return{freedBytes:a,removed:r,scanned:n};throw d}for(let d of o){if(!U(d)||!d.name.startsWith(".wikg-session-"))continue;n+=1;let c=await Ye(d);!t.force&&(c===void 0||t.now-c<VE)||(a+=await Ie(d),t.dryRun||await e.remove(d.name,{recursive:!0}),r+=1)}let s=await e.getDirectory(".wikg-cache");if(s!==void 0)for(let d of await s.list())U(d)&&(n+=1,t.force&&(a+=await Ie(d),t.dryRun||await s.remove(d.name,{recursive:!0}),r+=1));return{freedBytes:a,removed:r,scanned:n}}var VE,mf=i(()=>{"use strict";y();pe();VE=3600*1e3});var pf=i(()=>{"use strict";w();y();F();mt();xa()});var Wd=i(()=>{"use strict";lf();Od();mf();pf()});var Dd=i(()=>{"use strict";Wd()});var hf=i(()=>{"use strict";P();ka();ct();Dd()});var Le=i(()=>{"use strict";Xh();Yh();hf();Dd()});var Fd,Gd=i(()=>{"use strict";Fd=["queued","running","canceling","paused","succeeded","failed","canceled"]});async function ff(){return await z(R().library,"jobs/work")}async function yf(t){let e=await R().library.getDirectory("jobs");if(e!==void 0)for(let[n,r,a]of[["work",t,!0],["cache",t,!0],["logs",t,!0],["events",`${t}.ndjson`,!1]]){let o=await e.getDirectory(n);o!==void 0&&await o.remove(r,{recursive:a})}}var Or=i(()=>{"use strict";y()});var Nr=i(()=>{"use strict";F()});var jd=i(()=>{"use strict"});var Wr=i(()=>{"use strict";y()});var gf,bf=i(()=>{"use strict";gf=`
640
640
  CREATE TABLE IF NOT EXISTS build_jobs (
641
641
  job_id TEXT PRIMARY KEY,
642
642
  archive_key TEXT NOT NULL,
@@ -695,7 +695,7 @@ CREATE TABLE IF NOT EXISTS build_worker_lease (
695
695
 
696
696
  INSERT OR IGNORE INTO build_worker_lease (id)
697
697
  VALUES (1);
698
- `});function Ut(t){let e=VE(jt(t,"current_step"),"current_step"),n=jt(t,"owner_id"),r=t.owner_pid===null?void 0:ce(t,"owner_pid"),a=t.reading_summary_started_at===null?void 0:ce(t,"reading_summary_started_at"),o=t.finished_at===null?void 0:ce(t,"finished_at"),s=jt(t,"error_json"),d=t.input_revision===null?void 0:ce(t,"input_revision"),c=jt(t,"llm_json"),u=jt(t,"prompt");return{archiveKey:Oe(t,"archive_key"),archiveIdentity:Oe(t,"archive_path"),cacheLocator:Oe(t,"cache_path"),chapterId:ce(t,"chapter_id"),createdAt:ce(t,"created_at"),...e===void 0?{}:{currentStep:e},...s===void 0?{}:{errorJSON:s},eventsLocator:Oe(t,"events_path"),...o===void 0?{}:{finishedAt:o},jobId:Oe(t,"job_id"),...d===void 0?{}:{inputRevision:d},logLocator:Oe(t,"log_path"),...c===void 0?{}:{llmJSON:c},...n===void 0?{}:{ownerId:n},...r===void 0?{}:{ownerPid:r},...u===void 0?{}:{prompt:u},queueRank:ce(t,"queue_rank"),state:XE(Oe(t,"state")),...a===void 0?{}:{readingSummaryStartedAt:a},target:hf(Oe(t,"target"),"target"),updatedAt:ce(t,"updated_at"),workspaceLocator:Oe(t,"workspace_path")}}async function Mr(t){let e=A().resources,[n,r,a,o,s]=await Promise.all([e.getFile(t.archiveIdentity),Ad(t.cacheLocator),QE(t.eventsLocator),Ad(t.logLocator),Ad(t.workspaceLocator)]);if(n===void 0)throw Dr("archive");if(r===void 0)throw Dr("cache");if(a===void 0)throw Dr("events");if(o===void 0)throw Dr("log");if(s===void 0)throw Dr("workspace");let{archiveIdentity:d,cacheLocator:c,eventsLocator:u,logLocator:m,ownerPid:b,workspaceLocator:v,...f}=t;return{...f,archive:n,cache:r,events:a,log:o,workspace:s}}async function Ad(t){return t.startsWith("jobs/")?await We(R().library,t)??zE(t):await A().resources.getDirectory(t)}function zE(t){let e=R().library,n=r=>`${t}/${r}`;return{createDirectory:async r=>await z(e,n(r)),createFile:async r=>await H(e,n(r)),getDirectory:async r=>await We(e,n(r)),getFile:async r=>await J(e,n(r)),getLastModified:async()=>await(await We(e,t))?.getLastModified?.(),identity:`managed:library:${t}`,kind:"directory",list:async()=>(await We(e,t))?.list()??[],name:t.split("/").at(-1)??t,remove:async(r,a)=>{await(await We(e,t))?.remove(r,a)}}}async function QE(t){return t.startsWith("jobs/")?await J(R().library,t):await A().resources.getFile(t)}function Dr(t){return new Error(`Build job ${t} resource is unavailable`)}function XE(t){if(Td.includes(t))return t;throw new Error(`Invalid build job state: ${t}`)}function hf(t,e){if(t==="index-embedding-source"||t==="index-embedding-summary"||t==="index-fts"||t==="reading-graph"||t==="knowledge-graph"||t==="reading-summary")return t;throw new Error(`Invalid ${e}: ${t}`)}function VE(t,e){return t===void 0?void 0:hf(t,e)}function Oe(t,e){let n=t[e];if(typeof n!="string")throw new TypeError(`Expected ${e} to be a string`);return n}function ce(t,e){let n=t[e];if(typeof n!="number")throw new TypeError(`Expected ${e} to be a number`);return n}function jt(t,e){let n=t[e];if(n!=null){if(typeof n!="string")throw new TypeError(`Expected ${e} to be a string`);return n}}var Bt=i(()=>{"use strict";_d();y()});async function bn(){let t=await X("jobs/job.sqlite",mf);try{return await t.run(`
698
+ `});function Ut(t){let e=rv(jt(t,"current_step"),"current_step"),n=jt(t,"owner_id"),r=t.owner_pid===null?void 0:de(t,"owner_pid"),a=t.reading_summary_started_at===null?void 0:de(t,"reading_summary_started_at"),o=t.finished_at===null?void 0:de(t,"finished_at"),s=jt(t,"error_json"),d=t.input_revision===null?void 0:de(t,"input_revision"),c=jt(t,"llm_json"),u=jt(t,"prompt");return{archiveKey:Oe(t,"archive_key"),archiveIdentity:Oe(t,"archive_path"),cacheLocator:Oe(t,"cache_path"),chapterId:de(t,"chapter_id"),createdAt:de(t,"created_at"),...e===void 0?{}:{currentStep:e},...s===void 0?{}:{errorJSON:s},eventsLocator:Oe(t,"events_path"),...o===void 0?{}:{finishedAt:o},jobId:Oe(t,"job_id"),...d===void 0?{}:{inputRevision:d},logLocator:Oe(t,"log_path"),...c===void 0?{}:{llmJSON:c},...n===void 0?{}:{ownerId:n},...r===void 0?{}:{ownerPid:r},...u===void 0?{}:{prompt:u},queueRank:de(t,"queue_rank"),state:nv(Oe(t,"state")),...a===void 0?{}:{readingSummaryStartedAt:a},target:Sf(Oe(t,"target"),"target"),updatedAt:de(t,"updated_at"),workspaceLocator:Oe(t,"workspace_path")}}async function Mr(t){let e=_().resources,[n,r,a,o,s]=await Promise.all([e.getFile(t.archiveIdentity),Ud(t.cacheLocator),tv(t.eventsLocator),Ud(t.logLocator),Ud(t.workspaceLocator)]);if(n===void 0)throw Dr("archive");if(r===void 0)throw Dr("cache");if(a===void 0)throw Dr("events");if(o===void 0)throw Dr("log");if(s===void 0)throw Dr("workspace");let{archiveIdentity:d,cacheLocator:c,eventsLocator:u,logLocator:m,ownerPid:b,workspaceLocator:v,...f}=t;return{...f,archive:n,cache:r,events:a,log:o,workspace:s}}async function Ud(t){return t.startsWith("jobs/")?await We(R().library,t)??ev(t):await _().resources.getDirectory(t)}function ev(t){let e=R().library,n=r=>`${t}/${r}`;return{createDirectory:async r=>await z(e,n(r)),createFile:async r=>await H(e,n(r)),getDirectory:async r=>await We(e,n(r)),getFile:async r=>await J(e,n(r)),getLastModified:async()=>await(await We(e,t))?.getLastModified?.(),identity:`managed:library:${t}`,kind:"directory",list:async()=>(await We(e,t))?.list()??[],name:t.split("/").at(-1)??t,remove:async(r,a)=>{await(await We(e,t))?.remove(r,a)}}}async function tv(t){return t.startsWith("jobs/")?await J(R().library,t):await _().resources.getFile(t)}function Dr(t){return new Error(`Build job ${t} resource is unavailable`)}function nv(t){if(Fd.includes(t))return t;throw new Error(`Invalid build job state: ${t}`)}function Sf(t,e){if(t==="index-embedding-source"||t==="index-embedding-summary"||t==="index-fts"||t==="reading-graph"||t==="knowledge-graph"||t==="reading-summary")return t;throw new Error(`Invalid ${e}: ${t}`)}function rv(t,e){return t===void 0?void 0:Sf(t,e)}function Oe(t,e){let n=t[e];if(typeof n!="string")throw new TypeError(`Expected ${e} to be a string`);return n}function de(t,e){let n=t[e];if(typeof n!="number")throw new TypeError(`Expected ${e} to be a number`);return n}function jt(t,e){let n=t[e];if(n!=null){if(typeof n!="string")throw new TypeError(`Expected ${e} to be a string`);return n}}var qt=i(()=>{"use strict";Gd();y()});async function Sn(){let t=await X("jobs/job.sqlite",gf);try{return await t.run(`
699
699
  UPDATE build_jobs
700
700
  SET workspace_path = 'jobs/work/' || job_id,
701
701
  cache_path = 'jobs/cache/' || job_id,
@@ -705,12 +705,12 @@ VALUES (1);
705
705
  OR cache_path NOT LIKE 'jobs/cache/%'
706
706
  OR log_path NOT LIKE 'jobs/logs/%'
707
707
  OR events_path NOT LIKE 'jobs/events/%'
708
- `),t}catch(e){throw await t.close().catch(()=>{}),e}}var Sn=i(()=>{"use strict";_();y();pf();Bt()});var ka=i(()=>{"use strict";Nr();Wr();Sn();Or()});var xa=i(()=>{"use strict";Bt();ka();Or()});var Ld=i(()=>{"use strict";F();Or();Nr();Pd();Wr();Sn();xa();ka();Ni();Bt()});var bf=i(()=>{"use strict";Nr();Sn();xa();Bt();Ni()});var Sf=i(()=>{"use strict";F();Nr();Pd();Wr();Sn();xa();ka();Ld();Bt()});function iv(t){return nv.has(t)}async function av(t,e){if((await e.list()).some(a=>!iv(a.name)))return 0;let r=await pt(e);return await t.remove(e.name,{recursive:!0}),r}async function wf(t){let e=0,n=0,r=0;for(let a of await t.list()){if(!U(a))continue;r+=1;let o=await Ye(a);if(o===void 0||Date.now()-o<rv)continue;let s=await av(t,a);(s>0||await t.getDirectory(a.name)===void 0)&&(e+=s,n+=1)}return{freedBytes:e,removed:n,scanned:r}}async function pt(t){return await Ie(t)}var nv,rv,Od=i(()=>{"use strict";y();nv=new Set([".DS_Store"]),rv=6e4});async function Ia(t){let e=await bn(),n=t.force?t.now:t.now-10080*60*1e3;try{let r=await e.queryOne("SELECT COUNT(*) AS count FROM build_jobs",void 0,c=>ce(c,"count")),a=await e.queryAll(`
708
+ `),t}catch(e){throw await t.close().catch(()=>{}),e}}var wn=i(()=>{"use strict";P();y();bf();qt()});var Ea=i(()=>{"use strict";Nr();Wr();wn();Or()});var va=i(()=>{"use strict";qt();Ea();Or()});var qd=i(()=>{"use strict";F();Or();Nr();jd();Wr();wn();va();Ea();Mi();qt()});var If=i(()=>{"use strict";Nr();wn();va();qt();Mi()});var Ef=i(()=>{"use strict";F();Nr();jd();Wr();wn();va();Ea();qd();qt()});function uv(t){return dv.has(t)}async function lv(t,e){if((await e.list()).some(a=>!uv(a.name)))return 0;let r=await pt(e);return await t.remove(e.name,{recursive:!0}),r}async function vf(t){let e=0,n=0,r=0;for(let a of await t.list()){if(!U(a))continue;r+=1;let o=await Ye(a);if(o===void 0||Date.now()-o<cv)continue;let s=await lv(t,a);(s>0||await t.getDirectory(a.name)===void 0)&&(e+=s,n+=1)}return{freedBytes:e,removed:n,scanned:r}}async function pt(t){return await Ie(t)}var dv,cv,Bd=i(()=>{"use strict";y();dv=new Set([".DS_Store"]),cv=6e4});async function Ra(t){let e=await Sn(),n=t.force?t.now:t.now-10080*60*1e3;try{let r=await e.queryOne("SELECT COUNT(*) AS count FROM build_jobs",void 0,c=>de(c,"count")),a=await e.queryAll(`
709
709
  SELECT *
710
710
  FROM build_jobs
711
711
  WHERE state IN ('succeeded', 'failed', 'canceled')
712
712
  AND updated_at <= ?
713
- `,[n],Ut),o=await Promise.all(a.map(Mr)),s=t.dryRun?{freedBytes:0,removed:0,scanned:0}:await wf(await uf()),d=0;for(let c of o)d+=await pt(c.workspace),d+=await pt(c.cache),d+=await pt(c.log),d+=await pt(c.events),t.dryRun||(await lf(c.jobId),await e.run("DELETE FROM build_jobs WHERE job_id = ?",[c.jobId]));return{freedBytes:d+s.freedBytes,removed:o.length+s.removed,scanned:(r??0)+s.scanned}}finally{await e.close()}}var kf=i(()=>{"use strict";Od();Or();Sn();Bt()});var Kd=i(()=>{"use strict";_d();Ld();bf();Sf();Wr();kf()});async function Ef(t){let n=await(await R().library.getDirectory("staging"))?.getDirectory("library");if(n===void 0)return{freedBytes:0,removed:0,scanned:0};let r=await sv();if(r===void 0)return{freedBytes:0,removed:0,scanned:0};let a=new Set(r.map(u=>String(u))),o=await n.list(),s=0,d=0,c=0;for(let u of o){if(!U(u)||(s+=1,a.has(u.name)))continue;let m=Number(u.name);if(Number.isInteger(m)&&await sp(m))continue;let b=await Ie(u);t.dryRun||await n.remove(u.name,{recursive:!0}),d+=1,c+=b}return{freedBytes:c,removed:d,scanned:s}}async function sv(){let t=await X("core.sqlite","");try{return await t.queryAll("SELECT id FROM libraries",void 0,e=>S(e,"id"))}catch{return}finally{await t.close()}}var wn=i(()=>{"use strict";F();y();w();or();_();Le();Mt();hn();Dt();kn();Lt();_t();Z()});var vf=i(()=>{"use strict"});var dv,rV,kn=i(()=>{"use strict";y();w();_();qe();Le();Le();Kd();ct();Ee();F();Lt();wn();_t();vf();dv=`
713
+ `,[n],Ut),o=await Promise.all(a.map(Mr)),s=t.dryRun?{freedBytes:0,removed:0,scanned:0}:await vf(await ff()),d=0;for(let c of o)d+=await pt(c.workspace),d+=await pt(c.cache),d+=await pt(c.log),d+=await pt(c.events),t.dryRun||(await yf(c.jobId),await e.run("DELETE FROM build_jobs WHERE job_id = ?",[c.jobId]));return{freedBytes:d+s.freedBytes,removed:o.length+s.removed,scanned:(r??0)+s.scanned}}finally{await e.close()}}var Rf=i(()=>{"use strict";Bd();Or();wn();qt()});var rc=i(()=>{"use strict";Gd();qd();If();Ef();Wr();Rf()});async function _f(t){let n=await(await R().library.getDirectory("staging"))?.getDirectory("library");if(n===void 0)return{freedBytes:0,removed:0,scanned:0};let r=await pv();if(r===void 0)return{freedBytes:0,removed:0,scanned:0};let a=new Set(r.map(u=>String(u))),o=await n.list(),s=0,d=0,c=0;for(let u of o){if(!U(u)||(s+=1,a.has(u.name)))continue;let m=Number(u.name);if(Number.isInteger(m)&&await gp(m))continue;let b=await Ie(u);t.dryRun||await n.remove(u.name,{recursive:!0}),d+=1,c+=b}return{freedBytes:c,removed:d,scanned:s}}async function pv(){let t=await X("core.sqlite","");try{return await t.queryAll("SELECT id FROM libraries",void 0,e=>S(e,"id"))}catch{return}finally{await t.close()}}var kn=i(()=>{"use strict";F();y();w();or();P();Le();Mt();fn();Dt();xn();Lt();_t();Z()});var Pf=i(()=>{"use strict"});var hv,lV,xn=i(()=>{"use strict";y();w();P();Be();Le();Le();rc();ct();Ee();F();Lt();kn();_t();Pf();hv=`
714
714
  id INTEGER PRIMARY KEY AUTOINCREMENT,
715
715
  library_id INTEGER NOT NULL,
716
716
  public_id TEXT NOT NULL,
@@ -723,9 +723,9 @@ WHERE state IN ('succeeded', 'failed', 'canceled')
723
723
  created_at TEXT NOT NULL,
724
724
  updated_at TEXT NOT NULL,
725
725
  UNIQUE(library_id, public_id)
726
- `,rV=`
726
+ `,lV=`
727
727
  CREATE TABLE IF NOT EXISTS library_archives (
728
- ${dv}
728
+ ${hv}
729
729
  );
730
730
 
731
731
  CREATE INDEX IF NOT EXISTS idx_library_archives_library
@@ -733,14 +733,14 @@ ${dv}
733
733
 
734
734
  CREATE INDEX IF NOT EXISTS idx_library_archives_library_path
735
735
  ON library_archives(library_id, relative_path);
736
- `});var _f=i(()=>{"use strict";ct();kn();_t();wn();Lt()});var zd=i(()=>{"use strict";Le();kn();Lt()});var Lf=i(()=>{"use strict";Gi();Bi();dr();ea();Zi();mn();Pe();ta();Wt();hn();wn();zd()});var Of=i(()=>{"use strict";rd();Qi();Bi();ji();Lf();Pe();kn();zd();Lt();wn();_t()});var Ca=i(()=>{"use strict";Lt();_f();kn();Of();wn();_t()});function Ta(t){let e=t.trim();return e===""?[]:Array.from(wv.segment(e)).map(n=>n.segment.trim()).filter(n=>n!=="")}function ke(t){let e=t.replace(/\s+/gu," ").trim(),n=kv(e),r="";for(let a of n)if(!xv(a)){if(!Gr(a)){r+=a;continue}r+=a.toLowerCase().normalize("NFD").replace(new RegExp("\\p{M}","gu"),"")}return r}function kv(t){let e=[],n=0;for(;n<t.length;){let r=t[n];if(r===void 0)break;if(r!==" "){e.push(r),n+=1;continue}if(e.length>=2&&Sv.has(e[e.length-1]??"")&&Gr(e[e.length-2]??"")&&n<t.length-1&&Gr(t[n+1]??"")){e.pop(),n+=1;continue}let a=e[e.length-1]??"",o=t[n+1]??"";a!==""&&o!==""&&Gr(a)&&Gr(o)&&e.push(r),n+=1}return e}function Gr(t){return t!==""&&new RegExp("\\p{Script=Latin}","u").test(t)&&new RegExp("\\p{L}","u").test(t)}function xv(t){return/[\p{P}\p{S}]/u.test(t)}var Sv,wv,jr=i(()=>{"use strict";Sv=new Set(["\u2010","\u2011","\u2012","\u2013","\u2014","\u2015"]),wv=new Intl.Segmenter(void 0,{granularity:"sentence"})});function Xd(){return{exactNormalized:!1,exactRaw:!1,exactSubstring:!1,matchEnd:-1,matchStart:-1,score:0}}function Wf(t,e){let n=_a(t,2),r=_a(e,2),a=_a(t,3),o=_a(e,3);return(Nf(n,r)+Nf(a,o))/2}function _a(t,e){if(t.length<=e)return t===""?new Set:new Set([t]);let n=new Set;for(let r=0;r<=t.length-e;r+=1)n.add(t.slice(r,r+e));return n}function Nf(t,e){if(t.size===0||e.size===0)return 0;let n=0;for(let r of t)e.has(r)&&(n+=1);return 2*n/(t.size+e.size)}function Df(t,e){if(t===e)return 1;if(t===""||e==="")return 0;let n=Array.from({length:e.length+1},(o,s)=>s),r=new Array(e.length+1).fill(0);for(let[o,s]of[...t].entries()){r[0]=o+1;for(let[d,c]of[...e].entries()){let u=(r[d]??0)+1,m=(n[d+1]??0)+1,b=(n[d]??0)+(s===c?0:1);r[d+1]=Math.min(u,m,b)}[n,r]=[r,n]}return 1-(n[e.length]??Math.max(t.length,e.length))/Math.max(t.length,e.length)}function Mf(t,e){return 1-Math.abs(t.length-e.length)/Math.max(t.length,e.length)}function Ff(t,e){if(t===e)return 1;let n=t.length,r=e.length;if(n===0||r===0)return 0;let a=Array.from({length:n+1},()=>new Array(r+1).fill(0)),o=0;for(let s=1;s<=n;s+=1)for(let d=1;d<=r;d+=1){if(t[s-1]!==e[d-1])continue;let c=a[s];c!==void 0&&(c[d]=(a[s-1]?.[d-1]??0)+1,o=Math.max(o,c[d]??0))}return 2*o/(n+r)}function Gf(t){return` - ${t.occurrenceId} score=${t.score.toFixed(3)}
737
- prev: ${Qd(t.prevText)}
738
- text: ${Qd(t.text,120)}
739
- next: ${Qd(t.nextText)}`}function Qd(t,e=80){let n=t.replace(/\s+/gu," ").trim();return n===""?"(none)":n.length<=e?n:`${n.slice(0,e-3)}...`}var Vd=i(()=>{"use strict"});var Yd=i(()=>{"use strict"});function Uf(t,e,n){return t.mode==="head_tail"?vv(t,e):Zd(t.text??"",e,n)}function vv(t,e){let n=t.head??"",r=t.tail??"",a=ke(e),o=ke(n),s=ke(r);if(o===""||s==="")return Xd();let d=a.indexOf(o),c=a.lastIndexOf(s);if(d!==-1&&c!==-1&&d<=c){let v=o.length+s.length,f=Math.min(1,v/Math.max(1,a.length));return{exactNormalized:!1,exactRaw:!1,exactSubstring:!0,matchEnd:c+s.length,matchStart:d,score:.82+.18*f}}let u=Zd(n,e,"start_anchor"),m=Zd(r,e,"end_anchor"),b=u.matchStart<=m.matchStart?1:.85;return{exactNormalized:!1,exactRaw:!1,exactSubstring:!1,matchEnd:Math.max(u.matchEnd,m.matchEnd),matchStart:Math.min(u.matchStart,m.matchStart),score:(u.score+m.score)/2*b}}function Zd(t,e,n){let r=t.trim(),a=e.trim(),o=ke(r),s=ke(a);if(o===""||s==="")return Xd();if(r===a)return{exactNormalized:!0,exactRaw:!0,exactSubstring:!0,matchEnd:s.length,matchStart:0,score:1};if(o===s)return{exactNormalized:!0,exactRaw:!1,exactSubstring:!1,matchEnd:s.length,matchStart:0,score:.995};if(s.includes(o)){let f=s.indexOf(o),k=o.length/Math.max(1,s.length),g=jf({candidateNormalized:s,label:n,matchEnd:f+o.length,matchStart:f,queryNormalized:o});return{exactNormalized:!1,exactRaw:!1,exactSubstring:!0,matchEnd:f+o.length,matchStart:f,score:Math.min(1,.75+.25*k+g)}}if(o.includes(s)){let f=s.length/Math.max(1,o.length);return{exactNormalized:!1,exactRaw:!1,exactSubstring:!1,matchEnd:s.length,matchStart:0,score:Math.min(.92,.78+.14*f)}}let d=0,c=-1,u=-1,m=Math.min(s.length,Math.max(o.length,Math.floor(o.length*1.2))),b=Math.min(m,Math.max(1,Math.floor(o.length*.8))),v=new Set(o);for(let f=b;f<=m;f+=1)for(let k=0;k<=s.length-f;k+=1){let g=s.slice(k,k+f),C=new Set(g),L=new Set([...v,...C]).size,K=[...v].filter(ie=>C.has(ie)).length;if((L===0?0:K/L)<.35)continue;let j=.35*Wf(o,g)+.35*Ff(o,g)+.2*Df(o,g)+.1*Mf(o,g)+jf({candidateNormalized:s,label:n,matchEnd:k+f,matchStart:k,queryNormalized:o});j>d&&(d=Math.min(1,j),c=k,u=k+f)}return{exactNormalized:!1,exactRaw:!1,exactSubstring:!1,matchEnd:u,matchStart:c,score:d}}function jf(t){if(t.matchStart<0||t.matchEnd<0||t.queryNormalized.length<12||t.label==="start_anchor"&&t.matchStart!==0||t.label==="end_anchor"&&t.matchEnd!==t.candidateNormalized.length)return 0;let e=t.queryNormalized.length/Math.max(1,t.candidateNormalized.length);return .08*(.5+.5*Math.min(1,e))}var Bf=i(()=>{"use strict";jr();Vd();Yd()});function qf(t){if(t==null)return[void 0,"anchor is required"];if(typeof t=="string"){let o=t.trim();if(o==="")return[void 0,"anchor string is empty"];if(o.includes("...")){let s=o.split("...").map(d=>d.trim()).filter(d=>d!=="");if(s.length>=2){let d=s[0],c=s[s.length-1];return d===void 0||c===void 0?[void 0,"anchor string is empty"]:[{head:d,mode:"head_tail",tail:c},void 0]}}return[{mode:"full",text:o},void 0]}if(typeof t!="object")return[void 0,`expected string or object, got ${typeof t}`];let e=t;if((e.mode==="head_tail"||e.head!==void 0?"head_tail":"full")==="full"){let o=typeof e.text=="string"?e.text.trim():"";return o===""?[void 0,"full anchor requires non-empty 'text'"]:[{mode:"full",text:o},void 0]}let r=typeof e.head=="string"?e.head.trim():"",a=typeof e.tail=="string"?e.tail.trim():"";return r!==""&&a===""?[{mode:"full",text:r},void 0]:r===""&&a!==""?[{mode:"full",text:a},void 0]:r===""||a===""?[void 0,"head_tail anchor requires non-empty 'head' and 'tail'"]:[{head:r,mode:"head_tail",tail:a},void 0]}function Hf(t,e){if(t===void 0)return;if(t.mode==="head_tail"){let r=e==="end_anchor"?ec(t.tail??"","end_anchor"):ec(t.head??"","start_anchor");return r===""?void 0:{mode:"full",text:r}}return{mode:"full",text:ec(t.text??"",e)}}function tc(t){return t.mode==="head_tail"?ke(t.head??"").length+ke(t.tail??"").length:ke(t.text??"").length}function ec(t,e){let n=Ta(t);return n.length<=1?t.trim():e==="end_anchor"?n[n.length-1]??t.trim():n[0]??t.trim()}var $f=i(()=>{"use strict";jr()});var qt,Qf=i(()=>{"use strict";Bf();$f();Vd();Yd();qt=class{resolve(e,n,r){let a=e.start_anchor??e.start,o=e.end_anchor??e.end,[s,d]=this.parseAnchor(a,"start_anchor");if(d!==void 0)return[void 0,d];let c;if(o!==void 0){let[g,C]=this.parseAnchor(o,"end_anchor");if(C!==void 0)return[void 0,C];c=g}let[u,m,b]=this.resolveAnchor({anchor:s,candidateSentenceIds:n,candidateTexts:r,label:"start_anchor"});if(b!==void 0)return[void 0,b];if(u===void 0)return[void 0,{candidates:[],code:"none",fieldName:"start_anchor",message:"start_anchor could not be matched: no candidate selected"}];if(c===void 0)return[{confidence:u.score,sentenceIds:[u.sentenceId],strategy:m},void 0];let[v,f,k]=this.resolveAnchor({anchor:c,candidateSentenceIds:n,candidateTexts:r,label:"end_anchor",minIndex:u.index});return k!==void 0?[void 0,k]:v===void 0?[void 0,{candidates:[],code:"none",fieldName:"end_anchor",message:"end_anchor could not be matched: no candidate selected"}]:v.index<u.index?[void 0,{candidates:[],code:"invalid_range",fieldName:"end_anchor",message:`Invalid evidence range: end_anchor resolved before start_anchor (${u.occurrenceId} -> ${v.occurrenceId}).`}]:[{confidence:Math.min(u.score,v.score),sentenceIds:n.slice(u.index,v.index+1),strategy:`${m}+${f}`},void 0]}resolveWithOverrides(e){let n=e.evidence.start_anchor??e.evidence.start,r=e.evidence.end_anchor??e.evidence.end,[a,o]=this.parseAnchor(n,"start_anchor");if(o!==void 0)return[void 0,o];let s=e.overrides.start_anchor,[d,c,u]=s===void 0?this.resolveAnchor({anchor:a,candidateSentenceIds:e.candidateSentenceIds,candidateTexts:e.candidateTexts,label:"start_anchor"}):[s,"choice_final",void 0];if(u!==void 0)return[void 0,u];if(d===void 0)return[void 0,{candidates:[],code:"none",fieldName:"start_anchor",message:"start_anchor could not be matched: no candidate selected"}];if(r===void 0)return[{confidence:d.score,sentenceIds:[d.sentenceId],strategy:c},void 0];let[m,b]=this.parseAnchor(r,"end_anchor");if(b!==void 0)return[void 0,b];let v=e.overrides.end_anchor,[f,k,g]=v===void 0?this.resolveAnchor({anchor:m,candidateSentenceIds:e.candidateSentenceIds,candidateTexts:e.candidateTexts,label:"end_anchor",minIndex:d.index}):[v,"choice_final",void 0];return g!==void 0?[void 0,g]:f===void 0?[void 0,{candidates:[],code:"none",fieldName:"end_anchor",message:"end_anchor could not be matched: no candidate selected"}]:f.index<d.index?[void 0,{candidates:[],code:"invalid_range",fieldName:"end_anchor",message:`Invalid evidence range: end_anchor resolved before start_anchor (${d.occurrenceId} -> ${f.occurrenceId}).`}]:[{confidence:Math.min(d.score,f.score),sentenceIds:e.candidateSentenceIds.slice(d.index,f.index+1),strategy:`${c}+${k}`},void 0]}parseAnchor(e,n){let[r,a]=qf(e);return a!==void 0?[void 0,{candidates:[],code:"invalid_anchor",fieldName:n,message:`Invalid evidence.${n}: ${a}`}]:[Hf(r,n),void 0]}resolveAnchor(e){if(e.anchor===void 0)return[void 0,"invalid",{candidates:[],code:"invalid",fieldName:e.label,message:`${e.label} is missing`}];let n=this.rankAnchor(e.anchor,e.candidateSentenceIds,e.candidateTexts,e.label),r=e.minIndex;if(r!==void 0&&(n=n.filter(m=>m.index>=r)),n.length===0)return[void 0,"none",{candidates:[],code:"none",fieldName:e.label,message:`${e.label} could not be matched: no candidates available`}];let a=n.filter(m=>m.exactRaw);if(a.length===1)return[a[0],"exact_raw",void 0];if(a.length>1)return[void 0,"ambiguous_exact_raw",this.#t(e.label,"ambiguous_exact_raw",a)];let o=n.filter(m=>m.exactSubstring);if(o.length===1&&tc(e.anchor)>=8)return[o[0],"exact_substring",void 0];if(o.length>1&&tc(e.anchor)>=8){let m=this.#e(o);return m!==void 0?[m,"exact_substring_scored",void 0]:[void 0,"ambiguous_exact_substring",this.#t(e.label,"ambiguous_exact_substring",o)]}let s=n.filter(m=>m.exactNormalized);if(s.length===1)return[s[0],"exact_normalized",void 0];if(s.length>1){let m=this.#e(s);return m!==void 0?[m,"exact_normalized_scored",void 0]:[void 0,"ambiguous_exact_normalized",this.#t(e.label,"ambiguous_exact_normalized",s)]}let d=n[0];if(d===void 0)return[void 0,"none",{candidates:[],code:"none",fieldName:e.label,message:`${e.label} could not be matched: no candidates available`}];let c=n[1]?.score??0,u=d.score-c;return d.score<.55?[void 0,"low_confidence",{candidates:n.slice(0,3),code:"low_confidence",fieldName:e.label,message:`${e.label} could not be matched confidently. Best candidate score=${d.score.toFixed(3)}.`}]:n.length===1?[d,"auto_top1_single_candidate",void 0]:d.score>=.97?[d,"auto_top1_very_high",void 0]:d.score>=.9&&u>=.07?[d,"auto_top1",void 0]:[void 0,"ambiguous_ranked",this.#t(e.label,"ambiguous_ranked",n)]}rankAnchor(e,n,r,a){let o=[];for(let[s,d]of n.entries()){let c=r[s]??"",u=s>0?r[s-1]??"":"",m=s<r.length-1?r[s+1]??"":"",b=Uf(e,c,a);o.push({exactNormalized:b.exactNormalized,exactRaw:b.exactRaw,exactSubstring:b.exactSubstring,index:s,nextText:m,occurrenceId:`S${s+1}`,prevText:u,score:b.score,sentenceId:d,text:c})}return o.sort((s,d)=>s.score!==d.score?d.score-s.score:s.exactRaw!==d.exactRaw?s.exactRaw?-1:1:s.exactSubstring!==d.exactSubstring?s.exactSubstring?-1:1:s.exactNormalized!==d.exactNormalized?s.exactNormalized?-1:1:s.index-d.index),o}#e(e){if(e.length===0)return;if(e.length===1)return e[0];let n=e[0];if(n===void 0)return;let r=e[1]?.score??0;if(n.score>=.9&&n.score-r>=.07)return n}#t(e,n,r){let a=r.slice(0,3),o=a.map(s=>Gf(s)).join(`
736
+ `});var Nf=i(()=>{"use strict";ct();xn();_t();kn();Lt()});var ic=i(()=>{"use strict";Le();xn();Lt()});var Mf=i(()=>{"use strict";qi();$i();dr();ra();na();pn();Pe();ia();Wt();fn();kn();ic()});var Ff=i(()=>{"use strict";dd();Yi();$i();Bi();Mf();Pe();xn();ic();Lt();kn();_t()});var Pa=i(()=>{"use strict";Lt();Nf();xn();Ff();kn();_t()});function Aa(t){let e=t.trim();return e===""?[]:Array.from(Rv.segment(e)).map(n=>n.segment.trim()).filter(n=>n!=="")}function ke(t){let e=t.replace(/\s+/gu," ").trim(),n=Cv(e),r="";for(let a of n)if(!Tv(a)){if(!Gr(a)){r+=a;continue}r+=a.toLowerCase().normalize("NFD").replace(new RegExp("\\p{M}","gu"),"")}return r}function Cv(t){let e=[],n=0;for(;n<t.length;){let r=t[n];if(r===void 0)break;if(r!==" "){e.push(r),n+=1;continue}if(e.length>=2&&vv.has(e[e.length-1]??"")&&Gr(e[e.length-2]??"")&&n<t.length-1&&Gr(t[n+1]??"")){e.pop(),n+=1;continue}let a=e[e.length-1]??"",o=t[n+1]??"";a!==""&&o!==""&&Gr(a)&&Gr(o)&&e.push(r),n+=1}return e}function Gr(t){return t!==""&&new RegExp("\\p{Script=Latin}","u").test(t)&&new RegExp("\\p{L}","u").test(t)}function Tv(t){return/[\p{P}\p{S}]/u.test(t)}var vv,Rv,jr=i(()=>{"use strict";vv=new Set(["\u2010","\u2011","\u2012","\u2013","\u2014","\u2015"]),Rv=new Intl.Segmenter(void 0,{granularity:"sentence"})});function oc(){return{exactNormalized:!1,exactRaw:!1,exactSubstring:!1,matchEnd:-1,matchStart:-1,score:0}}function jf(t,e){let n=La(t,2),r=La(e,2),a=La(t,3),o=La(e,3);return(Gf(n,r)+Gf(a,o))/2}function La(t,e){if(t.length<=e)return t===""?new Set:new Set([t]);let n=new Set;for(let r=0;r<=t.length-e;r+=1)n.add(t.slice(r,r+e));return n}function Gf(t,e){if(t.size===0||e.size===0)return 0;let n=0;for(let r of t)e.has(r)&&(n+=1);return 2*n/(t.size+e.size)}function Uf(t,e){if(t===e)return 1;if(t===""||e==="")return 0;let n=Array.from({length:e.length+1},(o,s)=>s),r=new Array(e.length+1).fill(0);for(let[o,s]of[...t].entries()){r[0]=o+1;for(let[d,c]of[...e].entries()){let u=(r[d]??0)+1,m=(n[d+1]??0)+1,b=(n[d]??0)+(s===c?0:1);r[d+1]=Math.min(u,m,b)}[n,r]=[r,n]}return 1-(n[e.length]??Math.max(t.length,e.length))/Math.max(t.length,e.length)}function qf(t,e){return 1-Math.abs(t.length-e.length)/Math.max(t.length,e.length)}function Bf(t,e){if(t===e)return 1;let n=t.length,r=e.length;if(n===0||r===0)return 0;let a=Array.from({length:n+1},()=>new Array(r+1).fill(0)),o=0;for(let s=1;s<=n;s+=1)for(let d=1;d<=r;d+=1){if(t[s-1]!==e[d-1])continue;let c=a[s];c!==void 0&&(c[d]=(a[s-1]?.[d-1]??0)+1,o=Math.max(o,c[d]??0))}return 2*o/(n+r)}function Hf(t){return` - ${t.occurrenceId} score=${t.score.toFixed(3)}
737
+ prev: ${ac(t.prevText)}
738
+ text: ${ac(t.text,120)}
739
+ next: ${ac(t.nextText)}`}function ac(t,e=80){let n=t.replace(/\s+/gu," ").trim();return n===""?"(none)":n.length<=e?n:`${n.slice(0,e-3)}...`}var sc=i(()=>{"use strict"});var dc=i(()=>{"use strict"});function Jf(t,e,n){return t.mode==="head_tail"?Av(t,e):cc(t.text??"",e,n)}function Av(t,e){let n=t.head??"",r=t.tail??"",a=ke(e),o=ke(n),s=ke(r);if(o===""||s==="")return oc();let d=a.indexOf(o),c=a.lastIndexOf(s);if(d!==-1&&c!==-1&&d<=c){let v=o.length+s.length,f=Math.min(1,v/Math.max(1,a.length));return{exactNormalized:!1,exactRaw:!1,exactSubstring:!0,matchEnd:c+s.length,matchStart:d,score:.82+.18*f}}let u=cc(n,e,"start_anchor"),m=cc(r,e,"end_anchor"),b=u.matchStart<=m.matchStart?1:.85;return{exactNormalized:!1,exactRaw:!1,exactSubstring:!1,matchEnd:Math.max(u.matchEnd,m.matchEnd),matchStart:Math.min(u.matchStart,m.matchStart),score:(u.score+m.score)/2*b}}function cc(t,e,n){let r=t.trim(),a=e.trim(),o=ke(r),s=ke(a);if(o===""||s==="")return oc();if(r===a)return{exactNormalized:!0,exactRaw:!0,exactSubstring:!0,matchEnd:s.length,matchStart:0,score:1};if(o===s)return{exactNormalized:!0,exactRaw:!1,exactSubstring:!1,matchEnd:s.length,matchStart:0,score:.995};if(s.includes(o)){let f=s.indexOf(o),k=o.length/Math.max(1,s.length),g=$f({candidateNormalized:s,label:n,matchEnd:f+o.length,matchStart:f,queryNormalized:o});return{exactNormalized:!1,exactRaw:!1,exactSubstring:!0,matchEnd:f+o.length,matchStart:f,score:Math.min(1,.75+.25*k+g)}}if(o.includes(s)){let f=s.length/Math.max(1,o.length);return{exactNormalized:!1,exactRaw:!1,exactSubstring:!1,matchEnd:s.length,matchStart:0,score:Math.min(.92,.78+.14*f)}}let d=0,c=-1,u=-1,m=Math.min(s.length,Math.max(o.length,Math.floor(o.length*1.2))),b=Math.min(m,Math.max(1,Math.floor(o.length*.8))),v=new Set(o);for(let f=b;f<=m;f+=1)for(let k=0;k<=s.length-f;k+=1){let g=s.slice(k,k+f),C=new Set(g),L=new Set([...v,...C]).size,K=[...v].filter(ie=>C.has(ie)).length;if((L===0?0:K/L)<.35)continue;let j=.35*jf(o,g)+.35*Bf(o,g)+.2*Uf(o,g)+.1*qf(o,g)+$f({candidateNormalized:s,label:n,matchEnd:k+f,matchStart:k,queryNormalized:o});j>d&&(d=Math.min(1,j),c=k,u=k+f)}return{exactNormalized:!1,exactRaw:!1,exactSubstring:!1,matchEnd:u,matchStart:c,score:d}}function $f(t){if(t.matchStart<0||t.matchEnd<0||t.queryNormalized.length<12||t.label==="start_anchor"&&t.matchStart!==0||t.label==="end_anchor"&&t.matchEnd!==t.candidateNormalized.length)return 0;let e=t.queryNormalized.length/Math.max(1,t.candidateNormalized.length);return .08*(.5+.5*Math.min(1,e))}var Kf=i(()=>{"use strict";jr();sc();dc()});function zf(t){if(t==null)return[void 0,"anchor is required"];if(typeof t=="string"){let o=t.trim();if(o==="")return[void 0,"anchor string is empty"];if(o.includes("...")){let s=o.split("...").map(d=>d.trim()).filter(d=>d!=="");if(s.length>=2){let d=s[0],c=s[s.length-1];return d===void 0||c===void 0?[void 0,"anchor string is empty"]:[{head:d,mode:"head_tail",tail:c},void 0]}}return[{mode:"full",text:o},void 0]}if(typeof t!="object")return[void 0,`expected string or object, got ${typeof t}`];let e=t;if((e.mode==="head_tail"||e.head!==void 0?"head_tail":"full")==="full"){let o=typeof e.text=="string"?e.text.trim():"";return o===""?[void 0,"full anchor requires non-empty 'text'"]:[{mode:"full",text:o},void 0]}let r=typeof e.head=="string"?e.head.trim():"",a=typeof e.tail=="string"?e.tail.trim():"";return r!==""&&a===""?[{mode:"full",text:r},void 0]:r===""&&a!==""?[{mode:"full",text:a},void 0]:r===""||a===""?[void 0,"head_tail anchor requires non-empty 'head' and 'tail'"]:[{head:r,mode:"head_tail",tail:a},void 0]}function Qf(t,e){if(t===void 0)return;if(t.mode==="head_tail"){let r=e==="end_anchor"?uc(t.tail??"","end_anchor"):uc(t.head??"","start_anchor");return r===""?void 0:{mode:"full",text:r}}return{mode:"full",text:uc(t.text??"",e)}}function lc(t){return t.mode==="head_tail"?ke(t.head??"").length+ke(t.tail??"").length:ke(t.text??"").length}function uc(t,e){let n=Aa(t);return n.length<=1?t.trim():e==="end_anchor"?n[n.length-1]??t.trim():n[0]??t.trim()}var Xf=i(()=>{"use strict";jr()});var Bt,ey=i(()=>{"use strict";Kf();Xf();sc();dc();Bt=class{resolve(e,n,r){let a=e.start_anchor??e.start,o=e.end_anchor??e.end,[s,d]=this.parseAnchor(a,"start_anchor");if(d!==void 0)return[void 0,d];let c;if(o!==void 0){let[g,C]=this.parseAnchor(o,"end_anchor");if(C!==void 0)return[void 0,C];c=g}let[u,m,b]=this.resolveAnchor({anchor:s,candidateSentenceIds:n,candidateTexts:r,label:"start_anchor"});if(b!==void 0)return[void 0,b];if(u===void 0)return[void 0,{candidates:[],code:"none",fieldName:"start_anchor",message:"start_anchor could not be matched: no candidate selected"}];if(c===void 0)return[{confidence:u.score,sentenceIds:[u.sentenceId],strategy:m},void 0];let[v,f,k]=this.resolveAnchor({anchor:c,candidateSentenceIds:n,candidateTexts:r,label:"end_anchor",minIndex:u.index});return k!==void 0?[void 0,k]:v===void 0?[void 0,{candidates:[],code:"none",fieldName:"end_anchor",message:"end_anchor could not be matched: no candidate selected"}]:v.index<u.index?[void 0,{candidates:[],code:"invalid_range",fieldName:"end_anchor",message:`Invalid evidence range: end_anchor resolved before start_anchor (${u.occurrenceId} -> ${v.occurrenceId}).`}]:[{confidence:Math.min(u.score,v.score),sentenceIds:n.slice(u.index,v.index+1),strategy:`${m}+${f}`},void 0]}resolveWithOverrides(e){let n=e.evidence.start_anchor??e.evidence.start,r=e.evidence.end_anchor??e.evidence.end,[a,o]=this.parseAnchor(n,"start_anchor");if(o!==void 0)return[void 0,o];let s=e.overrides.start_anchor,[d,c,u]=s===void 0?this.resolveAnchor({anchor:a,candidateSentenceIds:e.candidateSentenceIds,candidateTexts:e.candidateTexts,label:"start_anchor"}):[s,"choice_final",void 0];if(u!==void 0)return[void 0,u];if(d===void 0)return[void 0,{candidates:[],code:"none",fieldName:"start_anchor",message:"start_anchor could not be matched: no candidate selected"}];if(r===void 0)return[{confidence:d.score,sentenceIds:[d.sentenceId],strategy:c},void 0];let[m,b]=this.parseAnchor(r,"end_anchor");if(b!==void 0)return[void 0,b];let v=e.overrides.end_anchor,[f,k,g]=v===void 0?this.resolveAnchor({anchor:m,candidateSentenceIds:e.candidateSentenceIds,candidateTexts:e.candidateTexts,label:"end_anchor",minIndex:d.index}):[v,"choice_final",void 0];return g!==void 0?[void 0,g]:f===void 0?[void 0,{candidates:[],code:"none",fieldName:"end_anchor",message:"end_anchor could not be matched: no candidate selected"}]:f.index<d.index?[void 0,{candidates:[],code:"invalid_range",fieldName:"end_anchor",message:`Invalid evidence range: end_anchor resolved before start_anchor (${d.occurrenceId} -> ${f.occurrenceId}).`}]:[{confidence:Math.min(d.score,f.score),sentenceIds:e.candidateSentenceIds.slice(d.index,f.index+1),strategy:`${c}+${k}`},void 0]}parseAnchor(e,n){let[r,a]=zf(e);return a!==void 0?[void 0,{candidates:[],code:"invalid_anchor",fieldName:n,message:`Invalid evidence.${n}: ${a}`}]:[Qf(r,n),void 0]}resolveAnchor(e){if(e.anchor===void 0)return[void 0,"invalid",{candidates:[],code:"invalid",fieldName:e.label,message:`${e.label} is missing`}];let n=this.rankAnchor(e.anchor,e.candidateSentenceIds,e.candidateTexts,e.label),r=e.minIndex;if(r!==void 0&&(n=n.filter(m=>m.index>=r)),n.length===0)return[void 0,"none",{candidates:[],code:"none",fieldName:e.label,message:`${e.label} could not be matched: no candidates available`}];let a=n.filter(m=>m.exactRaw);if(a.length===1)return[a[0],"exact_raw",void 0];if(a.length>1)return[void 0,"ambiguous_exact_raw",this.#t(e.label,"ambiguous_exact_raw",a)];let o=n.filter(m=>m.exactSubstring);if(o.length===1&&lc(e.anchor)>=8)return[o[0],"exact_substring",void 0];if(o.length>1&&lc(e.anchor)>=8){let m=this.#e(o);return m!==void 0?[m,"exact_substring_scored",void 0]:[void 0,"ambiguous_exact_substring",this.#t(e.label,"ambiguous_exact_substring",o)]}let s=n.filter(m=>m.exactNormalized);if(s.length===1)return[s[0],"exact_normalized",void 0];if(s.length>1){let m=this.#e(s);return m!==void 0?[m,"exact_normalized_scored",void 0]:[void 0,"ambiguous_exact_normalized",this.#t(e.label,"ambiguous_exact_normalized",s)]}let d=n[0];if(d===void 0)return[void 0,"none",{candidates:[],code:"none",fieldName:e.label,message:`${e.label} could not be matched: no candidates available`}];let c=n[1]?.score??0,u=d.score-c;return d.score<.55?[void 0,"low_confidence",{candidates:n.slice(0,3),code:"low_confidence",fieldName:e.label,message:`${e.label} could not be matched confidently. Best candidate score=${d.score.toFixed(3)}.`}]:n.length===1?[d,"auto_top1_single_candidate",void 0]:d.score>=.97?[d,"auto_top1_very_high",void 0]:d.score>=.9&&u>=.07?[d,"auto_top1",void 0]:[void 0,"ambiguous_ranked",this.#t(e.label,"ambiguous_ranked",n)]}rankAnchor(e,n,r,a){let o=[];for(let[s,d]of n.entries()){let c=r[s]??"",u=s>0?r[s-1]??"":"",m=s<r.length-1?r[s+1]??"":"",b=Jf(e,c,a);o.push({exactNormalized:b.exactNormalized,exactRaw:b.exactRaw,exactSubstring:b.exactSubstring,index:s,nextText:m,occurrenceId:`S${s+1}`,prevText:u,score:b.score,sentenceId:d,text:c})}return o.sort((s,d)=>s.score!==d.score?d.score-s.score:s.exactRaw!==d.exactRaw?s.exactRaw?-1:1:s.exactSubstring!==d.exactSubstring?s.exactSubstring?-1:1:s.exactNormalized!==d.exactNormalized?s.exactNormalized?-1:1:s.index-d.index),o}#e(e){if(e.length===0)return;if(e.length===1)return e[0];let n=e[0];if(n===void 0)return;let r=e[1]?.score??0;if(n.score>=.9&&n.score-r>=.07)return n}#t(e,n,r){let a=r.slice(0,3),o=a.map(s=>Hf(s)).join(`
740
740
  `);return{candidates:a,code:n,fieldName:e,message:`${e} is ambiguous. Top candidates:
741
741
  ${o}
742
- Please provide a more specific anchor or surrounding context.`}}}});var Xf=i(()=>{"use strict"});var Vf=i(()=>{"use strict";Qf();Xf()});var Pa,Yf=i(()=>{"use strict";Pa=["Evidence selection:",'- Return evidence as [{"sentence_id":"S1","quote":"exact short source quote"}].',"- evidence.quote is a locator for the source sentence, not a proof excerpt.","- Choose the shortest exact quote that still uniquely identifies the intended sentence.","- If the quote is too short, it may match multiple sentences; if it is too long, it may include unnecessary text or cross sentence boundaries.","- Do not use a whole sentence by default.","- evidence is an array. Use multiple items when the claim needs multiple source sentences.","- A source sentence means exactly one displayed source line labeled S1, S2, S3, etc.","- Each evidence item must point to exactly one source sentence.","- Each evidence item must quote one continuous span from exactly one labeled source line, for example only from S2.","- Never merge text from two labeled source lines into one evidence quote.","- sentence_id must be one of the sentence IDs shown in the source context.","- quote must be copied from the untagged original source sentence.","- If the source context contains XML-like tags, do not copy the tags into quote; copy only the visible text."].join(`
743
- `)});var nc=i(()=>{"use strict"});var Zf=i(()=>{"use strict";nc();jr()});var In=i(()=>{"use strict";Vf();Yf();nc();Zf();jr()});import{z as Ur}from"zod";var PY,ty=i(()=>{"use strict";PY=Ur.object({meanings:Ur.array(Ur.object({information:Ur.string(),qid:Ur.string().regex(/^Q[1-9][0-9]*$/u)}).strict())}).strict()});var ny=i(()=>{"use strict"});var La=i(()=>{"use strict"});var WY,ay=i(()=>{"use strict";La();WY=336*60*60*1e3});var oy=i(()=>{"use strict";La()});var sy=i(()=>{"use strict";ty();ny();ay();La();oy()});async function ic(t){let e=await Br.open();try{return await e.gc(t)}finally{await e.close()}}function jv(t){try{let e=JSON.parse(t);if(typeof e!="object"||e===null)return;let n=e;return typeof n.qid!="string"||typeof n.refreshedAt!="string"||!Array.isArray(n.sites)?void 0:{qid:n.qid,refreshedAt:n.refreshedAt,sites:n.sites}}catch{return}}function Uv(t){try{let e=JSON.parse(t);return typeof e.qid=="string"&&(e.wiki==="zhwiki"||e.wiki==="enwiki")&&typeof e.pageId=="number"&&typeof e.revisionId=="number"&&typeof e.parsedPage=="object"&&e.parsedPage!==null&&typeof e.profile=="object"&&e.profile!==null?e:void 0}catch{return}}var Fv,Gv,Br,dy=i(()=>{"use strict";sy();_();Fv=`
742
+ Please provide a more specific anchor or surrounding context.`}}}});var ty=i(()=>{"use strict"});var ny=i(()=>{"use strict";ey();ty()});var Oa,ry=i(()=>{"use strict";Oa=["Evidence selection:",'- Return evidence as [{"sentence_id":"S1","quote":"exact short source quote"}].',"- evidence.quote is a locator for the source sentence, not a proof excerpt.","- Choose the shortest exact quote that still uniquely identifies the intended sentence.","- If the quote is too short, it may match multiple sentences; if it is too long, it may include unnecessary text or cross sentence boundaries.","- Do not use a whole sentence by default.","- evidence is an array. Use multiple items when the claim needs multiple source sentences.","- A source sentence means exactly one displayed source line labeled S1, S2, S3, etc.","- Each evidence item must point to exactly one source sentence.","- Each evidence item must quote one continuous span from exactly one labeled source line, for example only from S2.","- Never merge text from two labeled source lines into one evidence quote.","- sentence_id must be one of the sentence IDs shown in the source context.","- quote must be copied from the untagged original source sentence.","- If the source context contains XML-like tags, do not copy the tags into quote; copy only the visible text."].join(`
743
+ `)});var mc=i(()=>{"use strict"});var iy=i(()=>{"use strict";mc();jr()});var En=i(()=>{"use strict";ny();ry();mc();iy();jr()});import{z as Ur}from"zod";var FY,oy=i(()=>{"use strict";FY=Ur.object({meanings:Ur.array(Ur.object({information:Ur.string(),qid:Ur.string().regex(/^Q[1-9][0-9]*$/u)}).strict())}).strict()});var sy=i(()=>{"use strict"});var Wa=i(()=>{"use strict"});var BY,uy=i(()=>{"use strict";Wa();BY=336*60*60*1e3});var ly=i(()=>{"use strict";Wa()});var my=i(()=>{"use strict";oy();sy();uy();Wa();ly()});async function hc(t){let e=await qr.open();try{return await e.gc(t)}finally{await e.close()}}function Jv(t){try{let e=JSON.parse(t);if(typeof e!="object"||e===null)return;let n=e;return typeof n.qid!="string"||typeof n.refreshedAt!="string"||!Array.isArray(n.sites)?void 0:{qid:n.qid,refreshedAt:n.refreshedAt,sites:n.sites}}catch{return}}function Kv(t){try{let e=JSON.parse(t);return typeof e.qid=="string"&&(e.wiki==="zhwiki"||e.wiki==="enwiki")&&typeof e.pageId=="number"&&typeof e.revisionId=="number"&&typeof e.parsedPage=="object"&&e.parsedPage!==null&&typeof e.profile=="object"&&e.profile!==null?e:void 0}catch{return}}var Hv,$v,qr,py=i(()=>{"use strict";my();P();Hv=`
744
744
  CREATE TABLE IF NOT EXISTS wikimedia_qid_cache_v2 (
745
745
  qid TEXT PRIMARY KEY,
746
746
  record_json TEXT NOT NULL,
@@ -758,39 +758,39 @@ CREATE TABLE IF NOT EXISTS wikimedia_disambiguation_cache_v2 (
758
758
  record_json TEXT NOT NULL,
759
759
  PRIMARY KEY(qid,wiki,page_id,revision_id,normalizer_version,model_id)
760
760
  );
761
- `,Gv=336*60*60*1e3,Br=class t{#e;constructor(e){this.#e=e}static async open(){return new t(await X("cache/cache.sqlite",Fv))}async getQids(e,n){if(e.length===0)return new Map;n?.signal?.throwIfAborted();let r=await this.#e.queryAll(`SELECT record_json FROM wikimedia_qid_cache_v2
762
- WHERE qid IN (${e.map(()=>"?").join(",")})`,e,o=>String(o.record_json)),a=new Map;for(let o of r){let s=jv(o);s!==void 0&&a.set(s.qid,s)}return a}async putQids(e,n){n?.signal?.throwIfAborted(),await this.#e.transaction(async()=>{for(let r of e)n?.signal?.throwIfAborted(),await this.#e.run(`INSERT INTO wikimedia_qid_cache_v2(qid,record_json,refreshed_at)
761
+ `,$v=336*60*60*1e3,qr=class t{#e;constructor(e){this.#e=e}static async open(){return new t(await X("cache/cache.sqlite",Hv))}async getQids(e,n){if(e.length===0)return new Map;n?.signal?.throwIfAborted();let r=await this.#e.queryAll(`SELECT record_json FROM wikimedia_qid_cache_v2
762
+ WHERE qid IN (${e.map(()=>"?").join(",")})`,e,o=>String(o.record_json)),a=new Map;for(let o of r){let s=Jv(o);s!==void 0&&a.set(s.qid,s)}return a}async putQids(e,n){n?.signal?.throwIfAborted(),await this.#e.transaction(async()=>{for(let r of e)n?.signal?.throwIfAborted(),await this.#e.run(`INSERT INTO wikimedia_qid_cache_v2(qid,record_json,refreshed_at)
763
763
  VALUES(?,?,?)
764
764
  ON CONFLICT(qid) DO UPDATE SET
765
765
  record_json=excluded.record_json,
766
766
  refreshed_at=excluded.refreshed_at`,[r.qid,JSON.stringify(r),r.refreshedAt])})}async getDisambiguations(e,n,r){if(e.length===0)return[];r?.signal?.throwIfAborted();let a=e.map(()=>"(qid=? AND wiki=? AND page_id=? AND revision_id=?)"),o=e.flatMap(d=>[d.qid,d.wiki,d.pageId,d.revisionId]);return(await this.#e.queryAll(`SELECT record_json FROM wikimedia_disambiguation_cache_v2
767
767
  WHERE normalizer_version=? AND model_id=?
768
- AND (${a.join(" OR ")})`,[n.normalizerVersion,n.modelId,...o],d=>String(d.record_json))).flatMap(d=>{let c=Uv(d);return c===void 0?[]:[c]})}async putDisambiguations(e,n,r){r?.signal?.throwIfAborted(),await this.#e.transaction(async()=>{for(let a of e)r?.signal?.throwIfAborted(),await this.#e.run(`INSERT INTO wikimedia_disambiguation_cache_v2(
768
+ AND (${a.join(" OR ")})`,[n.normalizerVersion,n.modelId,...o],d=>String(d.record_json))).flatMap(d=>{let c=Kv(d);return c===void 0?[]:[c]})}async putDisambiguations(e,n,r){r?.signal?.throwIfAborted(),await this.#e.transaction(async()=>{for(let a of e)r?.signal?.throwIfAborted(),await this.#e.run(`INSERT INTO wikimedia_disambiguation_cache_v2(
769
769
  qid,wiki,page_id,revision_id,normalizer_version,model_id,record_json
770
770
  ) VALUES(?,?,?,?,?,?,?)
771
771
  ON CONFLICT(qid,wiki,page_id,revision_id,normalizer_version,model_id)
772
- DO UPDATE SET record_json=excluded.record_json`,[a.qid,a.wiki,a.pageId,a.revisionId,n.normalizerVersion,n.modelId,JSON.stringify(a)])})}async close(){await this.#e.close()}async gc(e){let n=new Date(e.now-Gv).toISOString(),r=await this.#e.queryOne("SELECT COUNT(*) AS count FROM wikimedia_qid_cache_v2",void 0,o=>Number(o.count))??0,a=await this.#e.queryOne("SELECT COUNT(*) AS count FROM wikimedia_qid_cache_v2 WHERE refreshed_at < ?",[n],o=>Number(o.count))??0;return!e.dryRun&&a>0&&(await this.#e.transaction(async()=>{let o=await this.#e.queryAll("SELECT qid FROM wikimedia_qid_cache_v2 WHERE refreshed_at < ?",[n],s=>String(s.qid));for(let s of o)await this.#e.run("DELETE FROM wikimedia_disambiguation_cache_v2 WHERE qid = ?",[s]);await this.#e.run("DELETE FROM wikimedia_qid_cache_v2 WHERE refreshed_at < ?",[n])}),await this.#e.run("VACUUM")),{freedBytes:0,removed:a,scanned:r}}}});var oc=i(()=>{"use strict";dy()});var sc=i(()=>{"use strict"});var dc=i(()=>{"use strict"});import{jsonrepair as t2}from"jsonrepair";var cy=i(()=>{"use strict"});var uy=i(()=>{"use strict";dc();sc();cy()});var Ne=i(()=>{"use strict";sc();dc();uy()});var qr=i(()=>{"use strict"});import{z as ze}from"zod";var Jv,Kv,R2,lc=i(()=>{"use strict";Ne();qr();Jv=ze.object({candidateId:ze.string().min(1),decision:ze.enum(["continue","recall","skip_this_time","never_recall"]),qid:ze.string().nullable().optional()}).strict(),Kv=ze.object({decisions:ze.array(Jv),groupId:ze.string().min(1)}).strict(),R2=ze.object({groups:ze.array(Kv)}).strict()});import{z as Hr}from"zod";var Xv,L2,py=i(()=>{"use strict";Ne();qr();lc();Xv=Hr.object({decision:Hr.enum(["keep","reject"]),qid:Hr.string().regex(/^Q[1-9][0-9]*$/)}).strict(),L2=Hr.object({qids:Hr.array(Xv)}).strict()});var hy=i(()=>{"use strict"});import{z as $r}from"zod";var Vv,M2,fy=i(()=>{"use strict";Ne();Vv=$r.object({note:$r.string().max(24).optional(),surfaceId:$r.string().min(1)}).strict(),M2=$r.object({protectedSurfaces:$r.array(Vv)}).strict()});var mc=i(()=>{"use strict"});var yy=i(()=>{"use strict";mc()});var gy=i(()=>{"use strict"});var pc=i(()=>{"use strict"});var by=i(()=>{"use strict";pc();qr()});var ft=i(()=>{"use strict";lc();py();qr();hy();fy();yy();mc();gy();by();pc()});var h3,fc=i(()=>{"use strict";tn();h3=Object.freeze({"serial-generation/editor-compress":Object.freeze({temperature:.7,topP:.9}),"serial-generation/editor-review":Object.freeze({temperature:[.3,.95],topP:[.4,.8]}),"serial-generation/editor-review-guide":Object.freeze({temperature:.4,topP:.6}),"serial-generation/reader-choice":Object.freeze({temperature:[.3,.95],topP:[.4,.8]}),"serial-generation/reader-extraction":Object.freeze({temperature:[.3,.95],topP:[.4,.8]})})});var yc=i(()=>{"use strict";et()});var Iy=i(()=>{"use strict";yc()});var Ey=i(()=>{"use strict";Iy();yc()});var vy=i(()=>{"use strict"});var Ry=i(()=>{"use strict"});var Cy=i(()=>{"use strict";vy();Ry()});var Jr=i(()=>{"use strict";Ne()});var Ty=i(()=>{"use strict";_();Jr()});var _y=i(()=>{"use strict";Jr()});var Py=i(()=>{"use strict"});import{z as x}from"zod";var Ay,lR,Ly,mR,pR,hR,fR,yR,gR,Oa=i(()=>{"use strict";_();Ay=x.object({from:x.union([x.number().int(),x.string()]),strength:x.string().optional(),to:x.union([x.number().int(),x.string()])}),lR=x.object({quote:x.string().optional(),sentence_id:x.string().optional()}).passthrough(),Ly=x.union([x.record(x.string(),x.unknown()),x.array(lR)]),mR=x.object({content:x.string(),evidence:Ly.nullish(),label:x.string(),retention:x.enum(["verbatim","detailed","focused","relevant"]),temp_id:x.string()}).passthrough(),pR=x.object({chunks:x.array(mR),fragment_summary:x.string(),links:x.array(Ay)}),hR=x.object({content:x.string(),evidence:Ly.nullish(),importance:x.enum(["critical","important","helpful"]),label:x.string(),temp_id:x.string()}).passthrough(),fR=x.object({chunk_id:x.number().int(),importance:x.enum(["critical","important","helpful"])}),yR=x.object({chunks:x.array(hR),importance_annotations:x.array(fR),links:x.array(Ay)}),gR=x.object({choice:x.string()})});var Oy=i(()=>{"use strict";Ne();In();Py();Jr();Oa()});var Ny=i(()=>{"use strict";Ne();_();Ty();Jr();_y();Oy();Oa()});var Wy=i(()=>{"use strict";Ny();Oa()});var Na=i(()=>{"use strict"});import{detect as E8,validateISO2 as v8}from"tinyld";var gc=i(()=>{"use strict";Me()});var Dy=i(()=>{"use strict";gc();Me()});var My=i(()=>{"use strict"});import{z as Kr}from"zod";var xR,K8,Gy=i(()=>{"use strict";Ne();In();Wy();Na();Na();Dy();My();xR=Kr.object({content:Kr.string(),id:Kr.number(),label:Kr.string()}),K8=Kr.array(xR)});var bc=i(()=>{"use strict";Gy()});var jy=i(()=>{"use strict";nt()});var Sc=i(()=>{"use strict";jy()});var Uy=i(()=>{"use strict";Cy();bc();Sc()});var Wa=i(()=>{"use strict";Uy();Sc()});var Da=i(()=>{"use strict"});var Ma=i(()=>{"use strict";Wa();Da()});var By=i(()=>{"use strict";Ma()});var qy=i(()=>{"use strict"});var Fa=i(()=>{"use strict"});var Hy=i(()=>{"use strict";Fa()});var vn,I5,TR,Ga=i(()=>{"use strict";Lo();vn=(r=>(r.Critical="critical",r.Major="major",r.Minor="minor",r))(vn||{}),I5=rn(vn),TR=Qn(vn,"review severity")});var T5,kc=i(()=>{"use strict";Fa();Ga();T5=Object.freeze({critical:9,major:3,minor:1})});var $y=i(()=>{"use strict";gc();Me();Ga()});var Jy=i(()=>{"use strict";y();et();kc()});var xc=i(()=>{"use strict";_()});var Ky=i(()=>{"use strict"});import{z as Rn}from"zod";var _R,PR,Y5,zy=i(()=>{"use strict";et();Ne();Fa();xc();Ga();_R=["critical","major","minor"],PR=Rn.object({problem:Rn.string(),severity:Rn.enum(_R),suggestion:Rn.string().default("")}),Y5=Rn.object({issues:Rn.array(PR)})});var Qy=i(()=>{"use strict";qy();Hy();kc();$y();Jy();xc();Ky();zy()});var Ic=i(()=>{"use strict";Qy()});var Vy=i(()=>{"use strict"});var Yy=i(()=>{"use strict"});var Zy=i(()=>{"use strict";Vy();Yy()});var zr=i(()=>{"use strict"});var L4,O4,Cn=i(()=>{"use strict";_();L4={critical:9,helpful:1,important:3},O4={detailed:9,focused:3,relevant:1,verbatim:27}});var Tn=i(()=>{"use strict"});var Qr=i(()=>{"use strict"});var Ec=i(()=>{"use strict";Tn()});var vc=i(()=>{"use strict";Cn();Tn();zr();Qr();Ec()});var Rc=i(()=>{"use strict";zr();vc();Qr()});var tg=i(()=>{"use strict";Cn();Tn();Qr()});var ng=i(()=>{"use strict";Cn();Tn();zr();Qr();Ec()});var rg=i(()=>{"use strict";Rc();Tn();zr();tg();vc();ng()});var ig=i(()=>{"use strict";rg();Rc()});var ag=i(()=>{"use strict";Cn()});var og=i(()=>{"use strict";ig();ag()});var sg=i(()=>{"use strict";Zy();og();Cn()});var dg=i(()=>{"use strict";sg()});var Cc=i(()=>{"use strict";Z()});var cg=i(()=>{"use strict"});var Tc=i(()=>{"use strict";Ma()});var Ua=i(()=>{"use strict"});var ug=i(()=>{"use strict";Hn();tn();Ic();Wa();dg();Ma();Da();Cc();cg();Tc();Ua()});var lg=i(()=>{"use strict";Cc();Ua();Z()});var mg=i(()=>{"use strict";By();ug();Da();lg();Tc();Ua()});var _n=i(()=>{"use strict";mg()});var pg=i(()=>{"use strict";ye();Hn();_n();at()});var hg=i(()=>{"use strict";at();at();_();ye();Ey();_n();pg();ba();y()});var Ac,yt=i(()=>{"use strict";Ac=["Recall only source mentions that should become stable searchable knowledge graph objects.","Prefer named entities: historical persons, places, organizations, dynasties, political entities, named works, named events, battles, titles, and explicitly named domain concepts.","Recall a non-named common concept only when it is a central recurring topic of the chapter and would be useful as an entity search result across multiple evidence passages.","Do not recall a surface merely because it is useful for summarizing the story or explaining a detail.","Do not recall pure numbers, standalone dates without a named event role, units of measurement, dimensions, ordinal labels, chapter numbers, punctuation fragments, common function words, generic verbs, generic adjectives, generic roles, generic objects, or incidental attributes.","Measurements, quantities, dimensions, tactical details, and descriptive attributes should remain evidence text, not entity mentions.","When uncertain, skip the mention rather than creating a noisy knowledge graph object."].join(" ")});var Lc=i(()=>{"use strict";yt()});var gg=i(()=>{"use strict";et();Ro();hg();fc();Le();Lc();y()});var Ba=i(()=>{"use strict"});import{z as p}from"zod";var bg,V,BR,qR,Sg,HR,$R,JR,KR,zR,QR,XR,VR,YR,ZR,eC,tC,nC,rC,w9,Pn=i(()=>{"use strict";y();Re();Ba();bg=1,V=p.number().int().nonnegative(),BR=p.literal(bg),qR=p.string().regex(/^Q[1-9][0-9]*$/u),Sg=p.number().min(0).max(1).optional(),HR=p.object({text:p.string(),wordsCount:V}).strict(),$R=p.object({type:p.literal("meta"),schemaVersion:BR,chapterId:p.number().int(),stream:p.enum(["knowledge-graph","reading-graph","summary"])}).strict(),JR=p.object({type:p.literal("parameter"),scope:p.enum(["knowledge-graph","reading-graph","summary"]),language:p.string().optional(),prompt:p.string()}).strict(),KR=p.object({type:p.literal("source-fragment"),fragmentId:V,summary:p.string(),sentences:p.array(HR)}).strict(),zR=p.object({type:p.literal("reading-chunk"),id:p.string().min(1),generation:p.number().int(),sentenceIndex:V,label:p.string(),content:p.string(),sentenceIndexes:p.array(V).min(1),retention:p.enum(he).optional(),importance:p.enum(ve).optional(),wordsCount:V,weight:p.number()}).strict(),QR=p.object({type:p.literal("reading-edge"),fromChunkId:p.string().min(1),toChunkId:p.string().min(1),strength:p.string().optional(),weight:p.number()}).strict(),XR=p.object({type:p.literal("fragment-group"),groupId:V,startSentenceIndex:V,endSentenceIndex:V}).strict(),VR=p.object({type:p.literal("snake"),id:p.string().min(1),groupId:V,localSnakeId:V,size:V,firstLabel:p.string(),lastLabel:p.string(),wordsCount:V,weight:p.number()}).strict(),YR=p.object({type:p.literal("snake-chunk"),snakeId:p.string().min(1),chunkId:p.string().min(1),position:V}).strict(),ZR=p.object({type:p.literal("snake-edge"),fromSnakeId:p.string().min(1),toSnakeId:p.string().min(1),weight:p.number()}).strict(),eC=p.object({type:p.literal("summary"),text:p.string()}).strict(),tC=p.object({type:p.literal("mention"),id:p.string().min(1),fragmentId:V.optional(),sentenceIndex:V.optional(),rangeStart:V,rangeEnd:V,surface:p.string().min(1),qid:qR,confidence:Sg,note:p.string().optional()}).strict(),nC=p.object({type:p.literal("mention-link"),id:p.string().min(1),sourceMentionId:p.string().min(1),targetMentionId:p.string().min(1),predicate:p.string().min(1),evidenceSentenceIndexes:p.array(V).min(1),confidence:Sg,note:p.string().optional()}).strict(),rC=p.object({type:p.literal("end")}).strict(),w9=p.discriminatedUnion("type",[$R,JR,KR,zR,QR,XR,VR,YR,ZR,eC,tC,nC,rC])});var wg=i(()=>{"use strict"});var kg=i(()=>{"use strict"});import{sha256 as v9}from"@noble/hashes/sha2.js";var R9,C9,Oc=i(()=>{"use strict";R9=new RegExp("\\p{Script=Han}+","gu"),C9=new RegExp("^\\p{Script=Han}+$","u")});var Nc=i(()=>{"use strict";Oc()});import{z as l}from"zod";function xg(){return l.object({content:l.string(),generation:l.number().int(),id:l.string(),importance:l.enum(["critical","helpful","important"]).optional(),label:l.string(),retention:l.enum(["detailed","focused","relevant","verbatim"]).optional(),sentenceIndex:P,sentenceIndexes:l.array(P),type:l.literal("reading-chunk"),weight:l.number(),wordsCount:P})}function Ig(){return l.object({fromChunkId:l.string(),strength:l.string().optional(),toChunkId:l.string(),type:l.literal("reading-edge"),weight:l.number()})}function Eg(){return l.object({endSentenceIndex:P,groupId:P,startSentenceIndex:P,type:l.literal("fragment-group")})}function vg(){return l.object({firstLabel:l.string(),groupId:P,id:l.string(),lastLabel:l.string(),localSnakeId:P,size:P,type:l.literal("snake"),weight:l.number(),wordsCount:P})}function Rg(){return l.object({chunkId:l.string(),position:P,snakeId:l.string(),type:l.literal("snake-chunk")})}function Cg(){return l.object({fromSnakeId:l.string(),toSnakeId:l.string(),type:l.literal("snake-edge"),weight:l.number()})}function Tg(){return l.object({confidence:l.number().optional(),fragmentId:P.optional(),id:l.string(),note:l.string().optional(),qid:l.string(),rangeEnd:P,rangeStart:P,sentenceIndex:P.optional(),surface:l.string(),type:l.literal("mention")})}function iC(){return l.object({confidence:l.number().optional(),evidenceSentenceIndexes:l.array(P),id:l.string(),note:l.string().optional(),predicate:l.string(),sourceMentionId:l.string(),targetMentionId:l.string(),type:l.literal("mention-link")})}var P,Wc,O9,N9,$t=i(()=>{"use strict";P=l.number().int().nonnegative(),Wc={sentenceIndex:P,text:l.string(),wordsCount:P},O9=l.discriminatedUnion("type",[l.object({language:l.string().optional(),prompt:l.string().optional(),type:l.literal("job-options")}),l.object({...Wc,fragmentId:P.optional(),type:l.literal("source-text")}),l.object({fragmentId:P,summary:l.string(),type:l.literal("source-fragment")}),l.object({...Wc,fragmentId:P.optional(),type:l.literal("source-sentence")}),l.object({...Wc,type:l.literal("summary-sentence")}),l.object({chapterId:l.number().int(),title:l.string(),type:l.literal("chapter-title")}),xg(),Ig(),Eg(),vg(),Rg(),Cg(),Tg()]),N9=l.discriminatedUnion("type",[l.object({language:l.string().optional(),prompt:l.string(),scope:l.enum(["knowledge-graph","reading-graph"]),type:l.literal("job-parameter")}),xg(),Ig(),Eg(),vg(),Rg(),Cg(),Tg(),iC(),l.object({position:P,text:l.string(),type:l.literal("summary-part")}),l.object({metadata:l.record(l.string(),l.unknown()),objectId:l.string(),objectKind:l.string(),rowId:l.string(),sentenceIndex:P.optional(),text:l.string(),tokens:l.array(l.string()),type:l.literal("lexical-row")}),l.object({dimensions:P,identity:l.string().optional(),model:l.string(),source:l.enum(["source","summary"]),type:l.literal("embedding-metadata"),version:l.literal(1)}),l.object({endSentenceIndex:P,segmentIndex:P,startSentenceIndex:P,text:l.string(),type:l.literal("embedding-segment"),vector:l.array(l.number()),wordsCount:P})])});var Dc=i(()=>{"use strict";$t()});var Mc=i(()=>{"use strict"});var Jt,Fc=i(()=>{"use strict";Jt=["Classify the raw assistant reply into exactly one label.","Labels:","- malformed_json: the reply is trying to provide JSON, but it is broken or truncated","- natural_language: the reply is plain conversational language, apology, refusal, or explanation instead of JSON","- ambiguous: unclear or mixed","Reply with the label only."].join(`
773
- `)});import{jsonrepair as U9}from"jsonrepair";var _g=i(()=>{"use strict"});var Pg=i(()=>{"use strict";Fc();Mc();_g()});var le=i(()=>{"use strict";Mc();Fc();Pg()});var Og=i(()=>{"use strict"});var Xr=i(()=>{"use strict"});import{z as Xe}from"zod";var dC,cC,p7,jc=i(()=>{"use strict";le();Xr();dC=Xe.object({candidateId:Xe.string().min(1),decision:Xe.enum(["continue","recall","skip_this_time","never_recall"]),qid:Xe.string().nullable().optional()}).strict(),cC=Xe.object({decisions:Xe.array(dC),groupId:Xe.string().min(1)}).strict(),p7=Xe.object({groups:Xe.array(cC)}).strict()});import{z as Vr}from"zod";var lC,k7,Wg=i(()=>{"use strict";le();Xr();jc();lC=Vr.object({decision:Vr.enum(["keep","reject"]),qid:Vr.string().regex(/^Q[1-9][0-9]*$/)}).strict(),k7=Vr.object({qids:Vr.array(lC)}).strict()});var Uc=i(()=>{"use strict"});import{z as Yr}from"zod";var mC,R7,Dg=i(()=>{"use strict";le();mC=Yr.object({note:Yr.string().max(24).optional(),surfaceId:Yr.string().min(1)}).strict(),R7=Yr.object({protectedSurfaces:Yr.array(mC)}).strict()});var Mg=i(()=>{"use strict";Uc()});var Fg=i(()=>{"use strict"});var Bc=i(()=>{"use strict"});var Gg=i(()=>{"use strict";Bc();Xr()});var Zr=i(()=>{"use strict";Og();Wg();Xr();jc();Uc();Dg();Mg();Fg();Gg();Bc()});var Ha=i(()=>{"use strict"});var jg=i(()=>{"use strict";Zr();Ha()});var Ug=i(()=>{"use strict";Zr()});var qc=i(()=>{"use strict"});var Bg=i(()=>{"use strict";Zr();Ha();Ug();qc()});function $a(t){let e=t.trim();return e===""?[]:Array.from(fC.segment(e)).map(n=>n.segment.trim()).filter(n=>n!=="")}function xe(t){let e=t.replace(/\s+/gu," ").trim(),n=yC(e),r="";for(let a of n)if(!gC(a)){if(!ei(a)){r+=a;continue}r+=a.toLowerCase().normalize("NFD").replace(new RegExp("\\p{M}","gu"),"")}return r}function yC(t){let e=[],n=0;for(;n<t.length;){let r=t[n];if(r===void 0)break;if(r!==" "){e.push(r),n+=1;continue}if(e.length>=2&&hC.has(e[e.length-1]??"")&&ei(e[e.length-2]??"")&&n<t.length-1&&ei(t[n+1]??"")){e.pop(),n+=1;continue}let a=e[e.length-1]??"",o=t[n+1]??"";a!==""&&o!==""&&ei(a)&&ei(o)&&e.push(r),n+=1}return e}function ei(t){return t!==""&&new RegExp("\\p{Script=Latin}","u").test(t)&&new RegExp("\\p{L}","u").test(t)}function gC(t){return/[\p{P}\p{S}]/u.test(t)}var hC,fC,ti=i(()=>{"use strict";hC=new Set(["\u2010","\u2011","\u2012","\u2013","\u2014","\u2015"]),fC=new Intl.Segmenter(void 0,{granularity:"sentence"})});function $c(){return{exactNormalized:!1,exactRaw:!1,exactSubstring:!1,matchEnd:-1,matchStart:-1,score:0}}function Hg(t,e){let n=Ja(t,2),r=Ja(e,2),a=Ja(t,3),o=Ja(e,3);return(qg(n,r)+qg(a,o))/2}function Ja(t,e){if(t.length<=e)return t===""?new Set:new Set([t]);let n=new Set;for(let r=0;r<=t.length-e;r+=1)n.add(t.slice(r,r+e));return n}function qg(t,e){if(t.size===0||e.size===0)return 0;let n=0;for(let r of t)e.has(r)&&(n+=1);return 2*n/(t.size+e.size)}function $g(t,e){if(t===e)return 1;if(t===""||e==="")return 0;let n=Array.from({length:e.length+1},(o,s)=>s),r=new Array(e.length+1).fill(0);for(let[o,s]of[...t].entries()){r[0]=o+1;for(let[d,c]of[...e].entries()){let u=(r[d]??0)+1,m=(n[d+1]??0)+1,b=(n[d]??0)+(s===c?0:1);r[d+1]=Math.min(u,m,b)}[n,r]=[r,n]}return 1-(n[e.length]??Math.max(t.length,e.length))/Math.max(t.length,e.length)}function Jg(t,e){return 1-Math.abs(t.length-e.length)/Math.max(t.length,e.length)}function Kg(t,e){if(t===e)return 1;let n=t.length,r=e.length;if(n===0||r===0)return 0;let a=Array.from({length:n+1},()=>new Array(r+1).fill(0)),o=0;for(let s=1;s<=n;s+=1)for(let d=1;d<=r;d+=1){if(t[s-1]!==e[d-1])continue;let c=a[s];c!==void 0&&(c[d]=(a[s-1]?.[d-1]??0)+1,o=Math.max(o,c[d]??0))}return 2*o/(n+r)}function zg(t){return` - ${t.occurrenceId} score=${t.score.toFixed(3)}
774
- prev: ${Hc(t.prevText)}
775
- text: ${Hc(t.text,120)}
776
- next: ${Hc(t.nextText)}`}function Hc(t,e=80){let n=t.replace(/\s+/gu," ").trim();return n===""?"(none)":n.length<=e?n:`${n.slice(0,e-3)}...`}var Jc=i(()=>{"use strict"});var Kc=i(()=>{"use strict"});function Xg(t,e,n){return t.mode==="head_tail"?wC(t,e):zc(t.text??"",e,n)}function wC(t,e){let n=t.head??"",r=t.tail??"",a=xe(e),o=xe(n),s=xe(r);if(o===""||s==="")return $c();let d=a.indexOf(o),c=a.lastIndexOf(s);if(d!==-1&&c!==-1&&d<=c){let v=o.length+s.length,f=Math.min(1,v/Math.max(1,a.length));return{exactNormalized:!1,exactRaw:!1,exactSubstring:!0,matchEnd:c+s.length,matchStart:d,score:.82+.18*f}}let u=zc(n,e,"start_anchor"),m=zc(r,e,"end_anchor"),b=u.matchStart<=m.matchStart?1:.85;return{exactNormalized:!1,exactRaw:!1,exactSubstring:!1,matchEnd:Math.max(u.matchEnd,m.matchEnd),matchStart:Math.min(u.matchStart,m.matchStart),score:(u.score+m.score)/2*b}}function zc(t,e,n){let r=t.trim(),a=e.trim(),o=xe(r),s=xe(a);if(o===""||s==="")return $c();if(r===a)return{exactNormalized:!0,exactRaw:!0,exactSubstring:!0,matchEnd:s.length,matchStart:0,score:1};if(o===s)return{exactNormalized:!0,exactRaw:!1,exactSubstring:!1,matchEnd:s.length,matchStart:0,score:.995};if(s.includes(o)){let f=s.indexOf(o),k=o.length/Math.max(1,s.length),g=Qg({candidateNormalized:s,label:n,matchEnd:f+o.length,matchStart:f,queryNormalized:o});return{exactNormalized:!1,exactRaw:!1,exactSubstring:!0,matchEnd:f+o.length,matchStart:f,score:Math.min(1,.75+.25*k+g)}}if(o.includes(s)){let f=s.length/Math.max(1,o.length);return{exactNormalized:!1,exactRaw:!1,exactSubstring:!1,matchEnd:s.length,matchStart:0,score:Math.min(.92,.78+.14*f)}}let d=0,c=-1,u=-1,m=Math.min(s.length,Math.max(o.length,Math.floor(o.length*1.2))),b=Math.min(m,Math.max(1,Math.floor(o.length*.8))),v=new Set(o);for(let f=b;f<=m;f+=1)for(let k=0;k<=s.length-f;k+=1){let g=s.slice(k,k+f),C=new Set(g),L=new Set([...v,...C]).size,K=[...v].filter(ie=>C.has(ie)).length;if((L===0?0:K/L)<.35)continue;let j=.35*Hg(o,g)+.35*Kg(o,g)+.2*$g(o,g)+.1*Jg(o,g)+Qg({candidateNormalized:s,label:n,matchEnd:k+f,matchStart:k,queryNormalized:o});j>d&&(d=Math.min(1,j),c=k,u=k+f)}return{exactNormalized:!1,exactRaw:!1,exactSubstring:!1,matchEnd:u,matchStart:c,score:d}}function Qg(t){if(t.matchStart<0||t.matchEnd<0||t.queryNormalized.length<12||t.label==="start_anchor"&&t.matchStart!==0||t.label==="end_anchor"&&t.matchEnd!==t.candidateNormalized.length)return 0;let e=t.queryNormalized.length/Math.max(1,t.candidateNormalized.length);return .08*(.5+.5*Math.min(1,e))}var Vg=i(()=>{"use strict";ti();Jc();Kc()});function Yg(t){if(t==null)return[void 0,"anchor is required"];if(typeof t=="string"){let o=t.trim();if(o==="")return[void 0,"anchor string is empty"];if(o.includes("...")){let s=o.split("...").map(d=>d.trim()).filter(d=>d!=="");if(s.length>=2){let d=s[0],c=s[s.length-1];return d===void 0||c===void 0?[void 0,"anchor string is empty"]:[{head:d,mode:"head_tail",tail:c},void 0]}}return[{mode:"full",text:o},void 0]}if(typeof t!="object")return[void 0,`expected string or object, got ${typeof t}`];let e=t;if((e.mode==="head_tail"||e.head!==void 0?"head_tail":"full")==="full"){let o=typeof e.text=="string"?e.text.trim():"";return o===""?[void 0,"full anchor requires non-empty 'text'"]:[{mode:"full",text:o},void 0]}let r=typeof e.head=="string"?e.head.trim():"",a=typeof e.tail=="string"?e.tail.trim():"";return r!==""&&a===""?[{mode:"full",text:r},void 0]:r===""&&a!==""?[{mode:"full",text:a},void 0]:r===""||a===""?[void 0,"head_tail anchor requires non-empty 'head' and 'tail'"]:[{head:r,mode:"head_tail",tail:a},void 0]}function Zg(t,e){if(t===void 0)return;if(t.mode==="head_tail"){let r=e==="end_anchor"?Qc(t.tail??"","end_anchor"):Qc(t.head??"","start_anchor");return r===""?void 0:{mode:"full",text:r}}return{mode:"full",text:Qc(t.text??"",e)}}function Xc(t){return t.mode==="head_tail"?xe(t.head??"").length+xe(t.tail??"").length:xe(t.text??"").length}function Qc(t,e){let n=$a(t);return n.length<=1?t.trim():e==="end_anchor"?n[n.length-1]??t.trim():n[0]??t.trim()}var eb=i(()=>{"use strict";ti()});var An,ib=i(()=>{"use strict";Vg();eb();Jc();Kc();An=class{resolve(e,n,r){let a=e.start_anchor??e.start,o=e.end_anchor??e.end,[s,d]=this.parseAnchor(a,"start_anchor");if(d!==void 0)return[void 0,d];let c;if(o!==void 0){let[g,C]=this.parseAnchor(o,"end_anchor");if(C!==void 0)return[void 0,C];c=g}let[u,m,b]=this.resolveAnchor({anchor:s,candidateSentenceIds:n,candidateTexts:r,label:"start_anchor"});if(b!==void 0)return[void 0,b];if(u===void 0)return[void 0,{candidates:[],code:"none",fieldName:"start_anchor",message:"start_anchor could not be matched: no candidate selected"}];if(c===void 0)return[{confidence:u.score,sentenceIds:[u.sentenceId],strategy:m},void 0];let[v,f,k]=this.resolveAnchor({anchor:c,candidateSentenceIds:n,candidateTexts:r,label:"end_anchor",minIndex:u.index});return k!==void 0?[void 0,k]:v===void 0?[void 0,{candidates:[],code:"none",fieldName:"end_anchor",message:"end_anchor could not be matched: no candidate selected"}]:v.index<u.index?[void 0,{candidates:[],code:"invalid_range",fieldName:"end_anchor",message:`Invalid evidence range: end_anchor resolved before start_anchor (${u.occurrenceId} -> ${v.occurrenceId}).`}]:[{confidence:Math.min(u.score,v.score),sentenceIds:n.slice(u.index,v.index+1),strategy:`${m}+${f}`},void 0]}resolveWithOverrides(e){let n=e.evidence.start_anchor??e.evidence.start,r=e.evidence.end_anchor??e.evidence.end,[a,o]=this.parseAnchor(n,"start_anchor");if(o!==void 0)return[void 0,o];let s=e.overrides.start_anchor,[d,c,u]=s===void 0?this.resolveAnchor({anchor:a,candidateSentenceIds:e.candidateSentenceIds,candidateTexts:e.candidateTexts,label:"start_anchor"}):[s,"choice_final",void 0];if(u!==void 0)return[void 0,u];if(d===void 0)return[void 0,{candidates:[],code:"none",fieldName:"start_anchor",message:"start_anchor could not be matched: no candidate selected"}];if(r===void 0)return[{confidence:d.score,sentenceIds:[d.sentenceId],strategy:c},void 0];let[m,b]=this.parseAnchor(r,"end_anchor");if(b!==void 0)return[void 0,b];let v=e.overrides.end_anchor,[f,k,g]=v===void 0?this.resolveAnchor({anchor:m,candidateSentenceIds:e.candidateSentenceIds,candidateTexts:e.candidateTexts,label:"end_anchor",minIndex:d.index}):[v,"choice_final",void 0];return g!==void 0?[void 0,g]:f===void 0?[void 0,{candidates:[],code:"none",fieldName:"end_anchor",message:"end_anchor could not be matched: no candidate selected"}]:f.index<d.index?[void 0,{candidates:[],code:"invalid_range",fieldName:"end_anchor",message:`Invalid evidence range: end_anchor resolved before start_anchor (${d.occurrenceId} -> ${f.occurrenceId}).`}]:[{confidence:Math.min(d.score,f.score),sentenceIds:e.candidateSentenceIds.slice(d.index,f.index+1),strategy:`${c}+${k}`},void 0]}parseAnchor(e,n){let[r,a]=Yg(e);return a!==void 0?[void 0,{candidates:[],code:"invalid_anchor",fieldName:n,message:`Invalid evidence.${n}: ${a}`}]:[Zg(r,n),void 0]}resolveAnchor(e){if(e.anchor===void 0)return[void 0,"invalid",{candidates:[],code:"invalid",fieldName:e.label,message:`${e.label} is missing`}];let n=this.rankAnchor(e.anchor,e.candidateSentenceIds,e.candidateTexts,e.label),r=e.minIndex;if(r!==void 0&&(n=n.filter(m=>m.index>=r)),n.length===0)return[void 0,"none",{candidates:[],code:"none",fieldName:e.label,message:`${e.label} could not be matched: no candidates available`}];let a=n.filter(m=>m.exactRaw);if(a.length===1)return[a[0],"exact_raw",void 0];if(a.length>1)return[void 0,"ambiguous_exact_raw",this.#t(e.label,"ambiguous_exact_raw",a)];let o=n.filter(m=>m.exactSubstring);if(o.length===1&&Xc(e.anchor)>=8)return[o[0],"exact_substring",void 0];if(o.length>1&&Xc(e.anchor)>=8){let m=this.#e(o);return m!==void 0?[m,"exact_substring_scored",void 0]:[void 0,"ambiguous_exact_substring",this.#t(e.label,"ambiguous_exact_substring",o)]}let s=n.filter(m=>m.exactNormalized);if(s.length===1)return[s[0],"exact_normalized",void 0];if(s.length>1){let m=this.#e(s);return m!==void 0?[m,"exact_normalized_scored",void 0]:[void 0,"ambiguous_exact_normalized",this.#t(e.label,"ambiguous_exact_normalized",s)]}let d=n[0];if(d===void 0)return[void 0,"none",{candidates:[],code:"none",fieldName:e.label,message:`${e.label} could not be matched: no candidates available`}];let c=n[1]?.score??0,u=d.score-c;return d.score<.55?[void 0,"low_confidence",{candidates:n.slice(0,3),code:"low_confidence",fieldName:e.label,message:`${e.label} could not be matched confidently. Best candidate score=${d.score.toFixed(3)}.`}]:n.length===1?[d,"auto_top1_single_candidate",void 0]:d.score>=.97?[d,"auto_top1_very_high",void 0]:d.score>=.9&&u>=.07?[d,"auto_top1",void 0]:[void 0,"ambiguous_ranked",this.#t(e.label,"ambiguous_ranked",n)]}rankAnchor(e,n,r,a){let o=[];for(let[s,d]of n.entries()){let c=r[s]??"",u=s>0?r[s-1]??"":"",m=s<r.length-1?r[s+1]??"":"",b=Xg(e,c,a);o.push({exactNormalized:b.exactNormalized,exactRaw:b.exactRaw,exactSubstring:b.exactSubstring,index:s,nextText:m,occurrenceId:`S${s+1}`,prevText:u,score:b.score,sentenceId:d,text:c})}return o.sort((s,d)=>s.score!==d.score?d.score-s.score:s.exactRaw!==d.exactRaw?s.exactRaw?-1:1:s.exactSubstring!==d.exactSubstring?s.exactSubstring?-1:1:s.exactNormalized!==d.exactNormalized?s.exactNormalized?-1:1:s.index-d.index),o}#e(e){if(e.length===0)return;if(e.length===1)return e[0];let n=e[0];if(n===void 0)return;let r=e[1]?.score??0;if(n.score>=.9&&n.score-r>=.07)return n}#t(e,n,r){let a=r.slice(0,3),o=a.map(s=>zg(s)).join(`
772
+ DO UPDATE SET record_json=excluded.record_json`,[a.qid,a.wiki,a.pageId,a.revisionId,n.normalizerVersion,n.modelId,JSON.stringify(a)])})}async close(){await this.#e.close()}async gc(e){let n=new Date(e.now-$v).toISOString(),r=await this.#e.queryOne("SELECT COUNT(*) AS count FROM wikimedia_qid_cache_v2",void 0,o=>Number(o.count))??0,a=await this.#e.queryOne("SELECT COUNT(*) AS count FROM wikimedia_qid_cache_v2 WHERE refreshed_at < ?",[n],o=>Number(o.count))??0;return!e.dryRun&&a>0&&(await this.#e.transaction(async()=>{let o=await this.#e.queryAll("SELECT qid FROM wikimedia_qid_cache_v2 WHERE refreshed_at < ?",[n],s=>String(s.qid));for(let s of o)await this.#e.run("DELETE FROM wikimedia_disambiguation_cache_v2 WHERE qid = ?",[s]);await this.#e.run("DELETE FROM wikimedia_qid_cache_v2 WHERE refreshed_at < ?",[n])}),await this.#e.run("VACUUM")),{freedBytes:0,removed:a,scanned:r}}}});var yc=i(()=>{"use strict";py()});var gc=i(()=>{"use strict"});var bc=i(()=>{"use strict"});import{jsonrepair as c2}from"jsonrepair";var hy=i(()=>{"use strict"});var fy=i(()=>{"use strict";bc();gc();hy()});var Ne=i(()=>{"use strict";gc();bc();fy()});var Br=i(()=>{"use strict"});import{z as ze}from"zod";var Yv,Zv,N2,kc=i(()=>{"use strict";Ne();Br();Yv=ze.object({candidateId:ze.string().min(1),decision:ze.enum(["continue","recall","skip_this_time","never_recall"]),qid:ze.string().nullable().optional()}).strict(),Zv=ze.object({decisions:ze.array(Yv),groupId:ze.string().min(1)}).strict(),N2=ze.object({groups:ze.array(Zv)}).strict()});import{z as Hr}from"zod";var nR,j2,by=i(()=>{"use strict";Ne();Br();kc();nR=Hr.object({decision:Hr.enum(["keep","reject"]),qid:Hr.string().regex(/^Q[1-9][0-9]*$/)}).strict(),j2=Hr.object({qids:Hr.array(nR)}).strict()});var Sy=i(()=>{"use strict"});import{z as $r}from"zod";var rR,$2,wy=i(()=>{"use strict";Ne();rR=$r.object({note:$r.string().max(24).optional(),surfaceId:$r.string().min(1)}).strict(),$2=$r.object({protectedSurfaces:$r.array(rR)}).strict()});var xc=i(()=>{"use strict"});var ky=i(()=>{"use strict";xc()});var xy=i(()=>{"use strict"});var Ic=i(()=>{"use strict"});var Iy=i(()=>{"use strict";Ic();Br()});var ft=i(()=>{"use strict";kc();by();Br();Sy();wy();ky();xc();xy();Iy();Ic()});var x3,vc=i(()=>{"use strict";nn();x3=Object.freeze({"serial-generation/editor-compress":Object.freeze({temperature:.7,topP:.9}),"serial-generation/editor-review":Object.freeze({temperature:[.3,.95],topP:[.4,.8]}),"serial-generation/editor-review-guide":Object.freeze({temperature:.4,topP:.6}),"serial-generation/reader-choice":Object.freeze({temperature:[.3,.95],topP:[.4,.8]}),"serial-generation/reader-extraction":Object.freeze({temperature:[.3,.95],topP:[.4,.8]})})});var Rc=i(()=>{"use strict";et()});var Ty=i(()=>{"use strict";Rc()});var _y=i(()=>{"use strict";Ty();Rc()});var Py=i(()=>{"use strict"});var Ay=i(()=>{"use strict"});var Ly=i(()=>{"use strict";Py();Ay()});var Jr=i(()=>{"use strict";Ne()});var Oy=i(()=>{"use strict";P();Jr()});var Ny=i(()=>{"use strict";Jr()});var Wy=i(()=>{"use strict"});import{z as x}from"zod";var Dy,gR,My,bR,SR,wR,kR,xR,IR,Da=i(()=>{"use strict";P();Dy=x.object({from:x.union([x.number().int(),x.string()]),strength:x.string().optional(),to:x.union([x.number().int(),x.string()])}),gR=x.object({quote:x.string().optional(),sentence_id:x.string().optional()}).passthrough(),My=x.union([x.record(x.string(),x.unknown()),x.array(gR)]),bR=x.object({content:x.string(),evidence:My.nullish(),label:x.string(),retention:x.enum(["verbatim","detailed","focused","relevant"]),temp_id:x.string()}).passthrough(),SR=x.object({chunks:x.array(bR),fragment_summary:x.string(),links:x.array(Dy)}),wR=x.object({content:x.string(),evidence:My.nullish(),importance:x.enum(["critical","important","helpful"]),label:x.string(),temp_id:x.string()}).passthrough(),kR=x.object({chunk_id:x.number().int(),importance:x.enum(["critical","important","helpful"])}),xR=x.object({chunks:x.array(wR),importance_annotations:x.array(kR),links:x.array(Dy)}),IR=x.object({choice:x.string()})});var Fy=i(()=>{"use strict";Ne();En();Wy();Jr();Da()});var Gy=i(()=>{"use strict";Ne();P();Oy();Jr();Ny();Fy();Da()});var jy=i(()=>{"use strict";Gy();Da()});var Ma=i(()=>{"use strict"});import{detect as L8,validateISO2 as O8}from"tinyld";var Cc=i(()=>{"use strict";Me()});var Uy=i(()=>{"use strict";Cc();Me()});var qy=i(()=>{"use strict"});import{z as Kr}from"zod";var TR,t5,Hy=i(()=>{"use strict";Ne();En();jy();Ma();Ma();Uy();qy();TR=Kr.object({content:Kr.string(),id:Kr.number(),label:Kr.string()}),t5=Kr.array(TR)});var Tc=i(()=>{"use strict";Hy()});var $y=i(()=>{"use strict";nt()});var _c=i(()=>{"use strict";$y()});var Jy=i(()=>{"use strict";Ly();Tc();_c()});var Fa=i(()=>{"use strict";Jy();_c()});var Ga=i(()=>{"use strict"});var ja=i(()=>{"use strict";Fa();Ga()});var Ky=i(()=>{"use strict";ja()});var zy=i(()=>{"use strict"});var Ua=i(()=>{"use strict"});var Qy=i(()=>{"use strict";Ua()});var Rn,A5,NR,qa=i(()=>{"use strict";Mo();Rn=(r=>(r.Critical="critical",r.Major="major",r.Minor="minor",r))(Rn||{}),A5=an(Rn),NR=Qn(Rn,"review severity")});var D5,Ac=i(()=>{"use strict";Ua();qa();D5=Object.freeze({critical:9,major:3,minor:1})});var Xy=i(()=>{"use strict";Cc();Me();qa()});var Vy=i(()=>{"use strict";y();et();Ac()});var Lc=i(()=>{"use strict";P()});var Yy=i(()=>{"use strict"});import{z as Cn}from"zod";var WR,DR,o4,Zy=i(()=>{"use strict";et();Ne();Ua();Lc();qa();WR=["critical","major","minor"],DR=Cn.object({problem:Cn.string(),severity:Cn.enum(WR),suggestion:Cn.string().default("")}),o4=Cn.object({issues:Cn.array(DR)})});var eg=i(()=>{"use strict";zy();Qy();Ac();Xy();Vy();Lc();Yy();Zy()});var Oc=i(()=>{"use strict";eg()});var ng=i(()=>{"use strict"});var rg=i(()=>{"use strict"});var ig=i(()=>{"use strict";ng();rg()});var zr=i(()=>{"use strict"});var j4,U4,Tn=i(()=>{"use strict";P();j4={critical:9,helpful:1,important:3},U4={detailed:9,focused:3,relevant:1,verbatim:27}});var _n=i(()=>{"use strict"});var Qr=i(()=>{"use strict"});var Nc=i(()=>{"use strict";_n()});var Wc=i(()=>{"use strict";Tn();_n();zr();Qr();Nc()});var Dc=i(()=>{"use strict";zr();Wc();Qr()});var og=i(()=>{"use strict";Tn();_n();Qr()});var sg=i(()=>{"use strict";Tn();_n();zr();Qr();Nc()});var dg=i(()=>{"use strict";Dc();_n();zr();og();Wc();sg()});var cg=i(()=>{"use strict";dg();Dc()});var ug=i(()=>{"use strict";Tn()});var lg=i(()=>{"use strict";cg();ug()});var mg=i(()=>{"use strict";ig();lg();Tn()});var pg=i(()=>{"use strict";mg()});var Mc=i(()=>{"use strict";Z()});var hg=i(()=>{"use strict"});var Fc=i(()=>{"use strict";ja()});var Ha=i(()=>{"use strict"});var fg=i(()=>{"use strict";Hn();nn();Oc();Fa();pg();ja();Ga();Mc();hg();Fc();Ha()});var yg=i(()=>{"use strict";Mc();Ha();Z()});var gg=i(()=>{"use strict";Ky();fg();Ga();yg();Fc();Ha()});var Pn=i(()=>{"use strict";gg()});var bg=i(()=>{"use strict";ye();Hn();Pn();at()});var Sg=i(()=>{"use strict";at();at();P();ye();_y();Pn();bg();ka();y()});var Uc,yt=i(()=>{"use strict";Uc=["Recall only source mentions that should become stable searchable knowledge graph objects.","Prefer named entities: historical persons, places, organizations, dynasties, political entities, named works, named events, battles, titles, and explicitly named domain concepts.","Recall a non-named common concept only when it is a central recurring topic of the chapter and would be useful as an entity search result across multiple evidence passages.","Do not recall a surface merely because it is useful for summarizing the story or explaining a detail.","Do not recall pure numbers, standalone dates without a named event role, units of measurement, dimensions, ordinal labels, chapter numbers, punctuation fragments, common function words, generic verbs, generic adjectives, generic roles, generic objects, or incidental attributes.","Measurements, quantities, dimensions, tactical details, and descriptive attributes should remain evidence text, not entity mentions.","When uncertain, skip the mention rather than creating a noisy knowledge graph object."].join(" ")});var qc=i(()=>{"use strict";yt()});var xg=i(()=>{"use strict";et();Ao();Sg();vc();Le();qc();y()});var $a=i(()=>{"use strict"});import{z as p}from"zod";var Ig,V,zR,QR,Eg,XR,VR,YR,ZR,eC,tC,nC,rC,iC,aC,oC,sC,dC,cC,T9,An=i(()=>{"use strict";y();Re();$a();Ig=1,V=p.number().int().nonnegative(),zR=p.literal(Ig),QR=p.string().regex(/^Q[1-9][0-9]*$/u),Eg=p.number().min(0).max(1).optional(),XR=p.object({text:p.string(),wordsCount:V}).strict(),VR=p.object({type:p.literal("meta"),schemaVersion:zR,chapterId:p.number().int(),stream:p.enum(["knowledge-graph","reading-graph","summary"])}).strict(),YR=p.object({type:p.literal("parameter"),scope:p.enum(["knowledge-graph","reading-graph","summary"]),language:p.string().optional(),prompt:p.string()}).strict(),ZR=p.object({type:p.literal("source-fragment"),fragmentId:V,summary:p.string(),sentences:p.array(XR)}).strict(),eC=p.object({type:p.literal("reading-chunk"),id:p.string().min(1),generation:p.number().int(),sentenceIndex:V,label:p.string(),content:p.string(),sentenceIndexes:p.array(V).min(1),retention:p.enum(he).optional(),importance:p.enum(ve).optional(),wordsCount:V,weight:p.number()}).strict(),tC=p.object({type:p.literal("reading-edge"),fromChunkId:p.string().min(1),toChunkId:p.string().min(1),strength:p.string().optional(),weight:p.number()}).strict(),nC=p.object({type:p.literal("fragment-group"),groupId:V,startSentenceIndex:V,endSentenceIndex:V}).strict(),rC=p.object({type:p.literal("snake"),id:p.string().min(1),groupId:V,localSnakeId:V,size:V,firstLabel:p.string(),lastLabel:p.string(),wordsCount:V,weight:p.number()}).strict(),iC=p.object({type:p.literal("snake-chunk"),snakeId:p.string().min(1),chunkId:p.string().min(1),position:V}).strict(),aC=p.object({type:p.literal("snake-edge"),fromSnakeId:p.string().min(1),toSnakeId:p.string().min(1),weight:p.number()}).strict(),oC=p.object({type:p.literal("summary"),text:p.string()}).strict(),sC=p.object({type:p.literal("mention"),id:p.string().min(1),fragmentId:V.optional(),sentenceIndex:V.optional(),rangeStart:V,rangeEnd:V,surface:p.string().min(1),qid:QR,confidence:Eg,note:p.string().optional()}).strict(),dC=p.object({type:p.literal("mention-link"),id:p.string().min(1),sourceMentionId:p.string().min(1),targetMentionId:p.string().min(1),predicate:p.string().min(1),evidenceSentenceIndexes:p.array(V).min(1),confidence:Eg,note:p.string().optional()}).strict(),cC=p.object({type:p.literal("end")}).strict(),T9=p.discriminatedUnion("type",[VR,YR,ZR,eC,tC,nC,rC,iC,aC,oC,sC,dC,cC])});var vg=i(()=>{"use strict"});var Rg=i(()=>{"use strict"});import{sha256 as O9}from"@noble/hashes/sha2.js";var N9,W9,Bc=i(()=>{"use strict";N9=new RegExp("\\p{Script=Han}+","gu"),W9=new RegExp("^\\p{Script=Han}+$","u")});var Hc=i(()=>{"use strict";Bc()});import{z as l}from"zod";function Cg(){return l.object({content:l.string(),generation:l.number().int(),id:l.string(),importance:l.enum(["critical","helpful","important"]).optional(),label:l.string(),retention:l.enum(["detailed","focused","relevant","verbatim"]).optional(),sentenceIndex:A,sentenceIndexes:l.array(A),type:l.literal("reading-chunk"),weight:l.number(),wordsCount:A})}function Tg(){return l.object({fromChunkId:l.string(),strength:l.string().optional(),toChunkId:l.string(),type:l.literal("reading-edge"),weight:l.number()})}function _g(){return l.object({endSentenceIndex:A,groupId:A,startSentenceIndex:A,type:l.literal("fragment-group")})}function Pg(){return l.object({firstLabel:l.string(),groupId:A,id:l.string(),lastLabel:l.string(),localSnakeId:A,size:A,type:l.literal("snake"),weight:l.number(),wordsCount:A})}function Ag(){return l.object({chunkId:l.string(),position:A,snakeId:l.string(),type:l.literal("snake-chunk")})}function Lg(){return l.object({fromSnakeId:l.string(),toSnakeId:l.string(),type:l.literal("snake-edge"),weight:l.number()})}function Og(){return l.object({confidence:l.number().optional(),fragmentId:A.optional(),id:l.string(),note:l.string().optional(),qid:l.string(),rangeEnd:A,rangeStart:A,sentenceIndex:A.optional(),surface:l.string(),type:l.literal("mention")})}function uC(){return l.object({confidence:l.number().optional(),evidenceSentenceIndexes:l.array(A),id:l.string(),note:l.string().optional(),predicate:l.string(),sourceMentionId:l.string(),targetMentionId:l.string(),type:l.literal("mention-link")})}var A,$c,U9,q9,$t=i(()=>{"use strict";A=l.number().int().nonnegative(),$c={sentenceIndex:A,text:l.string(),wordsCount:A},U9=l.discriminatedUnion("type",[l.object({language:l.string().optional(),prompt:l.string().optional(),type:l.literal("job-options")}),l.object({...$c,fragmentId:A.optional(),type:l.literal("source-text")}),l.object({fragmentId:A,summary:l.string(),type:l.literal("source-fragment")}),l.object({...$c,fragmentId:A.optional(),type:l.literal("source-sentence")}),l.object({...$c,type:l.literal("summary-sentence")}),l.object({chapterId:l.number().int(),title:l.string(),type:l.literal("chapter-title")}),Cg(),Tg(),_g(),Pg(),Ag(),Lg(),Og()]),q9=l.discriminatedUnion("type",[l.object({language:l.string().optional(),prompt:l.string(),scope:l.enum(["knowledge-graph","reading-graph"]),type:l.literal("job-parameter")}),Cg(),Tg(),_g(),Pg(),Ag(),Lg(),Og(),uC(),l.object({position:A,text:l.string(),type:l.literal("summary-part")}),l.object({metadata:l.record(l.string(),l.unknown()),objectId:l.string(),objectKind:l.string(),rowId:l.string(),sentenceIndex:A.optional(),text:l.string(),tokens:l.array(l.string()),type:l.literal("lexical-row")}),l.object({dimensions:A,identity:l.string().optional(),model:l.string(),source:l.enum(["source","summary"]),type:l.literal("embedding-metadata"),version:l.literal(1)}),l.object({endSentenceIndex:A,segmentIndex:A,startSentenceIndex:A,text:l.string(),type:l.literal("embedding-segment"),vector:l.array(l.number()),wordsCount:A})])});var Jc=i(()=>{"use strict";$t()});var Kc=i(()=>{"use strict"});var Jt,zc=i(()=>{"use strict";Jt=["Classify the raw assistant reply into exactly one label.","Labels:","- malformed_json: the reply is trying to provide JSON, but it is broken or truncated","- natural_language: the reply is plain conversational language, apology, refusal, or explanation instead of JSON","- ambiguous: unclear or mixed","Reply with the label only."].join(`
773
+ `)});import{jsonrepair as Q9}from"jsonrepair";var Ng=i(()=>{"use strict"});var Wg=i(()=>{"use strict";zc();Kc();Ng()});var le=i(()=>{"use strict";Kc();zc();Wg()});var Fg=i(()=>{"use strict"});var Xr=i(()=>{"use strict"});import{z as Xe}from"zod";var hC,fC,k7,Xc=i(()=>{"use strict";le();Xr();hC=Xe.object({candidateId:Xe.string().min(1),decision:Xe.enum(["continue","recall","skip_this_time","never_recall"]),qid:Xe.string().nullable().optional()}).strict(),fC=Xe.object({decisions:Xe.array(hC),groupId:Xe.string().min(1)}).strict(),k7=Xe.object({groups:Xe.array(fC)}).strict()});import{z as Vr}from"zod";var gC,_7,jg=i(()=>{"use strict";le();Xr();Xc();gC=Vr.object({decision:Vr.enum(["keep","reject"]),qid:Vr.string().regex(/^Q[1-9][0-9]*$/)}).strict(),_7=Vr.object({qids:Vr.array(gC)}).strict()});var Vc=i(()=>{"use strict"});import{z as Yr}from"zod";var bC,N7,Ug=i(()=>{"use strict";le();bC=Yr.object({note:Yr.string().max(24).optional(),surfaceId:Yr.string().min(1)}).strict(),N7=Yr.object({protectedSurfaces:Yr.array(bC)}).strict()});var qg=i(()=>{"use strict";Vc()});var Bg=i(()=>{"use strict"});var Yc=i(()=>{"use strict"});var Hg=i(()=>{"use strict";Yc();Xr()});var Zr=i(()=>{"use strict";Fg();jg();Xr();Xc();Vc();Ug();qg();Bg();Hg();Yc()});var Ka=i(()=>{"use strict"});var $g=i(()=>{"use strict";Zr();Ka()});var Jg=i(()=>{"use strict";Zr()});var Zc=i(()=>{"use strict"});var Kg=i(()=>{"use strict";Zr();Ka();Jg();Zc()});function za(t){let e=t.trim();return e===""?[]:Array.from(kC.segment(e)).map(n=>n.segment.trim()).filter(n=>n!=="")}function xe(t){let e=t.replace(/\s+/gu," ").trim(),n=xC(e),r="";for(let a of n)if(!IC(a)){if(!ei(a)){r+=a;continue}r+=a.toLowerCase().normalize("NFD").replace(new RegExp("\\p{M}","gu"),"")}return r}function xC(t){let e=[],n=0;for(;n<t.length;){let r=t[n];if(r===void 0)break;if(r!==" "){e.push(r),n+=1;continue}if(e.length>=2&&wC.has(e[e.length-1]??"")&&ei(e[e.length-2]??"")&&n<t.length-1&&ei(t[n+1]??"")){e.pop(),n+=1;continue}let a=e[e.length-1]??"",o=t[n+1]??"";a!==""&&o!==""&&ei(a)&&ei(o)&&e.push(r),n+=1}return e}function ei(t){return t!==""&&new RegExp("\\p{Script=Latin}","u").test(t)&&new RegExp("\\p{L}","u").test(t)}function IC(t){return/[\p{P}\p{S}]/u.test(t)}var wC,kC,ti=i(()=>{"use strict";wC=new Set(["\u2010","\u2011","\u2012","\u2013","\u2014","\u2015"]),kC=new Intl.Segmenter(void 0,{granularity:"sentence"})});function tu(){return{exactNormalized:!1,exactRaw:!1,exactSubstring:!1,matchEnd:-1,matchStart:-1,score:0}}function Qg(t,e){let n=Qa(t,2),r=Qa(e,2),a=Qa(t,3),o=Qa(e,3);return(zg(n,r)+zg(a,o))/2}function Qa(t,e){if(t.length<=e)return t===""?new Set:new Set([t]);let n=new Set;for(let r=0;r<=t.length-e;r+=1)n.add(t.slice(r,r+e));return n}function zg(t,e){if(t.size===0||e.size===0)return 0;let n=0;for(let r of t)e.has(r)&&(n+=1);return 2*n/(t.size+e.size)}function Xg(t,e){if(t===e)return 1;if(t===""||e==="")return 0;let n=Array.from({length:e.length+1},(o,s)=>s),r=new Array(e.length+1).fill(0);for(let[o,s]of[...t].entries()){r[0]=o+1;for(let[d,c]of[...e].entries()){let u=(r[d]??0)+1,m=(n[d+1]??0)+1,b=(n[d]??0)+(s===c?0:1);r[d+1]=Math.min(u,m,b)}[n,r]=[r,n]}return 1-(n[e.length]??Math.max(t.length,e.length))/Math.max(t.length,e.length)}function Vg(t,e){return 1-Math.abs(t.length-e.length)/Math.max(t.length,e.length)}function Yg(t,e){if(t===e)return 1;let n=t.length,r=e.length;if(n===0||r===0)return 0;let a=Array.from({length:n+1},()=>new Array(r+1).fill(0)),o=0;for(let s=1;s<=n;s+=1)for(let d=1;d<=r;d+=1){if(t[s-1]!==e[d-1])continue;let c=a[s];c!==void 0&&(c[d]=(a[s-1]?.[d-1]??0)+1,o=Math.max(o,c[d]??0))}return 2*o/(n+r)}function Zg(t){return` - ${t.occurrenceId} score=${t.score.toFixed(3)}
774
+ prev: ${eu(t.prevText)}
775
+ text: ${eu(t.text,120)}
776
+ next: ${eu(t.nextText)}`}function eu(t,e=80){let n=t.replace(/\s+/gu," ").trim();return n===""?"(none)":n.length<=e?n:`${n.slice(0,e-3)}...`}var nu=i(()=>{"use strict"});var ru=i(()=>{"use strict"});function tb(t,e,n){return t.mode==="head_tail"?RC(t,e):iu(t.text??"",e,n)}function RC(t,e){let n=t.head??"",r=t.tail??"",a=xe(e),o=xe(n),s=xe(r);if(o===""||s==="")return tu();let d=a.indexOf(o),c=a.lastIndexOf(s);if(d!==-1&&c!==-1&&d<=c){let v=o.length+s.length,f=Math.min(1,v/Math.max(1,a.length));return{exactNormalized:!1,exactRaw:!1,exactSubstring:!0,matchEnd:c+s.length,matchStart:d,score:.82+.18*f}}let u=iu(n,e,"start_anchor"),m=iu(r,e,"end_anchor"),b=u.matchStart<=m.matchStart?1:.85;return{exactNormalized:!1,exactRaw:!1,exactSubstring:!1,matchEnd:Math.max(u.matchEnd,m.matchEnd),matchStart:Math.min(u.matchStart,m.matchStart),score:(u.score+m.score)/2*b}}function iu(t,e,n){let r=t.trim(),a=e.trim(),o=xe(r),s=xe(a);if(o===""||s==="")return tu();if(r===a)return{exactNormalized:!0,exactRaw:!0,exactSubstring:!0,matchEnd:s.length,matchStart:0,score:1};if(o===s)return{exactNormalized:!0,exactRaw:!1,exactSubstring:!1,matchEnd:s.length,matchStart:0,score:.995};if(s.includes(o)){let f=s.indexOf(o),k=o.length/Math.max(1,s.length),g=eb({candidateNormalized:s,label:n,matchEnd:f+o.length,matchStart:f,queryNormalized:o});return{exactNormalized:!1,exactRaw:!1,exactSubstring:!0,matchEnd:f+o.length,matchStart:f,score:Math.min(1,.75+.25*k+g)}}if(o.includes(s)){let f=s.length/Math.max(1,o.length);return{exactNormalized:!1,exactRaw:!1,exactSubstring:!1,matchEnd:s.length,matchStart:0,score:Math.min(.92,.78+.14*f)}}let d=0,c=-1,u=-1,m=Math.min(s.length,Math.max(o.length,Math.floor(o.length*1.2))),b=Math.min(m,Math.max(1,Math.floor(o.length*.8))),v=new Set(o);for(let f=b;f<=m;f+=1)for(let k=0;k<=s.length-f;k+=1){let g=s.slice(k,k+f),C=new Set(g),L=new Set([...v,...C]).size,K=[...v].filter(ie=>C.has(ie)).length;if((L===0?0:K/L)<.35)continue;let j=.35*Qg(o,g)+.35*Yg(o,g)+.2*Xg(o,g)+.1*Vg(o,g)+eb({candidateNormalized:s,label:n,matchEnd:k+f,matchStart:k,queryNormalized:o});j>d&&(d=Math.min(1,j),c=k,u=k+f)}return{exactNormalized:!1,exactRaw:!1,exactSubstring:!1,matchEnd:u,matchStart:c,score:d}}function eb(t){if(t.matchStart<0||t.matchEnd<0||t.queryNormalized.length<12||t.label==="start_anchor"&&t.matchStart!==0||t.label==="end_anchor"&&t.matchEnd!==t.candidateNormalized.length)return 0;let e=t.queryNormalized.length/Math.max(1,t.candidateNormalized.length);return .08*(.5+.5*Math.min(1,e))}var nb=i(()=>{"use strict";ti();nu();ru()});function rb(t){if(t==null)return[void 0,"anchor is required"];if(typeof t=="string"){let o=t.trim();if(o==="")return[void 0,"anchor string is empty"];if(o.includes("...")){let s=o.split("...").map(d=>d.trim()).filter(d=>d!=="");if(s.length>=2){let d=s[0],c=s[s.length-1];return d===void 0||c===void 0?[void 0,"anchor string is empty"]:[{head:d,mode:"head_tail",tail:c},void 0]}}return[{mode:"full",text:o},void 0]}if(typeof t!="object")return[void 0,`expected string or object, got ${typeof t}`];let e=t;if((e.mode==="head_tail"||e.head!==void 0?"head_tail":"full")==="full"){let o=typeof e.text=="string"?e.text.trim():"";return o===""?[void 0,"full anchor requires non-empty 'text'"]:[{mode:"full",text:o},void 0]}let r=typeof e.head=="string"?e.head.trim():"",a=typeof e.tail=="string"?e.tail.trim():"";return r!==""&&a===""?[{mode:"full",text:r},void 0]:r===""&&a!==""?[{mode:"full",text:a},void 0]:r===""||a===""?[void 0,"head_tail anchor requires non-empty 'head' and 'tail'"]:[{head:r,mode:"head_tail",tail:a},void 0]}function ib(t,e){if(t===void 0)return;if(t.mode==="head_tail"){let r=e==="end_anchor"?au(t.tail??"","end_anchor"):au(t.head??"","start_anchor");return r===""?void 0:{mode:"full",text:r}}return{mode:"full",text:au(t.text??"",e)}}function ou(t){return t.mode==="head_tail"?xe(t.head??"").length+xe(t.tail??"").length:xe(t.text??"").length}function au(t,e){let n=za(t);return n.length<=1?t.trim():e==="end_anchor"?n[n.length-1]??t.trim():n[0]??t.trim()}var ab=i(()=>{"use strict";ti()});var Ln,cb=i(()=>{"use strict";nb();ab();nu();ru();Ln=class{resolve(e,n,r){let a=e.start_anchor??e.start,o=e.end_anchor??e.end,[s,d]=this.parseAnchor(a,"start_anchor");if(d!==void 0)return[void 0,d];let c;if(o!==void 0){let[g,C]=this.parseAnchor(o,"end_anchor");if(C!==void 0)return[void 0,C];c=g}let[u,m,b]=this.resolveAnchor({anchor:s,candidateSentenceIds:n,candidateTexts:r,label:"start_anchor"});if(b!==void 0)return[void 0,b];if(u===void 0)return[void 0,{candidates:[],code:"none",fieldName:"start_anchor",message:"start_anchor could not be matched: no candidate selected"}];if(c===void 0)return[{confidence:u.score,sentenceIds:[u.sentenceId],strategy:m},void 0];let[v,f,k]=this.resolveAnchor({anchor:c,candidateSentenceIds:n,candidateTexts:r,label:"end_anchor",minIndex:u.index});return k!==void 0?[void 0,k]:v===void 0?[void 0,{candidates:[],code:"none",fieldName:"end_anchor",message:"end_anchor could not be matched: no candidate selected"}]:v.index<u.index?[void 0,{candidates:[],code:"invalid_range",fieldName:"end_anchor",message:`Invalid evidence range: end_anchor resolved before start_anchor (${u.occurrenceId} -> ${v.occurrenceId}).`}]:[{confidence:Math.min(u.score,v.score),sentenceIds:n.slice(u.index,v.index+1),strategy:`${m}+${f}`},void 0]}resolveWithOverrides(e){let n=e.evidence.start_anchor??e.evidence.start,r=e.evidence.end_anchor??e.evidence.end,[a,o]=this.parseAnchor(n,"start_anchor");if(o!==void 0)return[void 0,o];let s=e.overrides.start_anchor,[d,c,u]=s===void 0?this.resolveAnchor({anchor:a,candidateSentenceIds:e.candidateSentenceIds,candidateTexts:e.candidateTexts,label:"start_anchor"}):[s,"choice_final",void 0];if(u!==void 0)return[void 0,u];if(d===void 0)return[void 0,{candidates:[],code:"none",fieldName:"start_anchor",message:"start_anchor could not be matched: no candidate selected"}];if(r===void 0)return[{confidence:d.score,sentenceIds:[d.sentenceId],strategy:c},void 0];let[m,b]=this.parseAnchor(r,"end_anchor");if(b!==void 0)return[void 0,b];let v=e.overrides.end_anchor,[f,k,g]=v===void 0?this.resolveAnchor({anchor:m,candidateSentenceIds:e.candidateSentenceIds,candidateTexts:e.candidateTexts,label:"end_anchor",minIndex:d.index}):[v,"choice_final",void 0];return g!==void 0?[void 0,g]:f===void 0?[void 0,{candidates:[],code:"none",fieldName:"end_anchor",message:"end_anchor could not be matched: no candidate selected"}]:f.index<d.index?[void 0,{candidates:[],code:"invalid_range",fieldName:"end_anchor",message:`Invalid evidence range: end_anchor resolved before start_anchor (${d.occurrenceId} -> ${f.occurrenceId}).`}]:[{confidence:Math.min(d.score,f.score),sentenceIds:e.candidateSentenceIds.slice(d.index,f.index+1),strategy:`${c}+${k}`},void 0]}parseAnchor(e,n){let[r,a]=rb(e);return a!==void 0?[void 0,{candidates:[],code:"invalid_anchor",fieldName:n,message:`Invalid evidence.${n}: ${a}`}]:[ib(r,n),void 0]}resolveAnchor(e){if(e.anchor===void 0)return[void 0,"invalid",{candidates:[],code:"invalid",fieldName:e.label,message:`${e.label} is missing`}];let n=this.rankAnchor(e.anchor,e.candidateSentenceIds,e.candidateTexts,e.label),r=e.minIndex;if(r!==void 0&&(n=n.filter(m=>m.index>=r)),n.length===0)return[void 0,"none",{candidates:[],code:"none",fieldName:e.label,message:`${e.label} could not be matched: no candidates available`}];let a=n.filter(m=>m.exactRaw);if(a.length===1)return[a[0],"exact_raw",void 0];if(a.length>1)return[void 0,"ambiguous_exact_raw",this.#t(e.label,"ambiguous_exact_raw",a)];let o=n.filter(m=>m.exactSubstring);if(o.length===1&&ou(e.anchor)>=8)return[o[0],"exact_substring",void 0];if(o.length>1&&ou(e.anchor)>=8){let m=this.#e(o);return m!==void 0?[m,"exact_substring_scored",void 0]:[void 0,"ambiguous_exact_substring",this.#t(e.label,"ambiguous_exact_substring",o)]}let s=n.filter(m=>m.exactNormalized);if(s.length===1)return[s[0],"exact_normalized",void 0];if(s.length>1){let m=this.#e(s);return m!==void 0?[m,"exact_normalized_scored",void 0]:[void 0,"ambiguous_exact_normalized",this.#t(e.label,"ambiguous_exact_normalized",s)]}let d=n[0];if(d===void 0)return[void 0,"none",{candidates:[],code:"none",fieldName:e.label,message:`${e.label} could not be matched: no candidates available`}];let c=n[1]?.score??0,u=d.score-c;return d.score<.55?[void 0,"low_confidence",{candidates:n.slice(0,3),code:"low_confidence",fieldName:e.label,message:`${e.label} could not be matched confidently. Best candidate score=${d.score.toFixed(3)}.`}]:n.length===1?[d,"auto_top1_single_candidate",void 0]:d.score>=.97?[d,"auto_top1_very_high",void 0]:d.score>=.9&&u>=.07?[d,"auto_top1",void 0]:[void 0,"ambiguous_ranked",this.#t(e.label,"ambiguous_ranked",n)]}rankAnchor(e,n,r,a){let o=[];for(let[s,d]of n.entries()){let c=r[s]??"",u=s>0?r[s-1]??"":"",m=s<r.length-1?r[s+1]??"":"",b=tb(e,c,a);o.push({exactNormalized:b.exactNormalized,exactRaw:b.exactRaw,exactSubstring:b.exactSubstring,index:s,nextText:m,occurrenceId:`S${s+1}`,prevText:u,score:b.score,sentenceId:d,text:c})}return o.sort((s,d)=>s.score!==d.score?d.score-s.score:s.exactRaw!==d.exactRaw?s.exactRaw?-1:1:s.exactSubstring!==d.exactSubstring?s.exactSubstring?-1:1:s.exactNormalized!==d.exactNormalized?s.exactNormalized?-1:1:s.index-d.index),o}#e(e){if(e.length===0)return;if(e.length===1)return e[0];let n=e[0];if(n===void 0)return;let r=e[1]?.score??0;if(n.score>=.9&&n.score-r>=.07)return n}#t(e,n,r){let a=r.slice(0,3),o=a.map(s=>Zg(s)).join(`
777
777
  `);return{candidates:a,code:n,fieldName:e,message:`${e} is ambiguous. Top candidates:
778
778
  ${o}
779
- Please provide a more specific anchor or surrounding context.`}}}});var ab=i(()=>{"use strict"});var ob=i(()=>{"use strict";ib();ab()});var Vc,sb=i(()=>{"use strict";Vc=["Evidence selection:",'- Return evidence as [{"sentence_id":"S1","quote":"exact short source quote"}].',"- evidence.quote is a locator for the source sentence, not a proof excerpt.","- Choose the shortest exact quote that still uniquely identifies the intended sentence.","- If the quote is too short, it may match multiple sentences; if it is too long, it may include unnecessary text or cross sentence boundaries.","- Do not use a whole sentence by default.","- evidence is an array. Use multiple items when the claim needs multiple source sentences.","- A source sentence means exactly one displayed source line labeled S1, S2, S3, etc.","- Each evidence item must point to exactly one source sentence.","- Each evidence item must quote one continuous span from exactly one labeled source line, for example only from S2.","- Never merge text from two labeled source lines into one evidence quote.","- sentence_id must be one of the sentence IDs shown in the source context.","- quote must be copied from the untagged original source sentence.","- If the source context contains XML-like tags, do not copy the tags into quote; copy only the visible text."].join(`
780
- `)});var Yc=i(()=>{"use strict"});var db=i(()=>{"use strict";Yc();ti()});var Ka=i(()=>{"use strict";ob();sb();Yc();db();ti()});var ub=i(()=>{"use strict"});import{z as D}from"zod";var lb,EC,vC,RC,tte,nte,mb=i(()=>{"use strict";le();Ka();ub();lb=D.object({head:D.string().optional(),mode:D.enum(["full","head_tail"]).optional(),tail:D.string().optional(),text:D.string().optional()}).strict(),EC=D.object({quote:D.string().optional(),sentence_id:D.string().optional()}).strict(),vC=D.union([D.object({end_anchor:D.union([D.string(),lb]).optional(),quote:D.string().optional(),sentence_id:D.string().optional(),start_anchor:D.union([D.string(),lb]).optional()}).strict(),D.array(EC)]),RC=D.object({confidence:D.number().min(0).max(1).optional(),evidence:vC,predicate:D.string().min(1).max(64),sourceMentionId:D.string().min(1),targetMentionId:D.string().min(1)}).strict(),tte=D.object({relations:D.array(RC)}).strict(),nte=new An});var pb=i(()=>{"use strict"});var hb=i(()=>{"use strict"});var fb=i(()=>{"use strict";mb();pb();hb()});var yb=i(()=>{"use strict";fb();Ha();qc()});var ni,Ln=i(()=>{"use strict";ni=Object.freeze({guaranteedResponseIntent:"guaranteed-response-intent",knowledgeGraph:"knowledge-graph",readingGraphEvidenceChoice:"reading-graph-evidence-choice",readingGraphExtraction:"reading-graph-extraction",readingSummaryCompress:"reading-summary-compress",readingSummaryReview:"reading-summary-review",readingSummaryReviewGuide:"reading-summary-review-guide"})});var Pte,eu=i(()=>{"use strict";le();$t();jg();Bg();yb();Zr();Ln();Pte=["Recall only source mentions that should become stable searchable knowledge graph objects.","Prefer named entities: historical persons, places, organizations, dynasties, political entities, named works, named events, battles, titles, and explicitly named domain concepts.","Recall a non-named common concept only when it is a central recurring topic of the chapter and would be useful as an entity search result across multiple evidence passages.","Do not recall a surface merely because it is useful for summarizing the story or explaining a detail.","Do not recall pure numbers, standalone dates without a named event role, units of measurement, dimensions, ordinal labels, chapter numbers, punctuation fragments, common function words, generic verbs, generic adjectives, generic roles, generic objects, or incidental attributes.","Measurements, quantities, dimensions, tactical details, and descriptive attributes should remain evidence text, not entity mentions.","When uncertain, skip the mention rather than creating a noisy knowledge graph object."].join(" ")});var gb=i(()=>{"use strict"});var bb=i(()=>{"use strict"});var Sb=i(()=>{"use strict";gb();bb()});var zt=i(()=>{"use strict"});var ri=i(()=>{"use strict";le()});var kb=i(()=>{"use strict";zt();ri()});var xb=i(()=>{"use strict";ri()});var Ib=i(()=>{"use strict"});import{z as I}from"zod";var Eb,PC,vb,AC,LC,OC,NC,WC,DC,za=i(()=>{"use strict";zt();Eb=I.object({from:I.union([I.number().int(),I.string()]),strength:I.string().optional(),to:I.union([I.number().int(),I.string()])}),PC=I.object({quote:I.string().optional(),sentence_id:I.string().optional()}).passthrough(),vb=I.union([I.record(I.string(),I.unknown()),I.array(PC)]),AC=I.object({content:I.string(),evidence:vb.nullish(),label:I.string(),retention:I.enum(["verbatim","detailed","focused","relevant"]),temp_id:I.string()}).passthrough(),LC=I.object({chunks:I.array(AC),fragment_summary:I.string(),links:I.array(Eb)}),OC=I.object({content:I.string(),evidence:vb.nullish(),importance:I.enum(["critical","important","helpful"]),label:I.string(),temp_id:I.string()}).passthrough(),NC=I.object({chunk_id:I.number().int(),importance:I.enum(["critical","important","helpful"])}),WC=I.object({chunks:I.array(OC),importance_annotations:I.array(NC),links:I.array(Eb)}),DC=I.object({choice:I.string()})});var Rb=i(()=>{"use strict";le();Ka();Ib();ri();za()});var Cb=i(()=>{"use strict";le();zt();kb();ri();xb();Rb();za()});var Tb=i(()=>{"use strict";Cb();za()});var nu=i(()=>{"use strict"});import{detect as Ane,validateISO2 as Lne}from"tinyld";var _b=i(()=>{"use strict"});var Pb=i(()=>{"use strict"});import{z as ii}from"zod";var GC,Vne,Ab=i(()=>{"use strict";le();Ka();Tb();nu();nu();_b();Pb();GC=ii.object({content:ii.string(),id:ii.number(),label:ii.string()}),Vne=ii.array(GC)});var Lb=i(()=>{"use strict";Ab()});var Ob=i(()=>{"use strict";Sb();Lb()});var Nb=i(()=>{"use strict";Ob()});var Wb=i(()=>{"use strict"});var Db=i(()=>{"use strict"});var ru=i(()=>{"use strict";Wb();le();Ln();Db()});var Mb=i(()=>{"use strict"});var Fb=i(()=>{"use strict"});var Gb=i(()=>{"use strict";Mb();Fb()});var ai=i(()=>{"use strict"});var Wre,Dre,On=i(()=>{"use strict";zt();Wre={critical:9,helpful:1,important:3},Dre={detailed:9,focused:3,relevant:1,verbatim:27}});var Nn=i(()=>{"use strict"});var oi=i(()=>{"use strict"});var iu=i(()=>{"use strict";Nn()});var au=i(()=>{"use strict";On();Nn();ai();oi();iu()});var ou=i(()=>{"use strict";ai();au();oi()});var Ub=i(()=>{"use strict";On();Nn();oi()});var Bb=i(()=>{"use strict";On();Nn();ai();oi();iu()});var qb=i(()=>{"use strict";ou();Nn();ai();Ub();au();Bb()});var Hb=i(()=>{"use strict";qb();ou()});var $b=i(()=>{"use strict";On()});var Jb=i(()=>{"use strict";Hb();$b()});var Kb=i(()=>{"use strict";Gb();Jb();On()});var su=i(()=>{"use strict";$t();Ln();Nb();ru();Kb()});var zb=i(()=>{"use strict"});var Xa=i(()=>{"use strict"});var Qb=i(()=>{"use strict";Xa()});var Va=i(()=>{"use strict"});var uae,Vb=i(()=>{"use strict";Xa();Va();uae=Object.freeze({critical:9,major:3,minor:1})});import{detect as pae,validateISO2 as hae}from"tinyld";var Yb=i(()=>{"use strict";Va()});var Zb=i(()=>{"use strict"});var eS=i(()=>{"use strict";zt()});var du=i(()=>{"use strict";eS()});var tS=i(()=>{"use strict"});import{z as Wn}from"zod";var QC,XC,Lae,nS=i(()=>{"use strict";le();Xa();du();Va();QC=["critical","major","minor"],XC=Wn.object({problem:Wn.string(),severity:Wn.enum(QC),suggestion:Wn.string().default("")}),Lae=Wn.object({issues:Wn.array(XC)})});var rS=i(()=>{"use strict";zb();Qb();Vb();Yb();Zb();du();tS();nS()});var cu=i(()=>{"use strict";$t();Ln();zt();ru();rS()});var iS=i(()=>{"use strict";Nc();$t();Dc();eu();su();cu()});import{z as G}from"zod";var Dn,VC,YC,ZC,eT,Ioe,aS=i(()=>{"use strict";Dn=G.number().finite().nonnegative(),VC=G.enum(["committing","enrichment","grounding","indexing","matching","narrowing","relation-discovery","reading-extraction","screening","summary-compression"]),YC=G.enum(["candidate","char","item","page","qid","record","sentence","window"]),ZC=G.object({cacheReadTokens:Dn.optional(),inputTokens:Dn.optional(),outputTokens:Dn.optional()}),eT=G.object({done:Dn,force:G.boolean().optional(),phase:VC,phaseDetail:G.string().optional(),total:Dn,unit:YC}),Ioe=G.discriminatedUnion("event",[G.object({characters:Dn,event:G.literal("output-characters")}),G.object({event:G.literal("token-usage"),usage:ZC}),G.object({event:G.literal("progress"),progress:eT}),G.object({event:G.literal("artifact"),record:G.unknown()}),G.object({event:G.literal("complete"),revision:G.number().int().nonnegative()}),G.object({event:G.literal("error"),message:G.string()})])});var oS=i(()=>{"use strict"});var sS=i(()=>{"use strict"});var si=i(()=>{"use strict";wg();kg();iS();Dc();Nc();$t();eu();su();cu();Ln();aS();oS();sS();Oc()});var dS=i(()=>{"use strict";si();hn()});import{z as T}from"zod";var tT,nT,Koe,zoe,Qoe,cS=i(()=>{"use strict";y();tT="wikg-index-output/v1",nT=T.enum(["fts","embedding-source","embedding-summary"]),Koe=T.object({artifactKind:nT,chapterId:T.number().int().nonnegative(),embedding:T.object({dimensions:T.number().int().nonnegative(),identity:T.string().optional(),model:T.string()}).optional(),inputRevision:T.number().int().nonnegative(),protocol:T.literal(tT),type:T.literal("manifest")}),zoe=T.object({metadata:T.record(T.string(),T.unknown()).optional(),objectId:T.string().min(1),objectKind:T.string().min(1),rowId:T.string().min(1),sentenceIndex:T.number().int().nonnegative().optional(),text:T.string(),tokens:T.array(T.string()),type:T.literal("lexical-row")}),Qoe=T.object({endSentenceIndex:T.number().int().nonnegative(),segmentIndex:T.number().int().nonnegative(),startSentenceIndex:T.number().int().nonnegative(),text:T.string(),vector:T.array(T.number()),wordsCount:T.number().int().nonnegative(),type:T.literal("segment")})});var Qt=i(()=>{"use strict";dS();cS()});var uS=i(()=>{"use strict";Me();yt()});var lS=i(()=>{"use strict";_();Wa()});var pS=i(()=>{"use strict";y();_();Y();_n();Pn();Qt();uS();lS()});var Ya=i(()=>{"use strict"});var hS=i(()=>{"use strict";Ya()});var fS=i(()=>{"use strict"});var yS=i(()=>{"use strict";Ya()});var gS=i(()=>{"use strict";Ya()});var bS=i(()=>{"use strict";hS();fS();yS();gS()});import{z as h}from"zod";var SS,hT,fT,yT,gT,bT,ST,wT,kT,xT,IT,wS=i(()=>{"use strict";Re();SS=h.tuple([h.number(),h.number()]),hT=h.object({text:h.string(),wordsCount:h.number()}),fT=h.object({serialId:h.number(),fragmentId:h.number(),summary:h.string(),sentences:h.array(hT)}),yT=h.object({documentOrder:h.number().optional(),id:h.number(),knowledgeGraphReady:h.boolean(),knowledgeGraphParameterHash:h.string().optional(),revision:h.number().optional(),topologyParameterHash:h.string().optional(),topologyReady:h.boolean()}).transform(t=>({documentOrder:t.documentOrder??t.id,id:t.id,knowledgeGraphReady:t.knowledgeGraphReady,...t.knowledgeGraphParameterHash===void 0?{}:{knowledgeGraphParameterHash:t.knowledgeGraphParameterHash},revision:t.revision??0,topologyReady:t.topologyReady,...t.topologyParameterHash===void 0?{}:{topologyParameterHash:t.topologyParameterHash}})),gT=h.object({id:h.number(),generation:h.number(),sentenceId:SS,label:h.string(),content:h.string(),sentenceIds:h.array(SS),retention:h.enum(he).optional(),importance:h.enum(ve).optional(),wordsCount:h.number(),weight:h.number()}),bT=h.object({fromId:h.number(),toId:h.number(),strength:h.string().optional(),weight:h.number()}),ST=h.object({id:h.number(),serialId:h.number(),groupId:h.number(),localSnakeId:h.number(),size:h.number(),firstLabel:h.string(),lastLabel:h.string(),wordsCount:h.number(),weight:h.number()}),wT=h.object({snakeId:h.number(),chunkId:h.number(),position:h.number()}),kT=h.object({fromSnakeId:h.number(),toSnakeId:h.number(),weight:h.number()}),xT=h.object({serialId:h.number(),groupId:h.number(),startSentenceIndex:h.number(),endSentenceIndex:h.number()}),IT=h.object({chunks:h.array(gT),fragmentGroups:h.array(xT),fragments:h.array(fT),readingEdges:h.array(bT),serial:yT,snakeChunks:h.array(wT),snakeEdges:h.array(kT),snakes:h.array(ST)})});var kS=i(()=>{"use strict";y();wS()});var xS=i(()=>{"use strict";tn();Ic();Z()});var IS=i(()=>{"use strict";y();_();Y();bS();kS();Ba();xS();Pn();Qt()});var ES=i(()=>{"use strict"});var Za=i(()=>{"use strict";IS();Ba();ES()});var vS=i(()=>{"use strict";Y();Za()});var RS=i(()=>{"use strict"});var CS=i(()=>{"use strict";pS();vS();RS()});var TS=i(()=>{"use strict";si()});var PS=i(()=>{"use strict";si();_();Y();Qt();Za()});var AS=i(()=>{"use strict";si();ft();tn()});var LS=i(()=>{"use strict";CS();Za();TS();PS();AS()});import{z as $}from"zod";var cce,vT,uce,pu=i(()=>{"use strict";y();cce=$.object({id:$.string().min(1),chapterId:$.number().int(),sentenceIndex:$.number().int().nonnegative().optional(),rangeStart:$.number().int().nonnegative(),rangeEnd:$.number().int().nonnegative(),surface:$.string().min(1),qid:$.string().regex(/^Q[1-9][0-9]*$/),confidence:$.number().min(0).max(1).optional(),note:$.string().optional()}),vT=$.tuple([$.number().int().nonnegative(),$.number().int().nonnegative()]).readonly(),uce=$.object({id:$.string().min(1),sourceMentionId:$.string().min(1),targetMentionId:$.string().min(1),predicate:$.string().min(1),evidenceSentenceIds:$.array(vT).min(1),confidence:$.number().min(0).max(1).optional(),note:$.string().optional()})});var hu=i(()=>{"use strict";y();Me();Pn();pu()});var NS=i(()=>{"use strict";Pn();Qt();pu()});var eo=i(()=>{"use strict"});var WS=i(()=>{"use strict";ft();eo()});var fu=i(()=>{"use strict"});var DS=i(()=>{"use strict";ft()});var yu=i(()=>{"use strict"});var gu=i(()=>{"use strict";ft();eo();DS();yu()});var FS=i(()=>{"use strict";gu()});var GS=i(()=>{"use strict";Me()});var jS=i(()=>{"use strict";bc();In();Na()});import{z as M}from"zod";var US,_T,PT,AT,eue,tue,BS=i(()=>{"use strict";Ne();In();jS();US=M.object({head:M.string().optional(),mode:M.enum(["full","head_tail"]).optional(),tail:M.string().optional(),text:M.string().optional()}).strict(),_T=M.object({quote:M.string().optional(),sentence_id:M.string().optional()}).strict(),PT=M.union([M.object({end_anchor:M.union([M.string(),US]).optional(),quote:M.string().optional(),sentence_id:M.string().optional(),start_anchor:M.union([M.string(),US]).optional()}).strict(),M.array(_T)]),AT=M.object({confidence:M.number().min(0).max(1).optional(),evidence:PT,predicate:M.string().min(1).max(64),sourceMentionId:M.string().min(1),targetMentionId:M.string().min(1)}).strict(),eue=M.object({relations:M.array(AT)}).strict(),tue=new qt});var qS=i(()=>{"use strict"});var HS=i(()=>{"use strict";BS();qS()});var $S=i(()=>{"use strict";HS();eo();yu()});var bu=i(()=>{"use strict";Y();fu()});var zS=i(()=>{"use strict";ft();yt();hu();WS();fu();FS();GS();$S();bu()});var QS=i(()=>{"use strict"});var XS=i(()=>{"use strict";hu();NS();zS();gu();bu();QS()});var VS=i(()=>{"use strict";XS()});var di=i(()=>{"use strict";Y()});var Su=i(()=>{"use strict";yt()});var wu=i(()=>{"use strict";Me();yt();_n();di();Su()});var ew=i(()=>{"use strict";yt();di();wu()});var ku=i(()=>{"use strict";ye();Z()});var nw=i(()=>{"use strict";ye();ar();at();ku();Z()});var rw=i(()=>{"use strict";_n();ye();di();nw();ku();Z()});import{z as Xt}from"zod";var iw,Dle,aw=i(()=>{"use strict";iw=Xt.object({children:Xt.lazy(()=>Xt.array(iw)),uri:Xt.string().min(1),title:Xt.string().nullable().optional()}).strict(),Dle=Xt.object({chapters:Xt.array(iw)}).strict()});var ow=i(()=>{"use strict";Y()});var sw=i(()=>{"use strict";ew();di();wu();rw();Su();aw();ow()});var dw=i(()=>{"use strict";hr()});var Ve=i(()=>{"use strict";gg();ct();Kd();LS();VS();ct();Lc();sw();dw();ba()});async function Bw(t="global"){let e=await _u(),n=Ze(),r=Date.now(),a=!1;try{await e.transaction(async()=>{await X_(e),await e.run(`
779
+ Please provide a more specific anchor or surrounding context.`}}}});var ub=i(()=>{"use strict"});var lb=i(()=>{"use strict";cb();ub()});var su,mb=i(()=>{"use strict";su=["Evidence selection:",'- Return evidence as [{"sentence_id":"S1","quote":"exact short source quote"}].',"- evidence.quote is a locator for the source sentence, not a proof excerpt.","- Choose the shortest exact quote that still uniquely identifies the intended sentence.","- If the quote is too short, it may match multiple sentences; if it is too long, it may include unnecessary text or cross sentence boundaries.","- Do not use a whole sentence by default.","- evidence is an array. Use multiple items when the claim needs multiple source sentences.","- A source sentence means exactly one displayed source line labeled S1, S2, S3, etc.","- Each evidence item must point to exactly one source sentence.","- Each evidence item must quote one continuous span from exactly one labeled source line, for example only from S2.","- Never merge text from two labeled source lines into one evidence quote.","- sentence_id must be one of the sentence IDs shown in the source context.","- quote must be copied from the untagged original source sentence.","- If the source context contains XML-like tags, do not copy the tags into quote; copy only the visible text."].join(`
780
+ `)});var du=i(()=>{"use strict"});var pb=i(()=>{"use strict";du();ti()});var Xa=i(()=>{"use strict";lb();mb();du();pb();ti()});var fb=i(()=>{"use strict"});import{z as D}from"zod";var yb,PC,AC,LC,cte,ute,gb=i(()=>{"use strict";le();Xa();fb();yb=D.object({head:D.string().optional(),mode:D.enum(["full","head_tail"]).optional(),tail:D.string().optional(),text:D.string().optional()}).strict(),PC=D.object({quote:D.string().optional(),sentence_id:D.string().optional()}).strict(),AC=D.union([D.object({end_anchor:D.union([D.string(),yb]).optional(),quote:D.string().optional(),sentence_id:D.string().optional(),start_anchor:D.union([D.string(),yb]).optional()}).strict(),D.array(PC)]),LC=D.object({confidence:D.number().min(0).max(1).optional(),evidence:AC,predicate:D.string().min(1).max(64),sourceMentionId:D.string().min(1),targetMentionId:D.string().min(1)}).strict(),cte=D.object({relations:D.array(LC)}).strict(),ute=new Ln});var bb=i(()=>{"use strict"});var Sb=i(()=>{"use strict"});var wb=i(()=>{"use strict";gb();bb();Sb()});var kb=i(()=>{"use strict";wb();Ka();Zc()});var ni,On=i(()=>{"use strict";ni=Object.freeze({guaranteedResponseIntent:"guaranteed-response-intent",knowledgeGraph:"knowledge-graph",readingGraphEvidenceChoice:"reading-graph-evidence-choice",readingGraphExtraction:"reading-graph-extraction",readingSummaryCompress:"reading-summary-compress",readingSummaryReview:"reading-summary-review",readingSummaryReviewGuide:"reading-summary-review-guide"})});var Fte,uu=i(()=>{"use strict";le();$t();$g();Kg();kb();Zr();On();Fte=["Recall only source mentions that should become stable searchable knowledge graph objects.","Prefer named entities: historical persons, places, organizations, dynasties, political entities, named works, named events, battles, titles, and explicitly named domain concepts.","Recall a non-named common concept only when it is a central recurring topic of the chapter and would be useful as an entity search result across multiple evidence passages.","Do not recall a surface merely because it is useful for summarizing the story or explaining a detail.","Do not recall pure numbers, standalone dates without a named event role, units of measurement, dimensions, ordinal labels, chapter numbers, punctuation fragments, common function words, generic verbs, generic adjectives, generic roles, generic objects, or incidental attributes.","Measurements, quantities, dimensions, tactical details, and descriptive attributes should remain evidence text, not entity mentions.","When uncertain, skip the mention rather than creating a noisy knowledge graph object."].join(" ")});var xb=i(()=>{"use strict"});var Ib=i(()=>{"use strict"});var Eb=i(()=>{"use strict";xb();Ib()});var zt=i(()=>{"use strict"});var ri=i(()=>{"use strict";le()});var Rb=i(()=>{"use strict";zt();ri()});var Cb=i(()=>{"use strict";ri()});var Tb=i(()=>{"use strict"});import{z as I}from"zod";var _b,DC,Pb,MC,FC,GC,jC,UC,qC,Va=i(()=>{"use strict";zt();_b=I.object({from:I.union([I.number().int(),I.string()]),strength:I.string().optional(),to:I.union([I.number().int(),I.string()])}),DC=I.object({quote:I.string().optional(),sentence_id:I.string().optional()}).passthrough(),Pb=I.union([I.record(I.string(),I.unknown()),I.array(DC)]),MC=I.object({content:I.string(),evidence:Pb.nullish(),label:I.string(),retention:I.enum(["verbatim","detailed","focused","relevant"]),temp_id:I.string()}).passthrough(),FC=I.object({chunks:I.array(MC),fragment_summary:I.string(),links:I.array(_b)}),GC=I.object({content:I.string(),evidence:Pb.nullish(),importance:I.enum(["critical","important","helpful"]),label:I.string(),temp_id:I.string()}).passthrough(),jC=I.object({chunk_id:I.number().int(),importance:I.enum(["critical","important","helpful"])}),UC=I.object({chunks:I.array(GC),importance_annotations:I.array(jC),links:I.array(_b)}),qC=I.object({choice:I.string()})});var Ab=i(()=>{"use strict";le();Xa();Tb();ri();Va()});var Lb=i(()=>{"use strict";le();zt();Rb();ri();Cb();Ab();Va()});var Ob=i(()=>{"use strict";Lb();Va()});var mu=i(()=>{"use strict"});import{detect as Gne,validateISO2 as jne}from"tinyld";var Nb=i(()=>{"use strict"});var Wb=i(()=>{"use strict"});import{z as ii}from"zod";var $C,are,Db=i(()=>{"use strict";le();Xa();Ob();mu();mu();Nb();Wb();$C=ii.object({content:ii.string(),id:ii.number(),label:ii.string()}),are=ii.array($C)});var Mb=i(()=>{"use strict";Db()});var Fb=i(()=>{"use strict";Eb();Mb()});var Gb=i(()=>{"use strict";Fb()});var jb=i(()=>{"use strict"});var Ub=i(()=>{"use strict"});var pu=i(()=>{"use strict";jb();le();On();Ub()});var qb=i(()=>{"use strict"});var Bb=i(()=>{"use strict"});var Hb=i(()=>{"use strict";qb();Bb()});var ai=i(()=>{"use strict"});var Bre,Hre,Nn=i(()=>{"use strict";zt();Bre={critical:9,helpful:1,important:3},Hre={detailed:9,focused:3,relevant:1,verbatim:27}});var Wn=i(()=>{"use strict"});var oi=i(()=>{"use strict"});var hu=i(()=>{"use strict";Wn()});var fu=i(()=>{"use strict";Nn();Wn();ai();oi();hu()});var yu=i(()=>{"use strict";ai();fu();oi()});var Jb=i(()=>{"use strict";Nn();Wn();oi()});var Kb=i(()=>{"use strict";Nn();Wn();ai();oi();hu()});var zb=i(()=>{"use strict";yu();Wn();ai();Jb();fu();Kb()});var Qb=i(()=>{"use strict";zb();yu()});var Xb=i(()=>{"use strict";Nn()});var Vb=i(()=>{"use strict";Qb();Xb()});var Yb=i(()=>{"use strict";Hb();Vb();Nn()});var gu=i(()=>{"use strict";$t();On();Gb();pu();Yb()});var Zb=i(()=>{"use strict"});var Za=i(()=>{"use strict"});var eS=i(()=>{"use strict";Za()});var eo=i(()=>{"use strict"});var bae,nS=i(()=>{"use strict";Za();eo();bae=Object.freeze({critical:9,major:3,minor:1})});import{detect as kae,validateISO2 as xae}from"tinyld";var rS=i(()=>{"use strict";eo()});var iS=i(()=>{"use strict"});var aS=i(()=>{"use strict";zt()});var bu=i(()=>{"use strict";aS()});var oS=i(()=>{"use strict"});import{z as Dn}from"zod";var tT,nT,jae,sS=i(()=>{"use strict";le();Za();bu();eo();tT=["critical","major","minor"],nT=Dn.object({problem:Dn.string(),severity:Dn.enum(tT),suggestion:Dn.string().default("")}),jae=Dn.object({issues:Dn.array(nT)})});var dS=i(()=>{"use strict";Zb();eS();nS();rS();iS();bu();oS();sS()});var Su=i(()=>{"use strict";$t();On();zt();pu();dS()});var cS=i(()=>{"use strict";Hc();$t();Jc();uu();gu();Su()});import{z as G}from"zod";var Mn,rT,iT,aT,oT,Aoe,uS=i(()=>{"use strict";Mn=G.number().finite().nonnegative(),rT=G.enum(["committing","enrichment","grounding","indexing","matching","narrowing","relation-discovery","reading-extraction","screening","summary-compression"]),iT=G.enum(["candidate","char","item","page","qid","record","sentence","window"]),aT=G.object({cacheReadTokens:Mn.optional(),inputTokens:Mn.optional(),outputTokens:Mn.optional()}),oT=G.object({done:Mn,force:G.boolean().optional(),phase:rT,phaseDetail:G.string().optional(),total:Mn,unit:iT}),Aoe=G.discriminatedUnion("event",[G.object({characters:Mn,event:G.literal("output-characters")}),G.object({event:G.literal("token-usage"),usage:aT}),G.object({event:G.literal("progress"),progress:oT}),G.object({event:G.literal("artifact"),record:G.unknown()}),G.object({event:G.literal("complete"),revision:G.number().int().nonnegative()}),G.object({event:G.literal("error"),message:G.string()})])});var lS=i(()=>{"use strict"});var mS=i(()=>{"use strict"});var si=i(()=>{"use strict";vg();Rg();cS();Jc();Hc();$t();uu();gu();Su();On();uS();lS();mS();Bc()});var pS=i(()=>{"use strict";si();fn()});import{z as T}from"zod";var sT,dT,tse,nse,rse,hS=i(()=>{"use strict";y();sT="wikg-index-output/v1",dT=T.enum(["fts","embedding-source","embedding-summary"]),tse=T.object({artifactKind:dT,chapterId:T.number().int().nonnegative(),embedding:T.object({dimensions:T.number().int().nonnegative(),identity:T.string().optional(),model:T.string()}).optional(),inputRevision:T.number().int().nonnegative(),protocol:T.literal(sT),type:T.literal("manifest")}),nse=T.object({metadata:T.record(T.string(),T.unknown()).optional(),objectId:T.string().min(1),objectKind:T.string().min(1),rowId:T.string().min(1),sentenceIndex:T.number().int().nonnegative().optional(),text:T.string(),tokens:T.array(T.string()),type:T.literal("lexical-row")}),rse=T.object({endSentenceIndex:T.number().int().nonnegative(),segmentIndex:T.number().int().nonnegative(),startSentenceIndex:T.number().int().nonnegative(),text:T.string(),vector:T.array(T.number()),wordsCount:T.number().int().nonnegative(),type:T.literal("segment")})});var Qt=i(()=>{"use strict";pS();hS()});var fS=i(()=>{"use strict";Me();yt()});var yS=i(()=>{"use strict";P();Fa()});var bS=i(()=>{"use strict";y();P();Y();Pn();An();Qt();fS();yS()});var to=i(()=>{"use strict"});var SS=i(()=>{"use strict";to()});var wS=i(()=>{"use strict"});var kS=i(()=>{"use strict";to()});var xS=i(()=>{"use strict";to()});var IS=i(()=>{"use strict";SS();wS();kS();xS()});import{z as h}from"zod";var ES,wT,kT,xT,IT,ET,vT,RT,CT,TT,_T,vS=i(()=>{"use strict";Re();ES=h.tuple([h.number(),h.number()]),wT=h.object({text:h.string(),wordsCount:h.number()}),kT=h.object({serialId:h.number(),fragmentId:h.number(),summary:h.string(),sentences:h.array(wT)}),xT=h.object({documentOrder:h.number().optional(),id:h.number(),knowledgeGraphReady:h.boolean(),knowledgeGraphParameterHash:h.string().optional(),revision:h.number().optional(),topologyParameterHash:h.string().optional(),topologyReady:h.boolean()}).transform(t=>({documentOrder:t.documentOrder??t.id,id:t.id,knowledgeGraphReady:t.knowledgeGraphReady,...t.knowledgeGraphParameterHash===void 0?{}:{knowledgeGraphParameterHash:t.knowledgeGraphParameterHash},revision:t.revision??0,topologyReady:t.topologyReady,...t.topologyParameterHash===void 0?{}:{topologyParameterHash:t.topologyParameterHash}})),IT=h.object({id:h.number(),generation:h.number(),sentenceId:ES,label:h.string(),content:h.string(),sentenceIds:h.array(ES),retention:h.enum(he).optional(),importance:h.enum(ve).optional(),wordsCount:h.number(),weight:h.number()}),ET=h.object({fromId:h.number(),toId:h.number(),strength:h.string().optional(),weight:h.number()}),vT=h.object({id:h.number(),serialId:h.number(),groupId:h.number(),localSnakeId:h.number(),size:h.number(),firstLabel:h.string(),lastLabel:h.string(),wordsCount:h.number(),weight:h.number()}),RT=h.object({snakeId:h.number(),chunkId:h.number(),position:h.number()}),CT=h.object({fromSnakeId:h.number(),toSnakeId:h.number(),weight:h.number()}),TT=h.object({serialId:h.number(),groupId:h.number(),startSentenceIndex:h.number(),endSentenceIndex:h.number()}),_T=h.object({chunks:h.array(IT),fragmentGroups:h.array(TT),fragments:h.array(kT),readingEdges:h.array(ET),serial:xT,snakeChunks:h.array(RT),snakeEdges:h.array(CT),snakes:h.array(vT)})});var RS=i(()=>{"use strict";y();vS()});var CS=i(()=>{"use strict";nn();Oc();Z()});var TS=i(()=>{"use strict";y();P();Y();IS();RS();$a();CS();An();Qt()});var _S=i(()=>{"use strict"});var no=i(()=>{"use strict";TS();$a();_S()});var PS=i(()=>{"use strict";Y();no()});var AS=i(()=>{"use strict"});var LS=i(()=>{"use strict";bS();PS();AS()});var OS=i(()=>{"use strict";si()});var WS=i(()=>{"use strict";si();P();Y();Qt();no()});var DS=i(()=>{"use strict";si();ft();nn()});var MS=i(()=>{"use strict";LS();no();OS();WS();DS()});import{z as $}from"zod";var gce,AT,bce,Iu=i(()=>{"use strict";y();gce=$.object({id:$.string().min(1),chapterId:$.number().int(),sentenceIndex:$.number().int().nonnegative().optional(),rangeStart:$.number().int().nonnegative(),rangeEnd:$.number().int().nonnegative(),surface:$.string().min(1),qid:$.string().regex(/^Q[1-9][0-9]*$/),confidence:$.number().min(0).max(1).optional(),note:$.string().optional()}),AT=$.tuple([$.number().int().nonnegative(),$.number().int().nonnegative()]).readonly(),bce=$.object({id:$.string().min(1),sourceMentionId:$.string().min(1),targetMentionId:$.string().min(1),predicate:$.string().min(1),evidenceSentenceIds:$.array(AT).min(1),confidence:$.number().min(0).max(1).optional(),note:$.string().optional()})});var Eu=i(()=>{"use strict";y();Me();An();Iu()});var GS=i(()=>{"use strict";An();Qt();Iu()});var ro=i(()=>{"use strict"});var jS=i(()=>{"use strict";ft();ro()});var vu=i(()=>{"use strict"});var US=i(()=>{"use strict";ft()});var Ru=i(()=>{"use strict"});var Cu=i(()=>{"use strict";ft();ro();US();Ru()});var BS=i(()=>{"use strict";Cu()});var HS=i(()=>{"use strict";Me()});var $S=i(()=>{"use strict";Tc();En();Ma()});import{z as M}from"zod";var JS,WT,DT,MT,due,cue,KS=i(()=>{"use strict";Ne();En();$S();JS=M.object({head:M.string().optional(),mode:M.enum(["full","head_tail"]).optional(),tail:M.string().optional(),text:M.string().optional()}).strict(),WT=M.object({quote:M.string().optional(),sentence_id:M.string().optional()}).strict(),DT=M.union([M.object({end_anchor:M.union([M.string(),JS]).optional(),quote:M.string().optional(),sentence_id:M.string().optional(),start_anchor:M.union([M.string(),JS]).optional()}).strict(),M.array(WT)]),MT=M.object({confidence:M.number().min(0).max(1).optional(),evidence:DT,predicate:M.string().min(1).max(64),sourceMentionId:M.string().min(1),targetMentionId:M.string().min(1)}).strict(),due=M.object({relations:M.array(MT)}).strict(),cue=new Bt});var zS=i(()=>{"use strict"});var QS=i(()=>{"use strict";KS();zS()});var XS=i(()=>{"use strict";QS();ro();Ru()});var Tu=i(()=>{"use strict";Y();vu()});var ZS=i(()=>{"use strict";ft();yt();Eu();jS();vu();BS();HS();XS();Tu()});var ew=i(()=>{"use strict"});var tw=i(()=>{"use strict";Eu();GS();ZS();Cu();Tu();ew()});var nw=i(()=>{"use strict";tw()});var di=i(()=>{"use strict";Y()});var _u=i(()=>{"use strict";yt()});var Pu=i(()=>{"use strict";Me();yt();Pn();di();_u()});var aw=i(()=>{"use strict";yt();di();Pu()});var Au=i(()=>{"use strict";ye();Z()});var sw=i(()=>{"use strict";ye();ar();at();Au();Z()});var dw=i(()=>{"use strict";Pn();ye();di();sw();Au();Z()});import{z as Xt}from"zod";var cw,Hle,uw=i(()=>{"use strict";cw=Xt.object({children:Xt.lazy(()=>Xt.array(cw)),uri:Xt.string().min(1),title:Xt.string().nullable().optional()}).strict(),Hle=Xt.object({chapters:Xt.array(cw)}).strict()});var lw=i(()=>{"use strict";Y()});var mw=i(()=>{"use strict";aw();di();Pu();dw();_u();uw();lw()});var pw=i(()=>{"use strict";hr()});var Ve=i(()=>{"use strict";xg();ct();rc();MS();nw();ct();qc();mw();pw();ka()});function Fw(t){if(t?.platform===void 0){al();return}Yt(t.platform)}function Gw(t){if(t.host?.storage!==void 0&&t.stateDir!==void 0)throw new TypeError("Wiki Graph SDK host.storage and stateDir cannot be used together.")}async function mo(t,e){return Gw(t),Fw(t.host),t.host?.storage!==void 0?await en(t.host.storage,e):await yi(t.stateDir,e)}var po=i(()=>{"use strict";go();ce()});async function Qw(t="global"){let e=await Gu(),n=Ze(),r=Date.now(),a=!1;try{await e.transaction(async()=>{await tP(e),await e.run(`
781
781
  INSERT OR IGNORE INTO gc_locks (
782
782
  scope, owner_id, owner_pid, heartbeat_at, created_at
783
783
  ) VALUES (?, ?, ?, ?, ?)
784
- `,[t,n,0,r,r]),a=await e.queryOne("SELECT owner_id FROM gc_locks WHERE scope = ?",[t],s=>E(s,"owner_id"))===n})}finally{await e.close()}if(!a)return;let o=setInterval(()=>{Q_(t,n).catch(()=>{})},z_);return async()=>{clearInterval(o);let s=await _u();try{await s.run("DELETE FROM gc_locks WHERE scope = ? AND owner_id = ?",[t,n])}finally{await s.close()}}}async function Q_(t,e){let n=await _u();try{await n.run(`
784
+ `,[t,n,0,r,r]),a=await e.queryOne("SELECT owner_id FROM gc_locks WHERE scope = ?",[t],s=>E(s,"owner_id"))===n})}finally{await e.close()}if(!a)return;let o=setInterval(()=>{eP(t,n).catch(()=>{})},Z_);return async()=>{clearInterval(o);let s=await Gu();try{await s.run("DELETE FROM gc_locks WHERE scope = ? AND owner_id = ?",[t,n])}finally{await s.close()}}}async function eP(t,e){let n=await Gu();try{await n.run(`
785
785
  UPDATE gc_locks
786
786
  SET heartbeat_at = ?, owner_pid = ?
787
787
  WHERE scope = ? AND owner_id = ?
788
- `,[Date.now(),0,t,e])}finally{await n.close()}}async function X_(t){let e=await t.queryAll("SELECT * FROM gc_locks",void 0,Z_);for(let{lock:n,scope:r}of e.filter(({lock:a})=>V_(a)))await t.run(`
788
+ `,[Date.now(),0,t,e])}finally{await n.close()}}async function tP(t){let e=await t.queryAll("SELECT * FROM gc_locks",void 0,iP);for(let{lock:n,scope:r}of e.filter(({lock:a})=>nP(a)))await t.run(`
789
789
  DELETE FROM gc_locks
790
790
  WHERE scope = ?
791
791
  AND owner_id = ?
792
792
  AND heartbeat_at = ?
793
- `,[r,n.ownerId,n.heartbeatAt])}function V_(t){return!(Date.now()-t.heartbeatAt<K_)}async function _u(){return await X("tmp/gc.sqlite",J_)}function Y_(t){return{createdAt:S(t,"created_at"),heartbeatAt:S(t,"heartbeat_at"),ownerId:E(t,"owner_id"),ownerPid:S(t,"owner_pid")}}function Z_(t){return{lock:Y_(t),scope:E(t,"scope")}}var J_,K_,z_,qw=i(()=>{"use strict";F();w();_();J_=`
793
+ `,[r,n.ownerId,n.heartbeatAt])}function nP(t){return!(Date.now()-t.heartbeatAt<Y_)}async function Gu(){return await X("tmp/gc.sqlite",V_)}function rP(t){return{createdAt:S(t,"created_at"),heartbeatAt:S(t,"heartbeat_at"),ownerId:E(t,"owner_id"),ownerPid:S(t,"owner_pid")}}function iP(t){return{lock:rP(t),scope:E(t,"scope")}}var V_,Y_,Z_,Xw=i(()=>{"use strict";F();w();P();V_=`
794
794
  CREATE TABLE IF NOT EXISTS gc_locks (
795
795
  scope TEXT PRIMARY KEY,
796
796
  owner_id TEXT NOT NULL,
@@ -798,8 +798,8 @@ CREATE TABLE IF NOT EXISTS gc_locks (
798
798
  heartbeat_at INTEGER NOT NULL,
799
799
  created_at INTEGER NOT NULL
800
800
  );
801
- `,K_=6e4,z_=2e4});async function Hw(t){let e=await R().library.getDirectory("tmp"),n=0,r=0,a=0;if(e===void 0)return{freedBytes:a,removed:r,scanned:n};for(let o of await tP(e)){n+=1;let s=await Ye(o.value);if(!t.force&&(s===void 0||t.now-s<eP))continue;let d=await pt(o.value);t.dryRun||await o.parent.remove(o.value.name,{recursive:!0}),r+=1,a+=d}return{freedBytes:a,removed:r,scanned:n}}async function tP(t){let e=[];for(let n of await t.list())if(U(n))for(let r of await n.list())e.push({parent:n,value:r});return e}var eP,$w=i(()=>{"use strict";y();Od();eP=3600*1e3});async function co(t={}){let e=Date.now(),n=await Bw();if(n===void 0)return{finishedAt:Date.now(),freedBytes:0,jobs:[],removed:0,scanned:0,skipped:!0,startedAt:e};try{if(t.opportunistic===!0&&!await aP(e))return{finishedAt:Date.now(),freedBytes:0,jobs:[],removed:0,scanned:0,skipped:!0,startedAt:e};let r={dryRun:t.dryRun===!0,force:t.force===!0,now:e},a=[];for(let s of nP)a.push(await iP(s,r));let o={finishedAt:Date.now(),freedBytes:Pu(a,"freedBytes"),jobs:a,removed:Pu(a,"removed"),scanned:Pu(a,"scanned"),skipped:!1,startedAt:e};return await oP(o.finishedAt).catch(()=>{}),o}finally{await n()}}async function iP(t,e){try{return{name:t.name,...await t.run(e)}}catch(n){return{error:en(n),freedBytes:0,name:t.name,removed:0,scanned:0}}}function Pu(t,e){return t.reduce((n,r)=>{let a=r[e];return n+(typeof a=="number"?a:0)},0)}async function aP(t){let e=await J(R().library,"tmp/gc.last-run"),n=Number((e===void 0?"":await ae(e).catch(()=>"")).trim());return!Number.isFinite(n)||t-n>=rP}async function oP(t){let e=await H(R().library,"tmp/gc.last-run");await me(e,`${t}
802
- `)}var nP,rP,Jw=i(()=>{"use strict";y();ct();Ve();Le();Ca();oc();pe();qw();$w();nP=[{name:"wikg-coordinator",run:wa},{name:"search-cache",run:Mi},{name:"library-index",run:Ef},{name:"build-queue",run:Ia},{name:"wikimedia-cache",run:ic},{name:"tmp",run:Hw}],rP=600*1e3});var Kw=i(()=>{"use strict";Jw()});var zw=i(()=>{"use strict";Kw()});var Qw={};Zw(Qw,{tryRunWikiGraphGc:()=>sP});async function sP(t={}){Un();let{stateDir:e,...n}=t;return await Zt(e,async()=>await co(n))}var Xw=i(()=>{"use strict";zw();de()});de();import{AsyncLocalStorage as G_}from"async_hooks";import{randomUUID as jfe}from"crypto";import{link as Bfe,mkdtemp as qfe,rename as Hfe,rm as $fe,stat as Jfe}from"fs/promises";import{tmpdir as zfe}from"os";import{basename as Xfe,dirname as Vfe,join as Yfe}from"path";import{Readable as eye}from"stream";Me();y();yi();import{z as qn}from"zod";var Rk=1,FP=qn.object({completedAt:qn.string().optional(),startedAt:qn.string(),status:qn.enum(["running","succeeded"]),version:qn.literal(Rk)});Ro();tn();et();Z();To();Fn();Ca();In();oc();ft();fc();Ve();ye();Le();_();at();ct();_();ar();_i();vi();Qt();y();nt();Je();lt();ut();vd();vi();Ca();hn();Qt();_();y();Le();y();w();w();y();w();y();ms();y();pe();Ve();Ve();Ve();Ve();Ve();yt();ft();_();Pn();y();import{createHash as ife}from"crypto";import{createReadStream as ofe}from"fs";import{rm as dfe}from"fs/promises";import{basename as ufe}from"path";import{createAnthropic as lhe}from"@ai-sdk/anthropic";import{createGoogleGenerativeAI as phe}from"@ai-sdk/google";import{createOpenAI as fhe}from"@ai-sdk/openai";import{createOpenAICompatible as ghe}from"@ai-sdk/openai-compatible";de();import{z as re}from"zod";import{AsyncLocalStorage as x_}from"async_hooks";var Rw=Symbol.for("wiki-graph-sdk.runtime-context.v1"),I_=E_();function E_(){let t=globalThis,e=t[Rw];if(e!==void 0)return e;let n=new x_;return Object.defineProperty(t,Rw,{configurable:!1,enumerable:!1,value:n,writable:!1}),n}async function vu(t,e){return await I_.run(t,e)}de();import{join as Rhe}from"path";import{homedir as The}from"os";var R_=["anthropic","google","openai","openai-compatible"],Cw=re.enum(R_),Ohe=re.object({apiKey:re.string().min(1).optional(),baseURL:re.string().min(1).optional(),baseUrl:re.string().min(1).optional(),chatCompletionsUrl:re.string().min(1).optional(),llm:re.object({apiKey:re.string().min(1).optional(),baseURL:re.string().min(1).optional(),baseUrl:re.string().min(1).optional(),chatCompletionsUrl:re.string().min(1).optional(),model:re.string().min(1).optional(),name:re.string().min(1).optional(),provider:Cw.optional()}).optional(),model:re.string().min(1).optional(),name:re.string().min(1).optional(),provider:Cw.optional()});import{homedir as Mhe}from"os";import{isAbsolute as Ghe,resolve as jhe}from"path";import{realpath as Hhe,stat as $he}from"fs/promises";import{basename as Khe,dirname as zhe,isAbsolute as Qhe,join as Xhe,relative as Vhe,resolve as Yhe}from"path";de();de();import{embed as kfe,embedMany as xfe}from"ai";import{createOpenAI as Efe}from"@ai-sdk/openai";import{createOpenAICompatible as Rfe}from"@ai-sdk/openai-compatible";import{spawn as fye}from"child_process";import{streamText as Pye}from"ai";Ve();de();var M_=["WIKIGRAPH_DEV","WIKIGRAPH_ENV_POLICY","WIKIGRAPH_QUEUE_DISABLE_AUTOSTART","WIKIGRAPH_STATE_DIR"];function Nw(t){let e=F_(t.env);if(t.envPolicy==="production"){let o=M_.filter(s=>e[s]!==void 0);if(o.length>0)throw new Error(`Wiki Graph production entries do not support runtime env overrides: ${o.join(", ")}. Use the development entry or explicit SDK options instead.`);return{env:e,envPolicy:t.envPolicy,stateDir:t.stateDir}}let n=e.WIKIGRAPH_DEV??e.WIKIGRAPH_STATE_DIR,r=Ow(t.stateDir??n);if(r===void 0)throw new Error("Wiki Graph development entries require an explicit runtime state directory.");let a=Ow(t.devProjectRoot);if(a===void 0)throw new Error("Wiki Graph development entries require an explicit project root.");return{devProjectRoot:a,env:e,envPolicy:t.envPolicy,stateDir:r}}function F_(t){return t===void 0?{...process.env}:{...process.env,...t}}function Ow(t){if(!(t===void 0||t.trim()===""))return t}de();de();import{mkdir as Age}from"fs/promises";var Dge=64*1024;de();import{basename as jge}from"path";de();de();var j_=new G_;async function Ww(t,e){return await j_.run(t,async()=>await vu({cwd:t.cwd,env:t.env,envPolicy:t.envPolicy,providers:{},...t.stateDir===void 0?{}:{stateDir:t.stateDir}},e))}var Dw="--wikigraph-internal-child",Mw="--wikigraph-dev-project-root",Fw="--wikigraph-env-policy",Gw="--wikigraph-state-dir";async function jw(t,e){let n=U_(process.argv.slice(2));if(n.internalChild!==t)throw new Error("This Wiki Graph worker entry is internal.");let r=Nw({argv:n.argv,devProjectRoot:n.devProjectRoot,envPolicy:n.envPolicy,stateDir:n.stateDir});return await Zt(r.stateDir,async()=>Ww({argv:n.argv,cwd:process.cwd(),devProjectRoot:r.devProjectRoot,env:r.env,envPolicy:r.envPolicy,exitCode:0,queueAutostart:!1,stateDir:r.stateDir,stderr:process.stderr,stdin:process.stdin,stdout:process.stdout},async()=>await e(n)))}function U_(t){let e=[],n,r,a="production",o;for(let s=0;s<t.length;s+=1){let d=t[s];if(d===Dw){if(s+1>=t.length)throw new Error(`${Dw} requires a value.`);n=t[s+1],s+=1;continue}if(d===Fw){let c=t[s+1];if(c!=="development"&&c!=="production")throw new Error(`${Fw} requires development or production.`);a=c,s+=1;continue}if(d===Mw){let c=t[s+1];if(c===void 0||c.trim()==="")throw new Error(`${Mw} requires a value.`);r=c,s+=1;continue}if(d!==Gw){e.push(d);continue}if(s+1>=t.length)throw new Error(`${Gw} requires a value.`);o=t[s+1],s+=1}return{argv:e,devProjectRoot:r,envPolicy:a,internalChild:n??"",stateDir:o}}var B_={command:`${"wg"} --help`,config:`${"wg"} help config`,format:`${"wg"} help format`,readiness:`${"wg"} help readiness`,root:`${"wg"} --help`,runtime:`${"wg"} help runtime`,uri:`${"wg"} help uri`};import{extname as Jbe}from"path";import{createReadStream as eSe}from"fs";import{mkdtemp as nSe,rm as rSe}from"fs/promises";import{join as aSe}from"path";import{tmpdir as sSe}from"os";var q_=new Map(["at","seq","uri","id","jobId","type","target","label","labels","title","state","name","qid","predicate","subjectLabel","objectLabel","subjectQid","objectQid","score","queueRank","chapter","chapterId","fragment","fragmentId","position","range","start","end","shown","total","count","mentionCount","nodeCount","edgeCount","summaryCount","limit","order","match","lens","terms","types","chapters","query","objects","items","nextCursor","archiveKey","archivePath","workspacePath","eventsPath","createdAt","updatedAt","finishedAt","currentStep","step","phase","phaseDetail","phaseDone","phaseTotal","phaseUnit","words","totalWords","outputTokens","authors","language","identifier","publisher","publishedAt","sourceFormat","snippet","summary","description","recommendation","risk","error","message","children","nodes","links","neighbors","incoming","outgoing","nodeGroups","sourceFragments","sources","tree","meta","evidence","content","source","text","prompt","llmJSON","errorJSON"].map((t,e)=>[t,e]));function Uw(t){return`${JSON.stringify(Tu(t),null,2)}
803
- `}function Tu(t){if(t===null||typeof t=="boolean"||typeof t=="number"||typeof t=="string")return t;if(Array.isArray(t))return t.map(e=>Tu(e)??null);if(typeof t=="object")return H_(t)}function H_(t){let e=Object.entries(t).map(([r,a],o)=>({index:o,key:r,priority:q_.get(r)??Number.MAX_SAFE_INTEGER,value:a})),n={};for(let r of e.sort((a,o)=>a.priority-o.priority||a.index-o.index)){let a=Tu(r.value);a!==void 0&&(n[r.key]=a)}return n}import{homedir as ySe}from"os";import{isAbsolute as bSe,relative as SSe,resolve as wSe}from"path";import{existsSync as vSe,readFileSync as RSe}from"fs";import{dirname as TSe,join as _Se,parse as PSe,resolve as ASe}from"path";Un();var{tryRunWikiGraphGc:dP}=await Promise.resolve().then(()=>(Xw(),Qw));async function cP(){await jw("gc-worker",async({argv:t})=>{let e=uP(t);process.stdout.write(Uw(await dP({dryRun:e.dryRun,force:e.force})))})}function uP(t){return{dryRun:t.includes("--dry-run"),force:t.includes("--force")}}cP().catch(t=>{process.stderr.write(`${t instanceof Error?t.stack??t.message:String(t)}
801
+ `,Y_=6e4,Z_=2e4});async function Vw(t){let e=await R().library.getDirectory("tmp"),n=0,r=0,a=0;if(e===void 0)return{freedBytes:a,removed:r,scanned:n};for(let o of await oP(e)){n+=1;let s=await Ye(o.value);if(!t.force&&(s===void 0||t.now-s<aP))continue;let d=await pt(o.value);t.dryRun||await o.parent.remove(o.value.name,{recursive:!0}),r+=1,a+=d}return{freedBytes:a,removed:r,scanned:n}}async function oP(t){let e=[];for(let n of await t.list())if(U(n))for(let r of await n.list())e.push({parent:n,value:r});return e}var aP,Yw=i(()=>{"use strict";y();Bd();aP=3600*1e3});async function ho(t={}){let e=Date.now(),n=await Qw();if(n===void 0)return{finishedAt:Date.now(),freedBytes:0,jobs:[],removed:0,scanned:0,skipped:!0,startedAt:e};try{if(t.opportunistic===!0&&!await uP(e))return{finishedAt:Date.now(),freedBytes:0,jobs:[],removed:0,scanned:0,skipped:!0,startedAt:e};let r={dryRun:t.dryRun===!0,force:t.force===!0,now:e},a=[];for(let s of sP)a.push(await cP(s,r));let o={finishedAt:Date.now(),freedBytes:ju(a,"freedBytes"),jobs:a,removed:ju(a,"removed"),scanned:ju(a,"scanned"),skipped:!1,startedAt:e};return await lP(o.finishedAt).catch(()=>{}),o}finally{await n()}}async function cP(t,e){try{return{name:t.name,...await t.run(e)}}catch(n){return{error:tn(n),freedBytes:0,name:t.name,removed:0,scanned:0}}}function ju(t,e){return t.reduce((n,r)=>{let a=r[e];return n+(typeof a=="number"?a:0)},0)}async function uP(t){let e=await J(R().library,"tmp/gc.last-run"),n=Number((e===void 0?"":await ae(e).catch(()=>"")).trim());return!Number.isFinite(n)||t-n>=dP}async function lP(t){let e=await H(R().library,"tmp/gc.last-run");await me(e,`${t}
802
+ `)}var sP,dP,Zw=i(()=>{"use strict";y();ct();Ve();Le();Pa();yc();pe();Xw();Yw();sP=[{name:"wikg-coordinator",run:Ia},{name:"search-cache",run:ji},{name:"library-index",run:_f},{name:"build-queue",run:Ra},{name:"wikimedia-cache",run:hc},{name:"tmp",run:Vw}],dP=600*1e3});var ek=i(()=>{"use strict";Zw()});var tk=i(()=>{"use strict";ek()});var nk={};ok(nk,{tryRunWikiGraphGc:()=>mP});async function mP(t={}){let{host:e,stateDir:n,...r}=t;return await mo({...e===void 0?{}:{host:e},...n===void 0?{}:{stateDir:n}},async()=>await ho(r))}var rk=i(()=>{"use strict";tk();po()});ce();import{AsyncLocalStorage as H_}from"async_hooks";import{randomUUID as zfe}from"crypto";import{link as Xfe,mkdtemp as Vfe,rename as Yfe,rm as Zfe,stat as eye}from"fs/promises";import{tmpdir as nye}from"os";import{basename as iye,dirname as aye,join as oye}from"path";import{Readable as dye}from"stream";Me();y();gi();import{z as Bn}from"zod";var Lk=1,BP=Bn.object({completedAt:Bn.string().optional(),startedAt:Bn.string(),status:Bn.enum(["running","succeeded"]),version:Bn.literal(Lk)});Ao();nn();et();Z();Oo();Gn();Pa();En();yc();ft();vc();Ve();ye();Le();P();at();ct();P();ar();Pi();Ri();Qt();y();nt();Je();lt();ut();Wd();Ri();Pa();fn();Qt();P();y();Le();y();w();w();y();w();y();ys();y();pe();Ve();Ve();Ve();Ve();Ve();yt();ft();P();An();y();import{createHash as mfe}from"crypto";import{createReadStream as hfe}from"fs";import{rm as yfe}from"fs/promises";import{basename as bfe}from"path";import{createAnthropic as She}from"@ai-sdk/anthropic";import{createGoogleGenerativeAI as khe}from"@ai-sdk/google";import{createOpenAI as Ihe}from"@ai-sdk/openai";import{createOpenAICompatible as vhe}from"@ai-sdk/openai-compatible";ce();import{z as re}from"zod";import{AsyncLocalStorage as T_}from"async_hooks";var Aw=Symbol.for("wiki-graph-sdk.runtime-context.v1"),__=P_();function P_(){let t=globalThis,e=t[Aw];if(e!==void 0)return e;let n=new T_;return Object.defineProperty(t,Aw,{configurable:!1,enumerable:!1,value:n,writable:!1}),n}async function Wu(t,e){return await __.run(t,e)}ce();import{join as Nhe}from"path";import{homedir as Dhe}from"os";var L_=["anthropic","google","openai","openai-compatible"],Lw=re.enum(L_),Uhe=re.object({apiKey:re.string().min(1).optional(),baseURL:re.string().min(1).optional(),baseUrl:re.string().min(1).optional(),chatCompletionsUrl:re.string().min(1).optional(),llm:re.object({apiKey:re.string().min(1).optional(),baseURL:re.string().min(1).optional(),baseUrl:re.string().min(1).optional(),chatCompletionsUrl:re.string().min(1).optional(),model:re.string().min(1).optional(),name:re.string().min(1).optional(),provider:Lw.optional()}).optional(),model:re.string().min(1).optional(),name:re.string().min(1).optional(),provider:Lw.optional()});import{homedir as $he}from"os";import{isAbsolute as Khe,resolve as zhe}from"path";import{realpath as Yhe,stat as Zhe}from"fs/promises";import{basename as tfe,dirname as nfe,isAbsolute as rfe,join as ife,relative as afe,resolve as ofe}from"path";ce();ce();import{embed as _fe,embedMany as Pfe}from"ai";import{createOpenAI as Lfe}from"@ai-sdk/openai";import{createOpenAICompatible as Nfe}from"@ai-sdk/openai-compatible";import{spawn as Iye}from"child_process";import{streamText as Fye}from"ai";Ve();ce();po();var q_=["WIKIGRAPH_DEV","WIKIGRAPH_ENV_POLICY","WIKIGRAPH_QUEUE_DISABLE_AUTOSTART","WIKIGRAPH_STATE_DIR"];function Uw(t){let e=B_(t.env);if(t.envPolicy==="production"){let o=q_.filter(s=>e[s]!==void 0);if(o.length>0)throw new Error(`Wiki Graph production entries do not support runtime env overrides: ${o.join(", ")}. Use the development entry or explicit SDK options instead.`);return{env:e,envPolicy:t.envPolicy,stateDir:t.stateDir}}let n=e.WIKIGRAPH_DEV??e.WIKIGRAPH_STATE_DIR,r=jw(t.stateDir??n);if(r===void 0)throw new Error("Wiki Graph development entries require an explicit runtime state directory.");let a=jw(t.devProjectRoot);if(a===void 0)throw new Error("Wiki Graph development entries require an explicit project root.");return{devProjectRoot:a,env:e,envPolicy:t.envPolicy,stateDir:r}}function B_(t){return t===void 0?{...process.env}:{...process.env,...t}}function jw(t){if(!(t===void 0||t.trim()===""))return t}ce();ce();import{mkdir as Bge}from"fs/promises";var zge=64*1024;ce();import{basename as Yge}from"path";ce();po();var $_=new H_;async function qw(t,e){return await $_.run(t,async()=>await Wu({cwd:t.cwd,env:t.env,envPolicy:t.envPolicy,providers:{},...t.stateDir===void 0?{}:{stateDir:t.stateDir}},e))}var Bw="--wikigraph-internal-child",Hw="--wikigraph-dev-project-root",$w="--wikigraph-env-policy",Jw="--wikigraph-state-dir";async function Kw(t,e){let n=J_(process.argv.slice(2));if(n.internalChild!==t)throw new Error("This Wiki Graph worker entry is internal.");let r=Uw({argv:n.argv,devProjectRoot:n.devProjectRoot,envPolicy:n.envPolicy,stateDir:n.stateDir});return await yi(r.stateDir,async()=>qw({argv:n.argv,cwd:process.cwd(),devProjectRoot:r.devProjectRoot,env:r.env,envPolicy:r.envPolicy,exitCode:0,queueAutostart:!1,stateDir:r.stateDir,stderr:process.stderr,stdin:process.stdin,stdout:process.stdout},async()=>await e(n)))}function J_(t){let e=[],n,r,a="production",o;for(let s=0;s<t.length;s+=1){let d=t[s];if(d===Bw){if(s+1>=t.length)throw new Error(`${Bw} requires a value.`);n=t[s+1],s+=1;continue}if(d===$w){let c=t[s+1];if(c!=="development"&&c!=="production")throw new Error(`${$w} requires development or production.`);a=c,s+=1;continue}if(d===Hw){let c=t[s+1];if(c===void 0||c.trim()==="")throw new Error(`${Hw} requires a value.`);r=c,s+=1;continue}if(d!==Jw){e.push(d);continue}if(s+1>=t.length)throw new Error(`${Jw} requires a value.`);o=t[s+1],s+=1}return{argv:e,devProjectRoot:r,envPolicy:a,internalChild:n??"",stateDir:o}}var K_={command:`${"wg"} --help`,config:`${"wg"} help config`,format:`${"wg"} help format`,readiness:`${"wg"} help readiness`,root:`${"wg"} --help`,runtime:`${"wg"} help runtime`,uri:`${"wg"} help uri`};import{extname as iSe}from"path";import{createReadStream as mSe}from"fs";import{mkdtemp as hSe,rm as fSe}from"fs/promises";import{join as gSe}from"path";import{tmpdir as SSe}from"os";var z_=new Map(["at","seq","uri","id","jobId","type","target","label","labels","title","state","name","qid","predicate","subjectLabel","objectLabel","subjectQid","objectQid","score","queueRank","chapter","chapterId","fragment","fragmentId","position","range","start","end","shown","total","count","mentionCount","nodeCount","edgeCount","summaryCount","limit","order","match","lens","terms","types","chapters","query","objects","items","nextCursor","archiveKey","archivePath","workspacePath","eventsPath","createdAt","updatedAt","finishedAt","currentStep","step","phase","phaseDetail","phaseDone","phaseTotal","phaseUnit","words","totalWords","outputTokens","authors","language","identifier","publisher","publishedAt","sourceFormat","snippet","summary","description","recommendation","risk","error","message","children","nodes","links","neighbors","incoming","outgoing","nodeGroups","sourceFragments","sources","tree","meta","evidence","content","source","text","prompt","llmJSON","errorJSON"].map((t,e)=>[t,e]));function zw(t){return`${JSON.stringify(Fu(t),null,2)}
803
+ `}function Fu(t){if(t===null||typeof t=="boolean"||typeof t=="number"||typeof t=="string")return t;if(Array.isArray(t))return t.map(e=>Fu(e)??null);if(typeof t=="object")return Q_(t)}function Q_(t){let e=Object.entries(t).map(([r,a],o)=>({index:o,key:r,priority:z_.get(r)??Number.MAX_SAFE_INTEGER,value:a})),n={};for(let r of e.sort((a,o)=>a.priority-o.priority||a.index-o.index)){let a=Fu(r.value);a!==void 0&&(n[r.key]=a)}return n}import{homedir as TSe}from"os";import{isAbsolute as PSe,relative as ASe,resolve as LSe}from"path";import{existsSync as MSe,readFileSync as FSe}from"fs";import{dirname as jSe,join as USe,parse as qSe,resolve as BSe}from"path";il();var{tryRunWikiGraphGc:pP}=await Promise.resolve().then(()=>(rk(),nk));async function hP(){await Kw("gc-worker",async({argv:t})=>{let e=fP(t);process.stdout.write(zw(await pP({dryRun:e.dryRun,force:e.force})))})}function fP(t){return{dryRun:t.includes("--dry-run"),force:t.includes("--force")}}hP().catch(t=>{process.stderr.write(`${t instanceof Error?t.stack??t.message:String(t)}
804
804
  `),process.exitCode=1});
805
805
  //# sourceMappingURL=gc-worker.js.map