wiki-graph 0.9.3 → 0.9.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +486 -486
- package/dist/cli.js.map +1 -1
- package/dist/gc-worker.js +55 -55
- package/dist/gc-worker.js.map +1 -1
- package/dist/queue-worker.js +479 -479
- package/dist/queue-worker.js.map +1 -1
- package/package.json +3 -3
package/dist/gc-worker.js
CHANGED
|
@@ -3,23 +3,23 @@ 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 Rk=Object.defineProperty;var i=(t,e)=>()=>(t&&(e=t(t=0)),e);var Ck=(t,e)=>{for(var n in e)Rk(t,n,{get:e[n],enumerable:!0})};async function bi(t){let e=await t.openReader();try{return e.size}finally{await e.close()}}async function nt(t){return await bi(t)===0}async function te(t){return new TextDecoder().decode(await It(t))}async function It(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 ce(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(K(t)){let e=0;for(let n of await t.list())e+=await Ie(n);return e}return await bi(t)}async function rt(t){return await t.getLastModified?.()}function K(t){return t.kind==="directory"}var il=i(()=>{"use strict"});function nn(t){rn().installedPlatform=t}function A(){let{installedPlatform:t}=rn();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 vt(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 ee(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 ve(t,e){let n=Co(e),r=t;for(let a of n){let o=await r.getDirectory(a);if(!o)return;r=o}return r}async function H(t,e){let n=Co(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 q(t,e){let n=Co(e),r=n.pop();if(!r)throw new TypeError("File name must remain relative");let a=await H(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 Co(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 rn(){let t=globalThis,e=t[al];if(e!==void 0)return e;let n={storageContext:new Ro};return Object.defineProperty(t,al,{configurable:!1,enumerable:!1,value:n,writable:!1}),n}function ki(t){rn().installedStorage=t}async function an(t,e){return t===void 0?await e():await rn().storageContext.run(t,e)}function C(){let{installedStorage:t,storageContext:e}=rn(),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 al,Ro,b=i(()=>{"use strict";il();al=Symbol.for("wiki-graph-core.runtime.v1");Ro=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}=rn();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 xi(t){if(_k.test(t))throw new Error(`invalid template name ${t}`);let n=t.replace(Pk,"").replace(Tk,"");if(n.split("/").includes(".."))throw new Error(`invalid template name ${t}`);return`${n}.jinja`}var Tk,_k,Pk,Hn=i(()=>{"use strict";b();Tk=/\.jinja$/iu,_k=/^\.+\//u,Pk=/^\/+/u});var To=i(()=>{"use strict";b();Hn()});import*as dl from"async_hooks";import*as cl from"crypto";import*as on from"fs";import*as D from"fs/promises";import*as ul from"os";import*as W from"path";import*as No from"process";import{Readable as Do,Writable as Ak}from"stream";import{pipeline as Lk}from"stream/promises";import*as Wo from"sqlite3";import*as vi from"yauzl";import*as ll from"yazl";import{Environment as Ok,Loader as Nk}from"nunjucks";async function ol(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 ml(t,e,n){if(pl(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 pl(t){if(!Number.isSafeInteger(t)||t<0)throw new RangeError("File offset must be a non-negative safe integer")}function hl(t,e){return`node-${t}:${Buffer.from(W.resolve(e),"utf8").toString("base64url")}`}function _o(t,e){let n=`node-${e}:`;if(!t.startsWith(n))return W.isAbsolute(t)?t:void 0;try{return Buffer.from(t.slice(n.length),"base64url").toString("utf8")}catch{return}}function $n(t){if(t.length===0||t==="."||t===".."||W.isAbsolute(t)||t.includes("/")||t.includes("\\"))throw new TypeError(`Directory child must be a relative name: ${t}`)}async function Dk(t,e){let n=(e.mode==="readonly"?Jn.OPEN_READONLY:Jn.OPEN_READWRITE|(e.create?Jn.OPEN_CREATE:0))|Jn.OPEN_FULLMUTEX;return new Ao(await Wk(t,n))}async function Wk(t,e){let n=fl(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 Mk(t,e={}){let n=fl(t,"file");if(n===void 0)throw new TypeError("The Node ZIP adapter requires a NodeFile");let r=await D.open(n,"r"),a;try{a=(await r.stat()).size}catch(f){throw await r.close(),f}let o=()=>new Promise((f,w)=>{vi.fromRandomAccessReader(new Lo(r),a,{autoClose:!1,lazyEntries:!0},(p,S)=>{p||S===void 0?w(p??new Error("Cannot open ZIP")):f(S)})});try{(await o()).close()}catch(f){throw await r.close(),f}let s=!1,d=Promise.resolve(),c,u=f=>{if(s)return Promise.reject(new Error("Cannot read a closed ZIP archive"));let w=d.then(async()=>{let p=await o();try{return await f(p)}finally{p.close()}});return d=w.then(()=>{},()=>{}),w},m=(f,w)=>u(async p=>{let S,g,v=!1;if(await Ei(p,R=>{R.fileName===f&&(S=R),sl(R.fileName)===f&&(g!==void 0&&g.fileName!==R.fileName&&(v=!0),g=R)}),(S===void 0||e.entryNameMode==="normalized")&&v){let R=-1,U=await o();try{return await Ei(U,async O=>{if(sl(O.fileName)!==f)return;let N=await o(),V=0;try{await Ei(N,Fe=>{if(Fe.fileName===O.fileName)return!1;V++})}finally{N.close()}V>=R&&(R=V,g=O)}),await w(U,g)}finally{U.close()}}return await w(p,e.entryNameMode==="normalized"?g:S??g)});return{close:()=>(s=!0,c??=d.then(()=>r.close()),c),copyEntry:(f,w)=>m(f,async(p,S)=>S===void 0?!1:(await Fk(p,S,w),!0)),getEntrySize:f=>m(f,(w,p)=>Promise.resolve(p?.uncompressedSize)),listEntries:()=>u(async f=>{let w=new Set;return await Ei(f,p=>{w.add(p.fileName)}),[...w]}),readEntryRange:(f,w,p)=>m(f,async(S,g)=>{if(g!==void 0)return await jk(S,g,w,p)}),readEntry:f=>m(f,async(w,p)=>{if(p!==void 0)return await Gk(w,p)})}}function sl(t){let e=t.replaceAll("\\","/").trim().split("/").filter(n=>n!==""&&n!==".").join("/");return e.split("/").includes("..")?void 0:e}async function Ei(t,e){await new Promise((n,r)=>{let a=()=>{t.off("entry",d),t.off("end",s),t.off("error",o)},o=c=>{a(),r(c)},s=()=>{a(),n()},d=c=>{Promise.resolve().then(()=>c.fileName.endsWith("/")?void 0:e(c)).then(u=>{u===!1?s():t.readEntry()}).catch(u=>o(u instanceof Error?u:new Error("Cannot scan ZIP",{cause:u})))};t.on("entry",d),t.once("end",s),t.once("error",o),t.readEntry()})}async function Fk(t,e,n){let r=await n.openWriter();try{let a=await Ii(t,e);await yl(a,r),await r.commit()}catch(a){throw await r.abort().catch(()=>{}),a}}async function Gk(t,e){return await gl(await Ii(t,e))}async function jk(t,e,n,r){if(ml(n,r,e.uncompressedSize),r===0)return new Uint8Array;if(e.compressionMethod!==0){let o=await Uk(await Ii(t,e),n,r);return new Uint8Array(o.buffer,o.byteOffset,o.byteLength)}let a=await gl(await Ii(t,e,{decompress:null,decrypt:null,end:n+r,start:n}));return new Uint8Array(a.buffer,a.byteOffset,a.byteLength)}async function Uk(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 Ii(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 qk(t,e){let n=new ll.ZipFile,r=await t.openWriter(),a=n.outputStream,o=yl(a,r),s={cancelled:!1,complete:!1},d;try{d=Jk(e);let c=Bk(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&&Kk(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 Bk(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(Hk(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($k(r.value),r.value.name,{compress:!1,size:r.value.size})}}function Hk(t){return Do.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 fl(t,e){if(typeof t!="object"||t===null)return;let n=t;return n[Mo]===e&&typeof n.path=="string"?n.path:void 0}function $k(t){return Do.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 Jk(t){let e=t[Symbol.asyncIterator];return e===void 0?t[Symbol.iterator]():e.call(t)}function Kk(t){if(t.return!==void 0)try{Promise.resolve(t.return()).catch(()=>{})}catch{}}async function yl(t,e){await Lk(t,new Ak({write:(n,r,a)=>{e.write(n).then(()=>a(),o=>a(o instanceof Error?o:new Error("Cannot stream ZIP archive")))}}))}async function gl(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 zk(){let t=globalThis.__WIKIGRAPH_DATA_DIR__;if(typeof t=="string"&&t!=="")return t;let e=Po.cwd();for(;;){for(let r of[W.join(e,"data"),W.join(e,"packages","core","data")])try{if(on.statSync(r).isDirectory())return r}catch{}let n=W.dirname(e);if(n===e)throw new Error("Could not locate data directory");e=n}}function Fo(t=W.join(ul.homedir(),".wikigraph")){let e=typeof t=="string"?t:t.libraryRoot,n=typeof t=="string"?W.join(t,"documents"):t.documentStoreRoot;return{library:new Re(e),documentStore:new Re(n)}}function wl(t){nn(bl),ki(Fo(t))}function Sl(){try{A()}catch{nn(bl)}try{C()}catch{ki(Fo())}}async function Ri(t,e){return await an(t===void 0?void 0:Fo(t),e)}var Po,Jn,Mo,se,Re,Ao,Lo,bl,Oo,ue=i(()=>{"use strict";To();Po=No.default??No,Jn=Wo.default??Wo,Mo=Symbol.for("wiki-graph-sdk.node-resource.v1"),se=class{constructor(e,n=W.basename(e)){this.path=e;this.identity=hl("file",e),this.name=n}path;async getPhysicalIdentity(){let e=await D.stat(this.path).catch(n=>{if(!(typeof n=="object"&&n!==null&&"code"in n&&n.code==="ENOENT"))throw n});if(e!==void 0)return`${e.dev}:${e.ino}`}kind="file";[Mo]="file";identity;name;async openReader(){let e=await D.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");ml(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 D.stat(this.path)).mtimeMs}catch(e){if(typeof e=="object"&&e!==null&&"code"in e&&e.code==="ENOENT")return;throw e}}async openWriter(){await D.mkdir(W.dirname(this.path),{recursive:!0});let e=`${this.path}.tmp-${cl.randomUUID()}`,n=await D.open(e,"wx"),r=!1;return{write:async a=>{if(r)throw new Error("Cannot write to a closed FileWriter");await ol(n,a)},writeAt:async(a,o)=>{if(r)throw new Error("Cannot write to a closed FileWriter");pl(a),await ol(n,o,a)},commit:async()=>{r||(await n.close(),await D.rename(e,this.path)),r=!0},abort:async()=>{r||(await n.close(),await D.rm(e,{force:!0})),r=!0}}}};Re=class t{constructor(e){this.path=e;this.identity=hl("directory",e),this.name=W.basename(e)}path;async getPhysicalIdentity(){let e=await D.stat(this.path).catch(n=>{if(!(typeof n=="object"&&n!==null&&"code"in n&&n.code==="ENOENT"))throw n});if(e!==void 0)return`${e.dev}:${e.ino}`}kind="directory";[Mo]="directory";identity;name;async getFile(e){$n(e);let n=new se(W.join(this.path,e));try{return(await D.stat(n.path)).isFile()?n:void 0}catch(r){if(typeof r=="object"&&r!==null&&"code"in r&&(r.code==="ENOENT"||r.code==="ENOTDIR"))return;throw r}}async getLastModified(){try{return(await D.stat(this.path)).mtimeMs}catch(e){if(typeof e=="object"&&e!==null&&"code"in e&&e.code==="ENOENT")return;throw e}}async getDirectory(e){$n(e);let n=new t(W.join(this.path,e));try{return(await D.stat(n.path)).isDirectory()?n:void 0}catch(r){if(typeof r=="object"&&r!==null&&"code"in r&&(r.code==="ENOENT"||r.code==="ENOTDIR"))return;throw r}}async list(){return(await D.readdir(this.path,{withFileTypes:!0})).map(n=>n.isDirectory()?new t(W.join(this.path,n.name)):new se(W.join(this.path,n.name),n.name))}async createFile(e){$n(e),await D.mkdir(this.path,{recursive:!0});let n=new se(W.join(this.path,e));return await D.writeFile(n.path,"",{flag:"wx"}),n}async createDirectory(e){$n(e),await D.mkdir(this.path,{recursive:!0});let n=new t(W.join(this.path,e));return await D.mkdir(n.path),n}async remove(e,n){$n(e),await D.rm(W.join(this.path,e),{force:!0,recursive:n?.recursive===!0})}};Ao=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()})})}};Lo=class extends vi.RandomAccessReader{constructor(n){super();this.handle=n}handle;read(n,r,a,o,s){let d=c=>{if(c===a){s(null);return}on.read(this.handle.fd,n,r+c,a-c,o+c,(u,m)=>{u?s(u):m===0?s(new Error("Unexpected end of ZIP file")):d(c+m)})};d(0)}_readStreamForRange(n,r){let a=this.handle;return Do.from((async function*(){for(let o=n;o<r;){let s=Buffer.allocUnsafe(Math.min(65536,r-o)),{bytesRead:d}=await a.read(s,0,s.length,o);if(d===0)return;o+=d,yield s.subarray(0,d)}})())}};bl={asyncContext:{create:()=>new dl.AsyncLocalStorage},database:{open:Dk},lifecycle:{instanceId:`node-process:${Po.pid}`,isInstanceAlive:t=>{let e=/^node-process:(\d+)$/u.exec(t);if(e===null)return Promise.resolve(void 0);try{return Po.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=_o(t,"directory");return Promise.resolve(e===void 0?void 0:new Re(e))},getFile:t=>{let e=_o(t,"file");return Promise.resolve(e===void 0?void 0:new se(e))},resolveLegacyDirectory:t=>{let e=_o(t,"directory");return Promise.resolve(e===void 0?void 0:new Re(e))}},templates:{createEnvironment:t=>new Ok(new Oo,t)},zip:{open:Mk,write:qk}},Oo=class extends Nk{#e;constructor(e){super(),this.#e=e}getSource(e){let n=xi(e),r=W.join(this.#e??zk(),n);return{noCache:!1,path:n,src:on.readFileSync(r,"utf8")}}}});var Ge=i(()=>{"use strict"});function kl(t){return new TextEncoder().encode(t)}function it(t){let e="";for(let n of t)e+=n.toString(16).padStart(2,"0");return e}var he=i(()=>{"use strict"});import{sha1 as Qk}from"@noble/hashes/legacy.js";import{sha256 as Xk,sha512 as Vk}from"@noble/hashes/sha2.js";function oe(t){let e=Yk(t);return{update(n){return e.update(typeof n=="string"?kl(n):n),this},digest(n){let r=e.digest();return n==="hex"?it(r):r}}}function sn(t){let e=new Uint8Array(t);return globalThis.crypto.getRandomValues(e),e}function at(){if(typeof globalThis.crypto.randomUUID=="function")return globalThis.crypto.randomUUID();let t=sn(16);t[6]=t[6]&15|64,t[8]=t[8]&63|128;let e=it(t);return`${e.slice(0,8)}-${e.slice(8,12)}-${e.slice(12,16)}-${e.slice(16,20)}-${e.slice(20)}`}function Yk(t){switch(t){case"sha1":return Qk.create();case"sha256":return Xk.create();case"sha512":return Vk.create()}}var M=i(()=>{"use strict";he()});var Ci=i(()=>{"use strict";M()});var El=i(()=>{"use strict";b()});var Il=i(()=>{"use strict";El()});var vl=i(()=>{"use strict"});function ot(t){return t instanceof Error}function dn(t){let e=[],n=new Set,r=t;for(;r!==void 0&&!n.has(r);){if(n.add(r),r instanceof Error){Rl(e,ix(r)),r=r.cause;continue}Rl(e,String(r));break}return e.join(": ")}function ix(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&&ax(n)?`${t.name} (${r})`:n===""?t.name:r===void 0?n:`${n} (${r})`}function ax(t){return/(?:^|[\s:'"(=])\/(?:[^\s/]+\/)*[^\s/]+/u.test(t)||/(?:^|[\s:'"(=])[A-Za-z]:[\\/]/u.test(t)||/\bfile:\/\//iu.test(t)}function Rl(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 fe=i(()=>{"use strict";b()});var Cl=i(()=>{"use strict";fe()});var Tl=i(()=>{"use strict"});import{APICallError as HA}from"ai";var _l=i(()=>{"use strict";b()});var st=i(()=>{"use strict";b()});var Rt,zn=i(()=>{"use strict";Rt=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 jo=i(()=>{"use strict";st()});var Uo=i(()=>{"use strict"});var Pl=i(()=>{"use strict";b()});var qo=i(()=>{"use strict"});import{generateText as gL,streamText as bL}from"ai";var Ll=i(()=>{"use strict";Il();vl();Cl();Tl();_l();st();Hn();zn();Ci();fe();jo();Uo();Pl();qo()});var Ol=i(()=>{"use strict";Ll()});var Ho=i(()=>{"use strict";Ol();jo();Uo();qo()});var cx,$o,Nl,cn=i(()=>{"use strict";cx=Object.freeze(["serial-generation/editor-compress","serial-generation/editor-review","serial-generation/editor-review-guide","serial-generation/reader-choice","serial-generation/reader-extraction"]),$o=Object.freeze({compress:"serial-generation/editor-compress",review:"serial-generation/editor-review",reviewGuide:"serial-generation/editor-review-guide"}),Nl=Object.freeze({choice:"serial-generation/reader-choice",extraction:"serial-generation/reader-extraction"})});var Y,je,X=i(()=>{"use strict";Y=class extends Error{code;details;constructor(e,n,r={},a={}){super(n,a),this.name="WikiGraphError",this.code=e,this.details=r}},je=class extends Y{target;actualVersion;supportedVersion;reason;constructor(e,n,r){let a=n<r?"upgrade-required":"newer-version";super("schema_version_incompatible",`Wiki Graph ${e.kind}${e.kind==="home"?"":` ${e.kind==="archive"?e.path:e.uri}`} schema v${n} is incompatible with supported v${r}.`,{actualVersion:n,supportedVersion:r,reason:a}),this.name="WikiGraphSchemaVersionError",this.target=e,this.actualVersion=n,this.supportedVersion=r,this.reason=a}}});var Jo=i(()=>{"use strict"});async function lx(t){try{return await nt(t)}catch(e){if(ot(e)&&e.code==="ENOENT")return!0;throw e}}function k(t,e){let n=t[e];if(typeof n!="number")throw new TypeError(`Expected ${e} to be a number`);return n}function T(t,e){let n=t[e];if(typeof n!="string")throw new TypeError(`Expected ${e} to be a string`);return n}var ux,z,Ko,x=i(()=>{"use strict";b();fe();ux=900*1e3;z=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 vt(e),o=r.mode==="readwrite"&&r.create&&n.trim()!==""&&await lx(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 Ko(s),r),await d.#o(`PRAGMA busy_timeout = ${ux}`),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=>k(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)}};Ko=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 Ct(){let t=await _i();if(t===0){await px(await q(C().library,"core.sqlite"),zo);return}if(t!==zo)throw new je({kind:"home"},t,zo)}async function _i(){let t=await ee(C().library,"core.sqlite");if(t===void 0||await hx(t))return 0;let e=await z.open(t,"",{mode:"readonly"});try{if(!await fx(e,"schema_versions"))return 1;let n=await e.queryOne("SELECT version FROM schema_versions WHERE scope = ?",["home"],r=>k(r,"version"))??1;if(!Number.isInteger(n)||n<1)throw new Error("Invalid Wiki Graph home schema version marker.");return n}finally{await e.close()}}async function px(t,e){let n=await z.open(t,"",{create:!0,mode:"readwrite"});try{await n.execute(mx),await n.run(`INSERT INTO schema_versions (scope, version, updated_at)
|
|
6
|
+
var Tk=Object.defineProperty;var i=(t,e)=>()=>(t&&(e=t(t=0)),e);var _k=(t,e)=>{for(var n in e)Tk(t,n,{get:e[n],enumerable:!0})};async function Si(t){let e=await t.openReader();try{return e.size}finally{await e.close()}}async function nt(t){return await Si(t)===0}async function te(t){return new TextDecoder().decode(await It(t))}async function It(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 ce(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(K(t)){let e=0;for(let n of await t.list())e+=await Ie(n);return e}return await Si(t)}async function rt(t){return await t.getLastModified?.()}function K(t){return t.kind==="directory"}var ol=i(()=>{"use strict"});function nn(t){rn().installedPlatform=t}function A(){let{installedPlatform:t}=rn();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 vt(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 ee(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 ve(t,e){let n=_o(e),r=t;for(let a of n){let o=await r.getDirectory(a);if(!o)return;r=o}return r}async function H(t,e){let n=_o(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 q(t,e){let n=_o(e),r=n.pop();if(!r)throw new TypeError("File name must remain relative");let a=await H(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 _o(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 rn(){let t=globalThis,e=t[sl];if(e!==void 0)return e;let n={storageContext:new To};return Object.defineProperty(t,sl,{configurable:!1,enumerable:!1,value:n,writable:!1}),n}function Ei(t){rn().installedStorage=t}async function an(t,e){return t===void 0?await e():await rn().storageContext.run(t,e)}function C(){let{installedStorage:t,storageContext:e}=rn(),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 sl,To,b=i(()=>{"use strict";ol();sl=Symbol.for("wiki-graph-core.runtime.v1");To=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}=rn();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 Ii(t){if(Ak.test(t))throw new Error(`invalid template name ${t}`);let n=t.replace(Lk,"").replace(Pk,"");if(n.split("/").includes(".."))throw new Error(`invalid template name ${t}`);return`${n}.jinja`}var Pk,Ak,Lk,Hn=i(()=>{"use strict";b();Pk=/\.jinja$/iu,Ak=/^\.+\//u,Lk=/^\/+/u});var Po=i(()=>{"use strict";b();Hn()});import*as ul from"async_hooks";import*as ll from"crypto";import*as on from"fs";import*as D from"fs/promises";import*as ml from"os";import*as W from"path";import*as Wo from"process";import{Readable as Mo,Writable as Ok}from"stream";import{pipeline as Nk}from"stream/promises";import*as Fo from"sqlite3";import*as Ci from"yauzl";import*as pl from"yazl";import{Environment as Dk,Loader as Wk}from"nunjucks";async function dl(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 hl(t,e,n){if(fl(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 fl(t){if(!Number.isSafeInteger(t)||t<0)throw new RangeError("File offset must be a non-negative safe integer")}function yl(t,e){return`node-${t}:${Buffer.from(W.resolve(e),"utf8").toString("base64url")}`}function Ao(t,e){let n=`node-${e}:`;if(!t.startsWith(n))return W.isAbsolute(t)?t:void 0;try{return Buffer.from(t.slice(n.length),"base64url").toString("utf8")}catch{return}}function $n(t){if(t.length===0||t==="."||t===".."||W.isAbsolute(t)||t.includes("/")||t.includes("\\"))throw new TypeError(`Directory child must be a relative name: ${t}`)}async function Mk(t,e){let n=(e.mode==="readonly"?Jn.OPEN_READONLY:Jn.OPEN_READWRITE|(e.create?Jn.OPEN_CREATE:0))|Jn.OPEN_FULLMUTEX;return new Oo(await Fk(t,n))}async function Fk(t,e){let n=gl(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 Gk(t,e={}){let n=gl(t,"file");if(n===void 0)throw new TypeError("The Node ZIP adapter requires a NodeFile");let r=await D.open(n,"r"),a;try{a=(await r.stat()).size}catch(f){throw await r.close(),f}let o=()=>new Promise((f,w)=>{Ci.fromRandomAccessReader(new No(r),a,{autoClose:!1,lazyEntries:!0},(p,S)=>{p||S===void 0?w(p??new Error("Cannot open ZIP")):f(S)})});try{(await o()).close()}catch(f){throw await r.close(),f}let s=!1,d=Promise.resolve(),c,u=f=>{if(s)return Promise.reject(new Error("Cannot read a closed ZIP archive"));let w=d.then(async()=>{let p=await o();try{return await f(p)}finally{p.close()}});return d=w.then(()=>{},()=>{}),w},m=(f,w)=>u(async p=>{let S,g,v=!1;if(await vi(p,R=>{R.fileName===f&&(S=R),cl(R.fileName)===f&&(g!==void 0&&g.fileName!==R.fileName&&(v=!0),g=R)}),(S===void 0||e.entryNameMode==="normalized")&&v){let R=-1,U=await o();try{return await vi(U,async O=>{if(cl(O.fileName)!==f)return;let N=await o(),V=0;try{await vi(N,Fe=>{if(Fe.fileName===O.fileName)return!1;V++})}finally{N.close()}V>=R&&(R=V,g=O)}),await w(U,g)}finally{U.close()}}return await w(p,e.entryNameMode==="normalized"?g:S??g)});return{close:()=>(s=!0,c??=d.then(()=>r.close()),c),copyEntry:(f,w)=>m(f,async(p,S)=>S===void 0?!1:(await jk(p,S,w),!0)),getEntrySize:f=>m(f,(w,p)=>Promise.resolve(p?.uncompressedSize)),listEntries:()=>u(async f=>{let w=new Set;return await vi(f,p=>{w.add(p.fileName)}),[...w]}),readEntryRange:(f,w,p)=>m(f,async(S,g)=>{if(g!==void 0)return await qk(S,g,w,p)}),readEntry:f=>m(f,async(w,p)=>{if(p!==void 0)return await Uk(w,p)})}}function cl(t){let e=t.replaceAll("\\","/").trim().split("/").filter(n=>n!==""&&n!==".").join("/");return e.split("/").includes("..")?void 0:e}async function vi(t,e){await new Promise((n,r)=>{let a=()=>{t.off("entry",d),t.off("end",s),t.off("error",o)},o=c=>{a(),r(c)},s=()=>{a(),n()},d=c=>{Promise.resolve().then(()=>c.fileName.endsWith("/")?void 0:e(c)).then(u=>{u===!1?s():t.readEntry()}).catch(u=>o(u instanceof Error?u:new Error("Cannot scan ZIP",{cause:u})))};t.on("entry",d),t.once("end",s),t.once("error",o),t.readEntry()})}async function jk(t,e,n){let r=await n.openWriter();try{let a=await Ri(t,e);await bl(a,r),await r.commit()}catch(a){throw await r.abort().catch(()=>{}),a}}async function Uk(t,e){return await wl(await Ri(t,e))}async function qk(t,e,n,r){if(hl(n,r,e.uncompressedSize),r===0)return new Uint8Array;if(e.compressionMethod!==0){let o=await Bk(await Ri(t,e),n,r);return new Uint8Array(o.buffer,o.byteOffset,o.byteLength)}let a=await wl(await Ri(t,e,{decompress:null,decrypt:null,end:n+r,start:n}));return new Uint8Array(a.buffer,a.byteOffset,a.byteLength)}async function Bk(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 Ri(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 pl.ZipFile,r=await t.openWriter(),a=n.outputStream,o=bl(a,r),s={cancelled:!1,complete:!1},d;try{d=zk(e);let c=$k(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&&Qk(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 $k(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(Jk(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(Kk(r.value),r.value.name,{compress:!1,size:r.value.size})}}function Jk(t){return Mo.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 gl(t,e){if(typeof t!="object"||t===null)return;let n=t;return n[Go]===e&&typeof n.path=="string"?n.path:void 0}function Kk(t){return Mo.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 zk(t){let e=t[Symbol.asyncIterator];return e===void 0?t[Symbol.iterator]():e.call(t)}function Qk(t){if(t.return!==void 0)try{Promise.resolve(t.return()).catch(()=>{})}catch{}}async function bl(t,e){await Nk(t,new Ok({write:(n,r,a)=>{e.write(n).then(()=>a(),o=>a(o instanceof Error?o:new Error("Cannot stream ZIP archive")))}}))}async function wl(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 Xk(){let t=globalThis.__WIKIGRAPH_DATA_DIR__;if(typeof t=="string"&&t!=="")return t;let e=Lo.cwd();for(;;){for(let r of[W.join(e,"data"),W.join(e,"packages","core","data")])try{if(on.statSync(r).isDirectory())return r}catch{}let n=W.dirname(e);if(n===e)throw new Error("Could not locate data directory");e=n}}function jo(t=W.join(ml.homedir(),".wikigraph")){let e=typeof t=="string"?t:t.libraryRoot,n=typeof t=="string"?W.join(t,"documents"):t.documentStoreRoot;return{library:new Re(e),documentStore:new Re(n)}}function kl(t){nn(Sl),Ei(jo(t))}function xl(){try{A()}catch{nn(Sl)}try{C()}catch{Ei(jo())}}async function Ti(t,e){return await an(t===void 0?void 0:jo(t),e)}var Lo,Jn,Go,se,Re,Oo,No,Sl,Do,ue=i(()=>{"use strict";Po();Lo=Wo.default??Wo,Jn=Fo.default??Fo,Go=Symbol.for("wiki-graph-sdk.node-resource.v1"),se=class{constructor(e,n=W.basename(e)){this.path=e;this.identity=yl("file",e),this.name=n}path;async getPhysicalIdentity(){let e=await D.stat(this.path).catch(n=>{if(!(typeof n=="object"&&n!==null&&"code"in n&&n.code==="ENOENT"))throw n});if(e!==void 0)return`${e.dev}:${e.ino}`}kind="file";[Go]="file";identity;name;async openReader(){let e=await D.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");hl(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 D.stat(this.path)).mtimeMs}catch(e){if(typeof e=="object"&&e!==null&&"code"in e&&e.code==="ENOENT")return;throw e}}async openWriter(){await D.mkdir(W.dirname(this.path),{recursive:!0});let e=`${this.path}.tmp-${ll.randomUUID()}`,n=await D.open(e,"wx"),r=!1;return{write:async a=>{if(r)throw new Error("Cannot write to a closed FileWriter");await dl(n,a)},writeAt:async(a,o)=>{if(r)throw new Error("Cannot write to a closed FileWriter");fl(a),await dl(n,o,a)},commit:async()=>{r||(await n.close(),await D.rename(e,this.path)),r=!0},abort:async()=>{r||(await n.close(),await D.rm(e,{force:!0})),r=!0}}}};Re=class t{constructor(e){this.path=e;this.identity=yl("directory",e),this.name=W.basename(e)}path;async getPhysicalIdentity(){let e=await D.stat(this.path).catch(n=>{if(!(typeof n=="object"&&n!==null&&"code"in n&&n.code==="ENOENT"))throw n});if(e!==void 0)return`${e.dev}:${e.ino}`}kind="directory";[Go]="directory";identity;name;async getFile(e){$n(e);let n=new se(W.join(this.path,e));try{return(await D.stat(n.path)).isFile()?n:void 0}catch(r){if(typeof r=="object"&&r!==null&&"code"in r&&(r.code==="ENOENT"||r.code==="ENOTDIR"))return;throw r}}async getLastModified(){try{return(await D.stat(this.path)).mtimeMs}catch(e){if(typeof e=="object"&&e!==null&&"code"in e&&e.code==="ENOENT")return;throw e}}async getDirectory(e){$n(e);let n=new t(W.join(this.path,e));try{return(await D.stat(n.path)).isDirectory()?n:void 0}catch(r){if(typeof r=="object"&&r!==null&&"code"in r&&(r.code==="ENOENT"||r.code==="ENOTDIR"))return;throw r}}async list(){return(await D.readdir(this.path,{withFileTypes:!0})).map(n=>n.isDirectory()?new t(W.join(this.path,n.name)):new se(W.join(this.path,n.name),n.name))}async createFile(e){$n(e),await D.mkdir(this.path,{recursive:!0});let n=new se(W.join(this.path,e));return await D.writeFile(n.path,"",{flag:"wx"}),n}async createDirectory(e){$n(e),await D.mkdir(this.path,{recursive:!0});let n=new t(W.join(this.path,e));return await D.mkdir(n.path),n}async remove(e,n){$n(e),await D.rm(W.join(this.path,e),{force:!0,recursive:n?.recursive===!0})}};Oo=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()})})}};No=class extends Ci.RandomAccessReader{constructor(n){super();this.handle=n}handle;read(n,r,a,o,s){let d=c=>{if(c===a){s(null);return}on.read(this.handle.fd,n,r+c,a-c,o+c,(u,m)=>{u?s(u):m===0?s(new Error("Unexpected end of ZIP file")):d(c+m)})};d(0)}_readStreamForRange(n,r){let a=this.handle;return Mo.from((async function*(){for(let o=n;o<r;){let s=Buffer.allocUnsafe(Math.min(65536,r-o)),{bytesRead:d}=await a.read(s,0,s.length,o);if(d===0)return;o+=d,yield s.subarray(0,d)}})())}};Sl={asyncContext:{create:()=>new ul.AsyncLocalStorage},database:{open:Mk},lifecycle:{instanceId:`node-process:${Lo.pid}`,isInstanceAlive:t=>{let e=/^node-process:(\d+)$/u.exec(t);if(e===null)return Promise.resolve(void 0);try{return Lo.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=Ao(t,"directory");return Promise.resolve(e===void 0?void 0:new Re(e))},getFile:t=>{let e=Ao(t,"file");return Promise.resolve(e===void 0?void 0:new se(e))},resolveLegacyDirectory:t=>{let e=Ao(t,"directory");return Promise.resolve(e===void 0?void 0:new Re(e))}},templates:{createEnvironment:t=>new Dk(new Do,t)},zip:{open:Gk,write:Hk}},Do=class extends Wk{#e;constructor(e){super(),this.#e=e}getSource(e){let n=Ii(e),r=W.join(this.#e??Xk(),n);return{noCache:!1,path:n,src:on.readFileSync(r,"utf8")}}}});var Ge=i(()=>{"use strict"});function El(t){return new TextEncoder().encode(t)}function it(t){let e="";for(let n of t)e+=n.toString(16).padStart(2,"0");return e}var he=i(()=>{"use strict"});import{sha1 as Vk}from"@noble/hashes/legacy.js";import{sha256 as Yk,sha512 as Zk}from"@noble/hashes/sha2.js";function oe(t){let e=ex(t);return{update(n){return e.update(typeof n=="string"?El(n):n),this},digest(n){let r=e.digest();return n==="hex"?it(r):r}}}function sn(t){let e=new Uint8Array(t);return globalThis.crypto.getRandomValues(e),e}function at(){if(typeof globalThis.crypto.randomUUID=="function")return globalThis.crypto.randomUUID();let t=sn(16);t[6]=t[6]&15|64,t[8]=t[8]&63|128;let e=it(t);return`${e.slice(0,8)}-${e.slice(8,12)}-${e.slice(12,16)}-${e.slice(16,20)}-${e.slice(20)}`}function ex(t){switch(t){case"sha1":return Vk.create();case"sha256":return Yk.create();case"sha512":return Zk.create()}}var M=i(()=>{"use strict";he()});var _i=i(()=>{"use strict";M()});var vl=i(()=>{"use strict";b()});var Rl=i(()=>{"use strict";vl()});var Cl=i(()=>{"use strict"});function ot(t){return t instanceof Error}function dn(t){let e=[],n=new Set,r=t;for(;r!==void 0&&!n.has(r);){if(n.add(r),r instanceof Error){Tl(e,ox(r)),r=r.cause;continue}Tl(e,String(r));break}return e.join(": ")}function ox(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&&sx(n)?`${t.name} (${r})`:n===""?t.name:r===void 0?n:`${n} (${r})`}function sx(t){return/(?:^|[\s:'"(=])\/(?:[^\s/]+\/)*[^\s/]+/u.test(t)||/(?:^|[\s:'"(=])[A-Za-z]:[\\/]/u.test(t)||/\bfile:\/\//iu.test(t)}function Tl(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 fe=i(()=>{"use strict";b()});var _l=i(()=>{"use strict";fe()});var Pl=i(()=>{"use strict"});import{APICallError as JA}from"ai";var Al=i(()=>{"use strict";b()});var st=i(()=>{"use strict";b()});var Rt,zn=i(()=>{"use strict";Rt=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 qo=i(()=>{"use strict";st()});var Bo=i(()=>{"use strict"});var Ll=i(()=>{"use strict";b()});var Ho=i(()=>{"use strict"});import{generateText as wL,streamText as SL}from"ai";var Nl=i(()=>{"use strict";Rl();Cl();_l();Pl();Al();st();Hn();zn();_i();fe();qo();Bo();Ll();Ho()});var Dl=i(()=>{"use strict";Nl()});var Jo=i(()=>{"use strict";Dl();qo();Bo();Ho()});var lx,Ko,Wl,cn=i(()=>{"use strict";lx=Object.freeze(["serial-generation/editor-compress","serial-generation/editor-review","serial-generation/editor-review-guide","serial-generation/reader-choice","serial-generation/reader-extraction"]),Ko=Object.freeze({compress:"serial-generation/editor-compress",review:"serial-generation/editor-review",reviewGuide:"serial-generation/editor-review-guide"}),Wl=Object.freeze({choice:"serial-generation/reader-choice",extraction:"serial-generation/reader-extraction"})});var Y,je,X=i(()=>{"use strict";Y=class extends Error{code;details;constructor(e,n,r={},a={}){super(n,a),this.name="WikiGraphError",this.code=e,this.details=r}},je=class extends Y{target;actualVersion;supportedVersion;reason;constructor(e,n,r){let a=n<r?"upgrade-required":"newer-version";super("schema_version_incompatible",`Wiki Graph ${e.kind}${e.kind==="home"?"":` ${e.kind==="archive"?e.path:e.uri}`} schema v${n} is incompatible with supported v${r}.`,{actualVersion:n,supportedVersion:r,reason:a}),this.name="WikiGraphSchemaVersionError",this.target=e,this.actualVersion=n,this.supportedVersion=r,this.reason=a}}});var zo=i(()=>{"use strict"});async function px(t){try{return await nt(t)}catch(e){if(ot(e)&&e.code==="ENOENT")return!0;throw e}}function k(t,e){let n=t[e];if(typeof n!="number")throw new TypeError(`Expected ${e} to be a number`);return n}function T(t,e){let n=t[e];if(typeof n!="string")throw new TypeError(`Expected ${e} to be a string`);return n}var mx,z,Qo,x=i(()=>{"use strict";b();fe();mx=900*1e3;z=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 vt(e),o=r.mode==="readwrite"&&r.create&&n.trim()!==""&&await px(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 Qo(s),r),await d.#o(`PRAGMA busy_timeout = ${mx}`),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=>k(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)}};Qo=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 Ct(){let t=await Ai();if(t===0){await fx(await q(C().library,"core.sqlite"),Xo);return}if(t!==Xo)throw new je({kind:"home"},t,Xo)}async function Ai(){let t=await ee(C().library,"core.sqlite");if(t===void 0||await yx(t))return 0;let e=await z.open(t,"",{mode:"readonly"});try{if(!await gx(e,"schema_versions"))return 1;let n=await e.queryOne("SELECT version FROM schema_versions WHERE scope = ?",["home"],r=>k(r,"version"))??1;if(!Number.isInteger(n)||n<1)throw new Error("Invalid Wiki Graph home schema version marker.");return n}finally{await e.close()}}async function fx(t,e){let n=await z.open(t,"",{create:!0,mode:"readwrite"});try{await n.execute(hx),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
|
|
10
|
+
updated_at = excluded.updated_at`,["home",e,new Date().toISOString()])}finally{await n.close()}}async function yx(t){return await nt(t)}async function gx(t,e){return await t.queryOne("SELECT 1 AS present FROM sqlite_master WHERE type = 'table' AND name = ?",[e],()=>!0)===!0}var Xo,QL,hx,Li=i(()=>{"use strict";b();fe();X();x();Xo=5,QL=300*1e3,hx=`
|
|
11
11
|
CREATE TABLE IF NOT EXISTS schema_versions (
|
|
12
12
|
scope TEXT PRIMARY KEY,
|
|
13
13
|
version INTEGER NOT NULL,
|
|
14
14
|
updated_at TEXT NOT NULL
|
|
15
15
|
);
|
|
16
|
-
`});async function Q(t,e,n={create:!0,mode:"readwrite"}){await Ct();let r=await q(C().library,t);return n.mode==="readonly"?await Qn(r,e,n):await Qn(r,e,n)}async function Qn(t,e,n={create:!0,mode:"readwrite"}){let r=await vt(t);return n.mode==="readonly"?await z.open(r,e,n):await z.open(r,e,n)}var
|
|
17
|
-
`,U),f(g,U),
|
|
16
|
+
`});async function Q(t,e,n={create:!0,mode:"readwrite"}){await Ct();let r=await q(C().library,t);return n.mode==="readonly"?await Qn(r,e,n):await Qn(r,e,n)}async function Qn(t,e,n={create:!0,mode:"readwrite"}){let r=await vt(t);return n.mode==="readonly"?await z.open(r,e,n):await z.open(r,e,n)}var Ml=i(()=>{"use strict";b();Li();x()});function Ni(...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 Vo(t){return Ni(t).split("/").at(-1)??""}var Tt=i(()=>{"use strict"});var Xn=i(()=>{"use strict";Tt()});var Fl=i(()=>{"use strict"});function un(t){let e=new Set(Object.values(t));return n=>e.has(n)}function Vn(t,e){let n=un(t);return r=>{if(n(r))return r;throw new Error(`Unknown ${e}: ${r}`)}}var Yo=i(()=>{"use strict"});var ye,Gl,Zo,Ce,jl,Di,Te=i(()=>{"use strict";Yo();ye=(a=>(a.Verbatim="verbatim",a.Detailed="detailed",a.Focused="focused",a.Relevant="relevant",a))(ye||{}),Gl=un(ye),Zo=Vn(ye,"chunk retention"),Ce=(r=>(r.Critical="critical",r.Important="important",r.Helpful="helpful",r))(Ce||{}),jl=un(Ce),Di=Vn(Ce,"chunk importance")});var es=i(()=>{"use strict";Te()});function dt(t){let e=0,n=!1;for(let r of t.trim()){if(bx.test(r)){e+=1,n=!1;continue}if(wx.test(r)){n||(e+=1),n=!0;continue}n&&Sx.test(r)||(n=!1)}return e}var bx,wx,Sx,ct=i(()=>{"use strict";bx=new RegExp("\\p{Script=Han}","u"),wx=/[\p{Letter}\p{Number}]/u,Sx=new RegExp("\\p{Mark}","u")});var ql=i(()=>{"use strict";ct();Te()});var Wi=i(()=>{"use strict"});var ns=i(()=>{"use strict";Xn();Te();es();ql();Wi()});var Bl=i(()=>{"use strict";Xn();Fl();ns()});var rs=i(()=>{"use strict";Bl();es();ns();Wi()});var Mi=i(()=>{"use strict";b();Tt()});var is=i(()=>{"use strict"});var $l=i(()=>{"use strict";Tt();Mi()});var Jl=i(()=>{"use strict";ct()});var as=i(()=>{"use strict"});var os=i(()=>{"use strict";Tt();fe();is();Mi();$l();Jl();as()});var Kl=i(()=>{"use strict";Tt();Mi();os()});var ss=i(()=>{"use strict";Kl();is();os();as()});import{z as ge}from"zod";var ds,Ue,zl,cs,Yn=i(()=>{"use strict";ds=["epub","pdf","txt","markdown"],Ue=1,zl=ge.enum(ds),cs=ge.object({version:ge.literal(Ue),sourceFormat:zl,title:ge.string().min(1).nullable().default(null),authors:ge.array(ge.string().min(1)),language:ge.string().min(1).nullable(),identifier:ge.string().min(1).nullable(),publisher:ge.string().min(1).nullable(),publishedAt:ge.string().min(1).nullable(),description:ge.string().min(1).nullable()})});function Ql(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(Tx.has(t))throw new Error(`Invalid ${e}: ${t} is reserved.`);return t}var Tx,be=i(()=>{"use strict";he();M();Tx=new Set(["tree","source","summary","title","state","chunk","entity","triple","cover","meta","job","help"])});import{z as qe}from"zod";var ut,us,Xl,ls=i(()=>{"use strict";be();ut=1,us=qe.object({key:qe.string().min(1).transform(t=>Ql(t)).optional(),title:qe.string().min(1).nullable().optional(),serialId:qe.number().int().nonnegative().optional(),children:qe.lazy(()=>qe.array(us))}),Xl=qe.object({version:qe.literal(ut),items:qe.array(us)})});function _e(t){let e=[];for(let n of t.replaceAll("\\","/").trim().split("/"))n===""||n==="."||(n===".."?e.pop():e.push(n));return e.join("/")}function _x(t){let[e]=t.split("#",1);return _e(e??"")}function ms(t){if(t===void 0)return;let e=t.startsWith("#")?t.slice(1):t;return e===""?void 0:e}function Zn(t){let[e,n]=t.split("#",2);return{path:_e(e??""),fragment:ms(n)}}function Px(t){return t.split("/").slice(0,-1).join("/")}function Ax(...t){return t.filter(Boolean).join("/")}var Fi,er=i(()=>{"use strict";b();M();Fi=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=_e(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(_e(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: ${_e(e)}`);return r}resolveRelativePath(e,n){let r=_x(n);if(r==="")throw new Error(`Invalid EPUB href: ${n}`);return _e(Ax(Px(_e(e)),r))}createSectionId(e,n){let r=_e(e);return n===void 0||n===""?r:`${r}#${n}`}createSyntheticSectionId(e,n){let r=_e(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=_e(e),r=this.#t.get(n);if(r===void 0)throw new Error(`EPUB entry does not exist: ${n}`);return r}}});import{parseDocument as Lx}from"htmlparser2";async function nm(t,e){let n=new Map;for(let[r,a]of e.entries()){let o=await rm(t,r),s=im(o,a);for(let d of a){let c=s.get(d.id)??"";n.set(d.id,{hasContent:c.trim()!=="",wordsCount:dt(c)})}}return n}function Dx(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 rm(t,e){return await t.readText(e)}function im(t,e){let n=am(t,e,!1);return new Map([...n.entries()].map(([r,a])=>[e[r].id,a.text]))}function Wx(t,e,n){let r=am(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 am(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,v)=>{a.set(v,[]),g.fragment!==void 0&&!r.has(g.fragment)&&r.set(g.fragment,v)});let c=Lx(t,{decodeEntities:!0}),u=(c.children??[]).find(Zl);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,v])=>{let R=Fx(v);return[g,{segments:R.segments,text:R.text}]}));function m(g,v){if(Yl(g)){if(d<0||d>=o.length)return;let N=g.data??"";if(N==="")return;let V=o[d],Fe=V?.spineIndex;if(n&&Fe===void 0)throw new Error(`EPUB section ${V?.id??"unknown"} cannot produce a CFI locator.`);let wi=n&&Fe!==void 0?tm(Fe,v,0,N.length):ps;p(d,N,wi,n?0:void 0,n?N.length:void 0);return}let R=Ux(g);if(R===void 0){f(g,v);return}if(Nx.has(R))return;let U=v,O=g.attribs?.id??g.attribs?.["xml:id"];if(O!==void 0){let N=r.get(O);N!==void 0&&N>d&&(d=N)}R==="br"&&S(d,`
|
|
17
|
+
`,U),f(g,U),Ox.has(R)&&S(d,`
|
|
18
18
|
|
|
19
|
-
`,U)}function f(g,v){let R=0,U=new Map;for(let O of g.children??[]){if(
|
|
19
|
+
`,U)}function f(g,v){let R=0,U=new Map;for(let O of g.children??[]){if(Yl(O)){if(d<0||d>=o.length)continue;let V=O.data??"";if(V==="")continue;let Fe=R*2+1,wi=U.get(Fe)??0;U.set(Fe,wi+V.length);let Ck=em(v,Fe,!0);w(O,Ck,wi,V.length);continue}if(!Zl(O))continue;let N=em(v,R,!1,O.attribs?.id??O.attribs?.["xml:id"]);R+=1,m(O,N)}}function w(g,v,R,U){if(d<0||d>=o.length)return;let O=g.data??"",N=o[d],V=N?.spineIndex;if(n&&V===void 0)throw new Error(`EPUB section ${N?.id??"unknown"} cannot produce a CFI locator.`);p(d,O,n&&V!==void 0?tm(V,v,R,R+U):ps,n?R:void 0,n?R+U:void 0)}function p(g,v,R,U,O){let N=a.get(g);N!==void 0&&N.push({locator:R,...O===void 0?{}:{locatorEnd:O},...U===void 0?{}:{locatorStart:U},text:v})}function S(g,v,R){if(g<0||g>=o.length)return;let U=o[g],O=U?.spineIndex;if(n&&O===void 0)throw new Error(`EPUB section ${U?.id??"unknown"} cannot produce a CFI locator.`);p(g,v,n&&O!==void 0?Bx(O,R):ps)}}function Mx(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 Fx(t){let e=[];for(let c of t){let u=Array.from(c.text),m=0;for(let f=0;f<u.length;f+=1){let w=u[f],p=c.locatorStart===void 0?void 0:c.locatorStart+m;m+=w.length;let S=c.locatorEnd===void 0||c.locatorStart===void 0?void 0:c.locatorStart+m;w==="\r"&&u[f+1]===`
|
|
20
20
|
`?(m+=1,S=c.locatorStart===void 0?void 0:c.locatorStart+m,e.push({baseLocator:c.locator,char:`
|
|
21
|
-
`,locator:
|
|
22
|
-
`){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:ms(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 ms(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=Mx(r);if(a===void 0)throw new Error("EPUB text mapping has an invalid CFI range locator.");return{...t,cfi:`epubcfi(${a.parentPath},${Ql(a.startPath,e)},${Ql(a.endPath,n)})`}}function Mx(t){if(!t.startsWith("epubcfi(")||!t.endsWith(")"))return;let e=Fx(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 Fx(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 Ql(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 Gx(t){return t.name?.toLowerCase()}function Xl(t){return t.type==="text"}function Vl(t){return t.name!==void 0&&t.type!=="directive"}function Yl(t,e,n,r){let a=n?e:(e+1)*2,o=n||r===void 0?"":`[${Bx(r)}]`;return`${t}/${a}${o}`}function Zl(t,e,n,r){let a=im(t),{parentPath:o,textPath:s}=jx(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 jx(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 Ux(t,e){return{cfi:`epubcfi(${qx(t)}${e})`}}function qx(t){return`${im(t)}!`}function im(t){return`/6/${(t+1)*2}`}function Bx(t){return[...t].map(e=>"[]^(),;=".includes(e)?`^${e}`:e).join("")}var Ax,Lx,ls,Mi,am=i(()=>{"use strict";ct();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"]),Lx=new Set(["script","style"]),ls={},Mi=class{#e;#t;constructor(e,n){this.#e=e,this.#t=Ox(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=Nx(o,r.targets,e),d=Dx(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 tm(this.#e,e);return nm(r,n)}}});import{SaxesParser as Hx}from"saxes";function ln(t){let e=new Hx({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 om(r)}function we(t,e){return t.children.find(n=>nr(n.name)===e)}function Be(t,e){return t.children.filter(n=>nr(n.name)===e)}function ne(t,e){return t.attributes[e]}function tr(t){let e=t.text;for(let n of t.children)e+=tr(n);return e}function nr(t){let e=t.indexOf(":");return e===-1?t:t.slice(e+1)}function om(t){return{name:t.name,attributes:Object.freeze({...t.attributes}),children:Object.freeze(t.children.map(om)),text:t.text}}var Fi=i(()=>{"use strict"});async function dm(t){let e=await Kx(t),n=ln(await t.readText(e)),r=zx(ne(n,"version")),a=we(n,"metadata"),o=we(n,"manifest"),s=we(n,"spine"),d=we(n,"guide"),c=Xx(t,e,o),u=new Map([...c.values()].map(v=>[v.path,v])),m=Vx(s,c),f=Yx(t,e,d),w=Qx(a),p=Zx(c),S=eE(c,s),g=tE(c,a);return{version:r,opfPath:e,metadata:{...w,version:Ue,sourceFormat:"epub"},manifest:c,manifestByPath:u,spine:m,navPath:p,ncxPath:S,coverPath:g?.path,coverMediaType:g?.mediaType,guideNonContentPaths:f}}async function Kx(t){let e=ln(await t.readText("META-INF/container.xml")),r=we(e,"rootfiles")?.children.find(o=>nr(o.name)==="rootfile"),a=r===void 0?void 0:ne(r,"full-path");if(a===void 0||a.trim()==="")throw new Error("EPUB container.xml does not contain an OPF rootfile");return a}function zx(t){return t?.trim().startsWith("3")===!0?3:2}function Qx(t){if(t===void 0)return sm();let e=_t(t,"title"),n=_t(t,"creator"),r=_t(t,"language"),a=_t(t,"identifier"),o=_t(t,"publisher"),s=_t(t,"date"),d=_t(t,"description");return{...sm(),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 sm(){return{version:Ue,sourceFormat:"epub",title:null,authors:[],language:null,identifier:null,publisher:null,publishedAt:null,description:null}}function _t(t,e){return t.children.filter(n=>nr(n.name)===e).map(n=>rE(tr(n))).filter(n=>n!==void 0)}function Xx(t,e,n){let r=new Map;if(n===void 0)return r;for(let a of Be(n,"item")){let o=ne(a,"id"),s=ne(a,"href"),d=ne(a,"media-type")??"";o===void 0||s===void 0||r.set(o,{id:o,path:t.resolveRelativePath(e,s),mediaType:d,properties:new Set((ne(a,"properties")??"").split(/\s+/u).map(c=>c.trim().toLowerCase()).filter(c=>c!==""))})}return r}function Vx(t,e){return t===void 0?[]:Be(t,"itemref").map((n,r)=>{let a=ne(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 Yx(t,e,n){let r=new Set;if(n===void 0)return r;for(let a of Be(n,"reference")){let o=(ne(a,"type")??"").trim().toLowerCase();if(!Jx.has(o))continue;let s=ne(a,"href");s===void 0||s.trim()===""||r.add(t.resolveRelativePath(e,Zn(s).path))}return r}function Zx(t){for(let e of t.values())if(e.properties.has("nav"))return e.path}function eE(t,e){let n=e===void 0?void 0:ne(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 tE(t,e){for(let r of t.values())if(r.properties.has("cover-image")&&r.mediaType.startsWith("image/"))return r;let n=nE(e);if(n!==void 0){let r=t.get(n);if(r?.mediaType.startsWith("image/")===!0)return r}for(let r of $x){let a=t.get(r);if(a?.mediaType.startsWith("image/")===!0)return a}for(let r of t.values())if(r.mediaType.startsWith("image/")&&Qo(r.path).toLowerCase().includes("cover"))return r}function nE(t){if(t!==void 0)for(let e of Be(t,"meta")){if((ne(e,"name")??"").trim().toLowerCase()!=="cover")continue;let r=ne(e,"content");if(r!==void 0&&r.trim()!=="")return r.trim()}}function rE(t){let e=t.replace(/\s+/gu," ").trim();return e===""?void 0:e}var $x,Jx,ps=i(()=>{"use strict";Tt();Yn();er();Fi();$x=["cover-image","coverimg","cover-img","cover"],Jx=new Set(["cover","titlepage","other.titlepage"])});import{parseDocument as iE}from"htmlparser2";async function um(t,e){let n=await oE(t,e)??await sE(t,e)??[];if(n.length===0)return cm(e,new Set);let r=pm(n),a=cm(e,r);return a.length===0?n:[...n,...a]}async function oE(t,e){if(e.navPath===void 0)return;let n=iE(await t.readText(e.navPath),{decodeEntities:!0}),r=hs(n,s=>lt(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=hs(r,s=>lt(s)==="ol");if(a===void 0)return;let o=rr(a).filter(s=>lt(s)==="li").map(s=>lm(t,e.navPath,s)).filter(s=>s!==void 0);return o.length===0?void 0:o}async function sE(t,e){if(e.ncxPath===void 0)return;let n=ln(await t.readText(e.ncxPath)),r=we(n,"navMap");if(r===void 0)return;let a=Be(r,"navPoint").map(o=>mm(t,e.ncxPath,o)).filter(o=>o!==void 0);return a.length===0?void 0:a}function lm(t,e,n){let r=hm(n),a=r===void 0?void 0:gm(fm(r)),o=r!==void 0&<(r)==="a"?r.attribs?.href:void 0,s=cE(t,e,o),d=rr(n).filter(c=>lt(c)==="ol").flatMap(c=>rr(c)).filter(c=>lt(c)==="li").map(c=>lm(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 mm(t,e,n){let r=we(n,"navLabel"),a=r===void 0?void 0:we(r,"text"),o=a===void 0?void 0:gm(tr(a)),s=we(n,"content"),d=uE(t,e,ne(s??n,"src")),c=Be(n,"navPoint").map(u=>mm(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 cm(t,e){return t.spine.filter(n=>!dE(t,n.path,e)).filter(n=>!e.has(n.path)).map(n=>({title:lE(n.path),path:n.path,fragment:void 0,children:[]}))}function dE(t,e,n){if(t.guideNonContentPaths.has(e))return!0;let r=fs(e).toLowerCase();return t.navPath===e?!0:aE.has(r)&&!n.has(e)}function pm(t){let e=new Set;for(let n of t){n.path!==void 0&&e.add(n.path);for(let r of pm(n.children))e.add(r)}return e}function cE(t,e,n){if(n===void 0||n.trim()==="")return{path:void 0,fragment:void 0};let{path:r,fragment:a}=Zn(n);return{path:r===""?void 0:t.resolveRelativePath(e,r),fragment:a}}function uE(t,e,n){if(n===void 0||n.trim()==="")return{path:void 0,fragment:void 0};let{path:r,fragment:a}=Zn(n);return{path:r===""?void 0:t.resolveRelativePath(e,r),fragment:a}}function hs(t,e){if(ym(t)&&e(t))return t;for(let n of t.children??[]){let r=hs(n,e);if(r!==void 0)return r}}function hm(t){for(let e of rr(t)){let n=lt(e);if(n==="a"||n==="span")return e}for(let e of rr(t)){if(lt(e)==="ol")continue;let n=hm(e);if(n!==void 0)return n}}function fm(t){return t.type==="text"?t.data??"":(t.children??[]).map(fm).join("")}function rr(t){return(t.children??[]).filter(ym)}function ym(t){return t.type==="tag"||t.type==="script"||t.type==="style"}function lt(t){return t.name?.toLowerCase()}function lE(t){let e=mE(t),n=fs(t).slice(0,-e.length||void 0).trim();return n===""?void 0:n}function fs(t){return t.replaceAll("\\","/").split("/").at(-1)??""}function mE(t){let e=fs(t),n=e.lastIndexOf(".");return n<=0?"":e.slice(n)}function gm(t){let e=t.replace(/\s+/gu," ").trim();return e===""?void 0:e}var aE,bm=i(()=>{"use strict";er();ps();Fi();aE=new Set(["toc.xhtml","nav.xhtml","contents.xhtml","tableofcontents.xhtml","cover.xhtml","titlepage.xhtml"])});function pE(t){if(t.hasEntry("META-INF/encryption.xml"))throw new Error("Encrypted EPUB is not supported: found META-INF/encryption.xml.")}async function hE(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 fE(t,e){let n=new Map;return e.map((r,a)=>wm(t,r,[a],n))}function wm(t,e,n,r){let a=us(e.fragment),o=e.path===void 0?`toc:${n.join(".")}`:t.createSectionId(e.path,a),s=yE(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)=>wm(t,d,[...n,c],r))}}function Sm(t,e){return t.map(n=>{let r=e.get(n.id);return{...n,hasContent:r?.hasContent??!1,wordsCount:r?.wordsCount??0,children:Sm(n.children,e)}})}function yE(t,e){let n=e.get(t)??0;return e.set(t,n+1),n===0?t:`${t}~${n+1}`}function gE(t,e){let n=new Map,r=new Map(e.spine.map(a=>[a.path,a.spineIndex]));for(let a of km(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 km(t){let e=[];for(let n of t)e.push(n),e.push(...km(n.children));return e}var ys,gs,ir,bs,xm=i(()=>{"use strict";er();er();am();bm();ps();ys=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)}},gs=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){pE(e);let n=await dm(e),r={digest:e.digest,mediaType:"application/epub+zip",name:e.name,...n.metadata.identifier===null?{}:{identifier:n.metadata.identifier}},a=await um(e,n),o=fE(e,a),s=gE(o,n),d=await em(e,s),c=Sm(o,d),u=await hE(e,n);return new t(r,n,u,c,new Mi(e,s))}readMeta(){return Promise.resolve(this.#t.metadata)}readCover(){return Promise.resolve(this.#n)}readSections(){return Promise.resolve(this.#r.map(e=>new ys(this,e)))}async openSection(e){return await this.#i.openSection(e)}async openSectionWithProvenance(e){return await this.#i.openSectionWithProvenance(e,this.#e)}},ir=class{get format(){return"epub"}async openSession(e,n){let r=await Wi.open(e);try{let a=await gs.open(r);return await n(a)}finally{await r.close()}}},bs=new ir});var Em=i(()=>{"use strict";xm()});var Im=i(()=>{"use strict";b()});import{SaxesParser as rD}from"saxes";var vm=i(()=>{"use strict";ct();Fi();Im()});var Cm=i(()=>{"use strict";vm()});async function*wE(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 SE(t){let e=t.lastIndexOf("."),n=(e<=0?t:t.slice(0,e)).trim();return n===""?null:n}var bE,ws,Ss,ar,Tm,_m,Pm=i(()=>{"use strict";Yn();bE="root",ws=class{#e;#t;constructor(e,n=bE){this.#e=e,this.#t=n}get id(){return this.#t}get hasContent(){return!0}get title(){}get children(){return[]}open(){return Promise.resolve(wE(this.#e))}},Ss=class{#e;#t;#n;constructor(e,n){this.#t=e,this.#n=n,this.#e=new ws(e)}readMeta(){return Promise.resolve({version:Ue,sourceFormat:this.#n,title:SE(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])}},ar=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))}},Tm=new ar("txt"),_m=new ar("markdown")});var or=i(()=>{"use strict"});import{z as le}from"zod";var fD,yD,Am=i(()=>{"use strict";or();fD=le.object({type:le.literal("artifact"),digest:le.string().regex(/^[0-9a-f]{64}$/iu),mediaType:le.string().min(1),name:le.string().optional(),identifier:le.string().max(1024).optional()}),yD=le.object({type:le.literal("text"),text:le.string(),locator:le.record(le.string(),le.unknown())})});var mt=i(()=>{"use strict";Yn();Em();Cm();Pm();Am();cs()});var ks=i(()=>{"use strict"});var ji=i(()=>{"use strict"});var dr=i(()=>{"use strict";mt();be();ks();ji();ji();X()});var kE,Om,xE,Nm,cr=i(()=>{"use strict";x();or();kE=`
|
|
21
|
+
`,locator:hs(c.locator,p,S),locatorEnd:S,locatorStart:p}),f+=1):e.push({baseLocator:c.locator,char:w,locator:hs(c.locator,p,S),locatorEnd:S,locatorStart:p})}}let n=[],r=0;for(let c of e){if(c.char===`
|
|
22
|
+
`){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:hs(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 hs(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},${Vl(a.startPath,e)},${Vl(a.endPath,n)})`}}function Gx(t){if(!t.startsWith("epubcfi(")||!t.endsWith(")"))return;let e=jx(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 jx(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 Vl(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 Ux(t){return t.name?.toLowerCase()}function Yl(t){return t.type==="text"}function Zl(t){return t.name!==void 0&&t.type!=="directive"}function em(t,e,n,r){let a=n?e:(e+1)*2,o=n||r===void 0?"":`[${$x(r)}]`;return`${t}/${a}${o}`}function tm(t,e,n,r){let a=om(t),{parentPath:o,textPath:s}=qx(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 qx(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 Bx(t,e){return{cfi:`epubcfi(${Hx(t)}${e})`}}function Hx(t){return`${om(t)}!`}function om(t){return`/6/${(t+1)*2}`}function $x(t){return[...t].map(e=>"[]^(),;=".includes(e)?`^${e}`:e).join("")}var Ox,Nx,ps,Gi,sm=i(()=>{"use strict";ct();Ox=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"]),Nx=new Set(["script","style"]),ps={},Gi=class{#e;#t;constructor(e,n){this.#e=e,this.#t=Dx(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=Wx(o,r.targets,e),d=Mx(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 rm(this.#e,e);return im(r,n)}}});import{SaxesParser as Jx}from"saxes";function ln(t){let e=new Jx({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 dm(r)}function we(t,e){return t.children.find(n=>nr(n.name)===e)}function Be(t,e){return t.children.filter(n=>nr(n.name)===e)}function ne(t,e){return t.attributes[e]}function tr(t){let e=t.text;for(let n of t.children)e+=tr(n);return e}function nr(t){let e=t.indexOf(":");return e===-1?t:t.slice(e+1)}function dm(t){return{name:t.name,attributes:Object.freeze({...t.attributes}),children:Object.freeze(t.children.map(dm)),text:t.text}}var ji=i(()=>{"use strict"});async function um(t){let e=await Qx(t),n=ln(await t.readText(e)),r=Xx(ne(n,"version")),a=we(n,"metadata"),o=we(n,"manifest"),s=we(n,"spine"),d=we(n,"guide"),c=Yx(t,e,o),u=new Map([...c.values()].map(v=>[v.path,v])),m=Zx(s,c),f=eE(t,e,d),w=Vx(a),p=tE(c),S=nE(c,s),g=rE(c,a);return{version:r,opfPath:e,metadata:{...w,version:Ue,sourceFormat:"epub"},manifest:c,manifestByPath:u,spine:m,navPath:p,ncxPath:S,coverPath:g?.path,coverMediaType:g?.mediaType,guideNonContentPaths:f}}async function Qx(t){let e=ln(await t.readText("META-INF/container.xml")),r=we(e,"rootfiles")?.children.find(o=>nr(o.name)==="rootfile"),a=r===void 0?void 0:ne(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 Vx(t){if(t===void 0)return cm();let e=_t(t,"title"),n=_t(t,"creator"),r=_t(t,"language"),a=_t(t,"identifier"),o=_t(t,"publisher"),s=_t(t,"date"),d=_t(t,"description");return{...cm(),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 cm(){return{version:Ue,sourceFormat:"epub",title:null,authors:[],language:null,identifier:null,publisher:null,publishedAt:null,description:null}}function _t(t,e){return t.children.filter(n=>nr(n.name)===e).map(n=>aE(tr(n))).filter(n=>n!==void 0)}function Yx(t,e,n){let r=new Map;if(n===void 0)return r;for(let a of Be(n,"item")){let o=ne(a,"id"),s=ne(a,"href"),d=ne(a,"media-type")??"";o===void 0||s===void 0||r.set(o,{id:o,path:t.resolveRelativePath(e,s),mediaType:d,properties:new Set((ne(a,"properties")??"").split(/\s+/u).map(c=>c.trim().toLowerCase()).filter(c=>c!==""))})}return r}function Zx(t,e){return t===void 0?[]:Be(t,"itemref").map((n,r)=>{let a=ne(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 eE(t,e,n){let r=new Set;if(n===void 0)return r;for(let a of Be(n,"reference")){let o=(ne(a,"type")??"").trim().toLowerCase();if(!zx.has(o))continue;let s=ne(a,"href");s===void 0||s.trim()===""||r.add(t.resolveRelativePath(e,Zn(s).path))}return r}function tE(t){for(let e of t.values())if(e.properties.has("nav"))return e.path}function nE(t,e){let n=e===void 0?void 0:ne(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 rE(t,e){for(let r of t.values())if(r.properties.has("cover-image")&&r.mediaType.startsWith("image/"))return r;let n=iE(e);if(n!==void 0){let r=t.get(n);if(r?.mediaType.startsWith("image/")===!0)return r}for(let r of Kx){let a=t.get(r);if(a?.mediaType.startsWith("image/")===!0)return a}for(let r of t.values())if(r.mediaType.startsWith("image/")&&Vo(r.path).toLowerCase().includes("cover"))return r}function iE(t){if(t!==void 0)for(let e of Be(t,"meta")){if((ne(e,"name")??"").trim().toLowerCase()!=="cover")continue;let r=ne(e,"content");if(r!==void 0&&r.trim()!=="")return r.trim()}}function aE(t){let e=t.replace(/\s+/gu," ").trim();return e===""?void 0:e}var Kx,zx,fs=i(()=>{"use strict";Tt();Yn();er();ji();Kx=["cover-image","coverimg","cover-img","cover"],zx=new Set(["cover","titlepage","other.titlepage"])});import{parseDocument as oE}from"htmlparser2";async function mm(t,e){let n=await dE(t,e)??await cE(t,e)??[];if(n.length===0)return lm(e,new Set);let r=fm(n),a=lm(e,r);return a.length===0?n:[...n,...a]}async function dE(t,e){if(e.navPath===void 0)return;let n=oE(await t.readText(e.navPath),{decodeEntities:!0}),r=ys(n,s=>lt(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=ys(r,s=>lt(s)==="ol");if(a===void 0)return;let o=rr(a).filter(s=>lt(s)==="li").map(s=>pm(t,e.navPath,s)).filter(s=>s!==void 0);return o.length===0?void 0:o}async function cE(t,e){if(e.ncxPath===void 0)return;let n=ln(await t.readText(e.ncxPath)),r=we(n,"navMap");if(r===void 0)return;let a=Be(r,"navPoint").map(o=>hm(t,e.ncxPath,o)).filter(o=>o!==void 0);return a.length===0?void 0:a}function pm(t,e,n){let r=ym(n),a=r===void 0?void 0:wm(gm(r)),o=r!==void 0&<(r)==="a"?r.attribs?.href:void 0,s=lE(t,e,o),d=rr(n).filter(c=>lt(c)==="ol").flatMap(c=>rr(c)).filter(c=>lt(c)==="li").map(c=>pm(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 hm(t,e,n){let r=we(n,"navLabel"),a=r===void 0?void 0:we(r,"text"),o=a===void 0?void 0:wm(tr(a)),s=we(n,"content"),d=mE(t,e,ne(s??n,"src")),c=Be(n,"navPoint").map(u=>hm(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 lm(t,e){return t.spine.filter(n=>!uE(t,n.path,e)).filter(n=>!e.has(n.path)).map(n=>({title:pE(n.path),path:n.path,fragment:void 0,children:[]}))}function uE(t,e,n){if(t.guideNonContentPaths.has(e))return!0;let r=gs(e).toLowerCase();return t.navPath===e?!0:sE.has(r)&&!n.has(e)}function fm(t){let e=new Set;for(let n of t){n.path!==void 0&&e.add(n.path);for(let r of fm(n.children))e.add(r)}return e}function lE(t,e,n){if(n===void 0||n.trim()==="")return{path:void 0,fragment:void 0};let{path:r,fragment:a}=Zn(n);return{path:r===""?void 0:t.resolveRelativePath(e,r),fragment:a}}function mE(t,e,n){if(n===void 0||n.trim()==="")return{path:void 0,fragment:void 0};let{path:r,fragment:a}=Zn(n);return{path:r===""?void 0:t.resolveRelativePath(e,r),fragment:a}}function ys(t,e){if(bm(t)&&e(t))return t;for(let n of t.children??[]){let r=ys(n,e);if(r!==void 0)return r}}function ym(t){for(let e of rr(t)){let n=lt(e);if(n==="a"||n==="span")return e}for(let e of rr(t)){if(lt(e)==="ol")continue;let n=ym(e);if(n!==void 0)return n}}function gm(t){return t.type==="text"?t.data??"":(t.children??[]).map(gm).join("")}function rr(t){return(t.children??[]).filter(bm)}function bm(t){return t.type==="tag"||t.type==="script"||t.type==="style"}function lt(t){return t.name?.toLowerCase()}function pE(t){let e=hE(t),n=gs(t).slice(0,-e.length||void 0).trim();return n===""?void 0:n}function gs(t){return t.replaceAll("\\","/").split("/").at(-1)??""}function hE(t){let e=gs(t),n=e.lastIndexOf(".");return n<=0?"":e.slice(n)}function wm(t){let e=t.replace(/\s+/gu," ").trim();return e===""?void 0:e}var sE,Sm=i(()=>{"use strict";er();fs();ji();sE=new Set(["toc.xhtml","nav.xhtml","contents.xhtml","tableofcontents.xhtml","cover.xhtml","titlepage.xhtml"])});function fE(t){if(t.hasEntry("META-INF/encryption.xml"))throw new Error("Encrypted EPUB is not supported: found META-INF/encryption.xml.")}async function yE(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 gE(t,e){let n=new Map;return e.map((r,a)=>km(t,r,[a],n))}function km(t,e,n,r){let a=ms(e.fragment),o=e.path===void 0?`toc:${n.join(".")}`:t.createSectionId(e.path,a),s=bE(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)=>km(t,d,[...n,c],r))}}function xm(t,e){return t.map(n=>{let r=e.get(n.id);return{...n,hasContent:r?.hasContent??!1,wordsCount:r?.wordsCount??0,children:xm(n.children,e)}})}function bE(t,e){let n=e.get(t)??0;return e.set(t,n+1),n===0?t:`${t}~${n+1}`}function wE(t,e){let n=new Map,r=new Map(e.spine.map(a=>[a.path,a.spineIndex]));for(let a of Em(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 Em(t){let e=[];for(let n of t)e.push(n),e.push(...Em(n.children));return e}var bs,ws,ir,Ss,Im=i(()=>{"use strict";er();er();sm();Sm();fs();bs=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)}},ws=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){fE(e);let n=await um(e),r={digest:e.digest,mediaType:"application/epub+zip",name:e.name,...n.metadata.identifier===null?{}:{identifier:n.metadata.identifier}},a=await mm(e,n),o=gE(e,a),s=wE(o,n),d=await nm(e,s),c=xm(o,d),u=await yE(e,n);return new t(r,n,u,c,new Gi(e,s))}readMeta(){return Promise.resolve(this.#t.metadata)}readCover(){return Promise.resolve(this.#n)}readSections(){return Promise.resolve(this.#r.map(e=>new bs(this,e)))}async openSection(e){return await this.#i.openSection(e)}async openSectionWithProvenance(e){return await this.#i.openSectionWithProvenance(e,this.#e)}},ir=class{get format(){return"epub"}async openSession(e,n){let r=await Fi.open(e);try{let a=await ws.open(r);return await n(a)}finally{await r.close()}}},Ss=new ir});var vm=i(()=>{"use strict";Im()});var Rm=i(()=>{"use strict";b()});import{SaxesParser as aD}from"saxes";var Cm=i(()=>{"use strict";ct();ji();Rm()});var _m=i(()=>{"use strict";Cm()});async function*kE(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 xE(t){let e=t.lastIndexOf("."),n=(e<=0?t:t.slice(0,e)).trim();return n===""?null:n}var SE,ks,xs,ar,Pm,Am,Lm=i(()=>{"use strict";Yn();SE="root",ks=class{#e;#t;constructor(e,n=SE){this.#e=e,this.#t=n}get id(){return this.#t}get hasContent(){return!0}get title(){}get children(){return[]}open(){return Promise.resolve(kE(this.#e))}},xs=class{#e;#t;#n;constructor(e,n){this.#t=e,this.#n=n,this.#e=new ks(e)}readMeta(){return Promise.resolve({version:Ue,sourceFormat:this.#n,title:xE(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])}},ar=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 xs(e,this.#e))}},Pm=new ar("txt"),Am=new ar("markdown")});var or=i(()=>{"use strict"});import{z as le}from"zod";var gD,bD,Om=i(()=>{"use strict";or();gD=le.object({type:le.literal("artifact"),digest:le.string().regex(/^[0-9a-f]{64}$/iu),mediaType:le.string().min(1),name:le.string().optional(),identifier:le.string().max(1024).optional()}),bD=le.object({type:le.literal("text"),text:le.string(),locator:le.record(le.string(),le.unknown())})});var mt=i(()=>{"use strict";Yn();vm();_m();Lm();Om();ls()});var Es=i(()=>{"use strict"});var qi=i(()=>{"use strict"});var dr=i(()=>{"use strict";mt();be();Es();qi();qi();X()});var EE,Dm,IE,Wm,cr=i(()=>{"use strict";x();or();EE=`
|
|
23
23
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
24
24
|
digest BLOB NOT NULL UNIQUE,
|
|
25
25
|
short_uid TEXT NOT NULL UNIQUE
|
|
@@ -29,7 +29,7 @@ var Rk=Object.defineProperty;var i=(t,e)=>()=>(t&&(e=t(t=0)),e);var Ck=(t,e)=>{f
|
|
|
29
29
|
media_type TEXT NOT NULL,
|
|
30
30
|
name TEXT,
|
|
31
31
|
identifier TEXT
|
|
32
|
-
`,
|
|
32
|
+
`,Dm=`
|
|
33
33
|
CREATE TABLE IF NOT EXISTS serials (
|
|
34
34
|
id INTEGER PRIMARY KEY,
|
|
35
35
|
document_order INTEGER NOT NULL DEFAULT 0
|
|
@@ -325,7 +325,7 @@ var Rk=Object.defineProperty;var i=(t,e)=>()=>(t&&(e=t(t=0)),e);var Ck=(t,e)=>{f
|
|
|
325
325
|
ON text_sentence_records(kind, chapter_id, sentence_index);
|
|
326
326
|
|
|
327
327
|
CREATE TABLE IF NOT EXISTS source_artifacts (
|
|
328
|
-
${
|
|
328
|
+
${EE}
|
|
329
329
|
);
|
|
330
330
|
|
|
331
331
|
CREATE TABLE IF NOT EXISTS source_locators (
|
|
@@ -391,7 +391,7 @@ ${kE}
|
|
|
391
391
|
triple_predicate,
|
|
392
392
|
triple_object_qid
|
|
393
393
|
);
|
|
394
|
-
`,
|
|
394
|
+
`,IE=`
|
|
395
395
|
id INTEGER PRIMARY KEY,
|
|
396
396
|
archive_id INTEGER NOT NULL,
|
|
397
397
|
kind INTEGER NOT NULL,
|
|
@@ -401,14 +401,14 @@ ${kE}
|
|
|
401
401
|
byte_offset INTEGER NOT NULL DEFAULT 0,
|
|
402
402
|
byte_length INTEGER NOT NULL DEFAULT 0,
|
|
403
403
|
UNIQUE(archive_id, kind, chapter_id, sentence_index)
|
|
404
|
-
`,
|
|
404
|
+
`,Wm=`
|
|
405
405
|
CREATE TABLE IF NOT EXISTS search_index_state (
|
|
406
406
|
key TEXT PRIMARY KEY,
|
|
407
407
|
value TEXT NOT NULL
|
|
408
408
|
);
|
|
409
409
|
|
|
410
410
|
CREATE TABLE IF NOT EXISTS text_sentence_records (
|
|
411
|
-
${
|
|
411
|
+
${IE}
|
|
412
412
|
);
|
|
413
413
|
|
|
414
414
|
CREATE INDEX IF NOT EXISTS idx_text_sentence_records_chapter
|
|
@@ -465,22 +465,22 @@ ${xE}
|
|
|
465
465
|
updated_at INTEGER NOT NULL,
|
|
466
466
|
PRIMARY KEY (archive_id, chapter_id)
|
|
467
467
|
);
|
|
468
|
-
`});var Pt=i(()=>{"use strict";x();Te()});var
|
|
468
|
+
`});var Pt=i(()=>{"use strict";x();Te()});var Mm=i(()=>{"use strict";x();Pt()});var Fm=i(()=>{"use strict";x()});var Gm=i(()=>{"use strict";x();_i()});var jm=i(()=>{"use strict";x();Te()});var Um=i(()=>{"use strict";x();Pt()});var qm=i(()=>{"use strict";x();Pt()});var Bm=i(()=>{"use strict";x();Pt()});var Hm=i(()=>{"use strict";x();Pt()});var $m=i(()=>{"use strict";x();Pt()});var zm=i(()=>{"use strict";he();x();or()});var Qm=i(()=>{"use strict";x()});var Xm=i(()=>{"use strict";x()});var Vm=i(()=>{"use strict";x()});var Ym=i(()=>{"use strict";Qm();Xm();Vm()});var Cs=i(()=>{"use strict";Mm();Fm();Gm();jm();Um();qm();Bm();Hm();$m();zm();Ym()});var Ts=i(()=>{"use strict"});var mp=i(()=>{"use strict";b()});var pp=i(()=>{"use strict";fe();Xn()});var At=i(()=>{"use strict"});var hp=i(()=>{"use strict";b();x();cr();At()});var fp=i(()=>{"use strict";fe();Ts()});var yp=i(()=>{"use strict"});import{z as _s}from"zod";var ZM,bp=i(()=>{"use strict";b();Yn();ls();dr();x();rs();cr();Cs();Te();Ts();mp();pp();hp();Xn();fp();yp();ZM=_s.object({mediaType:_s.string().min(1),path:_s.string()})});var wp=i(()=>{"use strict"});var As=i(()=>{"use strict";bp();wp()});var kp=i(()=>{"use strict";ss()});var P=i(()=>{"use strict";x();Ml();rs();ss();As();kp();cr();or();Cs();Te()});var Os=i(()=>{"use strict"});var $e=i(()=>{"use strict";Os()});async function Ip(t){let e=await AE(t);try{return await PE(e,t),await e.queryOne(`
|
|
469
469
|
SELECT 1 AS active
|
|
470
470
|
FROM state_locks
|
|
471
471
|
WHERE scope = ? AND resource_key = ?
|
|
472
472
|
LIMIT 1
|
|
473
|
-
`,[t.scope,t.resourceKey],()=>!0)===!0}finally{await e.close()}}async function
|
|
473
|
+
`,[t.scope,t.resourceKey],()=>!0)===!0}finally{await e.close()}}async function PE(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(`
|
|
474
474
|
SELECT scope, resource_key, mode, owner_id, owner_pid, heartbeat_at
|
|
475
475
|
FROM state_locks
|
|
476
476
|
${n.length===0?"":`WHERE ${n.join(" AND ")}`}
|
|
477
|
-
`,r,o=>({lock:
|
|
477
|
+
`,r,o=>({lock:LE(o),resourceKey:T(o,"resource_key"),scope:T(o,"scope")}));for(let{lock:o,resourceKey:s,scope:d}of a)NE(o,e.staleMs)&&await t.run(`
|
|
478
478
|
DELETE FROM state_locks
|
|
479
479
|
WHERE scope = ?
|
|
480
480
|
AND resource_key = ?
|
|
481
481
|
AND owner_id = ?
|
|
482
482
|
AND heartbeat_at = ?
|
|
483
|
-
`,[d,s,o.ownerId,o.heartbeatAt])}async function
|
|
483
|
+
`,[d,s,o.ownerId,o.heartbeatAt])}async function AE(t){if(t.databaseFile!==void 0)return await z.open(t.databaseFile,Ep,{create:!0,mode:"readwrite"});if(t.stateDatabaseName!==void 0)return await Q(t.stateDatabaseName,Ep);throw new Error("State lock requires a database File or state database name.")}function LE(t){return{heartbeatAt:k(t,"heartbeat_at"),mode:OE(T(t,"mode")),ownerId:T(t,"owner_id")}}function OE(t){return t==="read"||t==="write"?t:"write"}function NE(t,e=_E){return Date.now()-t.heartbeatAt>e}var Ep,_E,Lt=i(()=>{"use strict";M();x();P();Ep=`
|
|
484
484
|
CREATE TABLE IF NOT EXISTS state_locks (
|
|
485
485
|
scope TEXT NOT NULL,
|
|
486
486
|
resource_key TEXT NOT NULL,
|
|
@@ -494,7 +494,7 @@ ${xE}
|
|
|
494
494
|
|
|
495
495
|
CREATE INDEX IF NOT EXISTS idx_state_locks_resource
|
|
496
496
|
ON state_locks(scope, resource_key);
|
|
497
|
-
`,
|
|
497
|
+
`,_E=300*1e3});async function Rp(t){return await Ip({stateDatabaseName:"core.sqlite",resourceKey:ME(t),scope:WE,staleMs:vp})||await FE(t)}function ME(t){return String(t)}async function FE(t){let e=await GE();try{let n=await e.queryOne("SELECT owner_pid, heartbeat_at FROM library_locks WHERE library_id = ?",[t],r=>({heartbeatAt:k(r,"heartbeat_at"),ownerPid:k(r,"owner_pid")}));return n!==void 0&&jE(n)}finally{await e.close()}}async function GE(){return await Q("core.sqlite",DE)}function jE(t){return Date.now()-t.heartbeatAt<=vp}var DE,WE,vp,Ot=i(()=>{"use strict";x();P();Lt();DE=`
|
|
498
498
|
CREATE TABLE IF NOT EXISTS library_locks (
|
|
499
499
|
library_id INTEGER PRIMARY KEY,
|
|
500
500
|
mode TEXT NOT NULL,
|
|
@@ -503,21 +503,21 @@ ${xE}
|
|
|
503
503
|
heartbeat_at INTEGER NOT NULL,
|
|
504
504
|
created_at INTEGER NOT NULL
|
|
505
505
|
);
|
|
506
|
-
`,
|
|
506
|
+
`,WE="library",vp=300*1e3});var FF,Wt=i(()=>{"use strict";b();x();P();$e();he();M();Ot();Os();FF=Promise.resolve()});var jF,mr=i(()=>{"use strict";jF=new RegExp("\\p{Script=Han}","u")});var Ds=i(()=>{"use strict";he()});var _p=i(()=>{"use strict"});async function Lp(){let t=await Q("cache/search-index-query-hits.sqlite",Ap),e=C().library,n=Ws.get(e);n===void 0&&(n=t.transaction(async()=>await qE(t)).catch(r=>{throw Ws.delete(e),r}),Ws.set(e,n));try{await n}catch(r){throw await t.close(),r}return t}async function qE(t){await t.queryOne("SELECT value FROM query_cache_metadata WHERE key = 'schema_version'",void 0,n=>String(n.value))!==Pp&&await t.execute(`
|
|
507
507
|
DROP TABLE IF EXISTS query_dense_segment_hits;
|
|
508
508
|
DROP TABLE IF EXISTS query_text_hits;
|
|
509
509
|
DROP TABLE IF EXISTS query_object_hits;
|
|
510
510
|
DROP TABLE IF EXISTS query_runs;
|
|
511
511
|
DROP TABLE IF EXISTS query_cache_metadata;
|
|
512
|
-
${
|
|
513
|
-
`)}async function
|
|
512
|
+
${Ap}
|
|
513
|
+
`)}async function Op(t){if(t.length===0)return;let e=await Lp();try{await e.transaction(async()=>{for(let n of t)await Np(e,n)})}finally{await e.close()}}async function Np(t,e){await BE(t,e),await t.run("DELETE FROM query_runs WHERE query_id = ?",[e])}async function BE(t,e){await t.run("DELETE FROM query_dense_segment_hits WHERE query_id = ?",[e]),await t.run("DELETE FROM query_text_hits WHERE query_id = ?",[e]),await t.run("DELETE FROM query_object_hits WHERE query_id = ?",[e])}var Pp,UE,XF,Ap,Ws,Ms=i(()=>{"use strict";x();P();b();_p();Pp="4",UE=-1,XF=Date.now(),Ap=`
|
|
514
514
|
CREATE TABLE IF NOT EXISTS query_cache_metadata (
|
|
515
515
|
key TEXT PRIMARY KEY,
|
|
516
516
|
value TEXT NOT NULL
|
|
517
517
|
);
|
|
518
518
|
|
|
519
519
|
INSERT OR IGNORE INTO query_cache_metadata(key, value)
|
|
520
|
-
VALUES ('schema_version', '${
|
|
520
|
+
VALUES ('schema_version', '${Pp}');
|
|
521
521
|
|
|
522
522
|
CREATE TABLE IF NOT EXISTS query_runs (
|
|
523
523
|
query_id TEXT PRIMARY KEY,
|
|
@@ -533,7 +533,7 @@ CREATE TABLE IF NOT EXISTS query_object_hits (
|
|
|
533
533
|
owner_kind INTEGER NOT NULL,
|
|
534
534
|
owner_id TEXT NOT NULL,
|
|
535
535
|
property_kind INTEGER NOT NULL,
|
|
536
|
-
chapter_id INTEGER NOT NULL DEFAULT ${
|
|
536
|
+
chapter_id INTEGER NOT NULL DEFAULT ${UE},
|
|
537
537
|
match_tier INTEGER NOT NULL,
|
|
538
538
|
raw_score REAL NOT NULL,
|
|
539
539
|
score REAL,
|
|
@@ -584,7 +584,7 @@ CREATE TABLE IF NOT EXISTS query_dense_segment_hits (
|
|
|
584
584
|
|
|
585
585
|
CREATE INDEX IF NOT EXISTS idx_query_dense_segment_hits_score
|
|
586
586
|
ON query_dense_segment_hits(query_id, raw_score DESC, archive_id, chapter_id, start_sentence_index, kind);
|
|
587
|
-
`,
|
|
587
|
+
`,Ws=new WeakMap});var Dp,Mt=i(()=>{"use strict";Dp=`
|
|
588
588
|
CREATE TABLE IF NOT EXISTS search_sessions (
|
|
589
589
|
session_id TEXT PRIMARY KEY,
|
|
590
590
|
ranking_version INTEGER NOT NULL,
|
|
@@ -702,32 +702,32 @@ ON search_sessions(expires_at);
|
|
|
702
702
|
|
|
703
703
|
CREATE INDEX IF NOT EXISTS idx_search_sessions_prune
|
|
704
704
|
ON search_sessions(accessed_at DESC, created_at DESC, session_id);
|
|
705
|
-
`});async function mn(){return await Q("cache/search-sessions.sqlite",
|
|
705
|
+
`});async function mn(){return await Q("cache/search-sessions.sqlite",Dp)}var pn=i(()=>{"use strict";P();Mt()});var Hi=i(()=>{"use strict"});async function Wp(t,e){await Mp(t,e),await t.run("DELETE FROM search_sessions WHERE session_id = ?",[e])}async function Mp(t,e){await t.run("DELETE FROM search_evidence_raw_signals WHERE session_id = ?",[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 Fp(t){await t.run(`
|
|
706
706
|
DELETE FROM predicate_dictionary
|
|
707
707
|
WHERE NOT EXISTS (
|
|
708
708
|
SELECT 1
|
|
709
709
|
FROM search_triple_hits
|
|
710
710
|
WHERE search_triple_hits.predicate_id = predicate_dictionary.id
|
|
711
711
|
)
|
|
712
|
-
`)}var
|
|
712
|
+
`)}var Fs=i(()=>{"use strict";x();pn();Hi();Mt()});async function $i(t){let e=await mn();try{let n=await Gp(e),r=await e.queryOne("SELECT COUNT(*) AS count FROM search_sessions",void 0,c=>k(c,"count")),a=t.force?await KE(e):await JE(e,t.now),o=t.force?[]:await zE(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 Fp(e)}),await e.run("VACUUM"),await Op(s));let d=await Gp(e);return{freedBytes:Math.max(0,n-d),removed:s.length,scanned:r??0}}finally{await e.close()}}async function JE(t,e){return await t.queryAll(`
|
|
713
713
|
SELECT session_id
|
|
714
714
|
FROM search_sessions
|
|
715
715
|
WHERE expires_at < ?
|
|
716
|
-
`,[e],n=>T(n,"session_id"))}async function
|
|
716
|
+
`,[e],n=>T(n,"session_id"))}async function KE(t){return await t.queryAll("SELECT session_id FROM search_sessions",void 0,e=>T(e,"session_id"))}async function zE(t){return await t.queryAll(`
|
|
717
717
|
SELECT session_id
|
|
718
718
|
FROM search_sessions
|
|
719
719
|
ORDER BY accessed_at DESC, created_at DESC, session_id
|
|
720
720
|
LIMIT -1 OFFSET ?
|
|
721
|
-
`,[500],e=>T(e,"session_id"))}async function
|
|
722
|
-
|
|
723
|
-
`)});import{jsonrepair as
|
|
724
|
-
prev: ${
|
|
725
|
-
text: ${
|
|
726
|
-
next: ${
|
|
721
|
+
`,[500],e=>T(e,"session_id"))}async function Gp(t){let e=await t.queryOne("PRAGMA page_count",void 0,r=>k(r,"page_count"))??0,n=await t.queryOne("PRAGMA page_size",void 0,r=>k(r,"page_size"))??0;return e*n}var jp=i(()=>{"use strict";x();Ms();pn();Mt();Fs()});var Gs=i(()=>{"use strict"});var Up=i(()=>{"use strict";Mt();Gs()});var Ji=i(()=>{"use strict"});var pr=i(()=>{"use strict";x();pn();Hi();Up();Ji()});var qp=i(()=>{"use strict";M();Mt()});var Bp=i(()=>{"use strict";x();Ds();pn();pr();qp();Hi();Mt();Fs()});var Hp=i(()=>{"use strict";x();pn();pr()});var Gt=i(()=>{"use strict";Ds();jp();pr();Bp();Hp();Ji()});var Ki=i(()=>{"use strict"});var zi=i(()=>{"use strict";mt()});var qs=i(()=>{"use strict";he()});var Qi=i(()=>{"use strict"});var Bs=i(()=>{"use strict";Qi()});var Hs=i(()=>{"use strict";Gs();Qi()});var Xi=i(()=>{"use strict";Ki();qs();Bs();Hs()});var nh=i(()=>{"use strict";$e()});var rh=i(()=>{"use strict";Ki();zi();qs();Qi();Xi();Bs();Hs();nh()});var F=i(()=>{"use strict";rh()});var Ks=i(()=>{"use strict"});var zs=i(()=>{"use strict";X();dr();Es();Ks()});var ih=i(()=>{"use strict";zs()});var $=i(()=>{"use strict";zs();ih();Ks();qi()});var b0,w0,jt=i(()=>{"use strict";M();b0=new RegExp("\\p{Script=Han}+","gu"),w0=new RegExp("^\\p{Script=Han}+$","u")});var Vi=i(()=>{"use strict";M()});var Vs=i(()=>{"use strict";At()});var Yi=i(()=>{"use strict";x();Vs()});var sh=i(()=>{"use strict";jt();Vi();Yi();At()});var ch=i(()=>{"use strict";At()});var uh=i(()=>{"use strict";jt()});var lh=i(()=>{"use strict"});var nd=i(()=>{"use strict";x();lh();Vi()});var ph=i(()=>{"use strict";x();jt();uh();Vs();At();nd();Yi();Ms()});var hh=i(()=>{"use strict";sh();ch();Vi();ph();nd();At();Yi()});var Ke=i(()=>{"use strict";hh();jt()});var Ut=i(()=>{"use strict";$();Ke();jt();zi()});var br=i(()=>{"use strict"});var ie=i(()=>{"use strict";be();$e();F()});var ke=i(()=>{"use strict";$e();F()});var Pe=i(()=>{"use strict";$();ct();F();ie()});var Le=i(()=>{"use strict";$();Ke();F();ie();ke();Pe();F();Ut()});var bn=i(()=>{"use strict";br();Gt();Ke();Le();ke()});var ud=i(()=>{"use strict";$();mr();F();ie();Pe();ke()});var Sr=i(()=>{"use strict";X()});var Oe=i(()=>{"use strict";$();Sr();F();ie();Pe()});var ia=i(()=>{"use strict"});var kr=i(()=>{"use strict";br()});var xr=i(()=>{"use strict";Pe();Oe()});var ld=i(()=>{"use strict";F();Oe();kr();xr()});var Ch=i(()=>{"use strict";br();Ke();Ut();F();Le();ia();Oe();kr();ld();xr();xr();kr()});var Th=i(()=>{"use strict";Ch();ld();kr();xr()});var Ir=i(()=>{"use strict";Th()});var Ph=i(()=>{"use strict";br();Gt();pr();Ji();F();ie();Pe();Oe();ke();Ir()});var vr=i(()=>{"use strict";ie();Oe();F();ke();Ir();Ph()});var hd=i(()=>{"use strict";$();F();ie();Pe();Oe();vr();Rr();ke()});var Rr=i(()=>{"use strict";F();ie();Pe();ke();hd()});var ca=i(()=>{"use strict";F();Le();ke()});var ua=i(()=>{"use strict";F();Ke()});var la=i(()=>{"use strict";$();mr();Gt();Ke();F();bn();ud();vr();Rr();Le();ca();ua()});var wn=i(()=>{"use strict";Ke()});var Fh=i(()=>{"use strict";mr();Gt();F();Ut();bn();ud();vr();Rr();la();Le();wn()});var Gh=i(()=>{"use strict";Fh();ca();ua();la();bn();Le()});var ma=i(()=>{"use strict";Oe();Ir();ie()});var Cr=i(()=>{"use strict";F()});var ha=i(()=>{"use strict";F();Ut();ie();Le();bn();Ke();Cr()});var yd=i(()=>{"use strict";F();ke();ma();ha();Cr()});var gd=i(()=>{"use strict"});var qh=i(()=>{"use strict";Sr();F();Oe();ma();yd();ha();Cr();gd();ie();ia()});var ga=i(()=>{"use strict";qh();yd();ma();ha();Cr();gd()});var bd=i(()=>{"use strict";P();$e();$();Sr();F();Oe();Ir();Rr();ke();ga();ie();Pe()});var Bh=i(()=>{"use strict";P();$();be();$e();he();F();Pe()});var Hh=i(()=>{"use strict";bd();ga();ie()});var vd=i(()=>{"use strict";Gh();bd();ga();Ut();ie();hd();vr();Bh();Hh()});var zh=i(()=>{"use strict";vd()});var rv,Qh=i(()=>{"use strict";he();M();x();P();rv=10080*60*1e3});var Xh=i(()=>{"use strict"});var Vh=i(()=>{"use strict";x();Qh();Xh()});var Yh=i(()=>{"use strict"});var Zh=i(()=>{"use strict";Vh();Yh()});var yt=i(()=>{"use strict";zh();Zh();Gt()});var Ne=i(()=>{"use strict"});var ze=i(()=>{"use strict";Ne()});import{z as Pd}from"zod";var Dr,Ea,Ad,$J,Qe=i(()=>{"use strict";Ne();Dr=1,Ea=5,Ad=`${JSON.stringify({formatVersion:Dr,schemaVersion:Ea})}
|
|
722
|
+
`,$J=Pd.object({formatVersion:Pd.literal(Dr),schemaVersion:Pd.number().int().positive().optional()})});var af=i(()=>{"use strict";b();ze();Ne();Qe()});var xn=i(()=>{"use strict";b();ze()});var Ia=i(()=>{"use strict";b();Ne();Qe();ze();xn();X()});var of=i(()=>{"use strict";Ne()});var df=i(()=>{"use strict";b();Ne();of();Qe();ze()});var pf=i(()=>{"use strict";af();Ia();Qe();df()});var ff=i(()=>{"use strict";$e()});var yf=i(()=>{"use strict";X()});var Ta=i(()=>{"use strict"});var Fr=i(()=>{"use strict";zo();Hn()});var qd=i(()=>{"use strict";b();Ta();Fr()});var gf=i(()=>{"use strict";Fr()});var bf=i(()=>{"use strict";Ta();Fr()});var Bd=i(()=>{"use strict";Fr()});var wf=i(()=>{"use strict";qd();gf();bf();Bd();Ta();X()});var Sf=i(()=>{"use strict";qd();wf();Bd()});var kf=i(()=>{"use strict";yf();Sf()});var _a=i(()=>{"use strict";$();X();b();kf();Xe()});var gt=i(()=>{"use strict"});var Rz,Gr=i(()=>{"use strict";b();x();zn();gt();Rz=new Rt(1)});var $d=i(()=>{"use strict";x();M();gt();Gr()});var Pa=i(()=>{"use strict";b();M()});var Jd=i(()=>{"use strict";M();Gr();Pa()});var Qd=i(()=>{"use strict";b();Qe();Ne();ze();Ia();gt();$d();Jd();Gr();xn()});var Cf=i(()=>{"use strict";gt();ze()});var Xd=i(()=>{"use strict";b();M();Gr()});var Vd=i(()=>{"use strict";b();M();Ia();Qe();ze();gt();Ne();Qd();Cf();$d();Xd();Jd();Pa();Lt();xn()});var Tf=i(()=>{"use strict";M();Vd();Qd();Xd();gt()});async function Aa(t){let e=C().documentStore,n=0,r=0,a=0,o;try{o=await e.list()}catch(d){if(ot(d)&&d.code==="ENOENT")return{freedBytes:a,removed:r,scanned:n};throw d}for(let d of o){if(!K(d)||!d.name.startsWith(".wikg-session-"))continue;n+=1;let c=await rt(d);!t.force&&(c===void 0||t.now-c<Cv)||(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())K(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 Cv,_f=i(()=>{"use strict";b();fe();Cv=3600*1e3});var Pf=i(()=>{"use strict";x();b();M();gt();Pa()});var Yd=i(()=>{"use strict";Tf();Vd();_f();Pf()});var Zd=i(()=>{"use strict";Yd()});var Af=i(()=>{"use strict";P();_a();yt();Zd()});var Lf=i(()=>{"use strict"});var Xe=i(()=>{"use strict";pf();ff();Af();Lf();Zd()});var Of=i(()=>{"use strict"});var Nf=i(()=>{"use strict"});import{sha256 as _X}from"@noble/hashes/sha2.js";var PX,AX,tc=i(()=>{"use strict";PX=new RegExp("\\p{Script=Han}+","gu"),AX=new RegExp("^\\p{Script=Han}+$","u")});var nc=i(()=>{"use strict";tc()});import{z as l}from"zod";function Df(){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:L,sentenceIndexes:l.array(L),type:l.literal("reading-chunk"),weight:l.number(),wordsCount:L})}function Wf(){return l.object({fromChunkId:l.string(),strength:l.string().optional(),toChunkId:l.string(),type:l.literal("reading-edge"),weight:l.number()})}function Mf(){return l.object({endSentenceIndex:L,groupId:L,startSentenceIndex:L,type:l.literal("fragment-group")})}function Ff(){return l.object({firstLabel:l.string(),groupId:L,id:l.string(),lastLabel:l.string(),localSnakeId:L,size:L,type:l.literal("snake"),weight:l.number(),wordsCount:L})}function Gf(){return l.object({chunkId:l.string(),position:L,snakeId:l.string(),type:l.literal("snake-chunk")})}function jf(){return l.object({fromSnakeId:l.string(),toSnakeId:l.string(),type:l.literal("snake-edge"),weight:l.number()})}function Uf(){return l.object({confidence:l.number().optional(),fragmentId:L.optional(),id:l.string(),note:l.string().optional(),qid:l.string(),rangeEnd:L,rangeStart:L,sentenceIndex:L.optional(),surface:l.string(),type:l.literal("mention")})}function Pv(){return l.object({confidence:l.number().optional(),evidenceSentenceIndexes:l.array(L),id:l.string(),note:l.string().optional(),predicate:l.string(),sourceMentionId:l.string(),targetMentionId:l.string(),type:l.literal("mention-link")})}var L,rc,MX,FX,$t=i(()=>{"use strict";L=l.number().int().nonnegative(),rc={sentenceIndex:L,text:l.string(),wordsCount:L},MX=l.discriminatedUnion("type",[l.object({language:l.string().optional(),prompt:l.string().optional(),type:l.literal("job-options")}),l.object({...rc,fragmentId:L.optional(),type:l.literal("source-text")}),l.object({fragmentId:L,summary:l.string(),type:l.literal("source-fragment")}),l.object({...rc,fragmentId:L.optional(),type:l.literal("source-sentence")}),l.object({...rc,type:l.literal("summary-sentence")}),l.object({chapterId:l.number().int(),title:l.string(),type:l.literal("chapter-title")}),Df(),Wf(),Mf(),Ff(),Gf(),jf(),Uf()]),FX=l.discriminatedUnion("type",[l.object({language:l.string().optional(),prompt:l.string(),scope:l.enum(["knowledge-graph","reading-graph"]),type:l.literal("job-parameter")}),Df(),Wf(),Mf(),Ff(),Gf(),jf(),Uf(),Pv(),l.object({position:L,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:L.optional(),text:l.string(),tokens:l.array(l.string()),type:l.literal("lexical-row")}),l.object({dimensions:L,identity:l.string().optional(),model:l.string(),source:l.enum(["source","summary"]),type:l.literal("embedding-metadata"),version:l.literal(1)}),l.object({endSentenceIndex:L,segmentIndex:L,startSentenceIndex:L,text:l.string(),type:l.literal("embedding-segment"),vector:l.array(l.number()),wordsCount:L})])});var ic=i(()=>{"use strict";$t()});var ac=i(()=>{"use strict"});var Jt,oc=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(`
|
|
723
|
+
`)});import{jsonrepair as $X}from"jsonrepair";var qf=i(()=>{"use strict"});var Bf=i(()=>{"use strict";oc();ac();qf()});var me=i(()=>{"use strict";ac();oc();Bf()});var Jf=i(()=>{"use strict"});var Ur=i(()=>{"use strict"});var qr=i(()=>{"use strict"});import{z as Ye}from"zod";var Nv,Dv,wV,cc=i(()=>{"use strict";me();Ur();qr();Nv=Ye.object({candidateId:Ye.string().min(1),decision:Ye.enum(["continue","recall","skip_this_time","never_recall"]),qid:Ye.string().nullable().optional()}).strict(),Dv=Ye.object({decisions:Ye.array(Nv),groupId:Ye.string().min(1)}).strict(),wV=Ye.object({groups:Ye.array(Dv)}).strict()});import{z as Br}from"zod";var Mv,TV,zf=i(()=>{"use strict";me();Ur();qr();cc();Mv=Br.object({decision:Br.enum(["keep","reject"]),qid:Br.string().regex(/^Q[1-9][0-9]*$/)}).strict(),TV=Br.object({qids:Br.array(Mv)}).strict()});var uc=i(()=>{"use strict"});import{z as Hr}from"zod";var Fv,NV,Qf=i(()=>{"use strict";me();Ur();Fv=Hr.object({note:Hr.string().max(24).optional(),surfaceId:Hr.string().min(1)}).strict(),NV=Hr.object({protectedSurfaces:Hr.array(Fv)}).strict()});var Xf=i(()=>{"use strict";uc()});var Vf=i(()=>{"use strict"});var lc=i(()=>{"use strict"});var Yf=i(()=>{"use strict";lc();qr()});var $r=i(()=>{"use strict";Jf();zf();qr();cc();uc();Qf();Xf();Vf();Yf();lc()});var Oa=i(()=>{"use strict"});var Zf=i(()=>{"use strict";$r();Oa()});var ey=i(()=>{"use strict";$r()});var mc=i(()=>{"use strict"});var ty=i(()=>{"use strict";$r();Oa();ey();mc()});function Na(t){let e=t.trim();return e===""?[]:Array.from(Uv.segment(e)).map(n=>n.segment.trim()).filter(n=>n!=="")}function xe(t){let e=t.replace(/\s+/gu," ").trim(),n=qv(e),r="";for(let a of n)if(!Bv(a)){if(!Jr(a)){r+=a;continue}r+=a.toLowerCase().normalize("NFD").replace(new RegExp("\\p{M}","gu"),"")}return r}function qv(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&&jv.has(e[e.length-1]??"")&&Jr(e[e.length-2]??"")&&n<t.length-1&&Jr(t[n+1]??"")){e.pop(),n+=1;continue}let a=e[e.length-1]??"",o=t[n+1]??"";a!==""&&o!==""&&Jr(a)&&Jr(o)&&e.push(r),n+=1}return e}function Jr(t){return t!==""&&new RegExp("\\p{Script=Latin}","u").test(t)&&new RegExp("\\p{L}","u").test(t)}function Bv(t){return/[\p{P}\p{S}]/u.test(t)}var jv,Uv,Kr=i(()=>{"use strict";jv=new Set(["\u2010","\u2011","\u2012","\u2013","\u2014","\u2015"]),Uv=new Intl.Segmenter(void 0,{granularity:"sentence"})});function hc(){return{exactNormalized:!1,exactRaw:!1,exactSubstring:!1,matchEnd:-1,matchStart:-1,score:0}}function ry(t,e){let n=Da(t,2),r=Da(e,2),a=Da(t,3),o=Da(e,3);return(ny(n,r)+ny(a,o))/2}function Da(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 ny(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 iy(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,f=(n[d]??0)+(s===c?0:1);r[d+1]=Math.min(u,m,f)}[n,r]=[r,n]}return 1-(n[e.length]??Math.max(t.length,e.length))/Math.max(t.length,e.length)}function ay(t,e){return 1-Math.abs(t.length-e.length)/Math.max(t.length,e.length)}function oy(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 sy(t){return` - ${t.occurrenceId} score=${t.score.toFixed(3)}
|
|
724
|
+
prev: ${pc(t.prevText)}
|
|
725
|
+
text: ${pc(t.text,120)}
|
|
726
|
+
next: ${pc(t.nextText)}`}function pc(t,e=80){let n=t.replace(/\s+/gu," ").trim();return n===""?"(none)":n.length<=e?n:`${n.slice(0,e-3)}...`}var fc=i(()=>{"use strict"});var yc=i(()=>{"use strict"});function cy(t,e,n){return t.mode==="head_tail"?Jv(t,e):gc(t.text??"",e,n)}function Jv(t,e){let n=t.head??"",r=t.tail??"",a=xe(e),o=xe(n),s=xe(r);if(o===""||s==="")return hc();let d=a.indexOf(o),c=a.lastIndexOf(s);if(d!==-1&&c!==-1&&d<=c){let w=o.length+s.length,p=Math.min(1,w/Math.max(1,a.length));return{exactNormalized:!1,exactRaw:!1,exactSubstring:!0,matchEnd:c+s.length,matchStart:d,score:.82+.18*p}}let u=gc(n,e,"start_anchor"),m=gc(r,e,"end_anchor"),f=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*f}}function gc(t,e,n){let r=t.trim(),a=e.trim(),o=xe(r),s=xe(a);if(o===""||s==="")return hc();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 p=s.indexOf(o),S=o.length/Math.max(1,s.length),g=dy({candidateNormalized:s,label:n,matchEnd:p+o.length,matchStart:p,queryNormalized:o});return{exactNormalized:!1,exactRaw:!1,exactSubstring:!0,matchEnd:p+o.length,matchStart:p,score:Math.min(1,.75+.25*S+g)}}if(o.includes(s)){let p=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*p)}}let d=0,c=-1,u=-1,m=Math.min(s.length,Math.max(o.length,Math.floor(o.length*1.2))),f=Math.min(m,Math.max(1,Math.floor(o.length*.8))),w=new Set(o);for(let p=f;p<=m;p+=1)for(let S=0;S<=s.length-p;S+=1){let g=s.slice(S,S+p),v=new Set(g),R=new Set([...w,...v]).size,U=[...w].filter(V=>v.has(V)).length;if((R===0?0:U/R)<.35)continue;let N=.35*ry(o,g)+.35*oy(o,g)+.2*iy(o,g)+.1*ay(o,g)+dy({candidateNormalized:s,label:n,matchEnd:S+p,matchStart:S,queryNormalized:o});N>d&&(d=Math.min(1,N),c=S,u=S+p)}return{exactNormalized:!1,exactRaw:!1,exactSubstring:!1,matchEnd:u,matchStart:c,score:d}}function dy(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 uy=i(()=>{"use strict";Kr();fc();yc()});function ly(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 my(t,e){if(t===void 0)return;if(t.mode==="head_tail"){let r=e==="end_anchor"?bc(t.tail??"","end_anchor"):bc(t.head??"","start_anchor");return r===""?void 0:{mode:"full",text:r}}return{mode:"full",text:bc(t.text??"",e)}}function wc(t){return t.mode==="head_tail"?xe(t.head??"").length+xe(t.tail??"").length:xe(t.text??"").length}function bc(t,e){let n=Na(t);return n.length<=1?t.trim():e==="end_anchor"?n[n.length-1]??t.trim():n[0]??t.trim()}var py=i(()=>{"use strict";Kr()});var In,gy=i(()=>{"use strict";uy();py();fc();yc();In=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,v]=this.parseAnchor(o,"end_anchor");if(v!==void 0)return[void 0,v];c=g}let[u,m,f]=this.resolveAnchor({anchor:s,candidateSentenceIds:n,candidateTexts:r,label:"start_anchor"});if(f!==void 0)return[void 0,f];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[w,p,S]=this.resolveAnchor({anchor:c,candidateSentenceIds:n,candidateTexts:r,label:"end_anchor",minIndex:u.index});return S!==void 0?[void 0,S]:w===void 0?[void 0,{candidates:[],code:"none",fieldName:"end_anchor",message:"end_anchor could not be matched: no candidate selected"}]:w.index<u.index?[void 0,{candidates:[],code:"invalid_range",fieldName:"end_anchor",message:`Invalid evidence range: end_anchor resolved before start_anchor (${u.occurrenceId} -> ${w.occurrenceId}).`}]:[{confidence:Math.min(u.score,w.score),sentenceIds:n.slice(u.index,w.index+1),strategy:`${m}+${p}`},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,f]=this.parseAnchor(r,"end_anchor");if(f!==void 0)return[void 0,f];let w=e.overrides.end_anchor,[p,S,g]=w===void 0?this.resolveAnchor({anchor:m,candidateSentenceIds:e.candidateSentenceIds,candidateTexts:e.candidateTexts,label:"end_anchor",minIndex:d.index}):[w,"choice_final",void 0];return g!==void 0?[void 0,g]:p===void 0?[void 0,{candidates:[],code:"none",fieldName:"end_anchor",message:"end_anchor could not be matched: no candidate selected"}]:p.index<d.index?[void 0,{candidates:[],code:"invalid_range",fieldName:"end_anchor",message:`Invalid evidence range: end_anchor resolved before start_anchor (${d.occurrenceId} -> ${p.occurrenceId}).`}]:[{confidence:Math.min(d.score,p.score),sentenceIds:e.candidateSentenceIds.slice(d.index,p.index+1),strategy:`${c}+${S}`},void 0]}parseAnchor(e,n){let[r,a]=ly(e);return a!==void 0?[void 0,{candidates:[],code:"invalid_anchor",fieldName:n,message:`Invalid evidence.${n}: ${a}`}]:[my(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&&wc(e.anchor)>=8)return[o[0],"exact_substring",void 0];if(o.length>1&&wc(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]??"":"",f=cy(e,c,a);o.push({exactNormalized:f.exactNormalized,exactRaw:f.exactRaw,exactSubstring:f.exactSubstring,index:s,nextText:m,occurrenceId:`S${s+1}`,prevText:u,score:f.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=>sy(s)).join(`
|
|
727
727
|
`);return{candidates:a,code:n,fieldName:e,message:`${e} is ambiguous. Top candidates:
|
|
728
728
|
${o}
|
|
729
|
-
Please provide a more specific anchor or surrounding context.`}}}});var
|
|
730
|
-
`)});var
|
|
729
|
+
Please provide a more specific anchor or surrounding context.`}}}});var by=i(()=>{"use strict"});var wy=i(()=>{"use strict";gy();by()});var Sc,Sy=i(()=>{"use strict";Sc=["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(`
|
|
730
|
+
`)});var kc=i(()=>{"use strict"});var ky=i(()=>{"use strict";kc();Kr()});var Wa=i(()=>{"use strict";wy();Sy();kc();ky();Kr()});var Ey=i(()=>{"use strict"});import{z as G}from"zod";var Iy,Xv,Vv,Yv,u2,l2,vy=i(()=>{"use strict";me();Ur();Wa();Ey();Iy=G.object({head:G.string().optional(),mode:G.enum(["full","head_tail"]).optional(),tail:G.string().optional(),text:G.string().optional()}).strict(),Xv=G.object({quote:G.string().optional(),sentence_id:G.string().optional()}).strict(),Vv=G.union([G.object({end_anchor:G.union([G.string(),Iy]).optional(),quote:G.string().optional(),sentence_id:G.string().optional(),start_anchor:G.union([G.string(),Iy]).optional()}).strict(),G.array(Xv)]),Yv=G.object({confidence:G.number().min(0).max(1).optional(),evidence:Vv,predicate:G.string().min(1).max(64),sourceMentionId:G.string().min(1),targetMentionId:G.string().min(1)}).strict(),u2=G.object({relations:G.array(Yv)}).strict(),l2=new In});var Ry=i(()=>{"use strict"});var Cy=i(()=>{"use strict"});var Ty=i(()=>{"use strict";vy();Ry();Cy()});var _y=i(()=>{"use strict";Ty();Oa();mc()});var zr,vn=i(()=>{"use strict";zr=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 G2,Ec=i(()=>{"use strict";me();$t();Zf();ty();_y();$r();vn();G2=["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 Py=i(()=>{"use strict"});var Ay=i(()=>{"use strict"});var Ly=i(()=>{"use strict";Py();Ay()});var zt=i(()=>{"use strict"});var Qr=i(()=>{"use strict";me()});var Ny=i(()=>{"use strict";zt();Qr()});var Dy=i(()=>{"use strict";Qr()});var Wy=i(()=>{"use strict"});import{z as E}from"zod";var My,nR,Fy,rR,iR,aR,oR,sR,dR,Ma=i(()=>{"use strict";zt();My=E.object({from:E.union([E.number().int(),E.string()]),strength:E.string().optional(),to:E.union([E.number().int(),E.string()])}),nR=E.object({quote:E.string().optional(),sentence_id:E.string().optional()}).passthrough(),Fy=E.union([E.record(E.string(),E.unknown()),E.array(nR)]),rR=E.object({content:E.string(),evidence:Fy.nullish(),label:E.string(),retention:E.enum(["verbatim","detailed","focused","relevant"]),temp_id:E.string()}).passthrough(),iR=E.object({chunks:E.array(rR),fragment_summary:E.string(),links:E.array(My)}),aR=E.object({content:E.string(),evidence:Fy.nullish(),importance:E.enum(["critical","important","helpful"]),label:E.string(),temp_id:E.string()}).passthrough(),oR=E.object({chunk_id:E.number().int(),importance:E.enum(["critical","important","helpful"])}),sR=E.object({chunks:E.array(aR),importance_annotations:E.array(oR),links:E.array(My)}),dR=E.object({choice:E.string()})});var Gy=i(()=>{"use strict";me();Wa();Wy();Qr();Ma()});var jy=i(()=>{"use strict";me();zt();Ny();Qr();Dy();Gy();Ma()});var Uy=i(()=>{"use strict";jy();Ma()});var vc=i(()=>{"use strict"});import{detect as j3,validateISO2 as U3}from"tinyld";var qy=i(()=>{"use strict"});var By=i(()=>{"use strict"});import{z as Xr}from"zod";var lR,o8,Hy=i(()=>{"use strict";me();Wa();Uy();vc();vc();qy();By();lR=Xr.object({content:Xr.string(),id:Xr.number(),label:Xr.string()}),o8=Xr.array(lR)});var $y=i(()=>{"use strict";Hy()});var Jy=i(()=>{"use strict";Ly();$y()});var Ky=i(()=>{"use strict";Jy()});var zy=i(()=>{"use strict"});var Qy=i(()=>{"use strict"});var Rc=i(()=>{"use strict";zy();me();vn();Qy()});var Xy=i(()=>{"use strict"});var Vy=i(()=>{"use strict"});var Yy=i(()=>{"use strict";Xy();Vy()});var Vr=i(()=>{"use strict"});var H8,$8,Rn=i(()=>{"use strict";zt();H8={critical:9,helpful:1,important:3},$8={detailed:9,focused:3,relevant:1,verbatim:27}});var Cn=i(()=>{"use strict"});var Yr=i(()=>{"use strict"});var Cc=i(()=>{"use strict";Cn()});var Tc=i(()=>{"use strict";Rn();Cn();Vr();Yr();Cc()});var _c=i(()=>{"use strict";Vr();Tc();Yr()});var eg=i(()=>{"use strict";Rn();Cn();Yr()});var tg=i(()=>{"use strict";Rn();Cn();Vr();Yr();Cc()});var ng=i(()=>{"use strict";_c();Cn();Vr();eg();Tc();tg()});var rg=i(()=>{"use strict";ng();_c()});var ig=i(()=>{"use strict";Rn()});var ag=i(()=>{"use strict";rg();ig()});var og=i(()=>{"use strict";Yy();ag();Rn()});var Pc=i(()=>{"use strict";$t();vn();Ky();Rc();og()});var sg=i(()=>{"use strict"});var Ga=i(()=>{"use strict"});var dg=i(()=>{"use strict";Ga()});var ja=i(()=>{"use strict"});var w4,ug=i(()=>{"use strict";Ga();ja();w4=Object.freeze({critical:9,major:3,minor:1})});import{detect as x4,validateISO2 as E4}from"tinyld";var lg=i(()=>{"use strict";ja()});var mg=i(()=>{"use strict"});var pg=i(()=>{"use strict";zt()});var Ac=i(()=>{"use strict";pg()});var hg=i(()=>{"use strict"});import{z as Tn}from"zod";var kR,xR,U4,fg=i(()=>{"use strict";me();Ga();Ac();ja();kR=["critical","major","minor"],xR=Tn.object({problem:Tn.string(),severity:Tn.enum(kR),suggestion:Tn.string().default("")}),U4=Tn.object({issues:Tn.array(xR)})});var yg=i(()=>{"use strict";sg();dg();ug();lg();mg();Ac();hg();fg()});var Lc=i(()=>{"use strict";$t();vn();zt();Rc();yg()});var gg=i(()=>{"use strict";nc();$t();ic();Ec();Pc();Lc()});import{z as B}from"zod";var _n,ER,IR,vR,RR,LZ,bg=i(()=>{"use strict";_n=B.number().finite().nonnegative(),ER=B.enum(["committing","enrichment","grounding","indexing","matching","narrowing","relation-discovery","reading-extraction","screening","summary-compression"]),IR=B.enum(["candidate","char","item","page","qid","record","sentence","window"]),vR=B.object({cacheReadTokens:_n.optional(),inputTokens:_n.optional(),outputTokens:_n.optional()}),RR=B.object({done:_n,force:B.boolean().optional(),phase:ER,phaseDetail:B.string().optional(),total:_n,unit:IR}),LZ=B.discriminatedUnion("event",[B.object({characters:_n,event:B.literal("output-characters")}),B.object({event:B.literal("token-usage"),usage:vR}),B.object({event:B.literal("progress"),progress:RR}),B.object({event:B.literal("artifact"),record:B.unknown()}),B.object({event:B.literal("complete"),revision:B.number().int().nonnegative()}),B.object({event:B.literal("error"),message:B.string()})])});var wg=i(()=>{"use strict"});var Sg=i(()=>{"use strict"});var Zr=i(()=>{"use strict";Of();Nf();gg();ic();nc();$t();Ec();Pc();Lc();vn();bg();wg();Sg();tc()});var kg=i(()=>{"use strict";Zr();wn()});import{z as _}from"zod";var CR,TR,n6,r6,i6,xg=i(()=>{"use strict";b();CR="wikg-index-output/v1",TR=_.enum(["fts","embedding-source","embedding-summary"]),n6=_.object({artifactKind:TR,chapterId:_.number().int().nonnegative(),embedding:_.object({dimensions:_.number().int().nonnegative(),identity:_.string().optional(),model:_.string()}).optional(),inputRevision:_.number().int().nonnegative(),protocol:_.literal(CR),type:_.literal("manifest")}),r6=_.object({metadata:_.record(_.string(),_.unknown()).optional(),objectId:_.string().min(1),objectKind:_.string().min(1),rowId:_.string().min(1),sentenceIndex:_.number().int().nonnegative().optional(),text:_.string(),tokens:_.array(_.string()),type:_.literal("lexical-row")}),i6=_.object({endSentenceIndex:_.number().int().nonnegative(),segmentIndex:_.number().int().nonnegative(),startSentenceIndex:_.number().int().nonnegative(),text:_.string(),vector:_.array(_.number()),wordsCount:_.number().int().nonnegative(),type:_.literal("segment")})});var Qt=i(()=>{"use strict";kg();xg()});var Ua=i(()=>{"use strict";P();dr();Wi();Li();Qt();b();ct();Ne();Qe();ze();xn();Yd();Lt();X();Li()});var Oc,Nc=i(()=>{"use strict";Oc=["queued","running","canceling","paused","succeeded","failed","canceled"]});async function Ig(){return await H(C().library,"jobs/work")}async function vg(t){let e=await C().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 ei=i(()=>{"use strict";b()});var ti=i(()=>{"use strict";M()});var Dc=i(()=>{"use strict"});var ni=i(()=>{"use strict";b()});var Rg,Cg=i(()=>{"use strict";Rg=`
|
|
731
731
|
CREATE TABLE IF NOT EXISTS build_jobs (
|
|
732
732
|
job_id TEXT PRIMARY KEY,
|
|
733
733
|
archive_key TEXT NOT NULL,
|
|
@@ -786,7 +786,7 @@ CREATE TABLE IF NOT EXISTS build_worker_lease (
|
|
|
786
786
|
|
|
787
787
|
INSERT OR IGNORE INTO build_worker_lease (id)
|
|
788
788
|
VALUES (1);
|
|
789
|
-
`});function Vt(t){let e=
|
|
789
|
+
`});function Vt(t){let e=qR(Xt(t,"current_step"),"current_step"),n=Xt(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=Xt(t,"error_json"),d=t.input_revision===null?void 0:de(t,"input_revision"),c=Xt(t,"llm_json"),u=Xt(t,"prompt");return{archiveKey:We(t,"archive_key"),archiveIdentity:We(t,"archive_path"),cacheLocator:We(t,"cache_path"),chapterId:de(t,"chapter_id"),createdAt:de(t,"created_at"),...e===void 0?{}:{currentStep:e},...s===void 0?{}:{errorJSON:s},eventsLocator:We(t,"events_path"),...o===void 0?{}:{finishedAt:o},jobId:We(t,"job_id"),...d===void 0?{}:{inputRevision:d},logLocator:We(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:UR(We(t,"state")),...a===void 0?{}:{readingSummaryStartedAt:a},target:Tg(We(t,"target"),"target"),updatedAt:de(t,"updated_at"),workspaceLocator:We(t,"workspace_path")}}async function ii(t){let e=A().resources,[n,r,a,o,s]=await Promise.all([(async()=>await e.getDirectory(t.archiveIdentity)??await e.getFile(t.archiveIdentity))(),Wc(t.cacheLocator),jR(t.eventsLocator),Wc(t.logLocator),Wc(t.workspaceLocator)]);if(n===void 0)throw ri("archive");if(r===void 0)throw ri("cache");if(a===void 0)throw ri("events");if(o===void 0)throw ri("log");if(s===void 0)throw ri("workspace");let{archiveIdentity:d,cacheLocator:c,eventsLocator:u,logLocator:m,ownerPid:f,workspaceLocator:w,...p}=t;return{...p,archive:n,cache:r,events:a,log:o,workspace:s}}async function Wc(t){return t.startsWith("jobs/")?await ve(C().library,t)??GR(t):await A().resources.getDirectory(t)}function GR(t){let e=C().library,n=r=>`${t}/${r}`;return{createDirectory:async r=>await H(e,n(r)),createFile:async r=>await q(e,n(r)),getDirectory:async r=>await ve(e,n(r)),getFile:async r=>await ee(e,n(r)),getLastModified:async()=>await(await ve(e,t))?.getLastModified?.(),identity:`managed:library:${t}`,kind:"directory",list:async()=>(await ve(e,t))?.list()??[],name:t.split("/").at(-1)??t,remove:async(r,a)=>{await(await ve(e,t))?.remove(r,a)}}}async function jR(t){return t.startsWith("jobs/")?await ee(C().library,t):await A().resources.getFile(t)}function ri(t){return new Error(`Build job ${t} resource is unavailable`)}function UR(t){if(Oc.includes(t))return t;throw new Error(`Invalid build job state: ${t}`)}function Tg(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 qR(t,e){return t===void 0?void 0:Tg(t,e)}function We(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 Xt(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 Yt=i(()=>{"use strict";Nc();b()});async function An(){let t=await Q("jobs/job.sqlite",Rg);try{return await t.run(`
|
|
790
790
|
UPDATE build_jobs
|
|
791
791
|
SET workspace_path = 'jobs/work/' || job_id,
|
|
792
792
|
cache_path = 'jobs/cache/' || job_id,
|
|
@@ -796,12 +796,12 @@ VALUES (1);
|
|
|
796
796
|
OR cache_path NOT LIKE 'jobs/cache/%'
|
|
797
797
|
OR log_path NOT LIKE 'jobs/logs/%'
|
|
798
798
|
OR events_path NOT LIKE 'jobs/events/%'
|
|
799
|
-
`),t}catch(e){throw await t.close().catch(()=>{}),e}}var Ln=i(()=>{"use strict";P();b();
|
|
799
|
+
`),t}catch(e){throw await t.close().catch(()=>{}),e}}var Ln=i(()=>{"use strict";P();b();Cg();Yt()});var qa=i(()=>{"use strict";ti();ni();Ln();ei()});var Ba=i(()=>{"use strict";Yt();qa();ei()});var Mc=i(()=>{"use strict";M();ei();ti();Dc();ni();Ln();Ba();qa();Lt();Yt()});var Lg=i(()=>{"use strict";ti();Ln();Ba();Yt();Lt()});var Og=i(()=>{"use strict";M();ti();Dc();ni();Ln();Ba();qa();Mc();Yt()});function QR(t){return KR.has(t)}async function XR(t,e){if((await e.list()).some(a=>!QR(a.name)))return 0;let r=await bt(e);return await t.remove(e.name,{recursive:!0}),r}async function Ng(t){let e=0,n=0,r=0;for(let a of await t.list()){if(!K(a))continue;r+=1;let o=await rt(a);if(o===void 0||Date.now()-o<zR)continue;let s=await XR(t,a);(s>0||await t.getDirectory(a.name)===void 0)&&(e+=s,n+=1)}return{freedBytes:e,removed:n,scanned:r}}async function bt(t){return await Ie(t)}var KR,zR,Fc=i(()=>{"use strict";b();KR=new Set([".DS_Store"]),zR=6e4});async function Ha(t){let e=await An(),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(`
|
|
800
800
|
SELECT *
|
|
801
801
|
FROM build_jobs
|
|
802
802
|
WHERE state IN ('succeeded', 'failed', 'canceled')
|
|
803
803
|
AND updated_at <= ?
|
|
804
|
-
`,[n],Vt),o=await Promise.all(a.map(
|
|
804
|
+
`,[n],Vt),o=await Promise.all(a.map(ii)),s=t.dryRun?{freedBytes:0,removed:0,scanned:0}:await Ng(await Ig()),d=0;for(let c of o)d+=await bt(c.workspace),d+=await bt(c.cache),d+=await bt(c.log),d+=await bt(c.events),t.dryRun||(await vg(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 Dg=i(()=>{"use strict";Fc();ei();Ln();Yt()});var Yc=i(()=>{"use strict";Nc();Mc();Lg();Og();ni();Dg()});var za=i(()=>{"use strict";Xe();X();On();Wt()});async function jg(t){let n=await(await C().library.getDirectory("staging"))?.getDirectory("library");if(n===void 0)return{freedBytes:0,removed:0,scanned:0};let r=await YR();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(!K(u)||(s+=1,a.has(u.name)))continue;let m=Number(u.name);if(Number.isInteger(m)&&await Rp(m))continue;let f=await Ie(u);t.dryRun||await n.remove(u.name,{recursive:!0}),d+=1,c+=f}return{freedBytes:c,removed:d,scanned:s}}async function YR(){let t=await Q("core.sqlite","");try{return await t.queryAll("SELECT id FROM libraries",void 0,e=>k(e,"id"))}catch{return}finally{await t.close()}}var Nn=i(()=>{"use strict";M();b();x();$();cr();P();za();Ut();wn();jt();On();Wt();Ot();X()});var Ug=i(()=>{"use strict"});var eu=i(()=>{"use strict";b();he();M()});var eC,iee,On=i(()=>{"use strict";b();x();P();$e();Xe();Qe();Ua();xn();Xe();Lt();Yc();yt();he();M();Wt();Nn();Ot();Ug();eu();eC=`
|
|
805
805
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
806
806
|
library_id INTEGER NOT NULL,
|
|
807
807
|
public_id TEXT NOT NULL,
|
|
@@ -815,9 +815,9 @@ WHERE state IN ('succeeded', 'failed', 'canceled')
|
|
|
815
815
|
created_at TEXT NOT NULL,
|
|
816
816
|
updated_at TEXT NOT NULL,
|
|
817
817
|
UNIQUE(library_id, public_id)
|
|
818
|
-
`,
|
|
818
|
+
`,iee=`
|
|
819
819
|
CREATE TABLE IF NOT EXISTS library_archives (
|
|
820
|
-
${
|
|
820
|
+
${eC}
|
|
821
821
|
);
|
|
822
822
|
|
|
823
823
|
CREATE INDEX IF NOT EXISTS idx_library_archives_library
|
|
@@ -827,14 +827,14 @@ ${YR}
|
|
|
827
827
|
ON library_archives(library_id, relative_path);
|
|
828
828
|
CREATE INDEX IF NOT EXISTS idx_library_archives_physical_identity
|
|
829
829
|
ON library_archives(physical_identity);
|
|
830
|
-
`});var
|
|
831
|
-
prev: ${
|
|
832
|
-
text: ${
|
|
833
|
-
next: ${
|
|
830
|
+
`});var $g=i(()=>{"use strict";yt();On();Ot();Nn();Wt()});var Kg=i(()=>{"use strict";Ki();Xi();mr();ua();ca();bn();Le();la();Gt();wn();Nn();za()});var zg=i(()=>{"use strict";vd();ia();Xi();zi();Kg();Le();On();za();Wt();Nn();Ot()});var Xa=i(()=>{"use strict";Wt();$g();On();zg();Nn();Ot()});function Va(t){let e=t.trim();return e===""?[]:Array.from(uC.segment(e)).map(n=>n.segment.trim()).filter(n=>n!=="")}function Ee(t){let e=t.replace(/\s+/gu," ").trim(),n=lC(e),r="";for(let a of n)if(!mC(a)){if(!ai(a)){r+=a;continue}r+=a.toLowerCase().normalize("NFD").replace(new RegExp("\\p{M}","gu"),"")}return r}function lC(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&&cC.has(e[e.length-1]??"")&&ai(e[e.length-2]??"")&&n<t.length-1&&ai(t[n+1]??"")){e.pop(),n+=1;continue}let a=e[e.length-1]??"",o=t[n+1]??"";a!==""&&o!==""&&ai(a)&&ai(o)&&e.push(r),n+=1}return e}function ai(t){return t!==""&&new RegExp("\\p{Script=Latin}","u").test(t)&&new RegExp("\\p{L}","u").test(t)}function mC(t){return/[\p{P}\p{S}]/u.test(t)}var cC,uC,oi=i(()=>{"use strict";cC=new Set(["\u2010","\u2011","\u2012","\u2013","\u2014","\u2015"]),uC=new Intl.Segmenter(void 0,{granularity:"sentence"})});function ru(){return{exactNormalized:!1,exactRaw:!1,exactSubstring:!1,matchEnd:-1,matchStart:-1,score:0}}function Xg(t,e){let n=Ya(t,2),r=Ya(e,2),a=Ya(t,3),o=Ya(e,3);return(Qg(n,r)+Qg(a,o))/2}function Ya(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 Vg(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,f=(n[d]??0)+(s===c?0:1);r[d+1]=Math.min(u,m,f)}[n,r]=[r,n]}return 1-(n[e.length]??Math.max(t.length,e.length))/Math.max(t.length,e.length)}function Yg(t,e){return 1-Math.abs(t.length-e.length)/Math.max(t.length,e.length)}function Zg(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 eb(t){return` - ${t.occurrenceId} score=${t.score.toFixed(3)}
|
|
831
|
+
prev: ${nu(t.prevText)}
|
|
832
|
+
text: ${nu(t.text,120)}
|
|
833
|
+
next: ${nu(t.nextText)}`}function nu(t,e=80){let n=t.replace(/\s+/gu," ").trim();return n===""?"(none)":n.length<=e?n:`${n.slice(0,e-3)}...`}var iu=i(()=>{"use strict"});var au=i(()=>{"use strict"});function nb(t,e,n){return t.mode==="head_tail"?fC(t,e):ou(t.text??"",e,n)}function fC(t,e){let n=t.head??"",r=t.tail??"",a=Ee(e),o=Ee(n),s=Ee(r);if(o===""||s==="")return ru();let d=a.indexOf(o),c=a.lastIndexOf(s);if(d!==-1&&c!==-1&&d<=c){let w=o.length+s.length,p=Math.min(1,w/Math.max(1,a.length));return{exactNormalized:!1,exactRaw:!1,exactSubstring:!0,matchEnd:c+s.length,matchStart:d,score:.82+.18*p}}let u=ou(n,e,"start_anchor"),m=ou(r,e,"end_anchor"),f=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*f}}function ou(t,e,n){let r=t.trim(),a=e.trim(),o=Ee(r),s=Ee(a);if(o===""||s==="")return ru();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 p=s.indexOf(o),S=o.length/Math.max(1,s.length),g=tb({candidateNormalized:s,label:n,matchEnd:p+o.length,matchStart:p,queryNormalized:o});return{exactNormalized:!1,exactRaw:!1,exactSubstring:!0,matchEnd:p+o.length,matchStart:p,score:Math.min(1,.75+.25*S+g)}}if(o.includes(s)){let p=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*p)}}let d=0,c=-1,u=-1,m=Math.min(s.length,Math.max(o.length,Math.floor(o.length*1.2))),f=Math.min(m,Math.max(1,Math.floor(o.length*.8))),w=new Set(o);for(let p=f;p<=m;p+=1)for(let S=0;S<=s.length-p;S+=1){let g=s.slice(S,S+p),v=new Set(g),R=new Set([...w,...v]).size,U=[...w].filter(V=>v.has(V)).length;if((R===0?0:U/R)<.35)continue;let N=.35*Xg(o,g)+.35*Zg(o,g)+.2*Vg(o,g)+.1*Yg(o,g)+tb({candidateNormalized:s,label:n,matchEnd:S+p,matchStart:S,queryNormalized:o});N>d&&(d=Math.min(1,N),c=S,u=S+p)}return{exactNormalized:!1,exactRaw:!1,exactSubstring:!1,matchEnd:u,matchStart:c,score:d}}function tb(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 rb=i(()=>{"use strict";oi();iu();au()});function ib(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 ab(t,e){if(t===void 0)return;if(t.mode==="head_tail"){let r=e==="end_anchor"?su(t.tail??"","end_anchor"):su(t.head??"","start_anchor");return r===""?void 0:{mode:"full",text:r}}return{mode:"full",text:su(t.text??"",e)}}function du(t){return t.mode==="head_tail"?Ee(t.head??"").length+Ee(t.tail??"").length:Ee(t.text??"").length}function su(t,e){let n=Va(t);return n.length<=1?t.trim():e==="end_anchor"?n[n.length-1]??t.trim():n[0]??t.trim()}var ob=i(()=>{"use strict";oi()});var Zt,ub=i(()=>{"use strict";rb();ob();iu();au();Zt=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,v]=this.parseAnchor(o,"end_anchor");if(v!==void 0)return[void 0,v];c=g}let[u,m,f]=this.resolveAnchor({anchor:s,candidateSentenceIds:n,candidateTexts:r,label:"start_anchor"});if(f!==void 0)return[void 0,f];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[w,p,S]=this.resolveAnchor({anchor:c,candidateSentenceIds:n,candidateTexts:r,label:"end_anchor",minIndex:u.index});return S!==void 0?[void 0,S]:w===void 0?[void 0,{candidates:[],code:"none",fieldName:"end_anchor",message:"end_anchor could not be matched: no candidate selected"}]:w.index<u.index?[void 0,{candidates:[],code:"invalid_range",fieldName:"end_anchor",message:`Invalid evidence range: end_anchor resolved before start_anchor (${u.occurrenceId} -> ${w.occurrenceId}).`}]:[{confidence:Math.min(u.score,w.score),sentenceIds:n.slice(u.index,w.index+1),strategy:`${m}+${p}`},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,f]=this.parseAnchor(r,"end_anchor");if(f!==void 0)return[void 0,f];let w=e.overrides.end_anchor,[p,S,g]=w===void 0?this.resolveAnchor({anchor:m,candidateSentenceIds:e.candidateSentenceIds,candidateTexts:e.candidateTexts,label:"end_anchor",minIndex:d.index}):[w,"choice_final",void 0];return g!==void 0?[void 0,g]:p===void 0?[void 0,{candidates:[],code:"none",fieldName:"end_anchor",message:"end_anchor could not be matched: no candidate selected"}]:p.index<d.index?[void 0,{candidates:[],code:"invalid_range",fieldName:"end_anchor",message:`Invalid evidence range: end_anchor resolved before start_anchor (${d.occurrenceId} -> ${p.occurrenceId}).`}]:[{confidence:Math.min(d.score,p.score),sentenceIds:e.candidateSentenceIds.slice(d.index,p.index+1),strategy:`${c}+${S}`},void 0]}parseAnchor(e,n){let[r,a]=ib(e);return a!==void 0?[void 0,{candidates:[],code:"invalid_anchor",fieldName:n,message:`Invalid evidence.${n}: ${a}`}]:[ab(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&&du(e.anchor)>=8)return[o[0],"exact_substring",void 0];if(o.length>1&&du(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]??"":"",f=nb(e,c,a);o.push({exactNormalized:f.exactNormalized,exactRaw:f.exactRaw,exactSubstring:f.exactSubstring,index:s,nextText:m,occurrenceId:`S${s+1}`,prevText:u,score:f.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=>eb(s)).join(`
|
|
834
834
|
`);return{candidates:a,code:n,fieldName:e,message:`${e} is ambiguous. Top candidates:
|
|
835
835
|
${o}
|
|
836
|
-
Please provide a more specific anchor or surrounding context.`}}}});var
|
|
837
|
-
`)});var
|
|
836
|
+
Please provide a more specific anchor or surrounding context.`}}}});var lb=i(()=>{"use strict"});var mb=i(()=>{"use strict";ub();lb()});var Za,pb=i(()=>{"use strict";Za=["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(`
|
|
837
|
+
`)});var cu=i(()=>{"use strict"});var hb=i(()=>{"use strict";cu();oi()});var Wn=i(()=>{"use strict";mb();pb();cu();hb();oi()});import{z as si}from"zod";var Ate,yb=i(()=>{"use strict";Ate=si.object({meanings:si.array(si.object({information:si.string(),qid:si.string().regex(/^Q[1-9][0-9]*$/u)}).strict())}).strict()});var di=i(()=>{"use strict"});var wb=i(()=>{"use strict";di()});var to=i(()=>{"use strict"});var Gte,xb=i(()=>{"use strict";to();di();Gte=336*60*60*1e3});var Eb=i(()=>{"use strict";to();di()});var Ib=i(()=>{"use strict";yb();wb();xb();di();to();Eb()});async function lu(t){let e=await ci.open();try{return await e.gc(t)}finally{await e.close()}}function LC(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 OC(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 PC,AC,ci,vb=i(()=>{"use strict";Ib();P();PC=`
|
|
838
838
|
CREATE TABLE IF NOT EXISTS wikimedia_qid_cache_v2 (
|
|
839
839
|
qid TEXT PRIMARY KEY,
|
|
840
840
|
record_json TEXT NOT NULL,
|
|
@@ -852,31 +852,31 @@ CREATE TABLE IF NOT EXISTS wikimedia_disambiguation_cache_v2 (
|
|
|
852
852
|
record_json TEXT NOT NULL,
|
|
853
853
|
PRIMARY KEY(qid,wiki,page_id,revision_id,normalizer_version,model_id)
|
|
854
854
|
);
|
|
855
|
-
`,
|
|
856
|
-
WHERE qid IN (${e.map(()=>"?").join(",")})`,e,o=>String(o.record_json)),a=new Map;for(let o of r){let s=
|
|
855
|
+
`,AC=336*60*60*1e3,ci=class t{#e;constructor(e){this.#e=e}static async open(){return new t(await Q("cache/cache.sqlite",PC))}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
|
|
856
|
+
WHERE qid IN (${e.map(()=>"?").join(",")})`,e,o=>String(o.record_json)),a=new Map;for(let o of r){let s=LC(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)
|
|
857
857
|
VALUES(?,?,?)
|
|
858
858
|
ON CONFLICT(qid) DO UPDATE SET
|
|
859
859
|
record_json=excluded.record_json,
|
|
860
860
|
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
|
|
861
861
|
WHERE normalizer_version=? AND model_id=?
|
|
862
|
-
AND (${a.join(" OR ")})`,[n.normalizerVersion,n.modelId,...o],d=>String(d.record_json))).flatMap(d=>{let c=
|
|
862
|
+
AND (${a.join(" OR ")})`,[n.normalizerVersion,n.modelId,...o],d=>String(d.record_json))).flatMap(d=>{let c=OC(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(
|
|
863
863
|
qid,wiki,page_id,revision_id,normalizer_version,model_id,record_json
|
|
864
864
|
) VALUES(?,?,?,?,?,?,?)
|
|
865
865
|
ON CONFLICT(qid,wiki,page_id,revision_id,normalizer_version,model_id)
|
|
866
|
-
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-_C).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 lu=i(()=>{"use strict";Eb()});var mu=i(()=>{"use strict"});var pu=i(()=>{"use strict"});import{jsonrepair as tne}from"jsonrepair";var Ib=i(()=>{"use strict"});var vb=i(()=>{"use strict";pu();mu();Ib()});var Me=i(()=>{"use strict";mu();pu();vb()});var di=i(()=>{"use strict"});import{z as et}from"zod";var WC,MC,Rne,yu=i(()=>{"use strict";Me();di();WC=et.object({candidateId:et.string().min(1),decision:et.enum(["continue","recall","skip_this_time","never_recall"]),qid:et.string().nullable().optional()}).strict(),MC=et.object({decisions:et.array(WC),groupId:et.string().min(1)}).strict(),Rne=et.object({groups:et.array(MC)}).strict()});import{z as ci}from"zod";var jC,Lne,Tb=i(()=>{"use strict";Me();di();yu();jC=ci.object({decision:ci.enum(["keep","reject"]),qid:ci.string().regex(/^Q[1-9][0-9]*$/)}).strict(),Lne=ci.object({qids:ci.array(jC)}).strict()});var _b=i(()=>{"use strict"});import{z as ui}from"zod";var UC,Mne,Pb=i(()=>{"use strict";Me();UC=ui.object({note:ui.string().max(24).optional(),surfaceId:ui.string().min(1)}).strict(),Mne=ui.object({protectedSurfaces:ui.array(UC)}).strict()});var gu=i(()=>{"use strict"});var Ab=i(()=>{"use strict";gu()});var Lb=i(()=>{"use strict"});var bu=i(()=>{"use strict"});var Ob=i(()=>{"use strict";bu();di()});var St=i(()=>{"use strict";yu();Tb();di();_b();Pb();Ab();gu();Lb();Ob();bu()});var hre,Su=i(()=>{"use strict";cn();hre=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 ku=i(()=>{"use strict";st()});var Fb=i(()=>{"use strict";ku()});var Gb=i(()=>{"use strict";Fb();ku()});var jb=i(()=>{"use strict"});var Ub=i(()=>{"use strict"});var qb=i(()=>{"use strict";jb();Ub()});var li=i(()=>{"use strict";Me()});var Bb=i(()=>{"use strict";P();li()});var Hb=i(()=>{"use strict";li()});var $b=i(()=>{"use strict"});import{z as I}from"zod";var Jb,tT,Kb,nT,rT,iT,aT,oT,sT,eo=i(()=>{"use strict";P();Jb=I.object({from:I.union([I.number().int(),I.string()]),strength:I.string().optional(),to:I.union([I.number().int(),I.string()])}),tT=I.object({quote:I.string().optional(),sentence_id:I.string().optional()}).passthrough(),Kb=I.union([I.record(I.string(),I.unknown()),I.array(tT)]),nT=I.object({content:I.string(),evidence:Kb.nullish(),label:I.string(),retention:I.enum(["verbatim","detailed","focused","relevant"]),temp_id:I.string()}).passthrough(),rT=I.object({chunks:I.array(nT),fragment_summary:I.string(),links:I.array(Jb)}),iT=I.object({content:I.string(),evidence:Kb.nullish(),importance:I.enum(["critical","important","helpful"]),label:I.string(),temp_id:I.string()}).passthrough(),aT=I.object({chunk_id:I.number().int(),importance:I.enum(["critical","important","helpful"])}),oT=I.object({chunks:I.array(iT),importance_annotations:I.array(aT),links:I.array(Jb)}),sT=I.object({choice:I.string()})});var zb=i(()=>{"use strict";Me();Wn();$b();li();eo()});var Qb=i(()=>{"use strict";Me();P();Bb();li();Hb();zb();eo()});var Xb=i(()=>{"use strict";Qb();eo()});var to=i(()=>{"use strict"});import{detect as Iie,validateISO2 as vie}from"tinyld";var xu=i(()=>{"use strict";Ge()});var Vb=i(()=>{"use strict";xu();Ge()});var Yb=i(()=>{"use strict"});import{z as mi}from"zod";var mT,Kie,ew=i(()=>{"use strict";Me();Wn();Xb();to();to();Vb();Yb();mT=mi.object({content:mi.string(),id:mi.number(),label:mi.string()}),Kie=mi.array(mT)});var Eu=i(()=>{"use strict";ew()});var tw=i(()=>{"use strict";ct()});var Iu=i(()=>{"use strict";tw()});var nw=i(()=>{"use strict";qb();Eu();Iu()});var no=i(()=>{"use strict";nw();Iu()});var ro=i(()=>{"use strict"});var io=i(()=>{"use strict";no();ro()});var rw=i(()=>{"use strict";io()});var iw=i(()=>{"use strict"});var ao=i(()=>{"use strict"});var aw=i(()=>{"use strict";ao()});var Fn,Eae,bT,oo=i(()=>{"use strict";Xo();Fn=(r=>(r.Critical="critical",r.Major="major",r.Minor="minor",r))(Fn||{}),Eae=un(Fn),bT=Vn(Fn,"review severity")});var Tae,Ru=i(()=>{"use strict";ao();oo();Tae=Object.freeze({critical:9,major:3,minor:1})});var ow=i(()=>{"use strict";xu();Ge();oo()});var sw=i(()=>{"use strict";b();st();Ru()});var Cu=i(()=>{"use strict";P()});var dw=i(()=>{"use strict"});import{z as Gn}from"zod";var wT,ST,Yae,cw=i(()=>{"use strict";st();Me();ao();Cu();oo();wT=["critical","major","minor"],ST=Gn.object({problem:Gn.string(),severity:Gn.enum(wT),suggestion:Gn.string().default("")}),Yae=Gn.object({issues:Gn.array(ST)})});var uw=i(()=>{"use strict";iw();aw();Ru();ow();sw();Cu();dw();cw()});var Tu=i(()=>{"use strict";uw()});var mw=i(()=>{"use strict"});var pw=i(()=>{"use strict"});var hw=i(()=>{"use strict";mw();pw()});var pi=i(()=>{"use strict"});var Loe,Ooe,jn=i(()=>{"use strict";P();Loe={critical:9,helpful:1,important:3},Ooe={detailed:9,focused:3,relevant:1,verbatim:27}});var Un=i(()=>{"use strict"});var hi=i(()=>{"use strict"});var _u=i(()=>{"use strict";Un()});var Pu=i(()=>{"use strict";jn();Un();pi();hi();_u()});var Au=i(()=>{"use strict";pi();Pu();hi()});var yw=i(()=>{"use strict";jn();Un();hi()});var gw=i(()=>{"use strict";jn();Un();pi();hi();_u()});var bw=i(()=>{"use strict";Au();Un();pi();yw();Pu();gw()});var ww=i(()=>{"use strict";bw();Au()});var Sw=i(()=>{"use strict";jn()});var kw=i(()=>{"use strict";ww();Sw()});var xw=i(()=>{"use strict";hw();kw();jn()});var Ew=i(()=>{"use strict";xw()});var Lu=i(()=>{"use strict";X()});var Iw=i(()=>{"use strict"});var Ou=i(()=>{"use strict";io()});var co=i(()=>{"use strict"});var vw=i(()=>{"use strict";zn();cn();Tu();no();Ew();io();ro();Lu();Iw();Ou();co()});var Rw=i(()=>{"use strict";Lu();co();X()});var Cw=i(()=>{"use strict";rw();vw();ro();Rw();Ou();co()});var qn=i(()=>{"use strict";Cw()});var Tw=i(()=>{"use strict";be();zn();qn();mt()});var _w=i(()=>{"use strict";mt();mt();P();be();Gb();qn();Tw();Ca();b()});var Wu,kt=i(()=>{"use strict";Wu=["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 Mu=i(()=>{"use strict";kt()});var Lw=i(()=>{"use strict";st();Ho();_w();Su();Xe();Mu();b()});var uo=i(()=>{"use strict"});import{z as h}from"zod";var Ow,Z,LT,OT,Nw,NT,DT,WT,MT,FT,GT,jT,UT,qT,BT,HT,$T,JT,KT,Sce,Bn=i(()=>{"use strict";b();Te();uo();Ow=1,Z=h.number().int().nonnegative(),LT=h.literal(Ow),OT=h.string().regex(/^Q[1-9][0-9]*$/u),Nw=h.number().min(0).max(1).optional(),NT=h.object({text:h.string(),wordsCount:Z}).strict(),DT=h.object({type:h.literal("meta"),schemaVersion:LT,chapterId:h.number().int(),stream:h.enum(["knowledge-graph","reading-graph","summary"])}).strict(),WT=h.object({type:h.literal("parameter"),scope:h.enum(["knowledge-graph","reading-graph","summary"]),language:h.string().optional(),prompt:h.string()}).strict(),MT=h.object({type:h.literal("source-fragment"),fragmentId:Z,summary:h.string(),sentences:h.array(NT)}).strict(),FT=h.object({type:h.literal("reading-chunk"),id:h.string().min(1),generation:h.number().int(),sentenceIndex:Z,label:h.string(),content:h.string(),sentenceIndexes:h.array(Z).min(1),retention:h.enum(ye).optional(),importance:h.enum(Ce).optional(),wordsCount:Z,weight:h.number()}).strict(),GT=h.object({type:h.literal("reading-edge"),fromChunkId:h.string().min(1),toChunkId:h.string().min(1),strength:h.string().optional(),weight:h.number()}).strict(),jT=h.object({type:h.literal("fragment-group"),groupId:Z,startSentenceIndex:Z,endSentenceIndex:Z}).strict(),UT=h.object({type:h.literal("snake"),id:h.string().min(1),groupId:Z,localSnakeId:Z,size:Z,firstLabel:h.string(),lastLabel:h.string(),wordsCount:Z,weight:h.number()}).strict(),qT=h.object({type:h.literal("snake-chunk"),snakeId:h.string().min(1),chunkId:h.string().min(1),position:Z}).strict(),BT=h.object({type:h.literal("snake-edge"),fromSnakeId:h.string().min(1),toSnakeId:h.string().min(1),weight:h.number()}).strict(),HT=h.object({type:h.literal("summary"),text:h.string()}).strict(),$T=h.object({type:h.literal("mention"),id:h.string().min(1),fragmentId:Z.optional(),sentenceIndex:Z.optional(),rangeStart:Z,rangeEnd:Z,surface:h.string().min(1),qid:OT,confidence:Nw,note:h.string().optional()}).strict(),JT=h.object({type:h.literal("mention-link"),id:h.string().min(1),sourceMentionId:h.string().min(1),targetMentionId:h.string().min(1),predicate:h.string().min(1),evidenceSentenceIndexes:h.array(Z).min(1),confidence:Nw,note:h.string().optional()}).strict(),KT=h.object({type:h.literal("end")}).strict(),Sce=h.discriminatedUnion("type",[DT,WT,MT,FT,GT,jT,UT,qT,BT,HT,$T,JT,KT])});var Dw=i(()=>{"use strict";Ge();kt()});var Ww=i(()=>{"use strict";P();no()});var Fw=i(()=>{"use strict";b();P();$();qn();Bn();Qt();Dw();Ww()});var lo=i(()=>{"use strict"});var Gw=i(()=>{"use strict";lo()});var jw=i(()=>{"use strict"});var Uw=i(()=>{"use strict";lo()});var qw=i(()=>{"use strict";lo()});var Bw=i(()=>{"use strict";Gw();jw();Uw();qw()});import{z as y}from"zod";var Hw,XT,VT,YT,ZT,e_,t_,n_,r_,i_,a_,$w=i(()=>{"use strict";Te();Hw=y.tuple([y.number(),y.number()]),XT=y.object({text:y.string(),wordsCount:y.number()}),VT=y.object({serialId:y.number(),fragmentId:y.number(),summary:y.string(),sentences:y.array(XT)}),YT=y.object({documentOrder:y.number().optional(),id:y.number(),knowledgeGraphReady:y.boolean(),knowledgeGraphParameterHash:y.string().optional(),revision:y.number().optional(),topologyParameterHash:y.string().optional(),topologyReady:y.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}})),ZT=y.object({id:y.number(),generation:y.number(),sentenceId:Hw,label:y.string(),content:y.string(),sentenceIds:y.array(Hw),retention:y.enum(ye).optional(),importance:y.enum(Ce).optional(),wordsCount:y.number(),weight:y.number()}),e_=y.object({fromId:y.number(),toId:y.number(),strength:y.string().optional(),weight:y.number()}),t_=y.object({id:y.number(),serialId:y.number(),groupId:y.number(),localSnakeId:y.number(),size:y.number(),firstLabel:y.string(),lastLabel:y.string(),wordsCount:y.number(),weight:y.number()}),n_=y.object({snakeId:y.number(),chunkId:y.number(),position:y.number()}),r_=y.object({fromSnakeId:y.number(),toSnakeId:y.number(),weight:y.number()}),i_=y.object({serialId:y.number(),groupId:y.number(),startSentenceIndex:y.number(),endSentenceIndex:y.number()}),a_=y.object({chunks:y.array(ZT),fragmentGroups:y.array(i_),fragments:y.array(VT),readingEdges:y.array(e_),serial:YT,snakeChunks:y.array(n_),snakeEdges:y.array(r_),snakes:y.array(t_)})});var Jw=i(()=>{"use strict";b();$w()});var Kw=i(()=>{"use strict";cn();Tu();X()});var zw=i(()=>{"use strict";b();P();$();Bw();Jw();uo();Kw();Bn();Qt()});var Qw=i(()=>{"use strict"});var mo=i(()=>{"use strict";zw();uo();Qw()});var Xw=i(()=>{"use strict";$();mo()});var Vw=i(()=>{"use strict"});var Yw=i(()=>{"use strict";Fw();Xw();Vw()});var Zw=i(()=>{"use strict";Vr()});var tS=i(()=>{"use strict";Vr();P();$();Qt();mo()});var nS=i(()=>{"use strict";Vr();St();cn()});var rS=i(()=>{"use strict";Yw();mo();Zw();tS();nS()});import{z as J}from"zod";var Ale,s_,Lle,Uu=i(()=>{"use strict";b();Ale=J.object({id:J.string().min(1),chapterId:J.number().int(),sentenceIndex:J.number().int().nonnegative().optional(),rangeStart:J.number().int().nonnegative(),rangeEnd:J.number().int().nonnegative(),surface:J.string().min(1),qid:J.string().regex(/^Q[1-9][0-9]*$/),confidence:J.number().min(0).max(1).optional(),note:J.string().optional()}),s_=J.tuple([J.number().int().nonnegative(),J.number().int().nonnegative()]).readonly(),Lle=J.object({id:J.string().min(1),sourceMentionId:J.string().min(1),targetMentionId:J.string().min(1),predicate:J.string().min(1),evidenceSentenceIds:J.array(s_).min(1),confidence:J.number().min(0).max(1).optional(),note:J.string().optional()})});var qu=i(()=>{"use strict";b();Ge();Bn();Uu()});var aS=i(()=>{"use strict";Bn();Qt();Uu()});var po=i(()=>{"use strict"});var oS=i(()=>{"use strict";St();po()});var Bu=i(()=>{"use strict"});var sS=i(()=>{"use strict";St()});var Hu=i(()=>{"use strict"});var $u=i(()=>{"use strict";St();po();sS();Hu()});var cS=i(()=>{"use strict";$u()});var uS=i(()=>{"use strict";Ge()});var lS=i(()=>{"use strict";Eu();Wn();to()});import{z as j}from"zod";var mS,l_,m_,p_,xme,Eme,pS=i(()=>{"use strict";Me();Wn();lS();mS=j.object({head:j.string().optional(),mode:j.enum(["full","head_tail"]).optional(),tail:j.string().optional(),text:j.string().optional()}).strict(),l_=j.object({quote:j.string().optional(),sentence_id:j.string().optional()}).strict(),m_=j.union([j.object({end_anchor:j.union([j.string(),mS]).optional(),quote:j.string().optional(),sentence_id:j.string().optional(),start_anchor:j.union([j.string(),mS]).optional()}).strict(),j.array(l_)]),p_=j.object({confidence:j.number().min(0).max(1).optional(),evidence:m_,predicate:j.string().min(1).max(64),sourceMentionId:j.string().min(1),targetMentionId:j.string().min(1)}).strict(),xme=j.object({relations:j.array(p_)}).strict(),Eme=new Zt});var hS=i(()=>{"use strict"});var fS=i(()=>{"use strict";pS();hS()});var yS=i(()=>{"use strict";fS();po();Hu()});var Ju=i(()=>{"use strict";$();Bu()});var wS=i(()=>{"use strict";St();kt();qu();oS();Bu();cS();uS();yS();Ju()});var SS=i(()=>{"use strict"});var kS=i(()=>{"use strict";qu();aS();wS();$u();Ju();SS()});var xS=i(()=>{"use strict";kS()});var fi=i(()=>{"use strict";$()});var Ku=i(()=>{"use strict";kt()});var zu=i(()=>{"use strict";Ge();kt();qn();fi();Ku()});var vS=i(()=>{"use strict";kt();fi();zu()});var Qu=i(()=>{"use strict";be();X()});var CS=i(()=>{"use strict";be();dr();mt();Qu();$();$();X()});var TS=i(()=>{"use strict";qn();be();fi();CS();Qu();X()});import{z as tn}from"zod";var _S,ohe,PS=i(()=>{"use strict";_S=tn.object({children:tn.lazy(()=>tn.array(_S)),uri:tn.string().min(1),title:tn.string().nullable().optional()}).strict(),ohe=tn.object({chapters:tn.array(_S)}).strict()});var AS=i(()=>{"use strict";$()});var LS=i(()=>{"use strict";vS();fi();zu();TS();Ku();PS();AS()});var OS=i(()=>{"use strict";Sr()});var tt=i(()=>{"use strict";Lw();yt();Xc();rS();xS();yt();Mu();LS();OS();Ca()});import{AsyncLocalStorage as cP}from"async_hooks";function uP(){let t=globalThis,e=t[VS];if(e!==void 0)return e;let n=new cP;return Object.defineProperty(t,VS,{configurable:!1,enumerable:!1,value:n,writable:!1}),n}async function yi(t,e){return await YS.run(t,e)}function bo(){return YS.getStore()??{cwd:process.cwd(),env:process.env,envPolicy:"production",providers:{}}}var VS,YS,pe=i(()=>{"use strict";VS=Symbol.for("wiki-graph-sdk.runtime-context.v1"),YS=uP()});function ak(t){if(t?.platform===void 0){Sl();return}nn(t.platform)}function ok(t){if(t.host?.storage!==void 0&&t.host.stateDir===void 0)throw new TypeError("Wiki Graph SDK host.storage requires host.stateDir so SDK configuration cannot fall back to the default user state directory.");if(t.stateDir!==void 0&&(t.host?.stateDir!==void 0||t.host?.storage!==void 0))throw new TypeError("Wiki Graph SDK host state/storage and top-level stateDir cannot be used together. Put the state directory in host.stateDir when providing host.storage.")}async function Eo(t,e){let n=bo(),r={...t.host===void 0?n.host===void 0?{}:{host:n.host}:{host:t.host},...t.stateDir===void 0?n.stateDir===void 0?{}:{stateDir:n.stateDir}:{stateDir:t.stateDir}};ok(r),ak(r.host);let a=async()=>await yi({...n,...r.host===void 0?{}:{host:r.host},...r.stateDir===void 0?{}:{stateDir:r.stateDir}},e);return r.host?.storage!==void 0?await an(r.host.storage,a):await Ri(r.host?.stateDir??r.stateDir,a)}var Io=i(()=>{"use strict";To();ue();pe()});async function yk(t="global"){let e=await nl(),n=at(),r=Date.now(),a=!1;try{await e.transaction(async()=>{await GP(e),await e.run(`
|
|
866
|
+
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-AC).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 pu=i(()=>{"use strict";vb()});var hu=i(()=>{"use strict"});var fu=i(()=>{"use strict"});import{jsonrepair as dne}from"jsonrepair";var Rb=i(()=>{"use strict"});var Cb=i(()=>{"use strict";fu();hu();Rb()});var Me=i(()=>{"use strict";hu();fu();Cb()});var ui=i(()=>{"use strict"});import{z as et}from"zod";var FC,GC,One,bu=i(()=>{"use strict";Me();ui();FC=et.object({candidateId:et.string().min(1),decision:et.enum(["continue","recall","skip_this_time","never_recall"]),qid:et.string().nullable().optional()}).strict(),GC=et.object({decisions:et.array(FC),groupId:et.string().min(1)}).strict(),One=et.object({groups:et.array(GC)}).strict()});import{z as li}from"zod";var qC,Gne,Pb=i(()=>{"use strict";Me();ui();bu();qC=li.object({decision:li.enum(["keep","reject"]),qid:li.string().regex(/^Q[1-9][0-9]*$/)}).strict(),Gne=li.object({qids:li.array(qC)}).strict()});var Ab=i(()=>{"use strict"});import{z as mi}from"zod";var BC,Hne,Lb=i(()=>{"use strict";Me();BC=mi.object({note:mi.string().max(24).optional(),surfaceId:mi.string().min(1)}).strict(),Hne=mi.object({protectedSurfaces:mi.array(BC)}).strict()});var wu=i(()=>{"use strict"});var Ob=i(()=>{"use strict";wu()});var Nb=i(()=>{"use strict"});var Su=i(()=>{"use strict"});var Db=i(()=>{"use strict";Su();ui()});var St=i(()=>{"use strict";bu();Pb();ui();Ab();Lb();Ob();wu();Nb();Db();Su()});var kre,xu=i(()=>{"use strict";cn();kre=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 Eu=i(()=>{"use strict";st()});var jb=i(()=>{"use strict";Eu()});var Ub=i(()=>{"use strict";jb();Eu()});var qb=i(()=>{"use strict"});var Bb=i(()=>{"use strict"});var Hb=i(()=>{"use strict";qb();Bb()});var pi=i(()=>{"use strict";Me()});var $b=i(()=>{"use strict";P();pi()});var Jb=i(()=>{"use strict";pi()});var Kb=i(()=>{"use strict"});import{z as I}from"zod";var zb,rT,Qb,iT,aT,oT,sT,dT,cT,no=i(()=>{"use strict";P();zb=I.object({from:I.union([I.number().int(),I.string()]),strength:I.string().optional(),to:I.union([I.number().int(),I.string()])}),rT=I.object({quote:I.string().optional(),sentence_id:I.string().optional()}).passthrough(),Qb=I.union([I.record(I.string(),I.unknown()),I.array(rT)]),iT=I.object({content:I.string(),evidence:Qb.nullish(),label:I.string(),retention:I.enum(["verbatim","detailed","focused","relevant"]),temp_id:I.string()}).passthrough(),aT=I.object({chunks:I.array(iT),fragment_summary:I.string(),links:I.array(zb)}),oT=I.object({content:I.string(),evidence:Qb.nullish(),importance:I.enum(["critical","important","helpful"]),label:I.string(),temp_id:I.string()}).passthrough(),sT=I.object({chunk_id:I.number().int(),importance:I.enum(["critical","important","helpful"])}),dT=I.object({chunks:I.array(oT),importance_annotations:I.array(sT),links:I.array(zb)}),cT=I.object({choice:I.string()})});var Xb=i(()=>{"use strict";Me();Wn();Kb();pi();no()});var Vb=i(()=>{"use strict";Me();P();$b();pi();Jb();Xb();no()});var Yb=i(()=>{"use strict";Vb();no()});var ro=i(()=>{"use strict"});import{detect as Aie,validateISO2 as Lie}from"tinyld";var Iu=i(()=>{"use strict";Ge()});var Zb=i(()=>{"use strict";Iu();Ge()});var ew=i(()=>{"use strict"});import{z as hi}from"zod";var hT,eae,nw=i(()=>{"use strict";Me();Wn();Yb();ro();ro();Zb();ew();hT=hi.object({content:hi.string(),id:hi.number(),label:hi.string()}),eae=hi.array(hT)});var vu=i(()=>{"use strict";nw()});var rw=i(()=>{"use strict";ct()});var Ru=i(()=>{"use strict";rw()});var iw=i(()=>{"use strict";Hb();vu();Ru()});var io=i(()=>{"use strict";iw();Ru()});var ao=i(()=>{"use strict"});var oo=i(()=>{"use strict";io();ao()});var aw=i(()=>{"use strict";oo()});var ow=i(()=>{"use strict"});var so=i(()=>{"use strict"});var sw=i(()=>{"use strict";so()});var Fn,Pae,ST,co=i(()=>{"use strict";Yo();Fn=(r=>(r.Critical="critical",r.Major="major",r.Minor="minor",r))(Fn||{}),Pae=un(Fn),ST=Vn(Fn,"review severity")});var Dae,Tu=i(()=>{"use strict";so();co();Dae=Object.freeze({critical:9,major:3,minor:1})});var dw=i(()=>{"use strict";Iu();Ge();co()});var cw=i(()=>{"use strict";b();st();Tu()});var _u=i(()=>{"use strict";P()});var uw=i(()=>{"use strict"});import{z as Gn}from"zod";var kT,xT,aoe,lw=i(()=>{"use strict";st();Me();so();_u();co();kT=["critical","major","minor"],xT=Gn.object({problem:Gn.string(),severity:Gn.enum(kT),suggestion:Gn.string().default("")}),aoe=Gn.object({issues:Gn.array(xT)})});var mw=i(()=>{"use strict";ow();sw();Tu();dw();cw();_u();uw();lw()});var Pu=i(()=>{"use strict";mw()});var hw=i(()=>{"use strict"});var fw=i(()=>{"use strict"});var yw=i(()=>{"use strict";hw();fw()});var fi=i(()=>{"use strict"});var Goe,joe,jn=i(()=>{"use strict";P();Goe={critical:9,helpful:1,important:3},joe={detailed:9,focused:3,relevant:1,verbatim:27}});var Un=i(()=>{"use strict"});var yi=i(()=>{"use strict"});var Au=i(()=>{"use strict";Un()});var Lu=i(()=>{"use strict";jn();Un();fi();yi();Au()});var Ou=i(()=>{"use strict";fi();Lu();yi()});var bw=i(()=>{"use strict";jn();Un();yi()});var ww=i(()=>{"use strict";jn();Un();fi();yi();Au()});var Sw=i(()=>{"use strict";Ou();Un();fi();bw();Lu();ww()});var kw=i(()=>{"use strict";Sw();Ou()});var xw=i(()=>{"use strict";jn()});var Ew=i(()=>{"use strict";kw();xw()});var Iw=i(()=>{"use strict";yw();Ew();jn()});var vw=i(()=>{"use strict";Iw()});var Nu=i(()=>{"use strict";X()});var Rw=i(()=>{"use strict"});var Du=i(()=>{"use strict";oo()});var lo=i(()=>{"use strict"});var Cw=i(()=>{"use strict";zn();cn();Pu();io();vw();oo();ao();Nu();Rw();Du();lo()});var Tw=i(()=>{"use strict";Nu();lo();X()});var _w=i(()=>{"use strict";aw();Cw();ao();Tw();Du();lo()});var qn=i(()=>{"use strict";_w()});var Pw=i(()=>{"use strict";be();zn();qn();mt()});var Aw=i(()=>{"use strict";mt();mt();P();be();Ub();qn();Pw();_a();b()});var Fu,kt=i(()=>{"use strict";Fu=["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 Gu=i(()=>{"use strict";kt()});var Nw=i(()=>{"use strict";st();Jo();Aw();xu();Xe();Gu();b()});var mo=i(()=>{"use strict"});import{z as h}from"zod";var Dw,Z,NT,DT,Ww,WT,MT,FT,GT,jT,UT,qT,BT,HT,$T,JT,KT,zT,QT,Cce,Bn=i(()=>{"use strict";b();Te();mo();Dw=1,Z=h.number().int().nonnegative(),NT=h.literal(Dw),DT=h.string().regex(/^Q[1-9][0-9]*$/u),Ww=h.number().min(0).max(1).optional(),WT=h.object({text:h.string(),wordsCount:Z}).strict(),MT=h.object({type:h.literal("meta"),schemaVersion:NT,chapterId:h.number().int(),stream:h.enum(["knowledge-graph","reading-graph","summary"])}).strict(),FT=h.object({type:h.literal("parameter"),scope:h.enum(["knowledge-graph","reading-graph","summary"]),language:h.string().optional(),prompt:h.string()}).strict(),GT=h.object({type:h.literal("source-fragment"),fragmentId:Z,summary:h.string(),sentences:h.array(WT)}).strict(),jT=h.object({type:h.literal("reading-chunk"),id:h.string().min(1),generation:h.number().int(),sentenceIndex:Z,label:h.string(),content:h.string(),sentenceIndexes:h.array(Z).min(1),retention:h.enum(ye).optional(),importance:h.enum(Ce).optional(),wordsCount:Z,weight:h.number()}).strict(),UT=h.object({type:h.literal("reading-edge"),fromChunkId:h.string().min(1),toChunkId:h.string().min(1),strength:h.string().optional(),weight:h.number()}).strict(),qT=h.object({type:h.literal("fragment-group"),groupId:Z,startSentenceIndex:Z,endSentenceIndex:Z}).strict(),BT=h.object({type:h.literal("snake"),id:h.string().min(1),groupId:Z,localSnakeId:Z,size:Z,firstLabel:h.string(),lastLabel:h.string(),wordsCount:Z,weight:h.number()}).strict(),HT=h.object({type:h.literal("snake-chunk"),snakeId:h.string().min(1),chunkId:h.string().min(1),position:Z}).strict(),$T=h.object({type:h.literal("snake-edge"),fromSnakeId:h.string().min(1),toSnakeId:h.string().min(1),weight:h.number()}).strict(),JT=h.object({type:h.literal("summary"),text:h.string()}).strict(),KT=h.object({type:h.literal("mention"),id:h.string().min(1),fragmentId:Z.optional(),sentenceIndex:Z.optional(),rangeStart:Z,rangeEnd:Z,surface:h.string().min(1),qid:DT,confidence:Ww,note:h.string().optional()}).strict(),zT=h.object({type:h.literal("mention-link"),id:h.string().min(1),sourceMentionId:h.string().min(1),targetMentionId:h.string().min(1),predicate:h.string().min(1),evidenceSentenceIndexes:h.array(Z).min(1),confidence:Ww,note:h.string().optional()}).strict(),QT=h.object({type:h.literal("end")}).strict(),Cce=h.discriminatedUnion("type",[MT,FT,GT,jT,UT,qT,BT,HT,$T,JT,KT,zT,QT])});var Mw=i(()=>{"use strict";Ge();kt()});var Fw=i(()=>{"use strict";P();io()});var jw=i(()=>{"use strict";b();P();$();qn();Bn();Qt();Mw();Fw()});var po=i(()=>{"use strict"});var Uw=i(()=>{"use strict";po()});var qw=i(()=>{"use strict"});var Bw=i(()=>{"use strict";po()});var Hw=i(()=>{"use strict";po()});var $w=i(()=>{"use strict";Uw();qw();Bw();Hw()});import{z as y}from"zod";var Jw,YT,ZT,e_,t_,n_,r_,i_,a_,o_,s_,Kw=i(()=>{"use strict";Te();Jw=y.tuple([y.number(),y.number()]),YT=y.object({text:y.string(),wordsCount:y.number()}),ZT=y.object({serialId:y.number(),fragmentId:y.number(),summary:y.string(),sentences:y.array(YT)}),e_=y.object({documentOrder:y.number().optional(),id:y.number(),knowledgeGraphReady:y.boolean(),knowledgeGraphParameterHash:y.string().optional(),revision:y.number().optional(),topologyParameterHash:y.string().optional(),topologyReady:y.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}})),t_=y.object({id:y.number(),generation:y.number(),sentenceId:Jw,label:y.string(),content:y.string(),sentenceIds:y.array(Jw),retention:y.enum(ye).optional(),importance:y.enum(Ce).optional(),wordsCount:y.number(),weight:y.number()}),n_=y.object({fromId:y.number(),toId:y.number(),strength:y.string().optional(),weight:y.number()}),r_=y.object({id:y.number(),serialId:y.number(),groupId:y.number(),localSnakeId:y.number(),size:y.number(),firstLabel:y.string(),lastLabel:y.string(),wordsCount:y.number(),weight:y.number()}),i_=y.object({snakeId:y.number(),chunkId:y.number(),position:y.number()}),a_=y.object({fromSnakeId:y.number(),toSnakeId:y.number(),weight:y.number()}),o_=y.object({serialId:y.number(),groupId:y.number(),startSentenceIndex:y.number(),endSentenceIndex:y.number()}),s_=y.object({chunks:y.array(t_),fragmentGroups:y.array(o_),fragments:y.array(ZT),readingEdges:y.array(n_),serial:e_,snakeChunks:y.array(i_),snakeEdges:y.array(a_),snakes:y.array(r_)})});var zw=i(()=>{"use strict";b();Kw()});var Qw=i(()=>{"use strict";cn();Pu();X()});var Xw=i(()=>{"use strict";b();P();$();$w();zw();mo();Qw();Bn();Qt()});var Vw=i(()=>{"use strict"});var ho=i(()=>{"use strict";Xw();mo();Vw()});var Yw=i(()=>{"use strict";$();ho()});var Zw=i(()=>{"use strict"});var eS=i(()=>{"use strict";jw();Yw();Zw()});var tS=i(()=>{"use strict";Zr()});var rS=i(()=>{"use strict";Zr();P();$();Qt();ho()});var iS=i(()=>{"use strict";Zr();St();cn()});var aS=i(()=>{"use strict";eS();ho();tS();rS();iS()});import{z as J}from"zod";var Fle,c_,Gle,Bu=i(()=>{"use strict";b();Fle=J.object({id:J.string().min(1),chapterId:J.number().int(),sentenceIndex:J.number().int().nonnegative().optional(),rangeStart:J.number().int().nonnegative(),rangeEnd:J.number().int().nonnegative(),surface:J.string().min(1),qid:J.string().regex(/^Q[1-9][0-9]*$/),confidence:J.number().min(0).max(1).optional(),note:J.string().optional()}),c_=J.tuple([J.number().int().nonnegative(),J.number().int().nonnegative()]).readonly(),Gle=J.object({id:J.string().min(1),sourceMentionId:J.string().min(1),targetMentionId:J.string().min(1),predicate:J.string().min(1),evidenceSentenceIds:J.array(c_).min(1),confidence:J.number().min(0).max(1).optional(),note:J.string().optional()})});var Hu=i(()=>{"use strict";b();Ge();Bn();Bu()});var sS=i(()=>{"use strict";Bn();Qt();Bu()});var fo=i(()=>{"use strict"});var dS=i(()=>{"use strict";St();fo()});var $u=i(()=>{"use strict"});var cS=i(()=>{"use strict";St()});var Ju=i(()=>{"use strict"});var Ku=i(()=>{"use strict";St();fo();cS();Ju()});var lS=i(()=>{"use strict";Ku()});var mS=i(()=>{"use strict";Ge()});var pS=i(()=>{"use strict";vu();Wn();ro()});import{z as j}from"zod";var hS,p_,h_,f_,_me,Pme,fS=i(()=>{"use strict";Me();Wn();pS();hS=j.object({head:j.string().optional(),mode:j.enum(["full","head_tail"]).optional(),tail:j.string().optional(),text:j.string().optional()}).strict(),p_=j.object({quote:j.string().optional(),sentence_id:j.string().optional()}).strict(),h_=j.union([j.object({end_anchor:j.union([j.string(),hS]).optional(),quote:j.string().optional(),sentence_id:j.string().optional(),start_anchor:j.union([j.string(),hS]).optional()}).strict(),j.array(p_)]),f_=j.object({confidence:j.number().min(0).max(1).optional(),evidence:h_,predicate:j.string().min(1).max(64),sourceMentionId:j.string().min(1),targetMentionId:j.string().min(1)}).strict(),_me=j.object({relations:j.array(f_)}).strict(),Pme=new Zt});var yS=i(()=>{"use strict"});var gS=i(()=>{"use strict";fS();yS()});var bS=i(()=>{"use strict";gS();fo();Ju()});var zu=i(()=>{"use strict";$();$u()});var kS=i(()=>{"use strict";St();kt();Hu();dS();$u();lS();mS();bS();zu()});var xS=i(()=>{"use strict"});var ES=i(()=>{"use strict";Hu();sS();kS();Ku();zu();xS()});var IS=i(()=>{"use strict";ES()});var gi=i(()=>{"use strict";$()});var Qu=i(()=>{"use strict";kt()});var Xu=i(()=>{"use strict";Ge();kt();qn();gi();Qu()});var CS=i(()=>{"use strict";kt();gi();Xu()});var Vu=i(()=>{"use strict";be();X()});var _S=i(()=>{"use strict";be();dr();mt();Vu();$();$();X()});var PS=i(()=>{"use strict";qn();be();gi();_S();Vu();X()});import{z as tn}from"zod";var AS,phe,LS=i(()=>{"use strict";AS=tn.object({children:tn.lazy(()=>tn.array(AS)),uri:tn.string().min(1),title:tn.string().nullable().optional()}).strict(),phe=tn.object({chapters:tn.array(AS)}).strict()});var OS=i(()=>{"use strict";$()});var NS=i(()=>{"use strict";CS();gi();Xu();PS();Qu();LS();OS()});var DS=i(()=>{"use strict";Sr()});var tt=i(()=>{"use strict";Nw();yt();Yc();aS();IS();yt();Gu();NS();DS();_a()});import{AsyncLocalStorage as lP}from"async_hooks";function mP(){let t=globalThis,e=t[ZS];if(e!==void 0)return e;let n=new lP;return Object.defineProperty(t,ZS,{configurable:!1,enumerable:!1,value:n,writable:!1}),n}async function bi(t,e){return await ek.run(t,e)}function So(){return ek.getStore()??{cwd:process.cwd(),env:process.env,envPolicy:"production",providers:{}}}var ZS,ek,pe=i(()=>{"use strict";ZS=Symbol.for("wiki-graph-sdk.runtime-context.v1"),ek=mP()});function sk(t){if(t?.platform===void 0){xl();return}nn(t.platform)}function dk(t){if(t.host?.storage!==void 0&&t.host.stateDir===void 0)throw new TypeError("Wiki Graph SDK host.storage requires host.stateDir so SDK configuration cannot fall back to the default user state directory.");if(t.stateDir!==void 0&&(t.host?.stateDir!==void 0||t.host?.storage!==void 0))throw new TypeError("Wiki Graph SDK host state/storage and top-level stateDir cannot be used together. Put the state directory in host.stateDir when providing host.storage.")}async function vo(t,e){let n=So(),r={...t.host===void 0?n.host===void 0?{}:{host:n.host}:{host:t.host},...t.stateDir===void 0?n.stateDir===void 0?{}:{stateDir:n.stateDir}:{stateDir:t.stateDir}};dk(r),sk(r.host);let a=async()=>await bi({...n,...r.host===void 0?{}:{host:r.host},...r.stateDir===void 0?{}:{stateDir:r.stateDir}},e);return r.host?.storage!==void 0?await an(r.host.storage,a):await Ti(r.host?.stateDir??r.stateDir,a)}var Ro=i(()=>{"use strict";Po();ue();pe()});async function bk(t="global"){let e=await il(),n=at(),r=Date.now(),a=!1;try{await e.transaction(async()=>{await UP(e),await e.run(`
|
|
867
867
|
INSERT OR IGNORE INTO gc_locks (
|
|
868
868
|
scope, owner_id, owner_pid, heartbeat_at, created_at
|
|
869
869
|
) VALUES (?, ?, ?, ?, ?)
|
|
870
|
-
`,[t,n,0,r,r]),a=await e.queryOne("SELECT owner_id FROM gc_locks WHERE scope = ?",[t],s=>T(s,"owner_id"))===n})}finally{await e.close()}if(!a)return;let o=setInterval(()=>{
|
|
870
|
+
`,[t,n,0,r,r]),a=await e.queryOne("SELECT owner_id FROM gc_locks WHERE scope = ?",[t],s=>T(s,"owner_id"))===n})}finally{await e.close()}if(!a)return;let o=setInterval(()=>{jP(t,n).catch(()=>{})},GP);return async()=>{clearInterval(o);let s=await il();try{await s.run("DELETE FROM gc_locks WHERE scope = ? AND owner_id = ?",[t,n])}finally{await s.close()}}}async function jP(t,e){let n=await il();try{await n.run(`
|
|
871
871
|
UPDATE gc_locks
|
|
872
872
|
SET heartbeat_at = ?, owner_pid = ?
|
|
873
873
|
WHERE scope = ? AND owner_id = ?
|
|
874
|
-
`,[Date.now(),0,t,e])}finally{await n.close()}}async function
|
|
874
|
+
`,[Date.now(),0,t,e])}finally{await n.close()}}async function UP(t){let e=await t.queryAll("SELECT * FROM gc_locks",void 0,HP);for(let{lock:n,scope:r}of e.filter(({lock:a})=>qP(a)))await t.run(`
|
|
875
875
|
DELETE FROM gc_locks
|
|
876
876
|
WHERE scope = ?
|
|
877
877
|
AND owner_id = ?
|
|
878
878
|
AND heartbeat_at = ?
|
|
879
|
-
`,[r,n.ownerId,n.heartbeatAt])}function
|
|
879
|
+
`,[r,n.ownerId,n.heartbeatAt])}function qP(t){return!(Date.now()-t.heartbeatAt<FP)}async function il(){return await Q("tmp/gc.sqlite",MP)}function BP(t){return{createdAt:k(t,"created_at"),heartbeatAt:k(t,"heartbeat_at"),ownerId:T(t,"owner_id"),ownerPid:k(t,"owner_pid")}}function HP(t){return{lock:BP(t),scope:T(t,"scope")}}var MP,FP,GP,wk=i(()=>{"use strict";M();x();P();MP=`
|
|
880
880
|
CREATE TABLE IF NOT EXISTS gc_locks (
|
|
881
881
|
scope TEXT PRIMARY KEY,
|
|
882
882
|
owner_id TEXT NOT NULL,
|
|
@@ -884,8 +884,8 @@ CREATE TABLE IF NOT EXISTS gc_locks (
|
|
|
884
884
|
heartbeat_at INTEGER NOT NULL,
|
|
885
885
|
created_at INTEGER NOT NULL
|
|
886
886
|
);
|
|
887
|
-
`,
|
|
888
|
-
`)}var
|
|
889
|
-
`}function
|
|
887
|
+
`,FP=6e4,GP=2e4});async function Sk(t){let e=await C().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 JP(e)){n+=1;let s=await rt(o.value);if(!t.force&&(s===void 0||t.now-s<$P))continue;let d=await bt(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 JP(t){let e=[];for(let n of await t.list())if(K(n))for(let r of await n.list())e.push({parent:n,value:r});return e}var $P,kk=i(()=>{"use strict";b();Fc();$P=3600*1e3});async function Co(t={}){let e=Date.now(),n=await bk();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 XP(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 KP)a.push(await QP(s,r));let o={finishedAt:Date.now(),freedBytes:al(a,"freedBytes"),jobs:a,removed:al(a,"removed"),scanned:al(a,"scanned"),skipped:!1,startedAt:e};return await VP(o.finishedAt).catch(()=>{}),o}finally{await n()}}async function QP(t,e){try{return{name:t.name,...await t.run(e)}}catch(n){return{error:dn(n),freedBytes:0,name:t.name,removed:0,scanned:0}}}function al(t,e){return t.reduce((n,r)=>{let a=r[e];return n+(typeof a=="number"?a:0)},0)}async function XP(t){let e=await ee(C().library,"tmp/gc.last-run"),n=Number((e===void 0?"":await te(e).catch(()=>"")).trim());return!Number.isFinite(n)||t-n>=zP}async function VP(t){let e=await q(C().library,"tmp/gc.last-run");await ce(e,`${t}
|
|
888
|
+
`)}var KP,zP,xk=i(()=>{"use strict";b();yt();tt();Xe();Xa();pu();fe();wk();kk();KP=[{name:"wikg-coordinator",run:Aa},{name:"search-cache",run:$i},{name:"library-index",run:jg},{name:"build-queue",run:Ha},{name:"wikimedia-cache",run:lu},{name:"tmp",run:Sk}],zP=600*1e3});var Ek=i(()=>{"use strict";xk()});var Ik=i(()=>{"use strict";Ek()});var vk={};_k(vk,{tryRunWikiGraphGc:()=>YP});async function YP(t={}){let{host:e,stateDir:n,...r}=t;return await vo({...e===void 0?{}:{host:e},...n===void 0?{}:{stateDir:n}},async()=>await Co(r))}var Rk=i(()=>{"use strict";Ik();Ro()});ue();import{AsyncLocalStorage as PP}from"async_hooks";import{randomUUID as cbe}from"crypto";import{link as lbe,mkdtemp as mbe,rename as pbe,rm as hbe,stat as fbe}from"fs/promises";import{tmpdir as gbe}from"os";import{basename as wbe,dirname as Sbe,join as kbe}from"path";import{Readable as Ebe}from"stream";Ge();b();_i();import{z as Kn}from"zod";var tx=1,_A=Kn.object({completedAt:Kn.string().optional(),startedAt:Kn.string(),status:Kn.enum(["running","succeeded"]),version:Kn.literal(tx)});Jo();cn();st();X();zo();Hn();Xa();Wn();pu();St();xu();tt();be();Xe();P();mt();yt();Ua();Xa();eu();Ua();wn();Qt();P();b();Xe();b();x();x();b();x();b();As();b();fe();tt();tt();tt();tt();tt();kt();St();P();Bn();b();import{createHash as xge}from"crypto";import{createReadStream as Ige}from"fs";import{rm as Rge}from"fs/promises";import{basename as Tge}from"path";import{createAnthropic as _ye}from"@ai-sdk/anthropic";import{createGoogleGenerativeAI as Aye}from"@ai-sdk/google";import{createOpenAI as Oye}from"@ai-sdk/openai";import{createOpenAICompatible as Dye}from"@ai-sdk/openai-compatible";ue();import{z as ae}from"zod";pe();ue();import{mkdir as Hye}from"fs/promises";import{join as Jye}from"path";import{homedir as zye}from"os";pe();var pP=["anthropic","google","openai","openai-compatible"],tk=ae.enum(pP),Zye=ae.object({apiKey:ae.string().min(1).optional(),baseURL:ae.string().min(1).optional(),baseUrl:ae.string().min(1).optional(),chatCompletionsUrl:ae.string().min(1).optional(),llm:ae.object({apiKey:ae.string().min(1).optional(),baseURL:ae.string().min(1).optional(),baseUrl:ae.string().min(1).optional(),chatCompletionsUrl:ae.string().min(1).optional(),model:ae.string().min(1).optional(),name:ae.string().min(1).optional(),provider:tk.optional()}).optional(),model:ae.string().min(1).optional(),name:ae.string().min(1).optional(),provider:tk.optional()});pe();pe();import{homedir as rge}from"os";import{isAbsolute as age,resolve as oge}from"path";import{realpath as uge,stat as lge}from"fs/promises";import{basename as pge,dirname as hge,join as fge,resolve as yge}from"path";ue();ue();import{embed as Gge,embedMany as jge}from"ai";import{createOpenAI as qge}from"@ai-sdk/openai";import{createOpenAICompatible as Hge}from"@ai-sdk/openai-compatible";pe();import{spawn as Gbe}from"child_process";import{streamText as ewe}from"ai";tt();pe();ue();Ro();pe();var TP=["WIKIGRAPH_DEV","WIKIGRAPH_ENV_POLICY","WIKIGRAPH_QUEUE_DISABLE_AUTOSTART","WIKIGRAPH_STATE_DIR"];function uk(t){let e=_P(t.env);if(t.envPolicy==="production"){let o=TP.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=ck(t.stateDir??n);if(r===void 0)throw new Error("Wiki Graph development entries require an explicit runtime state directory.");let a=ck(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 _P(t){return t===void 0?{...process.env}:{...process.env,...t}}function ck(t){if(!(t===void 0||t.trim()===""))return t}ue();pe();ue();import{mkdir as sSe,mkdtemp as dSe,rm as cSe}from"fs/promises";import{tmpdir as lSe}from"os";import{join as pSe}from"path";var wSe=64*1024;ue();import{basename as ESe}from"path";ue();pe();Ro();pe();var AP=new PP;async function lk(t,e){return await AP.run(t,async()=>await bi({cwd:t.cwd,env:t.env,envPolicy:t.envPolicy,providers:{},...t.stateDir===void 0?{}:{stateDir:t.stateDir}},e))}var mk="--wikigraph-internal-child",pk="--wikigraph-dev-project-root",hk="--wikigraph-env-policy",fk="--wikigraph-state-dir";async function yk(t,e){let n=LP(process.argv.slice(2));if(n.internalChild!==t)throw new Error("This Wiki Graph worker entry is internal.");let r=uk({argv:n.argv,devProjectRoot:n.devProjectRoot,envPolicy:n.envPolicy,stateDir:n.stateDir});return await Ti(r.stateDir,async()=>lk({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 LP(t){let e=[],n,r,a="production",o;for(let s=0;s<t.length;s+=1){let d=t[s];if(d===mk){if(s+1>=t.length)throw new Error(`${mk} requires a value.`);n=t[s+1],s+=1;continue}if(d===hk){let c=t[s+1];if(c!=="development"&&c!=="production")throw new Error(`${hk} requires development or production.`);a=c,s+=1;continue}if(d===pk){let c=t[s+1];if(c===void 0||c.trim()==="")throw new Error(`${pk} requires a value.`);r=c,s+=1;continue}if(d!==fk){e.push(d);continue}if(s+1>=t.length)throw new Error(`${fk} requires a value.`);o=t[s+1],s+=1}return{argv:e,devProjectRoot:r,envPolicy:a,internalChild:n??"",stateDir:o}}var OP={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 Ake}from"path";import{createReadStream as Gke}from"fs";import{mkdtemp as Uke,rm as qke}from"fs/promises";import{join as Hke}from"path";import{tmpdir as Jke}from"os";var NP=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 gk(t){return`${JSON.stringify(rl(t),null,2)}
|
|
889
|
+
`}function rl(t){if(t===null||typeof t=="boolean"||typeof t=="number"||typeof t=="string")return t;if(Array.isArray(t))return t.map(e=>rl(e)??null);if(typeof t=="object")return DP(t)}function DP(t){let e=Object.entries(t).map(([r,a],o)=>({index:o,key:r,priority:NP.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=rl(r.value);a!==void 0&&(n[r.key]=a)}return n}import{homedir as txe}from"os";import{isAbsolute as rxe,relative as ixe,resolve as axe}from"path";import{existsSync as uxe,readFileSync as lxe}from"fs";import{dirname as pxe,join as hxe,parse as fxe,resolve as yxe}from"path";kl();var{tryRunWikiGraphGc:ZP}=await Promise.resolve().then(()=>(Rk(),vk));async function eA(){await yk("gc-worker",async({argv:t})=>{let e=tA(t);process.stdout.write(gk(await ZP({dryRun:e.dryRun,force:e.force})))})}function tA(t){return{dryRun:t.includes("--dry-run"),force:t.includes("--force")}}eA().catch(t=>{process.stderr.write(`${t instanceof Error?t.stack??t.message:String(t)}
|
|
890
890
|
`),process.exitCode=1});
|
|
891
891
|
//# sourceMappingURL=gc-worker.js.map
|