wiki-graph-core 0.3.1

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.
Files changed (576) hide show
  1. package/LICENSE +201 -0
  2. package/data/editor/clue_reviewer.jinja +410 -0
  3. package/data/editor/clue_reviewer_generator.jinja +428 -0
  4. package/data/editor/revision_feedback.jinja +5 -0
  5. package/data/editor/text_compressor.jinja +127 -0
  6. package/data/guaranteed/response_intent_classifier.jinja +8 -0
  7. package/data/help/commands/archive/next.jinja +29 -0
  8. package/data/help/commands/gc.jinja +38 -0
  9. package/data/help/commands/legacy/migrate.jinja +20 -0
  10. package/data/help/commands/legacy.jinja +19 -0
  11. package/data/help/commands/maintenance/chapter/add.jinja +41 -0
  12. package/data/help/commands/maintenance/chapter/list.jinja +33 -0
  13. package/data/help/commands/maintenance/chapter/move.jinja +36 -0
  14. package/data/help/commands/maintenance/chapter/remove.jinja +26 -0
  15. package/data/help/commands/maintenance/chapter/reset.jinja +29 -0
  16. package/data/help/commands/maintenance/chapter/set-source.jinja +34 -0
  17. package/data/help/commands/maintenance/chapter/set-summary.jinja +31 -0
  18. package/data/help/commands/maintenance/chapter/set-title.jinja +29 -0
  19. package/data/help/commands/maintenance/chapter/tree.jinja +58 -0
  20. package/data/help/commands/maintenance/chapter.jinja +59 -0
  21. package/data/help/commands/maintenance/cover.jinja +28 -0
  22. package/data/help/commands/maintenance/meta.jinja +55 -0
  23. package/data/help/commands/predicate.jinja +460 -0
  24. package/data/help/commands/root.jinja +83 -0
  25. package/data/help/commands/transform.jinja +34 -0
  26. package/data/help/commands/uri.jinja +274 -0
  27. package/data/help/topics/config.jinja +88 -0
  28. package/data/help/topics/format.jinja +72 -0
  29. package/data/help/topics/readiness.jinja +99 -0
  30. package/data/help/topics/recipe.jinja +151 -0
  31. package/data/help/topics/runtime.jinja +62 -0
  32. package/data/help/topics/uri.jinja +178 -0
  33. package/data/output/epub/cover.xhtml.jinja +13 -0
  34. package/data/output/epub/nav.xhtml.jinja +12 -0
  35. package/data/output/epub/package.opf.xml.jinja +39 -0
  36. package/data/output/epub/section.xhtml.jinja +12 -0
  37. package/data/topologization/book_coherence_extraction.jinja +223 -0
  38. package/data/topologization/chunk_extraction.jinja +233 -0
  39. package/data/topologization/evidence_choice.jinja +38 -0
  40. package/data/topologization/translate_chunks.jinja +138 -0
  41. package/data/topologization/user_focused_extraction.jinja +378 -0
  42. package/dist/archive/query/archive-view.d.ts +26 -0
  43. package/dist/archive/query/archive-view.js +4540 -0
  44. package/dist/archive/query/archive-view.js.map +1 -0
  45. package/dist/archive/query/continuation-cursor.d.ts +61 -0
  46. package/dist/archive/query/continuation-cursor.js +363 -0
  47. package/dist/archive/query/continuation-cursor.js.map +1 -0
  48. package/dist/archive/query/index.d.ts +29 -0
  49. package/dist/archive/query/index.js +63 -0
  50. package/dist/archive/query/index.js.map +1 -0
  51. package/dist/archive/query/lexical-search.d.ts +22 -0
  52. package/dist/archive/query/lexical-search.js +137 -0
  53. package/dist/archive/query/lexical-search.js.map +1 -0
  54. package/dist/archive/query/search-cache.d.ts +192 -0
  55. package/dist/archive/query/search-cache.js +1248 -0
  56. package/dist/archive/query/search-cache.js.map +1 -0
  57. package/dist/archive/search-index/index.d.ts +26 -0
  58. package/dist/archive/search-index/index.js +29 -0
  59. package/dist/archive/search-index/index.js.map +1 -0
  60. package/dist/archive/search-index/search-index.d.ts +26 -0
  61. package/dist/archive/search-index/search-index.js +555 -0
  62. package/dist/archive/search-index/search-index.js.map +1 -0
  63. package/dist/archive/search-index/search-tokenizer.d.ts +16 -0
  64. package/dist/archive/search-index/search-tokenizer.js +225 -0
  65. package/dist/archive/search-index/search-tokenizer.js.map +1 -0
  66. package/dist/common/cli-command.d.ts +4 -0
  67. package/dist/common/cli-command.js +7 -0
  68. package/dist/common/cli-command.js.map +1 -0
  69. package/dist/common/data-dir.d.ts +3 -0
  70. package/dist/common/data-dir.js +48 -0
  71. package/dist/common/data-dir.js.map +1 -0
  72. package/dist/common/language.d.ts +55 -0
  73. package/dist/common/language.js +208 -0
  74. package/dist/common/language.js.map +1 -0
  75. package/dist/common/llm-scope.d.ts +19 -0
  76. package/dist/common/llm-scope.js +31 -0
  77. package/dist/common/llm-scope.js.map +1 -0
  78. package/dist/common/logging.d.ts +22 -0
  79. package/dist/common/logging.js +141 -0
  80. package/dist/common/logging.js.map +1 -0
  81. package/dist/common/template.d.ts +8 -0
  82. package/dist/common/template.js +54 -0
  83. package/dist/common/template.js.map +1 -0
  84. package/dist/common/tinyld-language.d.ts +6 -0
  85. package/dist/common/tinyld-language.js +34 -0
  86. package/dist/common/tinyld-language.js.map +1 -0
  87. package/dist/common/wiki-graph-dir.d.ts +10 -0
  88. package/dist/common/wiki-graph-dir.js +41 -0
  89. package/dist/common/wiki-graph-dir.js.map +1 -0
  90. package/dist/common/wiki-graph-temp.d.ts +6 -0
  91. package/dist/common/wiki-graph-temp.js +21 -0
  92. package/dist/common/wiki-graph-temp.js.map +1 -0
  93. package/dist/common/wiki-graph-uri.d.ts +28 -0
  94. package/dist/common/wiki-graph-uri.js +171 -0
  95. package/dist/common/wiki-graph-uri.js.map +1 -0
  96. package/dist/context/index.d.ts +1 -0
  97. package/dist/context/index.js +13 -0
  98. package/dist/context/index.js.map +1 -0
  99. package/dist/context/task-context.d.ts +41 -0
  100. package/dist/context/task-context.js +111 -0
  101. package/dist/context/task-context.js.map +1 -0
  102. package/dist/document/database.d.ts +30 -0
  103. package/dist/document/database.js +273 -0
  104. package/dist/document/database.js.map +1 -0
  105. package/dist/document/document.d.ts +153 -0
  106. package/dist/document/document.js +615 -0
  107. package/dist/document/document.js.map +1 -0
  108. package/dist/document/fragments.d.ts +63 -0
  109. package/dist/document/fragments.js +371 -0
  110. package/dist/document/fragments.js.map +1 -0
  111. package/dist/document/index.d.ts +13 -0
  112. package/dist/document/index.js +62 -0
  113. package/dist/document/index.js.map +1 -0
  114. package/dist/document/schema.d.ts +8 -0
  115. package/dist/document/schema.js +472 -0
  116. package/dist/document/schema.js.map +1 -0
  117. package/dist/document/shared-state-database.d.ts +9 -0
  118. package/dist/document/shared-state-database.js +193 -0
  119. package/dist/document/shared-state-database.js.map +1 -0
  120. package/dist/document/stores.d.ts +203 -0
  121. package/dist/document/stores.js +1678 -0
  122. package/dist/document/stores.js.map +1 -0
  123. package/dist/document/text-streams.d.ts +86 -0
  124. package/dist/document/text-streams.js +515 -0
  125. package/dist/document/text-streams.js.map +1 -0
  126. package/dist/document/types.d.ts +148 -0
  127. package/dist/document/types.js +69 -0
  128. package/dist/document/types.js.map +1 -0
  129. package/dist/editor/clue.d.ts +27 -0
  130. package/dist/editor/clue.js +158 -0
  131. package/dist/editor/clue.js.map +1 -0
  132. package/dist/editor/compressor.d.ts +18 -0
  133. package/dist/editor/compressor.js +68 -0
  134. package/dist/editor/compressor.js.map +1 -0
  135. package/dist/editor/editor.d.ts +39 -0
  136. package/dist/editor/editor.js +253 -0
  137. package/dist/editor/editor.js.map +1 -0
  138. package/dist/editor/feedback.d.ts +16 -0
  139. package/dist/editor/feedback.js +104 -0
  140. package/dist/editor/feedback.js.map +1 -0
  141. package/dist/editor/index.d.ts +17 -0
  142. package/dist/editor/index.js +5 -0
  143. package/dist/editor/index.js.map +1 -0
  144. package/dist/editor/language-review.d.ts +14 -0
  145. package/dist/editor/language-review.js +35 -0
  146. package/dist/editor/language-review.js.map +1 -0
  147. package/dist/editor/log.d.ts +37 -0
  148. package/dist/editor/log.js +202 -0
  149. package/dist/editor/log.js.map +1 -0
  150. package/dist/editor/markup.d.ts +20 -0
  151. package/dist/editor/markup.js +294 -0
  152. package/dist/editor/markup.js.map +1 -0
  153. package/dist/editor/prompt-templates.d.ts +6 -0
  154. package/dist/editor/prompt-templates.js +11 -0
  155. package/dist/editor/prompt-templates.js.map +1 -0
  156. package/dist/editor/response.d.ts +5 -0
  157. package/dist/editor/response.js +31 -0
  158. package/dist/editor/response.js.map +1 -0
  159. package/dist/editor/review.d.ts +34 -0
  160. package/dist/editor/review.js +189 -0
  161. package/dist/editor/review.js.map +1 -0
  162. package/dist/editor/types.d.ts +31 -0
  163. package/dist/editor/types.js +21 -0
  164. package/dist/editor/types.js.map +1 -0
  165. package/dist/evidence-selection/anchor-resolver.d.ts +43 -0
  166. package/dist/evidence-selection/anchor-resolver.js +783 -0
  167. package/dist/evidence-selection/anchor-resolver.js.map +1 -0
  168. package/dist/evidence-selection/anchor-types.d.ts +27 -0
  169. package/dist/evidence-selection/anchor-types.js +1 -0
  170. package/dist/evidence-selection/anchor-types.js.map +1 -0
  171. package/dist/evidence-selection/index.d.ts +8 -0
  172. package/dist/evidence-selection/index.js +32 -0
  173. package/dist/evidence-selection/index.js.map +1 -0
  174. package/dist/evidence-selection/prompt.d.ts +18 -0
  175. package/dist/evidence-selection/prompt.js +54 -0
  176. package/dist/evidence-selection/prompt.js.map +1 -0
  177. package/dist/evidence-selection/quote-score.d.ts +29 -0
  178. package/dist/evidence-selection/quote-score.js +331 -0
  179. package/dist/evidence-selection/quote-score.js.map +1 -0
  180. package/dist/evidence-selection/selection-resolver.d.ts +19 -0
  181. package/dist/evidence-selection/selection-resolver.js +303 -0
  182. package/dist/evidence-selection/selection-resolver.js.map +1 -0
  183. package/dist/evidence-selection/text.d.ts +4 -0
  184. package/dist/evidence-selection/text.js +66 -0
  185. package/dist/evidence-selection/text.js.map +1 -0
  186. package/dist/evidence-selection/types.d.ts +36 -0
  187. package/dist/evidence-selection/types.js +1 -0
  188. package/dist/evidence-selection/types.js.map +1 -0
  189. package/dist/facade/app.d.ts +75 -0
  190. package/dist/facade/app.js +141 -0
  191. package/dist/facade/app.js.map +1 -0
  192. package/dist/facade/build-queue.d.ts +181 -0
  193. package/dist/facade/build-queue.js +1442 -0
  194. package/dist/facade/build-queue.js.map +1 -0
  195. package/dist/facade/chapter-build.d.ts +60 -0
  196. package/dist/facade/chapter-build.js +1020 -0
  197. package/dist/facade/chapter-build.js.map +1 -0
  198. package/dist/facade/chapter.d.ts +168 -0
  199. package/dist/facade/chapter.js +944 -0
  200. package/dist/facade/chapter.js.map +1 -0
  201. package/dist/facade/digest.d.ts +55 -0
  202. package/dist/facade/digest.js +168 -0
  203. package/dist/facade/digest.js.map +1 -0
  204. package/dist/facade/graph.d.ts +60 -0
  205. package/dist/facade/graph.js +203 -0
  206. package/dist/facade/graph.js.map +1 -0
  207. package/dist/facade/import.d.ts +49 -0
  208. package/dist/facade/import.js +262 -0
  209. package/dist/facade/import.js.map +1 -0
  210. package/dist/facade/index.d.ts +39 -0
  211. package/dist/facade/index.js +171 -0
  212. package/dist/facade/index.js.map +1 -0
  213. package/dist/facade/knowledge-graph-build.d.ts +75 -0
  214. package/dist/facade/knowledge-graph-build.js +897 -0
  215. package/dist/facade/knowledge-graph-build.js.map +1 -0
  216. package/dist/facade/llm-sampling.d.ts +11 -0
  217. package/dist/facade/llm-sampling.js +58 -0
  218. package/dist/facade/llm-sampling.js.map +1 -0
  219. package/dist/facade/types.d.ts +8 -0
  220. package/dist/facade/types.js +1 -0
  221. package/dist/facade/types.js.map +1 -0
  222. package/dist/facade/wiki-graph-archive.d.ts +41 -0
  223. package/dist/facade/wiki-graph-archive.js +130 -0
  224. package/dist/facade/wiki-graph-archive.js.map +1 -0
  225. package/dist/gc/files.d.ts +15 -0
  226. package/dist/gc/files.js +141 -0
  227. package/dist/gc/files.js.map +1 -0
  228. package/dist/gc/index.d.ts +2 -0
  229. package/dist/gc/index.js +5 -0
  230. package/dist/gc/index.js.map +1 -0
  231. package/dist/gc/lock.d.ts +3 -0
  232. package/dist/gc/lock.js +137 -0
  233. package/dist/gc/lock.js.map +1 -0
  234. package/dist/gc/runner.d.ts +9 -0
  235. package/dist/gc/runner.js +129 -0
  236. package/dist/gc/runner.js.map +1 -0
  237. package/dist/gc/tmp-gc.d.ts +5 -0
  238. package/dist/gc/tmp-gc.js +57 -0
  239. package/dist/gc/tmp-gc.js.map +1 -0
  240. package/dist/gc/types.d.ts +24 -0
  241. package/dist/gc/types.js +1 -0
  242. package/dist/gc/types.js.map +1 -0
  243. package/dist/gc.cjs +10041 -0
  244. package/dist/gc.cjs.map +1 -0
  245. package/dist/gc.d.cts +10 -0
  246. package/dist/gc.d.ts +2 -0
  247. package/dist/gc.js +5 -0
  248. package/dist/gc.js.map +1 -0
  249. package/dist/guaranteed/classifier.d.ts +10 -0
  250. package/dist/guaranteed/classifier.js +88 -0
  251. package/dist/guaranteed/classifier.js.map +1 -0
  252. package/dist/guaranteed/errors.d.ts +38 -0
  253. package/dist/guaranteed/errors.js +73 -0
  254. package/dist/guaranteed/errors.js.map +1 -0
  255. package/dist/guaranteed/index.d.ts +7 -0
  256. package/dist/guaranteed/index.js +21 -0
  257. package/dist/guaranteed/index.js.map +1 -0
  258. package/dist/guaranteed/request.d.ts +8 -0
  259. package/dist/guaranteed/request.js +206 -0
  260. package/dist/guaranteed/request.js.map +1 -0
  261. package/dist/guaranteed/response.d.ts +12 -0
  262. package/dist/guaranteed/response.js +98 -0
  263. package/dist/guaranteed/response.js.map +1 -0
  264. package/dist/guaranteed/types.d.ts +20 -0
  265. package/dist/guaranteed/types.js +1 -0
  266. package/dist/guaranteed/types.js.map +1 -0
  267. package/dist/index-B8NNnQ8P.d.ts +424 -0
  268. package/dist/index.cjs +34774 -0
  269. package/dist/index.cjs.map +1 -0
  270. package/dist/index.d.cts +2462 -0
  271. package/dist/index.d.ts +79 -0
  272. package/dist/index.js +168 -0
  273. package/dist/index.js.map +1 -0
  274. package/dist/legacy-sdpub/upgrade.d.ts +7 -0
  275. package/dist/legacy-sdpub/upgrade.js +795 -0
  276. package/dist/legacy-sdpub/upgrade.js.map +1 -0
  277. package/dist/llm/cache.d.ts +13 -0
  278. package/dist/llm/cache.js +35 -0
  279. package/dist/llm/cache.js.map +1 -0
  280. package/dist/llm/client.d.ts +26 -0
  281. package/dist/llm/client.js +572 -0
  282. package/dist/llm/client.js.map +1 -0
  283. package/dist/llm/context.d.ts +22 -0
  284. package/dist/llm/context.js +78 -0
  285. package/dist/llm/context.js.map +1 -0
  286. package/dist/llm/errors.d.ts +7 -0
  287. package/dist/llm/errors.js +12 -0
  288. package/dist/llm/errors.js.map +1 -0
  289. package/dist/llm/index.d.ts +7 -0
  290. package/dist/llm/index.js +17 -0
  291. package/dist/llm/index.js.map +1 -0
  292. package/dist/llm/request-log.d.ts +9 -0
  293. package/dist/llm/request-log.js +35 -0
  294. package/dist/llm/request-log.js.map +1 -0
  295. package/dist/llm/sampling.d.ts +11 -0
  296. package/dist/llm/sampling.js +67 -0
  297. package/dist/llm/sampling.js.map +1 -0
  298. package/dist/llm/types.d.ts +50 -0
  299. package/dist/llm/types.js +1 -0
  300. package/dist/llm/types.js.map +1 -0
  301. package/dist/output/epub/archive.d.ts +9 -0
  302. package/dist/output/epub/archive.js +81 -0
  303. package/dist/output/epub/archive.js.map +1 -0
  304. package/dist/output/epub/book.d.ts +15 -0
  305. package/dist/output/epub/book.js +76 -0
  306. package/dist/output/epub/book.js.map +1 -0
  307. package/dist/output/epub/content.d.ts +9 -0
  308. package/dist/output/epub/content.js +35 -0
  309. package/dist/output/epub/content.js.map +1 -0
  310. package/dist/output/epub/index.d.ts +20 -0
  311. package/dist/output/epub/index.js +14 -0
  312. package/dist/output/epub/index.js.map +1 -0
  313. package/dist/output/epub/model.d.ts +24 -0
  314. package/dist/output/epub/model.js +1 -0
  315. package/dist/output/epub/model.js.map +1 -0
  316. package/dist/output/epub/navigation.d.ts +10 -0
  317. package/dist/output/epub/navigation.js +39 -0
  318. package/dist/output/epub/navigation.js.map +1 -0
  319. package/dist/output/epub/package.d.ts +17 -0
  320. package/dist/output/epub/package.js +29 -0
  321. package/dist/output/epub/package.js.map +1 -0
  322. package/dist/output/epub/shared.d.ts +4 -0
  323. package/dist/output/epub/shared.js +12 -0
  324. package/dist/output/epub/shared.js.map +1 -0
  325. package/dist/output/epub/templates.d.ts +35 -0
  326. package/dist/output/epub/templates.js +26 -0
  327. package/dist/output/epub/templates.js.map +1 -0
  328. package/dist/output/index.d.ts +14 -0
  329. package/dist/output/index.js +11 -0
  330. package/dist/output/index.js.map +1 -0
  331. package/dist/output/plain-text.d.ts +18 -0
  332. package/dist/output/plain-text.js +56 -0
  333. package/dist/output/plain-text.js.map +1 -0
  334. package/dist/progress/index.d.ts +3 -0
  335. package/dist/progress/index.js +14 -0
  336. package/dist/progress/index.js.map +1 -0
  337. package/dist/progress/reporter.d.ts +10 -0
  338. package/dist/progress/reporter.js +79 -0
  339. package/dist/progress/reporter.js.map +1 -0
  340. package/dist/progress/tracker.d.ts +37 -0
  341. package/dist/progress/tracker.js +119 -0
  342. package/dist/progress/tracker.js.map +1 -0
  343. package/dist/progress/types.d.ts +28 -0
  344. package/dist/progress/types.js +1 -0
  345. package/dist/progress/types.js.map +1 -0
  346. package/dist/reader/attention/attention.d.ts +39 -0
  347. package/dist/reader/attention/attention.js +123 -0
  348. package/dist/reader/attention/attention.js.map +1 -0
  349. package/dist/reader/attention/index.d.ts +9 -0
  350. package/dist/reader/attention/index.js +5 -0
  351. package/dist/reader/attention/index.js.map +1 -0
  352. package/dist/reader/attention/wave-reflection.d.ts +21 -0
  353. package/dist/reader/attention/wave-reflection.js +153 -0
  354. package/dist/reader/attention/wave-reflection.js.map +1 -0
  355. package/dist/reader/attention/working-memory.d.ts +28 -0
  356. package/dist/reader/attention/working-memory.js +62 -0
  357. package/dist/reader/attention/working-memory.js.map +1 -0
  358. package/dist/reader/chunk-batch/extract.d.ts +13 -0
  359. package/dist/reader/chunk-batch/extract.js +14 -0
  360. package/dist/reader/chunk-batch/extract.js.map +1 -0
  361. package/dist/reader/chunk-batch/extractor.d.ts +17 -0
  362. package/dist/reader/chunk-batch/extractor.js +337 -0
  363. package/dist/reader/chunk-batch/extractor.js.map +1 -0
  364. package/dist/reader/chunk-batch/fragment-projection.d.ts +34 -0
  365. package/dist/reader/chunk-batch/fragment-projection.js +94 -0
  366. package/dist/reader/chunk-batch/fragment-projection.js.map +1 -0
  367. package/dist/reader/chunk-batch/index.d.ts +12 -0
  368. package/dist/reader/chunk-batch/index.js +13 -0
  369. package/dist/reader/chunk-batch/index.js.map +1 -0
  370. package/dist/reader/chunk-batch/language.d.ts +9 -0
  371. package/dist/reader/chunk-batch/language.js +23 -0
  372. package/dist/reader/chunk-batch/language.js.map +1 -0
  373. package/dist/reader/chunk-batch/parser.d.ts +94 -0
  374. package/dist/reader/chunk-batch/parser.js +640 -0
  375. package/dist/reader/chunk-batch/parser.js.map +1 -0
  376. package/dist/reader/chunk-batch/prompt-templates.d.ts +6 -0
  377. package/dist/reader/chunk-batch/prompt-templates.js +11 -0
  378. package/dist/reader/chunk-batch/prompt-templates.js.map +1 -0
  379. package/dist/reader/chunk-batch/types.d.ts +85 -0
  380. package/dist/reader/chunk-batch/types.js +1 -0
  381. package/dist/reader/chunk-batch/types.js.map +1 -0
  382. package/dist/reader/index.d.ts +13 -0
  383. package/dist/reader/index.js +7 -0
  384. package/dist/reader/index.js.map +1 -0
  385. package/dist/reader/reader.d.ts +37 -0
  386. package/dist/reader/reader.js +82 -0
  387. package/dist/reader/reader.js.map +1 -0
  388. package/dist/reader/segment/index.d.ts +2 -0
  389. package/dist/reader/segment/index.js +5 -0
  390. package/dist/reader/segment/index.js.map +1 -0
  391. package/dist/reader/segment/intl-segmenter.d.ts +5 -0
  392. package/dist/reader/segment/intl-segmenter.js +102 -0
  393. package/dist/reader/segment/intl-segmenter.js.map +1 -0
  394. package/dist/reader/segment/segment.d.ts +5 -0
  395. package/dist/reader/segment/segment.js +9 -0
  396. package/dist/reader/segment/segment.js.map +1 -0
  397. package/dist/reader/segment/types.d.ts +14 -0
  398. package/dist/reader/segment/types.js +1 -0
  399. package/dist/reader/segment/types.js.map +1 -0
  400. package/dist/reader/types.d.ts +29 -0
  401. package/dist/reader/types.js +1 -0
  402. package/dist/reader/types.js.map +1 -0
  403. package/dist/serial.d.ts +89 -0
  404. package/dist/serial.js +476 -0
  405. package/dist/serial.js.map +1 -0
  406. package/dist/source/adapter.d.ts +15 -0
  407. package/dist/source/adapter.js +1 -0
  408. package/dist/source/adapter.js.map +1 -0
  409. package/dist/source/epub/archive.d.ts +27 -0
  410. package/dist/source/epub/archive.js +189 -0
  411. package/dist/source/epub/archive.js.map +1 -0
  412. package/dist/source/epub/content.d.ts +22 -0
  413. package/dist/source/epub/content.js +183 -0
  414. package/dist/source/epub/content.js.map +1 -0
  415. package/dist/source/epub/document.d.ts +55 -0
  416. package/dist/source/epub/document.js +179 -0
  417. package/dist/source/epub/document.js.map +1 -0
  418. package/dist/source/epub/index.d.ts +10 -0
  419. package/dist/source/epub/index.js +6 -0
  420. package/dist/source/epub/index.js.map +1 -0
  421. package/dist/source/epub/navigation.d.ts +16 -0
  422. package/dist/source/epub/navigation.js +215 -0
  423. package/dist/source/epub/navigation.js.map +1 -0
  424. package/dist/source/epub/package.d.ts +33 -0
  425. package/dist/source/epub/package.js +237 -0
  426. package/dist/source/epub/package.js.map +1 -0
  427. package/dist/source/epub/xml.d.ts +16 -0
  428. package/dist/source/epub/xml.js +111 -0
  429. package/dist/source/epub/xml.js.map +1 -0
  430. package/dist/source/index.d.ts +12 -0
  431. package/dist/source/index.js +32 -0
  432. package/dist/source/index.js.map +1 -0
  433. package/dist/source/meta.d.ts +30 -0
  434. package/dist/source/meta.js +22 -0
  435. package/dist/source/meta.js.map +1 -0
  436. package/dist/source/plain-text.d.ts +16 -0
  437. package/dist/source/plain-text.js +86 -0
  438. package/dist/source/plain-text.js.map +1 -0
  439. package/dist/source/toc.d.ts +16 -0
  440. package/dist/source/toc.js +17 -0
  441. package/dist/source/toc.js.map +1 -0
  442. package/dist/source/types.d.ts +16 -0
  443. package/dist/source/types.js +1 -0
  444. package/dist/source/types.js.map +1 -0
  445. package/dist/topology/grouping.d.ts +15 -0
  446. package/dist/topology/grouping.js +18 -0
  447. package/dist/topology/grouping.js.map +1 -0
  448. package/dist/topology/index.d.ts +21 -0
  449. package/dist/topology/index.js +5 -0
  450. package/dist/topology/index.js.map +1 -0
  451. package/dist/topology/resource-segmentation.d.ts +13 -0
  452. package/dist/topology/resource-segmentation.js +111 -0
  453. package/dist/topology/resource-segmentation.js.map +1 -0
  454. package/dist/topology/segment-incision.d.ts +18 -0
  455. package/dist/topology/segment-incision.js +197 -0
  456. package/dist/topology/segment-incision.js.map +1 -0
  457. package/dist/topology/snake-detector.d.ts +13 -0
  458. package/dist/topology/snake-detector.js +520 -0
  459. package/dist/topology/snake-detector.js.map +1 -0
  460. package/dist/topology/snake-graph-builder.d.ts +14 -0
  461. package/dist/topology/snake-graph-builder.js +76 -0
  462. package/dist/topology/snake-graph-builder.js.map +1 -0
  463. package/dist/topology/topology.d.ts +29 -0
  464. package/dist/topology/topology.js +348 -0
  465. package/dist/topology/topology.js.map +1 -0
  466. package/dist/topology/weights.d.ts +10 -0
  467. package/dist/topology/weights.js +84 -0
  468. package/dist/topology/weights.js.map +1 -0
  469. package/dist/types-FVIqiLC9.d.cts +24 -0
  470. package/dist/utils/async-semaphore.d.ts +7 -0
  471. package/dist/utils/async-semaphore.js +40 -0
  472. package/dist/utils/async-semaphore.js.map +1 -0
  473. package/dist/utils/enum.d.ts +5 -0
  474. package/dist/utils/enum.js +18 -0
  475. package/dist/utils/enum.js.map +1 -0
  476. package/dist/utils/hash.d.ts +3 -0
  477. package/dist/utils/hash.js +132 -0
  478. package/dist/utils/hash.js.map +1 -0
  479. package/dist/utils/node-error.d.ts +4 -0
  480. package/dist/utils/node-error.js +59 -0
  481. package/dist/utils/node-error.js.map +1 -0
  482. package/dist/wikg/archive-uri.d.ts +1 -0
  483. package/dist/wikg/archive-uri.js +37 -0
  484. package/dist/wikg/archive-uri.js.map +1 -0
  485. package/dist/wikg/archive.d.ts +28 -0
  486. package/dist/wikg/archive.js +496 -0
  487. package/dist/wikg/archive.js.map +1 -0
  488. package/dist/wikg/index.d.ts +31 -0
  489. package/dist/wikg/index.js +60 -0
  490. package/dist/wikg/index.js.map +1 -0
  491. package/dist/wikg/wikg-coordinator.d.ts +45 -0
  492. package/dist/wikg/wikg-coordinator.js +1687 -0
  493. package/dist/wikg/wikg-coordinator.js.map +1 -0
  494. package/dist/wikg/wiki-graph-archive-file.d.ts +42 -0
  495. package/dist/wikg/wiki-graph-archive-file.js +78 -0
  496. package/dist/wikg/wiki-graph-archive-file.js.map +1 -0
  497. package/dist/wikilink/index.d.ts +10 -0
  498. package/dist/wikilink/index.js +7 -0
  499. package/dist/wikilink/index.js.map +1 -0
  500. package/dist/wikilink/relation-discovery.d.ts +31 -0
  501. package/dist/wikilink/relation-discovery.js +477 -0
  502. package/dist/wikilink/relation-discovery.js.map +1 -0
  503. package/dist/wikilink/types.d.ts +23 -0
  504. package/dist/wikilink/types.js +1 -0
  505. package/dist/wikilink/types.js.map +1 -0
  506. package/dist/wikilink/window.d.ts +7 -0
  507. package/dist/wikilink/window.js +53 -0
  508. package/dist/wikilink/window.js.map +1 -0
  509. package/dist/wikimatch/enrichment.d.ts +10 -0
  510. package/dist/wikimatch/enrichment.js +55 -0
  511. package/dist/wikimatch/enrichment.js.map +1 -0
  512. package/dist/wikimatch/index.d.ts +16 -0
  513. package/dist/wikimatch/index.js +66 -0
  514. package/dist/wikimatch/index.js.map +1 -0
  515. package/dist/wikimatch/option-narrowing.d.ts +17 -0
  516. package/dist/wikimatch/option-narrowing.js +208 -0
  517. package/dist/wikimatch/option-narrowing.js.map +1 -0
  518. package/dist/wikimatch/options.d.ts +14 -0
  519. package/dist/wikimatch/options.js +155 -0
  520. package/dist/wikimatch/options.js.map +1 -0
  521. package/dist/wikimatch/policy-judge.d.ts +17 -0
  522. package/dist/wikimatch/policy-judge.js +430 -0
  523. package/dist/wikimatch/policy-judge.js.map +1 -0
  524. package/dist/wikimatch/range-suppression.d.ts +9 -0
  525. package/dist/wikimatch/range-suppression.js +27 -0
  526. package/dist/wikimatch/range-suppression.js.map +1 -0
  527. package/dist/wikimatch/surface-screening.d.ts +16 -0
  528. package/dist/wikimatch/surface-screening.js +168 -0
  529. package/dist/wikimatch/surface-screening.js.map +1 -0
  530. package/dist/wikimatch/surface-window.d.ts +6 -0
  531. package/dist/wikimatch/surface-window.js +44 -0
  532. package/dist/wikimatch/surface-window.js.map +1 -0
  533. package/dist/wikimatch/types.d.ts +151 -0
  534. package/dist/wikimatch/types.js +1 -0
  535. package/dist/wikimatch/types.js.map +1 -0
  536. package/dist/wikimatch/wikispine.d.ts +43 -0
  537. package/dist/wikimatch/wikispine.js +399 -0
  538. package/dist/wikimatch/wikispine.js.map +1 -0
  539. package/dist/wikimatch/window.d.ts +6 -0
  540. package/dist/wikimatch/window.js +83 -0
  541. package/dist/wikimatch/window.js.map +1 -0
  542. package/dist/wikimatch/words.d.ts +16 -0
  543. package/dist/wikimatch/words.js +66 -0
  544. package/dist/wikimatch/words.js.map +1 -0
  545. package/dist/wikipage/cache.d.ts +18 -0
  546. package/dist/wikipage/cache.js +404 -0
  547. package/dist/wikipage/cache.js.map +1 -0
  548. package/dist/wikipage/fetch-log.d.ts +17 -0
  549. package/dist/wikipage/fetch-log.js +143 -0
  550. package/dist/wikipage/fetch-log.js.map +1 -0
  551. package/dist/wikipage/index.d.ts +14 -0
  552. package/dist/wikipage/index.js +17 -0
  553. package/dist/wikipage/index.js.map +1 -0
  554. package/dist/wikipage/normalizer.d.ts +14 -0
  555. package/dist/wikipage/normalizer.js +147 -0
  556. package/dist/wikipage/normalizer.js.map +1 -0
  557. package/dist/wikipage/rate-limiter.d.ts +13 -0
  558. package/dist/wikipage/rate-limiter.js +84 -0
  559. package/dist/wikipage/rate-limiter.js.map +1 -0
  560. package/dist/wikipage/resolver.d.ts +26 -0
  561. package/dist/wikipage/resolver.js +325 -0
  562. package/dist/wikipage/resolver.js.map +1 -0
  563. package/dist/wikipage/types.d.ts +96 -0
  564. package/dist/wikipage/types.js +1 -0
  565. package/dist/wikipage/types.js.map +1 -0
  566. package/dist/wikipage/wikimedia-client.d.ts +48 -0
  567. package/dist/wikipage/wikimedia-client.js +397 -0
  568. package/dist/wikipage/wikimedia-client.js.map +1 -0
  569. package/dist/worker-BgQ0Xl8T.d.cts +181 -0
  570. package/dist/worker.cjs +5259 -0
  571. package/dist/worker.cjs.map +1 -0
  572. package/dist/worker.d.cts +2 -0
  573. package/dist/worker.d.ts +2 -0
  574. package/dist/worker.js +5 -0
  575. package/dist/worker.js.map +1 -0
  576. package/package.json +78 -0
@@ -0,0 +1,141 @@
1
+ import { resolveDataDirPath } from "../common/data-dir.js";
2
+ import { withLoggingContext } from "../common/logging.js";
3
+ import { LLM } from "../llm/index.js";
4
+ import {
5
+ digestEpubSession,
6
+ digestMarkdownSession,
7
+ digestTextStreamSession,
8
+ digestTxtSession
9
+ } from "./digest.js";
10
+ import { createDefaultWikiGraphSampling } from "./llm-sampling.js";
11
+ import { WikiGraphArchiveFile } from "../wikg/index.js";
12
+ const DATA_DIR_PATH = resolveDataDirPath();
13
+ const DEFAULT_EXTRACTION_PROMPT = "Focus on the main storyline and key character developments. Preserve important dialogues and critical plot points. Background descriptions and minor details can be compressed significantly.";
14
+ class WikiGraph {
15
+ #debugLogDirPath;
16
+ #llm;
17
+ #verbose;
18
+ constructor(options) {
19
+ this.#debugLogDirPath = options.debugLogDirPath;
20
+ this.#verbose = options.verbose ?? false;
21
+ if (options.llm === void 0) {
22
+ this.#llm = void 0;
23
+ return;
24
+ }
25
+ const llmOptions = normalizeLLMOptions(options.llm);
26
+ this.#llm = new LLM({
27
+ dataDirPath: DATA_DIR_PATH,
28
+ sampling: createDefaultWikiGraphSampling({
29
+ ...llmOptions.temperature === void 0 ? {} : { temperature: llmOptions.temperature },
30
+ ...llmOptions.topP === void 0 ? {} : { topP: llmOptions.topP }
31
+ }),
32
+ ...llmOptions
33
+ });
34
+ }
35
+ async digestEpubSession(options, operation) {
36
+ return await this.#withLogging(
37
+ "digest-epub",
38
+ async () => await digestEpubSession(this.#createSourceOptions(options), operation)
39
+ );
40
+ }
41
+ async digestMarkdownSession(options, operation) {
42
+ return await this.#withLogging(
43
+ "digest-markdown",
44
+ async () => await digestMarkdownSession(
45
+ this.#createSourceOptions(options),
46
+ operation
47
+ )
48
+ );
49
+ }
50
+ async digestTextStreamSession(options, operation) {
51
+ return await this.#withLogging(
52
+ "digest-text-stream",
53
+ async () => await digestTextStreamSession(
54
+ {
55
+ extractionPrompt: resolveExtractionPrompt(options.extractionPrompt),
56
+ ...optionalLLM(this.#resolveStageLLM(options.targetStage)),
57
+ ...options.onProgress === void 0 ? {} : { onProgress: options.onProgress },
58
+ stream: options.stream,
59
+ ...this.#debugLogDirPath === void 0 ? {} : { logDirPath: this.#debugLogDirPath },
60
+ ...options.bookLanguage === void 0 ? {} : { bookLanguage: options.bookLanguage },
61
+ ...options.documentDirPath === void 0 ? {} : { documentDirPath: options.documentDirPath },
62
+ ...options.sourceFormat === void 0 ? {} : { sourceFormat: options.sourceFormat },
63
+ ...options.targetStage === void 0 ? {} : { targetStage: options.targetStage },
64
+ ...options.title === void 0 ? {} : { title: options.title },
65
+ ...options.userLanguage === void 0 ? {} : { userLanguage: options.userLanguage }
66
+ },
67
+ operation
68
+ )
69
+ );
70
+ }
71
+ async digestTxtSession(options, operation) {
72
+ return await this.#withLogging(
73
+ "digest-txt",
74
+ async () => await digestTxtSession(this.#createSourceOptions(options), operation)
75
+ );
76
+ }
77
+ async openSession(path, operation, options = {}) {
78
+ return await this.#withLogging(
79
+ "open-wikg",
80
+ async () => await new WikiGraphArchiveFile(path).read(operation, {
81
+ ...options.documentDirPath === void 0 ? {} : { documentDirPath: options.documentDirPath }
82
+ })
83
+ );
84
+ }
85
+ #createSourceOptions(options) {
86
+ return {
87
+ extractionPrompt: resolveExtractionPrompt(options.extractionPrompt),
88
+ ...optionalLLM(this.#resolveStageLLM(options.targetStage)),
89
+ ...options.onProgress === void 0 ? {} : { onProgress: options.onProgress },
90
+ path: options.path,
91
+ ...this.#debugLogDirPath === void 0 ? {} : { logDirPath: this.#debugLogDirPath },
92
+ ...options.documentDirPath === void 0 ? {} : { documentDirPath: options.documentDirPath },
93
+ ...options.targetStage === void 0 ? {} : { targetStage: options.targetStage },
94
+ ...options.userLanguage === void 0 ? {} : { userLanguage: options.userLanguage }
95
+ };
96
+ }
97
+ #requireLLM() {
98
+ if (this.#llm === void 0) {
99
+ throw new Error(
100
+ "LLM is required for digest operations. Configure `llm` when constructing WikiGraph."
101
+ );
102
+ }
103
+ return this.#llm;
104
+ }
105
+ #resolveStageLLM(targetStage) {
106
+ if (targetStage === "planned" || targetStage === "sourced") {
107
+ return void 0;
108
+ }
109
+ return this.#requireLLM();
110
+ }
111
+ async #withLogging(operation, task) {
112
+ return await withLoggingContext(
113
+ {
114
+ operation,
115
+ ...this.#debugLogDirPath === void 0 ? {} : { logDirPath: this.#debugLogDirPath },
116
+ ...this.#verbose ? { verbose: true } : {}
117
+ },
118
+ task
119
+ );
120
+ }
121
+ }
122
+ function optionalLLM(llm) {
123
+ return llm === void 0 ? {} : { llm };
124
+ }
125
+ function normalizeLLMOptions(llm) {
126
+ if (isWikiGraphLLMOptions(llm)) {
127
+ return llm;
128
+ }
129
+ return { model: llm };
130
+ }
131
+ function isWikiGraphLLMOptions(llm) {
132
+ return typeof llm === "object" && llm !== null && "model" in llm;
133
+ }
134
+ function resolveExtractionPrompt(prompt) {
135
+ const normalizedPrompt = prompt?.trim();
136
+ return normalizedPrompt === void 0 || normalizedPrompt === "" ? DEFAULT_EXTRACTION_PROMPT : normalizedPrompt;
137
+ }
138
+ export {
139
+ WikiGraph
140
+ };
141
+ //# sourceMappingURL=app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/facade/app.ts"],"sourcesContent":["import type { LanguageModel } from \"ai\";\n\nimport { resolveDataDirPath } from \"../common/data-dir.js\";\nimport type { Language } from \"../common/language.js\";\nimport type { WikiGraphScope } from \"../common/llm-scope.js\";\nimport { withLoggingContext } from \"../common/logging.js\";\nimport { LLM } from \"../llm/index.js\";\nimport type {\n DigestProgressEvent,\n SerialDiscoveryItem,\n SerialsDiscoveredEvent,\n SerialProgressEvent,\n WikiGraphProgressCallback,\n WikiGraphProgressEvent,\n WikiGraphProgressEventType,\n WikiGraphOperation,\n} from \"../progress/index.js\";\n\nimport {\n digestEpubSession,\n digestMarkdownSession,\n digestTextStreamSession,\n digestTxtSession,\n type DigestDocumentSessionOptions,\n type DigestSourceSessionOptions,\n type DigestTextStreamSessionOptions,\n} from \"./digest.js\";\nimport { createDefaultWikiGraphSampling } from \"./llm-sampling.js\";\nimport { WikiGraphArchiveFile } from \"../wikg/index.js\";\nimport type { WikiGraphArchive } from \"./wiki-graph-archive.js\";\nimport type { ChapterStage } from \"./chapter.js\";\n\nconst DATA_DIR_PATH = resolveDataDirPath();\n\nconst DEFAULT_EXTRACTION_PROMPT =\n \"Focus on the main storyline and key character developments. Preserve important dialogues and critical plot points. Background descriptions and minor details can be compressed significantly.\";\n\nexport interface WikiGraphLLMOptions {\n readonly cacheDirPath?: string;\n readonly concurrent?: number;\n readonly logDirPath?: string;\n readonly model: LanguageModel;\n readonly retryIntervalSeconds?: number;\n readonly retryTimes?: number;\n readonly stream?: boolean;\n readonly temperature?: number | readonly number[];\n readonly timeout?: number;\n readonly topP?: number | readonly number[];\n}\n\nexport interface WikiGraphOptions {\n readonly debugLogDirPath?: string;\n readonly llm?: LanguageModel | WikiGraphLLMOptions;\n readonly verbose?: boolean;\n}\n\nexport type WikiGraphOpenSessionOptions = DigestDocumentSessionOptions;\n\nexport interface WikiGraphSourceSessionOptions extends DigestDocumentSessionOptions {\n readonly extractionPrompt?: string;\n readonly onProgress?: WikiGraphProgressCallback;\n readonly path: string;\n readonly targetStage?: ChapterStage;\n readonly userLanguage?: Language;\n}\n\nexport interface WikiGraphTextStreamSessionOptions extends DigestDocumentSessionOptions {\n readonly bookLanguage?: string | null;\n readonly extractionPrompt?: string;\n readonly onProgress?: WikiGraphProgressCallback;\n readonly sourceFormat?: \"markdown\" | \"txt\";\n readonly stream: AsyncIterable<string> | Iterable<string>;\n readonly targetStage?: ChapterStage;\n readonly title?: string | null;\n readonly userLanguage?: Language;\n}\n\nexport class WikiGraph {\n readonly #debugLogDirPath: string | undefined;\n readonly #llm: LLM<WikiGraphScope> | undefined;\n readonly #verbose: boolean;\n\n public constructor(options: WikiGraphOptions) {\n this.#debugLogDirPath = options.debugLogDirPath;\n this.#verbose = options.verbose ?? false;\n if (options.llm === undefined) {\n this.#llm = undefined;\n return;\n }\n const llmOptions = normalizeLLMOptions(options.llm);\n\n this.#llm = new LLM<WikiGraphScope>({\n dataDirPath: DATA_DIR_PATH,\n sampling: createDefaultWikiGraphSampling({\n ...(llmOptions.temperature === undefined\n ? {}\n : { temperature: llmOptions.temperature }),\n ...(llmOptions.topP === undefined ? {} : { topP: llmOptions.topP }),\n }),\n ...llmOptions,\n });\n }\n\n public async digestEpubSession<T>(\n options: WikiGraphSourceSessionOptions,\n operation: (digest: WikiGraphArchive) => Promise<T> | T,\n ): Promise<T> {\n return await this.#withLogging(\n \"digest-epub\",\n async () =>\n await digestEpubSession(this.#createSourceOptions(options), operation),\n );\n }\n\n public async digestMarkdownSession<T>(\n options: WikiGraphSourceSessionOptions,\n operation: (digest: WikiGraphArchive) => Promise<T> | T,\n ): Promise<T> {\n return await this.#withLogging(\n \"digest-markdown\",\n async () =>\n await digestMarkdownSession(\n this.#createSourceOptions(options),\n operation,\n ),\n );\n }\n\n public async digestTextStreamSession<T>(\n options: WikiGraphTextStreamSessionOptions,\n operation: (digest: WikiGraphArchive) => Promise<T> | T,\n ): Promise<T> {\n return await this.#withLogging(\n \"digest-text-stream\",\n async () =>\n await digestTextStreamSession(\n {\n extractionPrompt: resolveExtractionPrompt(options.extractionPrompt),\n ...optionalLLM(this.#resolveStageLLM(options.targetStage)),\n ...(options.onProgress === undefined\n ? {}\n : { onProgress: options.onProgress }),\n stream: options.stream,\n ...(this.#debugLogDirPath === undefined\n ? {}\n : { logDirPath: this.#debugLogDirPath }),\n ...(options.bookLanguage === undefined\n ? {}\n : { bookLanguage: options.bookLanguage }),\n ...(options.documentDirPath === undefined\n ? {}\n : { documentDirPath: options.documentDirPath }),\n ...(options.sourceFormat === undefined\n ? {}\n : { sourceFormat: options.sourceFormat }),\n ...(options.targetStage === undefined\n ? {}\n : { targetStage: options.targetStage }),\n ...(options.title === undefined ? {} : { title: options.title }),\n ...(options.userLanguage === undefined\n ? {}\n : { userLanguage: options.userLanguage }),\n } satisfies DigestTextStreamSessionOptions,\n operation,\n ),\n );\n }\n\n public async digestTxtSession<T>(\n options: WikiGraphSourceSessionOptions,\n operation: (digest: WikiGraphArchive) => Promise<T> | T,\n ): Promise<T> {\n return await this.#withLogging(\n \"digest-txt\",\n async () =>\n await digestTxtSession(this.#createSourceOptions(options), operation),\n );\n }\n\n public async openSession<T>(\n path: string,\n operation: (digest: WikiGraphArchive) => Promise<T> | T,\n options: WikiGraphOpenSessionOptions = {},\n ): Promise<T> {\n return await this.#withLogging(\n \"open-wikg\",\n async () =>\n await new WikiGraphArchiveFile(path).read(operation, {\n ...(options.documentDirPath === undefined\n ? {}\n : { documentDirPath: options.documentDirPath }),\n }),\n );\n }\n\n #createSourceOptions(\n options: WikiGraphSourceSessionOptions,\n ): DigestSourceSessionOptions {\n return {\n extractionPrompt: resolveExtractionPrompt(options.extractionPrompt),\n ...optionalLLM(this.#resolveStageLLM(options.targetStage)),\n ...(options.onProgress === undefined\n ? {}\n : { onProgress: options.onProgress }),\n path: options.path,\n ...(this.#debugLogDirPath === undefined\n ? {}\n : { logDirPath: this.#debugLogDirPath }),\n ...(options.documentDirPath === undefined\n ? {}\n : { documentDirPath: options.documentDirPath }),\n ...(options.targetStage === undefined\n ? {}\n : { targetStage: options.targetStage }),\n ...(options.userLanguage === undefined\n ? {}\n : { userLanguage: options.userLanguage }),\n };\n }\n\n #requireLLM(): LLM<WikiGraphScope> {\n if (this.#llm === undefined) {\n throw new Error(\n \"LLM is required for digest operations. Configure `llm` when constructing WikiGraph.\",\n );\n }\n\n return this.#llm;\n }\n\n #resolveStageLLM(\n targetStage: ChapterStage | undefined,\n ): LLM<WikiGraphScope> | undefined {\n if (targetStage === \"planned\" || targetStage === \"sourced\") {\n return undefined;\n }\n\n return this.#requireLLM();\n }\n\n async #withLogging<T>(operation: string, task: () => Promise<T>): Promise<T> {\n return await withLoggingContext(\n {\n operation,\n ...(this.#debugLogDirPath === undefined\n ? {}\n : { logDirPath: this.#debugLogDirPath }),\n ...(this.#verbose ? { verbose: true } : {}),\n },\n task,\n );\n }\n}\n\nexport type {\n DigestProgressEvent,\n SerialDiscoveryItem,\n SerialsDiscoveredEvent,\n SerialProgressEvent,\n WikiGraphProgressCallback,\n WikiGraphProgressEvent,\n WikiGraphProgressEventType,\n WikiGraphOperation,\n};\n\nfunction optionalLLM(\n llm: LLM<WikiGraphScope> | undefined,\n): { readonly llm: LLM<WikiGraphScope> } | Record<string, never> {\n return llm === undefined ? {} : { llm };\n}\n\nfunction normalizeLLMOptions(\n llm: NonNullable<WikiGraphOptions[\"llm\"]>,\n): WikiGraphLLMOptions {\n if (isWikiGraphLLMOptions(llm)) {\n return llm;\n }\n\n return { model: llm };\n}\n\nfunction isWikiGraphLLMOptions(\n llm: NonNullable<WikiGraphOptions[\"llm\"]>,\n): llm is WikiGraphLLMOptions {\n return typeof llm === \"object\" && llm !== null && \"model\" in llm;\n}\n\nfunction resolveExtractionPrompt(prompt: string | undefined): string {\n const normalizedPrompt = prompt?.trim();\n\n return normalizedPrompt === undefined || normalizedPrompt === \"\"\n ? DEFAULT_EXTRACTION_PROMPT\n : normalizedPrompt;\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,181 @@
1
+ import { GcContext, GcJobResult } from '../gc/types.js';
2
+
3
+ declare const BUILD_JOB_STATES: readonly ["queued", "running", "canceling", "paused", "succeeded", "failed", "canceled"];
4
+ type BuildJobState = (typeof BUILD_JOB_STATES)[number];
5
+ type BuildJobTarget = "knowledge-graph" | "reading-graph" | "reading-summary";
6
+ type BuildJobProgressPhase = "committing" | "enrichment" | "grounding" | "matching" | "narrowing" | "relation-discovery" | "screening";
7
+ type BuildJobProgressUnit = "candidate" | "char" | "item" | "page" | "qid" | "sentence" | "window" | "record";
8
+ interface BuildJobProgressCounter {
9
+ readonly done: number;
10
+ readonly name: string;
11
+ readonly total: number;
12
+ readonly unit: BuildJobProgressUnit | "word";
13
+ }
14
+ interface BuildJobTokenUsage {
15
+ readonly cacheReadTokens?: number;
16
+ readonly inputTokens?: number;
17
+ readonly outputTokens?: number;
18
+ }
19
+ interface BuildJob {
20
+ readonly archiveKey: string;
21
+ readonly archivePath: string;
22
+ readonly cachePath: string;
23
+ readonly chapterId: number;
24
+ readonly createdAt: number;
25
+ readonly currentStep?: BuildJobTarget;
26
+ readonly errorJSON?: string;
27
+ readonly eventsPath: string;
28
+ readonly finishedAt?: number;
29
+ readonly jobId: string;
30
+ readonly inputRevision?: number;
31
+ readonly logPath: string;
32
+ readonly llmJSON?: string;
33
+ readonly ownerId?: string;
34
+ readonly ownerPid?: number;
35
+ readonly prompt?: string;
36
+ readonly queueRank: number;
37
+ readonly state: BuildJobState;
38
+ readonly readingSummaryStartedAt?: number;
39
+ readonly target: BuildJobTarget;
40
+ readonly updatedAt: number;
41
+ readonly workspacePath: string;
42
+ }
43
+ type BuildJobEvent = {
44
+ readonly at: number;
45
+ readonly jobId: string;
46
+ readonly seq: number;
47
+ readonly state: BuildJobState;
48
+ readonly type: "created" | "paused" | "resumed" | "boosted" | "canceling";
49
+ } | {
50
+ readonly at: number;
51
+ readonly jobId: string;
52
+ readonly seq: number;
53
+ readonly from: BuildJobTarget;
54
+ readonly to: BuildJobTarget;
55
+ readonly type: "target_changed";
56
+ } | {
57
+ readonly at: number;
58
+ readonly jobId: string;
59
+ readonly seq: number;
60
+ readonly state: "running";
61
+ readonly type: "started";
62
+ } | {
63
+ readonly at: number;
64
+ readonly jobId: string;
65
+ readonly seq: number;
66
+ readonly state: "queued";
67
+ readonly type: "requeued";
68
+ } | {
69
+ readonly at: number;
70
+ readonly jobId: string;
71
+ readonly seq: number;
72
+ readonly step: BuildJobTarget;
73
+ readonly type: "step_started" | "step_completed";
74
+ } | {
75
+ readonly at: number;
76
+ readonly counters: readonly BuildJobProgressCounter[];
77
+ readonly jobId: string;
78
+ readonly phase?: BuildJobProgressPhase;
79
+ readonly seq: number;
80
+ readonly step?: BuildJobTarget;
81
+ readonly tokens?: BuildJobTokenUsage;
82
+ readonly type: "status_snapshot";
83
+ } | {
84
+ readonly at: number;
85
+ readonly error?: unknown;
86
+ readonly jobId: string;
87
+ readonly seq: number;
88
+ readonly state: "failed" | "canceled" | "succeeded";
89
+ readonly type: "failed" | "canceled" | "succeeded";
90
+ };
91
+ interface AddBuildJobOptions {
92
+ readonly archivePath: string;
93
+ readonly boost?: boolean;
94
+ readonly chapterId: number;
95
+ readonly jobId?: string;
96
+ readonly llmJSON?: string;
97
+ readonly prompt?: string;
98
+ readonly target: BuildJobTarget;
99
+ }
100
+ interface BuildJobListOptions {
101
+ readonly activeOnly?: boolean;
102
+ readonly all?: boolean;
103
+ readonly archivePath?: string;
104
+ }
105
+ interface BuildJobWorkerOptions {
106
+ readonly concurrency: number;
107
+ readonly executeJob: (job: BuildJob, reporter: BuildJobProgressReporter, context: BuildJobExecutionContext) => Promise<void>;
108
+ readonly idleTimeoutMs?: number;
109
+ }
110
+ interface BuildJobExecutionContext {
111
+ readonly signal: AbortSignal;
112
+ }
113
+ interface BuildJobProgressReporter {
114
+ addOutputCharacters(characters: number): Promise<void>;
115
+ addTokenUsage(usage: BuildJobTokenUsage): Promise<void>;
116
+ setTotals(input: {
117
+ readonly totalGraphWords?: number;
118
+ readonly totalReadingSummaryWords?: number;
119
+ }): Promise<void>;
120
+ stepCompleted(step: BuildJobTarget): Promise<void>;
121
+ stepStarted(step: BuildJobTarget): Promise<void>;
122
+ updateWords(input: {
123
+ readonly graphWords?: number;
124
+ readonly readingSummaryWords?: number;
125
+ }): Promise<void>;
126
+ updatePhase(input: {
127
+ readonly done: number;
128
+ readonly force?: boolean;
129
+ readonly phase: BuildJobProgressPhase;
130
+ readonly phaseDetail?: string;
131
+ readonly total: number;
132
+ readonly unit: BuildJobProgressUnit;
133
+ }): Promise<void>;
134
+ throwIfStopped(): Promise<void>;
135
+ }
136
+ type BuildJobConflictScope = {
137
+ readonly kind: "archive";
138
+ } | {
139
+ readonly chapterIds: readonly number[];
140
+ readonly kind: "chapter";
141
+ };
142
+ declare function addBuildJob(options: AddBuildJobOptions): Promise<BuildJob>;
143
+ declare function recordBuildJobInputRevision(input: {
144
+ readonly currentRevision: number;
145
+ readonly jobId: string;
146
+ readonly ownerId: string;
147
+ }): Promise<BuildJob>;
148
+ declare function assertBuildJobInputRevision(input: {
149
+ readonly currentRevision: number;
150
+ readonly jobId: string;
151
+ readonly ownerId: string;
152
+ }): Promise<void>;
153
+ declare function listBuildJobs(options?: BuildJobListOptions): Promise<BuildJob[]>;
154
+ declare function getBuildJob(jobId: string): Promise<BuildJob>;
155
+ declare function resolveBuildJobId(jobIdPrefix: string): Promise<string>;
156
+ declare function pauseBuildJob(jobId: string): Promise<BuildJob>;
157
+ declare function resumeBuildJob(jobId: string): Promise<BuildJob>;
158
+ declare function cancelBuildJob(jobId: string): Promise<BuildJob>;
159
+ declare function boostBuildJob(jobId: string): Promise<BuildJob>;
160
+ declare function updateBuildJobTarget(jobId: string, target: BuildJobTarget): Promise<BuildJob>;
161
+ declare function assertNoActiveBuildJobs(input: {
162
+ readonly archivePath: string;
163
+ readonly chapterIds: readonly number[];
164
+ readonly operation: string;
165
+ readonly requiresTarget?: BuildJobTarget;
166
+ }): Promise<void>;
167
+ declare function assertNoActiveBuildJobConflicts(input: {
168
+ readonly archivePath: string;
169
+ readonly operation: string;
170
+ readonly requiresTarget?: BuildJobTarget;
171
+ readonly scope: BuildJobConflictScope;
172
+ }): Promise<void>;
173
+ declare function runBuildJobWorker(options: BuildJobWorkerOptions): Promise<void>;
174
+ declare function readBuildJobEvents(job: Pick<BuildJob, "eventsPath">): Promise<BuildJobEvent[]>;
175
+ declare function cleanBuildJobs(options?: {
176
+ readonly olderThanMs?: number;
177
+ readonly states?: readonly BuildJobState[];
178
+ }): Promise<number>;
179
+ declare function runBuildQueueGc(context: GcContext): Promise<GcJobResult>;
180
+
181
+ export { type AddBuildJobOptions, BUILD_JOB_STATES, type BuildJob, type BuildJobConflictScope, type BuildJobEvent, type BuildJobExecutionContext, type BuildJobListOptions, type BuildJobProgressCounter, type BuildJobProgressPhase, type BuildJobProgressReporter, type BuildJobProgressUnit, type BuildJobState, type BuildJobTarget, type BuildJobTokenUsage, type BuildJobWorkerOptions, addBuildJob, assertBuildJobInputRevision, assertNoActiveBuildJobConflicts, assertNoActiveBuildJobs, boostBuildJob, cancelBuildJob, cleanBuildJobs, getBuildJob, listBuildJobs, pauseBuildJob, readBuildJobEvents, recordBuildJobInputRevision, resolveBuildJobId, resumeBuildJob, runBuildJobWorker, runBuildQueueGc, updateBuildJobTarget };